Media API

Media API позволяет управлять аудиофайлами, загруженными в библиотеку приложения, и синтезированной речью. Эти аудио можно использовать для проигрывания аудиосообщений абонентам при переадресации входящего вызова, исходящем автодозвоне и callback.

Методы Media API Exolve для управления аудиофайлами:

  • Upload — загружает аудиофайл в Личный кабинет;
  • Synthesize — синтезирует речь согласно заданным параметрам без добавления сфомированного файла в библиотеку приложения;
  • SynthesizeAndSave — синтезирует речь согласно заданным параметрам с последующим добавлением сфомированного файла в библиотеку приложения;
  • GetList — получает информацию обо всех добавленных в библиотеку приложения аудиофайлах, соответствующих заданным параметрам;
  • GetInfo — получает информацию об аудиофайле;
  • Download — скачивает аудиофайл;
  • Update — изменяет атрибуты добавленного в библиотеку приложения аудиофайла;
  • Delete — удаляет аудиофайл из библиотеки приложения.

Решения, где используется Media API

Кол-трекинг

Обратный звонок

Переадресация вызовов

Попробовать бесплатно

Метод Upload

Примените метод Upload для добавления аудиофайла в библиотеку приложения. Для этого выполните POST-запрос с входными параметрами к точке подключения, указанными ниже.

Точка подключения:

POST: https://api.exolve.ru/media/v1/Upload

Авторизация

Передайте следующие Заголовки HTTP для успешной авторизации.

ИмяТипОписание
AuthorizationstringAPI-ключ приложения с Bearer перед ним. Пример: Bearer e***s0, где e***s0 замените на API-ключ вашего приложения

Входные параметры

Передайте следующие параметры в теле запроса в JSON-формате. Параметры, отмеченные жирным шрифтом, являются обязательными.

ПараметрТипОписание
filebytes (Base64)аудиофайл (максимальный размер 5MB)
full_namestringимя файла
file_typeenum FileTypeтип аудиофайла
file_metadata_synthesisoneof VoiceSettingsголосовые настройки синтеза
descriptionstringописание к аудиофайлу
resource_iduint64идентификатор ресурса аудио

Примечание

Загружаемый аудиофайл не должен превышать размер в 5MB и название файла должно быть в формате MP3 или WAV.


Выходные параметры

ПараметрТипОписание
file_iduint64идентификатор аудиофайла
resource_iduint64идентификатор ресурса аудиофайла
sizeuint64размер аудиофайла в байтах (не более 15 Мб)
durationuint32длительность аудиофайла в секундах
namestringназвание файла
descriptionstringописание к аудиофайлу
extensionstringрасширение aудиофайла (WAV или MP3)
application_uuidstringидентификатор приложения, в библиотеку которого добавлен аудиофайл
file_typeenum FileTypeтип аудиофайла
date_uploadstringдата загрузки аудиофайла в формате RFC-3339 / ISO-8601

FileType

ПараметрТипОписание
201enumаудиофайл, загруженный из локального хранилища в библиотеку приложения
202enumаудиофайл с синтезированной речью

Возможные ошибки

КодСтатусПример сообщенияОписание
400Bad Request“error”: “error Save media service: fileName is exist”аудиофайл с таким именем уже существует
400Bad Request“error”: “proto: (line 3:18): invalid value for enum type: "254"”невалидное значение в поле file
400Bad Request“error”: “proto: (line 3:18): invalid value for enum type: "qwe"”невалидное значение в поле file
400Bad Request“error”: “proto: (line 3:18): invalid value for enum type: ""”не задано значение поля file
400Bad Request“error”: “proto: syntax error (line 3:18): unexpected token ,”не задано значение поля file
400Bad Request“error”: “proto: syntax error (line 2:13): unexpected token ,”отсутствует значение поля file
400Bad Request“error”: “invalid UploadRequest.File: value length must be at least 1 bytes”отсутствует значение поля file
400Bad Request“error”: “invalid UploadRequest.FullName: value length must be between 1 and 128 runes, inclusive”отсутствует значение поля full_name
400Bad Request“error”: “proto: (line 5:1): invalid value for string type: }”отсутствует значение поля full_name
401Unauthorized“error”: “failed to parse token”не указан / неправильно указан API-ключ приложения
404Not Foundневерный URL запроса

