当前位置: 首页 > 知识库问答 >
问题:

基于语音(噪声)强度水平的语音识别?

樊桐
2023-03-14

我想构建一个android应用程序,它可以识别我的声音,将其转换为文本,并显示我刚才在祝酒词中所说的内容。我可以通过使用一个按钮来完成这项工作,该按钮将为我启动语音识别器。但现在我想让它只在我的声音的基础上工作。

应用程序应触发语音识别器,仅当我开始说话时才开始听我说话,当它感觉到沉默时应停止听我说话。就像会说话的tom应用程序的功能一样。它记录了声音,但我想用语音识别器识别它。像这样的事情:

if(no silense)
   Launch Recognizer
else if(silence)
   Stop Recognizer
Show toast

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

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

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

共有2个答案

方浩旷
2023-03-14

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

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);
        }

或者:您也可以使用本SO帖子中提到的RecognitionListener接口。

嵇永望
2023-03-14

大多数语音识别器已经有了endpoint检测器来检测语音的开始和结束。endpoint检测者通常试图读取环境噪声水平,以确定静音基线并调整信噪比。但是,如果输入噪声级发生变化,则可能会触发终结点的语音开始。如果一直在用灵敏的麦克风听,endpointendpoint也可能会听到你旁边说话的人,而不是你。

因此,使用语音按钮是一种很好的做法,可以在您希望讲话时宣布。你可能不想让识别器一直在听,也不应该让研究人员来做。

 类似资料:
  • 我试图学习和使用语音识别应用程序,搜索了太长时间,找到了许多有用的信息和指南。。 最后我找到并使用了这个项目:这里 它工作得很好,直到我尝试了一些嘈杂的背景样本。。 我试图添加一个自定义语法随着听写,尝试使用自定义语法只,但仍然得到相同的结果(或更糟)... 总是相同的结果:请键入字母你听到它的工作人员... 任何信件总是产生:它的工作人员。 那么,有没有办法降低背景噪音?或者编辑WAV样本? 还

  • 本文向大家介绍Android基于讯飞语音SDK实现语音识别,包括了Android基于讯飞语音SDK实现语音识别的使用技巧和注意事项,需要的朋友参考一下 一、准备工作 1、你需要android手机应用开发基础 2、科大讯飞语音识别SDK android版 3、科大讯飞语音识别开发API文档 4、android手机 关于科大讯飞SDK及API文档,请到科大语音官网下载:http://www.xfyun

  • 我想在phonegap中创建应用程序,在Android和IOS中使用连续语音识别。我的应用程序应该等待用户的声音,当他/她说“下一步”时,应用程序应该更新屏幕并执行一些操作。 我发现这个插件:https://github.com/macdonst/SpeechRecognitionPlugin而且它工作得非常快。但在语音识别启动几秒钟后,语音识别器停止工作,但并没有语音。是否有任何方法或标志,如i

  • 我正在为嵌入式设备的语音相关语音识别解决方案寻找解决方案。我已经研究过Pocketsphinx,但由于我仍然不熟悉它,我想也许更有经验的人可能会知道。是否有可能使用Pocketsphinx来实现这样的语音识别。它应该记录音频,提取其特征,然后将其与所说的任何内容进行匹配,而不是使用声学和语言模型。是否有可能使用Pocketsphinx实现此流程?如果没有,有人能为这样的解决方案指出正确的方向吗?谢

  • 本文向大家介绍python语音识别实践之百度语音API,包括了python语音识别实践之百度语音API的使用技巧和注意事项,需要的朋友参考一下 百度语音对上传的语音要求目前必须是单声道,16K采样率,采样深度可以是16位或者8位的PCM编码。其他编码输出的语音识别不出来。 语音的处理技巧: 录制为MP3的语音(通常采样率为44100),要分两步才能正确处理。第一步:使用诸如GoldWave的软件,

  • 我想使用CMU Sphinx 5 prealpha进行实时语音识别(用于检测一些热词)并使用此命令: 我对准确度很满意,但我注意到一个滞后。例如,我开始识别并说“你好”,Sphinx在1-3秒后打印“你好”(太棒了!),我等待几分钟后再次说“你好”,Sphinx在10-18秒后打印“你好”。我等待几分钟后再次说“你好”,Sphinx在3-7秒后打印“你好”。任务管理器显示Sphinx使用了2-17