2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

音源データ「.mp3」をcolabで「MIDI」へ変換する方法

Posted at

・導入

私は現在、ピアノを学習している。
ただ楽譜などは読めないので、synthesiaというツールを用い、勉強中である。

自分の好きな楽曲をsynthesiaで練習するためには「MIDI」というデータを用意しなければなりません。しかし、販売されている音源は「.m4a.」というデータ形式であるので「.m4a.」→「MIDI」へ変換することが必要である。

「.m4a.」「MIDI」へ変換することができるソフトウェアは見つからなかったのだが、「.mp3」「MIDI」へ変換するものは発見したのでそれを利用しようとしたのだが、いかんせん正体不明のソフトウェアを自身のパソコンにインストールするというのは嫌なものなので、今回はGoogle Colaboratoryを使用し、音源データである「.mp3」をsynthesiaで利用できる「MIDI」へ変換する方法を解説する。

※「.m4a.」→「.mp3」への変換の仕方は省略する(iTunesを使用)

・Google Colabでのコード解説

まずffmpegとwgetという2つのパッケージをインストールする。

qiita.rb
!apt install ffmpeg wget

次にlibrosaという音声データを解析するためのPythonライブラリをインストールする。これにより音声処理や音楽情報検索などのタスクに使用され、音声データの解析や処理を行うことができるようになる。

qiita.rb
pip install librosa==0.9.2

ピアノ演奏の楽譜を推定・変換するためのPythonライブラリをインストールする。音楽の録音や演奏データから、演奏されたピアノの音楽を楽譜として復元したり、譜面データに変換したりすることができる。

qiita.rb
pip install piano_transcription_inference

IPython.displayモジュールからAudioクラスをインポートする。 このモジュールを使用すると、音声や画像、ビデオなどのさまざまなデータをブラウザ内で直接再生や表示ができる。

qiita.rb
from IPython.display import Audio

ピアノ演奏の音声データをMIDIファイルに変換する。

qiita.rb
from piano_transcription_inference import PianoTranscription, sample_rate, load_audio

def transcribe(audio_path, output_midi_path):
    # Load audio
    audio, _ = load_audio(audio_path, sr=sample_rate, mono=True)

    # Transcriptor
    transcriptor = PianoTranscription(device='cuda', checkpoint_path=None)

    # Transcribe and write out to MIDI file
    transcriptor.transcribe(audio, output_midi_path)

ピアノ演奏の音声データをMIDIファイルに変換する

qiita.rb
!wget https://github.com/qiuqiangkong/piano_transcription_inference/raw/master/resources/cut_liszt.mp3

IPython環境内で音声ファイル(拡張子が.mp3)を再生するためのIPython.displayモジュールのAudioクラスを使用する。

qiita.rb
Audio('------------.mp3')

ピアノ演奏の音声ファイル(拡張子が.mp3)をMIDIファイル(拡張子が.mid)に変換する。

qiita.rb
transcribe('------------.mp3', '------------.mid')

「----------------」の部分は自身でダウンロードしたmp3フィルム名を入力する。

すると

スクリーンショット (1868).png

このように実行され、無事MIDIデータへ変換することができた。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?