SkillAgentSearch skills...

Moonshine

Very low latency speech to text, intent recognition, and text to speech, for building voice agents and interfaces

Install / Use

npx skills add moonshine-ai/moonshine

Installs into whichever agent you are using.

About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Moonshine Voice Logo

Moonshine Voice

Voice Interfaces for Everyone

Moonshine Voice is an open source AI toolkit for developers building real-time voice agents and applications.

  • Everything runs on-device, so it's fast, private, and you don't need an account, credit card, or API keys.
  • The framework and models are optimized for live streaming applications, offering low latency responses by doing a lot of the work while the user is still talking.
  • All speech to text models are based on our cutting edge research and trained from scratch, so we can offer higher accuracy than Whisper Large V3 at the top end, down to tiny 1MB models for constrained deployments.
  • It's easy to integrate across platforms, with the same library running on Python, iOS, Android, MacOS, Linux, Windows, Raspberry Pis, IoT devices, microcontrollers, DSPs, and wearables.
  • Batteries are included. Its high-level APIs offer complete solutions for common tasks like transcription, text to speech, voice cloning, speaker identification (diarization), command recognition, and conversational agents, so you can build your voice application with a single library.
  • It supports multiple languages, including English, Spanish, Mandarin, Japanese, Korean, Vietnamese, Ukrainian, and Arabic for STT, and English, Spanish, Arabic, German, French, Hindi, Italian, Japanese, Korean, Dutch, Portuguese, Russian, Turkish, Ukrainian, Vietnamese, and Mandarin for TTS.

Quickstart

Join our community on Discord to get live support.

Javascript

In node run npm install @moonshine-ai/moonshine-wasm, or for the web import directly from the CDN.

<!-- doc-test: parse-only -->
import { MicTranscriber, ModelArch } from 'https://cdn.jsdelivr.net/npm/@moonshine-ai/moonshine-wasm/dist/index.js';
 
const mic = new MicTranscriber()
  .modelArch(ModelArch.MediumStreaming)
  .onText((text) => showInProgress(text))
  .onLine((line) => appendLine(line.text, line.lastTranscriptionLatencyMs));
 
await mic.load();
await mic.start();

You can see live examples running at moonshine.ai, or download the speech to text, text to speech, voice agent, dictation, or meeting note taker projects. To serve them run node serve.mjs and navigate to http://localhost:8080/.

Python

<!-- doc-test: parse-only -->
pip install moonshine-voice
moonshine-voice mic --language en

Listens to the microphone and prints updates to the transcript as they come in.

<!-- doc-test: parse-only -->
moonshine-voice agent

Runs a spoken wifi-setup conversation: it listens for a trigger phrase, asks questions, and confirms the answers. Matching is semantic, so natural language variations are recognized. For more, check out our "Getting Started" Colab notebook and video.

<!-- doc-test: parse-only -->
moonshine-voice tts --language en_us --text "Hello world"

Synthesizes and speaks the text.

iOS

First add https://github.com/moonshine-ai/moonshine-swift/ as a package dependency to your project in Xcode.

import MoonshineVoice
 
let mic = MicTranscriber()
    .onText { [weak self] text in
        Task { @MainActor in self?.liveText = text }
    }
    .onLine { [weak self] line in
        Task { @MainActor in self?.lines.append(line.text) }
    }
 
try await mic.load()
try mic.start()

Download github.com/moonshine-ai/moonshine/releases/latest/download/ios-Transcriber.tar.gz, extract it, and then open the Transcriber/Transcriber.xcodeproj project in Xcode.

Android

Add ai.moonshine:moonshine-voice:0.1.1 to your project's build.gradle.kts (or equivalent).

import ai.moonshine.voice.MicTranscriber;
 
mic = new MicTranscriber(this)
        .onText(text -> transcriptText.setText(finishedLines + text))
        .onLine(line -> {
            finishedLines.append(line.text).append('\n');
            transcriptText.setText(finishedLines.toString());
        });
 
worker.execute(() -> {
    mic.load();
    mic.start();
});

Download github.com/moonshine-ai/moonshine/releases/latest/download/android-Transcriber.tar.gz, extract it, and then open the Transcriber folder in Android Studio.

Linux

Moonshine Voice ships prebuilt shared libraries for both x86_64 and arm64 Linux. The quickest way to try it is with the portable C++ example, which downloads the library, an English speech to text model, and a sample recording, then builds and runs a transcriber:

<!-- doc-test: skip -->
curl -O -L https://github.com/moonshine-ai/moonshine/releases/download/v0.1.1/cpp-examples.tar.gz
tar xzf cpp-examples.tar.gz
cd c++
./download-library.sh
g++ transcriber.cpp -Imoonshine-voice/include -Lmoonshine-voice/lib -lmoonshine -Wl,-rpath,'$ORIGIN/moonshine-voice/lib' -o transcriber
./transcriber

MacOS

First add https://github.com/moonshine-ai/moonshine-swift/ as a package dependency to your project in Xcode.

import MoonshineVoice
 
let mic = MicTranscriber()
    .onText { [weak self] text in
        Task { @MainActor in self?.liveText = text }
    }
    .onLine { [weak self] line in
        Task { @MainActor in self?.lines.append(line.text) }
    }
 
try await mic.load()
try mic.start()

This code is identical to the iOS version.

Download github.com/moonshine-ai/moonshine/releases/latest/download/macos-MicTranscription.tar.gz, extract it, and then open the MicTranscription/MicTranscription.xcodeproj project in Xcode.

Windows

Download github.com/moonshine-ai/moonshine/releases/latest/download/windows-cli-transcriber.tar.gz, extract it, and then open the cli-transcriber\cli-transcriber.vcxproj project in Visual Studio.

It's a self-contained archive that includes the library and model, so Ctrl+Shift+B or F7 will build the executable.

Raspberry Pi

You'll need a USB microphone plugged in to get audio input, but the Python pip package has been optimized for the Pi, so you can run:

<!-- doc-test: skip -->
 sudo pip install --break-system-packages moonshine-voice
 moonshine-voice mic --language en

I've recorded a screencast on YouTube to help you get started, and you can also download github.com/moonshine-ai/moonshine/releases/latest/download/raspberry-pi-my-dalek.tar.gz for some fun, Pi-specific examples. The README has information about using a virtual environment for the Python install if you don't want to use --break-system-packages.

You can look at github.com/moonshine-ai/pi-help-bot for a more advanced example.

More examples

Example apps for the web, iOS, Android, macOS, Windows, and Raspberry Pi are published on GitHub Releases as separate archives (mostly {platform}-{Project}.tar.gz, matching folder names under examples/; Windows also ships moonshine-voice-windows-x86_64.tar.gz for the C++ sample). See the Examples section for the full list of release downloads.

When should you choose Moonshine over Whisper?

TL;DR - When you're working with live speech.

| Model | WER | # Parameters | MacBook Pro | Linux x86 | R. Pi 5 | Pixel 10a | iPad (A16) | | -------------------------- | ------ | ------------ | ----------- | --------- | --------- | --------- | ---------- | | Moonshine Medium Streaming | 6.65% | 245 million | 74ms | 269ms | 802ms | 916ms | 181ms | | Whisper Large v3 | 7.44% | 1

Related Skills

View on GitHub
GitHub Stars10.7k
CategoryDevelopment
Updated41m ago
Forks578

Languages

C++

Security Score

85/100

Audited on Aug 8, 2026

No findings