前两天研究了一下Moonshine Voice,当时拿了几个简单的音频文件测试了一下,感觉效果还可以,所以我就开始将其整合到了OddASR项目里。 但是在完成了整合后,再进行测试的时候发现一些比较严重的问题,所以,我又赶紧把我刚刚上传到pypi的OddASR给撤了,然后重新将主力模型改回到paraformer-zh-streaming和paraformer-zh。 当前OddAsr最新版本:v2.1.0,已恢复paraformer模型。 以下是在OddAsr自带的测试界面上分别跑paraformer-zh和moonshine base模型的效果 测试音频 具体的声音情况可以看这个视频: https://mp.weixin.qq.com/s/y4l-YtaUhayV9k9EDatCzw 注:这个视频中并未使用我的OddASR,效果差不是我OddAsr项目的锅。相反,下面我后来有将这个视频中的音频提取出来,专门作为OddAsr的一个测试集,每次测试不同的ASR模型的时候都会来测试一下这种场景。比如:这次的Moonshine base中文模型的测试。 测试效果 测试使用的音频就是上面那个视频里提取出来的音频。 paraformer模型效果 只想用一个字来形容:bravo! moonshine base模型效果 看上去转写出来的每个发音都是对的,但是。。。。这些个字呢。。。。好像就没几个是对的。 总结 唉,如果不是因为我这个用了超过十年的老笔记本CPU不太够用,我也完全不想去折腾一些其他的轻量级的ASR模型。
Monthly Archives: April 2026
前言 最近在折腾 OddTTS 项目,涉及语音合成后的处理。发现一个很香的轻量级变声方案——直接用 FFmpeg 就能搞定,不需要复杂的模型部署。 本文记录 FFmpeg 变声的核心方法、性能数据、以及在 OddTTS 项目中的实际应用场景。 先来听听效果 原始声音: 变声: 卡通声: 一、FFmpeg 变声原理解析 1.1 核心滤镜:asetrate + aresample FFmpeg 变声的核心在于两个滤镜的配合: 简单理解:asetrate 相当于把录音速度改了,音调随之变化;aresample 把时长”拉”回来。 1.2 保持原始时长:atempo 上面的方法会导致音频时长变化。如果要保持原时长,需要加 atempo: 原理:asetrate 改变音调会改变时长,atempo 反向调整速度,两者抵消。 二、常用变声效果库 直接套用,无需记公式: 效果 命令 适用场景 男变女 asetrate=44100*1.4,aresample=44100 客服配音 女变男 asetrate=44100*0.7,aresample=44100 角色切换 卡通音 asetrate=44100*2,atempo=0.5,aresample=44100 短视频特效 机器人声 afftfilt=real='hypot(re,im)*0.3':imag='0' 科幻配音 […]
前言 我从去年开始就一直在零零碎碎的自己搞一个小落同学的项目,我的目标是: 给自己做一个专属的虚拟人,把 TA 当作我自己的树洞。每天或者隔一段时间,把想说的话、想吐槽的事都告诉 TA。等哪天想咨询点什么事的时候,去问 TA,看看 TA 记住的东西多了之后,会不会比我自己还了解我。 然后今天看到一个Pika的项目,于是就去研究、学习了一下。 一、它是什么? 当大多数 AI 厂商还在忙着卷工具的时候,Pika 突然发了条推:算了,不卷了,我们来”造人”。 2026 年 2 月,Pika 出了个叫 AI Selves 的产品。官方说法是:一个由你”孕育,培养并放手”的 AI 分身,成为你的一个活生生的延伸。 说人话就是:不是那种只会答题的聊天机器人,而是一个有记忆、会学你说话风格、能同时在好几个平台帮你跑业务的数字分身。 消息一出,科技媒体全在转。腾讯、网易、搜狐的标题都差不多——”不卷视频卷造人”。国外更热闹,评价两极分化,有人说是 AI 的下一个未来,也有人直接管这叫”AI 奴隶制”。 我看到的时候愣了一秒:这不就是我正在搞的”小落同学”吗? 今天来扒一扒这东西,顺便对比一下我的项目。 二、怎么用? 第一步:加入候补 现在还没全量开放,得先去官网排队: 官网入口:https://pika.me 支持 Google 账号和邮箱登录。邮箱注册可能要收个验证码,也可能直接进候补名单等通知。 第二步:设置你的分身 点 “Birth Your AI Self” 开始创建。 这一步决定你的分身有多像你: 官方原话:”一切由你决定。” 第三步:定外观 三个选项: […]
一、先看效果 你有一本 10 万字的技术电子书,想把它变成有声书。不是那种机器感很强的合成音,而是自然流畅的人声。 把文本拖进去,点一下开始,然后去喝杯咖啡。回来的时候,一本完整的有声书已经躺在你的文件夹里了。 这不是科幻,这是我真做出来的功能。 实测效果: 二、什么是 OddTTS? OddTTS 是我之前开源的语音合成 API 封装项目。 两个特点:多引擎、低成本。 多引擎:支持 Kokoro、MeloTTS、Edge TTS、OpenAI TTS 统一调用。 低成本:Kokoro 可以在十年前的老笔记本上跑,纯 CPU 推理,一次部署无限使用。 以前做有声书,要么买云端 API(一本书几十块),要么自己部署大模型(需要显卡)。 现在一台几百块的 CPU 机器就能跑,还免费。 三、用 oh-my-openagent 实现的全流程 这一节讲讲我怎么做这个项目。 3.1 第一步:需求分析 用的 Agent:Metis(预规划分析) 直接跟 oh-my-openagent 说”我想做一个有声书功能”,它会调用 Metis 帮你分析: Metis 分析的结果: 3.2 第二步:制定计划 用的 Agent:Prometheus(任务规划) Prometheus 会制定详细的实现计划: Prometheus […]
上个星期分别测试了一下两个轻量级的语音合成模型,分别是: 其中Kokoro以更低的CPU要求,可完美达成我的小落同学项目的实时语音交互的需求,因此现在我已经将我的小落同学的主打语音合成在OddTTS上切到了kokoro v1.1。 这里要特别感谢一下一位大佬:路遥。因为前面我以为Kokoro不支持中英混合,所以一开始是准备用MeloTTS的(对CPU要求相对较高),在他的提示下才发现原来Kokoro也可以通过将创建英文和中文两个pipeline来实现中英混合。 以下是一些相关的介绍。 一. 安装 OddTTS 二. 启动 OddTTS 在命令行中输入下面的命令即可启动: 启动后,浏览器打开地址:http://127.0.0.1:9001 启动后,浏览器打开地址:http://your_ip_addr:8080 注: Linux/MacOS: 三. 使用 OddTTS OddTTS支持自定义协议的API,也支持OpenAI兼容接口的API,一般用户建议用OpenAI兼容接口来使用,三行代码搞定语音合成。 其他的API接口可以看OddTTS项目的API接口说明。 四、一些测试数据 1. 合成的语音的效果 合成的语音的效果可以看我之前的测试文章: 正常语速wav格式正常语速mp3格式3倍语速mp3格式 2. 合成的速度 这个是在我的这台十年前的老笔记本上跑的数据: 注:这个3.5秒可认为是首字时延,后面由于合成的速度比播放的速度要快得多的多,所以在长文(需切句子)合成的情况下,实际体验的时延可以做到趋近到500ms以内。 具体如下图所示。 3. 切换不同的TTS模型/引擎 OddTTS有集成了多种不同的TTS模型,包括: OddTTS提供了一个简单的管理、测试界面,在启动了OddTTS后可以在浏览器里打开oddtts,然后动态切换TTS模型/引擎。 五、注意事项 模型下载问题 Kokoro的模型放在huggingface.co上,在国内访问存在问题,解决方案: set HF_ENDPOINT=https://hf-mirror.comset HF_HOME=F:/ai_share/models export HF_ENDPOINT=https://hf-mirror.comexport HF_HOME=/opt/ai_share/models 输出wav正常,输出MP3报错 OddTTS的依赖里有加了ffmpeg,但是如果你机器上原先就有安装过ffmpeg有可能会报错,若是报错了,请再手动安装一下ffmpeg即可。 服务启动失败 语音合成失败 如何切换TTS引擎 输出格式 […]