Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Text to speech 如何检测SAPI TTS引擎何时繁忙_Text To Speech_Sapi - Fatal编程技术网

Text to speech 如何检测SAPI 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

SAPI引擎一次只能呈现一个应用程序中的TTS(为了验证这一点,我使用两个Windows SDK TTS应用程序示例实例运行了一个测试)。我正在编写一个应用程序,其中我需要检测TTS引擎当前是否在讲话(即,在单独应用程序的控制下,而不是我的控制下)

有人知道我如何通过编程(在C++中)检测SAPI TTS引擎的忙/就绪状态吗?我尝试过使用ISpVoice::GetStatus(),但这似乎只适用于我自己应用程序中的任何TTS活动


谢谢。

例如,在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正在讲话 语音实例当前已声明音频