目录
一.利用pygame(略显麻烦,有时候播放不太正常)
1.安装依赖库
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame==2.5.2
2.代码
import pygame
def play_audio(audio_file):
pygame.mixer.init() # 初始化
pygame.mixer.music.load(audio_file) # 加载文件
pygame.mixer.music.play() # 播放
while pygame.mixer.music.get_busy(): # 等待播放完毕
pygame.time.Clock().tick(10)
if __name__ == '__main__':
audio_file = 'path/to/your/audio/file.mp3' # mp3的路径
play_audio(audio_file)
二.利用mpg123(简洁方便,但仅争对mp3)
1.安装依赖库
sudo apt-get install mpg123 # 安装环境
2.代码
import os
os.system('mpg123 /home/pi/Desktop/music/爱你.mp3') # 这里MP3文件路径
# 注意:只有播放完音频才往后执行。
三.利用sox(简单方便,支持的文件格式多)
1.安装依赖库
sudo apt-get install sox # 安装环境
2.代码
import os
os.system('play /home/pi/Desktop/music/爱你.mp3') # 这里MP3文件路径
# 注意:只有播放完音频才往后执行。
四.语音识别(录音)
(1)查看录音设备
arecord -l
(2)定时录音命令
arecord -D "plughw:2,0" -f S16_LE -r 16000 -d 5 question1.wav
# 参数介绍
-D "plughw:2,0" 2,0 表示card2 device 0
-f S16_LE 指定录音格式
-r 16000 指定了采样率,单位时Hz
-d 指定录音的时长,单位时秒
question1.wav 文件名称及格式
(3)不定时录音命令
arecord -D "plughw:2,0" -f S16_LE -r 16000 question1.wav
# 按ctrl + C来结束录音。
(4)python脚本控制
import os
import threading
def print_time(t):
t= t+1
os.system('clear') # 清除上一条命令
print("times:", t,"s, (Ctrl + C to Stop!)")
timer = threading.Timer(1, lambda: print_time(t))
timer.start()
timer = threading.Timer(1, lambda: print_time(0))
timer.setDaemon(True) # 设置随主程序的关闭而关闭
timer.start()
os.system('arecord -D "plughw:2,0" -f S16_LE -r 16000 question1.wav')
print("录音结束!")