C++朗讀中文文本

        主要是採用的接口是Microsoft Speech SDK。

        Win7以上的系統不需要再次安裝,首先包含頭文件和庫文件:

#include <sapi.h>    // 導入語音頭文件
#include <sphelper.h>// 導入語音識別頭文件
#pragma comment(lib,"sapi.lib") 

使用:

void CSpeechDemoDlg::OnBnClickedOk()
{
	ISpVoice* pVoice = NULL; //初始化COM 
	if (FAILED(CoInitialize(NULL)))
	{
		AfxMessageBox(_T("Error to intiliaze COM"));
		return;
	}
	// 初始化SAPI 
	HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
	ISpObjectToken* pSpObjectToken = NULL;
	if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, _T("language=804"), NULL, &pSpObjectToken)))// 804代表中文 
	{
		pVoice->SetVoice(pSpObjectToken); // 聲音大小
		pVoice->SetRate(-2);// 語速
		pSpObjectToken->Release();
	}
	else
	{
		AfxMessageBox(_T("沒有安裝微軟語音庫!"));
		return;
	}
	if (SUCCEEDED(hr))
	{
		CString strText = _T("播放語音測試文本");
		hr = pVoice->Speak(strText.AllocSysString(), 0, NULL);
		pVoice->Release();
		pVoice = NULL;
	}
	CoUninitialize();
}
      如果提示沒有安裝“安裝微軟語音庫”,則要下載微軟語音庫安裝即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章