C++桌面應用中文語音包功能接口-創(chuàng)新互聯(lián)

使用之前需要先安裝中文語音包(男聲+女聲安裝包下載)
Voice.h文件
(頭文件包含的lib庫資源如果缺失,百度下載或我的資源)

成都創(chuàng)新互聯(lián)一直在為企業(yè)提供服務,多年的磨煉,使我們在創(chuàng)意設計,網(wǎng)絡營銷推廣到技術研發(fā)擁有了開發(fā)經(jīng)驗。我們擅長傾聽企業(yè)需求,挖掘用戶對產(chǎn)品需求服務價值,為企業(yè)制作有用的創(chuàng)意設計體驗。核心團隊擁有超過10多年以上行業(yè)經(jīng)驗,涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領域,公司涉及領域有基礎互聯(lián)網(wǎng)服務服務器托管雅安、成都app軟件開發(fā)公司、手機移動建站、網(wǎng)頁設計、網(wǎng)絡整合營銷。
#pragma once
#ifdef _MSC_VER
#pragma warning (push)
#pragma warning (disable : 4005)
#include#pragma warning (pop)
#pragma warning (default : 4005)
#endif

#include#include#include#pragma comment(lib,"ole32.lib") 
#pragma comment(lib,"sapi.lib")  

class CVoice
{public:
	CVoice(void);
	~CVoice(void);
private:
	ISpVoice * pVoice ;
	bool     m_State;
	void     InitVoice();
	void     CloseVoice();
public:
	void     Speech(CString str,bool flag =true);
	void     SetRate(int rate);
	void     SetVoiceType(int voicetype);	//設置1:男聲;2:女聲
};

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); 
	else
		pVoice->Speak( pwStr, SPF_DEFAULT, NULL); 

	delete[] pwStr;
}

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱:C++桌面應用中文語音包功能接口-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://bm7419.com/article4/ggeie.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、網(wǎng)站建設關鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈、企業(yè)建站、品牌網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設