剪映小助手数据生成器

剪映小助手 (opens new window)

speech_synthesis (opens new window)

# 技巧

# 合并长语音

循环 LoopText2Audio

输入:text_array->SplitLinesByComma.text_array
中间变量:temp_audio
输出:audio_list->speech_synthesis.link

循环体 语音合成插件->speech_synthesis
    language 英文
    speaker_id Emily
    voice_id Anna

merge_audios format->mp3 urls->LoopText2Audio.audio_list

# 案例

# 英文水平教学案例

LLM:

async def main(args: Args) -> Output:
    params = args.params
    # 构建输出对象
    prompt = f"""你是一名英国幼儿园教师,为3岁儿童设计{params['scene']}场景教学台词。请严格遵守:
1. **内容要求**  
   - 使用英式英语(例如"Tap"而非"Faucet")  
   - 仅包含**动作指令短句**(动词开头,每句≤5单词)  
   - 覆盖6个洗手步骤:开水→湿手→抹皂→搓泡→冲洗→擦干  
   - 每步骤1-2句台词,共输出6到9句  

2. **格式要求**  
   - 每句英文单独一行  
   - 结尾**不加标点**(无句号/感叹号)  
   - 禁用编号、标题、额外说明  
   - 最终输出以逗号分隔的纯文本  

示例合格输出:  
Turn on the tap,  
Wet your hands,  
Rub the soap,
Rinse off bubbles,
Dry your hand
"""
    return {"custom_prompt": prompt}

SplitLinesByComma:

import re
from typing import List

async def main(args: Args) -> Output:
    params = args.params
    text = params['text'].strip()  # 获取输入文本并去除首尾空格
    # 构建输出对象
    def pure_punctuation_split(text: str) -> List[str]:
        # 1. 按换行符分割文本(保留段落结构)
        lines = [line.strip() for line in text.split('\n') if line.strip()]
        sentences = []
        
        # 2. 遍历每行,按标点符号分句
        for line in lines:
            # 使用正则按标点分割,同时保留标点符号
            segs = re.split(r'([,.!?])', line)  # 关键点:捕获分组保留标点[1,7](@ref)
            buffer = ""
            for seg in segs:
                if seg in [',', '.', '!', '?']:
                    # 遇到标点时提交当前句子
                    if buffer:  # 避免空buffer追加标点
                        sentences.append(buffer.strip() + seg)  # 将标点附加到句尾
                    buffer = ""
                else:
                    buffer += seg
            # 收集剩余内容(无标号结尾的部分)
            if buffer: 
                sentences.append(buffer.strip())
        
        return sentences  # 直接返回按标点分割的句子列表
    
    # 返回分割结果
    return {"text_array": pure_punctuation_split(text)}

分支一: + 循环 LoopText2Audio

    输入:text_array->SplitLinesByComma.text_array
    中间变量:temp_audio
    输出:audio_list->speech_synthesis.link

    循环体 语音合成插件->speech_synthesis
        language 英文
        speaker_id Emily
        voice_id Anna

+ 插件剪映小助手数据生成器-> audio_timelines
    输入 links

分支二: + 循环 LoopText2Image 输入:text_array->SplitLinesByComma.text_array 输出:images-> 图像生成节点.data 循环体 翻译节点--图像生成节点 儿童英文教学卡片,线条简约,场景,画面突出细节:,角色表情:嘴角上扬(+15°)且苹果肌隆起,眼轮匝肌轻微收缩(眼尾皱褶≤2条),眉毛平直或眉尾微扬(与鼻翼-外眼角连线平行),尽量保持角色一致,文本必须100%准确:,若无法正确渲染则隐藏文字,无乱码、无拼写错误、无语法错误 负向提示词:no words, letters, fonts, labels, signs, alphabets, logos, trademarks, watermarks, handwriting

两个分支合并:

  • 插件剪映小助手数据生成器 captions_infos texts->SplitLinesByComma.text_array timelines->audio_timelines.timelines
  • 插件剪映小助手数据生成器 audio_infos mp3_urls->LoopText2Audio.audio_list timelines->audio_timelines.timelines
  • 插件剪映小助手数据生成器 imgs_infos imgs->LoopText2Image.images timelines->audio_timelines.timelines
  • 插件剪映小助手 create_draft height 1080 width 1920
  • 插件剪映小助手 add_images draft_url->create_draft.draft_url image_infos->imgs_infos.infos
  • 插件剪映小助手 add_audio draft_url->create_draft.draft_url audio_infos->audio_infos.infos
  • 插件剪映小助手 add_captions draft_url->create_draft.draft_url captions_infos->captions_infos.infos