Мне нужно записать аудиоклипы в виде файлов WAV, которые затем я могу передать на другой бит Python для обработки. Проблема в том, что мне нужно определить, когда есть звук, а затем записать его, остановиться, когда он переходит в тишину, и затем передать этот файл в модуль обработки.
Я думаю, что с помощью волнового модуля должно быть возможно определить, когда есть чистая тишина, и отбросить ее, затем, как только будет обнаружено что-то, кроме тишины, начать запись, затем, когда линия замолчит, снова остановите запись.
Просто не могу понять, может ли кто-нибудь начать меня с простого примера.
python
wav
audio-recording
Тихий призрак
источник
источник
xrange
ни в другом неrange
было необходимостиadd_silence
(так что теперь его нет). Я думаю, что Арек может что-то здесь сказать - переход от молчания к «слову» звучит слишком резко. Я думаю, что есть и другие ответы, которые также касаются этого.Я считаю, что модуль WAVE не поддерживает запись, а просто обрабатывает существующие файлы. Возможно, вы захотите посмотреть на PyAudio для фактической записи. WAV - это самый простой в мире формат файлов. В paInt16 вы просто получаете целое число со знаком, представляющее уровень, и чем ближе к 0, тем тише. Я не могу вспомнить, являются ли файлы WAV первым или младшим байтом, но что-то вроде этого должно работать (извините, я на самом деле не программист на Python:
Код PyAudio для записи сохранен для справки:
источник
Спасибо cryo за улучшенную версию, на которой я основал свой протестированный код ниже:
источник
return copy.deepcopy(data_all[_from:(_to + 1)])
доcopy.deepcopy(data_all[int(_from):(int(_to) + 1)])
Думаю, это поможет. Это простой скрипт, который проверяет, есть тишина или нет. Если тишина обнаружена, он не будет записывать, иначе он будет записывать.
источник
На веб-сайте pyaudio есть много довольно коротких и понятных примеров: http://people.csail.mit.edu/hubert/pyaudio/
Обновление от 14 декабря 2019 года - основной пример с указанного выше веб-сайта с 2017 года:
источник
Вы также можете посмотреть csounds . У него есть несколько API, включая Python. Он мог бы взаимодействовать с интерфейсом AD и собирать звуковые образцы.
источник