推广 热搜: page  音视频  使用  个数  选择  搜索引擎  父亲  百度  企业  可以 

机器人语音问答流程及借助百度API Python实现

   日期:2025-01-03     作者:lz1qp    caijiyuan   评论:0    移动:http://ww.kub2b.com/mobile/news/19552.html
核心提示:机器人智能问答:python通过声音分贝来控制语音输入 运行程序:E:pycharmprojectAudio2AudioAudio_qa_new.py 运行之

机器人智能问答:python通过声音分贝来控制语音输入

运行程序:E:pycharmprojectAudio2AudioAudio_qa_new.py
运行之前需安装包:baidu-aip、pyaudio、tkinter、playsound、wave、pygame等
借助百度语音API实现的。
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) 这个可以去百度语音API申请
首先通过tkinter函数用来创建窗口,添加文本框和滚动条;创建按钮Button,通过点击 “点击开始说话” 启动整个程序运行

                                           

                                   

1、语音录入:函数def my_record() 生成一个 .wav 格式文件
    这里实现了 根据人说话的分贝 来控制语音输入,通过每次读取的采样数据,通过frombuffer函数进行转化为数组值,数组大小为:NUM_SAMPLES = 2000
    再用数组中最大值与预设阈值5000进行比较
    如果连续15个采样点都小于5000,退出循环,即连续1/16000*2000*15=1.875秒没声,就不录音了,即timeout = False,
    这里调用了一个定时函数def timeclock(),因为百度API最长录音限制为60s,当录音时间超过60s,则timeout = False,停止录音。

   正在录音……

                                             

2、wav格式转pcm格式:函数def wav_to_pcm()   音频文件pcm转为文本将更加准确

3、语音转文本 :def audio_to_text

4、核心模块:根据文本找到答案:get_answer.getAnswer  通过全文检索权值与bert文本相似度权值进行计算得到的
    范围的结果是一个嵌套字典,需要预处理一下,函数为—— def get_anstxt()

5、文本转语音:def text_to_audio() 音频为mp3格式
    这里可以设置 pit音调、vol音量、spd速度、per语音性别 3:男 4:女  还有1和2 可以尝试一下

6、借助playsound函数播放 mp3音频文件

当连续15个采样点都小于5000,退出循环,即连续1/16000*2000*15=1.875秒没声,就不录音了,即timeout = False,返回结果为None,并播放音频  “声音过于嘈杂或网络波动,请重新尝试。”   如下图

                                    

当输入语音:欠钱不还会坐牢吗?  即当检测到采样点值都大于5000时,也就是检测到声音时,结果如下

                                               

当然可以通过调节分贝阈值5000,来控制检测语音输入分贝的敏感度。

 

本文地址:http://ww.kub2b.com/news/19552.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号