kokoro-cli-文本转语音命令行工具

你有没有想过,要是电脑里的文字能像人一样说话该多好?想象一下,当你在写代码的时候,错误信息自己读出来告诉你;当你在写小说时,角色台词自动播放出来让你感受氛围;甚至当你在思考时,可以把想法”说”出来听听。..

今天,我就来给大家介绍一个我做的小玩意儿——Kokoro-CLI,它可以让你的文字拥有声音,而且是在你最爱的命令行里!

一切源于一个偶然的发现

故事要从我在 HuggingFace 上发现的一个宝藏模型说起——Kokoro-TTS。这是一个只有 8200 万参数的轻量级模型,但它生成的语音质量却出人意料地好。

当我第一次听到它合成的声音时,我就在想:”这么棒的模型,要是能在命令行里直接用就好了!” 但这还不是我的终极目标,我真正的兴趣在于——我想学习怎么做出像 mycli 那样酷炫的终端交互界面!

什么是 Kokoro-CLI?

简单来说,Kokoro-CLI 就是一个运行在黑底白字命令行里的”朗读员”。你给它一段文字,它就用接近真人的声音读出来。更重要的是,它不像其他那些死板的工具,而是拥有一个漂亮的交互界面,就像你在玩 RPG 游戏时的对话框一样友好。

名字”Kokoro”来自日语,意思是”心”。我给它起这个名字,是希望这些冷冰冰的文字能带上一点”心”意,能传达出文字背后的情感。

为什么要做命令行版本?

也许你会问,现在图形界面这么发达,为什么还要回到命令行?让我告诉你几个理由:

1. 黑客般的快感

在命令行里工作有种独特的魅力,就像电影里的黑客一样酷。你可以用几行命令就完成别人需要点几十下鼠标才能完成的事。

2. 批量处理神器

如果你有一百篇文档要转成语音,图形界面可能需要你点一百次”转换”按钮。而用命令行,一个循环就能搞定:

1
2
3
for file in *.txt; do
kokoro-cli --input "$file" --output "${file%.txt}.wav"
done

3. 服务器上的无声英雄

很多时候我们的程序跑在没有屏幕的服务器上,这时候命令行工具就是唯一的选择。

它到底有多酷?

像游戏一样的交互体验

还记得 mycli 吗?那个让 MySQL 命令行变得超级好用的工具?Kokoro-CLI 就是这种风格!

当你运行 ./kc 后,你会看到一个漂亮且功能强大的界面:

  • 按 Tab 键可以自动补全命令
  • 方向键可以查看之前输入的内容
  • 错误信息会用不同颜色显示,一眼就能看懂

随心所欲的声音控制

你可以随时切换不同的声音,就像换不同的配音演员:

1
2
3
.load <repo_id>  # 换个声音试试
.set speed 1.2 # 说得快一点
.set pitch 1.1 # 声音高一点

即时保存你的作品

觉得合成的效果不错?一键保存:

1
.save my_awesome_voice.wav

安装使用超简单

  1. 把代码搞到本地:

    1
    2
    git clone https://github.com/bubao/kokoro-cli.git
    cd kokoro-cli
  2. 装上需要的”零件”:

    1
    2
    pip install -r requirements.txt
    pip install kokoro misaki[zh] misaki[en]
  3. 开始玩耍:

    1
    ./kc

然后你就可以在交互模式里随便输入文字让它读出来了!

可以用来做什么好玩的事?

给你的代码加上”语音注释”

写完一段复杂的代码,让程序把它读出来,听听是不是逻辑清晰,这样调试起来更容易。

制作个性化的”语音便签”

不想看文字提醒?那就让它读给你听吧!

学习外语的好帮手

输入外语句子,听听标准发音,比对着书本练习更有效。

写小说时的角色配音

写对话时可以直接听一听,看看是否符合你想象中角色的声音。

我为什么要开发它?

说实话,这个项目最大的意义对我而言是学习。通过它,我学会了如何用 Python 创建现代化的终端用户界面。我用了 prompt_toolkit 这样的专业库,实现了:

  • 漂亮的命令行界面
  • 智能的命令补全
  • 多行文本编辑
  • 键盘快捷操作

这对我来说是一次很棒的学习经历,也希望能给其他想学习 TUI 开发的朋友一些参考。

结语

Kokoro-CLI 体现了我对”简洁但强大”理念的追求。虽然它只是一个小小的命令行工具,但却能把文字变成富有感情的声音。

如果你对这个项目感兴趣,欢迎来 GitHub 看看,试用一下,或者给我提建议。让我们一起探索让文字发声的无限可能!

未来我还想给它添加更多有趣的功能,比如支持更多语言、加入情感语调控制等等。有什么好想法的话,也欢迎告诉我!

参考资料


kokoro-cli-文本转语音命令行工具
https://bubao.github.io/posts/d26a4cee.html
作者
一念
发布于
2025年3月15日
许可协议