Рубрики
Без рубрики

Играть в MP3 файлы в Python с Pydub и Pyaudio

Введение Pyaudio позволяет нам играть и записывать звуки с Python. Играть в MP3, однако … Tagged с Python, учебником.

Вступление

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. Есть несколько решений:

  1. Установите FFMPEG и добавьте в путь среды
  2. Скопируйте FFMPEG в ту же папку, что и файл Python
  3. Статическая ссылка 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”