Telegram Voice To Voice Macos — 技能工具
v0.1.3[自动翻译] Telegram voice-to-voice for macOS Apple Silicon: transcribe inbound .ogg voice notes with yap (Speech.framework) and reply with Telegram voice notes v...
详细分析 ▾
运行时依赖
版本
telegram-voice-to-voice-macos v0.1.3 - Updated scripts/tts_telegram_voice.sh (details not shown). - No user-facing changes in SKILL.md.
安装命令 点击复制
技能文档
This is an OpenClaw skill.
Requirements
- macOS on Apple Silicon.
yapCLI available inPATH(Speech.framework transcription).
ffmpegavailable inPATH.
Compatibility note (important)
This skill is macOS-only (uses say + Speech.framework). The skill registry cannot enforce OS restrictions, so installing/running it on Linux/Windows will result in runtime failures.
Persistent reply mode (voice vs text)
Store a small per-user preference file in the workspace:
- State file:
voice_state/telegram.json - Key: Telegram sender user id (string)
- Values:
"voice" (default): reply with a Telegram voice note
- "text": reply with a single text messageIf the file does not exist or the sender id is missing: assume "voice".
Toggle commands
If an inbound text message is exactly:
/audio off→ set state to"text"and confirm with a short text reply./audio on→ set state to"voice"and confirm with a short text reply.
Getting the inbound audio (.ogg)
Telegram voice notes often show up as in message text.
OpenClaw saves the attachment to disk (typically .ogg) under:
~/.openclaw/media/inbound/
Recommended approach:
1) If the inbound message context includes an attachment path, use it.
2) Otherwise, take the most recent *.ogg from ~/.openclaw/media/inbound/.
Transcription
Default locale: macOS system locale.
Optional env:
YAP_LOCALE— override the transcription locale (e.g.it-IT,en-US).
Preferred:
yap transcribe --locale "${YAP_LOCALE:-}"
YAP_LOCALE is not set, the helper script will use the macOS system locale (from defaults read -g AppleLocale).If transcription fails or is empty: ask the user to repeat or send text.
Helper script:
scripts/transcribe_telegram_ogg.sh [path.ogg]
Reply behavior
Mode: voice (default)
Voice default: SYSTEM (uses the current macOS system voice). You can override by passing a specific voice name to the helper script.
1) Generate the reply text. 2) Convert reply text to an OGG/Opus voice note using:
scripts/tts_telegram_voice.sh "" [SYSTEM|VoiceName]
The script prints the generated .ogg path to stdout.
3) Send the .ogg back to Telegram as a voice note (not a generic audio file):
- use the
messagetool withasVoice: trueandmedia: - optionally set
replyToto thread the response
Notes:
- Use
SYSTEMto rely on the current macOS system voice (recommended).
Mode: text
Reply with a single text message:
Transcription: <...>Reply: <...>
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制