实现了麦克风输入的语音转换成文字,再把文字转换成百度的语音播放出来。可以作为基础代码实现基本语音命里功能!使用PYTHON实现,在ubuntu环境下运行
from aip import AipSpeech #导入百度语音的api
import os
"""导入aip接口"""
"""分别导入APPID AK SK 对应了我的百度账号"""
app_id = "你的百度账户"
API_Key = "你的百度账户"
Secret_Key = "你的百度账户"
"""代入相关的账户信息创建了语音识别对象clien"""
client = AipSpeech(app_id, API_Key, Secret_Key)
"""创建录音文件的时候规定的录音的时长,应该是秒"""
length = 2
"""使用aplay程序打开录音播放叮的一声"""
os.system("aplay ding.wav")
"""使用录音软件arecord进行录音,相关录音参数设置如函数内部所示。百度使用文件形式为.wav"""
os.system("arecord -d %d -r 16000 -c 1 -t wav -f S16_LE record.wav" % (length,) )
os.system("aplay ding.wav")
"""打开刚刚录好的音频文件,上传给百度并且可以得到一个字典,字典内容包含相关返回值"""
with open("record.wav", 'rb') as fp:
res = client.asr(fp.read(), 'wav', 16000, { 'dev_pid': 1536,})
"""把录音结果进行打印"""
print(res)
print(res['result'][0])
"""把识别到的内容以字符串的形式传递给百度,并且把该内容转换为女生重新播放出来"""
result = client.synthesis(res['result'][0], #要翻译的文字
"zh",#表示是中文
1, #表示第一个
{"vol":5,#表示音量
"spd":5,#表示音速
"pit":9,#表示语调
"per":4#1是女生 2男生 3逍遥 4萝莉
})
"""创建并写入mp3文件对象"""
with open("sprak.mp3","wb") as f:
f.write(result)
"""播放转换后的内容"""
os.system("mpg123 sprak.mp3")#这里的mpg123是一个程序插件,可以用来播放MP3文件
教程参考了B站上面的一个视频:
https://www.bilibili.com/video/av37363151
(只有语音转文字)
上述程序执行需要在系统上安装aplay音频播放程序、arecord录音程序,录音标准需要根据百度官方提出的要求:
https://ai.baidu.com/ai-doc/SPEECH/Vk38lxily
进行设置。此程序是拿来改一改就能用的基础代码,做个笔记害怕自己忘记也方便以后用到,下次把语音唤醒增加进去就好了。
程序运行结果:
正在播放 WAVE ‘ding.wav’ : Signed 16 bit Little Endian, 频率16000Hz, Mono
正在录音 WAVE ‘record.wav’ : Signed 16 bit Little Endian, 频率16000Hz, Mono
正在播放 WAVE ‘ding.wav’ : Signed 16 bit Little Endian, 频率16000Hz, Mono
{‘corpus_no’: ‘6786959729624027252’, ‘err_msg’: ‘success.’, ‘err_no’: 0, ‘result’: [‘你好’], ‘sn’: ‘309906584861580212202’}
你好