1

サーバー側のコードでは、クライアント側がサーバー側から転写テキストを受け取るときに、Web ソケット接続を使用してクライアント (Angular) に転写テキストを渡そうとしています。テキストを上書きするか、同じテキストが複数回書き込まれる場合があります私は.isFinalで試しましたが、問題は同じままです.Belowはそのコードスニペットです。

サーバー側のコード:

const request = {
    config: {
        encoding: "MULAW",

        sampleRateHertz: 8000,
        languageCode: "pt-PT"
          },
          singleUtterance : false,
    interimResults: true
  };
  recognizeStream = client
              .streamingRecognize(request)
              .on("error", console.error)
              .on("data", data => {
                //data.results[0].isFinal = true
                console.log(data.results[0].alternatives[0].transcript);
                wss.clients.forEach( client => {
                     if (client.readyState === WebSocket.OPEN) {
                        
                        if (data.results[0].isFinal) {
                       client.send(
                         JSON.stringify({
                         event: "interim-transcription",
                         text: data.results[0].alternatives[0].transcript
                       })
                     )
                    }
                }
                 });
         
              });

クライアント側のコード:-

if (data.event === "interim-transcription") {
         websocket.addEventListener("message", (msg)=>{
         console.log("Message from websocket"+msg)
         const data = JSON.parse(msg.data);
         content = document.createElement('span')
         content.setAttribute('class', 'my-1')
         content.innerHTML = '<span style="font-weight: bold;">Customer: </span>' + data.text
         document.getElementById("transcription-container").appendChild(content)
      }
  }

参考URL:https ://www.twilio.com/blog/live-transcribing-phone-calls-using-twilio-media-streams-and-google-speech-text

注: サーバー側とクライアント側からの Nodejs & Express js:- Angular 8

どんな助けでも大歓迎です。

4

0 に答える 0