首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于语音(噪声)强度级别的语音识别?

基于语音(噪声)强度级别的语音识别?
EN

Stack Overflow用户
提问于 2012-06-13 02:50:44
回答 2查看 3.8K关注 0票数 1

我想建立一个android应用程序,它将识别我的声音,将其转换为文本,并将显示我刚才说的吐司。我能够做到这一点,使用按钮,将启动语音识别器为我。但现在我只想让它基于我的声音工作。

应用程序应该触发语音识别器,只有当我开始说话时才开始收听,当它检测到静默时应该停止收听。就像会说话的应用程序的功能一样。在那里它记录了语音,但我想使用语音识别器来识别它。像这样的东西:

代码语言:javascript
运行
复制
if(no silense)
   Launch Recognizer
else if(silence)
   Stop Recognizer
Show toast

主要的问题是,在启动语音识别器之前,我如何感知用户是否在说话。有没有办法感知噪音强度?

其次,有没有办法在后台启动语音识别器...??

如果我可以在后台服务中检测到音频信号(有人开始说话),然后它会立即启动语音识别器来识别语音,这是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-21 23:15:13

好的,我已经想好了。为此,我使用了mediaRecorder类。当应用程序启动时,我开始使用mediaRecoder录制音频(或者您可以提供一个按钮来启动和停止整个过程)。我检查mediaRecorder正在录制的音频的振幅。如果振幅超过预定义的阈值,我会暂停录制并启动Voice Recognition activity。在OnActivityResult中,我再次恢复录音机。

代码语言:javascript
运行
复制
if(mRecorder != null){
        int i= mRecorder.getMaxAmplitude();   // Getting amplitude 
        Log.d("AMPL : ", String.valueOf(i));

        if(i>20000){      // If amplitude is more than 20000
            onRecord(false);    //Stop recording before launching recognizer
            Intent intent=new Intent(this,VoiceRecognizer.class);   //Launch recognizer activity
            startActivityForResult(intent, 12112);
        }

或者:您也可以使用this中提到的RecognitionListener接口,所以post。

票数 1
EN

Stack Overflow用户

发布于 2012-06-16 03:54:25

大多数语音识别器已经有一个端点指针来检测语音的开始和结束。端点指针通常尝试读取环境噪声水平,以确定静默的基线,并调整信噪比。但是,如果输入噪声水平改变,它可能会触发端点指针的语音开始。如果一直在听,用灵敏的麦克风,端点指针也可能会拾取你旁边的人说话,而不是你。

因此,使用语音按钮是一种很好的做法,可以在您想要发言时进行通知。试图让识别器一直在监听可能不是你想要做的,或者应该留给研究人员。

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

https://stackoverflow.com/questions/11002930

复制
相关文章

相似问题

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