Vì trăn hầu như có thể làm mọi thứ mà người ta có thể tưởng tượng bao gồm phát và ghi âm thanh. Bài viết này sẽ giúp bạn làm quen với một số thư viện python và các phương pháp chuyển tiếp thẳng bằng cách sử dụng các thư viện đó để phát và ghi âm thanh trong python, với một số chức năng khác để đổi lấy một số dòng python bổ sung
Hầu hết các tệp âm thanh đều ở định dạng tệp MP3 và WAV. Các tệp âm thanh WAV là định dạng âm thanh kỹ thuật số đơn giản nhất với tốc độ ghi cao không mất dữ liệu do đó các tệp WAV có dung lượng lớn so với các định dạng khác. Vì lý do tương tự, các định dạng MP3 được sử dụng có kích thước nhỏ và nén các tệp với rất ít sự khác biệt đối với chất lượng âm thanh tổng thể. Ngoài ra, rất dễ dàng chuyển đổi WAV sang MP3 bằng phần mềm mã nguồn mở và miễn phí được phổ biến rộng rãi trên internet
Phát âm thanh
Dưới đây được đề cập là một số thư viện python mà bạn có thể phát các định dạng âm thanh khác nhau trong python bao gồm định dạng MP3, định dạng WAV và thậm chí cả mảng NumPy.
Phương pháp 1. Sử dụng Playsound
Gói sẵn sàng sử dụng để phát các tệp âm thanh chỉ với một dòng mã. Người ta có thể phát các tệp WAV hoặc MP3 với nó. Đó là một mô-đun chức năng duy nhất không phụ thuộc vào việc phát âm thanh.
Tài liệu về thư viện playsound đề cập rằng nó đã được thử nghiệm cho các tệp WAV và MP3, nhưng cũng có thể hoạt động với các định dạng tệp khác mà việc kiểm tra tùy thuộc vào người dùng. Mô-đun playsound chỉ chứa một thứ - chức năng [còn được đặt tên] playound
Sau đây là các dòng mã để phát một tệp
Python3
#import the library
from
playsound
import
playsound
playsound[
'full_path/filename.mp3'
]
đầu ra
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20210106104353/1. phát âm thanh. mp4
Phương pháp 2. Sử dụng Simpleaudio
ví dụ 1
Đây là thư viện python đa nền tảng để phát lại cả tệp WAV đơn âm và âm thanh nổi mà không có phụ thuộc nào khác để phát lại âm thanh. Trăn 3. 7 trở lên được hỗ trợ chính thức trên macOS, Windows và Linux.
Sau đây là mã đơn giản để chơi một. wav mặc dù nó tiêu tốn ít dòng mã hơn so với thư viện trên
Python3
________số 8_______
import
from
0
from
1
from
2
import
from
4
from
5
from
6
from
7from
8 from
9
playsound
0
playsound
1
playsound
2from
8 playsound
4
playsound
5
playsound
6from
8 playsound
8
playsound
9
import
0
import
1
import
2
đầu ra
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20210106104928/2. -simpleaudio. mp4
ví dụ 2
Simpleaudio có thể được sử dụng để phát các đối tượng byte & mảng NumPy và Python bằng cách sử dụng Simpleaudio. play_buffer[] Mảng Numpy có thể được sử dụng để lưu trữ âm thanh nhưng có một số yêu cầu quan trọng. Nếu chúng lưu trữ âm thanh nổi, mảng phải có hai cột, mỗi cột chứa một kênh dữ liệu âm thanh. Chúng cũng phải có loại d số nguyên 16 bit đã ký và các giá trị biên độ mẫu do đó phải nằm trong khoảng từ -32768 đến 32767. Dưới đây là mã để tạo một mảng NumPy và phát lại bằng cách sử dụng âm thanh đơn giản. play_buffer[]
Python3
import
import
4
import
import
6
import
7
import
8from
8 playsound
0
playsound
1from
8 import
8playsound
4 playsound
5 playsound
4playsound
4 playsound
8playsound
9 playsound[
0 playsound[
1]
playsound[
3
playsound[
4from
8 playsound[
6
playsound[
7
playsound[
8_______1_______8 'full_path/filename.mp3'
0
'full_path/filename.mp3'
1
'full_path/filename.mp3'
2
'full_path/filename.mp3'
3
'full_path/filename.mp3'
4from
8 'full_path/filename.mp3'
6_______6_______7_______6_______8playsound
4 ]
0]
1]
]
3
]
4_______1_______8 ]
6playsound
4 'full_path/filename.mp3'
4playsound
4 playsound
5 playsound
4 # import library
2
# import library
3from
8 # import library
5playsound
4 'full_path/filename.mp3'
4playsound
4 playsound
5 playsound
4 # import library
2
import
2
import
3_______1_______8 import
5
import
6
import
7
import
3_______2_______4from
8 from
01 playsound[
0 from
03from
04from
05from
06from
07
from
08
import
3_______1_______8 from
11
from
12
playsound
6from
8 from
15from
16from
17playsound
5from
19
from
20
from
21
import
2
đầu ra
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20210106105228/2. 1-simpleaudio. mp4
Phương pháp 3. sử dụng winound
ví dụ 1
Đó là mô-đun tích hợp để truy cập cơ chế phát âm thanh cơ bản. Nó chỉ cho phép bạn phát các tệp WAV [nó không hỗ trợ bất kỳ định dạng tệp nào khác] hoặc phát ra tiếng bíp từ loa của bạn, nhưng nó chỉ hoạt động trên Windows như tên gợi ý WINsound. Đó là mô-đun tích hợp nên không cần cài đặt thêm
Python3
from
23
import
from
25
from
26
đầu ra
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20210106110137/3. 1-winsound. mp4
ví dụ 2
Nó cũng có thể được sử dụng để phát ra tiếng bíp cho loa của bạn hoặc Phát [các] âm thanh mặc định của Windows. Trong đoạn mã sau, âm thanh tiếng bíp 5000Hz được phát trong 1000ms sau âm thanh thoát khỏi cửa sổ.
Python3
from
23
import
from
25
from
30
from
31from
32from
17from
34from
35
from
36
from
37_______1_______38from
39
đầu ra
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20210106110140/3. 2-winsound. mp4
Nhược điểm chính của thư viện này là nó chỉ dành cho người dùng hệ điều hành Windows và cũng không hỗ trợ phát lại bất kỳ tệp nào khác ngoài định dạng WAV
Phương pháp 4. Sử dụng thiết bị âm thanh
Mô-đun Python này cung cấp các liên kết cho thư viện PortAudio và một số chức năng tiện lợi để phát và ghi các mảng NumPy có chứa tín hiệu âm thanh. Nó có sẵn cho các hệ điều hành Linux, macOS và Windows
Trong đoạn mã sau, một dòng chứa ‘ sf. read[] ‘ trích xuất tất cả dữ liệu âm thanh thô cùng với tốc độ lấy mẫu của tệp như được lưu trong tiêu đề RIFF của nó; . wait[] ‘ đảm bảo rằng tập lệnh kết thúc sau ‘ sd. phát [dữ liệu, sr] ‘ kết thúc phát âm thanh
Python3
from
40
import
from
42
import
from
44
from
45
from
46_______1_______8 from
48from
8 from
50from
35
from
52
from
53
from
54
from
55from
8 from
57
from
58
from
59
đầu ra
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20210106112410/4. 1-thiết bị âm thanh. mp4
Phương pháp 5. sử dụng pydub
Mặc dù pydub có thể dễ dàng mở và lưu các tệp WAV mà không có bất kỳ phụ thuộc nào khác, nhưng phải cài đặt sẵn ít nhất một gói phát lại âm thanh từ [simpleaudio, pyaudio, ffplay và avplay ]. Nó cung cấp triển khai python thuần túy để thao tác âm thanh
Mã sau nhập hai thư viện, thư viện đầu tiên tải tệp và thư viện thứ hai để phát tệp đã tải. Ngoài ra, hai cách được trình bày để tải. tập tin wav
Python3
from
from
61import
from
63
from
from
65_______3_______ playsound
6
import
3_______1_______8 from
70from
71from
17from
73from
8from
75]
import
3_______1_______8 from
79from
71]
from
82
đầu ra
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20210106112416/5. 1-pydub. mp4
Phương pháp 6. Sử dụng pyaudio
PyAudio là một thư viện âm thanh đa nền tảng khác dành cho Python. Mặc dù nó có nhiều khả năng hơn thư viện âm thanh đơn giản, chẳng hạn như ghi âm và truyền phát âm thanh liên tục, nhưng phần lớn phụ thuộc vào việc có PortAudio dẫn đến việc cài đặt phức tạp hơn. Nó cũng cung cấp các liên kết Python cho PortAudio, thư viện I/O âm thanh đa nền tảng do python-sounddevice cung cấp. Với PyAudio, bạn có thể dễ dàng sử dụng Python để phát và ghi âm thanh trên nhiều nền tảng khác nhau
Python3
from
83
import
from
85
import
from
87
from
88from
8 from
90
from
91
from
92_______1_______8 from
94
from
95
from
96from
8 from
98from
99playsound
00playsound
01]
playsound
03
playsound
04_______1_______8 playsound
06
playsound
07
playsound
08
playsound
09
playsound
10
playsound
11from
8 playsound
13_______1_______99_______2_______8from
73 from
8 playsound
18
playsound
19_______2_______20from
8 playsound
22
playsound
19_______2_______24from
8 playsound
26
playsound
19_______2_______28from
8 playsound
30]
playsound
32
playsound
33from
8 playsound
35
playsound
36
playsound
37
playsound
38 playsound
39from
8 playsound
41
playsound
42_______2_______43
playsound
42_______2_______33from
8 playsound
35
playsound
48
playsound
49
playsound
50
playsound
51
đầu ra
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20210106121909/6. -pyaudio_play. mp4
Ghi âm thanh
Bây giờ chỉ cần chuyển sang chế độ ghi lại bài viết. Rất ít thư viện được đề cập ở trên được sử dụng cho cùng một mục đích, cả phát và ghi đều có thể được giải thích chung nhưng đối với nhiều thư viện, nó có thể hơi khó hiểu. Vì vậy, các phần dành riêng khác nhau được ưu tiên ở đây
Lưu ý- Trước khi sử dụng bất kỳ thư viện nào để ghi âm, hãy đảm bảo rằng micrô của thiết bị của bạn thực sự được kết nối và BẬT cũng như không bị Tắt tiếng. người ta có thể kiểm tra tương tự bằng cách sử dụng các tính năng và cài đặt của hệ điều hành
Phương pháp 1. Sử dụng python-sounddevice
Thư viện này cho phép bạn phát [đã giải thích ở trên] và ghi lại các mảng NumPy chứa thông tin tín hiệu âm thanh. Mô-đun này yêu cầu scipy hoặc wavio để lưu âm thanh đã ghi, điều này có nghĩa là thư viện scipy hoặc wavio phải được cài đặt sẵn cùng với Numpy trước khi sử dụng gói này để ghi
Python3
playsound
52
import
from
42
from
playsound
56_______3_______ playsound
58
import
playsound
60
playsound
61
playsound
62from
8 playsound
64
playsound
65
playsound
66from
8 playsound
68
playsound
69
playsound
70
playsound
71_______1_______8 playsound
73_______2_______74_______2_______75playsound
4 playsound
77
playsound
78playsound
79from
8 playsound
81_______1_______8 playsound
5]
playsound
85
playsound
86
playsound
87
playsound
88
playsound
89
playsound
90playsound
91playsound
92
playsound
93
playsound
94
playsound
95
playsound
96playsound
97playsound
98from
8playsound
5]
đầu ra
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20210106114323/1. -record_soundvice. mp4
Như đã nêu trong phần Âm thanh, thiết bị âm thanh có tùy chọn mặc định để chỉ định kênh và tần số để sử dụng nhiều lần. Sau đó, không cần chuyển tùy chọn này làm đối số trong sd. phương thức rec[]. Đoạn mã sau thể hiện điều tương tự cùng với việc người ta cũng có thể thay đổi kiểu dữ liệu của mảng đã ghi từ kiểu mặc định float32 sang kiểu khác
Python3
import
from
42
import
04_______1_______8 import
06
import
07from
8 playsound
5
import
10_______1_______8 playsound
73_______2_______74playsound
75playsound
4 import
16
import
17
import
18
playsound
86
Phát lại và ghi đồng thời
Để Phát một mảng có tên my_arr và Ghi cùng lúc. Ở đây tỷ lệ mẫu là smpl_rate
Python3
import
from
42
import
import
4
playsound[
4from
8 playsound[
6
import
27_______1_______8 import
29import
30from
16from
17from
16import
34
import
35from
8 import
37from
8_______2_______5]
playsound
86
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20210101111541/play_rec. mp4
Phương pháp 2. Sử dụng pyaudio
Như trên, chúng tôi đã phát âm thanh bằng pyaudio bằng cách đọc tệp pyaudio. Suối[]. Để ghi lại âm thanh, chúng ta phải ghi vào cùng một luồng này. Sau đây là đoạn mã để ghi lại một vài giây âm thanh và lưu đoạn mã đó vào một. tập tin wav
Python3
import
from
85
import
from
87
import
46
from
92_______1_______8 from
94
import
50
import
51from
8 import
53
import
54from
8 playsound
5
import
57
import
58from
8 playsound
64
playsound[
8_______1_______8 import
63
from
88from
8 import
66
playsound
03
playsound
04______1_______8 import
70
playsound
11from
8 playsound
13_______1_______99_______2_______8from
73from
8import
78from
8import
80
import
81playsound
24from
8import
84import
85from
8playsound
30from
17
import
81import
90from
8import
92
import
93_______2_______8import
95]
import
97
import
98from
8 playsound
00
playsound
01
playsound
02 playsound
03_______2_______04 playsound
05_______2_______8'full_path/filename.mp3'
7from
17playsound
74playsound
10playsound[
0 from
92playsound
4 playsound
14