Python pode ser usado para realizar uma variedade de tarefas. Um deles é a criação de um gravador de voz. Podemos usar o módulo de dispositivo de som do python para gravar e reproduzir áudio. Este módulo junto com o wavio ou o módulo scipy fornece a maneira de salvar o áudio gravado.

Instalação

  • dispositivo de som: Este módulo fornece funções para reproduzir e gravar matrizes NumPy contendo sinais de áudio. Vamos instalá-lo executando o seguinte comando:
$ pip3 install sounddevice
  • Podemos usar wavio e scipy para salvar o áudio gravado em formato de arquivo . Veremos os dois aqui.
  • Para instalar o wavio:
$ pip3 instalar wavio
  • Para instalar o scipy :
$ pip3 install scipy

Agora, concluímos a instalação dos módulos necessários. Então, vamos escrever o código.

Começando

Primeiro, importe as bibliotecas necessárias.

# importar bibliotecas necessárias
importar dispositivo de som como SD
from scipy.io.wavfile import write
importar wavio como wv

Agora, antes de iniciar o gravador, temos que declarar algumas variáveis. O primeiro é a frequência de amostragem do áudio (na maioria dos casos, será de 44100 ou 48000 quadros por segundo) e o segundo é a duração da gravação. Temos que especificar a duração em segundos para que a gravação pare após essa duração.

Então, vamos declará-los também.



# Frequência de amostragem
freq = 44100
# Duração da gravação
duração = 5

Agora, estamos prontos para iniciar o gravador. Isso criará uma matriz NumPy do áudio gravado.

# Inicie o gravador com os valores fornecidos de
# duração e frequência de amostra
gravação = sd.rec (int (duração * freq),
                   taxa de amostragem = freq, canais = 2)
# Grava áudio pelo número determinado de segundos
sd.wait()

Agora, terminamos a gravação do áudio. Então, vamos salvá-lo. Para salvar o arquivo de áudio, podemos usar o módulo scipy ou o módulo wavio . Vamos examiná-los um por um.

Usando Scipy:

Usaremos a função de gravação de scipy.io.wavfile para converter o array NumPy em um arquivo de áudio.

# Isso irá converter o array NumPy em um áudio
# arquivo com a frequência de amostragem fornecida
escrever ("gravação0.wav", freq, gravação)

Usando wavio:

Também podemos usar a função de escrita da biblioteca wavio .

# Converta a matriz NumPy em arquivo de áudio
wv.write ("gravação1.wav", gravação, freq, largura samp = 2)

Código Completo:

import sounddevice as sd 
from scipy.io.wavfile import write 
import wavio as wv 
freq = 44100
duration = 5
recording = sd.rec(int(duration * freq),  
                   samplerate=freq, channels=2) 
sd.wait() 
write("recording0.wav", freq, recording) 
wv.write("recording1.wav", recording, freq, sampwidth=2)