📦 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...

0· 1.5k·4 当前·4 累计
by @fiberian1981 (Fiberian)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/25
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
The skill's requests and included scripts are consistent with a macOS-only Telegram voice-to-voice workflow: required binaries, file paths, and behavior match the description and there are no unexpected network endpoints or credential requests.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv0.1.32026/2/9

telegram-voice-to-voice-macos v0.1.3 - Updated scripts/tts_telegram_voice.sh (details not shown). - No user-facing changes in SKILL.md.

无害

安装命令

点击复制
官方npx clawhub@latest install telegram-voice-to-voice-macos
🇨🇳 镜像加速npx clawhub@latest install telegram-voice-to-voice-macos --registry https://cn.longxiaskill.com

技能文档

This is an OpenClaw skill.

Requirements

  • macOS on Apple Silicon.
  • yap CLI available in PATH (Speech.framework transcription).
- Project: https://github.com/finnvoor/yap (by finnvoor)
  • ffmpeg available in PATH.

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 message

If 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:-}"
- If 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 message tool with asVoice: true and media:
  • optionally set replyTo to thread the response

Notes:

  • Use SYSTEM to rely on the current macOS system voice (recommended).

Mode: text

Reply with a single text message:

  • Transcription: <...>
  • Reply: <...>
数据来源:ClawHub ↗ · 中文优化:龙虾技能库