C++桌面应用中文语音包功能接口
生活随笔
收集整理的這篇文章主要介紹了
C++桌面应用中文语音包功能接口
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
使用之前需要先安裝中文語音包(男聲+女聲安裝包下載)
Voice.h文件
(頭文件包含的lib庫資源如果缺失,百度下載或我的資源)
Voice.cpp文件
#include "StdAfx.h" #include "Voice.h"CVoice::CVoice(void) {m_State =false;InitVoice(); }CVoice::~CVoice(void) {CloseVoice(); }void CVoice::InitVoice() {pVoice =NULL;if (FAILED(::CoInitialize(NULL)))return ; HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice); if( SUCCEEDED( hr ) ) {ISpObjectToken* pChineseToken; WCHAR pszTokenId[] =L"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Speech\\Voices\\Tokens\\VW Liang";SpGetTokenFromId(pszTokenId , &pChineseToken);pVoice->SetVoice(pChineseToken);pVoice->SetVolume(100);pVoice->SetRate(1);}m_State =true; }void CVoice::CloseVoice() {if(pVoice !=NULL){pVoice->Release(); pVoice = NULL; }if(m_State ==true)::CoUninitialize(); }void CVoice::SetRate(int rate) {pVoice->SetRate(rate); }void CVoice::SetVoiceType(int voicetype) {if (voicetype == 1){ISpObjectToken* pChineseToken; // WCHAR pszTokenId[] =L"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Speech\\Voices\\Tokens\\VW Lily";WCHAR pszTokenId[] =L"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Speech\\Voices\\Tokens\\VW Liang";SpGetTokenFromId(pszTokenId , &pChineseToken);pVoice->SetVoice(pChineseToken);}else{ISpObjectToken* pChineseToken; WCHAR pszTokenId[] =L"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Speech\\Voices\\Tokens\\VW Lily";SpGetTokenFromId(pszTokenId , &pChineseToken);pVoice->SetVoice(pChineseToken);} }void CVoice::Speech(CString str,bool flag) {USES_CONVERSION;LPWSTR pwStr=new wchar_t[str.GetLength()+1];wcscpy_s(pwStr,str.GetLength()+1,T2W((LPCTSTR)str));if(flag ==true)pVoice->Speak( pwStr, SPF_ASYNC, NULL); elsepVoice->Speak( pwStr, SPF_DEFAULT, NULL); delete[] pwStr; }總結(jié)
以上是生活随笔為你收集整理的C++桌面应用中文语音包功能接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HCNP——Hello报文
- 下一篇: 不解压查看gz文件