将音频作为麦克风输入播放
Posted
技术标签:
【中文标题】将音频作为麦克风输入播放【英文标题】:Play audio as microphone input 【发布时间】:2014-01-01 08:58:15 【问题描述】:我要测试语音识别程序。有些我可以访问代码,有些我没有。
遗憾的是,我(美丽的)声音并不完美,所以当我阅读文本时,每次听起来都略有不同。这使得测试变得困难且耗时。考虑到我可以调整很多参数。
所以我想知道是否有办法录制我自己的声音(已经完成)。然后将其作为普通麦克风输入播放,以便我正在测试的语音识别程序将其视为麦克风输入。
如果可以在 C# 中以编程方式完成,这也会有很大帮助。所以我可以在我自己的代码中指定什么时候播放什么。
从扬声器播放它并让语音识别程序收听麦克风不是一种选择,因为它在不同的计算机/扬声器/麦克风上不是相同的声音。
谢谢。
编辑: 到目前为止我发现的是使用软件声卡模拟器。但是一直没找到合适的。
【问题讨论】:
撇开架构不谈,如果您可以从任意音频数据流中进行识别,那么解决这个问题就变得微不足道了 这是一个“坏”的问题吗?对我来说,能够从声音文件模拟音频输入听起来是个好主意。 @jrodatus 这是一个半有效的建议。这将取决于设备,但线路输出到线路输入不会从根本上比 DA/AD 的额外级别增加任何噪声。最可能的问题是输出将是 TRS,而输入将是 TS,因此您只能获得一个通道(如果信号是单声道,则为 1/2 音量)。谷歌的建议是,声卡输入通常会期待低电平信号。这可以通过使用衰减器或(如果有必要的话)降低录音音量来解决。 @vicky96 正如答案所述,您安装了 VoiceMeeter,它会创建一个虚拟扬声器和麦克风。您在虚拟扬声器中播放的所有内容都将转发到虚拟麦克风。 @Mr.JavaWolf 是的,我终于让它工作了 【参考方案1】:正如有些打印机驱动程序根本不连接到打印机而是写入 PDF 文件一样,类似地,有可用的虚拟音频驱动程序根本不连接到物理麦克风,但可以通过管道传输来自其他来源的输入例如文件或其他程序。
我希望我推荐免费/捐赠软件没有违反任何规则,但是VB-Audio Virtual Cable 应该可以让您创建一对虚拟输入和输出音频设备。然后您可以将 MP3 播放到虚拟输出设备中,然后将虚拟输入设备设置为您的“麦克风”。从理论上讲,我认为这应该可行。
如果一切都失败了,您总是可以推出自己的虚拟音频驱动程序。 Microsoft 提供了一些sample code,但不幸的是它不适用于较旧的 Windows XP 音频模型。可能也有适用于 XP 的示例代码。
【讨论】:
非常感谢。 VB-Audio Virtual Cable + Voice Meeter(同一个地方)很好的解决了这个问题。你让我今天很开心。主要是Voice Meeter。 对安卓平台有什么建议吗? @user2801184,Michael 对this question 的评论表明它可能必须使用可用的 ALSA 驱动程序为给定的 android 平台定制。他的完整答案在我脑海中浮现,但这可能是一个起点。 对 ubuntu 有什么建议吗? 天才!我刚刚使用这种技术为我的 Google Voice 传出消息设置了高质量的 MP3 录音。完美运行。【参考方案2】:使用 Windows 中的“侦听设备”功能可以获得不需要专门软件的解决方案:
-
打开麦克风设备的设置并启用“收听设备”,从列表中选择您当前的输出设备。
在同一输出设备上播放音频
麦克风信号等于输出信号
reddit用户osyu的原始解决方案:https://www.reddit.com/r/obs/comments/aoinga/use_obs_audio_output_as_a_microphone_source/
【讨论】:
以上是关于将音频作为麦克风输入播放的主要内容,如果未能解决你的问题,请参考以下文章
使用waveIn和waveOut在windows中进行音频录制和实时播放