Expression Trainer: An Offline Desktop Tool for Analyzing Spoken Chinese
宇宙无敌表达训练系统 — 实时语音转文字 + 27000词情感词库 + AI表达分析报告。离线运行,对着它说话,它帮你看见自己的表达问题。
At a glance
- What is it?
- Expression Trainer is a local Electron application that uses Sherpa-ONNX for offline speech recognition, matches your spoken words against a 27,000-word emotion lexicon, and optionally calls an external AI API for deeper feedback. It runs entirely on your machine during transcription and analysis, requiring no cloud subscription for its core functionality.
- Who is it for?
- Expression Trainer is the right tool for Mandarin speakers who want private, offline coaching on spoken word patterns without sending audio to a cloud service. The Sherpa-ONNX model download and the requirement for a separate AI API key for the report feature add setup steps that are not present in a web-based tool.
- 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 75 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 Problem Expression Trainer Solves
Speakers who want to improve their spoken Mandarin have limited options for getting real-time objective feedback. Language teachers can identify patterns during a lesson, but sessions are expensive and infrequent. Recording yourself and reviewing the playback requires manual analysis. Web-based services that process audio in the cloud require a subscription and send voice data to a remote server.
Expression Trainer takes a different approach. It transcribes your speech locally using a downloaded ONNX model, flags problematic words by matching them against a vocabulary database on disk, and shows the results in real time as you speak. The AI feedback report, which calls an external API, is optional: the transcription and vocabulary matching work entirely offline. The project description calls it a tool for seeing your own expression problems, which is accurate to its actual design. You speak into the microphone, and the application shows you which words it categorized as filler words, hesitation words, or vague expressions while you were talking.
The Sherpa-ONNX Pipeline: How Transcription Works Offline
The speech recognition engine is Sherpa-ONNX, specifically the streaming paraformer bilingual model trained on Chinese and English audio. This model runs through the sherpa-onnx-node package, which wraps the ONNX runtime for Node.js. The model files must be downloaded separately before the application starts; they are not included in the npm package.
The main process in the Electron application owns the speech recognition through lib/asr.js. The recognition is streaming, meaning results arrive word by word as you speak rather than after a complete sentence. The full-screen subtitle display in the renderer process shows each word as it is recognized. Words that match entries in the emotion lexicon receive color-coded underlines immediately: red for filler words, orange for hesitation words, yellow for vague expressions, and green for what the README calls strong expressions.
The model files are three ONNX files: encoder.int8.onnx, decoder.int8.onnx, and tokens.txt, stored under models/sherpa-onnx-streaming-paraformer-bilingual-zh-en/. The quantized int8 versions are smaller and faster than full-precision models, which matters for a desktop application running on consumer hardware.
Installing the Desktop Application
Installing Expression Trainer requires Node.js 18 or later, a microphone, and enough disk space for the ONNX model files. Start by cloning the repository and installing the Node.js dependencies:
npm installThen download the Sherpa-ONNX model into the models/ directory. The README provides two methods. The wget approach:
wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-paraformer-bilingual-zh-en.tar.bz2
tar xvf sherpa-onnx-streaming-paraformer-bilingual-zh-en.tar.bz2Alternatively, the model is also available from Hugging Face at csukuangfj/sherpa-onnx-streaming-paraformer-bilingual-zh-en. After the download, the models/ directory must contain the three ONNX files in the correct subdirectory structure before the application will start.
Once the model is in place, launch the application with:
npm startFor development mode with DevTools open, use:
npm run devThe application requires macOS 12 or later, Windows 10 or later, or Linux. On all platforms, the operating system will prompt for microphone permission on the first launch.
The Emotion Lexicon: 27,000 Words Organized for Speech Coaching
The vocabulary database is stored in data/emotion-lexicon.json and is derived from the Dalian University of Technology emotion lexicon, organized into seven major categories. The file combines several distinct lookup tables that the application uses at runtime.
The filler word table contains 24 common spoken filler words, such as the Mandarin equivalents of "um" and "so". The hesitation word table contains 19 expressions that weaken statements, including words that translate to "maybe" and "I think". These two tables trigger the real-time highlights during transcription.
The vague-to-precise mapping contains 25 pairs of high-frequency vague expressions and their more precise alternatives. When the application detects a vague word, the right-side panel shows the suggested replacement. The emotion word entries include 130 classified emotion terms organized by category (joy, anger, sadness, fear, disgust, surprise) and intensity level on a 1 to 9 scale. The degree word table provides a four-level gradient from weak to extreme, and a separate abstract-to-concrete table provides 10 conversion examples. The lib/lexicon.js module handles all matching at runtime against this data.
AI Feedback Backends and the Generated Report
Expression Trainer supports four AI backends for generating the analysis report: Groq, OpenAI, DeepSeek, and Ollama. The backend selection and API key are configured through the settings page, accessible from the gear icon in the application. Ollama runs locally and requires no API key; the others require a key from the respective provider.
The report analyzes six dimensions: logic, directness, filler word density, expression density, vocabulary range, and highlights. The AI generates the report after you click the end button following a session, provided you have configured a backend. The right-side panel also shows AI real-time feedback every 50 words during a session, separate from the final report.
The README recommends DeepSeek as the best cost-to-quality choice among the API backends. Ollama is free but its quality depends entirely on the hardware available. The report is the one part of the application that requires a network connection or a local Ollama installation; the transcription and vocabulary matching work without any AI backend configured.
Limitations: Chinese-First Design and Hardware Dependency
The Sherpa-ONNX model is a bilingual Chinese-English model, but the README and project description are explicitly Chinese-first. The online version at exprtrain.online is described as supporting both Chinese and English, but the local desktop version's vocabulary database, filler word lists, and coaching model are oriented toward Mandarin speech patterns. An English speaker will not get the same coaching value.
The application has no prebuilt installers. You must have Node.js and npm installed and run the application from the source directory. This is a higher barrier than installing a packaged desktop app. The last push to the repository was on 2026-07-18.
As an alternative path, the same author runs an online version at exprtrain.online which the README links as the no-installation option. That version removes the Sherpa-ONNX setup and the model download requirement, but it sends audio or transcribed text to a remote service. For users who need the offline guarantee, the desktop version is the only option currently available in this repository.
Editorial conclusion
Expression Trainer is the right tool for Mandarin speakers who want private, offline coaching on spoken word patterns without sending audio to a cloud service. The Sherpa-ONNX model download and the requirement for a separate AI API key for the report feature add setup steps that are not present in a web-based tool. The online version at exprtrain.online removes the installation requirement, but it requires a network connection for all features. Use the local version when privacy or connectivity is the constraint; verify your hardware supports the ONNX runtime before downloading the model files.
Frequently asked questions
Does Expression Trainer work without an internet connection?
The core transcription and vocabulary matching features work entirely offline after the Sherpa-ONNX model files are downloaded. The AI feedback report feature requires a connection to an external API such as OpenAI, Groq, or DeepSeek, unless you configure Ollama as the local backend.
What languages does the speech recognition support?
The Sherpa-ONNX model used is a bilingual Chinese-English streaming paraformer. The vocabulary database and coaching features are oriented toward Mandarin speech patterns. The online version at exprtrain.online is described as supporting both Chinese and English.
What are the system requirements for running Expression Trainer locally?
Expression Trainer requires Node.js 18 or later, a microphone, and macOS 12 or later, Windows 10 or later, or Linux. The Sherpa-ONNX model files must be downloaded separately before launching the application.
Official sources
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.
[](https://hysenlabs.com/projects/fxy2311-youyou-expression-trainer)