如何使用微软的SAPI实现发音功能?

微软的SAPI现在最新到好像到了5.3在vista下的版本,该代码使用的是SAPI5.1,你可以从微软下载
Download Download the Microsoft Speech SDK 5.1 package now. (http://download.microsoft.com/download/speechSDK/SDK/5.1/WXP/EN-US/SpeechSDK51.exe) 有关如何下载 Microsoft 支持文件的详细信息请单击下列文章编号以查看 Microsoft 知识库中相应:

下面的代码写的是入门级代码,希望对你有用!

ISpVoice * m_pVoice = NULL;
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&m_pVoice);
        if( SUCCEEDED( hr ) )
        {

            //Enumerate voice tokens with attribute "Name=Microsoft Sam?
            if(SUCCEEDED(hr))
            {
                hr = SpEnumTokens(SPCAT_VOICES, L"Name=Microsoft Mike", NULL, &m_cpEnum);  //Microsoft Mike,Microsoft Mary,Microsoft Sam
            }

            //Get the closest token
            if(SUCCEEDED(hr))
            {
                hr = m_cpEnum ->Next(1, &m_cpToken, NULL);
            }

            //set the voice
            if(SUCCEEDED(hr))
            {
               
                hr = m_pVoice->SetVoice( m_cpToken);
                m_pVoice->SetVolume(100);
                m_pVoice->SetRate(3);
            }

            //set the output to the default audio device
            if(SUCCEEDED(hr))
            {
                hr = m_pVoice->SetOutput( NULL, TRUE );
            }

            //m_pVoice->SetInterest( SPFEI(SPEI_WORD_BOUNDARY),SPFEI(SPEI_WORD_BOUNDARY) );

            hr = m_pVoice->Speak(L"Hello joely!", SPF_DEFAULT, NULL);

            // 这里使用xml的格式调整法音,如频率,音调等,具体看sdk的帮助文档,写的比较详细
            hr = m_pVoice->Speak(L"This sounds normal <pitch middle = '-10'/> but the pitch drops half way through", SPF_IS_XML, NULL );
            m_pVoice->Release();
            m_pVoice = NULL;

在工程中添加include路径和lib的路径我这里就不细说了,你下载sdk后安装,然后看看安装的目录把相应的路径设置到你的项目中即可,有问题可以给我留言!
转载需要经过本人许可,谢谢!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值