【问题标题】:Android: How to detect when a user stops talking into the microphoneAndroid:如何检测用户何时停止对着麦克风说话
【发布时间】:2011-03-09 15:12:30
【问题描述】:

我有一个 Android 应用程序,它在应用程序启动时开始从麦克风录音。在我当前的版本中,用户必须按下 STOP 按钮才能停止录制。

我如何检测到用户已经停止说话并使用它来触发录音机停止?

类似于 Android 中语音识别功能的实现。用户停止说话,然后翻译语音。我见过其他应用程序可以做到这一点,比如会说话的汤姆类型的应用程序。

作为旁注,我还想展示某种类型的视觉效果,表明麦克风正在接收声音。显示传入的声级的东西。

任何帮助表示赞赏。

【问题讨论】:

标签: android audio microphone speech


【解决方案1】:

一种方法是在记录上使用线程并在记录的字节上使用语音功率分析过程, 有一个示例代码供您参考:http://musicg.googlecode.com/files/musicg_android_demo.zip

【讨论】:

    【解决方案2】:

    你用什么来录制音频?这可能会提供一些线索:

    android.media.MediaRecorder:

    • 常量 MEDIA_RECORDER_INFO_MAX_DURATION_REACHED 可以与 onInfoListener 一起使用。

    android.speech.SpeechRecognizer:

    • 附加一个 RecognitionListener 并调用 onEndofSpeech()。

    【讨论】:

    • 我正在使用 MediaRecorder 进行录制。而且我不能使用 SpeechRecognizer,因为我需要保存音频文件。我找不到从 SpeechRecognizer 保存到音频的方法,也无法同时将 MediaRecorder 和 SpeechRecognizer 连接到麦克风。我会检查 MEDIA_RECORDER_INFO_MAX_DURATION_REACHED
    • 看起来其他人也想从保存的音频文件中识别语音:stackoverflow.com/questions/2319735/… 如果您不需要相同的语音,您可以转换语音识别器的响应,然后记录 TextToSpeech 的输出文本。虽然这些看起来不必要的复杂,而且很容易出现转录错误。
    • 我也看到了那个帖子。实际上,我想要相反的结果。我想使用 Google 的 STT 引擎并获取文本转录,但还要保存用户所说的音频。好吧,不是相反,而是不同的顺序。不过做不到。
    • 你的最终结论是什么?
    • 你有解决这个问题的办法吗,我也在研究。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2020-09-05
    • 1970-01-01
    相关资源
    最近更新 更多