ضبط صدا با استفاده از پایتون

اگر در پروژه یا برنامه ای نیاز داشتید که صدا را ضبط کنید و یا در زمان های مختلف برنامه شما به عنوان یک رکورد صدا عمل کند در ادامه این آموزش همراه ما باشید.

 

از پایتون می توان برای انجام کارهای مختلف استفاده کرد. یکی از آنها ایجاد ضبط کننده صدا است.

برای ضبط و پخش صدا می توانیم از ماژول 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=۲)

در اینجا نمونه برنامه ما به پایان رسید اما شما می توانید با ایده های مختلف از این آموزش در برنامه های خود که به زبان پایتون می نویسید استفاده کنید

 


مطالب پیشنهادی برای شما


 

محمد صداقتی

2 thoughts on “ضبط صدا با استفاده از پایتون

  1. سلام .ممنون از مطالب عالیتون.این کد رو من میخوام روی دکمه ضبطی که طراحی کردم اجرا کنه.ولی وقتی داخل فانکشن میره ارور میده.میشه لطفا راهنمایی کنین

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *