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

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

Важно Все запросы выполняются по защищённым URL. Для большинства методов требуется авторизация через токен, передаваемый в заголовке:
Authorization: Bearer <ваш_токен>
Отправьте файл или чистый текст на эндпоинт POST /sentiment_analysis/analyze_file. Для аудио/видео используйте multipart загрузку, для текста — параметр data.
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())
Всего задачи имеют 3 статуса:
  • “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 отсортирован по убыванию вероятности, поэтому первый элемент — наиболее вероятная тональность.
После получения результата пометьте задачу завершённой, чтобы освободить ресурсы.
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())