3

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

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

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

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

对我来说,下一阶段是与一些不同的语音识别 API 集成。

对我来说主要的问题是缺乏本地开发技能,那么有没有什么 Cordova 插件可以帮助我做到这一点?

更新 1 - 2016 年 4 月 1 日

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


更新 2 - 2016 年 4 月 1 日

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


更新 3 - 2016 年 4 月 2 日

卡在AudioContext.createMediaStreamSource不是 iOS 上的功能! iOS 的 AudioContext.createMediaStreamSource 替代方案?


更新 4 - 2016 年 4 月 6 日

Going Native - 是时候学习 iOS 开发了!

4

1 回答 1

9

很遗憾听到您放弃了 Cordova,但如果您仍然感兴趣:我已经为 iOS 和 Android 创建了一个 cordova 插件,它使您能够捕获麦克风数据并将其转发到应用程序的 Web 层。您可以依靠 Web Audio 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();
于 2016-07-19T17:22:33.670 回答