<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lucas Hornung</title>
    <description>The latest articles on DEV Community by Lucas Hornung (@prof-rhino).</description>
    <link>https://dev.to/prof-rhino</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4001112%2F3631d46d-e648-4c61-94d9-c78dcabee50a.png</url>
      <title>DEV Community: Lucas Hornung</title>
      <link>https://dev.to/prof-rhino</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prof-rhino"/>
    <language>en</language>
    <item>
      <title>I built a fully local speech translator that runs offline, stays private, and fits in your terminal</title>
      <dc:creator>Lucas Hornung</dc:creator>
      <pubDate>Wed, 24 Jun 2026 19:55:34 +0000</pubDate>
      <link>https://dev.to/prof-rhino/i-built-a-fully-local-speech-translator-that-runs-offline-stays-private-and-fits-in-your-terminal-49dk</link>
      <guid>https://dev.to/prof-rhino/i-built-a-fully-local-speech-translator-that-runs-offline-stays-private-and-fits-in-your-terminal-49dk</guid>
      <description>&lt;p&gt;Last October, someone posted &lt;a href="https://news.ycombinator.com/item?id=41941845" rel="noopener noreferrer"&gt;"Ask HN: Real-time speech-to-speech translation?"&lt;/a&gt; on Hacker News. 158 points, 70 comments. They wanted a Babelfish, something that listens, translates, and speaks, all offline. Every alternative people suggested (RTranslator, 3PO, Samsung Interpreter) failed on at least one axis: too awkward, requires cloud, not open source.&lt;/p&gt;

&lt;p&gt;I decided to build one for English and Mandarin.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;You speak English, it says the same thing in Mandarin. You speak Mandarin, it says it in English. Everything runs on your machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F16104hqhj86q0c9g3u1r.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F16104hqhj86q0c9g3u1r.gif" alt="A terminal window showing live translation from English to Mandarin" width="800" height="489"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; live-translate
live-translate start
live-translate
&lt;span class="c"&gt;# Hold SPACE, speak, release, hear translation&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;No API keys. No cloud. Works in airplane mode. Works behind the Great Firewall.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why I built this
&lt;/h2&gt;

&lt;p&gt;The existing options all have the same problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Translate&lt;/strong&gt; sends your audio to Google's servers, is blocked in China, and renders "我请你吃饭" as "I invite you to eat rice" instead of "I'll treat you to dinner."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Microsoft Translator&lt;/strong&gt; is not much better. A paying Azure customer publicly filed a ticket saying Mandarin output is "literal or word-for-word" while Spanish and Portuguese work fine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DeepL&lt;/strong&gt; has no voice mode at all for Chinese, and academic testing found it mishandles basic Chinese grammar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT Voice&lt;/strong&gt; has excellent quality when it works, but it forgets it's supposed to be translating and starts answering your questions instead.&lt;/p&gt;

