feat(tts): add aivis_tts_python (Aivis Cloud, Japanese realtime HTTP streaming) - #2280
Open
Therealratoshen wants to merge 1 commit into
Open
feat(tts): add aivis_tts_python (Aivis Cloud, Japanese realtime HTTP streaming)#2280Therealratoshen wants to merge 1 commit into
Therealratoshen wants to merge 1 commit into
Conversation
- Add aivis_tts_python under ten_packages/extension/ (AsyncTTS2HttpExtension subclass that streams Aivis Cloud TTS WAV and yields PCM to TEN). - Append voice_assistant_aivis graph (Deepgram ja STT + OpenAI LLM + Aivis TTS + main_control + message_collector). - Document AIVIS_API_KEY / AIVIS_MODEL_UUID / AIVIS_BASE_URL in .env.example alongside the other TTS providers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new TTS extension
aivis_tts_pythonbacked by Aivis Cloud API and wires it into the voice-assistant example asvoice_assistant_aivis.Aivis is a Japanese-focused realtime TTS provider with public HTTP API and WAV streaming — fills the regional TTS gap (Supertone sunsets 2026-08-31, signup already closed).
Changes
ai_agents/agents/ten_packages/extension/aivis_tts_python/— new extension modeled on the existing Gradium/Rime HTTP TTS extensions:AsyncTTS2HttpExtensionsubclass streamingPOST /v1/tts/synthesizeviahttpx.AsyncClient.WavStreamParserstrips the WAV header so the first PCM chunk reaches TEN immediately, giving the base class a correct TTFB measurement.INVALID_KEY_ERROR; cancellation →FLUSH; other HTTP errors →ERROR.output_formatis forced towavbecause TEN needs raw PCM.ai_agents/agents/examples/voice-assistant/tenapp/property.json— appendsvoice_assistant_aivis(Deepgram ja STT + OpenAI LLM + Aivis TTS + main_control + message_collector).ai_agents/.env.example— documentsAIVIS_API_KEY,AIVIS_MODEL_UUID,AIVIS_BASE_URLalongside the other TTS providers.Test plan
tests/test_config.py— 4 unit tests (validation, default param normalization, client-only key stripping, URL construction) pass without TEN runtime.tests/bin/startend-to-end in a TEN checkout where the runtime has been built (task install && task buildinai_agents/) — this requires Docker on macOS and so could not be done in this PR's environment. Same prerequisite as every other TTS extension's tests (verified against Gradium).Notes
AIVIS_MODEL_UUIDpoints at Aivis's public default model (a59cb814-0083-4369-8542-f51a29e72af7).Made with Cursor