English | 简体中文
A native macOS player that helps English learners hear more, understand more, and practice difficult lines until they become clear.
DeepListen is built for people learning English outside an English-speaking environment. When daily exposure is limited, movies, podcasts, interviews, and lessons are valuable—but natural speech is often too fast to study effectively with an ordinary media player.
DeepListen turns your local audio or video and subtitles into a focused listening workspace. Follow speech with word-by-word highlighting, click any sentence to hear it again, slow down difficult passages, loop one sentence, or define an A/B segment for repeated practice.
Practice with material you actually care about: films, TV shows, podcasts, courses, interviews, or exam recordings. DeepListen works with local files, so your listening practice is not limited to a particular content platform.
The active subtitle is enlarged and highlighted word by word as the audio plays. This makes it easier to notice connected speech, reductions, rhythm, and words that disappear when native speakers talk naturally.
Click any subtitle to jump directly to it. Use Loop Sentence for one-line repetition, or set A and B points when the difficult passage crosses subtitle boundaries.
Slow playback down to analyze pronunciation, return to normal speed to test comprehension, and move backward or forward five seconds without breaking concentration.
- Import an English audio or video file.
- Put a matching
.srt,.vtt, or.lrcsubtitle beside it. - Listen once without stopping and identify unclear sentences.
- Click an unclear sentence and turn on Loop Sentence.
- Follow the word highlighting, imitate the pronunciation, and repeat until the sentence sounds clear.
- Turn off the loop and continue listening in context.
This workflow works well for intensive listening, shadowing preparation, pronunciation awareness, and IELTS or other English listening practice.
- Focused current-sentence view or full transcript context
- Word-by-word highlighting synchronized with playback
- One-click jump to any subtitle sentence
- Automatic transcript following, with easy recovery after manual scrolling
- Stable sentence transitions that keep the completed line highlighted until the next line begins
- Automatic cleanup of common subtitle markup
.srt,.vtt, and.lrcsubtitle matching, including bilingual LRC (English | translation)- UTF-8, UTF-16, GB18030, and ISO-Latin1 subtitle support
Standard subtitle files usually provide timing for each sentence rather than each word. DeepListen estimates word progress across the sentence duration to provide a useful visual listening guide.
- Loop Sentence automatically uses the active subtitle's start and end times
- Clicking another subtitle moves the sentence loop to that line
- Manual A/B markers for phrases or passages that cross subtitle boundaries
- Visible A/B range and timestamps
- Single-track repeat and sequence playback modes
- Playback speed from 0.25x to 2.0x in 0.25x steps
- Five-second rewind and forward controls
- Precise timeline seeking and hover time preview
- macOS media controls and Now Playing integration
- Automatic restoration of the selected track and last playback position
- Saved speed, playback mode, theme, and subtitle preferences
- Import individual files or entire folders
- Recursive folder scanning with hidden-file filtering
- Natural filename sorting and duplicate prevention
- Search, drag-to-reorder, multi-selection removal, and Reveal in Finder
- Supported formats:
mp3m4aaacwavaiffaifcafflacmp4m4vmovavimkv
- SwiftUI interface designed for macOS 26
- Liquid Glass controls and nine theme colors
- Adaptive layout for narrow and wide windows
- Keyboard navigation and VoiceOver support
- Download the DMG for your Mac, or choose the universal build, from Releases.
- Open the DMG and drag
DeepListen.appinto Applications. - On first launch, right-click the app and choose Open.
Release builds use ad hoc signing. If Gatekeeper still blocks the app, run:
xattr -dr com.apple.quarantine /Applications/DeepListen.appPlace the subtitle in the same directory as its media file and use the same base filename:
English Practice/
├── Lesson 01.mp3
├── Lesson 01.srt ← automatically matched
├── Lesson 02.mp4
├── Lesson 02.vtt ← automatically matched
├── Lesson 03.mp3
└── Lesson 03.lrc ← automatically matched
DeepListen checks for matching subtitles whenever a track loads, so you can import media first and add the subtitle later.
| Shortcut | Action |
|---|---|
Space |
Play / Pause |
← |
Rewind 5 seconds |
→ |
Forward 5 seconds |
⌘⇧← |
Previous track |
⌘⇧→ |
Next track |
⌘⌥← |
Rewind 5 seconds |
⌘⌥→ |
Forward 5 seconds |
⌘⌥A |
Set A point |
⌘⌥B |
Set B point |
⌘⌥Esc |
Clear A/B segment |
⌘⌥S |
Show / hide subtitles |
Unmodified playback shortcuts are disabled while editing the search field or another text input.
- macOS 26.0 or later
- Swift 6.3 toolchain
./script/build_and_run.shAdditional development modes:
| Command | Purpose |
|---|---|
./script/build_and_run.sh --debug |
Build and debug with LLDB |
./script/build_and_run.sh --logs |
Launch and stream process logs |
./script/build_and_run.sh --telemetry |
Launch and stream app subsystem logs |
./script/build_and_run.sh --verify |
Launch and verify that the process stays alive |
APP_VERSION=1.0.0 ./script/build_and_run.sh --build-only universal --sign --dmg
APP_VERSION=1.0.0 ./script/build_and_run.sh --build-only arm64 --sign --dmg
APP_VERSION=1.0.0 ./script/build_and_run.sh --build-only x86_64 --sign --dmg--build-only <arch>buildsuniversal,arm64, orx86_64in release configuration--signapplies an ad hoc signature to the app--dmgwritesDeepListen-<arch>-<version>.dmgtodist/APP_VERSIONis written toInfo.plistand the DMG filename; if omitted, the latest Git tag or0.0.0-devis used
- SwiftUI — interface and interaction
- AVFoundation — media playback and precise seeking
- MediaPlayer — system media controls and Now Playing information
- Observation — shared application state
- Swift Package Manager — builds and dependency management
DeepListen/
├── .github/workflows/ # release automation
├── docs/images/ # README assets
├── Resources/ # app icon
├── script/ # build, run, and packaging scripts
├── Sources/DeepListen/
│ ├── App/ # app entry point and commands
│ ├── Models/ # tracks, subtitles, playback, and theme models
│ ├── Services/ # playback, media discovery, and system integration
│ ├── Stores/ # player state and media library
│ ├── Support/ # subtitle parsing and time formatting
│ └── Views/ # SwiftUI views
├── README.md # English documentation
├── README_CN.md # Simplified Chinese documentation
└── Package.swift
Copyright 2026 chengzhong.
Licensed under the Apache License 2.0.
