可以试试的想法
จะเดินเข้าไปถามเขาตรง ๆ หรือจะรอดูเงียบ ๆ อยู่ตรงนี้ก่อนดี
เธอเลือกจะเดินเข้าไป และนั่นคือจุดที่ทุกอย่างเปลี่ยนไปตลอดกาล
ไม่ต้องมาทำเป็นห่วงตอนนี้หรอก ตอนที่ฉันต้องการเธอ เธออยู่ไหน
ถ้าวันนั้นเธอเลือกอีกทาง เรื่องทั้งหมดนี้คงไม่มีวันเกิดขึ้นเลย
每张卡片播放的都是 Nom Yen 按卡片脚本原文生成的真实音频。在语音页面打开后,可以让它说任何内容。
分支章节如何配音
分支故事是唯一一种在读者行动之前无法知道下一句的小说。Joylada 把泰语小说做成逐条点击阅读的聊天形式,基于 Ren'Py 等引擎的视觉小说则按说话人逐行写对白,在场景之间插入选项。两种形式都让工作室面对同一个选择。预先生成整棵树,每个分支都是现成的文件,在任何人打开应用之前就已就绪,无论有没有读者走到那里,费用都已付出。运行时朗读,则只为读者实际走过的路线付费,代价是阅读期间要一直保持一个连接。哪种更便宜,取决于普通读者会看到树的多大部分,下表用实际数字把两种方式都算了出来。
把树展开成片段
每个节点变成一段带说话人和音色 ID 的语音片段。不超过 5,000 个字符的片段是一个请求,更长的片段在句子边界处拆分。
按场景选择预先生成或实时朗读
每位读者都会看到的序章值得生成一次,冷门分支则值得按需朗读。这个选择按场景来定,上线后也能更改,无需改动脚本。
缓存读者已经听过的内容
运行时朗读的台词就是普通 MP3。保存下来后,重玩的路线会命中缓存,同一路线第二次重读不再花钱。
预先生成整棵树,还是实时朗读路线
| 交付方式 | 字符 | 积分 | 费用 |
|---|---|---|---|
| 一位读者的路线,120 句 | 10,800 | 108 | $0.11 |
| 10,000 位读者,运行时朗读 | 108,000,000 | 1,080,000 | $1,080 |
| 整棵树配音一次,供今后所有读者使用 | 约 $1.44 | ||
按每 1,000 字符 10 积分、每句 90 个字符计算。预先生成为全部读者一次付清,运行时朗读按每位读者付费。两者的平衡点大约在 13 位读者。
一章,四个结局
scene_07a ณิชา nomyen 96 chars scene_07a ธาวิน massaman 82 chars choice_1 -> scene_07b choice_2 -> scene_07c scene_07b ณิชา nomyen 88 chars [pre-rendered] scene_07c ณิชา nomyen 94 chars [pre-rendered] scene_07c คุณยาย miangkham 90 chars [pre-rendered] # 4 个分支 x 约 400 句 = 上面这棵树 # 一位读者听到其中约 120 句
树是工作室做预算的单位,路线是读者听到的单位。两种方式都是每个说话人对应一个音色 ID。
从上线到稳定
序章已生成
每位读者都会读到序章。它只配音一次,以文件形式提供。这一部分没有任何需要在运行时决定的事。
冷门分支实时朗读
几乎没人走到的深层路线不预先生成,真走到那里的读者会通过实时连接听到朗读。被跳过的台词收到取消指令后停止,队列中剩余的部分不收费。
热门路线进入缓存
实时朗读过一次的台词就是一个普通 MP3。把读者实际走到的台词保存下来,树的大部分就变成了文件,从头到尾都不用专门决定去生成它。
整棵树不再产生费用
读者走过的部分都已配音,重读就是命中缓存。只有在您写下一章时,才会开始新的支出。
一个打开的实时连接占用套餐的一个语音并发名额。运行时方案按同时在线的读者数确定规模,每天的台词数量不计入其中。
面向开发者
TypeScript 示例打开运行时会话使用的实时 socket,Python 快速入门像预生成批处理那样发送一个片段。选项请求展示了每个场景固定使用的音色、模型和格式。
完整 API 参考// Runs on Bun as-is; on Node, `import WebSocket from "ws"` accepts // the same constructor options. Browsers cannot send this header, and // API keys never ship to browsers anyway. const socket = new WebSocket("wss://api.paxalabs.com/v1/tts/live", { headers: { Authorization: `Bearer ${process.env.PAXA_API_KEY}` }, }); socket.binaryType = "arraybuffer"; socket.onopen = () => { socket.send(JSON.stringify({ type: "start", model: "paxa-tts-flash-v2", voice: "khanomkrok", timestamps: "word", })); // Send text whenever it becomes available, token by token if you like. socket.send(JSON.stringify({ type: "text", text: "สวัสดีครับ ยินดีต้อนรับสู่ Paxa Labs" })); socket.send(JSON.stringify({ type: "flush" })); socket.send(JSON.stringify({ type: "end" })); }; socket.onmessage = (event) => { if (typeof event.data === "string") { const message = JSON.parse(event.data); if (message.type === "done") socket.close(); return; } player.feed(new Uint8Array(event.data)); // binary frames are audio };
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)
curl -X POST https://api.paxalabs.com/v1/tts \ -H "Authorization: Bearer $PAXA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "text": "สวัสดีครับ ยินดีต้อนรับสู่ Paxa Labs", "voice": "khanomkrok", "model": "paxa-tts-flash-v2", "format": "mp3", "stream": false }' \ --output speech.mp3
试听音色
50 个正式音色中的几个,均通过 API 使用公开的音色 ID 生成。全部音色可在文本转语音页面试听。
- Hor Mok仅 v2在语音页面打开
- Khanom Krokv1 + v2男声主音色
- Nom Yenv1 + v2女声主音色
- Foi Thongv1 + v2旁白
短句本身就是难题
分支小说由碎片写成,可能是一行聊天、一句回嘴或一个选项标签。泰语词与词之间不加空格,四个词的片段几乎没有上下文可供分词。Paxa TTS Flash v2 根据拼写判断声调,不查词典,孤立的短句因此依然听得明白。
常见问题
应该预先生成整棵树,还是运行时朗读?
预先生成一次约 $1.44,覆盖全部读者。运行时朗读每位读者约 $0.11。读者少于约 13 位时,运行时朗读更便宜,超过这个数则预先生成更便宜。
每个角色可以用不同的音色吗?
可以,最多可用音色库全部 50 个音色。每个说话人的音色 ID 写在脚本里,同一个 ID 每次运行都返回同一个声音。
读者点击跳过一句台词时会怎样?
在实时 socket 上发送一个 cancel 帧。这句台词停止,队列中剩余的部分被丢弃且不收费,同一个连接继续承载下一句。
一位读者会占用多少套餐容量?
一个打开的实时连接在保持打开期间占用一个语音并发名额。运行时方案按同时在线的读者数确定规模,每天的台词数量不计入其中。
音频可以放进游戏里发布吗?
用免费积分生成的内容仅供个人使用和评估。购买套餐或积分后,生成的内容归您所有,可用于任何用途,包括放进商业作品中发布,购买之前生成的内容也一并适用。
从免费积分开始
使用 Google、GitHub 或 Hugging Face 登录,即可用 100 一次性免费积分处理您自己的文本。
相关阅读
- 2026 年泰语配音多少钱:录音棚、自由配音员与 AI
- 泰语 AI 配音怎么选:按用途挑选全部 34 个音色
- 如何为泰语 AI 配音撰写脚本
- 泰语没有句号:流式语音合成该在哪里断句
- 用十个句子评测一个泰语 AI 音色
- Paxa TTS Flash 开始说中文,并新增六个音色
- Paxa TTS Flash 新增两个能读情感标签的音色
- Paxa TTS Flash 在 104 毫秒内开始发声
- 文本转语音(TTS)是什么?AI 配音的原理与用途
- 如何为 TikTok、Reels 和 Shorts 添加 AI 配音
- 泰语文本转语音怎么选:应用、视频和电话线路
- YouTube AI 配音工具怎么选:解说旁白、无人出镜频道和 Shorts
- 免费文本转语音怎么选:个人项目与付费前试听音色
- 有声书和长篇朗读适合用哪款文本转语音工具
- 如何制作 AI 配音:从写稿到下载
- 用 AI 朗读小说:旁白音色与角色配音
- AI 音色设计怎么写描述:如何描述一个声音,附示例
- 音色设计与声音克隆:两种打造专属 AI 音色的方式
- 适合泰语音色、已保存音色和语音智能体的 AI 音色设计工具
- Paxa TTS Flash v2 文本转语音模型正式上线
- AI 音色设计现已上线
- Paxa TTS Flash v2 文本转语音新增 Temperature 与停顿标签