Разработать Custom Speech-to-text Operator на Apache Flink
Для системы по обработке потоковых голосовых данных требуется разработать оператор на Apache Flink, выполняющий распознавание голоса с использованием OpenAI Whisper.
Предлагается следующая архитектура:
- Apache Flink v1.20 - исполнительная среда для потоковых данных
- Whisper.cpp - высокопроизводительный С++ форк открытого Speech-to-text движка OpenAI Whisper
Задача - создать Custom Operator на Apache Flink (Java или Scala), вызывающий Whisper.cpp.
Предлагается реализация, позволяющая достичь максимальной производительности - например, с использованием JNI (Java Native Interface).
Наконец, используя созданный оператор, разработчику необходимо написать тестовое приложение на Flink, демонстрирующее его работу: эмуляция голосового потока из WAV файла, перевод голоса в текст с использованием нового оператора и выдача текста в консоль. Необходимо, чтобы выполнялся замер производительности для бенчмарка оператора - загрузка CPU и latency распознавания речи.
Результат работы опубликовать в open source репозитории с использованием permissive лицензии (MIT, Apache 2.0)