PyTorchで音声/音楽データを書き込むには、torchaudio.save
使う。torchaudio.save
は、Tensor型の配列をwav、mp3ファイルで書き出すことができる。
以下記事で生成した正弦波を1000Hzに変更し、書き込む。
import torch
import numpy as np
A = 0.5 # 振幅
f = 1000.0 # 周波数 Hz
sec = 3.0 # 信号の長さ s
sf = 44100 # サンプリング周波数 Hz
t = torch.arange(0, sec, 1/sf) #サンプリング点の生成
y = A*torch.sin(2*np.pi*f*t) # 正弦波の生成
torchaudio.saveの使い方
WAVファイル
第一引数 filepathに書き出すファイルのパス名を、第二引数 srcに信号のTensor配列を、第三引数 sample_rateにサンプリング周波数を指定することでwavファイルを書き出すことができる。
import torchaudio
y = y.reshape(1,len(t)) # [channel, time]にtensorを変更
torchaudio.save(filepath='test.wav', src=y, sample_rate=sf)
MP3ファイル
MP3ファイルで書き出すためには、format
にmp3を指定すると、wavファイルと同様にファイルを保存できる。
torchaudio.save(filepath='test.mp3', src=y, sample_rate=sf, format='mp3')
他のフォーマットで書き出したい場合は、format
に"ogg"
, "vorbis"
, "amr-nb"
, "amb"
, "flac"
, "sph"
, "gsm"
, "htk"
を指定すれば良い。
関連記事、関連資料
- GitHubコード
python-sampler/Python-audio-write/pytorch-audio-write/pytorch-audio-write.ipynb at main · take-tech-09/python-sampler
Contribute to take-tech-09/python-sampler development by creating an account on GitHub.
コメント