์˜ค๋žœ๋งŒ์— stable diffusion webui์— ์ ‘์†ํ–ˆ๋”๋‹ˆ, ์•„์˜ˆ ๋Œ์•„๊ฐ€์ง€๊ฐ€ ์•Š์•˜๋‹ค.

์ฒดํฌํฌ์ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋„ฃ๊ณ  ์ƒ์„ฑ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด๋„ ์ด๋ฏธ์ง€ ์ž์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜๋‹ค.

 

* xformers์—์„œ ์ง€์›ํ•˜๋Š” ํ† ์น˜ ๋ฒ„์ „ ๋ฌธ์ œ

xformer๋Š” ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๊ฐ€์†ํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค. ์—…๋ฐ์ดํŠธ ๋˜๋ฉด์„œ torch 2.1.2๋ฒ„์ „์„ ์š”๊ตฌํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด torch๋ฒ„์ „์€ 2.0.1์ด์—ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค.

1. webui-user.bat ํŒŒ์ผ์„ ์—ฐ๋‹ค. 

set COMMANDLINE_ARGS=--reinstall-xformers --medvram --xformers --reinstall-torch

2. ์œ„์ฒ˜๋Ÿผ --reinstall-torch ์ธ์ž๋ฅผ ์ถ”๊ฐ€ํ•œํ›„ ์ €์žฅํ•˜๊ณ  ๋‹ค์‹œ webui-user.bat์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค.

3. ๊ทธ๋Ÿฌ๋ฉด ์•Œ์•„์„œ ๋ฒ„์ „์„ torch๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ๋‹ค.

4. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์œ„  --reinstall-torch ๋Š” ์ œ๊ฑฐํ•˜๊ณ  ์›๋ž˜๋Œ€๋กœ ์ธ์ž๋“ค์„ ๋˜๋Œ๋ฆฐ๋‹ค.

5. ํ•ด๊ฒฐ

 

 

์ด์ œ ์ด๋ฏธ์ง€๋Š” ์ƒ์„ฑ์ด ๋˜๋Š”๋ฐ controlnet ์ด ๋ง์ฝ์ด์—ˆ๋‹ค. 

Error running process:  E:\Libraries\stable-diff-sdxl\models\Stable-diffusion\extensions\sd-webui-controlnet\scripts\controlnet.py

Traceback (most recent call last):

* controlnet ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ๋œ๋‹ค

https://www.reddit.com/r/StableDiffusion/comments/11dba9p/controlnet_error_after_update/

๋ ˆ๋”ง์— ๋‚˜์˜จ ๋ฐฉ๋ฒ•๋Œ€๋กœ ํ•˜๋‹ˆ ํ•ด๊ฒฐ์ด ๋œ๋‹ค.

1. ๋จผ์ € extensions\sd-webui-controlnet\models ์•ˆ์— ์žˆ๋Š” ๊ธฐ์กด ๋ชจ๋ธ ํŒŒ์ผ๋“ค์„ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ด๋™์‹œ์ผœ๋†“๋Š”๋‹ค.

2. ๋‹ค์Œ extensions\sd-webui-controlnet\ ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

3. ๋‹ค์Œ Extensions > Installed์— ๋“ค์–ด๊ฐ€ controlnet ์˜ ์ฒดํฌ๋ฅผ ํ’€๊ณ  Apply and restart UI๋ฅผ ํด๋ฆญํ•œ๋‹ค.

4. cmd ์ฐฝ์„ ๋‹ซ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค. (๊ผญ ํ•ด์•ผํ•˜๋‚˜ ์‹ถ๊ธดํ•œ๋ฐ ๋‚˜๋Š” ํ–ˆ๋‹ค)

5. Install from URLํƒญ์œผ๋กœ ์ด๋™ํ•ด ๋‹ค์‹œ controlnet์„ ์ถ”๊ฐ€ํ•œ๋‹ค. 

https://github.com/Mikubill/sd-webui-controlnet

 

6. restart UIํ•˜๋‹ˆ ์—๋Ÿฌ์—†์ด ์ปจํŠธ๋กค ๋„ท์ด ์ž˜ ๋Œ์•„๊ฐ„๋‹ค. 

7. ํ™•์žฅํƒญ์— ๋“ค์–ด์˜จ ๊น€์— Check for updates ํ›„ ๋‹ค์‹œ restart UI๋ฅผ ํ•ด์„œ ๋ชจ๋“  ๋ชจ๋“ˆ๋“ค์„ ์ตœ์‹ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ–ˆ๋‹ค.

8. ํ•ด๊ฒฐ

 

 

๊ทธ๋Ÿผ์—๋„ ์˜ค๋ฅ˜๋“ค์ด ์Ÿ์•„์กŒ๋‹ค. ํ•˜๋‚˜์”ฉ ํ•ด๊ฒฐํ•ด๋ณธ๋‹ค.

* Error loading script: m2m_ui.py ์˜ค๋ฅ˜

- https://github.com/Scholar01/sd-webui-mov2mov/issues/146

1. ์œ„ ๊นƒํ—™ ์ด์Šˆ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ–ˆ๋‹ค. ๋จผ์ € modules/ui.py ํŒŒ์ผ์„ ์—ฐ๋‹ค. 

2. ์•„๋ž˜ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ €์žฅํ•œ๋‹ค.

def create_sampler_and_steps_selection(choices, tabname):
    return scripts.scripts_txt2img.script('Sampler').steps, scripts.scripts_txt2img.script('Sampler').sampler_name

3. ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค. ์—…๋ฐ์ดํŠธ ์ค‘ ํ•จ์ˆ˜ ๋ˆ„๋ฝ์ด ์žˆ์—ˆ๋‚˜๋ณด๋‹ค.

4. ํ•ด๊ฒฐ

 

 

ํ•˜์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ์—๋Ÿฌ๊ฐ€ ์•„์ง ๋‚จ์•„์žˆ๋‹ค.

* activating extra network lora: TypeError ์˜ค๋ฅ˜

- https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/13561

 

