需要学习语音识别,以下代码为jupyter部分,分开可执行。
from playsound import playsound
playsound('audio_files/cn.mp3')
#播放一段音频
#调用音频查看结果
import speech_recognition as sr
print(sr.__version__)
r=sr.Recognizer()
harvard=sr.AudioFile('audio_file/harvard.wav')
with harvard as source:
audio=r.record(source)
#导入音频识别库,固定写法,将一段操作变为封装的audio
result=r.recognize_google(audio)
#使用Google的接口调用,输出结果为识别的一段结果。
print(result)
#调用麦克风输入音频进行识别
import speech_recognition as sr
r=sr.Recognizer()
mic=sr.Microphone()
sr.Microphone.list_microphone_names()
#列举所有的麦克风
with mic as source:
r.adjust_for_ambient_noise(source)
#非常重要的降噪处理过程
audio=r.listen(source)
r.recognize_google(audio)
print(r)
#调用tts库进行文字转音频
import gtts
import pyttsx3
engine=pyttsx3.init()
engine.say("I will speak this text")
engine.say("USTC是个美丽的大学")
engine.runAndWait()
#将文字转为音频进行保存
from gtts import gTTS
tts=gTTS(text='大家好,你好',lang='zh-cn')
tts.save("audio_files/heee.mp3")
#将音频读出
import playsound
import simpleaudio as sa
wave_obj=sa.WaveObject.from_wave_file("audio_files/harvard.wav")
play_obj=wave_obj.play()
play_obj.wait_done()
#pygame也可以播放音频
from pygame import mixer
mixer.init()
mixer.music.load('audio_files/hello.mp3')
mixer.music.play()
#定义一个函数speak(),将text变为音频保存,再读出来。
import tempfile
def speak(sentence):
with tempfile.NamedTemporaryFile(delete=True) as fp:
tts = gTTS(text=sentence, lang='zh-cn')
tts.save("{}.mp3".format(fp.name))
mixer.music.load('{}.mp3'.format(fp.name))
mixer.music.play()
speak('大家好!祝大家有个美好的一天')
#定义一个函数listenTo(),获取麦克风音频,交给Google识别后返回一段text。
import speech_recognition
def listenTo():
r = speech_recognition.Recognizer()
with speech_recognition.Microphone() as source:
r.adjust_for_ambient_noise(source)
audio = r.listen(source)
return r.recognize_google(audio, language='zh-cn')
speak(listenTo())
#定义一个字典来进行对话
Answer = {
'你好吗': '我很好',
'你很帅': '谢谢啦 !',
'再见了': '下次见了! 再聊 ! 拜拜'
}
speak(Answer.get(listenTo(), '对不起,我没听清,请再说一遍'))