from zai import ZaiClient, ZhipuAiClient import time def voice_clone(): # Initialize client client = ZhipuAiClient() # Step 1: Upload the voice input audio file # First, we need to upload the voice sample audio file to get a file ID voice_input_file_path = "tests/integration_tests/voice_clone_input.mp3" try: with open(voice_input_file_path, 'rb') as f: upload_response = client.files.create( file=f, purpose='voice-clone-input', ) print(f"Voice input file uploaded successfully with ID: {upload_response.id}") file_id = upload_response.id except FileNotFoundError: print(f"File not found: {voice_input_file_path}") return except Exception as e: print(f"File upload failed: {e}") return # Step 2: Clone voice using the uploaded file ID response = client.voice.clone( voice_name="My Test Voice!", text="This is sample text for voice cloning training", input="This is target text for voice preview generation", file_id=file_id, request_id=f"voice_clone_request_{int(time.time() * 1000)}", model="cogtts-clone" ) print(f"Voice clone response: {response}") def voice_delete(): # Initialize client client = ZhipuAiClient() # Delete voice response = client.voice.delete( voice="Your voice", request_id=f"voice_delete_request_{int(time.time() * 1000)}" ) print(response) def voice_list(): # Initialize client client = ZhipuAiClient() # List voices with filter response = client.voice.list( voice_type="PRIVATE", voice_name="Test", request_id=f"voice_list_request_{int(time.time() * 1000)}" ) print(response) if __name__ == "__main__": # voice_clone() # voice_delete() voice_list()