概略
詳細
$ sort -R adv300.txt | head -n 10 | cut -f 1 | say -i -v ava
- sort -R はランダムにソート、head -n 10で最初10行だけを切り出して、cut -f 1で英単語の第1フィールドだけを切り出して、sayコマンドに渡す。say の-iは発話と同時に文字を表示、-v avaでAvaの声を指定している。何の声があるかは"say -v ?"で分かる。個人的には米語はAva、日本語はKyokoが好み。無い場合は、macOSのシステム環境設定/アクセシビリティ/スピーチ/システムの声/カスタマイズで声を追加できる。
- Avaが英語を、Kyokoが日本語を読み上げるには↓の通り。前と同じようにランダムに10個取り出したものを、awkで、sayコマンドで英単語の第一フィールド$1を表示しながらAvaの声で読み上げ、意味の第3フィールド$3を表示しながらKyokoの声で読み上げる。-iで日本語を表示するのはちょっとbugっぽいので、ちゃんとやるならechoを使った方がいい。
$ sort -R adv300.txt | head -n 10 | awk '{system("say -v ava -i " $1 "; say -v kyoko -i " $3)}'
$ say -v ava -f adv300.txt -o adv300.aiff
- 英語をAvaの声、日本語をKyokoの声でのように、異なる声を一度にファイルに落とすことはできないので、その場合は別ファイルに落として、soxなどで合成するのがいいだろう。