有趣的话题,高级的思路等牛人来说。
我说一个笨思路,不断的录音片段,不断的比对波形。
已答就不要重复邀请了哇。另外你想要持续匹配必然是不断录音不断匹配,现实世界中并没有如同推送服务一样的功能,可以出现了什么声音再调用你的程序。你只能是看看如何设计优化这个匹配和录音的平衡,并且优化你的匹配速度:比方说你试试录音能否多进程(线程)?如果能双开,那么交替覆盖空白时间也是其中一种算法。
你思考一下苹果的语音助手(老版本)和安卓的语音助手,是不是都要先按一个按钮才能开始语音助手服务?说明只有持续监听才能解决问题,但是手机为了保证续航,又不能做持续监听。
后来,苹果想了个什么办法呢,他自己设计了一个芯片,其中有一个功能就是可以捕捉麦克风收听到“hey siri”就调用语音助手的功能,具体的技术细节我不太清楚,有可能是让麦克风只要收到超过多少分贝的声音就开始小范围匹配“hey siri”之类的吧
至于减噪,网上有不少关于用电脑软件调节波形文件来降噪的方法教程,虽然你不能直接用,但是提供了思路
计算声音的相似性,我个人认为可以通过计算波形的特征来完成,我个人才疏学浅,没有这方面的经验,如果是语音识别,推荐你用讯飞的api试试,讯飞在这一块技术还是蛮强的。
但是,像人类一样可以很精准的从人群中识别出熟人声音的功能,那个属于人工智能的范畴,目前研究水平还不够到可以应用的地步。
持续匹配是不需要的,只需要持续监听声音的分贝来判断为指令开始,然后监听1秒内的分贝下降作为指令结束,然后将音频传给识别端即可