C++ ISpVoice*pVoice=NULL; if(失败(::CoInitialize(NULL))) 返回FALSE; HRESULT hr=CoCreateInstance(CLSID_SpVoice、NULL、CLSCTX_ALL、IID_ISpVoice、(void**)和pVoice); 如果(成功(hr)) { hr=pVoice->Speak(L“Hello world”,0,空); pVoice->Release(); pVoice=NULL; } ::coninitialize(); 返回TRUE; }

C++ ISpVoice*pVoice=NULL; if(失败(::CoInitialize(NULL))) 返回FALSE; HRESULT hr=CoCreateInstance(CLSID_SpVoice、NULL、CLSCTX_ALL、IID_ISpVoice、(void**)和pVoice); 如果(成功(hr)) { hr=pVoice->Speak(L“Hello world”,0,空); pVoice->Release(); pVoice=NULL; } ::coninitialize(); 返回TRUE; },c++,visual-studio-2008,text-to-speech,C++,Visual Studio 2008,Text To Speech,代码清单4。粗体文本表示此示例的新代码。 第五步:修改语音 可以使用多种方法修改语音。最直接的方法是将XML命令直接应用于流。这些命令在XML模式中列出。在这种情况下,相对评级为10会降低声音的音调 #include <stdafx.h> #include <sapi.h> int main(int argc, char* argv[]) { ISpVoice * pVoice = NULL; if (FAILED(::CoInitialize(NUL

代码清单4。粗体文本表示此示例的新代码。 第五步:修改语音 可以使用多种方法修改语音。最直接的方法是将XML命令直接应用于流。这些命令在XML模式中列出。在这种情况下,相对评级为10会降低声音的音调

#include <stdafx.h>
#include <sapi.h>

int main(int argc, char* argv[])
{
    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"Hello world", 0, NULL);

        // Change pitch
        hr = pVoice->Speak(L"This sounds normal <pitch middle = '-10'/> but the pitch drops half way through", SPF_IS_XML, NULL );
        pVoice->Release();
        pVoice = NULL;
    }
    ::CoUninitialize();
    return TRUE;
}
#包括
#包括
int main(int argc,char*argv[])
{
ISpVoice*pVoice=NULL;
if(失败(::CoInitialize(NULL)))
返回FALSE;
HRESULT hr=CoCreateInstance(CLSID_SpVoice、NULL、CLSCTX_ALL、IID_ISpVoice、(void**)和pVoice);
如果(成功(hr))
{
hr=pVoice->Speak(L“Hello world”,0,空);
//变桨
hr=pVoice->Speak(L“这听起来很正常,但音高下降了一半”,SPF_是XML,NULL);
pVoice->Release();
pVoice=NULL;
}
::coninitialize();
返回TRUE;
}

代码清单5。粗体文本表示此示例的新代码。这是完整的代码示例。

您必须安装带有安装程序(ReDIST)的C++运行时。< /P>

安装哪一个取决于VS service pack-如果是SP1,则是SP1,如果不是


编辑:第二种方法是链接运行时库。这增加了可执行文件的大小,但是不需要在目标机上附加要求。

< p>您必须安装带有安装程序(ReDIST)的C++运行时。< /P>

安装哪一个取决于VS service pack-如果是SP1,则是SP1,如果不是

编辑:第二种方法是链接运行时库。这会增加可执行文件的大小,但不需要对目标计算机提出额外的要求

#include <stdafx.h>
#include <sapi.h>

int main(int argc, char* argv[])
{
    if (FAILED(::CoInitialize(NULL)))
        return FALSE;

    ::CoUninitialize();
    return TRUE;
}
#include <stdafx.h>
#include <sapi.h>

int main(int argc, char* argv[])
{
    ISpVoice * pVoice = NULL;

    if (FAILED(::CoInitialize(NULL)))
        return FALSE;

    HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
    if( SUCCEEDED( hr ) )
    {
        pVoice->Release();
        pVoice = NULL;
    }

    ::CoUninitialize();
    return TRUE;
}
#include <stdafx.h>
#include <sapi.h>

int main(int argc, char* argv[])
{
    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"Hello world", 0, NULL);
        pVoice->Release();
        pVoice = NULL;
    }

    ::CoUninitialize();
    return TRUE;
}
#include <stdafx.h>
#include <sapi.h>

int main(int argc, char* argv[])
{
    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"Hello world", 0, NULL);

        // Change pitch
        hr = pVoice->Speak(L"This sounds normal <pitch middle = '-10'/> but the pitch drops half way through", SPF_IS_XML, NULL );
        pVoice->Release();
        pVoice = NULL;
    }
    ::CoUninitialize();
    return TRUE;
}