Примеры

Входные параметры:

{
   "file": "SUQzAwAAAAAfdlRZRVIAAAAFAAAAMjAyMVRJVDIAAABHAAAB//4TBDgEQgQwBEAEMAQgADwENQQ7BD4ENAQ4BE8EIABABD4EO",
   "file_type": 201,
   "full_name": "exolve_audio.mp3"
}

Выходные параметры:

{
   "file_id": "1931072746905665536",
   "resource_id": "152817",
   "size": "121087",
   "duration": 5,
   "name": "exolve_audio",
   "extension": "mp3",
   "description": "uploaded audio",
   "application_uuid": "178ec145-6848-4b06-a92a-75f63cb57046",
   "file_type": 201,
   "date_upload": "2023-06-14T16:53:40.459734572Z"
}

Метод GetList

Примените метод GetList для получения информации об аудиофайлах, добавленных в библиотеку приложения. Для этого выполните POST-запрос с входными параметрами к точке подключения, указанными ниже.

Точка подключения:

POST: https://api.exolve.ru/media/v1/GetList

Авторизация

Передайте следующие Заголовки HTTP для успешной авторизации.

ИмяТипОписание
AuthorizationstringAPI-ключ приложения с Bearer перед ним. Пример: Bearer e***s0, где e***s0 замените на API-ключ вашего приложения

Входные параметры

Передайте следующие параметры в теле запроса в JSON-формате.

ПараметрТипОписание
resource_iduint64идентификатор ресурса аудиофайла
namestringимя файла
application_uuidstringидентификатор приложения, в библиотеку которого загружен аудиофайл
date_fromstringдата добавления аудиофайла в формате RFC-3339 / ISO-8601, от которой начинать выборку
date_tostringдата добавления аудиофайла в формате RFC-3339 / ISO-8601, до которой продолжать выборку
order_listOrderListпараметры сортировки выходных данных
limituint32лимит выводимых строк
offsetuint64номер строки, с которой начинать выборку (начинается с 0)
file_typeenum FileTypeтип аудиофайла

OrderList

ПараметрТипОписание
order_fieldenum OrderFieldтип сортировки выходных данных
order_directionenum OrderDirectionпорядок сортировки выходных данных

OrderField

ЗначениеТипОписание
1enumсортировка по дате добавления аудиофайла
2enumсортировка по размеру аудиофайла
3enumсортировка по продолжительности аудиофайла

OrderDirection

ЗначениеТипОписание
1enumсортировка в порядке возрастания
2enumсортировка в порядке убывания

Выходные параметры

ПараметрТипОписание
media_recordsarray GetInfoсписок с информацией об аудиофайлах

GetInfo

ЗначениеТипОписание
file_iduint64идентификатор аудиофайла
resource_iduint64идентификатор ресурса аудиофайла
sizeuint64размер аудиофайла в байтах
durationuint32длительность аудиофайла в секундах
namestringназвание файла
extensionstringрасширение aудиофайла
descriptionstringописание аудиофайла
application_uuidstringидентификатор приложения, в библиотеку которого добавлен аудиофайлл
file_typeenum FileTypeтип аудиофайла
date_uploadstringдата добавления аудиофайла в формате RFC-3339 / ISO-8601
file_typeenum FileMetadataметаданные аудиофайла (только для синтезированной речи)

FileType

ПараметрТипОписание
201enumаудиофайл, загруженный из локального хранилища в библиотеку приложения
202enumаудиофайл с синтезированной речью

FileMetadata

ПараметрТипОписание
synthesisarray VoiceSettingsголосовые настройки аудиофайла
textstringтекст синтезированной речи

VoiceSettings

ПараметрТипОписание
langarray Langязык синтезируемой речи
voicearray Voiceголос для озвучивания текста
emotionarray Emotionэмоция для озвучивания текста
speedfloatскорость синтезируемой речи (от 0.1 до 3.0, где 0.1 — самая медленная, 3.0 — самая быстрая, по умолчанию 1.0)
loudness_normalizationint32нормализация громкости (от -145 до 0, где -145 — наименьшее усиление, 0 — наибольшее усиление громкости, по умолчанию -19)

