lastversion

lastversion

命令行工具快速获取项目最新稳定版本

lastversion是一款命令行工具,可从GitHub、GitLab、PyPI等多个平台获取项目的最新稳定版本信息。它支持自动下载安装、版本比较和资源过滤,适用于自动化构建和部署流程。该工具能智能处理不规范的版本标记,提供准确版本信息,简化软件版本管理工作。

lastversionGitHub版本管理命令行工具软件发布Github开源项目

lastversion

Python 包 PyPI 版本 GitHub 发布 文档状态 Codacy 徽章 Codacy 徽章 给我买杯咖啡

在终端中使用 lastversion

English | 简体中文

一个小型命令行工具,帮助回答一个简单的问题:

一个项目的最新稳定版本是什么?

...并可选择下载/安装它。

lastversion 允许从以下支持的位置查找格式良好的最新发布版本:

  • GitHub
  • GitLab
  • BitBucket
  • PyPI
  • Mercurial
  • SourceForge
  • Wikipedia
  • WordPress 插件目录
  • 通过 RSS/ATOM 订阅发布版本的任意软件网站

为什么你需要 lastversion

总的来说,许多项目作者在查找最新版本时会遇到以下复杂情况:

  • 创建一个明显是发布候选版(标签中包含 rc)的正式发布,但忘记将其标记为预发布

  • 在发布标签中放入无关文本,例如 release-1.2.3name-1.2.3-2019 等花哨的内容

  • 在发布标签中添加或不添加 v 前缀。今天有,明天没有。我自己在这方面也不一致 :)

  • 从一种版本格式切换到另一种,例如从 v20150121v2.0.1

人类的行为并不总是一致的。

为了处理所有这些混乱,并在命令行上简单地获取格式良好的最新稳定版本(或下载 URL!),你可以使用 lastversion

它的主要用途是用于构建系统 - 当你想要自动监视特定项目的发布版本以自动构建包时。 或者在自动化脚本中需要获取最新版本时。

就像我所做的那样

lastversion 使用一点人工智能来检测发布者是否错误地将测试版标记为稳定版。 它包含了清理版本信息中人为不一致性的逻辑。

概要

lastversion apache/incubator-pagespeed-ngx #> 1.13.35.2 lastversion download apache/incubator-pagespeed-ngx #> 已下载 incubator-pagespeed-ngx-v1.13.35.2-stable.tar.gz lastversion download apache/incubator-pagespeed-ngx -o pagespeed.tar.gz #> 使用选定的文件名下载 lastversion https://transmissionbt.com/ #> 3.0 lastversion format "mysqld Ver 5.6.51-91.0 for Linux" #> 5.6.51

基于 RPM 系统的安装

支持:

  • CentOS/RHEL 7、8、9,包括 AlmaLinux 和 Rocky Linux 等克隆版本
  • Amazon Linux 2
  • Fedora Linux
sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm sudo yum -y install lastversion

其他系统的安装

使用 pip 安装最简单:

pip install lastversion

使用方法

通常,你只需将仓库 URL(或仓库所有者/名称)作为唯一参数传递给它,例如:

lastversion https://github.com/gperftools/gperftools

等效的调用方式(输出相同)是:

lastversion gperftools/gperftools

如果你懒得复制粘贴项目的 URL,你可以直接输入其名称作为参数,这将使用仓库搜索 API(速度较慢)。 帮助回答 Linux 的最新版本是什么:

lastversion linux

或者想知道 WordPress 的最新版本是什么?

lastversion wordpress

主参数的特殊值 self 将查找 lastversion 自身的最新发布版本。

有关控制输出或行为的更多选项,请查看 --help 输出:

