2017-02-07 5 views
4

Я использую вариацию API Google Speech от Node.JS.Google Cloud Speech в Node.JS: config speech_context

Все работает хорошо и dandy, пока я не осмелюсь передать массив строк speech_context параметр. Когда я пытаюсь использовать каждый из нижеперечисленных способов, поток прерывает, но ошибка испускается. Таким образом, мне невозможно диагностировать.

Я передаю массив строк ["one", "two", "three"], соблюдая the documentation, так что я верю. Моя первоначальная конфигурация выглядит следующим образом:

const cf = { 
    config: { 
     encoding: 'LINEAR16', 
     sampleRate: 48000 
    } 
} 

Я попытался cf.config.speech_context = ARRAY, cf.config.speech_context.phrases = ARRAY, cf.speech_context = ARRAY и cf.speech_context.phrases = ARRAY.

Опять же, я не получаю сообщение об ошибке и не получаю результат. Я ничего не получаю. Оригинальная конфигурация сама по себе работает.

Это с основным потоком:

recognizeStream = speech.createRecognizeStream(cf) 
    .on('error', console.error) 
    .on('data', console.log) 

Идеи? Любая помощь будет очень высоко ценится!

ответ

0
const request = { 
    config: { 
     encoding: encoding, 
     sampleRate: sampleRate, 
     languageCode:'en-IN-x-longform', 
    } 
    }; 

    // Stream the audio to the Google Cloud Speech API 

    const recognizeStream = speech.createRecognizeStream(request) 
    .on('error', (error) => { 
     console.error; 
    }) 
    .on('data', (data) => { 
     console.log('Data received: %j', data); 
     if('results' in data) 
     console.log(chalk.bgYellow(data.results)); 
     logger.log(JSON.stringify(data)); 
    }); 



    // Stream an audio file from disk to the Speech API, e.g. "./resources/audio.raw" 

    filename = "./resources/audio.raw"; 
    fs.createReadStream(filename).pipe(recognizeStream); 



//This is working for me 
//I think you are missing the pipe part in , so you can do 

recognizeStream = speech.createRecognizeStream(cf) 
     .on('error', console.error) 
     .on('data', console.log) 

    filename = "./resources/audio.raw"; 
    fs.createReadStream(filename).pipe(recognizeStream); 

`