Сделать микросервис для транскрибации звонков на базе whisper
20 000 руб. за проект
Нужно сделать сервис для транскрибации аудио с помощью https://github.com/MahmoudAshraf97/whisper-diarization на Ruby, либо Python
Описание запросов к серису
Сервис принимает два запроса
url: /transcript/?job_id=12345
response
http_code 200
{
status: 'ready',
url: '',
result: '...', /текст расшифрованного звонка
}
Если результат по указанному job_id еще не готов, сервис должен возвращать ответ с HTTP-кодом 202 (Accepted) и сообщением, указывающим на то, что обработка еще не завершена. Например:
url: /transcript/?job_id=12345
response
http_code 202
{
status: 'not ready',
message: 'Result is not ready yet. Please try again later.' /сообщение о статусе обработки
}
Аутентификация
Сервис нужно закрыть под BasicAuthentication. Желательно, чтобы при этом пары логин-пароль можно было задавать где-то в админке
Ньансы реализации
Описание запросов к серису
Сервис принимает два запроса
-
POST запрос задание на транскрибацию
url: /transcript/
request:
{
url: '', /ссылка на файл для транскрибации
}
response
http_code 200,
{
job_id: '12345', /номер асинхронной задачи, по которому можно получить результат
}
-
GET запрос на получение результатов
url: /transcript/?job_id=12345
response
http_code 200
{
status: 'ready',
url: '',
result: '...', /текст расшифрованного звонка
}
Если результат по указанному job_id еще не готов, сервис должен возвращать ответ с HTTP-кодом 202 (Accepted) и сообщением, указывающим на то, что обработка еще не завершена. Например:
url: /transcript/?job_id=12345
response
http_code 202
{
status: 'not ready',
message: 'Result is not ready yet. Please try again later.' /сообщение о статусе обработки
}
Аутентификация
Сервис нужно закрыть под BasicAuthentication. Желательно, чтобы при этом пары логин-пароль можно было задавать где-то в админке
Ньансы реализации
- Транскрибация должна выполняться в фоне. Нужно использовать, какую-либо очередь для фонового выполнения задач
- Транскрибация аудио должна проходить в один поток (задачи выполняются последовательно), так как это довольно затратная операция
- Скачивание файлов тоже может занимать, довольно продолжительное время, поэтому лучше если скачивание файлов для транскрибации будет идти раньше по времени, чем сама транскрибация. Например, с помощью последовательных задач: Запускаем job для скачивания файла, когда он завершается ставим в очердь задачу на транскрибацию
- Файлы могут быть большие, поэтому нужно следить, чтобы они не съели всё место на диске
- Следим за местом на диске при скачивании
- Удалём файл с сервера после завершения транскрибации
- Сервер для установки whisper-diarization мы предоставим
- Нужна админка, где будут видны все задания для транскрибации и их статусы
- new
- downloading
- trascribation
- ready
- Нужно написать код с unit-тестами
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.
Отличное ТЗ, приятное общение с человеком, оплата точно в срок!
Советую данного заказчика