[Bug]: activating extra network lora: TypeError · Issue #13561 · AUTOMATIC1111/stable-diffusion-webui

Is there an existing issue for this? I have searched the existing issues and checked the recent builds/commits What happened? activating extra network lora: TypeError Traceback (most recent call la...

github.com

 

1. ์œ„ ๊นƒํ—™ ์ด์Šˆ์—์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค.

2. ์„ธ์ƒ์—, ๊ฐ€์žฅ ๋ณ„๊ฑฐ ์•„๋‹Œ ์˜ค๋ฅ˜์˜€๋‹ค.

3. ์•„๋ž˜์ฒ˜๋Ÿผ Add network to prompt๋ฅผ none์œผ๋กœ ํ•˜๊ณ  ์žฌ์‹œ์ž‘ํ•˜๋‹ˆ ์‚ฌ๋ผ์กŒ๋‹ค.

 

 

* No module named 'basicsr' ์˜ค๋ฅ˜

*** Error loading script: main.py
    Traceback (most recent call last):
      File "E:\AI\stable-diffusion-webui-master\modules\scripts.py", line 527, in load_scripts
        script_module = script_loading.load_module(scriptfile.path)
      File "E:\AI\stable-diffusion-webui-master\modules\script_loading.py", line 10, in load_module
        module_spec.loader.exec_module(module)
      File "<frozen importlib._bootstrap_external>", line 883, in exec_module
      File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
      File "E:\AI\stable-diffusion-webui-master\extensions\openpose-editor\scripts\main.py", line 14, in <module>
        from basicsr.utils.download_util import load_file_from_url
    ModuleNotFoundError: No module named 'basicsr'

- open pose๋ฅผ ์•„๋ฌด๋ฆฌ ๋‹ค์‹œ ๊น”์•„๋„ ํ•ด๊ฒฐ์ด ์•ˆ๋˜์—ˆ๋‹ค
- https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/15094 ์ด ์ด์Šˆ์—์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค.

1. ๋จผ์ € sd ๊ธฐ๋ณธ ๋ฃจํŠธ ํด๋”์—์„œ ์•„๋ž˜ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ํ„ฐ๋ฏธ๋„์— ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

- ํŒŒ์ด์ฌ ๊ฐ€์ƒ๋กœ์ปฌํ™˜๊ฒฝ์œผ๋กœ ๊ฐ€์„œ basicsr๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋‹ค์‹œ ๋กœ์ปฌํ™˜๊ฒฝ์„ ๋‚˜์˜ค๋Š” ์Šคํฌ๋ฆฝํŠธ๋‹ค.

venv\scripts\activate.bat
pip install basicsr
venv\scripts\deactivate.bat

 

* ๋ชจ๋‘ ํ•ด๊ฒฐ

์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์—†์ด ์•„๋ฆ„๋‹ต๊ฒŒ ๋กœ๋”ฉ๋œ๋‹ค. 

 

sd3๊ฐ€ ๋‚˜๋ฝ์œผ๋กœ ๊ฐ€๊ณ  stable diffusion ์ƒํƒœ๊ณ„๊ฐ€ ์˜คํ”ˆ์†Œ์Šค์— ์ง‘์ค‘ํ•˜๋ฉฐ ์ž์ฒด ์„ฑ์žฅํ•˜๋‹ค๋ณด๋‹ˆ ์ •์‹ ์—†๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ „ํ•˜๋Š”๊ฑฐ ๊ฐ™๋‹ค. text generation webui๋„ ๊ทธ๋ ‡๊ณ  ์ด์ชฝ์€ ํ•œ๋‹ฌ๋งŒ ์ง€๋‚˜๋„ ๋Œ๋ฆฌ๋ฉด ์—๋Ÿฌ๊ฐ€ 'ํƒ„์ƒ'ํ•œ๋‹ค.

 

๊ทธ๋ž˜์„œ ๋„ˆ๋ฌด ์ข‹๋‹ค. ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค๋Š”๊ฑด ๋ฌด์–ธ๊ฐ€ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ˆ ๋ง์ด๋‹ค.

๋„๋‹ค๋ฆฌ ๊ณ ๊ธ‰ ๋ฒˆ์—ญ์ด ์–ด๋Š์ •๋„ ์•ˆ์ •๋จ์— ๋”ฐ๋ผ ์ฝ”๋“œ ๊ณต๊ฐœ๋ฅผ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. vram์ด 23์ด์ƒ์ผ๋•Œ ์•ผ๋†€์ž ๋ชจ๋ธ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  2. ์šด์˜์ฒด์ œ๊ฐ€ ๋ฆฌ๋ˆ…์Šค์ผ ๊ฒฝ์šฐ vllm(AI ๊ฐ€์† ๋ชจ๋“ˆ) ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  3. ๋ฒˆ์—ญ ํ”„๋กฌํ”„ํŠธ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•
  4. ํ•„ํ„ฐ ๋ฌธ๊ตฌ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

ํ˜„์žฌ ์ฝ”๋“œ๋Š” ๊ฐœ๋ฐœ์ž์ธ ์ €์—๊ฒŒ๋งŒ ๋งž์ถฐ์ ธ ์žˆ์–ด ๋นˆํ‹ˆ์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

๋ชจ๋‘๊ฐ€ ์“ธ์ˆ˜ ์žˆ๊ฒŒ ๋ฐ”๊พธ๋Š”๋ฐ์—๋Š” ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์†Œ์Šค์ฝ”๋“œ ์ „๋ฉด ๊ณต๊ฐœ ํ›„ ๋‹ค์‹œ ๊ณต์ง€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!


ํ˜„์žฌ(24.07.19) eeve(๊ณ ๊ธ‰๋ฒˆ์—ญ)๋ชจ๋ธ์„ ํŒŒ์ธํŠœ๋‹ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ฐฉ์‹์œผ๋กœ ์ „์ฒ˜๋ฆฌ, ํ›„์ฒ˜๋ฆฌ, ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์„ ํ…Œ์ŠคํŠธ ํ•ด๋ณด์•˜์ง€๋งŒ

๋ฒˆ์—ญ ์ถœ๋ ฅ์‹œ ๋ฐœ์ƒํ•˜๋Š” ํ™˜๊ฐํ˜„์ƒ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์–ด๋ ค์› ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

์˜ค๋Š˜ 3์ฐจ ํŒŒ์ธํŠœ๋‹ ๊ฒฐ๊ณผ๋ฌผ์„ ์ด์šฉํ•ด ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ง€๊ธˆ๊นŒ์ง€๋Š” ๊ฒฐ๊ณผ๊ฐ€ ํฌ๋ง์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. => ๋‹ค์‹œ ๋น„๊ด€์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค

gguf๋ชจ๋ธ๋„ ํ•จ๊ป˜ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ cpu๋ฅผ ์ด์šฉํ•ด ๊ตฌ๋™์‹œํ‚ฌ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ณด๋‹ค ๋งŽ์€ ๋ถ„๋“ค์ด ๋„๋‹ค๋ฆฌ ๊ณ ๊ธ‰๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ๋ณด์‹ค์ˆ˜ ์žˆ๊ฒŒ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ž‘์—…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


์˜ค๋Š˜(24.07.21) ํ…Œ์ŠคํŠธ์—์„œ ๋งŒ์กฑํ• ๋งŒํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ง€๊ธˆ ๊ธฐ๋ถ„์ด ์ข‹์Šต๋‹ˆ๋‹คใ…‹ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์กฐ๊ธˆ ๋” ์ง„ํ–‰ํ•œ ํ›„ ์™„์„ฑ๋œ eeve-dodari๋ชจ๋ธ๊ณผ gguf๋ฒ„์ „์˜ ํ—ˆ๊น…์ŠคํŽ˜์ด์Šค ์ฃผ์†Œ๋ฅผ ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!


์ง€๊ธˆ์ด 24.07.21 ์ผ์š”์ผ ์ƒˆ๋ฒฝ 3์‹œ 30๋ถ„.

ํŒŒ์ธํŠœ๋‹์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋œ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

์‹ฌ์ง€์–ด ํ›„์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. - ๊ทธ๋™์•ˆ ai์˜ ํ™˜๊ฐํ˜„์ƒ ๋•Œ๋ฌธ์— ์—„์ฒญ๋‚œ ํ›„์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ๋งŒ ํ–ˆ๊ณ  ๊ทธ๋ ‡๊ฒŒ ํ–ˆ์–ด๋„ ์—ฌ์ „ํžˆ ๋งŽ์€ ํ™˜๊ฐ๋ฌธ๊ตฌ๋“ค์„ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค - ๋งˆ์น˜ transformer์˜ pipeline์—์„œ translation์„ ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์ฒ˜๋ฆฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ์ด๋ฆฌ๋„ ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐ๋ ์ค„์€ ๋ชฐ๋ž๋„ค์š”. 

 

 

* ํ—ˆ๊น…์ŠคํŽ˜์ด์Šค eeve-dodari ๋ชจ๋ธ ๋งํฌ

https://huggingface.co/blueflag/eeve-yanolja-dodari

 

* eeve-dodari-gguf ๋ชจ๋ธ ๋งํฌ (8bit์–‘์žํ™”)

https://huggingface.co/blueflag/eeve-yanolja-dodari_gguf

 

* basic template

prompt = f'''
Translate Human sentences into {์–ธ์–ด์„ค์ •. Korean or English} in short. Do not add anything else.\nHuman: {๋ฒˆ์—ญํ•  ๋ฌธ๊ตฌ}\nAssistant:\n
'''

 

* ์ง์ ‘ ๋ชจ๋ธ ๋กœ๋”ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜์‹ค ๋ถ„๋“ค์—๊ฒŒ

์œ„ ๋ชจ๋ธ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์œผ์‹  ํ›„ prompt๋ฅผ ์œ„์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๋ฒˆ์—ญ์š”์ฒญํ•˜์‹œ๋ฉด ์•„์ฃผ ๊น”๋”ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์‹ค์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

 

 

์ด๋ฒˆ ํŒŒ์ธํŠœ๋‹ ์ž‘์—…์— ๋ฐ€๋ ค ๋„๋‹ค๋ฆฌ ๊ณ ๊ธ‰๋ชจ๋ธ ์ฝ”๋“œ ๊ณต๊ฐœ๊ฐ€ ๋”์šฑ ๋Šฆ์–ด์กŒ๋„ค์š”. ํ•˜์ง€๋งŒ ์ด๋ฒˆ ํŒŒ์ธํŠœ๋‹ ์„ฑ๊ณผ๊ฐ€ ์ข‹์€ ๋งŒํผ ์ฝ”๋“œ๋“ค์„ ๋”์šฑ ๋‹ค๋“ฌ์–ด ๊ณต๊ฐœํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

* ๋„ค์ด๋ฒ„ ์Šค๋งˆํŠธ ์Šคํ† ์–ด๋ฅผ ํ†ตํ•ด ๋„๋‹ค๋ฆฌ๋ฅผ ์ด์šฉํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ๋„๋‹ค๋ฆฌ ํ…์ŠคํŠธ txt ๊ณ ๊ธ‰ ๋ฒˆ์—ญํ•˜๋Ÿฌ ๊ฐ€๊ธฐ
2. ๋„๋‹ค๋ฆฌ ์ „์ž์ฑ… epub ๊ณ ๊ธ‰ ๋ฒˆ์—ญํ•˜๋Ÿฌ ๊ฐ€๊ธฐ
3. ๋„๋ผ๋ฆฌ 70๋ถ„ ์ž์œ ๋ฒˆ์—ญํ•˜๋Ÿฌ ๊ฐ€๊ธฐ

* ๋™๊ธฐ

1. ๊ธฐ์ˆ ๊ด€๋ จ ์˜์ƒ์€ ์ž๋™์ƒ์„ฑ ์ž๋ง‰์ด๋ผ๋„ ์–ด์ฐŒ์–ด์ฐŒ ํ•ด๋ณผ๋งŒํ•˜์ง€๋งŒ ๋‹คํ๋ฉ˜ํ„ฐ๋ฆฌ๋‚˜ ์ธํ„ฐ๋ทฐ ์˜์ƒ์˜ ๊ฒฝ์šฐ ๋„์ €ํžˆ ํ™”๋ฉด์„ ๋”ฐ๋ผ๊ฐˆ์ˆ˜ ์—†์—ˆ๋‹ค.

2. ๋†’์€ ์ˆ˜์ค€์ด ์•„๋‹ˆ์–ด๋„ ์ข‹์œผ๋‹ˆ ๋‚ด์šฉ์„ ์–ด๋Š ์ •๋„๋Š” ๋”ฐ๋ผ๊ฐ€๊ฒŒ ํ•ด์ค„ ๋ฒˆ์—ญ์ด ํ•„์š”ํ–ˆ๋‹ค.

 

* ๊ธฐ๋Šฅ

1. ์ด์— ๋„๋‹ค๋ฆฌ ์— ์ž๋ง‰๋ฒˆ์—ญ(srtํŒŒ์ผ) ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

2. smi ๋ฒˆ์—ญ๋„ ์ถ”๊ฐ€ํ• ๊นŒํ•ด์„œ ์•Œ์•„๋ณด๋‹ˆ ์ด๊ฑด ํ•œ๊ตญ์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผํ˜•์‹์ด๋ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋นผ๋ฒ„๋ ธ๋‹ค.

3. ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค๋ฅธ ๋ฒˆ์—ญ๊ณผ ์™„์ „ํžˆ ๋™์ผํ•˜๋‹ค. srtํŒŒ์ผ์„ ๋“œ๋ž˜๊ทธ ํ•˜์—ฌ ์ฒจ๋ถ€ํ•œ ํ›„ ๋ฒˆ์—ญ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.

 

* ์œ ํŠœ๋ธŒ ์˜์ƒ์— ๋Œ€ํ•˜์—ฌ

1. ์‚ฌ์‹ค ์œ ํŠœ๋ธŒ ์ฃผ์†Œ๋งŒ ๋„ฃ์œผ๋ฉด ์˜์ƒ๊ณผ ์ž๋ง‰์„ ์ž๋™์œผ๋กœ ๋ฐ›๊ณ  ๋ฒˆ์—ญ๊นŒ์ง€ ํ•˜๋Š”๊ฑธ ์ด๋ฏธ ๊ฐœ๋ฐœํ–ˆ๋‹ค.

2. ๊ทธ๋Ÿฐ๋ฐ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ whisper-webui ๊ฐ€ ์ด๋ฏธ ์žˆ๋‹ค.

3. ๋‹ค๋ฅธ ์ ์ด๋ผ๋ฉด whisper-webui๊ฐ€ ai๋ฅผ ์ด์šฉํ•ด ์ง์ ‘ ์Œ์„ฑ์„ ๋“ฃ๊ณ  ์ž๋ง‰ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ ํ›„ ๊ทธ๊ฑธ ๋ฒˆ์—ญํ•˜๋Š” ๊ฑฐ๊ณ 

4. ๋‚ด๊ฐ€ ๋งŒ๋“ ๊ฑด ์œ ํŠœ๋ธŒ์—์„œ ์ž๋™์ƒ์„ฑํ–ˆ๊ฑฐ๋‚˜ ํ˜น์€ ์ด๋ฏธ ์ œ๊ณต๋œ ์ž๋ง‰ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•œํ›„ ๊ทธ๊ฑธ ๋ฒˆ์—ญํ•œ๋‹ค๋Š” ์ฐจ์ด๋‹ค.

5. ๊ทธ๋ž˜์„œ ์ด๊ฑด ๋‚˜๋งŒ ์“ฐ๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

* ๋ฒˆ์—ญ ํ’ˆ์งˆ

1. ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋ฒˆ์—ญ์— ๋น„ํ•ด ํ™•์‹คํžˆ ๋–จ์–ด์ง„๋‹ค.

2. ์ž๋™์ƒ์„ฑ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์›๋ณธ ์ž๋ง‰์˜ ํ’ˆ์งˆ์ด ์ข‹์ง€ ์•Š๊ณ 

3. ์ „์ฒด ๋ฌธ์žฅ์ด ์•„๋‹Œ ๋ฌธ์žฅ์˜ ์ผ๋ถ€๋ถ„๋งŒ ๋ฒˆ์—ญ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

4. ๋ฌธ๋งฅ์— ๋งž์ถ˜ ๋ฒˆ์—ญ์„ ์œ„ํ•ด ํ…์ŠคํŠธ๋งŒ ์ญ‰ ๋ฝ‘์•„๋ดค๋Š”๋ฐ ์ด๊ฒŒ ๋ฌธ์žฅ ๊ตฌ๋ถ„์ด ๋˜์ง€ ์•Š์•„ ์ „์ฒด ์ž๋ง‰์ด ํ•˜๋‚˜์˜ ๋ฌธ์žฅ์œผ๋กœ ์ธ์‹๋˜์–ด ๋ฒ„๋ ธ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฒˆ์—ญ์„ ์‹œ๋„์กฐ์ฐจ ํ• ์ˆ˜ ์—†์—ˆ๋‹ค. ์œ ํŠœ๋ธŒ ๋ฒˆ์—ญ์ด ์™œ ๊ทธ๋ ‡๊ฒŒ ํ›„์กŒ๋Š”์ง€ ์ดํ•ด๋˜๋Š” ์ˆœ๊ฐ„์ด์—ˆ๋‹ค.

 

* ์•Œ๋ฆผ

๋„๋‹ค๋ฆฌ ๊ณ ๊ธ‰๋ฒˆ์—ญ ์Šคํ† ์–ด๋ฅผ ์˜คํ”ˆํ–ˆ๋‹ค.

์ „์ž์ฑ… ๋ฒˆ์—ญ,  ํ…์ŠคํŠธ ๋ฒˆ์—ญ,  70๋ถ„ ์„œ๋ฒ„ ์ด์šฉ

 

 

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด, coqui tts - xtts๋Š” ์ง€๋‚œ 2024๋…„ 1์›” 3์ผ๋ถ€๋กœ shutdown ๋˜์—ˆ๋‹ค.
https://twitter.com/_josh_meyer_/status/1742522906041635166
 

X์˜ Josh Meyer๋‹˜(@_josh_meyer_)

Coqui is shutting down. It's sad news to start the new year, but I want to take a minute to recognize everything we accomplished and thank the great people who made it possible. First things first: the Team I'm honored to have worked with such brilliant, d

twitter.com

 

* ๋™๊ธฐ

๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ชฉ์†Œ๋ฆฌ๋กœ ๋ฌด์ œํ•œ ์ƒ์„ฑ๊ฐ€๋Šฅํ•œ ๋ฌด๋ฃŒ tts๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

* ๊ณผ์ •

1. ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ, openVoice v2์™€ coqui-tts(xtts) v2๊ฐ€ ๊ฐ€์žฅ ํ›Œ๋ฅญํ–ˆ๋‹ค.

2. ์ด ๊ณผ์ •์—์„œ ์ผ๋ž˜๋ธ๋žฉ์Šค https://elevenlabs.io/ ์˜ ๋†€๋ผ์šด ๋ฐœ์ „ ์†๋„์— ์˜คํ”ˆ์†Œ์Šค๋“ค์ด ๋” ์ด์ƒ ๋”ฐ๋ผ๊ฐ€์ง€ ๋ชปํ•จ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

3. ์‹ค์ œ๋กœ ๋Œ๋ ค๋ณด๋‹ˆ ๊ทธ ์ˆ˜์ค€์ฐจ์ด๊ฐ€ ์ปธ๋‹ค. ์ด์ œ ์ผ๋ž˜๋ธ๋žฉ์Šค์˜ ๊ฒฝ์Ÿ์ƒ๋Œ€๋Š” ์˜คํ”ˆ์†Œ์Šค ์ง„ํ˜•์ด ์•„๋‹ˆ๋ผ openAI๋กœ ๋ณด์ธ๋‹ค. ์‹ฌ์ง€์–ด xtts๋Š” ์ด๋ฏธ 1์›”์ดˆ์— ๋ฌธ์„ ๋‹ซ์•˜๋‹ค.

4. chatGPT 4o์™€ ์ผ๋ž˜๋ธ๋žฉ์Šค์˜ ํ’ˆ์งˆ์„ ๋ณด๋ฉด ์ด์ œ ์˜คํ”ˆ์†Œ์Šค ์ง„ํ˜•์— ๊ทธ๊ฐ„์˜ ๋…ธ๋ ฅ๋“ค์€ ๋ฌผ๊ฑฐํ’ˆ์ด ๋ ๊ฑฐ ๊ฐ™์€ ๋Š๋‚Œ์ด ๋“ ๋‹ค. stable diffusion์˜ ๊นƒํ—™๋งŒ ๋ณด์•„๋„ ๋งˆ์ง€๋ง‰ commit์ด 2๋…„์ „์ด๋‹ค. ์ด์ œ ์ƒํƒœ๊ณ„๋Š” stable diffusion์ด ์•„๋‹ˆ๋ผ stable diffusion webUI๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค. ํ•˜์ง€๋งŒ stable diffusion 3๋Š” 3๋‹ฌ์ „์— ์ด๋ฏธ ๋‚˜์™”๋‹ค. ๊ณต๊ฐœ๊ฐ€ ๋˜์ง€ ์•Š์•˜์„ ๋ฟ์ด๋‹ค.

5. ์ด์ œ ๋‚จ์€๊ฑด meta ๋ฟ์œผ๋กœ ๋ณด์ธ๋‹ค. (์ œ๋ฐœ grok์ด ํž˜์„ ๋‚ด์ฃผ๊ธธ)

6. ๊ทธ๋Ÿผ์—๋„ '๋ฌด์ œํ•œ'๊ณผ '๋ฌด๋ฃŒ'๋ผ๋Š” ์žฅ์ ์€ '์‚ฌ์šฉ์˜ ๋ถˆํŽธํ•จ'๊ณผ 'ํ’ˆ์งˆ์˜ ๋–จ์–ด์ง'์ด๋ผ๋Š” ๊ฐ•๋ ฅํ•œ ๋‹จ์ ์—๋„ ์–ด๋Š ๋ถ€๋ถ„ ๋Œ€ํ•ญ๊ฐ€๋Šฅํ•œ ๋Œ€๊ฒฐ์ธ์ž๋กœ ๋ณด์˜€๋‹ค.

 

* xtts ์‚ฌ์šฉํ›„ ๋Š๋‚€ ์ 

์žฅ์  - ๊ฝค ์ž์—ฐ์Šค๋Ÿฌ์šด tts๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‹จ์  - ko๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ์˜์–ด๋ฅผ ์ „ํ˜€ ์ฝ์ง€ ๋ชปํ•œ๋‹ค. g2pk2 ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด๋„ ๋งŽ์ด ๋ถ€์กฑํ•˜๋‹ค. ์˜์–ด๋ถ€๋ถ„์—์„œ ๋ฐœ์Œ์ด ์™„์ „ ๋ญ‰๊ฐœ์ง€๋ฉฐ ๊ธฐ๊ณ„์Œ์ด ๋‚˜์˜จ๋‹ค. ์ด๊ฒƒ์ด ๋„ˆ๋ฌด๋‚˜ ์น˜๋ช…์ ์ด๋‹ค. en๋ชจ๋ธ์€ ์˜ค์ง ์˜์–ด๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ๊ณ  ko๋ชจ๋ธ์€ ์˜ค์ง ํ•œ๊ตญ์–ด๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

* ์ตœ์ข… ๊ฒฐ๋ก 

๋‹ค์‹œ open voice v2๋กœ ๋Œ์•„์™”๋‹ค. ์ž์—ฐ์Šค๋Ÿฝ์ง€๋Š” ๋ชปํ•ด๋„ ์•ˆ์ •์ ์œผ๋กœ ๊ธด ๊ธ€์„ ์ฝ์–ด์ค€๋‹ค. ์˜์–ด์™€ ํ•œ๊ธ€์ด ์„ž์—ฌ ์žˆ์–ด๋„ ๋ฌธ์ œ์—†๋‹ค. xtts์™€ ๋‹ฌ๋ฆฌ ๊ณ„์† ์—…๋ฐ์ดํŠธ ๋  ๊ฒƒ ๊ฐ™๋‹ค. ์„ค์น˜ ํ™˜๊ฒฝ ์กฐ์„ฑ์ด ์–ด๋ ต์ง€๋งŒ ์‹คํ–‰๋งŒ ๋œ๋‹ค๋ฉด ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ๊ทธ๋ž˜์„œ, open voice v2๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Œ์„ฑ์˜ ํ’ˆ์งˆ์„ ๋†’์ด๋Š” (rvc๋กœ ํ›„์ฒ˜๋ฆฌํ•˜๋Š” ๋“ฑ์˜) ๋ฐฉํ–ฅ์„ ๊ณ ๋ฏผํ•ด๋ณด๋ คํ•œ๋‹ค.

์–ด๋–ป๊ฒŒ๋“   - ๋ฉฐ์น ๊ฐ„ ์—ฐ๊ตฌํ•œ ๊ฒƒ์ด ์•„๊น๊ธฐ๋„ํ•˜๊ณ  - openVoice V2๋กœ ์ข‹์€ ํ’ˆ์งˆ์˜ tts๋ฅผ ๋ฝ‘์•„๋ณด๋ ค ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ๋ฒ„๋ ธ๋‹ค. ์ž˜ ์•ˆ๋˜์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค ๋งŒ๋‚œ๊ฒƒ์ด xtts๋‹ค. ๊ธฐ๋ณธ xtts๋งŒ์œผ๋กœ๋„ openVoice v2๋ณด๋‹ค ํ›จ์”ฌ ์ข‹์ง€๋งŒ finetuning์„ ํ•ด๋ณด๋‹ˆ ๋”์šฑ ๋” ๋น„์Šทํ•ด์กŒ๋‹ค.

๋ฐœ์Œ์ด ์กฐ๊ธˆ ๋ญ‰๊ฐœ์ง€๊ธด ํ•˜๋Š”๋ฐ ์ด๊ฑด ์–ด๋–ป๊ฒŒ ๋งž์ถฐ๋ณผ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

๋ˆ„๊ตฌ์˜ ๋ชฉ์†Œ๋ฆฌ๋กœ ๋“ค๋ฆฌ๋Š”๊ฐ€?

 

๊นƒํ—™์ฃผ์†Œ๋Š”

https://github.com/daswer123/xtts-webui

 

GitHub - daswer123/xtts-webui: Webui for using XTTS and for finetuning it

Webui for using XTTS and for finetuning it. Contribute to daswer123/xtts-webui development by creating an account on GitHub.

github.com

 

์ง€๊ธˆ์€ ๋„ˆ๋ฌด ์กธ๋ฆฌ๊ณ  ๋‹ค์Œ ํฌ์ŠคํŠธ์— ์„ค์น˜ ๋ฐ ํŒŒ์ธํŠœ๋‹ํ•˜๋Š” ๊ฒƒ์„ ์ •๋ฆฌํ•˜๊ฒ ๋‹ค.

https://github.com/myshell-ai/OpenVoice

 

GitHub - myshell-ai/OpenVoice: Instant voice cloning by MyShell.

Instant voice cloning by MyShell. Contribute to myshell-ai/OpenVoice development by creating an account on GitHub.

github.com

 

OpenVoice์— ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ฒŒ ๋œ ์ด์œ ๋Š”, ํ•˜๋‚˜๋‹ค.

"๋ชฉ์†Œ๋ฆฌ ๋ณต์ œ๋ฅผ ํ•˜๊ณ  ์‹ถ๋‹ค. ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๋ชฉ์†Œ๋ฆฌ๋กœ ํ•œ๊ธ€ ํ…์ŠคํŠธ๋ฅผ ๋ฌด์ œํ•œ์œผ๋กœ ์ฝ์–ด์คฌ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค"

 

๊ธฐ์กด tts๋Š” ๊ธธ์ด์ œํ•œ์ด ์žˆ๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ๋„ ๋ณต์žกํ–ˆ๊ธฐ์— ์ด๊ฒƒ์„ ๋„๋‹ค๋ฆฌ์ฒ˜๋Ÿผ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ

1. ๋Œ€์šฉ๋Ÿ‰ ํ…์ŠคํŠธ ํŒŒ์ผ ์ฒจ๋ถ€

2. ๋ชฉ์†Œ๋ฆฌ ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ

3. wavํŒŒ์ผ ์ƒ์„ฑ

ํ•ด์ฃผ๋Š” ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๋‹ค. ํ˜„์žฌ๊นŒ์ง€ r&d ๊ฒฐ๊ณผ๋กœ๋Š” ๋ถ€์ •์ ์ด์ง€๋งŒ, ์ด ๋ถ€์ •์  ๊ฒฐ๋ก ๊นŒ์ง€ ๋„๋‹ฌํ•œ ๊ณผ์ •์„ ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊ธฐ๋ คํ•œ๋‹ค.

 

์ผ๋‹จ, V1์€ ๋‹ค๊ตญ์–ด ์ง€์›์ด ์•ˆ๋œ๋‹ค.

์˜์–ด์™€ ์ค‘๊ตญ์–ด๋งŒ ๋œ๋‹ค. ๋งŒ์•ฝ ํ•œ๊ตญ์–ด ๋ฅผ ์ฝ๊ฒŒ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ์–ด์ค€๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ๋ฏธ๊ตญ์ธ์ด ํ•œ๊ตญ์–ด ๋งํ•˜๋Š”๊ฑฐ ๊ฐ™๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ ๋‚ ์”จ๊ฐ€ ์ •๋ง ์ข‹๋„ค์š”.

 

* ๊นƒํ—™์—์„œ ์„ค์น˜ํ•˜๊ธฐ

git clone https://github.com/myshell-ai/OpenVoice.git open_voice
cd open_voice

 

* ํ™˜๊ฒฝ๋งŒ๋“ค๊ธฐ - ํŒŒ์ด์ฌ ๋ฒ„์ „์ด ๊ผฌ์—ฌ์„œ conda๋ฅผ ์ด์šฉํ–ˆ๋‹ค.

conda create -n ov python=3.9
conda activate ov
pip install -r requirements.txt

 

* condaํ™˜๊ฒฝ์—์„œ ffmpeg๊ฐ€ ์—†๋‹ค๊ณ  ๋œฌ๋‹ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๊ผญ ffmpeg๋ฅผ ์„ค์น˜ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

conda install ffmpeg

 

* cpu๋กœ ๋Œ๋ฆฌ๊ธฐ - cuda๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด pass!

- ํ˜„์žฌ open voice์—์„œ๋Š” cpu๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜๊ฐ€ ์—†๋‹ค. ์ฝ”๋“œ๊ฐ€ ๋ˆ„๋ฝ๋˜์–ด์žˆ๊ณ  ์ด ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด์ฃผ๊ณ  ์žˆ์ง€ ์•Š์•„์„œ ์ง์ ‘ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

๋จผ์ € se_extractor.py ํŒŒ์ผ๋กœ ๊ฐ„ํ›„ 22๋ฒˆ์งธ ์ค„์˜ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ

device = "cuda" if torch.cuda.is_available() else "cpu"
model = WhisperModel(model_size, device=device, compute_type="float16")

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ”๊ฟ”์ค€๋‹ค. 

device, compute_type = ("cuda","float16") if torch.cuda.is_available() else ("cpu", "int8")
model = WhisperModel(model_size, device=device, compute_type=compute_type)

 

 

* ๋‹ค ๋๋‹ค. ์ด์ œ ๋Œ๋ ค๋ณด์ž. ํ•œ๊ตญ์–ด๋ฅผ ์ฝ์–ด๋ณด๊ฒŒ ํ–ˆ๋‹ค. ์˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ์ฃผ์„์„ ํ’€๋ฉด๋œ๋‹ค.

import os
import torch
from openvoice import se_extractor
from openvoice.api import BaseSpeakerTTS, ToneColorConverter

ckpt_base = 'checkpoints/base_speakers/EN'
ckpt_converter = 'checkpoints/converter'
device="cuda:0" if torch.cuda.is_available() else "cpu"
output_dir = 'outputs'

base_speaker_tts = BaseSpeakerTTS(f'{ckpt_base}/config.json', device=device)
base_speaker_tts.load_ckpt(f'{ckpt_base}/checkpoint.pth')

tone_color_converter = ToneColorConverter(f'{ckpt_converter}/config.json', device=device)
tone_color_converter.load_ckpt(f'{ckpt_converter}/checkpoint.pth')

os.makedirs(output_dir, exist_ok=True)

source_se = torch.load(f'{ckpt_base}/en_default_se.pth').to(device)


# reference_speaker = 'resources/example_reference.mp3' # This is the voice you want to clone
reference_speaker = 'resources/lympe.mp3' # This is the voice you want to clone

target_se, audio_name = se_extractor.get_se(reference_speaker, tone_color_converter, target_dir='processed', vad=True)

# inference
save_path = f'{output_dir}/output_en_default.wav'

# Run the base speaker tts
# text = "This audio is generated by OpenVoice."
text = "์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ ๋‚ ์”จ๊ฐ€ ์ •๋ง ์ข‹๋„ค์š”."

src_path = f'{output_dir}/tmp.wav'
base_speaker_tts.tts(text, src_path, speaker='default', language='English', speed=1.0)

# Run the tone color converter
encode_message = "@MyShell"
tone_color_converter.convert(
    audio_src_path=src_path, 
    src_se=source_se, 
    tgt_se=target_se, 
    output_path=save_path,
    message=encode_message)
    
source_se = torch.load(f'{ckpt_base}/en_style_se.pth').to(device)
save_path = f'{output_dir}/output_whispering.wav'

# Run the base speaker tts
# text = "This audio is generated by OpenVoice."
text = "์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ ๋‚ ์”จ๊ฐ€ ์ •๋ง ์ข‹๋„ค์š”."

src_path = f'{output_dir}/tmp.wav'
base_speaker_tts.tts(text, src_path, speaker='whispering', language='English', speed=0.9)

# Run the tone color converter
encode_message = "@MyShell"
tone_color_converter.convert(
    audio_src_path=src_path, 
    src_se=source_se, 
    tgt_se=target_se, 
    output_path=save_path,
    message=encode_message)


ckpt_base = 'checkpoints/base_speakers/ZH'
base_speaker_tts = BaseSpeakerTTS(f'{ckpt_base}/config.json', device=device)
base_speaker_tts.load_ckpt(f'{ckpt_base}/checkpoint.pth')

source_se = torch.load(f'{ckpt_base}/zh_default_se.pth').to(device)
save_path = f'{output_dir}/output_chinese.wav'

# Run the base speaker tts
# text = "ไปŠๅคฉๅคฉๆฐ”็œŸๅฅฝ๏ผŒๆˆ‘ไปฌไธ€่ตทๅ‡บๅŽปๅƒ้ฅญๅงใ€‚"
text = "์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ ๋‚ ์”จ๊ฐ€ ์ •๋ง ์ข‹๋„ค์š”."

src_path = f'{output_dir}/tmp.wav'
base_speaker_tts.tts(text, src_path, speaker='default', language='Chinese', speed=1.0)

# Run the tone color converter
encode_message = "@MyShell"
tone_color_converter.convert(
    audio_src_path=src_path, 
    src_se=source_se, 
    tgt_se=target_se, 
    output_path=save_path,
    message=encode_message)

 

 

* ๊ฒฐ๋ก 

V1์€ ์œˆ๋„์šฐ๋‚˜ ๋งฅ, ๋ชจ๋‘์—์„œ ์ž˜ ๋Œ์•„๊ฐ”๋‹ค. ์˜์–ด ์„ฑ๋Šฅ์€ v1๋„ ์ถฉ๋ถ„ํžˆ ์ข‹์•˜๋‹ค.
๋‹ค์Œ ํฌ์ŠคํŠธ์—์„œ ์ •๋ฆฌํ•  V2๋Š” ํ•œ๊ตญ์–ด์˜ ๊ฒฝ์šฐ cuda ํ™˜๊ฒฝ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ  - ์˜์–ด๋‚˜ ์ค‘๊ตญ์–ด๋Š” ์—ฌ์ „ํžˆ cpu์—์„œ ๋Œ์•„๊ฐ„๋‹ค - ์—ฌ๊ธฐ์— ๋ชฉ์†Œ๋ฆฌ ํŠธ๋ ˆ์ด๋‹๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฌผ๋ก  ์„ฑ๋Šฅ์€ ๊ทธ๋‹ค์ง€ ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ์•Š์ง€๋งŒ ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋‹ˆ ์–ด๋–ค ๋ชฉ์†Œ๋ฆฌ๋Š” ๊ฝค๋‚˜ ์ž˜ ๋ณต์ œํ•ด๋ƒˆ๋‹ค.

์ž์„ธํ•œ ์‚ฌํ•ญ์€ V2์— ๋‚จ๊ธฐ๊ฒ ๋‹ค.

์ฃผ๋ฌธ์ด ์—„์ฒญ๋‚˜๊ฒŒ ๋ชฐ๋ ธ์„ ๋•Œ๋ฅผ ๋Œ€๋น„ํ•œ serving ์ž๋™ํ™” ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๋‹ค๊ฐ€ ๊ฐ‘์ž๊ธฐ,

์•„์ง ๋„๋‹ค๋ฆฌ๋ฅผ ํ•œ๋ฒˆ๋„ ํŒ”์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ฌ์•˜๋‹ค. ๋ฏธ์นœ๋†ˆ, ์ •์‹ ์ด ๋‚˜๊ฐ”๋‹ค.

์ค‘๊ฐ„์— ํ˜„ํƒ€๊ฐ€ ์™€์„œ ๋‹ค์‹œ ์ ‘์—ˆ๋‹ค.

 

๊ณ„์† ์ƒˆ๋กœ์šด ๊ฑธ ๊ฐœ๋ฐœํ•˜๊ณ ํ”ˆ ์š•๋ง์— ์‚ฌ๋กœ์žกํžŒ๋‹ค. ํ•˜์ง€๋งŒ ์•ˆ๋œ๋‹ค. ์ด๋ฒˆ์—๋Š” ํ—ˆ๋ฝํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋„๋‹ค๋ฆฌ๋„ ๋ชปํŒ๋‹ค๋ฉด ๋˜ ๋‹ค๋ฅธ ๊ฑธ ๋งŒ๋“ค์–ด๋ดค์ž ๋ญ ์–ผ๋งˆ๋‚˜ ์ƒํ’ˆ์„ฑ์ด ์žˆ์„ ๊ฒƒ์ด๋ฉฐ ์–ผ๋งˆ๋‚˜ ์ž˜ ํŒ”๊ฒƒ์ธ๊ฐ€. ์ด๋ฒˆ์—๋Š” ๊ธฐํ•„์ฝ” ํŒ”์•„์•ผํ•œ๋‹ค. ๊ทธ๊ฒŒ ๊ธฐ์—…๊ฐ€๊ณ  ์ด์ œ ์ง„์งœ ์‹œ์ž‘ํ•ด์•ผํ•œ๋‹ค.

์–ธ์ œ๊นŒ์ง€ ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋กœ ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค. ์‚ฌ์—…๊ฐ€๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ์•„๋‹ˆ ์žฅ์‚ฌ๊พผ์ด ๋˜์–ด์•ผํ•œ๋‹ค.

๊ฐœ๋ฐœ์— ์ด์Šˆ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ฐ”๋กœ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•˜์ง€๋งŒ
์‚ฌ์—…์— ์ด์Šˆ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ผ๋‹จ ๋ฏธ๋ฃจ๊ณ  to do list๋งŒ ๋Š˜๋ ค๊ฐ€๊ณ  ์žˆ๋‹ค. ์‹คํ–‰์— ์˜ฎ๊ธฐ์ง€ ์•Š๋Š”๋‹ค.
์ด๊ฑธ ์–ด๋–ป๊ฒŒ ์‚ฌ์—…๊ฐ€๋ผ ํ• ์ˆ˜์žˆ๋Š”๊ฐ€
์‚ฌ์—…๊ฐ€๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ์„ ์ตํ˜”๋Š”๋ฐ ์‚ฌ์—…์€ ํ•˜์ง€ ์•Š๊ณ  ์ž๊พธ ๊ฐœ๋ฐœ ๋’ค๋กœ ์ˆจ๊ณ ๋งŒ ์žˆ๋‹ค.
ํ•œ์‹ฌํ•˜๋‹ค

https://github.com/vEduardovich/dodari

 

GitHub - vEduardovich/dodari: AI ์˜ํ•œ-ํ•œ์˜ ๋ฒˆ์—ญ๊ธฐ, ๋„๋‹ค๋ฆฌ en-ko/ ko-en AI translator

AI ์˜ํ•œ-ํ•œ์˜ ๋ฒˆ์—ญ๊ธฐ, ๋„๋‹ค๋ฆฌ en-ko/ ko-en AI translator. Contribute to vEduardovich/dodari development by creating an account on GitHub.

github.com

 

* ๋ฒˆ์—ญ ๊ฒฐ๊ณผ

 

 

 

์ด์ œ ์˜์–ด๋กœ ์“ฐ์ธ ์ˆ˜๋งŽ์€ epub๋„์„œ๋“ค์„ ํ•œ๊ธ€๋กœ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+ Recent posts