这是为周末挑战赛:激情版提交的作品
我构建了什么:
《对抗电台》是一档虚构的深夜听众来电广播节目。你输入任何一对竞争关系的双方,点击“开始直播”,然后由圆滑的资深广播人罗克西介绍两位超级粉丝:一位是傲慢且过度自信的麦克斯,另一位是冷静且礼貌得致命的波比。他们会就你输入的任何话题展开争论,与此同时,逐行亮起的文字实录和带有跳动均衡器的“正在播出”指示灯同步闪烁。杰米尼负责撰写辩论内容, ElevenLabs 为所有三个角色配音,而整个系统仅运行在一个云flare 工作器上,无需数据库、无需存储,也无需 FFmpeg。
我夜间都在构建一个人工智能视频编辑器作为副业项目,因此我对音频流水线早已有了自己的见解。这个周末,我想看看利用相同的技术能力但完全不拘谨的情况下,我能多快地交付一个产品。一个可用的版本花了一个晚上就完成了。而一个优秀的版本则花费了整个周末,其中大部分时间差距源于两个免费层级服务向我展示了它们的细微条款。
演示:
在线演示:https://rivalry-radio.gandhamvimala.workers.dev/
代码仓库:https://github.com/gandhamvimala/Rivalry-Radio
演示涵盖了两期广播节目:居家办公 versus 办公室办公,然后是靠窗座位 versus 过道座位,两者均处于“疯狂模式”。
截至目前我最喜欢的台词,没有一句是人类编写的:麦克斯声称他靠着飞机窗户睡觉,“像一位光荣且振动的国王”;波比将他描述为“一只悲伤的、被劫持的小狗,凝视着一堵无聊的云墙”;以及罗克西在节目结束时选择中间座位,“只是为了看他们俩坐立不安”。
我如何使用谷歌人工智能:
杰米尼将每场辩论写成严格的 JSON 格式:三位发言人,10 到 12 句台词,并指示从合理开始,逐步升级为荒谬。质量提升最大的一点来自提示词中的一行指令:如果你不知道关于该竞争关系的真实事实,那就编造出奇具体的个人轶事来代替。这条指令所起的作用比提示词的其余部分加起来还要大。
给发言人赋予名字和个性是第二大质量飞跃。一旦提示词将麦克斯描述为情绪激动,将波比描述为镇定但更犀利,并让他们互相称呼名字,输出结果就不再听起来像两个聊天机器人,而开始像一档真正的节目。
让我吃亏的地方。杰米尼 2.5 的内部思维令牌计入最大输出令牌限制,所以我的脚本一直在 JSON 中间被截断,直到我将思维预算设置为零,因为喜剧剧本不需要思维链。随后,我在一个下午的测试中耗尽了免费层级的每日请求配额,并发现配额是按模型计算的,于是我切换到了 gemini-3.5-flash,不仅获得了新的配额桶,而且说实话,剧本也更有趣了。它偶尔还会违背指令,用 Markdown 代码围栏包裹 JSON,因此工作器会剥离这些围栏,验证每一位发言人,并重试最多两次。
温度参数的影响比我预期的要大。在默认设置下,粉丝们会礼貌地表示保留不同意见,这对于广播节目来说糟透了。“疯狂模式”的运行温度设置为 1.1。
我如何使用 ElevenLabs:
每个角色映射到不同的 ElevenLabs 声音:主持人罗克西、情绪激动的超级粉丝麦克斯,以及波比,她那丝滑的英式发音让她礼貌性的驳斥加倍有力。这种映射存在于服务器端,因此客户端只发送发言人名称,从不发送声音 ID 或应用程序接口密钥。
免费层级给我上了文档中让你通过实践才能学到的教训。社区库中的声音在免费计划中无法通过应用程序接口使用,只有预制的声音可以使用,这一点我是通过仔细审计后遇到的 402 错误才得知的
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。