Xin lỗi nhưng tôi không có Python3 để kiểm tra ở đây, để truyền phát ____1010 bằng cách sử dụng from urllib2 import urlopen import pyaudio import pymedia.audio.acodec as acodec import pymedia.muxer as muxer dm= muxer.Demuxer( 'mp3' ) pyaud = pyaudio.PyAudio() srate=44100 stream = pyaud.open(format = pyaud.get_format_from_width(2), channels = 1, rate = srate, output = True) url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3" u = urlopen(url) data = u.read(8192) while data: #Start Decode using pymedia dec= None s= " " sinal=[] while len( s ): s= data if len( s ): frames= dm.parse( s ) for fr in frames: if dec== None: # Open decoder dec= acodec.Decoder( dm.streams[ 0 ] ) r= dec.decode( fr[ 1 ] ) if r and r.data: din = r.data; s="" #decode ended stream.write(din) data = u.read(8192) 1, bạn sẽ cần giải mã nó trong dữ liệu PCM, tôi biết rằng Pymedia có thể làm điều đó, nhưng nó quá cũ và chỉ hỗ trợ from urllib2 import urlopen import pyaudio import pymedia.audio.acodec as acodec import pymedia.muxer as muxer dm= muxer.Demuxer( 'mp3' ) pyaud = pyaudio.PyAudio() srate=44100 stream = pyaud.open(format = pyaud.get_format_from_width(2), channels = 1, rate = srate, output = True) url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3" u = urlopen(url) data = u.read(8192) while data: #Start Decode using pymedia dec= None s= " " sinal=[] while len( s ): s= data if len( s ): frames= dm.parse( s ) for fr in frames: if dec== None: # Open decoder dec= acodec.Decoder( dm.streams[ 0 ] ) r= dec.decode( fr[ 1 ] ) if r and r.data: din = r.data; s="" #decode ended stream.write(din) data = u.read(8192) 2.
Để làm điều này theo cách đúng đắn, bạn sẽ cần biết một số thuộc tính của âm thanh của bạn, những thứ như lấy mẫu, số lượng kênh, độ phân giải bit, để đặt nó trong pyaudio.
Tôi có thể chỉ ra cách tôi làm điều đó bằng cách sử dụng from urllib2 import urlopen import pyaudio import pymedia.audio.acodec as acodec import pymedia.muxer as muxer dm= muxer.Demuxer( 'mp3' ) pyaud = pyaudio.PyAudio() srate=44100 stream = pyaud.open(format = pyaud.get_format_from_width(2), channels = 1, rate = srate, output = True) url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3" u = urlopen(url) data = u.read(8192) while data: #Start Decode using pymedia dec= None s= " " sinal=[] while len( s ): s= data if len( s ): frames= dm.parse( s ) for fr in frames: if dec== None: # Open decoder dec= acodec.Decoder( dm.streams[ 0 ] ) r= dec.decode( fr[ 1 ] ) if r and r.data: din = r.data; s="" #decode ended stream.write(din) data = u.read(8192) 2 + from urllib2 import urlopen import pyaudio import pymedia.audio.acodec as acodec import pymedia.muxer as muxer dm= muxer.Demuxer( 'mp3' ) pyaud = pyaudio.PyAudio() srate=44100 stream = pyaud.open(format = pyaud.get_format_from_width(2), channels = 1, rate = srate, output = True) url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3" u = urlopen(url) data = u.read(8192) while data: #Start Decode using pymedia dec= None s= " " sinal=[] while len( s ): s= data if len( s ): frames= dm.parse( s ) for fr in frames: if dec== None: # Open decoder dec= acodec.Decoder( dm.streams[ 0 ] ) r= dec.decode( fr[ 1 ] ) if r and r.data: din = r.data; s="" #decode ended stream.write(din) data = u.read(8192) 1, trước tiên tôi sẽ chỉ ra cách phát trực tuyến from urllib2 import urlopen import pyaudio import pymedia.audio.acodec as acodec import pymedia.muxer as muxer dm= muxer.Demuxer( 'mp3' ) pyaud = pyaudio.PyAudio() srate=44100 stream = pyaud.open(format = pyaud.get_format_from_width(2), channels = 1, rate = srate, output = True) url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3" u = urlopen(url) data = u.read(8192) while data: #Start Decode using pymedia dec= None s= " " sinal=[] while len( s ): s= data if len( s ): frames= dm.parse( s ) for fr in frames: if dec== None: # Open decoder dec= acodec.Decoder( dm.streams[ 0 ] ) r= dec.decode( fr[ 1 ] ) if r and r.data: din = r.data; s="" #decode ended stream.write(din) data = u.read(8192) 5
from urllib2 import urlopen #to python3.x #from urllib.request import urlopen import pyaudio pyaud = pyaudio.PyAudio() srate=44100 stream = pyaud.open(format = pyaud.get_format_from_width(1), channels = 1, rate = srate, output = True) url = "//download.wavetlan.com/SVV/Media/HTTP/WAV/NeroSoundTrax/NeroSoundTrax_test4_PCM_Mono_VBR_8SS_44100Hz.wav" u = urlopen(url) data = u.read(8192) while data: stream.write(data) data = u.read(8192)Chọn bộ đệm lớn, Python chậm trong khi vòng lặp, tôi đã thực hiện nó bằng cách sử dụng các khối có kích thước from urllib2 import urlopen
import pyaudio
import pymedia.audio.acodec as acodec
import pymedia.muxer as muxer
dm= muxer.Demuxer( 'mp3' )
pyaud = pyaudio.PyAudio()
srate=44100
stream = pyaud.open(format = pyaud.get_format_from_width(2),
channels = 1,
rate = srate,
output = True)
url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3"
u = urlopen(url)
data = u.read(8192)
while data:
#Start Decode using pymedia
dec= None
s= " "
sinal=[]
while len( s ):
s= data
if len( s ):
frames= dm.parse( s )
for fr in frames:
if dec== None:
# Open decoder
dec= acodec.Decoder( dm.streams[ 0 ] )
r= dec.decode( fr[ 1 ] )
if r and r.data:
din = r.data;
s=""
#decode ended
stream.write(din)
data = u.read(8192)
6, lưu ý rằng from urllib2 import urlopen
import pyaudio
import pymedia.audio.acodec as acodec
import pymedia.muxer as muxer
dm= muxer.Demuxer( 'mp3' )
pyaud = pyaudio.PyAudio()
srate=44100
stream = pyaud.open(format = pyaud.get_format_from_width(2),
channels = 1,
rate = srate,
output = True)
url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3"
u = urlopen(url)
data = u.read(8192)
while data:
#Start Decode using pymedia
dec= None
s= " "
sinal=[]
while len( s ):
s= data
if len( s ):
frames= dm.parse( s )
for fr in frames:
if dec== None:
# Open decoder
dec= acodec.Decoder( dm.streams[ 0 ] )
r= dec.decode( fr[ 1 ] )
if r and r.data:
din = r.data;
s=""
#decode ended
stream.write(din)
data = u.read(8192)
7, from urllib2 import urlopen
import pyaudio
import pymedia.audio.acodec as acodec
import pymedia.muxer as muxer
dm= muxer.Demuxer( 'mp3' )
pyaud = pyaudio.PyAudio()
srate=44100
stream = pyaud.open(format = pyaud.get_format_from_width(2),
channels = 1,
rate = srate,
output = True)
url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3"
u = urlopen(url)
data = u.read(8192)
while data:
#Start Decode using pymedia
dec= None
s= " "
sinal=[]
while len( s ):
s= data
if len( s ):
frames= dm.parse( s )
for fr in frames:
if dec== None:
# Open decoder
dec= acodec.Decoder( dm.streams[ 0 ] )
r= dec.decode( fr[ 1 ] )
if r and r.data:
din = r.data;
s=""
#decode ended
stream.write(din)
data = u.read(8192)
8 và from urllib2 import urlopen
import pyaudio
import pymedia.audio.acodec as acodec
import pymedia.muxer as muxer
dm= muxer.Demuxer( 'mp3' )
pyaud = pyaudio.PyAudio()
srate=44100
stream = pyaud.open(format = pyaud.get_format_from_width(2),
channels = 1,
rate = srate,
output = True)
url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3"
u = urlopen(url)
data = u.read(8192)
while data:
#Start Decode using pymedia
dec= None
s= " "
sinal=[]
while len( s ):
s= data
if len( s ):
frames= dm.parse( s )
for fr in frames:
if dec== None:
# Open decoder
dec= acodec.Decoder( dm.streams[ 0 ] )
r= dec.decode( fr[ 1 ] )
if r and r.data:
din = r.data;
s=""
#decode ended
stream.write(din)
data = u.read(8192)
9 là các thuộc tính Rigth cho tệp 1
2
0 này, vì vậy đối với from urllib2 import urlopen
import pyaudio
import pymedia.audio.acodec as acodec
import pymedia.muxer as muxer
dm= muxer.Demuxer( 'mp3' )
pyaud = pyaudio.PyAudio()
srate=44100
stream = pyaud.open(format = pyaud.get_format_from_width(2),
channels = 1,
rate = srate,
output = True)
url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3"
u = urlopen(url)
data = u.read(8192)
while data:
#Start Decode using pymedia
dec= None
s= " "
sinal=[]
while len( s ):
s= data
if len( s ):
frames= dm.parse( s )
for fr in frames:
if dec== None:
# Open decoder
dec= acodec.Decoder( dm.streams[ 0 ] )
r= dec.decode( fr[ 1 ] )
if r and r.data:
din = r.data;
s=""
#decode ended
stream.write(din)
data = u.read(8192)
5 Bây giờ đối với from urllib2 import urlopen
import pyaudio
import pymedia.audio.acodec as acodec
import pymedia.muxer as muxer
dm= muxer.Demuxer( 'mp3' )
pyaud = pyaudio.PyAudio()
srate=44100
stream = pyaud.open(format = pyaud.get_format_from_width(2),
channels = 1,
rate = srate,
output = True)
url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3"
u = urlopen(url)
data = u.read(8192)
while data:
#Start Decode using pymedia
dec= None
s= " "
sinal=[]
while len( s ):
s= data
if len( s ):
frames= dm.parse( s )
for fr in frames:
if dec== None:
# Open decoder
dec= acodec.Decoder( dm.streams[ 0 ] )
r= dec.decode( fr[ 1 ] )
if r and r.data:
din = r.data;
s=""
#decode ended
stream.write(din)
data = u.read(8192)
0, chúng tôi sẽ cần giải mã và đặt ở định dạng 1
2
2 để phát trực tuyến.
Hãy thử sử dụng 1
2
5
Điều này có thể là bí mật, bởi vì tôi chưa bao giờ thấy bất cứ ai cho thấy làm thế nào điều này có thể được thực hiện trong Python, vì Python3 tôi không biết bất cứ điều gì có thể giải mã .mp3 thành các mảnh như pymedia.
Ở đây, hai mã này đang nghiêm túc và làm việc cho from urllib2 import urlopen
import pyaudio
import pymedia.audio.acodec as acodec
import pymedia.muxer as muxer
dm= muxer.Demuxer( 'mp3' )
pyaud = pyaudio.PyAudio()
srate=44100
stream = pyaud.open(format = pyaud.get_format_from_width(2),
channels = 1,
rate = srate,
output = True)
url = "//www.bensound.org/bensound-music/bensound-dubstep.mp3"
u = urlopen(url)
data = u.read(8192)
while data:
#Start Decode using pymedia
dec= None
s= " "
sinal=[]
while len( s ):
s= data
if len( s ):
frames= dm.parse( s )
for fr in frames:
if dec== None:
# Open decoder
dec= acodec.Decoder( dm.streams[ 0 ] )
r= dec.decode( fr[ 1 ] )
if r and r.data:
din = r.data;
s=""
#decode ended
stream.write(din)
data = u.read(8192)
5 và 1
2
7
Phát âm thanh trên Python rất dễ dàng. Có một số mô -đun có thể phát một tệp âm thanh (.wav). Các giải pháp này là nền tảng chéo (Windows, Mac, Linux). Sự khác biệt chính là dễ sử dụng và định dạng tệp được hỗ trợ. Tất cả chúng nên hoạt động với Python 3. Tệp âm thanh phải nằm trong cùng thư mục với chương trình Python của bạn, trừ khi bạn chỉ định đường dẫn. Hãy để khám phá các tùy chọn! Khóa học liên quan: Khóa học & Bài tập lập trình Python hoàn chỉnh
Complete Python Programming Course & Exercises
These solutions are cross platform (Windows, Mac, Linux).
Phát âm thanh trong Python
Mô -đun chơi
Mô -đun Playsound là một mô -đun nền tảng chéo có thể phát các tệp âm thanh. Điều này không có bất kỳ sự phụ thuộc nào, chỉ cần cài đặt với PIP trong VirtualEnv của bạn và chạy!
1 2 | from playsound import playsound playsound('audio.mp3') |
Thực hiện là khác nhau trên các nền tảng. Nó sử dụng windll.winm trên windows, appkit.nssound trên Apple OS X và Gstreamer trên Linux.
Tôi đã thử nghiệm điều này với Python 3.5.3. Điều này sẽ hoạt động với cả tệp WAV và MP3.
pydub
Bạn có thể phát các tệp âm thanh với mô -đun Pydub. Nó có sẵn trong kho Pypi (cài đặt với PIP). Mô -đun này có thể sử dụng Pyaudio và FFMPEG bên dưới.
This module can use
PyAudio and ffmpeg underneath.
1 2 3 4 5 | from pydub import AudioSegment from pydub.playback import play song = AudioSegment.from_wav("sound.wav") play(song) |
Bộ âm thanh ăn nhẹ
Bộ âm thanh Snack Module có thể phát một số tệp âm thanh: WAV, AU, AIFF, MP3, CSL, SD, SMP và NIST/Sphere.
Bạn có thể cài đặt nó với Trình quản lý gói của mình: apt Cài đặt Python3-Tksnack. Đối với các phiên bản cũ, có ’s python-tksnack.
Mô -đun này phụ thuộc vào Tkinter. Điều đó có nghĩa là để phát âm thanh với mô -đun này, bạn cũng phải nhập mô -đun GUI Tkinter. Mô -đun không có vẻ như đã được cập nhật trong một thời gian.
1 2 3 4 5 6 7 8 9 | from Tkinter import * import tkSnack root = Tk() tkSnack.initializeSnack(root) snd = tkSnack.Sound() snd.read('sound.wav') snd.play(blocking=1) |
Người chơi bản địa
Bạn cũng có thể phát âm thanh tự nhiên trên hệ thống của bạn. Điều này đòi hỏi bạn phải cài đặt một số loại trình phát âm thanh trên thiết bị đầu cuối. Trên Linux, bạn có thể sử dụng MPG123 cho điều đó.
Điều này chỉ đơn giản là chơi tệp MP3 với một trình phát bên ngoài.
________số 8 | import os file = "file.mp3" os.system("mpg123 " + file) |
Khóa học liên quan: Khóa học & Bài tập lập trình Python hoàn chỉnh Complete Python Programming Course & Exercises