360 Secure SkillHub
360 安全技能中心

tencent-tts-podcast

基于腾讯云语音合成将用户提供的文本转为 wav 播客音频,支持短文本直连与长文本按段落/句子分块后并发合成,内置超时、自动重试与时长估算,可选将音频上传到对象存储并返回访问地址。不含脚本生成、背景音乐、音效或双人对白能力。

islinxu
islinxu
热度 85.72
最近更新 2026-05-17 13:55:42
分类:效率依赖:第三方 API / 代码执行 / 读写文件应用场景:故事创作 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add tencent-tts-podcast
Metadata
name
Tencent TTS Podcast Generator
description
Convert text to podcast audio using Tencent Cloud TTS. Supports both short and long text processing, generates up to 30-minute long audio with automatic chunking and parallel processing. Supports 26 Chinese voices including basic, featured, customer service, and Tencent featured voices.
license
MIT

Tencent TTS Podcast Generator

Convert text content to podcast audio files using Tencent Cloud TTS service.

Capabilities

What This Skill Can Do

  • Short & Long Text Compatible: Intelligently detects text length, processes short text directly, auto-chunks long text
  • Long Text to Speech: Supports generating podcasts up to 30 minutes long (~7200 characters)
  • Concurrent Processing: Long texts are automatically split and processed in parallel for faster generation
  • 26 Voices: Supports basic, featured, customer service, and Tencent featured voices
  • Smart Chunking: Splits text at semantic boundaries (paragraph/sentence) for natural audio flow
  • Duration Estimation: Automatically estimates generated audio duration
  • Auto Retry: Automatically retries failed requests to improve success rate

Short & Long Text Processing Strategy

Note: Tencent Cloud TTS single request limit is ~150 characters. Texts exceeding this will be auto-chunked.

Text Type Length Range Processing Method Concurrency Timeout
Ultra Short ≤50 chars Direct request 1 30s
Short 50-150 chars Direct request 1 30s
Medium 150-500 chars Auto-chunk (2-4 chunks) 2-3 60s
Long 500-2000 chars Auto-chunk (4-14 chunks) 3-5 60s
Extra Long 2000-7200 chars Auto-chunk (14-50 chunks) 3-5 60s

What This Skill Does NOT Do

  • Does not generate mp3 format (wav only)
  • Does not support background music or sound effects
  • Does not auto-generate podcast scripts (user must provide)
  • Does not support dual-speaker dialogue mode (single voice only)

File Structure

This Skill consists of the following files:

  • tts_podcast.py Main entry script

    • Tencent Cloud TTS signature generation
    • Audio file generation
    • COS upload functionality
  • tts_tool.py AgentScope tool interface wrapper

  • SKILL.md This file, describing Skill capabilities, boundaries, and usage conventions

  • requirements.txt Python dependency configuration


Input & Output Specifications

Input Parameters

Parameter Description Required Default
Text Text content to convert Yes -
VoiceType Voice ID (see voice table below, either this or VoiceName) No 502006
VoiceName Voice name (see voice table below, either this or VoiceType) No -
secret_id Tencent Cloud SecretId Yes -
secret_key Tencent Cloud SecretKey Yes -
max_workers Concurrent threads (3-5 for long text, 1 for short) No 3
chunk_size Chunk size in characters (long text optimization) No 140
timeout Request timeout in seconds No 30/60
enable_retry Enable automatic retry No true
max_retries Max retry attempts No 2
preserve_paragraphs Preserve paragraph boundaries when chunking No true
cos_secret_id Tencent Cloud COS SecretId (optional, defaults to TTS credentials) No -
cos_secret_key Tencent Cloud COS SecretKey (optional, defaults to TTS credentials) No -
upload_cos Whether to upload to COS, true/false (default false, local only) No false
bucket_name COS Bucket name (default: ti-aoi) No ti-aoi
app_id COS App ID (default: 1257195185) No 1257195185
region COS region (default: ap-guangzhou) No ap-guangzhou

Output

{
  "Code": 0,
  "Msg": "success",
  "AudioUrl": "https://xxx.cos.ap-guangzhou.myqcloud.com/xxx.wav"
}

Usage

Environment Requirements

  • Python 3.8+
  • tencentcloud-sdk-python
  • cos-python-sdk-v5
  • requests

Install Dependencies

pip install -r requirements.txt

Basic Usage

from tts_podcast import main

result = main({
    "Text": "Hello, welcome to today's podcast.",
    "VoiceType": 502006,
    "secret_id": "YOUR_SECRET_ID",
    "secret_key": "YOUR_SECRET_KEY"
})

print(result)
# {'Code': 0, 'Msg': 'success', 'AudioUrl': 'https://...'}

Short Text Optimized Usage

# Short text (<150 chars) - Use single thread for fast response
result = main({
    "Text": "Hello, this is a short message.",
    "VoiceType": 502006,
    "secret_id": "YOUR_SECRET_ID",
    "secret_key": "YOUR_SECRET_KEY",
    "max_workers": 1,      # Single thread is sufficient
    "timeout": 30,         # 30 second timeout
    "enable_retry": True   # Enable retry
})

Long Text Optimized Usage

# Long text (>150 chars) - Use concurrency for speed
long_text = """Chapter 1: The Origin of AI

The concept of artificial intelligence can be traced back to ancient Greek mythology..."""

result = main({
    "Text": long_text,
    "VoiceType": 502007,
    "secret_id": "YOUR_SECRET_ID",
    "secret_key": "YOUR_SECRET_KEY",
    "max_workers": 5,          # Concurrent processing
    "chunk_size": 140,         # 140 chars per chunk
    "timeout": 60,             # 60 second timeout
    "preserve_paragraphs": True  # Preserve paragraph boundaries
})

Voice Reference

VoiceType Voice Name Characteristics
0 普通女声 Standard female
1 普通男声 Standard male
5 情感女声 Emotional female
6 情感男声 Emotional male
1000 智障少女 Lively cute
1001 阳光少年 Bright youthful
1002 温柔淑女 Gentle female
1003 成熟青年 Mature male
1004 严厉管事 Stern female
1005 亲和女声 Friendly female
1006 甜美女声 Sweet female
1007 磁性男声 Magnetic male
1008 播音主播 Broadcast anchor
101001 客服女声 Customer service
101005 售前客服 Pre-sales service
101007 售后客服 After-sales service
101008 亲和客服 Friendly service
502006 小旭 Tencent voice
502007 小巴 Tencent voice
502008 思驰 Tencent voice
502009 思佳 Tencent voice
502010 思悦 Tencent voice
502011 小宁 Tencent voice
502012 小杨 Tencent voice
502013 云扬 Tencent voice
502014 云飞 Tencent voice

Technical Architecture

tts_podcast.py

  • TTS: Uses Tencent Cloud TTS API signature v3
  • Upload: Uses Tencent Cloud COS SDK for audio file upload
  • Auth: Supports credentials from parameters or environment variables
  • Short & Long Text Compatible:
    • Short text (≤150 chars): Direct single request, fast response
    • Long text (>150 chars): Smart chunking + concurrent processing + auto-merge

Text Chunking Strategy

  1. Paragraph Priority: Try to preserve paragraph integrity, split at paragraph boundaries
  2. Sentence Boundaries: When paragraphs are too long, split at sentence ending punctuation (。!?;)
  3. Semantic Protection: Avoid truncating in the middle of words, ensure semantic coherence
  4. Length Control: Each chunk does not exceed 150 characters (Tencent Cloud API limit)

License

MIT