浅谈中文文本语音转换技术
2006-01-24 14:25
435 查看
现在语音技术应用十分广泛,本人也一直在从事这方面的工作,利用MS TTS开发产品,针对中文发音设置的问题,在这里阐述一下自己的实现方法。
void CIMEInfoAcquisitionDlg::SpeakVoice(LPCTSTR csVoice)
{
//com初期化
if (FAILED(CoInitialize(NULL)))
{
AfxMessageBox("Error to intiliaze COM");
return;
}
//文字変換
LPOLESTR lpw = new WCHAR [256];
MultiByteToWideChar(CP_ACP,0,csVoice,-1,lpw,256);
HRESULT hr = S_OK;
if( SUCCEEDED( hr ) )
{
CComPtr<ISpObjectToken> cpVoiceToken;
CComPtr<IEnumSpObjectTokens> cpEnum;
CComPtr<ISpVoice> cpVoice;
ULONG ulCount = 0;
// 建立
hr = cpVoice.CoCreateInstance(CLSID_SpVoice);
LPCSTR name;
name = "Microsoft Simplified Chinese";
CString s; s.Format("Name=%s", name);
WCHAR wName[1024];
MultiByteToWideChar(CP_ACP, 0, s, -1, wName, sizeof(wName));
ISpObjectToken* pToken = NULL;
if(SUCCEEDED(SpFindBestToken(SPCAT_VOICES, NULL, wName, &pToken))){
cpVoice->SetVoice(pToken);
}
//文读
if (SUCCEEDED (hr))
{
hr = cpVoice->Speak( lpw, SPF_DEFAULT, NULL );
}
}
//com的结束
delete [] lpw;
CoUninitialize();
return;
}
以上利用ISpObjectToken接口实现了对中文的阅读,是不是很简单明了:)
void CIMEInfoAcquisitionDlg::SpeakVoice(LPCTSTR csVoice)
{
//com初期化
if (FAILED(CoInitialize(NULL)))
{
AfxMessageBox("Error to intiliaze COM");
return;
}
//文字変換
LPOLESTR lpw = new WCHAR [256];
MultiByteToWideChar(CP_ACP,0,csVoice,-1,lpw,256);
HRESULT hr = S_OK;
if( SUCCEEDED( hr ) )
{
CComPtr<ISpObjectToken> cpVoiceToken;
CComPtr<IEnumSpObjectTokens> cpEnum;
CComPtr<ISpVoice> cpVoice;
ULONG ulCount = 0;
// 建立
hr = cpVoice.CoCreateInstance(CLSID_SpVoice);
LPCSTR name;
name = "Microsoft Simplified Chinese";
CString s; s.Format("Name=%s", name);
WCHAR wName[1024];
MultiByteToWideChar(CP_ACP, 0, s, -1, wName, sizeof(wName));
ISpObjectToken* pToken = NULL;
if(SUCCEEDED(SpFindBestToken(SPCAT_VOICES, NULL, wName, &pToken))){
cpVoice->SetVoice(pToken);
}
//文读
if (SUCCEEDED (hr))
{
hr = cpVoice->Speak( lpw, SPF_DEFAULT, NULL );
}
}
//com的结束
delete [] lpw;
CoUninitialize();
return;
}
以上利用ISpObjectToken接口实现了对中文的阅读,是不是很简单明了:)
相关文章推荐
- Ubuntu设置中文编码和文本的编码转换 - suflow - ITeye技术网站
- AVFoundation框架理论+实战一(文本语音转换)
- .NET 将文本转换成语音 (转)
- 基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
- 基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
- 【百度语音rest API】文本转换成语音,以及语音转化成文本
- (转)中文语音识别技术在c#中的应用(二) 出处:CSDN
- 浅谈网络语音技术
- 中英文语音合成与中文语音识别技术在c#中的应用(二)
- 转换中文为unicode 转换unicode到正常文本
- 评测任务实战:中文文本分类技术实践与分享 - PaperWeekly 第49期
- 浅谈网络语音技术
- 中文文本分类的关键技术
- VC编程实现文本语音转换
- C#中英文语音合成与中文语音识别技术
- LABVIEW调用捷通TTS ActiveX控件实现中文文本转语音
- 【源创会广州站 内容回顾】中文文本转语音开源引擎EKHO
- Android中的TextToSpeech 将文本转换成语音的简单使用。
- 浅谈PDFlib中文输出(四)PDFlib接收的几种文本输入形式
- 转 .Net/C#/VB/T-SQL/Java/Script 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)