{"id":6389,"date":"2026-05-24T21:56:47","date_gmt":"2026-05-24T12:56:47","guid":{"rendered":"https:\/\/secondlife.lol\/?p=6389"},"modified":"2026-05-24T21:56:48","modified_gmt":"2026-05-24T12:56:48","slug":"free-voice-cloning-app-colab-supertonic-sdk","status":"publish","type":"post","link":"https:\/\/secondlife.lol\/ja\/free-voice-cloning-app-colab-supertonic-sdk\/","title":{"rendered":"\ubb34\ub8cc\ub85c \ub0b4 \ubaa9\uc18c\ub9ac AI\ub85c \ubcf5\uc81c\ud558\uae30 \u2013 SuPerTTS \uc571 \uac1c\ubc1c \uc644\uc804 \uc815\ubcf5\uae30 (Google Colab + Supertonic SDK v3)"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">\ubb34\ub8cc\ub85c \ub0b4 \ubaa9\uc18c\ub9ac AI \ubcf5\uc81c\ud558\uae30 \u2013 SuPerTTS \uc571 \uac1c\ubc1c \uc644\uc804 \uc815\ubcf5\uae30<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/colab.research.google.com\/\" target=\"_blank\" rel=\"noopener\">Google Colab <\/a>+ Supertonic SDK v3 + SwiftUI<\/strong>\ub85c \uc57d $50\uc9dc\ub9ac \uc720\ub8cc \uc11c\ube44\uc2a4\ub97c \uc644\uc804\ud788 \ub300\uccb4\ud55c \uc628\ub514\ubc14\uc774\uc2a4 TTS \uc571 \uad6c\ucd95\uae30. \uae30\ud68d\ubd80\ud130 \ub0b4 \ubaa9\uc18c\ub9ac AI\ub85c \ubcf5\uc81c\ud558\uae30 \uc131\uacf5(Loss 0.0356 \ub2ec\uc131), \uc218\ub9ce\uc740 \ud2b8\ub7ec\ube14\uc288\ud305\uae4c\uc9c0 \ubaa8\ub4e0 \uacfc\uc815\uc744 \ub0b1\ub0b1\uc774 \uacf5\uac1c\ud55c\ub2e4.(\ub2e4\ub9cc, \uac1c\ubc1c\ud658\uacbd\uc758 \ucc28\uc774\ub85c \ubcf8 \ud3ec\uc2a4\ud2b8\ub300\ub85c \uc9c4\ud589\ub418\uc9c0 \uc54a\uc744 \uc218 \uc788\uc73c\uba70, \uadf8\ub7f4 \ub54c\ub294 <a href=\"https:\/\/secondlife.lol\/agentic-ai-claude-code-cli-guide\/\" data-type=\"post\" data-id=\"5205\">\ud074\ub85c\ub4dc AI<\/a> \ub4f1 \uc720\ub8cc AI \uc11c\ube44\uc2a4\ub97c \ud1b5\ud574\uc11c \ud574\uacb0\ucc45\uc744 \ucc3e\uc544\ubcf4\uc2dc\uae30\ub97c \ubc14\ub78d\ub2c8\ub2e4.) <\/p>\n\n\n<style>.kb-image6389_001d9c-12 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6389_001d9c-12\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"338\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-7-600x338.jpg\" alt=\"SuPerTTS \u2014 \ud074\ub9bd\ubcf4\ub4dc \ud14d\uc2a4\ud2b8\ub97c \ub0b4 \ubaa9\uc18c\ub9ac\ub85c \uc77d\uc5b4\uc8fc\ub294 \uc628\ub514\ubc14\uc774\uc2a4 AI TTS \uc571\" class=\"kb-img wp-image-6391\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-7-600x338.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-7-300x169.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-7-768x432.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-7-18x10.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-7.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n<p><!--\n\ud83d\uddbc\ufe0f IMAGE PROMPT 1:\n\"A sleek macOS desktop app UI called SuPerTTS, dark mode, showing a clipboard monitoring panel with a waveform audio visualization, Korean text displayed, a glowing microphone icon, and a sidebar listing voice profiles. Futuristic and minimal design, 16:9 ratio.\"\n--><\/p>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccc \uc774 \uae00\uc5d0\uc11c \ub2e4\ub8e8\ub294 \uac83<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SuPerTTS \uc571\uc774\ub780 \ubb34\uc5c7\uc778\uac00? \u2014 \uae30\ud68d \ubc30\uacbd\uacfc \ud575\uc2ec \ubaa9\ud45c<\/li>\n\n\n\n<li>\uc544\ud0a4\ud14d\ucc98 \uc124\uacc4: Swift + Python Flask + Supertonic SDK v3<\/li>\n\n\n\n<li>\ubb34\ub8cc \ubcf4\uc774\uc2a4 \ud074\ub85c\ub2dd \uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc804 \ub2e8\uacc4 (Google Colab GPU \ud65c\uc6a9)<\/li>\n\n\n\n<li>Loss 0.0356 \ub2ec\uc131\uae4c\uc9c0\uc758 \uc2e4\uc804 \ud559\uc2b5 \uacfc\uc815<\/li>\n\n\n\n<li>\ub9e5OS \uc0cc\ub4dc\ubc15\uc2a4, ATS, Swift Actor, \ub2e8\ucd95\ud0a4 \uad8c\ud55c \ub4f1 4\ub300 \uae30\uc220 \ub09c\uad00\uacfc \ud574\uacb0\ucc45<\/li>\n\n\n\n<li>\ucd5c\uc885 \uacb0\uacfc\ubb3c: <code>my_voice_final.json<\/code> \uc571 \uc801\uc6a9 \uac00\uc774\ub4dc<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udf99\ufe0f 1. SuPerTTS\ub780? \u2014 \uae30\ud68d \ubc30\uacbd<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uae34 \uae00\uc744 \uc77d\uc5b4\uc57c \ud560 \ub54c, \ub610\ub294 \uc190\uc774 \uc790\uc720\ub86d\uc9c0 \uc54a\uc744 \ub54c \u2014 \ubcf5\uc0ac \ud55c \ubc88\uc73c\ub85c AI\uac00 \ub0b4 \ubaa9\uc18c\ub9ac\ub85c \ub300\uc2e0 \uc77d\uc5b4\uc900\ub2e4\uba74? \uc774 \ub2e8\uc21c\ud55c \uc9c8\ubb38\uc5d0\uc11c <strong>SuPerTTS<\/strong> \ud504\ub85c\uc81d\ud2b8\uac00 \uc2dc\uc791\ub418\uc5c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2dc\uc911\uc5d0\ub294 \uc774\ubbf8 \ub2e4\uc591\ud55c TTS \uc571\uc774 \uc874\uc7ac\ud558\uc9c0\ub9cc, \ub300\ubd80\ubd84 \ub450 \uac00\uc9c0 \uce58\uba85\uc801\uc778 \ud55c\uacc4\ub97c \uac16\ub294\ub2e4. \uccab \ubc88\uc9f8\ub294 \ud074\ub77c\uc6b0\ub4dc \uc758\uc874\uc131 \u2014 \uc778\ud130\ub137\uc774 \uc5c6\uc73c\uba74 \ub3d9\uc791\ud558\uc9c0 \uc54a\ub294\ub2e4. \ub450 \ubc88\uc9f8\ub294 \ube44\uc6a9 \u2014 \ud2b9\ud788 &#8216;\ub0b4 \ubaa9\uc18c\ub9ac&#8217;\ub85c \ud569\uc131\ud558\ub824\uba74 \ub300\ubd80\ubd84 \uc6d4\uc815\uc561\uc774\ub098 \uace0\uc561\uc758 \uc77c\uc2dc\ubd88 \uacb0\uc81c\ub97c \uc694\uad6c\ud55c\ub2e4. S\uc0ac\uc758 \uacbd\uc6b0 \ubaa9\uc18c\ub9ac \ud074\ub85c\ub2dd\uc5d0 \uc57d <strong>$50(\uc57d 6\ub9cc\uc6d0)<\/strong>\ub97c \uc694\uad6c\ud588\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SuPerTTS\ub294 \uc774 \ub450 \ud55c\uacc4\ub97c \ubaa8\ub450 \uc815\uba74 \ub3cc\ud30c\ud558\ub294 \uac83\uc744 \ubaa9\ud45c\ub85c \uc0bc\uc558\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\ubaa9\ud45c<\/th><th>\uad6c\uccb4\uc801 \ubc29\ubc95<\/th><\/tr><\/thead><tbody><tr><td>\u2601\ufe0f \ud074\ub77c\uc6b0\ub4dc \uc758\uc874 \ud0c8\ud53c<\/td><td>\uc628\ub514\ubc14\uc774\uc2a4(On-device) \ubaa8\ub378\ub85c \uc624\ud504\ub77c\uc778 \ub3d9\uc791<\/td><\/tr><tr><td>\ud83d\udcb8 \uc720\ub8cc \ud074\ub85c\ub2dd \ub300\uccb4<\/td><td>Google Colab + WavLM \uae30\ubc18 \ubb34\ub8cc \ucd94\ucd9c \uc6cc\ud06c\ud50c\ub85c\uc6b0<\/td><\/tr><tr><td>\u26a1 \uc989\uac01\uc801\uc778 \ubc18\uc751<\/td><td>\ud074\ub9bd\ubcf4\ub4dc \uc790\ub3d9 \uac10\uc9c0 + \uae00\ub85c\ubc8c \ub2e8\ucd95\ud0a4(Option+Space)<\/td><\/tr><tr><td>\ud83c\uddf0\ud83c\uddf7 \uace0\ud488\uc9c8 \ud55c\uad6d\uc5b4 \uc9c0\uc6d0<\/td><td>Supertonic SDK v3 \ucc44\ud0dd<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfd7\ufe0f 2. \uc544\ud0a4\ud14d\ucc98 \uc124\uacc4 \u2014 Swift\uc640 Python\uc758 \ubd84\ub9ac<\/h2>\n\n\n<style>.kb-image6389_568314-24 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6389_568314-24\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"339\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-8-600x339.jpg\" alt=\"SuPerTTS \uc2dc\uc2a4\ud15c \uc544\ud0a4\ud14d\ucc98 \u2014 Client(SwiftUI) \u2194 Server(Python Flask)\" class=\"kb-img wp-image-6392\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-8-600x339.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-8-300x170.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-8-768x434.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-8-18x10.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-8.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n<p><!--\n\ud83d\uddbc\ufe0f IMAGE PROMPT 2:\n\"A clean technical architecture diagram showing two main layers: Left side labeled 'SwiftUI App (macOS)' with components like HotkeyManager, ClipboardMonitor, ModelManager, TTSService connected by arrows. Right side labeled 'Python Flask Server (localhost:7890)' with Supertonic SDK v3 and ONNX Runtime. Connected by a double-headed arrow labeled 'HTTP \/ 127.0.0.1:7890'. Dark background, monochrome with accent blue lines, developer aesthetic.\"\n--><\/p>\n\n\n<p class=\"wp-block-paragraph\">SuPerTTS\uc758 \uad6c\uc870\ub294 \ud06c\uac8c \ub450 \uacc4\uce35\uc73c\ub85c \ub098\ub25c\ub2e4. <strong>Swift(SwiftUI)<\/strong>\uac00 \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\uc640 \uc2dc\uc2a4\ud15c \uc774\ubca4\ud2b8(\ud074\ub9bd\ubcf4\ub4dc \uac10\uc9c0, \ub2e8\ucd95\ud0a4)\ub97c \ub2f4\ub2f9\ud558\uace0, <strong>Python(Flask)<\/strong>\uc774 AI \uc5d4\uc9c4(Supertonic SDK v3, ONNX Runtime)\uc744 \uc2e4\ud589\ud55c\ub2e4. \ub450 \uacc4\uce35\uc740 \ub85c\uceec \ud638\uc2a4\ud2b8 <code>127.0.0.1:7890<\/code>\uc744 \ud1b5\ud574 HTTP\ub85c \ud1b5\uc2e0\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ubd84\ub9ac \uad6c\uc870\ub97c \ucc44\ud0dd\ud55c \uc774\uc720\ub294 \uba85\ud655\ud558\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Python \uc0dd\ud0dc\uacc4 \ud65c\uc6a9<\/strong>: PyTorch, ONNX, librosa \ub4f1 ML \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 Python\uc5d0\uc11c \uac00\uc7a5 \uc131\uc219\ud558\ub2e4.<\/li>\n\n\n\n<li><strong>\uc5d4\uc9c4 \uad50\uccb4 \uc6a9\uc774\uc131<\/strong>: Flask \uc11c\ubc84\ub9cc \ubc14\uafb8\uba74 Swift \uc571 \ucf54\ub4dc\ub97c \uac74\ub4dc\ub9ac\uc9c0 \uc54a\uace0\ub3c4 \ub2e4\ub978 TTS \uc5d4\uc9c4\uc73c\ub85c \uad50\uccb4 \uac00\ub2a5\ud558\ub2e4.<\/li>\n\n\n\n<li><strong>UI \ubc18\uc751\uc131 \ubcf4\uc7a5<\/strong>: \ubb34\uac70\uc6b4 AI \uc5f0\uc0b0\uc774 \ubcc4\ub3c4 \ud504\ub85c\uc138\uc2a4\uc5d0\uc11c \ub3cc\uc544\uac00\ubbc0\ub85c UI \uc2a4\ub808\ub4dc\uac00 \ube14\ub85c\ud0b9\ub418\uc9c0 \uc54a\ub294\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud575\uc2ec \uc11c\ube44\uc2a4 \ub808\uc774\uc5b4 4\uc885<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Swift \uc571\uc758 \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc740 4\uac1c\uc758 \uc804\uc6a9 \uad00\ub9ac \ud074\ub798\uc2a4\ub85c \ubd84\ub9ac\ub418\uc5b4 \uc788\ub2e4:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\ud074\ub798\uc2a4<\/th><th>\uc5ed\ud560<\/th><\/tr><\/thead><tbody><tr><td><code>HotkeyManager<\/code><\/td><td>\uc2dc\uc2a4\ud15c \uc804\uc5ed <code>Option + Space<\/code> \ub2e8\ucd95\ud0a4 \uac10\uc9c0 (CGEventTap \uae30\ubc18)<\/td><\/tr><tr><td><code>ClipboardMonitor<\/code><\/td><td>\ud074\ub9bd\ubcf4\ub4dc \ubcc0\ud654 \uc2e4\uc2dc\uac04 \uac10\uc9c0 \u2192 \ud14d\uc2a4\ud2b8 \ucd94\ucd9c<\/td><\/tr><tr><td><code>ModelManager<\/code><\/td><td>AI \ubaa8\ub378 \ud30c\uc77c \uc874\uc7ac \uc5ec\ubd80 \ud655\uc778 \ubc0f \uc790\ub3d9 \ub2e4\uc6b4\ub85c\ub4dc<\/td><\/tr><tr><td><code>TTSService<\/code><\/td><td>Python \uc11c\ubc84\uc5d0 HTTP \uc694\uccad \u2192 \uc624\ub514\uc624 \ub370\uc774\ud130 \uc218\uc2e0\u00b7\uc7ac\uc0dd<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ubaa8\ub4e0 \ud074\ub798\uc2a4\ub294 <code>@MainActor class<\/code>\ub85c \uc120\uc5b8\ub418\uc5b4 SwiftUI\uc758 <code>@Published<\/code> \uc18d\uc131 \ubcc0\ud654\uac00 \uba54\uc778 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc548\uc804\ud558\uac8c UI\uc5d0 \ubc18\uc601\ub41c\ub2e4. (\uc774 \uacb0\uc815\uc5d0 \uc774\ub974\uae30\uae4c\uc9c0\uc758 \ud2b8\ub7ec\ube14\uc288\ud305\uc740 3.2\uc808\uc5d0\uc11c \uc0c1\uc138\ud788 \ub2e4\ub8ec\ub2e4.)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfa4 3. \ubb34\ub8cc \ubcf4\uc774\uc2a4 \ud074\ub85c\ub2dd \u2014 Google Colab GPU \uc6cc\ud06c\ud50c\ub85c\uc6b0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uc139\uc158\uc774 \uc774 \uae00\uc758 \ud575\uc2ec\uc774\ub2e4. S\uc0ac\uac00 \uc57d $50\uc5d0 \uc81c\uacf5\ud558\ub294 \ubaa9\uc18c\ub9ac \ud074\ub85c\ub2dd\uc744 <strong>\uc644\uc804 \ubb34\ub8cc<\/strong>\ub85c \uc7ac\ud604\ud558\ub294 \uc804\uccb4 \uacfc\uc815\uc744 \ub2e8\uacc4\ubcc4\ub85c \uc815\ub9ac\ud55c\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udeab \uba3c\uc800, Gemini(\ub85c\uceec CPU)\uac00 \uc2e4\ud328\ud55c \uc774\uc720<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\ucd08\uae30\uc5d0\ub294 \ub85c\uceec \ub9e5\ubd81 \ud658\uacbd\uc5d0\uc11c \ubaa9\uc18c\ub9ac \ud2b9\uc9d5 \ucd94\ucd9c\uc744 \uc2dc\ub3c4\ud588\ub2e4. \uacb0\uacfc\ub294 \uc2e4\ud328\uc600\ub2e4. \uadf8 \uae30\uc220\uc801 \uc6d0\uc778\uc740 \uc138 \uac00\uc9c0\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\ubb34\uc791\uc704 \ud22c\uc601(Random Projection)\uc758 \ud55c\uacc4<\/strong>: \ucd08\uae30 \uc2a4\ud06c\ub9bd\ud2b8\ub294 <code>torch.nn.Linear<\/code> \ub808\uc774\uc5b4\ub97c \ud559\uc2b5 \uc5c6\uc774 \ubb34\uc791\uc704 \ucd08\uae30\ud654\ud558\uc5ec \uc0ac\uc6a9\ud588\ub2e4. \uc2e4\ud589\ud560 \ub54c\ub9c8\ub2e4 \uacb0\uacfc\uac00 \ub2ec\ub77c\uc9c0\uba70, \uc2e4\uc81c \ubaa9\uc18c\ub9ac\uc758 \uc815\uccb4\uc131\uc744 \uc804\ud600 \ub2f4\uc9c0 \ubabb\ud55c\ub2e4.<\/li>\n\n\n\n<li><strong>\ub370\uc774\ud130 \uaddc\uaca9 \ubd88\uc77c\uce58<\/strong>: Supertonic \uc5d4\uc9c4\uc740 <code>style_ttl<\/code>(\ucc28\uc6d0: <code>[1, 50, 256]<\/code>)\uacfc \uc6b4\uc728\uc744 \ub2f4\ub2f9\ud558\ub294 <code>style_dp<\/code>(\ucc28\uc6d0: <code>[1, 8, 16]<\/code>) \ub450 \ud0a4\ub97c \ub3d9\uc2dc\uc5d0 \uc694\uad6c\ud55c\ub2e4. \ucd08\uae30 \uc2a4\ud06c\ub9bd\ud2b8\ub294 \uc774 \uaddc\uaca9\uc744 \ucda9\uc871\ud558\uc9c0 \ubabb\ud588\ub2e4. (\uc774\ubc88\uc5d0 \uc644\uc131\ub41c <code>my_voice_final.json<\/code>\uc740 \ub450 \ud0a4\ub97c \ubaa8\ub450 \uc815\ud655\ud55c \ucc28\uc6d0\uc73c\ub85c \ud3ec\ud568\ud55c\ub2e4.)<\/li>\n\n\n\n<li><strong>\uc5f0\uc0b0 \ub2a5\ub825 \ubd80\uc871<\/strong>: \uace0\ud488\uc9c8 \ubcf4\uc774\uc2a4 \ud074\ub85c\ub2dd\uc740 \uc218\ucc9c \ubc88\uc758 \ucd5c\uc801\ud654(Optimization) \ubc18\ubcf5\uc774 \ud544\uc694\ud558\ub2e4. NVIDIA GPU(CUDA) \uc5c6\uc774\ub294 \ub9e5\ubd81 CPU\ub9cc\uc73c\ub85c \uac10\ub2f9\ud560 \uc218 \uc5c6\ub2e4.<\/li>\n<\/ol>\n\n\n<style>.kb-image6389_8e2614-d7 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6389_8e2614-d7\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"339\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-9-600x339.jpg\" alt=\"Google Colab T4 GPU \ud658\uacbd\uc5d0\uc11c Loss\uac00 0.05 \ubbf8\ub9cc\uc73c\ub85c \uc218\ub834\ud558\ub294 \ud559\uc2b5 \uacfc\uc815\" class=\"kb-img wp-image-6393\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-9-600x339.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-9-300x170.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-9-768x434.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-9-18x10.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-9.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n<p><!--\n\ud83d\uddbc\ufe0f IMAGE PROMPT 3:\n\"A Google Colab notebook interface running a deep learning training loop. The terminal output shows epoch numbers and decreasing loss values: 'Epoch 100\/500, Loss: 0.1234', 'Epoch 300\/500, Loss: 0.0712', 'Epoch 500\/500, Loss: 0.0356'. A GPU utilization graph is visible on the side. Dark theme, realistic developer screenshot style.\"\n--><\/p>\n\n\n<h3 class=\"wp-block-heading\">\u2705 \ub2e8\uacc4\ubcc4 \uc2e4\ud589 \uac00\uc774\ub4dc (Google Colab)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1\ub2e8\uacc4 \u2014 \ub7f0\ud0c0\uc784 \uc124\uc815 \ubc0f \ud658\uacbd \uad6c\ucd95<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Google Colab\uc5d0\uc11c <strong>\ub7f0\ud0c0\uc784 \uc720\ud615\uc744 \ubc18\ub4dc\uc2dc GPU(T4 \uc774\uc0c1)\ub85c \uc124\uc815<\/strong>\ud55c \ud6c4 \uc544\ub798 \uc140\uc744 \uc2e4\ud589\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>!git clone https:\/\/github.com\/saurabhv749\/supertonic3-voice-clone\n%cd supertonic3-voice-clone\n!pip install -r requirements.txt\n!pip install supertonic\n!git lfs install\n!git clone https:\/\/huggingface.co\/Supertone\/supertonic-3 supertonic3<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u26a0\ufe0f \uc758\uc874\uc131 \ucda9\ub3cc \uc8fc\uc758:<\/strong> <code>librosa<\/code>\uc640 <code>numba<\/code>\uc758 \ubc84\uc804 \ucda9\ub3cc\ub85c <code>AttributeError: module 'coverage.types' has no attribute 'Tracer'<\/code>\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\ub2e4. \uc774 \uacbd\uc6b0 \uc544\ub798 \uba85\ub839\uc5b4\ub85c \ubc84\uc804\uc744 \uace0\uc815\ud55c\ub2e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>!pip install coverage==6.5.0\n!pip install numpy==1.23.5 numba==0.56.4<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">2\ub2e8\uacc4 \u2014 \ubaa9\uc18c\ub9ac \ud30c\uc77c \uc900\ube44 \ubc0f \uacbd\ub85c \ud2b8\ub9ad<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\ud559\uc2b5 \uc2a4\ud06c\ub9bd\ud2b8(<code>train_style.py<\/code>)\uac00 \ub0b4\ubd80\uc801\uc73c\ub85c \uc0d8\ud50c \ud30c\uc77c <code>F6.wav<\/code>\ub97c \uac15\uc81c\ub85c \ucc38\uc870\ud558\ub294 \ubc84\uadf8\uac00 \uc788\ub2e4. \uc0ac\uc6a9\uc790\uc758 \ud30c\uc77c\uc744 \ud574\ub2f9 \uacbd\ub85c\uc5d0 <code>F6.wav<\/code>\ub77c\ub294 \uc774\ub984\uc73c\ub85c \ubcf5\uc0ac\ud574 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc18d\uc774\ub294 \uac83\uc774 \ud575\uc2ec\uc774\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\ub179\uc74c\ud55c \ubaa9\uc18c\ub9ac \ud30c\uc77c(15~30\ucd08 \uad8c\uc7a5, WAV \ud3ec\ub9f7)\uc744 Colab\uc5d0 \uc5c5\ub85c\ub4dc\ud55c\ub2e4.<\/li>\n\n\n\n<li>\uc544\ub798 \uba85\ub839\uc5b4\ub85c \ud30c\uc77c\uc744 \uc2a4\ud06c\ub9bd\ud2b8\uac00 \uae30\ub300\ud558\ub294 \uc704\uce58\uc5d0 \ubcf5\uc0ac\ud55c\ub2e4:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>!mkdir -p voices\n# my_voice.wav\ub97c \ubcf8\uc778 \ud30c\uc77c \uc774\ub984\uc73c\ub85c \ubcc0\uacbd\n!cp \/content\/my_voice.wav \/content\/supertonic3-voice-clone\/voices\/F6.wav<\/code><\/pre>\n\n\n\n<blockquote>\n<p>\ud83d\udca1 <strong>\ub179\uc74c \ud301<\/strong>: \uc870\uc6a9\ud55c \ud658\uacbd\uc5d0\uc11c \ub2e4\uc591\ud55c \uc5b5\uc591\uacfc \uc18d\ub3c4\uac00 \ub2f4\uae34 15~30\ucd08 \ubd84\ub7c9\uc774 \uc774\uc0c1\uc801\uc774\ub2e4. \ub2e8\uc870\ub85c\uc6b4 \ub0ad\ub3c5\ubcf4\ub2e4\ub294 \uc790\uc5f0\uc2a4\ub7ec\uc6b4 \ub300\ud654\uccb4 \ubc1c\ud654\uac00 \ub354 \ud48d\ubd80\ud55c \uc2a4\ud0c0\uc77c \ubca1\ud130\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<h4 class=\"wp-block-heading\">3\ub2e8\uacc4 \u2014 \ud559\uc2b5 \uc2e4\ud589 (\uc57d 30\ubd84 \uc18c\uc694)<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>!python train_style.py \\\n  --voice_name \"my_real_voice\" \\\n  --audio_path \"voices\" \\\n  --output_dir \"output\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud559\uc2b5\uc774 \uc9c4\ud589\ub418\uba74 \ud130\ubbf8\ub110\uc5d0 \uc5d0\ud3ed(Epoch)\uacfc \ud568\uaed8 Loss \uac12\uc774 \ucd9c\ub825\ub41c\ub2e4. \uc131\uacf5 \uae30\uc900\uc740 \uc544\ub798\uc640 \uac19\ub2e4:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Loss \uac12<\/th><th>\ud3c9\uac00<\/th><\/tr><\/thead><tbody><tr><td>0.10 \uc774\uc0c1<\/td><td>\u274c \uc6d0\ubcf8\uacfc \uac70\ub9ac\uac00 \uba3c \ud569\uc131\uc74c<\/td><\/tr><tr><td>0.05 ~ 0.10<\/td><td>\ud83d\udfe1 \uc5b4\ub290 \uc815\ub3c4 \uc720\uc0ac\ud558\ub098 \ud2b9\uc9d5\uc774 \uc57d\ud568<\/td><\/tr><tr><td>0.05 \ubbf8\ub9cc<\/td><td>\u2705 \uc6d0\ubcf8\uacfc \ub9e4\uc6b0 \ud761\uc0ac\ud55c \ubaa9\uc18c\ub9ac \uc0dd\uc131 \uc131\uacf5<\/td><\/tr><tr><td><strong>0.0356<\/strong><\/td><td>\ud83c\udfc6 <strong>\uc774\ubc88 \ud504\ub85c\uc81d\ud2b8 \uc2e4\uc81c \ub2ec\uc131\uac12<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">4\ub2e8\uacc4 \u2014 \uacb0\uacfc\ubb3c \ub2e4\uc6b4\ub85c\ub4dc<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\ud559\uc2b5\uc774 \uc644\ub8cc\ub418\uba74 <code>logs\/F6\/F6.json<\/code> \ud30c\uc77c\uc774 \uc0dd\uc131\ub41c\ub2e4. \uc774 \ud30c\uc77c\uc774 \ubc14\ub85c Supertonic \uc5d4\uc9c4\uc774 \ubaa9\uc18c\ub9ac\ub97c \uc7ac\ud604\ud558\ub294 \ub370 \uc0ac\uc6a9\ud558\ub294 <strong>\uc2a4\ud0c0\uc77c \ubca1\ud130(Style Vector)<\/strong>\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88 \ud504\ub85c\uc81d\ud2b8\uc758 \uacb0\uacfc\ubb3c\uc778 <code>my_voice_final.json<\/code>\uc740 \uc544\ub798 \ub450 \ud575\uc2ec \ud150\uc11c\ub97c \ud3ec\ud568\ud55c\ub2e4:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\ud0a4<\/th><th>\ucc28\uc6d0(Dims)<\/th><th>\uc5ed\ud560<\/th><\/tr><\/thead><tbody><tr><td><code>style_ttl<\/code><\/td><td>[1, 50, 256]<\/td><td>\uc74c\uc0c9(Timbre) \u2014 \ubaa9\uc18c\ub9ac\uc758 \uc74c\uc0c9\uc801 \uc815\uccb4\uc131<\/td><\/tr><tr><td><code>style_dp<\/code><\/td><td>[1, 8, 16]<\/td><td>\uc6b4\uc728(Prosody) \u2014 \uc5b5\uc591, \ub9ac\ub4ec, \uac15\uc138 \ud328\ud134<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd25 4. 4\ub300 \uae30\uc220 \ub09c\uad00\uacfc \ud574\uacb0\ucc45 \u2014 \uac1c\ubc1c \ud2b8\ub7ec\ube14\uc288\ud305 \uc644\uc804 \uae30\ub85d<\/h2>\n\n\n<style>.kb-image6389_e250e7-60 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6389_e250e7-60\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"339\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-10-600x339.jpg\" alt=\"SuPerTTS \uac1c\ubc1c \uacfc\uc815\uc5d0\uc11c \ub9c8\uc8fc\ud55c 4\ub300 \uae30\uc220 \uc7a5\ubcbd\" class=\"kb-img wp-image-6394\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-10-600x339.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-10-300x170.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-10-768x434.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-10-18x10.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-10.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n<p><!--\n\ud83d\uddbc\ufe0f IMAGE PROMPT 4:\n\"A dramatic developer debugging scene: a macOS terminal window showing 'E003 Connection Refused' error in red text. Behind it, a code editor with Swift code and a Python Flask server. Red warning icons float around labeled 'Sandbox Blocked', 'ATS Error', 'Actor Conflict', 'Permission Denied'. Dark theme, cinematic style.\"\n--><\/p>\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udea8 \ub09c\uad00 1 \u2014 macOS \uc0cc\ub4dc\ubc15\uc2a4 &amp; ATS \ud1b5\uc2e0 \ucc28\ub2e8 (\ucd5c\ub300 \ub09c\uad00)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc99d\uc0c1:<\/strong> \uc571\uc774 \uc815\uc0c1 \uc2e4\ud589\ub418\uace0 Python \uc11c\ubc84\ub3c4 \ub5a0 \uc788\ub294\ub370 \ud1b5\uc2e0\uc774 \uc548 \ub418\uba70 E003 \uc624\ub958\uac00 \ubc18\ubcf5 \ubc1c\uc0dd.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc6d0\uc778:<\/strong> macOS\uc758 \ubcf4\uc548 \uc0cc\ub4dc\ubc15\uc2a4\ub294 \uc571\uc774 \uc678\ubd80 \ub124\ud2b8\uc6cc\ud06c\uc5d0 \uc811\uadfc\ud558\ub294 \uac83\uc744 \uae30\ubcf8\uc801\uc73c\ub85c \ucc28\ub2e8\ud55c\ub2e4. \uc2ec\uc9c0\uc5b4 \ub85c\uceec\ud638\uc2a4\ud2b8(<code>127.0.0.1<\/code>)\uae4c\uc9c0\ub3c4 \uc608\uc678\uac00 \uc5c6\ub2e4. \uc5ec\uae30\uc5d0 \ub354\ud574 <strong>ATS(App Transport Security)<\/strong> \uc124\uc815\uc774 \ub204\ub77d\ub418\uc5b4 HTTP \uc694\uccad \uc790\uccb4\uac00 OS \ub808\ubca8\uc5d0\uc11c \ucc28\ub2e8\ub418\uc5c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\ud574\uacb0 \uacfc\uc815 (3\ub2e8\uacc4):<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>project.pbxproj<\/code> \ud30c\uc77c\uc5d0\uc11c <code>ENABLE_APP_SANDBOX<\/code> \uac12\uc744 <code>YES<\/code>\uc5d0\uc11c <code>NO<\/code>\ub85c \ubcc0\uacbd<\/li>\n\n\n\n<li><code>Info.plist<\/code>\uc5d0 <code>NSAppTransportSecurity<\/code> \ub515\uc154\ub108\ub9ac\ub97c \uc218\ub3d9\uc73c\ub85c \ucd94\uac00\ud558\uc5ec \ub85c\uceec\ud638\uc2a4\ud2b8 HTTP \ud1b5\uc2e0 \ud5c8\uc6a9<\/li>\n\n\n\n<li><code>codesign<\/code> \uba85\ub839\uc73c\ub85c \uc560\ub4dc\ud639(ad-hoc) \uc11c\uba85\uc744 \uac15\uc81c \uc7ac\uc801\uc6a9\ud558\uc5ec \ubcc0\uacbd\ub41c \ubcf4\uc548 \uc815\ucc45\uc744 OS\uc5d0 \ubc18\uc601<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!-- Info.plist\uc5d0 \ucd94\uac00\ud560 ATS \uc608\uc678 \uc124\uc815 --&gt;\n&lt;key&gt;NSAppTransportSecurity&lt;\/key&gt;\n&lt;dict&gt;\n    &lt;key&gt;NSAllowsLocalNetworking&lt;\/key&gt;\n    &lt;true\/&gt;\n    &lt;key&gt;NSExceptionDomains&lt;\/key&gt;\n    &lt;dict&gt;\n        &lt;key&gt;localhost&lt;\/key&gt;\n        &lt;dict&gt;\n            &lt;key&gt;NSExceptionAllowsInsecureHTTPLoads&lt;\/key&gt;\n            &lt;true\/&gt;\n        &lt;\/dict&gt;\n    &lt;\/dict&gt;\n&lt;\/dict&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udea8 \ub09c\uad00 2 \u2014 Swift Actor\uc640 ObservableObject\uc758 \ub370\uc774\ud130 \ubc14\uc778\ub529 \ucda9\ub3cc<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc99d\uc0c1:<\/strong> \uc0c1\ud0dc \ubcc0\ud654\uac00 \uc77c\uc5b4\ub098\ub3c4 UI\uac00 \uc5c5\ub370\uc774\ud2b8\ub418\uc9c0 \uc54a\uc74c. \ubc84\ud2bc\uc744 \ub20c\ub7ec\ub3c4 \ud654\uba74 \ubc18\uc751\uc774 \uc5c6\uc74c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc6d0\uc778:<\/strong> Swift\uc758 <code>actor<\/code>\ub294 \ub3d9\uc2dc\uc131 \uc548\uc804\uc131(concurrency safety)\uc744 \uc704\ud574 \uc124\uacc4\ub41c \ud0c0\uc785\uc73c\ub85c, SwiftUI\uc758 <code>@Published<\/code> \uc18d\uc131\uc744 \uba54\uc778 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc548\uc804\ud558\uac8c \uc5c5\ub370\uc774\ud2b8\ud558\ub294 <code>ObservableObject<\/code> \ud504\ub85c\ud1a0\ucf5c\uacfc \uc644\ubcbd\ud788 \ud638\ud658\ub418\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\ud574\uacb0:<\/strong> \ubaa8\ub4e0 \uc11c\ube44\uc2a4 \ud074\ub798\uc2a4\ub97c <code>actor<\/code>\uc5d0\uc11c <code>@MainActor class<\/code>\ub85c \uc804\ud658\ud558\uace0 Combine \ud504\ub808\uc784\uc6cc\ud06c\ub97c \ub3c4\uc785\ud558\uc5ec \ub370\uc774\ud130 \ud750\ub984\uc744 \uc548\uc815\ud654\ud588\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u274c \ubb38\uc81c \uc788\ub294 \ucf54\ub4dc\nactor TTSService: ObservableObject {\n    @Published var isPlaying: Bool = false\n    \/\/ actor \ub0b4\ubd80\uc5d0\uc11c @Published \uc5c5\ub370\uc774\ud2b8 \u2192 UI \ubc18\uc601 \uc548 \ub428\n}\n\n\/\/ \u2705 \ud574\uacb0\ub41c \ucf54\ub4dc\n@MainActor\nclass TTSService: ObservableObject {\n    @Published var isPlaying: Bool = false\n    \/\/ \uba54\uc778 \uc2a4\ub808\ub4dc \ubcf4\uc7a5 \u2192 UI \uc989\uc2dc \ubc18\uc601\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udea8 \ub09c\uad00 3 \u2014 \uae00\ub85c\ubc8c \ub2e8\ucd95\ud0a4 \uac00\ub85c\ucc44\uae30 \ubc0f \uc190\uc26c\uc6b4 \uc0ac\uc6a9 \uad8c\ud55c \ubb38\uc81c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc99d\uc0c1:<\/strong> <code>Option + Space<\/code>\ub97c \ub20c\ub7ec\ub3c4 \uc571\uc774 \ubc18\uc751\ud558\uc9c0 \uc54a\uace0 \ud604\uc7ac \ud3ec\ucee4\uc2a4\ub41c \ud14d\uc2a4\ud2b8 \ud544\ub4dc\uc5d0 \uacf5\ubc31 \ubb38\uc790\uac00 \uc785\ub825\ub428.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc6d0\uc778:<\/strong> \uc2dc\uc2a4\ud15c \uc804\uccb4 \uc774\ubca4\ud2b8\ub97c \uac00\ub85c\ucc44\ub294 <code>CGEventTap<\/code> API\ub294 macOS\uc758 <strong>&#8216;\uc190\uc26c\uc6b4 \uc0ac\uc6a9(Accessibility)&#8217; \uad8c\ud55c<\/strong>\uc774 \uba85\uc2dc\uc801\uc73c\ub85c \ubd80\uc5ec\ub418\uc9c0 \uc54a\uc73c\uba74 \ub2e8\uc21c\ud788 \ubb34\ub825\ud654\ub418\uba70, \uc774\ubca4\ud2b8\uac00 \uc6d0\ub798 \ub300\uc0c1 \uc571\uc73c\ub85c \uadf8\ub300\ub85c \uc804\ub2ec\ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\ud574\uacb0:<\/strong> \uc571 \uc2e4\ud589 \uc2dc <code>AXIsProcessTrusted()<\/code> \ud568\uc218\ub85c \uad8c\ud55c \uc0c1\ud0dc\ub97c \ud655\uc778\ud558\uace0, \uad8c\ud55c\uc774 \uc5c6\uc73c\uba74 SwiftUI\ub85c \uad6c\ud604\ud55c \uc2dc\uac01\uc801 \uacbd\uace0 \ubc30\ub108\uc640 \uc2dc\uc2a4\ud15c \uc124\uc815 \uc5f4\uae30 \ubc84\ud2bc\uc744 \ub178\ucd9c\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \uad8c\ud55c \ud655\uc778 \ubc0f \uc548\ub0b4 \ucc98\ub9ac\nfunc checkAccessibilityPermission() {\n    let trusted = AXIsProcessTrusted()\n    if !trusted {\n        \/\/ SwiftUI View\uc5d0 \uacbd\uace0 \ubc30\ub108 \ud45c\uc2dc\n        showAccessibilityAlert = true\n    }\n}\n\n\/\/ \uc124\uc815 \ud654\uba74 \ubc14\ub85c \uc5f4\uae30\nfunc openAccessibilitySettings() {\n    NSWorkspace.shared.open(\n        URL(string: \"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility\")!\n    )\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udea8 \ub09c\uad00 4 \u2014 Python SDK \ud638\ud658\uc131 \ubc0f \uc624\ub514\uc624 \ucc98\ub9ac \uc624\ub958<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc99d\uc0c1:<\/strong> \uc74c\uc131 \ud569\uc131 \uc694\uccad \uc2dc Python \uc11c\ubc84\uc5d0\uc11c <code>TypeError<\/code>\uac00 \ubc1c\uc0dd\ud558\uba70 \uc624\ub514\uc624\uac00 \uc0dd\uc131\ub418\uc9c0 \uc54a\uc74c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc6d0\uc778 1 \u2014 SDK API \ubcc0\uacbd:<\/strong> Supertonic SDK \uc5c5\ub370\uc774\ud2b8\ub85c <code>synthesize()<\/code> \uba54\uc11c\ub4dc\uc758 \uc778\uc790\uba85\uc774 \ubcc0\uacbd\ub428.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc6d0\uc778 2 \u2014 \uba54\ubaa8\ub9ac \uc2a4\ud2b8\ub9bc \ubbf8\uc9c0\uc6d0:<\/strong> <code>save_audio()<\/code> \ud568\uc218\uac00 <code>io.BytesIO<\/code> \uac19\uc740 \uba54\ubaa8\ub9ac \uc2a4\ud2b8\ub9bc \uac1d\uccb4\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uace0, \ubc18\ub4dc\uc2dc \uc2e4\uc81c \ud30c\uc77c \uacbd\ub85c\ub97c \uc694\uad6c\ud568.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc6d0\uc778 3 \u2014 Style \uac1d\uccb4 \ud0c0\uc785 \ubd88\uc77c\uce58:<\/strong> \ucd94\ucd9c\ub41c JSON\uc740 \ub2e8\uc21c Python dict\uc778\ub370 SDK\ub294 \uc804\uc6a9 <code>Style<\/code> \uac1d\uccb4\ub97c \uc694\uad6c\ud568.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\ud574\uacb0:<\/strong> <code>tts_server.py<\/code>\uc5d0 <code>get_voice_style_from_path()<\/code> \uba54\uc11c\ub4dc\ub97c \ub3c4\uc785\ud558\uc5ec JSON \ud30c\uc77c\uc744 \uc815\uc2dd <code>Style<\/code> \uac1d\uccb4\ub85c \ubcc0\ud658\ud558\uace0, \uc784\uc2dc \ud30c\uc77c(<code>temp_output.wav<\/code>)\uc744 \uacbd\uc720\ud558\ub294 \uc624\ub514\uc624 \ucc98\ub9ac \ub85c\uc9c1\uc744 \ucd94\uac00\ud588\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import tempfile\nimport os\n\ndef get_voice_style_from_path(json_path: str):\n    \"\"\"JSON \ud30c\uc77c\uc744 Supertonic SDK\uc758 Style \uac1d\uccb4\ub85c \ubcc0\ud658\"\"\"\n    import json\n    with open(json_path, 'r') as f:\n        data = json.load(f)\n    # SDK\uc758 Style \ud074\ub798\uc2a4\ub85c \ub798\ud551\n    return tts_engine.load_style_from_dict(data)\n\ndef synthesize_with_style(text: str, style_json_path: str) -&gt; bytes:\n    style = get_voice_style_from_path(style_json_path)\n    \n    # \uc784\uc2dc \ud30c\uc77c \uacbd\uc720 \ubc29\uc2dd\uc73c\ub85c \uc624\ub514\uc624 \uc0dd\uc131\n    with tempfile.NamedTemporaryFile(suffix='.wav', delete=False) as tmp:\n        tmp_path = tmp.name\n    \n    try:\n        tts_engine.synthesize(text=text, style=style, output_path=tmp_path)\n        with open(tmp_path, 'rb') as f:\n            return f.read()\n    finally:\n        os.unlink(tmp_path)  # \uc784\uc2dc \ud30c\uc77c \uc815\ub9ac<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcf2 5. JSON \ud30c\uc77c\uc744 \uc571\uc5d0 \uc801\uc6a9\ud558\ub294 \ubc29\ubc95<\/h2>\n\n\n<style>.kb-image6389_c567d7-9f .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6389_c567d7-9f\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"339\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-11-600x339.jpg\" alt=\"SuPerTTS \uc571\uc758 Voice Builder \u2192 JSON \uc784\ud3ec\ud2b8 \ud654\uba74\" class=\"kb-img wp-image-6395\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-11-600x339.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-11-300x170.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-11-768x434.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-11-18x10.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-11.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n<p><!--\n\ud83d\uddbc\ufe0f IMAGE PROMPT 5:\n\"A macOS SwiftUI app screen called 'Voice Builder'. The interface shows a list of voice profiles with icons. One highlighted entry shows 'my_voice_final' with a custom waveform icon. At the bottom, there's a button labeled '[JSON \uc120\ud0dd]'. A file picker overlay shows a JSON file being selected. Clean and minimal dark UI.\"\n--><\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Google Colab\uc5d0\uc11c \uc0dd\uc131\ub41c JSON \ud30c\uc77c(<code>F6.json<\/code> \ub610\ub294 \ucee4\uc2a4\ud140 \uc774\ub984)\uc744 \ub85c\uceec\uc5d0 \ub2e4\uc6b4\ub85c\ub4dc\ud55c\ub2e4.<\/li>\n\n\n\n<li>SuPerTTS \uc571\uc744 \uc2e4\ud589\ud55c \ub4a4 <strong>\ud654\uc790 \ud0ed \u2192 \ubcf4\uc774\uc2a4 \ube4c\ub354<\/strong>\ub85c \uc774\ub3d9\ud55c\ub2e4.<\/li>\n\n\n\n<li><strong>[JSON \uc120\ud0dd]<\/strong> \ubc84\ud2bc\uc744 \ub20c\ub7ec \ud30c\uc77c \uc120\ud0dd \ucc3d\uc744 \uc5f4\uace0 JSON \ud30c\uc77c\uc744 \uc120\ud0dd\ud55c\ub2e4.<\/li>\n\n\n\n<li>\uc571\uc774 JSON\uc744 <code>voices\/<\/code> \ud3f4\ub354\ub85c \uc790\ub3d9 \ubcf5\uc0ac\ud558\uace0 \ubaa9\ub85d\uc5d0 \ub4f1\ub85d\ud55c\ub2e4.<\/li>\n\n\n\n<li>\ub4f1\ub85d\ub41c \ubaa9\uc18c\ub9ac\ub97c \uae30\ubcf8 \ud654\uc790\ub85c \uc124\uc815\ud558\uba74 \uc774\ud6c4 \ubaa8\ub4e0 \ud569\uc131\uc5d0 \ub0b4 \ubaa9\uc18c\ub9ac\uac00 \uc0ac\uc6a9\ub41c\ub2e4.<\/li>\n<\/ol>\n\n\n\n<blockquote>\n<p>\u26a0\ufe0f <strong>\ud30c\uc77c \uc120\ud0dd \ucc3d\uc5d0\uc11c JSON\uc774 \ud68c\uc0c9\uc73c\ub85c \ubcf4\uc774\ub294 \uacbd\uc6b0:<\/strong> <code>VoiceBuilderView.swift<\/code>\uc758 <code>NSOpenPanel<\/code> \uc124\uc815\uc5d0\uc11c <code>allowedContentTypes<\/code>\ub97c <code>[.json, .text, .data]<\/code>\ub85c \ub113\ud600\uc57c \ud55c\ub2e4. \uae30\ubcf8\uac12\uc774 \ub108\ubb34 \uc5c4\uaca9\ud558\uac8c \uc124\uc815\ub418\uc5b4 \uc788\uc73c\uba74 JSON \ud30c\uc77c\uc774 \uc120\ud0dd \ubd88\uac00 \uc0c1\ud0dc\ub85c \ud45c\uc2dc\ub41c\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcca 6. \ucd5c\uc885 \uc131\uacfc \uc815\ub9ac<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\ud56d\ubaa9<\/th><th>\uacb0\uacfc<\/th><\/tr><\/thead><tbody><tr><td>\ud83d\udcb0 \ube44\uc6a9 \uc808\uac10<\/td><td>\ubaa9\uc18c\ub9ac \ud074\ub85c\ub2dd \ube44\uc6a9 $50 \u2192 <strong>$0 (\ubb34\ub8cc)<\/strong><\/td><\/tr><tr><td>\ud83c\udfaf \ud074\ub85c\ub2dd \ud488\uc9c8<\/td><td>Loss <strong>0.0356<\/strong> \ub2ec\uc131 (\ubaa9\ud45c 0.05 \ubbf8\ub9cc \ucd08\uacfc \ub2ec\uc131)<\/td><\/tr><tr><td>\u26a1 \uc751\ub2f5 \uc9c0\uc5f0<\/td><td>\uc0cc\ub4dc\ubc15\uc2a4 \ud574\uc81c + \ub85c\uceec \uc11c\ubc84 \ucd5c\uc801\ud654\ub85c <strong>\uc2e4\uc2dc\uac04 \ud569\uc131<\/strong> \uc2e4\ud604<\/td><\/tr><tr><td>\ud83d\udd12 \ubcf4\uc548 \ub09c\uad00<\/td><td>macOS Sandbox, ATS, Accessibility \uad8c\ud55c <strong>\ubaa8\ub450 \ud574\uacb0<\/strong><\/td><\/tr><tr><td>\ud83d\udd27 \ud655\uc7a5\uc131<\/td><td>Flask \uc11c\ubc84 \uad50\uccb4\ub9cc\uc73c\ub85c \ub2e4\ub978 TTS \uc5d4\uc9c4\uc73c\ub85c <strong>\uc190\uc27d\uac8c \ub9c8\uc774\uadf8\ub808\uc774\uc158<\/strong> \uac00\ub2a5<\/td><\/tr><tr><td>\ud83d\udce6 \ucd5c\uc885 \uc2a4\ud0c0\uc77c \ubca1\ud130<\/td><td><code>style_ttl [1,50,256]<\/code> + <code>style_dp [1,8,16]<\/code> \uc644\uc804 \uaddc\uaca9 \uc900\uc218<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udee3\ufe0f 7. \uc55e\uc73c\ub85c\uc758 \ubc29\ud5a5 (Roadmap)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\uba40\ud2f0 \ud654\uc790 \uc9c0\uc6d0<\/strong>: \uc5ec\ub7ec \uac1c\uc758 JSON \uc2a4\ud0c0\uc77c\uc744 \ub4f1\ub85d\ud558\uace0 \uc989\uc11d\uc5d0\uc11c \uc804\ud658\ud558\ub294 \uae30\ub2a5<\/li>\n\n\n\n<li><strong>iOS \ud3ec\ud305<\/strong>: Swift \ucf54\ub4dc\ubca0\uc774\uc2a4\uc758 70%\uac00 \uacf5\uc720 \uac00\ub2a5\ud558\ubbc0\ub85c iPhone\/iPad \ubc84\uc804 \ud655\uc7a5 \uc608\uc815<\/li>\n\n\n\n<li><strong>\uc5d4\uc9c4 \ub2e4\uac01\ud654<\/strong>: Kokoro, StyleTTS2 \ub4f1 \ub2e4\ub978 \uc624\ud508\uc18c\uc2a4 TTS \uc5d4\uc9c4 \uad50\uccb4 \uc2e4\ud5d8<\/li>\n\n\n\n<li><strong>\uc790\ub3d9 \ud074\ub85c\ub2dd \ud30c\uc774\ud504\ub77c\uc778<\/strong>: \uc571 \ub0b4\uc5d0\uc11c \uc9c1\uc811 Colab API\ub97c \ud638\ucd9c\ud558\uc5ec \uc6d0\ud074\ub9ad \ud074\ub85c\ub2dd \uad6c\ud604<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde9 \ub9c8\uce58\uba70<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ud504\ub85c\uc81d\ud2b8\ub294 \ub2e8\uc21c\ud788 &#8220;TTS \uc571\uc744 \ub9cc\ub4e4\uc5c8\ub2e4&#8221;\ub294 \uc774\uc57c\uae30\uac00 \uc544\ub2c8\ub2e4. macOS \ubcf4\uc548 \uc815\ucc45\uc758 \ubcbd\uc744 \ub118\uace0, Swift\uc640 Python\uc758 \uacbd\uacc4\ub97c \uc5f0\uacb0\ud558\uace0, \uc720\ub8cc \uc11c\ube44\uc2a4\uc758 \ub300\uc548\uc744 \uc9c1\uc811 \uad6c\ucd95\ud574\ub0b8 \uae30\ub85d\uc774\ub2e4. \uadf8 \uacfc\uc815\uc5d0\uc11c \ud575\uc2ec\uc740 <strong>\uc2e4\ud328\ub97c \ub450\ub824\uc6cc\ud558\uc9c0 \uc54a\uace0 \uc6d0\uc778\uc744 \ub05d\uae4c\uc9c0 \ud30c\uace0\ub4dc\ub294 \uac83<\/strong>\uc774\uc5c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Google Colab GPU\ub85c 30\ubd84\uac04 \ub3cc\ub9b0 \ucd5c\uc801\ud654 \uacb0\uacfc Loss <strong>0.0356<\/strong>\uc774 \ud130\ubbf8\ub110\uc5d0 \ucc0d\ud788\ub294 \uc21c\uac04, \uadf8\ub9ac\uace0 \uc571\uc5d0\uc11c \ub0b4 \ubaa9\uc18c\ub9ac\ub85c \ud569\uc131\ub41c \uc74c\uc131\uc774 \ucc98\uc74c \uc7ac\uc0dd\ub418\ub358 \uc21c\uac04 \u2014 \uadf8 \ubaa8\ub4e0 \ud2b8\ub7ec\ube14\uc288\ud305\uc758 \uc2dc\uac04\uc774 \ubcf4\uc0c1\ubc1b\ub294 \ub290\ub08c\uc774\uc5c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uae00\uc774 \ube44\uc2b7\ud55c \uae38\uc744 \uac77\uace0 \uc788\ub294 \ub204\uad70\uac00\uc5d0\uac8c \ub2e8 \ud55c \ubc88\uc758 \uc624\ub958 \ud574\uacb0\uc5d0\ub77c\ub3c4 \ub3c4\uc6c0\uc774 \ub418\uae30\ub97c \ubc14\ub780\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcce \uad00\ub828 \ub9c1\ud06c \ubc0f \ucc38\uace0 \uc790\ub8cc<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/saurabhv749\/supertonic3-voice-clone\" target=\"_blank\" rel=\"noopener\">supertonic3-voice-clone GitHub<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/huggingface.co\/Supertone\/supertonic-3\" target=\"_blank\" rel=\"noopener\">Supertone\/supertonic-3 (HuggingFace)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/colab.research.google.com\" target=\"_blank\" rel=\"noopener\">Google Colab<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developer.apple.com\/documentation\/swiftui\" target=\"_blank\" rel=\"noopener\">Apple SwiftUI \uacf5\uc2dd \ubb38\uc11c<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\ubb34\ub8cc\ub85c \ub0b4 \ubaa9\uc18c\ub9ac AI \ubcf5\uc81c\ud558\uae30 \u2013 SuPerTTS \uc571 \uac1c\ubc1c \uc644\uc804&#8230;<\/p>","protected":false},"author":3,"featured_media":6391,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[7],"tags":[1495,343,83,1506,1502,1498,1504,1496,1503,1499,1497,1507,1501,1505,1500,1508],"class_list":["post-6389","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-coding","tag-ai-tts","tag-google-colab","tag-macos","tag-onnx","tag-python-flask","tag-supertonic","tag-swiftui","tag-voice-cloning","tag-wavlm","tag-1499","tag-1497","tag-ai","tag-1501","tag-1500","tag-1508"],"taxonomy_info":{"category":[{"value":7,"label":"\uc778\uacf5\uc9c0\ub2a5(AI)"}],"post_tag":[{"value":1495,"label":"AI TTS"},{"value":343,"label":"Google Colab"},{"value":83,"label":"MacOS"},{"value":1506,"label":"ONNX"},{"value":1502,"label":"Python Flask"},{"value":1498,"label":"Supertonic"},{"value":1504,"label":"SwiftUI"},{"value":1496,"label":"Voice Cloning"},{"value":1503,"label":"WavLM"},{"value":1499,"label":"\uac1c\ubc1c\uc77c\uc9c0"},{"value":1497,"label":"\ub9e5\uc571"},{"value":1507,"label":"\ubb34\ub8ccAI"},{"value":1501,"label":"\ubcf4\uc774\uc2a4 \ud074\ub85c\ub2dd"},{"value":1505,"label":"\uc628\ub514\ubc14\uc774\uc2a4AI"},{"value":1500,"label":"\uc74c\uc131\ud569\uc131"},{"value":1508,"label":"\ud2b8\ub7ec\ube14\uc288\ud305"}]},"featured_image_src_large":["https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/05\/image-7-600x338.jpg",600,338,true],"author_info":{"display_name":"TERE","author_link":"https:\/\/secondlife.lol\/ja\/author\/tere\/"},"comment_info":0,"category_info":[{"term_id":7,"name":"\uc778\uacf5\uc9c0\ub2a5(AI)","slug":"ai-coding","term_group":0,"term_taxonomy_id":7,"taxonomy":"category","description":"","parent":20,"count":70,"filter":"raw","cat_ID":7,"category_count":70,"category_description":"","cat_name":"\uc778\uacf5\uc9c0\ub2a5(AI)","category_nicename":"ai-coding","category_parent":20}],"tag_info":[{"term_id":1495,"name":"AI TTS","slug":"ai-tts","term_group":0,"term_taxonomy_id":1495,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":343,"name":"Google Colab","slug":"google-colab","term_group":0,"term_taxonomy_id":343,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":83,"name":"MacOS","slug":"macos","term_group":0,"term_taxonomy_id":83,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":1506,"name":"ONNX","slug":"onnx","term_group":0,"term_taxonomy_id":1506,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1502,"name":"Python Flask","slug":"python-flask","term_group":0,"term_taxonomy_id":1502,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1498,"name":"Supertonic","slug":"supertonic","term_group":0,"term_taxonomy_id":1499,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1504,"name":"SwiftUI","slug":"swiftui","term_group":0,"term_taxonomy_id":1504,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1496,"name":"Voice Cloning","slug":"voice-cloning","term_group":0,"term_taxonomy_id":1496,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1503,"name":"WavLM","slug":"wavlm","term_group":0,"term_taxonomy_id":1503,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1499,"name":"\uac1c\ubc1c\uc77c\uc9c0","slug":"%ea%b0%9c%eb%b0%9c%ec%9d%bc%ec%a7%80","term_group":0,"term_taxonomy_id":1498,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1497,"name":"\ub9e5\uc571","slug":"%eb%a7%a5%ec%95%b1","term_group":0,"term_taxonomy_id":1497,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1507,"name":"\ubb34\ub8ccAI","slug":"%eb%ac%b4%eb%a3%8cai","term_group":0,"term_taxonomy_id":1507,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1501,"name":"\ubcf4\uc774\uc2a4 \ud074\ub85c\ub2dd","slug":"%eb%b3%b4%ec%9d%b4%ec%8a%a4-%ed%81%b4%eb%a1%9c%eb%8b%9d","term_group":0,"term_taxonomy_id":1501,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1505,"name":"\uc628\ub514\ubc14\uc774\uc2a4AI","slug":"%ec%98%a8%eb%94%94%eb%b0%94%ec%9d%b4%ec%8a%a4ai","term_group":0,"term_taxonomy_id":1505,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1500,"name":"\uc74c\uc131\ud569\uc131","slug":"%ec%9d%8c%ec%84%b1%ed%95%a9%ec%84%b1","term_group":0,"term_taxonomy_id":1500,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1508,"name":"\ud2b8\ub7ec\ube14\uc288\ud305","slug":"%ed%8a%b8%eb%9f%ac%eb%b8%94%ec%8a%88%ed%8c%85","term_group":0,"term_taxonomy_id":1508,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"}],"_links":{"self":[{"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/posts\/6389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/comments?post=6389"}],"version-history":[{"count":3,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/posts\/6389\/revisions"}],"predecessor-version":[{"id":6397,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/posts\/6389\/revisions\/6397"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/media\/6391"}],"wp:attachment":[{"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/media?parent=6389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/categories?post=6389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/tags?post=6389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}