前面的测评,完成了对行空板的软硬件学习和测试验证,后面的测评内容主要就是完成两个应用设计:基于百度AI的智能语音机器人,以及基于人脸识别的智能门锁;
基于百度AI的智能语音机器人需要用到百度AI 的在线语音识别技术与语音合成技术,所以本篇评测内容主要由以下几部分组成:
(1)百度大脑账号注册即API申请;
(2)百度大脑Python库安装;
(3)百度在线语音识别测试;
(4)百度在线语音合成测试。
(一)百度大脑账号注册即API申请
我们在百度“站长与开发者服务”产品列表中找到“百度大脑”并进入。
图1
进入“百度大脑”首页后,我们依次选择“开放能力”、“语音技术”、“语音识别”,进入语音识别页面。
图2
进入语音识别页面后,点击“立即使用”,进入百度智能云管理页面。
说明:如果没有百度账号需要提前注册;
图3
进入百度智能云页面后,依次选择“概览”、免费尝鲜的“去领取”。首次使用百度AI的用户,都有一个免费试用额度,我们在测评阶段可以使用该免费额度进行测试。我们需要领取两项免费额度功能:语音识别和语音合成;
图4
接下来是创建应用API,获得API的AppID、API Key,以及Secret Key。
图5
经过以上操作,我们便完成了百度大脑语音识别技术的API申请。
(二)百度大脑Python库安装
通过命令:pip install baidu-aip进行安装,或者利用Mind+软件的库管理功能进行安装。
我是直接在Mind+软件中进行安装的,输入baidu-aip库名称后,点击安装,之后提示该python库已经安装。
图6
跳转到库列表页面,发现确实已经安装了baidu-aip库,说明行空板系统镜像unihiker_v0.3.3版本已经内置了大部分常用AI库了,还是挺方便的。
图7
(三)百度在线语音识别测试
(1)Python编程:
from unihiker import GUI,Audio #导入unihiker包
from aip import AipSpeech #导入baidu-aip包
import time
gui = GUI() #实例化GUI类
audio = Audio() #实例化Audio类
#gui添加背景图片
gui.draw_image(x=0, y=0, w=240, h=320, image='bj1.jpeg')
#gui添加文本标题
gui.draw_text(x=50, y=20,color="#4169E1", font_size=18,text="语音识别助手")
#gui添加按钮信息
gui.add_button(x=60, y=290, w=60, h=30, text="录音", origin='center', onclick=lambda:Record() )
gui.add_button(x=180, y=290, w=60, h=30, text="识别", origin='center', onclick=lambda: Recognition() )
#识别显示信息
info_text2 = gui.draw_text(x=0, y=60,color="white",text="")
""" Baidu APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
#读取文件
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
#识别本地录音文件
def voiceToText():
res = client.asr(get_file_content('3s.wav'), 'wav', 16000, {
'dev_pid': 1537,
})
return res.get('result')[0]
def Record():
info_text2.config(x=0, y=60, text="") #清空识别信息显示栏
audio.record('3s.wav', 3) #录音3S
info_text2.config(x=0, y=60, text="录音完成") #清空识别信息显示栏
def Recognition():
msg = voiceToText()
info_text2.config(x=0, y=60, text=msg) #更新识别显示的信息
while True:
time.sleep(1) #增加等待,防止程序退出和卡住
(2)效果展示
对着行空板说“小度,小度!”后返回的识别结果。
图8
(四)百度在线语音合成测试
(1)Python编程
from unihiker import GUI,Audio #导入unihiker包
from aip import AipSpeech #导入baidu-aip包
import time
gui = GUI() #实例化GUI类
audio = Audio() #实例化Audio类
#gui添加背景图片
gui.draw_image(x=0, y=0, w=240, h=320, image='bj1.jpeg')
#gui添加文本标题
gui.draw_text(x=20, y=20,color="#4169E1", font_size=18,text="百度在线语音合成")
#gui添加按钮信息
gui.add_button(x=60, y=290, w=80, h=30, text="语音合成", origin='center', onclick=lambda: synthesise() )
gui.add_button(x=180, y=290, w=80, h=30, text="语音播放", origin='center', onclick=lambda: audioplay() )
#创建显示信息
info_text2 = gui.draw_text(x=0, y=60,color="white",text="")
""" Baidu APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
def synthesise():
info_text2.config(x=0, y=60, text="") #清空识别信息显示栏
info_text2.config(x=0, y=60, text="上传文本") #更新识别信息显示栏
result = client.synthesis('你好,小麦!', 'zh', 1, {'vol': 5,})
#成功合成,返回语音二进制,错误则返回dict
if not isinstance(result, dict):
with open('audio.wav', 'wb') as f:
f.write(result)
info_text2.config(x=0, y=60, text="") #清空识别信息显示栏
info_text2.config(x=0, y=60, text="语音合成成功") #更新识别信息显示栏
def audioplay():
info_text2.config(x=0, y=60, text="") #清空识别信息显示栏
info_text2.config(x=0, y=60, text="开始播放") #更新识别信息显示栏
audio.play('audio.wav')
info_text2.config(x=0, y=60, text="播放完成") #更新识别信息显示栏
while True:
time.sleep(1) #增加等待,防止程序退出和卡住
(2)效果展示
将文本“你好,小麦!”上传到百度AI服务器进行语音合成后,返回到本地并进行播放。
图9
本帖最后由 天意无罪 于 2022-12-19 12:40 编辑
引用: 吾妻思萌 发表于 2022-12-26 22:35 语音的API好像是有限制 要钱的 你怎么申请的呢?
是的,是有限制的,还是用的新注册用户的免费试用资格哈。