スポンサーリンク

【PyTorch】音声/音楽データを書き込むtorchaudio.save

Python

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.

コメント