7月份的项目
deepseek生成1. DeepSeek 翻译偶尔只返回一行现象明明传了多行字幕DeepSeek 却合并成一行返回原因AI 模型没理解按行翻译的要求随机抽风解决方案System prompt 明确说每行分别翻译一行对应一行不要编号User prompt 去掉多余的翻译前缀直接传文本降低 temperature 到 0.1-0.3 减少创造性{role:system,content:将每行中文翻译成闽南语保持行数不变每行一句译文不加序号。}2. TTS 返回的 audio 不是 base64而是包含 URL 的对象现象✗ 失败: argument should be a bytes-like object or ASCII string, not Audio原因qwen3-tts-flash返回的response.output.audio是一个Audio对象里面包含url字段指向 OSS 上的音频文件而不是直接返回音频数据。调试方法打印type()和dir()查看对象结构print(fresponse.output.audio类型:{type(response.output.audio)})print(faudio属性:{dir(response.output.audio)})解决方案从audio.url下载音频audio_urlresponse.output.audio.url audio_datarequests.get(audio_url).content3. 变量未定义错误现象name subtitle_file is not defined原因save_translated_text()直接传了字符串常量没有赋值给变量后面 TTS 调用时找不到解决方案先定义变量再使用subtitle_filefMinNan_{info[bvid]}.txtsave_translated_text(translated,subtitle_file)qwtts.tts(subtitle_file,...)4. 字幕窗口切分逻辑问题如何确保每条字幕只被处理一次不重不漏解决方案用s cur_end判断字幕是否超出当前窗口超出则保存当前窗口并开启新窗口fors,e,tinsubs:ifscur_end:# 字幕start超出窗口边界iftexts:windows.append(...)# 保存当前窗口cur_starts# 新窗口从当前字幕开始cur_ends20texts[t]# 当前字幕加入新窗口else:texts.append(t)# 在当前窗口内5. 音频格式确认确认qwen3-tts-flash默认输出WAV格式通过 OSS URL 下载最终工作流B站视频 → 提取字幕 → DeepSeek翻译成闽南语 → 保存为.txt ↓ 按20秒窗口打包 ↓ Qwen3-TTS生成音频 ↓ 下载OSS上的WAV文件 ↓ 保存为 字幕_起始s_结束s.wav