AquesTalkについて
| 投稿日 | : 2009/10/02 13:01 |
| 投稿者 | : コア |
| 参照先 | : |
| 件名 | : Re: AquesTalkについて |
| 投稿日 | : 2009/10/02 18:24 |
| 投稿者 | : コア |
| 参照先 | : |
回答をありがとうございます。
原因がわかりましたので実現可能のためにガンバッテみるつもりです。
今後もよろしくお願い致します。
原因がわかりましたので実現可能のためにガンバッテみるつもりです。
今後もよろしくお願い致します。
| 件名 | : Re: AquesTalkについて |
| 投稿日 | : 2009/10/02 14:32 |
| 投稿者 | : 管理人 |
| 参照先 | : |
こんにちは
おそらく、AquesTalkDa_PlaySync()を使われているのかと思いますが、このような同期型の関数は発声終了まで関数から戻りませんので、合成中はそれ以降の処理は動かなくなります。これが原因かと思います。
対処法としては、AquesTalkDa_Play()などの非同期関数を利用したり、通信とは別スレッドにするなどの方法で実現が可能と思います。
ただ、VBでこれが出来るかは、VBに詳しくないのでわかりません。VC++やC#などなら出来ます。
おそらく、AquesTalkDa_PlaySync()を使われているのかと思いますが、このような同期型の関数は発声終了まで関数から戻りませんので、合成中はそれ以降の処理は動かなくなります。これが原因かと思います。
対処法としては、AquesTalkDa_Play()などの非同期関数を利用したり、通信とは別スレッドにするなどの方法で実現が可能と思います。
ただ、VBでこれが出来るかは、VBに詳しくないのでわかりません。VC++やC#などなら出来ます。
VB6 SP6でアプリを作成しています。
シリアル通信で外部から1秒間隔でデータを受信、にその内容によりAquesTalkでメッセージを音声でと考えています。VBの使用例をみて試したところ大変簡単に実現できることに驚きました。
質問ですがAquesTalkの実行時、音声の発する時間、
たとえば3秒、5秒の間はアプリのタスクが停止し
AquesTalkの実行が終了した時点で走りだすことから
データの受信に問題が発生することがありました。
これはVBに限らないことなのでしょうか。
使い方に問題あり?または他の方法があれば宜しくお願い致します。