tingwu-asr

Transcribe audio and video files via Alibaba Cloud Tingwu REST API into Markdown.

636|91|Updated Jan 7, 2026
One-click install
npx skills add https://github.com/cat-xierluo/legal-skills --skill tingwu-asr
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: tingwu-asr
Source: https://github.com/cat-xierluo/legal-skills/tree/main/skills/tingwu-asr
Command: npx skills add https://github.com/cat-xierluo/legal-skills --skill tingwu-asr

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests, oss2, yt-dlp, playwright, and includes scripts (resource) and references (resource) components.

What problem does it solve?

Local speech-to-text tools like FunASR may be unavailable, too slow, or inaccurate for long recordings. This Skill offloads transcription to Alibaba Cloud Tingwu, turning audio/video files or podcast links into structured Markdown transcripts with speaker separation, timestamps, and AI-generated summaries.

Core Features & Use Cases

  • Cloud Transcription Pipeline: Uploads local audio/video (mp3, wav, m4a, mp4, mkv, etc.) to Alibaba OSS via STS credentials, starts transcription, polls status, and converts results into funasr-compatible Markdown with timestamps and speaker labels.
  • Link Transcription & Speaker Diarization: Accepts URLs (Xiaoyuzhou, YouTube, Bilibili) via yt-dlp download, with 2-speaker separation, multi-language support (Chinese, English, Japanese, Cantonese, mixed), and parallel multi-file processing.
  • Async Mode & Enrichment: Submits long videos (up to 6 hours) asynchronously with background polling, extracts PPT slides from videos, appends smart analysis (keywords, agenda, key points, Q&A), and archives results.
  • Use Case: A lawyer records a 2-hour client meeting video and needs a searchable transcript with speaker labels and embedded presentation slides for case documentation.

Quick Start

Ask the AI to transcribe your audio or video file with Tingwu, for example: "Transcribe /path/to/meeting.mp4 with speaker separation using tingwu-asr."

Frequently Asked Questions about tingwu-asr

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I transcribe audio files to text with Alibaba Tingwu?▼

Run the transcribe.py script with your file path, for example python3 scripts/transcribe.py audio.mp3 --lang cn. The script uploads the file to Alibaba OSS, starts cloud transcription, polls until done, and writes a Markdown transcript with timestamps next to the source file and in an archive directory.

How to transcribe a podcast or YouTube link to text?▼

Pass the URL directly to transcribe.py; it uses yt-dlp to download the audio from sources like Xiaoyuzhou, YouTube, or Bilibili, then uploads it for cloud transcription. This local-upload path is required because Tingwu's native podcast-link channel disables speaker separation.

Does Tingwu speaker separation support more than two speakers?▼

No. Testing shows Tingwu's roleSplitNum only works with the value 2, which separates two speakers; values 0, 1, 3, and 4 produce no separation. The skill defaults to --speakers 2 for reliable two-person diarization.

What file formats and size limits does Tingwu transcription support?▼

Supported formats include mp3, wav, m4a, wma, aac, ogg, flac for audio and mp4, mov, mkv, webm, avi for video. Audio files are limited to 500MB, video to 6GB, and a single file can be up to 6 hours long.

Why does Tingwu login fail or cookie expire?▼

Tingwu authentication relies on cookies that expire over time. Re-run the built-in Playwright script login_pw.py, which opens a browser, fills credentials from config/.env, and saves fresh cookies including the HttpOnly login ticket directly to config/cookies.json.

Can I transcribe long videos without blocking the terminal?▼

Yes. Use the --async flag to upload and submit the task, which returns immediately with a task ID saved to pending_tasks.json. Then run poll_tasks.py --monitor in the background to poll status and automatically generate the Markdown output when finished.