Commit graph

664 commits

Author SHA1 Message Date
3f190723b4 encrypt conversation history with vault password, add vault and unsandbox translations to all 26 languages 2026-02-23 10:12:19 -05:00
f0db6d9589 add public domain license and headers to all source files 2026-02-22 22:27:09 -05:00
2fd0432701 remove attribution claim and security audit report link from public pages 2026-02-22 22:24:02 -05:00
e0fb466c36 use URI not URL in content extraction and CLAUDE.md style guide 2026-02-22 21:47:10 -05:00
4f589f2449 add URL translation for content extraction, fetch raw over DOM scraping
for known dynamic pages (GitLab CI jobs), fetch the raw/plain text
endpoint instead of scraping a half-loaded DOM. falls back to DOM
extraction with a MutationObserver settle wait when raw isn't accessible.
extractWebpageContent is now async, all callers updated.
2026-02-22 21:42:46 -05:00
1a5b576a7d update browser toys portal: AGPL-3.0-only license, 2026 footer, checksums in TOC 2026-02-22 21:08:35 -05:00
366f7fc71f update browser toy downloads with load event timing fix 2026-02-22 20:53:11 -05:00
b1bc9bc718 update browser toy downloads with bootstrap injection fix 2026-02-22 20:20:57 -05:00
f4bb87eba8 add X-Uncloseai-Client header for browser-toy identification 2026-02-22 18:46:18 -05:00
3c5efd29c4 deploy to /opt/www/uncloseai/ subdir, stop nuking neighbors 2026-02-22 18:00:01 -05:00
5281c1b54f add download zips with checksums, fix repo links to git.unturf.com 2026-02-22 11:51:17 -05:00
59fd8a8bf5 add security section and audit link to browser toys portal page 2026-02-22 11:06:25 -05:00
c6e47df7c2 add browser toys portal page and sidebar links
new browser-toys.html with install instructions, storage/privacy
docs, and per-browser guides. sidebar link added to all 26 pages.
browser toys section added to index.html and uncloseai-js.html.
2026-02-22 10:51:53 -05:00
3289b9b7be Add qwen and qwen-vl endpoints to inference page, remove ai.unturf.com block 2026-02-16 18:03:35 -05:00
3258cac2a3 Add uncloseai-cli page, fix Discord invite, ban em dashes in writing 2026-02-16 15:52:41 -05:00
timehexon
a6eb90ce7d Replace "AI" with "machine learning" in CLAUDE.md
Machine learning is what we grow. "AI" is forbidden in all
permacomputer discourse, marketing, & documentation.
2026-02-02 19:56:27 +00:00
e0630221e4 Add TTS play buttons for voice demos (aria, atlas) 2026-01-28 07:59:12 -05:00
df040d4f70 Add make voices-qwen to self-hosting instructions
Explain how to download the 42+ cloned voice samples from LibriSpeech
using the new Makefile target. Updated on both the main TTS page and
the Qwen3-TTS subpage.
2026-01-27 17:31:17 -05:00
363dde30f0 Use real model names on TTS pages, add upstream HuggingFace links
Replace generic engine names (Voice Cloning, Fast Synthesis, etc.)
with actual model names (Qwen3-TTS, Piper TTS, XTTS v2, Silero TTS,
Kokoro TTS) across all 6 TTS pages including titles, headers, and
sidebar nav. Add upstream HuggingFace/GitHub links in technical
details section of each engine subpage.
2026-01-27 17:12:48 -05:00
5226d0be04 Restructure TTS docs into main page + 5 engine subpages
Rewrite text-to-speech.html to focus on the live service (Qwen3-TTS
voice cloning with 42+ voices). Each of the 5 engines now has its own
page under /tts/ with detailed docs, examples, and self-hosting
instructions. Engine cards on the main page link out with Live/Self-host
badges. Sidebar nav updated with TTS subsection on all 6 pages.

