Skip to content

feat: add lemonade to provider#508

Open
cosarah wants to merge 5 commits intomainfrom
feat/lemonade-provider
Open

feat: add lemonade to provider#508
cosarah wants to merge 5 commits intomainfrom
feat/lemonade-provider

Conversation

@cosarah
Copy link
Copy Markdown
Collaborator

@cosarah cosarah commented Apr 29, 2026

Summary

Related Issues

close #506

Changes

  • add lemonade to LLM, image, TTS, ASR provider

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)
  • CI/CD or build changes

Verification

Steps to reproduce / test

What you personally verified

Evidence

  • CI passes (pnpm check && pnpm lint && npx tsc --noEmit)
  • Manually tested locally
  • Screenshots / recordings attached (if UI changes)

Checklist

  • My code follows the project's coding style
  • I have performed a self-review of my code
  • I have added/updated documentation as needed
  • My changes do not introduce new warnings

@wyuc
Copy link
Copy Markdown
Contributor

wyuc commented May 5, 2026

Upload some test cases and solve conflicts plz, then i'll merge

cosarah and others added 4 commits May 5, 2026 19:56
# Conflicts:
#	lib/i18n/locales/ar-SA.json
#	lib/i18n/locales/en-US.json
#	lib/i18n/locales/ja-JP.json
#	lib/i18n/locales/ru-RU.json
#	lib/i18n/locales/zh-CN.json
#	lib/server/provider-config.ts
- TTS model: kokoro → kokoro-v1
- ASR model: single 'whisper' → 6 Whisper variants (Base/Large-v3/Large-v3-Turbo/Medium/Small/Tiny), default Whisper-Base
- Expand lemonade-tts voices to full Kokoro v1 set (54 voices across en-US/en-GB/zh-CN/ja-JP/es/fr-FR/hi/it-IT/pt-BR)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… code consistency

- zh-TW.json: add missing providerLemonadeTTS/ASR/Image keys
- TTS default voice: 'default' → 'af_heart' (Kokoro expects real voice ID, not placeholder)
- Voice language codes: 'es'/'hi' → 'es-ES'/'hi-IN' for consistency

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Covers:
- lib/media/adapters/lemonade-image-adapter: request shape, base URL fallback, custom model, optional Bearer auth, error paths, connectivity probe
- lib/audio/tts-providers (lemonade-tts case): request body (model/voice/format), af_heart fallback, optional auth, error path
- lib/audio/asr-providers (lemonade-asr case): WAV-only validation, model/language form fields, "audio is empty" graceful empty result, error propagation, default model fallback
- lib/audio/wav-utils: isWavBlob detection by MIME and filename, normalizeASRUploadAudio pass-through and wav handling

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@cosarah cosarah requested a review from wyuc May 5, 2026 13:28
@wyuc
Copy link
Copy Markdown
Contributor

wyuc commented May 5, 2026

Could you share what E2E tests you’ve run on your local machine? including which model you tested, your hardware platform, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Lemonade as a local AI provider (text, image, TTS, ASR)

2 participants