drewThomasson commited on
Commit
017ec2f
1 Parent(s): d1fa884

Upload 4 files

Browse files
Files changed (4) hide show
  1. packages.txt +7 -0
  2. pyproject.toml +44 -0
  3. readme/README_CN.md +420 -0
  4. readme/README_RU.md +391 -0
packages.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ wget
2
+ git
3
+ calibre
4
+ ffmpeg
5
+ libmecab-dev
6
+ mecab
7
+ mecab-ipadic
pyproject.toml ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [build-system]
2
+ name = "ebook2audiobook"
3
+ version = "2.0.0"
4
+ requires = ["setuptools >= 64"]
5
+ build-backend = "setuptools.build_meta"
6
+
7
+ [project]
8
+ name = "ebook2audiobook"
9
+ version = "2.0.0"
10
+ description = "Convert eBooks to audiobooks with chapters and metadata"
11
+ authors = [
12
+ { name = "Drew Thomasson" }
13
+ ]
14
+ dependencies = [
15
+ "beautifulsoup4",
16
+ "coqui-tts",
17
+ "cutlet",
18
+ "deep_translator",
19
+ "docker",
20
+ "ebooklib",
21
+ "gensim",
22
+ "gradio>=4.44",
23
+ "hangul-romanize",
24
+ "indic-nlp-library",
25
+ "iso-639",
26
+ "jieba",
27
+ "pydub",
28
+ "pypinyin",
29
+ "ray",
30
+ "transformers",
31
+ "translate",
32
+ "tqdm"
33
+ ]
34
+ readme = "README.md"
35
+ requires-python = ">=3.10,<3.13"
36
+ classifiers = [
37
+ "Programming Language :: Python :: 3",
38
+ "License :: OSI Approved :: MIT License",
39
+ "Operating System :: OS Independent",
40
+ ]
41
+ scripts = { "ebook2audiobook" = "app:main" }
42
+
43
+ [project.urls]
44
+ "Homepage" = "https://github.com/DrewThomasson/ebook2audiobook"
readme/README_CN.md ADDED
@@ -0,0 +1,420 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 📚 ebook2audiobook
2
+
3
+ 使用Calibre和Coqui XTTS将电子书转换为包含章节和元数据的有声读物。支持可选的语音克隆和多种语言!
4
+ > [!IMPORTANT]
5
+ **本工具仅适用于非DRM、合法获取的电子书。**
6
+ 作者对软件的任何误用或由此产生的法律后果概不负责。
7
+ 请负责任地使用本工具,并遵守所有适用法律。
8
+
9
+ #### 🖥️ Web GUI界面
10
+ ![demo_web_gui](https://github.com/user-attachments/assets/85af88a7-05dd-4a29-91de-76a14cf5ef06)
11
+
12
+ <details>
13
+ <summary>点击查看Web GUI的图片</summary>
14
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/b36c71cf-8e06-484c-a252-934e6b1d0c2f">
15
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/c0dab57a-d2d4-4658-bff9-3842ec90cb40">
16
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/0a99eeac-c521-4b21-8656-e064c1adc528">
17
+ </details>
18
+
19
+ ## 🌟 特征
20
+
21
+ - 📖 使用Calibre将电子书转换为文本格式。
22
+ - 📚 将电子书拆分为章节,以获得有组织的音频。
23
+ - 🎙️ 使用Coqui XTTS实现高质量的文本到语音转换。
24
+ - 🗣️ 可选择使用您自己的语音文件进行语音克隆。
25
+ - 🌍 支持多种语言(默认为英语)。
26
+ - 🖥️ 基于4GB RAM运行。
27
+
28
+ ## 🛠️ 环境要求
29
+
30
+ - Python 3.10
31
+ - `coqui-tts` Python package
32
+ - Calibre (用于电子书转换)
33
+ - FFmpeg (用于有声读物创作)
34
+ - Optional: 用于语音克隆的自定义语音文件
35
+
36
+ ### 🔧 安装说明
37
+
38
+ 1. **安装 Python 3.x** from [Python.org](https://www.python.org/downloads/).
39
+
40
+ 2. **安装 Calibre**:
41
+ - **Ubuntu**: `sudo apt-get install -y calibre`
42
+ - **macOS**: `brew install calibre`
43
+ - **Windows** (Admin Powershell): `choco install calibre`
44
+
45
+ 3. **安装 FFmpeg**:
46
+ - **Ubuntu**: `sudo apt-get install -y ffmpeg`
47
+ - **macOS**: `brew install ffmpeg`
48
+ - **Windows** (Admin Powershell): `choco install ffmpeg`
49
+
50
+ 4. **可选: Install Mecab** (非拉丁语言):
51
+ - **Ubuntu**: `sudo apt-get install -y mecab libmecab-dev mecab-ipadic-utf8`
52
+ - **macOS**: `brew install mecab`, `brew install mecab-ipadic`
53
+ - **Windows**: [mecab-website-to-install-manually](https://taku910.github.io/mecab/#download) (注:日语支持有限)
54
+
55
+ 5. **安装 Python packages**:
56
+ ```bash
57
+ pip install coqui-tts==0.24.2 pydub nltk beautifulsoup4 ebooklib tqdm gradio==4.44.0
58
+
59
+ python -m nltk.downloader punkt
60
+ python -m nltk.downloader punkt_tab
61
+ ```
62
+
63
+ **For non-Latin languages**:
64
+ ```bash
65
+ pip install mecab mecab-python3 unidic
66
+
67
+ python -m unidic download
68
+ ```
69
+
70
+ ## 🌐 支持的语言
71
+
72
+ - **English (en)**
73
+ - **Spanish (es)**
74
+ - **French (fr)**
75
+ - **German (de)**
76
+ - **Italian (it)**
77
+ - **Portuguese (pt)**
78
+ - **Polish (pl)**
79
+ - **Turkish (tr)**
80
+ - **Russian (ru)**
81
+ - **Dutch (nl)**
82
+ - **Czech (cs)**
83
+ - **Arabic (ar)**
84
+ - **Chinese (zh-cn)**
85
+ - **Japanese (ja)**
86
+ - **Hungarian (hu)**
87
+ - **Korean (ko)**
88
+
89
+ 在无头模式下运行脚本时指定语言代码。
90
+ ## 🚀 使用
91
+
92
+ ### 🖥️ 启动Gradio Web界面
93
+
94
+ 1. **运行脚本**:
95
+ ```bash
96
+ python app.py
97
+ ```
98
+
99
+ 2. **打开web应用程序**: 点击终端中提供的URL访问web应用程序并转换电子书.
100
+ 3. **公共链接**: 在末尾添加“--share True”,如下所示:`python app.py--share True`
101
+ - **[更多参数]**: 使用`-h`参数,如`python app.py-h`
102
+
103
+ ### 📝 基本的无头用法
104
+
105
+ ```bash
106
+ python app.py --headless True --ebook <path_to_ebook_file> --voice [path_to_voice_file] --language [language_code]
107
+ ```
108
+
109
+ - **<path_to_ebook_file>**: 电子书文件的路径。
110
+ - **[path_to_voice_file]**: 指定转换的语音文件,可选。
111
+ - **[language_code]**: 指定转换的语言,可选。
112
+ - **[更多参数]**: 使用 `-h` 参数,如 `python app.py -h`
113
+
114
+ ### 🧩 自定义XTTS模型的无头用法
115
+
116
+ ```bash
117
+ python app.py --headless True --use_custom_model True --ebook <ebook_file_path> --voice <target_voice_file_path> --language <language> --custom_model <custom_model_path> --custom_config <custom_config_path> --custom_vocab <custom_vocab_path>
118
+ ```
119
+
120
+ - **<ebook_file_path>**: 电子书文件的路径。
121
+ - **<target_voice_file_path>**: 指定转换的语音文件,可选。
122
+ - **<language>**: 指定转换的语言,可选。
123
+ - **<custom_model_path>**: `model.pth`的路径。
124
+ - **<custom_config_path>**: `config.json`的路径。
125
+ - **<custom_vocab_path>**: `vocab.json`的路径。
126
+ - **[更多参数]**: 使用 `-h` 参数,如 `python app.py -h`
127
+
128
+ ### 🧩 自定义XTTS Fine-Tune 模型的无头用法 🌐
129
+
130
+ ```bash
131
+ python app.py --headless True --use_custom_model True --ebook <ebook_file_path> --voice <target_voice_file_path> --language <language> --custom_model_url <custom_model_URL_ZIP_path>
132
+ ```
133
+
134
+ - **<ebook_file_path>**: 电子书文件的路径。
135
+ - **<target_voice_file_path>**: 指定转换的语音文件,可选。
136
+ - **<language>**: 指定转换的语言,可选。
137
+ - **<custom_model_URL_ZIP_path>**: 模型文件夹压缩包的URL路径。例如
138
+ [xtts_David_Attenborough_fine_tune](https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/tree/main) `https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/resolve/main/Finished_model_files.zip?download=true`
139
+ - **[更多参数]**: 使用 `-h` 参数,如 `python app.py -h`
140
+
141
+ ### 🔍 详细指南,包括所有要使用的参数列表
142
+ ```bash
143
+ python app.py -h
144
+ ```
145
+ - 这将输出以下内容:
146
+ ```bash
147
+ usage: app.py [-h] [--share] [--headless [HEADLESS]] [--ebook EBOOK]
148
+ [--ebooks_dir [EBOOKS_DIR]] [--voice VOICE] [--language LANGUAGE]
149
+ [--device {cpu,gpu}] [--use_custom_model] [--custom_model CUSTOM_MODEL]
150
+ [--custom_config CUSTOM_CONFIG] [--custom_vocab CUSTOM_VOCAB]
151
+ [--custom_model_url CUSTOM_MODEL_URL] [--temperature TEMPERATURE]
152
+ [--length_penalty LENGTH_PENALTY]
153
+ [--repetition_penalty REPETITION_PENALTY] [--top_k TOP_K] [--top_p TOP_P]
154
+ [--speed SPEED] [--enable_text_splitting]
155
+
156
+ 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.
157
+
158
+ options:
159
+ -h, --help show this help message and exit
160
+ --share Enable a public shareable Gradio link. Defaults to False.
161
+ --headless [HEADLESS]
162
+ Run in headless mode. Defaults to True if the flag is present without a value, False otherwise.
163
+ --ebook EBOOK Path to the ebook file for conversion. Required in headless mode.
164
+ --ebooks_dir [EBOOKS_DIR]
165
+ Path to the directory containing ebooks for batch conversion. Defaults to './ebooks' if 'default' value is provided.
166
+ --voice VOICE Path to the target voice file for TTS. Optional, uses a default voice if not provided.
167
+ --language LANGUAGE Language for the audiobook conversion. Options: en, es, fr, de, it, pt, pl, tr, ru, nl, cs, ar, zh-cn, ja, hu, ko. Defaults to English (en).
168
+ --device {cpu,gpu} Type of processor unit for the audiobook conversion. Defaults to cpu.
169
+ --use_custom_model Use a custom TTS model. Defaults to False. Must be True to use custom models.
170
+ --custom_model CUSTOM_MODEL
171
+ Path to the custom model file (.pth). Required if using a custom model.
172
+ --custom_config CUSTOM_CONFIG
173
+ Path to the custom config file (config.json). Required if using a custom model.
174
+ --custom_vocab CUSTOM_VOCAB
175
+ Path to the custom vocab file (vocab.json). Required if using a custom model.
176
+ --custom_model_url CUSTOM_MODEL_URL
177
+ URL to download the custom model as a zip file. Optional, but will be used if provided. Examples include David Attenborough's model: 'https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/resolve/main/Finished_model_files.zip?download=true'. More XTTS fine-tunes can be found on my Hugging Face at 'https://huggingface.co/drewThomasson'.
178
+ --temperature TEMPERATURE
179
+ Temperature for the model. Defaults to 0.65. Higher temperatures lead to more creative outputs.
180
+ --length_penalty LENGTH_PENALTY
181
+ A length penalty applied to the autoregressive decoder. Defaults to 1.0. Not applied to custom models.
182
+ --repetition_penalty REPETITION_PENALTY
183
+ A penalty that prevents the autoregressive decoder from repeating itself. Defaults to 2.0.
184
+ --top_k TOP_K Top-k sampling. Lower values mean more likely outputs and increased audio generation speed. Defaults to 50.
185
+ --top_p TOP_P Top-p sampling. Lower values mean more likely outputs and increased audio generation speed. Defaults to 0.8.
186
+ --speed SPEED Speed factor for the speech generation. Defaults to 1.0.
187
+ --enable_text_splitting
188
+ Enable splitting text into sentences. Defaults to False.
189
+
190
+ Example usage:
191
+ Windows:
192
+ headless:
193
+ ./ebook2audiobook.cmd --headless --ebook 'path_to_ebook' --voice 'path_to_voice' --language en --use_custom_model --custom_model 'model.zip' --custom_config config.json --custom_vocab vocab.json
194
+ Graphic Interface:
195
+ ./ebook2audiobook.cmd
196
+ Linux/Mac:
197
+ headless:
198
+ ./ebook2audiobook.sh --headless --ebook 'path_to_ebook' --voice 'path_to_voice' --language en --use_custom_model --custom_model 'model.zip' --custom_config config.json --custom_vocab vocab.json
199
+ Graphic Interface:
200
+ ./ebook2audiobook.sh
201
+ ```
202
+
203
+ <details>
204
+ <summary>⚠️ 遗留的旧版使用说明</summary>
205
+
206
+ ## 🚀 使用
207
+
208
+ ----> `ebook2audiobookXTTS/legacy/`
209
+
210
+ ### 🖥️ Web界面
211
+
212
+ 1. **运行脚本**:
213
+ ```bash
214
+ python custom_model_ebook2audiobookXTTS_gradio.py
215
+ ```
216
+
217
+ 2. **打开web应用程序**: 单击终端中提供的URL以访问web应用程序并转换电子书。
218
+
219
+ ### 📝 基础用法
220
+
221
+ ```bash
222
+ python ebook2audiobook.py <path_to_ebook_file> [path_to_voice_file] [language_code]
223
+ ```
224
+
225
+ - **<path_to_ebook_file>**: 电子书文件的路径。
226
+ - **[path_to_voice_file]**: 指定转换的语音文件,可选。
227
+ - **[language_code]**: 指定转换的语言,可选。
228
+
229
+ ### 🧩 自定义XTTS模型
230
+
231
+ ```bash
232
+ python custom_model_ebook2audiobookXTTS.py <ebook_file_path> <target_voice_file_path> <language> <custom_model_path> <custom_config_path> <custom_vocab_path>
233
+ ```
234
+
235
+ - **<ebook_file_path>**: 电子书文件的路径。
236
+ - **<target_voice_file_path>**: 指定转换的语音文件,可选。
237
+ - **<language>**: 指定转换的语言,可选。
238
+ - **<custom_model_path>**: `model.pth`的路径。
239
+ - **<custom_config_path>**: `config.json`的路径。
240
+ - **<custom_vocab_path>**: `vocab.json`的路径。
241
+ </details>
242
+
243
+ ### 🐳 使用Docker
244
+
245
+ 您还可以使用Docker运行电子书到有声读物的转换器。这种方法确保了不同环境之间的一致性,并简化了设置。
246
+
247
+ #### 🚀 运行Docker容器
248
+
249
+ 要运行Docker容器并启动Gradio接口,请使用以下命令:
250
+
251
+ -仅使用CPU运行
252
+ ```powershell
253
+ docker run -it --rm -p 7860:7860 --platform=linux/amd64 athomasson2/ebook2audiobookxtts:huggingface python app.py
254
+ ```
255
+ -使用GPU加速运行(仅限Nvida显卡)
256
+ ```powershell
257
+ docker run -it --rm --gpus all -p 7860:7860 --platform=linux/amd64 athomasson2/ebook2audiobookxtts:huggingface python app.py
258
+ ```
259
+
260
+ 此命令将启动7860端口上的Gradio接口(localhost:7860)
261
+ - 对于更多选项,如以无头模式运行docker或公开gradio链接,请在docker启动命令中的`app.py`后添加`-h`参数
262
+ <details>
263
+ <summary><strong>在无头模式下使用docker或使用额外参数修改任何内容的示例+完整指南</strong></summary>
264
+
265
+ ## 在无头模式下使用docker的示例
266
+
267
+ 首先是docker pull的最新版本
268
+ ```bash
269
+ docker pull athomasson2/ebook2audiobookxtts:huggingface
270
+ ```
271
+
272
+ - 在运行此命令之前,您需要在当前目录中创建一个名为“input folder”的目录,该目录将被链接,您可以在此处放置docker镜像的输入文件
273
+ ```bash
274
+ mkdir input-folder && mkdir Audiobooks
275
+ ```
276
+
277
+ - 运行下面命令需要将 **YOUR_INPUT_FILE.TXT** 替换为您创建的输入文件的名称
278
+
279
+ ```bash
280
+ docker run -it --rm \
281
+ -v $(pwd)/input-folder:/home/user/app/input_folder \
282
+ -v $(pwd)/Audiobooks:/home/user/app/Audiobooks \
283
+ --platform linux/amd64 \
284
+ athomasson2/ebook2audiobookxtts:huggingface \
285
+ python app.py --headless True --ebook /home/user/app/input_folder/YOUR_INPUT_FILE.TXT
286
+ ```
287
+
288
+ - 应该就是这样了!
289
+
290
+ - 输出Audiobooks将在Audiobook文件夹中找到,该文件夹也位于您运行此docker命令的本地目录中
291
+
292
+
293
+ ## 要获取此程序中其他参数的帮助命令,可以运行以下命令
294
+
295
+ ```bash
296
+ docker run -it --rm \
297
+ --platform linux/amd64 \
298
+ athomasson2/ebook2audiobookxtts:huggingface \
299
+ python app.py -h
300
+
301
+ ```
302
+
303
+
304
+ 这将输出以下内容
305
+
306
+ ```bash
307
+ user/app/ebook2audiobookXTTS/input-folder -v $(pwd)/Audiobooks:/home/user/app/ebook2audiobookXTTS/Audiobooks --memory="4g" --network none --platform linux/amd64 athomasson2/ebook2audiobookxtts:huggingface python app.py -h
308
+ starting...
309
+ usage: app.py [-h] [--share SHARE] [--headless HEADLESS] [--ebook EBOOK] [--voice VOICE]
310
+ [--language LANGUAGE] [--use_custom_model USE_CUSTOM_MODEL]
311
+ [--custom_model CUSTOM_MODEL] [--custom_config CUSTOM_CONFIG]
312
+ [--custom_vocab CUSTOM_VOCAB] [--custom_model_url CUSTOM_MODEL_URL]
313
+ [--temperature TEMPERATURE] [--length_penalty LENGTH_PENALTY]
314
+ [--repetition_penalty REPETITION_PENALTY] [--top_k TOP_K] [--top_p TOP_P]
315
+ [--speed SPEED] [--enable_text_splitting ENABLE_TEXT_SPLITTING]
316
+
317
+ Convert eBooks to Audiobooks using a Text-to-Speech model. You can either launch the
318
+ Gradio interface or run the script in headless mode for direct conversion.
319
+
320
+ options:
321
+ -h, --help show this help message and exit
322
+ --share SHARE Set to True to enable a public shareable Gradio link. Defaults
323
+ to False.
324
+ --headless HEADLESS Set to True to run in headless mode without the Gradio
325
+ interface. Defaults to False.
326
+ --ebook EBOOK Path to the ebook file for conversion. Required in headless
327
+ mode.
328
+ --voice VOICE Path to the target voice file for TTS. Optional, uses a default
329
+ voice if not provided.
330
+ --language LANGUAGE Language for the audiobook conversion. Options: en, es, fr, de,
331
+ it, pt, pl, tr, ru, nl, cs, ar, zh-cn, ja, hu, ko. Defaults to
332
+ English (en).
333
+ --use_custom_model USE_CUSTOM_MODEL
334
+ Set to True to use a custom TTS model. Defaults to False. Must
335
+ be True to use custom models, otherwise you'll get an error.
336
+ --custom_model CUSTOM_MODEL
337
+ Path to the custom model file (.pth). Required if using a custom
338
+ model.
339
+ --custom_config CUSTOM_CONFIG
340
+ Path to the custom config file (config.json). Required if using
341
+ a custom model.
342
+ --custom_vocab CUSTOM_VOCAB
343
+ Path to the custom vocab file (vocab.json). Required if using a
344
+ custom model.
345
+ --custom_model_url CUSTOM_MODEL_URL
346
+ URL to download the custom model as a zip file. Optional, but
347
+ will be used if provided. Examples include David Attenborough's
348
+ model: 'https://huggingface.co/drewThomasson/xtts_David_Attenbor
349
+ ough_fine_tune/resolve/main/Finished_model_files.zip?download=tr
350
+ ue'. More XTTS fine-tunes can be found on my Hugging Face at
351
+ 'https://huggingface.co/drewThomasson'.
352
+ --temperature TEMPERATURE
353
+ Temperature for the model. Defaults to 0.65. Higher Tempatures
354
+ will lead to more creative outputs IE: more Hallucinations.
355
+ Lower Tempatures will be more monotone outputs IE: less
356
+ Hallucinations.
357
+ --length_penalty LENGTH_PENALTY
358
+ A length penalty applied to the autoregressive decoder. Defaults
359
+ to 1.0. Not applied to custom models.
360
+ --repetition_penalty REPETITION_PENALTY
361
+ A penalty that prevents the autoregressive decoder from
362
+ repeating itself. Defaults to 2.0.
363
+ --top_k TOP_K Top-k sampling. Lower values mean more likely outputs and
364
+ increased audio generation speed. Defaults to 50.
365
+ --top_p TOP_P Top-p sampling. Lower values mean more likely outputs and
366
+ increased audio generation speed. Defaults to 0.8.
367
+ --speed SPEED Speed factor for the speech generation. IE: How fast the
368
+ Narrerator will speak. Defaults to 1.0.
369
+ --enable_text_splitting ENABLE_TEXT_SPLITTING
370
+ Enable splitting text into sentences. Defaults to True.
371
+
372
+ Example: python script.py --headless --ebook path_to_ebook --voice path_to_voice
373
+ --language en --use_custom_model True --custom_model model.pth --custom_config
374
+ config.json --custom_vocab vocab.json
375
+ ```
376
+ </details>
377
+
378
+ #### 🖥️ Docker图形用户界面
379
+ ![demo_web_gui](https://github.com/user-attachments/assets/85af88a7-05dd-4a29-91de-76a14cf5ef06)
380
+
381
+ <details>
382
+ <summary>点击查看Web界面的图片</summary>
383
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/b36c71cf-8e06-484c-a252-934e6b1d0c2f">
384
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/c0dab57a-d2d4-4658-bff9-3842ec90cb40">
385
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/0a99eeac-c521-4b21-8656-e064c1adc528">
386
+ </details>
387
+
388
+ ### 🛠️ 关于自定义XTTS模型
389
+
390
+ 为更好地处理特定声音而构建的模型。查看我的Hugging Face页面 [here](https://huggingface.co/drewThomasson).
391
+
392
+ 要使用自定义模型,请粘贴“Finished_model_files.zip”文件的链接,如下所示:
393
+
394
+ [David Attenborough fine tuned Finished_model_files.zip](https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/resolve/main/Finished_model_files.zip?download=true)
395
+
396
+
397
+
398
+
399
+ 更多详细信息请访问 [Dockerfile Hub Page]([https://github.com/DrewThomasson/ebook2audiobookXTTS](https://hub.docker.com/repository/docker/athomasson2/ebook2audiobookxtts/general)).
400
+
401
+ ## 🌐 微调XTTS模型
402
+
403
+ 要查找已经过微调的XTTS型号,请访问[Hugging Face](https://huggingface.co/drewThomasson) 🌐. 模型搜索需要包含“xtts fine tune”的关键字。
404
+
405
+ ## 🎥 Demos
406
+
407
+ https://github.com/user-attachments/assets/8486603c-38b1-43ce-9639-73757dfb1031
408
+
409
+ ## 🤗 [Huggingface space demo](https://huggingface.co/spaces/drewThomasson/ebook2audiobookXTTS)
410
+ - Huggingface空间正在空闲cpu层上运行,所以预计会非常慢或超时,哈哈,只是不要给它大文件
411
+ - 最好复制空间或在本地运行。
412
+ ## 📚 支持的电子书格式
413
+
414
+ - `.epub`, `.pdf`, `.mobi`, `.txt`, `.html`, `.rtf`, `.chm`, `.lit`, `.pdb`, `.fb2`, `.odt`, `.cbr`, `.cbz`, `.prc`, `.lrf`, `.pml`, `.snb`, `.cbc`, `.rb`, `.tcr`
415
+ - **最佳结果**: `.epub` 或者 `.mobi`格式可以进行自动章节检测。
416
+
417
+ ## 📂 输出
418
+
419
+ - 创建一个包含元数据和章节的“.m4b”文件。
420
+ - **例子**: ![Example](https://github.com/DrewThomasson/VoxNovel/blob/dc5197dff97252fa44c391dc0596902d71278a88/readme_files/example_in_app.jpeg)
readme/README_RU.md ADDED
@@ -0,0 +1,391 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 📚 ebook2audiobook
2
+
3
+ Конвертация электронных книг в аудиокниги с сохранением глав и метаданных, используются механизмы Calibre и XTTS. Поддерживаются опциональное клонирование голоса и множественные языки!
4
+ > [!IMPORTANT]
5
+ **Этот инструмент предназначен для использования только с электронными книгами, не защищёнными DRM, приобретёнными законным путём.**
6
+ Авторы не несут ответственности за неправильное использование этого программного обеспечения или любые юридические последствия, связанные с его использованием.
7
+ Используйте этот инструмент ответственно и в соответствии с действующим законодательством.
8
+
9
+
10
+ #### 🖥️ Web-интерфейс
11
+ ![demo_web_gui](https://github.com/user-attachments/assets/85af88a7-05dd-4a29-91de-76a14cf5ef06)
12
+
13
+ <details>
14
+ <summary>Больше картинок Web-интерфейса</summary>
15
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/b36c71cf-8e06-484c-a252-934e6b1d0c2f">
16
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/c0dab57a-d2d4-4658-bff9-3842ec90cb40">
17
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/0a99eeac-c521-4b21-8656-e064c1adc528">
18
+ </details>
19
+
20
+ ## README.md
21
+ - en [English](README.md)
22
+ - zh_CN [简体中文](readme/README_CN.md)
23
+ - ru [Русский](readme/README_RU.md)
24
+
25
+
26
+ ## 🌟 Возможности
27
+
28
+ - 📖 Преобразование электронных книг в текстовой формат при помощи Calibre.
29
+ - 📚 Разбитие электронных книг по главам для аудиоформата.
30
+ - 🎙️ Высококачественное преобразование текста в голос при помощи Coqui XTTS.
31
+ - 🗣️ Опциональное клонирование голоса на основе вашего голосового файла.
32
+ - 🌍 Многоязыковая поддержка (Английский по умолчанию).
33
+ - 🖥️ Для работы достаточно всего 4 Гб ОЗУ.
34
+
35
+ ## 🤗 [Демонстрация на Huggingface](https://huggingface.co/spaces/drewThomasson/ebook2audiobookXTTS)
36
+ - Пространство на Huggingface работает на бесплатном процессорном уровне, посему не стоит ожидать от него высокой скорости обработки или отсутствие сообщений о таймаутах. Даже и не пытайтесь обработать большие файлы.
37
+ - Лучше всего скопировать пространство или запустить приложение локально.
38
+
39
+ ## Бесплатный Google Colab [![Бесплатный Google Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/DrewThomasson/ebook2audiobookXTTS/blob/main/Notebooks/colab_ebook2audiobookxtts.ipynb)
40
+
41
+
42
+ ## 🛠️ Требования
43
+
44
+ - Python 3.10
45
+ - `coqui-tts` Python package
46
+ - Calibre (для конвертации электронных книг)
47
+ - FFmpeg (для создания аудиокниг)
48
+ - Опционально: собственный файл с голосом для начитки
49
+
50
+
51
+ ### 🔧 Установка
52
+
53
+ 1. **Установить Python 3.x** из [Python.org](https://www.python.org/downloads/).
54
+
55
+ 2. **Установить Calibre**:
56
+ - **Ubuntu**: `sudo apt-get install -y calibre`
57
+ - **macOS**: `brew install calibre`
58
+ - **Windows** (Admin Powershell): `choco install calibre`
59
+
60
+ 3. **Установить FFmpeg**:
61
+ - **Ubuntu**: `sudo apt-get install -y ffmpeg`
62
+ - **macOS**: `brew install ffmpeg`
63
+ - **Windows** (Admin Powershell): `choco install ffmpeg`
64
+
65
+ 4. **Опционально: установить Mecab** (для не латинских языков):
66
+ - **Ubuntu**: `sudo apt-get install -y mecab libmecab-dev mecab-ipadic-utf8`
67
+ - **macOS**: `brew install mecab`, `brew install mecab-ipadic`
68
+ - **Windows**: [mecab-website-to-install-manually](https://taku910.github.io/mecab/#download) (Замечание: Японский язык поддерживается ограничено)
69
+
70
+ 5. **Установить пакеты Python**:
71
+ ```bash
72
+ pip install coqui-tts==0.24.2 pydub nltk beautifulsoup4 ebooklib tqdm gradio==4.44.0
73
+
74
+ python -m nltk.downloader punkt
75
+ python -m nltk.downloader punkt_tab
76
+ ```
77
+
78
+ **Для не латинских языков**:
79
+ ```bash
80
+ pip install mecab mecab-python3 unidic
81
+
82
+ python -m unidic download
83
+ ```
84
+
85
+ ## 🌐 Поддерживаемые языки
86
+
87
+ - **English (en)**
88
+ - **Spanish (es)**
89
+ - **French (fr)**
90
+ - **German (de)**
91
+ - **Italian (it)**
92
+ - **Portuguese (pt)**
93
+ - **Polish (pl)**
94
+ - **Turkish (tr)**
95
+ - **Russian (ru)**
96
+ - **Dutch (nl)**
97
+ - **Czech (cs)**
98
+ - **Arabic (ar)**
99
+ - **Chinese (zh-cn)**
100
+ - **Japanese (ja)**
101
+ - **Hungarian (hu)**
102
+ - **Korean (ko)**
103
+
104
+ Указывайте код нужного языка при запуске в безинтерфейсном режиме (в коммандной строке).
105
+ ## 🚀 Использование
106
+
107
+ ### 🖥️ Запуск Gradio Web-интерфейса
108
+
109
+ 1. **Запустите скрипт**:
110
+ ```bash
111
+ python app.py
112
+ ```
113
+
114
+ 2. **Откройте Web-приложение**: нажмите на ссылку появившуся в окне терминала для доступа к Web-приложению и конвертированию электронных книг.
115
+ 3. **Для доступа из сети**: добавьте `--share True` в конец команды, наподобие: `python app.py --share True`
116
+ - **[Для большего количества параметров]**: используйте `-h` ключ, наподобие: `python app.py -h`
117
+
118
+ ### 📝 Типовое использование в безинтерфейсном режиме
119
+
120
+ ```bash
121
+ python app.py --headless True --ebook <path_to_ebook_file> --voice [path_to_voice_file] --language [language_code]
122
+ ```
123
+
124
+ - **<path_to_ebook_file>**: путь к файлу электронной книги.
125
+ - **[path_to_voice_file]**: путь к примеру голоса, для опционального клонирования голоса для начитки.
126
+ - **[language_code]**: по желанию, выбрать язык.
127
+ - **[Для большего количества парамтеров]**: используйте `-h` ключ, наподобие `python app.py -h`
128
+
129
+ ### 🧩 Безинтерфейсное использование с индивиуальной моделью XTTS
130
+
131
+ ```bash
132
+ python app.py --headless True --use_custom_model True --ebook <ebook_file_path> --voice <target_voice_file_path> --language <language> --custom_model <custom_model_path> --custom_config <custom_config_path> --custom_vocab <custom_vocab_path>
133
+ ```
134
+
135
+ - **<ebook_file_path>**: путь к файлу электронной книги.
136
+ - **<target_voice_file_path>**: путь к примеру голоса, для опционального клонирования.
137
+ - **\<language>**: по желанию, выбрать язык.
138
+ - **<custom_model_path>**: путь к `model.pth`.
139
+ - **<custom_config_path>**: путь к `config.json`.
140
+ - **<custom_vocab_path>**: путь к `vocab.json`.
141
+ - **[Для большего количества парамтеров]**: используйте `-h` ключ, наподобие `python app.py -h`
142
+
143
+
144
+ ### 🧩 Безинтерфейсое использование с индивидуальной моделью XTTS со ссылкой на Zip-архив содержащий модель тонкой настройки XTTS 🌐
145
+
146
+ ```bash
147
+ python app.py --headless True --use_custom_model True --ebook <ebook_file_path> --voice <target_voice_file_path> --language <language> --custom_model_url <custom_model_URL_ZIP_path>
148
+ ```
149
+
150
+ - **<ebook_file_path>**: путь к файлу eBook.
151
+ - **<target_voice_file_path>**: путь к примеру голоса, для опционального клонирования.
152
+ - **\<language>**: по желанию, выбрать язык.
153
+ - **<custom_model_URL_ZIP_path>**: путь в виде URL к архиву формата zip с папкой модели. Например, [xtts_David_Attenborough_fine_tune](https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/tree/main) `https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/resolve/main/Finished_model_files.zip?download=true`
154
+ - Для индивидуальной модели все равно потребуется референсный аудиофайл с голосом:
155
+ [референсный аудиофайл с голосом David Attenborough](https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/blob/main/ref.wav)
156
+ - **[Для большего количества парамтеров]**: используйте `-h` ключ, наподобие `python app.py -h`
157
+
158
+ ### 🔍 Для подробного списка всех параметров используйте
159
+ ```bash
160
+ python app.py -h
161
+ ```
162
+ - Будет выведен примерно следующий сприсок ключей:
163
+ ```bash
164
+ использование: app.py [-h] [--share SHARE] [--headless HEADLESS] [--ebook EBOOK] [--voice VOICE]
165
+ [--language LANGUAGE] [--use_custom_model USE_CUSTOM_MODEL]
166
+ [--custom_model CUSTOM_MODEL] [--custom_config CUSTOM_CONFIG]
167
+ [--custom_vocab CUSTOM_VOCAB] [--custom_model_url CUSTOM_MODEL_URL]
168
+ [--temperature TEMPERATURE] [--length_penalty LENGTH_PENALTY]
169
+ [--repetition_penalty REPETITION_PENALTY] [--top_k TOP_K] [--top_p TOP_P]
170
+ [--speed SPEED] [--enable_text_splitting ENABLE_TEXT_SPLITTING]
171
+
172
+ Преобразование электронных книг в аудиокниги с использованием модели Text-to-Speech (TTS). Вы можете либо использовать
173
+ интерфейс Gradio, либо запустить скрипт в безинтерфейсном режиме (командная строка) для прямого конвертирования.
174
+
175
+ опции:
176
+ -h, --help Отобразить этот список и выйти
177
+ --share SHARE Установить в True для включения публичного доступа к Web-интерфейсу Gradio. По умолчанию False.
178
+ --headless HEADLESS Установить в True для использования безинтерфейсного режима. По умолчанию False.
179
+ --ebook EBOOK Путь к электронной книге для конвертации. Необходимо для безинтерфейсного режима.
180
+ --voice VOICE Путь к целевому голосовому файлу для TTS (текст-в-голос). Опционально, используется голос по умолчанию, если путь не указан.
181
+ --language LANGUAGE Язык для конвертации в аудиокнигу. Варианты: en, es, fr, de,
182
+ it, pt, pl, tr, ru, nl, cs, ar, zh-cn, ja, hu, ko. По умолчанию English (en).
183
+ --use_custom_model USE_CUSTOM_MODEL
184
+ Установить в True для использования индивидуальной модели TTS. По умолчанию False. Необходимо переключить в
185
+ True для использования индивидулаьной модели, в противном случае возникнет ошибка.
186
+ --custom_model CUSTOM_MODEL
187
+ Путь к файлу индивидуальной модели (.pth). Требуется, если используется индивидуальная модель.
188
+ --custom_config CUSTOM_CONFIG
189
+ Путь к конфигурационнмоу файлу индивидуальной модели (config.json). Требуется, если используется индивидуальная модель.
190
+ --custom_vocab CUSTOM_VOCAB
191
+ Путь к словарю индивидуальной модели (vocab.json). Требуется, если используется индивидуальная модель.
192
+ --custom_model_url CUSTOM_MODEL_URL
193
+ URL для скачивания индивидуальной модели в виде zip-архива. Опционально, но если указано, то будет использовано.
194
+ Примеры включающие модель David Attenborough: 'https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/resolve/main/Finished_model_files.zip?download=true'. Больше точно-настроенных моделей XTTS можно найти на Hugging Face 'https://huggingface.co/drewThomasson'.
195
+ --temperature TEMPERATURE
196
+ Температура для модели. По умолчанию 0.65. Чем выше температура, тем более креативным будет синтез голоса, с большим наваждением. Чем меньше, тем более монотонным и спокойным.
197
+ --length_penalty LENGTH_PENALTY
198
+ Ограничение длинны авторегрессионного декодреа. По умолчанию 1.0. Не применяется к индивидуальным моделям.
199
+ --repetition_penalty REPETITION_PENALTY
200
+ Ограниечение предотвращающее повторение авторегрессивным декодером за собой. По умолчанию 2.0
201
+ --top_k TOP_K Сэмплирование Top-k. Меньшее значние приводит к более вероятностному выводу и ускоряют генерацию аудио. По умолчанию 50.
202
+ --top_p TOP_P Сэмплирование Top-p. Меньшее значние приводит к более вероятностному выводу и ускоряют генерацию аудио. По у��олчанию 0.8.
203
+ --speed SPEED Фактор скорости начитки. Чем больше значение, тем быстрее диктор будет читать текст. По умолчанию 1.0.
204
+ --enable_text_splitting ENABLE_TEXT_SPLITTING
205
+ Включает разбиение текста на предложения. По умолчаниею True.
206
+
207
+ Пример: python script.py --headless --ebook path_to_ebook --voice path_to_voice --language en --use_custom_model True --custom_model model.pth --custom_config config.json --custom_vocab vocab.json
208
+ ```
209
+
210
+
211
+
212
+ ### 🐳 Использование Docker
213
+
214
+ Помимо всего прочего, можно использовать Docker для использования конвертера электронных книг в аудиокниги. Этот метод обеспечивает согласованность в различных средах и упрощает настройку.
215
+
216
+ #### 🚀 Запуск контейнера Docker
217
+
218
+ Для запуска контейнера Docker и интерфейса Gradio используйте следующую команду:
219
+
220
+ -Запуск с использованием только CPU (процессора)
221
+ ```powershell
222
+ docker run -it --rm -p 7860:7860 --platform=linux/amd64 athomasson2/ebook2audiobookxtts:huggingface python app.py
223
+ ```
224
+ -Запуск с использованием ускорения на GPU (графической карты), поддерживаются только видеокарты NVIDIA
225
+ ```powershell
226
+ docker run -it --rm --gpus all -p 7860:7860 --platform=linux/amd64 athomasson2/ebook2audiobookxtts:huggingface python app.py
227
+ ```
228
+
229
+ Эта команда запускает интерфейс Gradio на порту 7860. (localhost:7860)
230
+ - Для получения большей информации о доступных командах в безинтерфейсном режиме или предоставление доступа к Gradio в сети, используйте ключ `-h` после имени команды `app.py` в терминале Docker
231
+ <details>
232
+ <summary><strong>Пример использования Docker в безинтерфейсном режиме или модификаций параметров + полный гид</strong></summary>
233
+
234
+ ## Пример использования Docker в безинтерфейсном режиме
235
+
236
+ - Сперва необходимо получить свежий контейнер с приложением
237
+ ```bash
238
+ docker pull athomasson2/ebook2audiobookxtts:huggingface
239
+ ```
240
+
241
+ - Прежде чем запустить команду на исполнение, необходимо создать директрую с именем "input-folder" в текущей папке, которая будет подтянута к использованию. В эту папку необходимо помещать файлы, которые будут видны образу Docker
242
+ ```bash
243
+ mkdir input-folder && mkdir Audiobooks
244
+ ```
245
+
246
+ - В команде ниже замените **YOUR_INPUT_FILE.TXT** именем файла, который необходимо начитать
247
+
248
+ ```bash
249
+ docker run -it --rm \
250
+ -v $(pwd)/input-folder:/home/user/app/input_folder \
251
+ -v $(pwd)/Audiobooks:/home/user/app/Audiobooks \
252
+ --platform linux/amd64 \
253
+ athomasson2/ebook2audiobookxtts:huggingface \
254
+ python app.py --headless True --ebook /home/user/app/input_folder/YOUR_INPUT_FILE.TXT
255
+ ```
256
+
257
+ - И на этом это все!
258
+
259
+ - Начитанная аудиокнига будет сформирована в папке Audiobooks, которая будет создана в вашей локальной директории, в которой был осуществлен запуск Docker
260
+
261
+
262
+ ## Для получения помощи по параметрам, необходимо запустить следующую команду
263
+
264
+ ```bash
265
+ docker run -it --rm \
266
+ --platform linux/amd64 \
267
+ athomasson2/ebook2audiobookxtts:huggingface \
268
+ python app.py -h
269
+
270
+ ```
271
+
272
+
273
+ и вывод будет следующим
274
+
275
+ ```bash
276
+ user/app/ebook2audiobookXTTS/input-folder -v $(pwd)/Audiobooks:/home/user/app/ebook2audiobookXTTS/Audiobooks --memory="4g" --network none --platform linux/amd64 athomasson2/ebook2audiobookxtts:huggingface python app.py -h
277
+ starting...
278
+ Преобразование электронных книг в аудиокниги с использованием модели Text-to-Speech (TTS). Вы можете либо использовать
279
+ интерфейс Gradio, либо запустить скрипт в безинтерфейсном режиме (командная строка) для прямого конвертирования.
280
+
281
+ опции:
282
+ -h, --help Отобразить этот список и выйти
283
+ --share SHARE Установить в True для включения публичного доступа к Web-интерфейсу Gradio. По умолчанию False.
284
+ --headless HEADLESS Установить в True для использования безинтерфейсного режима. По умолчанию False.
285
+ --ebook EBOOK Путь к электронной книге для конвертации. Необходимо для безинтерфейсного режима.
286
+ --voice VOICE Путь к целевому голосовому файлу для TTS (текст-в-голос). Опционально, используется голос по умолчанию, если путь не указан.
287
+ --language LANGUAGE Язык для конвертации в аудиокнигу. Варианты: en, es, fr, de,
288
+ it, pt, pl, tr, ru, nl, cs, ar, zh-cn, ja, hu, ko. По умолчанию English (en).
289
+ --use_custom_model USE_CUSTOM_MODEL
290
+ Установить в True для использования индивидуальной модели TTS. По умолчанию False. Необходимо переключить в
291
+ True для использования индивидулаьной модели, в противном случае возникнет ошибка.
292
+ --custom_model CUSTOM_MODEL
293
+ Путь к файлу индивидуальной модели (.pth). Требуется, если используется индивидуальная модель.
294
+ --custom_config CUSTOM_CONFIG
295
+ Путь к конфигурационнмоу файлу индивидуальной модели (config.json). Требуется, если используется индивидуальная модель.
296
+ --custom_vocab CUSTOM_VOCAB
297
+ Путь к словарю индивидуальной модели (vocab.json). Требуется, если используется индивидуальная модель.
298
+ --custom_model_url CUSTOM_MODEL_URL
299
+ URL для скачивания индивидуальной модели в виде zip-архива. Опционально, но если указано, то будет использовано.
300
+ Примеры включающие модель David Attenborough: 'https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/resolve/main/Finished_model_files.zip?download=true'. Больше точно-настроенных моделей XTTS можно найти на Hugging Face 'https://huggingface.co/drewThomasson'.
301
+ --temperature TEMPERATURE
302
+ Температура для модели. По умолчанию 0.65. Чем выше температура, тем более креативным будет синтез голоса, с большим наваждением. Чем меньше, тем более монотонным и спокойным.
303
+ --length_penalty LENGTH_PENALTY
304
+ Ограничение длинны авторегрессионного декодреа. По умолчанию 1.0. Не применяется к индивидуальным моделям.
305
+ --repetition_penalty REPETITION_PENALTY
306
+ Ограниечение предотвращающее повторение авторегрессивным декодером за собой. По умолчанию 2.0
307
+ --top_k TOP_K Сэмплирование Top-k. Меньшее значние приводит к более вероятностному выводу и ускоряют генерацию аудио. По умолчанию 50.
308
+ --top_p TOP_P Сэмплирование Top-p. Меньшее значние приводит к более вероятностному выводу и ускоряют генерацию аудио. По умолчанию 0.8.
309
+ --speed SPEED Фактор скорости начитки. Чем больше значение, тем быстрее диктор будет читать текст. По умолчанию 1.0.
310
+ --enable_text_splitting ENABLE_TEXT_SPLITTING
311
+ Включает разбиение текста на предложения. По умолчаниею True.
312
+
313
+ Пример: python script.py --headless --ebook path_to_ebook --voice path_to_voice --language en --use_custom_model True --custom_model model.pth --custom_config config.json --custom_vocab vocab.json
314
+ ```
315
+ </details>
316
+
317
+ #### 🖥️ Docker Web-интерфейс
318
+ ![demo_web_gui](https://github.com/user-attachments/assets/85af88a7-05dd-4a29-91de-76a14cf5ef06)
319
+
320
+ <details>
321
+ <summary>Нажмите для просмотра изображений Web-интерфейса</summary>
322
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/b36c71cf-8e06-484c-a252-934e6b1d0c2f">
323
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/c0dab57a-d2d4-4658-bff9-3842ec90cb40">
324
+ <img width="1728" alt="image" src="https://github.com/user-attachments/assets/0a99eeac-c521-4b21-8656-e064c1adc528">
325
+ </details>
326
+
327
+ ### 🛠️ Для индивидуальных Xtts моделей
328
+
329
+ Модели создаются для лучшего использования с конкретным голосом. Проверьте различные модели на страничке Hugging Face [тут](https://huggingface.co/drewThomasson).
330
+
331
+ Для использования индивидуальных моделей, используйте ссылку на архив с моделью `Finished_model_files.zip`, например:
332
+ [David Attenborough точно настроенный голос Finished_model_files.zip](https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/resolve/main/Finished_model_files.zip?download=true)
333
+
334
+ Для индивидуальной модели также необходим файл с голосом:
335
+ [файл с голосом David Attenborough](https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/blob/main/ref.wav)
336
+
337
+
338
+
339
+ Больше информации можно найти на [странице Dockerfile Hub]([https://github.com/DrewThomasson/ebook2audiobookXTTS](https://hub.docker.com/repository/docker/athomasson2/ebook2audiobookxtts/general)).
340
+
341
+ ## 🌐 Точно отстроенные модели Xtts models
342
+
343
+ Для поиска уже подготовленных точно настроенных моделей XTTS обратитесь к [этой страничке на Hugging Face](https://huggingface.co/drewThomasson) 🌐. Ищите модели которые имеют в наименовании "xtts fine tune".
344
+
345
+ ## 🎥 Демонстрация
346
+
347
+ Голос ненастного дня
348
+
349
+ https://github.com/user-attachments/assets/8486603c-38b1-43ce-9639-73757dfb1031
350
+
351
+ Голос David Attenborough
352
+
353
+ https://github.com/user-attachments/assets/47c846a7-9e51-4eb9-844a-7460402a20a8
354
+
355
+
356
+ ## 🤗 [Демонстрация в пространстве Huggingface](https://huggingface.co/spaces/drewThomasson/ebook2audiobookXTTS)
357
+ - Пространства на Huggingface работают на бесплатном уровне процессоров, поэтому выполнение очень медленное и частво возникают ошибки связанные с истечением времени. Не пытайтесь преобразовывать большие файлы.
358
+ - Лучше всего клонировать пространство или запускать его локально.
359
+
360
+ ## Бесплатный Google Colab [![Бесплатный Google Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/DrewThomasson/ebook2audiobookXTTS/blob/main/Notebooks/colab_ebook2audiobookxtts.ipynb)
361
+
362
+
363
+
364
+ ## 📚 Поддерживаемые форматы электронных книг
365
+
366
+ - **Можно**: `.epub`, `.pdf`, `.mobi`, `.txt`, `.html`, `.rtf`, `.chm`, `.lit`, `.pdb`, `.fb2`, `.odt`, `.cbr`, `.cbz`, `.prc`, `.lrf`, `.pml`, `.snb`, `.cbc`, `.rb`, `.tcr`
367
+ - **Лучше**: `.epub` или `.mobi` для автоматического определения глав.
368
+
369
+ ## 📂 Вывод
370
+
371
+ - Создается файл с расширением `.m4b`, содержащий метаданные и главы.
372
+ - **Пример вывода**: ![Пример](https://github.com/DrewThomasson/VoxNovel/blob/dc5197dff97252fa44c391dc0596902d71278a88/readme_files/example_in_app.jpeg)
373
+
374
+ ## 🛠️ Частые проблемы:
375
+ - "Очень медленно!" - При конвертации только на CPU она происходит медленно, единственный способ ускорения - использовать GPU от NVIDIA: [Обсуждение](https://github.com/DrewThomasson/ebook2audiobookXTTS/discussions/19#discussioncomment-10879846). Для быстрой многоязыковой генерации аудио, рекомендуется использовать другой проект [использующий piper-tts](https://github.com/DrewThomasson/ebook2audiobookpiper-tts). (Тем не менее, в нем нет функции клонирования голоса без лишней суеты и он воспроизводит голоса в качестве siri, но он намного быстрее работает на CPU.)
376
+ - "У меня проблема с зависимостями" - Просто используейте Docker. Образы в Docker самодостаточны, имеют, в том числе режим работы с конмандной строкой, клю�� для вывода помощи.
377
+ - "У меня проблема с обрезаным аудио!" - создайте запись о проблеме, автор не говорит на каждом из поддерживаемых языков и ему требуется помощь по автоматическому разбиению текста на предложения в поддерживаемых языках.😊
378
+ - "Процесс застопорился на 30% в Web-интерфейсе!" - Отображение прогресса в Web-интерфейсе выполнено на базовом уровне и содержит всего 3 шага, для контроллирования процесса посматривайте в терминальный вывод, где и отображается обработка текущего предложения.
379
+
380
+ ## С чем требуется помощь! 🙌
381
+ ## [Полный список тут](https://github.com/DrewThomasson/ebook2audiobookXTTS/issues/32)
382
+ - Любая помощь от людей говорящий на поддерживаемых языках для более корретного разбиения текста на предложения.
383
+ - Потенциальная помощь в создании инструкций для разных языков (автор знает только английский 😔).
384
+
385
+ ## 🙏 Отдельные спасибо
386
+
387
+ - **Coqui TTS**: [Coqui TTS GitHub](https://github.com/coqui-ai/TTS)
388
+ - **Calibre**: [Calibre Website](https://calibre-ebook.com)
389
+
390
+ - [@shakenbake15 за лучший способ сохранения глав](https://github.com/DrewThomasson/ebook2audiobookXTTS/issues/8)
391
+