[Python] wavファイルを読み込む方法

Pythonでwavファイルを読み込むには、主にwaveモジュールやscipy.io.wavfilelibrosaなどのライブラリを使用します。

waveモジュールは標準ライブラリで、シンプルな読み込みが可能です。

scipy.io.wavfileはSciPyライブラリの一部で、サンプリングレートとデータを簡単に取得できます。

librosaは音声処理に特化しており、より高度な機能を提供します。

各ライブラリの使い方は用途に応じて選択します。

この記事でわかること
  • WAVファイルの基本的な特性
  • PythonでのWAVファイルの読み込み方法
  • 音声データの加工と変換手法
  • 音声データの解析技術
  • WAVファイルの生成方法と応用例

目次から探す

wavファイルとは

WAVファイルは、音声データを保存するためのフォーマットの一つで、主にWindows環境で使用されます。

WAVは Waveform Audio File Format の略で、音声波形をそのままデジタルデータとして記録します。

このフォーマットは、音質が高く、圧縮されていないため、音声の忠実度が非常に高いのが特徴です。

一般的に、音楽や音声の録音、編集に広く利用されており、特にプロフェッショナルな音声処理や音楽制作の現場で重宝されています。

また、WAVファイルは、さまざまなプラットフォームやソフトウェアでサポートされているため、互換性が高いという利点もあります。

Pythonでwavファイルを扱うための準備

必要なライブラリのインストール方法

PythonでWAVファイルを扱うためには、いくつかのライブラリをインストールする必要があります。

以下のコマンドを使用して、必要なライブラリをインストールできます。

スクロールできます
ライブラリ名インストールコマンド
scipypip install scipy
librosapip install librosa

これらのライブラリをインストールすることで、WAVファイルの読み込みや処理が可能になります。

標準ライブラリwaveの紹介

Pythonには標準ライブラリとしてwaveモジュールが用意されており、WAVファイルの読み込みや書き込みが簡単に行えます。

waveモジュールは、WAVファイルのメタデータ(サンプリングレートやチャンネル数など)を取得したり、音声データを操作したりするための基本的な機能を提供します。

特に、圧縮されていないPCM形式のWAVファイルに対応しています。

外部ライブラリscipyの紹介

scipyは、科学技術計算のためのライブラリで、音声信号処理にも利用されます。

scipy.io.wavfileモジュールを使用することで、WAVファイルの読み込みや書き込みが可能です。

特に、サンプリングレートや音声データをNumPy配列として扱えるため、データの加工や解析が容易になります。

音声信号処理においては、FFT(高速フーリエ変換)などの高度な機能も利用できます。

音声処理ライブラリlibrosaの紹介

librosaは、音声信号処理や音楽情報処理のための強力なライブラリです。

WAVファイルの読み込みだけでなく、音声データの特徴量抽出や可視化、音声の変換など、多彩な機能を提供しています。

特に、音声データの時間的な変化を視覚化するためのスペクトログラムや、音声のピッチやテンポを分析するための機能が充実しています。

音楽制作や音声分析の分野で広く利用されています。

waveモジュールを使ったwavファイルの読み込み

waveモジュールの基本的な使い方

Pythonのwaveモジュールを使用することで、WAVファイルの読み込みや書き込みが簡単に行えます。

まずは、waveモジュールをインポートし、WAVファイルを開く基本的なコードを示します。

import wave
# WAVファイルを開く
with wave.open('sample.wav', 'rb') as wav_file:
    # WAVファイルの情報を表示
    print("ファイルが正常に開かれました。")

このコードでは、wave.open関数を使用してWAVファイルを読み込み、ファイルが正常に開かれたことを確認しています。

wavファイルのメタデータを取得する方法

WAVファイルを開いた後、メタデータ(サンプリングレート、チャンネル数、フレーム数など)を取得することができます。

以下のコードでは、これらの情報を取得して表示します。

import wave
with wave.open('sample.wav', 'rb') as wav_file:
    # メタデータの取得
    num_channels = wav_file.getnchannels()  # チャンネル数
    sample_width = wav_file.getsampwidth()  # サンプル幅
    frame_rate = wav_file.getframerate()    # サンプリングレート
    num_frames = wav_file.getnframes()       # フレーム数
    # メタデータの表示
    print(f"チャンネル数: {num_channels}")
    print(f"サンプル幅: {sample_width} バイト")
    print(f"サンプリングレート: {frame_rate} Hz")
    print(f"フレーム数: {num_frames}")

