From d44bc695aaedf54841a0da2eaccedeb9e27212b7 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 10 Oct 2023 01:19:05 -0400 Subject: [PATCH] RMVPE support --- .../src/api/voice_conversion/EnqueueVoiceConversion.ts | 1 + .../v2/view/pages/vc/vc_model_list/VcModelListPage.tsx | 4 ++-- .../components/PitchEstimateMethodComponent.tsx | 9 +++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/components/src/api/voice_conversion/EnqueueVoiceConversion.ts b/packages/components/src/api/voice_conversion/EnqueueVoiceConversion.ts index 40223e5bfc..c274b429d2 100644 --- a/packages/components/src/api/voice_conversion/EnqueueVoiceConversion.ts +++ b/packages/components/src/api/voice_conversion/EnqueueVoiceConversion.ts @@ -1,6 +1,7 @@ import { ApiConfig } from "@storyteller/components"; export enum EnqueueVoiceConversionFrequencyMethod { + Rmvpe = "rmvpe", Crepe = "crepe", Dio = "dio", Harvest = "harvest", diff --git a/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_list/VcModelListPage.tsx b/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_list/VcModelListPage.tsx index c8359a03be..70a0029643 100644 --- a/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_list/VcModelListPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_list/VcModelListPage.tsx @@ -78,8 +78,8 @@ function VcModelListPage(props: Props) { const [autoConvertF0, setAutoConvertF0] = useState(false); const [maybeF0MethodOverride, setMaybeF0MethodOverride] = useState< - EnqueueVoiceConversionFrequencyMethod | undefined - >(undefined); + EnqueueVoiceConversionFrequencyMethod + >(EnqueueVoiceConversionFrequencyMethod.Rmvpe); const [semitones, setSemitones] = useState(0); diff --git a/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_list/components/PitchEstimateMethodComponent.tsx b/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_list/components/PitchEstimateMethodComponent.tsx index 07555678e8..0c40cbd1ed 100644 --- a/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_list/components/PitchEstimateMethodComponent.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_list/components/PitchEstimateMethodComponent.tsx @@ -31,6 +31,9 @@ function PitchEstimateMethodComponent(props: PitchShiftProps) { let pitchMethod = undefined; switch (pitchMethodName) { + case "rmvpe": + pitchMethod = EnqueueVoiceConversionFrequencyMethod.Rmvpe; + break; case "crepe": pitchMethod = EnqueueVoiceConversionFrequencyMethod.Crepe; break; @@ -51,9 +54,11 @@ function PitchEstimateMethodComponent(props: PitchShiftProps) { } const options : DropdownOption[] = [ - { label: "DIO", value: EnqueueVoiceConversionFrequencyMethod.Dio }, - { label: "CREPE", value: EnqueueVoiceConversionFrequencyMethod.Crepe }, + { label: "RMVPE (typically best overall)", value: EnqueueVoiceConversionFrequencyMethod.Rmvpe }, + { label: "CREPE (good for noisy samples)", value: EnqueueVoiceConversionFrequencyMethod.Crepe }, { label: "Harvest", value: EnqueueVoiceConversionFrequencyMethod.Harvest }, + // NB: We no longer recommend DIO. + //{ label: "DIO", value: EnqueueVoiceConversionFrequencyMethod.Dio }, ]; const selectedOption = options.find((option) => option.value === props.pitchMethod) || options[0];