用法: lastversion [-h] [--pre] [--sem {major,minor,patch,any}] [-v] [-d [文件名]] [--format {version,assets,source,json,tag}] [--assets] [--source] [-gt 版本] [-b 主版本] [--only 正则表达式] [--exclude 正则表达式] [--filter 正则表达式] [--having-asset [资源]] [-su] [--even] [--at {github,gitlab,bitbucket,pip,hg,sf,website-feed,local,helm_chart,wiki,system,wp,gitea}] [-y] [--version] [{get,download,extract,unzip,test,format,install,update-spec}] <仓库 URL 或字符串> 查找最新的软件发布版本。 位置参数: {get,download,extract,unzip,test,format,install,update-spec} 要运行的操作。默认:get <仓库 URL 或字符串> 格式为 owner/name 的仓库,或属于该仓库的任何 URL,或版本字符串 可选参数: -h, --help 显示此帮助信息并退出 --pre 在潜在版本中包含预发布版本 --sem {major,minor,patch,any} 用于打印或比较的语义版本级别基准 -v, --verbose 显示底层执行的操作,-vv 增加详细程度级别 -d [文件名], -o [文件名], --download [文件名], --output [文件名] 使用自定义文件名下载 --format {version,assets,source,json,tag} 输出格式 --assets 返回最新发布版本的资源下载 URL --source 仅返回最新发布版本的源代码 URL -gt 版本, --newer-than 版本 仅当最新版本比给定版本更新时输出 -b 主版本, --major 主版本, --branch 主版本 仅考虑特定主版本的发布,例如 2.1.x --only 正则表达式 仅考虑包含此文本的发布。对于包含多个项目的仓库很有用 --exclude 正则表达式 仅考虑不包含此文本的发布。对于包含多个项目的仓库很有用 --even 仅将偶数版本如 1.[2].x 或 3.[6].x 视为稳定版本 --filter 正则表达式 使用正则表达式过滤 --assets 结果 --having-asset [资源] 仅考虑包含此资源的发布 -su, --shorter-urls 生成稍短的 URL --at {github,gitlab,bitbucket,pip,hg,sf,website-feed,local,helm_chart,wiki,system,wp,gitea} 如果仓库参数是一个词,指定在哪里查找项目。默认通过内部查找或 GitHub 搜索 -y, --assumeyes 自动对所有问题回答 yes --version 显示程序的版本号并退出

--format 将影响显示最新发布版本的信息类型和格式,例如:

  • version 是默认值。简单输出最新发布版本的格式良好的版本号

  • assets 将输出换行分隔的资源 URL 列表(如果有),否则链接到源代码存档

  • source 将输出源代码存档链接,无论发布版本是否添加了一些资源

  • json 可被外部 Python 模块使用或用于调试,是满足最新版本检查的 API 调用的字典/JSON 输出

  • tag 将仅输出最新发布版本的标签名称,这在您自己构造下载 URL 或需要标签名称时很有用

资源是一个可下载的文件,通常代表可执行文件或"即可启动"的项目。它是您在正式发布下看到的文件,通常是针对特定平台编译的程序。

源文件是发布版本源代码的 tar 压缩包或 zip 压缩包。

您可以通过传递相应的 --format 标志来显示最新发布版本的资源或源 URL,例如 --format source

您也可以简单地传递 --source 而不是 --format source,以及 --assets 而不是 --format assets,如:

lastversion --assets mautic/mautic #> https://github.com/mautic/mautic/archive/2.15.1/mautic-2.15.1.tar.gz

默认情况下,lastversion 会过滤 --assets 的输出以适应特定操作系统。在 Linux 上谁需要 .exe 呢?

要覆盖此行为,您可以使用 --filter,它的参数是一个正则表达式。要禁用操作系统过滤,使用 --filter .,这将匹配所有内容。

您自然可以在使用 grep 的地方使用 --filter,例如 lastversion --assets --filter win 仓库

用例: 处理多项目仓库

有时单个仓库实际上托管了许多组件,并创建了对每个组件都有单独版本线的发布版本。

为帮助 lastversion 获取此类仓库的组件版本,使用 --only--exclude 开关。 它们使 lastversion 只查看那些带有(或不带有)指定字符串标记的发布版本。

示例:

lastversion --only chart https://github.com/lastversion-test-repos/autoscaler

上面将报告 9.16.0

lastversion --exclude chart https://github.com/lastversion-test-repos/autoscaler

上面将报告非图表的最新版本,1.23.0

对于复杂情况,您可以为两个参数传入正则表达式,方法是在它们前面加上波浪号,如下所示:

lastversion --only '~-po.-' https://github.com/lastversion-test-repos/autoscaler

上面将仅考虑标记为 -pod-、-pov- 等的发布版本。

用例: 如何下载某个软件的最新版本

您还可以使用 lastversion 下载最新发布版本的资源/源代码。

下载最新的 Mautic 源代码发布版本:

lastversion download mautic/mautic

自定义下载的文件名(仅适用于源代码,这是默认设置):

