Macにはテキストを読み上げてくれる機能があります。これは日本語に限らず、英語や中国語などいろんな国の言語に対応しているので、語学の練習に使えます。

そこで、もうすぐ台湾に遊びにいく友人のために、その機能を使って中国語の数値の聞き取りテストができるシェルスクリプトを作ってました。

シェルスクリプト??、となったあなた、安心してください。コピーして貼り付けるだけの単純な作業なのでそれほど難しくはありません。 圓山大飯店牌坊 The Grand Hotel / 台灣台北 Taipei, Taiwan / SML.20140213.6D.30719.P1 — Explored by See-ming Lee

中国語の数値の聞き取りテストの内容は?

中国語の数値の聞き取りテストの内容ですが、自分で指定した範囲の数値を、Macが中国語で発音してくれます。それを聞いてなんと言ったを正解をあてる、というものです。

最初にまず

最大値は?

と聞かれますので、ここで1000と入力します。

最大値は? 1000

次は最小値。

最小値は?

ここでは100としましようか。

最小値は? 100

で、エンターキーを押せば、テスト開始です。

指定した範囲の数値が、中国語の音声としてランダムに流れます。

何と言ったでしょう?

で、答えを入力しますと

何と言ったでしょう? 620 答え 610 (正解)

と表示されて、あとは繰り返し。

とこんなテストです。地味ですね・・・。

それでは実行してみましょう

それでは実際にテストを動かしてみます。

Macの初期状態では、中国語の音声はインストールされていません。

したがって、まずは設定アプリを起動して、テキスト読み上げの項目から、中国語の音声を選択する必要があります。ここでは「Mei-Jia」という中国語の音声を選んでいます。

ダウンロードにはちょっと時間がかかります。無事にインストールが済めば音声を確認することもできます。

通常の音声は日本語になっていると思いますので、そこを変更する必要はありません。

次にFinderを開いて、アプリーケションフォルダから「ターミナル」アプリを起動します。

次の一行をコピーしてください。

read -p "最大値は?" max;read -p "最小値は?" min;while true;do a=`echo $((min + RANDOM % (max - min + 1)))`;say -v Mei-Jia $a;read -p "何と言ったでしょう?" n;echo "答え $a $(if [ "$a" == "$n" ]; then echo "(正解)"; fi)";done

次にターミナルアプリへ移動します。見た目は環境によって違いますのでだいたいこんな風なかんじかな。

~/ $ ← ここでカーソルが点滅している

ここで貼り付けてくてエンターキーを押せばテスト開始です。(押さなくてもいいかも)

エラー処理は何もしていないので、入力なしだと変な挙動になります。変なエラーがでても基本的に問題はないと思いますが、自己責任でのご利用をお願いいたします。OS X 10.10.3にて動作確認してます。

終了する時は、 Control + c を押下してください。

先ほど、コピーして貼り付けた一行の中に Mei-Jia という箇所が音声を指定しているところですが、ここを変更すると別の言語でもテストできます。例えば英語用の音声Alexと変更すると、英語の聞き取りテストに変更できます。他にもドイツ語やフランス語などMacがサポートしている言語であれば、たぶんみんないけるはずです。