openvoiceui 1.0.0 → 2026.3.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +6 -0
- package/Dockerfile +11 -1
- package/README.md +113 -572
- package/app.py +11 -3
- package/auto-approve-devices.js +1 -1
- package/cli/index.js +24 -15
- package/default-pages/bighead-builder.html +1079 -0
- package/default-pages/bulk-image-uploader.html +6 -3
- package/default-pages/chatgpt-import.html +981 -0
- package/default-pages/dapp-builder.html +501 -0
- package/default-pages/desktop.html +135 -28
- package/default-pages/voice-studio.html +1380 -0
- package/default-pages/website-setup.html +41 -4
- package/docker-compose.local.yml +12 -0
- package/index.html +51 -1
- package/inject-device-identity.js +29 -4
- package/package.json +2 -2
- package/profiles/bryce-bighead.json +91 -0
- package/profiles/kyle-valhalla.json +100 -0
- package/profiles/manager.py +11 -3
- package/prompts/voice-system-prompt.md +3 -3
- package/requirements.txt +19 -11
- package/routes/bighead.py +217 -0
- package/routes/canvas.py +376 -146
- package/routes/chatgpt_import.py +172 -0
- package/routes/conversation.py +438 -98
- package/routes/icons.py +84 -9
- package/routes/plugins.py +114 -0
- package/routes/registry.py +451 -0
- package/routes/report_issue.py +46 -4
- package/routes/vision.py +8 -2
- package/server.py +254 -3
- package/services/chatgpt_parser.py +377 -0
- package/services/gateways/openclaw.py +21 -0
- package/services/plugins.py +178 -0
- package/services/tts.py +77 -15
- package/services/update_manager.py +1021 -0
- package/setup-config.js +2 -0
- package/src/admin.html +53 -8
- package/src/app.js +348 -63
- package/src/core/VoiceSession.js +1 -1
- package/src/face/BigHeadFace.js +620 -0
- package/src/face/HaloSmokeFace.js +8 -0
- package/src/face/manifest.json +6 -7
- package/src/face/previews/bighead.svg +22 -0
- package/src/providers/DeepgramStreamingSTT.js +1 -0
- package/src/providers/TTSPlayer.js +7 -2
- package/src/providers/WebSpeechSTT.js +12 -3
- package/src/styles/base.css +387 -276
- package/src/styles/face.css +14 -12
- package/src/styles/pi-overrides.css +1 -1
- package/src/styles/theme-dark.css +79 -14
- package/src/ui/AppShell.js +7 -7
- package/src/ui/UpdateBanner.js +264 -0
- package/src/ui/face/FaceRenderer.js +113 -105
- package/src/ui/settings/PlaylistEditor.js +1 -1
- package/src/ui/settings/SettingsPanel.css +121 -121
- package/src/ui/settings/SettingsPanel.js +2 -2
- package/src/ui/themes/ThemeManager.js +73 -5
- package/src/ui/visualizers/PartyFXVisualizer.css +9 -9
- package/src/ui/visualizers/PartyFXVisualizer.js +2 -2
- package/static/voice-samples/generate-samples.py +122 -0
- package/static/voice-samples/groq_austin.wav +0 -0
- package/static/voice-samples/groq_autumn.wav +0 -0
- package/static/voice-samples/groq_daniel.wav +0 -0
- package/static/voice-samples/groq_diana.wav +0 -0
- package/static/voice-samples/groq_hannah.wav +0 -0
- package/static/voice-samples/groq_troy.wav +0 -0
- package/static/voice-samples/qwen3_Aiden.mp3 +0 -0
- package/static/voice-samples/qwen3_Aiden.wav +0 -0
- package/static/voice-samples/qwen3_Dylan.mp3 +0 -0
- package/static/voice-samples/qwen3_Eric.mp3 +0 -0
- package/static/voice-samples/qwen3_Eric.wav +0 -0
- package/static/voice-samples/qwen3_Ryan.mp3 +0 -0
- package/static/voice-samples/qwen3_Ryan.wav +0 -0
- package/static/voice-samples/qwen3_Serena.mp3 +0 -0
- package/static/voice-samples/qwen3_Vivian.mp3 +0 -0
- package/static/voice-samples/qwen3_clone_bryce_bighead.mp3 +0 -0
- package/static/voice-samples/qwen3_clone_bryce_bighead.wav +0 -0
- package/static/voice-samples/qwen3_clone_kyle_valhalla.mp3 +0 -0
- package/static/voice-samples/qwen3_clone_kyle_valhalla.wav +0 -0
- package/static/voice-samples/resemble_Aaron.wav +0 -0
- package/static/voice-samples/resemble_Ahadi.wav +0 -0
- package/static/voice-samples/resemble_Archer.wav +0 -0
- package/static/voice-samples/resemble_Avigail.wav +0 -0
- package/static/voice-samples/resemble_Bakari.wav +0 -0
- package/static/voice-samples/resemble_Brian.wav +0 -0
- package/static/voice-samples/resemble_Bryce-BigHead.wav +0 -0
- package/static/voice-samples/resemble_Connor.wav +0 -0
- package/static/voice-samples/resemble_Ember.wav +0 -0
- package/static/voice-samples/resemble_Ethan.wav +0 -0
- package/static/voice-samples/resemble_Grace.wav +0 -0
- package/static/voice-samples/resemble_Jessica.wav +0 -0
- package/static/voice-samples/resemble_Josh.wav +0 -0
- package/static/voice-samples/resemble_Kyle-Valhalla.wav +0 -0
- package/static/voice-samples/resemble_Lisa.wav +0 -0
- package/static/voice-samples/resemble_Luna.wav +0 -0
- package/static/voice-samples/resemble_Mark.wav +0 -0
- package/static/voice-samples/resemble_Mike.wav +0 -0
- package/static/voice-samples/resemble_Sam.wav +0 -0
- package/static/voice-samples/supertonic_F1.wav +0 -0
- package/static/voice-samples/supertonic_F2.wav +0 -0
- package/static/voice-samples/supertonic_F3.wav +0 -0
- package/static/voice-samples/supertonic_F4.wav +0 -0
- package/static/voice-samples/supertonic_F5.wav +0 -0
- package/static/voice-samples/supertonic_M1.wav +0 -0
- package/static/voice-samples/supertonic_M2.wav +0 -0
- package/static/voice-samples/supertonic_M3.wav +0 -0
- package/static/voice-samples/supertonic_M4.wav +0 -0
- package/static/voice-samples/supertonic_M5.wav +0 -0
- package/tts_providers/__init__.py +3 -0
- package/tts_providers/elevenlabs_provider.py +332 -0
- package/tts_providers/providers_config.json +27 -0
- package/tts_providers/qwen3_provider.py +62 -1
- package/tts_providers/resemble_provider.py +230 -3
- package/tts_providers/resemble_voice_styles.json +10 -0
- package/docker-compose.pinokio.yml +0 -11
package/.env.example
CHANGED
|
@@ -55,6 +55,12 @@ USE_GROQ_TTS=true
|
|
|
55
55
|
# Get key: https://fal.ai/dashboard
|
|
56
56
|
# FAL_KEY=your-fal-key
|
|
57
57
|
|
|
58
|
+
# ElevenLabs (optional — premium TTS, instant voice cloning, 29 languages)
|
|
59
|
+
# Get key: https://elevenlabs.io/app/settings/api-keys
|
|
60
|
+
# Voice IDs: https://elevenlabs.io/app/voice-library
|
|
61
|
+
# ELEVENLABS_API_KEY=your-elevenlabs-api-key
|
|
62
|
+
# ELEVENLABS_VOICE_ID=your-default-voice-id
|
|
63
|
+
|
|
58
64
|
# Hume EVI (optional — expressive, emotion-aware TTS)
|
|
59
65
|
# Get keys: https://platform.hume.ai/settings/keys
|
|
60
66
|
# HUME_API_KEY=your-hume-api-key
|
package/Dockerfile
CHANGED
|
@@ -7,7 +7,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
7
7
|
build-essential libffi-dev \
|
|
8
8
|
libgl1 libglib2.0-0 \
|
|
9
9
|
ffmpeg \
|
|
10
|
-
libsndfile1
|
|
10
|
+
libsndfile1 \
|
|
11
|
+
git && \
|
|
11
12
|
rm -rf /var/lib/apt/lists/*
|
|
12
13
|
|
|
13
14
|
COPY requirements.txt .
|
|
@@ -15,6 +16,12 @@ RUN pip install --no-cache-dir -r requirements.txt
|
|
|
15
16
|
|
|
16
17
|
COPY . .
|
|
17
18
|
|
|
19
|
+
# Version stamp — baked at build time by jambot-build-images.sh
|
|
20
|
+
ARG BUILD_COMMIT=unknown
|
|
21
|
+
ARG BUILD_BRANCH=unknown
|
|
22
|
+
ARG BUILD_DATE=unknown
|
|
23
|
+
RUN echo "{\"commit\":\"${BUILD_COMMIT}\",\"branch\":\"${BUILD_BRANCH}\",\"date\":\"${BUILD_DATE}\"}" > /app/version.json
|
|
24
|
+
|
|
18
25
|
# Writable dirs for runtime data
|
|
19
26
|
RUN mkdir -p runtime/uploads runtime/canvas-pages runtime/known_faces runtime/music runtime/generated_music runtime/faces runtime/transcripts
|
|
20
27
|
|
|
@@ -22,6 +29,9 @@ RUN mkdir -p runtime/uploads runtime/canvas-pages runtime/known_faces runtime/mu
|
|
|
22
29
|
RUN useradd -m -u 1001 appuser && chown -R appuser:appuser /app
|
|
23
30
|
USER appuser
|
|
24
31
|
|
|
32
|
+
# Allow git operations in /app (owner may differ between build and runtime)
|
|
33
|
+
RUN git config --global --add safe.directory /app
|
|
34
|
+
|
|
25
35
|
# Bind to all interfaces inside the container
|
|
26
36
|
ENV HOST=0.0.0.0
|
|
27
37
|
|