python常用代码块 | python多种方式实现语音转文字

python多种方式实现语音转文字

1. mp3转wav

一些工具只能处理wav文件,可以通过剪映直接输出转换,也可以使用如下代码实现
需要安装pydub库 : pip install pydub

from pydub import AudioSegment
fp= r'D:\python\pyapp\001\aa.MP3'  #输入自己的文件地址
output = AudioSegment.from_mp3(fp).set_channels(1) #1为单声道  2为多声道
output.export(r'D:\python\pyapp\001\bb.wav', format='wav')

2. OpenAI whisper

各模型大小(网络图片,实际下载的好像有些差异)
各模型下载地址

"tiny.en": "https://openaipublic.azureedge.net/main/whisper/models/d3dd57d32accea0b295c96e26691aa14d8822fac7d9d27d5dc00b4ca2826dd03/tiny.en.pt",
"tiny": "https://openaipublic.azureedge.net/main/whisper/models/65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9/tiny.pt",
"base.en": "https://openaipublic.azureedge.net/main/whisper/models/25a8566e1d0c1e2231d1c762132cd20e0f96a85d16145c3a00adf5d1ac670ead/base.en.pt",
"base": "https://openaipublic.azureedge.net/main/whisper/models/ed3a0b6b1c0edf879ad9b11b1af5a0e6ab5db9205f891f668f8b0e6c6326e34e/base.pt",
"small.en": "https://openaipublic.azureedge.net/main/whisper/models/f953ad0fd29cacd07d5a9eda5624af0f6bcf2258be67c92b79389873d91e0872/small.en.pt",
"small": "https://openaipublic.azureedge.net/main/whisper/models/9ecf779972d90ba49c06d968637d720dd632c55bbf19d441fb42bf17a411e794/small.pt",
"medium.en": "https://openaipublic.azureedge.net/main/whisper/models/d7440d1dc186f76616474e0ff0b3b6b879abc9d1a4926b7adfa41db2d497ab4f/medium.en.pt",
"medium": "https://openaipublic.azureedge.net/main/whisper/models/345ae4da62f9b3d59415adc60127b97c714f32e89e936602e85993674d08dcb1/medium.pt",
"large-v1": "https://openaipublic.azureedge.net/main/whisper/models/e4b87e7e0bf463eb8e6956e646f1e277e901512310def2c24bf0e11bd3c28e9a/large-v1.pt",
"large-v2": "https://openaipublic.azureedge.net/main/whisper/models/81f7c96c852ee8fc832187b0132e569d6c3065a3252ed18e56effd0b6a73e524/large-v2.pt",
"large": "https://openaipublic.azureedge.net/main/whisper/models/81f7c96c852ee8fc832187b0132e569d6c3065a3252ed18e56effd0b6a73e524/large-v2.pt",

需要安装whisper: pip install whisper
使用代码比较简单,效果也算可以,至少是可以识别出文字出来

import whisper

#模型可选用上面下载地址中左侧的名称tiny.en、large-v1、large等
model = whisper.load_model('base')  
fp = r'D:\python\pyapp\001\audio\01\music.wav'
result = model.transcribe(fp)
print(result["text"])

音频是首歌曲,识别结果如下,感觉基本发音相似,错别字多了些:
在这里插入图片描述

3. Vosk

需安装vosk库: pip install vosk
vosk的模型库可以在如下地址下载,下载后直接解压即可,代码中加载模型时可以直接填写模型文件夹所在地址
https://alphacephei.com/vosk/models
下载后直接解压

import sys, json,wave
from vosk import Model, KaldiRecognizer, SetLogLevel
SetLogLevel(-1)

#加载模型地址
model = Model(r'D:\python\pyapp\001\audio\vosk-model-small-cn-0.22')

fp = r'D:\python\pyapp\001\audio\01\word.wav'
wf = wave.open(fp, 'rb')
print('getframerate', wf.getframerate())
print('getnframes', wf.getnframes())

rec = KaldiRecognizer(model, wf.getframerate())
rec.SetWords(True)

str_ret = ''

while True:
  data = wf.readframes(4000)
  if (len(data) == 0):
    break
  if rec.AcceptWaveform(data):
    result = rec.Result()
    result = json.loads(result)
    print(result)
    if 'text' in result:
      str_ret += result['text'] + ' '
      print(result['text'])
print('----')
print(str_ret)

音频文字:小时候真傻,居然还在盼着长大
这效果就很不理想

源码:https://download.csdn.net/download/mjc1321/89117611

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值