以下为你介绍几种不同方式实现深度学习语音转文字的代码示例,包括使用开源库(如 SpeechRecognition
结合 pyaudio
)以及调用第三方 API(如百度语音识别、OpenAI 的 Whisper)。
方式一:使用 SpeechRecognition
库
1. 安装必要的库
pip install SpeechRecognition pyaudio
2. 代码实现
import speech_recognition as sr# 创建一个 Recognizer 对象
r = sr.Recognizer()# 使用麦克风录音
with sr.Microphone() as source:print("请说话,程序正在监听...")audio = r.listen(source)try:# 使用 Google 语音识别服务将音频转换为文本text = r.recognize_google(audio, language='zh-CN')print("识别结果: " + text)
except sr.UnknownValueError:print("无法识别语音")
except sr.RequestError as e:print(f"请求错误; {e}")
3. 代码解释
- 导入
speech_recognition
库并创建Recognizer
对象,用于处理语音识别相关操作。 - 使用
Microphone
类打开麦克风并监听用户的语音输入,将录制的音频存储在audio
变量中。 - 调用
recognize_google
方法,使用 Google 的语音识别服务将音频转换为文本,指定语言为中文(zh-CN
)。 - 捕获可能出现的异常,如无法识别语音或请求错误。
方式二:使用百度语音识别 API
1. 安装必要的库
pip install baidu-aip
2. 代码实现
from aip import AipSpeech# 设置百度语音识别的 APPID、API Key 和 Secret Key
APP_ID = 'your_app_id'
API_KEY = 'your_api_key'
SECRET_KEY = 'your_secret_key'# 创建 AipSpeech 对象
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)# 读取音频文件
def get_file_content(file_path):with open(file_path, 'rb') as fp:return fp.read()# 音频文件路径
file_path = 'your_audio_file.wav'
audio_data = get_file_content(file_path)# 调用语音识别接口
result = client.asr(audio_data, 'wav', 16000, {'dev_pid': 1537, # 中文普通话识别
})# 处理识别结果
if result['err_no'] == 0:text = result['result'][0]print("识别结果: " + text)
else:print("识别失败,错误码: " + str(result['err_no']))
3. 代码解释
- 导入
AipSpeech
类,创建AipSpeech
对象,需要替换your_app_id
、your_api_key
和your_secret_key
为你在百度开发者平台申请的实际信息。 - 定义
get_file_content
函数,用于读取音频文件的二进制数据。 - 调用
client.asr
方法进行语音识别,指定音频格式为wav
,采样率为 16000Hz,dev_pid
为 1537 表示中文普通话识别。 - 根据返回结果的
err_no
判断识别是否成功,若成功则打印识别结果,否则打印错误码。
方式三:使用 OpenAI 的 Whisper
1. 安装必要的库
pip install git+https://github.com/openai/whisper.git
2. 代码实现
import whisper# 加载模型
model = whisper.load_model("base")# 音频文件路径
audio_path = "your_audio_file.mp3"# 进行语音识别
result = model.transcribe(audio_path)# 打印识别结果
print("识别结果: " + result["text"])
3. 代码解释
- 导入
whisper
库并加载预训练的base
模型,你也可以根据需求选择其他更大的模型(如small
、medium
、large
)。 - 指定音频文件的路径,调用
model.transcribe
方法进行语音识别。 - 打印识别结果中的文本内容。
注意事项
- 使用 Google 语音识别服务可能在某些地区受到网络限制。
- 使用百度语音识别 API 需要在百度开发者平台创建应用并获取相应的密钥。
- 使用 OpenAI 的 Whisper 可能会消耗一定的计算资源,尤其是使用较大的模型时。