2017-06-03 25 views
0

我正在使用非常類似的代碼Google's example使用Node.js客戶端庫在音頻流上執行語音識別。爲什麼音頻流識別的API響應時間如此緩慢?

該API正確解析我的音頻,但我發現自己等待30-45秒纔得到響應。考慮到demo是如何活潑,這似乎不正確。我的配置有錯誤嗎?

我試着寫一個本地文件,而不是隻是爲了確保音頻清晰地通過,錄音看起來很好。

感謝您的幫助!

import record from 'node-record-lpcm16'; 
import Speech from '@google-cloud/speech'; 


function streamToParser(){ 
    const speech = Speech(); 
    const request = { 
    config: { 
     encoding: 'LINEAR16', 
     sampleRateHertz: 16000, 
     languageCode: 'en-US', 
    }, 
    interimResults: true, 
    }; 

    const recognizeStream = speech.createRecognizeStream(request) 
    .on('error', console.error) 
    .on('data', (data) => { 
    console.log(data.results) 
    }); 

    record 
    .start({ 
    sampleRate: 16000, 
    threshold: .6, 
    verbose: true, 
    silence: '5.0' 
    }) 
    .on('error', console.error) 
    .pipe(recognizeStream) 

    console.log('Google is listening...') 
}; 



streamToParser(); 

回答

0

想通了 - 我沒有配置Speech與auth憑據,所以我的請求必須已被deprioritized。下面是固定的,按照說明書here的配置:

const speech = Speech({ 
    projectId: 'my project ID from the Google Cloud dev console', 
    keyFilename: 'path/to/keyfile.json', // that I generated/downloaded from the Google Cloud dev console 
}); 

要創建json密鑰文件,遵循「在自己的服務器」一節中列出here的步驟。