2379|3

106

帖子

0

TA的资源

版主

楼主
 

【行空板 Python编程学习主控板】评测十、百度AI在线语音识别及合成 [复制链接]

本帖最后由 天意无罪 于 2022-12-19 12:40 编辑

        前面的测评,完成了对行空板的软硬件学习和测试验证,后面的测评内容主要就是完成两个应用设计:基于百度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

 

最新回复

有iPython的地方,就有好多API的东西,全部是调用接口,快速验证用的  详情 回复 发表于 2023-1-28 15:42
点赞 关注

回复
举报

4919

帖子

12

TA的资源

版主

沙发
 
语音的API好像是有限制 要钱的 你怎么申请的呢?

点评

是的,是有限制的,还是用的新注册用户的免费试用资格哈。  详情 回复 发表于 2022-12-27 21:31
 
 

回复

106

帖子

0

TA的资源

版主

板凳
 
吾妻思萌 发表于 2022-12-26 22:35 语音的API好像是有限制 要钱的 你怎么申请的呢?

是的,是有限制的,还是用的新注册用户的免费试用资格哈。

 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(中级)

4
 
有iPython的地方,就有好多API的东西,全部是调用接口,快速验证用的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表