【问题标题】:Make SAPI TTS speak string variables使 SAPI TTS 说出字符串变量
【发布时间】:2013-05-05 04:01:47
【问题描述】:

所以,我有一个使用 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 说出它们。我该怎么做?

谢谢

【问题讨论】:

  • 在任何 C++ 教程中,变量都位于开头附近。至少学习一点语言是明智的。
  • 我对 C++ 非常熟悉,但 SAPI 比我以前处理过的任何东西都要复杂一些。
  • 在 SAPI 中使用变量没有任何改变。

标签: c++ text-to-speech sapi


【解决方案1】:

使用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';
    }
}

【讨论】:

    猜你喜欢
    • 2012-06-28
    • 2010-09-10
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多