




















现在纵观app商店已经有很多的听书类软件了,但局限就是可以选择的书籍都是指定的,或者要等主播更新平台上架。对于有时想回顾一些经典读物,比如最近上映电影《沙丘2》后想听听原著就有些犯难了。本文提供一种可以实现高度自由听书的方式,不涉及书籍版权及来源。
提醒:本人使用的是Mac的系统,身边没有Win系统,所以教程均是在MacOS上举例。
为了方便初步接触的朋友可以上手,接下来会逐步分享。

git clone https://github.com/p0n1/epub_to_audiobook.git
python3 -m venv venvsource venv/bin/activatepip install -r requirements.txt至此我们的本地安装完成,接下来就是使用的环节。

这个程序可以调用3种方式进行语音转换:OpenAI、AZure、Edge。前两种需要使用API,并且是需要付费的,所以我们此处讨论的第三种:Edge。
本质上调用了Edge浏览器的语音朗读功能,所有它支持的音色都可以调用,关键是:免费!稳定!
接下来我们要举例的前提是我们已经在<examples>文件夹种放入了《银河系搭车客指南》这本书,然后已经创建好对应的文件夹,当然文件夹的名称随意,只是接下来命令中做好对应就好即可。
python3 main.py /Users/jeff/epub_to_audiobook/examples/银河系搭车客指南5部曲.epub /Users/jeff/epub_to_audiobook/银河系搭车客指南 --tts edge --language zh-CN --voice_name "zh-CN-XiaoxiaoNeural" --chapter_start 1 --chapter_end 203 --break_duration 1000对于以上命令解释下:
| /Users/jeff/epub_to_audiobook/examples/银河系搭车客指南5部曲.epub | 读取的书籍 |
| /Users/jeff/epub_to_audiobook/银河系搭车客指南 | 输出的目录 |
| --voice_name "zh-CN-XiaoxiaoNeural" | 调用的音色 |
| --chapter_start 1 --chapter_end 203 | 开始到结束的章节 |
| --break_duration 1000 | 段落之间间隔多少毫秒 |


async def save(
self,
audio_fname: Union[str, bytes],
metadata_fname: Optional[Union[str, bytes]] = None,
) -> None:
# Save the audio and metadata to the specified files.
await self.chunkify()
await super().save(audio_fname, metadata_fname)
audio: AudioSegment = AudioSegment.from_file(audio_fname)
audio.export(audio_fname)此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。