New pages:
- /tts/voice-cloning.html (Live - Qwen3-TTS)
- /tts/fast-synthesis.html (Self-host - Piper)
- /tts/hd-cloning.html (Self-host - XTTS v2)
- /tts/multilingual-cpu.html (Self-host - Silero)
- /tts/lightweight.html (Self-host - Kokoro)
2026-01-27 17:06:58 -05:00
4df8f92349 Rewrite all example text with raccoon mission voice 2026-01-27 16:50:55 -05:00
c455b4ed43 Rewrite engine descriptions: lead with capabilities, not model names 2026-01-27 16:48:07 -05:00
42eccafcac Update TTS page: 42+ voices, new voice names, API endpoint links
- Update all examples from "alloy" to real voice names (aria, atlas)
- Add clickable links to /v1/voices and /v1/models endpoints
- Update voice count from 20+ to 42+ built-in cloned voices
- Bump TTS modal cache version to 4
- Update deployment instructions (remove vars.sh, add deploy-cpu)
- Add in-memory TTS cache for replay without regeneration
2026-01-27 16:45:24 -05:00
017201b5c9 Fix MSE garbling: use sequence mode for SourceBuffer 2026-01-27 10:22:10 -05:00
460bfd6b2a Fix MSE garbling: copy chunk data to avoid shared ArrayBuffer 2026-01-27 10:17:22 -05:00
092b3c72b2 Restore streaming mode, remove debug override 2026-01-27 10:16:56 -05:00
a6c30be5b7 Debug: force buffered mode to test webm without MSE 2026-01-27 10:07:21 -05:00
8dffac24f9 Add diagnostic logging to streaming TTS 2026-01-27 09:53:37 -05:00
46048a3251 Fix Firefox streaming: use browser-detected format instead of hardcoded mp3 2026-01-27 09:51:24 -05:00
4ae6b4fbbd Use webm+opus for Firefox TTS streaming via MediaSource
Firefox supports audio/webm;codecs=opus in MediaSource API,
enabling true streaming playback. Remove broken progressive
playback (partial blobs don't stream). Simplified fallback
to full buffer for any browser without MSE support.
2026-01-27 09:29:02 -05:00
03147f028d Fix progressive playback: add error handling, response.body check
Progressive playback was silently failing if response.body was null
or if the reader threw. Now falls back to full buffer if body isn't
streamable, logs chunk progress, and properly unblocks callers on
error instead of hanging forever.
2026-01-27 09:23:37 -05:00
cc1d21ade0 Progressive playback for Firefox, add Qwen3-TTS to TTS page
Firefox can't use MediaSource for streaming. Instead of buffering
the entire response before playing, progressively read chunks and
start playback after ~8KB arrives. Replaces audio src with complete
blob when download finishes for seeking support.

Update text-to-speech.html to document Qwen3-TTS as the default
5th engine with 20 cloned voices and 10-language support.
2026-01-27 09:20:39 -05:00
1a2a85c797 Use UA detection for audio format instead of canPlayType
Firefox on Linux reports canPlayType('audio/mpeg') as supported
but then fails to decode mp3. Use user-agent detection instead:
Firefox always gets opus (ogg), Chromium browsers get mp3.
2026-01-27 08:23:06 -05:00
74a1ea581c Detect browser audio codec support, use opus for Firefox
Firefox on Linux lacks mp3 decoders. Detect browser capabilities
at load time: use mp3 for Chrome, opus (ogg) for Firefox.
MediaSource streaming only works with mp3 (Chrome); Firefox
falls back to buffered playback with opus format.
Sends response_format parameter to TTS server.
2026-01-27 08:19:24 -05:00
3019fd0e15 Route all TTS through handleTTS for streaming support
- speakChatText now uses handleTTS instead of speakTextDirect
  so embed modal TTS (intro, chat messages) respects streaming mode
- Streaming result updates blobUrl on completion so existing
  download click handlers work without changes
2026-01-27 08:12:47 -05:00
ab13f2c19f Disable gpt-oss.ai.unturf.com endpoint (returns 404) 2026-01-27 08:12:07 -05:00
519e281623 Fix streaming TTS to return audio immediately, collect stream in background
- speakTextStreaming now returns immediately with the audio element
  already playing, plus a done promise for when the stream completes
- Modal wires up controls immediately using the live audio element
- Pause/play works during streaming (stream continues in background)
- Button shows "Streaming..." while receiving, switches to "Pause" when done
- Download button enables only after stream completes
- All TTS functions now return consistent done promise interface
2026-01-27 07:36:00 -05:00
81dbae3c7a Add streaming TTS playback mode with MediaSource API
Default to streaming mode which plays audio as chunks arrive
from the server instead of buffering the entire response.
Adds a Buffered/Streaming toggle in the TTS modal.
Falls back to buffered if MediaSource doesn't support audio/mpeg.
2026-01-27 07:32:18 -05:00
10c67ae4e2 Fix TTS model default: use tts-1-qwen instead of tts-1
The backend only has tts-1-qwen registered. Requests with model=tts-1
were failing with KeyError: 'tts-1'.
2026-01-26 18:41:38 -05:00
7018490249 Fix TTS URLs to use speech.ai.unturf.com 2026-01-26 18:13:02 -05:00
ed4b599895 Switch TTS to 3090-ai server (20 voices) 2026-01-26 17:32:51 -05:00
15e7e4c7c7 Update TTS modal to support 20 Qwen3-TTS voices
- Fix API response format parsing (data.data[].voices -> flat array)
- Update fallback voices from 6 to 20
- Bump cache version to v3 to force refresh
2026-01-26 17:25:20 -05:00
3d1c06c1c1 Add sitemap.xml for Google indexing 2026-01-26 13:04:14 -05:00
bfc03de5ef Add Google site verification 2026-01-26 13:02:46 -05:00
0ac9ba7430 Update C# examples with .NET 10 and Mono sections 2026-01-26 12:48:07 -05:00
6c0dfcb4ca Add C examples page, fix nav links to use correct paths 2026-01-26 12:44:30 -05:00
cce700e705 Add C and C# Implementations links to all page navs 2026-01-26 12:25:02 -05:00
c40f5e0bc0 Add C and C# portal pages, dotnet10/mono variants, c# symlink 2026-01-26 11:08:14 -05:00
44a3876db6 Fix model refresh to show partial success when TTS is down 2026-01-26 10:29:15 -05:00
83c5066948 new file: docs/VAULT_SYNC_DESIGN.md 2026-01-26 10:07:02 -05:00