Голоса и языки в TTS API: как выбрать и не переделывать


Если подключаете text to speech api для серии роликов, ошибка в выборе голоса быстро превращается в десятки повторных генераций. Один и тот же текст может звучать по-разному из-за темпа, ударений, чисел, сокращений и иностранных слов. Поэтому голос стоит выбирать не по одной красивой демофразе, а по заранее подготовленному набору проблемных предложений. Раздел API и выпуск ключа находятся в личном кабинете сервиса.

Для TTS у сервиса операция называется tts и стоит 18 ₽ за запуск, где запуск озвучки считается за 1000 знаков. Авторизация выполняется через заголовок Authorization: Bearer <ключ>, а сам ключ после выпуска показывается один раз. В этой статье разберём именно инженерную часть выбора: какие голоса синтеза речи сравнивать, какие фразы включить в тест и в какой момент проверять результат.

Как слушать голоса, чтобы выбрать один раз

Первое правило — сравнивать голоса на одинаковом тексте. Если один вариант вы слушаете на коротком рекламном предложении, а другой на длинном абзаце с числами, результат трудно интерпретировать. Сделайте один тестовый текст на 500–1000 знаков и меняйте только голос.

В тесте нужны как минимум пять типов фраз: обычная разговорная, длинное предложение, предложение с числами, предложение с иностранным названием и фраза с потенциально неоднозначным ударением. Отдельно полезно добавить строку со ссылкой, датой или сокращением, если именно такие данные есть в вашем контенте.

Не стоит выбирать голос только по признаку «мужской» или «женский». Пол здесь задаёт лишь одну характеристику. На практике важнее то, как голос произносит конкретный набор слов, насколько естественно выдерживает паузы и что происходит с числительными.

Удобно хранить тестовый текст в отдельном файле и прогонять его через каждого кандидата. Например, если у вас пять вариантов голоса, это не пять разных сценариев тестирования, а одна фиксированная выборка из пяти вариантов. После прослушивания можно отметить проблемы по категориям: числа, ударения, иностранные слова, темп и паузы.

Для предварительной проверки доступных операций можно сделать обычный запрос к API. Он не генерирует аудио, но позволяет проверить соединение с API и получить список операций и цен:

curl https://genius-bot.ru/wp-json/genius/v1/services \
  -H "Authorization: Bearer <ключ>"

Для автоматизированного тестового стенда тот же вызов можно сделать через Python. Это удобно, если список доступных операций и цены нужно получить перед запуском собственного пайплайна:

import requests

BASE_URL = "https://genius-bot.ru/wp-json/genius/v1"
API_KEY = "<ключ>"

response = requests.get(
    f"{BASE_URL}/services",
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=30,
)

response.raise_for_status()
print(response.json())

Параметры конкретного запуска /generate не стоит угадывать по аналогии с другими API: в предоставленной документации приведены маршрут и общая схема работы, но не перечислены поля тела запроса для TTS. Поэтому в собственном клиенте сначала зафиксируйте фактический формат операции, а уже затем автоматизируйте массовую генерацию.

У сервиса также есть GET /tasks/{id} для проверки состояния и результата задачи. Для длительных процессов можно передать необязательный callback_url: после готовности задачи на него приходит POST. Это позволяет не держать клиентский запрос открытым в ожидании результата.

Операция Цена Единица
Озвучка текста (tts) 18 ₽ 1000 знаков
Расшифровка записи (stt) 10 ₽ запуск
Звук из видео (ytaudio) 0 ₽ запуск
Говорящий аватар (avatar) 120 ₽ запуск

Цены приведены в рублях. Для TTS важно не перепутать единицу расчёта: 18 ₽ относятся к 1000 знакам, а не к одному отдельному аудиофайлу любого размера. При планировании теста поэтому полезно считать объём текста заранее.

Выбор голоса в TTS API: сравнение дорожек
Выбор голоса в TTS API: сравнение дорожек

Числа, даты и сокращения: где синтез спотыкается

Числа нужно тестировать отдельно от обычного текста. Строка «В 2026 году мы обработали 1250 заявок» содержит сразу несколько решений для синтезатора: как прочитать год, как произнести четырёхзначное число и как встроить числительное в предложение.

Добавьте в тест цены, проценты, номера, диапазоны и десятичные значения. Например: «Стоимость составила 18 ₽», «скидка — 15%», «версия 2.4», «с 10:30 до 12:00» и «1250 пользователей». Даже если ваш основной текст простой, такие значения часто появляются в технических статьях, презентациях и инструкциях.

Читать  Ключ к API нейросети: как не потерять его и деньги

Даты тоже лучше проверять в реальном контексте. Сравните «22 сентября 2026 года», «22.09.2026» и «сентябрь 2026». Для диктора дата должна звучать так, как ожидает слушатель, а не просто быть корректной в письменном виде.

