yy4382 / tts-importer

轻松将 Azure TTS 语音合成服务导入阅读软件。现支持阅读(legado)、爱阅记、源阅读。
https://tts-importer.yfi.moe
MIT License
45 stars 10 forks source link

关于azure用量请教 #20

Closed simonheard closed 3 months ago

simonheard commented 3 months ago

虽然和这个项目本身不相关,但是想向懂行的大佬们请教下 azure每个月免费的只有500k 字符用量,用legado听书我45分钟就用了近70k,这是正常的吗。感觉一个月满打满算也免费听不了几个小时。是不是只能用edge tts去了

simonheard commented 3 months ago

没事了 去大佬博客的教程看了下 原来可以换区开多个服务

yy4382 commented 3 months ago

我用着没那么大的用量啊。 提示:可能是 xml 中的控制字符占了大头。如果声音风格之类的都用上的话,会增加很多控制字符(这些也占字符数),一个比较好的办法是指定每次请求合成的多一点(不清楚legado支不支持指定每次合成的长度),如果每次只合成几个字的话,有可能最后token都用在控制字符上了。

如:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN"><voice name="zh-CN-YunxiNeural">帮忙点个 Star 吧</voice></speak>

用了这么多字符,只合成了几个字。如果开了声音风格、pitch之类的话,控制字符会更多:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN"><voice name="zh-CN-YunxiNeural"><prosody pitch="x-low"><mstts:express-as style="narration-relaxed">帮忙点个 Star 吧</mstts:express-as></prosody></voice></speak>

而 legado 的语速控制是放进请求里的,也就是无论如何都会有 prosody 这个 xml 标签在,所以会比较耗 token

至于换区开服务,我实际上没有真的撞过500k的墙,是不是真的有用我也不清楚

simonheard commented 3 months ago

原来如此,确实没想过会是表头的问题。legado具体怎么分段的不是很清楚,不过应该一段确实不长。。语速太快的时候我撞过每分钟20条request的墙😂 换区我还得再测试一下,找了半天官网也没翻到哪个doc说了能不能 (copilot说能,姑且信他一下)