トップページ > 過去ログ > 記事閲覧
音声記号列が半角スペースが含まれているときの挙動
日時: 2010/11/04 19:53
名前: うなー

入力された文字列をAquesTalkで読み上げるプログラムを書いていたのですが、謎の挙動をするケースが見つかりました。

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

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

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

Page: 1 |

Re: 音声記号列が半角スペースが含まれているときの挙動 ( No.1 )
日時: 2010/11/06 16:50
名前: 管理人

ご報告ありがとうございます。
本来ならエラーを返すべきですが,
バグですね

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

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

メモリを壊している症状ですね。やはり、スペースは音声記号列に指定しないようお願いいたします。
Re: 音声記号列が半角スペースが含まれているときの挙動 ( No.2 )
日時: 2010/11/07 11:42
名前: うなー

了解しました。
アプリ側でチェックするようにします。

Page: 1 |