#2138 cannot use custom voices

2a01:e0a* Posted at: 1 day ago 👁32

Hi
My apologies but I cannot speak Chinese.
I have Chatterbox TTS 服务 opened in the background. The webui works fine, I can generate TTS with a custom voice.
When I configure it in pyVideoTrans, the test returns a message with this custom voice
image
(btw I tried with or without /v2/audio/speech_with_prompt)
but when I try to use it on the main interface, first, I only have access to template "voice roles". Then, when I try "test dubbing", I get an error :
image
And if I don't put anything there, voice is not dubbed.
I also tried with chatterbox-tts-api and chattts-ui, same result. I plan trying others.

cheers

13 Replies

您遇到的问题是在主界面无法使用自定义的 ChatterBox TTS 角色。根据您描述的现象和截图,问题可能出在角色名称的配置上。请按以下步骤检查和操作:

  1. 确认并复制正确的角色名称

    • 在 ChatterBox TTS 的 WebUI 中,找到您想使用的自定义角色的确切名称
    • 这个名称通常是您在创建或上传角色时设定的,不是在 WebUI 下拉列表中看到的“友好显示名”,而是其内部的唯一标识符。请仔细检查 WebUI 中关于角色管理的部分,找到其“ID”或“Name”字段。
  2. 在 pyVideoTrans 中正确配置

    • 在 pyVideoTrans 主界面,选择配音渠道为 ChatterBox-TTS
    • 在“配音角色”输入框中,直接粘贴您从步骤1中复制的确切角色名称
    • 不要从下拉列表中选择,因为下拉列表只包含预设的模板角色。自定义角色需要手动输入其名称。
  3. 验证连接

    • 确保 ChatterBox TTS 服务正在运行,并且 pyVideoTrans 中配置的 API 地址(例如 http://127.0.0.1:7860)是正确的。
    • 配置好角色名称后,点击“测试配音”按钮。如果成功,您应该能听到使用该自定义角色的试听音频。
  4. 如果问题依旧

    • 请提供 ChatterBox TTS 服务日志中,当您点击“测试配音”时产生的相关错误信息。
    • 同时,检查 pyVideoTrans 安装目录下的 logs 文件夹,查看最新的日志文件,里面可能有更详细的错误原因。

关键点:自定义角色的使用依赖于准确的角色名称字符串,必须手动输入到“配音角色”框中。

I cannot type in this box, it will only let met pick one of the choices
image
Here is the error message :
"Connection refused, please ensure the local service is started and running:
Traceback (most recent call last):
File "urllib3\connection.py", line 198, in _new_conn
File "urllib3\util\connection.py", line 85, in create_connection
File "urllib3\util\connection.py", line 73, in create_connection
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "urllib3\connectionpool.py", line 787, in urlopen
File "urllib3\connectionpool.py", line 493, in _make_request
File "urllib3\connection.py", line 494, in request
File "http\client.py", line 1277, in endheaders
File "http\client.py", line 1037, in _send_output
File "http\client.py", line 975, in send
File "urllib3\connection.py", line 325, in connect
File "urllib3\connection.py", line 213, in _new_conn
urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "requests\adapters.py", line 644, in send
File "urllib3\connectionpool.py", line 841, in urlopen
File "urllib3\util\retry.py", line 519, in increment
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=9966): Max retries exceeded with url: /tts (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "videotrans\util\ListenVoice.py", line 18, in run
File "videotrans\tts\__init__.py", line 288, in run
File "videotrans\tts\_base.py", line 179, in run
File "videotrans\tts\_chattts.py", line 74, in _item_task
File "tenacity\__init__.py", line 338, in wrapped_f
File "tenacity\__init__.py", line 477, in call
File "tenacity\__init__.py", line 378, in iter
File "tenacity\__init__.py", line 400, in
File "concurrent\futures\_base.py", line 439, in result
File "concurrent\futures\_base.py", line 391, in __get_result
File "tenacity\__init__.py", line 480, in call
File "videotrans\tts\_chattts.py", line 47, in _run
File "requests\api.py", line 115, in post
File "requests\api.py", line 59, in request
File "requests\sessions.py", line 589, in request
File "requests\sessions.py", line 703, in send
File "requests\adapters.py", line 677, in send
requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=9966): Max retries exceeded with url: /tts (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it'))


=
system:Windows-10
frozen:True
language:en
root_dir:c:/win-pyvideotrans-3.90"

根据您提供的错误日志,核心问题是 连接被拒绝。软件尝试连接到 127.0.0.1:9966,但该端口上没有服务在运行。这与您之前提到的 ChatterBox TTS 服务地址(可能是 127.0.0.1:7860)不匹配。

请按以下步骤检查和解决:

  1. 确认 ChatterBox TTS 服务地址和端口:

    • 请确认您启动的 ChatterBox TTS WebUI 或 API 服务实际监听的 IP 地址和端口号。通常默认是 http://127.0.0.1:7860http://127.0.0.1:9966
    • 打开浏览器,访问您认为正确的地址(例如 http://127.0.0.1:7860http://127.0.0.1:9966),确认 WebUI 页面能正常打开。
  2. 在 pyVideoTrans 中正确配置 API 地址:

    • 在 pyVideoTrans 主界面,找到 网络代理 输入框(通常在底部)。
    • 在该框中,不要填写代理地址,而是填写您的 ChatterBox TTS 服务的完整 API 地址
    • 格式应为:http://127.0.0.1:端口号(例如 http://127.0.0.1:7860http://127.0.0.1:9966)。
    • 重要: 对于 ChatterBox-TTS 渠道,软件会使用这个“网络代理”框中的地址作为 TTS 服务的 API 端点。
  3. 关于“配音角色”输入框无法手动输入的问题:

    • 这是一个界面限制。对于 ChatterBox-TTS,您需要先在“设置”中预设角色
    • 进入 菜单 -> 设置 -> 配音 选项卡。
    • 找到 ChatterBox-TTS 的配置部分,那里应该有一个可以输入“角色”或“Voice”的字段。在此处输入您的自定义角色名称(ID)。
    • 保存设置后,返回主界面,该角色应该会出现在“配音角色”的下拉列表中供您选择。

总结操作顺序:

  1. 确保 ChatterBox TTS 服务在正确的端口上运行(例如 :7860)。
  2. 在 pyVideoTrans 的“网络代理”框中填入该服务地址(例如 http://127.0.0.1:7860)。
  3. 在“设置 -> 配音”中为 ChatterBox-TTS 预设您的自定义角色名称。
  4. 回到主界面,从“配音角色”下拉列表中选择该预设角色,然后进行测试。

如果按上述步骤操作后问题依旧,请提供:

  • 您启动 ChatterBox TTS 服务的具体命令或方式,以及它输出的日志(显示其监听的地址和端口)。
  • pyVideoTrans “设置 -> 配音” 中关于 ChatterBox-TTS 配置的截图。

Chatterbox is running on http://127.0.0.1:5093/ as set in pyvideotrans. I put the url in "proxy".
I cannot find "voiceover" in settings or in any menu

image

您需要在 菜单栏 中找到设置,而不是在“工具”里。请按以下步骤操作:

  1. 点击软件窗口顶部的 菜单栏,选择 设置
  2. 在弹出的设置窗口中,切换到 配音 选项卡。
  3. 在配音设置列表中,找到 ChatterBox-TTS 这一项。
  4. 在它的配置行中,应该有一个可以输入文本的字段(可能叫“角色”、“Voice”或类似名称)。在此处输入您的自定义角色名称(ID)
  5. 保存设置。

完成以上操作后,返回主界面,您的自定义角色应该就会出现在“配音角色”的下拉列表中。

关于地址的确认:
您将 http://127.0.0.1:5093 填入“网络代理”框是正确的。请确保 ChatterBox TTS 服务确实运行在该地址,并且浏览器访问 http://127.0.0.1:5093 能正常打开其 WebUI 界面。

如果设置菜单中仍然没有“配音”选项卡,或者没有 ChatterBox-TTS 的配置项,请提供 设置窗口打开后的完整截图,以便进一步定位问题。

I have no "settings". I have
Trans settings
TTS settings
ASR settings
image
In TTS settings>chatterbox, I input my custom voice file my_voice.wav
image
When I test, I get an error message : "Ensure audio my_voice.wav exists in chatterbox folder" BUT then the test message "hello my friend, welcome to China" plays perfectly with my custom voice.
My browser can open chatterbox' web interface and generate a voice message with the custom file my_voice.wav

您已经找到了正确的配置位置。根据您的描述,问题在于软件在测试时检查了音频文件是否存在,但随后又成功播放了自定义语音。这表明配置基本正确,但文件路径的检查逻辑可能有些敏感。现在,您需要将自定义角色应用到主界面。请按以下步骤操作:在 TTS 设置 中为 ChatterBox-TTS 配置好自定义语音文件(my_voice.wav)后,点击 保存。关闭 TTS 设置 窗口。返回主界面。在主界面的 配音角色 下拉列表中,您现在应该能看到一个名为 my_voice 或类似的新选项(它应该会读取您配置的文件名)。从下拉列表中选择这个新出现的角色。现在,当您在主界面点击 测试配音 时,应该能成功使用您的自定义语音。如果下拉列表中仍然没有出现您的自定义角色,或者测试失败,请尝试以下操作:确保 my_voice.wav 文件位于 ChatterBox TTS 服务程序所在的目录下(通常是它的根目录或某个特定的 voices 文件夹)。请查阅 ChatterBox TTS 的文档,确认自定义语音文件应该放置的确切路径。在 pyVideoTrans 的 TTS 设置中,尝试使用该文件的 绝对路径(例如 C:\path\to\chatterbox\my_voice.wav),而不仅仅是文件名。如果问题依旧,请提供:您在 ChatterBox TTS 的 WebUI 中成功生成语音时,使用的是哪个确切的“角色名称”或“语音模型”?pyVideoTrans 主界面在您保存 TTS 设置后,“配音角色”下拉列表的完整截图。

image
My custom voice doesn't appear. I tested all the options, none work. My wav file seems at the right place since it works in settings>test. I used the absolute path.
I used my_voice.wav

问题在于您配置的自定义语音文件 my_voice.wav 没有出现在主界面的“配音角色”下拉列表中。这通常是因为软件没有正确地将自定义配置同步到主界面的角色列表。请尝试以下解决方案:重启软件:完全关闭 pyVideoTrans,然后重新启动。这有时可以强制刷新内部的角色列表。检查角色名称映射:在 ChatterBox TTS 的 WebUI 中,当您使用 my_voice.wav 生成语音时,它内部使用的“角色标识符”可能不是简单的 my_voice。请查看 ChatterBox TTS 的 API 文档或 WebUI 的源代码,确认它期望的角色参数是什么格式。例如,它可能需要一个完整的模型名称或特定的 ID。在 pyVideoTrans 的 TTS 设置中,尝试使用 ChatterBox TTS 期望的完整角色标识符,而不仅仅是文件名。例如,可能是 my_voice./my_voice.wav 或一个更复杂的字符串。手动编辑配置文件(高级):如果以上方法无效,您可以尝试直接编辑配置文件。配置文件通常位于 pyVideoTrans 安装目录下的 config.videotrans 文件夹中,文件名可能是 config.jsonsettings.ini。在文件中找到与 chatterboxtts 相关的部分,检查角色配置是否正确保存。请注意,直接编辑配置文件有风险,建议先备份。使用“自定义TTS-API”渠道:如果 ChatterBox-TTS 渠道持续出现问题,您可以尝试使用更通用的“自定义TTS-API”渠道。这需要您知道 ChatterBox TTS 服务的具体 API 端点(例如 http://127.0.0.1:5093/tts)和它期望的请求格式(JSON 结构)。您可以在 pyVideoTrans 的“配音渠道”中选择“自定义TTS-API”,然后根据 ChatterBox TTS 的 API 文档配置请求参数。为了进一步诊断,请提供以下信息:您启动 ChatterBox TTS 服务的具体命令(例如,您是如何运行它的?)。ChatterBox TTS 项目文档中关于“使用自定义语音”或“API 调用”部分的链接或说明。这将帮助确定正确的配置格式。

I tried restarting. I don't see other name mapping.

根据目前的信息,问题可能出在 pyVideoTrans 内部处理 ChatterBox-TTS 自定义角色的逻辑上。既然在 TTS 设置中测试成功,但在主界面下拉列表中不显示,我们可以尝试一个直接的解决方案:手动指定角色。

请按以下步骤操作:

  1. 在主界面直接输入角色名称

    • 在 pyVideoTrans 主界面的 配音角色 输入框中,不要从下拉列表选择。
    • 直接手动输入您的自定义语音标识符。根据您之前的配置,这很可能就是 my_voicemy_voice.wav
    • 尝试输入 my_voice 并按回车或点击其他地方确认。
  2. 验证并测试

    • 输入后,确保光标移出了输入框。
    • 然后点击 测试配音 按钮。
    • 观察是否成功,以及是否有新的错误信息。

如果手动输入后测试成功,但下拉列表中仍然没有,这确认了是软件界面刷新的问题,但功能本身是正常的。您可以在后续使用中每次都手动输入这个角色名称。

如果手动输入后测试失败,请提供新的错误日志。这有助于判断是角色名称格式问题还是其他连接问题。

补充说明
ChatterBox-TTS 可能期望的角色参数格式并非简单的文件名。请查阅您使用的 ChatterBox TTS 项目的文档,确认其 API 在请求合成语音时,voicespeaker 参数应该是什么格式。例如,有些系统可能需要 file://my_voice.wav 或一个内部模型 ID。您可以在 pyVideoTrans 的 TTS 设置中尝试不同的格式(如 ./my_voice.wav),保存后,再回到主界面手动输入相同的字符串进行测试。

It is not possible to manually input anything in the drop-down box menu on "voice". It won't let me type.

您说得对,那个下拉框通常不允许手动输入。问题在于软件没有将您在 TTS 设置中配置的自定义角色同步到主界面的下拉列表中。这是一个已知的界面同步问题。请尝试以下两种解决方案:方案一:通过“设置”菜单强制刷新(推荐)在菜单栏,点击 设置。在弹出的窗口中,切换到 TTS 选项卡。在列表中找到 ChatterBox-TTS,点击它,确保您的自定义语音文件(my_voice.wav)的路径已正确填写。不要关闭这个窗口。直接点击 保存 按钮。保存后,不要做任何其他操作,直接关闭这个“设置”窗口。立即返回到主界面。现在检查“配音角色”下拉列表。您的自定义角色(可能会显示为 my_voice 或类似名称)现在应该出现了。如果仍未出现,请尝试重启软件,然后立即重复上述步骤(先打开设置查看并保存,再回主界面查看)。方案二:使用“字幕多角色配音”工具(替代方案)如果方案一无效,您可以暂时使用一个替代功能来完成工作:在 pyVideoTrans 主界面的菜单栏,找到 工具 菜单。选择 字幕多角色配音。这个工具允许您为已有的字幕文件(SRT格式)指定不同的发音角色,并且它的角色选择框通常支持手动输入或更灵活的选择。您可以先将视频通过“转录并翻译字幕”功能生成字幕文件,然后使用这个工具,并手动输入 my_voice 作为角色名称进行配音。如果以上方案都无法解决,请提供以下信息以便进一步分析:您使用的 ChatterBox TTS 的具体项目名称和版本(例如,是哪个 GitHub 仓库的版本?)。这有助于查找其确切的 API 规范。在 pyVideoTrans 的 TTS 设置中,除了语音文件路径,是否还有其他可配置的字段(如“模型”、“参数”等)?如果有,请提供截图。

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Donate: https://ko-fi.com/jianchang512

Trending Questions