Fish Audio: Transcribe 1
Transcribe 1 преобразует короткие аудиозаписи в текст с автоматическим определением языка и необязательными временными метками слов. Используйте расшифровку для голосовых заметок, поиска по клипам или подготовки субтитров, сохраняя сегменты с временными метками отдельно от полного читаемого текста.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
Transcribe 1 — универсальная модель Fish Audio для распознавания речи в коротких записях. Она принимает аудиофайл и возвращает распознанные слова в виде текста, продолжительность записи, необязательные сегменты с временными метками и сведения о языке, когда он известен. Модель полезна для короткой голосовой заметки, устной инструкции, фрагмента записи или аудиоклипа, который нужно представить в читаемом текстовом виде.
В примере работы с голосовой заметкой запись сохраняют вместе с полной расшифровкой и идентификатором исходного клипа. На следующем шаге приложение может искать по этому тексту, упорядочить заметку или подготовить краткое изложение, сохранив речевой источник. Для команды расшифровка передаёт приложению распознанные слова; любое действие требует отдельной интерпретации и выполнения. Для отрывка интервью фиксируйте положение клипа в полной аудиозаписи, чтобы цитату можно было проверить в нужном месте.
Производитель принимает WAV, MP3, AAC, включая M4A/MP4, FLAC и Ogg с Opus или Vorbis. Записи браузера в WebM для этой модели следует преобразовать в Ogg/Opus, MP3 или WAV; у Pro документирована встроенная поддержка дополнительных контейнеров. Передавайте один аудиофайл на запрос. Документированный лимит запроса базовой модели — до 50 MiB, причём файлы MP3 и Opus должны быть меньше 25 MiB. Размер файла и длительность записи — разные характеристики: сжатый файл может укладываться в лимит загрузки, но обрабатываться слишком долго.
Transcribe 1 предназначена для коротких записей. Для аудио длиннее нескольких минут производитель рекомендует Pro; длинный запрос к базовой модели может завершиться ошибкой при превышении лимита времени обработки. Если длинный источник разбивается на короткие клипы для расшифровки, сохраняйте начальное смещение каждого клипа и перед объединением результатов проверяйте, что расшифровка покрывает его целиком. Прибавляйте исходное смещение к локальным временным меткам сегментов, чтобы навигация оставалась связана с полной записью. Рекомендации для базовой модели не следует трактовать как отдельный 60-минутный лимит Pro.
Ответ производителя включает текст, длительность и сегменты. Длительность выражается в секундах, а полный читаемый текст следует сохранять как основную словесную версию клипа. Временные метки необязательны: в API производителя ignore_timestamps по умолчанию равен true, а false запрашивает сегменты на уровне слов с текстом, временем начала и окончания в секундах. Запрос временного выравнивания увеличивает время обработки. Пустой массив segments может означать, что временная разметка пропущена, речи нет или выравнивание временно недоступно; поэтому его нельзя автоматически считать признаком пустой полной расшифровки.
Сегментами обычно служат слова, а для китайского и японского — один или несколько символов. Их текст не содержит пунктуации и может нормализовать значение иначе, чем полный текст; это не посимвольная копия читаемого ответа. Время начала и окончания сегмента может совпадать. Используйте сегменты для поиска позиции в записи или подготовки показа по времени, а полный текст — когда важны формулировки и пунктуация. Сохраняйте эти два представления раздельно в итоговом материале.
Язык определяется автоматически независимо от наличия необязательной языковой подсказки. Для подсказок производитель документирует коды ISO 639-1 в нижнем регистре; в ответе возвращается код языка для логики приложения и, когда известно, название языка для отображения. Ответ сообщает один язык, а не все языки записи с переключением между ними. Сохраняйте исходные формулировки и доступные языковые метаданные вместе с результатом, не рассматривая запрос распознавания как перевод.
Для субтитров объединяйте последовательные сегменты с временными метками в читаемые реплики, а не показывайте по одному слову. Полезный результат — файл SRT или WebVTT, связанный с исходным клипом, с границами реплик по паузам и посильным объёмом текста на экране. Проверяйте отсутствие пропусков временных меток и то, что конец каждой реплики следует за её началом. Объединение в субтитры и форматирование файла — шаги приложения на основе полученного выравнивания; оформление должно подходить проигрывателю и аудитории.
Документированные настройки Transcribe 1 — аудио, языковая подсказка и выбор временных меток. Метки говорящих, структурированные реплики говорящих, настройки эмоциональных событий и подсказки количества говорящих у Pro — отдельные возможности; они не входят в документированный контракт ответа базовой модели. До обработки определите нужный результат: обычный читаемый текст для заметки либо текст с временной разметкой для навигации при воспроизведении и субтитров. Сохранение идентификатора клипа, расшифровки и доступных временных меток делает результат полезным на следующем этапе работы приложения.
Ailoot Ultra · Распознавание речи POST /v1/audio/transcriptions fish-audio/transcribe-1
fish-audio/transcribe-1Начало
Transcribe 1 преобразует короткие аудиозаписи в текст с автоматическим определением языка и необязательными временными метками слов. Используйте расшифровку для голосовых заметок, поиска по клипам или подготовки субтитров, сохраняя сегменты с временными метками отдельно от полного читаемого текста.
- Допустимые входные данные
- Аудио
- Результаты
- Текст
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Распознавание речи POST /v1/audio/transcriptions
- Входные данные
audio- Результат
text
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения fish-audio/transcribe-1 | По умолчанию— |
Полеinput_audio | Типobject | ТребованиеОбязательно | Значения и ограничения | По умолчанию— |
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактmodel, input_audio |
Параметрmaterial_types | Контрактaudio |
Параметрmaterial_conditions | КонтрактПример читает ваш реальный непустой файл PCM WAV, кодирует все байты файла в base64 и передаёт wav в input_audio.format. |
Жизненный цикл: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · точный task_id из существующей записи медиаресурса, принадлежащего Ailoot
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Тарифы
Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.
- Быстрый режим
- Не указано При выборе быстрого режима
- Режим flex
- Не указано При выборе режима flex
- Максимальная интенсивность рассуждений
- Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)
Ставки Ailoot
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Шкала ставок | Расчётная единица | Плата |
|---|---|---|---|
| КонфигурацияБазовые тарифы на токены | Шкала ставокБазовая ставка | Расчётная единица— | Плата Вход · Входные токены — / 1K токенов Выход · Выходные токены — / 1K токенов Вход · Чтение кэша — / 1K токенов Вход · Запись в кэш — / 1K токенов Вход · Запись в кэш, 1 час — / 1K токенов |
| Конфигурациясекунда входного аудио | Шкала ставок— | Расчётная единицаза секунду входного аудио | Плата Вход · секунда входного аудио $0.0002 за секунду входного аудио |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Распознавание речи
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}"
export AILOOT_AUDIO_FILE
python3 - <<'PY_REQUEST'
import base64, io, json, os, wave
from pathlib import Path
audio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()
if not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):
raise SystemExit('Supply your actual PCM WAV audio file')
with wave.open(io.BytesIO(audio), 'rb') as recording:
if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:
raise SystemExit('Supply a nonempty PCM WAV recording')
request = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}
Path('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o response.bin
# Retain the complete original response, headers and actual X-Client-Request-ID.
# Read existing owned records for recovery; do not resubmit an uncertain operation.
Получить и сохранить результаты
Ailoot Ultra · Распознавание речи
Полное исходное тело ответа, статус и переданные заголовки. Этот обработчик не добавляет универсальную структуру JSON, текстовое поле или оболочку задачи.
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Сохраняйте все готовые результаты
Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.
Сохраняйте полный ответ и заголовки, все фактические результаты, исходные возвращённые идентификаторы и все поля использования. Восстанавливайте исходную операцию без повторной отправки запроса создания.
Если нужно проверить исходный ответ
Сохраните фактический X-Client-Request-ID и полный ответ. Читайте исходные ресурсы, принадлежащие Ailoot, по их точным подписанным URL содержимого; никогда не повторяйте создание с неопределённым исходом.
Поля ответа
| Поле | Тип |
|---|---|
Полеtext (when present) | Тип |
Полеusage (when present) | Тип |
Ошибки и дальнейшие шаги
| Ответ | Условие | Следующий шаг |
|---|---|---|
Ответ400 · invalid_request_error | УсловиеТело JSON или явно указанный канонический ID модели недопустимы. | Следующий шагСохраните ответ и исправьте указанное поле запроса. |
Ответ401 · authentication_error | УсловиеНедействительный ключ Ailoot API. | Следующий шагИспользуйте ваш авторизованный ключ Ailoot API. |
Ответ403 · permission_error | УсловиеГруппа ключа не допускает этот метод. | Следующий шагСохраните возвращённые подробности ошибки. |
Ответ404 · not_found_error | УсловиеУ выбранного метода нет допущенного маршрута. | Следующий шагСохраните возвращённые подробности ошибки. |
Ответ422 · price_unavailable | УсловиеДля принятого тарифа невозможно определить требуемое количество входных данных или его границу. | Следующий шагСохраните ответ; используйте представление входных данных, требуемое принятым тарифом. |
Ответ503 · | УсловиеТребуемое хранилище, маршрут, цена метода или резервирование недоступны. | Следующий шагСохраните полный исходный ответ. Неопределённость резервирования не разрешает повторную отправку. |
Ответ502 · server_error | УсловиеИсходный результат, использование или окончательный расчёт требуют проверки. | Следующий шагСохраните фактический ID запроса и исходный ответ. Читайте существующую запись ресурса, принадлежащего Ailoot; не повторяйте создание. |
Псевдонимы
Псевдонимы моделей
Ailoot Ultra fish-audio/transcribe-1
Псевдонимы путей метода
Используйте пути методов, указанные выше.
Связанные ID для вызова
FAQ · Fish Audio: Transcribe 1
- Какие входные данные и результаты доступны?
POST /v1/audio/transcriptions·fish-audio/transcribe-1:audio→text- Какие поля использует запрос?
POST /v1/audio/transcriptions·fish-audio/transcribe-1:model,input_audio