指南

Google 表格转语音:把每一行变成 MP3

表格很适合存放大量短文本:商品名称、单词、通知、游戏或课程的台词。Google 表格本身不能朗读,但每个 Google 表格都内置的 Apps Script 可以调用语音合成 API,并把音频保存到 Google 云端硬盘。请注意:Supertonic 3 暂不支持中文,可朗读英语、日语、韩语等 31 种语言。

本指南介绍如何用 SuperClonica 语音合成 API 实现:一个简短的脚本朗读选中的行,保存 MP3,并把链接写在文本旁边。

需要准备什么

一个 Google 账户和一个 SuperClonica API 密钥。用 Google 或 GitHub 登录 SuperClonica,在工作区的语音 API 部分创建密钥;免费套餐每天 1 分钟音频,足够测试几行。

  • A 列放文本,脚本在 B 列写入音频文件的链接。
  • 在表格中打开“扩展程序”→“Apps Script”。
  • 在“项目设置”→“脚本属性”中添加 SUPERCLONICA_KEY 并填入密钥,避免把密钥写进代码。

脚本

把下面的函数粘贴到 Apps Script 编辑器并保存。它读取选中行的文本,发送到 API,把 MP3 保存到你的云端硬盘,并把文件链接写入 B 列:

function voiceRow() { const sheet = SpreadsheetApp.getActiveSheet(); const row = sheet.getActiveCell().getRow(); const text = sheet.getRange(row, 1).getValue(); const key = PropertiesService.getScriptProperties().getProperty("SUPERCLONICA_KEY"); const answer = UrlFetchApp.fetch("https://superclonica.com/api/v1/speech", { method: "post", contentType: "application/json", headers: { Authorization: "Bearer " + key, "Idempotency-Key": "row-" + row }, payload: JSON.stringify({ text: text, voice: "F1", language: "en", format: "mp3" }), muteHttpExceptions: true }); if (answer.getResponseCode() !== 200) throw new Error(answer.getContentText()); const file = DriveApp.createFile(answer.getBlob().setName("row-" + row + ".mp3")); sheet.getRange(row, 2).setValue(file.getUrl()); }

先在编辑器中运行一次,授权访问表格、云端硬盘和外部请求;之后选中一行并运行 voiceRow。Idempotency-Key 让同一行重复运行时只等待同一段音频,而不会朗读两次。

批量处理多行

要朗读整列,就循环遍历各行并跳过已有链接的行。Apps Script 每次运行有时间限制,所以每次处理几十行,其余的再运行一次。如果 API 返回 429,说明套餐的 10 分钟窗口已用完:Retry-After 头会告诉你多少秒后继续。在 SuperClonica 目录中挑选声音:付费套餐下,目录中的任何声音都可以通过其 ID 使用,ID 显示在声音页面的“通过 API 使用”中。

费用与隐私

免费套餐每天 1 分钟音频;5 美元的入门套餐每 10 分钟 3 分钟,不间断使用每月最多 216 小时。通过 API 时,文本发送到 SuperClonica 的服务器,音频保存到你的 Google 云端硬盘。必须留在电脑上的文本,请在本地运行免费的 SuperClonica 引擎。