新增音画同步提示词

This commit is contained in:
linyq 2024-09-23 17:46:46 +08:00
parent fd9c8d0d6c
commit 93188e1328
2 changed files with 84 additions and 36 deletions

View File

@ -617,7 +617,7 @@ def gemini_video_transcription(video_origin_name: str, video_origin_path: str, l
return response.text
def video_copy_writing(video_plot, video_name):
def writing_movie(video_plot, video_name):
"""
影视解说电影解说
"""
@ -656,7 +656,7 @@ def video_copy_writing(video_plot, video_name):
print("字数:", len(response.text))
def short_play_commentary(video_plot: str, video_name: str):
def writing_short_play(video_plot: str, video_name: str):
"""
影视解说短剧解说
"""
@ -679,10 +679,10 @@ def short_play_commentary(video_plot: str, video_name: str):
文案要符合以下要求:
**任务目标**
1. 文案字数在 800字左右严格要求字数最低不得少于 500
1. 文案字数在 800字左右严格要求字数最低不得少于 600
2. 避免使用 markdown 格式输出文案
3. 仅输出解说文案不输出任何其他内容
4. 不要包含小标题每个段落以 \n 进行分隔
4. 不要包含小标题每个段落以 \\n 进行分隔
"""
response = model.generate_content(
prompt,
@ -701,42 +701,90 @@ def short_play_commentary(video_plot: str, video_name: str):
print("字数:", len(response.text))
def screen_matching(huamian: str, wenan: str):
"""
画面匹配
"""
api_key = config.app.get("gemini_api_key")
model_name = config.app.get("gemini_model_name")
gemini.configure(api_key=api_key)
model = gemini.GenerativeModel(model_name)
if not huamian:
raise ValueError("画面不能为空")
if not wenan:
raise ValueError("文案不能为空")
prompt = """
你是一名有10年经验的影视解说创作者
你的任务是根据画面描述文本和解说文案匹配出每段解说文案对应的画面时间戳, 结果以 json 格式输出
画面描述文本和文案 XML 标记<SOURCE_TEXT><SOURCE_TEXT> <COPYWRITER><COPYWRITER>分隔如下所示
<SOURCE_TEXT>
%s
</SOURCE_TEXT>
<COPYWRITER>
%s
</COPYWRITER>
Use this JSON schema:
script = {'picture': str, 'timestamp': str, "narration": str, "OST": bool}
Return: list[script]
""" % (huamian, wenan)
logger.info(prompt)
response = model.generate_content(
prompt,
generation_config=gemini.types.GenerationConfig(
candidate_count=1,
temperature=1.0,
),
safety_settings={
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_NONE,
HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_NONE,
HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE,
HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE,
}
)
print(response.text)
print("字数:", len(response.text))
if __name__ == "__main__":
# 1. 视频转录
# video_subject = "第二十条之无罪释放"
# video_path = "../../resource/videos/test01.mp4"
# language = "zh-CN"
# gemini_video_transcription(video_subject, video_path, language)
# 2. 解说文案
# video_plot = """
# 李自忠拿着儿子李牧名下的存折,去银行取钱给儿子救命,却被要求证明“你儿子是你儿子”。
# 走投无路时碰到银行被抢劫劫匪给了他两沓钱救命李自忠却因此被银行以抢劫罪起诉并顶格判处20年有期徒刑。
# 苏醒后的李牧坚决为父亲做无罪辩护,面对银行的顶级律师团队,他一个法学院大一学生,能否力挽狂澜,创作奇迹?挥法律之利剑 ,持正义之天平!
# """
# print(video_plot)
# res = writing_short_play(video_plot, "第二十条之无罪释放")
wenan = """
这到底是一部什么样的电影能让银行经理在法庭上公然下跪能让无数网友为之愤怒更能让无数人为之动容\n
他叫李自忠为了给儿子筹集医药费他来到了银行想取出儿子名下的存款却被银行告知要证明你儿子是你儿子走投无路之下他却被卷入了一场银行抢劫案阴差阳错之下劫匪给了他两沓钱让他救儿子本以为是希望没想到却是绝望的开始他因此被认定为抢劫犯被判处20年有期徒刑\n
然而天无绝人之路昏迷的儿子醒了苏醒后的儿子怎么也不敢相信自己的父亲竟然被判为抢劫犯为了给父亲讨回公道他做出了一个决定他要为父亲做无罪辩护要知道他只是一个法学院的大一学生面对银行的顶级律师团队他能成功吗\n
面对种种不利证据他一次次败诉又一次次上诉就像一只打不死的小强为了找到有利的证据他四处奔波走访调查甚至不惜以身犯险只为还原事实真相然而真相真的会到来吗\n
正义或许会迟到但永远不会缺席随着案件的审理越来越多的疑点浮出水面案情也发生了惊天大逆转他究竟发现了什么最后的真相又是什么本案改编自真实事件究竟是人性的扭曲还是道德的沦丧\n
想知道案件的最终结果吗让我们一起走进这部电影寻找最终的真相吧
"""
File API 可让您为每个项目存储最多 20 GB 的文件每个项目使用 每个文件的大小上限为 2 GB文件会存储 48 小时
它们可以是 在此期间使用您的 API 密钥访问但无法下载 使用任何 API它已在使用 Gemini 的所有地区免费提供 API 可用
"""
# video_copy_writing("", "阿甘正传")
# 读取指定目录下的 json 文件
with open("../../resource/scripts/zhuanlu.json", "r", encoding="utf-8") as f:
huamian = json.load(f)
video_plot = """
## 短剧《卖菜大妈竟是皇嫂》分析
screen_matching(huamian, wenan)
**主要剧情:**
短剧卖菜大妈竟是皇嫂讲述了农妇刘桂花在逃荒途中意外救助了一名孩童这个孩童正是当时的五皇子然而在救五皇子的过程中刘桂花失去了自己的儿子志洲二十年后五皇子长大成人并与刘桂花重逢刘桂花在得知真相后面对着皇室的权势和自己的过往最终选择勇敢地面对命运并最终收获了幸福
**内容:**
短剧以古装仙侠为题材融合了穿越宫廷爱情等元素展现了主角刘桂花从一个平凡的卖菜大妈成长为皇室成员的传奇故事剧中展现了刘桂花善良勇敢坚韧的性格以及她与五皇子之间错综复杂的情感纠葛
**核心信息:**
这部短剧的核心信息是命运的安排无法改变但我们可以选择如何面对刘桂花在经历了失去儿子的痛苦和与五皇子重逢的惊喜后最终选择了勇敢地面对命运并最终获得了幸福这体现了人性的善良勇敢和坚韧也展现了对美好生活的追求和对命运的掌控
**人物:**
* **刘桂花:** 短剧的主角一位善良勇敢坚韧的农妇她经历了失去儿子的痛苦却依然保持着善良的本性最终获得了幸福
* **五皇子:** 皇室成员与刘桂花有着特殊的缘分他善良正直勇敢最终与刘桂花相爱
**思考:**
这部短剧带给我们的思考是面对命运的安排我们应该保持勇敢和坚韧积极地面对生活追求美好的生活而不是一味地沉溺于痛苦之中同时短剧也提醒我们人性的善良和勇敢是战胜困难获得幸福的关键
**总结:**
卖菜大妈竟是皇嫂是一部以女性视角展开的古装仙侠题材作品讲述了主角刘桂花从一个平凡的卖菜大妈成长为皇室成员的传奇故事剧中展现了刘桂花善良勇敢坚韧的性格以及她与五皇子之间错综复杂的情感纠葛这部短剧的核心信息是命运的安排无法改变但我们可以选择如何面对它鼓励人们在面对困难时保持勇敢和坚韧积极地面对生活最终获得幸福
"""
short_play_commentary(video_plot, "卖菜大妈竟是皇嫂")
# import os
# import sys

View File

@ -358,7 +358,7 @@ def add_new_timestamps(scenes):
new_scene['new_timestamp'] = f"{new_start_str}-{new_end_str}"
# 为"原生播放"的narration添加唯一标识符
if new_scene.get('narration') == "原声播放":
if new_scene.get('narration') == "原声播放" or new_scene.get('narration') == None:
unique_id = str(uuid4())[:8] # 使用UUID的前8个字符作为唯一标识符
new_scene['narration'] = f"原声播放_{unique_id}"