Как воспроизвести mp3 в python
Воспроизведение аудио с Python
Как я могу воспроизвести аудио (это будет похоже на 1-секундный звук) из скрипта Python?
Было бы лучше, если бы он был независимым от платформы, но сначала он должен работать на Mac.
Я знаю, что мог бы просто выполнить команду afplay file.mp3 из Python, но возможно ли это сделать в сыром Python? Я также был бы лучше, если бы он не полагался на внешние библиотеки.
19 ответов
Вы можете найти информацию об аудио Python здесь: http://wiki.python.org/moin/Audio/
Поместите это в начало написанного вами скрипта Python:
Mac OS Я перепробовал много кодов, но только это работает на меня
Взгляните на Simpleaudio, которая является относительно новой и легкой библиотекой для этой цели. :
Обязательно используйте несжатые 16-битные файлы PCM.
Ответ Аарона выглядит примерно в 10 раз сложнее, чем необходимо. Просто сделайте это, если вам нужен только ответ, который работает на OS X:
Изменить: я взял эту функцию и объединил ее с вариантами для Windows и Linux. В результате получается кросс-платформенный модуль на чистом питоне без зависимостей, который называется playsound. Я загрузил его в Pypi.
Затем запустите это так:
Это самый простой и лучший IV’e найден. Он поддерживает Linux / pulseaudio, Mac / coreaudio и Windows / WASAPI.
Pypi содержит список модулей для python в музыке. Моим любимым будет jython, потому что в нем больше ресурсов и библиотек для музыки. В качестве примера кода для воспроизведения одной заметки из учебника:
Чтобы воспроизвести звук уведомления с помощью python, вызовите музыкальный проигрыватель, например, vlc. VLC предложил мне использовать его версию командной строки, cvlc.
Требуется, чтобы vlc был предварительно установлен на устройстве. Проверено на Linux (Ubuntu 16.04 LTS); Запуск Python 3.5.
Попробуйте PySoundCard, который использует PortAudio для воспроизведения, доступный на многих платформах. Кроме того, он распознает «профессиональные» звуковые устройства с большим количеством каналов.
Вот небольшой пример из Readme:
В pydub мы недавно решил использовать ffplay (через подпроцесс) из набора инструментов ffmpeg, который внутренне использует SDL.
Я связал реализацию выше, но следует упрощенная версия:
edit : pydub теперь использует pyaudio для воспроизведения, когда он установлен, и возвращается к ffplay, чтобы избежать недостатков, которые я упомянул. Ссылка выше показывает и эту реализацию.
Можно воспроизводить аудио в OS X без каких-либо сторонних библиотек, используя аналог следующего кода. Необработанные аудиоданные могут быть введены с помощью wave_wave.writeframes. Этот код извлекает 4 секунды аудио из входного файла.
Попробуйте playsound, который представляет собой Pure Python, кросс-платформенный, одиночный функциональный модуль без зависимостей для воспроизведения звуков.
Установить через pip:
После установки вы можете использовать его следующим образом:
Лучше всего использовать pygame / SDL. Это внешняя библиотека, но она отлично поддерживается на разных платформах.
Более подробную документацию о поддержке аудиомикшера можно найти в pygame.mixer.music документации
AFAIK, в стандартной библиотеке есть только один модуль для воспроизведения звука: ossaudiodev. К сожалению, это работает только на Linux и FreeBSD.
ОБНОВЛЕНИЕ: есть также winsound, но, очевидно, это также зависит от платформы.
Для чего-то более независимого от платформы вам нужно использовать внешнюю библиотеку.
Пакет включает в себя предварительно скомпилированную библиотеку PortAudio для Mac OS X и Windows и может быть легко установлен с:
Он может воспроизводить звук из массивов NumPy, но также может использовать простые буферы Python (если NumPy недоступен).
Для воспроизведения массива NumPy это все, что вам нужно (при условии, что аудиоданные имеют частоту дискретизации 44100 Гц):
Дополнительную информацию можно найти в документации.
Он не может читать / записывать звуковые файлы, для этого вам понадобится отдельная библиотека.
Если вы используете OSX, вы можете использовать модуль «os» или «subprocess» и т. Д. Для вызова OSX «play». Из оболочки OSX это выглядит так
На моей машине начинает играть примерно полсекунды.
Воспроизведение аудио с помощью Python
Как я могу воспроизводить аудио (это будет похоже на 1-секундный звук) из скрипта Python?
было бы лучше, если бы он был независимым от платформы, но сначала он должен работать на Mac.
Я знаю, что могу просто выполнить afplay file.mp3 команда изнутри Python, но можно ли это сделать в raw Python? Я также был бы лучше, если бы он не полагался на внешние библиотеки.
21 ответов:
ваш лучший выбор, вероятно, чтобы использовать pygame / SDL. Это внешняя библиотека, но она имеет большую поддержку на различных платформах.
на pydub мы недавно решил использовать ffplay (через подпроцесс) из набора инструментов ffmpeg, который внутренне использует SDL.
Он работает для наших целей-в основном просто упрощает проверку результатов кода pydub в интерактивном режиме – но у него есть свои недостатки, например, появление новой программы в доке на mac.
я связал реализацию выше, но упрощенная версия следует:
edit: pydub теперь использует pyaudio для воспроизведения, когда он установлен, и возвращается к ffplay, чтобы избежать недостатков, о которых я упоминал. Ссылка выше показывает, что реализация также.
посмотри Simpleaudio, которая является относительно недавней и легкой библиотекой для этой цели:
убедитесь, что вы используете несжатые 16-битные файлы PCM.
AFAIK, стандартная библиотека имеет только один модуль для воспроизведения аудио:ossaudiodev. К сожалению, это работает только на Linux и FreeBSD.
обновление: есть также winsound, но очевидно, что это также зависит от платформы.
для чего-то более независимого от платформы, вам нужно будет использовать внешнюю библиотеку.
моя рекомендация это sounddevice модуль (но будьте осторожны, я автор).
пакет включает в себя предварительно скомпилированный PortAudio библиотека для Mac OS X и Windows, и может быть легко установлен с:
Он может воспроизводить звук из массивов NumPy, но он также может использовать простые буферы Python (если NumPy недоступен).
чтобы воспроизвести массив NumPy, это все, что вам нужно (при условии, что звуковые данные имеют частоту дискретизации 44100 Гц):
для более подробной информации, посмотрите на документация.
он не может читать/записывать звуковые файлы, для этого вам понадобится отдельная библиотека.
Если вам нужна портативная аудиотека Python, попробуйте PyAudio. Он, конечно, имеет порт mac.
Pyglet имеет возможность воспроизводить аудио через внешнюю библиотеку под названием AVbin. Pyglet-это оболочка ctypes вокруг собственных системных вызовов на каждой поддерживаемой платформе. К сожалению, я не думаю, что что-нибудь в стандартной библиотеке будет воспроизводить аудио.
Аарон кажется, примерно в 10 раз сложнее, чем необходимо. Просто сделайте это, если вам нужен только ответ, который работает на OS X:
одно дело. это немедленно возвращается. Таким образом, вы можете также сделать это, если хотите, чтобы вызов блокировался до тех пор, пока звук не закончится.
Edit: я взял эту функцию и объединил ее с вариантами для Windows и Linux. Результатом является чистый python, кросс-платформенный модуль без зависимости называются playsound. Я загрузил его в pypi.
затем запустите его следующим образом:
можно воспроизводить аудио в OS X без каких-либо сторонних библиотек, используя аналог следующего кода. Необработанные аудиоданные можно вводить с помощью wave_wave.writeframes. Этот код извлекает 4 секунды аудио из входного файла.
попробовать playsound который представляет собой чистый Python, кросс-платформенный, однофункциональный модуль без каких-либо зависимостей для воспроизведения звуков.
установить через pip:
после установки, вы можете использовать его как это:
вы не можете сделать это без нестандартного библиотека.
VLC имеет некоторые хорошие привязки python здесь, для меня это работало лучше, чем pyglet, по крайней мере, на Mac OS:
но это зависит от приложения VLC, к сожалению
попробовать PySoundCard который использует PortAudio для воспроизведения, которое доступно на многих платформах. Кроме того, он распознает «профессиональные» звуковые устройства с большим количеством каналов.
вот небольшой пример из Readme:
Pypi список модулей для Python в музыке. Мой любимый был бы jython потому что оно имеет больше ресурсов и библиотек для музыки. В качестве примера кода для воспроизведения одной ноты из учебник:
обновление: все это указывает как чтобы сделать то, что ОП хотел избежать делать в первую очередь. Я думаю, я разместил это здесь, потому что то, что OP хотел избежать, было информацией, которую я искал. Выкрикивает.
Если вы находитесь на OSX, вы можете использовать модуль «os» или «подпроцесс» и т. д. для вызова команды OSX «play». Из оболочки OSX это выглядит как
Он начинает играть примерно полсекунды на моей машине.
просто вы можете сделать это с помощью cvlc- Я сделал это таким образом:
/home/maulo/selfProject / task.mp3. это расположение моего mp3-файла. с помощью «—play-and-exit» вы сможете снова воспроизводить звук, не завершая процесс vlc.
Поместите это в верхней части вашего скрипта python, который вы пишете:
Если wav-файл находится в каталоге скрипта python: Если wav-файл не находится в каталоге скрипта python: Если вы хотите узнать больше об игре:
Это самый простой и лучший ИЖ е нашли. Он поддерживает Linux / pulseaudio, Mac / coreaudio и Windows/WASAPI.
чтобы воспроизвести звук уведомления с помощью python, вызовите музыкальный проигрыватель, например vlc. VLC предложил мне использовать его версию командной строки, cvlc, вместо этого.
он требует, чтобы vlc был предварительно установлен на устройстве. Протестировано на Linux (Ubuntu 16.04 LTS); работает Python 3.5.
Воспроизведение аудио файлов с Python
Я ищу хорошо поддерживаемую библиотеку Python, позволяющую воспроизводить аудиофайлы на моем Raspberry Pi с использованием стандартного аудиовыхода.
Пока я пробовал несколько, но ни один из них, кажется, не работает. Хотя pyglet работает на моем обычном компьютере нормально, он вызывает ошибку на Raspberry Pi. Есть ли библиотека Python, которая доказала свою простоту использования?
Я рекомендую широко популярную игру Pygame. Я могу ошибаться, но я считаю, что он предустановлен на Pi. Вы можете использовать музыкальный модуль Pygame Mixer для воспроизведения аудиофайлов. Я включил пример кода ниже.
ПРИМЕЧАНИЕ. Если это не помогло, перейдите в терминал и обновите систему
и попробуй еще раз.
Мне нужен был сценарий для воспроизведения песни с тридцати секунд на заднем плане, в то же время отвечая на ввод других пользователей. Я тогда хотел, чтобы это закончило песню на каком-то событии.
Я не думаю, что это особенно элегантно, но я открыл канал для фонового процесса MPlayer.
Затем, когда я захотел завершить процесс MPlayer, я просто написал «q» для выхода в канал.
Посмотрите в документации MPlayer все виды команд, которые вы можете передать таким образом, чтобы управлять воспроизведением.
Надеюсь, это несколько полезно!
Pygame почти наверняка более устойчив, но, я полагаю, зависит от ваших потребностей.
Я бы порекомендовал pyglet, а не pygame, если вам не нужна графика. На мой взгляд, это проще, элегантнее и лучше поддерживается. Опять же, я ожидаю, что это может быть дело вкуса.
Pygame дает вам простой и удобный способ загружать и воспроизводить звуки на разных каналах.
Вы можете использовать несколько внешних игроков через каналы. Тем не менее, вы почти всегда будете испытывать потерю скорости. Существует также проблема с управлением воспроизведением.
Я рекомендую вам pyaudio, он отлично работает.
Если вы хотите воспроизвести и сжатые файлы, я могу свободно указать вам на мой модуль decoder.py. Вы можете найти это на PyPI.
Он также использует подпроцесс, но вызывает декодеры вместо игроков. Они не используют много процессора, и некоторые из них знают, как использовать аппаратное ускорение. Затем вы можете использовать pyaudio или что-то еще для вывода необработанных аудиоданных. Если вы хотите, вы можете даже использовать pygame, используя pygame.sndarray. Таким образом, вы можете воспроизводить больше форматов, чем поддерживает Pygame.
Я пробовал decoder.py в среде PyQT GUI, с pyaudio, а также используя aplay в качестве внешнего проигрывателя. Это было на Raspberry Pi B.
Результаты были довольно удовлетворительными в обоих случаях.
Простота может быть поставлена под сомнение.
Как воспроизвести звук в python 3?
Я хотел написать сценарий python для воспроизведения звука (записанного с помощью рекордера windows)!
Я прочитал pygame может сделать эту работу и установил pygame! Но я не знаю, как написать код, который воспроизводит звук с определенного пути! Я должен воспроизвести аудиофайл, расположенный по адресу C:\Users\Asdf\Documents\Audio.wav
Но потом я получаю сообщение об ошибке:
Обратная трассировка (самый недавний призыв последнего): файл «», линия 1, в crash_sound = pygame.mixer.Sound(«crash.wav») AttributeError: ‘module’ объект не имеет атрибут ‘mixer’
Так как же мне написать сценарий для воспроизведения этого файла Audio.wav с помощью pygame?
Я использую версию Python 3.4 64 bit!
3 ответа
Я реализовал локальное уведомление в своем приложении, но мне просто интересно, есть ли способ воспроизвести звук, который не является частью NSMainbundle.Basically в моем приложении, я хочу, чтобы пользователь записал звук, который воспроизводится при генерации локального уведомления, а не.
Я пытаюсь воспроизвести этот звук в моем game. but по какой-то причине он работает, Может ли кто-нибудь объяснить мне, почему? var morning:Sound =new alarmclock (); var transforming:SoundTransform = new SoundTransform(0.5); var morningChannel:SoundChannel = morning.play(0,0,transforming);.
Я эффективно использовал pydub для этой цели. Модуль может быть установлен как
pydub действительно нуждается в установке FFMPEG. Подробности установки pydub и ffmpeg приведены @ https://github.com/jiaaro/pydub
Добавить python к windows 7 PATH
Установка pygame
Сначала вы хотите установить pygame. Вы можете сделать это несколькими способами. Но для установки из исходного кода
Работает pygame
Надеюсь, что это решит проблему для вас
Пример
Воспроизведение звука на windows (без pygame)
Вот простое решение, которое работает на всех платформах без каких-либо зависимостей, кроме одного файла Python.
Первая установка playsound с pip:
Затем импортируйте функцию с тем же именем из модуля и запустите ее. Довольно просто, не так ли?
Мне было интересно, можно ли воспроизвести звук непосредственно на входе из python. Я использую linux, и с этим я использую OSS, ALSA и Pulseaudio
Я смог воспроизвести простой звук этой строки кода: SystemSound.play(SystemSoundType.click); Как я могу воспроизвести настроенный звук? Скажем, короткий mp3
Похожие вопросы:
Мне было интересно, могу ли я в любом случае воспроизвести звук без импорта внешней библиотеки, такой как pygame. Что-то вроде этого: import os import sound mysound = sound.load(mysound.mp3) # gets.
Мне просто нужно воспроизвести простой звук, у меня есть приложение, которое отправляет сообщения, и мне нужно воспроизвести системный звук message sent, когда сообщение будет отправлено.
Я реализовал локальное уведомление в своем приложении, но мне просто интересно, есть ли способ воспроизвести звук, который не является частью NSMainbundle.Basically в моем приложении, я хочу, чтобы.
Я пытаюсь воспроизвести этот звук в моем game. but по какой-то причине он работает, Может ли кто-нибудь объяснить мне, почему? var morning:Sound =new alarmclock (); var transforming:SoundTransform.
Мне было интересно, можно ли воспроизвести звук непосредственно на входе из python. Я использую linux, и с этим я использую OSS, ALSA и Pulseaudio
Я смог воспроизвести простой звук этой строки кода: SystemSound.play(SystemSoundType.click); Как я могу воспроизвести настроенный звук? Скажем, короткий mp3
Мне было интересно, как воспроизвести какой-то звук по умолчанию в c++. Я не хочу загружать какие-либо дополнительные файлы (программы или музыку). Просто играть 2 или 3 ноты, как бип-бип. Как я.
Я делал игру в python году и хотел добавить звук, поэтому я так и сделал. Интересно, есть ли способ воспроизвести звук, но не приостановить rest моего кода? (использовал winsound)
Кто-нибудь знает сценарий о том, как воспроизвести звук, нажав на кнопку? Мой звук автоматически воспроизводится при обнаружении цели. И останавливается, когда цель потеряна. Теперь мне нужен.
Воспроизведение mp3 песни на питоне
Я хочу воспроизвести мою песню (mp3) с python, можете ли вы дать мне простейшую команду для этого?
13 ответов
Попробуй это. Это упрощенно, но, вероятно, не самый лучший метод.
Обратите внимание, что поддержка pygame для MP3 ограничена. Кроме того, как указал Сами Бенчериф, не будет любое глупое всплывающее окно Pygame при запуске кода выше.
Я попробовал большинство из перечисленных вариантов здесь и обнаружил следующее:
Для windows 10: похож на ответ @Shuge Lee;
Вам нужно запустить:
Для Mac: просто попробуйте следующее, которое запускает команду os,
Теперь вам может потребоваться внести небольшие изменения, чтобы это работало. Например, если игроку нужны дополнительные аргументы или вам не нужно указывать полный путь. Но это простой способ сделать это.
Использование довольно просто:
Возьмите модуль VLC Python, vlc.py, который обеспечивает полную поддержку libVLC, и вставьте его в пакеты сайтов. Потом:
И вы можете остановить это с помощью:
Этот модуль предлагает множество других возможностей (как практически все, что может сделать медиаплеер VLC), но это самый простой и эффективный способ воспроизведения одного MP3.
Вы можете поиграть с os.path, чтобы найти для вас путь к MP3, учитывая имя файла и, возможно, ограничивая каталоги поиска.
Полная документация и предварительно подготовленные модули доступны здесь. Текущие версии Python 3 совместимы.
Или используйте pygame, как упоминалось в другом ответе.