Hướng dẫn python playsound no sound - Python phát âm thanh không có âm thanh

answer

17

Hướng dẫn python playsound no sound - Python phát âm thanh không có âm thanh

Bạn có thể tìm thông tin về âm thanh Python tại đây: http://wiki.python.org/moin/Audio/

Có vẻ như nó không thể phát tệp .mp3 mà không có thư viện bên ngoài. Bạn có thể chuyển đổi tệp .mp3 của mình sang định dạng .wav hoặc định dạng khác hoặc sử dụng thư viện như PyMedia .

17 hữu ích 3 bình luận chia sẻ 3 bình luận chia sẻ

answer

45

Đặt cược tốt nhất của bạn có lẽ là sử dụng pygame / SDL . Đó là một thư viện bên ngoài, nhưng nó có sự hỗ trợ tuyệt vời trên các nền tảng.

pygame.mixer.init()
pygame.mixer.music.load("file.mp3")
pygame.mixer.music.play()

Bạn có thể tìm thêm tài liệu cụ thể về hỗ trợ bộ trộn âm thanh trong tài liệu pygame.mixer.music

45 hữu ích 5 bình luận chia sẻ 5 bình luận chia sẻ

answer

27

Hãy thử playound là một mô-đun thuần túy Python, nền tảng đa chức năng, không có phụ thuộc để phát âm thanh.

Cài đặt qua pip:

$ pip install playsound

Sau khi cài đặt xong, bạn có thể sử dụng nó như sau:

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')

27 hữu ích 4 bình luận chia sẻ 4 bình luận chia sẻ

answer

19

Hãy xem Simpleaudio , đây là một thư viện tương đối gần đây và nhẹ cho mục đích này:

> pip install simpleaudio

Sau đó:

import simpleaudio as sa

wave_obj = sa.WaveObject.from_wave_file("path/to/file.wav")
play_obj = wave_obj.play()
play_obj.wait_done()

Đảm bảo sử dụng tệp PCM 16 bit không nén.

19 hữu ích 1 bình luận chia sẻ 1 bình luận chia sẻ

answer

14

Trong pydub gần đây, chúng tôi đã chọn sử dụng ffplay (thông qua quy trình phụ) từ bộ công cụ ffmpeg, sử dụng nội bộ SDL.

Nó hoạt động cho các mục đích của chúng tôi - chủ yếu chỉ giúp kiểm tra kết quả của mã pydub ở chế độ tương tác dễ dàng hơn - nhưng nó có những mặt trái của nó, chẳng hạn như khiến một chương trình mới xuất hiện trong thanh dock trên mac.

Tôi đã liên kết việc triển khai ở trên, nhưng một phiên bản đơn giản sau:

import subprocess

def play(audio_file_path):
    subprocess.call(["ffplay", "-nodisp", "-autoexit", audio_file_path])

Các

> pip install simpleaudio
3cờ dừng ffplay hiển thị một cửa sổ mới, và các
> pip install simpleaudio
4lá cờ gây ffplay để thoát và trả về một mã trạng thái khi tập tin âm thanh được thực hiện chơi.

chỉnh sửa : pydub hiện sử dụng pyaudio để phát lại khi nó được cài đặt và quay trở lại ffplay để tránh những nhược điểm mà tôi đã đề cập. Liên kết ở trên cũng cho thấy việc triển khai đó. : pydub hiện sử dụng pyaudio để phát lại khi nó được cài đặt và quay trở lại ffplay để tránh những nhược điểm mà tôi đã đề cập. Liên kết ở trên cũng cho thấy việc triển khai đó.

14 hữu ích 2 bình luận chia sẻ 2 bình luận chia sẻ

answer

14

Xin lỗi vì đã trả lời muộn, nhưng tôi nghĩ đây là một nơi tốt để quảng cáo thư viện của tôi ...

AFAIK, thư viện tiêu chuẩn chỉ có một mô-đun để phát âm thanh: ossaudiodev . Đáng buồn thay, điều này chỉ hoạt động trên Linux và FreeBSD.

CẬP NHẬT: Cũng có lợi thế , nhưng rõ ràng đây cũng là nền tảng cụ thể.

Đối với một cái gì đó độc lập với nền tảng hơn, bạn sẽ cần sử dụng một thư viện bên ngoài.

Đề xuất của tôi là mô-đun sounddevice (nhưng hãy cẩn thận, tôi là tác giả).

Gói này bao gồm thư viện PortAudio được biên dịch trước cho Mac OS X và Windows, và có thể dễ dàng cài đặt với:

pip install sounddevice --user

Nó có thể phát lại âm thanh từ các mảng NumPy, nhưng nó cũng có thể sử dụng bộ đệm Python thuần túy (nếu NumPy không có sẵn).

