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, выполните следующие шаги:

  1. Убедитесь, что curl установлен в вашей системе и у вас есть действительный ключ API OpenAI.
  2. Используйте следующую команду 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 не предоставляет никаких гарантий для сторонних программных продуктов.