搜索

PythonReactSEOPDF
OpenClaw

telegram-voice-to-voice-macos

Telegram voice-to-voice for macOS Apple Silicon: transcribe inbound .ogg voice notes with yap (Speech.framework) and reply with Telegram voice notes via say+ffmpeg. Not compatible with Linux/Windows.

fiberian19810 来源安装数☆ 0 仓库 Stars

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

SkillHub CLI

skillhub install fiberian1981/telegram-voice-to-voice-macos

打开来源仓库,查看说明和兼容环境后,按来源提供的命令或步骤安装。

将来源链接提供给你的 Agent,让它先读取说明、核对依赖,并向你说明将执行的安装步骤。

查看来源 ↗使用指南

技能说明

Telegram voice-to-voice (macOS Apple Silicon only)

This is an OpenClaw skill.

Requirements

  • macOS on Apple Silicon.
  • yap CLI available in PATH (Speech.framework transcription).
  • 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 <media:audio> 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:-<system>}" <path.ogg>
    • 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...

来源信息

Source
github
Repository
openclaw/skills
Path
skills/fiberian1981/telegram-voice-to-voice-macos
Version
—
Commit
86eb6d93a15fa8004b8dc4ee77b2c1abd1ec4234
分类来源
rules
状态
active
可见性
public

这些信息来自收录时的来源分析,可能滞后;使用前请核对最新来源文件。

README

telegram-voice-to-voice-macos

An OpenClaw skill for a Telegram voice-to-voice workflow on macOS Apple Silicon only.

It handles inbound Telegram voice notes (.ogg), transcribes locally with yap (Speech.framework), generates a reply, and sends the reply back as a Telegram voice note using macOS say + ffmpeg.

Requirements

Compatibility

This skill is macOS-only (uses say and Speech.framework). The registry cannot enforce OS restrictions, so running it on Linux/Windows will fail at runtime.

Configuration

Transcription locale
  • If YAP_LOCALE is set, it will be used (e.g. it-IT, en-US).
  • If YAP_LOCALE is not set, the helper script falls back to the macOS system locale (from defaults read -g AppleLocale).
TTS voice
  • Default is SYSTEM (uses the current macOS system voice).
  • You can pass a specific voice name to the TTS helper script if needed.

Files and paths

  • Inbound Telegram audio is typically saved by OpenClaw under:
    • ~/.openclaw/media/inbound/
  • Per-user reply mode state:
    • voice_state/telegram.json

Behavior

  • Default reply mode: voice
  • Toggle per user via Telegram text messages:
    • /audio off → reply in text
    • /audio on → reply with voice note

Skill instructions

See SKILL.md for the full, canonical behavior description used by OpenClaw.

来源内容

SKILL.md
# Telegram voice-to-voice (macOS Apple Silicon only)

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 `<media:audio>` 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:-<system>}" <path.ogg>`
  - 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...
README
# telegram-voice-to-voice-macos

An **OpenClaw skill** for a Telegram voice-to-voice workflow on **macOS Apple Silicon only**.

It handles inbound Telegram voice notes (`.ogg`), transcribes locally with `yap` (Speech.framework), generates a reply, and sends the reply back as a Telegram **voice note** using macOS `say` + `ffmpeg`.

## Requirements

- macOS on Apple Silicon
- `yap` in `PATH` (Speech.framework transcription)
  - https://github.com/finnvoor/yap
- `ffmpeg` in `PATH`

## Compatibility

This skill is **macOS-only** (uses `say` and Speech.framework). The registry cannot enforce OS restrictions, so running it on Linux/Windows will fail at runtime.

## Configuration

### Transcription locale

- If `YAP_LOCALE` is set, it will be used (e.g. `it-IT`, `en-US`).
- If `YAP_LOCALE` is not set, the helper script falls back to the **macOS system locale** (from `defaults read -g AppleLocale`).

### TTS voice

- Default is `SYSTEM` (uses the current macOS system voice).
- You can pass a specific voice name to the TTS helper script if needed.

## Files and paths

- Inbound Telegram audio is typically saved by OpenClaw under:
  - `~/.openclaw/media/inbound/`
- Per-user reply mode state:
  - `voice_state/telegram.json`

## Behavior

- Default reply mode: `voice`
- Toggle per user via Telegram text messages:
  - `/audio off` → reply in text
  - `/audio on` → reply with voice note

## Skill instructions

See `SKILL.md` for the full, canonical behavior description used by OpenClaw.

相关技能

OpenClaw

bambu-studio-ai

heyixuan2

Bambu Lab 3D printer control and automation. Activate when user mentions: printer status, 3D printing, slice, analyze model, generate 3D, AMS filament, print monitor, Bambu Lab, or any 3D printing task. Full pi...

OpenClaw

geo-optimization

capt-marbles

Generative Engine Optimization (GEO) for AI search visibility. Optimize content to appear in ChatGPT, Perplexity, Claude, and Google AI Overviews. Use when optimizing websites, pages, or content for LLM discove...

OpenClaw

0protocol

0isone

Agents can sign plugins, rotate credentials without losing identity, and publicly attest to behavior.

OpenClaw

0x0-messenger

eijiac24

Send and receive P2P messages using disposable numbers and PINs. No servers, no accounts. Use for human notifications, approval flows, and agent-to-agent communication.