概要
作業中、タスク完了時にAIに話しかけてもらうとテンションが上がります。本ガイドでは、Cursorエディタでタスク完了時にVOICEVOXを利用した音声通知システムを構築する方法を解説します。
Cursorは拡張性の高いコードエディタで、Cursor Rulesを活用することで様々な機能拡張が可能です。VOICEVOXと組み合わせることで、テンションが上がります。
必要環境
- VOICEVOX(オープンソース音声合成ソフトウェア)
- macOS(本ガイドではmacOS環境を前提としています)
- Cursor(コードエディタ)
実装手順
1. VOICEVOXのセットアップ
- VOICEVOX公式サイトからVOICEVOXをダウンロード
- ダウンロードしたファイルを解凍し、アプリケーションフォルダに配置します
2. 通知スクリプトの作成
プロジェクトのルートディレクトリにvoicevox_say.sh
を作成します:
#!/bin/bash
# パラメータ: $1=通知メッセージ, $2=話者ID(デフォルト=14: 冥鳴ひまり)
message="$1"
speaker_id="${2:-14}" # デフォルト設定: 14
# 話者情報取得関数
get_speaker_name() {
case "$1" in
1) echo "四国めたん(ノーマル)" ;;
2) echo "四国めたん(あまあま)" ;;
3) echo "ずんだもん(ノーマル)" ;;
4) echo "ずんだもん(あまあま)" ;;
8) echo "春日部つむぎ" ;;
10) echo "雨晴はう" ;;
11) echo "波音リツ" ;;
14) echo "冥鳴ひまり(ノーマル)" ;;
15) echo "冥鳴ひまり(あまあま)" ;;
47) echo "もち子さん" ;;
*) echo "不明な話者" ;;
esac
}
# URLエンコード処理 - Perlを使用
encoded_message=$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$message")
# VOICEVOXプロセス確認
if ! pgrep -x "VOICEVOX" > /dev/null; then
echo "VOICEVOXを起動中..."
open -a VOICEVOX
# 起動待機
sleep 10
fi
speaker_name=$(get_speaker_name "$speaker_id")
echo "メッセージ: $message"
echo "話者: $speaker_name (ID: $speaker_id)"
# Audio Query生成
query_response=$(curl -s -X POST "http://localhost:50021/audio_query?text=${encoded_message}&speaker=${speaker_id}")
# レスポンス検証
if [ -z "$query_response" ] || [[ "$query_response" == *"error"* ]]; then
echo "エラー: Audio Query生成失敗"
echo "レスポンス: $query_response"
exit 1
fi
echo "Audio Query生成完了"
# 音声合成処理
curl -s -H "Content-Type: application/json" -X POST -d "$query_response" "http://localhost:50021/synthesis?speaker=${speaker_id}" -o /tmp/voicevox_output.wav
# ファイル存在確認
if [ ! -f /tmp/voicevox_output.wav ] || [ ! -s /tmp/voicevox_output.wav ]; then
echo "エラー: 音声ファイル生成失敗"
exit 1
fi
echo "音声ファイル生成完了"
# 音声再生
afplay /tmp/voicevox_output.wav
# 一時ファイル削除
rm /tmp/voicevox_output.wav
3. 実行権限の設定
chmod +x voicevox_say.sh
4. Cursor Rules設定
プロジェクトディレクトリに.cursor/rules/global.mdc
を作成します:
----
description: Apply this rule to the entire repository
globs:
alwaysApply: true
---
# 業務支援アシスタント
効率的な問題解決と意思決定をサポートする業務支援ツールです。
## 機能概要
客観的な分析と選択肢の整理を通じて、最適な意思決定プロセスをサポートします。
データに基づいた判断と、実現可能な解決策の提案を行います。
以下の手順で処理を行います:
<指示>
{{instructions}}
<!-- このテンプレート変数は入力内容に置換されます -->
</指示>
処理完了時、音声通知でお知らせします。@voicevox_say.shを使用します。
実行例
基本的な通知メッセージの送信
$ ./voicevox_say.sh "タスクが完了しました"
メッセージ: タスクが完了しました
話者: 冥鳴ひまり(ノーマル) (ID: 14)
Audio Query生成完了
音声ファイル生成完了
このコマンドを実行すると、デフォルトの話者(冥鳴ひまり)の音声で「タスクが完了しました」というメッセージが再生されます。
話者IDを指定した実行例
$ ./voicevox_say.sh "テスト完了のお知らせです" 3
メッセージ: テスト完了のお知らせです
話者: ずんだもん(ノーマル) (ID: 3)
Audio Query生成完了
音声ファイル生成完了
2番目のパラメータで話者IDを指定すると、別の話者の声で通知できます。上記例では「ずんだもん(ノーマル)」の声でメッセージが再生されます。
Cursorにいれるとこうなる
Cursorにこれらの設定をいれると、このようにコードを書いた後、VOICEVOXで音声経由で作業が終わったことを教えてくれるようになります。
注意事項
- VOICEVOXを事前に起動しておくことを推奨します(起動していなかったら自動起動するようになっていが)
- 初回実行時はVOICEVOXの起動に時間を要する場合があります
- macOSのセキュリティ設定において、VOICEVOXの実行許可が必要となる場合があります