initial
This commit is contained in:
56
test_api.py
Normal file
56
test_api.py
Normal file
@@ -0,0 +1,56 @@
|
||||
import requests
|
||||
from pathlib import Path
|
||||
|
||||
# API endpoint
|
||||
URL = "http://localhost:8000/generate"
|
||||
|
||||
def test_generation(text: str, output_file: str = "output.wav", audio_prompt: str = None):
|
||||
"""
|
||||
Test the Dia API generation endpoint.
|
||||
|
||||
Args:
|
||||
text (str): Transcript text with speaker tags.
|
||||
output_file (str): Filename to save the output audio.
|
||||
audio_prompt (str): Optional path to an audio prompt file.
|
||||
"""
|
||||
# Using 'Form' and 'File' parameters in requests
|
||||
data = {"text": text}
|
||||
files = {}
|
||||
|
||||
if audio_prompt and Path(audio_prompt).exists():
|
||||
files["audio_prompt"] = open(audio_prompt, "rb")
|
||||
|
||||
print(f"Calling generation endpoint with text: '{text[:100]}...'")
|
||||
|
||||
try:
|
||||
# Use POST request with timeout
|
||||
response = requests.post(URL, data=data, files=files, timeout=60)
|
||||
response.raise_for_status()
|
||||
|
||||
# Save the audio output
|
||||
with open(output_file, "wb") as f:
|
||||
f.write(response.content)
|
||||
|
||||
print(f"Successfully generated audio. Saved as '{output_file}'")
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"Error calling API: {e}")
|
||||
if response and response.content:
|
||||
print(f"Server error details: {response.text}")
|
||||
finally:
|
||||
if files:
|
||||
files["audio_prompt"].close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Sample transcript with realistic dialogue features
|
||||
SAMPLE_TEXT = (
|
||||
"[S1] Dia is an open weights text to dialogue model. (laughs) "
|
||||
"[S2] It allows full control over scripts and voices. "
|
||||
"[S1] Wow. Really impressive."
|
||||
)
|
||||
|
||||
# Check if we should use a specific prompt
|
||||
# test_generation(SAMPLE_TEXT, audio_prompt="path/to/my_voice.wav")
|
||||
|
||||
print("Testing basic generation...")
|
||||
test_generation(SAMPLE_TEXT)
|
||||
Reference in New Issue
Block a user