現在いつ音声合成マークアップ言語text
(SSML)がプロパティに設定されました。SpeechSynthesisUtterance
インスタンスは次の場所にあります。クロムまたはFirefoxブラウザWebブラウザでは、オーディオ出力に示すように、SSMLは* nixで解析されません。speechSynthesis.speak()
呼ぶ
ブラウザのソースコードを見るspeech-dispatcher
.speak()
次のいずれかによって発生したようですspd-say
。espeak
、そうするように設定されている場合に呼び出すことができますspeech-dispatcher
。
spd-say
x
オプションがあります
-x, --ssml Set SSML mode on (default: off)
espeak
m
オプションがあります
-m Interpret SSML markup, and ignore other < > tags
speech-dispatcher
使用のために作成されたユーザープロファイル
spd-conf -u
このマニュアルには、ユーザープロファイルを使用して特定のクライアントのパラメータを設定できることが記載されています。
4.1.6 パラメータ設定コマンド
次のパラメータ設定コマンドを使用できます。構成および履歴クライアントの場合、特定の他の接続およびすべての接続の値を設定する機能もあります。以下にリストされています。
C API機能:
int spd_set_data_mode(SPDConnection *connection, SPDDataMode mode)
音声ディスパッチャデータモードを設定します。現在、プレーンテキストとSSMLがサポートされています。 SSMLは、インデックス表示を使用したり、テキストの音声パラメータに対する変更を含めたい場合に特に便利です。modeは要求されたデータモードです。
SPD_DATA_TEXT
またはSPD_DATA_SSML
。
質問
呼び出し時にクライアントChromiumブラウザとFirefoxブラウザの
-x
forコマンドとforコマンドのいずれかまたは両方spd-say
のデフォルトオプションを設定するにはどうすればよいですか?-m
espeak
~/.config/speech-dispatcher/speechd.conf
.speak()
ソースコードを調整する方法クロムそしてFirefoxブラウザブラウザは、?に渡されたプロパティで設定されたテキスト設定または
-x
オプションをデフォルトとして使用します。-m
SpeechSpeechSynthesisUtterance
text
window.speechSynthesis.speak()
答え1
一般的に動作する別のアプローチは、バイナリの名前を変更し、名前が変更されたバイナリを呼び出し、必要なオプションを含む元の名前でラッパースクリプトを作成することです。 Hackyですが、おそらくもっと簡単です。 (シェルプログラミングに慣れていない場合は確認してください$*
)。
別のハッキングは、ブラウザのバイナリのバイナリ呼び出し名をラッパースクリプトの名前に変更することです。これにより、標準名を維持できます。
欠点は、ブラウザを更新するときにこのタスクを再実行する必要があることです。ただし、次のスクリプトを使用してgrep
作成できます。dd
grep -FobUa 'spd-say' browser_binary
echo -n 'spd-wrp' | dd bs=1 of=browser_binary seek=12345 conv=notrunc
spd-wrp
ラッパースクリプトの名前はどこにあり、12345
grepがそれを見つけた場所はどこにありますか?バイナリに応じて変形などを複数回使用してください。