&lt;p&gt;I wanted something private (my conversations with my family are not Google's business), that worked offline (I travel to places with no signal), and that was open source so I could inspect and fix it.&lt;/p&gt;
&lt;h2&gt;
  
  
  The architecture
&lt;/h2&gt;

&lt;p&gt;Three ML models chained together:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Microphone
    |
Whisper (speech to text + language detection)
    |
Ollama + Qwen 2.5 (text to translated text)
    |
Piper TTS (translated text to speech)
    |
Speaker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Whisper&lt;/strong&gt; handles speech recognition and language detection in one step. It tells me "this is English" or "this is Mandarin" so the routing is free.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qwen 2.5&lt;/strong&gt; via Ollama handles translation. I started with Opus-MT (Helsinki-NLP's lightweight model) but the quality was bad. It would repeat "你好 你好 你好" for a simple "Hello." Qwen 2.5 at 7B parameters produces natural, idiomatic output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Piper TTS&lt;/strong&gt; handles speech synthesis. It's fast, MIT licensed, and has decent voices for both English and Chinese.&lt;/p&gt;

&lt;p&gt;All three run locally. No data leaves your machine. The only network call is pulling the Docker containers on first install.&lt;/p&gt;
&lt;h2&gt;
  
  
  One thing I learned the hard way
&lt;/h2&gt;

&lt;p&gt;Translation quality is dramatically worse in one direction. English to Chinese is decent across most tools. Chinese to English, the direction where a Mandarin speaker needs to be understood, is significantly worse. A clinical study tested live spoken translation and found that English to Chinese scored 62-76% acceptable while Chinese to English scored only 36-41%.&lt;/p&gt;

&lt;p&gt;This matters because a live conversation needs both directions to work. Most translation demos only show the easy direction. I benchmark both.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Whisper hallucination problem
&lt;/h2&gt;

&lt;p&gt;Whisper has a known issue. During silence or background noise, it hallucinates phrases from its training data. The most common ones are "Translated by Amara.org Community" and "Transcribed by Otter.ai", because Whisper was trained on YouTube subtitle files that contained these credit lines.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Common hallucinations: "Translated by Amara.org Community" and "Transcribed by Otter.ai"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I added filtering for known hallucination strings and surface Whisper's confidence score to the user. If confidence is low, you see a warning instead of garbage output.&lt;/p&gt;
&lt;h2&gt;
  
  
  It's also an MCP
&lt;/h2&gt;

&lt;p&gt;If you use Claude Code or Claude Desktop, you can use the same engine as an MCP server:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @anthropic-ai/claude-code mcp add live-translate-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Give Claude an audio file and it'll transcribe, translate, and save the translated audio, all locally.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/waxberry-dev" rel="noopener noreferrer"&gt;
        waxberry-dev
      &lt;/a&gt; / &lt;a href="https://github.com/waxberry-dev/live-translate-mcp" rel="noopener noreferrer"&gt;
        live-translate-mcp
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      MCP server for local speech translation (EN ↔ 中文) via Whisper + Claude + Piper
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/waxberry-dev/live-translate-mcp/assets/logo.png?v=2"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fwaxberry-dev%2Flive-translate-mcp%2FHEAD%2Fassets%2Flogo.png%3Fv%3D2" alt="Waxberry" width="80"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;live-translate-mcp&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://glama.ai/mcp/servers/waxberry-dev/live-translate-mcp" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7160c5bd8aa7521303703bd947b2fd6153b3f9c62731c7e4521eb6e5be526f3a/68747470733a2f2f676c616d612e61692f6d63702f736572766572732f77617862657272792d6465762f6c6976652d7472616e736c6174652d6d63702f6261646765732f73636f72652e737667" alt="live-translate-mcp MCP server"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-time English ↔ Mandarin speech translation for Claude — powered by Whisper, Claude AI, and Piper TTS.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Give Claude the ability to listen, translate, and speak. &lt;code&gt;live-translate-mcp&lt;/code&gt; is a &lt;a href="https://modelcontextprotocol.io" rel="nofollow noopener noreferrer"&gt;Model Context Protocol (MCP)&lt;/a&gt; server that adds speech translation as a native tool inside Claude Desktop and Claude Code. Hand it an audio file, and it transcribes, translates, synthesises, and plays the result — entirely on your machine, with Claude handling the translation.&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/waxberry-dev/live-translate-mcp/assets/demo.svg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fwaxberry-dev%2Flive-translate-mcp%2FHEAD%2Fassets%2Fdemo.svg" alt="live-translate-mcp demo" width="860"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it does&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;table&gt;

&lt;thead&gt;

&lt;tr&gt;

&lt;th&gt;Step&lt;/th&gt;

&lt;th&gt;Technology&lt;/th&gt;

&lt;th&gt;Where it runs&lt;/th&gt;

&lt;/tr&gt;

&lt;/thead&gt;

&lt;tbody&gt;

&lt;tr&gt;

&lt;td&gt;Speech → Text&lt;/td&gt;

&lt;td&gt;
&lt;br&gt;
&lt;a href="https://github.com/openai/whisper" rel="noopener noreferrer"&gt;OpenAI Whisper&lt;/a&gt; (via &lt;code&gt;@huggingface/transformers&lt;/code&gt;)&lt;/td&gt;

&lt;td&gt;Local&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;Text → Translation&lt;/td&gt;

&lt;td&gt;
&lt;br&gt;
&lt;a href="https://anthropic.com/claude" rel="nofollow noopener noreferrer"&gt;Claude&lt;/a&gt; (Opus 4.8)&lt;/td&gt;

&lt;td&gt;Anthropic API&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;Translation → Speech&lt;/td&gt;

&lt;td&gt;
&lt;br&gt;
&lt;a href="https://github.com/rhasspy/piper" rel="noopener noreferrer"&gt;Piper TTS&lt;/a&gt; (ONNX)&lt;/td&gt;

&lt;td&gt;Local&lt;/td&gt;

&lt;/tr&gt;

&lt;/tbody&gt;

&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Audio never leaves your machine except for the translated text sent to the Claude API. ASR and TTS run fully on-device.&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Tools&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;code&gt;translate_file&lt;/code&gt;&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Translate a WAV audio file. Pass an absolute path — the server transcribes it, translates the text via Claude, synthesises speech, saves…&lt;/p&gt;&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/waxberry-dev/live-translate-mcp" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; live-translate
live-translate doctor    &lt;span class="c"&gt;# check prerequisites&lt;/span&gt;
live-translate start     &lt;span class="c"&gt;# start the translation backend&lt;/span&gt;
live-translate           &lt;span class="c"&gt;# hold SPACE to speak&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;/p&gt;
  Click here for prerequisites
  &lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt;: v18 or higher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker&lt;/strong&gt;: Required for the local ML backends&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sox&lt;/strong&gt;: Used for audio processing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Run &lt;code&gt;live-translate doctor&lt;/code&gt; to verify your setup.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;The whole thing is MIT licensed. PRs welcome, especially if you speak Cantonese. That's the most-requested language to add and Whisper already supports it.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/waxberry-dev" rel="noopener noreferrer"&gt;
        waxberry-dev
      &lt;/a&gt; / &lt;a href="https://github.com/waxberry-dev/live-translate" rel="noopener noreferrer"&gt;
        live-translate
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Fully local English ↔ Mandarin speech translator. Open source, offline, privacy-first. CLI + MCP server.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/waxberry-dev/live-translate/logo/yangmei-icon.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fwaxberry-dev%2Flive-translate%2FHEAD%2Flogo%2Fyangmei-icon.png" alt="live-translate" width="120"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;live-translate — English ↔ 中文&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;Fully local speech-to-speech translator between English and Mandarin Chinese
No cloud APIs required. All audio processing runs on your machine. MIT licensed.&lt;/p&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/waxberry-dev/live-translate/assets/demo.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fwaxberry-dev%2Flive-translate%2FHEAD%2Fassets%2Fdemo.gif" alt="live-translate demo" width="600"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Install&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install -g live-translate&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Quick Start&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;live-translate   &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; press SPACE to record, SPACE again to translate&lt;/span&gt;
                 &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; downloads models and starts services automatically on first run&lt;/span&gt;
live-translate stop   &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; stop services when done&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Commands&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;table&gt;

&lt;thead&gt;

&lt;tr&gt;

&lt;th&gt;Command&lt;/th&gt;

&lt;th&gt;Description&lt;/th&gt;

&lt;/tr&gt;

&lt;/thead&gt;

&lt;tbody&gt;

&lt;tr&gt;

&lt;td&gt;&lt;code&gt;live-translate&lt;/code&gt;&lt;/td&gt;

&lt;td&gt;Start translating (SPACE to start/stop recording, Q or Ctrl-C to quit)&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;&lt;code&gt;live-translate config&lt;/code&gt;&lt;/td&gt;

&lt;td&gt;Configure your translation provider&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;&lt;code&gt;live-translate start&lt;/code&gt;&lt;/td&gt;

&lt;td&gt;Download models and start backend services (runs automatically when needed)&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;&lt;code&gt;live-translate stop&lt;/code&gt;&lt;/td&gt;

&lt;td&gt;Stop all backend services&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;&lt;code&gt;live-translate status&lt;/code&gt;&lt;/td&gt;

&lt;td&gt;Show service health and active provider&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;&lt;code&gt;live-translate doctor&lt;/code&gt;&lt;/td&gt;

&lt;td&gt;Check prerequisites&lt;/td&gt;

&lt;/tr&gt;

&lt;/tbody&gt;

&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Translation Providers&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;Run &lt;code&gt;live-translate config&lt;/code&gt; to choose a backend. The default is Opus-MT (fully local, no API key needed).&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;table&gt;

&lt;thead&gt;

&lt;tr&gt;

&lt;th&gt;Provider&lt;/th&gt;

&lt;th&gt;Type&lt;/th&gt;

&lt;th&gt;Quality&lt;/th&gt;

&lt;th&gt;Cost&lt;/th&gt;

&lt;/tr&gt;

&lt;/thead&gt;

&lt;tbody&gt;

&lt;tr&gt;

&lt;td&gt;
&lt;br&gt;
&lt;strong&gt;Opus-MT&lt;/strong&gt; &lt;em&gt;(default)&lt;/em&gt;&lt;br&gt;
&lt;/td&gt;

&lt;td&gt;Local model&lt;/td&gt;

&lt;td&gt;Good&lt;/td&gt;

&lt;td&gt;Free&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;
&lt;br&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; (Qwen 2.5)&lt;/td&gt;

&lt;td&gt;Local LLM&lt;/td&gt;

&lt;td&gt;High&lt;/td&gt;

&lt;td&gt;Free — needs&lt;/td&gt;

&lt;/tr&gt;

&lt;/tbody&gt;

&lt;/table&gt;&lt;/div&gt;…&lt;p&gt;&lt;/p&gt;&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/waxberry-dev/live-translate" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://waxberry.dev" rel="noopener noreferrer"&gt;waxberry.dev&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you found this useful, a star on GitHub means a lot. And if you try it, tell me how the translation quality is for you, especially Mandarin to English. That's the direction I'm working hardest to improve.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>typescript</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
