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/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.

コメント