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

Detect audio output + suggestion for a speech synthesis library

本文关键字:输出 建议 音频 语音合成 检测      更新时间:2023-10-16

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

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

所以问题是:

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

在浏览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