Przejdź do treści
Biblioteka skilli
Dokumenty i biuro · Konwersja i formaty

asr

/asr

Transkrybuje pliki audio na tekst lokalnym rozpoznawaniem mowy.

Repozytorium
skills ↗
Licencja
MIT
Ostatnia zmiana repozytorium
24.09.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 24.09.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Transkrybuje pliki audio na tekst lokalnym rozpoznawaniem mowy.

Wyzwalacze z opisu

transcribe语音转文字ASR识别音频把这段音频转成文字
Oryginalny opis (EN)

Transcribe audio files to text using local speech recognition. Triggers on: "转录", "transcribe", "语音转文字", "ASR", "识别音频", "把这段音频转成文字".

Jak działa

  1. When to Use
  2. When NOT to Use
  3. Purpose
  4. Hard Constraints
  5. Interaction Flow
  6. Composability
  7. Examples
Sekcje z nagłówków SKILL.md, w oryginale · 203 linii, 793 słów
Podgląd SKILL.md
---
name: asr
metadata:
  openclaw:
    emoji: "🎙️"
    requires:
      tools: ["coli"]
description: |
  Transcribe audio files to text using local speech recognition. Triggers on:
  "转录", "transcribe", "语音转文字", "ASR", "识别音频", "把这段音频转成文字".
---

## When to Use

- User wants to transcribe an audio file to text
- User provides an audio file path and asks for transcription
- User says "转录", "识别", "transcribe", "语音转文字"

## When NOT to Use

- User wants to synthesize speech from text (use `/tts`)
- User wants to create a podcast or explainer (use `/podcast` or `/explainer`)

## Purpose

Transcribe audio files to text using `coli asr`, which runs fully offline via local
speech recognition models. No API key required. Supports Chinese, English, Japanese,
Korean, and Cantonese (sensevoice model) or English-only (whisper model).

Run `coli asr --help` for current CLI options and supported flags.

## Hard Constraints

- No shell scripts. Use direct commands only.
- Always read config following `shared/config-pattern.md` before any interaction
- Follow `shared/cli-patterns.md` for interaction patterns
- Never ask more than one question at a time

<HARD-GATE>
Use the AskUserQuestion tool for every multiple-choice step — do NOT print options as
plain text. Ask one question at a time. Wait for the user's answer before proceeding.
After all parameters are collected, summarize and ask the user to confirm before
running any transcription.

</HARD-GATE>

## Interaction Flow

### Step 0: Prerequisites Check

Before config setup, silently check the environment:

```bash
COLI_OK=$(which coli 2>/dev/null && echo yes || echo no)
FFMPEG_OK=$(which ffmpeg 2>/dev/null && echo yes || echo no)
MODELS_DIR="$HOME/.coli/models"
MODELS_OK=$([ -d "$MODELS_DIR" ] && ls "$MODELS_DIR" | grep -q sherpa && echo yes || echo no)
```

| Issue | Action |
|-------|--------|
| `coli` not found | Block. Tell user to run `npm install -g @marswave/coli` first |
| `ffmpeg` not found | Warn (WAV files still work). Suggest `brew install ffmpeg` / `sudo apt install ffmpeg` |
| Models not downloaded | Inform user: first transcription will auto-download models (~60MB) to `~/.coli/models/` |

If `coli` is missing, stop here and do not proceed.

### Step 0: Config Setup

Follow `shared/config-pattern.md` Step 0 (Zero-Question Boot).

**If file doesn't exist** — silently create with defaults and proceed:
```bash
mkdir -p ".listenhub/asr"
echo '{"model":"sensevoice","polish":true}' > ".listenhub/asr/config.json"
CONFIG_PATH=".listenhub/asr/config.json"
CONFIG=$(cat "$CONFIG_PATH")
```
**Do NOT ask any setup questions.** Proceed directly to the Interaction Flow with sensible defaults (sensevoice model, polish enabled).

**If file exists** — read config silently and proceed:
```bash
CONFIG_PATH=".listenhub/asr/config.json"
[ ! -f "$CONFIG_PATH" ] && CONFIG_PATH="$HOME/.listenhub/asr/config.json"
CONFIG=$(cat "$CONFIG_PATH")
```

### Setup Flow (user-initiated reconfigure only)

Only run when the user explicitly asks to reconfigure. Display current settings:
```
当前配置 (asr):
  模型:sensevoice / whisper-tiny.en
  润色:开启 / 关闭
```

