Introdução ao PySoundFile
PySoundFile é um módulo Python usado para ler e escrever arquivos de áudio, veja um arquivo de áudio como array NumPy, incluindo tons e tudo. Este módulo pode ler o arquivo de áudio, ou seja, extrai o array NumPy do áudio (arquivos .wav) e também pode gravá-lo
Instalação : execute o seguinte comando pip:
pip install PySoundFile
PySoundFile suporta todos os formatos que libsndfile suporta, por exemplo arquivos WAV, FLAC, OGG e MAT
Aqui está o link do arquivo de áudio usado no link de exemplos
Lendo arquivo de áudio:
Os arquivos de áudio podem ser lidos usando a função read() .
Sintaxe: read (file, frames = -1, start = 0, stop = None, fill_value = None, samplerate = None, channels = None, subtipo = None)
Parâmetros:
- arquivo: caminho do arquivo de áudio
- frames : Este argumento é usado para especificar o número de frames a serem lidos, por padrão tem valor -1 indicando todo o arquivo a ser lido
- iniciar, parar : Para especificar o início e o fim da leitura do arquivo de áudio, por padrão, todo o arquivo é lido
- fill_value : Se houver menos dados restantes no arquivo do que os solicitados, o restante dos quadros serão preenchidos com fill_value. Se nenhum fill_value for especificado, a matriz menor será retornada
Retorna: 2 valores
- dados: matriz numpy (o comprimento deve ser 44.100 elementos) Se o retorno for uma matriz numpy 1-D, a leitura de áudio será mono canalizada
- taxa de amostragem : taxa de amostragem (ou “taxa de amostragem”) define quantas vezes por segundo um som é amostrado. Tecnicamente, é a frequência das amostras usadas em uma gravação digital. A taxa de amostragem padrão usada para CDs de áudio é de 44,1 quilohertz para este arquivo também
Formatos de arquivo suportados: WAV, AIFF, AU, PAF, SVX, NIST, VOC, IRCAM, W64, MAT4, MAT5, PVF, XI, HTK, SDS, AVR, WAVEX, SD2, FLAC, CAF, WVE, OGG, MPC2K, RF64
Exemplo: Estaremos lendo o seguinte arquivo:
[se for IE 9]>import
soundfile as sf
data, samplerate
=
sf.read(
'noice.wav'
)
(data)
(
"---------------------"
)
(
"Sample Rate is "
, samplerate)
(
"---------------------"
)
(
"Done"
)
Resultado:
Escrevendo um arquivo: podemos escrever um arquivo usando a função write() .
Sintaxe: write (file, data, samplerate, subtype = None, endian = None, format = None, closefd = True)
Parâmetros:
- arquivo: caminho do arquivo de saída
- dados: dados a serem gravados
- taxa de amostragem : taxa de amostragem dos dados de áudio
Retorna: Nada
Para escrever um arquivo de áudio, precisamos do array NumPy (ou seja, dados), pois a taxa de amostragem tem valor padrão, ele abre o arquivo no modo wb, ou seja, se o mesmo nome existir, o programa irá reescrevê-lo
Exemplo: Estaremos lendo o seguinte arquivo:
import
soundfile as sf
data, samplerate
=
sf.read(
'Sample.wav'
)
sf.write(
'writing_file_output.wav'
, data, samplerate)
Saída: Este é o arquivo de saída:
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva