Richard Roberson
b21bdb3a21
feat(tts): add multi-provider TTS support with Deepinfra and custom OpenAI-compatible endpoints
...
Add comprehensive multi-provider TTS support enabling users to choose between OpenAI, Deepinfra, and custom OpenAI-compatible endpoints. Implement provider-specific voice management with automatic voice restoration per provider-model combination, and migrate package manager to pnpm for improved dependency handling.
Key changes:
- Add TTS provider selection (OpenAI, Deepinfra, custom-openai) in settings UI
- Implement provider-specific model and voice lists with dynamic fetching
- Add voice persistence per provider-model combination in savedVoices
- Support Deepinfra models: Kokoro-82M, Orpheus-3B, Sesame-1B with their voice libraries
- Migrate to pnpm with frozen lockfile for reproducible builds
- Update Docker configuration to use pnpm and Deepinfra API defaults
- Add migration logic for existing users to infer provider from stored baseUrl
- Update test helpers and Playwright configuration for Deepinfra API
- Add example docker-compose.yml with Kokoro-FastAPI integration
BREAKING CHANGE: Voice selection is now provider-model specific. Previously saved voices will be migrated to the new savedVoices structure, but users may need to reselect voices if switching providers.
2025-11-09 15:47:17 -07:00
Richard Roberson
08480f07ed
Merge pull request #52 from thepycoder/feature/better-speed-control
2025-06-29 15:09:05 -06:00
Victor Sonck
89833d596b
Allow for player speed changes as well as native voice speed changes. Kokoro for example swallows parts of words when asked to go faster than maybe 1.3x. This fixes that, by simply speeding up the player instead. Since we're already using the html5 version of howler, by default it will pitch-correct the audio and it sounds quite good!
2025-06-23 14:09:51 +02:00
Victor Sonck
ece8bcd35a
Added saving and restoring last location in PDFs
2025-06-23 13:57:27 +02:00
Victor Sonck
f594ca836b
Refactored NLP into a single, shared function for splitting to sentences.
...
now both handleClick and global sentences are the exact same, so the sentenceIndex will always be correct.
2025-06-20 08:25:29 +02:00
Richard Roberson
82bb91a850
Add TXT and MD support with and HTML viewer with react markdown + many refactors to support it
2025-04-15 02:28:51 -06:00
Richard Roberson
fc780746aa
Bug fixes and readme update
2025-03-30 21:17:16 -06:00
Richard Roberson
7ba807fd95
Pause on page changes + Fix ePub bug when reloading
2025-03-23 17:18:21 -06:00
Richard Roberson
4ed6b17e98
Support gpt-4o-mini-tts with instructions
Build and Publish Docker Image / build (push) Has been cancelled
2025-03-21 11:32:42 -06:00
Richard Roberson
f464b059e4
Update API settings
2025-03-13 21:00:34 -06:00
Richard Roberson
ce9df9a5ab
implement retry logic for TTS API calls and clean up code
2025-03-03 23:03:52 -07:00
Richard Roberson
54dea5da36
Add onloaderror retries
2025-03-02 22:13:08 -07:00
Richard Roberson
4e07e737f0
Stop using audio blobs
2025-03-02 21:16:24 -07:00
Richard Roberson
136fdb9652
Fix Apple WebKit PDF Upload
2025-03-01 23:36:25 -07:00
Richard Roberson
b89d1700e9
Fix for longer audiobooks
2025-03-01 18:21:51 -07:00
Richard Roberson
e3370f7526
Further audiobook extraction optimizations
2025-02-26 04:03:05 -07:00
Richard Roberson
b67aea6b27
Refactor audio conversion API to improve memory management and add streaming response
2025-02-25 23:38:29 -07:00
Richard Roberson
4a2d75e155
Export to m4b from WAV efficiently
2025-02-25 20:01:15 -07:00
Richard Roberson
79d2e7f613
Working m4b
2025-02-25 19:47:30 -07:00
Richard Roberson
9357dddf3a
Implement PDF audiobook generation with configurable margins for text extraction
2025-02-25 16:11:08 -07:00
Richard Roberson
92220de5ea
Refactor PDF text extraction to support configurable margins for header, footer, left, and right
2025-02-25 15:53:45 -07:00
Richard Roberson
f948601e70
Add configurable text extraction margin for PDF processing
2025-02-25 03:26:37 -07:00
Richard Roberson
b87b83310b
Rely on TTS API for splitting
2025-02-25 00:58:32 -07:00
Richard Roberson
1db906f8bc
[ePub only] First working export audiobook
2025-02-24 22:41:38 -07:00
Richard Roberson
96376e2324
Environment changes, set in Docker run
2025-02-23 13:20:42 -07:00
Richard Roberson
9ad1f5f117
Pause in background
2025-02-23 04:46:20 -07:00
Richard Roberson
0be34a09fe
Re-add AbortController API, fixes duplicate playback
2025-02-23 01:29:10 -07:00
Richard Roberson
0251aae04b
Huge iOS playback fix
2025-02-22 13:36:45 -07:00
Richard Roberson
99868f29b2
EPUB resize debounce working perfectly
2025-02-21 12:01:52 -07:00
Richard Roberson
9d6632d2d0
Use server instead of client for open ai request + large refactors and bug fixes
2025-02-21 11:24:07 -07:00
Richard Roberson
86be935737
Fully unified navigation system
2025-02-19 15:19:37 -07:00
Richard Roberson
d447132859
Refactors to fix blank sections
2025-02-19 15:10:11 -07:00
Richard Roberson
8acf3f6ba6
Fix initial system theme
2025-02-19 12:32:16 -07:00
Richard Roberson
0ce14f3aec
Refactors + epub location fixes
2025-02-18 02:31:30 -07:00
Richard Roberson
9ae6dd9e82
Fix epub use theme and saved location
2025-02-17 23:03:28 -07:00
Richard Roberson
1dcf1b09e3
Setting for themed epubs
2025-02-14 01:51:33 -07:00
Richard Roberson
005ac66d7e
More themes
2025-02-13 04:25:49 -07:00
Richard Roberson
1f2ebb7ba2
Fix theme flickering on Chromium
2025-02-13 00:56:48 -07:00
Richard Roberson
bc790df89e
Cleanup imports and ssr cabable components
2025-02-13 00:09:49 -07:00
Richard Roberson
cc654f5f1d
Save document list state to confid db + add unified document types
2025-02-12 20:49:37 -07:00
Richard Roberson
2a9510aa55
Another nlp optimization
2025-02-12 02:19:57 -07:00
Richard Roberson
f16116cab4
Huge PDF text extraction optimization
2025-02-12 02:15:21 -07:00
Richard Roberson
521eda6cff
Move nlp processing to next server
2025-02-12 02:14:56 -07:00
Richard Roberson
d839d3cfa4
App settings upgrade + new themes
2025-02-11 14:16:47 -07:00
Richard Roberson
4bd443aea4
Add server side document store
2025-02-11 01:29:02 -07:00
Richard Roberson
297396579b
Better nlp + refactors
2025-02-11 00:12:31 -07:00
Richard Roberson
b7dc67f97f
Stop epub audio on back fix
2025-02-10 20:22:50 -07:00
Richard Roberson
039ac1fe61
Fix epub last location first page
2025-02-10 19:57:33 -07:00
Richard Roberson
e8008b68ab
Save last EPUB location
2025-02-10 11:49:49 -07:00
Richard Roberson
b110cafbff
Update error handling for TTS API
2025-02-09 18:00:19 -07:00
Richard Roberson
804a08dcd5
Update structure
2025-02-09 12:05:18 -07:00
Richard Roberson
707dd9261a
EPUB Working Well
2025-02-09 11:52:42 -07:00
Richard Roberson
25f3375b2f
Chapter by chapter auto-play
2025-02-09 02:55:49 -07:00
Richard Roberson
fd6a370bce
WIP
2025-02-08 21:43:39 -07:00
Richard Roberson
a3137ed88f
Manual page turn - kind of working
2025-02-08 20:35:38 -07:00
Richard Roberson
2fa91a2448
Working epub viewer
2025-02-08 15:55:31 -07:00
Richard Roberson
e3167a18ea
Use react-hot-toast for important notifications
2025-02-05 15:07:24 -07:00
Richard Roberson
6e96aeb821
Use open ai api as default in docker
2025-02-04 23:01:44 -07:00
Richard Roberson
96e499cc58
Setting to automatically skip blank pages, on by default
2025-02-04 18:53:52 -07:00
Richard Roberson
d025227518
More refactors
2025-01-29 22:04:11 -07:00
Richard Roberson
f800c12fb7
PDF document hook refactor
2025-01-29 21:20:11 -07:00
Richard Roberson
737ab5f919
Restructure
2025-01-29 21:13:18 -07:00
Richard Roberson
84f530f4cc
Extract PDF context items to hooks
2025-01-28 21:51:45 -07:00
Richard Roberson
055e87e8c1
Extract TTS extras to hooks
2025-01-28 21:38:44 -07:00
Richard Roberson
dd7154cccf
Contexts refactor + commenting
2025-01-28 21:22:22 -07:00
Richard Roberson
ca1e3a83a9
Better mobile styling
2025-01-28 18:14:33 -07:00
Richard Roberson
610167f058
Fix saved speed + voice
2025-01-27 00:15:54 -07:00
Richard Roberson
e830957598
Add voice + speed to indexedDB and config context
2025-01-26 18:39:11 -07:00
Richard Roberson
55919310a5
Add different view modes
2025-01-26 18:34:31 -07:00
Richard Roberson
92ee491363
Apple web app capable changes
2025-01-26 16:49:05 -07:00
Richard Roberson
816690360e
Fix horizontal PDF scale
2025-01-26 14:38:16 -07:00
Richard Roberson
2201dac391
Text to click fix
2025-01-26 13:55:14 -07:00
Richard Roberson
21e1b8f9ca
Another build fix
2025-01-26 03:02:32 -07:00
Richard Roberson
9374d3efbe
Build fixes
2025-01-26 02:15:14 -07:00
Richard Roberson
34d9d4715c
Fix increment page
2025-01-25 23:47:19 -07:00
Richard Roberson
de1ad2c4da
Implement page forward and back
2025-01-25 22:57:29 -07:00
Richard Roberson
b6880b9910
Fix end of document reached
2025-01-25 22:36:28 -07:00
Richard Roberson
429ec3f264
Single page viewer + Major refactor
2025-01-25 22:23:29 -07:00
Richard Roberson
86c263cb86
use howl for audio playback
2025-01-22 14:59:43 -07:00
Richard Roberson
d78be686c1
Add better zoom + controls
2025-01-22 13:34:48 -07:00
Richard Roberson
5edae0e8ae
cleanup
2025-01-22 11:51:08 -07:00
Richard Roberson
23d7fae8c2
Add api settings to settings modal + fix README.md
2025-01-22 09:50:47 -07:00
Richard Roberson
b978e8c58a
Better text extraction
2025-01-21 18:15:18 -07:00
Richard Roberson
30f981d616
Voice + Speed control
2025-01-20 19:06:41 -07:00
Richard Roberson
0979f55aec
Fix ' bug
2025-01-20 18:24:59 -07:00
Richard Roberson
d4b4ad8187
Sliding ctx window for string matching highlighting
2025-01-20 16:36:57 -07:00
Richard Roberson
28fe51c80d
Prevent text click jump while processing + refeactor text comparison
2025-01-20 15:12:23 -07:00
Richard Roberson
46c497f062
Readme.md + Refactor
2025-01-19 15:39:44 -07:00
Richard Roberson
728eb185b7
Rename /context --> /contexts
2025-01-19 14:45:32 -07:00