科尔多瓦 |从 iOS 上的麦克风获取直播

Cordova | Get live stream from microphone on iOS

我正在尝试构建一个语音日历应用程序,该应用程序需要使用来自麦克风的实时流来进行语音识别。

所以你有一个按钮可以开始收听麦克风,并在用户停止说话时自动停止。

我已经探索了 Cordova Media API,它允许我将数据记录到 wav 文件中。这行得通,但使过程非常缓慢,因为我需要等待录制完成。

我使用 https://api.ai 作为起点来构建运行良好的应用程序的第一个版本。它处理了所有 "listening" 部分!

我的下一阶段是集成一些不同的语音识别 APIs。

我的主要问题是缺乏原生开发技能,那么有没有任何 cordova 插件可以帮助我做到这一点?

更新 1 - 2016 年 4 月 1 日

找到这个 https://subvisual.co/blog/posts/39-tutorial-html-audio-capture-streaming-to-node-js-no-browser-extensions 将尝试通过 webrtc 在 cordova 中实现这一点。


更新 2 - 2016 年 4 月 1 日

已安装 https://github.com/eface2face/cordova-plugin-iosrtc 以利用 webrtc


更新 3 - 2016 年 4 月 2 日

卡在 AudioContext.createMediaStreamSource 不是 iOS 上的功能! AudioContext.createMediaStreamSource alternative for iOS?


更新 4 - 2016 年 4 月 6 日

Going Native - 学习时间 iOS 开发!

很遗憾听到您放弃了 Cordova,但如果您仍然感兴趣:我已经为 iOS 和 Android 创建了一个 cordova 插件,它使您能够捕获麦克风数据和将其转发到应用程序的 Web 层。您可以依靠网络音频 API 来处理传入的声音,或者使用任何其他方式来编码和保存原始声音数据:

https://github.com/edimuj/cordova-plugin-audioinput

用法示例:

function onAudioInput( evt ) {
  // 'evt.data' is an integer array containing raw audio data
  console.log( "Audio data received: " + evt.data.length + " samples" );

  // ... do something with the evt.data array ...
}

// Listen to audioinput events
window.addEventListener( "audioinput", onAudioInput, false );

// Start capturing audio from the microphone
audioinput.start();