
What happened
The developer benchmarked Moonshine Voice's Japanese "Small Streaming" model against faster-whisper's small model on a Linux CPU (16 cores), using synthetic speech, 20 FLEURS clips and eight of the author's own sentences; Moonshine posted lower character error rates (0.092–0.110 vs 0.104–0.155) and faster response times (0.18–0.30s vs 1.31–2.25s).
Why it matters
For developers weighing a locally run Japanese speech-recognition engine, Moonshine looks faster and slightly more accurate on CPU, though the low sample counts and the differing measurement methods — streaming for Moonshine, whole-clip processing for Whisper — mean the results are best read as a rough signal. Moonshine also splits Japanese into short lines at pauses, so sentence-level use needs post-processing.
Summaries like this, in your inbox every morning.
The post is a hands-on implementation write-up aimed at developers who want to benchmark Japanese speech recognition themselves. It supplies the setup steps — a Python virtual environment with moonshine-voice and faster-whisper installed, and 16 kHz mono 16-bit WAV input produced with ffmpeg — and works with moonshine-voice 0.1.5 and faster-whisper 1.2.1. Moonshine is fed audio in 100 ms chunks at real-time speed so that each line's completion time can be recorded, while faster-whisper receives the whole clip at once after a warm-up run to avoid slow first-load times. Response speed is defined differently for each: for Moonshine, the gap between when the last line was finalized and when that line's speech ended; for Whisper, the total processing time of a clip.
The accuracy metric is character error rate (CER), computed as the edit distance against a reference sentence divided by the number of reference characters, after stripping punctuation and whitespace and normalizing full-width and half-width characters. The author flags a caveat: if "三百二十八万五千円" is written as "328万5000円", the meaning is the same but CER rises, so number formatting should be aligned before measuring. The code also sets max_tokens_per_second to 13 for Japanese, versus a default of 6.5 — a value the developer documentation recommends for languages with high tokens-per-second counts. In the author's own measurements, 6.5 and 13 produced identical CER to three decimal places, so the change made no difference on those samples, but the author suggests following the documentation anyway.
Two practical snags are documented. Feeding 20 clips through a single Python process returned empty Moonshine results for three of them, while running the same audio alone worked correctly; the cause was not identified and per-clip processes avoided the problem. And Moonshine breaks lines at breaths and pauses, so spoken Japanese comes out as many short lines that need post-processing to reassemble into sentences. The author also notes that loading a non-English model displays a non-commercial license notice, while the official repository's LICENSE lists the current streaming models, including Japanese, as MIT — a discrepancy the author advises checking officially before commercial use.
Pick your industry and the AI tools you use, and get news related to your work every day.
Free · 30 seconds with Google · unsubscribe anytimeWhat is AIToday? →
Ask AI anything about this article. The AI reads this article, earlier AIToday articles, and Wikipedia, and cites its sources. Q&As are published on this page for other readers too.
The Japan Actors Union adopted a generative AI guideline for voice on October 15, requiring prior consent from…

On October 14, YouTube said YouTube Music now shows a label on tracks made mainly with generative AI, and it p…

SpaceXSI released Grok Voice 3.0, rated 86.9 on Artificial Analysis' Speech-to-Speech Index, ahead of OpenAI's…
Square launched the Square Kiosk, a pill-shaped ordering device with a 21.5-inch touchscreen and an AI voice l…

YouTube is adding a "Made with AI" label to tracks "altered or fully generated" using AI, starting today in th…

YouTube Music announced a labeling system on Wednesday that tags AI-generated music on the player page
