南平市网站建设_网站建设公司_交互流畅度_seo优化
2026/3/2 18:03:04 网站建设 项目流程

不会写JSONL?GLM-TTS批量任务模板送给你

1. 引言:让语音合成更高效

你是不是也遇到过这样的情况:需要为一段课程内容生成几十条语音,或者要给电商商品描述配上统一风格的配音?如果每次都手动输入文本、上传音频、点击合成,那可太费时间了。

好消息是,GLM-TTS这款由智谱开源、科哥二次开发的AI文本转语音模型,支持批量推理功能,能帮你一口气搞定上百个语音任务。它不仅支持普通话和英文,还能克隆方言、控制情感表达,甚至精细到音素级别调整发音。

但很多用户卡在了一个看似简单的问题上——不会写 JSONL 格式的任务文件

别担心,这篇文章就是为你准备的。我会手把手教你如何正确编写批量任务所需的 JSONL 文件,并提供可以直接使用的模板,让你轻松上手 GLM-TTS 批量语音合成。


2. 什么是 JSONL?为什么用它做批量任务

2.1 JSONL 是什么

JSONL(JSON Lines)是一种特殊的 JSON 格式,它的特点是每一行都是一个独立的 JSON 对象,而不是把所有数据包在一个大数组里。

举个例子:

{"name": "张三", "age": 28} {"name": "李四", "age": 32} {"name": "王五", "age": 25}

每行是一个完整的对象,彼此之间没有逗号分隔,也不需要用方括号包裹。这种格式非常适合处理大量结构化数据,尤其是用于机器学习或自动化任务时。

2.2 为什么 GLM-TTS 用 JSONL

GLM-TTS 的批量推理模块采用 JSONL 格式来读取任务列表,主要原因有三个:

  • 逐行解析效率高:不需要一次性加载整个文件到内存,适合处理大文件。
  • 容错性强:某一行出错不会影响其他行的任务执行。
  • 易于生成:可以用脚本自动生成成百上千行任务,方便集成进工作流。

3. 批量任务字段详解

在使用 GLM-TTS 的批量推理功能前,你需要准备一个符合要求的 JSONL 文件。以下是每个字段的具体说明。

3.1 必填字段

字段名含义示例
prompt_audio参考音频的路径(必须存在)"examples/prompt/audio1.wav"
input_text要合成的文本内容"欢迎来到智能语音时代"

⚠️ 注意:prompt_audio是必填项,系统将根据这段音频克隆音色。路径必须是镜像环境中真实存在的文件路径。

3.2 可选字段

字段名含义示例作用
prompt_text参考音频对应的原文"你好,我是小科"提高音色还原度
output_name输出文件名(不含扩展名)"intro_001"自定义命名,避免默认时间戳

3.3 完整示例

{"prompt_text": "你好,我是客服小美", "prompt_audio": "voices/xiaomei.wav", "input_text": "感谢您的来电,我们将尽快为您处理。", "output_name": "customer_service_01"} {"prompt_text": "大家好,我是主播老李", "prompt_audio": "voices/lao_li.wav", "input_text": "今天给大家推荐一款超值好物!", "output_name": "live_broadcast_01"} {"prompt_audio": "voices/fangyan.wav", "input_text": "这个东西巴适得板!", "output_name": "dialect_promo"}

✅ 小贴士:如果你没有prompt_text,可以省略该字段,只保留prompt_audioinput_text即可。


4. 实战操作:从零创建你的第一个批量任务

