ms speech sdk51 TTS使用
生活随笔
收集整理的這篇文章主要介紹了
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;?? }
總結
以上是生活随笔為你收集整理的ms speech sdk51 TTS使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 还我河山
- 下一篇: 使用MCI方法操作声音文件