electron 电子语音识别的实现方法有哪些?

h9vpoimq  于 2023-01-22  发布在  Electron
关注(0)|答案(1)|浏览(416)

所以我有一个电子应用程序,使用网络语音API(语音识别)采取用户的声音,然而,它不工作.代码:

if ("webkitSpeechRecognition" in window) {
    let SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
    let recognition = new SpeechRecognition();

    recognition.onstart = () => {
      console.log("We are listening. Try speaking into the microphone.");
    };

    recognition.onspeechend = () => {
      recognition.stop();
    };

    recognition.onresult = (event) => {
      let transcript = event.results[0][0].transcript;
      console.log(transcript);
    };

    recognition.start();
  } else {
    alert("Browser not supported.")
  }

它在控制台中显示We are listening...,但无论你说什么,它都不会给予输出。另一方面,在Google Chrome中运行完全相同的操作,无论我说什么,控制台都会被console.log(transcript);部分注销。我做了一些进一步的研究,结果发现Google最近停止了对基于shell的Chrome窗口中的Web Speech API的支持(Tmk,所有不是谷歌Chrome或MS Edge的东西),所以这似乎是它在我的电子应用程序上不工作的原因。
参见:electron-speech library's endArtyom.js issueanother stackOverflow question regarding this
有什么办法能让它在电子模式下工作吗?

whitzsjs

whitzsjs1#

最后我做了一个实现,使用媒体设备API通过麦克风获取用户的语音,然后使用WebSockets将其发送到Python服务器,后者使用SpeechRecognition pip包的音频流,并将转录的文本返回到客户端(电子应用程序)。
这是我实现的,对于像这样简单的事情来说太长了,但是如果有人有更好的建议,请写一个答案让我知道。

相关问题