Skip to main content

摸鱼听书

写程序很多时候是重复工作,听音乐没细胞,那就听听书洗洗脑子吧

原因

阅读 app 听书很方便,但是我喜欢带着电脑上的头戴式耳机,所以想在电脑上听书

  • 需要结合 阅读 app
  • 可以免费用 微软晓晓听书
  • 阅读进度与手机同步

👍 现在也支持阅读本地 txt 文件,并自动记录阅读进度,中断以后继续朗读而不重头开始

使用方法

如果你在使用 python3 下面的很容易

环境配置

只需配置一次

  1. 这里下载并安装 heartale*.whl

    非 linux 系统可能需要设置播放程序,安装ffmpeg即可,看最后详细说明

  2. 测试是否修改成功

    终端输入

    echo "配置成功!" > /tmp/test.txt && heartale
    

    如果听到 "test,配置成功",说明没问题

朗读类型

默认 txt,设置中

"server": {
    "key": "txt",
...
}

本地 txt 文件

修改本地配置 ~/.config/bpy/config.json,其中的

"txt":{
    "path_file": "/tmp/test.txt"
}

中的 /tmp/test.txt 改为 你的书籍文件所在路径

阅读 app

  1. 打开 阅读app 的 web 服务

    手机与电脑同一个局域网,然后打开 阅读 app,设置中点开 Web服务,注意那个 ip 地址(: 后面是端口)

  2. 修改本地配置文件 ~/.config/bpy/config.json

    其中

    "ip": "192.168.1.6",
    "port": "1122"
    

    里面的 192.168.1.6 改成刚才你看到的 ip,端口 1122 一般不用改

  3. 修改如下内容中的 txt 为 legado

    "server": {
        "key": "txt",
    ...
    }
    

运行

终端运行

heartale

其他配置

配置文件路径

~/.config/bpy/config.json

完整配置文件,如果修改错误,可以这里找到原始文件,还原

{
  "version": 1,
  "server": {
    "key": "txt",
    "legado": {
      "ip": "192.168.1.6",
      "port": "1122"
    },
    "txt": {
      "path_file": "/tmp/test.txt"
    }
  },
  "tts": {
    "play": {
      "code": ["paplay"]
    },
    "download": {
      "key": "edge",
      "edge": {
        "voice": "zh-CN-XiaoxiaoNeural",
        "rate": "+30%"
      },
      "azure": {
        "key": "",
        "region": "japanwest",
        "language": "zh-CN",
        "voice": "zh-CN-XiaoxiaoNeural",
        "rate": "+30%"
      }
    }
  }
}

音频播放程序

默认针对 linux,使用 paplay,资源消耗极小

"tts": {
    "play": {
        "code": [
            "paplay"
        ]
    },
...
}

可以用 ffmpeg

"tts": {
    "play": {
        "code": ["ffplay", "-nodisp", "-autoexit", "-loglevel", "quiet"]
    },
    ...
}

也可以用 mpv

"tts": {
    "play": {
        "code": ["mpv"]
    },
    ...
}

TTS 转语音

  • tts-edge

    免费,不用设置密钥,但是音色少

    {
        # 支持的语言和音色:edge-tts --list-voices
        "voice": "zh-CN-XiaoxiaoNeural",
        # 语速
        "rate": "+30%"
    }
    

    推荐的音色:

    • XiaoxiaoNeural
  • azure

    学生有免费额度,必须申请并设置密钥 🔑,音色更多

    {
        # 密钥必须设置
        "key": "你自己的密钥xxxxx",
        # 区域与你申请密钥选择的区域有关
        "region": "你申请的区域比如:japanwest",
        # 看这里多语言、语音选择:https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/language-support?tabs=tts
        "language": "zh-CN",
        "voice": "zh-CN-XiaoxiaoNeural",
        # 语速
        "rate": "+30%"
    }
    

    推荐的音色:

    • XiaoxiaoNeural
    • XiaochenNeural
    • XiaochenMultilingualNeural
    • XiaoshuangNeural
    • XiaoyouNeural

贡献说明

请保证严格遵守 pylint (至少python3.8)

pylint $(git ls-files '*.py')

后续开发说明

  • 大概会做 ui
  • 大概会做朗读本地 pdf、txt(已支持) 等格式文本

Metadata

Release files for heartale 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for heartale 0.0.2
File Size Uploaded
heartale-0.0.2.tar.gz 19.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for heartale 0.0.2
File Interpreter ABI Platform
heartale-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 43.1 kB

Release files / heartale-0.0.2.tar.gz

Download URL heartale-0.0.2.tar.gz
Size 19.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c0999ff3c0f71084c3fcbd32dae85359afd912ec34fa3577f83825d7773b3da4
BLAKE2b-256 checksum
How to use checksums
7f5fed3dd4bf211d28c053739f2a65cba83c5939c34ca46ca82dd51182bb9af4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / heartale-0.0.2-py3-none-any.whl

Download URL heartale-0.0.2-py3-none-any.whl
Size 23.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a3b6ecf3d6fa9edcf73d9ae91dcc32b89b8d0da855c4ed93bff10698d175edaf
BLAKE2b-256 checksum
How to use checksums
9bd7fcdf8441d167289bcabf1818a4b65b96a5cefece3aced8b8cf638a72b3c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page