田小花语音机器人(一)使用百度语音API实现基础的语音转换 python3.7实现 ubuntu19系统

实现了麦克风输入的语音转换成文字,再把文字转换成百度的语音播放出来。可以作为基础代码实现基本语音命里功能!使用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’}
你好

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值