このコードを実行すると、WAVファイルのメタデータが表示されます。

wavファイルの音声データを読み込む方法

WAVファイルから音声データを読み込むには、readframesメソッドを使用します。

以下のコードでは、音声データを読み込み、NumPy配列に変換しています。

import wave
import numpy as np
with wave.open('sample.wav', 'rb') as wav_file:
    # 音声データの読み込み
    num_frames = wav_file.getnframes()
    audio_data = wav_file.readframes(num_frames)
    # NumPy配列に変換
    audio_array = np.frombuffer(audio_data, dtype=np.int16)  # 16ビット整数として変換
    print("音声データが正常に読み込まれました。")

このコードでは、WAVファイルの全フレームを読み込み、16ビット整数のNumPy配列に変換しています。

読み込んだデータの再生方法

読み込んだ音声データを再生するには、sounddeviceライブラリを使用することができます。

以下のコードでは、音声データを再生する方法を示します。

import wave
import numpy as np
import sounddevice as sd
with wave.open('sample.wav', 'rb') as wav_file:
    # 音声データの読み込み
    num_frames = wav_file.getnframes()
    audio_data = wav_file.readframes(num_frames)
    audio_array = np.frombuffer(audio_data, dtype=np.int16)
    # 音声データの再生
    sd.play(audio_array, samplerate=wav_file.getframerate())
    sd.wait()  # 再生が終わるまで待機

このコードを実行すると、WAVファイルの音声データが再生されます。

sounddeviceライブラリを使用することで、簡単に音声を再生することができます。

scipy.io.wavfileを使ったwavファイルの読み込み

scipy.io.wavfileの基本的な使い方

scipyライブラリのio.wavfileモジュールを使用すると、WAVファイルの読み込みが簡単に行えます。

以下のコードでは、WAVファイルを読み込む基本的な方法を示します。

from scipy.io import wavfile
# WAVファイルを読み込む
sample_rate, audio_data = wavfile.read('sample.wav')
# 読み込んだサンプリングレートとデータのサイズを表示
print(f"サンプリングレート: {sample_rate} Hz")
print(f"音声データのサイズ: {audio_data.shape}")

このコードを実行すると、WAVファイルのサンプリングレートと音声データのサイズが表示されます。

サンプリングレートとデータの取得方法

scipy.io.wavfileを使用すると、WAVファイルのサンプリングレートと音声データを簡単に取得できます。

上記のコードで取得したsample_rateは、音声データの再生速度を示し、audio_dataは音声信号の数値データを含んでいます。

音声データはNumPy配列として扱われ、各サンプルの振幅値が格納されています。

読み込んだデータの加工方法

読み込んだ音声データは、NumPy配列として扱えるため、さまざまな加工が可能です。

以下のコードでは、音声データの音量を2倍にする方法を示します。

from scipy.io import wavfile
import numpy as np
# WAVファイルを読み込む
sample_rate, audio_data = wavfile.read('sample.wav')
# 音量を2倍にする
audio_data = audio_data * 2
# 音量をクリッピング(-32768から32767の範囲に制限)
audio_data = np.clip(audio_data, -32768, 32767).astype(np.int16)
# 加工したデータを新しいWAVファイルに保存
wavfile.write('sample_louder.wav', sample_rate, audio_data)
print("音量を2倍にした音声データを保存しました。")

このコードでは、音声データの音量を2倍にし、クリッピングを行った後、新しいWAVファイルとして保存しています。

読み込んだデータの可視化方法

音声データを可視化するためには、matplotlibライブラリを使用することができます。

以下のコードでは、音声データの波形をプロットする方法を示します。

import matplotlib.pyplot as plt
from scipy.io import wavfile
# WAVファイルを読み込む
sample_rate, audio_data = wavfile.read('sample.wav')
# 時間軸を作成
time = np.linspace(0, len(audio_data) / sample_rate, num=len(audio_data))
# 波形をプロット
plt.figure(figsize=(10, 4))
plt.plot(time, audio_data)
plt.title('音声データの波形')
plt.xlabel('時間 (秒)')
plt.ylabel('振幅')
plt.xlim(0, time[-1])
plt.grid()
plt.show()

このコードを実行すると、音声データの波形が表示され、音声信号の時間的な変化を視覚的に確認することができます。

librosaを使ったwavファイルの読み込み

