tmoroney/auto-subs

On-device subtitle generation that connects directly to DaVinci Resolve, Premiere, and After Effects.

TypeScript

4,235

1,219 commits

updated Sep 18, 2026

See the code
ai
cross-platform
davinci
davinci-resolve
premiere
resolve
rust
speech-to-text
subtitles
transcribe
transcription
video-editing

README

AutoSubs

Local-first AI subtitles. No cloud, no subscription, no data leaving your machine.

Use it as a standalone app, or connect to DaVinci Resolve, Adobe Premiere Pro, and After Effects.

  • πŸŽ™οΈ Speech to Subtitles: Turns audio or video into accurate, timestamped subtitles. Pick from several AI models, from fast and lightweight to maximum accuracy.
  • πŸ‘₯ Speaker Labels: Automatically detects who is speaking and labels each speaker, so you can give each person their own style.
  • 🌍 1,000+ Languages: Transcribe or translate almost any language, all processed on your own machine.
  • πŸ’» Mac, Windows & Linux: Works on Apple Silicon and Intel Macs, Windows, and Linux. Everything runs offline.

Downloads Weekly App Opens New Downloads / Week Ask DeepWiki

AutoSubs UI

Download

PlatformInstaller
πŸͺŸ WindowsAutoSubs-windows-x86_64.exe
🍎 macOS (Apple Silicon)AutoSubs-Mac-ARM.pkg
🍎 macOS (Intel)AutoSubs-Mac-Intel.pkg
🐧 Linux (Debian/Ubuntu)AutoSubs-linux-x86_64.deb
🐧 Linux (Fedora/openSUSE)AutoSubs-linux-x86_64.rpm

macOS Homebrew

macOS users can also install AutoSubs with Homebrew:

brew install --cask auto-subs

Linux install

Debian/Ubuntu (.deb):

wget https://github.com/tmoroney/auto-subs/releases/latest/download/AutoSubs-linux-x86_64.deb
sudo apt install ./AutoSubs-linux-x86_64.deb

Fedora/openSUSE (.rpm): Download AutoSubs-linux-x86_64.rpm and open it with your package manager.

Buy Me A Coffee


Quick Start

Standalone Mode

  1. Launch AutoSubs and select an audio or video file.
  2. Pick your model and language/translation options.
  3. Click Transcribe. Edit speakers and subtitles as needed.
  4. Export as SRT, text, or copy to clipboard.

DaVinci Resolve Mode

  1. Open DaVinci Resolve β†’ Workspace β†’ Scripts β†’ AutoSubs.
  2. Select your timeline/audio source and settings.
  3. Click Transcribe. Edit speakers and subtitles as needed.
  4. Send styled subtitles back to Resolve.

[!WARNING] Mac App Store version not supported - download DaVinci Resolve from blackmagicdesign.com instead.

Adobe Premiere Pro / After Effects Mode

  1. Launch AutoSubs and open Premiere Pro or After Effects (the CEP extension loads automatically).
  2. Select the Adobe integration from AutoSubs to export timeline audio for transcription, or import generated subtitles into your project.
  3. In Premiere Pro, subtitles are imported as caption tracks; in After Effects, SRT entries are created as text layers.

Command Line Interface

For command-line usage, see the CLI Guide with complete reference, examples, and troubleshooting.


Documentation

[!TIP] I highly recommend checking out DeepWiki for asking questions and understanding the codebase.

Ask DeepWiki


Supported Models

AutoSubs ships with several local transcription model families. All run fully on-device β€” nothing is sent to the cloud. Models are downloaded on demand from the in-app Model Manager.

Accuracy is a relative 1–4 rating within AutoSubs (higher is better). Sizes and RAM figures are approximate.

Whisper

OpenAI's Whisper, via whisper-rs (GGML). Each size is available in a multilingual variant and an .en English-only variant (the .en models are slightly more accurate on English audio).

