<?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: Qiushui</title>
    <description>The latest articles on DEV Community by Qiushui (@zainingqiushui).</description>
    <link>https://dev.to/zainingqiushui</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%2F4205765%2F1d70479b-4ea6-45c4-b472-44a8c9c9cf52.png</url>
      <title>DEV Community: Qiushui</title>
      <link>https://dev.to/zainingqiushui</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zainingqiushui"/>
    <language>en</language>
    <item>
      <title>I stopped reading subtitles in video. I built a video voice translator, keep the tone, keep the emotion.</title>
      <dc:creator>Qiushui</dc:creator>
      <pubDate>Sun, 25 Oct 2026 03:58:23 +0000</pubDate>
      <link>https://dev.to/zainingqiushui/i-stopped-reading-subtitles-in-video-i-built-a-video-voice-translator-keep-the-tone-keep-the-35ce</link>
      <guid>https://dev.to/zainingqiushui/i-stopped-reading-subtitles-in-video-i-built-a-video-voice-translator-keep-the-tone-keep-the-35ce</guid>
      <description>&lt;p&gt;One evening last year, I was watching an insightful tech video on my computer. It was in English with Chinese subtitles. As I watched, a thought struck me: I wish I could just listen to the Chinese version. No need to stare at subtitles all the time. I could listen during my commute, before bed, wherever.&lt;/p&gt;

&lt;p&gt;Eventually, I actually built it.&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%2Fp00v667g3i20x7bbvo1p.png" 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%2Fp00v667g3i20x7bbvo1p.png" alt="Video Translation Process Architecture" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But from the moment the idea struck me to creating a product everyone could use, it took far longer than I expected. After the idea came, I tried a few video translation tools. Chinese translation was there, but something always felt off when I listened.&lt;/p&gt;

&lt;p&gt;The person in the video was still there, but it was no longer their voice. The emotion in how they spoke each sentence, also gone.&lt;/p&gt;

&lt;p&gt;Imagine a face you know well, suddenly speaking in a different tone, a different voice. You can follow the meaning, but that connection breaks. It's like watching a familiar person while hearing a stranger speak for them.&lt;/p&gt;

&lt;p&gt;What I really wanted was simple. Translate to Chinese, but keep the original voice intact. Keep the emotion, the nuance in how they say each word. These small details in a voice matter. The same sentence said softly versus forcefully hits you completely differently.&lt;/p&gt;

&lt;p&gt;I searched around and found a model approach. At the time, options were limited, but this approach's voice preservation quality gave me hope.&lt;/p&gt;

&lt;p&gt;Having a model is one thing. Getting a finished video is another. The inference was painfully slow, and I couldn't just throw an entire video at it and wait for perfectly translated output with audio synced with the video, all while preserving background music. I had to wire everything together myself.&lt;/p&gt;

&lt;p&gt;After I shared some samples, quite a few people asked if I could turn it into a tool everyone could use. I thought so too. Honestly, with AI-assisted coding, I figured it would be fast, right? The core translation pipeline was working. Everything else? Just building a website for video uploads.&lt;/p&gt;

&lt;p&gt;Turns out, it took a year.&lt;/p&gt;

&lt;p&gt;Turns out building something you can demo and building something people can reliably use are very different things. Using it myself, all I needed was proper video processing. But for others, I needed registration, login, data persistence. One user's data can't leak to another's. Multiple concurrent uploads can't crash the system.&lt;/p&gt;

&lt;p&gt;What if the system goes down? What if users multiply and I need to scale? Would users instinctively know how to use it? Databases, servers, object storage, domains, DNS, one by one, you have to get them right. Each piece seems fine alone, but how do you wire them together so people can smoothly use your service? There's always something else, and something else after that.&lt;/p&gt;

&lt;p&gt;AI can help. But whether it's right, what to do when something breaks, that's still on you.&lt;/p&gt;

&lt;p&gt;So why keep going? Because I promised. I promised the people who wanted this, promised myself. That thought kept me going.&lt;/p&gt;

&lt;p&gt;Now, finally, I can deliver.&lt;/p&gt;

&lt;p&gt;It's called &lt;a href="https://www.souldub.ai" rel="noopener noreferrer"&gt;SoulDub&lt;/a&gt;, dubbing with soul. It supports 30+ languages and some dialects.&lt;/p&gt;

&lt;p&gt;Using it is straightforward:&lt;/p&gt;

&lt;p&gt;Web way: Go to souldub.ai, upload a video, pick a language, hit start. That's it.&lt;/p&gt;

&lt;p&gt;Agent way: Search for &lt;a href="https://github.com/jiabaogithub/souldub-skills" rel="noopener noreferrer"&gt;github-souldub-skills&lt;/a&gt; in your browser and install it via your preferred Agent (ChatGPT, Claude, Gemini, etc.) and have it install the skill. After that, your Agent can translate your local videos. The translated video and subtitles automatically download to the original video's folder.&lt;/p&gt;

&lt;p&gt;Videos from both methods show up in your SoulDub account.&lt;/p&gt;

&lt;p&gt;One more critical piece: manual review and editing.&lt;/p&gt;

&lt;p&gt;If a subtitle isn't quite right, if a dubbed voice needs adjustment, you edit it directly on the site. The AI does the first pass, then you refine the parts that matter to you. Quality keeps going up.&lt;/p&gt;

&lt;p&gt;Give it a try. Any feedback, questions, ideas, I'm here listening.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=e4UjxZmwXfQ" rel="noopener noreferrer"&gt;How to translate a person's voice in a video in three steps&lt;/a&gt; &lt;/p&gt;

</description>
      <category>ai</category>
      <category>translation</category>
      <category>video</category>
      <category>videotranslation</category>
    </item>
  </channel>
</rss>
