Как установить portaudio windows

Обновлено: 04.07.2024

2.5. Библиотека PortAudio: запись и воспроизведение

PortAudio является аудио-библиотекой, которая дает Audacity возможность воспроизводить и записывать звук независимо от используемой платформы. Без нее Audacity не сможет использовать звуковую карту устройства, на котором оно работает. В PortAudio предоставляются кольцевые буферы, средства, позволяющие изменять частоту дискретизации при воспроизведении/записи, и, самое главное, предоставляется интерфейс API, который скрывает различия между аудиообработкой на платформах Mac, Linux и Windows. В PortAudio есть файлы альтернативных реализаций для поддержки этого интерфейса API для каждой из платформ.

Мне никогда не нужно было копаться в PortAudio для того, чтобы разобраться, что там внутри происходит. Однако, полезно знать, как происходит взаимодействие с PortAudio. Audacity принимает пакеты данных от PortAudio (запись) и посылает их в PortAudio (воспроизведение). Стоит взглянуть на то, как именно происходит отправка и получение пакетов и как это согласуется с чтением и записью на диск и с обновлением экрана.

В одно и то же время происходят несколько различных процессов. Некоторые происходят часто, передавая небольшие объемы данных, и реакция на них должна быть быстрой. Другие происходят реже, передавая большие объемы данных, и точное время, когда это происходит, менее критично. В результате между процессами возникает рассогласование и для его выравнивания используются буферы. Вторую часть картины составляет то, что мы имеем дело с аудио устройствами, жесткими дисками и экраном. Мы не идем глубже и должны работать с тем интефейсом API, который нам предоставлен. Хотя для нас было бы лучше, чтобы каждый из наших процессов выглядел одинакового, например, чтобы каждый из них работал через wxThread, но у нас нет такой возможности (рис. 2.4).


Рис.2.4: Потоки и буферы, используемые при воспроизведении и записи

Один аудио поток запускается кодом PortAudio и непосредственно взаимодействует с аудиоустройством. Это тот поток, который управляет записью и воспроизведением. Этот поток должен реагировать быстро, иначе пакеты будут потеряны. Поток, находящийся под управлением кода PortAudio, называется audacityAudioCallback , который, когда происходит запись, добавляет вновь поступившие небольшие пакеты к большему (в пять секунд) буферу захвата. При воспроизведении он берет небольшие кусочки данных из буфера воспроизведения, размер которого равен пяти секундам. Библиотека PortAudio ничего не знает о wxWidgets и поэтому этот поток, созданный PortAudio, является потоком pthread.

Второй поток запускается код в классе AudioIO в Audacity. При записи, AudioIO берет данные из буфера захвата и добавляет их в дорожки Audacity, которые, в конечном счете, будут отображаться на экране. Кроме того, когда будет добавлено достаточное количество данных, AudioIO записывает данные на диск. Этот же поток при воспроизведении аудиозаписей также выполняет операции чтения с диска. Здесь функция AudioIO::FillBuffers является ключевой функцией и, в зависимости от настроек некоторых логических переменных, обрабатывает как запись, так и воспроизведение. Важно, чтобы обоих направлениях работала одна функция. Когда происходит «программное воспроизведение», при котором вы накладываете одну запись на другую, которая была записана ранее, одновременно используются части - часть записи и часть воспроизведения, Поток AudioIO мы полностью отдали на откуп операциям ввода/вывода на диск, которые выполняются операционной системой. Во время чтения или записи на диск мы можем останавливаться на неопределенный промежуток времени. Мы не могли вставить эти операции чтения или записи в функцию audacityAudioCallback , поскольку она должна реагировать достаточно быстро.

Связь между этими двумя потоками происходит через общие переменные. Поскольку мы контролируем, какие потоки осуществляют записи в эти переменные, нам не требуются более дорогостоящие механизмы типа mutexe (механизм управления взаимодействующими процессами).

