首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >百度语音识别 语音唤醒失败

百度语音识别 语音唤醒失败

作者头像
obaby
发布于 2023-02-23 08:22:02
发布于 2023-02-23 08:22:02
2.2K00
代码可运行
举报
文章被收录于专栏:obaby@marsobaby@mars
运行总次数:0
代码可运行

半夜起来给小朋友冲奶粉,于是忽然想到了那个在机柜里落灰的树莓派。当时用百度的语音识别和合成用python实现了一些功能。但是并没有实现语音唤醒,于是要想实现语音唤醒就只能不断的轮询接口,然后发送到百度云进行识别。但是觉得这种方式太坑了,什么都上传了,感觉随时在被监听一样。今天又看了下百度的sdk发现支持语音唤醒了。还能自定义唤醒词。

唤醒词规则 1 . 支持设置10个唤醒词,包含指令唤醒词和自定义唤醒词,指令唤醒词不支持自定义;10个唤醒词中,最多可以设置3个自定义唤醒词,最多可以包含3个两字指令唤醒词(如播放、暂停、拍照等) 2 . 已经支持的指令唤醒词有: 相机类:拍照、茄子 音乐类:增大音量、减小音量、播放、停止、暂停、上一首、下一首、 电灯类:打开电灯、关闭电灯、增大亮度、减小亮度 手电筒类:打开手电筒、关闭手电筒 3 . 自定义唤醒词可根据应用的个性化需求来免费定制,例如您的应用希望通过“你好百度”启动应用,则就可以设置“你好百度”为唤醒词; 4 . 建议每个自定义唤醒词在3至5个字之间(这里的1个字是指1个汉字、或1个英文字母),4个字最佳;一个唤醒词可以包含最多2个(含)英文字母;唤醒词中暂时不支持纯英文单词,如california; 5 . 唤醒词定制的温馨提示:请勿选择太常用的词作为唤醒词,例如”吃饭吧”,在生活中经常会用到,容易误唤醒;为保证唤醒效果,不同意义的唤醒词,请考虑唤醒词之间的差异,尽量保证唤醒词之间不易混淆;唤醒词过短会导致唤醒错误率较高,请不要选择太多短唤醒词(包括指令唤醒词); 6 . 唤醒词的音节覆盖尽量多,长度最少为4个音节;相邻音节请尽可能规避,字要发音清晰响度大;生僻字请尽量规避;零声母字请尽量规避;请避免使用叠词;例如:质量较高的唤醒词:“百度外卖”,音节覆盖多差异大;质量较差的唤醒词:“语音识别”,“语音”两个字均为零声母字,不是一个质量高的唤醒词;

于是下载了百度的demo,在实际测试的时候却提示wakeup:no license。这是tm什么鬼,配置了appid和相关的属性发现效果并不明显。还是同样的错误。搜索了一下发现了这个帖子:

https://www.cnblogs.com/wantnon/p/4915028.html

需对demo进行如下修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)configOfflineClient {

    // 离线可识别自定义语法规则下的词,
    NSString* gramm_filepath = [[NSBundle mainBundle] pathForResource:@"bds_easr_gramm" ofType:@"dat"];;
    NSString* lm_filepath = [[NSBundle mainBundle] pathForResource:@"bds_easr_basic_model" ofType:@"dat"];;
    NSString* wakeup_words_filepath = [[NSBundle mainBundle] pathForResource:@"bds_easr_wakeup_words" ofType:@"dat"];;
    NSString* licenseFilePath = [[NSBundle mainBundle] pathForResource:@"temp_license_2017-11-25" ofType:@""];
    [self.asrEventManager setDelegate:self];
    [self.asrEventManager setParameter:lm_filepath forKey:BDS_ASR_OFFLINE_ENGINE_DAT_FILE_PATH];
    
    [self.asrEventManager setParameter:licenseFilePath forKey:BDS_ASR_OFFLINE_LICENSE_FILE_PATH];
    
    // 请在 (官网)[http://speech.baidu.com/asr] 参考模板定义语法,下载语法文件后,替换BDS_ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH参数
    [self.asrEventManager setParameter:gramm_filepath forKey:BDS_ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH];
    [self.asrEventManager setParameter:wakeup_words_filepath forKey:BDS_ASR_OFFLINE_ENGINE_WAKEUP_WORDS_FILE_PATH];
    
}

