A voice recorder records a sound or a voice of a person and converts it into an audio file. The file can be stored in different audio formats like MP3 format, Waveform Audio File (WAV), Advanced Audio Coding (AAC), Audio Interchange File Format (AIFF), etc. and later it can be transferred to other devices. Any device that is capable of recording a sound or a voice is said to be a voice recorder by default.
In this article, you will learn to build a voice recorder with a few lines of code in Python.
Where do We Use Voice Recorder?
Some of the applications of a voice recorder are listed below:
- Interviews
- Handling Meetings
- Lectures/Seminars in Educational Institutions
- Audiobooks for kids
- Learning foreign languages
- Translating a word to another language
- Google search by voice
- A quick voice message to a person instead of typing
- Podcasts
- Voice assistants like Google assistants, Alexa, Siri, etc.,
Essentials
The first and foremost thing needed to build a voice recorder using Python is two basic Python modules. They are:
- sounddevice module
- write module from scipy.io.wavfile
Installation
The two modules needed to code a voice recorder must be installed first to make use of it in a program further. These Python modules can be installed using the command:
pip install sounddevicepip install scipy
sounddevice Module
The sounddevice module in Python has functions to play and record audio signals contained in the NumPy array. It can also provide bindings for the PortAudio library.
If you install the sounddevice module using the above pip command on Windows or macOS, then it automatically installs the PortAudio library on your device. You need to install the PortAudio library with other packages manually, only on other Operating Systems rather than the platforms mentioned above.
scipy.io.wavfile.write Module
It writes the NumPy array into a WAV file. The WAV file will be simple and compressed. It takes 3 parameters namely, filename, sample rate and data. To make multiple channels, use a 2D array of shapes.
Some of the functions carried out by this module are:
- Playback
- Recording
- Simultaneous Playback and Recording
- Selection of a particular device
- Callback Streams
- Block read/write streams
Importing Modules
The above modules need to be imported first to extract all its features and to be used inside our program. It can be imported with the help of the following commands:
import sounddevicefrom scipy.io.wavfile import write
Record an Audio
The sounddevice.rec()
method from the sounddevice module is used to record audio data from a sound device into an array in NumPy. The sampling frequency is assigned by the programmer as 44100 frames per second.
The command to record audio is as follows:
record_voice = sounddevice.rec(int(second* fs), samplerate=fs, channels=2)
where second → the time duration needed to record an audio
fs → sampling frequency
The recording will be carried out in the background, so you can work on other commands in the meantime. To check whether the recording is finished, use the following command:
sounddevice.wait()
By default, the data type of the recorded array will be float32, you can change the datatype by specifying the command as:
record_voice= sounddevice.rec(second* fs, dtype='float64')
Selection of a Device
One can have one or more input and output devices connected to their computer so that its user’s wish to select a device from the list of devices connected.
To get the list of devices connected to your device, use the command as:
sounddevice.query_devices()
To set a particular device as a default one, use the command as:
sounddevice.default.device = 'digital output'
Writing to a File
The audio recorded is finally written into a file, where one can fetch or share that file for future use. The write()
method in Python is used to create a file with a filename passed as an argument. The file name must be specified with the extension of an audio format so that it won't crash with the input given.
The command to write the output into a file is as follows:
write("out.wav" , fs , record_voice )
where out.wav is the name of the output file. This output file will be saved in the same directory where the program code is saved.
Time to code!!
Hope you guys found an easy and informative article on creating a Voice Recorder with the help of Python. Thanks for spending your valuable time here. Comment if you have any queries or suggestions regarding this article.
Thanks for learning!!!
Comments
Post a Comment