librosaの基本的な使い方

librosaは音声信号処理や音楽情報処理のための強力なライブラリです。

まずは、librosaをインポートし、WAVファイルを読み込む基本的な方法を示します。

import librosa
# WAVファイルを読み込む
audio_data, sample_rate = librosa.load('sample.wav', sr=None)
# 読み込んだサンプリングレートとデータのサイズを表示
print(f"サンプリングレート: {sample_rate} Hz")
print(f"音声データのサイズ: {audio_data.shape}")

このコードを実行すると、WAVファイルのサンプリングレートと音声データのサイズが表示されます。

librosa.load関数を使用することで、音声データをNumPy配列として取得できます。

wavファイルの読み込みとサンプリングレートの変更

librosaを使用すると、WAVファイルを読み込む際にサンプリングレートを変更することも可能です。

以下のコードでは、サンプリングレートを22050 Hzに変更して読み込む方法を示します。

import librosa
# WAVファイルを22050 Hzで読み込む
audio_data, sample_rate = librosa.load('sample.wav', sr=22050)
# 読み込んだサンプリングレートとデータのサイズを表示
print(f"変更後のサンプリングレート: {sample_rate} Hz")
print(f"音声データのサイズ: {audio_data.shape}")

このコードを実行すると、指定したサンプリングレートで音声データが読み込まれます。

音声データの波形表示

librosaを使用して音声データの波形を表示するには、matplotlibライブラリを併用します。

以下のコードでは、音声データの波形をプロットする方法を示します。

import librosa
import matplotlib.pyplot as plt
# WAVファイルを読み込む
audio_data, sample_rate = librosa.load('sample.wav', sr=None)
# 時間軸を作成
time = librosa.times_like(audio_data, sr=sample_rate)
# 波形をプロット
plt.figure(figsize=(10, 4))
plt.plot(time, audio_data)
plt.title('音声データの波形')
plt.xlabel('時間 (秒)')
plt.ylabel('振幅')
plt.xlim(0, time[-1])
plt.grid()
plt.show()

このコードを実行すると、音声データの波形が表示され、音声信号の時間的な変化を視覚的に確認できます。

音声データのスペクトログラム表示

音声データのスペクトログラムを表示することで、周波数成分の変化を視覚化できます。

以下のコードでは、音声データのスペクトログラムをプロットする方法を示します。

import librosa
import librosa.display
import matplotlib.pyplot as plt
# WAVファイルを読み込む
audio_data, sample_rate = librosa.load('sample.wav', sr=None)
# スペクトログラムを計算
D = librosa.amplitude_to_db(np.abs(librosa.stft(audio_data)), ref=np.max)
# スペクトログラムをプロット
plt.figure(figsize=(10, 4))
librosa.display.specshow(D, sr=sample_rate, x_axis='time', y_axis='log')
plt.colorbar(format='%+2.0f dB')
plt.title('音声データのスペクトログラム')
plt.show()

このコードを実行すると、音声データのスペクトログラムが表示され、周波数成分の変化を視覚的に確認できます。

音声データの特徴量抽出

librosaを使用すると、音声データからさまざまな特徴量を抽出することができます。

以下のコードでは、メル周波数ケプストラム係数(MFCC)を抽出する方法を示します。

import librosa
# WAVファイルを読み込む
audio_data, sample_rate = librosa.load('sample.wav', sr=None)
# MFCCを抽出
mfccs = librosa.feature.mfcc(y=audio_data, sr=sample_rate, n_mfcc=13)
# MFCCのサイズを表示
print(f"MFCCのサイズ: {mfccs.shape}")

このコードを実行すると、音声データから抽出したMFCCのサイズが表示されます。

MFCCは音声認識や音楽情報処理において重要な特徴量です。

応用例:wavファイルの加工と変換

wavファイルの音量を変更する方法

WAVファイルの音量を変更するには、音声データの振幅をスケーリングする方法が一般的です。

以下のコードでは、音量を1.5倍にする方法を示します。

from scipy.io import wavfile
import numpy as np
# WAVファイルを読み込む
sample_rate, audio_data = wavfile.read('sample.wav')
# 音量を1.5倍にする
audio_data = audio_data * 1.5
# 音量をクリッピング(-32768から32767の範囲に制限)
audio_data = np.clip(audio_data, -32768, 32767).astype(np.int16)
# 加工したデータを新しいWAVファイルに保存
wavfile.write('sample_louder.wav', sample_rate, audio_data)
print("音量を変更した音声データを保存しました。")

