ms speech sdk51 TTS使用

1.下载speech sdk5.1,安装;2.下载语言包,安装;3.vc环境中包含相应的头文件和lib  头文件一般在Tools/options/Directories中加上speech sdk5.1安装路径下include   对于Lib我喜欢直接从拷贝到工程路径下使用。  下面例子分别给出了中英的读并导出录音文件。4.#include <sapi.h>#include <sphelper.h>#pragma comment(lib,"ole32.lib")  //CoInitialize CoCreateInstance需要调用ole32.dll#pragma comment(lib,"sapi.lib")   //sapi.lib在SDK的lib目录,必需正确配置int main(int argc, char* argv[]){  //COM初始化:    if   (FAILED(::CoInitialize(NULL)))    return   0; ISpVoice* pVoice=NULL; HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice,(void **)&pVoice); if(SUCCEEDED(hr)) {  /*pVoice->Speak(L"Hello World",SPF_DEFAULT,NULL);*/  /*IEnumSpObjectTokens *pSpEnumTokens=NULL;  hr=SpEnumTokens(SPCAT_VOICES,L"Language=804",NULL,&pSpEnumTokens);  if(SUCCEEDED(hr))  {   ISpObjectToken *pSpToken = NULL;   while(SUCCEEDED(pSpEnumTokens->Next(1, &pSpToken, NULL)) && pSpToken != NULL)   {    pVoice->SetVoice(pSpToken);    pVoice->Speak(L"我们都是中国人",SPF_DEFAULT,NULL);    pSpToken->Release();   }   pSpEnumTokens->Release();  }*/  /*ISpObjectToken *pSpToken = NULL;  if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, L"Language=804",NULL,&pSpToken)))  {   pVoice->SetVoice(pSpToken);   pVoice->Speak(L"我在广州电信上班",SPF_DEFAULT,NULL);   pSpToken->Release();  }*/  /*CComPtr<ISpStream> cpWavStream;   CComPtr<ISpStreamFormat> cpOldStream;   CSpStreamFormat OriginalFmt;   pVoice->GetOutputStream( &cpOldStream );   OriginalFmt.AssignFormat(cpOldStream);   hr = SPBindToFile( L"D://output.wav",                  SPFM_CREATE_ALWAYS,         &cpWavStream,         &OriginalFmt.FormatId(),          OriginalFmt.WaveFormatExPtr() );   if( SUCCEEDED( hr ) )   {    pVoice->SetOutput(cpWavStream,TRUE);    WCHAR WTX[] = L"<VOICE REQUIRED='' NAME='Microsoft Mary'/> text to wave";    pVoice->Speak(WTX, SPF_IS_XML, NULL);   }*/  CComPtr<ISpStream> cpWavStream;   CComPtr<ISpStreamFormat> cpOldStream;   CSpStreamFormat OriginalFmt;   pVoice->GetOutputStream( &cpOldStream );   OriginalFmt.AssignFormat(cpOldStream);   hr = SPBindToFile( L"D://output.wav",                  SPFM_CREATE_ALWAYS,         &cpWavStream,         &OriginalFmt.FormatId(),          OriginalFmt.WaveFormatExPtr() );  ISpObjectToken *pSpToken = NULL;  if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, L"Language=804",NULL,&pSpToken)))  {   pVoice->SetVoice(pSpToken);   pVoice->SetOutput(cpWavStream,TRUE);   pVoice->Speak(L"我们都是中国人",SPF_DEFAULT,NULL);   pSpToken->Release();  } } pVoice->Release(); //释放COM资源: ::CoUninitialize();     return true;   }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值