Задание: Разработка приложения для работы с аудиофайлами формата WAV.

Описание:

Создайте консольное приложение на Python для работы с аудиофайлами формата WAV. Приложение должно включать две основные функции:

Функция 1: Модификация аудиофайла

Эта функция принимает аудиофайл и позволяет изменять скорость и громкость аудиофайла. Пользователь может уменьшить или увеличить скорость воспроизведения аудио или изменить его громкость путем передачи параметров запуска программы.

Вызов этой функции происходит так:

python3 app.py path/to/audio audio_modification --speedup=0 --vol_inc_db=0

--speedup - опциональный аргумент, принимает целое число - количество процентов, на сколько будет ускорена или замедлена аудиозапись (от -99 до 1000)

--vol_inc_db - опциональный аргумент, принимает целое число - количество децибел, на которое будет увеличена или уменьшена громкость аудио

Функция 2: Расшифровка аудио в текст

Данная функция использует open-source библиотеки для офлайн распознавания речи (работает без доступа в интернет) и преобразования аудиофайла в текстовый формат. Пользователь передает аудиофайл в качестве параметра и получает его текстовую расшифровку.

Вызов этой функции происходит так:

python3 app.py path/to/audio asr

Дополнительные требования:

  • Результат расшифровки должен логироваться в JSON-формате и записываться в файл.

Примечание:

  • В рамках данного задания можно использовать open-source библиотеки для работы с аудио и распознавания речи.
  • Приложение должно быть способно распознавать речь на русском и английском языке.
  • Аудиозаписи для тестирования и демонстрации работы приложения можно скачать с сайта freesound.org или аналогичных ресурсов, предоставляющих бесплатные аудиофайлы. Эти аудиозаписи будут использоваться для проверки функциональности.

Примечания от разработчика:

  • для работы с приложением необходимо склонировать репозиторий целиком, создать виртуальное окружение и установить необходимые библиотеки;
  • для распознавания аудио была использована модель whisper-tiny. Поскольку есть условие, что приложение должно работать без интернета, данная модель была приложена в виде весов в репозитории приложения.