-
Notifications
You must be signed in to change notification settings - Fork 338
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ADD CREPE #1201
Comments
onnx |
このコードをworldと比較してみると良さそう。 |
rvcもcrepeを選択できる。 |
@ooe1123 RVCのf0にcrapeを選択可能にしたいと考えていまして、RVCに含まれるcrapeをonnxにエクスポートして、RVCのサンプルに追加いただくことは可能でしょうか? |
目的としては、Unityのf0対応のために、worldを使わないピッチ推定を導入したいと考えています。 |
crepeの推論コード。
|
preprocessが意外と複雑かもしれない。 |
preprocessで入力音声波形を16kHzにresample、hop_lengthでフレーム分割、inferでAIモデル推論してprobabilitiesを取得、postprocessでbinからf0値に変換。 |
rvc.pyのinp_f0は常にNone。 |
モデルをアップロード。 |
1024要素につき、一つのfrequencyが出力される。 |
Unityで動かすと想定よりも負荷が高かったので調べてみると、crepeは高音質用の模様。
|
crepeは2次元入力ではなく3次元入力にしてbatchを1に固定した方が高速な気がする。 |
batchサイズの内側にchannelがあるので3次元入力にしてconv2dにマップするのは難しそう。 |
crepeのargmax、weighted_argmax、viterbiを比較すると、viterbi以外はf値が飛ぶことがあり品質が低く、実際の音もノイズが入る。 |
360個の量子化されたf0値(bin)からどのようにf0を復元するかが違う。 argmax
viterbi
|
viterbiの場合、360x360のmeshgridを作り、同じbinは12、binの距離が離れるほど減点し、最小で0を付与する。 |
argmaxの計算に遷移コストを付与するイメージ。最終的に最も確率の高い組み合わせからbackwardで経路を決定する。
|
p_initの初期値。
|
pdにはconfidence値が入る。 |
RVCにマージしました。 |
CNNによるPCMからのピッチ推定
https://github.com/marl/crepe
The text was updated successfully, but these errors were encountered: