2017-09-04 57 views
0

我試圖運行nodeJS Google Speech example,但是當我用node recognize.js listen啓動時,它在3秒後停止,沒有任何輸出。沒有錯誤輸出。 我已經嘗試過其他NodeJS程序,它們運行沒有問題。 我在Ubuntu 14.04.5 LTS上使用nodejs v8.4.0和npm v5.3.0。我已經在Ubuntu 16.04 LTS上試過了,並且運行良好。Google語音應用程序在啓動後3秒停止

這是我試圖運行代碼:我已經想通了,這是從節點記錄lpcm16設備選項

'use strict'; 
function streamingMicRecognize (encoding, sampleRateHertz, languageCode) { 
    const record = require('node-record-lpcm16'); 
    const Speech = require('@google-cloud/speech'); 
    const speech = Speech(); 
    const request = { 
    config: { 
     encoding: encoding, 
     sampleRateHertz: sampleRateHertz, 
     languageCode: languageCode 
    }, 
    interimResults: false // If you want interim results, set this to true 
    }; 

    const recognizeStream = speech.streamingRecognize(request) 
    .on('error', console.error) 
    .on('data', (data) => 
     process.stdout.write(
      (data.results[0] && data.results[0].alternatives[0]) 
      ? `Transcription: ${data.results[0].alternatives[0].transcript}\n` 
      : `\n\nReached transcription time limit, press Ctrl+C\n`)); 

    record 
    .start({ 
     sampleRateHertz: sampleRateHertz, 
     threshold: 0, 
     verbose: false, 
     recordProgram: 'rec', // Try also "arecord" or "sox" 
     silence: '10.0' 
    }) 
    .on('error', console.error) 
    .pipe(recognizeStream); 

    console.log('Listening, press Ctrl+C to stop.'); 
} 

const cli = require(`yargs`) 
    .demand(1) 
    .command(
    `listen`, 
    `Detects speech in a microphone input stream. This command requires that you have SoX installed and available in your $PATH. See https://www.npmjs.com/package/node-record-lpcm16#dependencies`, 
    {}, 
    (opts) => streamingMicRecognize(opts.encoding, opts.sampleRateHertz, opts.languageCode) 
) 
    .options({ 
    encoding: { 
     alias: 'e', 
     default: 'LINEAR16', 
     global: true, 
     requiresArg: true, 
     type: 'string' 
    }, 
    sampleRateHertz: { 
     alias: 'r', 
     default: 16000, 
     global: true, 
     requiresArg: true, 
     type: 'number' 
    }, 
    languageCode: { 
     alias: 'l', 
     default: 'en-US', 
     global: true, 
     requiresArg: true, 
     type: 'string' 
    } 
    }) 
    .example(`node $0 listen`) 
    .wrap(120) 
    .recommendCommands() 
    .epilogue(`For more information, see https://cloud.google.com/speech/docs`) 
    .help() 
    .strict(); 

if (module === require.main) { 
    cli.parse(process.argv.slice(2)); 
} 
+1

你會想編輯你的問題,以確切顯示你在做什麼。現在,沒有看到任何代碼,它只是一個猜測遊戲。 –

+0

謝謝@DavidMakogon,我添加了更多細節。 –

回答

0

。僅在record.start處添加了選項device: 'plughw:0,0'