chatgpt-on-wechat
chatgpt-on-wechat copied to clipboard
百度TTS语音合成513错误代码
前置确认
- [X] 我确认我运行的是最新版本的代码,并且安装了所需的依赖,在FAQS中也未找到类似问题。
⚠️ 搜索issues中是否已存在类似问题
- [X] 我已经搜索过issues和disscussions,没有跟我遇到的问题相关的issue
操作系统类型?
Windows
运行的python版本是?
python 3.10
使用的chatgpt-on-wechat版本是?
Latest Release
运行的channel类型是?
wxy(个人微信, wechaty)
复现步骤 🕹
问一个比较长的回答的问题,比如说介绍下三体剧情。然后就会失败,返回{'cookie': '549501194_2000', 'err_detail': 'Invalid text length', 'err_msg': 'tex param err', 'err_no': 513, 'err_subcode': 234, 'tts_logid': 1888171743}。但是短文本不会有问题
问题描述 😯
我将待转换的文本打印了出来,日志如下
[INFO][2023-05-06 21:49:33][baidu_[voice.py:84](http://voice.py:84/)] - 被合成的文本=《三体》是刘慈欣的科幻小说,是中国近年来受欢迎的科幻小说之一,曾荣获雨果奖。
《三体》的故事主要围绕一个名为“三体”的外星文明展开,它们居住于一个蕴含三个恒星的行星系统中,常年受到从另一恒星系中发射的恒星光束以及混沌环境的影响,为了生存而不断进化。三体文明历经了多次灾难性的文明崩溃,一次发现地球之后,他们发动了一场推翻人类文明的战争。
小说第一部主要描述了以世界末日之夜(又称“红岸基事件”)为开始的故事。红岸基事件是一场怪异的学术研讨会,它的主题是“三体问 题”的解法。会议的参与者们各有不同的想法,有的认为解法在纯理论上就不可能存在,有的则认为应该从实践中寻找。
在这个过程中,人类与三体间的交流不断加深,并且三体文明对地球的侵略也日益临近。小说第二部主要描述了三体文明的来袭以及人类如何应对。在全世界政府和科技界的努力下,人类共同应对了三体文明的入侵,利用一种特殊的技术,人类成功进入了三体文明的行星系,并在那里发现了一个名为“黑暗森林”的宇宙规律。
小说第三部主要是对人类文明和三体文明之间的较量的终结。在第三部,三体文明与地球文明之间的较量进一步升级,两个文明之间的历史和复杂的关系得以揭示,最终达成了一个复杂的结局。
[ERROR][2023-05-06 21:49:33][baidu_[voice.py:93](http://voice.py:93/)] - [Baidu] textToVoice error={'cookie': '549501194_2000', 'err_detail': 'Invalid text length', 'err_msg': 'tex param err', 'err_no': 513, 'err_subcode': 234, 'tts_logid': 1888171743}
[INFO][2023-05-06 21:49:34][wechaty_[channel.py:75](http://channel.py:75/)] - [WX] sendMsg=Reply(type=ERROR, content=[ERROR]
开了工单询问百度的客服,他的回答是py sdk暂时不支持长文本合成,所以会失败

所以解决方案,要么是拆分处理,要么就用http接口
终端日志 📒
<此处粘贴终端日志>
当然 对于微信来说 语音长度最长60秒。我认为拆分处理好点,这样回答也能完整
https://ai.baidu.com/ai-doc/SPEECH/plbxhh4be
我还没申请baidu语音的api,一个思路是将文本分段得到语音后,再利用ffmpeg合成为一个长语音。 等我有空试一下。 个人微信wechaty实际是不检测语音长度的,itchat是上传文件,跟语音长度不沾边了。 企业微信应用号不支持发送60秒以上的长语音,在发送时会有一个分割逻辑,服务号也可以类似应用号一样的实现,不过我还没有加上去,等有空加一下。