Hướng dẫn thư viện playsound python
answer 17 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ẻ 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.
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ẻ 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:
Sau khi cài đặt xong, bạn có thể sử dụng nó như sau:
27 hữu ích 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:
Sau đó:
Đả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ẻ 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:
Các 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 đó. 14 hữu ích 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:
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):
Để 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ẻ answer 5 Bạn có thể xem điều này: http://www.speech.kth.se/snack/
5 hữu ích 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:
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.
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.
Sau đó chạy nó như thế này:
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ẻ 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.
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ẻ answer 3 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.
3 hữu ích 1 bình luận chia sẻ answer 2 Hãy thử PySoundCard sử dụng PortAudio để phát lại có sẵn trên nhiều nền tảng. Ngoài ra, nó còn nhận diện các thiết bị âm thanh "chuyên nghiệp" với rất nhiều kênh. Dưới đây là một ví dụ nhỏ từ Readme:
2 hữu ích 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 :
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ẻ answer 2 Mac OS Tôi đã thử rất nhiều mã nhưng chỉ mã này hoạt động với tôi
2 hữu ích 0 bình luận chia sẻ answer 2 Cài đặt
Sử dụng:
2 hữu ích 0 bình luận chia sẻ answer 1 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ẻ answer 0 Đặt cái này ở đầu tập lệnh python mà bạn đang viết:
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ẻ answer 0 Để 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ế.
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. 0 hữu ích 0 bình luận chia sẻ answer 0 Thử thiết bị âm thanh Nếu bạn không có mô-đun nhập Sau đó, trong tập lệnh Python ưa thích của bạn (tôi sử dụng Juypter), hãy nhập
Cách tốt nhất để có được âm thanh và tốc độ lấy mẫu bạn muốn là sử dụng mô-đun librosa. Nhập mã này vào terminal nếu bạn không có mô-đun librosa.
Bất kỳ tệp wav nào bạn muốn phát, chỉ cần đảm bảo rằng tệp đó nằm trong cùng thư mục với tập lệnh Python của bạn. Điều này sẽ cho phép bạn phát tệp wav mong muốn của mình thông qua Python Chúc mừng, Charlie PS Khi âm thanh là một đối tượng dữ liệu "librosa", Python sẽ coi nó như một mảng không rõ ràng. Như một thử nghiệm, hãy thử chơi một thứ dài (thử 20.000 điểm dữ liệu) của một mảng ngẫu nhiên. Python nên chơi nó dưới dạng tiếng ồn trắng. Mô-đun sounddevice cũng đóng các mảng và danh sách phức tạp. 0 hữu ích 1 bình luận chia sẻ answer 0 Trong sổ ghi chép Colab, bạn có thể làm:
0 hữu ích 0 bình luận chia sẻ answer 0 Gần đây, tôi đã làm cho Trình phát nhạc của mình hỗ trợ cục bộ tất cả các tệp âm thanh. Tôi đã làm điều này bằng cách tìm ra cách sử dụng mô-đun python vlc và cả các tệp dll VLC. Bạn có thể kiểm tra: https://github.com/elibroftw/music-caster/blob/master/audio_player.py 0 hữu ích 0 bình luận chia sẻ answer 0 Nó đơn giản. Tôi đã làm theo cách này. Đối với tệp wav
Đối với tệp mp3
0 hữu ích 0 bình luận chia sẻ answer 0 Đối với những người sử dụng Linux và các gói khác không hoạt động trên các tệp MP3, https://pypi.org/project/audioplayer/
0 hữu ích 0 bình luận chia sẻ answer -1 Nếu bạn đang sử dụng OSX, bạn có thể sử dụng mô-đun "os" hoặc "quy trình con", v.v. để gọi lệnh "play" OSX. Từ giao diện OSX, có vẻ như chơi "bah.wav" Nó bắt đầu phát sau khoảng nửa giây trên máy của tôi. -1 hữu ích 1 bình luận chia sẻ answer -1 Đơn giản là bạn có thể làm điều đó với sự trợ giúp của cvlc- Tôi đã làm theo cách này:
/home/maulo/selfProject/task.mp3. Đây là vị trí của tệp mp3 của tôi. với sự trợ giúp của "--play-and-exit", bạn sẽ có thể phát lại âm thanh mà không cần kết thúc quá trình vlc. -1 hữu ích 0 bình luận chia sẻ |