【问题标题】:Error on text-to-speech api : ReferenceError: speechSynthesis is not defined文本到语音 api 上的错误:ReferenceError:未定义语音合成
【发布时间】:2020-04-26 08:59:36
【问题描述】:

我正在 quasar 框架中制作一个程序(他在 vue 上工作,可以由 cordova 在移动设备上编译)。而且我在移动设备上运行它时遇到了一些问题。这是函数:

    activateAudio: function(){
      try{
        speechSynthesis.speak(new SpeechSynthesisUtterance('hey'))        
      }catch(e){
        alert(e)
      }

当我运行此代码时,我会收到此警报:

ReferenceError:未定义语音合成

我还尝试将 window 放在变量之前。为什么会出现这个错误?

图书馆关注:​​https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance/SpeechSynthesisUtterance

【问题讨论】:

  • 好吧,看起来您正在尝试使用 Web Speech API,但这不是在支持 Web Speech API 的浏览器中运行的。您需要使用 Cordoba 提供的某些配置来访问本机语音 API,例如 this

标签: javascript cordova vue.js text-to-speech quasar-framework


【解决方案1】:

您似乎正在尝试在非浏览器 JS 环境中使用 Web Speech API。除非您的 JS 环境实现了 Web Speech API,否则您需要找到一些您的 JS 环境支持的替代 API。

鉴于您使用的是 Cordova,您可能应该尝试使用以下内容:cordova-plugin-tts

【讨论】:

  • 我已经尝试过导入,但它让我一直向我显示他不能称之为未定义的警报。也许它发生在编译?奇怪的是,这个 webkit 中的 SpeechSynthesis api 在这个环境中工作得很好......这是遵循的文档:quasar.dev/quasar-cli/developing-cordova-apps/cordova-plugins
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
  • 2018-07-26
  • 2011-10-24
  • 1970-01-01
相关资源
最近更新 更多