Text to speech 如何检测SAPI TTS引擎何时繁忙
SAPI引擎一次只能呈现一个应用程序中的TTS(为了验证这一点,我使用两个Windows SDK TTS应用程序示例实例运行了一个测试)。我正在编写一个应用程序,其中我需要检测TTS引擎当前是否在讲话(即,在单独应用程序的控制下,而不是我的控制下) 有人知道我如何通过编程(在C++中)检测SAPI TTS引擎的忙/就绪状态吗?我尝试过使用ISpVoice::GetStatus(),但这似乎只适用于我自己应用程序中的任何TTS活动Text to speech 如何检测SAPI TTS引擎何时繁忙,text-to-speech,sapi,Text To Speech,Sapi,SAPI引擎一次只能呈现一个应用程序中的TTS(为了验证这一点,我使用两个Windows SDK TTS应用程序示例实例运行了一个测试)。我正在编写一个应用程序,其中我需要检测TTS引擎当前是否在讲话(即,在单独应用程序的控制下,而不是我的控制下) 有人知道我如何通过编程(在C++中)检测SAPI TTS引擎的忙/就绪状态吗?我尝试过使用ISpVoice::GetStatus(),但这似乎只适用于我自己应用程序中的任何TTS活动 谢谢。例如,在SAPI4中,IVTXTTributes::IsPe
谢谢。例如,在SAPI4中,IVTXTTributes::IsPeaking检索此类状态(如果引擎当前正在向某些音频设备播放样本)
总之,IMO通用SAPI引擎不限于一个应用程序。我相信这种行为是“您的引擎”特有的。这是了解语音合成系统是否在说话的解决方案
ISpVoice*pVoice代码>
hr=pVoice->GetStatus(&status,NULL)代码>
if(status.dwRunningState==SPRS\u正在讲话)
std::coutFrom
SPRUNSTATE列出语音运行状态
typedef enum SPRUNSTATE
{
SPRS_DONE,
SPRS_IS_SPEAKING
} SPRUNSTATE;
元素:
SPRS\u完成
语音已完成对所有排队流的处理。
SPRS\u正在讲话
语音实例当前已声明音频