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.youkuaiyun.com/download/mjc1321/89117611

接接爬虫小活199/单,有趣的减半,无聊多金的可以留言加V私聊(晚8点后添加),能完成看效果后再付钱,完不成就是能力有限随意喷

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>我们正在处理用户关于Python文字语音库或实现方法的查询。根据系统指令,我们需要使用中文回答,并且正确使用LaTeX格式(虽然本问题可能不涉及数学公式,但若有则需遵循规则)。用户要求提供Python文字语音的库或实现方法。根据之前的参考引用[^1],我们有一个edge-tts库的介绍,但用户可能还需要其他选择。因此,我们可以提供多个流行的Python文字语音库,并给出简要说明和示例代码。常见的Python文字语音库包括:1.edge-tts:使用微软Edge浏览器的TTS引擎(免费,需要网络连接)。2.pyttsx3:跨平台的文本语音库,离线工作,支持多种操作系统(Windows,Linux,Mac)。3.gTTS(GoogleText-to-Speech):使用Google的TTS引擎,需要网络连接。4.FestivalTTS(通过pyfestival):一个开源的TTS系统,主要在Linux上使用。由于用户没有指定具体需求(如是否需要离线、语音质量、语言支持等),我们可以提供几种常用库的示例。注意:在回答中,我们将按照要求,对引用的内容添加引用标识。但注意,参考引用[^1]已经提到了edge-tts,我们可以直接使用。我们将按以下结构回答:1.介绍edge-tts(根据引用[^1])2.介绍pyttsx3(离线方案)3.介绍gTTS(在线方案,支持多种语言)4.简要提及其他选项每个库都给出安装命令和简单的使用示例。由于是代码示例,我们将使用代码块格式。同时,按照系统指令,我们需要生成相关问题。因此,在回答的最后,我们会生成几个相关问题。开始回答:</think>### Python文字语音实现方法 在Python实现文字语音功能,主要有以下几种常用库和方法: #### 1. **edge-tts库**(基于微软Edge引擎) ```python # 安装:pip install edge-tts import edge_tts async def text_to_speech(text, output_file): communicate = edge_tts.Communicate(text, voice="zh-CN-XiaoxiaoNeural") await communicate.save(output_file) # 使用示例 await text_to_speech("你好,这是语音测试", "output.mp3") ``` **特点**: - 使用微软Azure的神经网络语音 - 支持多种语言和声音风格(如`zh-CN-YunyangNeural`新闻播音风格) - 输出为MP3/WAV格式[^1] #### 2. **pyttsx3库**(跨平台离线方案) ```python # 安装:pip install pyttsx3 import pyttsx3 engine = pyttsx3.init() engine.setProperty('rate', 150) # 语速 engine.setProperty('volume', 0.9) # 音量 engine.say("离线语音无需网络连接") engine.save_to_file("保存为文件", "output.wav") engine.runAndWait() ``` **特点**: - 完全离线工作 - 支持Windows(SAPI5)、Mac(NSSpeech)和Linux(eSpeak) - 可实时播放或保存音频 #### 3. **gTTS库**(Google文本语音) ```python # 安装:pip install gtts from gtts import gTTS tts = gTTS(text="使用Google云服务生成语音", lang='zh-cn', slow=False) tts.save("google_tts.mp3") ``` **特点**: - 需要网络连接 - 支持100+种语言 - 免费但有请求频率限制 ### 选择建议: || 离线支持 | 语音质量 | 安装复杂度 | 适用场景 | |----------|----------|----------|------------|------------------| | edge-tts || ⭐⭐⭐⭐⭐ | 简单 | 高质量语音生成 | | pyttsx3 || ⭐⭐ | 简单 | 本地无网络环境 | | gTTS || ⭐⭐⭐⭐ | 简单 |语言基础需求 | > **特殊需求方案**: > - 需要**自定义发音规则**:使用`espeak`底层库+`pyespeak`封装 > - 需要**影视级效果**:接入Azure/Amazon的付费TTS API > - 需要**实时交互**:结合`pyaudio`实现流式播放
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值