Hướng dẫn python play audio from url - python phát âm thanh từ url

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 = "http://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 = "http://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 = "http://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 = "http://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 = "http://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 = "http://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 = "http://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 = "http://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 = "http://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 = "http://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 = "http://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 = "http://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

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 = "http://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)

Đ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 = "http://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).
These solutions are cross platform (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

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

Bạn có thể chơi âm thanh thông qua Python không?

Kết luận: Phát và ghi âm trong Python Bây giờ bạn có thể: chơi một loạt các định dạng âm thanh lớn, bao gồm các mảng WAV, MP3 và Numpy. Ghi âm âm thanh từ micrô của bạn đến một mảng numpy hoặc python. Lưu trữ âm thanh được ghi của bạn một loạt các định dạng khác nhau, bao gồm WAV và MP3.Play a large range of audio formats, including WAV, MP3 and NumPy arrays. Record audio from your microphone to a NumPy or Python array. Store your recorded audio a range of different formats, including WAV and MP3.

Làm cách nào để tải xuống tệp âm thanh từ URL trong Python?

Để tải xuống một tệp từ URL bằng Python, hãy làm theo ba bước sau:..
Cài đặt mô -đun yêu cầu và nhập nó vào dự án của bạn ..
Sử dụng yêu cầu. Nhận () để tải xuống dữ liệu đằng sau url đó ..
Viết tệp vào tệp trong hệ thống của bạn bằng cách gọi Open () ..

Làm thế nào để bạn nhập âm thanh vào Python?

Trong chương này, bạn sẽ học cách sử dụng thư viện hữu ích này để đảm bảo tất cả các tệp âm thanh của bạn ở đúng hình dạng để phiên âm ...
Giới thiệu về Pydub.....
Nhập tệp âm thanh với Pydub ..
Phát một tệp âm thanh với pydub ..
Tham số âm thanh với pydub ..
Điều chỉnh các tham số âm thanh ..
Thao tác với các tệp âm thanh với pydub ..

Làm cách nào để chơi nhạc trực tuyến với Python?

Bạn chỉ cần tạo một thể hiện của trình phát VLC và chuyển đường dẫn của một tệp phương tiện sẽ được phát cho một hàm play () được cung cấp bởi thư viện Python-VLC.Nó cũng có thể được sử dụng để phát trực tuyến nhạc trực tuyến.Bạn cũng có thể tạo một danh sách phát bằng cách sử dụng các chức năng do thư viện cung cấp và phát danh sách phát từ chính tập lệnh Python.create an instance of VLC player and pass the path of a media file to be played to a play() function provided by Python-VLC library. It can also be used to stream online music. You can also create a playlist using functions provided by the library and play the playlist from Python script itself.