检测音频输出+语音合成库的建议

时间:2013-02-22 19:19:45

标签: c++ windows audio speech-synthesis

我想检测我的电脑是否播放任何类型的音频(音乐/电影) 我写了一个应用程序,通知我我的Twitter更新。现在我想添加一个语音合成,但我只想播放没有音乐或电影播放的消息。

虽然我正在使用C#,但我不介意使用C ++进行检测然后进行集成。

所以问题是:

1)如何检测音频输出?
2)什么是最好的Windows自由语音合成库?

1 个答案:

答案 0 :(得分:1)

经过一段时间查看MSDN后,我找到了解决方案。

使用环回录制,您可以聆听输出到音频输出设备的内容。

http://msdn.microsoft.com/en-gb/library/windows/desktop/dd316551(v=vs.85).aspx

此链接还引用了如何捕获流的示例:

http://msdn.microsoft.com/en-gb/library/windows/desktop/dd370800(v=vs.85).aspx

在这里,您可以通过调用:

获取示例中所示的缓冲区数据

pCaptureClient-> GetBuffer(...)

然后你要做的就是检查这些字节的值。如果他们都是0,那么没有什么可玩的..

对于语音合成,我使用了SpeechSynthesizer .NET类

http://msdn.microsoft.com/en-us/library/system.speech.synthesis.speechsynthesizer.aspx