成功使用正确的SAPI输入参数是什么?
本文关键字:输入 参数 是什么 SAPI 成功 | 更新日期: 2023-09-27 18:12:28
我有一个问题,这个COM函数我不知道正确的参数是什么。我收到了来自VS 2013的坏通知。计划:speakBoard
WAVEFORMATEX waveFORMATEX = new WAVEFORMATEX();
waveFORMATEX.wFormatTag = 1;
waveFORMATEX.nChannels = 1;
waveFORMATEX.nSamplesPerSec = 44100;
waveFORMATEX.wBitsPerSample = 16;
waveFORMATEX.nBlockAlign = 4;
waveFORMATEX.cbSize = 0;
SPVTEXTFRAG SPVtextFRAG = new SPVTEXTFRAG();
SPVtextFRAG.pTextStart = "one";
SPVtextFRAG.ulTextLen = 100;
SPVtextFRAG.ulTextSrcOffset = 0;
SpeakBoard1.STTTSEngine se;
Guid rguid = new Guid("ggg");
SpeakBoard1.ISpTTSEngineSite es;
se.Speak(255, ref rguid, ref waveFORMATEX, ref SPVtextFRAG, es);
对于c++,我也面临着类似的问题。这是我填充主结构的代码:
SPVTEXTFRAG fillSPVTEXTFRAG(){
SPVTEXTFRAG spvTextFrag;
spvTextFrag.pNext = NULL;
spvTextFrag.State.eAction = SPVA_Speak;
spvTextFrag.State.LangID = 3;
spvTextFrag.State.wReserved = 3;
spvTextFrag.State.EmphAdj = 3;
spvTextFrag.State.RateAdj = 3;
spvTextFrag.State.Volume = 100;
spvTextFrag.State.PitchAdj.MiddleAdj = 0;
spvTextFrag.State.PitchAdj.RangeAdj = 0;
spvTextFrag.State.SilenceMSecs = 0;
//spvTextFrag.State.pPhoneIds = ;
spvTextFrag.State.ePartOfSpeech = SPPS_Unknown;// SPPARTOFSPEECH.SPPS_Unknown;
spvTextFrag.State.Context.pCategory;
spvTextFrag.State.Context.pBefore;
spvTextFrag.State.Context.pAfter;
spvTextFrag.pTextStart = L"one";
spvTextFrag.ulTextLen = 100;
spvTextFrag.ulTextSrcOffset = 0;
return spvTextFrag;
}
这段代码填充了调用ISpTTSEngine的Speak方法的五个参数之一。但是您还需要为这样的调用实现ISpTTSEngineSite接口。