135 lines
4.7 KiB
JSON
135 lines
4.7 KiB
JSON
{
|
|
"schema": "ai-drama-platform.voice-lines.v1",
|
|
"episodeId": "E01",
|
|
"audioPipeline": {
|
|
"adapter": "newapi-audio-production",
|
|
"tts": {
|
|
"model": "IndexTTS-2.5",
|
|
"endpoint": "/audio/speech",
|
|
"request": "multipart/form-data",
|
|
"voiceLockField": "prompt_speech",
|
|
"referenceStatus": "requires-user-approved-natural-reference",
|
|
"blockedReferenceSources": [
|
|
"macOS say",
|
|
"MiniMax H3 native audio",
|
|
"old probe wav",
|
|
"temporary machine voice"
|
|
]
|
|
},
|
|
"asr": {
|
|
"model": "paraformer-zh-long",
|
|
"endpoint": "/audio/transcriptions",
|
|
"request": "multipart/form-data",
|
|
"responseFormat": "verbose_json"
|
|
}
|
|
},
|
|
"characters": [
|
|
{
|
|
"id": "chen-yu",
|
|
"name": "陈宇",
|
|
"voiceLock": {
|
|
"voiceId": "local-male-calm-chenyu-v1",
|
|
"status": "needs-user-approved-reference",
|
|
"tone": "青年男声,普通话,中低音,镇定,不播音腔",
|
|
"ttsModel": "IndexTTS-2.5",
|
|
"asrModel": "paraformer-zh-long",
|
|
"referenceAudio": null,
|
|
"referencePolicy": "必须先获得用户确认的干净自然人声参考;禁止使用 macOS say、H3 原生音频、旧 probe 或任何机器化临时音频作为 prompt_speech。",
|
|
"candidateModels": [
|
|
"Qwen3-TTS VoiceDesign",
|
|
"CosyVoice",
|
|
"IndexTTS-2.5"
|
|
],
|
|
"auditionPolicy": "一次只生成单句试听,用户试听确认后再锁定角色声线;未确认前禁止批量生成。",
|
|
"emotionRefs": {},
|
|
"ttsRequest": "multipart/form-data: model, input, voice, response_format, speed, kwargs, prompt_speech",
|
|
"asrRequest": "multipart/form-data: model, file, language=zh, response_format=verbose_json"
|
|
}
|
|
},
|
|
{
|
|
"id": "tang-xia",
|
|
"name": "唐夏",
|
|
"voiceLock": {
|
|
"voiceId": "local-girl-natural-tangxia-v1",
|
|
"status": "needs-user-approved-reference",
|
|
"tone": "少女普通话,自然干净,不娃娃音,不尖锐",
|
|
"ttsModel": "IndexTTS-2.5",
|
|
"asrModel": "paraformer-zh-long",
|
|
"referenceAudio": null,
|
|
"referencePolicy": "必须先获得用户确认的干净自然人声参考;禁止使用 macOS say、H3 原生音频、旧 probe 或任何机器化临时音频作为 prompt_speech。",
|
|
"candidateModels": [
|
|
"Qwen3-TTS VoiceDesign",
|
|
"CosyVoice",
|
|
"IndexTTS-2.5"
|
|
],
|
|
"auditionPolicy": "一次只生成单句试听,用户试听确认后再锁定角色声线;未确认前禁止批量生成。",
|
|
"emotionRefs": {},
|
|
"ttsRequest": "multipart/form-data: model, input, voice, response_format, speed, kwargs, prompt_speech",
|
|
"asrRequest": "multipart/form-data: model, file, language=zh, response_format=verbose_json"
|
|
}
|
|
}
|
|
],
|
|
"lines": [
|
|
{
|
|
"shotId": "shot-01",
|
|
"lineId": "line-001",
|
|
"characterId": "chen-yu",
|
|
"text": "等一下,先别出去。雷暴来了,树下和金属牌旁边都不安全。",
|
|
"emotion": "冷静但有一点急",
|
|
"targetDurationSec": 3.2,
|
|
"audioFile": "voices/chen_yu/line_001.wav",
|
|
"mouthPlan": "规避嘴形"
|
|
},
|
|
{
|
|
"shotId": "shot-01",
|
|
"lineId": "line-002",
|
|
"characterId": "tang-xia",
|
|
"text": "那我现在该往哪走?",
|
|
"emotion": "疑惑,压低声音",
|
|
"targetDurationSec": 1.6,
|
|
"audioFile": "voices/tang_xia/line_002.wav",
|
|
"mouthPlan": "规避嘴形"
|
|
},
|
|
{
|
|
"shotId": "shot-02",
|
|
"lineId": "line-003",
|
|
"characterId": "chen-yu",
|
|
"text": "看左边,积水旁可能有落地电线。别靠近,也别跨警戒线。",
|
|
"emotion": "明确提醒",
|
|
"targetDurationSec": 3.4,
|
|
"audioFile": "voices/chen_yu/line_003.wav",
|
|
"mouthPlan": "规避嘴形"
|
|
},
|
|
{
|
|
"shotId": "shot-02",
|
|
"lineId": "line-004",
|
|
"characterId": "tang-xia",
|
|
"text": "我退回来,在门口等。",
|
|
"emotion": "听懂后配合",
|
|
"targetDurationSec": 1.5,
|
|
"audioFile": "voices/tang_xia/line_004.wav",
|
|
"mouthPlan": "规避嘴形"
|
|
},
|
|
{
|
|
"shotId": "shot-03",
|
|
"lineId": "line-005",
|
|
"characterId": "tang-xia",
|
|
"text": "我给家里报个平安。",
|
|
"emotion": "松一口气",
|
|
"targetDurationSec": 1.6,
|
|
"audioFile": "voices/tang_xia/line_005.wav",
|
|
"mouthPlan": "规避嘴形"
|
|
},
|
|
{
|
|
"shotId": "shot-03",
|
|
"lineId": "line-006",
|
|
"characterId": "chen-yu",
|
|
"text": "对,先待在建筑入口内侧,等雷声远了再走。",
|
|
"emotion": "稳定收束",
|
|
"targetDurationSec": 2.8,
|
|
"audioFile": "voices/chen_yu/line_006.wav",
|
|
"mouthPlan": "规避嘴形"
|
|
}
|
|
]
|
|
}
|