1. Обзор речевых моделей
1.1. Введение в TTS и STT модели от OpenAI
Модель текст в речь (TTS)
Модель TTS от OpenAI может преобразовывать текстовые данные в речевой вывод. В этом процессе происходит анализ текста, применение алгоритмов синтеза речи и настройка качества звука. Она позволяет компьютеру читать любой письменный текст, делая контент более понятным и доступным. TTS является важной технологией для людей с ограниченными возможностями зрения, водителей или любых других пользователей, предпочитающих получать информацию через прослушивание.
Модель речь в текст (STT)
В связи с TTS, модель STT может преобразовывать речевую информацию в письменный текст. При обработке оригинального аудиовхода система STT сначала выполняет обнаружение речи, а затем извлечение признаков. Затем происходит сопоставление аудиосигнала с словарем с использованием акустических и языковых моделей, в конечном итоге формируя текстовый вывод. Технология STT широко используется в распознавании речи, транскрипции встреч, а также в реальном времени для создания заголовков.
1.2. Cферы применения
- Озвучивание блогов
- Мультиязычное речевое воспроизведение
3. API Текст в Речь
3.1. Быстрый старт
В этом разделе мы продемонстрируем, как быстро преобразовать текст в речь с помощью команды curl и клиентской библиотеки Python. Независимо от того, являетесь ли вы разработчиком или непрофессиональным пользователем, вы можете легко создавать речевые файлы, просто отправляя запрос API.
Отправка запросов с помощью Curl
Для генерации речи с помощью командной строки curl, выполните следующие шаги:
- Убедитесь, что curl установлен в вашей системе и у вас есть действительный ключ API OpenAI.
- Используйте следующую команду curl для преобразования текста в речь:
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "Сегодня отличный день для создания продуктов, которые любят люди!",
"voice": "alloy"
}' \
--output speech.mp3
В вышеуказанной команде $OPENAI_API_KEY
представляет ваш ключ API, поле input
- это текст, который вы хотите преобразовать, поле model
указывает модель голоса для использования, и параметр voice
выбирает голос. Здесь мы выбираем синтетический металлический голос alloy
. Последний параметр --output
указывает имя и формат выходного файла.
Использование Python Client
Если вы предпочитаете использовать язык программирования Python, вы можете использовать следующий пример кода:
from openai import OpenAI
client = OpenAI()
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="Сегодня отличный день для создания продуктов, которые любят люди!"
)
response.stream_to_file("output.mp3")
В этом фрагменте кода мы сначала импортируем библиотеку openai
и создаем экземпляр клиента OpenAI. Затем мы используем метод audio.speech.create
для отправки запроса, указывая модель, голос и текст для преобразования. Наконец, мы используем метод stream_to_file
для сохранения сгенерированного потока речи в файл.
3.2. Выбор качества звука и голоса
Выбор правильного качества звука и голоса для вашего проекта - это ключевой шаг для обеспечения наилучшего пользовательского опыта. Наше API предлагает два варианта моделей качества звука: tts-1
и tts-1-hd
.
-
tts-1
: Обеспечивает более низкую задержку, подходит для приложений в реальном времени, но с относительно более низким качеством звука. -
tts-1-hd
: Предоставляет более высокое качество аудиовывода, подходит для не в реальном времени требований к генерации речи высокого качества.
Кроме того, API TTS от OpenAI предлагает различные варианты голоса:
- Alloy
- Echo
- Fable
- Onyx
- Nova
- Shimmer
В зависимости от требований проекта и целевой аудитории вы можете тестировать различные образцы голоса, чтобы выбрать наиболее подходящий. Учтите факторы, такие как стиль речи, темп речи и интонация, чтобы найти голос, который передает соответствующие эмоции и профессионализм.
3.3. Поддерживаемые форматы вывода и языки
API TTS от OpenAI по умолчанию использует формат вывода MP3, но также поддерживает различные другие аудиоформаты:
- Opus: Подходит для потокового вещания в Интернете и коммуникаций с низкой задержкой.
- AAC: Используется для цифровой аудиокомпрессии, предпочтительный для таких платформ, как YouTube, Android и iOS.
- FLAC: Беспроигрышный формат сжатия аудио, используемый аудиофилами для архивирования.
В плане поддержки языков API в основном следует модели Whisper, предоставляя широкий спектр языковых опций для поддержки многих национальных языков.
3.4. Функциональность потоковой передачи аудио в реальном времени
Для удовлетворения потребностей реального времени наше API предоставляет поддержку потоковой передачи аудио в реальном времени. Ниже приведен пример использования Python для реализации потоковой передачи аудио в реальном времени:
from openai import OpenAI
client = OpenAI()
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="Привет, мир! Это тест потоковой передачи.",
)
response.stream_to_file("output.mp3")
4. API распознавания речи в текст
4.1. Быстрый старт
В данном разделе в основном мы расскажем о функциональности API OpenAI для распознавания речи в текст.
Во-первых, вам необходимо иметь действующий ключ API OpenAI и подготовить аудиофайл.
Чтобы отправить POST-запрос, содержащий аудиофайл, используйте команду curl
. Замените OPENAI_API_KEY
на свой ключ API и укажите правильный путь к файлу.
curl --request POST \
--url https://api.openai.com/v1/audio/transcriptions \
--header 'Authorization: Bearer OPENAI_API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form file=@/path/to/your/audio/file.mp3 \
--form model=whisper-1
После выполнения указанной выше команды вы получите ответ в формате JSON, содержащий информацию о транскрибированном тексте.
Например:
{
"text": "Представьте себе самую дикий идею, которую вы когда-либо представляли, и вас интересует, как она может масштабироваться до чего-то в 100, а иногда и в 1000 раз большего..."
}
4.2. Поддерживаемые форматы и размеры файлов
Этот API поддерживает различные распространенные форматы аудиофайлов, чтобы удовлетворить различные потребности в различных сценариях. Поддерживаемые форматы файлов включают, но не ограничиваются: mp3
, mp4
, mpeg
, mpga
, m4a
, wav
, webm
и др. Это позволяет пользователям легко обрабатывать аудиофайлы из различных источников.
Что касается размера файла, у текущего API есть ограничение в 25 МБ. Это означает, что если ваш аудиофайл больше 25 МБ, вам нужно разделить его на несколько сегментов размером менее 25 МБ или использовать более эффективный формат сжатия. Например, форматы mp3
и opus
обычно обеспечивают эффективное сжатие, уменьшая размер файла без слишком большой потери качества звука.
Если вам попадется файл большего размера 25 МБ, вы можете рассмотреть использование библиотеки PyDub
в Python для разбиения вашего аудио:
from pydub import AudioSegment
audio_file = AudioSegment.from_file("your_large_audio_file.mp3")
interval = 10 * 60 * 1000 # 10 минут
chunks = make_chunks(audio_file, interval)
for i, chunk in enumerate(chunks):
chunk_name = f"audio_chunk{i}.mp3"
chunk.export(chunk_name, format="mp3")
В приведенном выше коде функция make_chunks
разобъет большой аудиофайл на несколько аудиосегментов с интервалом в 10 минут. Эти сегменты все соответствуют ограничению размера файла, требуемому API, и могут быть загружены отдельно в API OpenAI для транскрибирования.
Пожалуйста, обратите внимание, что хотя PyDub
предоставляет нам удобный способ обработки аудиофайлов, все же рекомендуется уделить особое внимание безопасности и стабильности любого стороннего программного обеспечения при его использовании. OpenAI не предоставляет никаких гарантий для сторонних программных продуктов.