首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何借助RecordRTC在JavaScript中创建WAV流?

如何借助RecordRTC在JavaScript中创建WAV流?
EN

Stack Overflow用户
提问于 2021-02-11 19:54:47
回答 1查看 351关注 0票数 1

我正在尝试创建一个应用程序来转录流式音频记录。这个想法是使用RecordRTC捕获用户的麦克风流,并使用Socket.IO将其分块发送到gunicorn服务器,然后服务器将为Azure Speech to Text创建一个输入流

我正在尝试在Azure Speech to Text接受的format中使用RecordRTC每隔x秒捕获一次音频:

代码语言:javascript
复制
startRecording.onclick = function() {
    startRecording.disabled = true;
    navigator.getUserMedia({
        audio: true
    }, 
    function(stream) {
            recordAudio = RecordRTC(stream, {
                type: 'audio',

                mimeType: 'audio/wav',
                desiredSampRate: 16000, // accepted sample rate by Azure
                timeSlice: 1000,
                ondataavailable: (blob) => {
                    socketio.emit('stream_audio', blob); // sends blob to server
                    console.log("sent blob")
                },
                recorderType: StereoAudioRecorder,
                numberOfAudioChannels: 1
        });
        recordAudio.startRecording();
        stopRecording.disabled = false;
    }, 
    function(error) {
        console.error(JSON.stringify(error));
    });
};

ondataavailable返回的blob似乎返回一个字节字符串。然而,对于Azure Speech to Text,我更喜欢接收wave格式的块。可以使用getBlob()检索WAV格式的整个录音,但是客户端只在调用stopRecording()之后才生成文件。

有没有办法让RecordRTC每隔x秒返回一次wave格式的blob?如果不是,通过Gunicorn将音频流式传输到Azure语音到文本的其他选择是什么?

非常感谢大家的帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-03-02 03:30:10

弗兰克,你有没有计划使用Speech SDK来转录使用Push或Pull输入流的音频?为此,您不需要WAV格式的音频块。您可以将原始PCM以16 the、16位/采样单声道的默认格式提供给输入流。参见sample code on GitHub

达伦

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66154282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档