“未捕获(承诺中):TypeError:webkitSpeechRecognition不是构造函数

问题描述 投票:0回答:1

[我正在尝试使SpeechRecognition在Firefox中工作,并了解到从上个月的2019年12月开始这是一个问题。

这是我从基本用法开始要遵循的代码

WebKitSpeechRecognition

这是我在打字稿中的实现:

 /**
 * Start voice recognition.
 *
 * @param force (optional) force restart of listener service
 */
 public async startVoiceRecognition(force?: boolean): Promise<void> {

 console.log('Speech Recognition: ', window.SpeechRecognition, window.webkitSpeechRecognition)

 // **START New Code following example in link above**
 window.SpeechRecognition = window.webkitSpeechRecognition || window.SpeechRecognition;

     if ((window.webkitSpeechRecognition) && this.fSpeechRecognitionRunning) {
          // speech recognition API supported
          console.log('API Supported');
          this.recognition = new window.SpeechRecognition();
     } else {
          // speech recognition API not supported
          console.log('API Not Supported');  
          return;  
     }

     // **END New Code following example in link above**

     // **Original Code**
     // Check if Speech Recognition is available in this browser
     **if (!(window.webkitSpeechRecognition) && !this.fSpeechRecognitionRunning) {
         // console.log('Error: Speech not supported');
         return;
     }**

}

我一直得到的是:

错误错误:“未捕获(承诺):TypeError:webkitSpeechRecognition不是构造函数

我知道它在粗体行中,因为当我仅用SpeechRecognition换出webkitSpeechRecognition时,对于其他项我仍然会遇到相同的错误...

错误错误:“未捕获(承诺):TypeError:SpeechRecognition不是构造函数

最后,这是我的polyfill.ts ...

declare global {
  interface Window {
    AudioContext: typeof window.AudioContext;
    webkitAudioContext: typeof window.AudioContext;
    webkitSpeechRecognition: typeof window.SpeechRecognition;
  }
}
typescript speech-recognition polyfills webkitspeechrecognition
1个回答
-1
投票

根据MDN [https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/SpeechRecognition],只有Chrome支持语音识别。 (截至2020年1月)

© www.soinside.com 2019 - 2024. All rights reserved.