Q.2-1 |
英語のエンジンだけを入れているのだが、メニューの辞書が使えない |
|
現在の仕様です。その理由はこちらで説明しています。もしそのエンジンがそれ自体の辞書UI( ユーザー・インターフェース)を搭載している場合は、メニュー「情報」->「Voice情報」でそのVoiceを 選び、「Add Remove Word」のボタンから辞書操作ができます。ちなみにMicrosoft SAM/Mike/ Maryは辞書UIを持っていません。 |
Q.2-2 |
メニューの「辞書」とAdd Remove Wordの違いは? |
|
SAPI 5.1では辞書(Lexicon)にアクセスする入り口が二つあって、一つはSpLexiconオブジェクトを 使う方法、もう一つは音声合成エンジンのベンダーが用意しているUIを使う方法です。メニューの 「辞書」はSpLexiconによるアプローチで、Voice情報画面のAdd Remove Wordボタンはベンダーの UIを呼んでいるだけです。UIが用意されていない場合はAdd Remove Wordボタンが押せないように なっています。 どちらを使うべきか、という問題は微妙です。A社のエンジンとB社のエンジンがそれぞれのUIで (数字の登録は許可しないなどの)何らかの特別な処理を行っていたとすると、そのうち不具合が 出てくる可能性があります。ですからベンダーの用意したUIを使っていれば必ず安全とも言い切れ ないでしょう。メニューの「辞書」ではUser Lexiconの内容をexport/importできるので、あらかじめ 内容を保存しておけば、All or Nothingという状況は避けられると思います。 |
Q.2-3 |
Wav出力の時、他で開いていないのに「他でファイルが使用中」と言われる |
|
エクスプローラまたはMicrosoft Media Playerがファイルを握っていることがあります。 テスト環境(Windows2000)では次のような現象が見られました。 .wavがMedia Player 7.1に関連付けられている状況でエクスプローラを開き、まず対象のWavファイル をシングルクリックします。次にそのまま再生せずに、同じフォルダの別のファイルをシングルクリック します。するともうWavファイルは放されていいはずです。それでもその状態でSpchWでそのWav ファイルに上書き出力しようとすると排他制御のエラーになります。これはNECのSmartSpeechでも 同じ現象が起きました。 対処法としては、エクスプローラ側を「最新の状態に更新」でリフレッシュするか、一旦(上位フォルダ に移るなどして)別のフォルダを選択した状態にしてから出力してください。面倒ですが、SpchW側 から見ると「誰かが握っている」状態なので相手側で放してもらうしかありません。 なおWindowsXP+Media Player8.0ではこの現象は見られませんでした。 |
Q.2-4 |
ディスクフルになった後に同じ名前でWAVファイル出力をすると排他エラーになる |
|
この問題に遭遇した場合は、SpchWを再起動させてから処理を行ってください。 この現象はフロッピーディスクのような容量の小さいメディアにWAVファイルを出力させることにより 容易に再現させることができるのですが、どうもSAPI 5.1(またはその先)の仕様(あるいはバグ) ではないかと考えています。 プログラム的に言えば、SpVoice.Speak( )がStatus.LastHResultとしてSTG_E_WRITEFAULT(0x8003001D)を返してきた時、SpVoice.AudioOutputStreamで使っているSpFileStreamにClose( ) をかけても出力ファイルを放さない、という現象です。 ディスクフルになった時、SpchWを立ち上げたまま、対象のファイルをエクスプローラ等で削除しようとしても「他のプログラムが使用中です」ということで削除できない、という問題も同じことが原因です。その場合も一度SpchWを終了させてから削除してください。 |
Q.2-5 |
なんとなくメモリー・リークしているみたいだけれど |
|
原因は解明しきれていません。数時間程度のRunでは影響は出ないと思いますが、気になる方は 使用を中止してください。 |
Q.2-6 |
本文やコメント行でピッチが指定できないのは何故ですか? |
|
SAPI 5.1ではTTS XMLとしてしかpitchを指定できません。行番号とEOF通知はプログラム内部で データを組み立てる時にptichタグを付け、XMLを解釈するというフラグを立てて発声(Speak)して います。行番号とEOF通知の声の指定で「TTS XMLを解釈しない」というオプションが選択できない のはそのためです。 本文とコメント行でも同じように内部で行データにpitchタグを付けてしまえばいいのではないか、 という考え方もありますが、その案は採用していません。pitchタグを有効にするためには常に「TTS XMLを解釈する」モードになり、今度は「pitchは指定しただけなのにTTS XMLが解釈されてしまう のは何故?」という状況になってしまうからです。EOF通知でも同じことが言えますが、こちらは局所 的なのでここにTTS XMLを指定しようとする人はあまりいないだろうという考えを持っています。 |
Q.2-7 |
MP3やWMAなどに直接出力できないか |
|
今のところ考えていません。一度WAVファイルに出力して別ツールで変換してください。 |