Нормализация применяется, чтобы выровнять громкость синтезированной речи по сравнению с «живой» речью собеседников. LUFS - это единицы измерения громкости. Этот способ измерения объединяет воспринимаемую человеческим слухом громкость и истинную интенсивность аудиосигнала


Lang

ПараметрТипЯзык
1enumрусский (по умолчанию)
2enumанглийский
3enumнемецкий
4enumиврит
5enumказахский
6enumузбекский

Voice

ПараметрТипГолосПолЭмоцияЯзык
1enumАлёна (по умолчанию)Ж1 — нейтральная (по умолчанию), 2 — добрая1 — русский
2enumЕрмилМ1 — нейтральная (по умолчанию), 2 — радостная1 — русский
3enumДжейнЖ1 — нейтральная (по умолчанию), 2 — радостная, 3 — раздраженная1 — русский
4enumОмажЖ1 — нейтральная (по умолчанию), 3 — раздраженная1 — русский
5enumЗахарМ1 — нейтральная (по умолчанию), 2 — радостная1 — русский
6enumФилиппМ—1 — русский
7enumМадирусМ—1 — русский
8enumДашаЖ1 — нейтральная (по умолчанию), 2 — радостная, 4 — дружелюбная1 — русский
9enumЮлияЖ1 — нейтральная (по умолчанию), 5 — строгая1 — русский
10enumЛераЖ1 — нейтральная (по умолчанию), 4 — дружелюбная1 — русский
11enumМаринаЖ1 — нейтральная (по умолчанию), 4 — дружелюбная, 6 — шёпот1 — русский
12enumАлександрМ1 — нейтральная (по умолчанию), 2 — радостная1 — русский
13enumКириллМ1 — нейтральная (по умолчанию), 2 — радостная, 5 — строгая1 — русский
14enumАнтонМ1 — нейтральная (по умолчанию), 2 — радостная1 — русский
15enumМашаЖ2 — радостная (по умолчанию), 4 — дружелюбная, 5 — строгая1 — русский
16enumЛеяЖ—3 — немецкий
17enumДжонМ—2 — английский
18enumНаомиЖ7 — современный, 8 — классический4 — иврит
19enumАмираЖ—5 — казахский
20enumМадиЖ—5 — казахский
21enumНигораЖ—6 — узбекский

Emotion

ПараметрТипЭмоция
1enumнейтральная
2enumрадостная
3enumраздражённая
4enumдружелюбная
5enumстрогая
6enumшёпот
7enumсовременная
8enumклассическая

Возможные ошибки

КодСтатусПример сообщенияОписание
401Unauthorized“error”: “failed to parse token”не указан / неправильно указан API-ключ приложения
404Not Foundнекорректно введён URL запроса

Примеры

Входные параметры:

{
    "resource_id": "440009",
    "name": "exolve_audio",
    "application_uuid": "1fd4b297-0a04-4ca7-9ea1-6afde5da074b",
    "date_from": "2023-07-12T01:30:15.01Z",
    "date_to": "2024-12-30T01:30:15.477425Z",
    "order_list": {
        "order_direction": 2,
        "order_field": 1
    },
    "limit": 10,
    "offset": 0
}

Выходные параметры:

