EV3に話しかける機能があります
speak(){ espeak -a 200 -s 130 -v la --stdout "$@" | aplay; }
それは単に
speak "Say this"
ファイルの内容を言いたいので、これを持っています
printf '%b\n' "$(cat joyPhrase)"
Printfからの出力をspeakの引用符にどのように取得しますか?
espeak
は --stdin
パイプから読み取るため、1つのオプションは、パラメーターの代わりにそれを使用するように関数呼び出しを変更し、printf出力を関数にパイプすることです。
speak(){ espeak -a 200 -s 130 -v la --stdout --stdin | aplay; }
printf '%b\n' "$(cat joyPhrase)" | speak
または、次のように、他のコマンドの出力をspeak
のパラメータに渡すことができます(ただし、制御文字がある場合は機能しない可能性があります)。
speak $(printf '%b\n' "$(cat joyPhrase)")
二重引用符をエスケープできます
printf '%b\n' "\"$(cat joyPhrase)\""
私のマシンで
$ echo this is a file >> testfile
$ printf '%b\n' "\"$(cat testfile)\""
"this is a file"
Catを使用する代わりに、リダイレクトを使用できます。
$ printf '%b\n' "\"$(< testfile)\""
"this is a file"