awk-tts

Generate MP3, WAV, PCM, or OGG_OPUS voiceover audio via Volcengine Doubao TTS 2.0.

8.5k|1.4k|Updated Apr 24, 2024
One-click install
npx skills add https://github.com/TeamWiseFlow/wiseflow --skill awk-tts
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: awk-tts
Source: https://github.com/TeamWiseFlow/wiseflow/tree/main/skills/awk-tts
Command: npx skills add https://github.com/TeamWiseFlow/wiseflow --skill awk-tts

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Producing narration audio for videos and content fragments requires a text-to-speech service with proper credentials, voice selection, and quality verification. This Skill wraps the Volcengine Doubao Speech Synthesis 2.0 (seed-tts-2.0) unidirectional streaming API into a single CLI command, handling authentication, voice routing, output placement, and an automatic ASR-based quality self-check.

Core Features & Use Cases

  • Text-to-speech synthesis: Convert inline text, UTF-8 text files, or fragment tts_requirement.md files into MP3/PCM/WAV/OGG_OPUS audio with configurable voice, sample rate, speech rate, loudness, and emotional context.
  • Voice and model routing: Automatically routes official 2.0 voices, cloned voices (S_xxx), and legacy 1.0 voices to the correct Volcengine resource ID, with dual-header or single-key console authentication.
  • ASR self-check: After synthesis, transcribes the audio with Volcengine ASR and compares it to the source text using Jaccard similarity (0.5 threshold), printing PASS or WARN.
  • Use Case: While producing a short video, point the command at fragments/01-hook/ to read the voiceover copy and voice settings from tts_requirement.md and write speech.mp3 plus a duration metadata JSON into the fragment's artifacts/ directory.

Quick Start

Ask the agent to synthesize the voiceover text in your fragment directory into an MP3 using the default Chinese voice, for example: run awk-tts on fragments/01-hook/ to generate the narration audio.

Frequently Asked Questions about awk-tts

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

FAQPage Schema
How do I convert text to speech with Volcengine Doubao TTS?

Run the awk-tts command with --text or --text-file to synthesize speech through the Volcengine openspeech v3 unidirectional API. Output defaults to an MP3 under a timestamped tmp directory, with a JSON metadata file recording duration and settings.

What credentials does Volcengine TTS 2.0 require?

It accepts either the old console dual-header pair VOLC_TTS_APP_ID plus VOLC_TTS_ACCESS_KEY, or the new console single key VOLC_TTS_APP_KEY. The script prefers the dual-header pair when both are present and never needs the Secret Key.

Which voices are available in Doubao speech synthesis 2.0?

Official 2.0 voices use the _uranus_bigtts suffix, such as zh_female_shuangkuaisisi_uranus_bigtts (default), plus male, multilingual, and customer-service variants. Cloned voices starting with S_ are routed automatically to the seed-icl-2.0 resource.

Does the TTS output get quality checked automatically?

Yes, unless --no-asr-check is passed, the audio is transcribed with Volcengine's fast file ASR and compared to the source text using Jaccard similarity at a 0.5 threshold. The result prints PASS or WARN without aborting, and is skipped silently if ASR credentials are missing.

What is the maximum text length for a single TTS request?

A single synthesis call is limited to 5000 characters, matching the seed-tts-2.0 character-based limit. Longer scripts must be split into multiple calls or fragments before synthesis.