让SAPI TTS使用字符串变量

Make SAPI TTS speak string variables

本文关键字:字符串 变量 SAPI TTS      更新时间:2023-10-16

那么,我有一个程序,其中我使用SAPI如下:

ISpVoice * pVoice = NULL;
if (FAILED(::CoInitialize(NULL)))
{
    return FALSE;
}
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void     **)&pVoice);
if( SUCCEEDED( hr ) )
{
    hr = pVoice->Speak(L"I can talk!", SPF_IS_XML, NULL);
}

但是我想声明一个变量,然后让sapi说它们。我怎么做呢?

谢谢

使用std::wstring。假设您希望用户输入要说的内容(排除文本框和按钮):

std::cout << "Enter lines of text to speak:n";
for (std::wstring text; std::wcin >> text;) {
    if (FAILED(hr = pVoice->Speak(text.c_str(), SPF_IS_XML, NULL))) {
        std::cout << "Sorry, the text could not be spoken. The error code is " << hr << 'n';
    }
}