【问题标题】:how to perform continuous speech to text on webrtc communication audio stream in mobile app如何在移动应用程序中的 webrtc 通信音频流上执行连续语音到文本
【发布时间】:2019-09-27 10:39:36
【问题描述】:

我正在尝试在 webrtc 纯音频通话期间向移动应用程序中的文本识别器添加连续语音。

我在移动端使用 react native,带有react-native-webrtc module 和用于信令部分的自定义 Web api。我已经掌握了 web api,所以如果它是唯一的解决方案,我可以在它的一侧添加该功能,但我更喜欢在客户端执行它以避免在不需要时消耗带宽。

首先,我使用笔记本电脑浏览器工作并测试了一些想法。我的第一个想法是使用 webspeechapi 中的 SpeechRecognition 接口:https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition

我已将the audio only webrtc demoaudiovisualiser demonstration 合并在一页中,但在那里,我没有找到如何将mediaElementSourceNode(通过streamvisualizer.js 第44 行的AudioContext.createMediaElementSource(remoteStream) 创建)连接到web_speech_api @987654333 @ 班级。在 mozilla 文档中,音频流似乎与类的构造函数一起提供,它可以调用 getUserMedia() api。

其次,在我的研究过程中,我发现了两个开源语音转文本引擎:cmusphinxmozilla's deep-speech。第一个有一个js binding,看起来很棒audioRecoder,我可以在第一次尝试时用我自己的mediaElementSourceNode。但是,如何将它嵌入到我的反应原生应用程序中?

还有 Android 和 iOS 原生 webrtc 模块,我可能能够与 cmusphinx 平台特定绑定(iOSAndroid)连接,但我不知道原生类的互操作性。你能帮我解决这个问题吗?

我还没有创建任何“语法”或定义“热词”,因为我不确定所涉及的技术,但如果我能够将语音识别引擎连接到我的音频流,我可以稍后再做。

【问题讨论】:

  • 请问,你是怎么解决的?我正在做一个类似的项目,不知道如何将语音识别与网络通话结合起来,谢谢!

标签: react-native webrtc web-audio-api speech-to-text cmusphinx


【解决方案1】:

您需要通过在呼叫中添加another webrtc party 或通过其他协议(TCP/Websocket/等)将音频流式传输到 ASR 服务器。在服务器上执行识别并将结果发回。

首先,我使用笔记本电脑浏览器工作并测试了一些想法。我的第一个想法是使用 webspeechapi 中的 SpeechRecognition 接口:https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition

这是实验性的,在 Firefox 中并不真正有效。在 Chrome 中,它只直接接收麦克风输入,而不是来自调用者和被调用者的双流。

第一个具有 js 绑定,并且与 audioRecoder 搭配看起来很棒,我可以在第一次尝试时使用我自己的 mediaElementSourceNode 提供它。

您将无法在 React Native 应用程序中将其作为本地识别运行

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-24
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
  • 1970-01-01
  • 2016-11-17
相关资源
最近更新 更多