| | import argparse |
| | import os |
| | import json |
| |
|
| |
|
| | def validate_sampling_rate(value): |
| | valid_sampling = [ |
| | "32000", |
| | "40000", |
| | "48000", |
| | ] |
| | if value in valid_sampling: |
| | return value |
| | else: |
| | raise argparse.ArgumentTypeError( |
| | f"Invalid sampling_rate. Please choose from {valid_sampling} not {value}" |
| | ) |
| |
|
| |
|
| | def validate_f0up_key(value): |
| | f0up_key = int(value) |
| | if -24 <= f0up_key <= 24: |
| | return f0up_key |
| | else: |
| | raise argparse.ArgumentTypeError(f"f0up_key must be in the range of -24 to +24") |
| |
|
| | def validate_true_false(value): |
| | valid_tf = [ |
| | "True", |
| | "False", |
| | ] |
| | if value in valid_tf: |
| | return value |
| | else: |
| | raise argparse.ArgumentTypeError( |
| | f"Invalid true_false. Please choose from {valid_tf} not {value}" |
| | ) |
| |
|
| | def validate_f0method(value): |
| | valid_f0methods = [ |
| | "pm", |
| | "dio", |
| | "crepe", |
| | "crepe-tiny", |
| | "harvest", |
| | "rmvpe", |
| | ] |
| | if value in valid_f0methods: |
| | return value |
| | else: |
| | raise argparse.ArgumentTypeError( |
| | f"Invalid f0method. Please choose from {valid_f0methods} not {value}" |
| | ) |
| |
|
| | def validate_tts_voices(value): |
| | json_path = os.path.join("rvc", "lib", "tools", "tts_voices.json") |
| | with open(json_path, 'r') as file: |
| | tts_voices_data = json.load(file) |
| |
|
| | |
| | short_names = [voice.get("ShortName", "") for voice in tts_voices_data] |
| | if value in short_names: |
| | return value |
| | else: |
| | raise argparse.ArgumentTypeError( |
| | f"Invalid voice. Please choose from {short_names} not {value}" |
| | ) |