اگر در پروژه یا برنامه ای نیاز داشتید که صدا را ضبط کنید و یا در زمان های مختلف برنامه شما به عنوان یک رکورد صدا عمل کند در ادامه این آموزش همراه ما باشید.
از پایتون می توان برای انجام کارهای مختلف استفاده کرد. یکی از آنها ایجاد ضبط کننده صدا است.
برای ضبط و پخش صدا می توانیم از ماژول sounddevice python استفاده کنیم. این ماژول به همراه wavio یا ماژول scipy راه را برای ذخیره صدای ضبط شده فراهم می کند.
نصب و راه اندازی
sounddevice: این ماژول توابع را برای پخش و ضبط آرایه های NumPy حاوی سیگنال های صوتی فراهم می کند.
بیایید با اجرای دستور زیر آن را نصب کنیم:
$ pip3 install sounddevice
توجه
قبل از نصب sounddevice نیاز دارید بسته های زیر را نصب داشته باشید
pycparser
cffi
و برای نصب از دستورات زیر استفاده کنید
$ pip3 install pycparser
$ pip3 install cffi
ما می توانیم از wavio و scipy برای ذخیره صدای ضبط شده در قالب فایل استفاده کنیم. هر دوی آنها را در اینجا خواهیم دید.
برای نصب wavio:
$ pip3 install wavio
برای نصب scipy:
$ pip3 install scipy
اکنون ما با نصب ماژول های مورد نیاز کار خود را انجام داده ایم. بنابراین ، بیایید کد را بنویسیم.
شروع برنامه
ابتدا کتابخانه های مورد نیاز را وارد کنید.
# import required libraries import sounddevice as sd from scipy.io.wavfile import write import wavio as wv
اکنون، قبل از شروع ضبط، باید چند متغیر را اعلام کنیم. اولین مورد، فرکانس نمونه برداری از صدا است (در بیشتر موارد این ۴۴۱۰۰ یا ۴۸۰۰۰ فریم در ثانیه خواهد بود) و دومین مدت ضبط است. ما باید مدت زمان را در چند ثانیه مشخص کنیم تا پس از آن مدت ضبط متوقف شود.
# Sampling frequency freq = 44100 # Recording duration duration = 5
اکنون، ما آماده شروع ضبط هستیم. این یک آرایه NumPy از صدای ضبط شده را ایجاد می کند.
# Start recorder with the given values of # duration and sample frequency recording = sd.rec(int(duration * freq), samplerate=freq, channels=2) # Record audio for the given number of seconds sd.wait()
اکنون کار ما با ضبط صدا تمام شده است. بنابراین، باید آن را ذخیره کنیم.
برای ذخیره فایل صوتی، می توانیم از ماژول scipy یا ماژول wavio استفاده کنیم. بیایید یکی یکی آنها را امتحان کنیم.
با استفاده از scipy:
ما برای تبدیل آرایه NumPy به یک فایل صوتی از تابع نوشتن از scipy.io.wavfile استفاده خواهیم کرد.
# This will convert the NumPy array to an audio # file with the given sampling frequency write("recording0.wav", freq, recording)
با استفاده از waveio:
همچنین می توانیم از برای ذخیره از کتابخانه wavio استفاده کنیم.
# Convert the NumPy array to audio file wv.write("recording1.wav", recording, freq, sampwidth=2)
کد کامل برنامه:
# import required libraries
import
sounddevice as sd
from
scipy.io.wavfile
import
write
import
wavio as wv
# Sampling frequency
freq
=
۴۴۱۰۰
# Recording duration
duration
=
۵
# Start recorder with the given values
# of duration and sample frequency
recording
=
sd.rec(
int
(duration
*
freq),
samplerate
=
freq, channels
=
۲
)
# Record audio for the given number of seconds
sd.wait()
# This will convert the NumPy array to an audio
# file with the given sampling frequency
write(
"recording0.wav"
, freq, recording)
# Convert the NumPy array to audio file
wv.write(
"recording1.wav"
, recording, freq, sampwidth
=
۲
)
در اینجا نمونه برنامه ما به پایان رسید اما شما می توانید با ایده های مختلف از این آموزش در برنامه های خود که به زبان پایتون می نویسید استفاده کنید
مطالب پیشنهادی برای شما
- معرفی فریمورک Kivy در پایتون (بخش یک)
- معرفی کتابخانه NumPy در پایتون
- آموزش رابط گرافیکی Tkinter (بخش اول)
- تولید رمز تصادفی با پایتون
- کار با SQLite در پایتون
- معرفی کتابخانه Bokeh در پایتون
- کار با فایل های اکسل (بخش اول)
- تفاوت بین روتر و فایروال - مهر ۱۰, ۱۴۰۳
- مسیریابی استاتیک در ویندوز - مهر ۸, ۱۴۰۳
- پروتکل SNMP - شهریور ۱۵, ۱۴۰۳
سلام .ممنون از مطالب عالیتون.این کد رو من میخوام روی دکمه ضبطی که طراحی کردم اجرا کنه.ولی وقتی داخل فانکشن میره ارور میده.میشه لطفا راهنمایی کنین
درود برشما
خطا رو قرار بدین
این کد کاملا تست شده