Как в случае воспроизведения, так и в случае записи, имеется дополнительное требование: Audacity также должна обновлять графический пользовательский интерфейс. Это наименее критичная по времени операция. Обновление происходит в основном потоке графического пользовательского интерфейса и выполняется по таймеру, который тикает двадцать раз в секунду. Этот тик таймера вызывает TrackPanel::OnTimer , и, если обнаружено, что необходимо обновление графического интерфейса, то эти обновления выполняются. Такой поток, обслуживающий графический пользовательский интерфейс, создается в wxWidgets, а не нашем собственном коде. Особенность его в том, что другие потоки не могут напрямую обновлять графический пользовательский интерфейс. Использование таймера для доступа к графическому пользовательскому интерфейсу для проверки того, нужно ли обновление экрана, позволяет сократить количество перерисовок до уровня, который приемлем для быстро работающих дисплеев и не требует от процессора слишком больших затрат на выдачу изображения.

Хорошим ли проектным решением является использование потока аудиоустройства, потока буфера/диска и потока графического пользовательского интерфейса с таймером, по которому происходят все эти перенаправления аудиоданных? Это специальное решение, представляющее собой три различных потока, которые не заданы в одном абстрактном базовом классе. Впрочем, такая специфика в значительной степени продиктована используемым нами библиотеками. Предполагается, что PortAudio создает собственный поток. Во фреймворке wxWidgets автоматически создается поток графического пользовательского интерфейса. Наша потребность в использовании потока заполнения буфера обусловлена тем, что нам нужно скорректировать несогласованность между достаточно частыми небольшими пакетами потока аудиоустройства и менее частыми, но большими пакетами дискового устройства. То, что мы используем эти библиотеки, дает нам определенные преимущества. Плата за использование библиотек состоит в том, что мы, в конечном итоге, пользуемся только теми абстракции, которые они нам предлагают. В результате мы копируем данные из одного места в памяти в другое в гораздо большем объеме, чем это необходимо. В быстрых коммутаторах данных, с которыми я работал, я видел чрезвычайно эффективный код для обработки рассогласования подобного рода, в которых использовались прерывания и, вообще, не использовались потоки. Повсюду передавались указатели на буферы, а не копировались данные. Вы можете применять этот подход только в том случае, если библиотеки, которыми вы пользуетесь, разработаны так, что позволяют работать с абстракцией буфера, обладающей большими возможностями. Воспользовавшись существующими интерфейсами, мы вынуждены пользоваться потоками и вынуждены копировать данные.

В этой статье мы обсудим 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 и модулей, которые используются для воспроизведения и записи различных типов аудиофайлов и звуков. Здесь мы объяснили различные функции и важность каждой библиотеки и модулей для воспроизведения звуков в проекте разработки и модификации приложений и программного обеспечения.

Файл portaudio_x64.dll, также известный как файл Dynamic Link Library, был создан компанией TechSmith для разработки Camtasia 2019 19.0.7.5034. Файлы DLL относятся к категории типов файлов Win64 DLL (Библиотека динамической компоновки).

Файл portaudio_x64.dll впервые был выпущен в ОС Windows 10 08/27/2019 с Camtasia 2019 19.0.7.5034. Согласно нашим сведениям, это единственная версия файла от компании TechSmith.

В этой статье приведены подробные сведения о portaudio_x64.dll, руководство по устранению неполадок с файлом DLL и список версий, доступных для бесплатной загрузки.




Совместимость с Windows 10, 8, 7, Vista, XP и 2000

Средняя оценка пользователей

Сведения о разработчике и ПО
Программа: Camtasia 2019 19.0.7.5034
Разработчик: TechSmith
Программное обеспечение: Camtasia 2019
Версия ПО: 19.0.7.5034
Сведения о файле
Точка входа: 0x20b70
Размер кода: 135168
Информация о файле Описание
Размер файла: 211 kB
Дата и время изменения файла: 2019:11:01 16:26:52+00:00
Тип файла: Win64 DLL
Тип MIME: application/octet-stream
Тип компьютера: AMD AMD64
Метка времени: 2018:08:17 19:20:01+00:00
Тип PE: PE32+
Версия компоновщика: 14.14
Размер кода: 135168
Размер инициализированных данных: 82944
Размер неинициализированных данных: 0
Точка входа: 0x20b70
Версия ОС: 6.0
Версия образа: 0.0
Версия подсистемы: 6.0
Подсистема: Windows GUI

✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.

Ошибки библиотеки динамической компоновки portaudio_x64.dll

