【问题标题】:How does Google Keep do Speech Recognition while saving the audio recording at the same time?Google Keep 如何在保存录音的同时进行语音识别?
【发布时间】:2014-10-17 07:16:10
【问题描述】:

Android 的 SpeechRecognizer 显然不允许将您进行语音识别的输入记录到音频文件中。 也就是说,您要么使用 MediaRecorder(或 AudioRecord )录制语音,要么使用 SpeechRecognizer 进行语音识别,在这种情况下,音频不会被录制到文件中(至少不是您可以访问的文件);但你不能同时做这两件事。

在Android中如何实现录音和语音识别的问题已经被问过好几次了,最流行的“解决方案”是录制一个flac文件,使用谷歌非官方的Speech API,它可以让你通过 POST 请求发送一个 flac 文件并获得一个带有转录的 json 响应。 http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/(安卓版本过时) https://github.com/katchsvartanian/voiceRecognition/tree/master/VoiceRecognition http://mikepultz.com/2013/07/google-speech-api-full-duplex-php-version/

这很好用,但有一个巨大的限制,即它不能用于超过大约 10-15 秒的文件(确切的限制尚不清楚,可能取决于文件大小或字数)。这使得它不适合我的需要。

另外,将音频文件分割成更小的文件也不是一个可行的解决方案;即使忘记在正确的位置(而不是在单词中间)正确拆分文件的困难,对上述 Web 服务 api 的许多连续请求都会随机导致空响应(Google 表示每个请求的使用限制为 50 个)天,但像往常一样,他们没有透露实际使用限制的详细信息,这些限制明确限制了请求的爆发)。

因此,所有这些似乎都表明,在 Android 中获取语音转录的同时将输入记录到音频文件中是不可能的。

但是,Google Keep Android 应用正是这样做的。 它允许您说话,将您所说的内容转录成文本,并保存文本和录音(虽然不清楚它存储在哪里,但您可以重播)。 而且没有长度限制。

所以问题是:有人知道 GOOGLE 是如何保存它的吗? 我会看源代码,但它似乎不可用,是吗?

我在进行语音识别时嗅探了 Google Keep 发送和接收的数据包,它肯定没有使用上面提到的语音 api。所有流量都是 TLS 并且(从外部)看起来与您使用 SpeechRecognizer 时几乎相同。

那么是否存在一种将麦克风输入流“拆分”(即复制或多路复用)为两个流,并将其中一个提供给 SpeechRecognizer 并将另一个提供给 MediaRecorder 的方法?

【问题讨论】:

标签: android google-api speech-recognition audio-recording


【解决方案1】:

Google Keep 启动 RecognizerIntent 并带有某些未记录的附加内容,并期望生成的意图包含录制的音频的 URI。如果 RecognizerIntent 由 Google 语音搜索提供服务,那么一切正常,Keep 会获取音频。

请参阅record/save audio from voice recognition intent 了解更多信息和代码示例,该示例以与 Keep(可能)相同的方式调用识别器。

请注意,此行为不是 Android 的一部分。这只是目前两个封闭源 Google 应用程序相互通信的未记录方式。

【讨论】:

  • 谢谢!所以我想我必须启动一个 RecognizerIntent 并且不能通过使用具有相同意图的 SpeechRecognizer 来实现相同的目标,对吧?
  • 我不知道如何通过 SpeechRecognizer 做到这一点。也许您可以就此提出一个新问题。
【解决方案2】:

它使用onPartialResults(Bundle) 此事件在仍在录制时返回从录制的语音中识别的文本 它也可以在 Xamarin 上使用

【讨论】:

  • 问题不是如何实时获得识别结果,而是如何同时获得识别结果和录制的音频文件。我认为这个答案根本没有解决这个问题。
猜你喜欢
  • 1970-01-01
  • 2017-02-07
  • 2021-08-14
  • 2014-05-27
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多