{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "id": "5m_Xf_2NY6mI" }, "outputs": [], "source": [ "import torch, torchaudio\n", "import requests\n", "import IPython.display as display" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "id": "GGiC0rT2hoik", "outputId": "6c8bd028-f83c-4a37-e7ad-344deb01dc2a", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Requirement already satisfied: flask in /usr/local/lib/python3.7/dist-packages (1.1.4)\n", "Requirement already satisfied: Werkzeug<2.0,>=0.15 in /usr/local/lib/python3.7/dist-packages (from flask) (1.0.1)\n", "Requirement already satisfied: Jinja2<3.0,>=2.10.1 in /usr/local/lib/python3.7/dist-packages (from flask) (2.11.3)\n", "Requirement already satisfied: itsdangerous<2.0,>=0.24 in /usr/local/lib/python3.7/dist-packages (from flask) (1.1.0)\n", "Requirement already satisfied: click<8.0,>=5.1 in /usr/local/lib/python3.7/dist-packages (from flask) (7.1.2)\n", "Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.7/dist-packages (from Jinja2<3.0,>=2.10.1->flask) (2.0.1)\n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Requirement already satisfied: flask_cors in /usr/local/lib/python3.7/dist-packages (3.0.10)\n", "Requirement already satisfied: Flask>=0.9 in /usr/local/lib/python3.7/dist-packages (from flask_cors) (1.1.4)\n", "Requirement already satisfied: Six in /usr/local/lib/python3.7/dist-packages (from flask_cors) (1.15.0)\n", "Requirement already satisfied: click<8.0,>=5.1 in /usr/local/lib/python3.7/dist-packages (from Flask>=0.9->flask_cors) (7.1.2)\n", "Requirement already satisfied: Jinja2<3.0,>=2.10.1 in /usr/local/lib/python3.7/dist-packages (from Flask>=0.9->flask_cors) (2.11.3)\n", "Requirement already satisfied: Werkzeug<2.0,>=0.15 in /usr/local/lib/python3.7/dist-packages (from Flask>=0.9->flask_cors) (1.0.1)\n", "Requirement already satisfied: itsdangerous<2.0,>=0.24 in /usr/local/lib/python3.7/dist-packages (from Flask>=0.9->flask_cors) (1.1.0)\n", "Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.7/dist-packages (from Jinja2<3.0,>=2.10.1->Flask>=0.9->flask_cors) (2.0.1)\n" ] } ], "source": [ "#!apt-get install -y espeak libsndfile1-dev\n", "!pip install flask\n", "# !pip install python-socketio\n", "# !pip install eventlet\n", "# !pip install unidecode\n", "# !pip install phonemizer\n", "# !pip install retry\n", "!pip install flask_cors" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "id": "WO8XzrFMZGoj" }, "outputs": [], "source": [ "# hubert = torch.hub.load(\"bshall/hubert:main\", \"hubert_soft\").cuda()\n", "# acoustic = torch.hub.load(\"bshall/acoustic-model:main\", \"hubert_soft\").cuda()\n", "# hifigan = torch.hub.load(\"bshall/hifigan:main\", \"hifigan_hubert_soft\").cuda()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "id": "v7xM7CnEZMTL" }, "outputs": [], "source": [ "# with open(\"example.wav\", \"wb\") as file:\n", "# response = requests.get(\"https://drive.google.com/uc?export=preview&id=1Y3KuPAhB5VcsmIaokBVKu3LUEZOfhSu8\")\n", "# file.write(response.content)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "id": "UZox3YDVZOya" }, "outputs": [], "source": [ "# source, sr = torchaudio.load(\"emotion059.wav\")\n", "# source = torchaudio.functional.resample(source, sr, 16000)\n", "# source = source.unsqueeze(0).cuda()" ] }, { "cell_type": "markdown", "metadata": { "id": "dEZ9_zCKnXpZ" }, "source": [] }, { "cell_type": "code", "execution_count": 30, "metadata": { "id": "DSAA2CMfZY7C" }, "outputs": [], "source": [ "# with torch.inference_mode():\n", "# # Extract speech units\n", "# units = hubert.units(source)\n", "# # Generate target spectrogram\n", "# mel = acoustic.generate(units).transpose(1, 2)\n", "# # Generate audio waveform\n", "# target = hifigan(mel)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "id": "VCwjKdIUZZoi" }, "outputs": [], "source": [ "# display.Audio(target.squeeze().cpu(), rate=16000)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "id": "vjJs35ifZbSK" }, "outputs": [], "source": [ "# data = target.squeeze().cpu()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "id": "0SuFlButeKXG" }, "outputs": [], "source": [ "# display.Audio(data, rate=16000)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "id": "vFwF5Uh0eMLV" }, "outputs": [], "source": [ "# dest = torchaudio.functional.resample(target, 16000,24000)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "id": "eIWedhF6ebuV" }, "outputs": [], "source": [ "# display.Audio(dest.squeeze().cpu(), rate=24000)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "id": "XkCO-j9teccu" }, "outputs": [], "source": [ "# dest" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "lzo_ZWmAjaby", "outputId": "85fb1cbe-0a09-437a-fe97-056e4360161b" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "fatal: destination path 'voice-changer' already exists and is not an empty directory.\n", "\u001b[0m\u001b[01;34massets\u001b[0m/ \u001b[01;32mfavicon.ico\u001b[0m* \u001b[01;32mindex.js\u001b[0m*\n", "\u001b[01;32mcoffee.png\u001b[0m* \u001b[01;32mindex.html\u001b[0m* \u001b[01;32mindex.js.LICENSE.txt\u001b[0m*\n" ] } ], "source": [ "# (3) リポジトリのクローン\n", "!git clone https://github.com/w-okada/voice-changer.git\n", "%ls voice-changer/frontend/dist\n" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "id": "8-z9j4e_j-Wb" }, "outputs": [], "source": [ "# (4-1) 設定ファイルの配置\n", "!cp voice-changer/template/setting_colab.json voice-changer/frontend/dist/assets/setting.json\n" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "id": "-iPiSzvAepCl" }, "outputs": [], "source": [ "# (6-1) サーバの起動\n", "PORT=8087\n", "get_ipython().system_raw(f'python3 serverFlask.py {PORT} >foo 2>&1 &')" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "IiWSwDjQidc7", "outputId": "d8b15e64-efbf-411a-bd76-f51e5557e077" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Using cache found in /root/.cache/torch/hub/bshall_hubert_main\n", "Using cache found in /root/.cache/torch/hub/bshall_acoustic-model_main\n", "Using cache found in /root/.cache/torch/hub/bshall_hifigan_main\n", "[2022-09-15 08:22:01,380] INFO in serverFlask: INITIALIZE MODEL\n", "[2022-09-15 08:22:01,380] INFO in serverFlask: START APP\n", "Removing weight norm...\n", " * Serving Flask app \"serverFlask\" (lazy loading)\n", " * Environment: production\n", " WARNING: This is a development server. Do not use it in a production deployment.\n", " Use a production WSGI server instead.\n", " * Debug mode: on\n", "Traceback (most recent call last):\n", " File \"serverFlask.py\", line 108, in \n", " app.run(debug=True, host='0.0.0.0',port=PORT)\n", " File \"/usr/local/lib/python3.7/dist-packages/flask/app.py\", line 990, in run\n", " run_simple(host, port, self, **options)\n", " File \"/usr/local/lib/python3.7/dist-packages/werkzeug/serving.py\", line 1030, in run_simple\n", " s.bind(server_address)\n", "OSError: [Errno 98] Address already in use\n" ] } ], "source": [ "# (6-2) サーバの起動確認 (Ctrl+Retで実行)\n", "!cat foo" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "id": "WWn3HJlpin4R", "outputId": "00f58001-04bf-44dc-aa8e-a2c42074e00d" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "application/javascript": [ "(async (port, path, text, element) => {\n", " if (!google.colab.kernel.accessAllowed) {\n", " return;\n", " }\n", " element.appendChild(document.createTextNode(''));\n", " const url = await google.colab.kernel.proxyPort(port);\n", " const anchor = document.createElement('a');\n", " anchor.href = new URL(path, url).toString();\n", " anchor.target = '_blank';\n", " anchor.setAttribute('data-href', url + path);\n", " anchor.textContent = text;\n", " element.appendChild(anchor);\n", " })(8087, \"/\", \"https://localhost:8087/\", window.element)" ] }, "metadata": {} } ], "source": [ "# (7) プロキシを起動\n", "from google.colab import output\n", "\n", "output.serve_kernel_port_as_window(PORT)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "id": "k9OqZ-hLjKIx" }, "outputs": [], "source": [ "import librosa\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import torch, torchaudio\n", "import IPython.display as display" ] }, { "cell_type": "code", "source": [ "wave, sr = librosa.load(\"received_data.wav\", sr=24000)\n", "rms = librosa.feature.rms(y=wave)\n", "times = librosa.times_like(rms, sr=sr)\n", "plt.plot(times, rms[0]*2**(1/2))\n", "volume_db = 20 * np.log10(wave) \n" ], "metadata": { "id": "fQL4SEwaCidb", "outputId": "6c91ef39-d020-4922-a735-5d4f7e3bef29", "colab": { "base_uri": "https://localhost:8080/", "height": 334 } }, "execution_count": 48, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:5: RuntimeWarning: divide by zero encountered in log10\n", " \"\"\"\n", "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:5: RuntimeWarning: invalid value encountered in log10\n", " \"\"\"\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "plt.plot(times, rms[0])" ], "metadata": { "id": "ofxeYX7IPySW", "outputId": "5520f5a9-b38f-4b05-90af-eb9934570295", "colab": { "base_uri": "https://localhost:8080/", "height": 282 } }, "execution_count": 54, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[]" ] }, "metadata": {}, "execution_count": 54 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "wave, sr = librosa.load(\"converted_data.wav\", sr=24000)\n", "rms = librosa.feature.rms(y=wave)\n", "times = librosa.times_like(rms, sr=sr)\n", "plt.plot(times, rms[0]*2**(1/2))\n", "volume_db = 20 * np.log10(wave) \n" ], "metadata": { "id": "gOnUNqLKDB28", "outputId": "257dbc72-48b8-4cbf-a19f-928398c0cc74", "colab": { "base_uri": "https://localhost:8080/", "height": 334 } }, "execution_count": 46, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:5: RuntimeWarning: divide by zero encountered in log10\n", " \"\"\"\n", "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:5: RuntimeWarning: invalid value encountered in log10\n", " \"\"\"\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "times" ], "metadata": { "id": "ZSGa8WXIQd50", "outputId": "efd6e6e1-5023-4cc6-e555-0d3c0bad509e", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 55, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([0. , 0.02133333, 0.04266667, 0.064 , 0.08533333,\n", " 0.10666667, 0.128 , 0.14933333, 0.17066667, 0.192 ,\n", " 0.21333333, 0.23466667, 0.256 , 0.27733333, 0.29866667,\n", " 0.32 , 0.34133333, 0.36266667, 0.384 , 0.40533333,\n", " 0.42666667, 0.448 , 0.46933333, 0.49066667, 0.512 ,\n", " 0.53333333, 0.55466667, 0.576 , 0.59733333, 0.61866667,\n", " 0.64 , 0.66133333, 0.68266667, 0.704 , 0.72533333,\n", " 0.74666667, 0.768 , 0.78933333, 0.81066667, 0.832 ,\n", " 0.85333333, 0.87466667, 0.896 , 0.91733333, 0.93866667,\n", " 0.96 , 0.98133333, 1.00266667, 1.024 , 1.04533333,\n", " 1.06666667, 1.088 , 1.10933333, 1.13066667, 1.152 ,\n", " 1.17333333, 1.19466667, 1.216 , 1.23733333, 1.25866667,\n", " 1.28 , 1.30133333, 1.32266667, 1.344 , 1.36533333,\n", " 1.38666667, 1.408 , 1.42933333, 1.45066667, 1.472 ,\n", " 1.49333333, 1.51466667, 1.536 , 1.55733333, 1.57866667,\n", " 1.6 , 1.62133333, 1.64266667, 1.664 , 1.68533333,\n", " 1.70666667, 1.728 , 1.74933333, 1.77066667, 1.792 ,\n", " 1.81333333, 1.83466667, 1.856 , 1.87733333, 1.89866667,\n", " 1.92 , 1.94133333, 1.96266667, 1.984 , 2.00533333,\n", " 2.02666667, 2.048 , 2.06933333, 2.09066667, 2.112 ,\n", " 2.13333333, 2.15466667, 2.176 , 2.19733333, 2.21866667,\n", " 2.24 , 2.26133333, 2.28266667, 2.304 , 2.32533333,\n", " 2.34666667, 2.368 , 2.38933333, 2.41066667, 2.432 ,\n", " 2.45333333, 2.47466667, 2.496 , 2.51733333, 2.53866667,\n", " 2.56 , 2.58133333, 2.60266667, 2.624 , 2.64533333,\n", " 2.66666667, 2.688 , 2.70933333, 2.73066667, 2.752 ,\n", " 2.77333333, 2.79466667])" ] }, "metadata": {}, "execution_count": 55 } ] }, { "cell_type": "code", "source": [ "source, sr = torchaudio.load(\"received_data.wav\")\n", "specgram = torchaudio.transforms.MelSpectrogram(sample_rate=24000)(source)\n", "print(\"Shape of spectrogram: {}\".format(specgram.size()))\n", "plt.figure()\n", "p = plt.imshow(specgram.log2()[0,:,:].detach().numpy(), cmap='gray')" ], "metadata": { "id": "C2nZWLIqDMUa", "outputId": "732a3c6f-e444-416f-897c-02a3c3c4a3b7", "colab": { "base_uri": "https://localhost:8080/", "height": 175 } }, "execution_count": 4, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.7/dist-packages/torchaudio/functional/functional.py:540: UserWarning: At least one mel filterbank has all zero values. The value for `n_mels` (128) may be set too high. Or, the value for `n_freqs` (201) may be set too low.\n", " \"At least one mel filterbank has all zero values. \"\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Shape of spectrogram: torch.Size([1, 128, 835])\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "source, sr = torchaudio.load(\"converted_data.wav\")\n", "specgram = torchaudio.transforms.MelSpectrogram(sample_rate=24000)(source)\n", "print(\"Shape of spectrogram: {}\".format(specgram.size()))\n", "plt.figure()\n", "p = plt.imshow(specgram.log2()[0,:,:].detach().numpy(), cmap='gray')" ], "metadata": { "id": "aEmVgMLKIsNE", "outputId": "652e6753-f0a2-4c53-d7a0-83473a8a4293", "colab": { "base_uri": "https://localhost:8080/", "height": 120 } }, "execution_count": 5, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Shape of spectrogram: torch.Size([1, 128, 833])\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "source, sr = torchaudio.load(\"received_data.wav\")\n", "# window = torch.hann_window(window_length=400).cuda()\n", "# pitch = torchaudio.transforms.PitchShift(sample_rate=24000, n_steps=12, window=window)(source.cuda())\n", "source = source.cuda()\n", "chunks = torch.split(source,24000,1)\n", "chunks = [torchaudio.transforms.Vol(i*3)(c) for i, c in enumerate(chunks)]\n", "r = torch.cat(chunks,1)\n", "# pitch = torchaudio.transforms.Vol(1)(source)\n", "#pitch = torchaudio.transforms.Vol(3)(torch.split(source, 36000,1)[0])\n", "\n", "torchaudio.save(\"pitach.wav\", r.cpu(), 24000)\n" ], "metadata": { "id": "KMznFbWGJBrt" }, "execution_count": 115, "outputs": [] }, { "cell_type": "code", "source": [ "len(chunks), len(r)" ], "metadata": { "id": "caNhRHlOJNCW", "outputId": "9d39193b-7584-4082-87f0-c1498897b049", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 113, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(6, 1)" ] }, "metadata": {}, "execution_count": 113 } ] }, { "cell_type": "code", "source": [ "len(t), len(source[0])" ], "metadata": { "id": "k9VYNQK7XG_C", "outputId": "54c31a8d-4836-4789-b38e-649169972fb6", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 89, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(16768, 67072)" ] }, "metadata": {}, "execution_count": 89 } ] }, { "cell_type": "code", "source": [ "display.Audio(\"pitach.wav\", rate=24000)" ], "metadata": { "id": "FHUFYjjAJScV", "outputId": "6b196ff9-ed05-4792-fcff-a742fa67b8d2", "colab": { "base_uri": "https://localhost:8080/", "height": 75 } }, "execution_count": 116, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {}, "execution_count": 116 } ] }, { "cell_type": "code", "source": [ "display.Audio(\"received_data.wav\", rate=24000)" ], "metadata": { "id": "gcb7CJupK7-C", "outputId": "2c682e7e-2713-4d7a-bdfd-2766b2b050eb", "colab": { "base_uri": "https://localhost:8080/", "height": 75 } }, "execution_count": 111, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {}, "execution_count": 111 } ] }, { "cell_type": "code", "source": [], "metadata": { "id": "HApZLF54LV7j" }, "execution_count": null, "outputs": [] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [], "provenance": [], "authorship_tag": "ABX9TyODIrdorZyaMEWBU9At8XBp", "include_colab_link": true }, "gpuClass": "standard", "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 }