lastversion download mautic/mautic -o mautic.tar.gz

你也可以使用extract命令直接获取并解压最新版本的文件到当前工作目录:

lastversion extract wordpress

你可以让lastversion输出源码/资源URL,并用其他工具下载:

wget $(lastversion --assets mautic/mautic)

这将下载最新稳定版Mautic的所有资源,包括两个zip文件。

工作原理:lastversion输出所有资源URL,每个一行,而wget聪明地下载每个URL。很神奇 :)

对于没有添加资源的发布版本,它将下载源代码压缩包。

要始终下载源代码,请改用--source

wget $(lastversion --source mautic/mautic)

用例:使用指定文件名下载特定资源

如果你想下载最新版本发布的特定资源,并以所需名称保存下载的文件,可以结合使用-d选项(用于下载名称)和--filter来指定资源过滤器。

例如:

lastversion --pre Aircoookie/WLED --format assets --filter ESP32.bin -d ESP32.bin

用例:获取最新版本(包括测试版)

我们认为最新发布版是稳定的/未标记为测试版的。如果你认为不是这样,那么传递--pre开关,如果仓库的最新版本是预发布版,你将获得其版本号:

lastversion --pre mautic/mautic #> 2.15.2b0

用例:获取特定分支的版本

对于某些项目,可能同时有多个稳定版本在不同分支上可用。一个明显的例子是PHP。你可以使用--major标志来指定要匹配的主要版本号,以帮助你找到某个分支的最新稳定版本,像这样:

lastversion php/php-src --major 7.2

这将给你当前PHP 7.2.x的稳定版本,例如7.2.28

分支选择器很容易在分号后指定,结合搜索API,相同的简洁调用方式为:

lastversion php:7.2

分支选择器也可以用于获取特定版本的详细信息,例如:

lastversion php:7.2.33 --assets

用例:具有特定资源的发布版本

有时项目会正式发布,但上传资源的时间会延迟。而你可能总是对特定类型的资源感兴趣。 那么你可以让lastversion只将具有特定资源名称的最新发布版本视为最新版本。 使用--having-asset开关很容易实现:

lastversion telegramdesktop/tdesktop --having-asset "Linux 64 bit: Binary"

--having-asset的参数值可以是正则表达式。为此,在前面加上波浪线。例如,要获取带有macOS安装程序的发布版本:

lastversion telegramdesktop/tdesktop --having-asset "~\.dmg$"

你也可以完全不给--having-asset传递值。这样lastversion只会返回添加了任何资源的最新发布版本:

lastversion telegramdesktop/tdesktop --having-asset

用例:获取操作系统版本

操作系统通常不是通过GitHub发布或类似方式进行版本控制的。 要获取操作系统的最新稳定版本,除了从其网站或其他公告渠道获取,这是一个挑战。

lastversion对此采取的一个简单折衷方法是硬编码知名操作系统名称,并在后台使用维基百科:

lastversion rocky #> 8.4 lastversion windows #> 10.0.19043.1081 lastversion ios #> 14.6

你可以提供一个完整的维基百科页面URL,用于获取操作系统/软件项目的版本信息,例如:

lastversion https://en.wikipedia.org/wiki/Rocky_Linux #> 8.4

特殊用例:NGINX稳定版与主线分支版本

lastversion https://nginx.org --major stable #> 1.16.1 lastversion https://nginx.org --major mainline #> 1.17.9

在后台,这会检查hg.nginx.org,这是一个Mercurial网络仓库。 这些仓库也是支持的,例如:

lastversion https://hg.example.com/project/

Mercurial仓库现在相对较少见,但主要是为NGINX添加了支持。

特殊用例:查找PyPI项目的发布版本

大多数Python库/应用托管在PyPI上。要检查PyPI上项目的版本,你可以使用:

lastversion https://pypi.org/project/requests/

如果你更喜欢使用较短的仓库名称,请确保使用--at pip开关,像这样:

lastversion requests --at pip

安装RPM资源

如果一个项目提供.rpm资源,并且你的系统有yumdnf,你可以直接安装项目的RPM,像这样:

sudo lastversion install mailspring

这会找到MailSpring,获取其最新发布信息,过滤.rpm资源并将其传递给yum / dnf

你甚至可以设置一个自动更新的cron任务,确保你使用的是最新版本的软件包,像这样:

