我想构建一个应用程序来响应你在吹灭生日蜡烛时所发出的声音。这本身并不是语音识别(声音不是英语中的单词),而OpenEars上非常善良的Halle告诉我,使用该框架是不可能的。 (感谢您的快速回复,哈莉!)
有没有办法“教”一个应用程序声音,以便应用程序可以随后识别它?
我该怎么做?它甚至可行吗?我疯了还是遇到比我想象的要困难得多的问题?我的作业应该是什么?
答案 0 :(得分:1)
好消息是它是可以实现的,而且你不需要任何第三方框架 - AVFoundation
就是你真正需要的。
来自Mobile Orchard的一篇很好的文章涵盖了细节,但对于一个四岁的孩子来说,有些问题需要注意。
在开始在真实设备上录制之前,我需要设置音频会话类别,如下所示:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
在这一行中使用阈值:
if (lowPassResults > 0.95)
我发现0.95
过高并且得到了更好的结果,将其设置在介于0.55和0.75之间。同样,我在这一行中使用了0.05
乘数:
double peakPowerForChannel = pow(10, (0.05 * [recorder peakPowerForChannel:0]));
答案 1 :(得分:0)
在能量水平上使用简单的阈值可能不足以满足您的使用情况。
解决这个问题的一个好方法是首先从声音流中提取一些特定于吹灭蜡烛声音的属性。然后使用机器学习算法根据训练示例(一组您想要识别的声音的录音)训练模型,然后可以使用该应用程序对进入麦克风的声音片段进行分类
考虑到你在吹灭蜡烛时可能发出的环境声音(生日总是很吵,不是吗?),可能很难培养出足够强大的背景声音模型。如果您关心准确性,这不是一个简单的问题。
虽然可能是可行的: 请原谅我的自我推销,但我的公司开发了一个SDK,为您提出的问题提供答案:“有没有办法”教“应用程序声音,以便应用程序可以随后识别它?” 我不确定吹出蜡烛的特定声音是否会起作用,因为SDK主要针对涉及某些打击乐声音的应用程序,但它可能仍适用于您的情况。这是一个链接,您还可以在其中找到可下载的演示程序,如果您愿意,可以尝试:SampleSumo PSR SDK