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

2021年11月7日13:59:12 发表评论 2,619 次浏览

如何在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 模块支持不同类型的音频文件。该模块可用于分割任何音频文件的片段或将片段附加到音频文件。你还可以在声音之上添加一个简单的效果。这个模块直接依赖于另外两个模块,称为ffmpeglibavcodec-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安装tkinkertksnack包。

安装:

$ sudo apt-get install python3-tk
$ sudo apt-get install python3-tksnack

示例:使用 tksnack 播放 wav 文件

在下面的脚本中,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 脚本录制、编辑和不同的声音相关任务。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: