MCPcopy Create free account
hub / github.com/OpenMOSS/MOSS-TTSD / generate_podcast_script

Function generate_podcast_script

podcast_generate.py:231–355  ·  view source on GitHub ↗

Call large model to generate podcast dialogue script

(content, language="zh")

Source from the content-addressed store, hash-verified

229
230
231def generate_podcast_script(content, language="zh"):
232 """Call large model to generate podcast dialogue script"""
233 from openai import OpenAI
234
235 client = OpenAI(
236 api_key=os.getenv("OPENAI_API_KEY", "YOUR_API_KEY"),
237 base_url=os.getenv("OPENAI_API_BASE", "YOUR_API_BASE_URL"),
238 )
239
240 if language == "zh":
241 role_play = "两位中文播客主持人"
242 instruction = f"""你是一位专业的中文播客文字脚本撰稿人。现在请你根据提供的有关最新AI及大模型相关进展的原始资料,生成一段模拟{role_play}之间的自然对话脚本。该脚本应符合以下具体要求:
243 一、语言风格
244 - 使用较为自然、随意、轻松的日常中文表达;
245 - 优先采用简单易懂的词汇,避免书面用语,将书面表达转换为符合口语表达的形式,但不改变专业词汇的内容;
246 - 可适度加入网络流行语、俗语、俚语,增强真实感;
247 - 符合{role_play}对话的感觉。
248
249 二、句式结构
250 - 使用松散、自然的句式,允许存在口语特征如重复、停顿、语气词等;
251 - 鼓励使用叠词(如"特别特别""慢慢来")和填充词(如"这个""其实""然后""就是""呃"等);
252 - 可适度插入模糊表达、略带情绪的语调,增强亲和力。
253
254 三、对话结构
255 - 两个说话人交替发言,并使用[S1]和[S2]标记两位说话人轮次,[S1]和[S2]中间不加入换行;
256 - 每当一方讲话时,另一方可以适当插入自然、简短的反馈或承接语(如"嗯。""对。""是的。""确实。""原来是这样。"等),展现倾听状态;
257 - 对话应有开头引入、核心讨论与自然结尾,语气上有节奏起伏,避免平铺直叙;
258 - 总长度控制在10分钟以内的语音朗读时长(不超过1500字),禁止超时。
259 - **特别强调听话方的积极反馈:当一位说话人正在讲述或解释某个观点时,另一位说话人应频繁地插入简短的承接或反馈词语(例如:「嗯。」、「是。」、「对。」、「哦。」、「是的。」、「哦,原来是这样。」、「明白。」、「没错。」、「有道理。」、「确实」),以表明其正在积极倾听、理解和互动。这些反馈应自然地穿插在说话者语句的间歇或段落转换处,而不是生硬地打断。例如:[S2]我本人其实不太相信星座诶,[S1]嗯。[S2]在一开始的时候,我就跟大部分不相信星座的一样,觉得,呃,你总能把人就分成十二种,[S1]是的。[S2]然后呢就它讲的就是对的。这种反馈要尽可能多,不要吝啬。**
260
261 四、标点与格式
262 - 仅使用中文标点:逗号、句号、问号;
263 - 禁止使用叹号。禁止使用省略号('...')、括号、引号(包括''""'")或波折号等特殊符号;
264 - 所有数字转换为中文表达,如"1000000"修改为"一百万"
265 - 请根据上下文,智慧地判断数字的读音,所有带数字的英文缩写要意译,如"a2b"输出为"a到b""gpt-4o"输出为"GPT四O""3:4"输出为"3比4""2021"如果表达年份,应当转换为"二零二一",但如果表示数字,应当转换为"两千零二十一"。请保证不要简单转换为中文数字,而是根据上下文,将其翻译成合适的中文。
266
267 五、内容要求
268 - 所有内容都基于原始资料改写,不得照搬其书面表达,原始资料中所有的内容都要完整的提到,不能丢失或者省略信息;
269 - 可加入适当的背景说明、吐槽、对比、联想、提问等方式,增强对话的节奏和趣味性;
270 - 确保信息密度较高,引用需确保上下文完整,确保听众能理解;
271 - 在对话内不要输出"我是谁""我是S1""我是S2"等相关内容;
272 - 如有专业术语则需要提供解释的解释,如果涉及抽象技术点,可以使用比喻类比等方式解释,避免听起来晦涩难懂。
273
274 ## 原始资料
275 {content}
276
277 请根据以上要求和提供的原始资料,将其转化为符合以上所有要求的播客对话脚本。一定要用[S1]和[S2]标记两位说话人,绝对不能使用任何其它符号标记说话人。
278 注意:直接输出结果,不要包含任何额外信息。
279 """
280 else: # Default to English
281 role_play = "two English podcast hosts"
282 instruction = f"""You are a professional English podcast scriptwriter. Based on the provided source material about the latest developments in AI and large models, generate a natural conversational script simulating a dialogue between {role_play}. The script should meet the following specific requirements:
283 I. Language Style
284 - Use natural, casual, and relaxed everyday English expressions.
285 - Prioritize simple and easy-to-understand vocabulary, avoiding formal language. Convert written expressions into spoken language forms without changing the content of professional terms.
286 - Appropriately include internet slang, colloquialisms, and idioms to enhance authenticity.
287 - The dialogue should feel like a conversation between {role_play}.
288

Callers 1

process_input_to_audioFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected