Озвучка Google Таблиц: каждая строка — в MP3
Таблица — удобное место для множества коротких текстов: названия товаров, слова для изучения, объявления, реплики для игры или курса. Сама Google Таблица их не озвучит, но Apps Script — встроенные в каждую таблицу скрипты — может вызвать API синтеза речи и сохранить звук в Google Диск.
В гайде — как это сделать с API озвучки SuperClonica: короткий скрипт озвучивает выбранную строку, сохраняет MP3 и пишет ссылку рядом с текстом.
Что понадобится
Аккаунт Google и ключ API SuperClonica. Войдите в SuperClonica через Google или GitHub и создайте ключ в разделе «API озвучки» рабочего пространства; бесплатный тариф даёт минуту звука в день — хватит, чтобы проверить несколько строк.
- В колонке 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: "ru", 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 — он показан на странице голоса в блоке «Через API».
Стоимость и приватность
Бесплатный тариф даёт минуту звука в день; «Старт» за $5 — 3 минуты каждые 10 минут, до 216 часов в месяц при работе без перерывов. Через API текст уходит на серверы SuperClonica, а звук — в ваш Google Диск. Для текстов, которые должны оставаться на компьютере, запускайте бесплатный движок SuperClonica локально.