Open-source project
iChochy/NCE avatar
iChochy/NCE

iChochy/NCE: Browser-Based New Concept English Reader with Sentence-Level Audio

《新概念英语》全四册在线课文朗读、单句点读、中英对照

3,850 stars670 forksJavaScriptMIT

At a glance

What is it?
NCE is a static JavaScript web application that delivers all four volumes of New Concept English with click-to-play sentence audio and bilingual Chinese/English text. It runs entirely in the browser without installation and supports extensibility through a documented JSON-plus-LRC resource format.
Who is it for?
NCE suits self-directed English learners who want to study New Concept English without installing software, and it suits developers who want to host additional textbooks using the documented resource format.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 37 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What NCE Solves and Who It Is For

New Concept English is a four-volume British language course that has been used in China and other countries for decades. Print and audio editions exist, but there was no freely accessible browser interface that let learners click individual sentences and hear them played back immediately alongside bilingual text. NCE addresses that gap.

The target users are self-study English learners, particularly those working through the four-book series. The README describes the four levels: volume one (144 lessons, roughly 600 vocabulary words) targets complete beginners; volume two (96 lessons, roughly 1500 words) builds grammar systematically; volume three (60 lessons, roughly 2500 words) develops reading of complex sentences; volume four (48 lessons, roughly 3500 to 4000 words) targets near-fluency, exam preparation, and academic reading. The README recommends studying the volumes in order.

Architecture: Decoupled Player and Resource Files

The README describes the system's core design as complete decoupling between the player and the learning resources. The player is a purely static HTML, CSS, and JavaScript application. A learning resource is a self-contained directory that can be hosted on any static server, containing a book.json descriptor, an MP3 audio file per lesson, and an LRC lyric file per lesson.

The book.json file describes the book's name, level, optional cover image, and a list of units with titles and filenames:

json
{
  "name": "新概念英语",
  "level": "1 st",
  "cover": "cover.png",
  "units": [
    { "title": "Unit 1 Hello", "filename": "unit1" },
    { "title": "Unit 2 Nice to meet you", "filename": "unit2" }
  ]
}

The player resolves each lesson's audio and lyrics by appending the filename to the book path, so a book served at https://example.com/mybook would have its first lesson at https://example.com/mybook/unit1.mp3 and https://example.com/mybook/unit1.lrc.

The LRC Format and Sentence-Level Playback

The click-to-play feature works through a standard LRC time-tag format with one extension: a pipe character separates the English sentence on the left from the Chinese translation on the right.

code
[00:12.34]Good morning, class. | 早上好,同学们。
[00:15.00]Stand up, please. | 请起立。
[00:18.50]Sit down, please. | 请坐。

The README specifies that time tags accept the form [mm:ss.xx] or [mm:ss.xxx]. Chinese text after the pipe is optional; lines starting with # are treated as comments and blank lines are ignored. This format means that any LRC file conforming to the standard can be imported, with the pipe convention giving bilingual output.

The audio for the bundled New Concept English content comes from the tangx/New-Concept-English repository. The Chinese subtitles were generated using a Python tool called iGSTT written by the project author. The README acknowledges that AI-generated translations may contain errors and invites corrections via pull request.

Adding Custom Textbooks and the CORS Requirement

The project supports hosting additional books outside the main repository. The process has three steps: prepare the resource directory with a book.json, MP3, and LRC files on any static hosting service; add a record to data.json in the player repository; and access the book at the player URL with the key as a URL hash.

The record in data.json looks like this:

json
{
  "key": "MYBOOK",
  "title": "My English Book",
  "path": "https://your-domain.com/your-book"
}

The README includes an important constraint: the server hosting the resource files must return CORS headers such as Access-Control-Allow-Origin: * on its responses. If the server omits those headers, the browser will block the cross-origin requests for book.json and LRC files. GitHub Pages, Vercel, most object storage services, and Nginx with explicit configuration all support this, but some plain web hosts do not enable CORS by default.

Limitation: Non-Commercial Use, AI Translations, and No Offline Mode

The README states that the project is for personal learning and research only and is not for commercial use. It further states that all content comes from the internet and that the project owner does not hold copyright to the underlying textbook material. Anyone considering use beyond individual study should obtain the official course materials.

The Chinese subtitles are AI-generated and the README explicitly notes they may contain errors. There is no documented spell-check or review process for the translations beyond community correction.

The application runs in the browser and fetches audio and LRC files over HTTP. There is no documented offline mode, no service worker implementation mentioned in the README, and no packaged desktop or mobile application. A learner without internet access or on a slow connection would not be able to use the system without separately downloading and self-hosting the resource files.

Repository Layout and Technology

The top-level repository entries show a structure consistent with a static site: index.html, css/, js/, data.json, manifest.webmanifest, and the apple-touch-icon indicate a Progressive Web App shell. There is no server-side code, no build step required to run the player, and no dependency installation.

A REFACTORING.md file exists in the repository, suggesting ongoing structural work. The last push was on 2026-08-26. The project is licensed under MIT for the player code, but the embedded audio and text content carries separate copyright terms as noted in the README.

The author notes in the README that they are an 80s-born programmer managing a health condition and that community support, including stars and corrections to subtitle errors, contributes to continued maintenance.

Editorial conclusion

NCE suits self-directed English learners who want to study New Concept English without installing software, and it suits developers who want to host additional textbooks using the documented resource format. Anyone who needs offline access, clean commercial licensing, or guaranteed translation accuracy should check the project's caveats first: the README states it is for personal, non-commercial use only, notes that Chinese subtitles were generated by AI and may contain errors, and requires that audio files come from an externally hosted server with CORS headers. The last push was on 2026-08-26.

Frequently asked questions

Can NCE be used to study offline without an internet connection?

The README does not document an offline mode, service worker, or downloadable package. The player fetches audio and LRC files from remote servers at runtime, so an internet connection is required unless the learner self-hosts the resource files locally.

How do I add my own English textbook to the NCE player?

Prepare a directory with a book.json descriptor, one MP3 per lesson, and one LRC file per lesson on a CORS-enabled static server. Then add an entry to the data.json file in the player repository with a key, title, and path pointing to your hosted directory.

How accurate are the Chinese translations in NCE?

The README states that the Chinese subtitles were generated by an AI tool and may contain errors. The author notes that corrections are welcome via pull request or issue, but does not describe a formal review or verification process.

Official sources

  1. iChochy/NCE on GitHub
  2. Issues
  3. License: MIT
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/ichochy-nce.svg)](https://hysenlabs.com/projects/ichochy-nce)