Để phát lại mảng NumPy, đó là tất cả những gì bạn cần (giả sử rằng dữ liệu âm thanh có tần số lấy mẫu là 44100 Hz):

import sounddevice as sd
sd.play(myarray, 44100)

Để biết thêm chi tiết, hãy xem tài liệu .

Nó không thể đọc / ghi các tệp âm thanh, bạn sẽ cần một thư viện riêng cho việc đó.

14 hữu ích 1 bình luận chia sẻ 1 bình luận chia sẻ

answer

5

Bạn có thể xem điều này: http://www.speech.kth.se/snack/

s = Sound() 
s.read('sound.wav') 
s.play()

5 hữu ích 1 bình luận chia sẻ 1 bình luận chia sẻ

answer

4

Câu trả lời của Aaron dường như phức tạp hơn khoảng 10 lần so với mức cần thiết. Chỉ cần làm điều này nếu bạn chỉ cần câu trả lời hoạt động trên OS X:

from AppKit import NSSound

sound = NSSound.alloc()
sound.initWithContentsOfFile_byReference_('/path/to/file.wav', True)
sound.play()

Một điều ... điều này trở lại ngay lập tức. Vì vậy, bạn cũng có thể muốn làm điều này, nếu bạn muốn cuộc gọi bị chặn cho đến khi âm thanh phát xong.

$ pip install playsound
0

Chỉnh sửa: Tôi đã lấy chức năng này và kết hợp nó với các biến thể dành cho Windows và Linux. Kết quả là một mô-đun nền tảng chéo, python thuần túy không có phụ thuộc nào được gọi là Playingound . Tôi đã tải nó lên pypi.

$ pip install playsound
1

Sau đó chạy nó như thế này:

$ pip install playsound
2

Các tệp MP3 cũng hoạt động trên OS X. WAV sẽ hoạt động trên tất cả các nền tảng. Tôi không biết các kết hợp nền tảng / định dạng tệp khác hoạt động hoặc không hoạt động - tôi chưa thử chúng.

4 hữu ích 5 bình luận chia sẻ 5 bình luận chia sẻ

answer

4

Đây là cách dễ nhất và tốt nhất mà chúng tôi tìm thấy. Nó hỗ trợ Linux / pulseaudio, Mac / coreaudio và Windows / WASAPI.

$ pip install playsound
3

Xem https://github.com/bastibe/PySoundFile và https://github.com/bastibe/SoundCard để biết rất nhiều tính năng siêu hữu ích khác.

4 hữu ích 5 bình luận chia sẻ 5 bình luận chia sẻ

answer

3

Đây là cách dễ nhất và tốt nhất mà chúng tôi tìm thấy. Nó hỗ trợ Linux / pulseaudio, Mac / coreaudio và Windows / WASAPI.

$ pip install playsound
4

Xem https://github.com/bastibe/PySoundFile và https://github.com/bastibe/SoundCard để biết rất nhiều tính năng siêu hữu ích khác. 1 bình luận chia sẻ

answer

2

Có thể phát âm thanh trong OS X mà không cần bất kỳ thư viện bên thứ 3 nào bằng cách sử dụng một mã tương tự của mã sau. Dữ liệu âm thanh thô có thể được nhập bằng wave_wave.writeframes. Mã này trích xuất 4 giây âm thanh từ tệp đầu vào.

Dưới đây là một ví dụ nhỏ từ Readme:

$ pip install playsound
5

2 hữu ích 1 bình luận chia sẻ 1 bình luận chia sẻ

answer

2

Cũng trên OSX - từ SO , sử dụng lệnh afplay của OSX :

$ pip install playsound
6

CẬP NHẬT: Tất cả điều này là chỉ định cách thực hiện những gì OP muốn tránh làm ngay từ đầu. Tôi đoán tôi đã đăng điều này ở đây vì những gì OP muốn tránh là thông tin tôi đang tìm kiếm. Rất tiếc.

2 hữu ích 5 bình luận chia sẻ 5 bình luận chia sẻ

answer

2

Cũng trên OSX - từ SO , sử dụng lệnh afplay của OSX :

$ pip install playsound
7

CẬP NHẬT: Tất cả điều này là chỉ định cách thực hiện những gì OP muốn tránh làm ngay từ đầu. Tôi đoán tôi đã đăng điều này ở đây vì những gì OP muốn tránh là thông tin tôi đang tìm kiếm. Rất tiếc. 0 bình luận chia sẻ

answer

2

Cũng trên OSX - từ SO , sử dụng lệnh afplay của OSX :

$ pip install playsound
1

CẬP NHẬT: Tất cả điều này là chỉ định cách thực hiện những gì OP muốn tránh làm ngay từ đầu. Tôi đoán tôi đã đăng điều này ở đây vì những gì OP muốn tránh là thông tin tôi đang tìm kiếm. Rất tiếc.

