mirror of
https://github.com/harry0703/MoneyPrinterTurbo.git
synced 2026-02-21 16:37:21 +08:00
update voice and font
This commit is contained in:
parent
36dffe8de3
commit
21073b5c25
@ -287,6 +287,9 @@ def generate_video(
|
||||
bg_color=params.text_background_color,
|
||||
stroke_color=params.stroke_color,
|
||||
stroke_width=params.stroke_width,
|
||||
size=(video_width, None),
|
||||
method='caption',
|
||||
text_align='center'
|
||||
)
|
||||
duration = subtitle_item[0][1] - subtitle_item[0][0]
|
||||
_clip = _clip.with_start(subtitle_item[0][0])
|
||||
@ -320,6 +323,9 @@ def generate_video(
|
||||
text=text,
|
||||
font=font_path,
|
||||
font_size=params.font_size,
|
||||
size=(video_width, None),
|
||||
method='caption',
|
||||
text_align='center'
|
||||
)
|
||||
|
||||
if subtitle_path and os.path.exists(subtitle_path):
|
||||
|
||||
@ -952,6 +952,9 @@ Gender: Male
|
||||
Name: zh-CN-YunxiaNeural
|
||||
Gender: Male
|
||||
|
||||
Name: zh-CN-YunzeNeural-V2
|
||||
Gender: Male
|
||||
|
||||
Name: zh-CN-YunyangNeural
|
||||
Gender: Male
|
||||
|
||||
@ -1012,6 +1015,7 @@ Gender: Female
|
||||
|
||||
Name: zh-CN-XiaoxiaoMultilingualNeural-V2
|
||||
Gender: Female
|
||||
|
||||
""".strip()
|
||||
voices = []
|
||||
# 定义正则表达式模式,用于匹配 Name 和 Gender 行
|
||||
@ -1106,6 +1110,27 @@ def azure_tts_v2(text: str, voice_name: str, voice_file: str) -> Union[SubMaker,
|
||||
logger.error(f"invalid voice name: {voice_name}")
|
||||
raise ValueError(f"invalid voice name: {voice_name}")
|
||||
text = text.strip()
|
||||
# 根据不同的声音使用不同的 SSML
|
||||
if voice_name == "zh-CN-YunzeNeural":
|
||||
print(f"DEBUG: Using SeniorMale role and calm style with styledegree=2 for voice {voice_name}")
|
||||
ssml = f"""
|
||||
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="zh-CN">
|
||||
<voice name="{voice_name}">
|
||||
<mstts:express-as role="SeniorMale" style="calm" styledegree="2">
|
||||
{text}
|
||||
</mstts:express-as>
|
||||
</voice>
|
||||
</speak>
|
||||
"""
|
||||
else:
|
||||
print(f"DEBUG: Using standard SSML for voice {voice_name} (no special role or style)")
|
||||
ssml = f"""
|
||||
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="zh-CN">
|
||||
<voice name="{voice_name}">
|
||||
{text}
|
||||
</voice>
|
||||
</speak>
|
||||
"""
|
||||
|
||||
def _format_duration_to_offset(duration) -> int:
|
||||
if isinstance(duration, str):
|
||||
@ -1172,7 +1197,9 @@ def azure_tts_v2(text: str, voice_name: str, voice_file: str) -> Union[SubMaker,
|
||||
speech_synthesizer_word_boundary_cb
|
||||
)
|
||||
|
||||
result = speech_synthesizer.speak_text_async(text).get()
|
||||
#result = speech_synthesizer.speak_text_async(text).get()
|
||||
print(f"DEBUG: Final SSML being used:\n{ssml}")
|
||||
result = speech_synthesizer.speak_ssml_async(ssml).get() # 修改这一行
|
||||
if result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
|
||||
logger.success(f"azure v2 speech synthesis succeeded: {voice_file}")
|
||||
return sub_maker
|
||||
|
||||
@ -122,7 +122,8 @@ def scroll_to_bottom():
|
||||
scroll(1);
|
||||
</script>
|
||||
"""
|
||||
st.components.v1.html(js, height=0, width=0)
|
||||
# 使用st.markdown代替st.components.v1.html
|
||||
st.markdown(js, unsafe_allow_html=True)
|
||||
|
||||
|
||||
def init_log():
|
||||
@ -763,7 +764,7 @@ with right_panel:
|
||||
|
||||
with font_cols[1]:
|
||||
saved_font_size = config.ui.get("font_size", 60)
|
||||
params.font_size = st.slider(tr("Font Size"), 30, 100, saved_font_size)
|
||||
params.font_size = st.slider(tr("Font Size"), 30, 150, saved_font_size)
|
||||
config.ui["font_size"] = params.font_size
|
||||
|
||||
stroke_cols = st.columns([0.3, 0.7])
|
||||
|
||||
59
测试.md
Normal file
59
测试.md
Normal file
@ -0,0 +1,59 @@
|
||||
# Role: AI Copy Variation Assistant
|
||||
|
||||
# Context:
|
||||
你是一位专业的AI文案裂变助手。你的核心任务是根据我提供的原始文案,生成50条**高质量、语义一致**的变体文案。目标是实现“微调”效果,即每条变体与原文案相比只有少量词语不同,但整体意思和结构保持高度一致。**此过程无人工审核,请严格遵守规则确保质量。**
|
||||
|
||||
# Replacement Strategy & Keyword Categories:
|
||||
请专注于替换以下类型的词语(你**需要智能识别**原文中属于这些类别的词语进行替换,**每次替换1-3个词语**即可,不必全部替换):
|
||||
1. **形容词/副词**: 例如,描述效果、感觉、程度的词语 (如:"惊艳的", "快速地", "非常")。
|
||||
2. **核心动词**: 例如,引发动作、说明功能的词语 (如:"解决", "提升", "带来")。
|
||||
3. **呼吁行动语 (CTA)**: 例如,结尾引导用户行动的短语 (如:"立即体验", "马上行动", "不要错过")。
|
||||
4. **[可选添加其他类别]**: 例如,目标人群词 (如:"年轻人", "职场人") 或 场景词 (如:"通勤路上", "熬夜加班时")。
|
||||
|
||||
# Strict Rules (不可违背的规则):
|
||||
1. **保持核心信息不变**: 绝对不能改变原文的核心含义、产品/服务特点或关键价值主张。
|
||||
2. **维持基本结构和长度**: 新文案的句子结构、段落划分和预估阅读/讲述时长应与原文高度相似。
|
||||
3. **语气风格一致**: 保持原文的语气。
|
||||
4. **自然流畅**: 生成的文案必须符合中文表达习惯,读起来自然、通顺,无语法错误或生硬拼接。
|
||||
5. **避免低质重复**: 生成的 **[50]** 条文案之间应有**可感知的差异**,避免仅仅是同义词的简单堆砌或生成高度雷同的文案。使用多样化的、同一类别下的不同词汇。
|
||||
6. **实现微调效果**: 强调!每条新生成的变体文案,相比原文,**仅替换1-3处**关键词或短语。
|
||||
|
||||
# Output Format:
|
||||
请以编号列表的格式输出所有生成的 **[50]** 条变体文案。
|
||||
|
||||
|
||||
请基于以下框架,针对[目标用户]设计爆款短视频引流文案。每条文案请变换变量内容,保持神秘感、紧迫感与互动感。
|
||||
|
||||
要求:
|
||||
|
||||
内容真实感强,悬念感强,情绪足够抓人。
|
||||
合理换用不同身份、时间点、互动动作等,提高多样性。
|
||||
引导至少一次行为(如点赞/关注/评论/去主页等)。
|
||||
禁止机械式堆砌,需有自然表达与情感链接。
|
||||
变量列表(用于分裂)
|
||||
【用户标签】:(如生肖、星座、年龄、职业等)
|
||||
【具体时间】:(如下周二上午十点十二分、今晚8点08分等)
|
||||
【事件数量】:(1件/2件/三件重要的事)
|
||||
【事件描述】:(人生会有转机、大事要发生、好消息降临、秘密曝光等)
|
||||
【保密动作】:(别出声、切勿外传、小心留意、务必安静听好等)
|
||||
【互动动作】:(点亮小红心、评论“收到”、关注我、转发给朋友等)
|
||||
【身份关系】:(妈、闺蜜、老师、姐姐、兄弟等)
|
||||
【稀缺警告】:(今天不做就错过、见一次少一次、这次没看到下次不来了等)
|
||||
【引流目标】:(主页第一条视频、最新视频、私信了解、关注我看真相等)
|
||||
【悬念补充】:(所有真相都藏在里面、背后有原因、你会感谢今天看到了等)
|
||||
结构化分裂文案提示词
|
||||
请用下面结构填充变量,批量生成不同鲜活场景的文案:
|
||||
|
||||
【用户标签】,在【具体时间】,你身边有【事件数量】【事件描述】。我特意来告诉你,【保密动作】,仔细听好了,这件事不能随便说出去。现在就【互动动作】,让【身份关系】知道你收到提醒了。【稀缺警告】。记得去【引流目标】,【悬念补充】。
|
||||
|
||||
示例填充1:
|
||||
用户标签:属虎的
|
||||
具体时间:明天早上九点半
|
||||
事件数量:有两件
|
||||
事件描述:重要的决定要降临
|
||||
保密动作:不要声张
|
||||
互动动作:点亮小红心
|
||||
身份关系:哥哥
|
||||
稀缺警告:错过了今天就再也没有机会
|
||||
引流目标:主页置顶视频
|
||||
悬念补充:那才是真正的关键
|
||||
Loading…
Reference in New Issue
Block a user