1,我下载了一个临时授权文件temp_license_2015-10-27,把它拖到xcode工程里。 2,然后在BDVRViewController.m中的loadOfflineEngine前加一句: NSString* licenseFilePath = [[NSBundle mainBundle] pathForResource:@”temp_license_2015-10-27″ ofType:@””]; 再把loadOfflineEngine的第二个参数license由nil改成licenseFilePath。 3,把BDVRSConfig.m中的 _recognitionProperty = [[NSNumber numberWithInt: EVoiceRecognitionPropertySearch] retain]; 改成 _recognitionProperty = [[NSNumber numberWithInt: EVoiceRecognitionPropertyInput] retain]; 然后就可以离线识别了。 参考:http://yuyin.baidu.com/bbs/q/552 —-补充: 关于百度语音离线识别(引自http://yuyin.baidu.com/bbs/q/538):离线只是作为在线识别的补充,不支持纯离线识别。授权成功后,会每隔一段时间不定期的再次进行认证授权的。

 但是这个方法是针对以前的sdk的,于是按照这个思路修改了一下:

发现ok了,但是有个问题,那就是那个临时授权文件:

只有三十天的有效期?这tm长期运行不蛋疼了,还得一个月更新一次授权文件?于是搜索了一下这个属性:BDS_ASR_OFFLINE_ENGINE_DAT_FILE_PATH 找到了这么一段说明(https://cloud.baidu.com/doc/SPEECH/ASR-iOS-SDK/3F.5C.E6.9C.8D.E5.8A.A1.E7.AB.AF.E9.85.8D.E7.BD.AE.E7.9B.B8.E5.85.B3.html):

在线引擎身份验证

参数名称

说明

BDS_ASR_API_SECRET_KEYS

开放平台设置API_KEY and SECRET_KEY

BDS_ASR_PRODUCT_ID

内部产品设置产品ID

离线引擎身份验证

参数名称

说明

BDS_ASR_OFFLINE_LICENSE_FILE_PATH

离线授权文件路径

BDS_ASR_OFFLINE_APP_CODE

离线授权所需APPCODE(APPID), 如使用该方式进行正式授权,请移除临时授权文件

看起来像是那么一回事,但是问题是实例代码里面写的就是appid,为啥不行?问题是还有一点。这个应用包名是干嘛的?没用?看意思这个东西是校验授权的。于是果断的把appid换成应用包名,去掉授权文件,再次运行ok了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[self.asrEventManager setParameter:@"com.mars.homeai" forKey:BDS_ASR_OFFLINE_APP_CODE];

对百度的文档能力深表同情,以前用python根据rest api写的代码就踩了无数坑(那时候还没有python sdk)。现在他们依然这么坑!

☆文章版权声明☆

* 网站名称:obaby@mars * 网址:https://h4ck.org.cn/ * 本文标题: 《百度语音识别 语音唤醒失败》 * 本文链接:https://h4ck.org.cn/2017/11/%e7%99%be%e5%ba%a6%e8%af%ad%e9%9f%b3%e8%af%86%e5%88%ab-%e8%af%ad%e9%9f%b3%e5%94%a4%e9%86%92%e5%a4%b1%e8%b4%a5/ * 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年11月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何让iOS推送播放语音?
iOS 推送播放语音的需求调研,即收到推送后,播放推送的文案,文案的内容不固定。类似于支付宝和微信的收款到账语音。
莫空9081
2021/05/26
2.8K0
■ Android集成百度语音识别
实现这个功能的目的,是我看见我公司硬件工程师给客户回答问题的时候用公司研发的APP,每次都是手动输入打字,看着他带着老花镜的样子,于心不忍,毕竟咱就是干这个的.
全栈程序员站长
2021/04/07
8370
永久免费的百度语音转字幕的工具
本文档是百度AI开放平台Linux SDK (C++)BDSpeechSDK 3.x 的用户指南。描述了在线语音识别相关接口的使用说明
thinktothings
2019/01/21
34.5K1
永久免费的百度语音转字幕的工具
腾讯云语音识别iOS SDK 开发代码模块分析
以使用 iOS SDK 方式接入,以一句话识别为例,展开对官当demo代码模块的分析。
Aalto
2020/04/03
3.5K0
手写一句话识别demo笔记
假如我们需要在自己的产品中加入语音识别功能,那么调用腾讯云语音识别接口直接得到返回将会是在产品开发的过程中,减少极大的前期研发投入,直接调用接口即可,那如何把一些语音识别的功能集成到我们的产品中呢。
Aalto
2020/04/22
9120
手写一句话识别demo笔记
基于树莓派的语音识别和语音合成
语音识别技术即Automatic Speech Recognition(简称ASR),是指将人说话的语音信号转换为可被计算机程序所识别的信息,从而识别说话人的语音指令及文字内容的技术。目前语音识别被广泛的应用于客服质检,导航,智能家居等领域。树莓派自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。本文采用百度云语音识别API接口,在树莓派上实现低于60s音频的语音识别,也可以用于合成文本长度小于1024字节的音频。 此外,若能够结合snowboy离线语音唤醒引擎可实现离线语音唤醒,实现语音交互。
全栈程序员站长
2022/09/13
4.5K0
Python在线语音识别速成案例 | 手把手快速尝鲜百度语音技术SDK包 | 机器语音
对于语音识别初学者来说,通过简单案例快速上手,不仅能够快速了解语音识别等实际应用模式,对枯燥无味的学习中提升兴趣值也大有帮助。百度语音提供了语音识别、语音合成和语音唤醒等产品的SDK免费资源,是面向广大开发者永久免费的开放语音技术平台,且简单易用,可以作为学习之余练手的好去处。
用户7623498
2020/08/04
2.6K0
Python在线语音识别速成案例 | 手把手快速尝鲜百度语音技术SDK包 | 机器语音
语音识别系列︱利用达摩院ModelScope进行语音识别+标点修复(四)
终于有时间更新语音识别系列了,之前的几篇: 语音识别系列︱用python进行音频解析(一) 语音识别系列︱paddlehub的开源语音识别模型测试(二) 语音识别系列︱paddlespeech的开源语音识别模型测试(三)
悟乙己
2022/11/18
4K0
语音识别系列︱利用达摩院ModelScope进行语音识别+标点修复(四)
百度语音识别pom引入jar工具类
pom引入jar <!--mp3转pcm--> <dependency> <groupId>com.googlecode.soundlibs</groupId> <ar
用户5899361
2020/12/07
1K0
Android开发笔记(一百零八)智能语音
如今越来越多的app用到了语音播报功能,例如地图导航、天气预报、文字阅读、口语训练等等。语音技术主要分两块,一块是语音转文字,即语音识别;另一块是文字转语音,即语音合成。 对中文来说,和语音播报相关的一个技术是汉字转拼音,想想看,拼音本身就是音节拼读的标记,每个音节对应一段音频,那么一句的拼音便能用一连串的音频流合成而来。汉字转拼音的说明参见《Android开发笔记(八十三)多语言支持》。 语音合成通常也简称为TTS,即TextToSpeech(从文本到语言)。语音合成技术把文字智能地转化为自然语音流,当然为了避免机械合成的呆板和停顿感,语音引擎还得对语音流进行平滑处理,确保输出的语音音律流畅、感觉自然。
aqi00
2019/01/18
6K1
学界 | 百度提出使用GAN构建语音识别新框架
选自arXiv 作者:Anuroop Sriram等 机器之心编译 参与:李亚洲、李泽南 百度最近发表的一篇论文提出使用生成对抗网络(GAN)目标来实现鲁棒的语音识别系统,作者表示新框架不依赖信号处理中经常需要的领域专业知识或简化假设,直接鼓励以数据驱动的方式产生鲁棒性。更多细节内容,请查看论文原文。 自动语音识别(ASR)支持的语音助手、智能音箱等逐渐成为我们日常生活的一部分,例如 Siri、Google Now、Cortana、Amazon Echo、Google Home、Apple HomePod、
机器之心
2018/05/10
1.1K0
python语音识别
语音识别技术,也被称为自动语音识别,目标是以电脑自动将人类的语音内容转换为相应的文字。应用包括语音拨号、语音导航、室内设备控制、语音文档检索、简单的听写数据录入等。
py3study
2018/08/03
19K3
python语音识别
iOS开发之SQLite-C语言接口规范(一)——Ready And Open Your SQLite
  为什么要搞一搞SQLite的C语言接口规范呢? 因为在做iOS开发中难免会遇到操作数据库的情况,你可以使用第三方的FMDB等,或者使用CoreData。但我们还是有必要去搞清楚如何去使用SQLite的C语言接口来操作SQLite数据库的。从今天开始就给大家结合实例详细的搞一搞SQLite的C语言接口。关于CoreData的东西请看之前的博客《IOS开发之表视图爱上CoreData》。   如果英文好的小伙伴呢,你可以不听我啰嗦,直接官网走起:http://www.sqlite.org 上面的东西是应有尽
lizelu
2018/01/11
1.3K0
iOS开发之SQLite-C语言接口规范(一)——Ready And Open Your SQLite
语音识别基础学习与录音笔实时转写测试
小编所在项目中,C1、C1Pro、C1Max录音笔,通过BLE和APP连接,音频文件实时传输到录音助手App端,具备实时录音转写的功能。工欲善其事必先利其器,小编补习了语音识别相关基础知识,对所测试应用的实时转写业务逻辑有了更深的认识。希望对语音测试的小伙伴们也有所帮助~~(●—●)
用户5521279
2020/11/02
3.2K0
语音识别基础学习与录音笔实时转写测试
Unity 接入科大讯飞语音识别及语音合成
首先需要到科大讯飞官网开发者控制台创建一个应用,创建成功后获得服务接口认证信息,我们只需用到其中的AppID。
CoderZ
2022/08/29
4K1
Unity 接入科大讯飞语音识别及语音合成
基于http的百度语音 REST api
什么是REST api? -- REpresentational State Transfer REST api是基于http请求的一种api,就百度语音识别的实例来讲,通过百度提供的url加上经过编码的音频文件,向百度服务器发出请求,然后百度服务器返回识别的内容。结束。
Mshu
2018/10/31
2.3K0
语音识别 | Java 实现 AI 人工智能技术 - 语音识别功能
说到语音识别、语音翻译、图像识别、人脸识别等等,现在已经非常非常非常普及了,看过‘最强大脑’的朋友,也应该对‘小度’这个机器人有所了解,战胜国际顶尖的‘大脑’- 水哥,(PS:内幕不知),那么今天,我们来看下关于语音识别,是如何做到的,Java又是如何识别语音的?如何转换语音?
码神联盟
2018/07/30
8.2K0
语音识别 |  Java 实现 AI 人工智能技术 - 语音识别功能
UI篇- UIWebView使用大全
UIWebView是常用开发控件,对于一些常用的设置是有必要记住或者记录下来的。 这里特别说一下,对于一个工程中整个就是一个WebView的情况,你可以通过一些设置来使整个工程显得接近于原生开发的APP,这样你是有机会被审核通过的。
進无尽
2018/09/12
2.3K0
UI篇- UIWebView使用大全
百度语音识别api使用python进行调用
百度语音现在是比较方便的接口,具体说明请看官方文档,本文分两个部分,先是使用python实现录音,然后再使用百度语音api进行识别上传。
十四君
2019/11/28
2K0
百度语音识别api使用python进行调用
C# 10分钟完成百度语音技术(语音识别与合成)——入门篇
我们现在就基于百度Ai开放平台进行语音技术的相关操作,demo使用的是C#控制台应用程序。
梁规晓
2019/08/09
4.4K0
C# 10分钟完成百度语音技术(语音识别与合成)——入门篇
推荐阅读
相关推荐
如何让iOS推送播放语音?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验