ModelSizeRAMLanguagesAccuracy
tiny / tiny.en80 MB1 GBMultilingual / Englishβ˜…
base / base.en150 MB1 GBMultilingual / Englishβ˜…
small / small.en480 MB2 GBMultilingual / Englishβ˜…β˜…
medium / medium.en1.5 GB5 GBMultilingual / Englishβ˜…β˜…β˜…
large-v3-turbo1.6 GB6 GBMultilingualβ˜…β˜…β˜…
large-v33.1 GB10 GBMultilingualβ˜…β˜…β˜…β˜…

Moonshine

Useful Sensors' Moonshine, via ONNX Runtime. The tiny English model is quantized; the language-specific tiny variants and the base model are float-precision.

ModelSizeRAMLanguageAccuracy
moonshine-tiny60 MB1 GBEnglishβ˜…
moonshine-tiny-ar120 MB1 GBArabicβ˜…β˜…β˜…
moonshine-tiny-zh120 MB1 GBChineseβ˜…β˜…β˜…
moonshine-tiny-ja120 MB1 GBJapaneseβ˜…β˜…β˜…
moonshine-tiny-ko120 MB1 GBKoreanβ˜…β˜…β˜…
moonshine-tiny-uk120 MB1 GBUkrainianβ˜…β˜…
moonshine-tiny-vi120 MB1 GBVietnameseβ˜…β˜…β˜…
moonshine-base200 MB1 GBEnglishβ˜…β˜…

Parakeet

NVIDIA's Parakeet-TDT-0.6B-v3 (int8 ONNX). Fast and accurate, with support for 25 European languages plus Russian and Ukrainian. Orukeet is a community variant on the same engine β€” faster and more accurate than Parakeet, with weights under CC BY-SA 4.0.

ModelSizeRAMLanguagesAccuracy
orukeet672 MB4 GB25 languages (EU + RU + UK)β˜…β˜…β˜…β˜…
parakeet700 MB2 GB25 languages (EU + RU + UK)β˜…β˜…β˜…β˜…

SenseVoice

Alibaba's SenseVoice (int8 ONNX). Compact and well-suited to CJK audio.

ModelSizeRAMLanguagesAccuracy
sense-voice230 MB1 GBChinese, English, Japanese, Korean, Cantoneseβ˜…β˜…β˜…

Canary

NVIDIA's Canary-1B-v2 (int8 ONNX). A multilingual encoder-decoder model that also supports native translation.

ModelSizeRAMLanguagesAccuracy
canary1 GB3 GB25 languages (EU + RU + UK)β˜…β˜…β˜…β˜…

Cohere

Cohere Transcribe (int4 ONNX). The highest-accuracy option for a focused set of 14 widely-spoken languages.

ModelSizeRAMLanguagesAccuracy
cohere2 GB4 GBArabic, German, Greek, English, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Portuguese, Vietnamese, Chineseβ˜…β˜…β˜…β˜…

GigaAM

Sber's GigaAM v3 (int8 ONNX). A Conformer model trained on 700k hours of Russian speech β€” the most accurate option for Russian audio. The end-to-end CTC variant outputs punctuated, normalized text.

ModelSizeRAMLanguagesAccuracy
gigaam-v3225 MB2 GBRussian, Englishβ˜…β˜…β˜…β˜…

GigaAM Multilingual (600M, int8 ONNX) covers Central Asian languages that the other models handle poorly β€” Whisper large v3 scores 58–110% WER on Kazakh, Kyrgyz and Uzbek. It uses a character-wise CTC head, so unlike GigaAM v3 its output has no punctuation or capitalization.

ModelSizeRAMLanguagesAccuracy
gigaam-multilingual592 MB3 GBRussian, Kazakh, Kyrgyz, Uzbek, Englishβ˜…β˜…β˜…β˜…

Omni-ASR

Meta's Omnilingual ASR (1B CTC, fp32 ONNX). Covers 1600+ languages, making it the fallback for languages no specialist model supports. Output is lowercase with no punctuation.

ModelSizeRAMLanguagesAccuracy
omni-asr-1b-ctc3.7 GB4 GB1600+ languagesβ˜…β˜…β˜…

Diarization & VAD

