Вступление
Pyaudio позволяет нам играть и записывать звуки с Python. Играть в MP3, однако, Нам сначала нужно преобразовать файл MP3 в формат WAV с FFMPEG Отказ Чтобы использовать FFMPEG в Python, мы используем интерфейсный инструмент под названием Pydub, который напрямую называет наш исполняемый файл FFMPEG и интегрируется с Pyaudio.
Установка
pip install pyaudio pip install pydub
Игра на звук
from pydub import AudioSegment song = AudioSegment.from_mp3('test.mp3') play(song)
Если FFMPEG не установлен на машине, аудиосемент не сможет найти файл MP3. Есть несколько решений:
- Установите FFMPEG и добавьте в путь среды
- Скопируйте FFMPEG в ту же папку, что и файл Python
- Статическая ссылка FFMPEG в Pydub
Давайте поговорим о третьем варианте.
Статическое связывание FFMPEG
Статическим связей FFMPEG наша программа будет портативной: пользователи не должны вручную установить FFMPEG в свою ОС.
Скачать FFMPEG и скопируйте его в свой справочник сценария.
import os import platform from pathlib import Path from pydub import AudioSegment AudioSegment.ffmpeg = path_to_ffmpeg() platform_name = platform.system() if platform_name == 'Windows': os.environ["PATH"] += os.pathsep + str(Path(path_to_ffmpeg()).parent) else: os.environ["LD_LIBRARY_PATH"] += ":" + str(Path(path_to_ffmpeg()).parent) def path_to_ffmpeg(): SCRIPT_DIR = Path(__file__).parent if platform_name == 'Windows': return str(Path(SCRIPT_DIR, "win", "ffmpeg", "ffmpeg.exe")) elif platform_name == 'Darwin': return str(Path(SCRIPT_DIR, "mac", "ffmpeg", "ffmpeg")) else: return str(Path(SCRIPT_DIR, "linux", "ffmpeg", "ffmpeg")) song = AudioSegment.from_mp3('test') play(song)
Теперь программа должна быть в состоянии запустить и воспроизводить файл MP3. Путь, добавленная в среду ОС, является временным и исчезнет, когда программа Python будет завершена.
Оригинал: “https://dev.to/mathewthe2/playing-mp3-files-in-python-with-pydub-and-pyaudio-579i”