2011-12-07 121 views
0

我见过从输入设备(显然)语音识别和我见过从文件中的语音识别(http://gotspeech.net/forums/thread/6835.aspx)。但是,我想知道是否可以实时在系统音频上运行语音识别。通过系统音频,扬声器发出的声音。C#语音识别系统,从音频(扬声器发出的声音)

这将是对于那些谁是听力不好,因为他们正在观看YouTube视频,在C#应用程序可以抄写什么东西被说一个伟大的工具。

我该怎么去做这件事?

+1

可能想检查一下,可能是重复的。 http://stackoverflow.com/questions/3958342/convert-audio-to-text –

+0

我认为他理解如何做到这一点,但他只是想知道如何将C#引导到由系统生成的音频流。 – slandau

回答

1

很容易 - 转到混音器,选择输入和启用/取消静音“立体声混音”。当然,如果你不想记录,也应该将麦克风静音。然后,以录制麦克风的相同方式开始录制 - 现在您将获得与数字质量的扬声器相同的Feed。

这可能是done programatically虽然它可以是繁琐的 - 特别是如果你想支持的WinXP以及VISTA/Win7的(声音被翻修了在Vista中,我相信APIs are significantly different虽然我还没有过尚未使用它们)。

你几乎肯定会需要尝试识别之前过滤的声音。除非语音识别。您正在使用的库设计为在恶劣条件下工作,音乐和特殊效果会干扰正确识别,因为多人会同时说话。

如果您有没有一个超级强大的库,过滤器,以减轻非声乐频率将是必须的。您可能还需要应用音量规范化来应对大声/安静的场景 - 有数百个过滤器可能会改善匹配。

您可能想要在最低级别访问识别API以获得尽可能多的控制权 - 您需要调整它以应对呼喊,呼吸困难,哭泣等人群......如果您开始设计灵活的低级访问,如果您以后需要它并且需要重新构建,它可能会为您节省数周时间。

我建议你看看NAudio为起点,用于音频处理

我怀疑你就可以得到一些东西,在理想条件下工作没有太多精力 - 但调整它在很好地工作所有可能的事情可能是一项艰巨的任务。这就是说,这听起来像一个有趣的项目。

您可以通过创建genre-,用户或特定的节目,字典大大提高识别机会。这些可以是预先生成的,也可以使用加权反馈循环自动构建 - 也许还允许用户纠正错误。

+0

优秀的答案 - 谢谢! – Sondar