In addition to transcription models, AutoSubs downloads a speaker diarization model (~40 MB, user-selectable from the Model Manager) and a Silero VAD model (auto-downloaded for voice activity detection during transcription). An optional MMS forced-alignment model (~320 MB, CC BY-NC 4.0) can also be downloaded for word-level timestamps β€” see Model licensing.


Integrations

AutoSubs can run as a standalone subtitle generator, connect directly to DaVinci Resolve, or communicate with Adobe Premiere Pro and After Effects through the bundled CEP extension.

Select a Preset StyleOr create your own
Transcription PageAdvanced Settings

Contributing

PRs are welcome! See CONTRIBUTING.md for how to get started, including the dev setup and a full codebase walkthrough via AutoSubs DeepWiki.

For detailed information about the DaVinci Resolve integration architecture, Lua server, Fusion macro system, and development workflow, see Resolve-Integration/README.md.


Model licensing

AutoSubs code is MIT-licensed. The optional MMS forced-alignment weights are downloaded separately and licensed under CC BY-NC 4.0 for noncommercial use. Users are responsible for ensuring their use complies with the model license.

The forced-aligner weights originate from Meta's MMS model, with forced-alignment conversion work by MahmoudAshraf and ONNX/INT8 conversion by onnx-community. Conversion and quantization changes were made by those respective projects; no endorsement is implied.

While MMS supports over a thousand languages, word-level alignment relies on romanizing the transcript with uroman. uroman covers the major world scripts (Latin, Cyrillic, Arabic, CJK, most Indic scripts, etc.), but very low-resource minority languages whose scripts are not included in its data may produce degraded or missing word timestamps.

Acknowledgments

AutoSubs is built on top of excellent open-source projects:

  • whisper-rs - Rust bindings for Whisper C++ library
  • transcribe-rs - ONNX Runtime transcription with Moonshine and Parakeet models
  • pyannote-rs - Rust implementation of Pyannote for speaker diarization (integrated into app code for improvements)

Contributors

tmoroney

1,054 commits

claude

29 commits

Scrollog

24 commits

tmoroney/auto-subs

On-device subtitle generation that connects directly to DaVinci Resolve, Premiere, and After Effects.

TypeScript

4,235

1,219 commits

updated Sep 18, 2026

See the code
ai
cross-platform
davinci
davinci-resolve
premiere
resolve
rust
speech-to-text
subtitles
transcribe
transcription
video-editing

README

AutoSubs

Local-first AI subtitles. No cloud, no subscription, no data leaving your machine.

Use it as a standalone app, or connect to DaVinci Resolve, Adobe Premiere Pro, and After Effects.

  • πŸŽ™οΈ Speech to Subtitles: Turns audio or video into accurate, timestamped subtitles. Pick from several AI models, from fast and lightweight to maximum accuracy.
  • πŸ‘₯ Speaker Labels: Automatically detects who is speaking and labels each speaker, so you can give each person their own style.
  • 🌍 1,000+ Languages: Transcribe or translate almost any language, all processed on your own machine.
  • πŸ’» Mac, Windows & Linux: Works on Apple Silicon and Intel Macs, Windows, and Linux. Everything runs offline.

Downloads Weekly App Opens New Downloads / Week Ask DeepWiki

AutoSubs UI

Download

PlatformInstaller
πŸͺŸ WindowsAutoSubs-windows-x86_64.exe
🍎 macOS (Apple Silicon)AutoSubs-Mac-ARM.pkg
🍎 macOS (Intel)AutoSubs-Mac-Intel.pkg
🐧 Linux (Debian/Ubuntu)AutoSubs-linux-x86_64.deb
🐧 Linux (Fedora/openSUSE)AutoSubs-linux-x86_64.rpm

macOS Homebrew

macOS users can also install AutoSubs with Homebrew:

brew install --cask auto-subs

Linux install

Debian/Ubuntu (.deb):

wget https://github.com/tmoroney/auto-subs/releases/latest/download/AutoSubs-linux-x86_64.deb
sudo apt install ./AutoSubs-linux-x86_64.deb

Fedora/openSUSE (.rpm): Download AutoSubs-linux-x86_64.rpm and open it with your package manager.

Buy Me A Coffee


