请教WIN32如何样把语音从英文变成中文啊
请问WIN32怎么样把语音从英文变成中文啊?
#include <sapi.h>
#include <sphelper.h>
#include <windows.h>
//#include <atlcom.h>
const DWORD SP_CHINESE = 0x0000; //简体中文.
const DWORD SP_ENGLISH = 0x0001; //英语.
int main(int argc, char* argv[])
{ ISpVoice * pVoice = NULL;
if (FAILED(::CoInitialize(NULL)))
return FALSE;
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL,
IID_ISpVoice, (void **)&pVoice);
if( SUCCEEDED( hr ) )
{
CComPtr <ISpStream> cpWavStream;
CComPtr <ISpStreamFormat> cpOldStream;
CSpStreamFormat OriginalFmt;
pVoice-> GetOutputStream( &cpOldStream );
OriginalFmt.AssignFormat(cpOldStream);
//绑定文件:
//hr = SPBindToFile( L "E:\\output.wav ",SPFM_CREATE_ALWAYS,
// &cpWavStream,&OriginalFmt.FormatId(),
// OriginalFmt.WaveFormatExPtr() );
if( SUCCEEDED( hr ) )
{
pVoice-> SetOutput(cpWavStream,TRUE);
//pVoice-> SetLanguage(cpWavStream,SP_CHINESE);
WCHAR WTX[] = L " <VOICE REQUIRED= 'NAME=Microsoft Mary '/> 0517 ";
pVoice-> Speak(WTX ,SPF_IS_XML, NULL);
pVoice-> Release();
pVoice = NULL;
}
}
//释放COM资源:
::CoUninitialize();
return TRUE;
}
这是一个发出英文的语音,怎么改把英文变成中文?还有如果少于4位了,就可以读出的是一个数字,不是一个一个读出的数字?
------解决方案--------------------
SAPI开发语音合成?我记得可以直接设置的。在控制面版的语音里吧,你训练的时候就要用到那个吧,很久前用过这个。在程序里面改的话,你就要好好看看那个帮助文件了。
------解决方案--------------------
使用的是 pVoice-> SetVoice改变到中文朗读
#include <sapi.h>
#include <sphelper.h>
#include <windows.h>
//#include <atlcom.h>
const DWORD SP_CHINESE = 0x0000; //简体中文.
const DWORD SP_ENGLISH = 0x0001; //英语.
int main(int argc, char* argv[])
{ ISpVoice * pVoice = NULL;
if (FAILED(::CoInitialize(NULL)))
return FALSE;
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL,
IID_ISpVoice, (void **)&pVoice);
if( SUCCEEDED( hr ) )
{
CComPtr <ISpStream> cpWavStream;
CComPtr <ISpStreamFormat> cpOldStream;
CSpStreamFormat OriginalFmt;
pVoice-> GetOutputStream( &cpOldStream );
OriginalFmt.AssignFormat(cpOldStream);
//绑定文件:
//hr = SPBindToFile( L "E:\\output.wav ",SPFM_CREATE_ALWAYS,
// &cpWavStream,&OriginalFmt.FormatId(),
// OriginalFmt.WaveFormatExPtr() );
if( SUCCEEDED( hr ) )
{
pVoice-> SetOutput(cpWavStream,TRUE);
//pVoice-> SetLanguage(cpWavStream,SP_CHINESE);
WCHAR WTX[] = L " <VOICE REQUIRED= 'NAME=Microsoft Mary '/> 0517 ";
pVoice-> Speak(WTX ,SPF_IS_XML, NULL);
pVoice-> Release();
pVoice = NULL;
}
}
//释放COM资源:
::CoUninitialize();
return TRUE;
}
这是一个发出英文的语音,怎么改把英文变成中文?还有如果少于4位了,就可以读出的是一个数字,不是一个一个读出的数字?
------解决方案--------------------
SAPI开发语音合成?我记得可以直接设置的。在控制面版的语音里吧,你训练的时候就要用到那个吧,很久前用过这个。在程序里面改的话,你就要好好看看那个帮助文件了。
------解决方案--------------------
使用的是 pVoice-> SetVoice改变到中文朗读