このコードを実行すると、音量が変更された新しいWAVファイルが作成されます。

wavファイルの速度を変更する方法

音声データの再生速度を変更するには、サンプリングレートを変更するか、音声データをリサンプリングする方法があります。

以下のコードでは、音声データの速度を1.5倍にする方法を示します。

import librosa
# WAVファイルを読み込む
audio_data, sample_rate = librosa.load('sample.wav', sr=None)
# 音声データの速度を1.5倍にする
audio_data_fast = librosa.effects.time_stretch(audio_data, rate=1.5)
# 加工したデータを新しいWAVファイルに保存
librosa.output.write_wav('sample_fast.wav', audio_data_fast, sample_rate)
print("速度を変更した音声データを保存しました。")

このコードを実行すると、速度が変更された新しいWAVファイルが作成されます。

wavファイルをモノラル/ステレオに変換する方法

WAVファイルをモノラルまたはステレオに変換するには、音声データのチャンネル数を変更する必要があります。

以下のコードでは、ステレオからモノラルに変換する方法を示します。

import librosa
# WAVファイルを読み込む
audio_data, sample_rate = librosa.load('sample_stereo.wav', sr=None, mono=False)
# ステレオからモノラルに変換
audio_data_mono = np.mean(audio_data, axis=0)
# 加工したデータを新しいWAVファイルに保存
librosa.output.write_wav('sample_mono.wav', audio_data_mono, sample_rate)
print("ステレオからモノラルに変換した音声データを保存しました。")

このコードを実行すると、ステレオからモノラルに変換された新しいWAVファイルが作成されます。

wavファイルを他のフォーマットに変換する方法

WAVファイルを他のフォーマット(例えばMP3)に変換するには、pydubライブラリを使用することができます。

pydubを使用するためには、FFmpegまたはlibavが必要です。

ただ使うだけならプログラムと同じフォルダ(カレントディレクトリ)に配置するだけで構いません。

以下のコードでは、WAVファイルをMP3フォーマットに変換する方法を示します。

from pydub import AudioSegment
# WAVファイルを読み込む
audio = AudioSegment.from_wav('sample.wav')
# MP3フォーマットに変換して保存
audio.export('sample.mp3', format='mp3')
print("WAVファイルをMP3フォーマットに変換しました。")

このコードを実行すると、WAVファイルがMP3フォーマットに変換され、新しいファイルが作成されます。

pydubライブラリを使用することで、さまざまな音声フォーマットへの変換が簡単に行えます。

応用例:wavファイルの解析

音声データの周波数解析

音声データの周波数解析には、フーリエ変換を使用して信号の周波数成分を抽出します。

以下のコードでは、WAVファイルの音声データに対して高速フーリエ変換(FFT)を行い、周波数スペクトルを表示します。

