Как установить pydub на windows
Я пытаюсь установить среднеквадратичный уровень AudioSegment в Pydub относительно другого файла, прежде чем наложить их. Метод, который я пытаюсь использовать, включает в себя установку относительного среднеквадратичного значения для первого файла на +4 дБ более интенсивным, чем для второго - я зна.
У меня есть серия файлов wav, которые я хотел бы объединить и экспортировать как один wav с помощью Pydub. Я хочу, чтобы звук из исходных файлов воспроизводился в разное время в экспортированном файле, например. звук в audio_1.wav начинается в момент времени = 0 в экспортированном файле, в то врем.
Я хочу объединить 10 аудиосэмплов различными способами (формат - возможно, wav, но его можно изменить на любой формат, поскольку они будут предварительно записаны). from pydub import AudioSegment sounds = [] sound1 = AudioSegment.from_wav("Dropbox/PIREAD/1.wav") sound2 = AudioSegment.from_wav("Dropb.
Попытка преобразовать wav файл в wav uLaw на python. Используя Pydub AudioSegment, я могу конвертировать в mp3, используя следующее: AudioSegment.from_wav(fromFile).export(toFile, format="mp3", bitrate="128k") Что было бы эквивалентом для wav uLaw с использованием кодека ffmpeg pcm_mulaw и указание.
Я пытаюсь воспроизвести голос gTT только с pygame.mixer.music.load(). Я не хочу сохранять голос в файл, поэтому я сохранил его в потоке BytesIO. gTTs возвращает звук .mp3, который, как я знаю, имеет ограниченную поддержку со стороны pygame, поэтому я попытался преобразовать звук .mp3 в .wav с помо.
Я хочу загрузить свой звук в python, чтобы можно было вырезать его части вместе, а затем повторно сохранить как более короткий файл. Pydub теоретически идеально подходит для этого. from pydub import AudioSegment from pydub.utils import make_chunks from pydub.utils import which AudioSegment.convert.
Я столкнулся с проблемой распознавания речи Google о длинном аудиофайле . поэтому я решил разделить свой аудиофайл за 15 секунд . каждый раз, когда я отправляю первые 15 секунд на распознавание речи, затем вторые 15 секунд и так далее . Но теперь, когда я использую pydub lib, он разделяет ауди.
Документация Pydub Я пытаюсь смешать 2 файла mp3 с микрофонным входом, используя pydub и pyaudio. Вот что я сделал: из pydub импортируйте AudioSegment из pydub.playback import play sound1 = .
У меня есть папка, в которой у меня есть около 2000 аудиофайлов в формате wav с разными временными интервалами, скажем, некоторые из них находятся за 30 секунд, около 40, и я хочу разделить их все с помощью python, я пробовал pydub и разные библиотеки, и все они работают на Только файл 1, я хочу ра.
Если вы хотите использовать Python для воспроизведения или записи звука, то вы попали по адресу! Из этого руководства вы узнаете, как воспроизводить и записывать звук на Python, используя некоторые из самых популярных аудиотек. Сначала вы узнаете о самых простых методах воспроизведения и записи звука, а затем вы узнаете о некоторых библиотеках, которые предлагают дополнительные функциональные возможности в обмен на несколько дополнительных строк кода.
К концу этого урока вы узнаете, как:
- Воспроизвести файлы MP3 и WAV, а также ряда других аудиоформатов
- Воспроизвести массивы NumPy и Python, содержащих звук
- Записать звук с использованием Python
- Сохранить свои записи или аудиофайлы в различных форматах
Полный список библиотек Python, связанных со звуком, можно найти на вики-странице аудио в Python.
Воспроизведение аудио файлов
Ниже вы увидите, как воспроизводить аудиофайлы с помощью набора библиотек Python. Некоторые из этих библиотек позволяют воспроизводить различные форматы аудио, включая массивы MP3 и NumPy. Все приведенные ниже библиотеки позволяют воспроизводить файлы WAV, некоторые из которых содержат на несколько строк кода больше, чем другие:
- playsound - самый простой пакет для использования, если вы просто хотите воспроизвести файл WAV или MP3. Он не предлагает никакой функциональности, кроме простого воспроизведения.
- simpleaudio позволяет воспроизводить файлы WAV и массивы NumPy, а также позволяет проверить, воспроизводится ли файл по-прежнему.
- winsound позволяет воспроизводить файлы WAV или подавать звуковые сигналы, но работает только в Windows.
- python-sounddevice и pyaudio предоставляют привязки для библиотеки PortAudio для кроссплатформенного воспроизведения файлов WAV.
- pydub требует pyaudio для воспроизведения звука, но с установленным ffmpeg позволяет проигрывать большой диапазон аудиоформатов всего с несколькими строками кода.
Давайте посмотрим на эти библиотеки для воспроизведения аудио по очереди.
playsound
playsound представляет собой « чистый Python, кроссплатформенный, однофункциональный модуль без каких-либо зависимостей для воспроизведения звуков. » С помощью этого модуля вы можете воспроизводить звуковой файл с помощью одной строки кода:
В документации playsound говорится, что он был протестирован на файлах WAV и MP3, но он может работать и для других форматов файлов.
Эта библиотека была в последний раз обновлена в июне 2017 года. На момент написания этой статьи она работала хорошо, но неясно, будет ли она по-прежнему поддерживать более новые выпуски Python.
simpleaudio
simpleaudio - это кроссплатформенная библиотека для воспроизведения (моно и стерео) WAV-файлов без каких-либо зависимостей. Следующий код можно использовать для воспроизведения файла WAV и ожидания завершения воспроизведения файла, прежде чем завершить сценарий:
Файлы WAV содержат последовательность битов, представляющих необработанные аудиоданные, а также заголовки с метаданными в формате RIFF (Resource Interchange File Format(Формат файла обмена ресурсами)).
Для записей на компакт-диске промышленный стандарт должен хранить каждый аудиосэмпл (отдельный аудиоданный, относящийся к давлению воздуха) в виде 16-битного значения при 44100 семплов в секунду.
Чтобы уменьшить размер файла, может быть достаточно хранить некоторые записи (например, человеческую речь) с более низкой частотой дискретизации, такой как 8000 выборок в секунду, хотя это означает, что более высокие звуковые частоты могут быть представлены не так точно.
Несколько библиотек, обсуждаемых в этом руководстве, воспроизводят и записывают байтовые объекты, тогда как другие используют NumPy массивы для хранения необработанных аудиоданных.
Важное различие между этими двумя типами данных заключается в том, что байтовые объекты являются неизменяемыми, тогда как массивы NumPy являются изменяемыми, что делает последний более подходящим для генерации звуков и для более сложной обработки сигналов. Для получения дополнительной информации о том, как работать с NumPy, ознакомьтесь с нашими учебниками NumPy.
simpleaudio позволяет воспроизводить массивы NumPy и Python и объекты bytes с помощью simpleaudio.play_buffer() . Убедитесь, что у вас установлен NumPy для работы следующего примера, а также simpleaudio . (С установленным pip вы можете сделать это, запустив pip install numpy из вашей консоли.)
Для получения дополнительной информации о том, как использовать pip для установки пакетов, посмотрите Pipenv: Руководство по новому инструменту упаковки Python.
Ниже вы увидите, как сгенерировать массив NumPy, соответствующий тону 440 Гц, и воспроизвести его с помощью simpleaudio.play_buffer() :
Далее, давайте посмотрим, как вы можете использовать winsound для воспроизведения файлов WAV на компьютере с Windows.
winsound
Если вы используете Windows, вы можете использовать встроенный модуль winsound , чтобы получить доступ к его базовому оборудованию для воспроизведения звука. Воспроизведение файла WAV может быть сделано в несколько строк кода:
Далее вы узнаете, как использовать модуль python-sounddevice для кроссплатформенного воспроизведения звука.
python-sounddevice
Как указано в документации, python-sounddevice « предоставляет привязки для библиотеки PortAudio и несколько удобных функций для воспроизведения и записи массивов NumPy, содержащих аудиосигналы ». Для воспроизведения файлов WAV необходимо установить numpy и soundfile, чтобы открыть файлы WAV в виде массивов NumPy.
С установленными python-sounddevice , numpy и soundfile теперь вы можете читать WAV-файл как массив NumPy и воспроизводить его:
Строка, содержащая sf.read() , извлекает необработанные аудиоданные, а также частоту дискретизации файла, сохраненную в его заголовке RIFF, а sounddevice.wait() гарантирует, что сценарий будет завершен только когда звук заканчивает играть
Далее мы узнаем, как использовать pydub для воспроизведения звука. Установив правильные зависимости, он позволяет воспроизводить широкий спектр аудиофайлов и предлагает больше возможностей для работы со звуком, чем python-soundevice .
pydub
Хотя pydub может открывать и сохранять файлы WAV без каких-либо зависимостей, для воспроизведения звука необходимо установить пакет воспроизведения звука. Настоятельно рекомендуется использовать simpleaudio , но pyaudio , ffplay и avplay являются альтернативными вариантами.
Следующий код может быть использован для воспроизведения файла WAV с pydub :
Для воспроизведения других типов аудио, таких как файлы MP3, ffmpeg или libav должен быть установлен. Посмотрите на документацию pydub для получения инструкций. В качестве альтернативы шагам, описанным в документации, ffmpeg-python предоставляет привязки для ffmpeg и может быть установлен с помощью pip:
С установленным ffmpeg для воспроизведения файла MP3 требуется лишь небольшое изменение в нашем предыдущем коде:
В дополнение к воспроизведению звуковых файлов pydub позволяет вам сохранять аудио в разных форматах файлов (подробнее об этом позже), разрезать аудио, вычислять длину аудиофайлов, постепенно увеличивать или уменьшать и применять перекрестные переходы.
AudioSegment.reverse() создает копию AudioSegment , которая воспроизводится в обратном направлении, что в документации описывается как «полезно для Pink Floyd, обхода и некоторых алгоритмов обработки звука».
pyaudio
pyaudio предоставляет привязки для PortAudio, кросс-платформенной библиотеки аудио ввода / вывода. Это означает, что вы можете использовать pyaudio для воспроизведения и записи аудио на различных платформах, включая Windows, Linux и Mac. С pyaudio , воспроизведение аудио выполняется записью в .Stream :
Как вы могли заметить, воспроизведение звуков с помощью pyaudio немного сложнее, чем воспроизведение звуков в библиотеках, которые вы видели ранее. Это означает, что это может быть не ваш первый выбор, если вы просто хотите воспроизвести звуковой эффект в своем приложении Python.
Однако, поскольку pyaudio дает вам более низкоуровневое управление, можно получить и установить параметры для ваших устройств ввода и вывода, а также проверить нагрузку на ваш процессор и задержку ввода или вывода.
Он также позволяет воспроизводить и записывать аудио в режиме обратного вызова, где указанная функция обратного вызова вызывается, когда новые данные необходимы для воспроизведения или доступны для записи. Эти опции делают pyaudio подходящей библиотекой для использования, если ваши аудио требования выходят за рамки простого воспроизведения.
Теперь, когда вы увидели, как вы можете использовать несколько разных библиотек для воспроизведения звука, пришло время посмотреть, как вы можете использовать Python для записи звука самостоятельно.
Запись аудио
Python-sounddevice и pyaudio библиотеки предоставляют способы записи аудио с помощью Python. python-sounddevice записывает в массивы NumPy а pyaudio записывает в объекты bytes . Оба они могут быть сохранены в виде файлов WAV с использованием библиотек scipy и wave соответственно.
python-sounddevice
python-sounddevice позволяет записывать звук с микрофона и сохранять его в виде массива NumPy. Это удобный тип данных для обработки звука, который можно преобразовать в формат WAV для хранения с помощью scipy.io.wavfile модуль. Обязательно установите модуль scipy для следующего примера ( pip install scipy ). Это автоматически устанавливает NumPy как одну из его зависимостей:
pyaudio
Ранее в этой статье вы узнали, как воспроизводить звуки, прочитав pyaudio.Stream() . Запись аудио может быть сделана записью в этот поток:
Теперь, когда вы увидели, как записывать звук с помощью python-sounddevice и pyaudio , вы узнаете, как преобразовать вашу запись (или любые другие аудиофайлы) в ряд различных аудиоформатов.
Сохранение и преобразование аудио
Вы видели ранее, что вы можете использовать модуль scipy.io.wavfile для хранения массивов NumPy в виде файлов WAV. Модуль wavio аналогичным образом позволяет конвертировать между файлами WAV и массивами NumPy. Если вы хотите сохранить аудио в другом формате, pydub и soundfile пригодится, поскольку они позволяют читать и записывать ряд популярных форматов файлов (таких как MP3, FLAC, WMA и FLV).
wavio
Этот модуль зависит от numpy и позволяет вам читать файлы WAV как массивы NumPy и сохранять массивы NumPy как файлы WAV.
Чтобы сохранить массив NumPy в виде файла WAV, вы можете использовать wavio.write()
В этом примере my_np_array - это массив NumPy, содержащий аудио, fs - частота дискретизации записи (обычно 44100 или 44800 Гц), а sampwidth - ширина выборки аудио (количество байтов на выборку). обычно 1 или 2 байта).
soundfile
Библиотека soundfile может читать и записывать все форматы файлов, поддерживаемые libsndfile . Хотя он не может воспроизводить звук, он позволяет конвертировать аудио из FLAC, AIFF и в некоторые аудио форматы, которые встречаются реже. Чтобы преобразовать файл WAV в FLAC, вы можете использовать следующий код:
Аналогичный код будет работать для конвертации между другими форматами файлов, поддерживаемыми libsndfile .
pydub
pydub позволяет сохранять аудио в любом формате, который поддерживает ffmpeg , который включает почти все типы аудио, с которыми вы можете столкнуться в своей повседневной жизни. Например, вы можете преобразовать WAV-файл в MP3 с помощью следующего кода:
Использование AudioSegment.from_file() - более общий способ загрузки аудиофайлов. Например, если вы хотите преобразовать свой файл обратно из MP3 в WAV, вы можете сделать следующее:
Этот код должен работать для любого формата аудиофайла который поддерживает ffmpeg .
Сравнение аудио библиотек
Ниже приведена удобная таблица, которая сравнивает функциональность библиотек, обсуждаемых в этом руководстве:
Библиотека Платформа Воспроизведение Запись Конвертировать Зависимости
playsound Кросс-платформенная WAV, MP3 — --None
simpleaudio Кросс-платформенная WAV, array, bytes --None
sounddevice Кросс-платформенная NumPy arrayNumPy array- numpy , soundfile
pyaudio Кросс-платформенная bytesbytes - wave
wavio Кросс-платформенная--WAV, NumPy array numpy , wave
Библиотеки, включенные в это руководство, выбраны за их простоту использования и популярность. Для более полного списка аудио библиотек для Python, посмотрите на вики-страницу аудио в Python.
Вывод: воспроизведение и запись звука на Python
В этом уроке вы узнали, как использовать некоторые из самых популярных звуковых библиотек для воспроизведения и записи звука в Python. Вы также видели, как сохранить аудио в различных форматах.
Теперь вы можете:
- Воспроизвести широкий спектр аудиоформатов, включая массивы WAV, MP3 и NumPy
- Записывать аудио с вашего микрофона в массив NumPy или Python
- Хранить ваши записанные аудио в различных форматах, включая WAV и MP3
- Конвертировать ваши звуковые файлы в различные аудио форматы
Теперь у вас есть информация, которая поможет вам решить, какие библиотеки использовать для начала работы со звуком в Python. Выйдите и разработайте несколько потрясающих аудио приложений!
В этой статье мы обсудим 10 различных типов аудиомодулей и библиотек на Python для воспроизведения и записи звука, их уникальные особенности и преимущества.
Давайте разберемся с вышеуказанными аудиомодулями по очереди.
1. Аудиомодуль PYO
Инструмент модулей PYO в Python имеет примитивы, такие как математические операции, базовую обработку сигналов: задержки, генераторы синтеза, фильтры и многое другое. Но он также объединяет алгоритмы для создания звуковой грануляции и многих других художественных звуковых операций.
Используя библиотеку pyaudio, пользователи могут классифицировать неизвестные звуки, выполнять контролируемую и неконтролируемую сегментацию, извлекать звуковые функции и представления, обнаруживать звуковые события и отфильтровывать периоды тишины из длинных записей, применять уменьшение размерности для визуализации аудиоданных и сходства контента и многое другое.
Эта библиотека предоставляет привязки для PortAudio. Пользователи могут использовать эту библиотеку для воспроизведения и записи звука на разных платформах, таких как Windows, Mac и Linux. Для воспроизведения звука с помощью библиотеки pyaudio пользователь должен писать в .stream.
Здесь пользователи могут заметить, что воспроизведение звука с использованием библиотеки pyaudio может быть немного сложнее по сравнению с другими библиотеками воспроизведения звука. Вот почему эта библиотека может быть не лучшим выбором пользователей для воспроизведения звука в своих проектах или приложениях.
Хотя библиотека pyaudio обеспечивает более низкоуровневое управление, что позволяет пользователям устанавливать параметры для своих устройств ввода и вывода. Эта библиотека также позволяет пользователям проверять загрузку своего процессора и активность ввода-вывода.
Библиотека Pyaudio также позволяет пользователям воспроизводить и записывать звук в режиме обратного вызова, где указанная функция обратного вызова вызывается, когда новые данные необходимы для воспроизведения и доступны для записи. Это особенности библиотеки pyaudio, которые отличают ее от других аудиобиблиотек и модулей. Эта библиотека специально используется, если пользователь хочет воспроизвести звук помимо простого воспроизведения.
3. Dejavu
Модуль Dejavu превосходит распознавание отдельных сигналов с реалистичным количеством шума. Есть две формы, в которых пользователь может использовать Дежавю для распознавания звука:
- Пользователь может распознавать аудио, читая и обрабатывая аудиофайлы на диске.
- Пользователь может использовать микрофон компьютера.
4. Mingus
Пакет Mingus можно использовать для образовательных инструментов, для создания редакторов для песен, а также во многих других приложениях и программах, в которые пользователи хотят импортировать функцию обработки и воспроизведения музыки.
Этот пакет представляет собой теорию музыки и включает в себя такие темы, как гаммы, прогрессии, аккорды и интервалы. Mingus тестирует эти компоненты и использует для создания и распознавания музыкальных элементов с помощью удобных сокращений.
5. hYPerSonic
6. Pydub
Однако пользователи могут открывать и сохранять файл WAV с помощью библиотеки pydub без каких-либо зависимостей. Но пользователям необходимо установить пакет для воспроизведения звука, если они хотят воспроизводить звук.
Следующий код можно использовать для воспроизведения файла WAV с помощью pydub:
Если пользователь хочет воспроизводить другие форматы аудиофайлов, такие как файлы MP3, им следует установить libav или FFmpeg.
После установки FFmpeg пользователю необходимо внести небольшое изменение в код для воспроизведения файла MP3.
Используя оператор AudioSegment.from_file(имя_файла, тип_файла), пользователи могут воспроизводить любой формат аудиофайла, поддерживаемый ffmpeg.
Библиотека Pydub также позволяет пользователям сохранять аудио в различных форматах файлов. Пользователи также могут рассчитать длину аудиофайлов, использовать кроссфейды в аудио с помощью этой библиотеки.
7. Simpleaudio
В файле формата WAV сохраняется категоризация битов, которая представляет необработанные аудиоданные, а также хранятся заголовки вместе с метаданными в формате файла обмена ресурсами.
Окончательная запись состоит в том, чтобы сохранять каждый аудиосэмпл, который представляет собой конкретную точку данных, относящуюся к давлению воздуха, как при 44200 выборок в секунду, 16-битное значение для записей компакт-дисков.
Для уменьшения размера файла этого достаточно для хранения нескольких записей, таких как человеческая речь, с более низкой частотой дискретизации, например 8000 выборок в секунду. Однако более высокие звуковые частоты не могут быть представлены достаточно точно.
Некоторые из библиотек и модулей, обсуждаемых в этой статье, воспроизводят и записывают байтовые объекты, а некоторые из них используют массивы NumPy для записи необработанных аудиоданных. Оба напоминают категоризацию точек данных, которые можно воспроизводить с определенной частотой дискретизации для воспроизведения звука.
Пользователи могут воспроизводить массивы NumPy и байтовые объекты в библиотеке simpleaudio с помощью оператора simpleaudio.play_buffer(). Но перед этим пользователи должны убедиться, что они уже установили библиотеки NumPy и simpleaudio.
Пример: сгенерировать массив Numpy, соответствующий тону 410 Гц.
8. winsound
В модуле winsound файл WAV можно воспроизвести с помощью всего нескольких строк кода.
Модуль winsound не поддерживает никаких форматов файлов, кроме файлов WAV. Это позволяет пользователям подавать звуковой сигнал своим динамикам, используя выражение winsound.Beep(частота, продолжительность).
9. python-sounddevice
Если пользователь хочет воспроизвести файл WAV, он должен установить NumPy и звуковой файл, чтобы открыть формат аудиофайла в файлах WAV в виде массивов NumPy.
Оператор sound_file.read() используется для извлечения необработанных аудиоданных, а также частоты дискретизации файла, которые хранятся в заголовке формата файла обмена ресурсами. Оператор sound_device.wait() используется для того, чтобы убедиться, что сценарий завершается только после завершения воспроизведения звука.
10. playsound
Модуль playsound используется для файлов, отформатированных в файл WAV и файл MP3, а также может работать с другими форматами файлов.
Заключение:
В этой статье мы обсудили различные типы библиотеки Python и модулей, которые используются для воспроизведения и записи различных типов аудиофайлов и звуков. Здесь мы объяснили различные функции и важность каждой библиотеки и модулей для воспроизведения звуков в проекте разработки и модификации приложений и программного обеспечения.
Масса приложений записывает голос и воспроизводит звуки, если вы тоже этого хотите, то попали в нужное место и в нужное время. В этом уроке мы будем использовать разные библиотеки Python для воспроизведения и записи звука на Python.
Давайте установим необходимые библиотеки для этого урока:
Аудиоплеер
Во-первых, начнем с самого простого модуля звукового сопровождения?, playsound :
Да, этот модуль нам нужен и это, в основном, чистый Python, кроссплатформенный, однофункциональный модуль. В документации сказано, что работают расширения WAV и MP3, а также есть и другие форматы аудиозаписи.
Функция playsound() воспроизводит звук аудиофайла и блокирует его до тех пор, пока чтение файла не будет завершено. Можете передать block = False для того, что-бы функция работала асинхронно.
Другой альтернативой является использование библиотеки Pydub :
Примечание: на вашем компьютере должен быть установлен ffmpeg , чтобы использовать функцию AudioSegment.from_file() , которая поддерживает все форматы, поддерживаемые ffmpeg.
Если вы хотите воспроизводить аудио с помощью PyAudio, пройдите по этой ссылке.
Диктофон
Для записи голоса воспользуемся библиотекой PyAudio, так как это наиболее удобный подход:
Приведенный выше код в основном инициализирует объект PyAudio , а затем мы открываем объект потока, который позволяет нам записывать с микрофона с помощью метода stream.read() . После того, как мы закончили запись, используем встроенный волновой модуль для записи аудиофайла WAV на диск.
Если вы установите input = True в методе p.open() , то сможете использовать stream.read() для записи с микрофона. Кроме того, если вы установите output = True , то сможете использовать stream.write() для воспроизведения через динамик.
Заключение
Хорошо, здесь вы узнали, как воспроизводить аудиофайлы с помощью библиотек playsound , Pydub и PyAudio, а также записывать голос с помощью PyAudio.
Читайте также: