Этот API предоставляет удобный способ для автоматической транскрибации и диаризации аудио через облако.
Поддерживаются такие задачи, как перевод аудио в текст с таймкодами (транскрибация) и сегментация по спикерам (диаризация).
Быстрый старт
Все запросы выполняются по защищённым URL.
Для большинства методов требуется авторизация через токен:
Передавайте токен в заголовке:
Authorization: Bearer <ваш_токен>
Эндпоинты
1. Транскрибация (Transcription)
1.1. Транскрибировать аудио
Загрузите аудиофайл для получения текста.
Пример запроса (Python, requests):
import requests
API_URL = "https://api.palatine.ru/api/v1/transcribe/do_transcribe"
TOKEN = "<YOUR_TOKEN>"
files = {"file": open("audio.mp3", "rb")}
headers = {"Authorization": f"Bearer {TOKEN}"}
response = requests.post(API_URL, files=files, headers=headers)
print(response.json())
Пример ответа:
{
"status": "scheduled",
"task_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
1.2. Проверить статус задачи
Получить статус и результат задачи транскрибации.
Пример запроса:
import requests
task_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
API_URL = f"https://api.palatine.ru/api/v1/transcribe/task_status/{task_id}"
headers = {"Authorization": f"Bearer {TOKEN}"}
response = requests.get(API_URL, headers=headers)
print(response.json())
Пример успешного ответа:
{
"task_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"data": {
"result": {
"text": "Добро пожаловать!",
"segments": [
{
"id": 0,
"start": 0.0,
"end": 1.23,
"text": "Добро пожаловать!",
"tokens": [50257, 456],
"avg_logprob": -0.12,
"compression_ratio": 1.0,
"no_speech_prob": 0.01,
"temperature": 0.0
}
]
}
},
"task_status": True
}
1.3. Отметить задачу как завершённую
Используется для ручного завершения задачи, если требуется.
Пример запроса:
import requests
task_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
API_URL = f"https://api.palatine.ru/api/v1/transcribe/task_done/{task_id}"
headers = {"Authorization": f"Bearer {TOKEN}"}
response = requests.post(API_URL, headers=headers)
print(response.json())
1.4. Транскрипция в формате OpenAI
Для получения результата в структуре, совместимой с OpenAI API.
Пример запроса:
from openai import OpenAI
client = OpenAI(
base_url="https://api.palatine.ru/api/v1",
api_key="KEY"
)
with open("audio.mp3", "rb") as f:
result = client.audio.transcriptions.create(file=f, model="palatine_audio")
print(result)
2. Диаризация (Diarization)
2.1. Диаризовать аудио
Отправьте аудиофайл для получения сегментов с определением спикеров.
Пример запроса:
import requests
API_URL = "https://api.palatine.ru/api/v1/diarization/do_diarize"
files = {"file": open("audio.mp3", "rb")}
headers = {"Authorization": f"Bearer {TOKEN}"}
response = requests.post(API_URL, files=files, headers=headers)
print(response.json())
Пример ответа:
{
"status": "scheduled",
"task_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
2.2. Проверить статус задачи диаризации
Пример запроса:
import requests
task_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
API_URL = f"https://api.palatine.ru/api/v1/transcribe/task_status/{task_id}"
headers = {"Authorization": f"Bearer {TOKEN}"}
response = requests.get(API_URL, headers=headers)
print(response.json())
Пример ответа:
{
"task_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"data": {
"result": {
"segments": [
{
"segment_id": 0,
"speaker": "SPEAKER_01",
"start": 0.0,
"end": 2.5
}
]
}
},
"task_status": True
}
2.3. Отметить задачу диаризации как завершённую
Пример запроса:
import requests
task_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
API_URL = f"https://api.palatine.ru/api/v1/transcribe/task_done/{task_id}"
headers = {"Authorization": f"Bearer {TOKEN}"}
response = requests.post(API_URL, headers=headers)
print(response.json())
Ошибки
Все ответы с ошибкой возвращают соответствующий HTTP-код и объект с описанием ошибки:
{
"detail": [
{
"loc": ["body", "file"],
"msg": "field required",
"type": "value_error.missing"
}
]
}
Требования к авторизации
Большинство запросов требует заголовка:
Authorization: Bearer <ваш_токен>
Токен можно получить в системе управления пользователями вашей платформы.
Responses are generated using AI and may contain mistakes.