Colaboratory を使用して作成しました

This commit is contained in:
w-okada 2023-01-12 18:33:47 +09:00
parent 19fc187f15
commit c118572aae

View File

@ -5,7 +5,7 @@
"colab": { "colab": {
"name": "VoiceChangerDemo", "name": "VoiceChangerDemo",
"provenance": [], "provenance": [],
"authorship_tag": "ABX9TyMYxiOpYpg7Jdcqs6o5zO6u", "authorship_tag": "ABX9TyM3qbRFKy3uo9w3dqoPIKD4",
"include_colab_link": true "include_colab_link": true
}, },
"kernelspec": { "kernelspec": {
@ -74,7 +74,7 @@
"base_uri": "https://localhost:8080/" "base_uri": "https://localhost:8080/"
}, },
"id": "vV1t7PBRm-o6", "id": "vV1t7PBRm-o6",
"outputId": "58e3f73b-3a8f-417a-b76c-c650f94669a7" "outputId": "a7e63d28-9c42-41e3-c2fa-3ca4e48a4a26"
}, },
"execution_count": 1, "execution_count": 1,
"outputs": [ "outputs": [
@ -82,7 +82,7 @@
"output_type": "stream", "output_type": "stream",
"name": "stdout", "name": "stdout",
"text": [ "text": [
"Sat Dec 10 06:05:51 2022 \n", "Thu Jan 12 09:17:56 2023 \n",
"+-----------------------------------------------------------------------------+\n", "+-----------------------------------------------------------------------------+\n",
"| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |\n", "| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |\n",
"|-------------------------------+----------------------+----------------------+\n", "|-------------------------------+----------------------+----------------------+\n",
@ -91,7 +91,7 @@
"| | | MIG M. |\n", "| | | MIG M. |\n",
"|===============================+======================+======================|\n", "|===============================+======================+======================|\n",
"| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |\n", "| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |\n",
"| N/A 47C P0 26W / 70W | 0MiB / 15109MiB | 0% Default |\n", "| N/A 35C P8 9W / 70W | 0MiB / 15109MiB | 0% Default |\n",
"| | | N/A |\n", "| | | N/A |\n",
"+-------------------------------+----------------------+----------------------+\n", "+-------------------------------+----------------------+----------------------+\n",
" \n", " \n",
@ -123,13 +123,19 @@
"cell_type": "code", "cell_type": "code",
"source": [ "source": [
"# (2-1) 使用するモデルとコンフィグファイルの指定\n", "# (2-1) 使用するモデルとコンフィグファイルの指定\n",
"if \"MODEL\" in locals():\n",
" del MODEL\n",
"if \"ONNX\" in locals():\n",
" del ONNX\n",
"\n",
"CONFIG=\"/content/drive/MyDrive/VoiceChanger/config.json\"\n", "CONFIG=\"/content/drive/MyDrive/VoiceChanger/config.json\"\n",
"MODEL=\"/content/drive/MyDrive/VoiceChanger/G_326000.pth\"" "#MODEL=\"/content/drive/MyDrive/VoiceChanger/G_326000.pth\"\n",
"ONNX=\"/content/drive/MyDrive/VoiceChanger/G_326000.onnx\""
], ],
"metadata": { "metadata": {
"id": "nSXATMWYb4Ik" "id": "nSXATMWYb4Ik"
}, },
"execution_count": 2, "execution_count": 19,
"outputs": [] "outputs": []
}, },
{ {
@ -140,7 +146,7 @@
"base_uri": "https://localhost:8080/" "base_uri": "https://localhost:8080/"
}, },
"id": "2wxD-gRSMU5R", "id": "2wxD-gRSMU5R",
"outputId": "17c5e430-da38-41b4-b59d-032e0a6639b9" "outputId": "b61f5348-e0e7-436f-cd5d-7e507759e11c"
}, },
"outputs": [ "outputs": [
{ {
@ -171,18 +177,17 @@
"cell_type": "code", "cell_type": "code",
"source": [ "source": [
"# (3) リポジトリのクローン\n", "# (3) リポジトリのクローン\n",
"!git clone --depth 1 https://github.com/w-okada/voice-changer.git -b ver_1.2\n", "!git clone --depth 1 https://github.com/w-okada/voice-changer.git -b v.1.3.2\n",
"%cd voice-changer/demo/MMVC_Trainer/monotonic_align \n", "%cd voice-changer/server\n",
"!cythonize -3 -i core.pyx &> /dev/null\n", "!git clone --depth 1 https://github.com/isletennos/MMVC_Trainer.git -b v1.3.2.2\n",
"!mv core.cpython-*.so monotonic_align &> /dev/null\n", "!cd MMVC_Trainer/monotonic_align/ && python setup.py build_ext --inplace && cd -"
"%cd /content/voice-changer/demo/\n"
], ],
"metadata": { "metadata": {
"colab": { "colab": {
"base_uri": "https://localhost:8080/" "base_uri": "https://localhost:8080/"
}, },
"id": "86wTFmqsNMnD", "id": "86wTFmqsNMnD",
"outputId": "aa92d88d-4bd6-4931-f801-79a32b7f6abe" "outputId": "a7c679fa-b792-49ef-d656-60f27c63e9e9"
}, },
"execution_count": 4, "execution_count": 4,
"outputs": [ "outputs": [
@ -191,13 +196,21 @@
"name": "stdout", "name": "stdout",
"text": [ "text": [
"Cloning into 'voice-changer'...\n", "Cloning into 'voice-changer'...\n",
"remote: Enumerating objects: 1030, done.\u001b[K\n", "remote: Enumerating objects: 143, done.\u001b[K\n",
"remote: Counting objects: 100% (1030/1030), done.\u001b[K\n", "remote: Counting objects: 100% (143/143), done.\u001b[K\n",
"remote: Compressing objects: 100% (919/919), done.\u001b[K\n", "remote: Compressing objects: 100% (128/128), done.\u001b[K\n",
"remote: Total 1030 (delta 21), reused 982 (delta 11), pack-reused 0\u001b[K\n", "remote: Total 143 (delta 21), reused 57 (delta 5), pack-reused 0\u001b[K\n",
"Receiving objects: 100% (1030/1030), 71.87 MiB | 22.15 MiB/s, done.\n", "Receiving objects: 100% (143/143), 1.51 MiB | 2.50 MiB/s, done.\n",
"Resolving deltas: 100% (21/21), done.\n", "Resolving deltas: 100% (21/21), done.\n",
"Note: checking out 'e824f89e8fac9d202d5ff72ebb13a4e1bf57b4d3'.\n", "/content/voice-changer/server\n",
"Cloning into 'MMVC_Trainer'...\n",
"remote: Enumerating objects: 920, done.\u001b[K\n",
"remote: Counting objects: 100% (920/920), done.\u001b[K\n",
"remote: Compressing objects: 100% (830/830), done.\u001b[K\n",
"remote: Total 920 (delta 4), reused 893 (delta 1), pack-reused 0\u001b[K\n",
"Receiving objects: 100% (920/920), 53.04 MiB | 17.53 MiB/s, done.\n",
"Resolving deltas: 100% (4/4), done.\n",
"Note: checking out 'f17c8c57d1ab7512633e6c57521f1eef6851bd0e'.\n",
"\n", "\n",
"You are in 'detached HEAD' state. You can look around, make experimental\n", "You are in 'detached HEAD' state. You can look around, make experimental\n",
"changes and commit them, and you can discard any commits you make in this\n", "changes and commit them, and you can discard any commits you make in this\n",
@ -208,118 +221,17 @@
"\n", "\n",
" git checkout -b <new-branch-name>\n", " git checkout -b <new-branch-name>\n",
"\n", "\n",
"/content/voice-changer/demo/MMVC_Trainer/monotonic_align\n", "Compiling core.pyx because it changed.\n",
"/content/voice-changer/demo\n" "[1/1] Cythonizing core.pyx\n",
] "/usr/local/lib/python3.8/dist-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /content/voice-changer/server/MMVC_Trainer/monotonic_align/core.pyx\n",
} " tree = Parsing.p_module(s, pxd, full_module_name)\n",
] "running build_ext\n",
}, "building 'monotonic_align.core' extension\n",
{ "creating build\n",
"cell_type": "markdown", "creating build/temp.linux-x86_64-3.8\n",
"source": [ "x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/local/lib/python3.8/dist-packages/numpy/core/include -I/usr/include/python3.8 -c core.c -o build/temp.linux-x86_64-3.8/core.o\n",
"# ファイルの配置\n", "x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -g -fwrapv -O2 -Wl,-Bsymbolic-functions -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/core.o -o /content/voice-changer/server/MMVC_Trainer/monotonic_align/monotonic_align/core.cpython-38-x86_64-linux-gnu.so\n",
"アプリケーションの挙動を記した設定ファイルをコピーします(4-1)。(4-2)はコピーした設定ファイルを表示しています。もしかしたらうまく動かないときに役立つかもしれません。" "/content/voice-changer/server\n"
],
"metadata": {
"id": "jmDY8W_fnuSi"
}
},
{
"cell_type": "code",
"source": [
"# (4-1) 設定ファイルの配置\n",
"!cp ../template/setting_mmvc_colab.json ../frontend/dist/assets/setting.json\n"
],
"metadata": {
"id": "Bn4kV8TgXp8i"
},
"execution_count": 5,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# (4-2) 設定ファイルの確認\n",
"!cat ../frontend/dist/assets/setting.json\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "pjxPsOOaXXTj",
"outputId": "2c418c42-235e-4d7b-db62-858c226a2478"
},
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"{\n",
" \"app_title\": \"voice-changer\",\n",
" \"majar_mode\": \"colab\",\n",
" \"voice_changer_server_url\": \"/test\",\n",
" \"sample_rate\": 48000,\n",
" \"buffer_size\": 1024,\n",
" \"prefix_chunk_size\": 48,\n",
" \"chunk_size\": 48,\n",
" \"speakers\": [\n",
" {\n",
" \"id\": 100,\n",
" \"name\": \"ずんだもん\"\n",
" },\n",
" {\n",
" \"id\": 107,\n",
" \"name\": \"user\"\n",
" },\n",
" {\n",
" \"id\": 101,\n",
" \"name\": \"そら\"\n",
" },\n",
" {\n",
" \"id\": 102,\n",
" \"name\": \"めたん\"\n",
" },\n",
" {\n",
" \"id\": 103,\n",
" \"name\": \"つむぎ\"\n",
" }\n",
" ],\n",
" \"src_id\": 107,\n",
" \"dst_id\": 100,\n",
" \"vf_enable\": true,\n",
" \"voice_changer_mode\": \"realtime\",\n",
" \"gpu\": 0,\n",
" \"available_gpus\": [-1, 0, 1, 2, 3, 4],\n",
" \"screen\": {\n",
" \"enable_screen\": true,\n",
" \"backgournd_image_url\": \"./assets/images/bg_natural_sougen.jpg\"\n",
" },\n",
" \"avatar\": {\n",
" \"enable_avatar\": false,\n",
" \"motion_capture_face\": false,\n",
" \"motion_capture_upperbody\": false,\n",
" \"lip_overwrite_with_voice\": false,\n",
" \"avatar_url\": \"./assets/vrm/zundamon/zundamon.vrm\",\n",
" \"background_color\": \"#0000dd\",\n",
" \"chroma_key\": \"#0000dd\",\n",
" \"avatar_canvas_size\": [1280, 720],\n",
" \"screen_canvas_size\": [1280, 720]\n",
" },\n",
" \"advance\": {\n",
" \"avatar_draw_skip_rate\": 3,\n",
" \"screen_draw_skip_rate\": 3,\n",
" \"visualizer_draw_skip_rate\": 3,\n",
" \"cross_fade_lower_value\": 0.1,\n",
" \"cross_fade_offset_rate\": 0.3,\n",
" \"cross_fade_end_rate\": 0.6,\n",
" \"cross_fade_type\": 2\n",
" },\n",
" \"transcribe\": {\n",
" \"lang\": \"日本語(ja-JP)\",\n",
" \"expire_time\": 5\n",
" }\n",
"}\n"
] ]
} }
] ]
@ -348,12 +260,13 @@
"!pip install python-multipart &> /dev/null\n", "!pip install python-multipart &> /dev/null\n",
"!pip install uvicorn &> /dev/null\n", "!pip install uvicorn &> /dev/null\n",
"!pip install websockets &> /dev/null\n", "!pip install websockets &> /dev/null\n",
"!pip install pyOpenSSL &> /dev/null" "!pip install pyOpenSSL &> /dev/null\n",
"!pip install onnxruntime-gpu &> /dev/null"
], ],
"metadata": { "metadata": {
"id": "LwZAAuqxX7yY" "id": "LwZAAuqxX7yY"
}, },
"execution_count": 7, "execution_count": 5,
"outputs": [] "outputs": []
}, },
{ {
@ -374,12 +287,13 @@
"**`INFO:root:Loaded checkpoint ...`**\n", "**`INFO:root:Loaded checkpoint ...`**\n",
"\n", "\n",
"```\n", "```\n",
" Phase name:__main__\n",
" PHASE3:__main__\n",
"VoiceChanger Initialized (GPU_NUM:1, mps_enabled:False)\n",
"INFO:root:Loaded checkpoint '/content/drive/MyDrive/VoiceChanger/G_326000.pth' (iteration 1136)\n", "INFO:root:Loaded checkpoint '/content/drive/MyDrive/VoiceChanger/G_326000.pth' (iteration 1136)\n",
"VoiceChanger Initialized (GPU_NUM:1)\n",
" PHASE1:__main__\n", " PHASE1:__main__\n",
"Start MMVC SocketIO Server\n", "Start MMVC SocketIO Server\n",
" CONFIG:/content/drive/MyDrive/VoiceChanger/config.json, MODEL:/content/drive/MyDrive/VoiceChanger/G_326000.pth\n", " CONFIG:/content/drive/MyDrive/VoiceChanger/config.json, MODEL:/content/drive/MyDrive/VoiceChanger/G_326000.pth ONNX_MODEL:None\n",
"DEBUG:asyncio:Using selector: EpollSelector\n",
" Phase name:MMVCServerSIO\n", " Phase name:MMVCServerSIO\n",
" PHASE3:MMVCServerSIO\n", " PHASE3:MMVCServerSIO\n",
"INFO:root:Loaded checkpoint '/content/drive/MyDrive/VoiceChanger/G_326000.pth' (iteration 1136)\n", "INFO:root:Loaded checkpoint '/content/drive/MyDrive/VoiceChanger/G_326000.pth' (iteration 1136)\n",
@ -398,14 +312,35 @@
"PORT = 10000 + random.randint(1, 9999)\n", "PORT = 10000 + random.randint(1, 9999)\n",
"LOG_FILE = f\"LOG_FILE_{PORT}\"\n", "LOG_FILE = f\"LOG_FILE_{PORT}\"\n",
"\n", "\n",
"get_ipython().system_raw(f'python3 MMVCServerSIO.py -t MMVC -p {PORT} -c {CONFIG} -m {MODEL} --colab True >{LOG_FILE} 2>&1 &')\n", "if \"MODEL\" in locals() and \"ONNX\" in locals():\n",
" model_param = f\" -m {MODEL} -o {ONNX}\"\n",
"elif \"MODEL\" in locals():\n",
" model_param = f\" -m {MODEL}\"\n",
"elif \"ONNX\" in locals():\n",
" model_param = f\" -o {ONNX}\"\n",
"else:\n",
" model_param = f\"\"\n",
"\n",
"get_ipython().system_raw(f'python3 MMVCServerSIO.py -t MMVC -p {PORT} -c {CONFIG} {model_param} --colab True >{LOG_FILE} 2>&1 &')\n",
"#print(f\"PORT:{PORT}, LOG_FILE:{LOG_FILE}\")" "#print(f\"PORT:{PORT}, LOG_FILE:{LOG_FILE}\")"
], ],
"metadata": { "metadata": {
"id": "iNOAB7zISI6J" "id": "iNOAB7zISI6J",
"outputId": "99cdd34b-cc29-4b5f-c292-151c81caa721",
"colab": {
"base_uri": "https://localhost:8080/"
}
}, },
"execution_count": 8, "execution_count": 20,
"outputs": [] "outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"python3 MMVCServerSIO.py -t MMVC -p 16400 -c /content/drive/MyDrive/VoiceChanger/config.json -m /content/drive/MyDrive/VoiceChanger/G_326000.pth -o /content/drive/MyDrive/VoiceChanger/G_326000.onnx --colab True >LOG_FILE_16400 2>&1 &\n"
]
}
]
}, },
{ {
"cell_type": "code", "cell_type": "code",
@ -418,9 +353,9 @@
"base_uri": "https://localhost:8080/" "base_uri": "https://localhost:8080/"
}, },
"id": "chu06KpAjEK6", "id": "chu06KpAjEK6",
"outputId": "2b9883a7-b350-4958-af11-8d48ad833bbb" "outputId": "99d8653d-5d4d-40bc-894f-60a43abf0442"
}, },
"execution_count": 10, "execution_count": 13,
"outputs": [ "outputs": [
{ {
"output_type": "stream", "output_type": "stream",
@ -428,12 +363,11 @@
"text": [ "text": [
"\u001b[32m Phase name:__main__\u001b[0m\n", "\u001b[32m Phase name:__main__\u001b[0m\n",
"\u001b[32m PHASE3:__main__\u001b[0m\n", "\u001b[32m PHASE3:__main__\u001b[0m\n",
"VoiceChanger Initialized (GPU_NUM:1, mps_enabled:False)\n",
"INFO:root:Loaded checkpoint '/content/drive/MyDrive/VoiceChanger/G_326000.pth' (iteration 1136)\n", "INFO:root:Loaded checkpoint '/content/drive/MyDrive/VoiceChanger/G_326000.pth' (iteration 1136)\n",
"VoiceChanger Initialized (GPU_NUM:1)\n",
"\u001b[32m PHASE1:__main__\u001b[0m\n", "\u001b[32m PHASE1:__main__\u001b[0m\n",
"\u001b[17mStart MMVC SocketIO Server\u001b[0m\n", "\u001b[17mStart MMVC SocketIO Server\u001b[0m\n",
"\u001b[34m CONFIG:/content/drive/MyDrive/VoiceChanger/config.json, MODEL:/content/drive/MyDrive/VoiceChanger/G_326000.pth\u001b[0m\n", "\u001b[34m CONFIG:/content/drive/MyDrive/VoiceChanger/config.json, MODEL:/content/drive/MyDrive/VoiceChanger/G_326000.pth ONNX_MODEL:None\u001b[0m\n",
"DEBUG:asyncio:Using selector: EpollSelector\n",
"\u001b[32m Phase name:MMVCServerSIO\u001b[0m\n", "\u001b[32m Phase name:MMVCServerSIO\u001b[0m\n",
"\u001b[32m PHASE3:MMVCServerSIO\u001b[0m\n", "\u001b[32m PHASE3:MMVCServerSIO\u001b[0m\n",
"INFO:root:Loaded checkpoint '/content/drive/MyDrive/VoiceChanger/G_326000.pth' (iteration 1136)\n" "INFO:root:Loaded checkpoint '/content/drive/MyDrive/VoiceChanger/G_326000.pth' (iteration 1136)\n"
@ -469,15 +403,15 @@
"base_uri": "https://localhost:8080/", "base_uri": "https://localhost:8080/",
"height": 34 "height": 34
}, },
"outputId": "2cc7ba41-08d9-4582-ad15-959c741597a0" "outputId": "2655ef55-c474-4609-e1b5-6a316dfd4a2c"
}, },
"execution_count": 11, "execution_count": 14,
"outputs": [ "outputs": [
{ {
"output_type": "stream", "output_type": "stream",
"name": "stdout", "name": "stdout",
"text": [ "text": [
"https://5qu91u3piw-496ff2e9c6d22116-11612-colab.googleusercontent.com/front/\n" "https://q27c1y5n1t-496ff2e9c6d22116-13348-colab.googleusercontent.com/front/\n"
] ]
} }
] ]