如何加快谷歌云演讲

时间:2018-05-16 07:39:13

标签: google-cloud-platform streaming audio-streaming google-speech-api

我正在使用麦克风通过浏览器录制声音,将其转换为文件并将文件发送到java服务器。然后,我的java服务器将文件发送到云语音api并给我转录。问题是转录超长(对应2秒的时间约为3.7秒)。

所以我想加快转录速度。要做的第一件事就是流式传输数据(如果我在记录开始时开始转录。问题是我不能真正理解api。例如,如果我想从我的音频流中转录我的音频流source(浏览器/麦克风)我需要使用某种JS api,但是我无法在浏览器中找到任何可以使用的东西(我们不能像这样使用节点吗?)。

否则我需要将我的数据从我的js流式传输到我的java(不知道怎么做而不破坏数据......)然后从那里通过streamingRecognizeFile推送它:https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/speech/cloud-client/src/main/java/com/example/speech/Recognize.java

但它需要一个文件作为输入,所以我该如何使用它呢?我无法真正告诉系统我完成或不记录...它将如何理解它是转录的结束?

我想在我的网络浏览器中创建一些内容,就像那里的google演示一样: https://cloud.google.com/speech/

我认为有一些基本的东西我不明白使用流式api的方式。如果有人能够解释一下我应该如何处理这个问题,那就太遗憾了。

谢谢。

1 个答案:

答案 0 :(得分:1)

Google“语音转换通常比实时处理音频要快,平均要在15秒内处理30秒的音频” [1]。您可以使用Google APIs Explorer来准确测试每个请求将花费[2]的时间。

为加快转录速度,您可以尝试将识别元数据添加到请求[3]中。如果您知道语音[4]的上下文,则可以提供短语提示。或使用增强模型来使用特殊的机器学习模型集[5]。所有这些建议将提高准确性,并可能影响转录速度。

使用流识别时,可以在配置中将singleUtterance选项设置为True。这将检测用户是否暂停说话并停止识别。如果没有,流请求将继续到内容限制,即流请求[6]的音频长度的1分钟。