From 5cc9d140fe675533c7e44f8ff30cc7a06d79f7fc Mon Sep 17 00:00:00 2001 From: Fireblade Date: Tue, 11 Feb 2025 22:36:19 -0500 Subject: [PATCH] WIP --- Test.py | 24 ++++++++++++++++++++++++ api/src/services/audio.py | 2 +- output.mp3 | Bin 0 -> 39285 bytes 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 Test.py create mode 100644 output.mp3 diff --git a/Test.py b/Test.py new file mode 100644 index 0000000..0944861 --- /dev/null +++ b/Test.py @@ -0,0 +1,24 @@ +import requests + + +response = requests.get("http://localhost:8880/v1/audio/voices") +voices = response.json()["voices"] + +# Generate audio +response = requests.post( + "http://localhost:8880/v1/audio/speech", + json={ + "model": "kokoro", + "input": "http://localhost:8880/web/", + "voice": "af_heart", + "response_format": "mp3", # Supported: mp3, wav, opus, flac + "speed": 1.0, + "normalization_options": { + "normalize": True + } + } +) + +# Save audio +with open("output.mp3", "wb") as f: + f.write(response.content) \ No newline at end of file diff --git a/api/src/services/audio.py b/api/src/services/audio.py index 53c0ed4..8bc99bb 100644 --- a/api/src/services/audio.py +++ b/api/src/services/audio.py @@ -174,7 +174,7 @@ class AudioService: del AudioService._writers[writer_key] return final_data if final_data else b"" - return chunk_data if chunk_data else b"" + return chunk_data if chunk_data else b"", audio_chunk except Exception as e: logger.error(f"Error converting audio stream to {output_format}: {str(e)}") diff --git a/output.mp3 b/output.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b6d76354a43dc9f2f102d33877d8654ae95d699d GIT binary patch literal 39285 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