eli*_*0tt 6 javascript ogg opus google-speech-api google-cloud-speech
我正在使用SpeechToText API从现场麦克风录音中获取语音转录。这适用于简单的 LINEAR16 编码,但我需要减少带宽,因此我切换到 OGG Opus 编码。
使用这个库在 OGG Opus 客户端中记录和编码音频。
然后,它使用 websocket 发送到后端应用程序。
最后,后端应用程序以流模式请求 STT API,该模式保持静默(没有错误,但输出中也没有文本)。
这些是编码选项:
var options = {
monitorGain: 0,
recordingGain: 1,
numberOfChannels: 1,
encoderSampleRate: 16000,
encoderPath: "./javascript/ogg_opus/encoderWorker.min.js",
originalSampleRateOverride: 16000,
streamPages: true,
encoderApplication: 2048
};
Run Code Online (Sandbox Code Playgroud)
这是发送到 API 的配置:
{
encoding: 'OGG_OPUS',
language: 'fr',
rate: 16000
}
Run Code Online (Sandbox Code Playgroud)
这是将音频发送到 websocket 的方式:
recorder.ondataavailable = function(typedArray){
var dataBlob = new Blob([typedArray], { type: 'audio/ogg' });
websocket.emit('audio_data', dataBlob);
};
Run Code Online (Sandbox Code Playgroud)
后端部分是用 Python 开发的,遵循这个例子。
您知道使 API 工作所需的 OGG Opus 配置吗?