| 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}" |
| ) |