Cloud Speech API + node.jsで音声認識をさせてみる3
今回は音声をローカルファイルに書き込まず、リアルタイムで音声認識させてconsoleに出す処理を書いていきます。
Cloud Speech API + node.jsで音声認識をさせてみる1
Cloud Speech API + node.jsで音声認識をさせてみる2
今回はリアルタイムで認識させるので、fsモジュールは必要ないので外しておきます。
リアルタイムで認識させるためにstreamingRecognize
を使います。
const record = require('node-record-lpcm16'); const speech = require('@google-cloud/speech'); const speechClient = new speech.SpeechClient(); const SAMPLE_RATE = 16000 const request = { config: { encoding: 'LINEAR16', sampleRateHertz: SAMPLE_RATE, languageCode: 'ja-jp' } }; const recognizeStream = speechClient .streamingRecognize(request) .on('error', console.error) .on('data', (data) => { console.log(data.results[0]); }); record.start({ sampleRate: SAMPLE_RATE, recordProgram: 'sox', thresholdStart: 0.2, thresholdEnd: 0.1, silence: '0.1' }).pipe(recognizeStream);
まず以下でrecognizeStreamを作成します。
const recognizeStream = speechClient .streamingRecognize(request) .on('error', console.error) .on('data', (data) => { console.log(data.results[0]); });
そしてレコーディングを開始して、取り込んだデータをrecognizeStreamに渡します。
record.start({ sampleRate: SAMPLE_RATE, recordProgram: 'sox', thresholdStart: 0.2, thresholdEnd: 0.1, silence: '0.1' }).pipe(recognizeStream);
ここまで記述したindex.jsを起動します。
node ./index.js
これでマイクに向かってしゃべると内容がConsoleに表示されます。
結果はこんな感じです。
$ node index.js { alternatives: [ { words: [], transcript: 'あいうえお', confidence: 0.9614928960800171 } ], isFinal: true, stability: 0 }
今日はここまで!読んでいただいてありがとうございました!!!