@daily /usr/bin/lastversion install mailspring -y 2>/dev/null

如果Mailspring GitHub仓库发布了带有新.rpm的版本,它将自动安装,确保你运行的是最新最好的Mailspring版本。

你甚至会在更新后收到电子邮件提醒(标准cron功能)。

不用说,这种RPM包通常不了解所有可能缺失的依赖项。因此,只有在基本yum仓库中缺少软件时,才使用lastversion install ...

安装AppImage

如果项目提供了.AppImage,你可以直接使用lastversion安装它们。 AppImage是一个自包含的Linux可执行文件。lastversion为你做的是获取 最新发布的AppImage,将其安装在~/Applications/<app>下并使其可执行。 只需运行:

lastversion install fluent-reader

测试版本解析器

test命令可用于故障排除或简单地格式化带版本的字符串:

lastversion test 'blah-1.2.3-devel' # > 1.2.3.dev0 lastversion test '1.2.x' # > False (没有明确的版本) lastversion test '1.2.3-rc1' # > 1.2.3rc1

bash中使用lastversion脚本

语义化版本支持

有时你只想检查特定语义化版本级别的更新。 一个项目是否有新的次要版本?一个项目是否有新的主要版本? 要只打印必要的语义化版本基础,使用--sem选项。

可接受的值有majorminorpatch

lastversion wordpress --sem major #> 5
lastversion wordpress --sem minor #> 5.9
lastversion wordpress --sem patch #> 5.9.3

--sem patch值可用于将给定结果规范化为语义化版本, 如果一个项目不严格遵循语义化规则。例如,有时WordPress会发布一个x.y 版本,而它隐含的是x.y.0。所以假设WordPress发布了"5.10":

lastversion wordpress --sem patch #> 5.10.0

格式化任意版本字符串

假设你运行了mysqld --version并得到这个输出:

mysqld Ver 5.6.51-91.0 for Linux on x86_64 (Percona Server (GPL), Release 91.0, Revision b59139e)

如果你只想提取MySQL服务器的主要版本,这在bash中很难解析。

lastversion可以轻松解析并根据所需的语义化版本级别提供所需信息:

lastversion --sem major format "mysqld Ver 5.6.51-91.0 for Linux on x86_64 (Percona Server (GPL) , Release 91.0, Revision b59139e)" #> 5

比较任意版本

在命令行上使用lastversion可以轻松比较版本。 比较两个版本,命令将输出最高版本:

lastversion 1.2.3 -gt 1.2.4 #> 1.2.4

查看下面的退出代码,以确定第一个参数是否是更高版本,或者第二个是否更高。

前面描述的--sem选项将影响打印的内容和比较的语义化版本基础级别,从而影响结果。

检查新发布

当你在构建某个上游包,并且之前已经做过,有一个已知的"上次构建"版本时。 自动构建变得很简单:

CURRENTLY_BUILT_VER=1.2.3 # 存储在某处,例如在我的情况下是spec文件 LAST_VER=$(lastversion repo/owner -gt ${CURRENTLY_BUILT_VER}) if [[ $? -eq 0 ]]; then # LAST_VER 更新,更新并触发构建 # .... fi

这里,-gt实际上是传递给lastversion的一个开关,其作用类似于 bash中的-gt比较。

如果你想让这个可靠,还有更多内容。 查看我关于 使用lastversion进行RPM自动构建的讨论

检查你的Linux机器是否有更新的内核

LATEST_KERNEL=$(lastversion linux -gt $(uname -r | cut -d '-' -f 1)) if [[ $? -eq 0 ]]; then echo "我最好现在更新内核,因为有${LATEST_KERNEL}可用" else echo "我的内核是最新最好的。" fi

退出状态代码

退出状态代码是通常用来传达命令执行成功或失败的方式。 因此lastversion遵循这一点:成功的命令返回0,而其他任何情况都是某种错误。 例如,当找到最新的稳定版本时,返回0。 对于-gt比较,当左侧参数比右侧参数更新时,也返回0

退出状态代码1用于诸如存储库根本没有发布标签,或存储库不存在的情况。

退出状态代码2用于-gt版本比较的否定查找,即右侧参数比左侧参数更新时。

退出状态代码3在过滤最后发布的资产产生空URL集(无匹配)时返回。

提示