{
    "media_records": [
        {
            "file_id": "1992224928825622528",
            "resource_id": "445009",
            "size": "875767",
            "duration": 22,
            "name": "exolve_audio",
            "extension": "mp3",
            "description": "",
            "application_uuid": "1fd4b297-0a04-4ca7-9ea1-6afde5da074b",
            "application_name": "exolve_application",
            "file_type": 201,
            "date_upload": "2024-11-30T10:34:43.107440Z"
             "file_metadata": {
                "synthesis": {
                   "lang": 1,
                   "voice": 1,
                   "emotion": 1,
                   "speed": 1,
                   "loudness_normalization": -19
              },
                 "text": "МТС Exolve — конструктор омниканальных диалогов для бизнеса"
        }
    ]
}

Метод GetInfo

Примените метод GetInfo для получения информации об аудиофайле, добавленном в библиотеку приложения. Для этого выполните POST-запрос с входными параметрами к точке подключения, указанными ниже.

Точка подключения:

POST: https://api.exolve.ru/media/v1/GetInfo

Авторизация

Передайте следующие Заголовки HTTP для успешной авторизации.

ИмяТипОписание
AuthorizationstringAPI-ключ приложения с Bearer перед ним. Пример: Bearer e***s0, где e***s0 замените на API-ключ вашего приложения

Входные параметры

Передайте следующие параметры в теле запроса в JSON формате. Параметры, отмеченные жирным шрифтом, являются обязательными.

ПараметрТипОписание
resource_idsArray of uint64уникальные идентификаторы загруженных аудиофайлов

Выходные параметры

ПараметрТипОписание
media_recordsarrayсписок с информацией об аудиофайлах
file_iduint64внутренний ID аудиофайла
resource_iduint64уникальный идентификатор загруженного аудиофайла
sizeuint64размер аудиофайла в байтах
durationuint32длительность аудиофайла в секундах
namestringимя файла
extensionstringрасширение aудиофайла
descriptionstringописание к аудиофайлу
application_uuidstringуникальный идентификатор приложения, к которому загружен аудиофайл
file_typeenum FileTypeтип аудиофайла
date_uploadstringдата загрузки аудиофайла в формате RFC-3339 / ISO-8601
file_metadataenum FileMetadataметаданные аудиофайла (только для синтезированной речи)

FileType

ПараметрТипОписание
201enumаудиофайл, загруженный из локального хранилища в библиотеку приложения
202enumаудиофайл с синтезированной речью

FileMetadata

ПараметрТипОписание
synthesisarray VoiceSettingsголосовые настройки аудиофайла
textstringтекст синтезированной речи

VoiceSettings

ПараметрТипОписание
langarray Langязык синтезируемой речи
voicearray Voiceголос для озвучивания текста
emotionarray Emotionэмоция для озвучивания текста
speedfloatскорость синтезируемой речи (от 0.1 до 3.0, где 0.1 — самая медленная, 3.0 — самая быстрая, по умолчанию 1.0)
loudness_normalizationint32нормализация громкости (от -145 до 0, где -145 — наименьшее усиление, 0 — наибольшее усиление громкости, по умолчанию -19)

Нормализация применяется, чтобы выровнять громкость синтезированной речи по сравнению с «живой» речью собеседников. LUFS - это единицы измерения громкости. Этот способ измерения объединяет воспринимаемую человеческим слухом громкость и истинную интенсивность аудиосигнала


Lang

ПараметрТипЯзык
1enumрусский (по умолчанию)
2enumанглийский
3enumнемецкий
4enumиврит
5enumказахский
6enumузбекский

Voice

ПараметрТипГолосПолЭмоцияЯзык
1enumАлёна (по умолчанию)Ж1 — нейтральная (по умолчанию), 2 — добрая1 — русский
2enumЕрмилМ1 — нейтральная (по умолчанию), 2 — радостная1 — русский
3enumДжейнЖ1 — нейтральная (по умолчанию), 2 — радостная, 3 — раздраженная1 — русский
4enumОмажЖ1 — нейтральная (по умолчанию), 3 — раздраженная1 — русский
5enumЗахарМ1 — нейтральная (по умолчанию), 2 — радостная1 — русский
6enumФилиппМ—1 — русский
7enumМадирусМ—1 — русский
8enumДашаЖ1 — нейтральная (по умолчанию), 2 — радостная, 4 — дружелюбная1 — русский
9enumЮлияЖ1 — нейтральная (по умолчанию), 5 — строгая1 — русский
10enumЛераЖ1 — нейтральная (по умолчанию), 4 — дружелюбная1 — русский
11enumМаринаЖ1 — нейтральная (по умолчанию), 4 — дружелюбная, 6 — шёпот1 — русский
12enumАлександрМ1 — нейтральная (по умолчанию), 2 — радостная1 — русский
13enumКириллМ1 — нейтральная (по умолчанию), 2 — радостная, 5 — строгая1 — русский
14enumАнтонМ1 — нейтральная (по умолчанию), 2 — радостная1 — русский
15enumМашаЖ2 — радостная (по умолчанию), 4 — дружелюбная, 5 — строгая1 — русский
16enumЛеяЖ—3 — немецкий
17enumДжонМ—2 — английский
18enumНаомиЖ7 — современный, 8 — классический4 — иврит
19enumАмираЖ—5 — казахский
20enumМадиЖ—5 — казахский
21enumНигораЖ—6 — узбекский

Emotion

ПараметрТипЭмоция
1enumнейтральная
2enumрадостная
3enumраздражённая
4enumдружелюбная
5enumстрогая
6enumшёпот
7enumсовременная
8enumклассическая

Возможные ошибки

КодСтатусПример сообщенияОписание
400Bad Request“error”: “proto: (line 3:7): invalid value for uint64 type: ""”не задано значение поля resource_ids
400Bad Request“error”: “invalid GetInfoRequest.ResourceIds[0]: value must be greater than 0”значение поля resource_ids должно быть больше 0
400Bad Request“error”: “invalid GetInfoRequest.ResourceIds: value must contain at least 1 item(s)”поле resource_ids должно содержать хотя бы 1 символ
400Bad Request“error”: “proto: (line 3:7): invalid value for uint64 type: "qwe"”невалидное значение поля resource_ids
401Unauthorized“error”: “failed to parse token”не указан / неправильно указан API-ключ приложения
404Not Foundнекорректно введён URL запроса

Примеры

Входные параметры:

{
   "mediaRecords": [
       {
           "fileId": "1862848703375831040",
           "resourceId": "6266",
           "size": "25747",
           "duration": 1,
           "name": "exolve_audio.mp3",
           "extension": "mp3",
           "description": "uploaded audio",
           "applicationUuid": "0356dc59-deeb-4546-b314-fbc31bd778fc",
           "applicationName": "exolve_application",
           "fileType": 201,
           "dateUpload": "2024-12-08T10:07:52.010849Z"
           "file_metadata": {
               "synthesis": {
                  "lang": 1,
                  "voice": 1,
                  "emotion": 1,
                  "speed": 1,
                  "loudness_normalization": -19
             },
                "text": "МТС Exolve — конструктор омниканальных диалогов для бизнеса"
   }
       }
   ]
}

Выходные параметры:

{
   "media_records": [
       {
           "file_id": "1885716233567862784",
           "resource_id": "138517",
           "size": "26375",
           "duration": 3,
           "name": "Test audio",
           "extension": "mp3",
           "description": "Тестовый аудиофайл",
           "application_uuid": "178ec145-6898-4b06-a92a-75f63cb57046",
           "application_name": "Test",
           "file_type": 201,
           "date_upload": "2023-02-09T13:03:04.996514Z"
       },
       {
           "file_id": "1931072746905665536",
           "resource_id": "152817",
           "size": "121087",
           "duration": 5,
           "name": "test5",
           "extension": "mp3",
           "description": "",
           "application_uuid": "178ec145-6898-4b06-a92a-75f63cb57046",
           "application_name": "Test",
           "file_type": 201,
           "date_upload": "2023-06-14T16:53:40.459735Z"
       }
   ]
}

Метод Download

Примените метод Download для скачивания аудиофайла, добавленного в библиотеку приложения. Для этого выполните POST-запрос с идентификатор ресурса к точке подключения, указанными ниже.

Точка подключения:

POST: https://api.exolve.ru/media/v1/Download

Авторизация

Передайте следующие Заголовки HTTP для успешной авторизации.

ИмяТипОписание
AuthorizationstringAPI-ключ приложения с Bearer перед ним. Пример: Bearer e***s0, где e***s0 замените на API-ключ вашего приложения

Входные параметры

Передайте следующие параметры в теле запроса в JSON-формате. Параметры, отмеченные жирным шрифтом, являются обязательными.

ПараметрТипОписание
resource_iduint64идентификатор ресурса аудиофайла

Выходные параметры

ПараметрТипОписание
filebytesаудиофайл в формате Base64
full_namestringназвание аудиофайла
resource_iduint64идентификатор ресурса аудиофайла
file_typeenum FileTypeтип аудиофайла

FileType

ПараметрТипЭмоция
201enumаудиофайл, загруженный из локального хранилища в библиотеку приложения

Возможные ошибки

КодСтатусПример сообщенияОписание
401Unauthorizedmalformed tokenне указан / неправильно указан API-ключ приложения
500Internal Server ErrorApplication [ID] does not own resource [661352]файл принадлежит другому приложению

Примеры

Входные параметры:

{
    "resource_id": "6088"
}

Выходные параметры:


{
    "file": "SUQzAwAAAAAfdlRZRVIAAAAFAAAAMjAyMVRJVDIAAABHAAAB//4TB",
    "full_name": "19999tgb.mp3",
    "resource_id": "6088",
    "file_type": 201
}

Метод Update

Примените метод Update для изменения атрибутов аудиофайла, добавленного в библиотеку приложения. Для этого выполните POST-запрос с входными параметрами к точке подключения, указанными ниже.

Точка подключения:

POST: https://api.exolve.ru/media/v1/Update

Авторизация

Передайте следующие Заголовки HTTP для успешной авторизации.

ИмяТипОписание
AuthorizationstringAPI-ключ приложения с Bearer перед ним. Пример: Bearer e***s0, где e***s0 замените на API-ключ вашего приложения

Входные параметры

Передайте следующие параметры в теле запроса в JSON-формате. Параметры, отмеченные жирным шрифтом, являются обязательными.

ПараметрТипОписание
resource_iduint64уникальный идентификатор загруженного аудиофайла
namestringновое наименование аудиофайла
descriptionstringновое описание к аудиофайлу

Выходные параметры

Пустой JSON с 200 OK статусом

Возможные ошибки

КодСтатусПример сообщенияОписание
400Bad Request“error”: “proto: (line 5:1): invalid value for uint64 type: }”значение поля resource_id пустое (без “”)
400Bad Request“error”: “invalid UpdateRequest.ResourceId: value must be greater than 0”значение поля resource_id должно быть больше 0
400Bad Request“error”: “proto: (line 4:20): invalid value for uint64 type: ""”не задано значение поля resource_ids
400Bad Request“error”: “proto: (line 4:20): invalid value for uint64 type: "qwe"”невалидное значение поля resource_ids
400Bad Request“error”: “proto: syntax error (line 3:13): unexpected token ,”значение поля name пустое (без “”)
400Bad Request“proto: syntax error (line 2:19): unexpected token ,”значение поля description пустое (без “”)
401Unauthorizedmalformed tokenне указан / неправильно указан API-ключ приложения
404Not Foundнекорректно введён URL запроса

