AquesTalk BBS
TOP > 過去ログ > 記事閲覧
fld_nor.gif 音声記号列が半角スペースが含まれているときの挙動
投稿日 : 2010/11/04 19:53
投稿者 うなー
参照先
入力された文字列をAquesTalkで読み上げるプログラムを書いていたのですが、謎の挙動をするケースが見つかりました。

まず、音声記号列に半角スペースが含まれているとエラーにならずに半角スペース以降が無視されます。
例:Synthe("あ う", 100) → 「あ」だけ変換される

また音声記号列が半角スペースで始まっているとき、メモリアクセス違反が起きているようです。
C#から呼び出したときに例外が発生しました。
例:Synthe(" あ", 100) → AccessViolationException例外が発生する

C++から呼び出すと強制終了されるといったことはないのですが、その後に記述したプログラムが実行されなかったり、謎の挙動といった感じでした。
件名 Re: 音声記号列が半角スペースが含まれているときの挙動
投稿日 : 2010/11/07 11:42
投稿者 うなー
参照先
了解しました。
アプリ側でチェックするようにします。
件名 Re: 音声記号列が半角スペースが含まれているときの挙動
投稿日 : 2010/11/06 16:50
投稿者 管理人
参照先
ご報告ありがとうございます。
本来ならエラーを返すべきですが,
バグですね(^^;)

音声記号列に半角スペースは記述できないので、
とりあえずは、アプリ側で半角スペースを含めないようにしていただければと思います。

>C++から呼び出すと強制終了されるといったことはないのですが、その後に記述したプログラムが実行されなかったり、謎の挙動といった感じでした。

メモリを壊している症状ですね。やはり、スペースは音声記号列に指定しないようお願いいたします。

- WEB PATIO -