Sofir is an application that uses the Gemini API to provide real-time transcription of audio captured from the user's microphone. The transcribed text appears instantly, creating a seamless speech-to-text experience.
This project is built with React, TypeScript, Vite, and Tauri for cross-platform native desktop deployment.
NEW: Complete native desktop support with Tauri! See TAURI_SETUP.md for detailed setup and feature documentation.
- Real-time audio transcription using Gemini 2.5 Flash Native Audio
- Visual audio waveform display
- Mute/unmute functionality during recording
- Option to listen to the recorded audio after transcription stops
- Cross-platform support (Windows, macOS, Linux) via Tauri
- Native File Dialogs: Save and load transcripts with OS-native file pickers
- System Notifications: Get notified when transcription completes
- Persistent Storage: Transcripts saved to OS-appropriate app data directories
- Portable Mode: Create standalone builds that run without installation
- Native Performance: Rust backend for optimal performance
Before you begin, ensure you have the following installed on your system:
- Node.js and npm: Download & Install Node.js (npm is included).
- Rust Toolchain: Follow the official instructions at rustup.rs to install Rust and Cargo.
- Tauri Prerequisites: Complete the setup for your specific operating system by following the Tauri Prerequisites Guide.
-
Clone the repository:
git clone https://github.com/tansautn/sofir.git cd sofir -
Install dependencies: This command will install all the necessary Node.js packages for the frontend.
npm install
-
API Key Configuration: This application requires a Google Gemini API key to function. Create a file named
.env.localin the root directory of the project.Add your API key to this file like so:
GEMINI_API_KEY=YOUR_API_KEY_HEREThe
.gitignorefile is already configured to prevent this file from being committed to version control.
To run the application in development mode with hot-reloading:
npm run tauri devThis command will start the Vite development server and launch the Tauri application window.
Note on HTTPS: The development server runs on
https://localhost:3000. The first time you run it, your browser (and the webview) might show a security warning about a self-signed certificate. This is expected and safe for local development. Simply accept the warning to proceed.
You can build the application into a native installer or a portable package.
This command bundles the application into a standard NSIS installer for Windows.
npm run tauri buildThe output will be located in the src-tauri/target/release/bundle/nsis/ directory.
A portable version runs directly from a folder without needing installation and stores its data within that folder.
To create a portable build, run the following script:
npm run build:portableThis will:
- Build the release executable.
- Create a
portable.txtfile, which signals the app to run in portable mode. - Package the executable, required DLLs, and the
portable.txtfile into a.ziparchive.
The final portable package (sofir-vX.X.X-portable-windows.zip) will be in the src-tauri/target/release/ directory. Simply unzip and run the .exe file.