Примеры

Входные параметры:

{
    "resource_id": "152817",
    "name": "Update Test",
    "description": "Тест обновления аудиофайла"  
}

Выходные параметры:

{}

Метод Delete

Примените метод Delete для удаления аудиофайлов, загруженных в библиотеку приложения. Для этого выполните POST-запрос с входными параметрами к точке подключения, указанными ниже.

Точка подключения:

POST: https://api.exolve.ru/media/v1/Delete

Авторизация

Передайте следующие Заголовки HTTP для успешной авторизации.

ИмяТипОписание
AuthorizationstringAPI-ключ приложения с Bearer перед ним. Пример: Bearer e***s0, где e***s0 замените на API-ключ вашего приложения

Входные параметры

Передайте следующие параметры в теле запроса в JSON-формате. Параметры, отмеченные жирным шрифтом, являются обязательными.

ПараметрТипОписание
resource_idsArray of uint64уникальные идентификаторы загруженных аудиофайлов

Выходные параметры

Пустой JSON с 200 OK статусом.

Возможные ошибки

КодСтатусПример сообщенияОписание
401Unauthorized“error”: “failed to parse token”не указан / неправильно указан API-ключ приложения
400Bad Request“error”: “proto: (line 3:7): invalid value for uint64 type: "qwe"”невалидное значение поля resource_ids
400Bad Request“error”: “invalid DeleteRequest.ResourceIds[0]: value must be greater than 0”значение поля resource_ids должно быть больше 0
400Bad Request“error”: “proto: (line 3:7): invalid value for uint64 type: ""”не задано значение в поле resource_ids
400Bad Request“error”: “invalid GetInfoRequest.ResourceIds: value must contain at least 1 item(s)”значение поля resource_ids должно содержать хотя бы 1 символ
404Not Foundнекорректно введен URL запроса

Примеры

Входные параметры:

{
    "resource_ids": [
        "138231"
    ]
}

Выходные параметры:

{}