用于将文本转换为语音的命令行实用程序。
blogger的Python项目详细描述
博客
blogger
是最初为将文章、文本或html转换为语音而创建的命令行实用程序。这对于那些喜欢为用户提供音频选项的博客来说尤其有用。
这是两个不同的文本到语音工具的包装器,旨在成为blogger
cli的任何用户的简单界面。
blogger
是buster technologies的一个开源项目,buster technologies是Buster ERP的创建者。我们公司在Simpler Software Blog上发布了技术和业务内容,需要一个简单的工具将文章转换为音频文件。
安装
该软件包可以通过pypi获得,可以使用pip
或pipenv
安装:
$ pip install -U blogger
最简单的例子
blogger
cli具有将文本转换为语音的默认选项,只需很少的输入。下面是一个接收文本字符串并输出音频文件的示例:
$ blogger audio "This is an awesome article" -o article.mp3
默认的basic
文本到语音转换器完成了这项工作,但不是世界上最好的自动语音。谷歌已经构建了一个更先进的文本到语音的云api,听起来更接近真实的语音。为此,可以使用gtts
转换器并传入API token from Google which can be generated in the api console。
$ blogger audio \ --converter=gtts \ --token="$MYAPIKEY"\"This is another awesome article"\ -o article.mp3
选项
但是,在默认配置之外,您可以根据需要提供一些不同的输入。
$ blogger Usage: blogger [OPTIONS] COMMAND [ARGS]... Blogger CLI Options: --help Show this message and exit. Commands: audio Generates an audio file from text, files, or urls. converters Details for text to speech converters. providers Details for content providers. voices Details for voice options.
$ blogger audio --help Usage: blogger audio [OPTIONS][INLINE_TEXT] Generates an audio file from text, files, or urls. All input is assumed to be in either plain text or HTML format. Any other formats could have potential issues during processing. Options: --text TEXT The text to convert to speech. --file TEXT The file path to the file containing text to convert to speech. --url TEXT Parse an article from a URL. -p, --provider TEXT When parsing from a URL, the provider defines the content provider (Ex. Medium, Ghost, etc.) --url-title-selector TEXT For the manual provider, this specifies the tag and class or id in the DOM that contains the title. --url-content-selector TEXT For the manual provider, this specifies the tag and class or id in the DOM that contains the content. -t, --token TEXT Google API token used for the gtts provider. -vi, --voice TEXT The voice option. -vp, --pitch TEXT The pitch of the voice on a scale of -20.0 to 20.0. -vr, --rate TEXT The rate of speech on a scale of 0.0 to 4.0. -c, --converter TEXT The type of text to speech converter to use. Defaults to basic. -o, --output TEXT The output path for the audio file. If not specified, output will go to STDOUT. --full-preview / --short-preview Preview the entire article before converting. -v, --verbose / --no-verbose Provides more debugging information. -y, --yes / --no Assumes yes to prompts. --help Show this message and exit.
转换器
有两种类型的文本到音频转换器内置在blogger
中。
$ blogger converters -l basic A simple text to speech converter. (default) gtts The Google cloud-based text to speech converter API.
基本
默认情况下使用的basic
转换器使用一个简单的google翻译实用程序将文本转换为语音。正如它所说,这是一个非常基本的选择,并输出一个像样的音频文件。
gtts(谷歌文本语音转换)
google提供的cloud text to speech API比他们以前的文本到语音软件工作得更好。您必须有一个API token才能使用此转换器。
$ blogger audio \ --converter=gtts \ --token="$MYAPIKEY"\ --file=/tmp/input.txt \ -o article.mp3
如果使用gtts
转换器,它还带有一些命令行选项。唯一需要的选项是api令牌:
-t, --token TEXT Google API token used for the gtts provider. -vi, --voice TEXT The voice option. -vp, --pitch TEXT The pitch of the voice on a scale of -20.0 to 20.0. -vr, --rate TEXT The rate of speech on a scale of 0.0 to 4.0.
阅读how to generate your API token here上的说明。
输入
文本可以通过多种方式传递到blogger
。一次只能在一个命令中使用以下方法中的一个。冲突将导致使用单个输入方法,而忽略其他输入。
内联
如上面的简单示例所示,您可以将文本直接传递到cli:
$ blogger audio "Convert this text please" -o article.mp3 $ blogger audio --text="Convert this text please" -o article.mp3 $ blogger audio --text="Convert this text please" --output=/my_audio/article.mp3
文件
另一个选项是读取文件:
$ blogger audio --file=./article.txt -o article.mp3
网址
最后,你可以阅读网上发布的文章,删除相关内容,并生成一个音频文件。这是理想的文章已经编写和出版,需要转换后。
当读取一个url时,blogger
需要一些帮助来确定要查看的内容。为此,我们使用提供者。提供程序表示内容提供程序(如medium、ghost、wordpress等),请参阅Providers部分,了解有关自动支持哪些博客格式的详细信息。
$ blogger audio \ --url=https://bustererp.com/blog/whats-in-python-3-8 \ --provider=ghost \ -o article.mp3
$ blogger audio \ --url=https://medium.com/@reedrehg/10-ways-to-prevent-technical-debt-33dd17075fba \ --provider=medium \ -o article.mp3
如果一个相关的提供者不存在,那么你可以通过选择器来告诉我们到底要找什么。通常blogger
总是先查找标题,然后查找内容体。
$ blogger audio \ --url=https://myblog.com/myarticle \ --url-title-selector="h1.blog-title"\ --url-content-selector="div#blog-content"\ -o article.mp3
文章预览
每个audio
命令都将向您显示所处理内容的预览,以确保您提取的信息正确无误。使用--full-preview
标志预览整个内容,而不仅仅是部分内容。
$ blogger audio --url=https://myblog.com/myarticle --provider=ghost -o article.mp3 Converting audio using the gtts converter: Text Preview: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent turpis ante, egestas id diam sed, convallis ultrices erat. Praesent ut nibh non quam pellentesque finibus. Maecenas convallis, metus a sollicitudin porttitor, dolor leo facilisis erat, sed condimentum nisl quam in nunc. Quisque sed mattis ligula, sed finibus nunc. Proin et nisl ut leo tempor dignissim in sed mauris. Duis porta lacinia sapien sit amet consequat. Quisque eget lectus non lorem vehicula porta eu a lacus. Etiam fermentum, purus at malesuada tristique, lorem elit hendrerit libero, a molestie felis felis a nibh. Quisqu... Processing... Successfully outputted to /tmp/audio.mp3
提供者
检查提供程序列表以查看系统支持的当前可用博客提供程序。只有与--url
选项组合时,--provider
标志才相关。
$ blogger providers -l manual Uses user provided input to determine how to parse content (default) ghost Handles parsing content for Ghost hosted blogs (https://ghost.io) medium Handles parsing content written on Medium (https://medium.com)
声音
检查语音列表以查看当前可用的语音。这只与gtts
转换器兼容:
$ blogger voices -l US-A United States english accent option A US-B United States english accent option B US-C United States english accent option C US-D United States english accent option D US-E United States english accent option E US-F United States english accent option F AU-A Australian english accent option A AU-B Australian english accent option B AU-C Australian english accent option C AU-D Australian english accent option D GB-A British english accent option A GB-B British english accent option B GB-C British english accent option C GB-D British english accent option D IN-A Indian english accent option A IN-B Indian english accent option Bextremely IN-C Indian english accent option C
$ blogger audio \ --converter=gtts \ --token="$MYAPIKEY"\ --file=/tmp/input.txt \ --voice="US-C"\ --yes
参与blogger
blogger
是开源软件可根据MIT license条款自由分配。源代码托管在GitHub。
请在GitHub issue tracker中以请求拉取、错误报告或一般性评论的形式进行贡献。
blogger
最初由Holden Rehg创建,开发由Buster Technologies赞助。
巴斯特技术有限责任公司