<?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: Qsianuo</title>
    <description>The latest articles on DEV Community by Qsianuo (@qsianuo).</description>
    <link>https://dev.to/qsianuo</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%2F4193622%2F0185140a-b49c-4681-ac22-e9e462ff1db3.jpg</url>
      <title>DEV Community: Qsianuo</title>
      <link>https://dev.to/qsianuo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/qsianuo"/>
    <language>en</language>
    <item>
      <title>本地实时录音转写，我终于跑通了</title>
      <dc:creator>Qsianuo</dc:creator>
      <pubDate>Mon, 19 Oct 2026 11:19:38 +0000</pubDate>
      <link>https://dev.to/qsianuo/ben-di-shi-shi-lu-yin-zhuan-xie-wo-zhong-yu-pao-tong-liao-45bm</link>
      <guid>https://dev.to/qsianuo/ben-di-shi-shi-lu-yin-zhuan-xie-wo-zhong-yu-pao-tong-liao-45bm</guid>
      <description>&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%2Fqxgd2tdgc9nybkeummw0.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%2Fqxgd2tdgc9nybkeummw0.png" alt=" " width="799" height="366"&gt;&lt;/a&gt;我用 AI 做了一款本地录音实时转写工具，做完才发现：最难的从来不是写代码。&lt;/p&gt;

&lt;p&gt;最开始只是想解决一个日常痛点：开会、采访结束后，整理录音转文字，总要额外耗上一小时。在线转写工具需要把音频上传云端，隐私不放心；现成本地软件又收费不便宜。干脆自己动手，定下核心目标：完全本地运行、边录音边出文字、项目开源。&lt;/p&gt;

&lt;p&gt;整个项目全程借助 AI 辅助落地。技术栈很快敲定：浏览器采集音频，FastAPI 搭建 WebSocket 服务，后端用 faster-whisper 做本地语音识别，所有音频数据全程只在 127.0.0.1 内网流转，不会上传到任何外部服务器。&lt;/p&gt;

&lt;p&gt;第一版代码跑通的那一刻特别激动，可测试中文识别结果直接翻车：测试句「实时语音识别测试」，被识别成了「实实与因时别特势」。我第一反应是模型能力不够，打算直接换更大的模型。但 AI 陪着我逐层拆解问题，最后定位到，是 4 个问题叠加导致识别拉胯：tiny 基础模型容量不足、提示词过长干扰模型选词、文本解码没有开启 beam search、推理速度慢造成音频队列堆积。&lt;/p&gt;

&lt;p&gt;最出乎我意料的，是提示词带来的影响。原本写了一句看着很合理的提示词：「请使用简体中文输出并添加标点符号」，可实测它会稳定把「实时」识别成「时时」。换成一句中性描述：「这是一段普通话的录音。」之后，同一个模型，识别结果立刻恢复正常。前后对比了 6 组提示词、3 种 beam 参数，最终 8.9 秒的两段录音，全部识别准确。&lt;/p&gt;

&lt;p&gt;下载模型也踩了坑：Python 下载器卡在 Hugging Face Xet 协议，进度一直卡在 0。换镜像 + curl 直连的方式，几分钟就成功拉取 483MB 的 small 模型。&lt;/p&gt;

&lt;p&gt;目前整套链路可以纯本地运行，不需要任何 API Key，代码已经推送到 GitHub 修复分支。&lt;/p&gt;

&lt;p&gt;这次项目最深的感悟：AI 写代码的速度很快，但它真正的价值在于辅助排查问题。它可以帮你把「模型不行」这种笼统模糊的猜想，拆解成一个个可以单独验证的原因。代码工具只是起点，学会把模糊的大问题拆清楚、问明白，才是整个项目里最有价值的部分。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Qsianuo/echonote" rel="noopener noreferrer"&gt;https://github.com/Qsianuo/echonote&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
