树莓派上播放音乐

转载自:https://ee-fans.com/在树莓派上用python播放音乐的几种方法/,侵删。

使用vlc Python binding模块播放成功。

在树莓派上播放音乐的方式有很多,最简单的是调用系统命令来播放,一般使用如下命令即可:

import os
os.system("player XXX.mp3")       #player指播放器,是你系统上可以播放音乐的软件

但是这种方式有一个问题,就是一旦开始播放便不好通过程序控制播放过程,因为这一命令会fork一个进程来运行命令,即使结束当前的命令也无法退出。那么,有没有其他方法可以控制播放的启停呢?当然!下面我们就来看看其他的播放音乐的方式:

使用pygame

from pygame import mixer  # Load the popular external library

mixer.init()
mixer.music.load('e:/LOCAL/Betrayer/Metalik Klinik1-Anak Sekolah.mp3')
mixer.music.play()

当然,在使用之前应该先安装pygame库:

pip3 install pygame         #Python3
pip install pygame          #Python2

这个库对于MP3文件的支持有限,其官网称在Debian系统下可能会崩溃,而树莓派官方系统就是在Debian的基础上制作的,因此不是很推荐这一方法。具体参考这一网址。

使用vlc Python binding模块

在使用前需要安装python-vlc模块:

pip3 install python-vlc         #Python3
pip install python-vlc          #Python2

除此之外,还需要安装vlc播放器,因为这一模块运行需要vlc播放器的运行时库。vlc播放器可以使用如下命令安装(树莓派官方系统预装了这一软件,可以跳过):

sudo apt-get install vlc -y         #Debian, Ubuntu等支持apt-get命令的系统

此外,还要安装pulseaudio:

sudo apt-get install pulseaudio -y

准备就绪后可以使用如下代码播放音频:

import vlc
p = vlc.MediaPlayer("file:///path/to/track.mp3")
p.play()

使用如下代码停止播放:

p.stop()

可能遇到的问题:

[0a27ad50] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[0a351e20] vlcpulse audio output error: PulseAudio server connection failure: Connection refused

解决方法如下:

rm -r ~/.pulse
rm -r ~/.pulse-cookie
rm -r ~/.config/pulse
sudo pulseaudio -k
pulseaudio --start

总结

除了上述两种方法之外还有很多其他方法,例如使用pydub模块来读入数据并转成wav音频文件然后使用pygame播放(基于pygame对mp3文件的支持有限),或者在Jupyter notebook环境下使用IPython.display来播放。甚至于还可以使用webbrowser模块在网页上播放。方法很多,在这只选了pygame这一常用方法以及vlc这一好用的方法来做介绍。

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
树莓派可以通过语音指令或者语音识别来播放音乐。以下是一个简单的示例: 1. 安装音频播放器软件。树莓派可以安装多种音频播放器软件,比如MPlayer、OMXPlayer等。你可以使用以下命令安装MPlayer: ``` sudo apt-get update sudo apt-get install mplayer ``` 2. 安装语音识别软件。树莓派可以使用多种语音识别软件,比如PocketSphinx、Google Speech Recognition等。你可以使用以下命令安装PocketSphinx: ``` sudo apt-get update sudo apt-get install pocketsphinx ``` 3. 编写Python脚本。以下是一个简单的Python脚本,使用PocketSphinx进行语音识别,然后使用MPlayer播放音乐: ``` #!/usr/bin/env python import os import pocketsphinx import pyaudio # 定义语音识别器 config = pocketsphinx.Decoder.default_config() config.set_string('-hmm', '/usr/local/share/pocketsphinx/model/en-us/en-us') config.set_string('-dict', '/usr/local/share/pocketsphinx/model/en-us/cmudict-en-us.dict') config.set_string('-lm', '/usr/local/share/pocketsphinx/model/en-us/en-us.lm.bin') decoder = pocketsphinx.Decoder(config) # 定义音频播放器 player = "mplayer" # 定义语音输入 CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 16000 RECORD_SECONDS = 3 # 启动录音 p = pyaudio.PyAudio() stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) while True: # 读取语音输入 print("Say something...") frames = [] for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) audio = b''.join(frames) # 进行语音识别 decoder.start_utt() decoder.process_raw(audio, False, True) decoder.end_utt() result = decoder.hyp().hypstr print("You said: " + result) # 播放音乐 if "play music" in result: os.system(player + " /path/to/music.mp3") ``` 4. 运行Python脚本。使用以下命令运行Python脚本: ``` python music_player.py ``` 当你说出“play music”时,树莓派会自动播放音乐
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值