Communitygithub.com

voice-over : une narration chinoise naturelle, minutée par ligne

Skill d'agent qui synthétise narration et répliques en un fichier wav par ligne avec sa durée mesurée, prêt pour caler sous-titres et image. Utilise les voix Tongyi d'Alibaba (Bailian) si DASHSCOPE_API_KEY est défini, puis la voix hébergée HyperFrames, sinon les voix chinoises gratuites de macOS, sans s'arrêter pour poser de questions.

Qu'est-ce que voice-over : une narration chinoise naturelle, minutée par ligne ?

Étape 2 de la recette Vidéo explicative (voix), issue de ymybxx/SoloMCN (MIT, créé le 2026-10-09), un studio de vidéos courtes sur Claude Code dont le README s'ouvre sur une vidéo de démo et des captures de l'atelier. voice-over sert aux flux make-video et revise-video de SoloMCN et s'utilise aussi seul pour essayer des voix. Il prend le premier moteur disponible : TTS Tongyi via un script fourni (lignes en lot depuis un TSV, vitesse de 0,9 à 1,15, sortie JSON avec secondes et fins de phrase), voix hébergée HyperFrames si connecté avec du crédit, puis say de macOS converti en wav 48 kHz avec durées ffprobe, et enfin une version sous-titrée seule avec la raison notée. Il prévient que Kokoro en local écorche le chinois, garde une voix fixe par personnage, n'utilise que des voix de synthèse sans clonage ni imitation de personnes réelles, réécrit sigles et nombres difficiles tout en gardant le texte original dans les sous-titres, et contrôle par sondage avec whisper-cli si présent. Dans cette recette, ses secondes par ligne deviennent les repères at du mode audio réel de khan-explainer.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ymybxx/SoloMCN/tree/HEAD/defaults/skills/voice-over

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

配音

把台词合成成 wav 文件,每段一个,并给出每段的时长,交给做视频的流程登记进 audio_meta.json、对齐字幕。全程无人值守时,不提问、不等回复,用得上哪种方式就用哪种,在制作备注里写清楚。

1. 选哪种方式(用第一个能用的)

  1. 通义语音(中文最自然,有很多音色):环境变量 DASHSCOPE_API_KEY 有值就用它。
    • 批量:把旁白写成 编号<TAB>台词 的 tsv,运行 node <本技能目录>/scripts/tongyi-tts.mjs --voice <音色> --lines voice/lines.tsv --outdir voice
    • 单句:node <本技能目录>/scripts/tongyi-tts.mjs --voice <音色> --text "台词" --out voice/line-01.wav
    • 每句输出一行 JSON,含时长 seconds 和每个句子的结束时间 sentences[].end_s,用它们对齐字幕。
    • 语速用 --speed(默认 1.0,0.9–1.15 之间调),一般不用改。
  2. HyperFrames 托管配音:没有通义 key、HyperFrames 已登录(npx hyperframes auth status)而且还有额度时,用 /faceless-explainer 里的托管配音。
  3. macOS 系统中文语音(免费、本地、发音准):say -v "<音色>" -r <语速> -o voice/line-<编号>.aiff "<台词>",再用 ffmpeg -i …aiff -ar 48000 -ac 1 …wav 转成 wav,用 ffprobe 读时长。语速 -r 默认约 180,语气急的角色可以调到 200–220。
  4. 都不行:做成无配音、字幕承载台词的版本,在备注里写明原因。

不要用 HyperFrames 自带的本地 Kokoro 念中文:中文发音错得很多,基本听不懂;纯英文台词可以用。

2. 选音色

  • 先用内容所属系列(或账号)设定的音色:get_item 返回的 account.voice。
  • 没设定就按人设从本技能目录下的 voices.json 挑:engine 是 tongyi 的要有通义 key 才能用,macos 的随时能用。设定的是通义音色、但现在没有 key,就挑一个性别和年龄接近的系统语音。
  • 多个角色各用一个声音,全片保持一致;旁白用最稳的那个。
  • 只用合成音色,不克隆、不模仿任何真人的声音。

3. 合成之后

  • 用 ffprobe 读每个文件的时长,按 /faceless-explainer 里处理已有配音文件的方式登记进 audio_meta.json(文件放在项目里,标明来源),再跑时长同步和字幕。
  • 念错的词(英文缩写、数字、多音字)改写成好念的说法再合成那一句;字幕仍显示原文。本机有 whisper-cli 的话,回听抽查几句。
  • 在制作备注里写明:用了哪种方式、哪些音色,退到下一种方式的原因。

4. 配置通义的 key(给用户看的)

这个技能不经过工作台的设置。要用通义,在项目的 .claude/settings.local.json(不进 git)里加:

{ "env": { "DASHSCOPE_API_KEY": "你的通义 key" } }

想所有项目都用,就写在 ~/.claude/settings.json 里。也可以直接在 Claude Code 里说「帮我配一下通义配音的 key」。key 在阿里云百炼控制台申请。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills associés