Skip to main content
Palatine Speech позволяет определить эмоциональную окраску речи в аудио и видео. Сервис агрегирует вероятности по классам тональности (Very Negative, Negative, Neutral, Positive, Very Positive) и выдаёт результат в удобном JSON. Классы всегда отсортированы по убыванию вероятности: первый элемент — наиболее вероятная тональность.
1

Создание задачи

POST /analyze_file — отправьте аудио/видео файл
2

Получение task_id

API вернёт task_id для отслеживания
3

Polling статуса

GET /task_status/ — опрашивайте до получения результата
4

Завершение

POST /task_done/ — освободите ресурсы

Анализ тональности через polling API

Все запросы требуют авторизации через токен в заголовке: Authorization: Bearer <ваш_токен>
Отправьте аудио/видео файл на эндпоинт POST /sentiment_analysis/analyze_file.
import requests

API_URL = "https://api.palatine.ru/api/v1/sentiment_analysis/analyze_file"
TOKEN = "<YOUR_TOKEN>"
headers = {"Authorization": f"Bearer {TOKEN}"}

files = {"file": open("call.mp3", "rb")}
response = requests.post(API_URL, files=files, headers=headers)

print(response.json())
Пример ответа:
{
  "status": "scheduled",
  "task_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
Получить статус асинхронной задачи и результат анализа.
import requests

task_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
API_URL = f"https://api.palatine.ru/api/v1/sentiment_analysis/task_status/{task_id}"
headers = {"Authorization": f"Bearer {TOKEN}"}

response = requests.get(API_URL, headers=headers)
print(response.json())
Статусы задачи:
  • success — задача выполнена успешно
  • pending — задача ещё в процессе выполнения
  • error — при выполнении задачи произошла ошибка
Пример успешного ответа:
{
  "id": "b9fcc4dd-0fb8-4900-b7f7-e6ac2a90cbe5",
  "created_at": "2025-08-26T20:47:17.856937Z",
  "data": {
    "sentiment": [
      {"label": "Very Positive", "score": 0.85},
      {"label": "Positive", "score": 0.08},
      {"label": "Neutral", "score": 0.04},
      {"label": "Negative", "score": 0.02},
      {"label": "Very Negative", "score": 0.01}
    ]
  },
  "status": "success",
  "error": null
}
Список sentiment отсортирован по убыванию вероятности — первый элемент соответствует наиболее вероятной тональности. Значения score представляют уверенность модели для каждого класса.
После получения результата пометьте задачу завершённой, чтобы освободить ресурсы.
import requests

task_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
API_URL = f"https://api.palatine.ru/api/v1/sentiment_analysis/task_done/{task_id}"
headers = {"Authorization": f"Bearer {TOKEN}"}

response = requests.post(API_URL, headers=headers)
print(response.json())
HTTP кодОписаниеРешение
401Неверный или отсутствующий токенПроверьте токен авторизации
404Задача не найденаПроверьте task_id или создайте новую задачу
500Внутренняя ошибка сервераПовторите запрос или обратитесь в поддержку
Ошибки в поле error ответа:
СообщениеПричинаРешение
No recognizable speechВ аудио нет распознаваемой речиИспользуйте файл с чёткой речью
Not enough balanceНедостаточно средств на балансеПополните баланс