web-dev-qa-db-ja.com

espeakが話す特定の単語を強調するにはどうすればよいですか?

私はespeakを使用してプレーンテキストファイルのテキストを話しました。ただし、ファイル内の一部の単語はアスタリスクを使用して強調されており(「*緑の*豆を意味しましたか?」)、espeakはそれらを文字通り読み上げます(「アスタリスクの緑のアスタリスク豆を意味しましたか?」)。

アスタリスクを正しく強調して読むために、アスタリスクを何に置き換える必要がありますか?

1
Luc

EspeakはSpeechSynthesis Markup Language(SSML)をサポートしており、これらのタグをプレーンテキストファイルの途中に置くことができます(つまり、全体を適切に変換する必要はありません) SSML)。探しているタグはおそらく<emphasis level="...">です。他の可能なタグはここにリストされています: http://espeak.sourceforge.net/ssml.html

Espeakはデフォルトではそれらを使用しません。-mflagを渡す必要があります。たとえば、espeak -m -f your_file.txtを使用できます

ドキュメントはかなり簡潔なので、可能な値などを見つけるためにソースコードに飛び込む必要があるかもしれません。 (より良いドキュメントを作成しますが、9年前の マージされていないパッチ および ソースリポジトリ が利用できないため、プロジェクトは完全に停止しているようです。)の可能な値強調タグ(および他のいくつかのタグ)は ここではGithub にあります。彼らです:

  • none
  • 減少
  • 中程度
  • 強い
  • x-強い

次に例を示します。Did you mean the <emphasis level="strong">green</emphasis> beans?引用符なしでは機能しないことに注意してください(<emphasis level=strong>はHTMLで機能しますが、SSML/espeakでは引用符なしでは機能しません)。

または、espeakは-kフラグを使用してフルキャップの単語を異なる方法で読み取ることができます。コマンドespeak -k20 -f your_file.txtを使用すると、「フルキャップ」の単語のピッチが変更されることがわかります。 2つのオプションは混在しないため、両方のオプションを使用してピッチを強調および変更することはできません。

ただし、SSMLでは、それらを混在させることができます。Did you mean the <emphasis level="strong"><prosody pitch="75">green</prosody></emphasis> beans?は、強調と高音の両方で読み取られます。

4
Luc