4.1 准备工作

  1. 登录 CSDN 星图平台并启动GLM-TTS 智谱开源的AI文本转语音模型镜像。
  2. 等待环境就绪后,通过浏览器访问 WebUI(通常是http://localhost:7860)。
  3. 在服务器中创建以下目录结构:
@inputs/ └── prompts/ ├── xiaomei.wav ├── lao_li.wav └── fangyan.wav @tasks/ └── batch_task.jsonl

你可以通过 SFTP 或 Web 终端上传自己的参考音频。

4.2 编写 JSONL 任务文件

打开/@tasks/batch_task.jsonl,输入以下内容:

{"prompt_text": "你好,我是客服小美", "prompt_audio": "@inputs/prompts/xiaomei.wav", "input_text": "订单已发货,请注意查收。", "output_name": "notice_001"} {"prompt_text": "你好,我是客服小美", "prompt_audio": "@inputs/prompts/xiaomei.wav", "input_text": "您的快递正在派送中。", "output_name": "notice_002"} {"prompt_text": "大家好,我是主播老李", "prompt_audio": "@inputs/prompts/lao_li.wav", "input_text": "这款产品销量突破十万台!", "output_name": "promo_001"} {"prompt_audio": "@inputs/prompts/fangyan.wav", "input_text": "不摆了,真的太安逸了!", "output_name": "sichuan_dialect"}

🔍 说明:

  • 使用@inputs/prompts/路径确保音频可被正确读取。
  • 同一个音色可以复用多次,只需重复写入相同prompt_audio路径。

4.3 开始批量合成

  1. 切换到 WebUI 的「批量推理」标签页。
  2. 点击「上传 JSONL 文件」按钮,选择你刚创建的batch_task.jsonl
  3. 设置参数:
    • 采样率:24000(速度快)
    • 随机种子:42(保证结果可复现)
    • 输出目录:@outputs/batch
  4. 点击「🚀 开始批量合成」。

等待几分钟后,系统会自动完成所有任务,并打包生成 ZIP 文件供下载。


5. 常见问题与避坑指南

5.1 文件格式错误导致失败

❌ 错误写法一:用了标准 JSON 数组

[ {"prompt_audio": "...", "input_text": "..."}, {"prompt_audio": "...", "input_text": "..."} ]

✅ 正确做法:每行独立,不加中括号和逗号

{"prompt_audio": "...", "input_text": "..."} {"prompt_audio": "...", "input_text": "..."}

5.2 路径问题导致找不到音频

常见错误提示:File not found: examples/audio.wav

原因可能是:

  • 路径拼写错误
  • 文件未上传到位
  • 使用了相对路径如./audio.wav,但当前工作目录不是预期位置

✅ 解决方案:

  • 使用绝对路径或带@inputs/的明确路径
  • 在终端用ls @inputs/prompts/检查文件是否存在

5.3 中文乱码或特殊字符问题

如果文本中含有引号、换行符等特殊字符,记得进行转义:

{"prompt_audio": "voice.wav", "input_text": "他说:\"这简直太棒了!\""}

或者使用 Python 脚本生成,避免手动编辑出错。


6. 高效技巧:用 Python 自动生成 JSONL

当你需要处理上百条任务时,手动写 JSONL 显然不现实。下面是一个简单的 Python 脚本,帮助你从 CSV 表格自动生成 JSONL 文件。

假设你有一个tasks.csv文件:

speaker,text,output_name xiaomei,欢迎光临我们的店铺,welcome xiaomei,本次消费共计99元,payment lao_li,点击下方链接立即购买,buy_now

运行以下脚本:

import csv import json audio_map = { 'xiaomei': '@inputs/prompts/xiaomei.wav', 'lao_li': '@inputs/prompts/lao_li.wav' } with open('tasks.csv', encoding='utf-8') as f_in, open('@tasks/auto_task.jsonl', 'w', encoding='utf-8') as f_out: reader = csv.DictReader(f_in) for row in reader: task = { "prompt_audio": audio_map[row['speaker']], "input_text": row['text'], "output_name": row['output_name'] } f_out.write(json.dumps(task, ensure_ascii=False) + '\n')

运行后就会生成标准格式的auto_task.jsonl,直接上传即可使用。


7. 总结:掌握批量任务,提升语音生产效率

通过本文,你应该已经掌握了以下几个关键点:

  1. JSONL 是什么:一种按行存储 JSON 对象的轻量级数据格式,适合批量任务。
  2. GLM-TTS 批量任务字段规则prompt_audioinput_text是核心,prompt_textoutput_name是加分项。
  3. 实际操作流程:准备音频 → 编写 JSONL → 上传 → 合成 → 下载结果。
  4. 避坑要点:不要用数组格式、注意路径正确性、处理好特殊字符。
  5. 进阶方法:用脚本自动化生成任务文件,大幅提升效率。

现在你再也不用担心“不会写 JSONL”这个问题了。只要按照模板填写,哪怕完全不懂编程,也能轻松完成大批量语音合成任务。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询