>> Tecnologia Eletrônica >  >> Áudio Residencial >> Toca-discos

Como posso criar uma onda de som a partir de áudio?

Você não pode diretamente * criar * uma onda de som a partir de áudio; O áudio * é * a onda sonora (ou melhor, uma representação digital). O que você pode fazer é * visualizar * a onda sonora de um arquivo de áudio. Isso envolve extrair os dados da amplitude do áudio e depois plotar -os.

Veja como você pode fazer isso usando diferentes linguagens de programação e bibliotecas:

1. Usando Python com Librosa e Matplotlib:

Este é um método popular e relativamente direto.

`` `Python
Importar Librosa
importar librosa.display
importar matplotlib.pyplot como pLT

Carregue o arquivo de áudio


file_path ='your_audio_file.wav' # Substitua pelo caminho do arquivo
y, sr =librosa.load (file_path)

Exiba a forma de onda


plt.figure (figSize =(14, 5))
Librosa.display.waveShow (y, sr =sr)
plt.title ('Waveform')
plt.xlabel ('Hora (s)')
plt.ylabel ('amplitude')
plt.show ()

Opcionalmente, para salvar a figura:


plt.savefig ('WaveForm.png')


`` `

Este código faz o seguinte:

* Importa as bibliotecas necessárias: `Librosa` para processamento de áudio e` matplotlib` para plotagem.
* Carrega o áudio: `Librosa.load ()` lê o arquivo de áudio e retorna os dados de áudio (`y`) e a taxa de amostra (` sr`).
* exibe a forma de onda: `Librosa.display.waveShow ()` cria o gráfico. Ele lida automaticamente em escala de tempo com base na taxa de amostragem.


2. Usando Python com Scipy e Matplotlib:

Essa abordagem usa bibliotecas de nível inferior, oferecendo mais controle, mas exigindo um pouco mais de código:

`` `Python
importar scipy.io.wavfile
importar matplotlib.pyplot como pLT
importar numpy como np

Carregue o arquivo de áudio


taxa, dados =scipy.io.wavfile.read ('your_audio_file.wav')

Plote a forma de onda


plt.figure (figSize =(14, 5))
PLT.Plot (dados)
plt.title ('Waveform')
plt.xlabel ('amostra')
plt.ylabel ('amplitude')
plt.show ()

Para áudio estéreo, plote cada canal separadamente


se data.ndim ==2:
plt.figure (figSize =(14, 5))
plt.plot (dados [:, 0], etiqueta ='canal esquerdo')
plt.plot (dados [:, 1], etiqueta ='canal direito')
PLT.LEGEND ()
plt.title ('Waveform (estéreo)')
plt.xlabel ('amostra')
plt.ylabel ('amplitude')
plt.show ()
`` `

Este código:

* Usa `scipy.io.wavfile` para ler o arquivo WAV. Observe que isso carregará os dados de áudio bruto; Pode ser necessário lidar com diferentes tipos de dados (por exemplo, converter em ponto flutuante).
* Plota os dados diretamente usando `matplotlib.pyplot.plot ()`. O eixo x representa o número da amostra, não o tempo (ao contrário do exemplo de Librosa).


Antes de executar qualquer código:

* Instale as bibliotecas necessárias: Você precisará instalar `Librosa`,` Matplotlib`, `Scipy` e` Numpy`. Você pode fazer isso usando Pip:`Pip Install Librosa Matplotlib Scipy Numpy`
* Substitua `'your_audio_file.wav'`' pelo caminho real para o seu arquivo de áudio. Verifique se o arquivo é um arquivo WAV; Outros formatos podem exigir bibliotecas ou etapas de conversão adicionais.

Lembre -se de que esses métodos visualizam a onda sonora. A onda sonora real é o fenômeno físico das variações de pressão do ar; A visualização é uma representação gráfica dos dados digitais que representam essas variações.