おうちcafe

ふと思ったことを綴るブログ

SpleeterのCoreML変換 その2

先日SpleeterのCoreML変換について触れましたが、同様にして5stemsのCoreML変換もうまくいきました。

早速アプリに組み込もうとしたところ、どうも今の実装だとメモリが足りなくなるので、とりあえず4stemsにしてリリースしました。

お試しください。

 

この後はファイルの保存に対応するか、エフェクトを実装するか考え中です。

 

ExtVocal

ExtVocal

  • sayitsforever
  • ミュージック
  • 無料

 

SpleeterのCoreML変換

リリースしたExtVocalを(仕事が忙しくて)暫く放置していたら、Spleeterという凄いものが

リリースされていました。

いち早くVocalExtractorさんが取り入れていたので、自分もと思い軽い気持ちで始めたら、

TensorFlowが初めてなのと、coremltoolsで対応していないレイヤがあったりでだいぶ苦労しました。

SwitchとMergeがだいぶ曲者ですね。

tfcoremlをだいぶいじって何とか変換にこぎつけましたが、これが正解なんでしょうか。。

とりあえずExtVocalに組み込んだので近々リリース予定です。

歌マネ

カラオケで原曲の歌い方を真似てみても、どうしてもやっぱり自分の声にしか聞こえません。

 

何か良い方法はないか?

原曲のボーカルだけ抽出して、自分の声の周波数成分と比較したら何かコツが掴めるか?

 

何はともあれまずはボーカル抽出だなということで、色々調べてみました。

 

NMFとか色々な手法があるようですが、DeepLearningを用いた手法があるということを知り、iPhoneのCoreMLで利用できるかもということでそちらを使うことにしました。

 

こちらの記事を参考にさせていただきました。

Deep U-Netで自動歌声分離

https://qiita.com/xiao_ming/items/88826e576b87141c4909

 

自分の歌声と比較するというところには至ってませんが、ボーカル抽出に関してはいい感じに出来たと思います。

ExtVocal

ExtVocal

  • sayitsforever
  • ミュージック
  • 無料

 

 

 

 

プライバシーポリシー

当方で作成するiOSアプリで個人情報の収集を行うことはありません。

アプリの利便性向上のため、個人を特定できない範囲でアクセス解析を実施する可能性があります。

その場合も第三者に個人を特定できる情報を提供することはありません。個人情報の管理には細心の注意を払い、取り扱います。

 

お問い合わせ

ChainerからCoreML

Chainerの学習済モデルをCoreMLに変換するのにだいぶ苦労しました

onnx_chainerで変換して

onnx_coremlで変換

でうまく行くと思いきや、BarchNormalizationを含んでるとcoremlのruntimeエラーが発生

仕方ないのでonnx_coremlを書き換えて無理やり変換したところうまく行きました

ネットで検索しても全然ヒットしませんでしたが、あんまり需要がないんですかね

あの頃分からなかったこと

もう20年以上も昔のことなので実際にはどうだったか分かりませんが、

覚えている限り高校の数学の授業で行列を習っていた時は、それが

何の役に立つのかなど一切考えずにただ公式を覚えていました。

 

社会人になって趣味で3Dグラフィックスのプログラミングをする

ようになって、始めて行列って役に立つじゃんと思ったものです。

 

この知識はこんな仕事に役立ってるんだよということを当時教えて

もらえていればもう少し真面目に勉強したのになと今更ながら思います。

 

大学時代もちゃんと勉強してたかも。