|
|
|
|
|
""" |
|
|
Basic example of using Chiluka for TTS synthesis. |
|
|
|
|
|
Usage: |
|
|
python basic_synthesis.py --reference path/to/reference.wav --text "Hello world" |
|
|
""" |
|
|
|
|
|
import argparse |
|
|
import sys |
|
|
import os |
|
|
|
|
|
|
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
|
|
|
|
|
from chiluka import Chiluka |
|
|
|
|
|
|
|
|
def main(): |
|
|
parser = argparse.ArgumentParser(description="Chiluka TTS Synthesis") |
|
|
parser.add_argument("--reference", "-r", required=True, help="Path to reference audio file") |
|
|
parser.add_argument("--text", "-t", default="Hello, this is Chiluka speaking!", help="Text to synthesize") |
|
|
parser.add_argument("--language", "-l", default="en-us", help="Language code (en-us, te, hi, etc.)") |
|
|
parser.add_argument("--output", "-o", default="output.wav", help="Output WAV file path") |
|
|
parser.add_argument("--alpha", type=float, default=0.3, help="Acoustic style mixing (0-1)") |
|
|
parser.add_argument("--beta", type=float, default=0.7, help="Prosodic style mixing (0-1)") |
|
|
parser.add_argument("--steps", type=int, default=5, help="Diffusion steps") |
|
|
args = parser.parse_args() |
|
|
|
|
|
|
|
|
print("Initializing Chiluka TTS...") |
|
|
tts = Chiluka() |
|
|
|
|
|
|
|
|
print(f"Synthesizing: '{args.text}'") |
|
|
wav = tts.synthesize( |
|
|
text=args.text, |
|
|
reference_audio=args.reference, |
|
|
language=args.language, |
|
|
alpha=args.alpha, |
|
|
beta=args.beta, |
|
|
diffusion_steps=args.steps, |
|
|
) |
|
|
|
|
|
|
|
|
tts.save_wav(wav, args.output) |
|
|
print(f"Done! Output saved to: {args.output}") |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
main() |
|
|
|