Файл portaudio_x64.dll считается разновидностью DLL-файла. DLL-файлы, такие как portaudio_x64.dll, по сути являются справочником, хранящим информацию и инструкции для исполняемых файлов (EXE-файлов), например OneDriveSetup.exe. Данные файлы были созданы для того, чтобы различные программы (например, Camtasia 2019) имели общий доступ к файлу portaudio_x64.dll для более эффективного распределения памяти, что в свою очередь способствует повышению быстродействия компьютера.

  • Нарушение прав доступа по адресу — portaudio_x64.dll.
  • Не удается найти portaudio_x64.dll.
  • Не удается найти C:\Program Files\TechSmith\Camtasia 2019\portaudio_x64.dll.
  • Не удается зарегистрировать portaudio_x64.dll.
  • Не удается запустить Camtasia 2019. Отсутствует требуемый компонент: portaudio_x64.dll. Повторите установку Camtasia 2019.
  • Не удалось загрузить portaudio_x64.dll.
  • Не удалось запустить приложение, потому что не найден portaudio_x64.dll.
  • Файл portaudio_x64.dll отсутствует или поврежден.
  • Не удалось запустить это приложение, потому что не найден portaudio_x64.dll. Попробуйте переустановить программу, чтобы устранить эту проблему.

Файл portaudio_x64.dll может отсутствовать из-за случайного удаления, быть удаленным другой программой как общий файл (общий с Camtasia 2019) или быть удаленным в результате заражения вредоносным программным обеспечением. Кроме того, повреждение файла portaudio_x64.dll может быть вызвано отключением питания при загрузке Camtasia 2019, сбоем системы при загрузке portaudio_x64.dll, наличием плохих секторов на запоминающем устройстве (обычно это основной жесткий диск) или, как нередко бывает, заражением вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.


Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.

Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):

Если на этапе 1 не удается устранить ошибку portaudio_x64.dll, перейдите к шагу 2 ниже.


Шаг 2. Если вы недавно установили приложение Camtasia 2019 (или схожее программное обеспечение), удалите его, затем попробуйте переустановить Camtasia 2019.

Чтобы удалить программное обеспечение Camtasia 2019, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):

После полного удаления приложения следует перезагрузить ПК и заново установить Camtasia 2019.

Если на этапе 2 также не удается устранить ошибку portaudio_x64.dll, перейдите к шагу 3 ниже.


Camtasia 2019 19.0.7.5034

Шаг 3. Выполните обновление Windows.


Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла portaudio_x64.dll. Мы храним полную базу данных файлов portaudio_x64.dll со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии Camtasia 2019 . Чтобы загрузить и правильно заменить файл, выполните следующие действия:

Windows 10: C:\Program Files\TechSmith\Camtasia 2019\

Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.

СОВЕТ ОТ СПЕЦИАЛИСТА: Мы должны подчеркнуть, что переустановка Windows является достаточно длительной и сложной задачей для решения проблем, связанных с portaudio_x64.dll. Во избежание потери данных следует убедиться, что перед началом процесса вы создали резервные копии всех важных документов, изображений, установщиков программного обеспечения и других персональных данных. Если вы в настоящее время не создаете резервных копий своих данных, вам необходимо сделать это немедленно.

«Советы по разработке» Python аудио инструмент управления PyAudio учебник


0. Введение

Когда вам нужно использовать Python для обработки аудиоданных, необходимо использовать Python для чтения и воспроизведения звуков. Ниже представлен полезный инструментарий PyAudio для обработки аудио.

PyAudio - это набор инструментов с открытым исходным кодом Python, как следует из названия, это набор инструментов, обеспечивающий голосовые операции. Предоставляют такие функции, как обработка записи и воспроизведения, которые можно рассматривать как OpenCv в голосовом поле.

1. Введение

PyAudio - это кроссплатформенная библиотека ввода-вывода аудиоPortAudioпри условииPythonСвязывание. С PyAudio вы можете легко использовать Python для воспроизведения и записи звука на различных платформах, таких как GNU / Linux, Microsoft Windows и Apple Mac OS X / macOS.

