wavからmidiへの変換
-
22-09-2019 - |
質問
私はこの分野には慣れていませんが、Java で WAV から MIDI への変換を実行する必要があります。WAV から MIDI への変換に必要な手順を正確に知る方法はありますか?あなたが必要としているように、私には非常に大まかなアイデアがあります。wav ファイルをサンプリングし、フィルタリングし、スペクトル分析に FFT を使用して特徴を抽出し、抽出された特徴を MIDI に書き込みます。しかし、それをどのようにすればよいのか、確かな情報源や論文が見つかりません。どこからどのように始めればよいか、誰かがヒントをくれませんか?この WAV から MIDI への変換プロセスに利用できるオープンソース API はありますか?
よろしくお願いします
解決
それは想像以上に複雑なプロセスです。
この研究課題はよく次のように呼ばれます。 音楽転写:音楽の低レベル表現 (波形など) を MIDI や楽譜などの高レベル表現に変換する行為。
ソリューションの洗練度は、入力データの複雑さに依存します。大量の研究論文は、モノラルピアノまたはドラムのみでの音楽転写について扱っています...転記しやすいからです。(比較的。)ヴァイオリンの方が難しいです。声はさらに難しいです。ヴァイオリンと声とピアノの方がずっと難しいです。交響曲はほぼ不可能です。イメージが分かりますね。
音楽トランスクリプションの基本要素には、次の重複する領域のいずれかが含まれます。
- (マルチ)ピッチ推定
- 楽器認識、音色モデリング
- リズム検出
- ノートのオンセット/オフセットの検出
- 形状/構造モデリング
Google Scholar または ISMIR 論文集から「音楽転写」に関する論文を検索します。 http://www.ismir.net. 。上記のサブトピックのいずれかに興味がある場合は、さらに詳しく説明します。幸運を。
編集:そうは言っても、Web 上で見つけられる既存のソリューションは存在します。ぜひお試しください。ただし、その際には、批判的な目と耳を持って評価してください。どのようなタイプの音声信号が文字起こしの失敗の原因になりますか?
編集2:ああ、これはピアノのためだけにやっているんですね。わかりました、これは実行可能です。音楽の転写は、モノラルのピアノをかなりうまく転写できるところまで進歩しました。ラフマニノフの協奏曲は依然として問題を引き起こすだろう。
私たちの推奨事項は最終目標によって異なります。あなたは「必要 実行する...で ジャワ」 つまり、目的地に到達する方法に関係なく、何かが機能することだけを望んでいるように思えます。その場合、私は他の人の意見に 100% 同意します。存在するものを使う。
それは実に興味深い質問です。私が知っている MIR ライブラリはすべて、通常は C/C++/Python/Matlab です。しかし、Javaではありません。EchoNest には Java API がありますが、ノートレベルの文字起こしはできないと思います。 http://developer.echonest.com. 。(編集:それ する ノートレベルの転写。返されるデータには、ピッチ、音色、ビート、テイタムなどが含まれます。しかし、ポリフォニーにはまだ問題があると思います。)
ああ、Marsyas は Java ベースです。いいね。C++だけだと思ってた。 http://marsyas.info/ これをお勧めします。これは、MIR の教授である George Tzanetakis によって開発されました。信号レベルの分析を行うので、良いオプションとなるはずです。
さて、これが楽しい学習体験のためであれば、Java のサウンド操作ユーティリティを使用して WAV 信号を実験し、結果を確認することができると思います。
編集:このページでは MIR ソフトウェアについて私より詳しく説明しています。 私たちが使用するツール
Matlab については、以下に興味があるかもしれません。 MIR ツールボックス
一般的なデータセットの素晴らしいページは次のとおりです。 MIR データセット
他のヒント
これは、あなたが一般的な信号解析と特徴検出に精通しており、自動転写に、より具体的に見てみたいわけがない限り、フィールドに新しいもののために非常に大きな作業です。
MIDIへの変換WAVのためのAPIはありません。 ヴァンプの特徴抽出のプラグインのためのフレームワークですが、自動転写を行うために、あなたはすべて使用する必要があります既存のプラグインの機能に加え、まだそれらのどれに存在する機能を実装します。
ブラウズ VAMPのダウンロードページ上のプラグインの記述、あなたが任意の説明を通じこれを行うにしたい場合は、研究を開始すべきトピックをしている理解しています。
このタスクを自動化する必要がない場合 (つまり、MP3 をアップロードして MIDI ファイルを取得できる Web サイトの場合)、次のようなツールの使用を検討する必要があります。 メロダイン これはすでにかなり得意です。Steve が指摘したように、これは達成するのが非常に困難なタスクであり、現時点で存在する最良のアルゴリズムやソリューションであっても 100% 信頼できるわけではありません。
したがって、スタジオでの作業を行っているだけで、いくつかの変換を行う必要がある場合は、このタスク用にすでに設計されているツールを使用すると、おそらく多少の時間 (および多くの頭痛) を節約できるでしょう。
イルカ、申し訳ありませんが、あなたは完全に問題を過小評価しています。あなたが達成したい何か - 演奏は、長年にわたり分野で働いている人たちとの研究の膨大な量を必要としながら、使用されたすべてのパラメータを含む完全なピアノの音転写。信号処理における博士号取得者の偶数グループにも近い、あなたが何を意味するかに来て多くの作業を投資しなければなりません。音楽転写は途中で信頼性にも仕事に仕事の数十年を必要としています。私はあなたがこれより良く管理することができます別の問題を選ぶことをお勧めしたい。
これは非常にまだ開発中であるフィールドで、まだ使用可能ないくつかの(実験的)アルゴリズムがあります。
あなたはソニック注釈をインストールし、いくつかのバンプのプラグインを使用することができます。
例えば、
./sonic-annotator file.wav -d vamp:qm-vamp-plugins:qm-transcription:transcription -w midi
./sonic-annotator file.wav -d vamp:silvet:silvet:notes -w midi
./sonic-annotator file.wav -d vamp:ua-vamp-plugins:mf0ua:mf0ua -w midi