ebook2audiobook开源程序使用动态 AI 模型和语音克隆将电子书转换为带有章节和元数据的有声读物。支持 1,107+ 种语言
一、软件介绍
文末提供程序和源码下载
ebook2audiobook开源程序使用动态 AI 模型和语音克隆将电子书转换为带有章节和元数据的有声读物。支持 1,107+ 种语言。从电子书到带有章节和元数据的有声读物的 CPU/GPU 转换器,使用 XTTSv2、Bark、Vits、Fairseq、YourTTS 等。支持语音克隆和 +1110 种语言!
二、Features 特征
- 📚 Splits eBook into chapters for organized audio.
📚 将电子书拆分为多个章节,以便有组织的音频。 - 🎙️ High-quality text-to-speech with Coqui XTTSv2 and Fairseq (and more).
🎙️ 使用 Coqui XTTSv2 和 Fairseq(以及更多)实现高质量的文本转语音。 - 🗣️ Optional voice cloning with your own voice file.
🗣️ 使用您自己的语音文件进行可选的语音克隆。 - 🌍 Supports +1110 languages (English by default). List of Supported languages
🌍 支持 +1110 种语言(默认为英语)。支持的语言列表 - 🖥️ Designed to run on 4GB RAM.
🖥️ 设计为在 4GB RAM 上运行。
Supported Languages 支持的语言
Arabic (ar) 阿拉伯语 (ar) | Chinese (zh) 中文 (zh) | English (en) 英语 (en) | Spanish (es) 英语 (en) |
---|---|---|---|
French (fr) 法语 (fr) | German (de) 德语 (de) | Italian (it) 意大利语 (it) | Portuguese (pt) 葡萄牙语 (pt) |
Polish (pl) 波兰语 (pl) | Turkish (tr) 土耳其语 (tr) | Russian (ru) 俄语 (ru) | Dutch (nl) 荷兰语 (nl) |
Czech (cs) 捷克语 (cs) | Japanese (ja) 日语 (ja) | Hindi (hi) 印地语 (hi) | Bengali (bn) 孟加拉语 (bn) |
Hungarian (hu) 匈牙利语 (胡) | Korean (ko) 韩语 (ko) | Vietnamese (vi) 越南语 (vi) | Swedish (sv) 瑞典语 (sv) |
Persian (fa) 波斯语 (fa) | Yoruba (yo) 约鲁巴语 (yo) | Swahili (sw) 斯瓦希里语 (sw) | Indonesian (id) 印度尼西亚语 (id) |
Slovak (sk) 斯洛伐克语 (sk) | Croatian (hr) 克罗地亚语 (hr) | Tamil (ta) 泰米尔语 (ta) | Danish (da) 丹麦语 (da) |
- +1100 languages and dialects here+1100 种语言和方言
三、Hardware Requirements 硬件要求
- 4gb RAM minimum, 8GB recommended
最低 4GB RAM,推荐 8GB - Virtualization enabled if running on windows (Docker only)
如果在 Windows 上运行,则启用虚拟化(仅限 Docker) - CPU (intel, AMD, ARM), GPU (Nvidia, AMD*, Intel*) (Recommended), MPS (Apple Silicon CPU) *available very soon
CPU(英特尔、AMD、ARM)、GPU(Nvidia、AMD*、Intel*)(推荐)、MPS(Apple Silicon CPU)*即将推出
四、安装说明
- Clone repo 克隆存储库(下载很慢的话,文末提供网盘下载)
git clone https://github.com/DrewThomasson/ebook2audiobook.git
cd ebook2audiobook
Launching Gradio Web Interface
启动 Gradio Web 界面
-
Run ebook2audiobook: 运行 ebook2audiobook:
-
Linux/MacOS Linux/MacOS作系统
./ebook2audiobook.sh # Run launch script
-
Mac Launcher Mac 启动器
Double clickMac Ebook2Audiobook Launcher.command
双击Mac Ebook2Audiobook Launcher.command
-
Windows 窗户
ebook2audiobook.cmd # Run launch script or double click on it
-
Windows Launcher Windows 启动器
Double clickebook2audiobook.cmd
双击ebook2audiobook.cmd
-
Manual Python Install 手动安装 Python
REQUIRED_PROGRAMS=("calibre" "ffmpeg" "nodejs" "mecab" "espeak-ng" "rust" "sox") REQUIRED_PYTHON_VERSION="3.12" pip install -r requirements.txt # Install Python Requirements python app.py # Run Ebook2Audiobook
-
-
Open the Web App: Click the URL provided in the terminal to access the web app and convert eBooks.
http://localhost:7860/
打开 Web 应用程序:单击终端中提供的 URL 以访问 Web 应用程序并转换电子书。http://localhost:7860/
-
For Public Link:
python app.py --share
(all OS)./ebook2audiobook.sh --share
(Linux/MacOS)ebook2audiobook.cmd --share
(Windows)
对于公共链接:python app.py --share
(所有作系统)./ebook2audiobook.sh --share
(Linux/MacOS)ebook2audiobook.cmd --share
(Windows)
Important 重要
If the script is stopped and run again, you need to refresh your gradio GUI interface
如果脚本已停止并再次运行,则需要刷新 gradio GUI 界面
to let the web page reconnect to the new connection socket.
让网页重新连接到新的连接套接字。
五、Basic Usage 基本用法
-
Linux/MacOS: Linux/MacOS:
./ebook2audiobook.sh --headless --ebook <path_to_ebook_file> \--voice [path_to_voice_file] --language [language_code]
-
Windows 窗户
ebook2audiobook.cmd --headless --ebook <path_to_ebook_file>--voice [path_to_voice_file] --language [language_code]
-
[--ebook]: Path to your eBook file
[--ebook]:您的 eBook 文件的路径 -
[--voice]: Voice cloning file path (optional)
[--voice]:语音克隆文件路径(可选) -
[--language]: Language code in ISO-639-3 (i.e.: ita for italian, eng for english, deu for german...).
[--language]:ISO-639-3 中的语言代码(即:ita 代表意大利语,eng 代表英语,deu 代表德语......
Default language is eng and --language is optional for default language set in ./lib/lang.py.
默认语言为 eng,对于 ./lib/lang.py 中设置的默认语言,--language 是可选的。
The ISO-639-1 2 letters codes are also supported.
还支持 ISO-639-1 2 字母代码。
Example of Custom Model Zip Upload
自定义模型 zip 上传示例
(must be a .zip file containing the mandatory model files. Example for XTTS: config.json, model.pth, vocab.json and ref.wav)
(必须是包含必需模型文件的 .zip 文件。XTTS 示例:config.json、model.pth、vocab.json 和 ref.wav)
- Linux/MacOS Linux/MacOS作系统
./ebook2audiobook.sh --headless --ebook <ebook_file_path> \--voice <target_voice_file_path> --language <language> --custom_model <custom_model_path>
- Windows 窗户
ebook2audiobook.cmd --headless --ebook <ebook_file_path> \--voice <target_voice_file_path> --language <language> --custom_model <custom_model_path>
- <custom_model_path>: Path to
model_name.zip
file, which must contain (according to the tts engine) all the mandatory files
:model_name.zip
文件的路径,必须包含(根据 tts 引擎)所有必需的文件
(see ./lib/models.py). (参见 ./lib/models.py)。
For Detailed Guide with list of all Parameters to use
有关详细指南,其中包含要使用的所有参数的列表
- Linux/MacOS Linux/MacOS作系统
./ebook2audiobook.sh --help
- Windows 窗户
ebook2audiobook.cmd --help
- Or for all OS
python app.py --help
或适用于所有作系统python app.py --help
usage: app.py [-h] [--script_mode SCRIPT_MODE] [--session SESSION] [--share][--headless] [--ebook EBOOK] [--ebooks_dir EBOOKS_DIR][--language LANGUAGE] [--voice VOICE] [--device {cpu,gpu,mps}][--tts_engine {xtts,bark,vits,fairseq,yourtts}][--custom_model CUSTOM_MODEL] [--fine_tuned FINE_TUNED][--output_format OUTPUT_FORMAT] [--temperature TEMPERATURE][--length_penalty LENGTH_PENALTY] [--num_beams NUM_BEAMS][--repetition_penalty REPETITION_PENALTY] [--top_k TOP_K] [--top_p TOP_P][--speed SPEED] [--enable_text_splitting] [--output_dir OUTPUT_DIR][--version]Convert eBooks to Audiobooks using a Text-to-Speech model. You can either launch the Gradio interface or run the script in headless mode for direct conversion.options:-h, --help show this help message and exit--session SESSION Session to resume the conversion in case of interruption, crash, or reuse of custom models and custom cloning voices.**** The following option are for gradio/gui mode only:Optional--share Enable a public shareable Gradio link.**** The following options are for --headless mode only:--headless Run the script in headless mode--ebook EBOOK Path to the ebook file for conversion. Cannot be used when --ebooks_dir is present.--ebooks_dir EBOOKS_DIRRelative or absolute path of the directory containing the files to convert. Cannot be used when --ebook is present.--language LANGUAGE Language of the e-book. Default language is set in ./lib/lang.py sed as default if not present. All compatible language codes are in ./lib/lang.pyoptional parameters:--voice VOICE (Optional) Path to the voice cloning file for TTS engine. Uses the default voice if not present.--device {cpu,gpu,mps}(Optional) Pprocessor unit type for the conversion. Default is set in ./lib/conf.py if not present. Fall back to CPU if GPU not available.--tts_engine {xtts,bark,vits,fairseq,yourtts}(Optional) Preferred TTS engine (available are: ['xtts', 'bark', 'vits', 'fairseq', 'yourtts'].Default depends on the selected language. The tts engine should be compatible with the chosen language--custom_model CUSTOM_MODEL(Optional) Path to the custom model zip file cntaining mandatory model files. Please refer to ./lib/models.py--fine_tuned FINE_TUNED(Optional) Fine tuned model path. Default is builtin model.--output_format OUTPUT_FORMAT(Optional) Output audio format. Default is set in ./lib/conf.py--temperature TEMPERATURE(xtts only, optional) Temperature for the model. Default to config.json model. Higher temperatures lead to more creative outputs.--length_penalty LENGTH_PENALTY(xtts only, optional) A length penalty applied to the autoregressive decoder. Default to config.json model. Not applied to custom models.--num_beams NUM_BEAMS(xtts only, optional) Controls how many alternative sequences the model explores. Must be equal or greater than length penalty. Default to config.json model.--repetition_penalty REPETITION_PENALTY(xtts only, optional) A penalty that prevents the autoregressive decoder from repeating itself. Default to config.json model.--top_k TOP_K (xtts only, optional) Top-k sampling. Lower values mean more likely outputs and increased audio generation speed. Default to config.json model.--top_p TOP_P (xtts only, optional) Top-p sampling. Lower values mean more likely outputs and increased audio generation speed. Default to 0.85--speed SPEED (xtts only, optional) Speed factor for the speech generation. Default to config.json model.--enable_text_splitting(xtts only, optional) Enable TTS text splitting. This option is known to not be very efficient. Default to config.json model.--output_dir OUTPUT_DIR(Optional) Path to the output directory. Default is set in ./lib/conf.py--version Show the version of the script and exitExample usage:
Windows:Gradio/GUI:ebook2audiobook.cmdHeadless mode:ebook2audiobook.cmd --headless --ebook '/path/to/file'
Linux/Mac:Gradio/GUI:./ebook2audiobook.shHeadless mode:./ebook2audiobook.sh --headless --ebook '/path/to/file'
NOTE: in gradio/gui mode, to cancel a running conversion, just click on the [X] from the ebook upload component.
注意:在 gradio/gui 模式下,要取消正在运行的转换,只需单击电子书上传组件中的 [X] 即可。
Docker GPU Options Docker GPU 选项
Available tags: latest
(CUDA 11), cpu
, rocm
, cuda11
, cuda12
, cuda128
, xpu
(x86 only)
可用标签: latest
(CUDA 11)、 cpu
、 rocm
cuda11
cuda12
cuda128
xpu
(仅限 x86)
Running the Docker Container
运行 Docker 容器
To run the Docker container and start the Gradio interface, use the following command:
要运行 Docker 容器并启动 Gradio 接口,请使用以下命令:
-Run with CPU only
- 仅使用 CPU 运行
docker run --pull always --rm -p 7860:7860 athomasson2/ebook2audiobook
-Run with GPU Speedup (NVIDIA compatible only)
- 使用 GPU 加速运行(仅兼容 NVIDIA)
docker run --pull always --rm --gpus all -p 7860:7860 athomasson2/ebook2audiobook
Building the Docker Container
构建 Docker 容器
- You can build the docker image with the command:
您可以使用以下命令构建 docker 镜像:
docker build -t athomasson2/ebook2audiobook .
This command will start the Gradio interface on port 7860.(localhost:7860)
此命令将在端口 7860 上启动 Gradio 接口。(本地主机:7860)
- For more options add the parameter
--help
有关更多选项,请添加参数--help
Docker container file locations
Docker 容器文件位置
All ebook2audiobooks will have the base dir of /app/
For example: tmp
= /app/tmp
audiobooks
= /app/audiobooks
所有 ebook2audiobooks 的基本目录均为 /app/
例如: tmp
= /app/tmp
audiobooks
= /app/audiobooks
Docker headless guide Docker 无头指南
- Before you do run this you need to create a dir named "input-folder" in your current dir which will be linked, This is where you can put your input files for the docker image to see
在运行此命令之前,您需要在当前目录中创建一个名为“input-folder”的目录,该目录将被链接,这是您可以放置输入文件供 docker 映像查看的地方
mkdir input-folder && mkdir Audiobooks
- In the command below swap out YOUR_INPUT_FILE.TXT with the name of your input file
在下面的命令中,将 YOUR_INPUT_FILE.TXT 替换为输入文件的名称
docker run --pull always --rm \-v $(pwd)/input-folder:/app/input_folder \-v $(pwd)/audiobooks:/app/audiobooks \athomasson2/ebook2audiobook \--headless --ebook /input_folder/YOUR_EBOOK_FILE
- The output Audiobooks will be found in the Audiobook folder which will also be located in your local dir you ran this docker command in
输出有声读物将在 Audiobook 文件夹中找到,该文件夹也位于您运行此 docker 命令的本地目录中
To get the help command for the other parameters this program has you can run this
要获取该程序具有的其他参数的 help 命令,您可以运行此命令
docker run --pull always --rm athomasson2/ebook2audiobook --help
That will output this Help command output
这将输出此 Help 命令输出
Docker Compose
This project uses Docker Compose to run locally. You can enable or disable GPU support by setting either *gpu-enabled
or *gpu-disabled
in docker-compose.yml
此项目使用 Docker Compose 在本地运行。您可以通过在 *gpu-enabled
*gpu-disabled
docker-compose.yml
Steps to Run 运行步骤
- Clone the Repository (if you haven't already):
克隆存储库(如果尚未克隆):git clone https://github.com/DrewThomasson/ebook2audiobook.git cd ebook2audiobook
- Set GPU Support (disabled by default) To enable GPU support, modify
docker-compose.yml
and change*gpu-disabled
to*gpu-enabled
设置 GPU 支持(默认处于禁用状态)要启用 GPU 支持,请修改docker-compose.yml
并更改为*gpu-disabled
*gpu-enabled
- Start the service: 启动服务:
docker-compose up -d
- Access the service: The service will be available at http://localhost:7860.
访问服务:该服务将在 http://localhost:7860 提供。
Common Docker Issues 常见的 Docker 问题
-
python: can't open file '/home/user/app/app.py': [Errno 2] No such file or directory
(Just remove all post arguments as I replaced theCMD
withENTRYPOINT
in the Dockerfile)
python: can't open file '/home/user/app/app.py': [Errno 2] No such file or directory
(只需删除所有 post 参数,因为我在 Dockerfile 中替换了CMD
withENTRYPOINT
)- Example:
docker run --pull always athomasson2/ebook2audiobook app.py --script_mode full_docker
- > corrected - >docker run --pull always athomasson2/ebook2audiobook
示例:docker run --pull always athomasson2/ebook2audiobook app.py --script_mode full_docker
- 已更正> - >docker run --pull always athomasson2/ebook2audiobook
- Arguments can be easily added like this now
docker run --pull always athomasson2/ebook2audiobook --share
现在可以docker run --pull always athomasson2/ebook2audiobook --share
像这样轻松添加参数
- Example:
-
Docker gets stuck downloading Fine-Tuned models. (This does not happen for every computer but some appear to run into this issue) Disabling the progress bar appears to fix the issue, as discussed here in #191 Example of adding this fix in the
docker run
command
Docker 在下载 Fine-Tuned 模型时遇到困难。(并非每台计算机都会发生这种情况,但有些计算机似乎会遇到此问题)禁用进度条似乎可以解决问题,如 #191 在docker run
命令中添加此修复程序的示例中所述
docker run --pull always --rm --gpus all -e HF_HUB_DISABLE_PROGRESS_BARS=1 -e HF_HUB_ENABLE_HF_TRANSFER=0 \-p 7860:7860 athomasson2/ebook2audiobook
Supported eBook Formats 支持的电子书格式
.epub
,.pdf
,.mobi
,.txt
,.html
,.rtf
,.chm
,.lit
,.pdb
,.fb2
,.odt
,.cbr
,.cbz
,.prc
,.lrf
,.pml
,.snb
,.cbc
,.rb
,.tcr
- Best results:
.epub
or.mobi
for automatic chapter detection
最佳结果:.epub
或.mobi
用于自动章节检测
Output Formats 输出格式
- Creates a
['m4b', 'm4a', 'mp4', 'webm', 'mov', 'mp3', 'flac', 'wav', 'ogg', 'aac']
(set in ./lib/conf.py) file with metadata and chapters.
创建一个['m4b', 'm4a', 'mp4', 'webm', 'mov', 'mp3', 'flac', 'wav', 'ogg', 'aac']
包含元数据和章节的(在 ./lib/conf.py 中设置)文件。
六、软件下载
夸克网盘分享
本文信息来源于GitHub作者地址:https://github.com/DrewThomasson/ebook2audiobook
相关文章:
ebook2audiobook开源程序使用动态 AI 模型和语音克隆将电子书转换为带有章节和元数据的有声读物。支持 1,107+ 种语言
一、软件介绍 文末提供程序和源码下载 ebook2audiobook开源程序使用动态 AI 模型和语音克隆将电子书转换为带有章节和元数据的有声读物。支持 1,107 种语言。从电子书到带有章节和元数据的有声读物的 CPU/GPU 转换器,使用 XTTSv2、Bark、Vits、Fairseq、YourTTS …...
《算法导论(第4版)》阅读笔记:p39-p48
《算法导论(第4版)》学习第 13 天,p39-p48 总结,总计 10 页。 一、技术总结 1. recurrence/recurrence equation 书里面 recurrence(递归式) 和 recurrence equation(递归方程) 指的是同一个东西。 二、英语总结(生词:2) 1. squint (1)…...
c语言第一个小游戏:贪吃蛇小游戏07
贪吃蛇吃饭喽 所谓贪吃蛇的食物,也就是创建一个和蛇身一样的结构体,只是这个结构体不是链表,也是将这个结构体设置hang和lie坐标,放进gamepic进行扫描,扫到了就也是做操作将 ## 打出来 #include <curses.h> #i…...
(七)深度学习---神经网络原理与实现
分类问题回归问题聚类问题各种复杂问题决策树√线性回归√K-means√神经网络√逻辑回归√岭回归密度聚类深度学习√集成学习√Lasso回归谱聚类条件随机场贝叶斯层次聚类隐马尔可夫模型支持向量机高斯混合聚类LDA主题模型 一.神经网络原理概述 二.神经网络的训练方法 三.基于Ker…...
VSCode中Node.js 使用教程
一、visual studio code下载与安装 二、修改vscode主题颜色 三、汉化 菜单view-->Command Palette...,输入Configure Display Language。 重启之后如下: 四、安装node.js Node.js 是一个基于Chrome V8引擎的JavaScript运行环境,使用了事件驱动、非阻…...
web 自动化之 KDT 关键字驱动详解
一、什么是关键字驱动? 1、什么是关键字驱动?(以关键字函数驱动测试) 关键字驱动又叫动作字驱动,把项目业务封装成关键字函数,再基于关键字函数实现自动化测试 2、关键字驱动测试原理 关键字驱动测试是一…...
web 自动化之 yaml 数据/日志/截图
文章目录 一、yaml 数据获取二、日志获取三、截图 一、yaml 数据获取 需要安装 PyYAML 库 import yaml import os from TestPOM.common import dir_config as Dirdef read_yaml(key,file_name"test_datas.yaml"):file_path os.path.join(Dir.testcases_dir, file_…...
基于javaweb的SpringBoot酒店管理系统设计与实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
数学复习笔记 6
前言 复习一下行列式的一些基本的题。感觉网课有点没跟上了。今天花点时间跟上网课的进度。要紧跟进度,然后剩下的时间再去复习前面的内容。多复习,提升自己的解题能力。 行列式和矩阵 三年级,我现在是三年级下册。。。马上就要结束大学的…...
JS Map使用方法
JS Map使用方法 Map 是 ES6 引入的一种新的数据结构,它类似于对象(Object),但提供了更强大的键值对存储功能。 文章目录 JS Map使用方法基本特性基本用法创建 Map常用方法遍历方法 与 Object 的区别实际应用示例示例1:…...
大模型分布式光伏功率预测实现详解
一、引言 随着全球能源结构向可再生能源转型,光伏发电作为清洁能源的重要组成部分,其装机容量持续快速增长。然而,光伏发电具有显著的间歇性和波动性特点,给电力系统的稳定运行带来了巨大挑战。准确的光伏功率预测对于电网调度、电力市场交易和电站运营管理至关重要。近年…...
武汉大学无人机视角下的多目标指代理解新基准!RefDrone:无人机场景指代表达理解数据集
作者:Zhichao Sun, Yepeng Liu, Huachao Zhu, Yuliang Gu, Yuda Zou, Zelong Liu, Gui-Song Xia, Bo Du, Yongchao Xu 单位:武汉大学计算机学院 论文标题:RefDrone: A Challenging Benchmark for Drone Scene Referring Expression Compreh…...
【LLM模型】如何构建自己的MCP Server?
什么是 MCP? Model Context Protocol (MCP) 是一种协议,它允许大型语言模型(LLMs)访问自定义的工具和服务。Trae 中的智能体作为 MCP 客户端可以选择向 MCP Server 发起请求,以使用它们提供的工具。你可以自行添加 MC…...
SQL 索引优化指南:原理、知识点与实践案例
SQL 索引优化指南:原理、知识点与实践案例 索引的基本原理 索引是数据库中用于加速数据检索的数据结构,类似于书籍的目录。它通过创建额外的数据结构来存储部分数据,使得查询可以快速定位到所需数据而不必扫描整个表。 索引的工作原理 B-…...
java基础-方法的重写、super关键字
1.定义:子类可以根据需要改写从父类那继承来的方法,执行时,子类的方法会覆盖父类的方法 2.要求: (1)子类和父类的方法必须同名,同参数列表 (2)父类中private修饰的方法…...
技术并不能产生一个好的产品
技术是产生一个好的产品充分条件,不是必要条件。 当笔者到了40岁的年龄时间,发现再怎么努力提升技术,也没办法挽救烂的产品设计。 一个好的产品,首先要找准自己的定位,不能动不动就把自己拿一线品牌来比较。 好的产品…...
lubuntu 系统详解
Lubuntu 系统详解:轻量高效的 Ubuntu 衍生版 一、系统概述 定位与背景: Lubuntu 是 Ubuntu 的官方衍生版本(Flavor),专注于轻量性与高效性,旨在为低配置设备(如老旧电脑、上网本、低配笔记本 …...
《设备管理与维修》审核严吗?“修改后再投”是拒稿了吗?
有过论文投稿经验的朋友,可能在审核后收到过“修改后再投”的回复。有些期刊可能是真的建议投稿人在修改后再投稿,有些则可能是标准的拒稿模板。 《设备管理与维修》审核严吗?收到“修改后再投”的回复该怎么办?下面我就来分享下之…...
2025年5月-信息系统项目管理师高级-软考高项一般计算题
决策树和期望货币值 加权算法 自制和外购分析 沟通渠道 三点估算PERT 当其他条件一样时,npv越大越好...
界面组件DevExpress WPF中文教程:Grid - 如何自定义Band Header外观?
DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...
Supabase 的入门详细介绍
Supabase 是什么? 简单来说,Supabase 是一个开源的 Firebase 替代品。它提供了一整套后端即服务 (BaaS - Backend as a Service) 的工具,让你能够快速构建应用程序的后端,而无需自己从头搭建和管理服务器、数据库等基础设施。 S…...
【实战】基于 ABP vNext 构建高可用 S7 协议采集平台(西门子 PLC 通信全流程)
🚀🔧【实战】基于 ABP vNext 构建高可用 S7 协议采集平台(西门子 PLC 通信全流程)📊 📑 目录 🚀🔧【实战】基于 ABP vNext 构建高可用 S7 协议采集平台(西门子 PLC 通信全…...
20、map和set、unordered_map、un_ordered_set的复现
一、map 1、了解 map的使用和常考面试题等等,看这篇文章 map的key是有序的 ,值不可重复 。插入使用 insert的效率更高,而在"更新map的键值对时,使用 [ ]运算符效率更高 。" 注意 map 的lower和upper那2个函数&#x…...
leetcode 189. 轮转数组
题目描述 代码: class Solution { public:void rotate(vector<int>& nums, int k) {int len nums.size();k k % len;reverse(nums,0,len-1);reverse(nums,0,k-1);reverse(nums,k,len-1);}void reverse(vector<int>& nums,int left,int right…...
得物0509面试手撕题目解答
题目 使用两个栈(一个无序栈和一个空栈)将无序栈中的元素转移到空栈,使其有序,不允许使用其他数据结构。 示例:输入:[3, 1, 6, 4, 2, 5],输出:[6, 5, 4, 3, 2, 1] 思路与代码 如…...
8天Python从入门到精通【itheima】-6~10
目录 7节-开发出第一个Python程序: 1.在cmd窗口写下第一个最简单的程序:Hello World!!! 9节: 1.如何卸载python: 2.报错:不是可运行的程序 编辑 3.报错:无法初始化设备PRN: 4.报错&…...
Qt —— 使用Enigma Virtual Box将Qt程序打包为独立可运行exe(附:完整打包方法且完美运行)
🔔 Qt 相关技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中…) 打包结果 1、如下图,准备好Qt已打包后程序文件夹。附 Qt —— 在Windows下打包Qt应用程序(在其他Windows电脑下使用)...
大语言模型RLHF训练框架全景解析:OpenRLHF、verl、LLaMA-Factory与SWIFT深度对比
引言 随着大语言模型(LLM)参数规模突破千亿级,基于人类反馈的强化学习(RLHF)成为提升模型对齐能力的关键技术。OpenRLHF、verl、LLaMA-Factory和SWIFT作为开源社区的四大标杆框架,分别通过分布式架构、混合…...
VTK|类似CloudCompare的比例尺实现1-源码分析
文章目录 CloudCompare源码分析void ccGLWindowInterface::drawScale(const ccColor::Rgbub& color)🧩 总体功能🧠 函数逐步解析✅ 1. 断言只在正交模式下使用✅ 2. 计算显示的实际长度✅ 3. 字体和图形区域准备✅ 4. 计算比例尺图形的绘制位置✅ 5.…...
【计算机视觉】OpenCV实战项目:基于Tesseract与OpenCV的字符识别系统深度解析
基于Tesseract与OpenCV的字符识别系统深度解析 1. 项目概述2. 技术原理与算法设计2.1 图像预处理流水线1) 形态学操作2) 自适应阈值 2.2 Tesseract OCR引擎 3. 实战部署指南3.1 环境配置3.2 项目结构优化建议3.3 增强版代码实现 4. 常见问题与解决方案4.1 Tesseract路径错误4.2…...
CVE-2025-31258 macOS远程视图服务沙箱逃逸漏洞PoC已公开
苹果公司近日针对macOS系统中新披露的CVE-2025-31258漏洞发布补丁,该漏洞可能允许恶意应用程序突破沙箱限制,获取未授权的系统资源访问权限。在安全研究员Seo Hyun-gyu公开概念验证(PoC)利用代码后,该漏洞已在macOS Se…...
使用CAS操作实现乐观锁的完整指南
乐观锁是一种高效的并发控制机制,而CAS(Compare-And-Swap)是实现乐观锁的核心技术。下面我将详细介绍如何通过CAS操作实现乐观锁。 一、CAS操作原理 CAS(Compare-And-Swap)是一种原子操作,包含三个操作数: 内存位置(V)预期原值(A)新值(B) …...
java之网络编程
文章目录 网络编程概述什么是网络编程基本的通信架构CS架构BS架构 Java提供了哪些网络编程解决方案? 网络编程三要素IPIP地址IP域名(Domain Name)DNS域名解析(Domain Name System)公网IP、内网IP本机IPInetAddress类In…...
苍穹外卖--新增菜品
1.需求分析和设计 产品原型 业务规则: 菜品名称必须是唯一的 菜品必须属于某个分类下,不能单独存在 新增菜品时可以根据情况选择菜品的口味 每个菜品必须对应一张图片 接口设计: 根据类型查询分类(已完成) 文件上传 新增菜品 根据类型…...
Spark处理过程-转换算子
(一)RDD的处理过程 Spark使用Scala语言实现了RDD的API,程序开发者可以通过调用API对RDD进行操作处理。RDD的处理过程如图所示; RDD经过一系列的“转换”操作,每一次转换都会产生不同的RDD,以供给下一次“转换”操作使…...
运行Spark程序-在Spark-shell——RDD
一、基本概念 RDD(弹性分布式数据集)是 Apache Spark 的核心抽象,是 Spark 提供的最基本的数据处理单元。理解 RDD 的概念对于掌握 Spark 编程至关重要。以下是 RDD 的核心概念和特性: 1. 什么是 RDD? 定义…...
Qt应用程序启动时的一些思路:从单实例到性能优化的处理方案
程序启动时优化的价值 在桌面软件开发领域,应用程序的启动过程就像音乐的序曲,决定了用户对软件品质的第一印象。比如首次启动等待超过3秒时,会让大多数用户产生负面看法,而专业工具软件的容忍阈值甚至更低。Qt框架作为跨平台开发…...
vue3父子组件传值
父 → 子:props 父组件 <template><ChildComponent :message"parentMessage" :user"user" /> </template><script setup> import ChildComponent from ./ChildComponent.vue; const parentMessage Hello from paren…...
中国品牌日 | 以科技创新为引领,激光院“风采”品牌建设结硕果
品牌,作为企业不可或缺的隐形财富,在当今竞争激烈的市场环境中,其构建与强化已成为推动企业持续繁荣的关键基石。为了更好地保护自主研发产品,激光院激光公司于2020年3月7日正式注册“风采”商标,创建拥有自主知识产权…...
合合信息上线智能文档处理领域首批MCP服务,助力企业快速搭建Agent
随着大模型及Agent技术的飞速发展,通过大模型调用外部工具正在成为AI应用开发的新范式。然而,由于不同大模型的调用结构和参数格式各异,开发者需要分别编写工具调用逻辑,AI工具集成效率低下,MCP(Model Cont…...
佰力博科技与您探讨表面电阻的测试方法及应用领域
表面电阻测试是一种用于测量材料表面电阻值的技术,广泛应用于评估材料的导电性能、静电防护性能以及绝缘性能。 1、表面电阻的测试测试方法: 表面电阻测试通常采用平行电极法、同心圆电极法和四探针法等方法进行。其中,平行电极法通过在试样…...
【DeepSeek】判断两个 PCIe 设备是否属于**同一个 PCIe 子树
在 Linux 系统中,判断两个 PCIe 设备是否属于**同一个 PCIe 子树(Subtree)**是 P2P 通信的关键前提。以下是具体方法和步骤: 一、基本原理 两个 PCIe 设备属于同一子树的条件: 共享同一 Root Port:它们的…...
一份完整的高级前端性能优化手册
以下是一份完整的高级前端性能优化手册,涵盖核心原理、关键指标、优化策略及工具链,适合中大型项目深度优化: 高级前端性能优化手册 🚀 以用户体验为核心的极致性能实践 一、性能指标体系与度量 1. 核心性能指标 (Core Web Vitals) LCP (Largest Contentful Paint):最大…...
Leetcode 3543. Maximum Weighted K-Edge Path
Leetcode 3543. Maximum Weighted K-Edge Path 1. 解题思路2. 代码实现 题目链接:3543. Maximum Weighted K-Edge Path 1. 解题思路 这一题思路上就是一个遍历的思路,我们只需要考察每一个节点作为起点时,所有长为 k k k的线段的长度&…...
agentmain对业务的影响
前面一篇已经说了java agent技术主要有premain和agentmain两种形式,如果大部分业务已经在线上运行的话,不方便用premain的方式来实现,所以agentmain的方式是更加通用、灵活的 由于RASP是与用户业务运行在同一个jvm中的 ,所以RASP…...
【前端】【JavaScript】【总复习】四万字详解JavaScript知识体系
JavaScript 前端知识体系 📌 说明:本大纲从基础到高级、从语法到应用、从面试到实战,分层级讲解 JavaScript 的核心内容。 一、JavaScript 基础语法 1.1 基本概念 1.1.1 JavaScript 的发展史与用途 1. 发展简史 1995 年:JavaS…...
开源模型应用落地-qwen模型小试-Qwen3-8B-融合VLLM、MCP与Agent(七)
一、前言 随着Qwen3的开源与技术升级,其在企业中的落地场景正加速拓展至多个垂直领域。依托Agent智能体能力 和MCP协议的工具调用接口 ,Qwen3可深度融入企业业务流程,为企业提供从需求解析到自动化开发的全链路支持。 本篇将介绍如何实现Qwen3-8B模型集成MCP实现智能体交互。…...
【Linux学习笔记】理解一切皆文件实现原理和文件缓冲区
【Linux学习笔记】理解一切皆文件实现原理和文件缓冲区 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 前言 哈喽,各位小伙伴大家好!上期我们讲了重定向 今天我们讲的是理解一切皆文件实现原理和文件缓冲区。话不…...
MCP-RAG 服务器:完整设置和使用指南
在快速发展的人工智能应用时代,结合静态领域知识和实时网络信息的系统需求比以往任何时候都更加迫切。传统的检索增强生成(RAG)模型通常依赖于预先索引的数据,这限制了它们对新发展的反应能力。MCP-RAG Server通过将基于语义的向量…...
裸金属服务器 VS 传统物理机
一:首先,我们先介绍一下,什么是裸金属服务器? 1.虚拟机的外表-平台可视化 可以通过后台管理界面查看当前所使用的全部信息包括:当前系统版本、CPU、内存、硬盘等相关信息。 2.虚拟机的外表-操作自动化 同样也可以在…...