Quick Start

Standalone Mode

  1. Launch AutoSubs and select an audio or video file.
  2. Pick your model and language/translation options.
  3. Click Transcribe. Edit speakers and subtitles as needed.
  4. Export as SRT, text, or copy to clipboard.

DaVinci Resolve Mode

  1. Open DaVinci Resolve β†’ Workspace β†’ Scripts β†’ AutoSubs.
  2. Select your timeline/audio source and settings.
  3. Click Transcribe. Edit speakers and subtitles as needed.
  4. Send styled subtitles back to Resolve.

[!WARNING] Mac App Store version not supported - download DaVinci Resolve from blackmagicdesign.com instead.

Adobe Premiere Pro / After Effects Mode

  1. Launch AutoSubs and open Premiere Pro or After Effects (the CEP extension loads automatically).
  2. Select the Adobe integration from AutoSubs to export timeline audio for transcription, or import generated subtitles into your project.
  3. In Premiere Pro, subtitles are imported as caption tracks; in After Effects, SRT entries are created as text layers.

Command Line Interface

For command-line usage, see the CLI Guide with complete reference, examples, and troubleshooting.


Documentation

[!TIP] I highly recommend checking out DeepWiki for asking questions and understanding the codebase.

Ask DeepWiki


Supported Models

AutoSubs ships with several local transcription model families. All run fully on-device β€” nothing is sent to the cloud. Models are downloaded on demand from the in-app Model Manager.

Accuracy is a relative 1–4 rating within AutoSubs (higher is better). Sizes and RAM figures are approximate.

Whisper

OpenAI's Whisper, via whisper-rs (GGML). Each size is available in a multilingual variant and an .en English-only variant (the .en models are slightly more accurate on English audio).

ModelSizeRAMLanguagesAccuracy
tiny / tiny.en80 MB1 GBMultilingual / Englishβ˜…
base / base.en150 MB1 GBMultilingual / Englishβ˜…
small / small.en480 MB2 GBMultilingual / Englishβ˜…β˜…
medium / medium.en1.5 GB5 GBMultilingual / Englishβ˜…β˜…β˜…
large-v3-turbo1.6 GB6 GBMultilingualβ˜…β˜…β˜…
large-v33.1 GB10 GBMultilingualβ˜…β˜…β˜…β˜…

Moonshine

Useful Sensors' Moonshine, via ONNX Runtime. The tiny English model is quantized; the language-specific tiny variants and the base model are float-precision.

ModelSizeRAMLanguageAccuracy
moonshine-tiny60 MB1 GBEnglishβ˜…
moonshine-tiny-ar120 MB1 GBArabicβ˜…β˜…β˜…
moonshine-tiny-zh120 MB1 GBChineseβ˜…β˜…β˜…
moonshine-tiny-ja120 MB1 GBJapaneseβ˜…β˜…β˜…
moonshine-tiny-ko120 MB1 GBKoreanβ˜…β˜…β˜…
moonshine-tiny-uk120 MB1 GBUkrainianβ˜…β˜…
moonshine-tiny-vi120 MB1 GBVietnameseβ˜…β˜…β˜…
moonshine-base200 MB1 GBEnglishβ˜…β˜…

Parakeet

NVIDIA's Parakeet-TDT-0.6B-v3 (int8 ONNX). Fast and accurate, with support for 25 European languages plus Russian and Ukrainian. Orukeet is a community variant on the same engine β€” faster and more accurate than Parakeet, with weights under CC BY-SA 4.0.

ModelSizeRAMLanguagesAccuracy
orukeet672 MB4 GB25 languages (EU + RU + UK)β˜…β˜…β˜…β˜…
parakeet700 MB2 GB25 languages (EU + RU + UK)β˜…β˜…β˜…β˜…

SenseVoice

Alibaba's SenseVoice (int8 ONNX). Compact and well-suited to CJK audio.

ModelSizeRAMLanguagesAccuracy
sense-voice230 MB1 GBChinese, English, Japanese, Korean, Cantoneseβ˜…β˜…β˜…

Canary

