首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android中的语音活动检测

Android中的语音活动检测
EN

Stack Overflow用户
提问于 2010-10-15 21:43:09
回答 3查看 4.1K关注 0票数 0

我正在编写一个应用程序,它的行为将类似于现有的语音识别,但将发送声音数据到一个专有的web服务来执行语音识别部分。我使用的标准MediaRecord (这是AMR编码),似乎是完美的语音识别。通过getMaxAmplitude()方法提供的唯一数据是振幅。

我试图检测人什么时候开始说话,这样当这个人停止说话大约2秒时,我就可以继续将声音数据发送到web服务。现在,我用一个阈值来表示振幅,如果它超过一个值(即1500),那么我假设这个人在说话。我担心的是,振幅水平可能因设备而异(即Nexus One v Droid),因此我正在寻找一种更标准的方法,可以从振幅值中导出。

我看了图幅,但它并没有提供一个方法来做它的幅度。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-16 00:16:28

嗯,这可能没有多大帮助,但是从应用程序测量设备的麦克风捕获的偏移噪声开始,然后在此基础上动态地应用阈值如何?这样,你就可以使它适应不同设备的麦克风,也适应用户在特定时间使用的环境。

票数 0
EN

Stack Overflow用户

发布于 2010-10-18 11:06:45

1500是太低的一个数字。测量振幅的变化会更好。然而,它仍然会导致漏检。

我担心解决这个问题的唯一方法是弄清楚如何识别一个简单的单词或声调,而不是简单地检测噪音。

票数 0
EN

Stack Overflow用户

发布于 2010-10-16 00:30:39

大多数智能手机都配备了接近传感器。Android有使用这些传感器的API。这对你所描述的工作来说就足够了。当用户移动手机靠近他的耳朵,你可以编码应用程序开始录音。这应该很容易。

用于android的传感器类

票数 -5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3946375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档