我可以访问IBM Watson的Speech-To-Text API,它允许通过WebSockets进行流式传输,并且我能够调用getUserMedia()
来实例化浏览器中的麦克风设备,但现在我需要找出实时传输这些信息的最佳方法。
我打算从browser <=> my server <=> Watson
使用我的服务器作为CORS原因的中继进行三方WebSocket连接。
我一直在关注WebRTC和各种实验,但所有这些似乎都是浏览器间的点对点,而不是我想要的客户端到服务器。
我遇到的唯一其他示例(例如RecordRTC)似乎基于从MediaStream
返回的getUserMedia()
录制WAV或FLAC文件,然后将文件发送到服务器,但这本身有两个问题:
我正在制作概念证明,如果可能的话,我希望能够在尽可能多的现代浏览器上工作 - 但最重要的是,移动浏览器。然而,iOS在这个问题上似乎是不可能的。
http://caniuse.com/#feat=stream
http://caniuse.com/#search=webrtc
让我们假设我现在只有这个代码:
// Shimmed with https://raw.githubusercontent.com/webrtc/adapter/master/adapter.js
navigator.mediaDevices.getUserMedia({ audio: true })
.then(function (mediaStream) {
// Continuously send raw or compressed microphone data to server
// Continuously receive speech-to-text services
}, function (err) {
console.error(err);
});