获取最新版本对API的负担很重,因为GitHub不允许按时间顺序获取标签,而且一些存储库会从一种版本格式切换到另一种,所以我们不能 仅仅认为最高版本就是最新的。 我们必须获取每个标签的提交日期,并查看它是否实际上更新。因此,对于较大的存储库,速度会更慢, 因为它们可能有很多标签。

因此,lastversion利用API响应缓存来快速且轻量地使用GitHub API, 它进行条件ETag验证,根据GitHub API,这不会计入速率限制。 缓存存储在Linux系统的~/.cache/lastversion中。

强烈建议设置你的GitHub API令牌。 基本的API令牌就足够了,你可以取消选择所有权限。 然后你可以通过在~/.bashrc文件中添加以下内容来增加你的速率限制:

export GITHUB_API_TOKEN=xxxxxxxxxxxxxxx

你可以使用GITHUB_API_TOKENGITHUB_TOKEN环境变量。 前者优先级更高。

对于GitLab,你可以使用 个人访问令牌

export GITLAB_PA_TOKEN=xxxxxxxxxxxxxxx

然后运行source ~/.bashrc。之后,lastversion将使用它来获得GitHub 更大的API调用限额。

在Python模块中的使用

你可以使用lastversion.has_update(...)来检查某个现有版本是否有更新,简单示例如下:

from lastversion import has_update latest_version = has_update(repo="mautic/mautic", current_version='1.2.3') if latest_version: print(f'有新版本的Mautic可用:{latest_version}') else: print('没有可用的更新')

lastversion.has_update(...)函数接受任何仓库的URL(或其简短名称,如owner/name),你需要传入当前版本。

如果你正在检查PyPi上的项目版本,请额外提供at='pip'参数,以避免传入完整的PyPI项目URI,并消除与GitHub托管项目的歧义。例如,检查Requests库的新版本:

from lastversion import has_update latest_version = has_update(repo="requests", at='pip', current_version='1.2.3') if latest_version: print(f'有新版本的Requests库可用:{latest_version}') else: print('没有可用的更新')

has_update函数返回以下之一:

  • Version对象
  • 如果没有比给定版本更新的版本,则返回False

或者,调用lastversion.latest(...)函数来获取仓库的最新版本信息。

from lastversion import latest from packaging import version latest_mautic_version = latest("mautic/mautic", output_format='version', pre_ok=True) print(f'最新的Mautic版本:{latest_mautic_version}') if latest_mautic_version >= version.parse('1.8.1'): print('这是更新的版本')

使用output_format='version'(默认值),该函数返回一个Version对象,或None。因此你可以像上面那样进行版本比较、检查开发状态等操作。

使用output_format='dict',返回一个包含最新发布信息的字典,或False。字典的键在不同的项目位置(如GitHub和BitBucket)之间可能有所不同,但保证始终包含以下键:

  • versionVersion对象,包含找到的发布版本,如1.2.3
  • source:字符串,项目来源的标识符,如githubgitlab
  • tag_date:datetime对象,发布日期,如2020-12-15 14:41:39
  • from:字符串,包含项目的完整URL
  • tag_name:字符串,对应发布的版本控制标签名

lastversion.latest函数接受3个参数

  • repo,格式为<owner>/<name>,或该仓库下的任何URL,如https://github.com/dvershinin/lastversion/issues
  • format,接受与交互运行lastversion时相同的值,以及dict以返回上述描述的字典
  • pre_ok,布尔值,表示是否将预发布版本包括在潜在版本中
  • at,使用单词仓库名时指定项目位置,可选值为githubgitlabbitbucketpiphgsfwebsite-feedlocal

在持续集成中使用

你也可以直接在GitHub action工作流中使用lastversion,通过lastversion-action

功能请求和增强

只有对GitHub发布至关重要的功能才会被优先考虑。如果你的问题或建议的功能超出当前重点,以下是你可以帮助实现它的方法:

  • 贡献:我们鼓励你提交一个包含你提议更改或增强的拉取请求。
  • 捐赠:如果你想看到某个功能被开发但无法贡献代码,可以考虑进行捐赠。你的捐赠可以帮助我们分配资源来开发额外的功能和改进。

赞助信息

GetPageSpeed RPM仓库:通过我们的NGINX模块和性能工具提升你的服务器性能。访问GetPageSpeed.com了解更多并订阅以获取访问权限。

DeepSource

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

下拉加载更多