Сокращения образуют отдельный класс проблем. В тексте могут встретиться API, TTS, HTTP, CPU, ₽, млн, тыс. и названия версий. Не предполагайте заранее, что буквенное сокращение будет произнесено именно так, как вы произносите его в команде или на встрече.

Если результат вас не устраивает, полезно сначала изменить входной текст, а не сразу менять голос. Например, сокращение можно раскрыть словами, а неоднозначное число записать так, как оно должно прозвучать. Такой подход делает текст более предсказуемым и одновременно показывает, действительно ли проблема находится в голосе.

Для массовой генерации имеет смысл сделать небольшой препроцессор. Он может проходить по исходному тексту и выделять даты, проценты, денежные значения, версии и известные сокращения. После этого вы вручную проверяете только преобразования, которые могут повлиять на смысл.

Иностранные слова в русском тексте

Русский текст с английскими названиями нельзя оценивать только на русских предложениях. Название продукта, фамилия, термин или команда могут произноситься иначе, чем ожидает автор. Поэтому в тестовый набор стоит включить реальные иностранные слова из вашего будущего контента.

Сравните варианты вроде «API работает через HTTP», «Python requests используется для запроса» и «text to speech api». Здесь важно не только то, правильно ли распознано слово, но и насколько естественно оно встроено в русскую фразу.

Транслитерация может быть полезна, когда исходное написание даёт нежелательное произношение. Но её нельзя вводить механически: написание латиницей и написание русскими буквами меняют задачу для синтезатора. Если проект регулярно содержит англоязычные термины, протестируйте оба варианта на одном и том же голосе.

Особенно внимательно проверяйте имена собственные. Название компании, фамилия разработчика или географическое название могут встречаться в каждом выпуске, и ошибка в одном слове будет повторяться в сотнях файлов. Лучше добавить такие слова в постоянный регрессионный тест.

Если вам нужна многоязычная озвучка api, не переносите выводы о качестве одного языка на другой. Текст с русской грамматикой и английскими терминами — это отдельный сценарий от полностью английского или полностью русского текста. Для каждого реально используемого языка нужен хотя бы небольшой набор контрольных фраз.

Числа и сокращения при синтезе речи
Числа и сокращения при синтезе речи

Ударения и омографы: замок или замок

Одна из самых неприятных ошибок TTS — слово написано правильно, но произнесено с неподходящим ударением. Классический пример — «замок»: в зависимости от значения ударение меняется. В статье про архитектуру и в статье про безопасность одно и то же написание может требовать разного произношения.

В тесте используйте не отдельное слово, а полное предложение. «Мы посетили старинный замок» и «дверной замок заклинило» дают синтезатору больше контекста, чем одиночное «замок». Это также позволяет услышать, не ломается ли интонация вокруг спорного слова.

Составьте собственный список омографов из предметной области проекта. Для новостей это будет один набор, для финансового текста — другой, для технической документации — третий. Не нужно собирать сотни слов: начните с тех, которые действительно встречаются в ваших данных.

Полезно также проверять профессиональные термины. В техническом тексте слово может быть привычным для разработчика, но иметь несколько вариантов произношения в русском языке. Если такое слово повторяется десять раз в одном выпуске, ошибка становится заметной гораздо быстрее, чем в демонстрационной фразе.

Именно здесь проявляется разница между разовой демонстрацией и production-тестом. В демо вы проверяете, приятен ли голос. В production-тесте вы проверяете, произносит ли он ваши данные так, как требуется продукту.

Скорость речи и паузы: что менять, а что оставить

Скорость лучше оценивать после выбора нескольких подходящих голосов. Если менять одновременно голос, текст и темп, становится трудно понять, какая настройка дала улучшение. Сначала найдите вариант, который корректно произносит проблемные слова, а затем занимайтесь ритмом.

Читать  Suno API: как подключить генерацию музыки к своему коду

Для сравнения возьмите один абзац примерно на 500 знаков. Послушайте его в обычном режиме, затем на более медленном и более быстром темпе, если соответствующие настройки предусмотрены вашим конкретным интерфейсом или клиентом. Оценивайте не только длительность, но и то, не исчезают ли смысловые паузы.

Пауза после заголовка, перед перечислением или после вводной части может быть важнее небольшой разницы в общей скорости. При этом не стоит добавлять паузы в каждое предложение: речь быстро превращается в механическое чтение.

Если исходный текст перегружен длинными конструкциями, иногда лучше разделить предложение, чем пытаться исправить ритм настройками голоса. Например, два коротких предложения обычно проще контролировать, чем одну строку на несколько смысловых частей.

Для технических материалов полезно отдельно проверить кодовые фрагменты, пути, версии и команды. Их лучше не смешивать с обычной прозой без проверки: визуально короткая строка может иметь совершенно другую структуру при озвучивании.

