whatsapp-voice
WhatsAppの音声メッセージをローカルのWhisper CLIで文字起こしします。オーナーまたはコンタクトがオーディオ/OGG形式の音声メッセージを送信した場合に使用します。Whisperによる文字起こし、CRMの更新、タスク作成を組み合わせて実行します。短いクリップはオフラインで処理し、長いクリップはOpenAI APIを利用します。ヘブライ語と英語に対応しています。
description の原文を見る
Transcribe WhatsApp voice messages using local Whisper CLI. Use when: owner or contact sends an audio/ogg voice message. Combines Whisper transcription + CRM update + task creation. Works offline for short clips, uses OpenAI API for long clips. Hebrew and English supported.
SKILL.md 本文
WhatsApp Voice — ユースケーススキル
これはユースケーススキルであり、スタンドアロン統合ではありません。以下を組み合わせています:
- openai-whisper CLI — 文字起こし
- personal-crm — 人物が言及された場合、コンタクトの Last Topic を更新
- monday / task tracker — 必要に応じてタスクを保存
文字起こし戦略(期間に応じた自動選択)
オーディオの長さに基づいてモデルを選択します:
| ティア | モデル | 使用場面 | 推定時間 |
|---|---|---|---|
| 1 — 高速 | tiny (ローカル) | ≤ 15 秒 | 5-15秒 |
| 2 — バランス型 | small (ローカル) | 15-60 秒 | 30-90秒 |
| 3 — 高精度 | OpenAI Whisper API | > 60 秒 | 2-5秒 |
自動選択スクリプト
#!/bin/bash
FILE="$1"
# Get duration
DURATION=$(ffprobe -v quiet -show_entries format=duration -of csv=p=0 "$FILE" 2>/dev/null | cut -d. -f1)
DURATION=${DURATION:-0}
if [ "$DURATION" -le 15 ]; then
MODEL="tiny"; TIMEOUT=30
elif [ "$DURATION" -le 60 ]; then
MODEL="small"; TIMEOUT=120
else
USE_API=true
fi
if [ "${USE_API:-false}" = true ]; then
RESULT=$(curl -s https://api.openai.com/v1/audio/transcriptions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F file="@$FILE" \
-F model="whisper-1" \
-F language="he" \
| jq -r '.text')
else
OUTDIR="/tmp/whisper-$$"
mkdir -p "$OUTDIR"
whisper "$FILE" --model "$MODEL" --language he --output_format txt --output_dir "$OUTDIR" 2>/dev/null
RESULT=$(cat "$OUTDIR/"*.txt 2>/dev/null)
# If tiny returned too few words, retry with small
WORD_COUNT=$(echo "$RESULT" | wc -w)
if [ "$MODEL" = "tiny" ] && [ "$WORD_COUNT" -le 1 ]; then
whisper "$FILE" --model small --language he --output_format txt --output_dir "$OUTDIR" 2>/dev/null
RESULT=$(cat "$OUTDIR/"*.txt 2>/dev/null)
fi
fi
echo "$RESULT"
インストール
# Whisper CLI のインストール (ローカル)
pip install openai-whisper
# 期間検出用の ffprobe
apt install ffmpeg # Linux
brew install ffmpeg # macOS
モデルは初回実行時に自動的に ~/.cache/whisper/ にダウンロードされます。
完全なユースケースフロー: 音声 → CRM → monday
オーナーが音声メッセージを送信した場合:
- 文字起こし (Whisper) — OGG をテキストに変換
- 意図の識別 — テキストを読み、何が必要かを理解
- 人物が言及された場合 (personal-crm) — CRM ボードを検索し、Last Topic を更新
- タスクが必要な場合 — monday タスク トラッカーでアイテムを作成
- 実行 — 要求されたことを実行
音声 OGG → [Whisper] → テキスト → [意図] → [CRM 更新] + [monday タスク] + [実行]
ヘブライ語固有の注意事項
- 常に
--language heを渡します — 自動検出は英語をデフォルトとすることが多いです - 名前と技術用語は音韻的に文字起こしされることがあります
smallモデルは自然なヘブライ語音声をよく処理します
既知の問題
- CPU での FP16 警告 = 予想通り、エラーではありません
- 2 秒未満のクリップは幻覚を起こす可能性があります — 再録音を依頼してください
- GPU なし = 遅い。OpenAI API は長いクリップの高速パスです (~$0.006/分)
ファイルの場所 (OpenClaw)
WhatsApp インバウンドメディア:
/path/to/openclaw/media/inbound/<uuid>.ogg
ファイルパスは各インバウンドメディア添付ファイルのシステムメタデータに含まれています。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- netanel-abergel
- ライセンス
- MIT
- 最終更新
- 2026/5/9
Source: https://github.com/netanel-abergel/pa-skills / ライセンス: MIT