$ pip install playsound
9

CẬP NHẬT: Tất cả điều này là chỉ định cách thực hiện những gì OP muốn tránh làm ngay từ đầu. Tôi đoán tôi đã đăng điều này ở đây vì những gì OP muốn tránh là thông tin tôi đang tìm kiếm. Rất tiếc. 0 bình luận chia sẻ

answer

1

Cũng trên OSX - từ SO , sử dụng lệnh afplay của OSX :

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')
0

CẬP NHẬT: Tất cả điều này là chỉ định cách thực hiện những gì OP muốn tránh làm ngay từ đầu. Tôi đoán tôi đã đăng điều này ở đây vì những gì OP muốn tránh là thông tin tôi đang tìm kiếm. Rất tiếc. 0 bình luận chia sẻ

answer

0

Cũng trên OSX - từ SO , sử dụng lệnh afplay của OSX :

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')
1

CẬP NHẬT: Tất cả điều này là chỉ định cách thực hiện những gì OP muốn tránh làm ngay từ đầu. Tôi đoán tôi đã đăng điều này ở đây vì những gì OP muốn tránh là thông tin tôi đang tìm kiếm. Rất tiếc.

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')
2

2 hữu ích 5 bình luận chia sẻ

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')
3

Mac OS Tôi đã thử rất nhiều mã nhưng chỉ mã này hoạt động với tôi

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')
4

2 hữu ích 0 bình luận chia sẻ 0 bình luận chia sẻ

answer

0

Cài đặt

> pip install simpleaudio
5gói bằng cách sử dụng:

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')
5

Sử dụng:

2 hữu ích 0 bình luận chia sẻ 0 bình luận chia sẻ

answer

0

Cài đặt

> pip install simpleaudio
5gói bằng cách sử dụng:

Sử dụng:

Pypi có một danh sách các mô-đun cho python trong âm nhạc. Tôi thích nhất là jython vì nó có nhiều tài nguyên và thư viện hơn cho âm nhạc. Ví dụ về mã để chơi một nốt nhạc trong sách giáo khoa :

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')
6

1 hữu ích 0 bình luận chia sẻ

Đặt cái này ở đầu tập lệnh python mà bạn đang viết:

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')
7

Nếu tệp wav nằm trong thư mục của tập lệnh python:

Nếu tệp wav KHÔNG có trong thư mục của tập lệnh python:

Nếu bạn muốn tìm hiểu thêm về aplay:

0 hữu ích 0 bình luận chia sẻ

Để phát âm thanh thông báo bằng python, hãy gọi một trình phát nhạc, chẳng hạn như vlc. VLC đã nhắc tôi sử dụng phiên bản dòng lệnh của nó, cvlc, thay thế. 1 bình luận chia sẻ

answer

0

Nó yêu cầu vlc được cài đặt sẵn trên thiết bị. Đã thử nghiệm trên Linux (Ubuntu 16.04 LTS); Chạy Python 3.5.

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')
8

2 hữu ích 0 bình luận chia sẻ 0 bình luận chia sẻ

answer

0

Cài đặt

> pip install simpleaudio
5gói bằng cách sử dụng:

2 hữu ích 0 bình luận chia sẻ 0 bình luận chia sẻ

answer

0

Cài đặt

> pip install simpleaudio
5gói bằng cách sử dụng:

Sử dụng:

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')
9

Pypi có một danh sách các mô-đun cho python trong âm nhạc. Tôi thích nhất là jython vì nó có nhiều tài nguyên và thư viện hơn cho âm nhạc. Ví dụ về mã để chơi một nốt nhạc trong sách giáo khoa :

> pip install simpleaudio
0

2 hữu ích 0 bình luận chia sẻ 0 bình luận chia sẻ

answer

0

Cài đặt

> pip install simpleaudio
5gói bằng cách sử dụng:

https://pypi.org/project/audioplayer/

> pip install simpleaudio
1

2 hữu ích 0 bình luận chia sẻ 0 bình luận chia sẻ

answer

-1

Cài đặt

> pip install simpleaudio
5gói bằng cách sử dụng:

Sử dụng:

Pypi có một danh sách các mô-đun cho python trong âm nhạc. Tôi thích nhất là jython vì nó có nhiều tài nguyên và thư viện hơn cho âm nhạc. Ví dụ về mã để chơi một nốt nhạc trong sách giáo khoa :

1 hữu ích 0 bình luận chia sẻ 1 bình luận chia sẻ

answer

-1

Đặt cái này ở đầu tập lệnh python mà bạn đang viết:

> pip install simpleaudio
2

Nếu tệp wav nằm trong thư mục của tập lệnh python:

Nếu tệp wav KHÔNG có trong thư mục của tập lệnh python: 0 bình luận chia sẻ