【问题标题】:Electron not working with web speech API?Electron 不能使用网络语音 API?
【发布时间】:2020-03-03 06:40:37
【问题描述】:
mounted() {
 window.SpeechRecognition = window.webkitSpeechRecognition || 
 window.SpeechRecognition;
 let finalTranscript = "";
 let recognition = new window.SpeechRecognition();

 recognition.interimResults = true;
 recognition.maxAlternatives = 10;
 recognition.continuous = true;

recognition.onresult = event => {
  let interimTranscript = "";
  for (
    let i = event.resultIndex, len = event.results.length;
    i < len;
    i++
  ) {
    let transcript = event.results[i][0].transcript;
    if (event.results[i].isFinal) {
      finalTranscript += transcript;
    } else {
      interimTranscript += transcript;
    }
  }

  console.log(finalTranscript + interimTranscript);
};
recognition.start();
}

无法让网络语音 API 在我的电子应用程序中运行,相同的代码在浏览器中运行良好。有什么可能的原因吗?我正在使用带有电子的 vue js,并且在安装组件时会调用语音部分。

【问题讨论】:

  • 请提供一些代码sn-ps ?

标签: javascript electron webspeech-api


【解决方案1】:

您可能已经知道,Electron 构建在 Chromium open-source browser 之上。

浏览器和 Electron 之间的这种差异源于 Chromium 不包含运行某些网络服务(例如语音、地理定位)所需的 Google API 密钥,而 Chrome 包含(来源:Chromium Browser vs. Google Chrome)。

截至今天,存在一个 GOOGLE_API_KEY 环境变量,可为您的应用添加 API 密钥,但它仅适用于 Geolocation Web 服务。您可以在Electron source code 中验证这一点,其中该变量仅与ElectronBrowserClient::GetGeolocationApiKey() 函数挂钩。

目前,最好的办法是研究直接实现这些底层 Google API。

【讨论】:

    猜你喜欢
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 2011-10-26
    相关资源
    最近更新 更多