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.