当前位置:首页 > 技术分享 > 正文内容

在 Raspberry Pi 上使用 Python 播放声音

lmwmm4年前 (2022-04-06)技术分享5223

今天,我需要在 Python 脚本中通过树莓派上的 USB 音频设备播放 MP3 或 WAV 文件。应该很容易吧! ”我想!


在 Raspberry Pi 上使用 Python 播放声音

好吧,几个小时后,我决定写这篇博客文章来记录最简单的方法,因为我不得不花费相当长的时间才能到达真正通过 USB 音频输出播放声音的地步。

问题在于大多数指南,例如来自 Raspberry Pi 项目站点的这个简单指南,假设有两件事:

  1. 您的 Raspberry Pi 有一个已经可以使用的默认声音设备(例如0

  2. 您正在以交互方式运行代码或以某种方式运行代码,而无需了解底层 API 的工作原理

就我而言,问题是,在无头 Raspberry Pi Zero 上运行 USB 声音设备,这些假设都不是真的。

让 USB 音频正常工作

第一步是检测 USB 音频设备,并告诉您的系统将其用作默认音频设备。还有其他方法可以在 Python 代码本身中检测和/或选择特定设备,但如果您可以在系统范围内设置默认值并让 Python 使用该默认值,这是最简单的。

首先,您需要确保您的声音设备(在我的例子中是一个 9 美元的 Vantec NBA-120U 适配器)被识别。运行以下命令,您应该会看到它列为名称中带有“USB”的设备:

$ cat /proc/asound/modules
 1 snd_usb_audio

一些 Pi 模型也会显示一个0内置设备(例如模型 B 版本上的声音输出)。默认情况下,ALSA(Advanced Linux Sound Architecture)音频系统0无论如何都会尝试使用 device 。要告诉它使用设备1snd_usb_audio设备),您可以配置全局/etc/asound.conf文件或用户本地~/.asoundrc文件。

在这两个文件之一(我选择配置 Pi 用户的~/.asoundrc文件)中,放入以下内容:

pcm.!default {
        type hw
        card 1
}

ctl.!default {
        type hw
        card 1
}

这告诉 ALSA 默认card 1使用 USB 设备。现在,要测试它是否正常工作,请将耳机或扬声器插入输出,然后运行:

$ speaker-test -c2 -twav -l7

您应该开始通过扬声器或耳机听到“左前”和“右前”之类的声音。

播放声音pygame.mixer

对于我的Raspberry Pi Bell Slapper项目,我有一个简单的“ding.wav”文件,它是铃声的声音。我想设置它,这样树莓派不仅会发出带有连接到树莓派 GPIO 的螺线管的物理铃铛,而且还会通过扬声器发出叮当声,因此有人可以在另一个房间听到叮当声。

这是播放文件所需的最少 Python 代码pygame

import pygame

pygame.mixer.init()
sound = pygame.mixer.Sound('/home/pi/ding.wav')
playing = sound.play()
while playing.get_busy():
    pygame.time.delay(100)

这需要pygame,它可以与pip3 install pygame如果没有所需的混音器库,Pygame 也会失败,因此您还需要运行apt-get install libsdl2-mixer-2.0-0.

完成此操作后,您应该能够运行脚本 ( python3 play-sound.py),并且它应该会播放文件。

最后的while循环很重要——没有它,脚本将在声音有机会播放之前退出!



扫描二维码推送至手机访问。

版权声明:本文由点度点度金讯时代-BLOG发布,如需转载请注明出处。

本文链接:https://lmwmm.com/post/283.html

分享给朋友:

“在 Raspberry Pi 上使用 Python 播放声音” 的相关文章

Google传喜讯:请在 AdSense 中验证您的付款地址

Google传喜讯:请在 AdSense 中验证您的付款地址

我们于 三月 09 2022给您在 AdSense 中向我们提供的付款地址寄去了一个 PIN 码,即个人识别码。您在收到 PIN 码邮件后,请点击本电子邮件中的验证您的地址,然后在 AdSense 首页上的验证卡片中输入您的 PIN 码。…

PC端微信接收的文件变只读?这可能是最好的解决办法

PC端微信接收的文件变只读?这可能是最好的解决办法

近日,不少读者在后台留言称,使用微信 PC 版接收的文档只能以“只读模式”打开,导致用户无法直接编辑保存。据众多网友反馈,这是自更新至 3.9 版本之后就遇到的问题,接受的文档无论是 Word 还是 Excel,以及无论是用 WPS 还是…

问情问心,又如何问得清

问情问心,又如何问得清

本篇文章来源于微信公众号: 美在高处…

微软Xbox Series S造型烤吐司机,玩转PG美时美刻游戏情怀!

微软Xbox Series S造型烤吐司机,玩转PG美时美刻游戏情怀!

微软在2021推出了备受PG SOFT电子游戏迷瞩目的Xbox Series X造型冰箱,现在他们与美国零售商Walmart合作,推出了Xbox Series S造型烤面包机。这款特殊的烤面包机看起来酷似Xbox Series S游戏主机,…

Switch平台迎来PG经典游戏:《蒙蒂鼹鼠系列》五款力作震撼登场

Switch平台迎来PG经典游戏:《蒙蒂鼹鼠系列》五款力作震撼登场

Pixel Games UK推出的街机动作冒险游戏《蒙蒂鼹鼠系列》已经成功登陆Nintendo Switch平台,为PG玩家呈现了一场别开生面的地下冒险。这个由五款游戏组成的奇妙合集带领玩家进入英国地下世界,跟随主角黄鼹鼠的足迹展开一场国际…

Apple Pencil或将融入iPhone:突破CQ9电子新时代

Apple Pencil或将融入iPhone:突破CQ9电子新时代

多年来,有关iPhone是否支持Apple Pencil触控笔的传闻一直在CQ9游戏圈流传,但遗憾的是,直到现在仍未实现。甚至有传言称,苹果在iPhone 14发布前临时取消了这一计划。然而,最新曝光的苹果此技术可能重新激起人们的期待。美国…