PyAudio был вдохновлен:

    :PortAudio v18Привязки API Python. : Кроссплатформенный звуковой инструментарий для Tcl / Tk и Python.

2. установка

Текущая версияPyAudio v0.2.11, Используйте pip для установки PyAudio на большинстве платформ. Для версий, предшествующих v0.2.9, PyAudio распространяет установочные двоичные файлы, эти файлыАрхив здесь。

Microsoft Windows

  • Если pip еще не связан с вашей установкой Python, пожалуйста,здесьПолучи это.
  • pip получит и установит PyAudio round (предварительно упакованные двоичные файлы). В настоящее время существуют колеса, совместимые с Python 2.7, 3.4, 3.5 и 3.6Официальный релиз, Для этих версий могут использоваться 32-битные и 64-битные диски.
  • Эти двоичные файлы включают PortAudio v19 v190600_20161030, созданный с использованием MinGW. Они поддерживают только Windows MME API,неВключая поддержку DirectX, ASIO и т. Д. Если вам нужно поддерживать API, которые не включены, вам необходимо скомпилировать PortAudio и PyAudio.

Apple Mac OS X.

ИспользоватьHomebrewУстановите необходимую библиотеку portaudio, затем используйте pip для установки PyAudio:

  • Если он не установлен, пожалуйста, скачайтеHomebrew。
  • pip загрузит исходный код PyAudio и соберет его для вашей версии Python.
  • Homebrew и сборка PyAudio также должны установить инструмент командной строки Xcode (Больше информации)。

Debian / Ubuntu

Установите PyAudio с помощью менеджера пакетов:

Если у вас не установлена ​​последняя версия PyAudio, установите ее, используя pip:

  • pip загрузит исходный код PyAudio и соберет его для вашей системы. Пожалуйста, не забудьте установить пакет разработки библиотеки portaudio заранее ( portaudio19-dev ) И набор разработчика Python ( python-all-dev )。
  • Чтобы лучше изолировать системный пакет, рассмотритеvirtualenv вУстановите PyAudio.

Источник PyAudio

Или клонировать репозиторий git:

Чтобы собрать PyAudio из исходного кода, вам также необходимо собратьPortAudio v19, Некоторые инструкции по сборке PyAudio для различных платформ смотритеСоветы по компиляции, Чтобы построить PyAudio с помощью Microsoft Visual Studio, посмотрите Себастьяна Одетобъяснение。

3. Примеры

1). Собрать аудио

Следующий код демонстрирует, как собрать аудиофайл с микрофона компьютера за 4 секунды и сохранить файл output.wav

Используя модуль tqdm, вы можете легко отобразить процесс чтения следующим образом:

Чтобы использовать PyAudio, сначала используйте pyaudio.PyAudio() (1) Создание PyAudio, который устанавливает систему portaudio.

Для записи или воспроизведения аудио используйте pyaudio.PyAudio.open() (2) Откройте поток требуемых параметров звука на требуемом устройстве. Это установлено pyaudio.Stream Воспроизвести или записать аудио.

Используя потоковую передачу pyaudio.Stream.write() Аудио данные или использовать потоковые аудио данные для воспроизведения аудио pyaudio.Stream.read() 。(3)

Обратите внимание, что в «режиме блокировки» каждый pyaudio.Stream.write() или pyaudio.Stream.read() Блокируйте, пока все заданные / запрошенные кадры не будут воспроизведены / записаны. В качестве альтернативы, чтобы динамически генерировать аудиоданные или немедленно обрабатывать записанные аудиоданные, используйте «режим обратного вызова», описанный ниже.

Использовать pyaudio.Stream.stop_stream() Приостановить воспроизведение / запись и pyaudio.Stream.close() Останови поток. (4)

Наконец, используйте pyaudio.PyAudio.terminate() (5) Завершить сеанс portaudio

2). Воспроизвести аудио

Далее используется функция воспроизведения для воспроизведения аудиовыхода. Wav, сохраненный в 1)

Через tqdm отобразите индикатор выполнения воспроизведения следующим образом:

2). Воспроизведение аудио в режиме обратного вызова

Когда вам нужно воспроизвести аудио во время выполнения других программ, вы можете использовать метод обратного вызова для воспроизведения. Пример кода следующий:

Читайте также: