Elevate Your Sound Game: Recording and Processing Audio with Python!

Explore functionalities like recording voice, applying filters, visualizing waveforms, and more!
Check out my GitHub repo for a collection of Python scripts for audio recording, playback, and processing. #Python #AudioProcessing

GitHub: Python/Audio Recorder
图片[1]-Elevate Your Sound Game: Recording and Processing Audio with Python! - 拾光赋-拾光赋
Source Code: Python/Audio Recorder/record audio.ipynb

import os
import librosa
import librosa.display
import matplotlib.pyplot as plt
import warnings
import numpy as np
warnings.filterwarnings("ignore", category=RuntimeWarning)
def load_audio(file_path, duration=None, offset=0):
audio_data, sample_rate = librosa.load(file_path, duration=duration, offset=offset)
return audio_data, sample_rate
def plot_waveform(audio_data, sample_rate, output_path):
plt.figure(figsize=(10, 4))
librosa.display.waveshow(audio_data, sr=sample_rate)
plt.title("Waveform")
plt.xlabel("Time (seconds)")
plt.ylabel("Amplitude")
plt.savefig(os.path.join(output_path, "waveform.png"))
plt.show()
plt.close()
def plot_spectrogram(audio_data, sample_rate, output_path):
plt.figure(figsize=(10, 4))
spectrogram = librosa.feature.melspectrogram(y=audio_data, sr=sample_rate)
librosa.display.specshow(librosa.power_to_db(spectrogram, ref=np.max), y_axis='mel', x_axis='time')
plt.colorbar(format='%+2.0f dB')
plt.title("Spectrogram")
plt.savefig(os.path.join(output_path, "spectrogram.png"))
plt.show()
plt.close()
if __name__ == "__main__":
input_file = "recorded_voice_sounddevice.wav"
output_path = "." # You can change this to the desired output directory
audio_data, sample_rate = load_audio(input_file)
# Print some information about the audio file
print(f"Audio data shape: {audio_data.shape}")
print(f"Sample rate: {sample_rate} Hz")
# Plot the audio waveform and spectrogram
plot_waveform(audio_data, sample_rate, output_path)
plot_spectrogram(audio_data, sample_rate, output_path)
print("Plots saved as 'waveform.png' and 'spectrogram.png' in the current directory.")
import os
import librosa
import librosa.display
import matplotlib.pyplot as plt
import warnings
import numpy as np
warnings.filterwarnings("ignore", category=RuntimeWarning)

def load_audio(file_path, duration=None, offset=0):
    audio_data, sample_rate = librosa.load(file_path, duration=duration, offset=offset)
    return audio_data, sample_rate

def plot_waveform(audio_data, sample_rate, output_path):
    plt.figure(figsize=(10, 4))
    librosa.display.waveshow(audio_data, sr=sample_rate)
    plt.title("Waveform")
    plt.xlabel("Time (seconds)")
    plt.ylabel("Amplitude")
    plt.savefig(os.path.join(output_path, "waveform.png"))
    plt.show()
    plt.close()

def plot_spectrogram(audio_data, sample_rate, output_path):
    plt.figure(figsize=(10, 4))
    spectrogram = librosa.feature.melspectrogram(y=audio_data, sr=sample_rate)
    librosa.display.specshow(librosa.power_to_db(spectrogram, ref=np.max), y_axis='mel', x_axis='time')
    plt.colorbar(format='%+2.0f dB')
    plt.title("Spectrogram")
    plt.savefig(os.path.join(output_path, "spectrogram.png"))
    plt.show()
    plt.close()

if __name__ == "__main__":
    input_file = "recorded_voice_sounddevice.wav"
    output_path = "."  # You can change this to the desired output directory

    audio_data, sample_rate = load_audio(input_file)

    # Print some information about the audio file
    print(f"Audio data shape: {audio_data.shape}")
    print(f"Sample rate: {sample_rate} Hz")

    # Plot the audio waveform and spectrogram
    plot_waveform(audio_data, sample_rate, output_path)
    plot_spectrogram(audio_data, sample_rate, output_path)

    print("Plots saved as 'waveform.png' and 'spectrogram.png' in the current directory.")
import os import librosa import librosa.display import matplotlib.pyplot as plt import warnings import numpy as np warnings.filterwarnings("ignore", category=RuntimeWarning) def load_audio(file_path, duration=None, offset=0): audio_data, sample_rate = librosa.load(file_path, duration=duration, offset=offset) return audio_data, sample_rate def plot_waveform(audio_data, sample_rate, output_path): plt.figure(figsize=(10, 4)) librosa.display.waveshow(audio_data, sr=sample_rate) plt.title("Waveform") plt.xlabel("Time (seconds)") plt.ylabel("Amplitude") plt.savefig(os.path.join(output_path, "waveform.png")) plt.show() plt.close() def plot_spectrogram(audio_data, sample_rate, output_path): plt.figure(figsize=(10, 4)) spectrogram = librosa.feature.melspectrogram(y=audio_data, sr=sample_rate) librosa.display.specshow(librosa.power_to_db(spectrogram, ref=np.max), y_axis='mel', x_axis='time') plt.colorbar(format='%+2.0f dB') plt.title("Spectrogram") plt.savefig(os.path.join(output_path, "spectrogram.png")) plt.show() plt.close() if __name__ == "__main__": input_file = "recorded_voice_sounddevice.wav" output_path = "." # You can change this to the desired output directory audio_data, sample_rate = load_audio(input_file) # Print some information about the audio file print(f"Audio data shape: {audio_data.shape}") print(f"Sample rate: {sample_rate} Hz") # Plot the audio waveform and spectrogram plot_waveform(audio_data, sample_rate, output_path) plot_spectrogram(audio_data, sample_rate, output_path) print("Plots saved as 'waveform.png' and 'spectrogram.png' in the current directory.")

Enter fullscreen mode Exit fullscreen mode

原文链接: Elevate Your Sound Game: Recording and Processing Audio with Python!

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
Don't give up just because of what people said. Use that as your motivation to push harder.
别因为别人说的话而放弃,把那些话当做加倍努力的动力
评论 抢沙发

请登录后发表评论

    暂无评论内容