import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
# WAVファイルを読み込む
sample_rate, audio_data = wavfile.read('sample.wav')
# FFTを計算
fft_result = np.fft.fft(audio_data)
frequencies = np.fft.fftfreq(len(fft_result), 1/sample_rate)
# 周波数スペクトルをプロット
plt.figure(figsize=(10, 4))
plt.plot(frequencies[:len(frequencies)//2], np.abs(fft_result)[:len(fft_result)//2])
plt.title('音声データの周波数スペクトル')
plt.xlabel('周波数 (Hz)')
plt.ylabel('振幅')
plt.xlim(0, 20000)  # 20kHzまで表示
plt.grid()
plt.show()

このコードを実行すると、音声データの周波数スペクトルが表示され、信号の周波数成分を視覚的に確認できます。

音声データのピッチ検出

音声データのピッチを検出するには、librosaライブラリを使用することができます。

以下のコードでは、音声データのピッチを抽出し、プロットする方法を示します。

import librosa
import matplotlib.pyplot as plt
# WAVファイルを読み込む
audio_data, sample_rate = librosa.load('sample.wav', sr=None)
# ピッチを検出
pitches, magnitudes = librosa.piptrack(y=audio_data, sr=sample_rate)
# ピッチの最大値を取得
pitches_max = np.max(pitches, axis=0)
# ピッチをプロット
plt.figure(figsize=(10, 4))
plt.plot(pitches_max)
plt.title('音声データのピッチ')
plt.xlabel('フレーム数')
plt.ylabel('ピッチ (Hz)')
plt.grid()
plt.show()

このコードを実行すると、音声データのピッチがプロットされ、時間的な変化を視覚的に確認できます。

音声データのノイズ除去

音声データからノイズを除去するには、フィルタリング技術を使用します。

以下のコードでは、バンドパスフィルタを使用してノイズを除去する方法を示します。

from scipy.io import wavfile
from scipy.signal import butter, lfilter
# バンドパスフィルタの設計
def butter_bandpass(lowcut, highcut, fs, order=5):
    nyq = 0.5 * fs
    low = lowcut / nyq
    high = highcut / nyq
    b, a = butter(order, [low, high], btype='band')
    return b, a
def bandpass_filter(data, lowcut, highcut, fs, order=5):
    b, a = butter_bandpass(lowcut, highcut, fs, order=order)
    y = lfilter(b, a, data)
    return y
# WAVファイルを読み込む
sample_rate, audio_data = wavfile.read('sample.wav')
# ノイズ除去
filtered_data = bandpass_filter(audio_data, 300.0, 3000.0, sample_rate)
# 加工したデータを新しいWAVファイルに保存
wavfile.write('sample_filtered.wav', sample_rate, filtered_data.astype(np.int16))
print("ノイズを除去した音声データを保存しました。")

このコードを実行すると、ノイズが除去された新しいWAVファイルが作成されます。

音声データの音声認識への応用

音声データを音声認識に利用するには、speech_recognitionライブラリを使用することができます。

以下のコードでは、WAVファイルから音声を認識する方法を示します。

import speech_recognition as sr
# 音声認識のインスタンスを作成
recognizer = sr.Recognizer()
# WAVファイルを読み込む
with sr.AudioFile('sample.wav') as source:
    audio = recognizer.record(source)  # 音声データを取得
# 音声認識を実行
try:
    text = recognizer.recognize_google(audio, language='ja-JP')
    print("認識結果:", text)
except sr.UnknownValueError:
    print("音声を認識できませんでした。")
except sr.RequestError as e:
    print(f"音声認識サービスに接続できませんでした: {e}")

このコードを実行すると、WAVファイルの音声が認識され、テキストとして出力されます。

音声認識技術を活用することで、音声データをテキストに変換することができます。

応用例:wavファイルの生成

サイン波を生成してwavファイルに保存する方法

サイン波を生成してWAVファイルに保存するには、NumPyを使用してサイン波のデータを作成し、scipy.io.wavfileを使って保存します。

以下のコードでは、440 Hzのサイン波を生成し、WAVファイルに保存する方法を示します。

import numpy as np
from scipy.io import wavfile
# サンプリングレートと周波数
sample_rate = 44100  # 44.1 kHz
frequency = 440.0     # A4の音(440 Hz)
duration = 2.0        # 2秒間
# 時間軸を作成
t = np.linspace(0, duration, int(sample_rate * duration), endpoint=False)
# サイン波を生成
audio_data = 0.5 * np.sin(2 * np.pi * frequency * t)  # 振幅を0.5に設定
# 16ビット整数に変換
audio_data = (audio_data * 32767).astype(np.int16)
# WAVファイルに保存
wavfile.write('sine_wave.wav', sample_rate, audio_data)
print("サイン波を生成してWAVファイルに保存しました。")

このコードを実行すると、440 Hzのサイン波が生成され、sine_wave.wavという名前で保存されます。

複数のwavファイルを結合する方法

複数のWAVファイルを結合するには、音声データを読み込み、NumPy配列として結合した後、新しいWAVファイルとして保存します。

以下のコードでは、2つのWAVファイルを結合する方法を示します。

import numpy as np
from scipy.io import wavfile
# 1つ目のWAVファイルを読み込む
sample_rate1, audio_data1 = wavfile.read('sample1.wav')
# 2つ目のWAVファイルを読み込む
sample_rate2, audio_data2 = wavfile.read('sample2.wav')
# サンプリングレートが同じであることを確認
assert sample_rate1 == sample_rate2, "サンプリングレートが異なります。"
# 音声データを結合
combined_audio = np.concatenate((audio_data1, audio_data2))
# 結合したデータを新しいWAVファイルに保存
wavfile.write('combined.wav', sample_rate1, combined_audio)
print("複数のWAVファイルを結合して保存しました。")

このコードを実行すると、sample1.wavsample2.wavが結合され、新しいWAVファイルcombined.wavが作成されます。

wavファイルにエフェクトを追加する方法

WAVファイルにエフェクトを追加するには、音声データに対してフィルタやエコーなどの処理を行います。

以下のコードでは、音声データにエコー効果を追加する方法を示します。

import numpy as np
from scipy.io import wavfile
# WAVファイルを読み込む
sample_rate, audio_data = wavfile.read('sample.wav')
# エコー効果を追加
delay = 0.5  # エコーの遅延時間(秒)
delay_samples = int(sample_rate * delay)  # サンプル数に変換
# エコーを追加するための配列を作成
echo_data = np.zeros(len(audio_data) + delay_samples, dtype=np.int16)
# 元の音声データを配置
echo_data[:len(audio_data)] += audio_data
# エコーを配置
echo_data[delay_samples:delay_samples + len(audio_data)] += audio_data * 0.5  # 振幅を0.5に設定
# エコー効果を適用したデータを新しいWAVファイルに保存
wavfile.write('sample_with_echo.wav', sample_rate, echo_data[:len(audio_data)].astype(np.int16))
print("エコー効果を追加したWAVファイルを保存しました。")

このコードを実行すると、元の音声データにエコー効果が追加され、sample_with_echo.wavという名前で保存されます。

エフェクトの強さや種類を変更することで、さまざまな音声処理が可能です。

よくある質問

wavファイルの読み込み時にエラーが出るのはなぜ?

WAVファイルの読み込み時にエラーが発生する主な原因はいくつかあります。

以下の点を確認してください。

  • ファイルパスの誤り: 指定したファイルパスが正しいか確認してください。

ファイルが存在しない場合、エラーが発生します。

  • ファイル形式の不一致: 読み込もうとしているファイルがWAV形式であることを確認してください。

異なるフォーマットのファイルを読み込もうとするとエラーになります。

  • ライブラリの不具合: 使用しているライブラリが正しくインストールされているか、バージョンが適切か確認してください。

特に、scipylibrosaなどの外部ライブラリに依存している場合、バージョンの不一致が原因でエラーが発生することがあります。

wavファイルのサンプリングレートを変更するにはどうすればいい?

WAVファイルのサンプリングレートを変更するには、音声データを読み込んだ後、librosaライブラリのlibrosa.resample関数を使用する方法があります。

以下の手順でサンプリングレートを変更できます。

  1. WAVファイルを読み込む。
  2. librosa.resampleを使用して新しいサンプリングレートにリサンプリングする。
  3. 新しいサンプリングレートで音声データを保存する。

具体的なコード例は以下の通りです。

import librosa
# WAVファイルを読み込む
audio_data, original_sample_rate = librosa.load('sample.wav', sr=None)
# 新しいサンプリングレートを指定
new_sample_rate = 22050
# 音声データをリサンプリング
resampled_audio = librosa.resample(audio_data, orig_sr=original_sample_rate, target_sr=new_sample_rate)
# 新しいWAVファイルに保存
librosa.output.write_wav('resampled_sample.wav', resampled_audio, new_sample_rate)

wavファイルを読み込んだ後、どのように再生すればいい?

WAVファイルを読み込んだ後、音声データを再生するには、sounddeviceライブラリを使用するのが一般的です。

以下の手順で音声データを再生できます。

  1. WAVファイルを読み込む。
  2. sounddevice.play関数を使用して音声データを再生する。
  3. sounddevice.wait関数を使用して再生が完了するまで待機する。

具体的なコード例は以下の通りです。

import sounddevice as sd
from scipy.io import wavfile
# WAVファイルを読み込む
sample_rate, audio_data = wavfile.read('sample.wav')
# 音声データを再生
sd.play(audio_data, samplerate=sample_rate)
sd.wait()  # 再生が終わるまで待機

このコードを実行すると、読み込んだWAVファイルの音声データが再生されます。

まとめ

この記事では、Pythonを使用してWAVファイルを読み込み、加工、解析、生成する方法について詳しく解説しました。

音声データの取り扱いに関する基本的な知識から、実際の応用例まで幅広くカバーしており、音声処理の実践的なスキルを身につけることができます。

これを機に、音声データを活用したプロジェクトに挑戦してみてはいかがでしょうか。

当サイトはリンクフリーです。出典元を明記していただければ、ご自由に引用していただいて構いません。

関連カテゴリーから探す

  • URLをコピーしました!
目次から探す