Ответы пользователя по тегу Аудио
  • Как извлечь аудиодорожку (речь) из большого количества видеофайлов в автоматическом режиме?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    FFmpeg
    Есть отличный биндинг для питона: https://github.com/kkroening/ffmpeg-python
    Можно даже натравить потом на это TTS, который сгенерит субтитры с временнЫми метками, а на них уже натравить какой-нибудь Elasticsearch, чтобы можно было делать текстовый поиск по видосам и быстро находить нужные фрагменты лекций. Если к этому прикрутить ещё и предобученную ламу, то можно будет не изголяться с составлением поискового запроса в таком виде, чтобы он искался по индексу, а задавать вопросы по человечески, лама сама определит тему, найдёт место в лекциях и скинет ссылку на таймкоды где послушать.

    И это будет очередной шаг к протезированию мозга=) Ничего не поделаешь, к этому и идём. Нормальный процесс.
    Ответ написан
    6 комментариев
  • Как скормить звук python чтобы после его распознания выполнялось действие?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Без примеров такие абстрактные вопросы для ответа требуют целой лекции. Огромного количества догадок и большой индивидуально подготовленной для вас лекции по теме. Судя по постановке вопросв и комментариям у вас нет необходимых навыков программирования, чтобы начинать свою картеру программиста с такой задачи. Нужно освоить массу более простых вещей, терминологию, сделать несколько более простых и понятных проектов.

    На ваш вопрос было бы проще ответить, если бы вы привели в качестве примера звуки, на которые нужно сделать специфическую реакцию, продемонстрировали какие шумы (в худшем случае) могут накладываться на звук, а также звуки, которые похожи на требуемый, но недостаточно, чтобы программа реагировала на него, как на нужный.
    Тогда можно уже, вооружившись опытом и знаниями, поискать решение вашей проблемы.
    Может быть вам подойдёт сравнение фурье-спектров референсного звука и распознаваемого. Может быть достаточно реагировать на специфический ритм щелчков, а может быть придётся прибегнуть к смеси этих методов отфильтровав звуки в виде фурье-образов, а потом результат фильтрации выравнивать по фазе и сравнивать семпл-по-семплу с некоторой точностью.
    Может быть вас устроило бы дискретизировать звук после фильтрации и сравнивать их.

    В любом случае звук - это массив чисел длинной Частота_дискретизации*Длительность.
    Этот массив можно обрезать по тишине слева и справа, выровнять по уровню, оценить поместится ли в оставшийся фрагмент искомый звук. Потом нужно понимать, что оставшийся массив - это многомерный вектор. Он указывает в некий объём многомерного пространства. Какие-то сати этого пространства "похожи на некий образцовый звук", а какие-то нет. Нужно написать функцию, принимающую вектор и возвращающую число - степень похожести звука на образец. Это делается нормированием.

    Надо понимать, что к полезному примешивается обычно шум. Шумы имеют разные источники и их нужно уметь различать. Есть простой гауссовский шум, есть какие-то помехи и щелчки, которые будут соперничать с уровнями и частотами полезного сигнала.

    Изучать нужно по теме "Цифровая обработка сигналов", "сравнение звуков"
    Ответ написан
    3 комментария
  • Что случится, когда звуковой сигнал из файла превысит максимальный уровень громкости девайса?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Уровень громкости не абсолютный. Грубо говоря он, как бы, в процентах от максимального. Нельзя превысить максимум.
    Ответ написан
    Комментировать
  • Как преобразовать аудио в массив в python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Мало данных. Если ваш аудиофайл в WAV формате, то это уже фактически массив данных, который вам нужен. Достаточно отрезать от него "шапку", посмотреть в шапке битрейт и число каналов и соответственно интерпретировать как массив сэмплов нужной битности.
    Если файл закодирован кодеком (mp3, ogg, и т.д.), то сперва надо декодировать файл, а потом уже смотри, как говорится, первый пункт.
    Как именно это будет выгядеть в коде зависит от того, какой формат, какие библиотеки для работы с массивами анных используете. Конкретизируйте, пожалуйста.

    Ищется, кстати, элементарно:
    https://stackoverflow.com/questions/3049572/how-to...
    https://pythonbasics.org/convert-mp3-to-wav/
    https://www.geeksforgeeks.org/convert-mp3-to-wav-u...

    UPD:
    https://google.gik-team.com/?q=wav+python

    В итоге имеем:
    https://habr.com/ru/post/113239/
    https://docs.python.org/3/library/wave.html
    https://coderoad.ru/2060628/Чтение-wav-файлов-в-Python

    Это три перые ссылки в гугле. Если вы это найти не смогли, то прочь из профессии.
    Ответ написан
    2 комментария
  • Как в Python 3 изменить голос?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Я сам не пробовал. но вот нашлась либа на первых секундах поиска: https://pypi.org/project/pyvoicechanger/
    Вы ее смотрели?
    Ответ написан
  • Как создать онлайн-аудиоредактор?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Во-первых, определитесь с набором функциональности. audiodenoise - не полноценный редактор, там просто загрузка, обработка и получение файла обратно. Онлайн-редактором это называть странно.
    Во-вторых, чётко сформулируйте ТЗ. Оно вам пригодится в записке к дипломной работе.
    В-третьих, разработайте лаконичный и удобный API, опишите его в формате openapi.
    Затем уже можно приступать к реализации. Она у вас будет состоять из бэкенд аи фронтенда.

    В зависимости от богатства функциональности, у вас будет либо более-менее полноценный аудиоредактор, который загружает данные дорожек, позволяет сводить их, держит стек операций над данными и кэш промежуточных слоёв обработки, либо получится вот такая-вот тривиальная форма как в вашем примере: загрузили файл и в месте с файлом передали параметры того,ч то нужно с ним сделать. Обычно на бэке все эти параметры преобразуются в развесистую командную строку или пайплайн из набора команд, а потом всё запускается,а результат кладётся в кеш и закрепляется за сеансом.

    Ваша задача, как все инженерные задачи, разбивается на много мелких частей. ТЗ позволяет структурировать объём предстоящей работы.
    В ходе поиска информации, возможно, вы найдёте утилиты командной строки, которые уже умеют делать всё что вам надо и тогда ваш аудиоредактор будет не сильно отличаться от любого веб-интерфейса из одной формы.

    Приходите с конкретными вопросами, когда у вас будет ТЗ или, хотя бы, подробный фичлист
    Ответ написан
    3 комментария