feat: add Resemble AI TTS integration#148
Merged
dbrockmann merged 7 commits intojoinly-ai:mainfrom Sep 29, 2025
Merged
Conversation
dbrockmann
requested changes
Sep 22, 2025
Member
There was a problem hiding this comment.
Nice, thanks for adding this!
It would be nice for you to clean up a bit more. Some changes are not necessary for this PR, so keep only minimal changes for this feature, leave out unfinished/commented-out code, and remove the Python version pinning change (I marked some changes). Also make sure that tests pass: locally you can do uv run ruff check, uv run ruff format, and uv run pyright, all should have no suggestions/fails.
joinly/services/tts/__init__.py
Outdated
Comment on lines
1
to
16
Member
There was a problem hiding this comment.
Suggested change
| # from .kokoro import KokoroTTS | |
| # from .elevenlabs import ElevenlabsTTS | |
| # from .deepgram import DeepgramTTS | |
| # from .resemble import ResembleTTS | |
| # PROVIDERS = { | |
| # "kokoro": KokoroTTS, | |
| # "elevenlabs": ElevenlabsTTS, | |
| # "deepgram": DeepgramTTS, | |
| # "resemble": ResembleTTS, | |
| # } | |
| # def get_tts_provider(name: str, **args) -> TTS: | |
| # if name not in PROVIDERS: | |
| # raise ValueError(f"Unknown TTS provider: {name}") | |
| # return PROVIDERS[name].from_args(args) |
joinly/main.py
Outdated
Comment on lines
209
to
210
joinly/settings.py
Outdated
Member
There was a problem hiding this comment.
Suggested change
| tts: str | type[TTS] = Field(default="resemble") | |
| tts: str | type[TTS] = Field(default="kokoro") |
.gitignore
Outdated
Comment on lines
178
to
183
Member
There was a problem hiding this comment.
Suggested change
| # Audio output files | |
| *.pcm | |
| *.wav | |
| output.pcm | |
| output.wav |
config.json
Outdated
.python-version
Outdated
Member
There was a problem hiding this comment.
Suggested change
| 3.12.11 | |
| 3.12 |
Contributor
Author
|
i have cleaned up the code and did the necessary changes. Have a look. |
dbrockmann
approved these changes
Sep 29, 2025
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.
It's created by GitHub agent. Some of the dependency issues and python version updates are from the library mismatch.
Summary
This PR adds support for Resemble AI text-to-speech integration and includes several project configuration improvements.
Changes
joinly/services/tts/resemble.pyconfig.jsonfor MCP remote configuration.env.examplewith new service configurationspyproject.tomlanduv.lockwith new dependencies.gitignoreto exclude sensitive files and audio outputsTTS Integration Details
Testing
Notes
All API keys have been replaced with placeholders for security.