# autos.skills.codingFilm.tts 库模块帮助文档

## autos.skills.codingFilm.tts 成员列表 <a id="autos.skills.codingFilm.tts" href="#autos.skills.codingFilm.tts">&#x23;</a>

织影的配音助手：角色表 → 逐句合成并缓存为音频文件 → 交给 av.film 的 s.audio。  
默认引擎 web.edgeTextToSpeech（用到时才加载），可换；av.* 不依赖任何 TTS

### autos.skills.codingFilm.tts.cast(roles,opt) <a id="autos.skills.codingFilm.tts.cast" href="#autos.skills.codingFilm.tts.cast">&#x23;</a>
角色表：roles 为 {角色名 = 音色 ID 或 {voice;rate;pitch}}；返回表里每个角色是函数：  
cast.角色名("台词"[,{rate=1.2}]) → {path;text;spoken;role;voice;words;cached}，可直接传给 s.audio；  
s.audio 返回的 v.word("代码") 用 words 精确对准说到这个词的成片秒。  
rate 为语速倍率（默认 1），pitch 为音高（数值 = Hz，如 -10；仅 Edge）。opt: dir(缓存目录，默认 /res/voice/),engine,refresh  
同样的音色参数和台词只联网合成一次；失败直接抛错（音色写错会列出同地区可用音色）

### autos.skills.codingFilm.tts.dir <a id="autos.skills.codingFilm.tts.dir" href="#autos.skills.codingFilm.tts.dir">&#x23;</a>
缓存目录，默认 "/res/voice/"（相对影片项目）

### autos.skills.codingFilm.tts.engine <a id="autos.skills.codingFilm.tts.engine" href="#autos.skills.codingFilm.tts.engine">&#x23;</a>
配音引擎：默认 null（首次使用时创建 web.edgeTextToSpeech）。  
可设为任何实现 synthesize(request,{onAudio;onBoundary;onFinish}) 的对象：  
request 为角色表里的字段加 text、boundary="word"；可选 voices(locale)、name（计入缓存键）；输出 mp3 或 wav

### autos.skills.codingFilm.tts.say(spec,text,opt) <a id="autos.skills.codingFilm.tts.say" href="#autos.skills.codingFilm.tts.say">&#x23;</a>
说一句：spec 为音色 ID 或 {voice;rate;pitch}，text 为台词（可以直接用画面文字：** 标记不读，换行读成停顿）。  
返回 {path;text;spoken;role;voice;words;cached}；words 为 {{text;at;dur},...}，at 是相对开口的秒数。  
opt: role(文件名前缀),dir,engine,refresh(true 忽略缓存)

### autos.skills.codingFilm.tts.voices(locale) <a id="autos.skills.codingFilm.tts.voices" href="#autos.skills.codingFilm.tts.voices">&#x23;</a>
列出可用音色：locale 为地区前缀（"zh"、"zh-HK"、"en-US"），返回 {id;locale;localeName;gender;name;categories;personalities} 数组；  
失败返回 null,错误信息
