Skip to content

Commit 8ceadf8

Browse files
committed
Add installer script (Inno Setup) and build instructions
1 parent 079545e commit 8ceadf8

5 files changed

Lines changed: 88 additions & 56 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,5 @@ project.nuget.cache
6868
*.nuget.g.props
6969
*.nuget.g.targets
7070
publish/
71+
installer-output/
7172
.vs/

voxtral_realtime/windows/README.md

Lines changed: 53 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4,104 +4,101 @@ Real-time speech transcription desktop app powered by ExecuTorch with CUDA accel
44

55
This is the Windows equivalent of the [macOS Voxtral Realtime app](../macos/).
66

7-
## Quick Start (Pre-built Release)
7+
## Quick Start
88

9-
Download `VoxtralRealtime.exe` from the [Releases](https://github.com/meta-pytorch/executorch-examples/releases) page and run it directly. No installation required.
9+
Download `VoxtralRealtime-Setup.exe` from the [Releases](https://github.com/meta-pytorch/executorch-examples/releases) page and run the installer. Everything is bundled -- the app, runner, model weights, and tokenizer. No additional downloads required.
1010

11-
You also need:
12-
- The `voxtral_realtime_runner.exe` (built from ExecuTorch with CUDA support)
13-
- Model files from HuggingFace (see [Model Files](#model-files) below)
11+
After install, launch from the Start Menu or desktop shortcut and click "Start Transcription".
1412

15-
## Prerequisites
13+
### Requirements
1614

1715
- Windows 10/11 with NVIDIA GPU (CUDA-capable)
1816
- CUDA Toolkit installed (auto-detected from `C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\`)
19-
- [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) (only for building from source)
2017

21-
## Model Files
18+
## Features
2219

23-
Download from HuggingFace:
20+
- **Live Transcription** - Start/Pause/Resume with streaming text output
21+
- **Session Management** - Save, rename, pin, delete, and export sessions (TXT/JSON/SRT)
22+
- **Text Replacements** - Auto-correct transcription (e.g., "executorch" -> "ExecuTorch")
23+
- **Text Snippets** - Voice-triggered templates for common text blocks
24+
- **Dictation Mode** - Ctrl+Space global hotkey, floating overlay, auto-paste to any app, auto-stop on 2s silence
25+
- **Audio Level Visualization** - Real-time waveform display
2426

25-
```powershell
26-
pip install huggingface_hub
27-
huggingface-cli download younghan-meta/Voxtral-Mini-4B-Realtime-2602-ExecuTorch-CUDA --local-dir voxtral_rt_exports
28-
```
27+
## Keyboard Shortcuts
2928

30-
This downloads: `model.pte`, `preprocessor.pte`, `aoti_cuda_blob.ptd`
29+
| Shortcut | Action |
30+
|----------|--------|
31+
| Ctrl+Shift+R | Start / Resume transcription |
32+
| Ctrl+. | Pause transcription |
33+
| Ctrl+Enter | End session |
34+
| Ctrl+Space | Toggle dictation mode |
35+
36+
## Build from Source
3137

32-
You also need the tokenizer from the base model:
38+
For developers who want to build the app themselves.
39+
40+
### Prerequisites
41+
42+
- [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
43+
- Pre-built `voxtral_realtime_runner.exe` (see [Building the Runner](#building-the-runner))
44+
- Model files from HuggingFace (see [Model Files](#model-files))
45+
46+
### Model Files
3347

3448
```powershell
49+
pip install huggingface_hub
50+
huggingface-cli download younghan-meta/Voxtral-Mini-4B-Realtime-2602-ExecuTorch-CUDA-Windows --local-dir voxtral_rt_exports
3551
huggingface-cli download mistralai/Voxtral-Mini-4B-Realtime-2602 tekken.json --local-dir voxtral_tokenizer
3652
```
3753

38-
## Building the Runner
39-
40-
Build the `voxtral_realtime_runner.exe` from the ExecuTorch repo:
54+
### Building the Runner
4155

4256
```bash
4357
cd executorch
4458
cmake --preset voxtral-realtime-cuda
4559
cmake --build --preset voxtral-realtime-cuda
4660
```
4761

48-
The runner will be at `cmake-out/examples/models/voxtral_realtime/Release/voxtral_realtime_runner.exe`.
49-
50-
## Build from Source
62+
### Build and Run
5163

5264
```powershell
53-
# Install .NET SDK if not already installed
54-
winget install Microsoft.DotNet.SDK.8
55-
56-
# Build
5765
cd VoxtralRealtime
5866
dotnet restore
5967
dotnet build --configuration Release
60-
61-
# Run
6268
dotnet run --project VoxtralRealtime --configuration Release
6369
```
6470

65-
## Publish Standalone Executable
66-
67-
Create a single self-contained exe (no .NET runtime required on target machine):
71+
### Publish Standalone Executable
6872

6973
```powershell
7074
cd VoxtralRealtime
7175
dotnet publish VoxtralRealtime --configuration Release --runtime win-x64 --self-contained true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true /p:DebugType=none -o publish
7276
```
7377

74-
The output `publish\VoxtralRealtime.exe` can be distributed and run on any Windows x64 machine.
75-
76-
## Configuration
77-
78-
On first launch, the app auto-loads the model from default paths. All paths are configurable in Settings:
78+
### Create Installer
7979

80-
| File | Default Path |
81-
|------|-------------|
82-
| Runner | `cmake-out\examples\models\voxtral_realtime\Release\voxtral_realtime_runner.exe` |
83-
| Model | `voxtral_rt_exports_wsl\model.pte` |
84-
| Preprocessor | `voxtral_rt_exports_wsl\preprocessor.pte` |
85-
| CUDA blob | `voxtral_rt_exports_wsl\aoti_cuda_blob.ptd` |
86-
| Tokenizer | `tekken.json` |
80+
Builds a self-contained installer that bundles the app, runner, model weights, and tokenizer:
8781

88-
## Features
82+
```powershell
83+
# 1. Install Inno Setup (one-time)
84+
winget install JRSoftware.InnoSetup
8985
90-
- **Live Transcription** - Start/Pause/Resume with streaming text output
91-
- **Session Management** - Save, rename, pin, delete, and export sessions (TXT/JSON/SRT)
92-
- **Text Replacements** - Auto-correct transcription (e.g., "executorch" -> "ExecuTorch")
93-
- **Text Snippets** - Voice-triggered templates for common text blocks
94-
- **Dictation Mode** - Ctrl+Space global hotkey, floating overlay, auto-paste to any app, auto-stop on 2s silence
95-
- **Audio Level Visualization** - Real-time waveform display
86+
# 2. Publish the app
87+
cd VoxtralRealtime
88+
dotnet publish VoxtralRealtime --configuration Release --runtime win-x64 --self-contained true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true /p:DebugType=none -o publish
9689
97-
## Keyboard Shortcuts
90+
# 3. Build the installer
91+
cd ..
92+
ISCC installer.iss
93+
```
9894

99-
| Shortcut | Action |
100-
|----------|--------|
101-
| Ctrl+Shift+R | Start / Resume transcription |
102-
| Ctrl+. | Pause transcription |
103-
| Ctrl+Enter | End session |
104-
| Ctrl+Space | Toggle dictation mode |
95+
The output `installer-output\VoxtralRealtime-Setup.exe` includes:
96+
- App executable (self-contained, no .NET runtime needed)
97+
- `voxtral_realtime_runner.exe` + `aoti_cuda_shims.dll`
98+
- Model weights (`model.pte`, `preprocessor.pte`, `aoti_cuda_blob.ptd`)
99+
- Tokenizer (`tekken.json`)
100+
- Start Menu and optional desktop shortcuts
101+
- Clean uninstall via Windows Settings
105102

106103
## Architecture
107104

Binary file not shown.

voxtral_realtime/windows/VoxtralRealtime/VoxtralRealtime/VoxtralRealtime.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<AssemblyName>VoxtralRealtime</AssemblyName>
99
<Nullable>enable</Nullable>
1010
<ImplicitUsings>enable</ImplicitUsings>
11+
<ApplicationIcon>Resources\app.ico</ApplicationIcon>
1112
</PropertyGroup>
1213

1314
<ItemGroup>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
; Voxtral Realtime Windows Installer - Inno Setup Script
2+
; Download Inno Setup from https://jrsoftware.org/isinfo.php
3+
4+
[Setup]
5+
AppName=Voxtral Realtime
6+
AppVersion=1.0.0
7+
AppPublisher=Meta Platforms
8+
AppPublisherURL=https://github.com/meta-pytorch/executorch-examples
9+
DefaultDirName={autopf}\VoxtralRealtime
10+
DefaultGroupName=Voxtral Realtime
11+
OutputDir=installer-output
12+
OutputBaseFilename=VoxtralRealtime-Setup
13+
SetupIconFile=VoxtralRealtime\VoxtralRealtime\Resources\app.ico
14+
UninstallDisplayIcon={app}\VoxtralRealtime.exe
15+
Compression=lzma2
16+
SolidCompression=yes
17+
WizardStyle=modern
18+
ArchitecturesAllowed=x64compatible
19+
ArchitecturesInstallIn64BitMode=x64compatible
20+
PrivilegesRequired=lowest
21+
22+
[Files]
23+
Source: "VoxtralRealtime\publish\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
24+
25+
[Icons]
26+
Name: "{group}\Voxtral Realtime"; Filename: "{app}\VoxtralRealtime.exe"
27+
Name: "{autodesktop}\Voxtral Realtime"; Filename: "{app}\VoxtralRealtime.exe"; Tasks: desktopicon
28+
29+
[Tasks]
30+
Name: "desktopicon"; Description: "Create a desktop shortcut"; GroupDescription: "Additional shortcuts:"
31+
32+
[Run]
33+
Filename: "{app}\VoxtralRealtime.exe"; Description: "Launch Voxtral Realtime"; Flags: nowait postinstall skipifsilent

0 commit comments

Comments
 (0)