Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Web音频Api与Web语音Api集成-流式扬声器/声卡输出到语音识别Api_Javascript_Audio_Html5 Audio_Speech - Fatal编程技术网

Javascript Web音频Api与Web语音Api集成-流式扬声器/声卡输出到语音识别Api

Javascript Web音频Api与Web语音Api集成-流式扬声器/声卡输出到语音识别Api,javascript,audio,html5-audio,speech,Javascript,Audio,Html5 Audio,Speech,问题: 理想情况下,我会从声卡(由正在播放的mp4文件生成)获取流式输出,并将其发送到麦克风和扬声器。我知道我可以使用“getUserMedia”和“createChannelSplitter”(在Web音频Api中)来获取并分割(基于音频分析,原始信号为立体声)用户媒体为2个输出,这给我留下了2个问题 getUserMedia只能从麦克风获取流式输入 不是从声卡(从我读到的) 流式输出只能记录/发送到缓冲区,不能发送 直接对着麦克风(从我读到的内容) 这是正确的吗 可能的解决方法-已暂停: 用

问题:

理想情况下,我会从声卡(由正在播放的mp4文件生成)获取流式输出,并将其发送到麦克风和扬声器。我知道我可以使用“getUserMedia”和“createChannelSplitter”(在Web音频Api中)来获取并分割(基于音频分析,原始信号为立体声)用户媒体为2个输出,这给我留下了2个问题

  • getUserMedia
    只能从麦克风获取流式输入 不是从声卡(从我读到的)
  • 流式输出只能记录/发送到缓冲区,不能发送 直接对着麦克风(从我读到的内容)
  • 这是正确的吗

    可能的解决方法-已暂停

    用户很可能会打开耳机麦克风,但我想到的一个解决方法是切换到设备上的内置麦克风,捕捉扬声器中的声音,然后切换回耳机供用户输入。但是,我还没有找到一种方法可以在内置麦克风和耳机麦克风之间切换,而不必每次询问用户

    有没有一种方法我还没有找到

    你还有什么其他建议

    项目说明

    我正在创建一个用
    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 
    
    另一种可能的解决方法:

    我希望避免手动从每个mp4中删除mp3,然后尝试同步它们,以便在mp4用户讲话时进行语音识别。我读到我可以通过语音识别api运行mp3

  • 在扬声器和用户耳机之间切换是绝对不可能的
  • 语音识别软件通常需要清晰且捕捉良好的音频。因此,如果声音来自扬声器,用户的麦克风可能无法很好地拾取声音。如果用户使用的是耳机,那么麦克风根本无法捕捉音频
  • 据我所知,您不能直接发送音频文件
    Web语音Api
    (我可能错了)
  • <>代码> Web语音API 不支持所有浏览器,因此也是一个需要考虑的缺点: 我的建议是查看Google的语音到文本API:

    使用此服务,您可以直接向他们发送音频文件,他们将发回转录本


    它确实支持流媒体,因此您可以在播放的同时转录音频。不过时机并不完美。

    简单的回答是,目前(19年12月)还没有一种方法可以通过我拥有的工具和预算在这个平台上实现这一点。我选择了一种费劲的方法来实现这一点,那就是设置一个单独的div,当这个人在定时器上讲话时显示文本块。我仍将使用语音api捕获用户所说的内容,以便程序能够运行正确的视频响应

    谢谢,T,我最初看了谷歌的“语音转文本”功能,它很好用,但成本为$$。我在自己的时间里做这件事,没有预算(基本上是为了好玩——我在教几个五年级的学生西班牙语)。此外,我认为我可以将音频文件直接发送到网络语音Api,所以我不认为我需要谷歌。我只需要为我所有的MP4生成单独的音频文件,我不想这样做。我想知道我是否可以使用浏览器插件来完成同样的事情,然后让用户下载它?