python如何播放声音(如何使用Python播放音频?)

如何在Python中播放声音?
如何使用Python播放音频?使用 Python 脚本播放声音是一项简单的任务,因为该语言包含许多使用脚本播放或录制声音的模块。通过使用这些模块,你可以播放音频文件,例如 mp3、wav 和其他音频文件类型。你必须先安装声音模块,然后才能在脚本中使用该模块。本教程将展示如何安装不同类型的 Python 模块来播放声音以及python播放声音的方法。
python如何播放声音?使用 playsound 播放声音
该playsound模块是用于播放声音最简单的模块。该模块适用于 Python 2 和 Python 3,并且经过测试只能播放 wav 和 mp3 文件。它只包含一种名为playsound() 的方法,其中一个参数供 Linux 使用以获取音频文件名进行播放。
安装:
运行以下 pip3 命令以在 Python 3 中安装此模块:

$ pip3 install playsound

python播放声音示例:使用 playsound 播放 wav 和 mp3 文件
在以下脚本中,首先将 wav 文件名作为输入,然后使用playsound()方法播放该文件。接下来,将通过相同的方法输入和播放 mp3 文件名。
#!/usr/bin/env python3 # Import playsound module from playsound import playsound # Input an existing wav filename wavFile = input("Enter a wav filename: ") # Play the wav file playsound(wavFile) # Input an existing mp3 filename mp3File = input("Enter a mp3 filename: ") # Play the mp3 file playsound(mp3File)

输出:
如果两个文件都存在,则声音文件将开始播放。
python如何播放声音(如何使用Python播放音频?)

文章图片
python播放声音的方法:使用 pydub 播放声音
所述pydub模块支持的Python 2和Python 3.该模块具有比Python声音模块其他许多有用的功能。pydub 模块支持不同类型的音频文件。该模块可用于分割任何音频文件的片段或将片段附加到音频文件。你还可以在声音之上添加一个简单的效果。这个模块直接依赖于另外两个模块,称为ffmpeg和libavcodec-extra。在安装pydub模块之前,必须先安装这些模块。
安装:
运行以下命令安装Python的pydub包:
$ sudo apt-get install ffmpeg libavcodec-extra $ pip3 install pydub

示例 1:播放本地 wav 和 mp3 文件
该模块使用form_file()方法播放 wav 文件和form_mp3()方法播放 mp3 文件。这里使用play()方法播放 wav 和 mp3 文件:
#!/usr/bin/env python3 from pydub import AudioSegment from pydub.playback import play# Input an existing wav filename wavFile = input("Enter a wav filename: ") # load the file into pydub sound = AudioSegment.from_file(wavFile) print("Playing wav file...") # play the file play(sound)# Input an existing mp3 filename mp3File = input("Enter a mp3 filename: ") # load the file into pydub music = AudioSegment.from_mp3(mp3File) print("Playing mp3 file...") # play the file play(music)

输出:
如果 wav 和 mp3 文件名都存在,则将播放声音,并显示以下输出:
python如何播放声音(如何使用Python播放音频?)

文章图片
示例 2:从 URL 下载和播放 wav 和 mp3 文件
如何使用Python播放音频?以下示例显示了从有效 URL 位置下载文件后如何播放任何 wav 或 mp3 文件。脚本中使用 urllib 模块来下载声音文件。python播放声音示例如下:
#!/usr/bin/env python3 # Import necessary modules from pydub import AudioSegment from pydub.playback import play import urllib# Set the wav filename filename = "service-bell.wav" # Download the wav file from url print("downloading wav file....") urllib.request.urlretrieve("http://soundbible.com/grab.php?id=2218& type=wav", filename) # load the file into pydub sound = AudioSegment.from_file(filename) print("Playing wav file...") # play the file play(sound)# Set the mp3 filename filename = "birds.mp3" # Download an mp3 file print("downloading mp3 file....") urllib.request.urlretrieve("http://soundbible.com/grab.php?id=2207& type=mp3", filename) # load the file into pydub birdsound = AudioSegment.from_mp3(filename) print("Playing mp3 file...") # Play the result play(birdsound) print("Finished.")

输出:
下载完成后会开始播放声音文件,会出现如下输出:
python如何播放声音(如何使用Python播放音频?)

文章图片
python如何播放声音?使用 tksnack 播放声音
该tksnack模块依赖于另一个模块,Tkinter的命名,激活TK脚本对象。    tksnack命令可以在初始化tk对象后使用。你必须为 Python 3安装tkinker和tksnack包。
安装:
$ sudo apt-get install python3-tk $ sudo apt-get install python3-tksnack

示例:使用 tksnack 播放 wav 文件
【python如何播放声音(如何使用Python播放音频?)】在下面的脚本中,tkSnack模块使用tkinter对象初始化,next  play()方法用于播放wav文件。在这里,blocking参数指定声音将异步播放。
#!/usr/bin/env python3 # Import necessasry modules import tkinter import tkSnack import os # Initialize tk object to use tksnack root = tkinter.Tk() tkSnack.initializeSnack(root) #Define tksnack object sound = tkSnack.Sound() # Input an existing wav filename wavFile = input("Enter a wav filename: ") if os.path.exists(wavFile): # Read the file sound.read(wavFile) # Play sound sound.play(blocking=1) else: # Print the message if the file path does not exist print ("Wav file does not exist.")

输出:
如果 wav 文件存在,声音将开始播放,并会出现以下输出:
python如何播放声音(如何使用Python播放音频?)

文章图片
python如何播放声音?使用 simpleaudio 播放声音
python播放声音的方法:该simpleaudio模块是包的Python 3,可以播放音频声音。该模块主要用于播放 wav 文件和 NumPy 数组。在使用此模块之前,你需要安装该软件包。这个声音包直接依赖于另一个名为libasound2-dev 的包。你需要先安装libasound2-dev包,然后才能安装simpleaudio包。
安装:
$ sudo apt-get install libasound2-dev $ pip3 install simpleaudio

python播放声音示例:使用 simpleaudio 播放 wav 文件
如何使用Python播放音频?在以下脚本中,任何 wav 文件名都将作为输入。如果文件存在,则脚本将播放声音文件;否则,脚本将显示错误消息。
#!/usr/bin/env python3 # Import simpleaudio sound module import simpleaudio as sa# Input an existing wav file name wavFile = input("Enter a wav filename: ") # Play the sound if the wav file exists try: # Define object to play w_object = sa.WaveObject.from_wave_file(wavFile) # Define object to control the play p_object = w_object.play() print("Sound is playing...") p_object.wait_done() print("Finished.")# Print error message if the file does not exist except FileNotFoundError: print("Wav File does not exists")

输出:
将播放声音文件,播放声音后会出现以下输出:
python如何播放声音(如何使用Python播放音频?)

文章图片
结论
python如何播放声音?本教程通过多个示例解释了四个 Python 模块播放声音的基本用途。声音播放任务仅在本教程中展示,但你可以使用 Python 脚本录制、编辑和不同的声音相关任务。

    推荐阅读