0

SAPI 5.x を使用して C# で TTS (テキスト読み上げ) アプリを開発しました。自分のアプリケーションでのみ使用できる独自の音声プロファイル (または音声ファイル) のライセンスを取得したり、開発したりしたいと考えています。

つまり、通常の SAPI 音声がインストールされるのと同じ方法ではインストールされません。これは、他の TTS アプリケーションが音声を使用できるようにしたくないためであり、ユーザーがシステムの制御でカスタム音声を選択できるようにしたくないためです。パネル。

出来ますか?現在、私は SpeechSynthesizer.SelectVoice("Microsoft Anna"); を使用しています。しかし、私が必要としているのは、どうにかして SelectVoice を使用して、アプリと一緒にインストールされる独自の「プライベート」音声ファイルを使用することです。

このトピックに関するアドバイスやヘルプをありがとうございます。

4

2 に答える 2

1

できますが、(重要な) コーディングが必要になります。SAPIは、エンジンとアプリケーション間の対話を管理するために SAPI が使用する COM オブジェクトであるオブジェクト トークンを介してオブジェクトを見つけます。

Microsoft の ISpObjectToken の既定の実装ではレジストリが使用されますが、その実装を使用する義務はありません。

独自のカスタム オブジェクト トークンの実装がある場合 (そして、多くの場合、サード パーティのエンジンが独自のオブジェクト トークンの実装を提供します)、オブジェクト トークンからプライベート SR 音声のコードとデータへのマッピングを作成できます。このオブジェクト トークンを公開しない場合 (つまり、実装を DllRegisterServer の一部としてレジストリに登録しない場合)、SAPI コントロール パネルはオブジェクト トークンのインスタンスを作成できません。アプリケーションの外には表示されません。

于 2012-06-18T21:03:53.383 に答える
0

通常、SAPI は、使用可能な TTS 音声または ASR 言語に関する情報を Windows レジストリ (HKEY_CURRENT_USER\Software\Microsoft\Speech) に保存します。

他の TTS アプリケーションはレジストリから使用可能な音声を取得するため、それらのアプリケーションでもあなたの音声を使用できます。

これを回避する方法はありません。

アプリの起動時にレジストリに音声情報を追加し、閉じるときに削除するコードを記述した場合などです。しかし、それは少し...問題になる可能性があります(アクセス権に関して)。

于 2012-05-31T20:47:00.247 に答える