Xin chào kỹ thuật viên, trong hướng dẫn này, chúng ta sẽ tìm hiểu cách xây dựng một máy ghi âm đơn giản bằng Python bằng cách nhập một số mô-đun
Để xây dựng ứng dụng này, chúng tôi cần cài đặt sounddevice và scipy trong hệ thống của mình
Bạn cũng có thể kiểm tra. Máy tính lệnh bằng giọng nói trong Python sử dụng nhận dạng giọng nói và PyAudio
Cài đặt các gói để ghi lại âm thanh trong Python
Chúng ta cần vào terminal và gõ các lệnh sau
Thiết bị âm thanh. Về cơ bản sounddevice là một mô-đun, cung cấp các chức năng để ghi và phát các mảng có nhiều mảng
Để cài đặt sounddevice, chúng ta cần viết lệnh sau
pip install sounddevicescipy. Viết tắt của Science Python, được sử dụng để lưu âm thanh dưới dạng tệp
Lệnh cài đặt scipy là…
pip install scipyĐịnh nghĩa biến
Tính thường xuyên. Biến đầu tiên là tần số, theo mặc định tần số là 48000 hoặc 44100
Chúng tôi sẽ sử dụng tần số là 44100, chúng tôi cũng có thể sử dụng 48000
Khoảng thời gian. Biến thứ hai là thời lượng ghi âm, chúng tôi có thể ghi lại âm thanh trong khoảng thời gian chúng tôi muốn
Hãy để chúng tôi lấy thời lượng là 12 giây
Chương trình Python để ghi lại âm thanh
import sounddevice import scipy.io.wavfile import write fps = 44100 duration = 12 print('Recording...') recording = sounddevice.rec(int(duration*fps),samplerate = fps , channels = 2) sounddevice.wait() print('Done!') write("Output.wav" , fps, recording) # for saving our recording in wav filethiết bị âm thanh. rec(int(duration*fps),samplerate = fps ,channels = 2), chức năng này được sử dụng để gửi dữ liệu âm thanh đến mảng ở dạng numpy
thiết bị âm thanh. wait(), phương thức đợi được sử dụng để đợi cho đến khi quá trình ghi hoàn tất
Để lưu bản ghi dưới dạng tệp wav, chúng tôi đã viết hàm write()
Trong chức năng ghi, bạn có thể chọn tên tệp của riêng mình nhưng. phần mở rộng wav là bắt buộc
đầu ra
Recording... Done!Ở phần Đầu ra, sau khi in thông báo ‘Đang ghi…’ hãy nói điều gì đó để chúng tôi kiểm tra đầu ra. Sau 12 giây, chúng tôi sẽ nhận được thông báo là 'Xong. ’
Sau đó, nhấp chuột phải vào Đầu ra. wav, hãy chọn Hiển thị trong trình khám phá tệp
Bằng cách chọn tiết lộ trong trình khám phá tệp, chúng tôi sẽ nhập vào trình quản lý tệp của mình, sau đó nhấp chuột phải vào Đầu ra. tập tin wav
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 playsoundimport 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
# import library
import from0
from1
from2
import from4
from5
from6
from7from8 from9
playsound0
playsound1
playsound2_______5_______8 playsound4
playsound5
playsound6_______5_______8 playsound8
playsound9
import0
import1
import2
đầ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 import4
import import6
import7
import8from8 playsound0
playsound1from8 import8playsound4 playsound5 playsound4playsound4 playsound8playsound9 playsound(0 playsound(1)
playsound(3
playsound(4_______5_______8 playsound(6
playsound(7
playsound(8from8 'full_path/filename.mp3'0
'full_path/filename.mp3'1
'full_path/filename.mp3'2
'full_path/filename.mp3'3
'full_path/filename.mp3'4from8 'full_path/filename.mp3'6'full_path/filename.mp3'7_______10_______8playsound4 )0)1)
)3
)4from8 )6_______6_______4 'full_path/filename.mp3'4playsound4 playsound5 playsound4 # import library2
# import library3from8 # import library5_______6_______4 'full_path/filename.mp3'4playsound4 playsound5 playsound4 # import library2
import2
import3_______5_______8 import5
import6
import7
import3_______6_______4_______5_______8 from01 playsound(0 from03from04from05from06from07
from08
import3_______5_______8 from11
from12
playsound6from8 from15_______5_______16from17playsound5_______5_______19
from20
from21
import2
đầ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
from23
import from25
from26
đầ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 bíp 5000Hz được phát trong 1000ms sau âm thanh thoát của cửa sổ.
Python3
from23
import from25
from30
from31from32from17from34from35
from36
from37from38from39
đầ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 trữ 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
from40
import from42
import from44
from45
from46from8 from48_______5_______8 from50_______5_______35
from52
from53
from54
from55_______5_______8 from57
from58
from59
đầ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 from61import from63
from from65_______7_______ playsound6
import3_______5_______8 from70_______5_______71_______5_______17from73from8from75)
import3_______5_______8 from79_______5_______71_______11_______
from82
đầ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 ràng buộc 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
from83
import from85
import from87
from88from8 from90
from91
from92____5_______8 from94
from95
from96_______5_______8 from98from99playsound00playsound01)
playsound03
playsound04____5_______8 playsound06
playsound07
playsound08
playsound09
playsound10
playsound11_______5_______8 playsound13_______5_______99playsound8from73 from8 playsound18
playsound19playsound20_______5_______8 playsound22
playsound19playsound24_______5_______8 playsound26
playsound19playsound28_______5_______8 playsound30)
playsound32
playsound33_______5_______8 playsound35
playsound36
playsound37
playsound38 playsound39_______5_______8 playsound41
playsound42_______6_______43
playsound42_______6_______33_______5_______8 playsound35
playsound48
playsound49
playsound50
playsound51
đầ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
playsound52
import from42
from playsound56import playsound58
import playsound60
playsound61
playsound62_______5_______8 playsound64
playsound65
playsound66from8 playsound68
playsound69
playsound70
playsound71from8 playsound73_______6_______74playsound75playsound4 playsound77
playsound78playsound79_______5_______8 playsound81from8 playsound5)
playsound85
playsound86
playsound87
playsound88
playsound89
playsound90playsound91playsound92
playsound93
playsound94
playsound95
playsound96playsound97playsound98from8playsound5)
đầ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ố cho việc sử dụng lặp lại. 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 from42
import04_______5_______8 import06
import07_______5_______8 playsound5
import10_______5_______8 playsound73_______6_______74playsound75playsound4 import16
import17
import18
playsound86
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 from42
import import4
playsound(4_______5_______8 playsound(6
import27_______5_______8 import29import30_______5_______16from17from16import34
import35from8 import37_______5_______8playsound5)
playsound86
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 from85
import from87
import46
from92____5_______8 from94
import50
import51____5_______8 import53
import54_______5_______8 playsound5
import57
import58____5_______8 playsound64
playsound(8from8 import63
from88from8 import66
playsound03
playsound04_______5_______8 import70
playsound11_______5_______8 playsound13_______5_______99playsound8from73from8import78from8import80
import81playsound24from8import84import85from8playsound30from17
import81import90from8import92
import93_______6_______8import95)
import97
import98____5_______8 playsound00
playsound01
playsound02 playsound03_______6_______04 playsound05_______6_______8'full_path/filename.mp3'7from17playsound74playsound10playsound(0 from92playsound4 playsound14