0

streamingRecognize()我对将语音流式传输到文本的功能有一些问题。

当我运行时,我收到错误:

Uncaught TypeError: 
speechClient.streamingRecognize is not a function

当我尝试通过我的 SpeechClient 实例的 api 对象访问它时,我收到此错误作为响应:

google.cloud.speech.v1.StreamingRecognizeRequest#0 is not a field:
undefined

这是我的代码:

console.log('Listenning started')        
document.getElementById("speak-btn").value = "Stop";

// retrieve settings
console.log("Retrieve audio and language settings...")
database.existSettingsRecord({}, (settingsRecord) => {             

    // The BCP-47 language code to use, e.g. 'en-US'
    const languageCode = settingsRecord.language; //'en-US';

    // Your Google Cloud Platform project ID
    const nathProjectId = 'protocol-recorder-201707';

    // Instantiates a client
    const speechClient = Speech({
        projectId: nathProjectId,
        keyFilename: './rsc/credentials/spr-426ec2968cf6.json'
    });

    // The encoding of the audio file, e.g. 'LINEAR16'
    const encoding = 'LINEAR16';

    // The sample rate of the audio file in hertz, e.g. 16000
    const sampleRateHertz = 16000;          

    const request = {
        config: {
            encoding: encoding,
            sampleRateHertz: sampleRateHertz,
            languageCode: languageCode
            },  
        interimResults: false // If you want interim results, set this to true
    };

    // Create a recognize stream           
    var notes = '';  
    console.log('crate the recognize Stream object to be piped..')
    //const recognizeStream = speechClient.createRecognizeStream(request)
    console.log("speechClient : ",speechClient)
    console.log("grpc : ",grpc)
    const recognizeStream = speechClient.streamingRecognize(request)
        .on('error', console.error)
        .on('data', (response) => {
            //process.stdout.write(response.results)   
            process.stdout.write(
                (response.results[0] && response.results[0].alternatives[0])
                ? `Transcription: ${response.results[0].alternatives[0].transcript}\n`
                : `\n\nReached transcription time limit, press Ctrl+C\n`);                  

            notes = document.getElementById("notes").value;  
            notes = notes + response.results;
            document.getElementById("notes").value =  notes;
        });

    // Start recording and send the microphone input to the Speech API
    console.log('Start recording and send the microphone input to the Speech API..')
    record.start({
        sampleRateHertz: sampleRateHertz,
        threshold: 0,
        // Other options, see https://www.npmjs.com/package/node-record-lpcm16#options
        verbose: true,
        recordProgram: 'sox', // Try also "arecord" or "sox"
        silence: '1.0',
        device : settingsRecord.audio_input
    })
    .on('error', console.error)
    .pipe(recognizeStream);

我在用 :

  • 赢得 10
  • 节点 js 7.10.0
  • 袜子 14.4.2

感谢您在这些问题上提供的任何帮助!

4

0 回答 0