🎶

LLM の CLI ツールでタスク完了時に通知音を鳴らす

に公開

はじめに

LLM CLI 系でタスク完了時に通知音出して欲しいと思ったことありませんか?
CLIツールによっては音ならしてくれますが、もっと汎用的な方法無いか探ってみました。

また、通知音の種類もCLIツールのデフォルトから変えたりしたいと思うこともあるのでは?と考えてみるとやはり同じような人が居ました。
https://aigym.jp/blog/78
とはいえここまで頑張りたくないので処理終わったらコマンド実行してもらって通知音を鳴らすといった方法で実現できないか考えました。

各OSごとに以下 2種類の方法がありますのでお好みで設定してみてください。

  • デフォルトのビープ音を鳴らす(簡易版)
  • 任意の音声ファイルを再生させる

注意点

VSCode のターミナルで CLI ツールを使っている場合は設定変えないといけないです。

https://zenn.dev/milmed/articles/03f7f0c2c4e594#vscodeの設定確認と変更

※その他のターミナルアプリでもデフォルトの設定で音を鳴らせない可能性があります。

簡易版

GEMINI.md とかに以下を書いておきましょう。

処理・応答が完了したら必ず `echo $'\a'` を実行してください。

参考

任意の音声ファイルを再生させる

ここからは、任意の音声で通知音を鳴らす方法です。

Mac 編

afplay を使うことで実現できます。(デフォルトで入ってる)
GEMINI.md とかに以下を書いておきましょう。

処理・応答が完了したら必ず `afplay {音声データのファイルパス}` を実行してください。また、このコマンドの出力は無視して応答を完了してください。

Ubuntu 編

mplayer コマンドを使うことで実現できます。

aplay とかを使う方法もあるようですが、より手軽そうな mplayer を採用してみました。
https://qiita.com/propella/items/4699eda71cd742cba8d3

インストールはよくある感じで↓

sudo apt update
sudo apt install mplayer

後は GEMINI.md とかに以下を書いておきましょう。

処理が完了したら必ず `mplayer {音声データのファイルパス}` を実行してください。また、このコマンドの出力は無視して応答を完了してください。

参考

Windows 編(※記載予定無し)

WSL を使いましょう 😊

おわりに

通知音出してもなかなか気づかないとかであれば
https://www.springin.org/sound-stock/category/bgm-short/
の 「ジングル22」とか「ジングル10-リザルト」とかにしておけばいいと思います。

あとまぁこれは LLM 系のCLIツールに限らずシェルスクリプト全般で使えそうだなと思いました。

また、イマイチ良いクオリティが出せなかったのでボツにしたのですが、
音声読み上げができるコマンドなどもあるようなので、それで代用するという手もありそうです。

Discussion