Ask in order:

1. **model**: "默认使用哪个语音识别模型?"
   - "sensevoice(推荐)" — 支持中英日韩粤,可检测语言、情绪、音频事件
   - "whisper-tiny.en" — 仅英文

3. **polish**: "转录后由 AI 润色文本?(修正标点、去语气词、提升可读性)"
   - "是(推荐)" → `polish: true`
   - "否,保留原始转录" → `polish: false`

Save all answers at once after collecting them.

### Step 1: Get Audio File

If the user hasn't provided a file path, ask:

> "请提供要转录的音频文件路径。"

Verify the file exists before proceeding.

### Step 2: Confirm

```
准备转录:

  文件:{filename}
  模型:{model}
  润色:{是 / 否}

继续?
```

### Step 3: Transcribe

Run `coli asr` with JSON output (to get metadata):

```bash
coli asr -j --model {model} "{file}"
```

On first run, `coli` will automatically download the required model. This may take a
moment — inform the user if models haven't been downloaded yet.

Parse the JSON result to extract `text`, `lang`, `emotion`, `event`, `duration`.

### Step 4: Polish (if enabled)

If `polish` is `true`, take the raw `text` from the transcription result and rewrite
it to fix punctuation, remove filler words, and improve readability. Preserve the
original meaning and speaker intent. Do not summarize or paraphrase.

### Step 5: Present Result

Display the transcript directly in the conversation:

```
转录完成

{transcript text}

─────────────────
语言:{lang} · 情绪:{emotion} · 时长:{duration}s
```

If polished, show the polished version with a note that it was AI-refined. Offer to
show the raw original on request.

### Step 6: Export as Markdown (optional)

After presenting the result, ask:

```
Question: "保存为 Markdown 文件到当前目录?"
Options:
  - "是" — save to current directory
  - "否" — done
```

If yes, write `{audio-filename}-transcript.md` to the **current working directory**
(where the user is running Claude Code). The file should contain the transcript text
(polished version if polish was enabled), with a front-matter header:

```markdown
---
source: {original audio filename}
date: {YYYY-MM-DD}
model: {model used}
duration: {duration}s
lang: {detected language}
---

{transcript text}
```

## Composability

- **Invoked by**: future skills that need to transcribe recorded audio
- **Invokes**: nothing

## Examples

> "帮我转录这个文件 meeting.m4a"

1. Check prerequisites
2. Read config
3. Confirm: meeting.m4a, sensevoice, polish on
4. Run `coli asr -j --model sensevoice "meeting.m4a"`
5. Polish the raw text
6. Display inline

> "transcribe interview.wav, no polish"

1. Check prerequisites
2. Read config
3. Override polish to false for this session
4. Run `coli asr -j --model sensevoice "interview.wav"`
5. Display raw transcript inline

Wersje

W bazie nie ma innych skilli o nazwie asr.

Migawka bazy z 28.10.2026 · wersja paczki 4a276ca2671d (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 90doubao-asr(豆包语音转写)
    Transkrybuje nagrane pliki audio na tekst modelem Doubao Seed-ASR 2.0 od ByteDance i Volcengine, z rozpoznawaniem języka chińskiego i rozdzielaniem mówców, dla plików m4a, mp3, wav, ogg i flac.
  • 100transcribe-audio
    Transkrybuje audio lub wideo do tekstu lokalnie uruchamianym modelem rozpoznawania mowy i pomaga skonfigurować lub zmienić lokalny model transkrypcji.
  • 100aliyun-qwen-asr
    Transkrybuje nagrania w trybie nierealtime modelami Qwen ASR w Alibaba Cloud Model Studio: zamiana plików audio na tekst, transkrypty ze znacznikami czasu i pola żądań DashScope.
  • 100transcribe
    Zamienia nagrania audio i wideo na tekst przez 妙记 (Volcano Lark Minutes), z rozdzieleniem mówców, a Gemini lub OpenAI jako zapas.
  • 100transcribe
    Transkrybuje pliki audio do tekstu z opcjonalną diaryzacją i podpowiedziami o znanych mówcach, także z nagrań wideo, wywiadów i spotkań.
  • 100transcribe
    Transkrybuje pliki audio do tekstu z opcjonalną diaryzacją i podpowiedziami o znanych mówcach, także z nagrań wideo, wywiadów i spotkań.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.