问题:
理想情况下,我可以从声卡(由正在播放的mp4文件生成)获取流输出,并将其发送到麦克风和扬声器。我知道我可以使用"getUserMedia“和"createChannelSplitter”(在网络音频Api中)来获取和拆分(根据奥迪的分析,原始信号在立体声中),用户媒体可以被分成两个输出,这给我留下了两个问题。
getUserMedia只能从麦克风获得流输入,而不能从声卡(从我拥有的read))。
这是正确的吗?
可能的解决办法-停滞的
用户很可能有耳机麦克风,但我想到的一个解决办法是切换到设备上内置的麦克风,捕捉扬声器中的内容,然后切换回耳机以供用户输入。但是,我还没有找到一种在内置麦克风和耳机麦克风之间切换的方法,而无需每次询问用户。
有什么办法我还没找到吗?
你还会提出什么其他解决方案?
项目解释
我正在创建一个西班牙语练习程序/网站,用html & javascript编写。一个mp4将播放,语音识别api将在屏幕上显示它所说的内容(因为它是用西班牙语说的),它将被翻译成英语,以便用户听到、看到和理解在mp4中说话的人正在说的话。然后,用户将使用耳机麦克风回答mp4人(通常内置的麦克风无法提供足够好的语音识别质量--取决于设备--因此也就是耳机的使用)。
使用内置麦克风的“我的解决方案的流程图”
mp4->soundcard-> Web Audio Api -> channel 1 -> user's ears
channel 2 -> microphone input-> Web Speech Api-> html->text onscreen理想情况下的流程图跳过麦克风输入
mp4->soundcard-> Web Audio Api -> channel 1 -> user's ears
channel 2-> Web Speech Api-> html->text onscreen -> user's eyes 另一个潜在的工作:
我希望避免手动从每个mp3中删除一个mp4,然后尝试对它们进行同步,以便在mp4人员说话时进行语音识别。我读到可以通过语音识别api运行mp3。
发布于 2019-12-27 05:48:50
简单的回答是,目前(12/19)没有一种方法可以用我的工具和预算在这个平台上完成这一任务。我选择了一种费力的方法来做这件事,那就是设置一个有文本块的div,当这个人在计时器上说话时,文本块就会被显示出来。我仍然将使用语音api来捕捉用户所说的内容,这样程序就可以运行正确的视频作为响应。
发布于 2019-12-19 21:16:39
Web Speech Api Web Speech Api (我可能错了,所有浏览器都不支持https://caniuse.com/#feat=speech-recognition),这也是一个缺点:https://caniuse.com/#feat=speech-recognition。
我推荐的是查看Google对文本API的演讲:https://cloud.google.com/speech-to-text/
有了这个服务,你可以直接发送他们的音频文件,他们将发送回转录。
它确实支持流,这样您就可以在播放的同时录制音频。不过,时机并不完美。
https://stackoverflow.com/questions/59416573
复制相似问题