見出し画像

CLIでインターバルタイマーを作る(Mac)

CLIでインターバルタイマーを作る(Mac)

1分、1分、1分、3分といった、個別に設定した時間を測るタイマーとしてインターバルタイマーというものがあるらしい。

英会話の学習で、ひとまとまりの学習をする際にLessonごとに時間を測るのが手間だった。買うほどでもないし、いくつかリリースされているアプリを触れてみたが、使いやすいものがなかったので、CLIでできないかなと調べつつスクリプト化した。

ターミナルでCLIを実行する。

Macではターミナルというアプリケーションが入ってるので、これを使う。
CLI(コマンドラインインターフェース)が初めてでもChatGPTに聞きながらやればなんとかなると思う。

音声ファイルをCLIで再生するコマンド

Macではafplayというコマンドで音声ファイルを再生できるということで、一連の動作をスクリプトにすれば、ターミナルから実行できる。

Lessonの移り変わりの音声ファイルを作る

Lessonの移り変わりの音声はMacのボイスメモで自分で”Lesson1を開始してください〜”などと音声を収録してファイル化した。

コマンドも音声ファイルも揃った。
実現したい動作はこちら。

  1. スクリプトスタート(音声ファイルを指定する)

  2. 音声再生(Lesson1を開始してください)- Lesson1.m4a

  3. 60秒待機

  4. 音声再生(Lesson2を開始してください)- Lesson2.m4a

  5. 60秒待機

  6. 音声再生(Lesson3を開始してください)- Lesson3.m4a

  7. 60秒待機

  8. 音声再生(Lesson4を開始してください)- Lesson4.m4a

  9. 音声再生(テキスト付属音声)- 1.で指定したファイルを再生

  10. 180秒待機(9の音声再生も含めて秒なので調整)

  11. 音声再生(Lesson4は終わりです)- Lesson5.m4a


スクリプトファイルを作成する

ChatGPTに仕様をぶち込んで作ってもらったスクリプトはループや変数を多用してたので、いろいろ外してシンプルにした。

ファイル名:IntervalTimer.sh

#!/bin/bash

#プログラムファイルパス
base_path="/Users/k/Documents/IntervalTimer/"

# テキスト付属の音声ファイルのディレクトリ
rs_path="rs/"

# & は処理を待たず次のコマンドを実行する
# 音声再生 Lesson1を開始してください
afplay "${base_path}Lesson1.m4a" &

sleep 60

# 音声再生 Lesson2を開始してください
afplay "${base_path}Lesson2.m4a" &

sleep 60

# 音声再生 Lesson3を開始してください
afplay "${base_path}Lesson3.m4a" &

sleep 60

# 音声再生 Lesson4を開始してください
afplay "${base_path}Lesson4.m4a" &

sleep 1

# 音声再生  引数で指定された番号 例 001 のファイル 001.mp を再生
afplay "${base_path}${rs_path}${1}.mp3" &

sleep 180

# 音声再生 Lessonは終わりです。
afplay "${base_path}Lesson5.m4a"

ディレクトリ

ディレクトリIntervalTimer

ファイルの実行

% cd ./Documents/IntervalTimer
% chmod +x IntervalTimer.sh
% ./IntervalTimer.sh 001

うまいこと再生された。

結果

スムーズに学習を進められて、気持ちよかった。
それほど時間がからなかったが、予定してた学習時間は超えてしまったので、翌日からスケジュール通りに学習を始めた。

Owl

この記事が気に入ったらサポートをしてみませんか?