mcpField
V
voice-message

voice-message

github.com/xmanruiその他3172 回インストール35 週間前に更新
リポジトリ

voice-message について

テキストから音声ファイルを生成し、チャットサービスごとのボイスメッセージ送信手順を示すスキルです。合成音声をチャット経由で届けるワークフローに適しています。

主な機能

  1. 01テキストから音声を生成
  2. 02音声の選択
  3. 03一般的なチャット送信手順
  4. 04Feishu/Lark 用音声スクリプト
  5. 05Discord 用波形データの準備

活用シーン

  1. 01チャットで合成音声を送信
  2. 02Feishu/Lark 用ボイスメッセージの準備
  3. 03Discord ボイスメッセージ形式の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/xmanrui/voice-message --skill voice-message

インストール後、Claude Code で/voice-messageを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
references/
voices.md
scripts/
send_feishu_voice.sh
gen_waveform.py
gen_voice.sh

詳細

音声メッセージ

任意のチャットチャンネルにテキストを音声メッセージとして送信します。

前提条件

  • edge-tts — Microsoft Edge TTS(pip install edge-tts)
  • ffmpeg / ffprobe — 音声の変換と長さの検出

デフォルトの音声

  • 中国語:zh-CN-XiaoxiaoNeural
  • 英語:en-US-JennyNeural
  • その他の言語:references/voices.mdを参照してください。

ステップ 1:音声ファイルを生成する

scripts/gen_voice.shを使用して、テキストをogg/opusファイルに変換します。

scripts/gen_voice.sh "你好" /tmp/voice.ogg
scripts/gen_voice.sh "Hello" /tmp/voice.ogg en-US-JennyNeural

引数:<text> <output.ogg> [voice]

  • 音声を省略した場合、デフォルトでzh-CN-XiaoxiaoNeuralが使用されます。

ステップ 2:チャンネル経由で送信する

汎用(Telegram、Signal、WhatsAppなど)

messageツールを直接使用します。

action=send, asVoice=true, filePath=/tmp/voice.ogg

ほとんどのチャンネルで機能します。Telegramでは動作が確認されています。

Feishu/Lark

⚠️ Feishuはmessageツール経由のasVoice=trueをサポートしていません。専用スクリプトを使用する必要があります。

scripts/send_feishu_voice.shを使用します。

scripts/send_feishu_voice.sh /tmp/voice.ogg <receive_id> <tenant_access_token> [receive_id_type]
  • receive_id_type:open_id(デフォルト)、chat_id、user_id、union_id、email
  • スクリプトは、長さを指定してopus形式でアップロードし、音声メッセージタイプとして送信して、音声バブルを表示します。
  • tenant_access_tokenを取得するには、アプリの認証情報を使用してFeishuテナントトークンAPIを利用します。
Discord

Discordの音声メッセージには、波形と特別なフラグが必要です。

  1. scripts/gen_voice.shでoggを生成します。
  2. 波形を生成します:python3 scripts/gen_waveform.py /tmp/voice.ogg
    • JSONを出力します:{"duration_secs": 4.2, "waveform": "base64..."}
  3. flags: 8192(IS_VOICE_MESSAGE)と、添付ファイルのメタデータに波形と長さを指定して、Discord API経由で送信します。
    • 波形または長さがない場合、エラー50161が発生します。
フォールバック

チャンネルでasVoice=trueを指定しても音声バブルが表示されない場合:

  1. プラットフォームのネイティブAPI経由で送信してみます。
  2. ネイティブAPIを利用できない場合は、音声ファイルを添付して送信します。

コメント