Skip to content

Repository files navigation

弦诵 · XianSong

An offline-first Android ebook reader · EPUB / PDF / TXT · Offline neural TTS

"Spring recited, summer strummed" — Book of Rites, Wen Wang Shizi

License: GPL v3 Platform Kotlin Release

English | 简体中文


App Preview

Shelf Reader Themes Import Settings

Features

📖 Reading

  • Multi-format support: EPUB / PDF / TXT (TXT auto-converted to EPUB with smart GBK/UTF-8 encoding and chapter detection)
  • Paginated / scroll dual modes, swipe gesture navigation, seamless cross-chapter scrolling
  • Personalized typography: font size, line height, margins, multiple color themes (including mist-purple and dark-purple gradients)
  • Custom shelf background image (with color fading adjustment), unified shelf and reader background

🔊 Offline TTS

  • Neural offline speech synthesis based on sherpa-onnx — no internet required, no data uploaded
  • Supports importing external VITS voice packs (e.g. vits-melo-tts-zh_en for mixed Chinese/English)
  • Automatic system TTS fallback
  • Highlight follows the narrated sentence; freely scroll up/down during playback, one tap to return to the reading position
  • Notification media controls (foreground service), background playback

📚 Library Management

  • Auto scan EPUB/PDF on device for one-tap batch import (with progress)
  • SHA-256 deduplication: duplicate books auto-skipped
  • Sub-shelves: custom naming, long-press drag-to-reorder, mutually exclusive book ownership across shelves
  • Long-press multi-select: batch delete / batch move (with select-all)
  • Bilingual UI (Simplified Chinese / English)

Download

Grab the latest APK from Releases (Android 8.0+, arm64 only).

For high-quality offline TTS after install, see Voice Pack Download below.

Build

Requirements: Android Studio (JDK 17), Android SDK 34

git clone https://github.com/XanthanL/XianSong.git
cd XianSong
./gradlew assembleDebug

Notes:

  • Dependency repositories are configured with Alibaba Cloud mirrors; builds work on mainland networks;
  • app/libs/ already includes the prebuilt sherpa-onnx AAR (Apache-2.0, from its GitHub Releases); no extra download needed;
  • Release signing reads root-level keystore.properties (not committed); without it only debug builds are possible.

Voice Pack Download

This repository does not include any voice models. For high-quality offline TTS, download the model pack and import it via "Settings → Voice Pack Import" in the app:

Model Language Size Download
vits-melo-tts-zh_en Mixed CN/EN ~163 MB GitHub

More models at sherpa-onnx tts-models. Model copyrights belong to their original authors (MeloTTS series is MIT-licensed); please follow each model's own license terms.

Copyright & Disclaimer

  1. Content disclaimer: XianSong is a purely local reading tool. It does not provide, bundle, or link to any book content. Users must ensure they have legal rights to any imported content and bear all copyright responsibilities arising from it.
  2. Voice models: Voice models are not distributed with this repository; their copyrights belong to their original authors and are recommended for personal study only.
  3. Name origin: "XianSong" (弦诵, "strings and chanting") comes from Book of Rites · Wen Wang Shizi — "spring recited, summer strummed" — referring to the sound of study and chanting.
  4. No warranty: This software is provided "as is" without any express or implied warranty; see LICENSE.

Third-Party Open Source Components

Component Purpose License
Readium Kotlin Toolkit EPUB/PDF parsing & rendering BSD-3-Clause
sherpa-onnx Offline neural TTS Apache-2.0
Jetpack Compose / AndroidX / Room / DataStore UI & data framework Apache-2.0
Hilt Dependency injection Apache-2.0
Coil Cover image loading Apache-2.0
Kotlinx Coroutines Async framework Apache-2.0
Timber Logging Apache-2.0
Apache Commons Compress Voice pack extraction Apache-2.0

Thanks to the authors and contributors of these projects.

License

This project is open-sourced under the GNU General Public License v3.0.

XianSong — an offline-first ebook reader for Android
Copyright (C) 2026  XanthanL

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages