Текст в речь
Узнайте, как преобразовать текст в реалистичное звучание.
Обзор
Аудио API предоставляет конечную точку speech
, основанную на нашей модели TTS (text-to-speech). Она включает 6 встроенных голосов и может использоваться для:
- Озвучивания написанного блога
- Генерации речи на нескольких языках
- Выдачи аудио в реальном времени с использованием потоковой передачи
Быстрый старт
Конечная точка speech
принимает три ключевых входных параметра: model, text, который должен быть преобразован в аудио, и voice для использования при генерации аудио.
Генерация озвучки из входного текста
Python:
from pathlib import Path
from openai import OpenAI
client = OpenAI(
api_key = '$ROCKAPI_API_KEY',
base_url = 'https://api.rockapi.ru/openai/v1'
)
speech_file_path = Path(__file__).parent / "speech.mp3"
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="Сегодня замечательный день, чтобы создать что-то, что люди полюбят!"
)
response.stream_to_file(speech_file_path)
По умолчанию конечная точка выводит MP3 файл с озвучкой, но ее можно настроить на вывод любого из наших поддерживаемых форматов.
Качество аудио
Для приложений в реальном времени стандартная модель tts-1
обеспечивает наименьшую задержку, но с более низким качеством по сравнению с моделью tts-1-hd
. Из-за особенностей генерации аудио, tts-1
может генерировать контент с более заметными шумами в некоторых ситуациях, чем tts-1-hd
. В некоторых случаях различия в аудио могут быть незаметны в зависимости от вашего устройства прослушивания и индивидуальных предпочтений.
Опции голосов
Экспериментируйте с различными голосами (alloy
, echo
, fable
, onyx
, nova
и shimmer
), чтобы найти тот, который соответствует вашему желаемому тону и аудитории. Текущие голоса оптимизированы для англий ского языка.
Потоковое аудио в реальном времени
API речи поддерживает потоковую передачу аудио в реальном времени, используя chunk transfer encoding. Это означает, что аудио можно воспроизвести до того, как весь файл будет сгенерирован и доступен.
from openai import OpenAI
client = OpenAI()
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="Привет, мир! Это тест потоковой передачи."
)
response.stream_to_file("output.mp3")
Поддерживаемые форматы вывода
По умолчанию формат ответа - "mp3", но доступны и другие форматы, такие как "opus", "aac", "flac" и "pcm".
- Opus: Для потоковой передачи и связи в интернете, низкая задержка.
- AAC: Для цифрового аудиосжатия, предпочтительно для YouTube, Android, iOS.
- FLAC: Для сжатия аудио без потерь, предпочитается аудиофилами для архивирования.
- WAV: Несжатый WAV аудио, подходит для приложений с низкой задержкой, чтобы избежать декодирования.
- PCM: Похож на WAV, но содержит сырые образцы с частотой 24 кГц (16-битный, младший байт первым), без заголовка.
Поддерживаемые языки
Модель TTS в целом следует модели Whisper по поддержке языков. Whisper поддерживает следующие языки и хорошо работает, несмотря на то, что текущие голоса оптимизированы для английского языка:
Африкаанс, арабский, армянский, азербайджанский, белорусский, боснийский, болгарский, каталанский, китайский, хорватский, чешский, датский, голландский, английский, эстонский, финский, французский, галисийский, немецкий, греческий, иврит, хинди, венгерский, исландский, индонезийский, итальянский, японский, каннада, казахский, корейский, латышский, литовский, македонский, малайский, маратхи, маори, непальский, норвежский, персидский, польский, португальский, румынский, русский, сербский, словацкий, словенский, испанский, суахили, шведский, тагальский, тамильский, тайский, турецкий, украинский, урду, вьетнамский и валлийский.
Вы можете генерировать озвучку на этих языках, предоставляя текст на выбранном языке.
FAQ
Как я могу контролировать эмоциональный диапазон сгенерированного аудио?
Нет прямого механизма для контроля эмоционального выхода сгенерированного аудио. Определенные факторы, такие как капитализация или грамматика, могут повлиять на выходное аудио, но наши внутренние тесты показали смешанные результаты.
Могу ли я создать копию своего голоса?
Нет, это не поддерживается.
Являюсь ли я владельцем сгенерированных аудиофайлов?
Да, как и с любыми выходными данными из нашего API, человек, который их создал, владеет ими. Однако вы обязаны информировать конечных пользователей о том, что они слышат аудио, сгенерированное ИИ, а не реального человека.