<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tts on AI Engineer Guide</title><link>https://aiengineerguide.com/tags/tts/</link><description>Recent content in Tts on AI Engineer Guide</description><generator>Hugo</generator><language>en-US</language><copyright>Copyright © 2024-2026, Nesin Technologies LLP.</copyright><lastBuildDate>Sun, 26 Apr 2026 17:18:45 +0530</lastBuildDate><atom:link href="https://aiengineerguide.com/tags/tts/feed.xml" rel="self" type="application/rss+xml"/><item><title>voipi - Free text-to-speech for your AI Agents or CLI</title><link>https://aiengineerguide.com/til/voipi-text-to-speech/</link><pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate><guid>https://aiengineerguide.com/til/voipi-text-to-speech/</guid><description>&lt;p>&lt;a href="https://voipi.vercel.app">voipi&lt;/a> lets you quickly convert &lt;strong>text-to-speech&lt;/strong> which you can use in your app for free.&lt;/p>
&lt;p>Under the hood, it uses multiple providers. And it is pretty fast as well.&lt;/p>
&lt;p>&lt;img src="https://cdn.qblog.nesin.io/f_auto,q_auto/qblog/AIEngineerGuide/2026-04/aysmsgfy4d93vxgsa2oz" alt="2026-04-26-at-17.08.512x.png">&lt;/p>
&lt;p>&lt;img src="https://raw.githubusercontent.com/pithings/voipi/main/website/demo.svg" alt="2026-04-26-at-17.08.512x.png">&lt;/p>
&lt;p>👉 &lt;a href="https://voipi.vercel.app">https://voipi.vercel.app&lt;/a>&lt;/p>
&lt;h2 id="how-to-get-started">How to get started?&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Speak&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>npx voipi speak &lt;span style="color:#e6db74">&amp;#39;Hello world&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Write to a file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>npx voipi speak &lt;span style="color:#e6db74">&amp;#39;Hi&amp;#39;&lt;/span> -o hello.mp3
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You can also use it programatically (based on docs)&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-js" data-lang="js">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">import&lt;/span> { &lt;span style="color:#a6e22e">VoiPi&lt;/span> } &lt;span style="color:#a6e22e">from&lt;/span> &lt;span style="color:#e6db74">&amp;#34;voipi&amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">voice&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">new&lt;/span> &lt;span style="color:#a6e22e">VoiPi&lt;/span>();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// Speak text
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#66d9ef">await&lt;/span> &lt;span style="color:#a6e22e">voice&lt;/span>.&lt;span style="color:#a6e22e">speak&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Hello world!&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// With a prioritized voice list (first available wins)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#66d9ef">await&lt;/span> &lt;span style="color:#a6e22e">voice&lt;/span>.&lt;span style="color:#a6e22e">speak&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Hello!&amp;#34;&lt;/span>, { &lt;span style="color:#a6e22e">voice&lt;/span>&lt;span style="color:#f92672">:&lt;/span> [&lt;span style="color:#e6db74">&amp;#34;Samantha&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;en-US-AriaNeural&amp;#34;&lt;/span>], &lt;span style="color:#a6e22e">rate&lt;/span>&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">1.5&lt;/span> });
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// Save to file
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#66d9ef">await&lt;/span> &lt;span style="color:#a6e22e">voice&lt;/span>.&lt;span style="color:#a6e22e">save&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Hello!&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;output.mp3&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// Get audio data with duration
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">audio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">await&lt;/span> &lt;span style="color:#a6e22e">voice&lt;/span>.&lt;span style="color:#a6e22e">toAudio&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Hello world!&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">console&lt;/span>.&lt;span style="color:#a6e22e">log&lt;/span>(&lt;span style="color:#e6db74">`Duration: &lt;/span>&lt;span style="color:#e6db74">${&lt;/span>&lt;span style="color:#a6e22e">audio&lt;/span>.&lt;span style="color:#a6e22e">duration&lt;/span>&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">s`&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// List available voices
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">voices&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">await&lt;/span> &lt;span style="color:#a6e22e">voice&lt;/span>.&lt;span style="color:#a6e22e">listVoices&lt;/span>();
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="reference">Reference&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://github.com/pithings/voipi">https://github.com/pithings/voipi&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>