语音转文字已经是一个很成熟的技术,运用的好的话,可以在很多项目中使用。下面用例使用了现成的API库对语音进行转化。
1.本期语音转文字分为两种:
1.实时语音转化为文字;
2.录音文件转化为文字;
2.需要初始化的三方库:
pip install SpeechRecognition
pip install PyAudio
pip install pipwin
pipwin install pyaudio
3.实现代码:
实时语音版:
import speech_recognition as sr
# 初始化识别器
r = sr.Recognizer()
# 使用默认麦克风作为音频来源
with sr.Microphone() as source:
print("请说些什么吧...")
audio = r.listen(source)
try:
# 使用Google Web Speech API进行识别
print("Google Speech Recognition thinks you said:")
text = r.recognize_google(audio, language='zh-CN') # 根据需要设置语言
print(text)
except sr.UnknownValueError:
print("Google Speech Recognition could not understand audio")
except sr.RequestError as e:
print(f"Could not request results from Google Speech Recognition service; {e}")
测试结果:
录音实现版:
#首先先将MP3文件转化为WAV
from pydub import AudioSegment
mp3_file_path = r'D:\6.Coding\3.代码练习区\0.Python\6.语音识别转文字\file\1.mp3' # 替换为MP3文件路径
# 将MP3文件转换为WAV
sound = AudioSegment.from_mp3(mp3_file_path)
sound.export(".\file\1.wav", format="wav")
#进行文件语音识别
import speech_recognition as sr
def recognize_audio(wav_file_path):
# 初始化识别器
recognizer = sr.Recognizer()
# 从WAV文件加载音频数据
with sr.AudioFile(wav_file_path) as source:
audio_data = recognizer.record(source)
# 尝试使用Google Web Speech API进行语音识别
try:
# 识别语音
text = recognizer.recognize_google(audio_data, language='zh-CN') # 根据需要设置语言
print(f"识别结果: {text}")
except sr.UnknownValueError:
print("Google Web Speech API无法理解音频")
except sr.RequestError as e:
print(f"无法从Google Web Speech API获得结果; {e}")
# 示例:转换wav文件并进行语音识别
wav_file_path = r'D:\6.Coding\3.代码练习区\0.Python\6.语音识别转文字\file\1.wav' # WAV文件的保存路径
recognize_audio(wav_file_path)
测试结果:
注意:其中需要注意的是,在第一次使用库函数时可能会报错,需要联动升级一些其他库。根据电脑提示更新就可以了。