Не забывайте и о стоимости тестов. У TTS цена составляет 18 ₽ за 1000 знаков, поэтому набор на 1000 знаков, прогнанный через пять кандидатов, означает примерно 90 ₽ расхода на пять запусков при условии, что каждый запуск содержит по 1000 знаков. Такой маленький тест дешевле, чем переделывать большой пакет уже после публикационной проверки.

Тестовый набор фраз для проверки голоса
Тестовый набор фраз для проверки голоса

Тестовый набор фраз, который стоит прогнать заранее

Минимальный набор можно собрать из 10–15 строк. Главное — не количество, а покрытие реальных случаев. Для каждого нового проекта я бы разделил тест на блоки и сохранял исходный текст без изменений между итерациями.

Тест Что проверяем Пример
Обычная фраза Базовый тембр и естественность «Сегодня разберём основные настройки API.»
Числа Чтение количественных значений «Мы получили 1250 запросов за день.»
Дата Чтение даты «Релиз запланирован на 22 сентября 2026 года.»
Сокращения Произношение аббревиатур «TTS API работает через HTTP.»
Иностранные слова Смешанный русский и английский текст «Для Python используется отдельный клиент.»
Транслитерация Альтернативное написание термина «Термин записан в русской транслитерации.»
Омограф Ударение по контексту «Мы посетили старинный замок.»
Длинное предложение Паузы и дыхание фразы «После проверки данных, настройки параметров и повторного запуска мы сравнили результаты.»
Перечисление Ритм списка «Проверяем голос, темп, числа, даты и термины.»
Денежное значение Чтение цены «Озвучка текста стоит 18 ₽ за 1000 знаков.»

После первого прогона не меняйте всё сразу. Запишите проблемы в виде коротких наблюдений: «число 1250 звучит неестественно», «название произносится с неправильным ударением», «после запятой слишком длинная пауза». Затем исправляйте один класс проблем и запускайте тот же тест повторно.

Хорошая проверка голоса заканчивается не субъективным «этот нравится больше», а конкретным списком условий. Например: все контрольные числа понятны, два ключевых термина произносятся корректно, темп подходит для длинного абзаца, а иностранное название не требует ручной перезаписи.

Для русского контента отдельное внимание стоит уделить тому, что можно назвать «русский голос tts» в практическом смысле: насколько естественно голос работает именно с русской морфологией, окончаниями, именами и числами. Не переносите оценку из одной короткой фразы на весь проект.

После утверждения тестового набора его можно использовать как регрессионный тест. Если в дальнейшем меняется голос, версия клиента или структура генерации, сначала прогоняйте контрольные строки, а уже потом запускайте сотни рабочих файлов.

Для API-пайплайна это особенно важно ещё и из-за ограничения частоты: на один ключ допускается не больше 60 запросов в минуту. Если массовая генерация разбивается на множество задач, учитывайте этот предел в очереди и не отправляйте все запросы одновременно.

Сервис работает без абонентской платы и минимального платежа: оплата идёт за запуск. При выпуске первого ключа на баланс начисляется 50 ₽ для пробы, поэтому небольшой тестовый набор можно заложить до массового запуска и сначала проверить реальные проблемные места текста.

Частые вопросы

Сколько знаков нужно для первого теста голоса?

Для первичной проверки достаточно набора примерно на 500–1000 знаков, если в него входят числа, даты, сокращения, иностранные слова и хотя бы один омограф. Важнее разнообразие случаев, чем большой объём текста.

Читать  Аудиоверсия статей и рассылок: TTS API в контент-проекте

Нужно ли тестировать мужской и женский голос отдельно?

Да, если в проекте рассматриваются оба варианта. Сравнивайте их на одном и том же тексте и оценивайте не только тембр, но и произношение чисел, терминов, имён и других характерных для проекта конструкций.

Что делать, если иностранное слово произносится неправильно?

Сначала проверьте разные варианты написания исходного текста, включая транслитерацию, если она подходит по смыслу. После этого повторите тот же тест на другом голосе и сохраните вариант, который соответствует требованиям проекта.

Можно ли сразу запускать большой пакет файлов?

Технически сначала лучше провести небольшой регрессионный тест на фиксированном наборе фраз. Для массовой обработки также нужно учитывать лимит не более 60 запросов в минуту на один ключ.

Как проверить состояние задачи после запуска?

Для этого предусмотрен маршрут GET /tasks/{id}. В качестве альтернативы можно передать необязательный callback_url, чтобы получить POST после готовности задачи.

Где взять ключ для API?

После входа ключ выдаётся в разделе API в личном кабинете. Ключ показывается один раз, поэтому его следует сохранить сразу после выпуска.

API для разработчиковОзвучка, музыка, видео и картинки одним ключом. Пробный баланс при выпуске.
Получить ключ