[英]IBM Watson JavaScript SDK for Speech-To-Text WebSocket Issue
[英]send recorded Audio via WebSocket JS for Watson Speech to Text
我正在尝试获取麦克风输入,并通过Websocket将其发送给Watson Speech to Text,但是很难完成,有人可以帮我吗?
var wsURI = "URL here";
var ws = new WebSocket(wsURI);
ws.onopen = function(evt) { onOpen(evt) };
ws.onmessage = function(evt) { onMessage(evt) };
ws.onclose = function(evt) { onClose(evt) };
ws.onerror = function(evt) { onError(evt) };
function enableMic(){
document.getElementById("startButton").addEventListener("click", function() {
navigator.mediaDevices.getUserMedia({ audio: true })
.then(stream => {
const mediaRecorder = new MediaRecorder(stream);
mediaRecorder.start();
const audioChunks = [];
mediaRecorder.addEventListener("dataavailable", event => {
audioChunks.push(event.data);
});
document.getElementById("stopButton").addEventListener("click", function() {
mediaRecorder.stop();
});
mediaRecorder.addEventListener("stop", () => {
const audioBlob = new Blob(audioChunks, { type: 'audio/wav' });
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);
var reader = new FileReader();
ws.send(reader.result);
reader.readAsArrayBuffer(audioBlob);
audio.play();
console.log(audioBlob);
console.log(reader.result);
但是我无法将audioBlob作为AudioBuffer发送,所以我想通过websocket发送它。 在最后一个console.log中,结果为null
注意:Websockets的另一个功能不在这里,因为我认为这不会影响理解。
我感谢一些帮助!
谢谢!
我认为您是在读者读取值之前发送它的?
var reader = new FileReader();
ws.send(reader.result); // ?
reader.readAsArrayBuffer(audioBlob);
您是否尝试过将Watson Javascript SDK用于语音转文本服务? 它已经具有您需要的功能,我相信: https : //github.com/watson-developer-cloud/speech-javascript-sdk
该演示页面基于该sdk: https : //speech-to-text-demo.ng.bluemix.net/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.