47 lines
2.1 KiB
Markdown
47 lines
2.1 KiB
Markdown
# 1
|
||
|
||
你有一个voice-gen的skill。
|
||
项目目录是`D:\AI\ClaudeCode\口播`
|
||
|
||
先初始化环境,看看远程现在的voice id有没有是什么。
|
||
|
||
# 2
|
||
|
||
原始文档:
|
||
`C:\Users\wangq\Documents\Codex\knowledge-vault\discussions\creative\从想法到作品\成果\01.从想法到作品口播文案.md`
|
||
|
||
这个内容里是带标题的,所以正式的应该去掉标题吧。
|
||
|
||
你可以复制这个文件到工作路径的`scripts/`下,然后用这个voiceid测试生成这段音频。
|
||
|
||
# 3
|
||
|
||
我修改了`voices.json`,这个应该是历史原因造成的。
|
||
你现在用这个新的voice id 先做个简单测试。
|
||
|
||
# 4
|
||
|
||
测试成功了,现在删除这些测试的临时文件,生成最终的口播音频。
|
||
|
||
|
||
voice-gen gen 这次没成功(mmx exited 0 but mp3 was not created),但裸 mmx speech synthesize --text-file ...
|
||
跑同一份文本成功了。差异主要在 voice-gen 走 cmd /c 包装 + --quiet,Windows shell
|
||
转义/缓冲与长中文文本交互时偶发异常。这是 voice-gen 包装层的问题;以后如果要在这个项目跑 batch,可以考虑直接调
|
||
mmx,或者在 voice-gen 仓库里把 synthesizer.py 的 _run_mmx 改成走 --text-file 而不是 --text,把 shell 转义绕开。
|
||
|
||
直接重生成完整口播 → 改用 --voice BroTsong-Saying-Emotion-2026-07-07
|
||
|
||
注意传入:--text-file 而不是 --text
|
||
|
||
MP3的文件名,加个区分,不要覆盖以前的。
|
||
|
||
这次踩到的两个坑(已避开,下次可直接复用)
|
||
|
||
1. mmx 是 .cmd shim:Python subprocess.run(['mmx', ...]) 会 WinError 2。要么 cmd /c mmx ...,要么用 shutil.which 定位
|
||
+ cmd /c 包装(skill 的 _run_mmx 就是这么干的)。
|
||
2. --text-file - 在 cmd /c 下被解释为字面文件 D:\dev\stdin(Windows cmd 替换规则)。改成写入临时文本文件再传给
|
||
--text-file 才稳,合成完即删。
|
||
|
||
要听下新版的「带情绪」效果再决定后续吗?或者要我现在帮 voice-gen 仓库把这两个坑打个补丁/PR?
|
||
- 把 --text-file - 支持改正(用 __TEXTFILE_PLACEHOLDER__ 写临时文件模式,绕开 cmd 替换)
|
||
- 顺便把 Windows 中文长 payload + .cmd shim 这层兜底显式化 |