NVIDIA's Canary-1B-v2 (int8 ONNX). A multilingual encoder-decoder model that also supports native translation.

ModelSizeRAMLanguagesAccuracy
canary1 GB3 GB25 languages (EU + RU + UK)β˜…β˜…β˜…β˜…

Cohere

Cohere Transcribe (int4 ONNX). The highest-accuracy option for a focused set of 14 widely-spoken languages.

ModelSizeRAMLanguagesAccuracy
cohere2 GB4 GBArabic, German, Greek, English, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Portuguese, Vietnamese, Chineseβ˜…β˜…β˜…β˜…

GigaAM

Sber's GigaAM v3 (int8 ONNX). A Conformer model trained on 700k hours of Russian speech β€” the most accurate option for Russian audio. The end-to-end CTC variant outputs punctuated, normalized text.

ModelSizeRAMLanguagesAccuracy
gigaam-v3225 MB2 GBRussian, Englishβ˜…β˜…β˜…β˜…

GigaAM Multilingual (600M, int8 ONNX) covers Central Asian languages that the other models handle poorly β€” Whisper large v3 scores 58–110% WER on Kazakh, Kyrgyz and Uzbek. It uses a character-wise CTC head, so unlike GigaAM v3 its output has no punctuation or capitalization.

ModelSizeRAMLanguagesAccuracy
gigaam-multilingual592 MB3 GBRussian, Kazakh, Kyrgyz, Uzbek, Englishβ˜…β˜…β˜…β˜…

Omni-ASR

Meta's Omnilingual ASR (1B CTC, fp32 ONNX). Covers 1600+ languages, making it the fallback for languages no specialist model supports. Output is lowercase with no punctuation.

ModelSizeRAMLanguagesAccuracy
omni-asr-1b-ctc3.7 GB4 GB1600+ languagesβ˜…β˜…β˜…

Diarization & VAD

In addition to transcription models, AutoSubs downloads a speaker diarization model (~40 MB, user-selectable from the Model Manager) and a Silero VAD model (auto-downloaded for voice activity detection during transcription). An optional MMS forced-alignment model (~320 MB, CC BY-NC 4.0) can also be downloaded for word-level timestamps β€” see Model licensing.


Integrations

AutoSubs can run as a standalone subtitle generator, connect directly to DaVinci Resolve, or communicate with Adobe Premiere Pro and After Effects through the bundled CEP extension.

Select a Preset StyleOr create your own
Transcription PageAdvanced Settings

Contributing

PRs are welcome! See CONTRIBUTING.md for how to get started, including the dev setup and a full codebase walkthrough via AutoSubs DeepWiki.

For detailed information about the DaVinci Resolve integration architecture, Lua server, Fusion macro system, and development workflow, see Resolve-Integration/README.md.


Model licensing

AutoSubs code is MIT-licensed. The optional MMS forced-alignment weights are downloaded separately and licensed under CC BY-NC 4.0 for noncommercial use. Users are responsible for ensuring their use complies with the model license.

The forced-aligner weights originate from Meta's MMS model, with forced-alignment conversion work by MahmoudAshraf and ONNX/INT8 conversion by onnx-community. Conversion and quantization changes were made by those respective projects; no endorsement is implied.

While MMS supports over a thousand languages, word-level alignment relies on romanizing the transcript with uroman. uroman covers the major world scripts (Latin, Cyrillic, Arabic, CJK, most Indic scripts, etc.), but very low-resource minority languages whose scripts are not included in its data may produce degraded or missing word timestamps.

Acknowledgments

AutoSubs is built on top of excellent open-source projects:

  • whisper-rs - Rust bindings for Whisper C++ library
  • transcribe-rs - ONNX Runtime transcription with Moonshine and Parakeet models
  • pyannote-rs - Rust implementation of Pyannote for speaker diarization (integrated into app code for improvements)

Contributors

tmoroney

1,054 commits

claude

29 commits

Scrollog

24 commits

Languages

TypeScript

44.3%

Rust

27.3%

C++

10.5%

Lua

8.9%

CMake

2.5%

Python

1.6%

NSIS

1.6%

JavaScript

1.5%