Сделать микросервис для транскрибации звонков на базе whisper

20 000 руб. за проект
15 марта 2024, 10:25 • 11 откликов • 56 просмотров
Нужно сделать сервис для транскрибации аудио с помощью https://github.com/MahmoudAshraf97/whisper-diarization на Ruby, либо Python


Описание запросов к серису
Сервис принимает два запроса




  1. POST запрос задание на транскрибацию


    url: /transcript/

    request:
    {
    url: '', /ссылка на файл для транскрибации
    }

    response
    http_code 200,
    {
    job_id: '12345', /номер асинхронной задачи, по которому можно получить результат
    }



  2. 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-тестами

Отзывы
R50 942bb6a87e10994202ac67c20dd17cc4
Фрилансер
Очень приятно работать с данным заказчиком!
Отличное ТЗ, приятное общение с человеком, оплата точно в срок!
Советую данного заказчика
4 месяца назад