public AITalkResultCode VoiceLoad(string voiceName) { AITalkResultCode code = AITalkAPI.VoiceLoad(voiceName); this.OnWriteLog("[AITalkAPI_VoiceLoad] " + code); return(code); }
protected override int MyAITalkProcTextBuf(AITalkEventReasonCode reasonCode, int jobID, IntPtr userData) { uint size = 0; uint pos = 0; string kana = ""; if ((reasonCode == AITalkEventReasonCode.AITALKEVENT_TEXTBUF_FLUSH) || (reasonCode == AITalkEventReasonCode.AITALKEVENT_TEXTBUF_FULL)) { AITalkResultCode errorCode = AITalkAPI.GetKana(jobID, this._jobInfo.KanaBuffer, (uint)this._jobInfo.KanaBuffer.Capacity, out size, out pos); base.OnWriteLog(string.Concat(new object[] { "[AITalkAPI_GetKana] ", errorCode, " : ", size })); if (errorCode != AITalkResultCode.AITALKERR_SUCCESS) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("GetKana", errorCode, "")); } kana = this._jobInfo.KanaBuffer.ToString(); JobInfo.TextBlock textBlock = this._jobInfo.AddTextBlock((int)pos, kana); this._jobInfo.GrowTextProcessingProgress(textBlock); int textProcessingProgressPercentage = this._jobInfo.GetTextProcessingProgressPercentage(); TextProcessingEventArgs e = new TextProcessingEventArgs(textBlock.Pos, textBlock.Text, kana, textProcessingProgressPercentage); this.InvokeUserEventHandler <TextProcessingEventArgs>(new EventInVoker <TextProcessingEventArgs>(this.OnTextProcessingProgress), e); } else if (reasonCode == AITalkEventReasonCode.AITALKEVENT_TEXTBUF_CLOSE) { TextProcessingEventArgs args2 = new TextProcessingEventArgs(0, "", "", 100); this.InvokeUserEventHandler <TextProcessingEventArgs>(new EventInVoker <TextProcessingEventArgs>(this.OnTextProcessingComplete), args2); this._jobInfo.TextProcessingDone = true; base.OnWriteLog("[JobInfo] " + this._jobInfo.ToString()); } base.OnWriteLog(string.Concat(new object[] { "Callback [AITalkProcTextBuf] ", jobID, " : ", reasonCode.ToString(), " : ", (int)userData, " : ", kana })); return(0); }
public AITalkResultCode VoiceClear() { AITalkResultCode code = AITalkAPI.VoiceClear(); this.OnWriteLog("[AITalkAPI_VoiceClear] " + code); return(code); }
public AITalkResultCode BLoadWordDic() { AITalkResultCode code = AITalkAPI.BLoadWordDic(); this.OnWriteLog("[AITalkAPI_BLoadWordDic] " + code); return(code); }
protected virtual int MyAITalkProcRawBuf(AITalkEventReasonCode reasonCode, int jobID, ulong tick, IntPtr userData) { short[] wave = null; uint size = 0; if ((reasonCode == AITalkEventReasonCode.AITALKEVENT_RAWBUF_FLUSH) || (reasonCode == AITalkEventReasonCode.AITALKEVENT_RAWBUF_FULL)) { AITalkResultCode code = AITalkAPI.GetData(jobID, this._waveBuf, (uint)this._waveBuf.Length, out size); this.OnWriteLog(string.Concat(new object[] { "[AITalkAPI_GetData] ", code, " : ", size })); if ((code == AITalkResultCode.AITALKERR_SUCCESS) && (size > 0)) { wave = this._waveBuf; if (reasonCode == AITalkEventReasonCode.AITALKEVENT_RAWBUF_FLUSH) { this.PushEvent(tick, (IntPtr)2L); } this.PushData(wave, (int)size, 0); } } else if (reasonCode == AITalkEventReasonCode.AITALKEVENT_RAWBUF_CLOSE) { this.PushEvent(tick, (IntPtr)3L); this.PushData(new short[0], 0, 1); } this.OnWriteLog(string.Concat(new object[] { "Callback [AITalkProcRawBuf] ", jobID, " : ", reasonCode.ToString(), " : ", tick, " : ", (int)userData, " : ", (wave != null) ? ((size * 2)).ToString() : "NODATA" })); return(0); }
public AITalkResultCode ReloadWordDic(string pathDic) { AITalkResultCode code = AITalkAPI.ReloadWordDic(pathDic); this.OnWriteLog("[AITalkAPI_ReloadWordDic] " + code); return(code); }
public AITalkResultCode LangLoad(string dirLang) { AITalkResultCode code = AITalkAPI.LangLoad(dirLang); this.OnWriteLog("[AITalkAPI_LangLoad] " + code); return(code); }
public AITalkResultCode LangClear() { AITalkResultCode code = AITalkAPI.LangClear(); this.OnWriteLog("[AITalkAPI_LangClear] " + code); return(code); }
public AITalkResultCode End() { AITalkResultCode code = AITalkAPI.End(); this.OnWriteLog("[AITalkAPI_End] " + code); this._busy = false; this._playing = false; return(code); }
public virtual AITalkResultCode SynthAsync(ref AITalk_TJobParam jobparam, string text) { int jobID; if (this._busy || this._playing) { return(AITalkResultCode.AITALKERR_TOO_MANY_JOBS); } this._busy = true; this._playing = true; AITalk_TTtsParam param = new AITalk_TTtsParam(); AITalkResultCode res = this.GetParam(ref param); this.OnWriteLog("[AITalkAPI_GetParam] " + res); if (res != AITalkResultCode.AITALKERR_SUCCESS) { this._busy = false; this._playing = false; return(res); } param.procTextBuf = this._AITalkProcTextBuf; param.procRawBuf = this._AITalkProcRawBuf; param.procEventTts = this._AITalkProcEventTTS; res = this.SetParam(ref param); this.OnWriteLog("[AITalkAPI_SetParam] " + res); if (res != AITalkResultCode.AITALKERR_SUCCESS) { this._busy = false; this._playing = false; return(res); } this.OnWriteLog("[AIAuidoAPI_ClearData] " + AIAudioAPI.ClearData()); res = AITalkAPI.TextToSpeech(out jobID, ref jobparam, text); this.OnWriteLog("[AITalkAPI_TextToSpeech] " + res); if (res != AITalkResultCode.AITALKERR_SUCCESS) { this._busy = false; this._playing = false; return(res); } new Thread(delegate { AITalkStatusCode code; do { Thread.Sleep(this.GetStatusInterval); res = this.GetStatus(jobID, out code); }while ((this._playing && (res == AITalkResultCode.AITALKERR_SUCCESS)) && (code != AITalkStatusCode.AITALKSTAT_DONE)); AITalkAPI.CloseSpeech(jobID, 0); this.OnWriteLog("[AITalkAPI_CloseSpeech] " + res); this._busy = false; }) { IsBackground = true }.Start(); return(res); }
protected void DoJob() { AITalkResultCode errorCode = AITalkResultCode.AITALKERR_SUCCESS; AITalkStatusCode status = AITalkStatusCode.AITALKSTAT_DONE; Label_0005: Thread.Sleep(base.GetStatusInterval); errorCode = base.GetStatus(this._jobInfo.JobID, out status); if ((errorCode != AITalkResultCode.AITALKERR_SUCCESS) || (status == AITalkStatusCode.AITALKSTAT_WRONG_STATE)) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("GetStatus", errorCode, "")); } else if (!this._jobInfo.Aborted) { if (this._jobInfo.TextProcessingDone && (this._jobInfo.TextBlockList.Count == 0)) { if (base._playing) { AudioEventArgs e = new AudioEventArgs(0, "", "", 0L); this.InvokeUserEventHandler <AudioEventArgs>(new EventInVoker <AudioEventArgs>(this.OnPlayComplete), e); base._playing = false; } } else if ((((this.SynthMode & AITalk.SynthMode.Play) != AITalk.SynthMode.Play) || base._playing) && (((this.SynthMode & AITalk.SynthMode.Play) == AITalk.SynthMode.Play) || (status != AITalkStatusCode.AITALKSTAT_DONE))) { goto Label_0005; } } if ((this.SynthMode & AITalk.SynthMode.Synthesize) != AITalk.SynthMode.Synthesize) { AITalkResultCode code3 = AITalkAPI.CloseKana(this._jobInfo.JobID, 0); base.OnWriteLog("[AITalkAPI_CloseKana] " + code3); if (code3 != AITalkResultCode.AITALKERR_SUCCESS) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("CloseKana", code3, "")); } } else { AITalkResultCode code4 = AITalkAPI.CloseSpeech(this._jobInfo.JobID, 0); base.OnWriteLog("[AITalkAPI_CloseSpeech] " + code4); if (code4 != AITalkResultCode.AITALKERR_SUCCESS) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("CloseSpeech", code4, "")); } } if (base._playing) { base.StopAudio(); base._playing = false; } this._jobInfo = null; base._busy = false; this.InvokeUserEventHandler <EventArgs>(new EventInVoker <EventArgs>(this.OnJobComplete), new EventArgs()); }
public AITalkResultCode VersionInfo(int verbose, out string str) { uint num2; int capacity = 0x400; StringBuilder sjis = new StringBuilder(capacity); AITalkResultCode code = AITalkAPI.VersionInfo(verbose, sjis, (uint)capacity, out num2); this.OnWriteLog("[AITalkAPI_VersionInfo] " + code); str = sjis.ToString(); return(code); }
public AITalkResultCode Init(AITalk_TConfig config) { AITalkResultCode code = AITalkAPI.Init(ref config); this.OnWriteLog("[AITalkAPI_Init] " + code); if (code == AITalkResultCode.AITALKERR_SUCCESS) { this._disposed = false; } this._voiceSamplesPerSec = config.hzVoiceDB; this._kanaBuf = new StringBuilder(0x4000); this._waveBuf = new short[config.hzVoiceDB * 4]; return(code); }
public AITalkResultCode SetParam(ref AITalk_TTtsParam param) { IntPtr pParam = AITalkMarshal.TTtsParamToIntPtr(ref param); AITalkResultCode code = AITalkAPI.SetParam(pParam); this.OnWriteLog("[AITalkAPI_SetParam] " + code); Marshal.FreeCoTaskMem(pParam); if (code == AITalkResultCode.AITALKERR_SUCCESS) { this._kanaBuf = new StringBuilder((int)param.lenTextBufBytes); this._waveBuf = new short[param.lenRawBufBytes / 2]; } return(code); }
protected virtual int MyAITalkProcTextBuf(AITalkEventReasonCode reasonCode, int jobID, IntPtr userData) { uint size = 0; uint pos = 0; string str = ""; if ((reasonCode == AITalkEventReasonCode.AITALKEVENT_TEXTBUF_FLUSH) || (reasonCode == AITalkEventReasonCode.AITALKEVENT_TEXTBUF_FULL)) { AITalkResultCode code = AITalkAPI.GetKana(jobID, this._kanaBuf, (uint)this._kanaBuf.Capacity, out size, out pos); this.OnWriteLog(string.Concat(new object[] { "[AITalkAPI_GetKana] ", code, " : ", size })); str = this._kanaBuf.ToString(); } this.OnWriteLog(string.Concat(new object[] { "Callback [AITalkProcTextBuf] ", jobID, " : ", reasonCode.ToString(), " : ", (int)userData, " : ", str })); return(0); }
public AITalkResultCode GetParam(ref AITalk_TTtsParam param) { uint num; AITalkResultCode code = AITalkAPI.GetParam(IntPtr.Zero, out num); this.OnWriteLog("[AITalkAPI_GetParam] " + code); if (code == AITalkResultCode.AITALKERR_INSUFFICIENT) { IntPtr ptr = Marshal.AllocCoTaskMem((int)num); Marshal.WriteInt32(ptr, (int)num); code = AITalkAPI.GetParam(ptr, out num); this.OnWriteLog("[AITalkAPI_GetParam] " + code); if (code != AITalkResultCode.AITALKERR_SUCCESS) { Marshal.FreeCoTaskMem(ptr); return(code); } param = AITalkMarshal.IntPtrToTTtsParam(ptr); Marshal.FreeCoTaskMem(ptr); } return(code); }
protected override int MyAITalkProcRawBuf(AITalkEventReasonCode reasonCode, int jobID, ulong tick, IntPtr userData) { uint size = 0; short[] wave = null; if ((reasonCode == AITalkEventReasonCode.AITALKEVENT_RAWBUF_FLUSH) || (reasonCode == AITalkEventReasonCode.AITALKEVENT_RAWBUF_FULL)) { AITalkResultCode errorCode = AITalkAPI.GetData(jobID, this._jobInfo.WaveBuffer, (uint)this._jobInfo.WaveBuffer.Length, out size); base.OnWriteLog(string.Concat(new object[] { "[AITalkAPI_GetData] ", errorCode, " : ", size })); if (errorCode != AITalkResultCode.AITALKERR_SUCCESS) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("GetData", errorCode, "")); } if ((errorCode == AITalkResultCode.AITALKERR_SUCCESS) && (size > 0)) { wave = this._jobInfo.WaveBuffer; if (this._jobInfo.NextSentenceStartTick >= 0L) { JobInfo.TextBlock block = this._jobInfo.TextBlockList[this._jobInfo.CurrentIndex]; block.Tick = this._jobInfo.NextSentenceStartTick; if ((this.SynthMode & AITalk.SynthMode.Play) == AITalk.SynthMode.Play) { AIAudioResultCode code2 = base.PushEvent((ulong)block.Tick, new AudioEventParam(AudioEventCode.Sentence, block.Pos, block.Text, block.Kana, (ulong)block.Tick).ToIntPtr()); if ((code2 != AIAudioResultCode.AIAUDIOERR_SUCCESS) && (code2 != AIAudioResultCode.AIAUDIOERR_NO_PLAYING)) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("PushEvent_Progress", code2, "")); } } this._jobInfo.NextSentenceStartTick = -1L; } this.PushQueuedEvents(); if ((this.SynthMode & AITalk.SynthMode.Play) == AITalk.SynthMode.Play) { AIAudioResultCode code3 = base.PushData(wave, (int)size, 0); if ((code3 != AIAudioResultCode.AIAUDIOERR_SUCCESS) && (code3 != AIAudioResultCode.AIAUDIOERR_NO_PLAYING)) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("PushData_Progress", code3, "")); } } } if ((reasonCode == AITalkEventReasonCode.AITALKEVENT_RAWBUF_FLUSH) && ((this.SynthMode & AITalk.SynthMode.TextProcess) == AITalk.SynthMode.TextProcess)) { this._jobInfo.GrowSynthesizingProgress(this._jobInfo.TextBlockList[this._jobInfo.CurrentIndex]); this._jobInfo.NextSentenceStartTick = (long)tick; this._jobInfo.CurrentIndex++; } int progress = ((this.SynthMode & AITalk.SynthMode.TextProcess) == AITalk.SynthMode.TextProcess) ? this._jobInfo.GetSynthesizeingProgressPercentage() : 0; SynthesizingEventArgs e = new SynthesizingEventArgs(tick, wave, (int)size, reasonCode == AITalkEventReasonCode.AITALKEVENT_RAWBUF_FLUSH, progress); this.InvokeUserEventHandler <SynthesizingEventArgs>(new EventInVoker <SynthesizingEventArgs>(this.OnSynthesizingProgress), e); } else { if ((this.SynthMode & AITalk.SynthMode.Play) == AITalk.SynthMode.Play) { AIAudioResultCode code4 = base.PushEvent(tick, new AudioEventParam(AudioEventCode.Complete, 0, "", "", tick).ToIntPtr()); if (code4 == AIAudioResultCode.AIAUDIOERR_SUCCESS) { code4 = base.PushData(new short[1], 1, 1); if ((code4 != AIAudioResultCode.AIAUDIOERR_SUCCESS) && (code4 != AIAudioResultCode.AIAUDIOERR_NO_PLAYING)) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("PushData_Complete", code4, "")); } } else if (code4 != AIAudioResultCode.AIAUDIOERR_NO_PLAYING) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("PushEvent_Complete", code4, "")); } } SynthesizingEventArgs args2 = new SynthesizingEventArgs(tick, null, 0, false, 100); this.InvokeUserEventHandler <SynthesizingEventArgs>(new EventInVoker <SynthesizingEventArgs>(this.OnSynthesizingComplete), args2); this._jobInfo.SynthesizingDone = true; } base.OnWriteLog(string.Concat(new object[] { "Callback [AITalkProcRawBuf] ", jobID, " : ", reasonCode.ToString(), " : ", tick, " : ", (int)userData, " : ", (wave != null) ? ((size * 2)).ToString() : "NODATA" })); return(0); }
public AITalkResultCode SynthSync(ref AITalk_TJobParam jobparam, string text, out string kana, out short[] wave) { int num; AITalkStatusCode code3; kana = null; wave = null; if (this._busy) { return(AITalkResultCode.AITALKERR_TOO_MANY_JOBS); } this._busy = true; AITalk_TTtsParam param = new AITalk_TTtsParam(); AITalkResultCode status = this.GetParam(ref param); this.OnWriteLog("[AITalkAPI_GetParam] " + status); if (status != AITalkResultCode.AITALKERR_SUCCESS) { this._busy = false; return(status); } param.procTextBuf = null; param.procRawBuf = null; param.procEventTts = null; status = this.SetParam(ref param); this.OnWriteLog("[AITalkAPI_SetParam] " + status); if (status != AITalkResultCode.AITALKERR_SUCCESS) { this._busy = false; return(status); } if ((jobparam.modeInOut == AITalkJobInOut.AITALKIOMODE_PLAIN_TO_AIKANA) || (jobparam.modeInOut == AITalkJobInOut.AITALKIOMODE_AIKANA_TO_JEITA)) { status = AITalkAPI.TextToKana(out num, ref jobparam, text); this.OnWriteLog(string.Concat(new object[] { "[AITalkAPI_TextToKana] ", status, " : ", num })); } else { status = AITalkAPI.TextToSpeech(out num, ref jobparam, text); this.OnWriteLog(string.Concat(new object[] { "[AITalkAPI_TextToSpeech] ", status, " : ", num })); } if (status != AITalkResultCode.AITALKERR_SUCCESS) { this._busy = false; return(status); } StringBuilder textBuf = new StringBuilder((int)param.lenTextBufBytes); short[] rawBuf = new short[param.lenRawBufBytes / 2]; List <short[]> list = new List <short[]>(); AITalkResultCode code2 = AITalkResultCode.AITALKERR_SUCCESS; Label_0166: Thread.Sleep(this.GetStatusInterval); status = AITalkAPI.GetStatus(num, out code3); if (status != AITalkResultCode.AITALKERR_SUCCESS) { code2 = status; } else { switch (code3) { case AITalkStatusCode.AITALKSTAT_WRONG_STATE: code2 = status; goto Label_02F4; case AITalkStatusCode.AITALKSTAT_INPROGRESS: goto Label_0166; } uint size = 0; uint num3 = 0; if (((jobparam.modeInOut == AITalkJobInOut.AITALKIOMODE_PLAIN_TO_WAVE) || (jobparam.modeInOut == AITalkJobInOut.AITALKIOMODE_PLAIN_TO_AIKANA)) || (jobparam.modeInOut == AITalkJobInOut.AITALKIOMODE_AIKANA_TO_JEITA)) { uint num4; status = AITalkAPI.GetKana(num, textBuf, (uint)textBuf.Capacity, out size, out num4); this.OnWriteLog(string.Concat(new object[] { "[AITalkAPI_GetKana] ", status, " : ", size })); if ((status != AITalkResultCode.AITALKERR_NOMORE_DATA) && (status != AITalkResultCode.AITALKERR_SUCCESS)) { code2 = status; goto Label_02F4; } if (size > 0) { if (kana == null) { kana = textBuf.ToString(); } else { kana = kana + textBuf.ToString(); } } } if (((jobparam.modeInOut == AITalkJobInOut.AITALKIOMODE_PLAIN_TO_WAVE) || (jobparam.modeInOut == AITalkJobInOut.AITALKIOMODE_AIKANA_TO_WAVE)) || (jobparam.modeInOut == AITalkJobInOut.AITALKIOMODE_JEITA_TO_WAVE)) { status = AITalkAPI.GetData(num, rawBuf, (uint)rawBuf.Length, out num3); this.OnWriteLog(string.Concat(new object[] { "[AITalkAPI_GetData] ", status, " : ", num3 })); if (status == AITalkResultCode.AITALKERR_NOMORE_DATA) { goto Label_02F4; } if (status != AITalkResultCode.AITALKERR_SUCCESS) { code2 = status; goto Label_02F4; } short[] dst = new short[num3]; Buffer.BlockCopy(rawBuf, 0, dst, 0, (int)(num3 * 2)); list.Add(dst); } if (((code3 != AITalkStatusCode.AITALKSTAT_DONE) || (size != 0)) || (num3 != 0)) { goto Label_0166; } } Label_02F4: if ((jobparam.modeInOut == AITalkJobInOut.AITALKIOMODE_PLAIN_TO_AIKANA) || (jobparam.modeInOut == AITalkJobInOut.AITALKIOMODE_AIKANA_TO_JEITA)) { status = AITalkAPI.CloseKana(num, 0); this.OnWriteLog("[AITalkAPI_CloseKana] " + status); } else { status = AITalkAPI.CloseSpeech(num, 0); this.OnWriteLog("[AITalkAPI_CloseSpeech] " + status); } if (list.Count > 0) { int num5 = 0; foreach (short[] numArray3 in list) { num5 += numArray3.Length; } wave = new short[num5]; int dstOffset = 0; foreach (short[] numArray4 in list) { Buffer.BlockCopy(numArray4, 0, wave, dstOffset, numArray4.Length * 2); dstOffset += numArray4.Length * 2; } } this._busy = false; if (code2 == AITalkResultCode.AITALKERR_SUCCESS) { return(status); } return(code2); }
public AITalkResultCode Do(AITalk.SynthMode synthMode, string text, AITalk.SynthOption synthOption) { AITalk_TJobParam param2; if (base._busy || base._playing) { return(AITalkResultCode.AITALKERR_TOO_MANY_JOBS); } this.SynthMode = synthMode; this.SynthOption = synthOption; base._busy = true; int jobID = -1; AITalkResultCode code = AITalkResultCode.AITALKERR_SUCCESS; AITalk_TTtsParam param = new AITalk_TTtsParam(); code = base.GetParam(ref param); base.OnWriteLog("[AITalkAPI_GetParam] " + code); if (code != AITalkResultCode.AITALKERR_SUCCESS) { base._busy = false; return(code); } param.pauseBegin = ((synthOption & AITalk.SynthOption.UseBeginPause) == AITalk.SynthOption.UseBeginPause) ? this._beginPause : 0; param.pauseTerm = ((synthOption & AITalk.SynthOption.UseTermPause) == AITalk.SynthOption.UseTermPause) ? this._termPause : 0; param.procTextBuf = base._AITalkProcTextBuf; param.procRawBuf = base._AITalkProcRawBuf; param.procEventTts = base._AITalkProcEventTTS; code = base.SetParam(ref param); base.OnWriteLog("[AITalkAPI_SetParam] " + code); if (code != AITalkResultCode.AITALKERR_SUCCESS) { base._busy = false; return(code); } if ((this.SynthMode & AITalk.SynthMode.TextProcess) == AITalk.SynthMode.TextProcess) { this._jobInfo = new JobInfo(this.SynthMode, text, this.SynthOption, param.lenTextBufBytes, param.lenRawBufBytes); } else { this._jobInfo = new JobInfo(this.SynthMode, text, this.SynthOption, param.lenTextBufBytes, param.lenRawBufBytes); this._jobInfo.TextBlockList.Add(new JobInfo.TextBlock(0, text, text, "", 1f, 1f, 1f, 1f)); } param2.userData = IntPtr.Zero; if (this.SynthMode == AITalk.SynthMode.TextProcess) { param2.modeInOut = AITalkJobInOut.AITALKIOMODE_PLAIN_TO_AIKANA; } else if ((this.SynthMode == AITalk.SynthMode.Synthesize) || (this.SynthMode == AITalk.SynthMode.KanaToSpeech)) { param2.modeInOut = AITalkJobInOut.AITALKIOMODE_AIKANA_TO_WAVE; } else if ((this.SynthMode == AITalk.SynthMode.TextToWave) || (this.SynthMode == AITalk.SynthMode.TextToSpeech)) { param2.modeInOut = AITalkJobInOut.AITALKIOMODE_PLAIN_TO_WAVE; } else { base._busy = false; return(code); } if ((this.SynthMode & AITalk.SynthMode.Play) == AITalk.SynthMode.Play) { AIAudioResultCode errorCode = AIAudioAPI.ClearData(); base.OnWriteLog("[AIAuidoAPI_ClearData] " + errorCode); if ((errorCode != AIAudioResultCode.AIAUDIOERR_SUCCESS) && (errorCode != AIAudioResultCode.AIAUDIOERR_NO_PLAYING)) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("ClearData", errorCode, "")); base._busy = false; return(code); } base._playing = true; } if ((this.SynthMode & AITalk.SynthMode.Synthesize) != AITalk.SynthMode.Synthesize) { code = AITalkAPI.TextToKana(out jobID, ref param2, this._jobInfo.SynthText); base.OnWriteLog(string.Concat(new object[] { "[AITalkAPI_TextToKana] ", code, " : ", jobID })); } else { code = AITalkAPI.TextToSpeech(out jobID, ref param2, this._jobInfo.SynthText); base.OnWriteLog(string.Concat(new object[] { "[AITalkAPI_TextToSpeech] ", code, " : ", jobID })); } if (code != AITalkResultCode.AITALKERR_SUCCESS) { base._playing = false; base._busy = false; return(code); } this._jobInfo.JobID = jobID; new Thread(new ThreadStart(this.DoJob)) { IsBackground = true }.Start(); return(code); }
public AITalkResultCode GetStatus(int jobID, out AITalkStatusCode status) { return(AITalkAPI.GetStatus(jobID, out status)); }