中文、英语和泰语的有声小说与网络连载

用中文、英语或泰语逐集为连载小说配音,每个角色用音色库里不同的音色,按本周发布章节的字符数计费。

可以试试的想法

旁白交代场景

ฝนตกตั้งแต่เช้า ถนนหน้าบ้านเงียบกว่าทุกวัน และเธอรู้ว่าเขาจะไม่มา

Nom Yenpaxa-tts-flash-v2在语音页面打开
主角开口

ผมรออยู่ตรงนี้มาสามปีแล้ว คุณจะให้ผมรออีกนานแค่ไหน

Nom Yenpaxa-tts-flash-v2在语音页面打开
争执的另一方

เธอไม่เคยถามฉันสักคำว่าฉันอยากได้อะไร แล้วตอนนี้จะมาถามทำไม

Nom Yenpaxa-tts-flash-v2在语音页面打开
一集结尾留悬念

ประตูเปิดออกช้า ๆ และคนที่ยืนอยู่ตรงนั้น คือคนที่ทุกคนเชื่อว่าตายไปแล้ว

Nom Yenpaxa-tts-flash-v2在语音页面打开

每张卡片播放的都是 Nom Yen 按卡片脚本原文生成的真实音频。在语音页面打开后,可以让它说任何内容。

一集如何变成音频

周一写完一章,周四发布,这就是网络连载的节奏。在泰国,Tunwalai、readAwrite 和 Fictionlog 都按集售卖连载小说。读者催有声版已经催了一年。您早就想过要做,卡住的是配音阵容要提前预约,而您的更新节奏等不起任何人。同时,作品本身大多是对白,两三个角色在页面上你来我往。一个朗读者包揽全部时,最难听清的正是这种内容。从音色库选角把两个问题一起解决了。每个角色固定一个音色 ID,一集就是一个批处理任务,写完一章的当周就能跑完。过去把更新留到晚上看的读者,现在可以在上班路上听。

来源:Tunwalai(在新标签页中打开)readAwrite(在新标签页中打开)Fictionlog(在新标签页中打开)

  1. 按说话人拆分章节

    旁白和每个角色的对白分成独立的片段。超过模型上限的片段,再在句子边界处拆开。

  2. 批量生成各片段

    每个片段一个请求,带上该角色的音色 ID。片段以 MP3 返回,按顺序拼成整集音轨。不超过 5,000 个字符的片段用一个请求就能完成。

  3. 先发布,再修补单句

    修正后的台词单独重新生成,替换进音轨。这一集的其余部分不受影响,这一季的其余各集也一样。

连载按集计价

连载按集计价
规模字符积分费用
一集 12 分钟3,08430.84$0.03
一季 20 集61,680616.8$0.62
一部 120 集的小说,全文配音约 $3.70

按每分钟中文语音 257 个字符、统一费率计算。选角决定哪个音色读哪一句,每一句的价格不变。

连载的一周

周一

写完一章

作者写完这一集,并标出每句话由谁说。流程需要的结构只有说话人标注。

周二

套用角色表

每个说话人对应系列文件里保存的一个音色 ID。旁白固定用一个音色,从不借用角色的音色。

周三

生成整集

每段话一个请求,作为批处理运行。十二分钟的一集要几百个请求,无人值守就能跑完。

周四

修改一句

改过的台词用同一个音色单独重新生成,只按改动的字符计费。

关键在于日程:需要预约的配音阵容跟不上每周更新,音色 ID 跟得上。

保存角色表的系列文件

series.json
{
  "title": "เงาในสายฝน",
  "narrator": "foithong",
  "cast": {
    "ณิชา":   "nomyen",
    "ธาวิน":  "massaman",
    "คุณยาย": "miangkham",
    "เด็กชาย": "lukchup"
  },
  "format": "mp3",
  "model": "paxa-tts-flash-v2"
}

五个音色 ID 和一个模型,与手稿放在一起提交。这里的内容都不会过期。第 120 集的选角方式与第 1 集相同。

面向开发者

Python 和 TypeScript 快速入门示例发送一个片段,并写出批处理收集的 MP3。选项请求展示一部连载在角色表文件中固定的 voice、model 和 format 字段。

完整 API 参考
import os
import requests

response = requests.post(
    "https://api.paxalabs.com/v1/tts",
    headers={"Authorization": f"Bearer {os.environ['PAXA_API_KEY']}"},
    json={"text": "สวัสดีครับ ยินดีต้อนรับสู่ Paxa Labs", "voice": "khanomkrok", "model": "paxa-tts-flash-v2"},
)
response.raise_for_status()

with open("speech.mp3", "wb") as f:
    f.write(response.content)

试听音色

50 个正式音色中的几个,均通过 API 使用公开的音色 ID 生成。全部音色可在文本转语音页面试听。

  • Espressov1 + v2在语音页面打开
  • Tao Huayv1 + v2剧情女主
  • Oolongv1 + v2有声小说
  • Khanom Krokv1 + v2男声主音色

对白是泰语小说的难点

泰语散文的词与词之间不留空格,小说对白要靠语气词和人称代词来表明谁在说话、双方是什么关系。Paxa TTS Flash v2 像识字的读者一样从拼写读出声调,并在整部连载中保持同一种演绎。角色表因此从第一集到最后一集都能让人认出来。

常见问题

一部小说能用多少个音色?

音色库的 50 个音色都能用,故事需要多少就用多少。角色表就是说话人名字到音色 ID 的映射。第 40 集加一个角色,就是在这个文件里加一行。

角色整季都保持同一个声音吗?

是的。音色是固定的 ID,同一个 ID 在最后一集和第一集返回的是同一个声音。多次运行之间不会有任何漂移。

一集要花多少钱?

12 分钟的成品音频约 $0.03,按章节的字符数计费。修补的台词也按同样方式计费,只算改动的字符。

能读泰英混合的章节吗?

可以,而且用同一个音色。泰语句子里的英文名字或短语,仍由同一个说话人的语气读出。

可以发布并出售这些音频吗?

用免费积分生成的内容仅供个人使用和评估。购买套餐或积分后,生成的内容归您所有,可用于任何用途,包括商业出版,购买前生成的内容也包括在内。故事本身的版权仍需您自行处理。

从免费积分开始

使用 Google、GitHub 或 Hugging Face 登录,即可用 100 一次性免费积分处理您自己的文本。