先交代一下背景。我之前在字节做前端,离开之后开始独立开发。优秀同传是我第一款从产品、前端、后端和支付一路自己推进的产品。官网是 https://interpreter.youshowedu.com ,定位很明确:把现场语音实时变成原文、译文和可回看的记录,服务课堂、讲座、office hour 、会议和留学生活里的临时沟通。
产品的主功能是实时同传。浏览器可以选择麦克风,也可以选择系统音频。前端用 RecordRTC 采集声音,每 250ms 切一段,通过 WebSocket 发给后端。后端回传流式识别结果,前端按时间戳显示英文原文和中文译文。临时结果和确认句子分开处理,页面不会跟着每次识别反复跳动。
长时间同传会遇到权限、断线、暂停、自动滚动和浏览器息屏等问题。我把音频源、WebSocket 、录音器和播放队列拆开管理,翻译结果可以自动朗读,同传暂停后能继续,结束时也会正确关闭音轨和连接。单次同传限制在 2 小时,记录按时间戳增量保存到 MongoDB 。用户下次回来还能查看、重命名和删除历史记录。
同传内容可以交给 Deepseek 总结,输出成思维导图,也能基于当前这场同传直接提问。上下文限定在当前记录里,回答范围会收窄,用户不需要重新粘贴整段转写。首页还支持上传 WAV 、MP3 ,转录后生成中文翻译和双语 SRT ,方便课后整理、剪视频或做笔记。
围绕同一个使用场景,我又做了 SRT/TXT/VTT 转换、双语字幕合并与拆分、时间轴调整、阅读速度检查,以及课堂术语和留学生活话术生成器。每个工具都对应一个具体动作,打开页面就能直接使用。产品也提供多语言翻译页面,覆盖常用语言、少数语言和虚构语言。
技术栈没有刻意堆复杂度。主站是 Next.js 14 、React 、TypeScript ,界面用了 Tailwind 、Ant Design 和 Radix 组件。Clerk 处理登录,MongoDB 存用户与记录,支付接了 Stripe 等渠道,语音和翻译通过后端 API 接入。API key 放在服务端,前端拿临时凭证或调用自己的接口。独立开发时,服务边界、错误处理和数据记录比再加一个花哨页面实在。
我现在还在持续改它。多人同时说话、教室回声、专业术语和网络波动,都会影响识别与翻译;移动端浏览器的麦克风权限也比桌面端麻烦。产品页面能把错误显示得很漂亮,现场声音不干净时仍然会出错,所以我会继续盯延迟、断线恢复、记录完整性和真实场景反馈。
独立开发的第一款产品没有想象中浪漫。写代码只占一部分时间,支付、客服、内容、SEO 、埋点和退款同样需要自己处理。但我也第一次完整经历了从一个页面到可收费产品的过程。优秀同传现在还不完美,不过它已经能在课堂、会议和临时沟通里完成一件清楚的事情:把用户没听清的现场内容,及时变成能继续往下做的文字。