diff --git a/Indic-TTS/.gitignore b/Indic-TTS/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..585698b0aeb711b8837df37401127f250c584b8c --- /dev/null +++ b/Indic-TTS/.gitignore @@ -0,0 +1,7 @@ +*.pyc +*.pth +*.json +*.DS_Store +*.log +inference/checkpoints +*.wav diff --git a/Indic-TTS/LICENSE.txt b/Indic-TTS/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..3200d2d480d31d2d24429aa16511ae478d89f643 --- /dev/null +++ b/Indic-TTS/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 AI4Bhฤrat + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Indic-TTS/README.md b/Indic-TTS/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8ba034fed15727898f3653d3ecd1e82ebe19e4b3 --- /dev/null +++ b/Indic-TTS/README.md @@ -0,0 +1,93 @@ +# AI4Bharat Indic-TTS + +## Towards Building Text-To-Speech Systems for the Next Billion Users + +> ๐ŸŽ‰ Accepted at ICASSP 2023 + +Deep learning based text-to-speech (TTS) systems have been evolving rapidly with advances in model architectures, training methodologies, and generalization across speakers and languages. However, these advances have not been thoroughly investigated for Indian language speech synthesis. Such investigation is computationally expensive given the number and diversity of Indian languages, relatively lower resource availability, and the diverse set of advances in neural TTS that remain untested. In this paper, we evaluate the choice of acoustic models, vocoders, supplementary loss functions, training schedules, and speaker and language diversity for Dravidian and Indo-Aryan languages. Based on this, we identify monolingual models with FastPitch and HiFi-GAN V1, trained jointly on male and female speakers to perform the best. With this setup, we train and evaluate TTS models for 13 languages and find our models to significantly improve upon existing models in all languages as measured by mean opinion scores. We open-source all models on the [Bhashini platform](https://bhashini.gov.in/ulca/model/explore-models). + +**TL;DR:** We open-source SOTA Text-To-Speech models for 13 Indian languages: *Assamese, Bengali, Bodo, Gujarati, Hindi, Kannada, Malayalam, Manipuri, Marathi, Odia, Rajasthani, Tamil and Telugu*. + +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-assamese-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-assamese-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-bengali-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-bengali-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-bodo-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-bodo-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-gujarati-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-gujarati-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-hindi-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-hindi-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-kannada-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-kannada-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-malayalam-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-malayalam-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-manipuri-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-manipuri-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-marathi-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-marathi-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-rajasthani-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-rajasthani-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-tamil-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-tamil-on-indictts?p=towards-building-text-to-speech-systems-for) +[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/towards-building-text-to-speech-systems-for/speech-synthesis-telugu-on-indictts)](https://paperswithcode.com/sota/speech-synthesis-telugu-on-indictts?p=towards-building-text-to-speech-systems-for) + + +**Authors:** Gokul Karthik Kumar*, Praveen S V*, Pratyush Kumar, Mitesh M. Khapra, Karthik Nandakumar + +**[[ArXiv Preprint](https://arxiv.org/abs/2211.09536)] [[Audio Samples](https://models.ai4bharat.org/#/tts/samples)] [[Try It Live](https://models.ai4bharat.org/#/tts)] [[Video](https://youtu.be/I3eo8IUAP7s)]** + +## Unified architecture of our TTS system + + +## Results + + +## Setup: +### Environment Setup: +``` +# 1. Create environment +sudo apt-get install libsndfile1-dev ffmpeg enchant +conda create -n tts-env +conda activate tts-env + +# 2. Setup PyTorch +pip3 install -U torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 + +# 3. Setup Trainer +git clone https://github.com/gokulkarthik/Trainer + +cd Trainer +pip3 install -e .[all] +cd .. +[or] +cp Trainer/trainer/logging/wandb_logger.py to the local Trainer installation # fixed wandb logger +cp Trainer/trainer/trainer.py to the local Trainer installation # fixed model.module.test_log and added code to log epoch +add `gpus = [str(gpu) for gpu in gpus]` in line 53 of trainer/distribute.py + +# 4. Setup TTS +git clone https://github.com/gokulkarthik/TTS + +cd TTS +pip3 install -e .[all] +cd .. +[or] +cp TTS/TTS/bin/synthesize.py to the local TTS installation # added multiple output support for TTS.bin.synthesis + +# 5. Install other requirements +> pip3 install -r requirements.txt +``` + + +### Data Setup: +1. Format IndicTTS dataset in LJSpeech format using [preprocessing/FormatDatasets.ipynb](./preprocessing/FormatDatasets.ipynb) +2. Analyze IndicTTS dataset to check TTS suitability using [preprocessing/AnalyzeDataset.ipynb](./preprocessing/AnalyzeDataset.ipynb) + +### Training Steps: +1. Set the configuration with [main.py](./main.py), [vocoder.py](./vocoder.py), [configs](./configs) and [run.sh](./run.sh). Make sure to update the CUDA_VISIBLE_DEVICES in all these files. +2. Train and test by executing `sh run.sh` + +### Inference: +Trained model weight and config files can be downloaded at [this link.](https://github.com/AI4Bharat/Indic-TTS/releases/tag/v1-checkpoints-release) + +``` +python3 -m TTS.bin.synthesize --text \ + --model_path /fastpitch/best_model.pth \ + --config_path /config.json \ + --vocoder_path /hifigan/best_model.pth \ + --vocoder_config_path /hifigan/config.json \ + --out_path +``` + +--- +Code Reference: [https://github.com/coqui-ai/TTS](https://github.com/coqui-ai/TTS) +` diff --git a/Indic-TTS/TTS/.cardboardlint.yml b/Indic-TTS/TTS/.cardboardlint.yml new file mode 100644 index 0000000000000000000000000000000000000000..4a115a37cddb065c76afebc905476e650f53d085 --- /dev/null +++ b/Indic-TTS/TTS/.cardboardlint.yml @@ -0,0 +1,5 @@ +linters: +- pylint: + # pylintrc: pylintrc + filefilter: ['- test_*.py', '+ *.py', '- *.npy'] + # exclude: \ No newline at end of file diff --git a/Indic-TTS/TTS/.dockerignore b/Indic-TTS/TTS/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..2833d344fa5d3ba8b9fe3bde61bc71393490d3a9 --- /dev/null +++ b/Indic-TTS/TTS/.dockerignore @@ -0,0 +1,2 @@ +.git/ +Dockerfile diff --git a/Indic-TTS/TTS/.github/ISSUE_TEMPLATE/bug_report.yaml b/Indic-TTS/TTS/.github/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 0000000000000000000000000000000000000000..34cde7e8448cf817dc00bdc3a116e64fed079284 --- /dev/null +++ b/Indic-TTS/TTS/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,85 @@ +name: "๐Ÿ› Bug report" +description: Create a bug report to help ๐Ÿธ improve +title: '[Bug] ' +labels: [ "bug" ] +body: + - type: markdown + attributes: + value: | + Welcome to the ๐ŸธTTS! Thanks for taking the time to fill out this bug report! + + - type: textarea + id: bug-description + attributes: + label: Describe the bug + description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description. Thanks! + placeholder: Bug description + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: To Reproduce + description: | + Please share your code to reproduce the error. + + Issues are fixed faster if you can provide a working example. + + The best place for sharing code is colab. https://colab.research.google.com/ + So we can directly run your code and reproduce the issue. + + In the worse case, provide steps to reproduce the behavior. + + 1. Run the following command '...' + 2. ... + 3. See error + placeholder: Reproduction + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected behavior + description: "Write down what the expected behaviour" + + - type: textarea + id: logs + attributes: + label: Logs + description: "Please include the relevant logs if you can." + render: shell + + - type: textarea + id: system-info + attributes: + label: Environment + description: | + You can either run `TTS/bin/collect_env_info.py` + + ```bash + wget https://raw.githubusercontent.com/coqui-ai/TTS/main/TTS/bin/collect_env_info.py + python collect_env_info.py + ``` + + or fill in the fields below manually. + render: shell + placeholder: | + - ๐ŸธTTS Version (e.g., 1.3.0): + - PyTorch Version (e.g., 1.8) + - Python version: + - OS (e.g., Linux): + - CUDA/cuDNN version: + - GPU models and configuration: + - How you installed PyTorch (`conda`, `pip`, source): + - Any other relevant information: + validations: + required: true + - type: textarea + id: context + attributes: + label: Additional context + description: Add any other context about the problem here. + validations: + required: false diff --git a/Indic-TTS/TTS/.github/ISSUE_TEMPLATE/config.yml b/Indic-TTS/TTS/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000000000000000000000000000000000..05ca7db6bd1c24907a0aeeb95d9ecec5271e7351 --- /dev/null +++ b/Indic-TTS/TTS/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: CoquiTTS GitHub Discussions + url: https://github.com/coqui-ai/TTS/discussions + about: Please ask and answer questions here. + - name: Coqui Security issue disclosure + url: mailto:info@coqui.ai + about: Please report security vulnerabilities here. diff --git a/Indic-TTS/TTS/.github/ISSUE_TEMPLATE/feature_request.md b/Indic-TTS/TTS/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000000000000000000000000000000000..941ab9b143c748eb1aea6237c09bfc08b675bce8 --- /dev/null +++ b/Indic-TTS/TTS/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,25 @@ +--- +name: ๐Ÿš€ Feature request +about: Suggest a feature or an idea for this project +title: '[Feature request] ' +labels: feature request +assignees: '' + +--- + +**๐Ÿš€ Feature Description** + + + +**Solution** + + + +**Alternative Solutions** + + + +**Additional context** + + diff --git a/Indic-TTS/TTS/.github/PR_TEMPLATE.md b/Indic-TTS/TTS/.github/PR_TEMPLATE.md new file mode 100644 index 0000000000000000000000000000000000000000..330109c3bc1c99134587537a0e8165ce63ca8103 --- /dev/null +++ b/Indic-TTS/TTS/.github/PR_TEMPLATE.md @@ -0,0 +1,15 @@ +# Pull request guidelines + +Welcome to the ๐ŸธTTS project! We are excited to see your interest, and appreciate your support! + +This repository is governed by the Contributor Covenant Code of Conduct. For more details, see the [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) file. + +In order to make a good pull request, please see our [CONTRIBUTING.md](CONTRIBUTING.md) file. + +Before accepting your pull request, you will be asked to sign a [Contributor License Agreement](https://cla-assistant.io/coqui-ai/TTS). + +This [Contributor License Agreement](https://cla-assistant.io/coqui-ai/TTS): + +- Protects you, Coqui, and the users of the code. +- Does not change your rights to use your contributions for any purpose. +- Does not change the license of the ๐ŸธTTS project. It just makes the terms of your contribution clearer and lets us know you are OK to contribute. diff --git a/Indic-TTS/TTS/.github/stale.yml b/Indic-TTS/TTS/.github/stale.yml new file mode 100644 index 0000000000000000000000000000000000000000..e05eaf0b571573cc505ab46eacd5cd87d05b6c60 --- /dev/null +++ b/Indic-TTS/TTS/.github/stale.yml @@ -0,0 +1,18 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 30 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 7 +# Issues with these labels will never be considered stale +exemptLabels: + - pinned + - security +# Label to use when marking an issue as stale +staleLabel: wontfix +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. You might also look our discussion channels. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false + diff --git a/Indic-TTS/TTS/.github/workflows/aux_tests.yml b/Indic-TTS/TTS/.github/workflows/aux_tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..d7eaf5c171da620866316a3845e6896eb8ba963f --- /dev/null +++ b/Indic-TTS/TTS/.github/workflows/aux_tests.yml @@ -0,0 +1,49 @@ +name: aux-tests + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + check_skip: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[ci skip]')" + steps: + - run: echo "${{ github.event.head_commit.message }}" + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.7, 3.8, 3.9, "3.10"] + experimental: [false] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: coqui-ai/setup-python@pip-cache-key-py-ver + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + cache: 'pip' + cache-dependency-path: 'requirements*' + - name: check OS + run: cat /etc/os-release + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y git make gcc + make system-deps + - name: Install/upgrade Python setup deps + run: python3 -m pip install --upgrade pip setuptools wheel + - name: Replace scarf urls + run: | + sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json + - name: Install TTS + run: | + python3 -m pip install .[all] + python3 setup.py egg_info + - name: Unit tests + run: make test_aux diff --git a/Indic-TTS/TTS/.github/workflows/data_tests.yml b/Indic-TTS/TTS/.github/workflows/data_tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..22fdf98c2fa4e2ac726fdc6b3c0d428c904b13b1 --- /dev/null +++ b/Indic-TTS/TTS/.github/workflows/data_tests.yml @@ -0,0 +1,49 @@ +name: data-tests + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + check_skip: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[ci skip]')" + steps: + - run: echo "${{ github.event.head_commit.message }}" + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.7, 3.8, 3.9, "3.10"] + experimental: [false] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: coqui-ai/setup-python@pip-cache-key-py-ver + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + cache: 'pip' + cache-dependency-path: 'requirements*' + - name: check OS + run: cat /etc/os-release + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends git make gcc + make system-deps + - name: Install/upgrade Python setup deps + run: python3 -m pip install --upgrade pip setuptools wheel + - name: Replace scarf urls + run: | + sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json + - name: Install TTS + run: | + python3 -m pip install .[all] + python3 setup.py egg_info + - name: Unit tests + run: make data_tests diff --git a/Indic-TTS/TTS/.github/workflows/docker.yaml b/Indic-TTS/TTS/.github/workflows/docker.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7d383f3f44c5f990a875ce78fdddf231122f7332 --- /dev/null +++ b/Indic-TTS/TTS/.github/workflows/docker.yaml @@ -0,0 +1,65 @@ +name: "Docker build and push" +on: + pull_request: + push: + branches: + - main + - dev + tags: + - v* +jobs: + docker-build: + name: "Build and push Docker image" + runs-on: ubuntu-20.04 + strategy: + matrix: + arch: ["amd64"] + base: + - "nvcr.io/nvidia/pytorch:22.03-py3" # GPU enabled + - "ubuntu:20.04" # CPU only + steps: + - uses: actions/checkout@v2 + - name: Log in to the Container registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Compute Docker tags, check VERSION file matches tag + id: compute-tag + run: | + set -ex + base="ghcr.io/coqui-ai/tts" + tags="" # PR build + + if [[ ${{ matrix.base }} = "ubuntu:20.04" ]]; then + base="ghcr.io/coqui-ai/tts-cpu" + fi + + if [[ "${{ startsWith(github.ref, 'refs/heads/') }}" = "true" ]]; then + # Push to branch + github_ref="${{ github.ref }}" + branch=${github_ref#*refs/heads/} # strip prefix to get branch name + tags="${base}:${branch},${base}:${{ github.sha }}," + elif [[ "${{ startsWith(github.ref, 'refs/tags/') }}" = "true" ]]; then + VERSION="v$(cat TTS/VERSION)" + if [[ "${{ github.ref }}" != "refs/tags/${VERSION}" ]]; then + echo "Pushed tag does not match VERSION file. Aborting push." + exit 1 + fi + tags="${base}:${VERSION},${base}:latest,${base}:${{ github.sha }}" + fi + echo "::set-output name=tags::${tags}" + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/${{ matrix.arch }} + push: ${{ github.event_name == 'push' }} + build-args: "BASE=${{ matrix.base }}" + tags: ${{ steps.compute-tag.outputs.tags }} diff --git a/Indic-TTS/TTS/.github/workflows/inference_tests.yml b/Indic-TTS/TTS/.github/workflows/inference_tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..8e216f503b5d39342934f5f6e3796099a2632509 --- /dev/null +++ b/Indic-TTS/TTS/.github/workflows/inference_tests.yml @@ -0,0 +1,49 @@ +name: inference_tests + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + check_skip: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[ci skip]')" + steps: + - run: echo "${{ github.event.head_commit.message }}" + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.7, 3.8, 3.9, "3.10"] + experimental: [false] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: coqui-ai/setup-python@pip-cache-key-py-ver + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + cache: 'pip' + cache-dependency-path: 'requirements*' + - name: check OS + run: cat /etc/os-release + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends git make gcc + make system-deps + - name: Install/upgrade Python setup deps + run: python3 -m pip install --upgrade pip setuptools wheel + - name: Replace scarf urls + run: | + sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json + - name: Install TTS + run: | + python3 -m pip install .[all] + python3 setup.py egg_info + - name: Unit tests + run: make inference_tests diff --git a/Indic-TTS/TTS/.github/workflows/pypi-release.yml b/Indic-TTS/TTS/.github/workflows/pypi-release.yml new file mode 100644 index 0000000000000000000000000000000000000000..83797be17b039619c2030737f79cffba6b115cf6 --- /dev/null +++ b/Indic-TTS/TTS/.github/workflows/pypi-release.yml @@ -0,0 +1,96 @@ +name: Publish Python ๐Ÿ distributions ๐Ÿ“ฆ to PyPI +on: + release: + types: [published] +defaults: + run: + shell: + bash +jobs: + build-sdist: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - name: Verify tag matches version + run: | + set -ex + version=$(cat TTS/VERSION) + tag="${GITHUB_REF/refs\/tags\/}" + if [[ "v$version" != "$tag" ]]; then + exit 1 + fi + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - run: | + python -m pip install -U pip setuptools wheel build + - run: | + python -m build + - run: | + pip install dist/*.tar.gz + - uses: actions/upload-artifact@v2 + with: + name: sdist + path: dist/*.tar.gz + build-wheels: + runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: ["3.7", "3.8", "3.9", "3.10"] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - run: | + python -m pip install -U pip setuptools wheel build + - run: | + python -m build + - run: | + python -m pip install dist/*.whl + - uses: actions/upload-artifact@v2 + with: + name: wheel-${{ matrix.python-version }} + path: dist/*.whl + publish-artifacts: + runs-on: ubuntu-20.04 + needs: [build-sdist, build-wheels] + steps: + - run: | + mkdir dist + - uses: actions/download-artifact@v2 + with: + name: "sdist" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.7" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.8" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.9" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.10" + path: "dist/" + - run: | + ls -lh dist/ + - name: Setup PyPI config + run: | + cat << EOF > ~/.pypirc + [pypi] + username=__token__ + password=${{ secrets.PYPI_TOKEN }} + EOF + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - run: | + python -m pip install twine + - run: | + twine upload --repository pypi dist/* diff --git a/Indic-TTS/TTS/.github/workflows/style_check.yml b/Indic-TTS/TTS/.github/workflows/style_check.yml new file mode 100644 index 0000000000000000000000000000000000000000..8d1e1af4cc832b9b370fa4a0a6a641539e90f2ee --- /dev/null +++ b/Indic-TTS/TTS/.github/workflows/style_check.yml @@ -0,0 +1,47 @@ +name: style-check + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + check_skip: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[ci skip]')" + steps: + - run: echo "${{ github.event.head_commit.message }}" + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.9] + experimental: [false] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: coqui-ai/setup-python@pip-cache-key-py-ver + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + cache: 'pip' + cache-dependency-path: 'requirements*' + - name: check OS + run: cat /etc/os-release + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y git make gcc + make system-deps + - name: Install/upgrade Python setup deps + run: python3 -m pip install --upgrade pip setuptools wheel + - name: Install TTS + run: | + python3 -m pip install .[all] + python3 setup.py egg_info + - name: Lint check + run: | + make lint \ No newline at end of file diff --git a/Indic-TTS/TTS/.github/workflows/text_tests.yml b/Indic-TTS/TTS/.github/workflows/text_tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..87a0658deb99d6b56d75d13ed543ba0a2b3c3950 --- /dev/null +++ b/Indic-TTS/TTS/.github/workflows/text_tests.yml @@ -0,0 +1,48 @@ +name: text-tests + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + check_skip: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[ci skip]')" + steps: + - run: echo "${{ github.event.head_commit.message }}" + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.7, 3.8, 3.9, "3.10"] + experimental: [false] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: coqui-ai/setup-python@pip-cache-key-py-ver + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + cache: 'pip' + cache-dependency-path: 'requirements*' + - name: check OS + run: cat /etc/os-release + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends git make gcc + sudo apt-get install espeak + sudo apt-get install espeak-ng + make system-deps + - name: Install/upgrade Python setup deps + run: python3 -m pip install --upgrade pip setuptools wheel + - name: Install TTS + run: | + python3 -m pip install .[all] + python3 setup.py egg_info + - name: Unit tests + run: make test_text diff --git a/Indic-TTS/TTS/.github/workflows/tts_tests.yml b/Indic-TTS/TTS/.github/workflows/tts_tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..69ec955a0fa27cd9f859d63d73937424040c96ae --- /dev/null +++ b/Indic-TTS/TTS/.github/workflows/tts_tests.yml @@ -0,0 +1,51 @@ +name: tts-tests + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + check_skip: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[ci skip]')" + steps: + - run: echo "${{ github.event.head_commit.message }}" + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.7, 3.8, 3.9, "3.10"] + experimental: [false] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: coqui-ai/setup-python@pip-cache-key-py-ver + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + cache: 'pip' + cache-dependency-path: 'requirements*' + - name: check OS + run: cat /etc/os-release + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends git make gcc + sudo apt-get install espeak + sudo apt-get install espeak-ng + make system-deps + - name: Install/upgrade Python setup deps + run: python3 -m pip install --upgrade pip setuptools wheel + - name: Replace scarf urls + run: | + sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json + - name: Install TTS + run: | + python3 -m pip install .[all] + python3 setup.py egg_info + - name: Unit tests + run: make test_tts diff --git a/Indic-TTS/TTS/.github/workflows/vocoder_tests.yml b/Indic-TTS/TTS/.github/workflows/vocoder_tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..e1e619b6ec24b5864e1cd0a62506bc59995a28c3 --- /dev/null +++ b/Indic-TTS/TTS/.github/workflows/vocoder_tests.yml @@ -0,0 +1,46 @@ +name: vocoder-tests + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + check_skip: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[ci skip]')" + steps: + - run: echo "${{ github.event.head_commit.message }}" + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.7, 3.8, 3.9, "3.10"] + experimental: [false] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: coqui-ai/setup-python@pip-cache-key-py-ver + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + cache: 'pip' + cache-dependency-path: 'requirements*' + - name: check OS + run: cat /etc/os-release + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y git make gcc + make system-deps + - name: Install/upgrade Python setup deps + run: python3 -m pip install --upgrade pip setuptools wheel + - name: Install TTS + run: | + python3 -m pip install .[all] + python3 setup.py egg_info + - name: Unit tests + run: make test_vocoder diff --git a/Indic-TTS/TTS/.github/workflows/zoo_tests.yml b/Indic-TTS/TTS/.github/workflows/zoo_tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..eaa12fe3867edeb3a7e4f64701f768fb401e54bf --- /dev/null +++ b/Indic-TTS/TTS/.github/workflows/zoo_tests.yml @@ -0,0 +1,50 @@ +name: zoo-tests + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + check_skip: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[ci skip]')" + steps: + - run: echo "${{ github.event.head_commit.message }}" + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.7, 3.8, 3.9, "3.10"] + experimental: [false] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: coqui-ai/setup-python@pip-cache-key-py-ver + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + cache: 'pip' + cache-dependency-path: 'requirements*' + - name: check OS + run: cat /etc/os-release + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y git make gcc + sudo apt-get install espeak espeak-ng + make system-deps + - name: Install/upgrade Python setup deps + run: python3 -m pip install --upgrade pip setuptools wheel + - name: Replace scarf urls + run: | + sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json + - name: Install TTS + run: | + python3 -m pip install .[all] + python3 setup.py egg_info + - name: Unit tests + run: make test_zoo diff --git a/Indic-TTS/TTS/.gitignore b/Indic-TTS/TTS/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..7ce70e40aa887cfd94ecaf56cb4d2a00be6dd90e --- /dev/null +++ b/Indic-TTS/TTS/.gitignore @@ -0,0 +1,170 @@ +WadaSNR/ +.idea/ +*.pyc +.DS_Store +./__init__.py +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +.static_storage/ +.media/ +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +# vim +*.swp +*.swm +*.swn +*.swo + +# pytorch models +*.pth +*.pth.tar +!dummy_speakers.pth +result/ + +# setup.py +version.py + +# jupyter dummy files +core + +# ignore local datasets +recipes/WIP/* +recipes/ljspeech/LJSpeech-1.1/* +recipes/vctk/VCTK/* +recipes/**/*.npy +recipes/**/*.json +VCTK-Corpus-removed-silence/* + +# ignore training logs +trainer_*_log.txt + +# files used internally fro dev, test etc. +tests/outputs/* +tests/train_outputs/* +TODO.txt +.vscode/* +data/* +notebooks/data/* +TTS/tts/utils/monotonic_align/core.c +.vscode-upload.json +temp_build/* +events.out* +old_configs/* +model_importers/* +model_profiling/* +docs/source/TODO/* +.noseids +.dccache +log.txt +umap.png +*.out +SocialMedia.txt +output.wav +tts_output.wav +deps.json +speakers.json +internal/* +*_pitch.npy +*_phoneme.npy +wandb +depot/* +coqui_recipes/* diff --git a/Indic-TTS/TTS/.pre-commit-config.yaml b/Indic-TTS/TTS/.pre-commit-config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a70572dc9e2046e7c37317049aeb235736cce975 --- /dev/null +++ b/Indic-TTS/TTS/.pre-commit-config.yaml @@ -0,0 +1,27 @@ +repos: + - repo: 'https://github.com/pre-commit/pre-commit-hooks' + rev: v2.3.0 + hooks: + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + - repo: 'https://github.com/psf/black' + rev: 20.8b1 + hooks: + - id: black + language_version: python3 + - repo: https://github.com/pycqa/isort + rev: 5.8.0 + hooks: + - id: isort + name: isort (python) + - id: isort + name: isort (cython) + types: [cython] + - id: isort + name: isort (pyi) + types: [pyi] + - repo: https://github.com/pycqa/pylint + rev: v2.8.2 + hooks: + - id: pylint diff --git a/Indic-TTS/TTS/.pylintrc b/Indic-TTS/TTS/.pylintrc new file mode 100644 index 0000000000000000000000000000000000000000..d5f9c4909cb3fe0faeb41d4ec72764c1c69ec754 --- /dev/null +++ b/Indic-TTS/TTS/.pylintrc @@ -0,0 +1,597 @@ +[MASTER] + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code. +extension-pkg-whitelist= + +# Add files or directories to the blacklist. They should be base names, not +# paths. +ignore=CVS + +# Add files or directories matching the regex patterns to the blacklist. The +# regex matches against base names, not paths. +ignore-patterns= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the +# number of processors available to use. +jobs=1 + +# Control the amount of potential inferred values when inferring a single +# object. This can help the performance when dealing with large functions or +# complex, nested conditions. +limit-inference-results=100 + +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + +# Pickle collected data for later comparisons. +persistent=yes + +# Specify a configuration file. +#rcfile= + +# When enabled, pylint would attempt to guess common misconfiguration and emit +# user-friendly hints instead of false-positive error messages. +suggestion-mode=yes + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. +confidence= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once). You can also use "--disable=all" to +# disable everything first and then reenable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use "--disable=all --enable=classes +# --disable=W". +disable=missing-docstring, + too-many-public-methods, + too-many-lines, + bare-except, + ## for avoiding weird p3.6 CI linter error + ## TODO: see later if we can remove this + assigning-non-slot, + unsupported-assignment-operation, + ## end + line-too-long, + fixme, + wrong-import-order, + ungrouped-imports, + wrong-import-position, + import-error, + invalid-name, + too-many-instance-attributes, + arguments-differ, + arguments-renamed, + no-name-in-module, + no-member, + unsubscriptable-object, + print-statement, + parameter-unpacking, + unpacking-in-except, + old-raise-syntax, + backtick, + long-suffix, + old-ne-operator, + old-octal-literal, + import-star-module-level, + non-ascii-bytes-literal, + raw-checker-failed, + bad-inline-option, + locally-disabled, + file-ignored, + suppressed-message, + useless-suppression, + deprecated-pragma, + use-symbolic-message-instead, + useless-object-inheritance, + too-few-public-methods, + too-many-branches, + too-many-arguments, + too-many-locals, + too-many-statements, + apply-builtin, + basestring-builtin, + buffer-builtin, + cmp-builtin, + coerce-builtin, + execfile-builtin, + file-builtin, + long-builtin, + raw_input-builtin, + reduce-builtin, + standarderror-builtin, + unicode-builtin, + xrange-builtin, + coerce-method, + delslice-method, + getslice-method, + setslice-method, + no-absolute-import, + old-division, + dict-iter-method, + dict-view-method, + next-method-called, + metaclass-assignment, + indexing-exception, + raising-string, + reload-builtin, + oct-method, + hex-method, + nonzero-method, + cmp-method, + input-builtin, + round-builtin, + intern-builtin, + unichr-builtin, + map-builtin-not-iterating, + zip-builtin-not-iterating, + range-builtin-not-iterating, + filter-builtin-not-iterating, + using-cmp-argument, + eq-without-hash, + div-method, + idiv-method, + rdiv-method, + exception-message-attribute, + invalid-str-codec, + sys-max-int, + bad-python3-import, + deprecated-string-function, + deprecated-str-translate-call, + deprecated-itertools-function, + deprecated-types-field, + next-method-defined, + dict-items-not-iterating, + dict-keys-not-iterating, + dict-values-not-iterating, + deprecated-operator-function, + deprecated-urllib-function, + xreadlines-attribute, + deprecated-sys-function, + exception-escape, + comprehension-escape, + duplicate-code, + not-callable, + import-outside-toplevel + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +enable=c-extension-no-member + + +[REPORTS] + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details. +#msg-template= + +# Set the output format. Available formats are text, parseable, colorized, json +# and msvs (visual studio). You can also give a reporter class, e.g. +# mypackage.mymodule.MyReporterClass. +output-format=text + +# Tells whether to display a full report or only the messages. +reports=no + +# Activate the evaluation score. +score=yes + + +[REFACTORING] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + +# Complete name of functions that never returns. When checking for +# inconsistent-return-statements if a never returning function is called then +# it will be considered as an explicit return statement and no message will be +# printed. +never-returning-functions=sys.exit + + +[LOGGING] + +# Format style used to check logging format string. `old` means using % +# formatting, while `new` is for `{}` formatting. +logging-format-style=old + +# Logging modules to check that the string format arguments are in logging +# function parameter format. +logging-modules=logging + + +[SPELLING] + +# Limits count of emitted suggestions for spelling mistakes. +max-spelling-suggestions=4 + +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package.. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME, + XXX, + TODO + + +[TYPECHECK] + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members=numpy.*,torch.* + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# Tells whether to warn about missing members when the owner of the attribute +# is inferred to be None. +ignore-none=yes + +# This flag controls whether pylint should warn about no-member and similar +# checks whenever an opaque object is returned when inferring. The inference +# can return multiple potential results while evaluating a Python object, but +# some branches might not be evaluated, which results in partial inference. In +# that case, it might be useful to still emit no-member and other checks for +# the rest of the inferred objects. +ignore-on-opaque-inference=yes + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis. It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= + +# Show a hint with possible names when a member name was not found. The aspect +# of finding the hint is based on edit distance. +missing-member-hint=yes + +# The minimum edit distance a name should have in order to be considered a +# similar match for a missing member name. +missing-member-hint-distance=1 + +# The total number of similar names that should be taken in consideration when +# showing a hint for a missing member. +missing-member-max-choices=1 + + +[VARIABLES] + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid defining new builtins when possible. +additional-builtins= + +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_, + _cb + +# A regular expression matching the name of dummy variables (i.e. expected to +# not be used). +dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore. +ignored-argument-names=_.*|^ignored_|^unused_ + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io + + +[FORMAT] + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )??$ + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + +# Maximum number of characters on a single line. +max-line-length=120 + +# Maximum number of lines in a module. +max-module-lines=1000 + +# List of optional constructs for which whitespace checking is disabled. `dict- +# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. +# `trailing-comma` allows a space between comma and closing bracket: (a, ). +# `empty-line` allows space-only lines. +no-space-check=trailing-comma, + dict-separator + +# Allow the body of a class to be on the same line as the declaration if body +# contains single statement. +single-line-class-stmt=no + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + + +[SIMILARITIES] + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=no + +# Minimum lines number of a similarity. +min-similarity-lines=4 + + +[BASIC] + +# Naming style matching correct argument names. +argument-naming-style=snake_case + +# Regular expression matching correct argument names. Overrides argument- +# naming-style. +argument-rgx=[a-z_][a-z0-9_]{0,30}$ + +# Naming style matching correct attribute names. +attr-naming-style=snake_case + +# Regular expression matching correct attribute names. Overrides attr-naming- +# style. +#attr-rgx= + +# Bad variable names which should always be refused, separated by a comma. +bad-names= + +# Naming style matching correct class attribute names. +class-attribute-naming-style=any + +# Regular expression matching correct class attribute names. Overrides class- +# attribute-naming-style. +#class-attribute-rgx= + +# Naming style matching correct class names. +class-naming-style=PascalCase + +# Regular expression matching correct class names. Overrides class-naming- +# style. +#class-rgx= + +# Naming style matching correct constant names. +const-naming-style=UPPER_CASE + +# Regular expression matching correct constant names. Overrides const-naming- +# style. +#const-rgx= + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=-1 + +# Naming style matching correct function names. +function-naming-style=snake_case + +# Regular expression matching correct function names. Overrides function- +# naming-style. +#function-rgx= + +# Good variable names which should always be accepted, separated by a comma. +good-names=i, + j, + k, + x, + ex, + Run, + _ + +# Include a hint for the correct naming format with invalid-name. +include-naming-hint=no + +# Naming style matching correct inline iteration names. +inlinevar-naming-style=any + +# Regular expression matching correct inline iteration names. Overrides +# inlinevar-naming-style. +#inlinevar-rgx= + +# Naming style matching correct method names. +method-naming-style=snake_case + +# Regular expression matching correct method names. Overrides method-naming- +# style. +#method-rgx= + +# Naming style matching correct module names. +module-naming-style=snake_case + +# Regular expression matching correct module names. Overrides module-naming- +# style. +#module-rgx= + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ + +# List of decorators that produce properties, such as abc.abstractproperty. Add +# to this list to register other decorators that produce valid properties. +# These decorators are taken in consideration only for invalid-name. +property-classes=abc.abstractproperty + +# Naming style matching correct variable names. +variable-naming-style=snake_case + +# Regular expression matching correct variable names. Overrides variable- +# naming-style. +variable-rgx=[a-z_][a-z0-9_]{0,30}$ + + +[STRING] + +# This flag controls whether the implicit-str-concat-in-sequence should +# generate a warning on implicit string concatenation in sequences defined over +# several lines. +check-str-concat-over-line-jumps=no + + +[IMPORTS] + +# Allow wildcard imports from modules that define __all__. +allow-wildcard-with-all=no + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + +# Deprecated modules which should not be used, separated by a comma. +deprecated-modules=optparse,tkinter.tix + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled). +ext-import-graph= + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled). +import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled). +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__, + __new__, + setUp + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict, + _fields, + _replace, + _source, + _make + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=cls + + +[DESIGN] + +# Maximum number of arguments for function / method. +max-args=5 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Maximum number of boolean expressions in an if statement. +max-bool-expr=5 + +# Maximum number of branch for function / method body. +max-branches=12 + +# Maximum number of locals for function / method body. +max-locals=15 + +# Maximum number of parents for a class (see R0901). +max-parents=15 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of return / yield for function / method body. +max-returns=6 + +# Maximum number of statements in function / method body. +max-statements=50 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when being caught. Defaults to +# "BaseException, Exception". +overgeneral-exceptions=BaseException, + Exception diff --git a/Indic-TTS/TTS/.readthedocs.yml b/Indic-TTS/TTS/.readthedocs.yml new file mode 100644 index 0000000000000000000000000000000000000000..946d363cff24913f01fffef6b5a2e868f99ad14b --- /dev/null +++ b/Indic-TTS/TTS/.readthedocs.yml @@ -0,0 +1,18 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Build documentation in the docs/ directory with Sphinx +sphinx: + builder: html + configuration: docs/source/conf.py + +# Optionally set the version of Python and requirements required to build your docs +python: + version: 3.7 + install: + - requirements: docs/requirements.txt + - requirements: requirements.txt \ No newline at end of file diff --git a/Indic-TTS/TTS/CITATION.cff b/Indic-TTS/TTS/CITATION.cff new file mode 100644 index 0000000000000000000000000000000000000000..6b0c8f19af1b37607c3994abe28b8d362cbcb564 --- /dev/null +++ b/Indic-TTS/TTS/CITATION.cff @@ -0,0 +1,20 @@ +cff-version: 1.2.0 +message: "If you want to cite ๐Ÿธ๐Ÿ’ฌ, feel free to use this (but only if you loved it ๐Ÿ˜Š)" +title: "Coqui TTS" +abstract: "A deep learning toolkit for Text-to-Speech, battle-tested in research and production" +date-released: 2021-01-01 +authors: + - family-names: "Eren" + given-names: "Gรถlge" + - name: "The Coqui TTS Team" +version: 1.4 +doi: 10.5281/zenodo.6334862 +license: "MPL-2.0" +url: "https://www.coqui.ai" +repository-code: "https://github.com/coqui-ai/TTS" +keywords: + - machine learning + - deep learning + - artificial intelligence + - text to speech + - TTS \ No newline at end of file diff --git a/Indic-TTS/TTS/CODE_OF_CONDUCT.md b/Indic-TTS/TTS/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000000000000000000000000000000000..b80639d63c29e902c547de347806651bcc9ad3b2 --- /dev/null +++ b/Indic-TTS/TTS/CODE_OF_CONDUCT.md @@ -0,0 +1,133 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +coc-report@coqui.ai. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available +at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/Indic-TTS/TTS/CODE_OWNERS.rst b/Indic-TTS/TTS/CODE_OWNERS.rst new file mode 100644 index 0000000000000000000000000000000000000000..768b573911eae8aeb229de6f56039deb9a64ce27 --- /dev/null +++ b/Indic-TTS/TTS/CODE_OWNERS.rst @@ -0,0 +1,75 @@ +TTS code owners / governance system +========================================== + +TTS is run under a governance system inspired (and partially copied from) by the `Mozilla module ownership system `_. The project is roughly divided into modules, and each module has its owners, which are responsible for reviewing pull requests and deciding on technical direction for their modules. Module ownership authority is given to people who have worked extensively on areas of the project. + +Module owners also have the authority of naming other module owners or appointing module peers, which are people with authority to review pull requests in that module. They can also sub-divide their module into sub-modules with their owners. + +Module owners are not tyrants. They are chartered to make decisions with input from the community and in the best interest of the community. Module owners are not required to make code changes or additions solely because the community wants them to do so. (Like anyone else, the module owners may write code because they want to, because their employers want them to, because the community wants them to, or for some other reason.) Module owners do need to pay attention to patches submitted to that module. However โ€œpay attentionโ€ does not mean agreeing to every patch. Some patches may not make sense for the WebThings project; some may be poorly implemented. Module owners have the authority to decline a patch; this is a necessary part of the role. We ask the module owners to describe in the relevant issue their reasons for wanting changes to a patch, for declining it altogether, or for postponing review for some period. We donโ€™t ask or expect them to rewrite patches to make them acceptable. Similarly, module owners may need to delay review of a promising patch due to an upcoming deadline. For example, a patch may be of interest, but not for the next milestone. In such a case it may make sense for the module owner to postpone review of a patch until after matters needed for a milestone have been finalized. Again, we expect this to be described in the relevant issue. And of course, it shouldnโ€™t go on very often or for very long or escalation and review is likely. + +The work of the various module owners and peers is overseen by the global owners, which are responsible for making final decisions in case there's conflict between owners as well as set the direction for the project as a whole. + +This file describes module owners who are active on the project and which parts of the code they have expertise on (and interest in). If you're making changes to the code and are wondering who's an appropriate person to talk to, this list will tell you who to ping. + +There's overlap in the areas of expertise of each owner, and in particular when looking at which files are covered by each area, there is a lot of overlap. Don't worry about getting it exactly right when requesting review, any code owner will be happy to redirect the request to a more appropriate person. + +Global owners +---------------- + +These are people who have worked on the project extensively and are familiar with all or most parts of it. Their expertise and review guidance is trusted by other code owners to cover their own areas of expertise. In case of conflicting opinions from other owners, global owners will make a final decision. + +- Eren Gรถlge (@erogol) +- Reuben Morais (@reuben) + +Training, feeding +----------------- + +- Eren Gรถlge (@erogol) + +Model exporting +--------------- + +- Eren Gรถlge (@erogol) + +Multi-Speaker TTS +----------------- + +- Eren Gรถlge (@erogol) +- Edresson Casanova (@edresson) + +TTS +--- + +- Eren Gรถlge (@erogol) + +Vocoders +-------- + +- Eren Gรถlge (@erogol) + +Speaker Encoder +--------------- + +- Eren Gรถlge (@erogol) + +Testing & CI +------------ + +- Eren Gรถlge (@erogol) +- Reuben Morais (@reuben) + +Python bindings +--------------- + +- Eren Gรถlge (@erogol) +- Reuben Morais (@reuben) + +Documentation +------------- + +- Eren Gรถlge (@erogol) + +Third party bindings +-------------------- + +Owned by the author. diff --git a/Indic-TTS/TTS/CONTRIBUTING.md b/Indic-TTS/TTS/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..81a426e823c6ccc1f9987b9260a270c3e143500d --- /dev/null +++ b/Indic-TTS/TTS/CONTRIBUTING.md @@ -0,0 +1,136 @@ +# Contribution guidelines + +Welcome to the ๐ŸธTTS! + +This repository is governed by [the Contributor Covenant Code of Conduct](https://github.com/coqui-ai/TTS/blob/main/CODE_OF_CONDUCT.md). + +## Where to start. +We welcome everyone who likes to contribute to ๐ŸธTTS. + +You can contribute not only with code but with bug reports, comments, questions, answers, or just a simple tweet to spread the word. + +If you like to contribute code, squash a bug but if you don't know where to start, here are some pointers. + +- [Development Road Map](https://github.com/coqui-ai/TTS/issues/378) + + You can pick something out of our road map. We keep the progess of the project in this simple issue thread. It has new model proposals or developmental updates etc. + +- [Github Issues Tracker](https://github.com/coqui-ai/TTS/issues) + + This is a place to find feature requests, bugs. + + Issues with the ```good first issue``` tag are good place for beginners to take on. + +- โœจ**PR**โœจ [pages](https://github.com/coqui-ai/TTS/pulls) with the ```๐Ÿš€new version``` tag. + + We list all the target improvements for the next version. You can pick one of them and start contributing. + +- Also feel free to suggest new features, ideas and models. We're always open for new things. + +## Call for sharing language models +If possible, please consider sharing your pre-trained models in any language (if the licences allow for you to do so). We will include them in our model catalogue for public use and give the proper attribution, whether it be your name, company, website or any other source specified. + +This model can be shared in two ways: +1. Share the model files with us and we serve them with the next ๐Ÿธ TTS release. +2. Upload your models on GDrive and share the link. + +Models are served under `.models.json` file and any model is available under TTS CLI or Server end points. + +Either way you choose, please make sure you send the models [here](https://github.com/coqui-ai/TTS/issues/380). + +## Sending a โœจ**PR**โœจ + +If you have a new feature, a model to implement, or a bug to squash, go ahead and send a โœจ**PR**โœจ. +Please use the following steps to send a โœจ**PR**โœจ. +Let us know if you encounter a problem along the way. + +The following steps are tested on an Ubuntu system. + +1. Fork ๐ŸธTTS[https://github.com/coqui-ai/TTS] by clicking the fork button at the top right corner of the project page. + +2. Clone ๐ŸธTTS and add the main repo as a new remote named ```upsteam```. + + ```bash + $ git clone git@github.com:/TTS.git + $ cd TTS + $ git remote add upstream https://github.com/coqui-ai/TTS.git + ``` + +3. Install ๐ŸธTTS for development. + + ```bash + $ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS. + $ make install + ``` + +4. Create a new branch with an informative name for your goal. + + ```bash + $ git checkout -b an_informative_name_for_my_branch + ``` + +5. Implement your changes on your new branch. + +6. Explain your code using [Google Style](https://google.github.io/styleguide/pyguide.html#381-docstrings) docstrings. + +7. Add your tests to our test suite under ```tests``` folder. It is important to show that your code works, edge cases are considered, and inform others about the intended use. + +8. Run the tests to see how your updates work with the rest of the project. You can repeat this step multiple times as you implement your changes to make sure you are on the right direction. + + ```bash + $ make test # stop at the first error + $ make test_all # run all the tests, report all the errors + ``` + +9. Format your code. We use ```black``` for code and ```isort``` for ```import``` formatting. + + ```bash + $ make style + ``` + +10. Run the linter and correct the issues raised. We use ```pylint``` for linting. It helps to enforce a coding standard, offers simple refactoring suggestions. + + ```bash + $ make lint + ``` + +11. When things are good, add new files and commit your changes. + + ```bash + $ git add my_file1.py my_file2.py ... + $ git commit + ``` + + It's a good practice to regularly sync your local copy of the project with the upstream code to keep up with the recent updates. + + ```bash + $ git fetch upstream + $ git rebase upstream/master + # or for the development version + $ git rebase upstream/dev + ``` + +12. Send a PR to ```dev``` branch. + + Push your branch to your fork. + + ```bash + $ git push -u origin an_informative_name_for_my_branch + ``` + + Then go to your fork's Github page and click on 'Pull request' to send your โœจ**PR**โœจ. + + Please set โœจ**PR**โœจ's target branch to ```dev``` as we use ```dev``` to work on the next version. + +13. Let's discuss until it is perfect. ๐Ÿ’ช + + We might ask you for certain changes that would appear in the โœจ**PR**โœจ's page under ๐ŸธTTS[https://github.com/coqui-ai/TTS/pulls]. + +14. Once things look perfect, We merge it to the ```dev``` branch and make it ready for the next version. + +Feel free to ping us at any step you need help using our communication channels. + +If you are new to Github or open-source contribution, These are good resources. + +- [Github Docs](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests) +- [First-Contribution](https://github.com/firstcontributions/first-contributions) diff --git a/Indic-TTS/TTS/Dockerfile b/Indic-TTS/TTS/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..2b70e8c821c691065e81095b3d95dfd38da96eda --- /dev/null +++ b/Indic-TTS/TTS/Dockerfile @@ -0,0 +1,20 @@ +ARG BASE=nvcr.io/nvidia/pytorch:22.03-py3 +FROM ${BASE} +RUN apt-get update && apt-get install -y --no-install-recommends gcc g++ make python3 python3-dev python3-pip python3-venv python3-wheel espeak espeak-ng libsndfile1-dev && rm -rf /var/lib/apt/lists/* +RUN pip install llvmlite --ignore-installed + +# Create and activate virtual env +ENV VIRTUAL_ENV=/venv +RUN python3 -m venv $VIRTUAL_ENV +ENV PATH="$VIRTUAL_ENV/bin:$PATH" +RUN pip install -U pip setuptools wheel + +WORKDIR /root +COPY requirements.txt /root +COPY requirements.dev.txt /root +COPY requirements.notebooks.txt /root +RUN ["/bin/bash", "-c", "pip install -r <(cat requirements.txt requirements.dev.txt requirements.notebooks.txt)"] +COPY . /root +RUN make install +ENTRYPOINT ["tts"] +CMD ["--help"] diff --git a/Indic-TTS/TTS/LICENSE.txt b/Indic-TTS/TTS/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..14e2f777f6c395e7e04ab4aa306bbcc4b0c1120e --- /dev/null +++ b/Indic-TTS/TTS/LICENSE.txt @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/Indic-TTS/TTS/MANIFEST.in b/Indic-TTS/TTS/MANIFEST.in new file mode 100644 index 0000000000000000000000000000000000000000..82ecadcb48e2cdc45492f46aa90d43fe414bf954 --- /dev/null +++ b/Indic-TTS/TTS/MANIFEST.in @@ -0,0 +1,14 @@ +include README.md +include LICENSE.txt +include requirements.*.txt +include *.cff +include requirements.txt +include TTS/VERSION +recursive-include TTS *.json +recursive-include TTS *.html +recursive-include TTS *.png +recursive-include TTS *.md +recursive-include TTS *.py +recursive-include TTS *.pyx +recursive-include images *.png + diff --git a/Indic-TTS/TTS/Makefile b/Indic-TTS/TTS/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..7adea3a1fe8a61b12da0356cc1f57c2564b38570 --- /dev/null +++ b/Indic-TTS/TTS/Makefile @@ -0,0 +1,72 @@ +.DEFAULT_GOAL := help +.PHONY: test system-deps dev-deps deps style lint install help docs + +help: + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +target_dirs := tests TTS notebooks recipes + +test_all: ## run tests and don't stop on an error. + nose2 --with-coverage --coverage TTS tests + ./run_bash_tests.sh + +test: ## run tests. + nose2 -F -v -B --with-coverage --coverage TTS tests + +test_vocoder: ## run vocoder tests. + nose2 -F -v -B --with-coverage --coverage TTS tests.vocoder_tests + +test_tts: ## run tts tests. + nose2 -F -v -B --with-coverage --coverage TTS tests.tts_tests + +test_aux: ## run aux tests. + nose2 -F -v -B --with-coverage --coverage TTS tests.aux_tests + ./run_bash_tests.sh + +test_zoo: ## run zoo tests. + nose2 -F -v -B --with-coverage --coverage TTS tests.zoo_tests + +inference_tests: ## run inference tests. + nose2 -F -v -B --with-coverage --coverage TTS tests.inference_tests + +data_tests: ## run data tests. + nose2 -F -v -B --with-coverage --coverage TTS tests.data_tests + +test_text: ## run text tests. + nose2 -F -v -B --with-coverage --coverage TTS tests.text_tests + +test_failed: ## only run tests failed the last time. + nose2 -F -v -B --with-coverage --coverage TTS tests + +style: ## update code style. + black ${target_dirs} + isort ${target_dirs} + +lint: ## run pylint linter. + pylint ${target_dirs} + black ${target_dirs} --check + isort ${target_dirs} --check-only + +system-deps: ## install linux system deps + sudo apt-get install -y libsndfile1-dev + +dev-deps: ## install development deps + pip install -r requirements.dev.txt + +doc-deps: ## install docs dependencies + pip install -r docs/requirements.txt + +build-docs: ## build the docs + cd docs && make clean && make build + +hub-deps: ## install deps for torch hub use + pip install -r requirements.hub.txt + +deps: ## install ๐Ÿธ requirements. + pip install -r requirements.txt + +install: ## install ๐Ÿธ TTS for development. + pip install -e .[all] + +docs: ## build the docs + $(MAKE) -C docs clean && $(MAKE) -C docs html diff --git a/Indic-TTS/TTS/README.md b/Indic-TTS/TTS/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8ed67c308f9ff40f0b69d9d0a374a1f455d7ca2c --- /dev/null +++ b/Indic-TTS/TTS/README.md @@ -0,0 +1,217 @@ +# + +๐ŸธTTS is a library for advanced Text-to-Speech generation. It's built on the latest research, was designed to achieve the best trade-off among ease-of-training, speed and quality. +๐ŸธTTS comes with pretrained models, tools for measuring dataset quality and already used in **20+ languages** for products and research projects. + +[![Gitter](https://badges.gitter.im/coqui-ai/TTS.svg)](https://gitter.im/coqui-ai/TTS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![License]()](https://opensource.org/licenses/MPL-2.0) +[![PyPI version](https://badge.fury.io/py/TTS.svg)](https://badge.fury.io/py/TTS) +[![Covenant](https://camo.githubusercontent.com/7d620efaa3eac1c5b060ece5d6aacfcc8b81a74a04d05cd0398689c01c4463bb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6e7472696275746f72253230436f76656e616e742d76322e3025323061646f707465642d6666363962342e737667)](https://github.com/coqui-ai/TTS/blob/master/CODE_OF_CONDUCT.md) +[![Downloads](https://pepy.tech/badge/tts)](https://pepy.tech/project/tts) +[![DOI](https://zenodo.org/badge/265612440.svg)](https://zenodo.org/badge/latestdoi/265612440) + +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/aux_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/data_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/docker.yaml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/inference_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/style_check.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/text_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/tts_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/vocoder_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/zoo_tests.yml/badge.svg) +[![Docs]()](https://tts.readthedocs.io/en/latest/) + +๐Ÿ“ฐ [**Subscribe to ๐ŸธCoqui.ai Newsletter**](https://coqui.ai/?subscription=true) + +๐Ÿ“ข [English Voice Samples](https://erogol.github.io/ddc-samples/) and [SoundCloud playlist](https://soundcloud.com/user-565970875/pocket-article-wavernn-and-tacotron2) + +๐Ÿ“„ [Text-to-Speech paper collection](https://github.com/erogol/TTS-papers) + + + +## ๐Ÿ’ฌ Where to ask questions +Please use our dedicated channels for questions and discussion. Help is much more valuable if it's shared publicly so that more people can benefit from it. + +| Type | Platforms | +| ------------------------------- | --------------------------------------- | +| ๐Ÿšจ **Bug Reports** | [GitHub Issue Tracker] | +| ๐ŸŽ **Feature Requests & Ideas** | [GitHub Issue Tracker] | +| ๐Ÿ‘ฉโ€๐Ÿ’ป **Usage Questions** | [Github Discussions] | +| ๐Ÿ—ฏ **General Discussion** | [Github Discussions] or [Gitter Room] | + +[github issue tracker]: https://github.com/coqui-ai/tts/issues +[github discussions]: https://github.com/coqui-ai/TTS/discussions +[gitter room]: https://gitter.im/coqui-ai/TTS?utm_source=share-link&utm_medium=link&utm_campaign=share-link +[Tutorials and Examples]: https://github.com/coqui-ai/TTS/wiki/TTS-Notebooks-and-Tutorials + + +## ๐Ÿ”— Links and Resources +| Type | Links | +| ------------------------------- | --------------------------------------- | +| ๐Ÿ’ผ **Documentation** | [ReadTheDocs](https://tts.readthedocs.io/en/latest/) +| ๐Ÿ’พ **Installation** | [TTS/README.md](https://github.com/coqui-ai/TTS/tree/dev#install-tts)| +| ๐Ÿ‘ฉโ€๐Ÿ’ป **Contributing** | [CONTRIBUTING.md](https://github.com/coqui-ai/TTS/blob/main/CONTRIBUTING.md)| +| ๐Ÿ“Œ **Road Map** | [Main Development Plans](https://github.com/coqui-ai/TTS/issues/378) +| ๐Ÿš€ **Released Models** | [TTS Releases](https://github.com/coqui-ai/TTS/releases) and [Experimental Models](https://github.com/coqui-ai/TTS/wiki/Experimental-Released-Models)| + +## ๐Ÿฅ‡ TTS Performance +

+ +Underlined "TTS*" and "Judy*" are ๐ŸธTTS models + + +## Features +- High-performance Deep Learning models for Text2Speech tasks. + - Text2Spec models (Tacotron, Tacotron2, Glow-TTS, SpeedySpeech). + - Speaker Encoder to compute speaker embeddings efficiently. + - Vocoder models (MelGAN, Multiband-MelGAN, GAN-TTS, ParallelWaveGAN, WaveGrad, WaveRNN) +- Fast and efficient model training. +- Detailed training logs on the terminal and Tensorboard. +- Support for Multi-speaker TTS. +- Efficient, flexible, lightweight but feature complete `Trainer API`. +- Released and ready-to-use models. +- Tools to curate Text2Speech datasets under```dataset_analysis```. +- Utilities to use and test your models. +- Modular (but not too much) code base enabling easy implementation of new ideas. + +## Implemented Models +### Text-to-Spectrogram +- Tacotron: [paper](https://arxiv.org/abs/1703.10135) +- Tacotron2: [paper](https://arxiv.org/abs/1712.05884) +- Glow-TTS: [paper](https://arxiv.org/abs/2005.11129) +- Speedy-Speech: [paper](https://arxiv.org/abs/2008.03802) +- Align-TTS: [paper](https://arxiv.org/abs/2003.01950) +- FastPitch: [paper](https://arxiv.org/pdf/2006.06873.pdf) +- FastSpeech: [paper](https://arxiv.org/abs/1905.09263) + +### End-to-End Models +- VITS: [paper](https://arxiv.org/pdf/2106.06103) + +### Attention Methods +- Guided Attention: [paper](https://arxiv.org/abs/1710.08969) +- Forward Backward Decoding: [paper](https://arxiv.org/abs/1907.09006) +- Graves Attention: [paper](https://arxiv.org/abs/1910.10288) +- Double Decoder Consistency: [blog](https://erogol.com/solving-attention-problems-of-tts-models-with-double-decoder-consistency/) +- Dynamic Convolutional Attention: [paper](https://arxiv.org/pdf/1910.10288.pdf) +- Alignment Network: [paper](https://arxiv.org/abs/2108.10447) + +### Speaker Encoder +- GE2E: [paper](https://arxiv.org/abs/1710.10467) +- Angular Loss: [paper](https://arxiv.org/pdf/2003.11982.pdf) + +### Vocoders +- MelGAN: [paper](https://arxiv.org/abs/1910.06711) +- MultiBandMelGAN: [paper](https://arxiv.org/abs/2005.05106) +- ParallelWaveGAN: [paper](https://arxiv.org/abs/1910.11480) +- GAN-TTS discriminators: [paper](https://arxiv.org/abs/1909.11646) +- WaveRNN: [origin](https://github.com/fatchord/WaveRNN/) +- WaveGrad: [paper](https://arxiv.org/abs/2009.00713) +- HiFiGAN: [paper](https://arxiv.org/abs/2010.05646) +- UnivNet: [paper](https://arxiv.org/abs/2106.07889) + +You can also help us implement more models. + +## Install TTS +๐ŸธTTS is tested on Ubuntu 18.04 with **python >= 3.7, < 3.11.**. + +If you are only interested in [synthesizing speech](https://tts.readthedocs.io/en/latest/inference.html) with the released ๐ŸธTTS models, installing from PyPI is the easiest option. + +```bash +pip install TTS +``` + +If you plan to code or train models, clone ๐ŸธTTS and install it locally. + +```bash +git clone https://github.com/coqui-ai/TTS +pip install -e .[all,dev,notebooks] # Select the relevant extras +``` + +If you are on Ubuntu (Debian), you can also run following commands for installation. + +```bash +$ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a diffent OS. +$ make install +``` + +If you are on Windows, ๐Ÿ‘‘@GuyPaddock wrote installation instructions [here](https://stackoverflow.com/questions/66726331/how-can-i-run-mozilla-tts-coqui-tts-training-with-cuda-on-a-windows-system). + +## Use TTS + +### Single Speaker Models + +- List provided models: + + ``` + $ tts --list_models + ``` + +- Run TTS with default models: + + ``` + $ tts --text "Text for TTS" + ``` + +- Run a TTS model with its default vocoder model: + + ``` + $ tts --text "Text for TTS" --model_name "// + ``` + +- Run with specific TTS and vocoder models from the list: + + ``` + $ tts --text "Text for TTS" --model_name "//" --vocoder_name "//" --output_path + ``` + +- Run your own TTS model (Using Griffin-Lim Vocoder): + + ``` + $ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav + ``` + +- Run your own TTS and Vocoder models: + ``` + $ tts --text "Text for TTS" --model_path path/to/config.json --config_path path/to/model.pth --out_path output/path/speech.wav + --vocoder_path path/to/vocoder.pth --vocoder_config_path path/to/vocoder_config.json + ``` + +### Multi-speaker Models + +- List the available speakers and choose as among them: + + ``` + $ tts --model_name "//" --list_speaker_idxs + ``` + +- Run the multi-speaker TTS model with the target speaker ID: + + ``` + $ tts --text "Text for TTS." --out_path output/path/speech.wav --model_name "//" --speaker_idx + ``` + +- Run your own multi-speaker TTS model: + + ``` + $ tts --text "Text for TTS" --out_path output/path/speech.wav --model_path path/to/config.json --config_path path/to/model.pth --speakers_file_path path/to/speaker.json --speaker_idx + ``` + +## Directory Structure +``` +|- notebooks/ (Jupyter Notebooks for model evaluation, parameter selection and data analysis.) +|- utils/ (common utilities.) +|- TTS + |- bin/ (folder for all the executables.) + |- train*.py (train your target model.) + |- distribute.py (train your TTS model using Multiple GPUs.) + |- compute_statistics.py (compute dataset statistics for normalization.) + |- ... + |- tts/ (text to speech models) + |- layers/ (model layer definitions) + |- models/ (model definitions) + |- utils/ (model specific utilities.) + |- speaker_encoder/ (Speaker Encoder models.) + |- (same) + |- vocoder/ (Vocoder models.) + |- (same) +``` diff --git a/Indic-TTS/TTS/TTS.egg-info/PKG-INFO b/Indic-TTS/TTS/TTS.egg-info/PKG-INFO new file mode 100644 index 0000000000000000000000000000000000000000..70e0b6be7985e17b9d88c506d8224981f66821df --- /dev/null +++ b/Indic-TTS/TTS/TTS.egg-info/PKG-INFO @@ -0,0 +1,253 @@ +Metadata-Version: 2.1 +Name: TTS +Version: 0.7.1 +Summary: Deep learning for Text to Speech by Coqui. +Home-page: https://github.com/coqui-ai/TTS +Author: Eren Gรถlge +Author-email: egolge@coqui.ai +License: MPL-2.0 +Project-URL: Documentation, https://github.com/coqui-ai/TTS/wiki +Project-URL: Tracker, https://github.com/coqui-ai/TTS/issues +Project-URL: Repository, https://github.com/coqui-ai/TTS +Project-URL: Discussions, https://github.com/coqui-ai/TTS/discussions +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Development Status :: 3 - Alpha +Classifier: Intended Audience :: Science/Research +Classifier: Intended Audience :: Developers +Classifier: Operating System :: POSIX :: Linux +Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) +Classifier: Topic :: Software Development +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Multimedia :: Sound/Audio :: Speech +Classifier: Topic :: Multimedia :: Sound/Audio +Classifier: Topic :: Multimedia +Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence +Requires-Python: >=3.7.0, <3.11 +Description-Content-Type: text/markdown +Provides-Extra: all +Provides-Extra: dev +Provides-Extra: notebooks +License-File: LICENSE.txt + +# + +๐ŸธTTS is a library for advanced Text-to-Speech generation. It's built on the latest research, was designed to achieve the best trade-off among ease-of-training, speed and quality. +๐ŸธTTS comes with pretrained models, tools for measuring dataset quality and already used in **20+ languages** for products and research projects. + +[![Gitter](https://badges.gitter.im/coqui-ai/TTS.svg)](https://gitter.im/coqui-ai/TTS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![License]()](https://opensource.org/licenses/MPL-2.0) +[![PyPI version](https://badge.fury.io/py/TTS.svg)](https://badge.fury.io/py/TTS) +[![Covenant](https://camo.githubusercontent.com/7d620efaa3eac1c5b060ece5d6aacfcc8b81a74a04d05cd0398689c01c4463bb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6e7472696275746f72253230436f76656e616e742d76322e3025323061646f707465642d6666363962342e737667)](https://github.com/coqui-ai/TTS/blob/master/CODE_OF_CONDUCT.md) +[![Downloads](https://pepy.tech/badge/tts)](https://pepy.tech/project/tts) +[![DOI](https://zenodo.org/badge/265612440.svg)](https://zenodo.org/badge/latestdoi/265612440) + +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/aux_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/data_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/docker.yaml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/inference_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/style_check.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/text_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/tts_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/vocoder_tests.yml/badge.svg) +![GithubActions](https://github.com/coqui-ai/TTS/actions/workflows/zoo_tests.yml/badge.svg) +[![Docs]()](https://tts.readthedocs.io/en/latest/) + +๐Ÿ“ฐ [**Subscribe to ๐ŸธCoqui.ai Newsletter**](https://coqui.ai/?subscription=true) + +๐Ÿ“ข [English Voice Samples](https://erogol.github.io/ddc-samples/) and [SoundCloud playlist](https://soundcloud.com/user-565970875/pocket-article-wavernn-and-tacotron2) + +๐Ÿ“„ [Text-to-Speech paper collection](https://github.com/erogol/TTS-papers) + + + +## ๐Ÿ’ฌ Where to ask questions +Please use our dedicated channels for questions and discussion. Help is much more valuable if it's shared publicly so that more people can benefit from it. + +| Type | Platforms | +| ------------------------------- | --------------------------------------- | +| ๐Ÿšจ **Bug Reports** | [GitHub Issue Tracker] | +| ๐ŸŽ **Feature Requests & Ideas** | [GitHub Issue Tracker] | +| ๐Ÿ‘ฉโ€๐Ÿ’ป **Usage Questions** | [Github Discussions] | +| ๐Ÿ—ฏ **General Discussion** | [Github Discussions] or [Gitter Room] | + +[github issue tracker]: https://github.com/coqui-ai/tts/issues +[github discussions]: https://github.com/coqui-ai/TTS/discussions +[gitter room]: https://gitter.im/coqui-ai/TTS?utm_source=share-link&utm_medium=link&utm_campaign=share-link +[Tutorials and Examples]: https://github.com/coqui-ai/TTS/wiki/TTS-Notebooks-and-Tutorials + + +## ๐Ÿ”— Links and Resources +| Type | Links | +| ------------------------------- | --------------------------------------- | +| ๐Ÿ’ผ **Documentation** | [ReadTheDocs](https://tts.readthedocs.io/en/latest/) +| ๐Ÿ’พ **Installation** | [TTS/README.md](https://github.com/coqui-ai/TTS/tree/dev#install-tts)| +| ๐Ÿ‘ฉโ€๐Ÿ’ป **Contributing** | [CONTRIBUTING.md](https://github.com/coqui-ai/TTS/blob/main/CONTRIBUTING.md)| +| ๐Ÿ“Œ **Road Map** | [Main Development Plans](https://github.com/coqui-ai/TTS/issues/378) +| ๐Ÿš€ **Released Models** | [TTS Releases](https://github.com/coqui-ai/TTS/releases) and [Experimental Models](https://github.com/coqui-ai/TTS/wiki/Experimental-Released-Models)| + +## ๐Ÿฅ‡ TTS Performance +

+ +Underlined "TTS*" and "Judy*" are ๐ŸธTTS models + + +## Features +- High-performance Deep Learning models for Text2Speech tasks. + - Text2Spec models (Tacotron, Tacotron2, Glow-TTS, SpeedySpeech). + - Speaker Encoder to compute speaker embeddings efficiently. + - Vocoder models (MelGAN, Multiband-MelGAN, GAN-TTS, ParallelWaveGAN, WaveGrad, WaveRNN) +- Fast and efficient model training. +- Detailed training logs on the terminal and Tensorboard. +- Support for Multi-speaker TTS. +- Efficient, flexible, lightweight but feature complete `Trainer API`. +- Released and ready-to-use models. +- Tools to curate Text2Speech datasets under```dataset_analysis```. +- Utilities to use and test your models. +- Modular (but not too much) code base enabling easy implementation of new ideas. + +## Implemented Models +### Text-to-Spectrogram +- Tacotron: [paper](https://arxiv.org/abs/1703.10135) +- Tacotron2: [paper](https://arxiv.org/abs/1712.05884) +- Glow-TTS: [paper](https://arxiv.org/abs/2005.11129) +- Speedy-Speech: [paper](https://arxiv.org/abs/2008.03802) +- Align-TTS: [paper](https://arxiv.org/abs/2003.01950) +- FastPitch: [paper](https://arxiv.org/pdf/2006.06873.pdf) +- FastSpeech: [paper](https://arxiv.org/abs/1905.09263) + +### End-to-End Models +- VITS: [paper](https://arxiv.org/pdf/2106.06103) + +### Attention Methods +- Guided Attention: [paper](https://arxiv.org/abs/1710.08969) +- Forward Backward Decoding: [paper](https://arxiv.org/abs/1907.09006) +- Graves Attention: [paper](https://arxiv.org/abs/1910.10288) +- Double Decoder Consistency: [blog](https://erogol.com/solving-attention-problems-of-tts-models-with-double-decoder-consistency/) +- Dynamic Convolutional Attention: [paper](https://arxiv.org/pdf/1910.10288.pdf) +- Alignment Network: [paper](https://arxiv.org/abs/2108.10447) + +### Speaker Encoder +- GE2E: [paper](https://arxiv.org/abs/1710.10467) +- Angular Loss: [paper](https://arxiv.org/pdf/2003.11982.pdf) + +### Vocoders +- MelGAN: [paper](https://arxiv.org/abs/1910.06711) +- MultiBandMelGAN: [paper](https://arxiv.org/abs/2005.05106) +- ParallelWaveGAN: [paper](https://arxiv.org/abs/1910.11480) +- GAN-TTS discriminators: [paper](https://arxiv.org/abs/1909.11646) +- WaveRNN: [origin](https://github.com/fatchord/WaveRNN/) +- WaveGrad: [paper](https://arxiv.org/abs/2009.00713) +- HiFiGAN: [paper](https://arxiv.org/abs/2010.05646) +- UnivNet: [paper](https://arxiv.org/abs/2106.07889) + +You can also help us implement more models. + +## Install TTS +๐ŸธTTS is tested on Ubuntu 18.04 with **python >= 3.7, < 3.11.**. + +If you are only interested in [synthesizing speech](https://tts.readthedocs.io/en/latest/inference.html) with the released ๐ŸธTTS models, installing from PyPI is the easiest option. + +```bash +pip install TTS +``` + +If you plan to code or train models, clone ๐ŸธTTS and install it locally. + +```bash +git clone https://github.com/coqui-ai/TTS +pip install -e .[all,dev,notebooks] # Select the relevant extras +``` + +If you are on Ubuntu (Debian), you can also run following commands for installation. + +```bash +$ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a diffent OS. +$ make install +``` + +If you are on Windows, ๐Ÿ‘‘@GuyPaddock wrote installation instructions [here](https://stackoverflow.com/questions/66726331/how-can-i-run-mozilla-tts-coqui-tts-training-with-cuda-on-a-windows-system). + +## Use TTS + +### Single Speaker Models + +- List provided models: + + ``` + $ tts --list_models + ``` + +- Run TTS with default models: + + ``` + $ tts --text "Text for TTS" + ``` + +- Run a TTS model with its default vocoder model: + + ``` + $ tts --text "Text for TTS" --model_name "// + ``` + +- Run with specific TTS and vocoder models from the list: + + ``` + $ tts --text "Text for TTS" --model_name "//" --vocoder_name "//" --output_path + ``` + +- Run your own TTS model (Using Griffin-Lim Vocoder): + + ``` + $ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav + ``` + +- Run your own TTS and Vocoder models: + ``` + $ tts --text "Text for TTS" --model_path path/to/config.json --config_path path/to/model.pth --out_path output/path/speech.wav + --vocoder_path path/to/vocoder.pth --vocoder_config_path path/to/vocoder_config.json + ``` + +### Multi-speaker Models + +- List the available speakers and choose as among them: + + ``` + $ tts --model_name "//" --list_speaker_idxs + ``` + +- Run the multi-speaker TTS model with the target speaker ID: + + ``` + $ tts --text "Text for TTS." --out_path output/path/speech.wav --model_name "//" --speaker_idx + ``` + +- Run your own multi-speaker TTS model: + + ``` + $ tts --text "Text for TTS" --out_path output/path/speech.wav --model_path path/to/config.json --config_path path/to/model.pth --speakers_file_path path/to/speaker.json --speaker_idx + ``` + +## Directory Structure +``` +|- notebooks/ (Jupyter Notebooks for model evaluation, parameter selection and data analysis.) +|- utils/ (common utilities.) +|- TTS + |- bin/ (folder for all the executables.) + |- train*.py (train your target model.) + |- distribute.py (train your TTS model using Multiple GPUs.) + |- compute_statistics.py (compute dataset statistics for normalization.) + |- ... + |- tts/ (text to speech models) + |- layers/ (model layer definitions) + |- models/ (model definitions) + |- utils/ (model specific utilities.) + |- speaker_encoder/ (Speaker Encoder models.) + |- (same) + |- vocoder/ (Vocoder models.) + |- (same) +``` diff --git a/Indic-TTS/TTS/TTS.egg-info/SOURCES.txt b/Indic-TTS/TTS/TTS.egg-info/SOURCES.txt new file mode 100644 index 0000000000000000000000000000000000000000..5aecb965e2a59893c320230cb8ca5b0978a36a97 --- /dev/null +++ b/Indic-TTS/TTS/TTS.egg-info/SOURCES.txt @@ -0,0 +1,225 @@ +CITATION.cff +LICENSE.txt +MANIFEST.in +README.md +pyproject.toml +requirements.dev.txt +requirements.notebooks.txt +requirements.txt +setup.cfg +setup.py +TTS/.models.json +TTS/VERSION +TTS/__init__.py +TTS/model.py +TTS.egg-info/PKG-INFO +TTS.egg-info/SOURCES.txt +TTS.egg-info/dependency_links.txt +TTS.egg-info/entry_points.txt +TTS.egg-info/not-zip-safe +TTS.egg-info/requires.txt +TTS.egg-info/top_level.txt +TTS/bin/__init__.py +TTS/bin/collect_env_info.py +TTS/bin/compute_attention_masks.py +TTS/bin/compute_embeddings.py +TTS/bin/compute_statistics.py +TTS/bin/eval_encoder.py +TTS/bin/extract_tts_spectrograms.py +TTS/bin/find_unique_chars.py +TTS/bin/find_unique_phonemes.py +TTS/bin/remove_silence_using_vad.py +TTS/bin/resample.py +TTS/bin/synthesize.py +TTS/bin/train_encoder.py +TTS/bin/train_tts.py +TTS/bin/train_vocoder.py +TTS/bin/tune_wavegrad.py +TTS/config/__init__.py +TTS/config/shared_configs.py +TTS/encoder/README.md +TTS/encoder/__init__.py +TTS/encoder/dataset.py +TTS/encoder/losses.py +TTS/encoder/configs/base_encoder_config.py +TTS/encoder/configs/emotion_encoder_config.py +TTS/encoder/configs/speaker_encoder_config.py +TTS/encoder/models/base_encoder.py +TTS/encoder/models/lstm.py +TTS/encoder/models/resnet.py +TTS/encoder/utils/__init__.py +TTS/encoder/utils/generic_utils.py +TTS/encoder/utils/io.py +TTS/encoder/utils/prepare_voxceleb.py +TTS/encoder/utils/samplers.py +TTS/encoder/utils/training.py +TTS/encoder/utils/visual.py +TTS/server/README.md +TTS/server/__init__.py +TTS/server/conf.json +TTS/server/server.py +TTS/server/static/coqui-log-green-TTS.png +TTS/server/templates/details.html +TTS/server/templates/index.html +TTS/tts/__init__.py +TTS/tts/configs/__init__.py +TTS/tts/configs/align_tts_config.py +TTS/tts/configs/fast_pitch_config.py +TTS/tts/configs/fast_speech_config.py +TTS/tts/configs/glow_tts_config.py +TTS/tts/configs/shared_configs.py +TTS/tts/configs/speedy_speech_config.py +TTS/tts/configs/tacotron2_config.py +TTS/tts/configs/tacotron_config.py +TTS/tts/configs/vits_config.py +TTS/tts/datasets/__init__.py +TTS/tts/datasets/dataset.py +TTS/tts/datasets/formatters.py +TTS/tts/layers/__init__.py +TTS/tts/layers/losses.py +TTS/tts/layers/align_tts/__init__.py +TTS/tts/layers/align_tts/duration_predictor.py +TTS/tts/layers/align_tts/mdn.py +TTS/tts/layers/feed_forward/__init__.py +TTS/tts/layers/feed_forward/decoder.py +TTS/tts/layers/feed_forward/duration_predictor.py +TTS/tts/layers/feed_forward/encoder.py +TTS/tts/layers/generic/__init__.py +TTS/tts/layers/generic/aligner.py +TTS/tts/layers/generic/gated_conv.py +TTS/tts/layers/generic/normalization.py +TTS/tts/layers/generic/pos_encoding.py +TTS/tts/layers/generic/res_conv_bn.py +TTS/tts/layers/generic/time_depth_sep_conv.py +TTS/tts/layers/generic/transformer.py +TTS/tts/layers/generic/wavenet.py +TTS/tts/layers/glow_tts/__init__.py +TTS/tts/layers/glow_tts/decoder.py +TTS/tts/layers/glow_tts/duration_predictor.py +TTS/tts/layers/glow_tts/encoder.py +TTS/tts/layers/glow_tts/glow.py +TTS/tts/layers/glow_tts/transformer.py +TTS/tts/layers/tacotron/__init__.py +TTS/tts/layers/tacotron/attentions.py +TTS/tts/layers/tacotron/capacitron_layers.py +TTS/tts/layers/tacotron/common_layers.py +TTS/tts/layers/tacotron/gst_layers.py +TTS/tts/layers/tacotron/tacotron.py +TTS/tts/layers/tacotron/tacotron2.py +TTS/tts/layers/vits/discriminator.py +TTS/tts/layers/vits/networks.py +TTS/tts/layers/vits/stochastic_duration_predictor.py +TTS/tts/layers/vits/transforms.py +TTS/tts/models/__init__.py +TTS/tts/models/align_tts.py +TTS/tts/models/base_tacotron.py +TTS/tts/models/base_tts.py +TTS/tts/models/forward_tts.py +TTS/tts/models/glow_tts.py +TTS/tts/models/tacotron.py +TTS/tts/models/tacotron2.py +TTS/tts/models/vits.py +TTS/tts/utils/__init__.py +TTS/tts/utils/data.py +TTS/tts/utils/helpers.py +TTS/tts/utils/languages.py +TTS/tts/utils/managers.py +TTS/tts/utils/measures.py +TTS/tts/utils/speakers.py +TTS/tts/utils/ssim.py +TTS/tts/utils/synthesis.py +TTS/tts/utils/visual.py +TTS/tts/utils/monotonic_align/__init__.py +TTS/tts/utils/monotonic_align/core.c +TTS/tts/utils/monotonic_align/core.pyx +TTS/tts/utils/monotonic_align/setup.py +TTS/tts/utils/text/__init__.py +TTS/tts/utils/text/characters.py +TTS/tts/utils/text/cleaners.py +TTS/tts/utils/text/cmudict.py +TTS/tts/utils/text/punctuation.py +TTS/tts/utils/text/tokenizer.py +TTS/tts/utils/text/chinese_mandarin/__init__.py +TTS/tts/utils/text/chinese_mandarin/numbers.py +TTS/tts/utils/text/chinese_mandarin/phonemizer.py +TTS/tts/utils/text/chinese_mandarin/pinyinToPhonemes.py +TTS/tts/utils/text/english/__init__.py +TTS/tts/utils/text/english/abbreviations.py +TTS/tts/utils/text/english/number_norm.py +TTS/tts/utils/text/english/time_norm.py +TTS/tts/utils/text/french/__init__.py +TTS/tts/utils/text/french/abbreviations.py +TTS/tts/utils/text/japanese/__init__.py +TTS/tts/utils/text/japanese/phonemizer.py +TTS/tts/utils/text/phonemizers/__init__.py +TTS/tts/utils/text/phonemizers/base.py +TTS/tts/utils/text/phonemizers/espeak_wrapper.py +TTS/tts/utils/text/phonemizers/gruut_wrapper.py +TTS/tts/utils/text/phonemizers/ja_jp_phonemizer.py +TTS/tts/utils/text/phonemizers/multi_phonemizer.py +TTS/tts/utils/text/phonemizers/zh_cn_phonemizer.py +TTS/utils/__init__.py +TTS/utils/audio.py +TTS/utils/callbacks.py +TTS/utils/capacitron_optimizer.py +TTS/utils/distribute.py +TTS/utils/download.py +TTS/utils/downloaders.py +TTS/utils/generic_utils.py +TTS/utils/io.py +TTS/utils/manage.py +TTS/utils/radam.py +TTS/utils/synthesizer.py +TTS/utils/training.py +TTS/utils/vad.py +TTS/vocoder/README.md +TTS/vocoder/__init__.py +TTS/vocoder/configs/__init__.py +TTS/vocoder/configs/fullband_melgan_config.py +TTS/vocoder/configs/hifigan_config.py +TTS/vocoder/configs/melgan_config.py +TTS/vocoder/configs/multiband_melgan_config.py +TTS/vocoder/configs/parallel_wavegan_config.py +TTS/vocoder/configs/shared_configs.py +TTS/vocoder/configs/univnet_config.py +TTS/vocoder/configs/wavegrad_config.py +TTS/vocoder/configs/wavernn_config.py +TTS/vocoder/datasets/__init__.py +TTS/vocoder/datasets/gan_dataset.py +TTS/vocoder/datasets/preprocess.py +TTS/vocoder/datasets/wavegrad_dataset.py +TTS/vocoder/datasets/wavernn_dataset.py +TTS/vocoder/layers/__init__.py +TTS/vocoder/layers/hifigan.py +TTS/vocoder/layers/losses.py +TTS/vocoder/layers/lvc_block.py +TTS/vocoder/layers/melgan.py +TTS/vocoder/layers/parallel_wavegan.py +TTS/vocoder/layers/pqmf.py +TTS/vocoder/layers/upsample.py +TTS/vocoder/layers/wavegrad.py +TTS/vocoder/models/__init__.py +TTS/vocoder/models/base_vocoder.py +TTS/vocoder/models/fullband_melgan_generator.py +TTS/vocoder/models/gan.py +TTS/vocoder/models/hifigan_discriminator.py +TTS/vocoder/models/hifigan_generator.py +TTS/vocoder/models/melgan_discriminator.py +TTS/vocoder/models/melgan_generator.py +TTS/vocoder/models/melgan_multiscale_discriminator.py +TTS/vocoder/models/multiband_melgan_generator.py +TTS/vocoder/models/parallel_wavegan_discriminator.py +TTS/vocoder/models/parallel_wavegan_generator.py +TTS/vocoder/models/random_window_discriminator.py +TTS/vocoder/models/univnet_discriminator.py +TTS/vocoder/models/univnet_generator.py +TTS/vocoder/models/wavegrad.py +TTS/vocoder/models/wavernn.py +TTS/vocoder/utils/__init__.py +TTS/vocoder/utils/distribution.py +TTS/vocoder/utils/generic_utils.py +images/TTS-performance.png +images/coqui-log-green-TTS.png +images/example_model_output.png +images/model.png +images/tts_performance.png \ No newline at end of file diff --git a/Indic-TTS/TTS/TTS.egg-info/dependency_links.txt b/Indic-TTS/TTS/TTS.egg-info/dependency_links.txt new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/Indic-TTS/TTS/TTS.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/Indic-TTS/TTS/TTS.egg-info/entry_points.txt b/Indic-TTS/TTS/TTS.egg-info/entry_points.txt new file mode 100644 index 0000000000000000000000000000000000000000..4f63b379fa3412ee0c84ea8f7d4626c8ce41c578 --- /dev/null +++ b/Indic-TTS/TTS/TTS.egg-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +tts = TTS.bin.synthesize:main +tts-server = TTS.server.server:main diff --git a/Indic-TTS/TTS/TTS.egg-info/not-zip-safe b/Indic-TTS/TTS/TTS.egg-info/not-zip-safe new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/Indic-TTS/TTS/TTS.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/Indic-TTS/TTS/TTS.egg-info/requires.txt b/Indic-TTS/TTS/TTS.egg-info/requires.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2c0d55f36ae1b0e3e6b054c631bf1d6be1c01bc --- /dev/null +++ b/Indic-TTS/TTS/TTS.egg-info/requires.txt @@ -0,0 +1,44 @@ +numpy==1.21.6 +cython==0.29.28 +scipy>=1.4.0 +torch>=1.7 +torchaudio +soundfile +librosa==0.8.0 +numba==0.55.1 +inflect +tqdm +anyascii +pyyaml +fsspec>=2021.04.0 +flask +pysbd +umap-learn==0.5.1 +pandas +matplotlib +pyworld==0.2.10 +trainer +coqpit>=0.0.16 +jieba +pypinyin +mecab-python3==1.0.5 +unidic-lite==1.0.8 +gruut[cs,de,es,fr,it,nl,pt,ru,sv]==2.2.3 + +[all] +black +coverage +isort +nose2 +pylint==2.10.2 +bokeh==1.4.0 + +[dev] +black +coverage +isort +nose2 +pylint==2.10.2 + +[notebooks] +bokeh==1.4.0 diff --git a/Indic-TTS/TTS/TTS.egg-info/top_level.txt b/Indic-TTS/TTS/TTS.egg-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..bfd4064b58bad96458682290f541a01787db86a5 --- /dev/null +++ b/Indic-TTS/TTS/TTS.egg-info/top_level.txt @@ -0,0 +1 @@ +TTS diff --git a/Indic-TTS/TTS/TTS/.models.json b/Indic-TTS/TTS/TTS/.models.json new file mode 100644 index 0000000000000000000000000000000000000000..93d9f417be9313976151dc8ff7c4ee67e41418f7 --- /dev/null +++ b/Indic-TTS/TTS/TTS/.models.json @@ -0,0 +1,500 @@ +{ + "tts_models": { + "multilingual":{ + "multi-dataset":{ + "your_tts":{ + "description": "Your TTS model accompanying the paper https://arxiv.org/abs/2112.02418", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--multilingual--multi-dataset--your_tts.zip", + "default_vocoder": null, + "commit": "e9a1953e", + "license": "CC BY-NC-ND 4.0", + "contact": "egolge@coqui.ai" + } + } + }, + "en": { + "ek1": { + "tacotron2": { + "description": "EK1 en-rp tacotron2 by NMStoker", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--ek1--tacotron2.zip", + "default_vocoder": "vocoder_models/en/ek1/wavegrad", + "commit": "c802255", + "license": "apache 2.0" + } + }, + "ljspeech": { + "tacotron2-DDC": { + "description": "Tacotron2 with Double Decoder Consistency.", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--ljspeech--tacotron2-DDC.zip", + "default_vocoder": "vocoder_models/en/ljspeech/hifigan_v2", + "commit": "bae2ad0f", + "author": "Eren Gรถlge @erogol", + "license": "apache 2.0", + "contact": "egolge@coqui.com" + }, + "tacotron2-DDC_ph": { + "description": "Tacotron2 with Double Decoder Consistency with phonemes.", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--ljspeech--tacotron2-DDC_ph.zip", + "default_vocoder": "vocoder_models/en/ljspeech/univnet", + "commit": "3900448", + "author": "Eren Gรถlge @erogol", + "license": "apache 2.0", + "contact": "egolge@coqui.com" + }, + "glow-tts": { + "description": "", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--ljspeech--glow-tts.zip", + "stats_file": null, + "default_vocoder": "vocoder_models/en/ljspeech/multiband-melgan", + "commit": "", + "author": "Eren Gรถlge @erogol", + "license": "MPL", + "contact": "egolge@coqui.com" + }, + "speedy-speech": { + "description": "Speedy Speech model trained on LJSpeech dataset using the Alignment Network for learning the durations.", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--ljspeech--speedy-speech.zip", + "stats_file": null, + "default_vocoder": "vocoder_models/en/ljspeech/hifigan_v2", + "commit": "4581e3d", + "author": "Eren Gรถlge @erogol", + "license": "apache 2.0", + "contact": "egolge@coqui.com" + }, + "tacotron2-DCA": { + "description": "", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--ljspeech--tacotron2-DCA.zip", + "default_vocoder": "vocoder_models/en/ljspeech/multiband-melgan", + "commit": "", + "author": "Eren Gรถlge @erogol", + "license": "MPL", + "contact": "egolge@coqui.com" + }, + "vits": { + "description": "VITS is an End2End TTS model trained on LJSpeech dataset with phonemes.", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--ljspeech--vits.zip", + "default_vocoder": null, + "commit": "3900448", + "author": "Eren Gรถlge @erogol", + "license": "apache 2.0", + "contact": "egolge@coqui.com" + }, + "fast_pitch": { + "description": "FastPitch model trained on LJSpeech using the Aligner Network", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--ljspeech--fast_pitch.zip", + "default_vocoder": "vocoder_models/en/ljspeech/hifigan_v2", + "commit": "b27b3ba", + "author": "Eren Gรถlge @erogol", + "license": "apache 2.0", + "contact": "egolge@coqui.com" + } + }, + "vctk": { + "vits": { + "description": "VITS End2End TTS model trained on VCTK dataset with 109 different speakers with EN accent.", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--vctk--vits.zip", + "default_vocoder": null, + "commit": "3900448", + "author": "Eren @erogol", + "license": "apache 2.0", + "contact": "egolge@coqui.ai" + }, + "fast_pitch":{ + "description": "FastPitch model trained on VCTK dataseset.", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--vctk--fast_pitch.zip", + "default_vocoder": null, + "commit": "bdab788d", + "author": "Eren @erogol", + "license": "CC BY-NC-ND 4.0", + "contact": "egolge@coqui.ai" + } + }, + "sam": { + "tacotron-DDC": { + "description": "Tacotron2 with Double Decoder Consistency trained with Aceenture's Sam dataset.", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--en--sam--tacotron-DDC.zip", + "default_vocoder": "vocoder_models/en/sam/hifigan_v2", + "commit": "bae2ad0f", + "author": "Eren Gรถlge @erogol", + "license": "apache 2.0", + "contact": "egolge@coqui.com" + } + }, + "blizzard2013": { + "capacitron-t2-c50": { + "description": "Capacitron additions to Tacotron 2 with Capacity at 50 as in https://arxiv.org/pdf/1906.03402.pdf", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.7.0_models/tts_models--en--blizzard2013--capacitron-t2-c50.zip", + "commit": "d6284e7", + "default_vocoder": "vocoder_models/en/blizzard2013/hifigan_v2", + "author": "Adam Froghyar @a-froghyar", + "license": "apache 2.0", + "contact": "adamfroghyar@gmail.com" + }, + "capacitron-t2-c150": { + "description": "Capacitron additions to Tacotron 2 with Capacity at 150 as in https://arxiv.org/pdf/1906.03402.pdf", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.7.0_models/tts_models--en--blizzard2013--capacitron-t2-c150.zip", + "commit": "d6284e7", + "default_vocoder": "vocoder_models/en/blizzard2013/hifigan_v2", + "author": "Adam Froghyar @a-froghyar", + "license": "apache 2.0", + "contact": "adamfroghyar@gmail.com" + } + } + }, + "es": { + "mai": { + "tacotron2-DDC": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--es--mai--tacotron2-DDC.zip", + "default_vocoder": "vocoder_models/universal/libri-tts/fullband-melgan", + "commit": "", + "author": "Eren Gรถlge @erogol", + "license": "MPL", + "contact": "egolge@coqui.com" + } + } + }, + "fr": { + "mai": { + "tacotron2-DDC": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--fr--mai--tacotron2-DDC.zip", + "default_vocoder": "vocoder_models/universal/libri-tts/fullband-melgan", + "commit": "", + "author": "Eren Gรถlge @erogol", + "license": "MPL", + "contact": "egolge@coqui.com" + } + } + }, + "uk":{ + "mai": { + "glow-tts": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--uk--mai--glow-tts.zip", + "author":"@robinhad", + "commit": "bdab788d", + "license": "MIT", + "contact": "", + "default_vocoder": "vocoder_models/uk/mai/multiband-melgan" + } + } + }, + "zh-CN": { + "baker": { + "tacotron2-DDC-GST": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--zh-CN--baker--tacotron2-DDC-GST.zip", + "commit": "unknown", + "author": "@kirianguiller", + "license": "apache 2.0", + "default_vocoder": null + } + } + }, + "nl": { + "mai": { + "tacotron2-DDC": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--nl--mai--tacotron2-DDC.zip", + "author": "@r-dh", + "license": "apache 2.0", + "default_vocoder": "vocoder_models/nl/mai/parallel-wavegan", + "stats_file": null, + "commit": "540d811" + } + } + }, + "de": { + "thorsten": { + "tacotron2-DCA": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--de--thorsten--tacotron2-DCA.zip", + "default_vocoder": "vocoder_models/de/thorsten/fullband-melgan", + "author": "@thorstenMueller", + "license": "apache 2.0", + "commit": "unknown" + }, + "vits": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.7.0_models/tts_models--de--thorsten--vits.zip", + "default_vocoder": null, + "author": "@thorstenMueller", + "license": "apache 2.0", + "commit": "unknown" + } + } + }, + "ja": { + "kokoro": { + "tacotron2-DDC": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--ja--kokoro--tacotron2-DDC.zip", + "default_vocoder": "vocoder_models/ja/kokoro/hifigan_v1", + "description": "Tacotron2 with Double Decoder Consistency trained with Kokoro Speech Dataset.", + "author": "@kaiidams", + "license": "apache 2.0", + "commit": "401fbd89" + } + } + }, + "tr":{ + "common-voice": { + "glow-tts":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--tr--common-voice--glow-tts.zip", + "default_vocoder": "vocoder_models/tr/common-voice/hifigan", + "license": "MIT", + "description": "Turkish GlowTTS model using an unknown speaker from the Common-Voice dataset.", + "author": "Fatih Akademi", + "commit": null + } + } + }, + "it": { + "mai_female": { + "glow-tts":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--it--mai_female--glow-tts.zip", + "default_vocoder": null, + "description": "GlowTTS model as explained on https://github.com/coqui-ai/TTS/issues/1148.", + "author": "@nicolalandro", + "license": "apache 2.0", + "commit": null + }, + "vits":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--it--mai_female--vits.zip", + "default_vocoder": null, + "description": "GlowTTS model as explained on https://github.com/coqui-ai/TTS/issues/1148.", + "author": "@nicolalandro", + "license": "apache 2.0", + "commit": null + } + }, + "mai_male": { + "glow-tts":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--it--mai_male--glow-tts.zip", + "default_vocoder": null, + "description": "GlowTTS model as explained on https://github.com/coqui-ai/TTS/issues/1148.", + "author": "@nicolalandro", + "license": "apache 2.0", + "commit": null + }, + "vits":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/tts_models--it--mai_male--vits.zip", + "default_vocoder": null, + "description": "GlowTTS model as explained on https://github.com/coqui-ai/TTS/issues/1148.", + "author": "@nicolalandro", + "license": "apache 2.0", + "commit": null + } + } + }, + "ewe": { + "openbible": { + "vits":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.2_models/tts_models--ewe--openbible--vits.zip", + "default_vocoder": null, + "license": "CC-BY-SA 4.0", + "description": "Original work (audio and text) by Biblica available for free at www.biblica.com and open.bible.", + "author": "@coqui_ai", + "commit": "1b22f03" + } + } + }, + "hau": { + "openbible": { + "vits":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.2_models/tts_models--hau--openbible--vits.zip", + "default_vocoder": null, + "license": "CC-BY-SA 4.0", + "description": "Original work (audio and text) by Biblica available for free at www.biblica.com and open.bible.", + "author": "@coqui_ai", + "commit": "1b22f03" + } + } + }, + "lin": { + "openbible": { + "vits":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.2_models/tts_models--lin--openbible--vits.zip", + "default_vocoder": null, + "license": "CC-BY-SA 4.0", + "description": "Original work (audio and text) by Biblica available for free at www.biblica.com and open.bible.", + "author": "@coqui_ai", + "commit": "1b22f03" + } + } + }, + "tw_akuapem": { + "openbible": { + "vits":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.2_models/tts_models--tw_akuapem--openbible--vits.zip", + "default_vocoder": null, + "license": "CC-BY-SA 4.0", + "description": "Original work (audio and text) by Biblica available for free at www.biblica.com and open.bible.", + "author": "@coqui_ai", + "commit": "1b22f03" + } + } + }, + "tw_asante": { + "openbible": { + "vits":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.2_models/tts_models--tw_asante--openbible--vits.zip", + "default_vocoder": null, + "license": "CC-BY-SA 4.0", + "description": "Original work (audio and text) by Biblica available for free at www.biblica.com and open.bible.", + "author": "@coqui_ai", + "commit": "1b22f03" + } + } + }, + "yor": { + "openbible": { + "vits":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.2_models/tts_models--yor--openbible--vits.zip", + "default_vocoder": null, + "license": "CC-BY-SA 4.0", + "description": "Original work (audio and text) by Biblica available for free at www.biblica.com and open.bible.", + "author": "@coqui_ai", + "commit": "1b22f03" + } + } + } + }, + "vocoder_models": { + "universal": { + "libri-tts": { + "wavegrad": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--universal--libri-tts--wavegrad.zip", + "commit": "ea976b0", + "author": "Eren Gรถlge @erogol", + "license": "MPL", + "contact": "egolge@coqui.com" + }, + "fullband-melgan": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--universal--libri-tts--fullband-melgan.zip", + "commit": "4132240", + "author": "Eren Gรถlge @erogol", + "license": "MPL", + "contact": "egolge@coqui.com" + } + } + }, + "en": { + "ek1": { + "wavegrad": { + "description": "EK1 en-rp wavegrad by NMStoker", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--en--ek1--wavegrad.zip", + "commit": "c802255", + "license": "apache 2.0" + } + }, + "ljspeech": { + "multiband-melgan": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--en--ljspeech--multiband-melgan.zip", + "commit": "ea976b0", + "author": "Eren Gรถlge @erogol", + "license": "MPL", + "contact": "egolge@coqui.com" + }, + "hifigan_v2": { + "description": "HiFiGAN_v2 LJSpeech vocoder from https://arxiv.org/abs/2010.05646.", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--en--ljspeech--hifigan_v2.zip", + "commit": "bae2ad0f", + "author": "@erogol", + "license": "apache 2.0", + "contact": "egolge@coqui.ai" + }, + "univnet": { + "description": "UnivNet model finetuned on TacotronDDC_ph spectrograms for better compatibility.", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--en--ljspeech--univnet_v2.zip", + "commit": "4581e3d", + "author": "Eren @erogol", + "license": "apache 2.0", + "contact": "egolge@coqui.ai" + } + }, + "blizzard2013": { + "hifigan_v2": { + "description": "HiFiGAN_v2 LJSpeech vocoder from https://arxiv.org/abs/2010.05646.", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.7.0_models/vocoder_models--en--blizzard2013--hifigan_v2.zip", + "commit": "d6284e7", + "author": "Adam Froghyar @a-froghyar", + "license": "apache 2.0", + "contact": "adamfroghyar@gmail.com" + } + }, + "vctk": { + "hifigan_v2": { + "description": "Finetuned and intended to be used with tts_models/en/vctk/sc-glow-tts", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--en--vctk--hifigan_v2.zip", + "commit": "2f07160", + "author": "Edresson Casanova", + "license": "apache 2.0", + "contact": "" + } + }, + "sam": { + "hifigan_v2": { + "description": "Finetuned and intended to be used with tts_models/en/sam/tacotron_DDC", + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--en--sam--hifigan_v2.zip", + "commit": "2f07160", + "author": "Eren Gรถlge @erogol", + "license": "apache 2.0", + "contact": "egolge@coqui.ai" + } + } + }, + "nl": { + "mai": { + "parallel-wavegan": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--nl--mai--parallel-wavegan.zip", + "author": "@r-dh", + "license": "apache 2.0", + "commit": "unknown" + } + } + }, + "de": { + "thorsten": { + "wavegrad": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--de--thorsten--wavegrad.zip", + "author": "@thorstenMueller", + "license": "apache 2.0", + "commit": "unknown" + }, + "fullband-melgan": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--de--thorsten--fullband-melgan.zip", + "author": "@thorstenMueller", + "license": "apache 2.0", + "commit": "unknown" + } + } + }, + "ja": { + "kokoro": { + "hifigan_v1": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--ja--kokoro--hifigan_v1.zip", + "description": "HifiGAN model trained for kokoro dataset by @kaiidams", + "author": "@kaiidams", + "license": "apache 2.0", + "commit": "3900448" + } + } + }, + "uk": { + "mai": { + "multiband-melgan": { + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--uk--mai--multiband-melgan.zip", + "author":"@robinhad", + "commit": "bdab788d", + "license": "MIT", + "contact": "" + } + } + }, + "tr":{ + "common-voice": { + "hifigan":{ + "github_rls_url": "https://coqui.gateway.scarf.sh/v0.6.1_models/vocoder_models--tr--common-voice--hifigan.zip", + "description": "HifiGAN model using an unknown speaker from the Common-Voice dataset.", + "author": "Fatih Akademi", + "license": "MIT", + "commit": null + } + } + } + } +} \ No newline at end of file diff --git a/Indic-TTS/TTS/TTS/VERSION b/Indic-TTS/TTS/TTS/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..7deb86fee42803fdce673cb574b8186909c17806 --- /dev/null +++ b/Indic-TTS/TTS/TTS/VERSION @@ -0,0 +1 @@ +0.7.1 \ No newline at end of file diff --git a/Indic-TTS/TTS/TTS/__init__.py b/Indic-TTS/TTS/TTS/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..eaf05db1b950d82bfd7e20857e09a0fef45b430a --- /dev/null +++ b/Indic-TTS/TTS/TTS/__init__.py @@ -0,0 +1,6 @@ +import os + +with open(os.path.join(os.path.dirname(__file__), "VERSION"), "r", encoding="utf-8") as f: + version = f.read().strip() + +__version__ = version diff --git a/Indic-TTS/TTS/TTS/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5af33ab5b80f2e4372a866e4381ef6df213df58d Binary files /dev/null and b/Indic-TTS/TTS/TTS/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/__pycache__/model.cpython-37.pyc b/Indic-TTS/TTS/TTS/__pycache__/model.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8e7117710ab0ac075decb709fd28f77998f3d93b Binary files /dev/null and b/Indic-TTS/TTS/TTS/__pycache__/model.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/bin/__init__.py b/Indic-TTS/TTS/TTS/bin/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/bin/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/bin/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..65b9104e6c8d1578b8c270a3b39915a59c2aac27 Binary files /dev/null and b/Indic-TTS/TTS/TTS/bin/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/bin/__pycache__/synthesize.cpython-37.pyc b/Indic-TTS/TTS/TTS/bin/__pycache__/synthesize.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9f9e78224d84fa0b80afffd36aba1bb9d56a7e8e Binary files /dev/null and b/Indic-TTS/TTS/TTS/bin/__pycache__/synthesize.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/bin/collect_env_info.py b/Indic-TTS/TTS/TTS/bin/collect_env_info.py new file mode 100644 index 0000000000000000000000000000000000000000..662fcd02ece0fad387b6bfc4bad9316c7e2a0bad --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/collect_env_info.py @@ -0,0 +1,48 @@ +"""Get detailed info about the working environment.""" +import os +import platform +import sys + +import numpy +import torch + +sys.path += [os.path.abspath(".."), os.path.abspath(".")] +import json + +import TTS + + +def system_info(): + return { + "OS": platform.system(), + "architecture": platform.architecture(), + "version": platform.version(), + "processor": platform.processor(), + "python": platform.python_version(), + } + + +def cuda_info(): + return { + "GPU": [torch.cuda.get_device_name(i) for i in range(torch.cuda.device_count())], + "available": torch.cuda.is_available(), + "version": torch.version.cuda, + } + + +def package_info(): + return { + "numpy": numpy.__version__, + "PyTorch_version": torch.__version__, + "PyTorch_debug": torch.version.debug, + "TTS": TTS.__version__, + } + + +def main(): + details = {"System": system_info(), "CUDA": cuda_info(), "Packages": package_info()} + print(json.dumps(details, indent=4, sort_keys=True)) + + +if __name__ == "__main__": + main() diff --git a/Indic-TTS/TTS/TTS/bin/compute_attention_masks.py b/Indic-TTS/TTS/TTS/bin/compute_attention_masks.py new file mode 100644 index 0000000000000000000000000000000000000000..9ab520be7d9f41ecf4f124446400b5e1b597ae8b --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/compute_attention_masks.py @@ -0,0 +1,165 @@ +import argparse +import importlib +import os +from argparse import RawTextHelpFormatter + +import numpy as np +import torch +from torch.utils.data import DataLoader +from tqdm import tqdm + +from TTS.config import load_config +from TTS.tts.datasets.TTSDataset import TTSDataset +from TTS.tts.models import setup_model +from TTS.tts.utils.text.characters import make_symbols, phonemes, symbols +from TTS.utils.audio import AudioProcessor +from TTS.utils.io import load_checkpoint + +if __name__ == "__main__": + # pylint: disable=bad-option-value + parser = argparse.ArgumentParser( + description="""Extract attention masks from trained Tacotron/Tacotron2 models. +These masks can be used for different purposes including training a TTS model with a Duration Predictor.\n\n""" + """Each attention mask is written to the same path as the input wav file with ".npy" file extension. +(e.g. path/bla.wav (wav file) --> path/bla.npy (attention mask))\n""" + """ +Example run: + CUDA_VISIBLE_DEVICE="0" python TTS/bin/compute_attention_masks.py + --model_path /data/rw/home/Models/ljspeech-dcattn-December-14-2020_11+10AM-9d0e8c7/checkpoint_200000.pth + --config_path /data/rw/home/Models/ljspeech-dcattn-December-14-2020_11+10AM-9d0e8c7/config.json + --dataset_metafile metadata.csv + --data_path /root/LJSpeech-1.1/ + --batch_size 32 + --dataset ljspeech + --use_cuda True +""", + formatter_class=RawTextHelpFormatter, + ) + parser.add_argument("--model_path", type=str, required=True, help="Path to Tacotron/Tacotron2 model file ") + parser.add_argument( + "--config_path", + type=str, + required=True, + help="Path to Tacotron/Tacotron2 config file.", + ) + parser.add_argument( + "--dataset", + type=str, + default="", + required=True, + help="Target dataset processor name from TTS.tts.dataset.preprocess.", + ) + + parser.add_argument( + "--dataset_metafile", + type=str, + default="", + required=True, + help="Dataset metafile inclusing file paths with transcripts.", + ) + parser.add_argument("--data_path", type=str, default="", help="Defines the data path. It overwrites config.json.") + parser.add_argument("--use_cuda", type=bool, default=False, help="enable/disable cuda.") + + parser.add_argument( + "--batch_size", default=16, type=int, help="Batch size for the model. Use batch_size=1 if you have no CUDA." + ) + args = parser.parse_args() + + C = load_config(args.config_path) + ap = AudioProcessor(**C.audio) + + # if the vocabulary was passed, replace the default + if "characters" in C.keys(): + symbols, phonemes = make_symbols(**C.characters) + + # load the model + num_chars = len(phonemes) if C.use_phonemes else len(symbols) + # TODO: handle multi-speaker + model = setup_model(C) + model, _ = load_checkpoint(model, args.model_path, args.use_cuda, True) + + # data loader + preprocessor = importlib.import_module("TTS.tts.datasets.formatters") + preprocessor = getattr(preprocessor, args.dataset) + meta_data = preprocessor(args.data_path, args.dataset_metafile) + dataset = TTSDataset( + model.decoder.r, + C.text_cleaner, + compute_linear_spec=False, + ap=ap, + meta_data=meta_data, + characters=C.characters if "characters" in C.keys() else None, + add_blank=C["add_blank"] if "add_blank" in C.keys() else False, + use_phonemes=C.use_phonemes, + phoneme_cache_path=C.phoneme_cache_path, + phoneme_language=C.phoneme_language, + enable_eos_bos=C.enable_eos_bos_chars, + ) + + dataset.sort_and_filter_items(C.get("sort_by_audio_len", default=False)) + loader = DataLoader( + dataset, + batch_size=args.batch_size, + num_workers=4, + collate_fn=dataset.collate_fn, + shuffle=False, + drop_last=False, + ) + + # compute attentions + file_paths = [] + with torch.no_grad(): + for data in tqdm(loader): + # setup input data + text_input = data[0] + text_lengths = data[1] + linear_input = data[3] + mel_input = data[4] + mel_lengths = data[5] + stop_targets = data[6] + item_idxs = data[7] + + # dispatch data to GPU + if args.use_cuda: + text_input = text_input.cuda() + text_lengths = text_lengths.cuda() + mel_input = mel_input.cuda() + mel_lengths = mel_lengths.cuda() + + model_outputs = model.forward(text_input, text_lengths, mel_input) + + alignments = model_outputs["alignments"].detach() + for idx, alignment in enumerate(alignments): + item_idx = item_idxs[idx] + # interpolate if r > 1 + alignment = ( + torch.nn.functional.interpolate( + alignment.transpose(0, 1).unsqueeze(0), + size=None, + scale_factor=model.decoder.r, + mode="nearest", + align_corners=None, + recompute_scale_factor=None, + ) + .squeeze(0) + .transpose(0, 1) + ) + # remove paddings + alignment = alignment[: mel_lengths[idx], : text_lengths[idx]].cpu().numpy() + # set file paths + wav_file_name = os.path.basename(item_idx) + align_file_name = os.path.splitext(wav_file_name)[0] + "_attn.npy" + file_path = item_idx.replace(wav_file_name, align_file_name) + # save output + wav_file_abs_path = os.path.abspath(item_idx) + file_abs_path = os.path.abspath(file_path) + file_paths.append([wav_file_abs_path, file_abs_path]) + np.save(file_path, alignment) + + # ourput metafile + metafile = os.path.join(args.data_path, "metadata_attn_mask.txt") + + with open(metafile, "w", encoding="utf-8") as f: + for p in file_paths: + f.write(f"{p[0]}|{p[1]}\n") + print(f" >> Metafile created: {metafile}") diff --git a/Indic-TTS/TTS/TTS/bin/compute_embeddings.py b/Indic-TTS/TTS/TTS/bin/compute_embeddings.py new file mode 100644 index 0000000000000000000000000000000000000000..d7fe3c4bdedf2045ee503b669622695932942145 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/compute_embeddings.py @@ -0,0 +1,84 @@ +import argparse +import os +from argparse import RawTextHelpFormatter + +import torch +from tqdm import tqdm + +from TTS.config import load_config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.utils.managers import save_file +from TTS.tts.utils.speakers import SpeakerManager + +parser = argparse.ArgumentParser( + description="""Compute embedding vectors for each wav file in a dataset.\n\n""" + """ + Example runs: + python TTS/bin/compute_embeddings.py speaker_encoder_model.pth speaker_encoder_config.json dataset_config.json + """, + formatter_class=RawTextHelpFormatter, +) +parser.add_argument("model_path", type=str, help="Path to model checkpoint file.") +parser.add_argument("config_path", type=str, help="Path to model config file.") +parser.add_argument("config_dataset_path", type=str, help="Path to dataset config file.") +parser.add_argument("--output_path", type=str, help="Path for output `pth` or `json` file.", default="speakers.pth") +parser.add_argument("--old_file", type=str, help="Previous embedding file to only compute new audios.", default=None) +parser.add_argument("--disable_cuda", type=bool, help="Flag to disable cuda.", default=False) +parser.add_argument("--no_eval", type=bool, help="Do not compute eval?. Default False", default=False) + +args = parser.parse_args() + +use_cuda = torch.cuda.is_available() and not args.disable_cuda + +c_dataset = load_config(args.config_dataset_path) + +meta_data_train, meta_data_eval = load_tts_samples(c_dataset.datasets, eval_split=not args.no_eval) + +if meta_data_eval is None: + wav_files = meta_data_train +else: + wav_files = meta_data_train + meta_data_eval + +encoder_manager = SpeakerManager( + encoder_model_path=args.model_path, + encoder_config_path=args.config_path, + d_vectors_file_path=args.old_file, + use_cuda=use_cuda, +) + +class_name_key = encoder_manager.encoder_config.class_name_key + +# compute speaker embeddings +speaker_mapping = {} +for idx, wav_file in enumerate(tqdm(wav_files)): + if isinstance(wav_file, dict): + class_name = wav_file[class_name_key] + wav_file = wav_file["audio_file"] + else: + class_name = None + + wav_file_name = os.path.basename(wav_file) + if args.old_file is not None and wav_file_name in encoder_manager.clip_ids: + # get the embedding from the old file + embedd = encoder_manager.get_embedding_by_clip(wav_file_name) + else: + # extract the embedding + embedd = encoder_manager.compute_embedding_from_clip(wav_file) + + # create speaker_mapping if target dataset is defined + speaker_mapping[wav_file_name] = {} + speaker_mapping[wav_file_name]["name"] = class_name + speaker_mapping[wav_file_name]["embedding"] = embedd + +if speaker_mapping: + # save speaker_mapping if target dataset is defined + if os.path.isdir(args.output_path): + mapping_file_path = os.path.join(args.output_path, "speakers.pth") + else: + mapping_file_path = args.output_path + + if os.path.dirname(mapping_file_path) != "": + os.makedirs(os.path.dirname(mapping_file_path), exist_ok=True) + + save_file(speaker_mapping, mapping_file_path) + print("Speaker embeddings saved at:", mapping_file_path) diff --git a/Indic-TTS/TTS/TTS/bin/compute_statistics.py b/Indic-TTS/TTS/TTS/bin/compute_statistics.py new file mode 100644 index 0000000000000000000000000000000000000000..3ab7ea7a3b10ec3cc23d8a744c7bdc79de52dbf2 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/compute_statistics.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import argparse +import glob +import os + +import numpy as np +from tqdm import tqdm + +# from TTS.utils.io import load_config +from TTS.config import load_config +from TTS.tts.datasets import load_tts_samples +from TTS.utils.audio import AudioProcessor + + +def main(): + """Run preprocessing process.""" + parser = argparse.ArgumentParser(description="Compute mean and variance of spectrogtram features.") + parser.add_argument("config_path", type=str, help="TTS config file path to define audio processin parameters.") + parser.add_argument("out_path", type=str, help="save path (directory and filename).") + parser.add_argument( + "--data_path", + type=str, + required=False, + help="folder including the target set of wavs overriding dataset config.", + ) + args, overrides = parser.parse_known_args() + + CONFIG = load_config(args.config_path) + CONFIG.parse_known_args(overrides, relaxed_parser=True) + + # load config + CONFIG.audio.signal_norm = False # do not apply earlier normalization + CONFIG.audio.stats_path = None # discard pre-defined stats + + # load audio processor + ap = AudioProcessor(**CONFIG.audio.to_dict()) + + # load the meta data of target dataset + if args.data_path: + dataset_items = glob.glob(os.path.join(args.data_path, "**", "*.wav"), recursive=True) + else: + dataset_items = load_tts_samples(CONFIG.datasets)[0] # take only train data + print(f" > There are {len(dataset_items)} files.") + + mel_sum = 0 + mel_square_sum = 0 + linear_sum = 0 + linear_square_sum = 0 + N = 0 + for item in tqdm(dataset_items): + # compute features + wav = ap.load_wav(item if isinstance(item, str) else item["audio_file"]) + linear = ap.spectrogram(wav) + mel = ap.melspectrogram(wav) + + # compute stats + N += mel.shape[1] + mel_sum += mel.sum(1) + linear_sum += linear.sum(1) + mel_square_sum += (mel**2).sum(axis=1) + linear_square_sum += (linear**2).sum(axis=1) + + mel_mean = mel_sum / N + mel_scale = np.sqrt(mel_square_sum / N - mel_mean**2) + linear_mean = linear_sum / N + linear_scale = np.sqrt(linear_square_sum / N - linear_mean**2) + + output_file_path = args.out_path + stats = {} + stats["mel_mean"] = mel_mean + stats["mel_std"] = mel_scale + stats["linear_mean"] = linear_mean + stats["linear_std"] = linear_scale + + print(f" > Avg mel spec mean: {mel_mean.mean()}") + print(f" > Avg mel spec scale: {mel_scale.mean()}") + print(f" > Avg linear spec mean: {linear_mean.mean()}") + print(f" > Avg linear spec scale: {linear_scale.mean()}") + + # set default config values for mean-var scaling + CONFIG.audio.stats_path = output_file_path + CONFIG.audio.signal_norm = True + # remove redundant values + del CONFIG.audio.max_norm + del CONFIG.audio.min_level_db + del CONFIG.audio.symmetric_norm + del CONFIG.audio.clip_norm + stats["audio_config"] = CONFIG.audio.to_dict() + np.save(output_file_path, stats, allow_pickle=True) + print(f" > stats saved to {output_file_path}") + + +if __name__ == "__main__": + main() diff --git a/Indic-TTS/TTS/TTS/bin/eval_encoder.py b/Indic-TTS/TTS/TTS/bin/eval_encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..7f9fdf937079d75a673654471871130129c13c0a --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/eval_encoder.py @@ -0,0 +1,89 @@ +import argparse +from argparse import RawTextHelpFormatter + +import torch +from tqdm import tqdm + +from TTS.config import load_config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.utils.speakers import SpeakerManager + + +def compute_encoder_accuracy(dataset_items, encoder_manager): + + class_name_key = encoder_manager.encoder_config.class_name_key + map_classid_to_classname = getattr(encoder_manager.encoder_config, "map_classid_to_classname", None) + + class_acc_dict = {} + + # compute embeddings for all wav_files + for item in tqdm(dataset_items): + class_name = item[class_name_key] + wav_file = item["audio_file"] + + # extract the embedding + embedd = encoder_manager.compute_embedding_from_clip(wav_file) + if encoder_manager.encoder_criterion is not None and map_classid_to_classname is not None: + embedding = torch.FloatTensor(embedd).unsqueeze(0) + if encoder_manager.use_cuda: + embedding = embedding.cuda() + + class_id = encoder_manager.encoder_criterion.softmax.inference(embedding).item() + predicted_label = map_classid_to_classname[str(class_id)] + else: + predicted_label = None + + if class_name is not None and predicted_label is not None: + is_equal = int(class_name == predicted_label) + if class_name not in class_acc_dict: + class_acc_dict[class_name] = [is_equal] + else: + class_acc_dict[class_name].append(is_equal) + else: + raise RuntimeError("Error: class_name or/and predicted_label are None") + + acc_avg = 0 + for key, values in class_acc_dict.items(): + acc = sum(values) / len(values) + print("Class", key, "Accuracy:", acc) + acc_avg += acc + + print("Average Accuracy:", acc_avg / len(class_acc_dict)) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="""Compute the accuracy of the encoder.\n\n""" + """ + Example runs: + python TTS/bin/eval_encoder.py emotion_encoder_model.pth emotion_encoder_config.json dataset_config.json + """, + formatter_class=RawTextHelpFormatter, + ) + parser.add_argument("model_path", type=str, help="Path to model checkpoint file.") + parser.add_argument( + "config_path", + type=str, + help="Path to model config file.", + ) + + parser.add_argument( + "config_dataset_path", + type=str, + help="Path to dataset config file.", + ) + parser.add_argument("--use_cuda", type=bool, help="flag to set cuda.", default=True) + parser.add_argument("--eval", type=bool, help="compute eval.", default=True) + + args = parser.parse_args() + + c_dataset = load_config(args.config_dataset_path) + + meta_data_train, meta_data_eval = load_tts_samples(c_dataset.datasets, eval_split=args.eval) + items = meta_data_train + meta_data_eval + + enc_manager = SpeakerManager( + encoder_model_path=args.model_path, encoder_config_path=args.config_path, use_cuda=args.use_cuda + ) + + compute_encoder_accuracy(items, enc_manager) diff --git a/Indic-TTS/TTS/TTS/bin/extract_tts_spectrograms.py b/Indic-TTS/TTS/TTS/bin/extract_tts_spectrograms.py new file mode 100644 index 0000000000000000000000000000000000000000..a0dd0549ed8e86aeb3a1aeab28bba6f78f4edd84 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/extract_tts_spectrograms.py @@ -0,0 +1,287 @@ +#!/usr/bin/env python3 +"""Extract Mel spectrograms with teacher forcing.""" + +import argparse +import os + +import numpy as np +import torch +from torch.utils.data import DataLoader +from tqdm import tqdm + +from TTS.config import load_config +from TTS.tts.datasets import TTSDataset, load_tts_samples +from TTS.tts.models import setup_model +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor +from TTS.utils.generic_utils import count_parameters + +use_cuda = torch.cuda.is_available() + + +def setup_loader(ap, r, verbose=False): + tokenizer, _ = TTSTokenizer.init_from_config(c) + dataset = TTSDataset( + outputs_per_step=r, + compute_linear_spec=False, + samples=meta_data, + tokenizer=tokenizer, + ap=ap, + batch_group_size=0, + min_text_len=c.min_text_len, + max_text_len=c.max_text_len, + min_audio_len=c.min_audio_len, + max_audio_len=c.max_audio_len, + phoneme_cache_path=c.phoneme_cache_path, + precompute_num_workers=0, + use_noise_augment=False, + verbose=verbose, + speaker_id_mapping=speaker_manager.ids if c.use_speaker_embedding else None, + d_vector_mapping=speaker_manager.embeddings if c.use_d_vector_file else None, + ) + + if c.use_phonemes and c.compute_input_seq_cache: + # precompute phonemes to have a better estimate of sequence lengths. + dataset.compute_input_seq(c.num_loader_workers) + dataset.preprocess_samples() + + loader = DataLoader( + dataset, + batch_size=c.batch_size, + shuffle=False, + collate_fn=dataset.collate_fn, + drop_last=False, + sampler=None, + num_workers=c.num_loader_workers, + pin_memory=False, + ) + return loader + + +def set_filename(wav_path, out_path): + wav_file = os.path.basename(wav_path) + file_name = wav_file.split(".")[0] + os.makedirs(os.path.join(out_path, "quant"), exist_ok=True) + os.makedirs(os.path.join(out_path, "mel"), exist_ok=True) + os.makedirs(os.path.join(out_path, "wav_gl"), exist_ok=True) + os.makedirs(os.path.join(out_path, "wav"), exist_ok=True) + wavq_path = os.path.join(out_path, "quant", file_name) + mel_path = os.path.join(out_path, "mel", file_name) + wav_gl_path = os.path.join(out_path, "wav_gl", file_name + ".wav") + wav_path = os.path.join(out_path, "wav", file_name + ".wav") + return file_name, wavq_path, mel_path, wav_gl_path, wav_path + + +def format_data(data): + # setup input data + text_input = data["token_id"] + text_lengths = data["token_id_lengths"] + mel_input = data["mel"] + mel_lengths = data["mel_lengths"] + item_idx = data["item_idxs"] + d_vectors = data["d_vectors"] + speaker_ids = data["speaker_ids"] + attn_mask = data["attns"] + avg_text_length = torch.mean(text_lengths.float()) + avg_spec_length = torch.mean(mel_lengths.float()) + + # dispatch data to GPU + if use_cuda: + text_input = text_input.cuda(non_blocking=True) + text_lengths = text_lengths.cuda(non_blocking=True) + mel_input = mel_input.cuda(non_blocking=True) + mel_lengths = mel_lengths.cuda(non_blocking=True) + if speaker_ids is not None: + speaker_ids = speaker_ids.cuda(non_blocking=True) + if d_vectors is not None: + d_vectors = d_vectors.cuda(non_blocking=True) + if attn_mask is not None: + attn_mask = attn_mask.cuda(non_blocking=True) + return ( + text_input, + text_lengths, + mel_input, + mel_lengths, + speaker_ids, + d_vectors, + avg_text_length, + avg_spec_length, + attn_mask, + item_idx, + ) + + +@torch.no_grad() +def inference( + model_name, + model, + ap, + text_input, + text_lengths, + mel_input, + mel_lengths, + speaker_ids=None, + d_vectors=None, +): + if model_name == "glow_tts": + speaker_c = None + if speaker_ids is not None: + speaker_c = speaker_ids + elif d_vectors is not None: + speaker_c = d_vectors + outputs = model.inference_with_MAS( + text_input, + text_lengths, + mel_input, + mel_lengths, + aux_input={"d_vectors": speaker_c, "speaker_ids": speaker_ids}, + ) + model_output = outputs["model_outputs"] + model_output = model_output.detach().cpu().numpy() + + elif "tacotron" in model_name: + aux_input = {"speaker_ids": speaker_ids, "d_vectors": d_vectors} + outputs = model(text_input, text_lengths, mel_input, mel_lengths, aux_input) + postnet_outputs = outputs["model_outputs"] + # normalize tacotron output + if model_name == "tacotron": + mel_specs = [] + postnet_outputs = postnet_outputs.data.cpu().numpy() + for b in range(postnet_outputs.shape[0]): + postnet_output = postnet_outputs[b] + mel_specs.append(torch.FloatTensor(ap.out_linear_to_mel(postnet_output.T).T)) + model_output = torch.stack(mel_specs).cpu().numpy() + + elif model_name == "tacotron2": + model_output = postnet_outputs.detach().cpu().numpy() + return model_output + + +def extract_spectrograms( + data_loader, model, ap, output_path, quantized_wav=False, save_audio=False, debug=False, metada_name="metada.txt" +): + model.eval() + export_metadata = [] + for _, data in tqdm(enumerate(data_loader), total=len(data_loader)): + + # format data + ( + text_input, + text_lengths, + mel_input, + mel_lengths, + speaker_ids, + d_vectors, + _, + _, + _, + item_idx, + ) = format_data(data) + + model_output = inference( + c.model.lower(), + model, + ap, + text_input, + text_lengths, + mel_input, + mel_lengths, + speaker_ids, + d_vectors, + ) + + for idx in range(text_input.shape[0]): + wav_file_path = item_idx[idx] + wav = ap.load_wav(wav_file_path) + _, wavq_path, mel_path, wav_gl_path, wav_path = set_filename(wav_file_path, output_path) + + # quantize and save wav + if quantized_wav: + wavq = ap.quantize(wav) + np.save(wavq_path, wavq) + + # save TTS mel + mel = model_output[idx] + mel_length = mel_lengths[idx] + mel = mel[:mel_length, :].T + np.save(mel_path, mel) + + export_metadata.append([wav_file_path, mel_path]) + if save_audio: + ap.save_wav(wav, wav_path) + + if debug: + print("Audio for debug saved at:", wav_gl_path) + wav = ap.inv_melspectrogram(mel) + ap.save_wav(wav, wav_gl_path) + + with open(os.path.join(output_path, metada_name), "w", encoding="utf-8") as f: + for data in export_metadata: + f.write(f"{data[0]}|{data[1]+'.npy'}\n") + + +def main(args): # pylint: disable=redefined-outer-name + # pylint: disable=global-variable-undefined + global meta_data, speaker_manager + + # Audio processor + ap = AudioProcessor(**c.audio) + + # load data instances + meta_data_train, meta_data_eval = load_tts_samples( + c.datasets, eval_split=args.eval, eval_split_max_size=c.eval_split_max_size, eval_split_size=c.eval_split_size + ) + + # use eval and training partitions + meta_data = meta_data_train + meta_data_eval + + # init speaker manager + if c.use_speaker_embedding: + speaker_manager = SpeakerManager(data_items=meta_data) + elif c.use_d_vector_file: + speaker_manager = SpeakerManager(d_vectors_file_path=c.d_vector_file) + else: + speaker_manager = None + + # setup model + model = setup_model(c) + + # restore model + model.load_checkpoint(c, args.checkpoint_path, eval=True) + + if use_cuda: + model.cuda() + + num_params = count_parameters(model) + print("\n > Model has {} parameters".format(num_params), flush=True) + # set r + r = 1 if c.model.lower() == "glow_tts" else model.decoder.r + own_loader = setup_loader(ap, r, verbose=True) + + extract_spectrograms( + own_loader, + model, + ap, + args.output_path, + quantized_wav=args.quantized, + save_audio=args.save_audio, + debug=args.debug, + metada_name="metada.txt", + ) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--config_path", type=str, help="Path to config file for training.", required=True) + parser.add_argument("--checkpoint_path", type=str, help="Model file to be restored.", required=True) + parser.add_argument("--output_path", type=str, help="Path to save mel specs", required=True) + parser.add_argument("--debug", default=False, action="store_true", help="Save audio files for debug") + parser.add_argument("--save_audio", default=False, action="store_true", help="Save audio files") + parser.add_argument("--quantized", action="store_true", help="Save quantized audio files") + parser.add_argument("--eval", type=bool, help="compute eval.", default=True) + args = parser.parse_args() + + c = load_config(args.config_path) + c.audio.trim_silence = False + main(args) diff --git a/Indic-TTS/TTS/TTS/bin/find_unique_chars.py b/Indic-TTS/TTS/TTS/bin/find_unique_chars.py new file mode 100644 index 0000000000000000000000000000000000000000..ea16974839df6cf9942ef24a5535597940fde5b2 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/find_unique_chars.py @@ -0,0 +1,45 @@ +"""Find all the unique characters in a dataset""" +import argparse +from argparse import RawTextHelpFormatter + +from TTS.config import load_config +from TTS.tts.datasets import load_tts_samples + + +def main(): + # pylint: disable=bad-option-value + parser = argparse.ArgumentParser( + description="""Find all the unique characters or phonemes in a dataset.\n\n""" + """ + Example runs: + + python TTS/bin/find_unique_chars.py --config_path config.json + """, + formatter_class=RawTextHelpFormatter, + ) + parser.add_argument("--config_path", type=str, help="Path to dataset config file.", required=True) + args = parser.parse_args() + + c = load_config(args.config_path) + + # load all datasets + train_items, eval_items = load_tts_samples( + c.datasets, eval_split=True, eval_split_max_size=c.eval_split_max_size, eval_split_size=c.eval_split_size + ) + + items = train_items + eval_items + + texts = "".join(item["text"] for item in items) + chars = set(texts) + lower_chars = filter(lambda c: c.islower(), chars) + chars_force_lower = [c.lower() for c in chars] + chars_force_lower = set(chars_force_lower) + + print(f" > Number of unique characters: {len(chars)}") + print(f" > Unique characters: {''.join(sorted(chars))}") + print(f" > Unique lower characters: {''.join(sorted(lower_chars))}") + print(f" > Unique all forced to lower characters: {''.join(sorted(chars_force_lower))}") + + +if __name__ == "__main__": + main() diff --git a/Indic-TTS/TTS/TTS/bin/find_unique_phonemes.py b/Indic-TTS/TTS/TTS/bin/find_unique_phonemes.py new file mode 100644 index 0000000000000000000000000000000000000000..0ae74bd4749711d7d96aac1341a2e117cd62bd3b --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/find_unique_phonemes.py @@ -0,0 +1,70 @@ +"""Find all the unique characters in a dataset""" +import argparse +import multiprocessing +from argparse import RawTextHelpFormatter + +from tqdm.contrib.concurrent import process_map + +from TTS.config import load_config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.utils.text.phonemizers.gruut_wrapper import Gruut + +phonemizer = Gruut(language="en-us") + + +def compute_phonemes(item): + try: + text = item[0] + ph = phonemizer.phonemize(text).split("|") + except: + return [] + return list(set(ph)) + + +def main(): + # pylint: disable=W0601 + global c + # pylint: disable=bad-option-value + parser = argparse.ArgumentParser( + description="""Find all the unique characters or phonemes in a dataset.\n\n""" + """ + Example runs: + + python TTS/bin/find_unique_chars.py --config_path config.json + """, + formatter_class=RawTextHelpFormatter, + ) + parser.add_argument("--config_path", type=str, help="Path to dataset config file.", required=True) + args = parser.parse_args() + + c = load_config(args.config_path) + + # load all datasets + train_items, eval_items = load_tts_samples( + c.datasets, eval_split=True, eval_split_max_size=c.eval_split_max_size, eval_split_size=c.eval_split_size + ) + items = train_items + eval_items + print("Num items:", len(items)) + + is_lang_def = all(item["language"] for item in items) + + if not c.phoneme_language or not is_lang_def: + raise ValueError("Phoneme language must be defined in config.") + + phonemes = process_map(compute_phonemes, items, max_workers=multiprocessing.cpu_count(), chunksize=15) + phones = [] + for ph in phonemes: + phones.extend(ph) + phones = set(phones) + lower_phones = filter(lambda c: c.islower(), phones) + phones_force_lower = [c.lower() for c in phones] + phones_force_lower = set(phones_force_lower) + + print(f" > Number of unique phonemes: {len(phones)}") + print(f" > Unique phonemes: {''.join(sorted(phones))}") + print(f" > Unique lower phonemes: {''.join(sorted(lower_phones))}") + print(f" > Unique all forced to lower phonemes: {''.join(sorted(phones_force_lower))}") + + +if __name__ == "__main__": + main() diff --git a/Indic-TTS/TTS/TTS/bin/remove_silence_using_vad.py b/Indic-TTS/TTS/TTS/bin/remove_silence_using_vad.py new file mode 100644 index 0000000000000000000000000000000000000000..7d88ae914eda5053aa4a52c40e2ffaa5318a10e5 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/remove_silence_using_vad.py @@ -0,0 +1,85 @@ +import argparse +import glob +import os +import pathlib + +from tqdm import tqdm + +from TTS.utils.vad import get_vad_model_and_utils, remove_silence + + +def adjust_path_and_remove_silence(audio_path): + output_path = audio_path.replace(os.path.join(args.input_dir, ""), os.path.join(args.output_dir, "")) + # ignore if the file exists + if os.path.exists(output_path) and not args.force: + return output_path + + # create all directory structure + pathlib.Path(output_path).parent.mkdir(parents=True, exist_ok=True) + # remove the silence and save the audio + output_path = remove_silence( + model_and_utils, + audio_path, + output_path, + trim_just_beginning_and_end=args.trim_just_beginning_and_end, + use_cuda=args.use_cuda, + ) + + return output_path + + +def preprocess_audios(): + files = sorted(glob.glob(os.path.join(args.input_dir, args.glob), recursive=True)) + print("> Number of files: ", len(files)) + if not args.force: + print("> Ignoring files that already exist in the output directory.") + + if args.trim_just_beginning_and_end: + print("> Trimming just the beginning and the end with nonspeech parts.") + else: + print("> Trimming all nonspeech parts.") + + if files: + # create threads + # num_threads = multiprocessing.cpu_count() + # process_map(adjust_path_and_remove_silence, files, max_workers=num_threads, chunksize=15) + for f in tqdm(files): + adjust_path_and_remove_silence(f) + else: + print("> No files Found !") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="python TTS/bin/remove_silence_using_vad.py -i=VCTK-Corpus/ -o=VCTK-Corpus-removed-silence/ -g=wav48_silence_trimmed/*/*_mic1.flac --trim_just_beginning_and_end True" + ) + parser.add_argument("-i", "--input_dir", type=str, default="../VCTK-Corpus", help="Dataset root dir") + parser.add_argument( + "-o", "--output_dir", type=str, default="../VCTK-Corpus-removed-silence", help="Output Dataset dir" + ) + parser.add_argument("-f", "--force", default=False, action="store_true", help="Force the replace of exists files") + parser.add_argument( + "-g", + "--glob", + type=str, + default="**/*.wav", + help="path in glob format for acess wavs from input_dir. ex: wav48/*/*.wav", + ) + parser.add_argument( + "-t", + "--trim_just_beginning_and_end", + type=bool, + default=True, + help="If True this script will trim just the beginning and end nonspeech parts. If False all nonspeech parts will be trim. Default True", + ) + parser.add_argument( + "-c", + "--use_cuda", + type=bool, + default=False, + help="If True use cuda", + ) + args = parser.parse_args() + # load the model and utils + model_and_utils = get_vad_model_and_utils(use_cuda=args.use_cuda) + preprocess_audios() diff --git a/Indic-TTS/TTS/TTS/bin/resample.py b/Indic-TTS/TTS/TTS/bin/resample.py new file mode 100644 index 0000000000000000000000000000000000000000..c9f1166a647e2e761118862c2e8ac82a131428a9 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/resample.py @@ -0,0 +1,87 @@ +import argparse +import glob +import os +from argparse import RawTextHelpFormatter +from distutils.dir_util import copy_tree +from multiprocessing import Pool + +import librosa +import soundfile as sf +from tqdm import tqdm + + +def resample_file(func_args): + filename, output_sr = func_args + y, sr = librosa.load(filename, sr=output_sr) + sf.write(filename, y, sr) + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser( + description="""Resample a folder recusively with librosa + Can be used in place or create a copy of the folder as an output.\n\n + Example run: + python TTS/bin/resample.py + --input_dir /root/LJSpeech-1.1/ + --output_sr 22050 + --output_dir /root/resampled_LJSpeech-1.1/ + --file_ext wav + --n_jobs 24 + """, + formatter_class=RawTextHelpFormatter, + ) + + parser.add_argument( + "--input_dir", + type=str, + default=None, + required=True, + help="Path of the folder containing the audio files to resample", + ) + + parser.add_argument( + "--output_sr", + type=int, + default=22050, + required=False, + help="Samlple rate to which the audio files should be resampled", + ) + + parser.add_argument( + "--output_dir", + type=str, + default=None, + required=False, + help="Path of the destination folder. If not defined, the operation is done in place", + ) + + parser.add_argument( + "--file_ext", + type=str, + default="wav", + required=False, + help="Extension of the audio files to resample", + ) + + parser.add_argument( + "--n_jobs", type=int, default=None, help="Number of threads to use, by default it uses all cores" + ) + + args = parser.parse_args() + + if args.output_dir: + print("Recursively copying the input folder...") + copy_tree(args.input_dir, args.output_dir) + args.input_dir = args.output_dir + + print("Resampling the audio files...") + audio_files = glob.glob(os.path.join(args.input_dir, f"**/*.{args.file_ext}"), recursive=True) + print(f"Found {len(audio_files)} files...") + audio_files = list(zip(audio_files, len(audio_files) * [args.output_sr])) + with Pool(processes=args.n_jobs) as p: + with tqdm(total=len(audio_files)) as pbar: + for i, _ in enumerate(p.imap_unordered(resample_file, audio_files)): + pbar.update() + + print("Done !") diff --git a/Indic-TTS/TTS/TTS/bin/synthesize.py b/Indic-TTS/TTS/TTS/bin/synthesize.py new file mode 100644 index 0000000000000000000000000000000000000000..787d958a18742612507f750f08aa7349efdcc051 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/synthesize.py @@ -0,0 +1,425 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import argparse +import sys +import pandas as pd +from argparse import RawTextHelpFormatter + +# pylint: disable=redefined-outer-name, unused-argument +from pathlib import Path + +from TTS.utils.manage import ModelManager +from TTS.utils.synthesizer import Synthesizer +from tqdm.auto import tqdm + + +def str2bool(v): + if isinstance(v, bool): + return v + if v.lower() in ("yes", "true", "t", "y", "1"): + return True + if v.lower() in ("no", "false", "f", "n", "0"): + return False + raise argparse.ArgumentTypeError("Boolean value expected.") + + +def main(): + description = """Synthesize speech on command line. + +You can either use your trained model or choose a model from the provided list. + +If you don't specify any models, then it uses LJSpeech based English model. + +## Example Runs + +### Single Speaker Models + +- List provided models: + + ``` + $ tts --list_models + ``` + +- Query info for model info by idx: + + ``` + $ tts --model_info_by_idx "/" + ``` + +- Query info for model info by full name: + + ``` + $ tts --model_info_by_name "///" + ``` + +- Run TTS with default models: + + ``` + $ tts --text "Text for TTS" + ``` + +- Run a TTS model with its default vocoder model: + + ``` + $ tts --text "Text for TTS" --model_name "//" + ``` + +- Run with specific TTS and vocoder models from the list: + + ``` + $ tts --text "Text for TTS" --model_name "//" --vocoder_name "//" --output_path + ``` + +- Run your own TTS model (Using Griffin-Lim Vocoder): + + ``` + $ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav + ``` + +- Run your own TTS and Vocoder models: + ``` + $ tts --text "Text for TTS" --model_path path/to/config.json --config_path path/to/model.pth --out_path output/path/speech.wav + --vocoder_path path/to/vocoder.pth --vocoder_config_path path/to/vocoder_config.json + ``` + +### Multi-speaker Models + +- List the available speakers and choose as among them: + + ``` + $ tts --model_name "//" --list_speaker_idxs + ``` + +- Run the multi-speaker TTS model with the target speaker ID: + + ``` + $ tts --text "Text for TTS." --out_path output/path/speech.wav --model_name "//" --speaker_idx + ``` + +- Run your own multi-speaker TTS model: + + ``` + $ tts --text "Text for TTS" --out_path output/path/speech.wav --model_path path/to/config.json --config_path path/to/model.pth --speakers_file_path path/to/speaker.json --speaker_idx + ``` + """ + # We remove Markdown code formatting programmatically here to allow us to copy-and-paste from main README to keep + # documentation in sync more easily. + parser = argparse.ArgumentParser( + description=description.replace(" ```\n", ""), + formatter_class=RawTextHelpFormatter, + ) + + parser.add_argument( + "--list_models", + type=str2bool, + nargs="?", + const=True, + default=False, + help="list available pre-trained TTS and vocoder models.", + ) + + parser.add_argument( + "--model_info_by_idx", + type=str, + default=None, + help="model info using query format: /", + ) + + parser.add_argument( + "--model_info_by_name", + type=str, + default=None, + help="model info using query format: ///", + ) + + parser.add_argument("--text", type=str, default=None, help="Text to generate speech.") + + #parser.add_argument("--text_file_path", type=str, default=None, help="A csv file in LJSpeech format ('|' seperated id, text and speaker) to generate speech.") + #parser.add_argument("--speaker_name_filter", type=str, default=None, help="Filter texts corresponding to a specific speaker in text_file_path ") + + # Args for running pre-trained TTS models. + parser.add_argument( + "--model_name", + type=str, + default="tts_models/en/ljspeech/tacotron2-DDC", + help="Name of one of the pre-trained TTS models in format //", + ) + parser.add_argument( + "--vocoder_name", + type=str, + default=None, + help="Name of one of the pre-trained vocoder models in format //", + ) + + # Args for running custom models + parser.add_argument("--config_path", default=None, type=str, help="Path to model config file.") + parser.add_argument( + "--model_path", + type=str, + default=None, + help="Path to model file.", + ) + parser.add_argument( + "--out_path", + type=str, + default="tts_output.wav", + help="Output wav file path.", + ) + + # parser.add_argument( + # "--out_folder", + # type=str, + # default="tts_output", + # help="Output wav files folder.", + # ) + + parser.add_argument("--use_cuda", type=bool, help="Run model on CUDA.", default=False) + parser.add_argument( + "--vocoder_path", + type=str, + help="Path to vocoder model file. If it is not defined, model uses GL as vocoder. Please make sure that you installed vocoder library before (WaveRNN).", + default=None, + ) + parser.add_argument("--vocoder_config_path", type=str, help="Path to vocoder model config file.", default=None) + parser.add_argument( + "--encoder_path", + type=str, + help="Path to speaker encoder model file.", + default=None, + ) + parser.add_argument("--encoder_config_path", type=str, help="Path to speaker encoder config file.", default=None) + + # args for multi-speaker synthesis + parser.add_argument("--speakers_file_path", type=str, help="JSON file for multi-speaker model.", default=None) + parser.add_argument("--language_ids_file_path", type=str, help="JSON file for multi-lingual model.", default=None) + parser.add_argument( + "--speaker_idx", + type=str, + help="Target speaker ID for a multi-speaker TTS model.", + default=None, + ) + parser.add_argument( + "--language_idx", + type=str, + help="Target language ID for a multi-lingual TTS model.", + default=None, + ) + parser.add_argument( + "--speaker_wav", + nargs="+", + help="wav file(s) to condition a multi-speaker TTS model with a Speaker Encoder. You can give multiple file paths. The d_vectors is computed as their average.", + default=None, + ) + parser.add_argument("--gst_style", help="Wav path file for GST style reference.", default=None) + parser.add_argument( + "--capacitron_style_wav", type=str, help="Wav path file for Capacitron prosody reference.", default=None + ) + parser.add_argument("--capacitron_style_text", type=str, help="Transcription of the reference.", default=None) + parser.add_argument( + "--list_speaker_idxs", + help="List available speaker ids for the defined multi-speaker model.", + type=str2bool, + nargs="?", + const=True, + default=False, + ) + parser.add_argument( + "--list_language_idxs", + help="List available language ids for the defined multi-lingual model.", + type=str2bool, + nargs="?", + const=True, + default=False, + ) + # aux args + parser.add_argument( + "--save_spectogram", + type=bool, + help="If true save raw spectogram for further (vocoder) processing in out_path.", + default=False, + ) + parser.add_argument( + "--reference_wav", + type=str, + help="Reference wav file to convert in the voice of the speaker_idx or speaker_wav", + default=None, + ) + parser.add_argument( + "--reference_speaker_idx", + type=str, + help="speaker ID of the reference_wav speaker (If not provided the embedding will be computed using the Speaker Encoder).", + default=None, + ) + args = parser.parse_args() + + # print the description if either text or list_models is not set + check_args = [ + args.text, + args.list_models, + args.list_speaker_idxs, + args.list_language_idxs, + args.reference_wav, + args.model_info_by_idx, + args.model_info_by_name, + ] + if not any(check_args): + parser.parse_args(["-h"]) + + # load model manager + path = Path(__file__).parent / "../.models.json" + manager = ModelManager(path) + + model_path = None + config_path = None + speakers_file_path = None + language_ids_file_path = None + vocoder_path = None + vocoder_config_path = None + encoder_path = None + encoder_config_path = None + + # CASE1 #list : list pre-trained TTS models + if args.list_models: + manager.list_models() + sys.exit() + + # CASE2 #info : model info of pre-trained TTS models + if args.model_info_by_idx: + model_query = args.model_info_by_idx + manager.model_info_by_idx(model_query) + sys.exit() + + if args.model_info_by_name: + model_query_full_name = args.model_info_by_name + manager.model_info_by_full_name(model_query_full_name) + sys.exit() + + # CASE3: load pre-trained model paths + if args.model_name is not None and not args.model_path: + model_path, config_path, model_item = manager.download_model(args.model_name) + args.vocoder_name = model_item["default_vocoder"] if args.vocoder_name is None else args.vocoder_name + + if args.vocoder_name is not None and not args.vocoder_path: + vocoder_path, vocoder_config_path, _ = manager.download_model(args.vocoder_name) + + # CASE4: set custom model paths + if args.model_path is not None: + model_path = args.model_path + config_path = args.config_path + speakers_file_path = args.speakers_file_path + language_ids_file_path = args.language_ids_file_path + + if args.vocoder_path is not None: + vocoder_path = args.vocoder_path + vocoder_config_path = args.vocoder_config_path + + if args.encoder_path is not None: + encoder_path = args.encoder_path + encoder_config_path = args.encoder_config_path + + # load models + synthesizer = Synthesizer( + model_path, + config_path, + speakers_file_path, + language_ids_file_path, + vocoder_path, + vocoder_config_path, + encoder_path, + encoder_config_path, + args.use_cuda, + ) + + # query speaker ids of a multi-speaker model. + if args.list_speaker_idxs: + print( + " > Available speaker ids: (Set --speaker_idx flag to one of these values to use the multi-speaker model." + ) + print(synthesizer.tts_model.speaker_manager.ids) + return + + # query langauge ids of a multi-lingual model. + if args.list_language_idxs: + print( + " > Available language ids: (Set --language_idx flag to one of these values to use the multi-lingual model." + ) + print(synthesizer.tts_model.language_manager.ids) + return + + # check the arguments against a multi-speaker model. + if synthesizer.tts_speakers_file and (not args.speaker_idx and not args.speaker_wav): + print( + " [!] Looks like you use a multi-speaker model. Define `--speaker_idx` to " + "select the target speaker. You can list the available speakers for this model by `--list_speaker_idxs`." + ) + return + + # RUN THE SYNTHESIS + if args.text.endswith('.csv'): + df = pd.read_csv(args.text, sep='|') + num_cols = df.shape[1] + columns = ['id', 'text', 'speaker_name', 'gender', 'text_len', 'audio_len', 'speaker_wav'][:num_cols] + df = pd.read_csv(args.text, sep='|', names=columns) + df = df.head(10) + + # print(f'Number of examples before speaker filter: {len(df)}') + # if args.speaker_name_filter: + # df = df[df['speaker_name']==args.speaker_name_filter] + # print(f'Number of examples after speaker filter: {len(df)}') + + if len(df) == 0: + raise ValueError("No records found.") + + if 'speaker_wav' in df.columns: + for idx, row in tqdm(df.iterrows(), total=len(df), desc="Synthesizing"): + wav = synthesizer.tts( + text=row['text'], + speaker_name=None, + language_name=args.language_idx, + speaker_wav=row['speaker_wav'], + reference_wav=args.reference_wav, + style_wav=args.capacitron_style_wav, + style_text=args.capacitron_style_text, + reference_speaker_name=args.reference_speaker_idx, + ) + synthesizer.save_wav(wav, f'{args.out_path}/{row["id"]}.wav') + else: + for idx, row in tqdm(df.iterrows(), total=len(df), desc="Synthesizing"): + wav = synthesizer.tts( + row['text'], + row['speaker_name'] if 'speaker_name' in df.columns else args.speaker_idx, + args.language_idx, + args.speaker_wav, + reference_wav=args.reference_wav, + style_wav=args.capacitron_style_wav, + style_text=args.capacitron_style_text, + reference_speaker_name=args.reference_speaker_idx, + ) + synthesizer.save_wav(wav, f'{args.out_path}/{row["id"]}.wav') + print(" > Saved output wav files in {}".format(args.out_path)) + return True + + if args.text: + print(" > Text: {}".format(args.text)) + + + # kick it + wav = synthesizer.tts( + args.text, + args.speaker_idx, + args.language_idx, + args.speaker_wav, + reference_wav=args.reference_wav, + style_wav=args.capacitron_style_wav, + style_text=args.capacitron_style_text, + reference_speaker_name=args.reference_speaker_idx, + ) + + # save the results + print(" > Saving output to {}".format(args.out_path)) + synthesizer.save_wav(wav, args.out_path) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Indic-TTS/TTS/TTS/bin/train_encoder.py b/Indic-TTS/TTS/TTS/bin/train_encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..d28f188e752ad545ef4295fe708f0a5ee52f5bd1 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/train_encoder.py @@ -0,0 +1,319 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import sys +import time +import traceback + +import torch +from torch.utils.data import DataLoader +from trainer.torch import NoamLR +from trainer.trainer_utils import get_optimizer + +from TTS.encoder.dataset import EncoderDataset +from TTS.encoder.utils.generic_utils import save_best_model, save_checkpoint, setup_encoder_model +from TTS.encoder.utils.samplers import PerfectBatchSampler +from TTS.encoder.utils.training import init_training +from TTS.encoder.utils.visual import plot_embeddings +from TTS.tts.datasets import load_tts_samples +from TTS.utils.audio import AudioProcessor +from TTS.utils.generic_utils import count_parameters, remove_experiment_folder +from TTS.utils.io import copy_model_files +from TTS.utils.training import check_update + +torch.backends.cudnn.enabled = True +torch.backends.cudnn.benchmark = True +torch.manual_seed(54321) +use_cuda = torch.cuda.is_available() +num_gpus = torch.cuda.device_count() +print(" > Using CUDA: ", use_cuda) +print(" > Number of GPUs: ", num_gpus) + + +def setup_loader(ap: AudioProcessor, is_val: bool = False, verbose: bool = False): + num_utter_per_class = c.num_utter_per_class if not is_val else c.eval_num_utter_per_class + num_classes_in_batch = c.num_classes_in_batch if not is_val else c.eval_num_classes_in_batch + + dataset = EncoderDataset( + c, + ap, + meta_data_eval if is_val else meta_data_train, + voice_len=c.voice_len, + num_utter_per_class=num_utter_per_class, + num_classes_in_batch=num_classes_in_batch, + verbose=verbose, + augmentation_config=c.audio_augmentation if not is_val else None, + use_torch_spec=c.model_params.get("use_torch_spec", False), + ) + # get classes list + classes = dataset.get_class_list() + + sampler = PerfectBatchSampler( + dataset.items, + classes, + batch_size=num_classes_in_batch * num_utter_per_class, # total batch size + num_classes_in_batch=num_classes_in_batch, + num_gpus=1, + shuffle=not is_val, + drop_last=True, + ) + + if len(classes) < num_classes_in_batch: + if is_val: + raise RuntimeError( + f"config.eval_num_classes_in_batch ({num_classes_in_batch}) need to be <= {len(classes)} (Number total of Classes in the Eval dataset) !" + ) + raise RuntimeError( + f"config.num_classes_in_batch ({num_classes_in_batch}) need to be <= {len(classes)} (Number total of Classes in the Train dataset) !" + ) + + # set the classes to avoid get wrong class_id when the number of training and eval classes are not equal + if is_val: + dataset.set_classes(train_classes) + + loader = DataLoader( + dataset, + num_workers=c.num_loader_workers, + batch_sampler=sampler, + collate_fn=dataset.collate_fn, + ) + + return loader, classes, dataset.get_map_classid_to_classname() + + +def evaluation(model, criterion, data_loader, global_step): + eval_loss = 0 + for _, data in enumerate(data_loader): + with torch.no_grad(): + # setup input data + inputs, labels = data + + # agroup samples of each class in the batch. perfect sampler produces [3,2,1,3,2,1] we need [3,3,2,2,1,1] + labels = torch.transpose( + labels.view(c.eval_num_utter_per_class, c.eval_num_classes_in_batch), 0, 1 + ).reshape(labels.shape) + inputs = torch.transpose( + inputs.view(c.eval_num_utter_per_class, c.eval_num_classes_in_batch, -1), 0, 1 + ).reshape(inputs.shape) + + # dispatch data to GPU + if use_cuda: + inputs = inputs.cuda(non_blocking=True) + labels = labels.cuda(non_blocking=True) + + # forward pass model + outputs = model(inputs) + + # loss computation + loss = criterion( + outputs.view(c.eval_num_classes_in_batch, outputs.shape[0] // c.eval_num_classes_in_batch, -1), labels + ) + + eval_loss += loss.item() + + eval_avg_loss = eval_loss / len(data_loader) + # save stats + dashboard_logger.eval_stats(global_step, {"loss": eval_avg_loss}) + # plot the last batch in the evaluation + figures = { + "UMAP Plot": plot_embeddings(outputs.detach().cpu().numpy(), c.num_classes_in_batch), + } + dashboard_logger.eval_figures(global_step, figures) + return eval_avg_loss + + +def train(model, optimizer, scheduler, criterion, data_loader, eval_data_loader, global_step): + model.train() + best_loss = float("inf") + avg_loader_time = 0 + end_time = time.time() + for epoch in range(c.epochs): + tot_loss = 0 + epoch_time = 0 + for _, data in enumerate(data_loader): + start_time = time.time() + + # setup input data + inputs, labels = data + # agroup samples of each class in the batch. perfect sampler produces [3,2,1,3,2,1] we need [3,3,2,2,1,1] + labels = torch.transpose(labels.view(c.num_utter_per_class, c.num_classes_in_batch), 0, 1).reshape( + labels.shape + ) + inputs = torch.transpose(inputs.view(c.num_utter_per_class, c.num_classes_in_batch, -1), 0, 1).reshape( + inputs.shape + ) + # ToDo: move it to a unit test + # labels_converted = torch.transpose(labels.view(c.num_utter_per_class, c.num_classes_in_batch), 0, 1).reshape(labels.shape) + # inputs_converted = torch.transpose(inputs.view(c.num_utter_per_class, c.num_classes_in_batch, -1), 0, 1).reshape(inputs.shape) + # idx = 0 + # for j in range(0, c.num_classes_in_batch, 1): + # for i in range(j, len(labels), c.num_classes_in_batch): + # if not torch.all(labels[i].eq(labels_converted[idx])) or not torch.all(inputs[i].eq(inputs_converted[idx])): + # print("Invalid") + # print(labels) + # exit() + # idx += 1 + # labels = labels_converted + # inputs = inputs_converted + + loader_time = time.time() - end_time + global_step += 1 + + # setup lr + if c.lr_decay: + scheduler.step() + optimizer.zero_grad() + + # dispatch data to GPU + if use_cuda: + inputs = inputs.cuda(non_blocking=True) + labels = labels.cuda(non_blocking=True) + + # forward pass model + outputs = model(inputs) + + # loss computation + loss = criterion( + outputs.view(c.num_classes_in_batch, outputs.shape[0] // c.num_classes_in_batch, -1), labels + ) + loss.backward() + grad_norm, _ = check_update(model, c.grad_clip) + optimizer.step() + + step_time = time.time() - start_time + epoch_time += step_time + + # acumulate the total epoch loss + tot_loss += loss.item() + + # Averaged Loader Time + num_loader_workers = c.num_loader_workers if c.num_loader_workers > 0 else 1 + avg_loader_time = ( + 1 / num_loader_workers * loader_time + (num_loader_workers - 1) / num_loader_workers * avg_loader_time + if avg_loader_time != 0 + else loader_time + ) + current_lr = optimizer.param_groups[0]["lr"] + + if global_step % c.steps_plot_stats == 0: + # Plot Training Epoch Stats + train_stats = { + "loss": loss.item(), + "lr": current_lr, + "grad_norm": grad_norm, + "step_time": step_time, + "avg_loader_time": avg_loader_time, + } + dashboard_logger.train_epoch_stats(global_step, train_stats) + figures = { + "UMAP Plot": plot_embeddings(outputs.detach().cpu().numpy(), c.num_classes_in_batch), + } + dashboard_logger.train_figures(global_step, figures) + + if global_step % c.print_step == 0: + print( + " | > Step:{} Loss:{:.5f} GradNorm:{:.5f} " + "StepTime:{:.2f} LoaderTime:{:.2f} AvGLoaderTime:{:.2f} LR:{:.6f}".format( + global_step, loss.item(), grad_norm, step_time, loader_time, avg_loader_time, current_lr + ), + flush=True, + ) + + if global_step % c.save_step == 0: + # save model + save_checkpoint(model, optimizer, criterion, loss.item(), OUT_PATH, global_step, epoch) + + end_time = time.time() + + print("") + print( + ">>> Epoch:{} AvgLoss: {:.5f} GradNorm:{:.5f} " + "EpochTime:{:.2f} AvGLoaderTime:{:.2f} ".format( + epoch, tot_loss / len(data_loader), grad_norm, epoch_time, avg_loader_time + ), + flush=True, + ) + # evaluation + if c.run_eval: + model.eval() + eval_loss = evaluation(model, criterion, eval_data_loader, global_step) + print("\n\n") + print("--> EVAL PERFORMANCE") + print( + " | > Epoch:{} AvgLoss: {:.5f} ".format(epoch, eval_loss), + flush=True, + ) + # save the best checkpoint + best_loss = save_best_model(model, optimizer, criterion, eval_loss, best_loss, OUT_PATH, global_step, epoch) + model.train() + + return best_loss, global_step + + +def main(args): # pylint: disable=redefined-outer-name + # pylint: disable=global-variable-undefined + global meta_data_train + global meta_data_eval + global train_classes + + ap = AudioProcessor(**c.audio) + model = setup_encoder_model(c) + + optimizer = get_optimizer(c.optimizer, c.optimizer_params, c.lr, model) + + # pylint: disable=redefined-outer-name + meta_data_train, meta_data_eval = load_tts_samples(c.datasets, eval_split=True) + + train_data_loader, train_classes, map_classid_to_classname = setup_loader(ap, is_val=False, verbose=True) + if c.run_eval: + eval_data_loader, _, _ = setup_loader(ap, is_val=True, verbose=True) + else: + eval_data_loader = None + + num_classes = len(train_classes) + criterion = model.get_criterion(c, num_classes) + + if c.loss == "softmaxproto" and c.model != "speaker_encoder": + c.map_classid_to_classname = map_classid_to_classname + copy_model_files(c, OUT_PATH) + + if args.restore_path: + criterion, args.restore_step = model.load_checkpoint( + c, args.restore_path, eval=False, use_cuda=use_cuda, criterion=criterion + ) + print(" > Model restored from step %d" % args.restore_step, flush=True) + else: + args.restore_step = 0 + + if c.lr_decay: + scheduler = NoamLR(optimizer, warmup_steps=c.warmup_steps, last_epoch=args.restore_step - 1) + else: + scheduler = None + + num_params = count_parameters(model) + print("\n > Model has {} parameters".format(num_params), flush=True) + + if use_cuda: + model = model.cuda() + criterion.cuda() + + global_step = args.restore_step + _, global_step = train(model, optimizer, scheduler, criterion, train_data_loader, eval_data_loader, global_step) + + +if __name__ == "__main__": + args, c, OUT_PATH, AUDIO_PATH, c_logger, dashboard_logger = init_training() + + try: + main(args) + except KeyboardInterrupt: + remove_experiment_folder(OUT_PATH) + try: + sys.exit(0) + except SystemExit: + os._exit(0) # pylint: disable=protected-access + except Exception: # pylint: disable=broad-except + remove_experiment_folder(OUT_PATH) + traceback.print_exc() + sys.exit(1) diff --git a/Indic-TTS/TTS/TTS/bin/train_tts.py b/Indic-TTS/TTS/TTS/bin/train_tts.py new file mode 100644 index 0000000000000000000000000000000000000000..bdb4f6f69122a4a9aa4e07695f1816ce9727f323 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/train_tts.py @@ -0,0 +1,71 @@ +import os +from dataclasses import dataclass, field + +from trainer import Trainer, TrainerArgs + +from TTS.config import load_config, register_config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models import setup_model + + +@dataclass +class TrainTTSArgs(TrainerArgs): + config_path: str = field(default=None, metadata={"help": "Path to the config file."}) + + +def main(): + """Run `tts` model training directly by a `config.json` file.""" + # init trainer args + train_args = TrainTTSArgs() + parser = train_args.init_argparse(arg_prefix="") + + # override trainer args from comman-line args + args, config_overrides = parser.parse_known_args() + train_args.parse_args(args) + + # load config.json and register + if args.config_path or args.continue_path: + if args.config_path: + # init from a file + config = load_config(args.config_path) + if len(config_overrides) > 0: + config.parse_known_args(config_overrides, relaxed_parser=True) + elif args.continue_path: + # continue from a prev experiment + config = load_config(os.path.join(args.continue_path, "config.json")) + if len(config_overrides) > 0: + config.parse_known_args(config_overrides, relaxed_parser=True) + else: + # init from console args + from TTS.config.shared_configs import BaseTrainingConfig # pylint: disable=import-outside-toplevel + + config_base = BaseTrainingConfig() + config_base.parse_known_args(config_overrides) + config = register_config(config_base.model)() + + # load training samples + train_samples, eval_samples = load_tts_samples( + config.datasets, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, + ) + + # init the model from config + model = setup_model(config, train_samples + eval_samples) + + # init the trainer and ๐Ÿš€ + trainer = Trainer( + train_args, + model.config, + config.output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, + parse_command_line_args=False, + ) + trainer.fit() + + +if __name__ == "__main__": + main() diff --git a/Indic-TTS/TTS/TTS/bin/train_vocoder.py b/Indic-TTS/TTS/TTS/bin/train_vocoder.py new file mode 100644 index 0000000000000000000000000000000000000000..32ecd7bdc3652b3683be846bdd9518e937aee904 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/train_vocoder.py @@ -0,0 +1,77 @@ +import os +from dataclasses import dataclass, field + +from trainer import Trainer, TrainerArgs + +from TTS.config import load_config, register_config +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.datasets.preprocess import load_wav_data, load_wav_feat_data +from TTS.vocoder.models import setup_model + + +@dataclass +class TrainVocoderArgs(TrainerArgs): + config_path: str = field(default=None, metadata={"help": "Path to the config file."}) + + +def main(): + """Run `tts` model training directly by a `config.json` file.""" + # init trainer args + train_args = TrainVocoderArgs() + parser = train_args.init_argparse(arg_prefix="") + + # override trainer args from comman-line args + args, config_overrides = parser.parse_known_args() + train_args.parse_args(args) + + # load config.json and register + if args.config_path or args.continue_path: + if args.config_path: + # init from a file + config = load_config(args.config_path) + if len(config_overrides) > 0: + config.parse_known_args(config_overrides, relaxed_parser=True) + elif args.continue_path: + # continue from a prev experiment + config = load_config(os.path.join(args.continue_path, "config.json")) + if len(config_overrides) > 0: + config.parse_known_args(config_overrides, relaxed_parser=True) + else: + # init from console args + from TTS.config.shared_configs import BaseTrainingConfig # pylint: disable=import-outside-toplevel + + config_base = BaseTrainingConfig() + config_base.parse_known_args(config_overrides) + config = register_config(config_base.model)() + + # load training samples + if "feature_path" in config and config.feature_path: + # load pre-computed features + print(f" > Loading features from: {config.feature_path}") + eval_samples, train_samples = load_wav_feat_data(config.data_path, config.feature_path, config.eval_split_size) + else: + # load data raw wav files + eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + + # setup audio processor + ap = AudioProcessor(**config.audio) + + # init the model from config + model = setup_model(config) + + # init the trainer and ๐Ÿš€ + trainer = Trainer( + train_args, + config, + config.output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, + training_assets={"audio_processor": ap}, + parse_command_line_args=False, + ) + trainer.fit() + + +if __name__ == "__main__": + main() diff --git a/Indic-TTS/TTS/TTS/bin/tune_wavegrad.py b/Indic-TTS/TTS/TTS/bin/tune_wavegrad.py new file mode 100644 index 0000000000000000000000000000000000000000..a31d6c4548bb0c769ca4b0bf05cf1d13c3ae39d4 --- /dev/null +++ b/Indic-TTS/TTS/TTS/bin/tune_wavegrad.py @@ -0,0 +1,100 @@ +"""Search a good noise schedule for WaveGrad for a given number of inferece iterations""" +import argparse +from itertools import product as cartesian_product + +import numpy as np +import torch +from torch.utils.data import DataLoader +from tqdm import tqdm + +from TTS.utils.audio import AudioProcessor +from TTS.utils.io import load_config +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.datasets.wavegrad_dataset import WaveGradDataset +from TTS.vocoder.utils.generic_utils import setup_generator + +parser = argparse.ArgumentParser() +parser.add_argument("--model_path", type=str, help="Path to model checkpoint.") +parser.add_argument("--config_path", type=str, help="Path to model config file.") +parser.add_argument("--data_path", type=str, help="Path to data directory.") +parser.add_argument("--output_path", type=str, help="path for output file including file name and extension.") +parser.add_argument( + "--num_iter", type=int, help="Number of model inference iterations that you like to optimize noise schedule for." +) +parser.add_argument("--use_cuda", type=bool, help="enable/disable CUDA.") +parser.add_argument("--num_samples", type=int, default=1, help="Number of datasamples used for inference.") +parser.add_argument( + "--search_depth", + type=int, + default=3, + help="Search granularity. Increasing this increases the run-time exponentially.", +) + +# load config +args = parser.parse_args() +config = load_config(args.config_path) + +# setup audio processor +ap = AudioProcessor(**config.audio) + +# load dataset +_, train_data = load_wav_data(args.data_path, 0) +train_data = train_data[: args.num_samples] +dataset = WaveGradDataset( + ap=ap, + items=train_data, + seq_len=-1, + hop_len=ap.hop_length, + pad_short=config.pad_short, + conv_pad=config.conv_pad, + is_training=True, + return_segments=False, + use_noise_augment=False, + use_cache=False, + verbose=True, +) +loader = DataLoader( + dataset, + batch_size=1, + shuffle=False, + collate_fn=dataset.collate_full_clips, + drop_last=False, + num_workers=config.num_loader_workers, + pin_memory=False, +) + +# setup the model +model = setup_generator(config) +if args.use_cuda: + model.cuda() + +# setup optimization parameters +base_values = sorted(10 * np.random.uniform(size=args.search_depth)) +print(base_values) +exponents = 10 ** np.linspace(-6, -1, num=args.num_iter) +best_error = float("inf") +best_schedule = None +total_search_iter = len(base_values) ** args.num_iter +for base in tqdm(cartesian_product(base_values, repeat=args.num_iter), total=total_search_iter): + beta = exponents * base + model.compute_noise_level(beta) + for data in loader: + mel, audio = data + y_hat = model.inference(mel.cuda() if args.use_cuda else mel) + + if args.use_cuda: + y_hat = y_hat.cpu() + y_hat = y_hat.numpy() + + mel_hat = [] + for i in range(y_hat.shape[0]): + m = ap.melspectrogram(y_hat[i, 0])[:, :-1] + mel_hat.append(torch.from_numpy(m)) + + mel_hat = torch.stack(mel_hat) + mse = torch.sum((mel - mel_hat) ** 2).mean() + if mse.item() < best_error: + best_error = mse.item() + best_schedule = {"beta": beta} + print(f" > Found a better schedule. - MSE: {mse.item()}") + np.save(args.output_path, best_schedule) diff --git a/Indic-TTS/TTS/TTS/config/__init__.py b/Indic-TTS/TTS/TTS/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6b0778c5a7ca05e753b54b9a64eb5ec7aa29c0eb --- /dev/null +++ b/Indic-TTS/TTS/TTS/config/__init__.py @@ -0,0 +1,132 @@ +import json +import os +import re +from typing import Dict + +import fsspec +import yaml +from coqpit import Coqpit + +from TTS.config.shared_configs import * +from TTS.utils.generic_utils import find_module + + +def read_json_with_comments(json_path): + """for backward compat.""" + # fallback to json + with fsspec.open(json_path, "r", encoding="utf-8") as f: + input_str = f.read() + # handle comments + input_str = re.sub(r"\\\n", "", input_str) + input_str = re.sub(r"//.*\n", "\n", input_str) + data = json.loads(input_str) + return data + + +def register_config(model_name: str) -> Coqpit: + """Find the right config for the given model name. + + Args: + model_name (str): Model name. + + Raises: + ModuleNotFoundError: No matching config for the model name. + + Returns: + Coqpit: config class. + """ + config_class = None + config_name = model_name + "_config" + paths = ["TTS.tts.configs", "TTS.vocoder.configs", "TTS.encoder.configs"] + for path in paths: + try: + config_class = find_module(path, config_name) + except ModuleNotFoundError: + pass + if config_class is None: + raise ModuleNotFoundError(f" [!] Config for {model_name} cannot be found.") + return config_class + + +def _process_model_name(config_dict: Dict) -> str: + """Format the model name as expected. It is a band-aid for the old `vocoder` model names. + + Args: + config_dict (Dict): A dictionary including the config fields. + + Returns: + str: Formatted modelname. + """ + model_name = config_dict["model"] if "model" in config_dict else config_dict["generator_model"] + model_name = model_name.replace("_generator", "").replace("_discriminator", "") + return model_name + + +def load_config(config_path: str) -> None: + """Import `json` or `yaml` files as TTS configs. First, load the input file as a `dict` and check the model name + to find the corresponding Config class. Then initialize the Config. + + Args: + config_path (str): path to the config file. + + Raises: + TypeError: given config file has an unknown type. + + Returns: + Coqpit: TTS config object. + """ + config_dict = {} + ext = os.path.splitext(config_path)[1] + if ext in (".yml", ".yaml"): + with fsspec.open(config_path, "r", encoding="utf-8") as f: + data = yaml.safe_load(f) + elif ext == ".json": + try: + with fsspec.open(config_path, "r", encoding="utf-8") as f: + data = json.load(f) + except json.decoder.JSONDecodeError: + # backwards compat. + data = read_json_with_comments(config_path) + else: + raise TypeError(f" [!] Unknown config file type {ext}") + config_dict.update(data) + model_name = _process_model_name(config_dict) + config_class = register_config(model_name.lower()) + config = config_class() + config.from_dict(config_dict) + return config + + +def check_config_and_model_args(config, arg_name, value): + """Check the give argument in `config.model_args` if exist or in `config` for + the given value. + + Return False if the argument does not exist in `config.model_args` or `config`. + This is to patch up the compatibility between models with and without `model_args`. + + TODO: Remove this in the future with a unified approach. + """ + if hasattr(config, "model_args"): + if arg_name in config.model_args: + return config.model_args[arg_name] == value + if hasattr(config, arg_name): + return config[arg_name] == value + return False + + +def get_from_config_or_model_args(config, arg_name): + """Get the given argument from `config.model_args` if exist or in `config`.""" + if hasattr(config, "model_args"): + if arg_name in config.model_args: + return config.model_args[arg_name] + return config[arg_name] + + +def get_from_config_or_model_args_with_default(config, arg_name, def_val): + """Get the given argument from `config.model_args` if exist or in `config`.""" + if hasattr(config, "model_args"): + if arg_name in config.model_args: + return config.model_args[arg_name] + if hasattr(config, arg_name): + return config[arg_name] + return def_val diff --git a/Indic-TTS/TTS/TTS/config/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/config/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9f4081c5e8ba25598f6592bff757a1844b08fefc Binary files /dev/null and b/Indic-TTS/TTS/TTS/config/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/config/__pycache__/shared_configs.cpython-37.pyc b/Indic-TTS/TTS/TTS/config/__pycache__/shared_configs.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c0df1b5c9c0ff27e223b634bfe5bae39b3701d10 Binary files /dev/null and b/Indic-TTS/TTS/TTS/config/__pycache__/shared_configs.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/config/shared_configs.py b/Indic-TTS/TTS/TTS/config/shared_configs.py new file mode 100644 index 0000000000000000000000000000000000000000..3ea49796fce9b796703f285b91a16339432a2a1d --- /dev/null +++ b/Indic-TTS/TTS/TTS/config/shared_configs.py @@ -0,0 +1,260 @@ +from dataclasses import asdict, dataclass +from typing import List + +from coqpit import Coqpit, check_argument +from trainer import TrainerConfig + + +@dataclass +class BaseAudioConfig(Coqpit): + """Base config to definge audio processing parameters. It is used to initialize + ```TTS.utils.audio.AudioProcessor.``` + + Args: + fft_size (int): + Number of STFT frequency levels aka.size of the linear spectogram frame. Defaults to 1024. + + win_length (int): + Each frame of audio is windowed by window of length ```win_length``` and then padded with zeros to match + ```fft_size```. Defaults to 1024. + + hop_length (int): + Number of audio samples between adjacent STFT columns. Defaults to 1024. + + frame_shift_ms (int): + Set ```hop_length``` based on milliseconds and sampling rate. + + frame_length_ms (int): + Set ```win_length``` based on milliseconds and sampling rate. + + stft_pad_mode (str): + Padding method used in STFT. 'reflect' or 'center'. Defaults to 'reflect'. + + sample_rate (int): + Audio sampling rate. Defaults to 22050. + + resample (bool): + Enable / Disable resampling audio to ```sample_rate```. Defaults to ```False```. + + preemphasis (float): + Preemphasis coefficient. Defaults to 0.0. + + ref_level_db (int): 20 + Reference Db level to rebase the audio signal and ignore the level below. 20Db is assumed the sound of air. + Defaults to 20. + + do_sound_norm (bool): + Enable / Disable sound normalization to reconcile the volume differences among samples. Defaults to False. + + log_func (str): + Numpy log function used for amplitude to DB conversion. Defaults to 'np.log10'. + + do_trim_silence (bool): + Enable / Disable trimming silences at the beginning and the end of the audio clip. Defaults to ```True```. + + do_amp_to_db_linear (bool, optional): + enable/disable amplitude to dB conversion of linear spectrograms. Defaults to True. + + do_amp_to_db_mel (bool, optional): + enable/disable amplitude to dB conversion of mel spectrograms. Defaults to True. + + pitch_fmax (float, optional): + Maximum frequency of the F0 frames. Defaults to ```640```. + + pitch_fmin (float, optional): + Minimum frequency of the F0 frames. Defaults to ```0```. + + trim_db (int): + Silence threshold used for silence trimming. Defaults to 45. + + do_rms_norm (bool, optional): + enable/disable RMS volume normalization when loading an audio file. Defaults to False. + + db_level (int, optional): + dB level used for rms normalization. The range is -99 to 0. Defaults to None. + + power (float): + Exponent used for expanding spectrogra levels before running Griffin Lim. It helps to reduce the + artifacts in the synthesized voice. Defaults to 1.5. + + griffin_lim_iters (int): + Number of Griffing Lim iterations. Defaults to 60. + + num_mels (int): + Number of mel-basis frames that defines the frame lengths of each mel-spectrogram frame. Defaults to 80. + + mel_fmin (float): Min frequency level used for the mel-basis filters. ~50 for male and ~95 for female voices. + It needs to be adjusted for a dataset. Defaults to 0. + + mel_fmax (float): + Max frequency level used for the mel-basis filters. It needs to be adjusted for a dataset. + + spec_gain (int): + Gain applied when converting amplitude to DB. Defaults to 20. + + signal_norm (bool): + enable/disable signal normalization. Defaults to True. + + min_level_db (int): + minimum db threshold for the computed melspectrograms. Defaults to -100. + + symmetric_norm (bool): + enable/disable symmetric normalization. If set True normalization is performed in the range [-k, k] else + [0, k], Defaults to True. + + max_norm (float): + ```k``` defining the normalization range. Defaults to 4.0. + + clip_norm (bool): + enable/disable clipping the our of range values in the normalized audio signal. Defaults to True. + + stats_path (str): + Path to the computed stats file. Defaults to None. + """ + + # stft parameters + fft_size: int = 1024 + win_length: int = 1024 + hop_length: int = 256 + frame_shift_ms: int = None + frame_length_ms: int = None + stft_pad_mode: str = "reflect" + # audio processing parameters + sample_rate: int = 22050 + resample: bool = False + preemphasis: float = 0.0 + ref_level_db: int = 20 + do_sound_norm: bool = False + log_func: str = "np.log10" + # silence trimming + do_trim_silence: bool = True + trim_db: int = 45 + # rms volume normalization + do_rms_norm: bool = False + db_level: float = None + # griffin-lim params + power: float = 1.5 + griffin_lim_iters: int = 60 + # mel-spec params + num_mels: int = 80 + mel_fmin: float = 0.0 + mel_fmax: float = None + spec_gain: int = 20 + do_amp_to_db_linear: bool = True + do_amp_to_db_mel: bool = True + # f0 params + pitch_fmax: float = 640.0 + pitch_fmin: float = 0.0 + # normalization params + signal_norm: bool = True + min_level_db: int = -100 + symmetric_norm: bool = True + max_norm: float = 4.0 + clip_norm: bool = True + stats_path: str = None + + def check_values( + self, + ): + """Check config fields""" + c = asdict(self) + check_argument("num_mels", c, restricted=True, min_val=10, max_val=2056) + check_argument("fft_size", c, restricted=True, min_val=128, max_val=4058) + check_argument("sample_rate", c, restricted=True, min_val=512, max_val=100000) + check_argument( + "frame_length_ms", + c, + restricted=True, + min_val=10, + max_val=1000, + alternative="win_length", + ) + check_argument("frame_shift_ms", c, restricted=True, min_val=1, max_val=1000, alternative="hop_length") + check_argument("preemphasis", c, restricted=True, min_val=0, max_val=1) + check_argument("min_level_db", c, restricted=True, min_val=-1000, max_val=10) + check_argument("ref_level_db", c, restricted=True, min_val=0, max_val=1000) + check_argument("power", c, restricted=True, min_val=1, max_val=5) + check_argument("griffin_lim_iters", c, restricted=True, min_val=10, max_val=1000) + + # normalization parameters + check_argument("signal_norm", c, restricted=True) + check_argument("symmetric_norm", c, restricted=True) + check_argument("max_norm", c, restricted=True, min_val=0.1, max_val=1000) + check_argument("clip_norm", c, restricted=True) + check_argument("mel_fmin", c, restricted=True, min_val=0.0, max_val=1000) + check_argument("mel_fmax", c, restricted=True, min_val=500.0, allow_none=True) + check_argument("spec_gain", c, restricted=True, min_val=1, max_val=100) + check_argument("do_trim_silence", c, restricted=True) + check_argument("trim_db", c, restricted=True) + + +@dataclass +class BaseDatasetConfig(Coqpit): + """Base config for TTS datasets. + + Args: + name (str): + Dataset name that defines the preprocessor in use. Defaults to None. + + path (str): + Root path to the dataset files. Defaults to None. + + meta_file_train (str): + Name of the dataset meta file. Or a list of speakers to be ignored at training for multi-speaker datasets. + Defaults to None. + + ignored_speakers (List): + List of speakers IDs that are not used at the training. Default None. + + language (str): + Language code of the dataset. If defined, it overrides `phoneme_language`. Defaults to None. + + meta_file_val (str): + Name of the dataset meta file that defines the instances used at validation. + + meta_file_attn_mask (str): + Path to the file that lists the attention mask files used with models that require attention masks to + train the duration predictor. + """ + + name: str = "" + path: str = "" + meta_file_train: str = "" + ignored_speakers: List[str] = None + language: str = "" + meta_file_val: str = "" + meta_file_attn_mask: str = "" + + def check_values( + self, + ): + """Check config fields""" + c = asdict(self) + check_argument("name", c, restricted=True) + check_argument("path", c, restricted=True) + check_argument("meta_file_train", c, restricted=True) + check_argument("meta_file_val", c, restricted=False) + check_argument("meta_file_attn_mask", c, restricted=False) + + +@dataclass +class BaseTrainingConfig(TrainerConfig): + """Base config to define the basic ๐ŸธTTS training parameters that are shared + among all the models. It is based on ```Trainer.TrainingConfig```. + + Args: + model (str): + Name of the model that is used in the training. + + num_loader_workers (int): + Number of workers for training time dataloader. + + num_eval_loader_workers (int): + Number of workers for evaluation time dataloader. + """ + + model: str = None + # dataloading + num_loader_workers: int = 0 + num_eval_loader_workers: int = 0 + use_noise_augment: bool = False diff --git a/Indic-TTS/TTS/TTS/encoder/README.md b/Indic-TTS/TTS/TTS/encoder/README.md new file mode 100644 index 0000000000000000000000000000000000000000..b38b20052b707b0358068bc0ce58bc300a149def --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/README.md @@ -0,0 +1,18 @@ +### Speaker Encoder + +This is an implementation of https://arxiv.org/abs/1710.10467. This model can be used for voice and speaker embedding. + +With the code here you can generate d-vectors for both multi-speaker and single-speaker TTS datasets, then visualise and explore them along with the associated audio files in an interactive chart. + +Below is an example showing embedding results of various speakers. You can generate the same plot with the provided notebook as demonstrated in [this video](https://youtu.be/KW3oO7JVa7Q). + +![](umap.png) + +Download a pretrained model from [Released Models](https://github.com/mozilla/TTS/wiki/Released-Models) page. + +To run the code, you need to follow the same flow as in TTS. + +- Define 'config.json' for your needs. Note that, audio parameters should match your TTS model. +- Example training call ```python speaker_encoder/train.py --config_path speaker_encoder/config.json --data_path ~/Data/Libri-TTS/train-clean-360``` +- Generate embedding vectors ```python speaker_encoder/compute_embeddings.py --use_cuda true /model/path/best_model.pth model/config/path/config.json dataset/path/ output_path``` . This code parses all .wav files at the given dataset path and generates the same folder structure under the output path with the generated embedding files. +- Watch training on Tensorboard as in TTS diff --git a/Indic-TTS/TTS/TTS/encoder/__init__.py b/Indic-TTS/TTS/TTS/encoder/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/encoder/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/encoder/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7f1bd2ee0246c9fb777ef5ab6eedf0fe981b8bbe Binary files /dev/null and b/Indic-TTS/TTS/TTS/encoder/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/encoder/__pycache__/losses.cpython-37.pyc b/Indic-TTS/TTS/TTS/encoder/__pycache__/losses.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a29dad551625d09cb68ebd7db58024db3ecbdaca Binary files /dev/null and b/Indic-TTS/TTS/TTS/encoder/__pycache__/losses.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/encoder/configs/base_encoder_config.py b/Indic-TTS/TTS/TTS/encoder/configs/base_encoder_config.py new file mode 100644 index 0000000000000000000000000000000000000000..ebbaa0457bb55aef70d54dd36fd9b2b7f7c702bb --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/configs/base_encoder_config.py @@ -0,0 +1,61 @@ +from dataclasses import asdict, dataclass, field +from typing import Dict, List + +from coqpit import MISSING + +from TTS.config.shared_configs import BaseAudioConfig, BaseDatasetConfig, BaseTrainingConfig + + +@dataclass +class BaseEncoderConfig(BaseTrainingConfig): + """Defines parameters for a Generic Encoder model.""" + + model: str = None + audio: BaseAudioConfig = field(default_factory=BaseAudioConfig) + datasets: List[BaseDatasetConfig] = field(default_factory=lambda: [BaseDatasetConfig()]) + # model params + model_params: Dict = field( + default_factory=lambda: { + "model_name": "lstm", + "input_dim": 80, + "proj_dim": 256, + "lstm_dim": 768, + "num_lstm_layers": 3, + "use_lstm_with_projection": True, + } + ) + + audio_augmentation: Dict = field(default_factory=lambda: {}) + + # training params + epochs: int = 10000 + loss: str = "angleproto" + grad_clip: float = 3.0 + lr: float = 0.0001 + optimizer: str = "radam" + optimizer_params: Dict = field(default_factory=lambda: {"betas": [0.9, 0.999], "weight_decay": 0}) + lr_decay: bool = False + warmup_steps: int = 4000 + + # logging params + tb_model_param_stats: bool = False + steps_plot_stats: int = 10 + save_step: int = 1000 + print_step: int = 20 + run_eval: bool = False + + # data loader + num_classes_in_batch: int = MISSING + num_utter_per_class: int = MISSING + eval_num_classes_in_batch: int = None + eval_num_utter_per_class: int = None + + num_loader_workers: int = MISSING + voice_len: float = 1.6 + + def check_values(self): + super().check_values() + c = asdict(self) + assert ( + c["model_params"]["input_dim"] == self.audio.num_mels + ), " [!] model input dimendion must be equal to melspectrogram dimension." diff --git a/Indic-TTS/TTS/TTS/encoder/configs/emotion_encoder_config.py b/Indic-TTS/TTS/TTS/encoder/configs/emotion_encoder_config.py new file mode 100644 index 0000000000000000000000000000000000000000..5eda2671be980abce4a0506a075387b601a1596c --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/configs/emotion_encoder_config.py @@ -0,0 +1,12 @@ +from dataclasses import asdict, dataclass + +from TTS.encoder.configs.base_encoder_config import BaseEncoderConfig + + +@dataclass +class EmotionEncoderConfig(BaseEncoderConfig): + """Defines parameters for Emotion Encoder model.""" + + model: str = "emotion_encoder" + map_classid_to_classname: dict = None + class_name_key: str = "emotion_name" diff --git a/Indic-TTS/TTS/TTS/encoder/configs/speaker_encoder_config.py b/Indic-TTS/TTS/TTS/encoder/configs/speaker_encoder_config.py new file mode 100644 index 0000000000000000000000000000000000000000..6dceb00277ba68efe128936ff7f9456338f9753f --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/configs/speaker_encoder_config.py @@ -0,0 +1,11 @@ +from dataclasses import asdict, dataclass + +from TTS.encoder.configs.base_encoder_config import BaseEncoderConfig + + +@dataclass +class SpeakerEncoderConfig(BaseEncoderConfig): + """Defines parameters for Speaker Encoder model.""" + + model: str = "speaker_encoder" + class_name_key: str = "speaker_name" diff --git a/Indic-TTS/TTS/TTS/encoder/dataset.py b/Indic-TTS/TTS/TTS/encoder/dataset.py new file mode 100644 index 0000000000000000000000000000000000000000..582b1fe9ca35cb9afbc20b8f72b6173282201272 --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/dataset.py @@ -0,0 +1,147 @@ +import random + +import torch +from torch.utils.data import Dataset + +from TTS.encoder.utils.generic_utils import AugmentWAV + + +class EncoderDataset(Dataset): + def __init__( + self, + config, + ap, + meta_data, + voice_len=1.6, + num_classes_in_batch=64, + num_utter_per_class=10, + verbose=False, + augmentation_config=None, + use_torch_spec=None, + ): + """ + Args: + ap (TTS.tts.utils.AudioProcessor): audio processor object. + meta_data (list): list of dataset instances. + seq_len (int): voice segment length in seconds. + verbose (bool): print diagnostic information. + """ + super().__init__() + self.config = config + self.items = meta_data + self.sample_rate = ap.sample_rate + self.seq_len = int(voice_len * self.sample_rate) + self.num_utter_per_class = num_utter_per_class + self.ap = ap + self.verbose = verbose + self.use_torch_spec = use_torch_spec + self.classes, self.items = self.__parse_items() + + self.classname_to_classid = {key: i for i, key in enumerate(self.classes)} + + # Data Augmentation + self.augmentator = None + self.gaussian_augmentation_config = None + if augmentation_config: + self.data_augmentation_p = augmentation_config["p"] + if self.data_augmentation_p and ("additive" in augmentation_config or "rir" in augmentation_config): + self.augmentator = AugmentWAV(ap, augmentation_config) + + if "gaussian" in augmentation_config.keys(): + self.gaussian_augmentation_config = augmentation_config["gaussian"] + + if self.verbose: + print("\n > DataLoader initialization") + print(f" | > Classes per Batch: {num_classes_in_batch}") + print(f" | > Number of instances : {len(self.items)}") + print(f" | > Sequence length: {self.seq_len}") + print(f" | > Num Classes: {len(self.classes)}") + print(f" | > Classes: {self.classes}") + + def load_wav(self, filename): + audio = self.ap.load_wav(filename, sr=self.ap.sample_rate) + return audio + + def __parse_items(self): + class_to_utters = {} + for item in self.items: + path_ = item["audio_file"] + class_name = item[self.config.class_name_key] + if class_name in class_to_utters.keys(): + class_to_utters[class_name].append(path_) + else: + class_to_utters[class_name] = [ + path_, + ] + + # skip classes with number of samples >= self.num_utter_per_class + class_to_utters = {k: v for (k, v) in class_to_utters.items() if len(v) >= self.num_utter_per_class} + + classes = list(class_to_utters.keys()) + classes.sort() + + new_items = [] + for item in self.items: + path_ = item["audio_file"] + class_name = item["emotion_name"] if self.config.model == "emotion_encoder" else item["speaker_name"] + # ignore filtered classes + if class_name not in classes: + continue + # ignore small audios + if self.load_wav(path_).shape[0] - self.seq_len <= 0: + continue + + new_items.append({"wav_file_path": path_, "class_name": class_name}) + + return classes, new_items + + def __len__(self): + return len(self.items) + + def get_num_classes(self): + return len(self.classes) + + def get_class_list(self): + return self.classes + + def set_classes(self, classes): + self.classes = classes + self.classname_to_classid = {key: i for i, key in enumerate(self.classes)} + + def get_map_classid_to_classname(self): + return dict((c_id, c_n) for c_n, c_id in self.classname_to_classid.items()) + + def __getitem__(self, idx): + return self.items[idx] + + def collate_fn(self, batch): + # get the batch class_ids + labels = [] + feats = [] + for item in batch: + utter_path = item["wav_file_path"] + class_name = item["class_name"] + + # get classid + class_id = self.classname_to_classid[class_name] + # load wav file + wav = self.load_wav(utter_path) + offset = random.randint(0, wav.shape[0] - self.seq_len) + wav = wav[offset : offset + self.seq_len] + + if self.augmentator is not None and self.data_augmentation_p: + if random.random() < self.data_augmentation_p: + wav = self.augmentator.apply_one(wav) + + if not self.use_torch_spec: + mel = self.ap.melspectrogram(wav) + feats.append(torch.FloatTensor(mel)) + else: + feats.append(torch.FloatTensor(wav)) + + labels.append(class_id) + + feats = torch.stack(feats) + labels = torch.LongTensor(labels) + + return feats, labels diff --git a/Indic-TTS/TTS/TTS/encoder/losses.py b/Indic-TTS/TTS/TTS/encoder/losses.py new file mode 100644 index 0000000000000000000000000000000000000000..5b5aa0fc48fe00aeedeff28ba48ed2af498ce582 --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/losses.py @@ -0,0 +1,226 @@ +import torch +import torch.nn.functional as F +from torch import nn + + +# adapted from https://github.com/cvqluu/GE2E-Loss +class GE2ELoss(nn.Module): + def __init__(self, init_w=10.0, init_b=-5.0, loss_method="softmax"): + """ + Implementation of the Generalized End-to-End loss defined in https://arxiv.org/abs/1710.10467 [1] + Accepts an input of size (N, M, D) + where N is the number of speakers in the batch, + M is the number of utterances per speaker, + and D is the dimensionality of the embedding vector (e.g. d-vector) + Args: + - init_w (float): defines the initial value of w in Equation (5) of [1] + - init_b (float): definies the initial value of b in Equation (5) of [1] + """ + super().__init__() + # pylint: disable=E1102 + self.w = nn.Parameter(torch.tensor(init_w)) + # pylint: disable=E1102 + self.b = nn.Parameter(torch.tensor(init_b)) + self.loss_method = loss_method + + print(" > Initialized Generalized End-to-End loss") + + assert self.loss_method in ["softmax", "contrast"] + + if self.loss_method == "softmax": + self.embed_loss = self.embed_loss_softmax + if self.loss_method == "contrast": + self.embed_loss = self.embed_loss_contrast + + # pylint: disable=R0201 + def calc_new_centroids(self, dvecs, centroids, spkr, utt): + """ + Calculates the new centroids excluding the reference utterance + """ + excl = torch.cat((dvecs[spkr, :utt], dvecs[spkr, utt + 1 :])) + excl = torch.mean(excl, 0) + new_centroids = [] + for i, centroid in enumerate(centroids): + if i == spkr: + new_centroids.append(excl) + else: + new_centroids.append(centroid) + return torch.stack(new_centroids) + + def calc_cosine_sim(self, dvecs, centroids): + """ + Make the cosine similarity matrix with dims (N,M,N) + """ + cos_sim_matrix = [] + for spkr_idx, speaker in enumerate(dvecs): + cs_row = [] + for utt_idx, utterance in enumerate(speaker): + new_centroids = self.calc_new_centroids(dvecs, centroids, spkr_idx, utt_idx) + # vector based cosine similarity for speed + cs_row.append( + torch.clamp( + torch.mm( + utterance.unsqueeze(1).transpose(0, 1), + new_centroids.transpose(0, 1), + ) + / (torch.norm(utterance) * torch.norm(new_centroids, dim=1)), + 1e-6, + ) + ) + cs_row = torch.cat(cs_row, dim=0) + cos_sim_matrix.append(cs_row) + return torch.stack(cos_sim_matrix) + + # pylint: disable=R0201 + def embed_loss_softmax(self, dvecs, cos_sim_matrix): + """ + Calculates the loss on each embedding $L(e_{ji})$ by taking softmax + """ + N, M, _ = dvecs.shape + L = [] + for j in range(N): + L_row = [] + for i in range(M): + L_row.append(-F.log_softmax(cos_sim_matrix[j, i], 0)[j]) + L_row = torch.stack(L_row) + L.append(L_row) + return torch.stack(L) + + # pylint: disable=R0201 + def embed_loss_contrast(self, dvecs, cos_sim_matrix): + """ + Calculates the loss on each embedding $L(e_{ji})$ by contrast loss with closest centroid + """ + N, M, _ = dvecs.shape + L = [] + for j in range(N): + L_row = [] + for i in range(M): + centroids_sigmoids = torch.sigmoid(cos_sim_matrix[j, i]) + excl_centroids_sigmoids = torch.cat((centroids_sigmoids[:j], centroids_sigmoids[j + 1 :])) + L_row.append(1.0 - torch.sigmoid(cos_sim_matrix[j, i, j]) + torch.max(excl_centroids_sigmoids)) + L_row = torch.stack(L_row) + L.append(L_row) + return torch.stack(L) + + def forward(self, x, _label=None): + """ + Calculates the GE2E loss for an input of dimensions (num_speakers, num_utts_per_speaker, dvec_feats) + """ + + assert x.size()[1] >= 2 + + centroids = torch.mean(x, 1) + cos_sim_matrix = self.calc_cosine_sim(x, centroids) + torch.clamp(self.w, 1e-6) + cos_sim_matrix = self.w * cos_sim_matrix + self.b + L = self.embed_loss(x, cos_sim_matrix) + return L.mean() + + +# adapted from https://github.com/clovaai/voxceleb_trainer/blob/master/loss/angleproto.py +class AngleProtoLoss(nn.Module): + """ + Implementation of the Angular Prototypical loss defined in https://arxiv.org/abs/2003.11982 + Accepts an input of size (N, M, D) + where N is the number of speakers in the batch, + M is the number of utterances per speaker, + and D is the dimensionality of the embedding vector + Args: + - init_w (float): defines the initial value of w + - init_b (float): definies the initial value of b + """ + + def __init__(self, init_w=10.0, init_b=-5.0): + super().__init__() + # pylint: disable=E1102 + self.w = nn.Parameter(torch.tensor(init_w)) + # pylint: disable=E1102 + self.b = nn.Parameter(torch.tensor(init_b)) + self.criterion = torch.nn.CrossEntropyLoss() + + print(" > Initialized Angular Prototypical loss") + + def forward(self, x, _label=None): + """ + Calculates the AngleProto loss for an input of dimensions (num_speakers, num_utts_per_speaker, dvec_feats) + """ + + assert x.size()[1] >= 2 + + out_anchor = torch.mean(x[:, 1:, :], 1) + out_positive = x[:, 0, :] + num_speakers = out_anchor.size()[0] + + cos_sim_matrix = F.cosine_similarity( + out_positive.unsqueeze(-1).expand(-1, -1, num_speakers), + out_anchor.unsqueeze(-1).expand(-1, -1, num_speakers).transpose(0, 2), + ) + torch.clamp(self.w, 1e-6) + cos_sim_matrix = cos_sim_matrix * self.w + self.b + label = torch.arange(num_speakers).to(cos_sim_matrix.device) + L = self.criterion(cos_sim_matrix, label) + return L + + +class SoftmaxLoss(nn.Module): + """ + Implementation of the Softmax loss as defined in https://arxiv.org/abs/2003.11982 + Args: + - embedding_dim (float): speaker embedding dim + - n_speakers (float): number of speakers + """ + + def __init__(self, embedding_dim, n_speakers): + super().__init__() + + self.criterion = torch.nn.CrossEntropyLoss() + self.fc = nn.Linear(embedding_dim, n_speakers) + + print("Initialised Softmax Loss") + + def forward(self, x, label=None): + # reshape for compatibility + x = x.reshape(-1, x.size()[-1]) + label = label.reshape(-1) + + x = self.fc(x) + L = self.criterion(x, label) + + return L + + def inference(self, embedding): + x = self.fc(embedding) + activations = torch.nn.functional.softmax(x, dim=1).squeeze(0) + class_id = torch.argmax(activations) + return class_id + + +class SoftmaxAngleProtoLoss(nn.Module): + """ + Implementation of the Softmax AnglePrototypical loss as defined in https://arxiv.org/abs/2009.14153 + Args: + - embedding_dim (float): speaker embedding dim + - n_speakers (float): number of speakers + - init_w (float): defines the initial value of w + - init_b (float): definies the initial value of b + """ + + def __init__(self, embedding_dim, n_speakers, init_w=10.0, init_b=-5.0): + super().__init__() + + self.softmax = SoftmaxLoss(embedding_dim, n_speakers) + self.angleproto = AngleProtoLoss(init_w, init_b) + + print("Initialised SoftmaxAnglePrototypical Loss") + + def forward(self, x, label=None): + """ + Calculates the SoftmaxAnglePrototypical loss for an input of dimensions (num_speakers, num_utts_per_speaker, dvec_feats) + """ + + Lp = self.angleproto(x) + + Ls = self.softmax(x, label) + + return Ls + Lp diff --git a/Indic-TTS/TTS/TTS/encoder/models/__pycache__/base_encoder.cpython-37.pyc b/Indic-TTS/TTS/TTS/encoder/models/__pycache__/base_encoder.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a28a0d6606b357d9340559008bacc36daf241b06 Binary files /dev/null and b/Indic-TTS/TTS/TTS/encoder/models/__pycache__/base_encoder.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/encoder/models/__pycache__/lstm.cpython-37.pyc b/Indic-TTS/TTS/TTS/encoder/models/__pycache__/lstm.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..241ddeab7ef20e5fd326b235490dcfb9b8987bd3 Binary files /dev/null and b/Indic-TTS/TTS/TTS/encoder/models/__pycache__/lstm.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/encoder/models/__pycache__/resnet.cpython-37.pyc b/Indic-TTS/TTS/TTS/encoder/models/__pycache__/resnet.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..06609d968b8f6cf2d69d129597a62884468a230a Binary files /dev/null and b/Indic-TTS/TTS/TTS/encoder/models/__pycache__/resnet.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/encoder/models/base_encoder.py b/Indic-TTS/TTS/TTS/encoder/models/base_encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..ac7d7dd5a64cb792525e1dbc8aaaf900eaf63432 --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/models/base_encoder.py @@ -0,0 +1,154 @@ +import numpy as np +import torch +import torchaudio +from coqpit import Coqpit +from torch import nn + +from TTS.encoder.losses import AngleProtoLoss, GE2ELoss, SoftmaxAngleProtoLoss +from TTS.utils.generic_utils import set_init_dict +from TTS.utils.io import load_fsspec + + +class PreEmphasis(nn.Module): + def __init__(self, coefficient=0.97): + super().__init__() + self.coefficient = coefficient + self.register_buffer("filter", torch.FloatTensor([-self.coefficient, 1.0]).unsqueeze(0).unsqueeze(0)) + + def forward(self, x): + assert len(x.size()) == 2 + + x = torch.nn.functional.pad(x.unsqueeze(1), (1, 0), "reflect") + return torch.nn.functional.conv1d(x, self.filter).squeeze(1) + + +class BaseEncoder(nn.Module): + """Base `encoder` class. Every new `encoder` model must inherit this. + + It defines common `encoder` specific functions. + """ + + # pylint: disable=W0102 + def __init__(self): + super(BaseEncoder, self).__init__() + + def get_torch_mel_spectrogram_class(self, audio_config): + return torch.nn.Sequential( + PreEmphasis(audio_config["preemphasis"]), + # TorchSTFT( + # n_fft=audio_config["fft_size"], + # hop_length=audio_config["hop_length"], + # win_length=audio_config["win_length"], + # sample_rate=audio_config["sample_rate"], + # window="hamming_window", + # mel_fmin=0.0, + # mel_fmax=None, + # use_htk=True, + # do_amp_to_db=False, + # n_mels=audio_config["num_mels"], + # power=2.0, + # use_mel=True, + # mel_norm=None, + # ) + torchaudio.transforms.MelSpectrogram( + sample_rate=audio_config["sample_rate"], + n_fft=audio_config["fft_size"], + win_length=audio_config["win_length"], + hop_length=audio_config["hop_length"], + window_fn=torch.hamming_window, + n_mels=audio_config["num_mels"], + ), + ) + + @torch.no_grad() + def inference(self, x, l2_norm=True): + return self.forward(x, l2_norm) + + @torch.no_grad() + def compute_embedding(self, x, num_frames=250, num_eval=10, return_mean=True, l2_norm=True): + """ + Generate embeddings for a batch of utterances + x: 1xTxD + """ + # map to the waveform size + if self.use_torch_spec: + num_frames = num_frames * self.audio_config["hop_length"] + + max_len = x.shape[1] + + if max_len < num_frames: + num_frames = max_len + + offsets = np.linspace(0, max_len - num_frames, num=num_eval) + + frames_batch = [] + for offset in offsets: + offset = int(offset) + end_offset = int(offset + num_frames) + frames = x[:, offset:end_offset] + frames_batch.append(frames) + + frames_batch = torch.cat(frames_batch, dim=0) + embeddings = self.inference(frames_batch, l2_norm=l2_norm) + + if return_mean: + embeddings = torch.mean(embeddings, dim=0, keepdim=True) + return embeddings + + def get_criterion(self, c: Coqpit, num_classes=None): + if c.loss == "ge2e": + criterion = GE2ELoss(loss_method="softmax") + elif c.loss == "angleproto": + criterion = AngleProtoLoss() + elif c.loss == "softmaxproto": + criterion = SoftmaxAngleProtoLoss(c.model_params["proj_dim"], num_classes) + else: + raise Exception("The %s not is a loss supported" % c.loss) + return criterion + + def load_checkpoint( + self, config: Coqpit, checkpoint_path: str, eval: bool = False, use_cuda: bool = False, criterion=None + ): + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + try: + self.load_state_dict(state["model"]) + except (KeyError, RuntimeError) as error: + # If eval raise the error + if eval: + raise error + + print(" > Partial model initialization.") + model_dict = self.state_dict() + model_dict = set_init_dict(model_dict, state["model"], c) + self.load_state_dict(model_dict) + del model_dict + + # load the criterion for restore_path + if criterion is not None and "criterion" in state: + try: + criterion.load_state_dict(state["criterion"]) + except (KeyError, RuntimeError) as error: + print(" > Criterion load ignored because of:", error) + + # instance and load the criterion for the encoder classifier in inference time + if ( + eval + and criterion is None + and "criterion" in state + and getattr(config, "map_classid_to_classname", None) is not None + ): + criterion = self.get_criterion(config, len(config.map_classid_to_classname)) + criterion.load_state_dict(state["criterion"]) + + if use_cuda: + self.cuda() + if criterion is not None: + criterion = criterion.cuda() + + if eval: + self.eval() + assert not self.training + + if not eval: + return criterion, state["step"] + return criterion diff --git a/Indic-TTS/TTS/TTS/encoder/models/lstm.py b/Indic-TTS/TTS/TTS/encoder/models/lstm.py new file mode 100644 index 0000000000000000000000000000000000000000..51852b5b820d181824b0db1a205cd5d7bd4fb20d --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/models/lstm.py @@ -0,0 +1,99 @@ +import torch +from torch import nn + +from TTS.encoder.models.base_encoder import BaseEncoder + + +class LSTMWithProjection(nn.Module): + def __init__(self, input_size, hidden_size, proj_size): + super().__init__() + self.input_size = input_size + self.hidden_size = hidden_size + self.proj_size = proj_size + self.lstm = nn.LSTM(input_size, hidden_size, batch_first=True) + self.linear = nn.Linear(hidden_size, proj_size, bias=False) + + def forward(self, x): + self.lstm.flatten_parameters() + o, (_, _) = self.lstm(x) + return self.linear(o) + + +class LSTMWithoutProjection(nn.Module): + def __init__(self, input_dim, lstm_dim, proj_dim, num_lstm_layers): + super().__init__() + self.lstm = nn.LSTM(input_size=input_dim, hidden_size=lstm_dim, num_layers=num_lstm_layers, batch_first=True) + self.linear = nn.Linear(lstm_dim, proj_dim, bias=True) + self.relu = nn.ReLU() + + def forward(self, x): + _, (hidden, _) = self.lstm(x) + return self.relu(self.linear(hidden[-1])) + + +class LSTMSpeakerEncoder(BaseEncoder): + def __init__( + self, + input_dim, + proj_dim=256, + lstm_dim=768, + num_lstm_layers=3, + use_lstm_with_projection=True, + use_torch_spec=False, + audio_config=None, + ): + super().__init__() + self.use_lstm_with_projection = use_lstm_with_projection + self.use_torch_spec = use_torch_spec + self.audio_config = audio_config + self.proj_dim = proj_dim + + layers = [] + # choise LSTM layer + if use_lstm_with_projection: + layers.append(LSTMWithProjection(input_dim, lstm_dim, proj_dim)) + for _ in range(num_lstm_layers - 1): + layers.append(LSTMWithProjection(proj_dim, lstm_dim, proj_dim)) + self.layers = nn.Sequential(*layers) + else: + self.layers = LSTMWithoutProjection(input_dim, lstm_dim, proj_dim, num_lstm_layers) + + self.instancenorm = nn.InstanceNorm1d(input_dim) + + if self.use_torch_spec: + self.torch_spec = self.get_torch_mel_spectrogram_class(audio_config) + else: + self.torch_spec = None + + self._init_layers() + + def _init_layers(self): + for name, param in self.layers.named_parameters(): + if "bias" in name: + nn.init.constant_(param, 0.0) + elif "weight" in name: + nn.init.xavier_normal_(param) + + def forward(self, x, l2_norm=True): + """Forward pass of the model. + + Args: + x (Tensor): Raw waveform signal or spectrogram frames. If input is a waveform, `torch_spec` must be `True` + to compute the spectrogram on-the-fly. + l2_norm (bool): Whether to L2-normalize the outputs. + + Shapes: + - x: :math:`(N, 1, T_{in})` or :math:`(N, D_{spec}, T_{in})` + """ + with torch.no_grad(): + with torch.cuda.amp.autocast(enabled=False): + if self.use_torch_spec: + x.squeeze_(1) + x = self.torch_spec(x) + x = self.instancenorm(x).transpose(1, 2) + d = self.layers(x) + if self.use_lstm_with_projection: + d = d[:, -1] + if l2_norm: + d = torch.nn.functional.normalize(d, p=2, dim=1) + return d diff --git a/Indic-TTS/TTS/TTS/encoder/models/resnet.py b/Indic-TTS/TTS/TTS/encoder/models/resnet.py new file mode 100644 index 0000000000000000000000000000000000000000..84e9967f84c32472d757f003728757e43072f77d --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/models/resnet.py @@ -0,0 +1,200 @@ +import torch +from torch import nn + +# from TTS.utils.audio import TorchSTFT +from TTS.encoder.models.base_encoder import BaseEncoder + + +class SELayer(nn.Module): + def __init__(self, channel, reduction=8): + super(SELayer, self).__init__() + self.avg_pool = nn.AdaptiveAvgPool2d(1) + self.fc = nn.Sequential( + nn.Linear(channel, channel // reduction), + nn.ReLU(inplace=True), + nn.Linear(channel // reduction, channel), + nn.Sigmoid(), + ) + + def forward(self, x): + b, c, _, _ = x.size() + y = self.avg_pool(x).view(b, c) + y = self.fc(y).view(b, c, 1, 1) + return x * y + + +class SEBasicBlock(nn.Module): + expansion = 1 + + def __init__(self, inplanes, planes, stride=1, downsample=None, reduction=8): + super(SEBasicBlock, self).__init__() + self.conv1 = nn.Conv2d(inplanes, planes, kernel_size=3, stride=stride, padding=1, bias=False) + self.bn1 = nn.BatchNorm2d(planes) + self.conv2 = nn.Conv2d(planes, planes, kernel_size=3, padding=1, bias=False) + self.bn2 = nn.BatchNorm2d(planes) + self.relu = nn.ReLU(inplace=True) + self.se = SELayer(planes, reduction) + self.downsample = downsample + self.stride = stride + + def forward(self, x): + residual = x + + out = self.conv1(x) + out = self.relu(out) + out = self.bn1(out) + + out = self.conv2(out) + out = self.bn2(out) + out = self.se(out) + + if self.downsample is not None: + residual = self.downsample(x) + + out += residual + out = self.relu(out) + return out + + +class ResNetSpeakerEncoder(BaseEncoder): + """Implementation of the model H/ASP without batch normalization in speaker embedding. This model was proposed in: https://arxiv.org/abs/2009.14153 + Adapted from: https://github.com/clovaai/voxceleb_trainer + """ + + # pylint: disable=W0102 + def __init__( + self, + input_dim=64, + proj_dim=512, + layers=[3, 4, 6, 3], + num_filters=[32, 64, 128, 256], + encoder_type="ASP", + log_input=False, + use_torch_spec=False, + audio_config=None, + ): + super(ResNetSpeakerEncoder, self).__init__() + + self.encoder_type = encoder_type + self.input_dim = input_dim + self.log_input = log_input + self.use_torch_spec = use_torch_spec + self.audio_config = audio_config + self.proj_dim = proj_dim + + self.conv1 = nn.Conv2d(1, num_filters[0], kernel_size=3, stride=1, padding=1) + self.relu = nn.ReLU(inplace=True) + self.bn1 = nn.BatchNorm2d(num_filters[0]) + + self.inplanes = num_filters[0] + self.layer1 = self.create_layer(SEBasicBlock, num_filters[0], layers[0]) + self.layer2 = self.create_layer(SEBasicBlock, num_filters[1], layers[1], stride=(2, 2)) + self.layer3 = self.create_layer(SEBasicBlock, num_filters[2], layers[2], stride=(2, 2)) + self.layer4 = self.create_layer(SEBasicBlock, num_filters[3], layers[3], stride=(2, 2)) + + self.instancenorm = nn.InstanceNorm1d(input_dim) + + if self.use_torch_spec: + self.torch_spec = self.get_torch_mel_spectrogram_class(audio_config) + else: + self.torch_spec = None + + outmap_size = int(self.input_dim / 8) + + self.attention = nn.Sequential( + nn.Conv1d(num_filters[3] * outmap_size, 128, kernel_size=1), + nn.ReLU(), + nn.BatchNorm1d(128), + nn.Conv1d(128, num_filters[3] * outmap_size, kernel_size=1), + nn.Softmax(dim=2), + ) + + if self.encoder_type == "SAP": + out_dim = num_filters[3] * outmap_size + elif self.encoder_type == "ASP": + out_dim = num_filters[3] * outmap_size * 2 + else: + raise ValueError("Undefined encoder") + + self.fc = nn.Linear(out_dim, proj_dim) + + self._init_layers() + + def _init_layers(self): + for m in self.modules(): + if isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_(m.weight, mode="fan_out", nonlinearity="relu") + elif isinstance(m, nn.BatchNorm2d): + nn.init.constant_(m.weight, 1) + nn.init.constant_(m.bias, 0) + + def create_layer(self, block, planes, blocks, stride=1): + downsample = None + if stride != 1 or self.inplanes != planes * block.expansion: + downsample = nn.Sequential( + nn.Conv2d(self.inplanes, planes * block.expansion, kernel_size=1, stride=stride, bias=False), + nn.BatchNorm2d(planes * block.expansion), + ) + + layers = [] + layers.append(block(self.inplanes, planes, stride, downsample)) + self.inplanes = planes * block.expansion + for _ in range(1, blocks): + layers.append(block(self.inplanes, planes)) + + return nn.Sequential(*layers) + + # pylint: disable=R0201 + def new_parameter(self, *size): + out = nn.Parameter(torch.FloatTensor(*size)) + nn.init.xavier_normal_(out) + return out + + def forward(self, x, l2_norm=False): + """Forward pass of the model. + + Args: + x (Tensor): Raw waveform signal or spectrogram frames. If input is a waveform, `torch_spec` must be `True` + to compute the spectrogram on-the-fly. + l2_norm (bool): Whether to L2-normalize the outputs. + + Shapes: + - x: :math:`(N, 1, T_{in})` or :math:`(N, D_{spec}, T_{in})` + """ + with torch.no_grad(): + with torch.cuda.amp.autocast(enabled=False): + x.squeeze_(1) + # if you torch spec compute it otherwise use the mel spec computed by the AP + if self.use_torch_spec: + x = self.torch_spec(x) + + if self.log_input: + x = (x + 1e-6).log() + x = self.instancenorm(x).unsqueeze(1) + + x = self.conv1(x) + x = self.relu(x) + x = self.bn1(x) + + x = self.layer1(x) + x = self.layer2(x) + x = self.layer3(x) + x = self.layer4(x) + + x = x.reshape(x.size()[0], -1, x.size()[-1]) + + w = self.attention(x) + + if self.encoder_type == "SAP": + x = torch.sum(x * w, dim=2) + elif self.encoder_type == "ASP": + mu = torch.sum(x * w, dim=2) + sg = torch.sqrt((torch.sum((x**2) * w, dim=2) - mu**2).clamp(min=1e-5)) + x = torch.cat((mu, sg), 1) + + x = x.view(x.size()[0], -1) + x = self.fc(x) + + if l2_norm: + x = torch.nn.functional.normalize(x, p=2, dim=1) + return x diff --git a/Indic-TTS/TTS/TTS/encoder/requirements.txt b/Indic-TTS/TTS/TTS/encoder/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..a486cc45ddb44591bd03c9c0df294fbe98c13884 --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/requirements.txt @@ -0,0 +1,2 @@ +umap-learn +numpy>=1.17.0 diff --git a/Indic-TTS/TTS/TTS/encoder/utils/__init__.py b/Indic-TTS/TTS/TTS/encoder/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/encoder/utils/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/encoder/utils/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fa2ed0cd1756dd1153cff52f14b59b333369fa37 Binary files /dev/null and b/Indic-TTS/TTS/TTS/encoder/utils/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/encoder/utils/__pycache__/generic_utils.cpython-37.pyc b/Indic-TTS/TTS/TTS/encoder/utils/__pycache__/generic_utils.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..910e6bbffefc4aa40a0aa9ea8f3513fa6cfe7fa0 Binary files /dev/null and b/Indic-TTS/TTS/TTS/encoder/utils/__pycache__/generic_utils.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/encoder/utils/generic_utils.py b/Indic-TTS/TTS/TTS/encoder/utils/generic_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..91a896f60d272dc25cc6cfe62cf91c66b2f28e00 --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/utils/generic_utils.py @@ -0,0 +1,184 @@ +import datetime +import glob +import os +import random +import re + +import numpy as np +from scipy import signal + +from TTS.encoder.models.lstm import LSTMSpeakerEncoder +from TTS.encoder.models.resnet import ResNetSpeakerEncoder +from TTS.utils.io import save_fsspec + + +class AugmentWAV(object): + def __init__(self, ap, augmentation_config): + + self.ap = ap + self.use_additive_noise = False + + if "additive" in augmentation_config.keys(): + self.additive_noise_config = augmentation_config["additive"] + additive_path = self.additive_noise_config["sounds_path"] + if additive_path: + self.use_additive_noise = True + # get noise types + self.additive_noise_types = [] + for key in self.additive_noise_config.keys(): + if isinstance(self.additive_noise_config[key], dict): + self.additive_noise_types.append(key) + + additive_files = glob.glob(os.path.join(additive_path, "**/*.wav"), recursive=True) + + self.noise_list = {} + + for wav_file in additive_files: + noise_dir = wav_file.replace(additive_path, "").split(os.sep)[0] + # ignore not listed directories + if noise_dir not in self.additive_noise_types: + continue + if not noise_dir in self.noise_list: + self.noise_list[noise_dir] = [] + self.noise_list[noise_dir].append(wav_file) + + print( + f" | > Using Additive Noise Augmentation: with {len(additive_files)} audios instances from {self.additive_noise_types}" + ) + + self.use_rir = False + + if "rir" in augmentation_config.keys(): + self.rir_config = augmentation_config["rir"] + if self.rir_config["rir_path"]: + self.rir_files = glob.glob(os.path.join(self.rir_config["rir_path"], "**/*.wav"), recursive=True) + self.use_rir = True + + print(f" | > Using RIR Noise Augmentation: with {len(self.rir_files)} audios instances") + + self.create_augmentation_global_list() + + def create_augmentation_global_list(self): + if self.use_additive_noise: + self.global_noise_list = self.additive_noise_types + else: + self.global_noise_list = [] + if self.use_rir: + self.global_noise_list.append("RIR_AUG") + + def additive_noise(self, noise_type, audio): + + clean_db = 10 * np.log10(np.mean(audio**2) + 1e-4) + + noise_list = random.sample( + self.noise_list[noise_type], + random.randint( + self.additive_noise_config[noise_type]["min_num_noises"], + self.additive_noise_config[noise_type]["max_num_noises"], + ), + ) + + audio_len = audio.shape[0] + noises_wav = None + for noise in noise_list: + noiseaudio = self.ap.load_wav(noise, sr=self.ap.sample_rate)[:audio_len] + + if noiseaudio.shape[0] < audio_len: + continue + + noise_snr = random.uniform( + self.additive_noise_config[noise_type]["min_snr_in_db"], + self.additive_noise_config[noise_type]["max_num_noises"], + ) + noise_db = 10 * np.log10(np.mean(noiseaudio**2) + 1e-4) + noise_wav = np.sqrt(10 ** ((clean_db - noise_db - noise_snr) / 10)) * noiseaudio + + if noises_wav is None: + noises_wav = noise_wav + else: + noises_wav += noise_wav + + # if all possible files is less than audio, choose other files + if noises_wav is None: + return self.additive_noise(noise_type, audio) + + return audio + noises_wav + + def reverberate(self, audio): + audio_len = audio.shape[0] + + rir_file = random.choice(self.rir_files) + rir = self.ap.load_wav(rir_file, sr=self.ap.sample_rate) + rir = rir / np.sqrt(np.sum(rir**2)) + return signal.convolve(audio, rir, mode=self.rir_config["conv_mode"])[:audio_len] + + def apply_one(self, audio): + noise_type = random.choice(self.global_noise_list) + if noise_type == "RIR_AUG": + return self.reverberate(audio) + + return self.additive_noise(noise_type, audio) + + +def to_camel(text): + text = text.capitalize() + return re.sub(r"(?!^)_([a-zA-Z])", lambda m: m.group(1).upper(), text) + + +def setup_encoder_model(config: "Coqpit"): + if config.model_params["model_name"].lower() == "lstm": + model = LSTMSpeakerEncoder( + config.model_params["input_dim"], + config.model_params["proj_dim"], + config.model_params["lstm_dim"], + config.model_params["num_lstm_layers"], + use_torch_spec=config.model_params.get("use_torch_spec", False), + audio_config=config.audio, + ) + elif config.model_params["model_name"].lower() == "resnet": + model = ResNetSpeakerEncoder( + input_dim=config.model_params["input_dim"], + proj_dim=config.model_params["proj_dim"], + log_input=config.model_params.get("log_input", False), + use_torch_spec=config.model_params.get("use_torch_spec", False), + audio_config=config.audio, + ) + return model + + +def save_checkpoint(model, optimizer, criterion, model_loss, out_path, current_step, epoch): + checkpoint_path = "checkpoint_{}.pth".format(current_step) + checkpoint_path = os.path.join(out_path, checkpoint_path) + print(" | | > Checkpoint saving : {}".format(checkpoint_path)) + + new_state_dict = model.state_dict() + state = { + "model": new_state_dict, + "optimizer": optimizer.state_dict() if optimizer is not None else None, + "criterion": criterion.state_dict(), + "step": current_step, + "epoch": epoch, + "loss": model_loss, + "date": datetime.date.today().strftime("%B %d, %Y"), + } + save_fsspec(state, checkpoint_path) + + +def save_best_model(model, optimizer, criterion, model_loss, best_loss, out_path, current_step, epoch): + if model_loss < best_loss: + new_state_dict = model.state_dict() + state = { + "model": new_state_dict, + "optimizer": optimizer.state_dict(), + "criterion": criterion.state_dict(), + "step": current_step, + "epoch": epoch, + "loss": model_loss, + "date": datetime.date.today().strftime("%B %d, %Y"), + } + best_loss = model_loss + bestmodel_path = "best_model.pth" + bestmodel_path = os.path.join(out_path, bestmodel_path) + print("\n > BEST MODEL ({0:.5f}) : {1:}".format(model_loss, bestmodel_path)) + save_fsspec(state, bestmodel_path) + return best_loss diff --git a/Indic-TTS/TTS/TTS/encoder/utils/io.py b/Indic-TTS/TTS/TTS/encoder/utils/io.py new file mode 100644 index 0000000000000000000000000000000000000000..d1dad3e24d234cdcb9616fb14bc87919c7e20291 --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/utils/io.py @@ -0,0 +1,38 @@ +import datetime +import os + +from TTS.utils.io import save_fsspec + + +def save_checkpoint(model, optimizer, model_loss, out_path, current_step): + checkpoint_path = "checkpoint_{}.pth".format(current_step) + checkpoint_path = os.path.join(out_path, checkpoint_path) + print(" | | > Checkpoint saving : {}".format(checkpoint_path)) + + new_state_dict = model.state_dict() + state = { + "model": new_state_dict, + "optimizer": optimizer.state_dict() if optimizer is not None else None, + "step": current_step, + "loss": model_loss, + "date": datetime.date.today().strftime("%B %d, %Y"), + } + save_fsspec(state, checkpoint_path) + + +def save_best_model(model, optimizer, model_loss, best_loss, out_path, current_step): + if model_loss < best_loss: + new_state_dict = model.state_dict() + state = { + "model": new_state_dict, + "optimizer": optimizer.state_dict(), + "step": current_step, + "loss": model_loss, + "date": datetime.date.today().strftime("%B %d, %Y"), + } + best_loss = model_loss + bestmodel_path = "best_model.pth" + bestmodel_path = os.path.join(out_path, bestmodel_path) + print("\n > BEST MODEL ({0:.5f}) : {1:}".format(model_loss, bestmodel_path)) + save_fsspec(state, bestmodel_path) + return best_loss diff --git a/Indic-TTS/TTS/TTS/encoder/utils/prepare_voxceleb.py b/Indic-TTS/TTS/TTS/encoder/utils/prepare_voxceleb.py new file mode 100644 index 0000000000000000000000000000000000000000..b93baf9e60f0d5c35a4e86f6746e29f6097174b5 --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/utils/prepare_voxceleb.py @@ -0,0 +1,219 @@ +# coding=utf-8 +# Copyright (C) 2020 ATHENA AUTHORS; Yiping Peng; Ne Luo +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +# Only support eager mode and TF>=2.0.0 +# pylint: disable=no-member, invalid-name, relative-beyond-top-level +# pylint: disable=too-many-locals, too-many-statements, too-many-arguments, too-many-instance-attributes +""" voxceleb 1 & 2 """ + +import hashlib +import os +import subprocess +import sys +import zipfile + +import pandas +import soundfile as sf +from absl import logging + +SUBSETS = { + "vox1_dev_wav": [ + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox1_dev_wav_partaa", + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox1_dev_wav_partab", + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox1_dev_wav_partac", + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox1_dev_wav_partad", + ], + "vox1_test_wav": ["https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox1_test_wav.zip"], + "vox2_dev_aac": [ + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox2_dev_aac_partaa", + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox2_dev_aac_partab", + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox2_dev_aac_partac", + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox2_dev_aac_partad", + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox2_dev_aac_partae", + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox2_dev_aac_partaf", + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox2_dev_aac_partag", + "https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox2_dev_aac_partah", + ], + "vox2_test_aac": ["https://thor.robots.ox.ac.uk/~vgg/data/voxceleb/vox1a/vox2_test_aac.zip"], +} + +MD5SUM = { + "vox1_dev_wav": "ae63e55b951748cc486645f532ba230b", + "vox2_dev_aac": "bbc063c46078a602ca71605645c2a402", + "vox1_test_wav": "185fdc63c3c739954633d50379a3d102", + "vox2_test_aac": "0d2b3ea430a821c33263b5ea37ede312", +} + +USER = {"user": "", "password": ""} + +speaker_id_dict = {} + + +def download_and_extract(directory, subset, urls): + """Download and extract the given split of dataset. + + Args: + directory: the directory where to put the downloaded data. + subset: subset name of the corpus. + urls: the list of urls to download the data file. + """ + os.makedirs(directory, exist_ok=True) + + try: + for url in urls: + zip_filepath = os.path.join(directory, url.split("/")[-1]) + if os.path.exists(zip_filepath): + continue + logging.info("Downloading %s to %s" % (url, zip_filepath)) + subprocess.call( + "wget %s --user %s --password %s -O %s" % (url, USER["user"], USER["password"], zip_filepath), + shell=True, + ) + + statinfo = os.stat(zip_filepath) + logging.info("Successfully downloaded %s, size(bytes): %d" % (url, statinfo.st_size)) + + # concatenate all parts into zip files + if ".zip" not in zip_filepath: + zip_filepath = "_".join(zip_filepath.split("_")[:-1]) + subprocess.call("cat %s* > %s.zip" % (zip_filepath, zip_filepath), shell=True) + zip_filepath += ".zip" + extract_path = zip_filepath.strip(".zip") + + # check zip file md5sum + with open(zip_filepath, "rb") as f_zip: + md5 = hashlib.md5(f_zip.read()).hexdigest() + if md5 != MD5SUM[subset]: + raise ValueError("md5sum of %s mismatch" % zip_filepath) + + with zipfile.ZipFile(zip_filepath, "r") as zfile: + zfile.extractall(directory) + extract_path_ori = os.path.join(directory, zfile.infolist()[0].filename) + subprocess.call("mv %s %s" % (extract_path_ori, extract_path), shell=True) + finally: + # os.remove(zip_filepath) + pass + + +def exec_cmd(cmd): + """Run a command in a subprocess. + Args: + cmd: command line to be executed. + Return: + int, the return code. + """ + try: + retcode = subprocess.call(cmd, shell=True) + if retcode < 0: + logging.info(f"Child was terminated by signal {retcode}") + except OSError as e: + logging.info(f"Execution failed: {e}") + retcode = -999 + return retcode + + +def decode_aac_with_ffmpeg(aac_file, wav_file): + """Decode a given AAC file into WAV using ffmpeg. + Args: + aac_file: file path to input AAC file. + wav_file: file path to output WAV file. + Return: + bool, True if success. + """ + cmd = f"ffmpeg -i {aac_file} {wav_file}" + logging.info(f"Decoding aac file using command line: {cmd}") + ret = exec_cmd(cmd) + if ret != 0: + logging.error(f"Failed to decode aac file with retcode {ret}") + logging.error("Please check your ffmpeg installation.") + return False + return True + + +def convert_audio_and_make_label(input_dir, subset, output_dir, output_file): + """Optionally convert AAC to WAV and make speaker labels. + Args: + input_dir: the directory which holds the input dataset. + subset: the name of the specified subset. e.g. vox1_dev_wav + output_dir: the directory to place the newly generated csv files. + output_file: the name of the newly generated csv file. e.g. vox1_dev_wav.csv + """ + + logging.info("Preprocessing audio and label for subset %s" % subset) + source_dir = os.path.join(input_dir, subset) + + files = [] + # Convert all AAC file into WAV format. At the same time, generate the csv + for root, _, filenames in os.walk(source_dir): + for filename in filenames: + name, ext = os.path.splitext(filename) + if ext.lower() == ".wav": + _, ext2 = os.path.splitext(name) + if ext2: + continue + wav_file = os.path.join(root, filename) + elif ext.lower() == ".m4a": + # Convert AAC to WAV. + aac_file = os.path.join(root, filename) + wav_file = aac_file + ".wav" + if not os.path.exists(wav_file): + if not decode_aac_with_ffmpeg(aac_file, wav_file): + raise RuntimeError("Audio decoding failed.") + else: + continue + speaker_name = root.split(os.path.sep)[-2] + if speaker_name not in speaker_id_dict: + num = len(speaker_id_dict) + speaker_id_dict[speaker_name] = num + # wav_filesize = os.path.getsize(wav_file) + wav_length = len(sf.read(wav_file)[0]) + files.append((os.path.abspath(wav_file), wav_length, speaker_id_dict[speaker_name], speaker_name)) + + # Write to CSV file which contains four columns: + # "wav_filename", "wav_length_ms", "speaker_id", "speaker_name". + csv_file_path = os.path.join(output_dir, output_file) + df = pandas.DataFrame(data=files, columns=["wav_filename", "wav_length_ms", "speaker_id", "speaker_name"]) + df.to_csv(csv_file_path, index=False, sep="\t") + logging.info("Successfully generated csv file {}".format(csv_file_path)) + + +def processor(directory, subset, force_process): + """download and process""" + urls = SUBSETS + if subset not in urls: + raise ValueError(subset, "is not in voxceleb") + + subset_csv = os.path.join(directory, subset + ".csv") + if not force_process and os.path.exists(subset_csv): + return subset_csv + + logging.info("Downloading and process the voxceleb in %s", directory) + logging.info("Preparing subset %s", subset) + download_and_extract(directory, subset, urls[subset]) + convert_audio_and_make_label(directory, subset, directory, subset + ".csv") + logging.info("Finished downloading and processing") + return subset_csv + + +if __name__ == "__main__": + logging.set_verbosity(logging.INFO) + if len(sys.argv) != 4: + print("Usage: python prepare_data.py save_directory user password") + sys.exit() + + DIR, USER["user"], USER["password"] = sys.argv[1], sys.argv[2], sys.argv[3] + for SUBSET in SUBSETS: + processor(DIR, SUBSET, False) diff --git a/Indic-TTS/TTS/TTS/encoder/utils/samplers.py b/Indic-TTS/TTS/TTS/encoder/utils/samplers.py new file mode 100644 index 0000000000000000000000000000000000000000..08256b347d59368193cee1301b6b1997078d8410 --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/utils/samplers.py @@ -0,0 +1,114 @@ +import random + +from torch.utils.data.sampler import Sampler, SubsetRandomSampler + + +class SubsetSampler(Sampler): + """ + Samples elements sequentially from a given list of indices. + + Args: + indices (list): a sequence of indices + """ + + def __init__(self, indices): + super().__init__(indices) + self.indices = indices + + def __iter__(self): + return (self.indices[i] for i in range(len(self.indices))) + + def __len__(self): + return len(self.indices) + + +class PerfectBatchSampler(Sampler): + """ + Samples a mini-batch of indices for a balanced class batching + + Args: + dataset_items(list): dataset items to sample from. + classes (list): list of classes of dataset_items to sample from. + batch_size (int): total number of samples to be sampled in a mini-batch. + num_gpus (int): number of GPU in the data parallel mode. + shuffle (bool): if True, samples randomly, otherwise samples sequentially. + drop_last (bool): if True, drops last incomplete batch. + """ + + def __init__( + self, + dataset_items, + classes, + batch_size, + num_classes_in_batch, + num_gpus=1, + shuffle=True, + drop_last=False, + label_key="class_name", + ): + super().__init__(dataset_items) + assert ( + batch_size % (num_classes_in_batch * num_gpus) == 0 + ), "Batch size must be divisible by number of classes times the number of data parallel devices (if enabled)." + + label_indices = {} + for idx, item in enumerate(dataset_items): + label = item[label_key] + if label not in label_indices.keys(): + label_indices[label] = [idx] + else: + label_indices[label].append(idx) + + if shuffle: + self._samplers = [SubsetRandomSampler(label_indices[key]) for key in classes] + else: + self._samplers = [SubsetSampler(label_indices[key]) for key in classes] + + self._batch_size = batch_size + self._drop_last = drop_last + self._dp_devices = num_gpus + self._num_classes_in_batch = num_classes_in_batch + + def __iter__(self): + + batch = [] + if self._num_classes_in_batch != len(self._samplers): + valid_samplers_idx = random.sample(range(len(self._samplers)), self._num_classes_in_batch) + else: + valid_samplers_idx = None + + iters = [iter(s) for s in self._samplers] + done = False + + while True: + b = [] + for i, it in enumerate(iters): + if valid_samplers_idx is not None and i not in valid_samplers_idx: + continue + idx = next(it, None) + if idx is None: + done = True + break + b.append(idx) + if done: + break + batch += b + if len(batch) == self._batch_size: + yield batch + batch = [] + if valid_samplers_idx is not None: + valid_samplers_idx = random.sample(range(len(self._samplers)), self._num_classes_in_batch) + + if not self._drop_last: + if len(batch) > 0: + groups = len(batch) // self._num_classes_in_batch + if groups % self._dp_devices == 0: + yield batch + else: + batch = batch[: (groups // self._dp_devices) * self._dp_devices * self._num_classes_in_batch] + if len(batch) > 0: + yield batch + + def __len__(self): + class_batch_size = self._batch_size // self._num_classes_in_batch + return min(((len(s) + class_batch_size - 1) // class_batch_size) for s in self._samplers) diff --git a/Indic-TTS/TTS/TTS/encoder/utils/training.py b/Indic-TTS/TTS/TTS/encoder/utils/training.py new file mode 100644 index 0000000000000000000000000000000000000000..7c58a232e7a146bb24718700527ab80e62a1ab1a --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/utils/training.py @@ -0,0 +1,99 @@ +import os +from dataclasses import dataclass, field + +from coqpit import Coqpit +from trainer import TrainerArgs, get_last_checkpoint +from trainer.logging import logger_factory +from trainer.logging.console_logger import ConsoleLogger + +from TTS.config import load_config, register_config +from TTS.tts.utils.text.characters import parse_symbols +from TTS.utils.generic_utils import get_experiment_folder_path, get_git_branch +from TTS.utils.io import copy_model_files + + +@dataclass +class TrainArgs(TrainerArgs): + config_path: str = field(default=None, metadata={"help": "Path to the config file."}) + + +def getarguments(): + train_config = TrainArgs() + parser = train_config.init_argparse(arg_prefix="") + return parser + + +def process_args(args, config=None): + """Process parsed comand line arguments and initialize the config if not provided. + Args: + args (argparse.Namespace or dict like): Parsed input arguments. + config (Coqpit): Model config. If none, it is generated from `args`. Defaults to None. + Returns: + c (TTS.utils.io.AttrDict): Config paramaters. + out_path (str): Path to save models and logging. + audio_path (str): Path to save generated test audios. + c_logger (TTS.utils.console_logger.ConsoleLogger): Class that does + logging to the console. + dashboard_logger (WandbLogger or TensorboardLogger): Class that does the dashboard Logging + TODO: + - Interactive config definition. + """ + if isinstance(args, tuple): + args, coqpit_overrides = args + if args.continue_path: + # continue a previous training from its output folder + experiment_path = args.continue_path + args.config_path = os.path.join(args.continue_path, "config.json") + args.restore_path, best_model = get_last_checkpoint(args.continue_path) + if not args.best_path: + args.best_path = best_model + # init config if not already defined + if config is None: + if args.config_path: + # init from a file + config = load_config(args.config_path) + else: + # init from console args + from TTS.config.shared_configs import BaseTrainingConfig # pylint: disable=import-outside-toplevel + + config_base = BaseTrainingConfig() + config_base.parse_known_args(coqpit_overrides) + config = register_config(config_base.model)() + # override values from command-line args + config.parse_known_args(coqpit_overrides, relaxed_parser=True) + experiment_path = args.continue_path + if not experiment_path: + experiment_path = get_experiment_folder_path(config.output_path, config.run_name) + audio_path = os.path.join(experiment_path, "test_audios") + config.output_log_path = experiment_path + # setup rank 0 process in distributed training + dashboard_logger = None + if args.rank == 0: + new_fields = {} + if args.restore_path: + new_fields["restore_path"] = args.restore_path + new_fields["github_branch"] = get_git_branch() + # if model characters are not set in the config file + # save the default set to the config file for future + # compatibility. + if config.has("characters") and config.characters is None: + used_characters = parse_symbols() + new_fields["characters"] = used_characters + copy_model_files(config, experiment_path, new_fields) + dashboard_logger = logger_factory(config, experiment_path) + c_logger = ConsoleLogger() + return config, experiment_path, audio_path, c_logger, dashboard_logger + + +def init_arguments(): + train_config = TrainArgs() + parser = train_config.init_argparse(arg_prefix="") + return parser + + +def init_training(config: Coqpit = None): + """Initialization of a training run.""" + parser = init_arguments() + args = parser.parse_known_args() + config, OUT_PATH, AUDIO_PATH, c_logger, dashboard_logger = process_args(args, config) + return args[0], config, OUT_PATH, AUDIO_PATH, c_logger, dashboard_logger diff --git a/Indic-TTS/TTS/TTS/encoder/utils/visual.py b/Indic-TTS/TTS/TTS/encoder/utils/visual.py new file mode 100644 index 0000000000000000000000000000000000000000..f2db2f3fa3408f96a04f7932438f175c6ec19c51 --- /dev/null +++ b/Indic-TTS/TTS/TTS/encoder/utils/visual.py @@ -0,0 +1,50 @@ +import matplotlib +import matplotlib.pyplot as plt +import numpy as np +import umap + +matplotlib.use("Agg") + + +colormap = ( + np.array( + [ + [76, 255, 0], + [0, 127, 70], + [255, 0, 0], + [255, 217, 38], + [0, 135, 255], + [165, 0, 165], + [255, 167, 255], + [0, 255, 255], + [255, 96, 38], + [142, 76, 0], + [33, 0, 127], + [0, 0, 0], + [183, 183, 183], + ], + dtype=np.float, + ) + / 255 +) + + +def plot_embeddings(embeddings, num_classes_in_batch): + num_utter_per_class = embeddings.shape[0] // num_classes_in_batch + + # if necessary get just the first 10 classes + if num_classes_in_batch > 10: + num_classes_in_batch = 10 + embeddings = embeddings[: num_classes_in_batch * num_utter_per_class] + + model = umap.UMAP() + projection = model.fit_transform(embeddings) + ground_truth = np.repeat(np.arange(num_classes_in_batch), num_utter_per_class) + colors = [colormap[i] for i in ground_truth] + fig, ax = plt.subplots(figsize=(16, 10)) + _ = ax.scatter(projection[:, 0], projection[:, 1], c=colors) + plt.gca().set_aspect("equal", "datalim") + plt.title("UMAP projection") + plt.tight_layout() + plt.savefig("umap") + return fig diff --git a/Indic-TTS/TTS/TTS/model.py b/Indic-TTS/TTS/TTS/model.py new file mode 100644 index 0000000000000000000000000000000000000000..a53b916a3f3844925ebf57ba721c3be0303985d0 --- /dev/null +++ b/Indic-TTS/TTS/TTS/model.py @@ -0,0 +1,56 @@ +from abc import abstractmethod +from typing import Dict + +import torch +from coqpit import Coqpit +from trainer import TrainerModel + +# pylint: skip-file + + +class BaseTrainerModel(TrainerModel): + """BaseTrainerModel model expanding TrainerModel with required functions by ๐ŸธTTS. + + Every new ๐ŸธTTS model must inherit it. + """ + + @staticmethod + @abstractmethod + def init_from_config(config: Coqpit): + """Init the model and all its attributes from the given config. + + Override this depending on your model. + """ + ... + + @abstractmethod + def inference(self, input: torch.Tensor, aux_input={}) -> Dict: + """Forward pass for inference. + + It must return a dictionary with the main model output and all the auxiliary outputs. The key ```model_outputs``` + is considered to be the main output and you can add any other auxiliary outputs as you want. + + We don't use `*kwargs` since it is problematic with the TorchScript API. + + Args: + input (torch.Tensor): [description] + aux_input (Dict): Auxiliary inputs like speaker embeddings, durations etc. + + Returns: + Dict: [description] + """ + outputs_dict = {"model_outputs": None} + ... + return outputs_dict + + @abstractmethod + def load_checkpoint(self, config: Coqpit, checkpoint_path: str, eval: bool = False, strict: bool = True) -> None: + """Load a model checkpoint gile and get ready for training or inference. + + Args: + config (Coqpit): Model configuration. + checkpoint_path (str): Path to the model checkpoint file. + eval (bool, optional): If true, init model for inference else for training. Defaults to False. + strcit (bool, optional): Match all checkpoint keys to model's keys. Defaults to True. + """ + ... diff --git a/Indic-TTS/TTS/TTS/server/README.md b/Indic-TTS/TTS/TTS/server/README.md new file mode 100644 index 0000000000000000000000000000000000000000..270656c4e39dc11636efbb1ba51eba7c9b4a8f04 --- /dev/null +++ b/Indic-TTS/TTS/TTS/server/README.md @@ -0,0 +1,18 @@ +# :frog: TTS demo server +Before you use the server, make sure you [install](https://github.com/coqui-ai/TTS/tree/dev#install-tts)) :frog: TTS properly. Then, you can follow the steps below. + +**Note:** If you install :frog:TTS using ```pip```, you can also use the ```tts-server``` end point on the terminal. + +Examples runs: + +List officially released models. +```python TTS/server/server.py --list_models ``` + +Run the server with the official models. +```python TTS/server/server.py --model_name tts_models/en/ljspeech/tacotron2-DCA --vocoder_name vocoder_models/en/ljspeech/multiband-melgan``` + +Run the server with the official models on a GPU. +```CUDA_VISIBLE_DEVICES="0" python TTS/server/server.py --model_name tts_models/en/ljspeech/tacotron2-DCA --vocoder_name vocoder_models/en/ljspeech/multiband-melgan --use_cuda True``` + +Run the server with a custom models. +```python TTS/server/server.py --tts_checkpoint /path/to/tts/model.pth --tts_config /path/to/tts/config.json --vocoder_checkpoint /path/to/vocoder/model.pth --vocoder_config /path/to/vocoder/config.json``` diff --git a/Indic-TTS/TTS/TTS/server/__init__.py b/Indic-TTS/TTS/TTS/server/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/server/conf.json b/Indic-TTS/TTS/TTS/server/conf.json new file mode 100644 index 0000000000000000000000000000000000000000..49b6c09c3848a224dfb39a1f653aa1b289a4b6e5 --- /dev/null +++ b/Indic-TTS/TTS/TTS/server/conf.json @@ -0,0 +1,12 @@ +{ + "tts_path":"/media/erogol/data_ssd/Models/libri_tts/5049/", // tts model root folder + "tts_file":"best_model.pth", // tts checkpoint file + "tts_config":"config.json", // tts config.json file + "tts_speakers": null, // json file listing speaker ids. null if no speaker embedding. + "vocoder_config":null, + "vocoder_file": null, + "is_wavernn_batched":true, + "port": 5002, + "use_cuda": true, + "debug": true +} diff --git a/Indic-TTS/TTS/TTS/server/server.py b/Indic-TTS/TTS/TTS/server/server.py new file mode 100644 index 0000000000000000000000000000000000000000..89fce493db93588c8ae69fec35bf5ce6c1a0158b --- /dev/null +++ b/Indic-TTS/TTS/TTS/server/server.py @@ -0,0 +1,190 @@ +#!flask/bin/python +import argparse +import io +import json +import os +import sys +from pathlib import Path +from typing import Union + +from flask import Flask, render_template, request, send_file + +from TTS.config import load_config +from TTS.utils.manage import ModelManager +from TTS.utils.synthesizer import Synthesizer + + +def create_argparser(): + def convert_boolean(x): + return x.lower() in ["true", "1", "yes"] + + parser = argparse.ArgumentParser() + parser.add_argument( + "--list_models", + type=convert_boolean, + nargs="?", + const=True, + default=False, + help="list available pre-trained tts and vocoder models.", + ) + parser.add_argument( + "--model_name", + type=str, + default="tts_models/en/ljspeech/tacotron2-DDC", + help="Name of one of the pre-trained tts models in format //", + ) + parser.add_argument("--vocoder_name", type=str, default=None, help="name of one of the released vocoder models.") + + # Args for running custom models + parser.add_argument("--config_path", default=None, type=str, help="Path to model config file.") + parser.add_argument( + "--model_path", + type=str, + default=None, + help="Path to model file.", + ) + parser.add_argument( + "--vocoder_path", + type=str, + help="Path to vocoder model file. If it is not defined, model uses GL as vocoder. Please make sure that you installed vocoder library before (WaveRNN).", + default=None, + ) + parser.add_argument("--vocoder_config_path", type=str, help="Path to vocoder model config file.", default=None) + parser.add_argument("--speakers_file_path", type=str, help="JSON file for multi-speaker model.", default=None) + parser.add_argument("--port", type=int, default=5002, help="port to listen on.") + parser.add_argument("--use_cuda", type=convert_boolean, default=False, help="true to use CUDA.") + parser.add_argument("--debug", type=convert_boolean, default=False, help="true to enable Flask debug mode.") + parser.add_argument("--show_details", type=convert_boolean, default=False, help="Generate model detail page.") + return parser + + +# parse the args +args = create_argparser().parse_args() + +path = Path(__file__).parent / "../.models.json" +manager = ModelManager(path) + +if args.list_models: + manager.list_models() + sys.exit() + +# update in-use models to the specified released models. +model_path = None +config_path = None +speakers_file_path = None +vocoder_path = None +vocoder_config_path = None + +# CASE1: list pre-trained TTS models +if args.list_models: + manager.list_models() + sys.exit() + +# CASE2: load pre-trained model paths +if args.model_name is not None and not args.model_path: + model_path, config_path, model_item = manager.download_model(args.model_name) + args.vocoder_name = model_item["default_vocoder"] if args.vocoder_name is None else args.vocoder_name + +if args.vocoder_name is not None and not args.vocoder_path: + vocoder_path, vocoder_config_path, _ = manager.download_model(args.vocoder_name) + +# CASE3: set custom model paths +if args.model_path is not None: + model_path = args.model_path + config_path = args.config_path + speakers_file_path = args.speakers_file_path + +if args.vocoder_path is not None: + vocoder_path = args.vocoder_path + vocoder_config_path = args.vocoder_config_path + +# load models +synthesizer = Synthesizer( + tts_checkpoint=model_path, + tts_config_path=config_path, + tts_speakers_file=speakers_file_path, + tts_languages_file=None, + vocoder_checkpoint=vocoder_path, + vocoder_config=vocoder_config_path, + encoder_checkpoint="", + encoder_config="", + use_cuda=args.use_cuda, +) + +use_multi_speaker = hasattr(synthesizer.tts_model, "num_speakers") and ( + synthesizer.tts_model.num_speakers > 1 or synthesizer.tts_speakers_file is not None +) + +speaker_manager = getattr(synthesizer.tts_model, "speaker_manager", None) +# TODO: set this from SpeakerManager +use_gst = synthesizer.tts_config.get("use_gst", False) +app = Flask(__name__) + + +def style_wav_uri_to_dict(style_wav: str) -> Union[str, dict]: + """Transform an uri style_wav, in either a string (path to wav file to be use for style transfer) + or a dict (gst tokens/values to be use for styling) + + Args: + style_wav (str): uri + + Returns: + Union[str, dict]: path to file (str) or gst style (dict) + """ + if style_wav: + if os.path.isfile(style_wav) and style_wav.endswith(".wav"): + return style_wav # style_wav is a .wav file located on the server + + style_wav = json.loads(style_wav) + return style_wav # style_wav is a gst dictionary with {token1_id : token1_weigth, ...} + return None + + +@app.route("/") +def index(): + return render_template( + "index.html", + show_details=args.show_details, + use_multi_speaker=use_multi_speaker, + speaker_ids=speaker_manager.ids if speaker_manager is not None else None, + use_gst=use_gst, + ) + + +@app.route("/details") +def details(): + model_config = load_config(args.tts_config) + if args.vocoder_config is not None and os.path.isfile(args.vocoder_config): + vocoder_config = load_config(args.vocoder_config) + else: + vocoder_config = None + + return render_template( + "details.html", + show_details=args.show_details, + model_config=model_config, + vocoder_config=vocoder_config, + args=args.__dict__, + ) + + +@app.route("/api/tts", methods=["GET"]) +def tts(): + text = request.args.get("text") + speaker_idx = request.args.get("speaker_id", "") + style_wav = request.args.get("style_wav", "") + style_wav = style_wav_uri_to_dict(style_wav) + print(" > Model input: {}".format(text)) + print(" > Speaker Idx: {}".format(speaker_idx)) + wavs = synthesizer.tts(text, speaker_name=speaker_idx, style_wav=style_wav) + out = io.BytesIO() + synthesizer.save_wav(wavs, out) + return send_file(out, mimetype="audio/wav") + + +def main(): + app.run(debug=args.debug, host="::", port=args.port) + + +if __name__ == "__main__": + main() diff --git a/Indic-TTS/TTS/TTS/server/static/coqui-log-green-TTS.png b/Indic-TTS/TTS/TTS/server/static/coqui-log-green-TTS.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad188b8c03a170097c0393c6769996f03cf9054 Binary files /dev/null and b/Indic-TTS/TTS/TTS/server/static/coqui-log-green-TTS.png differ diff --git a/Indic-TTS/TTS/TTS/server/templates/details.html b/Indic-TTS/TTS/TTS/server/templates/details.html new file mode 100644 index 0000000000000000000000000000000000000000..51c9ed85a83ac0aab045623ee1e6c430fbe51b9d --- /dev/null +++ b/Indic-TTS/TTS/TTS/server/templates/details.html @@ -0,0 +1,131 @@ + + + + + + + + + + + TTS engine + + + + + + + + + + Fork me on GitHub + + {% if show_details == true %} + +
+ Model details +
+ +
+
+ CLI arguments: + + + + + + + {% for key, value in args.items() %} + + + + + + + {% endfor %} +
CLI key Value
{{ key }}{{ value }}
+
+

+ +
+ + {% if model_config != None %} + +
+ Model config: + + + + + + + + + {% for key, value in model_config.items() %} + + + + + + + {% endfor %} + +
Key Value
{{ key }}{{ value }}
+
+ + {% endif %} + +

+ + + +
+ {% if vocoder_config != None %} +
+ Vocoder model config: + + + + + + + + + {% for key, value in vocoder_config.items() %} + + + + + + + {% endfor %} + + +
Key Value
{{ key }}{{ value }}
+
+ {% endif %} +

+ + {% else %} +
+ Please start server with --show_details=true to see details. +
+ + {% endif %} + + + + \ No newline at end of file diff --git a/Indic-TTS/TTS/TTS/server/templates/index.html b/Indic-TTS/TTS/TTS/server/templates/index.html new file mode 100644 index 0000000000000000000000000000000000000000..b0eab291a2c78e678709aba7dddb2b97b8e94b0f --- /dev/null +++ b/Indic-TTS/TTS/TTS/server/templates/index.html @@ -0,0 +1,143 @@ + + + + + + + + + + + TTS engine + + + + + + + + + + Fork me on GitHub + + + + + +
+
+
+ + +
    +
+ + {%if use_gst%} + + {%endif%} + + +

+ + {%if use_multi_speaker%} + Choose a speaker: +

+ {%endif%} + + {%if show_details%} +

+ {%endif%} + +

+
+
+
+ + + + + + + \ No newline at end of file diff --git a/Indic-TTS/TTS/TTS/tts/__init__.py b/Indic-TTS/TTS/TTS/tts/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a8eeabe3dc13f757056639de5f79c9ed06508b3e Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/configs/__init__.py b/Indic-TTS/TTS/TTS/tts/configs/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3146ac1c116cb807a81889b7a9ab223b9a051036 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/configs/__init__.py @@ -0,0 +1,17 @@ +import importlib +import os +from inspect import isclass + +# import all files under configs/ +# configs_dir = os.path.dirname(__file__) +# for file in os.listdir(configs_dir): +# path = os.path.join(configs_dir, file) +# if not file.startswith("_") and not file.startswith(".") and (file.endswith(".py") or os.path.isdir(path)): +# config_name = file[: file.find(".py")] if file.endswith(".py") else file +# module = importlib.import_module("TTS.tts.configs." + config_name) +# for attribute_name in dir(module): +# attribute = getattr(module, attribute_name) + +# if isclass(attribute): +# # Add the class to this package's variables +# globals()[attribute_name] = attribute diff --git a/Indic-TTS/TTS/TTS/tts/configs/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/configs/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a667a9aef2594250788e230cebb267264cfed7a2 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/configs/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/configs/__pycache__/fast_pitch_config.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/configs/__pycache__/fast_pitch_config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d89fa20499dddde1fa7b1db19ce52a1e9225f062 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/configs/__pycache__/fast_pitch_config.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/configs/__pycache__/shared_configs.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/configs/__pycache__/shared_configs.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..39c35d5d335e2dcbf15a0a8505cc4b2ee7efdfce Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/configs/__pycache__/shared_configs.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/configs/align_tts_config.py b/Indic-TTS/TTS/TTS/tts/configs/align_tts_config.py new file mode 100644 index 0000000000000000000000000000000000000000..317a01af53ce26914d83610a913eb44b5836dac2 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/configs/align_tts_config.py @@ -0,0 +1,107 @@ +from dataclasses import dataclass, field +from typing import List + +from TTS.tts.configs.shared_configs import BaseTTSConfig +from TTS.tts.models.align_tts import AlignTTSArgs + + +@dataclass +class AlignTTSConfig(BaseTTSConfig): + """Defines parameters for AlignTTS model. + Example: + + >>> from TTS.tts.configs.align_tts_config import AlignTTSConfig + >>> config = AlignTTSConfig() + + Args: + model(str): + Model name used for selecting the right model at initialization. Defaults to `align_tts`. + positional_encoding (bool): + enable / disable positional encoding applied to the encoder output. Defaults to True. + hidden_channels (int): + Base number of hidden channels. Defines all the layers expect ones defined by the specific encoder or decoder + parameters. Defaults to 256. + hidden_channels_dp (int): + Number of hidden channels of the duration predictor's layers. Defaults to 256. + encoder_type (str): + Type of the encoder used by the model. Look at `TTS.tts.layers.feed_forward.encoder` for more details. + Defaults to `fftransformer`. + encoder_params (dict): + Parameters used to define the encoder network. Look at `TTS.tts.layers.feed_forward.encoder` for more details. + Defaults to `{"hidden_channels_ffn": 1024, "num_heads": 2, "num_layers": 6, "dropout_p": 0.1}`. + decoder_type (str): + Type of the decoder used by the model. Look at `TTS.tts.layers.feed_forward.decoder` for more details. + Defaults to `fftransformer`. + decoder_params (dict): + Parameters used to define the decoder network. Look at `TTS.tts.layers.feed_forward.decoder` for more details. + Defaults to `{"hidden_channels_ffn": 1024, "num_heads": 2, "num_layers": 6, "dropout_p": 0.1}`. + phase_start_steps (List[int]): + A list of number of steps required to start the next training phase. AlignTTS has 4 different training + phases. Thus you need to define 4 different values to enable phase based training. If None, it + trains the whole model together. Defaults to None. + ssim_alpha (float): + Weight for the SSIM loss. If set <= 0, disables the SSIM loss. Defaults to 1.0. + duration_loss_alpha (float): + Weight for the duration predictor's loss. Defaults to 1.0. + mdn_alpha (float): + Weight for the MDN loss. Defaults to 1.0. + spec_loss_alpha (float): + Weight for the MSE spectrogram loss. If set <= 0, disables the L1 loss. Defaults to 1.0. + use_speaker_embedding (bool): + enable / disable using speaker embeddings for multi-speaker models. If set True, the model is + in the multi-speaker mode. Defaults to False. + use_d_vector_file (bool): + enable /disable using external speaker embeddings in place of the learned embeddings. Defaults to False. + d_vector_file (str): + Path to the file including pre-computed speaker embeddings. Defaults to None. + noam_schedule (bool): + enable / disable the use of Noam LR scheduler. Defaults to False. + warmup_steps (int): + Number of warm-up steps for the Noam scheduler. Defaults 4000. + lr (float): + Initial learning rate. Defaults to `1e-3`. + wd (float): + Weight decay coefficient. Defaults to `1e-7`. + min_seq_len (int): + Minimum input sequence length to be used at training. + max_seq_len (int): + Maximum input sequence length to be used at training. Larger values result in more VRAM usage.""" + + model: str = "align_tts" + # model specific params + model_args: AlignTTSArgs = field(default_factory=AlignTTSArgs) + phase_start_steps: List[int] = None + + ssim_alpha: float = 1.0 + spec_loss_alpha: float = 1.0 + dur_loss_alpha: float = 1.0 + mdn_alpha: float = 1.0 + + # multi-speaker settings + use_speaker_embedding: bool = False + use_d_vector_file: bool = False + d_vector_file: str = False + + # optimizer parameters + optimizer: str = "Adam" + optimizer_params: dict = field(default_factory=lambda: {"betas": [0.9, 0.998], "weight_decay": 1e-6}) + lr_scheduler: str = None + lr_scheduler_params: dict = None + lr: float = 1e-4 + grad_clip: float = 5.0 + + # overrides + min_seq_len: int = 13 + max_seq_len: int = 200 + r: int = 1 + + # testing + test_sentences: List[str] = field( + default_factory=lambda: [ + "It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.", + "Be a voice, not an echo.", + "I'm sorry Dave. I'm afraid I can't do that.", + "This cake is great. It's so delicious and moist.", + "Prior to November 22, 1963.", + ] + ) diff --git a/Indic-TTS/TTS/TTS/tts/configs/fast_pitch_config.py b/Indic-TTS/TTS/TTS/tts/configs/fast_pitch_config.py new file mode 100644 index 0000000000000000000000000000000000000000..26ccfdd54037a63c4d5d638109cd30524f8f22ca --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/configs/fast_pitch_config.py @@ -0,0 +1,182 @@ +from dataclasses import dataclass, field +from typing import List + +from TTS.tts.configs.shared_configs import BaseTTSConfig +from TTS.tts.models.forward_tts import ForwardTTSArgs + + +@dataclass +class FastPitchConfig(BaseTTSConfig): + """Configure `ForwardTTS` as FastPitch model. + + Example: + + >>> from TTS.tts.configs.fast_pitch_config import FastPitchConfig + >>> config = FastPitchConfig() + + Args: + model (str): + Model name used for selecting the right model at initialization. Defaults to `fast_pitch`. + + base_model (str): + Name of the base model being configured as this model so that ๐Ÿธ TTS knows it needs to initiate + the base model rather than searching for the `model` implementation. Defaults to `forward_tts`. + + model_args (Coqpit): + Model class arguments. Check `FastPitchArgs` for more details. Defaults to `FastPitchArgs()`. + + data_dep_init_steps (int): + Number of steps used for computing normalization parameters at the beginning of the training. GlowTTS uses + Activation Normalization that pre-computes normalization stats at the beginning and use the same values + for the rest. Defaults to 10. + + speakers_file (str): + Path to the file containing the list of speakers. Needed at inference for loading matching speaker ids to + speaker names. Defaults to `None`. + + use_speaker_embedding (bool): + enable / disable using speaker embeddings for multi-speaker models. If set True, the model is + in the multi-speaker mode. Defaults to False. + + use_d_vector_file (bool): + enable /disable using external speaker embeddings in place of the learned embeddings. Defaults to False. + + d_vector_file (str): + Path to the file including pre-computed speaker embeddings. Defaults to None. + + d_vector_dim (int): + Dimension of the external speaker embeddings. Defaults to 0. + + optimizer (str): + Name of the model optimizer. Defaults to `Adam`. + + optimizer_params (dict): + Arguments of the model optimizer. Defaults to `{"betas": [0.9, 0.998], "weight_decay": 1e-6}`. + + lr_scheduler (str): + Name of the learning rate scheduler. Defaults to `Noam`. + + lr_scheduler_params (dict): + Arguments of the learning rate scheduler. Defaults to `{"warmup_steps": 4000}`. + + lr (float): + Initial learning rate. Defaults to `1e-3`. + + grad_clip (float): + Gradient norm clipping value. Defaults to `5.0`. + + spec_loss_type (str): + Type of the spectrogram loss. Check `ForwardTTSLoss` for possible values. Defaults to `mse`. + + duration_loss_type (str): + Type of the duration loss. Check `ForwardTTSLoss` for possible values. Defaults to `mse`. + + use_ssim_loss (bool): + Enable/disable the use of SSIM (Structural Similarity) loss. Defaults to True. + + wd (float): + Weight decay coefficient. Defaults to `1e-7`. + + ssim_loss_alpha (float): + Weight for the SSIM loss. If set 0, disables the SSIM loss. Defaults to 1.0. + + dur_loss_alpha (float): + Weight for the duration predictor's loss. If set 0, disables the huber loss. Defaults to 1.0. + + spec_loss_alpha (float): + Weight for the L1 spectrogram loss. If set 0, disables the L1 loss. Defaults to 1.0. + + pitch_loss_alpha (float): + Weight for the pitch predictor's loss. If set 0, disables the pitch predictor. Defaults to 1.0. + + binary_align_loss_alpha (float): + Weight for the binary loss. If set 0, disables the binary loss. Defaults to 1.0. + + binary_loss_warmup_epochs (float): + Number of epochs to gradually increase the binary loss impact. Defaults to 150. + + min_seq_len (int): + Minimum input sequence length to be used at training. + + max_seq_len (int): + Maximum input sequence length to be used at training. Larger values result in more VRAM usage. + """ + + model: str = "fast_pitch" + base_model: str = "forward_tts" + + # model specific params + model_args: ForwardTTSArgs = ForwardTTSArgs() + + # data loader params + return_wav: bool = False + compute_linear_spec: bool = False + + # multi-speaker settings + num_speakers: int = 0 + speakers_file: str = None + use_speaker_embedding: bool = False + use_d_vector_file: bool = False + d_vector_file: str = False + d_vector_dim: int = 0 + + # optimizer parameters + optimizer: str = "Adam" + optimizer_params: dict = field(default_factory=lambda: {"betas": [0.9, 0.998], "weight_decay": 1e-6}) + lr_scheduler: str = "NoamLR" + lr_scheduler_params: dict = field(default_factory=lambda: {"warmup_steps": 4000}) + lr: float = 1e-4 + grad_clip: float = 5.0 + + # loss params + spec_loss_type: str = "mse" + duration_loss_type: str = "mse" + use_ssim_loss: bool = True + ssim_loss_alpha: float = 1.0 + spec_loss_alpha: float = 1.0 + aligner_loss_alpha: float = 1.0 + pitch_loss_alpha: float = 0.1 + dur_loss_alpha: float = 0.1 + binary_align_loss_alpha: float = 0.1 + spk_encoder_loss_alpha: float = 0.1 + binary_loss_warmup_epochs: int = 150 + aligner_epochs: int = 1000 + + # overrides + min_seq_len: int = 13 + max_seq_len: int = 200 + r: int = 1 # DO NOT CHANGE + + # dataset configs + compute_f0: bool = True + f0_cache_path: str = None + + # testing + test_sentences: List[str] = field( + default_factory=lambda: [ + "It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.", + "Be a voice, not an echo.", + "I'm sorry Dave. I'm afraid I can't do that.", + "This cake is great. It's so delicious and moist.", + "Prior to November 22, 1963.", + ] + ) + + def __post_init__(self): + # Pass multi-speaker parameters to the model args as `model.init_multispeaker()` looks for it there. + if self.num_speakers > 0: + self.model_args.num_speakers = self.num_speakers + + # speaker embedding settings + if self.use_speaker_embedding: + self.model_args.use_speaker_embedding = True + if self.speakers_file: + self.model_args.speakers_file = self.speakers_file + + # d-vector settings + if self.use_d_vector_file: + self.model_args.use_d_vector_file = True + if self.d_vector_dim is not None and self.d_vector_dim > 0: + self.model_args.d_vector_dim = self.d_vector_dim + if self.d_vector_file: + self.model_args.d_vector_file = self.d_vector_file diff --git a/Indic-TTS/TTS/TTS/tts/configs/fast_speech_config.py b/Indic-TTS/TTS/TTS/tts/configs/fast_speech_config.py new file mode 100644 index 0000000000000000000000000000000000000000..16a76e215f4d47d086bea827d2b6ccc61524e5c1 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/configs/fast_speech_config.py @@ -0,0 +1,177 @@ +from dataclasses import dataclass, field +from typing import List + +from TTS.tts.configs.shared_configs import BaseTTSConfig +from TTS.tts.models.forward_tts import ForwardTTSArgs + + +@dataclass +class FastSpeechConfig(BaseTTSConfig): + """Configure `ForwardTTS` as FastSpeech model. + + Example: + + >>> from TTS.tts.configs.fast_speech_config import FastSpeechConfig + >>> config = FastSpeechConfig() + + Args: + model (str): + Model name used for selecting the right model at initialization. Defaults to `fast_pitch`. + + base_model (str): + Name of the base model being configured as this model so that ๐Ÿธ TTS knows it needs to initiate + the base model rather than searching for the `model` implementation. Defaults to `forward_tts`. + + model_args (Coqpit): + Model class arguments. Check `FastSpeechArgs` for more details. Defaults to `FastSpeechArgs()`. + + data_dep_init_steps (int): + Number of steps used for computing normalization parameters at the beginning of the training. GlowTTS uses + Activation Normalization that pre-computes normalization stats at the beginning and use the same values + for the rest. Defaults to 10. + + speakers_file (str): + Path to the file containing the list of speakers. Needed at inference for loading matching speaker ids to + speaker names. Defaults to `None`. + + + use_speaker_embedding (bool): + enable / disable using speaker embeddings for multi-speaker models. If set True, the model is + in the multi-speaker mode. Defaults to False. + + use_d_vector_file (bool): + enable /disable using external speaker embeddings in place of the learned embeddings. Defaults to False. + + d_vector_file (str): + Path to the file including pre-computed speaker embeddings. Defaults to None. + + d_vector_dim (int): + Dimension of the external speaker embeddings. Defaults to 0. + + optimizer (str): + Name of the model optimizer. Defaults to `Adam`. + + optimizer_params (dict): + Arguments of the model optimizer. Defaults to `{"betas": [0.9, 0.998], "weight_decay": 1e-6}`. + + lr_scheduler (str): + Name of the learning rate scheduler. Defaults to `Noam`. + + lr_scheduler_params (dict): + Arguments of the learning rate scheduler. Defaults to `{"warmup_steps": 4000}`. + + lr (float): + Initial learning rate. Defaults to `1e-3`. + + grad_clip (float): + Gradient norm clipping value. Defaults to `5.0`. + + spec_loss_type (str): + Type of the spectrogram loss. Check `ForwardTTSLoss` for possible values. Defaults to `mse`. + + duration_loss_type (str): + Type of the duration loss. Check `ForwardTTSLoss` for possible values. Defaults to `mse`. + + use_ssim_loss (bool): + Enable/disable the use of SSIM (Structural Similarity) loss. Defaults to True. + + wd (float): + Weight decay coefficient. Defaults to `1e-7`. + + ssim_loss_alpha (float): + Weight for the SSIM loss. If set 0, disables the SSIM loss. Defaults to 1.0. + + dur_loss_alpha (float): + Weight for the duration predictor's loss. If set 0, disables the huber loss. Defaults to 1.0. + + spec_loss_alpha (float): + Weight for the L1 spectrogram loss. If set 0, disables the L1 loss. Defaults to 1.0. + + pitch_loss_alpha (float): + Weight for the pitch predictor's loss. If set 0, disables the pitch predictor. Defaults to 1.0. + + binary_loss_alpha (float): + Weight for the binary loss. If set 0, disables the binary loss. Defaults to 1.0. + + binary_loss_warmup_epochs (float): + Number of epochs to gradually increase the binary loss impact. Defaults to 150. + + min_seq_len (int): + Minimum input sequence length to be used at training. + + max_seq_len (int): + Maximum input sequence length to be used at training. Larger values result in more VRAM usage. + """ + + model: str = "fast_speech" + base_model: str = "forward_tts" + + # model specific params + model_args: ForwardTTSArgs = ForwardTTSArgs(use_pitch=False) + + # multi-speaker settings + num_speakers: int = 0 + speakers_file: str = None + use_speaker_embedding: bool = False + use_d_vector_file: bool = False + d_vector_file: str = False + d_vector_dim: int = 0 + + # optimizer parameters + optimizer: str = "Adam" + optimizer_params: dict = field(default_factory=lambda: {"betas": [0.9, 0.998], "weight_decay": 1e-6}) + lr_scheduler: str = "NoamLR" + lr_scheduler_params: dict = field(default_factory=lambda: {"warmup_steps": 4000}) + lr: float = 1e-4 + grad_clip: float = 5.0 + + # loss params + spec_loss_type: str = "mse" + duration_loss_type: str = "mse" + use_ssim_loss: bool = True + ssim_loss_alpha: float = 1.0 + dur_loss_alpha: float = 1.0 + spec_loss_alpha: float = 1.0 + pitch_loss_alpha: float = 0.0 + aligner_loss_alpha: float = 1.0 + binary_align_loss_alpha: float = 1.0 + binary_loss_warmup_epochs: int = 150 + + # overrides + min_seq_len: int = 13 + max_seq_len: int = 200 + r: int = 1 # DO NOT CHANGE + + # dataset configs + compute_f0: bool = False + f0_cache_path: str = None + + # testing + test_sentences: List[str] = field( + default_factory=lambda: [ + "It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.", + "Be a voice, not an echo.", + "I'm sorry Dave. I'm afraid I can't do that.", + "This cake is great. It's so delicious and moist.", + "Prior to November 22, 1963.", + ] + ) + + def __post_init__(self): + # Pass multi-speaker parameters to the model args as `model.init_multispeaker()` looks for it there. + if self.num_speakers > 0: + self.model_args.num_speakers = self.num_speakers + + # speaker embedding settings + if self.use_speaker_embedding: + self.model_args.use_speaker_embedding = True + if self.speakers_file: + self.model_args.speakers_file = self.speakers_file + + # d-vector settings + if self.use_d_vector_file: + self.model_args.use_d_vector_file = True + if self.d_vector_dim is not None and self.d_vector_dim > 0: + self.model_args.d_vector_dim = self.d_vector_dim + if self.d_vector_file: + self.model_args.d_vector_file = self.d_vector_file diff --git a/Indic-TTS/TTS/TTS/tts/configs/glow_tts_config.py b/Indic-TTS/TTS/TTS/tts/configs/glow_tts_config.py new file mode 100644 index 0000000000000000000000000000000000000000..f42f3e5a510bacf1b2312ccea7d46201bbcb774f --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/configs/glow_tts_config.py @@ -0,0 +1,182 @@ +from dataclasses import dataclass, field +from typing import List + +from TTS.tts.configs.shared_configs import BaseTTSConfig + + +@dataclass +class GlowTTSConfig(BaseTTSConfig): + """Defines parameters for GlowTTS model. + + Example: + + >>> from TTS.tts.configs.glow_tts_config import GlowTTSConfig + >>> config = GlowTTSConfig() + + Args: + model(str): + Model name used for selecting the right model at initialization. Defaults to `glow_tts`. + encoder_type (str): + Type of the encoder used by the model. Look at `TTS.tts.layers.glow_tts.encoder` for more details. + Defaults to `rel_pos_transformers`. + encoder_params (dict): + Parameters used to define the encoder network. Look at `TTS.tts.layers.glow_tts.encoder` for more details. + Defaults to `{"kernel_size": 3, "dropout_p": 0.1, "num_layers": 6, "num_heads": 2, "hidden_channels_ffn": 768}` + use_encoder_prenet (bool): + enable / disable the use of a prenet for the encoder. Defaults to True. + hidden_channels_enc (int): + Number of base hidden channels used by the encoder network. It defines the input and the output channel sizes, + and for some encoder types internal hidden channels sizes too. Defaults to 192. + hidden_channels_dec (int): + Number of base hidden channels used by the decoder WaveNet network. Defaults to 192 as in the original work. + hidden_channels_dp (int): + Number of layer channels of the duration predictor network. Defaults to 256 as in the original work. + mean_only (bool): + If true predict only the mean values by the decoder flow. Defaults to True. + out_channels (int): + Number of channels of the model output tensor. Defaults to 80. + num_flow_blocks_dec (int): + Number of decoder blocks. Defaults to 12. + inference_noise_scale (float): + Noise scale used at inference. Defaults to 0.33. + kernel_size_dec (int): + Decoder kernel size. Defaults to 5 + dilation_rate (int): + Rate to increase dilation by each layer in a decoder block. Defaults to 1. + num_block_layers (int): + Number of decoder layers in each decoder block. Defaults to 4. + dropout_p_dec (float): + Dropout rate for decoder. Defaults to 0.1. + num_speaker (int): + Number of speaker to define the size of speaker embedding layer. Defaults to 0. + c_in_channels (int): + Number of speaker embedding channels. It is set to 512 if embeddings are learned. Defaults to 0. + num_splits (int): + Number of split levels in inversible conv1x1 operation. Defaults to 4. + num_squeeze (int): + Number of squeeze levels. When squeezing channels increases and time steps reduces by the factor + 'num_squeeze'. Defaults to 2. + sigmoid_scale (bool): + enable/disable sigmoid scaling in decoder. Defaults to False. + mean_only (bool): + If True, encoder only computes mean value and uses constant variance for each time step. Defaults to true. + encoder_type (str): + Encoder module type. Possible values are`["rel_pos_transformer", "gated_conv", "residual_conv_bn", "time_depth_separable"]` + Check `TTS.tts.layers.glow_tts.encoder` for more details. Defaults to `rel_pos_transformers` as in the original paper. + encoder_params (dict): + Encoder module parameters. Defaults to None. + d_vector_dim (int): + Channels of external speaker embedding vectors. Defaults to 0. + data_dep_init_steps (int): + Number of steps used for computing normalization parameters at the beginning of the training. GlowTTS uses + Activation Normalization that pre-computes normalization stats at the beginning and use the same values + for the rest. Defaults to 10. + style_wav_for_test (str): + Path to the wav file used for changing the style of the speech. Defaults to None. + inference_noise_scale (float): + Variance used for sampling the random noise added to the decoder's input at inference. Defaults to 0.0. + length_scale (float): + Multiply the predicted durations with this value to change the speech speed. Defaults to 1. + use_speaker_embedding (bool): + enable / disable using speaker embeddings for multi-speaker models. If set True, the model is + in the multi-speaker mode. Defaults to False. + use_d_vector_file (bool): + enable /disable using external speaker embeddings in place of the learned embeddings. Defaults to False. + d_vector_file (str): + Path to the file including pre-computed speaker embeddings. Defaults to None. + noam_schedule (bool): + enable / disable the use of Noam LR scheduler. Defaults to False. + warmup_steps (int): + Number of warm-up steps for the Noam scheduler. Defaults 4000. + lr (float): + Initial learning rate. Defaults to `1e-3`. + wd (float): + Weight decay coefficient. Defaults to `1e-7`. + min_seq_len (int): + Minimum input sequence length to be used at training. + max_seq_len (int): + Maximum input sequence length to be used at training. Larger values result in more VRAM usage. + """ + + model: str = "glow_tts" + + # model params + num_chars: int = None + encoder_type: str = "rel_pos_transformer" + encoder_params: dict = field( + default_factory=lambda: { + "kernel_size": 3, + "dropout_p": 0.1, + "num_layers": 6, + "num_heads": 2, + "hidden_channels_ffn": 768, + } + ) + use_encoder_prenet: bool = True + hidden_channels_enc: int = 192 + hidden_channels_dec: int = 192 + hidden_channels_dp: int = 256 + dropout_p_dp: float = 0.1 + dropout_p_dec: float = 0.05 + mean_only: bool = True + out_channels: int = 80 + num_flow_blocks_dec: int = 12 + inference_noise_scale: float = 0.33 + kernel_size_dec: int = 5 + dilation_rate: int = 1 + num_block_layers: int = 4 + num_speakers: int = 0 + c_in_channels: int = 0 + num_splits: int = 4 + num_squeeze: int = 2 + sigmoid_scale: bool = False + encoder_type: str = "rel_pos_transformer" + encoder_params: dict = field( + default_factory=lambda: { + "kernel_size": 3, + "dropout_p": 0.1, + "num_layers": 6, + "num_heads": 2, + "hidden_channels_ffn": 768, + "input_length": None, + } + ) + d_vector_dim: int = 0 + + # training params + data_dep_init_steps: int = 10 + + # inference params + style_wav_for_test: str = None + inference_noise_scale: float = 0.0 + length_scale: float = 1.0 + + # multi-speaker settings + use_speaker_embedding: bool = False + speakers_file: str = None + use_d_vector_file: bool = False + d_vector_file: str = False + + # optimizer parameters + optimizer: str = "RAdam" + optimizer_params: dict = field(default_factory=lambda: {"betas": [0.9, 0.998], "weight_decay": 1e-6}) + lr_scheduler: str = "NoamLR" + lr_scheduler_params: dict = field(default_factory=lambda: {"warmup_steps": 4000}) + grad_clip: float = 5.0 + lr: float = 1e-3 + + # overrides + min_seq_len: int = 3 + max_seq_len: int = 500 + r: int = 1 # DO NOT CHANGE - TODO: make this immutable once coqpit implements it. + + # testing + test_sentences: List[str] = field( + default_factory=lambda: [ + "It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.", + "Be a voice, not an echo.", + "I'm sorry Dave. I'm afraid I can't do that.", + "This cake is great. It's so delicious and moist.", + "Prior to November 22, 1963.", + ] + ) diff --git a/Indic-TTS/TTS/TTS/tts/configs/shared_configs.py b/Indic-TTS/TTS/TTS/tts/configs/shared_configs.py new file mode 100644 index 0000000000000000000000000000000000000000..4704687c268780ed518f8c6a4ca64808dbab8e65 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/configs/shared_configs.py @@ -0,0 +1,335 @@ +from dataclasses import asdict, dataclass, field +from typing import Dict, List + +from coqpit import Coqpit, check_argument + +from TTS.config import BaseAudioConfig, BaseDatasetConfig, BaseTrainingConfig + + +@dataclass +class GSTConfig(Coqpit): + """Defines the Global Style Token Module + + Args: + gst_style_input_wav (str): + Path to the wav file used to define the style of the output speech at inference. Defaults to None. + + gst_style_input_weights (dict): + Defines the weights for each style token used at inference. Defaults to None. + + gst_embedding_dim (int): + Defines the size of the GST embedding vector dimensions. Defaults to 256. + + gst_num_heads (int): + Number of attention heads used by the multi-head attention. Defaults to 4. + + gst_num_style_tokens (int): + Number of style token vectors. Defaults to 10. + """ + + gst_style_input_wav: str = None + gst_style_input_weights: dict = None + gst_embedding_dim: int = 256 + gst_use_speaker_embedding: bool = False + gst_num_heads: int = 4 + gst_num_style_tokens: int = 10 + + def check_values( + self, + ): + """Check config fields""" + c = asdict(self) + super().check_values() + check_argument("gst_style_input_weights", c, restricted=False) + check_argument("gst_style_input_wav", c, restricted=False) + check_argument("gst_embedding_dim", c, restricted=True, min_val=0, max_val=1000) + check_argument("gst_use_speaker_embedding", c, restricted=False) + check_argument("gst_num_heads", c, restricted=True, min_val=2, max_val=10) + check_argument("gst_num_style_tokens", c, restricted=True, min_val=1, max_val=1000) + + +@dataclass +class CapacitronVAEConfig(Coqpit): + """Defines the capacitron VAE Module + Args: + capacitron_capacity (int): + Defines the variational capacity limit of the prosody embeddings. Defaults to 150. + capacitron_VAE_embedding_dim (int): + Defines the size of the Capacitron embedding vector dimension. Defaults to 128. + capacitron_use_text_summary_embeddings (bool): + If True, use a text summary embedding in Capacitron. Defaults to True. + capacitron_text_summary_embedding_dim (int): + Defines the size of the capacitron text embedding vector dimension. Defaults to 128. + capacitron_use_speaker_embedding (bool): + if True use speaker embeddings in Capacitron. Defaults to False. + capacitron_VAE_loss_alpha (float): + Weight for the VAE loss of the Tacotron model. If set less than or equal to zero, it disables the + corresponding loss function. Defaults to 0.25 + capacitron_grad_clip (float): + Gradient clipping value for all gradients except beta. Defaults to 5.0 + """ + + capacitron_loss_alpha: int = 1 + capacitron_capacity: int = 150 + capacitron_VAE_embedding_dim: int = 128 + capacitron_use_text_summary_embeddings: bool = True + capacitron_text_summary_embedding_dim: int = 128 + capacitron_use_speaker_embedding: bool = False + capacitron_VAE_loss_alpha: float = 0.25 + capacitron_grad_clip: float = 5.0 + + def check_values( + self, + ): + """Check config fields""" + c = asdict(self) + super().check_values() + check_argument("capacitron_capacity", c, restricted=True, min_val=10, max_val=500) + check_argument("capacitron_VAE_embedding_dim", c, restricted=True, min_val=16, max_val=1024) + check_argument("capacitron_use_speaker_embedding", c, restricted=False) + check_argument("capacitron_text_summary_embedding_dim", c, restricted=False, min_val=16, max_val=512) + check_argument("capacitron_VAE_loss_alpha", c, restricted=False) + check_argument("capacitron_grad_clip", c, restricted=False) + + +@dataclass +class CharactersConfig(Coqpit): + """Defines arguments for the `BaseCharacters` or `BaseVocabulary` and their subclasses. + + Args: + characters_class (str): + Defines the class of the characters used. If None, we pick ```Phonemes``` or ```Graphemes``` based on + the configuration. Defaults to None. + + vocab_dict (dict): + Defines the vocabulary dictionary used to encode the characters. Defaults to None. + + pad (str): + characters in place of empty padding. Defaults to None. + + eos (str): + characters showing the end of a sentence. Defaults to None. + + bos (str): + characters showing the beginning of a sentence. Defaults to None. + + blank (str): + Optional character used between characters by some models for better prosody. Defaults to `_blank`. + + characters (str): + character set used by the model. Characters not in this list are ignored when converting input text to + a list of sequence IDs. Defaults to None. + + punctuations (str): + characters considered as punctuation as parsing the input sentence. Defaults to None. + + phonemes (str): + characters considered as parsing phonemes. This is only for backwards compat. Use `characters` for new + models. Defaults to None. + + is_unique (bool): + remove any duplicate characters in the character lists. It is a bandaid for compatibility with the old + models trained with character lists with duplicates. Defaults to True. + + is_sorted (bool): + Sort the characters in alphabetical order. Defaults to True. + """ + + characters_class: str = None + + # using BaseVocabulary + vocab_dict: Dict = None + + # using on BaseCharacters + pad: str = None + eos: str = None + bos: str = None + blank: str = None + characters: str = None + punctuations: str = None + phonemes: str = None + is_unique: bool = True # for backwards compatibility of models trained with char sets with duplicates + is_sorted: bool = True + + +@dataclass +class BaseTTSConfig(BaseTrainingConfig): + """Shared parameters among all the tts models. + + Args: + + audio (BaseAudioConfig): + Audio processor config object instance. + + use_phonemes (bool): + enable / disable phoneme use. + + phonemizer (str): + Name of the phonemizer to use. If set None, the phonemizer will be selected by `phoneme_language`. + Defaults to None. + + phoneme_language (str): + Language code for the phonemizer. You can check the list of supported languages by running + `python TTS/tts/utils/text/phonemizers/__init__.py`. Defaults to None. + + compute_input_seq_cache (bool): + enable / disable precomputation of the phoneme sequences. At the expense of some delay at the beginning of + the training, It allows faster data loader time and precise limitation with `max_seq_len` and + `min_seq_len`. + + text_cleaner (str): + Name of the text cleaner used for cleaning and formatting transcripts. + + enable_eos_bos_chars (bool): + enable / disable the use of eos and bos characters. + + test_senteces_file (str): + Path to a txt file that has sentences used at test time. The file must have a sentence per line. + + phoneme_cache_path (str): + Path to the output folder caching the computed phonemes for each sample. + + characters (CharactersConfig): + Instance of a CharactersConfig class. + + batch_group_size (int): + Size of the batch groups used for bucketing. By default, the dataloader orders samples by the sequence + length for a more efficient and stable training. If `batch_group_size > 1` then it performs bucketing to + prevent using the same batches for each epoch. + + loss_masking (bool): + enable / disable masking loss values against padded segments of samples in a batch. + + sort_by_audio_len (bool): + If true, dataloder sorts the data by audio length else sorts by the input text length. Defaults to `False`. + + min_text_len (int): + Minimum length of input text to be used. All shorter samples will be ignored. Defaults to 0. + + max_text_len (int): + Maximum length of input text to be used. All longer samples will be ignored. Defaults to float("inf"). + + min_audio_len (int): + Minimum length of input audio to be used. All shorter samples will be ignored. Defaults to 0. + + max_audio_len (int): + Maximum length of input audio to be used. All longer samples will be ignored. The maximum length in the + dataset defines the VRAM used in the training. Hence, pay attention to this value if you encounter an + OOM error in training. Defaults to float("inf"). + + compute_f0 (int): + (Not in use yet). + + compute_linear_spec (bool): + If True data loader computes and returns linear spectrograms alongside the other data. + + precompute_num_workers (int): + Number of workers to precompute features. Defaults to 0. + + use_noise_augment (bool): + Augment the input audio with random noise. + + start_by_longest (bool): + If True, the data loader will start loading the longest batch first. It is useful for checking OOM issues. + Defaults to False. + + add_blank (bool): + Add blank characters between each other two characters. It improves performance for some models at expense + of slower run-time due to the longer input sequence. + + datasets (List[BaseDatasetConfig]): + List of datasets used for training. If multiple datasets are provided, they are merged and used together + for training. + + optimizer (str): + Optimizer used for the training. Set one from `torch.optim.Optimizer` or `TTS.utils.training`. + Defaults to ``. + + optimizer_params (dict): + Optimizer kwargs. Defaults to `{"betas": [0.8, 0.99], "weight_decay": 0.0}` + + lr_scheduler (str): + Learning rate scheduler for the training. Use one from `torch.optim.Scheduler` schedulers or + `TTS.utils.training`. Defaults to ``. + + lr_scheduler_params (dict): + Parameters for the generator learning rate scheduler. Defaults to `{"warmup": 4000}`. + + test_sentences (List[str]): + List of sentences to be used at testing. Defaults to '[]' + + eval_split_max_size (int): + Number maximum of samples to be used for evaluation in proportion split. Defaults to None (Disabled). + + eval_split_size (float): + If between 0.0 and 1.0 represents the proportion of the dataset to include in the evaluation set. + If > 1, represents the absolute number of evaluation samples. Defaults to 0.01 (1%). + + use_speaker_weighted_sampler (bool): + Enable / Disable the batch balancer by speaker. Defaults to ```False```. + + speaker_weighted_sampler_alpha (float): + Number that control the influence of the speaker sampler weights. Defaults to ```1.0```. + + use_language_weighted_sampler (bool): + Enable / Disable the batch balancer by language. Defaults to ```False```. + + language_weighted_sampler_alpha (float): + Number that control the influence of the language sampler weights. Defaults to ```1.0```. + + use_length_weighted_sampler (bool): + Enable / Disable the batch balancer by audio length. If enabled the dataset will be divided + into 10 buckets considering the min and max audio of the dataset. The sampler weights will be + computed forcing to have the same quantity of data for each bucket in each training batch. Defaults to ```False```. + + length_weighted_sampler_alpha (float): + Number that control the influence of the length sampler weights. Defaults to ```1.0```. + """ + + audio: BaseAudioConfig = field(default_factory=BaseAudioConfig) + # phoneme settings + use_phonemes: bool = False + phonemizer: str = None + phoneme_language: str = None + compute_input_seq_cache: bool = False + text_cleaner: str = None + enable_eos_bos_chars: bool = False + test_sentences_file: str = "" + phoneme_cache_path: str = None + # vocabulary parameters + characters: CharactersConfig = None + add_blank: bool = False + # training params + batch_group_size: int = 0 + loss_masking: bool = None + # dataloading + sort_by_audio_len: bool = False + min_audio_len: int = 1 + max_audio_len: int = float("inf") + min_text_len: int = 1 + max_text_len: int = float("inf") + compute_f0: bool = False + compute_linear_spec: bool = False + precompute_num_workers: int = 0 + use_noise_augment: bool = False + start_by_longest: bool = False + # dataset + datasets: List[BaseDatasetConfig] = field(default_factory=lambda: [BaseDatasetConfig()]) + # optimizer + optimizer: str = "radam" + optimizer_params: dict = None + # scheduler + lr_scheduler: str = "" + lr_scheduler_params: dict = field(default_factory=lambda: {}) + # testing + test_sentences: List[str] = field(default_factory=lambda: []) + # evaluation + eval_split_max_size: int = None + eval_split_size: float = 0.01 + # weighted samplers + use_speaker_weighted_sampler: bool = False + speaker_weighted_sampler_alpha: float = 1.0 + use_language_weighted_sampler: bool = False + language_weighted_sampler_alpha: float = 1.0 + use_length_weighted_sampler: bool = False + length_weighted_sampler_alpha: float = 1.0 diff --git a/Indic-TTS/TTS/TTS/tts/configs/speedy_speech_config.py b/Indic-TTS/TTS/TTS/tts/configs/speedy_speech_config.py new file mode 100644 index 0000000000000000000000000000000000000000..4bf5101fcad2479e87836c827658c88addfd7cc6 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/configs/speedy_speech_config.py @@ -0,0 +1,192 @@ +from dataclasses import dataclass, field +from typing import List + +from TTS.tts.configs.shared_configs import BaseTTSConfig +from TTS.tts.models.forward_tts import ForwardTTSArgs + + +@dataclass +class SpeedySpeechConfig(BaseTTSConfig): + """Configure `ForwardTTS` as SpeedySpeech model. + + Example: + + >>> from TTS.tts.configs.speedy_speech_config import SpeedySpeechConfig + >>> config = SpeedySpeechConfig() + + Args: + model (str): + Model name used for selecting the right model at initialization. Defaults to `speedy_speech`. + + base_model (str): + Name of the base model being configured as this model so that ๐Ÿธ TTS knows it needs to initiate + the base model rather than searching for the `model` implementation. Defaults to `forward_tts`. + + model_args (Coqpit): + Model class arguments. Check `FastPitchArgs` for more details. Defaults to `FastPitchArgs()`. + + data_dep_init_steps (int): + Number of steps used for computing normalization parameters at the beginning of the training. GlowTTS uses + Activation Normalization that pre-computes normalization stats at the beginning and use the same values + for the rest. Defaults to 10. + + speakers_file (str): + Path to the file containing the list of speakers. Needed at inference for loading matching speaker ids to + speaker names. Defaults to `None`. + + use_speaker_embedding (bool): + enable / disable using speaker embeddings for multi-speaker models. If set True, the model is + in the multi-speaker mode. Defaults to False. + + use_d_vector_file (bool): + enable /disable using external speaker embeddings in place of the learned embeddings. Defaults to False. + + d_vector_file (str): + Path to the file including pre-computed speaker embeddings. Defaults to None. + + d_vector_dim (int): + Dimension of the external speaker embeddings. Defaults to 0. + + optimizer (str): + Name of the model optimizer. Defaults to `RAdam`. + + optimizer_params (dict): + Arguments of the model optimizer. Defaults to `{"betas": [0.9, 0.998], "weight_decay": 1e-6}`. + + lr_scheduler (str): + Name of the learning rate scheduler. Defaults to `Noam`. + + lr_scheduler_params (dict): + Arguments of the learning rate scheduler. Defaults to `{"warmup_steps": 4000}`. + + lr (float): + Initial learning rate. Defaults to `1e-3`. + + grad_clip (float): + Gradient norm clipping value. Defaults to `5.0`. + + spec_loss_type (str): + Type of the spectrogram loss. Check `ForwardTTSLoss` for possible values. Defaults to `l1`. + + duration_loss_type (str): + Type of the duration loss. Check `ForwardTTSLoss` for possible values. Defaults to `huber`. + + use_ssim_loss (bool): + Enable/disable the use of SSIM (Structural Similarity) loss. Defaults to True. + + wd (float): + Weight decay coefficient. Defaults to `1e-7`. + + ssim_loss_alpha (float): + Weight for the SSIM loss. If set 0, disables the SSIM loss. Defaults to 1.0. + + dur_loss_alpha (float): + Weight for the duration predictor's loss. If set 0, disables the huber loss. Defaults to 1.0. + + spec_loss_alpha (float): + Weight for the L1 spectrogram loss. If set 0, disables the L1 loss. Defaults to 1.0. + + binary_loss_alpha (float): + Weight for the binary loss. If set 0, disables the binary loss. Defaults to 1.0. + + binary_loss_warmup_epochs (float): + Number of epochs to gradually increase the binary loss impact. Defaults to 150. + + min_seq_len (int): + Minimum input sequence length to be used at training. + + max_seq_len (int): + Maximum input sequence length to be used at training. Larger values result in more VRAM usage. + """ + + model: str = "speedy_speech" + base_model: str = "forward_tts" + + # set model args as SpeedySpeech + model_args: ForwardTTSArgs = ForwardTTSArgs( + use_pitch=False, + encoder_type="residual_conv_bn", + encoder_params={ + "kernel_size": 4, + "dilations": 4 * [1, 2, 4] + [1], + "num_conv_blocks": 2, + "num_res_blocks": 13, + }, + decoder_type="residual_conv_bn", + decoder_params={ + "kernel_size": 4, + "dilations": 4 * [1, 2, 4, 8] + [1], + "num_conv_blocks": 2, + "num_res_blocks": 17, + }, + out_channels=80, + hidden_channels=128, + positional_encoding=True, + detach_duration_predictor=True, + ) + + # multi-speaker settings + num_speakers: int = 0 + speakers_file: str = None + use_speaker_embedding: bool = False + use_d_vector_file: bool = False + d_vector_file: str = False + d_vector_dim: int = 0 + + # optimizer parameters + optimizer: str = "Adam" + optimizer_params: dict = field(default_factory=lambda: {"betas": [0.9, 0.998], "weight_decay": 1e-6}) + lr_scheduler: str = "NoamLR" + lr_scheduler_params: dict = field(default_factory=lambda: {"warmup_steps": 4000}) + lr: float = 1e-4 + grad_clip: float = 5.0 + + # loss params + spec_loss_type: str = "l1" + duration_loss_type: str = "huber" + use_ssim_loss: bool = False + ssim_loss_alpha: float = 1.0 + dur_loss_alpha: float = 1.0 + spec_loss_alpha: float = 1.0 + aligner_loss_alpha: float = 1.0 + binary_align_loss_alpha: float = 0.3 + binary_loss_warmup_epochs: int = 150 + + # overrides + min_seq_len: int = 13 + max_seq_len: int = 200 + r: int = 1 # DO NOT CHANGE + + # dataset configs + compute_f0: bool = False + f0_cache_path: str = None + + # testing + test_sentences: List[str] = field( + default_factory=lambda: [ + "It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.", + "Be a voice, not an echo.", + "I'm sorry Dave. I'm afraid I can't do that.", + "This cake is great. It's so delicious and moist.", + "Prior to November 22, 1963.", + ] + ) + + def __post_init__(self): + # Pass multi-speaker parameters to the model args as `model.init_multispeaker()` looks for it there. + if self.num_speakers > 0: + self.model_args.num_speakers = self.num_speakers + + # speaker embedding settings + if self.use_speaker_embedding: + self.model_args.use_speaker_embedding = True + if self.speakers_file: + self.model_args.speakers_file = self.speakers_file + + # d-vector settings + if self.use_d_vector_file: + self.model_args.use_d_vector_file = True + if self.d_vector_dim is not None and self.d_vector_dim > 0: + self.model_args.d_vector_dim = self.d_vector_dim + if self.d_vector_file: + self.model_args.d_vector_file = self.d_vector_file diff --git a/Indic-TTS/TTS/TTS/tts/configs/tacotron2_config.py b/Indic-TTS/TTS/TTS/tts/configs/tacotron2_config.py new file mode 100644 index 0000000000000000000000000000000000000000..95b65202218cf3aa0dd70c8d8cd55a3f913ed308 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/configs/tacotron2_config.py @@ -0,0 +1,21 @@ +from dataclasses import dataclass + +from TTS.tts.configs.tacotron_config import TacotronConfig + + +@dataclass +class Tacotron2Config(TacotronConfig): + """Defines parameters for Tacotron2 based models. + + Example: + + >>> from TTS.tts.configs.tacotron2_config import Tacotron2Config + >>> config = Tacotron2Config() + + Check `TacotronConfig` for argument descriptions. + """ + + model: str = "tacotron2" + out_channels: int = 80 + encoder_in_features: int = 512 + decoder_in_features: int = 512 diff --git a/Indic-TTS/TTS/TTS/tts/configs/tacotron_config.py b/Indic-TTS/TTS/TTS/tts/configs/tacotron_config.py new file mode 100644 index 0000000000000000000000000000000000000000..e25609ffcf685fae91fc40eaa2201e728ebc73c4 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/configs/tacotron_config.py @@ -0,0 +1,235 @@ +from dataclasses import dataclass, field +from typing import List + +from TTS.tts.configs.shared_configs import BaseTTSConfig, CapacitronVAEConfig, GSTConfig + + +@dataclass +class TacotronConfig(BaseTTSConfig): + """Defines parameters for Tacotron based models. + + Example: + + >>> from TTS.tts.configs.tacotron_config import TacotronConfig + >>> config = TacotronConfig() + + Args: + model (str): + Model name used to select the right model class to initilize. Defaults to `Tacotron`. + use_gst (bool): + enable / disable the use of Global Style Token modules. Defaults to False. + gst (GSTConfig): + Instance of `GSTConfig` class. + gst_style_input (str): + Path to the wav file used at inference to set the speech style through GST. If `GST` is enabled and + this is not defined, the model uses a zero vector as an input. Defaults to None. + use_capacitron_vae (bool): + enable / disable the use of Capacitron modules. Defaults to False. + capacitron_vae (CapacitronConfig): + Instance of `CapacitronConfig` class. + num_chars (int): + Number of characters used by the model. It must be defined before initializing the model. Defaults to None. + num_speakers (int): + Number of speakers for multi-speaker models. Defaults to 1. + r (int): + Initial number of output frames that the decoder computed per iteration. Larger values makes training and inference + faster but reduces the quality of the output frames. This must be equal to the largest `r` value used in + `gradual_training` schedule. Defaults to 1. + gradual_training (List[List]): + Parameters for the gradual training schedule. It is in the form `[[a, b, c], [d ,e ,f] ..]` where `a` is + the step number to start using the rest of the values, `b` is the `r` value and `c` is the batch size. + If sets None, no gradual training is used. Defaults to None. + memory_size (int): + Defines the number of previous frames used by the Prenet. If set to < 0, then it uses only the last frame. + Defaults to -1. + prenet_type (str): + `original` or `bn`. `original` sets the default Prenet and `bn` uses Batch Normalization version of the + Prenet. Defaults to `original`. + prenet_dropout (bool): + enables / disables the use of dropout in the Prenet. Defaults to True. + prenet_dropout_at_inference (bool): + enable / disable the use of dropout in the Prenet at the inference time. Defaults to False. + stopnet (bool): + enable /disable the Stopnet that predicts the end of the decoder sequence. Defaults to True. + stopnet_pos_weight (float): + Weight that is applied to over-weight positive instances in the Stopnet loss. Use larger values with + datasets with longer sentences. Defaults to 10. + max_decoder_steps (int): + Max number of steps allowed for the decoder. Defaults to 50. + encoder_in_features (int): + Channels of encoder input and character embedding tensors. Defaults to 256. + decoder_in_features (int): + Channels of decoder input and encoder output tensors. Defaults to 256. + out_channels (int): + Channels of the final model output. It must match the spectragram size. Defaults to 80. + separate_stopnet (bool): + Use a distinct Stopnet which is trained separately from the rest of the model. Defaults to True. + attention_type (str): + attention type. Check ```TTS.tts.layers.attentions.init_attn```. Defaults to 'original'. + attention_heads (int): + Number of attention heads for GMM attention. Defaults to 5. + windowing (bool): + It especially useful at inference to keep attention alignment diagonal. Defaults to False. + use_forward_attn (bool): + It is only valid if ```attn_type``` is ```original```. Defaults to False. + forward_attn_mask (bool): + enable/disable extra masking over forward attention. It is useful at inference to prevent + possible attention failures. Defaults to False. + transition_agent (bool): + enable/disable transition agent in forward attention. Defaults to False. + location_attn (bool): + enable/disable location sensitive attention as in the original Tacotron2 paper. + It is only valid if ```attn_type``` is ```original```. Defaults to True. + bidirectional_decoder (bool): + enable/disable bidirectional decoding. Defaults to False. + double_decoder_consistency (bool): + enable/disable double decoder consistency. Defaults to False. + ddc_r (int): + reduction rate used by the coarse decoder when `double_decoder_consistency` is in use. Set this + as a multiple of the `r` value. Defaults to 6. + speakers_file (str): + Path to the speaker mapping file for the Speaker Manager. Defaults to None. + use_speaker_embedding (bool): + enable / disable using speaker embeddings for multi-speaker models. If set True, the model is + in the multi-speaker mode. Defaults to False. + use_d_vector_file (bool): + enable /disable using external speaker embeddings in place of the learned embeddings. Defaults to False. + d_vector_file (str): + Path to the file including pre-computed speaker embeddings. Defaults to None. + optimizer (str): + Optimizer used for the training. Set one from `torch.optim.Optimizer` or `TTS.utils.training`. + Defaults to `RAdam`. + optimizer_params (dict): + Optimizer kwargs. Defaults to `{"betas": [0.8, 0.99], "weight_decay": 0.0}` + lr_scheduler (str): + Learning rate scheduler for the training. Use one from `torch.optim.Scheduler` schedulers or + `TTS.utils.training`. Defaults to `NoamLR`. + lr_scheduler_params (dict): + Parameters for the generator learning rate scheduler. Defaults to `{"warmup": 4000}`. + lr (float): + Initial learning rate. Defaults to `1e-4`. + wd (float): + Weight decay coefficient. Defaults to `1e-6`. + grad_clip (float): + Gradient clipping threshold. Defaults to `5`. + seq_len_norm (bool): + enable / disable the sequnce length normalization in the loss functions. If set True, loss of a sample + is divided by the sequence length. Defaults to False. + loss_masking (bool): + enable / disable masking the paddings of the samples in loss computation. Defaults to True. + decoder_loss_alpha (float): + Weight for the decoder loss of the Tacotron model. If set less than or equal to zero, it disables the + corresponding loss function. Defaults to 0.25 + postnet_loss_alpha (float): + Weight for the postnet loss of the Tacotron model. If set less than or equal to zero, it disables the + corresponding loss function. Defaults to 0.25 + postnet_diff_spec_alpha (float): + Weight for the postnet differential loss of the Tacotron model. If set less than or equal to zero, it disables the + corresponding loss function. Defaults to 0.25 + decoder_diff_spec_alpha (float): + + Weight for the decoder differential loss of the Tacotron model. If set less than or equal to zero, it disables the + corresponding loss function. Defaults to 0.25 + decoder_ssim_alpha (float): + Weight for the decoder SSIM loss of the Tacotron model. If set less than or equal to zero, it disables the + corresponding loss function. Defaults to 0.25 + postnet_ssim_alpha (float): + Weight for the postnet SSIM loss of the Tacotron model. If set less than or equal to zero, it disables the + corresponding loss function. Defaults to 0.25 + ga_alpha (float): + Weight for the guided attention loss. If set less than or equal to zero, it disables the corresponding loss + function. Defaults to 5. + """ + + model: str = "tacotron" + # model_params: TacotronArgs = field(default_factory=lambda: TacotronArgs()) + use_gst: bool = False + gst: GSTConfig = None + gst_style_input: str = None + + use_capacitron_vae: bool = False + capacitron_vae: CapacitronVAEConfig = None + + # model specific params + num_speakers: int = 1 + num_chars: int = 0 + r: int = 2 + gradual_training: List[List[int]] = None + memory_size: int = -1 + prenet_type: str = "original" + prenet_dropout: bool = True + prenet_dropout_at_inference: bool = False + stopnet: bool = True + separate_stopnet: bool = True + stopnet_pos_weight: float = 10.0 + max_decoder_steps: int = 500 + encoder_in_features: int = 256 + decoder_in_features: int = 256 + decoder_output_dim: int = 80 + out_channels: int = 513 + + # attention layers + attention_type: str = "original" + attention_heads: int = None + attention_norm: str = "sigmoid" + attention_win: bool = False + windowing: bool = False + use_forward_attn: bool = False + forward_attn_mask: bool = False + transition_agent: bool = False + location_attn: bool = True + + # advance methods + bidirectional_decoder: bool = False + double_decoder_consistency: bool = False + ddc_r: int = 6 + + # multi-speaker settings + speakers_file: str = None + use_speaker_embedding: bool = False + speaker_embedding_dim: int = 512 + use_d_vector_file: bool = False + d_vector_file: str = False + d_vector_dim: int = None + + # optimizer parameters + optimizer: str = "RAdam" + optimizer_params: dict = field(default_factory=lambda: {"betas": [0.9, 0.998], "weight_decay": 1e-6}) + lr_scheduler: str = "NoamLR" + lr_scheduler_params: dict = field(default_factory=lambda: {"warmup_steps": 4000}) + lr: float = 1e-4 + grad_clip: float = 5.0 + seq_len_norm: bool = False + loss_masking: bool = True + + # loss params + decoder_loss_alpha: float = 0.25 + postnet_loss_alpha: float = 0.25 + postnet_diff_spec_alpha: float = 0.25 + decoder_diff_spec_alpha: float = 0.25 + decoder_ssim_alpha: float = 0.25 + postnet_ssim_alpha: float = 0.25 + ga_alpha: float = 5.0 + + # testing + test_sentences: List[str] = field( + default_factory=lambda: [ + "It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.", + "Be a voice, not an echo.", + "I'm sorry Dave. I'm afraid I can't do that.", + "This cake is great. It's so delicious and moist.", + "Prior to November 22, 1963.", + ] + ) + + def check_values(self): + if self.gradual_training: + assert ( + self.gradual_training[0][1] == self.r + ), f"[!] the first scheduled gradual training `r` must be equal to the model's `r` value. {self.gradual_training[0][1]} vs {self.r}" + if self.model == "tacotron" and self.audio is not None: + assert self.out_channels == ( + self.audio.fft_size // 2 + 1 + ), f"{self.out_channels} vs {self.audio.fft_size // 2 + 1}" + if self.model == "tacotron2" and self.audio is not None: + assert self.out_channels == self.audio.num_mels diff --git a/Indic-TTS/TTS/TTS/tts/configs/vits_config.py b/Indic-TTS/TTS/TTS/tts/configs/vits_config.py new file mode 100644 index 0000000000000000000000000000000000000000..a8c7f91dcd965e0d1f1e3f2b78de321e27af3b95 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/configs/vits_config.py @@ -0,0 +1,155 @@ +from dataclasses import dataclass, field +from typing import List + +from TTS.tts.configs.shared_configs import BaseTTSConfig +from TTS.tts.models.vits import VitsArgs + + +@dataclass +class VitsConfig(BaseTTSConfig): + """Defines parameters for VITS End2End TTS model. + + Args: + model (str): + Model name. Do not change unless you know what you are doing. + + model_args (VitsArgs): + Model architecture arguments. Defaults to `VitsArgs()`. + + grad_clip (List): + Gradient clipping thresholds for each optimizer. Defaults to `[1000.0, 1000.0]`. + + lr_gen (float): + Initial learning rate for the generator. Defaults to 0.0002. + + lr_disc (float): + Initial learning rate for the discriminator. Defaults to 0.0002. + + lr_scheduler_gen (str): + Name of the learning rate scheduler for the generator. One of the `torch.optim.lr_scheduler.*`. Defaults to + `ExponentialLR`. + + lr_scheduler_gen_params (dict): + Parameters for the learning rate scheduler of the generator. Defaults to `{'gamma': 0.999875, "last_epoch":-1}`. + + lr_scheduler_disc (str): + Name of the learning rate scheduler for the discriminator. One of the `torch.optim.lr_scheduler.*`. Defaults to + `ExponentialLR`. + + lr_scheduler_disc_params (dict): + Parameters for the learning rate scheduler of the discriminator. Defaults to `{'gamma': 0.999875, "last_epoch":-1}`. + + scheduler_after_epoch (bool): + If true, step the schedulers after each epoch else after each step. Defaults to `False`. + + optimizer (str): + Name of the optimizer to use with both the generator and the discriminator networks. One of the + `torch.optim.*`. Defaults to `AdamW`. + + kl_loss_alpha (float): + Loss weight for KL loss. Defaults to 1.0. + + disc_loss_alpha (float): + Loss weight for the discriminator loss. Defaults to 1.0. + + gen_loss_alpha (float): + Loss weight for the generator loss. Defaults to 1.0. + + feat_loss_alpha (float): + Loss weight for the feature matching loss. Defaults to 1.0. + + mel_loss_alpha (float): + Loss weight for the mel loss. Defaults to 45.0. + + return_wav (bool): + If true, data loader returns the waveform as well as the other outputs. Do not change. Defaults to `True`. + + compute_linear_spec (bool): + If true, the linear spectrogram is computed and returned alongside the mel output. Do not change. Defaults to `True`. + + r (int): + Number of spectrogram frames to be generated at a time. Do not change. Defaults to `1`. + + add_blank (bool): + If true, a blank token is added in between every character. Defaults to `True`. + + test_sentences (List[List]): + List of sentences with speaker and language information to be used for testing. + + language_ids_file (str): + Path to the language ids file. + + use_language_embedding (bool): + If true, language embedding is used. Defaults to `False`. + + Note: + Check :class:`TTS.tts.configs.shared_configs.BaseTTSConfig` for the inherited parameters. + + Example: + + >>> from TTS.tts.configs.vits_config import VitsConfig + >>> config = VitsConfig() + """ + + model: str = "vits" + # model specific params + model_args: VitsArgs = field(default_factory=VitsArgs) + + # optimizer + grad_clip: List[float] = field(default_factory=lambda: [1000, 1000]) + lr_gen: float = 0.0002 + lr_disc: float = 0.0002 + lr_scheduler_gen: str = "ExponentialLR" + lr_scheduler_gen_params: dict = field(default_factory=lambda: {"gamma": 0.999875, "last_epoch": -1}) + lr_scheduler_disc: str = "ExponentialLR" + lr_scheduler_disc_params: dict = field(default_factory=lambda: {"gamma": 0.999875, "last_epoch": -1}) + scheduler_after_epoch: bool = True + optimizer: str = "AdamW" + optimizer_params: dict = field(default_factory=lambda: {"betas": [0.8, 0.99], "eps": 1e-9, "weight_decay": 0.01}) + + # loss params + kl_loss_alpha: float = 1.0 + disc_loss_alpha: float = 1.0 + gen_loss_alpha: float = 1.0 + feat_loss_alpha: float = 1.0 + mel_loss_alpha: float = 45.0 + dur_loss_alpha: float = 1.0 + speaker_encoder_loss_alpha: float = 1.0 + + # data loader params + return_wav: bool = True + compute_linear_spec: bool = True + + # overrides + r: int = 1 # DO NOT CHANGE + add_blank: bool = True + + # testing + test_sentences: List[List] = field( + default_factory=lambda: [ + ["It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent."], + ["Be a voice, not an echo."], + ["I'm sorry Dave. I'm afraid I can't do that."], + ["This cake is great. It's so delicious and moist."], + ["Prior to November 22, 1963."], + ] + ) + + # multi-speaker settings + # use speaker embedding layer + num_speakers: int = 0 + use_speaker_embedding: bool = False + speakers_file: str = None + speaker_embedding_channels: int = 256 + language_ids_file: str = None + use_language_embedding: bool = False + + # use d-vectors + use_d_vector_file: bool = False + d_vector_file: str = None + d_vector_dim: int = None + + def __post_init__(self): + for key, val in self.model_args.items(): + if hasattr(self, key): + self[key] = val diff --git a/Indic-TTS/TTS/TTS/tts/datasets/__init__.py b/Indic-TTS/TTS/TTS/tts/datasets/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6c7c9eddeae7dd68cd8e73feab9e6f7ec7f002b0 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/datasets/__init__.py @@ -0,0 +1,169 @@ +import sys +from collections import Counter +from pathlib import Path +from typing import Callable, Dict, List, Tuple, Union + +import numpy as np + +from TTS.tts.datasets.dataset import * +from TTS.tts.datasets.formatters import * + + +def split_dataset(items, eval_split_max_size=None, eval_split_size=0.01): + """Split a dataset into train and eval. Consider speaker distribution in multi-speaker training. + + Args: + <<<<<<< HEAD + items (List[List]): + A list of samples. Each sample is a list of `[audio_path, text, speaker_id]`. + + eval_split_max_size (int): + Number maximum of samples to be used for evaluation in proportion split. Defaults to None (Disabled). + + eval_split_size (float): + If between 0.0 and 1.0 represents the proportion of the dataset to include in the evaluation set. + If > 1, represents the absolute number of evaluation samples. Defaults to 0.01 (1%). + ======= + items (List[List]): A list of samples. Each sample is a list of `[text, audio_path, speaker_id]`. + >>>>>>> Fix docstring + """ + speakers = [item["speaker_name"] for item in items] + is_multi_speaker = len(set(speakers)) > 1 + if eval_split_size > 1: + eval_split_size = int(eval_split_size) + else: + if eval_split_max_size: + eval_split_size = min(eval_split_max_size, int(len(items) * eval_split_size)) + else: + eval_split_size = int(len(items) * eval_split_size) + + assert ( + eval_split_size > 0 + ), " [!] You do not have enough samples for the evaluation set. You can work around this setting the 'eval_split_size' parameter to a minimum of {}".format( + 1 / len(items) + ) + np.random.seed(0) + np.random.shuffle(items) + if is_multi_speaker: + items_eval = [] + speakers = [item["speaker_name"] for item in items] + speaker_counter = Counter(speakers) + while len(items_eval) < eval_split_size: + item_idx = np.random.randint(0, len(items)) + speaker_to_be_removed = items[item_idx]["speaker_name"] + if speaker_counter[speaker_to_be_removed] > 1: + items_eval.append(items[item_idx]) + speaker_counter[speaker_to_be_removed] -= 1 + del items[item_idx] + return items_eval, items + return items[:eval_split_size], items[eval_split_size:] + + +def load_tts_samples( + datasets: Union[List[Dict], Dict], + eval_split=True, + formatter: Callable = None, + eval_split_max_size=None, + eval_split_size=0.01, +) -> Tuple[List[List], List[List]]: + """Parse the dataset from the datasets config, load the samples as a List and load the attention alignments if provided. + If `formatter` is not None, apply the formatter to the samples else pick the formatter from the available ones based + on the dataset name. + + Args: + datasets (List[Dict], Dict): A list of datasets or a single dataset dictionary. If multiple datasets are + in the list, they are all merged. + + eval_split (bool, optional): If true, create a evaluation split. If an eval split provided explicitly, generate + an eval split automatically. Defaults to True. + + formatter (Callable, optional): The preprocessing function to be applied to create the list of samples. It + must take the root_path and the meta_file name and return a list of samples in the format of + `[[text, audio_path, speaker_id], ...]]`. See the available formatters in `TTS.tts.dataset.formatter` as + example. Defaults to None. + + eval_split_max_size (int): + Number maximum of samples to be used for evaluation in proportion split. Defaults to None (Disabled). + + eval_split_size (float): + If between 0.0 and 1.0 represents the proportion of the dataset to include in the evaluation set. + If > 1, represents the absolute number of evaluation samples. Defaults to 0.01 (1%). + + Returns: + Tuple[List[List], List[List]: training and evaluation splits of the dataset. + """ + meta_data_train_all = [] + meta_data_eval_all = [] if eval_split else None + if not isinstance(datasets, list): + datasets = [datasets] + for dataset in datasets: + name = dataset["name"] + root_path = dataset["path"] + meta_file_train = dataset["meta_file_train"] + meta_file_val = dataset["meta_file_val"] + ignored_speakers = dataset["ignored_speakers"] + language = dataset["language"] + + # setup the right data processor + if formatter is None: + formatter = _get_formatter_by_name(name) + # load train set + meta_data_train = formatter(root_path, meta_file_train, ignored_speakers=ignored_speakers) + meta_data_train = [{**item, **{"language": language}} for item in meta_data_train] + + print(f" | > Found {len(meta_data_train)} files in {Path(root_path).resolve()}") + # load evaluation split if set + if eval_split: + if meta_file_val: + meta_data_eval = formatter(root_path, meta_file_val, ignored_speakers=ignored_speakers) + meta_data_eval = [{**item, **{"language": language}} for item in meta_data_eval] + else: + meta_data_eval, meta_data_train = split_dataset(meta_data_train, eval_split_max_size, eval_split_size) + meta_data_eval_all += meta_data_eval + meta_data_train_all += meta_data_train + # load attention masks for the duration predictor training + if dataset.meta_file_attn_mask: + meta_data = dict(load_attention_mask_meta_data(dataset["meta_file_attn_mask"])) + for idx, ins in enumerate(meta_data_train_all): + attn_file = meta_data[ins["audio_file"]].strip() + meta_data_train_all[idx].update({"alignment_file": attn_file}) + if meta_data_eval_all: + for idx, ins in enumerate(meta_data_eval_all): + attn_file = meta_data[ins["audio_file"]].strip() + meta_data_eval_all[idx].update({"alignment_file": attn_file}) + # set none for the next iter + formatter = None + return meta_data_train_all, meta_data_eval_all + + +def load_attention_mask_meta_data(metafile_path): + """Load meta data file created by compute_attention_masks.py""" + with open(metafile_path, "r", encoding="utf-8") as f: + lines = f.readlines() + + meta_data = [] + for line in lines: + wav_file, attn_file = line.split("|") + meta_data.append([wav_file, attn_file]) + return meta_data + + +def _get_formatter_by_name(name): + """Returns the respective preprocessing function.""" + thismodule = sys.modules[__name__] + return getattr(thismodule, name.lower()) + + +def find_unique_chars(data_samples, verbose=True): + texts = "".join(item[0] for item in data_samples) + chars = set(texts) + lower_chars = filter(lambda c: c.islower(), chars) + chars_force_lower = [c.lower() for c in chars] + chars_force_lower = set(chars_force_lower) + + if verbose: + print(f" > Number of unique characters: {len(chars)}") + print(f" > Unique characters: {''.join(sorted(chars))}") + print(f" > Unique lower characters: {''.join(sorted(lower_chars))}") + print(f" > Unique all forced to lower characters: {''.join(sorted(chars_force_lower))}") + return chars_force_lower diff --git a/Indic-TTS/TTS/TTS/tts/datasets/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/datasets/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7fc2a0b8c96c12b96d7effa0aba9df664526bbd5 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/datasets/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/datasets/__pycache__/dataset.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/datasets/__pycache__/dataset.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c023ebfae676f746145afc1511ec29ac293b6b34 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/datasets/__pycache__/dataset.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/datasets/__pycache__/formatters.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/datasets/__pycache__/formatters.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..53a6b553a66627f55a9ae18a52cca5bba60d7825 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/datasets/__pycache__/formatters.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/datasets/dataset.py b/Indic-TTS/TTS/TTS/tts/datasets/dataset.py new file mode 100644 index 0000000000000000000000000000000000000000..d8f16e4efe390d8ebaf63eb681ec3d5646e6be3e --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/datasets/dataset.py @@ -0,0 +1,772 @@ +import collections +import os +import random +from typing import Dict, List, Union + +import numpy as np +import torch +import tqdm +from torch.utils.data import Dataset + +from TTS.tts.utils.data import prepare_data, prepare_stop_target, prepare_tensor +from TTS.utils.audio import AudioProcessor + +# to prevent too many open files error as suggested here +# https://github.com/pytorch/pytorch/issues/11201#issuecomment-421146936 +torch.multiprocessing.set_sharing_strategy("file_system") + + +def _parse_sample(item): + language_name = None + attn_file = None + if len(item) == 5: + text, wav_file, speaker_name, language_name, attn_file = item + elif len(item) == 4: + text, wav_file, speaker_name, language_name = item + elif len(item) == 3: + text, wav_file, speaker_name = item + else: + raise ValueError(" [!] Dataset cannot parse the sample.") + return text, wav_file, speaker_name, language_name, attn_file + + +def noise_augment_audio(wav): + return wav + (1.0 / 32768.0) * np.random.rand(*wav.shape) + + +class TTSDataset(Dataset): + def __init__( + self, + outputs_per_step: int = 1, + compute_linear_spec: bool = False, + ap: AudioProcessor = None, + samples: List[Dict] = None, + tokenizer: "TTSTokenizer" = None, + compute_f0: bool = False, + f0_cache_path: str = None, + return_wav: bool = False, + batch_group_size: int = 0, + min_text_len: int = 0, + max_text_len: int = float("inf"), + min_audio_len: int = 0, + max_audio_len: int = float("inf"), + phoneme_cache_path: str = None, + precompute_num_workers: int = 0, + speaker_id_mapping: Dict = None, + d_vector_mapping: Dict = None, + language_id_mapping: Dict = None, + use_noise_augment: bool = False, + start_by_longest: bool = False, + verbose: bool = False, + ): + """Generic ๐Ÿ“‚ data loader for `tts` models. It is configurable for different outputs and needs. + + If you need something different, you can subclass and override. + + Args: + outputs_per_step (int): Number of time frames predicted per step. + + compute_linear_spec (bool): compute linear spectrogram if True. + + ap (TTS.tts.utils.AudioProcessor): Audio processor object. + + samples (list): List of dataset samples. + + tokenizer (TTSTokenizer): tokenizer to convert text to sequence IDs. If None init internally else + use the given. Defaults to None. + + compute_f0 (bool): compute f0 if True. Defaults to False. + + f0_cache_path (str): Path to store f0 cache. Defaults to None. + + return_wav (bool): Return the waveform of the sample. Defaults to False. + + batch_group_size (int): Range of batch randomization after sorting + sequences by length. It shuffles each batch with bucketing to gather similar lenght sequences in a + batch. Set 0 to disable. Defaults to 0. + + min_text_len (int): Minimum length of input text to be used. All shorter samples will be ignored. + Defaults to 0. + + max_text_len (int): Maximum length of input text to be used. All longer samples will be ignored. + Defaults to float("inf"). + + min_audio_len (int): Minimum length of input audio to be used. All shorter samples will be ignored. + Defaults to 0. + + max_audio_len (int): Maximum length of input audio to be used. All longer samples will be ignored. + The maximum length in the dataset defines the VRAM used in the training. Hence, pay attention to + this value if you encounter an OOM error in training. Defaults to float("inf"). + + phoneme_cache_path (str): Path to cache computed phonemes. It writes phonemes of each sample to a + separate file. Defaults to None. + + precompute_num_workers (int): Number of workers to precompute features. Defaults to 0. + + speaker_id_mapping (dict): Mapping of speaker names to IDs used to compute embedding vectors by the + embedding layer. Defaults to None. + + d_vector_mapping (dict): Mapping of wav files to computed d-vectors. Defaults to None. + + use_noise_augment (bool): Enable adding random noise to wav for augmentation. Defaults to False. + + start_by_longest (bool): Start by longest sequence. It is especially useful to check OOM. Defaults to False. + + verbose (bool): Print diagnostic information. Defaults to false. + """ + super().__init__() + self.batch_group_size = batch_group_size + self._samples = samples + self.outputs_per_step = outputs_per_step + self.compute_linear_spec = compute_linear_spec + self.return_wav = return_wav + self.compute_f0 = compute_f0 + self.f0_cache_path = f0_cache_path + self.min_audio_len = min_audio_len + self.max_audio_len = max_audio_len + self.min_text_len = min_text_len + self.max_text_len = max_text_len + self.ap = ap + self.phoneme_cache_path = phoneme_cache_path + self.speaker_id_mapping = speaker_id_mapping + self.d_vector_mapping = d_vector_mapping + self.language_id_mapping = language_id_mapping + self.use_noise_augment = use_noise_augment + self.start_by_longest = start_by_longest + + self.verbose = verbose + self.rescue_item_idx = 1 + self.pitch_computed = False + self.tokenizer = tokenizer + + if self.tokenizer.use_phonemes: + self.phoneme_dataset = PhonemeDataset( + self.samples, self.tokenizer, phoneme_cache_path, precompute_num_workers=precompute_num_workers + ) + + if compute_f0: + self.f0_dataset = F0Dataset( + self.samples, self.ap, cache_path=f0_cache_path, precompute_num_workers=precompute_num_workers + ) + + if self.verbose: + self.print_logs() + + @property + def lengths(self): + lens = [] + for item in self.samples: + _, wav_file, *_ = _parse_sample(item) + audio_len = os.path.getsize(wav_file) / 16 * 8 # assuming 16bit audio + lens.append(audio_len) + return lens + + @property + def samples(self): + return self._samples + + @samples.setter + def samples(self, new_samples): + self._samples = new_samples + if hasattr(self, "f0_dataset"): + self.f0_dataset.samples = new_samples + if hasattr(self, "phoneme_dataset"): + self.phoneme_dataset.samples = new_samples + + def __len__(self): + return len(self.samples) + + def __getitem__(self, idx): + return self.load_data(idx) + + def print_logs(self, level: int = 0) -> None: + indent = "\t" * level + print("\n") + print(f"{indent}> DataLoader initialization") + print(f"{indent}| > Tokenizer:") + self.tokenizer.print_logs(level + 1) + print(f"{indent}| > Number of instances : {len(self.samples)}") + + def load_wav(self, filename): + waveform = self.ap.load_wav(filename) + assert waveform.size > 0 + return waveform + + def get_phonemes(self, idx, text): + out_dict = self.phoneme_dataset[idx] + assert text == out_dict["text"], f"{text} != {out_dict['text']}" + assert len(out_dict["token_ids"]) > 0 + return out_dict + + def get_f0(self, idx): + out_dict = self.f0_dataset[idx] + item = self.samples[idx] + assert item["audio_file"] == out_dict["audio_file"] + return out_dict + + @staticmethod + def get_attn_mask(attn_file): + return np.load(attn_file) + + def get_token_ids(self, idx, text): + if self.tokenizer.use_phonemes: + token_ids = self.get_phonemes(idx, text)["token_ids"] + else: + token_ids = self.tokenizer.text_to_ids(text) + return np.array(token_ids, dtype=np.int32) + + def load_data(self, idx): + item = self.samples[idx] + + raw_text = item["text"] + + wav = np.asarray(self.load_wav(item["audio_file"]), dtype=np.float32) + + # apply noise for augmentation + if self.use_noise_augment: + wav = noise_augment_audio(wav) + + # get token ids + token_ids = self.get_token_ids(idx, item["text"]) + + # get pre-computed attention maps + attn = None + if "alignment_file" in item: + attn = self.get_attn_mask(item["alignment_file"]) + + # after phonemization the text length may change + # this is a shareful ๐Ÿคญ hack to prevent longer phonemes + # TODO: find a better fix + if len(token_ids) > self.max_text_len or len(wav) < self.min_audio_len: + self.rescue_item_idx += 1 + return self.load_data(self.rescue_item_idx) + + # get f0 values + f0 = None + if self.compute_f0: + f0 = self.get_f0(idx)["f0"] + + sample = { + "raw_text": raw_text, + "token_ids": token_ids, + "wav": wav, + "pitch": f0, + "attn": attn, + "item_idx": item["audio_file"], + "speaker_name": item["speaker_name"], + "language_name": item["language"], + "wav_file_name": os.path.basename(item["audio_file"]), + } + return sample + + @staticmethod + def _compute_lengths(samples): + new_samples = [] + for item in samples: + audio_length = os.path.getsize(item["audio_file"]) / 16 * 8 # assuming 16bit audio + text_lenght = len(item["text"]) + item["audio_length"] = audio_length + item["text_length"] = text_lenght + new_samples += [item] + return new_samples + + @staticmethod + def filter_by_length(lengths: List[int], min_len: int, max_len: int): + idxs = np.argsort(lengths) # ascending order + ignore_idx = [] + keep_idx = [] + for idx in idxs: + length = lengths[idx] + if length < min_len or length > max_len: + ignore_idx.append(idx) + else: + keep_idx.append(idx) + return ignore_idx, keep_idx + + @staticmethod + def sort_by_length(samples: List[List]): + audio_lengths = [s["audio_length"] for s in samples] + idxs = np.argsort(audio_lengths) # ascending order + return idxs + + @staticmethod + def create_buckets(samples, batch_group_size: int): + assert batch_group_size > 0 + for i in range(len(samples) // batch_group_size): + offset = i * batch_group_size + end_offset = offset + batch_group_size + temp_items = samples[offset:end_offset] + random.shuffle(temp_items) + samples[offset:end_offset] = temp_items + return samples + + @staticmethod + def _select_samples_by_idx(idxs, samples): + samples_new = [] + for idx in idxs: + samples_new.append(samples[idx]) + return samples_new + + def preprocess_samples(self): + r"""Sort `items` based on text length or audio length in ascending order. Filter out samples out or the length + range. + """ + samples = self._compute_lengths(self.samples) + + # sort items based on the sequence length in ascending order + text_lengths = [i["text_length"] for i in samples] + audio_lengths = [i["audio_length"] for i in samples] + text_ignore_idx, text_keep_idx = self.filter_by_length(text_lengths, self.min_text_len, self.max_text_len) + audio_ignore_idx, audio_keep_idx = self.filter_by_length(audio_lengths, self.min_audio_len, self.max_audio_len) + keep_idx = list(set(audio_keep_idx) & set(text_keep_idx)) + ignore_idx = list(set(audio_ignore_idx) | set(text_ignore_idx)) + + samples = self._select_samples_by_idx(keep_idx, samples) + + sorted_idxs = self.sort_by_length(samples) + + if self.start_by_longest: + longest_idxs = sorted_idxs[-1] + sorted_idxs[-1] = sorted_idxs[0] + sorted_idxs[0] = longest_idxs + + samples = self._select_samples_by_idx(sorted_idxs, samples) + + if len(samples) == 0: + raise RuntimeError(" [!] No samples left") + + # shuffle batch groups + # create batches with similar length items + # the larger the `batch_group_size`, the higher the length variety in a batch. + if self.batch_group_size > 0: + samples = self.create_buckets(samples, self.batch_group_size) + + # update items to the new sorted items + audio_lengths = [s["audio_length"] for s in samples] + text_lengths = [s["text_length"] for s in samples] + self.samples = samples + + if self.verbose: + print(" | > Preprocessing samples") + print(" | > Max text length: {}".format(np.max(text_lengths))) + print(" | > Min text length: {}".format(np.min(text_lengths))) + print(" | > Avg text length: {}".format(np.mean(text_lengths))) + print(" | ") + print(" | > Max audio length: {}".format(np.max(audio_lengths))) + print(" | > Min audio length: {}".format(np.min(audio_lengths))) + print(" | > Avg audio length: {}".format(np.mean(audio_lengths))) + print(f" | > Num. instances discarded samples: {len(ignore_idx)}") + print(" | > Batch group size: {}.".format(self.batch_group_size)) + + @staticmethod + def _sort_batch(batch, text_lengths): + """Sort the batch by the input text length for RNN efficiency. + + Args: + batch (Dict): Batch returned by `__getitem__`. + text_lengths (List[int]): Lengths of the input character sequences. + """ + text_lengths, ids_sorted_decreasing = torch.sort(torch.LongTensor(text_lengths), dim=0, descending=True) + batch = [batch[idx] for idx in ids_sorted_decreasing] + return batch, text_lengths, ids_sorted_decreasing + + def collate_fn(self, batch): + r""" + Perform preprocessing and create a final data batch: + 1. Sort batch instances by text-length + 2. Convert Audio signal to features. + 3. PAD sequences wrt r. + 4. Load to Torch. + """ + + # Puts each data field into a tensor with outer dimension batch size + if isinstance(batch[0], collections.abc.Mapping): + + token_ids_lengths = np.array([len(d["token_ids"]) for d in batch]) + + # sort items with text input length for RNN efficiency + batch, token_ids_lengths, ids_sorted_decreasing = self._sort_batch(batch, token_ids_lengths) + + # convert list of dicts to dict of lists + batch = {k: [dic[k] for dic in batch] for k in batch[0]} + + # get language ids from language names + if self.language_id_mapping is not None: + language_ids = [self.language_id_mapping[ln] for ln in batch["language_name"]] + else: + language_ids = None + # get pre-computed d-vectors + if self.d_vector_mapping is not None: + wav_files_names = list(batch["wav_file_name"]) + d_vectors = [self.d_vector_mapping[w]["embedding"] for w in wav_files_names] + else: + d_vectors = None + + # get numerical speaker ids from speaker names + if self.speaker_id_mapping: + speaker_ids = [self.speaker_id_mapping[sn] for sn in batch["speaker_name"]] + else: + speaker_ids = None + # compute features + mel = [self.ap.melspectrogram(w).astype("float32") for w in batch["wav"]] + + mel_lengths = [m.shape[1] for m in mel] + + # lengths adjusted by the reduction factor + mel_lengths_adjusted = [ + m.shape[1] + (self.outputs_per_step - (m.shape[1] % self.outputs_per_step)) + if m.shape[1] % self.outputs_per_step + else m.shape[1] + for m in mel + ] + + # compute 'stop token' targets + stop_targets = [np.array([0.0] * (mel_len - 1) + [1.0]) for mel_len in mel_lengths] + + # PAD stop targets + stop_targets = prepare_stop_target(stop_targets, self.outputs_per_step) + + # PAD sequences with longest instance in the batch + token_ids = prepare_data(batch["token_ids"]).astype(np.int32) + + # PAD features with longest instance + mel = prepare_tensor(mel, self.outputs_per_step) + + # B x D x T --> B x T x D + mel = mel.transpose(0, 2, 1) + + # convert things to pytorch + token_ids_lengths = torch.LongTensor(token_ids_lengths) + token_ids = torch.LongTensor(token_ids) + mel = torch.FloatTensor(mel).contiguous() + mel_lengths = torch.LongTensor(mel_lengths) + stop_targets = torch.FloatTensor(stop_targets) + + # speaker vectors + if d_vectors is not None: + d_vectors = torch.FloatTensor(d_vectors) + + if speaker_ids is not None: + speaker_ids = torch.LongTensor(speaker_ids) + + if language_ids is not None: + language_ids = torch.LongTensor(language_ids) + + # compute linear spectrogram + linear = None + if self.compute_linear_spec: + linear = [self.ap.spectrogram(w).astype("float32") for w in batch["wav"]] + linear = prepare_tensor(linear, self.outputs_per_step) + linear = linear.transpose(0, 2, 1) + assert mel.shape[1] == linear.shape[1] + linear = torch.FloatTensor(linear).contiguous() + + # format waveforms + wav_padded = None + if self.return_wav: + wav_lengths = [w.shape[0] for w in batch["wav"]] + max_wav_len = max(mel_lengths_adjusted) * self.ap.hop_length + wav_lengths = torch.LongTensor(wav_lengths) + wav_padded = torch.zeros(len(batch["wav"]), 1, max_wav_len) + for i, w in enumerate(batch["wav"]): + mel_length = mel_lengths_adjusted[i] + w = np.pad(w, (0, self.ap.hop_length * self.outputs_per_step), mode="edge") + w = w[: mel_length * self.ap.hop_length] + wav_padded[i, :, : w.shape[0]] = torch.from_numpy(w) + wav_padded.transpose_(1, 2) + + # format F0 + if self.compute_f0: + pitch = prepare_data(batch["pitch"]) + assert mel.shape[1] == pitch.shape[1], f"[!] {mel.shape} vs {pitch.shape}" + pitch = torch.FloatTensor(pitch)[:, None, :].contiguous() # B x 1 xT + else: + pitch = None + + # format attention masks + attns = None + if batch["attn"][0] is not None: + attns = [batch["attn"][idx].T for idx in ids_sorted_decreasing] + for idx, attn in enumerate(attns): + pad2 = mel.shape[1] - attn.shape[1] + pad1 = token_ids.shape[1] - attn.shape[0] + assert pad1 >= 0 and pad2 >= 0, f"[!] Negative padding - {pad1} and {pad2}" + attn = np.pad(attn, [[0, pad1], [0, pad2]]) + attns[idx] = attn + attns = prepare_tensor(attns, self.outputs_per_step) + attns = torch.FloatTensor(attns).unsqueeze(1) + + return { + "token_id": token_ids, + "token_id_lengths": token_ids_lengths, + "speaker_names": batch["speaker_name"], + "linear": linear, + "mel": mel, + "mel_lengths": mel_lengths, + "stop_targets": stop_targets, + "item_idxs": batch["item_idx"], + "d_vectors": d_vectors, + "speaker_ids": speaker_ids, + "attns": attns, + "waveform": wav_padded, + "raw_text": batch["raw_text"], + "pitch": pitch, + "language_ids": language_ids, + } + + raise TypeError( + ( + "batch must contain tensors, numbers, dicts or lists;\ + found {}".format( + type(batch[0]) + ) + ) + ) + + +class PhonemeDataset(Dataset): + """Phoneme Dataset for converting input text to phonemes and then token IDs + + At initialization, it pre-computes the phonemes under `cache_path` and loads them in training to reduce data + loading latency. If `cache_path` is already present, it skips the pre-computation. + + Args: + samples (Union[List[List], List[Dict]]): + List of samples. Each sample is a list or a dict. + + tokenizer (TTSTokenizer): + Tokenizer to convert input text to phonemes. + + cache_path (str): + Path to cache phonemes. If `cache_path` is already present or None, it skips the pre-computation. + + precompute_num_workers (int): + Number of workers used for pre-computing the phonemes. Defaults to 0. + """ + + def __init__( + self, + samples: Union[List[Dict], List[List]], + tokenizer: "TTSTokenizer", + cache_path: str, + precompute_num_workers=0, + ): + self.samples = samples + self.tokenizer = tokenizer + self.cache_path = cache_path + if cache_path is not None and not os.path.exists(cache_path): + os.makedirs(cache_path) + self.precompute(precompute_num_workers) + + def __getitem__(self, index): + item = self.samples[index] + ids = self.compute_or_load(item["audio_file"], item["text"]) + ph_hat = self.tokenizer.ids_to_text(ids) + return {"text": item["text"], "ph_hat": ph_hat, "token_ids": ids, "token_ids_len": len(ids)} + + def __len__(self): + return len(self.samples) + + def compute_or_load(self, wav_file, text): + """Compute phonemes for the given text. + + If the phonemes are already cached, load them from cache. + """ + file_name = os.path.splitext(os.path.basename(wav_file))[0] + file_ext = "_phoneme.npy" + cache_path = os.path.join(self.cache_path, file_name + file_ext) + try: + ids = np.load(cache_path) + except FileNotFoundError: + ids = self.tokenizer.text_to_ids(text) + np.save(cache_path, ids) + return ids + + def get_pad_id(self): + """Get pad token ID for sequence padding""" + return self.tokenizer.pad_id + + def precompute(self, num_workers=1): + """Precompute phonemes for all samples. + + We use pytorch dataloader because we are lazy. + """ + print("[*] Pre-computing phonemes...") + with tqdm.tqdm(total=len(self)) as pbar: + batch_size = num_workers if num_workers > 0 else 1 + dataloder = torch.utils.data.DataLoader( + batch_size=batch_size, dataset=self, shuffle=False, num_workers=num_workers, collate_fn=self.collate_fn + ) + for _ in dataloder: + pbar.update(batch_size) + + def collate_fn(self, batch): + ids = [item["token_ids"] for item in batch] + ids_lens = [item["token_ids_len"] for item in batch] + texts = [item["text"] for item in batch] + texts_hat = [item["ph_hat"] for item in batch] + ids_lens_max = max(ids_lens) + ids_torch = torch.LongTensor(len(ids), ids_lens_max).fill_(self.get_pad_id()) + for i, ids_len in enumerate(ids_lens): + ids_torch[i, :ids_len] = torch.LongTensor(ids[i]) + return {"text": texts, "ph_hat": texts_hat, "token_ids": ids_torch} + + def print_logs(self, level: int = 0) -> None: + indent = "\t" * level + print("\n") + print(f"{indent}> PhonemeDataset ") + print(f"{indent}| > Tokenizer:") + self.tokenizer.print_logs(level + 1) + print(f"{indent}| > Number of instances : {len(self.samples)}") + + +class F0Dataset: + """F0 Dataset for computing F0 from wav files in CPU + + Pre-compute F0 values for all the samples at initialization if `cache_path` is not None or already present. It + also computes the mean and std of F0 values if `normalize_f0` is True. + + Args: + samples (Union[List[List], List[Dict]]): + List of samples. Each sample is a list or a dict. + + ap (AudioProcessor): + AudioProcessor to compute F0 from wav files. + + cache_path (str): + Path to cache F0 values. If `cache_path` is already present or None, it skips the pre-computation. + Defaults to None. + + precompute_num_workers (int): + Number of workers used for pre-computing the F0 values. Defaults to 0. + + normalize_f0 (bool): + Whether to normalize F0 values by mean and std. Defaults to True. + """ + + def __init__( + self, + samples: Union[List[List], List[Dict]], + ap: "AudioProcessor", + verbose=False, + cache_path: str = None, + precompute_num_workers=0, + normalize_f0=True, + ): + self.samples = samples + self.ap = ap + self.verbose = verbose + self.cache_path = cache_path + self.normalize_f0 = normalize_f0 + self.pad_id = 0.0 + self.mean = None + self.std = None + if cache_path is not None and not os.path.exists(cache_path): + os.makedirs(cache_path) + self.precompute(precompute_num_workers) + if normalize_f0: + self.load_stats(cache_path) + + def __getitem__(self, idx): + item = self.samples[idx] + f0 = self.compute_or_load(item["audio_file"]) + if self.normalize_f0: + assert self.mean is not None and self.std is not None, " [!] Mean and STD is not available" + f0 = self.normalize(f0) + return {"audio_file": item["audio_file"], "f0": f0} + + def __len__(self): + return len(self.samples) + + def precompute(self, num_workers=0): + print("[*] Pre-computing F0s...") + with tqdm.tqdm(total=len(self)) as pbar: + batch_size = num_workers if num_workers > 0 else 1 + # we do not normalize at preproessing + normalize_f0 = self.normalize_f0 + self.normalize_f0 = False + dataloder = torch.utils.data.DataLoader( + batch_size=batch_size, dataset=self, shuffle=False, num_workers=num_workers, collate_fn=self.collate_fn + ) + computed_data = [] + for batch in dataloder: + f0 = batch["f0"] + computed_data.append(f for f in f0) + pbar.update(batch_size) + self.normalize_f0 = normalize_f0 + + if self.normalize_f0: + computed_data = [tensor for batch in computed_data for tensor in batch] # flatten + pitch_mean, pitch_std = self.compute_pitch_stats(computed_data) + pitch_stats = {"mean": pitch_mean, "std": pitch_std} + np.save(os.path.join(self.cache_path, "pitch_stats"), pitch_stats, allow_pickle=True) + + def get_pad_id(self): + return self.pad_id + + @staticmethod + def create_pitch_file_path(wav_file, cache_path): + file_name = os.path.splitext(os.path.basename(wav_file))[0] + pitch_file = os.path.join(cache_path, file_name + "_pitch.npy") + return pitch_file + + @staticmethod + def _compute_and_save_pitch(ap, wav_file, pitch_file=None): + wav = ap.load_wav(wav_file) + pitch = ap.compute_f0(wav) + if pitch_file: + np.save(pitch_file, pitch) + return pitch + + @staticmethod + def compute_pitch_stats(pitch_vecs): + nonzeros = np.concatenate([v[np.where(v != 0.0)[0]] for v in pitch_vecs]) + mean, std = np.mean(nonzeros), np.std(nonzeros) + return mean, std + + def load_stats(self, cache_path): + stats_path = os.path.join(cache_path, "pitch_stats.npy") + stats = np.load(stats_path, allow_pickle=True).item() + self.mean = stats["mean"].astype(np.float32) + self.std = stats["std"].astype(np.float32) + + def normalize(self, pitch): + zero_idxs = np.where(pitch == 0.0)[0] + pitch = pitch - self.mean + pitch = pitch / self.std + pitch[zero_idxs] = 0.0 + return pitch + + def denormalize(self, pitch): + zero_idxs = np.where(pitch == 0.0)[0] + pitch *= self.std + pitch += self.mean + pitch[zero_idxs] = 0.0 + return pitch + + def compute_or_load(self, wav_file): + """ + compute pitch and return a numpy array of pitch values + """ + pitch_file = self.create_pitch_file_path(wav_file, self.cache_path) + if not os.path.exists(pitch_file): + pitch = self._compute_and_save_pitch(self.ap, wav_file, pitch_file) + else: + pitch = np.load(pitch_file) + return pitch.astype(np.float32) + + def collate_fn(self, batch): + audio_file = [item["audio_file"] for item in batch] + f0s = [item["f0"] for item in batch] + f0_lens = [len(item["f0"]) for item in batch] + f0_lens_max = max(f0_lens) + f0s_torch = torch.LongTensor(len(f0s), f0_lens_max).fill_(self.get_pad_id()) + for i, f0_len in enumerate(f0_lens): + f0s_torch[i, :f0_len] = torch.LongTensor(f0s[i]) + return {"audio_file": audio_file, "f0": f0s_torch, "f0_lens": f0_lens} + + def print_logs(self, level: int = 0) -> None: + indent = "\t" * level + print("\n") + print(f"{indent}> F0Dataset ") + print(f"{indent}| > Number of instances : {len(self.samples)}") diff --git a/Indic-TTS/TTS/TTS/tts/datasets/formatters.py b/Indic-TTS/TTS/TTS/tts/datasets/formatters.py new file mode 100644 index 0000000000000000000000000000000000000000..ef05ea7c7ada5b614240bd0733529e530c137d10 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/datasets/formatters.py @@ -0,0 +1,558 @@ +import os +import re +import xml.etree.ElementTree as ET +from glob import glob +from pathlib import Path +from typing import List + +import pandas as pd +from tqdm import tqdm + +######################## +# DATASETS +######################## + + +def coqui(root_path, meta_file, ignored_speakers=None): + """Interal dataset formatter.""" + metadata = pd.read_csv(os.path.join(root_path, meta_file), sep="|") + assert all(x in metadata.columns for x in ["audio_file", "text"]) + speaker_name = None if "speaker_name" in metadata.columns else "coqui" + emotion_name = None if "emotion_name" in metadata.columns else "neutral" + items = [] + not_found_counter = 0 + for row in metadata.itertuples(): + if speaker_name is None and ignored_speakers is not None and row.speaker_name in ignored_speakers: + continue + audio_path = os.path.join(root_path, row.audio_file) + if not os.path.exists(audio_path): + not_found_counter += 1 + continue + items.append( + { + "text": row.text, + "audio_file": audio_path, + "speaker_name": speaker_name if speaker_name is not None else row.speaker_name, + "emotion_name": emotion_name if emotion_name is not None else row.emotion_name, + } + ) + if not_found_counter > 0: + print(f" | > [!] {not_found_counter} files not found") + return items + + +def tweb(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Normalize TWEB dataset. + https://www.kaggle.com/bryanpark/the-world-english-bible-speech-dataset + """ + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "tweb" + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("\t") + wav_file = os.path.join(root_path, cols[0] + ".wav") + text = cols[1] + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def mozilla(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Normalizes Mozilla meta data files to TTS format""" + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "mozilla" + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("|") + wav_file = cols[1].strip() + text = cols[0].strip() + wav_file = os.path.join(root_path, "wavs", wav_file) + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def mozilla_de(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Normalizes Mozilla meta data files to TTS format""" + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "mozilla" + with open(txt_file, "r", encoding="ISO 8859-1") as ttf: + for line in ttf: + cols = line.strip().split("|") + wav_file = cols[0].strip() + text = cols[1].strip() + folder_name = f"BATCH_{wav_file.split('_')[0]}_FINAL" + wav_file = os.path.join(root_path, folder_name, wav_file) + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def mailabs(root_path, meta_files=None, ignored_speakers=None): + """Normalizes M-AI-Labs meta data files to TTS format + + Args: + root_path (str): root folder of the MAILAB language folder. + meta_files (str): list of meta files to be used in the training. If None, finds all the csv files + recursively. Defaults to None + """ + speaker_regex = re.compile("by_book/(male|female)/(?P[^/]+)/") + if not meta_files: + csv_files = glob(root_path + "/**/metadata.csv", recursive=True) + else: + csv_files = meta_files + + # meta_files = [f.strip() for f in meta_files.split(",")] + items = [] + for csv_file in csv_files: + if os.path.isfile(csv_file): + txt_file = csv_file + else: + txt_file = os.path.join(root_path, csv_file) + + folder = os.path.dirname(txt_file) + # determine speaker based on folder structure... + speaker_name_match = speaker_regex.search(txt_file) + if speaker_name_match is None: + continue + speaker_name = speaker_name_match.group("speaker_name") + # ignore speakers + if isinstance(ignored_speakers, list): + if speaker_name in ignored_speakers: + continue + print(" | > {}".format(csv_file)) + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("|") + if not meta_files: + wav_file = os.path.join(folder, "wavs", cols[0] + ".wav") + else: + wav_file = os.path.join(root_path, folder.replace("metadata.csv", ""), "wavs", cols[0] + ".wav") + if os.path.isfile(wav_file): + text = cols[1].strip() + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + else: + # M-AI-Labs have some missing samples, so just print the warning + print("> File %s does not exist!" % (wav_file)) + return items + + +def ljspeech(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Normalizes the LJSpeech meta data file to TTS format + https://keithito.com/LJ-Speech-Dataset/""" + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "ljspeech" + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("|") + wav_file = os.path.join(root_path, "wavs", cols[0] + ".wav") + text = cols[2] + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def ljspeech_test(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Normalizes the LJSpeech meta data file for TTS testing + https://keithito.com/LJ-Speech-Dataset/""" + txt_file = os.path.join(root_path, meta_file) + items = [] + with open(txt_file, "r", encoding="utf-8") as ttf: + speaker_id = 0 + for idx, line in enumerate(ttf): + # 2 samples per speaker to avoid eval split issues + if idx % 2 == 0: + speaker_id += 1 + cols = line.split("|") + wav_file = os.path.join(root_path, "wavs", cols[0] + ".wav") + text = cols[2] + items.append({"text": text, "audio_file": wav_file, "speaker_name": f"ljspeech-{speaker_id}"}) + return items + + +def thorsten(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Normalizes the thorsten meta data file to TTS format + https://github.com/thorstenMueller/deep-learning-german-tts/""" + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "thorsten" + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("|") + wav_file = os.path.join(root_path, "wavs", cols[0] + ".wav") + text = cols[1] + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def sam_accenture(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Normalizes the sam-accenture meta data file to TTS format + https://github.com/Sam-Accenture-Non-Binary-Voice/non-binary-voice-files""" + xml_file = os.path.join(root_path, "voice_over_recordings", meta_file) + xml_root = ET.parse(xml_file).getroot() + items = [] + speaker_name = "sam_accenture" + for item in xml_root.findall("./fileid"): + text = item.text + wav_file = os.path.join(root_path, "vo_voice_quality_transformation", item.get("id") + ".wav") + if not os.path.exists(wav_file): + print(f" [!] {wav_file} in metafile does not exist. Skipping...") + continue + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def ruslan(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Normalizes the RUSLAN meta data file to TTS format + https://ruslan-corpus.github.io/""" + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "ruslan" + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("|") + wav_file = os.path.join(root_path, "RUSLAN", cols[0] + ".wav") + text = cols[1] + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def css10(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Normalizes the CSS10 dataset file to TTS format""" + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "css10" + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("|") + wav_file = os.path.join(root_path, cols[0]) + text = cols[1] + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def nancy(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Normalizes the Nancy meta data file to TTS format""" + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "nancy" + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + utt_id = line.split()[1] + text = line[line.find('"') + 1 : line.rfind('"') - 1] + wav_file = os.path.join(root_path, "wavn", utt_id + ".wav") + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def common_voice(root_path, meta_file, ignored_speakers=None): + """Normalize the common voice meta data file to TTS format.""" + txt_file = os.path.join(root_path, meta_file) + items = [] + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + if line.startswith("client_id"): + continue + cols = line.split("\t") + text = cols[2] + speaker_name = cols[0] + # ignore speakers + if isinstance(ignored_speakers, list): + if speaker_name in ignored_speakers: + continue + wav_file = os.path.join(root_path, "clips", cols[1].replace(".mp3", ".wav")) + items.append({"text": text, "audio_file": wav_file, "speaker_name": "MCV_" + speaker_name}) + return items + + +def libri_tts(root_path, meta_files=None, ignored_speakers=None): + """https://ai.google/tools/datasets/libri-tts/""" + items = [] + if not meta_files: + meta_files = glob(f"{root_path}/**/*trans.tsv", recursive=True) + else: + if isinstance(meta_files, str): + meta_files = [os.path.join(root_path, meta_files)] + + for meta_file in meta_files: + _meta_file = os.path.basename(meta_file).split(".")[0] + with open(meta_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("\t") + file_name = cols[0] + speaker_name, chapter_id, *_ = cols[0].split("_") + _root_path = os.path.join(root_path, f"{speaker_name}/{chapter_id}") + wav_file = os.path.join(_root_path, file_name + ".wav") + text = cols[2] + # ignore speakers + if isinstance(ignored_speakers, list): + if speaker_name in ignored_speakers: + continue + items.append({"text": text, "audio_file": wav_file, "speaker_name": f"LTTS_{speaker_name}"}) + for item in items: + assert os.path.exists(item["audio_file"]), f" [!] wav files don't exist - {item['audio_file']}" + return items + + +def custom_turkish(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "turkish-female" + skipped_files = [] + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("|") + wav_file = os.path.join(root_path, "wavs", cols[0].strip() + ".wav") + if not os.path.exists(wav_file): + skipped_files.append(wav_file) + continue + text = cols[1].strip() + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + print(f" [!] {len(skipped_files)} files skipped. They don't exist...") + return items + + +# ToDo: add the dataset link when the dataset is released publicly +def brspeech(root_path, meta_file, ignored_speakers=None): + """BRSpeech 3.0 beta""" + txt_file = os.path.join(root_path, meta_file) + items = [] + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + if line.startswith("wav_filename"): + continue + cols = line.split("|") + wav_file = os.path.join(root_path, cols[0]) + text = cols[2] + speaker_id = cols[3] + # ignore speakers + if isinstance(ignored_speakers, list): + if speaker_id in ignored_speakers: + continue + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_id}) + return items + + +def vctk(root_path, meta_files=None, wavs_path="wav48_silence_trimmed", mic="mic1", ignored_speakers=None): + """VCTK dataset v0.92. + + URL: + https://datashare.ed.ac.uk/bitstream/handle/10283/3443/VCTK-Corpus-0.92.zip + + This dataset has 2 recordings per speaker that are annotated with ```mic1``` and ```mic2```. + It is believed that (๐Ÿ˜„ ) ```mic1``` files are the same as the previous version of the dataset. + + mic1: + Audio recorded using an omni-directional microphone (DPA 4035). + Contains very low frequency noises. + This is the same audio released in previous versions of VCTK: + https://doi.org/10.7488/ds/1994 + + mic2: + Audio recorded using a small diaphragm condenser microphone with + very wide bandwidth (Sennheiser MKH 800). + Two speakers, p280 and p315 had technical issues of the audio + recordings using MKH 800. + """ + file_ext = "flac" + items = [] + meta_files = glob(f"{os.path.join(root_path,'txt')}/**/*.txt", recursive=True) + for meta_file in meta_files: + _, speaker_id, txt_file = os.path.relpath(meta_file, root_path).split(os.sep) + file_id = txt_file.split(".")[0] + # ignore speakers + if isinstance(ignored_speakers, list): + if speaker_id in ignored_speakers: + continue + with open(meta_file, "r", encoding="utf-8") as file_text: + text = file_text.readlines()[0] + # p280 has no mic2 recordings + if speaker_id == "p280": + wav_file = os.path.join(root_path, wavs_path, speaker_id, file_id + f"_mic1.{file_ext}") + else: + wav_file = os.path.join(root_path, wavs_path, speaker_id, file_id + f"_{mic}.{file_ext}") + if os.path.exists(wav_file): + items.append({"text": text, "audio_file": wav_file, "speaker_name": "VCTK_" + speaker_id}) + else: + print(f" [!] wav files don't exist - {wav_file}") + return items + + +def vctk_old(root_path, meta_files=None, wavs_path="wav48", ignored_speakers=None): + """homepages.inf.ed.ac.uk/jyamagis/release/VCTK-Corpus.tar.gz""" + items = [] + meta_files = glob(f"{os.path.join(root_path,'txt')}/**/*.txt", recursive=True) + for meta_file in meta_files: + _, speaker_id, txt_file = os.path.relpath(meta_file, root_path).split(os.sep) + file_id = txt_file.split(".")[0] + # ignore speakers + if isinstance(ignored_speakers, list): + if speaker_id in ignored_speakers: + continue + with open(meta_file, "r", encoding="utf-8") as file_text: + text = file_text.readlines()[0] + wav_file = os.path.join(root_path, wavs_path, speaker_id, file_id + ".wav") + items.append({"text": text, "audio_file": wav_file, "speaker_name": "VCTK_old_" + speaker_id}) + return items + + +def synpaflex(root_path, metafiles=None, **kwargs): # pylint: disable=unused-argument + items = [] + speaker_name = "synpaflex" + root_path = os.path.join(root_path, "") + wav_files = glob(f"{root_path}**/*.wav", recursive=True) + for wav_file in wav_files: + if os.sep + "wav" + os.sep in wav_file: + txt_file = wav_file.replace("wav", "txt") + else: + txt_file = os.path.join( + os.path.dirname(wav_file), "txt", os.path.basename(wav_file).replace(".wav", ".txt") + ) + if os.path.exists(txt_file) and os.path.exists(wav_file): + with open(txt_file, "r", encoding="utf-8") as file_text: + text = file_text.readlines()[0] + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def open_bible(root_path, meta_files="train", ignore_digits_sentences=True, ignored_speakers=None): + """ToDo: Refer the paper when available""" + items = [] + split_dir = meta_files + meta_files = glob(f"{os.path.join(root_path, split_dir)}/**/*.txt", recursive=True) + for meta_file in meta_files: + _, speaker_id, txt_file = os.path.relpath(meta_file, root_path).split(os.sep) + file_id = txt_file.split(".")[0] + # ignore speakers + if isinstance(ignored_speakers, list): + if speaker_id in ignored_speakers: + continue + with open(meta_file, "r", encoding="utf-8") as file_text: + text = file_text.readline().replace("\n", "") + # ignore sentences that contains digits + if ignore_digits_sentences and any(map(str.isdigit, text)): + continue + wav_file = os.path.join(root_path, split_dir, speaker_id, file_id + ".flac") + items.append({"text": text, "audio_file": wav_file, "speaker_name": "OB_" + speaker_id}) + return items + + +def mls(root_path, meta_files=None, ignored_speakers=None): + """http://www.openslr.org/94/""" + items = [] + with open(os.path.join(root_path, meta_files), "r", encoding="utf-8") as meta: + for line in meta: + file, text = line.split("\t") + text = text[:-1] + speaker, book, *_ = file.split("_") + wav_file = os.path.join(root_path, os.path.dirname(meta_files), "audio", speaker, book, file + ".wav") + # ignore speakers + if isinstance(ignored_speakers, list): + if speaker in ignored_speakers: + continue + items.append({"text": text, "audio_file": wav_file, "speaker_name": "MLS_" + speaker}) + return items + + +# ======================================== VOX CELEB =========================================== +def voxceleb2(root_path, meta_file=None, **kwargs): # pylint: disable=unused-argument + """ + :param meta_file Used only for consistency with load_tts_samples api + """ + return _voxcel_x(root_path, meta_file, voxcel_idx="2") + + +def voxceleb1(root_path, meta_file=None, **kwargs): # pylint: disable=unused-argument + """ + :param meta_file Used only for consistency with load_tts_samples api + """ + return _voxcel_x(root_path, meta_file, voxcel_idx="1") + + +def _voxcel_x(root_path, meta_file, voxcel_idx): + assert voxcel_idx in ["1", "2"] + expected_count = 148_000 if voxcel_idx == "1" else 1_000_000 + voxceleb_path = Path(root_path) + cache_to = voxceleb_path / f"metafile_voxceleb{voxcel_idx}.csv" + cache_to.parent.mkdir(exist_ok=True) + + # if not exists meta file, crawl recursively for 'wav' files + if meta_file is not None: + with open(str(meta_file), "r", encoding="utf-8") as f: + return [x.strip().split("|") for x in f.readlines()] + + elif not cache_to.exists(): + cnt = 0 + meta_data = [] + wav_files = voxceleb_path.rglob("**/*.wav") + for path in tqdm( + wav_files, + desc=f"Building VoxCeleb {voxcel_idx} Meta file ... this needs to be done only once.", + total=expected_count, + ): + speaker_id = str(Path(path).parent.parent.stem) + assert speaker_id.startswith("id") + text = None # VoxCel does not provide transciptions, and they are not needed for training the SE + meta_data.append(f"{text}|{path}|voxcel{voxcel_idx}_{speaker_id}\n") + cnt += 1 + with open(str(cache_to), "w", encoding="utf-8") as f: + f.write("".join(meta_data)) + if cnt < expected_count: + raise ValueError(f"Found too few instances for Voxceleb. Should be around {expected_count}, is: {cnt}") + + with open(str(cache_to), "r", encoding="utf-8") as f: + return [x.strip().split("|") for x in f.readlines()] + + +def emotion(root_path, meta_file, ignored_speakers=None): + """Generic emotion dataset""" + txt_file = os.path.join(root_path, meta_file) + items = [] + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + if line.startswith("file_path"): + continue + cols = line.split(",") + wav_file = os.path.join(root_path, cols[0]) + speaker_id = cols[1] + emotion_id = cols[2].replace("\n", "") + # ignore speakers + if isinstance(ignored_speakers, list): + if speaker_id in ignored_speakers: + continue + items.append({"audio_file": wav_file, "speaker_name": speaker_id, "emotion_name": emotion_id}) + return items + + +def baker(root_path: str, meta_file: str, **kwargs) -> List[List[str]]: # pylint: disable=unused-argument + """Normalizes the Baker meta data file to TTS format + + Args: + root_path (str): path to the baker dataset + meta_file (str): name of the meta dataset containing names of wav to select and the transcript of the sentence + Returns: + List[List[str]]: List of (text, wav_path, speaker_name) associated with each sentences + """ + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "baker" + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + wav_name, text = line.rstrip("\n").split("|") + wav_path = os.path.join(root_path, "clips_22", wav_name) + items.append({"text": text, "audio_file": wav_path, "speaker_name": speaker_name}) + return items + + +def kokoro(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + """Japanese single-speaker dataset from https://github.com/kaiidams/Kokoro-Speech-Dataset""" + txt_file = os.path.join(root_path, meta_file) + items = [] + speaker_name = "kokoro" + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("|") + wav_file = os.path.join(root_path, "wavs", cols[0] + ".wav") + text = cols[2].replace(" ", "") + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items diff --git a/Indic-TTS/TTS/TTS/tts/layers/__init__.py b/Indic-TTS/TTS/TTS/tts/layers/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f93efdb7fc41109ec3497d8e5e37ba05b0a4315e --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/__init__.py @@ -0,0 +1 @@ +from TTS.tts.layers.losses import * diff --git a/Indic-TTS/TTS/TTS/tts/layers/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f998569df72e220465521dbe109a466419cc20d0 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/__pycache__/losses.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/__pycache__/losses.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..52ae3509888c96c84bb135595b8f7571cf41f454 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/__pycache__/losses.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/align_tts/__init__.py b/Indic-TTS/TTS/TTS/tts/layers/align_tts/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/layers/align_tts/duration_predictor.py b/Indic-TTS/TTS/TTS/tts/layers/align_tts/duration_predictor.py new file mode 100644 index 0000000000000000000000000000000000000000..b2b83894cc3f87575a89ea8fd7bf4a584ca22c28 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/align_tts/duration_predictor.py @@ -0,0 +1,21 @@ +from torch import nn + +from TTS.tts.layers.generic.pos_encoding import PositionalEncoding +from TTS.tts.layers.generic.transformer import FFTransformerBlock + + +class DurationPredictor(nn.Module): + def __init__(self, num_chars, hidden_channels, hidden_channels_ffn, num_heads): + super().__init__() + self.embed = nn.Embedding(num_chars, hidden_channels) + self.pos_enc = PositionalEncoding(hidden_channels, dropout_p=0.1) + self.FFT = FFTransformerBlock(hidden_channels, num_heads, hidden_channels_ffn, 2, 0.1) + self.out_layer = nn.Conv1d(hidden_channels, 1, 1) + + def forward(self, text, text_lengths): + # B, L -> B, L + emb = self.embed(text) + emb = self.pos_enc(emb.transpose(1, 2)) + x = self.FFT(emb, text_lengths) + x = self.out_layer(x).squeeze(-1) + return x diff --git a/Indic-TTS/TTS/TTS/tts/layers/align_tts/mdn.py b/Indic-TTS/TTS/TTS/tts/layers/align_tts/mdn.py new file mode 100644 index 0000000000000000000000000000000000000000..cdb332524bf7a5fec6a23da9e7977de6325a0324 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/align_tts/mdn.py @@ -0,0 +1,30 @@ +from torch import nn + + +class MDNBlock(nn.Module): + """Mixture of Density Network implementation + https://arxiv.org/pdf/2003.01950.pdf + """ + + def __init__(self, in_channels, out_channels): + super().__init__() + self.out_channels = out_channels + self.conv1 = nn.Conv1d(in_channels, in_channels, 1) + self.norm = nn.LayerNorm(in_channels) + self.relu = nn.ReLU() + self.dropout = nn.Dropout(0.1) + self.conv2 = nn.Conv1d(in_channels, out_channels, 1) + + def forward(self, x): + o = self.conv1(x) + o = o.transpose(1, 2) + o = self.norm(o) + o = o.transpose(1, 2) + o = self.relu(o) + o = self.dropout(o) + mu_sigma = self.conv2(o) + # TODO: check this sigmoid + # mu = torch.sigmoid(mu_sigma[:, :self.out_channels//2, :]) + mu = mu_sigma[:, : self.out_channels // 2, :] + log_sigma = mu_sigma[:, self.out_channels // 2 :, :] + return mu, log_sigma diff --git a/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__init__.py b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bf0386b2e51aafb4c704541d8a5585d7dc4810a6 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__pycache__/decoder.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__pycache__/decoder.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77dc6453bfee6909804e3d833a173a7ed2b5dbbf Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__pycache__/decoder.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__pycache__/encoder.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__pycache__/encoder.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5cbf7f1c5349c86e4ad57f9a49d96f79ce986a1b Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/__pycache__/encoder.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/feed_forward/decoder.py b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/decoder.py new file mode 100644 index 0000000000000000000000000000000000000000..34c586aab24e014ce99d5806a975585a242b81bd --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/decoder.py @@ -0,0 +1,230 @@ +import torch +from torch import nn + +from TTS.tts.layers.generic.res_conv_bn import Conv1dBN, Conv1dBNBlock, ResidualConv1dBNBlock +from TTS.tts.layers.generic.transformer import FFTransformerBlock +from TTS.tts.layers.generic.wavenet import WNBlocks +from TTS.tts.layers.glow_tts.transformer import RelativePositionTransformer + + +class WaveNetDecoder(nn.Module): + """WaveNet based decoder with a prenet and a postnet. + + prenet: conv1d_1x1 + postnet: 3 x [conv1d_1x1 -> relu] -> conv1d_1x1 + + TODO: Integrate speaker conditioning vector. + + Note: + default wavenet parameters; + params = { + "num_blocks": 12, + "hidden_channels":192, + "kernel_size": 5, + "dilation_rate": 1, + "num_layers": 4, + "dropout_p": 0.05 + } + + Args: + in_channels (int): number of input channels. + out_channels (int): number of output channels. + hidden_channels (int): number of hidden channels for prenet and postnet. + params (dict): dictionary for residual convolutional blocks. + """ + + def __init__(self, in_channels, out_channels, hidden_channels, c_in_channels, params): + super().__init__() + # prenet + self.prenet = torch.nn.Conv1d(in_channels, params["hidden_channels"], 1) + # wavenet layers + self.wn = WNBlocks(params["hidden_channels"], c_in_channels=c_in_channels, **params) + # postnet + self.postnet = [ + torch.nn.Conv1d(params["hidden_channels"], hidden_channels, 1), + torch.nn.ReLU(), + torch.nn.Conv1d(hidden_channels, hidden_channels, 1), + torch.nn.ReLU(), + torch.nn.Conv1d(hidden_channels, hidden_channels, 1), + torch.nn.ReLU(), + torch.nn.Conv1d(hidden_channels, out_channels, 1), + ] + self.postnet = nn.Sequential(*self.postnet) + + def forward(self, x, x_mask=None, g=None): + x = self.prenet(x) * x_mask + x = self.wn(x, x_mask, g) + o = self.postnet(x) * x_mask + return o + + +class RelativePositionTransformerDecoder(nn.Module): + """Decoder with Relative Positional Transformer. + + Note: + Default params + params={ + 'hidden_channels_ffn': 128, + 'num_heads': 2, + "kernel_size": 3, + "dropout_p": 0.1, + "num_layers": 8, + "rel_attn_window_size": 4, + "input_length": None + } + + Args: + in_channels (int): number of input channels. + out_channels (int): number of output channels. + hidden_channels (int): number of hidden channels including Transformer layers. + params (dict): dictionary for residual convolutional blocks. + """ + + def __init__(self, in_channels, out_channels, hidden_channels, params): + + super().__init__() + self.prenet = Conv1dBN(in_channels, hidden_channels, 1, 1) + self.rel_pos_transformer = RelativePositionTransformer(in_channels, out_channels, hidden_channels, **params) + + def forward(self, x, x_mask=None, g=None): # pylint: disable=unused-argument + o = self.prenet(x) * x_mask + o = self.rel_pos_transformer(o, x_mask) + return o + + +class FFTransformerDecoder(nn.Module): + """Decoder with FeedForwardTransformer. + + Default params + params={ + 'hidden_channels_ffn': 1024, + 'num_heads': 2, + "dropout_p": 0.1, + "num_layers": 6, + } + + Args: + in_channels (int): number of input channels. + out_channels (int): number of output channels. + hidden_channels (int): number of hidden channels including Transformer layers. + params (dict): dictionary for residual convolutional blocks. + """ + + def __init__(self, in_channels, out_channels, params): + + super().__init__() + self.transformer_block = FFTransformerBlock(in_channels, **params) + self.postnet = nn.Conv1d(in_channels, out_channels, 1) + + def forward(self, x, x_mask=None, g=None): # pylint: disable=unused-argument + # TODO: handle multi-speaker + x_mask = 1 if x_mask is None else x_mask + o = self.transformer_block(x) * x_mask + o = self.postnet(o) * x_mask + return o + + +class ResidualConv1dBNDecoder(nn.Module): + """Residual Convolutional Decoder as in the original Speedy Speech paper + + TODO: Integrate speaker conditioning vector. + + Note: + Default params + params = { + "kernel_size": 4, + "dilations": 4 * [1, 2, 4, 8] + [1], + "num_conv_blocks": 2, + "num_res_blocks": 17 + } + + Args: + in_channels (int): number of input channels. + out_channels (int): number of output channels. + hidden_channels (int): number of hidden channels including ResidualConv1dBNBlock layers. + params (dict): dictionary for residual convolutional blocks. + """ + + def __init__(self, in_channels, out_channels, hidden_channels, params): + super().__init__() + self.res_conv_block = ResidualConv1dBNBlock(in_channels, hidden_channels, hidden_channels, **params) + self.post_conv = nn.Conv1d(hidden_channels, hidden_channels, 1) + self.postnet = nn.Sequential( + Conv1dBNBlock( + hidden_channels, hidden_channels, hidden_channels, params["kernel_size"], 1, num_conv_blocks=2 + ), + nn.Conv1d(hidden_channels, out_channels, 1), + ) + + def forward(self, x, x_mask=None, g=None): # pylint: disable=unused-argument + o = self.res_conv_block(x, x_mask) + o = self.post_conv(o) + x + return self.postnet(o) * x_mask + + +class Decoder(nn.Module): + """Decodes the expanded phoneme encoding into spectrograms + Args: + out_channels (int): number of output channels. + in_hidden_channels (int): input and hidden channels. Model keeps the input channels for the intermediate layers. + decoder_type (str): decoder layer types. 'transformers' or 'residual_conv_bn'. Default 'residual_conv_bn'. + decoder_params (dict): model parameters for specified decoder type. + c_in_channels (int): number of channels for conditional input. + + Shapes: + - input: (B, C, T) + """ + + # pylint: disable=dangerous-default-value + def __init__( + self, + out_channels, + in_hidden_channels, + decoder_type="residual_conv_bn", + decoder_params={ + "kernel_size": 4, + "dilations": 4 * [1, 2, 4, 8] + [1], + "num_conv_blocks": 2, + "num_res_blocks": 17, + }, + c_in_channels=0, + ): + super().__init__() + + if decoder_type.lower() == "relative_position_transformer": + self.decoder = RelativePositionTransformerDecoder( + in_channels=in_hidden_channels, + out_channels=out_channels, + hidden_channels=in_hidden_channels, + params=decoder_params, + ) + elif decoder_type.lower() == "residual_conv_bn": + self.decoder = ResidualConv1dBNDecoder( + in_channels=in_hidden_channels, + out_channels=out_channels, + hidden_channels=in_hidden_channels, + params=decoder_params, + ) + elif decoder_type.lower() == "wavenet": + self.decoder = WaveNetDecoder( + in_channels=in_hidden_channels, + out_channels=out_channels, + hidden_channels=in_hidden_channels, + c_in_channels=c_in_channels, + params=decoder_params, + ) + elif decoder_type.lower() == "fftransformer": + self.decoder = FFTransformerDecoder(in_hidden_channels, out_channels, decoder_params) + else: + raise ValueError(f"[!] Unknown decoder type - {decoder_type}") + + def forward(self, x, x_mask, g=None): # pylint: disable=unused-argument + """ + Args: + x: [B, C, T] + x_mask: [B, 1, T] + g: [B, C_g, 1] + """ + # TODO: implement multi-speaker + o = self.decoder(x, x_mask, g) + return o diff --git a/Indic-TTS/TTS/TTS/tts/layers/feed_forward/duration_predictor.py b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/duration_predictor.py new file mode 100644 index 0000000000000000000000000000000000000000..5392aeca3cd4eed08daeb2a3c34c735baec18364 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/duration_predictor.py @@ -0,0 +1,42 @@ +from torch import nn + +from TTS.tts.layers.generic.res_conv_bn import Conv1dBN + + +class DurationPredictor(nn.Module): + """Speedy Speech duration predictor model. + Predicts phoneme durations from encoder outputs. + + Note: + Outputs interpreted as log(durations) + To get actual durations, do exp transformation + + conv_BN_4x1 -> conv_BN_3x1 -> conv_BN_1x1 -> conv_1x1 + + Args: + hidden_channels (int): number of channels in the inner layers. + """ + + def __init__(self, hidden_channels): + + super().__init__() + + self.layers = nn.ModuleList( + [ + Conv1dBN(hidden_channels, hidden_channels, 4, 1), + Conv1dBN(hidden_channels, hidden_channels, 3, 1), + Conv1dBN(hidden_channels, hidden_channels, 1, 1), + nn.Conv1d(hidden_channels, 1, 1), + ] + ) + + def forward(self, x, x_mask): + """ + Shapes: + x: [B, C, T] + x_mask: [B, 1, T] + """ + o = x + for layer in self.layers: + o = layer(o) * x_mask + return o diff --git a/Indic-TTS/TTS/TTS/tts/layers/feed_forward/encoder.py b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..caf939ffc73fedac299228e090b2df3bb4cc553c --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/feed_forward/encoder.py @@ -0,0 +1,162 @@ +from torch import nn + +from TTS.tts.layers.generic.res_conv_bn import ResidualConv1dBNBlock +from TTS.tts.layers.generic.transformer import FFTransformerBlock +from TTS.tts.layers.glow_tts.transformer import RelativePositionTransformer + + +class RelativePositionTransformerEncoder(nn.Module): + """Speedy speech encoder built on Transformer with Relative Position encoding. + + TODO: Integrate speaker conditioning vector. + + Args: + in_channels (int): number of input channels. + out_channels (int): number of output channels. + hidden_channels (int): number of hidden channels + params (dict): dictionary for residual convolutional blocks. + """ + + def __init__(self, in_channels, out_channels, hidden_channels, params): + super().__init__() + self.prenet = ResidualConv1dBNBlock( + in_channels, + hidden_channels, + hidden_channels, + kernel_size=5, + num_res_blocks=3, + num_conv_blocks=1, + dilations=[1, 1, 1], + ) + self.rel_pos_transformer = RelativePositionTransformer(hidden_channels, out_channels, hidden_channels, **params) + + def forward(self, x, x_mask=None, g=None): # pylint: disable=unused-argument + if x_mask is None: + x_mask = 1 + o = self.prenet(x) * x_mask + o = self.rel_pos_transformer(o, x_mask) + return o + + +class ResidualConv1dBNEncoder(nn.Module): + """Residual Convolutional Encoder as in the original Speedy Speech paper + + TODO: Integrate speaker conditioning vector. + + Args: + in_channels (int): number of input channels. + out_channels (int): number of output channels. + hidden_channels (int): number of hidden channels + params (dict): dictionary for residual convolutional blocks. + """ + + def __init__(self, in_channels, out_channels, hidden_channels, params): + super().__init__() + self.prenet = nn.Sequential(nn.Conv1d(in_channels, hidden_channels, 1), nn.ReLU()) + self.res_conv_block = ResidualConv1dBNBlock(hidden_channels, hidden_channels, hidden_channels, **params) + + self.postnet = nn.Sequential( + *[ + nn.Conv1d(hidden_channels, hidden_channels, 1), + nn.ReLU(), + nn.BatchNorm1d(hidden_channels), + nn.Conv1d(hidden_channels, out_channels, 1), + ] + ) + + def forward(self, x, x_mask=None, g=None): # pylint: disable=unused-argument + if x_mask is None: + x_mask = 1 + o = self.prenet(x) * x_mask + o = self.res_conv_block(o, x_mask) + o = self.postnet(o + x) * x_mask + return o * x_mask + + +class Encoder(nn.Module): + # pylint: disable=dangerous-default-value + """Factory class for Speedy Speech encoder enables different encoder types internally. + + Args: + num_chars (int): number of characters. + out_channels (int): number of output channels. + in_hidden_channels (int): input and hidden channels. Model keeps the input channels for the intermediate layers. + encoder_type (str): encoder layer types. 'transformers' or 'residual_conv_bn'. Default 'residual_conv_bn'. + encoder_params (dict): model parameters for specified encoder type. + c_in_channels (int): number of channels for conditional input. + + Note: + Default encoder_params to be set in config.json... + + ```python + # for 'relative_position_transformer' + encoder_params={ + 'hidden_channels_ffn': 128, + 'num_heads': 2, + "kernel_size": 3, + "dropout_p": 0.1, + "num_layers": 6, + "rel_attn_window_size": 4, + "input_length": None + }, + + # for 'residual_conv_bn' + encoder_params = { + "kernel_size": 4, + "dilations": 4 * [1, 2, 4] + [1], + "num_conv_blocks": 2, + "num_res_blocks": 13 + } + + # for 'fftransformer' + encoder_params = { + "hidden_channels_ffn": 1024 , + "num_heads": 2, + "num_layers": 6, + "dropout_p": 0.1 + } + ``` + """ + + def __init__( + self, + in_hidden_channels, + out_channels, + encoder_type="residual_conv_bn", + encoder_params={"kernel_size": 4, "dilations": 4 * [1, 2, 4] + [1], "num_conv_blocks": 2, "num_res_blocks": 13}, + c_in_channels=0, + ): + super().__init__() + self.out_channels = out_channels + self.in_channels = in_hidden_channels + self.hidden_channels = in_hidden_channels + self.encoder_type = encoder_type + self.c_in_channels = c_in_channels + + # init encoder + if encoder_type.lower() == "relative_position_transformer": + # text encoder + # pylint: disable=unexpected-keyword-arg + self.encoder = RelativePositionTransformerEncoder( + in_hidden_channels, out_channels, in_hidden_channels, encoder_params + ) + elif encoder_type.lower() == "residual_conv_bn": + self.encoder = ResidualConv1dBNEncoder(in_hidden_channels, out_channels, in_hidden_channels, encoder_params) + elif encoder_type.lower() == "fftransformer": + assert ( + in_hidden_channels == out_channels + ), "[!] must be `in_channels` == `out_channels` when encoder type is 'fftransformer'" + # pylint: disable=unexpected-keyword-arg + self.encoder = FFTransformerBlock(in_hidden_channels, **encoder_params) + else: + raise NotImplementedError(" [!] unknown encoder type.") + + def forward(self, x, x_mask, g=None): # pylint: disable=unused-argument + """ + Shapes: + x: [B, C, T] + x_mask: [B, 1, T] + g: [B, C, 1] + """ + o = self.encoder(x, x_mask) + return o * x_mask diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/__init__.py b/Indic-TTS/TTS/TTS/tts/layers/generic/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..06add47f117161c50ecf09a7e1902226d94634e3 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/aligner.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/aligner.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b4bfd0b2d47eba712760bfea92ed0fb13795c9ef Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/aligner.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/normalization.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/normalization.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..31d6683036bba6a7600ef0984a070210b3ad061a Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/normalization.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/pos_encoding.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/pos_encoding.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8333ae8aa2f5578029f760008203c1b18b2e277d Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/pos_encoding.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/res_conv_bn.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/res_conv_bn.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c5e609009da08f94fb3c8bfcd82c5962f613f7a7 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/res_conv_bn.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/transformer.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/transformer.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..063bfd6ed87fa2b95bf9a38bde59e30d1ff972b1 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/transformer.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/wavenet.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/wavenet.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c0dabf252a4f9580081db71cf9d0f0cd84b13187 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/generic/__pycache__/wavenet.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/aligner.py b/Indic-TTS/TTS/TTS/tts/layers/generic/aligner.py new file mode 100644 index 0000000000000000000000000000000000000000..eef4c4b66d80f9bab83ddf81427e5b48d2a43b4b --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/generic/aligner.py @@ -0,0 +1,81 @@ +from typing import Tuple + +import torch +from torch import nn + + +class AlignmentNetwork(torch.nn.Module): + """Aligner Network for learning alignment between the input text and the model output with Gaussian Attention. + + :: + + query -> conv1d -> relu -> conv1d -> relu -> conv1d -> L2_dist -> softmax -> alignment + key -> conv1d -> relu -> conv1d -----------------------^ + + Args: + in_query_channels (int): Number of channels in the query network. Defaults to 80. + in_key_channels (int): Number of channels in the key network. Defaults to 512. + attn_channels (int): Number of inner channels in the attention layers. Defaults to 80. + temperature (float): Temperature for the softmax. Defaults to 0.0005. + """ + + def __init__( + self, + in_query_channels=80, + in_key_channels=512, + attn_channels=80, + temperature=0.0005, + ): + super().__init__() + self.temperature = temperature + self.softmax = torch.nn.Softmax(dim=3) + self.log_softmax = torch.nn.LogSoftmax(dim=3) + + self.key_layer = nn.Sequential( + nn.Conv1d( + in_key_channels, + in_key_channels * 2, + kernel_size=3, + padding=1, + bias=True, + ), + torch.nn.ReLU(), + nn.Conv1d(in_key_channels * 2, attn_channels, kernel_size=1, padding=0, bias=True), + ) + + self.query_layer = nn.Sequential( + nn.Conv1d( + in_query_channels, + in_query_channels * 2, + kernel_size=3, + padding=1, + bias=True, + ), + torch.nn.ReLU(), + nn.Conv1d(in_query_channels * 2, in_query_channels, kernel_size=1, padding=0, bias=True), + torch.nn.ReLU(), + nn.Conv1d(in_query_channels, attn_channels, kernel_size=1, padding=0, bias=True), + ) + + def forward( + self, queries: torch.tensor, keys: torch.tensor, mask: torch.tensor = None, attn_prior: torch.tensor = None + ) -> Tuple[torch.tensor, torch.tensor]: + """Forward pass of the aligner encoder. + Shapes: + - queries: :math:`[B, C, T_de]` + - keys: :math:`[B, C_emb, T_en]` + - mask: :math:`[B, T_de]` + Output: + attn (torch.tensor): :math:`[B, 1, T_en, T_de]` soft attention mask. + attn_logp (torch.tensor): :math:`[รŸB, 1, T_en , T_de]` log probabilities. + """ + key_out = self.key_layer(keys) + query_out = self.query_layer(queries) + attn_factor = (query_out[:, :, :, None] - key_out[:, :, None]) ** 2 + attn_logp = -self.temperature * attn_factor.sum(1, keepdim=True) + if attn_prior is not None: + attn_logp = self.log_softmax(attn_logp) + torch.log(attn_prior[:, None] + 1e-8) + if mask is not None: + attn_logp.data.masked_fill_(~mask.bool().unsqueeze(2), -float("inf")) + attn = self.softmax(attn_logp) + return attn, attn_logp diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/gated_conv.py b/Indic-TTS/TTS/TTS/tts/layers/generic/gated_conv.py new file mode 100644 index 0000000000000000000000000000000000000000..9a29c4499f970db538a4b99c3c05cba22576195f --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/generic/gated_conv.py @@ -0,0 +1,37 @@ +from torch import nn + +from .normalization import LayerNorm + + +class GatedConvBlock(nn.Module): + """Gated convolutional block as in https://arxiv.org/pdf/1612.08083.pdf + Args: + in_out_channels (int): number of input/output channels. + kernel_size (int): convolution kernel size. + dropout_p (float): dropout rate. + """ + + def __init__(self, in_out_channels, kernel_size, dropout_p, num_layers): + super().__init__() + # class arguments + self.dropout_p = dropout_p + self.num_layers = num_layers + # define layers + self.conv_layers = nn.ModuleList() + self.norm_layers = nn.ModuleList() + self.layers = nn.ModuleList() + for _ in range(num_layers): + self.conv_layers += [nn.Conv1d(in_out_channels, 2 * in_out_channels, kernel_size, padding=kernel_size // 2)] + self.norm_layers += [LayerNorm(2 * in_out_channels)] + + def forward(self, x, x_mask): + o = x + res = x + for idx in range(self.num_layers): + o = nn.functional.dropout(o, p=self.dropout_p, training=self.training) + o = self.conv_layers[idx](o * x_mask) + o = self.norm_layers[idx](o) + o = nn.functional.glu(o, dim=1) + o = res + o + res = o + return o diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/normalization.py b/Indic-TTS/TTS/TTS/tts/layers/generic/normalization.py new file mode 100644 index 0000000000000000000000000000000000000000..c0270e405e4246e47b7bc0787e4cd4b069533f92 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/generic/normalization.py @@ -0,0 +1,123 @@ +import torch +from torch import nn + + +class LayerNorm(nn.Module): + def __init__(self, channels, eps=1e-4): + """Layer norm for the 2nd dimension of the input. + Args: + channels (int): number of channels (2nd dimension) of the input. + eps (float): to prevent 0 division + + Shapes: + - input: (B, C, T) + - output: (B, C, T) + """ + super().__init__() + self.channels = channels + self.eps = eps + + self.gamma = nn.Parameter(torch.ones(1, channels, 1) * 0.1) + self.beta = nn.Parameter(torch.zeros(1, channels, 1)) + + def forward(self, x): + mean = torch.mean(x, 1, keepdim=True) + variance = torch.mean((x - mean) ** 2, 1, keepdim=True) + x = (x - mean) * torch.rsqrt(variance + self.eps) + x = x * self.gamma + self.beta + return x + + +class LayerNorm2(nn.Module): + """Layer norm for the 2nd dimension of the input using torch primitive. + Args: + channels (int): number of channels (2nd dimension) of the input. + eps (float): to prevent 0 division + + Shapes: + - input: (B, C, T) + - output: (B, C, T) + """ + + def __init__(self, channels, eps=1e-5): + super().__init__() + self.channels = channels + self.eps = eps + + self.gamma = nn.Parameter(torch.ones(channels)) + self.beta = nn.Parameter(torch.zeros(channels)) + + def forward(self, x): + x = x.transpose(1, -1) + x = torch.nn.functional.layer_norm(x, (self.channels,), self.gamma, self.beta, self.eps) + return x.transpose(1, -1) + + +class TemporalBatchNorm1d(nn.BatchNorm1d): + """Normalize each channel separately over time and batch.""" + + def __init__(self, channels, affine=True, track_running_stats=True, momentum=0.1): + super().__init__(channels, affine=affine, track_running_stats=track_running_stats, momentum=momentum) + + def forward(self, x): + return super().forward(x.transpose(2, 1)).transpose(2, 1) + + +class ActNorm(nn.Module): + """Activation Normalization bijector as an alternative to Batch Norm. It computes + mean and std from a sample data in advance and it uses these values + for normalization at training. + + Args: + channels (int): input channels. + ddi (False): data depended initialization flag. + + Shapes: + - inputs: (B, C, T) + - outputs: (B, C, T) + """ + + def __init__(self, channels, ddi=False, **kwargs): # pylint: disable=unused-argument + super().__init__() + self.channels = channels + self.initialized = not ddi + + self.logs = nn.Parameter(torch.zeros(1, channels, 1)) + self.bias = nn.Parameter(torch.zeros(1, channels, 1)) + + def forward(self, x, x_mask=None, reverse=False, **kwargs): # pylint: disable=unused-argument + if x_mask is None: + x_mask = torch.ones(x.size(0), 1, x.size(2)).to(device=x.device, dtype=x.dtype) + x_len = torch.sum(x_mask, [1, 2]) + if not self.initialized: + self.initialize(x, x_mask) + self.initialized = True + + if reverse: + z = (x - self.bias) * torch.exp(-self.logs) * x_mask + logdet = None + else: + z = (self.bias + torch.exp(self.logs) * x) * x_mask + logdet = torch.sum(self.logs) * x_len # [b] + + return z, logdet + + def store_inverse(self): + pass + + def set_ddi(self, ddi): + self.initialized = not ddi + + def initialize(self, x, x_mask): + with torch.no_grad(): + denom = torch.sum(x_mask, [0, 2]) + m = torch.sum(x * x_mask, [0, 2]) / denom + m_sq = torch.sum(x * x * x_mask, [0, 2]) / denom + v = m_sq - (m**2) + logs = 0.5 * torch.log(torch.clamp_min(v, 1e-6)) + + bias_init = (-m * torch.exp(-logs)).view(*self.bias.shape).to(dtype=self.bias.dtype) + logs_init = (-logs).view(*self.logs.shape).to(dtype=self.logs.dtype) + + self.bias.data.copy_(bias_init) + self.logs.data.copy_(logs_init) diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/pos_encoding.py b/Indic-TTS/TTS/TTS/tts/layers/generic/pos_encoding.py new file mode 100644 index 0000000000000000000000000000000000000000..2ed8d56786b5442c0038dc2af5eef9c68cdace56 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/generic/pos_encoding.py @@ -0,0 +1,70 @@ +import math + +import torch +from torch import nn + + +class PositionalEncoding(nn.Module): + """Sinusoidal positional encoding for non-recurrent neural networks. + Implementation based on "Attention Is All You Need" + + Args: + channels (int): embedding size + dropout_p (float): dropout rate applied to the output. + max_len (int): maximum sequence length. + use_scale (bool): whether to use a learnable scaling coefficient. + """ + + def __init__(self, channels, dropout_p=0.0, max_len=5000, use_scale=False): + super().__init__() + if channels % 2 != 0: + raise ValueError( + "Cannot use sin/cos positional encoding with " "odd channels (got channels={:d})".format(channels) + ) + self.max_len = max_len + self.use_scale = use_scale + if use_scale: + self.scale = torch.nn.Parameter(torch.ones(1)) + pe = torch.zeros(max_len, channels) + position = torch.arange(0, max_len).unsqueeze(1) + div_term = torch.pow(10000, torch.arange(0, channels, 2).float() / channels) + pe[:, 0::2] = torch.sin(position.float() * div_term) + pe[:, 1::2] = torch.cos(position.float() * div_term) + pe = pe.unsqueeze(0).transpose(1, 2) + self.register_buffer("pe", pe) + if dropout_p > 0: + self.dropout = nn.Dropout(p=dropout_p) + self.channels = channels + + def forward(self, x, mask=None, first_idx=None, last_idx=None): + """ + Shapes: + x: [B, C, T] + mask: [B, 1, T] + first_idx: int + last_idx: int + """ + + x = x * math.sqrt(self.channels) + if first_idx is None: + if self.pe.size(2) < x.size(2): + raise RuntimeError( + f"Sequence is {x.size(2)} but PositionalEncoding is" + f" limited to {self.pe.size(2)}. See max_len argument." + ) + if mask is not None: + pos_enc = self.pe[:, :, : x.size(2)] * mask + else: + pos_enc = self.pe[:, :, : x.size(2)] + if self.use_scale: + x = x + self.scale * pos_enc + else: + x = x + pos_enc + else: + if self.use_scale: + x = x + self.scale * self.pe[:, :, first_idx:last_idx] + else: + x = x + self.pe[:, :, first_idx:last_idx] + if hasattr(self, "dropout"): + x = self.dropout(x) + return x diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/res_conv_bn.py b/Indic-TTS/TTS/TTS/tts/layers/generic/res_conv_bn.py new file mode 100644 index 0000000000000000000000000000000000000000..30c134cd70018197950fb9fb4d7f5fa1a7198b5e --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/generic/res_conv_bn.py @@ -0,0 +1,128 @@ +from torch import nn + + +class ZeroTemporalPad(nn.Module): + """Pad sequences to equal lentgh in the temporal dimension""" + + def __init__(self, kernel_size, dilation): + super().__init__() + total_pad = dilation * (kernel_size - 1) + begin = total_pad // 2 + end = total_pad - begin + self.pad_layer = nn.ZeroPad2d((0, 0, begin, end)) + + def forward(self, x): + return self.pad_layer(x) + + +class Conv1dBN(nn.Module): + """1d convolutional with batch norm. + conv1d -> relu -> BN blocks. + + Note: + Batch normalization is applied after ReLU regarding the original implementation. + + Args: + in_channels (int): number of input channels. + out_channels (int): number of output channels. + kernel_size (int): kernel size for convolutional filters. + dilation (int): dilation for convolution layers. + """ + + def __init__(self, in_channels, out_channels, kernel_size, dilation): + super().__init__() + padding = dilation * (kernel_size - 1) + pad_s = padding // 2 + pad_e = padding - pad_s + self.conv1d = nn.Conv1d(in_channels, out_channels, kernel_size, dilation=dilation) + self.pad = nn.ZeroPad2d((pad_s, pad_e, 0, 0)) # uneven left and right padding + self.norm = nn.BatchNorm1d(out_channels) + + def forward(self, x): + o = self.conv1d(x) + o = self.pad(o) + o = nn.functional.relu(o) + o = self.norm(o) + return o + + +class Conv1dBNBlock(nn.Module): + """1d convolutional block with batch norm. It is a set of conv1d -> relu -> BN blocks. + + Args: + in_channels (int): number of input channels. + out_channels (int): number of output channels. + hidden_channels (int): number of inner convolution channels. + kernel_size (int): kernel size for convolutional filters. + dilation (int): dilation for convolution layers. + num_conv_blocks (int, optional): number of convolutional blocks. Defaults to 2. + """ + + def __init__(self, in_channels, out_channels, hidden_channels, kernel_size, dilation, num_conv_blocks=2): + super().__init__() + self.conv_bn_blocks = [] + for idx in range(num_conv_blocks): + layer = Conv1dBN( + in_channels if idx == 0 else hidden_channels, + out_channels if idx == (num_conv_blocks - 1) else hidden_channels, + kernel_size, + dilation, + ) + self.conv_bn_blocks.append(layer) + self.conv_bn_blocks = nn.Sequential(*self.conv_bn_blocks) + + def forward(self, x): + """ + Shapes: + x: (B, D, T) + """ + return self.conv_bn_blocks(x) + + +class ResidualConv1dBNBlock(nn.Module): + """Residual Convolutional Blocks with BN + Each block has 'num_conv_block' conv layers and 'num_res_blocks' such blocks are connected + with residual connections. + + conv_block = (conv1d -> relu -> bn) x 'num_conv_blocks' + residuak_conv_block = (x -> conv_block -> + ->) x 'num_res_blocks' + ' - - - - - - - - - ^ + Args: + in_channels (int): number of input channels. + out_channels (int): number of output channels. + hidden_channels (int): number of inner convolution channels. + kernel_size (int): kernel size for convolutional filters. + dilations (list): dilations for each convolution layer. + num_res_blocks (int, optional): number of residual blocks. Defaults to 13. + num_conv_blocks (int, optional): number of convolutional blocks in each residual block. Defaults to 2. + """ + + def __init__( + self, in_channels, out_channels, hidden_channels, kernel_size, dilations, num_res_blocks=13, num_conv_blocks=2 + ): + + super().__init__() + assert len(dilations) == num_res_blocks + self.res_blocks = nn.ModuleList() + for idx, dilation in enumerate(dilations): + block = Conv1dBNBlock( + in_channels if idx == 0 else hidden_channels, + out_channels if (idx + 1) == len(dilations) else hidden_channels, + hidden_channels, + kernel_size, + dilation, + num_conv_blocks, + ) + self.res_blocks.append(block) + + def forward(self, x, x_mask=None): + if x_mask is None: + x_mask = 1.0 + o = x * x_mask + for block in self.res_blocks: + res = o + o = block(o) + o = o + res + if x_mask is not None: + o = o * x_mask + return o diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/time_depth_sep_conv.py b/Indic-TTS/TTS/TTS/tts/layers/generic/time_depth_sep_conv.py new file mode 100644 index 0000000000000000000000000000000000000000..186cea02e75e156c40923de91086c369a9ea02ee --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/generic/time_depth_sep_conv.py @@ -0,0 +1,84 @@ +import torch +from torch import nn + + +class TimeDepthSeparableConv(nn.Module): + """Time depth separable convolution as in https://arxiv.org/pdf/1904.02619.pdf + It shows competative results with less computation and memory footprint.""" + + def __init__(self, in_channels, hid_channels, out_channels, kernel_size, bias=True): + super().__init__() + + self.in_channels = in_channels + self.out_channels = out_channels + self.hid_channels = hid_channels + self.kernel_size = kernel_size + + self.time_conv = nn.Conv1d( + in_channels, + 2 * hid_channels, + kernel_size=1, + stride=1, + padding=0, + bias=bias, + ) + self.norm1 = nn.BatchNorm1d(2 * hid_channels) + self.depth_conv = nn.Conv1d( + hid_channels, + hid_channels, + kernel_size, + stride=1, + padding=(kernel_size - 1) // 2, + groups=hid_channels, + bias=bias, + ) + self.norm2 = nn.BatchNorm1d(hid_channels) + self.time_conv2 = nn.Conv1d( + hid_channels, + out_channels, + kernel_size=1, + stride=1, + padding=0, + bias=bias, + ) + self.norm3 = nn.BatchNorm1d(out_channels) + + def forward(self, x): + x_res = x + x = self.time_conv(x) + x = self.norm1(x) + x = nn.functional.glu(x, dim=1) + x = self.depth_conv(x) + x = self.norm2(x) + x = x * torch.sigmoid(x) + x = self.time_conv2(x) + x = self.norm3(x) + x = x_res + x + return x + + +class TimeDepthSeparableConvBlock(nn.Module): + def __init__(self, in_channels, hid_channels, out_channels, num_layers, kernel_size, bias=True): + super().__init__() + assert (kernel_size - 1) % 2 == 0 + assert num_layers > 1 + + self.layers = nn.ModuleList() + layer = TimeDepthSeparableConv( + in_channels, hid_channels, out_channels if num_layers == 1 else hid_channels, kernel_size, bias + ) + self.layers.append(layer) + for idx in range(num_layers - 1): + layer = TimeDepthSeparableConv( + hid_channels, + hid_channels, + out_channels if (idx + 1) == (num_layers - 1) else hid_channels, + kernel_size, + bias, + ) + self.layers.append(layer) + + def forward(self, x, mask): + for layer in self.layers: + x = layer(x * mask) + return x diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/transformer.py b/Indic-TTS/TTS/TTS/tts/layers/generic/transformer.py new file mode 100644 index 0000000000000000000000000000000000000000..9b7ecee2bacb68cd330e18630531c97bc6f2e6a3 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/generic/transformer.py @@ -0,0 +1,89 @@ +import torch +import torch.nn.functional as F +from torch import nn + + +class FFTransformer(nn.Module): + def __init__(self, in_out_channels, num_heads, hidden_channels_ffn=1024, kernel_size_fft=3, dropout_p=0.1): + super().__init__() + self.self_attn = nn.MultiheadAttention(in_out_channels, num_heads, dropout=dropout_p) + + padding = (kernel_size_fft - 1) // 2 + self.conv1 = nn.Conv1d(in_out_channels, hidden_channels_ffn, kernel_size=kernel_size_fft, padding=padding) + self.conv2 = nn.Conv1d(hidden_channels_ffn, in_out_channels, kernel_size=kernel_size_fft, padding=padding) + + self.norm1 = nn.LayerNorm(in_out_channels) + self.norm2 = nn.LayerNorm(in_out_channels) + + self.dropout1 = nn.Dropout(dropout_p) + self.dropout2 = nn.Dropout(dropout_p) + + def forward(self, src, src_mask=None, src_key_padding_mask=None): + """๐Ÿ˜ฆ ugly looking with all the transposing""" + src = src.permute(2, 0, 1) + src2, enc_align = self.self_attn(src, src, src, attn_mask=src_mask, key_padding_mask=src_key_padding_mask) + src = src + self.dropout1(src2) + src = self.norm1(src + src2) + # T x B x D -> B x D x T + src = src.permute(1, 2, 0) + src2 = self.conv2(F.relu(self.conv1(src))) + src2 = self.dropout2(src2) + src = src + src2 + src = src.transpose(1, 2) + src = self.norm2(src) + src = src.transpose(1, 2) + return src, enc_align + + +class FFTransformerBlock(nn.Module): + def __init__(self, in_out_channels, num_heads, hidden_channels_ffn, num_layers, dropout_p): + super().__init__() + self.fft_layers = nn.ModuleList( + [ + FFTransformer( + in_out_channels=in_out_channels, + num_heads=num_heads, + hidden_channels_ffn=hidden_channels_ffn, + dropout_p=dropout_p, + ) + for _ in range(num_layers) + ] + ) + + def forward(self, x, mask=None, g=None): # pylint: disable=unused-argument + """ + TODO: handle multi-speaker + Shapes: + - x: :math:`[B, C, T]` + - mask: :math:`[B, 1, T] or [B, T]` + """ + if mask is not None and mask.ndim == 3: + mask = mask.squeeze(1) + # mask is negated, torch uses 1s and 0s reversely. + mask = ~mask.bool() + alignments = [] + for layer in self.fft_layers: + x, align = layer(x, src_key_padding_mask=mask) + alignments.append(align.unsqueeze(1)) + alignments = torch.cat(alignments, 1) + return x + + +class FFTDurationPredictor: + def __init__( + self, in_channels, hidden_channels, num_heads, num_layers, dropout_p=0.1, cond_channels=None + ): # pylint: disable=unused-argument + self.fft = FFTransformerBlock(in_channels, num_heads, hidden_channels, num_layers, dropout_p) + self.proj = nn.Linear(in_channels, 1) + + def forward(self, x, mask=None, g=None): # pylint: disable=unused-argument + """ + Shapes: + - x: :math:`[B, C, T]` + - mask: :math:`[B, 1, T]` + + TODO: Handle the cond input + """ + x = self.fft(x, mask=mask) + x = self.proj(x) + return x diff --git a/Indic-TTS/TTS/TTS/tts/layers/generic/wavenet.py b/Indic-TTS/TTS/TTS/tts/layers/generic/wavenet.py new file mode 100644 index 0000000000000000000000000000000000000000..aeb45c7bcd455d29499848446faaca8036a8c0f9 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/generic/wavenet.py @@ -0,0 +1,171 @@ +import torch +from torch import nn + + +@torch.jit.script +def fused_add_tanh_sigmoid_multiply(input_a, input_b, n_channels): + n_channels_int = n_channels[0] + in_act = input_a + input_b + t_act = torch.tanh(in_act[:, :n_channels_int, :]) + s_act = torch.sigmoid(in_act[:, n_channels_int:, :]) + acts = t_act * s_act + return acts + + +class WN(torch.nn.Module): + """Wavenet layers with weight norm and no input conditioning. + + |-----------------------------------------------------------------------------| + | |-> tanh -| | + res -|- conv1d(dilation) -> dropout -> + -| * -> conv1d1x1 -> split -|- + -> res + g -------------------------------------| |-> sigmoid -| | + o --------------------------------------------------------------------------- + --------- o + + Args: + in_channels (int): number of input channels. + hidden_channes (int): number of hidden channels. + kernel_size (int): filter kernel size for the first conv layer. + dilation_rate (int): dilations rate to increase dilation per layer. + If it is 2, dilations are 1, 2, 4, 8 for the next 4 layers. + num_layers (int): number of wavenet layers. + c_in_channels (int): number of channels of conditioning input. + dropout_p (float): dropout rate. + weight_norm (bool): enable/disable weight norm for convolution layers. + """ + + def __init__( + self, + in_channels, + hidden_channels, + kernel_size, + dilation_rate, + num_layers, + c_in_channels=0, + dropout_p=0, + weight_norm=True, + ): + super().__init__() + assert kernel_size % 2 == 1 + assert hidden_channels % 2 == 0 + self.in_channels = in_channels + self.hidden_channels = hidden_channels + self.kernel_size = kernel_size + self.dilation_rate = dilation_rate + self.num_layers = num_layers + self.c_in_channels = c_in_channels + self.dropout_p = dropout_p + + self.in_layers = torch.nn.ModuleList() + self.res_skip_layers = torch.nn.ModuleList() + self.dropout = nn.Dropout(dropout_p) + + # init conditioning layer + if c_in_channels > 0: + cond_layer = torch.nn.Conv1d(c_in_channels, 2 * hidden_channels * num_layers, 1) + self.cond_layer = torch.nn.utils.weight_norm(cond_layer, name="weight") + # intermediate layers + for i in range(num_layers): + dilation = dilation_rate**i + padding = int((kernel_size * dilation - dilation) / 2) + in_layer = torch.nn.Conv1d( + hidden_channels, 2 * hidden_channels, kernel_size, dilation=dilation, padding=padding + ) + in_layer = torch.nn.utils.weight_norm(in_layer, name="weight") + self.in_layers.append(in_layer) + + if i < num_layers - 1: + res_skip_channels = 2 * hidden_channels + else: + res_skip_channels = hidden_channels + + res_skip_layer = torch.nn.Conv1d(hidden_channels, res_skip_channels, 1) + res_skip_layer = torch.nn.utils.weight_norm(res_skip_layer, name="weight") + self.res_skip_layers.append(res_skip_layer) + # setup weight norm + if not weight_norm: + self.remove_weight_norm() + + def forward(self, x, x_mask=None, g=None, **kwargs): # pylint: disable=unused-argument + output = torch.zeros_like(x) + n_channels_tensor = torch.IntTensor([self.hidden_channels]) + x_mask = 1.0 if x_mask is None else x_mask + if g is not None: + g = self.cond_layer(g) + for i in range(self.num_layers): + x_in = self.in_layers[i](x) + x_in = self.dropout(x_in) + if g is not None: + cond_offset = i * 2 * self.hidden_channels + g_l = g[:, cond_offset : cond_offset + 2 * self.hidden_channels, :] + else: + g_l = torch.zeros_like(x_in) + acts = fused_add_tanh_sigmoid_multiply(x_in, g_l, n_channels_tensor) + res_skip_acts = self.res_skip_layers[i](acts) + if i < self.num_layers - 1: + x = (x + res_skip_acts[:, : self.hidden_channels, :]) * x_mask + output = output + res_skip_acts[:, self.hidden_channels :, :] + else: + output = output + res_skip_acts + return output * x_mask + + def remove_weight_norm(self): + if self.c_in_channels != 0: + torch.nn.utils.remove_weight_norm(self.cond_layer) + for l in self.in_layers: + torch.nn.utils.remove_weight_norm(l) + for l in self.res_skip_layers: + torch.nn.utils.remove_weight_norm(l) + + +class WNBlocks(nn.Module): + """Wavenet blocks. + + Note: After each block dilation resets to 1 and it increases in each block + along the dilation rate. + + Args: + in_channels (int): number of input channels. + hidden_channes (int): number of hidden channels. + kernel_size (int): filter kernel size for the first conv layer. + dilation_rate (int): dilations rate to increase dilation per layer. + If it is 2, dilations are 1, 2, 4, 8 for the next 4 layers. + num_blocks (int): number of wavenet blocks. + num_layers (int): number of wavenet layers. + c_in_channels (int): number of channels of conditioning input. + dropout_p (float): dropout rate. + weight_norm (bool): enable/disable weight norm for convolution layers. + """ + + def __init__( + self, + in_channels, + hidden_channels, + kernel_size, + dilation_rate, + num_blocks, + num_layers, + c_in_channels=0, + dropout_p=0, + weight_norm=True, + ): + + super().__init__() + self.wn_blocks = nn.ModuleList() + for idx in range(num_blocks): + layer = WN( + in_channels=in_channels if idx == 0 else hidden_channels, + hidden_channels=hidden_channels, + kernel_size=kernel_size, + dilation_rate=dilation_rate, + num_layers=num_layers, + c_in_channels=c_in_channels, + dropout_p=dropout_p, + weight_norm=weight_norm, + ) + self.wn_blocks.append(layer) + + def forward(self, x, x_mask=None, g=None): + o = x + for layer in self.wn_blocks: + o = layer(o, x_mask, g) + return o diff --git a/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__init__.py b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..881da5c50809755810881af4c0bf1d47b202d9f6 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/duration_predictor.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/duration_predictor.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1ad2b6b7ef17939351b3c5cf1d46e90483e87c76 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/duration_predictor.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/glow.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/glow.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..625487622b3dd2418d61d9e981bb15b1a804381c Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/glow.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/transformer.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/transformer.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..364d151cb8e119e68b6a348da528bb70e8d7e55c Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/__pycache__/transformer.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/glow_tts/decoder.py b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/decoder.py new file mode 100644 index 0000000000000000000000000000000000000000..f57c37314c7a2ff10f56f3367f577b31f6dd9821 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/decoder.py @@ -0,0 +1,141 @@ +import torch +from torch import nn + +from TTS.tts.layers.generic.normalization import ActNorm +from TTS.tts.layers.glow_tts.glow import CouplingBlock, InvConvNear + + +def squeeze(x, x_mask=None, num_sqz=2): + """GlowTTS squeeze operation + Increase number of channels and reduce number of time steps + by the same factor. + + Note: + each 's' is a n-dimensional vector. + ``[s1,s2,s3,s4,s5,s6] --> [[s1, s3, s5], [s2, s4, s6]]`` + """ + b, c, t = x.size() + + t = (t // num_sqz) * num_sqz + x = x[:, :, :t] + x_sqz = x.view(b, c, t // num_sqz, num_sqz) + x_sqz = x_sqz.permute(0, 3, 1, 2).contiguous().view(b, c * num_sqz, t // num_sqz) + + if x_mask is not None: + x_mask = x_mask[:, :, num_sqz - 1 :: num_sqz] + else: + x_mask = torch.ones(b, 1, t // num_sqz).to(device=x.device, dtype=x.dtype) + return x_sqz * x_mask, x_mask + + +def unsqueeze(x, x_mask=None, num_sqz=2): + """GlowTTS unsqueeze operation + + Note: + each 's' is a n-dimensional vector. + ``[[s1, s3, s5], [s2, s4, s6]] --> [[s1, s3, s5], [s2, s4, s6]]`` + """ + b, c, t = x.size() + + x_unsqz = x.view(b, num_sqz, c // num_sqz, t) + x_unsqz = x_unsqz.permute(0, 2, 3, 1).contiguous().view(b, c // num_sqz, t * num_sqz) + + if x_mask is not None: + x_mask = x_mask.unsqueeze(-1).repeat(1, 1, 1, num_sqz).view(b, 1, t * num_sqz) + else: + x_mask = torch.ones(b, 1, t * num_sqz).to(device=x.device, dtype=x.dtype) + return x_unsqz * x_mask, x_mask + + +class Decoder(nn.Module): + """Stack of Glow Decoder Modules. + + :: + + Squeeze -> ActNorm -> InvertibleConv1x1 -> AffineCoupling -> Unsqueeze + + Args: + in_channels (int): channels of input tensor. + hidden_channels (int): hidden decoder channels. + kernel_size (int): Coupling block kernel size. (Wavenet filter kernel size.) + dilation_rate (int): rate to increase dilation by each layer in a decoder block. + num_flow_blocks (int): number of decoder blocks. + num_coupling_layers (int): number coupling layers. (number of wavenet layers.) + dropout_p (float): wavenet dropout rate. + sigmoid_scale (bool): enable/disable sigmoid scaling in coupling layer. + """ + + def __init__( + self, + in_channels, + hidden_channels, + kernel_size, + dilation_rate, + num_flow_blocks, + num_coupling_layers, + dropout_p=0.0, + num_splits=4, + num_squeeze=2, + sigmoid_scale=False, + c_in_channels=0, + ): + super().__init__() + + self.in_channels = in_channels + self.hidden_channels = hidden_channels + self.kernel_size = kernel_size + self.dilation_rate = dilation_rate + self.num_flow_blocks = num_flow_blocks + self.num_coupling_layers = num_coupling_layers + self.dropout_p = dropout_p + self.num_splits = num_splits + self.num_squeeze = num_squeeze + self.sigmoid_scale = sigmoid_scale + self.c_in_channels = c_in_channels + + self.flows = nn.ModuleList() + for _ in range(num_flow_blocks): + self.flows.append(ActNorm(channels=in_channels * num_squeeze)) + self.flows.append(InvConvNear(channels=in_channels * num_squeeze, num_splits=num_splits)) + self.flows.append( + CouplingBlock( + in_channels * num_squeeze, + hidden_channels, + kernel_size=kernel_size, + dilation_rate=dilation_rate, + num_layers=num_coupling_layers, + c_in_channels=c_in_channels, + dropout_p=dropout_p, + sigmoid_scale=sigmoid_scale, + ) + ) + + def forward(self, x, x_mask, g=None, reverse=False): + """ + Shapes: + - x: :math:`[B, C, T]` + - x_mask: :math:`[B, 1 ,T]` + - g: :math:`[B, C]` + """ + if not reverse: + flows = self.flows + logdet_tot = 0 + else: + flows = reversed(self.flows) + logdet_tot = None + + if self.num_squeeze > 1: + x, x_mask = squeeze(x, x_mask, self.num_squeeze) + for f in flows: + if not reverse: + x, logdet = f(x, x_mask, g=g, reverse=reverse) + logdet_tot += logdet + else: + x, logdet = f(x, x_mask, g=g, reverse=reverse) + if self.num_squeeze > 1: + x, x_mask = unsqueeze(x, x_mask, self.num_squeeze) + return x, logdet_tot + + def store_inverse(self): + for f in self.flows: + f.store_inverse() diff --git a/Indic-TTS/TTS/TTS/tts/layers/glow_tts/duration_predictor.py b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/duration_predictor.py new file mode 100644 index 0000000000000000000000000000000000000000..e766ed6ab5a0348eaca8d1482be124003d8b8c68 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/duration_predictor.py @@ -0,0 +1,69 @@ +import torch +from torch import nn + +from ..generic.normalization import LayerNorm + + +class DurationPredictor(nn.Module): + """Glow-TTS duration prediction model. + + :: + + [2 x (conv1d_kxk -> relu -> layer_norm -> dropout)] -> conv1d_1x1 -> durs + + Args: + in_channels (int): Number of channels of the input tensor. + hidden_channels (int): Number of hidden channels of the network. + kernel_size (int): Kernel size for the conv layers. + dropout_p (float): Dropout rate used after each conv layer. + """ + + def __init__(self, in_channels, hidden_channels, kernel_size, dropout_p, cond_channels=None, language_emb_dim=None): + super().__init__() + + # add language embedding dim in the input + if language_emb_dim: + in_channels += language_emb_dim + + # class arguments + self.in_channels = in_channels + self.filter_channels = hidden_channels + self.kernel_size = kernel_size + self.dropout_p = dropout_p + # layers + self.drop = nn.Dropout(dropout_p) + self.conv_1 = nn.Conv1d(in_channels, hidden_channels, kernel_size, padding=kernel_size // 2) + self.norm_1 = LayerNorm(hidden_channels) + self.conv_2 = nn.Conv1d(hidden_channels, hidden_channels, kernel_size, padding=kernel_size // 2) + self.norm_2 = LayerNorm(hidden_channels) + # output layer + self.proj = nn.Conv1d(hidden_channels, 1, 1) + if cond_channels is not None and cond_channels != 0: + self.cond = nn.Conv1d(cond_channels, in_channels, 1) + + if language_emb_dim != 0 and language_emb_dim is not None: + self.cond_lang = nn.Conv1d(language_emb_dim, in_channels, 1) + + def forward(self, x, x_mask, g=None, lang_emb=None): + """ + Shapes: + - x: :math:`[B, C, T]` + - x_mask: :math:`[B, 1, T]` + - g: :math:`[B, C, 1]` + """ + if g is not None: + x = x + self.cond(g) + + if lang_emb is not None: + x = x + self.cond_lang(lang_emb) + + x = self.conv_1(x * x_mask) + x = torch.relu(x) + x = self.norm_1(x) + x = self.drop(x) + x = self.conv_2(x * x_mask) + x = torch.relu(x) + x = self.norm_2(x) + x = self.drop(x) + x = self.proj(x * x_mask) + return x * x_mask diff --git a/Indic-TTS/TTS/TTS/tts/layers/glow_tts/encoder.py b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..3b43e527f5e9ca2bd0880bf204e04a1526bc8dfb --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/encoder.py @@ -0,0 +1,179 @@ +import math + +import torch +from torch import nn + +from TTS.tts.layers.generic.gated_conv import GatedConvBlock +from TTS.tts.layers.generic.res_conv_bn import ResidualConv1dBNBlock +from TTS.tts.layers.generic.time_depth_sep_conv import TimeDepthSeparableConvBlock +from TTS.tts.layers.glow_tts.duration_predictor import DurationPredictor +from TTS.tts.layers.glow_tts.glow import ResidualConv1dLayerNormBlock +from TTS.tts.layers.glow_tts.transformer import RelativePositionTransformer +from TTS.tts.utils.helpers import sequence_mask + + +class Encoder(nn.Module): + """Glow-TTS encoder module. + + :: + + embedding -> -> encoder_module -> --> proj_mean + | + |-> proj_var + | + |-> concat -> duration_predictor + โ†‘ + speaker_embed + + Args: + num_chars (int): number of characters. + out_channels (int): number of output channels. + hidden_channels (int): encoder's embedding size. + hidden_channels_ffn (int): transformer's feed-forward channels. + kernel_size (int): kernel size for conv layers and duration predictor. + dropout_p (float): dropout rate for any dropout layer. + mean_only (bool): if True, output only mean values and use constant std. + use_prenet (bool): if True, use pre-convolutional layers before transformer layers. + c_in_channels (int): number of channels in conditional input. + + Shapes: + - input: (B, T, C) + + :: + + suggested encoder params... + + for encoder_type == 'rel_pos_transformer' + encoder_params={ + 'kernel_size':3, + 'dropout_p': 0.1, + 'num_layers': 6, + 'num_heads': 2, + 'hidden_channels_ffn': 768, # 4 times the hidden_channels + 'input_length': None + } + + for encoder_type == 'gated_conv' + encoder_params={ + 'kernel_size':5, + 'dropout_p': 0.1, + 'num_layers': 9, + } + + for encoder_type == 'residual_conv_bn' + encoder_params={ + "kernel_size": 4, + "dilations": [1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1], + "num_conv_blocks": 2, + "num_res_blocks": 13 + } + + for encoder_type == 'time_depth_separable' + encoder_params={ + "kernel_size": 5, + 'num_layers': 9, + } + """ + + def __init__( + self, + num_chars, + out_channels, + hidden_channels, + hidden_channels_dp, + encoder_type, + encoder_params, + dropout_p_dp=0.1, + mean_only=False, + use_prenet=True, + c_in_channels=0, + ): + super().__init__() + # class arguments + self.num_chars = num_chars + self.out_channels = out_channels + self.hidden_channels = hidden_channels + self.hidden_channels_dp = hidden_channels_dp + self.dropout_p_dp = dropout_p_dp + self.mean_only = mean_only + self.use_prenet = use_prenet + self.c_in_channels = c_in_channels + self.encoder_type = encoder_type + # embedding layer + self.emb = nn.Embedding(num_chars, hidden_channels) + nn.init.normal_(self.emb.weight, 0.0, hidden_channels**-0.5) + # init encoder module + if encoder_type.lower() == "rel_pos_transformer": + if use_prenet: + self.prenet = ResidualConv1dLayerNormBlock( + hidden_channels, hidden_channels, hidden_channels, kernel_size=5, num_layers=3, dropout_p=0.5 + ) + self.encoder = RelativePositionTransformer( + hidden_channels, hidden_channels, hidden_channels, **encoder_params + ) + elif encoder_type.lower() == "gated_conv": + self.encoder = GatedConvBlock(hidden_channels, **encoder_params) + elif encoder_type.lower() == "residual_conv_bn": + if use_prenet: + self.prenet = nn.Sequential(nn.Conv1d(hidden_channels, hidden_channels, 1), nn.ReLU()) + self.encoder = ResidualConv1dBNBlock(hidden_channels, hidden_channels, hidden_channels, **encoder_params) + self.postnet = nn.Sequential( + nn.Conv1d(self.hidden_channels, self.hidden_channels, 1), nn.BatchNorm1d(self.hidden_channels) + ) + elif encoder_type.lower() == "time_depth_separable": + if use_prenet: + self.prenet = ResidualConv1dLayerNormBlock( + hidden_channels, hidden_channels, hidden_channels, kernel_size=5, num_layers=3, dropout_p=0.5 + ) + self.encoder = TimeDepthSeparableConvBlock( + hidden_channels, hidden_channels, hidden_channels, **encoder_params + ) + else: + raise ValueError(" [!] Unkown encoder type.") + + # final projection layers + self.proj_m = nn.Conv1d(hidden_channels, out_channels, 1) + if not mean_only: + self.proj_s = nn.Conv1d(hidden_channels, out_channels, 1) + # duration predictor + self.duration_predictor = DurationPredictor( + hidden_channels + c_in_channels, hidden_channels_dp, 3, dropout_p_dp + ) + + def forward(self, x, x_lengths, g=None): + """ + Shapes: + - x: :math:`[B, C, T]` + - x_lengths: :math:`[B]` + - g (optional): :math:`[B, 1, T]` + """ + # embedding layer + # [B ,T, D] + x = self.emb(x) * math.sqrt(self.hidden_channels) + # [B, D, T] + x = torch.transpose(x, 1, -1) + # compute input sequence mask + x_mask = torch.unsqueeze(sequence_mask(x_lengths, x.size(2)), 1).to(x.dtype) + # prenet + if hasattr(self, "prenet") and self.use_prenet: + x = self.prenet(x, x_mask) + # encoder + x = self.encoder(x, x_mask) + # postnet + if hasattr(self, "postnet"): + x = self.postnet(x) * x_mask + # set duration predictor input + if g is not None: + g_exp = g.expand(-1, -1, x.size(-1)) + x_dp = torch.cat([x.detach(), g_exp], 1) + else: + x_dp = x.detach() + # final projection layer + x_m = self.proj_m(x) * x_mask + if not self.mean_only: + x_logs = self.proj_s(x) * x_mask + else: + x_logs = torch.zeros_like(x_m) + # duration predictor + logw = self.duration_predictor(x_dp, x_mask) + return x_m, x_logs, logw, x_mask diff --git a/Indic-TTS/TTS/TTS/tts/layers/glow_tts/glow.py b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/glow.py new file mode 100644 index 0000000000000000000000000000000000000000..ff1b99e8ecc4de8fffd40011532e801e13f99c0c --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/glow.py @@ -0,0 +1,234 @@ +from distutils.version import LooseVersion + +import torch +from torch import nn +from torch.nn import functional as F + +from TTS.tts.layers.generic.wavenet import WN + +from ..generic.normalization import LayerNorm + + +class ResidualConv1dLayerNormBlock(nn.Module): + """Conv1d with Layer Normalization and residual connection as in GlowTTS paper. + https://arxiv.org/pdf/1811.00002.pdf + + :: + + x |-> conv1d -> layer_norm -> relu -> dropout -> + -> o + |---------------> conv1d_1x1 ------------------| + + Args: + in_channels (int): number of input tensor channels. + hidden_channels (int): number of inner layer channels. + out_channels (int): number of output tensor channels. + kernel_size (int): kernel size of conv1d filter. + num_layers (int): number of blocks. + dropout_p (float): dropout rate for each block. + """ + + def __init__(self, in_channels, hidden_channels, out_channels, kernel_size, num_layers, dropout_p): + super().__init__() + self.in_channels = in_channels + self.hidden_channels = hidden_channels + self.out_channels = out_channels + self.kernel_size = kernel_size + self.num_layers = num_layers + self.dropout_p = dropout_p + assert num_layers > 1, " [!] number of layers should be > 0." + assert kernel_size % 2 == 1, " [!] kernel size should be odd number." + + self.conv_layers = nn.ModuleList() + self.norm_layers = nn.ModuleList() + + for idx in range(num_layers): + self.conv_layers.append( + nn.Conv1d( + in_channels if idx == 0 else hidden_channels, hidden_channels, kernel_size, padding=kernel_size // 2 + ) + ) + self.norm_layers.append(LayerNorm(hidden_channels)) + + self.proj = nn.Conv1d(hidden_channels, out_channels, 1) + self.proj.weight.data.zero_() + self.proj.bias.data.zero_() + + def forward(self, x, x_mask): + """ + Shapes: + - x: :math:`[B, C, T]` + - x_mask: :math:`[B, 1, T]` + """ + x_res = x + for i in range(self.num_layers): + x = self.conv_layers[i](x * x_mask) + x = self.norm_layers[i](x * x_mask) + x = F.dropout(F.relu(x), self.dropout_p, training=self.training) + x = x_res + self.proj(x) + return x * x_mask + + +class InvConvNear(nn.Module): + """Invertible Convolution with input splitting as in GlowTTS paper. + https://arxiv.org/pdf/1811.00002.pdf + + Args: + channels (int): input and output channels. + num_splits (int): number of splits, also H and W of conv layer. + no_jacobian (bool): enable/disable jacobian computations. + + Note: + Split the input into groups of size self.num_splits and + perform 1x1 convolution separately. Cast 1x1 conv operation + to 2d by reshaping the input for efficiency. + """ + + def __init__(self, channels, num_splits=4, no_jacobian=False, **kwargs): # pylint: disable=unused-argument + super().__init__() + assert num_splits % 2 == 0 + self.channels = channels + self.num_splits = num_splits + self.no_jacobian = no_jacobian + self.weight_inv = None + + if LooseVersion(torch.__version__) < LooseVersion("1.9"): + w_init = torch.qr(torch.FloatTensor(self.num_splits, self.num_splits).normal_())[0] + else: + w_init = torch.linalg.qr(torch.FloatTensor(self.num_splits, self.num_splits).normal_(), "complete")[0] + + if torch.det(w_init) < 0: + w_init[:, 0] = -1 * w_init[:, 0] + self.weight = nn.Parameter(w_init) + + def forward(self, x, x_mask=None, reverse=False, **kwargs): # pylint: disable=unused-argument + """ + Shapes: + - x: :math:`[B, C, T]` + - x_mask: :math:`[B, 1, T]` + """ + b, c, t = x.size() + assert c % self.num_splits == 0 + if x_mask is None: + x_mask = 1 + x_len = torch.ones((b,), dtype=x.dtype, device=x.device) * t + else: + x_len = torch.sum(x_mask, [1, 2]) + + x = x.view(b, 2, c // self.num_splits, self.num_splits // 2, t) + x = x.permute(0, 1, 3, 2, 4).contiguous().view(b, self.num_splits, c // self.num_splits, t) + + if reverse: + if self.weight_inv is not None: + weight = self.weight_inv + else: + weight = torch.inverse(self.weight.float()).to(dtype=self.weight.dtype) + logdet = None + else: + weight = self.weight + if self.no_jacobian: + logdet = 0 + else: + logdet = torch.logdet(self.weight) * (c / self.num_splits) * x_len # [b] + + weight = weight.view(self.num_splits, self.num_splits, 1, 1) + z = F.conv2d(x, weight) + + z = z.view(b, 2, self.num_splits // 2, c // self.num_splits, t) + z = z.permute(0, 1, 3, 2, 4).contiguous().view(b, c, t) * x_mask + return z, logdet + + def store_inverse(self): + weight_inv = torch.inverse(self.weight.float()).to(dtype=self.weight.dtype) + self.weight_inv = nn.Parameter(weight_inv, requires_grad=False) + + +class CouplingBlock(nn.Module): + """Glow Affine Coupling block as in GlowTTS paper. + https://arxiv.org/pdf/1811.00002.pdf + + :: + + x --> x0 -> conv1d -> wavenet -> conv1d --> t, s -> concat(s*x1 + t, x0) -> o + '-> x1 - - - - - - - - - - - - - - - - - - - - - - - - - ^ + + Args: + in_channels (int): number of input tensor channels. + hidden_channels (int): number of hidden channels. + kernel_size (int): WaveNet filter kernel size. + dilation_rate (int): rate to increase dilation by each layer in a decoder block. + num_layers (int): number of WaveNet layers. + c_in_channels (int): number of conditioning input channels. + dropout_p (int): wavenet dropout rate. + sigmoid_scale (bool): enable/disable sigmoid scaling for output scale. + + Note: + It does not use the conditional inputs differently from WaveGlow. + """ + + def __init__( + self, + in_channels, + hidden_channels, + kernel_size, + dilation_rate, + num_layers, + c_in_channels=0, + dropout_p=0, + sigmoid_scale=False, + ): + super().__init__() + self.in_channels = in_channels + self.hidden_channels = hidden_channels + self.kernel_size = kernel_size + self.dilation_rate = dilation_rate + self.num_layers = num_layers + self.c_in_channels = c_in_channels + self.dropout_p = dropout_p + self.sigmoid_scale = sigmoid_scale + # input layer + start = torch.nn.Conv1d(in_channels // 2, hidden_channels, 1) + start = torch.nn.utils.weight_norm(start) + self.start = start + # output layer + # Initializing last layer to 0 makes the affine coupling layers + # do nothing at first. This helps with training stability + end = torch.nn.Conv1d(hidden_channels, in_channels, 1) + end.weight.data.zero_() + end.bias.data.zero_() + self.end = end + # coupling layers + self.wn = WN(in_channels, hidden_channels, kernel_size, dilation_rate, num_layers, c_in_channels, dropout_p) + + def forward(self, x, x_mask=None, reverse=False, g=None, **kwargs): # pylint: disable=unused-argument + """ + Shapes: + - x: :math:`[B, C, T]` + - x_mask: :math:`[B, 1, T]` + - g: :math:`[B, C, 1]` + """ + if x_mask is None: + x_mask = 1 + x_0, x_1 = x[:, : self.in_channels // 2], x[:, self.in_channels // 2 :] + + x = self.start(x_0) * x_mask + x = self.wn(x, x_mask, g) + out = self.end(x) + + z_0 = x_0 + t = out[:, : self.in_channels // 2, :] + s = out[:, self.in_channels // 2 :, :] + if self.sigmoid_scale: + s = torch.log(1e-6 + torch.sigmoid(s + 2)) + + if reverse: + z_1 = (x_1 - t) * torch.exp(-s) * x_mask + logdet = None + else: + z_1 = (t + torch.exp(s) * x_1) * x_mask + logdet = torch.sum(s * x_mask, [1, 2]) + + z = torch.cat([z_0, z_1], 1) + return z, logdet + + def store_inverse(self): + self.wn.remove_weight_norm() diff --git a/Indic-TTS/TTS/TTS/tts/layers/glow_tts/transformer.py b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/transformer.py new file mode 100644 index 0000000000000000000000000000000000000000..0f837abfeb441477de419f6cf4c9a05730a351c8 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/glow_tts/transformer.py @@ -0,0 +1,434 @@ +import math + +import torch +from torch import nn +from torch.nn import functional as F + +from TTS.tts.layers.generic.normalization import LayerNorm, LayerNorm2 + + +class RelativePositionMultiHeadAttention(nn.Module): + """Multi-head attention with Relative Positional embedding. + https://arxiv.org/pdf/1809.04281.pdf + + It learns positional embeddings for a window of neighbours. For keys and values, + it learns different set of embeddings. Key embeddings are agregated with the attention + scores and value embeddings are aggregated with the output. + + Note: + Example with relative attention window size 2 + + - input = [a, b, c, d, e] + - rel_attn_embeddings = [e(t-2), e(t-1), e(t+1), e(t+2)] + + So it learns 4 embedding vectors (in total 8) separately for key and value vectors. + + Considering the input c + + - e(t-2) corresponds to c -> a + - e(t-2) corresponds to c -> b + - e(t-2) corresponds to c -> d + - e(t-2) corresponds to c -> e + + These embeddings are shared among different time steps. So input a, b, d and e also uses + the same embeddings. + + Embeddings are ignored when the relative window is out of limit for the first and the last + n items. + + Args: + channels (int): input and inner layer channels. + out_channels (int): output channels. + num_heads (int): number of attention heads. + rel_attn_window_size (int, optional): relation attention window size. + If 4, for each time step next and previous 4 time steps are attended. + If default, relative encoding is disabled and it is a regular transformer. + Defaults to None. + heads_share (bool, optional): [description]. Defaults to True. + dropout_p (float, optional): dropout rate. Defaults to 0.. + input_length (int, optional): intput length for positional encoding. Defaults to None. + proximal_bias (bool, optional): enable/disable proximal bias as in the paper. Defaults to False. + proximal_init (bool, optional): enable/disable poximal init as in the paper. + Init key and query layer weights the same. Defaults to False. + """ + + def __init__( + self, + channels, + out_channels, + num_heads, + rel_attn_window_size=None, + heads_share=True, + dropout_p=0.0, + input_length=None, + proximal_bias=False, + proximal_init=False, + ): + + super().__init__() + assert channels % num_heads == 0, " [!] channels should be divisible by num_heads." + # class attributes + self.channels = channels + self.out_channels = out_channels + self.num_heads = num_heads + self.rel_attn_window_size = rel_attn_window_size + self.heads_share = heads_share + self.input_length = input_length + self.proximal_bias = proximal_bias + self.dropout_p = dropout_p + self.attn = None + # query, key, value layers + self.k_channels = channels // num_heads + self.conv_q = nn.Conv1d(channels, channels, 1) + self.conv_k = nn.Conv1d(channels, channels, 1) + self.conv_v = nn.Conv1d(channels, channels, 1) + # output layers + self.conv_o = nn.Conv1d(channels, out_channels, 1) + self.dropout = nn.Dropout(dropout_p) + # relative positional encoding layers + if rel_attn_window_size is not None: + n_heads_rel = 1 if heads_share else num_heads + rel_stddev = self.k_channels**-0.5 + emb_rel_k = nn.Parameter( + torch.randn(n_heads_rel, rel_attn_window_size * 2 + 1, self.k_channels) * rel_stddev + ) + emb_rel_v = nn.Parameter( + torch.randn(n_heads_rel, rel_attn_window_size * 2 + 1, self.k_channels) * rel_stddev + ) + self.register_parameter("emb_rel_k", emb_rel_k) + self.register_parameter("emb_rel_v", emb_rel_v) + + # init layers + nn.init.xavier_uniform_(self.conv_q.weight) + nn.init.xavier_uniform_(self.conv_k.weight) + # proximal bias + if proximal_init: + self.conv_k.weight.data.copy_(self.conv_q.weight.data) + self.conv_k.bias.data.copy_(self.conv_q.bias.data) + nn.init.xavier_uniform_(self.conv_v.weight) + + def forward(self, x, c, attn_mask=None): + """ + Shapes: + - x: :math:`[B, C, T]` + - c: :math:`[B, C, T]` + - attn_mask: :math:`[B, 1, T, T]` + """ + q = self.conv_q(x) + k = self.conv_k(c) + v = self.conv_v(c) + x, self.attn = self.attention(q, k, v, mask=attn_mask) + x = self.conv_o(x) + return x + + def attention(self, query, key, value, mask=None): + # reshape [b, d, t] -> [b, n_h, t, d_k] + b, d, t_s, t_t = (*key.size(), query.size(2)) + query = query.view(b, self.num_heads, self.k_channels, t_t).transpose(2, 3) + key = key.view(b, self.num_heads, self.k_channels, t_s).transpose(2, 3) + value = value.view(b, self.num_heads, self.k_channels, t_s).transpose(2, 3) + # compute raw attention scores + scores = torch.matmul(query, key.transpose(-2, -1)) / math.sqrt(self.k_channels) + # relative positional encoding for scores + if self.rel_attn_window_size is not None: + assert t_s == t_t, "Relative attention is only available for self-attention." + # get relative key embeddings + key_relative_embeddings = self._get_relative_embeddings(self.emb_rel_k, t_s) + rel_logits = self._matmul_with_relative_keys(query, key_relative_embeddings) + rel_logits = self._relative_position_to_absolute_position(rel_logits) + scores_local = rel_logits / math.sqrt(self.k_channels) + scores = scores + scores_local + # proximan bias + if self.proximal_bias: + assert t_s == t_t, "Proximal bias is only available for self-attention." + scores = scores + self._attn_proximity_bias(t_s).to(device=scores.device, dtype=scores.dtype) + # attention score masking + if mask is not None: + # add small value to prevent oor error. + scores = scores.masked_fill(mask == 0, -1e4) + if self.input_length is not None: + block_mask = torch.ones_like(scores).triu(-1 * self.input_length).tril(self.input_length) + scores = scores * block_mask + -1e4 * (1 - block_mask) + # attention score normalization + p_attn = F.softmax(scores, dim=-1) # [b, n_h, t_t, t_s] + # apply dropout to attention weights + p_attn = self.dropout(p_attn) + # compute output + output = torch.matmul(p_attn, value) + # relative positional encoding for values + if self.rel_attn_window_size is not None: + relative_weights = self._absolute_position_to_relative_position(p_attn) + value_relative_embeddings = self._get_relative_embeddings(self.emb_rel_v, t_s) + output = output + self._matmul_with_relative_values(relative_weights, value_relative_embeddings) + output = output.transpose(2, 3).contiguous().view(b, d, t_t) # [b, n_h, t_t, d_k] -> [b, d, t_t] + return output, p_attn + + @staticmethod + def _matmul_with_relative_values(p_attn, re): + """ + Args: + p_attn (Tensor): attention weights. + re (Tensor): relative value embedding vector. (a_(i,j)^V) + + Shapes: + -p_attn: :math:`[B, H, T, V]` + -re: :math:`[H or 1, V, D]` + -logits: :math:`[B, H, T, D]` + """ + logits = torch.matmul(p_attn, re.unsqueeze(0)) + return logits + + @staticmethod + def _matmul_with_relative_keys(query, re): + """ + Args: + query (Tensor): batch of query vectors. (x*W^Q) + re (Tensor): relative key embedding vector. (a_(i,j)^K) + + Shapes: + - query: :math:`[B, H, T, D]` + - re: :math:`[H or 1, V, D]` + - logits: :math:`[B, H, T, V]` + """ + # logits = torch.einsum('bhld, kmd -> bhlm', [query, re.to(query.dtype)]) + logits = torch.matmul(query, re.unsqueeze(0).transpose(-2, -1)) + return logits + + def _get_relative_embeddings(self, relative_embeddings, length): + """Convert embedding vestors to a tensor of embeddings""" + # Pad first before slice to avoid using cond ops. + pad_length = max(length - (self.rel_attn_window_size + 1), 0) + slice_start_position = max((self.rel_attn_window_size + 1) - length, 0) + slice_end_position = slice_start_position + 2 * length - 1 + if pad_length > 0: + padded_relative_embeddings = F.pad(relative_embeddings, [0, 0, pad_length, pad_length, 0, 0]) + else: + padded_relative_embeddings = relative_embeddings + used_relative_embeddings = padded_relative_embeddings[:, slice_start_position:slice_end_position] + return used_relative_embeddings + + @staticmethod + def _relative_position_to_absolute_position(x): + """Converts tensor from relative to absolute indexing for local attention. + Shapes: + x: :math:`[B, C, T, 2 * T - 1]` + Returns: + A Tensor of shape :math:`[B, C, T, T]` + """ + batch, heads, length, _ = x.size() + # Pad to shift from relative to absolute indexing. + x = F.pad(x, [0, 1, 0, 0, 0, 0, 0, 0]) + # Pad extra elements so to add up to shape (len+1, 2*len-1). + x_flat = x.view([batch, heads, length * 2 * length]) + x_flat = F.pad(x_flat, [0, length - 1, 0, 0, 0, 0]) + # Reshape and slice out the padded elements. + x_final = x_flat.view([batch, heads, length + 1, 2 * length - 1])[:, :, :length, length - 1 :] + return x_final + + @staticmethod + def _absolute_position_to_relative_position(x): + """ + Shapes: + - x: :math:`[B, C, T, T]` + - ret: :math:`[B, C, T, 2*T-1]` + """ + batch, heads, length, _ = x.size() + # padd along column + x = F.pad(x, [0, length - 1, 0, 0, 0, 0, 0, 0]) + x_flat = x.view([batch, heads, length**2 + length * (length - 1)]) + # add 0's in the beginning that will skew the elements after reshape + x_flat = F.pad(x_flat, [length, 0, 0, 0, 0, 0]) + x_final = x_flat.view([batch, heads, length, 2 * length])[:, :, :, 1:] + return x_final + + @staticmethod + def _attn_proximity_bias(length): + """Produce an attention mask that discourages distant + attention values. + Args: + length (int): an integer scalar. + Returns: + a Tensor with shape :math:`[1, 1, T, T]` + """ + # L + r = torch.arange(length, dtype=torch.float32) + # L x L + diff = torch.unsqueeze(r, 0) - torch.unsqueeze(r, 1) + # scale mask values + diff = -torch.log1p(torch.abs(diff)) + # 1 x 1 x L x L + return diff.unsqueeze(0).unsqueeze(0) + + +class FeedForwardNetwork(nn.Module): + """Feed Forward Inner layers for Transformer. + + Args: + in_channels (int): input tensor channels. + out_channels (int): output tensor channels. + hidden_channels (int): inner layers hidden channels. + kernel_size (int): conv1d filter kernel size. + dropout_p (float, optional): dropout rate. Defaults to 0. + """ + + def __init__(self, in_channels, out_channels, hidden_channels, kernel_size, dropout_p=0.0, causal=False): + + super().__init__() + self.in_channels = in_channels + self.out_channels = out_channels + self.hidden_channels = hidden_channels + self.kernel_size = kernel_size + self.dropout_p = dropout_p + + if causal: + self.padding = self._causal_padding + else: + self.padding = self._same_padding + + self.conv_1 = nn.Conv1d(in_channels, hidden_channels, kernel_size) + self.conv_2 = nn.Conv1d(hidden_channels, out_channels, kernel_size) + self.dropout = nn.Dropout(dropout_p) + + def forward(self, x, x_mask): + x = self.conv_1(self.padding(x * x_mask)) + x = torch.relu(x) + x = self.dropout(x) + x = self.conv_2(self.padding(x * x_mask)) + return x * x_mask + + def _causal_padding(self, x): + if self.kernel_size == 1: + return x + pad_l = self.kernel_size - 1 + pad_r = 0 + padding = [[0, 0], [0, 0], [pad_l, pad_r]] + x = F.pad(x, self._pad_shape(padding)) + return x + + def _same_padding(self, x): + if self.kernel_size == 1: + return x + pad_l = (self.kernel_size - 1) // 2 + pad_r = self.kernel_size // 2 + padding = [[0, 0], [0, 0], [pad_l, pad_r]] + x = F.pad(x, self._pad_shape(padding)) + return x + + @staticmethod + def _pad_shape(padding): + l = padding[::-1] + pad_shape = [item for sublist in l for item in sublist] + return pad_shape + + +class RelativePositionTransformer(nn.Module): + """Transformer with Relative Potional Encoding. + https://arxiv.org/abs/1803.02155 + + Args: + in_channels (int): number of channels of the input tensor. + out_chanels (int): number of channels of the output tensor. + hidden_channels (int): model hidden channels. + hidden_channels_ffn (int): hidden channels of FeedForwardNetwork. + num_heads (int): number of attention heads. + num_layers (int): number of transformer layers. + kernel_size (int, optional): kernel size of feed-forward inner layers. Defaults to 1. + dropout_p (float, optional): dropout rate for self-attention and feed-forward inner layers_per_stack. Defaults to 0. + rel_attn_window_size (int, optional): relation attention window size. + If 4, for each time step next and previous 4 time steps are attended. + If default, relative encoding is disabled and it is a regular transformer. + Defaults to None. + input_length (int, optional): input lenght to limit position encoding. Defaults to None. + layer_norm_type (str, optional): type "1" uses torch tensor operations and type "2" uses torch layer_norm + primitive. Use type "2", type "1: is for backward compat. Defaults to "1". + """ + + def __init__( + self, + in_channels: int, + out_channels: int, + hidden_channels: int, + hidden_channels_ffn: int, + num_heads: int, + num_layers: int, + kernel_size=1, + dropout_p=0.0, + rel_attn_window_size: int = None, + input_length: int = None, + layer_norm_type: str = "1", + ): + super().__init__() + self.hidden_channels = hidden_channels + self.hidden_channels_ffn = hidden_channels_ffn + self.num_heads = num_heads + self.num_layers = num_layers + self.kernel_size = kernel_size + self.dropout_p = dropout_p + self.rel_attn_window_size = rel_attn_window_size + + self.dropout = nn.Dropout(dropout_p) + self.attn_layers = nn.ModuleList() + self.norm_layers_1 = nn.ModuleList() + self.ffn_layers = nn.ModuleList() + self.norm_layers_2 = nn.ModuleList() + + for idx in range(self.num_layers): + self.attn_layers.append( + RelativePositionMultiHeadAttention( + hidden_channels if idx != 0 else in_channels, + hidden_channels, + num_heads, + rel_attn_window_size=rel_attn_window_size, + dropout_p=dropout_p, + input_length=input_length, + ) + ) + if layer_norm_type == "1": + self.norm_layers_1.append(LayerNorm(hidden_channels)) + elif layer_norm_type == "2": + self.norm_layers_1.append(LayerNorm2(hidden_channels)) + else: + raise ValueError(" [!] Unknown layer norm type") + + if hidden_channels != out_channels and (idx + 1) == self.num_layers: + self.proj = nn.Conv1d(hidden_channels, out_channels, 1) + + self.ffn_layers.append( + FeedForwardNetwork( + hidden_channels, + hidden_channels if (idx + 1) != self.num_layers else out_channels, + hidden_channels_ffn, + kernel_size, + dropout_p=dropout_p, + ) + ) + + if layer_norm_type == "1": + self.norm_layers_2.append(LayerNorm(hidden_channels if (idx + 1) != self.num_layers else out_channels)) + elif layer_norm_type == "2": + self.norm_layers_2.append(LayerNorm2(hidden_channels if (idx + 1) != self.num_layers else out_channels)) + else: + raise ValueError(" [!] Unknown layer norm type") + + def forward(self, x, x_mask): + """ + Shapes: + - x: :math:`[B, C, T]` + - x_mask: :math:`[B, 1, T]` + """ + attn_mask = x_mask.unsqueeze(2) * x_mask.unsqueeze(-1) + for i in range(self.num_layers): + x = x * x_mask + y = self.attn_layers[i](x, x, attn_mask) + y = self.dropout(y) + x = self.norm_layers_1[i](x + y) + + y = self.ffn_layers[i](x, x_mask) + y = self.dropout(y) + + if (i + 1) == self.num_layers and hasattr(self, "proj"): + x = self.proj(x) + + x = self.norm_layers_2[i](x + y) + x = x * x_mask + return x diff --git a/Indic-TTS/TTS/TTS/tts/layers/losses.py b/Indic-TTS/TTS/TTS/tts/layers/losses.py new file mode 100644 index 0000000000000000000000000000000000000000..fea52d3d2d206ff786263fa38554cf07ec3d55a0 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/losses.py @@ -0,0 +1,859 @@ +import math + +import numpy as np +import torch +from coqpit import Coqpit +from torch import nn +from torch.nn import functional + +from TTS.tts.utils.helpers import sequence_mask +from TTS.tts.utils.ssim import ssim +from TTS.utils.audio import TorchSTFT + + +# pylint: disable=abstract-method +# relates https://github.com/pytorch/pytorch/issues/42305 +class L1LossMasked(nn.Module): + def __init__(self, seq_len_norm): + super().__init__() + self.seq_len_norm = seq_len_norm + + def forward(self, x, target, length): + """ + Args: + x: A Variable containing a FloatTensor of size + (batch, max_len, dim) which contains the + unnormalized probability for each class. + target: A Variable containing a LongTensor of size + (batch, max_len, dim) which contains the index of the true + class for each corresponding step. + length: A Variable containing a LongTensor of size (batch,) + which contains the length of each data in a batch. + Shapes: + x: B x T X D + target: B x T x D + length: B + Returns: + loss: An average loss value in range [0, 1] masked by the length. + """ + # mask: (batch, max_len, 1) + target.requires_grad = False + mask = sequence_mask(sequence_length=length, max_len=target.size(1)).unsqueeze(2).float() + if self.seq_len_norm: + norm_w = mask / mask.sum(dim=1, keepdim=True) + out_weights = norm_w.div(target.shape[0] * target.shape[2]) + mask = mask.expand_as(x) + loss = functional.l1_loss(x * mask, target * mask, reduction="none") + loss = loss.mul(out_weights.to(loss.device)).sum() + else: + mask = mask.expand_as(x) + loss = functional.l1_loss(x * mask, target * mask, reduction="sum") + loss = loss / mask.sum() + return loss + + +class MSELossMasked(nn.Module): + def __init__(self, seq_len_norm): + super().__init__() + self.seq_len_norm = seq_len_norm + + def forward(self, x, target, length): + """ + Args: + x: A Variable containing a FloatTensor of size + (batch, max_len, dim) which contains the + unnormalized probability for each class. + target: A Variable containing a LongTensor of size + (batch, max_len, dim) which contains the index of the true + class for each corresponding step. + length: A Variable containing a LongTensor of size (batch,) + which contains the length of each data in a batch. + Shapes: + - x: :math:`[B, T, D]` + - target: :math:`[B, T, D]` + - length: :math:`B` + Returns: + loss: An average loss value in range [0, 1] masked by the length. + """ + # mask: (batch, max_len, 1) + target.requires_grad = False + mask = sequence_mask(sequence_length=length, max_len=target.size(1)).unsqueeze(2).float() + if self.seq_len_norm: + norm_w = mask / mask.sum(dim=1, keepdim=True) + out_weights = norm_w.div(target.shape[0] * target.shape[2]) + mask = mask.expand_as(x) + loss = functional.mse_loss(x * mask, target * mask, reduction="none") + loss = loss.mul(out_weights.to(loss.device)).sum() + else: + mask = mask.expand_as(x) + loss = functional.mse_loss(x * mask, target * mask, reduction="sum") + loss = loss / mask.sum() + return loss + + +class SSIMLoss(torch.nn.Module): + """SSIM loss as explained here https://en.wikipedia.org/wiki/Structural_similarity""" + + def __init__(self): + super().__init__() + self.loss_func = ssim + + def forward(self, y_hat, y, length=None): + """ + Args: + y_hat (tensor): model prediction values. + y (tensor): target values. + length (tensor): length of each sample in a batch. + Shapes: + y_hat: B x T X D + y: B x T x D + length: B + Returns: + loss: An average loss value in range [0, 1] masked by the length. + """ + if length is not None: + m = sequence_mask(sequence_length=length, max_len=y.size(1)).unsqueeze(2).float().to(y_hat.device) + y_hat, y = y_hat * m, y * m + return 1 - self.loss_func(y_hat.unsqueeze(1), y.unsqueeze(1)) + + +class AttentionEntropyLoss(nn.Module): + # pylint: disable=R0201 + def forward(self, align): + """ + Forces attention to be more decisive by penalizing + soft attention weights + + TODO: arguments + TODO: unit_test + """ + entropy = torch.distributions.Categorical(probs=align).entropy() + loss = (entropy / np.log(align.shape[1])).mean() + return loss + + +class BCELossMasked(nn.Module): + def __init__(self, pos_weight): + super().__init__() + self.pos_weight = pos_weight + + def forward(self, x, target, length): + """ + Args: + x: A Variable containing a FloatTensor of size + (batch, max_len) which contains the + unnormalized probability for each class. + target: A Variable containing a LongTensor of size + (batch, max_len) which contains the index of the true + class for each corresponding step. + length: A Variable containing a LongTensor of size (batch,) + which contains the length of each data in a batch. + Shapes: + x: B x T + target: B x T + length: B + Returns: + loss: An average loss value in range [0, 1] masked by the length. + """ + # mask: (batch, max_len, 1) + target.requires_grad = False + if length is not None: + mask = sequence_mask(sequence_length=length, max_len=target.size(1)).float() + x = x * mask + target = target * mask + num_items = mask.sum() + else: + num_items = torch.numel(x) + loss = functional.binary_cross_entropy_with_logits(x, target, pos_weight=self.pos_weight, reduction="sum") + loss = loss / num_items + return loss + + +class DifferentailSpectralLoss(nn.Module): + """Differential Spectral Loss + https://arxiv.org/ftp/arxiv/papers/1909/1909.10302.pdf""" + + def __init__(self, loss_func): + super().__init__() + self.loss_func = loss_func + + def forward(self, x, target, length=None): + """ + Shapes: + x: B x T + target: B x T + length: B + Returns: + loss: An average loss value in range [0, 1] masked by the length. + """ + x_diff = x[:, 1:] - x[:, :-1] + target_diff = target[:, 1:] - target[:, :-1] + if length is None: + return self.loss_func(x_diff, target_diff) + return self.loss_func(x_diff, target_diff, length - 1) + + +class GuidedAttentionLoss(torch.nn.Module): + def __init__(self, sigma=0.4): + super().__init__() + self.sigma = sigma + + def _make_ga_masks(self, ilens, olens): + B = len(ilens) + max_ilen = max(ilens) + max_olen = max(olens) + ga_masks = torch.zeros((B, max_olen, max_ilen)) + for idx, (ilen, olen) in enumerate(zip(ilens, olens)): + ga_masks[idx, :olen, :ilen] = self._make_ga_mask(ilen, olen, self.sigma) + return ga_masks + + def forward(self, att_ws, ilens, olens): + ga_masks = self._make_ga_masks(ilens, olens).to(att_ws.device) + seq_masks = self._make_masks(ilens, olens).to(att_ws.device) + losses = ga_masks * att_ws + loss = torch.mean(losses.masked_select(seq_masks)) + return loss + + @staticmethod + def _make_ga_mask(ilen, olen, sigma): + grid_x, grid_y = torch.meshgrid(torch.arange(olen).to(olen), torch.arange(ilen).to(ilen)) + grid_x, grid_y = grid_x.float(), grid_y.float() + return 1.0 - torch.exp(-((grid_y / ilen - grid_x / olen) ** 2) / (2 * (sigma**2))) + + @staticmethod + def _make_masks(ilens, olens): + in_masks = sequence_mask(ilens) + out_masks = sequence_mask(olens) + return out_masks.unsqueeze(-1) & in_masks.unsqueeze(-2) + + +class Huber(nn.Module): + # pylint: disable=R0201 + def forward(self, x, y, length=None): + """ + Shapes: + x: B x T + y: B x T + length: B + """ + mask = sequence_mask(sequence_length=length, max_len=y.size(1)).unsqueeze(2).float() + return torch.nn.functional.smooth_l1_loss(x * mask, y * mask, reduction="sum") / mask.sum() + + +class ForwardSumLoss(nn.Module): + def __init__(self, blank_logprob=-1): + super().__init__() + self.log_softmax = torch.nn.LogSoftmax(dim=3) + self.ctc_loss = torch.nn.CTCLoss(zero_infinity=True) + self.blank_logprob = blank_logprob + + def forward(self, attn_logprob, in_lens, out_lens): + key_lens = in_lens + query_lens = out_lens + attn_logprob_padded = torch.nn.functional.pad(input=attn_logprob, pad=(1, 0), value=self.blank_logprob) + + total_loss = 0.0 + for bid in range(attn_logprob.shape[0]): + target_seq = torch.arange(1, key_lens[bid] + 1).unsqueeze(0) + curr_logprob = attn_logprob_padded[bid].permute(1, 0, 2)[: query_lens[bid], :, : key_lens[bid] + 1] + + curr_logprob = self.log_softmax(curr_logprob[None])[0] + loss = self.ctc_loss( + curr_logprob, + target_seq, + input_lengths=query_lens[bid : bid + 1], + target_lengths=key_lens[bid : bid + 1], + ) + total_loss = total_loss + loss + + total_loss = total_loss / attn_logprob.shape[0] + return total_loss + + +######################## +# MODEL LOSS LAYERS +######################## + + +class TacotronLoss(torch.nn.Module): + """Collection of Tacotron set-up based on provided config.""" + + def __init__(self, c, ga_sigma=0.4): + super().__init__() + self.stopnet_pos_weight = c.stopnet_pos_weight + self.use_capacitron_vae = c.use_capacitron_vae + if self.use_capacitron_vae: + self.capacitron_capacity = c.capacitron_vae.capacitron_capacity + self.capacitron_vae_loss_alpha = c.capacitron_vae.capacitron_VAE_loss_alpha + self.ga_alpha = c.ga_alpha + self.decoder_diff_spec_alpha = c.decoder_diff_spec_alpha + self.postnet_diff_spec_alpha = c.postnet_diff_spec_alpha + self.decoder_alpha = c.decoder_loss_alpha + self.postnet_alpha = c.postnet_loss_alpha + self.decoder_ssim_alpha = c.decoder_ssim_alpha + self.postnet_ssim_alpha = c.postnet_ssim_alpha + self.config = c + + # postnet and decoder loss + if c.loss_masking: + self.criterion = L1LossMasked(c.seq_len_norm) if c.model in ["Tacotron"] else MSELossMasked(c.seq_len_norm) + else: + self.criterion = nn.L1Loss() if c.model in ["Tacotron"] else nn.MSELoss() + # guided attention loss + if c.ga_alpha > 0: + self.criterion_ga = GuidedAttentionLoss(sigma=ga_sigma) + # differential spectral loss + if c.postnet_diff_spec_alpha > 0 or c.decoder_diff_spec_alpha > 0: + self.criterion_diff_spec = DifferentailSpectralLoss(loss_func=self.criterion) + # ssim loss + if c.postnet_ssim_alpha > 0 or c.decoder_ssim_alpha > 0: + self.criterion_ssim = SSIMLoss() + # stopnet loss + # pylint: disable=not-callable + self.criterion_st = BCELossMasked(pos_weight=torch.tensor(self.stopnet_pos_weight)) if c.stopnet else None + + # For dev pruposes only + self.criterion_capacitron_reconstruction_loss = nn.L1Loss(reduction="sum") + + def forward( + self, + postnet_output, + decoder_output, + mel_input, + linear_input, + stopnet_output, + stopnet_target, + stop_target_length, + capacitron_vae_outputs, + output_lens, + decoder_b_output, + alignments, + alignment_lens, + alignments_backwards, + input_lens, + ): + + # decoder outputs linear or mel spectrograms for Tacotron and Tacotron2 + # the target should be set acccordingly + postnet_target = linear_input if self.config.model.lower() in ["tacotron"] else mel_input + + return_dict = {} + # remove lengths if no masking is applied + if not self.config.loss_masking: + output_lens = None + # decoder and postnet losses + if self.config.loss_masking: + if self.decoder_alpha > 0: + decoder_loss = self.criterion(decoder_output, mel_input, output_lens) + if self.postnet_alpha > 0: + postnet_loss = self.criterion(postnet_output, postnet_target, output_lens) + else: + if self.decoder_alpha > 0: + decoder_loss = self.criterion(decoder_output, mel_input) + if self.postnet_alpha > 0: + postnet_loss = self.criterion(postnet_output, postnet_target) + loss = self.decoder_alpha * decoder_loss + self.postnet_alpha * postnet_loss + return_dict["decoder_loss"] = decoder_loss + return_dict["postnet_loss"] = postnet_loss + + if self.use_capacitron_vae: + # extract capacitron vae infos + posterior_distribution, prior_distribution, beta = capacitron_vae_outputs + + # KL divergence term between the posterior and the prior + kl_term = torch.mean(torch.distributions.kl_divergence(posterior_distribution, prior_distribution)) + + # Limit the mutual information between the data and latent space by the variational capacity limit + kl_capacity = kl_term - self.capacitron_capacity + + # pass beta through softplus to keep it positive + beta = torch.nn.functional.softplus(beta)[0] + + # This is the term going to the main ADAM optimiser, we detach beta because + # beta is optimised by a separate, SGD optimiser below + capacitron_vae_loss = beta.detach() * kl_capacity + + # normalize the capacitron_vae_loss as in L1Loss or MSELoss. + # After this, both the standard loss and capacitron_vae_loss will be in the same scale. + # For this reason we don't need use L1Loss and MSELoss in "sum" reduction mode. + # Note: the batch is not considered because the L1Loss was calculated in "sum" mode + # divided by the batch size, So not dividing the capacitron_vae_loss by B is legitimate. + + # get B T D dimension from input + B, T, D = mel_input.size() + # normalize + if self.config.loss_masking: + # if mask loss get T using the mask + T = output_lens.sum() / B + + # Only for dev purposes to be able to compare the reconstruction loss with the values in the + # original Capacitron paper + return_dict["capaciton_reconstruction_loss"] = ( + self.criterion_capacitron_reconstruction_loss(decoder_output, mel_input) / decoder_output.size(0) + ) + kl_capacity + + capacitron_vae_loss = capacitron_vae_loss / (T * D) + capacitron_vae_loss = capacitron_vae_loss * self.capacitron_vae_loss_alpha + + # This is the term to purely optimise beta and to pass into the SGD optimizer + beta_loss = torch.negative(beta) * kl_capacity.detach() + + loss += capacitron_vae_loss + + return_dict["capacitron_vae_loss"] = capacitron_vae_loss + return_dict["capacitron_vae_beta_loss"] = beta_loss + return_dict["capacitron_vae_kl_term"] = kl_term + return_dict["capacitron_beta"] = beta + + stop_loss = ( + self.criterion_st(stopnet_output, stopnet_target, stop_target_length) + if self.config.stopnet + else torch.zeros(1) + ) + loss += stop_loss + return_dict["stopnet_loss"] = stop_loss + + # backward decoder loss (if enabled) + if self.config.bidirectional_decoder: + if self.config.loss_masking: + decoder_b_loss = self.criterion(torch.flip(decoder_b_output, dims=(1,)), mel_input, output_lens) + else: + decoder_b_loss = self.criterion(torch.flip(decoder_b_output, dims=(1,)), mel_input) + decoder_c_loss = torch.nn.functional.l1_loss(torch.flip(decoder_b_output, dims=(1,)), decoder_output) + loss += self.decoder_alpha * (decoder_b_loss + decoder_c_loss) + return_dict["decoder_b_loss"] = decoder_b_loss + return_dict["decoder_c_loss"] = decoder_c_loss + + # double decoder consistency loss (if enabled) + if self.config.double_decoder_consistency: + if self.config.loss_masking: + decoder_b_loss = self.criterion(decoder_b_output, mel_input, output_lens) + else: + decoder_b_loss = self.criterion(decoder_b_output, mel_input) + # decoder_c_loss = torch.nn.functional.l1_loss(decoder_b_output, decoder_output) + attention_c_loss = torch.nn.functional.l1_loss(alignments, alignments_backwards) + loss += self.decoder_alpha * (decoder_b_loss + attention_c_loss) + return_dict["decoder_coarse_loss"] = decoder_b_loss + return_dict["decoder_ddc_loss"] = attention_c_loss + + # guided attention loss (if enabled) + if self.config.ga_alpha > 0: + ga_loss = self.criterion_ga(alignments, input_lens, alignment_lens) + loss += ga_loss * self.ga_alpha + return_dict["ga_loss"] = ga_loss + + # decoder differential spectral loss + if self.config.decoder_diff_spec_alpha > 0: + decoder_diff_spec_loss = self.criterion_diff_spec(decoder_output, mel_input, output_lens) + loss += decoder_diff_spec_loss * self.decoder_diff_spec_alpha + return_dict["decoder_diff_spec_loss"] = decoder_diff_spec_loss + + # postnet differential spectral loss + if self.config.postnet_diff_spec_alpha > 0: + postnet_diff_spec_loss = self.criterion_diff_spec(postnet_output, postnet_target, output_lens) + loss += postnet_diff_spec_loss * self.postnet_diff_spec_alpha + return_dict["postnet_diff_spec_loss"] = postnet_diff_spec_loss + + # decoder ssim loss + if self.config.decoder_ssim_alpha > 0: + decoder_ssim_loss = self.criterion_ssim(decoder_output, mel_input, output_lens) + loss += decoder_ssim_loss * self.postnet_ssim_alpha + return_dict["decoder_ssim_loss"] = decoder_ssim_loss + + # postnet ssim loss + if self.config.postnet_ssim_alpha > 0: + postnet_ssim_loss = self.criterion_ssim(postnet_output, postnet_target, output_lens) + loss += postnet_ssim_loss * self.postnet_ssim_alpha + return_dict["postnet_ssim_loss"] = postnet_ssim_loss + + return_dict["loss"] = loss + return return_dict + + +class GlowTTSLoss(torch.nn.Module): + def __init__(self): + super().__init__() + self.constant_factor = 0.5 * math.log(2 * math.pi) + + def forward(self, z, means, scales, log_det, y_lengths, o_dur_log, o_attn_dur, x_lengths): + return_dict = {} + # flow loss - neg log likelihood + pz = torch.sum(scales) + 0.5 * torch.sum(torch.exp(-2 * scales) * (z - means) ** 2) + log_mle = self.constant_factor + (pz - torch.sum(log_det)) / (torch.sum(y_lengths) * z.shape[2]) + # duration loss - MSE + loss_dur = torch.sum((o_dur_log - o_attn_dur) ** 2) / torch.sum(x_lengths) + # duration loss - huber loss + # loss_dur = torch.nn.functional.smooth_l1_loss(o_dur_log, o_attn_dur, reduction="sum") / torch.sum(x_lengths) + return_dict["loss"] = log_mle + loss_dur + return_dict["log_mle"] = log_mle + return_dict["loss_dur"] = loss_dur + + # check if any loss is NaN + for key, loss in return_dict.items(): + if torch.isnan(loss): + raise RuntimeError(f" [!] NaN loss with {key}.") + return return_dict + + +def mse_loss_custom(x, y): + """MSE loss using the torch back-end without reduction. + It uses less VRAM than the raw code""" + expanded_x, expanded_y = torch.broadcast_tensors(x, y) + return torch._C._nn.mse_loss(expanded_x, expanded_y, 0) # pylint: disable=protected-access, c-extension-no-member + + +class MDNLoss(nn.Module): + """Mixture of Density Network Loss as described in https://arxiv.org/pdf/2003.01950.pdf.""" + + def forward(self, logp, text_lengths, mel_lengths): # pylint: disable=no-self-use + """ + Shapes: + mu: [B, D, T] + log_sigma: [B, D, T] + mel_spec: [B, D, T] + """ + B, T_seq, T_mel = logp.shape + log_alpha = logp.new_ones(B, T_seq, T_mel) * (-1e4) + log_alpha[:, 0, 0] = logp[:, 0, 0] + for t in range(1, T_mel): + prev_step = torch.cat( + [log_alpha[:, :, t - 1 : t], functional.pad(log_alpha[:, :, t - 1 : t], (0, 0, 1, -1), value=-1e4)], + dim=-1, + ) + log_alpha[:, :, t] = torch.logsumexp(prev_step + 1e-4, dim=-1) + logp[:, :, t] + alpha_last = log_alpha[torch.arange(B), text_lengths - 1, mel_lengths - 1] + mdn_loss = -alpha_last.mean() / T_seq + return mdn_loss # , log_prob_matrix + + +class AlignTTSLoss(nn.Module): + """Modified AlignTTS Loss. + Computes + - L1 and SSIM losses from output spectrograms. + - Huber loss for duration predictor. + - MDNLoss for Mixture of Density Network. + + All loss values are aggregated by a weighted sum of the alpha values. + + Args: + c (dict): TTS model configuration. + """ + + def __init__(self, c): + super().__init__() + self.mdn_loss = MDNLoss() + self.spec_loss = MSELossMasked(False) + self.ssim = SSIMLoss() + self.dur_loss = MSELossMasked(False) + + self.ssim_alpha = c.ssim_alpha + self.dur_loss_alpha = c.dur_loss_alpha + self.spec_loss_alpha = c.spec_loss_alpha + self.mdn_alpha = c.mdn_alpha + + def forward( + self, logp, decoder_output, decoder_target, decoder_output_lens, dur_output, dur_target, input_lens, phase + ): + # ssim_alpha, dur_loss_alpha, spec_loss_alpha, mdn_alpha = self.set_alphas(step) + spec_loss, ssim_loss, dur_loss, mdn_loss = 0, 0, 0, 0 + if phase == 0: + mdn_loss = self.mdn_loss(logp, input_lens, decoder_output_lens) + elif phase == 1: + spec_loss = self.spec_loss(decoder_output, decoder_target, decoder_output_lens) + ssim_loss = self.ssim(decoder_output, decoder_target, decoder_output_lens) + elif phase == 2: + mdn_loss = self.mdn_loss(logp, input_lens, decoder_output_lens) + spec_loss = self.spec_lossX(decoder_output, decoder_target, decoder_output_lens) + ssim_loss = self.ssim(decoder_output, decoder_target, decoder_output_lens) + elif phase == 3: + dur_loss = self.dur_loss(dur_output.unsqueeze(2), dur_target.unsqueeze(2), input_lens) + else: + mdn_loss = self.mdn_loss(logp, input_lens, decoder_output_lens) + spec_loss = self.spec_loss(decoder_output, decoder_target, decoder_output_lens) + ssim_loss = self.ssim(decoder_output, decoder_target, decoder_output_lens) + dur_loss = self.dur_loss(dur_output.unsqueeze(2), dur_target.unsqueeze(2), input_lens) + loss = ( + self.spec_loss_alpha * spec_loss + + self.ssim_alpha * ssim_loss + + self.dur_loss_alpha * dur_loss + + self.mdn_alpha * mdn_loss + ) + return {"loss": loss, "loss_l1": spec_loss, "loss_ssim": ssim_loss, "loss_dur": dur_loss, "mdn_loss": mdn_loss} + + +class VitsGeneratorLoss(nn.Module): + def __init__(self, c: Coqpit): + super().__init__() + self.kl_loss_alpha = c.kl_loss_alpha + self.gen_loss_alpha = c.gen_loss_alpha + self.feat_loss_alpha = c.feat_loss_alpha + self.dur_loss_alpha = c.dur_loss_alpha + self.mel_loss_alpha = c.mel_loss_alpha + self.spk_encoder_loss_alpha = c.speaker_encoder_loss_alpha + self.stft = TorchSTFT( + c.audio.fft_size, + c.audio.hop_length, + c.audio.win_length, + sample_rate=c.audio.sample_rate, + mel_fmin=c.audio.mel_fmin, + mel_fmax=c.audio.mel_fmax, + n_mels=c.audio.num_mels, + use_mel=True, + do_amp_to_db=True, + ) + + @staticmethod + def feature_loss(feats_real, feats_generated): + loss = 0 + for dr, dg in zip(feats_real, feats_generated): + for rl, gl in zip(dr, dg): + rl = rl.float().detach() + gl = gl.float() + loss += torch.mean(torch.abs(rl - gl)) + return loss * 2 + + @staticmethod + def generator_loss(scores_fake): + loss = 0 + gen_losses = [] + for dg in scores_fake: + dg = dg.float() + l = torch.mean((1 - dg) ** 2) + gen_losses.append(l) + loss += l + + return loss, gen_losses + + @staticmethod + def kl_loss(z_p, logs_q, m_p, logs_p, z_mask): + """ + z_p, logs_q: [b, h, t_t] + m_p, logs_p: [b, h, t_t] + """ + z_p = z_p.float() + logs_q = logs_q.float() + m_p = m_p.float() + logs_p = logs_p.float() + z_mask = z_mask.float() + + kl = logs_p - logs_q - 0.5 + kl += 0.5 * ((z_p - m_p) ** 2) * torch.exp(-2.0 * logs_p) + kl = torch.sum(kl * z_mask) + l = kl / torch.sum(z_mask) + return l + + @staticmethod + def cosine_similarity_loss(gt_spk_emb, syn_spk_emb): + return -torch.nn.functional.cosine_similarity(gt_spk_emb, syn_spk_emb).mean() + + def forward( + self, + mel_slice, + mel_slice_hat, + z_p, + logs_q, + m_p, + logs_p, + z_len, + scores_disc_fake, + feats_disc_fake, + feats_disc_real, + loss_duration, + use_speaker_encoder_as_loss=False, + gt_spk_emb=None, + syn_spk_emb=None, + ): + """ + Shapes: + - mel_slice : :math:`[B, 1, T]` + - mel_slice_hat: :math:`[B, 1, T]` + - z_p: :math:`[B, C, T]` + - logs_q: :math:`[B, C, T]` + - m_p: :math:`[B, C, T]` + - logs_p: :math:`[B, C, T]` + - z_len: :math:`[B]` + - scores_disc_fake[i]: :math:`[B, C]` + - feats_disc_fake[i][j]: :math:`[B, C, T', P]` + - feats_disc_real[i][j]: :math:`[B, C, T', P]` + """ + loss = 0.0 + return_dict = {} + z_mask = sequence_mask(z_len).float() + # compute losses + loss_kl = ( + self.kl_loss(z_p=z_p, logs_q=logs_q, m_p=m_p, logs_p=logs_p, z_mask=z_mask.unsqueeze(1)) + * self.kl_loss_alpha + ) + loss_feat = ( + self.feature_loss(feats_real=feats_disc_real, feats_generated=feats_disc_fake) * self.feat_loss_alpha + ) + loss_gen = self.generator_loss(scores_fake=scores_disc_fake)[0] * self.gen_loss_alpha + loss_mel = torch.nn.functional.l1_loss(mel_slice, mel_slice_hat) * self.mel_loss_alpha + loss_duration = torch.sum(loss_duration.float()) * self.dur_loss_alpha + loss = loss_kl + loss_feat + loss_mel + loss_gen + loss_duration + + if use_speaker_encoder_as_loss: + loss_se = self.cosine_similarity_loss(gt_spk_emb, syn_spk_emb) * self.spk_encoder_loss_alpha + loss = loss + loss_se + return_dict["loss_spk_encoder"] = loss_se + # pass losses to the dict + return_dict["loss_gen"] = loss_gen + return_dict["loss_kl"] = loss_kl + return_dict["loss_feat"] = loss_feat + return_dict["loss_mel"] = loss_mel + return_dict["loss_duration"] = loss_duration + return_dict["loss"] = loss + return return_dict + + +class VitsDiscriminatorLoss(nn.Module): + def __init__(self, c: Coqpit): + super().__init__() + self.disc_loss_alpha = c.disc_loss_alpha + + @staticmethod + def discriminator_loss(scores_real, scores_fake): + loss = 0 + real_losses = [] + fake_losses = [] + for dr, dg in zip(scores_real, scores_fake): + dr = dr.float() + dg = dg.float() + real_loss = torch.mean((1 - dr) ** 2) + fake_loss = torch.mean(dg**2) + loss += real_loss + fake_loss + real_losses.append(real_loss.item()) + fake_losses.append(fake_loss.item()) + return loss, real_losses, fake_losses + + def forward(self, scores_disc_real, scores_disc_fake): + loss = 0.0 + return_dict = {} + loss_disc, loss_disc_real, _ = self.discriminator_loss( + scores_real=scores_disc_real, scores_fake=scores_disc_fake + ) + return_dict["loss_disc"] = loss_disc * self.disc_loss_alpha + loss = loss + return_dict["loss_disc"] + return_dict["loss"] = loss + + for i, ldr in enumerate(loss_disc_real): + return_dict[f"loss_disc_real_{i}"] = ldr + return return_dict + + +class ForwardTTSLoss(nn.Module): + """Generic configurable ForwardTTS loss.""" + + def __init__(self, c): + super().__init__() + if c.spec_loss_type == "mse": + self.spec_loss = MSELossMasked(False) + elif c.spec_loss_type == "l1": + self.spec_loss = L1LossMasked(False) + else: + raise ValueError(" [!] Unknown spec_loss_type {}".format(c.spec_loss_type)) + + if c.duration_loss_type == "mse": + self.dur_loss = MSELossMasked(False) + elif c.duration_loss_type == "l1": + self.dur_loss = L1LossMasked(False) + elif c.duration_loss_type == "huber": + self.dur_loss = Huber() + else: + raise ValueError(" [!] Unknown duration_loss_type {}".format(c.duration_loss_type)) + + if c.model_args.use_aligner: + self.aligner_loss = ForwardSumLoss() + self.aligner_loss_alpha = c.aligner_loss_alpha + + if c.model_args.use_pitch: + self.pitch_loss = MSELossMasked(False) + self.pitch_loss_alpha = c.pitch_loss_alpha + + if c.use_ssim_loss: + self.ssim = SSIMLoss() if c.use_ssim_loss else None + self.ssim_loss_alpha = c.ssim_loss_alpha + + self.spec_loss_alpha = c.spec_loss_alpha + self.dur_loss_alpha = c.dur_loss_alpha + self.binary_alignment_loss_alpha = c.binary_align_loss_alpha + self.spk_encoder_loss_alpha = c.spk_encoder_loss_alpha + + @staticmethod + def _binary_alignment_loss(alignment_hard, alignment_soft): + """Binary loss that forces soft alignments to match the hard alignments as + explained in `https://arxiv.org/pdf/2108.10447.pdf`. + """ + log_sum = torch.log(torch.clamp(alignment_soft[alignment_hard == 1], min=1e-12)).sum() + return -log_sum / alignment_hard.sum() + + @staticmethod + def cosine_similarity_loss(gt_spk_emb, syn_spk_emb): + return -torch.nn.functional.cosine_similarity(gt_spk_emb, syn_spk_emb).mean() + + def forward( + self, + decoder_output, + decoder_target, + decoder_output_lens, + dur_output, + dur_target, + pitch_output, + pitch_target, + input_lens, + alignment_logprob=None, + alignment_hard=None, + alignment_soft=None, + binary_loss_weight=None, + train_aligner=True, + use_speaker_encoder_as_loss=False, + gt_spk_emb=None, + syn_spk_emb=None + ): + loss = 0 + return_dict = {} + if hasattr(self, "ssim") and self.ssim_loss_alpha > 0: + ssim_loss = self.ssim(decoder_output, decoder_target, decoder_output_lens) + loss = loss + self.ssim_loss_alpha * ssim_loss + return_dict["loss_ssim"] = self.ssim_loss_alpha * ssim_loss + + if self.spec_loss_alpha > 0: + spec_loss = self.spec_loss(decoder_output, decoder_target, decoder_output_lens) + loss = loss + self.spec_loss_alpha * spec_loss + return_dict["loss_spec"] = self.spec_loss_alpha * spec_loss + + if self.dur_loss_alpha > 0: + log_dur_tgt = torch.log(dur_target.float() + 1) + dur_loss = self.dur_loss(dur_output[:, :, None], log_dur_tgt[:, :, None], input_lens) + loss = loss + self.dur_loss_alpha * dur_loss + return_dict["loss_dur"] = self.dur_loss_alpha * dur_loss + + if hasattr(self, "pitch_loss") and self.pitch_loss_alpha > 0: + pitch_loss = self.pitch_loss(pitch_output.transpose(1, 2), pitch_target.transpose(1, 2), input_lens) + loss = loss + self.pitch_loss_alpha * pitch_loss + return_dict["loss_pitch"] = self.pitch_loss_alpha * pitch_loss + + if train_aligner: + if hasattr(self, "aligner_loss") and self.aligner_loss_alpha > 0: + aligner_loss = self.aligner_loss(alignment_logprob, input_lens, decoder_output_lens) + loss = loss + self.aligner_loss_alpha * aligner_loss + return_dict["loss_aligner"] = self.aligner_loss_alpha * aligner_loss + + if self.binary_alignment_loss_alpha > 0 and alignment_hard is not None: + binary_alignment_loss = self._binary_alignment_loss(alignment_hard, alignment_soft) + loss = loss + self.binary_alignment_loss_alpha * binary_alignment_loss + if binary_loss_weight: + return_dict["loss_binary_alignment"] = ( + self.binary_alignment_loss_alpha * binary_alignment_loss * binary_loss_weight + ) + else: + return_dict["loss_binary_alignment"] = self.binary_alignment_loss_alpha * binary_alignment_loss + + + if use_speaker_encoder_as_loss: + loss_se = self.cosine_similarity_loss(gt_spk_emb, syn_spk_emb) * self.spk_encoder_loss_alpha + loss = loss + loss_se + return_dict["loss_spk_encoder"] = loss_se + + return_dict["loss"] = loss + return return_dict diff --git a/Indic-TTS/TTS/TTS/tts/layers/tacotron/__init__.py b/Indic-TTS/TTS/TTS/tts/layers/tacotron/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/layers/tacotron/attentions.py b/Indic-TTS/TTS/TTS/tts/layers/tacotron/attentions.py new file mode 100644 index 0000000000000000000000000000000000000000..d8a90d72010066c1e3e09fd195c25954282e7526 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/tacotron/attentions.py @@ -0,0 +1,487 @@ +import torch +from scipy.stats import betabinom +from torch import nn +from torch.nn import functional as F + +from TTS.tts.layers.tacotron.common_layers import Linear + + +class LocationLayer(nn.Module): + """Layers for Location Sensitive Attention + + Args: + attention_dim (int): number of channels in the input tensor. + attention_n_filters (int, optional): number of filters in convolution. Defaults to 32. + attention_kernel_size (int, optional): kernel size of convolution filter. Defaults to 31. + """ + + def __init__(self, attention_dim, attention_n_filters=32, attention_kernel_size=31): + super().__init__() + self.location_conv1d = nn.Conv1d( + in_channels=2, + out_channels=attention_n_filters, + kernel_size=attention_kernel_size, + stride=1, + padding=(attention_kernel_size - 1) // 2, + bias=False, + ) + self.location_dense = Linear(attention_n_filters, attention_dim, bias=False, init_gain="tanh") + + def forward(self, attention_cat): + """ + Shapes: + attention_cat: [B, 2, C] + """ + processed_attention = self.location_conv1d(attention_cat) + processed_attention = self.location_dense(processed_attention.transpose(1, 2)) + return processed_attention + + +class GravesAttention(nn.Module): + """Graves Attention as is ref1 with updates from ref2. + ref1: https://arxiv.org/abs/1910.10288 + ref2: https://arxiv.org/pdf/1906.01083.pdf + + Args: + query_dim (int): number of channels in query tensor. + K (int): number of Gaussian heads to be used for computing attention. + """ + + COEF = 0.3989422917366028 # numpy.sqrt(1/(2*numpy.pi)) + + def __init__(self, query_dim, K): + + super().__init__() + self._mask_value = 1e-8 + self.K = K + # self.attention_alignment = 0.05 + self.eps = 1e-5 + self.J = None + self.N_a = nn.Sequential( + nn.Linear(query_dim, query_dim, bias=True), nn.ReLU(), nn.Linear(query_dim, 3 * K, bias=True) + ) + self.attention_weights = None + self.mu_prev = None + self.init_layers() + + def init_layers(self): + torch.nn.init.constant_(self.N_a[2].bias[(2 * self.K) : (3 * self.K)], 1.0) # bias mean + torch.nn.init.constant_(self.N_a[2].bias[self.K : (2 * self.K)], 10) # bias std + + def init_states(self, inputs): + if self.J is None or inputs.shape[1] + 1 > self.J.shape[-1]: + self.J = torch.arange(0, inputs.shape[1] + 2.0).to(inputs.device) + 0.5 + self.attention_weights = torch.zeros(inputs.shape[0], inputs.shape[1]).to(inputs.device) + self.mu_prev = torch.zeros(inputs.shape[0], self.K).to(inputs.device) + + # pylint: disable=R0201 + # pylint: disable=unused-argument + def preprocess_inputs(self, inputs): + return None + + def forward(self, query, inputs, processed_inputs, mask): + """ + Shapes: + query: [B, C_attention_rnn] + inputs: [B, T_in, C_encoder] + processed_inputs: place_holder + mask: [B, T_in] + """ + gbk_t = self.N_a(query) + gbk_t = gbk_t.view(gbk_t.size(0), -1, self.K) + + # attention model parameters + # each B x K + g_t = gbk_t[:, 0, :] + b_t = gbk_t[:, 1, :] + k_t = gbk_t[:, 2, :] + + # dropout to decorrelate attention heads + g_t = torch.nn.functional.dropout(g_t, p=0.5, training=self.training) + + # attention GMM parameters + sig_t = torch.nn.functional.softplus(b_t) + self.eps + + mu_t = self.mu_prev + torch.nn.functional.softplus(k_t) + g_t = torch.softmax(g_t, dim=-1) + self.eps + + j = self.J[: inputs.size(1) + 1] + + # attention weights + phi_t = g_t.unsqueeze(-1) * (1 / (1 + torch.sigmoid((mu_t.unsqueeze(-1) - j) / sig_t.unsqueeze(-1)))) + + # discritize attention weights + alpha_t = torch.sum(phi_t, 1) + alpha_t = alpha_t[:, 1:] - alpha_t[:, :-1] + alpha_t[alpha_t == 0] = 1e-8 + + # apply masking + if mask is not None: + alpha_t.data.masked_fill_(~mask, self._mask_value) + + context = torch.bmm(alpha_t.unsqueeze(1), inputs).squeeze(1) + self.attention_weights = alpha_t + self.mu_prev = mu_t + return context + + +class OriginalAttention(nn.Module): + """Bahdanau Attention with various optional modifications. + - Location sensitive attnetion: https://arxiv.org/abs/1712.05884 + - Forward Attention: https://arxiv.org/abs/1807.06736 + state masking at inference + - Using sigmoid instead of softmax normalization + - Attention windowing at inference time + + Note: + Location Sensitive Attention extends the additive attention mechanism + to use cumulative attention weights from previous decoder time steps with the current time step features. + + Forward attention computes most probable monotonic alignment. The modified attention probabilities at each + timestep are computed recursively by the forward algorithm. + + Transition agent in the forward attention explicitly gates the attention mechanism whether to move forward or + stay at each decoder timestep. + + Attention windowing is a inductive prior that prevents the model from attending to previous and future timesteps + beyond a certain window. + + Args: + query_dim (int): number of channels in the query tensor. + embedding_dim (int): number of channels in the vakue tensor. In general, the value tensor is the output of the encoder layer. + attention_dim (int): number of channels of the inner attention layers. + location_attention (bool): enable/disable location sensitive attention. + attention_location_n_filters (int): number of location attention filters. + attention_location_kernel_size (int): filter size of location attention convolution layer. + windowing (int): window size for attention windowing. if it is 5, for computing the attention, it only considers the time steps [(t-5), ..., (t+5)] of the input. + norm (str): normalization method applied to the attention weights. 'softmax' or 'sigmoid' + forward_attn (bool): enable/disable forward attention. + trans_agent (bool): enable/disable transition agent in the forward attention. + forward_attn_mask (int): enable/disable an explicit masking in forward attention. It is useful to set at especially inference time. + """ + + # Pylint gets confused by PyTorch conventions here + # pylint: disable=attribute-defined-outside-init + def __init__( + self, + query_dim, + embedding_dim, + attention_dim, + location_attention, + attention_location_n_filters, + attention_location_kernel_size, + windowing, + norm, + forward_attn, + trans_agent, + forward_attn_mask, + ): + super().__init__() + self.query_layer = Linear(query_dim, attention_dim, bias=False, init_gain="tanh") + self.inputs_layer = Linear(embedding_dim, attention_dim, bias=False, init_gain="tanh") + self.v = Linear(attention_dim, 1, bias=True) + if trans_agent: + self.ta = nn.Linear(query_dim + embedding_dim, 1, bias=True) + if location_attention: + self.location_layer = LocationLayer( + attention_dim, + attention_location_n_filters, + attention_location_kernel_size, + ) + self._mask_value = -float("inf") + self.windowing = windowing + self.win_idx = None + self.norm = norm + self.forward_attn = forward_attn + self.trans_agent = trans_agent + self.forward_attn_mask = forward_attn_mask + self.location_attention = location_attention + + def init_win_idx(self): + self.win_idx = -1 + self.win_back = 2 + self.win_front = 6 + + def init_forward_attn(self, inputs): + B = inputs.shape[0] + T = inputs.shape[1] + self.alpha = torch.cat([torch.ones([B, 1]), torch.zeros([B, T])[:, :-1] + 1e-7], dim=1).to(inputs.device) + self.u = (0.5 * torch.ones([B, 1])).to(inputs.device) + + def init_location_attention(self, inputs): + B = inputs.size(0) + T = inputs.size(1) + self.attention_weights_cum = torch.zeros([B, T], device=inputs.device) + + def init_states(self, inputs): + B = inputs.size(0) + T = inputs.size(1) + self.attention_weights = torch.zeros([B, T], device=inputs.device) + if self.location_attention: + self.init_location_attention(inputs) + if self.forward_attn: + self.init_forward_attn(inputs) + if self.windowing: + self.init_win_idx() + + def preprocess_inputs(self, inputs): + return self.inputs_layer(inputs) + + def update_location_attention(self, alignments): + self.attention_weights_cum += alignments + + def get_location_attention(self, query, processed_inputs): + attention_cat = torch.cat((self.attention_weights.unsqueeze(1), self.attention_weights_cum.unsqueeze(1)), dim=1) + processed_query = self.query_layer(query.unsqueeze(1)) + processed_attention_weights = self.location_layer(attention_cat) + energies = self.v(torch.tanh(processed_query + processed_attention_weights + processed_inputs)) + energies = energies.squeeze(-1) + return energies, processed_query + + def get_attention(self, query, processed_inputs): + processed_query = self.query_layer(query.unsqueeze(1)) + energies = self.v(torch.tanh(processed_query + processed_inputs)) + energies = energies.squeeze(-1) + return energies, processed_query + + def apply_windowing(self, attention, inputs): + back_win = self.win_idx - self.win_back + front_win = self.win_idx + self.win_front + if back_win > 0: + attention[:, :back_win] = -float("inf") + if front_win < inputs.shape[1]: + attention[:, front_win:] = -float("inf") + # this is a trick to solve a special problem. + # but it does not hurt. + if self.win_idx == -1: + attention[:, 0] = attention.max() + # Update the window + self.win_idx = torch.argmax(attention, 1).long()[0].item() + return attention + + def apply_forward_attention(self, alignment): + # forward attention + fwd_shifted_alpha = F.pad(self.alpha[:, :-1].clone().to(alignment.device), (1, 0, 0, 0)) + # compute transition potentials + alpha = ((1 - self.u) * self.alpha + self.u * fwd_shifted_alpha + 1e-8) * alignment + # force incremental alignment + if not self.training and self.forward_attn_mask: + _, n = fwd_shifted_alpha.max(1) + val, _ = alpha.max(1) + for b in range(alignment.shape[0]): + alpha[b, n[b] + 3 :] = 0 + alpha[b, : (n[b] - 1)] = 0 # ignore all previous states to prevent repetition. + alpha[b, (n[b] - 2)] = 0.01 * val[b] # smoothing factor for the prev step + # renormalize attention weights + alpha = alpha / alpha.sum(dim=1, keepdim=True) + return alpha + + def forward(self, query, inputs, processed_inputs, mask): + """ + shapes: + query: [B, C_attn_rnn] + inputs: [B, T_en, D_en] + processed_inputs: [B, T_en, D_attn] + mask: [B, T_en] + """ + if self.location_attention: + attention, _ = self.get_location_attention(query, processed_inputs) + else: + attention, _ = self.get_attention(query, processed_inputs) + # apply masking + if mask is not None: + attention.data.masked_fill_(~mask, self._mask_value) + # apply windowing - only in eval mode + if not self.training and self.windowing: + attention = self.apply_windowing(attention, inputs) + + # normalize attention values + if self.norm == "softmax": + alignment = torch.softmax(attention, dim=-1) + elif self.norm == "sigmoid": + alignment = torch.sigmoid(attention) / torch.sigmoid(attention).sum(dim=1, keepdim=True) + else: + raise ValueError("Unknown value for attention norm type") + + if self.location_attention: + self.update_location_attention(alignment) + + # apply forward attention if enabled + if self.forward_attn: + alignment = self.apply_forward_attention(alignment) + self.alpha = alignment + + context = torch.bmm(alignment.unsqueeze(1), inputs) + context = context.squeeze(1) + self.attention_weights = alignment + + # compute transition agent + if self.forward_attn and self.trans_agent: + ta_input = torch.cat([context, query.squeeze(1)], dim=-1) + self.u = torch.sigmoid(self.ta(ta_input)) + return context + + +class MonotonicDynamicConvolutionAttention(nn.Module): + """Dynamic convolution attention from + https://arxiv.org/pdf/1910.10288.pdf + + + query -> linear -> tanh -> linear ->| + | mask values + v | | + atten_w(t-1) -|-> conv1d_dynamic -> linear -|-> tanh -> + -> softmax -> * -> * -> context + |-> conv1d_static -> linear -| | + |-> conv1d_prior -> log ----------------| + + query: attention rnn output. + + Note: + Dynamic convolution attention is an alternation of the location senstive attention with + dynamically computed convolution filters from the previous attention scores and a set of + constraints to keep the attention alignment diagonal. + DCA is sensitive to mixed precision training and might cause instable training. + + Args: + query_dim (int): number of channels in the query tensor. + embedding_dim (int): number of channels in the value tensor. + static_filter_dim (int): number of channels in the convolution layer computing the static filters. + static_kernel_size (int): kernel size for the convolution layer computing the static filters. + dynamic_filter_dim (int): number of channels in the convolution layer computing the dynamic filters. + dynamic_kernel_size (int): kernel size for the convolution layer computing the dynamic filters. + prior_filter_len (int, optional): [description]. Defaults to 11 from the paper. + alpha (float, optional): [description]. Defaults to 0.1 from the paper. + beta (float, optional): [description]. Defaults to 0.9 from the paper. + """ + + def __init__( + self, + query_dim, + embedding_dim, # pylint: disable=unused-argument + attention_dim, + static_filter_dim, + static_kernel_size, + dynamic_filter_dim, + dynamic_kernel_size, + prior_filter_len=11, + alpha=0.1, + beta=0.9, + ): + super().__init__() + self._mask_value = 1e-8 + self.dynamic_filter_dim = dynamic_filter_dim + self.dynamic_kernel_size = dynamic_kernel_size + self.prior_filter_len = prior_filter_len + self.attention_weights = None + # setup key and query layers + self.query_layer = nn.Linear(query_dim, attention_dim) + self.key_layer = nn.Linear(attention_dim, dynamic_filter_dim * dynamic_kernel_size, bias=False) + self.static_filter_conv = nn.Conv1d( + 1, + static_filter_dim, + static_kernel_size, + padding=(static_kernel_size - 1) // 2, + bias=False, + ) + self.static_filter_layer = nn.Linear(static_filter_dim, attention_dim, bias=False) + self.dynamic_filter_layer = nn.Linear(dynamic_filter_dim, attention_dim) + self.v = nn.Linear(attention_dim, 1, bias=False) + + prior = betabinom.pmf(range(prior_filter_len), prior_filter_len - 1, alpha, beta) + self.register_buffer("prior", torch.FloatTensor(prior).flip(0)) + + # pylint: disable=unused-argument + def forward(self, query, inputs, processed_inputs, mask): + """ + query: [B, C_attn_rnn] + inputs: [B, T_en, D_en] + processed_inputs: place holder. + mask: [B, T_en] + """ + # compute prior filters + prior_filter = F.conv1d( + F.pad(self.attention_weights.unsqueeze(1), (self.prior_filter_len - 1, 0)), self.prior.view(1, 1, -1) + ) + prior_filter = torch.log(prior_filter.clamp_min_(1e-6)).squeeze(1) + G = self.key_layer(torch.tanh(self.query_layer(query))) + # compute dynamic filters + dynamic_filter = F.conv1d( + self.attention_weights.unsqueeze(0), + G.view(-1, 1, self.dynamic_kernel_size), + padding=(self.dynamic_kernel_size - 1) // 2, + groups=query.size(0), + ) + dynamic_filter = dynamic_filter.view(query.size(0), self.dynamic_filter_dim, -1).transpose(1, 2) + # compute static filters + static_filter = self.static_filter_conv(self.attention_weights.unsqueeze(1)).transpose(1, 2) + alignment = ( + self.v( + torch.tanh(self.static_filter_layer(static_filter) + self.dynamic_filter_layer(dynamic_filter)) + ).squeeze(-1) + + prior_filter + ) + # compute attention weights + attention_weights = F.softmax(alignment, dim=-1) + # apply masking + if mask is not None: + attention_weights.data.masked_fill_(~mask, self._mask_value) + self.attention_weights = attention_weights + # compute context + context = torch.bmm(attention_weights.unsqueeze(1), inputs).squeeze(1) + return context + + def preprocess_inputs(self, inputs): # pylint: disable=no-self-use + return None + + def init_states(self, inputs): + B = inputs.size(0) + T = inputs.size(1) + self.attention_weights = torch.zeros([B, T], device=inputs.device) + self.attention_weights[:, 0] = 1.0 + + +def init_attn( + attn_type, + query_dim, + embedding_dim, + attention_dim, + location_attention, + attention_location_n_filters, + attention_location_kernel_size, + windowing, + norm, + forward_attn, + trans_agent, + forward_attn_mask, + attn_K, +): + if attn_type == "original": + return OriginalAttention( + query_dim, + embedding_dim, + attention_dim, + location_attention, + attention_location_n_filters, + attention_location_kernel_size, + windowing, + norm, + forward_attn, + trans_agent, + forward_attn_mask, + ) + if attn_type == "graves": + return GravesAttention(query_dim, attn_K) + if attn_type == "dynamic_convolution": + return MonotonicDynamicConvolutionAttention( + query_dim, + embedding_dim, + attention_dim, + static_filter_dim=8, + static_kernel_size=21, + dynamic_filter_dim=8, + dynamic_kernel_size=21, + prior_filter_len=11, + alpha=0.1, + beta=0.9, + ) + + raise RuntimeError(f" [!] Given Attention Type '{attn_type}' is not exist.") diff --git a/Indic-TTS/TTS/TTS/tts/layers/tacotron/capacitron_layers.py b/Indic-TTS/TTS/TTS/tts/layers/tacotron/capacitron_layers.py new file mode 100644 index 0000000000000000000000000000000000000000..56fe44bc333f17a4361f16f3cc75334a69c58ac6 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/tacotron/capacitron_layers.py @@ -0,0 +1,205 @@ +import torch +from torch import nn +from torch.distributions.multivariate_normal import MultivariateNormal as MVN +from torch.nn import functional as F + + +class CapacitronVAE(nn.Module): + """Effective Use of Variational Embedding Capacity for prosody transfer. + + See https://arxiv.org/abs/1906.03402""" + + def __init__( + self, + num_mel, + capacitron_VAE_embedding_dim, + encoder_output_dim=256, + reference_encoder_out_dim=128, + speaker_embedding_dim=None, + text_summary_embedding_dim=None, + ): + super().__init__() + # Init distributions + self.prior_distribution = MVN( + torch.zeros(capacitron_VAE_embedding_dim), torch.eye(capacitron_VAE_embedding_dim) + ) + self.approximate_posterior_distribution = None + # define output ReferenceEncoder dim to the capacitron_VAE_embedding_dim + self.encoder = ReferenceEncoder(num_mel, out_dim=reference_encoder_out_dim) + + # Init beta, the lagrange-like term for the KL distribution + self.beta = torch.nn.Parameter(torch.log(torch.exp(torch.Tensor([1.0])) - 1), requires_grad=True) + mlp_input_dimension = reference_encoder_out_dim + + if text_summary_embedding_dim is not None: + self.text_summary_net = TextSummary(text_summary_embedding_dim, encoder_output_dim=encoder_output_dim) + mlp_input_dimension += text_summary_embedding_dim + if speaker_embedding_dim is not None: + # TODO: Test a multispeaker model! + mlp_input_dimension += speaker_embedding_dim + self.post_encoder_mlp = PostEncoderMLP(mlp_input_dimension, capacitron_VAE_embedding_dim) + + def forward(self, reference_mel_info=None, text_info=None, speaker_embedding=None): + # Use reference + if reference_mel_info is not None: + reference_mels = reference_mel_info[0] # [batch_size, num_frames, num_mels] + mel_lengths = reference_mel_info[1] # [batch_size] + enc_out = self.encoder(reference_mels, mel_lengths) + + # concat speaker_embedding and/or text summary embedding + if text_info is not None: + text_inputs = text_info[0] # [batch_size, num_characters, num_embedding] + input_lengths = text_info[1] + text_summary_out = self.text_summary_net(text_inputs, input_lengths).to(reference_mels.device) + enc_out = torch.cat([enc_out, text_summary_out], dim=-1) + if speaker_embedding is not None: + enc_out = torch.cat([enc_out, speaker_embedding], dim=-1) + + # Feed the output of the ref encoder and information about text/speaker into + # an MLP to produce the parameteres for the approximate poterior distributions + mu, sigma = self.post_encoder_mlp(enc_out) + # convert to cpu because prior_distribution was created on cpu + mu = mu.cpu() + sigma = sigma.cpu() + + # Sample from the posterior: z ~ q(z|x) + self.approximate_posterior_distribution = MVN(mu, torch.diag_embed(sigma)) + VAE_embedding = self.approximate_posterior_distribution.rsample() + # Infer from the model, bypasses encoding + else: + # Sample from the prior: z ~ p(z) + VAE_embedding = self.prior_distribution.sample().unsqueeze(0) + + # reshape to [batch_size, 1, capacitron_VAE_embedding_dim] + return VAE_embedding.unsqueeze(1), self.approximate_posterior_distribution, self.prior_distribution, self.beta + + +class ReferenceEncoder(nn.Module): + """NN module creating a fixed size prosody embedding from a spectrogram. + + inputs: mel spectrograms [batch_size, num_spec_frames, num_mel] + outputs: [batch_size, embedding_dim] + """ + + def __init__(self, num_mel, out_dim): + + super().__init__() + self.num_mel = num_mel + filters = [1] + [32, 32, 64, 64, 128, 128] + num_layers = len(filters) - 1 + convs = [ + nn.Conv2d( + in_channels=filters[i], out_channels=filters[i + 1], kernel_size=(3, 3), stride=(2, 2), padding=(2, 2) + ) + for i in range(num_layers) + ] + self.convs = nn.ModuleList(convs) + self.training = False + self.bns = nn.ModuleList([nn.BatchNorm2d(num_features=filter_size) for filter_size in filters[1:]]) + + post_conv_height = self.calculate_post_conv_height(num_mel, 3, 2, 2, num_layers) + self.recurrence = nn.LSTM( + input_size=filters[-1] * post_conv_height, hidden_size=out_dim, batch_first=True, bidirectional=False + ) + + def forward(self, inputs, input_lengths): + batch_size = inputs.size(0) + x = inputs.view(batch_size, 1, -1, self.num_mel) # [batch_size, num_channels==1, num_frames, num_mel] + valid_lengths = input_lengths.float() # [batch_size] + for conv, bn in zip(self.convs, self.bns): + x = conv(x) + x = bn(x) + x = F.relu(x) + + # Create the post conv width mask based on the valid lengths of the output of the convolution. + # The valid lengths for the output of a convolution on varying length inputs is + # ceil(input_length/stride) + 1 for stride=3 and padding=2 + # For example (kernel_size=3, stride=2, padding=2): + # 0 0 x x x x x 0 0 -> Input = 5, 0 is zero padding, x is valid values coming from padding=2 in conv2d + # _____ + # x _____ + # x _____ + # x ____ + # x + # x x x x -> Output valid length = 4 + # Since every example in te batch is zero padded and therefore have separate valid_lengths, + # we need to mask off all the values AFTER the valid length for each example in the batch. + # Otherwise, the convolutions create noise and a lot of not real information + valid_lengths = (valid_lengths / 2).float() + valid_lengths = torch.ceil(valid_lengths).to(dtype=torch.int64) + 1 # 2 is stride -- size: [batch_size] + post_conv_max_width = x.size(2) + + mask = torch.arange(post_conv_max_width).to(inputs.device).expand( + len(valid_lengths), post_conv_max_width + ) < valid_lengths.unsqueeze(1) + mask = mask.expand(1, 1, -1, -1).transpose(2, 0).transpose(-1, 2) # [batch_size, 1, post_conv_max_width, 1] + x = x * mask + + x = x.transpose(1, 2) + # x: 4D tensor [batch_size, post_conv_width, + # num_channels==128, post_conv_height] + + post_conv_width = x.size(1) + x = x.contiguous().view(batch_size, post_conv_width, -1) + # x: 3D tensor [batch_size, post_conv_width, + # num_channels*post_conv_height] + + # Routine for fetching the last valid output of a dynamic LSTM with varying input lengths and padding + post_conv_input_lengths = valid_lengths + packed_seqs = nn.utils.rnn.pack_padded_sequence( + x, post_conv_input_lengths.tolist(), batch_first=True, enforce_sorted=False + ) # dynamic rnn sequence padding + self.recurrence.flatten_parameters() + _, (ht, _) = self.recurrence(packed_seqs) + last_output = ht[-1] + + return last_output.to(inputs.device) # [B, 128] + + @staticmethod + def calculate_post_conv_height(height, kernel_size, stride, pad, n_convs): + """Height of spec after n convolutions with fixed kernel/stride/pad.""" + for _ in range(n_convs): + height = (height - kernel_size + 2 * pad) // stride + 1 + return height + + +class TextSummary(nn.Module): + def __init__(self, embedding_dim, encoder_output_dim): + super().__init__() + self.lstm = nn.LSTM( + encoder_output_dim, # text embedding dimension from the text encoder + embedding_dim, # fixed length output summary the lstm creates from the input + batch_first=True, + bidirectional=False, + ) + + def forward(self, inputs, input_lengths): + # Routine for fetching the last valid output of a dynamic LSTM with varying input lengths and padding + packed_seqs = nn.utils.rnn.pack_padded_sequence( + inputs, input_lengths.tolist(), batch_first=True, enforce_sorted=False + ) # dynamic rnn sequence padding + self.lstm.flatten_parameters() + _, (ht, _) = self.lstm(packed_seqs) + last_output = ht[-1] + return last_output + + +class PostEncoderMLP(nn.Module): + def __init__(self, input_size, hidden_size): + super().__init__() + self.hidden_size = hidden_size + modules = [ + nn.Linear(input_size, hidden_size), # Hidden Layer + nn.Tanh(), + nn.Linear(hidden_size, hidden_size * 2), + ] # Output layer twice the size for mean and variance + self.net = nn.Sequential(*modules) + self.softplus = nn.Softplus() + + def forward(self, _input): + mlp_output = self.net(_input) + # The mean parameter is unconstrained + mu = mlp_output[:, : self.hidden_size] + # The standard deviation must be positive. Parameterise with a softplus + sigma = self.softplus(mlp_output[:, self.hidden_size :]) + return mu, sigma diff --git a/Indic-TTS/TTS/TTS/tts/layers/tacotron/common_layers.py b/Indic-TTS/TTS/TTS/tts/layers/tacotron/common_layers.py new file mode 100644 index 0000000000000000000000000000000000000000..f78ff1e75f6c23eb1a0fe827247a1127bc8f9958 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/tacotron/common_layers.py @@ -0,0 +1,119 @@ +import torch +from torch import nn +from torch.nn import functional as F + + +class Linear(nn.Module): + """Linear layer with a specific initialization. + + Args: + in_features (int): number of channels in the input tensor. + out_features (int): number of channels in the output tensor. + bias (bool, optional): enable/disable bias in the layer. Defaults to True. + init_gain (str, optional): method to compute the gain in the weight initializtion based on the nonlinear activation used afterwards. Defaults to 'linear'. + """ + + def __init__(self, in_features, out_features, bias=True, init_gain="linear"): + super().__init__() + self.linear_layer = torch.nn.Linear(in_features, out_features, bias=bias) + self._init_w(init_gain) + + def _init_w(self, init_gain): + torch.nn.init.xavier_uniform_(self.linear_layer.weight, gain=torch.nn.init.calculate_gain(init_gain)) + + def forward(self, x): + return self.linear_layer(x) + + +class LinearBN(nn.Module): + """Linear layer with Batch Normalization. + + x -> linear -> BN -> o + + Args: + in_features (int): number of channels in the input tensor. + out_features (int ): number of channels in the output tensor. + bias (bool, optional): enable/disable bias in the linear layer. Defaults to True. + init_gain (str, optional): method to set the gain for weight initialization. Defaults to 'linear'. + """ + + def __init__(self, in_features, out_features, bias=True, init_gain="linear"): + super().__init__() + self.linear_layer = torch.nn.Linear(in_features, out_features, bias=bias) + self.batch_normalization = nn.BatchNorm1d(out_features, momentum=0.1, eps=1e-5) + self._init_w(init_gain) + + def _init_w(self, init_gain): + torch.nn.init.xavier_uniform_(self.linear_layer.weight, gain=torch.nn.init.calculate_gain(init_gain)) + + def forward(self, x): + """ + Shapes: + x: [T, B, C] or [B, C] + """ + out = self.linear_layer(x) + if len(out.shape) == 3: + out = out.permute(1, 2, 0) + out = self.batch_normalization(out) + if len(out.shape) == 3: + out = out.permute(2, 0, 1) + return out + + +class Prenet(nn.Module): + """Tacotron specific Prenet with an optional Batch Normalization. + + Note: + Prenet with BN improves the model performance significantly especially + if it is enabled after learning a diagonal attention alignment with the original + prenet. However, if the target dataset is high quality then it also works from + the start. It is also suggested to disable dropout if BN is in use. + + prenet_type == "original" + x -> [linear -> ReLU -> Dropout]xN -> o + + prenet_type == "bn" + x -> [linear -> BN -> ReLU -> Dropout]xN -> o + + Args: + in_features (int): number of channels in the input tensor and the inner layers. + prenet_type (str, optional): prenet type "original" or "bn". Defaults to "original". + prenet_dropout (bool, optional): dropout rate. Defaults to True. + dropout_at_inference (bool, optional): use dropout at inference. It leads to a better quality for some models. + out_features (list, optional): List of output channels for each prenet block. + It also defines number of the prenet blocks based on the length of argument list. + Defaults to [256, 256]. + bias (bool, optional): enable/disable bias in prenet linear layers. Defaults to True. + """ + + # pylint: disable=dangerous-default-value + def __init__( + self, + in_features, + prenet_type="original", + prenet_dropout=True, + dropout_at_inference=False, + out_features=[256, 256], + bias=True, + ): + super().__init__() + self.prenet_type = prenet_type + self.prenet_dropout = prenet_dropout + self.dropout_at_inference = dropout_at_inference + in_features = [in_features] + out_features[:-1] + if prenet_type == "bn": + self.linear_layers = nn.ModuleList( + [LinearBN(in_size, out_size, bias=bias) for (in_size, out_size) in zip(in_features, out_features)] + ) + elif prenet_type == "original": + self.linear_layers = nn.ModuleList( + [Linear(in_size, out_size, bias=bias) for (in_size, out_size) in zip(in_features, out_features)] + ) + + def forward(self, x): + for linear in self.linear_layers: + if self.prenet_dropout: + x = F.dropout(F.relu(linear(x)), p=0.5, training=self.training or self.dropout_at_inference) + else: + x = F.relu(linear(x)) + return x diff --git a/Indic-TTS/TTS/TTS/tts/layers/tacotron/gst_layers.py b/Indic-TTS/TTS/TTS/tts/layers/tacotron/gst_layers.py new file mode 100644 index 0000000000000000000000000000000000000000..ec622e4db80eb7f0e319bc11df950086b9562f41 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/tacotron/gst_layers.py @@ -0,0 +1,151 @@ +import torch +import torch.nn.functional as F +from torch import nn + + +class GST(nn.Module): + """Global Style Token Module for factorizing prosody in speech. + + See https://arxiv.org/pdf/1803.09017""" + + def __init__(self, num_mel, num_heads, num_style_tokens, gst_embedding_dim, embedded_speaker_dim=None): + super().__init__() + self.encoder = ReferenceEncoder(num_mel, gst_embedding_dim) + self.style_token_layer = StyleTokenLayer(num_heads, num_style_tokens, gst_embedding_dim, embedded_speaker_dim) + + def forward(self, inputs, speaker_embedding=None): + enc_out = self.encoder(inputs) + # concat speaker_embedding + if speaker_embedding is not None: + enc_out = torch.cat([enc_out, speaker_embedding], dim=-1) + style_embed = self.style_token_layer(enc_out) + + return style_embed + + +class ReferenceEncoder(nn.Module): + """NN module creating a fixed size prosody embedding from a spectrogram. + + inputs: mel spectrograms [batch_size, num_spec_frames, num_mel] + outputs: [batch_size, embedding_dim] + """ + + def __init__(self, num_mel, embedding_dim): + + super().__init__() + self.num_mel = num_mel + filters = [1] + [32, 32, 64, 64, 128, 128] + num_layers = len(filters) - 1 + convs = [ + nn.Conv2d( + in_channels=filters[i], out_channels=filters[i + 1], kernel_size=(3, 3), stride=(2, 2), padding=(1, 1) + ) + for i in range(num_layers) + ] + self.convs = nn.ModuleList(convs) + self.bns = nn.ModuleList([nn.BatchNorm2d(num_features=filter_size) for filter_size in filters[1:]]) + + post_conv_height = self.calculate_post_conv_height(num_mel, 3, 2, 1, num_layers) + self.recurrence = nn.GRU( + input_size=filters[-1] * post_conv_height, hidden_size=embedding_dim // 2, batch_first=True + ) + + def forward(self, inputs): + batch_size = inputs.size(0) + x = inputs.view(batch_size, 1, -1, self.num_mel) + # x: 4D tensor [batch_size, num_channels==1, num_frames, num_mel] + for conv, bn in zip(self.convs, self.bns): + x = conv(x) + x = bn(x) + x = F.relu(x) + + x = x.transpose(1, 2) + # x: 4D tensor [batch_size, post_conv_width, + # num_channels==128, post_conv_height] + post_conv_width = x.size(1) + x = x.contiguous().view(batch_size, post_conv_width, -1) + # x: 3D tensor [batch_size, post_conv_width, + # num_channels*post_conv_height] + self.recurrence.flatten_parameters() + _, out = self.recurrence(x) + # out: 3D tensor [seq_len==1, batch_size, encoding_size=128] + + return out.squeeze(0) + + @staticmethod + def calculate_post_conv_height(height, kernel_size, stride, pad, n_convs): + """Height of spec after n convolutions with fixed kernel/stride/pad.""" + for _ in range(n_convs): + height = (height - kernel_size + 2 * pad) // stride + 1 + return height + + +class StyleTokenLayer(nn.Module): + """NN Module attending to style tokens based on prosody encodings.""" + + def __init__(self, num_heads, num_style_tokens, gst_embedding_dim, d_vector_dim=None): + super().__init__() + + self.query_dim = gst_embedding_dim // 2 + + if d_vector_dim: + self.query_dim += d_vector_dim + + self.key_dim = gst_embedding_dim // num_heads + self.style_tokens = nn.Parameter(torch.FloatTensor(num_style_tokens, self.key_dim)) + nn.init.normal_(self.style_tokens, mean=0, std=0.5) + self.attention = MultiHeadAttention( + query_dim=self.query_dim, key_dim=self.key_dim, num_units=gst_embedding_dim, num_heads=num_heads + ) + + def forward(self, inputs): + batch_size = inputs.size(0) + prosody_encoding = inputs.unsqueeze(1) + # prosody_encoding: 3D tensor [batch_size, 1, encoding_size==128] + tokens = torch.tanh(self.style_tokens).unsqueeze(0).expand(batch_size, -1, -1) + # tokens: 3D tensor [batch_size, num tokens, token embedding size] + style_embed = self.attention(prosody_encoding, tokens) + + return style_embed + + +class MultiHeadAttention(nn.Module): + """ + input: + query --- [N, T_q, query_dim] + key --- [N, T_k, key_dim] + output: + out --- [N, T_q, num_units] + """ + + def __init__(self, query_dim, key_dim, num_units, num_heads): + + super().__init__() + self.num_units = num_units + self.num_heads = num_heads + self.key_dim = key_dim + + self.W_query = nn.Linear(in_features=query_dim, out_features=num_units, bias=False) + self.W_key = nn.Linear(in_features=key_dim, out_features=num_units, bias=False) + self.W_value = nn.Linear(in_features=key_dim, out_features=num_units, bias=False) + + def forward(self, query, key): + queries = self.W_query(query) # [N, T_q, num_units] + keys = self.W_key(key) # [N, T_k, num_units] + values = self.W_value(key) + + split_size = self.num_units // self.num_heads + queries = torch.stack(torch.split(queries, split_size, dim=2), dim=0) # [h, N, T_q, num_units/h] + keys = torch.stack(torch.split(keys, split_size, dim=2), dim=0) # [h, N, T_k, num_units/h] + values = torch.stack(torch.split(values, split_size, dim=2), dim=0) # [h, N, T_k, num_units/h] + + # score = softmax(QK^T / (d_k**0.5)) + scores = torch.matmul(queries, keys.transpose(2, 3)) # [h, N, T_q, T_k] + scores = scores / (self.key_dim**0.5) + scores = F.softmax(scores, dim=3) + + # out = score * V + out = torch.matmul(scores, values) # [h, N, T_q, num_units/h] + out = torch.cat(torch.split(out, 1, dim=0), dim=3).squeeze(0) # [N, T_q, num_units] + + return out diff --git a/Indic-TTS/TTS/TTS/tts/layers/tacotron/tacotron.py b/Indic-TTS/TTS/TTS/tts/layers/tacotron/tacotron.py new file mode 100644 index 0000000000000000000000000000000000000000..bddaf449c112a99458c9047c5c07df592e935972 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/tacotron/tacotron.py @@ -0,0 +1,504 @@ +# coding: utf-8 +# adapted from https://github.com/r9y9/tacotron_pytorch + +import torch +from torch import nn + +from .attentions import init_attn +from .common_layers import Prenet + + +class BatchNormConv1d(nn.Module): + r"""A wrapper for Conv1d with BatchNorm. It sets the activation + function between Conv and BatchNorm layers. BatchNorm layer + is initialized with the TF default values for momentum and eps. + + Args: + in_channels: size of each input sample + out_channels: size of each output samples + kernel_size: kernel size of conv filters + stride: stride of conv filters + padding: padding of conv filters + activation: activation function set b/w Conv1d and BatchNorm + + Shapes: + - input: (B, D) + - output: (B, D) + """ + + def __init__(self, in_channels, out_channels, kernel_size, stride, padding, activation=None): + + super().__init__() + self.padding = padding + self.padder = nn.ConstantPad1d(padding, 0) + self.conv1d = nn.Conv1d( + in_channels, out_channels, kernel_size=kernel_size, stride=stride, padding=0, bias=False + ) + # Following tensorflow's default parameters + self.bn = nn.BatchNorm1d(out_channels, momentum=0.99, eps=1e-3) + self.activation = activation + # self.init_layers() + + def init_layers(self): + if isinstance(self.activation, torch.nn.ReLU): + w_gain = "relu" + elif isinstance(self.activation, torch.nn.Tanh): + w_gain = "tanh" + elif self.activation is None: + w_gain = "linear" + else: + raise RuntimeError("Unknown activation function") + torch.nn.init.xavier_uniform_(self.conv1d.weight, gain=torch.nn.init.calculate_gain(w_gain)) + + def forward(self, x): + x = self.padder(x) + x = self.conv1d(x) + x = self.bn(x) + if self.activation is not None: + x = self.activation(x) + return x + + +class Highway(nn.Module): + r"""Highway layers as explained in https://arxiv.org/abs/1505.00387 + + Args: + in_features (int): size of each input sample + out_feature (int): size of each output sample + + Shapes: + - input: (B, *, H_in) + - output: (B, *, H_out) + """ + + # TODO: Try GLU layer + def __init__(self, in_features, out_feature): + super().__init__() + self.H = nn.Linear(in_features, out_feature) + self.H.bias.data.zero_() + self.T = nn.Linear(in_features, out_feature) + self.T.bias.data.fill_(-1) + self.relu = nn.ReLU() + self.sigmoid = nn.Sigmoid() + # self.init_layers() + + def init_layers(self): + torch.nn.init.xavier_uniform_(self.H.weight, gain=torch.nn.init.calculate_gain("relu")) + torch.nn.init.xavier_uniform_(self.T.weight, gain=torch.nn.init.calculate_gain("sigmoid")) + + def forward(self, inputs): + H = self.relu(self.H(inputs)) + T = self.sigmoid(self.T(inputs)) + return H * T + inputs * (1.0 - T) + + +class CBHG(nn.Module): + """CBHG module: a recurrent neural network composed of: + - 1-d convolution banks + - Highway networks + residual connections + - Bidirectional gated recurrent units + + Args: + in_features (int): sample size + K (int): max filter size in conv bank + projections (list): conv channel sizes for conv projections + num_highways (int): number of highways layers + + Shapes: + - input: (B, C, T_in) + - output: (B, T_in, C*2) + """ + + # pylint: disable=dangerous-default-value + def __init__( + self, + in_features, + K=16, + conv_bank_features=128, + conv_projections=[128, 128], + highway_features=128, + gru_features=128, + num_highways=4, + ): + super().__init__() + self.in_features = in_features + self.conv_bank_features = conv_bank_features + self.highway_features = highway_features + self.gru_features = gru_features + self.conv_projections = conv_projections + self.relu = nn.ReLU() + # list of conv1d bank with filter size k=1...K + # TODO: try dilational layers instead + self.conv1d_banks = nn.ModuleList( + [ + BatchNormConv1d( + in_features, + conv_bank_features, + kernel_size=k, + stride=1, + padding=[(k - 1) // 2, k // 2], + activation=self.relu, + ) + for k in range(1, K + 1) + ] + ) + # max pooling of conv bank, with padding + # TODO: try average pooling OR larger kernel size + out_features = [K * conv_bank_features] + conv_projections[:-1] + activations = [self.relu] * (len(conv_projections) - 1) + activations += [None] + # setup conv1d projection layers + layer_set = [] + for (in_size, out_size, ac) in zip(out_features, conv_projections, activations): + layer = BatchNormConv1d(in_size, out_size, kernel_size=3, stride=1, padding=[1, 1], activation=ac) + layer_set.append(layer) + self.conv1d_projections = nn.ModuleList(layer_set) + # setup Highway layers + if self.highway_features != conv_projections[-1]: + self.pre_highway = nn.Linear(conv_projections[-1], highway_features, bias=False) + self.highways = nn.ModuleList([Highway(highway_features, highway_features) for _ in range(num_highways)]) + # bi-directional GPU layer + self.gru = nn.GRU(gru_features, gru_features, 1, batch_first=True, bidirectional=True) + + def forward(self, inputs): + # (B, in_features, T_in) + x = inputs + # (B, hid_features*K, T_in) + # Concat conv1d bank outputs + outs = [] + for conv1d in self.conv1d_banks: + out = conv1d(x) + outs.append(out) + x = torch.cat(outs, dim=1) + assert x.size(1) == self.conv_bank_features * len(self.conv1d_banks) + for conv1d in self.conv1d_projections: + x = conv1d(x) + x += inputs + x = x.transpose(1, 2) + if self.highway_features != self.conv_projections[-1]: + x = self.pre_highway(x) + # Residual connection + # TODO: try residual scaling as in Deep Voice 3 + # TODO: try plain residual layers + for highway in self.highways: + x = highway(x) + # (B, T_in, hid_features*2) + # TODO: replace GRU with convolution as in Deep Voice 3 + self.gru.flatten_parameters() + outputs, _ = self.gru(x) + return outputs + + +class EncoderCBHG(nn.Module): + r"""CBHG module with Encoder specific arguments""" + + def __init__(self): + super().__init__() + self.cbhg = CBHG( + 128, + K=16, + conv_bank_features=128, + conv_projections=[128, 128], + highway_features=128, + gru_features=128, + num_highways=4, + ) + + def forward(self, x): + return self.cbhg(x) + + +class Encoder(nn.Module): + r"""Stack Prenet and CBHG module for encoder + Args: + inputs (FloatTensor): embedding features + + Shapes: + - inputs: (B, T, D_in) + - outputs: (B, T, 128 * 2) + """ + + def __init__(self, in_features): + super().__init__() + self.prenet = Prenet(in_features, out_features=[256, 128]) + self.cbhg = EncoderCBHG() + + def forward(self, inputs): + # B x T x prenet_dim + outputs = self.prenet(inputs) + outputs = self.cbhg(outputs.transpose(1, 2)) + return outputs + + +class PostCBHG(nn.Module): + def __init__(self, mel_dim): + super().__init__() + self.cbhg = CBHG( + mel_dim, + K=8, + conv_bank_features=128, + conv_projections=[256, mel_dim], + highway_features=128, + gru_features=128, + num_highways=4, + ) + + def forward(self, x): + return self.cbhg(x) + + +class Decoder(nn.Module): + """Tacotron decoder. + + Args: + in_channels (int): number of input channels. + frame_channels (int): number of feature frame channels. + r (int): number of outputs per time step (reduction rate). + memory_size (int): size of the past window. if <= 0 memory_size = r + attn_type (string): type of attention used in decoder. + attn_windowing (bool): if true, define an attention window centered to maximum + attention response. It provides more robust attention alignment especially + at interence time. + attn_norm (string): attention normalization function. 'sigmoid' or 'softmax'. + prenet_type (string): 'original' or 'bn'. + prenet_dropout (float): prenet dropout rate. + forward_attn (bool): if true, use forward attention method. https://arxiv.org/abs/1807.06736 + trans_agent (bool): if true, use transition agent. https://arxiv.org/abs/1807.06736 + forward_attn_mask (bool): if true, mask attention values smaller than a threshold. + location_attn (bool): if true, use location sensitive attention. + attn_K (int): number of attention heads for GravesAttention. + separate_stopnet (bool): if true, detach stopnet input to prevent gradient flow. + d_vector_dim (int): size of speaker embedding vector, for multi-speaker training. + max_decoder_steps (int): Maximum number of steps allowed for the decoder. Defaults to 500. + """ + + # Pylint gets confused by PyTorch conventions here + # pylint: disable=attribute-defined-outside-init + + def __init__( + self, + in_channels, + frame_channels, + r, + memory_size, + attn_type, + attn_windowing, + attn_norm, + prenet_type, + prenet_dropout, + forward_attn, + trans_agent, + forward_attn_mask, + location_attn, + attn_K, + separate_stopnet, + max_decoder_steps, + ): + super().__init__() + self.r_init = r + self.r = r + self.in_channels = in_channels + self.max_decoder_steps = max_decoder_steps + self.use_memory_queue = memory_size > 0 + self.memory_size = memory_size if memory_size > 0 else r + self.frame_channels = frame_channels + self.separate_stopnet = separate_stopnet + self.query_dim = 256 + # memory -> |Prenet| -> processed_memory + prenet_dim = frame_channels * self.memory_size if self.use_memory_queue else frame_channels + self.prenet = Prenet(prenet_dim, prenet_type, prenet_dropout, out_features=[256, 128]) + # processed_inputs, processed_memory -> |Attention| -> Attention, attention, RNN_State + # attention_rnn generates queries for the attention mechanism + self.attention_rnn = nn.GRUCell(in_channels + 128, self.query_dim) + self.attention = init_attn( + attn_type=attn_type, + query_dim=self.query_dim, + embedding_dim=in_channels, + attention_dim=128, + location_attention=location_attn, + attention_location_n_filters=32, + attention_location_kernel_size=31, + windowing=attn_windowing, + norm=attn_norm, + forward_attn=forward_attn, + trans_agent=trans_agent, + forward_attn_mask=forward_attn_mask, + attn_K=attn_K, + ) + # (processed_memory | attention context) -> |Linear| -> decoder_RNN_input + self.project_to_decoder_in = nn.Linear(256 + in_channels, 256) + # decoder_RNN_input -> |RNN| -> RNN_state + self.decoder_rnns = nn.ModuleList([nn.GRUCell(256, 256) for _ in range(2)]) + # RNN_state -> |Linear| -> mel_spec + self.proj_to_mel = nn.Linear(256, frame_channels * self.r_init) + # learn init values instead of zero init. + self.stopnet = StopNet(256 + frame_channels * self.r_init) + + def set_r(self, new_r): + self.r = new_r + + def _reshape_memory(self, memory): + """ + Reshape the spectrograms for given 'r' + """ + # Grouping multiple frames if necessary + if memory.size(-1) == self.frame_channels: + memory = memory.view(memory.shape[0], memory.size(1) // self.r, -1) + # Time first (T_decoder, B, frame_channels) + memory = memory.transpose(0, 1) + return memory + + def _init_states(self, inputs): + """ + Initialization of decoder states + """ + B = inputs.size(0) + # go frame as zeros matrix + if self.use_memory_queue: + self.memory_input = torch.zeros(1, device=inputs.device).repeat(B, self.frame_channels * self.memory_size) + else: + self.memory_input = torch.zeros(1, device=inputs.device).repeat(B, self.frame_channels) + # decoder states + self.attention_rnn_hidden = torch.zeros(1, device=inputs.device).repeat(B, 256) + self.decoder_rnn_hiddens = [ + torch.zeros(1, device=inputs.device).repeat(B, 256) for idx in range(len(self.decoder_rnns)) + ] + self.context_vec = inputs.data.new(B, self.in_channels).zero_() + # cache attention inputs + self.processed_inputs = self.attention.preprocess_inputs(inputs) + + def _parse_outputs(self, outputs, attentions, stop_tokens): + # Back to batch first + attentions = torch.stack(attentions).transpose(0, 1) + stop_tokens = torch.stack(stop_tokens).transpose(0, 1) + outputs = torch.stack(outputs).transpose(0, 1).contiguous() + outputs = outputs.view(outputs.size(0), -1, self.frame_channels) + outputs = outputs.transpose(1, 2) + return outputs, attentions, stop_tokens + + def decode(self, inputs, mask=None): + # Prenet + processed_memory = self.prenet(self.memory_input) + # Attention RNN + self.attention_rnn_hidden = self.attention_rnn( + torch.cat((processed_memory, self.context_vec), -1), self.attention_rnn_hidden + ) + self.context_vec = self.attention(self.attention_rnn_hidden, inputs, self.processed_inputs, mask) + # Concat RNN output and attention context vector + decoder_input = self.project_to_decoder_in(torch.cat((self.attention_rnn_hidden, self.context_vec), -1)) + + # Pass through the decoder RNNs + for idx, decoder_rnn in enumerate(self.decoder_rnns): + self.decoder_rnn_hiddens[idx] = decoder_rnn(decoder_input, self.decoder_rnn_hiddens[idx]) + # Residual connection + decoder_input = self.decoder_rnn_hiddens[idx] + decoder_input + decoder_output = decoder_input + + # predict mel vectors from decoder vectors + output = self.proj_to_mel(decoder_output) + # output = torch.sigmoid(output) + # predict stop token + stopnet_input = torch.cat([decoder_output, output], -1) + if self.separate_stopnet: + stop_token = self.stopnet(stopnet_input.detach()) + else: + stop_token = self.stopnet(stopnet_input) + output = output[:, : self.r * self.frame_channels] + return output, stop_token, self.attention.attention_weights + + def _update_memory_input(self, new_memory): + if self.use_memory_queue: + if self.memory_size > self.r: + # memory queue size is larger than number of frames per decoder iter + self.memory_input = torch.cat( + [new_memory, self.memory_input[:, : (self.memory_size - self.r) * self.frame_channels].clone()], + dim=-1, + ) + else: + # memory queue size smaller than number of frames per decoder iter + self.memory_input = new_memory[:, : self.memory_size * self.frame_channels] + else: + # use only the last frame prediction + # assert new_memory.shape[-1] == self.r * self.frame_channels + self.memory_input = new_memory[:, self.frame_channels * (self.r - 1) :] + + def forward(self, inputs, memory, mask): + """ + Args: + inputs: Encoder outputs. + memory: Decoder memory (autoregression. If None (at eval-time), + decoder outputs are used as decoder inputs. If None, it uses the last + output as the input. + mask: Attention mask for sequence padding. + + Shapes: + - inputs: (B, T, D_out_enc) + - memory: (B, T_mel, D_mel) + """ + # Run greedy decoding if memory is None + memory = self._reshape_memory(memory) + outputs = [] + attentions = [] + stop_tokens = [] + t = 0 + self._init_states(inputs) + self.attention.init_states(inputs) + while len(outputs) < memory.size(0): + if t > 0: + new_memory = memory[t - 1] + self._update_memory_input(new_memory) + + output, stop_token, attention = self.decode(inputs, mask) + outputs += [output] + attentions += [attention] + stop_tokens += [stop_token.squeeze(1)] + t += 1 + return self._parse_outputs(outputs, attentions, stop_tokens) + + def inference(self, inputs): + """ + Args: + inputs: encoder outputs. + Shapes: + - inputs: batch x time x encoder_out_dim + """ + outputs = [] + attentions = [] + stop_tokens = [] + t = 0 + self._init_states(inputs) + self.attention.init_states(inputs) + while True: + if t > 0: + new_memory = outputs[-1] + self._update_memory_input(new_memory) + output, stop_token, attention = self.decode(inputs, None) + stop_token = torch.sigmoid(stop_token.data) + outputs += [output] + attentions += [attention] + stop_tokens += [stop_token] + t += 1 + if t > inputs.shape[1] / 4 and (stop_token > 0.6 or attention[:, -1].item() > 0.6): + break + if t > self.max_decoder_steps: + print(" | > Decoder stopped with 'max_decoder_steps") + break + return self._parse_outputs(outputs, attentions, stop_tokens) + + +class StopNet(nn.Module): + r"""Stopnet signalling decoder to stop inference. + Args: + in_features (int): feature dimension of input. + """ + + def __init__(self, in_features): + super().__init__() + self.dropout = nn.Dropout(0.1) + self.linear = nn.Linear(in_features, 1) + torch.nn.init.xavier_uniform_(self.linear.weight, gain=torch.nn.init.calculate_gain("linear")) + + def forward(self, inputs): + outputs = self.dropout(inputs) + outputs = self.linear(outputs) + return outputs diff --git a/Indic-TTS/TTS/TTS/tts/layers/tacotron/tacotron2.py b/Indic-TTS/TTS/TTS/tts/layers/tacotron/tacotron2.py new file mode 100644 index 0000000000000000000000000000000000000000..c79b70997249efc94cbac630bcc7d6c571f5743e --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/tacotron/tacotron2.py @@ -0,0 +1,414 @@ +import torch +from torch import nn +from torch.nn import functional as F + +from .attentions import init_attn +from .common_layers import Linear, Prenet + + +# pylint: disable=no-value-for-parameter +# pylint: disable=unexpected-keyword-arg +class ConvBNBlock(nn.Module): + r"""Convolutions with Batch Normalization and non-linear activation. + + Args: + in_channels (int): number of input channels. + out_channels (int): number of output channels. + kernel_size (int): convolution kernel size. + activation (str): 'relu', 'tanh', None (linear). + + Shapes: + - input: (B, C_in, T) + - output: (B, C_out, T) + """ + + def __init__(self, in_channels, out_channels, kernel_size, activation=None): + super().__init__() + assert (kernel_size - 1) % 2 == 0 + padding = (kernel_size - 1) // 2 + self.convolution1d = nn.Conv1d(in_channels, out_channels, kernel_size, padding=padding) + self.batch_normalization = nn.BatchNorm1d(out_channels, momentum=0.1, eps=1e-5) + self.dropout = nn.Dropout(p=0.5) + if activation == "relu": + self.activation = nn.ReLU() + elif activation == "tanh": + self.activation = nn.Tanh() + else: + self.activation = nn.Identity() + + def forward(self, x): + o = self.convolution1d(x) + o = self.batch_normalization(o) + o = self.activation(o) + o = self.dropout(o) + return o + + +class Postnet(nn.Module): + r"""Tacotron2 Postnet + + Args: + in_out_channels (int): number of output channels. + + Shapes: + - input: (B, C_in, T) + - output: (B, C_in, T) + """ + + def __init__(self, in_out_channels, num_convs=5): + super().__init__() + self.convolutions = nn.ModuleList() + self.convolutions.append(ConvBNBlock(in_out_channels, 512, kernel_size=5, activation="tanh")) + for _ in range(1, num_convs - 1): + self.convolutions.append(ConvBNBlock(512, 512, kernel_size=5, activation="tanh")) + self.convolutions.append(ConvBNBlock(512, in_out_channels, kernel_size=5, activation=None)) + + def forward(self, x): + o = x + for layer in self.convolutions: + o = layer(o) + return o + + +class Encoder(nn.Module): + r"""Tacotron2 Encoder + + Args: + in_out_channels (int): number of input and output channels. + + Shapes: + - input: (B, C_in, T) + - output: (B, C_in, T) + """ + + def __init__(self, in_out_channels=512): + super().__init__() + self.convolutions = nn.ModuleList() + for _ in range(3): + self.convolutions.append(ConvBNBlock(in_out_channels, in_out_channels, 5, "relu")) + self.lstm = nn.LSTM( + in_out_channels, int(in_out_channels / 2), num_layers=1, batch_first=True, bias=True, bidirectional=True + ) + self.rnn_state = None + + def forward(self, x, input_lengths): + o = x + for layer in self.convolutions: + o = layer(o) + o = o.transpose(1, 2) + o = nn.utils.rnn.pack_padded_sequence(o, input_lengths.cpu(), batch_first=True) + self.lstm.flatten_parameters() + o, _ = self.lstm(o) + o, _ = nn.utils.rnn.pad_packed_sequence(o, batch_first=True) + return o + + def inference(self, x): + o = x + for layer in self.convolutions: + o = layer(o) + o = o.transpose(1, 2) + # self.lstm.flatten_parameters() + o, _ = self.lstm(o) + return o + + +# adapted from https://github.com/NVIDIA/tacotron2/ +class Decoder(nn.Module): + """Tacotron2 decoder. We don't use Zoneout but Dropout between RNN layers. + + Args: + in_channels (int): number of input channels. + frame_channels (int): number of feature frame channels. + r (int): number of outputs per time step (reduction rate). + memory_size (int): size of the past window. if <= 0 memory_size = r + attn_type (string): type of attention used in decoder. + attn_win (bool): if true, define an attention window centered to maximum + attention response. It provides more robust attention alignment especially + at interence time. + attn_norm (string): attention normalization function. 'sigmoid' or 'softmax'. + prenet_type (string): 'original' or 'bn'. + prenet_dropout (float): prenet dropout rate. + forward_attn (bool): if true, use forward attention method. https://arxiv.org/abs/1807.06736 + trans_agent (bool): if true, use transition agent. https://arxiv.org/abs/1807.06736 + forward_attn_mask (bool): if true, mask attention values smaller than a threshold. + location_attn (bool): if true, use location sensitive attention. + attn_K (int): number of attention heads for GravesAttention. + separate_stopnet (bool): if true, detach stopnet input to prevent gradient flow. + max_decoder_steps (int): Maximum number of steps allowed for the decoder. Defaults to 10000. + """ + + # Pylint gets confused by PyTorch conventions here + # pylint: disable=attribute-defined-outside-init + def __init__( + self, + in_channels, + frame_channels, + r, + attn_type, + attn_win, + attn_norm, + prenet_type, + prenet_dropout, + forward_attn, + trans_agent, + forward_attn_mask, + location_attn, + attn_K, + separate_stopnet, + max_decoder_steps, + ): + super().__init__() + self.frame_channels = frame_channels + self.r_init = r + self.r = r + self.encoder_embedding_dim = in_channels + self.separate_stopnet = separate_stopnet + self.max_decoder_steps = max_decoder_steps + self.stop_threshold = 0.5 + + # model dimensions + self.query_dim = 1024 + self.decoder_rnn_dim = 1024 + self.prenet_dim = 256 + self.attn_dim = 128 + self.p_attention_dropout = 0.1 + self.p_decoder_dropout = 0.1 + + # memory -> |Prenet| -> processed_memory + prenet_dim = self.frame_channels + self.prenet = Prenet( + prenet_dim, prenet_type, prenet_dropout, out_features=[self.prenet_dim, self.prenet_dim], bias=False + ) + + self.attention_rnn = nn.LSTMCell(self.prenet_dim + in_channels, self.query_dim, bias=True) + + self.attention = init_attn( + attn_type=attn_type, + query_dim=self.query_dim, + embedding_dim=in_channels, + attention_dim=128, + location_attention=location_attn, + attention_location_n_filters=32, + attention_location_kernel_size=31, + windowing=attn_win, + norm=attn_norm, + forward_attn=forward_attn, + trans_agent=trans_agent, + forward_attn_mask=forward_attn_mask, + attn_K=attn_K, + ) + + self.decoder_rnn = nn.LSTMCell(self.query_dim + in_channels, self.decoder_rnn_dim, bias=True) + + self.linear_projection = Linear(self.decoder_rnn_dim + in_channels, self.frame_channels * self.r_init) + + self.stopnet = nn.Sequential( + nn.Dropout(0.1), + Linear(self.decoder_rnn_dim + self.frame_channels * self.r_init, 1, bias=True, init_gain="sigmoid"), + ) + self.memory_truncated = None + + def set_r(self, new_r): + self.r = new_r + + def get_go_frame(self, inputs): + B = inputs.size(0) + memory = torch.zeros(1, device=inputs.device).repeat(B, self.frame_channels * self.r) + return memory + + def _init_states(self, inputs, mask, keep_states=False): + B = inputs.size(0) + # T = inputs.size(1) + if not keep_states: + self.query = torch.zeros(1, device=inputs.device).repeat(B, self.query_dim) + self.attention_rnn_cell_state = torch.zeros(1, device=inputs.device).repeat(B, self.query_dim) + self.decoder_hidden = torch.zeros(1, device=inputs.device).repeat(B, self.decoder_rnn_dim) + self.decoder_cell = torch.zeros(1, device=inputs.device).repeat(B, self.decoder_rnn_dim) + self.context = torch.zeros(1, device=inputs.device).repeat(B, self.encoder_embedding_dim) + self.inputs = inputs + self.processed_inputs = self.attention.preprocess_inputs(inputs) + self.mask = mask + + def _reshape_memory(self, memory): + """ + Reshape the spectrograms for given 'r' + """ + # Grouping multiple frames if necessary + if memory.size(-1) == self.frame_channels: + memory = memory.view(memory.shape[0], memory.size(1) // self.r, -1) + # Time first (T_decoder, B, frame_channels) + memory = memory.transpose(0, 1) + return memory + + def _parse_outputs(self, outputs, stop_tokens, alignments): + alignments = torch.stack(alignments).transpose(0, 1) + stop_tokens = torch.stack(stop_tokens).transpose(0, 1) + outputs = torch.stack(outputs).transpose(0, 1).contiguous() + outputs = outputs.view(outputs.size(0), -1, self.frame_channels) + outputs = outputs.transpose(1, 2) + return outputs, stop_tokens, alignments + + def _update_memory(self, memory): + if len(memory.shape) == 2: + return memory[:, self.frame_channels * (self.r - 1) :] + return memory[:, :, self.frame_channels * (self.r - 1) :] + + def decode(self, memory): + """ + shapes: + - memory: B x r * self.frame_channels + """ + # self.context: B x D_en + # query_input: B x D_en + (r * self.frame_channels) + query_input = torch.cat((memory, self.context), -1) + # self.query and self.attention_rnn_cell_state : B x D_attn_rnn + self.query, self.attention_rnn_cell_state = self.attention_rnn( + query_input, (self.query, self.attention_rnn_cell_state) + ) + self.query = F.dropout(self.query, self.p_attention_dropout, self.training) + self.attention_rnn_cell_state = F.dropout( + self.attention_rnn_cell_state, self.p_attention_dropout, self.training + ) + # B x D_en + self.context = self.attention(self.query, self.inputs, self.processed_inputs, self.mask) + # B x (D_en + D_attn_rnn) + decoder_rnn_input = torch.cat((self.query, self.context), -1) + # self.decoder_hidden and self.decoder_cell: B x D_decoder_rnn + self.decoder_hidden, self.decoder_cell = self.decoder_rnn( + decoder_rnn_input, (self.decoder_hidden, self.decoder_cell) + ) + self.decoder_hidden = F.dropout(self.decoder_hidden, self.p_decoder_dropout, self.training) + # B x (D_decoder_rnn + D_en) + decoder_hidden_context = torch.cat((self.decoder_hidden, self.context), dim=1) + # B x (self.r * self.frame_channels) + decoder_output = self.linear_projection(decoder_hidden_context) + # B x (D_decoder_rnn + (self.r * self.frame_channels)) + stopnet_input = torch.cat((self.decoder_hidden, decoder_output), dim=1) + if self.separate_stopnet: + stop_token = self.stopnet(stopnet_input.detach()) + else: + stop_token = self.stopnet(stopnet_input) + # select outputs for the reduction rate self.r + decoder_output = decoder_output[:, : self.r * self.frame_channels] + return decoder_output, self.attention.attention_weights, stop_token + + def forward(self, inputs, memories, mask): + r"""Train Decoder with teacher forcing. + Args: + inputs: Encoder outputs. + memories: Feature frames for teacher-forcing. + mask: Attention mask for sequence padding. + + Shapes: + - inputs: (B, T, D_out_enc) + - memory: (B, T_mel, D_mel) + - outputs: (B, T_mel, D_mel) + - alignments: (B, T_in, T_out) + - stop_tokens: (B, T_out) + """ + memory = self.get_go_frame(inputs).unsqueeze(0) + memories = self._reshape_memory(memories) + memories = torch.cat((memory, memories), dim=0) + memories = self._update_memory(memories) + memories = self.prenet(memories) + + self._init_states(inputs, mask=mask) + self.attention.init_states(inputs) + + outputs, stop_tokens, alignments = [], [], [] + while len(outputs) < memories.size(0) - 1: + memory = memories[len(outputs)] + decoder_output, attention_weights, stop_token = self.decode(memory) + outputs += [decoder_output.squeeze(1)] + stop_tokens += [stop_token.squeeze(1)] + alignments += [attention_weights] + + outputs, stop_tokens, alignments = self._parse_outputs(outputs, stop_tokens, alignments) + return outputs, alignments, stop_tokens + + def inference(self, inputs): + r"""Decoder inference without teacher forcing and use + Stopnet to stop decoder. + Args: + inputs: Encoder outputs. + + Shapes: + - inputs: (B, T, D_out_enc) + - outputs: (B, T_mel, D_mel) + - alignments: (B, T_in, T_out) + - stop_tokens: (B, T_out) + """ + memory = self.get_go_frame(inputs) + memory = self._update_memory(memory) + + self._init_states(inputs, mask=None) + self.attention.init_states(inputs) + + outputs, stop_tokens, alignments, t = [], [], [], 0 + while True: + memory = self.prenet(memory) + decoder_output, alignment, stop_token = self.decode(memory) + stop_token = torch.sigmoid(stop_token.data) + outputs += [decoder_output.squeeze(1)] + stop_tokens += [stop_token] + alignments += [alignment] + + if stop_token > self.stop_threshold and t > inputs.shape[0] // 2: + break + if len(outputs) == self.max_decoder_steps: + print(f" > Decoder stopped with `max_decoder_steps` {self.max_decoder_steps}") + break + + memory = self._update_memory(decoder_output) + t += 1 + + outputs, stop_tokens, alignments = self._parse_outputs(outputs, stop_tokens, alignments) + + return outputs, alignments, stop_tokens + + def inference_truncated(self, inputs): + """ + Preserve decoder states for continuous inference + """ + if self.memory_truncated is None: + self.memory_truncated = self.get_go_frame(inputs) + self._init_states(inputs, mask=None, keep_states=False) + else: + self._init_states(inputs, mask=None, keep_states=True) + + self.attention.init_states(inputs) + outputs, stop_tokens, alignments, t = [], [], [], 0 + while True: + memory = self.prenet(self.memory_truncated) + decoder_output, alignment, stop_token = self.decode(memory) + stop_token = torch.sigmoid(stop_token.data) + outputs += [decoder_output.squeeze(1)] + stop_tokens += [stop_token] + alignments += [alignment] + + if stop_token > 0.7: + break + if len(outputs) == self.max_decoder_steps: + print(" | > Decoder stopped with 'max_decoder_steps") + break + + self.memory_truncated = decoder_output + t += 1 + + outputs, stop_tokens, alignments = self._parse_outputs(outputs, stop_tokens, alignments) + + return outputs, alignments, stop_tokens + + def inference_step(self, inputs, t, memory=None): + """ + For debug purposes + """ + if t == 0: + memory = self.get_go_frame(inputs) + self._init_states(inputs, mask=None) + + memory = self.prenet(memory) + decoder_output, stop_token, alignment = self.decode(memory) + stop_token = torch.sigmoid(stop_token.data) + memory = decoder_output + return decoder_output, stop_token, alignment diff --git a/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/discriminator.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/discriminator.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed5758810d4dbd1b2b105d656d49f4c3fea833b8 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/discriminator.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/networks.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/networks.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fb420bdcfd79d310747f7ca2071a8b65281a686f Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/networks.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/stochastic_duration_predictor.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/stochastic_duration_predictor.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..00d76c9ac50156d33868eb0a737c08e4689f8fea Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/stochastic_duration_predictor.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/transforms.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/transforms.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d47a19e3cfbd5c40ef13ec6a5f1578ead20f443 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/layers/vits/__pycache__/transforms.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/layers/vits/discriminator.py b/Indic-TTS/TTS/TTS/tts/layers/vits/discriminator.py new file mode 100644 index 0000000000000000000000000000000000000000..148f283c9010e522c49ad2595860ab859ba6aa48 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/vits/discriminator.py @@ -0,0 +1,89 @@ +import torch +from torch import nn +from torch.nn.modules.conv import Conv1d + +from TTS.vocoder.models.hifigan_discriminator import DiscriminatorP, MultiPeriodDiscriminator + + +class DiscriminatorS(torch.nn.Module): + """HiFiGAN Scale Discriminator. Channel sizes are different from the original HiFiGAN. + + Args: + use_spectral_norm (bool): if `True` swith to spectral norm instead of weight norm. + """ + + def __init__(self, use_spectral_norm=False): + super().__init__() + norm_f = nn.utils.spectral_norm if use_spectral_norm else nn.utils.weight_norm + self.convs = nn.ModuleList( + [ + norm_f(Conv1d(1, 16, 15, 1, padding=7)), + norm_f(Conv1d(16, 64, 41, 4, groups=4, padding=20)), + norm_f(Conv1d(64, 256, 41, 4, groups=16, padding=20)), + norm_f(Conv1d(256, 1024, 41, 4, groups=64, padding=20)), + norm_f(Conv1d(1024, 1024, 41, 4, groups=256, padding=20)), + norm_f(Conv1d(1024, 1024, 5, 1, padding=2)), + ] + ) + self.conv_post = norm_f(Conv1d(1024, 1, 3, 1, padding=1)) + + def forward(self, x): + """ + Args: + x (Tensor): input waveform. + + Returns: + Tensor: discriminator scores. + List[Tensor]: list of features from the convolutiona layers. + """ + feat = [] + for l in self.convs: + x = l(x) + x = torch.nn.functional.leaky_relu(x, 0.1) + feat.append(x) + x = self.conv_post(x) + feat.append(x) + x = torch.flatten(x, 1, -1) + return x, feat + + +class VitsDiscriminator(nn.Module): + """VITS discriminator wrapping one Scale Discriminator and a stack of Period Discriminator. + + :: + waveform -> ScaleDiscriminator() -> scores_sd, feats_sd --> append() -> scores, feats + |--> MultiPeriodDiscriminator() -> scores_mpd, feats_mpd ^ + + Args: + use_spectral_norm (bool): if `True` swith to spectral norm instead of weight norm. + """ + + def __init__(self, periods=(2, 3, 5, 7, 11), use_spectral_norm=False): + super().__init__() + self.nets = nn.ModuleList() + self.nets.append(DiscriminatorS(use_spectral_norm=use_spectral_norm)) + self.nets.extend([DiscriminatorP(i, use_spectral_norm=use_spectral_norm) for i in periods]) + + def forward(self, x, x_hat=None): + """ + Args: + x (Tensor): ground truth waveform. + x_hat (Tensor): predicted waveform. + + Returns: + List[Tensor]: discriminator scores. + List[List[Tensor]]: list of list of features from each layers of each discriminator. + """ + x_scores = [] + x_hat_scores = [] if x_hat is not None else None + x_feats = [] + x_hat_feats = [] if x_hat is not None else None + for net in self.nets: + x_score, x_feat = net(x) + x_scores.append(x_score) + x_feats.append(x_feat) + if x_hat is not None: + x_hat_score, x_hat_feat = net(x_hat) + x_hat_scores.append(x_hat_score) + x_hat_feats.append(x_hat_feat) + return x_scores, x_feats, x_hat_scores, x_hat_feats diff --git a/Indic-TTS/TTS/TTS/tts/layers/vits/networks.py b/Indic-TTS/TTS/TTS/tts/layers/vits/networks.py new file mode 100644 index 0000000000000000000000000000000000000000..f97b584fe6ed311127a8c01a089b159946219cb2 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/vits/networks.py @@ -0,0 +1,288 @@ +import math + +import torch +from torch import nn + +from TTS.tts.layers.glow_tts.glow import WN +from TTS.tts.layers.glow_tts.transformer import RelativePositionTransformer +from TTS.tts.utils.helpers import sequence_mask + +LRELU_SLOPE = 0.1 + + +def convert_pad_shape(pad_shape): + l = pad_shape[::-1] + pad_shape = [item for sublist in l for item in sublist] + return pad_shape + + +def init_weights(m, mean=0.0, std=0.01): + classname = m.__class__.__name__ + if classname.find("Conv") != -1: + m.weight.data.normal_(mean, std) + + +def get_padding(kernel_size, dilation=1): + return int((kernel_size * dilation - dilation) / 2) + + +class TextEncoder(nn.Module): + def __init__( + self, + n_vocab: int, + out_channels: int, + hidden_channels: int, + hidden_channels_ffn: int, + num_heads: int, + num_layers: int, + kernel_size: int, + dropout_p: float, + language_emb_dim: int = None, + ): + """Text Encoder for VITS model. + + Args: + n_vocab (int): Number of characters for the embedding layer. + out_channels (int): Number of channels for the output. + hidden_channels (int): Number of channels for the hidden layers. + hidden_channels_ffn (int): Number of channels for the convolutional layers. + num_heads (int): Number of attention heads for the Transformer layers. + num_layers (int): Number of Transformer layers. + kernel_size (int): Kernel size for the FFN layers in Transformer network. + dropout_p (float): Dropout rate for the Transformer layers. + """ + super().__init__() + self.out_channels = out_channels + self.hidden_channels = hidden_channels + + self.emb = nn.Embedding(n_vocab, hidden_channels) + + nn.init.normal_(self.emb.weight, 0.0, hidden_channels**-0.5) + + if language_emb_dim: + hidden_channels += language_emb_dim + + self.encoder = RelativePositionTransformer( + in_channels=hidden_channels, + out_channels=hidden_channels, + hidden_channels=hidden_channels, + hidden_channels_ffn=hidden_channels_ffn, + num_heads=num_heads, + num_layers=num_layers, + kernel_size=kernel_size, + dropout_p=dropout_p, + layer_norm_type="2", + rel_attn_window_size=4, + ) + + self.proj = nn.Conv1d(hidden_channels, out_channels * 2, 1) + + def forward(self, x, x_lengths, lang_emb=None): + """ + Shapes: + - x: :math:`[B, T]` + - x_length: :math:`[B]` + """ + assert x.shape[0] == x_lengths.shape[0] + x = self.emb(x) * math.sqrt(self.hidden_channels) # [b, t, h] + + # concat the lang emb in embedding chars + if lang_emb is not None: + x = torch.cat((x, lang_emb.transpose(2, 1).expand(x.size(0), x.size(1), -1)), dim=-1) + + x = torch.transpose(x, 1, -1) # [b, h, t] + x_mask = torch.unsqueeze(sequence_mask(x_lengths, x.size(2)), 1).to(x.dtype) # [b, 1, t] + + x = self.encoder(x * x_mask, x_mask) + stats = self.proj(x) * x_mask + + m, logs = torch.split(stats, self.out_channels, dim=1) + return x, m, logs, x_mask + + +class ResidualCouplingBlock(nn.Module): + def __init__( + self, + channels, + hidden_channels, + kernel_size, + dilation_rate, + num_layers, + dropout_p=0, + cond_channels=0, + mean_only=False, + ): + assert channels % 2 == 0, "channels should be divisible by 2" + super().__init__() + self.half_channels = channels // 2 + self.mean_only = mean_only + # input layer + self.pre = nn.Conv1d(self.half_channels, hidden_channels, 1) + # coupling layers + self.enc = WN( + hidden_channels, + hidden_channels, + kernel_size, + dilation_rate, + num_layers, + dropout_p=dropout_p, + c_in_channels=cond_channels, + ) + # output layer + # Initializing last layer to 0 makes the affine coupling layers + # do nothing at first. This helps with training stability + self.post = nn.Conv1d(hidden_channels, self.half_channels * (2 - mean_only), 1) + self.post.weight.data.zero_() + self.post.bias.data.zero_() + + def forward(self, x, x_mask, g=None, reverse=False): + """ + Note: + Set `reverse` to True for inference. + + Shapes: + - x: :math:`[B, C, T]` + - x_mask: :math:`[B, 1, T]` + - g: :math:`[B, C, 1]` + """ + x0, x1 = torch.split(x, [self.half_channels] * 2, 1) + h = self.pre(x0) * x_mask + h = self.enc(h, x_mask, g=g) + stats = self.post(h) * x_mask + if not self.mean_only: + m, log_scale = torch.split(stats, [self.half_channels] * 2, 1) + else: + m = stats + log_scale = torch.zeros_like(m) + + if not reverse: + x1 = m + x1 * torch.exp(log_scale) * x_mask + x = torch.cat([x0, x1], 1) + logdet = torch.sum(log_scale, [1, 2]) + return x, logdet + else: + x1 = (x1 - m) * torch.exp(-log_scale) * x_mask + x = torch.cat([x0, x1], 1) + return x + + +class ResidualCouplingBlocks(nn.Module): + def __init__( + self, + channels: int, + hidden_channels: int, + kernel_size: int, + dilation_rate: int, + num_layers: int, + num_flows=4, + cond_channels=0, + ): + """Redisual Coupling blocks for VITS flow layers. + + Args: + channels (int): Number of input and output tensor channels. + hidden_channels (int): Number of hidden network channels. + kernel_size (int): Kernel size of the WaveNet layers. + dilation_rate (int): Dilation rate of the WaveNet layers. + num_layers (int): Number of the WaveNet layers. + num_flows (int, optional): Number of Residual Coupling blocks. Defaults to 4. + cond_channels (int, optional): Number of channels of the conditioning tensor. Defaults to 0. + """ + super().__init__() + self.channels = channels + self.hidden_channels = hidden_channels + self.kernel_size = kernel_size + self.dilation_rate = dilation_rate + self.num_layers = num_layers + self.num_flows = num_flows + self.cond_channels = cond_channels + + self.flows = nn.ModuleList() + for _ in range(num_flows): + self.flows.append( + ResidualCouplingBlock( + channels, + hidden_channels, + kernel_size, + dilation_rate, + num_layers, + cond_channels=cond_channels, + mean_only=True, + ) + ) + + def forward(self, x, x_mask, g=None, reverse=False): + """ + Note: + Set `reverse` to True for inference. + + Shapes: + - x: :math:`[B, C, T]` + - x_mask: :math:`[B, 1, T]` + - g: :math:`[B, C, 1]` + """ + if not reverse: + for flow in self.flows: + x, _ = flow(x, x_mask, g=g, reverse=reverse) + x = torch.flip(x, [1]) + else: + for flow in reversed(self.flows): + x = torch.flip(x, [1]) + x = flow(x, x_mask, g=g, reverse=reverse) + return x + + +class PosteriorEncoder(nn.Module): + def __init__( + self, + in_channels: int, + out_channels: int, + hidden_channels: int, + kernel_size: int, + dilation_rate: int, + num_layers: int, + cond_channels=0, + ): + """Posterior Encoder of VITS model. + + :: + x -> conv1x1() -> WaveNet() (non-causal) -> conv1x1() -> split() -> [m, s] -> sample(m, s) -> z + + Args: + in_channels (int): Number of input tensor channels. + out_channels (int): Number of output tensor channels. + hidden_channels (int): Number of hidden channels. + kernel_size (int): Kernel size of the WaveNet convolution layers. + dilation_rate (int): Dilation rate of the WaveNet layers. + num_layers (int): Number of the WaveNet layers. + cond_channels (int, optional): Number of conditioning tensor channels. Defaults to 0. + """ + super().__init__() + self.in_channels = in_channels + self.out_channels = out_channels + self.hidden_channels = hidden_channels + self.kernel_size = kernel_size + self.dilation_rate = dilation_rate + self.num_layers = num_layers + self.cond_channels = cond_channels + + self.pre = nn.Conv1d(in_channels, hidden_channels, 1) + self.enc = WN( + hidden_channels, hidden_channels, kernel_size, dilation_rate, num_layers, c_in_channels=cond_channels + ) + self.proj = nn.Conv1d(hidden_channels, out_channels * 2, 1) + + def forward(self, x, x_lengths, g=None): + """ + Shapes: + - x: :math:`[B, C, T]` + - x_lengths: :math:`[B, 1]` + - g: :math:`[B, C, 1]` + """ + x_mask = torch.unsqueeze(sequence_mask(x_lengths, x.size(2)), 1).to(x.dtype) + x = self.pre(x) * x_mask + x = self.enc(x, x_mask, g=g) + stats = self.proj(x) * x_mask + mean, log_scale = torch.split(stats, self.out_channels, dim=1) + z = (mean + torch.randn_like(mean) * torch.exp(log_scale)) * x_mask + return z, mean, log_scale, x_mask diff --git a/Indic-TTS/TTS/TTS/tts/layers/vits/stochastic_duration_predictor.py b/Indic-TTS/TTS/TTS/tts/layers/vits/stochastic_duration_predictor.py new file mode 100644 index 0000000000000000000000000000000000000000..738ee341e649dfaf62059735c2620cb6ae1a2b1f --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/vits/stochastic_duration_predictor.py @@ -0,0 +1,294 @@ +import math + +import torch +from torch import nn +from torch.nn import functional as F + +from TTS.tts.layers.generic.normalization import LayerNorm2 +from TTS.tts.layers.vits.transforms import piecewise_rational_quadratic_transform + + +class DilatedDepthSeparableConv(nn.Module): + def __init__(self, channels, kernel_size, num_layers, dropout_p=0.0) -> torch.tensor: + """Dilated Depth-wise Separable Convolution module. + + :: + x |-> DDSConv(x) -> LayerNorm(x) -> GeLU(x) -> Conv1x1(x) -> LayerNorm(x) -> GeLU(x) -> + -> o + |-------------------------------------------------------------------------------------^ + + Args: + channels ([type]): [description] + kernel_size ([type]): [description] + num_layers ([type]): [description] + dropout_p (float, optional): [description]. Defaults to 0.0. + + Returns: + torch.tensor: Network output masked by the input sequence mask. + """ + super().__init__() + self.num_layers = num_layers + + self.convs_sep = nn.ModuleList() + self.convs_1x1 = nn.ModuleList() + self.norms_1 = nn.ModuleList() + self.norms_2 = nn.ModuleList() + for i in range(num_layers): + dilation = kernel_size**i + padding = (kernel_size * dilation - dilation) // 2 + self.convs_sep.append( + nn.Conv1d(channels, channels, kernel_size, groups=channels, dilation=dilation, padding=padding) + ) + self.convs_1x1.append(nn.Conv1d(channels, channels, 1)) + self.norms_1.append(LayerNorm2(channels)) + self.norms_2.append(LayerNorm2(channels)) + self.dropout = nn.Dropout(dropout_p) + + def forward(self, x, x_mask, g=None): + """ + Shapes: + - x: :math:`[B, C, T]` + - x_mask: :math:`[B, 1, T]` + """ + if g is not None: + x = x + g + for i in range(self.num_layers): + y = self.convs_sep[i](x * x_mask) + y = self.norms_1[i](y) + y = F.gelu(y) + y = self.convs_1x1[i](y) + y = self.norms_2[i](y) + y = F.gelu(y) + y = self.dropout(y) + x = x + y + return x * x_mask + + +class ElementwiseAffine(nn.Module): + """Element-wise affine transform like no-population stats BatchNorm alternative. + + Args: + channels (int): Number of input tensor channels. + """ + + def __init__(self, channels): + super().__init__() + self.translation = nn.Parameter(torch.zeros(channels, 1)) + self.log_scale = nn.Parameter(torch.zeros(channels, 1)) + + def forward(self, x, x_mask, reverse=False, **kwargs): # pylint: disable=unused-argument + if not reverse: + y = (x * torch.exp(self.log_scale) + self.translation) * x_mask + logdet = torch.sum(self.log_scale * x_mask, [1, 2]) + return y, logdet + x = (x - self.translation) * torch.exp(-self.log_scale) * x_mask + return x + + +class ConvFlow(nn.Module): + """Dilated depth separable convolutional based spline flow. + + Args: + in_channels (int): Number of input tensor channels. + hidden_channels (int): Number of in network channels. + kernel_size (int): Convolutional kernel size. + num_layers (int): Number of convolutional layers. + num_bins (int, optional): Number of spline bins. Defaults to 10. + tail_bound (float, optional): Tail bound for PRQT. Defaults to 5.0. + """ + + def __init__( + self, + in_channels: int, + hidden_channels: int, + kernel_size: int, + num_layers: int, + num_bins=10, + tail_bound=5.0, + ): + super().__init__() + self.num_bins = num_bins + self.tail_bound = tail_bound + self.hidden_channels = hidden_channels + self.half_channels = in_channels // 2 + + self.pre = nn.Conv1d(self.half_channels, hidden_channels, 1) + self.convs = DilatedDepthSeparableConv(hidden_channels, kernel_size, num_layers, dropout_p=0.0) + self.proj = nn.Conv1d(hidden_channels, self.half_channels * (num_bins * 3 - 1), 1) + self.proj.weight.data.zero_() + self.proj.bias.data.zero_() + + def forward(self, x, x_mask, g=None, reverse=False): + x0, x1 = torch.split(x, [self.half_channels] * 2, 1) + h = self.pre(x0) + h = self.convs(h, x_mask, g=g) + h = self.proj(h) * x_mask + + b, c, t = x0.shape + h = h.reshape(b, c, -1, t).permute(0, 1, 3, 2) # [b, cx?, t] -> [b, c, t, ?] + + unnormalized_widths = h[..., : self.num_bins] / math.sqrt(self.hidden_channels) + unnormalized_heights = h[..., self.num_bins : 2 * self.num_bins] / math.sqrt(self.hidden_channels) + unnormalized_derivatives = h[..., 2 * self.num_bins :] + + x1, logabsdet = piecewise_rational_quadratic_transform( + x1, + unnormalized_widths, + unnormalized_heights, + unnormalized_derivatives, + inverse=reverse, + tails="linear", + tail_bound=self.tail_bound, + ) + + x = torch.cat([x0, x1], 1) * x_mask + logdet = torch.sum(logabsdet * x_mask, [1, 2]) + if not reverse: + return x, logdet + return x + + +class StochasticDurationPredictor(nn.Module): + """Stochastic duration predictor with Spline Flows. + + It applies Variational Dequantization and Variationsl Data Augmentation. + + Paper: + SDP: https://arxiv.org/pdf/2106.06103.pdf + Spline Flow: https://arxiv.org/abs/1906.04032 + + :: + ## Inference + + x -> TextCondEncoder() -> Flow() -> dr_hat + noise ----------------------^ + + ## Training + |---------------------| + x -> TextCondEncoder() -> + -> PosteriorEncoder() -> split() -> z_u, z_v -> (d - z_u) -> concat() -> Flow() -> noise + d -> DurCondEncoder() -> ^ | + |------------------------------------------------------------------------------| + + Args: + in_channels (int): Number of input tensor channels. + hidden_channels (int): Number of hidden channels. + kernel_size (int): Kernel size of convolutional layers. + dropout_p (float): Dropout rate. + num_flows (int, optional): Number of flow blocks. Defaults to 4. + cond_channels (int, optional): Number of channels of conditioning tensor. Defaults to 0. + """ + + def __init__( + self, + in_channels: int, + hidden_channels: int, + kernel_size: int, + dropout_p: float, + num_flows=4, + cond_channels=0, + language_emb_dim=0, + ): + super().__init__() + + # add language embedding dim in the input + if language_emb_dim: + in_channels += language_emb_dim + + # condition encoder text + self.pre = nn.Conv1d(in_channels, hidden_channels, 1) + self.convs = DilatedDepthSeparableConv(hidden_channels, kernel_size, num_layers=3, dropout_p=dropout_p) + self.proj = nn.Conv1d(hidden_channels, hidden_channels, 1) + + # posterior encoder + self.flows = nn.ModuleList() + self.flows.append(ElementwiseAffine(2)) + self.flows += [ConvFlow(2, hidden_channels, kernel_size, num_layers=3) for _ in range(num_flows)] + + # condition encoder duration + self.post_pre = nn.Conv1d(1, hidden_channels, 1) + self.post_convs = DilatedDepthSeparableConv(hidden_channels, kernel_size, num_layers=3, dropout_p=dropout_p) + self.post_proj = nn.Conv1d(hidden_channels, hidden_channels, 1) + + # flow layers + self.post_flows = nn.ModuleList() + self.post_flows.append(ElementwiseAffine(2)) + self.post_flows += [ConvFlow(2, hidden_channels, kernel_size, num_layers=3) for _ in range(num_flows)] + + if cond_channels != 0 and cond_channels is not None: + self.cond = nn.Conv1d(cond_channels, hidden_channels, 1) + + if language_emb_dim != 0 and language_emb_dim is not None: + self.cond_lang = nn.Conv1d(language_emb_dim, hidden_channels, 1) + + def forward(self, x, x_mask, dr=None, g=None, lang_emb=None, reverse=False, noise_scale=1.0): + """ + Shapes: + - x: :math:`[B, C, T]` + - x_mask: :math:`[B, 1, T]` + - dr: :math:`[B, 1, T]` + - g: :math:`[B, C]` + """ + # condition encoder text + x = self.pre(x) + if g is not None: + x = x + self.cond(g) + + if lang_emb is not None: + x = x + self.cond_lang(lang_emb) + + x = self.convs(x, x_mask) + x = self.proj(x) * x_mask + + if not reverse: + flows = self.flows + assert dr is not None + + # condition encoder duration + h = self.post_pre(dr) + h = self.post_convs(h, x_mask) + h = self.post_proj(h) * x_mask + noise = torch.randn(dr.size(0), 2, dr.size(2)).to(device=x.device, dtype=x.dtype) * x_mask + z_q = noise + + # posterior encoder + logdet_tot_q = 0.0 + for idx, flow in enumerate(self.post_flows): + z_q, logdet_q = flow(z_q, x_mask, g=(x + h)) + logdet_tot_q = logdet_tot_q + logdet_q + if idx > 0: + z_q = torch.flip(z_q, [1]) + + z_u, z_v = torch.split(z_q, [1, 1], 1) + u = torch.sigmoid(z_u) * x_mask + z0 = (dr - u) * x_mask + + # posterior encoder - neg log likelihood + logdet_tot_q += torch.sum((F.logsigmoid(z_u) + F.logsigmoid(-z_u)) * x_mask, [1, 2]) + nll_posterior_encoder = ( + torch.sum(-0.5 * (math.log(2 * math.pi) + (noise**2)) * x_mask, [1, 2]) - logdet_tot_q + ) + + z0 = torch.log(torch.clamp_min(z0, 1e-5)) * x_mask + logdet_tot = torch.sum(-z0, [1, 2]) + z = torch.cat([z0, z_v], 1) + + # flow layers + for idx, flow in enumerate(flows): + z, logdet = flow(z, x_mask, g=x, reverse=reverse) + logdet_tot = logdet_tot + logdet + if idx > 0: + z = torch.flip(z, [1]) + + # flow layers - neg log likelihood + nll_flow_layers = torch.sum(0.5 * (math.log(2 * math.pi) + (z**2)) * x_mask, [1, 2]) - logdet_tot + return nll_flow_layers + nll_posterior_encoder + + flows = list(reversed(self.flows)) + flows = flows[:-2] + [flows[-1]] # remove a useless vflow + z = torch.randn(x.size(0), 2, x.size(2)).to(device=x.device, dtype=x.dtype) * noise_scale + for flow in flows: + z = torch.flip(z, [1]) + z = flow(z, x_mask, g=x, reverse=reverse) + + z0, _ = torch.split(z, [1, 1], 1) + logw = z0 + return logw diff --git a/Indic-TTS/TTS/TTS/tts/layers/vits/transforms.py b/Indic-TTS/TTS/TTS/tts/layers/vits/transforms.py new file mode 100644 index 0000000000000000000000000000000000000000..c1505554488fb18010b82bd97c88b28c7d4547e1 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/layers/vits/transforms.py @@ -0,0 +1,203 @@ +# adopted from https://github.com/bayesiains/nflows + +import numpy as np +import torch +from torch.nn import functional as F + +DEFAULT_MIN_BIN_WIDTH = 1e-3 +DEFAULT_MIN_BIN_HEIGHT = 1e-3 +DEFAULT_MIN_DERIVATIVE = 1e-3 + + +def piecewise_rational_quadratic_transform( + inputs, + unnormalized_widths, + unnormalized_heights, + unnormalized_derivatives, + inverse=False, + tails=None, + tail_bound=1.0, + min_bin_width=DEFAULT_MIN_BIN_WIDTH, + min_bin_height=DEFAULT_MIN_BIN_HEIGHT, + min_derivative=DEFAULT_MIN_DERIVATIVE, +): + + if tails is None: + spline_fn = rational_quadratic_spline + spline_kwargs = {} + else: + spline_fn = unconstrained_rational_quadratic_spline + spline_kwargs = {"tails": tails, "tail_bound": tail_bound} + + outputs, logabsdet = spline_fn( + inputs=inputs, + unnormalized_widths=unnormalized_widths, + unnormalized_heights=unnormalized_heights, + unnormalized_derivatives=unnormalized_derivatives, + inverse=inverse, + min_bin_width=min_bin_width, + min_bin_height=min_bin_height, + min_derivative=min_derivative, + **spline_kwargs, + ) + return outputs, logabsdet + + +def searchsorted(bin_locations, inputs, eps=1e-6): + bin_locations[..., -1] += eps + return torch.sum(inputs[..., None] >= bin_locations, dim=-1) - 1 + + +def unconstrained_rational_quadratic_spline( + inputs, + unnormalized_widths, + unnormalized_heights, + unnormalized_derivatives, + inverse=False, + tails="linear", + tail_bound=1.0, + min_bin_width=DEFAULT_MIN_BIN_WIDTH, + min_bin_height=DEFAULT_MIN_BIN_HEIGHT, + min_derivative=DEFAULT_MIN_DERIVATIVE, +): + inside_interval_mask = (inputs >= -tail_bound) & (inputs <= tail_bound) + outside_interval_mask = ~inside_interval_mask + + outputs = torch.zeros_like(inputs) + logabsdet = torch.zeros_like(inputs) + + if tails == "linear": + unnormalized_derivatives = F.pad(unnormalized_derivatives, pad=(1, 1)) + constant = np.log(np.exp(1 - min_derivative) - 1) + unnormalized_derivatives[..., 0] = constant + unnormalized_derivatives[..., -1] = constant + + outputs[outside_interval_mask] = inputs[outside_interval_mask] + logabsdet[outside_interval_mask] = 0 + else: + raise RuntimeError("{} tails are not implemented.".format(tails)) + + outputs[inside_interval_mask], logabsdet[inside_interval_mask] = rational_quadratic_spline( + inputs=inputs[inside_interval_mask], + unnormalized_widths=unnormalized_widths[inside_interval_mask, :], + unnormalized_heights=unnormalized_heights[inside_interval_mask, :], + unnormalized_derivatives=unnormalized_derivatives[inside_interval_mask, :], + inverse=inverse, + left=-tail_bound, + right=tail_bound, + bottom=-tail_bound, + top=tail_bound, + min_bin_width=min_bin_width, + min_bin_height=min_bin_height, + min_derivative=min_derivative, + ) + + return outputs, logabsdet + + +def rational_quadratic_spline( + inputs, + unnormalized_widths, + unnormalized_heights, + unnormalized_derivatives, + inverse=False, + left=0.0, + right=1.0, + bottom=0.0, + top=1.0, + min_bin_width=DEFAULT_MIN_BIN_WIDTH, + min_bin_height=DEFAULT_MIN_BIN_HEIGHT, + min_derivative=DEFAULT_MIN_DERIVATIVE, +): + if torch.min(inputs) < left or torch.max(inputs) > right: + raise ValueError("Input to a transform is not within its domain") + + num_bins = unnormalized_widths.shape[-1] + + if min_bin_width * num_bins > 1.0: + raise ValueError("Minimal bin width too large for the number of bins") + if min_bin_height * num_bins > 1.0: + raise ValueError("Minimal bin height too large for the number of bins") + + widths = F.softmax(unnormalized_widths, dim=-1) + widths = min_bin_width + (1 - min_bin_width * num_bins) * widths + cumwidths = torch.cumsum(widths, dim=-1) + cumwidths = F.pad(cumwidths, pad=(1, 0), mode="constant", value=0.0) + cumwidths = (right - left) * cumwidths + left + cumwidths[..., 0] = left + cumwidths[..., -1] = right + widths = cumwidths[..., 1:] - cumwidths[..., :-1] + + derivatives = min_derivative + F.softplus(unnormalized_derivatives) + + heights = F.softmax(unnormalized_heights, dim=-1) + heights = min_bin_height + (1 - min_bin_height * num_bins) * heights + cumheights = torch.cumsum(heights, dim=-1) + cumheights = F.pad(cumheights, pad=(1, 0), mode="constant", value=0.0) + cumheights = (top - bottom) * cumheights + bottom + cumheights[..., 0] = bottom + cumheights[..., -1] = top + heights = cumheights[..., 1:] - cumheights[..., :-1] + + if inverse: + bin_idx = searchsorted(cumheights, inputs)[..., None] + else: + bin_idx = searchsorted(cumwidths, inputs)[..., None] + + input_cumwidths = cumwidths.gather(-1, bin_idx)[..., 0] + input_bin_widths = widths.gather(-1, bin_idx)[..., 0] + + input_cumheights = cumheights.gather(-1, bin_idx)[..., 0] + delta = heights / widths + input_delta = delta.gather(-1, bin_idx)[..., 0] + + input_derivatives = derivatives.gather(-1, bin_idx)[..., 0] + input_derivatives_plus_one = derivatives[..., 1:].gather(-1, bin_idx)[..., 0] + + input_heights = heights.gather(-1, bin_idx)[..., 0] + + if inverse: + a = (inputs - input_cumheights) * ( + input_derivatives + input_derivatives_plus_one - 2 * input_delta + ) + input_heights * (input_delta - input_derivatives) + b = input_heights * input_derivatives - (inputs - input_cumheights) * ( + input_derivatives + input_derivatives_plus_one - 2 * input_delta + ) + c = -input_delta * (inputs - input_cumheights) + + discriminant = b.pow(2) - 4 * a * c + assert (discriminant >= 0).all() + + root = (2 * c) / (-b - torch.sqrt(discriminant)) + outputs = root * input_bin_widths + input_cumwidths + + theta_one_minus_theta = root * (1 - root) + denominator = input_delta + ( + (input_derivatives + input_derivatives_plus_one - 2 * input_delta) * theta_one_minus_theta + ) + derivative_numerator = input_delta.pow(2) * ( + input_derivatives_plus_one * root.pow(2) + + 2 * input_delta * theta_one_minus_theta + + input_derivatives * (1 - root).pow(2) + ) + logabsdet = torch.log(derivative_numerator) - 2 * torch.log(denominator) + + return outputs, -logabsdet + else: + theta = (inputs - input_cumwidths) / input_bin_widths + theta_one_minus_theta = theta * (1 - theta) + + numerator = input_heights * (input_delta * theta.pow(2) + input_derivatives * theta_one_minus_theta) + denominator = input_delta + ( + (input_derivatives + input_derivatives_plus_one - 2 * input_delta) * theta_one_minus_theta + ) + outputs = input_cumheights + numerator / denominator + + derivative_numerator = input_delta.pow(2) * ( + input_derivatives_plus_one * theta.pow(2) + + 2 * input_delta * theta_one_minus_theta + + input_derivatives * (1 - theta).pow(2) + ) + logabsdet = torch.log(derivative_numerator) - 2 * torch.log(denominator) + + return outputs, logabsdet diff --git a/Indic-TTS/TTS/TTS/tts/models/__init__.py b/Indic-TTS/TTS/TTS/tts/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..d76a3bebee652f44a65f4a3d919ae2c3971d82f8 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/models/__init__.py @@ -0,0 +1,14 @@ +from typing import Dict, List, Union + +from TTS.utils.generic_utils import find_module + + +def setup_model(config: "Coqpit", samples: Union[List[List], List[Dict]] = None) -> "BaseTTS": + print(" > Using model: {}".format(config.model)) + # fetch the right model implementation. + if "base_model" in config and config["base_model"] is not None: + MyModel = find_module("TTS.tts.models", config.base_model.lower()) + else: + MyModel = find_module("TTS.tts.models", config.model.lower()) + model = MyModel.init_from_config(config, samples) + return model diff --git a/Indic-TTS/TTS/TTS/tts/models/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/models/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ea27dc71c92518b46d97724f9c6c7818838ad1fe Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/models/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/models/__pycache__/base_tts.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/models/__pycache__/base_tts.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c98b5560e603fc504ebb37aa083e9fd5e009185 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/models/__pycache__/base_tts.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/models/__pycache__/forward_tts.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/models/__pycache__/forward_tts.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0ade40aad8b551550abf5d3c1b45e8e6700bbf1 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/models/__pycache__/forward_tts.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/models/__pycache__/vits.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/models/__pycache__/vits.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4eafc7b9ae5e819366aa6efe37ab4a9da853681e Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/models/__pycache__/vits.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/models/align_tts.py b/Indic-TTS/TTS/TTS/tts/models/align_tts.py new file mode 100644 index 0000000000000000000000000000000000000000..0eef18aefe7aee00f502e5f3a87f7d0a3020392b --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/models/align_tts.py @@ -0,0 +1,453 @@ +from dataclasses import dataclass, field +from typing import Dict, List, Union + +import torch +from coqpit import Coqpit +from torch import nn + +from TTS.tts.layers.align_tts.mdn import MDNBlock +from TTS.tts.layers.feed_forward.decoder import Decoder +from TTS.tts.layers.feed_forward.duration_predictor import DurationPredictor +from TTS.tts.layers.feed_forward.encoder import Encoder +from TTS.tts.layers.generic.pos_encoding import PositionalEncoding +from TTS.tts.models.base_tts import BaseTTS +from TTS.tts.utils.helpers import generate_path, maximum_path, sequence_mask +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.tts.utils.visual import plot_alignment, plot_spectrogram +from TTS.utils.io import load_fsspec + + +@dataclass +class AlignTTSArgs(Coqpit): + """ + Args: + num_chars (int): + number of unique input to characters + out_channels (int): + number of output tensor channels. It is equal to the expected spectrogram size. + hidden_channels (int): + number of channels in all the model layers. + hidden_channels_ffn (int): + number of channels in transformer's conv layers. + hidden_channels_dp (int): + number of channels in duration predictor network. + num_heads (int): + number of attention heads in transformer networks. + num_transformer_layers (int): + number of layers in encoder and decoder transformer blocks. + dropout_p (int): + dropout rate in transformer layers. + length_scale (int, optional): + coefficient to set the speech speed. <1 slower, >1 faster. Defaults to 1. + num_speakers (int, optional): + number of speakers for multi-speaker training. Defaults to 0. + external_c (bool, optional): + enable external speaker embeddings. Defaults to False. + c_in_channels (int, optional): + number of channels in speaker embedding vectors. Defaults to 0. + """ + + num_chars: int = None + out_channels: int = 80 + hidden_channels: int = 256 + hidden_channels_dp: int = 256 + encoder_type: str = "fftransformer" + encoder_params: dict = field( + default_factory=lambda: {"hidden_channels_ffn": 1024, "num_heads": 2, "num_layers": 6, "dropout_p": 0.1} + ) + decoder_type: str = "fftransformer" + decoder_params: dict = field( + default_factory=lambda: {"hidden_channels_ffn": 1024, "num_heads": 2, "num_layers": 6, "dropout_p": 0.1} + ) + length_scale: float = 1.0 + num_speakers: int = 0 + use_speaker_embedding: bool = False + use_d_vector_file: bool = False + d_vector_dim: int = 0 + + +class AlignTTS(BaseTTS): + """AlignTTS with modified duration predictor. + https://arxiv.org/pdf/2003.01950.pdf + + Encoder -> DurationPredictor -> Decoder + + Check :class:`AlignTTSArgs` for the class arguments. + + Paper Abstract: + Targeting at both high efficiency and performance, we propose AlignTTS to predict the + mel-spectrum in parallel. AlignTTS is based on a Feed-Forward Transformer which generates mel-spectrum from a + sequence of characters, and the duration of each character is determined by a duration predictor.Instead of + adopting the attention mechanism in Transformer TTS to align text to mel-spectrum, the alignment loss is presented + to consider all possible alignments in training by use of dynamic programming. Experiments on the LJSpeech dataset s + how that our model achieves not only state-of-the-art performance which outperforms Transformer TTS by 0.03 in mean + option score (MOS), but also a high efficiency which is more than 50 times faster than real-time. + + Note: + Original model uses a separate character embedding layer for duration predictor. However, it causes the + duration predictor to overfit and prevents learning higher level interactions among characters. Therefore, + we predict durations based on encoder outputs which has higher level information about input characters. This + enables training without phases as in the original paper. + + Original model uses Transormers in encoder and decoder layers. However, here you can set the architecture + differently based on your requirements using ```encoder_type``` and ```decoder_type``` parameters. + + Examples: + >>> from TTS.tts.configs.align_tts_config import AlignTTSConfig + >>> config = AlignTTSConfig() + >>> model = AlignTTS(config) + + """ + + # pylint: disable=dangerous-default-value + + def __init__( + self, + config: "AlignTTSConfig", + ap: "AudioProcessor" = None, + tokenizer: "TTSTokenizer" = None, + speaker_manager: SpeakerManager = None, + ): + + super().__init__(config, ap, tokenizer, speaker_manager) + self.speaker_manager = speaker_manager + self.phase = -1 + self.length_scale = ( + float(config.model_args.length_scale) + if isinstance(config.model_args.length_scale, int) + else config.model_args.length_scale + ) + + self.emb = nn.Embedding(self.config.model_args.num_chars, self.config.model_args.hidden_channels) + + self.embedded_speaker_dim = 0 + self.init_multispeaker(config) + + self.pos_encoder = PositionalEncoding(config.model_args.hidden_channels) + self.encoder = Encoder( + config.model_args.hidden_channels, + config.model_args.hidden_channels, + config.model_args.encoder_type, + config.model_args.encoder_params, + self.embedded_speaker_dim, + ) + self.decoder = Decoder( + config.model_args.out_channels, + config.model_args.hidden_channels, + config.model_args.decoder_type, + config.model_args.decoder_params, + ) + self.duration_predictor = DurationPredictor(config.model_args.hidden_channels_dp) + + self.mod_layer = nn.Conv1d(config.model_args.hidden_channels, config.model_args.hidden_channels, 1) + + self.mdn_block = MDNBlock(config.model_args.hidden_channels, 2 * config.model_args.out_channels) + + if self.embedded_speaker_dim > 0 and self.embedded_speaker_dim != config.model_args.hidden_channels: + self.proj_g = nn.Conv1d(self.embedded_speaker_dim, config.model_args.hidden_channels, 1) + + @staticmethod + def compute_log_probs(mu, log_sigma, y): + # pylint: disable=protected-access, c-extension-no-member + y = y.transpose(1, 2).unsqueeze(1) # [B, 1, T1, D] + mu = mu.transpose(1, 2).unsqueeze(2) # [B, T2, 1, D] + log_sigma = log_sigma.transpose(1, 2).unsqueeze(2) # [B, T2, 1, D] + expanded_y, expanded_mu = torch.broadcast_tensors(y, mu) + exponential = -0.5 * torch.mean( + torch._C._nn.mse_loss(expanded_y, expanded_mu, 0) / torch.pow(log_sigma.exp(), 2), dim=-1 + ) # B, L, T + logp = exponential - 0.5 * log_sigma.mean(dim=-1) + return logp + + def compute_align_path(self, mu, log_sigma, y, x_mask, y_mask): + # find the max alignment path + attn_mask = torch.unsqueeze(x_mask, -1) * torch.unsqueeze(y_mask, 2) + log_p = self.compute_log_probs(mu, log_sigma, y) + # [B, T_en, T_dec] + attn = maximum_path(log_p, attn_mask.squeeze(1)).unsqueeze(1) + dr_mas = torch.sum(attn, -1) + return dr_mas.squeeze(1), log_p + + @staticmethod + def generate_attn(dr, x_mask, y_mask=None): + # compute decode mask from the durations + if y_mask is None: + y_lengths = dr.sum(1).long() + y_lengths[y_lengths < 1] = 1 + y_mask = torch.unsqueeze(sequence_mask(y_lengths, None), 1).to(dr.dtype) + attn_mask = torch.unsqueeze(x_mask, -1) * torch.unsqueeze(y_mask, 2) + attn = generate_path(dr, attn_mask.squeeze(1)).to(dr.dtype) + return attn + + def expand_encoder_outputs(self, en, dr, x_mask, y_mask): + """Generate attention alignment map from durations and + expand encoder outputs + + Examples:: + - encoder output: [a,b,c,d] + - durations: [1, 3, 2, 1] + + - expanded: [a, b, b, b, c, c, d] + - attention map: [[0, 0, 0, 0, 0, 0, 1], + [0, 0, 0, 0, 1, 1, 0], + [0, 1, 1, 1, 0, 0, 0], + [1, 0, 0, 0, 0, 0, 0]] + """ + attn = self.generate_attn(dr, x_mask, y_mask) + o_en_ex = torch.matmul(attn.squeeze(1).transpose(1, 2), en.transpose(1, 2)).transpose(1, 2) + return o_en_ex, attn + + def format_durations(self, o_dr_log, x_mask): + o_dr = (torch.exp(o_dr_log) - 1) * x_mask * self.length_scale + o_dr[o_dr < 1] = 1.0 + o_dr = torch.round(o_dr) + return o_dr + + @staticmethod + def _concat_speaker_embedding(o_en, g): + g_exp = g.expand(-1, -1, o_en.size(-1)) # [B, C, T_en] + o_en = torch.cat([o_en, g_exp], 1) + return o_en + + def _sum_speaker_embedding(self, x, g): + # project g to decoder dim. + if hasattr(self, "proj_g"): + g = self.proj_g(g) + + return x + g + + def _forward_encoder(self, x, x_lengths, g=None): + if hasattr(self, "emb_g"): + g = nn.functional.normalize(self.speaker_embedding(g)) # [B, C, 1] + + if g is not None: + g = g.unsqueeze(-1) + + # [B, T, C] + x_emb = self.emb(x) + # [B, C, T] + x_emb = torch.transpose(x_emb, 1, -1) + + # compute sequence masks + x_mask = torch.unsqueeze(sequence_mask(x_lengths, x.shape[1]), 1).to(x.dtype) + + # encoder pass + o_en = self.encoder(x_emb, x_mask) + + # speaker conditioning for duration predictor + if g is not None: + o_en_dp = self._concat_speaker_embedding(o_en, g) + else: + o_en_dp = o_en + return o_en, o_en_dp, x_mask, g + + def _forward_decoder(self, o_en, o_en_dp, dr, x_mask, y_lengths, g): + y_mask = torch.unsqueeze(sequence_mask(y_lengths, None), 1).to(o_en_dp.dtype) + # fix extreme predictions #MYEDITS + if hasattr(self, "pos_encoder"): + if dr.sum() > self.pos_encoder.max_len: + dr = torch.floor(dr * torch.div(self.pos_encoder.max_len, dr.sum())) + # expand o_en with durations + o_en_ex, attn = self.expand_encoder_outputs(o_en, dr, x_mask, y_mask) + # positional encoding + if hasattr(self, "pos_encoder"): + o_en_ex = self.pos_encoder(o_en_ex, y_mask) + # speaker embedding + if g is not None: + o_en_ex = self._sum_speaker_embedding(o_en_ex, g) + # decoder pass + o_de = self.decoder(o_en_ex, y_mask, g=g) + return o_de, attn.transpose(1, 2) + + def _forward_mdn(self, o_en, y, y_lengths, x_mask): + # MAS potentials and alignment + mu, log_sigma = self.mdn_block(o_en) + y_mask = torch.unsqueeze(sequence_mask(y_lengths, None), 1).to(o_en.dtype) + dr_mas, logp = self.compute_align_path(mu, log_sigma, y, x_mask, y_mask) + return dr_mas, mu, log_sigma, logp + + def forward( + self, x, x_lengths, y, y_lengths, aux_input={"d_vectors": None}, phase=None + ): # pylint: disable=unused-argument + """ + Shapes: + - x: :math:`[B, T_max]` + - x_lengths: :math:`[B]` + - y_lengths: :math:`[B]` + - dr: :math:`[B, T_max]` + - g: :math:`[B, C]` + """ + y = y.transpose(1, 2) + g = aux_input["d_vectors"] if "d_vectors" in aux_input else None + o_de, o_dr_log, dr_mas_log, attn, mu, log_sigma, logp = None, None, None, None, None, None, None + if phase == 0: + # train encoder and MDN + o_en, o_en_dp, x_mask, g = self._forward_encoder(x, x_lengths, g) + dr_mas, mu, log_sigma, logp = self._forward_mdn(o_en, y, y_lengths, x_mask) + y_mask = torch.unsqueeze(sequence_mask(y_lengths, None), 1).to(o_en_dp.dtype) + attn = self.generate_attn(dr_mas, x_mask, y_mask) + elif phase == 1: + # train decoder + o_en, o_en_dp, x_mask, g = self._forward_encoder(x, x_lengths, g) + dr_mas, _, _, _ = self._forward_mdn(o_en, y, y_lengths, x_mask) + o_de, attn = self._forward_decoder(o_en.detach(), o_en_dp.detach(), dr_mas.detach(), x_mask, y_lengths, g=g) + elif phase == 2: + # train the whole except duration predictor + o_en, o_en_dp, x_mask, g = self._forward_encoder(x, x_lengths, g) + dr_mas, mu, log_sigma, logp = self._forward_mdn(o_en, y, y_lengths, x_mask) + o_de, attn = self._forward_decoder(o_en, o_en_dp, dr_mas, x_mask, y_lengths, g=g) + elif phase == 3: + # train duration predictor + o_en, o_en_dp, x_mask, g = self._forward_encoder(x, x_lengths, g) + o_dr_log = self.duration_predictor(x, x_mask) + dr_mas, mu, log_sigma, logp = self._forward_mdn(o_en, y, y_lengths, x_mask) + o_de, attn = self._forward_decoder(o_en, o_en_dp, dr_mas, x_mask, y_lengths, g=g) + o_dr_log = o_dr_log.squeeze(1) + else: + o_en, o_en_dp, x_mask, g = self._forward_encoder(x, x_lengths, g) + o_dr_log = self.duration_predictor(o_en_dp.detach(), x_mask) + dr_mas, mu, log_sigma, logp = self._forward_mdn(o_en, y, y_lengths, x_mask) + o_de, attn = self._forward_decoder(o_en, o_en_dp, dr_mas, x_mask, y_lengths, g=g) + o_dr_log = o_dr_log.squeeze(1) + dr_mas_log = torch.log(dr_mas + 1).squeeze(1) + outputs = { + "model_outputs": o_de.transpose(1, 2), + "alignments": attn, + "durations_log": o_dr_log, + "durations_mas_log": dr_mas_log, + "mu": mu, + "log_sigma": log_sigma, + "logp": logp, + } + return outputs + + @torch.no_grad() + def inference(self, x, aux_input={"d_vectors": None}): # pylint: disable=unused-argument + """ + Shapes: + - x: :math:`[B, T_max]` + - x_lengths: :math:`[B]` + - g: :math:`[B, C]` + """ + g = aux_input["d_vectors"] if "d_vectors" in aux_input else None + x_lengths = torch.tensor(x.shape[1:2]).to(x.device) + # pad input to prevent dropping the last word + # x = torch.nn.functional.pad(x, pad=(0, 5), mode='constant', value=0) + o_en, o_en_dp, x_mask, g = self._forward_encoder(x, x_lengths, g) + # o_dr_log = self.duration_predictor(x, x_mask) + o_dr_log = self.duration_predictor(o_en_dp, x_mask) + # duration predictor pass + o_dr = self.format_durations(o_dr_log, x_mask).squeeze(1) + y_lengths = o_dr.sum(1) + o_de, attn = self._forward_decoder(o_en, o_en_dp, o_dr, x_mask, y_lengths, g=g) + outputs = {"model_outputs": o_de.transpose(1, 2), "alignments": attn} + return outputs + + def train_step(self, batch: dict, criterion: nn.Module): + text_input = batch["text_input"] + text_lengths = batch["text_lengths"] + mel_input = batch["mel_input"] + mel_lengths = batch["mel_lengths"] + d_vectors = batch["d_vectors"] + speaker_ids = batch["speaker_ids"] + + aux_input = {"d_vectors": d_vectors, "speaker_ids": speaker_ids} + outputs = self.forward(text_input, text_lengths, mel_input, mel_lengths, aux_input, self.phase) + loss_dict = criterion( + outputs["logp"], + outputs["model_outputs"], + mel_input, + mel_lengths, + outputs["durations_log"], + outputs["durations_mas_log"], + text_lengths, + phase=self.phase, + ) + + return outputs, loss_dict + + def _create_logs(self, batch, outputs, ap): # pylint: disable=no-self-use + model_outputs = outputs["model_outputs"] + alignments = outputs["alignments"] + mel_input = batch["mel_input"] + + pred_spec = model_outputs[0].data.cpu().numpy() + gt_spec = mel_input[0].data.cpu().numpy() + align_img = alignments[0].data.cpu().numpy() + + figures = { + "prediction": plot_spectrogram(pred_spec, ap, output_fig=False), + "ground_truth": plot_spectrogram(gt_spec, ap, output_fig=False), + "alignment": plot_alignment(align_img, output_fig=False), + } + + # Sample audio + train_audio = ap.inv_melspectrogram(pred_spec.T) + return figures, {"audio": train_audio} + + def train_log( + self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int + ) -> None: # pylint: disable=no-self-use + figures, audios = self._create_logs(batch, outputs, self.ap) + logger.train_figures(steps, figures) + logger.train_audios(steps, audios, self.ap.sample_rate) + + def eval_step(self, batch: dict, criterion: nn.Module): + return self.train_step(batch, criterion) + + def eval_log(self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int) -> None: + figures, audios = self._create_logs(batch, outputs, self.ap) + logger.eval_figures(steps, figures) + logger.eval_audios(steps, audios, self.ap.sample_rate) + + def load_checkpoint( + self, config, checkpoint_path, eval=False + ): # pylint: disable=unused-argument, redefined-builtin + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + self.load_state_dict(state["model"]) + if eval: + self.eval() + assert not self.training + + def get_criterion(self): + from TTS.tts.layers.losses import AlignTTSLoss # pylint: disable=import-outside-toplevel + + return AlignTTSLoss(self.config) + + @staticmethod + def _set_phase(config, global_step): + """Decide AlignTTS training phase""" + if isinstance(config.phase_start_steps, list): + vals = [i < global_step for i in config.phase_start_steps] + if not True in vals: + phase = 0 + else: + phase = ( + len(config.phase_start_steps) + - [i < global_step for i in config.phase_start_steps][::-1].index(True) + - 1 + ) + else: + phase = None + return phase + + def on_epoch_start(self, trainer): + """Set AlignTTS training phase on epoch start.""" + self.phase = self._set_phase(trainer.config, trainer.total_steps_done) + + @staticmethod + def init_from_config(config: "AlignTTSConfig", samples: Union[List[List], List[Dict]] = None): + """Initiate model from config + + Args: + config (AlignTTSConfig): Model config. + samples (Union[List[List], List[Dict]]): Training samples to parse speaker ids for training. + Defaults to None. + """ + from TTS.utils.audio import AudioProcessor + + ap = AudioProcessor.init_from_config(config) + tokenizer, new_config = TTSTokenizer.init_from_config(config) + speaker_manager = SpeakerManager.init_from_config(config, samples) + return AlignTTS(new_config, ap, tokenizer, speaker_manager) diff --git a/Indic-TTS/TTS/TTS/tts/models/base_tacotron.py b/Indic-TTS/TTS/TTS/tts/models/base_tacotron.py new file mode 100644 index 0000000000000000000000000000000000000000..c0f4c3392deedddaf0fa133cc751c45d52fd908a --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/models/base_tacotron.py @@ -0,0 +1,299 @@ +import copy +from abc import abstractmethod +from typing import Dict, Tuple + +import torch +from coqpit import Coqpit +from torch import nn + +from TTS.tts.layers.losses import TacotronLoss +from TTS.tts.models.base_tts import BaseTTS +from TTS.tts.utils.helpers import sequence_mask +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.synthesis import synthesis +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.tts.utils.visual import plot_alignment, plot_spectrogram +from TTS.utils.generic_utils import format_aux_input +from TTS.utils.io import load_fsspec +from TTS.utils.training import gradual_training_scheduler + + +class BaseTacotron(BaseTTS): + """Base class shared by Tacotron and Tacotron2""" + + def __init__( + self, + config: "TacotronConfig", + ap: "AudioProcessor", + tokenizer: "TTSTokenizer", + speaker_manager: SpeakerManager = None, + ): + super().__init__(config, ap, tokenizer, speaker_manager) + + # pass all config fields as class attributes + for key in config: + setattr(self, key, config[key]) + + # layers + self.embedding = None + self.encoder = None + self.decoder = None + self.postnet = None + + # init tensors + self.embedded_speakers = None + self.embedded_speakers_projected = None + + # global style token + if self.gst and self.use_gst: + self.decoder_in_features += self.gst.gst_embedding_dim # add gst embedding dim + self.gst_layer = None + + # Capacitron + if self.capacitron_vae and self.use_capacitron_vae: + self.decoder_in_features += self.capacitron_vae.capacitron_VAE_embedding_dim # add capacitron embedding dim + self.capacitron_vae_layer = None + + # additional layers + self.decoder_backward = None + self.coarse_decoder = None + + @staticmethod + def _format_aux_input(aux_input: Dict) -> Dict: + """Set missing fields to their default values""" + if aux_input: + return format_aux_input({"d_vectors": None, "speaker_ids": None}, aux_input) + return None + + ############################# + # INIT FUNCTIONS + ############################# + + def _init_backward_decoder(self): + """Init the backward decoder for Forward-Backward decoding.""" + self.decoder_backward = copy.deepcopy(self.decoder) + + def _init_coarse_decoder(self): + """Init the coarse decoder for Double-Decoder Consistency.""" + self.coarse_decoder = copy.deepcopy(self.decoder) + self.coarse_decoder.r_init = self.ddc_r + self.coarse_decoder.set_r(self.ddc_r) + + ############################# + # CORE FUNCTIONS + ############################# + + @abstractmethod + def forward(self): + pass + + @abstractmethod + def inference(self): + pass + + def load_checkpoint( + self, config, checkpoint_path, eval=False + ): # pylint: disable=unused-argument, redefined-builtin + """Load model checkpoint and set up internals. + + Args: + config (Coqpi): model configuration. + checkpoint_path (str): path to checkpoint file. + eval (bool): whether to load model for evaluation. + """ + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + self.load_state_dict(state["model"]) + # TODO: set r in run-time by taking it from the new config + if "r" in state: + # set r from the state (for compatibility with older checkpoints) + self.decoder.set_r(state["r"]) + elif "config" in state: + # set r from config used at training time (for inference) + self.decoder.set_r(state["config"]["r"]) + else: + # set r from the new config (for new-models) + self.decoder.set_r(config.r) + if eval: + self.eval() + print(f" > Model's reduction rate `r` is set to: {self.decoder.r}") + assert not self.training + + def get_criterion(self) -> nn.Module: + """Get the model criterion used in training.""" + return TacotronLoss(self.config) + + @staticmethod + def init_from_config(config: Coqpit): + """Initialize model from config.""" + from TTS.utils.audio import AudioProcessor + + ap = AudioProcessor.init_from_config(config) + tokenizer = TTSTokenizer.init_from_config(config) + speaker_manager = SpeakerManager.init_from_config(config) + return BaseTacotron(config, ap, tokenizer, speaker_manager) + + ########################## + # TEST AND LOG FUNCTIONS # + ########################## + + def test_run(self, assets: Dict) -> Tuple[Dict, Dict]: + """Generic test run for `tts` models used by `Trainer`. + + You can override this for a different behaviour. + + Args: + assets (dict): A dict of training assets. For `tts` models, it must include `{'audio_processor': ap}`. + + Returns: + Tuple[Dict, Dict]: Test figures and audios to be projected to Tensorboard. + """ + print(" | > Synthesizing test sentences.") + test_audios = {} + test_figures = {} + test_sentences = self.config.test_sentences + aux_inputs = self._get_test_aux_input() + for idx, sen in enumerate(test_sentences): + outputs_dict = synthesis( + self, + sen, + self.config, + "cuda" in str(next(self.parameters()).device), + speaker_id=aux_inputs["speaker_id"], + d_vector=aux_inputs["d_vector"], + style_wav=aux_inputs["style_wav"], + use_griffin_lim=True, + do_trim_silence=False, + ) + test_audios["{}-audio".format(idx)] = outputs_dict["wav"] + test_figures["{}-prediction".format(idx)] = plot_spectrogram( + outputs_dict["outputs"]["model_outputs"], self.ap, output_fig=False + ) + test_figures["{}-alignment".format(idx)] = plot_alignment( + outputs_dict["outputs"]["alignments"], output_fig=False + ) + return {"figures": test_figures, "audios": test_audios} + + def test_log( + self, outputs: dict, logger: "Logger", assets: dict, steps: int # pylint: disable=unused-argument + ) -> None: + logger.test_audios(steps, outputs["audios"], self.ap.sample_rate) + logger.test_figures(steps, outputs["figures"]) + + ############################# + # COMMON COMPUTE FUNCTIONS + ############################# + + def compute_masks(self, text_lengths, mel_lengths): + """Compute masks against sequence paddings.""" + # B x T_in_max (boolean) + input_mask = sequence_mask(text_lengths) + output_mask = None + if mel_lengths is not None: + max_len = mel_lengths.max() + r = self.decoder.r + max_len = max_len + (r - (max_len % r)) if max_len % r > 0 else max_len + output_mask = sequence_mask(mel_lengths, max_len=max_len) + return input_mask, output_mask + + def _backward_pass(self, mel_specs, encoder_outputs, mask): + """Run backwards decoder""" + decoder_outputs_b, alignments_b, _ = self.decoder_backward( + encoder_outputs, torch.flip(mel_specs, dims=(1,)), mask + ) + decoder_outputs_b = decoder_outputs_b.transpose(1, 2).contiguous() + return decoder_outputs_b, alignments_b + + def _coarse_decoder_pass(self, mel_specs, encoder_outputs, alignments, input_mask): + """Double Decoder Consistency""" + T = mel_specs.shape[1] + if T % self.coarse_decoder.r > 0: + padding_size = self.coarse_decoder.r - (T % self.coarse_decoder.r) + mel_specs = torch.nn.functional.pad(mel_specs, (0, 0, 0, padding_size, 0, 0)) + decoder_outputs_backward, alignments_backward, _ = self.coarse_decoder( + encoder_outputs.detach(), mel_specs, input_mask + ) + # scale_factor = self.decoder.r_init / self.decoder.r + alignments_backward = torch.nn.functional.interpolate( + alignments_backward.transpose(1, 2), + size=alignments.shape[1], + mode="nearest", + ).transpose(1, 2) + decoder_outputs_backward = decoder_outputs_backward.transpose(1, 2) + decoder_outputs_backward = decoder_outputs_backward[:, :T, :] + return decoder_outputs_backward, alignments_backward + + ############################# + # EMBEDDING FUNCTIONS + ############################# + + def compute_gst(self, inputs, style_input, speaker_embedding=None): + """Compute global style token""" + if isinstance(style_input, dict): + # multiply each style token with a weight + query = torch.zeros(1, 1, self.gst.gst_embedding_dim // 2).type_as(inputs) + if speaker_embedding is not None: + query = torch.cat([query, speaker_embedding.reshape(1, 1, -1)], dim=-1) + + _GST = torch.tanh(self.gst_layer.style_token_layer.style_tokens) + gst_outputs = torch.zeros(1, 1, self.gst.gst_embedding_dim).type_as(inputs) + for k_token, v_amplifier in style_input.items(): + key = _GST[int(k_token)].unsqueeze(0).expand(1, -1, -1) + gst_outputs_att = self.gst_layer.style_token_layer.attention(query, key) + gst_outputs = gst_outputs + gst_outputs_att * v_amplifier + elif style_input is None: + # ignore style token and return zero tensor + gst_outputs = torch.zeros(1, 1, self.gst.gst_embedding_dim).type_as(inputs) + else: + # compute style tokens + gst_outputs = self.gst_layer(style_input, speaker_embedding) # pylint: disable=not-callable + inputs = self._concat_speaker_embedding(inputs, gst_outputs) + return inputs + + def compute_capacitron_VAE_embedding(self, inputs, reference_mel_info, text_info=None, speaker_embedding=None): + """Capacitron Variational Autoencoder""" + (VAE_outputs, posterior_distribution, prior_distribution, capacitron_beta,) = self.capacitron_vae_layer( + reference_mel_info, + text_info, + speaker_embedding, # pylint: disable=not-callable + ) + + VAE_outputs = VAE_outputs.to(inputs.device) + encoder_output = self._concat_speaker_embedding( + inputs, VAE_outputs + ) # concatenate to the output of the basic tacotron encoder + return ( + encoder_output, + posterior_distribution, + prior_distribution, + capacitron_beta, + ) + + @staticmethod + def _add_speaker_embedding(outputs, embedded_speakers): + embedded_speakers_ = embedded_speakers.expand(outputs.size(0), outputs.size(1), -1) + outputs = outputs + embedded_speakers_ + return outputs + + @staticmethod + def _concat_speaker_embedding(outputs, embedded_speakers): + embedded_speakers_ = embedded_speakers.expand(outputs.size(0), outputs.size(1), -1) + outputs = torch.cat([outputs, embedded_speakers_], dim=-1) + return outputs + + ############################# + # CALLBACKS + ############################# + + def on_epoch_start(self, trainer): + """Callback for setting values wrt gradual training schedule. + + Args: + trainer (TrainerTTS): TTS trainer object that is used to train this model. + """ + if self.gradual_training: + r, trainer.config.batch_size = gradual_training_scheduler(trainer.total_steps_done, trainer.config) + trainer.config.r = r + self.decoder.set_r(r) + if trainer.config.bidirectional_decoder: + trainer.model.decoder_backward.set_r(r) + print(f"\n > Number of output frames: {self.decoder.r}") diff --git a/Indic-TTS/TTS/TTS/tts/models/base_tts.py b/Indic-TTS/TTS/TTS/tts/models/base_tts.py new file mode 100644 index 0000000000000000000000000000000000000000..c86bd391b4281195478c79d332cb6dbbd33cdfb4 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/models/base_tts.py @@ -0,0 +1,430 @@ +import os +import random +from typing import Dict, List, Tuple, Union + +import torch +import torch.distributed as dist +from coqpit import Coqpit +from torch import nn +from torch.utils.data import DataLoader +from torch.utils.data.sampler import WeightedRandomSampler +from trainer.torch import DistributedSampler, DistributedSamplerWrapper + +from TTS.model import BaseTrainerModel +from TTS.tts.datasets.dataset import TTSDataset +from TTS.tts.utils.data import get_length_balancer_weights +from TTS.tts.utils.languages import LanguageManager, get_language_balancer_weights +from TTS.tts.utils.speakers import SpeakerManager, get_speaker_balancer_weights, get_speaker_manager +from TTS.tts.utils.synthesis import synthesis +from TTS.tts.utils.visual import plot_alignment, plot_spectrogram + +# pylint: skip-file + + +class BaseTTS(BaseTrainerModel): + """Base `tts` class. Every new `tts` model must inherit this. + + It defines common `tts` specific functions on top of `Model` implementation. + """ + + def __init__( + self, + config: Coqpit, + ap: "AudioProcessor", + tokenizer: "TTSTokenizer", + speaker_manager: SpeakerManager = None, + language_manager: LanguageManager = None, + ): + super().__init__() + self.config = config + self.ap = ap + self.tokenizer = tokenizer + self.speaker_manager = speaker_manager + self.language_manager = language_manager + self._set_model_args(config) + + def _set_model_args(self, config: Coqpit): + """Setup model args based on the config type (`ModelConfig` or `ModelArgs`). + + `ModelArgs` has all the fields reuqired to initialize the model architecture. + + `ModelConfig` has all the fields required for training, inference and containes `ModelArgs`. + + If the config is for training with a name like "*Config", then the model args are embeded in the + config.model_args + + If the config is for the model with a name like "*Args", then we assign the directly. + """ + # don't use isintance not to import recursively + if "Config" in config.__class__.__name__: + config_num_chars = ( + self.config.model_args.num_chars if hasattr(self.config, "model_args") else self.config.num_chars + ) + num_chars = config_num_chars if self.tokenizer is None else self.tokenizer.characters.num_chars + if "characters" in config: + self.config.num_chars = num_chars + if hasattr(self.config, "model_args"): + config.model_args.num_chars = num_chars + self.args = self.config.model_args + else: + self.config = config + self.args = config.model_args + elif "Args" in config.__class__.__name__: + self.args = config + else: + raise ValueError("config must be either a *Config or *Args") + + def init_multispeaker(self, config: Coqpit, data: List = None): + """Initialize a speaker embedding layer if needen and define expected embedding channel size for defining + `in_channels` size of the connected layers. + + This implementation yields 3 possible outcomes: + + 1. If `config.use_speaker_embedding` and `config.use_d_vector_file are False, do nothing. + 2. If `config.use_d_vector_file` is True, set expected embedding channel size to `config.d_vector_dim` or 512. + 3. If `config.use_speaker_embedding`, initialize a speaker embedding layer with channel size of + `config.d_vector_dim` or 512. + + You can override this function for new models. + + Args: + config (Coqpit): Model configuration. + """ + # set number of speakers + if self.speaker_manager is not None: + self.num_speakers = self.speaker_manager.num_speakers + elif hasattr(config, "num_speakers"): + self.num_speakers = config.num_speakers + + # set ultimate speaker embedding size + if config.use_speaker_embedding or config.use_d_vector_file: + self.embedded_speaker_dim = ( + config.d_vector_dim if "d_vector_dim" in config and config.d_vector_dim is not None else 512 + ) + # init speaker embedding layer + if config.use_speaker_embedding and not config.use_d_vector_file: + print(" > Init speaker_embedding layer.") + self.speaker_embedding = nn.Embedding(self.num_speakers, self.embedded_speaker_dim) + self.speaker_embedding.weight.data.normal_(0, 0.3) + + def get_aux_input(self, **kwargs) -> Dict: + """Prepare and return `aux_input` used by `forward()`""" + return {"speaker_id": None, "style_wav": None, "d_vector": None, "language_id": None} + + def get_aux_input_from_test_setences(self, sentence_info): + if hasattr(self.config, "model_args"): + config = self.config.model_args + else: + config = self.config + + # extract speaker and language info + text, speaker_name, style_wav, language_name = None, None, None, None + + if isinstance(sentence_info, list): + if len(sentence_info) == 1: + text = sentence_info[0] + elif len(sentence_info) == 2: + text, speaker_name = sentence_info + elif len(sentence_info) == 3: + text, speaker_name, style_wav = sentence_info + elif len(sentence_info) == 4: + text, speaker_name, style_wav, language_name = sentence_info + else: + text = sentence_info + + # get speaker id/d_vector + speaker_id, d_vector, language_id = None, None, None + if hasattr(self, "speaker_manager"): + if config.use_d_vector_file: + if speaker_name is None: + d_vector = self.speaker_manager.get_random_embeddings() + else: + d_vector = self.speaker_manager.get_d_vector_by_name(speaker_name) + elif config.use_speaker_embedding: + if speaker_name is None: + speaker_id = self.speaker_manager.get_random_id() + else: + speaker_id = self.speaker_manager.ids[speaker_name] + + # get language id + if hasattr(self, "language_manager") and config.use_language_embedding and language_name is not None: + language_id = self.language_manager.ids[language_name] + + return { + "text": text, + "speaker_id": speaker_id, + "style_wav": style_wav, + "d_vector": d_vector, + "language_id": language_id, + } + + def format_batch(self, batch: Dict) -> Dict: + """Generic batch formatting for `TTSDataset`. + + You must override this if you use a custom dataset. + + Args: + batch (Dict): [description] + + Returns: + Dict: [description] + """ + # setup input batch + text_input = batch["token_id"] + text_lengths = batch["token_id_lengths"] + speaker_names = batch["speaker_names"] + linear_input = batch["linear"] + mel_input = batch["mel"] + mel_lengths = batch["mel_lengths"] + stop_targets = batch["stop_targets"] + item_idx = batch["item_idxs"] + d_vectors = batch["d_vectors"] + speaker_ids = batch["speaker_ids"] + attn_mask = batch["attns"] + waveform = batch["waveform"] + pitch = batch["pitch"] + language_ids = batch["language_ids"] + max_text_length = torch.max(text_lengths.float()) + max_spec_length = torch.max(mel_lengths.float()) + + # compute durations from attention masks + durations = None + if attn_mask is not None: + durations = torch.zeros(attn_mask.shape[0], attn_mask.shape[2]) + for idx, am in enumerate(attn_mask): + # compute raw durations + c_idxs = am[:, : text_lengths[idx], : mel_lengths[idx]].max(1)[1] + # c_idxs, counts = torch.unique_consecutive(c_idxs, return_counts=True) + c_idxs, counts = torch.unique(c_idxs, return_counts=True) + dur = torch.ones([text_lengths[idx]]).to(counts.dtype) + dur[c_idxs] = counts + # smooth the durations and set any 0 duration to 1 + # by cutting off from the largest duration indeces. + extra_frames = dur.sum() - mel_lengths[idx] + largest_idxs = torch.argsort(-dur)[:extra_frames] + dur[largest_idxs] -= 1 + assert ( + dur.sum() == mel_lengths[idx] + ), f" [!] total duration {dur.sum()} vs spectrogram length {mel_lengths[idx]}" + durations[idx, : text_lengths[idx]] = dur + + # set stop targets wrt reduction factor + stop_targets = stop_targets.view(text_input.shape[0], stop_targets.size(1) // self.config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze(2) + stop_target_lengths = torch.divide(mel_lengths, self.config.r).ceil_() + + return { + "text_input": text_input, + "text_lengths": text_lengths, + "speaker_names": speaker_names, + "mel_input": mel_input, + "mel_lengths": mel_lengths, + "linear_input": linear_input, + "stop_targets": stop_targets, + "stop_target_lengths": stop_target_lengths, + "attn_mask": attn_mask, + "durations": durations, + "speaker_ids": speaker_ids, + "d_vectors": d_vectors, + "max_text_length": float(max_text_length), + "max_spec_length": float(max_spec_length), + "item_idx": item_idx, + "waveform": waveform, + "pitch": pitch, + "language_ids": language_ids, + } + + def get_sampler(self, config: Coqpit, dataset: TTSDataset, num_gpus=1): + weights = None + data_items = dataset.samples + + if getattr(config, "use_language_weighted_sampler", False): + alpha = getattr(config, "language_weighted_sampler_alpha", 1.0) + print(" > Using Language weighted sampler with alpha:", alpha) + weights = get_language_balancer_weights(data_items) * alpha + + if getattr(config, "use_speaker_weighted_sampler", False): + alpha = getattr(config, "speaker_weighted_sampler_alpha", 1.0) + print(" > Using Speaker weighted sampler with alpha:", alpha) + if weights is not None: + weights += get_speaker_balancer_weights(data_items) * alpha + else: + weights = get_speaker_balancer_weights(data_items) * alpha + + if getattr(config, "use_length_weighted_sampler", False): + alpha = getattr(config, "length_weighted_sampler_alpha", 1.0) + print(" > Using Length weighted sampler with alpha:", alpha) + if weights is not None: + weights += get_length_balancer_weights(data_items) * alpha + else: + weights = get_length_balancer_weights(data_items) * alpha + + if weights is not None: + sampler = WeightedRandomSampler(weights, len(weights)) + else: + sampler = None + + # sampler for DDP + if sampler is None: + sampler = DistributedSampler(dataset) if num_gpus > 1 else None + else: # If a sampler is already defined use this sampler and DDP sampler together + sampler = DistributedSamplerWrapper(sampler) if num_gpus > 1 else sampler + + return sampler + + def get_data_loader( + self, + config: Coqpit, + assets: Dict, + is_eval: bool, + samples: Union[List[Dict], List[List]], + verbose: bool, + num_gpus: int, + rank: int = None, + ) -> "DataLoader": + if is_eval and not config.run_eval: + loader = None + else: + # setup multi-speaker attributes + if hasattr(self, "speaker_manager") and self.speaker_manager is not None: + if hasattr(config, "model_args"): + speaker_id_mapping = self.speaker_manager.ids if config.model_args.use_speaker_embedding else None + d_vector_mapping = self.speaker_manager.embeddings if config.model_args.use_d_vector_file else None + config.use_d_vector_file = config.model_args.use_d_vector_file + else: + speaker_id_mapping = self.speaker_manager.ids if config.use_speaker_embedding else None + d_vector_mapping = self.speaker_manager.embeddings if config.use_d_vector_file else None + else: + speaker_id_mapping = None + d_vector_mapping = None + + # setup multi-lingual attributes + if hasattr(self, "language_manager") and self.language_manager is not None: + language_id_mapping = self.language_manager.ids if self.args.use_language_embedding else None + else: + language_id_mapping = None + + # init dataloader + dataset = TTSDataset( + outputs_per_step=config.r if "r" in config else 1, + compute_linear_spec=config.model.lower() == "tacotron" or config.compute_linear_spec, + compute_f0=config.get("compute_f0", False), + f0_cache_path=config.get("f0_cache_path", None), + samples=samples, + ap=self.ap, + return_wav=config.return_wav if "return_wav" in config else False, + batch_group_size=0 if is_eval else config.batch_group_size * config.batch_size, + min_text_len=config.min_text_len, + max_text_len=config.max_text_len, + min_audio_len=config.min_audio_len, + max_audio_len=config.max_audio_len, + phoneme_cache_path=config.phoneme_cache_path, + precompute_num_workers=config.precompute_num_workers, + use_noise_augment=False if is_eval else config.use_noise_augment, + verbose=verbose, + speaker_id_mapping=speaker_id_mapping, + d_vector_mapping=d_vector_mapping if config.use_d_vector_file else None, + tokenizer=self.tokenizer, + start_by_longest=config.start_by_longest, + language_id_mapping=language_id_mapping, + ) + + # wait all the DDP process to be ready + if num_gpus > 1: + dist.barrier() + + # sort input sequences from short to long + dataset.preprocess_samples() + + # get samplers + sampler = self.get_sampler(config, dataset, num_gpus) + + loader = DataLoader( + dataset, + batch_size=config.eval_batch_size if is_eval else config.batch_size, + shuffle=False, # shuffle is done in the dataset. + collate_fn=dataset.collate_fn, + drop_last=False, # setting this False might cause issues in AMP training. + sampler=sampler, + num_workers=config.num_eval_loader_workers if is_eval else config.num_loader_workers, + pin_memory=False, + ) + return loader + + def _get_test_aux_input( + self, + ) -> Dict: + + d_vector = None + if self.config.use_d_vector_file: + d_vector = [self.speaker_manager.embeddings[name]["embedding"] for name in self.speaker_manager.embeddings] + d_vector = (random.sample(sorted(d_vector), 1),) + + aux_inputs = { + "speaker_id": None + if not self.config.use_speaker_embedding + else random.sample(sorted(self.speaker_manager.ids.values()), 1), + "d_vector": d_vector, + "style_wav": None, # TODO: handle GST style input + } + return aux_inputs + + def test_run(self, assets: Dict) -> Tuple[Dict, Dict]: + """Generic test run for `tts` models used by `Trainer`. + + You can override this for a different behaviour. + + Args: + assets (dict): A dict of training assets. For `tts` models, it must include `{'audio_processor': ap}`. + + Returns: + Tuple[Dict, Dict]: Test figures and audios to be projected to Tensorboard. + """ + print(" | > Synthesizing test sentences.") + test_audios = {} + test_figures = {} + test_sentences = self.config.test_sentences + aux_inputs = self._get_test_aux_input() + for idx, sen in enumerate(test_sentences): + outputs_dict = synthesis( + self, + sen, + self.config, + "cuda" in str(next(self.parameters()).device), + speaker_id=aux_inputs["speaker_id"], + d_vector=aux_inputs["d_vector"], + style_wav=aux_inputs["style_wav"], + use_griffin_lim=True, + do_trim_silence=False, + ) + test_audios["{}-audio".format(idx)] = outputs_dict["wav"] + test_figures["{}-prediction".format(idx)] = plot_spectrogram( + outputs_dict["outputs"]["model_outputs"], self.ap, output_fig=False + ) + test_figures["{}-alignment".format(idx)] = plot_alignment( + outputs_dict["outputs"]["alignments"], output_fig=False + ) + return test_figures, test_audios + + def on_init_start(self, trainer): + """Save the speaker.pth and language_ids.json at the beginning of the training. Also update both paths.""" + if self.speaker_manager is not None: + output_path = os.path.join(trainer.output_path, "speakers.pth") + self.speaker_manager.save_ids_to_file(output_path) + trainer.config.speakers_file = output_path + # some models don't have `model_args` set + if hasattr(trainer.config, "model_args"): + trainer.config.model_args.speakers_file = output_path + trainer.config.save_json(os.path.join(trainer.output_path, "config.json")) + print(f" > `speakers.pth` is saved to {output_path}.") + print(" > `speakers_file` is updated in the config.json.") + + if hasattr(self, "language_manager") and self.language_manager is not None: + output_path = os.path.join(trainer.output_path, "language_ids.json") + self.language_manager.save_ids_to_file(output_path) + trainer.config.language_ids_file = output_path + if hasattr(trainer.config, "model_args"): + trainer.config.model_args.language_ids_file = output_path + trainer.config.save_json(os.path.join(trainer.output_path, "config.json")) + print(f" > `language_ids.json` is saved to {output_path}.") + print(" > `language_ids_file` is updated in the config.json.") diff --git a/Indic-TTS/TTS/TTS/tts/models/forward_tts.py b/Indic-TTS/TTS/TTS/tts/models/forward_tts.py new file mode 100644 index 0000000000000000000000000000000000000000..a6568a49627f8479a1122056d8f802275dc174ab --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/models/forward_tts.py @@ -0,0 +1,887 @@ +from dataclasses import dataclass, field +from typing import Dict, List, Tuple, Union + +import torch +import torchaudio +from coqpit import Coqpit +from torch import nn +from torch.cuda.amp.autocast_mode import autocast + +from TTS.config import load_config +from TTS.tts.layers.feed_forward.decoder import Decoder +from TTS.tts.layers.feed_forward.encoder import Encoder +from TTS.tts.layers.generic.aligner import AlignmentNetwork +from TTS.tts.layers.generic.pos_encoding import PositionalEncoding +from TTS.tts.layers.glow_tts.duration_predictor import DurationPredictor +from TTS.tts.models.base_tts import BaseTTS +from TTS.utils.audio import AudioProcessor +from TTS.tts.utils.helpers import average_over_durations, generate_path, maximum_path, sequence_mask +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.tts.utils.visual import plot_alignment, plot_avg_pitch, plot_spectrogram +from TTS.vocoder.models import setup_model as setup_vocoder_model +from trainer.trainer_utils import get_optimizer, get_scheduler + +@dataclass +class ForwardTTSArgs(Coqpit): + """ForwardTTS Model arguments. + + Args: + + num_chars (int): + Number of characters in the vocabulary. Defaults to 100. + + out_channels (int): + Number of output channels. Defaults to 80. + + hidden_channels (int): + Number of base hidden channels of the model. Defaults to 512. + + use_aligner (bool): + Whether to use aligner network to learn the text to speech alignment or use pre-computed durations. + If set False, durations should be computed by `TTS/bin/compute_attention_masks.py` and path to the + pre-computed durations must be provided to `config.datasets[0].meta_file_attn_mask`. Defaults to True. + + use_pitch (bool): + Use pitch predictor to learn the pitch. Defaults to True. + + duration_predictor_hidden_channels (int): + Number of hidden channels in the duration predictor. Defaults to 256. + + duration_predictor_dropout_p (float): + Dropout rate for the duration predictor. Defaults to 0.1. + + duration_predictor_kernel_size (int): + Kernel size of conv layers in the duration predictor. Defaults to 3. + + pitch_predictor_hidden_channels (int): + Number of hidden channels in the pitch predictor. Defaults to 256. + + pitch_predictor_dropout_p (float): + Dropout rate for the pitch predictor. Defaults to 0.1. + + pitch_predictor_kernel_size (int): + Kernel size of conv layers in the pitch predictor. Defaults to 3. + + pitch_embedding_kernel_size (int): + Kernel size of the projection layer in the pitch predictor. Defaults to 3. + + positional_encoding (bool): + Whether to use positional encoding. Defaults to True. + + positional_encoding_use_scale (bool): + Whether to use a learnable scale coeff in the positional encoding. Defaults to True. + + length_scale (int): + Length scale that multiplies the predicted durations. Larger values result slower speech. Defaults to 1.0. + + encoder_type (str): + Type of the encoder module. One of the encoders available in :class:`TTS.tts.layers.feed_forward.encoder`. + Defaults to `fftransformer` as in the paper. + + encoder_params (dict): + Parameters of the encoder module. Defaults to ```{"hidden_channels_ffn": 1024, "num_heads": 1, "num_layers": 6, "dropout_p": 0.1}``` + + decoder_type (str): + Type of the decoder module. One of the decoders available in :class:`TTS.tts.layers.feed_forward.decoder`. + Defaults to `fftransformer` as in the paper. + + decoder_params (str): + Parameters of the decoder module. Defaults to ```{"hidden_channels_ffn": 1024, "num_heads": 1, "num_layers": 6, "dropout_p": 0.1}``` + + detach_duration_predictor (bool): + Detach the input to the duration predictor from the earlier computation graph so that the duraiton loss + does not pass to the earlier layers. Defaults to True. + + max_duration (int): + Maximum duration accepted by the model. Defaults to 75. + + num_speakers (int): + Number of speakers for the speaker embedding layer. Defaults to 0. + + speakers_file (str): + Path to the speaker mapping file for the Speaker Manager. Defaults to None. + + speaker_embedding_channels (int): + Number of speaker embedding channels. Defaults to 256. + + use_d_vector_file (bool): + Enable/Disable the use of d-vectors for multi-speaker training. Defaults to False. + + d_vector_dim (int): + Number of d-vector channels. Defaults to 0. + + use_speaker_encoder_as_loss (bool): + Enable/Disable Speaker Consistency Loss (SCL). Defaults to False. + + speaker_encoder_config_path (str): + Path to the file speaker encoder config file, to use for SCL. Defaults to "". + + speaker_encoder_model_path (str): + Path to the file speaker encoder checkpoint file, to use for SCL. Defaults to "". + + """ + + num_chars: int = None + out_channels: int = 80 + hidden_channels: int = 384 + use_aligner: bool = True + use_pitch: bool = True + pitch_predictor_hidden_channels: int = 256 + pitch_predictor_kernel_size: int = 3 + pitch_predictor_dropout_p: float = 0.1 + pitch_embedding_kernel_size: int = 3 + duration_predictor_hidden_channels: int = 256 + duration_predictor_kernel_size: int = 3 + duration_predictor_dropout_p: float = 0.1 + positional_encoding: bool = True + poisitonal_encoding_use_scale: bool = True + length_scale: int = 1 + encoder_type: str = "fftransformer" + encoder_params: dict = field( + default_factory=lambda: {"hidden_channels_ffn": 1024, "num_heads": 1, "num_layers": 6, "dropout_p": 0.1} + ) + decoder_type: str = "fftransformer" + decoder_params: dict = field( + default_factory=lambda: {"hidden_channels_ffn": 1024, "num_heads": 1, "num_layers": 6, "dropout_p": 0.1} + ) + detach_duration_predictor: bool = False + max_duration: int = 75 + num_speakers: int = 1 + use_speaker_embedding: bool = False + speakers_file: str = None + use_d_vector_file: bool = False + d_vector_dim: int = None + d_vector_file: str = None + use_speaker_encoder_as_loss: bool = False + speaker_encoder_config_path: str = "" + speaker_encoder_model_path: str = "" + # external vocoder for speaker encoder loss + vocoder_path: str = None + vocoder_config_path: str = None + use_separate_optimizers: bool = False + + +class ForwardTTS(BaseTTS): + """General forward TTS model implementation that uses an encoder-decoder architecture with an optional alignment + network and a pitch predictor. + + If the alignment network is used, the model learns the text-to-speech alignment + from the data instead of using pre-computed durations. + + If the pitch predictor is used, the model trains a pitch predictor that predicts average pitch value for each + input character as in the FastPitch model. + + `ForwardTTS` can be configured to one of these architectures, + + - FastPitch + - SpeedySpeech + - FastSpeech + - TODO: FastSpeech2 (requires average speech energy predictor) + + Args: + config (Coqpit): Model coqpit class. + speaker_manager (SpeakerManager): Speaker manager for multi-speaker training. Only used for multi-speaker models. + Defaults to None. + + Examples: + >>> from TTS.tts.models.fast_pitch import ForwardTTS, ForwardTTSArgs + >>> config = ForwardTTSArgs() + >>> model = ForwardTTS(config) + """ + + # pylint: disable=dangerous-default-value + def __init__( + self, + config: Coqpit, + ap: "AudioProcessor" = None, + tokenizer: "TTSTokenizer" = None, + speaker_manager: SpeakerManager = None, + ): + super().__init__(config, ap, tokenizer, speaker_manager) + self._set_model_args(config) + + self.init_multispeaker(config) + + self.max_duration = self.args.max_duration + self.use_aligner = self.args.use_aligner + self.use_pitch = self.args.use_pitch + self.binary_loss_weight = 0.0 + self.train_aligner = True + + self.length_scale = ( + float(self.args.length_scale) if isinstance(self.args.length_scale, int) else self.args.length_scale + ) + + self.emb = nn.Embedding(self.args.num_chars, self.args.hidden_channels) + + self.encoder = Encoder( + self.args.hidden_channels, + self.args.hidden_channels, + self.args.encoder_type, + self.args.encoder_params, + self.embedded_speaker_dim, + ) + + if self.args.positional_encoding: + self.pos_encoder = PositionalEncoding(self.args.hidden_channels) + + self.decoder = Decoder( + self.args.out_channels, + self.args.hidden_channels, + self.args.decoder_type, + self.args.decoder_params, + ) + + self.duration_predictor = DurationPredictor( + self.args.hidden_channels + self.embedded_speaker_dim, + self.args.duration_predictor_hidden_channels, + self.args.duration_predictor_kernel_size, + self.args.duration_predictor_dropout_p, + ) + + if self.args.use_pitch: + self.pitch_predictor = DurationPredictor( + self.args.hidden_channels + self.embedded_speaker_dim, + self.args.pitch_predictor_hidden_channels, + self.args.pitch_predictor_kernel_size, + self.args.pitch_predictor_dropout_p, + ) + self.pitch_emb = nn.Conv1d( + 1, + self.args.hidden_channels, + kernel_size=self.args.pitch_embedding_kernel_size, + padding=int((self.args.pitch_embedding_kernel_size - 1) / 2), + ) + + if self.args.use_aligner: + self.aligner = AlignmentNetwork( + in_query_channels=self.args.out_channels, in_key_channels=self.args.hidden_channels + ) + + if self.args.vocoder_path and self.args.vocoder_config_path: + self.vocoder_config = load_config(self.args.vocoder_config_path) + self.vocoder_ap = AudioProcessor(verbose=False, **self.vocoder_config.audio) + self.vocoder_model = setup_vocoder_model(self.vocoder_config) + self.vocoder_model.load_checkpoint(self.vocoder_config, self.args.vocoder_path, eval=False) + self.vocoder_model.cuda() + print("> Vocoder loaded for speaker_encoder_loss") + + + def init_multispeaker(self, config: Coqpit): + """Init for multi-speaker training. + + Args: + config (Coqpit): Model configuration. + """ + self.embedded_speaker_dim = 0 + # init speaker manager + if self.speaker_manager is None and (config.use_d_vector_file or config.use_speaker_embedding): + raise ValueError( + " > SpeakerManager is not provided. You must provide the SpeakerManager before initializing a multi-speaker model." + ) + # set number of speakers + if self.speaker_manager is not None: + self.num_speakers = self.speaker_manager.num_speakers + # init d-vector embedding + if config.use_d_vector_file: + #self.embedded_speaker_dim = config.d_vector_dim + if self.args.d_vector_dim != self.args.hidden_channels: + self.proj_g = nn.Conv1d(self.args.d_vector_dim, self.args.hidden_channels, 1) + # init speaker embedding layer + if config.use_speaker_embedding and not config.use_d_vector_file: + print(" > Init speaker_embedding layer.") + self.emb_g = nn.Embedding(self.num_speakers, self.args.hidden_channels) + nn.init.uniform_(self.emb_g.weight, -0.1, 0.1) + + if self.args.use_speaker_encoder_as_loss: + if self.speaker_manager.encoder is None and ( + not self.args.speaker_encoder_model_path or not self.args.speaker_encoder_config_path + ): + raise RuntimeError( + " [!] To use the speaker consistency loss (SCL) you need to specify speaker_encoder_model_path and speaker_encoder_config_path !!" + ) + + self.speaker_manager.encoder.eval() + print(" > External Speaker Encoder Loaded !!") + + # pylint: disable=W0101,W0105 + self.audio_transform = torchaudio.transforms.Resample( + orig_freq=self.config.audio.sample_rate, + new_freq=self.speaker_manager.encoder.audio_config["sample_rate"], + ) + + # as we are loading spectograms directly + # self.speaker_manager.encoder.use_torch_spec = False + # print(" > External Speaker Encoder use_torch_spec is set to False !!") + # if self.args.out_channels != self.speaker_manager.encoder.input_dim: + # self.pre_speaker_encoder = nn.Conv1d(self.args.out_channels, self.speaker_manager.encoder.input_dim, 1) + + @staticmethod + def generate_attn(dr, x_mask, y_mask=None): + """Generate an attention mask from the durations. + + Shapes + - dr: :math:`(B, T_{en})` + - x_mask: :math:`(B, T_{en})` + - y_mask: :math:`(B, T_{de})` + """ + # compute decode mask from the durations + if y_mask is None: + y_lengths = dr.sum(1).long() + y_lengths[y_lengths < 1] = 1 + y_mask = torch.unsqueeze(sequence_mask(y_lengths, None), 1).to(dr.dtype) + attn_mask = torch.unsqueeze(x_mask, -1) * torch.unsqueeze(y_mask, 2) + attn = generate_path(dr, attn_mask.squeeze(1)).to(dr.dtype) + return attn + + def expand_encoder_outputs(self, en, dr, x_mask, y_mask): + """Generate attention alignment map from durations and + expand encoder outputs + + Shapes: + - en: :math:`(B, D_{en}, T_{en})` + - dr: :math:`(B, T_{en})` + - x_mask: :math:`(B, T_{en})` + - y_mask: :math:`(B, T_{de})` + + Examples:: + + encoder output: [a,b,c,d] + durations: [1, 3, 2, 1] + + expanded: [a, b, b, b, c, c, d] + attention map: [[0, 0, 0, 0, 0, 0, 1], + [0, 0, 0, 0, 1, 1, 0], + [0, 1, 1, 1, 0, 0, 0], + [1, 0, 0, 0, 0, 0, 0]] + """ + attn = self.generate_attn(dr, x_mask, y_mask) + o_en_ex = torch.matmul(attn.squeeze(1).transpose(1, 2).to(en.dtype), en.transpose(1, 2)).transpose(1, 2) + return o_en_ex, attn + + def format_durations(self, o_dr_log, x_mask): + """Format predicted durations. + 1. Convert to linear scale from log scale + 2. Apply the length scale for speed adjustment + 3. Apply masking. + 4. Cast 0 durations to 1. + 5. Round the duration values. + + Args: + o_dr_log: Log scale durations. + x_mask: Input text mask. + + Shapes: + - o_dr_log: :math:`(B, T_{de})` + - x_mask: :math:`(B, T_{en})` + """ + o_dr = (torch.exp(o_dr_log) - 1) * x_mask * self.length_scale + o_dr[o_dr < 1] = 1.0 + o_dr = torch.round(o_dr) + return o_dr + + def _forward_encoder( + self, x: torch.LongTensor, x_mask: torch.FloatTensor, g: torch.FloatTensor = None + ) -> Tuple[torch.FloatTensor, torch.FloatTensor, torch.FloatTensor, torch.FloatTensor, torch.FloatTensor]: + """Encoding forward pass. + + 1. Embed speaker IDs if multi-speaker mode. + 2. Embed character sequences. + 3. Run the encoder network. + 4. Sum encoder outputs and speaker embeddings + + Args: + x (torch.LongTensor): Input sequence IDs. + x_mask (torch.FloatTensor): Input squence mask. + g (torch.FloatTensor, optional): Conditioning vectors. In general speaker embeddings. Defaults to None. + + Returns: + Tuple[torch.tensor, torch.tensor, torch.tensor, torch.tensor, torch.tensor]: + encoder output, encoder output for the duration predictor, input sequence mask, speaker embeddings, + character embeddings + + Shapes: + - x: :math:`(B, T_{en})` + - x_mask: :math:`(B, 1, T_{en})` + - g: :math:`(B, C)` + """ + if hasattr(self, "emb_g"): + g = self.emb_g(g) # [] -> [C] for single input; [B] -> [B, C] + if g is not None: + g = g.unsqueeze(-1) # [C] -> [C, 1] for single input; [B, C] -> [B, C, 1] + x_emb = self.emb(x) # [T] -> [T, C] for single input; [B, T] -> [B, T, C] + # encoder pass + o_en = self.encoder(torch.transpose(x_emb, 1, -1), x_mask) # [C, T] for single input; [B, C, T] + # speaker conditioning + # TODO: try different ways of conditioning + if g is not None: + o_en = o_en + g # [C, T] for single input; [B, C, T] + return o_en, x_mask, g, x_emb + + def _forward_decoder( + self, + o_en: torch.FloatTensor, + dr: torch.IntTensor, + x_mask: torch.FloatTensor, + y_lengths: torch.IntTensor, + g: torch.FloatTensor, + ) -> Tuple[torch.FloatTensor, torch.FloatTensor]: + """Decoding forward pass. + + 1. Compute the decoder output mask + 2. Expand encoder output with the durations. + 3. Apply position encoding. + 4. Add speaker embeddings if multi-speaker mode. + 5. Run the decoder. + + Args: + o_en (torch.FloatTensor): Encoder output. + dr (torch.IntTensor): Ground truth durations or alignment network durations. + x_mask (torch.IntTensor): Input sequence mask. + y_lengths (torch.IntTensor): Output sequence lengths. + g (torch.FloatTensor): Conditioning vectors. In general speaker embeddings. + + Returns: + Tuple[torch.FloatTensor, torch.FloatTensor]: Decoder output, attention map from durations. + """ + y_mask = torch.unsqueeze(sequence_mask(y_lengths, None), 1).to(o_en.dtype) + # expand o_en with durations + o_en_ex, attn = self.expand_encoder_outputs(o_en, dr, x_mask, y_mask) + # positional encoding + if hasattr(self, "pos_encoder"): + o_en_ex = self.pos_encoder(o_en_ex, y_mask) + # decoder pass + o_de = self.decoder(o_en_ex, y_mask, g=g) + return o_de.transpose(1, 2), attn.transpose(1, 2) + + def _forward_pitch_predictor( + self, + o_en: torch.FloatTensor, + x_mask: torch.IntTensor, + pitch: torch.FloatTensor = None, + dr: torch.IntTensor = None, + ) -> Tuple[torch.FloatTensor, torch.FloatTensor]: + """Pitch predictor forward pass. + + 1. Predict pitch from encoder outputs. + 2. In training - Compute average pitch values for each input character from the ground truth pitch values. + 3. Embed average pitch values. + + Args: + o_en (torch.FloatTensor): Encoder output. + x_mask (torch.IntTensor): Input sequence mask. + pitch (torch.FloatTensor, optional): Ground truth pitch values. Defaults to None. + dr (torch.IntTensor, optional): Ground truth durations. Defaults to None. + + Returns: + Tuple[torch.FloatTensor, torch.FloatTensor]: Pitch embedding, pitch prediction. + + Shapes: + - o_en: :math:`(B, C, T_{en})` + - x_mask: :math:`(B, 1, T_{en})` + - pitch: :math:`(B, 1, T_{de})` + - dr: :math:`(B, T_{en})` + """ + o_pitch = self.pitch_predictor(o_en, x_mask) + if pitch is not None: + avg_pitch = average_over_durations(pitch, dr) + o_pitch_emb = self.pitch_emb(avg_pitch) + return o_pitch_emb, o_pitch, avg_pitch + o_pitch_emb = self.pitch_emb(o_pitch) + return o_pitch_emb, o_pitch + + def _forward_aligner( + self, x: torch.FloatTensor, y: torch.FloatTensor, x_mask: torch.IntTensor, y_mask: torch.IntTensor + ) -> Tuple[torch.IntTensor, torch.FloatTensor, torch.FloatTensor, torch.FloatTensor]: + """Aligner forward pass. + + 1. Compute a mask to apply to the attention map. + 2. Run the alignment network. + 3. Apply MAS to compute the hard alignment map. + 4. Compute the durations from the hard alignment map. + + Args: + x (torch.FloatTensor): Input sequence. + y (torch.FloatTensor): Output sequence. + x_mask (torch.IntTensor): Input sequence mask. + y_mask (torch.IntTensor): Output sequence mask. + + Returns: + Tuple[torch.IntTensor, torch.FloatTensor, torch.FloatTensor, torch.FloatTensor]: + Durations from the hard alignment map, soft alignment potentials, log scale alignment potentials, + hard alignment map. + + Shapes: + - x: :math:`[B, T_en, C_en]` + - y: :math:`[B, T_de, C_de]` + - x_mask: :math:`[B, 1, T_en]` + - y_mask: :math:`[B, 1, T_de]` + + - o_alignment_dur: :math:`[B, T_en]` + - alignment_soft: :math:`[B, T_en, T_de]` + - alignment_logprob: :math:`[B, 1, T_de, T_en]` + - alignment_mas: :math:`[B, T_en, T_de]` + """ + attn_mask = torch.unsqueeze(x_mask, -1) * torch.unsqueeze(y_mask, 2) + alignment_soft, alignment_logprob = self.aligner(y.transpose(1, 2), x.transpose(1, 2), x_mask, None) + alignment_mas = maximum_path( + alignment_soft.squeeze(1).transpose(1, 2).contiguous(), attn_mask.squeeze(1).contiguous() + ) + o_alignment_dur = torch.sum(alignment_mas, -1).int() + alignment_soft = alignment_soft.squeeze(1).transpose(1, 2) + return o_alignment_dur, alignment_soft, alignment_logprob, alignment_mas + + def _set_speaker_input(self, aux_input: Dict): + d_vectors = aux_input.get("d_vectors", None) + speaker_ids = aux_input.get("speaker_ids", None) + + if d_vectors is not None and speaker_ids is not None: + raise ValueError("[!] Cannot use d-vectors and speaker-ids together.") + + if speaker_ids is not None and not hasattr(self, "emb_g"): + raise ValueError("[!] Cannot use speaker-ids without enabling speaker embedding.") + + g = speaker_ids if speaker_ids is not None else d_vectors + return g + + def forward( + self, + x: torch.LongTensor, + x_lengths: torch.LongTensor, + y_lengths: torch.LongTensor, + y: torch.FloatTensor = None, + dr: torch.IntTensor = None, + pitch: torch.FloatTensor = None, + aux_input: Dict = {"d_vectors": None, "speaker_ids": None}, # pylint: disable=unused-argument + waveform: torch.tensor = None, + ) -> Dict: + """Model's forward pass. + + Args: + x (torch.LongTensor): Input character sequences. + x_lengths (torch.LongTensor): Input sequence lengths. + y_lengths (torch.LongTensor): Output sequnce lengths. Defaults to None. + y (torch.FloatTensor): Spectrogram frames. Only used when the alignment network is on. Defaults to None. + dr (torch.IntTensor): Character durations over the spectrogram frames. Only used when the alignment network is off. Defaults to None. + pitch (torch.FloatTensor): Pitch values for each spectrogram frame. Only used when the pitch predictor is on. Defaults to None. + aux_input (Dict): Auxiliary model inputs for multi-speaker training. Defaults to `{"d_vectors": 0, "speaker_ids": None}`. + + Shapes: + - x: :math:`[B, T_max]` + - x_lengths: :math:`[B]` + - y_lengths: :math:`[B]` + - y: :math:`[B, T_max2]` + - dr: :math:`[B, T_max]` + - g: :math:`[B, C]` + - pitch: :math:`[B, 1, T]` + """ + g = self._set_speaker_input(aux_input) + # compute sequence masks + y_mask = torch.unsqueeze(sequence_mask(y_lengths, None), 1).float() + x_mask = torch.unsqueeze(sequence_mask(x_lengths, x.shape[1]), 1).float() + # encoder pass + o_en, x_mask, g, x_emb = self._forward_encoder(x, x_mask, g) + # duration predictor pass + if self.args.detach_duration_predictor: + o_dr_log = self.duration_predictor(o_en.detach(), x_mask) + else: + o_dr_log = self.duration_predictor(o_en, x_mask) + o_dr = torch.clamp(torch.exp(o_dr_log) - 1, 0, self.max_duration) + # generate attn mask from predicted durations + o_attn = self.generate_attn(o_dr.squeeze(1), x_mask) + # aligner + o_alignment_dur = None + alignment_soft = None + alignment_logprob = None + alignment_mas = None + if self.use_aligner: + o_alignment_dur, alignment_soft, alignment_logprob, alignment_mas = self._forward_aligner( + x_emb, y, x_mask, y_mask + ) + alignment_soft = alignment_soft.transpose(1, 2) + alignment_mas = alignment_mas.transpose(1, 2) + dr = o_alignment_dur + # pitch predictor pass + o_pitch = None + avg_pitch = None + if self.args.use_pitch: + o_pitch_emb, o_pitch, avg_pitch = self._forward_pitch_predictor(o_en, x_mask, pitch, dr) + o_en = o_en + o_pitch_emb + # decoder pass + o_de, attn = self._forward_decoder( + o_en, dr, x_mask, y_lengths, g=None + ) # TODO: maybe pass speaker embedding (g) too + + if self.args.use_speaker_encoder_as_loss and self.speaker_manager.encoder is not None: + # ensure tss config and vocoder config are same + waveform_pred = self.vocoder_model.forward(o_de.transpose(1, 2)) + + # concate generated and GT waveforms + wavs_batch = torch.cat((waveform.squeeze(dim=2), waveform_pred.squeeze(dim=1)), dim=0) + + # resample audio to speaker encoder sample_rate + # pylint: disable=W0105 + if self.audio_transform is not None: + wavs_batch = self.audio_transform(wavs_batch) + pred_embs = self.speaker_manager.encoder.forward(wavs_batch.float(), l2_norm=True) + + # specs_batch = torch.cat((y, o_de), dim=0) + # specs_batch = specs_batch.transpose(1, 2) # swapping time and freq dimensions # [B, F, T] + # if self.pre_speaker_encoder: # specs_batch.size(1) != self.speaker_manager.encoder.input_dim: + # specs_batch = self.pre_speaker_encoder(specs_batch) + # specs_batch = torch.nn.functional.relu(specs_batch) + # pred_embs = self.speaker_manager.encoder.forward(specs_batch, l2_norm=True) + + # split generated and GT speaker embeddings + gt_spk_emb, syn_spk_emb = torch.chunk(pred_embs, 2, dim=0) + else: + gt_spk_emb, syn_spk_emb = None, None + + outputs = { + "model_outputs": o_de, # [B, T, C] + "durations_log": o_dr_log.squeeze(1), # [B, T] + "durations": o_dr.squeeze(1), # [B, T] + "attn_durations": o_attn, # for visualization [B, T_en, T_de'] + "pitch_avg": o_pitch, + "pitch_avg_gt": avg_pitch, + "alignments": attn, # [B, T_de, T_en] + "alignment_soft": alignment_soft, + "alignment_mas": alignment_mas, + "o_alignment_dur": o_alignment_dur, + "alignment_logprob": alignment_logprob, + "x_mask": x_mask, + "y_mask": y_mask, + "gt_spk_emb": gt_spk_emb, + "syn_spk_emb": syn_spk_emb, + } + return outputs + + @torch.no_grad() + def inference(self, x, aux_input={"d_vectors": None, "speaker_ids": None}): # pylint: disable=unused-argument + """Model's inference pass. + + Args: + x (torch.LongTensor): Input character sequence. + aux_input (Dict): Auxiliary model inputs. Defaults to `{"d_vectors": None, "speaker_ids": None}`. + + Shapes: + - x: [B, T_max] + - x_lengths: [B] + - g: [B, C] + """ + g = self._set_speaker_input(aux_input) + x_lengths = torch.tensor(x.shape[1:2]).to(x.device) + x_mask = torch.unsqueeze(sequence_mask(x_lengths, x.shape[1]), 1).to(x.dtype).float() + # encoder pass + o_en, x_mask, g, _ = self._forward_encoder(x, x_mask, g) + # duration predictor pass + o_dr_log = self.duration_predictor(o_en, x_mask) + o_dr = self.format_durations(o_dr_log, x_mask).squeeze(1) + y_lengths = o_dr.sum(1) + # pitch predictor pass + o_pitch = None + if self.args.use_pitch: + o_pitch_emb, o_pitch = self._forward_pitch_predictor(o_en, x_mask) + o_en = o_en + o_pitch_emb + # decoder pass + o_de, attn = self._forward_decoder(o_en, o_dr, x_mask, y_lengths, g=None) + outputs = { + "model_outputs": o_de, + "alignments": attn, + "pitch": o_pitch, + "durations_log": o_dr_log, + } + return outputs + + @torch.no_grad() + def inference2(self, x, x_lengths, aux_input={"d_vectors": None, "speaker_ids": None}): # pylint: disable=unused-argument + """Model's inference pass. + + Args: + x (torch.LongTensor): Input character sequence. + aux_input (Dict): Auxiliary model inputs. Defaults to `{"d_vectors": None, "speaker_ids": None}`. + + Shapes: + - x: [B, T_max] + - x_lengths: [B] + - g: [B, C] + """ + g = self._set_speaker_input(aux_input) + #x_lengths = torch.tensor(x.shape[1:2]).to(x.device) + x_mask = torch.unsqueeze(sequence_mask(x_lengths, x.shape[1]), 1).to(x.dtype).float() + # encoder pass + o_en, x_mask, g, _ = self._forward_encoder(x, x_mask, g) + # duration predictor pass + o_dr_log = self.duration_predictor(o_en, x_mask) + o_dr = self.format_durations(o_dr_log, x_mask).squeeze(1) + y_lengths = o_dr.sum(1) + # pitch predictor pass + o_pitch = None + if self.args.use_pitch: + o_pitch_emb, o_pitch = self._forward_pitch_predictor(o_en, x_mask) + o_en = o_en + o_pitch_emb + # decoder pass + o_de, attn = self._forward_decoder(o_en, o_dr, x_mask, y_lengths, g=None) + outputs = { + "model_outputs": o_de, + "alignments": attn, + "pitch": o_pitch, + "durations_log": o_dr_log, + } + return outputs + + def train_step(self, batch: dict, criterion: nn.Module, optimizer_idx=None): + text_input = batch["text_input"] + text_lengths = batch["text_lengths"] + mel_input = batch["mel_input"] + mel_lengths = batch["mel_lengths"] + waveform = batch["waveform"] + pitch = batch["pitch"] if self.args.use_pitch else None + d_vectors = batch["d_vectors"] + speaker_ids = batch["speaker_ids"] + durations = batch["durations"] + aux_input = {"d_vectors": d_vectors, "speaker_ids": speaker_ids} + + + # forward pass + outputs = self.forward( + text_input, text_lengths, mel_lengths, y=mel_input, dr=durations, pitch=pitch, aux_input=aux_input, waveform=waveform + ) + # use aligner's output as the duration target + if self.use_aligner: + durations = outputs["o_alignment_dur"] + # use float32 in AMP + with autocast(enabled=False): + # compute loss + loss_dict = criterion( + decoder_output=outputs["model_outputs"], + decoder_target=mel_input, + decoder_output_lens=mel_lengths, + dur_output=outputs["durations_log"], + dur_target=durations, + pitch_output=outputs["pitch_avg"] if self.use_pitch else None, + pitch_target=outputs["pitch_avg_gt"] if self.use_pitch else None, + input_lens=text_lengths, + alignment_logprob=outputs["alignment_logprob"] if self.use_aligner else None, + alignment_soft=outputs["alignment_soft"], + alignment_hard=outputs["alignment_mas"], + binary_loss_weight=self.binary_loss_weight, + train_aligner=self.train_aligner, + use_speaker_encoder_as_loss=self.args.use_speaker_encoder_as_loss, + gt_spk_emb=outputs['gt_spk_emb'], + syn_spk_emb=outputs['syn_spk_emb'], + ) + # compute duration error + durations_pred = outputs["durations"] + duration_error = torch.abs(durations - durations_pred).sum() / text_lengths.sum() + loss_dict["duration_error"] = duration_error + + return outputs, loss_dict + + def _create_logs(self, batch, outputs, ap): + """Create common logger outputs.""" + if isinstance(outputs, list): + outputs = outputs[0] + model_outputs = outputs["model_outputs"] + alignments = outputs["alignments"] + mel_input = batch["mel_input"] + + pred_spec = model_outputs[0].data.cpu().numpy() + gt_spec = mel_input[0].data.cpu().numpy() + align_img = alignments[0].data.cpu().numpy() + + figures = { + "prediction": plot_spectrogram(pred_spec, ap, output_fig=False), + "ground_truth": plot_spectrogram(gt_spec, ap, output_fig=False), + "alignment": plot_alignment(align_img, output_fig=False), + } + + # plot pitch figures + if self.args.use_pitch: + pitch_avg = abs(outputs["pitch_avg_gt"][0, 0].data.cpu().numpy()) + pitch_avg_hat = abs(outputs["pitch_avg"][0, 0].data.cpu().numpy()) + chars = self.tokenizer.decode(batch["text_input"][0].data.cpu().numpy()) + pitch_figures = { + "pitch_ground_truth": plot_avg_pitch(pitch_avg, chars, output_fig=False), + "pitch_avg_predicted": plot_avg_pitch(pitch_avg_hat, chars, output_fig=False), + } + figures.update(pitch_figures) + + # plot the attention mask computed from the predicted durations + if "attn_durations" in outputs: + alignments_hat = outputs["attn_durations"][0].data.cpu().numpy() + figures["alignment_hat"] = plot_alignment(alignments_hat.T, output_fig=False) + + # Sample audio + train_audio = ap.inv_melspectrogram(pred_spec.T) + return figures, {"audio": train_audio} + + def train_log( + self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int + ) -> None: # pylint: disable=no-self-use + figures, audios = self._create_logs(batch, outputs, self.ap) + logger.train_figures(steps, figures) + logger.train_audios(steps, audios, self.ap.sample_rate) + + def eval_step(self, batch: dict, criterion: nn.Module, optimizer_idx=None): + return self.train_step(batch, criterion) + + def eval_log(self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int) -> None: + figures, audios = self._create_logs(batch, outputs, self.ap) + logger.eval_figures(steps, figures) + logger.eval_audios(steps, audios, self.ap.sample_rate) + + def load_checkpoint( + self, config, checkpoint_path, eval=False + ): # pylint: disable=unused-argument, redefined-builtin + state = torch.load(checkpoint_path, map_location=torch.device("cpu")) + self.load_state_dict(state["model"]) + if eval: + self.eval() + assert not self.training + + def get_criterion(self): + from TTS.tts.layers.losses import ForwardTTSLoss # pylint: disable=import-outside-toplevel + + return ForwardTTSLoss(self.config) + + def on_train_step_start(self, trainer): + """Schedule binary loss weight.""" + self.binary_loss_weight = min(trainer.epochs_done / self.config.binary_loss_warmup_epochs, 1.0) * 1.0 + if trainer.epochs_done >= self.config.aligner_epochs: + self.train_aligner = False + + @staticmethod + def init_from_config(config: "ForwardTTSConfig", samples: Union[List[List], List[Dict]] = None): + """Initiate model from config + + Args: + config (ForwardTTSConfig): Model config. + samples (Union[List[List], List[Dict]]): Training samples to parse speaker ids for training. + Defaults to None. + """ + from TTS.utils.audio import AudioProcessor + + ap = AudioProcessor.init_from_config(config) + tokenizer, new_config = TTSTokenizer.init_from_config(config) + speaker_manager = SpeakerManager.init_from_config(config, samples) + if config.model_args.speaker_encoder_model_path: # use_speaker_encoder_as_loss + speaker_manager.init_encoder( + config.model_args.speaker_encoder_model_path, config.model_args.speaker_encoder_config_path + ) + # as we are loading spectograms directly + speaker_manager.encoder.use_torch_spec = False + return ForwardTTS(new_config, ap, tokenizer, speaker_manager) + + def get_optimizer(self): + if self.args.use_separate_optimizers: + parameters = (value for key, value in self.named_parameters() if not key.startswith('vocoder_model.') and not key.startswith('aligner.')) + parameters_aligner = (value for key, value in self.named_parameters() if key.startswith('aligner.')) + optimizer = get_optimizer(self.config.optimizer, self.config.optimizer_params, self.config.lr, parameters=parameters) + optimizer_aligner = get_optimizer(self.config.optimizer, self.config.optimizer_params, self.config.lr, parameters=parameters_aligner) + return [optimizer, optimizer_aligner] + else: + parameters = (value for key, value in self.named_parameters() if not key.startswith('vocoder_model.')) + optimizer = get_optimizer(self.config.optimizer, self.config.optimizer_params, self.config.lr, parameters=parameters) + return optimizer \ No newline at end of file diff --git a/Indic-TTS/TTS/TTS/tts/models/glow_tts.py b/Indic-TTS/TTS/TTS/tts/models/glow_tts.py new file mode 100644 index 0000000000000000000000000000000000000000..7c0f95e151cf6b468d55988002d691b176faa98c --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/models/glow_tts.py @@ -0,0 +1,558 @@ +import math +from typing import Dict, List, Tuple, Union + +import torch +from coqpit import Coqpit +from torch import nn +from torch.cuda.amp.autocast_mode import autocast +from torch.nn import functional as F + +from TTS.tts.configs.glow_tts_config import GlowTTSConfig +from TTS.tts.layers.glow_tts.decoder import Decoder +from TTS.tts.layers.glow_tts.encoder import Encoder +from TTS.tts.models.base_tts import BaseTTS +from TTS.tts.utils.helpers import generate_path, maximum_path, sequence_mask +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.synthesis import synthesis +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.tts.utils.visual import plot_alignment, plot_spectrogram +from TTS.utils.io import load_fsspec + + +class GlowTTS(BaseTTS): + """GlowTTS model. + + Paper:: + https://arxiv.org/abs/2005.11129 + + Paper abstract:: + Recently, text-to-speech (TTS) models such as FastSpeech and ParaNet have been proposed to generate + mel-spectrograms from text in parallel. Despite the advantage, the parallel TTS models cannot be trained + without guidance from autoregressive TTS models as their external aligners. In this work, we propose Glow-TTS, + a flow-based generative model for parallel TTS that does not require any external aligner. By combining the + properties of flows and dynamic programming, the proposed model searches for the most probable monotonic + alignment between text and the latent representation of speech on its own. We demonstrate that enforcing hard + monotonic alignments enables robust TTS, which generalizes to long utterances, and employing generative flows + enables fast, diverse, and controllable speech synthesis. Glow-TTS obtains an order-of-magnitude speed-up over + the autoregressive model, Tacotron 2, at synthesis with comparable speech quality. We further show that our + model can be easily extended to a multi-speaker setting. + + Check :class:`TTS.tts.configs.glow_tts_config.GlowTTSConfig` for class arguments. + + Examples: + Init only model layers. + + >>> from TTS.tts.configs.glow_tts_config import GlowTTSConfig + >>> from TTS.tts.models.glow_tts import GlowTTS + >>> config = GlowTTSConfig(num_chars=2) + >>> model = GlowTTS(config) + + Fully init a model ready for action. All the class attributes and class members + (e.g Tokenizer, AudioProcessor, etc.). are initialized internally based on config values. + + >>> from TTS.tts.configs.glow_tts_config import GlowTTSConfig + >>> from TTS.tts.models.glow_tts import GlowTTS + >>> config = GlowTTSConfig() + >>> model = GlowTTS.init_from_config(config, verbose=False) + """ + + def __init__( + self, + config: GlowTTSConfig, + ap: "AudioProcessor" = None, + tokenizer: "TTSTokenizer" = None, + speaker_manager: SpeakerManager = None, + ): + + super().__init__(config, ap, tokenizer, speaker_manager) + + # pass all config fields to `self` + # for fewer code change + self.config = config + for key in config: + setattr(self, key, config[key]) + + self.decoder_output_dim = config.out_channels + + # init multi-speaker layers if necessary + self.init_multispeaker(config) + + self.run_data_dep_init = config.data_dep_init_steps > 0 + self.encoder = Encoder( + self.num_chars, + out_channels=self.out_channels, + hidden_channels=self.hidden_channels_enc, + hidden_channels_dp=self.hidden_channels_dp, + encoder_type=self.encoder_type, + encoder_params=self.encoder_params, + mean_only=self.mean_only, + use_prenet=self.use_encoder_prenet, + dropout_p_dp=self.dropout_p_dp, + c_in_channels=self.c_in_channels, + ) + + self.decoder = Decoder( + self.out_channels, + self.hidden_channels_dec, + self.kernel_size_dec, + self.dilation_rate, + self.num_flow_blocks_dec, + self.num_block_layers, + dropout_p=self.dropout_p_dec, + num_splits=self.num_splits, + num_squeeze=self.num_squeeze, + sigmoid_scale=self.sigmoid_scale, + c_in_channels=self.c_in_channels, + ) + + def init_multispeaker(self, config: Coqpit): + """Init speaker embedding layer if `use_speaker_embedding` is True and set the expected speaker embedding + vector dimension to the encoder layer channel size. If model uses d-vectors, then it only sets + speaker embedding vector dimension to the d-vector dimension from the config. + + Args: + config (Coqpit): Model configuration. + """ + self.embedded_speaker_dim = 0 + # set number of speakers - if num_speakers is set in config, use it, otherwise use speaker_manager + if self.speaker_manager is not None: + self.num_speakers = self.speaker_manager.num_speakers + # set ultimate speaker embedding size + if config.use_d_vector_file: + self.embedded_speaker_dim = ( + config.d_vector_dim if "d_vector_dim" in config and config.d_vector_dim is not None else 512 + ) + if self.speaker_manager is not None: + assert ( + config.d_vector_dim == self.speaker_manager.embedding_dim + ), " [!] d-vector dimension mismatch b/w config and speaker manager." + # init speaker embedding layer + if config.use_speaker_embedding and not config.use_d_vector_file: + print(" > Init speaker_embedding layer.") + self.embedded_speaker_dim = self.hidden_channels_enc + self.emb_g = nn.Embedding(self.num_speakers, self.hidden_channels_enc) + nn.init.uniform_(self.emb_g.weight, -0.1, 0.1) + # set conditioning dimensions + self.c_in_channels = self.embedded_speaker_dim + + @staticmethod + def compute_outputs(attn, o_mean, o_log_scale, x_mask): + """Compute and format the mode outputs with the given alignment map""" + y_mean = torch.matmul(attn.squeeze(1).transpose(1, 2), o_mean.transpose(1, 2)).transpose( + 1, 2 + ) # [b, t', t], [b, t, d] -> [b, d, t'] + y_log_scale = torch.matmul(attn.squeeze(1).transpose(1, 2), o_log_scale.transpose(1, 2)).transpose( + 1, 2 + ) # [b, t', t], [b, t, d] -> [b, d, t'] + # compute total duration with adjustment + o_attn_dur = torch.log(1 + torch.sum(attn, -1)) * x_mask + return y_mean, y_log_scale, o_attn_dur + + def unlock_act_norm_layers(self): + """Unlock activation normalization layers for data depended initalization.""" + for f in self.decoder.flows: + if getattr(f, "set_ddi", False): + f.set_ddi(True) + + def lock_act_norm_layers(self): + """Lock activation normalization layers.""" + for f in self.decoder.flows: + if getattr(f, "set_ddi", False): + f.set_ddi(False) + + def _set_speaker_input(self, aux_input: Dict): + if aux_input is None: + d_vectors = None + speaker_ids = None + else: + d_vectors = aux_input.get("d_vectors", None) + speaker_ids = aux_input.get("speaker_ids", None) + + if d_vectors is not None and speaker_ids is not None: + raise ValueError("[!] Cannot use d-vectors and speaker-ids together.") + + if speaker_ids is not None and not hasattr(self, "emb_g"): + raise ValueError("[!] Cannot use speaker-ids without enabling speaker embedding.") + + g = speaker_ids if speaker_ids is not None else d_vectors + return g + + def _speaker_embedding(self, aux_input: Dict) -> Union[torch.tensor, None]: + g = self._set_speaker_input(aux_input) + # speaker embedding + if g is not None: + if hasattr(self, "emb_g"): + # use speaker embedding layer + if not g.size(): # if is a scalar + g = g.unsqueeze(0) # unsqueeze + g = F.normalize(self.emb_g(g)).unsqueeze(-1) # [b, h, 1] + else: + # use d-vector + g = F.normalize(g).unsqueeze(-1) # [b, h, 1] + return g + + def forward( + self, x, x_lengths, y, y_lengths=None, aux_input={"d_vectors": None, "speaker_ids": None} + ): # pylint: disable=dangerous-default-value + """ + Args: + x (torch.Tensor): + Input text sequence ids. :math:`[B, T_en]` + + x_lengths (torch.Tensor): + Lengths of input text sequences. :math:`[B]` + + y (torch.Tensor): + Target mel-spectrogram frames. :math:`[B, T_de, C_mel]` + + y_lengths (torch.Tensor): + Lengths of target mel-spectrogram frames. :math:`[B]` + + aux_input (Dict): + Auxiliary inputs. `d_vectors` is speaker embedding vectors for a multi-speaker model. + :math:`[B, D_vec]`. `speaker_ids` is speaker ids for a multi-speaker model usind speaker-embedding + layer. :math:`B` + + Returns: + Dict: + - z: :math: `[B, T_de, C]` + - logdet: :math:`B` + - y_mean: :math:`[B, T_de, C]` + - y_log_scale: :math:`[B, T_de, C]` + - alignments: :math:`[B, T_en, T_de]` + - durations_log: :math:`[B, T_en, 1]` + - total_durations_log: :math:`[B, T_en, 1]` + """ + # [B, T, C] -> [B, C, T] + y = y.transpose(1, 2) + y_max_length = y.size(2) + # norm speaker embeddings + g = self._speaker_embedding(aux_input) + # embedding pass + o_mean, o_log_scale, o_dur_log, x_mask = self.encoder(x, x_lengths, g=g) + # drop redisual frames wrt num_squeeze and set y_lengths. + y, y_lengths, y_max_length, attn = self.preprocess(y, y_lengths, y_max_length, None) + # create masks + y_mask = torch.unsqueeze(sequence_mask(y_lengths, y_max_length), 1).to(x_mask.dtype) + # [B, 1, T_en, T_de] + attn_mask = torch.unsqueeze(x_mask, -1) * torch.unsqueeze(y_mask, 2) + # decoder pass + z, logdet = self.decoder(y, y_mask, g=g, reverse=False) + # find the alignment path + with torch.no_grad(): + o_scale = torch.exp(-2 * o_log_scale) + logp1 = torch.sum(-0.5 * math.log(2 * math.pi) - o_log_scale, [1]).unsqueeze(-1) # [b, t, 1] + logp2 = torch.matmul(o_scale.transpose(1, 2), -0.5 * (z**2)) # [b, t, d] x [b, d, t'] = [b, t, t'] + logp3 = torch.matmul((o_mean * o_scale).transpose(1, 2), z) # [b, t, d] x [b, d, t'] = [b, t, t'] + logp4 = torch.sum(-0.5 * (o_mean**2) * o_scale, [1]).unsqueeze(-1) # [b, t, 1] + logp = logp1 + logp2 + logp3 + logp4 # [b, t, t'] + attn = maximum_path(logp, attn_mask.squeeze(1)).unsqueeze(1).detach() + y_mean, y_log_scale, o_attn_dur = self.compute_outputs(attn, o_mean, o_log_scale, x_mask) + attn = attn.squeeze(1).permute(0, 2, 1) + outputs = { + "z": z.transpose(1, 2), + "logdet": logdet, + "y_mean": y_mean.transpose(1, 2), + "y_log_scale": y_log_scale.transpose(1, 2), + "alignments": attn, + "durations_log": o_dur_log.transpose(1, 2), + "total_durations_log": o_attn_dur.transpose(1, 2), + } + return outputs + + @torch.no_grad() + def inference_with_MAS( + self, x, x_lengths, y=None, y_lengths=None, aux_input={"d_vectors": None, "speaker_ids": None} + ): # pylint: disable=dangerous-default-value + """ + It's similar to the teacher forcing in Tacotron. + It was proposed in: https://arxiv.org/abs/2104.05557 + + Shapes: + - x: :math:`[B, T]` + - x_lenghts: :math:`B` + - y: :math:`[B, T, C]` + - y_lengths: :math:`B` + - g: :math:`[B, C] or B` + """ + y = y.transpose(1, 2) + y_max_length = y.size(2) + # norm speaker embeddings + g = self._speaker_embedding(aux_input) + # embedding pass + o_mean, o_log_scale, o_dur_log, x_mask = self.encoder(x, x_lengths, g=g) + # drop redisual frames wrt num_squeeze and set y_lengths. + y, y_lengths, y_max_length, attn = self.preprocess(y, y_lengths, y_max_length, None) + # create masks + y_mask = torch.unsqueeze(sequence_mask(y_lengths, y_max_length), 1).to(x_mask.dtype) + attn_mask = torch.unsqueeze(x_mask, -1) * torch.unsqueeze(y_mask, 2) + # decoder pass + z, logdet = self.decoder(y, y_mask, g=g, reverse=False) + # find the alignment path between z and encoder output + o_scale = torch.exp(-2 * o_log_scale) + logp1 = torch.sum(-0.5 * math.log(2 * math.pi) - o_log_scale, [1]).unsqueeze(-1) # [b, t, 1] + logp2 = torch.matmul(o_scale.transpose(1, 2), -0.5 * (z**2)) # [b, t, d] x [b, d, t'] = [b, t, t'] + logp3 = torch.matmul((o_mean * o_scale).transpose(1, 2), z) # [b, t, d] x [b, d, t'] = [b, t, t'] + logp4 = torch.sum(-0.5 * (o_mean**2) * o_scale, [1]).unsqueeze(-1) # [b, t, 1] + logp = logp1 + logp2 + logp3 + logp4 # [b, t, t'] + attn = maximum_path(logp, attn_mask.squeeze(1)).unsqueeze(1).detach() + + y_mean, y_log_scale, o_attn_dur = self.compute_outputs(attn, o_mean, o_log_scale, x_mask) + attn = attn.squeeze(1).permute(0, 2, 1) + + # get predited aligned distribution + z = y_mean * y_mask + + # reverse the decoder and predict using the aligned distribution + y, logdet = self.decoder(z, y_mask, g=g, reverse=True) + outputs = { + "model_outputs": z.transpose(1, 2), + "logdet": logdet, + "y_mean": y_mean.transpose(1, 2), + "y_log_scale": y_log_scale.transpose(1, 2), + "alignments": attn, + "durations_log": o_dur_log.transpose(1, 2), + "total_durations_log": o_attn_dur.transpose(1, 2), + } + return outputs + + @torch.no_grad() + def decoder_inference( + self, y, y_lengths=None, aux_input={"d_vectors": None, "speaker_ids": None} + ): # pylint: disable=dangerous-default-value + """ + Shapes: + - y: :math:`[B, T, C]` + - y_lengths: :math:`B` + - g: :math:`[B, C] or B` + """ + y = y.transpose(1, 2) + y_max_length = y.size(2) + g = self._speaker_embedding(aux_input) + y_mask = torch.unsqueeze(sequence_mask(y_lengths, y_max_length), 1).to(y.dtype) + # decoder pass + z, logdet = self.decoder(y, y_mask, g=g, reverse=False) + # reverse decoder and predict + y, logdet = self.decoder(z, y_mask, g=g, reverse=True) + outputs = {} + outputs["model_outputs"] = y.transpose(1, 2) + outputs["logdet"] = logdet + return outputs + + @torch.no_grad() + def inference( + self, x, aux_input={"x_lengths": None, "d_vectors": None, "speaker_ids": None} + ): # pylint: disable=dangerous-default-value + x_lengths = aux_input["x_lengths"] + g = self._speaker_embedding(aux_input) + # embedding pass + o_mean, o_log_scale, o_dur_log, x_mask = self.encoder(x, x_lengths, g=g) + # compute output durations + w = (torch.exp(o_dur_log) - 1) * x_mask * self.length_scale + w_ceil = torch.clamp_min(torch.ceil(w), 1) + y_lengths = torch.clamp_min(torch.sum(w_ceil, [1, 2]), 1).long() + y_max_length = None + # compute masks + y_mask = torch.unsqueeze(sequence_mask(y_lengths, y_max_length), 1).to(x_mask.dtype) + attn_mask = torch.unsqueeze(x_mask, -1) * torch.unsqueeze(y_mask, 2) + # compute attention mask + attn = generate_path(w_ceil.squeeze(1), attn_mask.squeeze(1)).unsqueeze(1) + y_mean, y_log_scale, o_attn_dur = self.compute_outputs(attn, o_mean, o_log_scale, x_mask) + + z = (y_mean + torch.exp(y_log_scale) * torch.randn_like(y_mean) * self.inference_noise_scale) * y_mask + # decoder pass + y, logdet = self.decoder(z, y_mask, g=g, reverse=True) + attn = attn.squeeze(1).permute(0, 2, 1) + outputs = { + "model_outputs": y.transpose(1, 2), + "logdet": logdet, + "y_mean": y_mean.transpose(1, 2), + "y_log_scale": y_log_scale.transpose(1, 2), + "alignments": attn, + "durations_log": o_dur_log.transpose(1, 2), + "total_durations_log": o_attn_dur.transpose(1, 2), + } + return outputs + + def train_step(self, batch: dict, criterion: nn.Module): + """A single training step. Forward pass and loss computation. Run data depended initialization for the + first `config.data_dep_init_steps` steps. + + Args: + batch (dict): [description] + criterion (nn.Module): [description] + """ + text_input = batch["text_input"] + text_lengths = batch["text_lengths"] + mel_input = batch["mel_input"] + mel_lengths = batch["mel_lengths"] + d_vectors = batch["d_vectors"] + speaker_ids = batch["speaker_ids"] + + if self.run_data_dep_init and self.training: + # compute data-dependent initialization of activation norm layers + self.unlock_act_norm_layers() + with torch.no_grad(): + _ = self.forward( + text_input, + text_lengths, + mel_input, + mel_lengths, + aux_input={"d_vectors": d_vectors, "speaker_ids": speaker_ids}, + ) + outputs = None + loss_dict = None + self.lock_act_norm_layers() + else: + # normal training step + outputs = self.forward( + text_input, + text_lengths, + mel_input, + mel_lengths, + aux_input={"d_vectors": d_vectors, "speaker_ids": speaker_ids}, + ) + + with autocast(enabled=False): # avoid mixed_precision in criterion + loss_dict = criterion( + outputs["z"].float(), + outputs["y_mean"].float(), + outputs["y_log_scale"].float(), + outputs["logdet"].float(), + mel_lengths, + outputs["durations_log"].float(), + outputs["total_durations_log"].float(), + text_lengths, + ) + return outputs, loss_dict + + def _create_logs(self, batch, outputs, ap): + alignments = outputs["alignments"] + text_input = batch["text_input"][:1] if batch["text_input"] is not None else None + text_lengths = batch["text_lengths"] + mel_input = batch["mel_input"] + d_vectors = batch["d_vectors"][:1] if batch["d_vectors"] is not None else None + speaker_ids = batch["speaker_ids"][:1] if batch["speaker_ids"] is not None else None + + # model runs reverse flow to predict spectrograms + pred_outputs = self.inference( + text_input, + aux_input={"x_lengths": text_lengths[:1], "d_vectors": d_vectors, "speaker_ids": speaker_ids}, + ) + model_outputs = pred_outputs["model_outputs"] + + pred_spec = model_outputs[0].data.cpu().numpy() + gt_spec = mel_input[0].data.cpu().numpy() + align_img = alignments[0].data.cpu().numpy() + + figures = { + "prediction": plot_spectrogram(pred_spec, ap, output_fig=False), + "ground_truth": plot_spectrogram(gt_spec, ap, output_fig=False), + "alignment": plot_alignment(align_img, output_fig=False), + } + + # Sample audio + train_audio = ap.inv_melspectrogram(pred_spec.T) + return figures, {"audio": train_audio} + + def train_log( + self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int + ) -> None: # pylint: disable=no-self-use + figures, audios = self._create_logs(batch, outputs, self.ap) + logger.train_figures(steps, figures) + logger.train_audios(steps, audios, self.ap.sample_rate) + + @torch.no_grad() + def eval_step(self, batch: dict, criterion: nn.Module): + return self.train_step(batch, criterion) + + def eval_log(self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int) -> None: + figures, audios = self._create_logs(batch, outputs, self.ap) + logger.eval_figures(steps, figures) + logger.eval_audios(steps, audios, self.ap.sample_rate) + + @torch.no_grad() + def test_run(self, assets: Dict) -> Tuple[Dict, Dict]: + """Generic test run for `tts` models used by `Trainer`. + + You can override this for a different behaviour. + + Returns: + Tuple[Dict, Dict]: Test figures and audios to be projected to Tensorboard. + """ + print(" | > Synthesizing test sentences.") + test_audios = {} + test_figures = {} + test_sentences = self.config.test_sentences + aux_inputs = self._get_test_aux_input() + if len(test_sentences) == 0: + print(" | [!] No test sentences provided.") + else: + for idx, sen in enumerate(test_sentences): + outputs = synthesis( + self, + sen, + self.config, + "cuda" in str(next(self.parameters()).device), + speaker_id=aux_inputs["speaker_id"], + d_vector=aux_inputs["d_vector"], + style_wav=aux_inputs["style_wav"], + use_griffin_lim=True, + do_trim_silence=False, + ) + + test_audios["{}-audio".format(idx)] = outputs["wav"] + test_figures["{}-prediction".format(idx)] = plot_spectrogram( + outputs["outputs"]["model_outputs"], self.ap, output_fig=False + ) + test_figures["{}-alignment".format(idx)] = plot_alignment(outputs["alignments"], output_fig=False) + return test_figures, test_audios + + def preprocess(self, y, y_lengths, y_max_length, attn=None): + if y_max_length is not None: + y_max_length = (y_max_length // self.num_squeeze) * self.num_squeeze + y = y[:, :, :y_max_length] + if attn is not None: + attn = attn[:, :, :, :y_max_length] + y_lengths = (y_lengths // self.num_squeeze) * self.num_squeeze + return y, y_lengths, y_max_length, attn + + def store_inverse(self): + self.decoder.store_inverse() + + def load_checkpoint( + self, config, checkpoint_path, eval=False + ): # pylint: disable=unused-argument, redefined-builtin + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + self.load_state_dict(state["model"]) + if eval: + self.eval() + self.store_inverse() + assert not self.training + + @staticmethod + def get_criterion(): + from TTS.tts.layers.losses import GlowTTSLoss # pylint: disable=import-outside-toplevel + + return GlowTTSLoss() + + def on_train_step_start(self, trainer): + """Decide on every training step wheter enable/disable data depended initialization.""" + self.run_data_dep_init = trainer.total_steps_done < self.data_dep_init_steps + + @staticmethod + def init_from_config(config: "GlowTTSConfig", samples: Union[List[List], List[Dict]] = None, verbose=True): + """Initiate model from config + + Args: + config (VitsConfig): Model config. + samples (Union[List[List], List[Dict]]): Training samples to parse speaker ids for training. + Defaults to None. + verbose (bool): If True, print init messages. Defaults to True. + """ + from TTS.utils.audio import AudioProcessor + + ap = AudioProcessor.init_from_config(config, verbose) + tokenizer, new_config = TTSTokenizer.init_from_config(config) + speaker_manager = SpeakerManager.init_from_config(config, samples) + return GlowTTS(new_config, ap, tokenizer, speaker_manager) diff --git a/Indic-TTS/TTS/TTS/tts/models/tacotron.py b/Indic-TTS/TTS/TTS/tts/models/tacotron.py new file mode 100644 index 0000000000000000000000000000000000000000..7bfa6ba5e4d2ae502a89fb04621e8be0ac771e2f --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/models/tacotron.py @@ -0,0 +1,410 @@ +# coding: utf-8 + +from typing import Dict, List, Tuple, Union + +import torch +from torch import nn +from torch.cuda.amp.autocast_mode import autocast +from trainer.trainer_utils import get_optimizer, get_scheduler + +from TTS.tts.layers.tacotron.capacitron_layers import CapacitronVAE +from TTS.tts.layers.tacotron.gst_layers import GST +from TTS.tts.layers.tacotron.tacotron import Decoder, Encoder, PostCBHG +from TTS.tts.models.base_tacotron import BaseTacotron +from TTS.tts.utils.measures import alignment_diagonal_score +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.tts.utils.visual import plot_alignment, plot_spectrogram +from TTS.utils.capacitron_optimizer import CapacitronOptimizer + + +class Tacotron(BaseTacotron): + """Tacotron as in https://arxiv.org/abs/1703.10135 + It's an autoregressive encoder-attention-decoder-postnet architecture. + Check `TacotronConfig` for the arguments. + + Args: + config (TacotronConfig): Configuration for the Tacotron model. + speaker_manager (SpeakerManager): Speaker manager to handle multi-speaker settings. Only use if the model is + a multi-speaker model. Defaults to None. + """ + + def __init__( + self, + config: "TacotronConfig", + ap: "AudioProcessor" = None, + tokenizer: "TTSTokenizer" = None, + speaker_manager: SpeakerManager = None, + ): + + super().__init__(config, ap, tokenizer, speaker_manager) + + # pass all config fields to `self` + # for fewer code change + for key in config: + setattr(self, key, config[key]) + + # set speaker embedding channel size for determining `in_channels` for the connected layers. + # `init_multispeaker` needs to be called once more in training to initialize the speaker embedding layer based + # on the number of speakers infered from the dataset. + if self.use_speaker_embedding or self.use_d_vector_file: + self.init_multispeaker(config) + self.decoder_in_features += self.embedded_speaker_dim # add speaker embedding dim + + if self.use_gst: + self.decoder_in_features += self.gst.gst_embedding_dim + + if self.use_capacitron_vae: + self.decoder_in_features += self.capacitron_vae.capacitron_VAE_embedding_dim + + # embedding layer + self.embedding = nn.Embedding(self.num_chars, 256, padding_idx=0) + self.embedding.weight.data.normal_(0, 0.3) + + # base model layers + self.encoder = Encoder(self.encoder_in_features) + self.decoder = Decoder( + self.decoder_in_features, + self.decoder_output_dim, + self.r, + self.memory_size, + self.attention_type, + self.windowing, + self.attention_norm, + self.prenet_type, + self.prenet_dropout, + self.use_forward_attn, + self.transition_agent, + self.forward_attn_mask, + self.location_attn, + self.attention_heads, + self.separate_stopnet, + self.max_decoder_steps, + ) + self.postnet = PostCBHG(self.decoder_output_dim) + self.last_linear = nn.Linear(self.postnet.cbhg.gru_features * 2, self.out_channels) + + # setup prenet dropout + self.decoder.prenet.dropout_at_inference = self.prenet_dropout_at_inference + + # global style token layers + if self.gst and self.use_gst: + self.gst_layer = GST( + num_mel=self.decoder_output_dim, + num_heads=self.gst.gst_num_heads, + num_style_tokens=self.gst.gst_num_style_tokens, + gst_embedding_dim=self.gst.gst_embedding_dim, + ) + + # Capacitron layers + if self.capacitron_vae and self.use_capacitron_vae: + self.capacitron_vae_layer = CapacitronVAE( + num_mel=self.decoder_output_dim, + encoder_output_dim=self.encoder_in_features, + capacitron_VAE_embedding_dim=self.capacitron_vae.capacitron_VAE_embedding_dim, + speaker_embedding_dim=self.embedded_speaker_dim + if self.use_speaker_embedding and self.capacitron_vae.capacitron_use_speaker_embedding + else None, + text_summary_embedding_dim=self.capacitron_vae.capacitron_text_summary_embedding_dim + if self.capacitron_vae.capacitron_use_text_summary_embeddings + else None, + ) + + # backward pass decoder + if self.bidirectional_decoder: + self._init_backward_decoder() + # setup DDC + if self.double_decoder_consistency: + self.coarse_decoder = Decoder( + self.decoder_in_features, + self.decoder_output_dim, + self.ddc_r, + self.memory_size, + self.attention_type, + self.windowing, + self.attention_norm, + self.prenet_type, + self.prenet_dropout, + self.use_forward_attn, + self.transition_agent, + self.forward_attn_mask, + self.location_attn, + self.attention_heads, + self.separate_stopnet, + self.max_decoder_steps, + ) + + def forward( # pylint: disable=dangerous-default-value + self, text, text_lengths, mel_specs=None, mel_lengths=None, aux_input={"speaker_ids": None, "d_vectors": None} + ): + """ + Shapes: + text: [B, T_in] + text_lengths: [B] + mel_specs: [B, T_out, C] + mel_lengths: [B] + aux_input: 'speaker_ids': [B, 1] and 'd_vectors':[B, C] + """ + aux_input = self._format_aux_input(aux_input) + outputs = {"alignments_backward": None, "decoder_outputs_backward": None} + inputs = self.embedding(text) + input_mask, output_mask = self.compute_masks(text_lengths, mel_lengths) + # B x T_in x encoder_in_features + encoder_outputs = self.encoder(inputs) + # sequence masking + encoder_outputs = encoder_outputs * input_mask.unsqueeze(2).expand_as(encoder_outputs) + # global style token + if self.gst and self.use_gst: + # B x gst_dim + encoder_outputs = self.compute_gst(encoder_outputs, mel_specs) + # speaker embedding + if self.use_speaker_embedding or self.use_d_vector_file: + if not self.use_d_vector_file: + # B x 1 x speaker_embed_dim + embedded_speakers = self.speaker_embedding(aux_input["speaker_ids"])[:, None] + else: + # B x 1 x speaker_embed_dim + embedded_speakers = torch.unsqueeze(aux_input["d_vectors"], 1) + encoder_outputs = self._concat_speaker_embedding(encoder_outputs, embedded_speakers) + # Capacitron + if self.capacitron_vae and self.use_capacitron_vae: + # B x capacitron_VAE_embedding_dim + encoder_outputs, *capacitron_vae_outputs = self.compute_capacitron_VAE_embedding( + encoder_outputs, + reference_mel_info=[mel_specs, mel_lengths], + text_info=[inputs, text_lengths] + if self.capacitron_vae.capacitron_use_text_summary_embeddings + else None, + speaker_embedding=embedded_speakers if self.capacitron_vae.capacitron_use_speaker_embedding else None, + ) + else: + capacitron_vae_outputs = None + # decoder_outputs: B x decoder_in_features x T_out + # alignments: B x T_in x encoder_in_features + # stop_tokens: B x T_in + decoder_outputs, alignments, stop_tokens = self.decoder(encoder_outputs, mel_specs, input_mask) + # sequence masking + if output_mask is not None: + decoder_outputs = decoder_outputs * output_mask.unsqueeze(1).expand_as(decoder_outputs) + # B x T_out x decoder_in_features + postnet_outputs = self.postnet(decoder_outputs) + # sequence masking + if output_mask is not None: + postnet_outputs = postnet_outputs * output_mask.unsqueeze(2).expand_as(postnet_outputs) + # B x T_out x posnet_dim + postnet_outputs = self.last_linear(postnet_outputs) + # B x T_out x decoder_in_features + decoder_outputs = decoder_outputs.transpose(1, 2).contiguous() + if self.bidirectional_decoder: + decoder_outputs_backward, alignments_backward = self._backward_pass(mel_specs, encoder_outputs, input_mask) + outputs["alignments_backward"] = alignments_backward + outputs["decoder_outputs_backward"] = decoder_outputs_backward + if self.double_decoder_consistency: + decoder_outputs_backward, alignments_backward = self._coarse_decoder_pass( + mel_specs, encoder_outputs, alignments, input_mask + ) + outputs["alignments_backward"] = alignments_backward + outputs["decoder_outputs_backward"] = decoder_outputs_backward + outputs.update( + { + "model_outputs": postnet_outputs, + "decoder_outputs": decoder_outputs, + "alignments": alignments, + "stop_tokens": stop_tokens, + "capacitron_vae_outputs": capacitron_vae_outputs, + } + ) + return outputs + + @torch.no_grad() + def inference(self, text_input, aux_input=None): + aux_input = self._format_aux_input(aux_input) + inputs = self.embedding(text_input) + encoder_outputs = self.encoder(inputs) + if self.gst and self.use_gst: + # B x gst_dim + encoder_outputs = self.compute_gst(encoder_outputs, aux_input["style_mel"], aux_input["d_vectors"]) + if self.capacitron_vae and self.use_capacitron_vae: + if aux_input["style_text"] is not None: + style_text_embedding = self.embedding(aux_input["style_text"]) + style_text_length = torch.tensor([style_text_embedding.size(1)], dtype=torch.int64).to( + encoder_outputs.device + ) # pylint: disable=not-callable + reference_mel_length = ( + torch.tensor([aux_input["style_mel"].size(1)], dtype=torch.int64).to(encoder_outputs.device) + if aux_input["style_mel"] is not None + else None + ) # pylint: disable=not-callable + # B x capacitron_VAE_embedding_dim + encoder_outputs, *_ = self.compute_capacitron_VAE_embedding( + encoder_outputs, + reference_mel_info=[aux_input["style_mel"], reference_mel_length] + if aux_input["style_mel"] is not None + else None, + text_info=[style_text_embedding, style_text_length] if aux_input["style_text"] is not None else None, + speaker_embedding=aux_input["d_vectors"] + if self.capacitron_vae.capacitron_use_speaker_embedding + else None, + ) + if self.num_speakers > 1: + if not self.use_d_vector_file: + # B x 1 x speaker_embed_dim + embedded_speakers = self.speaker_embedding(aux_input["speaker_ids"]) + # reshape embedded_speakers + if embedded_speakers.ndim == 1: + embedded_speakers = embedded_speakers[None, None, :] + elif embedded_speakers.ndim == 2: + embedded_speakers = embedded_speakers[None, :] + else: + # B x 1 x speaker_embed_dim + embedded_speakers = torch.unsqueeze(aux_input["d_vectors"], 1) + encoder_outputs = self._concat_speaker_embedding(encoder_outputs, embedded_speakers) + decoder_outputs, alignments, stop_tokens = self.decoder.inference(encoder_outputs) + postnet_outputs = self.postnet(decoder_outputs) + postnet_outputs = self.last_linear(postnet_outputs) + decoder_outputs = decoder_outputs.transpose(1, 2) + outputs = { + "model_outputs": postnet_outputs, + "decoder_outputs": decoder_outputs, + "alignments": alignments, + "stop_tokens": stop_tokens, + } + return outputs + + def before_backward_pass(self, loss_dict, optimizer) -> None: + # Extracting custom training specific operations for capacitron + # from the trainer + if self.use_capacitron_vae: + loss_dict["capacitron_vae_beta_loss"].backward() + optimizer.first_step() + + def train_step(self, batch: Dict, criterion: torch.nn.Module) -> Tuple[Dict, Dict]: + """Perform a single training step by fetching the right set of samples from the batch. + + Args: + batch ([Dict]): A dictionary of input tensors. + criterion ([torch.nn.Module]): Callable criterion to compute model loss. + """ + text_input = batch["text_input"] + text_lengths = batch["text_lengths"] + mel_input = batch["mel_input"] + mel_lengths = batch["mel_lengths"] + linear_input = batch["linear_input"] + stop_targets = batch["stop_targets"] + stop_target_lengths = batch["stop_target_lengths"] + speaker_ids = batch["speaker_ids"] + d_vectors = batch["d_vectors"] + + aux_input = {"speaker_ids": speaker_ids, "d_vectors": d_vectors} + outputs = self.forward(text_input, text_lengths, mel_input, mel_lengths, aux_input) + + # set the [alignment] lengths wrt reduction factor for guided attention + if mel_lengths.max() % self.decoder.r != 0: + alignment_lengths = ( + mel_lengths + (self.decoder.r - (mel_lengths.max() % self.decoder.r)) + ) // self.decoder.r + else: + alignment_lengths = mel_lengths // self.decoder.r + + # compute loss + with autocast(enabled=False): # use float32 for the criterion + loss_dict = criterion( + outputs["model_outputs"].float(), + outputs["decoder_outputs"].float(), + mel_input.float(), + linear_input.float(), + outputs["stop_tokens"].float(), + stop_targets.float(), + stop_target_lengths, + outputs["capacitron_vae_outputs"] if self.capacitron_vae else None, + mel_lengths, + None if outputs["decoder_outputs_backward"] is None else outputs["decoder_outputs_backward"].float(), + outputs["alignments"].float(), + alignment_lengths, + None if outputs["alignments_backward"] is None else outputs["alignments_backward"].float(), + text_lengths, + ) + + # compute alignment error (the lower the better ) + align_error = 1 - alignment_diagonal_score(outputs["alignments"]) + loss_dict["align_error"] = align_error + return outputs, loss_dict + + def get_optimizer(self) -> List: + if self.use_capacitron_vae: + return CapacitronOptimizer(self.config, self.named_parameters()) + return get_optimizer(self.config.optimizer, self.config.optimizer_params, self.config.lr, self) + + def get_scheduler(self, optimizer: object): + opt = optimizer.primary_optimizer if self.use_capacitron_vae else optimizer + return get_scheduler(self.config.lr_scheduler, self.config.lr_scheduler_params, opt) + + def before_gradient_clipping(self): + if self.use_capacitron_vae: + # Capacitron model specific gradient clipping + model_params_to_clip = [] + for name, param in self.named_parameters(): + if param.requires_grad: + if name != "capacitron_vae_layer.beta": + model_params_to_clip.append(param) + torch.nn.utils.clip_grad_norm_(model_params_to_clip, self.capacitron_vae.capacitron_grad_clip) + + def _create_logs(self, batch, outputs, ap): + postnet_outputs = outputs["model_outputs"] + decoder_outputs = outputs["decoder_outputs"] + alignments = outputs["alignments"] + alignments_backward = outputs["alignments_backward"] + mel_input = batch["mel_input"] + linear_input = batch["linear_input"] + + pred_linear_spec = postnet_outputs[0].data.cpu().numpy() + pred_mel_spec = decoder_outputs[0].data.cpu().numpy() + gt_linear_spec = linear_input[0].data.cpu().numpy() + gt_mel_spec = mel_input[0].data.cpu().numpy() + align_img = alignments[0].data.cpu().numpy() + + figures = { + "pred_linear_spec": plot_spectrogram(pred_linear_spec, ap, output_fig=False), + "real_linear_spec": plot_spectrogram(gt_linear_spec, ap, output_fig=False), + "pred_mel_spec": plot_spectrogram(pred_mel_spec, ap, output_fig=False), + "real_mel_spec": plot_spectrogram(gt_mel_spec, ap, output_fig=False), + "alignment": plot_alignment(align_img, output_fig=False), + } + + if self.bidirectional_decoder or self.double_decoder_consistency: + figures["alignment_backward"] = plot_alignment(alignments_backward[0].data.cpu().numpy(), output_fig=False) + + # Sample audio + audio = ap.inv_spectrogram(pred_linear_spec.T) + return figures, {"audio": audio} + + def train_log( + self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int + ) -> None: # pylint: disable=no-self-use + figures, audios = self._create_logs(batch, outputs, self.ap) + logger.train_figures(steps, figures) + logger.train_audios(steps, audios, self.ap.sample_rate) + + def eval_step(self, batch: dict, criterion: nn.Module): + return self.train_step(batch, criterion) + + def eval_log(self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int) -> None: + figures, audios = self._create_logs(batch, outputs, self.ap) + logger.eval_figures(steps, figures) + logger.eval_audios(steps, audios, self.ap.sample_rate) + + @staticmethod + def init_from_config(config: "TacotronConfig", samples: Union[List[List], List[Dict]] = None): + """Initiate model from config + + Args: + config (TacotronConfig): Model config. + samples (Union[List[List], List[Dict]]): Training samples to parse speaker ids for training. + Defaults to None. + """ + from TTS.utils.audio import AudioProcessor + + ap = AudioProcessor.init_from_config(config) + tokenizer, new_config = TTSTokenizer.init_from_config(config) + speaker_manager = SpeakerManager.init_from_config(config, samples) + return Tacotron(new_config, ap, tokenizer, speaker_manager) diff --git a/Indic-TTS/TTS/TTS/tts/models/tacotron2.py b/Indic-TTS/TTS/TTS/tts/models/tacotron2.py new file mode 100644 index 0000000000000000000000000000000000000000..95d339f17d54f7130e2bd5d435620df41d100b6d --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/models/tacotron2.py @@ -0,0 +1,434 @@ +# coding: utf-8 + +from typing import Dict, List, Union + +import torch +from torch import nn +from torch.cuda.amp.autocast_mode import autocast +from trainer.trainer_utils import get_optimizer, get_scheduler + +from TTS.tts.layers.tacotron.capacitron_layers import CapacitronVAE +from TTS.tts.layers.tacotron.gst_layers import GST +from TTS.tts.layers.tacotron.tacotron2 import Decoder, Encoder, Postnet +from TTS.tts.models.base_tacotron import BaseTacotron +from TTS.tts.utils.measures import alignment_diagonal_score +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.tts.utils.visual import plot_alignment, plot_spectrogram +from TTS.utils.capacitron_optimizer import CapacitronOptimizer + + +class Tacotron2(BaseTacotron): + """Tacotron2 model implementation inherited from :class:`TTS.tts.models.base_tacotron.BaseTacotron`. + + Paper:: + https://arxiv.org/abs/1712.05884 + + Paper abstract:: + This paper describes Tacotron 2, a neural network architecture for speech synthesis directly from text. + The system is composed of a recurrent sequence-to-sequence feature prediction network that maps character + embeddings to mel-scale spectrograms, followed by a modified WaveNet model acting as a vocoder to synthesize + timedomain waveforms from those spectrograms. Our model achieves a mean opinion score (MOS) of 4.53 comparable + to a MOS of 4.58 for professionally recorded speech. To validate our design choices, we present ablation + studies of key components of our system and evaluate the impact of using mel spectrograms as the input to + WaveNet instead of linguistic, duration, and F0 features. We further demonstrate that using a compact acoustic + intermediate representation enables significant simplification of the WaveNet architecture. + + Check :class:`TTS.tts.configs.tacotron2_config.Tacotron2Config` for model arguments. + + Args: + config (TacotronConfig): + Configuration for the Tacotron2 model. + speaker_manager (SpeakerManager): + Speaker manager for multi-speaker training. Uuse only for multi-speaker training. Defaults to None. + """ + + def __init__( + self, + config: "Tacotron2Config", + ap: "AudioProcessor" = None, + tokenizer: "TTSTokenizer" = None, + speaker_manager: SpeakerManager = None, + ): + + super().__init__(config, ap, tokenizer, speaker_manager) + + self.decoder_output_dim = config.out_channels + + # pass all config fields to `self` + # for fewer code change + for key in config: + setattr(self, key, config[key]) + + # init multi-speaker layers + if self.use_speaker_embedding or self.use_d_vector_file: + self.init_multispeaker(config) + self.decoder_in_features += self.embedded_speaker_dim # add speaker embedding dim + + if self.use_gst: + self.decoder_in_features += self.gst.gst_embedding_dim + + if self.use_capacitron_vae: + self.decoder_in_features += self.capacitron_vae.capacitron_VAE_embedding_dim + + # embedding layer + self.embedding = nn.Embedding(self.num_chars, 512, padding_idx=0) + + # base model layers + self.encoder = Encoder(self.encoder_in_features) + + self.decoder = Decoder( + self.decoder_in_features, + self.decoder_output_dim, + self.r, + self.attention_type, + self.attention_win, + self.attention_norm, + self.prenet_type, + self.prenet_dropout, + self.use_forward_attn, + self.transition_agent, + self.forward_attn_mask, + self.location_attn, + self.attention_heads, + self.separate_stopnet, + self.max_decoder_steps, + ) + self.postnet = Postnet(self.out_channels) + + # setup prenet dropout + self.decoder.prenet.dropout_at_inference = self.prenet_dropout_at_inference + + # global style token layers + if self.gst and self.use_gst: + self.gst_layer = GST( + num_mel=self.decoder_output_dim, + num_heads=self.gst.gst_num_heads, + num_style_tokens=self.gst.gst_num_style_tokens, + gst_embedding_dim=self.gst.gst_embedding_dim, + ) + + # Capacitron VAE Layers + if self.capacitron_vae and self.use_capacitron_vae: + self.capacitron_vae_layer = CapacitronVAE( + num_mel=self.decoder_output_dim, + encoder_output_dim=self.encoder_in_features, + capacitron_VAE_embedding_dim=self.capacitron_vae.capacitron_VAE_embedding_dim, + speaker_embedding_dim=self.embedded_speaker_dim + if self.capacitron_vae.capacitron_use_speaker_embedding + else None, + text_summary_embedding_dim=self.capacitron_vae.capacitron_text_summary_embedding_dim + if self.capacitron_vae.capacitron_use_text_summary_embeddings + else None, + ) + + # backward pass decoder + if self.bidirectional_decoder: + self._init_backward_decoder() + # setup DDC + if self.double_decoder_consistency: + self.coarse_decoder = Decoder( + self.decoder_in_features, + self.decoder_output_dim, + self.ddc_r, + self.attention_type, + self.attention_win, + self.attention_norm, + self.prenet_type, + self.prenet_dropout, + self.use_forward_attn, + self.transition_agent, + self.forward_attn_mask, + self.location_attn, + self.attention_heads, + self.separate_stopnet, + self.max_decoder_steps, + ) + + @staticmethod + def shape_outputs(mel_outputs, mel_outputs_postnet, alignments): + """Final reshape of the model output tensors.""" + mel_outputs = mel_outputs.transpose(1, 2) + mel_outputs_postnet = mel_outputs_postnet.transpose(1, 2) + return mel_outputs, mel_outputs_postnet, alignments + + def forward( # pylint: disable=dangerous-default-value + self, text, text_lengths, mel_specs=None, mel_lengths=None, aux_input={"speaker_ids": None, "d_vectors": None} + ): + """Forward pass for training with Teacher Forcing. + + Shapes: + text: :math:`[B, T_in]` + text_lengths: :math:`[B]` + mel_specs: :math:`[B, T_out, C]` + mel_lengths: :math:`[B]` + aux_input: 'speaker_ids': :math:`[B, 1]` and 'd_vectors': :math:`[B, C]` + """ + aux_input = self._format_aux_input(aux_input) + outputs = {"alignments_backward": None, "decoder_outputs_backward": None} + # compute mask for padding + # B x T_in_max (boolean) + input_mask, output_mask = self.compute_masks(text_lengths, mel_lengths) + # B x D_embed x T_in_max + embedded_inputs = self.embedding(text).transpose(1, 2) + # B x T_in_max x D_en + encoder_outputs = self.encoder(embedded_inputs, text_lengths) + if self.gst and self.use_gst: + # B x gst_dim + encoder_outputs = self.compute_gst(encoder_outputs, mel_specs) + + if self.use_speaker_embedding or self.use_d_vector_file: + if not self.use_d_vector_file: + # B x 1 x speaker_embed_dim + embedded_speakers = self.speaker_embedding(aux_input["speaker_ids"])[:, None] + else: + # B x 1 x speaker_embed_dim + embedded_speakers = torch.unsqueeze(aux_input["d_vectors"], 1) + encoder_outputs = self._concat_speaker_embedding(encoder_outputs, embedded_speakers) + + # capacitron + if self.capacitron_vae and self.use_capacitron_vae: + # B x capacitron_VAE_embedding_dim + encoder_outputs, *capacitron_vae_outputs = self.compute_capacitron_VAE_embedding( + encoder_outputs, + reference_mel_info=[mel_specs, mel_lengths], + text_info=[embedded_inputs.transpose(1, 2), text_lengths] + if self.capacitron_vae.capacitron_use_text_summary_embeddings + else None, + speaker_embedding=embedded_speakers if self.capacitron_vae.capacitron_use_speaker_embedding else None, + ) + else: + capacitron_vae_outputs = None + + encoder_outputs = encoder_outputs * input_mask.unsqueeze(2).expand_as(encoder_outputs) + + # B x mel_dim x T_out -- B x T_out//r x T_in -- B x T_out//r + decoder_outputs, alignments, stop_tokens = self.decoder(encoder_outputs, mel_specs, input_mask) + # sequence masking + if mel_lengths is not None: + decoder_outputs = decoder_outputs * output_mask.unsqueeze(1).expand_as(decoder_outputs) + # B x mel_dim x T_out + postnet_outputs = self.postnet(decoder_outputs) + postnet_outputs = decoder_outputs + postnet_outputs + # sequence masking + if output_mask is not None: + postnet_outputs = postnet_outputs * output_mask.unsqueeze(1).expand_as(postnet_outputs) + # B x T_out x mel_dim -- B x T_out x mel_dim -- B x T_out//r x T_in + decoder_outputs, postnet_outputs, alignments = self.shape_outputs(decoder_outputs, postnet_outputs, alignments) + if self.bidirectional_decoder: + decoder_outputs_backward, alignments_backward = self._backward_pass(mel_specs, encoder_outputs, input_mask) + outputs["alignments_backward"] = alignments_backward + outputs["decoder_outputs_backward"] = decoder_outputs_backward + if self.double_decoder_consistency: + decoder_outputs_backward, alignments_backward = self._coarse_decoder_pass( + mel_specs, encoder_outputs, alignments, input_mask + ) + outputs["alignments_backward"] = alignments_backward + outputs["decoder_outputs_backward"] = decoder_outputs_backward + outputs.update( + { + "model_outputs": postnet_outputs, + "decoder_outputs": decoder_outputs, + "alignments": alignments, + "stop_tokens": stop_tokens, + "capacitron_vae_outputs": capacitron_vae_outputs, + } + ) + return outputs + + @torch.no_grad() + def inference(self, text, aux_input=None): + """Forward pass for inference with no Teacher-Forcing. + + Shapes: + text: :math:`[B, T_in]` + text_lengths: :math:`[B]` + """ + aux_input = self._format_aux_input(aux_input) + embedded_inputs = self.embedding(text).transpose(1, 2) + encoder_outputs = self.encoder.inference(embedded_inputs) + + if self.gst and self.use_gst: + # B x gst_dim + encoder_outputs = self.compute_gst(encoder_outputs, aux_input["style_mel"], aux_input["d_vectors"]) + + if self.capacitron_vae and self.use_capacitron_vae: + if aux_input["style_text"] is not None: + style_text_embedding = self.embedding(aux_input["style_text"]) + style_text_length = torch.tensor([style_text_embedding.size(1)], dtype=torch.int64).to( + encoder_outputs.device + ) # pylint: disable=not-callable + reference_mel_length = ( + torch.tensor([aux_input["style_mel"].size(1)], dtype=torch.int64).to(encoder_outputs.device) + if aux_input["style_mel"] is not None + else None + ) # pylint: disable=not-callable + # B x capacitron_VAE_embedding_dim + encoder_outputs, *_ = self.compute_capacitron_VAE_embedding( + encoder_outputs, + reference_mel_info=[aux_input["style_mel"], reference_mel_length] + if aux_input["style_mel"] is not None + else None, + text_info=[style_text_embedding, style_text_length] if aux_input["style_text"] is not None else None, + speaker_embedding=aux_input["d_vectors"] + if self.capacitron_vae.capacitron_use_speaker_embedding + else None, + ) + + if self.num_speakers > 1: + if not self.use_d_vector_file: + embedded_speakers = self.speaker_embedding(aux_input["speaker_ids"])[None] + # reshape embedded_speakers + if embedded_speakers.ndim == 1: + embedded_speakers = embedded_speakers[None, None, :] + elif embedded_speakers.ndim == 2: + embedded_speakers = embedded_speakers[None, :] + else: + embedded_speakers = aux_input["d_vectors"] + + encoder_outputs = self._concat_speaker_embedding(encoder_outputs, embedded_speakers) + + decoder_outputs, alignments, stop_tokens = self.decoder.inference(encoder_outputs) + postnet_outputs = self.postnet(decoder_outputs) + postnet_outputs = decoder_outputs + postnet_outputs + decoder_outputs, postnet_outputs, alignments = self.shape_outputs(decoder_outputs, postnet_outputs, alignments) + outputs = { + "model_outputs": postnet_outputs, + "decoder_outputs": decoder_outputs, + "alignments": alignments, + "stop_tokens": stop_tokens, + } + return outputs + + def before_backward_pass(self, loss_dict, optimizer) -> None: + # Extracting custom training specific operations for capacitron + # from the trainer + if self.use_capacitron_vae: + loss_dict["capacitron_vae_beta_loss"].backward() + optimizer.first_step() + + def train_step(self, batch: Dict, criterion: torch.nn.Module): + """A single training step. Forward pass and loss computation. + + Args: + batch ([Dict]): A dictionary of input tensors. + criterion ([type]): Callable criterion to compute model loss. + """ + text_input = batch["text_input"] + text_lengths = batch["text_lengths"] + mel_input = batch["mel_input"] + mel_lengths = batch["mel_lengths"] + stop_targets = batch["stop_targets"] + stop_target_lengths = batch["stop_target_lengths"] + speaker_ids = batch["speaker_ids"] + d_vectors = batch["d_vectors"] + + aux_input = {"speaker_ids": speaker_ids, "d_vectors": d_vectors} + outputs = self.forward(text_input, text_lengths, mel_input, mel_lengths, aux_input) + + # set the [alignment] lengths wrt reduction factor for guided attention + if mel_lengths.max() % self.decoder.r != 0: + alignment_lengths = ( + mel_lengths + (self.decoder.r - (mel_lengths.max() % self.decoder.r)) + ) // self.decoder.r + else: + alignment_lengths = mel_lengths // self.decoder.r + + # compute loss + with autocast(enabled=False): # use float32 for the criterion + loss_dict = criterion( + outputs["model_outputs"].float(), + outputs["decoder_outputs"].float(), + mel_input.float(), + None, + outputs["stop_tokens"].float(), + stop_targets.float(), + stop_target_lengths, + outputs["capacitron_vae_outputs"] if self.capacitron_vae else None, + mel_lengths, + None if outputs["decoder_outputs_backward"] is None else outputs["decoder_outputs_backward"].float(), + outputs["alignments"].float(), + alignment_lengths, + None if outputs["alignments_backward"] is None else outputs["alignments_backward"].float(), + text_lengths, + ) + + # compute alignment error (the lower the better ) + align_error = 1 - alignment_diagonal_score(outputs["alignments"]) + loss_dict["align_error"] = align_error + return outputs, loss_dict + + def get_optimizer(self) -> List: + if self.use_capacitron_vae: + return CapacitronOptimizer(self.config, self.named_parameters()) + return get_optimizer(self.config.optimizer, self.config.optimizer_params, self.config.lr, self) + + def get_scheduler(self, optimizer: object): + opt = optimizer.primary_optimizer if self.use_capacitron_vae else optimizer + return get_scheduler(self.config.lr_scheduler, self.config.lr_scheduler_params, opt) + + def before_gradient_clipping(self): + if self.use_capacitron_vae: + # Capacitron model specific gradient clipping + model_params_to_clip = [] + for name, param in self.named_parameters(): + if param.requires_grad: + if name != "capacitron_vae_layer.beta": + model_params_to_clip.append(param) + torch.nn.utils.clip_grad_norm_(model_params_to_clip, self.capacitron_vae.capacitron_grad_clip) + + def _create_logs(self, batch, outputs, ap): + """Create dashboard log information.""" + postnet_outputs = outputs["model_outputs"] + alignments = outputs["alignments"] + alignments_backward = outputs["alignments_backward"] + mel_input = batch["mel_input"] + + pred_spec = postnet_outputs[0].data.cpu().numpy() + gt_spec = mel_input[0].data.cpu().numpy() + align_img = alignments[0].data.cpu().numpy() + + figures = { + "prediction": plot_spectrogram(pred_spec, ap, output_fig=False), + "ground_truth": plot_spectrogram(gt_spec, ap, output_fig=False), + "alignment": plot_alignment(align_img, output_fig=False), + } + + if self.bidirectional_decoder or self.double_decoder_consistency: + figures["alignment_backward"] = plot_alignment(alignments_backward[0].data.cpu().numpy(), output_fig=False) + + # Sample audio + audio = ap.inv_melspectrogram(pred_spec.T) + return figures, {"audio": audio} + + def train_log( + self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int + ) -> None: # pylint: disable=no-self-use + """Log training progress.""" + figures, audios = self._create_logs(batch, outputs, self.ap) + logger.train_figures(steps, figures) + logger.train_audios(steps, audios, self.ap.sample_rate) + + def eval_step(self, batch: dict, criterion: nn.Module): + return self.train_step(batch, criterion) + + def eval_log(self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int) -> None: + figures, audios = self._create_logs(batch, outputs, self.ap) + logger.eval_figures(steps, figures) + logger.eval_audios(steps, audios, self.ap.sample_rate) + + @staticmethod + def init_from_config(config: "Tacotron2Config", samples: Union[List[List], List[Dict]] = None): + """Initiate model from config + + Args: + config (Tacotron2Config): Model config. + samples (Union[List[List], List[Dict]]): Training samples to parse speaker ids for training. + Defaults to None. + """ + from TTS.utils.audio import AudioProcessor + + ap = AudioProcessor.init_from_config(config) + tokenizer, new_config = TTSTokenizer.init_from_config(config) + speaker_manager = SpeakerManager.init_from_config(new_config, samples) + return Tacotron2(new_config, ap, tokenizer, speaker_manager) diff --git a/Indic-TTS/TTS/TTS/tts/models/vits.py b/Indic-TTS/TTS/TTS/tts/models/vits.py new file mode 100644 index 0000000000000000000000000000000000000000..a6b1c74332a89757fe28c143acd18c938bd5f274 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/models/vits.py @@ -0,0 +1,1704 @@ +import math +import os +from dataclasses import dataclass, field, replace +from itertools import chain +from typing import Dict, List, Tuple, Union + +import torch +import torch.distributed as dist +import torchaudio +from coqpit import Coqpit +from librosa.filters import mel as librosa_mel_fn +from torch import nn +from torch.cuda.amp.autocast_mode import autocast +from torch.nn import functional as F +from torch.utils.data import DataLoader +from trainer.trainer_utils import get_optimizer, get_scheduler + +from TTS.tts.configs.shared_configs import CharactersConfig +from TTS.tts.datasets.dataset import TTSDataset, _parse_sample +from TTS.tts.layers.glow_tts.duration_predictor import DurationPredictor +from TTS.tts.layers.vits.discriminator import VitsDiscriminator +from TTS.tts.layers.vits.networks import PosteriorEncoder, ResidualCouplingBlocks, TextEncoder +from TTS.tts.layers.vits.stochastic_duration_predictor import StochasticDurationPredictor +from TTS.tts.models.base_tts import BaseTTS +from TTS.tts.utils.helpers import generate_path, maximum_path, rand_segments, segment, sequence_mask +from TTS.tts.utils.languages import LanguageManager +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.synthesis import synthesis +from TTS.tts.utils.text.characters import BaseCharacters, _characters, _pad, _phonemes, _punctuations +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.tts.utils.visual import plot_alignment +from TTS.vocoder.models.hifigan_generator import HifiganGenerator +from TTS.vocoder.utils.generic_utils import plot_results + +############################## +# IO / Feature extraction +############################## + +# pylint: disable=global-statement +hann_window = {} +mel_basis = {} + + +@torch.no_grad() +def weights_reset(m: nn.Module): + # check if the current module has reset_parameters and if it is reset the weight + reset_parameters = getattr(m, "reset_parameters", None) + if callable(reset_parameters): + m.reset_parameters() + + +def get_module_weights_sum(mdl: nn.Module): + dict_sums = {} + for name, w in mdl.named_parameters(): + if "weight" in name: + value = w.data.sum().item() + dict_sums[name] = value + return dict_sums + + +def load_audio(file_path): + """Load the audio file normalized in [-1, 1] + + Return Shapes: + - x: :math:`[1, T]` + """ + x, sr = torchaudio.load(file_path) + assert (x > 1).sum() + (x < -1).sum() == 0 + return x, sr + + +def _amp_to_db(x, C=1, clip_val=1e-5): + return torch.log(torch.clamp(x, min=clip_val) * C) + + +def _db_to_amp(x, C=1): + return torch.exp(x) / C + + +def amp_to_db(magnitudes): + output = _amp_to_db(magnitudes) + return output + + +def db_to_amp(magnitudes): + output = _db_to_amp(magnitudes) + return output + + +def wav_to_spec(y, n_fft, hop_length, win_length, center=False): + """ + Args Shapes: + - y : :math:`[B, 1, T]` + + Return Shapes: + - spec : :math:`[B,C,T]` + """ + y = y.squeeze(1) + + if torch.min(y) < -1.0: + print("min value is ", torch.min(y)) + if torch.max(y) > 1.0: + print("max value is ", torch.max(y)) + + global hann_window + dtype_device = str(y.dtype) + "_" + str(y.device) + wnsize_dtype_device = str(win_length) + "_" + dtype_device + if wnsize_dtype_device not in hann_window: + hann_window[wnsize_dtype_device] = torch.hann_window(win_length).to(dtype=y.dtype, device=y.device) + + y = torch.nn.functional.pad( + y.unsqueeze(1), + (int((n_fft - hop_length) / 2), int((n_fft - hop_length) / 2)), + mode="reflect", + ) + y = y.squeeze(1) + + spec = torch.stft( + y, + n_fft, + hop_length=hop_length, + win_length=win_length, + window=hann_window[wnsize_dtype_device], + center=center, + pad_mode="reflect", + normalized=False, + onesided=True, + ) + + spec = torch.sqrt(spec.pow(2).sum(-1) + 1e-6) + return spec + + +def spec_to_mel(spec, n_fft, num_mels, sample_rate, fmin, fmax): + """ + Args Shapes: + - spec : :math:`[B,C,T]` + + Return Shapes: + - mel : :math:`[B,C,T]` + """ + global mel_basis + dtype_device = str(spec.dtype) + "_" + str(spec.device) + fmax_dtype_device = str(fmax) + "_" + dtype_device + if fmax_dtype_device not in mel_basis: + mel = librosa_mel_fn(sample_rate, n_fft, num_mels, fmin, fmax) + mel_basis[fmax_dtype_device] = torch.from_numpy(mel).to(dtype=spec.dtype, device=spec.device) + mel = torch.matmul(mel_basis[fmax_dtype_device], spec) + mel = amp_to_db(mel) + return mel + + +def wav_to_mel(y, n_fft, num_mels, sample_rate, hop_length, win_length, fmin, fmax, center=False): + """ + Args Shapes: + - y : :math:`[B, 1, T]` + + Return Shapes: + - spec : :math:`[B,C,T]` + """ + y = y.squeeze(1) + + if torch.min(y) < -1.0: + print("min value is ", torch.min(y)) + if torch.max(y) > 1.0: + print("max value is ", torch.max(y)) + + global mel_basis, hann_window + dtype_device = str(y.dtype) + "_" + str(y.device) + fmax_dtype_device = str(fmax) + "_" + dtype_device + wnsize_dtype_device = str(win_length) + "_" + dtype_device + if fmax_dtype_device not in mel_basis: + mel = librosa_mel_fn(sample_rate, n_fft, num_mels, fmin, fmax) + mel_basis[fmax_dtype_device] = torch.from_numpy(mel).to(dtype=y.dtype, device=y.device) + if wnsize_dtype_device not in hann_window: + hann_window[wnsize_dtype_device] = torch.hann_window(win_length).to(dtype=y.dtype, device=y.device) + + y = torch.nn.functional.pad( + y.unsqueeze(1), + (int((n_fft - hop_length) / 2), int((n_fft - hop_length) / 2)), + mode="reflect", + ) + y = y.squeeze(1) + + spec = torch.stft( + y, + n_fft, + hop_length=hop_length, + win_length=win_length, + window=hann_window[wnsize_dtype_device], + center=center, + pad_mode="reflect", + normalized=False, + onesided=True, + ) + + spec = torch.sqrt(spec.pow(2).sum(-1) + 1e-6) + spec = torch.matmul(mel_basis[fmax_dtype_device], spec) + spec = amp_to_db(spec) + return spec + + +############################## +# DATASET +############################## + + +class VitsDataset(TTSDataset): + def __init__(self, model_args, *args, **kwargs): + super().__init__(*args, **kwargs) + self.pad_id = self.tokenizer.characters.pad_id + self.model_args = model_args + + def __getitem__(self, idx): + item = self.samples[idx] + raw_text = item["text"] + + wav, _ = load_audio(item["audio_file"]) + if self.model_args.encoder_sample_rate is not None: + if wav.size(1) % self.model_args.encoder_sample_rate != 0: + wav = wav[:, : -int(wav.size(1) % self.model_args.encoder_sample_rate)] + + wav_filename = os.path.basename(item["audio_file"]) + + token_ids = self.get_token_ids(idx, item["text"]) + + # after phonemization the text length may change + # this is a shameful ๐Ÿคญ hack to prevent longer phonemes + # TODO: find a better fix + if len(token_ids) > self.max_text_len or wav.shape[1] < self.min_audio_len: + self.rescue_item_idx += 1 + return self.__getitem__(self.rescue_item_idx) + + return { + "raw_text": raw_text, + "token_ids": token_ids, + "token_len": len(token_ids), + "wav": wav, + "wav_file": wav_filename, + "speaker_name": item["speaker_name"], + "language_name": item["language"], + } + + @property + def lengths(self): + lens = [] + for item in self.samples: + _, wav_file, *_ = _parse_sample(item) + audio_len = os.path.getsize(wav_file) / 16 * 8 # assuming 16bit audio + lens.append(audio_len) + return lens + + def collate_fn(self, batch): + """ + Return Shapes: + - tokens: :math:`[B, T]` + - token_lens :math:`[B]` + - token_rel_lens :math:`[B]` + - waveform: :math:`[B, 1, T]` + - waveform_lens: :math:`[B]` + - waveform_rel_lens: :math:`[B]` + - speaker_names: :math:`[B]` + - language_names: :math:`[B]` + - audiofile_paths: :math:`[B]` + - raw_texts: :math:`[B]` + """ + # convert list of dicts to dict of lists + B = len(batch) + batch = {k: [dic[k] for dic in batch] for k in batch[0]} + + _, ids_sorted_decreasing = torch.sort( + torch.LongTensor([x.size(1) for x in batch["wav"]]), dim=0, descending=True + ) + + max_text_len = max([len(x) for x in batch["token_ids"]]) + token_lens = torch.LongTensor(batch["token_len"]) + token_rel_lens = token_lens / token_lens.max() + + wav_lens = [w.shape[1] for w in batch["wav"]] + wav_lens = torch.LongTensor(wav_lens) + wav_lens_max = torch.max(wav_lens) + wav_rel_lens = wav_lens / wav_lens_max + + token_padded = torch.LongTensor(B, max_text_len) + wav_padded = torch.FloatTensor(B, 1, wav_lens_max) + token_padded = token_padded.zero_() + self.pad_id + wav_padded = wav_padded.zero_() + self.pad_id + for i in range(len(ids_sorted_decreasing)): + token_ids = batch["token_ids"][i] + token_padded[i, : batch["token_len"][i]] = torch.LongTensor(token_ids) + + wav = batch["wav"][i] + wav_padded[i, :, : wav.size(1)] = torch.FloatTensor(wav) + + return { + "tokens": token_padded, + "token_lens": token_lens, + "token_rel_lens": token_rel_lens, + "waveform": wav_padded, # (B x T) + "waveform_lens": wav_lens, # (B) + "waveform_rel_lens": wav_rel_lens, + "speaker_names": batch["speaker_name"], + "language_names": batch["language_name"], + "audio_files": batch["wav_file"], + "raw_text": batch["raw_text"], + } + + +############################## +# MODEL DEFINITION +############################## + + +@dataclass +class VitsArgs(Coqpit): + """VITS model arguments. + + Args: + + num_chars (int): + Number of characters in the vocabulary. Defaults to 100. + + out_channels (int): + Number of output channels of the decoder. Defaults to 513. + + spec_segment_size (int): + Decoder input segment size. Defaults to 32 `(32 * hoplength = waveform length)`. + + hidden_channels (int): + Number of hidden channels of the model. Defaults to 192. + + hidden_channels_ffn_text_encoder (int): + Number of hidden channels of the feed-forward layers of the text encoder transformer. Defaults to 256. + + num_heads_text_encoder (int): + Number of attention heads of the text encoder transformer. Defaults to 2. + + num_layers_text_encoder (int): + Number of transformer layers in the text encoder. Defaults to 6. + + kernel_size_text_encoder (int): + Kernel size of the text encoder transformer FFN layers. Defaults to 3. + + dropout_p_text_encoder (float): + Dropout rate of the text encoder. Defaults to 0.1. + + dropout_p_duration_predictor (float): + Dropout rate of the duration predictor. Defaults to 0.1. + + kernel_size_posterior_encoder (int): + Kernel size of the posterior encoder's WaveNet layers. Defaults to 5. + + dilatation_posterior_encoder (int): + Dilation rate of the posterior encoder's WaveNet layers. Defaults to 1. + + num_layers_posterior_encoder (int): + Number of posterior encoder's WaveNet layers. Defaults to 16. + + kernel_size_flow (int): + Kernel size of the Residual Coupling layers of the flow network. Defaults to 5. + + dilatation_flow (int): + Dilation rate of the Residual Coupling WaveNet layers of the flow network. Defaults to 1. + + num_layers_flow (int): + Number of Residual Coupling WaveNet layers of the flow network. Defaults to 6. + + resblock_type_decoder (str): + Type of the residual block in the decoder network. Defaults to "1". + + resblock_kernel_sizes_decoder (List[int]): + Kernel sizes of the residual blocks in the decoder network. Defaults to `[3, 7, 11]`. + + resblock_dilation_sizes_decoder (List[List[int]]): + Dilation sizes of the residual blocks in the decoder network. Defaults to `[[1, 3, 5], [1, 3, 5], [1, 3, 5]]`. + + upsample_rates_decoder (List[int]): + Upsampling rates for each concecutive upsampling layer in the decoder network. The multiply of these + values must be equal to the kop length used for computing spectrograms. Defaults to `[8, 8, 2, 2]`. + + upsample_initial_channel_decoder (int): + Number of hidden channels of the first upsampling convolution layer of the decoder network. Defaults to 512. + + upsample_kernel_sizes_decoder (List[int]): + Kernel sizes for each upsampling layer of the decoder network. Defaults to `[16, 16, 4, 4]`. + + periods_multi_period_discriminator (List[int]): + Periods values for Vits Multi-Period Discriminator. Defaults to `[2, 3, 5, 7, 11]`. + + use_sdp (bool): + Use Stochastic Duration Predictor. Defaults to True. + + noise_scale (float): + Noise scale used for the sample noise tensor in training. Defaults to 1.0. + + inference_noise_scale (float): + Noise scale used for the sample noise tensor in inference. Defaults to 0.667. + + length_scale (float): + Scale factor for the predicted duration values. Smaller values result faster speech. Defaults to 1. + + noise_scale_dp (float): + Noise scale used by the Stochastic Duration Predictor sample noise in training. Defaults to 1.0. + + inference_noise_scale_dp (float): + Noise scale for the Stochastic Duration Predictor in inference. Defaults to 0.8. + + max_inference_len (int): + Maximum inference length to limit the memory use. Defaults to None. + + init_discriminator (bool): + Initialize the disciminator network if set True. Set False for inference. Defaults to True. + + use_spectral_norm_disriminator (bool): + Use spectral normalization over weight norm in the discriminator. Defaults to False. + + use_speaker_embedding (bool): + Enable/Disable speaker embedding for multi-speaker models. Defaults to False. + + num_speakers (int): + Number of speakers for the speaker embedding layer. Defaults to 0. + + speakers_file (str): + Path to the speaker mapping file for the Speaker Manager. Defaults to None. + + speaker_embedding_channels (int): + Number of speaker embedding channels. Defaults to 256. + + use_d_vector_file (bool): + Enable/Disable the use of d-vectors for multi-speaker training. Defaults to False. + + d_vector_file (str): + Path to the file including pre-computed speaker embeddings. Defaults to None. + + d_vector_dim (int): + Number of d-vector channels. Defaults to 0. + + detach_dp_input (bool): + Detach duration predictor's input from the network for stopping the gradients. Defaults to True. + + use_language_embedding (bool): + Enable/Disable language embedding for multilingual models. Defaults to False. + + embedded_language_dim (int): + Number of language embedding channels. Defaults to 4. + + num_languages (int): + Number of languages for the language embedding layer. Defaults to 0. + + language_ids_file (str): + Path to the language mapping file for the Language Manager. Defaults to None. + + use_speaker_encoder_as_loss (bool): + Enable/Disable Speaker Consistency Loss (SCL). Defaults to False. + + speaker_encoder_config_path (str): + Path to the file speaker encoder config file, to use for SCL. Defaults to "". + + speaker_encoder_model_path (str): + Path to the file speaker encoder checkpoint file, to use for SCL. Defaults to "". + + condition_dp_on_speaker (bool): + Condition the duration predictor on the speaker embedding. Defaults to True. + + freeze_encoder (bool): + Freeze the encoder weigths during training. Defaults to False. + + freeze_DP (bool): + Freeze the duration predictor weigths during training. Defaults to False. + + freeze_PE (bool): + Freeze the posterior encoder weigths during training. Defaults to False. + + freeze_flow_encoder (bool): + Freeze the flow encoder weigths during training. Defaults to False. + + freeze_waveform_decoder (bool): + Freeze the waveform decoder weigths during training. Defaults to False. + + encoder_sample_rate (int): + If not None this sample rate will be used for training the Posterior Encoder, + flow, text_encoder and duration predictor. The decoder part (vocoder) will be + trained with the `config.audio.sample_rate`. Defaults to None. + + interpolate_z (bool): + If `encoder_sample_rate` not None and this parameter True the nearest interpolation + will be used to upsampling the latent variable z with the sampling rate `encoder_sample_rate` + to the `config.audio.sample_rate`. If it is False you will need to add extra + `upsample_rates_decoder` to match the shape. Defaults to True. + + """ + + num_chars: int = 100 + out_channels: int = 513 + spec_segment_size: int = 32 + hidden_channels: int = 192 + hidden_channels_ffn_text_encoder: int = 768 + num_heads_text_encoder: int = 2 + num_layers_text_encoder: int = 6 + kernel_size_text_encoder: int = 3 + dropout_p_text_encoder: float = 0.1 + dropout_p_duration_predictor: float = 0.5 + kernel_size_posterior_encoder: int = 5 + dilation_rate_posterior_encoder: int = 1 + num_layers_posterior_encoder: int = 16 + kernel_size_flow: int = 5 + dilation_rate_flow: int = 1 + num_layers_flow: int = 4 + resblock_type_decoder: str = "1" + resblock_kernel_sizes_decoder: List[int] = field(default_factory=lambda: [3, 7, 11]) + resblock_dilation_sizes_decoder: List[List[int]] = field(default_factory=lambda: [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) + upsample_rates_decoder: List[int] = field(default_factory=lambda: [8, 8, 2, 2]) + upsample_initial_channel_decoder: int = 512 + upsample_kernel_sizes_decoder: List[int] = field(default_factory=lambda: [16, 16, 4, 4]) + periods_multi_period_discriminator: List[int] = field(default_factory=lambda: [2, 3, 5, 7, 11]) + use_sdp: bool = True + noise_scale: float = 1.0 + inference_noise_scale: float = 0.667 + length_scale: float = 1 + noise_scale_dp: float = 1.0 + inference_noise_scale_dp: float = 1.0 + max_inference_len: int = None + init_discriminator: bool = True + use_spectral_norm_disriminator: bool = False + use_speaker_embedding: bool = False + num_speakers: int = 0 + speakers_file: str = None + d_vector_file: str = None + speaker_embedding_channels: int = 256 + use_d_vector_file: bool = False + d_vector_dim: int = 0 + detach_dp_input: bool = True + use_language_embedding: bool = False + embedded_language_dim: int = 4 + num_languages: int = 0 + language_ids_file: str = None + use_speaker_encoder_as_loss: bool = False + speaker_encoder_config_path: str = "" + speaker_encoder_model_path: str = "" + condition_dp_on_speaker: bool = True + freeze_encoder: bool = False + freeze_DP: bool = False + freeze_PE: bool = False + freeze_flow_decoder: bool = False + freeze_waveform_decoder: bool = False + encoder_sample_rate: int = None + interpolate_z: bool = True + reinit_DP: bool = False + reinit_text_encoder: bool = False + + +class Vits(BaseTTS): + """VITS TTS model + + Paper:: + https://arxiv.org/pdf/2106.06103.pdf + + Paper Abstract:: + Several recent end-to-end text-to-speech (TTS) models enabling single-stage training and parallel + sampling have been proposed, but their sample quality does not match that of two-stage TTS systems. + In this work, we present a parallel endto-end TTS method that generates more natural sounding audio than + current two-stage models. Our method adopts variational inference augmented with normalizing flows and + an adversarial training process, which improves the expressive power of generative modeling. We also propose a + stochastic duration predictor to synthesize speech with diverse rhythms from input text. With the + uncertainty modeling over latent variables and the stochastic duration predictor, our method expresses the + natural one-to-many relationship in which a text input can be spoken in multiple ways + with different pitches and rhythms. A subjective human evaluation (mean opinion score, or MOS) + on the LJ Speech, a single speaker dataset, shows that our method outperforms the best publicly + available TTS systems and achieves a MOS comparable to ground truth. + + Check :class:`TTS.tts.configs.vits_config.VitsConfig` for class arguments. + + Examples: + >>> from TTS.tts.configs.vits_config import VitsConfig + >>> from TTS.tts.models.vits import Vits + >>> config = VitsConfig() + >>> model = Vits(config) + """ + + def __init__( + self, + config: Coqpit, + ap: "AudioProcessor" = None, + tokenizer: "TTSTokenizer" = None, + speaker_manager: SpeakerManager = None, + language_manager: LanguageManager = None, + ): + + super().__init__(config, ap, tokenizer, speaker_manager, language_manager) + + self.init_multispeaker(config) + self.init_multilingual(config) + self.init_upsampling() + + self.length_scale = self.args.length_scale + self.noise_scale = self.args.noise_scale + self.inference_noise_scale = self.args.inference_noise_scale + self.inference_noise_scale_dp = self.args.inference_noise_scale_dp + self.noise_scale_dp = self.args.noise_scale_dp + self.max_inference_len = self.args.max_inference_len + self.spec_segment_size = self.args.spec_segment_size + + self.text_encoder = TextEncoder( + self.args.num_chars, + self.args.hidden_channels, + self.args.hidden_channels, + self.args.hidden_channels_ffn_text_encoder, + self.args.num_heads_text_encoder, + self.args.num_layers_text_encoder, + self.args.kernel_size_text_encoder, + self.args.dropout_p_text_encoder, + language_emb_dim=self.embedded_language_dim, + ) + + self.posterior_encoder = PosteriorEncoder( + self.args.out_channels, + self.args.hidden_channels, + self.args.hidden_channels, + kernel_size=self.args.kernel_size_posterior_encoder, + dilation_rate=self.args.dilation_rate_posterior_encoder, + num_layers=self.args.num_layers_posterior_encoder, + cond_channels=self.embedded_speaker_dim, + ) + + self.flow = ResidualCouplingBlocks( + self.args.hidden_channels, + self.args.hidden_channels, + kernel_size=self.args.kernel_size_flow, + dilation_rate=self.args.dilation_rate_flow, + num_layers=self.args.num_layers_flow, + cond_channels=self.embedded_speaker_dim, + ) + + if self.args.use_sdp: + self.duration_predictor = StochasticDurationPredictor( + self.args.hidden_channels, + 192, + 3, + self.args.dropout_p_duration_predictor, + 4, + cond_channels=self.embedded_speaker_dim if self.args.condition_dp_on_speaker else 0, + language_emb_dim=self.embedded_language_dim, + ) + else: + self.duration_predictor = DurationPredictor( + self.args.hidden_channels, + 256, + 3, + self.args.dropout_p_duration_predictor, + cond_channels=self.embedded_speaker_dim, + language_emb_dim=self.embedded_language_dim, + ) + + self.waveform_decoder = HifiganGenerator( + self.args.hidden_channels, + 1, + self.args.resblock_type_decoder, + self.args.resblock_dilation_sizes_decoder, + self.args.resblock_kernel_sizes_decoder, + self.args.upsample_kernel_sizes_decoder, + self.args.upsample_initial_channel_decoder, + self.args.upsample_rates_decoder, + inference_padding=0, + cond_channels=self.embedded_speaker_dim, + conv_pre_weight_norm=False, + conv_post_weight_norm=False, + conv_post_bias=False, + ) + + if self.args.init_discriminator: + self.disc = VitsDiscriminator( + periods=self.args.periods_multi_period_discriminator, + use_spectral_norm=self.args.use_spectral_norm_disriminator, + ) + + def init_multispeaker(self, config: Coqpit): + """Initialize multi-speaker modules of a model. A model can be trained either with a speaker embedding layer + or with external `d_vectors` computed from a speaker encoder model. + + You must provide a `speaker_manager` at initialization to set up the multi-speaker modules. + + Args: + config (Coqpit): Model configuration. + data (List, optional): Dataset items to infer number of speakers. Defaults to None. + """ + self.embedded_speaker_dim = 0 + self.num_speakers = self.args.num_speakers + self.audio_transform = None + + if self.speaker_manager: + self.num_speakers = self.speaker_manager.num_speakers + + if self.args.use_speaker_embedding: + self._init_speaker_embedding() + + if self.args.use_d_vector_file: + self._init_d_vector() + + # TODO: make this a function + if self.args.use_speaker_encoder_as_loss: + if self.speaker_manager.encoder is None and ( + not self.args.speaker_encoder_model_path or not self.args.speaker_encoder_config_path + ): + raise RuntimeError( + " [!] To use the speaker consistency loss (SCL) you need to specify speaker_encoder_model_path and speaker_encoder_config_path !!" + ) + + self.speaker_manager.encoder.eval() + print(" > External Speaker Encoder Loaded !!") + + if ( + hasattr(self.speaker_manager.encoder, "audio_config") + and self.config.audio["sample_rate"] != self.speaker_manager.encoder.audio_config["sample_rate"] + ): + self.audio_transform = torchaudio.transforms.Resample( + orig_freq=self.audio_config["sample_rate"], + new_freq=self.speaker_manager.encoder.audio_config["sample_rate"], + ) + # pylint: disable=W0101,W0105 + self.audio_transform = torchaudio.transforms.Resample( + orig_freq=self.config.audio.sample_rate, + new_freq=self.speaker_manager.encoder.audio_config["sample_rate"], + ) + + def _init_speaker_embedding(self): + # pylint: disable=attribute-defined-outside-init + if self.num_speakers > 0: + print(" > initialization of speaker-embedding layers.") + self.embedded_speaker_dim = self.args.speaker_embedding_channels + self.emb_g = nn.Embedding(self.num_speakers, self.embedded_speaker_dim) + + def _init_d_vector(self): + # pylint: disable=attribute-defined-outside-init + if hasattr(self, "emb_g"): + raise ValueError("[!] Speaker embedding layer already initialized before d_vector settings.") + self.embedded_speaker_dim = self.args.d_vector_dim + + def init_multilingual(self, config: Coqpit): + """Initialize multilingual modules of a model. + + Args: + config (Coqpit): Model configuration. + """ + if self.args.language_ids_file is not None: + self.language_manager = LanguageManager(language_ids_file_path=config.language_ids_file) + + if self.args.use_language_embedding and self.language_manager: + print(" > initialization of language-embedding layers.") + self.num_languages = self.language_manager.num_languages + self.embedded_language_dim = self.args.embedded_language_dim + self.emb_l = nn.Embedding(self.num_languages, self.embedded_language_dim) + torch.nn.init.xavier_uniform_(self.emb_l.weight) + else: + self.embedded_language_dim = 0 + + def init_upsampling(self): + """ + Initialize upsampling modules of a model. + """ + if self.args.encoder_sample_rate: + self.interpolate_factor = self.config.audio["sample_rate"] / self.args.encoder_sample_rate + self.audio_resampler = torchaudio.transforms.Resample( + orig_freq=self.config.audio["sample_rate"], new_freq=self.args.encoder_sample_rate + ) # pylint: disable=W0201 + + def on_init_end(self, trainer): # pylint: disable=W0613 + """Reinit layes if needed""" + if self.args.reinit_DP: + before_dict = get_module_weights_sum(self.duration_predictor) + # Applies weights_reset recursively to every submodule of the duration predictor + self.duration_predictor.apply(fn=weights_reset) + after_dict = get_module_weights_sum(self.duration_predictor) + for key, value in after_dict.items(): + if value == before_dict[key]: + raise RuntimeError(" [!] The weights of Duration Predictor was not reinit check it !") + print(" > Duration Predictor was reinit.") + + if self.args.reinit_text_encoder: + before_dict = get_module_weights_sum(self.text_encoder) + # Applies weights_reset recursively to every submodule of the duration predictor + self.text_encoder.apply(fn=weights_reset) + after_dict = get_module_weights_sum(self.text_encoder) + for key, value in after_dict.items(): + if value == before_dict[key]: + raise RuntimeError(" [!] The weights of Text Encoder was not reinit check it !") + print(" > Text Encoder was reinit.") + + def get_aux_input(self, aux_input: Dict): + sid, g, lid = self._set_cond_input(aux_input) + return {"speaker_ids": sid, "style_wav": None, "d_vectors": g, "language_ids": lid} + + def _freeze_layers(self): + if self.args.freeze_encoder: + for param in self.text_encoder.parameters(): + param.requires_grad = False + + if hasattr(self, "emb_l"): + for param in self.emb_l.parameters(): + param.requires_grad = False + + if self.args.freeze_PE: + for param in self.posterior_encoder.parameters(): + param.requires_grad = False + + if self.args.freeze_DP: + for param in self.duration_predictor.parameters(): + param.requires_grad = False + + if self.args.freeze_flow_decoder: + for param in self.flow.parameters(): + param.requires_grad = False + + if self.args.freeze_waveform_decoder: + for param in self.waveform_decoder.parameters(): + param.requires_grad = False + + @staticmethod + def _set_cond_input(aux_input: Dict): + """Set the speaker conditioning input based on the multi-speaker mode.""" + sid, g, lid = None, None, None + if "speaker_ids" in aux_input and aux_input["speaker_ids"] is not None: + sid = aux_input["speaker_ids"] + if sid.ndim == 0: + sid = sid.unsqueeze_(0) + if "d_vectors" in aux_input and aux_input["d_vectors"] is not None: + g = F.normalize(aux_input["d_vectors"]).unsqueeze(-1) + if g.ndim == 2: + g = g.unsqueeze_(0) + + if "language_ids" in aux_input and aux_input["language_ids"] is not None: + lid = aux_input["language_ids"] + if lid.ndim == 0: + lid = lid.unsqueeze_(0) + + return sid, g, lid + + def _set_speaker_input(self, aux_input: Dict): + d_vectors = aux_input.get("d_vectors", None) + speaker_ids = aux_input.get("speaker_ids", None) + + if d_vectors is not None and speaker_ids is not None: + raise ValueError("[!] Cannot use d-vectors and speaker-ids together.") + + if speaker_ids is not None and not hasattr(self, "emb_g"): + raise ValueError("[!] Cannot use speaker-ids without enabling speaker embedding.") + + g = speaker_ids if speaker_ids is not None else d_vectors + return g + + def forward_mas(self, outputs, z_p, m_p, logs_p, x, x_mask, y_mask, g, lang_emb): + # find the alignment path + attn_mask = torch.unsqueeze(x_mask, -1) * torch.unsqueeze(y_mask, 2) + with torch.no_grad(): + o_scale = torch.exp(-2 * logs_p) + logp1 = torch.sum(-0.5 * math.log(2 * math.pi) - logs_p, [1]).unsqueeze(-1) # [b, t, 1] + logp2 = torch.einsum("klm, kln -> kmn", [o_scale, -0.5 * (z_p**2)]) + logp3 = torch.einsum("klm, kln -> kmn", [m_p * o_scale, z_p]) + logp4 = torch.sum(-0.5 * (m_p**2) * o_scale, [1]).unsqueeze(-1) # [b, t, 1] + logp = logp2 + logp3 + logp1 + logp4 + attn = maximum_path(logp, attn_mask.squeeze(1)).unsqueeze(1).detach() # [b, 1, t, t'] + + # duration predictor + attn_durations = attn.sum(3) + if self.args.use_sdp: + loss_duration = self.duration_predictor( + x.detach() if self.args.detach_dp_input else x, + x_mask, + attn_durations, + g=g.detach() if self.args.detach_dp_input and g is not None else g, + lang_emb=lang_emb.detach() if self.args.detach_dp_input and lang_emb is not None else lang_emb, + ) + loss_duration = loss_duration / torch.sum(x_mask) + else: + attn_log_durations = torch.log(attn_durations + 1e-6) * x_mask + log_durations = self.duration_predictor( + x.detach() if self.args.detach_dp_input else x, + x_mask, + g=g.detach() if self.args.detach_dp_input and g is not None else g, + lang_emb=lang_emb.detach() if self.args.detach_dp_input and lang_emb is not None else lang_emb, + ) + loss_duration = torch.sum((log_durations - attn_log_durations) ** 2, [1, 2]) / torch.sum(x_mask) + outputs["loss_duration"] = loss_duration + return outputs, attn + + def upsampling_z(self, z, slice_ids=None, y_lengths=None, y_mask=None): + spec_segment_size = self.spec_segment_size + if self.args.encoder_sample_rate: + # recompute the slices and spec_segment_size if needed + slice_ids = slice_ids * int(self.interpolate_factor) if slice_ids is not None else slice_ids + spec_segment_size = spec_segment_size * int(self.interpolate_factor) + # interpolate z if needed + if self.args.interpolate_z: + z = torch.nn.functional.interpolate(z, scale_factor=[self.interpolate_factor], mode="linear").squeeze(0) + # recompute the mask if needed + if y_lengths is not None and y_mask is not None: + y_mask = ( + sequence_mask(y_lengths * self.interpolate_factor, None).to(y_mask.dtype).unsqueeze(1) + ) # [B, 1, T_dec_resampled] + + return z, spec_segment_size, slice_ids, y_mask + + def forward( # pylint: disable=dangerous-default-value + self, + x: torch.tensor, + x_lengths: torch.tensor, + y: torch.tensor, + y_lengths: torch.tensor, + waveform: torch.tensor, + aux_input={"d_vectors": None, "speaker_ids": None, "language_ids": None}, + ) -> Dict: + """Forward pass of the model. + + Args: + x (torch.tensor): Batch of input character sequence IDs. + x_lengths (torch.tensor): Batch of input character sequence lengths. + y (torch.tensor): Batch of input spectrograms. + y_lengths (torch.tensor): Batch of input spectrogram lengths. + waveform (torch.tensor): Batch of ground truth waveforms per sample. + aux_input (dict, optional): Auxiliary inputs for multi-speaker and multi-lingual training. + Defaults to {"d_vectors": None, "speaker_ids": None, "language_ids": None}. + + Returns: + Dict: model outputs keyed by the output name. + + Shapes: + - x: :math:`[B, T_seq]` + - x_lengths: :math:`[B]` + - y: :math:`[B, C, T_spec]` + - y_lengths: :math:`[B]` + - waveform: :math:`[B, 1, T_wav]` + - d_vectors: :math:`[B, C, 1]` + - speaker_ids: :math:`[B]` + - language_ids: :math:`[B]` + + Return Shapes: + - model_outputs: :math:`[B, 1, T_wav]` + - alignments: :math:`[B, T_seq, T_dec]` + - z: :math:`[B, C, T_dec]` + - z_p: :math:`[B, C, T_dec]` + - m_p: :math:`[B, C, T_dec]` + - logs_p: :math:`[B, C, T_dec]` + - m_q: :math:`[B, C, T_dec]` + - logs_q: :math:`[B, C, T_dec]` + - waveform_seg: :math:`[B, 1, spec_seg_size * hop_length]` + - gt_spk_emb: :math:`[B, 1, speaker_encoder.proj_dim]` + - syn_spk_emb: :math:`[B, 1, speaker_encoder.proj_dim]` + """ + outputs = {} + sid, g, lid = self._set_cond_input(aux_input) + # speaker embedding + if self.args.use_speaker_embedding and sid is not None: + g = self.emb_g(sid).unsqueeze(-1) # [b, h, 1] + + # language embedding + lang_emb = None + if self.args.use_language_embedding and lid is not None: + lang_emb = self.emb_l(lid).unsqueeze(-1) + + x, m_p, logs_p, x_mask = self.text_encoder(x, x_lengths, lang_emb=lang_emb) + + # posterior encoder + z, m_q, logs_q, y_mask = self.posterior_encoder(y, y_lengths, g=g) + + # flow layers + z_p = self.flow(z, y_mask, g=g) + + # duration predictor + outputs, attn = self.forward_mas(outputs, z_p, m_p, logs_p, x, x_mask, y_mask, g=g, lang_emb=lang_emb) + + # expand prior + m_p = torch.einsum("klmn, kjm -> kjn", [attn, m_p]) + logs_p = torch.einsum("klmn, kjm -> kjn", [attn, logs_p]) + + # select a random feature segment for the waveform decoder + z_slice, slice_ids = rand_segments(z, y_lengths, self.spec_segment_size, let_short_samples=True, pad_short=True) + + # interpolate z if needed + z_slice, spec_segment_size, slice_ids, _ = self.upsampling_z(z_slice, slice_ids=slice_ids) + + o = self.waveform_decoder(z_slice, g=g) + + wav_seg = segment( + waveform, + slice_ids * self.config.audio.hop_length, + spec_segment_size * self.config.audio.hop_length, + pad_short=True, + ) + + if self.args.use_speaker_encoder_as_loss and self.speaker_manager.encoder is not None: + # concate generated and GT waveforms + wavs_batch = torch.cat((wav_seg, o), dim=0) + + # resample audio to speaker encoder sample_rate + # pylint: disable=W0105 + if self.audio_transform is not None: + wavs_batch = self.audio_transform(wavs_batch) + + pred_embs = self.speaker_manager.encoder.forward(wavs_batch, l2_norm=True) + + # split generated and GT speaker embeddings + gt_spk_emb, syn_spk_emb = torch.chunk(pred_embs, 2, dim=0) + else: + gt_spk_emb, syn_spk_emb = None, None + + outputs.update( + { + "model_outputs": o, + "alignments": attn.squeeze(1), + "m_p": m_p, + "logs_p": logs_p, + "z": z, + "z_p": z_p, + "m_q": m_q, + "logs_q": logs_q, + "waveform_seg": wav_seg, + "gt_spk_emb": gt_spk_emb, + "syn_spk_emb": syn_spk_emb, + "slice_ids": slice_ids, + } + ) + return outputs + + @staticmethod + def _set_x_lengths(x, aux_input): + if "x_lengths" in aux_input and aux_input["x_lengths"] is not None: + return aux_input["x_lengths"] + return torch.tensor(x.shape[1:2]).to(x.device) + + @torch.no_grad() + def inference( + self, x, aux_input={"x_lengths": None, "d_vectors": None, "speaker_ids": None, "language_ids": None} + ): # pylint: disable=dangerous-default-value + """ + Note: + To run in batch mode, provide `x_lengths` else model assumes that the batch size is 1. + + Shapes: + - x: :math:`[B, T_seq]` + - x_lengths: :math:`[B]` + - d_vectors: :math:`[B, C]` + - speaker_ids: :math:`[B]` + + Return Shapes: + - model_outputs: :math:`[B, 1, T_wav]` + - alignments: :math:`[B, T_seq, T_dec]` + - z: :math:`[B, C, T_dec]` + - z_p: :math:`[B, C, T_dec]` + - m_p: :math:`[B, C, T_dec]` + - logs_p: :math:`[B, C, T_dec]` + """ + sid, g, lid = self._set_cond_input(aux_input) + x_lengths = self._set_x_lengths(x, aux_input) + + # speaker embedding + if self.args.use_speaker_embedding and sid is not None: + g = self.emb_g(sid).unsqueeze(-1) + + # language embedding + lang_emb = None + if self.args.use_language_embedding and lid is not None: + lang_emb = self.emb_l(lid).unsqueeze(-1) + + x, m_p, logs_p, x_mask = self.text_encoder(x, x_lengths, lang_emb=lang_emb) + + if self.args.use_sdp: + logw = self.duration_predictor( + x, + x_mask, + g=g if self.args.condition_dp_on_speaker else None, + reverse=True, + noise_scale=self.inference_noise_scale_dp, + lang_emb=lang_emb, + ) + else: + logw = self.duration_predictor( + x, x_mask, g=g if self.args.condition_dp_on_speaker else None, lang_emb=lang_emb + ) + + w = torch.exp(logw) * x_mask * self.length_scale + w_ceil = torch.ceil(w) + y_lengths = torch.clamp_min(torch.sum(w_ceil, [1, 2]), 1).long() + y_mask = sequence_mask(y_lengths, None).to(x_mask.dtype).unsqueeze(1) # [B, 1, T_dec] + + attn_mask = x_mask * y_mask.transpose(1, 2) # [B, 1, T_enc] * [B, T_dec, 1] + attn = generate_path(w_ceil.squeeze(1), attn_mask.squeeze(1).transpose(1, 2)) + + m_p = torch.matmul(attn.transpose(1, 2), m_p.transpose(1, 2)).transpose(1, 2) + logs_p = torch.matmul(attn.transpose(1, 2), logs_p.transpose(1, 2)).transpose(1, 2) + + z_p = m_p + torch.randn_like(m_p) * torch.exp(logs_p) * self.inference_noise_scale + z = self.flow(z_p, y_mask, g=g, reverse=True) + + # upsampling if needed + z, _, _, y_mask = self.upsampling_z(z, y_lengths=y_lengths, y_mask=y_mask) + + o = self.waveform_decoder((z * y_mask)[:, :, : self.max_inference_len], g=g) + + outputs = { + "model_outputs": o, + "alignments": attn.squeeze(1), + "durations": w_ceil, + "z": z, + "z_p": z_p, + "m_p": m_p, + "logs_p": logs_p, + "y_mask": y_mask, + } + return outputs + + @torch.no_grad() + def inference_voice_conversion( + self, reference_wav, speaker_id=None, d_vector=None, reference_speaker_id=None, reference_d_vector=None + ): + """Inference for voice conversion + + Args: + reference_wav (Tensor): Reference wavform. Tensor of shape [B, T] + speaker_id (Tensor): speaker_id of the target speaker. Tensor of shape [B] + d_vector (Tensor): d_vector embedding of target speaker. Tensor of shape `[B, C]` + reference_speaker_id (Tensor): speaker_id of the reference_wav speaker. Tensor of shape [B] + reference_d_vector (Tensor): d_vector embedding of the reference_wav speaker. Tensor of shape `[B, C]` + """ + # compute spectrograms + y = wav_to_spec( + reference_wav, + self.config.audio.fft_size, + self.config.audio.hop_length, + self.config.audio.win_length, + center=False, + ) + y_lengths = torch.tensor([y.size(-1)]).to(y.device) + speaker_cond_src = reference_speaker_id if reference_speaker_id is not None else reference_d_vector + speaker_cond_tgt = speaker_id if speaker_id is not None else d_vector + # print(y.shape, y_lengths.shape) + wav, _, _ = self.voice_conversion(y, y_lengths, speaker_cond_src, speaker_cond_tgt) + return wav + + def voice_conversion(self, y, y_lengths, speaker_cond_src, speaker_cond_tgt): + """Forward pass for voice conversion + + TODO: create an end-point for voice conversion + + Args: + y (Tensor): Reference spectrograms. Tensor of shape [B, T, C] + y_lengths (Tensor): Length of each reference spectrogram. Tensor of shape [B] + speaker_cond_src (Tensor): Reference speaker ID. Tensor of shape [B,] + speaker_cond_tgt (Tensor): Target speaker ID. Tensor of shape [B,] + """ + assert self.num_speakers > 0, "num_speakers have to be larger than 0." + # speaker embedding + if self.args.use_speaker_embedding and not self.args.use_d_vector_file: + g_src = self.emb_g(speaker_cond_src).unsqueeze(-1) + g_tgt = self.emb_g(speaker_cond_tgt).unsqueeze(-1) + elif not self.args.use_speaker_embedding and self.args.use_d_vector_file: + g_src = F.normalize(speaker_cond_src).unsqueeze(-1) + g_tgt = F.normalize(speaker_cond_tgt).unsqueeze(-1) + else: + raise RuntimeError(" [!] Voice conversion is only supported on multi-speaker models.") + + z, _, _, y_mask = self.posterior_encoder(y, y_lengths, g=g_src) + z_p = self.flow(z, y_mask, g=g_src) + z_hat = self.flow(z_p, y_mask, g=g_tgt, reverse=True) + o_hat = self.waveform_decoder(z_hat * y_mask, g=g_tgt) + return o_hat, y_mask, (z, z_p, z_hat) + + def train_step(self, batch: dict, criterion: nn.Module, optimizer_idx: int) -> Tuple[Dict, Dict]: + """Perform a single training step. Run the model forward pass and compute losses. + + Args: + batch (Dict): Input tensors. + criterion (nn.Module): Loss layer designed for the model. + optimizer_idx (int): Index of optimizer to use. 0 for the generator and 1 for the discriminator networks. + + Returns: + Tuple[Dict, Dict]: Model ouputs and computed losses. + """ + + self._freeze_layers() + + spec_lens = batch["spec_lens"] + + if optimizer_idx == 0: + tokens = batch["tokens"] + token_lenghts = batch["token_lens"] + spec = batch["spec"] + + d_vectors = batch["d_vectors"] + speaker_ids = batch["speaker_ids"] + language_ids = batch["language_ids"] + waveform = batch["waveform"] + + # generator pass + outputs = self.forward( + tokens, + token_lenghts, + spec, + spec_lens, + waveform, + aux_input={"d_vectors": d_vectors, "speaker_ids": speaker_ids, "language_ids": language_ids}, + ) + + # cache tensors for the generator pass + self.model_outputs_cache = outputs # pylint: disable=attribute-defined-outside-init + + # compute scores and features + scores_disc_fake, _, scores_disc_real, _ = self.disc( + outputs["model_outputs"].detach(), outputs["waveform_seg"] + ) + + # compute loss + with autocast(enabled=False): # use float32 for the criterion + loss_dict = criterion[optimizer_idx]( + scores_disc_real, + scores_disc_fake, + ) + return outputs, loss_dict + + if optimizer_idx == 1: + mel = batch["mel"] + + # compute melspec segment + with autocast(enabled=False): + + if self.args.encoder_sample_rate: + spec_segment_size = self.spec_segment_size * int(self.interpolate_factor) + else: + spec_segment_size = self.spec_segment_size + + mel_slice = segment( + mel.float(), self.model_outputs_cache["slice_ids"], spec_segment_size, pad_short=True + ) + mel_slice_hat = wav_to_mel( + y=self.model_outputs_cache["model_outputs"].float(), + n_fft=self.config.audio.fft_size, + sample_rate=self.config.audio.sample_rate, + num_mels=self.config.audio.num_mels, + hop_length=self.config.audio.hop_length, + win_length=self.config.audio.win_length, + fmin=self.config.audio.mel_fmin, + fmax=self.config.audio.mel_fmax, + center=False, + ) + + # compute discriminator scores and features + scores_disc_fake, feats_disc_fake, _, feats_disc_real = self.disc( + self.model_outputs_cache["model_outputs"], self.model_outputs_cache["waveform_seg"] + ) + + # compute losses + with autocast(enabled=False): # use float32 for the criterion + loss_dict = criterion[optimizer_idx]( + mel_slice_hat=mel_slice.float(), + mel_slice=mel_slice_hat.float(), + z_p=self.model_outputs_cache["z_p"].float(), + logs_q=self.model_outputs_cache["logs_q"].float(), + m_p=self.model_outputs_cache["m_p"].float(), + logs_p=self.model_outputs_cache["logs_p"].float(), + z_len=spec_lens, + scores_disc_fake=scores_disc_fake, + feats_disc_fake=feats_disc_fake, + feats_disc_real=feats_disc_real, + loss_duration=self.model_outputs_cache["loss_duration"], + use_speaker_encoder_as_loss=self.args.use_speaker_encoder_as_loss, + gt_spk_emb=self.model_outputs_cache["gt_spk_emb"], + syn_spk_emb=self.model_outputs_cache["syn_spk_emb"], + ) + + return self.model_outputs_cache, loss_dict + + raise ValueError(" [!] Unexpected `optimizer_idx`.") + + def _log(self, ap, batch, outputs, name_prefix="train"): # pylint: disable=unused-argument,no-self-use + y_hat = outputs[1]["model_outputs"] + y = outputs[1]["waveform_seg"] + figures = plot_results(y_hat, y, ap, name_prefix) + sample_voice = y_hat[0].squeeze(0).detach().cpu().numpy() + audios = {f"{name_prefix}/audio": sample_voice} + + alignments = outputs[1]["alignments"] + align_img = alignments[0].data.cpu().numpy().T + + figures.update( + { + "alignment": plot_alignment(align_img, output_fig=False), + } + ) + return figures, audios + + def train_log( + self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int + ): # pylint: disable=no-self-use + """Create visualizations and waveform examples. + + For example, here you can plot spectrograms and generate sample sample waveforms from these spectrograms to + be projected onto Tensorboard. + + Args: + ap (AudioProcessor): audio processor used at training. + batch (Dict): Model inputs used at the previous training step. + outputs (Dict): Model outputs generated at the previoud training step. + + Returns: + Tuple[Dict, np.ndarray]: training plots and output waveform. + """ + figures, audios = self._log(self.ap, batch, outputs, "train") + logger.train_figures(steps, figures) + logger.train_audios(steps, audios, self.ap.sample_rate) + + @torch.no_grad() + def eval_step(self, batch: dict, criterion: nn.Module, optimizer_idx: int): + return self.train_step(batch, criterion, optimizer_idx) + + def eval_log(self, batch: dict, outputs: dict, logger: "Logger", assets: dict, steps: int) -> None: + figures, audios = self._log(self.ap, batch, outputs, "eval") + logger.eval_figures(steps, figures) + logger.eval_audios(steps, audios, self.ap.sample_rate) + + def get_aux_input_from_test_sentences(self, sentence_info): + if hasattr(self.config, "model_args"): + config = self.config.model_args + else: + config = self.config + + # extract speaker and language info + text, speaker_name, style_wav, language_name = None, None, None, None + + if isinstance(sentence_info, list): + if len(sentence_info) == 1: + text = sentence_info[0] + elif len(sentence_info) == 2: + text, speaker_name = sentence_info + elif len(sentence_info) == 3: + text, speaker_name, style_wav = sentence_info + elif len(sentence_info) == 4: + text, speaker_name, style_wav, language_name = sentence_info + else: + text = sentence_info + + # get speaker id/d_vector + speaker_id, d_vector, language_id = None, None, None + if hasattr(self, "speaker_manager"): + if config.use_d_vector_file: + if speaker_name is None: + d_vector = self.speaker_manager.get_random_embeddings() + else: + d_vector = self.speaker_manager.get_mean_embedding(speaker_name, num_samples=None, randomize=False) + elif config.use_speaker_embedding: + if speaker_name is None: + speaker_id = self.speaker_manager.get_random_id() + else: + speaker_id = self.speaker_manager.ids[speaker_name] + + # get language id + if hasattr(self, "language_manager") and config.use_language_embedding and language_name is not None: + language_id = self.language_manager.ids[language_name] + + return { + "text": text, + "speaker_id": speaker_id, + "style_wav": style_wav, + "d_vector": d_vector, + "language_id": language_id, + "language_name": language_name, + } + + @torch.no_grad() + def test_run(self, assets) -> Tuple[Dict, Dict]: + """Generic test run for `tts` models used by `Trainer`. + + You can override this for a different behaviour. + + Returns: + Tuple[Dict, Dict]: Test figures and audios to be projected to Tensorboard. + """ + print(" | > Synthesizing test sentences.") + test_audios = {} + test_figures = {} + test_sentences = self.config.test_sentences + for idx, s_info in enumerate(test_sentences): + aux_inputs = self.get_aux_input_from_test_sentences(s_info) + wav, alignment, _, _ = synthesis( + self, + aux_inputs["text"], + self.config, + "cuda" in str(next(self.parameters()).device), + speaker_id=aux_inputs["speaker_id"], + d_vector=aux_inputs["d_vector"], + style_wav=aux_inputs["style_wav"], + language_id=aux_inputs["language_id"], + use_griffin_lim=True, + do_trim_silence=False, + ).values() + test_audios["{}-audio".format(idx)] = wav + test_figures["{}-alignment".format(idx)] = plot_alignment(alignment.T, output_fig=False) + return {"figures": test_figures, "audios": test_audios} + + def test_log( + self, outputs: dict, logger: "Logger", assets: dict, steps: int # pylint: disable=unused-argument + ) -> None: + logger.test_audios(steps, outputs["audios"], self.ap.sample_rate) + logger.test_figures(steps, outputs["figures"]) + + def format_batch(self, batch: Dict) -> Dict: + """Compute speaker, langugage IDs and d_vector for the batch if necessary.""" + speaker_ids = None + language_ids = None + d_vectors = None + + # get numerical speaker ids from speaker names + if self.speaker_manager is not None and self.speaker_manager.ids and self.args.use_speaker_embedding: + speaker_ids = [self.speaker_manager.ids[sn] for sn in batch["speaker_names"]] + + if speaker_ids is not None: + speaker_ids = torch.LongTensor(speaker_ids) + batch["speaker_ids"] = speaker_ids + + # get d_vectors from audio file names + if self.speaker_manager is not None and self.speaker_manager.embeddings and self.args.use_d_vector_file: + d_vector_mapping = self.speaker_manager.embeddings + d_vectors = [d_vector_mapping[w]["embedding"] for w in batch["audio_files"]] + d_vectors = torch.FloatTensor(d_vectors) + + # get language ids from language names + if self.language_manager is not None and self.language_manager.ids and self.args.use_language_embedding: + language_ids = [self.language_manager.ids[ln] for ln in batch["language_names"]] + + if language_ids is not None: + language_ids = torch.LongTensor(language_ids) + + batch["language_ids"] = language_ids + batch["d_vectors"] = d_vectors + batch["speaker_ids"] = speaker_ids + return batch + + def format_batch_on_device(self, batch): + """Compute spectrograms on the device.""" + ac = self.config.audio + + if self.args.encoder_sample_rate: + wav = self.audio_resampler(batch["waveform"]) + else: + wav = batch["waveform"] + + # compute spectrograms + batch["spec"] = wav_to_spec(wav, ac.fft_size, ac.hop_length, ac.win_length, center=False) + + if self.args.encoder_sample_rate: + # recompute spec with high sampling rate to the loss + spec_mel = wav_to_spec(batch["waveform"], ac.fft_size, ac.hop_length, ac.win_length, center=False) + # remove extra stft frames if needed + if spec_mel.size(2) > int(batch["spec"].size(2) * self.interpolate_factor): + spec_mel = spec_mel[:, :, : int(batch["spec"].size(2) * self.interpolate_factor)] + else: + batch["spec"] = batch["spec"][:, :, : int(spec_mel.size(2) / self.interpolate_factor)] + else: + spec_mel = batch["spec"] + + batch["mel"] = spec_to_mel( + spec=spec_mel, + n_fft=ac.fft_size, + num_mels=ac.num_mels, + sample_rate=ac.sample_rate, + fmin=ac.mel_fmin, + fmax=ac.mel_fmax, + ) + + if self.args.encoder_sample_rate: + assert batch["spec"].shape[2] == int( + batch["mel"].shape[2] / self.interpolate_factor + ), f"{batch['spec'].shape[2]}, {batch['mel'].shape[2]}" + else: + assert batch["spec"].shape[2] == batch["mel"].shape[2], f"{batch['spec'].shape[2]}, {batch['mel'].shape[2]}" + + # compute spectrogram frame lengths + batch["spec_lens"] = (batch["spec"].shape[2] * batch["waveform_rel_lens"]).int() + batch["mel_lens"] = (batch["mel"].shape[2] * batch["waveform_rel_lens"]).int() + + if self.args.encoder_sample_rate: + assert (batch["spec_lens"] - (batch["mel_lens"] / self.interpolate_factor).int()).sum() == 0 + else: + assert (batch["spec_lens"] - batch["mel_lens"]).sum() == 0 + + # zero the padding frames + batch["spec"] = batch["spec"] * sequence_mask(batch["spec_lens"]).unsqueeze(1) + batch["mel"] = batch["mel"] * sequence_mask(batch["mel_lens"]).unsqueeze(1) + return batch + + def get_data_loader( + self, + config: Coqpit, + assets: Dict, + is_eval: bool, + samples: Union[List[Dict], List[List]], + verbose: bool, + num_gpus: int, + rank: int = None, + ) -> "DataLoader": + if is_eval and not config.run_eval: + loader = None + else: + # init dataloader + dataset = VitsDataset( + model_args=self.args, + samples=samples, + batch_group_size=0 if is_eval else config.batch_group_size * config.batch_size, + min_text_len=config.min_text_len, + max_text_len=config.max_text_len, + min_audio_len=config.min_audio_len, + max_audio_len=config.max_audio_len, + phoneme_cache_path=config.phoneme_cache_path, + precompute_num_workers=config.precompute_num_workers, + verbose=verbose, + tokenizer=self.tokenizer, + start_by_longest=config.start_by_longest, + ) + + # wait all the DDP process to be ready + if num_gpus > 1: + dist.barrier() + + # sort input sequences from short to long + dataset.preprocess_samples() + + # get samplers + sampler = self.get_sampler(config, dataset, num_gpus) + + loader = DataLoader( + dataset, + batch_size=config.eval_batch_size if is_eval else config.batch_size, + shuffle=False, # shuffle is done in the dataset. + drop_last=False, # setting this False might cause issues in AMP training. + sampler=sampler, + collate_fn=dataset.collate_fn, + num_workers=config.num_eval_loader_workers if is_eval else config.num_loader_workers, + pin_memory=False, + ) + return loader + + def get_optimizer(self) -> List: + """Initiate and return the GAN optimizers based on the config parameters. + It returnes 2 optimizers in a list. First one is for the generator and the second one is for the discriminator. + Returns: + List: optimizers. + """ + # select generator parameters + optimizer0 = get_optimizer(self.config.optimizer, self.config.optimizer_params, self.config.lr_disc, self.disc) + + gen_parameters = chain(params for k, params in self.named_parameters() if not k.startswith("disc.")) + optimizer1 = get_optimizer( + self.config.optimizer, self.config.optimizer_params, self.config.lr_gen, parameters=gen_parameters + ) + return [optimizer0, optimizer1] + + def get_lr(self) -> List: + """Set the initial learning rates for each optimizer. + + Returns: + List: learning rates for each optimizer. + """ + return [self.config.lr_disc, self.config.lr_gen] + + def get_scheduler(self, optimizer) -> List: + """Set the schedulers for each optimizer. + + Args: + optimizer (List[`torch.optim.Optimizer`]): List of optimizers. + + Returns: + List: Schedulers, one for each optimizer. + """ + scheduler_G = get_scheduler(self.config.lr_scheduler_gen, self.config.lr_scheduler_gen_params, optimizer[0]) + scheduler_D = get_scheduler(self.config.lr_scheduler_disc, self.config.lr_scheduler_disc_params, optimizer[1]) + return [scheduler_D, scheduler_G] + + def get_criterion(self): + """Get criterions for each optimizer. The index in the output list matches the optimizer idx used in + `train_step()`""" + from TTS.tts.layers.losses import ( # pylint: disable=import-outside-toplevel + VitsDiscriminatorLoss, + VitsGeneratorLoss, + ) + + return [VitsDiscriminatorLoss(self.config), VitsGeneratorLoss(self.config)] + + def load_checkpoint( + self, + config, + checkpoint_path, + eval=False, + strict=True, + ): # pylint: disable=unused-argument, redefined-builtin + """Load the model checkpoint and setup for training or inference""" + state = torch.load(checkpoint_path, map_location=torch.device("cpu")) + # compat band-aid for the pre-trained models to not use the encoder baked into the model + # TODO: consider baking the speaker encoder into the model and call it from there. + # as it is probably easier for model distribution. + state["model"] = {k: v for k, v in state["model"].items() if "speaker_encoder" not in k} + + if self.args.encoder_sample_rate is not None and eval: + # audio resampler is not used in inference time + self.audio_resampler = None + + # handle fine-tuning from a checkpoint with additional speakers + if hasattr(self, "emb_g") and state["model"]["emb_g.weight"].shape != self.emb_g.weight.shape: + num_new_speakers = self.emb_g.weight.shape[0] - state["model"]["emb_g.weight"].shape[0] + print(f" > Loading checkpoint with {num_new_speakers} additional speakers.") + emb_g = state["model"]["emb_g.weight"] + new_row = torch.randn(num_new_speakers, emb_g.shape[1]) + emb_g = torch.cat([emb_g, new_row], axis=0) + state["model"]["emb_g.weight"] = emb_g + # load the model weights + self.load_state_dict(state["model"], strict=strict) + + if eval: + self.eval() + assert not self.training + + @staticmethod + def init_from_config(config: "VitsConfig", samples: Union[List[List], List[Dict]] = None, verbose=True): + """Initiate model from config + + Args: + config (VitsConfig): Model config. + samples (Union[List[List], List[Dict]]): Training samples to parse speaker ids for training. + Defaults to None. + """ + from TTS.utils.audio import AudioProcessor + + upsample_rate = torch.prod(torch.as_tensor(config.model_args.upsample_rates_decoder)).item() + + if not config.model_args.encoder_sample_rate: + assert ( + upsample_rate == config.audio.hop_length + ), f" [!] Product of upsample rates must be equal to the hop length - {upsample_rate} vs {config.audio.hop_length}" + else: + encoder_to_vocoder_upsampling_factor = config.audio.sample_rate / config.model_args.encoder_sample_rate + effective_hop_length = config.audio.hop_length * encoder_to_vocoder_upsampling_factor + assert ( + upsample_rate == effective_hop_length + ), f" [!] Product of upsample rates must be equal to the hop length - {upsample_rate} vs {effective_hop_length}" + + ap = AudioProcessor.init_from_config(config, verbose=verbose) + tokenizer, new_config = TTSTokenizer.init_from_config(config) + speaker_manager = SpeakerManager.init_from_config(config, samples) + language_manager = LanguageManager.init_from_config(config) + + if config.model_args.speaker_encoder_model_path: + speaker_manager.init_encoder( + config.model_args.speaker_encoder_model_path, config.model_args.speaker_encoder_config_path + ) + return Vits(new_config, ap, tokenizer, speaker_manager, language_manager) + + +################################## +# VITS CHARACTERS +################################## + + +class VitsCharacters(BaseCharacters): + """Characters class for VITs model for compatibility with pre-trained models""" + + def __init__( + self, + graphemes: str = _characters, + punctuations: str = _punctuations, + pad: str = _pad, + ipa_characters: str = _phonemes, + ) -> None: + if ipa_characters is not None: + graphemes += ipa_characters + super().__init__(graphemes, punctuations, pad, None, None, "", is_unique=False, is_sorted=True) + + def _create_vocab(self): + self._vocab = [self._pad] + list(self._punctuations) + list(self._characters) + [self._blank] + self._char_to_id = {char: idx for idx, char in enumerate(self.vocab)} + # pylint: disable=unnecessary-comprehension + self._id_to_char = {idx: char for idx, char in enumerate(self.vocab)} + + @staticmethod + def init_from_config(config: Coqpit): + if config.characters is not None: + _pad = config.characters["pad"] + _punctuations = config.characters["punctuations"] + _letters = config.characters["characters"] + _letters_ipa = config.characters["phonemes"] + return ( + VitsCharacters(graphemes=_letters, ipa_characters=_letters_ipa, punctuations=_punctuations, pad=_pad), + config, + ) + characters = VitsCharacters() + new_config = replace(config, characters=characters.to_config()) + return characters, new_config + + def to_config(self) -> "CharactersConfig": + return CharactersConfig( + characters=self._characters, + punctuations=self._punctuations, + pad=self._pad, + eos=None, + bos=None, + blank=self._blank, + is_unique=False, + is_sorted=True, + ) diff --git a/Indic-TTS/TTS/TTS/tts/utils/__init__.py b/Indic-TTS/TTS/TTS/tts/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/utils/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a2c10e8e9d9f933a9489740cc7ebf49f02364dd8 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/__pycache__/data.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/data.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b89f7d5effe5121a37be0bebce32d2c306ec9a62 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/data.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/__pycache__/helpers.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/helpers.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ddb3a9bb09540cffdafeeef3162eaeae74ea75a4 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/helpers.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/__pycache__/languages.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/languages.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1e2dabf9120b302c5eaeea1dbadb6f64085452ce Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/languages.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/__pycache__/managers.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/managers.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c2171758a185794e27f53f75f07afb2a34aa4e9c Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/managers.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/__pycache__/speakers.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/speakers.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c2626ce23fe39cabaf6ff2de863366876f7c7354 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/speakers.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/__pycache__/ssim.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/ssim.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d5ccb5f2e708b2633dc00387dd9786f7430b5ab2 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/ssim.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/__pycache__/synthesis.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/synthesis.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9ce8518465852efd6f8ff4768aac4edc4a68f711 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/synthesis.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/__pycache__/visual.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/visual.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8e907b3234230580a50b70f5928ca5e10c6c2af1 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/__pycache__/visual.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/data.py b/Indic-TTS/TTS/TTS/tts/utils/data.py new file mode 100644 index 0000000000000000000000000000000000000000..22e46b683adfc7f6c7c8a57fb5b697e422cd915c --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/data.py @@ -0,0 +1,79 @@ +import bisect + +import numpy as np +import torch + + +def _pad_data(x, length): + _pad = 0 + assert x.ndim == 1 + return np.pad(x, (0, length - x.shape[0]), mode="constant", constant_values=_pad) + + +def prepare_data(inputs): + max_len = max((len(x) for x in inputs)) + return np.stack([_pad_data(x, max_len) for x in inputs]) + + +def _pad_tensor(x, length): + _pad = 0.0 + assert x.ndim == 2 + x = np.pad(x, [[0, 0], [0, length - x.shape[1]]], mode="constant", constant_values=_pad) + return x + + +def prepare_tensor(inputs, out_steps): + max_len = max((x.shape[1] for x in inputs)) + remainder = max_len % out_steps + pad_len = max_len + (out_steps - remainder) if remainder > 0 else max_len + return np.stack([_pad_tensor(x, pad_len) for x in inputs]) + + +def _pad_stop_target(x: np.ndarray, length: int, pad_val=1) -> np.ndarray: + """Pad stop target array. + + Args: + x (np.ndarray): Stop target array. + length (int): Length after padding. + pad_val (int, optional): Padding value. Defaults to 1. + + Returns: + np.ndarray: Padded stop target array. + """ + assert x.ndim == 1 + return np.pad(x, (0, length - x.shape[0]), mode="constant", constant_values=pad_val) + + +def prepare_stop_target(inputs, out_steps): + """Pad row vectors with 1.""" + max_len = max((x.shape[0] for x in inputs)) + remainder = max_len % out_steps + pad_len = max_len + (out_steps - remainder) if remainder > 0 else max_len + return np.stack([_pad_stop_target(x, pad_len) for x in inputs]) + + +def pad_per_step(inputs, pad_len): + return np.pad(inputs, [[0, 0], [0, 0], [0, pad_len]], mode="constant", constant_values=0.0) + + +def get_length_balancer_weights(items: list, num_buckets=10): + # get all durations + audio_lengths = np.array([item["audio_length"] for item in items]) + # create the $num_buckets buckets classes based in the dataset max and min length + max_length = int(max(audio_lengths)) + min_length = int(min(audio_lengths)) + step = int((max_length - min_length) / num_buckets) + 1 + buckets_classes = [i + step for i in range(min_length, (max_length - step) + num_buckets + 1, step)] + # add each sample in their respective length bucket + buckets_names = np.array( + [buckets_classes[bisect.bisect_left(buckets_classes, item["audio_length"])] for item in items] + ) + # count and compute the weights_bucket for each sample + unique_buckets_names = np.unique(buckets_names).tolist() + bucket_ids = [unique_buckets_names.index(l) for l in buckets_names] + bucket_count = np.array([len(np.where(buckets_names == l)[0]) for l in unique_buckets_names]) + weight_bucket = 1.0 / bucket_count + dataset_samples_weight = np.array([weight_bucket[l] for l in bucket_ids]) + # normalize + dataset_samples_weight = dataset_samples_weight / np.linalg.norm(dataset_samples_weight) + return torch.from_numpy(dataset_samples_weight).float() diff --git a/Indic-TTS/TTS/TTS/tts/utils/helpers.py b/Indic-TTS/TTS/TTS/tts/utils/helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..c2e7f56146aa95b52824307189573bb32a17eaac --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/helpers.py @@ -0,0 +1,238 @@ +import numpy as np +import torch +from torch.nn import functional as F + +try: + from TTS.tts.utils.monotonic_align.core import maximum_path_c + + CYTHON = True +except ModuleNotFoundError: + CYTHON = False + + +class StandardScaler: + """StandardScaler for mean-scale normalization with the given mean and scale values.""" + + def __init__(self, mean: np.ndarray = None, scale: np.ndarray = None) -> None: + self.mean_ = mean + self.scale_ = scale + + def set_stats(self, mean, scale): + self.mean_ = mean + self.scale_ = scale + + def reset_stats(self): + delattr(self, "mean_") + delattr(self, "scale_") + + def transform(self, X): + X = np.asarray(X) + X -= self.mean_ + X /= self.scale_ + return X + + def inverse_transform(self, X): + X = np.asarray(X) + X *= self.scale_ + X += self.mean_ + return X + + +# from https://gist.github.com/jihunchoi/f1434a77df9db1bb337417854b398df1 +def sequence_mask(sequence_length, max_len=None): + """Create a sequence mask for filtering padding in a sequence tensor. + + Args: + sequence_length (torch.tensor): Sequence lengths. + max_len (int, Optional): Maximum sequence length. Defaults to None. + + Shapes: + - mask: :math:`[B, T_max]` + """ + if max_len is None: + max_len = sequence_length.data.max() + seq_range = torch.arange(max_len, dtype=sequence_length.dtype, device=sequence_length.device) + # B x T_max + mask = seq_range.unsqueeze(0) < sequence_length.unsqueeze(1) + return mask + + +def segment(x: torch.tensor, segment_indices: torch.tensor, segment_size=4, pad_short=False): + """Segment each sample in a batch based on the provided segment indices + + Args: + x (torch.tensor): Input tensor. + segment_indices (torch.tensor): Segment indices. + segment_size (int): Expected output segment size. + pad_short (bool): Pad the end of input tensor with zeros if shorter than the segment size. + """ + # pad the input tensor if it is shorter than the segment size + if pad_short and x.shape[-1] < segment_size: + x = torch.nn.functional.pad(x, (0, segment_size - x.size(2))) + + segments = torch.zeros_like(x[:, :, :segment_size]) + + for i in range(x.size(0)): + index_start = segment_indices[i] + index_end = index_start + segment_size + x_i = x[i] + if pad_short and index_end > x.size(2): + # pad the sample if it is shorter than the segment size + x_i = torch.nn.functional.pad(x_i, (0, (index_end + 1) - x.size(2))) + segments[i] = x_i[:, index_start:index_end] + return segments + + +def rand_segments( + x: torch.tensor, x_lengths: torch.tensor = None, segment_size=4, let_short_samples=False, pad_short=False +): + """Create random segments based on the input lengths. + + Args: + x (torch.tensor): Input tensor. + x_lengths (torch.tensor): Input lengths. + segment_size (int): Expected output segment size. + let_short_samples (bool): Allow shorter samples than the segment size. + pad_short (bool): Pad the end of input tensor with zeros if shorter than the segment size. + + Shapes: + - x: :math:`[B, C, T]` + - x_lengths: :math:`[B]` + """ + _x_lenghts = x_lengths.clone() + B, _, T = x.size() + if pad_short: + if T < segment_size: + x = torch.nn.functional.pad(x, (0, segment_size - T)) + T = segment_size + if _x_lenghts is None: + _x_lenghts = T + len_diff = _x_lenghts - segment_size + 1 + if let_short_samples: + _x_lenghts[len_diff < 0] = segment_size + len_diff = _x_lenghts - segment_size + 1 + else: + assert all( + len_diff > 0 + ), f" [!] At least one sample is shorter than the segment size ({segment_size}). \n {_x_lenghts}" + segment_indices = (torch.rand([B]).type_as(x) * len_diff).long() + ret = segment(x, segment_indices, segment_size) + return ret, segment_indices + + +def average_over_durations(values, durs): + """Average values over durations. + + Shapes: + - values: :math:`[B, 1, T_de]` + - durs: :math:`[B, T_en]` + - avg: :math:`[B, 1, T_en]` + """ + durs_cums_ends = torch.cumsum(durs, dim=1).long() + durs_cums_starts = torch.nn.functional.pad(durs_cums_ends[:, :-1], (1, 0)) + values_nonzero_cums = torch.nn.functional.pad(torch.cumsum(values != 0.0, dim=2), (1, 0)) + values_cums = torch.nn.functional.pad(torch.cumsum(values, dim=2), (1, 0)) + + bs, l = durs_cums_ends.size() + n_formants = values.size(1) + dcs = durs_cums_starts[:, None, :].expand(bs, n_formants, l) + dce = durs_cums_ends[:, None, :].expand(bs, n_formants, l) + + values_sums = (torch.gather(values_cums, 2, dce) - torch.gather(values_cums, 2, dcs)).float() + values_nelems = (torch.gather(values_nonzero_cums, 2, dce) - torch.gather(values_nonzero_cums, 2, dcs)).float() + + avg = torch.where(values_nelems == 0.0, values_nelems, values_sums / values_nelems) + return avg + + +def convert_pad_shape(pad_shape): + l = pad_shape[::-1] + pad_shape = [item for sublist in l for item in sublist] + return pad_shape + + +def generate_path(duration, mask): + """ + Shapes: + - duration: :math:`[B, T_en]` + - mask: :math:'[B, T_en, T_de]` + - path: :math:`[B, T_en, T_de]` + """ + device = duration.device + b, t_x, t_y = mask.shape + cum_duration = torch.cumsum(duration, 1) + path = torch.zeros(b, t_x, t_y, dtype=mask.dtype).to(device=device) + + cum_duration_flat = cum_duration.view(b * t_x) + path = sequence_mask(cum_duration_flat, t_y).to(mask.dtype) + path = path.view(b, t_x, t_y) + path = path - F.pad(path, convert_pad_shape([[0, 0], [1, 0], [0, 0]]))[:, :-1] + path = path * mask + return path + + +def maximum_path(value, mask): + if CYTHON: + return maximum_path_cython(value, mask) + return maximum_path_numpy(value, mask) + + +def maximum_path_cython(value, mask): + """Cython optimised version. + Shapes: + - value: :math:`[B, T_en, T_de]` + - mask: :math:`[B, T_en, T_de]` + """ + value = value * mask + device = value.device + dtype = value.dtype + value = value.data.cpu().numpy().astype(np.float32) + path = np.zeros_like(value).astype(np.int32) + mask = mask.data.cpu().numpy() + + t_x_max = mask.sum(1)[:, 0].astype(np.int32) + t_y_max = mask.sum(2)[:, 0].astype(np.int32) + maximum_path_c(path, value, t_x_max, t_y_max) + return torch.from_numpy(path).to(device=device, dtype=dtype) + + +def maximum_path_numpy(value, mask, max_neg_val=None): + """ + Monotonic alignment search algorithm + Numpy-friendly version. It's about 4 times faster than torch version. + value: [b, t_x, t_y] + mask: [b, t_x, t_y] + """ + if max_neg_val is None: + max_neg_val = -np.inf # Patch for Sphinx complaint + value = value * mask + + device = value.device + dtype = value.dtype + value = value.cpu().detach().numpy() + mask = mask.cpu().detach().numpy().astype(np.bool) + + b, t_x, t_y = value.shape + direction = np.zeros(value.shape, dtype=np.int64) + v = np.zeros((b, t_x), dtype=np.float32) + x_range = np.arange(t_x, dtype=np.float32).reshape(1, -1) + for j in range(t_y): + v0 = np.pad(v, [[0, 0], [1, 0]], mode="constant", constant_values=max_neg_val)[:, :-1] + v1 = v + max_mask = v1 >= v0 + v_max = np.where(max_mask, v1, v0) + direction[:, :, j] = max_mask + + index_mask = x_range <= j + v = np.where(index_mask, v_max + value[:, :, j], max_neg_val) + direction = np.where(mask, direction, 1) + + path = np.zeros(value.shape, dtype=np.float32) + index = mask[:, :, 0].sum(1).astype(np.int64) - 1 + index_range = np.arange(b) + for j in reversed(range(t_y)): + path[index_range, index, j] = 1 + index = index + direction[index_range, index, j] - 1 + path = path * mask.astype(np.float32) + path = torch.from_numpy(path).to(device=device, dtype=dtype) + return path diff --git a/Indic-TTS/TTS/TTS/tts/utils/languages.py b/Indic-TTS/TTS/TTS/tts/utils/languages.py new file mode 100644 index 0000000000000000000000000000000000000000..9b5e2007a1b2ee012028f0c094640ec4a114b6b0 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/languages.py @@ -0,0 +1,125 @@ +import os +from typing import Any, Dict, List + +import fsspec +import numpy as np +import torch +from coqpit import Coqpit + +from TTS.config import check_config_and_model_args +from TTS.tts.utils.managers import BaseIDManager + + +class LanguageManager(BaseIDManager): + """Manage the languages for multi-lingual ๐ŸธTTS models. Load a datafile and parse the information + in a way that can be queried by language. + + Args: + language_ids_file_path (str, optional): Path to the metafile that maps language names to ids used by + TTS models. Defaults to "". + config (Coqpit, optional): Coqpit config that contains the language information in the datasets filed. + Defaults to None. + + Examples: + >>> manager = LanguageManager(language_ids_file_path=language_ids_file_path) + >>> language_id_mapper = manager.language_ids + """ + + def __init__( + self, + language_ids_file_path: str = "", + config: Coqpit = None, + ): + super().__init__(id_file_path=language_ids_file_path) + + if config: + self.set_language_ids_from_config(config) + + @property + def num_languages(self) -> int: + return len(list(self.ids.keys())) + + @property + def language_names(self) -> List: + return list(self.ids.keys()) + + @staticmethod + def parse_language_ids_from_config(c: Coqpit) -> Dict: + """Set language id from config. + + Args: + c (Coqpit): Config + + Returns: + Tuple[Dict, int]: Language ID mapping and the number of languages. + """ + languages = set({}) + for dataset in c.datasets: + if "language" in dataset: + languages.add(dataset["language"]) + else: + raise ValueError(f"Dataset {dataset['name']} has no language specified.") + return {name: i for i, name in enumerate(sorted(list(languages)))} + + def set_language_ids_from_config(self, c: Coqpit) -> None: + """Set language IDs from config samples. + + Args: + c (Coqpit): Config. + """ + self.ids = self.parse_language_ids_from_config(c) + + @staticmethod + def parse_ids_from_data(items: List, parse_key: str) -> Any: + raise NotImplementedError + + def set_ids_from_data(self, items: List, parse_key: str) -> Any: + raise NotImplementedError + + def save_ids_to_file(self, file_path: str) -> None: + """Save language IDs to a json file. + + Args: + file_path (str): Path to the output file. + """ + self._save_json(file_path, self.ids) + + @staticmethod + def init_from_config(config: Coqpit) -> "LanguageManager": + """Initialize the language manager from a Coqpit config. + + Args: + config (Coqpit): Coqpit config. + """ + language_manager = None + if check_config_and_model_args(config, "use_language_embedding", True): + if config.get("language_ids_file", None): + language_manager = LanguageManager(language_ids_file_path=config.language_ids_file) + language_manager = LanguageManager(config=config) + return language_manager + + +def _set_file_path(path): + """Find the language_ids.json under the given path or the above it. + Intended to band aid the different paths returned in restored and continued training.""" + path_restore = os.path.join(os.path.dirname(path), "language_ids.json") + path_continue = os.path.join(path, "language_ids.json") + fs = fsspec.get_mapper(path).fs + if fs.exists(path_restore): + return path_restore + if fs.exists(path_continue): + return path_continue + return None + + +def get_language_balancer_weights(items: list): + language_names = np.array([item["language"] for item in items]) + unique_language_names = np.unique(language_names).tolist() + language_ids = [unique_language_names.index(l) for l in language_names] + language_count = np.array([len(np.where(language_names == l)[0]) for l in unique_language_names]) + weight_language = 1.0 / language_count + # get weight for each sample + dataset_samples_weight = np.array([weight_language[l] for l in language_ids]) + # normalize + dataset_samples_weight = dataset_samples_weight / np.linalg.norm(dataset_samples_weight) + return torch.from_numpy(dataset_samples_weight).float() diff --git a/Indic-TTS/TTS/TTS/tts/utils/managers.py b/Indic-TTS/TTS/TTS/tts/utils/managers.py new file mode 100644 index 0000000000000000000000000000000000000000..0243d3b4bc0df6ebc78f4799b37f5718e7712a18 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/managers.py @@ -0,0 +1,309 @@ +import json +import random +from typing import Any, Dict, List, Tuple, Union + +import fsspec +import numpy as np +import torch + +from TTS.config import load_config +from TTS.encoder.utils.generic_utils import setup_encoder_model +from TTS.utils.audio import AudioProcessor + + +def load_file(path: str): + if path.endswith(".json"): + with fsspec.open(path, "r") as f: + return json.load(f) + elif path.endswith(".pth"): + with fsspec.open(path, "rb") as f: + return torch.load(f, map_location="cpu") + else: + raise ValueError("Unsupported file type") + + +def save_file(obj: Any, path: str): + if path.endswith(".json"): + with fsspec.open(path, "w") as f: + json.dump(obj, f, indent=4) + elif path.endswith(".pth"): + with fsspec.open(path, "wb") as f: + torch.save(obj, f) + else: + raise ValueError("Unsupported file type") + + +class BaseIDManager: + """Base `ID` Manager class. Every new `ID` manager must inherit this. + It defines common `ID` manager specific functions. + """ + + def __init__(self, id_file_path: str = ""): + self.ids = {} + + if id_file_path: + self.load_ids_from_file(id_file_path) + + @staticmethod + def _load_json(json_file_path: str) -> Dict: + with fsspec.open(json_file_path, "r") as f: + return json.load(f) + + @staticmethod + def _save_json(json_file_path: str, data: dict) -> None: + with fsspec.open(json_file_path, "w") as f: + json.dump(data, f, indent=4) + + def set_ids_from_data(self, items: List, parse_key: str) -> None: + """Set IDs from data samples. + + Args: + items (List): Data sampled returned by `load_tts_samples()`. + """ + self.ids = self.parse_ids_from_data(items, parse_key=parse_key) + + def load_ids_from_file(self, file_path: str) -> None: + """Set IDs from a file. + + Args: + file_path (str): Path to the file. + """ + self.ids = load_file(file_path) + + def save_ids_to_file(self, file_path: str) -> None: + """Save IDs to a json file. + + Args: + file_path (str): Path to the output file. + """ + save_file(self.ids, file_path) + + def get_random_id(self) -> Any: + """Get a random embedding. + + Args: + + Returns: + np.ndarray: embedding. + """ + if self.ids: + return self.ids[random.choices(list(self.ids.keys()))[0]] + + return None + + @staticmethod + def parse_ids_from_data(items: List, parse_key: str) -> Tuple[Dict]: + """Parse IDs from data samples retured by `load_tts_samples()`. + + Args: + items (list): Data sampled returned by `load_tts_samples()`. + parse_key (str): The key to being used to parse the data. + Returns: + Tuple[Dict]: speaker IDs. + """ + classes = sorted({item[parse_key] for item in items}) + ids = {name: i for i, name in enumerate(classes)} + return ids + + +class EmbeddingManager(BaseIDManager): + """Base `Embedding` Manager class. Every new `Embedding` manager must inherit this. + It defines common `Embedding` manager specific functions. + """ + + def __init__( + self, + embedding_file_path: str = "", + id_file_path: str = "", + encoder_model_path: str = "", + encoder_config_path: str = "", + use_cuda: bool = False, + ): + super().__init__(id_file_path=id_file_path) + + self.embeddings = {} + self.embeddings_by_names = {} + self.clip_ids = [] + self.encoder = None + self.encoder_ap = None + self.use_cuda = use_cuda + + if embedding_file_path: + self.load_embeddings_from_file(embedding_file_path) + + if encoder_model_path and encoder_config_path: + self.init_encoder(encoder_model_path, encoder_config_path, use_cuda) + + @property + def embedding_dim(self): + """Dimensionality of embeddings. If embeddings are not loaded, returns zero.""" + if self.embeddings: + return len(self.embeddings[list(self.embeddings.keys())[0]]["embedding"]) + return 0 + + def save_embeddings_to_file(self, file_path: str) -> None: + """Save embeddings to a json file. + + Args: + file_path (str): Path to the output file. + """ + save_file(self.embeddings, file_path) + + def load_embeddings_from_file(self, file_path: str) -> None: + """Load embeddings from a json file. + + Args: + file_path (str): Path to the target json file. + """ + self.embeddings = load_file(file_path) + + speakers = sorted({x["name"] for x in self.embeddings.values()}) + self.ids = {name: i for i, name in enumerate(speakers)} + + self.clip_ids = list(set(sorted(clip_name for clip_name in self.embeddings.keys()))) + # cache embeddings_by_names for fast inference using a bigger speakers.json + self.embeddings_by_names = self.get_embeddings_by_names() + + def get_embedding_by_clip(self, clip_idx: str) -> List: + """Get embedding by clip ID. + + Args: + clip_idx (str): Target clip ID. + + Returns: + List: embedding as a list. + """ + return self.embeddings[clip_idx]["embedding"] + + def get_embeddings_by_name(self, idx: str) -> List[List]: + """Get all embeddings of a speaker. + + Args: + idx (str): Target name. + + Returns: + List[List]: all the embeddings of the given speaker. + """ + return self.embeddings_by_names[idx] + + def get_embeddings_by_names(self) -> Dict: + """Get all embeddings by names. + + Returns: + Dict: all the embeddings of each speaker. + """ + embeddings_by_names = {} + for x in self.embeddings.values(): + if x["name"] not in embeddings_by_names.keys(): + embeddings_by_names[x["name"]] = [x["embedding"]] + else: + embeddings_by_names[x["name"]].append(x["embedding"]) + return embeddings_by_names + + def get_mean_embedding(self, idx: str, num_samples: int = None, randomize: bool = False) -> np.ndarray: + """Get mean embedding of a idx. + + Args: + idx (str): Target name. + num_samples (int, optional): Number of samples to be averaged. Defaults to None. + randomize (bool, optional): Pick random `num_samples` of embeddings. Defaults to False. + + Returns: + np.ndarray: Mean embedding. + """ + embeddings = self.get_embeddings_by_name(idx) + if num_samples is None: + embeddings = np.stack(embeddings).mean(0) + else: + assert len(embeddings) >= num_samples, f" [!] {idx} has number of samples < {num_samples}" + if randomize: + embeddings = np.stack(random.choices(embeddings, k=num_samples)).mean(0) + else: + embeddings = np.stack(embeddings[:num_samples]).mean(0) + return embeddings + + def get_random_embedding(self) -> Any: + """Get a random embedding. + + Args: + + Returns: + np.ndarray: embedding. + """ + if self.embeddings: + return self.embeddings[random.choices(list(self.embeddings.keys()))[0]]["embedding"] + + return None + + def get_clips(self) -> List: + return sorted(self.embeddings.keys()) + + def init_encoder(self, model_path: str, config_path: str, use_cuda=False) -> None: + """Initialize a speaker encoder model. + + Args: + model_path (str): Model file path. + config_path (str): Model config file path. + use_cuda (bool, optional): Use CUDA. Defaults to False. + """ + self.use_cuda = use_cuda + self.encoder_config = load_config(config_path) + self.encoder = setup_encoder_model(self.encoder_config) + self.encoder_criterion = self.encoder.load_checkpoint( + self.encoder_config, model_path, eval=True, use_cuda=use_cuda + ) + self.encoder_ap = AudioProcessor(**self.encoder_config.audio) + + def compute_embedding_from_clip(self, wav_file: Union[str, List[str]]) -> list: + """Compute a embedding from a given audio file. + + Args: + wav_file (Union[str, List[str]]): Target file path. + + Returns: + list: Computed embedding. + """ + + def _compute(wav_file: str): + waveform = self.encoder_ap.load_wav(wav_file, sr=self.encoder_ap.sample_rate) + if not self.encoder_config.model_params.get("use_torch_spec", False): + m_input = self.encoder_ap.melspectrogram(waveform) + m_input = torch.from_numpy(m_input) + else: + m_input = torch.from_numpy(waveform) + + if self.use_cuda: + m_input = m_input.cuda() + m_input = m_input.unsqueeze(0) + embedding = self.encoder.compute_embedding(m_input) + return embedding + + if isinstance(wav_file, list): + # compute the mean embedding + embeddings = None + for wf in wav_file: + embedding = _compute(wf) + if embeddings is None: + embeddings = embedding + else: + embeddings += embedding + return (embeddings / len(wav_file))[0].tolist() + embedding = _compute(wav_file) + return embedding[0].tolist() + + def compute_embeddings(self, feats: Union[torch.Tensor, np.ndarray]) -> List: + """Compute embedding from features. + + Args: + feats (Union[torch.Tensor, np.ndarray]): Input features. + + Returns: + List: computed embedding. + """ + if isinstance(feats, np.ndarray): + feats = torch.from_numpy(feats) + if feats.ndim == 2: + feats = feats.unsqueeze(0) + if self.use_cuda: + feats = feats.cuda() + return self.encoder.compute_embedding(feats) diff --git a/Indic-TTS/TTS/TTS/tts/utils/measures.py b/Indic-TTS/TTS/TTS/tts/utils/measures.py new file mode 100644 index 0000000000000000000000000000000000000000..90e862e1190bdb8443933580b3ff47321f70cecd --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/measures.py @@ -0,0 +1,15 @@ +def alignment_diagonal_score(alignments, binary=False): + """ + Compute how diagonal alignment predictions are. It is useful + to measure the alignment consistency of a model + Args: + alignments (torch.Tensor): batch of alignments. + binary (bool): if True, ignore scores and consider attention + as a binary mask. + Shape: + - alignments : :math:`[B, T_de, T_en]` + """ + maxs = alignments.max(dim=1)[0] + if binary: + maxs[maxs > 0] = 1 + return maxs.mean(dim=1).mean(dim=0).item() diff --git a/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/__init__.py b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3eb607a6325fbdc4b1d07a95b0519146ddcd44ad Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/core.c b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/core.c new file mode 100644 index 0000000000000000000000000000000000000000..3c35a07bc372ace8b5a6f2c88d8b15bd285eff72 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/core.c @@ -0,0 +1,23398 @@ +/* Generated by Cython 0.29.28 */ + +/* BEGIN: Cython Metadata +{ + "distutils": { + "depends": [], + "name": "TTS.tts.utils.monotonic_align.core", + "sources": [ + "TTS/tts/utils/monotonic_align/core.pyx" + ] + }, + "module_name": "TTS.tts.utils.monotonic_align.core" +} +END: Cython Metadata */ + +#ifndef PY_SSIZE_T_CLEAN +#define PY_SSIZE_T_CLEAN +#endif /* PY_SSIZE_T_CLEAN */ +#include "Python.h" +#ifndef Py_PYTHON_H + #error Python headers needed to compile C extensions, please install development version of Python. +#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) + #error Cython requires Python 2.6+ or Python 3.3+. +#else +#define CYTHON_ABI "0_29_28" +#define CYTHON_HEX_VERSION 0x001D1CF0 +#define CYTHON_FUTURE_DIVISION 1 +#include +#ifndef offsetof + #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) +#endif +#if !defined(WIN32) && !defined(MS_WINDOWS) + #ifndef __stdcall + #define __stdcall + #endif + #ifndef __cdecl + #define __cdecl + #endif + #ifndef __fastcall + #define __fastcall + #endif +#endif +#ifndef DL_IMPORT + #define DL_IMPORT(t) t +#endif +#ifndef DL_EXPORT + #define DL_EXPORT(t) t +#endif +#define __PYX_COMMA , +#ifndef HAVE_LONG_LONG + #if PY_VERSION_HEX >= 0x02070000 + #define HAVE_LONG_LONG + #endif +#endif +#ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG +#endif +#ifndef Py_HUGE_VAL + #define Py_HUGE_VAL HUGE_VAL +#endif +#ifdef PYPY_VERSION + #define CYTHON_COMPILING_IN_PYPY 1 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #undef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 0 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #if PY_VERSION_HEX < 0x03050000 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #undef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #undef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 1 + #undef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 0 + #undef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 0 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#elif defined(PYSTON_VERSION) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 1 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#else + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) + #define CYTHON_USE_PYTYPE_LOOKUP 1 + #endif + #if PY_MAJOR_VERSION < 3 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #elif !defined(CYTHON_USE_PYLONG_INTERNALS) + #define CYTHON_USE_PYLONG_INTERNALS 1 + #endif + #ifndef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 1 + #endif + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #elif !defined(CYTHON_USE_UNICODE_WRITER) + #define CYTHON_USE_UNICODE_WRITER 1 + #endif + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #elif !defined(CYTHON_FAST_THREAD_STATE) + #define CYTHON_FAST_THREAD_STATE 1 + #endif + #ifndef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1) + #endif + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) + #endif + #ifndef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) + #endif + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #elif !defined(CYTHON_USE_EXC_INFO_STACK) + #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) + #endif +#endif +#if !defined(CYTHON_FAST_PYCCALL) +#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) +#endif +#if CYTHON_USE_PYLONG_INTERNALS + #if PY_MAJOR_VERSION < 3 + #include "longintrepr.h" + #endif + #undef SHIFT + #undef BASE + #undef MASK + #ifdef SIZEOF_VOID_P + enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; + #endif +#endif +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif +#ifndef __has_cpp_attribute + #define __has_cpp_attribute(x) 0 +#endif +#ifndef CYTHON_RESTRICT + #if defined(__GNUC__) + #define CYTHON_RESTRICT __restrict__ + #elif defined(_MSC_VER) && _MSC_VER >= 1400 + #define CYTHON_RESTRICT __restrict + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_RESTRICT restrict + #else + #define CYTHON_RESTRICT + #endif +#endif +#ifndef CYTHON_UNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +#endif +#ifndef CYTHON_MAYBE_UNUSED_VAR +# if defined(__cplusplus) + template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } +# else +# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) +# endif +#endif +#ifndef CYTHON_NCP_UNUSED +# if CYTHON_COMPILING_IN_CPYTHON +# define CYTHON_NCP_UNUSED +# else +# define CYTHON_NCP_UNUSED CYTHON_UNUSED +# endif +#endif +#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) +#ifdef _MSC_VER + #ifndef _MSC_STDINT_H_ + #if _MSC_VER < 1300 + typedef unsigned char uint8_t; + typedef unsigned int uint32_t; + #else + typedef unsigned __int8 uint8_t; + typedef unsigned __int32 uint32_t; + #endif + #endif +#else + #include +#endif +#ifndef CYTHON_FALLTHROUGH + #if defined(__cplusplus) && __cplusplus >= 201103L + #if __has_cpp_attribute(fallthrough) + #define CYTHON_FALLTHROUGH [[fallthrough]] + #elif __has_cpp_attribute(clang::fallthrough) + #define CYTHON_FALLTHROUGH [[clang::fallthrough]] + #elif __has_cpp_attribute(gnu::fallthrough) + #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] + #endif + #endif + #ifndef CYTHON_FALLTHROUGH + #if __has_attribute(fallthrough) + #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) + #else + #define CYTHON_FALLTHROUGH + #endif + #endif + #if defined(__clang__ ) && defined(__apple_build_version__) + #if __apple_build_version__ < 7000000 + #undef CYTHON_FALLTHROUGH + #define CYTHON_FALLTHROUGH + #endif + #endif +#endif + +#ifndef CYTHON_INLINE + #if defined(__clang__) + #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) + #elif defined(__GNUC__) + #define CYTHON_INLINE __inline__ + #elif defined(_MSC_VER) + #define CYTHON_INLINE __inline + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_INLINE inline + #else + #define CYTHON_INLINE + #endif +#endif + +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) + #define Py_OptimizeFlag 0 +#endif +#define __PYX_BUILD_PY_SSIZE_T "n" +#define CYTHON_FORMAT_SSIZE_T "z" +#if PY_MAJOR_VERSION < 3 + #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyClass_Type +#else + #define __Pyx_BUILTIN_MODULE_NAME "builtins" + #define __Pyx_DefaultClassType PyType_Type +#if PY_VERSION_HEX >= 0x030B00A1 + static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f, + PyObject *code, PyObject *c, PyObject* n, PyObject *v, + PyObject *fv, PyObject *cell, PyObject* fn, + PyObject *name, int fline, PyObject *lnos) { + PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL; + PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL; + const char *fn_cstr=NULL; + const char *name_cstr=NULL; + PyCodeObject* co=NULL; + PyObject *type, *value, *traceback; + PyErr_Fetch(&type, &value, &traceback); + if (!(kwds=PyDict_New())) goto end; + if (!(argcount=PyLong_FromLong(a))) goto end; + if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end; + if (!(posonlyargcount=PyLong_FromLong(0))) goto end; + if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end; + if (!(kwonlyargcount=PyLong_FromLong(k))) goto end; + if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end; + if (!(nlocals=PyLong_FromLong(l))) goto end; + if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end; + if (!(stacksize=PyLong_FromLong(s))) goto end; + if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end; + if (!(flags=PyLong_FromLong(f))) goto end; + if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end; + if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end; + if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end; + if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end; + if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too; + if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here + if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too; + Py_XDECREF((PyObject*)co); + co = (PyCodeObject*)call_result; + call_result = NULL; + if (0) { + cleanup_code_too: + Py_XDECREF((PyObject*)co); + co = NULL; + } + end: + Py_XDECREF(kwds); + Py_XDECREF(argcount); + Py_XDECREF(posonlyargcount); + Py_XDECREF(kwonlyargcount); + Py_XDECREF(nlocals); + Py_XDECREF(stacksize); + Py_XDECREF(replace); + Py_XDECREF(call_result); + Py_XDECREF(empty); + if (type) { + PyErr_Restore(type, value, traceback); + } + return co; + } +#else + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#endif + #define __Pyx_DefaultClassType PyType_Type +#endif +#ifndef Py_TPFLAGS_CHECKTYPES + #define Py_TPFLAGS_CHECKTYPES 0 +#endif +#ifndef Py_TPFLAGS_HAVE_INDEX + #define Py_TPFLAGS_HAVE_INDEX 0 +#endif +#ifndef Py_TPFLAGS_HAVE_NEWBUFFER + #define Py_TPFLAGS_HAVE_NEWBUFFER 0 +#endif +#ifndef Py_TPFLAGS_HAVE_FINALIZE + #define Py_TPFLAGS_HAVE_FINALIZE 0 +#endif +#ifndef METH_STACKLESS + #define METH_STACKLESS 0 +#endif +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) + #ifndef METH_FASTCALL + #define METH_FASTCALL 0x80 + #endif + typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); + typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, + Py_ssize_t nargs, PyObject *kwnames); +#else + #define __Pyx_PyCFunctionFast _PyCFunctionFast + #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords +#endif +#if CYTHON_FAST_PYCCALL +#define __Pyx_PyFastCFunction_Check(func)\ + ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) +#else +#define __Pyx_PyFastCFunction_Check(func) 0 +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) + #define PyObject_Malloc(s) PyMem_Malloc(s) + #define PyObject_Free(p) PyMem_Free(p) + #define PyObject_Realloc(p) PyMem_Realloc(p) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 + #define PyMem_RawMalloc(n) PyMem_Malloc(n) + #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) + #define PyMem_RawFree(p) PyMem_Free(p) +#endif +#if CYTHON_COMPILING_IN_PYSTON + #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) +#else + #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) +#endif +#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#elif PY_VERSION_HEX >= 0x03060000 + #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() +#elif PY_VERSION_HEX >= 0x03000000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#else + #define __Pyx_PyThreadState_Current _PyThreadState_Current +#endif +#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) +#include "pythread.h" +#define Py_tss_NEEDS_INIT 0 +typedef int Py_tss_t; +static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { + *key = PyThread_create_key(); + return 0; +} +static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { + Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); + *key = Py_tss_NEEDS_INIT; + return key; +} +static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { + PyObject_Free(key); +} +static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { + return *key != Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { + PyThread_delete_key(*key); + *key = Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { + return PyThread_set_key_value(*key, value); +} +static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { + return PyThread_get_key_value(*key); +} +#endif +#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) +#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) +#else +#define __Pyx_PyDict_NewPresized(n) PyDict_New() +#endif +#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION + #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) +#else + #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS +#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) +#else +#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) +#endif +#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) + #define CYTHON_PEP393_ENABLED 1 + #if defined(PyUnicode_IS_READY) + #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ + 0 : _PyUnicode_Ready((PyObject *)(op))) + #else + #define __Pyx_PyUnicode_READY(op) (0) + #endif + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) + #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) + #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) + #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) + #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) + #else + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) + #endif + #else + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) + #endif +#else + #define CYTHON_PEP393_ENABLED 0 + #define PyUnicode_1BYTE_KIND 1 + #define PyUnicode_2BYTE_KIND 2 + #define PyUnicode_4BYTE_KIND 4 + #define __Pyx_PyUnicode_READY(op) (0) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) + #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) + #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) + #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) +#endif +#if CYTHON_COMPILING_IN_PYPY + #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) +#else + #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ + PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) + #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) + #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) + #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) +#endif +#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) +#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) +#else + #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) +#endif +#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) + #define PyObject_ASCII(o) PyObject_Repr(o) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBaseString_Type PyUnicode_Type + #define PyStringObject PyUnicodeObject + #define PyString_Type PyUnicode_Type + #define PyString_Check PyUnicode_Check + #define PyString_CheckExact PyUnicode_CheckExact +#ifndef PyObject_Unicode + #define PyObject_Unicode PyObject_Str +#endif +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) + #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) +#else + #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) + #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) +#endif +#ifndef PySet_CheckExact + #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) +#endif +#if PY_VERSION_HEX >= 0x030900A4 + #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) + #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) +#else + #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) + #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) +#endif +#if CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) +#else + #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyIntObject PyLongObject + #define PyInt_Type PyLong_Type + #define PyInt_Check(op) PyLong_Check(op) + #define PyInt_CheckExact(op) PyLong_CheckExact(op) + #define PyInt_FromString PyLong_FromString + #define PyInt_FromUnicode PyLong_FromUnicode + #define PyInt_FromLong PyLong_FromLong + #define PyInt_FromSize_t PyLong_FromSize_t + #define PyInt_FromSsize_t PyLong_FromSsize_t + #define PyInt_AsLong PyLong_AsLong + #define PyInt_AS_LONG PyLong_AS_LONG + #define PyInt_AsSsize_t PyLong_AsSsize_t + #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask + #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask + #define PyNumber_Int PyNumber_Long +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBoolObject PyLongObject +#endif +#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY + #ifndef PyUnicode_InternFromString + #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) + #endif +#endif +#if PY_VERSION_HEX < 0x030200A4 + typedef long Py_hash_t; + #define __Pyx_PyInt_FromHash_t PyInt_FromLong + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t +#else + #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) +#else + #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) +#endif +#if CYTHON_USE_ASYNC_SLOTS + #if PY_VERSION_HEX >= 0x030500B1 + #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods + #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) + #else + #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) + #endif +#else + #define __Pyx_PyType_AsAsync(obj) NULL +#endif +#ifndef __Pyx_PyAsyncMethodsStruct + typedef struct { + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; + } __Pyx_PyAsyncMethodsStruct; +#endif + +#if defined(WIN32) || defined(MS_WINDOWS) + #define _USE_MATH_DEFINES +#endif +#include +#ifdef NAN +#define __PYX_NAN() ((float) NAN) +#else +static CYTHON_INLINE float __PYX_NAN() { + float value; + memset(&value, 0xFF, sizeof(value)); + return value; +} +#endif +#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) +#define __Pyx_truncl trunc +#else +#define __Pyx_truncl truncl +#endif + +#define __PYX_MARK_ERR_POS(f_index, lineno) \ + { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } +#define __PYX_ERR(f_index, lineno, Ln_error) \ + { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } + +#ifndef __PYX_EXTERN_C + #ifdef __cplusplus + #define __PYX_EXTERN_C extern "C" + #else + #define __PYX_EXTERN_C extern + #endif +#endif + +#define __PYX_HAVE__TTS__tts__utils__monotonic_align__core +#define __PYX_HAVE_API__TTS__tts__utils__monotonic_align__core +/* Early includes */ +#include +#include +#include "numpy/arrayobject.h" +#include "numpy/ndarrayobject.h" +#include "numpy/ndarraytypes.h" +#include "numpy/arrayscalars.h" +#include "numpy/ufuncobject.h" + + /* NumPy API declarations from "numpy/__init__.pxd" */ + +#include "pythread.h" +#include +#include "pystate.h" +#ifdef _OPENMP +#include +#endif /* _OPENMP */ + +#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) +#define CYTHON_WITHOUT_ASSERTIONS +#endif + +typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; + const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; + +#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) +#define __PYX_DEFAULT_STRING_ENCODING "" +#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString +#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#define __Pyx_uchar_cast(c) ((unsigned char)c) +#define __Pyx_long_cast(x) ((long)x) +#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ + (sizeof(type) < sizeof(Py_ssize_t)) ||\ + (sizeof(type) > sizeof(Py_ssize_t) &&\ + likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX) &&\ + (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ + v == (type)PY_SSIZE_T_MIN))) ||\ + (sizeof(type) == sizeof(Py_ssize_t) &&\ + (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX))) ) +static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { + return (size_t) i < (size_t) limit; +} +#if defined (__cplusplus) && __cplusplus >= 201103L + #include + #define __Pyx_sst_abs(value) std::abs(value) +#elif SIZEOF_INT >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) abs(value) +#elif SIZEOF_LONG >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) labs(value) +#elif defined (_MSC_VER) + #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) +#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define __Pyx_sst_abs(value) llabs(value) +#elif defined (__GNUC__) + #define __Pyx_sst_abs(value) __builtin_llabs(value) +#else + #define __Pyx_sst_abs(value) ((value<0) ? -value : value) +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); +#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) +#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) +#define __Pyx_PyBytes_FromString PyBytes_FromString +#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); +#if PY_MAJOR_VERSION < 3 + #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#else + #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize +#endif +#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) +#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) +#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) +#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) +#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) +static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { + const Py_UNICODE *u_end = u; + while (*u_end++) ; + return (size_t)(u_end - u - 1); +} +#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) +#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode +#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode +#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) +#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); +#define __Pyx_PySequence_Tuple(obj)\ + (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); +#if CYTHON_ASSUME_SAFE_MACROS +#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) +#else +#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) +#endif +#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) +#else +#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) +#endif +#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII +static int __Pyx_sys_getdefaultencoding_not_ascii; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + PyObject* ascii_chars_u = NULL; + PyObject* ascii_chars_b = NULL; + const char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + if (strcmp(default_encoding_c, "ascii") == 0) { + __Pyx_sys_getdefaultencoding_not_ascii = 0; + } else { + char ascii_chars[128]; + int c; + for (c = 0; c < 128; c++) { + ascii_chars[c] = c; + } + __Pyx_sys_getdefaultencoding_not_ascii = 1; + ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); + if (!ascii_chars_u) goto bad; + ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); + if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { + PyErr_Format( + PyExc_ValueError, + "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", + default_encoding_c); + goto bad; + } + Py_DECREF(ascii_chars_u); + Py_DECREF(ascii_chars_b); + } + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + Py_XDECREF(ascii_chars_u); + Py_XDECREF(ascii_chars_b); + return -1; +} +#endif +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) +#else +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +static char* __PYX_DEFAULT_STRING_ENCODING; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); + if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; + strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + return -1; +} +#endif +#endif + + +/* Test for GCC > 2.95 */ +#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) + #define likely(x) __builtin_expect(!!(x), 1) + #define unlikely(x) __builtin_expect(!!(x), 0) +#else /* !__GNUC__ or GCC < 2.95 */ + #define likely(x) (x) + #define unlikely(x) (x) +#endif /* __GNUC__ */ +static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } + +static PyObject *__pyx_m = NULL; +static PyObject *__pyx_d; +static PyObject *__pyx_b; +static PyObject *__pyx_cython_runtime = NULL; +static PyObject *__pyx_empty_tuple; +static PyObject *__pyx_empty_bytes; +static PyObject *__pyx_empty_unicode; +static int __pyx_lineno; +static int __pyx_clineno = 0; +static const char * __pyx_cfilenm= __FILE__; +static const char *__pyx_filename; + +/* Header.proto */ +#if !defined(CYTHON_CCOMPLEX) + #if defined(__cplusplus) + #define CYTHON_CCOMPLEX 1 + #elif defined(_Complex_I) + #define CYTHON_CCOMPLEX 1 + #else + #define CYTHON_CCOMPLEX 0 + #endif +#endif +#if CYTHON_CCOMPLEX + #ifdef __cplusplus + #include + #else + #include + #endif +#endif +#if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__) + #undef _Complex_I + #define _Complex_I 1.0fj +#endif + + +static const char *__pyx_f[] = { + "TTS/tts/utils/monotonic_align/core.pyx", + "__init__.pxd", + "stringsource", + "type.pxd", +}; +/* NoFastGil.proto */ +#define __Pyx_PyGILState_Ensure PyGILState_Ensure +#define __Pyx_PyGILState_Release PyGILState_Release +#define __Pyx_FastGIL_Remember() +#define __Pyx_FastGIL_Forget() +#define __Pyx_FastGilFuncInit() + +/* MemviewSliceStruct.proto */ +struct __pyx_memoryview_obj; +typedef struct { + struct __pyx_memoryview_obj *memview; + char *data; + Py_ssize_t shape[8]; + Py_ssize_t strides[8]; + Py_ssize_t suboffsets[8]; +} __Pyx_memviewslice; +#define __Pyx_MemoryView_Len(m) (m.shape[0]) + +/* Atomics.proto */ +#include +#ifndef CYTHON_ATOMICS + #define CYTHON_ATOMICS 1 +#endif +#define __pyx_atomic_int_type int +#if CYTHON_ATOMICS && __GNUC__ >= 4 && (__GNUC_MINOR__ > 1 ||\ + (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL >= 2)) &&\ + !defined(__i386__) + #define __pyx_atomic_incr_aligned(value, lock) __sync_fetch_and_add(value, 1) + #define __pyx_atomic_decr_aligned(value, lock) __sync_fetch_and_sub(value, 1) + #ifdef __PYX_DEBUG_ATOMICS + #warning "Using GNU atomics" + #endif +#elif CYTHON_ATOMICS && defined(_MSC_VER) && 0 + #include + #undef __pyx_atomic_int_type + #define __pyx_atomic_int_type LONG + #define __pyx_atomic_incr_aligned(value, lock) InterlockedIncrement(value) + #define __pyx_atomic_decr_aligned(value, lock) InterlockedDecrement(value) + #ifdef __PYX_DEBUG_ATOMICS + #pragma message ("Using MSVC atomics") + #endif +#elif CYTHON_ATOMICS && (defined(__ICC) || defined(__INTEL_COMPILER)) && 0 + #define __pyx_atomic_incr_aligned(value, lock) _InterlockedIncrement(value) + #define __pyx_atomic_decr_aligned(value, lock) _InterlockedDecrement(value) + #ifdef __PYX_DEBUG_ATOMICS + #warning "Using Intel atomics" + #endif +#else + #undef CYTHON_ATOMICS + #define CYTHON_ATOMICS 0 + #ifdef __PYX_DEBUG_ATOMICS + #warning "Not using atomics" + #endif +#endif +typedef volatile __pyx_atomic_int_type __pyx_atomic_int; +#if CYTHON_ATOMICS + #define __pyx_add_acquisition_count(memview)\ + __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) + #define __pyx_sub_acquisition_count(memview)\ + __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) +#else + #define __pyx_add_acquisition_count(memview)\ + __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) + #define __pyx_sub_acquisition_count(memview)\ + __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) +#endif + +/* ForceInitThreads.proto */ +#ifndef __PYX_FORCE_INIT_THREADS + #define __PYX_FORCE_INIT_THREADS 0 +#endif + +/* BufferFormatStructs.proto */ +#define IS_UNSIGNED(type) (((type) -1) > 0) +struct __Pyx_StructField_; +#define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) +typedef struct { + const char* name; + struct __Pyx_StructField_* fields; + size_t size; + size_t arraysize[8]; + int ndim; + char typegroup; + char is_unsigned; + int flags; +} __Pyx_TypeInfo; +typedef struct __Pyx_StructField_ { + __Pyx_TypeInfo* type; + const char* name; + size_t offset; +} __Pyx_StructField; +typedef struct { + __Pyx_StructField* field; + size_t parent_offset; +} __Pyx_BufFmt_StackElem; +typedef struct { + __Pyx_StructField root; + __Pyx_BufFmt_StackElem* head; + size_t fmt_offset; + size_t new_count, enc_count; + size_t struct_alignment; + int is_complex; + char enc_type; + char new_packmode; + char enc_packmode; + char is_valid_array; +} __Pyx_BufFmt_Context; + + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":690 + * # in Cython to enable them only on the right systems. + * + * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< + * ctypedef npy_int16 int16_t + * ctypedef npy_int32 int32_t + */ +typedef npy_int8 __pyx_t_5numpy_int8_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":691 + * + * ctypedef npy_int8 int8_t + * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< + * ctypedef npy_int32 int32_t + * ctypedef npy_int64 int64_t + */ +typedef npy_int16 __pyx_t_5numpy_int16_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":692 + * ctypedef npy_int8 int8_t + * ctypedef npy_int16 int16_t + * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< + * ctypedef npy_int64 int64_t + * #ctypedef npy_int96 int96_t + */ +typedef npy_int32 __pyx_t_5numpy_int32_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":693 + * ctypedef npy_int16 int16_t + * ctypedef npy_int32 int32_t + * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< + * #ctypedef npy_int96 int96_t + * #ctypedef npy_int128 int128_t + */ +typedef npy_int64 __pyx_t_5numpy_int64_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":697 + * #ctypedef npy_int128 int128_t + * + * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< + * ctypedef npy_uint16 uint16_t + * ctypedef npy_uint32 uint32_t + */ +typedef npy_uint8 __pyx_t_5numpy_uint8_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":698 + * + * ctypedef npy_uint8 uint8_t + * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< + * ctypedef npy_uint32 uint32_t + * ctypedef npy_uint64 uint64_t + */ +typedef npy_uint16 __pyx_t_5numpy_uint16_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":699 + * ctypedef npy_uint8 uint8_t + * ctypedef npy_uint16 uint16_t + * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< + * ctypedef npy_uint64 uint64_t + * #ctypedef npy_uint96 uint96_t + */ +typedef npy_uint32 __pyx_t_5numpy_uint32_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":700 + * ctypedef npy_uint16 uint16_t + * ctypedef npy_uint32 uint32_t + * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< + * #ctypedef npy_uint96 uint96_t + * #ctypedef npy_uint128 uint128_t + */ +typedef npy_uint64 __pyx_t_5numpy_uint64_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":704 + * #ctypedef npy_uint128 uint128_t + * + * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< + * ctypedef npy_float64 float64_t + * #ctypedef npy_float80 float80_t + */ +typedef npy_float32 __pyx_t_5numpy_float32_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":705 + * + * ctypedef npy_float32 float32_t + * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< + * #ctypedef npy_float80 float80_t + * #ctypedef npy_float128 float128_t + */ +typedef npy_float64 __pyx_t_5numpy_float64_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":714 + * # The int types are mapped a bit surprising -- + * # numpy.int corresponds to 'l' and numpy.long to 'q' + * ctypedef npy_long int_t # <<<<<<<<<<<<<< + * ctypedef npy_longlong long_t + * ctypedef npy_longlong longlong_t + */ +typedef npy_long __pyx_t_5numpy_int_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":715 + * # numpy.int corresponds to 'l' and numpy.long to 'q' + * ctypedef npy_long int_t + * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< + * ctypedef npy_longlong longlong_t + * + */ +typedef npy_longlong __pyx_t_5numpy_long_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":716 + * ctypedef npy_long int_t + * ctypedef npy_longlong long_t + * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< + * + * ctypedef npy_ulong uint_t + */ +typedef npy_longlong __pyx_t_5numpy_longlong_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":718 + * ctypedef npy_longlong longlong_t + * + * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< + * ctypedef npy_ulonglong ulong_t + * ctypedef npy_ulonglong ulonglong_t + */ +typedef npy_ulong __pyx_t_5numpy_uint_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":719 + * + * ctypedef npy_ulong uint_t + * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< + * ctypedef npy_ulonglong ulonglong_t + * + */ +typedef npy_ulonglong __pyx_t_5numpy_ulong_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":720 + * ctypedef npy_ulong uint_t + * ctypedef npy_ulonglong ulong_t + * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< + * + * ctypedef npy_intp intp_t + */ +typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":722 + * ctypedef npy_ulonglong ulonglong_t + * + * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< + * ctypedef npy_uintp uintp_t + * + */ +typedef npy_intp __pyx_t_5numpy_intp_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":723 + * + * ctypedef npy_intp intp_t + * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< + * + * ctypedef npy_double float_t + */ +typedef npy_uintp __pyx_t_5numpy_uintp_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":725 + * ctypedef npy_uintp uintp_t + * + * ctypedef npy_double float_t # <<<<<<<<<<<<<< + * ctypedef npy_double double_t + * ctypedef npy_longdouble longdouble_t + */ +typedef npy_double __pyx_t_5numpy_float_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":726 + * + * ctypedef npy_double float_t + * ctypedef npy_double double_t # <<<<<<<<<<<<<< + * ctypedef npy_longdouble longdouble_t + * + */ +typedef npy_double __pyx_t_5numpy_double_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":727 + * ctypedef npy_double float_t + * ctypedef npy_double double_t + * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< + * + * ctypedef npy_cfloat cfloat_t + */ +typedef npy_longdouble __pyx_t_5numpy_longdouble_t; +/* Declarations.proto */ +#if CYTHON_CCOMPLEX + #ifdef __cplusplus + typedef ::std::complex< float > __pyx_t_float_complex; + #else + typedef float _Complex __pyx_t_float_complex; + #endif +#else + typedef struct { float real, imag; } __pyx_t_float_complex; +#endif +static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float); + +/* Declarations.proto */ +#if CYTHON_CCOMPLEX + #ifdef __cplusplus + typedef ::std::complex< double > __pyx_t_double_complex; + #else + typedef double _Complex __pyx_t_double_complex; + #endif +#else + typedef struct { double real, imag; } __pyx_t_double_complex; +#endif +static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); + + +/*--- Type declarations ---*/ +struct __pyx_array_obj; +struct __pyx_MemviewEnum_obj; +struct __pyx_memoryview_obj; +struct __pyx_memoryviewslice_obj; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":729 + * ctypedef npy_longdouble longdouble_t + * + * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< + * ctypedef npy_cdouble cdouble_t + * ctypedef npy_clongdouble clongdouble_t + */ +typedef npy_cfloat __pyx_t_5numpy_cfloat_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":730 + * + * ctypedef npy_cfloat cfloat_t + * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< + * ctypedef npy_clongdouble clongdouble_t + * + */ +typedef npy_cdouble __pyx_t_5numpy_cdouble_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":731 + * ctypedef npy_cfloat cfloat_t + * ctypedef npy_cdouble cdouble_t + * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< + * + * ctypedef npy_cdouble complex_t + */ +typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":733 + * ctypedef npy_clongdouble clongdouble_t + * + * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< + * + * cdef inline object PyArray_MultiIterNew1(a): + */ +typedef npy_cdouble __pyx_t_5numpy_complex_t; +struct __pyx_opt_args_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c; + +/* "TTS/tts/utils/monotonic_align/core.pyx":42 + * @cython.boundscheck(False) + * @cython.wraparound(False) + * cpdef void maximum_path_c(int[:,:,::1] paths, float[:,:,::1] values, int[::1] t_xs, int[::1] t_ys, float max_neg_val=-1e9) nogil: # <<<<<<<<<<<<<< + * cdef int b = values.shape[0] + * + */ +struct __pyx_opt_args_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c { + int __pyx_n; + float max_neg_val; +}; + +/* "View.MemoryView":105 + * + * @cname("__pyx_array") + * cdef class array: # <<<<<<<<<<<<<< + * + * cdef: + */ +struct __pyx_array_obj { + PyObject_HEAD + struct __pyx_vtabstruct_array *__pyx_vtab; + char *data; + Py_ssize_t len; + char *format; + int ndim; + Py_ssize_t *_shape; + Py_ssize_t *_strides; + Py_ssize_t itemsize; + PyObject *mode; + PyObject *_format; + void (*callback_free_data)(void *); + int free_data; + int dtype_is_object; +}; + + +/* "View.MemoryView":279 + * + * @cname('__pyx_MemviewEnum') + * cdef class Enum(object): # <<<<<<<<<<<<<< + * cdef object name + * def __init__(self, name): + */ +struct __pyx_MemviewEnum_obj { + PyObject_HEAD + PyObject *name; +}; + + +/* "View.MemoryView":330 + * + * @cname('__pyx_memoryview') + * cdef class memoryview(object): # <<<<<<<<<<<<<< + * + * cdef object obj + */ +struct __pyx_memoryview_obj { + PyObject_HEAD + struct __pyx_vtabstruct_memoryview *__pyx_vtab; + PyObject *obj; + PyObject *_size; + PyObject *_array_interface; + PyThread_type_lock lock; + __pyx_atomic_int acquisition_count[2]; + __pyx_atomic_int *acquisition_count_aligned_p; + Py_buffer view; + int flags; + int dtype_is_object; + __Pyx_TypeInfo *typeinfo; +}; + + +/* "View.MemoryView":965 + * + * @cname('__pyx_memoryviewslice') + * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< + * "Internal class for passing memoryview slices to Python" + * + */ +struct __pyx_memoryviewslice_obj { + struct __pyx_memoryview_obj __pyx_base; + __Pyx_memviewslice from_slice; + PyObject *from_object; + PyObject *(*to_object_func)(char *); + int (*to_dtype_func)(char *, PyObject *); +}; + + + +/* "View.MemoryView":105 + * + * @cname("__pyx_array") + * cdef class array: # <<<<<<<<<<<<<< + * + * cdef: + */ + +struct __pyx_vtabstruct_array { + PyObject *(*get_memview)(struct __pyx_array_obj *); +}; +static struct __pyx_vtabstruct_array *__pyx_vtabptr_array; + + +/* "View.MemoryView":330 + * + * @cname('__pyx_memoryview') + * cdef class memoryview(object): # <<<<<<<<<<<<<< + * + * cdef object obj + */ + +struct __pyx_vtabstruct_memoryview { + char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *); + PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *); + PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); + PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *); + PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); + PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *); + PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *); +}; +static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview; + + +/* "View.MemoryView":965 + * + * @cname('__pyx_memoryviewslice') + * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< + * "Internal class for passing memoryview slices to Python" + * + */ + +struct __pyx_vtabstruct__memoryviewslice { + struct __pyx_vtabstruct_memoryview __pyx_base; +}; +static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice; + +/* --- Runtime support code (head) --- */ +/* Refnanny.proto */ +#ifndef CYTHON_REFNANNY + #define CYTHON_REFNANNY 0 +#endif +#if CYTHON_REFNANNY + typedef struct { + void (*INCREF)(void*, PyObject*, int); + void (*DECREF)(void*, PyObject*, int); + void (*GOTREF)(void*, PyObject*, int); + void (*GIVEREF)(void*, PyObject*, int); + void* (*SetupContext)(const char*, int, const char*); + void (*FinishContext)(void**); + } __Pyx_RefNannyAPIStruct; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); + #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; +#ifdef WITH_THREAD + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + if (acquire_gil) {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + PyGILState_Release(__pyx_gilstate_save);\ + } else {\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + } +#else + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) +#endif + #define __Pyx_RefNannyFinishContext()\ + __Pyx_RefNanny->FinishContext(&__pyx_refnanny) + #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) + #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) + #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) + #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) +#else + #define __Pyx_RefNannyDeclarations + #define __Pyx_RefNannySetupContext(name, acquire_gil) + #define __Pyx_RefNannyFinishContext() + #define __Pyx_INCREF(r) Py_INCREF(r) + #define __Pyx_DECREF(r) Py_DECREF(r) + #define __Pyx_GOTREF(r) + #define __Pyx_GIVEREF(r) + #define __Pyx_XINCREF(r) Py_XINCREF(r) + #define __Pyx_XDECREF(r) Py_XDECREF(r) + #define __Pyx_XGOTREF(r) + #define __Pyx_XGIVEREF(r) +#endif +#define __Pyx_XDECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_XDECREF(tmp);\ + } while (0) +#define __Pyx_DECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_DECREF(tmp);\ + } while (0) +#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) +#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) + +/* PyObjectGetAttrStr.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) +#endif + +/* GetBuiltinName.proto */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name); + +/* MemviewSliceInit.proto */ +#define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d +#define __Pyx_MEMVIEW_DIRECT 1 +#define __Pyx_MEMVIEW_PTR 2 +#define __Pyx_MEMVIEW_FULL 4 +#define __Pyx_MEMVIEW_CONTIG 8 +#define __Pyx_MEMVIEW_STRIDED 16 +#define __Pyx_MEMVIEW_FOLLOW 32 +#define __Pyx_IS_C_CONTIG 1 +#define __Pyx_IS_F_CONTIG 2 +static int __Pyx_init_memviewslice( + struct __pyx_memoryview_obj *memview, + int ndim, + __Pyx_memviewslice *memviewslice, + int memview_is_new_reference); +static CYTHON_INLINE int __pyx_add_acquisition_count_locked( + __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); +static CYTHON_INLINE int __pyx_sub_acquisition_count_locked( + __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); +#define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p) +#define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview)) +#define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__) +#define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) +static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int); +static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *, int, int); + +/* RaiseArgTupleInvalid.proto */ +static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, + Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); + +/* RaiseDoubleKeywords.proto */ +static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); + +/* ParseKeywords.proto */ +static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ + PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ + const char* function_name); + +/* None.proto */ +static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); + +/* GetTopmostException.proto */ +#if CYTHON_USE_EXC_INFO_STACK +static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); +#endif + +/* PyThreadStateGet.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; +#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; +#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type +#else +#define __Pyx_PyThreadState_declare +#define __Pyx_PyThreadState_assign +#define __Pyx_PyErr_Occurred() PyErr_Occurred() +#endif + +/* SaveResetException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +#else +#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) +#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) +#endif + +/* PyErrExceptionMatches.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) +static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); +#else +#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) +#endif + +/* GetException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) +static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#else +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); +#endif + +/* PyObjectCall.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); +#else +#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) +#endif + +/* PyErrFetchRestore.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) +#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) +#else +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#endif +#else +#define __Pyx_PyErr_Clear() PyErr_Clear() +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) +#endif + +/* RaiseException.proto */ +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + +/* ArgTypeTest.proto */ +#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ + ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\ + __Pyx__ArgTypeTest(obj, type, name, exact)) +static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); + +/* PyCFunctionFastCall.proto */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); +#else +#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) +#endif + +/* PyFunctionFastCall.proto */ +#if CYTHON_FAST_PYCALL +#define __Pyx_PyFunction_FastCall(func, args, nargs)\ + __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); +#else +#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) +#endif +#define __Pyx_BUILD_ASSERT_EXPR(cond)\ + (sizeof(char [1 - 2*!(cond)]) - 1) +#ifndef Py_MEMBER_SIZE +#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) +#endif +#if CYTHON_FAST_PYCALL + static size_t __pyx_pyframe_localsplus_offset = 0; + #include "frameobject.h" + #define __Pxy_PyFrame_Initialize_Offsets()\ + ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ + (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) + #define __Pyx_PyFrame_GetLocalsplus(frame)\ + (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif // CYTHON_FAST_PYCALL +#endif + +/* PyObjectCall2Args.proto */ +static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); + +/* PyObjectCallMethO.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); +#endif + +/* PyObjectCallOneArg.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); + +/* IncludeStringH.proto */ +#include + +/* BytesEquals.proto */ +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); + +/* UnicodeEquals.proto */ +static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); + +/* StrEquals.proto */ +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals +#else +#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals +#endif + +/* DivInt[Py_ssize_t].proto */ +static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); + +/* UnaryNegOverflows.proto */ +#define UNARY_NEG_WOULD_OVERFLOW(x)\ + (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x))) + +static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/ +/* GetAttr.proto */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); + +/* GetItemInt.proto */ +#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ + (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ + __Pyx_GetItemInt_Generic(o, to_py_func(i)))) +#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ + (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, + int wraparound, int boundscheck); +#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ + (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, + int wraparound, int boundscheck); +static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, + int is_list, int wraparound, int boundscheck); + +/* ObjectGetItem.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); +#else +#define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) +#endif + +/* decode_c_string_utf16.proto */ +static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) { + int byteorder = 0; + return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); +} +static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) { + int byteorder = -1; + return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); +} +static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) { + int byteorder = 1; + return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); +} + +/* decode_c_string.proto */ +static CYTHON_INLINE PyObject* __Pyx_decode_c_string( + const char* cstring, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); + +/* GetAttr3.proto */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); + +/* PyDictVersioning.proto */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) +#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ + (version_var) = __PYX_GET_DICT_VERSION(dict);\ + (cache_var) = (value); +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ + (VAR) = __pyx_dict_cached_value;\ + } else {\ + (VAR) = __pyx_dict_cached_value = (LOOKUP);\ + __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ + }\ +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); +#else +#define __PYX_GET_DICT_VERSION(dict) (0) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); +#endif + +/* GetModuleGlobalName.proto */ +#if CYTHON_USE_DICT_VERSIONS +#define __Pyx_GetModuleGlobalName(var, name) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ + (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ + __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} +#define __Pyx_GetModuleGlobalNameUncached(var, name) {\ + PY_UINT64_T __pyx_dict_version;\ + PyObject *__pyx_dict_cached_value;\ + (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} +static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); +#else +#define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) +#define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) +static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); +#endif + +/* RaiseTooManyValuesToUnpack.proto */ +static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); + +/* RaiseNeedMoreValuesToUnpack.proto */ +static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); + +/* RaiseNoneIterError.proto */ +static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); + +/* ExtTypeTest.proto */ +static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); + +/* SwapException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#else +static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); +#endif + +/* Import.proto */ +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); + +/* FastTypeChecks.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); +#else +#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) +#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) +#endif +#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) + +static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +/* ListCompAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len)) { + Py_INCREF(x); + PyList_SET_ITEM(list, len, x); + __Pyx_SET_SIZE(list, len + 1); + return 0; + } + return PyList_Append(list, x); +} +#else +#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) +#endif + +/* PyIntBinop.proto */ +#if !CYTHON_COMPILING_IN_PYPY +static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); +#else +#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ + (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) +#endif + +/* ListExtend.proto */ +static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) { +#if CYTHON_COMPILING_IN_CPYTHON + PyObject* none = _PyList_Extend((PyListObject*)L, v); + if (unlikely(!none)) + return -1; + Py_DECREF(none); + return 0; +#else + return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v); +#endif +} + +/* ListAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { + Py_INCREF(x); + PyList_SET_ITEM(list, len, x); + __Pyx_SET_SIZE(list, len + 1); + return 0; + } + return PyList_Append(list, x); +} +#else +#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) +#endif + +/* DivInt[long].proto */ +static CYTHON_INLINE long __Pyx_div_long(long, long); + +/* ImportFrom.proto */ +static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); + +/* HasAttr.proto */ +static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); + +/* PyObject_GenericGetAttrNoDict.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr +#endif + +/* PyObject_GenericGetAttr.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr +#endif + +/* SetVTable.proto */ +static int __Pyx_SetVtable(PyObject *dict, void *vtable); + +/* PyObjectGetAttrStrNoError.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); + +/* SetupReduce.proto */ +static int __Pyx_setup_reduce(PyObject* type_obj); + +/* TypeImport.proto */ +#ifndef __PYX_HAVE_RT_ImportType_proto +#define __PYX_HAVE_RT_ImportType_proto +enum __Pyx_ImportType_CheckSize { + __Pyx_ImportType_CheckSize_Error = 0, + __Pyx_ImportType_CheckSize_Warn = 1, + __Pyx_ImportType_CheckSize_Ignore = 2 +}; +static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size); +#endif + +/* CLineInTraceback.proto */ +#ifdef CYTHON_CLINE_IN_TRACEBACK +#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) +#else +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); +#endif + +/* CodeObjectCache.proto */ +typedef struct { + PyCodeObject* code_object; + int code_line; +} __Pyx_CodeObjectCacheEntry; +struct __Pyx_CodeObjectCache { + int count; + int max_count; + __Pyx_CodeObjectCacheEntry* entries; +}; +static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); +static PyCodeObject *__pyx_find_code_object(int code_line); +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); + +/* AddTraceback.proto */ +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename); + +#if PY_MAJOR_VERSION < 3 + static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); + static void __Pyx_ReleaseBuffer(Py_buffer *view); +#else + #define __Pyx_GetBuffer PyObject_GetBuffer + #define __Pyx_ReleaseBuffer PyBuffer_Release +#endif + + +/* BufferStructDeclare.proto */ +typedef struct { + Py_ssize_t shape, strides, suboffsets; +} __Pyx_Buf_DimInfo; +typedef struct { + size_t refcount; + Py_buffer pybuffer; +} __Pyx_Buffer; +typedef struct { + __Pyx_Buffer *rcbuffer; + char *data; + __Pyx_Buf_DimInfo diminfo[8]; +} __Pyx_LocalBuf_ND; + +/* MemviewSliceIsContig.proto */ +static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim); + +/* OverlappingSlices.proto */ +static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, + __Pyx_memviewslice *slice2, + int ndim, size_t itemsize); + +/* Capsule.proto */ +static CYTHON_INLINE PyObject *__pyx_capsule_create(void *p, const char *sig); + +/* IsLittleEndian.proto */ +static CYTHON_INLINE int __Pyx_Is_Little_Endian(void); + +/* BufferFormatCheck.proto */ +static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts); +static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, + __Pyx_BufFmt_StackElem* stack, + __Pyx_TypeInfo* type); + +/* TypeInfoCompare.proto */ +static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b); + +/* MemviewSliceValidateAndInit.proto */ +static int __Pyx_ValidateAndInit_memviewslice( + int *axes_specs, + int c_or_f_flag, + int buf_flags, + int ndim, + __Pyx_TypeInfo *dtype, + __Pyx_BufFmt_StackElem stack[], + __Pyx_memviewslice *memviewslice, + PyObject *original_obj); + +/* ObjectToMemviewSlice.proto */ +static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_int(PyObject *, int writable_flag); + +/* ObjectToMemviewSlice.proto */ +static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_float(PyObject *, int writable_flag); + +/* ObjectToMemviewSlice.proto */ +static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_int(PyObject *, int writable_flag); + +/* GCCDiagnostics.proto */ +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define __Pyx_HAS_GCC_DIAGNOSTIC +#endif + +/* RealImag.proto */ +#if CYTHON_CCOMPLEX + #ifdef __cplusplus + #define __Pyx_CREAL(z) ((z).real()) + #define __Pyx_CIMAG(z) ((z).imag()) + #else + #define __Pyx_CREAL(z) (__real__(z)) + #define __Pyx_CIMAG(z) (__imag__(z)) + #endif +#else + #define __Pyx_CREAL(z) ((z).real) + #define __Pyx_CIMAG(z) ((z).imag) +#endif +#if defined(__cplusplus) && CYTHON_CCOMPLEX\ + && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103) + #define __Pyx_SET_CREAL(z,x) ((z).real(x)) + #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) +#else + #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) + #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) +#endif + +/* Arithmetic.proto */ +#if CYTHON_CCOMPLEX + #define __Pyx_c_eq_float(a, b) ((a)==(b)) + #define __Pyx_c_sum_float(a, b) ((a)+(b)) + #define __Pyx_c_diff_float(a, b) ((a)-(b)) + #define __Pyx_c_prod_float(a, b) ((a)*(b)) + #define __Pyx_c_quot_float(a, b) ((a)/(b)) + #define __Pyx_c_neg_float(a) (-(a)) + #ifdef __cplusplus + #define __Pyx_c_is_zero_float(z) ((z)==(float)0) + #define __Pyx_c_conj_float(z) (::std::conj(z)) + #if 1 + #define __Pyx_c_abs_float(z) (::std::abs(z)) + #define __Pyx_c_pow_float(a, b) (::std::pow(a, b)) + #endif + #else + #define __Pyx_c_is_zero_float(z) ((z)==0) + #define __Pyx_c_conj_float(z) (conjf(z)) + #if 1 + #define __Pyx_c_abs_float(z) (cabsf(z)) + #define __Pyx_c_pow_float(a, b) (cpowf(a, b)) + #endif + #endif +#else + static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex); + static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex); + #if 1 + static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex); + #endif +#endif + +/* Arithmetic.proto */ +#if CYTHON_CCOMPLEX + #define __Pyx_c_eq_double(a, b) ((a)==(b)) + #define __Pyx_c_sum_double(a, b) ((a)+(b)) + #define __Pyx_c_diff_double(a, b) ((a)-(b)) + #define __Pyx_c_prod_double(a, b) ((a)*(b)) + #define __Pyx_c_quot_double(a, b) ((a)/(b)) + #define __Pyx_c_neg_double(a) (-(a)) + #ifdef __cplusplus + #define __Pyx_c_is_zero_double(z) ((z)==(double)0) + #define __Pyx_c_conj_double(z) (::std::conj(z)) + #if 1 + #define __Pyx_c_abs_double(z) (::std::abs(z)) + #define __Pyx_c_pow_double(a, b) (::std::pow(a, b)) + #endif + #else + #define __Pyx_c_is_zero_double(z) ((z)==0) + #define __Pyx_c_conj_double(z) (conj(z)) + #if 1 + #define __Pyx_c_abs_double(z) (cabs(z)) + #define __Pyx_c_pow_double(a, b) (cpow(a, b)) + #endif + #endif +#else + static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex); + static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex); + #if 1 + static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex); + #endif +#endif + +/* MemviewSliceCopyTemplate.proto */ +static __Pyx_memviewslice +__pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, + const char *mode, int ndim, + size_t sizeof_dtype, int contig_flag, + int dtype_is_object); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *); + +/* CheckBinaryVersion.proto */ +static int __Pyx_check_binary_version(void); + +/* InitStrings.proto */ +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); + +static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/ +static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/ +static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/ +static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/ +static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/ +static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/ +static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ +static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ +static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ +static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ + +/* Module declarations from 'cython.view' */ + +/* Module declarations from 'cython' */ + +/* Module declarations from 'cpython.buffer' */ + +/* Module declarations from 'libc.string' */ + +/* Module declarations from 'libc.stdio' */ + +/* Module declarations from '__builtin__' */ + +/* Module declarations from 'cpython.type' */ +static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; + +/* Module declarations from 'cpython' */ + +/* Module declarations from 'cpython.object' */ + +/* Module declarations from 'cpython.ref' */ + +/* Module declarations from 'cpython.mem' */ + +/* Module declarations from 'numpy' */ + +/* Module declarations from 'numpy' */ +static PyTypeObject *__pyx_ptype_5numpy_dtype = 0; +static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0; +static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0; +static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0; +static PyTypeObject *__pyx_ptype_5numpy_generic = 0; +static PyTypeObject *__pyx_ptype_5numpy_number = 0; +static PyTypeObject *__pyx_ptype_5numpy_integer = 0; +static PyTypeObject *__pyx_ptype_5numpy_signedinteger = 0; +static PyTypeObject *__pyx_ptype_5numpy_unsignedinteger = 0; +static PyTypeObject *__pyx_ptype_5numpy_inexact = 0; +static PyTypeObject *__pyx_ptype_5numpy_floating = 0; +static PyTypeObject *__pyx_ptype_5numpy_complexfloating = 0; +static PyTypeObject *__pyx_ptype_5numpy_flexible = 0; +static PyTypeObject *__pyx_ptype_5numpy_character = 0; +static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0; + +/* Module declarations from 'TTS.tts.utils.monotonic_align.core' */ +static PyTypeObject *__pyx_array_type = 0; +static PyTypeObject *__pyx_MemviewEnum_type = 0; +static PyTypeObject *__pyx_memoryview_type = 0; +static PyTypeObject *__pyx_memoryviewslice_type = 0; +static PyObject *generic = 0; +static PyObject *strided = 0; +static PyObject *indirect = 0; +static PyObject *contiguous = 0; +static PyObject *indirect_contiguous = 0; +static int __pyx_memoryview_thread_locks_used; +static PyThread_type_lock __pyx_memoryview_thread_locks[8]; +static void __pyx_f_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_each(__Pyx_memviewslice, __Pyx_memviewslice, int, int, float); /*proto*/ +static void __pyx_f_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch, struct __pyx_opt_args_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c *__pyx_optional_args); /*proto*/ +static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ +static void *__pyx_align_pointer(void *, size_t); /*proto*/ +static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/ +static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/ +static PyObject *_unellipsify(PyObject *, int); /*proto*/ +static PyObject *assert_direct_dimensions(Py_ssize_t *, int); /*proto*/ +static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/ +static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/ +static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/ +static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/ +static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/ +static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ +static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ +static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/ +static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ +static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/ +static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/ +static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/ +static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/ +static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/ +static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/ +static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/ +static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/ +static int __pyx_memoryview_err_dim(PyObject *, char *, int); /*proto*/ +static int __pyx_memoryview_err(PyObject *, char *); /*proto*/ +static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/ +static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/ +static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/ +static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ +static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ +static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/ +static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/ +static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/ +static __Pyx_TypeInfo __Pyx_TypeInfo_int = { "int", NULL, sizeof(int), { 0 }, 0, IS_UNSIGNED(int) ? 'U' : 'I', IS_UNSIGNED(int), 0 }; +static __Pyx_TypeInfo __Pyx_TypeInfo_float = { "float", NULL, sizeof(float), { 0 }, 0, 'R', 0, 0 }; +#define __Pyx_MODULE_NAME "TTS.tts.utils.monotonic_align.core" +extern int __pyx_module_is_main_TTS__tts__utils__monotonic_align__core; +int __pyx_module_is_main_TTS__tts__utils__monotonic_align__core = 0; + +/* Implementation of 'TTS.tts.utils.monotonic_align.core' */ +static PyObject *__pyx_builtin_range; +static PyObject *__pyx_builtin_ImportError; +static PyObject *__pyx_builtin_ValueError; +static PyObject *__pyx_builtin_MemoryError; +static PyObject *__pyx_builtin_enumerate; +static PyObject *__pyx_builtin_TypeError; +static PyObject *__pyx_builtin_Ellipsis; +static PyObject *__pyx_builtin_id; +static PyObject *__pyx_builtin_IndexError; +static const char __pyx_k_O[] = "O"; +static const char __pyx_k_c[] = "c"; +static const char __pyx_k_id[] = "id"; +static const char __pyx_k_np[] = "np"; +static const char __pyx_k_new[] = "__new__"; +static const char __pyx_k_obj[] = "obj"; +static const char __pyx_k_base[] = "base"; +static const char __pyx_k_dict[] = "__dict__"; +static const char __pyx_k_main[] = "__main__"; +static const char __pyx_k_mode[] = "mode"; +static const char __pyx_k_name[] = "name"; +static const char __pyx_k_ndim[] = "ndim"; +static const char __pyx_k_pack[] = "pack"; +static const char __pyx_k_size[] = "size"; +static const char __pyx_k_step[] = "step"; +static const char __pyx_k_stop[] = "stop"; +static const char __pyx_k_t_xs[] = "t_xs"; +static const char __pyx_k_t_ys[] = "t_ys"; +static const char __pyx_k_test[] = "__test__"; +static const char __pyx_k_ASCII[] = "ASCII"; +static const char __pyx_k_class[] = "__class__"; +static const char __pyx_k_error[] = "error"; +static const char __pyx_k_flags[] = "flags"; +static const char __pyx_k_numpy[] = "numpy"; +static const char __pyx_k_paths[] = "paths"; +static const char __pyx_k_range[] = "range"; +static const char __pyx_k_shape[] = "shape"; +static const char __pyx_k_start[] = "start"; +static const char __pyx_k_encode[] = "encode"; +static const char __pyx_k_format[] = "format"; +static const char __pyx_k_import[] = "__import__"; +static const char __pyx_k_name_2[] = "__name__"; +static const char __pyx_k_pickle[] = "pickle"; +static const char __pyx_k_reduce[] = "__reduce__"; +static const char __pyx_k_struct[] = "struct"; +static const char __pyx_k_unpack[] = "unpack"; +static const char __pyx_k_update[] = "update"; +static const char __pyx_k_values[] = "values"; +static const char __pyx_k_fortran[] = "fortran"; +static const char __pyx_k_memview[] = "memview"; +static const char __pyx_k_Ellipsis[] = "Ellipsis"; +static const char __pyx_k_getstate[] = "__getstate__"; +static const char __pyx_k_itemsize[] = "itemsize"; +static const char __pyx_k_pyx_type[] = "__pyx_type"; +static const char __pyx_k_setstate[] = "__setstate__"; +static const char __pyx_k_TypeError[] = "TypeError"; +static const char __pyx_k_enumerate[] = "enumerate"; +static const char __pyx_k_pyx_state[] = "__pyx_state"; +static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; +static const char __pyx_k_IndexError[] = "IndexError"; +static const char __pyx_k_ValueError[] = "ValueError"; +static const char __pyx_k_pyx_result[] = "__pyx_result"; +static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; +static const char __pyx_k_ImportError[] = "ImportError"; +static const char __pyx_k_MemoryError[] = "MemoryError"; +static const char __pyx_k_PickleError[] = "PickleError"; +static const char __pyx_k_max_neg_val[] = "max_neg_val"; +static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; +static const char __pyx_k_stringsource[] = "stringsource"; +static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer"; +static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; +static const char __pyx_k_View_MemoryView[] = "View.MemoryView"; +static const char __pyx_k_allocate_buffer[] = "allocate_buffer"; +static const char __pyx_k_dtype_is_object[] = "dtype_is_object"; +static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; +static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; +static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum"; +static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; +static const char __pyx_k_strided_and_direct[] = ""; +static const char __pyx_k_strided_and_indirect[] = ""; +static const char __pyx_k_contiguous_and_direct[] = ""; +static const char __pyx_k_MemoryView_of_r_object[] = ""; +static const char __pyx_k_MemoryView_of_r_at_0x_x[] = ""; +static const char __pyx_k_contiguous_and_indirect[] = ""; +static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'"; +static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d."; +static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array"; +static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data."; +static const char __pyx_k_strided_and_direct_or_indirect[] = ""; +static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; +static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides"; +static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory."; +static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview"; +static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview"; +static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array"; +static const char __pyx_k_Incompatible_checksums_s_vs_0xb0[] = "Incompatible checksums (%s vs 0xb068931 = (name))"; +static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported"; +static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got %s"; +static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis %d)"; +static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object"; +static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension %d (got %d and %d)"; +static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; +static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; +static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides."; +static PyObject *__pyx_n_s_ASCII; +static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri; +static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is; +static PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor; +static PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi; +static PyObject *__pyx_kp_s_Cannot_index_with_type_s; +static PyObject *__pyx_n_s_Ellipsis; +static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr; +static PyObject *__pyx_n_s_ImportError; +static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb0; +static PyObject *__pyx_n_s_IndexError; +static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte; +static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr; +static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d; +static PyObject *__pyx_n_s_MemoryError; +static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x; +static PyObject *__pyx_kp_s_MemoryView_of_r_object; +static PyObject *__pyx_n_b_O; +static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a; +static PyObject *__pyx_n_s_PickleError; +static PyObject *__pyx_n_s_TypeError; +static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object; +static PyObject *__pyx_n_s_ValueError; +static PyObject *__pyx_n_s_View_MemoryView; +static PyObject *__pyx_n_s_allocate_buffer; +static PyObject *__pyx_n_s_base; +static PyObject *__pyx_n_s_c; +static PyObject *__pyx_n_u_c; +static PyObject *__pyx_n_s_class; +static PyObject *__pyx_n_s_cline_in_traceback; +static PyObject *__pyx_kp_s_contiguous_and_direct; +static PyObject *__pyx_kp_s_contiguous_and_indirect; +static PyObject *__pyx_n_s_dict; +static PyObject *__pyx_n_s_dtype_is_object; +static PyObject *__pyx_n_s_encode; +static PyObject *__pyx_n_s_enumerate; +static PyObject *__pyx_n_s_error; +static PyObject *__pyx_n_s_flags; +static PyObject *__pyx_n_s_format; +static PyObject *__pyx_n_s_fortran; +static PyObject *__pyx_n_u_fortran; +static PyObject *__pyx_n_s_getstate; +static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi; +static PyObject *__pyx_n_s_id; +static PyObject *__pyx_n_s_import; +static PyObject *__pyx_n_s_itemsize; +static PyObject *__pyx_kp_s_itemsize_0_for_cython_array; +static PyObject *__pyx_n_s_main; +static PyObject *__pyx_n_s_max_neg_val; +static PyObject *__pyx_n_s_memview; +static PyObject *__pyx_n_s_mode; +static PyObject *__pyx_n_s_name; +static PyObject *__pyx_n_s_name_2; +static PyObject *__pyx_n_s_ndim; +static PyObject *__pyx_n_s_new; +static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; +static PyObject *__pyx_n_s_np; +static PyObject *__pyx_n_s_numpy; +static PyObject *__pyx_kp_u_numpy_core_multiarray_failed_to; +static PyObject *__pyx_kp_u_numpy_core_umath_failed_to_impor; +static PyObject *__pyx_n_s_obj; +static PyObject *__pyx_n_s_pack; +static PyObject *__pyx_n_s_paths; +static PyObject *__pyx_n_s_pickle; +static PyObject *__pyx_n_s_pyx_PickleError; +static PyObject *__pyx_n_s_pyx_checksum; +static PyObject *__pyx_n_s_pyx_getbuffer; +static PyObject *__pyx_n_s_pyx_result; +static PyObject *__pyx_n_s_pyx_state; +static PyObject *__pyx_n_s_pyx_type; +static PyObject *__pyx_n_s_pyx_unpickle_Enum; +static PyObject *__pyx_n_s_pyx_vtable; +static PyObject *__pyx_n_s_range; +static PyObject *__pyx_n_s_reduce; +static PyObject *__pyx_n_s_reduce_cython; +static PyObject *__pyx_n_s_reduce_ex; +static PyObject *__pyx_n_s_setstate; +static PyObject *__pyx_n_s_setstate_cython; +static PyObject *__pyx_n_s_shape; +static PyObject *__pyx_n_s_size; +static PyObject *__pyx_n_s_start; +static PyObject *__pyx_n_s_step; +static PyObject *__pyx_n_s_stop; +static PyObject *__pyx_kp_s_strided_and_direct; +static PyObject *__pyx_kp_s_strided_and_direct_or_indirect; +static PyObject *__pyx_kp_s_strided_and_indirect; +static PyObject *__pyx_kp_s_stringsource; +static PyObject *__pyx_n_s_struct; +static PyObject *__pyx_n_s_t_xs; +static PyObject *__pyx_n_s_t_ys; +static PyObject *__pyx_n_s_test; +static PyObject *__pyx_kp_s_unable_to_allocate_array_data; +static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str; +static PyObject *__pyx_n_s_unpack; +static PyObject *__pyx_n_s_update; +static PyObject *__pyx_n_s_values; +static PyObject *__pyx_pf_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paths, __Pyx_memviewslice __pyx_v_values, __Pyx_memviewslice __pyx_v_t_xs, __Pyx_memviewslice __pyx_v_t_ys, float __pyx_v_max_neg_val); /* proto */ +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */ +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ +static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */ +static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */ +static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_int_0; +static PyObject *__pyx_int_1; +static PyObject *__pyx_int_184977713; +static PyObject *__pyx_int_neg_1; +static float __pyx_k_; +static PyObject *__pyx_tuple__2; +static PyObject *__pyx_tuple__3; +static PyObject *__pyx_tuple__4; +static PyObject *__pyx_tuple__5; +static PyObject *__pyx_tuple__6; +static PyObject *__pyx_tuple__7; +static PyObject *__pyx_tuple__8; +static PyObject *__pyx_tuple__9; +static PyObject *__pyx_slice__18; +static PyObject *__pyx_tuple__10; +static PyObject *__pyx_tuple__11; +static PyObject *__pyx_tuple__12; +static PyObject *__pyx_tuple__13; +static PyObject *__pyx_tuple__14; +static PyObject *__pyx_tuple__15; +static PyObject *__pyx_tuple__16; +static PyObject *__pyx_tuple__17; +static PyObject *__pyx_tuple__19; +static PyObject *__pyx_tuple__20; +static PyObject *__pyx_tuple__21; +static PyObject *__pyx_tuple__22; +static PyObject *__pyx_tuple__23; +static PyObject *__pyx_tuple__24; +static PyObject *__pyx_tuple__25; +static PyObject *__pyx_tuple__26; +static PyObject *__pyx_tuple__27; +static PyObject *__pyx_codeobj__28; +/* Late includes */ + +/* "TTS/tts/utils/monotonic_align/core.pyx":11 + * @cython.boundscheck(False) + * @cython.wraparound(False) + * cdef void maximum_path_each(int[:,::1] path, float[:,::1] value, int t_x, int t_y, float max_neg_val) nogil: # <<<<<<<<<<<<<< + * cdef int x + * cdef int y + */ + +static void __pyx_f_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_each(__Pyx_memviewslice __pyx_v_path, __Pyx_memviewslice __pyx_v_value, int __pyx_v_t_x, int __pyx_v_t_y, float __pyx_v_max_neg_val) { + int __pyx_v_x; + int __pyx_v_y; + float __pyx_v_v_prev; + float __pyx_v_v_cur; + int __pyx_v_index; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + long __pyx_t_4; + int __pyx_t_5; + long __pyx_t_6; + long __pyx_t_7; + int __pyx_t_8; + Py_ssize_t __pyx_t_9; + Py_ssize_t __pyx_t_10; + float __pyx_t_11; + float __pyx_t_12; + float __pyx_t_13; + Py_ssize_t __pyx_t_14; + Py_ssize_t __pyx_t_15; + int __pyx_t_16; + + /* "TTS/tts/utils/monotonic_align/core.pyx":17 + * cdef float v_cur + * cdef float tmp + * cdef int index = t_x - 1 # <<<<<<<<<<<<<< + * + * for y in range(t_y): + */ + __pyx_v_index = (__pyx_v_t_x - 1); + + /* "TTS/tts/utils/monotonic_align/core.pyx":19 + * cdef int index = t_x - 1 + * + * for y in range(t_y): # <<<<<<<<<<<<<< + * for x in range(max(0, t_x + y - t_y), min(t_x, y + 1)): + * if x == y: + */ + __pyx_t_1 = __pyx_v_t_y; + __pyx_t_2 = __pyx_t_1; + for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { + __pyx_v_y = __pyx_t_3; + + /* "TTS/tts/utils/monotonic_align/core.pyx":20 + * + * for y in range(t_y): + * for x in range(max(0, t_x + y - t_y), min(t_x, y + 1)): # <<<<<<<<<<<<<< + * if x == y: + * v_cur = max_neg_val + */ + __pyx_t_4 = (__pyx_v_y + 1); + __pyx_t_5 = __pyx_v_t_x; + if (((__pyx_t_4 < __pyx_t_5) != 0)) { + __pyx_t_6 = __pyx_t_4; + } else { + __pyx_t_6 = __pyx_t_5; + } + __pyx_t_4 = __pyx_t_6; + __pyx_t_5 = ((__pyx_v_t_x + __pyx_v_y) - __pyx_v_t_y); + __pyx_t_6 = 0; + if (((__pyx_t_5 > __pyx_t_6) != 0)) { + __pyx_t_7 = __pyx_t_5; + } else { + __pyx_t_7 = __pyx_t_6; + } + __pyx_t_6 = __pyx_t_4; + for (__pyx_t_5 = __pyx_t_7; __pyx_t_5 < __pyx_t_6; __pyx_t_5+=1) { + __pyx_v_x = __pyx_t_5; + + /* "TTS/tts/utils/monotonic_align/core.pyx":21 + * for y in range(t_y): + * for x in range(max(0, t_x + y - t_y), min(t_x, y + 1)): + * if x == y: # <<<<<<<<<<<<<< + * v_cur = max_neg_val + * else: + */ + __pyx_t_8 = ((__pyx_v_x == __pyx_v_y) != 0); + if (__pyx_t_8) { + + /* "TTS/tts/utils/monotonic_align/core.pyx":22 + * for x in range(max(0, t_x + y - t_y), min(t_x, y + 1)): + * if x == y: + * v_cur = max_neg_val # <<<<<<<<<<<<<< + * else: + * v_cur = value[x, y-1] + */ + __pyx_v_v_cur = __pyx_v_max_neg_val; + + /* "TTS/tts/utils/monotonic_align/core.pyx":21 + * for y in range(t_y): + * for x in range(max(0, t_x + y - t_y), min(t_x, y + 1)): + * if x == y: # <<<<<<<<<<<<<< + * v_cur = max_neg_val + * else: + */ + goto __pyx_L7; + } + + /* "TTS/tts/utils/monotonic_align/core.pyx":24 + * v_cur = max_neg_val + * else: + * v_cur = value[x, y-1] # <<<<<<<<<<<<<< + * if x == 0: + * if y == 0: + */ + /*else*/ { + __pyx_t_9 = __pyx_v_x; + __pyx_t_10 = (__pyx_v_y - 1); + __pyx_v_v_cur = (*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_value.data + __pyx_t_9 * __pyx_v_value.strides[0]) )) + __pyx_t_10)) ))); + } + __pyx_L7:; + + /* "TTS/tts/utils/monotonic_align/core.pyx":25 + * else: + * v_cur = value[x, y-1] + * if x == 0: # <<<<<<<<<<<<<< + * if y == 0: + * v_prev = 0. + */ + __pyx_t_8 = ((__pyx_v_x == 0) != 0); + if (__pyx_t_8) { + + /* "TTS/tts/utils/monotonic_align/core.pyx":26 + * v_cur = value[x, y-1] + * if x == 0: + * if y == 0: # <<<<<<<<<<<<<< + * v_prev = 0. + * else: + */ + __pyx_t_8 = ((__pyx_v_y == 0) != 0); + if (__pyx_t_8) { + + /* "TTS/tts/utils/monotonic_align/core.pyx":27 + * if x == 0: + * if y == 0: + * v_prev = 0. # <<<<<<<<<<<<<< + * else: + * v_prev = max_neg_val + */ + __pyx_v_v_prev = 0.; + + /* "TTS/tts/utils/monotonic_align/core.pyx":26 + * v_cur = value[x, y-1] + * if x == 0: + * if y == 0: # <<<<<<<<<<<<<< + * v_prev = 0. + * else: + */ + goto __pyx_L9; + } + + /* "TTS/tts/utils/monotonic_align/core.pyx":29 + * v_prev = 0. + * else: + * v_prev = max_neg_val # <<<<<<<<<<<<<< + * else: + * v_prev = value[x-1, y-1] + */ + /*else*/ { + __pyx_v_v_prev = __pyx_v_max_neg_val; + } + __pyx_L9:; + + /* "TTS/tts/utils/monotonic_align/core.pyx":25 + * else: + * v_cur = value[x, y-1] + * if x == 0: # <<<<<<<<<<<<<< + * if y == 0: + * v_prev = 0. + */ + goto __pyx_L8; + } + + /* "TTS/tts/utils/monotonic_align/core.pyx":31 + * v_prev = max_neg_val + * else: + * v_prev = value[x-1, y-1] # <<<<<<<<<<<<<< + * value[x, y] = max(v_cur, v_prev) + value[x, y] + * + */ + /*else*/ { + __pyx_t_10 = (__pyx_v_x - 1); + __pyx_t_9 = (__pyx_v_y - 1); + __pyx_v_v_prev = (*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_value.data + __pyx_t_10 * __pyx_v_value.strides[0]) )) + __pyx_t_9)) ))); + } + __pyx_L8:; + + /* "TTS/tts/utils/monotonic_align/core.pyx":32 + * else: + * v_prev = value[x-1, y-1] + * value[x, y] = max(v_cur, v_prev) + value[x, y] # <<<<<<<<<<<<<< + * + * for y in range(t_y - 1, -1, -1): + */ + __pyx_t_11 = __pyx_v_v_prev; + __pyx_t_12 = __pyx_v_v_cur; + if (((__pyx_t_11 > __pyx_t_12) != 0)) { + __pyx_t_13 = __pyx_t_11; + } else { + __pyx_t_13 = __pyx_t_12; + } + __pyx_t_9 = __pyx_v_x; + __pyx_t_10 = __pyx_v_y; + __pyx_t_14 = __pyx_v_x; + __pyx_t_15 = __pyx_v_y; + *((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_value.data + __pyx_t_14 * __pyx_v_value.strides[0]) )) + __pyx_t_15)) )) = (__pyx_t_13 + (*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_value.data + __pyx_t_9 * __pyx_v_value.strides[0]) )) + __pyx_t_10)) )))); + } + } + + /* "TTS/tts/utils/monotonic_align/core.pyx":34 + * value[x, y] = max(v_cur, v_prev) + value[x, y] + * + * for y in range(t_y - 1, -1, -1): # <<<<<<<<<<<<<< + * path[index, y] = 1 + * if index != 0 and (index == y or value[index, y-1] < value[index-1, y-1]): + */ + for (__pyx_t_1 = (__pyx_v_t_y - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { + __pyx_v_y = __pyx_t_1; + + /* "TTS/tts/utils/monotonic_align/core.pyx":35 + * + * for y in range(t_y - 1, -1, -1): + * path[index, y] = 1 # <<<<<<<<<<<<<< + * if index != 0 and (index == y or value[index, y-1] < value[index-1, y-1]): + * index = index - 1 + */ + __pyx_t_10 = __pyx_v_index; + __pyx_t_9 = __pyx_v_y; + *((int *) ( /* dim=1 */ ((char *) (((int *) ( /* dim=0 */ (__pyx_v_path.data + __pyx_t_10 * __pyx_v_path.strides[0]) )) + __pyx_t_9)) )) = 1; + + /* "TTS/tts/utils/monotonic_align/core.pyx":36 + * for y in range(t_y - 1, -1, -1): + * path[index, y] = 1 + * if index != 0 and (index == y or value[index, y-1] < value[index-1, y-1]): # <<<<<<<<<<<<<< + * index = index - 1 + * + */ + __pyx_t_16 = ((__pyx_v_index != 0) != 0); + if (__pyx_t_16) { + } else { + __pyx_t_8 = __pyx_t_16; + goto __pyx_L13_bool_binop_done; + } + __pyx_t_16 = ((__pyx_v_index == __pyx_v_y) != 0); + if (!__pyx_t_16) { + } else { + __pyx_t_8 = __pyx_t_16; + goto __pyx_L13_bool_binop_done; + } + __pyx_t_9 = __pyx_v_index; + __pyx_t_10 = (__pyx_v_y - 1); + __pyx_t_15 = (__pyx_v_index - 1); + __pyx_t_14 = (__pyx_v_y - 1); + __pyx_t_16 = (((*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_value.data + __pyx_t_9 * __pyx_v_value.strides[0]) )) + __pyx_t_10)) ))) < (*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_value.data + __pyx_t_15 * __pyx_v_value.strides[0]) )) + __pyx_t_14)) )))) != 0); + __pyx_t_8 = __pyx_t_16; + __pyx_L13_bool_binop_done:; + if (__pyx_t_8) { + + /* "TTS/tts/utils/monotonic_align/core.pyx":37 + * path[index, y] = 1 + * if index != 0 and (index == y or value[index, y-1] < value[index-1, y-1]): + * index = index - 1 # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_index = (__pyx_v_index - 1); + + /* "TTS/tts/utils/monotonic_align/core.pyx":36 + * for y in range(t_y - 1, -1, -1): + * path[index, y] = 1 + * if index != 0 and (index == y or value[index, y-1] < value[index-1, y-1]): # <<<<<<<<<<<<<< + * index = index - 1 + * + */ + } + } + + /* "TTS/tts/utils/monotonic_align/core.pyx":11 + * @cython.boundscheck(False) + * @cython.wraparound(False) + * cdef void maximum_path_each(int[:,::1] path, float[:,::1] value, int t_x, int t_y, float max_neg_val) nogil: # <<<<<<<<<<<<<< + * cdef int x + * cdef int y + */ + + /* function exit code */ +} + +/* "TTS/tts/utils/monotonic_align/core.pyx":42 + * @cython.boundscheck(False) + * @cython.wraparound(False) + * cpdef void maximum_path_c(int[:,:,::1] paths, float[:,:,::1] values, int[::1] t_xs, int[::1] t_ys, float max_neg_val=-1e9) nogil: # <<<<<<<<<<<<<< + * cdef int b = values.shape[0] + * + */ + +static PyObject *__pyx_pw_3TTS_3tts_5utils_15monotonic_align_4core_1maximum_path_c(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static void __pyx_f_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c(__Pyx_memviewslice __pyx_v_paths, __Pyx_memviewslice __pyx_v_values, __Pyx_memviewslice __pyx_v_t_xs, __Pyx_memviewslice __pyx_v_t_ys, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c *__pyx_optional_args) { + float __pyx_v_max_neg_val = __pyx_k_; + CYTHON_UNUSED int __pyx_v_b; + int __pyx_v_i; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + __Pyx_memviewslice __pyx_t_4 = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } }; + Py_ssize_t __pyx_t_6; + Py_ssize_t __pyx_t_7; + if (__pyx_optional_args) { + if (__pyx_optional_args->__pyx_n > 0) { + __pyx_v_max_neg_val = __pyx_optional_args->max_neg_val; + } + } + + /* "TTS/tts/utils/monotonic_align/core.pyx":43 + * @cython.wraparound(False) + * cpdef void maximum_path_c(int[:,:,::1] paths, float[:,:,::1] values, int[::1] t_xs, int[::1] t_ys, float max_neg_val=-1e9) nogil: + * cdef int b = values.shape[0] # <<<<<<<<<<<<<< + * + * cdef int i + */ + __pyx_v_b = (__pyx_v_values.shape[0]); + + /* "TTS/tts/utils/monotonic_align/core.pyx":46 + * + * cdef int i + * for i in prange(b, nogil=True): # <<<<<<<<<<<<<< + * maximum_path_each(paths[i], values[i], t_xs[i], t_ys[i], max_neg_val) + */ + { + #ifdef WITH_THREAD + PyThreadState *_save; + Py_UNBLOCK_THREADS + __Pyx_FastGIL_Remember(); + #endif + /*try:*/ { + __pyx_t_1 = __pyx_v_b; + if ((1 == 0)) abort(); + { + #if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))))) + #undef likely + #undef unlikely + #define likely(x) (x) + #define unlikely(x) (x) + #endif + __pyx_t_3 = (__pyx_t_1 - 0 + 1 - 1/abs(1)) / 1; + if (__pyx_t_3 > 0) + { + #ifdef _OPENMP + #pragma omp parallel private(__pyx_t_6, __pyx_t_7) firstprivate(__pyx_t_4, __pyx_t_5) + #endif /* _OPENMP */ + { + #ifdef _OPENMP + #pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) + #endif /* _OPENMP */ + for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_3; __pyx_t_2++){ + { + __pyx_v_i = (int)(0 + 1 * __pyx_t_2); + + /* "TTS/tts/utils/monotonic_align/core.pyx":47 + * cdef int i + * for i in prange(b, nogil=True): + * maximum_path_each(paths[i], values[i], t_xs[i], t_ys[i], max_neg_val) # <<<<<<<<<<<<<< + */ + __pyx_t_4.data = __pyx_v_paths.data; + __pyx_t_4.memview = __pyx_v_paths.memview; + __PYX_INC_MEMVIEW(&__pyx_t_4, 0); + { + Py_ssize_t __pyx_tmp_idx = __pyx_v_i; + Py_ssize_t __pyx_tmp_stride = __pyx_v_paths.strides[0]; + __pyx_t_4.data += __pyx_tmp_idx * __pyx_tmp_stride; +} + +__pyx_t_4.shape[0] = __pyx_v_paths.shape[1]; +__pyx_t_4.strides[0] = __pyx_v_paths.strides[1]; + __pyx_t_4.suboffsets[0] = -1; + +__pyx_t_4.shape[1] = __pyx_v_paths.shape[2]; +__pyx_t_4.strides[1] = __pyx_v_paths.strides[2]; + __pyx_t_4.suboffsets[1] = -1; + +__pyx_t_5.data = __pyx_v_values.data; + __pyx_t_5.memview = __pyx_v_values.memview; + __PYX_INC_MEMVIEW(&__pyx_t_5, 0); + { + Py_ssize_t __pyx_tmp_idx = __pyx_v_i; + Py_ssize_t __pyx_tmp_stride = __pyx_v_values.strides[0]; + __pyx_t_5.data += __pyx_tmp_idx * __pyx_tmp_stride; +} + +__pyx_t_5.shape[0] = __pyx_v_values.shape[1]; +__pyx_t_5.strides[0] = __pyx_v_values.strides[1]; + __pyx_t_5.suboffsets[0] = -1; + +__pyx_t_5.shape[1] = __pyx_v_values.shape[2]; +__pyx_t_5.strides[1] = __pyx_v_values.strides[2]; + __pyx_t_5.suboffsets[1] = -1; + +__pyx_t_6 = __pyx_v_i; + __pyx_t_7 = __pyx_v_i; + __pyx_f_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_each(__pyx_t_4, __pyx_t_5, (*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_t_xs.data) + __pyx_t_6)) ))), (*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_t_ys.data) + __pyx_t_7)) ))), __pyx_v_max_neg_val); + __PYX_XDEC_MEMVIEW(&__pyx_t_4, 0); + __pyx_t_4.memview = NULL; + __pyx_t_4.data = NULL; + __PYX_XDEC_MEMVIEW(&__pyx_t_5, 0); + __pyx_t_5.memview = NULL; + __pyx_t_5.data = NULL; + } + } + } + } + } + #if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))))) + #undef likely + #undef unlikely + #define likely(x) __builtin_expect(!!(x), 1) + #define unlikely(x) __builtin_expect(!!(x), 0) + #endif + } + + /* "TTS/tts/utils/monotonic_align/core.pyx":46 + * + * cdef int i + * for i in prange(b, nogil=True): # <<<<<<<<<<<<<< + * maximum_path_each(paths[i], values[i], t_xs[i], t_ys[i], max_neg_val) + */ + /*finally:*/ { + /*normal exit:*/{ + #ifdef WITH_THREAD + __Pyx_FastGIL_Forget(); + Py_BLOCK_THREADS + #endif + goto __pyx_L5; + } + __pyx_L5:; + } + } + + /* "TTS/tts/utils/monotonic_align/core.pyx":42 + * @cython.boundscheck(False) + * @cython.wraparound(False) + * cpdef void maximum_path_c(int[:,:,::1] paths, float[:,:,::1] values, int[::1] t_xs, int[::1] t_ys, float max_neg_val=-1e9) nogil: # <<<<<<<<<<<<<< + * cdef int b = values.shape[0] + * + */ + + /* function exit code */ +} + +/* Python wrapper */ +static PyObject *__pyx_pw_3TTS_3tts_5utils_15monotonic_align_4core_1maximum_path_c(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_3TTS_3tts_5utils_15monotonic_align_4core_1maximum_path_c(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + __Pyx_memviewslice __pyx_v_paths = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_memviewslice __pyx_v_t_xs = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_memviewslice __pyx_v_t_ys = { 0, 0, { 0 }, { 0 }, { 0 } }; + float __pyx_v_max_neg_val; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("maximum_path_c (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_paths,&__pyx_n_s_values,&__pyx_n_s_t_xs,&__pyx_n_s_t_ys,&__pyx_n_s_max_neg_val,0}; + PyObject* values[5] = {0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_paths)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("maximum_path_c", 0, 4, 5, 1); __PYX_ERR(0, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t_xs)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("maximum_path_c", 0, 4, 5, 2); __PYX_ERR(0, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t_ys)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("maximum_path_c", 0, 4, 5, 3); __PYX_ERR(0, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_neg_val); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "maximum_path_c") < 0)) __PYX_ERR(0, 42, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_paths = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_int(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_paths.memview)) __PYX_ERR(0, 42, __pyx_L3_error) + __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 42, __pyx_L3_error) + __pyx_v_t_xs = __Pyx_PyObject_to_MemoryviewSlice_dc_int(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_t_xs.memview)) __PYX_ERR(0, 42, __pyx_L3_error) + __pyx_v_t_ys = __Pyx_PyObject_to_MemoryviewSlice_dc_int(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_t_ys.memview)) __PYX_ERR(0, 42, __pyx_L3_error) + if (values[4]) { + __pyx_v_max_neg_val = __pyx_PyFloat_AsFloat(values[4]); if (unlikely((__pyx_v_max_neg_val == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 42, __pyx_L3_error) + } else { + __pyx_v_max_neg_val = __pyx_k_; + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("maximum_path_c", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 42, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("TTS.tts.utils.monotonic_align.core.maximum_path_c", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c(__pyx_self, __pyx_v_paths, __pyx_v_values, __pyx_v_t_xs, __pyx_v_t_ys, __pyx_v_max_neg_val); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paths, __Pyx_memviewslice __pyx_v_values, __Pyx_memviewslice __pyx_v_t_xs, __Pyx_memviewslice __pyx_v_t_ys, float __pyx_v_max_neg_val) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + struct __pyx_opt_args_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("maximum_path_c", 0); + __Pyx_XDECREF(__pyx_r); + if (unlikely(!__pyx_v_paths.memview)) { __Pyx_RaiseUnboundLocalError("paths"); __PYX_ERR(0, 42, __pyx_L1_error) } + if (unlikely(!__pyx_v_values.memview)) { __Pyx_RaiseUnboundLocalError("values"); __PYX_ERR(0, 42, __pyx_L1_error) } + if (unlikely(!__pyx_v_t_xs.memview)) { __Pyx_RaiseUnboundLocalError("t_xs"); __PYX_ERR(0, 42, __pyx_L1_error) } + if (unlikely(!__pyx_v_t_ys.memview)) { __Pyx_RaiseUnboundLocalError("t_ys"); __PYX_ERR(0, 42, __pyx_L1_error) } + __pyx_t_1.__pyx_n = 1; + __pyx_t_1.max_neg_val = __pyx_v_max_neg_val; + __pyx_f_3TTS_3tts_5utils_15monotonic_align_4core_maximum_path_c(__pyx_v_paths, __pyx_v_values, __pyx_v_t_xs, __pyx_v_t_ys, 0, &__pyx_t_1); + __pyx_t_2 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("TTS.tts.utils.monotonic_align.core.maximum_path_c", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __PYX_XDEC_MEMVIEW(&__pyx_v_paths, 1); + __PYX_XDEC_MEMVIEW(&__pyx_v_values, 1); + __PYX_XDEC_MEMVIEW(&__pyx_v_t_xs, 1); + __PYX_XDEC_MEMVIEW(&__pyx_v_t_ys, 1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":735 + * ctypedef npy_cdouble complex_t + * + * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(1, a) + * + */ + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":736 + * + * cdef inline object PyArray_MultiIterNew1(a): + * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< + * + * cdef inline object PyArray_MultiIterNew2(a, b): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":735 + * ctypedef npy_cdouble complex_t + * + * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(1, a) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":738 + * return PyArray_MultiIterNew(1, a) + * + * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(2, a, b) + * + */ + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":739 + * + * cdef inline object PyArray_MultiIterNew2(a, b): + * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":738 + * return PyArray_MultiIterNew(1, a) + * + * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(2, a, b) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":741 + * return PyArray_MultiIterNew(2, a, b) + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(3, a, b, c) + * + */ + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":742 + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): + * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":741 + * return PyArray_MultiIterNew(2, a, b) + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(3, a, b, c) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":744 + * return PyArray_MultiIterNew(3, a, b, c) + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(4, a, b, c, d) + * + */ + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":745 + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): + * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< + * + * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":744 + * return PyArray_MultiIterNew(3, a, b, c) + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(4, a, b, c, d) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":747 + * return PyArray_MultiIterNew(4, a, b, c, d) + * + * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(5, a, b, c, d, e) + * + */ + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":748 + * + * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): + * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< + * + * cdef inline tuple PyDataType_SHAPE(dtype d): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":747 + * return PyArray_MultiIterNew(4, a, b, c, d) + * + * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(5, a, b, c, d, e) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":750 + * return PyArray_MultiIterNew(5, a, b, c, d, e) + * + * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< + * if PyDataType_HASSUBARRAY(d): + * return d.subarray.shape + */ + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":751 + * + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< + * return d.subarray.shape + * else: + */ + __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); + if (__pyx_t_1) { + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":752 + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): + * return d.subarray.shape # <<<<<<<<<<<<<< + * else: + * return () + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape)); + __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":751 + * + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< + * return d.subarray.shape + * else: + */ + } + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":754 + * return d.subarray.shape + * else: + * return () # <<<<<<<<<<<<<< + * + * + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_empty_tuple); + __pyx_r = __pyx_empty_tuple; + goto __pyx_L0; + } + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":750 + * return PyArray_MultiIterNew(5, a, b, c, d, e) + * + * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< + * if PyDataType_HASSUBARRAY(d): + * return d.subarray.shape + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":929 + * int _import_umath() except -1 + * + * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< + * Py_INCREF(base) # important to do this before stealing the reference below! + * PyArray_SetBaseObject(arr, base) + */ + +static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set_array_base", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":930 + * + * cdef inline void set_array_base(ndarray arr, object base): + * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<< + * PyArray_SetBaseObject(arr, base) + * + */ + Py_INCREF(__pyx_v_base); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":931 + * cdef inline void set_array_base(ndarray arr, object base): + * Py_INCREF(base) # important to do this before stealing the reference below! + * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<< + * + * cdef inline object get_array_base(ndarray arr): + */ + (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":929 + * int _import_umath() except -1 + * + * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< + * Py_INCREF(base) # important to do this before stealing the reference below! + * PyArray_SetBaseObject(arr, base) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":933 + * PyArray_SetBaseObject(arr, base) + * + * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< + * base = PyArray_BASE(arr) + * if base is NULL: + */ + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { + PyObject *__pyx_v_base; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("get_array_base", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":934 + * + * cdef inline object get_array_base(ndarray arr): + * base = PyArray_BASE(arr) # <<<<<<<<<<<<<< + * if base is NULL: + * return None + */ + __pyx_v_base = PyArray_BASE(__pyx_v_arr); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":935 + * cdef inline object get_array_base(ndarray arr): + * base = PyArray_BASE(arr) + * if base is NULL: # <<<<<<<<<<<<<< + * return None + * return base + */ + __pyx_t_1 = ((__pyx_v_base == NULL) != 0); + if (__pyx_t_1) { + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":936 + * base = PyArray_BASE(arr) + * if base is NULL: + * return None # <<<<<<<<<<<<<< + * return base + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":935 + * cdef inline object get_array_base(ndarray arr): + * base = PyArray_BASE(arr) + * if base is NULL: # <<<<<<<<<<<<<< + * return None + * return base + */ + } + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":937 + * if base is NULL: + * return None + * return base # <<<<<<<<<<<<<< + * + * # Versions of the import_* functions which are more suitable for + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_base)); + __pyx_r = ((PyObject *)__pyx_v_base); + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":933 + * PyArray_SetBaseObject(arr, base) + * + * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< + * base = PyArray_BASE(arr) + * if base is NULL: + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":941 + * # Versions of the import_* functions which are more suitable for + * # Cython code. + * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< + * try: + * __pyx_import_array() + */ + +static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("import_array", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":942 + * # Cython code. + * cdef inline int import_array() except -1: + * try: # <<<<<<<<<<<<<< + * __pyx_import_array() + * except Exception: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":943 + * cdef inline int import_array() except -1: + * try: + * __pyx_import_array() # <<<<<<<<<<<<<< + * except Exception: + * raise ImportError("numpy.core.multiarray failed to import") + */ + __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 943, __pyx_L3_error) + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":942 + * # Cython code. + * cdef inline int import_array() except -1: + * try: # <<<<<<<<<<<<<< + * __pyx_import_array() + * except Exception: + */ + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":944 + * try: + * __pyx_import_array() + * except Exception: # <<<<<<<<<<<<<< + * raise ImportError("numpy.core.multiarray failed to import") + * + */ + __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); + if (__pyx_t_4) { + __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 944, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_7); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":945 + * __pyx_import_array() + * except Exception: + * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< + * + * cdef inline int import_umath() except -1: + */ + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 945, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(1, 945, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":942 + * # Cython code. + * cdef inline int import_array() except -1: + * try: # <<<<<<<<<<<<<< + * __pyx_import_array() + * except Exception: + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L8_try_end:; + } + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":941 + * # Versions of the import_* functions which are more suitable for + * # Cython code. + * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< + * try: + * __pyx_import_array() + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":947 + * raise ImportError("numpy.core.multiarray failed to import") + * + * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< + * try: + * _import_umath() + */ + +static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("import_umath", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":948 + * + * cdef inline int import_umath() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":949 + * cdef inline int import_umath() except -1: + * try: + * _import_umath() # <<<<<<<<<<<<<< + * except Exception: + * raise ImportError("numpy.core.umath failed to import") + */ + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 949, __pyx_L3_error) + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":948 + * + * cdef inline int import_umath() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":950 + * try: + * _import_umath() + * except Exception: # <<<<<<<<<<<<<< + * raise ImportError("numpy.core.umath failed to import") + * + */ + __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); + if (__pyx_t_4) { + __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 950, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_7); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":951 + * _import_umath() + * except Exception: + * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< + * + * cdef inline int import_ufunc() except -1: + */ + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 951, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(1, 951, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":948 + * + * cdef inline int import_umath() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L8_try_end:; + } + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":947 + * raise ImportError("numpy.core.multiarray failed to import") + * + * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< + * try: + * _import_umath() + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":953 + * raise ImportError("numpy.core.umath failed to import") + * + * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< + * try: + * _import_umath() + */ + +static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("import_ufunc", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":954 + * + * cdef inline int import_ufunc() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":955 + * cdef inline int import_ufunc() except -1: + * try: + * _import_umath() # <<<<<<<<<<<<<< + * except Exception: + * raise ImportError("numpy.core.umath failed to import") + */ + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 955, __pyx_L3_error) + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":954 + * + * cdef inline int import_ufunc() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":956 + * try: + * _import_umath() + * except Exception: # <<<<<<<<<<<<<< + * raise ImportError("numpy.core.umath failed to import") + * + */ + __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); + if (__pyx_t_4) { + __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 956, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_7); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":957 + * _import_umath() + * except Exception: + * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< + * + * cdef extern from *: + */ + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 957, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(1, 957, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":954 + * + * cdef inline int import_ufunc() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L8_try_end:; + } + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":953 + * raise ImportError("numpy.core.umath failed to import") + * + * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< + * try: + * _import_umath() + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":967 + * + * + * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< + * """ + * Cython equivalent of `isinstance(obj, np.timedelta64)` + */ + +static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("is_timedelta64_object", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":979 + * bool + * """ + * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":967 + * + * + * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< + * """ + * Cython equivalent of `isinstance(obj, np.timedelta64)` + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":982 + * + * + * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< + * """ + * Cython equivalent of `isinstance(obj, np.datetime64)` + */ + +static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("is_datetime64_object", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":994 + * bool + * """ + * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":982 + * + * + * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< + * """ + * Cython equivalent of `isinstance(obj, np.datetime64)` + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":997 + * + * + * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< + * """ + * returns the int64 value underlying scalar numpy datetime64 object + */ + +static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { + npy_datetime __pyx_r; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":1004 + * also needed. That can be found using `get_datetime64_unit`. + * """ + * return (obj).obval # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":997 + * + * + * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< + * """ + * returns the int64 value underlying scalar numpy datetime64 object + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":1007 + * + * + * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< + * """ + * returns the int64 value underlying scalar numpy timedelta64 object + */ + +static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { + npy_timedelta __pyx_r; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":1011 + * returns the int64 value underlying scalar numpy timedelta64 object + * """ + * return (obj).obval # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":1007 + * + * + * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< + * """ + * returns the int64 value underlying scalar numpy timedelta64 object + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":1014 + * + * + * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< + * """ + * returns the unit part of the dtype for a numpy datetime64 object. + */ + +static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { + NPY_DATETIMEUNIT __pyx_r; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":1018 + * returns the unit part of the dtype for a numpy datetime64 object. + * """ + * return (obj).obmeta.base # <<<<<<<<<<<<<< + */ + __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); + goto __pyx_L0; + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":1014 + * + * + * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< + * """ + * returns the unit part of the dtype for a numpy datetime64 object. + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":122 + * cdef bint dtype_is_object + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< + * mode="c", bint allocate_buffer=True): + * + */ + +/* Python wrapper */ +static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_shape = 0; + Py_ssize_t __pyx_v_itemsize; + PyObject *__pyx_v_format = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_v_allocate_buffer; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)__pyx_n_s_c); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(2, 122, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(2, 122, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocate_buffer); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 122, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_shape = ((PyObject*)values[0]); + __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 122, __pyx_L3_error) + __pyx_v_format = values[2]; + __pyx_v_mode = values[3]; + if (values[4]) { + __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 123, __pyx_L3_error) + } else { + + /* "View.MemoryView":123 + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, + * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<< + * + * cdef int idx + */ + __pyx_v_allocate_buffer = ((int)1); + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 122, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(2, 122, __pyx_L1_error) + if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) { + PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(2, 122, __pyx_L1_error) + } + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer); + + /* "View.MemoryView":122 + * cdef bint dtype_is_object + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< + * mode="c", bint allocate_buffer=True): + * + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) { + int __pyx_v_idx; + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_dim; + PyObject **__pyx_v_p; + char __pyx_v_order; + int __pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + char *__pyx_t_7; + int __pyx_t_8; + Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + Py_ssize_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__cinit__", 0); + __Pyx_INCREF(__pyx_v_format); + + /* "View.MemoryView":129 + * cdef PyObject **p + * + * self.ndim = len(shape) # <<<<<<<<<<<<<< + * self.itemsize = itemsize + * + */ + if (unlikely(__pyx_v_shape == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); + __PYX_ERR(2, 129, __pyx_L1_error) + } + __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(2, 129, __pyx_L1_error) + __pyx_v_self->ndim = ((int)__pyx_t_1); + + /* "View.MemoryView":130 + * + * self.ndim = len(shape) + * self.itemsize = itemsize # <<<<<<<<<<<<<< + * + * if not self.ndim: + */ + __pyx_v_self->itemsize = __pyx_v_itemsize; + + /* "View.MemoryView":132 + * self.itemsize = itemsize + * + * if not self.ndim: # <<<<<<<<<<<<<< + * raise ValueError("Empty shape tuple for cython.array") + * + */ + __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":133 + * + * if not self.ndim: + * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< + * + * if itemsize <= 0: + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 133, __pyx_L1_error) + + /* "View.MemoryView":132 + * self.itemsize = itemsize + * + * if not self.ndim: # <<<<<<<<<<<<<< + * raise ValueError("Empty shape tuple for cython.array") + * + */ + } + + /* "View.MemoryView":135 + * raise ValueError("Empty shape tuple for cython.array") + * + * if itemsize <= 0: # <<<<<<<<<<<<<< + * raise ValueError("itemsize <= 0 for cython.array") + * + */ + __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":136 + * + * if itemsize <= 0: + * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< + * + * if not isinstance(format, bytes): + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 136, __pyx_L1_error) + + /* "View.MemoryView":135 + * raise ValueError("Empty shape tuple for cython.array") + * + * if itemsize <= 0: # <<<<<<<<<<<<<< + * raise ValueError("itemsize <= 0 for cython.array") + * + */ + } + + /* "View.MemoryView":138 + * raise ValueError("itemsize <= 0 for cython.array") + * + * if not isinstance(format, bytes): # <<<<<<<<<<<<<< + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string + */ + __pyx_t_2 = PyBytes_Check(__pyx_v_format); + __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":139 + * + * if not isinstance(format, bytes): + * format = format.encode('ASCII') # <<<<<<<<<<<<<< + * self._format = format # keep a reference to the byte string + * self.format = self._format + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_n_s_ASCII) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_ASCII); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":138 + * raise ValueError("itemsize <= 0 for cython.array") + * + * if not isinstance(format, bytes): # <<<<<<<<<<<<<< + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string + */ + } + + /* "View.MemoryView":140 + * if not isinstance(format, bytes): + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<< + * self.format = self._format + * + */ + if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(2, 140, __pyx_L1_error) + __pyx_t_3 = __pyx_v_format; + __Pyx_INCREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_self->_format); + __Pyx_DECREF(__pyx_v_self->_format); + __pyx_v_self->_format = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":141 + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string + * self.format = self._format # <<<<<<<<<<<<<< + * + * + */ + if (unlikely(__pyx_v_self->_format == Py_None)) { + PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); + __PYX_ERR(2, 141, __pyx_L1_error) + } + __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(2, 141, __pyx_L1_error) + __pyx_v_self->format = __pyx_t_7; + + /* "View.MemoryView":144 + * + * + * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<< + * self._strides = self._shape + self.ndim + * + */ + __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2))); + + /* "View.MemoryView":145 + * + * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) + * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<< + * + * if not self._shape: + */ + __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim); + + /* "View.MemoryView":147 + * self._strides = self._shape + self.ndim + * + * if not self._shape: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate shape and strides.") + * + */ + __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":148 + * + * if not self._shape: + * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 148, __pyx_L1_error) + + /* "View.MemoryView":147 + * self._strides = self._shape + self.ndim + * + * if not self._shape: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate shape and strides.") + * + */ + } + + /* "View.MemoryView":151 + * + * + * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + */ + __pyx_t_8 = 0; + __pyx_t_3 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0; + for (;;) { + if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(2, 151, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 151, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_dim = __pyx_t_9; + __pyx_v_idx = __pyx_t_8; + __pyx_t_8 = (__pyx_t_8 + 1); + + /* "View.MemoryView":152 + * + * for idx, dim in enumerate(shape): + * if dim <= 0: # <<<<<<<<<<<<<< + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + * self._shape[idx] = dim + */ + __pyx_t_4 = ((__pyx_v_dim <= 0) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":153 + * for idx, dim in enumerate(shape): + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) # <<<<<<<<<<<<<< + * self._shape[idx] = dim + * + */ + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(2, 153, __pyx_L1_error) + + /* "View.MemoryView":152 + * + * for idx, dim in enumerate(shape): + * if dim <= 0: # <<<<<<<<<<<<<< + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + * self._shape[idx] = dim + */ + } + + /* "View.MemoryView":154 + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + * self._shape[idx] = dim # <<<<<<<<<<<<<< + * + * cdef char order + */ + (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim; + + /* "View.MemoryView":151 + * + * + * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":157 + * + * cdef char order + * if mode == 'fortran': # <<<<<<<<<<<<<< + * order = b'F' + * self.mode = u'fortran' + */ + __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 157, __pyx_L1_error) + if (__pyx_t_4) { + + /* "View.MemoryView":158 + * cdef char order + * if mode == 'fortran': + * order = b'F' # <<<<<<<<<<<<<< + * self.mode = u'fortran' + * elif mode == 'c': + */ + __pyx_v_order = 'F'; + + /* "View.MemoryView":159 + * if mode == 'fortran': + * order = b'F' + * self.mode = u'fortran' # <<<<<<<<<<<<<< + * elif mode == 'c': + * order = b'C' + */ + __Pyx_INCREF(__pyx_n_u_fortran); + __Pyx_GIVEREF(__pyx_n_u_fortran); + __Pyx_GOTREF(__pyx_v_self->mode); + __Pyx_DECREF(__pyx_v_self->mode); + __pyx_v_self->mode = __pyx_n_u_fortran; + + /* "View.MemoryView":157 + * + * cdef char order + * if mode == 'fortran': # <<<<<<<<<<<<<< + * order = b'F' + * self.mode = u'fortran' + */ + goto __pyx_L10; + } + + /* "View.MemoryView":160 + * order = b'F' + * self.mode = u'fortran' + * elif mode == 'c': # <<<<<<<<<<<<<< + * order = b'C' + * self.mode = u'c' + */ + __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 160, __pyx_L1_error) + if (likely(__pyx_t_4)) { + + /* "View.MemoryView":161 + * self.mode = u'fortran' + * elif mode == 'c': + * order = b'C' # <<<<<<<<<<<<<< + * self.mode = u'c' + * else: + */ + __pyx_v_order = 'C'; + + /* "View.MemoryView":162 + * elif mode == 'c': + * order = b'C' + * self.mode = u'c' # <<<<<<<<<<<<<< + * else: + * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) + */ + __Pyx_INCREF(__pyx_n_u_c); + __Pyx_GIVEREF(__pyx_n_u_c); + __Pyx_GOTREF(__pyx_v_self->mode); + __Pyx_DECREF(__pyx_v_self->mode); + __pyx_v_self->mode = __pyx_n_u_c; + + /* "View.MemoryView":160 + * order = b'F' + * self.mode = u'fortran' + * elif mode == 'c': # <<<<<<<<<<<<<< + * order = b'C' + * self.mode = u'c' + */ + goto __pyx_L10; + } + + /* "View.MemoryView":164 + * self.mode = u'c' + * else: + * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) # <<<<<<<<<<<<<< + * + * self.len = fill_contig_strides_array(self._shape, self._strides, + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(2, 164, __pyx_L1_error) + } + __pyx_L10:; + + /* "View.MemoryView":166 + * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) + * + * self.len = fill_contig_strides_array(self._shape, self._strides, # <<<<<<<<<<<<<< + * itemsize, self.ndim, order) + * + */ + __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order); + + /* "View.MemoryView":169 + * itemsize, self.ndim, order) + * + * self.free_data = allocate_buffer # <<<<<<<<<<<<<< + * self.dtype_is_object = format == b'O' + * if allocate_buffer: + */ + __pyx_v_self->free_data = __pyx_v_allocate_buffer; + + /* "View.MemoryView":170 + * + * self.free_data = allocate_buffer + * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<< + * if allocate_buffer: + * + */ + __pyx_t_10 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 170, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 170, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_v_self->dtype_is_object = __pyx_t_4; + + /* "View.MemoryView":171 + * self.free_data = allocate_buffer + * self.dtype_is_object = format == b'O' + * if allocate_buffer: # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_4 = (__pyx_v_allocate_buffer != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":174 + * + * + * self.data = malloc(self.len) # <<<<<<<<<<<<<< + * if not self.data: + * raise MemoryError("unable to allocate array data.") + */ + __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len)); + + /* "View.MemoryView":175 + * + * self.data = malloc(self.len) + * if not self.data: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate array data.") + * + */ + __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":176 + * self.data = malloc(self.len) + * if not self.data: + * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< + * + * if self.dtype_is_object: + */ + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(2, 176, __pyx_L1_error) + + /* "View.MemoryView":175 + * + * self.data = malloc(self.len) + * if not self.data: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate array data.") + * + */ + } + + /* "View.MemoryView":178 + * raise MemoryError("unable to allocate array data.") + * + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * p = self.data + * for i in range(self.len / itemsize): + */ + __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":179 + * + * if self.dtype_is_object: + * p = self.data # <<<<<<<<<<<<<< + * for i in range(self.len / itemsize): + * p[i] = Py_None + */ + __pyx_v_p = ((PyObject **)__pyx_v_self->data); + + /* "View.MemoryView":180 + * if self.dtype_is_object: + * p = self.data + * for i in range(self.len / itemsize): # <<<<<<<<<<<<<< + * p[i] = Py_None + * Py_INCREF(Py_None) + */ + if (unlikely(__pyx_v_itemsize == 0)) { + PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); + __PYX_ERR(2, 180, __pyx_L1_error) + } + else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) { + PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); + __PYX_ERR(2, 180, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_itemsize); + __pyx_t_9 = __pyx_t_1; + for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_9; __pyx_t_11+=1) { + __pyx_v_i = __pyx_t_11; + + /* "View.MemoryView":181 + * p = self.data + * for i in range(self.len / itemsize): + * p[i] = Py_None # <<<<<<<<<<<<<< + * Py_INCREF(Py_None) + * + */ + (__pyx_v_p[__pyx_v_i]) = Py_None; + + /* "View.MemoryView":182 + * for i in range(self.len / itemsize): + * p[i] = Py_None + * Py_INCREF(Py_None) # <<<<<<<<<<<<<< + * + * @cname('getbuffer') + */ + Py_INCREF(Py_None); + } + + /* "View.MemoryView":178 + * raise MemoryError("unable to allocate array data.") + * + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * p = self.data + * for i in range(self.len / itemsize): + */ + } + + /* "View.MemoryView":171 + * self.free_data = allocate_buffer + * self.dtype_is_object = format == b'O' + * if allocate_buffer: # <<<<<<<<<<<<<< + * + * + */ + } + + /* "View.MemoryView":122 + * cdef bint dtype_is_object + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< + * mode="c", bint allocate_buffer=True): + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_format); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":185 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * cdef int bufmode = -1 + * if self.mode == u"c": + */ + +/* Python wrapper */ +static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_v_bufmode; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + char *__pyx_t_4; + Py_ssize_t __pyx_t_5; + int __pyx_t_6; + Py_ssize_t *__pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + if (__pyx_v_info == NULL) { + PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); + return -1; + } + __Pyx_RefNannySetupContext("__getbuffer__", 0); + __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(__pyx_v_info->obj); + + /* "View.MemoryView":186 + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): + * cdef int bufmode = -1 # <<<<<<<<<<<<<< + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + */ + __pyx_v_bufmode = -1; + + /* "View.MemoryView":187 + * def __getbuffer__(self, Py_buffer *info, int flags): + * cdef int bufmode = -1 + * if self.mode == u"c": # <<<<<<<<<<<<<< + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": + */ + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 187, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":188 + * cdef int bufmode = -1 + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + */ + __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); + + /* "View.MemoryView":187 + * def __getbuffer__(self, Py_buffer *info, int flags): + * cdef int bufmode = -1 + * if self.mode == u"c": # <<<<<<<<<<<<<< + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": + */ + goto __pyx_L3; + } + + /* "View.MemoryView":189 + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": # <<<<<<<<<<<<<< + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + */ + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 189, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":190 + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") + */ + __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); + + /* "View.MemoryView":189 + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": # <<<<<<<<<<<<<< + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + */ + } + __pyx_L3:; + + /* "View.MemoryView":191 + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): # <<<<<<<<<<<<<< + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data + */ + __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":192 + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< + * info.buf = self.data + * info.len = self.len + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 192, __pyx_L1_error) + + /* "View.MemoryView":191 + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): # <<<<<<<<<<<<<< + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data + */ + } + + /* "View.MemoryView":193 + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data # <<<<<<<<<<<<<< + * info.len = self.len + * info.ndim = self.ndim + */ + __pyx_t_4 = __pyx_v_self->data; + __pyx_v_info->buf = __pyx_t_4; + + /* "View.MemoryView":194 + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data + * info.len = self.len # <<<<<<<<<<<<<< + * info.ndim = self.ndim + * info.shape = self._shape + */ + __pyx_t_5 = __pyx_v_self->len; + __pyx_v_info->len = __pyx_t_5; + + /* "View.MemoryView":195 + * info.buf = self.data + * info.len = self.len + * info.ndim = self.ndim # <<<<<<<<<<<<<< + * info.shape = self._shape + * info.strides = self._strides + */ + __pyx_t_6 = __pyx_v_self->ndim; + __pyx_v_info->ndim = __pyx_t_6; + + /* "View.MemoryView":196 + * info.len = self.len + * info.ndim = self.ndim + * info.shape = self._shape # <<<<<<<<<<<<<< + * info.strides = self._strides + * info.suboffsets = NULL + */ + __pyx_t_7 = __pyx_v_self->_shape; + __pyx_v_info->shape = __pyx_t_7; + + /* "View.MemoryView":197 + * info.ndim = self.ndim + * info.shape = self._shape + * info.strides = self._strides # <<<<<<<<<<<<<< + * info.suboffsets = NULL + * info.itemsize = self.itemsize + */ + __pyx_t_7 = __pyx_v_self->_strides; + __pyx_v_info->strides = __pyx_t_7; + + /* "View.MemoryView":198 + * info.shape = self._shape + * info.strides = self._strides + * info.suboffsets = NULL # <<<<<<<<<<<<<< + * info.itemsize = self.itemsize + * info.readonly = 0 + */ + __pyx_v_info->suboffsets = NULL; + + /* "View.MemoryView":199 + * info.strides = self._strides + * info.suboffsets = NULL + * info.itemsize = self.itemsize # <<<<<<<<<<<<<< + * info.readonly = 0 + * + */ + __pyx_t_5 = __pyx_v_self->itemsize; + __pyx_v_info->itemsize = __pyx_t_5; + + /* "View.MemoryView":200 + * info.suboffsets = NULL + * info.itemsize = self.itemsize + * info.readonly = 0 # <<<<<<<<<<<<<< + * + * if flags & PyBUF_FORMAT: + */ + __pyx_v_info->readonly = 0; + + /* "View.MemoryView":202 + * info.readonly = 0 + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.format + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":203 + * + * if flags & PyBUF_FORMAT: + * info.format = self.format # <<<<<<<<<<<<<< + * else: + * info.format = NULL + */ + __pyx_t_4 = __pyx_v_self->format; + __pyx_v_info->format = __pyx_t_4; + + /* "View.MemoryView":202 + * info.readonly = 0 + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.format + * else: + */ + goto __pyx_L5; + } + + /* "View.MemoryView":205 + * info.format = self.format + * else: + * info.format = NULL # <<<<<<<<<<<<<< + * + * info.obj = self + */ + /*else*/ { + __pyx_v_info->format = NULL; + } + __pyx_L5:; + + /* "View.MemoryView":207 + * info.format = NULL + * + * info.obj = self # <<<<<<<<<<<<<< + * + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); + __pyx_v_info->obj = ((PyObject *)__pyx_v_self); + + /* "View.MemoryView":185 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * cdef int bufmode = -1 + * if self.mode == u"c": + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + if (__pyx_v_info->obj != NULL) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + goto __pyx_L2; + __pyx_L0:; + if (__pyx_v_info->obj == Py_None) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + __pyx_L2:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":211 + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") + * + * def __dealloc__(array self): # <<<<<<<<<<<<<< + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + */ + +/* Python wrapper */ +static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_array___dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) { + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "View.MemoryView":212 + * + * def __dealloc__(array self): + * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< + * self.callback_free_data(self.data) + * elif self.free_data: + */ + __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":213 + * def __dealloc__(array self): + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) # <<<<<<<<<<<<<< + * elif self.free_data: + * if self.dtype_is_object: + */ + __pyx_v_self->callback_free_data(__pyx_v_self->data); + + /* "View.MemoryView":212 + * + * def __dealloc__(array self): + * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< + * self.callback_free_data(self.data) + * elif self.free_data: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":214 + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + * elif self.free_data: # <<<<<<<<<<<<<< + * if self.dtype_is_object: + * refcount_objects_in_slice(self.data, self._shape, + */ + __pyx_t_1 = (__pyx_v_self->free_data != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":215 + * self.callback_free_data(self.data) + * elif self.free_data: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice(self.data, self._shape, + * self._strides, self.ndim, False) + */ + __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":216 + * elif self.free_data: + * if self.dtype_is_object: + * refcount_objects_in_slice(self.data, self._shape, # <<<<<<<<<<<<<< + * self._strides, self.ndim, False) + * free(self.data) + */ + __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0); + + /* "View.MemoryView":215 + * self.callback_free_data(self.data) + * elif self.free_data: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice(self.data, self._shape, + * self._strides, self.ndim, False) + */ + } + + /* "View.MemoryView":218 + * refcount_objects_in_slice(self.data, self._shape, + * self._strides, self.ndim, False) + * free(self.data) # <<<<<<<<<<<<<< + * PyObject_Free(self._shape) + * + */ + free(__pyx_v_self->data); + + /* "View.MemoryView":214 + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + * elif self.free_data: # <<<<<<<<<<<<<< + * if self.dtype_is_object: + * refcount_objects_in_slice(self.data, self._shape, + */ + } + __pyx_L3:; + + /* "View.MemoryView":219 + * self._strides, self.ndim, False) + * free(self.data) + * PyObject_Free(self._shape) # <<<<<<<<<<<<<< + * + * @property + */ + PyObject_Free(__pyx_v_self->_shape); + + /* "View.MemoryView":211 + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") + * + * def __dealloc__(array self): # <<<<<<<<<<<<<< + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":222 + * + * @property + * def memview(self): # <<<<<<<<<<<<<< + * return self.get_memview() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":223 + * @property + * def memview(self): + * return self.get_memview() # <<<<<<<<<<<<<< + * + * @cname('get_memview') + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":222 + * + * @property + * def memview(self): # <<<<<<<<<<<<<< + * return self.get_memview() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":226 + * + * @cname('get_memview') + * cdef get_memview(self): # <<<<<<<<<<<<<< + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE + * return memoryview(self, flags, self.dtype_is_object) + */ + +static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) { + int __pyx_v_flags; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_memview", 0); + + /* "View.MemoryView":227 + * @cname('get_memview') + * cdef get_memview(self): + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<< + * return memoryview(self, flags, self.dtype_is_object) + * + */ + __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE); + + /* "View.MemoryView":228 + * cdef get_memview(self): + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE + * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<< + * + * def __len__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":226 + * + * @cname('get_memview') + * cdef get_memview(self): # <<<<<<<<<<<<<< + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE + * return memoryview(self, flags, self.dtype_is_object) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":230 + * return memoryview(self, flags, self.dtype_is_object) + * + * def __len__(self): # <<<<<<<<<<<<<< + * return self._shape[0] + * + */ + +/* Python wrapper */ +static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__len__", 0); + + /* "View.MemoryView":231 + * + * def __len__(self): + * return self._shape[0] # <<<<<<<<<<<<<< + * + * def __getattr__(self, attr): + */ + __pyx_r = (__pyx_v_self->_shape[0]); + goto __pyx_L0; + + /* "View.MemoryView":230 + * return memoryview(self, flags, self.dtype_is_object) + * + * def __len__(self): # <<<<<<<<<<<<<< + * return self._shape[0] + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":233 + * return self._shape[0] + * + * def __getattr__(self, attr): # <<<<<<<<<<<<<< + * return getattr(self.memview, attr) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/ +static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getattr__", 0); + + /* "View.MemoryView":234 + * + * def __getattr__(self, attr): + * return getattr(self.memview, attr) # <<<<<<<<<<<<<< + * + * def __getitem__(self, item): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":233 + * return self._shape[0] + * + * def __getattr__(self, attr): # <<<<<<<<<<<<<< + * return getattr(self.memview, attr) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":236 + * return getattr(self.memview, attr) + * + * def __getitem__(self, item): # <<<<<<<<<<<<<< + * return self.memview[item] + * + */ + +/* Python wrapper */ +static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ +static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getitem__", 0); + + /* "View.MemoryView":237 + * + * def __getitem__(self, item): + * return self.memview[item] # <<<<<<<<<<<<<< + * + * def __setitem__(self, item, value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":236 + * return getattr(self.memview, attr) + * + * def __getitem__(self, item): # <<<<<<<<<<<<<< + * return self.memview[item] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":239 + * return self.memview[item] + * + * def __setitem__(self, item, value): # <<<<<<<<<<<<<< + * self.memview[item] = value + * + */ + +/* Python wrapper */ +static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setitem__", 0); + + /* "View.MemoryView":240 + * + * def __setitem__(self, item, value): + * self.memview[item] = value # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(2, 240, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "View.MemoryView":239 + * return self.memview[item] + * + * def __setitem__(self, item, value): # <<<<<<<<<<<<<< + * self.memview[item] = value + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(2, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(2, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":244 + * + * @cname("__pyx_array_new") + * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< + * char *mode, char *buf): + * cdef array result + */ + +static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_mode, char *__pyx_v_buf) { + struct __pyx_array_obj *__pyx_v_result = 0; + struct __pyx_array_obj *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("array_cwrapper", 0); + + /* "View.MemoryView":248 + * cdef array result + * + * if buf == NULL: # <<<<<<<<<<<<<< + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + */ + __pyx_t_1 = ((__pyx_v_buf == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":249 + * + * if buf == NULL: + * result = array(shape, itemsize, format, mode.decode('ASCII')) # <<<<<<<<<<<<<< + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), + */ + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_shape); + __Pyx_GIVEREF(__pyx_v_shape); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "View.MemoryView":248 + * cdef array result + * + * if buf == NULL: # <<<<<<<<<<<<<< + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":251 + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< + * allocate_buffer=False) + * result.data = buf + */ + /*else*/ { + __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_shape); + __Pyx_GIVEREF(__pyx_v_shape); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_3 = 0; + + /* "View.MemoryView":252 + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), + * allocate_buffer=False) # <<<<<<<<<<<<<< + * result.data = buf + * + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(2, 252, __pyx_L1_error) + + /* "View.MemoryView":251 + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< + * allocate_buffer=False) + * result.data = buf + */ + __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "View.MemoryView":253 + * result = array(shape, itemsize, format, mode.decode('ASCII'), + * allocate_buffer=False) + * result.data = buf # <<<<<<<<<<<<<< + * + * return result + */ + __pyx_v_result->data = __pyx_v_buf; + } + __pyx_L3:; + + /* "View.MemoryView":255 + * result.data = buf + * + * return result # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = __pyx_v_result; + goto __pyx_L0; + + /* "View.MemoryView":244 + * + * @cname("__pyx_array_new") + * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< + * char *mode, char *buf): + * cdef array result + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":281 + * cdef class Enum(object): + * cdef object name + * def __init__(self, name): # <<<<<<<<<<<<<< + * self.name = name + * def __repr__(self): + */ + +/* Python wrapper */ +static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(2, 281, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 281, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__", 0); + + /* "View.MemoryView":282 + * cdef object name + * def __init__(self, name): + * self.name = name # <<<<<<<<<<<<<< + * def __repr__(self): + * return self.name + */ + __Pyx_INCREF(__pyx_v_name); + __Pyx_GIVEREF(__pyx_v_name); + __Pyx_GOTREF(__pyx_v_self->name); + __Pyx_DECREF(__pyx_v_self->name); + __pyx_v_self->name = __pyx_v_name; + + /* "View.MemoryView":281 + * cdef class Enum(object): + * cdef object name + * def __init__(self, name): # <<<<<<<<<<<<<< + * self.name = name + * def __repr__(self): + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":283 + * def __init__(self, name): + * self.name = name + * def __repr__(self): # <<<<<<<<<<<<<< + * return self.name + * + */ + +/* Python wrapper */ +static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__", 0); + + /* "View.MemoryView":284 + * self.name = name + * def __repr__(self): + * return self.name # <<<<<<<<<<<<<< + * + * cdef generic = Enum("") + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->name); + __pyx_r = __pyx_v_self->name; + goto __pyx_L0; + + /* "View.MemoryView":283 + * def __init__(self, name): + * self.name = name + * def __repr__(self): # <<<<<<<<<<<<<< + * return self.name + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef tuple state + * cdef object _dict + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { + PyObject *__pyx_v_state = 0; + PyObject *__pyx_v__dict = 0; + int __pyx_v_use_setstate; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":5 + * cdef object _dict + * cdef bint use_setstate + * state = (self.name,) # <<<<<<<<<<<<<< + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: + */ + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_self->name); + __Pyx_GIVEREF(__pyx_v_self->name); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name); + __pyx_v_state = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "(tree fragment)":6 + * cdef bint use_setstate + * state = (self.name,) + * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< + * if _dict is not None: + * state += (_dict,) + */ + __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v__dict = __pyx_t_1; + __pyx_t_1 = 0; + + /* "(tree fragment)":7 + * state = (self.name,) + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: # <<<<<<<<<<<<<< + * state += (_dict,) + * use_setstate = True + */ + __pyx_t_2 = (__pyx_v__dict != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "(tree fragment)":8 + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: + * state += (_dict,) # <<<<<<<<<<<<<< + * use_setstate = True + * else: + */ + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v__dict); + __Pyx_GIVEREF(__pyx_v__dict); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict); + __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "(tree fragment)":9 + * if _dict is not None: + * state += (_dict,) + * use_setstate = True # <<<<<<<<<<<<<< + * else: + * use_setstate = self.name is not None + */ + __pyx_v_use_setstate = 1; + + /* "(tree fragment)":7 + * state = (self.name,) + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: # <<<<<<<<<<<<<< + * state += (_dict,) + * use_setstate = True + */ + goto __pyx_L3; + } + + /* "(tree fragment)":11 + * use_setstate = True + * else: + * use_setstate = self.name is not None # <<<<<<<<<<<<<< + * if use_setstate: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + */ + /*else*/ { + __pyx_t_3 = (__pyx_v_self->name != Py_None); + __pyx_v_use_setstate = __pyx_t_3; + } + __pyx_L3:; + + /* "(tree fragment)":12 + * else: + * use_setstate = self.name is not None + * if use_setstate: # <<<<<<<<<<<<<< + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + * else: + */ + __pyx_t_3 = (__pyx_v_use_setstate != 0); + if (__pyx_t_3) { + + /* "(tree fragment)":13 + * use_setstate = self.name is not None + * if use_setstate: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state # <<<<<<<<<<<<<< + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_INCREF(__pyx_int_184977713); + __Pyx_GIVEREF(__pyx_int_184977713); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state); + __pyx_t_4 = 0; + __pyx_t_1 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "(tree fragment)":12 + * else: + * use_setstate = self.name is not None + * if use_setstate: # <<<<<<<<<<<<<< + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + * else: + */ + } + + /* "(tree fragment)":15 + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * __pyx_unpickle_Enum__set_state(self, __pyx_state) + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_INCREF(__pyx_int_184977713); + __Pyx_GIVEREF(__pyx_int_184977713); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __pyx_t_5 = 0; + __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + } + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef tuple state + * cdef object _dict + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_state); + __Pyx_XDECREF(__pyx_v__dict); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":16 + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state(self, __pyx_state) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":17 + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + * def __setstate_cython__(self, __pyx_state): + * __pyx_unpickle_Enum__set_state(self, __pyx_state) # <<<<<<<<<<<<<< + */ + if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 17, __pyx_L1_error) + __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":16 + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state(self, __pyx_state) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":298 + * + * @cname('__pyx_align_pointer') + * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< + * "Align pointer memory on a given boundary" + * cdef Py_intptr_t aligned_p = memory + */ + +static void *__pyx_align_pointer(void *__pyx_v_memory, size_t __pyx_v_alignment) { + Py_intptr_t __pyx_v_aligned_p; + size_t __pyx_v_offset; + void *__pyx_r; + int __pyx_t_1; + + /* "View.MemoryView":300 + * cdef void *align_pointer(void *memory, size_t alignment) nogil: + * "Align pointer memory on a given boundary" + * cdef Py_intptr_t aligned_p = memory # <<<<<<<<<<<<<< + * cdef size_t offset + * + */ + __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory); + + /* "View.MemoryView":304 + * + * with cython.cdivision(True): + * offset = aligned_p % alignment # <<<<<<<<<<<<<< + * + * if offset > 0: + */ + __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment); + + /* "View.MemoryView":306 + * offset = aligned_p % alignment + * + * if offset > 0: # <<<<<<<<<<<<<< + * aligned_p += alignment - offset + * + */ + __pyx_t_1 = ((__pyx_v_offset > 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":307 + * + * if offset > 0: + * aligned_p += alignment - offset # <<<<<<<<<<<<<< + * + * return aligned_p + */ + __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset)); + + /* "View.MemoryView":306 + * offset = aligned_p % alignment + * + * if offset > 0: # <<<<<<<<<<<<<< + * aligned_p += alignment - offset + * + */ + } + + /* "View.MemoryView":309 + * aligned_p += alignment - offset + * + * return aligned_p # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = ((void *)__pyx_v_aligned_p); + goto __pyx_L0; + + /* "View.MemoryView":298 + * + * @cname('__pyx_align_pointer') + * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< + * "Align pointer memory on a given boundary" + * cdef Py_intptr_t aligned_p = memory + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":345 + * cdef __Pyx_TypeInfo *typeinfo + * + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< + * self.obj = obj + * self.flags = flags + */ + +/* Python wrapper */ +static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_obj = 0; + int __pyx_v_flags; + int __pyx_v_dtype_is_object; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(2, 345, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype_is_object); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 345, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_obj = values[0]; + __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L3_error) + if (values[2]) { + __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L3_error) + } else { + __pyx_v_dtype_is_object = ((int)0); + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 345, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "View.MemoryView":346 + * + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): + * self.obj = obj # <<<<<<<<<<<<<< + * self.flags = flags + * if type(self) is memoryview or obj is not None: + */ + __Pyx_INCREF(__pyx_v_obj); + __Pyx_GIVEREF(__pyx_v_obj); + __Pyx_GOTREF(__pyx_v_self->obj); + __Pyx_DECREF(__pyx_v_self->obj); + __pyx_v_self->obj = __pyx_v_obj; + + /* "View.MemoryView":347 + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): + * self.obj = obj + * self.flags = flags # <<<<<<<<<<<<<< + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) + */ + __pyx_v_self->flags = __pyx_v_flags; + + /* "View.MemoryView":348 + * self.obj = obj + * self.flags = flags + * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: + */ + __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type)); + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = (__pyx_v_obj != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "View.MemoryView":349 + * self.flags = flags + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<< + * if self.view.obj == NULL: + * (<__pyx_buffer *> &self.view).obj = Py_None + */ + __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 349, __pyx_L1_error) + + /* "View.MemoryView":350 + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: # <<<<<<<<<<<<<< + * (<__pyx_buffer *> &self.view).obj = Py_None + * Py_INCREF(Py_None) + */ + __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":351 + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: + * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<< + * Py_INCREF(Py_None) + * + */ + ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None; + + /* "View.MemoryView":352 + * if self.view.obj == NULL: + * (<__pyx_buffer *> &self.view).obj = Py_None + * Py_INCREF(Py_None) # <<<<<<<<<<<<<< + * + * global __pyx_memoryview_thread_locks_used + */ + Py_INCREF(Py_None); + + /* "View.MemoryView":350 + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: # <<<<<<<<<<<<<< + * (<__pyx_buffer *> &self.view).obj = Py_None + * Py_INCREF(Py_None) + */ + } + + /* "View.MemoryView":348 + * self.obj = obj + * self.flags = flags + * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: + */ + } + + /* "View.MemoryView":355 + * + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + */ + __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":356 + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: + */ + __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); + + /* "View.MemoryView":357 + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<< + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() + */ + __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1); + + /* "View.MemoryView":355 + * + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + */ + } + + /* "View.MemoryView":358 + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: # <<<<<<<<<<<<<< + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: + */ + __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":359 + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<< + * if self.lock is NULL: + * raise MemoryError + */ + __pyx_v_self->lock = PyThread_allocate_lock(); + + /* "View.MemoryView":360 + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * + */ + __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":361 + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: + * raise MemoryError # <<<<<<<<<<<<<< + * + * if flags & PyBUF_FORMAT: + */ + PyErr_NoMemory(); __PYX_ERR(2, 361, __pyx_L1_error) + + /* "View.MemoryView":360 + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * + */ + } + + /* "View.MemoryView":358 + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: # <<<<<<<<<<<<<< + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: + */ + } + + /* "View.MemoryView":363 + * raise MemoryError + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":364 + * + * if flags & PyBUF_FORMAT: + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<< + * else: + * self.dtype_is_object = dtype_is_object + */ + __pyx_t_2 = (((__pyx_v_self->view.format[0]) == 'O') != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L11_bool_binop_done; + } + __pyx_t_2 = (((__pyx_v_self->view.format[1]) == '\x00') != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L11_bool_binop_done:; + __pyx_v_self->dtype_is_object = __pyx_t_1; + + /* "View.MemoryView":363 + * raise MemoryError + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') + * else: + */ + goto __pyx_L10; + } + + /* "View.MemoryView":366 + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') + * else: + * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<< + * + * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( + */ + /*else*/ { + __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object; + } + __pyx_L10:; + + /* "View.MemoryView":368 + * self.dtype_is_object = dtype_is_object + * + * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( # <<<<<<<<<<<<<< + * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) + * self.typeinfo = NULL + */ + __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((void *)(&(__pyx_v_self->acquisition_count[0]))), (sizeof(__pyx_atomic_int)))); + + /* "View.MemoryView":370 + * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( + * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) + * self.typeinfo = NULL # <<<<<<<<<<<<<< + * + * def __dealloc__(memoryview self): + */ + __pyx_v_self->typeinfo = NULL; + + /* "View.MemoryView":345 + * cdef __Pyx_TypeInfo *typeinfo + * + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< + * self.obj = obj + * self.flags = flags + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":372 + * self.typeinfo = NULL + * + * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) + */ + +/* Python wrapper */ +static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) { + int __pyx_v_i; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyThread_type_lock __pyx_t_6; + PyThread_type_lock __pyx_t_7; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "View.MemoryView":373 + * + * def __dealloc__(memoryview self): + * if self.obj is not None: # <<<<<<<<<<<<<< + * __Pyx_ReleaseBuffer(&self.view) + * elif (<__pyx_buffer *> &self.view).obj == Py_None: + */ + __pyx_t_1 = (__pyx_v_self->obj != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":374 + * def __dealloc__(memoryview self): + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<< + * elif (<__pyx_buffer *> &self.view).obj == Py_None: + * + */ + __Pyx_ReleaseBuffer((&__pyx_v_self->view)); + + /* "View.MemoryView":373 + * + * def __dealloc__(memoryview self): + * if self.obj is not None: # <<<<<<<<<<<<<< + * __Pyx_ReleaseBuffer(&self.view) + * elif (<__pyx_buffer *> &self.view).obj == Py_None: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":375 + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) + * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< + * + * (<__pyx_buffer *> &self.view).obj = NULL + */ + __pyx_t_2 = ((((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":377 + * elif (<__pyx_buffer *> &self.view).obj == Py_None: + * + * (<__pyx_buffer *> &self.view).obj = NULL # <<<<<<<<<<<<<< + * Py_DECREF(Py_None) + * + */ + ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL; + + /* "View.MemoryView":378 + * + * (<__pyx_buffer *> &self.view).obj = NULL + * Py_DECREF(Py_None) # <<<<<<<<<<<<<< + * + * cdef int i + */ + Py_DECREF(Py_None); + + /* "View.MemoryView":375 + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) + * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< + * + * (<__pyx_buffer *> &self.view).obj = NULL + */ + } + __pyx_L3:; + + /* "View.MemoryView":382 + * cdef int i + * global __pyx_memoryview_thread_locks_used + * if self.lock != NULL: # <<<<<<<<<<<<<< + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: + */ + __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":383 + * global __pyx_memoryview_thread_locks_used + * if self.lock != NULL: + * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<< + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 + */ + __pyx_t_3 = __pyx_memoryview_thread_locks_used; + __pyx_t_4 = __pyx_t_3; + for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { + __pyx_v_i = __pyx_t_5; + + /* "View.MemoryView":384 + * if self.lock != NULL: + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: + */ + __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":385 + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<< + * if i != __pyx_memoryview_thread_locks_used: + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + */ + __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1); + + /* "View.MemoryView":386 + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + */ + __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":388 + * if i != __pyx_memoryview_thread_locks_used: + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<< + * break + * else: + */ + __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); + __pyx_t_7 = (__pyx_memoryview_thread_locks[__pyx_v_i]); + + /* "View.MemoryView":387 + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + * break + */ + (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_6; + (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_7; + + /* "View.MemoryView":386 + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + */ + } + + /* "View.MemoryView":389 + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + * break # <<<<<<<<<<<<<< + * else: + * PyThread_free_lock(self.lock) + */ + goto __pyx_L6_break; + + /* "View.MemoryView":384 + * if self.lock != NULL: + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: + */ + } + } + /*else*/ { + + /* "View.MemoryView":391 + * break + * else: + * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<< + * + * cdef char *get_item_pointer(memoryview self, object index) except NULL: + */ + PyThread_free_lock(__pyx_v_self->lock); + } + __pyx_L6_break:; + + /* "View.MemoryView":382 + * cdef int i + * global __pyx_memoryview_thread_locks_used + * if self.lock != NULL: # <<<<<<<<<<<<<< + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: + */ + } + + /* "View.MemoryView":372 + * self.typeinfo = NULL + * + * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":393 + * PyThread_free_lock(self.lock) + * + * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< + * cdef Py_ssize_t dim + * cdef char *itemp = self.view.buf + */ + +static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { + Py_ssize_t __pyx_v_dim; + char *__pyx_v_itemp; + PyObject *__pyx_v_idx = NULL; + char *__pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PyObject *(*__pyx_t_4)(PyObject *); + PyObject *__pyx_t_5 = NULL; + Py_ssize_t __pyx_t_6; + char *__pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_item_pointer", 0); + + /* "View.MemoryView":395 + * cdef char *get_item_pointer(memoryview self, object index) except NULL: + * cdef Py_ssize_t dim + * cdef char *itemp = self.view.buf # <<<<<<<<<<<<<< + * + * for dim, idx in enumerate(index): + */ + __pyx_v_itemp = ((char *)__pyx_v_self->view.buf); + + /* "View.MemoryView":397 + * cdef char *itemp = self.view.buf + * + * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< + * itemp = pybuffer_index(&self.view, itemp, idx, dim) + * + */ + __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) { + __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 397, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 397, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 397, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } + } else { + __pyx_t_5 = __pyx_t_4(__pyx_t_2); + if (unlikely(!__pyx_t_5)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(2, 397, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); + __pyx_t_5 = 0; + __pyx_v_dim = __pyx_t_1; + __pyx_t_1 = (__pyx_t_1 + 1); + + /* "View.MemoryView":398 + * + * for dim, idx in enumerate(index): + * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<< + * + * return itemp + */ + __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 398, __pyx_L1_error) + __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(2, 398, __pyx_L1_error) + __pyx_v_itemp = __pyx_t_7; + + /* "View.MemoryView":397 + * cdef char *itemp = self.view.buf + * + * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< + * itemp = pybuffer_index(&self.view, itemp, idx, dim) + * + */ + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "View.MemoryView":400 + * itemp = pybuffer_index(&self.view, itemp, idx, dim) + * + * return itemp # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_itemp; + goto __pyx_L0; + + /* "View.MemoryView":393 + * PyThread_free_lock(self.lock) + * + * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< + * cdef Py_ssize_t dim + * cdef char *itemp = self.view.buf + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_idx); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":403 + * + * + * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< + * if index is Ellipsis: + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ +static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { + PyObject *__pyx_v_have_slices = NULL; + PyObject *__pyx_v_indices = NULL; + char *__pyx_v_itemp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + char *__pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getitem__", 0); + + /* "View.MemoryView":404 + * + * def __getitem__(memoryview self, object index): + * if index is Ellipsis: # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":405 + * def __getitem__(memoryview self, object index): + * if index is Ellipsis: + * return self # <<<<<<<<<<<<<< + * + * have_slices, indices = _unellipsify(index, self.view.ndim) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "View.MemoryView":404 + * + * def __getitem__(memoryview self, object index): + * if index is Ellipsis: # <<<<<<<<<<<<<< + * return self + * + */ + } + + /* "View.MemoryView":407 + * return self + * + * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< + * + * cdef char *itemp + */ + __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (likely(__pyx_t_3 != Py_None)) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 407, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 407, __pyx_L1_error) + } + __pyx_v_have_slices = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_indices = __pyx_t_5; + __pyx_t_5 = 0; + + /* "View.MemoryView":410 + * + * cdef char *itemp + * if have_slices: # <<<<<<<<<<<<<< + * return memview_slice(self, indices) + * else: + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 410, __pyx_L1_error) + if (__pyx_t_2) { + + /* "View.MemoryView":411 + * cdef char *itemp + * if have_slices: + * return memview_slice(self, indices) # <<<<<<<<<<<<<< + * else: + * itemp = self.get_item_pointer(indices) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":410 + * + * cdef char *itemp + * if have_slices: # <<<<<<<<<<<<<< + * return memview_slice(self, indices) + * else: + */ + } + + /* "View.MemoryView":413 + * return memview_slice(self, indices) + * else: + * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<< + * return self.convert_item_to_object(itemp) + * + */ + /*else*/ { + __pyx_t_6 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_6 == ((char *)NULL))) __PYX_ERR(2, 413, __pyx_L1_error) + __pyx_v_itemp = __pyx_t_6; + + /* "View.MemoryView":414 + * else: + * itemp = self.get_item_pointer(indices) + * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<< + * + * def __setitem__(memoryview self, object index, object value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "View.MemoryView":403 + * + * + * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< + * if index is Ellipsis: + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_have_slices); + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":416 + * return self.convert_item_to_object(itemp) + * + * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") + */ + +/* Python wrapper */ +static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + PyObject *__pyx_v_have_slices = NULL; + PyObject *__pyx_v_obj = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setitem__", 0); + __Pyx_INCREF(__pyx_v_index); + + /* "View.MemoryView":417 + * + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: # <<<<<<<<<<<<<< + * raise TypeError("Cannot assign to read-only memoryview") + * + */ + __pyx_t_1 = (__pyx_v_self->view.readonly != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":418 + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< + * + * have_slices, index = _unellipsify(index, self.view.ndim) + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(2, 418, __pyx_L1_error) + + /* "View.MemoryView":417 + * + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: # <<<<<<<<<<<<<< + * raise TypeError("Cannot assign to read-only memoryview") + * + */ + } + + /* "View.MemoryView":420 + * raise TypeError("Cannot assign to read-only memoryview") + * + * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< + * + * if have_slices: + */ + __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (likely(__pyx_t_2 != Py_None)) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 420, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 420, __pyx_L1_error) + } + __pyx_v_have_slices = __pyx_t_3; + __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4); + __pyx_t_4 = 0; + + /* "View.MemoryView":422 + * have_slices, index = _unellipsify(index, self.view.ndim) + * + * if have_slices: # <<<<<<<<<<<<<< + * obj = self.is_slice(value) + * if obj: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 422, __pyx_L1_error) + if (__pyx_t_1) { + + /* "View.MemoryView":423 + * + * if have_slices: + * obj = self.is_slice(value) # <<<<<<<<<<<<<< + * if obj: + * self.setitem_slice_assignment(self[index], obj) + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_obj = __pyx_t_2; + __pyx_t_2 = 0; + + /* "View.MemoryView":424 + * if have_slices: + * obj = self.is_slice(value) + * if obj: # <<<<<<<<<<<<<< + * self.setitem_slice_assignment(self[index], obj) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 424, __pyx_L1_error) + if (__pyx_t_1) { + + /* "View.MemoryView":425 + * obj = self.is_slice(value) + * if obj: + * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<< + * else: + * self.setitem_slice_assign_scalar(self[index], value) + */ + __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_2, __pyx_v_obj); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "View.MemoryView":424 + * if have_slices: + * obj = self.is_slice(value) + * if obj: # <<<<<<<<<<<<<< + * self.setitem_slice_assignment(self[index], obj) + * else: + */ + goto __pyx_L5; + } + + /* "View.MemoryView":427 + * self.setitem_slice_assignment(self[index], obj) + * else: + * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<< + * else: + * self.setitem_indexed(index, value) + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_memoryview_type))))) __PYX_ERR(2, 427, __pyx_L1_error) + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_4), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L5:; + + /* "View.MemoryView":422 + * have_slices, index = _unellipsify(index, self.view.ndim) + * + * if have_slices: # <<<<<<<<<<<<<< + * obj = self.is_slice(value) + * if obj: + */ + goto __pyx_L4; + } + + /* "View.MemoryView":429 + * self.setitem_slice_assign_scalar(self[index], value) + * else: + * self.setitem_indexed(index, value) # <<<<<<<<<<<<<< + * + * cdef is_slice(self, obj): + */ + /*else*/ { + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L4:; + + /* "View.MemoryView":416 + * return self.convert_item_to_object(itemp) + * + * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_have_slices); + __Pyx_XDECREF(__pyx_v_obj); + __Pyx_XDECREF(__pyx_v_index); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":431 + * self.setitem_indexed(index, value) + * + * cdef is_slice(self, obj): # <<<<<<<<<<<<<< + * if not isinstance(obj, memoryview): + * try: + */ + +static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("is_slice", 0); + __Pyx_INCREF(__pyx_v_obj); + + /* "View.MemoryView":432 + * + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< + * try: + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":433 + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): + * try: # <<<<<<<<<<<<<< + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_5); + /*try:*/ { + + /* "View.MemoryView":434 + * if not isinstance(obj, memoryview): + * try: + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< + * self.dtype_is_object) + * except TypeError: + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 434, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "View.MemoryView":435 + * try: + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) # <<<<<<<<<<<<<< + * except TypeError: + * return None + */ + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 435, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "View.MemoryView":434 + * if not isinstance(obj, memoryview): + * try: + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< + * self.dtype_is_object) + * except TypeError: + */ + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 434, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_v_obj); + __Pyx_GIVEREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 434, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7); + __pyx_t_7 = 0; + + /* "View.MemoryView":433 + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): + * try: # <<<<<<<<<<<<<< + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + */ + } + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L9_try_end; + __pyx_L4_error:; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "View.MemoryView":436 + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + * except TypeError: # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); + if (__pyx_t_9) { + __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(2, 436, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_t_6); + + /* "View.MemoryView":437 + * self.dtype_is_object) + * except TypeError: + * return None # <<<<<<<<<<<<<< + * + * return obj + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L7_except_return; + } + goto __pyx_L6_except_error; + __pyx_L6_except_error:; + + /* "View.MemoryView":433 + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): + * try: # <<<<<<<<<<<<<< + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + */ + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); + goto __pyx_L1_error; + __pyx_L7_except_return:; + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); + goto __pyx_L0; + __pyx_L9_try_end:; + } + + /* "View.MemoryView":432 + * + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< + * try: + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + */ + } + + /* "View.MemoryView":439 + * return None + * + * return obj # <<<<<<<<<<<<<< + * + * cdef setitem_slice_assignment(self, dst, src): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_obj); + __pyx_r = __pyx_v_obj; + goto __pyx_L0; + + /* "View.MemoryView":431 + * self.setitem_indexed(index, value) + * + * cdef is_slice(self, obj): # <<<<<<<<<<<<<< + * if not isinstance(obj, memoryview): + * try: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_obj); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":441 + * return obj + * + * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice dst_slice + * cdef __Pyx_memviewslice src_slice + */ + +static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) { + __Pyx_memviewslice __pyx_v_dst_slice; + __Pyx_memviewslice __pyx_v_src_slice; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice *__pyx_t_1; + __Pyx_memviewslice *__pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setitem_slice_assignment", 0); + + /* "View.MemoryView":445 + * cdef __Pyx_memviewslice src_slice + * + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< + * get_slice_from_memview(dst, &dst_slice)[0], + * src.ndim, dst.ndim, self.dtype_is_object) + */ + if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(2, 445, __pyx_L1_error) + __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(2, 445, __pyx_L1_error) + + /* "View.MemoryView":446 + * + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], + * get_slice_from_memview(dst, &dst_slice)[0], # <<<<<<<<<<<<<< + * src.ndim, dst.ndim, self.dtype_is_object) + * + */ + if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(2, 446, __pyx_L1_error) + __pyx_t_2 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice)); if (unlikely(__pyx_t_2 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(2, 446, __pyx_L1_error) + + /* "View.MemoryView":447 + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], + * get_slice_from_memview(dst, &dst_slice)[0], + * src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<< + * + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":445 + * cdef __Pyx_memviewslice src_slice + * + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< + * get_slice_from_memview(dst, &dst_slice)[0], + * src.ndim, dst.ndim, self.dtype_is_object) + */ + __pyx_t_6 = __pyx_memoryview_copy_contents((__pyx_t_1[0]), (__pyx_t_2[0]), __pyx_t_4, __pyx_t_5, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 445, __pyx_L1_error) + + /* "View.MemoryView":441 + * return obj + * + * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice dst_slice + * cdef __Pyx_memviewslice src_slice + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":449 + * src.ndim, dst.ndim, self.dtype_is_object) + * + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< + * cdef int array[128] + * cdef void *tmp = NULL + */ + +static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) { + int __pyx_v_array[0x80]; + void *__pyx_v_tmp; + void *__pyx_v_item; + __Pyx_memviewslice *__pyx_v_dst_slice; + __Pyx_memviewslice __pyx_v_tmp_slice; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 0); + + /* "View.MemoryView":451 + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): + * cdef int array[128] + * cdef void *tmp = NULL # <<<<<<<<<<<<<< + * cdef void *item + * + */ + __pyx_v_tmp = NULL; + + /* "View.MemoryView":456 + * cdef __Pyx_memviewslice *dst_slice + * cdef __Pyx_memviewslice tmp_slice + * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<< + * + * if self.view.itemsize > sizeof(array): + */ + __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(2, 456, __pyx_L1_error) + __pyx_v_dst_slice = __pyx_t_1; + + /* "View.MemoryView":458 + * dst_slice = get_slice_from_memview(dst, &tmp_slice) + * + * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: + */ + __pyx_t_2 = ((((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array))) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":459 + * + * if self.view.itemsize > sizeof(array): + * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<< + * if tmp == NULL: + * raise MemoryError + */ + __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize); + + /* "View.MemoryView":460 + * if self.view.itemsize > sizeof(array): + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * item = tmp + */ + __pyx_t_2 = ((__pyx_v_tmp == NULL) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":461 + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: + * raise MemoryError # <<<<<<<<<<<<<< + * item = tmp + * else: + */ + PyErr_NoMemory(); __PYX_ERR(2, 461, __pyx_L1_error) + + /* "View.MemoryView":460 + * if self.view.itemsize > sizeof(array): + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * item = tmp + */ + } + + /* "View.MemoryView":462 + * if tmp == NULL: + * raise MemoryError + * item = tmp # <<<<<<<<<<<<<< + * else: + * item = array + */ + __pyx_v_item = __pyx_v_tmp; + + /* "View.MemoryView":458 + * dst_slice = get_slice_from_memview(dst, &tmp_slice) + * + * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":464 + * item = tmp + * else: + * item = array # <<<<<<<<<<<<<< + * + * try: + */ + /*else*/ { + __pyx_v_item = ((void *)__pyx_v_array); + } + __pyx_L3:; + + /* "View.MemoryView":466 + * item = array + * + * try: # <<<<<<<<<<<<<< + * if self.dtype_is_object: + * ( item)[0] = value + */ + /*try:*/ { + + /* "View.MemoryView":467 + * + * try: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * ( item)[0] = value + * else: + */ + __pyx_t_2 = (__pyx_v_self->dtype_is_object != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":468 + * try: + * if self.dtype_is_object: + * ( item)[0] = value # <<<<<<<<<<<<<< + * else: + * self.assign_item_from_object( item, value) + */ + (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value); + + /* "View.MemoryView":467 + * + * try: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * ( item)[0] = value + * else: + */ + goto __pyx_L8; + } + + /* "View.MemoryView":470 + * ( item)[0] = value + * else: + * self.assign_item_from_object( item, value) # <<<<<<<<<<<<<< + * + * + */ + /*else*/ { + __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 470, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __pyx_L8:; + + /* "View.MemoryView":474 + * + * + * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, + */ + __pyx_t_2 = ((__pyx_v_self->view.suboffsets != NULL) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":475 + * + * if self.view.suboffsets != NULL: + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<< + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, + * item, self.dtype_is_object) + */ + __pyx_t_3 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 475, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":474 + * + * + * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, + */ + } + + /* "View.MemoryView":476 + * if self.view.suboffsets != NULL: + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<< + * item, self.dtype_is_object) + * finally: + */ + __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object); + } + + /* "View.MemoryView":479 + * item, self.dtype_is_object) + * finally: + * PyMem_Free(tmp) # <<<<<<<<<<<<<< + * + * cdef setitem_indexed(self, index, value): + */ + /*finally:*/ { + /*normal exit:*/{ + PyMem_Free(__pyx_v_tmp); + goto __pyx_L7; + } + __pyx_L6_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + PyMem_Free(__pyx_v_tmp); + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + } + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L7:; + } + + /* "View.MemoryView":449 + * src.ndim, dst.ndim, self.dtype_is_object) + * + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< + * cdef int array[128] + * cdef void *tmp = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":481 + * PyMem_Free(tmp) + * + * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< + * cdef char *itemp = self.get_item_pointer(index) + * self.assign_item_from_object(itemp, value) + */ + +static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + char *__pyx_v_itemp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + char *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setitem_indexed", 0); + + /* "View.MemoryView":482 + * + * cdef setitem_indexed(self, index, value): + * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<< + * self.assign_item_from_object(itemp, value) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(2, 482, __pyx_L1_error) + __pyx_v_itemp = __pyx_t_1; + + /* "View.MemoryView":483 + * cdef setitem_indexed(self, index, value): + * cdef char *itemp = self.get_item_pointer(index) + * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<< + * + * cdef convert_item_to_object(self, char *itemp): + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "View.MemoryView":481 + * PyMem_Free(tmp) + * + * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< + * cdef char *itemp = self.get_item_pointer(index) + * self.assign_item_from_object(itemp, value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":485 + * self.assign_item_from_object(itemp, value) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + +static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) { + PyObject *__pyx_v_struct = NULL; + PyObject *__pyx_v_bytesitem = 0; + PyObject *__pyx_v_result = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("convert_item_to_object", 0); + + /* "View.MemoryView":488 + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + * import struct # <<<<<<<<<<<<<< + * cdef bytes bytesitem + * + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_struct = __pyx_t_1; + __pyx_t_1 = 0; + + /* "View.MemoryView":491 + * cdef bytes bytesitem + * + * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<< + * try: + * result = struct.unpack(self.view.format, bytesitem) + */ + __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_bytesitem = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":492 + * + * bytesitem = itemp[:self.view.itemsize] + * try: # <<<<<<<<<<<<<< + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_4); + /*try:*/ { + + /* "View.MemoryView":493 + * bytesitem = itemp[:self.view.itemsize] + * try: + * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<< + * except struct.error: + * raise ValueError("Unable to convert item to object") + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 493, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 493, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 493, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6); + __Pyx_INCREF(__pyx_v_bytesitem); + __Pyx_GIVEREF(__pyx_v_bytesitem); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem); + __pyx_t_6 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_result = __pyx_t_1; + __pyx_t_1 = 0; + + /* "View.MemoryView":492 + * + * bytesitem = itemp[:self.view.itemsize] + * try: # <<<<<<<<<<<<<< + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + */ + } + + /* "View.MemoryView":497 + * raise ValueError("Unable to convert item to object") + * else: + * if len(self.view.format) == 1: # <<<<<<<<<<<<<< + * return result[0] + * return result + */ + /*else:*/ { + __pyx_t_10 = strlen(__pyx_v_self->view.format); + __pyx_t_11 = ((__pyx_t_10 == 1) != 0); + if (__pyx_t_11) { + + /* "View.MemoryView":498 + * else: + * if len(self.view.format) == 1: + * return result[0] # <<<<<<<<<<<<<< + * return result + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 498, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L6_except_return; + + /* "View.MemoryView":497 + * raise ValueError("Unable to convert item to object") + * else: + * if len(self.view.format) == 1: # <<<<<<<<<<<<<< + * return result[0] + * return result + */ + } + + /* "View.MemoryView":499 + * if len(self.view.format) == 1: + * return result[0] + * return result # <<<<<<<<<<<<<< + * + * cdef assign_item_from_object(self, char *itemp, object value): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_result); + __pyx_r = __pyx_v_result; + goto __pyx_L6_except_return; + } + __pyx_L3_error:; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "View.MemoryView":494 + * try: + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: # <<<<<<<<<<<<<< + * raise ValueError("Unable to convert item to object") + * else: + */ + __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 494, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_9); + __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0; + if (__pyx_t_8) { + __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(2, 494, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_1); + + /* "View.MemoryView":495 + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< + * else: + * if len(self.view.format) == 1: + */ + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 495, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(2, 495, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "View.MemoryView":492 + * + * bytesitem = itemp[:self.view.itemsize] + * try: # <<<<<<<<<<<<<< + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + */ + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); + goto __pyx_L1_error; + __pyx_L6_except_return:; + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); + goto __pyx_L0; + } + + /* "View.MemoryView":485 + * self.assign_item_from_object(itemp, value) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_struct); + __Pyx_XDECREF(__pyx_v_bytesitem); + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":501 + * return result + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + +static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { + PyObject *__pyx_v_struct = NULL; + char __pyx_v_c; + PyObject *__pyx_v_bytesvalue = 0; + Py_ssize_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + char *__pyx_t_11; + char *__pyx_t_12; + char *__pyx_t_13; + char *__pyx_t_14; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assign_item_from_object", 0); + + /* "View.MemoryView":504 + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + * import struct # <<<<<<<<<<<<<< + * cdef char c + * cdef bytes bytesvalue + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_struct = __pyx_t_1; + __pyx_t_1 = 0; + + /* "View.MemoryView":509 + * cdef Py_ssize_t i + * + * if isinstance(value, tuple): # <<<<<<<<<<<<<< + * bytesvalue = struct.pack(self.view.format, *value) + * else: + */ + __pyx_t_2 = PyTuple_Check(__pyx_v_value); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "View.MemoryView":510 + * + * if isinstance(value, tuple): + * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<< + * else: + * bytesvalue = struct.pack(self.view.format, value) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 510, __pyx_L1_error) + __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "View.MemoryView":509 + * cdef Py_ssize_t i + * + * if isinstance(value, tuple): # <<<<<<<<<<<<<< + * bytesvalue = struct.pack(self.view.format, *value) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":512 + * bytesvalue = struct.pack(self.view.format, *value) + * else: + * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<< + * + * for i, c in enumerate(bytesvalue): + */ + /*else*/ { + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value); + __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 512, __pyx_L1_error) + __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + } + __pyx_L3:; + + /* "View.MemoryView":514 + * bytesvalue = struct.pack(self.view.format, value) + * + * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< + * itemp[i] = c + * + */ + __pyx_t_9 = 0; + if (unlikely(__pyx_v_bytesvalue == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable"); + __PYX_ERR(2, 514, __pyx_L1_error) + } + __Pyx_INCREF(__pyx_v_bytesvalue); + __pyx_t_10 = __pyx_v_bytesvalue; + __pyx_t_12 = PyBytes_AS_STRING(__pyx_t_10); + __pyx_t_13 = (__pyx_t_12 + PyBytes_GET_SIZE(__pyx_t_10)); + for (__pyx_t_14 = __pyx_t_12; __pyx_t_14 < __pyx_t_13; __pyx_t_14++) { + __pyx_t_11 = __pyx_t_14; + __pyx_v_c = (__pyx_t_11[0]); + + /* "View.MemoryView":515 + * + * for i, c in enumerate(bytesvalue): + * itemp[i] = c # <<<<<<<<<<<<<< + * + * @cname('getbuffer') + */ + __pyx_v_i = __pyx_t_9; + + /* "View.MemoryView":514 + * bytesvalue = struct.pack(self.view.format, value) + * + * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< + * itemp[i] = c + * + */ + __pyx_t_9 = (__pyx_t_9 + 1); + + /* "View.MemoryView":515 + * + * for i, c in enumerate(bytesvalue): + * itemp[i] = c # <<<<<<<<<<<<<< + * + * @cname('getbuffer') + */ + (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c; + } + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + /* "View.MemoryView":501 + * return result + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_struct); + __Pyx_XDECREF(__pyx_v_bytesvalue); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":518 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") + */ + +/* Python wrapper */ +static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t *__pyx_t_4; + char *__pyx_t_5; + void *__pyx_t_6; + int __pyx_t_7; + Py_ssize_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + if (__pyx_v_info == NULL) { + PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); + return -1; + } + __Pyx_RefNannySetupContext("__getbuffer__", 0); + __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(__pyx_v_info->obj); + + /* "View.MemoryView":519 + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + */ + __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = (__pyx_v_self->view.readonly != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":520 + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< + * + * if flags & PyBUF_ND: + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 520, __pyx_L1_error) + + /* "View.MemoryView":519 + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + */ + } + + /* "View.MemoryView":522 + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + * if flags & PyBUF_ND: # <<<<<<<<<<<<<< + * info.shape = self.view.shape + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":523 + * + * if flags & PyBUF_ND: + * info.shape = self.view.shape # <<<<<<<<<<<<<< + * else: + * info.shape = NULL + */ + __pyx_t_4 = __pyx_v_self->view.shape; + __pyx_v_info->shape = __pyx_t_4; + + /* "View.MemoryView":522 + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + * if flags & PyBUF_ND: # <<<<<<<<<<<<<< + * info.shape = self.view.shape + * else: + */ + goto __pyx_L6; + } + + /* "View.MemoryView":525 + * info.shape = self.view.shape + * else: + * info.shape = NULL # <<<<<<<<<<<<<< + * + * if flags & PyBUF_STRIDES: + */ + /*else*/ { + __pyx_v_info->shape = NULL; + } + __pyx_L6:; + + /* "View.MemoryView":527 + * info.shape = NULL + * + * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< + * info.strides = self.view.strides + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":528 + * + * if flags & PyBUF_STRIDES: + * info.strides = self.view.strides # <<<<<<<<<<<<<< + * else: + * info.strides = NULL + */ + __pyx_t_4 = __pyx_v_self->view.strides; + __pyx_v_info->strides = __pyx_t_4; + + /* "View.MemoryView":527 + * info.shape = NULL + * + * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< + * info.strides = self.view.strides + * else: + */ + goto __pyx_L7; + } + + /* "View.MemoryView":530 + * info.strides = self.view.strides + * else: + * info.strides = NULL # <<<<<<<<<<<<<< + * + * if flags & PyBUF_INDIRECT: + */ + /*else*/ { + __pyx_v_info->strides = NULL; + } + __pyx_L7:; + + /* "View.MemoryView":532 + * info.strides = NULL + * + * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< + * info.suboffsets = self.view.suboffsets + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":533 + * + * if flags & PyBUF_INDIRECT: + * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<< + * else: + * info.suboffsets = NULL + */ + __pyx_t_4 = __pyx_v_self->view.suboffsets; + __pyx_v_info->suboffsets = __pyx_t_4; + + /* "View.MemoryView":532 + * info.strides = NULL + * + * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< + * info.suboffsets = self.view.suboffsets + * else: + */ + goto __pyx_L8; + } + + /* "View.MemoryView":535 + * info.suboffsets = self.view.suboffsets + * else: + * info.suboffsets = NULL # <<<<<<<<<<<<<< + * + * if flags & PyBUF_FORMAT: + */ + /*else*/ { + __pyx_v_info->suboffsets = NULL; + } + __pyx_L8:; + + /* "View.MemoryView":537 + * info.suboffsets = NULL + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.view.format + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":538 + * + * if flags & PyBUF_FORMAT: + * info.format = self.view.format # <<<<<<<<<<<<<< + * else: + * info.format = NULL + */ + __pyx_t_5 = __pyx_v_self->view.format; + __pyx_v_info->format = __pyx_t_5; + + /* "View.MemoryView":537 + * info.suboffsets = NULL + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.view.format + * else: + */ + goto __pyx_L9; + } + + /* "View.MemoryView":540 + * info.format = self.view.format + * else: + * info.format = NULL # <<<<<<<<<<<<<< + * + * info.buf = self.view.buf + */ + /*else*/ { + __pyx_v_info->format = NULL; + } + __pyx_L9:; + + /* "View.MemoryView":542 + * info.format = NULL + * + * info.buf = self.view.buf # <<<<<<<<<<<<<< + * info.ndim = self.view.ndim + * info.itemsize = self.view.itemsize + */ + __pyx_t_6 = __pyx_v_self->view.buf; + __pyx_v_info->buf = __pyx_t_6; + + /* "View.MemoryView":543 + * + * info.buf = self.view.buf + * info.ndim = self.view.ndim # <<<<<<<<<<<<<< + * info.itemsize = self.view.itemsize + * info.len = self.view.len + */ + __pyx_t_7 = __pyx_v_self->view.ndim; + __pyx_v_info->ndim = __pyx_t_7; + + /* "View.MemoryView":544 + * info.buf = self.view.buf + * info.ndim = self.view.ndim + * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<< + * info.len = self.view.len + * info.readonly = self.view.readonly + */ + __pyx_t_8 = __pyx_v_self->view.itemsize; + __pyx_v_info->itemsize = __pyx_t_8; + + /* "View.MemoryView":545 + * info.ndim = self.view.ndim + * info.itemsize = self.view.itemsize + * info.len = self.view.len # <<<<<<<<<<<<<< + * info.readonly = self.view.readonly + * info.obj = self + */ + __pyx_t_8 = __pyx_v_self->view.len; + __pyx_v_info->len = __pyx_t_8; + + /* "View.MemoryView":546 + * info.itemsize = self.view.itemsize + * info.len = self.view.len + * info.readonly = self.view.readonly # <<<<<<<<<<<<<< + * info.obj = self + * + */ + __pyx_t_1 = __pyx_v_self->view.readonly; + __pyx_v_info->readonly = __pyx_t_1; + + /* "View.MemoryView":547 + * info.len = self.view.len + * info.readonly = self.view.readonly + * info.obj = self # <<<<<<<<<<<<<< + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); + __pyx_v_info->obj = ((PyObject *)__pyx_v_self); + + /* "View.MemoryView":518 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + if (__pyx_v_info->obj != NULL) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + goto __pyx_L2; + __pyx_L0:; + if (__pyx_v_info->obj == Py_None) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + __pyx_L2:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":553 + * + * @property + * def T(self): # <<<<<<<<<<<<<< + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":554 + * @property + * def T(self): + * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<< + * transpose_memslice(&result.from_slice) + * return result + */ + __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(2, 554, __pyx_L1_error) + __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":555 + * def T(self): + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(2, 555, __pyx_L1_error) + + /* "View.MemoryView":556 + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) + * return result # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "View.MemoryView":553 + * + * @property + * def T(self): # <<<<<<<<<<<<<< + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":559 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.obj + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":560 + * @property + * def base(self): + * return self.obj # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->obj); + __pyx_r = __pyx_v_self->obj; + goto __pyx_L0; + + /* "View.MemoryView":559 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.obj + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":563 + * + * @property + * def shape(self): # <<<<<<<<<<<<<< + * return tuple([length for length in self.view.shape[:self.view.ndim]]) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_v_length; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t *__pyx_t_2; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":564 + * @property + * def shape(self): + * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); + for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { + __pyx_t_2 = __pyx_t_4; + __pyx_v_length = (__pyx_t_2[0]); + __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(2, 564, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "View.MemoryView":563 + * + * @property + * def shape(self): # <<<<<<<<<<<<<< + * return tuple([length for length in self.view.shape[:self.view.ndim]]) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":567 + * + * @property + * def strides(self): # <<<<<<<<<<<<<< + * if self.view.strides == NULL: + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_v_stride; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + Py_ssize_t *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":568 + * @property + * def strides(self): + * if self.view.strides == NULL: # <<<<<<<<<<<<<< + * + * raise ValueError("Buffer view does not expose strides") + */ + __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":570 + * if self.view.strides == NULL: + * + * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< + * + * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(2, 570, __pyx_L1_error) + + /* "View.MemoryView":568 + * @property + * def strides(self): + * if self.view.strides == NULL: # <<<<<<<<<<<<<< + * + * raise ValueError("Buffer view does not expose strides") + */ + } + + /* "View.MemoryView":572 + * raise ValueError("Buffer view does not expose strides") + * + * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim); + for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { + __pyx_t_3 = __pyx_t_5; + __pyx_v_stride = (__pyx_t_3[0]); + __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(2, 572, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "View.MemoryView":567 + * + * @property + * def strides(self): # <<<<<<<<<<<<<< + * if self.view.strides == NULL: + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":575 + * + * @property + * def suboffsets(self): # <<<<<<<<<<<<<< + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_v_suboffset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t *__pyx_t_4; + Py_ssize_t *__pyx_t_5; + Py_ssize_t *__pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":576 + * @property + * def suboffsets(self): + * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< + * return (-1,) * self.view.ndim + * + */ + __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":577 + * def suboffsets(self): + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< + * + * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__15, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":576 + * @property + * def suboffsets(self): + * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< + * return (-1,) * self.view.ndim + * + */ + } + + /* "View.MemoryView":579 + * return (-1,) * self.view.ndim + * + * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim); + for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) { + __pyx_t_4 = __pyx_t_6; + __pyx_v_suboffset = (__pyx_t_4[0]); + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(2, 579, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":575 + * + * @property + * def suboffsets(self): # <<<<<<<<<<<<<< + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":582 + * + * @property + * def ndim(self): # <<<<<<<<<<<<<< + * return self.view.ndim + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":583 + * @property + * def ndim(self): + * return self.view.ndim # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":582 + * + * @property + * def ndim(self): # <<<<<<<<<<<<<< + * return self.view.ndim + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":586 + * + * @property + * def itemsize(self): # <<<<<<<<<<<<<< + * return self.view.itemsize + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":587 + * @property + * def itemsize(self): + * return self.view.itemsize # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":586 + * + * @property + * def itemsize(self): # <<<<<<<<<<<<<< + * return self.view.itemsize + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":590 + * + * @property + * def nbytes(self): # <<<<<<<<<<<<<< + * return self.size * self.view.itemsize + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":591 + * @property + * def nbytes(self): + * return self.size * self.view.itemsize # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":590 + * + * @property + * def nbytes(self): # <<<<<<<<<<<<<< + * return self.size * self.view.itemsize + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":594 + * + * @property + * def size(self): # <<<<<<<<<<<<<< + * if self._size is None: + * result = 1 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_v_result = NULL; + PyObject *__pyx_v_length = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + Py_ssize_t *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":595 + * @property + * def size(self): + * if self._size is None: # <<<<<<<<<<<<<< + * result = 1 + * + */ + __pyx_t_1 = (__pyx_v_self->_size == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":596 + * def size(self): + * if self._size is None: + * result = 1 # <<<<<<<<<<<<<< + * + * for length in self.view.shape[:self.view.ndim]: + */ + __Pyx_INCREF(__pyx_int_1); + __pyx_v_result = __pyx_int_1; + + /* "View.MemoryView":598 + * result = 1 + * + * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<< + * result *= length + * + */ + __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); + for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { + __pyx_t_3 = __pyx_t_5; + __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6); + __pyx_t_6 = 0; + + /* "View.MemoryView":599 + * + * for length in self.view.shape[:self.view.ndim]: + * result *= length # <<<<<<<<<<<<<< + * + * self._size = result + */ + __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6); + __pyx_t_6 = 0; + } + + /* "View.MemoryView":601 + * result *= length + * + * self._size = result # <<<<<<<<<<<<<< + * + * return self._size + */ + __Pyx_INCREF(__pyx_v_result); + __Pyx_GIVEREF(__pyx_v_result); + __Pyx_GOTREF(__pyx_v_self->_size); + __Pyx_DECREF(__pyx_v_self->_size); + __pyx_v_self->_size = __pyx_v_result; + + /* "View.MemoryView":595 + * @property + * def size(self): + * if self._size is None: # <<<<<<<<<<<<<< + * result = 1 + * + */ + } + + /* "View.MemoryView":603 + * self._size = result + * + * return self._size # <<<<<<<<<<<<<< + * + * def __len__(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->_size); + __pyx_r = __pyx_v_self->_size; + goto __pyx_L0; + + /* "View.MemoryView":594 + * + * @property + * def size(self): # <<<<<<<<<<<<<< + * if self._size is None: + * result = 1 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XDECREF(__pyx_v_length); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":605 + * return self._size + * + * def __len__(self): # <<<<<<<<<<<<<< + * if self.view.ndim >= 1: + * return self.view.shape[0] + */ + +/* Python wrapper */ +static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("__len__", 0); + + /* "View.MemoryView":606 + * + * def __len__(self): + * if self.view.ndim >= 1: # <<<<<<<<<<<<<< + * return self.view.shape[0] + * + */ + __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":607 + * def __len__(self): + * if self.view.ndim >= 1: + * return self.view.shape[0] # <<<<<<<<<<<<<< + * + * return 0 + */ + __pyx_r = (__pyx_v_self->view.shape[0]); + goto __pyx_L0; + + /* "View.MemoryView":606 + * + * def __len__(self): + * if self.view.ndim >= 1: # <<<<<<<<<<<<<< + * return self.view.shape[0] + * + */ + } + + /* "View.MemoryView":609 + * return self.view.shape[0] + * + * return 0 # <<<<<<<<<<<<<< + * + * def __repr__(self): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":605 + * return self._size + * + * def __len__(self): # <<<<<<<<<<<<<< + * if self.view.ndim >= 1: + * return self.view.shape[0] + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":611 + * return 0 + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__, + * id(self)) + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__repr__", 0); + + /* "View.MemoryView":612 + * + * def __repr__(self): + * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< + * id(self)) + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "View.MemoryView":613 + * def __repr__(self): + * return "" % (self.base.__class__.__name__, + * id(self)) # <<<<<<<<<<<<<< + * + * def __str__(self): + */ + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "View.MemoryView":612 + * + * def __repr__(self): + * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< + * id(self)) + * + */ + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":611 + * return 0 + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__, + * id(self)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":615 + * id(self)) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__,) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__str__", 0); + + /* "View.MemoryView":616 + * + * def __str__(self): + * return "" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":615 + * id(self)) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__,) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":619 + * + * + * def is_c_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice *__pyx_v_mslice; + __Pyx_memviewslice __pyx_v_tmp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("is_c_contig", 0); + + /* "View.MemoryView":622 + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< + * return slice_is_contig(mslice[0], 'C', self.view.ndim) + * + */ + __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(2, 622, __pyx_L1_error) + __pyx_v_mslice = __pyx_t_1; + + /* "View.MemoryView":623 + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) + * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<< + * + * def is_f_contig(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":619 + * + * + * def is_c_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":625 + * return slice_is_contig(mslice[0], 'C', self.view.ndim) + * + * def is_f_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice *__pyx_v_mslice; + __Pyx_memviewslice __pyx_v_tmp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("is_f_contig", 0); + + /* "View.MemoryView":628 + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< + * return slice_is_contig(mslice[0], 'F', self.view.ndim) + * + */ + __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(2, 628, __pyx_L1_error) + __pyx_v_mslice = __pyx_t_1; + + /* "View.MemoryView":629 + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) + * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<< + * + * def copy(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":625 + * return slice_is_contig(mslice[0], 'C', self.view.ndim) + * + * def is_f_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":631 + * return slice_is_contig(mslice[0], 'F', self.view.ndim) + * + * def copy(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice mslice + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice __pyx_v_mslice; + int __pyx_v_flags; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + /* "View.MemoryView":633 + * def copy(self): + * cdef __Pyx_memviewslice mslice + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<< + * + * slice_copy(self, &mslice) + */ + __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS)); + + /* "View.MemoryView":635 + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS + * + * slice_copy(self, &mslice) # <<<<<<<<<<<<<< + * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, + * self.view.itemsize, + */ + __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice)); + + /* "View.MemoryView":636 + * + * slice_copy(self, &mslice) + * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<< + * self.view.itemsize, + * flags|PyBUF_C_CONTIGUOUS, + */ + __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 636, __pyx_L1_error) + __pyx_v_mslice = __pyx_t_1; + + /* "View.MemoryView":641 + * self.dtype_is_object) + * + * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<< + * + * def copy_fortran(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":631 + * return slice_is_contig(mslice[0], 'F', self.view.ndim) + * + * def copy(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice mslice + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":643 + * return memoryview_copy_from_slice(self, &mslice) + * + * def copy_fortran(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice src, dst + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice __pyx_v_src; + __Pyx_memviewslice __pyx_v_dst; + int __pyx_v_flags; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy_fortran", 0); + + /* "View.MemoryView":645 + * def copy_fortran(self): + * cdef __Pyx_memviewslice src, dst + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<< + * + * slice_copy(self, &src) + */ + __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS)); + + /* "View.MemoryView":647 + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS + * + * slice_copy(self, &src) # <<<<<<<<<<<<<< + * dst = slice_copy_contig(&src, "fortran", self.view.ndim, + * self.view.itemsize, + */ + __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src)); + + /* "View.MemoryView":648 + * + * slice_copy(self, &src) + * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<< + * self.view.itemsize, + * flags|PyBUF_F_CONTIGUOUS, + */ + __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 648, __pyx_L1_error) + __pyx_v_dst = __pyx_t_1; + + /* "View.MemoryView":653 + * self.dtype_is_object) + * + * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":643 + * return memoryview_copy_from_slice(self, &mslice) + * + * def copy_fortran(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice src, dst + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(2, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(2, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":657 + * + * @cname('__pyx_memoryview_new') + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo + */ + +static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) { + struct __pyx_memoryview_obj *__pyx_v_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("memoryview_cwrapper", 0); + + /* "View.MemoryView":658 + * @cname('__pyx_memoryview_new') + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): + * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<< + * result.typeinfo = typeinfo + * return result + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_o); + __Pyx_GIVEREF(__pyx_v_o); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "View.MemoryView":659 + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_v_result->typeinfo = __pyx_v_typeinfo; + + /* "View.MemoryView":660 + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo + * return result # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_check') + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "View.MemoryView":657 + * + * @cname('__pyx_memoryview_new') + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":663 + * + * @cname('__pyx_memoryview_check') + * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< + * return isinstance(o, memoryview) + * + */ + +static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("memoryview_check", 0); + + /* "View.MemoryView":664 + * @cname('__pyx_memoryview_check') + * cdef inline bint memoryview_check(object o): + * return isinstance(o, memoryview) # <<<<<<<<<<<<<< + * + * cdef tuple _unellipsify(object index, int ndim): + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); + __pyx_r = __pyx_t_1; + goto __pyx_L0; + + /* "View.MemoryView":663 + * + * @cname('__pyx_memoryview_check') + * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< + * return isinstance(o, memoryview) + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":666 + * return isinstance(o, memoryview) + * + * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< + * """ + * Replace all ellipses with full slices and fill incomplete indices with + */ + +static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) { + PyObject *__pyx_v_tup = NULL; + PyObject *__pyx_v_result = NULL; + int __pyx_v_have_slices; + int __pyx_v_seen_ellipsis; + CYTHON_UNUSED PyObject *__pyx_v_idx = NULL; + PyObject *__pyx_v_item = NULL; + Py_ssize_t __pyx_v_nslices; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + Py_ssize_t __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_unellipsify", 0); + + /* "View.MemoryView":671 + * full slices. + * """ + * if not isinstance(index, tuple): # <<<<<<<<<<<<<< + * tup = (index,) + * else: + */ + __pyx_t_1 = PyTuple_Check(__pyx_v_index); + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":672 + * """ + * if not isinstance(index, tuple): + * tup = (index,) # <<<<<<<<<<<<<< + * else: + * tup = index + */ + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_index); + __Pyx_GIVEREF(__pyx_v_index); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index); + __pyx_v_tup = __pyx_t_3; + __pyx_t_3 = 0; + + /* "View.MemoryView":671 + * full slices. + * """ + * if not isinstance(index, tuple): # <<<<<<<<<<<<<< + * tup = (index,) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":674 + * tup = (index,) + * else: + * tup = index # <<<<<<<<<<<<<< + * + * result = [] + */ + /*else*/ { + __Pyx_INCREF(__pyx_v_index); + __pyx_v_tup = __pyx_v_index; + } + __pyx_L3:; + + /* "View.MemoryView":676 + * tup = index + * + * result = [] # <<<<<<<<<<<<<< + * have_slices = False + * seen_ellipsis = False + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_result = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":677 + * + * result = [] + * have_slices = False # <<<<<<<<<<<<<< + * seen_ellipsis = False + * for idx, item in enumerate(tup): + */ + __pyx_v_have_slices = 0; + + /* "View.MemoryView":678 + * result = [] + * have_slices = False + * seen_ellipsis = False # <<<<<<<<<<<<<< + * for idx, item in enumerate(tup): + * if item is Ellipsis: + */ + __pyx_v_seen_ellipsis = 0; + + /* "View.MemoryView":679 + * have_slices = False + * seen_ellipsis = False + * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< + * if item is Ellipsis: + * if not seen_ellipsis: + */ + __Pyx_INCREF(__pyx_int_0); + __pyx_t_3 = __pyx_int_0; + if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) { + __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 679, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 679, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 679, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } + } else { + __pyx_t_7 = __pyx_t_6(__pyx_t_4); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(2, 679, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_INCREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3); + __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); + __pyx_t_3 = __pyx_t_7; + __pyx_t_7 = 0; + + /* "View.MemoryView":680 + * seen_ellipsis = False + * for idx, item in enumerate(tup): + * if item is Ellipsis: # <<<<<<<<<<<<<< + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + */ + __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":681 + * for idx, item in enumerate(tup): + * if item is Ellipsis: + * if not seen_ellipsis: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + * seen_ellipsis = True + */ + __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":682 + * if item is Ellipsis: + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< + * seen_ellipsis = True + * else: + */ + __pyx_t_8 = PyObject_Length(__pyx_v_tup); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(2, 682, __pyx_L1_error) + __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + { Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) { + __Pyx_INCREF(__pyx_slice__18); + __Pyx_GIVEREF(__pyx_slice__18); + PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__18); + } + } + __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 682, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "View.MemoryView":683 + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + * seen_ellipsis = True # <<<<<<<<<<<<<< + * else: + * result.append(slice(None)) + */ + __pyx_v_seen_ellipsis = 1; + + /* "View.MemoryView":681 + * for idx, item in enumerate(tup): + * if item is Ellipsis: + * if not seen_ellipsis: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + * seen_ellipsis = True + */ + goto __pyx_L7; + } + + /* "View.MemoryView":685 + * seen_ellipsis = True + * else: + * result.append(slice(None)) # <<<<<<<<<<<<<< + * have_slices = True + * else: + */ + /*else*/ { + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__18); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 685, __pyx_L1_error) + } + __pyx_L7:; + + /* "View.MemoryView":686 + * else: + * result.append(slice(None)) + * have_slices = True # <<<<<<<<<<<<<< + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): + */ + __pyx_v_have_slices = 1; + + /* "View.MemoryView":680 + * seen_ellipsis = False + * for idx, item in enumerate(tup): + * if item is Ellipsis: # <<<<<<<<<<<<<< + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + */ + goto __pyx_L6; + } + + /* "View.MemoryView":688 + * have_slices = True + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< + * raise TypeError("Cannot index with type '%s'" % type(item)) + * + */ + /*else*/ { + __pyx_t_2 = PySlice_Check(__pyx_v_item); + __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0); + if (__pyx_t_10) { + } else { + __pyx_t_1 = __pyx_t_10; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0); + __pyx_t_1 = __pyx_t_10; + __pyx_L9_bool_binop_done:; + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":689 + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): + * raise TypeError("Cannot index with type '%s'" % type(item)) # <<<<<<<<<<<<<< + * + * have_slices = have_slices or isinstance(item, slice) + */ + __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_11, 0, 0, 0); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __PYX_ERR(2, 689, __pyx_L1_error) + + /* "View.MemoryView":688 + * have_slices = True + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< + * raise TypeError("Cannot index with type '%s'" % type(item)) + * + */ + } + + /* "View.MemoryView":691 + * raise TypeError("Cannot index with type '%s'" % type(item)) + * + * have_slices = have_slices or isinstance(item, slice) # <<<<<<<<<<<<<< + * result.append(item) + * + */ + __pyx_t_10 = (__pyx_v_have_slices != 0); + if (!__pyx_t_10) { + } else { + __pyx_t_1 = __pyx_t_10; + goto __pyx_L11_bool_binop_done; + } + __pyx_t_10 = PySlice_Check(__pyx_v_item); + __pyx_t_2 = (__pyx_t_10 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L11_bool_binop_done:; + __pyx_v_have_slices = __pyx_t_1; + + /* "View.MemoryView":692 + * + * have_slices = have_slices or isinstance(item, slice) + * result.append(item) # <<<<<<<<<<<<<< + * + * nslices = ndim - len(result) + */ + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 692, __pyx_L1_error) + } + __pyx_L6:; + + /* "View.MemoryView":679 + * have_slices = False + * seen_ellipsis = False + * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< + * if item is Ellipsis: + * if not seen_ellipsis: + */ + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":694 + * result.append(item) + * + * nslices = ndim - len(result) # <<<<<<<<<<<<<< + * if nslices: + * result.extend([slice(None)] * nslices) + */ + __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 694, __pyx_L1_error) + __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5); + + /* "View.MemoryView":695 + * + * nslices = ndim - len(result) + * if nslices: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * nslices) + * + */ + __pyx_t_1 = (__pyx_v_nslices != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":696 + * nslices = ndim - len(result) + * if nslices: + * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< + * + * return have_slices or nslices, tuple(result) + */ + __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) { + __Pyx_INCREF(__pyx_slice__18); + __Pyx_GIVEREF(__pyx_slice__18); + PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__18); + } + } + __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 696, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":695 + * + * nslices = ndim - len(result) + * if nslices: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * nslices) + * + */ + } + + /* "View.MemoryView":698 + * result.extend([slice(None)] * nslices) + * + * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<< + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + */ + __Pyx_XDECREF(__pyx_r); + if (!__pyx_v_have_slices) { + } else { + __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L14_bool_binop_done; + } + __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_L14_bool_binop_done:; + __pyx_t_4 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = ((PyObject*)__pyx_t_11); + __pyx_t_11 = 0; + goto __pyx_L0; + + /* "View.MemoryView":666 + * return isinstance(o, memoryview) + * + * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< + * """ + * Replace all ellipses with full slices and fill incomplete indices with + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tup); + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XDECREF(__pyx_v_idx); + __Pyx_XDECREF(__pyx_v_item); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":700 + * return have_slices or nslices, tuple(result) + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + */ + +static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) { + Py_ssize_t __pyx_v_suboffset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Py_ssize_t *__pyx_t_1; + Py_ssize_t *__pyx_t_2; + Py_ssize_t *__pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assert_direct_dimensions", 0); + + /* "View.MemoryView":701 + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<< + * if suboffset >= 0: + * raise ValueError("Indirect dimensions not supported") + */ + __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim); + for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) { + __pyx_t_1 = __pyx_t_3; + __pyx_v_suboffset = (__pyx_t_1[0]); + + /* "View.MemoryView":702 + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * raise ValueError("Indirect dimensions not supported") + * + */ + __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":703 + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(2, 703, __pyx_L1_error) + + /* "View.MemoryView":702 + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * raise ValueError("Indirect dimensions not supported") + * + */ + } + } + + /* "View.MemoryView":700 + * return have_slices or nslices, tuple(result) + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":710 + * + * @cname('__pyx_memview_slice') + * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< + * cdef int new_ndim = 0, suboffset_dim = -1, dim + * cdef bint negative_step + */ + +static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) { + int __pyx_v_new_ndim; + int __pyx_v_suboffset_dim; + int __pyx_v_dim; + __Pyx_memviewslice __pyx_v_src; + __Pyx_memviewslice __pyx_v_dst; + __Pyx_memviewslice *__pyx_v_p_src; + struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0; + __Pyx_memviewslice *__pyx_v_p_dst; + int *__pyx_v_p_suboffset_dim; + Py_ssize_t __pyx_v_start; + Py_ssize_t __pyx_v_stop; + Py_ssize_t __pyx_v_step; + int __pyx_v_have_start; + int __pyx_v_have_stop; + int __pyx_v_have_step; + PyObject *__pyx_v_index = NULL; + struct __pyx_memoryview_obj *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + struct __pyx_memoryview_obj *__pyx_t_4; + char *__pyx_t_5; + int __pyx_t_6; + Py_ssize_t __pyx_t_7; + PyObject *(*__pyx_t_8)(PyObject *); + PyObject *__pyx_t_9 = NULL; + Py_ssize_t __pyx_t_10; + int __pyx_t_11; + Py_ssize_t __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("memview_slice", 0); + + /* "View.MemoryView":711 + * @cname('__pyx_memview_slice') + * cdef memoryview memview_slice(memoryview memview, object indices): + * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<< + * cdef bint negative_step + * cdef __Pyx_memviewslice src, dst + */ + __pyx_v_new_ndim = 0; + __pyx_v_suboffset_dim = -1; + + /* "View.MemoryView":718 + * + * + * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<< + * + * cdef _memoryviewslice memviewsliceobj + */ + (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst)))); + + /* "View.MemoryView":722 + * cdef _memoryviewslice memviewsliceobj + * + * assert memview.view.ndim > 0 # <<<<<<<<<<<<<< + * + * if isinstance(memview, _memoryviewslice): + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(!Py_OptimizeFlag)) { + if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(2, 722, __pyx_L1_error) + } + } + #endif + + /* "View.MemoryView":724 + * assert memview.view.ndim > 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * memviewsliceobj = memview + * p_src = &memviewsliceobj.from_slice + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":725 + * + * if isinstance(memview, _memoryviewslice): + * memviewsliceobj = memview # <<<<<<<<<<<<<< + * p_src = &memviewsliceobj.from_slice + * else: + */ + if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 725, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_v_memview); + __Pyx_INCREF(__pyx_t_3); + __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":726 + * if isinstance(memview, _memoryviewslice): + * memviewsliceobj = memview + * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<< + * else: + * slice_copy(memview, &src) + */ + __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice); + + /* "View.MemoryView":724 + * assert memview.view.ndim > 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * memviewsliceobj = memview + * p_src = &memviewsliceobj.from_slice + */ + goto __pyx_L3; + } + + /* "View.MemoryView":728 + * p_src = &memviewsliceobj.from_slice + * else: + * slice_copy(memview, &src) # <<<<<<<<<<<<<< + * p_src = &src + * + */ + /*else*/ { + __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src)); + + /* "View.MemoryView":729 + * else: + * slice_copy(memview, &src) + * p_src = &src # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_p_src = (&__pyx_v_src); + } + __pyx_L3:; + + /* "View.MemoryView":735 + * + * + * dst.memview = p_src.memview # <<<<<<<<<<<<<< + * dst.data = p_src.data + * + */ + __pyx_t_4 = __pyx_v_p_src->memview; + __pyx_v_dst.memview = __pyx_t_4; + + /* "View.MemoryView":736 + * + * dst.memview = p_src.memview + * dst.data = p_src.data # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __pyx_v_p_src->data; + __pyx_v_dst.data = __pyx_t_5; + + /* "View.MemoryView":741 + * + * + * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<< + * cdef int *p_suboffset_dim = &suboffset_dim + * cdef Py_ssize_t start, stop, step + */ + __pyx_v_p_dst = (&__pyx_v_dst); + + /* "View.MemoryView":742 + * + * cdef __Pyx_memviewslice *p_dst = &dst + * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<< + * cdef Py_ssize_t start, stop, step + * cdef bint have_start, have_stop, have_step + */ + __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim); + + /* "View.MemoryView":746 + * cdef bint have_start, have_stop, have_step + * + * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< + * if PyIndex_Check(index): + * slice_memviewslice( + */ + __pyx_t_6 = 0; + if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) { + __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + } else { + __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 746, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_8)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 746, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } else { + if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 746, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } + } else { + __pyx_t_9 = __pyx_t_8(__pyx_t_3); + if (unlikely(!__pyx_t_9)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(2, 746, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_9); + } + __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9); + __pyx_t_9 = 0; + __pyx_v_dim = __pyx_t_6; + __pyx_t_6 = (__pyx_t_6 + 1); + + /* "View.MemoryView":747 + * + * for dim, index in enumerate(indices): + * if PyIndex_Check(index): # <<<<<<<<<<<<<< + * slice_memviewslice( + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + */ + __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":751 + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + * dim, new_ndim, p_suboffset_dim, + * index, 0, 0, # start, stop, step # <<<<<<<<<<<<<< + * 0, 0, 0, # have_{start,stop,step} + * False) + */ + __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 751, __pyx_L1_error) + + /* "View.MemoryView":748 + * for dim, index in enumerate(indices): + * if PyIndex_Check(index): + * slice_memviewslice( # <<<<<<<<<<<<<< + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + * dim, new_ndim, p_suboffset_dim, + */ + __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 748, __pyx_L1_error) + + /* "View.MemoryView":747 + * + * for dim, index in enumerate(indices): + * if PyIndex_Check(index): # <<<<<<<<<<<<<< + * slice_memviewslice( + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + */ + goto __pyx_L6; + } + + /* "View.MemoryView":754 + * 0, 0, 0, # have_{start,stop,step} + * False) + * elif index is None: # <<<<<<<<<<<<<< + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 + */ + __pyx_t_2 = (__pyx_v_index == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":755 + * False) + * elif index is None: + * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<< + * p_dst.strides[new_ndim] = 0 + * p_dst.suboffsets[new_ndim] = -1 + */ + (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1; + + /* "View.MemoryView":756 + * elif index is None: + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<< + * p_dst.suboffsets[new_ndim] = -1 + * new_ndim += 1 + */ + (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0; + + /* "View.MemoryView":757 + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 + * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<< + * new_ndim += 1 + * else: + */ + (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L; + + /* "View.MemoryView":758 + * p_dst.strides[new_ndim] = 0 + * p_dst.suboffsets[new_ndim] = -1 + * new_ndim += 1 # <<<<<<<<<<<<<< + * else: + * start = index.start or 0 + */ + __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); + + /* "View.MemoryView":754 + * 0, 0, 0, # have_{start,stop,step} + * False) + * elif index is None: # <<<<<<<<<<<<<< + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 + */ + goto __pyx_L6; + } + + /* "View.MemoryView":760 + * new_ndim += 1 + * else: + * start = index.start or 0 # <<<<<<<<<<<<<< + * stop = index.stop or 0 + * step = index.step or 0 + */ + /*else*/ { + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 760, __pyx_L1_error) + if (!__pyx_t_1) { + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } else { + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 760, __pyx_L1_error) + __pyx_t_10 = __pyx_t_12; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L7_bool_binop_done; + } + __pyx_t_10 = 0; + __pyx_L7_bool_binop_done:; + __pyx_v_start = __pyx_t_10; + + /* "View.MemoryView":761 + * else: + * start = index.start or 0 + * stop = index.stop or 0 # <<<<<<<<<<<<<< + * step = index.step or 0 + * + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 761, __pyx_L1_error) + if (!__pyx_t_1) { + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } else { + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 761, __pyx_L1_error) + __pyx_t_10 = __pyx_t_12; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_10 = 0; + __pyx_L9_bool_binop_done:; + __pyx_v_stop = __pyx_t_10; + + /* "View.MemoryView":762 + * start = index.start or 0 + * stop = index.stop or 0 + * step = index.step or 0 # <<<<<<<<<<<<<< + * + * have_start = index.start is not None + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 762, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 762, __pyx_L1_error) + if (!__pyx_t_1) { + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } else { + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 762, __pyx_L1_error) + __pyx_t_10 = __pyx_t_12; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L11_bool_binop_done; + } + __pyx_t_10 = 0; + __pyx_L11_bool_binop_done:; + __pyx_v_step = __pyx_t_10; + + /* "View.MemoryView":764 + * step = index.step or 0 + * + * have_start = index.start is not None # <<<<<<<<<<<<<< + * have_stop = index.stop is not None + * have_step = index.step is not None + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = (__pyx_t_9 != Py_None); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_have_start = __pyx_t_1; + + /* "View.MemoryView":765 + * + * have_start = index.start is not None + * have_stop = index.stop is not None # <<<<<<<<<<<<<< + * have_step = index.step is not None + * + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = (__pyx_t_9 != Py_None); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_have_stop = __pyx_t_1; + + /* "View.MemoryView":766 + * have_start = index.start is not None + * have_stop = index.stop is not None + * have_step = index.step is not None # <<<<<<<<<<<<<< + * + * slice_memviewslice( + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = (__pyx_t_9 != Py_None); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_have_step = __pyx_t_1; + + /* "View.MemoryView":768 + * have_step = index.step is not None + * + * slice_memviewslice( # <<<<<<<<<<<<<< + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + * dim, new_ndim, p_suboffset_dim, + */ + __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 768, __pyx_L1_error) + + /* "View.MemoryView":774 + * have_start, have_stop, have_step, + * True) + * new_ndim += 1 # <<<<<<<<<<<<<< + * + * if isinstance(memview, _memoryviewslice): + */ + __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); + } + __pyx_L6:; + + /* "View.MemoryView":746 + * cdef bint have_start, have_stop, have_step + * + * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< + * if PyIndex_Check(index): + * slice_memviewslice( + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":776 + * new_ndim += 1 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":777 + * + * if isinstance(memview, _memoryviewslice): + * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< + * memviewsliceobj.to_object_func, + * memviewsliceobj.to_dtype_func, + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + + /* "View.MemoryView":778 + * if isinstance(memview, _memoryviewslice): + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<< + * memviewsliceobj.to_dtype_func, + * memview.dtype_is_object) + */ + if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 778, __pyx_L1_error) } + + /* "View.MemoryView":779 + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, + * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<< + * memview.dtype_is_object) + * else: + */ + if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 779, __pyx_L1_error) } + + /* "View.MemoryView":777 + * + * if isinstance(memview, _memoryviewslice): + * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< + * memviewsliceobj.to_object_func, + * memviewsliceobj.to_dtype_func, + */ + __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 777, __pyx_L1_error) + __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":776 + * new_ndim += 1 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, + */ + } + + /* "View.MemoryView":782 + * memview.dtype_is_object) + * else: + * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< + * memview.dtype_is_object) + * + */ + /*else*/ { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + + /* "View.MemoryView":783 + * else: + * return memoryview_fromslice(dst, new_ndim, NULL, NULL, + * memview.dtype_is_object) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "View.MemoryView":782 + * memview.dtype_is_object) + * else: + * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< + * memview.dtype_is_object) + * + */ + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 782, __pyx_L1_error) + __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "View.MemoryView":710 + * + * @cname('__pyx_memview_slice') + * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< + * cdef int new_ndim = 0, suboffset_dim = -1, dim + * cdef bint negative_step + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj); + __Pyx_XDECREF(__pyx_v_index); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":807 + * + * @cname('__pyx_memoryview_slice_memviewslice') + * cdef int slice_memviewslice( # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, + */ + +static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) { + Py_ssize_t __pyx_v_new_shape; + int __pyx_v_negative_step; + int __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "View.MemoryView":827 + * cdef bint negative_step + * + * if not is_slice: # <<<<<<<<<<<<<< + * + * if start < 0: + */ + __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":829 + * if not is_slice: + * + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if not 0 <= start < shape: + */ + __pyx_t_1 = ((__pyx_v_start < 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":830 + * + * if start < 0: + * start += shape # <<<<<<<<<<<<<< + * if not 0 <= start < shape: + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) + */ + __pyx_v_start = (__pyx_v_start + __pyx_v_shape); + + /* "View.MemoryView":829 + * if not is_slice: + * + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if not 0 <= start < shape: + */ + } + + /* "View.MemoryView":831 + * if start < 0: + * start += shape + * if not 0 <= start < shape: # <<<<<<<<<<<<<< + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) + * else: + */ + __pyx_t_1 = (0 <= __pyx_v_start); + if (__pyx_t_1) { + __pyx_t_1 = (__pyx_v_start < __pyx_v_shape); + } + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":832 + * start += shape + * if not 0 <= start < shape: + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<< + * else: + * + */ + __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"Index out of bounds (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 832, __pyx_L1_error) + + /* "View.MemoryView":831 + * if start < 0: + * start += shape + * if not 0 <= start < shape: # <<<<<<<<<<<<<< + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) + * else: + */ + } + + /* "View.MemoryView":827 + * cdef bint negative_step + * + * if not is_slice: # <<<<<<<<<<<<<< + * + * if start < 0: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":835 + * else: + * + * negative_step = have_step != 0 and step < 0 # <<<<<<<<<<<<<< + * + * if have_step and step == 0: + */ + /*else*/ { + __pyx_t_1 = ((__pyx_v_have_step != 0) != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_1 = ((__pyx_v_step < 0) != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L6_bool_binop_done:; + __pyx_v_negative_step = __pyx_t_2; + + /* "View.MemoryView":837 + * negative_step = have_step != 0 and step < 0 + * + * if have_step and step == 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) + * + */ + __pyx_t_1 = (__pyx_v_have_step != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_1 = ((__pyx_v_step == 0) != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L9_bool_binop_done:; + if (__pyx_t_2) { + + /* "View.MemoryView":838 + * + * if have_step and step == 0: + * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Step may not be zero (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 838, __pyx_L1_error) + + /* "View.MemoryView":837 + * negative_step = have_step != 0 and step < 0 + * + * if have_step and step == 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) + * + */ + } + + /* "View.MemoryView":841 + * + * + * if have_start: # <<<<<<<<<<<<<< + * if start < 0: + * start += shape + */ + __pyx_t_2 = (__pyx_v_have_start != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":842 + * + * if have_start: + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if start < 0: + */ + __pyx_t_2 = ((__pyx_v_start < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":843 + * if have_start: + * if start < 0: + * start += shape # <<<<<<<<<<<<<< + * if start < 0: + * start = 0 + */ + __pyx_v_start = (__pyx_v_start + __pyx_v_shape); + + /* "View.MemoryView":844 + * if start < 0: + * start += shape + * if start < 0: # <<<<<<<<<<<<<< + * start = 0 + * elif start >= shape: + */ + __pyx_t_2 = ((__pyx_v_start < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":845 + * start += shape + * if start < 0: + * start = 0 # <<<<<<<<<<<<<< + * elif start >= shape: + * if negative_step: + */ + __pyx_v_start = 0; + + /* "View.MemoryView":844 + * if start < 0: + * start += shape + * if start < 0: # <<<<<<<<<<<<<< + * start = 0 + * elif start >= shape: + */ + } + + /* "View.MemoryView":842 + * + * if have_start: + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if start < 0: + */ + goto __pyx_L12; + } + + /* "View.MemoryView":846 + * if start < 0: + * start = 0 + * elif start >= shape: # <<<<<<<<<<<<<< + * if negative_step: + * start = shape - 1 + */ + __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":847 + * start = 0 + * elif start >= shape: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + __pyx_t_2 = (__pyx_v_negative_step != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":848 + * elif start >= shape: + * if negative_step: + * start = shape - 1 # <<<<<<<<<<<<<< + * else: + * start = shape + */ + __pyx_v_start = (__pyx_v_shape - 1); + + /* "View.MemoryView":847 + * start = 0 + * elif start >= shape: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + goto __pyx_L14; + } + + /* "View.MemoryView":850 + * start = shape - 1 + * else: + * start = shape # <<<<<<<<<<<<<< + * else: + * if negative_step: + */ + /*else*/ { + __pyx_v_start = __pyx_v_shape; + } + __pyx_L14:; + + /* "View.MemoryView":846 + * if start < 0: + * start = 0 + * elif start >= shape: # <<<<<<<<<<<<<< + * if negative_step: + * start = shape - 1 + */ + } + __pyx_L12:; + + /* "View.MemoryView":841 + * + * + * if have_start: # <<<<<<<<<<<<<< + * if start < 0: + * start += shape + */ + goto __pyx_L11; + } + + /* "View.MemoryView":852 + * start = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + /*else*/ { + __pyx_t_2 = (__pyx_v_negative_step != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":853 + * else: + * if negative_step: + * start = shape - 1 # <<<<<<<<<<<<<< + * else: + * start = 0 + */ + __pyx_v_start = (__pyx_v_shape - 1); + + /* "View.MemoryView":852 + * start = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + goto __pyx_L15; + } + + /* "View.MemoryView":855 + * start = shape - 1 + * else: + * start = 0 # <<<<<<<<<<<<<< + * + * if have_stop: + */ + /*else*/ { + __pyx_v_start = 0; + } + __pyx_L15:; + } + __pyx_L11:; + + /* "View.MemoryView":857 + * start = 0 + * + * if have_stop: # <<<<<<<<<<<<<< + * if stop < 0: + * stop += shape + */ + __pyx_t_2 = (__pyx_v_have_stop != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":858 + * + * if have_stop: + * if stop < 0: # <<<<<<<<<<<<<< + * stop += shape + * if stop < 0: + */ + __pyx_t_2 = ((__pyx_v_stop < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":859 + * if have_stop: + * if stop < 0: + * stop += shape # <<<<<<<<<<<<<< + * if stop < 0: + * stop = 0 + */ + __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape); + + /* "View.MemoryView":860 + * if stop < 0: + * stop += shape + * if stop < 0: # <<<<<<<<<<<<<< + * stop = 0 + * elif stop > shape: + */ + __pyx_t_2 = ((__pyx_v_stop < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":861 + * stop += shape + * if stop < 0: + * stop = 0 # <<<<<<<<<<<<<< + * elif stop > shape: + * stop = shape + */ + __pyx_v_stop = 0; + + /* "View.MemoryView":860 + * if stop < 0: + * stop += shape + * if stop < 0: # <<<<<<<<<<<<<< + * stop = 0 + * elif stop > shape: + */ + } + + /* "View.MemoryView":858 + * + * if have_stop: + * if stop < 0: # <<<<<<<<<<<<<< + * stop += shape + * if stop < 0: + */ + goto __pyx_L17; + } + + /* "View.MemoryView":862 + * if stop < 0: + * stop = 0 + * elif stop > shape: # <<<<<<<<<<<<<< + * stop = shape + * else: + */ + __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":863 + * stop = 0 + * elif stop > shape: + * stop = shape # <<<<<<<<<<<<<< + * else: + * if negative_step: + */ + __pyx_v_stop = __pyx_v_shape; + + /* "View.MemoryView":862 + * if stop < 0: + * stop = 0 + * elif stop > shape: # <<<<<<<<<<<<<< + * stop = shape + * else: + */ + } + __pyx_L17:; + + /* "View.MemoryView":857 + * start = 0 + * + * if have_stop: # <<<<<<<<<<<<<< + * if stop < 0: + * stop += shape + */ + goto __pyx_L16; + } + + /* "View.MemoryView":865 + * stop = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * stop = -1 + * else: + */ + /*else*/ { + __pyx_t_2 = (__pyx_v_negative_step != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":866 + * else: + * if negative_step: + * stop = -1 # <<<<<<<<<<<<<< + * else: + * stop = shape + */ + __pyx_v_stop = -1L; + + /* "View.MemoryView":865 + * stop = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * stop = -1 + * else: + */ + goto __pyx_L19; + } + + /* "View.MemoryView":868 + * stop = -1 + * else: + * stop = shape # <<<<<<<<<<<<<< + * + * if not have_step: + */ + /*else*/ { + __pyx_v_stop = __pyx_v_shape; + } + __pyx_L19:; + } + __pyx_L16:; + + /* "View.MemoryView":870 + * stop = shape + * + * if not have_step: # <<<<<<<<<<<<<< + * step = 1 + * + */ + __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":871 + * + * if not have_step: + * step = 1 # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_step = 1; + + /* "View.MemoryView":870 + * stop = shape + * + * if not have_step: # <<<<<<<<<<<<<< + * step = 1 + * + */ + } + + /* "View.MemoryView":875 + * + * with cython.cdivision(True): + * new_shape = (stop - start) // step # <<<<<<<<<<<<<< + * + * if (stop - start) - step * new_shape: + */ + __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step); + + /* "View.MemoryView":877 + * new_shape = (stop - start) // step + * + * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< + * new_shape += 1 + * + */ + __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":878 + * + * if (stop - start) - step * new_shape: + * new_shape += 1 # <<<<<<<<<<<<<< + * + * if new_shape < 0: + */ + __pyx_v_new_shape = (__pyx_v_new_shape + 1); + + /* "View.MemoryView":877 + * new_shape = (stop - start) // step + * + * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< + * new_shape += 1 + * + */ + } + + /* "View.MemoryView":880 + * new_shape += 1 + * + * if new_shape < 0: # <<<<<<<<<<<<<< + * new_shape = 0 + * + */ + __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":881 + * + * if new_shape < 0: + * new_shape = 0 # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_new_shape = 0; + + /* "View.MemoryView":880 + * new_shape += 1 + * + * if new_shape < 0: # <<<<<<<<<<<<<< + * new_shape = 0 + * + */ + } + + /* "View.MemoryView":884 + * + * + * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<< + * dst.shape[new_ndim] = new_shape + * dst.suboffsets[new_ndim] = suboffset + */ + (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step); + + /* "View.MemoryView":885 + * + * dst.strides[new_ndim] = stride * step + * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<< + * dst.suboffsets[new_ndim] = suboffset + * + */ + (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape; + + /* "View.MemoryView":886 + * dst.strides[new_ndim] = stride * step + * dst.shape[new_ndim] = new_shape + * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<< + * + * + */ + (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset; + } + __pyx_L3:; + + /* "View.MemoryView":889 + * + * + * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< + * dst.data += start * stride + * else: + */ + __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":890 + * + * if suboffset_dim[0] < 0: + * dst.data += start * stride # <<<<<<<<<<<<<< + * else: + * dst.suboffsets[suboffset_dim[0]] += start * stride + */ + __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride)); + + /* "View.MemoryView":889 + * + * + * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< + * dst.data += start * stride + * else: + */ + goto __pyx_L23; + } + + /* "View.MemoryView":892 + * dst.data += start * stride + * else: + * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<< + * + * if suboffset >= 0: + */ + /*else*/ { + __pyx_t_3 = (__pyx_v_suboffset_dim[0]); + (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride)); + } + __pyx_L23:; + + /* "View.MemoryView":894 + * dst.suboffsets[suboffset_dim[0]] += start * stride + * + * if suboffset >= 0: # <<<<<<<<<<<<<< + * if not is_slice: + * if new_ndim == 0: + */ + __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":895 + * + * if suboffset >= 0: + * if not is_slice: # <<<<<<<<<<<<<< + * if new_ndim == 0: + * dst.data = ( dst.data)[0] + suboffset + */ + __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":896 + * if suboffset >= 0: + * if not is_slice: + * if new_ndim == 0: # <<<<<<<<<<<<<< + * dst.data = ( dst.data)[0] + suboffset + * else: + */ + __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":897 + * if not is_slice: + * if new_ndim == 0: + * dst.data = ( dst.data)[0] + suboffset # <<<<<<<<<<<<<< + * else: + * _err_dim(IndexError, "All dimensions preceding dimension %d " + */ + __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset); + + /* "View.MemoryView":896 + * if suboffset >= 0: + * if not is_slice: + * if new_ndim == 0: # <<<<<<<<<<<<<< + * dst.data = ( dst.data)[0] + suboffset + * else: + */ + goto __pyx_L26; + } + + /* "View.MemoryView":899 + * dst.data = ( dst.data)[0] + suboffset + * else: + * _err_dim(IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<< + * "must be indexed and not sliced", dim) + * else: + */ + /*else*/ { + + /* "View.MemoryView":900 + * else: + * _err_dim(IndexError, "All dimensions preceding dimension %d " + * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<< + * else: + * suboffset_dim[0] = new_ndim + */ + __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 899, __pyx_L1_error) + } + __pyx_L26:; + + /* "View.MemoryView":895 + * + * if suboffset >= 0: + * if not is_slice: # <<<<<<<<<<<<<< + * if new_ndim == 0: + * dst.data = ( dst.data)[0] + suboffset + */ + goto __pyx_L25; + } + + /* "View.MemoryView":902 + * "must be indexed and not sliced", dim) + * else: + * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<< + * + * return 0 + */ + /*else*/ { + (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim; + } + __pyx_L25:; + + /* "View.MemoryView":894 + * dst.suboffsets[suboffset_dim[0]] += start * stride + * + * if suboffset >= 0: # <<<<<<<<<<<<<< + * if not is_slice: + * if new_ndim == 0: + */ + } + + /* "View.MemoryView":904 + * suboffset_dim[0] = new_ndim + * + * return 0 # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":807 + * + * @cname('__pyx_memoryview_slice_memviewslice') + * cdef int slice_memviewslice( # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = -1; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":910 + * + * @cname('__pyx_pybuffer_index') + * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 + */ + +static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) { + Py_ssize_t __pyx_v_shape; + Py_ssize_t __pyx_v_stride; + Py_ssize_t __pyx_v_suboffset; + Py_ssize_t __pyx_v_itemsize; + char *__pyx_v_resultp; + char *__pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pybuffer_index", 0); + + /* "View.MemoryView":912 + * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<< + * cdef Py_ssize_t itemsize = view.itemsize + * cdef char *resultp + */ + __pyx_v_suboffset = -1L; + + /* "View.MemoryView":913 + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 + * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<< + * cdef char *resultp + * + */ + __pyx_t_1 = __pyx_v_view->itemsize; + __pyx_v_itemsize = __pyx_t_1; + + /* "View.MemoryView":916 + * cdef char *resultp + * + * if view.ndim == 0: # <<<<<<<<<<<<<< + * shape = view.len / itemsize + * stride = itemsize + */ + __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":917 + * + * if view.ndim == 0: + * shape = view.len / itemsize # <<<<<<<<<<<<<< + * stride = itemsize + * else: + */ + if (unlikely(__pyx_v_itemsize == 0)) { + PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); + __PYX_ERR(2, 917, __pyx_L1_error) + } + else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) { + PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); + __PYX_ERR(2, 917, __pyx_L1_error) + } + __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize); + + /* "View.MemoryView":918 + * if view.ndim == 0: + * shape = view.len / itemsize + * stride = itemsize # <<<<<<<<<<<<<< + * else: + * shape = view.shape[dim] + */ + __pyx_v_stride = __pyx_v_itemsize; + + /* "View.MemoryView":916 + * cdef char *resultp + * + * if view.ndim == 0: # <<<<<<<<<<<<<< + * shape = view.len / itemsize + * stride = itemsize + */ + goto __pyx_L3; + } + + /* "View.MemoryView":920 + * stride = itemsize + * else: + * shape = view.shape[dim] # <<<<<<<<<<<<<< + * stride = view.strides[dim] + * if view.suboffsets != NULL: + */ + /*else*/ { + __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]); + + /* "View.MemoryView":921 + * else: + * shape = view.shape[dim] + * stride = view.strides[dim] # <<<<<<<<<<<<<< + * if view.suboffsets != NULL: + * suboffset = view.suboffsets[dim] + */ + __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]); + + /* "View.MemoryView":922 + * shape = view.shape[dim] + * stride = view.strides[dim] + * if view.suboffsets != NULL: # <<<<<<<<<<<<<< + * suboffset = view.suboffsets[dim] + * + */ + __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":923 + * stride = view.strides[dim] + * if view.suboffsets != NULL: + * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<< + * + * if index < 0: + */ + __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]); + + /* "View.MemoryView":922 + * shape = view.shape[dim] + * stride = view.strides[dim] + * if view.suboffsets != NULL: # <<<<<<<<<<<<<< + * suboffset = view.suboffsets[dim] + * + */ + } + } + __pyx_L3:; + + /* "View.MemoryView":925 + * suboffset = view.suboffsets[dim] + * + * if index < 0: # <<<<<<<<<<<<<< + * index += view.shape[dim] + * if index < 0: + */ + __pyx_t_2 = ((__pyx_v_index < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":926 + * + * if index < 0: + * index += view.shape[dim] # <<<<<<<<<<<<<< + * if index < 0: + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + */ + __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim])); + + /* "View.MemoryView":927 + * if index < 0: + * index += view.shape[dim] + * if index < 0: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + __pyx_t_2 = ((__pyx_v_index < 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":928 + * index += view.shape[dim] + * if index < 0: + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< + * + * if index >= shape: + */ + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 928, __pyx_L1_error) + + /* "View.MemoryView":927 + * if index < 0: + * index += view.shape[dim] + * if index < 0: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + } + + /* "View.MemoryView":925 + * suboffset = view.suboffsets[dim] + * + * if index < 0: # <<<<<<<<<<<<<< + * index += view.shape[dim] + * if index < 0: + */ + } + + /* "View.MemoryView":930 + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + * if index >= shape: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":931 + * + * if index >= shape: + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< + * + * resultp = bufp + index * stride + */ + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 931, __pyx_L1_error) + + /* "View.MemoryView":930 + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + * if index >= shape: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + } + + /* "View.MemoryView":933 + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + * resultp = bufp + index * stride # <<<<<<<<<<<<<< + * if suboffset >= 0: + * resultp = ( resultp)[0] + suboffset + */ + __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride)); + + /* "View.MemoryView":934 + * + * resultp = bufp + index * stride + * if suboffset >= 0: # <<<<<<<<<<<<<< + * resultp = ( resultp)[0] + suboffset + * + */ + __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":935 + * resultp = bufp + index * stride + * if suboffset >= 0: + * resultp = ( resultp)[0] + suboffset # <<<<<<<<<<<<<< + * + * return resultp + */ + __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset); + + /* "View.MemoryView":934 + * + * resultp = bufp + index * stride + * if suboffset >= 0: # <<<<<<<<<<<<<< + * resultp = ( resultp)[0] + suboffset + * + */ + } + + /* "View.MemoryView":937 + * resultp = ( resultp)[0] + suboffset + * + * return resultp # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_resultp; + goto __pyx_L0; + + /* "View.MemoryView":910 + * + * @cname('__pyx_pybuffer_index') + * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":943 + * + * @cname('__pyx_memslice_transpose') + * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< + * cdef int ndim = memslice.memview.view.ndim + * + */ + +static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) { + int __pyx_v_ndim; + Py_ssize_t *__pyx_v_shape; + Py_ssize_t *__pyx_v_strides; + int __pyx_v_i; + int __pyx_v_j; + int __pyx_r; + int __pyx_t_1; + Py_ssize_t *__pyx_t_2; + long __pyx_t_3; + long __pyx_t_4; + Py_ssize_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + int __pyx_t_7; + int __pyx_t_8; + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "View.MemoryView":944 + * @cname('__pyx_memslice_transpose') + * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: + * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<< + * + * cdef Py_ssize_t *shape = memslice.shape + */ + __pyx_t_1 = __pyx_v_memslice->memview->view.ndim; + __pyx_v_ndim = __pyx_t_1; + + /* "View.MemoryView":946 + * cdef int ndim = memslice.memview.view.ndim + * + * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<< + * cdef Py_ssize_t *strides = memslice.strides + * + */ + __pyx_t_2 = __pyx_v_memslice->shape; + __pyx_v_shape = __pyx_t_2; + + /* "View.MemoryView":947 + * + * cdef Py_ssize_t *shape = memslice.shape + * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = __pyx_v_memslice->strides; + __pyx_v_strides = __pyx_t_2; + + /* "View.MemoryView":951 + * + * cdef int i, j + * for i in range(ndim / 2): # <<<<<<<<<<<<<< + * j = ndim - 1 - i + * strides[i], strides[j] = strides[j], strides[i] + */ + __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2); + __pyx_t_4 = __pyx_t_3; + for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) { + __pyx_v_i = __pyx_t_1; + + /* "View.MemoryView":952 + * cdef int i, j + * for i in range(ndim / 2): + * j = ndim - 1 - i # <<<<<<<<<<<<<< + * strides[i], strides[j] = strides[j], strides[i] + * shape[i], shape[j] = shape[j], shape[i] + */ + __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i); + + /* "View.MemoryView":953 + * for i in range(ndim / 2): + * j = ndim - 1 - i + * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<< + * shape[i], shape[j] = shape[j], shape[i] + * + */ + __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]); + __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]); + (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5; + (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6; + + /* "View.MemoryView":954 + * j = ndim - 1 - i + * strides[i], strides[j] = strides[j], strides[i] + * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<< + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: + */ + __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]); + __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]); + (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6; + (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5; + + /* "View.MemoryView":956 + * shape[i], shape[j] = shape[j], shape[i] + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") + * + */ + __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0); + if (!__pyx_t_8) { + } else { + __pyx_t_7 = __pyx_t_8; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0); + __pyx_t_7 = __pyx_t_8; + __pyx_L6_bool_binop_done:; + if (__pyx_t_7) { + + /* "View.MemoryView":957 + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<< + * + * return 1 + */ + __pyx_t_9 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((char *)"Cannot transpose memoryview with indirect dimensions")); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 957, __pyx_L1_error) + + /* "View.MemoryView":956 + * shape[i], shape[j] = shape[j], shape[i] + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") + * + */ + } + } + + /* "View.MemoryView":959 + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") + * + * return 1 # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "View.MemoryView":943 + * + * @cname('__pyx_memslice_transpose') + * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< + * cdef int ndim = memslice.memview.view.ndim + * + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = 0; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":976 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + */ + +/* Python wrapper */ +static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "View.MemoryView":977 + * + * def __dealloc__(self): + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<< + * + * cdef convert_item_to_object(self, char *itemp): + */ + __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1); + + /* "View.MemoryView":976 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":979 + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * if self.to_object_func != NULL: + * return self.to_object_func(itemp) + */ + +static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("convert_item_to_object", 0); + + /* "View.MemoryView":980 + * + * cdef convert_item_to_object(self, char *itemp): + * if self.to_object_func != NULL: # <<<<<<<<<<<<<< + * return self.to_object_func(itemp) + * else: + */ + __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":981 + * cdef convert_item_to_object(self, char *itemp): + * if self.to_object_func != NULL: + * return self.to_object_func(itemp) # <<<<<<<<<<<<<< + * else: + * return memoryview.convert_item_to_object(self, itemp) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":980 + * + * cdef convert_item_to_object(self, char *itemp): + * if self.to_object_func != NULL: # <<<<<<<<<<<<<< + * return self.to_object_func(itemp) + * else: + */ + } + + /* "View.MemoryView":983 + * return self.to_object_func(itemp) + * else: + * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<< + * + * cdef assign_item_from_object(self, char *itemp, object value): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + } + + /* "View.MemoryView":979 + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * if self.to_object_func != NULL: + * return self.to_object_func(itemp) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":985 + * return memoryview.convert_item_to_object(self, itemp) + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * if self.to_dtype_func != NULL: + * self.to_dtype_func(itemp, value) + */ + +static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assign_item_from_object", 0); + + /* "View.MemoryView":986 + * + * cdef assign_item_from_object(self, char *itemp, object value): + * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< + * self.to_dtype_func(itemp, value) + * else: + */ + __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":987 + * cdef assign_item_from_object(self, char *itemp, object value): + * if self.to_dtype_func != NULL: + * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<< + * else: + * memoryview.assign_item_from_object(self, itemp, value) + */ + __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(2, 987, __pyx_L1_error) + + /* "View.MemoryView":986 + * + * cdef assign_item_from_object(self, char *itemp, object value): + * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< + * self.to_dtype_func(itemp, value) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":989 + * self.to_dtype_func(itemp, value) + * else: + * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<< + * + * @property + */ + /*else*/ { + __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __pyx_L3:; + + /* "View.MemoryView":985 + * return memoryview.convert_item_to_object(self, itemp) + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * if self.to_dtype_func != NULL: + * self.to_dtype_func(itemp, value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":992 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.from_object + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":993 + * @property + * def base(self): + * return self.from_object # <<<<<<<<<<<<<< + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->from_object); + __pyx_r = __pyx_v_self->from_object; + goto __pyx_L0; + + /* "View.MemoryView":992 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.from_object + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(2, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(2, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":999 + * + * @cname('__pyx_memoryview_fromslice') + * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< + * int ndim, + * object (*to_object_func)(char *), + */ + +static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) { + struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; + Py_ssize_t __pyx_v_suboffset; + PyObject *__pyx_v_length = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + __Pyx_TypeInfo *__pyx_t_4; + Py_buffer __pyx_t_5; + Py_ssize_t *__pyx_t_6; + Py_ssize_t *__pyx_t_7; + Py_ssize_t *__pyx_t_8; + Py_ssize_t __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("memoryview_fromslice", 0); + + /* "View.MemoryView":1007 + * cdef _memoryviewslice result + * + * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1008 + * + * if memviewslice.memview == Py_None: + * return None # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "View.MemoryView":1007 + * cdef _memoryviewslice result + * + * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< + * return None + * + */ + } + + /* "View.MemoryView":1013 + * + * + * result = _memoryviewslice(None, 0, dtype_is_object) # <<<<<<<<<<<<<< + * + * result.from_slice = memviewslice + */ + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None); + __Pyx_INCREF(__pyx_int_0); + __Pyx_GIVEREF(__pyx_int_0); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "View.MemoryView":1015 + * result = _memoryviewslice(None, 0, dtype_is_object) + * + * result.from_slice = memviewslice # <<<<<<<<<<<<<< + * __PYX_INC_MEMVIEW(&memviewslice, 1) + * + */ + __pyx_v_result->from_slice = __pyx_v_memviewslice; + + /* "View.MemoryView":1016 + * + * result.from_slice = memviewslice + * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<< + * + * result.from_object = ( memviewslice.memview).base + */ + __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1); + + /* "View.MemoryView":1018 + * __PYX_INC_MEMVIEW(&memviewslice, 1) + * + * result.from_object = ( memviewslice.memview).base # <<<<<<<<<<<<<< + * result.typeinfo = memviewslice.memview.typeinfo + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_result->from_object); + __Pyx_DECREF(__pyx_v_result->from_object); + __pyx_v_result->from_object = __pyx_t_2; + __pyx_t_2 = 0; + + /* "View.MemoryView":1019 + * + * result.from_object = ( memviewslice.memview).base + * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<< + * + * result.view = memviewslice.memview.view + */ + __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo; + __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4; + + /* "View.MemoryView":1021 + * result.typeinfo = memviewslice.memview.typeinfo + * + * result.view = memviewslice.memview.view # <<<<<<<<<<<<<< + * result.view.buf = memviewslice.data + * result.view.ndim = ndim + */ + __pyx_t_5 = __pyx_v_memviewslice.memview->view; + __pyx_v_result->__pyx_base.view = __pyx_t_5; + + /* "View.MemoryView":1022 + * + * result.view = memviewslice.memview.view + * result.view.buf = memviewslice.data # <<<<<<<<<<<<<< + * result.view.ndim = ndim + * (<__pyx_buffer *> &result.view).obj = Py_None + */ + __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data); + + /* "View.MemoryView":1023 + * result.view = memviewslice.memview.view + * result.view.buf = memviewslice.data + * result.view.ndim = ndim # <<<<<<<<<<<<<< + * (<__pyx_buffer *> &result.view).obj = Py_None + * Py_INCREF(Py_None) + */ + __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim; + + /* "View.MemoryView":1024 + * result.view.buf = memviewslice.data + * result.view.ndim = ndim + * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<< + * Py_INCREF(Py_None) + * + */ + ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None; + + /* "View.MemoryView":1025 + * result.view.ndim = ndim + * (<__pyx_buffer *> &result.view).obj = Py_None + * Py_INCREF(Py_None) # <<<<<<<<<<<<<< + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: + */ + Py_INCREF(Py_None); + + /* "View.MemoryView":1027 + * Py_INCREF(Py_None) + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< + * result.flags = PyBUF_RECORDS + * else: + */ + __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1028 + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: + * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<< + * else: + * result.flags = PyBUF_RECORDS_RO + */ + __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS; + + /* "View.MemoryView":1027 + * Py_INCREF(Py_None) + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< + * result.flags = PyBUF_RECORDS + * else: + */ + goto __pyx_L4; + } + + /* "View.MemoryView":1030 + * result.flags = PyBUF_RECORDS + * else: + * result.flags = PyBUF_RECORDS_RO # <<<<<<<<<<<<<< + * + * result.view.shape = result.from_slice.shape + */ + /*else*/ { + __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO; + } + __pyx_L4:; + + /* "View.MemoryView":1032 + * result.flags = PyBUF_RECORDS_RO + * + * result.view.shape = result.from_slice.shape # <<<<<<<<<<<<<< + * result.view.strides = result.from_slice.strides + * + */ + __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape); + + /* "View.MemoryView":1033 + * + * result.view.shape = result.from_slice.shape + * result.view.strides = result.from_slice.strides # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides); + + /* "View.MemoryView":1036 + * + * + * result.view.suboffsets = NULL # <<<<<<<<<<<<<< + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: + */ + __pyx_v_result->__pyx_base.view.suboffsets = NULL; + + /* "View.MemoryView":1037 + * + * result.view.suboffsets = NULL + * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<< + * if suboffset >= 0: + * result.view.suboffsets = result.from_slice.suboffsets + */ + __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim); + for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { + __pyx_t_6 = __pyx_t_8; + __pyx_v_suboffset = (__pyx_t_6[0]); + + /* "View.MemoryView":1038 + * result.view.suboffsets = NULL + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * result.view.suboffsets = result.from_slice.suboffsets + * break + */ + __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1039 + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: + * result.view.suboffsets = result.from_slice.suboffsets # <<<<<<<<<<<<<< + * break + * + */ + __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets); + + /* "View.MemoryView":1040 + * if suboffset >= 0: + * result.view.suboffsets = result.from_slice.suboffsets + * break # <<<<<<<<<<<<<< + * + * result.view.len = result.view.itemsize + */ + goto __pyx_L6_break; + + /* "View.MemoryView":1038 + * result.view.suboffsets = NULL + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * result.view.suboffsets = result.from_slice.suboffsets + * break + */ + } + } + __pyx_L6_break:; + + /* "View.MemoryView":1042 + * break + * + * result.view.len = result.view.itemsize # <<<<<<<<<<<<<< + * for length in result.view.shape[:ndim]: + * result.view.len *= length + */ + __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize; + __pyx_v_result->__pyx_base.view.len = __pyx_t_9; + + /* "View.MemoryView":1043 + * + * result.view.len = result.view.itemsize + * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<< + * result.view.len *= length + * + */ + __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim); + for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { + __pyx_t_6 = __pyx_t_8; + __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2); + __pyx_t_2 = 0; + + /* "View.MemoryView":1044 + * result.view.len = result.view.itemsize + * for length in result.view.shape[:ndim]: + * result.view.len *= length # <<<<<<<<<<<<<< + * + * result.to_object_func = to_object_func + */ + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 1044, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result->__pyx_base.view.len = __pyx_t_9; + } + + /* "View.MemoryView":1046 + * result.view.len *= length + * + * result.to_object_func = to_object_func # <<<<<<<<<<<<<< + * result.to_dtype_func = to_dtype_func + * + */ + __pyx_v_result->to_object_func = __pyx_v_to_object_func; + + /* "View.MemoryView":1047 + * + * result.to_object_func = to_object_func + * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<< + * + * return result + */ + __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func; + + /* "View.MemoryView":1049 + * result.to_dtype_func = to_dtype_func + * + * return result # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_get_slice_from_memoryview') + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "View.MemoryView":999 + * + * @cname('__pyx_memoryview_fromslice') + * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< + * int ndim, + * object (*to_object_func)(char *), + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XDECREF(__pyx_v_length); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1052 + * + * @cname('__pyx_memoryview_get_slice_from_memoryview') + * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *mslice) except NULL: + * cdef _memoryviewslice obj + */ + +static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) { + struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0; + __Pyx_memviewslice *__pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_slice_from_memview", 0); + + /* "View.MemoryView":1055 + * __Pyx_memviewslice *mslice) except NULL: + * cdef _memoryviewslice obj + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * obj = memview + * return &obj.from_slice + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1056 + * cdef _memoryviewslice obj + * if isinstance(memview, _memoryviewslice): + * obj = memview # <<<<<<<<<<<<<< + * return &obj.from_slice + * else: + */ + if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 1056, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_v_memview); + __Pyx_INCREF(__pyx_t_3); + __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":1057 + * if isinstance(memview, _memoryviewslice): + * obj = memview + * return &obj.from_slice # <<<<<<<<<<<<<< + * else: + * slice_copy(memview, mslice) + */ + __pyx_r = (&__pyx_v_obj->from_slice); + goto __pyx_L0; + + /* "View.MemoryView":1055 + * __Pyx_memviewslice *mslice) except NULL: + * cdef _memoryviewslice obj + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * obj = memview + * return &obj.from_slice + */ + } + + /* "View.MemoryView":1059 + * return &obj.from_slice + * else: + * slice_copy(memview, mslice) # <<<<<<<<<<<<<< + * return mslice + * + */ + /*else*/ { + __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice); + + /* "View.MemoryView":1060 + * else: + * slice_copy(memview, mslice) + * return mslice # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_slice_copy') + */ + __pyx_r = __pyx_v_mslice; + goto __pyx_L0; + } + + /* "View.MemoryView":1052 + * + * @cname('__pyx_memoryview_get_slice_from_memoryview') + * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *mslice) except NULL: + * cdef _memoryviewslice obj + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_obj); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1063 + * + * @cname('__pyx_memoryview_slice_copy') + * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< + * cdef int dim + * cdef (Py_ssize_t*) shape, strides, suboffsets + */ + +static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) { + int __pyx_v_dim; + Py_ssize_t *__pyx_v_shape; + Py_ssize_t *__pyx_v_strides; + Py_ssize_t *__pyx_v_suboffsets; + __Pyx_RefNannyDeclarations + Py_ssize_t *__pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + Py_ssize_t __pyx_t_5; + __Pyx_RefNannySetupContext("slice_copy", 0); + + /* "View.MemoryView":1067 + * cdef (Py_ssize_t*) shape, strides, suboffsets + * + * shape = memview.view.shape # <<<<<<<<<<<<<< + * strides = memview.view.strides + * suboffsets = memview.view.suboffsets + */ + __pyx_t_1 = __pyx_v_memview->view.shape; + __pyx_v_shape = __pyx_t_1; + + /* "View.MemoryView":1068 + * + * shape = memview.view.shape + * strides = memview.view.strides # <<<<<<<<<<<<<< + * suboffsets = memview.view.suboffsets + * + */ + __pyx_t_1 = __pyx_v_memview->view.strides; + __pyx_v_strides = __pyx_t_1; + + /* "View.MemoryView":1069 + * shape = memview.view.shape + * strides = memview.view.strides + * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<< + * + * dst.memview = <__pyx_memoryview *> memview + */ + __pyx_t_1 = __pyx_v_memview->view.suboffsets; + __pyx_v_suboffsets = __pyx_t_1; + + /* "View.MemoryView":1071 + * suboffsets = memview.view.suboffsets + * + * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<< + * dst.data = memview.view.buf + * + */ + __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview); + + /* "View.MemoryView":1072 + * + * dst.memview = <__pyx_memoryview *> memview + * dst.data = memview.view.buf # <<<<<<<<<<<<<< + * + * for dim in range(memview.view.ndim): + */ + __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf); + + /* "View.MemoryView":1074 + * dst.data = memview.view.buf + * + * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<< + * dst.shape[dim] = shape[dim] + * dst.strides[dim] = strides[dim] + */ + __pyx_t_2 = __pyx_v_memview->view.ndim; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_dim = __pyx_t_4; + + /* "View.MemoryView":1075 + * + * for dim in range(memview.view.ndim): + * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<< + * dst.strides[dim] = strides[dim] + * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 + */ + (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]); + + /* "View.MemoryView":1076 + * for dim in range(memview.view.ndim): + * dst.shape[dim] = shape[dim] + * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<< + * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 + * + */ + (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]); + + /* "View.MemoryView":1077 + * dst.shape[dim] = shape[dim] + * dst.strides[dim] = strides[dim] + * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_object') + */ + if ((__pyx_v_suboffsets != 0)) { + __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]); + } else { + __pyx_t_5 = -1L; + } + (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5; + } + + /* "View.MemoryView":1063 + * + * @cname('__pyx_memoryview_slice_copy') + * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< + * cdef int dim + * cdef (Py_ssize_t*) shape, strides, suboffsets + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":1080 + * + * @cname('__pyx_memoryview_copy_object') + * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< + * "Create a new memoryview object" + * cdef __Pyx_memviewslice memviewslice + */ + +static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) { + __Pyx_memviewslice __pyx_v_memviewslice; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("memoryview_copy", 0); + + /* "View.MemoryView":1083 + * "Create a new memoryview object" + * cdef __Pyx_memviewslice memviewslice + * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<< + * return memoryview_copy_from_slice(memview, &memviewslice) + * + */ + __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice)); + + /* "View.MemoryView":1084 + * cdef __Pyx_memviewslice memviewslice + * slice_copy(memview, &memviewslice) + * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_object_from_slice') + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":1080 + * + * @cname('__pyx_memoryview_copy_object') + * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< + * "Create a new memoryview object" + * cdef __Pyx_memviewslice memviewslice + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1087 + * + * @cname('__pyx_memoryview_copy_object_from_slice') + * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< + * """ + * Create a new memoryview object from a given memoryview object and slice. + */ + +static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) { + PyObject *(*__pyx_v_to_object_func)(char *); + int (*__pyx_v_to_dtype_func)(char *, PyObject *); + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *(*__pyx_t_3)(char *); + int (*__pyx_t_4)(char *, PyObject *); + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 0); + + /* "View.MemoryView":1094 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * to_object_func = (<_memoryviewslice> memview).to_object_func + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1095 + * + * if isinstance(memview, _memoryviewslice): + * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<< + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + * else: + */ + __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func; + __pyx_v_to_object_func = __pyx_t_3; + + /* "View.MemoryView":1096 + * if isinstance(memview, _memoryviewslice): + * to_object_func = (<_memoryviewslice> memview).to_object_func + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<< + * else: + * to_object_func = NULL + */ + __pyx_t_4 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func; + __pyx_v_to_dtype_func = __pyx_t_4; + + /* "View.MemoryView":1094 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * to_object_func = (<_memoryviewslice> memview).to_object_func + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1098 + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + * else: + * to_object_func = NULL # <<<<<<<<<<<<<< + * to_dtype_func = NULL + * + */ + /*else*/ { + __pyx_v_to_object_func = NULL; + + /* "View.MemoryView":1099 + * else: + * to_object_func = NULL + * to_dtype_func = NULL # <<<<<<<<<<<<<< + * + * return memoryview_fromslice(memviewslice[0], memview.view.ndim, + */ + __pyx_v_to_dtype_func = NULL; + } + __pyx_L3:; + + /* "View.MemoryView":1101 + * to_dtype_func = NULL + * + * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<< + * to_object_func, to_dtype_func, + * memview.dtype_is_object) + */ + __Pyx_XDECREF(__pyx_r); + + /* "View.MemoryView":1103 + * return memoryview_fromslice(memviewslice[0], memview.view.ndim, + * to_object_func, to_dtype_func, + * memview.dtype_is_object) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "View.MemoryView":1087 + * + * @cname('__pyx_memoryview_copy_object_from_slice') + * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< + * """ + * Create a new memoryview object from a given memoryview object and slice. + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1109 + * + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< + * if arg < 0: + * return -arg + */ + +static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) { + Py_ssize_t __pyx_r; + int __pyx_t_1; + + /* "View.MemoryView":1110 + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: + * if arg < 0: # <<<<<<<<<<<<<< + * return -arg + * else: + */ + __pyx_t_1 = ((__pyx_v_arg < 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1111 + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: + * if arg < 0: + * return -arg # <<<<<<<<<<<<<< + * else: + * return arg + */ + __pyx_r = (-__pyx_v_arg); + goto __pyx_L0; + + /* "View.MemoryView":1110 + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: + * if arg < 0: # <<<<<<<<<<<<<< + * return -arg + * else: + */ + } + + /* "View.MemoryView":1113 + * return -arg + * else: + * return arg # <<<<<<<<<<<<<< + * + * @cname('__pyx_get_best_slice_order') + */ + /*else*/ { + __pyx_r = __pyx_v_arg; + goto __pyx_L0; + } + + /* "View.MemoryView":1109 + * + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< + * if arg < 0: + * return -arg + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1116 + * + * @cname('__pyx_get_best_slice_order') + * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< + * """ + * Figure out the best memory access order for a given slice. + */ + +static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) { + int __pyx_v_i; + Py_ssize_t __pyx_v_c_stride; + Py_ssize_t __pyx_v_f_stride; + char __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + + /* "View.MemoryView":1121 + * """ + * cdef int i + * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<< + * cdef Py_ssize_t f_stride = 0 + * + */ + __pyx_v_c_stride = 0; + + /* "View.MemoryView":1122 + * cdef int i + * cdef Py_ssize_t c_stride = 0 + * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<< + * + * for i in range(ndim - 1, -1, -1): + */ + __pyx_v_f_stride = 0; + + /* "View.MemoryView":1124 + * cdef Py_ssize_t f_stride = 0 + * + * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< + * if mslice.shape[i] > 1: + * c_stride = mslice.strides[i] + */ + for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { + __pyx_v_i = __pyx_t_1; + + /* "View.MemoryView":1125 + * + * for i in range(ndim - 1, -1, -1): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * c_stride = mslice.strides[i] + * break + */ + __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1126 + * for i in range(ndim - 1, -1, -1): + * if mslice.shape[i] > 1: + * c_stride = mslice.strides[i] # <<<<<<<<<<<<<< + * break + * + */ + __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]); + + /* "View.MemoryView":1127 + * if mslice.shape[i] > 1: + * c_stride = mslice.strides[i] + * break # <<<<<<<<<<<<<< + * + * for i in range(ndim): + */ + goto __pyx_L4_break; + + /* "View.MemoryView":1125 + * + * for i in range(ndim - 1, -1, -1): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * c_stride = mslice.strides[i] + * break + */ + } + } + __pyx_L4_break:; + + /* "View.MemoryView":1129 + * break + * + * for i in range(ndim): # <<<<<<<<<<<<<< + * if mslice.shape[i] > 1: + * f_stride = mslice.strides[i] + */ + __pyx_t_1 = __pyx_v_ndim; + __pyx_t_3 = __pyx_t_1; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1130 + * + * for i in range(ndim): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * f_stride = mslice.strides[i] + * break + */ + __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1131 + * for i in range(ndim): + * if mslice.shape[i] > 1: + * f_stride = mslice.strides[i] # <<<<<<<<<<<<<< + * break + * + */ + __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]); + + /* "View.MemoryView":1132 + * if mslice.shape[i] > 1: + * f_stride = mslice.strides[i] + * break # <<<<<<<<<<<<<< + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): + */ + goto __pyx_L7_break; + + /* "View.MemoryView":1130 + * + * for i in range(ndim): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * f_stride = mslice.strides[i] + * break + */ + } + } + __pyx_L7_break:; + + /* "View.MemoryView":1134 + * break + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< + * return 'C' + * else: + */ + __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1135 + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): + * return 'C' # <<<<<<<<<<<<<< + * else: + * return 'F' + */ + __pyx_r = 'C'; + goto __pyx_L0; + + /* "View.MemoryView":1134 + * break + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< + * return 'C' + * else: + */ + } + + /* "View.MemoryView":1137 + * return 'C' + * else: + * return 'F' # <<<<<<<<<<<<<< + * + * @cython.cdivision(True) + */ + /*else*/ { + __pyx_r = 'F'; + goto __pyx_L0; + } + + /* "View.MemoryView":1116 + * + * @cname('__pyx_get_best_slice_order') + * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< + * """ + * Figure out the best memory access order for a given slice. + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1140 + * + * @cython.cdivision(True) + * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< + * char *dst_data, Py_ssize_t *dst_strides, + * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, + */ + +static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) { + CYTHON_UNUSED Py_ssize_t __pyx_v_i; + CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent; + Py_ssize_t __pyx_v_dst_extent; + Py_ssize_t __pyx_v_src_stride; + Py_ssize_t __pyx_v_dst_stride; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + + /* "View.MemoryView":1147 + * + * cdef Py_ssize_t i + * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t dst_extent = dst_shape[0] + * cdef Py_ssize_t src_stride = src_strides[0] + */ + __pyx_v_src_extent = (__pyx_v_src_shape[0]); + + /* "View.MemoryView":1148 + * cdef Py_ssize_t i + * cdef Py_ssize_t src_extent = src_shape[0] + * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t src_stride = src_strides[0] + * cdef Py_ssize_t dst_stride = dst_strides[0] + */ + __pyx_v_dst_extent = (__pyx_v_dst_shape[0]); + + /* "View.MemoryView":1149 + * cdef Py_ssize_t src_extent = src_shape[0] + * cdef Py_ssize_t dst_extent = dst_shape[0] + * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t dst_stride = dst_strides[0] + * + */ + __pyx_v_src_stride = (__pyx_v_src_strides[0]); + + /* "View.MemoryView":1150 + * cdef Py_ssize_t dst_extent = dst_shape[0] + * cdef Py_ssize_t src_stride = src_strides[0] + * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<< + * + * if ndim == 1: + */ + __pyx_v_dst_stride = (__pyx_v_dst_strides[0]); + + /* "View.MemoryView":1152 + * cdef Py_ssize_t dst_stride = dst_strides[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): + */ + __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1153 + * + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) + */ + __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + + /* "View.MemoryView":1154 + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): # <<<<<<<<<<<<<< + * memcpy(dst_data, src_data, itemsize * dst_extent) + * else: + */ + __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize); + if (__pyx_t_2) { + __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride)); + } + __pyx_t_3 = (__pyx_t_2 != 0); + __pyx_t_1 = __pyx_t_3; + __pyx_L5_bool_binop_done:; + + /* "View.MemoryView":1153 + * + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) + */ + if (__pyx_t_1) { + + /* "View.MemoryView":1155 + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<< + * else: + * for i in range(dst_extent): + */ + (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent))); + + /* "View.MemoryView":1153 + * + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) + */ + goto __pyx_L4; + } + + /* "View.MemoryView":1157 + * memcpy(dst_data, src_data, itemsize * dst_extent) + * else: + * for i in range(dst_extent): # <<<<<<<<<<<<<< + * memcpy(dst_data, src_data, itemsize) + * src_data += src_stride + */ + /*else*/ { + __pyx_t_4 = __pyx_v_dst_extent; + __pyx_t_5 = __pyx_t_4; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1158 + * else: + * for i in range(dst_extent): + * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<< + * src_data += src_stride + * dst_data += dst_stride + */ + (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize)); + + /* "View.MemoryView":1159 + * for i in range(dst_extent): + * memcpy(dst_data, src_data, itemsize) + * src_data += src_stride # <<<<<<<<<<<<<< + * dst_data += dst_stride + * else: + */ + __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); + + /* "View.MemoryView":1160 + * memcpy(dst_data, src_data, itemsize) + * src_data += src_stride + * dst_data += dst_stride # <<<<<<<<<<<<<< + * else: + * for i in range(dst_extent): + */ + __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); + } + } + __pyx_L4:; + + /* "View.MemoryView":1152 + * cdef Py_ssize_t dst_stride = dst_strides[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1162 + * dst_data += dst_stride + * else: + * for i in range(dst_extent): # <<<<<<<<<<<<<< + * _copy_strided_to_strided(src_data, src_strides + 1, + * dst_data, dst_strides + 1, + */ + /*else*/ { + __pyx_t_4 = __pyx_v_dst_extent; + __pyx_t_5 = __pyx_t_4; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1163 + * else: + * for i in range(dst_extent): + * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<< + * dst_data, dst_strides + 1, + * src_shape + 1, dst_shape + 1, + */ + _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize); + + /* "View.MemoryView":1167 + * src_shape + 1, dst_shape + 1, + * ndim - 1, itemsize) + * src_data += src_stride # <<<<<<<<<<<<<< + * dst_data += dst_stride + * + */ + __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); + + /* "View.MemoryView":1168 + * ndim - 1, itemsize) + * src_data += src_stride + * dst_data += dst_stride # <<<<<<<<<<<<<< + * + * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, + */ + __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); + } + } + __pyx_L3:; + + /* "View.MemoryView":1140 + * + * @cython.cdivision(True) + * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< + * char *dst_data, Py_ssize_t *dst_strides, + * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, + */ + + /* function exit code */ +} + +/* "View.MemoryView":1170 + * dst_data += dst_stride + * + * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * int ndim, size_t itemsize) nogil: + */ + +static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) { + + /* "View.MemoryView":1173 + * __Pyx_memviewslice *dst, + * int ndim, size_t itemsize) nogil: + * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<< + * src.shape, dst.shape, ndim, itemsize) + * + */ + _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize); + + /* "View.MemoryView":1170 + * dst_data += dst_stride + * + * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * int ndim, size_t itemsize) nogil: + */ + + /* function exit code */ +} + +/* "View.MemoryView":1177 + * + * @cname('__pyx_memoryview_slice_get_size') + * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< + * "Return the size of the memory occupied by the slice in number of bytes" + * cdef Py_ssize_t shape, size = src.memview.view.itemsize + */ + +static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) { + Py_ssize_t __pyx_v_shape; + Py_ssize_t __pyx_v_size; + Py_ssize_t __pyx_r; + Py_ssize_t __pyx_t_1; + Py_ssize_t *__pyx_t_2; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + + /* "View.MemoryView":1179 + * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: + * "Return the size of the memory occupied by the slice in number of bytes" + * cdef Py_ssize_t shape, size = src.memview.view.itemsize # <<<<<<<<<<<<<< + * + * for shape in src.shape[:ndim]: + */ + __pyx_t_1 = __pyx_v_src->memview->view.itemsize; + __pyx_v_size = __pyx_t_1; + + /* "View.MemoryView":1181 + * cdef Py_ssize_t shape, size = src.memview.view.itemsize + * + * for shape in src.shape[:ndim]: # <<<<<<<<<<<<<< + * size *= shape + * + */ + __pyx_t_3 = (__pyx_v_src->shape + __pyx_v_ndim); + for (__pyx_t_4 = __pyx_v_src->shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { + __pyx_t_2 = __pyx_t_4; + __pyx_v_shape = (__pyx_t_2[0]); + + /* "View.MemoryView":1182 + * + * for shape in src.shape[:ndim]: + * size *= shape # <<<<<<<<<<<<<< + * + * return size + */ + __pyx_v_size = (__pyx_v_size * __pyx_v_shape); + } + + /* "View.MemoryView":1184 + * size *= shape + * + * return size # <<<<<<<<<<<<<< + * + * @cname('__pyx_fill_contig_strides_array') + */ + __pyx_r = __pyx_v_size; + goto __pyx_L0; + + /* "View.MemoryView":1177 + * + * @cname('__pyx_memoryview_slice_get_size') + * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< + * "Return the size of the memory occupied by the slice in number of bytes" + * cdef Py_ssize_t shape, size = src.memview.view.itemsize + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1187 + * + * @cname('__pyx_fill_contig_strides_array') + * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< + * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, + * int ndim, char order) nogil: + */ + +static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) { + int __pyx_v_idx; + Py_ssize_t __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + + /* "View.MemoryView":1196 + * cdef int idx + * + * if order == 'F': # <<<<<<<<<<<<<< + * for idx in range(ndim): + * strides[idx] = stride + */ + __pyx_t_1 = ((__pyx_v_order == 'F') != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1197 + * + * if order == 'F': + * for idx in range(ndim): # <<<<<<<<<<<<<< + * strides[idx] = stride + * stride *= shape[idx] + */ + __pyx_t_2 = __pyx_v_ndim; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_idx = __pyx_t_4; + + /* "View.MemoryView":1198 + * if order == 'F': + * for idx in range(ndim): + * strides[idx] = stride # <<<<<<<<<<<<<< + * stride *= shape[idx] + * else: + */ + (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; + + /* "View.MemoryView":1199 + * for idx in range(ndim): + * strides[idx] = stride + * stride *= shape[idx] # <<<<<<<<<<<<<< + * else: + * for idx in range(ndim - 1, -1, -1): + */ + __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); + } + + /* "View.MemoryView":1196 + * cdef int idx + * + * if order == 'F': # <<<<<<<<<<<<<< + * for idx in range(ndim): + * strides[idx] = stride + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1201 + * stride *= shape[idx] + * else: + * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< + * strides[idx] = stride + * stride *= shape[idx] + */ + /*else*/ { + for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) { + __pyx_v_idx = __pyx_t_2; + + /* "View.MemoryView":1202 + * else: + * for idx in range(ndim - 1, -1, -1): + * strides[idx] = stride # <<<<<<<<<<<<<< + * stride *= shape[idx] + * + */ + (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; + + /* "View.MemoryView":1203 + * for idx in range(ndim - 1, -1, -1): + * strides[idx] = stride + * stride *= shape[idx] # <<<<<<<<<<<<<< + * + * return stride + */ + __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); + } + } + __pyx_L3:; + + /* "View.MemoryView":1205 + * stride *= shape[idx] + * + * return stride # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_data_to_temp') + */ + __pyx_r = __pyx_v_stride; + goto __pyx_L0; + + /* "View.MemoryView":1187 + * + * @cname('__pyx_fill_contig_strides_array') + * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< + * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, + * int ndim, char order) nogil: + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1208 + * + * @cname('__pyx_memoryview_copy_data_to_temp') + * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *tmpslice, + * char order, + */ + +static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) { + int __pyx_v_i; + void *__pyx_v_result; + size_t __pyx_v_itemsize; + size_t __pyx_v_size; + void *__pyx_r; + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + struct __pyx_memoryview_obj *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "View.MemoryView":1219 + * cdef void *result + * + * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< + * cdef size_t size = slice_get_size(src, ndim) + * + */ + __pyx_t_1 = __pyx_v_src->memview->view.itemsize; + __pyx_v_itemsize = __pyx_t_1; + + /* "View.MemoryView":1220 + * + * cdef size_t itemsize = src.memview.view.itemsize + * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<< + * + * result = malloc(size) + */ + __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim); + + /* "View.MemoryView":1222 + * cdef size_t size = slice_get_size(src, ndim) + * + * result = malloc(size) # <<<<<<<<<<<<<< + * if not result: + * _err(MemoryError, NULL) + */ + __pyx_v_result = malloc(__pyx_v_size); + + /* "View.MemoryView":1223 + * + * result = malloc(size) + * if not result: # <<<<<<<<<<<<<< + * _err(MemoryError, NULL) + * + */ + __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1224 + * result = malloc(size) + * if not result: + * _err(MemoryError, NULL) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 1224, __pyx_L1_error) + + /* "View.MemoryView":1223 + * + * result = malloc(size) + * if not result: # <<<<<<<<<<<<<< + * _err(MemoryError, NULL) + * + */ + } + + /* "View.MemoryView":1227 + * + * + * tmpslice.data = result # <<<<<<<<<<<<<< + * tmpslice.memview = src.memview + * for i in range(ndim): + */ + __pyx_v_tmpslice->data = ((char *)__pyx_v_result); + + /* "View.MemoryView":1228 + * + * tmpslice.data = result + * tmpslice.memview = src.memview # <<<<<<<<<<<<<< + * for i in range(ndim): + * tmpslice.shape[i] = src.shape[i] + */ + __pyx_t_4 = __pyx_v_src->memview; + __pyx_v_tmpslice->memview = __pyx_t_4; + + /* "View.MemoryView":1229 + * tmpslice.data = result + * tmpslice.memview = src.memview + * for i in range(ndim): # <<<<<<<<<<<<<< + * tmpslice.shape[i] = src.shape[i] + * tmpslice.suboffsets[i] = -1 + */ + __pyx_t_3 = __pyx_v_ndim; + __pyx_t_5 = __pyx_t_3; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1230 + * tmpslice.memview = src.memview + * for i in range(ndim): + * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<< + * tmpslice.suboffsets[i] = -1 + * + */ + (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]); + + /* "View.MemoryView":1231 + * for i in range(ndim): + * tmpslice.shape[i] = src.shape[i] + * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< + * + * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, + */ + (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L; + } + + /* "View.MemoryView":1233 + * tmpslice.suboffsets[i] = -1 + * + * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, # <<<<<<<<<<<<<< + * ndim, order) + * + */ + (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order)); + + /* "View.MemoryView":1237 + * + * + * for i in range(ndim): # <<<<<<<<<<<<<< + * if tmpslice.shape[i] == 1: + * tmpslice.strides[i] = 0 + */ + __pyx_t_3 = __pyx_v_ndim; + __pyx_t_5 = __pyx_t_3; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1238 + * + * for i in range(ndim): + * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< + * tmpslice.strides[i] = 0 + * + */ + __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1239 + * for i in range(ndim): + * if tmpslice.shape[i] == 1: + * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<< + * + * if slice_is_contig(src[0], order, ndim): + */ + (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0; + + /* "View.MemoryView":1238 + * + * for i in range(ndim): + * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< + * tmpslice.strides[i] = 0 + * + */ + } + } + + /* "View.MemoryView":1241 + * tmpslice.strides[i] = 0 + * + * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< + * memcpy(result, src.data, size) + * else: + */ + __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1242 + * + * if slice_is_contig(src[0], order, ndim): + * memcpy(result, src.data, size) # <<<<<<<<<<<<<< + * else: + * copy_strided_to_strided(src, tmpslice, ndim, itemsize) + */ + (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size)); + + /* "View.MemoryView":1241 + * tmpslice.strides[i] = 0 + * + * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< + * memcpy(result, src.data, size) + * else: + */ + goto __pyx_L9; + } + + /* "View.MemoryView":1244 + * memcpy(result, src.data, size) + * else: + * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<< + * + * return result + */ + /*else*/ { + copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize); + } + __pyx_L9:; + + /* "View.MemoryView":1246 + * copy_strided_to_strided(src, tmpslice, ndim, itemsize) + * + * return result # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_result; + goto __pyx_L0; + + /* "View.MemoryView":1208 + * + * @cname('__pyx_memoryview_copy_data_to_temp') + * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *tmpslice, + * char order, + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = NULL; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1251 + * + * @cname('__pyx_memoryview_err_extents') + * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % + */ + +static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("_err_extents", 0); + + /* "View.MemoryView":1254 + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % + * (i, extent1, extent2)) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_err_dim') + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + + /* "View.MemoryView":1253 + * cdef int _err_extents(int i, Py_ssize_t extent1, + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % # <<<<<<<<<<<<<< + * (i, extent1, extent2)) + * + */ + __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(2, 1253, __pyx_L1_error) + + /* "View.MemoryView":1251 + * + * @cname('__pyx_memoryview_err_extents') + * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "View.MemoryView":1257 + * + * @cname('__pyx_memoryview_err_dim') + * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii') % dim) + * + */ + +static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, char *__pyx_v_msg, int __pyx_v_dim) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("_err_dim", 0); + __Pyx_INCREF(__pyx_v_error); + + /* "View.MemoryView":1258 + * @cname('__pyx_memoryview_err_dim') + * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: + * raise error(msg.decode('ascii') % dim) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_err') + */ + __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_INCREF(__pyx_v_error); + __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(2, 1258, __pyx_L1_error) + + /* "View.MemoryView":1257 + * + * @cname('__pyx_memoryview_err_dim') + * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii') % dim) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "View.MemoryView":1261 + * + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< + * if msg != NULL: + * raise error(msg.decode('ascii')) + */ + +static int __pyx_memoryview_err(PyObject *__pyx_v_error, char *__pyx_v_msg) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("_err", 0); + __Pyx_INCREF(__pyx_v_error); + + /* "View.MemoryView":1262 + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: + * if msg != NULL: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii')) + * else: + */ + __pyx_t_1 = ((__pyx_v_msg != NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":1263 + * cdef int _err(object error, char *msg) except -1 with gil: + * if msg != NULL: + * raise error(msg.decode('ascii')) # <<<<<<<<<<<<<< + * else: + * raise error + */ + __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_error); + __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(2, 1263, __pyx_L1_error) + + /* "View.MemoryView":1262 + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: + * if msg != NULL: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii')) + * else: + */ + } + + /* "View.MemoryView":1265 + * raise error(msg.decode('ascii')) + * else: + * raise error # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_contents') + */ + /*else*/ { + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(2, 1265, __pyx_L1_error) + } + + /* "View.MemoryView":1261 + * + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< + * if msg != NULL: + * raise error(msg.decode('ascii')) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "View.MemoryView":1268 + * + * @cname('__pyx_memoryview_copy_contents') + * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice dst, + * int src_ndim, int dst_ndim, + */ + +static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) { + void *__pyx_v_tmpdata; + size_t __pyx_v_itemsize; + int __pyx_v_i; + char __pyx_v_order; + int __pyx_v_broadcasting; + int __pyx_v_direct_copy; + __Pyx_memviewslice __pyx_v_tmp; + int __pyx_v_ndim; + int __pyx_r; + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + void *__pyx_t_7; + int __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "View.MemoryView":1276 + * Check for overlapping memory and verify the shapes. + * """ + * cdef void *tmpdata = NULL # <<<<<<<<<<<<<< + * cdef size_t itemsize = src.memview.view.itemsize + * cdef int i + */ + __pyx_v_tmpdata = NULL; + + /* "View.MemoryView":1277 + * """ + * cdef void *tmpdata = NULL + * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< + * cdef int i + * cdef char order = get_best_order(&src, src_ndim) + */ + __pyx_t_1 = __pyx_v_src.memview->view.itemsize; + __pyx_v_itemsize = __pyx_t_1; + + /* "View.MemoryView":1279 + * cdef size_t itemsize = src.memview.view.itemsize + * cdef int i + * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<< + * cdef bint broadcasting = False + * cdef bint direct_copy = False + */ + __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim); + + /* "View.MemoryView":1280 + * cdef int i + * cdef char order = get_best_order(&src, src_ndim) + * cdef bint broadcasting = False # <<<<<<<<<<<<<< + * cdef bint direct_copy = False + * cdef __Pyx_memviewslice tmp + */ + __pyx_v_broadcasting = 0; + + /* "View.MemoryView":1281 + * cdef char order = get_best_order(&src, src_ndim) + * cdef bint broadcasting = False + * cdef bint direct_copy = False # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice tmp + * + */ + __pyx_v_direct_copy = 0; + + /* "View.MemoryView":1284 + * cdef __Pyx_memviewslice tmp + * + * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: + */ + __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1285 + * + * if src_ndim < dst_ndim: + * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<< + * elif dst_ndim < src_ndim: + * broadcast_leading(&dst, dst_ndim, src_ndim) + */ + __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim); + + /* "View.MemoryView":1284 + * cdef __Pyx_memviewslice tmp + * + * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1286 + * if src_ndim < dst_ndim: + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&dst, dst_ndim, src_ndim) + * + */ + __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1287 + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: + * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<< + * + * cdef int ndim = max(src_ndim, dst_ndim) + */ + __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim); + + /* "View.MemoryView":1286 + * if src_ndim < dst_ndim: + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&dst, dst_ndim, src_ndim) + * + */ + } + __pyx_L3:; + + /* "View.MemoryView":1289 + * broadcast_leading(&dst, dst_ndim, src_ndim) + * + * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<< + * + * for i in range(ndim): + */ + __pyx_t_3 = __pyx_v_dst_ndim; + __pyx_t_4 = __pyx_v_src_ndim; + if (((__pyx_t_3 > __pyx_t_4) != 0)) { + __pyx_t_5 = __pyx_t_3; + } else { + __pyx_t_5 = __pyx_t_4; + } + __pyx_v_ndim = __pyx_t_5; + + /* "View.MemoryView":1291 + * cdef int ndim = max(src_ndim, dst_ndim) + * + * for i in range(ndim): # <<<<<<<<<<<<<< + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: + */ + __pyx_t_5 = __pyx_v_ndim; + __pyx_t_3 = __pyx_t_5; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1292 + * + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< + * if src.shape[i] == 1: + * broadcasting = True + */ + __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1293 + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: # <<<<<<<<<<<<<< + * broadcasting = True + * src.strides[i] = 0 + */ + __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1294 + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: + * broadcasting = True # <<<<<<<<<<<<<< + * src.strides[i] = 0 + * else: + */ + __pyx_v_broadcasting = 1; + + /* "View.MemoryView":1295 + * if src.shape[i] == 1: + * broadcasting = True + * src.strides[i] = 0 # <<<<<<<<<<<<<< + * else: + * _err_extents(i, dst.shape[i], src.shape[i]) + */ + (__pyx_v_src.strides[__pyx_v_i]) = 0; + + /* "View.MemoryView":1293 + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: # <<<<<<<<<<<<<< + * broadcasting = True + * src.strides[i] = 0 + */ + goto __pyx_L7; + } + + /* "View.MemoryView":1297 + * src.strides[i] = 0 + * else: + * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<< + * + * if src.suboffsets[i] >= 0: + */ + /*else*/ { + __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 1297, __pyx_L1_error) + } + __pyx_L7:; + + /* "View.MemoryView":1292 + * + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< + * if src.shape[i] == 1: + * broadcasting = True + */ + } + + /* "View.MemoryView":1299 + * _err_extents(i, dst.shape[i], src.shape[i]) + * + * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + */ + __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1300 + * + * if src.suboffsets[i] >= 0: + * _err_dim(ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<< + * + * if slices_overlap(&src, &dst, ndim, itemsize): + */ + __pyx_t_6 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Dimension %d is not direct"), __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 1300, __pyx_L1_error) + + /* "View.MemoryView":1299 + * _err_extents(i, dst.shape[i], src.shape[i]) + * + * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + */ + } + } + + /* "View.MemoryView":1302 + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< + * + * if not slice_is_contig(src, order, ndim): + */ + __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1304 + * if slices_overlap(&src, &dst, ndim, itemsize): + * + * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< + * order = get_best_order(&dst, ndim) + * + */ + __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1305 + * + * if not slice_is_contig(src, order, ndim): + * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<< + * + * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) + */ + __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim); + + /* "View.MemoryView":1304 + * if slices_overlap(&src, &dst, ndim, itemsize): + * + * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< + * order = get_best_order(&dst, ndim) + * + */ + } + + /* "View.MemoryView":1307 + * order = get_best_order(&dst, ndim) + * + * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<< + * src = tmp + * + */ + __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(2, 1307, __pyx_L1_error) + __pyx_v_tmpdata = __pyx_t_7; + + /* "View.MemoryView":1308 + * + * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) + * src = tmp # <<<<<<<<<<<<<< + * + * if not broadcasting: + */ + __pyx_v_src = __pyx_v_tmp; + + /* "View.MemoryView":1302 + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< + * + * if not slice_is_contig(src, order, ndim): + */ + } + + /* "View.MemoryView":1310 + * src = tmp + * + * if not broadcasting: # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1313 + * + * + * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): + */ + __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1314 + * + * if slice_is_contig(src, 'C', ndim): + * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<< + * elif slice_is_contig(src, 'F', ndim): + * direct_copy = slice_is_contig(dst, 'F', ndim) + */ + __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim); + + /* "View.MemoryView":1313 + * + * + * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): + */ + goto __pyx_L12; + } + + /* "View.MemoryView":1315 + * if slice_is_contig(src, 'C', ndim): + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + */ + __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1316 + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): + * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<< + * + * if direct_copy: + */ + __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim); + + /* "View.MemoryView":1315 + * if slice_is_contig(src, 'C', ndim): + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + */ + } + __pyx_L12:; + + /* "View.MemoryView":1318 + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + * if direct_copy: # <<<<<<<<<<<<<< + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + */ + __pyx_t_2 = (__pyx_v_direct_copy != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1320 + * if direct_copy: + * + * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) + * refcount_copying(&dst, dtype_is_object, ndim, True) + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); + + /* "View.MemoryView":1321 + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<< + * refcount_copying(&dst, dtype_is_object, ndim, True) + * free(tmpdata) + */ + (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim))); + + /* "View.MemoryView":1322 + * refcount_copying(&dst, dtype_is_object, ndim, False) + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) + * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< + * free(tmpdata) + * return 0 + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); + + /* "View.MemoryView":1323 + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) + * refcount_copying(&dst, dtype_is_object, ndim, True) + * free(tmpdata) # <<<<<<<<<<<<<< + * return 0 + * + */ + free(__pyx_v_tmpdata); + + /* "View.MemoryView":1324 + * refcount_copying(&dst, dtype_is_object, ndim, True) + * free(tmpdata) + * return 0 # <<<<<<<<<<<<<< + * + * if order == 'F' == get_best_order(&dst, ndim): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":1318 + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + * if direct_copy: # <<<<<<<<<<<<<< + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + */ + } + + /* "View.MemoryView":1310 + * src = tmp + * + * if not broadcasting: # <<<<<<<<<<<<<< + * + * + */ + } + + /* "View.MemoryView":1326 + * return 0 + * + * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = (__pyx_v_order == 'F'); + if (__pyx_t_2) { + __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim)); + } + __pyx_t_8 = (__pyx_t_2 != 0); + if (__pyx_t_8) { + + /* "View.MemoryView":1329 + * + * + * transpose_memslice(&src) # <<<<<<<<<<<<<< + * transpose_memslice(&dst) + * + */ + __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(2, 1329, __pyx_L1_error) + + /* "View.MemoryView":1330 + * + * transpose_memslice(&src) + * transpose_memslice(&dst) # <<<<<<<<<<<<<< + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + */ + __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(2, 1330, __pyx_L1_error) + + /* "View.MemoryView":1326 + * return 0 + * + * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< + * + * + */ + } + + /* "View.MemoryView":1332 + * transpose_memslice(&dst) + * + * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< + * copy_strided_to_strided(&src, &dst, ndim, itemsize) + * refcount_copying(&dst, dtype_is_object, ndim, True) + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); + + /* "View.MemoryView":1333 + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<< + * refcount_copying(&dst, dtype_is_object, ndim, True) + * + */ + copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize); + + /* "View.MemoryView":1334 + * refcount_copying(&dst, dtype_is_object, ndim, False) + * copy_strided_to_strided(&src, &dst, ndim, itemsize) + * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< + * + * free(tmpdata) + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); + + /* "View.MemoryView":1336 + * refcount_copying(&dst, dtype_is_object, ndim, True) + * + * free(tmpdata) # <<<<<<<<<<<<<< + * return 0 + * + */ + free(__pyx_v_tmpdata); + + /* "View.MemoryView":1337 + * + * free(tmpdata) + * return 0 # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_broadcast_leading') + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":1268 + * + * @cname('__pyx_memoryview_copy_contents') + * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice dst, + * int src_ndim, int dst_ndim, + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = -1; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1340 + * + * @cname('__pyx_memoryview_broadcast_leading') + * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< + * int ndim, + * int ndim_other) nogil: + */ + +static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) { + int __pyx_v_i; + int __pyx_v_offset; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + + /* "View.MemoryView":1344 + * int ndim_other) nogil: + * cdef int i + * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<< + * + * for i in range(ndim - 1, -1, -1): + */ + __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim); + + /* "View.MemoryView":1346 + * cdef int offset = ndim_other - ndim + * + * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< + * mslice.shape[i + offset] = mslice.shape[i] + * mslice.strides[i + offset] = mslice.strides[i] + */ + for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { + __pyx_v_i = __pyx_t_1; + + /* "View.MemoryView":1347 + * + * for i in range(ndim - 1, -1, -1): + * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<< + * mslice.strides[i + offset] = mslice.strides[i] + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] + */ + (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]); + + /* "View.MemoryView":1348 + * for i in range(ndim - 1, -1, -1): + * mslice.shape[i + offset] = mslice.shape[i] + * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<< + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] + * + */ + (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]); + + /* "View.MemoryView":1349 + * mslice.shape[i + offset] = mslice.shape[i] + * mslice.strides[i + offset] = mslice.strides[i] + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<< + * + * for i in range(offset): + */ + (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]); + } + + /* "View.MemoryView":1351 + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] + * + * for i in range(offset): # <<<<<<<<<<<<<< + * mslice.shape[i] = 1 + * mslice.strides[i] = mslice.strides[0] + */ + __pyx_t_1 = __pyx_v_offset; + __pyx_t_2 = __pyx_t_1; + for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { + __pyx_v_i = __pyx_t_3; + + /* "View.MemoryView":1352 + * + * for i in range(offset): + * mslice.shape[i] = 1 # <<<<<<<<<<<<<< + * mslice.strides[i] = mslice.strides[0] + * mslice.suboffsets[i] = -1 + */ + (__pyx_v_mslice->shape[__pyx_v_i]) = 1; + + /* "View.MemoryView":1353 + * for i in range(offset): + * mslice.shape[i] = 1 + * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<< + * mslice.suboffsets[i] = -1 + * + */ + (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]); + + /* "View.MemoryView":1354 + * mslice.shape[i] = 1 + * mslice.strides[i] = mslice.strides[0] + * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< + * + * + */ + (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L; + } + + /* "View.MemoryView":1340 + * + * @cname('__pyx_memoryview_broadcast_leading') + * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< + * int ndim, + * int ndim_other) nogil: + */ + + /* function exit code */ +} + +/* "View.MemoryView":1362 + * + * @cname('__pyx_memoryview_refcount_copying') + * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< + * int ndim, bint inc) nogil: + * + */ + +static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) { + int __pyx_t_1; + + /* "View.MemoryView":1366 + * + * + * if dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice_with_gil(dst.data, dst.shape, + * dst.strides, ndim, inc) + */ + __pyx_t_1 = (__pyx_v_dtype_is_object != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1367 + * + * if dtype_is_object: + * refcount_objects_in_slice_with_gil(dst.data, dst.shape, # <<<<<<<<<<<<<< + * dst.strides, ndim, inc) + * + */ + __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc); + + /* "View.MemoryView":1366 + * + * + * if dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice_with_gil(dst.data, dst.shape, + * dst.strides, ndim, inc) + */ + } + + /* "View.MemoryView":1362 + * + * @cname('__pyx_memoryview_refcount_copying') + * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< + * int ndim, bint inc) nogil: + * + */ + + /* function exit code */ +} + +/* "View.MemoryView":1371 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') + * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * bint inc) with gil: + */ + +static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { + __Pyx_RefNannyDeclarations + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("refcount_objects_in_slice_with_gil", 0); + + /* "View.MemoryView":1374 + * Py_ssize_t *strides, int ndim, + * bint inc) with gil: + * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_refcount_objects_in_slice') + */ + __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc); + + /* "View.MemoryView":1371 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') + * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * bint inc) with gil: + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif +} + +/* "View.MemoryView":1377 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice') + * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, bint inc): + * cdef Py_ssize_t i + */ + +static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { + CYTHON_UNUSED Py_ssize_t __pyx_v_i; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + Py_ssize_t __pyx_t_2; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + __Pyx_RefNannySetupContext("refcount_objects_in_slice", 0); + + /* "View.MemoryView":1381 + * cdef Py_ssize_t i + * + * for i in range(shape[0]): # <<<<<<<<<<<<<< + * if ndim == 1: + * if inc: + */ + __pyx_t_1 = (__pyx_v_shape[0]); + __pyx_t_2 = __pyx_t_1; + for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { + __pyx_v_i = __pyx_t_3; + + /* "View.MemoryView":1382 + * + * for i in range(shape[0]): + * if ndim == 1: # <<<<<<<<<<<<<< + * if inc: + * Py_INCREF(( data)[0]) + */ + __pyx_t_4 = ((__pyx_v_ndim == 1) != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":1383 + * for i in range(shape[0]): + * if ndim == 1: + * if inc: # <<<<<<<<<<<<<< + * Py_INCREF(( data)[0]) + * else: + */ + __pyx_t_4 = (__pyx_v_inc != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":1384 + * if ndim == 1: + * if inc: + * Py_INCREF(( data)[0]) # <<<<<<<<<<<<<< + * else: + * Py_DECREF(( data)[0]) + */ + Py_INCREF((((PyObject **)__pyx_v_data)[0])); + + /* "View.MemoryView":1383 + * for i in range(shape[0]): + * if ndim == 1: + * if inc: # <<<<<<<<<<<<<< + * Py_INCREF(( data)[0]) + * else: + */ + goto __pyx_L6; + } + + /* "View.MemoryView":1386 + * Py_INCREF(( data)[0]) + * else: + * Py_DECREF(( data)[0]) # <<<<<<<<<<<<<< + * else: + * refcount_objects_in_slice(data, shape + 1, strides + 1, + */ + /*else*/ { + Py_DECREF((((PyObject **)__pyx_v_data)[0])); + } + __pyx_L6:; + + /* "View.MemoryView":1382 + * + * for i in range(shape[0]): + * if ndim == 1: # <<<<<<<<<<<<<< + * if inc: + * Py_INCREF(( data)[0]) + */ + goto __pyx_L5; + } + + /* "View.MemoryView":1388 + * Py_DECREF(( data)[0]) + * else: + * refcount_objects_in_slice(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< + * ndim - 1, inc) + * + */ + /*else*/ { + + /* "View.MemoryView":1389 + * else: + * refcount_objects_in_slice(data, shape + 1, strides + 1, + * ndim - 1, inc) # <<<<<<<<<<<<<< + * + * data += strides[0] + */ + __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc); + } + __pyx_L5:; + + /* "View.MemoryView":1391 + * ndim - 1, inc) + * + * data += strides[0] # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0])); + } + + /* "View.MemoryView":1377 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice') + * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, bint inc): + * cdef Py_ssize_t i + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":1397 + * + * @cname('__pyx_memoryview_slice_assign_scalar') + * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< + * size_t itemsize, void *item, + * bint dtype_is_object) nogil: + */ + +static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) { + + /* "View.MemoryView":1400 + * size_t itemsize, void *item, + * bint dtype_is_object) nogil: + * refcount_copying(dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< + * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, + * itemsize, item) + */ + __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0); + + /* "View.MemoryView":1401 + * bint dtype_is_object) nogil: + * refcount_copying(dst, dtype_is_object, ndim, False) + * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, # <<<<<<<<<<<<<< + * itemsize, item) + * refcount_copying(dst, dtype_is_object, ndim, True) + */ + __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item); + + /* "View.MemoryView":1403 + * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, + * itemsize, item) + * refcount_copying(dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< + * + * + */ + __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1); + + /* "View.MemoryView":1397 + * + * @cname('__pyx_memoryview_slice_assign_scalar') + * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< + * size_t itemsize, void *item, + * bint dtype_is_object) nogil: + */ + + /* function exit code */ +} + +/* "View.MemoryView":1407 + * + * @cname('__pyx_memoryview__slice_assign_scalar') + * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * size_t itemsize, void *item) nogil: + */ + +static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) { + CYTHON_UNUSED Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_stride; + Py_ssize_t __pyx_v_extent; + int __pyx_t_1; + Py_ssize_t __pyx_t_2; + Py_ssize_t __pyx_t_3; + Py_ssize_t __pyx_t_4; + + /* "View.MemoryView":1411 + * size_t itemsize, void *item) nogil: + * cdef Py_ssize_t i + * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t extent = shape[0] + * + */ + __pyx_v_stride = (__pyx_v_strides[0]); + + /* "View.MemoryView":1412 + * cdef Py_ssize_t i + * cdef Py_ssize_t stride = strides[0] + * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<< + * + * if ndim == 1: + */ + __pyx_v_extent = (__pyx_v_shape[0]); + + /* "View.MemoryView":1414 + * cdef Py_ssize_t extent = shape[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * for i in range(extent): + * memcpy(data, item, itemsize) + */ + __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1415 + * + * if ndim == 1: + * for i in range(extent): # <<<<<<<<<<<<<< + * memcpy(data, item, itemsize) + * data += stride + */ + __pyx_t_2 = __pyx_v_extent; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1416 + * if ndim == 1: + * for i in range(extent): + * memcpy(data, item, itemsize) # <<<<<<<<<<<<<< + * data += stride + * else: + */ + (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize)); + + /* "View.MemoryView":1417 + * for i in range(extent): + * memcpy(data, item, itemsize) + * data += stride # <<<<<<<<<<<<<< + * else: + * for i in range(extent): + */ + __pyx_v_data = (__pyx_v_data + __pyx_v_stride); + } + + /* "View.MemoryView":1414 + * cdef Py_ssize_t extent = shape[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * for i in range(extent): + * memcpy(data, item, itemsize) + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1419 + * data += stride + * else: + * for i in range(extent): # <<<<<<<<<<<<<< + * _slice_assign_scalar(data, shape + 1, strides + 1, + * ndim - 1, itemsize, item) + */ + /*else*/ { + __pyx_t_2 = __pyx_v_extent; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1420 + * else: + * for i in range(extent): + * _slice_assign_scalar(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< + * ndim - 1, itemsize, item) + * data += stride + */ + __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item); + + /* "View.MemoryView":1422 + * _slice_assign_scalar(data, shape + 1, strides + 1, + * ndim - 1, itemsize, item) + * data += stride # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_data = (__pyx_v_data + __pyx_v_stride); + } + } + __pyx_L3:; + + /* "View.MemoryView":1407 + * + * @cname('__pyx_memoryview__slice_assign_scalar') + * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * size_t itemsize, void *item) nogil: + */ + + /* function exit code */ +} + +/* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v___pyx_type = 0; + long __pyx_v___pyx_checksum; + PyObject *__pyx_v___pyx_state = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(2, 1, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(2, 1, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(2, 1, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v___pyx_type = values[0]; + __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 1, __pyx_L3_error) + __pyx_v___pyx_state = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_v___pyx_PickleError = 0; + PyObject *__pyx_v___pyx_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 0); + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + */ + __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb068931) != 0); + if (__pyx_t_1) { + + /* "(tree fragment)":5 + * cdef object __pyx_result + * if __pyx_checksum != 0xb068931: + * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_PickleError); + __Pyx_GIVEREF(__pyx_n_s_PickleError); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_2); + __pyx_v___pyx_PickleError = __pyx_t_2; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "(tree fragment)":6 + * if __pyx_checksum != 0xb068931: + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) # <<<<<<<<<<<<<< + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: + */ + __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_INCREF(__pyx_v___pyx_PickleError); + __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 6, __pyx_L1_error) + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + */ + } + + /* "(tree fragment)":7 + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) # <<<<<<<<<<<<<< + * if __pyx_state is not None: + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v___pyx_result = __pyx_t_3; + __pyx_t_3 = 0; + + /* "(tree fragment)":8 + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + */ + __pyx_t_1 = (__pyx_v___pyx_state != Py_None); + __pyx_t_6 = (__pyx_t_1 != 0); + if (__pyx_t_6) { + + /* "(tree fragment)":9 + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + */ + if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 9, __pyx_L1_error) + __pyx_t_3 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "(tree fragment)":8 + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + */ + } + + /* "(tree fragment)":10 + * if __pyx_state is not None: + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result # <<<<<<<<<<<<<< + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v___pyx_result); + __pyx_r = __pyx_v___pyx_result; + goto __pyx_L0; + + /* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v___pyx_PickleError); + __Pyx_XDECREF(__pyx_v___pyx_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":11 + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + */ + +static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 0); + + /* "(tree fragment)":12 + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] # <<<<<<<<<<<<<< + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + * __pyx_result.__dict__.update(__pyx_state[1]) + */ + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->name); + __Pyx_DECREF(__pyx_v___pyx_result->name); + __pyx_v___pyx_result->name = __pyx_t_1; + __pyx_t_1 = 0; + + /* "(tree fragment)":13 + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< + * __pyx_result.__dict__.update(__pyx_state[1]) + */ + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); + __PYX_ERR(2, 13, __pyx_L1_error) + } + __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 13, __pyx_L1_error) + __pyx_t_4 = ((__pyx_t_3 > 1) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error) + __pyx_t_5 = (__pyx_t_4 != 0); + __pyx_t_2 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "(tree fragment)":14 + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<< + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 14, __pyx_L1_error) + } + __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":13 + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< + * __pyx_result.__dict__.update(__pyx_state[1]) + */ + } + + /* "(tree fragment)":11 + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static struct __pyx_vtabstruct_array __pyx_vtable_array; + +static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_array_obj *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_array_obj *)o); + p->__pyx_vtab = __pyx_vtabptr_array; + p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None); + p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None); + if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_array(PyObject *o) { + struct __pyx_array_obj *p = (struct __pyx_array_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_array___dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->mode); + Py_CLEAR(p->_format); + (*Py_TYPE(o)->tp_free)(o); +} +static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) { + PyObject *r; + PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; + r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); + Py_DECREF(x); + return r; +} + +static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) { + if (v) { + return __pyx_array___setitem__(o, i, v); + } + else { + PyErr_Format(PyExc_NotImplementedError, + "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); + return -1; + } +} + +static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) { + PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n); + if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + v = __pyx_array___getattr__(o, n); + } + return v; +} + +static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o); +} + +static PyMethodDef __pyx_methods_array[] = { + {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_array_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_array_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_array[] = { + {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PySequenceMethods __pyx_tp_as_sequence_array = { + __pyx_array___len__, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + __pyx_sq_item_array, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + 0, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping_array = { + __pyx_array___len__, /*mp_length*/ + __pyx_array___getitem__, /*mp_subscript*/ + __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/ +}; + +static PyBufferProcs __pyx_tp_as_buffer_array = { + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getreadbuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getwritebuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getsegcount*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getcharbuffer*/ + #endif + __pyx_array_getbuffer, /*bf_getbuffer*/ + 0, /*bf_releasebuffer*/ +}; + +static PyTypeObject __pyx_type___pyx_array = { + PyVarObject_HEAD_INIT(0, 0) + "TTS.tts.utils.monotonic_align.core.array", /*tp_name*/ + sizeof(struct __pyx_array_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_array, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + &__pyx_tp_as_sequence_array, /*tp_as_sequence*/ + &__pyx_tp_as_mapping_array, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + __pyx_tp_getattro_array, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer_array, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_array, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_array, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_array, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_MemviewEnum_obj *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_MemviewEnum_obj *)o); + p->name = Py_None; Py_INCREF(Py_None); + return o; +} + +static void __pyx_tp_dealloc_Enum(PyObject *o) { + struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + Py_CLEAR(p->name); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; + if (p->name) { + e = (*v)(p->name, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_Enum(PyObject *o) { + PyObject* tmp; + struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; + tmp = ((PyObject*)p->name); + p->name = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyMethodDef __pyx_methods_Enum[] = { + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type___pyx_MemviewEnum = { + PyVarObject_HEAD_INIT(0, 0) + "TTS.tts.utils.monotonic_align.core.Enum", /*tp_name*/ + sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_Enum, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + __pyx_MemviewEnum___repr__, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_Enum, /*tp_traverse*/ + __pyx_tp_clear_Enum, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_Enum, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + __pyx_MemviewEnum___init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_Enum, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview; + +static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_memoryview_obj *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_memoryview_obj *)o); + p->__pyx_vtab = __pyx_vtabptr_memoryview; + p->obj = Py_None; Py_INCREF(Py_None); + p->_size = Py_None; Py_INCREF(Py_None); + p->_array_interface = Py_None; Py_INCREF(Py_None); + p->view.obj = NULL; + if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_memoryview(PyObject *o) { + struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_memoryview___dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->obj); + Py_CLEAR(p->_size); + Py_CLEAR(p->_array_interface); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; + if (p->obj) { + e = (*v)(p->obj, a); if (e) return e; + } + if (p->_size) { + e = (*v)(p->_size, a); if (e) return e; + } + if (p->_array_interface) { + e = (*v)(p->_array_interface, a); if (e) return e; + } + if (p->view.obj) { + e = (*v)(p->view.obj, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_memoryview(PyObject *o) { + PyObject* tmp; + struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; + tmp = ((PyObject*)p->obj); + p->obj = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->_size); + p->_size = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->_array_interface); + p->_array_interface = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + Py_CLEAR(p->view.obj); + return 0; +} +static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) { + PyObject *r; + PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; + r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); + Py_DECREF(x); + return r; +} + +static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) { + if (v) { + return __pyx_memoryview___setitem__(o, i, v); + } + else { + PyErr_Format(PyExc_NotImplementedError, + "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); + return -1; + } +} + +static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o); +} + +static PyMethodDef __pyx_methods_memoryview[] = { + {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0}, + {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0}, + {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0}, + {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_memoryview[] = { + {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0}, + {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0}, + {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0}, + {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0}, + {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0}, + {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0}, + {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0}, + {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0}, + {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PySequenceMethods __pyx_tp_as_sequence_memoryview = { + __pyx_memoryview___len__, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + __pyx_sq_item_memoryview, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + 0, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping_memoryview = { + __pyx_memoryview___len__, /*mp_length*/ + __pyx_memoryview___getitem__, /*mp_subscript*/ + __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/ +}; + +static PyBufferProcs __pyx_tp_as_buffer_memoryview = { + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getreadbuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getwritebuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getsegcount*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getcharbuffer*/ + #endif + __pyx_memoryview_getbuffer, /*bf_getbuffer*/ + 0, /*bf_releasebuffer*/ +}; + +static PyTypeObject __pyx_type___pyx_memoryview = { + PyVarObject_HEAD_INIT(0, 0) + "TTS.tts.utils.monotonic_align.core.memoryview", /*tp_name*/ + sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_memoryview, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + __pyx_memoryview___repr__, /*tp_repr*/ + 0, /*tp_as_number*/ + &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/ + &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + __pyx_memoryview___str__, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_memoryview, /*tp_traverse*/ + __pyx_tp_clear_memoryview, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_memoryview, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_memoryview, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_memoryview, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice; + +static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_memoryviewslice_obj *p; + PyObject *o = __pyx_tp_new_memoryview(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_memoryviewslice_obj *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice; + p->from_object = Py_None; Py_INCREF(Py_None); + p->from_slice.memview = NULL; + return o; +} + +static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) { + struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_memoryviewslice___dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->from_object); + PyObject_GC_Track(o); + __pyx_tp_dealloc_memoryview(o); +} + +static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; + e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e; + if (p->from_object) { + e = (*v)(p->from_object, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear__memoryviewslice(PyObject *o) { + PyObject* tmp; + struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; + __pyx_tp_clear_memoryview(o); + tmp = ((PyObject*)p->from_object); + p->from_object = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + __PYX_XDEC_MEMVIEW(&p->from_slice, 1); + return 0; +} + +static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o); +} + +static PyMethodDef __pyx_methods__memoryviewslice[] = { + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = { + {(char *)"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type___pyx_memoryviewslice = { + PyVarObject_HEAD_INIT(0, 0) + "TTS.tts.utils.monotonic_align.core._memoryviewslice", /*tp_name*/ + sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + #if CYTHON_COMPILING_IN_PYPY + __pyx_memoryview___repr__, /*tp_repr*/ + #else + 0, /*tp_repr*/ + #endif + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + #if CYTHON_COMPILING_IN_PYPY + __pyx_memoryview___str__, /*tp_str*/ + #else + 0, /*tp_str*/ + #endif + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + "Internal class for passing memoryview slices to Python", /*tp_doc*/ + __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/ + __pyx_tp_clear__memoryviewslice, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods__memoryviewslice, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets__memoryviewslice, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new__memoryviewslice, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyMethodDef __pyx_methods[] = { + {"maximum_path_c", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_3TTS_3tts_5utils_15monotonic_align_4core_1maximum_path_c, METH_VARARGS|METH_KEYWORDS, 0}, + {0, 0, 0, 0} +}; + +#if PY_MAJOR_VERSION >= 3 +#if CYTHON_PEP489_MULTI_PHASE_INIT +static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ +static int __pyx_pymod_exec_core(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec_core}, + {0, NULL} +}; +#endif + +static struct PyModuleDef __pyx_moduledef = { + PyModuleDef_HEAD_INIT, + "core", + 0, /* m_doc */ + #if CYTHON_PEP489_MULTI_PHASE_INIT + 0, /* m_size */ + #else + -1, /* m_size */ + #endif + __pyx_methods /* m_methods */, + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_moduledef_slots, /* m_slots */ + #else + NULL, /* m_reload */ + #endif + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL /* m_free */ +}; +#endif +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + +static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1}, + {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0}, + {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0}, + {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0}, + {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0}, + {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s, sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0}, + {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1}, + {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0}, + {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, + {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_k_Incompatible_checksums_s_vs_0xb0, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb0), 0, 0, 1, 0}, + {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, + {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d, sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0}, + {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, + {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0}, + {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0}, + {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1}, + {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0}, + {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, + {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0}, + {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, + {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1}, + {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1}, + {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1}, + {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, + {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1}, + {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, + {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, + {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0}, + {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0}, + {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, + {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1}, + {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, + {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, + {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, + {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, + {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, + {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1}, + {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1}, + {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, + {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0}, + {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, + {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, + {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1}, + {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0}, + {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, + {&__pyx_n_s_max_neg_val, __pyx_k_max_neg_val, sizeof(__pyx_k_max_neg_val), 0, 0, 1, 1}, + {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1}, + {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, + {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, + {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, + {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1}, + {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, + {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, + {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, + {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, + {&__pyx_kp_u_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 1, 0, 0}, + {&__pyx_kp_u_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 1, 0, 0}, + {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1}, + {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1}, + {&__pyx_n_s_paths, __pyx_k_paths, sizeof(__pyx_k_paths), 0, 0, 1, 1}, + {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer, sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, + {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, + {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, + {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, + {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, + {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, + {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, + {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, + {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1}, + {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, + {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0}, + {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0}, + {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0}, + {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, + {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1}, + {&__pyx_n_s_t_xs, __pyx_k_t_xs, sizeof(__pyx_k_t_xs), 0, 0, 1, 1}, + {&__pyx_n_s_t_ys, __pyx_k_t_ys, sizeof(__pyx_k_t_ys), 0, 0, 1, 1}, + {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, + {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0}, + {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0}, + {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1}, + {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, + {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0} +}; +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 19, __pyx_L1_error) + __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 945, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 133, __pyx_L1_error) + __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(2, 148, __pyx_L1_error) + __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 151, __pyx_L1_error) + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(2, 2, __pyx_L1_error) + __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(2, 404, __pyx_L1_error) + __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(2, 613, __pyx_L1_error) + __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(2, 832, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":945 + * __pyx_import_array() + * except Exception: + * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< + * + * cdef inline int import_umath() except -1: + */ + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 945, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__2); + __Pyx_GIVEREF(__pyx_tuple__2); + + /* "../../../../../../tmp/pip-build-env-7v1rihy5/overlay/lib/python3.7/site-packages/numpy/__init__.pxd":951 + * _import_umath() + * except Exception: + * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< + * + * cdef inline int import_ufunc() except -1: + */ + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); + + /* "View.MemoryView":133 + * + * if not self.ndim: + * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< + * + * if itemsize <= 0: + */ + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__4); + __Pyx_GIVEREF(__pyx_tuple__4); + + /* "View.MemoryView":136 + * + * if itemsize <= 0: + * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< + * + * if not isinstance(format, bytes): + */ + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); + + /* "View.MemoryView":148 + * + * if not self._shape: + * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__6); + __Pyx_GIVEREF(__pyx_tuple__6); + + /* "View.MemoryView":176 + * self.data = malloc(self.len) + * if not self.data: + * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< + * + * if self.dtype_is_object: + */ + __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__7); + __Pyx_GIVEREF(__pyx_tuple__7); + + /* "View.MemoryView":192 + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< + * info.buf = self.data + * info.len = self.len + */ + __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__8); + __Pyx_GIVEREF(__pyx_tuple__8); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__9); + __Pyx_GIVEREF(__pyx_tuple__9); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__10); + __Pyx_GIVEREF(__pyx_tuple__10); + + /* "View.MemoryView":418 + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< + * + * have_slices, index = _unellipsify(index, self.view.ndim) + */ + __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(2, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__11); + __Pyx_GIVEREF(__pyx_tuple__11); + + /* "View.MemoryView":495 + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< + * else: + * if len(self.view.format) == 1: + */ + __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(2, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__12); + __Pyx_GIVEREF(__pyx_tuple__12); + + /* "View.MemoryView":520 + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< + * + * if flags & PyBUF_ND: + */ + __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__13); + __Pyx_GIVEREF(__pyx_tuple__13); + + /* "View.MemoryView":570 + * if self.view.strides == NULL: + * + * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< + * + * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) + */ + __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(2, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__14); + __Pyx_GIVEREF(__pyx_tuple__14); + + /* "View.MemoryView":577 + * def suboffsets(self): + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< + * + * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) + */ + __pyx_tuple__15 = PyTuple_New(1); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(2, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__15); + __Pyx_INCREF(__pyx_int_neg_1); + __Pyx_GIVEREF(__pyx_int_neg_1); + PyTuple_SET_ITEM(__pyx_tuple__15, 0, __pyx_int_neg_1); + __Pyx_GIVEREF(__pyx_tuple__15); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(2, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__16); + __Pyx_GIVEREF(__pyx_tuple__16); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__17); + __Pyx_GIVEREF(__pyx_tuple__17); + + /* "View.MemoryView":682 + * if item is Ellipsis: + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< + * seen_ellipsis = True + * else: + */ + __pyx_slice__18 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__18)) __PYX_ERR(2, 682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_slice__18); + __Pyx_GIVEREF(__pyx_slice__18); + + /* "View.MemoryView":703 + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(2, 703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__19); + __Pyx_GIVEREF(__pyx_tuple__19); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(2, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__20); + __Pyx_GIVEREF(__pyx_tuple__20); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__21); + __Pyx_GIVEREF(__pyx_tuple__21); + + /* "View.MemoryView":286 + * return self.name + * + * cdef generic = Enum("") # <<<<<<<<<<<<<< + * cdef strided = Enum("") # default + * cdef indirect = Enum("") + */ + __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(2, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__22); + __Pyx_GIVEREF(__pyx_tuple__22); + + /* "View.MemoryView":287 + * + * cdef generic = Enum("") + * cdef strided = Enum("") # default # <<<<<<<<<<<<<< + * cdef indirect = Enum("") + * + */ + __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(2, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__23); + __Pyx_GIVEREF(__pyx_tuple__23); + + /* "View.MemoryView":288 + * cdef generic = Enum("") + * cdef strided = Enum("") # default + * cdef indirect = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(2, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__24); + __Pyx_GIVEREF(__pyx_tuple__24); + + /* "View.MemoryView":291 + * + * + * cdef contiguous = Enum("") # <<<<<<<<<<<<<< + * cdef indirect_contiguous = Enum("") + * + */ + __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(2, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__25); + __Pyx_GIVEREF(__pyx_tuple__25); + + /* "View.MemoryView":292 + * + * cdef contiguous = Enum("") + * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__26); + __Pyx_GIVEREF(__pyx_tuple__26); + + /* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + __pyx_tuple__27 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__27); + __Pyx_GIVEREF(__pyx_tuple__27); + __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { + /* InitThreads.init */ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 +PyEval_InitThreads(); +#endif + +if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error) + + if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); + __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ + +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + generic = Py_None; Py_INCREF(Py_None); + strided = Py_None; Py_INCREF(Py_None); + indirect = Py_None; Py_INCREF(Py_None); + contiguous = Py_None; Py_INCREF(Py_None); + indirect_contiguous = Py_None; Py_INCREF(Py_None); + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + __pyx_vtabptr_array = &__pyx_vtable_array; + __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview; + if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type___pyx_array.tp_print = 0; + #endif + if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) + __pyx_array_type = &__pyx_type___pyx_array; + if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 279, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type___pyx_MemviewEnum.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_MemviewEnum.tp_dictoffset && __pyx_type___pyx_MemviewEnum.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type___pyx_MemviewEnum.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 279, __pyx_L1_error) + __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum; + __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview; + __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer; + __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice; + __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment; + __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar; + __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed; + __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object; + __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object; + if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type___pyx_memoryview.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryview.tp_dictoffset && __pyx_type___pyx_memoryview.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type___pyx_memoryview.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) + __pyx_memoryview_type = &__pyx_type___pyx_memoryview; + __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice; + __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview; + __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object; + __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object; + __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type; + if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type___pyx_memoryviewslice.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryviewslice.tp_dictoffset && __pyx_type___pyx_memoryviewslice.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type___pyx_memoryviewslice.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) + __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyTypeObject), + #else + sizeof(PyHeapTypeObject), + #endif + __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); + if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 200, __pyx_L1_error) + __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); + if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 223, __pyx_L1_error) + __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); + if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 227, __pyx_L1_error) + __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); + if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 239, __pyx_L1_error) + __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_5numpy_generic) __PYX_ERR(1, 771, __pyx_L1_error) + __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_5numpy_number) __PYX_ERR(1, 773, __pyx_L1_error) + __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_5numpy_integer) __PYX_ERR(1, 775, __pyx_L1_error) + __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(1, 777, __pyx_L1_error) + __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(1, 779, __pyx_L1_error) + __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(1, 781, __pyx_L1_error) + __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_5numpy_floating) __PYX_ERR(1, 783, __pyx_L1_error) + __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(1, 785, __pyx_L1_error) + __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(1, 787, __pyx_L1_error) + __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_5numpy_character) __PYX_ERR(1, 789, __pyx_L1_error) + __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); + if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 827, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_variable_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#ifndef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#elif PY_MAJOR_VERSION < 3 +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" void +#else +#define __Pyx_PyMODINIT_FUNC void +#endif +#else +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyObject * +#endif +#endif + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC initcore(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initcore(void) +#else +__Pyx_PyMODINIT_FUNC PyInit_core(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_core(void) +#if CYTHON_PEP489_MULTI_PHASE_INIT +{ + return PyModuleDef_Init(&__pyx_moduledef); +} +static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { + #if PY_VERSION_HEX >= 0x030700A1 + static PY_INT64_T main_interpreter_id = -1; + PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); + if (main_interpreter_id == -1) { + main_interpreter_id = current_id; + return (unlikely(current_id == -1)) ? -1 : 0; + } else if (unlikely(main_interpreter_id != current_id)) + #else + static PyInterpreterState *main_interpreter = NULL; + PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; + if (!main_interpreter) { + main_interpreter = current_interpreter; + } else if (unlikely(main_interpreter != current_interpreter)) + #endif + { + PyErr_SetString( + PyExc_ImportError, + "Interpreter change detected - this module can only be loaded into one interpreter per process."); + return -1; + } + return 0; +} +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { + PyObject *value = PyObject_GetAttrString(spec, from_name); + int result = 0; + if (likely(value)) { + if (allow_none || value != Py_None) { + result = PyDict_SetItemString(moddict, to_name, value); + } + Py_DECREF(value); + } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + } else { + result = -1; + } + return result; +} +static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + if (__Pyx_check_single_interpreter()) + return NULL; + if (__pyx_m) + return __Pyx_NewRef(__pyx_m); + modname = PyObject_GetAttrString(spec, "name"); + if (unlikely(!modname)) goto bad; + module = PyModule_NewObject(modname); + Py_DECREF(modname); + if (unlikely(!module)) goto bad; + moddict = PyModule_GetDict(module); + if (unlikely(!moddict)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; + return module; +bad: + Py_XDECREF(module); + return NULL; +} + + +static CYTHON_SMALL_CODE int __pyx_pymod_exec_core(PyObject *__pyx_pyinit_module) +#endif +#endif +{ + PyObject *__pyx_t_1 = NULL; + static PyThread_type_lock __pyx_t_2[8]; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannyDeclarations + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m) { + if (__pyx_m == __pyx_pyinit_module) return 0; + PyErr_SetString(PyExc_RuntimeError, "Module 'core' has already been imported. Re-initialisation is not supported."); + return -1; + } + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); + #endif + #if CYTHON_REFNANNY +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_core(void)", 0); + if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #ifdef __Pxy_PyFrame_Initialize_Offsets + __Pxy_PyFrame_Initialize_Offsets(); + #endif + __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) + #ifdef __Pyx_CyFunction_USED + if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_FusedFunction_USED + if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Coroutine_USED + if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Generator_USED + if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_AsyncGen_USED + if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_StopAsyncIteration_USED + if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + /*--- Library function declarations ---*/ + /*--- Threads initialization code ---*/ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS + PyEval_InitThreads(); + #endif + /*--- Module creation code ---*/ + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_m = __pyx_pyinit_module; + Py_INCREF(__pyx_m); + #else + #if PY_MAJOR_VERSION < 3 + __pyx_m = Py_InitModule4("core", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); + #else + __pyx_m = PyModule_Create(&__pyx_moduledef); + #endif + if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) + Py_INCREF(__pyx_d); + __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) + Py_INCREF(__pyx_b); + __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) + Py_INCREF(__pyx_cython_runtime); + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); + /*--- Initialize various global constants etc. ---*/ + if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) + if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + if (__pyx_module_is_main_TTS__tts__utils__monotonic_align__core) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) + } + #if PY_MAJOR_VERSION >= 3 + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "TTS.tts.utils.monotonic_align.core")) { + if (unlikely(PyDict_SetItemString(modules, "TTS.tts.utils.monotonic_align.core", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) + } + } + #endif + /*--- Builtin init code ---*/ + if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + /*--- Constants init code ---*/ + if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error) + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); + /*--- Execution code ---*/ + #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) + if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + + /* "TTS/tts/utils/monotonic_align/core.pyx":1 + * import numpy as np # <<<<<<<<<<<<<< + * + * cimport cython + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "TTS/tts/utils/monotonic_align/core.pyx":42 + * @cython.boundscheck(False) + * @cython.wraparound(False) + * cpdef void maximum_path_c(int[:,:,::1] paths, float[:,:,::1] values, int[::1] t_xs, int[::1] t_ys, float max_neg_val=-1e9) nogil: # <<<<<<<<<<<<<< + * cdef int b = values.shape[0] + * + */ + __pyx_k_ = (-1e9); + __pyx_k_ = (-1e9); + + /* "TTS/tts/utils/monotonic_align/core.pyx":1 + * import numpy as np # <<<<<<<<<<<<<< + * + * cimport cython + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "View.MemoryView":209 + * info.obj = self + * + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< + * + * def __dealloc__(array self): + */ + __pyx_t_1 = __pyx_capsule_create(((void *)(&__pyx_array_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem((PyObject *)__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_array_type); + + /* "View.MemoryView":286 + * return self.name + * + * cdef generic = Enum("") # <<<<<<<<<<<<<< + * cdef strided = Enum("") # default + * cdef indirect = Enum("") + */ + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(generic); + __Pyx_DECREF_SET(generic, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":287 + * + * cdef generic = Enum("") + * cdef strided = Enum("") # default # <<<<<<<<<<<<<< + * cdef indirect = Enum("") + * + */ + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(strided); + __Pyx_DECREF_SET(strided, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":288 + * cdef generic = Enum("") + * cdef strided = Enum("") # default + * cdef indirect = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(indirect); + __Pyx_DECREF_SET(indirect, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":291 + * + * + * cdef contiguous = Enum("") # <<<<<<<<<<<<<< + * cdef indirect_contiguous = Enum("") + * + */ + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(contiguous); + __Pyx_DECREF_SET(contiguous, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":292 + * + * cdef contiguous = Enum("") + * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(indirect_contiguous); + __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":316 + * + * DEF THREAD_LOCKS_PREALLOCATED = 8 + * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<< + * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ + * PyThread_allocate_lock(), + */ + __pyx_memoryview_thread_locks_used = 0; + + /* "View.MemoryView":317 + * DEF THREAD_LOCKS_PREALLOCATED = 8 + * cdef int __pyx_memoryview_thread_locks_used = 0 + * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<< + * PyThread_allocate_lock(), + * PyThread_allocate_lock(), + */ + __pyx_t_2[0] = PyThread_allocate_lock(); + __pyx_t_2[1] = PyThread_allocate_lock(); + __pyx_t_2[2] = PyThread_allocate_lock(); + __pyx_t_2[3] = PyThread_allocate_lock(); + __pyx_t_2[4] = PyThread_allocate_lock(); + __pyx_t_2[5] = PyThread_allocate_lock(); + __pyx_t_2[6] = PyThread_allocate_lock(); + __pyx_t_2[7] = PyThread_allocate_lock(); + memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_2, sizeof(__pyx_memoryview_thread_locks[0]) * (8)); + + /* "View.MemoryView":549 + * info.obj = self + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem((PyObject *)__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(2, 549, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_memoryview_type); + + /* "View.MemoryView":995 + * return self.from_object + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem((PyObject *)__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(2, 995, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_memoryviewslice_type); + + /* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":11 + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + */ + + /*--- Wrapped vars code ---*/ + + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + if (__pyx_m) { + if (__pyx_d) { + __Pyx_AddTraceback("init TTS.tts.utils.monotonic_align.core", __pyx_clineno, __pyx_lineno, __pyx_filename); + } + Py_CLEAR(__pyx_m); + } else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_ImportError, "init TTS.tts.utils.monotonic_align.core"); + } + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #if CYTHON_PEP489_MULTI_PHASE_INIT + return (__pyx_m != NULL) ? 0 : -1; + #elif PY_MAJOR_VERSION >= 3 + return __pyx_m; + #else + return; + #endif +} + +/* --- Runtime support code --- */ +/* Refnanny */ +#if CYTHON_REFNANNY +static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { + PyObject *m = NULL, *p = NULL; + void *r = NULL; + m = PyImport_ImportModule(modname); + if (!m) goto end; + p = PyObject_GetAttrString(m, "RefNannyAPI"); + if (!p) goto end; + r = PyLong_AsVoidPtr(p); +end: + Py_XDECREF(p); + Py_XDECREF(m); + return (__Pyx_RefNannyAPIStruct *)r; +} +#endif + +/* PyObjectGetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro)) + return tp->tp_getattro(obj, attr_name); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_getattr)) + return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); +#endif + return PyObject_GetAttr(obj, attr_name); +} +#endif + +/* GetBuiltinName */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name) { + PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); + if (unlikely(!result)) { + PyErr_Format(PyExc_NameError, +#if PY_MAJOR_VERSION >= 3 + "name '%U' is not defined", name); +#else + "name '%.200s' is not defined", PyString_AS_STRING(name)); +#endif + } + return result; +} + +/* MemviewSliceInit */ +static int +__Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview, + int ndim, + __Pyx_memviewslice *memviewslice, + int memview_is_new_reference) +{ + __Pyx_RefNannyDeclarations + int i, retval=-1; + Py_buffer *buf = &memview->view; + __Pyx_RefNannySetupContext("init_memviewslice", 0); + if (unlikely(memviewslice->memview || memviewslice->data)) { + PyErr_SetString(PyExc_ValueError, + "memviewslice is already initialized!"); + goto fail; + } + if (buf->strides) { + for (i = 0; i < ndim; i++) { + memviewslice->strides[i] = buf->strides[i]; + } + } else { + Py_ssize_t stride = buf->itemsize; + for (i = ndim - 1; i >= 0; i--) { + memviewslice->strides[i] = stride; + stride *= buf->shape[i]; + } + } + for (i = 0; i < ndim; i++) { + memviewslice->shape[i] = buf->shape[i]; + if (buf->suboffsets) { + memviewslice->suboffsets[i] = buf->suboffsets[i]; + } else { + memviewslice->suboffsets[i] = -1; + } + } + memviewslice->memview = memview; + memviewslice->data = (char *)buf->buf; + if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) { + Py_INCREF(memview); + } + retval = 0; + goto no_fail; +fail: + memviewslice->memview = 0; + memviewslice->data = 0; + retval = -1; +no_fail: + __Pyx_RefNannyFinishContext(); + return retval; +} +#ifndef Py_NO_RETURN +#define Py_NO_RETURN +#endif +static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN { + va_list vargs; + char msg[200]; +#ifdef HAVE_STDARG_PROTOTYPES + va_start(vargs, fmt); +#else + va_start(vargs); +#endif + vsnprintf(msg, 200, fmt, vargs); + va_end(vargs); + Py_FatalError(msg); +} +static CYTHON_INLINE int +__pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count, + PyThread_type_lock lock) +{ + int result; + PyThread_acquire_lock(lock, 1); + result = (*acquisition_count)++; + PyThread_release_lock(lock); + return result; +} +static CYTHON_INLINE int +__pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count, + PyThread_type_lock lock) +{ + int result; + PyThread_acquire_lock(lock, 1); + result = (*acquisition_count)--; + PyThread_release_lock(lock); + return result; +} +static CYTHON_INLINE void +__Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) +{ + int first_time; + struct __pyx_memoryview_obj *memview = memslice->memview; + if (unlikely(!memview || (PyObject *) memview == Py_None)) + return; + if (unlikely(__pyx_get_slice_count(memview) < 0)) + __pyx_fatalerror("Acquisition count is %d (line %d)", + __pyx_get_slice_count(memview), lineno); + first_time = __pyx_add_acquisition_count(memview) == 0; + if (unlikely(first_time)) { + if (have_gil) { + Py_INCREF((PyObject *) memview); + } else { + PyGILState_STATE _gilstate = PyGILState_Ensure(); + Py_INCREF((PyObject *) memview); + PyGILState_Release(_gilstate); + } + } +} +static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice, + int have_gil, int lineno) { + int last_time; + struct __pyx_memoryview_obj *memview = memslice->memview; + if (unlikely(!memview || (PyObject *) memview == Py_None)) { + memslice->memview = NULL; + return; + } + if (unlikely(__pyx_get_slice_count(memview) <= 0)) + __pyx_fatalerror("Acquisition count is %d (line %d)", + __pyx_get_slice_count(memview), lineno); + last_time = __pyx_sub_acquisition_count(memview) == 1; + memslice->data = NULL; + if (unlikely(last_time)) { + if (have_gil) { + Py_CLEAR(memslice->memview); + } else { + PyGILState_STATE _gilstate = PyGILState_Ensure(); + Py_CLEAR(memslice->memview); + PyGILState_Release(_gilstate); + } + } else { + memslice->memview = NULL; + } +} + +/* RaiseArgTupleInvalid */ +static void __Pyx_RaiseArgtupleInvalid( + const char* func_name, + int exact, + Py_ssize_t num_min, + Py_ssize_t num_max, + Py_ssize_t num_found) +{ + Py_ssize_t num_expected; + const char *more_or_less; + if (num_found < num_min) { + num_expected = num_min; + more_or_less = "at least"; + } else { + num_expected = num_max; + more_or_less = "at most"; + } + if (exact) { + more_or_less = "exactly"; + } + PyErr_Format(PyExc_TypeError, + "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", + func_name, more_or_less, num_expected, + (num_expected == 1) ? "" : "s", num_found); +} + +/* RaiseDoubleKeywords */ +static void __Pyx_RaiseDoubleKeywordsError( + const char* func_name, + PyObject* kw_name) +{ + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION >= 3 + "%s() got multiple values for keyword argument '%U'", func_name, kw_name); + #else + "%s() got multiple values for keyword argument '%s'", func_name, + PyString_AsString(kw_name)); + #endif +} + +/* ParseKeywords */ +static int __Pyx_ParseOptionalKeywords( + PyObject *kwds, + PyObject **argnames[], + PyObject *kwds2, + PyObject *values[], + Py_ssize_t num_pos_args, + const char* function_name) +{ + PyObject *key = 0, *value = 0; + Py_ssize_t pos = 0; + PyObject*** name; + PyObject*** first_kw_arg = argnames + num_pos_args; + while (PyDict_Next(kwds, &pos, &key, &value)) { + name = first_kw_arg; + while (*name && (**name != key)) name++; + if (*name) { + values[name-argnames] = value; + continue; + } + name = first_kw_arg; + #if PY_MAJOR_VERSION < 3 + if (likely(PyString_Check(key))) { + while (*name) { + if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) + && _PyString_Eq(**name, key)) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + if ((**argname == key) || ( + (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) + && _PyString_Eq(**argname, key))) { + goto arg_passed_twice; + } + argname++; + } + } + } else + #endif + if (likely(PyUnicode_Check(key))) { + while (*name) { + int cmp = (**name == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : + #endif + PyUnicode_Compare(**name, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + int cmp = (**argname == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : + #endif + PyUnicode_Compare(**argname, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) goto arg_passed_twice; + argname++; + } + } + } else + goto invalid_keyword_type; + if (kwds2) { + if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; + } else { + goto invalid_keyword; + } + } + return 0; +arg_passed_twice: + __Pyx_RaiseDoubleKeywordsError(function_name, key); + goto bad; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + goto bad; +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif +bad: + return -1; +} + +/* None */ +static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { + PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); +} + +/* GetTopmostException */ +#if CYTHON_USE_EXC_INFO_STACK +static _PyErr_StackItem * +__Pyx_PyErr_GetTopmostException(PyThreadState *tstate) +{ + _PyErr_StackItem *exc_info = tstate->exc_info; + while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && + exc_info->previous_item != NULL) + { + exc_info = exc_info->previous_item; + } + return exc_info; +} +#endif + +/* SaveResetException */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); + *type = exc_info->exc_type; + *value = exc_info->exc_value; + *tb = exc_info->exc_traceback; + #else + *type = tstate->exc_type; + *value = tstate->exc_value; + *tb = tstate->exc_traceback; + #endif + Py_XINCREF(*type); + Py_XINCREF(*value); + Py_XINCREF(*tb); +} +static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = type; + exc_info->exc_value = value; + exc_info->exc_traceback = tb; + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = type; + tstate->exc_value = value; + tstate->exc_traceback = tb; + #endif + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +#endif + +/* PyErrExceptionMatches */ +#if CYTHON_FAST_THREAD_STATE +static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; icurexc_type; + if (exc_type == err) return 1; + if (unlikely(!exc_type)) return 0; + if (unlikely(PyTuple_Check(err))) + return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); + return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); +} +#endif + +/* GetException */ +#if CYTHON_FAST_THREAD_STATE +static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) +#else +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) +#endif +{ + PyObject *local_type, *local_value, *local_tb; +#if CYTHON_FAST_THREAD_STATE + PyObject *tmp_type, *tmp_value, *tmp_tb; + local_type = tstate->curexc_type; + local_value = tstate->curexc_value; + local_tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +#else + PyErr_Fetch(&local_type, &local_value, &local_tb); +#endif + PyErr_NormalizeException(&local_type, &local_value, &local_tb); +#if CYTHON_FAST_THREAD_STATE + if (unlikely(tstate->curexc_type)) +#else + if (unlikely(PyErr_Occurred())) +#endif + goto bad; + #if PY_MAJOR_VERSION >= 3 + if (local_tb) { + if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) + goto bad; + } + #endif + Py_XINCREF(local_tb); + Py_XINCREF(local_type); + Py_XINCREF(local_value); + *type = local_type; + *value = local_value; + *tb = local_tb; +#if CYTHON_FAST_THREAD_STATE + #if CYTHON_USE_EXC_INFO_STACK + { + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = local_type; + exc_info->exc_value = local_value; + exc_info->exc_traceback = local_tb; + } + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = local_type; + tstate->exc_value = local_value; + tstate->exc_traceback = local_tb; + #endif + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +#else + PyErr_SetExcInfo(local_type, local_value, local_tb); +#endif + return 0; +bad: + *type = 0; + *value = 0; + *tb = 0; + Py_XDECREF(local_type); + Py_XDECREF(local_value); + Py_XDECREF(local_tb); + return -1; +} + +/* PyObjectCall */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { + PyObject *result; + ternaryfunc call = Py_TYPE(func)->tp_call; + if (unlikely(!call)) + return PyObject_Call(func, arg, kw); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = (*call)(func, arg, kw); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyErrFetchRestore */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + tmp_type = tstate->curexc_type; + tmp_value = tstate->curexc_value; + tmp_tb = tstate->curexc_traceback; + tstate->curexc_type = type; + tstate->curexc_value = value; + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + *type = tstate->curexc_type; + *value = tstate->curexc_value; + *tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +} +#endif + +/* RaiseException */ +#if PY_MAJOR_VERSION < 3 +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, + CYTHON_UNUSED PyObject *cause) { + __Pyx_PyThreadState_declare + Py_XINCREF(type); + if (!value || value == Py_None) + value = NULL; + else + Py_INCREF(value); + if (!tb || tb == Py_None) + tb = NULL; + else { + Py_INCREF(tb); + if (!PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto raise_error; + } + } + if (PyType_Check(type)) { +#if CYTHON_COMPILING_IN_PYPY + if (!value) { + Py_INCREF(Py_None); + value = Py_None; + } +#endif + PyErr_NormalizeException(&type, &value, &tb); + } else { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto raise_error; + } + value = type; + type = (PyObject*) Py_TYPE(type); + Py_INCREF(type); + if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto raise_error; + } + } + __Pyx_PyThreadState_assign + __Pyx_ErrRestore(type, value, tb); + return; +raise_error: + Py_XDECREF(value); + Py_XDECREF(type); + Py_XDECREF(tb); + return; +} +#else +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { + PyObject* owned_instance = NULL; + if (tb == Py_None) { + tb = 0; + } else if (tb && !PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto bad; + } + if (value == Py_None) + value = 0; + if (PyExceptionInstance_Check(type)) { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto bad; + } + value = type; + type = (PyObject*) Py_TYPE(value); + } else if (PyExceptionClass_Check(type)) { + PyObject *instance_class = NULL; + if (value && PyExceptionInstance_Check(value)) { + instance_class = (PyObject*) Py_TYPE(value); + if (instance_class != type) { + int is_subclass = PyObject_IsSubclass(instance_class, type); + if (!is_subclass) { + instance_class = NULL; + } else if (unlikely(is_subclass == -1)) { + goto bad; + } else { + type = instance_class; + } + } + } + if (!instance_class) { + PyObject *args; + if (!value) + args = PyTuple_New(0); + else if (PyTuple_Check(value)) { + Py_INCREF(value); + args = value; + } else + args = PyTuple_Pack(1, value); + if (!args) + goto bad; + owned_instance = PyObject_Call(type, args, NULL); + Py_DECREF(args); + if (!owned_instance) + goto bad; + value = owned_instance; + if (!PyExceptionInstance_Check(value)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %R", + type, Py_TYPE(value)); + goto bad; + } + } + } else { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto bad; + } + if (cause) { + PyObject *fixed_cause; + if (cause == Py_None) { + fixed_cause = NULL; + } else if (PyExceptionClass_Check(cause)) { + fixed_cause = PyObject_CallObject(cause, NULL); + if (fixed_cause == NULL) + goto bad; + } else if (PyExceptionInstance_Check(cause)) { + fixed_cause = cause; + Py_INCREF(fixed_cause); + } else { + PyErr_SetString(PyExc_TypeError, + "exception causes must derive from " + "BaseException"); + goto bad; + } + PyException_SetCause(value, fixed_cause); + } + PyErr_SetObject(type, value); + if (tb) { +#if CYTHON_COMPILING_IN_PYPY + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); + Py_INCREF(tb); + PyErr_Restore(tmp_type, tmp_value, tb); + Py_XDECREF(tmp_tb); +#else + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject* tmp_tb = tstate->curexc_traceback; + if (tb != tmp_tb) { + Py_INCREF(tb); + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_tb); + } +#endif + } +bad: + Py_XDECREF(owned_instance); + return; +} +#endif + +/* ArgTypeTest */ +static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) +{ + if (unlikely(!type)) { + PyErr_SetString(PyExc_SystemError, "Missing type object"); + return 0; + } + else if (exact) { + #if PY_MAJOR_VERSION == 2 + if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; + #endif + } + else { + if (likely(__Pyx_TypeCheck(obj, type))) return 1; + } + PyErr_Format(PyExc_TypeError, + "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", + name, type->tp_name, Py_TYPE(obj)->tp_name); + return 0; +} + +/* PyCFunctionFastCall */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { + PyCFunctionObject *func = (PyCFunctionObject*)func_obj; + PyCFunction meth = PyCFunction_GET_FUNCTION(func); + PyObject *self = PyCFunction_GET_SELF(func); + int flags = PyCFunction_GET_FLAGS(func); + assert(PyCFunction_Check(func)); + assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); + assert(nargs >= 0); + assert(nargs == 0 || args != NULL); + /* _PyCFunction_FastCallDict() must not be called with an exception set, + because it may clear it (directly or indirectly) and so the + caller loses its exception */ + assert(!PyErr_Occurred()); + if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { + return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); + } else { + return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); + } +} +#endif + +/* PyFunctionFastCall */ +#if CYTHON_FAST_PYCALL +static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, + PyObject *globals) { + PyFrameObject *f; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject **fastlocals; + Py_ssize_t i; + PyObject *result; + assert(globals != NULL); + /* XXX Perhaps we should create a specialized + PyFrame_New() that doesn't take locals, but does + take builtins without sanity checking them. + */ + assert(tstate != NULL); + f = PyFrame_New(tstate, co, globals, NULL); + if (f == NULL) { + return NULL; + } + fastlocals = __Pyx_PyFrame_GetLocalsplus(f); + for (i = 0; i < na; i++) { + Py_INCREF(*args); + fastlocals[i] = *args++; + } + result = PyEval_EvalFrameEx(f,0); + ++tstate->recursion_depth; + Py_DECREF(f); + --tstate->recursion_depth; + return result; +} +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { + PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); + PyObject *globals = PyFunction_GET_GLOBALS(func); + PyObject *argdefs = PyFunction_GET_DEFAULTS(func); + PyObject *closure; +#if PY_MAJOR_VERSION >= 3 + PyObject *kwdefs; +#endif + PyObject *kwtuple, **k; + PyObject **d; + Py_ssize_t nd; + Py_ssize_t nk; + PyObject *result; + assert(kwargs == NULL || PyDict_Check(kwargs)); + nk = kwargs ? PyDict_Size(kwargs) : 0; + if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { + return NULL; + } + if ( +#if PY_MAJOR_VERSION >= 3 + co->co_kwonlyargcount == 0 && +#endif + likely(kwargs == NULL || nk == 0) && + co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { + if (argdefs == NULL && co->co_argcount == nargs) { + result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); + goto done; + } + else if (nargs == 0 && argdefs != NULL + && co->co_argcount == Py_SIZE(argdefs)) { + /* function called with no arguments, but all parameters have + a default value: use default values as arguments .*/ + args = &PyTuple_GET_ITEM(argdefs, 0); + result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); + goto done; + } + } + if (kwargs != NULL) { + Py_ssize_t pos, i; + kwtuple = PyTuple_New(2 * nk); + if (kwtuple == NULL) { + result = NULL; + goto done; + } + k = &PyTuple_GET_ITEM(kwtuple, 0); + pos = i = 0; + while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { + Py_INCREF(k[i]); + Py_INCREF(k[i+1]); + i += 2; + } + nk = i / 2; + } + else { + kwtuple = NULL; + k = NULL; + } + closure = PyFunction_GET_CLOSURE(func); +#if PY_MAJOR_VERSION >= 3 + kwdefs = PyFunction_GET_KW_DEFAULTS(func); +#endif + if (argdefs != NULL) { + d = &PyTuple_GET_ITEM(argdefs, 0); + nd = Py_SIZE(argdefs); + } + else { + d = NULL; + nd = 0; + } +#if PY_MAJOR_VERSION >= 3 + result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, kwdefs, closure); +#else + result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, closure); +#endif + Py_XDECREF(kwtuple); +done: + Py_LeaveRecursiveCall(); + return result; +} +#endif +#endif + +/* PyObjectCall2Args */ +static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { + PyObject *args, *result = NULL; + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(function)) { + PyObject *args[2] = {arg1, arg2}; + return __Pyx_PyFunction_FastCall(function, args, 2); + } + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(function)) { + PyObject *args[2] = {arg1, arg2}; + return __Pyx_PyCFunction_FastCall(function, args, 2); + } + #endif + args = PyTuple_New(2); + if (unlikely(!args)) goto done; + Py_INCREF(arg1); + PyTuple_SET_ITEM(args, 0, arg1); + Py_INCREF(arg2); + PyTuple_SET_ITEM(args, 1, arg2); + Py_INCREF(function); + result = __Pyx_PyObject_Call(function, args, NULL); + Py_DECREF(args); + Py_DECREF(function); +done: + return result; +} + +/* PyObjectCallMethO */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { + PyObject *self, *result; + PyCFunction cfunc; + cfunc = PyCFunction_GET_FUNCTION(func); + self = PyCFunction_GET_SELF(func); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = cfunc(self, arg); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallOneArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_New(1); + if (unlikely(!args)) return NULL; + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 0, arg); + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, &arg, 1); + } +#endif + if (likely(PyCFunction_Check(func))) { + if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { + return __Pyx_PyObject_CallMethO(func, arg); +#if CYTHON_FAST_PYCCALL + } else if (__Pyx_PyFastCFunction_Check(func)) { + return __Pyx_PyCFunction_FastCall(func, &arg, 1); +#endif + } + } + return __Pyx__PyObject_CallOneArg(func, arg); +} +#else +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_Pack(1, arg); + if (unlikely(!args)) return NULL; + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +#endif + +/* BytesEquals */ +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { +#if CYTHON_COMPILING_IN_PYPY + return PyObject_RichCompareBool(s1, s2, equals); +#else + if (s1 == s2) { + return (equals == Py_EQ); + } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { + const char *ps1, *ps2; + Py_ssize_t length = PyBytes_GET_SIZE(s1); + if (length != PyBytes_GET_SIZE(s2)) + return (equals == Py_NE); + ps1 = PyBytes_AS_STRING(s1); + ps2 = PyBytes_AS_STRING(s2); + if (ps1[0] != ps2[0]) { + return (equals == Py_NE); + } else if (length == 1) { + return (equals == Py_EQ); + } else { + int result; +#if CYTHON_USE_UNICODE_INTERNALS + Py_hash_t hash1, hash2; + hash1 = ((PyBytesObject*)s1)->ob_shash; + hash2 = ((PyBytesObject*)s2)->ob_shash; + if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { + return (equals == Py_NE); + } +#endif + result = memcmp(ps1, ps2, (size_t)length); + return (equals == Py_EQ) ? (result == 0) : (result != 0); + } + } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { + return (equals == Py_NE); + } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { + return (equals == Py_NE); + } else { + int result; + PyObject* py_result = PyObject_RichCompare(s1, s2, equals); + if (!py_result) + return -1; + result = __Pyx_PyObject_IsTrue(py_result); + Py_DECREF(py_result); + return result; + } +#endif +} + +/* UnicodeEquals */ +static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { +#if CYTHON_COMPILING_IN_PYPY + return PyObject_RichCompareBool(s1, s2, equals); +#else +#if PY_MAJOR_VERSION < 3 + PyObject* owned_ref = NULL; +#endif + int s1_is_unicode, s2_is_unicode; + if (s1 == s2) { + goto return_eq; + } + s1_is_unicode = PyUnicode_CheckExact(s1); + s2_is_unicode = PyUnicode_CheckExact(s2); +#if PY_MAJOR_VERSION < 3 + if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { + owned_ref = PyUnicode_FromObject(s2); + if (unlikely(!owned_ref)) + return -1; + s2 = owned_ref; + s2_is_unicode = 1; + } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { + owned_ref = PyUnicode_FromObject(s1); + if (unlikely(!owned_ref)) + return -1; + s1 = owned_ref; + s1_is_unicode = 1; + } else if (((!s2_is_unicode) & (!s1_is_unicode))) { + return __Pyx_PyBytes_Equals(s1, s2, equals); + } +#endif + if (s1_is_unicode & s2_is_unicode) { + Py_ssize_t length; + int kind; + void *data1, *data2; + if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) + return -1; + length = __Pyx_PyUnicode_GET_LENGTH(s1); + if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { + goto return_ne; + } +#if CYTHON_USE_UNICODE_INTERNALS + { + Py_hash_t hash1, hash2; + #if CYTHON_PEP393_ENABLED + hash1 = ((PyASCIIObject*)s1)->hash; + hash2 = ((PyASCIIObject*)s2)->hash; + #else + hash1 = ((PyUnicodeObject*)s1)->hash; + hash2 = ((PyUnicodeObject*)s2)->hash; + #endif + if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { + goto return_ne; + } + } +#endif + kind = __Pyx_PyUnicode_KIND(s1); + if (kind != __Pyx_PyUnicode_KIND(s2)) { + goto return_ne; + } + data1 = __Pyx_PyUnicode_DATA(s1); + data2 = __Pyx_PyUnicode_DATA(s2); + if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { + goto return_ne; + } else if (length == 1) { + goto return_eq; + } else { + int result = memcmp(data1, data2, (size_t)(length * kind)); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_EQ) ? (result == 0) : (result != 0); + } + } else if ((s1 == Py_None) & s2_is_unicode) { + goto return_ne; + } else if ((s2 == Py_None) & s1_is_unicode) { + goto return_ne; + } else { + int result; + PyObject* py_result = PyObject_RichCompare(s1, s2, equals); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + if (!py_result) + return -1; + result = __Pyx_PyObject_IsTrue(py_result); + Py_DECREF(py_result); + return result; + } +return_eq: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_EQ); +return_ne: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_NE); +#endif +} + +/* DivInt[Py_ssize_t] */ +static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { + Py_ssize_t q = a / b; + Py_ssize_t r = a - q*b; + q -= ((r != 0) & ((r ^ b) < 0)); + return q; +} + +/* GetAttr */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { +#if CYTHON_USE_TYPE_SLOTS +#if PY_MAJOR_VERSION >= 3 + if (likely(PyUnicode_Check(n))) +#else + if (likely(PyString_Check(n))) +#endif + return __Pyx_PyObject_GetAttrStr(o, n); +#endif + return PyObject_GetAttr(o, n); +} + +/* GetItemInt */ +static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { + PyObject *r; + if (!j) return NULL; + r = PyObject_GetItem(o, j); + Py_DECREF(j); + return r; +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + Py_ssize_t wrapped_i = i; + if (wraparound & unlikely(i < 0)) { + wrapped_i += PyList_GET_SIZE(o); + } + if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { + PyObject *r = PyList_GET_ITEM(o, wrapped_i); + Py_INCREF(r); + return r; + } + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +#else + return PySequence_GetItem(o, i); +#endif +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + Py_ssize_t wrapped_i = i; + if (wraparound & unlikely(i < 0)) { + wrapped_i += PyTuple_GET_SIZE(o); + } + if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { + PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); + Py_INCREF(r); + return r; + } + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +#else + return PySequence_GetItem(o, i); +#endif +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS + if (is_list || PyList_CheckExact(o)) { + Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); + if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { + PyObject *r = PyList_GET_ITEM(o, n); + Py_INCREF(r); + return r; + } + } + else if (PyTuple_CheckExact(o)) { + Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); + if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { + PyObject *r = PyTuple_GET_ITEM(o, n); + Py_INCREF(r); + return r; + } + } else { + PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; + if (likely(m && m->sq_item)) { + if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { + Py_ssize_t l = m->sq_length(o); + if (likely(l >= 0)) { + i += l; + } else { + if (!PyErr_ExceptionMatches(PyExc_OverflowError)) + return NULL; + PyErr_Clear(); + } + } + return m->sq_item(o, i); + } + } +#else + if (is_list || PySequence_Check(o)) { + return PySequence_GetItem(o, i); + } +#endif + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +} + +/* ObjectGetItem */ +#if CYTHON_USE_TYPE_SLOTS +static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { + PyObject *runerr; + Py_ssize_t key_value; + PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; + if (unlikely(!(m && m->sq_item))) { + PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); + return NULL; + } + key_value = __Pyx_PyIndex_AsSsize_t(index); + if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { + return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); + } + if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { + PyErr_Clear(); + PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); + } + return NULL; +} +static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { + PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; + if (likely(m && m->mp_subscript)) { + return m->mp_subscript(obj, key); + } + return __Pyx_PyObject_GetIndex(obj, key); +} +#endif + +/* decode_c_string */ +static CYTHON_INLINE PyObject* __Pyx_decode_c_string( + const char* cstring, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { + Py_ssize_t length; + if (unlikely((start < 0) | (stop < 0))) { + size_t slen = strlen(cstring); + if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { + PyErr_SetString(PyExc_OverflowError, + "c-string too long to convert to Python"); + return NULL; + } + length = (Py_ssize_t) slen; + if (start < 0) { + start += length; + if (start < 0) + start = 0; + } + if (stop < 0) + stop += length; + } + if (unlikely(stop <= start)) + return __Pyx_NewRef(__pyx_empty_unicode); + length = stop - start; + cstring += start; + if (decode_func) { + return decode_func(cstring, length, errors); + } else { + return PyUnicode_Decode(cstring, length, encoding, errors); + } +} + +/* GetAttr3 */ +static PyObject *__Pyx_GetAttr3Default(PyObject *d) { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) + return NULL; + __Pyx_PyErr_Clear(); + Py_INCREF(d); + return d; +} +static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { + PyObject *r = __Pyx_GetAttr(o, n); + return (likely(r)) ? r : __Pyx_GetAttr3Default(d); +} + +/* PyDictVersioning */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { + PyObject **dictptr = NULL; + Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; + if (offset) { +#if CYTHON_COMPILING_IN_CPYTHON + dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); +#else + dictptr = _PyObject_GetDictPtr(obj); +#endif + } + return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; +} +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) + return 0; + return obj_dict_version == __Pyx_get_object_dict_version(obj); +} +#endif + +/* GetModuleGlobalName */ +#if CYTHON_USE_DICT_VERSIONS +static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) +#else +static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) +#endif +{ + PyObject *result; +#if !CYTHON_AVOID_BORROWED_REFS +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 + result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } else if (unlikely(PyErr_Occurred())) { + return NULL; + } +#else + result = PyDict_GetItem(__pyx_d, name); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } +#endif +#else + result = PyObject_GetItem(__pyx_d, name); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } + PyErr_Clear(); +#endif + return __Pyx_GetBuiltinName(name); +} + +/* RaiseTooManyValuesToUnpack */ +static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { + PyErr_Format(PyExc_ValueError, + "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); +} + +/* RaiseNeedMoreValuesToUnpack */ +static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { + PyErr_Format(PyExc_ValueError, + "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", + index, (index == 1) ? "" : "s"); +} + +/* RaiseNoneIterError */ +static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); +} + +/* ExtTypeTest */ +static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { + if (unlikely(!type)) { + PyErr_SetString(PyExc_SystemError, "Missing type object"); + return 0; + } + if (likely(__Pyx_TypeCheck(obj, type))) + return 1; + PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", + Py_TYPE(obj)->tp_name, type->tp_name); + return 0; +} + +/* SwapException */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = *type; + exc_info->exc_value = *value; + exc_info->exc_traceback = *tb; + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = *type; + tstate->exc_value = *value; + tstate->exc_traceback = *tb; + #endif + *type = tmp_type; + *value = tmp_value; + *tb = tmp_tb; +} +#else +static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); + PyErr_SetExcInfo(*type, *value, *tb); + *type = tmp_type; + *value = tmp_value; + *tb = tmp_tb; +} +#endif + +/* Import */ +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { + PyObject *empty_list = 0; + PyObject *module = 0; + PyObject *global_dict = 0; + PyObject *empty_dict = 0; + PyObject *list; + #if PY_MAJOR_VERSION < 3 + PyObject *py_import; + py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); + if (!py_import) + goto bad; + #endif + if (from_list) + list = from_list; + else { + empty_list = PyList_New(0); + if (!empty_list) + goto bad; + list = empty_list; + } + global_dict = PyModule_GetDict(__pyx_m); + if (!global_dict) + goto bad; + empty_dict = PyDict_New(); + if (!empty_dict) + goto bad; + { + #if PY_MAJOR_VERSION >= 3 + if (level == -1) { + if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { + module = PyImport_ImportModuleLevelObject( + name, global_dict, empty_dict, list, 1); + if (!module) { + if (!PyErr_ExceptionMatches(PyExc_ImportError)) + goto bad; + PyErr_Clear(); + } + } + level = 0; + } + #endif + if (!module) { + #if PY_MAJOR_VERSION < 3 + PyObject *py_level = PyInt_FromLong(level); + if (!py_level) + goto bad; + module = PyObject_CallFunctionObjArgs(py_import, + name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); + Py_DECREF(py_level); + #else + module = PyImport_ImportModuleLevelObject( + name, global_dict, empty_dict, list, level); + #endif + } + } +bad: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_import); + #endif + Py_XDECREF(empty_list); + Py_XDECREF(empty_dict); + return module; +} + +/* FastTypeChecks */ +#if CYTHON_COMPILING_IN_CPYTHON +static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { + while (a) { + a = a->tp_base; + if (a == b) + return 1; + } + return b == &PyBaseObject_Type; +} +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { + PyObject *mro; + if (a == b) return 1; + mro = a->tp_mro; + if (likely(mro)) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(mro); + for (i = 0; i < n; i++) { + if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) + return 1; + } + return 0; + } + return __Pyx_InBases(a, b); +} +#if PY_MAJOR_VERSION == 2 +static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { + PyObject *exception, *value, *tb; + int res; + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&exception, &value, &tb); + res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + if (!res) { + res = PyObject_IsSubclass(err, exc_type2); + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + } + __Pyx_ErrRestore(exception, value, tb); + return res; +} +#else +static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { + int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; + if (!res) { + res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); + } + return res; +} +#endif +static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + assert(PyExceptionClass_Check(exc_type)); + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; i= 0 || (x^b) >= 0)) + return PyInt_FromLong(x); + return PyLong_Type.tp_as_number->nb_add(op1, op2); + } + #endif + #if CYTHON_USE_PYLONG_INTERNALS + if (likely(PyLong_CheckExact(op1))) { + const long b = intval; + long a, x; +#ifdef HAVE_LONG_LONG + const PY_LONG_LONG llb = intval; + PY_LONG_LONG lla, llx; +#endif + const digit* digits = ((PyLongObject*)op1)->ob_digit; + const Py_ssize_t size = Py_SIZE(op1); + if (likely(__Pyx_sst_abs(size) <= 1)) { + a = likely(size) ? digits[0] : 0; + if (size == -1) a = -a; + } else { + switch (size) { + case -2: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case 2: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case -3: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case 3: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case -4: + if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case 4: + if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + default: return PyLong_Type.tp_as_number->nb_add(op1, op2); + } + } + x = a + b; + return PyLong_FromLong(x); +#ifdef HAVE_LONG_LONG + long_long: + llx = lla + llb; + return PyLong_FromLongLong(llx); +#endif + + + } + #endif + if (PyFloat_CheckExact(op1)) { + const long b = intval; + double a = PyFloat_AS_DOUBLE(op1); + double result; + PyFPE_START_PROTECT("add", return NULL) + result = ((double)a) + (double)b; + PyFPE_END_PROTECT(result) + return PyFloat_FromDouble(result); + } + return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); +} +#endif + +/* DivInt[long] */ +static CYTHON_INLINE long __Pyx_div_long(long a, long b) { + long q = a / b; + long r = a - q*b; + q -= ((r != 0) & ((r ^ b) < 0)); + return q; +} + +/* ImportFrom */ +static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { + PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); + if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Format(PyExc_ImportError, + #if PY_MAJOR_VERSION < 3 + "cannot import name %.230s", PyString_AS_STRING(name)); + #else + "cannot import name %S", name); + #endif + } + return value; +} + +/* HasAttr */ +static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { + PyObject *r; + if (unlikely(!__Pyx_PyBaseString_Check(n))) { + PyErr_SetString(PyExc_TypeError, + "hasattr(): attribute name must be string"); + return -1; + } + r = __Pyx_GetAttr(o, n); + if (unlikely(!r)) { + PyErr_Clear(); + return 0; + } else { + Py_DECREF(r); + return 1; + } +} + +/* PyObject_GenericGetAttrNoDict */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { + PyErr_Format(PyExc_AttributeError, +#if PY_MAJOR_VERSION >= 3 + "'%.50s' object has no attribute '%U'", + tp->tp_name, attr_name); +#else + "'%.50s' object has no attribute '%.400s'", + tp->tp_name, PyString_AS_STRING(attr_name)); +#endif + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { + PyObject *descr; + PyTypeObject *tp = Py_TYPE(obj); + if (unlikely(!PyString_Check(attr_name))) { + return PyObject_GenericGetAttr(obj, attr_name); + } + assert(!tp->tp_dictoffset); + descr = _PyType_Lookup(tp, attr_name); + if (unlikely(!descr)) { + return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); + } + Py_INCREF(descr); + #if PY_MAJOR_VERSION < 3 + if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) + #endif + { + descrgetfunc f = Py_TYPE(descr)->tp_descr_get; + if (unlikely(f)) { + PyObject *res = f(descr, obj, (PyObject *)tp); + Py_DECREF(descr); + return res; + } + } + return descr; +} +#endif + +/* PyObject_GenericGetAttr */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { + if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { + return PyObject_GenericGetAttr(obj, attr_name); + } + return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); +} +#endif + +/* SetVTable */ +static int __Pyx_SetVtable(PyObject *dict, void *vtable) { +#if PY_VERSION_HEX >= 0x02070000 + PyObject *ob = PyCapsule_New(vtable, 0, 0); +#else + PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); +#endif + if (!ob) + goto bad; + if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) + goto bad; + Py_DECREF(ob); + return 0; +bad: + Py_XDECREF(ob); + return -1; +} + +/* PyObjectGetAttrStrNoError */ +static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) + __Pyx_PyErr_Clear(); +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { + PyObject *result; +#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { + return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); + } +#endif + result = __Pyx_PyObject_GetAttrStr(obj, attr_name); + if (unlikely(!result)) { + __Pyx_PyObject_GetAttrStr_ClearAttributeError(); + } + return result; +} + +/* SetupReduce */ +static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { + int ret; + PyObject *name_attr; + name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2); + if (likely(name_attr)) { + ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); + } else { + ret = -1; + } + if (unlikely(ret < 0)) { + PyErr_Clear(); + ret = 0; + } + Py_XDECREF(name_attr); + return ret; +} +static int __Pyx_setup_reduce(PyObject* type_obj) { + int ret = 0; + PyObject *object_reduce = NULL; + PyObject *object_reduce_ex = NULL; + PyObject *reduce = NULL; + PyObject *reduce_ex = NULL; + PyObject *reduce_cython = NULL; + PyObject *setstate = NULL; + PyObject *setstate_cython = NULL; +#if CYTHON_USE_PYTYPE_LOOKUP + if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; +#else + if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; +#endif +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; +#else + object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; +#endif + reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; + if (reduce_ex == object_reduce_ex) { +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; +#else + object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; +#endif + reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; + if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { + reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); + if (likely(reduce_cython)) { + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + } else if (reduce == object_reduce || PyErr_Occurred()) { + goto __PYX_BAD; + } + setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); + if (!setstate) PyErr_Clear(); + if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { + setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); + if (likely(setstate_cython)) { + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + } else if (!setstate || PyErr_Occurred()) { + goto __PYX_BAD; + } + } + PyType_Modified((PyTypeObject*)type_obj); + } + } + goto __PYX_GOOD; +__PYX_BAD: + if (!PyErr_Occurred()) + PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); + ret = -1; +__PYX_GOOD: +#if !CYTHON_USE_PYTYPE_LOOKUP + Py_XDECREF(object_reduce); + Py_XDECREF(object_reduce_ex); +#endif + Py_XDECREF(reduce); + Py_XDECREF(reduce_ex); + Py_XDECREF(reduce_cython); + Py_XDECREF(setstate); + Py_XDECREF(setstate_cython); + return ret; +} + +/* TypeImport */ +#ifndef __PYX_HAVE_RT_ImportType +#define __PYX_HAVE_RT_ImportType +static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name, + size_t size, enum __Pyx_ImportType_CheckSize check_size) +{ + PyObject *result = 0; + char warning[200]; + Py_ssize_t basicsize; +#ifdef Py_LIMITED_API + PyObject *py_basicsize; +#endif + result = PyObject_GetAttrString(module, class_name); + if (!result) + goto bad; + if (!PyType_Check(result)) { + PyErr_Format(PyExc_TypeError, + "%.200s.%.200s is not a type object", + module_name, class_name); + goto bad; + } +#ifndef Py_LIMITED_API + basicsize = ((PyTypeObject *)result)->tp_basicsize; +#else + py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); + if (!py_basicsize) + goto bad; + basicsize = PyLong_AsSsize_t(py_basicsize); + Py_DECREF(py_basicsize); + py_basicsize = 0; + if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) + goto bad; +#endif + if ((size_t)basicsize < size) { + PyErr_Format(PyExc_ValueError, + "%.200s.%.200s size changed, may indicate binary incompatibility. " + "Expected %zd from C header, got %zd from PyObject", + module_name, class_name, size, basicsize); + goto bad; + } + if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) { + PyErr_Format(PyExc_ValueError, + "%.200s.%.200s size changed, may indicate binary incompatibility. " + "Expected %zd from C header, got %zd from PyObject", + module_name, class_name, size, basicsize); + goto bad; + } + else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) { + PyOS_snprintf(warning, sizeof(warning), + "%s.%s size changed, may indicate binary incompatibility. " + "Expected %zd from C header, got %zd from PyObject", + module_name, class_name, size, basicsize); + if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; + } + return (PyTypeObject *)result; +bad: + Py_XDECREF(result); + return NULL; +} +#endif + +/* CLineInTraceback */ +#ifndef CYTHON_CLINE_IN_TRACEBACK +static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { + PyObject *use_cline; + PyObject *ptype, *pvalue, *ptraceback; +#if CYTHON_COMPILING_IN_CPYTHON + PyObject **cython_runtime_dict; +#endif + if (unlikely(!__pyx_cython_runtime)) { + return c_line; + } + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); +#if CYTHON_COMPILING_IN_CPYTHON + cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); + if (likely(cython_runtime_dict)) { + __PYX_PY_DICT_LOOKUP_IF_MODIFIED( + use_cline, *cython_runtime_dict, + __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) + } else +#endif + { + PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); + if (use_cline_obj) { + use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; + Py_DECREF(use_cline_obj); + } else { + PyErr_Clear(); + use_cline = NULL; + } + } + if (!use_cline) { + c_line = 0; + (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + } + else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { + c_line = 0; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); + return c_line; +} +#endif + +/* CodeObjectCache */ +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + int start = 0, mid = 0, end = count - 1; + if (end >= 0 && code_line > entries[end].code_line) { + return count; + } + while (start < end) { + mid = start + (end - start) / 2; + if (code_line < entries[mid].code_line) { + end = mid; + } else if (code_line > entries[mid].code_line) { + start = mid + 1; + } else { + return mid; + } + } + if (code_line <= entries[mid].code_line) { + return mid; + } else { + return mid + 1; + } +} +static PyCodeObject *__pyx_find_code_object(int code_line) { + PyCodeObject* code_object; + int pos; + if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { + return NULL; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { + return NULL; + } + code_object = __pyx_code_cache.entries[pos].code_object; + Py_INCREF(code_object); + return code_object; +} +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { + int pos, i; + __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; + if (unlikely(!code_line)) { + return; + } + if (unlikely(!entries)) { + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); + if (likely(entries)) { + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = 64; + __pyx_code_cache.count = 1; + entries[0].code_line = code_line; + entries[0].code_object = code_object; + Py_INCREF(code_object); + } + return; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { + PyCodeObject* tmp = entries[pos].code_object; + entries[pos].code_object = code_object; + Py_DECREF(tmp); + return; + } + if (__pyx_code_cache.count == __pyx_code_cache.max_count) { + int new_max = __pyx_code_cache.max_count + 64; + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( + __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); + if (unlikely(!entries)) { + return; + } + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = new_max; + } + for (i=__pyx_code_cache.count; i>pos; i--) { + entries[i] = entries[i-1]; + } + entries[pos].code_line = code_line; + entries[pos].code_object = code_object; + __pyx_code_cache.count++; + Py_INCREF(code_object); +} + +/* AddTraceback */ +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" +static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( + const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = NULL; + PyObject *py_funcname = NULL; + #if PY_MAJOR_VERSION < 3 + PyObject *py_srcfile = NULL; + py_srcfile = PyString_FromString(filename); + if (!py_srcfile) goto bad; + #endif + if (c_line) { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + #else + py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + funcname = PyUnicode_AsUTF8(py_funcname); + if (!funcname) goto bad; + #endif + } + else { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromString(funcname); + if (!py_funcname) goto bad; + #endif + } + #if PY_MAJOR_VERSION < 3 + py_code = __Pyx_PyCode_New( + 0, + 0, + 0, + 0, + 0, + __pyx_empty_bytes, /*PyObject *code,*/ + __pyx_empty_tuple, /*PyObject *consts,*/ + __pyx_empty_tuple, /*PyObject *names,*/ + __pyx_empty_tuple, /*PyObject *varnames,*/ + __pyx_empty_tuple, /*PyObject *freevars,*/ + __pyx_empty_tuple, /*PyObject *cellvars,*/ + py_srcfile, /*PyObject *filename,*/ + py_funcname, /*PyObject *name,*/ + py_line, + __pyx_empty_bytes /*PyObject *lnotab*/ + ); + Py_DECREF(py_srcfile); + #else + py_code = PyCode_NewEmpty(filename, funcname, py_line); + #endif + Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline + return py_code; +bad: + Py_XDECREF(py_funcname); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_srcfile); + #endif + return NULL; +} +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyFrameObject *py_frame = 0; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + if (c_line) { + c_line = __Pyx_CLineForTraceback(tstate, c_line); + } + py_code = __pyx_find_code_object(c_line ? -c_line : py_line); + if (!py_code) { + py_code = __Pyx_CreateCodeObjectForTraceback( + funcname, c_line, py_line, filename); + if (!py_code) goto bad; + __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); + } + py_frame = PyFrame_New( + tstate, /*PyThreadState *tstate,*/ + py_code, /*PyCodeObject *code,*/ + __pyx_d, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; + __Pyx_PyFrame_SetLineNumber(py_frame, py_line); + PyTraceBack_Here(py_frame); +bad: + Py_XDECREF(py_code); + Py_XDECREF(py_frame); +} + +#if PY_MAJOR_VERSION < 3 +static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { + if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags); + PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); + return -1; +} +static void __Pyx_ReleaseBuffer(Py_buffer *view) { + PyObject *obj = view->obj; + if (!obj) return; + if (PyObject_CheckBuffer(obj)) { + PyBuffer_Release(view); + return; + } + if ((0)) {} + view->obj = NULL; + Py_DECREF(obj); +} +#endif + + +/* MemviewSliceIsContig */ +static int +__pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim) +{ + int i, index, step, start; + Py_ssize_t itemsize = mvs.memview->view.itemsize; + if (order == 'F') { + step = 1; + start = 0; + } else { + step = -1; + start = ndim - 1; + } + for (i = 0; i < ndim; i++) { + index = start + step * i; + if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize) + return 0; + itemsize *= mvs.shape[index]; + } + return 1; +} + +/* OverlappingSlices */ +static void +__pyx_get_array_memory_extents(__Pyx_memviewslice *slice, + void **out_start, void **out_end, + int ndim, size_t itemsize) +{ + char *start, *end; + int i; + start = end = slice->data; + for (i = 0; i < ndim; i++) { + Py_ssize_t stride = slice->strides[i]; + Py_ssize_t extent = slice->shape[i]; + if (extent == 0) { + *out_start = *out_end = start; + return; + } else { + if (stride > 0) + end += stride * (extent - 1); + else + start += stride * (extent - 1); + } + } + *out_start = start; + *out_end = end + itemsize; +} +static int +__pyx_slices_overlap(__Pyx_memviewslice *slice1, + __Pyx_memviewslice *slice2, + int ndim, size_t itemsize) +{ + void *start1, *end1, *start2, *end2; + __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize); + __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize); + return (start1 < end2) && (start2 < end1); +} + +/* Capsule */ +static CYTHON_INLINE PyObject * +__pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig) +{ + PyObject *cobj; +#if PY_VERSION_HEX >= 0x02070000 + cobj = PyCapsule_New(p, sig, NULL); +#else + cobj = PyCObject_FromVoidPtr(p, NULL); +#endif + return cobj; +} + +/* IsLittleEndian */ +static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) +{ + union { + uint32_t u32; + uint8_t u8[4]; + } S; + S.u32 = 0x01020304; + return S.u8[0] == 4; +} + +/* BufferFormatCheck */ +static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, + __Pyx_BufFmt_StackElem* stack, + __Pyx_TypeInfo* type) { + stack[0].field = &ctx->root; + stack[0].parent_offset = 0; + ctx->root.type = type; + ctx->root.name = "buffer dtype"; + ctx->root.offset = 0; + ctx->head = stack; + ctx->head->field = &ctx->root; + ctx->fmt_offset = 0; + ctx->head->parent_offset = 0; + ctx->new_packmode = '@'; + ctx->enc_packmode = '@'; + ctx->new_count = 1; + ctx->enc_count = 0; + ctx->enc_type = 0; + ctx->is_complex = 0; + ctx->is_valid_array = 0; + ctx->struct_alignment = 0; + while (type->typegroup == 'S') { + ++ctx->head; + ctx->head->field = type->fields; + ctx->head->parent_offset = 0; + type = type->fields->type; + } +} +static int __Pyx_BufFmt_ParseNumber(const char** ts) { + int count; + const char* t = *ts; + if (*t < '0' || *t > '9') { + return -1; + } else { + count = *t++ - '0'; + while (*t >= '0' && *t <= '9') { + count *= 10; + count += *t++ - '0'; + } + } + *ts = t; + return count; +} +static int __Pyx_BufFmt_ExpectNumber(const char **ts) { + int number = __Pyx_BufFmt_ParseNumber(ts); + if (number == -1) + PyErr_Format(PyExc_ValueError,\ + "Does not understand character buffer dtype format string ('%c')", **ts); + return number; +} +static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { + PyErr_Format(PyExc_ValueError, + "Unexpected format string character: '%c'", ch); +} +static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { + switch (ch) { + case '?': return "'bool'"; + case 'c': return "'char'"; + case 'b': return "'signed char'"; + case 'B': return "'unsigned char'"; + case 'h': return "'short'"; + case 'H': return "'unsigned short'"; + case 'i': return "'int'"; + case 'I': return "'unsigned int'"; + case 'l': return "'long'"; + case 'L': return "'unsigned long'"; + case 'q': return "'long long'"; + case 'Q': return "'unsigned long long'"; + case 'f': return (is_complex ? "'complex float'" : "'float'"); + case 'd': return (is_complex ? "'complex double'" : "'double'"); + case 'g': return (is_complex ? "'complex long double'" : "'long double'"); + case 'T': return "a struct"; + case 'O': return "Python object"; + case 'P': return "a pointer"; + case 's': case 'p': return "a string"; + case 0: return "end"; + default: return "unparseable format string"; + } +} +static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return 2; + case 'i': case 'I': case 'l': case 'L': return 4; + case 'q': case 'Q': return 8; + case 'f': return (is_complex ? 8 : 4); + case 'd': return (is_complex ? 16 : 8); + case 'g': { + PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); + return 0; + } + case 'O': case 'P': return sizeof(void*); + default: + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } +} +static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return sizeof(short); + case 'i': case 'I': return sizeof(int); + case 'l': case 'L': return sizeof(long); + #ifdef HAVE_LONG_LONG + case 'q': case 'Q': return sizeof(PY_LONG_LONG); + #endif + case 'f': return sizeof(float) * (is_complex ? 2 : 1); + case 'd': return sizeof(double) * (is_complex ? 2 : 1); + case 'g': return sizeof(long double) * (is_complex ? 2 : 1); + case 'O': case 'P': return sizeof(void*); + default: { + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } + } +} +typedef struct { char c; short x; } __Pyx_st_short; +typedef struct { char c; int x; } __Pyx_st_int; +typedef struct { char c; long x; } __Pyx_st_long; +typedef struct { char c; float x; } __Pyx_st_float; +typedef struct { char c; double x; } __Pyx_st_double; +typedef struct { char c; long double x; } __Pyx_st_longdouble; +typedef struct { char c; void *x; } __Pyx_st_void_p; +#ifdef HAVE_LONG_LONG +typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; +#endif +static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); + case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); + case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); +#ifdef HAVE_LONG_LONG + case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); +#endif + case 'f': return sizeof(__Pyx_st_float) - sizeof(float); + case 'd': return sizeof(__Pyx_st_double) - sizeof(double); + case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); + case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); + default: + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } +} +/* These are for computing the padding at the end of the struct to align + on the first member of the struct. This will probably the same as above, + but we don't have any guarantees. + */ +typedef struct { short x; char c; } __Pyx_pad_short; +typedef struct { int x; char c; } __Pyx_pad_int; +typedef struct { long x; char c; } __Pyx_pad_long; +typedef struct { float x; char c; } __Pyx_pad_float; +typedef struct { double x; char c; } __Pyx_pad_double; +typedef struct { long double x; char c; } __Pyx_pad_longdouble; +typedef struct { void *x; char c; } __Pyx_pad_void_p; +#ifdef HAVE_LONG_LONG +typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong; +#endif +static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short); + case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int); + case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long); +#ifdef HAVE_LONG_LONG + case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG); +#endif + case 'f': return sizeof(__Pyx_pad_float) - sizeof(float); + case 'd': return sizeof(__Pyx_pad_double) - sizeof(double); + case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double); + case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*); + default: + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } +} +static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { + switch (ch) { + case 'c': + return 'H'; + case 'b': case 'h': case 'i': + case 'l': case 'q': case 's': case 'p': + return 'I'; + case '?': case 'B': case 'H': case 'I': case 'L': case 'Q': + return 'U'; + case 'f': case 'd': case 'g': + return (is_complex ? 'C' : 'R'); + case 'O': + return 'O'; + case 'P': + return 'P'; + default: { + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } + } +} +static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { + if (ctx->head == NULL || ctx->head->field == &ctx->root) { + const char* expected; + const char* quote; + if (ctx->head == NULL) { + expected = "end"; + quote = ""; + } else { + expected = ctx->head->field->type->name; + quote = "'"; + } + PyErr_Format(PyExc_ValueError, + "Buffer dtype mismatch, expected %s%s%s but got %s", + quote, expected, quote, + __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); + } else { + __Pyx_StructField* field = ctx->head->field; + __Pyx_StructField* parent = (ctx->head - 1)->field; + PyErr_Format(PyExc_ValueError, + "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", + field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), + parent->type->name, field->name); + } +} +static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { + char group; + size_t size, offset, arraysize = 1; + if (ctx->enc_type == 0) return 0; + if (ctx->head->field->type->arraysize[0]) { + int i, ndim = 0; + if (ctx->enc_type == 's' || ctx->enc_type == 'p') { + ctx->is_valid_array = ctx->head->field->type->ndim == 1; + ndim = 1; + if (ctx->enc_count != ctx->head->field->type->arraysize[0]) { + PyErr_Format(PyExc_ValueError, + "Expected a dimension of size %zu, got %zu", + ctx->head->field->type->arraysize[0], ctx->enc_count); + return -1; + } + } + if (!ctx->is_valid_array) { + PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", + ctx->head->field->type->ndim, ndim); + return -1; + } + for (i = 0; i < ctx->head->field->type->ndim; i++) { + arraysize *= ctx->head->field->type->arraysize[i]; + } + ctx->is_valid_array = 0; + ctx->enc_count = 1; + } + group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); + do { + __Pyx_StructField* field = ctx->head->field; + __Pyx_TypeInfo* type = field->type; + if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { + size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); + } else { + size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); + } + if (ctx->enc_packmode == '@') { + size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); + size_t align_mod_offset; + if (align_at == 0) return -1; + align_mod_offset = ctx->fmt_offset % align_at; + if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; + if (ctx->struct_alignment == 0) + ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type, + ctx->is_complex); + } + if (type->size != size || type->typegroup != group) { + if (type->typegroup == 'C' && type->fields != NULL) { + size_t parent_offset = ctx->head->parent_offset + field->offset; + ++ctx->head; + ctx->head->field = type->fields; + ctx->head->parent_offset = parent_offset; + continue; + } + if ((type->typegroup == 'H' || group == 'H') && type->size == size) { + } else { + __Pyx_BufFmt_RaiseExpected(ctx); + return -1; + } + } + offset = ctx->head->parent_offset + field->offset; + if (ctx->fmt_offset != offset) { + PyErr_Format(PyExc_ValueError, + "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected", + (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); + return -1; + } + ctx->fmt_offset += size; + if (arraysize) + ctx->fmt_offset += (arraysize - 1) * size; + --ctx->enc_count; + while (1) { + if (field == &ctx->root) { + ctx->head = NULL; + if (ctx->enc_count != 0) { + __Pyx_BufFmt_RaiseExpected(ctx); + return -1; + } + break; + } + ctx->head->field = ++field; + if (field->type == NULL) { + --ctx->head; + field = ctx->head->field; + continue; + } else if (field->type->typegroup == 'S') { + size_t parent_offset = ctx->head->parent_offset + field->offset; + if (field->type->fields->type == NULL) continue; + field = field->type->fields; + ++ctx->head; + ctx->head->field = field; + ctx->head->parent_offset = parent_offset; + break; + } else { + break; + } + } + } while (ctx->enc_count); + ctx->enc_type = 0; + ctx->is_complex = 0; + return 0; +} +static PyObject * +__pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) +{ + const char *ts = *tsp; + int i = 0, number, ndim; + ++ts; + if (ctx->new_count != 1) { + PyErr_SetString(PyExc_ValueError, + "Cannot handle repeated arrays in format string"); + return NULL; + } + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ndim = ctx->head->field->type->ndim; + while (*ts && *ts != ')') { + switch (*ts) { + case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; + default: break; + } + number = __Pyx_BufFmt_ExpectNumber(&ts); + if (number == -1) return NULL; + if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) + return PyErr_Format(PyExc_ValueError, + "Expected a dimension of size %zu, got %d", + ctx->head->field->type->arraysize[i], number); + if (*ts != ',' && *ts != ')') + return PyErr_Format(PyExc_ValueError, + "Expected a comma in format string, got '%c'", *ts); + if (*ts == ',') ts++; + i++; + } + if (i != ndim) + return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", + ctx->head->field->type->ndim, i); + if (!*ts) { + PyErr_SetString(PyExc_ValueError, + "Unexpected end of format string, expected ')'"); + return NULL; + } + ctx->is_valid_array = 1; + ctx->new_count = 1; + *tsp = ++ts; + return Py_None; +} +static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { + int got_Z = 0; + while (1) { + switch(*ts) { + case 0: + if (ctx->enc_type != 0 && ctx->head == NULL) { + __Pyx_BufFmt_RaiseExpected(ctx); + return NULL; + } + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + if (ctx->head != NULL) { + __Pyx_BufFmt_RaiseExpected(ctx); + return NULL; + } + return ts; + case ' ': + case '\r': + case '\n': + ++ts; + break; + case '<': + if (!__Pyx_Is_Little_Endian()) { + PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); + return NULL; + } + ctx->new_packmode = '='; + ++ts; + break; + case '>': + case '!': + if (__Pyx_Is_Little_Endian()) { + PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); + return NULL; + } + ctx->new_packmode = '='; + ++ts; + break; + case '=': + case '@': + case '^': + ctx->new_packmode = *ts++; + break; + case 'T': + { + const char* ts_after_sub; + size_t i, struct_count = ctx->new_count; + size_t struct_alignment = ctx->struct_alignment; + ctx->new_count = 1; + ++ts; + if (*ts != '{') { + PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); + return NULL; + } + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->enc_type = 0; + ctx->enc_count = 0; + ctx->struct_alignment = 0; + ++ts; + ts_after_sub = ts; + for (i = 0; i != struct_count; ++i) { + ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); + if (!ts_after_sub) return NULL; + } + ts = ts_after_sub; + if (struct_alignment) ctx->struct_alignment = struct_alignment; + } + break; + case '}': + { + size_t alignment = ctx->struct_alignment; + ++ts; + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->enc_type = 0; + if (alignment && ctx->fmt_offset % alignment) { + ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment); + } + } + return ts; + case 'x': + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->fmt_offset += ctx->new_count; + ctx->new_count = 1; + ctx->enc_count = 0; + ctx->enc_type = 0; + ctx->enc_packmode = ctx->new_packmode; + ++ts; + break; + case 'Z': + got_Z = 1; + ++ts; + if (*ts != 'f' && *ts != 'd' && *ts != 'g') { + __Pyx_BufFmt_RaiseUnexpectedChar('Z'); + return NULL; + } + CYTHON_FALLTHROUGH; + case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': + case 'l': case 'L': case 'q': case 'Q': + case 'f': case 'd': case 'g': + case 'O': case 'p': + if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) && + (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) { + ctx->enc_count += ctx->new_count; + ctx->new_count = 1; + got_Z = 0; + ++ts; + break; + } + CYTHON_FALLTHROUGH; + case 's': + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->enc_count = ctx->new_count; + ctx->enc_packmode = ctx->new_packmode; + ctx->enc_type = *ts; + ctx->is_complex = got_Z; + ++ts; + ctx->new_count = 1; + got_Z = 0; + break; + case ':': + ++ts; + while(*ts != ':') ++ts; + ++ts; + break; + case '(': + if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL; + break; + default: + { + int number = __Pyx_BufFmt_ExpectNumber(&ts); + if (number == -1) return NULL; + ctx->new_count = (size_t)number; + } + } + } +} + +/* TypeInfoCompare */ + static int +__pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b) +{ + int i; + if (!a || !b) + return 0; + if (a == b) + return 1; + if (a->size != b->size || a->typegroup != b->typegroup || + a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) { + if (a->typegroup == 'H' || b->typegroup == 'H') { + return a->size == b->size; + } else { + return 0; + } + } + if (a->ndim) { + for (i = 0; i < a->ndim; i++) + if (a->arraysize[i] != b->arraysize[i]) + return 0; + } + if (a->typegroup == 'S') { + if (a->flags != b->flags) + return 0; + if (a->fields || b->fields) { + if (!(a->fields && b->fields)) + return 0; + for (i = 0; a->fields[i].type && b->fields[i].type; i++) { + __Pyx_StructField *field_a = a->fields + i; + __Pyx_StructField *field_b = b->fields + i; + if (field_a->offset != field_b->offset || + !__pyx_typeinfo_cmp(field_a->type, field_b->type)) + return 0; + } + return !a->fields[i].type && !b->fields[i].type; + } + } + return 1; +} + +/* MemviewSliceValidateAndInit */ + static int +__pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec) +{ + if (buf->shape[dim] <= 1) + return 1; + if (buf->strides) { + if (spec & __Pyx_MEMVIEW_CONTIG) { + if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) { + if (unlikely(buf->strides[dim] != sizeof(void *))) { + PyErr_Format(PyExc_ValueError, + "Buffer is not indirectly contiguous " + "in dimension %d.", dim); + goto fail; + } + } else if (unlikely(buf->strides[dim] != buf->itemsize)) { + PyErr_SetString(PyExc_ValueError, + "Buffer and memoryview are not contiguous " + "in the same dimension."); + goto fail; + } + } + if (spec & __Pyx_MEMVIEW_FOLLOW) { + Py_ssize_t stride = buf->strides[dim]; + if (stride < 0) + stride = -stride; + if (unlikely(stride < buf->itemsize)) { + PyErr_SetString(PyExc_ValueError, + "Buffer and memoryview are not contiguous " + "in the same dimension."); + goto fail; + } + } + } else { + if (unlikely(spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1)) { + PyErr_Format(PyExc_ValueError, + "C-contiguous buffer is not contiguous in " + "dimension %d", dim); + goto fail; + } else if (unlikely(spec & (__Pyx_MEMVIEW_PTR))) { + PyErr_Format(PyExc_ValueError, + "C-contiguous buffer is not indirect in " + "dimension %d", dim); + goto fail; + } else if (unlikely(buf->suboffsets)) { + PyErr_SetString(PyExc_ValueError, + "Buffer exposes suboffsets but no strides"); + goto fail; + } + } + return 1; +fail: + return 0; +} +static int +__pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec) +{ + if (spec & __Pyx_MEMVIEW_DIRECT) { + if (unlikely(buf->suboffsets && buf->suboffsets[dim] >= 0)) { + PyErr_Format(PyExc_ValueError, + "Buffer not compatible with direct access " + "in dimension %d.", dim); + goto fail; + } + } + if (spec & __Pyx_MEMVIEW_PTR) { + if (unlikely(!buf->suboffsets || (buf->suboffsets[dim] < 0))) { + PyErr_Format(PyExc_ValueError, + "Buffer is not indirectly accessible " + "in dimension %d.", dim); + goto fail; + } + } + return 1; +fail: + return 0; +} +static int +__pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag) +{ + int i; + if (c_or_f_flag & __Pyx_IS_F_CONTIG) { + Py_ssize_t stride = 1; + for (i = 0; i < ndim; i++) { + if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) { + PyErr_SetString(PyExc_ValueError, + "Buffer not fortran contiguous."); + goto fail; + } + stride = stride * buf->shape[i]; + } + } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) { + Py_ssize_t stride = 1; + for (i = ndim - 1; i >- 1; i--) { + if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) { + PyErr_SetString(PyExc_ValueError, + "Buffer not C contiguous."); + goto fail; + } + stride = stride * buf->shape[i]; + } + } + return 1; +fail: + return 0; +} +static int __Pyx_ValidateAndInit_memviewslice( + int *axes_specs, + int c_or_f_flag, + int buf_flags, + int ndim, + __Pyx_TypeInfo *dtype, + __Pyx_BufFmt_StackElem stack[], + __Pyx_memviewslice *memviewslice, + PyObject *original_obj) +{ + struct __pyx_memoryview_obj *memview, *new_memview; + __Pyx_RefNannyDeclarations + Py_buffer *buf; + int i, spec = 0, retval = -1; + __Pyx_BufFmt_Context ctx; + int from_memoryview = __pyx_memoryview_check(original_obj); + __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0); + if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *) + original_obj)->typeinfo)) { + memview = (struct __pyx_memoryview_obj *) original_obj; + new_memview = NULL; + } else { + memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( + original_obj, buf_flags, 0, dtype); + new_memview = memview; + if (unlikely(!memview)) + goto fail; + } + buf = &memview->view; + if (unlikely(buf->ndim != ndim)) { + PyErr_Format(PyExc_ValueError, + "Buffer has wrong number of dimensions (expected %d, got %d)", + ndim, buf->ndim); + goto fail; + } + if (new_memview) { + __Pyx_BufFmt_Init(&ctx, stack, dtype); + if (unlikely(!__Pyx_BufFmt_CheckString(&ctx, buf->format))) goto fail; + } + if (unlikely((unsigned) buf->itemsize != dtype->size)) { + PyErr_Format(PyExc_ValueError, + "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) " + "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)", + buf->itemsize, + (buf->itemsize > 1) ? "s" : "", + dtype->name, + dtype->size, + (dtype->size > 1) ? "s" : ""); + goto fail; + } + if (buf->len > 0) { + for (i = 0; i < ndim; i++) { + spec = axes_specs[i]; + if (unlikely(!__pyx_check_strides(buf, i, ndim, spec))) + goto fail; + if (unlikely(!__pyx_check_suboffsets(buf, i, ndim, spec))) + goto fail; + } + if (unlikely(buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag))) + goto fail; + } + if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice, + new_memview != NULL) == -1)) { + goto fail; + } + retval = 0; + goto no_fail; +fail: + Py_XDECREF(new_memview); + retval = -1; +no_fail: + __Pyx_RefNannyFinishContext(); + return retval; +} + +/* ObjectToMemviewSlice */ + static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_int(PyObject *obj, int writable_flag) { + __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_BufFmt_StackElem stack[1]; + int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; + int retcode; + if (obj == Py_None) { + result.memview = (struct __pyx_memoryview_obj *) Py_None; + return result; + } + retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, + (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 3, + &__Pyx_TypeInfo_int, stack, + &result, obj); + if (unlikely(retcode == -1)) + goto __pyx_fail; + return result; +__pyx_fail: + result.memview = NULL; + result.data = NULL; + return result; +} + +/* ObjectToMemviewSlice */ + static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_float(PyObject *obj, int writable_flag) { + __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_BufFmt_StackElem stack[1]; + int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; + int retcode; + if (obj == Py_None) { + result.memview = (struct __pyx_memoryview_obj *) Py_None; + return result; + } + retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, + (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 3, + &__Pyx_TypeInfo_float, stack, + &result, obj); + if (unlikely(retcode == -1)) + goto __pyx_fail; + return result; +__pyx_fail: + result.memview = NULL; + result.data = NULL; + return result; +} + +/* ObjectToMemviewSlice */ + static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_int(PyObject *obj, int writable_flag) { + __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_BufFmt_StackElem stack[1]; + int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; + int retcode; + if (obj == Py_None) { + result.memview = (struct __pyx_memoryview_obj *) Py_None; + return result; + } + retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, + (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, + &__Pyx_TypeInfo_int, stack, + &result, obj); + if (unlikely(retcode == -1)) + goto __pyx_fail; + return result; +__pyx_fail: + result.memview = NULL; + result.data = NULL; + return result; +} + +/* CIntFromPyVerify */ + #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) +#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) +#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ + {\ + func_type value = func_value;\ + if (sizeof(target_type) < sizeof(func_type)) {\ + if (unlikely(value != (func_type) (target_type) value)) {\ + func_type zero = 0;\ + if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ + return (target_type) -1;\ + if (is_unsigned && unlikely(value < zero))\ + goto raise_neg_overflow;\ + else\ + goto raise_overflow;\ + }\ + }\ + return (target_type) value;\ + } + +/* Declarations */ + #if CYTHON_CCOMPLEX + #ifdef __cplusplus + static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { + return ::std::complex< float >(x, y); + } + #else + static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { + return x + y*(__pyx_t_float_complex)_Complex_I; + } + #endif +#else + static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { + __pyx_t_float_complex z; + z.real = x; + z.imag = y; + return z; + } +#endif + +/* Arithmetic */ + #if CYTHON_CCOMPLEX +#else + static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { + return (a.real == b.real) && (a.imag == b.imag); + } + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { + __pyx_t_float_complex z; + z.real = a.real + b.real; + z.imag = a.imag + b.imag; + return z; + } + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { + __pyx_t_float_complex z; + z.real = a.real - b.real; + z.imag = a.imag - b.imag; + return z; + } + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { + __pyx_t_float_complex z; + z.real = a.real * b.real - a.imag * b.imag; + z.imag = a.real * b.imag + a.imag * b.real; + return z; + } + #if 1 + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { + if (b.imag == 0) { + return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); + } else if (fabsf(b.real) >= fabsf(b.imag)) { + if (b.real == 0 && b.imag == 0) { + return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag); + } else { + float r = b.imag / b.real; + float s = (float)(1.0) / (b.real + b.imag * r); + return __pyx_t_float_complex_from_parts( + (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); + } + } else { + float r = b.real / b.imag; + float s = (float)(1.0) / (b.imag + b.real * r); + return __pyx_t_float_complex_from_parts( + (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); + } + } + #else + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { + if (b.imag == 0) { + return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); + } else { + float denom = b.real * b.real + b.imag * b.imag; + return __pyx_t_float_complex_from_parts( + (a.real * b.real + a.imag * b.imag) / denom, + (a.imag * b.real - a.real * b.imag) / denom); + } + } + #endif + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) { + __pyx_t_float_complex z; + z.real = -a.real; + z.imag = -a.imag; + return z; + } + static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) { + return (a.real == 0) && (a.imag == 0); + } + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) { + __pyx_t_float_complex z; + z.real = a.real; + z.imag = -a.imag; + return z; + } + #if 1 + static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) { + #if !defined(HAVE_HYPOT) || defined(_MSC_VER) + return sqrtf(z.real*z.real + z.imag*z.imag); + #else + return hypotf(z.real, z.imag); + #endif + } + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { + __pyx_t_float_complex z; + float r, lnr, theta, z_r, z_theta; + if (b.imag == 0 && b.real == (int)b.real) { + if (b.real < 0) { + float denom = a.real * a.real + a.imag * a.imag; + a.real = a.real / denom; + a.imag = -a.imag / denom; + b.real = -b.real; + } + switch ((int)b.real) { + case 0: + z.real = 1; + z.imag = 0; + return z; + case 1: + return a; + case 2: + return __Pyx_c_prod_float(a, a); + case 3: + z = __Pyx_c_prod_float(a, a); + return __Pyx_c_prod_float(z, a); + case 4: + z = __Pyx_c_prod_float(a, a); + return __Pyx_c_prod_float(z, z); + } + } + if (a.imag == 0) { + if (a.real == 0) { + return a; + } else if (b.imag == 0) { + z.real = powf(a.real, b.real); + z.imag = 0; + return z; + } else if (a.real > 0) { + r = a.real; + theta = 0; + } else { + r = -a.real; + theta = atan2f(0.0, -1.0); + } + } else { + r = __Pyx_c_abs_float(a); + theta = atan2f(a.imag, a.real); + } + lnr = logf(r); + z_r = expf(lnr * b.real - theta * b.imag); + z_theta = theta * b.real + lnr * b.imag; + z.real = z_r * cosf(z_theta); + z.imag = z_r * sinf(z_theta); + return z; + } + #endif +#endif + +/* Declarations */ + #if CYTHON_CCOMPLEX + #ifdef __cplusplus + static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { + return ::std::complex< double >(x, y); + } + #else + static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { + return x + y*(__pyx_t_double_complex)_Complex_I; + } + #endif +#else + static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { + __pyx_t_double_complex z; + z.real = x; + z.imag = y; + return z; + } +#endif + +/* Arithmetic */ + #if CYTHON_CCOMPLEX +#else + static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { + return (a.real == b.real) && (a.imag == b.imag); + } + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { + __pyx_t_double_complex z; + z.real = a.real + b.real; + z.imag = a.imag + b.imag; + return z; + } + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { + __pyx_t_double_complex z; + z.real = a.real - b.real; + z.imag = a.imag - b.imag; + return z; + } + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { + __pyx_t_double_complex z; + z.real = a.real * b.real - a.imag * b.imag; + z.imag = a.real * b.imag + a.imag * b.real; + return z; + } + #if 1 + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { + if (b.imag == 0) { + return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); + } else if (fabs(b.real) >= fabs(b.imag)) { + if (b.real == 0 && b.imag == 0) { + return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag); + } else { + double r = b.imag / b.real; + double s = (double)(1.0) / (b.real + b.imag * r); + return __pyx_t_double_complex_from_parts( + (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); + } + } else { + double r = b.real / b.imag; + double s = (double)(1.0) / (b.imag + b.real * r); + return __pyx_t_double_complex_from_parts( + (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); + } + } + #else + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { + if (b.imag == 0) { + return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); + } else { + double denom = b.real * b.real + b.imag * b.imag; + return __pyx_t_double_complex_from_parts( + (a.real * b.real + a.imag * b.imag) / denom, + (a.imag * b.real - a.real * b.imag) / denom); + } + } + #endif + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) { + __pyx_t_double_complex z; + z.real = -a.real; + z.imag = -a.imag; + return z; + } + static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) { + return (a.real == 0) && (a.imag == 0); + } + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) { + __pyx_t_double_complex z; + z.real = a.real; + z.imag = -a.imag; + return z; + } + #if 1 + static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) { + #if !defined(HAVE_HYPOT) || defined(_MSC_VER) + return sqrt(z.real*z.real + z.imag*z.imag); + #else + return hypot(z.real, z.imag); + #endif + } + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { + __pyx_t_double_complex z; + double r, lnr, theta, z_r, z_theta; + if (b.imag == 0 && b.real == (int)b.real) { + if (b.real < 0) { + double denom = a.real * a.real + a.imag * a.imag; + a.real = a.real / denom; + a.imag = -a.imag / denom; + b.real = -b.real; + } + switch ((int)b.real) { + case 0: + z.real = 1; + z.imag = 0; + return z; + case 1: + return a; + case 2: + return __Pyx_c_prod_double(a, a); + case 3: + z = __Pyx_c_prod_double(a, a); + return __Pyx_c_prod_double(z, a); + case 4: + z = __Pyx_c_prod_double(a, a); + return __Pyx_c_prod_double(z, z); + } + } + if (a.imag == 0) { + if (a.real == 0) { + return a; + } else if (b.imag == 0) { + z.real = pow(a.real, b.real); + z.imag = 0; + return z; + } else if (a.real > 0) { + r = a.real; + theta = 0; + } else { + r = -a.real; + theta = atan2(0.0, -1.0); + } + } else { + r = __Pyx_c_abs_double(a); + theta = atan2(a.imag, a.real); + } + lnr = log(r); + z_r = exp(lnr * b.real - theta * b.imag); + z_theta = theta * b.real + lnr * b.imag; + z.real = z_r * cos(z_theta); + z.imag = z_r * sin(z_theta); + return z; + } + #endif +#endif + +/* MemviewSliceCopyTemplate */ + static __Pyx_memviewslice +__pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, + const char *mode, int ndim, + size_t sizeof_dtype, int contig_flag, + int dtype_is_object) +{ + __Pyx_RefNannyDeclarations + int i; + __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } }; + struct __pyx_memoryview_obj *from_memview = from_mvs->memview; + Py_buffer *buf = &from_memview->view; + PyObject *shape_tuple = NULL; + PyObject *temp_int = NULL; + struct __pyx_array_obj *array_obj = NULL; + struct __pyx_memoryview_obj *memview_obj = NULL; + __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0); + for (i = 0; i < ndim; i++) { + if (unlikely(from_mvs->suboffsets[i] >= 0)) { + PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with " + "indirect dimensions (axis %d)", i); + goto fail; + } + } + shape_tuple = PyTuple_New(ndim); + if (unlikely(!shape_tuple)) { + goto fail; + } + __Pyx_GOTREF(shape_tuple); + for(i = 0; i < ndim; i++) { + temp_int = PyInt_FromSsize_t(from_mvs->shape[i]); + if(unlikely(!temp_int)) { + goto fail; + } else { + PyTuple_SET_ITEM(shape_tuple, i, temp_int); + temp_int = NULL; + } + } + array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL); + if (unlikely(!array_obj)) { + goto fail; + } + __Pyx_GOTREF(array_obj); + memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( + (PyObject *) array_obj, contig_flag, + dtype_is_object, + from_mvs->memview->typeinfo); + if (unlikely(!memview_obj)) + goto fail; + if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0)) + goto fail; + if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim, + dtype_is_object) < 0)) + goto fail; + goto no_fail; +fail: + __Pyx_XDECREF(new_mvs.memview); + new_mvs.memview = NULL; + new_mvs.data = NULL; +no_fail: + __Pyx_XDECREF(shape_tuple); + __Pyx_XDECREF(temp_int); + __Pyx_XDECREF(array_obj); + __Pyx_RefNannyFinishContext(); + return new_mvs; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(int) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(int) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(int) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(int), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(int) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (int) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { + return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { + return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { + return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(int) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) + case -2: + if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + } +#endif + if (sizeof(int) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + int val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (int) -1; + } + } else { + int val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (int) -1; + val = __Pyx_PyInt_As_int(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to int"); + return (int) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to int"); + return (int) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(long) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (long) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { + return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { + return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { + return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (long) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(long) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) + case -2: + if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + } +#endif + if (sizeof(long) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + long val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (long) -1; + } + } else { + long val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (long) -1; + val = __Pyx_PyInt_As_long(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to long"); + return (long) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to long"); + return (long) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const char neg_one = (char) -1, const_zero = (char) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(char) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (char) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (char) 0; + case 1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0]) + case 2: + if (8 * sizeof(char) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) { + return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(char) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) { + return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(char) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) { + return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (char) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(char) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (char) 0; + case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(char, digit, +digits[0]) + case -2: + if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { + return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(char) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { + return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { + return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(char) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { + return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { + return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(char) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { + return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + } +#endif + if (sizeof(char) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + char val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (char) -1; + } + } else { + char val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (char) -1; + val = __Pyx_PyInt_As_char(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to char"); + return (char) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to char"); + return (char) -1; +} + +/* CheckBinaryVersion */ + static int __Pyx_check_binary_version(void) { + char ctversion[4], rtversion[4]; + PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); + if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { + char message[200]; + PyOS_snprintf(message, sizeof(message), + "compiletime version %s of module '%.100s' " + "does not match runtime version %s", + ctversion, __Pyx_MODULE_NAME, rtversion); + return PyErr_WarnEx(NULL, message, 1); + } + return 0; +} + +/* InitStrings */ + static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + while (t->p) { + #if PY_MAJOR_VERSION < 3 + if (t->is_unicode) { + *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); + } else if (t->intern) { + *t->p = PyString_InternFromString(t->s); + } else { + *t->p = PyString_FromStringAndSize(t->s, t->n - 1); + } + #else + if (t->is_unicode | t->is_str) { + if (t->intern) { + *t->p = PyUnicode_InternFromString(t->s); + } else if (t->encoding) { + *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); + } else { + *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); + } + } else { + *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); + } + #endif + if (!*t->p) + return -1; + if (PyObject_Hash(*t->p) == -1) + return -1; + ++t; + } + return 0; +} + +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { + return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); +} +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { + Py_ssize_t ignore; + return __Pyx_PyObject_AsStringAndSize(o, &ignore); +} +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +#if !CYTHON_PEP393_ENABLED +static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + char* defenc_c; + PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); + if (!defenc) return NULL; + defenc_c = PyBytes_AS_STRING(defenc); +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + { + char* end = defenc_c + PyBytes_GET_SIZE(defenc); + char* c; + for (c = defenc_c; c < end; c++) { + if ((unsigned char) (*c) >= 128) { + PyUnicode_AsASCIIString(o); + return NULL; + } + } + } +#endif + *length = PyBytes_GET_SIZE(defenc); + return defenc_c; +} +#else +static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + if (likely(PyUnicode_IS_ASCII(o))) { + *length = PyUnicode_GET_LENGTH(o); + return PyUnicode_AsUTF8(o); + } else { + PyUnicode_AsASCIIString(o); + return NULL; + } +#else + return PyUnicode_AsUTF8AndSize(o, length); +#endif +} +#endif +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT + if ( +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + __Pyx_sys_getdefaultencoding_not_ascii && +#endif + PyUnicode_Check(o)) { + return __Pyx_PyUnicode_AsStringAndSize(o, length); + } else +#endif +#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) + if (PyByteArray_Check(o)) { + *length = PyByteArray_GET_SIZE(o); + return PyByteArray_AS_STRING(o); + } else +#endif + { + char* result; + int r = PyBytes_AsStringAndSize(o, &result, length); + if (unlikely(r < 0)) { + return NULL; + } else { + return result; + } + } +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { + int is_true = x == Py_True; + if (is_true | (x == Py_False) | (x == Py_None)) return is_true; + else return PyObject_IsTrue(x); +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { + int retval; + if (unlikely(!x)) return -1; + retval = __Pyx_PyObject_IsTrue(x); + Py_DECREF(x); + return retval; +} +static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { +#if PY_MAJOR_VERSION >= 3 + if (PyLong_Check(result)) { + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, + "__int__ returned non-int (type %.200s). " + "The ability to return an instance of a strict subclass of int " + "is deprecated, and may be removed in a future version of Python.", + Py_TYPE(result)->tp_name)) { + Py_DECREF(result); + return NULL; + } + return result; + } +#endif + PyErr_Format(PyExc_TypeError, + "__%.4s__ returned non-%.4s (type %.200s)", + type_name, type_name, Py_TYPE(result)->tp_name); + Py_DECREF(result); + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { +#if CYTHON_USE_TYPE_SLOTS + PyNumberMethods *m; +#endif + const char *name = NULL; + PyObject *res = NULL; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x) || PyLong_Check(x))) +#else + if (likely(PyLong_Check(x))) +#endif + return __Pyx_NewRef(x); +#if CYTHON_USE_TYPE_SLOTS + m = Py_TYPE(x)->tp_as_number; + #if PY_MAJOR_VERSION < 3 + if (m && m->nb_int) { + name = "int"; + res = m->nb_int(x); + } + else if (m && m->nb_long) { + name = "long"; + res = m->nb_long(x); + } + #else + if (likely(m && m->nb_int)) { + name = "int"; + res = m->nb_int(x); + } + #endif +#else + if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { + res = PyNumber_Int(x); + } +#endif + if (likely(res)) { +#if PY_MAJOR_VERSION < 3 + if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { +#else + if (unlikely(!PyLong_CheckExact(res))) { +#endif + return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); + } + } + else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, + "an integer is required"); + } + return res; +} +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { + Py_ssize_t ival; + PyObject *x; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(b))) { + if (sizeof(Py_ssize_t) >= sizeof(long)) + return PyInt_AS_LONG(b); + else + return PyInt_AsSsize_t(b); + } +#endif + if (likely(PyLong_CheckExact(b))) { + #if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)b)->ob_digit; + const Py_ssize_t size = Py_SIZE(b); + if (likely(__Pyx_sst_abs(size) <= 1)) { + ival = likely(size) ? digits[0] : 0; + if (size == -1) ival = -ival; + return ival; + } else { + switch (size) { + case 2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + } + } + #endif + return PyLong_AsSsize_t(b); + } + x = PyNumber_Index(b); + if (!x) return -1; + ival = PyInt_AsSsize_t(x); + Py_DECREF(x); + return ival; +} +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { + if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { + return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); +#if PY_MAJOR_VERSION < 3 + } else if (likely(PyInt_CheckExact(o))) { + return PyInt_AS_LONG(o); +#endif + } else { + Py_ssize_t ival; + PyObject *x; + x = PyNumber_Index(o); + if (!x) return -1; + ival = PyInt_AsLong(x); + Py_DECREF(x); + return ival; + } +} +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { + return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); +} +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { + return PyInt_FromSize_t(ival); +} + + +#endif /* Py_PYTHON_H */ diff --git a/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/core.cpython-37m-x86_64-linux-gnu.so b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/core.cpython-37m-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..770249809d9967da8df9265ae60a44110dedd1c4 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/core.cpython-37m-x86_64-linux-gnu.so differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/core.pyx b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/core.pyx new file mode 100644 index 0000000000000000000000000000000000000000..091fcc3a50a51f3d3fee47a70825260757e6d885 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/core.pyx @@ -0,0 +1,47 @@ +import numpy as np + +cimport cython +cimport numpy as np + +from cython.parallel import prange + + +@cython.boundscheck(False) +@cython.wraparound(False) +cdef void maximum_path_each(int[:,::1] path, float[:,::1] value, int t_x, int t_y, float max_neg_val) nogil: + cdef int x + cdef int y + cdef float v_prev + cdef float v_cur + cdef float tmp + cdef int index = t_x - 1 + + for y in range(t_y): + for x in range(max(0, t_x + y - t_y), min(t_x, y + 1)): + if x == y: + v_cur = max_neg_val + else: + v_cur = value[x, y-1] + if x == 0: + if y == 0: + v_prev = 0. + else: + v_prev = max_neg_val + else: + v_prev = value[x-1, y-1] + value[x, y] = max(v_cur, v_prev) + value[x, y] + + for y in range(t_y - 1, -1, -1): + path[index, y] = 1 + if index != 0 and (index == y or value[index, y-1] < value[index-1, y-1]): + index = index - 1 + + +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef void maximum_path_c(int[:,:,::1] paths, float[:,:,::1] values, int[::1] t_xs, int[::1] t_ys, float max_neg_val=-1e9) nogil: + cdef int b = values.shape[0] + + cdef int i + for i in prange(b, nogil=True): + maximum_path_each(paths[i], values[i], t_xs[i], t_ys[i], max_neg_val) diff --git a/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/setup.py b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..f22bc6a35a5a04c9e6d7b82040973722c9b770c9 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/monotonic_align/setup.py @@ -0,0 +1,7 @@ +# from distutils.core import setup +# from Cython.Build import cythonize +# import numpy + +# setup(name='monotonic_align', +# ext_modules=cythonize("core.pyx"), +# include_dirs=[numpy.get_include()]) diff --git a/Indic-TTS/TTS/TTS/tts/utils/speakers.py b/Indic-TTS/TTS/TTS/tts/utils/speakers.py new file mode 100644 index 0000000000000000000000000000000000000000..77b61a8d11e5f981cb1d56720df3f597742e3614 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/speakers.py @@ -0,0 +1,226 @@ +import json +import os +from typing import Any, Dict, List, Union + +import fsspec +import numpy as np +import torch +from coqpit import Coqpit + +from TTS.config import get_from_config_or_model_args_with_default +from TTS.tts.utils.managers import EmbeddingManager + + +class SpeakerManager(EmbeddingManager): + """Manage the speakers for multi-speaker ๐ŸธTTS models. Load a datafile and parse the information + in a way that can be queried by speaker or clip. + + There are 3 different scenarios considered: + + 1. Models using speaker embedding layers. The datafile only maps speaker names to ids used by the embedding layer. + 2. Models using d-vectors. The datafile includes a dictionary in the following format. + + :: + + { + 'clip_name.wav':{ + 'name': 'speakerA', + 'embedding'[] + }, + ... + } + + + 3. Computing the d-vectors by the speaker encoder. It loads the speaker encoder model and + computes the d-vectors for a given clip or speaker. + + Args: + d_vectors_file_path (str, optional): Path to the metafile including x vectors. Defaults to "". + speaker_id_file_path (str, optional): Path to the metafile that maps speaker names to ids used by + TTS models. Defaults to "". + encoder_model_path (str, optional): Path to the speaker encoder model file. Defaults to "". + encoder_config_path (str, optional): Path to the spealer encoder config file. Defaults to "". + + Examples: + >>> # load audio processor and speaker encoder + >>> ap = AudioProcessor(**config.audio) + >>> manager = SpeakerManager(encoder_model_path=encoder_model_path, encoder_config_path=encoder_config_path) + >>> # load a sample audio and compute embedding + >>> waveform = ap.load_wav(sample_wav_path) + >>> mel = ap.melspectrogram(waveform) + >>> d_vector = manager.compute_embeddings(mel.T) + """ + + def __init__( + self, + data_items: List[List[Any]] = None, + d_vectors_file_path: str = "", + speaker_id_file_path: str = "", + encoder_model_path: str = "", + encoder_config_path: str = "", + use_cuda: bool = False, + ): + super().__init__( + embedding_file_path=d_vectors_file_path, + id_file_path=speaker_id_file_path, + encoder_model_path=encoder_model_path, + encoder_config_path=encoder_config_path, + use_cuda=use_cuda, + ) + + if data_items: + self.set_ids_from_data(data_items, parse_key="speaker_name") + + @property + def num_speakers(self): + return len(self.ids) + + @property + def speaker_names(self): + return list(self.ids.keys()) + + def get_speakers(self) -> List: + return self.ids + + @staticmethod + def init_from_config(config: "Coqpit", samples: Union[List[List], List[Dict]] = None) -> "SpeakerManager": + """Initialize a speaker manager from config + + Args: + config (Coqpit): Config object. + samples (Union[List[List], List[Dict]], optional): List of data samples to parse out the speaker names. + Defaults to None. + + Returns: + SpeakerEncoder: Speaker encoder object. + """ + speaker_manager = None + if get_from_config_or_model_args_with_default(config, "use_speaker_embedding", False): + if samples: + speaker_manager = SpeakerManager(data_items=samples) + if get_from_config_or_model_args_with_default(config, "speaker_file", None): + speaker_manager = SpeakerManager( + speaker_id_file_path=get_from_config_or_model_args_with_default(config, "speaker_file", None) + ) + if get_from_config_or_model_args_with_default(config, "speakers_file", None): + speaker_manager = SpeakerManager( + speaker_id_file_path=get_from_config_or_model_args_with_default(config, "speakers_file", None) + ) + + if get_from_config_or_model_args_with_default(config, "use_d_vector_file", False): + speaker_manager = SpeakerManager() + if get_from_config_or_model_args_with_default(config, "speakers_file", None): + speaker_manager = SpeakerManager( + d_vectors_file_path=get_from_config_or_model_args_with_default(config, "speaker_file", None) + ) + if get_from_config_or_model_args_with_default(config, "d_vector_file", None): + speaker_manager = SpeakerManager( + d_vectors_file_path=get_from_config_or_model_args_with_default(config, "d_vector_file", None) + ) + return speaker_manager + + +def _set_file_path(path): + """Find the speakers.json under the given path or the above it. + Intended to band aid the different paths returned in restored and continued training.""" + path_restore = os.path.join(os.path.dirname(path), "speakers.json") + path_continue = os.path.join(path, "speakers.json") + fs = fsspec.get_mapper(path).fs + if fs.exists(path_restore): + return path_restore + if fs.exists(path_continue): + return path_continue + raise FileNotFoundError(f" [!] `speakers.json` not found in {path}") + + +def load_speaker_mapping(out_path): + """Loads speaker mapping if already present.""" + if os.path.splitext(out_path)[1] == ".json": + json_file = out_path + else: + json_file = _set_file_path(out_path) + with fsspec.open(json_file, "r") as f: + return json.load(f) + + +def save_speaker_mapping(out_path, speaker_mapping): + """Saves speaker mapping if not yet present.""" + if out_path is not None: + speakers_json_path = _set_file_path(out_path) + with fsspec.open(speakers_json_path, "w") as f: + json.dump(speaker_mapping, f, indent=4) + + +def get_speaker_manager(c: Coqpit, data: List = None, restore_path: str = None, out_path: str = None) -> SpeakerManager: + """Initiate a `SpeakerManager` instance by the provided config. + + Args: + c (Coqpit): Model configuration. + restore_path (str): Path to a previous training folder. + data (List): Data samples used in training to infer speakers from. It must be provided if speaker embedding + layers is used. Defaults to None. + out_path (str, optional): Save the generated speaker IDs to a output path. Defaults to None. + + Returns: + SpeakerManager: initialized and ready to use instance. + """ + speaker_manager = SpeakerManager() + if c.use_speaker_embedding: + if data is not None: + speaker_manager.set_ids_from_data(data, parse_key="speaker_name") + if restore_path: + speakers_file = _set_file_path(restore_path) + # restoring speaker manager from a previous run. + if c.use_d_vector_file: + # restore speaker manager with the embedding file + if not os.path.exists(speakers_file): + print("WARNING: speakers.json was not found in restore_path, trying to use CONFIG.d_vector_file") + if not os.path.exists(c.d_vector_file): + raise RuntimeError( + "You must copy the file speakers.json to restore_path, or set a valid file in CONFIG.d_vector_file" + ) + speaker_manager.load_embeddings_from_file(c.d_vector_file) + speaker_manager.load_embeddings_from_file(speakers_file) + elif not c.use_d_vector_file: # restor speaker manager with speaker ID file. + speaker_ids_from_data = speaker_manager.ids + speaker_manager.load_ids_from_file(speakers_file) + assert all( + speaker in speaker_manager.ids for speaker in speaker_ids_from_data + ), " [!] You cannot introduce new speakers to a pre-trained model." + elif c.use_d_vector_file and c.d_vector_file: + # new speaker manager with external speaker embeddings. + speaker_manager.load_embeddings_from_file(c.d_vector_file) + elif c.use_d_vector_file and not c.d_vector_file: + raise "use_d_vector_file is True, so you need pass a external speaker embedding file." + elif c.use_speaker_embedding and "speakers_file" in c and c.speakers_file: + # new speaker manager with speaker IDs file. + speaker_manager.load_ids_from_file(c.speakers_file) + + if speaker_manager.num_speakers > 0: + print( + " > Speaker manager is loaded with {} speakers: {}".format( + speaker_manager.num_speakers, ", ".join(speaker_manager.ids) + ) + ) + + # save file if path is defined + if out_path: + out_file_path = os.path.join(out_path, "speakers.json") + print(f" > Saving `speakers.json` to {out_file_path}.") + if c.use_d_vector_file and c.d_vector_file: + speaker_manager.save_embeddings_to_file(out_file_path) + else: + speaker_manager.save_ids_to_file(out_file_path) + return speaker_manager + + +def get_speaker_balancer_weights(items: list): + speaker_names = np.array([item["speaker_name"] for item in items]) + unique_speaker_names = np.unique(speaker_names).tolist() + speaker_ids = [unique_speaker_names.index(l) for l in speaker_names] + speaker_count = np.array([len(np.where(speaker_names == l)[0]) for l in unique_speaker_names]) + weight_speaker = 1.0 / speaker_count + dataset_samples_weight = np.array([weight_speaker[l] for l in speaker_ids]) + # normalize + dataset_samples_weight = dataset_samples_weight / np.linalg.norm(dataset_samples_weight) + return torch.from_numpy(dataset_samples_weight).float() diff --git a/Indic-TTS/TTS/TTS/tts/utils/ssim.py b/Indic-TTS/TTS/TTS/tts/utils/ssim.py new file mode 100644 index 0000000000000000000000000000000000000000..ab2c69914e70a5321b998ad6587b3190d925890d --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/ssim.py @@ -0,0 +1,73 @@ +# taken from https://github.com/Po-Hsun-Su/pytorch-ssim + +from math import exp + +import torch +import torch.nn.functional as F +from torch.autograd import Variable + + +def gaussian(window_size, sigma): + gauss = torch.Tensor([exp(-((x - window_size // 2) ** 2) / float(2 * sigma**2)) for x in range(window_size)]) + return gauss / gauss.sum() + + +def create_window(window_size, channel): + _1D_window = gaussian(window_size, 1.5).unsqueeze(1) + _2D_window = _1D_window.mm(_1D_window.t()).float().unsqueeze(0).unsqueeze(0) + window = Variable(_2D_window.expand(channel, 1, window_size, window_size).contiguous()) + return window + + +def _ssim(img1, img2, window, window_size, channel, size_average=True): + mu1 = F.conv2d(img1, window, padding=window_size // 2, groups=channel) + mu2 = F.conv2d(img2, window, padding=window_size // 2, groups=channel) + + # TODO: check if you need AMP disabled + # with torch.cuda.amp.autocast(enabled=False): + mu1_sq = mu1.float().pow(2) + mu2_sq = mu2.float().pow(2) + mu1_mu2 = mu1 * mu2 + + sigma1_sq = F.conv2d(img1 * img1, window, padding=window_size // 2, groups=channel) - mu1_sq + sigma2_sq = F.conv2d(img2 * img2, window, padding=window_size // 2, groups=channel) - mu2_sq + sigma12 = F.conv2d(img1 * img2, window, padding=window_size // 2, groups=channel) - mu1_mu2 + + C1 = 0.01**2 + C2 = 0.03**2 + + ssim_map = ((2 * mu1_mu2 + C1) * (2 * sigma12 + C2)) / ((mu1_sq + mu2_sq + C1) * (sigma1_sq + sigma2_sq + C2)) + + if size_average: + return ssim_map.mean() + return ssim_map.mean(1).mean(1).mean(1) + + +class SSIM(torch.nn.Module): + def __init__(self, window_size=11, size_average=True): + super().__init__() + self.window_size = window_size + self.size_average = size_average + self.channel = 1 + self.window = create_window(window_size, self.channel) + + def forward(self, img1, img2): + (_, channel, _, _) = img1.size() + + if channel == self.channel and self.window.data.type() == img1.data.type(): + window = self.window + else: + window = create_window(self.window_size, channel) + window = window.type_as(img1) + + self.window = window + self.channel = channel + + return _ssim(img1, img2, window, self.window_size, channel, self.size_average) + + +def ssim(img1, img2, window_size=11, size_average=True): + (_, channel, _, _) = img1.size() + window = create_window(window_size, channel).type_as(img1) + window = window.type_as(img1) + return _ssim(img1, img2, window, window_size, channel, size_average) diff --git a/Indic-TTS/TTS/TTS/tts/utils/synthesis.py b/Indic-TTS/TTS/TTS/tts/utils/synthesis.py new file mode 100644 index 0000000000000000000000000000000000000000..a74300dc948a4eeb88cdf9e936825203d68da9ca --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/synthesis.py @@ -0,0 +1,319 @@ +from typing import Dict + +import numpy as np +import torch +from torch import nn + + +def numpy_to_torch(np_array, dtype, cuda=False): + if np_array is None: + return None + tensor = torch.as_tensor(np_array, dtype=dtype) + if cuda: + return tensor.cuda() + return tensor + + +def compute_style_mel(style_wav, ap, cuda=False): + style_mel = torch.FloatTensor(ap.melspectrogram(ap.load_wav(style_wav, sr=ap.sample_rate))).unsqueeze(0) + if cuda: + return style_mel.cuda() + return style_mel + + +def run_model_torch( + model: nn.Module, + inputs: torch.Tensor, + speaker_id: int = None, + style_mel: torch.Tensor = None, + style_text: str = None, + d_vector: torch.Tensor = None, + language_id: torch.Tensor = None, +) -> Dict: + """Run a torch model for inference. It does not support batch inference. + + Args: + model (nn.Module): The model to run inference. + inputs (torch.Tensor): Input tensor with character ids. + speaker_id (int, optional): Input speaker ids for multi-speaker models. Defaults to None. + style_mel (torch.Tensor, optional): Spectrograms used for voice styling . Defaults to None. + d_vector (torch.Tensor, optional): d-vector for multi-speaker models . Defaults to None. + + Returns: + Dict: model outputs. + """ + input_lengths = torch.tensor(inputs.shape[1:2]).to(inputs.device) + if hasattr(model, "module"): + _func = model.module.inference + else: + _func = model.inference + outputs = _func( + inputs, + aux_input={ + "x_lengths": input_lengths, + "speaker_ids": speaker_id, + "d_vectors": d_vector, + "style_mel": style_mel, + "style_text": style_text, + "language_ids": language_id, + }, + ) + return outputs + + +def trim_silence(wav, ap): + return wav[: ap.find_endpoint(wav)] + + +def inv_spectrogram(postnet_output, ap, CONFIG): + if CONFIG.model.lower() in ["tacotron"]: + wav = ap.inv_spectrogram(postnet_output.T) + else: + wav = ap.inv_melspectrogram(postnet_output.T) + return wav + + +def id_to_torch(aux_id, cuda=False): + if aux_id is not None: + aux_id = np.asarray(aux_id) + aux_id = torch.from_numpy(aux_id) + if cuda: + return aux_id.cuda() + return aux_id + + +def embedding_to_torch(d_vector, cuda=False): + if d_vector is not None: + d_vector = np.asarray(d_vector) + d_vector = torch.from_numpy(d_vector).type(torch.FloatTensor) + d_vector = d_vector.squeeze().unsqueeze(0) + if cuda: + return d_vector.cuda() + return d_vector + + +# TODO: perform GL with pytorch for batching +def apply_griffin_lim(inputs, input_lens, CONFIG, ap): + """Apply griffin-lim to each sample iterating throught the first dimension. + Args: + inputs (Tensor or np.Array): Features to be converted by GL. First dimension is the batch size. + input_lens (Tensor or np.Array): 1D array of sample lengths. + CONFIG (Dict): TTS config. + ap (AudioProcessor): TTS audio processor. + """ + wavs = [] + for idx, spec in enumerate(inputs): + wav_len = (input_lens[idx] * ap.hop_length) - ap.hop_length # inverse librosa padding + wav = inv_spectrogram(spec, ap, CONFIG) + # assert len(wav) == wav_len, f" [!] wav lenght: {len(wav)} vs expected: {wav_len}" + wavs.append(wav[:wav_len]) + return wavs + + +def synthesis( + model, + text, + CONFIG, + use_cuda, + speaker_id=None, + style_wav=None, + style_text=None, + use_griffin_lim=False, + do_trim_silence=False, + d_vector=None, + language_id=None, +): + """Synthesize voice for the given text using Griffin-Lim vocoder or just compute output features to be passed to + the vocoder model. + + Args: + model (TTS.tts.models): + The TTS model to synthesize audio with. + + text (str): + The input text to convert to speech. + + CONFIG (Coqpit): + Model configuration. + + use_cuda (bool): + Enable/disable CUDA. + + speaker_id (int): + Speaker ID passed to the speaker embedding layer in multi-speaker model. Defaults to None. + + style_wav (str | Dict[str, float]): + Path or tensor to/of a waveform used for computing the style embedding based on GST or Capacitron. + Defaults to None, meaning that Capacitron models will sample from the prior distribution to + generate random but realistic prosody. + + style_text (str): + Transcription of style_wav for Capacitron models. Defaults to None. + + enable_eos_bos_chars (bool): + enable special chars for end of sentence and start of sentence. Defaults to False. + + do_trim_silence (bool): + trim silence after synthesis. Defaults to False. + + d_vector (torch.Tensor): + d-vector for multi-speaker models in share :math:`[1, D]`. Defaults to None. + + language_id (int): + Language ID passed to the language embedding layer in multi-langual model. Defaults to None. + """ + # GST or Capacitron processing + # TODO: need to handle the case of setting both gst and capacitron to true somewhere + style_mel = None + if CONFIG.has("gst") and CONFIG.gst and style_wav is not None: + if isinstance(style_wav, dict): + style_mel = style_wav + else: + style_mel = compute_style_mel(style_wav, model.ap, cuda=use_cuda) + + if CONFIG.has("capacitron_vae") and CONFIG.use_capacitron_vae and style_wav is not None: + style_mel = compute_style_mel(style_wav, model.ap, cuda=use_cuda) + style_mel = style_mel.transpose(1, 2) # [1, time, depth] + + # convert text to sequence of token IDs + text_inputs = np.asarray( + model.tokenizer.text_to_ids(text, language=language_id), + dtype=np.int32, + ) + # pass tensors to backend + if speaker_id is not None: + speaker_id = id_to_torch(speaker_id, cuda=use_cuda) + + if d_vector is not None: + d_vector = embedding_to_torch(d_vector, cuda=use_cuda) + + if language_id is not None: + language_id = id_to_torch(language_id, cuda=use_cuda) + + if not isinstance(style_mel, dict): + # GST or Capacitron style mel + style_mel = numpy_to_torch(style_mel, torch.float, cuda=use_cuda) + if style_text is not None: + style_text = np.asarray( + model.tokenizer.text_to_ids(style_text, language=language_id), + dtype=np.int32, + ) + style_text = numpy_to_torch(style_text, torch.long, cuda=use_cuda) + style_text = style_text.unsqueeze(0) + + text_inputs = numpy_to_torch(text_inputs, torch.long, cuda=use_cuda) + text_inputs = text_inputs.unsqueeze(0) + # synthesize voice + outputs = run_model_torch( + model, + text_inputs, + speaker_id, + style_mel, + style_text, + d_vector=d_vector, + language_id=language_id, + ) + model_outputs = outputs["model_outputs"] + model_outputs = model_outputs[0].data.cpu().numpy() + alignments = outputs["alignments"] + + # convert outputs to numpy + # plot results + wav = None + model_outputs = model_outputs.squeeze() + if model_outputs.ndim == 2: # [T, C_spec] + if use_griffin_lim: + wav = inv_spectrogram(model_outputs, model.ap, CONFIG) + # trim silence + if do_trim_silence: + wav = trim_silence(wav, model.ap) + else: # [T,] + wav = model_outputs + return_dict = { + "wav": wav, + "alignments": alignments, + "text_inputs": text_inputs, + "outputs": outputs, + } + return return_dict + + +def transfer_voice( + model, + CONFIG, + use_cuda, + reference_wav, + speaker_id=None, + d_vector=None, + reference_speaker_id=None, + reference_d_vector=None, + do_trim_silence=False, + use_griffin_lim=False, +): + """Synthesize voice for the given text using Griffin-Lim vocoder or just compute output features to be passed to + the vocoder model. + + Args: + model (TTS.tts.models): + The TTS model to synthesize audio with. + + CONFIG (Coqpit): + Model configuration. + + use_cuda (bool): + Enable/disable CUDA. + + reference_wav (str): + Path of reference_wav to be used to voice conversion. + + speaker_id (int): + Speaker ID passed to the speaker embedding layer in multi-speaker model. Defaults to None. + + d_vector (torch.Tensor): + d-vector for multi-speaker models in share :math:`[1, D]`. Defaults to None. + + reference_speaker_id (int): + Reference Speaker ID passed to the speaker embedding layer in multi-speaker model. Defaults to None. + + reference_d_vector (torch.Tensor): + Reference d-vector for multi-speaker models in share :math:`[1, D]`. Defaults to None. + + enable_eos_bos_chars (bool): + enable special chars for end of sentence and start of sentence. Defaults to False. + + do_trim_silence (bool): + trim silence after synthesis. Defaults to False. + """ + # pass tensors to backend + if speaker_id is not None: + speaker_id = id_to_torch(speaker_id, cuda=use_cuda) + + if d_vector is not None: + d_vector = embedding_to_torch(d_vector, cuda=use_cuda) + + if reference_d_vector is not None: + reference_d_vector = embedding_to_torch(reference_d_vector, cuda=use_cuda) + + # load reference_wav audio + reference_wav = embedding_to_torch(model.ap.load_wav(reference_wav, sr=model.ap.sample_rate), cuda=use_cuda) + + if hasattr(model, "module"): + _func = model.module.inference_voice_conversion + else: + _func = model.inference_voice_conversion + model_outputs = _func(reference_wav, speaker_id, d_vector, reference_speaker_id, reference_d_vector) + + # convert outputs to numpy + # plot results + wav = None + model_outputs = model_outputs.squeeze() + if model_outputs.ndim == 2: # [T, C_spec] + if use_griffin_lim: + wav = inv_spectrogram(model_outputs, model.ap, CONFIG) + # trim silence + if do_trim_silence: + wav = trim_silence(wav, model.ap) + else: # [T,] + wav = model_outputs + + return wav diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/__init__.py b/Indic-TTS/TTS/TTS/tts/utils/text/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..593372dc7cb2fba240eb5f08e8e2cfae5a4b4e45 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/__init__.py @@ -0,0 +1 @@ +from TTS.tts.utils.text.tokenizer import TTSTokenizer diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7a94ea40b02488d877dd9605f47009d59df8e1db Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/characters.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/characters.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6f1ebbaefd16068ec2fef6c3365595b7f8d55899 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/characters.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/cleaners.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/cleaners.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..866b2aeedb804aa2b8178f14daa0a941c3b72c99 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/cleaners.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/punctuation.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/punctuation.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..03ee8499503b5d0f4ecb175d5b87132683c31ed6 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/punctuation.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/tokenizer.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/tokenizer.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2b4f0c9c5cf15491c855e9f52c97eadf99c4ac79 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/__pycache__/tokenizer.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/characters.py b/Indic-TTS/TTS/TTS/tts/utils/text/characters.py new file mode 100644 index 0000000000000000000000000000000000000000..1b375e4fca38c29d7929ddf65a3c2932e2168992 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/characters.py @@ -0,0 +1,468 @@ +from dataclasses import replace +from typing import Dict + +from TTS.tts.configs.shared_configs import CharactersConfig + + +def parse_symbols(): + return { + "pad": _pad, + "eos": _eos, + "bos": _bos, + "characters": _characters, + "punctuations": _punctuations, + "phonemes": _phonemes, + } + + +# DEFAULT SET OF GRAPHEMES +_pad = "" +_eos = "" +_bos = "" +_blank = "" # TODO: check if we need this alongside with PAD +_characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" +_punctuations = "!'(),-.:;? " + + +# DEFAULT SET OF IPA PHONEMES +# Phonemes definition (All IPA characters) +_vowels = "iyษจส‰ษฏuษชสสŠeรธษ˜ษ™ษตษคoษ›ล“ษœษžสŒษ”รฆษaษถษ‘ษ’แตป" +_non_pulmonic_consonants = "ส˜ษ“ว€ษ—วƒส„ว‚ษ วส›" +_pulmonic_consonants = "pbtdสˆษ–cษŸkษกqษขส”ษดล‹ษฒษณnษฑmส™rส€โฑฑษพษฝษธฮฒfvฮธรฐszสƒส’ส‚สรงสxษฃฯ‡สฤงส•hษฆษฌษฎส‹ษนษปjษฐlษญสŽสŸ" +_suprasegmentals = "หˆหŒหห‘" +_other_symbols = "สwษฅสœสขสกษ•ส‘ษบษงสฒ" +_diacrilics = "ษšหžษซ" +_phonemes = _vowels + _non_pulmonic_consonants + _pulmonic_consonants + _suprasegmentals + _other_symbols + _diacrilics + + +class BaseVocabulary: + """Base Vocabulary class. + + This class only needs a vocabulary dictionary without specifying the characters. + + Args: + vocab (Dict): A dictionary of characters and their corresponding indices. + """ + + def __init__(self, vocab: Dict, pad: str = None, blank: str = None, bos: str = None, eos: str = None): + self.vocab = vocab + self.pad = pad + self.blank = blank + self.bos = bos + self.eos = eos + + @property + def pad_id(self) -> int: + """Return the index of the padding character. If the padding character is not specified, return the length + of the vocabulary.""" + return self.char_to_id(self.pad) if self.pad else len(self.vocab) + + @property + def blank_id(self) -> int: + """Return the index of the blank character. If the blank character is not specified, return the length of + the vocabulary.""" + return self.char_to_id(self.blank) if self.blank else len(self.vocab) + + @property + def vocab(self): + """Return the vocabulary dictionary.""" + return self._vocab + + @vocab.setter + def vocab(self, vocab): + """Set the vocabulary dictionary and character mapping dictionaries.""" + self._vocab = vocab + self._char_to_id = {char: idx for idx, char in enumerate(self._vocab)} + self._id_to_char = { + idx: char for idx, char in enumerate(self._vocab) # pylint: disable=unnecessary-comprehension + } + + @staticmethod + def init_from_config(config, **kwargs): + """Initialize from the given config.""" + if config.characters is not None and "vocab_dict" in config.characters and config.characters.vocab_dict: + return ( + BaseVocabulary( + config.characters.vocab_dict, + config.characters.pad, + config.characters.blank, + config.characters.bos, + config.characters.eos, + ), + config, + ) + return BaseVocabulary(**kwargs), config + + @property + def num_chars(self): + """Return number of tokens in the vocabulary.""" + return len(self._vocab) + + def char_to_id(self, char: str) -> int: + """Map a character to an token ID.""" + try: + return self._char_to_id[char] + except KeyError as e: + raise KeyError(f" [!] {repr(char)} is not in the vocabulary.") from e + + def id_to_char(self, idx: int) -> str: + """Map an token ID to a character.""" + return self._id_to_char[idx] + + +class BaseCharacters: + """๐ŸธBaseCharacters class + + Every new character class should inherit from this. + + Characters are oredered as follows ```[PAD, EOS, BOS, BLANK, CHARACTERS, PUNCTUATIONS]```. + + If you need a custom order, you need to define inherit from this class and override the ```_create_vocab``` method. + + Args: + characters (str): + Main set of characters to be used in the vocabulary. + + punctuations (str): + Characters to be treated as punctuation. + + pad (str): + Special padding character that would be ignored by the model. + + eos (str): + End of the sentence character. + + bos (str): + Beginning of the sentence character. + + blank (str): + Optional character used between characters by some models for better prosody. + + is_unique (bool): + Remove duplicates from the provided characters. Defaults to True. + el + is_sorted (bool): + Sort the characters in alphabetical order. Only applies to `self.characters`. Defaults to True. + """ + + def __init__( + self, + characters: str = None, + punctuations: str = None, + pad: str = None, + eos: str = None, + bos: str = None, + blank: str = None, + is_unique: bool = False, + is_sorted: bool = True, + ) -> None: + self._characters = characters + self._punctuations = punctuations + self._pad = pad + self._eos = eos + self._bos = bos + self._blank = blank + self.is_unique = is_unique + self.is_sorted = is_sorted + self._create_vocab() + + @property + def pad_id(self) -> int: + return self.char_to_id(self.pad) if self.pad else len(self.vocab) + + @property + def blank_id(self) -> int: + return self.char_to_id(self.blank) if self.blank else len(self.vocab) + + @property + def characters(self): + return self._characters + + @characters.setter + def characters(self, characters): + self._characters = characters + self._create_vocab() + + @property + def punctuations(self): + return self._punctuations + + @punctuations.setter + def punctuations(self, punctuations): + self._punctuations = punctuations + self._create_vocab() + + @property + def pad(self): + return self._pad + + @pad.setter + def pad(self, pad): + self._pad = pad + self._create_vocab() + + @property + def eos(self): + return self._eos + + @eos.setter + def eos(self, eos): + self._eos = eos + self._create_vocab() + + @property + def bos(self): + return self._bos + + @bos.setter + def bos(self, bos): + self._bos = bos + self._create_vocab() + + @property + def blank(self): + return self._blank + + @blank.setter + def blank(self, blank): + self._blank = blank + self._create_vocab() + + @property + def vocab(self): + return self._vocab + + @vocab.setter + def vocab(self, vocab): + self._vocab = vocab + self._char_to_id = {char: idx for idx, char in enumerate(self.vocab)} + self._id_to_char = { + idx: char for idx, char in enumerate(self.vocab) # pylint: disable=unnecessary-comprehension + } + + @property + def num_chars(self): + return len(self._vocab) + + def _create_vocab(self): + _vocab = self._characters + if self.is_unique: + _vocab = list(set(_vocab)) + if self.is_sorted: + _vocab = sorted(_vocab) + _vocab = list(_vocab) + _vocab = [self._blank] + _vocab if self._blank is not None and len(self._blank) > 0 else _vocab + _vocab = [self._bos] + _vocab if self._bos is not None and len(self._bos) > 0 else _vocab + _vocab = [self._eos] + _vocab if self._eos is not None and len(self._eos) > 0 else _vocab + _vocab = [self._pad] + _vocab if self._pad is not None and len(self._pad) > 0 else _vocab + self.vocab = _vocab + list(self._punctuations) + if self.is_unique: + duplicates = {x for x in self.vocab if self.vocab.count(x) > 1} + assert ( + len(self.vocab) == len(self._char_to_id) == len(self._id_to_char) + ), f" [!] There are duplicate characters in the character set. {duplicates}" + + def char_to_id(self, char: str) -> int: + try: + return self._char_to_id[char] + except KeyError as e: + raise KeyError(f" [!] {repr(char)} is not in the vocabulary.") from e + + def id_to_char(self, idx: int) -> str: + return self._id_to_char[idx] + + def print_log(self, level: int = 0): + """ + Prints the vocabulary in a nice format. + """ + indent = "\t" * level + print(f"{indent}| > Characters: {self._characters}") + print(f"{indent}| > Punctuations: {self._punctuations}") + print(f"{indent}| > Pad: {self._pad}") + print(f"{indent}| > EOS: {self._eos}") + print(f"{indent}| > BOS: {self._bos}") + print(f"{indent}| > Blank: {self._blank}") + print(f"{indent}| > Vocab: {self.vocab}") + print(f"{indent}| > Num chars: {self.num_chars}") + + @staticmethod + def init_from_config(config: "Coqpit"): # pylint: disable=unused-argument + """Init your character class from a config. + + Implement this method for your subclass. + """ + # use character set from config + if config.characters is not None: + return BaseCharacters(**config.characters), config + # return default character set + characters = BaseCharacters() + new_config = replace(config, characters=characters.to_config()) + return characters, new_config + + def to_config(self) -> "CharactersConfig": + return CharactersConfig( + characters=self._characters, + punctuations=self._punctuations, + pad=self._pad, + eos=self._eos, + bos=self._bos, + blank=self._blank, + is_unique=self.is_unique, + is_sorted=self.is_sorted, + ) + + +class IPAPhonemes(BaseCharacters): + """๐ŸธIPAPhonemes class to manage `TTS.tts` model vocabulary + + Intended to be used with models using IPAPhonemes as input. + It uses system defaults for the undefined class arguments. + + Args: + characters (str): + Main set of case-sensitive characters to be used in the vocabulary. Defaults to `_phonemes`. + + punctuations (str): + Characters to be treated as punctuation. Defaults to `_punctuations`. + + pad (str): + Special padding character that would be ignored by the model. Defaults to `_pad`. + + eos (str): + End of the sentence character. Defaults to `_eos`. + + bos (str): + Beginning of the sentence character. Defaults to `_bos`. + + blank (str): + Optional character used between characters by some models for better prosody. Defaults to `_blank`. + + is_unique (bool): + Remove duplicates from the provided characters. Defaults to True. + + is_sorted (bool): + Sort the characters in alphabetical order. Defaults to True. + """ + + def __init__( + self, + characters: str = _phonemes, + punctuations: str = _punctuations, + pad: str = _pad, + eos: str = _eos, + bos: str = _bos, + blank: str = _blank, + is_unique: bool = False, + is_sorted: bool = True, + ) -> None: + super().__init__(characters, punctuations, pad, eos, bos, blank, is_unique, is_sorted) + + @staticmethod + def init_from_config(config: "Coqpit"): + """Init a IPAPhonemes object from a model config + + If characters are not defined in the config, it will be set to the default characters and the config + will be updated. + """ + # band-aid for compatibility with old models + if "characters" in config and config.characters is not None: + if "phonemes" in config.characters and config.characters.phonemes is not None: + config.characters["characters"] = config.characters["phonemes"] + return ( + IPAPhonemes( + characters=config.characters["characters"], + punctuations=config.characters["punctuations"], + pad=config.characters["pad"], + eos=config.characters["eos"], + bos=config.characters["bos"], + blank=config.characters["blank"], + is_unique=config.characters["is_unique"], + is_sorted=config.characters["is_sorted"], + ), + config, + ) + # use character set from config + if config.characters is not None: + return IPAPhonemes(**config.characters), config + # return default character set + characters = IPAPhonemes() + new_config = replace(config, characters=characters.to_config()) + return characters, new_config + + +class Graphemes(BaseCharacters): + """๐ŸธGraphemes class to manage `TTS.tts` model vocabulary + + Intended to be used with models using graphemes as input. + It uses system defaults for the undefined class arguments. + + Args: + characters (str): + Main set of case-sensitive characters to be used in the vocabulary. Defaults to `_characters`. + + punctuations (str): + Characters to be treated as punctuation. Defaults to `_punctuations`. + + pad (str): + Special padding character that would be ignored by the model. Defaults to `_pad`. + + eos (str): + End of the sentence character. Defaults to `_eos`. + + bos (str): + Beginning of the sentence character. Defaults to `_bos`. + + is_unique (bool): + Remove duplicates from the provided characters. Defaults to True. + + is_sorted (bool): + Sort the characters in alphabetical order. Defaults to True. + """ + + def __init__( + self, + characters: str = _characters, + punctuations: str = _punctuations, + pad: str = _pad, + eos: str = _eos, + bos: str = _bos, + blank: str = _blank, + is_unique: bool = False, + is_sorted: bool = True, + ) -> None: + super().__init__(characters, punctuations, pad, eos, bos, blank, is_unique, is_sorted) + + @staticmethod + def init_from_config(config: "Coqpit"): + """Init a Graphemes object from a model config + + If characters are not defined in the config, it will be set to the default characters and the config + will be updated. + """ + if config.characters is not None: + # band-aid for compatibility with old models + if "phonemes" in config.characters: + return ( + Graphemes( + characters=config.characters["characters"], + punctuations=config.characters["punctuations"], + pad=config.characters["pad"], + eos=config.characters["eos"], + bos=config.characters["bos"], + blank=config.characters["blank"], + is_unique=config.characters["is_unique"], + is_sorted=config.characters["is_sorted"], + ), + config, + ) + return Graphemes(**config.characters), config + characters = Graphemes() + new_config = replace(config, characters=characters.to_config()) + return characters, new_config + + +if __name__ == "__main__": + gr = Graphemes() + ph = IPAPhonemes() + gr.print_log() + ph.print_log() diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__init__.py b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6fb740d38aebffdf08fdff34b1a90819a6c4bac0 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/numbers.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/numbers.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..08c4ae5fb98aa321f3599a2fa5676019f0a18b8f Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/numbers.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/phonemizer.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/phonemizer.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dac63e54f39296d08f956c3a6024e4e1d19d9890 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/phonemizer.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/pinyinToPhonemes.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/pinyinToPhonemes.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9168311089d0bdaf82dcf44738d13b8104779eeb Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/__pycache__/pinyinToPhonemes.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/numbers.py b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/numbers.py new file mode 100644 index 0000000000000000000000000000000000000000..4787ea61007656819eb57d52d5865b38c7afa915 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/numbers.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Licensed under WTFPL or the Unlicense or CC0. +# This uses Python 3, but it's easy to port to Python 2 by changing +# strings to u'xx'. + +import itertools +import re + + +def _num2chinese(num: str, big=False, simp=True, o=False, twoalt=False) -> str: + """Convert numerical arabic numbers (0->9) to chinese hanzi numbers (ใ€‡ -> ไน) + + Args: + num (str): arabic number to convert + big (bool, optional): use financial characters. Defaults to False. + simp (bool, optional): use simplified characters instead of tradictional characters. Defaults to True. + o (bool, optional): use ใ€‡ for 'zero'. Defaults to False. + twoalt (bool, optional): use ไธค/ๅ…ฉ for 'two' when appropriate. Defaults to False. + + Raises: + ValueError: if number is more than 1e48 + ValueError: if 'e' exposent in number + + Returns: + str: converted number as hanzi characters + """ + + # check num first + nd = str(num) + if abs(float(nd)) >= 1e48: + raise ValueError("number out of range") + if "e" in nd: + raise ValueError("scientific notation is not supported") + c_symbol = "ๆญฃ่ดŸ็‚น" if simp else "ๆญฃ่ฒ ้ปž" + if o: # formal + twoalt = False + if big: + c_basic = "้›ถๅฃน่ดฐๅ่‚†ไผ้™†ๆŸ’ๆŒ็Ž–" if simp else "้›ถๅฃน่ฒณๅƒ่‚†ไผ้™ธๆŸ’ๆŒ็Ž–" + c_unit1 = "ๆ‹พไฝฐไปŸ" + c_twoalt = "่ดฐ" if simp else "่ฒณ" + else: + c_basic = "ใ€‡ไธ€ไบŒไธ‰ๅ››ไบ”ๅ…ญไธƒๅ…ซไน" if o else "้›ถไธ€ไบŒไธ‰ๅ››ไบ”ๅ…ญไธƒๅ…ซไน" + c_unit1 = "ๅ็™พๅƒ" + if twoalt: + c_twoalt = "ไธค" if simp else "ๅ…ฉ" + else: + c_twoalt = "ไบŒ" + c_unit2 = "ไธ‡ไบฟๅ…†ไบฌๅž“็งญ็ฉฐๆฒŸๆถงๆญฃ่ฝฝ" if simp else "่ฌๅ„„ๅ…†ไบฌๅž“็งญ็ฉฐๆบๆพ—ๆญฃ่ผ‰" + revuniq = lambda l: "".join(k for k, g in itertools.groupby(reversed(l))) + nd = str(num) + result = [] + if nd[0] == "+": + result.append(c_symbol[0]) + elif nd[0] == "-": + result.append(c_symbol[1]) + if "." in nd: + integer, remainder = nd.lstrip("+-").split(".") + else: + integer, remainder = nd.lstrip("+-"), None + if int(integer): + splitted = [integer[max(i - 4, 0) : i] for i in range(len(integer), 0, -4)] + intresult = [] + for nu, unit in enumerate(splitted): + # special cases + if int(unit) == 0: # 0000 + intresult.append(c_basic[0]) + continue + if nu > 0 and int(unit) == 2: # 0002 + intresult.append(c_twoalt + c_unit2[nu - 1]) + continue + ulist = [] + unit = unit.zfill(4) + for nc, ch in enumerate(reversed(unit)): + if ch == "0": + if ulist: # ???0 + ulist.append(c_basic[0]) + elif nc == 0: + ulist.append(c_basic[int(ch)]) + elif nc == 1 and ch == "1" and unit[1] == "0": + # special case for tens + # edit the 'elif' if you don't like + # ๅๅ››, ไธ‰ๅƒ้›ถๅๅ››, ไธ‰ๅƒไธ‰็™พไธ€ๅๅ›› + ulist.append(c_unit1[0]) + elif nc > 1 and ch == "2": + ulist.append(c_twoalt + c_unit1[nc - 1]) + else: + ulist.append(c_basic[int(ch)] + c_unit1[nc - 1]) + ustr = revuniq(ulist) + if nu == 0: + intresult.append(ustr) + else: + intresult.append(ustr + c_unit2[nu - 1]) + result.append(revuniq(intresult).strip(c_basic[0])) + else: + result.append(c_basic[0]) + if remainder: + result.append(c_symbol[2]) + result.append("".join(c_basic[int(ch)] for ch in remainder)) + return "".join(result) + + +def _number_replace(match) -> str: + """function to apply in a match, transform all numbers in a match by chinese characters + + Args: + match (re.Match): numbers regex matches + + Returns: + str: replaced characters for the numbers + """ + match_str: str = match.group() + return _num2chinese(match_str) + + +def replace_numbers_to_characters_in_text(text: str) -> str: + """Replace all arabic numbers in a text by their equivalent in chinese characters (simplified) + + Args: + text (str): input text to transform + + Returns: + str: output text + """ + text = re.sub(r"[0-9]+", _number_replace, text) + return text diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/phonemizer.py b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/phonemizer.py new file mode 100644 index 0000000000000000000000000000000000000000..727c881e1062badc57df7418aa07e7434d57335c --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/phonemizer.py @@ -0,0 +1,37 @@ +from typing import List + +import jieba +import pypinyin + +from .pinyinToPhonemes import PINYIN_DICT + + +def _chinese_character_to_pinyin(text: str) -> List[str]: + pinyins = pypinyin.pinyin(text, style=pypinyin.Style.TONE3, heteronym=False, neutral_tone_with_five=True) + pinyins_flat_list = [item for sublist in pinyins for item in sublist] + return pinyins_flat_list + + +def _chinese_pinyin_to_phoneme(pinyin: str) -> str: + segment = pinyin[:-1] + tone = pinyin[-1] + phoneme = PINYIN_DICT.get(segment, [""])[0] + return phoneme + tone + + +def chinese_text_to_phonemes(text: str, seperator: str = "|") -> str: + tokenized_text = jieba.cut(text, HMM=False) + tokenized_text = " ".join(tokenized_text) + pinyined_text: List[str] = _chinese_character_to_pinyin(tokenized_text) + + results: List[str] = [] + + for token in pinyined_text: + if token[-1] in "12345": # TODO transform to is_pinyin() + pinyin_phonemes = _chinese_pinyin_to_phoneme(token) + + results += list(pinyin_phonemes) + else: # is ponctuation or other + results += list(token) + + return seperator.join(results) diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/pinyinToPhonemes.py b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/pinyinToPhonemes.py new file mode 100644 index 0000000000000000000000000000000000000000..4e25c3a4c91cddd0bf0e5d6e273262e3dbd3a2dd --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/chinese_mandarin/pinyinToPhonemes.py @@ -0,0 +1,419 @@ +PINYIN_DICT = { + "a": ["a"], + "ai": ["ai"], + "an": ["an"], + "ang": ["ษ‘ล‹"], + "ao": ["aสŒ"], + "ba": ["ba"], + "bai": ["bai"], + "ban": ["ban"], + "bang": ["bษ‘ล‹"], + "bao": ["baสŒ"], + # "be": ["be"], doesnt exist + "bei": ["bษ›i"], + "ben": ["bล“n"], + "beng": ["bษตล‹"], + "bi": ["bi"], + "bian": ["biษ›n"], + "biao": ["biaสŒ"], + "bie": ["bie"], + "bin": ["bin"], + "bing": ["bษจล‹"], + "bo": ["bo"], + "bu": ["bu"], + "ca": ["tsa"], + "cai": ["tsai"], + "can": ["tsan"], + "cang": ["tsษ‘ล‹"], + "cao": ["tsaสŒ"], + "ce": ["tsรธ"], + "cen": ["tsล“n"], + "ceng": ["tsษตล‹"], + "cha": ["สˆส‚a"], + "chai": ["สˆส‚ai"], + "chan": ["สˆส‚an"], + "chang": ["สˆส‚ษ‘ล‹"], + "chao": ["สˆส‚aสŒ"], + "che": ["สˆส‚รธ"], + "chen": ["สˆส‚ล“n"], + "cheng": ["สˆส‚ษตล‹"], + "chi": ["สˆส‚ส"], + "chong": ["สˆส‚oล‹"], + "chou": ["สˆส‚ou"], + "chu": ["สˆส‚u"], + "chua": ["สˆส‚ua"], + "chuai": ["สˆส‚uai"], + "chuan": ["สˆส‚uan"], + "chuang": ["สˆส‚uษ‘ล‹"], + "chui": ["สˆส‚uei"], + "chun": ["สˆส‚un"], + "chuo": ["สˆส‚uo"], + "ci": ["tsษช"], + "cong": ["tsoล‹"], + "cou": ["tsou"], + "cu": ["tsu"], + "cuan": ["tsuan"], + "cui": ["tsuei"], + "cun": ["tsun"], + "cuo": ["tsuo"], + "da": ["da"], + "dai": ["dai"], + "dan": ["dan"], + "dang": ["dษ‘ล‹"], + "dao": ["daสŒ"], + "de": ["dรธ"], + "dei": ["dei"], + # "den": ["dล“n"], + "deng": ["dษตล‹"], + "di": ["di"], + "dia": ["dia"], + "dian": ["diษ›n"], + "diao": ["diaสŒ"], + "die": ["die"], + "ding": ["dษจล‹"], + "diu": ["dio"], + "dong": ["doล‹"], + "dou": ["dou"], + "du": ["du"], + "duan": ["duan"], + "dui": ["duei"], + "dun": ["dun"], + "duo": ["duo"], + "e": ["รธ"], + "ei": ["ei"], + "en": ["ล“n"], + # "ng": ["ล“n"], + # "eng": ["ษตล‹"], + "er": ["er"], + "fa": ["fa"], + "fan": ["fan"], + "fang": ["fษ‘ล‹"], + "fei": ["fei"], + "fen": ["fล“n"], + "feng": ["fษตล‹"], + "fo": ["fo"], + "fou": ["fou"], + "fu": ["fu"], + "ga": ["ga"], + "gai": ["gai"], + "gan": ["gan"], + "gang": ["gษ‘ล‹"], + "gao": ["gaสŒ"], + "ge": ["gรธ"], + "gei": ["gei"], + "gen": ["gล“n"], + "geng": ["gษตล‹"], + "gong": ["goล‹"], + "gou": ["gou"], + "gu": ["gu"], + "gua": ["gua"], + "guai": ["guai"], + "guan": ["guan"], + "guang": ["guษ‘ล‹"], + "gui": ["guei"], + "gun": ["gun"], + "guo": ["guo"], + "ha": ["xa"], + "hai": ["xai"], + "han": ["xan"], + "hang": ["xษ‘ล‹"], + "hao": ["xaสŒ"], + "he": ["xรธ"], + "hei": ["xei"], + "hen": ["xล“n"], + "heng": ["xษตล‹"], + "hong": ["xoล‹"], + "hou": ["xou"], + "hu": ["xu"], + "hua": ["xua"], + "huai": ["xuai"], + "huan": ["xuan"], + "huang": ["xuษ‘ล‹"], + "hui": ["xuei"], + "hun": ["xun"], + "huo": ["xuo"], + "ji": ["dส‘i"], + "jia": ["dส‘ia"], + "jian": ["dส‘iษ›n"], + "jiang": ["dส‘iษ‘ล‹"], + "jiao": ["dส‘iaสŒ"], + "jie": ["dส‘ie"], + "jin": ["dส‘in"], + "jing": ["dส‘ษจล‹"], + "jiong": ["dส‘ioล‹"], + "jiu": ["dส‘io"], + "ju": ["dส‘y"], + "juan": ["dส‘yษ›n"], + "jue": ["dส‘ye"], + "jun": ["dส‘yn"], + "ka": ["ka"], + "kai": ["kai"], + "kan": ["kan"], + "kang": ["kษ‘ล‹"], + "kao": ["kaสŒ"], + "ke": ["kรธ"], + "kei": ["kei"], + "ken": ["kล“n"], + "keng": ["kษตล‹"], + "kong": ["koล‹"], + "kou": ["kou"], + "ku": ["ku"], + "kua": ["kua"], + "kuai": ["kuai"], + "kuan": ["kuan"], + "kuang": ["kuษ‘ล‹"], + "kui": ["kuei"], + "kun": ["kun"], + "kuo": ["kuo"], + "la": ["la"], + "lai": ["lai"], + "lan": ["lan"], + "lang": ["lษ‘ล‹"], + "lao": ["laสŒ"], + "le": ["lรธ"], + "lei": ["lei"], + "leng": ["lษตล‹"], + "li": ["li"], + "lia": ["lia"], + "lian": ["liษ›n"], + "liang": ["liษ‘ล‹"], + "liao": ["liaสŒ"], + "lie": ["lie"], + "lin": ["lin"], + "ling": ["lษจล‹"], + "liu": ["lio"], + "lo": ["lo"], + "long": ["loล‹"], + "lou": ["lou"], + "lu": ["lu"], + "lv": ["ly"], + "luan": ["luan"], + "lve": ["lye"], + "lue": ["lue"], + "lun": ["lun"], + "luo": ["luo"], + "ma": ["ma"], + "mai": ["mai"], + "man": ["man"], + "mang": ["mษ‘ล‹"], + "mao": ["maสŒ"], + "me": ["mรธ"], + "mei": ["mei"], + "men": ["mล“n"], + "meng": ["mษตล‹"], + "mi": ["mi"], + "mian": ["miษ›n"], + "miao": ["miaสŒ"], + "mie": ["mie"], + "min": ["min"], + "ming": ["mษจล‹"], + "miu": ["mio"], + "mo": ["mo"], + "mou": ["mou"], + "mu": ["mu"], + "na": ["na"], + "nai": ["nai"], + "nan": ["nan"], + "nang": ["nษ‘ล‹"], + "nao": ["naสŒ"], + "ne": ["nรธ"], + "nei": ["nei"], + "nen": ["nล“n"], + "neng": ["nษตล‹"], + "ni": ["ni"], + "nia": ["nia"], + "nian": ["niษ›n"], + "niang": ["niษ‘ล‹"], + "niao": ["niaสŒ"], + "nie": ["nie"], + "nin": ["nin"], + "ning": ["nษจล‹"], + "niu": ["nio"], + "nong": ["noล‹"], + "nou": ["nou"], + "nu": ["nu"], + "nv": ["ny"], + "nuan": ["nuan"], + "nve": ["nye"], + "nue": ["nye"], + "nuo": ["nuo"], + "o": ["o"], + "ou": ["ou"], + "pa": ["pa"], + "pai": ["pai"], + "pan": ["pan"], + "pang": ["pษ‘ล‹"], + "pao": ["paสŒ"], + "pe": ["pรธ"], + "pei": ["pei"], + "pen": ["pล“n"], + "peng": ["pษตล‹"], + "pi": ["pi"], + "pian": ["piษ›n"], + "piao": ["piaสŒ"], + "pie": ["pie"], + "pin": ["pin"], + "ping": ["pษจล‹"], + "po": ["po"], + "pou": ["pou"], + "pu": ["pu"], + "qi": ["tษ•i"], + "qia": ["tษ•ia"], + "qian": ["tษ•iษ›n"], + "qiang": ["tษ•iษ‘ล‹"], + "qiao": ["tษ•iaสŒ"], + "qie": ["tษ•ie"], + "qin": ["tษ•in"], + "qing": ["tษ•ษจล‹"], + "qiong": ["tษ•ioล‹"], + "qiu": ["tษ•io"], + "qu": ["tษ•y"], + "quan": ["tษ•yษ›n"], + "que": ["tษ•ye"], + "qun": ["tษ•yn"], + "ran": ["สan"], + "rang": ["สษ‘ล‹"], + "rao": ["สaสŒ"], + "re": ["สรธ"], + "ren": ["สล“n"], + "reng": ["สษตล‹"], + "ri": ["สส"], + "rong": ["สoล‹"], + "rou": ["สou"], + "ru": ["สu"], + "rua": ["สua"], + "ruan": ["สuan"], + "rui": ["สuei"], + "run": ["สun"], + "ruo": ["สuo"], + "sa": ["sa"], + "sai": ["sai"], + "san": ["san"], + "sang": ["sษ‘ล‹"], + "sao": ["saสŒ"], + "se": ["sรธ"], + "sen": ["sล“n"], + "seng": ["sษตล‹"], + "sha": ["ส‚a"], + "shai": ["ส‚ai"], + "shan": ["ส‚an"], + "shang": ["ส‚ษ‘ล‹"], + "shao": ["ส‚aสŒ"], + "she": ["ส‚รธ"], + "shei": ["ส‚ei"], + "shen": ["ส‚ล“n"], + "sheng": ["ส‚ษตล‹"], + "shi": ["ส‚ส"], + "shou": ["ส‚ou"], + "shu": ["ส‚u"], + "shua": ["ส‚ua"], + "shuai": ["ส‚uai"], + "shuan": ["ส‚uan"], + "shuang": ["ส‚uษ‘ล‹"], + "shui": ["ส‚uei"], + "shun": ["ส‚un"], + "shuo": ["ส‚uo"], + "si": ["sษช"], + "song": ["soล‹"], + "sou": ["sou"], + "su": ["su"], + "suan": ["suan"], + "sui": ["suei"], + "sun": ["sun"], + "suo": ["suo"], + "ta": ["ta"], + "tai": ["tai"], + "tan": ["tan"], + "tang": ["tษ‘ล‹"], + "tao": ["taสŒ"], + "te": ["tรธ"], + "tei": ["tei"], + "teng": ["tษตล‹"], + "ti": ["ti"], + "tian": ["tiษ›n"], + "tiao": ["tiaสŒ"], + "tie": ["tie"], + "ting": ["tษจล‹"], + "tong": ["toล‹"], + "tou": ["tou"], + "tu": ["tu"], + "tuan": ["tuan"], + "tui": ["tuei"], + "tun": ["tun"], + "tuo": ["tuo"], + "wa": ["wa"], + "wai": ["wai"], + "wan": ["wan"], + "wang": ["wษ‘ล‹"], + "wei": ["wei"], + "wen": ["wล“n"], + "weng": ["wษตล‹"], + "wo": ["wo"], + "wu": ["wu"], + "xi": ["ษ•i"], + "xia": ["ษ•ia"], + "xian": ["ษ•iษ›n"], + "xiang": ["ษ•iษ‘ล‹"], + "xiao": ["ษ•iaสŒ"], + "xie": ["ษ•ie"], + "xin": ["ษ•in"], + "xing": ["ษ•ษจล‹"], + "xiong": ["ษ•ioล‹"], + "xiu": ["ษ•io"], + "xu": ["ษ•y"], + "xuan": ["ษ•yษ›n"], + "xue": ["ษ•ye"], + "xun": ["ษ•yn"], + "ya": ["ia"], + "yan": ["iษ›n"], + "yang": ["iษ‘ล‹"], + "yao": ["iaสŒ"], + "ye": ["ie"], + "yi": ["i"], + "yin": ["in"], + "ying": ["ษจล‹"], + "yo": ["io"], + "yong": ["ioล‹"], + "you": ["io"], + "yu": ["y"], + "yuan": ["yษ›n"], + "yue": ["ye"], + "yun": ["yn"], + "za": ["dza"], + "zai": ["dzai"], + "zan": ["dzan"], + "zang": ["dzษ‘ล‹"], + "zao": ["dzaสŒ"], + "ze": ["dzรธ"], + "zei": ["dzei"], + "zen": ["dzล“n"], + "zeng": ["dzษตล‹"], + "zha": ["dส’a"], + "zhai": ["dส’ai"], + "zhan": ["dส’an"], + "zhang": ["dส’ษ‘ล‹"], + "zhao": ["dส’aสŒ"], + "zhe": ["dส’รธ"], + # "zhei": ["dส’ei"], it doesn't exist + "zhen": ["dส’ล“n"], + "zheng": ["dส’ษตล‹"], + "zhi": ["dส’ส"], + "zhong": ["dส’oล‹"], + "zhou": ["dส’ou"], + "zhu": ["dส’u"], + "zhua": ["dส’ua"], + "zhuai": ["dส’uai"], + "zhuan": ["dส’uan"], + "zhuang": ["dส’uษ‘ล‹"], + "zhui": ["dส’uei"], + "zhun": ["dส’un"], + "zhuo": ["dส’uo"], + "zi": ["dzษช"], + "zong": ["dzoล‹"], + "zou": ["dzou"], + "zu": ["dzu"], + "zuan": ["dzuan"], + "zui": ["dzuei"], + "zun": ["dzun"], + "zuo": ["dzuo"], +} diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/cleaners.py b/Indic-TTS/TTS/TTS/tts/utils/text/cleaners.py new file mode 100644 index 0000000000000000000000000000000000000000..f02f8fb48e23cce5ca604c0c86d3e13abeb42654 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/cleaners.py @@ -0,0 +1,145 @@ +"""Set of default text cleaners""" +# TODO: pick the cleaner for languages dynamically + +import re + +from anyascii import anyascii + +from TTS.tts.utils.text.chinese_mandarin.numbers import replace_numbers_to_characters_in_text + +from .english.abbreviations import abbreviations_en +from .english.number_norm import normalize_numbers as en_normalize_numbers +from .english.time_norm import expand_time_english +from .french.abbreviations import abbreviations_fr + +# Regular expression matching whitespace: +_whitespace_re = re.compile(r"\s+") + + +def expand_abbreviations(text, lang="en"): + if lang == "en": + _abbreviations = abbreviations_en + elif lang == "fr": + _abbreviations = abbreviations_fr + for regex, replacement in _abbreviations: + text = re.sub(regex, replacement, text) + return text + + +def lowercase(text): + return text.lower() + + +def collapse_whitespace(text): + return re.sub(_whitespace_re, " ", text).strip() + + +def convert_to_ascii(text): + return anyascii(text) + + +def remove_aux_symbols(text): + text = re.sub(r"[\<\>\(\)\[\]\"]+", "", text) + return text + + +def replace_symbols(text, lang="en"): + text = text.replace(";", ",") + text = text.replace("-", " ") + text = text.replace(":", ",") + if lang == "en": + text = text.replace("&", " and ") + elif lang == "fr": + text = text.replace("&", " et ") + elif lang == "pt": + text = text.replace("&", " e ") + return text + + +def basic_cleaners(text): + """Basic pipeline that lowercases and collapses whitespace without transliteration.""" + text = lowercase(text) + text = collapse_whitespace(text) + return text + + +def transliteration_cleaners(text): + """Pipeline for non-English text that transliterates to ASCII.""" + # text = convert_to_ascii(text) + text = lowercase(text) + text = collapse_whitespace(text) + return text + + +def basic_german_cleaners(text): + """Pipeline for German text""" + text = lowercase(text) + text = collapse_whitespace(text) + return text + + +# TODO: elaborate it +def basic_turkish_cleaners(text): + """Pipeline for Turkish text""" + text = text.replace("I", "ฤฑ") + text = lowercase(text) + text = collapse_whitespace(text) + return text + + +def english_cleaners(text): + """Pipeline for English text, including number and abbreviation expansion.""" + # text = convert_to_ascii(text) + text = lowercase(text) + text = expand_time_english(text) + text = en_normalize_numbers(text) + text = expand_abbreviations(text) + text = replace_symbols(text) + text = remove_aux_symbols(text) + text = collapse_whitespace(text) + return text + + +def phoneme_cleaners(text): + """Pipeline for phonemes mode, including number and abbreviation expansion.""" + text = en_normalize_numbers(text) + text = expand_abbreviations(text) + text = replace_symbols(text) + text = remove_aux_symbols(text) + text = collapse_whitespace(text) + return text + + +def french_cleaners(text): + """Pipeline for French text. There is no need to expand numbers, phonemizer already does that""" + text = expand_abbreviations(text, lang="fr") + text = lowercase(text) + text = replace_symbols(text, lang="fr") + text = remove_aux_symbols(text) + text = collapse_whitespace(text) + return text + + +def portuguese_cleaners(text): + """Basic pipeline for Portuguese text. There is no need to expand abbreviation and + numbers, phonemizer already does that""" + text = lowercase(text) + text = replace_symbols(text, lang="pt") + text = remove_aux_symbols(text) + text = collapse_whitespace(text) + return text + + +def chinese_mandarin_cleaners(text: str) -> str: + """Basic pipeline for chinese""" + text = replace_numbers_to_characters_in_text(text) + return text + + +def multilingual_cleaners(text): + """Pipeline for multilingual text""" + text = lowercase(text) + text = replace_symbols(text, lang=None) + text = remove_aux_symbols(text) + text = collapse_whitespace(text) + return text diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/cmudict.py b/Indic-TTS/TTS/TTS/tts/utils/text/cmudict.py new file mode 100644 index 0000000000000000000000000000000000000000..f206fb043be1d478fa6ace36fefdefa30b0acb02 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/cmudict.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- + +import re + +VALID_SYMBOLS = [ + "AA", + "AA0", + "AA1", + "AA2", + "AE", + "AE0", + "AE1", + "AE2", + "AH", + "AH0", + "AH1", + "AH2", + "AO", + "AO0", + "AO1", + "AO2", + "AW", + "AW0", + "AW1", + "AW2", + "AY", + "AY0", + "AY1", + "AY2", + "B", + "CH", + "D", + "DH", + "EH", + "EH0", + "EH1", + "EH2", + "ER", + "ER0", + "ER1", + "ER2", + "EY", + "EY0", + "EY1", + "EY2", + "F", + "G", + "HH", + "IH", + "IH0", + "IH1", + "IH2", + "IY", + "IY0", + "IY1", + "IY2", + "JH", + "K", + "L", + "M", + "N", + "NG", + "OW", + "OW0", + "OW1", + "OW2", + "OY", + "OY0", + "OY1", + "OY2", + "P", + "R", + "S", + "SH", + "T", + "TH", + "UH", + "UH0", + "UH1", + "UH2", + "UW", + "UW0", + "UW1", + "UW2", + "V", + "W", + "Y", + "Z", + "ZH", +] + + +class CMUDict: + """Thin wrapper around CMUDict data. http://www.speech.cs.cmu.edu/cgi-bin/cmudict""" + + def __init__(self, file_or_path, keep_ambiguous=True): + if isinstance(file_or_path, str): + with open(file_or_path, encoding="latin-1") as f: + entries = _parse_cmudict(f) + else: + entries = _parse_cmudict(file_or_path) + if not keep_ambiguous: + entries = {word: pron for word, pron in entries.items() if len(pron) == 1} + self._entries = entries + + def __len__(self): + return len(self._entries) + + def lookup(self, word): + """Returns list of ARPAbet pronunciations of the given word.""" + return self._entries.get(word.upper()) + + @staticmethod + def get_arpabet(word, cmudict, punctuation_symbols): + first_symbol, last_symbol = "", "" + if word and word[0] in punctuation_symbols: + first_symbol = word[0] + word = word[1:] + if word and word[-1] in punctuation_symbols: + last_symbol = word[-1] + word = word[:-1] + arpabet = cmudict.lookup(word) + if arpabet is not None: + return first_symbol + "{%s}" % arpabet[0] + last_symbol + return first_symbol + word + last_symbol + + +_alt_re = re.compile(r"\([0-9]+\)") + + +def _parse_cmudict(file): + cmudict = {} + for line in file: + if line and (line[0] >= "A" and line[0] <= "Z" or line[0] == "'"): + parts = line.split(" ") + word = re.sub(_alt_re, "", parts[0]) + pronunciation = _get_pronunciation(parts[1]) + if pronunciation: + if word in cmudict: + cmudict[word].append(pronunciation) + else: + cmudict[word] = [pronunciation] + return cmudict + + +def _get_pronunciation(s): + parts = s.strip().split(" ") + for part in parts: + if part not in VALID_SYMBOLS: + return None + return " ".join(parts) diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/english/__init__.py b/Indic-TTS/TTS/TTS/tts/utils/text/english/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..627ae07ae492a3beaa6ae077d8e3fa9bad27cd47 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/abbreviations.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/abbreviations.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..47d47a0039837da0a86b1530a69623740df96586 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/abbreviations.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/number_norm.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/number_norm.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2c9c1dc74e5d5d9d0d03da24ac99fa3c3196285 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/number_norm.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/time_norm.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/time_norm.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8c582885e31727e1930f7a431a9b6db0ac015b20 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/english/__pycache__/time_norm.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/english/abbreviations.py b/Indic-TTS/TTS/TTS/tts/utils/text/english/abbreviations.py new file mode 100644 index 0000000000000000000000000000000000000000..cd93c13c8ecfbc0df2d0c6d2fa348388940c213a --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/english/abbreviations.py @@ -0,0 +1,26 @@ +import re + +# List of (regular expression, replacement) pairs for abbreviations in english: +abbreviations_en = [ + (re.compile("\\b%s\\." % x[0], re.IGNORECASE), x[1]) + for x in [ + ("mrs", "misess"), + ("mr", "mister"), + ("dr", "doctor"), + ("st", "saint"), + ("co", "company"), + ("jr", "junior"), + ("maj", "major"), + ("gen", "general"), + ("drs", "doctors"), + ("rev", "reverend"), + ("lt", "lieutenant"), + ("hon", "honorable"), + ("sgt", "sergeant"), + ("capt", "captain"), + ("esq", "esquire"), + ("ltd", "limited"), + ("col", "colonel"), + ("ft", "fort"), + ] +] diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/english/number_norm.py b/Indic-TTS/TTS/TTS/tts/utils/text/english/number_norm.py new file mode 100644 index 0000000000000000000000000000000000000000..e8377ede87ebc9d1bb9cffbbb290aa7787caea4f --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/english/number_norm.py @@ -0,0 +1,97 @@ +""" from https://github.com/keithito/tacotron """ + +import re +from typing import Dict + +import inflect + +_inflect = inflect.engine() +_comma_number_re = re.compile(r"([0-9][0-9\,]+[0-9])") +_decimal_number_re = re.compile(r"([0-9]+\.[0-9]+)") +_currency_re = re.compile(r"(ยฃ|\$|ยฅ)([0-9\,\.]*[0-9]+)") +_ordinal_re = re.compile(r"[0-9]+(st|nd|rd|th)") +_number_re = re.compile(r"-?[0-9]+") + + +def _remove_commas(m): + return m.group(1).replace(",", "") + + +def _expand_decimal_point(m): + return m.group(1).replace(".", " point ") + + +def __expand_currency(value: str, inflection: Dict[float, str]) -> str: + parts = value.replace(",", "").split(".") + if len(parts) > 2: + return f"{value} {inflection[2]}" # Unexpected format + text = [] + integer = int(parts[0]) if parts[0] else 0 + if integer > 0: + integer_unit = inflection.get(integer, inflection[2]) + text.append(f"{integer} {integer_unit}") + fraction = int(parts[1]) if len(parts) > 1 and parts[1] else 0 + if fraction > 0: + fraction_unit = inflection.get(fraction / 100, inflection[0.02]) + text.append(f"{fraction} {fraction_unit}") + if len(text) == 0: + return f"zero {inflection[2]}" + return " ".join(text) + + +def _expand_currency(m: "re.Match") -> str: + currencies = { + "$": { + 0.01: "cent", + 0.02: "cents", + 1: "dollar", + 2: "dollars", + }, + "โ‚ฌ": { + 0.01: "cent", + 0.02: "cents", + 1: "euro", + 2: "euros", + }, + "ยฃ": { + 0.01: "penny", + 0.02: "pence", + 1: "pound sterling", + 2: "pounds sterling", + }, + "ยฅ": { + # TODO rin + 0.02: "sen", + 2: "yen", + }, + } + unit = m.group(1) + currency = currencies[unit] + value = m.group(2) + return __expand_currency(value, currency) + + +def _expand_ordinal(m): + return _inflect.number_to_words(m.group(0)) + + +def _expand_number(m): + num = int(m.group(0)) + if 1000 < num < 3000: + if num == 2000: + return "two thousand" + if 2000 < num < 2010: + return "two thousand " + _inflect.number_to_words(num % 100) + if num % 100 == 0: + return _inflect.number_to_words(num // 100) + " hundred" + return _inflect.number_to_words(num, andword="", zero="oh", group=2).replace(", ", " ") + return _inflect.number_to_words(num, andword="") + + +def normalize_numbers(text): + text = re.sub(_comma_number_re, _remove_commas, text) + text = re.sub(_currency_re, _expand_currency, text) + text = re.sub(_decimal_number_re, _expand_decimal_point, text) + text = re.sub(_ordinal_re, _expand_ordinal, text) + text = re.sub(_number_re, _expand_number, text) + return text diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/english/time_norm.py b/Indic-TTS/TTS/TTS/tts/utils/text/english/time_norm.py new file mode 100644 index 0000000000000000000000000000000000000000..c8ac09e79db4a239a7f72f101503dbf0d6feb3ae --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/english/time_norm.py @@ -0,0 +1,47 @@ +import re + +import inflect + +_inflect = inflect.engine() + +_time_re = re.compile( + r"""\b + ((0?[0-9])|(1[0-1])|(1[2-9])|(2[0-3])) # hours + : + ([0-5][0-9]) # minutes + \s*(a\\.m\\.|am|pm|p\\.m\\.|a\\.m|p\\.m)? # am/pm + \b""", + re.IGNORECASE | re.X, +) + + +def _expand_num(n: int) -> str: + return _inflect.number_to_words(n) + + +def _expand_time_english(match: "re.Match") -> str: + hour = int(match.group(1)) + past_noon = hour >= 12 + time = [] + if hour > 12: + hour -= 12 + elif hour == 0: + hour = 12 + past_noon = True + time.append(_expand_num(hour)) + + minute = int(match.group(6)) + if minute > 0: + if minute < 10: + time.append("oh") + time.append(_expand_num(minute)) + am_pm = match.group(7) + if am_pm is None: + time.append("p m" if past_noon else "a m") + else: + time.extend(list(am_pm.replace(".", ""))) + return " ".join(time) + + +def expand_time_english(text: str) -> str: + return re.sub(_time_re, _expand_time_english, text) diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/french/__init__.py b/Indic-TTS/TTS/TTS/tts/utils/text/french/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/french/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/french/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8705697b08941c3cfd945b3f9b165df198975f82 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/french/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/french/__pycache__/abbreviations.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/french/__pycache__/abbreviations.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bbd2c018f697569b20381b7c09e59cf98ca1aa8e Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/french/__pycache__/abbreviations.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/french/abbreviations.py b/Indic-TTS/TTS/TTS/tts/utils/text/french/abbreviations.py new file mode 100644 index 0000000000000000000000000000000000000000..f580dfed7b4576a9f87b0a4145cb729e70050d50 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/french/abbreviations.py @@ -0,0 +1,48 @@ +import re + +# List of (regular expression, replacement) pairs for abbreviations in french: +abbreviations_fr = [ + (re.compile("\\b%s\\." % x[0], re.IGNORECASE), x[1]) + for x in [ + ("M", "monsieur"), + ("Mlle", "mademoiselle"), + ("Mlles", "mesdemoiselles"), + ("Mme", "Madame"), + ("Mmes", "Mesdames"), + ("N.B", "nota bene"), + ("M", "monsieur"), + ("p.c.q", "parce que"), + ("Pr", "professeur"), + ("qqch", "quelque chose"), + ("rdv", "rendez-vous"), + ("max", "maximum"), + ("min", "minimum"), + ("no", "numรฉro"), + ("adr", "adresse"), + ("dr", "docteur"), + ("st", "saint"), + ("co", "companie"), + ("jr", "junior"), + ("sgt", "sergent"), + ("capt", "capitain"), + ("col", "colonel"), + ("av", "avenue"), + ("av. J.-C", "avant Jรฉsus-Christ"), + ("apr. J.-C", "aprรจs Jรฉsus-Christ"), + ("art", "article"), + ("boul", "boulevard"), + ("c.-ร -d", "cโ€™est-ร -dire"), + ("etc", "et cetera"), + ("ex", "exemple"), + ("excl", "exclusivement"), + ("boul", "boulevard"), + ] +] + [ + (re.compile("\\b%s" % x[0]), x[1]) + for x in [ + ("Mlle", "mademoiselle"), + ("Mlles", "mesdemoiselles"), + ("Mme", "Madame"), + ("Mmes", "Mesdames"), + ] +] diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/japanese/__init__.py b/Indic-TTS/TTS/TTS/tts/utils/text/japanese/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/japanese/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/japanese/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b571b51e6f6db063e7e64ebac00791439fde018d Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/japanese/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/japanese/__pycache__/phonemizer.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/japanese/__pycache__/phonemizer.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0adde7c655bf8623ead8b45ab9ec2b17cf38ce78 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/japanese/__pycache__/phonemizer.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/japanese/phonemizer.py b/Indic-TTS/TTS/TTS/tts/utils/text/japanese/phonemizer.py new file mode 100644 index 0000000000000000000000000000000000000000..969becfdcabdff2da68cb6f9e7d098d363298faf --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/japanese/phonemizer.py @@ -0,0 +1,467 @@ +# Convert Japanese text to phonemes which is +# compatible with Julius https://github.com/julius-speech/segmentation-kit + +import re +import unicodedata + +import MeCab +from num2words import num2words + +_CONVRULES = [ + # Conversion of 2 letters + "ใ‚ขใ‚ก/ a a", + "ใ‚คใ‚ฃ/ i i", + "ใ‚คใ‚ง/ i e", + "ใ‚คใƒฃ/ y a", + "ใ‚ฆใ‚ฅ/ u:", + "ใ‚จใ‚ง/ e e", + "ใ‚ชใ‚ฉ/ o:", + "ใ‚ซใ‚ก/ k a:", + "ใ‚ญใ‚ฃ/ k i:", + "ใ‚ฏใ‚ฅ/ k u:", + "ใ‚ฏใƒฃ/ ky a", + "ใ‚ฏใƒฅ/ ky u", + "ใ‚ฏใƒง/ ky o", + "ใ‚ฑใ‚ง/ k e:", + "ใ‚ณใ‚ฉ/ k o:", + "ใ‚ฌใ‚ก/ g a:", + "ใ‚ฎใ‚ฃ/ g i:", + "ใ‚ฐใ‚ฅ/ g u:", + "ใ‚ฐใƒฃ/ gy a", + "ใ‚ฐใƒฅ/ gy u", + "ใ‚ฐใƒง/ gy o", + "ใ‚ฒใ‚ง/ g e:", + "ใ‚ดใ‚ฉ/ g o:", + "ใ‚ตใ‚ก/ s a:", + "ใ‚ทใ‚ฃ/ sh i:", + "ใ‚นใ‚ฅ/ s u:", + "ใ‚นใƒฃ/ sh a", + "ใ‚นใƒฅ/ sh u", + "ใ‚นใƒง/ sh o", + "ใ‚ปใ‚ง/ s e:", + "ใ‚ฝใ‚ฉ/ s o:", + "ใ‚ถใ‚ก/ z a:", + "ใ‚ธใ‚ฃ/ j i:", + "ใ‚บใ‚ฅ/ z u:", + "ใ‚บใƒฃ/ zy a", + "ใ‚บใƒฅ/ zy u", + "ใ‚บใƒง/ zy o", + "ใ‚ผใ‚ง/ z e:", + "ใ‚พใ‚ฉ/ z o:", + "ใ‚ฟใ‚ก/ t a:", + "ใƒใ‚ฃ/ ch i:", + "ใƒ„ใ‚ก/ ts a", + "ใƒ„ใ‚ฃ/ ts i", + "ใƒ„ใ‚ฅ/ ts u:", + "ใƒ„ใƒฃ/ ch a", + "ใƒ„ใƒฅ/ ch u", + "ใƒ„ใƒง/ ch o", + "ใƒ„ใ‚ง/ ts e", + "ใƒ„ใ‚ฉ/ ts o", + "ใƒ†ใ‚ง/ t e:", + "ใƒˆใ‚ฉ/ t o:", + "ใƒ€ใ‚ก/ d a:", + "ใƒ‚ใ‚ฃ/ j i:", + "ใƒ…ใ‚ฅ/ d u:", + "ใƒ…ใƒฃ/ zy a", + "ใƒ…ใƒฅ/ zy u", + "ใƒ…ใƒง/ zy o", + "ใƒ‡ใ‚ง/ d e:", + "ใƒ‰ใ‚ฉ/ d o:", + "ใƒŠใ‚ก/ n a:", + "ใƒ‹ใ‚ฃ/ n i:", + "ใƒŒใ‚ฅ/ n u:", + "ใƒŒใƒฃ/ ny a", + "ใƒŒใƒฅ/ ny u", + "ใƒŒใƒง/ ny o", + "ใƒใ‚ง/ n e:", + "ใƒŽใ‚ฉ/ n o:", + "ใƒใ‚ก/ h a:", + "ใƒ’ใ‚ฃ/ h i:", + "ใƒ•ใ‚ฅ/ f u:", + "ใƒ•ใƒฃ/ hy a", + "ใƒ•ใƒฅ/ hy u", + "ใƒ•ใƒง/ hy o", + "ใƒ˜ใ‚ง/ h e:", + "ใƒ›ใ‚ฉ/ h o:", + "ใƒใ‚ก/ b a:", + "ใƒ“ใ‚ฃ/ b i:", + "ใƒ–ใ‚ฅ/ b u:", + "ใƒ•ใƒฃ/ hy a", + "ใƒ–ใƒฅ/ by u", + "ใƒ•ใƒง/ hy o", + "ใƒ™ใ‚ง/ b e:", + "ใƒœใ‚ฉ/ b o:", + "ใƒ‘ใ‚ก/ p a:", + "ใƒ”ใ‚ฃ/ p i:", + "ใƒ—ใ‚ฅ/ p u:", + "ใƒ—ใƒฃ/ py a", + "ใƒ—ใƒฅ/ py u", + "ใƒ—ใƒง/ py o", + "ใƒšใ‚ง/ p e:", + "ใƒใ‚ฉ/ p o:", + "ใƒžใ‚ก/ m a:", + "ใƒŸใ‚ฃ/ m i:", + "ใƒ ใ‚ฅ/ m u:", + "ใƒ ใƒฃ/ my a", + "ใƒ ใƒฅ/ my u", + "ใƒ ใƒง/ my o", + "ใƒกใ‚ง/ m e:", + "ใƒขใ‚ฉ/ m o:", + "ใƒคใ‚ก/ y a:", + "ใƒฆใ‚ฅ/ y u:", + "ใƒฆใƒฃ/ y a:", + "ใƒฆใƒฅ/ y u:", + "ใƒฆใƒง/ y o:", + "ใƒจใ‚ฉ/ y o:", + "ใƒฉใ‚ก/ r a:", + "ใƒชใ‚ฃ/ r i:", + "ใƒซใ‚ฅ/ r u:", + "ใƒซใƒฃ/ ry a", + "ใƒซใƒฅ/ ry u", + "ใƒซใƒง/ ry o", + "ใƒฌใ‚ง/ r e:", + "ใƒญใ‚ฉ/ r o:", + "ใƒฏใ‚ก/ w a:", + "ใƒฒใ‚ฉ/ o:", + "ใƒ‡ใ‚ฃ/ d i", + "ใƒ‡ใ‚ง/ d e:", + "ใƒ‡ใƒฃ/ dy a", + "ใƒ‡ใƒฅ/ dy u", + "ใƒ‡ใƒง/ dy o", + "ใƒ†ใ‚ฃ/ t i", + "ใƒ†ใ‚ง/ t e:", + "ใƒ†ใƒฃ/ ty a", + "ใƒ†ใƒฅ/ ty u", + "ใƒ†ใƒง/ ty o", + "ใ‚นใ‚ฃ/ s i", + "ใ‚บใ‚ก/ z u a", + "ใ‚บใ‚ฃ/ z i", + "ใ‚บใ‚ฅ/ z u", + "ใ‚บใƒฃ/ zy a", + "ใ‚บใƒฅ/ zy u", + "ใ‚บใƒง/ zy o", + "ใ‚บใ‚ง/ z e", + "ใ‚บใ‚ฉ/ z o", + "ใ‚ญใƒฃ/ ky a", + "ใ‚ญใƒฅ/ ky u", + "ใ‚ญใƒง/ ky o", + "ใ‚ทใƒฃ/ sh a", + "ใ‚ทใƒฅ/ sh u", + "ใ‚ทใ‚ง/ sh e", + "ใ‚ทใƒง/ sh o", + "ใƒใƒฃ/ ch a", + "ใƒใƒฅ/ ch u", + "ใƒใ‚ง/ ch e", + "ใƒใƒง/ ch o", + "ใƒˆใ‚ฅ/ t u", + "ใƒˆใƒฃ/ ty a", + "ใƒˆใƒฅ/ ty u", + "ใƒˆใƒง/ ty o", + "ใƒ‰ใ‚ก/ d o a", + "ใƒ‰ใ‚ฅ/ d u", + "ใƒ‰ใƒฃ/ dy a", + "ใƒ‰ใƒฅ/ dy u", + "ใƒ‰ใƒง/ dy o", + "ใƒ‰ใ‚ฉ/ d o:", + "ใƒ‹ใƒฃ/ ny a", + "ใƒ‹ใƒฅ/ ny u", + "ใƒ‹ใƒง/ ny o", + "ใƒ’ใƒฃ/ hy a", + "ใƒ’ใƒฅ/ hy u", + "ใƒ’ใƒง/ hy o", + "ใƒŸใƒฃ/ my a", + "ใƒŸใƒฅ/ my u", + "ใƒŸใƒง/ my o", + "ใƒชใƒฃ/ ry a", + "ใƒชใƒฅ/ ry u", + "ใƒชใƒง/ ry o", + "ใ‚ฎใƒฃ/ gy a", + "ใ‚ฎใƒฅ/ gy u", + "ใ‚ฎใƒง/ gy o", + "ใƒ‚ใ‚ง/ j e", + "ใƒ‚ใƒฃ/ j a", + "ใƒ‚ใƒฅ/ j u", + "ใƒ‚ใƒง/ j o", + "ใ‚ธใ‚ง/ j e", + "ใ‚ธใƒฃ/ j a", + "ใ‚ธใƒฅ/ j u", + "ใ‚ธใƒง/ j o", + "ใƒ“ใƒฃ/ by a", + "ใƒ“ใƒฅ/ by u", + "ใƒ“ใƒง/ by o", + "ใƒ”ใƒฃ/ py a", + "ใƒ”ใƒฅ/ py u", + "ใƒ”ใƒง/ py o", + "ใ‚ฆใ‚ก/ u a", + "ใ‚ฆใ‚ฃ/ w i", + "ใ‚ฆใ‚ง/ w e", + "ใ‚ฆใ‚ฉ/ w o", + "ใƒ•ใ‚ก/ f a", + "ใƒ•ใ‚ฃ/ f i", + "ใƒ•ใ‚ฅ/ f u", + "ใƒ•ใƒฃ/ hy a", + "ใƒ•ใƒฅ/ hy u", + "ใƒ•ใƒง/ hy o", + "ใƒ•ใ‚ง/ f e", + "ใƒ•ใ‚ฉ/ f o", + "ใƒดใ‚ก/ b a", + "ใƒดใ‚ฃ/ b i", + "ใƒดใ‚ง/ b e", + "ใƒดใ‚ฉ/ b o", + "ใƒดใƒฅ/ by u", + # Conversion of 1 letter + "ใ‚ข/ a", + "ใ‚ค/ i", + "ใ‚ฆ/ u", + "ใ‚จ/ e", + "ใ‚ช/ o", + "ใ‚ซ/ k a", + "ใ‚ญ/ k i", + "ใ‚ฏ/ k u", + "ใ‚ฑ/ k e", + "ใ‚ณ/ k o", + "ใ‚ต/ s a", + "ใ‚ท/ sh i", + "ใ‚น/ s u", + "ใ‚ป/ s e", + "ใ‚ฝ/ s o", + "ใ‚ฟ/ t a", + "ใƒ/ ch i", + "ใƒ„/ ts u", + "ใƒ†/ t e", + "ใƒˆ/ t o", + "ใƒŠ/ n a", + "ใƒ‹/ n i", + "ใƒŒ/ n u", + "ใƒ/ n e", + "ใƒŽ/ n o", + "ใƒ/ h a", + "ใƒ’/ h i", + "ใƒ•/ f u", + "ใƒ˜/ h e", + "ใƒ›/ h o", + "ใƒž/ m a", + "ใƒŸ/ m i", + "ใƒ / m u", + "ใƒก/ m e", + "ใƒข/ m o", + "ใƒฉ/ r a", + "ใƒช/ r i", + "ใƒซ/ r u", + "ใƒฌ/ r e", + "ใƒญ/ r o", + "ใ‚ฌ/ g a", + "ใ‚ฎ/ g i", + "ใ‚ฐ/ g u", + "ใ‚ฒ/ g e", + "ใ‚ด/ g o", + "ใ‚ถ/ z a", + "ใ‚ธ/ j i", + "ใ‚บ/ z u", + "ใ‚ผ/ z e", + "ใ‚พ/ z o", + "ใƒ€/ d a", + "ใƒ‚/ j i", + "ใƒ…/ z u", + "ใƒ‡/ d e", + "ใƒ‰/ d o", + "ใƒ/ b a", + "ใƒ“/ b i", + "ใƒ–/ b u", + "ใƒ™/ b e", + "ใƒœ/ b o", + "ใƒ‘/ p a", + "ใƒ”/ p i", + "ใƒ—/ p u", + "ใƒš/ p e", + "ใƒ/ p o", + "ใƒค/ y a", + "ใƒฆ/ y u", + "ใƒจ/ y o", + "ใƒฏ/ w a", + "ใƒฐ/ i", + "ใƒฑ/ e", + "ใƒฒ/ o", + "ใƒณ/ N", + "ใƒƒ/ q", + "ใƒด/ b u", + "ใƒผ/:", + # Try converting broken text + "ใ‚ก/ a", + "ใ‚ฃ/ i", + "ใ‚ฅ/ u", + "ใ‚ง/ e", + "ใ‚ฉ/ o", + "ใƒฎ/ w a", + "ใ‚ฉ/ o", + # Symbols + "ใ€/ ,", + "ใ€‚/ .", + "๏ผ/ !", + "๏ผŸ/ ?", + "ใƒป/ ,", +] + +_COLON_RX = re.compile(":+") +_REJECT_RX = re.compile("[^ a-zA-Z:,.?]") + + +def _makerulemap(): + l = [tuple(x.split("/")) for x in _CONVRULES] + return tuple({k: v for k, v in l if len(k) == i} for i in (1, 2)) + + +_RULEMAP1, _RULEMAP2 = _makerulemap() + + +def kata2phoneme(text: str) -> str: + """Convert katakana text to phonemes.""" + text = text.strip() + res = "" + while text: + if len(text) >= 2: + x = _RULEMAP2.get(text[:2]) + if x is not None: + text = text[2:] + res += x + continue + x = _RULEMAP1.get(text[0]) + if x is not None: + text = text[1:] + res += x + continue + res += " " + text[0] + text = text[1:] + res = _COLON_RX.sub(":", res) + return res[1:] + + +_KATAKANA = "".join(chr(ch) for ch in range(ord("ใ‚ก"), ord("ใƒณ") + 1)) +_HIRAGANA = "".join(chr(ch) for ch in range(ord("ใ"), ord("ใ‚“") + 1)) +_HIRA2KATATRANS = str.maketrans(_HIRAGANA, _KATAKANA) + + +def hira2kata(text: str) -> str: + text = text.translate(_HIRA2KATATRANS) + return text.replace("ใ†ใ‚›", "ใƒด") + + +_SYMBOL_TOKENS = set(list("ใƒปใ€ใ€‚๏ผŸ๏ผ")) +_NO_YOMI_TOKENS = set(list("ใ€Œใ€ใ€Žใ€โ€•๏ผˆ๏ผ‰๏ผป๏ผฝ[]ใ€€โ€ฆ")) +_TAGGER = MeCab.Tagger() + + +def text2kata(text: str) -> str: + parsed = _TAGGER.parse(text) + res = [] + for line in parsed.split("\n"): + if line == "EOS": + break + parts = line.split("\t") + + word, yomi = parts[0], parts[1] + if yomi: + res.append(yomi) + else: + if word in _SYMBOL_TOKENS: + res.append(word) + elif word in ("ใฃ", "ใƒƒ"): + res.append("ใƒƒ") + elif word in _NO_YOMI_TOKENS: + pass + else: + res.append(word) + return hira2kata("".join(res)) + + +_ALPHASYMBOL_YOMI = { + "#": "ใ‚ทใƒฃใƒผใƒ—", + "%": "ใƒ‘ใƒผใ‚ปใƒณใƒˆ", + "&": "ใ‚ขใƒณใƒ‰", + "+": "ใƒ—ใƒฉใ‚น", + "-": "ใƒžใ‚คใƒŠใ‚น", + ":": "ใ‚ณใƒญใƒณ", + ";": "ใ‚ปใƒŸใ‚ณใƒญใƒณ", + "<": "ๅฐใชใ‚Š", + "=": "ใ‚คใ‚ณใƒผใƒซ", + ">": "ๅคงใชใ‚Š", + "@": "ใ‚ขใƒƒใƒˆ", + "a": "ใ‚จใƒผ", + "b": "ใƒ“ใƒผ", + "c": "ใ‚ทใƒผ", + "d": "ใƒ‡ใ‚ฃใƒผ", + "e": "ใ‚คใƒผ", + "f": "ใ‚จใƒ•", + "g": "ใ‚ธใƒผ", + "h": "ใ‚จใ‚คใƒ", + "i": "ใ‚ขใ‚ค", + "j": "ใ‚ธใ‚งใƒผ", + "k": "ใ‚ฑใƒผ", + "l": "ใ‚จใƒซ", + "m": "ใ‚จใƒ ", + "n": "ใ‚จใƒŒ", + "o": "ใ‚ชใƒผ", + "p": "ใƒ”ใƒผ", + "q": "ใ‚ญใƒฅใƒผ", + "r": "ใ‚ขใƒผใƒซ", + "s": "ใ‚จใ‚น", + "t": "ใƒ†ใ‚ฃใƒผ", + "u": "ใƒฆใƒผ", + "v": "ใƒ–ใ‚ค", + "w": "ใƒ€ใƒ–ใƒชใƒฅใƒผ", + "x": "ใ‚จใƒƒใ‚ฏใ‚น", + "y": "ใƒฏใ‚ค", + "z": "ใ‚ผใƒƒใƒˆ", + "ฮฑ": "ใ‚ขใƒซใƒ•ใ‚ก", + "ฮฒ": "ใƒ™ใƒผใ‚ฟ", + "ฮณ": "ใ‚ฌใƒณใƒž", + "ฮด": "ใƒ‡ใƒซใ‚ฟ", + "ฮต": "ใ‚คใƒ—ใ‚ทใƒญใƒณ", + "ฮถ": "ใ‚ผใƒผใ‚ฟ", + "ฮท": "ใ‚คใƒผใ‚ฟ", + "ฮธ": "ใ‚ทใƒผใ‚ฟ", + "ฮน": "ใ‚คใ‚ชใ‚ฟ", + "ฮบ": "ใ‚ซใƒƒใƒ‘", + "ฮป": "ใƒฉใƒ ใƒ€", + "ฮผ": "ใƒŸใƒฅใƒผ", + "ฮฝ": "ใƒ‹ใƒฅใƒผ", + "ฮพ": "ใ‚ฏใ‚ตใ‚ค", + "ฮฟ": "ใ‚ชใƒŸใ‚ฏใƒญใƒณ", + "ฯ€": "ใƒ‘ใ‚ค", + "ฯ": "ใƒญใƒผ", + "ฯƒ": "ใ‚ทใ‚ฐใƒž", + "ฯ„": "ใ‚ฟใ‚ฆ", + "ฯ…": "ใ‚ฆใƒ—ใ‚ทใƒญใƒณ", + "ฯ†": "ใƒ•ใ‚กใ‚ค", + "ฯ‡": "ใ‚ซใ‚ค", + "ฯˆ": "ใƒ—ใ‚ตใ‚ค", + "ฯ‰": "ใ‚ชใƒกใ‚ฌ", +} + + +_NUMBER_WITH_SEPARATOR_RX = re.compile("[0-9]{1,3}(,[0-9]{3})+") +_CURRENCY_MAP = {"$": "ใƒ‰ใƒซ", "ยฅ": "ๅ††", "ยฃ": "ใƒใƒณใƒ‰", "โ‚ฌ": "ใƒฆใƒผใƒญ"} +_CURRENCY_RX = re.compile(r"([$ยฅยฃโ‚ฌ])([0-9.]*[0-9])") +_NUMBER_RX = re.compile(r"[0-9]+(\.[0-9]+)?") + + +def japanese_convert_numbers_to_words(text: str) -> str: + res = _NUMBER_WITH_SEPARATOR_RX.sub(lambda m: m[0].replace(",", ""), text) + res = _CURRENCY_RX.sub(lambda m: m[2] + _CURRENCY_MAP.get(m[1], m[1]), res) + res = _NUMBER_RX.sub(lambda m: num2words(m[0], lang="ja"), res) + return res + + +def japanese_convert_alpha_symbols_to_words(text: str) -> str: + return "".join([_ALPHASYMBOL_YOMI.get(ch, ch) for ch in text.lower()]) + + +def japanese_text_to_phonemes(text: str) -> str: + """Convert Japanese text to phonemes.""" + res = unicodedata.normalize("NFKC", text) + res = japanese_convert_numbers_to_words(res) + res = japanese_convert_alpha_symbols_to_words(res) + res = text2kata(res) + res = kata2phoneme(res) + return res.replace(" ", "") diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__init__.py b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..374d0c8aa9b3e34bf66ab9d86a1dc5cf38e6aa1e --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__init__.py @@ -0,0 +1,53 @@ +from TTS.tts.utils.text.phonemizers.base import BasePhonemizer +from TTS.tts.utils.text.phonemizers.espeak_wrapper import ESpeak +from TTS.tts.utils.text.phonemizers.gruut_wrapper import Gruut +from TTS.tts.utils.text.phonemizers.ja_jp_phonemizer import JA_JP_Phonemizer +from TTS.tts.utils.text.phonemizers.zh_cn_phonemizer import ZH_CN_Phonemizer + +PHONEMIZERS = {b.name(): b for b in (ESpeak, Gruut, JA_JP_Phonemizer)} + + +ESPEAK_LANGS = list(ESpeak.supported_languages().keys()) +GRUUT_LANGS = list(Gruut.supported_languages()) + + +# Dict setting default phonemizers for each language +# Add Gruut languages +_ = [Gruut.name()] * len(GRUUT_LANGS) +DEF_LANG_TO_PHONEMIZER = dict(list(zip(GRUUT_LANGS, _))) + + +# Add ESpeak languages and override any existing ones +_ = [ESpeak.name()] * len(ESPEAK_LANGS) +_new_dict = dict(list(zip(list(ESPEAK_LANGS), _))) +DEF_LANG_TO_PHONEMIZER.update(_new_dict) + +# Force default for some languages +DEF_LANG_TO_PHONEMIZER["en"] = DEF_LANG_TO_PHONEMIZER["en-us"] +DEF_LANG_TO_PHONEMIZER["ja-jp"] = JA_JP_Phonemizer.name() +DEF_LANG_TO_PHONEMIZER["zh-cn"] = ZH_CN_Phonemizer.name() + + +def get_phonemizer_by_name(name: str, **kwargs) -> BasePhonemizer: + """Initiate a phonemizer by name + + Args: + name (str): + Name of the phonemizer that should match `phonemizer.name()`. + + kwargs (dict): + Extra keyword arguments that should be passed to the phonemizer. + """ + if name == "espeak": + return ESpeak(**kwargs) + if name == "gruut": + return Gruut(**kwargs) + if name == "zh_cn_phonemizer": + return ZH_CN_Phonemizer(**kwargs) + if name == "ja_jp_phonemizer": + return JA_JP_Phonemizer(**kwargs) + raise ValueError(f"Phonemizer {name} not found") + + +if __name__ == "__main__": + print(DEF_LANG_TO_PHONEMIZER) diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..929b887329f72d4f97f467542812d708e1fd4c1d Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/base.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/base.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d65824bc00601163a1cf934305167790999520f3 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/base.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/espeak_wrapper.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/espeak_wrapper.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c9c3738aa590948ae4184d5da91bc858d1d85d5b Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/espeak_wrapper.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/gruut_wrapper.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/gruut_wrapper.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5db11f9ba150d968c9f0b6fa1a9c209390ea51d8 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/gruut_wrapper.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/ja_jp_phonemizer.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/ja_jp_phonemizer.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3f77e5491539cbb1408bd96abdf1bbbfbef30503 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/ja_jp_phonemizer.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/zh_cn_phonemizer.cpython-37.pyc b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/zh_cn_phonemizer.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ca00531d6a3acb8f6e609db33143ce5b944ac60 Binary files /dev/null and b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/__pycache__/zh_cn_phonemizer.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/base.py b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/base.py new file mode 100644 index 0000000000000000000000000000000000000000..08fa8e130a1324f9052a53dfb03f5918a24d3ec6 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/base.py @@ -0,0 +1,141 @@ +import abc +from typing import List, Tuple + +from TTS.tts.utils.text.punctuation import Punctuation + + +class BasePhonemizer(abc.ABC): + """Base phonemizer class + + Phonemization follows the following steps: + 1. Preprocessing: + - remove empty lines + - remove punctuation + - keep track of punctuation marks + + 2. Phonemization: + - convert text to phonemes + + 3. Postprocessing: + - join phonemes + - restore punctuation marks + + Args: + language (str): + Language used by the phonemizer. + + punctuations (List[str]): + List of punctuation marks to be preserved. + + keep_puncs (bool): + Whether to preserve punctuation marks or not. + """ + + def __init__(self, language, punctuations=Punctuation.default_puncs(), keep_puncs=False): + + # ensure the backend is installed on the system + if not self.is_available(): + raise RuntimeError("{} not installed on your system".format(self.name())) # pragma: nocover + + # ensure the backend support the requested language + self._language = self._init_language(language) + + # setup punctuation processing + self._keep_puncs = keep_puncs + self._punctuator = Punctuation(punctuations) + + def _init_language(self, language): + """Language initialization + + This method may be overloaded in child classes (see Segments backend) + + """ + if not self.is_supported_language(language): + raise RuntimeError(f'language "{language}" is not supported by the ' f"{self.name()} backend") + return language + + @property + def language(self): + """The language code configured to be used for phonemization""" + return self._language + + @staticmethod + @abc.abstractmethod + def name(): + """The name of the backend""" + ... + + @classmethod + @abc.abstractmethod + def is_available(cls): + """Returns True if the backend is installed, False otherwise""" + ... + + @classmethod + @abc.abstractmethod + def version(cls): + """Return the backend version as a tuple (major, minor, patch)""" + ... + + @staticmethod + @abc.abstractmethod + def supported_languages(): + """Return a dict of language codes -> name supported by the backend""" + ... + + def is_supported_language(self, language): + """Returns True if `language` is supported by the backend""" + return language in self.supported_languages() + + @abc.abstractmethod + def _phonemize(self, text, separator): + """The main phonemization method""" + + def _phonemize_preprocess(self, text) -> Tuple[List[str], List]: + """Preprocess the text before phonemization + + 1. remove spaces + 2. remove punctuation + + Override this if you need a different behaviour + """ + text = text.strip() + if self._keep_puncs: + # a tuple (text, punctuation marks) + return self._punctuator.strip_to_restore(text) + return [self._punctuator.strip(text)], [] + + def _phonemize_postprocess(self, phonemized, punctuations) -> str: + """Postprocess the raw phonemized output + + Override this if you need a different behaviour + """ + if self._keep_puncs: + return self._punctuator.restore(phonemized, punctuations)[0] + return phonemized[0] + + def phonemize(self, text: str, separator="|") -> str: + """Returns the `text` phonemized for the given language + + Args: + text (str): + Text to be phonemized. + + separator (str): + string separator used between phonemes. Default to '_'. + + Returns: + (str): Phonemized text + """ + text, punctuations = self._phonemize_preprocess(text) + phonemized = [] + for t in text: + p = self._phonemize(t, separator) + phonemized.append(p) + phonemized = self._phonemize_postprocess(phonemized, punctuations) + return phonemized + + def print_logs(self, level: int = 0): + indent = "\t" * level + print(f"{indent}| > phoneme language: {self.language}") + print(f"{indent}| > phoneme backend: {self.name()}") diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/espeak_wrapper.py b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/espeak_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..024f79c6bed5c01e9fc826e3efa11865eeacb6b3 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/espeak_wrapper.py @@ -0,0 +1,225 @@ +import logging +import subprocess +from typing import Dict, List + +from TTS.tts.utils.text.phonemizers.base import BasePhonemizer +from TTS.tts.utils.text.punctuation import Punctuation + + +def is_tool(name): + from shutil import which + + return which(name) is not None + + +# priority: espeakng > espeak +if is_tool("espeak-ng"): + _DEF_ESPEAK_LIB = "espeak-ng" +elif is_tool("espeak"): + _DEF_ESPEAK_LIB = "espeak" +else: + _DEF_ESPEAK_LIB = None + + +def _espeak_exe(espeak_lib: str, args: List, sync=False) -> List[str]: + """Run espeak with the given arguments.""" + cmd = [ + espeak_lib, + "-q", + "-b", + "1", # UTF8 text encoding + ] + cmd.extend(args) + logging.debug("espeakng: executing %s", repr(cmd)) + + with subprocess.Popen( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + ) as p: + res = iter(p.stdout.readline, b"") + if not sync: + p.stdout.close() + if p.stderr: + p.stderr.close() + if p.stdin: + p.stdin.close() + return res + res2 = [] + for line in res: + res2.append(line) + p.stdout.close() + if p.stderr: + p.stderr.close() + if p.stdin: + p.stdin.close() + p.wait() + return res2 + + +class ESpeak(BasePhonemizer): + """ESpeak wrapper calling `espeak` or `espeak-ng` from the command-line the perform G2P + + Args: + language (str): + Valid language code for the used backend. + + backend (str): + Name of the backend library to use. `espeak` or `espeak-ng`. If None, set automatically + prefering `espeak-ng` over `espeak`. Defaults to None. + + punctuations (str): + Characters to be treated as punctuation. Defaults to Punctuation.default_puncs(). + + keep_puncs (bool): + If True, keep the punctuations after phonemization. Defaults to True. + + Example: + + >>> from TTS.tts.utils.text.phonemizers import ESpeak + >>> phonemizer = ESpeak("tr") + >>> phonemizer.phonemize("Bu Tรผrkรงe, bir รถrnektir.", separator="|") + 'b|สŠ t|หˆรธ|r|k|tสƒ|ษ›, b|ษช|r ล“|r|n|หˆษ›|c|t|ษช|r.' + + """ + + _ESPEAK_LIB = _DEF_ESPEAK_LIB + + def __init__(self, language: str, backend=None, punctuations=Punctuation.default_puncs(), keep_puncs=True): + if self._ESPEAK_LIB is None: + raise Exception(" [!] No espeak backend found. Install espeak-ng or espeak to your system.") + self.backend = self._ESPEAK_LIB + + # band-aid for backwards compatibility + if language == "en": + language = "en-us" + + super().__init__(language, punctuations=punctuations, keep_puncs=keep_puncs) + if backend is not None: + self.backend = backend + + @property + def backend(self): + return self._ESPEAK_LIB + + @backend.setter + def backend(self, backend): + if backend not in ["espeak", "espeak-ng"]: + raise Exception("Unknown backend: %s" % backend) + self._ESPEAK_LIB = backend + + def auto_set_espeak_lib(self) -> None: + if is_tool("espeak-ng"): + self._ESPEAK_LIB = "espeak-ng" + elif is_tool("espeak"): + self._ESPEAK_LIB = "espeak" + else: + raise Exception("Cannot set backend automatically. espeak-ng or espeak not found") + + @staticmethod + def name(): + return "espeak" + + def phonemize_espeak(self, text: str, separator: str = "|", tie=False) -> str: + """Convert input text to phonemes. + + Args: + text (str): + Text to be converted to phonemes. + + tie (bool, optional) : When True use a 'อก' character between + consecutive characters of a single phoneme. Else separate phoneme + with '_'. This option requires espeak>=1.49. Default to False. + """ + # set arguments + args = ["-v", f"{self._language}"] + # espeak and espeak-ng parses `ipa` differently + if tie: + # use 'อก' between phonemes + if self.backend == "espeak": + args.append("--ipa=1") + else: + args.append("--ipa=3") + else: + # split with '_' + if self.backend == "espeak": + args.append("--ipa=3") + else: + args.append("--ipa=1") + if tie: + args.append("--tie=%s" % tie) + + args.append('"' + text + '"') + # compute phonemes + phonemes = "" + for line in _espeak_exe(self._ESPEAK_LIB, args, sync=True): + logging.debug("line: %s", repr(line)) + ph_decoded = line.decode("utf8").strip() + # espeak need to skip first two characters of the retuned text: + # version 1.48.03: "_ p_ษน_หˆaษช_ษš t_ษ™ n_oสŠ_v_หˆษ›_m_b_ษš t_w_หˆษ›_n_t_i t_หˆuห\n" + # version 1.48.15: " p_ษน_หˆaษช_ษš t_ษ™ n_oสŠ_v_หˆษ›_m_b_ษš t_w_หˆษ›_n_t_i t_หˆuห\n" + # espeak-ng need to skip the first character of the retuned text: + # "_p_ษน_หˆaษช_ษš t_ษ™ n_oสŠ_v_หˆษ›_m_b_ษš t_w_หˆษ›_n_t_i t_หˆuห\n" + + # dealing with the conditions descrived above + ph_decoded = ph_decoded[:1].replace("_", "") + ph_decoded[1:] + phonemes += ph_decoded.strip() + return phonemes.replace("_", separator) + + def _phonemize(self, text, separator=None): + return self.phonemize_espeak(text, separator, tie=False) + + @staticmethod + def supported_languages() -> Dict: + """Get a dictionary of supported languages. + + Returns: + Dict: Dictionary of language codes. + """ + if _DEF_ESPEAK_LIB is None: + return {} + args = ["--voices"] + langs = {} + count = 0 + for line in _espeak_exe(_DEF_ESPEAK_LIB, args, sync=True): + line = line.decode("utf8").strip() + if count > 0: + cols = line.split() + lang_code = cols[1] + lang_name = cols[3] + langs[lang_code] = lang_name + logging.debug("line: %s", repr(line)) + count += 1 + return langs + + def version(self) -> str: + """Get the version of the used backend. + + Returns: + str: Version of the used backend. + """ + args = ["--version"] + for line in _espeak_exe(self.backend, args, sync=True): + version = line.decode("utf8").strip().split()[2] + logging.debug("line: %s", repr(line)) + return version + + @classmethod + def is_available(cls): + """Return true if ESpeak is available else false""" + return is_tool("espeak") or is_tool("espeak-ng") + + +if __name__ == "__main__": + e = ESpeak(language="en-us") + print(e.supported_languages()) + print(e.version()) + print(e.language) + print(e.name()) + print(e.is_available()) + + e = ESpeak(language="en-us", keep_puncs=False) + print("`" + e.phonemize("hello how are you today?") + "`") + + e = ESpeak(language="en-us", keep_puncs=True) + print("`" + e.phonemize("hello how are you today?") + "`") diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/gruut_wrapper.py b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/gruut_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..f3e9c9abd4c41935ed07ec10ed883d75b42a6bc8 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/gruut_wrapper.py @@ -0,0 +1,151 @@ +import importlib +from typing import List + +import gruut +from gruut_ipa import IPA + +from TTS.tts.utils.text.phonemizers.base import BasePhonemizer +from TTS.tts.utils.text.punctuation import Punctuation + +# Table for str.translate to fix gruut/TTS phoneme mismatch +GRUUT_TRANS_TABLE = str.maketrans("g", "ษก") + + +class Gruut(BasePhonemizer): + """Gruut wrapper for G2P + + Args: + language (str): + Valid language code for the used backend. + + punctuations (str): + Characters to be treated as punctuation. Defaults to `Punctuation.default_puncs()`. + + keep_puncs (bool): + If true, keep the punctuations after phonemization. Defaults to True. + + use_espeak_phonemes (bool): + If true, use espeak lexicons instead of default Gruut lexicons. Defaults to False. + + keep_stress (bool): + If true, keep the stress characters after phonemization. Defaults to False. + + Example: + + >>> from TTS.tts.utils.text.phonemizers.gruut_wrapper import Gruut + >>> phonemizer = Gruut('en-us') + >>> phonemizer.phonemize("Be a voice, not an! echo?", separator="|") + 'b|i| ษ™| v|ษ”|ษช|s, n|ษ‘|t| ษ™|n! ษ›|k|o|สŠ?' + """ + + def __init__( + self, + language: str, + punctuations=Punctuation.default_puncs(), + keep_puncs=True, + use_espeak_phonemes=False, + keep_stress=False, + ): + super().__init__(language, punctuations=punctuations, keep_puncs=keep_puncs) + self.use_espeak_phonemes = use_espeak_phonemes + self.keep_stress = keep_stress + + @staticmethod + def name(): + return "gruut" + + def phonemize_gruut(self, text: str, separator: str = "|", tie=False) -> str: # pylint: disable=unused-argument + """Convert input text to phonemes. + + Gruut phonemizes the given `str` by seperating each phoneme character with `separator`, even for characters + that constitude a single sound. + + It doesn't affect ๐ŸธTTS since it individually converts each character to token IDs. + + Examples:: + "hello how are you today?" -> `h|ษ›|l|o|สŠ| h|a|สŠ| ษ‘|ษน| j|u| t|ษ™|d|e|ษช` + + Args: + text (str): + Text to be converted to phonemes. + + tie (bool, optional) : When True use a 'อก' character between + consecutive characters of a single phoneme. Else separate phoneme + with '_'. This option requires espeak>=1.49. Default to False. + """ + ph_list = [] + for sentence in gruut.sentences(text, lang=self.language, espeak=self.use_espeak_phonemes): + for word in sentence: + if word.is_break: + # Use actual character for break phoneme (e.g., comma) + if ph_list: + # Join with previous word + ph_list[-1].append(word.text) + else: + # First word is punctuation + ph_list.append([word.text]) + elif word.phonemes: + # Add phonemes for word + word_phonemes = [] + + for word_phoneme in word.phonemes: + if not self.keep_stress: + # Remove primary/secondary stress + word_phoneme = IPA.without_stress(word_phoneme) + + word_phoneme = word_phoneme.translate(GRUUT_TRANS_TABLE) + + if word_phoneme: + # Flatten phonemes + word_phonemes.extend(word_phoneme) + + if word_phonemes: + ph_list.append(word_phonemes) + + ph_words = [separator.join(word_phonemes) for word_phonemes in ph_list] + ph = f"{separator} ".join(ph_words) + return ph + + def _phonemize(self, text, separator): + return self.phonemize_gruut(text, separator, tie=False) + + def is_supported_language(self, language): + """Returns True if `language` is supported by the backend""" + return gruut.is_language_supported(language) + + @staticmethod + def supported_languages() -> List: + """Get a dictionary of supported languages. + + Returns: + List: List of language codes. + """ + return list(gruut.get_supported_languages()) + + def version(self): + """Get the version of the used backend. + + Returns: + str: Version of the used backend. + """ + return gruut.__version__ + + @classmethod + def is_available(cls): + """Return true if ESpeak is available else false""" + return importlib.util.find_spec("gruut") is not None + + +if __name__ == "__main__": + e = Gruut(language="en-us") + print(e.supported_languages()) + print(e.version()) + print(e.language) + print(e.name()) + print(e.is_available()) + + e = Gruut(language="en-us", keep_puncs=False) + print("`" + e.phonemize("hello how are you today?") + "`") + + e = Gruut(language="en-us", keep_puncs=True) + print("`" + e.phonemize("hello how, are you today?") + "`") diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/ja_jp_phonemizer.py b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/ja_jp_phonemizer.py new file mode 100644 index 0000000000000000000000000000000000000000..60b965f9d8f16327a5b6da41729601a96debfdc6 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/ja_jp_phonemizer.py @@ -0,0 +1,72 @@ +from typing import Dict + +from TTS.tts.utils.text.japanese.phonemizer import japanese_text_to_phonemes +from TTS.tts.utils.text.phonemizers.base import BasePhonemizer + +_DEF_JA_PUNCS = "ใ€.,[]()?!ใ€ฝ~ใ€Žใ€ใ€Œใ€ใ€ใ€‘" + +_TRANS_TABLE = {"ใ€": ","} + + +def trans(text): + for i, j in _TRANS_TABLE.items(): + text = text.replace(i, j) + return text + + +class JA_JP_Phonemizer(BasePhonemizer): + """๐ŸธTTS Ja-Jp phonemizer using functions in `TTS.tts.utils.text.japanese.phonemizer` + + TODO: someone with JA knowledge should check this implementation + + Example: + + >>> from TTS.tts.utils.text.phonemizers import JA_JP_Phonemizer + >>> phonemizer = JA_JP_Phonemizer() + >>> phonemizer.phonemize("ใฉใกใ‚‰ใซ่กŒใใพใ™ใ‹๏ผŸ", separator="|") + 'd|o|c|h|i|r|a|n|i|i|k|i|m|a|s|u|k|a|?' + + """ + + language = "ja-jp" + + def __init__(self, punctuations=_DEF_JA_PUNCS, keep_puncs=True, **kwargs): # pylint: disable=unused-argument + super().__init__(self.language, punctuations=punctuations, keep_puncs=keep_puncs) + + @staticmethod + def name(): + return "ja_jp_phonemizer" + + def _phonemize(self, text: str, separator: str = "|") -> str: + ph = japanese_text_to_phonemes(text) + if separator is not None or separator != "": + return separator.join(ph) + return ph + + def phonemize(self, text: str, separator="|") -> str: + """Custom phonemize for JP_JA + + Skip pre-post processing steps used by the other phonemizers. + """ + return self._phonemize(text, separator) + + @staticmethod + def supported_languages() -> Dict: + return {"ja-jp": "Japanese (Japan)"} + + def version(self) -> str: + return "0.0.1" + + def is_available(self) -> bool: + return True + + +# if __name__ == "__main__": +# text = "ใ“ใ‚Œใฏใ€้›ป่ฉฑใ‚’ใ‹ใ‘ใ‚‹ใŸใ‚ใฎ็งใฎๆ—ฅๆœฌ่ชžใฎไพ‹ใฎใƒ†ใ‚ญใ‚นใƒˆใงใ™ใ€‚" +# e = JA_JP_Phonemizer() +# print(e.supported_languages()) +# print(e.version()) +# print(e.language) +# print(e.name()) +# print(e.is_available()) +# print("`" + e.phonemize(text) + "`") diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/multi_phonemizer.py b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/multi_phonemizer.py new file mode 100644 index 0000000000000000000000000000000000000000..e36b0a2a1f98aae72be017a3b0a956d6300afb61 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/multi_phonemizer.py @@ -0,0 +1,55 @@ +from typing import Dict, List + +from TTS.tts.utils.text.phonemizers import DEF_LANG_TO_PHONEMIZER, get_phonemizer_by_name + + +class MultiPhonemizer: + """๐ŸธTTS multi-phonemizer that operates phonemizers for multiple langugages + + Args: + custom_lang_to_phonemizer (Dict): + Custom phonemizer mapping if you want to change the defaults. In the format of + `{"lang_code", "phonemizer_name"}`. When it is None, `DEF_LANG_TO_PHONEMIZER` is used. Defaults to `{}`. + + TODO: find a way to pass custom kwargs to the phonemizers + """ + + lang_to_phonemizer_name = DEF_LANG_TO_PHONEMIZER + language = "multi-lingual" + + def __init__(self, custom_lang_to_phonemizer: Dict = {}) -> None: # pylint: disable=dangerous-default-value + self.lang_to_phonemizer_name.update(custom_lang_to_phonemizer) + self.lang_to_phonemizer = self.init_phonemizers(self.lang_to_phonemizer_name) + + @staticmethod + def init_phonemizers(lang_to_phonemizer_name: Dict) -> Dict: + lang_to_phonemizer = {} + for k, v in lang_to_phonemizer_name.items(): + phonemizer = get_phonemizer_by_name(v, language=k) + lang_to_phonemizer[k] = phonemizer + return lang_to_phonemizer + + @staticmethod + def name(): + return "multi-phonemizer" + + def phonemize(self, text, language, separator="|"): + return self.lang_to_phonemizer[language].phonemize(text, separator) + + def supported_languages(self) -> List: + return list(self.lang_to_phonemizer_name.keys()) + + +# if __name__ == "__main__": +# texts = { +# "tr": "Merhaba, bu Tรผrkรงe bit รถrnek!", +# "en-us": "Hello, this is English example!", +# "de": "Hallo, das ist ein Deutches Beipiel!", +# "zh-cn": "่ฟ™ๆ˜ฏไธญๅ›ฝ็š„ไพ‹ๅญ", +# } +# phonemes = {} +# ph = MultiPhonemizer() +# for lang, text in texts.items(): +# phoneme = ph.phonemize(text, lang) +# phonemes[lang] = phoneme +# print(phonemes) diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/zh_cn_phonemizer.py b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/zh_cn_phonemizer.py new file mode 100644 index 0000000000000000000000000000000000000000..5a4a55911d84eaaa043e4b6724c4de8a5f249ad4 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/phonemizers/zh_cn_phonemizer.py @@ -0,0 +1,62 @@ +from typing import Dict + +from TTS.tts.utils.text.chinese_mandarin.phonemizer import chinese_text_to_phonemes +from TTS.tts.utils.text.phonemizers.base import BasePhonemizer + +_DEF_ZH_PUNCS = "ใ€.,[]()?!ใ€ฝ~ใ€Žใ€ใ€Œใ€ใ€ใ€‘" + + +class ZH_CN_Phonemizer(BasePhonemizer): + """๐ŸธTTS Zh-Cn phonemizer using functions in `TTS.tts.utils.text.chinese_mandarin.phonemizer` + + Args: + punctuations (str): + Set of characters to be treated as punctuation. Defaults to `_DEF_ZH_PUNCS`. + + keep_puncs (bool): + If True, keep the punctuations after phonemization. Defaults to False. + + Example :: + + "่ฟ™ๆ˜ฏ๏ผŒๆ ทๆœฌไธญๆ–‡ใ€‚" -> `d|ส’|รธ|4| |ส‚|ส|4| |๏ผŒ| |i|ษ‘|ล‹|4|b|ล“|n|3| |d|ส’|o|ล‹|1|w|ล“|n|2| |ใ€‚` + + TODO: someone with Mandarin knowledge should check this implementation + """ + + language = "zh-cn" + + def __init__(self, punctuations=_DEF_ZH_PUNCS, keep_puncs=False, **kwargs): # pylint: disable=unused-argument + super().__init__(self.language, punctuations=punctuations, keep_puncs=keep_puncs) + + @staticmethod + def name(): + return "zh_cn_phonemizer" + + @staticmethod + def phonemize_zh_cn(text: str, separator: str = "|") -> str: + ph = chinese_text_to_phonemes(text, separator) + return ph + + def _phonemize(self, text, separator): + return self.phonemize_zh_cn(text, separator) + + @staticmethod + def supported_languages() -> Dict: + return {"zh-cn": "Japanese (Japan)"} + + def version(self) -> str: + return "0.0.1" + + def is_available(self) -> bool: + return True + + +# if __name__ == "__main__": +# text = "่ฟ™ๆ˜ฏ๏ผŒๆ ทๆœฌไธญๆ–‡ใ€‚" +# e = ZH_CN_Phonemizer() +# print(e.supported_languages()) +# print(e.version()) +# print(e.language) +# print(e.name()) +# print(e.is_available()) +# print("`" + e.phonemize(text) + "`") diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/punctuation.py b/Indic-TTS/TTS/TTS/tts/utils/text/punctuation.py new file mode 100644 index 0000000000000000000000000000000000000000..b2a058bb07407b4994a0af2eebb6489f0e91ee05 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/punctuation.py @@ -0,0 +1,172 @@ +import collections +import re +from enum import Enum + +import six + +_DEF_PUNCS = ';:,.!?ยกยฟโ€”โ€ฆ"ยซยปโ€œโ€' + +_PUNC_IDX = collections.namedtuple("_punc_index", ["punc", "position"]) + + +class PuncPosition(Enum): + """Enum for the punctuations positions""" + + BEGIN = 0 + END = 1 + MIDDLE = 2 + ALONE = 3 + + +class Punctuation: + """Handle punctuations in text. + + Just strip punctuations from text or strip and restore them later. + + Args: + puncs (str): The punctuations to be processed. Defaults to `_DEF_PUNCS`. + + Example: + >>> punc = Punctuation() + >>> punc.strip("This is. example !") + 'This is example' + + >>> text_striped, punc_map = punc.strip_to_restore("This is. example !") + >>> ' '.join(text_striped) + 'This is example' + + >>> text_restored = punc.restore(text_striped, punc_map) + >>> text_restored[0] + 'This is. example !' + """ + + def __init__(self, puncs: str = _DEF_PUNCS): + self.puncs = puncs + + @staticmethod + def default_puncs(): + """Return default set of punctuations.""" + return _DEF_PUNCS + + @property + def puncs(self): + return self._puncs + + @puncs.setter + def puncs(self, value): + if not isinstance(value, six.string_types): + raise ValueError("[!] Punctuations must be of type str.") + self._puncs = "".join(list(dict.fromkeys(list(value)))) # remove duplicates without changing the oreder + self.puncs_regular_exp = re.compile(rf"(\s*[{re.escape(self._puncs)}]+\s*)+") + + def strip(self, text): + """Remove all the punctuations by replacing with `space`. + + Args: + text (str): The text to be processed. + + Example:: + + "This is. example !" -> "This is example " + """ + return re.sub(self.puncs_regular_exp, " ", text).rstrip().lstrip() + + def strip_to_restore(self, text): + """Remove punctuations from text to restore them later. + + Args: + text (str): The text to be processed. + + Examples :: + + "This is. example !" -> [["This is", "example"], [".", "!"]] + + """ + text, puncs = self._strip_to_restore(text) + return text, puncs + + def _strip_to_restore(self, text): + """Auxiliary method for Punctuation.preserve()""" + matches = list(re.finditer(self.puncs_regular_exp, text)) + if not matches: + return [text], [] + # the text is only punctuations + if len(matches) == 1 and matches[0].group() == text: + return [], [_PUNC_IDX(text, PuncPosition.ALONE)] + # build a punctuation map to be used later to restore punctuations + puncs = [] + for match in matches: + position = PuncPosition.MIDDLE + if match == matches[0] and text.startswith(match.group()): + position = PuncPosition.BEGIN + elif match == matches[-1] and text.endswith(match.group()): + position = PuncPosition.END + puncs.append(_PUNC_IDX(match.group(), position)) + # convert str text to a List[str], each item is separated by a punctuation + splitted_text = [] + for idx, punc in enumerate(puncs): + split = text.split(punc.punc) + prefix, suffix = split[0], punc.punc.join(split[1:]) + splitted_text.append(prefix) + # if the text does not end with a punctuation, add it to the last item + if idx == len(puncs) - 1 and len(suffix) > 0: + splitted_text.append(suffix) + text = suffix + return splitted_text, puncs + + @classmethod + def restore(cls, text, puncs): + """Restore punctuation in a text. + + Args: + text (str): The text to be processed. + puncs (List[str]): The list of punctuations map to be used for restoring. + + Examples :: + + ['This is', 'example'], ['.', '!'] -> "This is. example!" + + """ + return cls._restore(text, puncs, 0) + + @classmethod + def _restore(cls, text, puncs, num): # pylint: disable=too-many-return-statements + """Auxiliary method for Punctuation.restore()""" + if not puncs: + return text + + # nothing have been phonemized, returns the puncs alone + if not text: + return ["".join(m.mark for m in puncs)] + + current = puncs[0] + + if current.position == PuncPosition.BEGIN: + return cls._restore([current.punc + text[0]] + text[1:], puncs[1:], num) + + if current.position == PuncPosition.END: + return [text[0] + current.punc] + cls._restore(text[1:], puncs[1:], num + 1) + + if current.position == PuncPosition.ALONE: + return [current.mark] + cls._restore(text, puncs[1:], num + 1) + + # POSITION == MIDDLE + if len(text) == 1: # pragma: nocover + # a corner case where the final part of an intermediate + # mark (I) has not been phonemized + return cls._restore([text[0] + current.punc], puncs[1:], num) + + return cls._restore([text[0] + current.punc + text[1]] + text[2:], puncs[1:], num) + + +# if __name__ == "__main__": +# punc = Punctuation() +# text = "This is. This is, example!" + +# print(punc.strip(text)) + +# split_text, puncs = punc.strip_to_restore(text) +# print(split_text, " ---- ", puncs) + +# restored_text = punc.restore(split_text, puncs) +# print(restored_text) diff --git a/Indic-TTS/TTS/TTS/tts/utils/text/tokenizer.py b/Indic-TTS/TTS/TTS/tts/utils/text/tokenizer.py new file mode 100644 index 0000000000000000000000000000000000000000..1569c634fb583a13a4040901d1e16b53703aa3dd --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/text/tokenizer.py @@ -0,0 +1,206 @@ +from typing import Callable, Dict, List, Union + +from TTS.tts.utils.text import cleaners +from TTS.tts.utils.text.characters import Graphemes, IPAPhonemes +from TTS.tts.utils.text.phonemizers import DEF_LANG_TO_PHONEMIZER, get_phonemizer_by_name +from TTS.utils.generic_utils import get_import_path, import_class + + +class TTSTokenizer: + """๐ŸธTTS tokenizer to convert input characters to token IDs and back. + + Token IDs for OOV chars are discarded but those are stored in `self.not_found_characters` for later. + + Args: + use_phonemes (bool): + Whether to use phonemes instead of characters. Defaults to False. + + characters (Characters): + A Characters object to use for character-to-ID and ID-to-character mappings. + + text_cleaner (callable): + A function to pre-process the text before tokenization and phonemization. Defaults to None. + + phonemizer (Phonemizer): + A phonemizer object or a dict that maps language codes to phonemizer objects. Defaults to None. + + Example: + + >>> from TTS.tts.utils.text.tokenizer import TTSTokenizer + >>> tokenizer = TTSTokenizer(use_phonemes=False, characters=Graphemes()) + >>> text = "Hello world!" + >>> ids = tokenizer.text_to_ids(text) + >>> text_hat = tokenizer.ids_to_text(ids) + >>> assert text == text_hat + """ + + def __init__( + self, + use_phonemes=False, + text_cleaner: Callable = None, + characters: "BaseCharacters" = None, + phonemizer: Union["Phonemizer", Dict] = None, + add_blank: bool = False, + use_eos_bos=False, + ): + self.text_cleaner = text_cleaner + self.use_phonemes = use_phonemes + self.add_blank = add_blank + self.use_eos_bos = use_eos_bos + self.characters = characters + self.not_found_characters = [] + self.phonemizer = phonemizer + + @property + def characters(self): + return self._characters + + @characters.setter + def characters(self, new_characters): + self._characters = new_characters + self.pad_id = self.characters.char_to_id(self.characters.pad) if self.characters.pad else None + self.blank_id = self.characters.char_to_id(self.characters.blank) if self.characters.blank else None + + def encode(self, text: str) -> List[int]: + """Encodes a string of text as a sequence of IDs.""" + token_ids = [] + for char in text: + try: + idx = self.characters.char_to_id(char) + token_ids.append(idx) + except KeyError: + # discard but store not found characters + if char not in self.not_found_characters: + self.not_found_characters.append(char) + print(text) + print(f" [!] Character {repr(char)} not found in the vocabulary. Discarding it.") + return token_ids + + def decode(self, token_ids: List[int]) -> str: + """Decodes a sequence of IDs to a string of text.""" + text = "" + for token_id in token_ids: + text += self.characters.id_to_char(token_id) + return text + + def text_to_ids(self, text: str, language: str = None) -> List[int]: # pylint: disable=unused-argument + """Converts a string of text to a sequence of token IDs. + + Args: + text(str): + The text to convert to token IDs. + + language(str): + The language code of the text. Defaults to None. + + TODO: + - Add support for language-specific processing. + + 1. Text normalizatin + 2. Phonemization (if use_phonemes is True) + 3. Add blank char between characters + 4. Add BOS and EOS characters + 5. Text to token IDs + """ + # TODO: text cleaner should pick the right routine based on the language + if self.text_cleaner is not None: + text = self.text_cleaner(text) + if self.use_phonemes: + text = self.phonemizer.phonemize(text, separator="") + if self.add_blank: + text = self.intersperse_blank_char(text, True) + if self.use_eos_bos: + text = self.pad_with_bos_eos(text) + return self.encode(text) + + def ids_to_text(self, id_sequence: List[int]) -> str: + """Converts a sequence of token IDs to a string of text.""" + return self.decode(id_sequence) + + def pad_with_bos_eos(self, char_sequence: List[str]): + """Pads a sequence with the special BOS and EOS characters.""" + return [self.characters.bos] + list(char_sequence) + [self.characters.eos] + + def intersperse_blank_char(self, char_sequence: List[str], use_blank_char: bool = False): + """Intersperses the blank character between characters in a sequence. + + Use the ```blank``` character if defined else use the ```pad``` character. + """ + char_to_use = self.characters.blank if use_blank_char else self.characters.pad + result = [char_to_use] * (len(char_sequence) * 2 + 1) + result[1::2] = char_sequence + return result + + def print_logs(self, level: int = 0): + indent = "\t" * level + print(f"{indent}| > add_blank: {self.add_blank}") + print(f"{indent}| > use_eos_bos: {self.use_eos_bos}") + print(f"{indent}| > use_phonemes: {self.use_phonemes}") + if self.use_phonemes: + print(f"{indent}| > phonemizer:") + self.phonemizer.print_logs(level + 1) + if len(self.not_found_characters) > 0: + print(f"{indent}| > {len(self.not_found_characters)} not found characters:") + for char in self.not_found_characters: + print(f"{indent}| > {char}") + + @staticmethod + def init_from_config(config: "Coqpit", characters: "BaseCharacters" = None): + """Init Tokenizer object from config + + Args: + config (Coqpit): Coqpit model config. + characters (BaseCharacters): Defines the model character set. If not set, use the default options based on + the config values. Defaults to None. + """ + # init cleaners + text_cleaner = None + if isinstance(config.text_cleaner, (str, list)): + text_cleaner = getattr(cleaners, config.text_cleaner) + + # init characters + if characters is None: + # set characters based on defined characters class + if config.characters and config.characters.characters_class: + CharactersClass = import_class(config.characters.characters_class) + characters, new_config = CharactersClass.init_from_config(config) + # set characters based on config + else: + if config.use_phonemes: + # init phoneme set + characters, new_config = IPAPhonemes().init_from_config(config) + else: + # init character set + characters, new_config = Graphemes().init_from_config(config) + + else: + characters, new_config = characters.init_from_config(config) + + # set characters class + new_config.characters.characters_class = get_import_path(characters) + + # init phonemizer + phonemizer = None + if config.use_phonemes: + phonemizer_kwargs = {"language": config.phoneme_language} + + if "phonemizer" in config and config.phonemizer: + phonemizer = get_phonemizer_by_name(config.phonemizer, **phonemizer_kwargs) + else: + try: + phonemizer = get_phonemizer_by_name( + DEF_LANG_TO_PHONEMIZER[config.phoneme_language], **phonemizer_kwargs + ) + new_config.phonemizer = phonemizer.name() + except KeyError as e: + raise ValueError( + f"""No phonemizer found for language {config.phoneme_language}. + You may need to install a third party library for this language.""" + ) from e + + return ( + TTSTokenizer( + config.use_phonemes, text_cleaner, characters, phonemizer, config.add_blank, config.enable_eos_bos_chars + ), + new_config, + ) diff --git a/Indic-TTS/TTS/TTS/tts/utils/visual.py b/Indic-TTS/TTS/TTS/tts/utils/visual.py new file mode 100644 index 0000000000000000000000000000000000000000..78c12981098ed1870ad799a72e7f7b80e4aafc17 --- /dev/null +++ b/Indic-TTS/TTS/TTS/tts/utils/visual.py @@ -0,0 +1,202 @@ +import librosa +import matplotlib +import matplotlib.pyplot as plt +import numpy as np +import torch + +matplotlib.use("Agg") + + +def plot_alignment(alignment, info=None, fig_size=(16, 10), title=None, output_fig=False): + if isinstance(alignment, torch.Tensor): + alignment_ = alignment.detach().cpu().numpy().squeeze() + else: + alignment_ = alignment + alignment_ = alignment_.astype(np.float32) if alignment_.dtype == np.float16 else alignment_ + fig, ax = plt.subplots(figsize=fig_size) + im = ax.imshow(alignment_.T, aspect="auto", origin="lower", interpolation="none") + fig.colorbar(im, ax=ax) + xlabel = "Decoder timestep" + if info is not None: + xlabel += "\n\n" + info + plt.xlabel(xlabel) + plt.ylabel("Encoder timestep") + # plt.yticks(range(len(text)), list(text)) + plt.tight_layout() + if title is not None: + plt.title(title) + if not output_fig: + plt.close() + return fig + + +def plot_spectrogram(spectrogram, ap=None, fig_size=(16, 10), output_fig=False): + if isinstance(spectrogram, torch.Tensor): + spectrogram_ = spectrogram.detach().cpu().numpy().squeeze().T + else: + spectrogram_ = spectrogram.T + spectrogram_ = spectrogram_.astype(np.float32) if spectrogram_.dtype == np.float16 else spectrogram_ + if ap is not None: + spectrogram_ = ap.denormalize(spectrogram_) # pylint: disable=protected-access + fig = plt.figure(figsize=fig_size) + plt.imshow(spectrogram_, aspect="auto", origin="lower") + plt.colorbar() + plt.tight_layout() + if not output_fig: + plt.close() + return fig + + +def plot_pitch(pitch, spectrogram, ap=None, fig_size=(30, 10), output_fig=False): + """Plot pitch curves on top of the spectrogram. + + Args: + pitch (np.array): Pitch values. + spectrogram (np.array): Spectrogram values. + + Shapes: + pitch: :math:`(T,)` + spec: :math:`(C, T)` + """ + + if isinstance(spectrogram, torch.Tensor): + spectrogram_ = spectrogram.detach().cpu().numpy().squeeze().T + else: + spectrogram_ = spectrogram.T + spectrogram_ = spectrogram_.astype(np.float32) if spectrogram_.dtype == np.float16 else spectrogram_ + if ap is not None: + spectrogram_ = ap.denormalize(spectrogram_) # pylint: disable=protected-access + + old_fig_size = plt.rcParams["figure.figsize"] + if fig_size is not None: + plt.rcParams["figure.figsize"] = fig_size + + fig, ax = plt.subplots() + + ax.imshow(spectrogram_, aspect="auto", origin="lower") + ax.set_xlabel("time") + ax.set_ylabel("spec_freq") + + ax2 = ax.twinx() + ax2.plot(pitch, linewidth=5.0, color="red") + ax2.set_ylabel("F0") + + plt.rcParams["figure.figsize"] = old_fig_size + if not output_fig: + plt.close() + return fig + + +def plot_avg_pitch(pitch, chars, fig_size=(30, 10), output_fig=False): + """Plot pitch curves on top of the input characters. + + Args: + pitch (np.array): Pitch values. + chars (str): Characters to place to the x-axis. + + Shapes: + pitch: :math:`(T,)` + """ + old_fig_size = plt.rcParams["figure.figsize"] + if fig_size is not None: + plt.rcParams["figure.figsize"] = fig_size + + fig, ax = plt.subplots() + + x = np.array(range(len(chars))) + my_xticks = chars + plt.xticks(x, my_xticks) + + ax.set_xlabel("characters") + ax.set_ylabel("freq") + + ax2 = ax.twinx() + ax2.plot(pitch, linewidth=5.0, color="red") + ax2.set_ylabel("F0") + + plt.rcParams["figure.figsize"] = old_fig_size + if not output_fig: + plt.close() + return fig + + +def visualize( + alignment, + postnet_output, + text, + hop_length, + CONFIG, + tokenizer, + stop_tokens=None, + decoder_output=None, + output_path=None, + figsize=(8, 24), + output_fig=False, +): + """Intended to be used in Notebooks.""" + + if decoder_output is not None: + num_plot = 4 + else: + num_plot = 3 + + label_fontsize = 16 + fig = plt.figure(figsize=figsize) + + plt.subplot(num_plot, 1, 1) + plt.imshow(alignment.T, aspect="auto", origin="lower", interpolation=None) + plt.xlabel("Decoder timestamp", fontsize=label_fontsize) + plt.ylabel("Encoder timestamp", fontsize=label_fontsize) + # compute phoneme representation and back + if CONFIG.use_phonemes: + seq = tokenizer.text_to_ids(text) + text = tokenizer.ids_to_text(seq) + print(text) + plt.yticks(range(len(text)), list(text)) + plt.colorbar() + + if stop_tokens is not None: + # plot stopnet predictions + plt.subplot(num_plot, 1, 2) + plt.plot(range(len(stop_tokens)), list(stop_tokens)) + + # plot postnet spectrogram + plt.subplot(num_plot, 1, 3) + librosa.display.specshow( + postnet_output.T, + sr=CONFIG.audio["sample_rate"], + hop_length=hop_length, + x_axis="time", + y_axis="linear", + fmin=CONFIG.audio["mel_fmin"], + fmax=CONFIG.audio["mel_fmax"], + ) + + plt.xlabel("Time", fontsize=label_fontsize) + plt.ylabel("Hz", fontsize=label_fontsize) + plt.tight_layout() + plt.colorbar() + + if decoder_output is not None: + plt.subplot(num_plot, 1, 4) + librosa.display.specshow( + decoder_output.T, + sr=CONFIG.audio["sample_rate"], + hop_length=hop_length, + x_axis="time", + y_axis="linear", + fmin=CONFIG.audio["mel_fmin"], + fmax=CONFIG.audio["mel_fmax"], + ) + plt.xlabel("Time", fontsize=label_fontsize) + plt.ylabel("Hz", fontsize=label_fontsize) + plt.tight_layout() + plt.colorbar() + + if output_path: + print(output_path) + fig.savefig(output_path) + plt.close() + + if not output_fig: + plt.close() diff --git a/Indic-TTS/TTS/TTS/utils/__init__.py b/Indic-TTS/TTS/TTS/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/utils/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/utils/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7353490b68f53183912af5258914b0ed38696293 Binary files /dev/null and b/Indic-TTS/TTS/TTS/utils/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/utils/__pycache__/audio.cpython-37.pyc b/Indic-TTS/TTS/TTS/utils/__pycache__/audio.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..76236b01dcf0c260bbbb21e4d04e2bb037f82c07 Binary files /dev/null and b/Indic-TTS/TTS/TTS/utils/__pycache__/audio.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/utils/__pycache__/generic_utils.cpython-37.pyc b/Indic-TTS/TTS/TTS/utils/__pycache__/generic_utils.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0de1e1346d5c8d6e79b28c2d1a661bba96f8cc05 Binary files /dev/null and b/Indic-TTS/TTS/TTS/utils/__pycache__/generic_utils.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/utils/__pycache__/io.cpython-37.pyc b/Indic-TTS/TTS/TTS/utils/__pycache__/io.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df59e403d5254ccac3c60f3173406f39f2765731 Binary files /dev/null and b/Indic-TTS/TTS/TTS/utils/__pycache__/io.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/utils/__pycache__/manage.cpython-37.pyc b/Indic-TTS/TTS/TTS/utils/__pycache__/manage.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b0913863136e33e2d766b49a48d09fd5ee936f25 Binary files /dev/null and b/Indic-TTS/TTS/TTS/utils/__pycache__/manage.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/utils/__pycache__/synthesizer.cpython-37.pyc b/Indic-TTS/TTS/TTS/utils/__pycache__/synthesizer.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..13572ffa7c0cf07178b16b0b67c34e153e680a0f Binary files /dev/null and b/Indic-TTS/TTS/TTS/utils/__pycache__/synthesizer.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/utils/audio.py b/Indic-TTS/TTS/TTS/utils/audio.py new file mode 100644 index 0000000000000000000000000000000000000000..fc9d194201a9e3d8de3bdc4e3103e4a0254a6ea4 --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/audio.py @@ -0,0 +1,927 @@ +from typing import Dict, Tuple + +import librosa +import numpy as np +import pyworld as pw +import scipy.io.wavfile +import scipy.signal +import soundfile as sf +import torch +from torch import nn + +from TTS.tts.utils.helpers import StandardScaler + + +class TorchSTFT(nn.Module): # pylint: disable=abstract-method + """Some of the audio processing funtions using Torch for faster batch processing. + + TODO: Merge this with audio.py + + Args: + + n_fft (int): + FFT window size for STFT. + + hop_length (int): + number of frames between STFT columns. + + win_length (int, optional): + STFT window length. + + pad_wav (bool, optional): + If True pad the audio with (n_fft - hop_length) / 2). Defaults to False. + + window (str, optional): + The name of a function to create a window tensor that is applied/multiplied to each frame/window. Defaults to "hann_window" + + sample_rate (int, optional): + target audio sampling rate. Defaults to None. + + mel_fmin (int, optional): + minimum filter frequency for computing melspectrograms. Defaults to None. + + mel_fmax (int, optional): + maximum filter frequency for computing melspectrograms. Defaults to None. + + n_mels (int, optional): + number of melspectrogram dimensions. Defaults to None. + + use_mel (bool, optional): + If True compute the melspectrograms otherwise. Defaults to False. + + do_amp_to_db_linear (bool, optional): + enable/disable amplitude to dB conversion of linear spectrograms. Defaults to False. + + spec_gain (float, optional): + gain applied when converting amplitude to DB. Defaults to 1.0. + + power (float, optional): + Exponent for the magnitude spectrogram, e.g., 1 for energy, 2 for power, etc. Defaults to None. + + use_htk (bool, optional): + Use HTK formula in mel filter instead of Slaney. + + mel_norm (None, 'slaney', or number, optional): + If 'slaney', divide the triangular mel weights by the width of the mel band + (area normalization). + + If numeric, use `librosa.util.normalize` to normalize each filter by to unit l_p norm. + See `librosa.util.normalize` for a full description of supported norm values + (including `+-np.inf`). + + Otherwise, leave all the triangles aiming for a peak value of 1.0. Defaults to "slaney". + """ + + def __init__( + self, + n_fft, + hop_length, + win_length, + pad_wav=False, + window="hann_window", + sample_rate=None, + mel_fmin=0, + mel_fmax=None, + n_mels=80, + use_mel=False, + do_amp_to_db=False, + spec_gain=1.0, + power=None, + use_htk=False, + mel_norm="slaney", + ): + super().__init__() + self.n_fft = n_fft + self.hop_length = hop_length + self.win_length = win_length + self.pad_wav = pad_wav + self.sample_rate = sample_rate + self.mel_fmin = mel_fmin + self.mel_fmax = mel_fmax + self.n_mels = n_mels + self.use_mel = use_mel + self.do_amp_to_db = do_amp_to_db + self.spec_gain = spec_gain + self.power = power + self.use_htk = use_htk + self.mel_norm = mel_norm + self.window = nn.Parameter(getattr(torch, window)(win_length), requires_grad=False) + self.mel_basis = None + if use_mel: + self._build_mel_basis() + + def __call__(self, x): + """Compute spectrogram frames by torch based stft. + + Args: + x (Tensor): input waveform + + Returns: + Tensor: spectrogram frames. + + Shapes: + x: [B x T] or [:math:`[B, 1, T]`] + """ + if x.ndim == 2: + x = x.unsqueeze(1) + if self.pad_wav: + padding = int((self.n_fft - self.hop_length) / 2) + x = torch.nn.functional.pad(x, (padding, padding), mode="reflect") + # B x D x T x 2 + o = torch.stft( + x.squeeze(1), + self.n_fft, + self.hop_length, + self.win_length, + self.window, + center=True, + pad_mode="reflect", # compatible with audio.py + normalized=False, + onesided=True, + return_complex=False, + ) + M = o[:, :, :, 0] + P = o[:, :, :, 1] + S = torch.sqrt(torch.clamp(M**2 + P**2, min=1e-8)) + + if self.power is not None: + S = S**self.power + + if self.use_mel: + S = torch.matmul(self.mel_basis.to(x), S) + if self.do_amp_to_db: + S = self._amp_to_db(S, spec_gain=self.spec_gain) + return S + + def _build_mel_basis(self): + mel_basis = librosa.filters.mel( + self.sample_rate, + self.n_fft, + n_mels=self.n_mels, + fmin=self.mel_fmin, + fmax=self.mel_fmax, + htk=self.use_htk, + norm=self.mel_norm, + ) + self.mel_basis = torch.from_numpy(mel_basis).float() + + @staticmethod + def _amp_to_db(x, spec_gain=1.0): + return torch.log(torch.clamp(x, min=1e-5) * spec_gain) + + @staticmethod + def _db_to_amp(x, spec_gain=1.0): + return torch.exp(x) / spec_gain + + +# pylint: disable=too-many-public-methods +class AudioProcessor(object): + """Audio Processor for TTS used by all the data pipelines. + + TODO: Make this a dataclass to replace `BaseAudioConfig`. + + Note: + All the class arguments are set to default values to enable a flexible initialization + of the class with the model config. They are not meaningful for all the arguments. + + Args: + sample_rate (int, optional): + target audio sampling rate. Defaults to None. + + resample (bool, optional): + enable/disable resampling of the audio clips when the target sampling rate does not match the original sampling rate. Defaults to False. + + num_mels (int, optional): + number of melspectrogram dimensions. Defaults to None. + + log_func (int, optional): + log exponent used for converting spectrogram aplitude to DB. + + min_level_db (int, optional): + minimum db threshold for the computed melspectrograms. Defaults to None. + + frame_shift_ms (int, optional): + milliseconds of frames between STFT columns. Defaults to None. + + frame_length_ms (int, optional): + milliseconds of STFT window length. Defaults to None. + + hop_length (int, optional): + number of frames between STFT columns. Used if ```frame_shift_ms``` is None. Defaults to None. + + win_length (int, optional): + STFT window length. Used if ```frame_length_ms``` is None. Defaults to None. + + ref_level_db (int, optional): + reference DB level to avoid background noise. In general <20DB corresponds to the air noise. Defaults to None. + + fft_size (int, optional): + FFT window size for STFT. Defaults to 1024. + + power (int, optional): + Exponent value applied to the spectrogram before GriffinLim. Defaults to None. + + preemphasis (float, optional): + Preemphasis coefficient. Preemphasis is disabled if == 0.0. Defaults to 0.0. + + signal_norm (bool, optional): + enable/disable signal normalization. Defaults to None. + + symmetric_norm (bool, optional): + enable/disable symmetric normalization. If set True normalization is performed in the range [-k, k] else [0, k], Defaults to None. + + max_norm (float, optional): + ```k``` defining the normalization range. Defaults to None. + + mel_fmin (int, optional): + minimum filter frequency for computing melspectrograms. Defaults to None. + + mel_fmax (int, optional): + maximum filter frequency for computing melspectrograms. Defaults to None. + + pitch_fmin (int, optional): + minimum filter frequency for computing pitch. Defaults to None. + + pitch_fmax (int, optional): + maximum filter frequency for computing pitch. Defaults to None. + + spec_gain (int, optional): + gain applied when converting amplitude to DB. Defaults to 20. + + stft_pad_mode (str, optional): + Padding mode for STFT. Defaults to 'reflect'. + + clip_norm (bool, optional): + enable/disable clipping the our of range values in the normalized audio signal. Defaults to True. + + griffin_lim_iters (int, optional): + Number of GriffinLim iterations. Defaults to None. + + do_trim_silence (bool, optional): + enable/disable silence trimming when loading the audio signal. Defaults to False. + + trim_db (int, optional): + DB threshold used for silence trimming. Defaults to 60. + + do_sound_norm (bool, optional): + enable/disable signal normalization. Defaults to False. + + do_amp_to_db_linear (bool, optional): + enable/disable amplitude to dB conversion of linear spectrograms. Defaults to True. + + do_amp_to_db_mel (bool, optional): + enable/disable amplitude to dB conversion of mel spectrograms. Defaults to True. + + do_rms_norm (bool, optional): + enable/disable RMS volume normalization when loading an audio file. Defaults to False. + + db_level (int, optional): + dB level used for rms normalization. The range is -99 to 0. Defaults to None. + + stats_path (str, optional): + Path to the computed stats file. Defaults to None. + + verbose (bool, optional): + enable/disable logging. Defaults to True. + + """ + + def __init__( + self, + sample_rate=None, + resample=False, + num_mels=None, + log_func="np.log10", + min_level_db=None, + frame_shift_ms=None, + frame_length_ms=None, + hop_length=None, + win_length=None, + ref_level_db=None, + fft_size=1024, + power=None, + preemphasis=0.0, + signal_norm=None, + symmetric_norm=None, + max_norm=None, + mel_fmin=None, + mel_fmax=None, + pitch_fmax=None, + pitch_fmin=None, + spec_gain=20, + stft_pad_mode="reflect", + clip_norm=True, + griffin_lim_iters=None, + do_trim_silence=False, + trim_db=60, + do_sound_norm=False, + do_amp_to_db_linear=True, + do_amp_to_db_mel=True, + do_rms_norm=False, + db_level=None, + stats_path=None, + verbose=True, + **_, + ): + + # setup class attributed + self.sample_rate = sample_rate + self.resample = resample + self.num_mels = num_mels + self.log_func = log_func + self.min_level_db = min_level_db or 0 + self.frame_shift_ms = frame_shift_ms + self.frame_length_ms = frame_length_ms + self.ref_level_db = ref_level_db + self.fft_size = fft_size + self.power = power + self.preemphasis = preemphasis + self.griffin_lim_iters = griffin_lim_iters + self.signal_norm = signal_norm + self.symmetric_norm = symmetric_norm + self.mel_fmin = mel_fmin or 0 + self.mel_fmax = mel_fmax + self.pitch_fmin = pitch_fmin + self.pitch_fmax = pitch_fmax + self.spec_gain = float(spec_gain) + self.stft_pad_mode = stft_pad_mode + self.max_norm = 1.0 if max_norm is None else float(max_norm) + self.clip_norm = clip_norm + self.do_trim_silence = do_trim_silence + self.trim_db = trim_db + self.do_sound_norm = do_sound_norm + self.do_amp_to_db_linear = do_amp_to_db_linear + self.do_amp_to_db_mel = do_amp_to_db_mel + self.do_rms_norm = do_rms_norm + self.db_level = db_level + self.stats_path = stats_path + # setup exp_func for db to amp conversion + if log_func == "np.log": + self.base = np.e + elif log_func == "np.log10": + self.base = 10 + else: + raise ValueError(" [!] unknown `log_func` value.") + # setup stft parameters + if hop_length is None: + # compute stft parameters from given time values + self.hop_length, self.win_length = self._stft_parameters() + else: + # use stft parameters from config file + self.hop_length = hop_length + self.win_length = win_length + assert min_level_db != 0.0, " [!] min_level_db is 0" + assert ( + self.win_length <= self.fft_size + ), f" [!] win_length cannot be larger than fft_size - {self.win_length} vs {self.fft_size}" + members = vars(self) + if verbose: + print(" > Setting up Audio Processor...") + for key, value in members.items(): + print(" | > {}:{}".format(key, value)) + # create spectrogram utils + self.mel_basis = self._build_mel_basis() + self.inv_mel_basis = np.linalg.pinv(self._build_mel_basis()) + # setup scaler + if stats_path and signal_norm: + mel_mean, mel_std, linear_mean, linear_std, _ = self.load_stats(stats_path) + self.setup_scaler(mel_mean, mel_std, linear_mean, linear_std) + self.signal_norm = True + self.max_norm = None + self.clip_norm = None + self.symmetric_norm = None + + @staticmethod + def init_from_config(config: "Coqpit", verbose=True): + if "audio" in config: + return AudioProcessor(verbose=verbose, **config.audio) + return AudioProcessor(verbose=verbose, **config) + + ### setting up the parameters ### + def _build_mel_basis( + self, + ) -> np.ndarray: + """Build melspectrogram basis. + + Returns: + np.ndarray: melspectrogram basis. + """ + if self.mel_fmax is not None: + assert self.mel_fmax <= self.sample_rate // 2 + return librosa.filters.mel( + self.sample_rate, self.fft_size, n_mels=self.num_mels, fmin=self.mel_fmin, fmax=self.mel_fmax + ) + + def _stft_parameters( + self, + ) -> Tuple[int, int]: + """Compute the real STFT parameters from the time values. + + Returns: + Tuple[int, int]: hop length and window length for STFT. + """ + factor = self.frame_length_ms / self.frame_shift_ms + assert (factor).is_integer(), " [!] frame_shift_ms should divide frame_length_ms" + hop_length = int(self.frame_shift_ms / 1000.0 * self.sample_rate) + win_length = int(hop_length * factor) + return hop_length, win_length + + ### normalization ### + def normalize(self, S: np.ndarray) -> np.ndarray: + """Normalize values into `[0, self.max_norm]` or `[-self.max_norm, self.max_norm]` + + Args: + S (np.ndarray): Spectrogram to normalize. + + Raises: + RuntimeError: Mean and variance is computed from incompatible parameters. + + Returns: + np.ndarray: Normalized spectrogram. + """ + # pylint: disable=no-else-return + S = S.copy() + if self.signal_norm: + # mean-var scaling + if hasattr(self, "mel_scaler"): + if S.shape[0] == self.num_mels: + return self.mel_scaler.transform(S.T).T + elif S.shape[0] == self.fft_size / 2: + return self.linear_scaler.transform(S.T).T + else: + raise RuntimeError(" [!] Mean-Var stats does not match the given feature dimensions.") + # range normalization + S -= self.ref_level_db # discard certain range of DB assuming it is air noise + S_norm = (S - self.min_level_db) / (-self.min_level_db) + if self.symmetric_norm: + S_norm = ((2 * self.max_norm) * S_norm) - self.max_norm + if self.clip_norm: + S_norm = np.clip( + S_norm, -self.max_norm, self.max_norm # pylint: disable=invalid-unary-operand-type + ) + return S_norm + else: + S_norm = self.max_norm * S_norm + if self.clip_norm: + S_norm = np.clip(S_norm, 0, self.max_norm) + return S_norm + else: + return S + + def denormalize(self, S: np.ndarray) -> np.ndarray: + """Denormalize spectrogram values. + + Args: + S (np.ndarray): Spectrogram to denormalize. + + Raises: + RuntimeError: Mean and variance are incompatible. + + Returns: + np.ndarray: Denormalized spectrogram. + """ + # pylint: disable=no-else-return + S_denorm = S.copy() + if self.signal_norm: + # mean-var scaling + if hasattr(self, "mel_scaler"): + if S_denorm.shape[0] == self.num_mels: + return self.mel_scaler.inverse_transform(S_denorm.T).T + elif S_denorm.shape[0] == self.fft_size / 2: + return self.linear_scaler.inverse_transform(S_denorm.T).T + else: + raise RuntimeError(" [!] Mean-Var stats does not match the given feature dimensions.") + if self.symmetric_norm: + if self.clip_norm: + S_denorm = np.clip( + S_denorm, -self.max_norm, self.max_norm # pylint: disable=invalid-unary-operand-type + ) + S_denorm = ((S_denorm + self.max_norm) * -self.min_level_db / (2 * self.max_norm)) + self.min_level_db + return S_denorm + self.ref_level_db + else: + if self.clip_norm: + S_denorm = np.clip(S_denorm, 0, self.max_norm) + S_denorm = (S_denorm * -self.min_level_db / self.max_norm) + self.min_level_db + return S_denorm + self.ref_level_db + else: + return S_denorm + + ### Mean-STD scaling ### + def load_stats(self, stats_path: str) -> Tuple[np.array, np.array, np.array, np.array, Dict]: + """Loading mean and variance statistics from a `npy` file. + + Args: + stats_path (str): Path to the `npy` file containing + + Returns: + Tuple[np.array, np.array, np.array, np.array, Dict]: loaded statistics and the config used to + compute them. + """ + stats = np.load(stats_path, allow_pickle=True).item() # pylint: disable=unexpected-keyword-arg + mel_mean = stats["mel_mean"] + mel_std = stats["mel_std"] + linear_mean = stats["linear_mean"] + linear_std = stats["linear_std"] + stats_config = stats["audio_config"] + # check all audio parameters used for computing stats + skip_parameters = ["griffin_lim_iters", "stats_path", "do_trim_silence", "ref_level_db", "power"] + for key in stats_config.keys(): + if key in skip_parameters: + continue + if key not in ["sample_rate", "trim_db"]: + assert ( + stats_config[key] == self.__dict__[key] + ), f" [!] Audio param {key} does not match the value used for computing mean-var stats. {stats_config[key]} vs {self.__dict__[key]}" + return mel_mean, mel_std, linear_mean, linear_std, stats_config + + # pylint: disable=attribute-defined-outside-init + def setup_scaler( + self, mel_mean: np.ndarray, mel_std: np.ndarray, linear_mean: np.ndarray, linear_std: np.ndarray + ) -> None: + """Initialize scaler objects used in mean-std normalization. + + Args: + mel_mean (np.ndarray): Mean for melspectrograms. + mel_std (np.ndarray): STD for melspectrograms. + linear_mean (np.ndarray): Mean for full scale spectrograms. + linear_std (np.ndarray): STD for full scale spectrograms. + """ + self.mel_scaler = StandardScaler() + self.mel_scaler.set_stats(mel_mean, mel_std) + self.linear_scaler = StandardScaler() + self.linear_scaler.set_stats(linear_mean, linear_std) + + ### DB and AMP conversion ### + # pylint: disable=no-self-use + def _amp_to_db(self, x: np.ndarray) -> np.ndarray: + """Convert amplitude values to decibels. + + Args: + x (np.ndarray): Amplitude spectrogram. + + Returns: + np.ndarray: Decibels spectrogram. + """ + return self.spec_gain * _log(np.maximum(1e-5, x), self.base) + + # pylint: disable=no-self-use + def _db_to_amp(self, x: np.ndarray) -> np.ndarray: + """Convert decibels spectrogram to amplitude spectrogram. + + Args: + x (np.ndarray): Decibels spectrogram. + + Returns: + np.ndarray: Amplitude spectrogram. + """ + return _exp(x / self.spec_gain, self.base) + + ### Preemphasis ### + def apply_preemphasis(self, x: np.ndarray) -> np.ndarray: + """Apply pre-emphasis to the audio signal. Useful to reduce the correlation between neighbouring signal values. + + Args: + x (np.ndarray): Audio signal. + + Raises: + RuntimeError: Preemphasis coeff is set to 0. + + Returns: + np.ndarray: Decorrelated audio signal. + """ + if self.preemphasis == 0: + raise RuntimeError(" [!] Preemphasis is set 0.0.") + return scipy.signal.lfilter([1, -self.preemphasis], [1], x) + + def apply_inv_preemphasis(self, x: np.ndarray) -> np.ndarray: + """Reverse pre-emphasis.""" + if self.preemphasis == 0: + raise RuntimeError(" [!] Preemphasis is set 0.0.") + return scipy.signal.lfilter([1], [1, -self.preemphasis], x) + + ### SPECTROGRAMs ### + def _linear_to_mel(self, spectrogram: np.ndarray) -> np.ndarray: + """Project a full scale spectrogram to a melspectrogram. + + Args: + spectrogram (np.ndarray): Full scale spectrogram. + + Returns: + np.ndarray: Melspectrogram + """ + return np.dot(self.mel_basis, spectrogram) + + def _mel_to_linear(self, mel_spec: np.ndarray) -> np.ndarray: + """Convert a melspectrogram to full scale spectrogram.""" + return np.maximum(1e-10, np.dot(self.inv_mel_basis, mel_spec)) + + def spectrogram(self, y: np.ndarray) -> np.ndarray: + """Compute a spectrogram from a waveform. + + Args: + y (np.ndarray): Waveform. + + Returns: + np.ndarray: Spectrogram. + """ + if self.preemphasis != 0: + D = self._stft(self.apply_preemphasis(y)) + else: + D = self._stft(y) + if self.do_amp_to_db_linear: + S = self._amp_to_db(np.abs(D)) + else: + S = np.abs(D) + return self.normalize(S).astype(np.float32) + + def melspectrogram(self, y: np.ndarray) -> np.ndarray: + """Compute a melspectrogram from a waveform.""" + if self.preemphasis != 0: + D = self._stft(self.apply_preemphasis(y)) + else: + D = self._stft(y) + if self.do_amp_to_db_mel: + S = self._amp_to_db(self._linear_to_mel(np.abs(D))) + else: + S = self._linear_to_mel(np.abs(D)) + return self.normalize(S).astype(np.float32) + + def inv_spectrogram(self, spectrogram: np.ndarray) -> np.ndarray: + """Convert a spectrogram to a waveform using Griffi-Lim vocoder.""" + S = self.denormalize(spectrogram) + S = self._db_to_amp(S) + # Reconstruct phase + if self.preemphasis != 0: + return self.apply_inv_preemphasis(self._griffin_lim(S**self.power)) + return self._griffin_lim(S**self.power) + + def inv_melspectrogram(self, mel_spectrogram: np.ndarray) -> np.ndarray: + """Convert a melspectrogram to a waveform using Griffi-Lim vocoder.""" + D = self.denormalize(mel_spectrogram) + S = self._db_to_amp(D) + S = self._mel_to_linear(S) # Convert back to linear + if self.preemphasis != 0: + return self.apply_inv_preemphasis(self._griffin_lim(S**self.power)) + return self._griffin_lim(S**self.power) + + def out_linear_to_mel(self, linear_spec: np.ndarray) -> np.ndarray: + """Convert a full scale linear spectrogram output of a network to a melspectrogram. + + Args: + linear_spec (np.ndarray): Normalized full scale linear spectrogram. + + Returns: + np.ndarray: Normalized melspectrogram. + """ + S = self.denormalize(linear_spec) + S = self._db_to_amp(S) + S = self._linear_to_mel(np.abs(S)) + S = self._amp_to_db(S) + mel = self.normalize(S) + return mel + + ### STFT and ISTFT ### + def _stft(self, y: np.ndarray) -> np.ndarray: + """Librosa STFT wrapper. + + Args: + y (np.ndarray): Audio signal. + + Returns: + np.ndarray: Complex number array. + """ + return librosa.stft( + y=y, + n_fft=self.fft_size, + hop_length=self.hop_length, + win_length=self.win_length, + pad_mode=self.stft_pad_mode, + window="hann", + center=True, + ) + + def _istft(self, y: np.ndarray) -> np.ndarray: + """Librosa iSTFT wrapper.""" + return librosa.istft(y, hop_length=self.hop_length, win_length=self.win_length) + + def _griffin_lim(self, S): + angles = np.exp(2j * np.pi * np.random.rand(*S.shape)) + S_complex = np.abs(S).astype(np.complex) + y = self._istft(S_complex * angles) + if not np.isfinite(y).all(): + print(" [!] Waveform is not finite everywhere. Skipping the GL.") + return np.array([0.0]) + for _ in range(self.griffin_lim_iters): + angles = np.exp(1j * np.angle(self._stft(y))) + y = self._istft(S_complex * angles) + return y + + def compute_stft_paddings(self, x, pad_sides=1): + """Compute paddings used by Librosa's STFT. Compute right padding (final frame) or both sides padding + (first and final frames)""" + assert pad_sides in (1, 2) + pad = (x.shape[0] // self.hop_length + 1) * self.hop_length - x.shape[0] + if pad_sides == 1: + return 0, pad + return pad // 2, pad // 2 + pad % 2 + + def compute_f0(self, x: np.ndarray) -> np.ndarray: + """Compute pitch (f0) of a waveform using the same parameters used for computing melspectrogram. + + Args: + x (np.ndarray): Waveform. + + Returns: + np.ndarray: Pitch. + + Examples: + >>> WAV_FILE = filename = librosa.util.example_audio_file() + >>> from TTS.config import BaseAudioConfig + >>> from TTS.utils.audio import AudioProcessor + >>> conf = BaseAudioConfig(pitch_fmax=8000) + >>> ap = AudioProcessor(**conf) + >>> wav = ap.load_wav(WAV_FILE, sr=22050)[:5 * 22050] + >>> pitch = ap.compute_f0(wav) + """ + assert self.pitch_fmax is not None, " [!] Set `pitch_fmax` before caling `compute_f0`." + # align F0 length to the spectrogram length + if len(x) % self.hop_length == 0: + x = np.pad(x, (0, self.hop_length // 2), mode="reflect") + + f0, t = pw.dio( + x.astype(np.double), + fs=self.sample_rate, + f0_ceil=self.pitch_fmax, + frame_period=1000 * self.hop_length / self.sample_rate, + ) + f0 = pw.stonemask(x.astype(np.double), f0, t, self.sample_rate) + return f0 + + ### Audio Processing ### + def find_endpoint(self, wav: np.ndarray, min_silence_sec=0.8) -> int: + """Find the last point without silence at the end of a audio signal. + + Args: + wav (np.ndarray): Audio signal. + threshold_db (int, optional): Silence threshold in decibels. Defaults to -40. + min_silence_sec (float, optional): Ignore silences that are shorter then this in secs. Defaults to 0.8. + + Returns: + int: Last point without silence. + """ + window_length = int(self.sample_rate * min_silence_sec) + hop_length = int(window_length / 4) + threshold = self._db_to_amp(-self.trim_db) + for x in range(hop_length, len(wav) - window_length, hop_length): + if np.max(wav[x : x + window_length]) < threshold: + return x + hop_length + return len(wav) + + def trim_silence(self, wav): + """Trim silent parts with a threshold and 0.01 sec margin""" + margin = int(self.sample_rate * 0.01) + wav = wav[margin:-margin] + return librosa.effects.trim(wav, top_db=self.trim_db, frame_length=self.win_length, hop_length=self.hop_length)[ + 0 + ] + + @staticmethod + def sound_norm(x: np.ndarray) -> np.ndarray: + """Normalize the volume of an audio signal. + + Args: + x (np.ndarray): Raw waveform. + + Returns: + np.ndarray: Volume normalized waveform. + """ + return x / abs(x).max() * 0.95 + + @staticmethod + def _rms_norm(wav, db_level=-27): + r = 10 ** (db_level / 20) + a = np.sqrt((len(wav) * (r**2)) / np.sum(wav**2)) + return wav * a + + def rms_volume_norm(self, x: np.ndarray, db_level: float = None) -> np.ndarray: + """Normalize the volume based on RMS of the signal. + + Args: + x (np.ndarray): Raw waveform. + + Returns: + np.ndarray: RMS normalized waveform. + """ + if db_level is None: + db_level = self.db_level + assert -99 <= db_level <= 0, " [!] db_level should be between -99 and 0" + wav = self._rms_norm(x, db_level) + return wav + + ### save and load ### + def load_wav(self, filename: str, sr: int = None) -> np.ndarray: + """Read a wav file using Librosa and optionally resample, silence trim, volume normalize. + + Resampling slows down loading the file significantly. Therefore it is recommended to resample the file before. + + Args: + filename (str): Path to the wav file. + sr (int, optional): Sampling rate for resampling. Defaults to None. + + Returns: + np.ndarray: Loaded waveform. + """ + if self.resample: + # loading with resampling. It is significantly slower. + x, sr = librosa.load(filename, sr=self.sample_rate) + elif sr is None: + # SF is faster than librosa for loading files + x, sr = sf.read(filename) + assert self.sample_rate == sr, "%s vs %s" % (self.sample_rate, sr) + else: + x, sr = librosa.load(filename, sr=sr) + if self.do_trim_silence: + try: + x = self.trim_silence(x) + except ValueError: + print(f" [!] File cannot be trimmed for silence - {filename}") + if self.do_sound_norm: + x = self.sound_norm(x) + if self.do_rms_norm: + x = self.rms_volume_norm(x, self.db_level) + return x + + def save_wav(self, wav: np.ndarray, path: str, sr: int = None) -> None: + """Save a waveform to a file using Scipy. + + Args: + wav (np.ndarray): Waveform to save. + path (str): Path to a output file. + sr (int, optional): Sampling rate used for saving to the file. Defaults to None. + """ + if self.do_rms_norm: + wav_norm = self.rms_volume_norm(wav, self.db_level) * 32767 + else: + wav_norm = wav * (32767 / max(0.01, np.max(np.abs(wav)))) + + scipy.io.wavfile.write(path, sr if sr else self.sample_rate, wav_norm.astype(np.int16)) + + def get_duration(self, filename: str) -> float: + """Get the duration of a wav file using Librosa. + + Args: + filename (str): Path to the wav file. + """ + return librosa.get_duration(filename) + + @staticmethod + def mulaw_encode(wav: np.ndarray, qc: int) -> np.ndarray: + mu = 2**qc - 1 + # wav_abs = np.minimum(np.abs(wav), 1.0) + signal = np.sign(wav) * np.log(1 + mu * np.abs(wav)) / np.log(1.0 + mu) + # Quantize signal to the specified number of levels. + signal = (signal + 1) / 2 * mu + 0.5 + return np.floor( + signal, + ) + + @staticmethod + def mulaw_decode(wav, qc): + """Recovers waveform from quantized values.""" + mu = 2**qc - 1 + x = np.sign(wav) / mu * ((1 + mu) ** np.abs(wav) - 1) + return x + + @staticmethod + def encode_16bits(x): + return np.clip(x * 2**15, -(2**15), 2**15 - 1).astype(np.int16) + + @staticmethod + def quantize(x: np.ndarray, bits: int) -> np.ndarray: + """Quantize a waveform to a given number of bits. + + Args: + x (np.ndarray): Waveform to quantize. Must be normalized into the range `[-1, 1]`. + bits (int): Number of quantization bits. + + Returns: + np.ndarray: Quantized waveform. + """ + return (x + 1.0) * (2**bits - 1) / 2 + + @staticmethod + def dequantize(x, bits): + """Dequantize a waveform from the given number of bits.""" + return 2 * x / (2**bits - 1) - 1 + + +def _log(x, base): + if base == 10: + return np.log10(x) + return np.log(x) + + +def _exp(x, base): + if base == 10: + return np.power(10, x) + return np.exp(x) diff --git a/Indic-TTS/TTS/TTS/utils/callbacks.py b/Indic-TTS/TTS/TTS/utils/callbacks.py new file mode 100644 index 0000000000000000000000000000000000000000..511d215c656f1ce3ed31484963db64fae4dc77d4 --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/callbacks.py @@ -0,0 +1,105 @@ +class TrainerCallback: + @staticmethod + def on_init_start(trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_init_start"): + trainer.model.module.on_init_start(trainer) + else: + if hasattr(trainer.model, "on_init_start"): + trainer.model.on_init_start(trainer) + + if hasattr(trainer.criterion, "on_init_start"): + trainer.criterion.on_init_start(trainer) + + if hasattr(trainer.optimizer, "on_init_start"): + trainer.optimizer.on_init_start(trainer) + + @staticmethod + def on_init_end(trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_init_end"): + trainer.model.module.on_init_end(trainer) + else: + if hasattr(trainer.model, "on_init_end"): + trainer.model.on_init_end(trainer) + + if hasattr(trainer.criterion, "on_init_end"): + trainer.criterion.on_init_end(trainer) + + if hasattr(trainer.optimizer, "on_init_end"): + trainer.optimizer.on_init_end(trainer) + + @staticmethod + def on_epoch_start(trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_epoch_start"): + trainer.model.module.on_epoch_start(trainer) + else: + if hasattr(trainer.model, "on_epoch_start"): + trainer.model.on_epoch_start(trainer) + + if hasattr(trainer.criterion, "on_epoch_start"): + trainer.criterion.on_epoch_start(trainer) + + if hasattr(trainer.optimizer, "on_epoch_start"): + trainer.optimizer.on_epoch_start(trainer) + + @staticmethod + def on_epoch_end(trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_epoch_end"): + trainer.model.module.on_epoch_end(trainer) + else: + if hasattr(trainer.model, "on_epoch_end"): + trainer.model.on_epoch_end(trainer) + + if hasattr(trainer.criterion, "on_epoch_end"): + trainer.criterion.on_epoch_end(trainer) + + if hasattr(trainer.optimizer, "on_epoch_end"): + trainer.optimizer.on_epoch_end(trainer) + + @staticmethod + def on_train_step_start(trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_train_step_start"): + trainer.model.module.on_train_step_start(trainer) + else: + if hasattr(trainer.model, "on_train_step_start"): + trainer.model.on_train_step_start(trainer) + + if hasattr(trainer.criterion, "on_train_step_start"): + trainer.criterion.on_train_step_start(trainer) + + if hasattr(trainer.optimizer, "on_train_step_start"): + trainer.optimizer.on_train_step_start(trainer) + + @staticmethod + def on_train_step_end(trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_train_step_end"): + trainer.model.module.on_train_step_end(trainer) + else: + if hasattr(trainer.model, "on_train_step_end"): + trainer.model.on_train_step_end(trainer) + + if hasattr(trainer.criterion, "on_train_step_end"): + trainer.criterion.on_train_step_end(trainer) + + if hasattr(trainer.optimizer, "on_train_step_end"): + trainer.optimizer.on_train_step_end(trainer) + + @staticmethod + def on_keyboard_interrupt(trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_keyboard_interrupt"): + trainer.model.module.on_keyboard_interrupt(trainer) + else: + if hasattr(trainer.model, "on_keyboard_interrupt"): + trainer.model.on_keyboard_interrupt(trainer) + + if hasattr(trainer.criterion, "on_keyboard_interrupt"): + trainer.criterion.on_keyboard_interrupt(trainer) + + if hasattr(trainer.optimizer, "on_keyboard_interrupt"): + trainer.optimizer.on_keyboard_interrupt(trainer) diff --git a/Indic-TTS/TTS/TTS/utils/capacitron_optimizer.py b/Indic-TTS/TTS/TTS/utils/capacitron_optimizer.py new file mode 100644 index 0000000000000000000000000000000000000000..c9f075afac86d425d0355a6d678a9c1ca3f0062e --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/capacitron_optimizer.py @@ -0,0 +1,65 @@ +from typing import Generator + +from trainer.trainer_utils import get_optimizer + + +class CapacitronOptimizer: + """Double optimizer class for the Capacitron model.""" + + def __init__(self, config: dict, model_params: Generator) -> None: + self.primary_params, self.secondary_params = self.split_model_parameters(model_params) + + optimizer_names = list(config.optimizer_params.keys()) + optimizer_parameters = list(config.optimizer_params.values()) + + self.primary_optimizer = get_optimizer( + optimizer_names[0], + optimizer_parameters[0], + config.lr, + parameters=self.primary_params, + ) + + self.secondary_optimizer = get_optimizer( + optimizer_names[1], + self.extract_optimizer_parameters(optimizer_parameters[1]), + optimizer_parameters[1]["lr"], + parameters=self.secondary_params, + ) + + self.param_groups = self.primary_optimizer.param_groups + + def first_step(self): + self.secondary_optimizer.step() + self.secondary_optimizer.zero_grad() + self.primary_optimizer.zero_grad() + + def step(self): + self.primary_optimizer.step() + + def zero_grad(self): + self.primary_optimizer.zero_grad() + self.secondary_optimizer.zero_grad() + + def load_state_dict(self, state_dict): + self.primary_optimizer.load_state_dict(state_dict[0]) + self.secondary_optimizer.load_state_dict(state_dict[1]) + + def state_dict(self): + return [self.primary_optimizer.state_dict(), self.secondary_optimizer.state_dict()] + + @staticmethod + def split_model_parameters(model_params: Generator) -> list: + primary_params = [] + secondary_params = [] + for name, param in model_params: + if param.requires_grad: + if name == "capacitron_vae_layer.beta": + secondary_params.append(param) + else: + primary_params.append(param) + return [iter(primary_params), iter(secondary_params)] + + @staticmethod + def extract_optimizer_parameters(params: dict) -> dict: + """Extract parameters that are not the learning rate""" + return {k: v for k, v in params.items() if k != "lr"} diff --git a/Indic-TTS/TTS/TTS/utils/distribute.py b/Indic-TTS/TTS/TTS/utils/distribute.py new file mode 100644 index 0000000000000000000000000000000000000000..a51ef7661ece97c87c165ad1aba4c9d9700379dc --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/distribute.py @@ -0,0 +1,20 @@ +# edited from https://github.com/fastai/imagenet-fast/blob/master/imagenet_nv/distributed.py +import torch +import torch.distributed as dist + + +def reduce_tensor(tensor, num_gpus): + rt = tensor.clone() + dist.all_reduce(rt, op=dist.reduce_op.SUM) + rt /= num_gpus + return rt + + +def init_distributed(rank, num_gpus, group_name, dist_backend, dist_url): + assert torch.cuda.is_available(), "Distributed mode requires CUDA." + + # Set cuda device so everything is done on the right GPU. + torch.cuda.set_device(rank % torch.cuda.device_count()) + + # Initialize distributed communication + dist.init_process_group(dist_backend, init_method=dist_url, world_size=num_gpus, rank=rank, group_name=group_name) diff --git a/Indic-TTS/TTS/TTS/utils/download.py b/Indic-TTS/TTS/TTS/utils/download.py new file mode 100644 index 0000000000000000000000000000000000000000..de9b31a7a87071a964cd171b2075b03a7a433a76 --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/download.py @@ -0,0 +1,207 @@ +# Adapted from https://github.com/pytorch/audio/ + +import hashlib +import logging +import os +import tarfile +import urllib +import urllib.request +import zipfile +from os.path import expanduser +from typing import Any, Iterable, List, Optional + +from torch.utils.model_zoo import tqdm + + +def stream_url( + url: str, start_byte: Optional[int] = None, block_size: int = 32 * 1024, progress_bar: bool = True +) -> Iterable: + """Stream url by chunk + + Args: + url (str): Url. + start_byte (int or None, optional): Start streaming at that point (Default: ``None``). + block_size (int, optional): Size of chunks to stream (Default: ``32 * 1024``). + progress_bar (bool, optional): Display a progress bar (Default: ``True``). + """ + + # If we already have the whole file, there is no need to download it again + req = urllib.request.Request(url, method="HEAD") + with urllib.request.urlopen(req) as response: + url_size = int(response.info().get("Content-Length", -1)) + if url_size == start_byte: + return + + req = urllib.request.Request(url) + if start_byte: + req.headers["Range"] = "bytes={}-".format(start_byte) + + with urllib.request.urlopen(req) as upointer, tqdm( + unit="B", + unit_scale=True, + unit_divisor=1024, + total=url_size, + disable=not progress_bar, + ) as pbar: + + num_bytes = 0 + while True: + chunk = upointer.read(block_size) + if not chunk: + break + yield chunk + num_bytes += len(chunk) + pbar.update(len(chunk)) + + +def download_url( + url: str, + download_folder: str, + filename: Optional[str] = None, + hash_value: Optional[str] = None, + hash_type: str = "sha256", + progress_bar: bool = True, + resume: bool = False, +) -> None: + """Download file to disk. + + Args: + url (str): Url. + download_folder (str): Folder to download file. + filename (str or None, optional): Name of downloaded file. If None, it is inferred from the url + (Default: ``None``). + hash_value (str or None, optional): Hash for url (Default: ``None``). + hash_type (str, optional): Hash type, among "sha256" and "md5" (Default: ``"sha256"``). + progress_bar (bool, optional): Display a progress bar (Default: ``True``). + resume (bool, optional): Enable resuming download (Default: ``False``). + """ + + req = urllib.request.Request(url, method="HEAD") + req_info = urllib.request.urlopen(req).info() # pylint: disable=consider-using-with + + # Detect filename + filename = filename or req_info.get_filename() or os.path.basename(url) + filepath = os.path.join(download_folder, filename) + if resume and os.path.exists(filepath): + mode = "ab" + local_size: Optional[int] = os.path.getsize(filepath) + + elif not resume and os.path.exists(filepath): + raise RuntimeError("{} already exists. Delete the file manually and retry.".format(filepath)) + else: + mode = "wb" + local_size = None + + if hash_value and local_size == int(req_info.get("Content-Length", -1)): + with open(filepath, "rb") as file_obj: + if validate_file(file_obj, hash_value, hash_type): + return + raise RuntimeError("The hash of {} does not match. Delete the file manually and retry.".format(filepath)) + + with open(filepath, mode) as fpointer: + for chunk in stream_url(url, start_byte=local_size, progress_bar=progress_bar): + fpointer.write(chunk) + + with open(filepath, "rb") as file_obj: + if hash_value and not validate_file(file_obj, hash_value, hash_type): + raise RuntimeError("The hash of {} does not match. Delete the file manually and retry.".format(filepath)) + + +def validate_file(file_obj: Any, hash_value: str, hash_type: str = "sha256") -> bool: + """Validate a given file object with its hash. + + Args: + file_obj: File object to read from. + hash_value (str): Hash for url. + hash_type (str, optional): Hash type, among "sha256" and "md5" (Default: ``"sha256"``). + + Returns: + bool: return True if its a valid file, else False. + """ + + if hash_type == "sha256": + hash_func = hashlib.sha256() + elif hash_type == "md5": + hash_func = hashlib.md5() + else: + raise ValueError + + while True: + # Read by chunk to avoid filling memory + chunk = file_obj.read(1024**2) + if not chunk: + break + hash_func.update(chunk) + + return hash_func.hexdigest() == hash_value + + +def extract_archive(from_path: str, to_path: Optional[str] = None, overwrite: bool = False) -> List[str]: + """Extract archive. + Args: + from_path (str): the path of the archive. + to_path (str or None, optional): the root path of the extraced files (directory of from_path) + (Default: ``None``) + overwrite (bool, optional): overwrite existing files (Default: ``False``) + + Returns: + list: List of paths to extracted files even if not overwritten. + """ + + if to_path is None: + to_path = os.path.dirname(from_path) + + try: + with tarfile.open(from_path, "r") as tar: + logging.info("Opened tar file %s.", from_path) + files = [] + for file_ in tar: # type: Any + file_path = os.path.join(to_path, file_.name) + if file_.isfile(): + files.append(file_path) + if os.path.exists(file_path): + logging.info("%s already extracted.", file_path) + if not overwrite: + continue + tar.extract(file_, to_path) + return files + except tarfile.ReadError: + pass + + try: + with zipfile.ZipFile(from_path, "r") as zfile: + logging.info("Opened zip file %s.", from_path) + files = zfile.namelist() + for file_ in files: + file_path = os.path.join(to_path, file_) + if os.path.exists(file_path): + logging.info("%s already extracted.", file_path) + if not overwrite: + continue + zfile.extract(file_, to_path) + return files + except zipfile.BadZipFile: + pass + + raise NotImplementedError(" > [!] only supports tar.gz, tgz, and zip achives.") + + +def download_kaggle_dataset(dataset_path: str, dataset_name: str, output_path: str): + """Download dataset from kaggle. + Args: + dataset_path (str): + This the kaggle link to the dataset. for example vctk is 'mfekadu/english-multispeaker-corpus-for-voice-cloning' + dataset_name (str): Name of the folder the dataset will be saved in. + output_path (str): Path of the location you want the dataset folder to be saved to. + """ + data_path = os.path.join(output_path, dataset_name) + try: + import kaggle # pylint: disable=import-outside-toplevel + + kaggle.api.authenticate() + print(f"""\nDownloading {dataset_name}...""") + kaggle.api.dataset_download_files(dataset_path, path=data_path, unzip=True) + except OSError: + print( + f"""[!] in order to download kaggle datasets, you need to have a kaggle api token stored in your {os.path.join(expanduser('~'), '.kaggle/kaggle.json')}""" + ) diff --git a/Indic-TTS/TTS/TTS/utils/downloaders.py b/Indic-TTS/TTS/TTS/utils/downloaders.py new file mode 100644 index 0000000000000000000000000000000000000000..104dc7b94e17b1d7f828103d2396d6c5115b628a --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/downloaders.py @@ -0,0 +1,126 @@ +import os +from typing import Optional + +from TTS.utils.download import download_kaggle_dataset, download_url, extract_archive + + +def download_ljspeech(path: str): + """Download and extract LJSpeech dataset + + Args: + path (str): path to the directory where the dataset will be stored. + """ + os.makedirs(path, exist_ok=True) + url = "https://data.keithito.com/data/speech/LJSpeech-1.1.tar.bz2" + download_url(url, path) + basename = os.path.basename(url) + archive = os.path.join(path, basename) + print(" > Extracting archive file...") + extract_archive(archive) + + +def download_vctk(path: str, use_kaggle: Optional[bool] = False): + """Download and extract VCTK dataset. + + Args: + path (str): path to the directory where the dataset will be stored. + + use_kaggle (bool, optional): Downloads vctk dataset from kaggle. Is generally faster. Defaults to False. + """ + if use_kaggle: + download_kaggle_dataset("mfekadu/english-multispeaker-corpus-for-voice-cloning", "VCTK", path) + else: + os.makedirs(path, exist_ok=True) + url = "https://datashare.ed.ac.uk/bitstream/handle/10283/3443/VCTK-Corpus-0.92.zip" + download_url(url, path) + basename = os.path.basename(url) + archive = os.path.join(path, basename) + print(" > Extracting archive file...") + extract_archive(archive) + + +def download_tweb(path: str): + """Download and extract Tweb dataset + + Args: + path (str): Path to the directory where the dataset will be stored. + """ + download_kaggle_dataset("bryanpark/the-world-english-bible-speech-dataset", "TWEB", path) + + +def download_libri_tts(path: str, subset: Optional[str] = "all"): + """Download and extract libri tts dataset. + + Args: + path (str): Path to the directory where the dataset will be stored. + + subset (str, optional): Name of the subset to download. If you only want to download a certain + portion specify it here. Defaults to 'all'. + """ + + subset_dict = { + "libri-tts-clean-100": "http://www.openslr.org/resources/60/train-clean-100.tar.gz", + "libri-tts-clean-360": "http://www.openslr.org/resources/60/train-clean-360.tar.gz", + "libri-tts-other-500": "http://www.openslr.org/resources/60/train-other-500.tar.gz", + "libri-tts-dev-clean": "http://www.openslr.org/resources/60/dev-clean.tar.gz", + "libri-tts-dev-other": "http://www.openslr.org/resources/60/dev-other.tar.gz", + "libri-tts-test-clean": "http://www.openslr.org/resources/60/test-clean.tar.gz", + "libri-tts-test-other": "http://www.openslr.org/resources/60/test-other.tar.gz", + } + + os.makedirs(path, exist_ok=True) + if subset == "all": + for sub, val in subset_dict.items(): + print(f" > Downloading {sub}...") + download_url(val, path) + basename = os.path.basename(val) + archive = os.path.join(path, basename) + print(" > Extracting archive file...") + extract_archive(archive) + print(" > All subsets downloaded") + else: + url = subset_dict[subset] + download_url(url, path) + basename = os.path.basename(url) + archive = os.path.join(path, basename) + print(" > Extracting archive file...") + extract_archive(archive) + + +def download_thorsten_de(path: str): + """Download and extract Thorsten german male voice dataset. + + Args: + path (str): Path to the directory where the dataset will be stored. + """ + os.makedirs(path, exist_ok=True) + url = "https://www.openslr.org/resources/95/thorsten-de_v02.tgz" + download_url(url, path) + basename = os.path.basename(url) + archive = os.path.join(path, basename) + print(" > Extracting archive file...") + extract_archive(archive) + + +def download_mailabs(path: str, language: str = "english"): + """Download and extract Mailabs dataset. + + Args: + path (str): Path to the directory where the dataset will be stored. + + language (str): Language subset to download. Defaults to english. + """ + language_dict = { + "english": "https://data.solak.de/data/Training/stt_tts/en_US.tgz", + "german": "https://data.solak.de/data/Training/stt_tts/de_DE.tgz", + "french": "https://data.solak.de/data/Training/stt_tts/fr_FR.tgz", + "italian": "https://data.solak.de/data/Training/stt_tts/it_IT.tgz", + "spanish": "https://data.solak.de/data/Training/stt_tts/es_ES.tgz", + } + os.makedirs(path, exist_ok=True) + url = language_dict[language] + download_url(url, path) + basename = os.path.basename(url) + archive = os.path.join(path, basename) + print(" > Extracting archive file...") + extract_archive(archive) diff --git a/Indic-TTS/TTS/TTS/utils/generic_utils.py b/Indic-TTS/TTS/TTS/utils/generic_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..b685210c1179b8adfc1ed57c9a5089aff07f52ae --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/generic_utils.py @@ -0,0 +1,211 @@ +# -*- coding: utf-8 -*- +import datetime +import importlib +import os +import re +import subprocess +import sys +from pathlib import Path +from typing import Dict + +import fsspec +import torch + + +def to_cuda(x: torch.Tensor) -> torch.Tensor: + if x is None: + return None + if torch.is_tensor(x): + x = x.contiguous() + if torch.cuda.is_available(): + x = x.cuda(non_blocking=True) + return x + + +def get_cuda(): + use_cuda = torch.cuda.is_available() + device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + return use_cuda, device + + +def get_git_branch(): + try: + out = subprocess.check_output(["git", "branch"]).decode("utf8") + current = next(line for line in out.split("\n") if line.startswith("*")) + current.replace("* ", "") + except subprocess.CalledProcessError: + current = "inside_docker" + except FileNotFoundError: + current = "unknown" + return current + + +def get_commit_hash(): + """https://stackoverflow.com/questions/14989858/get-the-current-git-hash-in-a-python-script""" + # try: + # subprocess.check_output(['git', 'diff-index', '--quiet', + # 'HEAD']) # Verify client is clean + # except: + # raise RuntimeError( + # " !! Commit before training to get the commit hash.") + try: + commit = subprocess.check_output(["git", "rev-parse", "--short", "HEAD"]).decode().strip() + # Not copying .git folder into docker container + except (subprocess.CalledProcessError, FileNotFoundError): + commit = "0000000" + return commit + + +def get_experiment_folder_path(root_path, model_name): + """Get an experiment folder path with the current date and time""" + date_str = datetime.datetime.now().strftime("%B-%d-%Y_%I+%M%p") + commit_hash = get_commit_hash() + output_folder = os.path.join(root_path, model_name + "-" + date_str + "-" + commit_hash) + return output_folder + + +def remove_experiment_folder(experiment_path): + """Check folder if there is a checkpoint, otherwise remove the folder""" + fs = fsspec.get_mapper(experiment_path).fs + checkpoint_files = fs.glob(experiment_path + "/*.pth") + if not checkpoint_files: + if fs.exists(experiment_path): + fs.rm(experiment_path, recursive=True) + print(" ! Run is removed from {}".format(experiment_path)) + else: + print(" ! Run is kept in {}".format(experiment_path)) + + +def count_parameters(model): + r"""Count number of trainable parameters in a network""" + return sum(p.numel() for p in model.parameters() if p.requires_grad) + + +def to_camel(text): + text = text.capitalize() + text = re.sub(r"(?!^)_([a-zA-Z])", lambda m: m.group(1).upper(), text) + text = text.replace("Tts", "TTS") + return text + + +def find_module(module_path: str, module_name: str) -> object: + module_name = module_name.lower() + module = importlib.import_module(module_path + "." + module_name) + class_name = to_camel(module_name) + return getattr(module, class_name) + + +def import_class(module_path: str) -> object: + """Import a class from a module path. + + Args: + module_path (str): The module path of the class. + + Returns: + object: The imported class. + """ + class_name = module_path.split(".")[-1] + module_path = ".".join(module_path.split(".")[:-1]) + module = importlib.import_module(module_path) + return getattr(module, class_name) + + +def get_import_path(obj: object) -> str: + """Get the import path of a class. + + Args: + obj (object): The class object. + + Returns: + str: The import path of the class. + """ + return ".".join([type(obj).__module__, type(obj).__name__]) + + +def get_user_data_dir(appname): + if sys.platform == "win32": + import winreg # pylint: disable=import-outside-toplevel + + key = winreg.OpenKey( + winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" + ) + dir_, _ = winreg.QueryValueEx(key, "Local AppData") + ans = Path(dir_).resolve(strict=False) + elif sys.platform == "darwin": + ans = Path("~/Library/Application Support/").expanduser() + else: + ans = Path.home().joinpath(".local/share") + return ans.joinpath(appname) + + +def set_init_dict(model_dict, checkpoint_state, c): + # Partial initialization: if there is a mismatch with new and old layer, it is skipped. + for k, v in checkpoint_state.items(): + if k not in model_dict: + print(" | > Layer missing in the model definition: {}".format(k)) + # 1. filter out unnecessary keys + pretrained_dict = {k: v for k, v in checkpoint_state.items() if k in model_dict} + # 2. filter out different size layers + pretrained_dict = {k: v for k, v in pretrained_dict.items() if v.numel() == model_dict[k].numel()} + # 3. skip reinit layers + if c.has("reinit_layers") and c.reinit_layers is not None: + for reinit_layer_name in c.reinit_layers: + pretrained_dict = {k: v for k, v in pretrained_dict.items() if reinit_layer_name not in k} + # 4. overwrite entries in the existing state dict + model_dict.update(pretrained_dict) + print(" | > {} / {} layers are restored.".format(len(pretrained_dict), len(model_dict))) + return model_dict + + +def format_aux_input(def_args: Dict, kwargs: Dict) -> Dict: + """Format kwargs to hande auxilary inputs to models. + + Args: + def_args (Dict): A dictionary of argument names and their default values if not defined in `kwargs`. + kwargs (Dict): A `dict` or `kwargs` that includes auxilary inputs to the model. + + Returns: + Dict: arguments with formatted auxilary inputs. + """ + for name in def_args: + if name not in kwargs: + kwargs[def_args[name]] = None + return kwargs + + +class KeepAverage: + def __init__(self): + self.avg_values = {} + self.iters = {} + + def __getitem__(self, key): + return self.avg_values[key] + + def items(self): + return self.avg_values.items() + + def add_value(self, name, init_val=0, init_iter=0): + self.avg_values[name] = init_val + self.iters[name] = init_iter + + def update_value(self, name, value, weighted_avg=False): + if name not in self.avg_values: + # add value if not exist before + self.add_value(name, init_val=value) + else: + # else update existing value + if weighted_avg: + self.avg_values[name] = 0.99 * self.avg_values[name] + 0.01 * value + self.iters[name] += 1 + else: + self.avg_values[name] = self.avg_values[name] * self.iters[name] + value + self.iters[name] += 1 + self.avg_values[name] /= self.iters[name] + + def add_values(self, name_dict): + for key, value in name_dict.items(): + self.add_value(key, init_val=value) + + def update_values(self, value_dict): + for key, value in value_dict.items(): + self.update_value(key, value) diff --git a/Indic-TTS/TTS/TTS/utils/io.py b/Indic-TTS/TTS/TTS/utils/io.py new file mode 100644 index 0000000000000000000000000000000000000000..0b32f77ab281073c399cc0aabe86670ff8f90969 --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/io.py @@ -0,0 +1,201 @@ +import datetime +import json +import os +import pickle as pickle_tts +import shutil +from typing import Any, Callable, Dict, Union + +import fsspec +import torch +from coqpit import Coqpit + + +class RenamingUnpickler(pickle_tts.Unpickler): + """Overload default pickler to solve module renaming problem""" + + def find_class(self, module, name): + return super().find_class(module.replace("mozilla_voice_tts", "TTS"), name) + + +class AttrDict(dict): + """A custom dict which converts dict keys + to class attributes""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.__dict__ = self + + +def copy_model_files(config: Coqpit, out_path, new_fields=None): + """Copy config.json and other model files to training folder and add + new fields. + + Args: + config (Coqpit): Coqpit config defining the training run. + out_path (str): output path to copy the file. + new_fields (dict): new fileds to be added or edited + in the config file. + """ + copy_config_path = os.path.join(out_path, "config.json") + # add extra information fields + if new_fields: + config.update(new_fields, allow_new=True) + # TODO: Revert to config.save_json() once Coqpit supports arbitrary paths. + with fsspec.open(copy_config_path, "w", encoding="utf8") as f: + json.dump(config.to_dict(), f, indent=4) + + # copy model stats file if available + if config.audio.stats_path is not None: + copy_stats_path = os.path.join(out_path, "scale_stats.npy") + filesystem = fsspec.get_mapper(copy_stats_path).fs + if not filesystem.exists(copy_stats_path): + with fsspec.open(config.audio.stats_path, "rb") as source_file: + with fsspec.open(copy_stats_path, "wb") as target_file: + shutil.copyfileobj(source_file, target_file) + + +def load_fsspec( + path: str, + map_location: Union[str, Callable, torch.device, Dict[Union[str, torch.device], Union[str, torch.device]]] = None, + **kwargs, +) -> Any: + """Like torch.load but can load from other locations (e.g. s3:// , gs://). + + Args: + path: Any path or url supported by fsspec. + map_location: torch.device or str. + **kwargs: Keyword arguments forwarded to torch.load. + + Returns: + Object stored in path. + """ + with fsspec.open(path, "rb") as f: + return torch.load(f, map_location=map_location, **kwargs) + + +def load_checkpoint(model, checkpoint_path, use_cuda=False, eval=False): # pylint: disable=redefined-builtin + try: + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + except ModuleNotFoundError: + pickle_tts.Unpickler = RenamingUnpickler + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu"), pickle_module=pickle_tts) + model.load_state_dict(state["model"]) + if use_cuda: + model.cuda() + if eval: + model.eval() + return model, state + + +def save_fsspec(state: Any, path: str, **kwargs): + """Like torch.save but can save to other locations (e.g. s3:// , gs://). + + Args: + state: State object to save + path: Any path or url supported by fsspec. + **kwargs: Keyword arguments forwarded to torch.save. + """ + with fsspec.open(path, "wb") as f: + torch.save(state, f, **kwargs) + + +def save_model(config, model, optimizer, scaler, current_step, epoch, output_path, **kwargs): + if hasattr(model, "module"): + model_state = model.module.state_dict() + else: + model_state = model.state_dict() + if isinstance(optimizer, list): + optimizer_state = [optim.state_dict() for optim in optimizer] + elif optimizer.__class__.__name__ == "CapacitronOptimizer": + optimizer_state = [optimizer.primary_optimizer.state_dict(), optimizer.secondary_optimizer.state_dict()] + else: + optimizer_state = optimizer.state_dict() if optimizer is not None else None + + if isinstance(scaler, list): + scaler_state = [s.state_dict() for s in scaler] + else: + scaler_state = scaler.state_dict() if scaler is not None else None + + if isinstance(config, Coqpit): + config = config.to_dict() + + state = { + "config": config, + "model": model_state, + "optimizer": optimizer_state, + "scaler": scaler_state, + "step": current_step, + "epoch": epoch, + "date": datetime.date.today().strftime("%B %d, %Y"), + } + state.update(kwargs) + save_fsspec(state, output_path) + + +def save_checkpoint( + config, + model, + optimizer, + scaler, + current_step, + epoch, + output_folder, + **kwargs, +): + file_name = "checkpoint_{}.pth".format(current_step) + checkpoint_path = os.path.join(output_folder, file_name) + print("\n > CHECKPOINT : {}".format(checkpoint_path)) + save_model( + config, + model, + optimizer, + scaler, + current_step, + epoch, + checkpoint_path, + **kwargs, + ) + + +def save_best_model( + current_loss, + best_loss, + config, + model, + optimizer, + scaler, + current_step, + epoch, + out_path, + keep_all_best=False, + keep_after=10000, + **kwargs, +): + if current_loss < best_loss: + best_model_name = f"best_model_{current_step}.pth" + checkpoint_path = os.path.join(out_path, best_model_name) + print(" > BEST MODEL : {}".format(checkpoint_path)) + save_model( + config, + model, + optimizer, + scaler, + current_step, + epoch, + checkpoint_path, + model_loss=current_loss, + **kwargs, + ) + fs = fsspec.get_mapper(out_path).fs + # only delete previous if current is saved successfully + if not keep_all_best or (current_step < keep_after): + model_names = fs.glob(os.path.join(out_path, "best_model*.pth")) + for model_name in model_names: + if os.path.basename(model_name) != best_model_name: + fs.rm(model_name) + # create a shortcut which always points to the currently best model + shortcut_name = "best_model.pth" + shortcut_path = os.path.join(out_path, shortcut_name) + fs.copy(checkpoint_path, shortcut_path) + best_loss = current_loss + return best_loss diff --git a/Indic-TTS/TTS/TTS/utils/manage.py b/Indic-TTS/TTS/TTS/utils/manage.py new file mode 100644 index 0000000000000000000000000000000000000000..281e5af02a65380d6882ca315e2bf1b72b1845a6 --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/manage.py @@ -0,0 +1,363 @@ +import io +import json +import os +import zipfile +from pathlib import Path +from shutil import copyfile, rmtree +from typing import Dict, Tuple + +import requests + +from TTS.config import load_config +from TTS.utils.generic_utils import get_user_data_dir + +LICENSE_URLS = { + "cc by-nc-nd 4.0": "https://creativecommons.org/licenses/by-nc-nd/4.0/", + "mpl": "https://www.mozilla.org/en-US/MPL/2.0/", + "mpl2": "https://www.mozilla.org/en-US/MPL/2.0/", + "mpl 2.0": "https://www.mozilla.org/en-US/MPL/2.0/", + "mit": "https://choosealicense.com/licenses/mit/", + "apache 2.0": "https://choosealicense.com/licenses/apache-2.0/", + "apache2": "https://choosealicense.com/licenses/apache-2.0/", + "cc-by-sa 4.0": "https://creativecommons.org/licenses/by-sa/4.0/", +} + + +class ModelManager(object): + """Manage TTS models defined in .models.json. + It provides an interface to list and download + models defines in '.model.json' + + Models are downloaded under '.TTS' folder in the user's + home path. + + Args: + models_file (str): path to .model.json + """ + + def __init__(self, models_file=None, output_prefix=None): + super().__init__() + if output_prefix is None: + self.output_prefix = get_user_data_dir("tts") + else: + self.output_prefix = os.path.join(output_prefix, "tts") + self.models_dict = None + if models_file is not None: + self.read_models_file(models_file) + else: + # try the default location + path = Path(__file__).parent / "../.models.json" + self.read_models_file(path) + + def read_models_file(self, file_path): + """Read .models.json as a dict + + Args: + file_path (str): path to .models.json. + """ + with open(file_path, "r", encoding="utf-8") as json_file: + self.models_dict = json.load(json_file) + + def _list_models(self, model_type, model_count=0): + model_list = [] + for lang in self.models_dict[model_type]: + for dataset in self.models_dict[model_type][lang]: + for model in self.models_dict[model_type][lang][dataset]: + model_full_name = f"{model_type}--{lang}--{dataset}--{model}" + output_path = os.path.join(self.output_prefix, model_full_name) + if os.path.exists(output_path): + print(f" {model_count}: {model_type}/{lang}/{dataset}/{model} [already downloaded]") + else: + print(f" {model_count}: {model_type}/{lang}/{dataset}/{model}") + model_list.append(f"{model_type}/{lang}/{dataset}/{model}") + model_count += 1 + return model_list + + def _list_for_model_type(self, model_type): + print(" Name format: language/dataset/model") + models_name_list = [] + model_count = 1 + model_type = "tts_models" + models_name_list.extend(self._list_models(model_type, model_count)) + return [name.replace(model_type + "/", "") for name in models_name_list] + + def list_models(self): + print(" Name format: type/language/dataset/model") + models_name_list = [] + model_count = 1 + for model_type in self.models_dict: + model_list = self._list_models(model_type, model_count) + models_name_list.extend(model_list) + return models_name_list + + def model_info_by_idx(self, model_query): + """Print the description of the model from .models.json file using model_idx + + Args: + model_query (str): / + """ + model_name_list = [] + model_type, model_query_idx = model_query.split("/") + try: + model_query_idx = int(model_query_idx) + if model_query_idx <= 0: + print("> model_query_idx should be a positive integer!") + return + except: + print("> model_query_idx should be an integer!") + return + model_count = 0 + if model_type in self.models_dict: + for lang in self.models_dict[model_type]: + for dataset in self.models_dict[model_type][lang]: + for model in self.models_dict[model_type][lang][dataset]: + model_name_list.append(f"{model_type}/{lang}/{dataset}/{model}") + model_count += 1 + else: + print(f"> model_type {model_type} does not exist in the list.") + return + if model_query_idx > model_count: + print(f"model query idx exceeds the number of available models [{model_count}] ") + else: + model_type, lang, dataset, model = model_name_list[model_query_idx - 1].split("/") + print(f"> model type : {model_type}") + print(f"> language supported : {lang}") + print(f"> dataset used : {dataset}") + print(f"> model name : {model}") + if "description" in self.models_dict[model_type][lang][dataset][model]: + print(f"> description : {self.models_dict[model_type][lang][dataset][model]['description']}") + else: + print("> description : coming soon") + if "default_vocoder" in self.models_dict[model_type][lang][dataset][model]: + print(f"> default_vocoder : {self.models_dict[model_type][lang][dataset][model]['default_vocoder']}") + + def model_info_by_full_name(self, model_query_name): + """Print the description of the model from .models.json file using model_full_name + + Args: + model_query_name (str): Format is /// + """ + model_type, lang, dataset, model = model_query_name.split("/") + if model_type in self.models_dict: + if lang in self.models_dict[model_type]: + if dataset in self.models_dict[model_type][lang]: + if model in self.models_dict[model_type][lang][dataset]: + print(f"> model type : {model_type}") + print(f"> language supported : {lang}") + print(f"> dataset used : {dataset}") + print(f"> model name : {model}") + if "description" in self.models_dict[model_type][lang][dataset][model]: + print( + f"> description : {self.models_dict[model_type][lang][dataset][model]['description']}" + ) + else: + print("> description : coming soon") + if "default_vocoder" in self.models_dict[model_type][lang][dataset][model]: + print( + f"> default_vocoder : {self.models_dict[model_type][lang][dataset][model]['default_vocoder']}" + ) + else: + print(f"> model {model} does not exist for {model_type}/{lang}/{dataset}.") + else: + print(f"> dataset {dataset} does not exist for {model_type}/{lang}.") + else: + print(f"> lang {lang} does not exist for {model_type}.") + else: + print(f"> model_type {model_type} does not exist in the list.") + + def list_tts_models(self): + """Print all `TTS` models and return a list of model names + + Format is `language/dataset/model` + """ + return self._list_for_model_type("tts_models") + + def list_vocoder_models(self): + """Print all the `vocoder` models and return a list of model names + + Format is `language/dataset/model` + """ + return self._list_for_model_type("vocoder_models") + + def list_langs(self): + """Print all the available languages""" + print(" Name format: type/language") + for model_type in self.models_dict: + for lang in self.models_dict[model_type]: + print(f" >: {model_type}/{lang} ") + + def list_datasets(self): + """Print all the datasets""" + print(" Name format: type/language/dataset") + for model_type in self.models_dict: + for lang in self.models_dict[model_type]: + for dataset in self.models_dict[model_type][lang]: + print(f" >: {model_type}/{lang}/{dataset}") + + @staticmethod + def print_model_license(model_item: Dict): + """Print the license of a model + + Args: + model_item (dict): model item in the models.json + """ + if "license" in model_item and model_item["license"].strip() != "": + print(f" > Model's license - {model_item['license']}") + if model_item["license"].lower() in LICENSE_URLS: + print(f" > Check {LICENSE_URLS[model_item['license'].lower()]} for more info.") + else: + print(" > Check https://opensource.org/licenses for more info.") + else: + print(" > Model's license - No license information available") + + def download_model(self, model_name): + """Download model files given the full model name. + Model name is in the format + 'type/language/dataset/model' + e.g. 'tts_model/en/ljspeech/tacotron' + + Every model must have the following files: + - *.pth : pytorch model checkpoint file. + - config.json : model config file. + - scale_stats.npy (if exist): scale values for preprocessing. + + Args: + model_name (str): model name as explained above. + """ + # fetch model info from the dict + model_type, lang, dataset, model = model_name.split("/") + model_full_name = f"{model_type}--{lang}--{dataset}--{model}" + model_item = self.models_dict[model_type][lang][dataset][model] + # set the model specific output path + output_path = os.path.join(self.output_prefix, model_full_name) + if os.path.exists(output_path): + print(f" > {model_name} is already downloaded.") + else: + os.makedirs(output_path, exist_ok=True) + print(f" > Downloading model to {output_path}") + # download from github release + self._download_zip_file(model_item["github_rls_url"], output_path) + self.print_model_license(model_item=model_item) + # find downloaded files + output_model_path, output_config_path = self._find_files(output_path) + # update paths in the config.json + self._update_paths(output_path, output_config_path) + return output_model_path, output_config_path, model_item + + @staticmethod + def _find_files(output_path: str) -> Tuple[str, str]: + """Find the model and config files in the output path + + Args: + output_path (str): path to the model files + + Returns: + Tuple[str, str]: path to the model file and config file + """ + model_file = None + config_file = None + for file_name in os.listdir(output_path): + if file_name in ["model_file.pth", "model_file.pth.tar", "model.pth"]: + model_file = os.path.join(output_path, file_name) + elif file_name == "config.json": + config_file = os.path.join(output_path, file_name) + if model_file is None: + raise ValueError(" [!] Model file not found in the output path") + if config_file is None: + raise ValueError(" [!] Config file not found in the output path") + return model_file, config_file + + @staticmethod + def _find_speaker_encoder(output_path: str) -> str: + """Find the speaker encoder file in the output path + + Args: + output_path (str): path to the model files + + Returns: + str: path to the speaker encoder file + """ + speaker_encoder_file = None + for file_name in os.listdir(output_path): + if file_name in ["model_se.pth", "model_se.pth.tar"]: + speaker_encoder_file = os.path.join(output_path, file_name) + return speaker_encoder_file + + def _update_paths(self, output_path: str, config_path: str) -> None: + """Update paths for certain files in config.json after download. + + Args: + output_path (str): local path the model is downloaded to. + config_path (str): local config.json path. + """ + output_stats_path = os.path.join(output_path, "scale_stats.npy") + output_d_vector_file_path = os.path.join(output_path, "speakers.json") + output_speaker_ids_file_path = os.path.join(output_path, "speaker_ids.json") + speaker_encoder_config_path = os.path.join(output_path, "config_se.json") + speaker_encoder_model_path = self._find_speaker_encoder(output_path) + + # update the scale_path.npy file path in the model config.json + self._update_path("audio.stats_path", output_stats_path, config_path) + + # update the speakers.json file path in the model config.json to the current path + self._update_path("d_vector_file", output_d_vector_file_path, config_path) + self._update_path("model_args.d_vector_file", output_d_vector_file_path, config_path) + + # update the speaker_ids.json file path in the model config.json to the current path + self._update_path("speakers_file", output_speaker_ids_file_path, config_path) + self._update_path("model_args.speakers_file", output_speaker_ids_file_path, config_path) + + # update the speaker_encoder file path in the model config.json to the current path + self._update_path("speaker_encoder_model_path", speaker_encoder_model_path, config_path) + self._update_path("model_args.speaker_encoder_model_path", speaker_encoder_model_path, config_path) + self._update_path("speaker_encoder_config_path", speaker_encoder_config_path, config_path) + self._update_path("model_args.speaker_encoder_config_path", speaker_encoder_config_path, config_path) + + @staticmethod + def _update_path(field_name, new_path, config_path): + """Update the path in the model config.json for the current environment after download""" + if new_path and os.path.exists(new_path): + config = load_config(config_path) + field_names = field_name.split(".") + if len(field_names) > 1: + # field name points to a sub-level field + sub_conf = config + for fd in field_names[:-1]: + if fd in sub_conf: + sub_conf = sub_conf[fd] + else: + return + sub_conf[field_names[-1]] = new_path + else: + # field name points to a top-level field + config[field_name] = new_path + config.save_json(config_path) + + @staticmethod + def _download_zip_file(file_url, output_folder): + """Download the github releases""" + # download the file + r = requests.get(file_url) + # extract the file + try: + with zipfile.ZipFile(io.BytesIO(r.content)) as z: + z.extractall(output_folder) + except zipfile.BadZipFile: + print(f" > Error: Bad zip file - {file_url}") + raise zipfile.BadZipFile # pylint: disable=raise-missing-from + # move the files to the outer path + for file_path in z.namelist()[1:]: + src_path = os.path.join(output_folder, file_path) + dst_path = os.path.join(output_folder, os.path.basename(file_path)) + copyfile(src_path, dst_path) + # remove the extracted folder + rmtree(os.path.join(output_folder, z.namelist()[0])) + + @staticmethod + def _check_dict_key(my_dict, key): + if key in my_dict.keys() and my_dict[key] is not None: + if not isinstance(key, str): + return True + if isinstance(key, str) and len(my_dict[key]) > 0: + return True + return False diff --git a/Indic-TTS/TTS/TTS/utils/radam.py b/Indic-TTS/TTS/TTS/utils/radam.py new file mode 100644 index 0000000000000000000000000000000000000000..73426e6433bc03dfa4d0a2e2eca43d5ed4e919e7 --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/radam.py @@ -0,0 +1,107 @@ +# modified from https://github.com/LiyuanLucasLiu/RAdam + +import math + +import torch +from torch.optim.optimizer import Optimizer + + +class RAdam(Optimizer): + def __init__(self, params, lr=1e-3, betas=(0.9, 0.999), eps=1e-8, weight_decay=0, degenerated_to_sgd=True): + if lr < 0.0: + raise ValueError("Invalid learning rate: {}".format(lr)) + if eps < 0.0: + raise ValueError("Invalid epsilon value: {}".format(eps)) + if not 0.0 <= betas[0] < 1.0: + raise ValueError("Invalid beta parameter at index 0: {}".format(betas[0])) + if not 0.0 <= betas[1] < 1.0: + raise ValueError("Invalid beta parameter at index 1: {}".format(betas[1])) + + self.degenerated_to_sgd = degenerated_to_sgd + if isinstance(params, (list, tuple)) and len(params) > 0 and isinstance(params[0], dict): + for param in params: + if "betas" in param and (param["betas"][0] != betas[0] or param["betas"][1] != betas[1]): + param["buffer"] = [[None, None, None] for _ in range(10)] + defaults = dict( + lr=lr, betas=betas, eps=eps, weight_decay=weight_decay, buffer=[[None, None, None] for _ in range(10)] + ) + super().__init__(params, defaults) + + def __setstate__(self, state): # pylint: disable=useless-super-delegation + super().__setstate__(state) + + def step(self, closure=None): + + loss = None + if closure is not None: + loss = closure() + + for group in self.param_groups: + + for p in group["params"]: + if p.grad is None: + continue + grad = p.grad.data.float() + if grad.is_sparse: + raise RuntimeError("RAdam does not support sparse gradients") + + p_data_fp32 = p.data.float() + + state = self.state[p] + + if len(state) == 0: + state["step"] = 0 + state["exp_avg"] = torch.zeros_like(p_data_fp32) + state["exp_avg_sq"] = torch.zeros_like(p_data_fp32) + else: + state["exp_avg"] = state["exp_avg"].type_as(p_data_fp32) + state["exp_avg_sq"] = state["exp_avg_sq"].type_as(p_data_fp32) + + exp_avg, exp_avg_sq = state["exp_avg"], state["exp_avg_sq"] + beta1, beta2 = group["betas"] + + exp_avg_sq.mul_(beta2).addcmul_(grad, grad, value=1 - beta2) + exp_avg.mul_(beta1).add_(grad, alpha=1 - beta1) + + state["step"] += 1 + buffered = group["buffer"][int(state["step"] % 10)] + if state["step"] == buffered[0]: + N_sma, step_size = buffered[1], buffered[2] + else: + buffered[0] = state["step"] + beta2_t = beta2 ** state["step"] + N_sma_max = 2 / (1 - beta2) - 1 + N_sma = N_sma_max - 2 * state["step"] * beta2_t / (1 - beta2_t) + buffered[1] = N_sma + + # more conservative since it's an approximated value + if N_sma >= 5: + step_size = math.sqrt( + (1 - beta2_t) + * (N_sma - 4) + / (N_sma_max - 4) + * (N_sma - 2) + / N_sma + * N_sma_max + / (N_sma_max - 2) + ) / (1 - beta1 ** state["step"]) + elif self.degenerated_to_sgd: + step_size = 1.0 / (1 - beta1 ** state["step"]) + else: + step_size = -1 + buffered[2] = step_size + + # more conservative since it's an approximated value + if N_sma >= 5: + if group["weight_decay"] != 0: + p_data_fp32.add_(p_data_fp32, alpha=-group["weight_decay"] * group["lr"]) + denom = exp_avg_sq.sqrt().add_(group["eps"]) + p_data_fp32.addcdiv_(exp_avg, denom, value=-step_size * group["lr"]) + p.data.copy_(p_data_fp32) + elif step_size > 0: + if group["weight_decay"] != 0: + p_data_fp32.add_(p_data_fp32, alpha=-group["weight_decay"] * group["lr"]) + p_data_fp32.add_(exp_avg, alpha=-step_size * group["lr"]) + p.data.copy_(p_data_fp32) + + return loss diff --git a/Indic-TTS/TTS/TTS/utils/synthesizer.py b/Indic-TTS/TTS/TTS/utils/synthesizer.py new file mode 100644 index 0000000000000000000000000000000000000000..7c065eaf12dedbe02b2e8f7ead9e55d020ca2d75 --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/synthesizer.py @@ -0,0 +1,427 @@ +import time +from typing import List + +import numpy as np +import pysbd +import torch + +from TTS.config import load_config +from TTS.encoder.models.resnet import ResNetSpeakerEncoder +from TTS.tts.configs.shared_configs import BaseAudioConfig +from TTS.tts.models import setup_model as setup_tts_model + +# pylint: disable=unused-wildcard-import +# pylint: disable=wildcard-import +from TTS.tts.utils.synthesis import synthesis, transfer_voice, trim_silence +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.models import setup_model as setup_vocoder_model +from TTS.vocoder.utils.generic_utils import interpolate_vocoder_input + + +class Synthesizer(object): + def __init__( + self, + tts_checkpoint: str, + tts_config_path: str, + tts_speakers_file: str = "", + tts_languages_file: str = "", + vocoder_checkpoint: str = "", + vocoder_config: str = "", + encoder_checkpoint: str = "", + encoder_config: str = "", + use_cuda: bool = False, + ) -> None: + """General ๐Ÿธ TTS interface for inference. It takes a tts and a vocoder + model and synthesize speech from the provided text. + + The text is divided into a list of sentences using `pysbd` and synthesize + speech on each sentence separately. + + If you have certain special characters in your text, you need to handle + them before providing the text to Synthesizer. + + TODO: set the segmenter based on the source language + + Args: + tts_checkpoint (str): path to the tts model file. + tts_config_path (str): path to the tts config file. + vocoder_checkpoint (str, optional): path to the vocoder model file. Defaults to None. + vocoder_config (str, optional): path to the vocoder config file. Defaults to None. + encoder_checkpoint (str, optional): path to the speaker encoder model file. Defaults to `""`, + encoder_config (str, optional): path to the speaker encoder config file. Defaults to `""`, + use_cuda (bool, optional): enable/disable cuda. Defaults to False. + """ + self.tts_checkpoint = tts_checkpoint + self.tts_config_path = tts_config_path + self.tts_speakers_file = tts_speakers_file + self.tts_languages_file = tts_languages_file + self.vocoder_checkpoint = vocoder_checkpoint + self.vocoder_config = vocoder_config + self.encoder_checkpoint = encoder_checkpoint + self.encoder_config = encoder_config + self.use_cuda = use_cuda + + self.tts_model = None + self.vocoder_model = None + self.speaker_manager = None + self.num_speakers = 0 + self.tts_speakers = {} + self.language_manager = None + self.num_languages = 0 + self.tts_languages = {} + self.d_vector_dim = 0 + self.seg = self._get_segmenter("en") + self.use_cuda = use_cuda + + if self.use_cuda: + assert torch.cuda.is_available(), "CUDA is not availabe on this machine." + self._load_tts(tts_checkpoint, tts_config_path, use_cuda) + self.output_sample_rate = self.tts_config.audio["sample_rate"] + if vocoder_checkpoint: + self._load_vocoder(vocoder_checkpoint, vocoder_config, use_cuda) + self.output_sample_rate = self.vocoder_config.audio["sample_rate"] + + @staticmethod + def _get_segmenter(lang: str): + """get the sentence segmenter for the given language. + + Args: + lang (str): target language code. + + Returns: + [type]: [description] + """ + return pysbd.Segmenter(language=lang, clean=True) + + def _load_tts(self, tts_checkpoint: str, tts_config_path: str, use_cuda: bool) -> None: + """Load the TTS model. + + 1. Load the model config. + 2. Init the model from the config. + 3. Load the model weights. + 4. Move the model to the GPU if CUDA is enabled. + 5. Init the speaker manager in the model. + + Args: + tts_checkpoint (str): path to the model checkpoint. + tts_config_path (str): path to the model config file. + use_cuda (bool): enable/disable CUDA use. + """ + # pylint: disable=global-statement + self.tts_config = load_config(tts_config_path) + if self.tts_config["use_phonemes"] and self.tts_config["phonemizer"] is None: + raise ValueError("Phonemizer is not defined in the TTS config.") + + self.tts_model = setup_tts_model(config=self.tts_config) + + if not self.encoder_checkpoint: + self._set_speaker_encoder_paths_from_tts_config() + + self.tts_model.load_checkpoint(self.tts_config, tts_checkpoint, eval=True) + if use_cuda: + self.tts_model.cuda() + + self.use_zero_shot_speaker_encoder = False + if self.encoder_checkpoint and self.encoder_config and hasattr(self.tts_model, "speaker_manager"): + self.tts_model.speaker_manager.init_encoder(self.encoder_checkpoint, self.encoder_config, use_cuda) + elif self.encoder_checkpoint and self.encoder_config is None: + self.use_zero_shot_speaker_encoder = True + del self.tts_model.emb_g + state_dict = torch.load(self.encoder_checkpoint)['state_dict'] + state_dict = {k.split('.', 1)[1]:v for k,v in state_dict.items() if k.startswith('speaker_encoder')} + self.zero_shot_speaker_encoder = ResNetSpeakerEncoder( + input_dim=self.tts_config['model_args']['out_channels'], + proj_dim=self.tts_config['model_args']['hidden_channels'], + layers=[3, 4, 6, 3], + num_filters=[32, 64, 128, 256], + encoder_type="ASP", + log_input=False, + use_torch_spec=False, + audio_config=BaseAudioConfig( + **self.tts_config['audio'] + ), + ) + self.zero_shot_speaker_encoder.load_state_dict(state_dict) + if use_cuda: + self.zero_shot_speaker_encoder.cuda() + print("| Loaded zero-shot speaker encoder.") + + def _set_speaker_encoder_paths_from_tts_config(self): + """Set the encoder paths from the tts model config for models with speaker encoders.""" + if hasattr(self.tts_config, "model_args") and hasattr( + self.tts_config.model_args, "speaker_encoder_config_path" + ): + self.encoder_checkpoint = self.tts_config.model_args.speaker_encoder_model_path + self.encoder_config = self.tts_config.model_args.speaker_encoder_config_path + + def _load_vocoder(self, model_file: str, model_config: str, use_cuda: bool) -> None: + """Load the vocoder model. + + 1. Load the vocoder config. + 2. Init the AudioProcessor for the vocoder. + 3. Init the vocoder model from the config. + 4. Move the model to the GPU if CUDA is enabled. + + Args: + model_file (str): path to the model checkpoint. + model_config (str): path to the model config file. + use_cuda (bool): enable/disable CUDA use. + """ + self.vocoder_config = load_config(model_config) + self.vocoder_ap = AudioProcessor(verbose=False, **self.vocoder_config.audio) + self.vocoder_model = setup_vocoder_model(self.vocoder_config) + self.vocoder_model.load_checkpoint(self.vocoder_config, model_file, eval=True) + if use_cuda: + self.vocoder_model.cuda() + + def split_into_sentences(self, text) -> List[str]: + """Split give text into sentences. + + Args: + text (str): input text in string format. + + Returns: + List[str]: list of sentences. + """ + return self.seg.segment(text) + + def save_wav(self, wav: List[int], path: str) -> None: + """Save the waveform as a file. + + Args: + wav (List[int]): waveform as a list of values. + path (str): output path to save the waveform. + """ + wav = np.array(wav) + self.tts_model.ap.save_wav(wav, path, self.output_sample_rate) + + def tts( + self, + text: str = "", + speaker_name: str = "", + language_name: str = "", + speaker_wav=None, + style_wav=None, + style_text=None, + reference_wav=None, + reference_speaker_name=None, + ) -> List[int]: + """๐Ÿธ TTS magic. Run all the models and generate speech. + + Args: + text (str): input text. + speaker_name (str, optional): spekaer id for multi-speaker models. Defaults to "". + language_name (str, optional): language id for multi-language models. Defaults to "". + speaker_wav (Union[str, List[str]], optional): path to the speaker wav. Defaults to None. + style_wav ([type], optional): style waveform for GST. Defaults to None. + style_text ([type], optional): transcription of style_wav for Capacitron. Defaults to None. + reference_wav ([type], optional): reference waveform for voice conversion. Defaults to None. + reference_speaker_name ([type], optional): spekaer id of reference waveform. Defaults to None. + Returns: + List[int]: [description] + """ + start_time = time.time() + wavs = [] + + if not text and not reference_wav: + raise ValueError( + "You need to define either `text` (for sythesis) or a `reference_wav` (for voice conversion) to use the Coqui TTS API." + ) + + if text: + sens = self.split_into_sentences(text) + print(" > Text splitted to sentences.") + print(sens) + + # handle multi-speaker + speaker_embedding = None + speaker_id = None + if self.tts_speakers_file or hasattr(self.tts_model.speaker_manager, "ids"): + if speaker_name and isinstance(speaker_name, str): + if self.tts_config.use_d_vector_file: + # get the average speaker embedding from the saved d_vectors. + speaker_embedding = self.tts_model.speaker_manager.get_mean_embedding( + speaker_name, num_samples=None, randomize=False + ) + speaker_embedding = np.array(speaker_embedding)[None, :] # [1 x embedding_dim] + else: + # get speaker idx from the speaker name + speaker_id = self.tts_model.speaker_manager.ids[speaker_name] + + elif not speaker_name and not speaker_wav: + raise ValueError( + " [!] Look like you use a multi-speaker model. " + "You need to define either a `speaker_name` or a `speaker_wav` to use a multi-speaker model." + ) + else: + speaker_embedding = None + else: + if speaker_name: + raise ValueError( + f" [!] Missing speakers.json file path for selecting speaker {speaker_name}." + "Define path for speaker.json if it is a multi-speaker model or remove defined speaker idx. " + ) + + # handle multi-lingaul + language_id = None + if self.tts_languages_file or ( + hasattr(self.tts_model, "language_manager") and self.tts_model.language_manager is not None + ): + if language_name and isinstance(language_name, str): + language_id = self.tts_model.language_manager.ids[language_name] + + elif not language_name: + raise ValueError( + " [!] Look like you use a multi-lingual model. " + "You need to define either a `language_name` or a `style_wav` to use a multi-lingual model." + ) + + else: + raise ValueError( + f" [!] Missing language_ids.json file path for selecting language {language_name}." + "Define path for language_ids.json if it is a multi-lingual model or remove defined language idx. " + ) + + # compute a new d_vector from the given clip. + if speaker_wav is not None: + if self.use_zero_shot_speaker_encoder: + wav = self.tts_model.ap.load_wav(speaker_wav, sr=22050) + mel = self.tts_model.ap.melspectrogram(wav).astype("float32") + mel = torch.FloatTensor(mel).contiguous().unsqueeze(0) + with torch.no_grad(): + speaker_embedding = self.zero_shot_speaker_encoder(mel)[0] + else: + speaker_embedding = self.tts_model.speaker_manager.compute_embedding_from_clip(speaker_wav) + + use_gl = self.vocoder_model is None + + if not reference_wav: + for sen in sens: + # synthesize voice + outputs = synthesis( + model=self.tts_model, + text=sen, + CONFIG=self.tts_config, + use_cuda=self.use_cuda, + speaker_id=speaker_id, + style_wav=style_wav, + style_text=style_text, + use_griffin_lim=use_gl, + d_vector=speaker_embedding, + language_id=language_id, + ) + waveform = outputs["wav"] + mel_postnet_spec = outputs["outputs"]["model_outputs"][0].detach().cpu().numpy() + if not use_gl: + # denormalize tts output based on tts audio config + # ### + # import matplotlib.pyplot as plt + # import seaborn as sns + # img=sns.heatmap(mel_postnet_spec.T) + # fig = img.get_figure() + # fig.savefig('output/fp_1.png') + # fig.clf() + # ### + mel_postnet_spec = self.tts_model.ap.denormalize(mel_postnet_spec.T).T + # ### + # import matplotlib.pyplot as plt + # import seaborn as sns + # img=sns.heatmap(mel_postnet_spec.T) + # fig = img.get_figure() + # fig.savefig('output/fp_2.png') + # fig.clf() + # ### + device_type = "cuda" if self.use_cuda else "cpu" + # renormalize spectrogram based on vocoder config + vocoder_input = self.vocoder_ap.normalize(mel_postnet_spec.T) + # compute scale factor for possible sample rate mismatch + scale_factor = [ + 1, + self.vocoder_config["audio"]["sample_rate"] / self.tts_model.ap.sample_rate, + ] + if scale_factor[1] != 1: + print(" > interpolating tts model output.") + vocoder_input = interpolate_vocoder_input(scale_factor, vocoder_input) + else: + vocoder_input = torch.tensor(vocoder_input).unsqueeze(0) # pylint: disable=not-callable + # run vocoder model + # [1, T, C] + waveform = self.vocoder_model.inference(vocoder_input.to(device_type)) + if self.use_cuda and not use_gl: + waveform = waveform.cpu() + if not use_gl: + waveform = waveform.numpy() + waveform = waveform.squeeze() + + # trim silence + if self.tts_config.audio["do_trim_silence"] is True: + waveform = trim_silence(waveform, self.tts_model.ap) + + wavs += list(waveform) + wavs += [0] * 10000 + else: + # get the speaker embedding or speaker id for the reference wav file + reference_speaker_embedding = None + reference_speaker_id = None + if self.tts_speakers_file or hasattr(self.tts_model.speaker_manager, "ids"): + if reference_speaker_name and isinstance(reference_speaker_name, str): + if self.tts_config.use_d_vector_file: + # get the speaker embedding from the saved d_vectors. + reference_speaker_embedding = self.tts_model.speaker_manager.get_embeddings_by_name( + reference_speaker_name + )[0] + reference_speaker_embedding = np.array(reference_speaker_embedding)[ + None, : + ] # [1 x embedding_dim] + else: + # get speaker idx from the speaker name + reference_speaker_id = self.tts_model.speaker_manager.ids[reference_speaker_name] + else: + reference_speaker_embedding = self.tts_model.speaker_manager.compute_embedding_from_clip( + reference_wav + ) + + outputs = transfer_voice( + model=self.tts_model, + CONFIG=self.tts_config, + use_cuda=self.use_cuda, + reference_wav=reference_wav, + speaker_id=speaker_id, + d_vector=speaker_embedding, + use_griffin_lim=use_gl, + reference_speaker_id=reference_speaker_id, + reference_d_vector=reference_speaker_embedding, + ) + waveform = outputs + if not use_gl: + mel_postnet_spec = outputs[0].detach().cpu().numpy() + # denormalize tts output based on tts audio config + mel_postnet_spec = self.tts_model.ap.denormalize(mel_postnet_spec.T).T + device_type = "cuda" if self.use_cuda else "cpu" + # renormalize spectrogram based on vocoder config + vocoder_input = self.vocoder_ap.normalize(mel_postnet_spec.T) + # compute scale factor for possible sample rate mismatch + scale_factor = [ + 1, + self.vocoder_config["audio"]["sample_rate"] / self.tts_model.ap.sample_rate, + ] + if scale_factor[1] != 1: + print(" > interpolating tts model output.") + vocoder_input = interpolate_vocoder_input(scale_factor, vocoder_input) + else: + vocoder_input = torch.tensor(vocoder_input).unsqueeze(0) # pylint: disable=not-callable + # run vocoder model + # [1, T, C] + waveform = self.vocoder_model.inference(vocoder_input.to(device_type)) + if self.use_cuda: + waveform = waveform.cpu() + if not use_gl: + waveform = waveform.numpy() + wavs = waveform.squeeze() + + # compute stats + process_time = time.time() - start_time + audio_time = len(wavs) / self.tts_config.audio["sample_rate"] + print(f" > Processing time: {process_time}") + print(f" > Real-time factor: {process_time / audio_time}") + return wavs diff --git a/Indic-TTS/TTS/TTS/utils/training.py b/Indic-TTS/TTS/TTS/utils/training.py new file mode 100644 index 0000000000000000000000000000000000000000..b51f55e92b56bece69ae61f99f68b48c88938261 --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/training.py @@ -0,0 +1,44 @@ +import numpy as np +import torch + + +def check_update(model, grad_clip, ignore_stopnet=False, amp_opt_params=None): + r"""Check model gradient against unexpected jumps and failures""" + skip_flag = False + if ignore_stopnet: + if not amp_opt_params: + grad_norm = torch.nn.utils.clip_grad_norm_( + [param for name, param in model.named_parameters() if "stopnet" not in name], grad_clip + ) + else: + grad_norm = torch.nn.utils.clip_grad_norm_(amp_opt_params, grad_clip) + else: + if not amp_opt_params: + grad_norm = torch.nn.utils.clip_grad_norm_(model.parameters(), grad_clip) + else: + grad_norm = torch.nn.utils.clip_grad_norm_(amp_opt_params, grad_clip) + + # compatibility with different torch versions + if isinstance(grad_norm, float): + if np.isinf(grad_norm): + print(" | > Gradient is INF !!") + skip_flag = True + else: + if torch.isinf(grad_norm): + print(" | > Gradient is INF !!") + skip_flag = True + return grad_norm, skip_flag + + +def gradual_training_scheduler(global_step, config): + """Setup the gradual training schedule wrt number + of active GPUs""" + num_gpus = torch.cuda.device_count() + if num_gpus == 0: + num_gpus = 1 + new_values = None + # we set the scheduling wrt num_gpus + for values in config.gradual_training: + if global_step * num_gpus >= values[0]: + new_values = values + return new_values[1], new_values[2] diff --git a/Indic-TTS/TTS/TTS/utils/vad.py b/Indic-TTS/TTS/TTS/utils/vad.py new file mode 100644 index 0000000000000000000000000000000000000000..033b911a7c188cb90ed342e579e0d428e648e9b8 --- /dev/null +++ b/Indic-TTS/TTS/TTS/utils/vad.py @@ -0,0 +1,81 @@ +import torch +import torchaudio + + +def read_audio(path): + wav, sr = torchaudio.load(path) + + if wav.size(0) > 1: + wav = wav.mean(dim=0, keepdim=True) + + return wav.squeeze(0), sr + + +def resample_wav(wav, sr, new_sr): + wav = wav.unsqueeze(0) + transform = torchaudio.transforms.Resample(orig_freq=sr, new_freq=new_sr) + wav = transform(wav) + return wav.squeeze(0) + + +def map_timestamps_to_new_sr(vad_sr, new_sr, timestamps, just_begging_end=False): + factor = new_sr / vad_sr + new_timestamps = [] + if just_begging_end and timestamps: + # get just the start and end timestamps + new_dict = {"start": int(timestamps[0]["start"] * factor), "end": int(timestamps[-1]["end"] * factor)} + new_timestamps.append(new_dict) + else: + for ts in timestamps: + # map to the new SR + new_dict = {"start": int(ts["start"] * factor), "end": int(ts["end"] * factor)} + new_timestamps.append(new_dict) + + return new_timestamps + + +def get_vad_model_and_utils(use_cuda=False): + model, utils = torch.hub.load(repo_or_dir="snakers4/silero-vad", model="silero_vad", force_reload=True, onnx=False) + if use_cuda: + model = model.cuda() + + get_speech_timestamps, save_audio, _, _, collect_chunks = utils + return model, get_speech_timestamps, save_audio, collect_chunks + + +def remove_silence( + model_and_utils, audio_path, out_path, vad_sample_rate=8000, trim_just_beginning_and_end=True, use_cuda=False +): + + # get the VAD model and utils functions + model, get_speech_timestamps, save_audio, collect_chunks = model_and_utils + + # read ground truth wav and resample the audio for the VAD + wav, gt_sample_rate = read_audio(audio_path) + + # if needed, resample the audio for the VAD model + if gt_sample_rate != vad_sample_rate: + wav_vad = resample_wav(wav, gt_sample_rate, vad_sample_rate) + else: + wav_vad = wav + + if use_cuda: + wav_vad = wav_vad.cuda() + + # get speech timestamps from full audio file + speech_timestamps = get_speech_timestamps(wav_vad, model, sampling_rate=vad_sample_rate, window_size_samples=768) + + # map the current speech_timestamps to the sample rate of the ground truth audio + new_speech_timestamps = map_timestamps_to_new_sr( + vad_sample_rate, gt_sample_rate, speech_timestamps, trim_just_beginning_and_end + ) + + # if have speech timestamps else save the wav + if new_speech_timestamps: + wav = collect_chunks(new_speech_timestamps, wav) + else: + print(f"> The file {audio_path} probably does not have speech please check it !!") + + # save audio + save_audio(out_path, wav, sampling_rate=gt_sample_rate) + return out_path diff --git a/Indic-TTS/TTS/TTS/vocoder/README.md b/Indic-TTS/TTS/TTS/vocoder/README.md new file mode 100644 index 0000000000000000000000000000000000000000..b9fb17c8f09fa6e8c217087e31fb8c52d96da536 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/README.md @@ -0,0 +1,39 @@ +# Mozilla TTS Vocoders (Experimental) + +Here there are vocoder model implementations which can be combined with the other TTS models. + +Currently, following models are implemented: + +- Melgan +- MultiBand-Melgan +- ParallelWaveGAN +- GAN-TTS (Discriminator Only) + +It is also very easy to adapt different vocoder models as we provide a flexible and modular (but not too modular) framework. + +## Training a model + +You can see here an example (Soon)[Colab Notebook]() training MelGAN with LJSpeech dataset. + +In order to train a new model, you need to gather all wav files into a folder and give this folder to `data_path` in '''config.json''' + +You need to define other relevant parameters in your ```config.json``` and then start traning with the following command. + +```CUDA_VISIBLE_DEVICES='0' python tts/bin/train_vocoder.py --config_path path/to/config.json``` + +Example config files can be found under `tts/vocoder/configs/` folder. + +You can continue a previous training run by the following command. + +```CUDA_VISIBLE_DEVICES='0' python tts/bin/train_vocoder.py --continue_path path/to/your/model/folder``` + +You can fine-tune a pre-trained model by the following command. + +```CUDA_VISIBLE_DEVICES='0' python tts/bin/train_vocoder.py --restore_path path/to/your/model.pth``` + +Restoring a model starts a new training in a different folder. It only restores model weights with the given checkpoint file. However, continuing a training starts from the same directory where the previous training run left off. + +You can also follow your training runs on Tensorboard as you do with our TTS models. + +## Acknowledgement +Thanks to @kan-bayashi for his [repository](https://github.com/kan-bayashi/ParallelWaveGAN) being the start point of our work. diff --git a/Indic-TTS/TTS/TTS/vocoder/__init__.py b/Indic-TTS/TTS/TTS/vocoder/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/vocoder/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a26ca4df0f3b6f2d220b9eb77b2759172c228661 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__init__.py b/Indic-TTS/TTS/TTS/vocoder/configs/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..b5e11b990c6d7294e7cb00c3e024bbb5f94a8105 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/configs/__init__.py @@ -0,0 +1,17 @@ +import importlib +import os +from inspect import isclass + +# import all files under configs/ +configs_dir = os.path.dirname(__file__) +for file in os.listdir(configs_dir): + path = os.path.join(configs_dir, file) + if not file.startswith("_") and not file.startswith(".") and (file.endswith(".py") or os.path.isdir(path)): + config_name = file[: file.find(".py")] if file.endswith(".py") else file + module = importlib.import_module("TTS.vocoder.configs." + config_name) + for attribute_name in dir(module): + attribute = getattr(module, attribute_name) + + if isclass(attribute): + # Add the class to this package's variables + globals()[attribute_name] = attribute diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..26b45ece3584b7ac20546f2a0f94ebeb46b5e2b0 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/fullband_melgan_config.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/fullband_melgan_config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c48d27b622369907c1419d703434d9927419bea7 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/fullband_melgan_config.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/hifigan_config.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/hifigan_config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f65aa649d21ab9b5badc612a6f8d3965c432b503 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/hifigan_config.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/melgan_config.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/melgan_config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..217f573debba7efeff7cd2e37c11e672c12503fb Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/melgan_config.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/multiband_melgan_config.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/multiband_melgan_config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d5f72920665cf5c8b3d968fbdd0e76b787ee165d Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/multiband_melgan_config.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/parallel_wavegan_config.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/parallel_wavegan_config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..60916af6fe96c546fc7d4675abac3bef730b2d53 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/parallel_wavegan_config.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/shared_configs.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/shared_configs.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91bf6021e96315124cfd9c25d7a635ae568ca09a Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/shared_configs.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/univnet_config.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/univnet_config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2193540ec4d0bd939f548667a867f6012a75adf6 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/univnet_config.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/wavegrad_config.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/wavegrad_config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b4336d5ccad8d431275b15f84506891a10558a93 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/wavegrad_config.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/wavernn_config.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/wavernn_config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a4953012baa608f342817d8da0eb298995af0ba4 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/configs/__pycache__/wavernn_config.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/fullband_melgan_config.py b/Indic-TTS/TTS/TTS/vocoder/configs/fullband_melgan_config.py new file mode 100644 index 0000000000000000000000000000000000000000..2ab83aace678e328a8f99a5f0dc63e54ed99d4c4 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/configs/fullband_melgan_config.py @@ -0,0 +1,106 @@ +from dataclasses import dataclass, field + +from .shared_configs import BaseGANVocoderConfig + + +@dataclass +class FullbandMelganConfig(BaseGANVocoderConfig): + """Defines parameters for FullBand MelGAN vocoder. + + Example: + + >>> from TTS.vocoder.configs import FullbandMelganConfig + >>> config = FullbandMelganConfig() + + Args: + model (str): + Model name used for selecting the right model at initialization. Defaults to `fullband_melgan`. + discriminator_model (str): One of the discriminators from `TTS.vocoder.models.*_discriminator`. Defaults to + 'melgan_multiscale_discriminator`. + discriminator_model_params (dict): The discriminator model parameters. Defaults to + '{"base_channels": 16, "max_channels": 1024, "downsample_factors": [4, 4, 4, 4]}` + generator_model (str): One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is + considered as a generator too. Defaults to `melgan_generator`. + batch_size (int): + Batch size used at training. Larger values use more memory. Defaults to 16. + seq_len (int): + Audio segment length used at training. Larger values use more memory. Defaults to 8192. + pad_short (int): + Additional padding applied to the audio samples shorter than `seq_len`. Defaults to 0. + use_noise_augment (bool): + enable / disable random noise added to the input waveform. The noise is added after computing the + features. Defaults to True. + use_cache (bool): + enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is + not large enough. Defaults to True. + use_stft_loss (bool): + enable / disable use of STFT loss originally used by ParallelWaveGAN model. Defaults to True. + use_subband_stft (bool): + enable / disable use of subband loss computation originally used by MultiBandMelgan model. Defaults to True. + use_mse_gan_loss (bool): + enable / disable using Mean Squeare Error GAN loss. Defaults to True. + use_hinge_gan_loss (bool): + enable / disable using Hinge GAN loss. You should choose either Hinge or MSE loss for training GAN models. + Defaults to False. + use_feat_match_loss (bool): + enable / disable using Feature Matching loss originally used by MelGAN model. Defaults to True. + use_l1_spec_loss (bool): + enable / disable using L1 spectrogram loss originally used by HifiGAN model. Defaults to False. + stft_loss_params (dict): STFT loss parameters. Default to + `{"n_ffts": [1024, 2048, 512], "hop_lengths": [120, 240, 50], "win_lengths": [600, 1200, 240]}` + stft_loss_weight (float): STFT loss weight that multiplies the computed loss before summing up the total + model loss. Defaults to 0.5. + subband_stft_loss_weight (float): + Subband STFT loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + mse_G_loss_weight (float): + MSE generator loss weight that multiplies the computed loss before summing up the total loss. faults to 2.5. + hinge_G_loss_weight (float): + Hinge generator loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + feat_match_loss_weight (float): + Feature matching loss weight that multiplies the computed loss before summing up the total loss. faults to 108. + l1_spec_loss_weight (float): + L1 spectrogram loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + """ + + model: str = "fullband_melgan" + + # Model specific params + discriminator_model: str = "melgan_multiscale_discriminator" + discriminator_model_params: dict = field( + default_factory=lambda: {"base_channels": 16, "max_channels": 512, "downsample_factors": [4, 4, 4]} + ) + generator_model: str = "melgan_generator" + generator_model_params: dict = field( + default_factory=lambda: {"upsample_factors": [8, 8, 2, 2], "num_res_blocks": 4} + ) + + # Training - overrides + batch_size: int = 16 + seq_len: int = 8192 + pad_short: int = 2000 + use_noise_augment: bool = True + use_cache: bool = True + + # LOSS PARAMETERS - overrides + use_stft_loss: bool = True + use_subband_stft_loss: bool = False + use_mse_gan_loss: bool = True + use_hinge_gan_loss: bool = False + use_feat_match_loss: bool = True # requires MelGAN Discriminators (MelGAN and HifiGAN) + use_l1_spec_loss: bool = False + + stft_loss_params: dict = field( + default_factory=lambda: { + "n_ffts": [1024, 2048, 512], + "hop_lengths": [120, 240, 50], + "win_lengths": [600, 1200, 240], + } + ) + + # loss weights - overrides + stft_loss_weight: float = 0.5 + subband_stft_loss_weight: float = 0 + mse_G_loss_weight: float = 2.5 + hinge_G_loss_weight: float = 0 + feat_match_loss_weight: float = 108 + l1_spec_loss_weight: float = 0.0 diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/hifigan_config.py b/Indic-TTS/TTS/TTS/vocoder/configs/hifigan_config.py new file mode 100644 index 0000000000000000000000000000000000000000..f76bb14c094808e49fda279b6e185ed1d63241d3 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/configs/hifigan_config.py @@ -0,0 +1,138 @@ +from dataclasses import dataclass, field + +from TTS.vocoder.configs.shared_configs import BaseGANVocoderConfig + + +@dataclass +class HifiganConfig(BaseGANVocoderConfig): + """Defines parameters for FullBand MelGAN vocoder. + + Example: + + >>> from TTS.vocoder.configs import HifiganConfig + >>> config = HifiganConfig() + + Args: + model (str): + Model name used for selecting the right model at initialization. Defaults to `hifigan`. + discriminator_model (str): One of the discriminators from `TTS.vocoder.models.*_discriminator`. Defaults to + 'hifigan_discriminator`. + generator_model (str): One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is + considered as a generator too. Defaults to `hifigan_generator`. + generator_model_params (dict): Parameters of the generator model. Defaults to + ` + { + "use_mel": True, + "sample_rate": 22050, + "n_fft": 1024, + "hop_length": 256, + "win_length": 1024, + "n_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": None, + } + ` + batch_size (int): + Batch size used at training. Larger values use more memory. Defaults to 16. + seq_len (int): + Audio segment length used at training. Larger values use more memory. Defaults to 8192. + pad_short (int): + Additional padding applied to the audio samples shorter than `seq_len`. Defaults to 0. + use_noise_augment (bool): + enable / disable random noise added to the input waveform. The noise is added after computing the + features. Defaults to True. + use_cache (bool): + enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is + not large enough. Defaults to True. + use_stft_loss (bool): + enable / disable use of STFT loss originally used by ParallelWaveGAN model. Defaults to True. + use_subband_stft (bool): + enable / disable use of subband loss computation originally used by MultiBandMelgan model. Defaults to True. + use_mse_gan_loss (bool): + enable / disable using Mean Squeare Error GAN loss. Defaults to True. + use_hinge_gan_loss (bool): + enable / disable using Hinge GAN loss. You should choose either Hinge or MSE loss for training GAN models. + Defaults to False. + use_feat_match_loss (bool): + enable / disable using Feature Matching loss originally used by MelGAN model. Defaults to True. + use_l1_spec_loss (bool): + enable / disable using L1 spectrogram loss originally used by HifiGAN model. Defaults to False. + stft_loss_params (dict): + STFT loss parameters. Default to + `{ + "n_ffts": [1024, 2048, 512], + "hop_lengths": [120, 240, 50], + "win_lengths": [600, 1200, 240] + }` + l1_spec_loss_params (dict): + L1 spectrogram loss parameters. Default to + `{ + "use_mel": True, + "sample_rate": 22050, + "n_fft": 1024, + "hop_length": 256, + "win_length": 1024, + "n_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": None, + }` + stft_loss_weight (float): STFT loss weight that multiplies the computed loss before summing up the total + model loss. Defaults to 0.5. + subband_stft_loss_weight (float): + Subband STFT loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + mse_G_loss_weight (float): + MSE generator loss weight that multiplies the computed loss before summing up the total loss. faults to 2.5. + hinge_G_loss_weight (float): + Hinge generator loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + feat_match_loss_weight (float): + Feature matching loss weight that multiplies the computed loss before summing up the total loss. faults to 108. + l1_spec_loss_weight (float): + L1 spectrogram loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + """ + + model: str = "hifigan" + # model specific params + discriminator_model: str = "hifigan_discriminator" + generator_model: str = "hifigan_generator" + generator_model_params: dict = field( + default_factory=lambda: { + "upsample_factors": [8, 8, 2, 2], + "upsample_kernel_sizes": [16, 16, 4, 4], + "upsample_initial_channel": 512, + "resblock_kernel_sizes": [3, 7, 11], + "resblock_dilation_sizes": [[1, 3, 5], [1, 3, 5], [1, 3, 5]], + "resblock_type": "1", + } + ) + + # LOSS PARAMETERS - overrides + use_stft_loss: bool = False + use_subband_stft_loss: bool = False + use_mse_gan_loss: bool = True + use_hinge_gan_loss: bool = False + use_feat_match_loss: bool = True # requires MelGAN Discriminators (MelGAN and HifiGAN) + use_l1_spec_loss: bool = True + + # loss weights - overrides + stft_loss_weight: float = 0 + subband_stft_loss_weight: float = 0 + mse_G_loss_weight: float = 1 + hinge_G_loss_weight: float = 0 + feat_match_loss_weight: float = 108 + l1_spec_loss_weight: float = 45 + l1_spec_loss_params: dict = field( + default_factory=lambda: { + "use_mel": True, + "sample_rate": 22050, + "n_fft": 1024, + "hop_length": 256, + "win_length": 1024, + "n_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": None, + } + ) + + # optimizer parameters + lr: float = 1e-4 + wd: float = 1e-6 diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/melgan_config.py b/Indic-TTS/TTS/TTS/vocoder/configs/melgan_config.py new file mode 100644 index 0000000000000000000000000000000000000000..dc35b6f8b70891d4904baefad802d9c62fe67925 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/configs/melgan_config.py @@ -0,0 +1,106 @@ +from dataclasses import dataclass, field + +from TTS.vocoder.configs.shared_configs import BaseGANVocoderConfig + + +@dataclass +class MelganConfig(BaseGANVocoderConfig): + """Defines parameters for MelGAN vocoder. + + Example: + + >>> from TTS.vocoder.configs import MelganConfig + >>> config = MelganConfig() + + Args: + model (str): + Model name used for selecting the right model at initialization. Defaults to `melgan`. + discriminator_model (str): One of the discriminators from `TTS.vocoder.models.*_discriminator`. Defaults to + 'melgan_multiscale_discriminator`. + discriminator_model_params (dict): The discriminator model parameters. Defaults to + '{"base_channels": 16, "max_channels": 1024, "downsample_factors": [4, 4, 4, 4]}` + generator_model (str): One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is + considered as a generator too. Defaults to `melgan_generator`. + batch_size (int): + Batch size used at training. Larger values use more memory. Defaults to 16. + seq_len (int): + Audio segment length used at training. Larger values use more memory. Defaults to 8192. + pad_short (int): + Additional padding applied to the audio samples shorter than `seq_len`. Defaults to 0. + use_noise_augment (bool): + enable / disable random noise added to the input waveform. The noise is added after computing the + features. Defaults to True. + use_cache (bool): + enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is + not large enough. Defaults to True. + use_stft_loss (bool): + enable / disable use of STFT loss originally used by ParallelWaveGAN model. Defaults to True. + use_subband_stft (bool): + enable / disable use of subband loss computation originally used by MultiBandMelgan model. Defaults to True. + use_mse_gan_loss (bool): + enable / disable using Mean Squeare Error GAN loss. Defaults to True. + use_hinge_gan_loss (bool): + enable / disable using Hinge GAN loss. You should choose either Hinge or MSE loss for training GAN models. + Defaults to False. + use_feat_match_loss (bool): + enable / disable using Feature Matching loss originally used by MelGAN model. Defaults to True. + use_l1_spec_loss (bool): + enable / disable using L1 spectrogram loss originally used by HifiGAN model. Defaults to False. + stft_loss_params (dict): STFT loss parameters. Default to + `{"n_ffts": [1024, 2048, 512], "hop_lengths": [120, 240, 50], "win_lengths": [600, 1200, 240]}` + stft_loss_weight (float): STFT loss weight that multiplies the computed loss before summing up the total + model loss. Defaults to 0.5. + subband_stft_loss_weight (float): + Subband STFT loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + mse_G_loss_weight (float): + MSE generator loss weight that multiplies the computed loss before summing up the total loss. faults to 2.5. + hinge_G_loss_weight (float): + Hinge generator loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + feat_match_loss_weight (float): + Feature matching loss weight that multiplies the computed loss before summing up the total loss. faults to 108. + l1_spec_loss_weight (float): + L1 spectrogram loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + """ + + model: str = "melgan" + + # Model specific params + discriminator_model: str = "melgan_multiscale_discriminator" + discriminator_model_params: dict = field( + default_factory=lambda: {"base_channels": 16, "max_channels": 1024, "downsample_factors": [4, 4, 4, 4]} + ) + generator_model: str = "melgan_generator" + generator_model_params: dict = field( + default_factory=lambda: {"upsample_factors": [8, 8, 2, 2], "num_res_blocks": 3} + ) + + # Training - overrides + batch_size: int = 16 + seq_len: int = 8192 + pad_short: int = 2000 + use_noise_augment: bool = True + use_cache: bool = True + + # LOSS PARAMETERS - overrides + use_stft_loss: bool = True + use_subband_stft_loss: bool = False + use_mse_gan_loss: bool = True + use_hinge_gan_loss: bool = False + use_feat_match_loss: bool = True # requires MelGAN Discriminators (MelGAN and HifiGAN) + use_l1_spec_loss: bool = False + + stft_loss_params: dict = field( + default_factory=lambda: { + "n_ffts": [1024, 2048, 512], + "hop_lengths": [120, 240, 50], + "win_lengths": [600, 1200, 240], + } + ) + + # loss weights - overrides + stft_loss_weight: float = 0.5 + subband_stft_loss_weight: float = 0 + mse_G_loss_weight: float = 2.5 + hinge_G_loss_weight: float = 0 + feat_match_loss_weight: float = 108 + l1_spec_loss_weight: float = 0 diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/multiband_melgan_config.py b/Indic-TTS/TTS/TTS/vocoder/configs/multiband_melgan_config.py new file mode 100644 index 0000000000000000000000000000000000000000..763113537f36a8615b2b77369bf5bde01527fe53 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/configs/multiband_melgan_config.py @@ -0,0 +1,144 @@ +from dataclasses import dataclass, field + +from TTS.vocoder.configs.shared_configs import BaseGANVocoderConfig + + +@dataclass +class MultibandMelganConfig(BaseGANVocoderConfig): + """Defines parameters for MultiBandMelGAN vocoder. + + Example: + + >>> from TTS.vocoder.configs import MultibandMelganConfig + >>> config = MultibandMelganConfig() + + Args: + model (str): + Model name used for selecting the right model at initialization. Defaults to `multiband_melgan`. + discriminator_model (str): One of the discriminators from `TTS.vocoder.models.*_discriminator`. Defaults to + 'melgan_multiscale_discriminator`. + discriminator_model_params (dict): The discriminator model parameters. Defaults to + '{ + "base_channels": 16, + "max_channels": 512, + "downsample_factors": [4, 4, 4] + }` + generator_model (str): One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is + considered as a generator too. Defaults to `melgan_generator`. + generator_model_param (dict): + The generator model parameters. Defaults to `{"upsample_factors": [8, 4, 2], "num_res_blocks": 4}`. + use_pqmf (bool): + enable / disable PQMF modulation for multi-band training. Defaults to True. + lr_gen (float): + Initial learning rate for the generator model. Defaults to 0.0001. + lr_disc (float): + Initial learning rate for the discriminator model. Defaults to 0.0001. + optimizer (torch.optim.Optimizer): + Optimizer used for the training. Defaults to `AdamW`. + optimizer_params (dict): + Optimizer kwargs. Defaults to `{"betas": [0.8, 0.99], "weight_decay": 0.0}` + lr_scheduler_gen (torch.optim.Scheduler): + Learning rate scheduler for the generator. Defaults to `MultiStepLR`. + lr_scheduler_gen_params (dict): + Parameters for the generator learning rate scheduler. Defaults to + `{"gamma": 0.5, "milestones": [100000, 200000, 300000, 400000, 500000, 600000]}`. + lr_scheduler_disc (torch.optim.Scheduler): + Learning rate scheduler for the discriminator. Defaults to `MultiStepLR`. + lr_scheduler_dict_params (dict): + Parameters for the discriminator learning rate scheduler. Defaults to + `{"gamma": 0.5, "milestones": [100000, 200000, 300000, 400000, 500000, 600000]}`. + batch_size (int): + Batch size used at training. Larger values use more memory. Defaults to 16. + seq_len (int): + Audio segment length used at training. Larger values use more memory. Defaults to 8192. + pad_short (int): + Additional padding applied to the audio samples shorter than `seq_len`. Defaults to 0. + use_noise_augment (bool): + enable / disable random noise added to the input waveform. The noise is added after computing the + features. Defaults to True. + use_cache (bool): + enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is + not large enough. Defaults to True. + steps_to_start_discriminator (int): + Number of steps required to start training the discriminator. Defaults to 0. + use_stft_loss (bool):` + enable / disable use of STFT loss originally used by ParallelWaveGAN model. Defaults to True. + use_subband_stft (bool): + enable / disable use of subband loss computation originally used by MultiBandMelgan model. Defaults to True. + use_mse_gan_loss (bool): + enable / disable using Mean Squeare Error GAN loss. Defaults to True. + use_hinge_gan_loss (bool): + enable / disable using Hinge GAN loss. You should choose either Hinge or MSE loss for training GAN models. + Defaults to False. + use_feat_match_loss (bool): + enable / disable using Feature Matching loss originally used by MelGAN model. Defaults to True. + use_l1_spec_loss (bool): + enable / disable using L1 spectrogram loss originally used by HifiGAN model. Defaults to False. + stft_loss_params (dict): STFT loss parameters. Default to + `{"n_ffts": [1024, 2048, 512], "hop_lengths": [120, 240, 50], "win_lengths": [600, 1200, 240]}` + stft_loss_weight (float): STFT loss weight that multiplies the computed loss before summing up the total + model loss. Defaults to 0.5. + subband_stft_loss_weight (float): + Subband STFT loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + mse_G_loss_weight (float): + MSE generator loss weight that multiplies the computed loss before summing up the total loss. faults to 2.5. + hinge_G_loss_weight (float): + Hinge generator loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + feat_match_loss_weight (float): + Feature matching loss weight that multiplies the computed loss before summing up the total loss. faults to 108. + l1_spec_loss_weight (float): + L1 spectrogram loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + """ + + model: str = "multiband_melgan" + + # Model specific params + discriminator_model: str = "melgan_multiscale_discriminator" + discriminator_model_params: dict = field( + default_factory=lambda: {"base_channels": 16, "max_channels": 512, "downsample_factors": [4, 4, 4]} + ) + generator_model: str = "multiband_melgan_generator" + generator_model_params: dict = field(default_factory=lambda: {"upsample_factors": [8, 4, 2], "num_res_blocks": 4}) + use_pqmf: bool = True + + # optimizer - overrides + lr_gen: float = 0.0001 # Initial learning rate. + lr_disc: float = 0.0001 # Initial learning rate. + optimizer: str = "AdamW" + optimizer_params: dict = field(default_factory=lambda: {"betas": [0.8, 0.99], "weight_decay": 0.0}) + lr_scheduler_gen: str = "MultiStepLR" # one of the schedulers from https:#pytorch.org/docs/stable/optim.html + lr_scheduler_gen_params: dict = field( + default_factory=lambda: {"gamma": 0.5, "milestones": [100000, 200000, 300000, 400000, 500000, 600000]} + ) + lr_scheduler_disc: str = "MultiStepLR" # one of the schedulers from https:#pytorch.org/docs/stable/optim.html + lr_scheduler_disc_params: dict = field( + default_factory=lambda: {"gamma": 0.5, "milestones": [100000, 200000, 300000, 400000, 500000, 600000]} + ) + + # Training - overrides + batch_size: int = 64 + seq_len: int = 16384 + pad_short: int = 2000 + use_noise_augment: bool = False + use_cache: bool = True + steps_to_start_discriminator: bool = 200000 + + # LOSS PARAMETERS - overrides + use_stft_loss: bool = True + use_subband_stft_loss: bool = True + use_mse_gan_loss: bool = True + use_hinge_gan_loss: bool = False + use_feat_match_loss: bool = False # requires MelGAN Discriminators (MelGAN and HifiGAN) + use_l1_spec_loss: bool = False + + subband_stft_loss_params: dict = field( + default_factory=lambda: {"n_ffts": [384, 683, 171], "hop_lengths": [30, 60, 10], "win_lengths": [150, 300, 60]} + ) + + # loss weights - overrides + stft_loss_weight: float = 0.5 + subband_stft_loss_weight: float = 0 + mse_G_loss_weight: float = 2.5 + hinge_G_loss_weight: float = 0 + feat_match_loss_weight: float = 108 + l1_spec_loss_weight: float = 0 diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/parallel_wavegan_config.py b/Indic-TTS/TTS/TTS/vocoder/configs/parallel_wavegan_config.py new file mode 100644 index 0000000000000000000000000000000000000000..7845dd6bf835ebab4cc5d8b65962b7347b7711cf --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/configs/parallel_wavegan_config.py @@ -0,0 +1,133 @@ +from dataclasses import dataclass, field + +from .shared_configs import BaseGANVocoderConfig + + +@dataclass +class ParallelWaveganConfig(BaseGANVocoderConfig): + """Defines parameters for ParallelWavegan vocoder. + + Args: + model (str): + Model name used for selecting the right configuration at initialization. Defaults to `gan`. + discriminator_model (str): One of the discriminators from `TTS.vocoder.models.*_discriminator`. Defaults to + 'parallel_wavegan_discriminator`. + discriminator_model_params (dict): The discriminator model kwargs. Defaults to + '{"num_layers": 10}` + generator_model (str): One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is + considered as a generator too. Defaults to `parallel_wavegan_generator`. + generator_model_param (dict): + The generator model kwargs. Defaults to `{"upsample_factors": [4, 4, 4, 4], "stacks": 3, "num_res_blocks": 30}`. + batch_size (int): + Batch size used at training. Larger values use more memory. Defaults to 16. + seq_len (int): + Audio segment length used at training. Larger values use more memory. Defaults to 8192. + pad_short (int): + Additional padding applied to the audio samples shorter than `seq_len`. Defaults to 0. + use_noise_augment (bool): + enable / disable random noise added to the input waveform. The noise is added after computing the + features. Defaults to True. + use_cache (bool): + enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is + not large enough. Defaults to True. + steps_to_start_discriminator (int): + Number of steps required to start training the discriminator. Defaults to 0. + use_stft_loss (bool):` + enable / disable use of STFT loss originally used by ParallelWaveGAN model. Defaults to True. + use_subband_stft (bool): + enable / disable use of subband loss computation originally used by MultiBandMelgan model. Defaults to True. + use_mse_gan_loss (bool): + enable / disable using Mean Squeare Error GAN loss. Defaults to True. + use_hinge_gan_loss (bool): + enable / disable using Hinge GAN loss. You should choose either Hinge or MSE loss for training GAN models. + Defaults to False. + use_feat_match_loss (bool): + enable / disable using Feature Matching loss originally used by MelGAN model. Defaults to True. + use_l1_spec_loss (bool): + enable / disable using L1 spectrogram loss originally used by HifiGAN model. Defaults to False. + stft_loss_params (dict): STFT loss parameters. Default to + `{"n_ffts": [1024, 2048, 512], "hop_lengths": [120, 240, 50], "win_lengths": [600, 1200, 240]}` + stft_loss_weight (float): STFT loss weight that multiplies the computed loss before summing up the total + model loss. Defaults to 0.5. + subband_stft_loss_weight (float): + Subband STFT loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + mse_G_loss_weight (float): + MSE generator loss weight that multiplies the computed loss before summing up the total loss. faults to 2.5. + hinge_G_loss_weight (float): + Hinge generator loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + feat_match_loss_weight (float): + Feature matching loss weight that multiplies the computed loss before summing up the total loss. faults to 0. + l1_spec_loss_weight (float): + L1 spectrogram loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + lr_gen (float): + Generator model initial learning rate. Defaults to 0.0002. + lr_disc (float): + Discriminator model initial learning rate. Defaults to 0.0002. + optimizer (torch.optim.Optimizer): + Optimizer used for the training. Defaults to `AdamW`. + optimizer_params (dict): + Optimizer kwargs. Defaults to `{"betas": [0.8, 0.99], "weight_decay": 0.0}` + lr_scheduler_gen (torch.optim.Scheduler): + Learning rate scheduler for the generator. Defaults to `ExponentialLR`. + lr_scheduler_gen_params (dict): + Parameters for the generator learning rate scheduler. Defaults to `{"gamma": 0.5, "step_size": 200000, "last_epoch": -1}`. + lr_scheduler_disc (torch.optim.Scheduler): + Learning rate scheduler for the discriminator. Defaults to `ExponentialLR`. + lr_scheduler_dict_params (dict): + Parameters for the discriminator learning rate scheduler. Defaults to `{"gamma": 0.5, "step_size": 200000, "last_epoch": -1}`. + """ + + model: str = "parallel_wavegan" + + # Model specific params + discriminator_model: str = "parallel_wavegan_discriminator" + discriminator_model_params: dict = field(default_factory=lambda: {"num_layers": 10}) + generator_model: str = "parallel_wavegan_generator" + generator_model_params: dict = field( + default_factory=lambda: {"upsample_factors": [4, 4, 4, 4], "stacks": 3, "num_res_blocks": 30} + ) + + # Training - overrides + batch_size: int = 6 + seq_len: int = 25600 + pad_short: int = 2000 + use_noise_augment: bool = False + use_cache: bool = True + steps_to_start_discriminator: int = 200000 + + # LOSS PARAMETERS - overrides + use_stft_loss: bool = True + use_subband_stft_loss: bool = False + use_mse_gan_loss: bool = True + use_hinge_gan_loss: bool = False + use_feat_match_loss: bool = False # requires MelGAN Discriminators (MelGAN and HifiGAN) + use_l1_spec_loss: bool = False + + stft_loss_params: dict = field( + default_factory=lambda: { + "n_ffts": [1024, 2048, 512], + "hop_lengths": [120, 240, 50], + "win_lengths": [600, 1200, 240], + } + ) + + # loss weights - overrides + stft_loss_weight: float = 0.5 + subband_stft_loss_weight: float = 0 + mse_G_loss_weight: float = 2.5 + hinge_G_loss_weight: float = 0 + feat_match_loss_weight: float = 0 + l1_spec_loss_weight: float = 0 + + # optimizer overrides + lr_gen: float = 0.0002 # Initial learning rate. + lr_disc: float = 0.0002 # Initial learning rate. + optimizer: str = "AdamW" + optimizer_params: dict = field(default_factory=lambda: {"betas": [0.8, 0.99], "weight_decay": 0.0}) + lr_scheduler_gen: str = "StepLR" # one of the schedulers from https:#pytorch.org/docs/stable/optim.html + lr_scheduler_gen_params: dict = field(default_factory=lambda: {"gamma": 0.5, "step_size": 200000, "last_epoch": -1}) + lr_scheduler_disc: str = "StepLR" # one of the schedulers from https:#pytorch.org/docs/stable/optim.html + lr_scheduler_disc_params: dict = field( + default_factory=lambda: {"gamma": 0.5, "step_size": 200000, "last_epoch": -1} + ) + scheduler_after_epoch: bool = False diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/shared_configs.py b/Indic-TTS/TTS/TTS/vocoder/configs/shared_configs.py new file mode 100644 index 0000000000000000000000000000000000000000..a558cfcabbc2abc26be60065d3ac75cebd829f28 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/configs/shared_configs.py @@ -0,0 +1,182 @@ +from dataclasses import dataclass, field + +from TTS.config import BaseAudioConfig, BaseTrainingConfig + + +@dataclass +class BaseVocoderConfig(BaseTrainingConfig): + """Shared parameters among all the vocoder models. + Args: + audio (BaseAudioConfig): + Audio processor config instance. Defaultsto `BaseAudioConfig()`. + use_noise_augment (bool): + Augment the input audio with random noise. Defaults to False/ + eval_split_size (int): + Number of instances used for evaluation. Defaults to 10. + data_path (str): + Root path of the training data. All the audio files found recursively from this root path are used for + training. Defaults to `""`. + feature_path (str): + Root path to the precomputed feature files. Defaults to None. + seq_len (int): + Length of the waveform segments used for training. Defaults to 1000. + pad_short (int): + Extra padding for the waveforms shorter than `seq_len`. Defaults to 0. + conv_path (int): + Extra padding for the feature frames against convolution of the edge frames. Defaults to MISSING. + Defaults to 0. + use_cache (bool): + enable / disable in memory caching of the computed features. If the RAM is not enough, if may cause OOM. + Defaults to False. + epochs (int): + Number of training epochs to. Defaults to 10000. + wd (float): + Weight decay. + optimizer (torch.optim.Optimizer): + Optimizer used for the training. Defaults to `AdamW`. + optimizer_params (dict): + Optimizer kwargs. Defaults to `{"betas": [0.8, 0.99], "weight_decay": 0.0}` + """ + + audio: BaseAudioConfig = field(default_factory=BaseAudioConfig) + # dataloading + use_noise_augment: bool = False # enable/disable random noise augmentation in spectrograms. + eval_split_size: int = 10 # number of samples used for evaluation. + # dataset + data_path: str = "" # root data path. It finds all wav files recursively from there. + feature_path: str = None # if you use precomputed features + seq_len: int = 1000 # signal length used in training. + pad_short: int = 0 # additional padding for short wavs + conv_pad: int = 0 # additional padding against convolutions applied to spectrograms + use_cache: bool = False # use in memory cache to keep the computed features. This might cause OOM. + # OPTIMIZER + epochs: int = 10000 # total number of epochs to train. + wd: float = 0.0 # Weight decay weight. + optimizer: str = "AdamW" + optimizer_params: dict = field(default_factory=lambda: {"betas": [0.8, 0.99], "weight_decay": 0.0}) + + +@dataclass +class BaseGANVocoderConfig(BaseVocoderConfig): + """Base config class used among all the GAN based vocoders. + Args: + use_stft_loss (bool): + enable / disable the use of STFT loss. Defaults to True. + use_subband_stft_loss (bool): + enable / disable the use of Subband STFT loss. Defaults to True. + use_mse_gan_loss (bool): + enable / disable the use of Mean Squared Error based GAN loss. Defaults to True. + use_hinge_gan_loss (bool): + enable / disable the use of Hinge GAN loss. Defaults to True. + use_feat_match_loss (bool): + enable / disable feature matching loss. Defaults to True. + use_l1_spec_loss (bool): + enable / disable L1 spectrogram loss. Defaults to True. + stft_loss_weight (float): + Loss weight that multiplies the computed loss value. Defaults to 0. + subband_stft_loss_weight (float): + Loss weight that multiplies the computed loss value. Defaults to 0. + mse_G_loss_weight (float): + Loss weight that multiplies the computed loss value. Defaults to 1. + hinge_G_loss_weight (float): + Loss weight that multiplies the computed loss value. Defaults to 0. + feat_match_loss_weight (float): + Loss weight that multiplies the computed loss value. Defaults to 100. + l1_spec_loss_weight (float): + Loss weight that multiplies the computed loss value. Defaults to 45. + stft_loss_params (dict): + Parameters for the STFT loss. Defaults to `{"n_ffts": [1024, 2048, 512], "hop_lengths": [120, 240, 50], "win_lengths": [600, 1200, 240]}`. + l1_spec_loss_params (dict): + Parameters for the L1 spectrogram loss. Defaults to + `{ + "use_mel": True, + "sample_rate": 22050, + "n_fft": 1024, + "hop_length": 256, + "win_length": 1024, + "n_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": None, + }` + target_loss (str): + Target loss name that defines the quality of the model. Defaults to `G_avg_loss`. + grad_clip (list): + A list of gradient clipping theresholds for each optimizer. Any value less than 0 disables clipping. + Defaults to [5, 5]. + lr_gen (float): + Generator model initial learning rate. Defaults to 0.0002. + lr_disc (float): + Discriminator model initial learning rate. Defaults to 0.0002. + lr_scheduler_gen (torch.optim.Scheduler): + Learning rate scheduler for the generator. Defaults to `ExponentialLR`. + lr_scheduler_gen_params (dict): + Parameters for the generator learning rate scheduler. Defaults to `{"gamma": 0.999, "last_epoch": -1}`. + lr_scheduler_disc (torch.optim.Scheduler): + Learning rate scheduler for the discriminator. Defaults to `ExponentialLR`. + lr_scheduler_disc_params (dict): + Parameters for the discriminator learning rate scheduler. Defaults to `{"gamma": 0.999, "last_epoch": -1}`. + scheduler_after_epoch (bool): + Whether to update the learning rate schedulers after each epoch. Defaults to True. + use_pqmf (bool): + enable / disable PQMF for subband approximation at training. Defaults to False. + steps_to_start_discriminator (int): + Number of steps required to start training the discriminator. Defaults to 0. + diff_samples_for_G_and_D (bool): + enable / disable use of different training samples for the generator and the discriminator iterations. + Enabling it results in slower iterations but faster convergance in some cases. Defaults to False. + """ + + model: str = "gan" + + # LOSS PARAMETERS + use_stft_loss: bool = True + use_subband_stft_loss: bool = True + use_mse_gan_loss: bool = True + use_hinge_gan_loss: bool = True + use_feat_match_loss: bool = True # requires MelGAN Discriminators (MelGAN and HifiGAN) + use_l1_spec_loss: bool = True + + # loss weights + stft_loss_weight: float = 0 + subband_stft_loss_weight: float = 0 + mse_G_loss_weight: float = 1 + hinge_G_loss_weight: float = 0 + feat_match_loss_weight: float = 100 + l1_spec_loss_weight: float = 45 + + stft_loss_params: dict = field( + default_factory=lambda: { + "n_ffts": [1024, 2048, 512], + "hop_lengths": [120, 240, 50], + "win_lengths": [600, 1200, 240], + } + ) + + l1_spec_loss_params: dict = field( + default_factory=lambda: { + "use_mel": True, + "sample_rate": 22050, + "n_fft": 1024, + "hop_length": 256, + "win_length": 1024, + "n_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": None, + } + ) + + target_loss: str = "loss_0" # loss value to pick the best model to save after each epoch + + # optimizer + grad_clip: float = field(default_factory=lambda: [5, 5]) + lr_gen: float = 0.0002 # Initial learning rate. + lr_disc: float = 0.0002 # Initial learning rate. + lr_scheduler_gen: str = "ExponentialLR" # one of the schedulers from https:#pytorch.org/docs/stable/optim.html + lr_scheduler_gen_params: dict = field(default_factory=lambda: {"gamma": 0.999, "last_epoch": -1}) + lr_scheduler_disc: str = "ExponentialLR" # one of the schedulers from https:#pytorch.org/docs/stable/optim.html + lr_scheduler_disc_params: dict = field(default_factory=lambda: {"gamma": 0.999, "last_epoch": -1}) + scheduler_after_epoch: bool = True + + use_pqmf: bool = False # enable/disable using pqmf for multi-band training. (Multi-band MelGAN) + steps_to_start_discriminator = 0 # start training the discriminator after this number of steps. + diff_samples_for_G_and_D: bool = False # use different samples for G and D training steps. diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/univnet_config.py b/Indic-TTS/TTS/TTS/vocoder/configs/univnet_config.py new file mode 100644 index 0000000000000000000000000000000000000000..67f324cfce5f701f0d7453beab81590bef6be114 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/configs/univnet_config.py @@ -0,0 +1,161 @@ +from dataclasses import dataclass, field +from typing import Dict + +from TTS.vocoder.configs.shared_configs import BaseGANVocoderConfig + + +@dataclass +class UnivnetConfig(BaseGANVocoderConfig): + """Defines parameters for UnivNet vocoder. + + Example: + + >>> from TTS.vocoder.configs import UnivNetConfig + >>> config = UnivNetConfig() + + Args: + model (str): + Model name used for selecting the right model at initialization. Defaults to `UnivNet`. + discriminator_model (str): One of the discriminators from `TTS.vocoder.models.*_discriminator`. Defaults to + 'UnivNet_discriminator`. + generator_model (str): One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is + considered as a generator too. Defaults to `UnivNet_generator`. + generator_model_params (dict): Parameters of the generator model. Defaults to + ` + { + "use_mel": True, + "sample_rate": 22050, + "n_fft": 1024, + "hop_length": 256, + "win_length": 1024, + "n_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": None, + } + ` + batch_size (int): + Batch size used at training. Larger values use more memory. Defaults to 32. + seq_len (int): + Audio segment length used at training. Larger values use more memory. Defaults to 8192. + pad_short (int): + Additional padding applied to the audio samples shorter than `seq_len`. Defaults to 0. + use_noise_augment (bool): + enable / disable random noise added to the input waveform. The noise is added after computing the + features. Defaults to True. + use_cache (bool): + enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is + not large enough. Defaults to True. + use_stft_loss (bool): + enable / disable use of STFT loss originally used by ParallelWaveGAN model. Defaults to True. + use_subband_stft (bool): + enable / disable use of subband loss computation originally used by MultiBandMelgan model. Defaults to True. + use_mse_gan_loss (bool): + enable / disable using Mean Squeare Error GAN loss. Defaults to True. + use_hinge_gan_loss (bool): + enable / disable using Hinge GAN loss. You should choose either Hinge or MSE loss for training GAN models. + Defaults to False. + use_feat_match_loss (bool): + enable / disable using Feature Matching loss originally used by MelGAN model. Defaults to True. + use_l1_spec_loss (bool): + enable / disable using L1 spectrogram loss originally used by univnet model. Defaults to False. + stft_loss_params (dict): + STFT loss parameters. Default to + `{ + "n_ffts": [1024, 2048, 512], + "hop_lengths": [120, 240, 50], + "win_lengths": [600, 1200, 240] + }` + l1_spec_loss_params (dict): + L1 spectrogram loss parameters. Default to + `{ + "use_mel": True, + "sample_rate": 22050, + "n_fft": 1024, + "hop_length": 256, + "win_length": 1024, + "n_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": None, + }` + stft_loss_weight (float): STFT loss weight that multiplies the computed loss before summing up the total + model loss. Defaults to 0.5. + subband_stft_loss_weight (float): + Subband STFT loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + mse_G_loss_weight (float): + MSE generator loss weight that multiplies the computed loss before summing up the total loss. faults to 2.5. + hinge_G_loss_weight (float): + Hinge generator loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + feat_match_loss_weight (float): + Feature matching loss weight that multiplies the computed loss before summing up the total loss. faults to 108. + l1_spec_loss_weight (float): + L1 spectrogram loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0. + """ + + model: str = "univnet" + batch_size: int = 32 + # model specific params + discriminator_model: str = "univnet_discriminator" + generator_model: str = "univnet_generator" + generator_model_params: Dict = field( + default_factory=lambda: { + "in_channels": 64, + "out_channels": 1, + "hidden_channels": 32, + "cond_channels": 80, + "upsample_factors": [8, 8, 4], + "lvc_layers_each_block": 4, + "lvc_kernel_size": 3, + "kpnet_hidden_channels": 64, + "kpnet_conv_size": 3, + "dropout": 0.0, + } + ) + + # LOSS PARAMETERS - overrides + use_stft_loss: bool = True + use_subband_stft_loss: bool = False + use_mse_gan_loss: bool = True + use_hinge_gan_loss: bool = False + use_feat_match_loss: bool = False # requires MelGAN Discriminators (MelGAN and univnet) + use_l1_spec_loss: bool = False + + # loss weights - overrides + stft_loss_weight: float = 2.5 + stft_loss_params: Dict = field( + default_factory=lambda: { + "n_ffts": [1024, 2048, 512], + "hop_lengths": [120, 240, 50], + "win_lengths": [600, 1200, 240], + } + ) + subband_stft_loss_weight: float = 0 + mse_G_loss_weight: float = 1 + hinge_G_loss_weight: float = 0 + feat_match_loss_weight: float = 0 + l1_spec_loss_weight: float = 0 + l1_spec_loss_params: Dict = field( + default_factory=lambda: { + "use_mel": True, + "sample_rate": 22050, + "n_fft": 1024, + "hop_length": 256, + "win_length": 1024, + "n_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": None, + } + ) + + # optimizer parameters + lr_gen: float = 1e-4 # Initial learning rate. + lr_disc: float = 1e-4 # Initial learning rate. + lr_scheduler_gen: str = None # one of the schedulers from https:#pytorch.org/docs/stable/optim.html + # lr_scheduler_gen_params: dict = field(default_factory=lambda: {"gamma": 0.999, "last_epoch": -1}) + lr_scheduler_disc: str = None # one of the schedulers from https:#pytorch.org/docs/stable/optim.html + # lr_scheduler_disc_params: dict = field(default_factory=lambda: {"gamma": 0.999, "last_epoch": -1}) + optimizer_params: Dict = field(default_factory=lambda: {"betas": [0.5, 0.9], "weight_decay": 0.0}) + steps_to_start_discriminator: int = 200000 + + def __post_init__(self): + super().__post_init__() + self.generator_model_params["cond_channels"] = self.audio.num_mels diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/wavegrad_config.py b/Indic-TTS/TTS/TTS/vocoder/configs/wavegrad_config.py new file mode 100644 index 0000000000000000000000000000000000000000..c39813ae68c3d8c77614c9a5188ac5f2a59d991d --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/configs/wavegrad_config.py @@ -0,0 +1,90 @@ +from dataclasses import dataclass, field + +from TTS.vocoder.configs.shared_configs import BaseVocoderConfig +from TTS.vocoder.models.wavegrad import WavegradArgs + + +@dataclass +class WavegradConfig(BaseVocoderConfig): + """Defines parameters for WaveGrad vocoder. + Example: + + >>> from TTS.vocoder.configs import WavegradConfig + >>> config = WavegradConfig() + + Args: + model (str): + Model name used for selecting the right model at initialization. Defaults to `wavegrad`. + generator_model (str): One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is + considered as a generator too. Defaults to `wavegrad`. + model_params (WavegradArgs): Model parameters. Check `WavegradArgs` for default values. + target_loss (str): + Target loss name that defines the quality of the model. Defaults to `avg_wavegrad_loss`. + epochs (int): + Number of epochs to traing the model. Defaults to 10000. + batch_size (int): + Batch size used at training. Larger values use more memory. Defaults to 96. + seq_len (int): + Audio segment length used at training. Larger values use more memory. Defaults to 6144. + use_cache (bool): + enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is + not large enough. Defaults to True. + mixed_precision (bool): + enable / disable mixed precision training. Default is True. + eval_split_size (int): + Number of samples used for evalutaion. Defaults to 50. + train_noise_schedule (dict): + Training noise schedule. Defaults to + `{"min_val": 1e-6, "max_val": 1e-2, "num_steps": 1000}` + test_noise_schedule (dict): + Inference noise schedule. For a better performance, you may need to use `bin/tune_wavegrad.py` to find a + better schedule. Defaults to + ` + { + "min_val": 1e-6, + "max_val": 1e-2, + "num_steps": 50, + } + ` + grad_clip (float): + Gradient clipping threshold. If <= 0.0, no clipping is applied. Defaults to 1.0 + lr (float): + Initila leraning rate. Defaults to 1e-4. + lr_scheduler (str): + One of the learning rate schedulers from `torch.optim.scheduler.*`. Defaults to `MultiStepLR`. + lr_scheduler_params (dict): + kwargs for the scheduler. Defaults to `{"gamma": 0.5, "milestones": [100000, 200000, 300000, 400000, 500000, 600000]}` + """ + + model: str = "wavegrad" + # Model specific params + generator_model: str = "wavegrad" + model_params: WavegradArgs = field(default_factory=WavegradArgs) + target_loss: str = "loss" # loss value to pick the best model to save after each epoch + + # Training - overrides + epochs: int = 10000 + batch_size: int = 96 + seq_len: int = 6144 + use_cache: bool = True + mixed_precision: bool = True + eval_split_size: int = 50 + + # NOISE SCHEDULE PARAMS + train_noise_schedule: dict = field(default_factory=lambda: {"min_val": 1e-6, "max_val": 1e-2, "num_steps": 1000}) + + test_noise_schedule: dict = field( + default_factory=lambda: { # inference noise schedule. Try TTS/bin/tune_wavegrad.py to find the optimal values. + "min_val": 1e-6, + "max_val": 1e-2, + "num_steps": 50, + } + ) + + # optimizer overrides + grad_clip: float = 1.0 + lr: float = 1e-4 # Initial learning rate. + lr_scheduler: str = "MultiStepLR" # one of the schedulers from https:#pytorch.org/docs/stable/optim.html + lr_scheduler_params: dict = field( + default_factory=lambda: {"gamma": 0.5, "milestones": [100000, 200000, 300000, 400000, 500000, 600000]} + ) diff --git a/Indic-TTS/TTS/TTS/vocoder/configs/wavernn_config.py b/Indic-TTS/TTS/TTS/vocoder/configs/wavernn_config.py new file mode 100644 index 0000000000000000000000000000000000000000..f39400e5e50b56d4ff79c8c148fd518b3ec3b390 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/configs/wavernn_config.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass, field + +from TTS.vocoder.configs.shared_configs import BaseVocoderConfig +from TTS.vocoder.models.wavernn import WavernnArgs + + +@dataclass +class WavernnConfig(BaseVocoderConfig): + """Defines parameters for Wavernn vocoder. + Example: + + >>> from TTS.vocoder.configs import WavernnConfig + >>> config = WavernnConfig() + + Args: + model (str): + Model name used for selecting the right model at initialization. Defaults to `wavernn`. + mode (str): + Output mode of the WaveRNN vocoder. `mold` for Mixture of Logistic Distribution, `gauss` for a single + Gaussian Distribution and `bits` for quantized bits as the model's output. + mulaw (bool): + enable / disable the use of Mulaw quantization for training. Only applicable if `mode == 'bits'`. Defaults + to `True`. + generator_model (str): + One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is + considered as a generator too. Defaults to `WaveRNN`. + wavernn_model_params (dict): + kwargs for the WaveRNN model. Defaults to + `{ + "rnn_dims": 512, + "fc_dims": 512, + "compute_dims": 128, + "res_out_dims": 128, + "num_res_blocks": 10, + "use_aux_net": True, + "use_upsample_net": True, + "upsample_factors": [4, 8, 8] + }` + batched (bool): + enable / disable the batched inference. It speeds up the inference by splitting the input into segments and + processing the segments in a batch. Then it merges the outputs with a certain overlap and smoothing. If + you set it False, without CUDA, it is too slow to be practical. Defaults to True. + target_samples (int): + Size of the segments in batched mode. Defaults to 11000. + overlap_sampels (int): + Size of the overlap between consecutive segments. Defaults to 550. + batch_size (int): + Batch size used at training. Larger values use more memory. Defaults to 256. + seq_len (int): + Audio segment length used at training. Larger values use more memory. Defaults to 1280. + + use_noise_augment (bool): + enable / disable random noise added to the input waveform. The noise is added after computing the + features. Defaults to True. + use_cache (bool): + enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is + not large enough. Defaults to True. + mixed_precision (bool): + enable / disable mixed precision training. Default is True. + eval_split_size (int): + Number of samples used for evalutaion. Defaults to 50. + num_epochs_before_test (int): + Number of epochs waited to run the next evalution. Since inference takes some time, it is better to + wait some number of epochs not ot waste training time. Defaults to 10. + grad_clip (float): + Gradient clipping threshold. If <= 0.0, no clipping is applied. Defaults to 4.0 + lr (float): + Initila leraning rate. Defaults to 1e-4. + lr_scheduler (str): + One of the learning rate schedulers from `torch.optim.scheduler.*`. Defaults to `MultiStepLR`. + lr_scheduler_params (dict): + kwargs for the scheduler. Defaults to `{"gamma": 0.5, "milestones": [200000, 400000, 600000]}` + """ + + model: str = "wavernn" + + # Model specific params + model_args: WavernnArgs = field(default_factory=WavernnArgs) + target_loss: str = "loss" + + # Inference + batched: bool = True + target_samples: int = 11000 + overlap_samples: int = 550 + + # Training - overrides + epochs: int = 10000 + batch_size: int = 256 + seq_len: int = 1280 + use_noise_augment: bool = False + use_cache: bool = True + mixed_precision: bool = True + eval_split_size: int = 50 + num_epochs_before_test: int = ( + 10 # number of epochs to wait until the next test run (synthesizing a full audio clip). + ) + + # optimizer overrides + grad_clip: float = 4.0 + lr: float = 1e-4 # Initial learning rate. + lr_scheduler: str = "MultiStepLR" # one of the schedulers from https:#pytorch.org/docs/stable/optim.html + lr_scheduler_params: dict = field(default_factory=lambda: {"gamma": 0.5, "milestones": [200000, 400000, 600000]}) diff --git a/Indic-TTS/TTS/TTS/vocoder/datasets/__init__.py b/Indic-TTS/TTS/TTS/vocoder/datasets/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..871eb0d20276ffc691fd6da796bf65df6c23ea0d --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/datasets/__init__.py @@ -0,0 +1,58 @@ +from typing import List + +from coqpit import Coqpit +from torch.utils.data import Dataset + +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.datasets.gan_dataset import GANDataset +from TTS.vocoder.datasets.preprocess import load_wav_data, load_wav_feat_data +from TTS.vocoder.datasets.wavegrad_dataset import WaveGradDataset +from TTS.vocoder.datasets.wavernn_dataset import WaveRNNDataset + + +def setup_dataset(config: Coqpit, ap: AudioProcessor, is_eval: bool, data_items: List, verbose: bool) -> Dataset: + if config.model.lower() in "gan": + dataset = GANDataset( + ap=ap, + items=data_items, + seq_len=config.seq_len, + hop_len=ap.hop_length, + pad_short=config.pad_short, + conv_pad=config.conv_pad, + return_pairs=config.diff_samples_for_G_and_D if "diff_samples_for_G_and_D" in config else False, + is_training=not is_eval, + return_segments=not is_eval, + use_noise_augment=config.use_noise_augment, + use_cache=config.use_cache, + verbose=verbose, + ) + dataset.shuffle_mapping() + elif config.model.lower() == "wavegrad": + dataset = WaveGradDataset( + ap=ap, + items=data_items, + seq_len=config.seq_len, + hop_len=ap.hop_length, + pad_short=config.pad_short, + conv_pad=config.conv_pad, + is_training=not is_eval, + return_segments=True, + use_noise_augment=False, + use_cache=config.use_cache, + verbose=verbose, + ) + elif config.model.lower() == "wavernn": + dataset = WaveRNNDataset( + ap=ap, + items=data_items, + seq_len=config.seq_len, + hop_len=ap.hop_length, + pad=config.model_params.pad, + mode=config.model_params.mode, + mulaw=config.model_params.mulaw, + is_training=not is_eval, + verbose=verbose, + ) + else: + raise ValueError(f" [!] Dataset for model {config.model.lower()} cannot be found.") + return dataset diff --git a/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e3d8dd02a3fa3edac9bab37bc5fae3373d4a2a95 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/gan_dataset.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/gan_dataset.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..075bed05a5d1da47d38b02647aadccd010a1c5d1 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/gan_dataset.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/preprocess.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/preprocess.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..22d799e327a2561db2c2a52fba97f0b16369d31d Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/preprocess.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/wavegrad_dataset.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/wavegrad_dataset.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91c883de576a234d2d83cb7f5c26194e26084f73 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/wavegrad_dataset.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/wavernn_dataset.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/wavernn_dataset.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e21a6c7581b6811a8fec59d3ef93006616331b5b Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/datasets/__pycache__/wavernn_dataset.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/datasets/gan_dataset.py b/Indic-TTS/TTS/TTS/vocoder/datasets/gan_dataset.py new file mode 100644 index 0000000000000000000000000000000000000000..a782067e1badef3522ac5b7d1b6407e3f291502a --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/datasets/gan_dataset.py @@ -0,0 +1,153 @@ +import glob +import os +import random +from multiprocessing import Manager + +import numpy as np +import torch +from torch.utils.data import Dataset + + +class GANDataset(Dataset): + """ + GAN Dataset searchs for all the wav files under root path + and converts them to acoustic features on the fly and returns + random segments of (audio, feature) couples. + """ + + def __init__( + self, + ap, + items, + seq_len, + hop_len, + pad_short, + conv_pad=2, + return_pairs=False, + is_training=True, + return_segments=True, + use_noise_augment=False, + use_cache=False, + verbose=False, + ): + super().__init__() + self.ap = ap + self.item_list = items + self.compute_feat = not isinstance(items[0], (tuple, list)) + self.seq_len = seq_len + self.hop_len = hop_len + self.pad_short = pad_short + self.conv_pad = conv_pad + self.return_pairs = return_pairs + self.is_training = is_training + self.return_segments = return_segments + self.use_cache = use_cache + self.use_noise_augment = use_noise_augment + self.verbose = verbose + + assert seq_len % hop_len == 0, " [!] seq_len has to be a multiple of hop_len." + self.feat_frame_len = seq_len // hop_len + (2 * conv_pad) + + # map G and D instances + self.G_to_D_mappings = list(range(len(self.item_list))) + self.shuffle_mapping() + + # cache acoustic features + if use_cache: + self.create_feature_cache() + + def create_feature_cache(self): + self.manager = Manager() + self.cache = self.manager.list() + self.cache += [None for _ in range(len(self.item_list))] + + @staticmethod + def find_wav_files(path): + return glob.glob(os.path.join(path, "**", "*.wav"), recursive=True) + + def __len__(self): + return len(self.item_list) + + def __getitem__(self, idx): + """Return different items for Generator and Discriminator and + cache acoustic features""" + + # set the seed differently for each worker + if torch.utils.data.get_worker_info(): + random.seed(torch.utils.data.get_worker_info().seed) + + if self.return_segments: + item1 = self.load_item(idx) + if self.return_pairs: + idx2 = self.G_to_D_mappings[idx] + item2 = self.load_item(idx2) + return item1, item2 + return item1 + item1 = self.load_item(idx) + return item1 + + def _pad_short_samples(self, audio, mel=None): + """Pad samples shorter than the output sequence length""" + if len(audio) < self.seq_len: + audio = np.pad(audio, (0, self.seq_len - len(audio)), mode="constant", constant_values=0.0) + + if mel is not None and mel.shape[1] < self.feat_frame_len: + pad_value = self.ap.melspectrogram(np.zeros([self.ap.win_length]))[:, 0] + mel = np.pad( + mel, + ([0, 0], [0, self.feat_frame_len - mel.shape[1]]), + mode="constant", + constant_values=pad_value.mean(), + ) + return audio, mel + + def shuffle_mapping(self): + random.shuffle(self.G_to_D_mappings) + + def load_item(self, idx): + """load (audio, feat) couple""" + if self.compute_feat: + # compute features from wav + wavpath = self.item_list[idx] + # print(wavpath) + + if self.use_cache and self.cache[idx] is not None: + audio, mel = self.cache[idx] + else: + audio = self.ap.load_wav(wavpath) + mel = self.ap.melspectrogram(audio) + audio, mel = self._pad_short_samples(audio, mel) + else: + + # load precomputed features + wavpath, feat_path = self.item_list[idx] + + if self.use_cache and self.cache[idx] is not None: + audio, mel = self.cache[idx] + else: + audio = self.ap.load_wav(wavpath) + mel = np.load(feat_path) + audio, mel = self._pad_short_samples(audio, mel) + + # correct the audio length wrt padding applied in stft + audio = np.pad(audio, (0, self.hop_len), mode="edge") + audio = audio[: mel.shape[-1] * self.hop_len] + assert ( + mel.shape[-1] * self.hop_len == audio.shape[-1] + ), f" [!] {mel.shape[-1] * self.hop_len} vs {audio.shape[-1]}" + + audio = torch.from_numpy(audio).float().unsqueeze(0) + mel = torch.from_numpy(mel).float().squeeze(0) + + if self.return_segments: + max_mel_start = mel.shape[1] - self.feat_frame_len + mel_start = random.randint(0, max_mel_start) + mel_end = mel_start + self.feat_frame_len + mel = mel[:, mel_start:mel_end] + + audio_start = mel_start * self.hop_len + audio = audio[:, audio_start : audio_start + self.seq_len] + + if self.use_noise_augment and self.is_training and self.return_segments: + audio = audio + (1 / 32768) * torch.randn_like(audio) + return (mel, audio) diff --git a/Indic-TTS/TTS/TTS/vocoder/datasets/preprocess.py b/Indic-TTS/TTS/TTS/vocoder/datasets/preprocess.py new file mode 100644 index 0000000000000000000000000000000000000000..0f69b812fa58949eadc78b450114f03b19e5c80c --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/datasets/preprocess.py @@ -0,0 +1,70 @@ +import glob +import os +from pathlib import Path + +import numpy as np +from coqpit import Coqpit +from tqdm import tqdm + +from TTS.utils.audio import AudioProcessor + + +def preprocess_wav_files(out_path: str, config: Coqpit, ap: AudioProcessor): + """Process wav and compute mel and quantized wave signal. + It is mainly used by WaveRNN dataloader. + + Args: + out_path (str): Parent folder path to save the files. + config (Coqpit): Model config. + ap (AudioProcessor): Audio processor. + """ + os.makedirs(os.path.join(out_path, "quant"), exist_ok=True) + os.makedirs(os.path.join(out_path, "mel"), exist_ok=True) + wav_files = find_wav_files(config.data_path) + for path in tqdm(wav_files): + wav_name = Path(path).stem + quant_path = os.path.join(out_path, "quant", wav_name + ".npy") + mel_path = os.path.join(out_path, "mel", wav_name + ".npy") + y = ap.load_wav(path) + mel = ap.melspectrogram(y) + np.save(mel_path, mel) + if isinstance(config.mode, int): + quant = ap.mulaw_encode(y, qc=config.mode) if config.model_args.mulaw else ap.quantize(y, bits=config.mode) + np.save(quant_path, quant) + + +def find_wav_files(data_path, file_ext="wav"): + wav_paths = glob.glob(os.path.join(data_path, "**", f"*.{file_ext}"), recursive=True) + return wav_paths + + +def find_feat_files(data_path): + feat_paths = glob.glob(os.path.join(data_path, "**", "*.npy"), recursive=True) + return feat_paths + + +def load_wav_data(data_path, eval_split_size, file_ext="wav"): + wav_paths = find_wav_files(data_path, file_ext=file_ext) + assert len(wav_paths) > 0, f" [!] {data_path} is empty." + np.random.seed(0) + np.random.shuffle(wav_paths) + return wav_paths[:eval_split_size], wav_paths[eval_split_size:] + + +def load_wav_feat_data(data_path, feat_path, eval_split_size): + wav_paths = find_wav_files(data_path) + feat_paths = find_feat_files(feat_path) + + wav_paths.sort(key=lambda x: Path(x).stem) + feat_paths.sort(key=lambda x: Path(x).stem) + + assert len(wav_paths) == len(feat_paths), f" [!] {len(wav_paths)} vs {feat_paths}" + for wav, feat in zip(wav_paths, feat_paths): + wav_name = Path(wav).stem + feat_name = Path(feat).stem + assert wav_name == feat_name + + items = list(zip(wav_paths, feat_paths)) + np.random.seed(0) + np.random.shuffle(items) + return items[:eval_split_size], items[eval_split_size:] diff --git a/Indic-TTS/TTS/TTS/vocoder/datasets/wavegrad_dataset.py b/Indic-TTS/TTS/TTS/vocoder/datasets/wavegrad_dataset.py new file mode 100644 index 0000000000000000000000000000000000000000..05e0fae8873d8606ddf4ab2743b3cf1f47db85f9 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/datasets/wavegrad_dataset.py @@ -0,0 +1,152 @@ +import glob +import os +import random +from multiprocessing import Manager +from typing import List, Tuple + +import numpy as np +import torch +from torch.utils.data import Dataset + + +class WaveGradDataset(Dataset): + """ + WaveGrad Dataset searchs for all the wav files under root path + and converts them to acoustic features on the fly and returns + random segments of (audio, feature) couples. + """ + + def __init__( + self, + ap, + items, + seq_len, + hop_len, + pad_short, + conv_pad=2, + is_training=True, + return_segments=True, + use_noise_augment=False, + use_cache=False, + verbose=False, + ): + + super().__init__() + self.ap = ap + self.item_list = items + self.seq_len = seq_len if return_segments else None + self.hop_len = hop_len + self.pad_short = pad_short + self.conv_pad = conv_pad + self.is_training = is_training + self.return_segments = return_segments + self.use_cache = use_cache + self.use_noise_augment = use_noise_augment + self.verbose = verbose + + if return_segments: + assert seq_len % hop_len == 0, " [!] seq_len has to be a multiple of hop_len." + self.feat_frame_len = seq_len // hop_len + (2 * conv_pad) + + # cache acoustic features + if use_cache: + self.create_feature_cache() + + def create_feature_cache(self): + self.manager = Manager() + self.cache = self.manager.list() + self.cache += [None for _ in range(len(self.item_list))] + + @staticmethod + def find_wav_files(path): + return glob.glob(os.path.join(path, "**", "*.wav"), recursive=True) + + def __len__(self): + return len(self.item_list) + + def __getitem__(self, idx): + item = self.load_item(idx) + return item + + def load_test_samples(self, num_samples: int) -> List[Tuple]: + """Return test samples. + + Args: + num_samples (int): Number of samples to return. + + Returns: + List[Tuple]: melspectorgram and audio. + + Shapes: + - melspectrogram (Tensor): :math:`[C, T]` + - audio (Tensor): :math:`[T_audio]` + """ + samples = [] + return_segments = self.return_segments + self.return_segments = False + for idx in range(num_samples): + mel, audio = self.load_item(idx) + samples.append([mel, audio]) + self.return_segments = return_segments + return samples + + def load_item(self, idx): + """load (audio, feat) couple""" + # compute features from wav + wavpath = self.item_list[idx] + + if self.use_cache and self.cache[idx] is not None: + audio = self.cache[idx] + else: + audio = self.ap.load_wav(wavpath) + + if self.return_segments: + # correct audio length wrt segment length + if audio.shape[-1] < self.seq_len + self.pad_short: + audio = np.pad( + audio, (0, self.seq_len + self.pad_short - len(audio)), mode="constant", constant_values=0.0 + ) + assert ( + audio.shape[-1] >= self.seq_len + self.pad_short + ), f"{audio.shape[-1]} vs {self.seq_len + self.pad_short}" + + # correct the audio length wrt hop length + p = (audio.shape[-1] // self.hop_len + 1) * self.hop_len - audio.shape[-1] + audio = np.pad(audio, (0, p), mode="constant", constant_values=0.0) + + if self.use_cache: + self.cache[idx] = audio + + if self.return_segments: + max_start = len(audio) - self.seq_len + start = random.randint(0, max_start) + end = start + self.seq_len + audio = audio[start:end] + + if self.use_noise_augment and self.is_training and self.return_segments: + audio = audio + (1 / 32768) * torch.randn_like(audio) + + mel = self.ap.melspectrogram(audio) + mel = mel[..., :-1] # ignore the padding + + audio = torch.from_numpy(audio).float() + mel = torch.from_numpy(mel).float().squeeze(0) + return (mel, audio) + + @staticmethod + def collate_full_clips(batch): + """This is used in tune_wavegrad.py. + It pads sequences to the max length.""" + max_mel_length = max([b[0].shape[1] for b in batch]) if len(batch) > 1 else batch[0][0].shape[1] + max_audio_length = max([b[1].shape[0] for b in batch]) if len(batch) > 1 else batch[0][1].shape[0] + + mels = torch.zeros([len(batch), batch[0][0].shape[0], max_mel_length]) + audios = torch.zeros([len(batch), max_audio_length]) + + for idx, b in enumerate(batch): + mel = b[0] + audio = b[1] + mels[idx, :, : mel.shape[1]] = mel + audios[idx, : audio.shape[0]] = audio + + return audios, mels diff --git a/Indic-TTS/TTS/TTS/vocoder/datasets/wavernn_dataset.py b/Indic-TTS/TTS/TTS/vocoder/datasets/wavernn_dataset.py new file mode 100644 index 0000000000000000000000000000000000000000..2c771cf0ed5bb228eb8f4aaa6c850665c4997170 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/datasets/wavernn_dataset.py @@ -0,0 +1,117 @@ +import numpy as np +import torch +from torch.utils.data import Dataset + + +class WaveRNNDataset(Dataset): + """ + WaveRNN Dataset searchs for all the wav files under root path + and converts them to acoustic features on the fly. + """ + + def __init__( + self, ap, items, seq_len, hop_len, pad, mode, mulaw, is_training=True, verbose=False, return_segments=True + ): + + super().__init__() + self.ap = ap + self.compute_feat = not isinstance(items[0], (tuple, list)) + self.item_list = items + self.seq_len = seq_len + self.hop_len = hop_len + self.mel_len = seq_len // hop_len + self.pad = pad + self.mode = mode + self.mulaw = mulaw + self.is_training = is_training + self.verbose = verbose + self.return_segments = return_segments + + assert self.seq_len % self.hop_len == 0 + + def __len__(self): + return len(self.item_list) + + def __getitem__(self, index): + item = self.load_item(index) + return item + + def load_test_samples(self, num_samples): + samples = [] + return_segments = self.return_segments + self.return_segments = False + for idx in range(num_samples): + mel, audio, _ = self.load_item(idx) + samples.append([mel, audio]) + self.return_segments = return_segments + return samples + + def load_item(self, index): + """ + load (audio, feat) couple if feature_path is set + else compute it on the fly + """ + if self.compute_feat: + + wavpath = self.item_list[index] + audio = self.ap.load_wav(wavpath) + if self.return_segments: + min_audio_len = 2 * self.seq_len + (2 * self.pad * self.hop_len) + else: + min_audio_len = audio.shape[0] + (2 * self.pad * self.hop_len) + if audio.shape[0] < min_audio_len: + print(" [!] Instance is too short! : {}".format(wavpath)) + audio = np.pad(audio, [0, min_audio_len - audio.shape[0] + self.hop_len]) + mel = self.ap.melspectrogram(audio) + + if self.mode in ["gauss", "mold"]: + x_input = audio + elif isinstance(self.mode, int): + x_input = ( + self.ap.mulaw_encode(audio, qc=self.mode) if self.mulaw else self.ap.quantize(audio, bits=self.mode) + ) + else: + raise RuntimeError("Unknown dataset mode - ", self.mode) + + else: + + wavpath, feat_path = self.item_list[index] + mel = np.load(feat_path.replace("/quant/", "/mel/")) + + if mel.shape[-1] < self.mel_len + 2 * self.pad: + print(" [!] Instance is too short! : {}".format(wavpath)) + self.item_list[index] = self.item_list[index + 1] + feat_path = self.item_list[index] + mel = np.load(feat_path.replace("/quant/", "/mel/")) + if self.mode in ["gauss", "mold"]: + x_input = self.ap.load_wav(wavpath) + elif isinstance(self.mode, int): + x_input = np.load(feat_path.replace("/mel/", "/quant/")) + else: + raise RuntimeError("Unknown dataset mode - ", self.mode) + + return mel, x_input, wavpath + + def collate(self, batch): + mel_win = self.seq_len // self.hop_len + 2 * self.pad + max_offsets = [x[0].shape[-1] - (mel_win + 2 * self.pad) for x in batch] + + mel_offsets = [np.random.randint(0, offset) for offset in max_offsets] + sig_offsets = [(offset + self.pad) * self.hop_len for offset in mel_offsets] + + mels = [x[0][:, mel_offsets[i] : mel_offsets[i] + mel_win] for i, x in enumerate(batch)] + + coarse = [x[1][sig_offsets[i] : sig_offsets[i] + self.seq_len + 1] for i, x in enumerate(batch)] + + mels = np.stack(mels).astype(np.float32) + if self.mode in ["gauss", "mold"]: + coarse = np.stack(coarse).astype(np.float32) + coarse = torch.FloatTensor(coarse) + x_input = coarse[:, : self.seq_len] + elif isinstance(self.mode, int): + coarse = np.stack(coarse).astype(np.int64) + coarse = torch.LongTensor(coarse) + x_input = 2 * coarse[:, : self.seq_len].float() / (2**self.mode - 1.0) - 1.0 + y_coarse = coarse[:, 1:] + mels = torch.FloatTensor(mels) + return x_input, mels, y_coarse diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/__init__.py b/Indic-TTS/TTS/TTS/vocoder/layers/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/layers/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..89b9cc7d3681fa225ddeecec7b98fd0f8707b927 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/layers/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/__pycache__/losses.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/layers/__pycache__/losses.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ddaba4e221eb94d2851db9b3374f5c7df23c6392 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/layers/__pycache__/losses.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/__pycache__/wavegrad.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/layers/__pycache__/wavegrad.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b2944ef82055c20be3f4f75cd555b6003a4f26b1 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/layers/__pycache__/wavegrad.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/hifigan.py b/Indic-TTS/TTS/TTS/vocoder/layers/hifigan.py new file mode 100644 index 0000000000000000000000000000000000000000..f51200724887b04746a125b7d7c368e0315ce7da --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/layers/hifigan.py @@ -0,0 +1,53 @@ +from torch import nn + + +# pylint: disable=dangerous-default-value +class ResStack(nn.Module): + def __init__(self, kernel, channel, padding, dilations=[1, 3, 5]): + super().__init__() + resstack = [] + for dilation in dilations: + resstack += [ + nn.LeakyReLU(0.2), + nn.ReflectionPad1d(dilation), + nn.utils.weight_norm(nn.Conv1d(channel, channel, kernel_size=kernel, dilation=dilation)), + nn.LeakyReLU(0.2), + nn.ReflectionPad1d(padding), + nn.utils.weight_norm(nn.Conv1d(channel, channel, kernel_size=1)), + ] + self.resstack = nn.Sequential(*resstack) + + self.shortcut = nn.utils.weight_norm(nn.Conv1d(channel, channel, kernel_size=1)) + + def forward(self, x): + x1 = self.shortcut(x) + x2 = self.resstack(x) + return x1 + x2 + + def remove_weight_norm(self): + nn.utils.remove_weight_norm(self.shortcut) + nn.utils.remove_weight_norm(self.resstack[2]) + nn.utils.remove_weight_norm(self.resstack[5]) + nn.utils.remove_weight_norm(self.resstack[8]) + nn.utils.remove_weight_norm(self.resstack[11]) + nn.utils.remove_weight_norm(self.resstack[14]) + nn.utils.remove_weight_norm(self.resstack[17]) + + +class MRF(nn.Module): + def __init__(self, kernels, channel, dilations=[1, 3, 5]): # # pylint: disable=dangerous-default-value + super().__init__() + self.resblock1 = ResStack(kernels[0], channel, 0, dilations) + self.resblock2 = ResStack(kernels[1], channel, 6, dilations) + self.resblock3 = ResStack(kernels[2], channel, 12, dilations) + + def forward(self, x): + x1 = self.resblock1(x) + x2 = self.resblock2(x) + x3 = self.resblock3(x) + return x1 + x2 + x3 + + def remove_weight_norm(self): + self.resblock1.remove_weight_norm() + self.resblock2.remove_weight_norm() + self.resblock3.remove_weight_norm() diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/losses.py b/Indic-TTS/TTS/TTS/vocoder/layers/losses.py new file mode 100644 index 0000000000000000000000000000000000000000..848e292b8390f054366f1ea9a4f858a0e55cf50c --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/layers/losses.py @@ -0,0 +1,368 @@ +from typing import Dict, Union + +import torch +from torch import nn +from torch.nn import functional as F + +from TTS.utils.audio import TorchSTFT +from TTS.vocoder.utils.distribution import discretized_mix_logistic_loss, gaussian_loss + +################################# +# GENERATOR LOSSES +################################# + + +class STFTLoss(nn.Module): + """STFT loss. Input generate and real waveforms are converted + to spectrograms compared with L1 and Spectral convergence losses. + It is from ParallelWaveGAN paper https://arxiv.org/pdf/1910.11480.pdf""" + + def __init__(self, n_fft, hop_length, win_length): + super().__init__() + self.n_fft = n_fft + self.hop_length = hop_length + self.win_length = win_length + self.stft = TorchSTFT(n_fft, hop_length, win_length) + + def forward(self, y_hat, y): + y_hat_M = self.stft(y_hat) + y_M = self.stft(y) + # magnitude loss + loss_mag = F.l1_loss(torch.log(y_M), torch.log(y_hat_M)) + # spectral convergence loss + loss_sc = torch.norm(y_M - y_hat_M, p="fro") / torch.norm(y_M, p="fro") + return loss_mag, loss_sc + + +class MultiScaleSTFTLoss(torch.nn.Module): + """Multi-scale STFT loss. Input generate and real waveforms are converted + to spectrograms compared with L1 and Spectral convergence losses. + It is from ParallelWaveGAN paper https://arxiv.org/pdf/1910.11480.pdf""" + + def __init__(self, n_ffts=(1024, 2048, 512), hop_lengths=(120, 240, 50), win_lengths=(600, 1200, 240)): + super().__init__() + self.loss_funcs = torch.nn.ModuleList() + for n_fft, hop_length, win_length in zip(n_ffts, hop_lengths, win_lengths): + self.loss_funcs.append(STFTLoss(n_fft, hop_length, win_length)) + + def forward(self, y_hat, y): + N = len(self.loss_funcs) + loss_sc = 0 + loss_mag = 0 + for f in self.loss_funcs: + lm, lsc = f(y_hat, y) + loss_mag += lm + loss_sc += lsc + loss_sc /= N + loss_mag /= N + return loss_mag, loss_sc + + +class L1SpecLoss(nn.Module): + """L1 Loss over Spectrograms as described in HiFiGAN paper https://arxiv.org/pdf/2010.05646.pdf""" + + def __init__( + self, sample_rate, n_fft, hop_length, win_length, mel_fmin=None, mel_fmax=None, n_mels=None, use_mel=True + ): + super().__init__() + self.use_mel = use_mel + self.stft = TorchSTFT( + n_fft, + hop_length, + win_length, + sample_rate=sample_rate, + mel_fmin=mel_fmin, + mel_fmax=mel_fmax, + n_mels=n_mels, + use_mel=use_mel, + ) + + def forward(self, y_hat, y): + y_hat_M = self.stft(y_hat) + y_M = self.stft(y) + # magnitude loss + loss_mag = F.l1_loss(torch.log(y_M), torch.log(y_hat_M)) + return loss_mag + + +class MultiScaleSubbandSTFTLoss(MultiScaleSTFTLoss): + """Multiscale STFT loss for multi band model outputs. + From MultiBand-MelGAN paper https://arxiv.org/abs/2005.05106""" + + # pylint: disable=no-self-use + def forward(self, y_hat, y): + y_hat = y_hat.view(-1, 1, y_hat.shape[2]) + y = y.view(-1, 1, y.shape[2]) + return super().forward(y_hat.squeeze(1), y.squeeze(1)) + + +class MSEGLoss(nn.Module): + """Mean Squared Generator Loss""" + + # pylint: disable=no-self-use + def forward(self, score_real): + loss_fake = F.mse_loss(score_real, score_real.new_ones(score_real.shape)) + return loss_fake + + +class HingeGLoss(nn.Module): + """Hinge Discriminator Loss""" + + # pylint: disable=no-self-use + def forward(self, score_real): + # TODO: this might be wrong + loss_fake = torch.mean(F.relu(1.0 - score_real)) + return loss_fake + + +################################## +# DISCRIMINATOR LOSSES +################################## + + +class MSEDLoss(nn.Module): + """Mean Squared Discriminator Loss""" + + def __init__( + self, + ): + super().__init__() + self.loss_func = nn.MSELoss() + + # pylint: disable=no-self-use + def forward(self, score_fake, score_real): + loss_real = self.loss_func(score_real, score_real.new_ones(score_real.shape)) + loss_fake = self.loss_func(score_fake, score_fake.new_zeros(score_fake.shape)) + loss_d = loss_real + loss_fake + return loss_d, loss_real, loss_fake + + +class HingeDLoss(nn.Module): + """Hinge Discriminator Loss""" + + # pylint: disable=no-self-use + def forward(self, score_fake, score_real): + loss_real = torch.mean(F.relu(1.0 - score_real)) + loss_fake = torch.mean(F.relu(1.0 + score_fake)) + loss_d = loss_real + loss_fake + return loss_d, loss_real, loss_fake + + +class MelganFeatureLoss(nn.Module): + def __init__( + self, + ): + super().__init__() + self.loss_func = nn.L1Loss() + + # pylint: disable=no-self-use + def forward(self, fake_feats, real_feats): + loss_feats = 0 + num_feats = 0 + for idx, _ in enumerate(fake_feats): + for fake_feat, real_feat in zip(fake_feats[idx], real_feats[idx]): + loss_feats += self.loss_func(fake_feat, real_feat) + num_feats += 1 + loss_feats = loss_feats / num_feats + return loss_feats + + +##################################### +# LOSS WRAPPERS +##################################### + + +def _apply_G_adv_loss(scores_fake, loss_func): + """Compute G adversarial loss function + and normalize values""" + adv_loss = 0 + if isinstance(scores_fake, list): + for score_fake in scores_fake: + fake_loss = loss_func(score_fake) + adv_loss += fake_loss + adv_loss /= len(scores_fake) + else: + fake_loss = loss_func(scores_fake) + adv_loss = fake_loss + return adv_loss + + +def _apply_D_loss(scores_fake, scores_real, loss_func): + """Compute D loss func and normalize loss values""" + loss = 0 + real_loss = 0 + fake_loss = 0 + if isinstance(scores_fake, list): + # multi-scale loss + for score_fake, score_real in zip(scores_fake, scores_real): + total_loss, real_loss, fake_loss = loss_func(score_fake=score_fake, score_real=score_real) + loss += total_loss + real_loss += real_loss + fake_loss += fake_loss + # normalize loss values with number of scales (discriminators) + loss /= len(scores_fake) + real_loss /= len(scores_real) + fake_loss /= len(scores_fake) + else: + # single scale loss + total_loss, real_loss, fake_loss = loss_func(scores_fake, scores_real) + loss = total_loss + return loss, real_loss, fake_loss + + +################################## +# MODEL LOSSES +################################## + + +class GeneratorLoss(nn.Module): + """Generator Loss Wrapper. Based on model configuration it sets a right set of loss functions and computes + losses. It allows to experiment with different combinations of loss functions with different models by just + changing configurations. + + Args: + C (AttrDict): model configuration. + """ + + def __init__(self, C): + super().__init__() + assert not ( + C.use_mse_gan_loss and C.use_hinge_gan_loss + ), " [!] Cannot use HingeGANLoss and MSEGANLoss together." + + self.use_stft_loss = C.use_stft_loss if "use_stft_loss" in C else False + self.use_subband_stft_loss = C.use_subband_stft_loss if "use_subband_stft_loss" in C else False + self.use_mse_gan_loss = C.use_mse_gan_loss if "use_mse_gan_loss" in C else False + self.use_hinge_gan_loss = C.use_hinge_gan_loss if "use_hinge_gan_loss" in C else False + self.use_feat_match_loss = C.use_feat_match_loss if "use_feat_match_loss" in C else False + self.use_l1_spec_loss = C.use_l1_spec_loss if "use_l1_spec_loss" in C else False + + self.stft_loss_weight = C.stft_loss_weight if "stft_loss_weight" in C else 0.0 + self.subband_stft_loss_weight = C.subband_stft_loss_weight if "subband_stft_loss_weight" in C else 0.0 + self.mse_gan_loss_weight = C.mse_G_loss_weight if "mse_G_loss_weight" in C else 0.0 + self.hinge_gan_loss_weight = C.hinge_G_loss_weight if "hinde_G_loss_weight" in C else 0.0 + self.feat_match_loss_weight = C.feat_match_loss_weight if "feat_match_loss_weight" in C else 0.0 + self.l1_spec_loss_weight = C.l1_spec_loss_weight if "l1_spec_loss_weight" in C else 0.0 + + if C.use_stft_loss: + self.stft_loss = MultiScaleSTFTLoss(**C.stft_loss_params) + if C.use_subband_stft_loss: + self.subband_stft_loss = MultiScaleSubbandSTFTLoss(**C.subband_stft_loss_params) + if C.use_mse_gan_loss: + self.mse_loss = MSEGLoss() + if C.use_hinge_gan_loss: + self.hinge_loss = HingeGLoss() + if C.use_feat_match_loss: + self.feat_match_loss = MelganFeatureLoss() + if C.use_l1_spec_loss: + assert C.audio["sample_rate"] == C.l1_spec_loss_params["sample_rate"] + self.l1_spec_loss = L1SpecLoss(**C.l1_spec_loss_params) + + def forward( + self, y_hat=None, y=None, scores_fake=None, feats_fake=None, feats_real=None, y_hat_sub=None, y_sub=None + ): + gen_loss = 0 + adv_loss = 0 + return_dict = {} + + # STFT Loss + if self.use_stft_loss: + stft_loss_mg, stft_loss_sc = self.stft_loss(y_hat[:, :, : y.size(2)].squeeze(1), y.squeeze(1)) + return_dict["G_stft_loss_mg"] = stft_loss_mg + return_dict["G_stft_loss_sc"] = stft_loss_sc + gen_loss = gen_loss + self.stft_loss_weight * (stft_loss_mg + stft_loss_sc) + + # L1 Spec loss + if self.use_l1_spec_loss: + l1_spec_loss = self.l1_spec_loss(y_hat, y) + return_dict["G_l1_spec_loss"] = l1_spec_loss + gen_loss = gen_loss + self.l1_spec_loss_weight * l1_spec_loss + + # subband STFT Loss + if self.use_subband_stft_loss: + subband_stft_loss_mg, subband_stft_loss_sc = self.subband_stft_loss(y_hat_sub, y_sub) + return_dict["G_subband_stft_loss_mg"] = subband_stft_loss_mg + return_dict["G_subband_stft_loss_sc"] = subband_stft_loss_sc + gen_loss = gen_loss + self.subband_stft_loss_weight * (subband_stft_loss_mg + subband_stft_loss_sc) + + # multiscale MSE adversarial loss + if self.use_mse_gan_loss and scores_fake is not None: + mse_fake_loss = _apply_G_adv_loss(scores_fake, self.mse_loss) + return_dict["G_mse_fake_loss"] = mse_fake_loss + adv_loss = adv_loss + self.mse_gan_loss_weight * mse_fake_loss + + # multiscale Hinge adversarial loss + if self.use_hinge_gan_loss and not scores_fake is not None: + hinge_fake_loss = _apply_G_adv_loss(scores_fake, self.hinge_loss) + return_dict["G_hinge_fake_loss"] = hinge_fake_loss + adv_loss = adv_loss + self.hinge_gan_loss_weight * hinge_fake_loss + + # Feature Matching Loss + if self.use_feat_match_loss and not feats_fake is None: + feat_match_loss = self.feat_match_loss(feats_fake, feats_real) + return_dict["G_feat_match_loss"] = feat_match_loss + adv_loss = adv_loss + self.feat_match_loss_weight * feat_match_loss + return_dict["loss"] = gen_loss + adv_loss + return_dict["G_gen_loss"] = gen_loss + return_dict["G_adv_loss"] = adv_loss + return return_dict + + +class DiscriminatorLoss(nn.Module): + """Like ```GeneratorLoss```""" + + def __init__(self, C): + super().__init__() + assert not ( + C.use_mse_gan_loss and C.use_hinge_gan_loss + ), " [!] Cannot use HingeGANLoss and MSEGANLoss together." + + self.use_mse_gan_loss = C.use_mse_gan_loss + self.use_hinge_gan_loss = C.use_hinge_gan_loss + + if C.use_mse_gan_loss: + self.mse_loss = MSEDLoss() + if C.use_hinge_gan_loss: + self.hinge_loss = HingeDLoss() + + def forward(self, scores_fake, scores_real): + loss = 0 + return_dict = {} + + if self.use_mse_gan_loss: + mse_D_loss, mse_D_real_loss, mse_D_fake_loss = _apply_D_loss( + scores_fake=scores_fake, scores_real=scores_real, loss_func=self.mse_loss + ) + return_dict["D_mse_gan_loss"] = mse_D_loss + return_dict["D_mse_gan_real_loss"] = mse_D_real_loss + return_dict["D_mse_gan_fake_loss"] = mse_D_fake_loss + loss += mse_D_loss + + if self.use_hinge_gan_loss: + hinge_D_loss, hinge_D_real_loss, hinge_D_fake_loss = _apply_D_loss( + scores_fake=scores_fake, scores_real=scores_real, loss_func=self.hinge_loss + ) + return_dict["D_hinge_gan_loss"] = hinge_D_loss + return_dict["D_hinge_gan_real_loss"] = hinge_D_real_loss + return_dict["D_hinge_gan_fake_loss"] = hinge_D_fake_loss + loss += hinge_D_loss + + return_dict["loss"] = loss + return return_dict + + +class WaveRNNLoss(nn.Module): + def __init__(self, wave_rnn_mode: Union[str, int]): + super().__init__() + if wave_rnn_mode == "mold": + self.loss_func = discretized_mix_logistic_loss + elif wave_rnn_mode == "gauss": + self.loss_func = gaussian_loss + elif isinstance(wave_rnn_mode, int): + self.loss_func = torch.nn.CrossEntropyLoss() + else: + raise ValueError(" [!] Unknown mode for Wavernn.") + + def forward(self, y_hat, y) -> Dict: + loss = self.loss_func(y_hat, y) + return {"loss": loss} diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/lvc_block.py b/Indic-TTS/TTS/TTS/vocoder/layers/lvc_block.py new file mode 100644 index 0000000000000000000000000000000000000000..8913a1132ec769fd304077412289c01c0d1cb17b --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/layers/lvc_block.py @@ -0,0 +1,198 @@ +import torch +import torch.nn.functional as F + + +class KernelPredictor(torch.nn.Module): + """Kernel predictor for the location-variable convolutions""" + + def __init__( # pylint: disable=dangerous-default-value + self, + cond_channels, + conv_in_channels, + conv_out_channels, + conv_layers, + conv_kernel_size=3, + kpnet_hidden_channels=64, + kpnet_conv_size=3, + kpnet_dropout=0.0, + kpnet_nonlinear_activation="LeakyReLU", + kpnet_nonlinear_activation_params={"negative_slope": 0.1}, + ): + """ + Args: + cond_channels (int): number of channel for the conditioning sequence, + conv_in_channels (int): number of channel for the input sequence, + conv_out_channels (int): number of channel for the output sequence, + conv_layers (int): + kpnet_ + """ + super().__init__() + + self.conv_in_channels = conv_in_channels + self.conv_out_channels = conv_out_channels + self.conv_kernel_size = conv_kernel_size + self.conv_layers = conv_layers + + l_w = conv_in_channels * conv_out_channels * conv_kernel_size * conv_layers + l_b = conv_out_channels * conv_layers + + padding = (kpnet_conv_size - 1) // 2 + self.input_conv = torch.nn.Sequential( + torch.nn.Conv1d(cond_channels, kpnet_hidden_channels, 5, padding=(5 - 1) // 2, bias=True), + getattr(torch.nn, kpnet_nonlinear_activation)(**kpnet_nonlinear_activation_params), + ) + + self.residual_conv = torch.nn.Sequential( + torch.nn.Dropout(kpnet_dropout), + torch.nn.Conv1d(kpnet_hidden_channels, kpnet_hidden_channels, kpnet_conv_size, padding=padding, bias=True), + getattr(torch.nn, kpnet_nonlinear_activation)(**kpnet_nonlinear_activation_params), + torch.nn.Conv1d(kpnet_hidden_channels, kpnet_hidden_channels, kpnet_conv_size, padding=padding, bias=True), + getattr(torch.nn, kpnet_nonlinear_activation)(**kpnet_nonlinear_activation_params), + torch.nn.Dropout(kpnet_dropout), + torch.nn.Conv1d(kpnet_hidden_channels, kpnet_hidden_channels, kpnet_conv_size, padding=padding, bias=True), + getattr(torch.nn, kpnet_nonlinear_activation)(**kpnet_nonlinear_activation_params), + torch.nn.Conv1d(kpnet_hidden_channels, kpnet_hidden_channels, kpnet_conv_size, padding=padding, bias=True), + getattr(torch.nn, kpnet_nonlinear_activation)(**kpnet_nonlinear_activation_params), + torch.nn.Dropout(kpnet_dropout), + torch.nn.Conv1d(kpnet_hidden_channels, kpnet_hidden_channels, kpnet_conv_size, padding=padding, bias=True), + getattr(torch.nn, kpnet_nonlinear_activation)(**kpnet_nonlinear_activation_params), + torch.nn.Conv1d(kpnet_hidden_channels, kpnet_hidden_channels, kpnet_conv_size, padding=padding, bias=True), + getattr(torch.nn, kpnet_nonlinear_activation)(**kpnet_nonlinear_activation_params), + ) + + self.kernel_conv = torch.nn.Conv1d(kpnet_hidden_channels, l_w, kpnet_conv_size, padding=padding, bias=True) + self.bias_conv = torch.nn.Conv1d(kpnet_hidden_channels, l_b, kpnet_conv_size, padding=padding, bias=True) + + def forward(self, c): + """ + Args: + c (Tensor): the conditioning sequence (batch, cond_channels, cond_length) + Returns: + """ + batch, _, cond_length = c.shape + + c = self.input_conv(c) + c = c + self.residual_conv(c) + k = self.kernel_conv(c) + b = self.bias_conv(c) + + kernels = k.contiguous().view( + batch, self.conv_layers, self.conv_in_channels, self.conv_out_channels, self.conv_kernel_size, cond_length + ) + bias = b.contiguous().view(batch, self.conv_layers, self.conv_out_channels, cond_length) + return kernels, bias + + +class LVCBlock(torch.nn.Module): + """the location-variable convolutions""" + + def __init__( + self, + in_channels, + cond_channels, + upsample_ratio, + conv_layers=4, + conv_kernel_size=3, + cond_hop_length=256, + kpnet_hidden_channels=64, + kpnet_conv_size=3, + kpnet_dropout=0.0, + ): + super().__init__() + + self.cond_hop_length = cond_hop_length + self.conv_layers = conv_layers + self.conv_kernel_size = conv_kernel_size + self.convs = torch.nn.ModuleList() + + self.upsample = torch.nn.ConvTranspose1d( + in_channels, + in_channels, + kernel_size=upsample_ratio * 2, + stride=upsample_ratio, + padding=upsample_ratio // 2 + upsample_ratio % 2, + output_padding=upsample_ratio % 2, + ) + + self.kernel_predictor = KernelPredictor( + cond_channels=cond_channels, + conv_in_channels=in_channels, + conv_out_channels=2 * in_channels, + conv_layers=conv_layers, + conv_kernel_size=conv_kernel_size, + kpnet_hidden_channels=kpnet_hidden_channels, + kpnet_conv_size=kpnet_conv_size, + kpnet_dropout=kpnet_dropout, + ) + + for i in range(conv_layers): + padding = (3**i) * int((conv_kernel_size - 1) / 2) + conv = torch.nn.Conv1d( + in_channels, in_channels, kernel_size=conv_kernel_size, padding=padding, dilation=3**i + ) + + self.convs.append(conv) + + def forward(self, x, c): + """forward propagation of the location-variable convolutions. + Args: + x (Tensor): the input sequence (batch, in_channels, in_length) + c (Tensor): the conditioning sequence (batch, cond_channels, cond_length) + + Returns: + Tensor: the output sequence (batch, in_channels, in_length) + """ + in_channels = x.shape[1] + kernels, bias = self.kernel_predictor(c) + + x = F.leaky_relu(x, 0.2) + x = self.upsample(x) + + for i in range(self.conv_layers): + y = F.leaky_relu(x, 0.2) + y = self.convs[i](y) + y = F.leaky_relu(y, 0.2) + + k = kernels[:, i, :, :, :, :] + b = bias[:, i, :, :] + y = self.location_variable_convolution(y, k, b, 1, self.cond_hop_length) + x = x + torch.sigmoid(y[:, :in_channels, :]) * torch.tanh(y[:, in_channels:, :]) + return x + + @staticmethod + def location_variable_convolution(x, kernel, bias, dilation, hop_size): + """perform location-variable convolution operation on the input sequence (x) using the local convolution kernl. + Time: 414 ฮผs ยฑ 309 ns per loop (mean ยฑ std. dev. of 7 runs, 1000 loops each), test on NVIDIA V100. + Args: + x (Tensor): the input sequence (batch, in_channels, in_length). + kernel (Tensor): the local convolution kernel (batch, in_channel, out_channels, kernel_size, kernel_length) + bias (Tensor): the bias for the local convolution (batch, out_channels, kernel_length) + dilation (int): the dilation of convolution. + hop_size (int): the hop_size of the conditioning sequence. + Returns: + (Tensor): the output sequence after performing local convolution. (batch, out_channels, in_length). + """ + batch, _, in_length = x.shape + batch, _, out_channels, kernel_size, kernel_length = kernel.shape + + assert in_length == ( + kernel_length * hop_size + ), f"length of (x, kernel) is not matched, {in_length} vs {kernel_length * hop_size}" + + padding = dilation * int((kernel_size - 1) / 2) + x = F.pad(x, (padding, padding), "constant", 0) # (batch, in_channels, in_length + 2*padding) + x = x.unfold(2, hop_size + 2 * padding, hop_size) # (batch, in_channels, kernel_length, hop_size + 2*padding) + + if hop_size < dilation: + x = F.pad(x, (0, dilation), "constant", 0) + x = x.unfold( + 3, dilation, dilation + ) # (batch, in_channels, kernel_length, (hop_size + 2*padding)/dilation, dilation) + x = x[:, :, :, :, :hop_size] + x = x.transpose(3, 4) # (batch, in_channels, kernel_length, dilation, (hop_size + 2*padding)/dilation) + x = x.unfold(4, kernel_size, 1) # (batch, in_channels, kernel_length, dilation, _, kernel_size) + + o = torch.einsum("bildsk,biokl->bolsd", x, kernel) + o = o + bias.unsqueeze(-1).unsqueeze(-1) + o = o.contiguous().view(batch, out_channels, -1) + return o diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/melgan.py b/Indic-TTS/TTS/TTS/vocoder/layers/melgan.py new file mode 100644 index 0000000000000000000000000000000000000000..4bb328e98354dc0683b3c5b4f4160dd54d92fabd --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/layers/melgan.py @@ -0,0 +1,42 @@ +from torch import nn +from torch.nn.utils import weight_norm + + +class ResidualStack(nn.Module): + def __init__(self, channels, num_res_blocks, kernel_size): + super().__init__() + + assert (kernel_size - 1) % 2 == 0, " [!] kernel_size has to be odd." + base_padding = (kernel_size - 1) // 2 + + self.blocks = nn.ModuleList() + for idx in range(num_res_blocks): + layer_kernel_size = kernel_size + layer_dilation = layer_kernel_size**idx + layer_padding = base_padding * layer_dilation + self.blocks += [ + nn.Sequential( + nn.LeakyReLU(0.2), + nn.ReflectionPad1d(layer_padding), + weight_norm( + nn.Conv1d(channels, channels, kernel_size=kernel_size, dilation=layer_dilation, bias=True) + ), + nn.LeakyReLU(0.2), + weight_norm(nn.Conv1d(channels, channels, kernel_size=1, bias=True)), + ) + ] + + self.shortcuts = nn.ModuleList( + [weight_norm(nn.Conv1d(channels, channels, kernel_size=1, bias=True)) for i in range(num_res_blocks)] + ) + + def forward(self, x): + for block, shortcut in zip(self.blocks, self.shortcuts): + x = shortcut(x) + block(x) + return x + + def remove_weight_norm(self): + for block, shortcut in zip(self.blocks, self.shortcuts): + nn.utils.remove_weight_norm(block[2]) + nn.utils.remove_weight_norm(block[4]) + nn.utils.remove_weight_norm(shortcut) diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/parallel_wavegan.py b/Indic-TTS/TTS/TTS/vocoder/layers/parallel_wavegan.py new file mode 100644 index 0000000000000000000000000000000000000000..51142e5eceb20564585635a9040a24bc8eb3b6e3 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/layers/parallel_wavegan.py @@ -0,0 +1,77 @@ +import torch +from torch.nn import functional as F + + +class ResidualBlock(torch.nn.Module): + """Residual block module in WaveNet.""" + + def __init__( + self, + kernel_size=3, + res_channels=64, + gate_channels=128, + skip_channels=64, + aux_channels=80, + dropout=0.0, + dilation=1, + bias=True, + use_causal_conv=False, + ): + super().__init__() + self.dropout = dropout + # no future time stamps available + if use_causal_conv: + padding = (kernel_size - 1) * dilation + else: + assert (kernel_size - 1) % 2 == 0, "Not support even number kernel size." + padding = (kernel_size - 1) // 2 * dilation + self.use_causal_conv = use_causal_conv + + # dilation conv + self.conv = torch.nn.Conv1d( + res_channels, gate_channels, kernel_size, padding=padding, dilation=dilation, bias=bias + ) + + # local conditioning + if aux_channels > 0: + self.conv1x1_aux = torch.nn.Conv1d(aux_channels, gate_channels, 1, bias=False) + else: + self.conv1x1_aux = None + + # conv output is split into two groups + gate_out_channels = gate_channels // 2 + self.conv1x1_out = torch.nn.Conv1d(gate_out_channels, res_channels, 1, bias=bias) + self.conv1x1_skip = torch.nn.Conv1d(gate_out_channels, skip_channels, 1, bias=bias) + + def forward(self, x, c): + """ + x: B x D_res x T + c: B x D_aux x T + """ + residual = x + x = F.dropout(x, p=self.dropout, training=self.training) + x = self.conv(x) + + # remove future time steps if use_causal_conv conv + x = x[:, :, : residual.size(-1)] if self.use_causal_conv else x + + # split into two part for gated activation + splitdim = 1 + xa, xb = x.split(x.size(splitdim) // 2, dim=splitdim) + + # local conditioning + if c is not None: + assert self.conv1x1_aux is not None + c = self.conv1x1_aux(c) + ca, cb = c.split(c.size(splitdim) // 2, dim=splitdim) + xa, xb = xa + ca, xb + cb + + x = torch.tanh(xa) * torch.sigmoid(xb) + + # for skip connection + s = self.conv1x1_skip(x) + + # for residual connection + x = (self.conv1x1_out(x) + residual) * (0.5**2) + + return x, s diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/pqmf.py b/Indic-TTS/TTS/TTS/vocoder/layers/pqmf.py new file mode 100644 index 0000000000000000000000000000000000000000..6253efbbefc32222464a97bee99707d46bcdcf8b --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/layers/pqmf.py @@ -0,0 +1,53 @@ +import numpy as np +import torch +import torch.nn.functional as F +from scipy import signal as sig + + +# adapted from +# https://github.com/kan-bayashi/ParallelWaveGAN/tree/master/parallel_wavegan +class PQMF(torch.nn.Module): + def __init__(self, N=4, taps=62, cutoff=0.15, beta=9.0): + super().__init__() + + self.N = N + self.taps = taps + self.cutoff = cutoff + self.beta = beta + + QMF = sig.firwin(taps + 1, cutoff, window=("kaiser", beta)) + H = np.zeros((N, len(QMF))) + G = np.zeros((N, len(QMF))) + for k in range(N): + constant_factor = ( + (2 * k + 1) * (np.pi / (2 * N)) * (np.arange(taps + 1) - ((taps - 1) / 2)) + ) # TODO: (taps - 1) -> taps + phase = (-1) ** k * np.pi / 4 + H[k] = 2 * QMF * np.cos(constant_factor + phase) + + G[k] = 2 * QMF * np.cos(constant_factor - phase) + + H = torch.from_numpy(H[:, None, :]).float() + G = torch.from_numpy(G[None, :, :]).float() + + self.register_buffer("H", H) + self.register_buffer("G", G) + + updown_filter = torch.zeros((N, N, N)).float() + for k in range(N): + updown_filter[k, k, 0] = 1.0 + self.register_buffer("updown_filter", updown_filter) + self.N = N + + self.pad_fn = torch.nn.ConstantPad1d(taps // 2, 0.0) + + def forward(self, x): + return self.analysis(x) + + def analysis(self, x): + return F.conv1d(x, self.H, padding=self.taps // 2, stride=self.N) + + def synthesis(self, x): + x = F.conv_transpose1d(x, self.updown_filter * self.N, stride=self.N) + x = F.conv1d(x, self.G, padding=self.taps // 2) + return x diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/qmf.dat b/Indic-TTS/TTS/TTS/vocoder/layers/qmf.dat new file mode 100644 index 0000000000000000000000000000000000000000..17eab1379de991c36897c2ce701802ef76849c0d --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/layers/qmf.dat @@ -0,0 +1,640 @@ + 0.0000000e+000 + -5.5252865e-004 + -5.6176926e-004 + -4.9475181e-004 + -4.8752280e-004 + -4.8937912e-004 + -5.0407143e-004 + -5.2265643e-004 + -5.4665656e-004 + -5.6778026e-004 + -5.8709305e-004 + -6.1327474e-004 + -6.3124935e-004 + -6.5403334e-004 + -6.7776908e-004 + -6.9416146e-004 + -7.1577365e-004 + -7.2550431e-004 + -7.4409419e-004 + -7.4905981e-004 + -7.6813719e-004 + -7.7248486e-004 + -7.8343323e-004 + -7.7798695e-004 + -7.8036647e-004 + -7.8014496e-004 + -7.7579773e-004 + -7.6307936e-004 + -7.5300014e-004 + -7.3193572e-004 + -7.2153920e-004 + -6.9179375e-004 + -6.6504151e-004 + -6.3415949e-004 + -5.9461189e-004 + -5.5645764e-004 + -5.1455722e-004 + -4.6063255e-004 + -4.0951215e-004 + -3.5011759e-004 + -2.8969812e-004 + -2.0983373e-004 + -1.4463809e-004 + -6.1733441e-005 + 1.3494974e-005 + 1.0943831e-004 + 2.0430171e-004 + 2.9495311e-004 + 4.0265402e-004 + 5.1073885e-004 + 6.2393761e-004 + 7.4580259e-004 + 8.6084433e-004 + 9.8859883e-004 + 1.1250155e-003 + 1.2577885e-003 + 1.3902495e-003 + 1.5443220e-003 + 1.6868083e-003 + 1.8348265e-003 + 1.9841141e-003 + 2.1461584e-003 + 2.3017255e-003 + 2.4625617e-003 + 2.6201759e-003 + 2.7870464e-003 + 2.9469448e-003 + 3.1125421e-003 + 3.2739613e-003 + 3.4418874e-003 + 3.6008268e-003 + 3.7603923e-003 + 3.9207432e-003 + 4.0819753e-003 + 4.2264269e-003 + 4.3730720e-003 + 4.5209853e-003 + 4.6606461e-003 + 4.7932561e-003 + 4.9137604e-003 + 5.0393023e-003 + 5.1407354e-003 + 5.2461166e-003 + 5.3471681e-003 + 5.4196776e-003 + 5.4876040e-003 + 5.5475715e-003 + 5.5938023e-003 + 5.6220643e-003 + 5.6455197e-003 + 5.6389200e-003 + 5.6266114e-003 + 5.5917129e-003 + 5.5404364e-003 + 5.4753783e-003 + 5.3838976e-003 + 5.2715759e-003 + 5.1382275e-003 + 4.9839688e-003 + 4.8109469e-003 + 4.6039530e-003 + 4.3801862e-003 + 4.1251642e-003 + 3.8456408e-003 + 3.5401247e-003 + 3.2091886e-003 + 2.8446758e-003 + 2.4508540e-003 + 2.0274176e-003 + 1.5784683e-003 + 1.0902329e-003 + 5.8322642e-004 + 2.7604519e-005 + -5.4642809e-004 + -1.1568136e-003 + -1.8039473e-003 + -2.4826724e-003 + -3.1933778e-003 + -3.9401124e-003 + -4.7222596e-003 + -5.5337211e-003 + -6.3792293e-003 + -7.2615817e-003 + -8.1798233e-003 + -9.1325330e-003 + -1.0115022e-002 + -1.1131555e-002 + -1.2185000e-002 + -1.3271822e-002 + -1.4390467e-002 + -1.5540555e-002 + -1.6732471e-002 + -1.7943338e-002 + -1.9187243e-002 + -2.0453179e-002 + -2.1746755e-002 + -2.3068017e-002 + -2.4416099e-002 + -2.5787585e-002 + -2.7185943e-002 + -2.8607217e-002 + -3.0050266e-002 + -3.1501761e-002 + -3.2975408e-002 + -3.4462095e-002 + -3.5969756e-002 + -3.7481285e-002 + -3.9005368e-002 + -4.0534917e-002 + -4.2064909e-002 + -4.3609754e-002 + -4.5148841e-002 + -4.6684303e-002 + -4.8216572e-002 + -4.9738576e-002 + -5.1255616e-002 + -5.2763075e-002 + -5.4245277e-002 + -5.5717365e-002 + -5.7161645e-002 + -5.8591568e-002 + -5.9983748e-002 + -6.1345517e-002 + -6.2685781e-002 + -6.3971590e-002 + -6.5224711e-002 + -6.6436751e-002 + -6.7607599e-002 + -6.8704383e-002 + -6.9763024e-002 + -7.0762871e-002 + -7.1700267e-002 + -7.2568258e-002 + -7.3362026e-002 + -7.4100364e-002 + -7.4745256e-002 + -7.5313734e-002 + -7.5800836e-002 + -7.6199248e-002 + -7.6499217e-002 + -7.6709349e-002 + -7.6817398e-002 + -7.6823001e-002 + -7.6720492e-002 + -7.6505072e-002 + -7.6174832e-002 + -7.5730576e-002 + -7.5157626e-002 + -7.4466439e-002 + -7.3640601e-002 + -7.2677464e-002 + -7.1582636e-002 + -7.0353307e-002 + -6.8966401e-002 + -6.7452502e-002 + -6.5769067e-002 + -6.3944481e-002 + -6.1960278e-002 + -5.9816657e-002 + -5.7515269e-002 + -5.5046003e-002 + -5.2409382e-002 + -4.9597868e-002 + -4.6630331e-002 + -4.3476878e-002 + -4.0145828e-002 + -3.6641812e-002 + -3.2958393e-002 + -2.9082401e-002 + -2.5030756e-002 + -2.0799707e-002 + -1.6370126e-002 + -1.1762383e-002 + -6.9636862e-003 + -1.9765601e-003 + 3.2086897e-003 + 8.5711749e-003 + 1.4128883e-002 + 1.9883413e-002 + 2.5822729e-002 + 3.1953127e-002 + 3.8277657e-002 + 4.4780682e-002 + 5.1480418e-002 + 5.8370533e-002 + 6.5440985e-002 + 7.2694330e-002 + 8.0137293e-002 + 8.7754754e-002 + 9.5553335e-002 + 1.0353295e-001 + 1.1168269e-001 + 1.2000780e-001 + 1.2850029e-001 + 1.3715518e-001 + 1.4597665e-001 + 1.5496071e-001 + 1.6409589e-001 + 1.7338082e-001 + 1.8281725e-001 + 1.9239667e-001 + 2.0212502e-001 + 2.1197359e-001 + 2.2196527e-001 + 2.3206909e-001 + 2.4230169e-001 + 2.5264803e-001 + 2.6310533e-001 + 2.7366340e-001 + 2.8432142e-001 + 2.9507167e-001 + 3.0590986e-001 + 3.1682789e-001 + 3.2781137e-001 + 3.3887227e-001 + 3.4999141e-001 + 3.6115899e-001 + 3.7237955e-001 + 3.8363500e-001 + 3.9492118e-001 + 4.0623177e-001 + 4.1756969e-001 + 4.2891199e-001 + 4.4025538e-001 + 4.5159965e-001 + 4.6293081e-001 + 4.7424532e-001 + 4.8552531e-001 + 4.9677083e-001 + 5.0798175e-001 + 5.1912350e-001 + 5.3022409e-001 + 5.4125534e-001 + 5.5220513e-001 + 5.6307891e-001 + 5.7385241e-001 + 5.8454032e-001 + 5.9511231e-001 + 6.0557835e-001 + 6.1591099e-001 + 6.2612427e-001 + 6.3619801e-001 + 6.4612697e-001 + 6.5590163e-001 + 6.6551399e-001 + 6.7496632e-001 + 6.8423533e-001 + 6.9332824e-001 + 7.0223887e-001 + 7.1094104e-001 + 7.1944626e-001 + 7.2774489e-001 + 7.3582118e-001 + 7.4368279e-001 + 7.5131375e-001 + 7.5870808e-001 + 7.6586749e-001 + 7.7277809e-001 + 7.7942875e-001 + 7.8583531e-001 + 7.9197358e-001 + 7.9784664e-001 + 8.0344858e-001 + 8.0876950e-001 + 8.1381913e-001 + 8.1857760e-001 + 8.2304199e-001 + 8.2722753e-001 + 8.3110385e-001 + 8.3469374e-001 + 8.3797173e-001 + 8.4095414e-001 + 8.4362383e-001 + 8.4598185e-001 + 8.4803158e-001 + 8.4978052e-001 + 8.5119715e-001 + 8.5230470e-001 + 8.5310209e-001 + 8.5357206e-001 + 8.5373856e-001 + 8.5357206e-001 + 8.5310209e-001 + 8.5230470e-001 + 8.5119715e-001 + 8.4978052e-001 + 8.4803158e-001 + 8.4598185e-001 + 8.4362383e-001 + 8.4095414e-001 + 8.3797173e-001 + 8.3469374e-001 + 8.3110385e-001 + 8.2722753e-001 + 8.2304199e-001 + 8.1857760e-001 + 8.1381913e-001 + 8.0876950e-001 + 8.0344858e-001 + 7.9784664e-001 + 7.9197358e-001 + 7.8583531e-001 + 7.7942875e-001 + 7.7277809e-001 + 7.6586749e-001 + 7.5870808e-001 + 7.5131375e-001 + 7.4368279e-001 + 7.3582118e-001 + 7.2774489e-001 + 7.1944626e-001 + 7.1094104e-001 + 7.0223887e-001 + 6.9332824e-001 + 6.8423533e-001 + 6.7496632e-001 + 6.6551399e-001 + 6.5590163e-001 + 6.4612697e-001 + 6.3619801e-001 + 6.2612427e-001 + 6.1591099e-001 + 6.0557835e-001 + 5.9511231e-001 + 5.8454032e-001 + 5.7385241e-001 + 5.6307891e-001 + 5.5220513e-001 + 5.4125534e-001 + 5.3022409e-001 + 5.1912350e-001 + 5.0798175e-001 + 4.9677083e-001 + 4.8552531e-001 + 4.7424532e-001 + 4.6293081e-001 + 4.5159965e-001 + 4.4025538e-001 + 4.2891199e-001 + 4.1756969e-001 + 4.0623177e-001 + 3.9492118e-001 + 3.8363500e-001 + 3.7237955e-001 + 3.6115899e-001 + 3.4999141e-001 + 3.3887227e-001 + 3.2781137e-001 + 3.1682789e-001 + 3.0590986e-001 + 2.9507167e-001 + 2.8432142e-001 + 2.7366340e-001 + 2.6310533e-001 + 2.5264803e-001 + 2.4230169e-001 + 2.3206909e-001 + 2.2196527e-001 + 2.1197359e-001 + 2.0212502e-001 + 1.9239667e-001 + 1.8281725e-001 + 1.7338082e-001 + 1.6409589e-001 + 1.5496071e-001 + 1.4597665e-001 + 1.3715518e-001 + 1.2850029e-001 + 1.2000780e-001 + 1.1168269e-001 + 1.0353295e-001 + 9.5553335e-002 + 8.7754754e-002 + 8.0137293e-002 + 7.2694330e-002 + 6.5440985e-002 + 5.8370533e-002 + 5.1480418e-002 + 4.4780682e-002 + 3.8277657e-002 + 3.1953127e-002 + 2.5822729e-002 + 1.9883413e-002 + 1.4128883e-002 + 8.5711749e-003 + 3.2086897e-003 + -1.9765601e-003 + -6.9636862e-003 + -1.1762383e-002 + -1.6370126e-002 + -2.0799707e-002 + -2.5030756e-002 + -2.9082401e-002 + -3.2958393e-002 + -3.6641812e-002 + -4.0145828e-002 + -4.3476878e-002 + -4.6630331e-002 + -4.9597868e-002 + -5.2409382e-002 + -5.5046003e-002 + -5.7515269e-002 + -5.9816657e-002 + -6.1960278e-002 + -6.3944481e-002 + -6.5769067e-002 + -6.7452502e-002 + -6.8966401e-002 + -7.0353307e-002 + -7.1582636e-002 + -7.2677464e-002 + -7.3640601e-002 + -7.4466439e-002 + -7.5157626e-002 + -7.5730576e-002 + -7.6174832e-002 + -7.6505072e-002 + -7.6720492e-002 + -7.6823001e-002 + -7.6817398e-002 + -7.6709349e-002 + -7.6499217e-002 + -7.6199248e-002 + -7.5800836e-002 + -7.5313734e-002 + -7.4745256e-002 + -7.4100364e-002 + -7.3362026e-002 + -7.2568258e-002 + -7.1700267e-002 + -7.0762871e-002 + -6.9763024e-002 + -6.8704383e-002 + -6.7607599e-002 + -6.6436751e-002 + -6.5224711e-002 + -6.3971590e-002 + -6.2685781e-002 + -6.1345517e-002 + -5.9983748e-002 + -5.8591568e-002 + -5.7161645e-002 + -5.5717365e-002 + -5.4245277e-002 + -5.2763075e-002 + -5.1255616e-002 + -4.9738576e-002 + -4.8216572e-002 + -4.6684303e-002 + -4.5148841e-002 + -4.3609754e-002 + -4.2064909e-002 + -4.0534917e-002 + -3.9005368e-002 + -3.7481285e-002 + -3.5969756e-002 + -3.4462095e-002 + -3.2975408e-002 + -3.1501761e-002 + -3.0050266e-002 + -2.8607217e-002 + -2.7185943e-002 + -2.5787585e-002 + -2.4416099e-002 + -2.3068017e-002 + -2.1746755e-002 + -2.0453179e-002 + -1.9187243e-002 + -1.7943338e-002 + -1.6732471e-002 + -1.5540555e-002 + -1.4390467e-002 + -1.3271822e-002 + -1.2185000e-002 + -1.1131555e-002 + -1.0115022e-002 + -9.1325330e-003 + -8.1798233e-003 + -7.2615817e-003 + -6.3792293e-003 + -5.5337211e-003 + -4.7222596e-003 + -3.9401124e-003 + -3.1933778e-003 + -2.4826724e-003 + -1.8039473e-003 + -1.1568136e-003 + -5.4642809e-004 + 2.7604519e-005 + 5.8322642e-004 + 1.0902329e-003 + 1.5784683e-003 + 2.0274176e-003 + 2.4508540e-003 + 2.8446758e-003 + 3.2091886e-003 + 3.5401247e-003 + 3.8456408e-003 + 4.1251642e-003 + 4.3801862e-003 + 4.6039530e-003 + 4.8109469e-003 + 4.9839688e-003 + 5.1382275e-003 + 5.2715759e-003 + 5.3838976e-003 + 5.4753783e-003 + 5.5404364e-003 + 5.5917129e-003 + 5.6266114e-003 + 5.6389200e-003 + 5.6455197e-003 + 5.6220643e-003 + 5.5938023e-003 + 5.5475715e-003 + 5.4876040e-003 + 5.4196776e-003 + 5.3471681e-003 + 5.2461166e-003 + 5.1407354e-003 + 5.0393023e-003 + 4.9137604e-003 + 4.7932561e-003 + 4.6606461e-003 + 4.5209853e-003 + 4.3730720e-003 + 4.2264269e-003 + 4.0819753e-003 + 3.9207432e-003 + 3.7603923e-003 + 3.6008268e-003 + 3.4418874e-003 + 3.2739613e-003 + 3.1125421e-003 + 2.9469448e-003 + 2.7870464e-003 + 2.6201759e-003 + 2.4625617e-003 + 2.3017255e-003 + 2.1461584e-003 + 1.9841141e-003 + 1.8348265e-003 + 1.6868083e-003 + 1.5443220e-003 + 1.3902495e-003 + 1.2577885e-003 + 1.1250155e-003 + 9.8859883e-004 + 8.6084433e-004 + 7.4580259e-004 + 6.2393761e-004 + 5.1073885e-004 + 4.0265402e-004 + 2.9495311e-004 + 2.0430171e-004 + 1.0943831e-004 + 1.3494974e-005 + -6.1733441e-005 + -1.4463809e-004 + -2.0983373e-004 + -2.8969812e-004 + -3.5011759e-004 + -4.0951215e-004 + -4.6063255e-004 + -5.1455722e-004 + -5.5645764e-004 + -5.9461189e-004 + -6.3415949e-004 + -6.6504151e-004 + -6.9179375e-004 + -7.2153920e-004 + -7.3193572e-004 + -7.5300014e-004 + -7.6307936e-004 + -7.7579773e-004 + -7.8014496e-004 + -7.8036647e-004 + -7.7798695e-004 + -7.8343323e-004 + -7.7248486e-004 + -7.6813719e-004 + -7.4905981e-004 + -7.4409419e-004 + -7.2550431e-004 + -7.1577365e-004 + -6.9416146e-004 + -6.7776908e-004 + -6.5403334e-004 + -6.3124935e-004 + -6.1327474e-004 + -5.8709305e-004 + -5.6778026e-004 + -5.4665656e-004 + -5.2265643e-004 + -5.0407143e-004 + -4.8937912e-004 + -4.8752280e-004 + -4.9475181e-004 + -5.6176926e-004 + -5.5252865e-004 diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/upsample.py b/Indic-TTS/TTS/TTS/vocoder/layers/upsample.py new file mode 100644 index 0000000000000000000000000000000000000000..e169db00b2749493e1cec07ee51c93178dada118 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/layers/upsample.py @@ -0,0 +1,102 @@ +import torch +from torch.nn import functional as F + + +class Stretch2d(torch.nn.Module): + def __init__(self, x_scale, y_scale, mode="nearest"): + super().__init__() + self.x_scale = x_scale + self.y_scale = y_scale + self.mode = mode + + def forward(self, x): + """ + x (Tensor): Input tensor (B, C, F, T). + Tensor: Interpolated tensor (B, C, F * y_scale, T * x_scale), + """ + return F.interpolate(x, scale_factor=(self.y_scale, self.x_scale), mode=self.mode) + + +class UpsampleNetwork(torch.nn.Module): + # pylint: disable=dangerous-default-value + def __init__( + self, + upsample_factors, + nonlinear_activation=None, + nonlinear_activation_params={}, + interpolate_mode="nearest", + freq_axis_kernel_size=1, + use_causal_conv=False, + ): + super().__init__() + self.use_causal_conv = use_causal_conv + self.up_layers = torch.nn.ModuleList() + for scale in upsample_factors: + # interpolation layer + stretch = Stretch2d(scale, 1, interpolate_mode) + self.up_layers += [stretch] + + # conv layer + assert (freq_axis_kernel_size - 1) % 2 == 0, "Not support even number freq axis kernel size." + freq_axis_padding = (freq_axis_kernel_size - 1) // 2 + kernel_size = (freq_axis_kernel_size, scale * 2 + 1) + if use_causal_conv: + padding = (freq_axis_padding, scale * 2) + else: + padding = (freq_axis_padding, scale) + conv = torch.nn.Conv2d(1, 1, kernel_size=kernel_size, padding=padding, bias=False) + self.up_layers += [conv] + + # nonlinear + if nonlinear_activation is not None: + nonlinear = getattr(torch.nn, nonlinear_activation)(**nonlinear_activation_params) + self.up_layers += [nonlinear] + + def forward(self, c): + """ + c : (B, C, T_in). + Tensor: (B, C, T_upsample) + """ + c = c.unsqueeze(1) # (B, 1, C, T) + for f in self.up_layers: + c = f(c) + return c.squeeze(1) # (B, C, T') + + +class ConvUpsample(torch.nn.Module): + # pylint: disable=dangerous-default-value + def __init__( + self, + upsample_factors, + nonlinear_activation=None, + nonlinear_activation_params={}, + interpolate_mode="nearest", + freq_axis_kernel_size=1, + aux_channels=80, + aux_context_window=0, + use_causal_conv=False, + ): + super().__init__() + self.aux_context_window = aux_context_window + self.use_causal_conv = use_causal_conv and aux_context_window > 0 + # To capture wide-context information in conditional features + kernel_size = aux_context_window + 1 if use_causal_conv else 2 * aux_context_window + 1 + # NOTE(kan-bayashi): Here do not use padding because the input is already padded + self.conv_in = torch.nn.Conv1d(aux_channels, aux_channels, kernel_size=kernel_size, bias=False) + self.upsample = UpsampleNetwork( + upsample_factors=upsample_factors, + nonlinear_activation=nonlinear_activation, + nonlinear_activation_params=nonlinear_activation_params, + interpolate_mode=interpolate_mode, + freq_axis_kernel_size=freq_axis_kernel_size, + use_causal_conv=use_causal_conv, + ) + + def forward(self, c): + """ + c : (B, C, T_in). + Tensor: (B, C, T_upsampled), + """ + c_ = self.conv_in(c) + c = c_[:, :, : -self.aux_context_window] if self.use_causal_conv else c_ + return self.upsample(c) diff --git a/Indic-TTS/TTS/TTS/vocoder/layers/wavegrad.py b/Indic-TTS/TTS/TTS/vocoder/layers/wavegrad.py new file mode 100644 index 0000000000000000000000000000000000000000..24b905f994b69075fc5e46249ce0c7719fe4b174 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/layers/wavegrad.py @@ -0,0 +1,165 @@ +import torch +import torch.nn.functional as F +from torch import nn +from torch.nn.utils import weight_norm + + +class Conv1d(nn.Conv1d): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + nn.init.orthogonal_(self.weight) + nn.init.zeros_(self.bias) + + +class PositionalEncoding(nn.Module): + """Positional encoding with noise level conditioning""" + + def __init__(self, n_channels, max_len=10000): + super().__init__() + self.n_channels = n_channels + self.max_len = max_len + self.C = 5000 + self.pe = torch.zeros(0, 0) + + def forward(self, x, noise_level): + if x.shape[2] > self.pe.shape[1]: + self.init_pe_matrix(x.shape[1], x.shape[2], x) + return x + noise_level[..., None, None] + self.pe[:, : x.size(2)].repeat(x.shape[0], 1, 1) / self.C + + def init_pe_matrix(self, n_channels, max_len, x): + pe = torch.zeros(max_len, n_channels) + position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1) + div_term = torch.pow(10000, torch.arange(0, n_channels, 2).float() / n_channels) + + pe[:, 0::2] = torch.sin(position / div_term) + pe[:, 1::2] = torch.cos(position / div_term) + self.pe = pe.transpose(0, 1).to(x) + + +class FiLM(nn.Module): + def __init__(self, input_size, output_size): + super().__init__() + self.encoding = PositionalEncoding(input_size) + self.input_conv = nn.Conv1d(input_size, input_size, 3, padding=1) + self.output_conv = nn.Conv1d(input_size, output_size * 2, 3, padding=1) + + nn.init.xavier_uniform_(self.input_conv.weight) + nn.init.xavier_uniform_(self.output_conv.weight) + nn.init.zeros_(self.input_conv.bias) + nn.init.zeros_(self.output_conv.bias) + + def forward(self, x, noise_scale): + o = self.input_conv(x) + o = F.leaky_relu(o, 0.2) + o = self.encoding(o, noise_scale) + shift, scale = torch.chunk(self.output_conv(o), 2, dim=1) + return shift, scale + + def remove_weight_norm(self): + nn.utils.remove_weight_norm(self.input_conv) + nn.utils.remove_weight_norm(self.output_conv) + + def apply_weight_norm(self): + self.input_conv = weight_norm(self.input_conv) + self.output_conv = weight_norm(self.output_conv) + + +@torch.jit.script +def shif_and_scale(x, scale, shift): + o = shift + scale * x + return o + + +class UBlock(nn.Module): + def __init__(self, input_size, hidden_size, factor, dilation): + super().__init__() + assert isinstance(dilation, (list, tuple)) + assert len(dilation) == 4 + + self.factor = factor + self.res_block = Conv1d(input_size, hidden_size, 1) + self.main_block = nn.ModuleList( + [ + Conv1d(input_size, hidden_size, 3, dilation=dilation[0], padding=dilation[0]), + Conv1d(hidden_size, hidden_size, 3, dilation=dilation[1], padding=dilation[1]), + ] + ) + self.out_block = nn.ModuleList( + [ + Conv1d(hidden_size, hidden_size, 3, dilation=dilation[2], padding=dilation[2]), + Conv1d(hidden_size, hidden_size, 3, dilation=dilation[3], padding=dilation[3]), + ] + ) + + def forward(self, x, shift, scale): + x_inter = F.interpolate(x, size=x.shape[-1] * self.factor) + res = self.res_block(x_inter) + o = F.leaky_relu(x_inter, 0.2) + o = F.interpolate(o, size=x.shape[-1] * self.factor) + o = self.main_block[0](o) + o = shif_and_scale(o, scale, shift) + o = F.leaky_relu(o, 0.2) + o = self.main_block[1](o) + res2 = res + o + o = shif_and_scale(res2, scale, shift) + o = F.leaky_relu(o, 0.2) + o = self.out_block[0](o) + o = shif_and_scale(o, scale, shift) + o = F.leaky_relu(o, 0.2) + o = self.out_block[1](o) + o = o + res2 + return o + + def remove_weight_norm(self): + nn.utils.remove_weight_norm(self.res_block) + for _, layer in enumerate(self.main_block): + if len(layer.state_dict()) != 0: + nn.utils.remove_weight_norm(layer) + for _, layer in enumerate(self.out_block): + if len(layer.state_dict()) != 0: + nn.utils.remove_weight_norm(layer) + + def apply_weight_norm(self): + self.res_block = weight_norm(self.res_block) + for idx, layer in enumerate(self.main_block): + if len(layer.state_dict()) != 0: + self.main_block[idx] = weight_norm(layer) + for idx, layer in enumerate(self.out_block): + if len(layer.state_dict()) != 0: + self.out_block[idx] = weight_norm(layer) + + +class DBlock(nn.Module): + def __init__(self, input_size, hidden_size, factor): + super().__init__() + self.factor = factor + self.res_block = Conv1d(input_size, hidden_size, 1) + self.main_block = nn.ModuleList( + [ + Conv1d(input_size, hidden_size, 3, dilation=1, padding=1), + Conv1d(hidden_size, hidden_size, 3, dilation=2, padding=2), + Conv1d(hidden_size, hidden_size, 3, dilation=4, padding=4), + ] + ) + + def forward(self, x): + size = x.shape[-1] // self.factor + res = self.res_block(x) + res = F.interpolate(res, size=size) + o = F.interpolate(x, size=size) + for layer in self.main_block: + o = F.leaky_relu(o, 0.2) + o = layer(o) + return o + res + + def remove_weight_norm(self): + nn.utils.remove_weight_norm(self.res_block) + for _, layer in enumerate(self.main_block): + if len(layer.state_dict()) != 0: + nn.utils.remove_weight_norm(layer) + + def apply_weight_norm(self): + self.res_block = weight_norm(self.res_block) + for idx, layer in enumerate(self.main_block): + if len(layer.state_dict()) != 0: + self.main_block[idx] = weight_norm(layer) diff --git a/Indic-TTS/TTS/TTS/vocoder/models/__init__.py b/Indic-TTS/TTS/TTS/vocoder/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..65901617b69d3ae708e09226c5e4ad903f89a929 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/__init__.py @@ -0,0 +1,154 @@ +import importlib +import re + +from coqpit import Coqpit + + +def to_camel(text): + text = text.capitalize() + return re.sub(r"(?!^)_([a-zA-Z])", lambda m: m.group(1).upper(), text) + + +def setup_model(config: Coqpit): + """Load models directly from configuration.""" + if "discriminator_model" in config and "generator_model" in config: + MyModel = importlib.import_module("TTS.vocoder.models.gan") + MyModel = getattr(MyModel, "GAN") + else: + MyModel = importlib.import_module("TTS.vocoder.models." + config.model.lower()) + if config.model.lower() == "wavernn": + MyModel = getattr(MyModel, "Wavernn") + elif config.model.lower() == "gan": + MyModel = getattr(MyModel, "GAN") + elif config.model.lower() == "wavegrad": + MyModel = getattr(MyModel, "Wavegrad") + else: + try: + MyModel = getattr(MyModel, to_camel(config.model)) + except ModuleNotFoundError as e: + raise ValueError(f"Model {config.model} not exist!") from e + print(" > Vocoder Model: {}".format(config.model)) + return MyModel.init_from_config(config) + + +def setup_generator(c): + """TODO: use config object as arguments""" + print(" > Generator Model: {}".format(c.generator_model)) + MyModel = importlib.import_module("TTS.vocoder.models." + c.generator_model.lower()) + MyModel = getattr(MyModel, to_camel(c.generator_model)) + # this is to preserve the Wavernn class name (instead of Wavernn) + if c.generator_model.lower() in "hifigan_generator": + model = MyModel(in_channels=c.audio["num_mels"], out_channels=1, **c.generator_model_params) + elif c.generator_model.lower() in "melgan_generator": + model = MyModel( + in_channels=c.audio["num_mels"], + out_channels=1, + proj_kernel=7, + base_channels=512, + upsample_factors=c.generator_model_params["upsample_factors"], + res_kernel=3, + num_res_blocks=c.generator_model_params["num_res_blocks"], + ) + elif c.generator_model in "melgan_fb_generator": + raise ValueError("melgan_fb_generator is now fullband_melgan_generator") + elif c.generator_model.lower() in "multiband_melgan_generator": + model = MyModel( + in_channels=c.audio["num_mels"], + out_channels=4, + proj_kernel=7, + base_channels=384, + upsample_factors=c.generator_model_params["upsample_factors"], + res_kernel=3, + num_res_blocks=c.generator_model_params["num_res_blocks"], + ) + elif c.generator_model.lower() in "fullband_melgan_generator": + model = MyModel( + in_channels=c.audio["num_mels"], + out_channels=1, + proj_kernel=7, + base_channels=512, + upsample_factors=c.generator_model_params["upsample_factors"], + res_kernel=3, + num_res_blocks=c.generator_model_params["num_res_blocks"], + ) + elif c.generator_model.lower() in "parallel_wavegan_generator": + model = MyModel( + in_channels=1, + out_channels=1, + kernel_size=3, + num_res_blocks=c.generator_model_params["num_res_blocks"], + stacks=c.generator_model_params["stacks"], + res_channels=64, + gate_channels=128, + skip_channels=64, + aux_channels=c.audio["num_mels"], + dropout=0.0, + bias=True, + use_weight_norm=True, + upsample_factors=c.generator_model_params["upsample_factors"], + ) + elif c.generator_model.lower() in "univnet_generator": + model = MyModel(**c.generator_model_params) + else: + raise NotImplementedError(f"Model {c.generator_model} not implemented!") + return model + + +def setup_discriminator(c): + """TODO: use config objekt as arguments""" + print(" > Discriminator Model: {}".format(c.discriminator_model)) + if "parallel_wavegan" in c.discriminator_model: + MyModel = importlib.import_module("TTS.vocoder.models.parallel_wavegan_discriminator") + else: + MyModel = importlib.import_module("TTS.vocoder.models." + c.discriminator_model.lower()) + MyModel = getattr(MyModel, to_camel(c.discriminator_model.lower())) + if c.discriminator_model in "hifigan_discriminator": + model = MyModel() + if c.discriminator_model in "random_window_discriminator": + model = MyModel( + cond_channels=c.audio["num_mels"], + hop_length=c.audio["hop_length"], + uncond_disc_donwsample_factors=c.discriminator_model_params["uncond_disc_donwsample_factors"], + cond_disc_downsample_factors=c.discriminator_model_params["cond_disc_downsample_factors"], + cond_disc_out_channels=c.discriminator_model_params["cond_disc_out_channels"], + window_sizes=c.discriminator_model_params["window_sizes"], + ) + if c.discriminator_model in "melgan_multiscale_discriminator": + model = MyModel( + in_channels=1, + out_channels=1, + kernel_sizes=(5, 3), + base_channels=c.discriminator_model_params["base_channels"], + max_channels=c.discriminator_model_params["max_channels"], + downsample_factors=c.discriminator_model_params["downsample_factors"], + ) + if c.discriminator_model == "residual_parallel_wavegan_discriminator": + model = MyModel( + in_channels=1, + out_channels=1, + kernel_size=3, + num_layers=c.discriminator_model_params["num_layers"], + stacks=c.discriminator_model_params["stacks"], + res_channels=64, + gate_channels=128, + skip_channels=64, + dropout=0.0, + bias=True, + nonlinear_activation="LeakyReLU", + nonlinear_activation_params={"negative_slope": 0.2}, + ) + if c.discriminator_model == "parallel_wavegan_discriminator": + model = MyModel( + in_channels=1, + out_channels=1, + kernel_size=3, + num_layers=c.discriminator_model_params["num_layers"], + conv_channels=64, + dilation_factor=1, + nonlinear_activation="LeakyReLU", + nonlinear_activation_params={"negative_slope": 0.2}, + bias=True, + ) + if c.discriminator_model == "univnet_discriminator": + model = MyModel() + return model diff --git a/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..46669fb51d75cf9562bbec4bbc335e7d4ae54c85 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/base_vocoder.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/base_vocoder.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..17ad47c683a2a2b9683935c4cb1ee5da6f483af7 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/base_vocoder.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/gan.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/gan.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1f1fc3b93f9d0150fc041f09262a9984973f4754 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/gan.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/hifigan_discriminator.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/hifigan_discriminator.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..73e501d30dbabfa5caf6f905973d0264bea62522 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/hifigan_discriminator.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/hifigan_generator.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/hifigan_generator.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..899d7d6f04b405c0371d0b736e7e7b4d850b1b06 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/hifigan_generator.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/wavegrad.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/wavegrad.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1cee7cfd8be47d52777687a87305e6185fe5ab4b Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/wavegrad.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/wavernn.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/wavernn.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb6386db6e0a3cd995c94260c1ff8385e46ad120 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/models/__pycache__/wavernn.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/models/base_vocoder.py b/Indic-TTS/TTS/TTS/vocoder/models/base_vocoder.py new file mode 100644 index 0000000000000000000000000000000000000000..01a7ff68771c72f89f9d0fb6708706f6f92ba96a --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/base_vocoder.py @@ -0,0 +1,53 @@ +from coqpit import Coqpit + +from TTS.model import BaseTrainerModel + +# pylint: skip-file + + +class BaseVocoder(BaseTrainerModel): + """Base `vocoder` class. Every new `vocoder` model must inherit this. + + It defines `vocoder` specific functions on top of `Model`. + + Notes on input/output tensor shapes: + Any input or output tensor of the model must be shaped as + + - 3D tensors `batch x time x channels` + - 2D tensors `batch x channels` + - 1D tensors `batch x 1` + """ + + def __init__(self, config): + super().__init__() + self._set_model_args(config) + + def _set_model_args(self, config: Coqpit): + """Setup model args based on the config type. + + If the config is for training with a name like "*Config", then the model args are embeded in the + config.model_args + + If the config is for the model with a name like "*Args", then we assign the directly. + """ + # don't use isintance not to import recursively + if "Config" in config.__class__.__name__: + if "characters" in config: + _, self.config, num_chars = self.get_characters(config) + self.config.num_chars = num_chars + if hasattr(self.config, "model_args"): + config.model_args.num_chars = num_chars + if "model_args" in config: + self.args = self.config.model_args + # This is for backward compatibility + if "model_params" in config: + self.args = self.config.model_params + else: + self.config = config + if "model_args" in config: + self.args = self.config.model_args + # This is for backward compatibility + if "model_params" in config: + self.args = self.config.model_params + else: + raise ValueError("config must be either a *Config or *Args") diff --git a/Indic-TTS/TTS/TTS/vocoder/models/fullband_melgan_generator.py b/Indic-TTS/TTS/TTS/vocoder/models/fullband_melgan_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..ee25559af0d468aac535841bdfdd33b366250f43 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/fullband_melgan_generator.py @@ -0,0 +1,33 @@ +import torch + +from TTS.vocoder.models.melgan_generator import MelganGenerator + + +class FullbandMelganGenerator(MelganGenerator): + def __init__( + self, + in_channels=80, + out_channels=1, + proj_kernel=7, + base_channels=512, + upsample_factors=(2, 8, 2, 2), + res_kernel=3, + num_res_blocks=4, + ): + super().__init__( + in_channels=in_channels, + out_channels=out_channels, + proj_kernel=proj_kernel, + base_channels=base_channels, + upsample_factors=upsample_factors, + res_kernel=res_kernel, + num_res_blocks=num_res_blocks, + ) + + @torch.no_grad() + def inference(self, cond_features): + cond_features = cond_features.to(self.layers[1].weight.device) + cond_features = torch.nn.functional.pad( + cond_features, (self.inference_padding, self.inference_padding), "replicate" + ) + return self.layers(cond_features) diff --git a/Indic-TTS/TTS/TTS/vocoder/models/gan.py b/Indic-TTS/TTS/TTS/vocoder/models/gan.py new file mode 100644 index 0000000000000000000000000000000000000000..a3803f7714aa5c537c3de334bf9ba81496169502 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/gan.py @@ -0,0 +1,373 @@ +from inspect import signature +from typing import Dict, List, Tuple + +import numpy as np +import torch +from coqpit import Coqpit +from torch import nn +from torch.utils.data import DataLoader +from torch.utils.data.distributed import DistributedSampler +from trainer.trainer_utils import get_optimizer, get_scheduler + +from TTS.utils.audio import AudioProcessor +from TTS.utils.io import load_fsspec +from TTS.vocoder.datasets.gan_dataset import GANDataset +from TTS.vocoder.layers.losses import DiscriminatorLoss, GeneratorLoss +from TTS.vocoder.models import setup_discriminator, setup_generator +from TTS.vocoder.models.base_vocoder import BaseVocoder +from TTS.vocoder.utils.generic_utils import plot_results + + +class GAN(BaseVocoder): + def __init__(self, config: Coqpit, ap: AudioProcessor = None): + """Wrap a generator and a discriminator network. It provides a compatible interface for the trainer. + It also helps mixing and matching different generator and disciminator networks easily. + + To implement a new GAN models, you just need to define the generator and the discriminator networks, the rest + is handled by the `GAN` class. + + Args: + config (Coqpit): Model configuration. + ap (AudioProcessor): ๐ŸธTTS AudioProcessor instance. Defaults to None. + + Examples: + Initializing the GAN model with HifiGAN generator and discriminator. + >>> from TTS.vocoder.configs import HifiganConfig + >>> config = HifiganConfig() + >>> model = GAN(config) + """ + super().__init__(config) + self.config = config + self.model_g = setup_generator(config) + self.model_d = setup_discriminator(config) + self.train_disc = False # if False, train only the generator. + self.y_hat_g = None # the last generator prediction to be passed onto the discriminator + self.ap = ap + + def forward(self, x: torch.Tensor) -> torch.Tensor: + """Run the generator's forward pass. + + Args: + x (torch.Tensor): Input tensor. + + Returns: + torch.Tensor: output of the GAN generator network. + """ + return self.model_g.forward(x) + + def inference(self, x: torch.Tensor) -> torch.Tensor: + """Run the generator's inference pass. + + Args: + x (torch.Tensor): Input tensor. + Returns: + torch.Tensor: output of the GAN generator network. + """ + return self.model_g.inference(x) + + def train_step(self, batch: Dict, criterion: Dict, optimizer_idx: int) -> Tuple[Dict, Dict]: + """Compute model outputs and the loss values. `optimizer_idx` selects the generator or the discriminator for + network on the current pass. + + Args: + batch (Dict): Batch of samples returned by the dataloader. + criterion (Dict): Criterion used to compute the losses. + optimizer_idx (int): ID of the optimizer in use on the current pass. + + Raises: + ValueError: `optimizer_idx` is an unexpected value. + + Returns: + Tuple[Dict, Dict]: model outputs and the computed loss values. + """ + outputs = {} + loss_dict = {} + + x = batch["input"] + y = batch["waveform"] + + if optimizer_idx not in [0, 1]: + raise ValueError(" [!] Unexpected `optimizer_idx`.") + + if optimizer_idx == 0: + # DISCRIMINATOR optimization + + # generator pass + y_hat = self.model_g(x)[:, :, : y.size(2)] + + # cache for generator loss + # pylint: disable=W0201 + self.y_hat_g = y_hat + self.y_hat_sub = None + self.y_sub_g = None + + # PQMF formatting + if y_hat.shape[1] > 1: + self.y_hat_sub = y_hat + y_hat = self.model_g.pqmf_synthesis(y_hat) + self.y_hat_g = y_hat # save for generator loss + self.y_sub_g = self.model_g.pqmf_analysis(y) + + scores_fake, feats_fake, feats_real = None, None, None + + if self.train_disc: + # use different samples for G and D trainings + if self.config.diff_samples_for_G_and_D: + x_d = batch["input_disc"] + y_d = batch["waveform_disc"] + # use a different sample than generator + with torch.no_grad(): + y_hat = self.model_g(x_d) + + # PQMF formatting + if y_hat.shape[1] > 1: + y_hat = self.model_g.pqmf_synthesis(y_hat) + else: + # use the same samples as generator + x_d = x.clone() + y_d = y.clone() + y_hat = self.y_hat_g + + # run D with or without cond. features + if len(signature(self.model_d.forward).parameters) == 2: + D_out_fake = self.model_d(y_hat.detach().clone(), x_d) + D_out_real = self.model_d(y_d, x_d) + else: + D_out_fake = self.model_d(y_hat.detach()) + D_out_real = self.model_d(y_d) + + # format D outputs + if isinstance(D_out_fake, tuple): + # self.model_d returns scores and features + scores_fake, feats_fake = D_out_fake + if D_out_real is None: + scores_real, feats_real = None, None + else: + scores_real, feats_real = D_out_real + else: + # model D returns only scores + scores_fake = D_out_fake + scores_real = D_out_real + + # compute losses + loss_dict = criterion[optimizer_idx](scores_fake, scores_real) + outputs = {"model_outputs": y_hat} + + if optimizer_idx == 1: + # GENERATOR loss + scores_fake, feats_fake, feats_real = None, None, None + if self.train_disc: + if len(signature(self.model_d.forward).parameters) == 2: + D_out_fake = self.model_d(self.y_hat_g, x) + else: + D_out_fake = self.model_d(self.y_hat_g) + D_out_real = None + + if self.config.use_feat_match_loss: + with torch.no_grad(): + D_out_real = self.model_d(y) + + # format D outputs + if isinstance(D_out_fake, tuple): + scores_fake, feats_fake = D_out_fake + if D_out_real is None: + feats_real = None + else: + _, feats_real = D_out_real + else: + scores_fake = D_out_fake + feats_fake, feats_real = None, None + + # compute losses + loss_dict = criterion[optimizer_idx]( + self.y_hat_g, y, scores_fake, feats_fake, feats_real, self.y_hat_sub, self.y_sub_g + ) + outputs = {"model_outputs": self.y_hat_g} + return outputs, loss_dict + + def _log(self, name: str, ap: AudioProcessor, batch: Dict, outputs: Dict) -> Tuple[Dict, Dict]: + """Logging shared by the training and evaluation. + + Args: + name (str): Name of the run. `train` or `eval`, + ap (AudioProcessor): Audio processor used in training. + batch (Dict): Batch used in the last train/eval step. + outputs (Dict): Model outputs from the last train/eval step. + + Returns: + Tuple[Dict, Dict]: log figures and audio samples. + """ + y_hat = outputs[0]["model_outputs"] if self.train_disc else outputs[1]["model_outputs"] + y = batch["waveform"] + figures = plot_results(y_hat, y, ap, name) + sample_voice = y_hat[0].squeeze(0).detach().cpu().numpy() + audios = {f"{name}/audio": sample_voice} + return figures, audios + + def train_log( + self, batch: Dict, outputs: Dict, logger: "Logger", assets: Dict, steps: int # pylint: disable=unused-argument + ) -> Tuple[Dict, np.ndarray]: + """Call `_log()` for training.""" + figures, audios = self._log("eval", self.ap, batch, outputs) + logger.eval_figures(steps, figures) + logger.eval_audios(steps, audios, self.ap.sample_rate) + + @torch.no_grad() + def eval_step(self, batch: Dict, criterion: nn.Module, optimizer_idx: int) -> Tuple[Dict, Dict]: + """Call `train_step()` with `no_grad()`""" + self.train_disc = True # Avoid a bug in the Training with the missing discriminator loss + return self.train_step(batch, criterion, optimizer_idx) + + def eval_log( + self, batch: Dict, outputs: Dict, logger: "Logger", assets: Dict, steps: int # pylint: disable=unused-argument + ) -> Tuple[Dict, np.ndarray]: + """Call `_log()` for evaluation.""" + figures, audios = self._log("eval", self.ap, batch, outputs) + logger.eval_figures(steps, figures) + logger.eval_audios(steps, audios, self.ap.sample_rate) + + def load_checkpoint( + self, + config: Coqpit, + checkpoint_path: str, + eval: bool = False, # pylint: disable=unused-argument, redefined-builtin + ) -> None: + """Load a GAN checkpoint and initialize model parameters. + + Args: + config (Coqpit): Model config. + checkpoint_path (str): Checkpoint file path. + eval (bool, optional): If true, load the model for inference. If falseDefaults to False. + """ + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + # band-aid for older than v0.0.15 GAN models + if "model_disc" in state: + self.model_g.load_checkpoint(config, checkpoint_path, eval) + else: + self.load_state_dict(state["model"]) + if eval: + self.model_d = None + if hasattr(self.model_g, "remove_weight_norm"): + self.model_g.remove_weight_norm() + + def on_train_step_start(self, trainer) -> None: + """Enable the discriminator training based on `steps_to_start_discriminator` + + Args: + trainer (Trainer): Trainer object. + """ + self.train_disc = trainer.total_steps_done >= self.config.steps_to_start_discriminator + + def get_optimizer(self) -> List: + """Initiate and return the GAN optimizers based on the config parameters. + + It returnes 2 optimizers in a list. First one is for the generator and the second one is for the discriminator. + + Returns: + List: optimizers. + """ + optimizer1 = get_optimizer( + self.config.optimizer, self.config.optimizer_params, self.config.lr_gen, self.model_g + ) + optimizer2 = get_optimizer( + self.config.optimizer, self.config.optimizer_params, self.config.lr_disc, self.model_d + ) + return [optimizer2, optimizer1] + + def get_lr(self) -> List: + """Set the initial learning rates for each optimizer. + + Returns: + List: learning rates for each optimizer. + """ + return [self.config.lr_disc, self.config.lr_gen] + + def get_scheduler(self, optimizer) -> List: + """Set the schedulers for each optimizer. + + Args: + optimizer (List[`torch.optim.Optimizer`]): List of optimizers. + + Returns: + List: Schedulers, one for each optimizer. + """ + scheduler1 = get_scheduler(self.config.lr_scheduler_gen, self.config.lr_scheduler_gen_params, optimizer[0]) + scheduler2 = get_scheduler(self.config.lr_scheduler_disc, self.config.lr_scheduler_disc_params, optimizer[1]) + return [scheduler2, scheduler1] + + @staticmethod + def format_batch(batch: List) -> Dict: + """Format the batch for training. + + Args: + batch (List): Batch out of the dataloader. + + Returns: + Dict: formatted model inputs. + """ + if isinstance(batch[0], list): + x_G, y_G = batch[0] + x_D, y_D = batch[1] + return {"input": x_G, "waveform": y_G, "input_disc": x_D, "waveform_disc": y_D} + x, y = batch + return {"input": x, "waveform": y} + + def get_data_loader( # pylint: disable=no-self-use, unused-argument + self, + config: Coqpit, + assets: Dict, + is_eval: True, + samples: List, + verbose: bool, + num_gpus: int, + rank: int = None, # pylint: disable=unused-argument + ): + """Initiate and return the GAN dataloader. + + Args: + config (Coqpit): Model config. + ap (AudioProcessor): Audio processor. + is_eval (True): Set the dataloader for evaluation if true. + samples (List): Data samples. + verbose (bool): Log information if true. + num_gpus (int): Number of GPUs in use. + rank (int): Rank of the current GPU. Defaults to None. + + Returns: + DataLoader: Torch dataloader. + """ + dataset = GANDataset( + ap=self.ap, + items=samples, + seq_len=config.seq_len, + hop_len=self.ap.hop_length, + pad_short=config.pad_short, + conv_pad=config.conv_pad, + return_pairs=config.diff_samples_for_G_and_D if "diff_samples_for_G_and_D" in config else False, + is_training=not is_eval, + return_segments=not is_eval, + use_noise_augment=config.use_noise_augment, + use_cache=config.use_cache, + verbose=verbose, + ) + dataset.shuffle_mapping() + sampler = DistributedSampler(dataset, shuffle=True) if num_gpus > 1 else None + loader = DataLoader( + dataset, + batch_size=1 if is_eval else config.batch_size, + shuffle=num_gpus == 0, + drop_last=False, + sampler=sampler, + num_workers=config.num_eval_loader_workers if is_eval else config.num_loader_workers, + pin_memory=False, + ) + return loader + + def get_criterion(self): + """Return criterions for the optimizers""" + return [DiscriminatorLoss(self.config), GeneratorLoss(self.config)] + + @staticmethod + def init_from_config(config: Coqpit, verbose=True) -> "GAN": + ap = AudioProcessor.init_from_config(config, verbose=verbose) + return GAN(config, ap=ap) diff --git a/Indic-TTS/TTS/TTS/vocoder/models/hifigan_discriminator.py b/Indic-TTS/TTS/TTS/vocoder/models/hifigan_discriminator.py new file mode 100644 index 0000000000000000000000000000000000000000..ca5eaf408c95372ea26f4e83db6f470b4dd92dfb --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/hifigan_discriminator.py @@ -0,0 +1,217 @@ +# adopted from https://github.com/jik876/hifi-gan/blob/master/models.py +import torch +from torch import nn +from torch.nn import functional as F + +LRELU_SLOPE = 0.1 + + +class DiscriminatorP(torch.nn.Module): + """HiFiGAN Periodic Discriminator + + Takes every Pth value from the input waveform and applied a stack of convoluations. + + Note: + if `period` is 2 + `waveform = [1, 2, 3, 4, 5, 6 ...] --> [1, 3, 5 ... ] --> convs -> score, feat` + + Args: + x (Tensor): input waveform. + + Returns: + [Tensor]: discriminator scores per sample in the batch. + [List[Tensor]]: list of features from each convolutional layer. + + Shapes: + x: [B, 1, T] + """ + + def __init__(self, period, kernel_size=5, stride=3, use_spectral_norm=False): + super().__init__() + self.period = period + get_padding = lambda k, d: int((k * d - d) / 2) + norm_f = nn.utils.spectral_norm if use_spectral_norm else nn.utils.weight_norm + self.convs = nn.ModuleList( + [ + norm_f(nn.Conv2d(1, 32, (kernel_size, 1), (stride, 1), padding=(get_padding(kernel_size, 1), 0))), + norm_f(nn.Conv2d(32, 128, (kernel_size, 1), (stride, 1), padding=(get_padding(kernel_size, 1), 0))), + norm_f(nn.Conv2d(128, 512, (kernel_size, 1), (stride, 1), padding=(get_padding(kernel_size, 1), 0))), + norm_f(nn.Conv2d(512, 1024, (kernel_size, 1), (stride, 1), padding=(get_padding(kernel_size, 1), 0))), + norm_f(nn.Conv2d(1024, 1024, (kernel_size, 1), 1, padding=(2, 0))), + ] + ) + self.conv_post = norm_f(nn.Conv2d(1024, 1, (3, 1), 1, padding=(1, 0))) + + def forward(self, x): + """ + Args: + x (Tensor): input waveform. + + Returns: + [Tensor]: discriminator scores per sample in the batch. + [List[Tensor]]: list of features from each convolutional layer. + + Shapes: + x: [B, 1, T] + """ + feat = [] + + # 1d to 2d + b, c, t = x.shape + if t % self.period != 0: # pad first + n_pad = self.period - (t % self.period) + x = F.pad(x, (0, n_pad), "reflect") + t = t + n_pad + x = x.view(b, c, t // self.period, self.period) + + for l in self.convs: + x = l(x) + x = F.leaky_relu(x, LRELU_SLOPE) + feat.append(x) + x = self.conv_post(x) + feat.append(x) + x = torch.flatten(x, 1, -1) + + return x, feat + + +class MultiPeriodDiscriminator(torch.nn.Module): + """HiFiGAN Multi-Period Discriminator (MPD) + Wrapper for the `PeriodDiscriminator` to apply it in different periods. + Periods are suggested to be prime numbers to reduce the overlap between each discriminator. + """ + + def __init__(self, use_spectral_norm=False): + super().__init__() + self.discriminators = nn.ModuleList( + [ + DiscriminatorP(2, use_spectral_norm=use_spectral_norm), + DiscriminatorP(3, use_spectral_norm=use_spectral_norm), + DiscriminatorP(5, use_spectral_norm=use_spectral_norm), + DiscriminatorP(7, use_spectral_norm=use_spectral_norm), + DiscriminatorP(11, use_spectral_norm=use_spectral_norm), + ] + ) + + def forward(self, x): + """ + Args: + x (Tensor): input waveform. + + Returns: + [List[Tensor]]: list of scores from each discriminator. + [List[List[Tensor]]]: list of list of features from each discriminator's each convolutional layer. + + Shapes: + x: [B, 1, T] + """ + scores = [] + feats = [] + for _, d in enumerate(self.discriminators): + score, feat = d(x) + scores.append(score) + feats.append(feat) + return scores, feats + + +class DiscriminatorS(torch.nn.Module): + """HiFiGAN Scale Discriminator. + It is similar to `MelganDiscriminator` but with a specific architecture explained in the paper. + + Args: + use_spectral_norm (bool): if `True` swith to spectral norm instead of weight norm. + + """ + + def __init__(self, use_spectral_norm=False): + super().__init__() + norm_f = nn.utils.spectral_norm if use_spectral_norm else nn.utils.weight_norm + self.convs = nn.ModuleList( + [ + norm_f(nn.Conv1d(1, 128, 15, 1, padding=7)), + norm_f(nn.Conv1d(128, 128, 41, 2, groups=4, padding=20)), + norm_f(nn.Conv1d(128, 256, 41, 2, groups=16, padding=20)), + norm_f(nn.Conv1d(256, 512, 41, 4, groups=16, padding=20)), + norm_f(nn.Conv1d(512, 1024, 41, 4, groups=16, padding=20)), + norm_f(nn.Conv1d(1024, 1024, 41, 1, groups=16, padding=20)), + norm_f(nn.Conv1d(1024, 1024, 5, 1, padding=2)), + ] + ) + self.conv_post = norm_f(nn.Conv1d(1024, 1, 3, 1, padding=1)) + + def forward(self, x): + """ + Args: + x (Tensor): input waveform. + + Returns: + Tensor: discriminator scores. + List[Tensor]: list of features from the convolutiona layers. + """ + feat = [] + for l in self.convs: + x = l(x) + x = F.leaky_relu(x, LRELU_SLOPE) + feat.append(x) + x = self.conv_post(x) + feat.append(x) + x = torch.flatten(x, 1, -1) + return x, feat + + +class MultiScaleDiscriminator(torch.nn.Module): + """HiFiGAN Multi-Scale Discriminator. + It is similar to `MultiScaleMelganDiscriminator` but specially tailored for HiFiGAN as in the paper. + """ + + def __init__(self): + super().__init__() + self.discriminators = nn.ModuleList( + [ + DiscriminatorS(use_spectral_norm=True), + DiscriminatorS(), + DiscriminatorS(), + ] + ) + self.meanpools = nn.ModuleList([nn.AvgPool1d(4, 2, padding=2), nn.AvgPool1d(4, 2, padding=2)]) + + def forward(self, x): + """ + Args: + x (Tensor): input waveform. + + Returns: + List[Tensor]: discriminator scores. + List[List[Tensor]]: list of list of features from each layers of each discriminator. + """ + scores = [] + feats = [] + for i, d in enumerate(self.discriminators): + if i != 0: + x = self.meanpools[i - 1](x) + score, feat = d(x) + scores.append(score) + feats.append(feat) + return scores, feats + + +class HifiganDiscriminator(nn.Module): + """HiFiGAN discriminator wrapping MPD and MSD.""" + + def __init__(self): + super().__init__() + self.mpd = MultiPeriodDiscriminator() + self.msd = MultiScaleDiscriminator() + + def forward(self, x): + """ + Args: + x (Tensor): input waveform. + + Returns: + List[Tensor]: discriminator scores. + List[List[Tensor]]: list of list of features from each layers of each discriminator. + """ + scores, feats = self.mpd(x) + scores_, feats_ = self.msd(x) + return scores + scores_, feats + feats_ diff --git a/Indic-TTS/TTS/TTS/vocoder/models/hifigan_generator.py b/Indic-TTS/TTS/TTS/vocoder/models/hifigan_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..fc15f3af1033470990001cc5106dfe08c2930749 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/hifigan_generator.py @@ -0,0 +1,300 @@ +# adopted from https://github.com/jik876/hifi-gan/blob/master/models.py +import torch +from torch import nn +from torch.nn import Conv1d, ConvTranspose1d +from torch.nn import functional as F +from torch.nn.utils import remove_weight_norm, weight_norm + +from TTS.utils.io import load_fsspec + +LRELU_SLOPE = 0.1 + + +def get_padding(k, d): + return int((k * d - d) / 2) + + +class ResBlock1(torch.nn.Module): + """Residual Block Type 1. It has 3 convolutional layers in each convolutiona block. + + Network:: + + x -> lrelu -> conv1_1 -> conv1_2 -> conv1_3 -> z -> lrelu -> conv2_1 -> conv2_2 -> conv2_3 -> o -> + -> o + |--------------------------------------------------------------------------------------------------| + + + Args: + channels (int): number of hidden channels for the convolutional layers. + kernel_size (int): size of the convolution filter in each layer. + dilations (list): list of dilation value for each conv layer in a block. + """ + + def __init__(self, channels, kernel_size=3, dilation=(1, 3, 5)): + super().__init__() + self.convs1 = nn.ModuleList( + [ + weight_norm( + Conv1d( + channels, + channels, + kernel_size, + 1, + dilation=dilation[0], + padding=get_padding(kernel_size, dilation[0]), + ) + ), + weight_norm( + Conv1d( + channels, + channels, + kernel_size, + 1, + dilation=dilation[1], + padding=get_padding(kernel_size, dilation[1]), + ) + ), + weight_norm( + Conv1d( + channels, + channels, + kernel_size, + 1, + dilation=dilation[2], + padding=get_padding(kernel_size, dilation[2]), + ) + ), + ] + ) + + self.convs2 = nn.ModuleList( + [ + weight_norm( + Conv1d(channels, channels, kernel_size, 1, dilation=1, padding=get_padding(kernel_size, 1)) + ), + weight_norm( + Conv1d(channels, channels, kernel_size, 1, dilation=1, padding=get_padding(kernel_size, 1)) + ), + weight_norm( + Conv1d(channels, channels, kernel_size, 1, dilation=1, padding=get_padding(kernel_size, 1)) + ), + ] + ) + + def forward(self, x): + """ + Args: + x (Tensor): input tensor. + Returns: + Tensor: output tensor. + Shapes: + x: [B, C, T] + """ + for c1, c2 in zip(self.convs1, self.convs2): + xt = F.leaky_relu(x, LRELU_SLOPE) + xt = c1(xt) + xt = F.leaky_relu(xt, LRELU_SLOPE) + xt = c2(xt) + x = xt + x + return x + + def remove_weight_norm(self): + for l in self.convs1: + remove_weight_norm(l) + for l in self.convs2: + remove_weight_norm(l) + + +class ResBlock2(torch.nn.Module): + """Residual Block Type 1. It has 3 convolutional layers in each convolutiona block. + + Network:: + + x -> lrelu -> conv1-> -> z -> lrelu -> conv2-> o -> + -> o + |---------------------------------------------------| + + + Args: + channels (int): number of hidden channels for the convolutional layers. + kernel_size (int): size of the convolution filter in each layer. + dilations (list): list of dilation value for each conv layer in a block. + """ + + def __init__(self, channels, kernel_size=3, dilation=(1, 3)): + super().__init__() + self.convs = nn.ModuleList( + [ + weight_norm( + Conv1d( + channels, + channels, + kernel_size, + 1, + dilation=dilation[0], + padding=get_padding(kernel_size, dilation[0]), + ) + ), + weight_norm( + Conv1d( + channels, + channels, + kernel_size, + 1, + dilation=dilation[1], + padding=get_padding(kernel_size, dilation[1]), + ) + ), + ] + ) + + def forward(self, x): + for c in self.convs: + xt = F.leaky_relu(x, LRELU_SLOPE) + xt = c(xt) + x = xt + x + return x + + def remove_weight_norm(self): + for l in self.convs: + remove_weight_norm(l) + + +class HifiganGenerator(torch.nn.Module): + def __init__( + self, + in_channels, + out_channels, + resblock_type, + resblock_dilation_sizes, + resblock_kernel_sizes, + upsample_kernel_sizes, + upsample_initial_channel, + upsample_factors, + inference_padding=5, + cond_channels=0, + conv_pre_weight_norm=True, + conv_post_weight_norm=True, + conv_post_bias=True, + ): + r"""HiFiGAN Generator with Multi-Receptive Field Fusion (MRF) + + Network: + x -> lrelu -> upsampling_layer -> resblock1_k1x1 -> z1 -> + -> z_sum / #resblocks -> lrelu -> conv_post_7x1 -> tanh -> o + .. -> zI ---| + resblockN_kNx1 -> zN ---' + + Args: + in_channels (int): number of input tensor channels. + out_channels (int): number of output tensor channels. + resblock_type (str): type of the `ResBlock`. '1' or '2'. + resblock_dilation_sizes (List[List[int]]): list of dilation values in each layer of a `ResBlock`. + resblock_kernel_sizes (List[int]): list of kernel sizes for each `ResBlock`. + upsample_kernel_sizes (List[int]): list of kernel sizes for each transposed convolution. + upsample_initial_channel (int): number of channels for the first upsampling layer. This is divided by 2 + for each consecutive upsampling layer. + upsample_factors (List[int]): upsampling factors (stride) for each upsampling layer. + inference_padding (int): constant padding applied to the input at inference time. Defaults to 5. + """ + super().__init__() + self.inference_padding = inference_padding + self.num_kernels = len(resblock_kernel_sizes) + self.num_upsamples = len(upsample_factors) + # initial upsampling layers + self.conv_pre = weight_norm(Conv1d(in_channels, upsample_initial_channel, 7, 1, padding=3)) + resblock = ResBlock1 if resblock_type == "1" else ResBlock2 + # upsampling layers + self.ups = nn.ModuleList() + for i, (u, k) in enumerate(zip(upsample_factors, upsample_kernel_sizes)): + self.ups.append( + weight_norm( + ConvTranspose1d( + upsample_initial_channel // (2**i), + upsample_initial_channel // (2 ** (i + 1)), + k, + u, + padding=(k - u) // 2, + ) + ) + ) + # MRF blocks + self.resblocks = nn.ModuleList() + for i in range(len(self.ups)): + ch = upsample_initial_channel // (2 ** (i + 1)) + for _, (k, d) in enumerate(zip(resblock_kernel_sizes, resblock_dilation_sizes)): + self.resblocks.append(resblock(ch, k, d)) + # post convolution layer + self.conv_post = weight_norm(Conv1d(ch, out_channels, 7, 1, padding=3, bias=conv_post_bias)) + if cond_channels > 0: + self.cond_layer = nn.Conv1d(cond_channels, upsample_initial_channel, 1) + + if not conv_pre_weight_norm: + remove_weight_norm(self.conv_pre) + + if not conv_post_weight_norm: + remove_weight_norm(self.conv_post) + + def forward(self, x, g=None): + """ + Args: + x (Tensor): feature input tensor. + g (Tensor): global conditioning input tensor. + + Returns: + Tensor: output waveform. + + Shapes: + x: [B, C, T] + Tensor: [B, 1, T] + """ + o = self.conv_pre(x) + if hasattr(self, "cond_layer"): + o = o + self.cond_layer(g) + for i in range(self.num_upsamples): + o = F.leaky_relu(o, LRELU_SLOPE) + o = self.ups[i](o) + z_sum = None + for j in range(self.num_kernels): + if z_sum is None: + z_sum = self.resblocks[i * self.num_kernels + j](o) + else: + z_sum += self.resblocks[i * self.num_kernels + j](o) + o = z_sum / self.num_kernels + o = F.leaky_relu(o) + o = self.conv_post(o) + o = torch.tanh(o) + return o + + @torch.no_grad() + def inference(self, c): + """ + Args: + x (Tensor): conditioning input tensor. + + Returns: + Tensor: output waveform. + + Shapes: + x: [B, C, T] + Tensor: [B, 1, T] + """ + c = c.to(self.conv_pre.weight.device) + c = torch.nn.functional.pad(c, (self.inference_padding, self.inference_padding), "replicate") + return self.forward(c) + + def remove_weight_norm(self): + print("Removing weight norm...") + for l in self.ups: + remove_weight_norm(l) + for l in self.resblocks: + l.remove_weight_norm() + remove_weight_norm(self.conv_pre) + remove_weight_norm(self.conv_post) + + def load_checkpoint( + self, config, checkpoint_path, eval=False + ): # pylint: disable=unused-argument, redefined-builtin + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + self.load_state_dict(state["model"]) + if eval: + self.eval() + assert not self.training + self.remove_weight_norm() diff --git a/Indic-TTS/TTS/TTS/vocoder/models/melgan_discriminator.py b/Indic-TTS/TTS/TTS/vocoder/models/melgan_discriminator.py new file mode 100644 index 0000000000000000000000000000000000000000..14f00c5927cb28449c4fb0dc0727cde014370c2b --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/melgan_discriminator.py @@ -0,0 +1,84 @@ +import numpy as np +from torch import nn +from torch.nn.utils import weight_norm + + +class MelganDiscriminator(nn.Module): + def __init__( + self, + in_channels=1, + out_channels=1, + kernel_sizes=(5, 3), + base_channels=16, + max_channels=1024, + downsample_factors=(4, 4, 4, 4), + groups_denominator=4, + ): + super().__init__() + self.layers = nn.ModuleList() + + layer_kernel_size = np.prod(kernel_sizes) + layer_padding = (layer_kernel_size - 1) // 2 + + # initial layer + self.layers += [ + nn.Sequential( + nn.ReflectionPad1d(layer_padding), + weight_norm(nn.Conv1d(in_channels, base_channels, layer_kernel_size, stride=1)), + nn.LeakyReLU(0.2, inplace=True), + ) + ] + + # downsampling layers + layer_in_channels = base_channels + for downsample_factor in downsample_factors: + layer_out_channels = min(layer_in_channels * downsample_factor, max_channels) + layer_kernel_size = downsample_factor * 10 + 1 + layer_padding = (layer_kernel_size - 1) // 2 + layer_groups = layer_in_channels // groups_denominator + self.layers += [ + nn.Sequential( + weight_norm( + nn.Conv1d( + layer_in_channels, + layer_out_channels, + kernel_size=layer_kernel_size, + stride=downsample_factor, + padding=layer_padding, + groups=layer_groups, + ) + ), + nn.LeakyReLU(0.2, inplace=True), + ) + ] + layer_in_channels = layer_out_channels + + # last 2 layers + layer_padding1 = (kernel_sizes[0] - 1) // 2 + layer_padding2 = (kernel_sizes[1] - 1) // 2 + self.layers += [ + nn.Sequential( + weight_norm( + nn.Conv1d( + layer_out_channels, + layer_out_channels, + kernel_size=kernel_sizes[0], + stride=1, + padding=layer_padding1, + ) + ), + nn.LeakyReLU(0.2, inplace=True), + ), + weight_norm( + nn.Conv1d( + layer_out_channels, out_channels, kernel_size=kernel_sizes[1], stride=1, padding=layer_padding2 + ) + ), + ] + + def forward(self, x): + feats = [] + for layer in self.layers: + x = layer(x) + feats.append(x) + return x, feats diff --git a/Indic-TTS/TTS/TTS/vocoder/models/melgan_generator.py b/Indic-TTS/TTS/TTS/vocoder/models/melgan_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..80b478704ebdbcde2a1871a2481bc1b7f1f22fa9 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/melgan_generator.py @@ -0,0 +1,95 @@ +import torch +from torch import nn +from torch.nn.utils import weight_norm + +from TTS.utils.io import load_fsspec +from TTS.vocoder.layers.melgan import ResidualStack + + +class MelganGenerator(nn.Module): + def __init__( + self, + in_channels=80, + out_channels=1, + proj_kernel=7, + base_channels=512, + upsample_factors=(8, 8, 2, 2), + res_kernel=3, + num_res_blocks=3, + ): + super().__init__() + + # assert model parameters + assert (proj_kernel - 1) % 2 == 0, " [!] proj_kernel should be an odd number." + + # setup additional model parameters + base_padding = (proj_kernel - 1) // 2 + act_slope = 0.2 + self.inference_padding = 2 + + # initial layer + layers = [] + layers += [ + nn.ReflectionPad1d(base_padding), + weight_norm(nn.Conv1d(in_channels, base_channels, kernel_size=proj_kernel, stride=1, bias=True)), + ] + + # upsampling layers and residual stacks + for idx, upsample_factor in enumerate(upsample_factors): + layer_in_channels = base_channels // (2**idx) + layer_out_channels = base_channels // (2 ** (idx + 1)) + layer_filter_size = upsample_factor * 2 + layer_stride = upsample_factor + layer_output_padding = upsample_factor % 2 + layer_padding = upsample_factor // 2 + layer_output_padding + layers += [ + nn.LeakyReLU(act_slope), + weight_norm( + nn.ConvTranspose1d( + layer_in_channels, + layer_out_channels, + layer_filter_size, + stride=layer_stride, + padding=layer_padding, + output_padding=layer_output_padding, + bias=True, + ) + ), + ResidualStack(channels=layer_out_channels, num_res_blocks=num_res_blocks, kernel_size=res_kernel), + ] + + layers += [nn.LeakyReLU(act_slope)] + + # final layer + layers += [ + nn.ReflectionPad1d(base_padding), + weight_norm(nn.Conv1d(layer_out_channels, out_channels, proj_kernel, stride=1, bias=True)), + nn.Tanh(), + ] + self.layers = nn.Sequential(*layers) + + def forward(self, c): + return self.layers(c) + + def inference(self, c): + c = c.to(self.layers[1].weight.device) + c = torch.nn.functional.pad(c, (self.inference_padding, self.inference_padding), "replicate") + return self.layers(c) + + def remove_weight_norm(self): + for _, layer in enumerate(self.layers): + if len(layer.state_dict()) != 0: + try: + nn.utils.remove_weight_norm(layer) + except ValueError: + layer.remove_weight_norm() + + def load_checkpoint( + self, config, checkpoint_path, eval=False + ): # pylint: disable=unused-argument, redefined-builtin + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + self.load_state_dict(state["model"]) + if eval: + self.eval() + assert not self.training + self.remove_weight_norm() diff --git a/Indic-TTS/TTS/TTS/vocoder/models/melgan_multiscale_discriminator.py b/Indic-TTS/TTS/TTS/vocoder/models/melgan_multiscale_discriminator.py new file mode 100644 index 0000000000000000000000000000000000000000..b4909f37c0c91c6fee8bb0baab98a8662039dea1 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/melgan_multiscale_discriminator.py @@ -0,0 +1,50 @@ +from torch import nn + +from TTS.vocoder.models.melgan_discriminator import MelganDiscriminator + + +class MelganMultiscaleDiscriminator(nn.Module): + def __init__( + self, + in_channels=1, + out_channels=1, + num_scales=3, + kernel_sizes=(5, 3), + base_channels=16, + max_channels=1024, + downsample_factors=(4, 4, 4), + pooling_kernel_size=4, + pooling_stride=2, + pooling_padding=2, + groups_denominator=4, + ): + super().__init__() + + self.discriminators = nn.ModuleList( + [ + MelganDiscriminator( + in_channels=in_channels, + out_channels=out_channels, + kernel_sizes=kernel_sizes, + base_channels=base_channels, + max_channels=max_channels, + downsample_factors=downsample_factors, + groups_denominator=groups_denominator, + ) + for _ in range(num_scales) + ] + ) + + self.pooling = nn.AvgPool1d( + kernel_size=pooling_kernel_size, stride=pooling_stride, padding=pooling_padding, count_include_pad=False + ) + + def forward(self, x): + scores = [] + feats = [] + for disc in self.discriminators: + score, feat = disc(x) + scores.append(score) + feats.append(feat) + x = self.pooling(x) + return scores, feats diff --git a/Indic-TTS/TTS/TTS/vocoder/models/multiband_melgan_generator.py b/Indic-TTS/TTS/TTS/vocoder/models/multiband_melgan_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..25d6590659cf5863176eb6609c7609b0e1b28d12 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/multiband_melgan_generator.py @@ -0,0 +1,41 @@ +import torch + +from TTS.vocoder.layers.pqmf import PQMF +from TTS.vocoder.models.melgan_generator import MelganGenerator + + +class MultibandMelganGenerator(MelganGenerator): + def __init__( + self, + in_channels=80, + out_channels=4, + proj_kernel=7, + base_channels=384, + upsample_factors=(2, 8, 2, 2), + res_kernel=3, + num_res_blocks=3, + ): + super().__init__( + in_channels=in_channels, + out_channels=out_channels, + proj_kernel=proj_kernel, + base_channels=base_channels, + upsample_factors=upsample_factors, + res_kernel=res_kernel, + num_res_blocks=num_res_blocks, + ) + self.pqmf_layer = PQMF(N=4, taps=62, cutoff=0.15, beta=9.0) + + def pqmf_analysis(self, x): + return self.pqmf_layer.analysis(x) + + def pqmf_synthesis(self, x): + return self.pqmf_layer.synthesis(x) + + @torch.no_grad() + def inference(self, cond_features): + cond_features = cond_features.to(self.layers[1].weight.device) + cond_features = torch.nn.functional.pad( + cond_features, (self.inference_padding, self.inference_padding), "replicate" + ) + return self.pqmf_synthesis(self.layers(cond_features)) diff --git a/Indic-TTS/TTS/TTS/vocoder/models/parallel_wavegan_discriminator.py b/Indic-TTS/TTS/TTS/vocoder/models/parallel_wavegan_discriminator.py new file mode 100644 index 0000000000000000000000000000000000000000..adf1bdaea040e99dd66829b9b8ed184146e155cb --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/parallel_wavegan_discriminator.py @@ -0,0 +1,186 @@ +import math + +import torch +from torch import nn + +from TTS.vocoder.layers.parallel_wavegan import ResidualBlock + + +class ParallelWaveganDiscriminator(nn.Module): + """PWGAN discriminator as in https://arxiv.org/abs/1910.11480. + It classifies each audio window real/fake and returns a sequence + of predictions. + It is a stack of convolutional blocks with dilation. + """ + + # pylint: disable=dangerous-default-value + def __init__( + self, + in_channels=1, + out_channels=1, + kernel_size=3, + num_layers=10, + conv_channels=64, + dilation_factor=1, + nonlinear_activation="LeakyReLU", + nonlinear_activation_params={"negative_slope": 0.2}, + bias=True, + ): + super().__init__() + assert (kernel_size - 1) % 2 == 0, " [!] does not support even number kernel size." + assert dilation_factor > 0, " [!] dilation factor must be > 0." + self.conv_layers = nn.ModuleList() + conv_in_channels = in_channels + for i in range(num_layers - 1): + if i == 0: + dilation = 1 + else: + dilation = i if dilation_factor == 1 else dilation_factor**i + conv_in_channels = conv_channels + padding = (kernel_size - 1) // 2 * dilation + conv_layer = [ + nn.Conv1d( + conv_in_channels, + conv_channels, + kernel_size=kernel_size, + padding=padding, + dilation=dilation, + bias=bias, + ), + getattr(nn, nonlinear_activation)(inplace=True, **nonlinear_activation_params), + ] + self.conv_layers += conv_layer + padding = (kernel_size - 1) // 2 + last_conv_layer = nn.Conv1d(conv_in_channels, out_channels, kernel_size=kernel_size, padding=padding, bias=bias) + self.conv_layers += [last_conv_layer] + self.apply_weight_norm() + + def forward(self, x): + """ + x : (B, 1, T). + Returns: + Tensor: (B, 1, T) + """ + for f in self.conv_layers: + x = f(x) + return x + + def apply_weight_norm(self): + def _apply_weight_norm(m): + if isinstance(m, (torch.nn.Conv1d, torch.nn.Conv2d)): + torch.nn.utils.weight_norm(m) + + self.apply(_apply_weight_norm) + + def remove_weight_norm(self): + def _remove_weight_norm(m): + try: + # print(f"Weight norm is removed from {m}.") + nn.utils.remove_weight_norm(m) + except ValueError: # this module didn't have weight norm + return + + self.apply(_remove_weight_norm) + + +class ResidualParallelWaveganDiscriminator(nn.Module): + # pylint: disable=dangerous-default-value + def __init__( + self, + in_channels=1, + out_channels=1, + kernel_size=3, + num_layers=30, + stacks=3, + res_channels=64, + gate_channels=128, + skip_channels=64, + dropout=0.0, + bias=True, + nonlinear_activation="LeakyReLU", + nonlinear_activation_params={"negative_slope": 0.2}, + ): + super().__init__() + assert (kernel_size - 1) % 2 == 0, "Not support even number kernel size." + + self.in_channels = in_channels + self.out_channels = out_channels + self.num_layers = num_layers + self.stacks = stacks + self.kernel_size = kernel_size + self.res_factor = math.sqrt(1.0 / num_layers) + + # check the number of num_layers and stacks + assert num_layers % stacks == 0 + layers_per_stack = num_layers // stacks + + # define first convolution + self.first_conv = nn.Sequential( + nn.Conv1d(in_channels, res_channels, kernel_size=1, padding=0, dilation=1, bias=True), + getattr(nn, nonlinear_activation)(inplace=True, **nonlinear_activation_params), + ) + + # define residual blocks + self.conv_layers = nn.ModuleList() + for layer in range(num_layers): + dilation = 2 ** (layer % layers_per_stack) + conv = ResidualBlock( + kernel_size=kernel_size, + res_channels=res_channels, + gate_channels=gate_channels, + skip_channels=skip_channels, + aux_channels=-1, + dilation=dilation, + dropout=dropout, + bias=bias, + use_causal_conv=False, + ) + self.conv_layers += [conv] + + # define output layers + self.last_conv_layers = nn.ModuleList( + [ + getattr(nn, nonlinear_activation)(inplace=True, **nonlinear_activation_params), + nn.Conv1d(skip_channels, skip_channels, kernel_size=1, padding=0, dilation=1, bias=True), + getattr(nn, nonlinear_activation)(inplace=True, **nonlinear_activation_params), + nn.Conv1d(skip_channels, out_channels, kernel_size=1, padding=0, dilation=1, bias=True), + ] + ) + + # apply weight norm + self.apply_weight_norm() + + def forward(self, x): + """ + x: (B, 1, T). + """ + x = self.first_conv(x) + + skips = 0 + for f in self.conv_layers: + x, h = f(x, None) + skips += h + skips *= self.res_factor + + # apply final layers + x = skips + for f in self.last_conv_layers: + x = f(x) + return x + + def apply_weight_norm(self): + def _apply_weight_norm(m): + if isinstance(m, (torch.nn.Conv1d, torch.nn.Conv2d)): + torch.nn.utils.weight_norm(m) + + self.apply(_apply_weight_norm) + + def remove_weight_norm(self): + def _remove_weight_norm(m): + try: + print(f"Weight norm is removed from {m}.") + nn.utils.remove_weight_norm(m) + except ValueError: # this module didn't have weight norm + return + + self.apply(_remove_weight_norm) diff --git a/Indic-TTS/TTS/TTS/vocoder/models/parallel_wavegan_generator.py b/Indic-TTS/TTS/TTS/vocoder/models/parallel_wavegan_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..ee9d8ad5c2b14902763ca39654e09ad4dceff060 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/parallel_wavegan_generator.py @@ -0,0 +1,164 @@ +import math + +import numpy as np +import torch + +from TTS.utils.io import load_fsspec +from TTS.vocoder.layers.parallel_wavegan import ResidualBlock +from TTS.vocoder.layers.upsample import ConvUpsample + + +class ParallelWaveganGenerator(torch.nn.Module): + """PWGAN generator as in https://arxiv.org/pdf/1910.11480.pdf. + It is similar to WaveNet with no causal convolution. + It is conditioned on an aux feature (spectrogram) to generate + an output waveform from an input noise. + """ + + # pylint: disable=dangerous-default-value + def __init__( + self, + in_channels=1, + out_channels=1, + kernel_size=3, + num_res_blocks=30, + stacks=3, + res_channels=64, + gate_channels=128, + skip_channels=64, + aux_channels=80, + dropout=0.0, + bias=True, + use_weight_norm=True, + upsample_factors=[4, 4, 4, 4], + inference_padding=2, + ): + + super().__init__() + self.in_channels = in_channels + self.out_channels = out_channels + self.aux_channels = aux_channels + self.num_res_blocks = num_res_blocks + self.stacks = stacks + self.kernel_size = kernel_size + self.upsample_factors = upsample_factors + self.upsample_scale = np.prod(upsample_factors) + self.inference_padding = inference_padding + self.use_weight_norm = use_weight_norm + + # check the number of layers and stacks + assert num_res_blocks % stacks == 0 + layers_per_stack = num_res_blocks // stacks + + # define first convolution + self.first_conv = torch.nn.Conv1d(in_channels, res_channels, kernel_size=1, bias=True) + + # define conv + upsampling network + self.upsample_net = ConvUpsample(upsample_factors=upsample_factors) + + # define residual blocks + self.conv_layers = torch.nn.ModuleList() + for layer in range(num_res_blocks): + dilation = 2 ** (layer % layers_per_stack) + conv = ResidualBlock( + kernel_size=kernel_size, + res_channels=res_channels, + gate_channels=gate_channels, + skip_channels=skip_channels, + aux_channels=aux_channels, + dilation=dilation, + dropout=dropout, + bias=bias, + ) + self.conv_layers += [conv] + + # define output layers + self.last_conv_layers = torch.nn.ModuleList( + [ + torch.nn.ReLU(inplace=True), + torch.nn.Conv1d(skip_channels, skip_channels, kernel_size=1, bias=True), + torch.nn.ReLU(inplace=True), + torch.nn.Conv1d(skip_channels, out_channels, kernel_size=1, bias=True), + ] + ) + + # apply weight norm + if use_weight_norm: + self.apply_weight_norm() + + def forward(self, c): + """ + c: (B, C ,T'). + o: Output tensor (B, out_channels, T) + """ + # random noise + x = torch.randn([c.shape[0], 1, c.shape[2] * self.upsample_scale]) + x = x.to(self.first_conv.bias.device) + + # perform upsampling + if c is not None and self.upsample_net is not None: + c = self.upsample_net(c) + assert ( + c.shape[-1] == x.shape[-1] + ), f" [!] Upsampling scale does not match the expected output. {c.shape} vs {x.shape}" + + # encode to hidden representation + x = self.first_conv(x) + skips = 0 + for f in self.conv_layers: + x, h = f(x, c) + skips += h + skips *= math.sqrt(1.0 / len(self.conv_layers)) + + # apply final layers + x = skips + for f in self.last_conv_layers: + x = f(x) + + return x + + @torch.no_grad() + def inference(self, c): + c = c.to(self.first_conv.weight.device) + c = torch.nn.functional.pad(c, (self.inference_padding, self.inference_padding), "replicate") + return self.forward(c) + + def remove_weight_norm(self): + def _remove_weight_norm(m): + try: + # print(f"Weight norm is removed from {m}.") + torch.nn.utils.remove_weight_norm(m) + except ValueError: # this module didn't have weight norm + return + + self.apply(_remove_weight_norm) + + def apply_weight_norm(self): + def _apply_weight_norm(m): + if isinstance(m, (torch.nn.Conv1d, torch.nn.Conv2d)): + torch.nn.utils.weight_norm(m) + # print(f"Weight norm is applied to {m}.") + + self.apply(_apply_weight_norm) + + @staticmethod + def _get_receptive_field_size(layers, stacks, kernel_size, dilation=lambda x: 2**x): + assert layers % stacks == 0 + layers_per_cycle = layers // stacks + dilations = [dilation(i % layers_per_cycle) for i in range(layers)] + return (kernel_size - 1) * sum(dilations) + 1 + + @property + def receptive_field_size(self): + return self._get_receptive_field_size(self.layers, self.stacks, self.kernel_size) + + def load_checkpoint( + self, config, checkpoint_path, eval=False + ): # pylint: disable=unused-argument, redefined-builtin + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + self.load_state_dict(state["model"]) + if eval: + self.eval() + assert not self.training + if self.use_weight_norm: + self.remove_weight_norm() diff --git a/Indic-TTS/TTS/TTS/vocoder/models/random_window_discriminator.py b/Indic-TTS/TTS/TTS/vocoder/models/random_window_discriminator.py new file mode 100644 index 0000000000000000000000000000000000000000..ea95668a5fb6408488f0243c2e4e7f95ee4c6a6f --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/random_window_discriminator.py @@ -0,0 +1,204 @@ +import numpy as np +from torch import nn + + +class GBlock(nn.Module): + def __init__(self, in_channels, cond_channels, downsample_factor): + super().__init__() + + self.in_channels = in_channels + self.cond_channels = cond_channels + self.downsample_factor = downsample_factor + + self.start = nn.Sequential( + nn.AvgPool1d(downsample_factor, stride=downsample_factor), + nn.ReLU(), + nn.Conv1d(in_channels, in_channels * 2, kernel_size=3, padding=1), + ) + self.lc_conv1d = nn.Conv1d(cond_channels, in_channels * 2, kernel_size=1) + self.end = nn.Sequential( + nn.ReLU(), nn.Conv1d(in_channels * 2, in_channels * 2, kernel_size=3, dilation=2, padding=2) + ) + self.residual = nn.Sequential( + nn.Conv1d(in_channels, in_channels * 2, kernel_size=1), + nn.AvgPool1d(downsample_factor, stride=downsample_factor), + ) + + def forward(self, inputs, conditions): + outputs = self.start(inputs) + self.lc_conv1d(conditions) + outputs = self.end(outputs) + residual_outputs = self.residual(inputs) + outputs = outputs + residual_outputs + + return outputs + + +class DBlock(nn.Module): + def __init__(self, in_channels, out_channels, downsample_factor): + super().__init__() + + self.in_channels = in_channels + self.downsample_factor = downsample_factor + self.out_channels = out_channels + + self.donwsample_layer = nn.AvgPool1d(downsample_factor, stride=downsample_factor) + self.layers = nn.Sequential( + nn.ReLU(), + nn.Conv1d(in_channels, out_channels, kernel_size=3, padding=1), + nn.ReLU(), + nn.Conv1d(out_channels, out_channels, kernel_size=3, dilation=2, padding=2), + ) + self.residual = nn.Sequential( + nn.Conv1d(in_channels, out_channels, kernel_size=1), + ) + + def forward(self, inputs): + if self.downsample_factor > 1: + outputs = self.layers(self.donwsample_layer(inputs)) + self.donwsample_layer(self.residual(inputs)) + else: + outputs = self.layers(inputs) + self.residual(inputs) + return outputs + + +class ConditionalDiscriminator(nn.Module): + def __init__(self, in_channels, cond_channels, downsample_factors=(2, 2, 2), out_channels=(128, 256)): + super().__init__() + + assert len(downsample_factors) == len(out_channels) + 1 + + self.in_channels = in_channels + self.cond_channels = cond_channels + self.downsample_factors = downsample_factors + self.out_channels = out_channels + + self.pre_cond_layers = nn.ModuleList() + self.post_cond_layers = nn.ModuleList() + + # layers before condition features + self.pre_cond_layers += [DBlock(in_channels, 64, 1)] + in_channels = 64 + for (i, channel) in enumerate(out_channels): + self.pre_cond_layers.append(DBlock(in_channels, channel, downsample_factors[i])) + in_channels = channel + + # condition block + self.cond_block = GBlock(in_channels, cond_channels, downsample_factors[-1]) + + # layers after condition block + self.post_cond_layers += [ + DBlock(in_channels * 2, in_channels * 2, 1), + DBlock(in_channels * 2, in_channels * 2, 1), + nn.AdaptiveAvgPool1d(1), + nn.Conv1d(in_channels * 2, 1, kernel_size=1), + ] + + def forward(self, inputs, conditions): + batch_size = inputs.size()[0] + outputs = inputs.view(batch_size, self.in_channels, -1) + for layer in self.pre_cond_layers: + outputs = layer(outputs) + outputs = self.cond_block(outputs, conditions) + for layer in self.post_cond_layers: + outputs = layer(outputs) + + return outputs + + +class UnconditionalDiscriminator(nn.Module): + def __init__(self, in_channels, base_channels=64, downsample_factors=(8, 4), out_channels=(128, 256)): + super().__init__() + + self.downsample_factors = downsample_factors + self.in_channels = in_channels + self.downsample_factors = downsample_factors + self.out_channels = out_channels + + self.layers = nn.ModuleList() + self.layers += [DBlock(self.in_channels, base_channels, 1)] + in_channels = base_channels + for (i, factor) in enumerate(downsample_factors): + self.layers.append(DBlock(in_channels, out_channels[i], factor)) + in_channels *= 2 + self.layers += [ + DBlock(in_channels, in_channels, 1), + DBlock(in_channels, in_channels, 1), + nn.AdaptiveAvgPool1d(1), + nn.Conv1d(in_channels, 1, kernel_size=1), + ] + + def forward(self, inputs): + batch_size = inputs.size()[0] + outputs = inputs.view(batch_size, self.in_channels, -1) + for layer in self.layers: + outputs = layer(outputs) + return outputs + + +class RandomWindowDiscriminator(nn.Module): + """Random Window Discriminator as described in + http://arxiv.org/abs/1909.11646""" + + def __init__( + self, + cond_channels, + hop_length, + uncond_disc_donwsample_factors=(8, 4), + cond_disc_downsample_factors=((8, 4, 2, 2, 2), (8, 4, 2, 2), (8, 4, 2), (8, 4), (4, 2, 2)), + cond_disc_out_channels=((128, 128, 256, 256), (128, 256, 256), (128, 256), (256,), (128, 256)), + window_sizes=(512, 1024, 2048, 4096, 8192), + ): + + super().__init__() + self.cond_channels = cond_channels + self.window_sizes = window_sizes + self.hop_length = hop_length + self.base_window_size = self.hop_length * 2 + self.ks = [ws // self.base_window_size for ws in window_sizes] + + # check arguments + assert len(cond_disc_downsample_factors) == len(cond_disc_out_channels) == len(window_sizes) + for ws in window_sizes: + assert ws % hop_length == 0 + + for idx, cf in enumerate(cond_disc_downsample_factors): + assert np.prod(cf) == hop_length // self.ks[idx] + + # define layers + self.unconditional_discriminators = nn.ModuleList([]) + for k in self.ks: + layer = UnconditionalDiscriminator( + in_channels=k, base_channels=64, downsample_factors=uncond_disc_donwsample_factors + ) + self.unconditional_discriminators.append(layer) + + self.conditional_discriminators = nn.ModuleList([]) + for idx, k in enumerate(self.ks): + layer = ConditionalDiscriminator( + in_channels=k, + cond_channels=cond_channels, + downsample_factors=cond_disc_downsample_factors[idx], + out_channels=cond_disc_out_channels[idx], + ) + self.conditional_discriminators.append(layer) + + def forward(self, x, c): + scores = [] + feats = [] + # unconditional pass + for (window_size, layer) in zip(self.window_sizes, self.unconditional_discriminators): + index = np.random.randint(x.shape[-1] - window_size) + + score = layer(x[:, :, index : index + window_size]) + scores.append(score) + + # conditional pass + for (window_size, layer) in zip(self.window_sizes, self.conditional_discriminators): + frame_size = window_size // self.hop_length + lc_index = np.random.randint(c.shape[-1] - frame_size) + sample_index = lc_index * self.hop_length + x_sub = x[:, :, sample_index : (lc_index + frame_size) * self.hop_length] + c_sub = c[:, :, lc_index : lc_index + frame_size] + + score = layer(x_sub, c_sub) + scores.append(score) + return scores, feats diff --git a/Indic-TTS/TTS/TTS/vocoder/models/univnet_discriminator.py b/Indic-TTS/TTS/TTS/vocoder/models/univnet_discriminator.py new file mode 100644 index 0000000000000000000000000000000000000000..d6b0e5d52c79873623988a8324c94175e5812d5d --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/univnet_discriminator.py @@ -0,0 +1,96 @@ +import torch +import torch.nn.functional as F +from torch import nn +from torch.nn.utils import spectral_norm, weight_norm + +from TTS.utils.audio import TorchSTFT +from TTS.vocoder.models.hifigan_discriminator import MultiPeriodDiscriminator + +LRELU_SLOPE = 0.1 + + +class SpecDiscriminator(nn.Module): + """docstring for Discriminator.""" + + def __init__(self, fft_size=1024, hop_length=120, win_length=600, use_spectral_norm=False): + super().__init__() + norm_f = weight_norm if use_spectral_norm is False else spectral_norm + self.fft_size = fft_size + self.hop_length = hop_length + self.win_length = win_length + self.stft = TorchSTFT(fft_size, hop_length, win_length) + self.discriminators = nn.ModuleList( + [ + norm_f(nn.Conv2d(1, 32, kernel_size=(3, 9), padding=(1, 4))), + norm_f(nn.Conv2d(32, 32, kernel_size=(3, 9), stride=(1, 2), padding=(1, 4))), + norm_f(nn.Conv2d(32, 32, kernel_size=(3, 9), stride=(1, 2), padding=(1, 4))), + norm_f(nn.Conv2d(32, 32, kernel_size=(3, 9), stride=(1, 2), padding=(1, 4))), + norm_f(nn.Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))), + ] + ) + + self.out = norm_f(nn.Conv2d(32, 1, 3, 1, 1)) + + def forward(self, y): + + fmap = [] + with torch.no_grad(): + y = y.squeeze(1) + y = self.stft(y) + y = y.unsqueeze(1) + for _, d in enumerate(self.discriminators): + y = d(y) + y = F.leaky_relu(y, LRELU_SLOPE) + fmap.append(y) + + y = self.out(y) + fmap.append(y) + + return torch.flatten(y, 1, -1), fmap + + +class MultiResSpecDiscriminator(torch.nn.Module): + def __init__( # pylint: disable=dangerous-default-value + self, fft_sizes=[1024, 2048, 512], hop_sizes=[120, 240, 50], win_lengths=[600, 1200, 240], window="hann_window" + ): + + super().__init__() + self.discriminators = nn.ModuleList( + [ + SpecDiscriminator(fft_sizes[0], hop_sizes[0], win_lengths[0], window), + SpecDiscriminator(fft_sizes[1], hop_sizes[1], win_lengths[1], window), + SpecDiscriminator(fft_sizes[2], hop_sizes[2], win_lengths[2], window), + ] + ) + + def forward(self, x): + scores = [] + feats = [] + for d in self.discriminators: + score, feat = d(x) + scores.append(score) + feats.append(feat) + + return scores, feats + + +class UnivnetDiscriminator(nn.Module): + """Univnet discriminator wrapping MPD and MSD.""" + + def __init__(self): + super().__init__() + self.mpd = MultiPeriodDiscriminator() + self.msd = MultiResSpecDiscriminator() + + def forward(self, x): + """ + Args: + x (Tensor): input waveform. + + Returns: + List[Tensor]: discriminator scores. + List[List[Tensor]]: list of list of features from each layers of each discriminator. + """ + scores, feats = self.mpd(x) + scores_, feats_ = self.msd(x) + return scores + scores_, feats + feats_ diff --git a/Indic-TTS/TTS/TTS/vocoder/models/univnet_generator.py b/Indic-TTS/TTS/TTS/vocoder/models/univnet_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..2ee28c7b85852c6b15df28907b6fd1195f3218cd --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/univnet_generator.py @@ -0,0 +1,156 @@ +from typing import List + +import numpy as np +import torch +import torch.nn.functional as F + +from TTS.vocoder.layers.lvc_block import LVCBlock + +LRELU_SLOPE = 0.1 + + +class UnivnetGenerator(torch.nn.Module): + def __init__( + self, + in_channels: int, + out_channels: int, + hidden_channels: int, + cond_channels: int, + upsample_factors: List[int], + lvc_layers_each_block: int, + lvc_kernel_size: int, + kpnet_hidden_channels: int, + kpnet_conv_size: int, + dropout: float, + use_weight_norm=True, + ): + """Univnet Generator network. + + Paper: https://arxiv.org/pdf/2106.07889.pdf + + Args: + in_channels (int): Number of input tensor channels. + out_channels (int): Number of channels of the output tensor. + hidden_channels (int): Number of hidden network channels. + cond_channels (int): Number of channels of the conditioning tensors. + upsample_factors (List[int]): List of uplsample factors for the upsampling layers. + lvc_layers_each_block (int): Number of LVC layers in each block. + lvc_kernel_size (int): Kernel size of the LVC layers. + kpnet_hidden_channels (int): Number of hidden channels in the key-point network. + kpnet_conv_size (int): Number of convolution channels in the key-point network. + dropout (float): Dropout rate. + use_weight_norm (bool, optional): Enable/disable weight norm. Defaults to True. + """ + + super().__init__() + self.in_channels = in_channels + self.out_channels = out_channels + self.cond_channels = cond_channels + self.upsample_scale = np.prod(upsample_factors) + self.lvc_block_nums = len(upsample_factors) + + # define first convolution + self.first_conv = torch.nn.Conv1d( + in_channels, hidden_channels, kernel_size=7, padding=(7 - 1) // 2, dilation=1, bias=True + ) + + # define residual blocks + self.lvc_blocks = torch.nn.ModuleList() + cond_hop_length = 1 + for n in range(self.lvc_block_nums): + cond_hop_length = cond_hop_length * upsample_factors[n] + lvcb = LVCBlock( + in_channels=hidden_channels, + cond_channels=cond_channels, + upsample_ratio=upsample_factors[n], + conv_layers=lvc_layers_each_block, + conv_kernel_size=lvc_kernel_size, + cond_hop_length=cond_hop_length, + kpnet_hidden_channels=kpnet_hidden_channels, + kpnet_conv_size=kpnet_conv_size, + kpnet_dropout=dropout, + ) + self.lvc_blocks += [lvcb] + + # define output layers + self.last_conv_layers = torch.nn.ModuleList( + [ + torch.nn.Conv1d( + hidden_channels, out_channels, kernel_size=7, padding=(7 - 1) // 2, dilation=1, bias=True + ), + ] + ) + + # apply weight norm + if use_weight_norm: + self.apply_weight_norm() + + def forward(self, c): + """Calculate forward propagation. + Args: + c (Tensor): Local conditioning auxiliary features (B, C ,T'). + Returns: + Tensor: Output tensor (B, out_channels, T) + """ + # random noise + x = torch.randn([c.shape[0], self.in_channels, c.shape[2]]) + x = x.to(self.first_conv.bias.device) + x = self.first_conv(x) + + for n in range(self.lvc_block_nums): + x = self.lvc_blocks[n](x, c) + + # apply final layers + for f in self.last_conv_layers: + x = F.leaky_relu(x, LRELU_SLOPE) + x = f(x) + x = torch.tanh(x) + return x + + def remove_weight_norm(self): + """Remove weight normalization module from all of the layers.""" + + def _remove_weight_norm(m): + try: + # print(f"Weight norm is removed from {m}.") + torch.nn.utils.remove_weight_norm(m) + except ValueError: # this module didn't have weight norm + return + + self.apply(_remove_weight_norm) + + def apply_weight_norm(self): + """Apply weight normalization module from all of the layers.""" + + def _apply_weight_norm(m): + if isinstance(m, (torch.nn.Conv1d, torch.nn.Conv2d)): + torch.nn.utils.weight_norm(m) + # print(f"Weight norm is applied to {m}.") + + self.apply(_apply_weight_norm) + + @staticmethod + def _get_receptive_field_size(layers, stacks, kernel_size, dilation=lambda x: 2**x): + assert layers % stacks == 0 + layers_per_cycle = layers // stacks + dilations = [dilation(i % layers_per_cycle) for i in range(layers)] + return (kernel_size - 1) * sum(dilations) + 1 + + @property + def receptive_field_size(self): + """Return receptive field size.""" + return self._get_receptive_field_size(self.layers, self.stacks, self.kernel_size) + + @torch.no_grad() + def inference(self, c): + """Perform inference. + Args: + c (Tensor): Local conditioning auxiliary features :math:`(B, C, T)`. + Returns: + Tensor: Output tensor (T, out_channels) + """ + x = torch.randn([c.shape[0], self.in_channels, c.shape[2]]) + x = x.to(self.first_conv.bias.device) + + c = c.to(next(self.parameters())) + return self.forward(c) diff --git a/Indic-TTS/TTS/TTS/vocoder/models/wavegrad.py b/Indic-TTS/TTS/TTS/vocoder/models/wavegrad.py new file mode 100644 index 0000000000000000000000000000000000000000..c4968f1f1788613e89ddd2b3d38993278139e73f --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/wavegrad.py @@ -0,0 +1,344 @@ +from dataclasses import dataclass, field +from typing import Dict, List, Tuple + +import numpy as np +import torch +from coqpit import Coqpit +from torch import nn +from torch.nn.utils import weight_norm +from torch.utils.data import DataLoader +from torch.utils.data.distributed import DistributedSampler +from trainer.trainer_utils import get_optimizer, get_scheduler + +from TTS.utils.io import load_fsspec +from TTS.vocoder.datasets import WaveGradDataset +from TTS.vocoder.layers.wavegrad import Conv1d, DBlock, FiLM, UBlock +from TTS.vocoder.models.base_vocoder import BaseVocoder +from TTS.vocoder.utils.generic_utils import plot_results + + +@dataclass +class WavegradArgs(Coqpit): + in_channels: int = 80 + out_channels: int = 1 + use_weight_norm: bool = False + y_conv_channels: int = 32 + x_conv_channels: int = 768 + dblock_out_channels: List[int] = field(default_factory=lambda: [128, 128, 256, 512]) + ublock_out_channels: List[int] = field(default_factory=lambda: [512, 512, 256, 128, 128]) + upsample_factors: List[int] = field(default_factory=lambda: [4, 4, 4, 2, 2]) + upsample_dilations: List[List[int]] = field( + default_factory=lambda: [[1, 2, 1, 2], [1, 2, 1, 2], [1, 2, 4, 8], [1, 2, 4, 8], [1, 2, 4, 8]] + ) + + +class Wavegrad(BaseVocoder): + """๐Ÿธ ๐ŸŒŠ WaveGrad ๐ŸŒŠ model. + Paper - https://arxiv.org/abs/2009.00713 + + Examples: + Initializing the model. + + >>> from TTS.vocoder.configs import WavegradConfig + >>> config = WavegradConfig() + >>> model = Wavegrad(config) + + Paper Abstract: + This paper introduces WaveGrad, a conditional model for waveform generation which estimates gradients of the + data density. The model is built on prior work on score matching and diffusion probabilistic models. It starts + from a Gaussian white noise signal and iteratively refines the signal via a gradient-based sampler conditioned + on the mel-spectrogram. WaveGrad offers a natural way to trade inference speed for sample quality by adjusting + the number of refinement steps, and bridges the gap between non-autoregressive and autoregressive models in + terms of audio quality. We find that it can generate high fidelity audio samples using as few as six iterations. + Experiments reveal WaveGrad to generate high fidelity audio, outperforming adversarial non-autoregressive + baselines and matching a strong likelihood-based autoregressive baseline using fewer sequential operations. + Audio samples are available at this https URL. + """ + + # pylint: disable=dangerous-default-value + def __init__(self, config: Coqpit): + super().__init__(config) + self.config = config + self.use_weight_norm = config.model_params.use_weight_norm + self.hop_len = np.prod(config.model_params.upsample_factors) + self.noise_level = None + self.num_steps = None + self.beta = None + self.alpha = None + self.alpha_hat = None + self.c1 = None + self.c2 = None + self.sigma = None + + # dblocks + self.y_conv = Conv1d(1, config.model_params.y_conv_channels, 5, padding=2) + self.dblocks = nn.ModuleList([]) + ic = config.model_params.y_conv_channels + for oc, df in zip(config.model_params.dblock_out_channels, reversed(config.model_params.upsample_factors)): + self.dblocks.append(DBlock(ic, oc, df)) + ic = oc + + # film + self.film = nn.ModuleList([]) + ic = config.model_params.y_conv_channels + for oc in reversed(config.model_params.ublock_out_channels): + self.film.append(FiLM(ic, oc)) + ic = oc + + # ublocksn + self.ublocks = nn.ModuleList([]) + ic = config.model_params.x_conv_channels + for oc, uf, ud in zip( + config.model_params.ublock_out_channels, + config.model_params.upsample_factors, + config.model_params.upsample_dilations, + ): + self.ublocks.append(UBlock(ic, oc, uf, ud)) + ic = oc + + self.x_conv = Conv1d(config.model_params.in_channels, config.model_params.x_conv_channels, 3, padding=1) + self.out_conv = Conv1d(oc, config.model_params.out_channels, 3, padding=1) + + if config.model_params.use_weight_norm: + self.apply_weight_norm() + + def forward(self, x, spectrogram, noise_scale): + shift_and_scale = [] + + x = self.y_conv(x) + shift_and_scale.append(self.film[0](x, noise_scale)) + + for film, layer in zip(self.film[1:], self.dblocks): + x = layer(x) + shift_and_scale.append(film(x, noise_scale)) + + x = self.x_conv(spectrogram) + for layer, (film_shift, film_scale) in zip(self.ublocks, reversed(shift_and_scale)): + x = layer(x, film_shift, film_scale) + x = self.out_conv(x) + return x + + def load_noise_schedule(self, path): + beta = np.load(path, allow_pickle=True).item()["beta"] # pylint: disable=unexpected-keyword-arg + self.compute_noise_level(beta) + + @torch.no_grad() + def inference(self, x, y_n=None): + """ + Shapes: + x: :math:`[B, C , T]` + y_n: :math:`[B, 1, T]` + """ + if y_n is None: + y_n = torch.randn(x.shape[0], 1, self.hop_len * x.shape[-1]) + else: + y_n = torch.FloatTensor(y_n).unsqueeze(0).unsqueeze(0) + y_n = y_n.type_as(x) + sqrt_alpha_hat = self.noise_level.to(x) + for n in range(len(self.alpha) - 1, -1, -1): + y_n = self.c1[n] * (y_n - self.c2[n] * self.forward(y_n, x, sqrt_alpha_hat[n].repeat(x.shape[0]))) + if n > 0: + z = torch.randn_like(y_n) + y_n += self.sigma[n - 1] * z + y_n.clamp_(-1.0, 1.0) + return y_n + + def compute_y_n(self, y_0): + """Compute noisy audio based on noise schedule""" + self.noise_level = self.noise_level.to(y_0) + if len(y_0.shape) == 3: + y_0 = y_0.squeeze(1) + s = torch.randint(0, self.num_steps - 1, [y_0.shape[0]]) + l_a, l_b = self.noise_level[s], self.noise_level[s + 1] + noise_scale = l_a + torch.rand(y_0.shape[0]).to(y_0) * (l_b - l_a) + noise_scale = noise_scale.unsqueeze(1) + noise = torch.randn_like(y_0) + noisy_audio = noise_scale * y_0 + (1.0 - noise_scale**2) ** 0.5 * noise + return noise.unsqueeze(1), noisy_audio.unsqueeze(1), noise_scale[:, 0] + + def compute_noise_level(self, beta): + """Compute noise schedule parameters""" + self.num_steps = len(beta) + alpha = 1 - beta + alpha_hat = np.cumprod(alpha) + noise_level = np.concatenate([[1.0], alpha_hat**0.5], axis=0) + noise_level = alpha_hat**0.5 + + # pylint: disable=not-callable + self.beta = torch.tensor(beta.astype(np.float32)) + self.alpha = torch.tensor(alpha.astype(np.float32)) + self.alpha_hat = torch.tensor(alpha_hat.astype(np.float32)) + self.noise_level = torch.tensor(noise_level.astype(np.float32)) + + self.c1 = 1 / self.alpha**0.5 + self.c2 = (1 - self.alpha) / (1 - self.alpha_hat) ** 0.5 + self.sigma = ((1.0 - self.alpha_hat[:-1]) / (1.0 - self.alpha_hat[1:]) * self.beta[1:]) ** 0.5 + + def remove_weight_norm(self): + for _, layer in enumerate(self.dblocks): + if len(layer.state_dict()) != 0: + try: + nn.utils.remove_weight_norm(layer) + except ValueError: + layer.remove_weight_norm() + + for _, layer in enumerate(self.film): + if len(layer.state_dict()) != 0: + try: + nn.utils.remove_weight_norm(layer) + except ValueError: + layer.remove_weight_norm() + + for _, layer in enumerate(self.ublocks): + if len(layer.state_dict()) != 0: + try: + nn.utils.remove_weight_norm(layer) + except ValueError: + layer.remove_weight_norm() + + nn.utils.remove_weight_norm(self.x_conv) + nn.utils.remove_weight_norm(self.out_conv) + nn.utils.remove_weight_norm(self.y_conv) + + def apply_weight_norm(self): + for _, layer in enumerate(self.dblocks): + if len(layer.state_dict()) != 0: + layer.apply_weight_norm() + + for _, layer in enumerate(self.film): + if len(layer.state_dict()) != 0: + layer.apply_weight_norm() + + for _, layer in enumerate(self.ublocks): + if len(layer.state_dict()) != 0: + layer.apply_weight_norm() + + self.x_conv = weight_norm(self.x_conv) + self.out_conv = weight_norm(self.out_conv) + self.y_conv = weight_norm(self.y_conv) + + def load_checkpoint( + self, config, checkpoint_path, eval=False + ): # pylint: disable=unused-argument, redefined-builtin + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + self.load_state_dict(state["model"]) + if eval: + self.eval() + assert not self.training + if self.config.model_params.use_weight_norm: + self.remove_weight_norm() + betas = np.linspace( + config["test_noise_schedule"]["min_val"], + config["test_noise_schedule"]["max_val"], + config["test_noise_schedule"]["num_steps"], + ) + self.compute_noise_level(betas) + else: + betas = np.linspace( + config["train_noise_schedule"]["min_val"], + config["train_noise_schedule"]["max_val"], + config["train_noise_schedule"]["num_steps"], + ) + self.compute_noise_level(betas) + + def train_step(self, batch: Dict, criterion: Dict) -> Tuple[Dict, Dict]: + # format data + x = batch["input"] + y = batch["waveform"] + + # set noise scale + noise, x_noisy, noise_scale = self.compute_y_n(y) + + # forward pass + noise_hat = self.forward(x_noisy, x, noise_scale) + + # compute losses + loss = criterion(noise, noise_hat) + return {"model_output": noise_hat}, {"loss": loss} + + def train_log( # pylint: disable=no-self-use + self, batch: Dict, outputs: Dict, logger: "Logger", assets: Dict, steps: int # pylint: disable=unused-argument + ) -> Tuple[Dict, np.ndarray]: + pass + + @torch.no_grad() + def eval_step(self, batch: Dict, criterion: nn.Module) -> Tuple[Dict, Dict]: + return self.train_step(batch, criterion) + + def eval_log( # pylint: disable=no-self-use + self, batch: Dict, outputs: Dict, logger: "Logger", assets: Dict, steps: int # pylint: disable=unused-argument + ) -> None: + pass + + def test(self, assets: Dict, test_loader: "DataLoader", outputs=None): # pylint: disable=unused-argument + # setup noise schedule and inference + ap = assets["audio_processor"] + noise_schedule = self.config["test_noise_schedule"] + betas = np.linspace(noise_schedule["min_val"], noise_schedule["max_val"], noise_schedule["num_steps"]) + self.compute_noise_level(betas) + samples = test_loader.dataset.load_test_samples(1) + for sample in samples: + x = sample[0] + x = x[None, :, :].to(next(self.parameters()).device) + y = sample[1] + y = y[None, :] + # compute voice + y_pred = self.inference(x) + # compute spectrograms + figures = plot_results(y_pred, y, ap, "test") + # Sample audio + sample_voice = y_pred[0].squeeze(0).detach().cpu().numpy() + return figures, {"test/audio": sample_voice} + + def get_optimizer(self): + return get_optimizer(self.config.optimizer, self.config.optimizer_params, self.config.lr, self) + + def get_scheduler(self, optimizer): + return get_scheduler(self.config.lr_scheduler, self.config.lr_scheduler_params, optimizer) + + @staticmethod + def get_criterion(): + return torch.nn.L1Loss() + + @staticmethod + def format_batch(batch: Dict) -> Dict: + # return a whole audio segment + m, y = batch[0], batch[1] + y = y.unsqueeze(1) + return {"input": m, "waveform": y} + + def get_data_loader(self, config: Coqpit, assets: Dict, is_eval: True, samples: List, verbose: bool, num_gpus: int): + ap = assets["audio_processor"] + dataset = WaveGradDataset( + ap=ap, + items=samples, + seq_len=self.config.seq_len, + hop_len=ap.hop_length, + pad_short=self.config.pad_short, + conv_pad=self.config.conv_pad, + is_training=not is_eval, + return_segments=True, + use_noise_augment=False, + use_cache=config.use_cache, + verbose=verbose, + ) + sampler = DistributedSampler(dataset) if num_gpus > 1 else None + loader = DataLoader( + dataset, + batch_size=self.config.batch_size, + shuffle=num_gpus <= 1, + drop_last=False, + sampler=sampler, + num_workers=self.config.num_eval_loader_workers if is_eval else self.config.num_loader_workers, + pin_memory=False, + ) + return loader + + def on_epoch_start(self, trainer): # pylint: disable=unused-argument + noise_schedule = self.config["train_noise_schedule"] + betas = np.linspace(noise_schedule["min_val"], noise_schedule["max_val"], noise_schedule["num_steps"]) + self.compute_noise_level(betas) + + @staticmethod + def init_from_config(config: "WavegradConfig"): + return Wavegrad(config) diff --git a/Indic-TTS/TTS/TTS/vocoder/models/wavernn.py b/Indic-TTS/TTS/TTS/vocoder/models/wavernn.py new file mode 100644 index 0000000000000000000000000000000000000000..6686db45dd32b6f4f3bd54e702787412fc344a6b --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/models/wavernn.py @@ -0,0 +1,638 @@ +import sys +import time +from dataclasses import dataclass, field +from typing import Dict, List, Tuple + +import numpy as np +import torch +import torch.nn.functional as F +from coqpit import Coqpit +from torch import nn +from torch.utils.data import DataLoader +from torch.utils.data.distributed import DistributedSampler + +from TTS.tts.utils.visual import plot_spectrogram +from TTS.utils.audio import AudioProcessor +from TTS.utils.io import load_fsspec +from TTS.vocoder.datasets.wavernn_dataset import WaveRNNDataset +from TTS.vocoder.layers.losses import WaveRNNLoss +from TTS.vocoder.models.base_vocoder import BaseVocoder +from TTS.vocoder.utils.distribution import sample_from_discretized_mix_logistic, sample_from_gaussian + + +def stream(string, variables): + sys.stdout.write(f"\r{string}" % variables) + + +# pylint: disable=abstract-method +# relates https://github.com/pytorch/pytorch/issues/42305 +class ResBlock(nn.Module): + def __init__(self, dims): + super().__init__() + self.conv1 = nn.Conv1d(dims, dims, kernel_size=1, bias=False) + self.conv2 = nn.Conv1d(dims, dims, kernel_size=1, bias=False) + self.batch_norm1 = nn.BatchNorm1d(dims) + self.batch_norm2 = nn.BatchNorm1d(dims) + + def forward(self, x): + residual = x + x = self.conv1(x) + x = self.batch_norm1(x) + x = F.relu(x) + x = self.conv2(x) + x = self.batch_norm2(x) + return x + residual + + +class MelResNet(nn.Module): + def __init__(self, num_res_blocks, in_dims, compute_dims, res_out_dims, pad): + super().__init__() + k_size = pad * 2 + 1 + self.conv_in = nn.Conv1d(in_dims, compute_dims, kernel_size=k_size, bias=False) + self.batch_norm = nn.BatchNorm1d(compute_dims) + self.layers = nn.ModuleList() + for _ in range(num_res_blocks): + self.layers.append(ResBlock(compute_dims)) + self.conv_out = nn.Conv1d(compute_dims, res_out_dims, kernel_size=1) + + def forward(self, x): + x = self.conv_in(x) + x = self.batch_norm(x) + x = F.relu(x) + for f in self.layers: + x = f(x) + x = self.conv_out(x) + return x + + +class Stretch2d(nn.Module): + def __init__(self, x_scale, y_scale): + super().__init__() + self.x_scale = x_scale + self.y_scale = y_scale + + def forward(self, x): + b, c, h, w = x.size() + x = x.unsqueeze(-1).unsqueeze(3) + x = x.repeat(1, 1, 1, self.y_scale, 1, self.x_scale) + return x.view(b, c, h * self.y_scale, w * self.x_scale) + + +class UpsampleNetwork(nn.Module): + def __init__( + self, + feat_dims, + upsample_scales, + compute_dims, + num_res_blocks, + res_out_dims, + pad, + use_aux_net, + ): + super().__init__() + self.total_scale = np.cumproduct(upsample_scales)[-1] + self.indent = pad * self.total_scale + self.use_aux_net = use_aux_net + if use_aux_net: + self.resnet = MelResNet(num_res_blocks, feat_dims, compute_dims, res_out_dims, pad) + self.resnet_stretch = Stretch2d(self.total_scale, 1) + self.up_layers = nn.ModuleList() + for scale in upsample_scales: + k_size = (1, scale * 2 + 1) + padding = (0, scale) + stretch = Stretch2d(scale, 1) + conv = nn.Conv2d(1, 1, kernel_size=k_size, padding=padding, bias=False) + conv.weight.data.fill_(1.0 / k_size[1]) + self.up_layers.append(stretch) + self.up_layers.append(conv) + + def forward(self, m): + if self.use_aux_net: + aux = self.resnet(m).unsqueeze(1) + aux = self.resnet_stretch(aux) + aux = aux.squeeze(1) + aux = aux.transpose(1, 2) + else: + aux = None + m = m.unsqueeze(1) + for f in self.up_layers: + m = f(m) + m = m.squeeze(1)[:, :, self.indent : -self.indent] + return m.transpose(1, 2), aux + + +class Upsample(nn.Module): + def __init__(self, scale, pad, num_res_blocks, feat_dims, compute_dims, res_out_dims, use_aux_net): + super().__init__() + self.scale = scale + self.pad = pad + self.indent = pad * scale + self.use_aux_net = use_aux_net + self.resnet = MelResNet(num_res_blocks, feat_dims, compute_dims, res_out_dims, pad) + + def forward(self, m): + if self.use_aux_net: + aux = self.resnet(m) + aux = torch.nn.functional.interpolate(aux, scale_factor=self.scale, mode="linear", align_corners=True) + aux = aux.transpose(1, 2) + else: + aux = None + m = torch.nn.functional.interpolate(m, scale_factor=self.scale, mode="linear", align_corners=True) + m = m[:, :, self.indent : -self.indent] + m = m * 0.045 # empirically found + + return m.transpose(1, 2), aux + + +@dataclass +class WavernnArgs(Coqpit): + """๐Ÿธ WaveRNN model arguments. + + rnn_dims (int): + Number of hidden channels in RNN layers. Defaults to 512. + fc_dims (int): + Number of hidden channels in fully-conntected layers. Defaults to 512. + compute_dims (int): + Number of hidden channels in the feature ResNet. Defaults to 128. + res_out_dim (int): + Number of hidden channels in the feature ResNet output. Defaults to 128. + num_res_blocks (int): + Number of residual blocks in the ResNet. Defaults to 10. + use_aux_net (bool): + enable/disable the feature ResNet. Defaults to True. + use_upsample_net (bool): + enable/ disable the upsampling networl. If False, basic upsampling is used. Defaults to True. + upsample_factors (list): + Upsampling factors. The multiply of the values must match the `hop_length`. Defaults to ```[4, 8, 8]```. + mode (str): + Output mode of the WaveRNN vocoder. `mold` for Mixture of Logistic Distribution, `gauss` for a single + Gaussian Distribution and `bits` for quantized bits as the model's output. + mulaw (bool): + enable / disable the use of Mulaw quantization for training. Only applicable if `mode == 'bits'`. Defaults + to `True`. + pad (int): + Padding applied to the input feature frames against the convolution layers of the feature network. + Defaults to 2. + """ + + rnn_dims: int = 512 + fc_dims: int = 512 + compute_dims: int = 128 + res_out_dims: int = 128 + num_res_blocks: int = 10 + use_aux_net: bool = True + use_upsample_net: bool = True + upsample_factors: List[int] = field(default_factory=lambda: [4, 8, 8]) + mode: str = "mold" # mold [string], gauss [string], bits [int] + mulaw: bool = True # apply mulaw if mode is bits + pad: int = 2 + feat_dims: int = 80 + + +class Wavernn(BaseVocoder): + def __init__(self, config: Coqpit): + """๐Ÿธ WaveRNN model. + Original paper - https://arxiv.org/abs/1802.08435 + Official implementation - https://github.com/fatchord/WaveRNN + + Args: + config (Coqpit): [description] + + Raises: + RuntimeError: [description] + + Examples: + >>> from TTS.vocoder.configs import WavernnConfig + >>> config = WavernnConfig() + >>> model = Wavernn(config) + + Paper Abstract: + Sequential models achieve state-of-the-art results in audio, visual and textual domains with respect to + both estimating the data distribution and generating high-quality samples. Efficient sampling for this + class of models has however remained an elusive problem. With a focus on text-to-speech synthesis, we + describe a set of general techniques for reducing sampling time while maintaining high output quality. + We first describe a single-layer recurrent neural network, the WaveRNN, with a dual softmax layer that + matches the quality of the state-of-the-art WaveNet model. The compact form of the network makes it + possible to generate 24kHz 16-bit audio 4x faster than real time on a GPU. Second, we apply a weight + pruning technique to reduce the number of weights in the WaveRNN. We find that, for a constant number of + parameters, large sparse networks perform better than small dense networks and this relationship holds for + sparsity levels beyond 96%. The small number of weights in a Sparse WaveRNN makes it possible to sample + high-fidelity audio on a mobile CPU in real time. Finally, we propose a new generation scheme based on + subscaling that folds a long sequence into a batch of shorter sequences and allows one to generate multiple + samples at once. The Subscale WaveRNN produces 16 samples per step without loss of quality and offers an + orthogonal method for increasing sampling efficiency. + """ + super().__init__(config) + + if isinstance(self.args.mode, int): + self.n_classes = 2**self.args.mode + elif self.args.mode == "mold": + self.n_classes = 3 * 10 + elif self.args.mode == "gauss": + self.n_classes = 2 + else: + raise RuntimeError("Unknown model mode value - ", self.args.mode) + + self.aux_dims = self.args.res_out_dims // 4 + + if self.args.use_upsample_net: + assert ( + np.cumproduct(self.args.upsample_factors)[-1] == config.audio.hop_length + ), " [!] upsample scales needs to be equal to hop_length" + self.upsample = UpsampleNetwork( + self.args.feat_dims, + self.args.upsample_factors, + self.args.compute_dims, + self.args.num_res_blocks, + self.args.res_out_dims, + self.args.pad, + self.args.use_aux_net, + ) + else: + self.upsample = Upsample( + config.audio.hop_length, + self.args.pad, + self.args.num_res_blocks, + self.args.feat_dims, + self.args.compute_dims, + self.args.res_out_dims, + self.args.use_aux_net, + ) + if self.args.use_aux_net: + self.I = nn.Linear(self.args.feat_dims + self.aux_dims + 1, self.args.rnn_dims) + self.rnn1 = nn.GRU(self.args.rnn_dims, self.args.rnn_dims, batch_first=True) + self.rnn2 = nn.GRU(self.args.rnn_dims + self.aux_dims, self.args.rnn_dims, batch_first=True) + self.fc1 = nn.Linear(self.args.rnn_dims + self.aux_dims, self.args.fc_dims) + self.fc2 = nn.Linear(self.args.fc_dims + self.aux_dims, self.args.fc_dims) + self.fc3 = nn.Linear(self.args.fc_dims, self.n_classes) + else: + self.I = nn.Linear(self.args.feat_dims + 1, self.args.rnn_dims) + self.rnn1 = nn.GRU(self.args.rnn_dims, self.args.rnn_dims, batch_first=True) + self.rnn2 = nn.GRU(self.args.rnn_dims, self.args.rnn_dims, batch_first=True) + self.fc1 = nn.Linear(self.args.rnn_dims, self.args.fc_dims) + self.fc2 = nn.Linear(self.args.fc_dims, self.args.fc_dims) + self.fc3 = nn.Linear(self.args.fc_dims, self.n_classes) + + def forward(self, x, mels): + bsize = x.size(0) + h1 = torch.zeros(1, bsize, self.args.rnn_dims).to(x.device) + h2 = torch.zeros(1, bsize, self.args.rnn_dims).to(x.device) + mels, aux = self.upsample(mels) + + if self.args.use_aux_net: + aux_idx = [self.aux_dims * i for i in range(5)] + a1 = aux[:, :, aux_idx[0] : aux_idx[1]] + a2 = aux[:, :, aux_idx[1] : aux_idx[2]] + a3 = aux[:, :, aux_idx[2] : aux_idx[3]] + a4 = aux[:, :, aux_idx[3] : aux_idx[4]] + + x = ( + torch.cat([x.unsqueeze(-1), mels, a1], dim=2) + if self.args.use_aux_net + else torch.cat([x.unsqueeze(-1), mels], dim=2) + ) + x = self.I(x) + res = x + self.rnn1.flatten_parameters() + x, _ = self.rnn1(x, h1) + + x = x + res + res = x + x = torch.cat([x, a2], dim=2) if self.args.use_aux_net else x + self.rnn2.flatten_parameters() + x, _ = self.rnn2(x, h2) + + x = x + res + x = torch.cat([x, a3], dim=2) if self.args.use_aux_net else x + x = F.relu(self.fc1(x)) + + x = torch.cat([x, a4], dim=2) if self.args.use_aux_net else x + x = F.relu(self.fc2(x)) + return self.fc3(x) + + def inference(self, mels, batched=None, target=None, overlap=None): + + self.eval() + output = [] + start = time.time() + rnn1 = self.get_gru_cell(self.rnn1) + rnn2 = self.get_gru_cell(self.rnn2) + + with torch.no_grad(): + if isinstance(mels, np.ndarray): + mels = torch.FloatTensor(mels).to(str(next(self.parameters()).device)) + + if mels.ndim == 2: + mels = mels.unsqueeze(0) + wave_len = (mels.size(-1) - 1) * self.config.audio.hop_length + + mels = self.pad_tensor(mels.transpose(1, 2), pad=self.args.pad, side="both") + mels, aux = self.upsample(mels.transpose(1, 2)) + + if batched: + mels = self.fold_with_overlap(mels, target, overlap) + if aux is not None: + aux = self.fold_with_overlap(aux, target, overlap) + + b_size, seq_len, _ = mels.size() + + h1 = torch.zeros(b_size, self.args.rnn_dims).type_as(mels) + h2 = torch.zeros(b_size, self.args.rnn_dims).type_as(mels) + x = torch.zeros(b_size, 1).type_as(mels) + + if self.args.use_aux_net: + d = self.aux_dims + aux_split = [aux[:, :, d * i : d * (i + 1)] for i in range(4)] + + for i in range(seq_len): + + m_t = mels[:, i, :] + + if self.args.use_aux_net: + a1_t, a2_t, a3_t, a4_t = (a[:, i, :] for a in aux_split) + + x = torch.cat([x, m_t, a1_t], dim=1) if self.args.use_aux_net else torch.cat([x, m_t], dim=1) + x = self.I(x) + h1 = rnn1(x, h1) + + x = x + h1 + inp = torch.cat([x, a2_t], dim=1) if self.args.use_aux_net else x + h2 = rnn2(inp, h2) + + x = x + h2 + x = torch.cat([x, a3_t], dim=1) if self.args.use_aux_net else x + x = F.relu(self.fc1(x)) + + x = torch.cat([x, a4_t], dim=1) if self.args.use_aux_net else x + x = F.relu(self.fc2(x)) + + logits = self.fc3(x) + + if self.args.mode == "mold": + sample = sample_from_discretized_mix_logistic(logits.unsqueeze(0).transpose(1, 2)) + output.append(sample.view(-1)) + x = sample.transpose(0, 1).type_as(mels) + elif self.args.mode == "gauss": + sample = sample_from_gaussian(logits.unsqueeze(0).transpose(1, 2)) + output.append(sample.view(-1)) + x = sample.transpose(0, 1).type_as(mels) + elif isinstance(self.args.mode, int): + posterior = F.softmax(logits, dim=1) + distrib = torch.distributions.Categorical(posterior) + + sample = 2 * distrib.sample().float() / (self.n_classes - 1.0) - 1.0 + output.append(sample) + x = sample.unsqueeze(-1) + else: + raise RuntimeError("Unknown model mode value - ", self.args.mode) + + if i % 100 == 0: + self.gen_display(i, seq_len, b_size, start) + + output = torch.stack(output).transpose(0, 1) + output = output.cpu() + if batched: + output = output.numpy() + output = output.astype(np.float64) + + output = self.xfade_and_unfold(output, target, overlap) + else: + output = output[0] + + if self.args.mulaw and isinstance(self.args.mode, int): + output = AudioProcessor.mulaw_decode(output, self.args.mode) + + # Fade-out at the end to avoid signal cutting out suddenly + fade_out = np.linspace(1, 0, 20 * self.config.audio.hop_length) + output = output[:wave_len] + + if wave_len > len(fade_out): + output[-20 * self.config.audio.hop_length :] *= fade_out + + self.train() + return output + + def gen_display(self, i, seq_len, b_size, start): + gen_rate = (i + 1) / (time.time() - start) * b_size / 1000 + realtime_ratio = gen_rate * 1000 / self.config.audio.sample_rate + stream( + "%i/%i -- batch_size: %i -- gen_rate: %.1f kHz -- x_realtime: %.1f ", + (i * b_size, seq_len * b_size, b_size, gen_rate, realtime_ratio), + ) + + def fold_with_overlap(self, x, target, overlap): + """Fold the tensor with overlap for quick batched inference. + Overlap will be used for crossfading in xfade_and_unfold() + Args: + x (tensor) : Upsampled conditioning features. + shape=(1, timesteps, features) + target (int) : Target timesteps for each index of batch + overlap (int) : Timesteps for both xfade and rnn warmup + Return: + (tensor) : shape=(num_folds, target + 2 * overlap, features) + Details: + x = [[h1, h2, ... hn]] + Where each h is a vector of conditioning features + Eg: target=2, overlap=1 with x.size(1)=10 + folded = [[h1, h2, h3, h4], + [h4, h5, h6, h7], + [h7, h8, h9, h10]] + """ + + _, total_len, features = x.size() + + # Calculate variables needed + num_folds = (total_len - overlap) // (target + overlap) + extended_len = num_folds * (overlap + target) + overlap + remaining = total_len - extended_len + + # Pad if some time steps poking out + if remaining != 0: + num_folds += 1 + padding = target + 2 * overlap - remaining + x = self.pad_tensor(x, padding, side="after") + + folded = torch.zeros(num_folds, target + 2 * overlap, features).to(x.device) + + # Get the values for the folded tensor + for i in range(num_folds): + start = i * (target + overlap) + end = start + target + 2 * overlap + folded[i] = x[:, start:end, :] + + return folded + + @staticmethod + def get_gru_cell(gru): + gru_cell = nn.GRUCell(gru.input_size, gru.hidden_size) + gru_cell.weight_hh.data = gru.weight_hh_l0.data + gru_cell.weight_ih.data = gru.weight_ih_l0.data + gru_cell.bias_hh.data = gru.bias_hh_l0.data + gru_cell.bias_ih.data = gru.bias_ih_l0.data + return gru_cell + + @staticmethod + def pad_tensor(x, pad, side="both"): + # NB - this is just a quick method i need right now + # i.e., it won't generalise to other shapes/dims + b, t, c = x.size() + total = t + 2 * pad if side == "both" else t + pad + padded = torch.zeros(b, total, c).to(x.device) + if side in ("before", "both"): + padded[:, pad : pad + t, :] = x + elif side == "after": + padded[:, :t, :] = x + return padded + + @staticmethod + def xfade_and_unfold(y, target, overlap): + """Applies a crossfade and unfolds into a 1d array. + Args: + y (ndarry) : Batched sequences of audio samples + shape=(num_folds, target + 2 * overlap) + dtype=np.float64 + overlap (int) : Timesteps for both xfade and rnn warmup + Return: + (ndarry) : audio samples in a 1d array + shape=(total_len) + dtype=np.float64 + Details: + y = [[seq1], + [seq2], + [seq3]] + Apply a gain envelope at both ends of the sequences + y = [[seq1_in, seq1_target, seq1_out], + [seq2_in, seq2_target, seq2_out], + [seq3_in, seq3_target, seq3_out]] + Stagger and add up the groups of samples: + [seq1_in, seq1_target, (seq1_out + seq2_in), seq2_target, ...] + """ + + num_folds, length = y.shape + target = length - 2 * overlap + total_len = num_folds * (target + overlap) + overlap + + # Need some silence for the rnn warmup + silence_len = overlap // 2 + fade_len = overlap - silence_len + silence = np.zeros((silence_len), dtype=np.float64) + + # Equal power crossfade + t = np.linspace(-1, 1, fade_len, dtype=np.float64) + fade_in = np.sqrt(0.5 * (1 + t)) + fade_out = np.sqrt(0.5 * (1 - t)) + + # Concat the silence to the fades + fade_in = np.concatenate([silence, fade_in]) + fade_out = np.concatenate([fade_out, silence]) + + # Apply the gain to the overlap samples + y[:, :overlap] *= fade_in + y[:, -overlap:] *= fade_out + + unfolded = np.zeros((total_len), dtype=np.float64) + + # Loop to add up all the samples + for i in range(num_folds): + start = i * (target + overlap) + end = start + target + 2 * overlap + unfolded[start:end] += y[i] + + return unfolded + + def load_checkpoint( + self, config, checkpoint_path, eval=False + ): # pylint: disable=unused-argument, redefined-builtin + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + self.load_state_dict(state["model"]) + if eval: + self.eval() + assert not self.training + + def train_step(self, batch: Dict, criterion: Dict) -> Tuple[Dict, Dict]: + mels = batch["input"] + waveform = batch["waveform"] + waveform_coarse = batch["waveform_coarse"] + + y_hat = self.forward(waveform, mels) + if isinstance(self.args.mode, int): + y_hat = y_hat.transpose(1, 2).unsqueeze(-1) + else: + waveform_coarse = waveform_coarse.float() + waveform_coarse = waveform_coarse.unsqueeze(-1) + # compute losses + loss_dict = criterion(y_hat, waveform_coarse) + return {"model_output": y_hat}, loss_dict + + def eval_step(self, batch: Dict, criterion: Dict) -> Tuple[Dict, Dict]: + return self.train_step(batch, criterion) + + @torch.no_grad() + def test( + self, assets: Dict, test_loader: "DataLoader", output: Dict # pylint: disable=unused-argument + ) -> Tuple[Dict, Dict]: + ap = assets["audio_processor"] + figures = {} + audios = {} + samples = test_loader.dataset.load_test_samples(1) + for idx, sample in enumerate(samples): + x = torch.FloatTensor(sample[0]) + x = x.to(next(self.parameters()).device) + y_hat = self.inference(x, self.config.batched, self.config.target_samples, self.config.overlap_samples) + x_hat = ap.melspectrogram(y_hat) + figures.update( + { + f"test_{idx}/ground_truth": plot_spectrogram(x.T), + f"test_{idx}/prediction": plot_spectrogram(x_hat.T), + } + ) + audios.update({f"test_{idx}/audio": y_hat}) + return figures, audios + + @staticmethod + def format_batch(batch: Dict) -> Dict: + waveform = batch[0] + mels = batch[1] + waveform_coarse = batch[2] + return {"input": mels, "waveform": waveform, "waveform_coarse": waveform_coarse} + + def get_data_loader( # pylint: disable=no-self-use + self, + config: Coqpit, + assets: Dict, + is_eval: True, + samples: List, + verbose: bool, + num_gpus: int, + ): + ap = assets["audio_processor"] + dataset = WaveRNNDataset( + ap=ap, + items=samples, + seq_len=config.seq_len, + hop_len=ap.hop_length, + pad=config.model_args.pad, + mode=config.model_args.mode, + mulaw=config.model_args.mulaw, + is_training=not is_eval, + verbose=verbose, + ) + sampler = DistributedSampler(dataset, shuffle=True) if num_gpus > 1 else None + loader = DataLoader( + dataset, + batch_size=1 if is_eval else config.batch_size, + shuffle=num_gpus == 0, + collate_fn=dataset.collate, + sampler=sampler, + num_workers=config.num_eval_loader_workers if is_eval else config.num_loader_workers, + pin_memory=True, + ) + return loader + + def get_criterion(self): + # define train functions + return WaveRNNLoss(self.args.mode) + + @staticmethod + def init_from_config(config: "WavernnConfig"): + return Wavernn(config) diff --git a/Indic-TTS/TTS/TTS/vocoder/pqmf_output.wav b/Indic-TTS/TTS/TTS/vocoder/pqmf_output.wav new file mode 100644 index 0000000000000000000000000000000000000000..8a77747b00198a4adfd6c398998517df5b4bdb8d Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/pqmf_output.wav differ diff --git a/Indic-TTS/TTS/TTS/vocoder/utils/__init__.py b/Indic-TTS/TTS/TTS/vocoder/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/TTS/vocoder/utils/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/utils/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4fab96520b0c70068f14ca6f06f92f7d2f3909c8 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/utils/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/utils/__pycache__/distribution.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/utils/__pycache__/distribution.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..01f42e32778648f647c0529895909cbe95924503 Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/utils/__pycache__/distribution.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/utils/__pycache__/generic_utils.cpython-37.pyc b/Indic-TTS/TTS/TTS/vocoder/utils/__pycache__/generic_utils.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..97f11652c06a3c2d5bb5652095e54e9e76a08aeb Binary files /dev/null and b/Indic-TTS/TTS/TTS/vocoder/utils/__pycache__/generic_utils.cpython-37.pyc differ diff --git a/Indic-TTS/TTS/TTS/vocoder/utils/distribution.py b/Indic-TTS/TTS/TTS/vocoder/utils/distribution.py new file mode 100644 index 0000000000000000000000000000000000000000..fe706ba9ffbc3f8aad75285bca34a910246666b3 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/utils/distribution.py @@ -0,0 +1,154 @@ +import math + +import numpy as np +import torch +import torch.nn.functional as F +from torch.distributions.normal import Normal + + +def gaussian_loss(y_hat, y, log_std_min=-7.0): + assert y_hat.dim() == 3 + assert y_hat.size(2) == 2 + mean = y_hat[:, :, :1] + log_std = torch.clamp(y_hat[:, :, 1:], min=log_std_min) + # TODO: replace with pytorch dist + log_probs = -0.5 * (-math.log(2.0 * math.pi) - 2.0 * log_std - torch.pow(y - mean, 2) * torch.exp((-2.0 * log_std))) + return log_probs.squeeze().mean() + + +def sample_from_gaussian(y_hat, log_std_min=-7.0, scale_factor=1.0): + assert y_hat.size(2) == 2 + mean = y_hat[:, :, :1] + log_std = torch.clamp(y_hat[:, :, 1:], min=log_std_min) + dist = Normal( + mean, + torch.exp(log_std), + ) + sample = dist.sample() + sample = torch.clamp(torch.clamp(sample, min=-scale_factor), max=scale_factor) + del dist + return sample + + +def log_sum_exp(x): + """numerically stable log_sum_exp implementation that prevents overflow""" + # TF ordering + axis = len(x.size()) - 1 + m, _ = torch.max(x, dim=axis) + m2, _ = torch.max(x, dim=axis, keepdim=True) + return m + torch.log(torch.sum(torch.exp(x - m2), dim=axis)) + + +# It is adapted from https://github.com/r9y9/wavenet_vocoder/blob/master/wavenet_vocoder/mixture.py +def discretized_mix_logistic_loss(y_hat, y, num_classes=65536, log_scale_min=None, reduce=True): + if log_scale_min is None: + log_scale_min = float(np.log(1e-14)) + y_hat = y_hat.permute(0, 2, 1) + assert y_hat.dim() == 3 + assert y_hat.size(1) % 3 == 0 + nr_mix = y_hat.size(1) // 3 + + # (B x T x C) + y_hat = y_hat.transpose(1, 2) + + # unpack parameters. (B, T, num_mixtures) x 3 + logit_probs = y_hat[:, :, :nr_mix] + means = y_hat[:, :, nr_mix : 2 * nr_mix] + log_scales = torch.clamp(y_hat[:, :, 2 * nr_mix : 3 * nr_mix], min=log_scale_min) + + # B x T x 1 -> B x T x num_mixtures + y = y.expand_as(means) + + centered_y = y - means + inv_stdv = torch.exp(-log_scales) + plus_in = inv_stdv * (centered_y + 1.0 / (num_classes - 1)) + cdf_plus = torch.sigmoid(plus_in) + min_in = inv_stdv * (centered_y - 1.0 / (num_classes - 1)) + cdf_min = torch.sigmoid(min_in) + + # log probability for edge case of 0 (before scaling) + # equivalent: torch.log(F.sigmoid(plus_in)) + log_cdf_plus = plus_in - F.softplus(plus_in) + + # log probability for edge case of 255 (before scaling) + # equivalent: (1 - F.sigmoid(min_in)).log() + log_one_minus_cdf_min = -F.softplus(min_in) + + # probability for all other cases + cdf_delta = cdf_plus - cdf_min + + mid_in = inv_stdv * centered_y + # log probability in the center of the bin, to be used in extreme cases + # (not actually used in our code) + log_pdf_mid = mid_in - log_scales - 2.0 * F.softplus(mid_in) + + # tf equivalent + + # log_probs = tf.where(x < -0.999, log_cdf_plus, + # tf.where(x > 0.999, log_one_minus_cdf_min, + # tf.where(cdf_delta > 1e-5, + # tf.log(tf.maximum(cdf_delta, 1e-12)), + # log_pdf_mid - np.log(127.5)))) + + # TODO: cdf_delta <= 1e-5 actually can happen. How can we choose the value + # for num_classes=65536 case? 1e-7? not sure.. + inner_inner_cond = (cdf_delta > 1e-5).float() + + inner_inner_out = inner_inner_cond * torch.log(torch.clamp(cdf_delta, min=1e-12)) + (1.0 - inner_inner_cond) * ( + log_pdf_mid - np.log((num_classes - 1) / 2) + ) + inner_cond = (y > 0.999).float() + inner_out = inner_cond * log_one_minus_cdf_min + (1.0 - inner_cond) * inner_inner_out + cond = (y < -0.999).float() + log_probs = cond * log_cdf_plus + (1.0 - cond) * inner_out + + log_probs = log_probs + F.log_softmax(logit_probs, -1) + + if reduce: + return -torch.mean(log_sum_exp(log_probs)) + return -log_sum_exp(log_probs).unsqueeze(-1) + + +def sample_from_discretized_mix_logistic(y, log_scale_min=None): + """ + Sample from discretized mixture of logistic distributions + Args: + y (Tensor): :math:`[B, C, T]` + log_scale_min (float): Log scale minimum value + Returns: + Tensor: sample in range of [-1, 1]. + """ + if log_scale_min is None: + log_scale_min = float(np.log(1e-14)) + assert y.size(1) % 3 == 0 + nr_mix = y.size(1) // 3 + + # B x T x C + y = y.transpose(1, 2) + logit_probs = y[:, :, :nr_mix] + + # sample mixture indicator from softmax + temp = logit_probs.data.new(logit_probs.size()).uniform_(1e-5, 1.0 - 1e-5) + temp = logit_probs.data - torch.log(-torch.log(temp)) + _, argmax = temp.max(dim=-1) + + # (B, T) -> (B, T, nr_mix) + one_hot = to_one_hot(argmax, nr_mix) + # select logistic parameters + means = torch.sum(y[:, :, nr_mix : 2 * nr_mix] * one_hot, dim=-1) + log_scales = torch.clamp(torch.sum(y[:, :, 2 * nr_mix : 3 * nr_mix] * one_hot, dim=-1), min=log_scale_min) + # sample from logistic & clip to interval + # we don't actually round to the nearest 8bit value when sampling + u = means.data.new(means.size()).uniform_(1e-5, 1.0 - 1e-5) + x = means + torch.exp(log_scales) * (torch.log(u) - torch.log(1.0 - u)) + + x = torch.clamp(torch.clamp(x, min=-1.0), max=1.0) + + return x + + +def to_one_hot(tensor, n, fill_with=1.0): + # we perform one hot encore with respect to the last axis + one_hot = torch.FloatTensor(tensor.size() + (n,)).zero_().type_as(tensor) + one_hot.scatter_(len(tensor.size()), tensor.unsqueeze(-1), fill_with) + return one_hot diff --git a/Indic-TTS/TTS/TTS/vocoder/utils/generic_utils.py b/Indic-TTS/TTS/TTS/vocoder/utils/generic_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..63a0af4445b5684e928b83d2f4fdfaf7e8f5b9a2 --- /dev/null +++ b/Indic-TTS/TTS/TTS/vocoder/utils/generic_utils.py @@ -0,0 +1,72 @@ +from typing import Dict + +import numpy as np +import torch +from matplotlib import pyplot as plt + +from TTS.tts.utils.visual import plot_spectrogram +from TTS.utils.audio import AudioProcessor + + +def interpolate_vocoder_input(scale_factor, spec): + """Interpolate spectrogram by the scale factor. + It is mainly used to match the sampling rates of + the tts and vocoder models. + + Args: + scale_factor (float): scale factor to interpolate the spectrogram + spec (np.array): spectrogram to be interpolated + + Returns: + torch.tensor: interpolated spectrogram. + """ + print(" > before interpolation :", spec.shape) + spec = torch.tensor(spec).unsqueeze(0).unsqueeze(0) # pylint: disable=not-callable + spec = torch.nn.functional.interpolate( + spec, scale_factor=scale_factor, recompute_scale_factor=True, mode="bilinear", align_corners=False + ).squeeze(0) + print(" > after interpolation :", spec.shape) + return spec + + +def plot_results(y_hat: torch.tensor, y: torch.tensor, ap: AudioProcessor, name_prefix: str = None) -> Dict: + """Plot the predicted and the real waveform and their spectrograms. + + Args: + y_hat (torch.tensor): Predicted waveform. + y (torch.tensor): Real waveform. + ap (AudioProcessor): Audio processor used to process the waveform. + name_prefix (str, optional): Name prefix used to name the figures. Defaults to None. + + Returns: + Dict: output figures keyed by the name of the figures. + """ """Plot vocoder model results""" + if name_prefix is None: + name_prefix = "" + + # select an instance from batch + y_hat = y_hat[0].squeeze().detach().cpu().numpy() + y = y[0].squeeze().detach().cpu().numpy() + + spec_fake = ap.melspectrogram(y_hat).T + spec_real = ap.melspectrogram(y).T + spec_diff = np.abs(spec_fake - spec_real) + + # plot figure and save it + fig_wave = plt.figure() + plt.subplot(2, 1, 1) + plt.plot(y) + plt.title("groundtruth speech") + plt.subplot(2, 1, 2) + plt.plot(y_hat) + plt.title("generated speech") + plt.tight_layout() + plt.close() + + figures = { + name_prefix + "spectrogram/fake": plot_spectrogram(spec_fake), + name_prefix + "spectrogram/real": plot_spectrogram(spec_real), + name_prefix + "spectrogram/diff": plot_spectrogram(spec_diff), + name_prefix + "speech_comparison": fig_wave, + } + return figures diff --git a/Indic-TTS/TTS/docs/Makefile b/Indic-TTS/TTS/docs/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..b1d20a99ed037c92d31a927f2bb01fb801b59bf2 --- /dev/null +++ b/Indic-TTS/TTS/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= -j auto -WT --keep-going +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/Indic-TTS/TTS/docs/README.md b/Indic-TTS/TTS/docs/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/docs/requirements.txt b/Indic-TTS/TTS/docs/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..d6e655350aad84a966fa85160924e741a28b1ea4 --- /dev/null +++ b/Indic-TTS/TTS/docs/requirements.txt @@ -0,0 +1,6 @@ +furo +myst-parser == 0.15.1 +sphinx == 4.0.2 +sphinx_inline_tabs +sphinx_copybutton +linkify-it-py \ No newline at end of file diff --git a/Indic-TTS/TTS/docs/source/_static/logo.png b/Indic-TTS/TTS/docs/source/_static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6a1185c0966f9731a0e0f1878cc95a757d97107a Binary files /dev/null and b/Indic-TTS/TTS/docs/source/_static/logo.png differ diff --git a/Indic-TTS/TTS/docs/source/_templates/page.html b/Indic-TTS/TTS/docs/source/_templates/page.html new file mode 100644 index 0000000000000000000000000000000000000000..2c6ef4ee96adf558b11d6ad170b97fede5a0468b --- /dev/null +++ b/Indic-TTS/TTS/docs/source/_templates/page.html @@ -0,0 +1,23 @@ +{% extends "!page.html" %} +{% block scripts %} + {{ super() }} + + + + + + + +{% endblock %} diff --git a/Indic-TTS/TTS/docs/source/conf.py b/Indic-TTS/TTS/docs/source/conf.py new file mode 100644 index 0000000000000000000000000000000000000000..a9fa6133eb75ccc1947a43240b5af685a11c1389 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/conf.py @@ -0,0 +1,120 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys + +sys.path.insert(0, os.path.abspath('../..')) + +# mock deps with system level requirements. +autodoc_mock_imports = ["soundfile"] + +# -- Project information ----------------------------------------------------- +project = 'TTS' +copyright = "2021 Coqui GmbH, 2020 TTS authors" +author = 'Coqui GmbH' + +with open("../../TTS/VERSION", "r") as ver: + version = ver.read().strip() + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +release = version + +# The main toctree document. +master_doc = "index" + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', + 'sphinx.ext.todo', + 'sphinx.ext.coverage', + 'sphinx.ext.napoleon', + 'sphinx.ext.viewcode', + 'sphinx.ext.autosectionlabel', + 'myst_parser', + "sphinx_copybutton", + "sphinx_inline_tabs", +] + + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'TODO/*'] + +source_suffix = [".rst", ".md"] + +myst_enable_extensions = ['linkify',] + +# 'sphinxcontrib.katex', +# 'sphinx.ext.autosectionlabel', + + +# autosectionlabel throws warnings if section names are duplicated. +# The following tells autosectionlabel to not throw a warning for +# duplicated section names that are in different documents. +autosectionlabel_prefix_document = True + +language = None + +autodoc_inherit_docstrings = False + +# Disable displaying type annotations, these can be very verbose +autodoc_typehints = 'none' + +# Enable overriding of function signatures in the first line of the docstring. +autodoc_docstring_signature = True + +napoleon_custom_sections = [('Shapes', 'shape')] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'furo' +html_tite = "TTS" +html_theme_options = { + "light_logo": "logo.png", + "dark_logo": "logo.png", + "sidebar_hide_name": True, +} + +html_sidebars = { + '**': [ + "sidebar/scroll-start.html", + "sidebar/brand.html", + "sidebar/search.html", + "sidebar/navigation.html", + "sidebar/ethical-ads.html", + "sidebar/scroll-end.html", + ] + } + + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] diff --git a/Indic-TTS/TTS/docs/source/configuration.md b/Indic-TTS/TTS/docs/source/configuration.md new file mode 100644 index 0000000000000000000000000000000000000000..cde7e073e9ec515ae32b00951a3e4e6952c969e0 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/configuration.md @@ -0,0 +1,59 @@ +# Configuration + +We use ๐Ÿ‘ฉโ€โœˆ๏ธ[Coqpit] for configuration management. It provides basic static type checking and serialization capabilities on top of native Python `dataclasses`. Here is how a simple configuration looks like with Coqpit. + +```python +from dataclasses import asdict, dataclass, field +from typing import List, Union +from coqpit.coqpit import MISSING, Coqpit, check_argument + + +@dataclass +class SimpleConfig(Coqpit): + val_a: int = 10 + val_b: int = None + val_d: float = 10.21 + val_c: str = "Coqpit is great!" + vol_e: bool = True + # mandatory field + # raise an error when accessing the value if it is not changed. It is a way to define + val_k: int = MISSING + # optional field + val_dict: dict = field(default_factory=lambda: {"val_aa": 10, "val_ss": "This is in a dict."}) + # list of list + val_listoflist: List[List] = field(default_factory=lambda: [[1, 2], [3, 4]]) + val_listofunion: List[List[Union[str, int, bool]]] = field( + default_factory=lambda: [[1, 3], [1, "Hi!"], [True, False]] + ) + + def check_values( + self, + ): # you can define explicit constraints manually or by`check_argument()` + """Check config fields""" + c = asdict(self) # avoid unexpected changes on `self` + check_argument("val_a", c, restricted=True, min_val=10, max_val=2056) + check_argument("val_b", c, restricted=True, min_val=128, max_val=4058, allow_none=True) + check_argument("val_c", c, restricted=True) +``` + +In TTS, each model must have a configuration class that exposes all the values necessary for its lifetime. + +It defines model architecture, hyper-parameters, training, and inference settings. For our models, we merge all the fields in a single configuration class for ease. It may not look like a wise practice but enables easier bookkeeping and reproducible experiments. + +The general configuration hierarchy looks like below: + +``` +ModelConfig() + | + | -> ... # model specific configurations + | -> ModelArgs() # model class arguments + | -> BaseDatasetConfig() # only for tts models + | -> BaseXModelConfig() # Generic fields for `tts` and `vocoder` models. + | + | -> BaseTrainingConfig() # trainer fields + | -> BaseAudioConfig() # audio processing fields +``` + +In the example above, ```ModelConfig()``` is the final configuration that the model receives and it has all the fields necessary for the model. + +We host pre-defined model configurations under ```TTS//configs/```.Although we recommend a unified config class, you can decompose it as you like as for your custom models as long as all the fields for the trainer, model, and inference APIs are provided. \ No newline at end of file diff --git a/Indic-TTS/TTS/docs/source/contributing.md b/Indic-TTS/TTS/docs/source/contributing.md new file mode 100644 index 0000000000000000000000000000000000000000..5b2725094f72319db74c010ca7f7e194c94d5e0d --- /dev/null +++ b/Indic-TTS/TTS/docs/source/contributing.md @@ -0,0 +1,3 @@ +```{include} ../../CONTRIBUTING.md +:relative-images: +``` diff --git a/Indic-TTS/TTS/docs/source/faq.md b/Indic-TTS/TTS/docs/source/faq.md new file mode 100644 index 0000000000000000000000000000000000000000..2157082cf166f8be0ab5a47e491c7d8aa87cd336 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/faq.md @@ -0,0 +1,113 @@ +# Humble FAQ +We tried to collect common issues and questions we receive about ๐ŸธTTS. It is worth checking before going deeper. + +## Errors with a pre-trained model. How can I resolve this? +- Make sure you use the right commit version of ๐ŸธTTS. Each pre-trained model has its corresponding version that needs to be used. It is defined on the model table. +- If it is still problematic, post your problem on [Discussions](https://github.com/coqui-ai/TTS/discussions). Please give as many details as possible (error message, your TTS version, your TTS model and config.json etc.) +- If you feel like it's a bug to be fixed, then prefer Github issues with the same level of scrutiny. + +## What are the requirements of a good ๐ŸธTTS dataset? +* {ref}`See this page ` + +## How should I choose the right model? +- First, train Tacotron. It is smaller and faster to experiment with. If it performs poorly, try Tacotron2. +- Tacotron models produce the most natural voice if your dataset is not too noisy. +- If both models do not perform well and especially the attention does not align, then try AlignTTS or GlowTTS. +- If you need faster models, consider SpeedySpeech, GlowTTS or AlignTTS. Keep in mind that SpeedySpeech requires a pre-trained Tacotron or Tacotron2 model to compute text-to-speech alignments. + +## How can I train my own `tts` model? +0. Check your dataset with notebooks in [dataset_analysis](https://github.com/coqui-ai/TTS/tree/master/notebooks/dataset_analysis) folder. Use [this notebook](https://github.com/coqui-ai/TTS/blob/master/notebooks/dataset_analysis/CheckSpectrograms.ipynb) to find the right audio processing parameters. A better set of parameters results in a better audio synthesis. + +1. Write your own dataset `formatter` in `datasets/formatters.py` or format your dataset as one of the supported datasets, like LJSpeech. + A `formatter` parses the metadata file and converts a list of training samples. + +2. If you have a dataset with a different alphabet than English, you need to set your own character list in the ```config.json```. + - If you use phonemes for training and your language is supported [here](https://github.com/rhasspy/gruut#supported-languages), you don't need to set your character list. + - You can use `TTS/bin/find_unique_chars.py` to get characters used in your dataset. + +3. Write your own text cleaner in ```utils.text.cleaners```. It is not always necessary, except when you have a different alphabet or language-specific requirements. + - A `cleaner` performs number and abbreviation expansion and text normalization. Basically, it converts the written text to its spoken format. + - If you go lazy, you can try using ```basic_cleaners```. + +4. Fill in a ```config.json```. Go over each parameter one by one and consider it regarding the appended explanation. + - Check the `Coqpit` class created for your target model. Coqpit classes for `tts` models are under `TTS/tts/configs/`. + - You just need to define fields you need/want to change in your `config.json`. For the rest, their default values are used. + - 'sample_rate', 'phoneme_language' (if phoneme enabled), 'output_path', 'datasets', 'text_cleaner' are the fields you need to edit in most of the cases. + - Here is a sample `config.json` for training a `GlowTTS` network. + ```json + { + "model": "glow_tts", + "batch_size": 32, + "eval_batch_size": 16, + "num_loader_workers": 4, + "num_eval_loader_workers": 4, + "run_eval": true, + "test_delay_epochs": -1, + "epochs": 1000, + "text_cleaner": "english_cleaners", + "use_phonemes": false, + "phoneme_language": "en-us", + "phoneme_cache_path": "phoneme_cache", + "print_step": 25, + "print_eval": true, + "mixed_precision": false, + "output_path": "recipes/ljspeech/glow_tts/", + "test_sentences": ["Test this sentence.", "This test sentence.", "Sentence this test."], + "datasets":[{"name": "ljspeech", "meta_file_train":"metadata.csv", "path": "recipes/ljspeech/LJSpeech-1.1/"}] + } + ``` + +6. Train your model. + - SingleGPU training: ```CUDA_VISIBLE_DEVICES="0" python train_tts.py --config_path config.json``` + - MultiGPU training: ```python3 -m trainer.distribute --gpus "0,1" --script TTS/bin/train_tts.py --config_path config.json``` + +**Note:** You can also train your model using pure ๐Ÿ python. Check ```{eval-rst} :ref: 'tutorial_for_nervous_beginners'```. + +## How can I train in a different language? +- Check steps 2, 3, 4, 5 above. + +## How can I train multi-GPUs? +- Check step 5 above. + +## How can I check model performance? +- You can inspect model training and performance using ```tensorboard```. It will show you loss, attention alignment, model output. Go with the order below to measure the model performance. +1. Check ground truth spectrograms. If they do not look as they are supposed to, then check audio processing parameters in ```config.json```. +2. Check train and eval losses and make sure that they all decrease smoothly in time. +3. Check model spectrograms. Especially, training outputs should look similar to ground truth spectrograms after ~10K iterations. +4. Your model would not work well at test time until the attention has a near diagonal alignment. This is the sublime art of TTS training. + - Attention should converge diagonally after ~50K iterations. + - If attention does not converge, the probabilities are; + - Your dataset is too noisy or small. + - Samples are too long. + - Batch size is too small (batch_size < 32 would be having a hard time converging) + - You can also try other attention algorithms like 'graves', 'bidirectional_decoder', 'forward_attn'. + - 'bidirectional_decoder' is your ultimate savior, but it trains 2x slower and demands 1.5x more GPU memory. + - You can also try the other models like AlignTTS or GlowTTS. + +## How do I know when to stop training? +There is no single objective metric to decide the end of a training since the voice quality is a subjective matter. + +In our model trainings, we follow these steps; + +- Check test time audio outputs, if it does not improve more. +- Check test time attention maps, if they look clear and diagonal. +- Check validation loss, if it converged and smoothly went down or started to overfit going up. +- If the answer is YES for all of the above, then test the model with a set of complex sentences. For English, you can use the `TestAttention` notebook. + +Keep in mind that the approach above only validates the model robustness. It is hard to estimate the voice quality without asking the actual people. +The best approach is to pick a set of promising models and run a Mean-Opinion-Score study asking actual people to score the models. + +## My model does not learn. How can I debug? +- Go over the steps under "How can I check model performance?" + +## Attention does not align. How can I make it work? +- Check the 4th step under "How can I check model performance?" + +## How can I test a trained model? +- The best way is to use `tts` or `tts-server` commands. For details check {ref}`here `. +- If you need to code your own ```TTS.utils.synthesizer.Synthesizer``` class. + +## My Tacotron model does not stop - I see "Decoder stopped with 'max_decoder_steps" - Stopnet does not work. +- In general, all of the above relates to the `stopnet`. It is the part of the model telling the `decoder` when to stop. +- In general, a poor `stopnet` relates to something else that is broken in your model or dataset. Especially the attention module. +- One common reason is the silent parts in the audio clips at the beginning and the ending. Check ```trim_db``` value in the config. You can find a better value for your dataset by using ```CheckSpectrogram``` notebook. If this value is too small, too much of the audio will be trimmed. If too big, then too much silence will remain. Both will curtail the `stopnet` performance. diff --git a/Indic-TTS/TTS/docs/source/finetuning.md b/Indic-TTS/TTS/docs/source/finetuning.md new file mode 100644 index 0000000000000000000000000000000000000000..fd97daa51ef428ab3837cc3b0f0d4e088c47e834 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/finetuning.md @@ -0,0 +1,114 @@ +# Fine-tuning a ๐Ÿธ TTS model + +## Fine-tuning + +Fine-tuning takes a pre-trained model, and retrains it to improve the model performance on a different task or dataset. +In ๐ŸธTTS we provide different pre-trained models in different languages and different pros and cons. You can take one of +them and fine-tune it for your own dataset. This will help you in two main ways: + +1. Faster learning + + Since a pre-trained model has already learned features that are relevant for the task, it will converge faster on + a new dataset. This will reduce the cost of training and let you experiment faster. + +2. Better resutls with small datasets + + Deep learning models are data hungry and they give better performance with more data. However, it is not always + possible to have this abundance, especially in specific domains. For instance, the LJSpeech dataset, that we released most of + our English models with, is almost 24 hours long. It takes weeks to record this amount of data with + the help of a voice actor. + + Fine-tuning comes to the rescue in this case. You can take one of our pre-trained models and fine-tune it on your own + speech dataset and achive reasonable results with only a couple of hours of data. + + However, note that, fine-tuning does not ensure great results. The model performance is still depends on the + {ref}`dataset quality ` and the hyper-parameters you choose for fine-tuning. Therefore, + it still takes a bit of tinkering. + + +## Steps to fine-tune a ๐Ÿธ TTS model + +1. Setup your dataset. + + You need to format your target dataset in a certain way so that ๐ŸธTTS data loader will be able to load it for the + training. Please see {ref}`this page ` for more information about formatting. + +2. Choose the model you want to fine-tune. + + You can list the availabe models in the command line with + + ```bash + tts --list_models + ``` + + The command above lists the the models in a naming format as ```///```. + + Or you can manually check the `.model.json` file in the project directory. + + You should choose the model based on your requirements. Some models are fast and some are better in speech quality. + One lazy way to test a model is running the model on the hardware you want to use and see how it works. For + simple testing, you can use the `tts` command on the terminal. For more info see {ref}`here `. + +3. Download the model. + + You can download the model by using the `tts` command. If you run `tts` with a particular model, it will download it automatically + and the model path will be printed on the terminal. + + ```bash + tts --model_name tts_models/es/mai/tacotron2-DDC --text "Ola." + + > Downloading model to /home/ubuntu/.local/share/tts/tts_models--en--ljspeech--glow-tts + ... + ``` + + In the example above, we called the Spanish Tacotron model and give the sample output showing use the path where + the model is downloaded. + +4. Setup the model config for fine-tuning. + + You need to change certain fields in the model config. You have 3 options for playing with the configuration. + + 1. Edit the fields in the ```config.json``` file if you want to use ```TTS/bin/train_tts.py``` to train the model. + 2. Edit the fields in one of the training scripts in the ```recipes``` directory if you want to use python. + 3. Use the command-line arguments to override the fields like ```--coqpit.lr 0.00001``` to change the learning rate. + + Some of the important fields are as follows: + + - `datasets` field: This is set to the dataset you want to fine-tune the model on. + - `run_name` field: This is the name of the run. This is used to name the output directory and the entry in the + logging dashboard. + - `output_path` field: This is the path where the fine-tuned model is saved. + - `lr` field: You may need to use a smaller learning rate for fine-tuning to not lose the features learned by the + pre-trained model with big update steps. + - `audio` fields: Different datasets have different audio characteristics. You must check the current audio parameters and + make sure that the values reflect your dataset. For instance, your dataset might have a different audio sampling rate. + + Apart from the parameters above, you should check the whole configuration file and make sure that the values are correct for + your dataset and training. + +5. Start fine-tuning. + + Whether you use one of the training scripts under ```recipes``` folder or the ```train_tts.py``` to start + your training, you should use the ```--restore_path``` flag to specify the path to the pre-trained model. + + ```bash + CUDA_VISIBLE_DEVICES="0" python recipes/ljspeech/glow_tts/train_glowtts.py \ + --restore_path /home/ubuntu/.local/share/tts/tts_models--en--ljspeech--glow-tts/model_file.pth + ``` + + ```bash + CUDA_VISIBLE_DEVICES="0" python TTS/bin/train_tts.py \ + --config_path /home/ubuntu/.local/share/tts/tts_models--en--ljspeech--glow-tts/config.json \ + --restore_path /home/ubuntu/.local/share/tts/tts_models--en--ljspeech--glow-tts/model_file.pth + ``` + + As stated above, you can also use command-line arguments to change the model configuration. + + + ```bash + CUDA_VISIBLE_DEVICES="0" python recipes/ljspeech/glow_tts/train_glowtts.py \ + --restore_path /home/ubuntu/.local/share/tts/tts_models--en--ljspeech--glow-tts/model_file.pth + --coqpit.run_name "glow-tts-finetune" \ + --coqpit.lr 0.00001 + ``` + diff --git a/Indic-TTS/TTS/docs/source/formatting_your_dataset.md b/Indic-TTS/TTS/docs/source/formatting_your_dataset.md new file mode 100644 index 0000000000000000000000000000000000000000..294d2b2944475db5ac92f384a2cff94be28d2b6d --- /dev/null +++ b/Indic-TTS/TTS/docs/source/formatting_your_dataset.md @@ -0,0 +1,128 @@ +(formatting_your_dataset)= +# Formatting Your Dataset + +For training a TTS model, you need a dataset with speech recordings and transcriptions. The speech must be divided into audio clips and each clip needs transcription. + +If you have a single audio file and you need to split it into clips, there are different open-source tools for you. We recommend Audacity. It is an open-source and free audio editing software. + +It is also important to use a lossless audio file format to prevent compression artifacts. We recommend using `wav` file format. + +Let's assume you created the audio clips and their transcription. You can collect all your clips under a folder. Let's call this folder `wavs`. + +``` +/wavs + | - audio1.wav + | - audio2.wav + | - audio3.wav + ... +``` + +You can either create separate transcription files for each clip or create a text file that maps each audio clip to its transcription. In this file, each line must be delimitered by a special character separating the audio file name from the transcription. And make sure that the delimiter is not used in the transcription text. + +We recommend the following format delimited by `|`. In the following example, `audio1`, `audio2` refer to files `audio1.wav`, `audio2.wav` etc. + +``` +# metadata.txt + +audio1|This is my sentence. +audio2|This is maybe my sentence. +audio3|This is certainly my sentence. +audio4|Let this be your sentence. +... +``` + +In the end, we have the following folder structure +``` +/MyTTSDataset + | + | -> metadata.txt + | -> /wavs + | -> audio1.wav + | -> audio2.wav + | ... +``` + +The format above is taken from widely-used the [LJSpeech](https://keithito.com/LJ-Speech-Dataset/) dataset. You can also download and see the dataset. ๐ŸธTTS already provides tooling for the LJSpeech. if you use the same format, you can start training your models right away. + +## Dataset Quality + +Your dataset should have good coverage of the target language. It should cover the phonemic variety, exceptional sounds and syllables. This is extremely important for especially non-phonemic languages like English. + +For more info about dataset qualities and properties check our [post](https://github.com/coqui-ai/TTS/wiki/What-makes-a-good-TTS-dataset). + +## Using Your Dataset in ๐ŸธTTS + +After you collect and format your dataset, you need to check two things. Whether you need a `formatter` and a `text_cleaner`. The `formatter` loads the text file (created above) as a list and the `text_cleaner` performs a sequence of text normalization operations that converts the raw text into the spoken representation (e.g. converting numbers to text, acronyms, and symbols to the spoken format). + +If you use a different dataset format then the LJSpeech or the other public datasets that ๐ŸธTTS supports, then you need to write your own `formatter`. + +If your dataset is in a new language or it needs special normalization steps, then you need a new `text_cleaner`. + +What you get out of a `formatter` is a `List[Dict]` in the following format. + +``` +>>> formatter(metafile_path) +[ + {"audio_file":"audio1.wav", "text":"This is my sentence.", "speaker_name":"MyDataset", "language": "lang_code"}, + {"audio_file":"audio1.wav", "text":"This is maybe a sentence.", "speaker_name":"MyDataset", "language": "lang_code"}, + ... +] +``` + +Each sub-list is parsed as ```{"", "", "]```. +`````` is the dataset name for single speaker datasets and it is mainly used +in the multi-speaker models to map the speaker of the each sample. But for now, we only focus on single speaker datasets. + +The purpose of a `formatter` is to parse your manifest file and load the audio file paths and transcriptions. +Then, the output is passed to the `Dataset`. It computes features from the audio signals, calls text normalization routines, and converts raw text to +phonemes if needed. + +## Loading your dataset + +Load one of the dataset supported by ๐ŸธTTS. + +```python +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.datasets import load_tts_samples + + +# dataset config for one of the pre-defined datasets +dataset_config = BaseDatasetConfig( + name="vctk", meta_file_train="", language="en-us", path="dataset-path") +) + +# load training samples +train_samples, eval_samples = load_tts_samples(dataset_config, eval_split=True) +``` + +Load a custom dataset with a custom formatter. + +```python +from TTS.tts.datasets import load_tts_samples + + +# custom formatter implementation +def formatter(root_path, manifest_file, **kwargs): # pylint: disable=unused-argument + """Assumes each line as ```|``` + """ + txt_file = os.path.join(root_path, manifest_file) + items = [] + speaker_name = "my_speaker" + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("|") + wav_file = os.path.join(root_path, "wavs", cols[0]) + text = cols[1] + items.append({"text":text, "audio_file":wav_file, "speaker_name":speaker_name}) + return items + +# load training samples +train_samples, eval_samples = load_tts_samples(dataset_config, eval_split=True, formatter=formatter) +``` + +See `TTS.tts.datasets.TTSDataset`, a generic `Dataset` implementation for the `tts` models. + +See `TTS.vocoder.datasets.*`, for different `Dataset` implementations for the `vocoder` models. + +See `TTS.utils.audio.AudioProcessor` that includes all the audio processing and feature extraction functions used in a +`Dataset` implementation. Feel free to add things as you need.passed diff --git a/Indic-TTS/TTS/docs/source/implementing_a_new_model.md b/Indic-TTS/TTS/docs/source/implementing_a_new_model.md new file mode 100644 index 0000000000000000000000000000000000000000..176c4865c1c3b229adff41b9d9e738f9201803c3 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/implementing_a_new_model.md @@ -0,0 +1,208 @@ +# Implementing a Model + +1. Implement layers. + + You can either implement the layers under `TTS/tts/layers/new_model.py` or in the model file `TTS/tts/model/new_model.py`. + You can also reuse layers already implemented. + +2. Test layers. + + We keep tests under `tests` folder. You can add `tts` layers tests under `tts_tests` folder. + Basic tests are checking input-output tensor shapes and output values for a given input. Consider testing extreme cases that are more likely to cause problems like `zero` tensors. + +3. Implement a loss function. + + We keep loss functions under `TTS/tts/layers/losses.py`. You can also mix-and-match implemented loss functions as you like. + + A loss function returns a dictionary in a format ```{โ€™lossโ€™: loss, โ€˜loss1โ€™:loss1 ...}``` and the dictionary must at least define the `loss` key which is the actual value used by the optimizer. All the items in the dictionary are automatically logged on the terminal and the Tensorboard. + +4. Test the loss function. + + As we do for the layers, you need to test the loss functions too. You need to check input/output tensor shapes, + expected output values for a given input tensor. For instance, certain loss functions have upper and lower limits and + it is a wise practice to test with the inputs that should produce these limits. + +5. Implement `MyModel`. + + In ๐ŸธTTS, a model class is a self-sufficient implementation of a model directing all the interactions with the other + components. It is enough to implement the API provided by the `BaseModel` class to comply. + + A model interacts with the `Trainer API` for training, `Synthesizer API` for inference and testing. + + A ๐ŸธTTS model must return a dictionary by the `forward()` and `inference()` functions. This dictionary must `model_outputs` key that is considered as the main model output by the `Trainer` and `Synthesizer`. + + You can place your `tts` model implementation under `TTS/tts/models/new_model.py` then inherit and implement the `BaseTTS`. + + There is also the `callback` interface by which you can manipulate both the model and the `Trainer` states. Callbacks give you + an infinite flexibility to add custom behaviours for your model and training routines. + + For more details, see {ref}`BaseTTS ` and :obj:`TTS.utils.callbacks`. + +6. Optionally, define `MyModelArgs`. + + `MyModelArgs` is a ๐Ÿ‘จโ€โœˆ๏ธCoqpit class that sets all the class arguments of the `MyModel`. `MyModelArgs` must have + all the fields neccessary to instantiate the `MyModel`. However, for training, you need to pass `MyModelConfig` to + the model. + +7. Test `MyModel`. + + As the layers and the loss functions, it is recommended to test your model. One smart way for testing is that you + create two models with the exact same weights. Then we run a training loop with one of these models and + compare the weights with the other model. All the weights need to be different in a passing test. Otherwise, it + is likely that a part of the model is malfunctioning or not even attached to the model's computational graph. + +8. Define `MyModelConfig`. + + Place `MyModelConfig` file under `TTS/models/configs`. It is enough to inherit the `BaseTTSConfig` to make your + config compatible with the `Trainer`. You should also include `MyModelArgs` as a field if defined. The rest of the fields should define the model + specific values and parameters. + +9. Write Docstrings. + + We love you more when you document your code. โค๏ธ + + +# Template ๐ŸธTTS Model implementation + +You can start implementing your model by copying the following base class. + +```python +from TTS.tts.models.base_tts import BaseTTS + + +class MyModel(BaseTTS): + """ + Notes on input/output tensor shapes: + Any input or output tensor of the model must be shaped as + + - 3D tensors `batch x time x channels` + - 2D tensors `batch x channels` + - 1D tensors `batch x 1` + """ + + def __init__(self, config: Coqpit): + super().__init__() + self._set_model_args(config) + + def _set_model_args(self, config: Coqpit): + """Set model arguments from the config. Override this.""" + pass + + def forward(self, input: torch.Tensor, *args, aux_input={}, **kwargs) -> Dict: + """Forward pass for the model mainly used in training. + + You can be flexible here and use different number of arguments and argument names since it is intended to be + used by `train_step()` without exposing it out of the model. + + Args: + input (torch.Tensor): Input tensor. + aux_input (Dict): Auxiliary model inputs like embeddings, durations or any other sorts of inputs. + + Returns: + Dict: Model outputs. Main model output must be named as "model_outputs". + """ + outputs_dict = {"model_outputs": None} + ... + return outputs_dict + + def inference(self, input: torch.Tensor, aux_input={}) -> Dict: + """Forward pass for inference. + + We don't use `*kwargs` since it is problematic with the TorchScript API. + + Args: + input (torch.Tensor): [description] + aux_input (Dict): Auxiliary inputs like speaker embeddings, durations etc. + + Returns: + Dict: [description] + """ + outputs_dict = {"model_outputs": None} + ... + return outputs_dict + + def train_step(self, batch: Dict, criterion: nn.Module) -> Tuple[Dict, Dict]: + """Perform a single training step. Run the model forward pass and compute losses. + + Args: + batch (Dict): Input tensors. + criterion (nn.Module): Loss layer designed for the model. + + Returns: + Tuple[Dict, Dict]: Model ouputs and computed losses. + """ + outputs_dict = {} + loss_dict = {} # this returns from the criterion + ... + return outputs_dict, loss_dict + + def train_log(self, batch: Dict, outputs: Dict, logger: "Logger", assets:Dict, steps:int) -> None: + """Create visualizations and waveform examples for training. + + For example, here you can plot spectrograms and generate sample sample waveforms from these spectrograms to + be projected onto Tensorboard. + + Args: + ap (AudioProcessor): audio processor used at training. + batch (Dict): Model inputs used at the previous training step. + outputs (Dict): Model outputs generated at the previoud training step. + + Returns: + Tuple[Dict, np.ndarray]: training plots and output waveform. + """ + pass + + def eval_step(self, batch: Dict, criterion: nn.Module) -> Tuple[Dict, Dict]: + """Perform a single evaluation step. Run the model forward pass and compute losses. In most cases, you can + call `train_step()` with no changes. + + Args: + batch (Dict): Input tensors. + criterion (nn.Module): Loss layer designed for the model. + + Returns: + Tuple[Dict, Dict]: Model ouputs and computed losses. + """ + outputs_dict = {} + loss_dict = {} # this returns from the criterion + ... + return outputs_dict, loss_dict + + def eval_log(self, batch: Dict, outputs: Dict, logger: "Logger", assets:Dict, steps:int) -> None: + """The same as `train_log()`""" + pass + + def load_checkpoint(self, config: Coqpit, checkpoint_path: str, eval: bool = False) -> None: + """Load a checkpoint and get ready for training or inference. + + Args: + config (Coqpit): Model configuration. + checkpoint_path (str): Path to the model checkpoint file. + eval (bool, optional): If true, init model for inference else for training. Defaults to False. + """ + ... + + def get_optimizer(self) -> Union["Optimizer", List["Optimizer"]]: + """Setup an return optimizer or optimizers.""" + pass + + def get_lr(self) -> Union[float, List[float]]: + """Return learning rate(s). + + Returns: + Union[float, List[float]]: Model's initial learning rates. + """ + pass + + def get_scheduler(self, optimizer: torch.optim.Optimizer): + pass + + def get_criterion(self): + pass + + def format_batch(self): + pass + +``` + + diff --git a/Indic-TTS/TTS/docs/source/index.md b/Indic-TTS/TTS/docs/source/index.md new file mode 100644 index 0000000000000000000000000000000000000000..9dc5bfcea78218060f9c6adf422f1a66901755d8 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/index.md @@ -0,0 +1,56 @@ + +```{include} ../../README.md +:relative-images: +``` +---- + +# Documentation Content +```{eval-rst} +.. toctree:: + :maxdepth: 2 + :caption: Get started + + tutorial_for_nervous_beginners + installation + faq + contributing + +.. toctree:: + :maxdepth: 2 + :caption: Using ๐ŸธTTS + + inference + implementing_a_new_model + training_a_model + finetuning + configuration + formatting_your_dataset + what_makes_a_good_dataset + tts_datasets + +.. toctree:: + :maxdepth: 2 + :caption: Main Classes + + main_classes/trainer_api + main_classes/audio_processor + main_classes/model_api + main_classes/dataset + main_classes/gan + main_classes/speaker_manager + +.. toctree:: + :maxdepth: 2 + :caption: `tts` Models + + models/glow_tts.md + models/vits.md + models/forward_tts.md + models/tacotron1-2.md + +.. toctree:: + :maxdepth: 2 + :caption: `vocoder` Models + +``` + diff --git a/Indic-TTS/TTS/docs/source/inference.md b/Indic-TTS/TTS/docs/source/inference.md new file mode 100644 index 0000000000000000000000000000000000000000..1057d04dbc1d9545822f11f5353fa69c4fd84a90 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/inference.md @@ -0,0 +1,103 @@ +(synthesizing_speech)= +# Synthesizing Speech + +First, you need to install TTS. We recommend using PyPi. You need to call the command below: + +```bash +$ pip install TTS +``` + +After the installation, 2 terminal commands are available. + +1. TTS Command Line Interface (CLI). - `tts` +2. Local Demo Server. - `tts-server` + +## On the Commandline - `tts` +![cli.gif](https://github.com/coqui-ai/TTS/raw/main/images/tts_cli.gif) + +After the installation, ๐ŸธTTS provides a CLI interface for synthesizing speech using pre-trained models. You can either use your own model or the release models under ๐ŸธTTS. + +Listing released ๐ŸธTTS models. + +```bash +tts --list_models +``` + +Run a TTS model, from the release models list, with its default vocoder. (Simply copy and paste the full model names from the list as arguments for the command below.) + +```bash +tts --text "Text for TTS" \ + --model_name "///" \ + --out_path folder/to/save/output.wav +``` + +Run a tts and a vocoder model from the released model list. Note that not every vocoder is compatible with every TTS model. + +```bash +tts --text "Text for TTS" \ + --model_name "///" \ + --vocoder_name "///" \ + --out_path folder/to/save/output.wav +``` + +Run your own TTS model (Using Griffin-Lim Vocoder) + +```bash +tts --text "Text for TTS" \ + --model_path path/to/model.pth \ + --config_path path/to/config.json \ + --out_path folder/to/save/output.wav +``` + +Run your own TTS and Vocoder models + +```bash +tts --text "Text for TTS" \ + --config_path path/to/config.json \ + --model_path path/to/model.pth \ + --out_path folder/to/save/output.wav \ + --vocoder_path path/to/vocoder.pth \ + --vocoder_config_path path/to/vocoder_config.json +``` + +Run a multi-speaker TTS model from the released models list. + +```bash +tts --model_name "///" --list_speaker_idxs # list the possible speaker IDs. +tts --text "Text for TTS." --out_path output/path/speech.wav --model_name "//" --speaker_idx "" +``` + +**Note:** You can use ```./TTS/bin/synthesize.py``` if you prefer running ```tts``` from the TTS project folder. + +## On the Demo Server - `tts-server` + + +![server.gif](https://github.com/coqui-ai/TTS/raw/main/images/demo_server.gif) + +You can boot up a demo ๐ŸธTTS server to run an inference with your models. Note that the server is not optimized for performance +but gives you an easy way to interact with the models. + +The demo server provides pretty much the same interface as the CLI command. + +```bash +tts-server -h # see the help +tts-server --list_models # list the available models. +``` + +Run a TTS model, from the release models list, with its default vocoder. +If the model you choose is a multi-speaker TTS model, you can select different speakers on the Web interface and synthesize +speech. + +```bash +tts-server --model_name "///" +``` + +Run a TTS and a vocoder model from the released model list. Note that not every vocoder is compatible with every TTS model. + +```bash +tts-server --model_name "///" \ + --vocoder_name "///" +``` + +## TorchHub +You can also use [this simple colab notebook](https://colab.research.google.com/drive/1iAe7ZdxjUIuN6V4ooaCt0fACEGKEn7HW?usp=sharing) using TorchHub to synthesize speech. \ No newline at end of file diff --git a/Indic-TTS/TTS/docs/source/installation.md b/Indic-TTS/TTS/docs/source/installation.md new file mode 100644 index 0000000000000000000000000000000000000000..c4d05361f4f7d120da53d7e3dc60d635f1b06e5d --- /dev/null +++ b/Indic-TTS/TTS/docs/source/installation.md @@ -0,0 +1,33 @@ +# Installation + +๐ŸธTTS supports python >=3.7 <3.11.0 and tested on Ubuntu 18.10, 19.10, 20.10. + +## Using `pip` + +`pip` is recommended if you want to use ๐ŸธTTS only for inference. + +You can install from PyPI as follows: + +```bash +pip install TTS # from PyPI +``` + +Or install from Github: + +```bash +pip install git+https://github.com/coqui-ai/TTS # from Github +``` + +## Installing From Source + +This is recommended for development and more control over ๐ŸธTTS. + +```bash +git clone https://github.com/coqui-ai/TTS/ +cd TTS +make system-deps # only on Linux systems. +make install +``` + +## On Windows +If you are on Windows, ๐Ÿ‘‘@GuyPaddock wrote installation instructions [here](https://stackoverflow.com/questions/66726331/ \ No newline at end of file diff --git a/Indic-TTS/TTS/docs/source/main_classes/audio_processor.md b/Indic-TTS/TTS/docs/source/main_classes/audio_processor.md new file mode 100644 index 0000000000000000000000000000000000000000..600b0db582880920be11cfc7773e4b2876127cb8 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/main_classes/audio_processor.md @@ -0,0 +1,25 @@ +# AudioProcessor API + +`TTS.utils.audio.AudioProcessor` is the core class for all the audio processing routines. It provides an API for + +- Feature extraction. +- Sound normalization. +- Reading and writing audio files. +- Sampling audio signals. +- Normalizing and denormalizing audio signals. +- Griffin-Lim vocoder. + +The `AudioProcessor` needs to be initialized with `TTS.config.shared_configs.BaseAudioConfig`. Any model config +also must inherit or initiate `BaseAudioConfig`. + +## AudioProcessor +```{eval-rst} +.. autoclass:: TTS.utils.audio.AudioProcessor + :members: +``` + +## BaseAudioConfig +```{eval-rst} +.. autoclass:: TTS.config.shared_configs.BaseAudioConfig + :members: +``` \ No newline at end of file diff --git a/Indic-TTS/TTS/docs/source/main_classes/dataset.md b/Indic-TTS/TTS/docs/source/main_classes/dataset.md new file mode 100644 index 0000000000000000000000000000000000000000..92d381aca552c6fe95a9573d76227b8aa51a8dc0 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/main_classes/dataset.md @@ -0,0 +1,25 @@ +# Datasets + +## TTS Dataset + +```{eval-rst} +.. autoclass:: TTS.tts.datasets.TTSDataset + :members: +``` + +## Vocoder Dataset + +```{eval-rst} +.. autoclass:: TTS.vocoder.datasets.gan_dataset.GANDataset + :members: +``` + +```{eval-rst} +.. autoclass:: TTS.vocoder.datasets.wavegrad_dataset.WaveGradDataset + :members: +``` + +```{eval-rst} +.. autoclass:: TTS.vocoder.datasets.wavernn_dataset.WaveRNNDataset + :members: +``` \ No newline at end of file diff --git a/Indic-TTS/TTS/docs/source/main_classes/gan.md b/Indic-TTS/TTS/docs/source/main_classes/gan.md new file mode 100644 index 0000000000000000000000000000000000000000..4524b4b5c591f9790f68999b4920abc50f32c9cd --- /dev/null +++ b/Indic-TTS/TTS/docs/source/main_classes/gan.md @@ -0,0 +1,12 @@ +# GAN API + +The {class}`TTS.vocoder.models.gan.GAN` provides an easy way to implementing new GAN based models. You just need +to define the model architectures for the generator and the discriminator networks and give them to the `GAN` class +to do its โœจ๏ธ. + + +## GAN +```{eval-rst} +.. autoclass:: TTS.vocoder.models.gan.GAN + :members: +``` \ No newline at end of file diff --git a/Indic-TTS/TTS/docs/source/main_classes/model_api.md b/Indic-TTS/TTS/docs/source/main_classes/model_api.md new file mode 100644 index 0000000000000000000000000000000000000000..6781a268ab53139519c51bbe44d6601a38da1ac6 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/main_classes/model_api.md @@ -0,0 +1,24 @@ +# Model API +Model API provides you a set of functions that easily make your model compatible with the `Trainer`, +`Synthesizer` and `ModelZoo`. + +## Base TTS Model + +```{eval-rst} +.. autoclass:: TTS.model.BaseModel + :members: +``` + +## Base `tts` Model + +```{eval-rst} +.. autoclass:: TTS.tts.models.base_tts.BaseTTS + :members: +``` + +## Base `vocoder` Model + +```{eval-rst} +.. autoclass:: TTS.vocoder.models.base_vocoder.BaseVocoder + :members: +``` \ No newline at end of file diff --git a/Indic-TTS/TTS/docs/source/main_classes/speaker_manager.md b/Indic-TTS/TTS/docs/source/main_classes/speaker_manager.md new file mode 100644 index 0000000000000000000000000000000000000000..ba4b55dc781ea09c13f703ea815bac14acf0bfa0 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/main_classes/speaker_manager.md @@ -0,0 +1,11 @@ +# Speaker Manager API + +The {class}`TTS.tts.utils.speakers.SpeakerManager` organize speaker related data and information for ๐ŸธTTS models. It is +especially useful for multi-speaker models. + + +## Speaker Manager +```{eval-rst} +.. automodule:: TTS.tts.utils.speakers + :members: +``` \ No newline at end of file diff --git a/Indic-TTS/TTS/docs/source/main_classes/trainer_api.md b/Indic-TTS/TTS/docs/source/main_classes/trainer_api.md new file mode 100644 index 0000000000000000000000000000000000000000..f765fff7bd1bff49a00c57217e086a6cabe74a13 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/main_classes/trainer_api.md @@ -0,0 +1,3 @@ +# Trainer API + +We made the trainer a seprate project on https://github.com/coqui-ai/Trainer diff --git a/Indic-TTS/TTS/docs/source/make.bat b/Indic-TTS/TTS/docs/source/make.bat new file mode 100644 index 0000000000000000000000000000000000000000..922152e96a04a242e6fc40f124261d74890617d8 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/Indic-TTS/TTS/docs/source/models/forward_tts.md b/Indic-TTS/TTS/docs/source/models/forward_tts.md new file mode 100644 index 0000000000000000000000000000000000000000..c4affb693d11649dc0c96680b149e2f4d23f86f6 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/models/forward_tts.md @@ -0,0 +1,65 @@ +# Forward TTS model(s) + +A general feed-forward TTS model implementation that can be configured to different architectures by setting different +encoder and decoder networks. It can be trained with either pre-computed durations (from pre-trained Tacotron) or +an alignment network that learns the text to audio alignment from the input data. + +Currently we provide the following pre-configured architectures: + +- **FastSpeech:** + + It's a feed-forward model TTS model that uses Feed Forward Transformer (FFT) modules as the encoder and decoder. + +- **FastPitch:** + + It uses the same FastSpeech architecture that us conditioned on fundemental frequency (f0) contours with the + promise of more expressive speech. + +- **SpeedySpeech:** + + It uses Residual Convolution layers instead of Transformers that leads to a more compute friendly model. + +- **FastSpeech2 (TODO):** + + Similar to FastPitch but it also uses a spectral energy values as an addition. + +## Important resources & papers +- FastPitch: https://arxiv.org/abs/2006.06873 +- SpeedySpeech: https://arxiv.org/abs/2008.03802 +- FastSpeech: https://arxiv.org/pdf/1905.09263 +- FastSpeech2: https://arxiv.org/abs/2006.04558 +- Aligner Network: https://arxiv.org/abs/2108.10447 +- What is Pitch: https://www.britannica.com/topic/pitch-speech + + +## ForwardTTSArgs +```{eval-rst} +.. autoclass:: TTS.tts.models.forward_tts.ForwardTTSArgs + :members: +``` + +## ForwardTTS Model +```{eval-rst} +.. autoclass:: TTS.tts.models.forward_tts.ForwardTTS + :members: +``` + +## FastPitchConfig +```{eval-rst} +.. autoclass:: TTS.tts.configs.fast_pitch_config.FastPitchConfig + :members: +``` + +## SpeedySpeechConfig +```{eval-rst} +.. autoclass:: TTS.tts.configs.speedy_speech_config.SpeedySpeechConfig + :members: +``` + +## FastSpeechConfig +```{eval-rst} +.. autoclass:: TTS.tts.configs.fast_speech_config.FastSpeechConfig + :members: +``` + + diff --git a/Indic-TTS/TTS/docs/source/models/glow_tts.md b/Indic-TTS/TTS/docs/source/models/glow_tts.md new file mode 100644 index 0000000000000000000000000000000000000000..66171abd144ce3f2f2c8ec236ef1cc6c46ea9424 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/models/glow_tts.md @@ -0,0 +1,22 @@ +# Glow TTS + +Glow TTS is a normalizing flow model for text-to-speech. It is built on the generic Glow model that is previously +used in computer vision and vocoder models. It uses "monotonic alignment search" (MAS) to fine the text-to-speech alignment +and uses the output to train a separate duration predictor network for faster inference run-time. + +## Important resources & papers +- GlowTTS: https://arxiv.org/abs/2005.11129 +- Glow (Generative Flow with invertible 1x1 Convolutions): https://arxiv.org/abs/1807.03039 +- Normalizing Flows: https://blog.evjang.com/2018/01/nf1.html + +## GlowTTS Config +```{eval-rst} +.. autoclass:: TTS.tts.configs.glow_tts_config.GlowTTSConfig + :members: +``` + +## GlowTTS Model +```{eval-rst} +.. autoclass:: TTS.tts.models.glow_tts.GlowTTS + :members: +``` diff --git a/Indic-TTS/TTS/docs/source/models/tacotron1-2.md b/Indic-TTS/TTS/docs/source/models/tacotron1-2.md new file mode 100644 index 0000000000000000000000000000000000000000..90833ecb6e662c41043343b53c58784bc8ca2e85 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/models/tacotron1-2.md @@ -0,0 +1,63 @@ +# ๐ŸŒฎ Tacotron 1 and 2 + +Tacotron is one of the first successful DL-based text-to-mel models and opened up the whole TTS field for more DL research. + +Tacotron mainly is an encoder-decoder model with attention. + +The encoder takes input tokens (characters or phonemes) and the decoder outputs mel-spectrogram* frames. Attention module in-between learns to align the input tokens with the output mel-spectrgorams. + +Tacotron1 and 2 are both built on the same encoder-decoder architecture but they use different layers. Additionally, Tacotron1 uses a Postnet module to convert mel-spectrograms to linear spectrograms with a higher resolution before the vocoder. + +Vanilla Tacotron models are slow at inference due to the auto-regressive* nature that prevents the model to process all the inputs in parallel. One trick is to use a higher โ€œreduction rateโ€ that helps the model to predict multiple frames at once. That is, reduction rate 2 reduces the number of decoder iterations by half. + +Tacotron also uses a Prenet module with Dropout that projects the modelโ€™s previous output before feeding it to the decoder again. The paper and most of the implementations use the Dropout layer even in inference and they report the attention fails or the voice quality degrades otherwise. But the issue with that, you get a slightly different output speech every time you run the model. + +Tsraining the attention is notoriously problematic in Tacoron models. Especially, in inference, for some input sequences, the alignment fails and causes the model to produce unexpected results. There are many different methods proposed to improve the attention. + +After hundreds of experiments, @ ๐ŸธTTS we suggest Double Decoder Consistency that leads to the most robust model performance. + +If you have a limited VRAM, then you can try using the Guided Attention Loss or the Dynamic Convolutional Attention. You can also combine the two. + + +## Important resources & papers +- Tacotron: https://arxiv.org/abs/2006.06873 +- Tacotron2: https://arxiv.org/abs/2008.03802 +- Double Decoder Consistency: https://coqui.ai/blog/tts/solving-attention-problems-of-tts-models-with-double-decoder-consistency +- Guided Attention Loss: https://arxiv.org/abs/1710.08969 +- Forward & Backward Decoder: https://arxiv.org/abs/1907.09006 +- Forward Attention: https://arxiv.org/abs/1807.06736 +- Gaussian Attention: https://arxiv.org/abs/1910.10288 +- Dynamic Convolutional Attention: https://arxiv.org/pdf/1910.10288.pdf + + +## BaseTacotron +```{eval-rst} +.. autoclass:: TTS.tts.models.base_tacotron.BaseTacotron + :members: +``` + +## Tacotron +```{eval-rst} +.. autoclass:: TTS.tts.models.tacotron.Tacotron + :members: +``` + +## Tacotron2 +```{eval-rst} +.. autoclass:: TTS.tts.models.tacotron2.Tacotron2 + :members: +``` + +## TacotronConfig +```{eval-rst} +.. autoclass:: TTS.tts.configs.tacotron_config.TacotronConfig + :members: +``` + +## Tacotron2Config +```{eval-rst} +.. autoclass:: TTS.tts.configs.tacotron2_config.Tacotron2Config + :members: +``` + + diff --git a/Indic-TTS/TTS/docs/source/models/vits.md b/Indic-TTS/TTS/docs/source/models/vits.md new file mode 100644 index 0000000000000000000000000000000000000000..0c303f7a957f1a27be9028c1f596368919303ecd --- /dev/null +++ b/Indic-TTS/TTS/docs/source/models/vits.md @@ -0,0 +1,38 @@ +# VITS + +VITS (Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech +) is an End-to-End (encoder -> vocoder together) TTS model that takes advantage of SOTA DL techniques like GANs, VAE, +Normalizing Flows. It does not require external alignment annotations and learns the text-to-audio alignment +using MAS, as explained in the paper. The model architecture is a combination of GlowTTS encoder and HiFiGAN vocoder. +It is a feed-forward model with x67.12 real-time factor on a GPU. + +๐Ÿธ YourTTS is a multi-speaker and multi-lingual TTS model that can perform voice conversion and zero-shot speaker adaptation. +It can also learn a new language or voice with a ~ 1 minute long audio clip. This is a big open gate for training +TTS models in low-resources languages. ๐Ÿธ YourTTS uses VITS as the backbone architecture coupled with a speaker encoder model. + +## Important resources & papers +- ๐Ÿธ YourTTS: https://arxiv.org/abs/2112.02418 +- VITS: https://arxiv.org/pdf/2106.06103.pdf +- Neural Spline Flows: https://arxiv.org/abs/1906.04032 +- Variational Autoencoder: https://arxiv.org/pdf/1312.6114.pdf +- Generative Adversarial Networks: https://arxiv.org/abs/1406.2661 +- HiFiGAN: https://arxiv.org/abs/2010.05646 +- Normalizing Flows: https://blog.evjang.com/2018/01/nf1.html + +## VitsConfig +```{eval-rst} +.. autoclass:: TTS.tts.configs.vits_config.VitsConfig + :members: +``` + +## VitsArgs +```{eval-rst} +.. autoclass:: TTS.tts.models.vits.VitsArgs + :members: +``` + +## Vits Model +```{eval-rst} +.. autoclass:: TTS.tts.models.vits.Vits + :members: +``` diff --git a/Indic-TTS/TTS/docs/source/training_a_model.md b/Indic-TTS/TTS/docs/source/training_a_model.md new file mode 100644 index 0000000000000000000000000000000000000000..989a57042abf83e89206f47a1bbbcb3e258224d0 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/training_a_model.md @@ -0,0 +1,146 @@ +# Training a Model + +1. Decide the model you want to use. + + Each model has a different set of pros and cons that define the run-time efficiency and the voice quality. It is up to you to decide what model serves your needs. Other than referring to the papers, one easy way is to test the ๐ŸธTTS + community models and see how fast and good each of the models. Or you can start a discussion on our communication channels. + +2. Understand the configuration, its fields and values. + + For instance, if you want to train a `Tacotron` model then see the `TacotronConfig` class and make sure you understand it. + +3. Check the recipes. + + Recipes are located under `TTS/recipes/`. They do not promise perfect models but they provide a good start point for + `Nervous Beginners`. + A recipe for `GlowTTS` using `LJSpeech` dataset looks like below. Let's be creative and call this `train_glowtts.py`. + + ```{literalinclude} ../../recipes/ljspeech/glow_tts/train_glowtts.py + ``` + + You need to change fields of the `BaseDatasetConfig` to match your dataset and then update `GlowTTSConfig` + fields as you need. + + 4. Run the training. + + ```bash + $ CUDA_VISIBLE_DEVICES="0" python train_glowtts.py + ``` + + Notice that we set the GPU for the training by `CUDA_VISIBLE_DEVICES` environment variable. + To see available GPUs on your system, you can use `nvidia-smi` command on the terminal. + + If you like to run a multi-gpu training using DDP back-end, + + ```bash + $ CUDA_VISIBLE_DEVICES="0, 1, 2" python -m trainer.distribute --script /train_glowtts.py + ``` + + The example above runs a multi-gpu training using GPUs `0, 1, 2`. + + Beginning of a training log looks like this: + + ```console + > Experiment folder: /your/output_path/-Juni-23-2021_02+52-78899209 + > Using CUDA: True + > Number of GPUs: 1 + > Setting up Audio Processor... + | > sample_rate:22050 + | > resample:False + | > num_mels:80 + | > min_level_db:-100 + | > frame_shift_ms:None + | > frame_length_ms:None + | > ref_level_db:20 + | > fft_size:1024 + | > power:1.5 + | > preemphasis:0.0 + | > griffin_lim_iters:60 + | > signal_norm:True + | > symmetric_norm:True + | > mel_fmin:0 + | > mel_fmax:None + | > spec_gain:20.0 + | > stft_pad_mode:reflect + | > max_norm:4.0 + | > clip_norm:True + | > do_trim_silence:True + | > trim_db:45 + | > do_sound_norm:False + | > stats_path:None + | > base:10 + | > hop_length:256 + | > win_length:1024 + | > Found 13100 files in /your/dataset/path/ljspeech/LJSpeech-1.1 + > Using model: glow_tts + + > Model has 28356129 parameters + + > EPOCH: 0/1000 + + > DataLoader initialization + | > Use phonemes: False + | > Number of instances : 12969 + | > Max length sequence: 187 + | > Min length sequence: 5 + | > Avg length sequence: 98.3403500655409 + | > Num. instances discarded by max-min (max=500, min=3) seq limits: 0 + | > Batch group size: 0. + + > TRAINING (2021-06-23 14:52:54) + + --> STEP: 0/405 -- GLOBAL_STEP: 0 + | > loss: 2.34670 + | > log_mle: 1.61872 + | > loss_dur: 0.72798 + | > align_error: 0.52744 + | > current_lr: 2.5e-07 + | > grad_norm: 5.036039352416992 + | > step_time: 5.8815 + | > loader_time: 0.0065 + ... + ``` + +5. Run the Tensorboard. + + ```bash + $ tensorboard --logdir= + ``` + +6. Monitor the training progress. + + On the terminal and Tensorboard, you can monitor the progress of your model. Also Tensorboard provides certain figures and sample outputs. + + Note that different models have different metrics, visuals and outputs. + + You should also check the [FAQ page](https://github.com/coqui-ai/TTS/wiki/FAQ) for common problems and solutions + that occur in a training. + +7. Use your best model for inference. + + Use `tts` or `tts-server` commands for testing your models. + + ```bash + $ tts --text "Text for TTS" \ + --model_path path/to/checkpoint_x.pth \ + --config_path path/to/config.json \ + --out_path folder/to/save/output.wav + ``` + +8. Return to the step 1 and reiterate for training a `vocoder` model. + + In the example above, we trained a `GlowTTS` model, but the same workflow applies to all the other ๐ŸธTTS models. + + +# Multi-speaker Training + +Training a multi-speaker model is mostly the same as training a single-speaker model. +You need to specify a couple of configuration parameters, initiate a `SpeakerManager` instance and pass it to the model. + +The configuration parameters define whether you want to train the model with a speaker-embedding layer or pre-computed +d-vectors. For using d-vectors, you first need to compute the d-vectors using the `SpeakerEncoder`. + +The same Glow-TTS model above can be trained on a multi-speaker VCTK dataset with the script below. + +```{literalinclude} ../../recipes/vctk/glow_tts/train_glow_tts.py +``` diff --git a/Indic-TTS/TTS/docs/source/tts_datasets.md b/Indic-TTS/TTS/docs/source/tts_datasets.md new file mode 100644 index 0000000000000000000000000000000000000000..852ccd37a394e4027f69790a22406a231b92e776 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/tts_datasets.md @@ -0,0 +1,16 @@ +# TTS Datasets + +Some of the known public datasets that we successfully applied ๐ŸธTTS: + +- [English - LJ Speech](https://keithito.com/LJ-Speech-Dataset/) +- [English - Nancy](http://www.cstr.ed.ac.uk/projects/blizzard/2011/lessac_blizzard2011/) +- [English - TWEB](https://www.kaggle.com/bryanpark/the-world-english-bible-speech-dataset) +- [English - LibriTTS](https://openslr.org/60/) +- [English - VCTK](https://datashare.ed.ac.uk/handle/10283/2950) +- [Multilingual - M-AI-Labs](http://www.caito.de/2019/01/the-m-ailabs-speech-dataset/) +- [Spanish](https://drive.google.com/file/d/1Sm_zyBo67XHkiFhcRSQ4YaHPYM0slO_e/view?usp=sharing) - thx! @carlfm01 +- [German - Thorsten OGVD](https://github.com/thorstenMueller/deep-learning-german-tts) +- [Japanese - Kokoro](https://www.kaggle.com/kaiida/kokoro-speech-dataset-v11-small/version/1) +- [Chinese](https://www.data-baker.com/data/index/source/) + +Let us know if you use ๐ŸธTTS on a different dataset. \ No newline at end of file diff --git a/Indic-TTS/TTS/docs/source/tutorial_for_nervous_beginners.md b/Indic-TTS/TTS/docs/source/tutorial_for_nervous_beginners.md new file mode 100644 index 0000000000000000000000000000000000000000..d2d3c4bb72e15cc598fd24a37a1f7879b0723007 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/tutorial_for_nervous_beginners.md @@ -0,0 +1,125 @@ +# Tutorial For Nervous Beginners + +## Installation + +User friendly installation. Recommended only for synthesizing voice. + +```bash +$ pip install TTS +``` + +Developer friendly installation. + +```bash +$ git clone https://github.com/coqui-ai/TTS +$ cd TTS +$ pip install -e . +``` + +## Training a `tts` Model + +A breakdown of a simple script that trains a GlowTTS model on the LJspeech dataset. See the comments for more details. + +### Pure Python Way + +0. Download your dataset. + + In this example, we download and use the LJSpeech dataset. Set the download directory based on your preferences. + + ```bash + $ python -c 'from TTS.utils.downloaders import download_ljspeech; download_ljspeech("../recipes/ljspeech/");' + ``` + +1. Define `train.py`. + + ```{literalinclude} ../../recipes/ljspeech/glow_tts/train_glowtts.py + ``` + +2. Run the script. + + ```bash + CUDA_VISIBLE_DEVICES=0 python train.py + ``` + + - Continue a previous run. + + ```bash + CUDA_VISIBLE_DEVICES=0 python train.py --continue_path path/to/previous/run/folder/ + ``` + + - Fine-tune a model. + + ```bash + CUDA_VISIBLE_DEVICES=0 python train.py --restore_path path/to/model/checkpoint.pth + ``` + + - Run multi-gpu training. + + ```bash + CUDA_VISIBLE_DEVICES=0,1,2 python -m trainer.distribute --script train.py + ``` + +### CLI Way + +We still support running training from CLI like in the old days. The same training run can also be started as follows. + +1. Define your `config.json` + + ```json + { + "run_name": "my_run", + "model": "glow_tts", + "batch_size": 32, + "eval_batch_size": 16, + "num_loader_workers": 4, + "num_eval_loader_workers": 4, + "run_eval": true, + "test_delay_epochs": -1, + "epochs": 1000, + "text_cleaner": "english_cleaners", + "use_phonemes": false, + "phoneme_language": "en-us", + "phoneme_cache_path": "phoneme_cache", + "print_step": 25, + "print_eval": true, + "mixed_precision": false, + "output_path": "recipes/ljspeech/glow_tts/", + "datasets":[{"name": "ljspeech", "meta_file_train":"metadata.csv", "path": "recipes/ljspeech/LJSpeech-1.1/"}] + } + ``` + +2. Start training. + ```bash + $ CUDA_VISIBLE_DEVICES="0" python TTS/bin/train_tts.py --config_path config.json + ``` + +## Training a `vocoder` Model + +```{literalinclude} ../../recipes/ljspeech/hifigan/train_hifigan.py +``` + +โ—๏ธ Note that you can also use ```train_vocoder.py``` as the ```tts``` models above. + +## Synthesizing Speech + +You can run `tts` and synthesize speech directly on the terminal. + +```bash +$ tts -h # see the help +$ tts --list_models # list the available models. +``` + +![cli.gif](https://github.com/coqui-ai/TTS/raw/main/images/tts_cli.gif) + + +You can call `tts-server` to start a local demo server that you can open it on +your favorite web browser and ๐Ÿ—ฃ๏ธ. + +```bash +$ tts-server -h # see the help +$ tts-server --list_models # list the available models. +``` +![server.gif](https://github.com/coqui-ai/TTS/raw/main/images/demo_server.gif) + + + diff --git a/Indic-TTS/TTS/docs/source/what_makes_a_good_dataset.md b/Indic-TTS/TTS/docs/source/what_makes_a_good_dataset.md new file mode 100644 index 0000000000000000000000000000000000000000..18c87453f7b7704315222612f23977662451a287 --- /dev/null +++ b/Indic-TTS/TTS/docs/source/what_makes_a_good_dataset.md @@ -0,0 +1,20 @@ +(what_makes_a_good_dataset)= +# What makes a good TTS dataset + +## What Makes a Good Dataset +* **Gaussian like distribution on clip and text lengths**. So plot the distribution of clip lengths and check if it covers enough short and long voice clips. +* **Mistake free**. Remove any wrong or broken files. Check annotations, compare transcript and audio length. +* **Noise free**. Background noise might lead your model to struggle, especially for a good alignment. Even if it learns the alignment, the final result is likely to be suboptimial. +* **Compatible tone and pitch among voice clips**. For instance, if you are using audiobook recordings for your project, it might have impersonations for different characters in the book. These differences between samples downgrade the model performance. +* **Good phoneme coverage**. Make sure that your dataset covers a good portion of the phonemes, di-phonemes, and in some languages tri-phonemes. +* **Naturalness of recordings**. For your model WISIAIL (What it sees is all it learns). Therefore, your dataset should accommodate all the attributes you want to hear from your model. + +## Preprocessing Dataset +If you like to use a bespoken dataset, you might like to perform a couple of quality checks before training. ๐ŸธTTS provides a couple of notebooks (CheckSpectrograms, AnalyzeDataset) to expedite this part for you. + +* **AnalyzeDataset** is for checking dataset distribution in terms of the clip and transcript lengths. It is good to find outlier instances (too long, short text but long voice clip, etc.)and remove them before training. Keep in mind that we like to have a good balance between long and short clips to prevent any bias in training. If you have only short clips (1-3 secs), then your model might suffer for long sentences and if your instances are long, then it might not learn the alignment or might take too long to train the model. + +* **CheckSpectrograms** is to measure the noise level of the clips and find good audio processing parameters. The noise level might be observed by checking spectrograms. If spectrograms look cluttered, especially in silent parts, this dataset might not be a good candidate for a TTS project. If your voice clips are too noisy in the background, it makes things harder for your model to learn the alignment, and the final result might be different than the voice you are given. +If the spectrograms look good, then the next step is to find a good set of audio processing parameters, defined in ```config.json```. In the notebook, you can compare different sets of parameters and see the resynthesis results in relation to the given ground-truth. Find the best parameters that give the best possible synthesis performance. + +Another practical detail is the quantization level of the clips. If your dataset has a very high bit-rate, that might cause slow data-load time and consequently slow training. It is better to reduce the sample-rate of your dataset to around 16000-22050. \ No newline at end of file diff --git a/Indic-TTS/TTS/hubconf.py b/Indic-TTS/TTS/hubconf.py new file mode 100644 index 0000000000000000000000000000000000000000..0c9c5930fcbf98962d3086e7537aa3941b191083 --- /dev/null +++ b/Indic-TTS/TTS/hubconf.py @@ -0,0 +1,46 @@ +dependencies = [ + 'torch', 'gdown', 'pysbd', 'gruut', 'anyascii', 'pypinyin', 'coqpit', 'mecab-python3', 'unidic-lite' +] +import torch + +from TTS.utils.manage import ModelManager +from TTS.utils.synthesizer import Synthesizer + + +def tts(model_name='tts_models/en/ljspeech/tacotron2-DCA', + vocoder_name=None, + use_cuda=False): + """TTS entry point for PyTorch Hub that provides a Synthesizer object to synthesize speech from a give text. + + Example: + >>> synthesizer = torch.hub.load('coqui-ai/TTS', 'tts', source='github') + >>> wavs = synthesizer.tts("This is a test! This is also a test!!") + wavs - is a list of values of the synthesized speech. + + Args: + model_name (str, optional): One of the model names from .model.json. Defaults to 'tts_models/en/ljspeech/tacotron2-DCA'. + vocoder_name (str, optional): One of the model names from .model.json. Defaults to 'vocoder_models/en/ljspeech/multiband-melgan'. + pretrained (bool, optional): [description]. Defaults to True. + + Returns: + TTS.utils.synthesizer.Synthesizer: Synthesizer object wrapping both vocoder and tts models. + """ + manager = ModelManager() + + model_path, config_path, model_item = manager.download_model(model_name) + vocoder_name = model_item[ + 'default_vocoder'] if vocoder_name is None else vocoder_name + vocoder_path, vocoder_config_path, _ = manager.download_model(vocoder_name) + + # create synthesizer + synt = Synthesizer(tts_checkpoint=model_path, + tts_config_path=config_path, + vocoder_checkpoint=vocoder_path, + vocoder_config=vocoder_config_path, + use_cuda=use_cuda) + return synt + + +if __name__ == '__main__': + synthesizer = torch.hub.load('coqui-ai/TTS:dev', 'tts', source='github') + synthesizer.tts("This is a test!") diff --git a/Indic-TTS/TTS/images/TTS-performance.png b/Indic-TTS/TTS/images/TTS-performance.png new file mode 100644 index 0000000000000000000000000000000000000000..68eebaf7e6dd503333f2bb8b85e0bd4115c2011f Binary files /dev/null and b/Indic-TTS/TTS/images/TTS-performance.png differ diff --git a/Indic-TTS/TTS/images/coqui-log-green-TTS.png b/Indic-TTS/TTS/images/coqui-log-green-TTS.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad188b8c03a170097c0393c6769996f03cf9054 Binary files /dev/null and b/Indic-TTS/TTS/images/coqui-log-green-TTS.png differ diff --git a/Indic-TTS/TTS/images/demo_server.gif b/Indic-TTS/TTS/images/demo_server.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ebc1860fa5b327b83c4174f765edf12acc8b134 Binary files /dev/null and b/Indic-TTS/TTS/images/demo_server.gif differ diff --git a/Indic-TTS/TTS/images/example_model_output.png b/Indic-TTS/TTS/images/example_model_output.png new file mode 100644 index 0000000000000000000000000000000000000000..8e83531c117a626c7db8ea23cf994299a6d93fec Binary files /dev/null and b/Indic-TTS/TTS/images/example_model_output.png differ diff --git a/Indic-TTS/TTS/images/model.png b/Indic-TTS/TTS/images/model.png new file mode 100644 index 0000000000000000000000000000000000000000..e2c55269efe82fa8ab7e4d17eb089518823efcbe Binary files /dev/null and b/Indic-TTS/TTS/images/model.png differ diff --git a/Indic-TTS/TTS/images/tts_cli.gif b/Indic-TTS/TTS/images/tts_cli.gif new file mode 100644 index 0000000000000000000000000000000000000000..f4c7897cda0f6d8659c0cbe957a7361e24b66b5e Binary files /dev/null and b/Indic-TTS/TTS/images/tts_cli.gif differ diff --git a/Indic-TTS/TTS/images/tts_performance.png b/Indic-TTS/TTS/images/tts_performance.png new file mode 100644 index 0000000000000000000000000000000000000000..bdff06731e6b60ffb4806943aba5dc89363f3ab3 Binary files /dev/null and b/Indic-TTS/TTS/images/tts_performance.png differ diff --git a/Indic-TTS/TTS/notebooks/ExtractTTSpectrogram.ipynb b/Indic-TTS/TTS/notebooks/ExtractTTSpectrogram.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..a257b6bf253c306701216057e6d8193c70663933 --- /dev/null +++ b/Indic-TTS/TTS/notebooks/ExtractTTSpectrogram.ipynb @@ -0,0 +1,372 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is a notebook to generate mel-spectrograms from a TTS model to be used in a Vocoder training." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "import os\n", + "import sys\n", + "import torch\n", + "import importlib\n", + "import numpy as np\n", + "from tqdm import tqdm as tqdm\n", + "from torch.utils.data import DataLoader\n", + "from TTS.tts.datasets.dataset import TTSDataset\n", + "from TTS.tts.layers.losses import L1LossMasked\n", + "from TTS.utils.audio import AudioProcessor\n", + "from TTS.config import load_config\n", + "from TTS.tts.utils.visual import plot_spectrogram\n", + "from TTS.tts.utils.helpers import sequence_mask\n", + "from TTS.tts.models import setup_model\n", + "from TTS.tts.utils.text.symbols import make_symbols, symbols, phonemes\n", + "\n", + "%matplotlib inline\n", + "\n", + "import os\n", + "os.environ['CUDA_VISIBLE_DEVICES']='2'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def set_filename(wav_path, out_path):\n", + " wav_file = os.path.basename(wav_path)\n", + " file_name = wav_file.split('.')[0]\n", + " os.makedirs(os.path.join(out_path, \"quant\"), exist_ok=True)\n", + " os.makedirs(os.path.join(out_path, \"mel\"), exist_ok=True)\n", + " os.makedirs(os.path.join(out_path, \"wav_gl\"), exist_ok=True)\n", + " wavq_path = os.path.join(out_path, \"quant\", file_name)\n", + " mel_path = os.path.join(out_path, \"mel\", file_name)\n", + " wav_path = os.path.join(out_path, \"wav_gl\", file_name)\n", + " return file_name, wavq_path, mel_path, wav_path" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "OUT_PATH = \"/home/ubuntu/TTS/recipes/ljspeech/LJSpeech-1.1/specs2/\"\n", + "DATA_PATH = \"/home/ubuntu/TTS/recipes/ljspeech/LJSpeech-1.1/\"\n", + "DATASET = \"ljspeech\"\n", + "METADATA_FILE = \"metadata.csv\"\n", + "CONFIG_PATH = \"/home/ubuntu/.local/share/tts/tts_models--en--ljspeech--tacotron2-DDC_ph/config.json\"\n", + "MODEL_FILE = \"/home/ubuntu/.local/share/tts/tts_models--en--ljspeech--tacotron2-DDC_ph/model_file.pth\"\n", + "BATCH_SIZE = 32\n", + "\n", + "QUANTIZED_WAV = False\n", + "QUANTIZE_BIT = None\n", + "DRY_RUN = False # if False, does not generate output files, only computes loss and visuals.\n", + "\n", + "use_cuda = torch.cuda.is_available()\n", + "print(\" > CUDA enabled: \", use_cuda)\n", + "\n", + "C = load_config(CONFIG_PATH)\n", + "C.audio['do_trim_silence'] = False # IMPORTANT!!!!!!!!!!!!!!! disable to align mel specs with the wav files\n", + "ap = AudioProcessor(bits=QUANTIZE_BIT, **C.audio)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(C['r'])\n", + "# if the vocabulary was passed, replace the default\n", + "if 'characters' in C and C['characters']:\n", + " symbols, phonemes = make_symbols(**C.characters)\n", + "\n", + "# load the model\n", + "num_chars = len(phonemes) if C.use_phonemes else len(symbols)\n", + "# TODO: multiple speaker\n", + "model = setup_model(C)\n", + "model.load_checkpoint(C, MODEL_FILE, eval=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "preprocessor = importlib.import_module(\"TTS.tts.datasets.formatters\")\n", + "preprocessor = getattr(preprocessor, DATASET.lower())\n", + "meta_data = preprocessor(DATA_PATH, METADATA_FILE)\n", + "dataset = TTSDataset(\n", + " checkpoint[\"config\"][\"r\"],\n", + " C.text_cleaner,\n", + " False,\n", + " ap,\n", + " meta_data,\n", + " characters=C.get('characters', None),\n", + " use_phonemes=C.use_phonemes,\n", + " phoneme_cache_path=C.phoneme_cache_path,\n", + " enable_eos_bos=C.enable_eos_bos_chars,\n", + ")\n", + "loader = DataLoader(\n", + " dataset, batch_size=BATCH_SIZE, num_workers=4, collate_fn=dataset.collate_fn, shuffle=False, drop_last=False\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generate model outputs " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pickle\n", + "\n", + "file_idxs = []\n", + "metadata = []\n", + "losses = []\n", + "postnet_losses = []\n", + "criterion = L1LossMasked(seq_len_norm=C.seq_len_norm)\n", + "with torch.no_grad():\n", + " for data in tqdm(loader):\n", + " # setup input data\n", + " text_input = data[0]\n", + " text_lengths = data[1]\n", + " linear_input = data[3]\n", + " mel_input = data[4]\n", + " mel_lengths = data[5]\n", + " stop_targets = data[6]\n", + " item_idx = data[7]\n", + "\n", + " # dispatch data to GPU\n", + " if use_cuda:\n", + " text_input = text_input.cuda()\n", + " text_lengths = text_lengths.cuda()\n", + " mel_input = mel_input.cuda()\n", + " mel_lengths = mel_lengths.cuda()\n", + "\n", + " mask = sequence_mask(text_lengths)\n", + " mel_outputs, postnet_outputs, alignments, stop_tokens = model.forward(text_input, text_lengths, mel_input)\n", + " \n", + " # compute loss\n", + " loss = criterion(mel_outputs, mel_input, mel_lengths)\n", + " loss_postnet = criterion(postnet_outputs, mel_input, mel_lengths)\n", + " losses.append(loss.item())\n", + " postnet_losses.append(loss_postnet.item())\n", + "\n", + " # compute mel specs from linear spec if model is Tacotron\n", + " if C.model == \"Tacotron\":\n", + " mel_specs = []\n", + " postnet_outputs = postnet_outputs.data.cpu().numpy()\n", + " for b in range(postnet_outputs.shape[0]):\n", + " postnet_output = postnet_outputs[b]\n", + " mel_specs.append(torch.FloatTensor(ap.out_linear_to_mel(postnet_output.T).T).cuda())\n", + " postnet_outputs = torch.stack(mel_specs)\n", + " elif C.model == \"Tacotron2\":\n", + " postnet_outputs = postnet_outputs.detach().cpu().numpy()\n", + " alignments = alignments.detach().cpu().numpy()\n", + "\n", + " if not DRY_RUN:\n", + " for idx in range(text_input.shape[0]):\n", + " wav_file_path = item_idx[idx]\n", + " wav = ap.load_wav(wav_file_path)\n", + " file_name, wavq_path, mel_path, wav_path = set_filename(wav_file_path, OUT_PATH)\n", + " file_idxs.append(file_name)\n", + "\n", + " # quantize and save wav\n", + " if QUANTIZED_WAV:\n", + " wavq = ap.quantize(wav)\n", + " np.save(wavq_path, wavq)\n", + "\n", + " # save TTS mel\n", + " mel = postnet_outputs[idx]\n", + " mel_length = mel_lengths[idx]\n", + " mel = mel[:mel_length, :].T\n", + " np.save(mel_path, mel)\n", + "\n", + " metadata.append([wav_file_path, mel_path])\n", + "\n", + " # for wavernn\n", + " if not DRY_RUN:\n", + " pickle.dump(file_idxs, open(OUT_PATH+\"/dataset_ids.pkl\", \"wb\")) \n", + " \n", + " # for pwgan\n", + " with open(os.path.join(OUT_PATH, \"metadata.txt\"), \"w\") as f:\n", + " for data in metadata:\n", + " f.write(f\"{data[0]}|{data[1]+'.npy'}\\n\")\n", + "\n", + " print(np.mean(losses))\n", + " print(np.mean(postnet_losses))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# for pwgan\n", + "with open(os.path.join(OUT_PATH, \"metadata.txt\"), \"w\") as f:\n", + " for data in metadata:\n", + " f.write(f\"{data[0]}|{data[1]+'.npy'}\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sanity Check" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "idx = 1\n", + "ap.melspectrogram(ap.load_wav(item_idx[idx])).shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import soundfile as sf\n", + "wav, sr = sf.read(item_idx[idx])\n", + "mel_postnet = postnet_outputs[idx][:mel_lengths[idx], :]\n", + "mel_decoder = mel_outputs[idx][:mel_lengths[idx], :].detach().cpu().numpy()\n", + "mel_truth = ap.melspectrogram(wav)\n", + "print(mel_truth.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plot posnet output\n", + "print(mel_postnet[:mel_lengths[idx], :].shape)\n", + "plot_spectrogram(mel_postnet, ap)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plot decoder output\n", + "print(mel_decoder.shape)\n", + "plot_spectrogram(mel_decoder, ap)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plot GT specgrogram\n", + "print(mel_truth.shape)\n", + "plot_spectrogram(mel_truth.T, ap)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# postnet, decoder diff\n", + "from matplotlib import pylab as plt\n", + "mel_diff = mel_decoder - mel_postnet\n", + "plt.figure(figsize=(16, 10))\n", + "plt.imshow(abs(mel_diff[:mel_lengths[idx],:]).T,aspect=\"auto\", origin=\"lower\");\n", + "plt.colorbar()\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# PLOT GT SPECTROGRAM diff\n", + "from matplotlib import pylab as plt\n", + "mel_diff2 = mel_truth.T - mel_decoder\n", + "plt.figure(figsize=(16, 10))\n", + "plt.imshow(abs(mel_diff2).T,aspect=\"auto\", origin=\"lower\");\n", + "plt.colorbar()\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# PLOT GT SPECTROGRAM diff\n", + "from matplotlib import pylab as plt\n", + "mel = postnet_outputs[idx]\n", + "mel_diff2 = mel_truth.T - mel[:mel_truth.shape[1]]\n", + "plt.figure(figsize=(16, 10))\n", + "plt.imshow(abs(mel_diff2).T,aspect=\"auto\", origin=\"lower\");\n", + "plt.colorbar()\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "822ce188d9bce5372c4adbb11364eeb49293228c2224eb55307f4664778e7f56" + }, + "kernelspec": { + "display_name": "Python 3.9.7 64-bit ('base': conda)", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Indic-TTS/TTS/notebooks/PlotUmapLibriTTS.ipynb b/Indic-TTS/TTS/notebooks/PlotUmapLibriTTS.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..1e29790b9ea0be914954ef8b58552b6c58cdca3d --- /dev/null +++ b/Indic-TTS/TTS/notebooks/PlotUmapLibriTTS.ipynb @@ -0,0 +1,322 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Overview\n", + "\n", + "This notebook can be used with both a single or multi- speaker corpus and allows the interactive plotting of speaker embeddings linked to underlying audio (see instructions in the repo's speaker_embedding directory)\n", + "\n", + "Depending on the directory structure used for your corpus, you may need to adjust handling of **speaker_to_utter** and **locations**." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import glob\n", + "import numpy as np\n", + "import umap\n", + "\n", + "from TTS.utils.audio import AudioProcessor\n", + "from TTS.config import load_config\n", + "\n", + "from bokeh.io import output_notebook, show\n", + "from bokeh.plotting import figure\n", + "from bokeh.models import HoverTool, ColumnDataSource, BoxZoomTool, ResetTool, OpenURL, TapTool\n", + "from bokeh.transform import factor_cmap\n", + "from bokeh.palettes import Category10" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For larger sets of speakers, you can use **Category20**, but you need to change it in the **pal** variable too\n", + "\n", + "List of Bokeh palettes here: http://docs.bokeh.org/en/1.4.0/docs/reference/palettes.html\n", + "\n", + "**NB:** if you have problems with other palettes, first see https://stackoverflow.com/questions/48333820/why-do-some-bokeh-palettes-raise-a-valueerror-when-used-in-factor-cmap" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "output_notebook()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You should also adjust all the path constants to point at the relevant locations for you locally" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "MODEL_RUN_PATH = \"/media/erogol/data_ssd/Models/libri_tts/speaker_encoder/libritts_360-half-October-31-2019_04+54PM-19d2f5f/\"\n", + "MODEL_PATH = MODEL_RUN_PATH + \"best_model.pth\"\n", + "CONFIG_PATH = MODEL_RUN_PATH + \"config.json\"\n", + "\n", + "# My single speaker locations\n", + "#EMBED_PATH = \"/home/neil/main/Projects/TTS3/embeddings/neil14/\"\n", + "#AUDIO_PATH = \"/home/neil/data/Projects/NeilTTS/neil14/wavs/\"\n", + "\n", + "# My multi speaker locations\n", + "EMBED_PATH = \"/home/erogol/Data/Libri-TTS/train-clean-360-embed_128/\"\n", + "AUDIO_PATH = \"/home/erogol/Data/Libri-TTS/train-clean-360/\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!ls -1 $MODEL_RUN_PATH" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "CONFIG = load_config(CONFIG_PATH)\n", + "ap = AudioProcessor(**CONFIG['audio'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Bring in the embeddings created by **compute_embeddings.py**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "embed_files = glob.glob(EMBED_PATH+\"/**/*.npy\", recursive=True)\n", + "print(f'Embeddings found: {len(embed_files)}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Check that we did indeed find an embedding" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "embed_files[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Process the speakers\n", + "\n", + "Assumes count of **speaker_paths** corresponds to number of speakers (so a corpus in just one directory would be treated like a single speaker and the multiple directories of LibriTTS are treated as distinct speakers)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "speaker_paths = list(set([os.path.dirname(os.path.dirname(embed_file)) for embed_file in embed_files]))\n", + "speaker_to_utter = {}\n", + "for embed_file in embed_files:\n", + " speaker_path = os.path.dirname(os.path.dirname(embed_file))\n", + " try:\n", + " speaker_to_utter[speaker_path].append(embed_file)\n", + " except:\n", + " speaker_to_utter[speaker_path]=[embed_file]\n", + "print(f'Speaker count: {len(speaker_paths)}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Set up the embeddings\n", + "\n", + "Adjust the number of speakers to select and the number of utterances from each speaker and they will be randomly sampled from the corpus" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "embeds = []\n", + "labels = []\n", + "locations = []\n", + "\n", + "# single speaker \n", + "#num_speakers = 1\n", + "#num_utters = 1000\n", + "\n", + "# multi speaker\n", + "num_speakers = 10\n", + "num_utters = 20\n", + "\n", + "\n", + "speaker_idxs = np.random.choice(range(len(speaker_paths)), num_speakers, replace=False )\n", + "\n", + "for speaker_num, speaker_idx in enumerate(speaker_idxs):\n", + " speaker_path = speaker_paths[speaker_idx]\n", + " speakers_utter = speaker_to_utter[speaker_path]\n", + " utter_idxs = np.random.randint(0, len(speakers_utter) , num_utters)\n", + " for utter_idx in utter_idxs:\n", + " embed_path = speaker_to_utter[speaker_path][utter_idx]\n", + " embed = np.load(embed_path)\n", + " embeds.append(embed)\n", + " labels.append(str(speaker_num))\n", + " locations.append(embed_path.replace(EMBED_PATH, '').replace('.npy','.wav'))\n", + "embeds = np.concatenate(embeds)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load embeddings with UMAP" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model = umap.UMAP()\n", + "projection = model.fit_transform(embeds)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Interactively charting the data in Bokeh\n", + "\n", + "Set up various details for Bokeh to plot the data\n", + "\n", + "You can use the regular Bokeh [tools](http://docs.bokeh.org/en/1.4.0/docs/user_guide/tools.html?highlight=tools) to explore the data, with reset setting it back to normal\n", + "\n", + "Once you have started the local server (see cell below) you can then click on plotted points which will open a tab to play the audio for that point, enabling easy exploration of your corpus\n", + "\n", + "File location in the tooltip is given relative to **AUDIO_PATH**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "source_wav_stems = ColumnDataSource(\n", + " data=dict(\n", + " x = projection.T[0].tolist(),\n", + " y = projection.T[1].tolist(),\n", + " desc=locations,\n", + " label=labels\n", + " )\n", + " )\n", + "\n", + "hover = HoverTool(\n", + " tooltips=[\n", + " (\"file\", \"@desc\"),\n", + " (\"speaker\", \"@label\"),\n", + " ]\n", + " )\n", + "\n", + "# optionally consider adding these to the tooltips if you want additional detail\n", + "# for the coordinates: (\"(x,y)\", \"($x, $y)\"),\n", + "# for the index of the embedding / wav file: (\"index\", \"$index\"),\n", + "\n", + "factors = list(set(labels))\n", + "pal_size = max(len(factors), 3)\n", + "pal = Category10[pal_size]\n", + "\n", + "p = figure(plot_width=600, plot_height=400, tools=[hover,BoxZoomTool(), ResetTool(), TapTool()])\n", + "\n", + "\n", + "p.circle('x', 'y', source=source_wav_stems, color=factor_cmap('label', palette=pal, factors=factors),)\n", + "\n", + "url = \"http://localhost:8000/@desc\"\n", + "taptool = p.select(type=TapTool)\n", + "taptool.callback = OpenURL(url=url)\n", + "\n", + "show(p)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Local server to serve wav files from corpus\n", + "\n", + "This is required so that when you click on a data point the hyperlink associated with it will be served the file locally.\n", + "\n", + "There are other ways to serve this if you prefer and you can also run the commands manually on the command line\n", + "\n", + "The server will continue to run until stopped. To stop it simply interupt the kernel (ie square button or under Kernel menu)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%cd $AUDIO_PATH\n", + "%pwd\n", + "!python -m http.server" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Indic-TTS/TTS/notebooks/TestAttention.ipynb b/Indic-TTS/TTS/notebooks/TestAttention.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..65edf98ca4a5ac2028bd930b3ddfe54a60564d90 --- /dev/null +++ b/Indic-TTS/TTS/notebooks/TestAttention.ipynb @@ -0,0 +1,188 @@ +{ + "cells": [{ + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "This notebook is to test attention performance of a TTS model on a list of sentences taken from DeepVoice paper.\n", + "### Features of this notebook\n", + "- You can see visually how your model performs on each sentence and try to dicern common problems.\n", + "- At the end, final attention score would be printed showing the ultimate performace of your model. You can use this value to perform model selection.\n", + "- You can change the list of sentences byt providing a different sentence file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false", + "scrolled": true + }, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "import os, sys\n", + "import torch \n", + "import time\n", + "import numpy as np\n", + "from matplotlib import pylab as plt\n", + "\n", + "%pylab inline\n", + "plt.rcParams[\"figure.figsize\"] = (16,5)\n", + "\n", + "import librosa\n", + "import librosa.display\n", + "\n", + "from TTS.tts.layers import *\n", + "from TTS.utils.audio import AudioProcessor\n", + "from TTS.tts.utils.generic_utils import setup_model\n", + "from TTS.tts.utils.io import load_config\n", + "from TTS.tts.utils.text import text_to_sequence\n", + "from TTS.tts.utils.synthesis import synthesis\n", + "from TTS.tts.utils.visual import plot_alignment\n", + "from TTS.tts.utils.measures import alignment_diagonal_score\n", + "\n", + "import IPython\n", + "from IPython.display import Audio\n", + "\n", + "os.environ['CUDA_VISIBLE_DEVICES']='1'\n", + "\n", + "def tts(model, text, CONFIG, use_cuda, ap):\n", + " t_1 = time.time()\n", + " # run the model\n", + " waveform, alignment, mel_spec, mel_postnet_spec, stop_tokens, inputs = synthesis(model, text, CONFIG, use_cuda, ap, speaker_id, None, False, CONFIG.enable_eos_bos_chars, True)\n", + " if CONFIG.model == \"Tacotron\" and not use_gl:\n", + " mel_postnet_spec = ap.out_linear_to_mel(mel_postnet_spec.T).T\n", + " # plotting\n", + " attn_score = alignment_diagonal_score(torch.FloatTensor(alignment).unsqueeze(0))\n", + " print(f\" > {text}\")\n", + " IPython.display.display(IPython.display.Audio(waveform, rate=ap.sample_rate))\n", + " fig = plot_alignment(alignment, fig_size=(8, 5))\n", + " IPython.display.display(fig)\n", + " #saving results\n", + " os.makedirs(OUT_FOLDER, exist_ok=True)\n", + " file_name = text[:200].replace(\" \", \"_\").replace(\".\",\"\") + \".wav\"\n", + " out_path = os.path.join(OUT_FOLDER, file_name)\n", + " ap.save_wav(waveform, out_path)\n", + " return attn_score\n", + "\n", + "# Set constants\n", + "ROOT_PATH = '/home/erogol/Models/LJSpeech/ljspeech-May-20-2020_12+29PM-1835628/'\n", + "MODEL_PATH = ROOT_PATH + '/best_model.pth'\n", + "CONFIG_PATH = ROOT_PATH + '/config.json'\n", + "OUT_FOLDER = './hard_sentences/'\n", + "CONFIG = load_config(CONFIG_PATH)\n", + "SENTENCES_PATH = 'sentences.txt'\n", + "use_cuda = True\n", + "\n", + "# Set some config fields manually for testing\n", + "# CONFIG.windowing = False\n", + "# CONFIG.prenet_dropout = False\n", + "# CONFIG.separate_stopnet = True\n", + "CONFIG.use_forward_attn = False\n", + "# CONFIG.forward_attn_mask = True\n", + "# CONFIG.stopnet = True" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# LOAD TTS MODEL\n", + "from TTS.tts.utils.text.symbols import make_symbols, symbols, phonemes\n", + "\n", + "# multi speaker \n", + "if CONFIG.use_speaker_embedding:\n", + " speakers = json.load(open(f\"{ROOT_PATH}/speakers.json\", 'r'))\n", + " speakers_idx_to_id = {v: k for k, v in speakers.items()}\n", + "else:\n", + " speakers = []\n", + " speaker_id = None\n", + "\n", + "# if the vocabulary was passed, replace the default\n", + "if 'characters' in CONFIG.keys():\n", + " symbols, phonemes = make_symbols(**CONFIG.characters)\n", + "\n", + "# load the model\n", + "num_chars = len(phonemes) if CONFIG.use_phonemes else len(symbols)\n", + "model = setup_model(num_chars, len(speakers), CONFIG)\n", + "\n", + "# load the audio processor\n", + "ap = AudioProcessor(**CONFIG.audio) \n", + "\n", + "\n", + "# load model state\n", + "if use_cuda:\n", + " cp = torch.load(MODEL_PATH)\n", + "else:\n", + " cp = torch.load(MODEL_PATH, map_location=lambda storage, loc: storage)\n", + "\n", + "# load the model\n", + "model.load_state_dict(cp['model'])\n", + "if use_cuda:\n", + " model.cuda()\n", + "model.eval()\n", + "print(cp['step'])\n", + "print(cp['r'])\n", + "\n", + "# set model stepsize\n", + "if 'r' in cp:\n", + " model.decoder.set_r(cp['r'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "model.decoder.max_decoder_steps=3000\n", + "attn_scores = []\n", + "with open(SENTENCES_PATH, 'r') as f:\n", + " for text in f:\n", + " attn_score = tts(model, text, CONFIG, use_cuda, ap)\n", + " attn_scores.append(attn_score)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "np.mean(attn_scores)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/Indic-TTS/TTS/notebooks/Tutorial_1_use-pretrained-TTS.ipynb b/Indic-TTS/TTS/notebooks/Tutorial_1_use-pretrained-TTS.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..87d04c499dac7a08b20e192b2592e8af66a06cfb --- /dev/null +++ b/Indic-TTS/TTS/notebooks/Tutorial_1_use-pretrained-TTS.ipynb @@ -0,0 +1,272 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "45ea3ef5", + "metadata": { + "tags": [] + }, + "source": [ + "# Easy Inferencing with ๐Ÿธ TTS โšก\n", + "\n", + "#### You want to quicly synthesize speech using Coqui ๐Ÿธ TTS model?\n", + "\n", + "๐Ÿ’ก: Grab a pre-trained model and use it to synthesize speech using any speaker voice, including yours! โšก\n", + "\n", + "๐Ÿธ TTS comes with a list of pretrained models and speaker voices. You can even start a local demo server that you can open it on your favorite web browser and ๐Ÿ—ฃ๏ธ .\n", + "\n", + "In this notebook, we will: \n", + "```\n", + "1. List available pre-trained ๐Ÿธ TTS models\n", + "2. Run a ๐Ÿธ TTS model\n", + "3. Listen to the synthesized wave ๐Ÿ“ฃ\n", + "4. Run multispeaker ๐Ÿธ TTS model \n", + "```\n", + "So, let's jump right in!\n" + ] + }, + { + "cell_type": "markdown", + "id": "a1e5c2a5-46eb-42fd-b550-2a052546857e", + "metadata": {}, + "source": [ + "## Install ๐Ÿธ TTS โฌ‡๏ธ" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fa2aec77", + "metadata": {}, + "outputs": [], + "source": [ + "! pip install -U pip\n", + "! pip install TTS" + ] + }, + { + "cell_type": "markdown", + "id": "8c07a273", + "metadata": {}, + "source": [ + "## โœ… List available pre-trained ๐Ÿธ TTS models\n", + "\n", + "Coqui ๐ŸธTTS comes with a list of pretrained models for different model types (ex: TTS, vocoder), languages, datasets used for training and architectures. \n", + "\n", + "You can either use your own model or the release models under ๐ŸธTTS.\n", + "\n", + "Use `tts --list_models` to find out the availble models.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "608d203f", + "metadata": {}, + "outputs": [], + "source": [ + "! tts --list_models" + ] + }, + { + "cell_type": "markdown", + "id": "ed9dd7ab", + "metadata": {}, + "source": [ + "## โœ… Run a ๐Ÿธ TTS model\n", + "\n", + "#### **First things first**: Using a release model and default vocoder:\n", + "\n", + "You can simply copy the full model name from the list above and use it \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cc9e4608-16ec-4dcd-bd6b-bd10d62286f8", + "metadata": {}, + "outputs": [], + "source": [ + "!tts --text \"hello world\" \\\n", + "--model_name \"tts_models/en/ljspeech/glow-tts\" \\\n", + "--out_path output.wav\n" + ] + }, + { + "cell_type": "markdown", + "id": "0ca2cb14-1aba-400e-a219-8ce44d9410be", + "metadata": {}, + "source": [ + "## ๐Ÿ“ฃ Listen to the synthesized wave ๐Ÿ“ฃ" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5fe63ef4-9284-4461-9dda-1ca7483a8f9b", + "metadata": {}, + "outputs": [], + "source": [ + "import IPython\n", + "IPython.display.Audio(\"output.wav\")" + ] + }, + { + "cell_type": "markdown", + "id": "5e67d178-1ebe-49c7-9a47-0593251bdb96", + "metadata": {}, + "source": [ + "### **Second things second**:\n", + "\n", + "๐Ÿ”ถ A TTS model can be either trained on a single speaker voice or multispeaker voices. This training choice is directly reflected on the inference ability and the available speaker voices that can be used to synthesize speech. \n", + "\n", + "๐Ÿ”ถ If you want to run a multispeaker model from the released models list, you can first check the speaker ids using `--list_speaker_idx` flag and use this speaker voice to synthesize speech." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87b18839-f750-4a61-bbb0-c964acaecab2", + "metadata": {}, + "outputs": [], + "source": [ + "# list the possible speaker IDs.\n", + "!tts --model_name \"tts_models/en/vctk/vits\" \\\n", + "--list_speaker_idxs \n" + ] + }, + { + "cell_type": "markdown", + "id": "c4365a9d-f922-4b14-88b0-d2b22a245b2e", + "metadata": {}, + "source": [ + "## ๐Ÿ’ฌ Synthesize speech using speaker ID ๐Ÿ’ฌ" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52be0403-d13e-4d9b-99c2-c10b85154063", + "metadata": {}, + "outputs": [], + "source": [ + "!tts --text \"Trying out specific speaker voice\"\\\n", + "--out_path spkr-out.wav --model_name \"tts_models/en/vctk/vits\" \\\n", + "--speaker_idx \"p341\"" + ] + }, + { + "cell_type": "markdown", + "id": "894a560a-f9c8-48ce-aaa6-afdf516c01f6", + "metadata": {}, + "source": [ + "## ๐Ÿ“ฃ Listen to the synthesized speaker specific wave ๐Ÿ“ฃ" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed485b0a-dfd5-4a7e-a571-ebf74bdfc41d", + "metadata": {}, + "outputs": [], + "source": [ + "import IPython\n", + "IPython.display.Audio(\"spkr-out.wav\")" + ] + }, + { + "cell_type": "markdown", + "id": "84636a38-097e-4dad-933b-0aeaee650e92", + "metadata": {}, + "source": [ + "๐Ÿ”ถ If you want to use an external speaker to synthesize speech, you need to supply `--speaker_wav` flag along with an external speaker encoder path and config file, as follows:" + ] + }, + { + "cell_type": "markdown", + "id": "cbdb15fa-123a-4282-a127-87b50dc70365", + "metadata": {}, + "source": [ + "First we need to get the speaker encoder model, its config and a referece `speaker_wav`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e54f1b13-560c-4fed-bafd-e38ec9712359", + "metadata": {}, + "outputs": [], + "source": [ + "!wget https://github.com/coqui-ai/TTS/releases/download/speaker_encoder_model/config_se.json\n", + "!wget https://github.com/coqui-ai/TTS/releases/download/speaker_encoder_model/model_se.pth.tar\n", + "!wget https://github.com/coqui-ai/TTS/raw/speaker_encoder_model/tests/data/ljspeech/wavs/LJ001-0001.wav" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6dac1912-5054-4a68-8357-6d20fd99cb10", + "metadata": {}, + "outputs": [], + "source": [ + "!tts --model_name tts_models/multilingual/multi-dataset/your_tts \\\n", + "--encoder_path model_se.pth.tar \\\n", + "--encoder_config config_se.json \\\n", + "--speaker_wav LJ001-0001.wav \\\n", + "--text \"Are we not allowed to dim the lights so people can see that a bit better?\"\\\n", + "--out_path spkr-out.wav \\\n", + "--language_idx \"en\"" + ] + }, + { + "cell_type": "markdown", + "id": "92ddce58-8aca-4f69-84c3-645ae1b12e7d", + "metadata": {}, + "source": [ + "## ๐Ÿ“ฃ Listen to the synthesized speaker specific wave ๐Ÿ“ฃ" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cc889adc-9c71-4232-8e85-bfc8f76476f4", + "metadata": {}, + "outputs": [], + "source": [ + "import IPython\n", + "IPython.display.Audio(\"spkr-out.wav\")" + ] + }, + { + "cell_type": "markdown", + "id": "29101d01-0b01-4153-a216-5dae415a5dd6", + "metadata": {}, + "source": [ + "## ๐ŸŽ‰ Congratulations! ๐ŸŽ‰ You now know how to use a TTS model to synthesize speech! \n", + "Follow up with the next tutorials to learn more adnavced material." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Indic-TTS/TTS/notebooks/Tutorial_2_train_your_first_TTS_model.ipynb b/Indic-TTS/TTS/notebooks/Tutorial_2_train_your_first_TTS_model.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..7f324bec557c687dacb7bf44fe7fad85c3c06243 --- /dev/null +++ b/Indic-TTS/TTS/notebooks/Tutorial_2_train_your_first_TTS_model.ipynb @@ -0,0 +1,454 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f79d99ef", + "metadata": {}, + "source": [ + "# Train your first ๐Ÿธ TTS model ๐Ÿ’ซ\n", + "\n", + "### ๐Ÿ‘‹ Hello and welcome to Coqui (๐Ÿธ) TTS\n", + "\n", + "The goal of this notebook is to show you a **typical workflow** for **training** and **testing** a TTS model with ๐Ÿธ.\n", + "\n", + "Let's train a very small model on a very small amount of data so we can iterate quickly.\n", + "\n", + "In this notebook, we will:\n", + "\n", + "1. Download data and format it for ๐Ÿธ TTS.\n", + "2. Configure the training and testing runs.\n", + "3. Train a new model.\n", + "4. Test the model and display its performance.\n", + "\n", + "So, let's jump right in!\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fa2aec78", + "metadata": {}, + "outputs": [], + "source": [ + "## Install Coqui TTS\n", + "! pip install -U pip\n", + "! pip install TTS" + ] + }, + { + "cell_type": "markdown", + "id": "be5fe49c", + "metadata": {}, + "source": [ + "## โœ… Data Preparation\n", + "\n", + "### **First things first**: we need some data.\n", + "\n", + "We're training a Text-to-Speech model, so we need some _text_ and we need some _speech_. Specificially, we want _transcribed speech_. The speech must be divided into audio clips and each clip needs transcription. More details about data requirements such as recording characteristics, background noise abd vocabulary coverage can be found in the [๐ŸธTTS documentation](https://tts.readthedocs.io/en/latest/formatting_your_dataset.html).\n", + "\n", + "If you have a single audio file and you need to **split** it into clips. It is also important to use a lossless audio file format to prevent compression artifacts. We recommend using **wav** file format.\n", + "\n", + "The data format we will be adopting for this tutorial is taken from the widely-used **LJSpeech** dataset, where **waves** are collected under a folder:\n", + "\n", + "\n", + "/wavs
\n", + "  | - audio1.wav
\n", + "  | - audio2.wav
\n", + "  | - audio3.wav
\n", + " ...
\n", + "
\n", + "\n", + "and a **metadata.csv** file will have the audio file name in parallel to the transcript, delimited by `|`: \n", + " \n", + "\n", + "# metadata.csv
\n", + "audio1|This is my sentence.
\n", + "audio2|This is maybe my sentence.
\n", + "audio3|This is certainly my sentence.
\n", + "audio4|Let this be your sentence.
\n", + "...\n", + "
\n", + "\n", + "In the end, we should have the following **folder structure**:\n", + "\n", + "\n", + "/MyTTSDataset
\n", + " |
\n", + " | -> metadata.txt
\n", + " | -> /wavs
\n", + "  | -> audio1.wav
\n", + "  | -> audio2.wav
\n", + "  | ...
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "69501a10-3b53-4e75-ae66-90221d6f2271", + "metadata": {}, + "source": [ + "๐ŸธTTS already provides tooling for the _LJSpeech_. if you use the same format, you can start training your models right away.
\n", + "\n", + "After you collect and format your dataset, you need to check two things. Whether you need a **_formatter_** and a **_text_cleaner_**.
The **_formatter_** loads the text file (created above) as a list and the **_text_cleaner_** performs a sequence of text normalization operations that converts the raw text into the spoken representation (e.g. converting numbers to text, acronyms, and symbols to the spoken format).\n", + "\n", + "If you use a different dataset format then the LJSpeech or the other public datasets that ๐ŸธTTS supports, then you need to write your own **_formatter_** and **_text_cleaner_**." + ] + }, + { + "cell_type": "markdown", + "id": "e7f226c8-4e55-48fa-937b-8415d539b17c", + "metadata": {}, + "source": [ + "## โณ๏ธ Loading your dataset\n", + "Load one of the dataset supported by ๐ŸธTTS.\n", + "\n", + "We will start by defining dataset config and setting LJSpeech as our target dataset and define its path.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "b3cb0191-b8fc-4158-bd26-8423c2a8ba66", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "# BaseDatasetConfig: defines name, formatter and path of the dataset.\n", + "from TTS.tts.configs.shared_configs import BaseDatasetConfig\n", + "\n", + "output_path = \"tts_train_dir\"\n", + "if not os.path.exists(output_path):\n", + " os.makedirs(output_path)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae6b7019-3685-4b48-8917-c152e288d7e3", + "metadata": {}, + "outputs": [], + "source": [ + "# Download and extract LJSpeech dataset.\n", + "\n", + "!wget -O $output_path/LJSpeech-1.1.tar.bz2 https://data.keithito.com/data/speech/LJSpeech-1.1.tar.bz2 \n", + "!tar -xf $output_path/LJSpeech-1.1.tar.bz2 -C $output_path" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "76cd3ab5-6387-45f1-b488-24734cc1beb5", + "metadata": {}, + "outputs": [], + "source": [ + "dataset_config = BaseDatasetConfig(\n", + " name=\"ljspeech\", meta_file_train=\"metadata.csv\", path=os.path.join(output_path, \"LJSpeech-1.1/\")\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "ae82fd75", + "metadata": {}, + "source": [ + "## โœ… Train a new model\n", + "\n", + "Let's kick off a training run ๐Ÿš€๐Ÿš€๐Ÿš€.\n", + "\n", + "Deciding on the model architecture you'd want to use is based on your needs and available resources. Each model architecture has it's pros and cons that define the run-time efficiency and the voice quality.\n", + "We have many recipes under `TTS/recipes/` that provide a good starting point. For this tutorial, we will be using `GlowTTS`." + ] + }, + { + "cell_type": "markdown", + "id": "f5876e46-2aee-4bcf-b6b3-9e3c535c553f", + "metadata": {}, + "source": [ + "We will begin by initializing the model training configuration." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5483ca28-39d6-49f8-a18e-4fb53c50ad84", + "metadata": {}, + "outputs": [], + "source": [ + "# GlowTTSConfig: all model related values for training, validating and testing.\n", + "from TTS.tts.configs.glow_tts_config import GlowTTSConfig\n", + "config = GlowTTSConfig(\n", + " batch_size=32,\n", + " eval_batch_size=16,\n", + " num_loader_workers=4,\n", + " num_eval_loader_workers=4,\n", + " run_eval=True,\n", + " test_delay_epochs=-1,\n", + " epochs=100,\n", + " text_cleaner=\"phoneme_cleaners\",\n", + " use_phonemes=True,\n", + " phoneme_language=\"en-us\",\n", + " phoneme_cache_path=os.path.join(output_path, \"phoneme_cache\"),\n", + " print_step=25,\n", + " print_eval=False,\n", + " mixed_precision=True,\n", + " output_path=output_path,\n", + " datasets=[dataset_config],\n", + " save_step=1000,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "b93ed377-80b7-447b-bd92-106bffa777ee", + "metadata": {}, + "source": [ + "Next we will initialize the audio processor which is used for feature extraction and audio I/O." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b1b12f61-f851-4565-84dd-7640947e04ab", + "metadata": {}, + "outputs": [], + "source": [ + "from TTS.utils.audio import AudioProcessor\n", + "ap = AudioProcessor.init_from_config(config)" + ] + }, + { + "cell_type": "markdown", + "id": "1d461683-b05e-403f-815f-8007bda08c38", + "metadata": {}, + "source": [ + "Next we will initialize the tokenizer which is used to convert text to sequences of token IDs. If characters are not defined in the config, default characters are passed to the config." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "014879b7-f18d-44c0-b24a-e10f8002113a", + "metadata": {}, + "outputs": [], + "source": [ + "from TTS.tts.utils.text.tokenizer import TTSTokenizer\n", + "tokenizer, config = TTSTokenizer.init_from_config(config)" + ] + }, + { + "cell_type": "markdown", + "id": "df3016e1-9e99-4c4f-94e3-fa89231fd978", + "metadata": {}, + "source": [ + "Next we will load data samples. Each sample is a list of ```[text, audio_file_path, speaker_name]```. You can define your custom sample loader returning the list of samples." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cadd6ada-c8eb-4f79-b8fe-6d72850af5a7", + "metadata": {}, + "outputs": [], + "source": [ + "from TTS.tts.datasets import load_tts_samples\n", + "train_samples, eval_samples = load_tts_samples(\n", + " dataset_config,\n", + " eval_split=True,\n", + " eval_split_max_size=config.eval_split_max_size,\n", + " eval_split_size=config.eval_split_size,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "db8b451e-1fe1-4aa3-b69e-ab22b925bd19", + "metadata": {}, + "source": [ + "Now we're ready to initialize the model.\n", + "\n", + "Models take a config object and a speaker manager as input. Config defines the details of the model like the number of layers, the size of the embedding, etc. Speaker manager is used by multi-speaker models." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ac2ffe3e-ad0c-443e-800c-9b076ee811b4", + "metadata": {}, + "outputs": [], + "source": [ + "from TTS.tts.models.glow_tts import GlowTTS\n", + "model = GlowTTS(config, ap, tokenizer, speaker_manager=None)" + ] + }, + { + "cell_type": "markdown", + "id": "e2832c56-889d-49a6-95b6-eb231892ecc6", + "metadata": {}, + "source": [ + "Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, distributed training, etc." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f609945-4fe0-4d0d-b95e-11d7bfb63ebe", + "metadata": {}, + "outputs": [], + "source": [ + "from trainer import Trainer, TrainerArgs\n", + "trainer = Trainer(\n", + " TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "5b320831-dd83-429b-bb6a-473f9d49d321", + "metadata": {}, + "source": [ + "### AND... 3,2,1... START TRAINING ๐Ÿš€๐Ÿš€๐Ÿš€" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d4c07f99-3d1d-4bea-801e-9f33bbff0e9f", + "metadata": {}, + "outputs": [], + "source": [ + "trainer.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "4cff0c40-2734-40a6-a905-e945a9fb3e98", + "metadata": {}, + "source": [ + "#### ๐Ÿš€ Run the Tensorboard. ๐Ÿš€\n", + "On the notebook and Tensorboard, you can monitor the progress of your model. Also Tensorboard provides certain figures and sample outputs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a85cd3b-1646-40ad-a6c2-49323e08eeec", + "metadata": {}, + "outputs": [], + "source": [ + "!pip install tensorboard\n", + "!tensorboard --logdir=tts_train_dir" + ] + }, + { + "cell_type": "markdown", + "id": "9f6dc959", + "metadata": {}, + "source": [ + "## โœ… Test the model\n", + "\n", + "We made it! ๐Ÿ™Œ\n", + "\n", + "Let's kick off the testing run, which displays performance metrics.\n", + "\n", + "We're committing the cardinal sin of ML ๐Ÿ˜ˆ (aka - testing on our training data) so you don't want to deploy this model into production. In this notebook we're focusing on the workflow itself, so it's forgivable ๐Ÿ˜‡\n", + "\n", + "You can see from the test output that our tiny model has overfit to the data, and basically memorized this one sentence.\n", + "\n", + "When you start training your own models, make sure your testing data doesn't include your training data ๐Ÿ˜…" + ] + }, + { + "cell_type": "markdown", + "id": "99fada7a-592f-4a09-9369-e6f3d82de3a0", + "metadata": {}, + "source": [ + "Let's get the latest saved checkpoint. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6dd47ed5-da8e-4bf9-b524-d686630d6961", + "metadata": {}, + "outputs": [], + "source": [ + "import glob, os\n", + "output_path = \"tts_train_dir\"\n", + "ckpts = sorted([f for f in glob.glob(output_path+\"/*/*.pth\")])\n", + "configs = sorted([f for f in glob.glob(output_path+\"/*/*.json\")])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd42bc7a", + "metadata": {}, + "outputs": [], + "source": [ + " !tts --text \"Text for TTS\" \\\n", + " --model_path $test_ckpt \\\n", + " --config_path $test_config \\\n", + " --out_path out.wav" + ] + }, + { + "cell_type": "markdown", + "id": "81cbcb3f-d952-469b-a0d8-8941cd7af670", + "metadata": {}, + "source": [ + "## ๐Ÿ“ฃ Listen to the synthesized wave ๐Ÿ“ฃ" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e0000bd6-6763-4a10-a74d-911dd08ebcff", + "metadata": {}, + "outputs": [], + "source": [ + "import IPython\n", + "IPython.display.Audio(\"out.wav\")" + ] + }, + { + "cell_type": "markdown", + "id": "13914401-cad1-494a-b701-474e52829138", + "metadata": {}, + "source": [ + "## ๐ŸŽ‰ Congratulations! ๐ŸŽ‰ You now have trained your first TTS model! \n", + "Follow up with the next tutorials to learn more advanced material." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "950d9fc6-896f-4a2c-86fd-8fd1fcbbb3f7", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Indic-TTS/TTS/notebooks/dataset_analysis/AnalyzeDataset.ipynb b/Indic-TTS/TTS/notebooks/dataset_analysis/AnalyzeDataset.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..519638472c939b9e8753316252002297699d3b39 --- /dev/null +++ b/Indic-TTS/TTS/notebooks/dataset_analysis/AnalyzeDataset.ipynb @@ -0,0 +1,424 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# TTS_PATH = \"/home/erogol/projects/\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "import librosa\n", + "import numpy as np\n", + "import pandas as pd\n", + "from scipy.stats import norm\n", + "from tqdm import tqdm_notebook as tqdm\n", + "from multiprocessing import Pool\n", + "from matplotlib import pylab as plt\n", + "from collections import Counter\n", + "from TTS.config.shared_configs import BaseDatasetConfig\n", + "from TTS.tts.datasets import load_tts_samples\n", + "from TTS.tts.datasets.formatters import *\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "NUM_PROC = 8\n", + "DATASET_CONFIG = BaseDatasetConfig(\n", + " name=\"ljspeech\", meta_file_train=\"metadata.csv\", path=\"/home/ubuntu/TTS/depot/data/male_dataset1_44k/\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def formatter(root_path, meta_file, **kwargs): # pylint: disable=unused-argument\n", + " txt_file = os.path.join(root_path, meta_file)\n", + " items = []\n", + " speaker_name = \"maledataset1\"\n", + " with open(txt_file, \"r\", encoding=\"utf-8\") as ttf:\n", + " for line in ttf:\n", + " cols = line.split(\"|\")\n", + " wav_file = os.path.join(root_path, \"wavs\", cols[0])\n", + " text = cols[1]\n", + " items.append([text, wav_file, speaker_name])\n", + " return items" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# use your own preprocessor at this stage - TTS/datasets/proprocess.py\n", + "train_samples, eval_samples = load_tts_samples(DATASET_CONFIG, eval_split=True, formatter=formatter)\n", + "items = train_samples + eval_samples\n", + "print(\" > Number of audio files: {}\".format(len(items)))\n", + "print(items[1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# check wavs if exist\n", + "wav_files = []\n", + "for item in items:\n", + " wav_file = item[1].strip()\n", + " wav_files.append(wav_file)\n", + " if not os.path.exists(wav_file):\n", + " print(waf_path)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# show duplicate items\n", + "c = Counter(wav_files)\n", + "print([item for item, count in c.items() if count > 1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "item" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "def load_item(item):\n", + " text = item[0].strip()\n", + " file_name = item[1].strip()\n", + " audio, sr = librosa.load(file_name, sr=None)\n", + " audio_len = len(audio) / sr\n", + " text_len = len(text)\n", + " return file_name, text, text_len, audio, audio_len\n", + "\n", + "# This will take a while depending on size of dataset\n", + "if NUM_PROC == 1:\n", + " data = []\n", + " for m in tqdm(items):\n", + " data += [load_item(m)]\n", + "else:\n", + " with Pool(8) as p:\n", + " data = list(tqdm(p.imap(load_item, items), total=len(items)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# count words in the dataset\n", + "w_count = Counter()\n", + "for item in tqdm(data):\n", + " text = item[1].lower().strip()\n", + " for word in text.split():\n", + " w_count[word] += 1\n", + "print(\" > Number of words: {}\".format(len(w_count)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "text_vs_durs = {} # text length vs audio duration\n", + "text_len_counter = Counter() # number of sentences with the keyed length\n", + "for item in tqdm(data):\n", + " text = item[1].lower().strip()\n", + " text_len = len(text)\n", + " text_len_counter[text_len] += 1\n", + " audio_len = item[-1]\n", + " try:\n", + " text_vs_durs[text_len] += [audio_len]\n", + " except:\n", + " text_vs_durs[text_len] = [audio_len]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# text_len vs avg_audio_len, median_audio_len, std_audio_len\n", + "text_vs_avg = {}\n", + "text_vs_median = {}\n", + "text_vs_std = {}\n", + "for key, durs in text_vs_durs.items():\n", + " text_vs_avg[key] = np.mean(durs)\n", + " text_vs_median[key] = np.median(durs)\n", + " text_vs_std[key] = np.std(durs)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### Avg audio length per char" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "for item in data:\n", + " if item[-1] < 2:\n", + " print(item)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "sec_per_chars = []\n", + "for item in data:\n", + " text = item[1]\n", + " dur = item[-1]\n", + " sec_per_char = dur / len(text)\n", + " sec_per_chars.append(sec_per_char)\n", + "# sec_per_char /= len(data)\n", + "# print(sec_per_char)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "mean = np.mean(sec_per_chars)\n", + "std = np.std(sec_per_chars)\n", + "print(mean)\n", + "print(std)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "dist = norm(mean, std)\n", + "\n", + "# find irregular instances long or short voice durations\n", + "for item in data:\n", + " text = item[1]\n", + " dur = item[-1]\n", + " sec_per_char = dur / len(text)\n", + " pdf =norm.pdf(sec_per_char)\n", + " if pdf < 0.39:\n", + " print(item)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### Plot Dataset Statistics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "plt.title(\"text length vs mean audio duration\")\n", + "plt.scatter(list(text_vs_avg.keys()), list(text_vs_avg.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "plt.title(\"text length vs median audio duration\")\n", + "plt.scatter(list(text_vs_median.keys()), list(text_vs_median.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "plt.title(\"text length vs STD\")\n", + "plt.scatter(list(text_vs_std.keys()), list(text_vs_std.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "plt.title(\"text length vs # instances\")\n", + "plt.scatter(list(text_len_counter.keys()), list(text_len_counter.values()))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### Check words frequencies" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "w_count_df = pd.DataFrame.from_dict(w_count, orient='index')\n", + "w_count_df.sort_values(0, ascending=False, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false", + "scrolled": true + }, + "outputs": [], + "source": [ + "w_count_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# check a certain word\n", + "w_count_df.at['minute', 0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# fequency bar plot - it takes time!!\n", + "w_count_df.plot.bar()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Indic-TTS/TTS/notebooks/dataset_analysis/CheckDatasetSNR.ipynb b/Indic-TTS/TTS/notebooks/dataset_analysis/CheckDatasetSNR.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..18c48d0bd181830fe096852dfdfe30cba1bc47b4 --- /dev/null +++ b/Indic-TTS/TTS/notebooks/dataset_analysis/CheckDatasetSNR.ipynb @@ -0,0 +1,210 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook computes the average SNR a given Voice Dataset. If the SNR is too low, that might reduce the performance or prevent model to learn. SNR paper can be seen here: https://www.cs.cmu.edu/~robust/Papers/KimSternIS08.pdf\n", + "\n", + "To use this notebook, you need:\n", + "- WADA SNR estimation: http://www.cs.cmu.edu/~robust/archive/algorithms/WADA_SNR_IS_2008/\n", + " 1. extract in the same folder as this notebook\n", + " 2. under MacOS you'll have to rebuild the executable. In the build folder: 1) remove existing .o files and 2) run make\n", + "\n", + "\n", + "- FFMPEG: ```sudo apt-get install ffmpeg ``` \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import glob\n", + "import subprocess\n", + "import IPython\n", + "import soundfile as sf\n", + "import numpy as np\n", + "from tqdm import tqdm\n", + "from multiprocessing import Pool\n", + "from matplotlib import pylab as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Set the meta parameters\n", + "DATA_PATH = \"/home/erogol/Data/m-ai-labs/de_DE/by_book/female/eva_k/\"\n", + "NUM_PROC = 1\n", + "CURRENT_PATH = os.getcwd()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "def compute_file_snr(file_path):\n", + " \"\"\" Convert given file to required format with FFMPEG and process with WADA.\"\"\"\n", + " _, sr = sf.read(file_path)\n", + " new_file = file_path.replace(\".wav\", \"_tmp.wav\")\n", + " if sr != 16000:\n", + " command = f'ffmpeg -i \"{file_path}\" -ac 1 -acodec pcm_s16le -y -ar 16000 \"{new_file}\"'\n", + " else:\n", + " command = f'cp \"{file_path}\" \"{new_file}\"'\n", + " os.system(command)\n", + " command = [f'\"{CURRENT_PATH}/WadaSNR/Exe/WADASNR\"', f'-i \"{new_file}\"', f'-t \"{CURRENT_PATH}/WadaSNR/Exe/Alpha0.400000.txt\"', '-ifmt mswav']\n", + " output = subprocess.check_output(\" \".join(command), shell=True)\n", + " try:\n", + " output = float(output.split()[-3].decode(\"utf-8\"))\n", + " except:\n", + " raise RuntimeError(\" \".join(command))\n", + " os.system(f'rm \"{new_file}\"')\n", + " return output, file_path\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "wav_file = \"/home/erogol/Data/LJSpeech-1.1/wavs/LJ001-0001.wav\"\n", + "output = compute_file_snr(wav_file)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "wav_files = glob.glob(f\"{DATA_PATH}/**/*.wav\", recursive=True)\n", + "print(f\" > Number of wav files {len(wav_files)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if NUM_PROC == 1:\n", + " file_snrs = [None] * len(wav_files) \n", + " for idx, wav_file in tqdm(enumerate(wav_files)):\n", + " tup = compute_file_snr(wav_file)\n", + " file_snrs[idx] = tup\n", + "else:\n", + " with Pool(NUM_PROC) as pool:\n", + " file_snrs = list(tqdm(pool.imap(compute_file_snr, wav_files), total=len(wav_files)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "snrs = [tup[0] for tup in file_snrs]\n", + "\n", + "error_idxs = np.where(np.isnan(snrs) == True)[0]\n", + "error_files = [wav_files[idx] for idx in error_idxs]\n", + "\n", + "file_snrs = [i for j, i in enumerate(file_snrs) if j not in error_idxs]\n", + "file_names = [tup[1] for tup in file_snrs]\n", + "snrs = [tup[0] for tup in file_snrs]\n", + "file_idxs = np.argsort(snrs)\n", + "\n", + "\n", + "print(f\" > Average SNR of the dataset:{np.mean(snrs)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def output_snr_with_audio(idx):\n", + " file_idx = file_idxs[idx]\n", + " file_name = file_names[file_idx]\n", + " wav, sr = sf.read(file_name)\n", + " # multi channel to single channel\n", + " if len(wav.shape) == 2:\n", + " wav = wav[:, 0]\n", + " print(f\" > {file_name} - snr:{snrs[file_idx]}\")\n", + " IPython.display.display(IPython.display.Audio(wav, rate=sr))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# find worse SNR files\n", + "N = 10 # number of files to fetch\n", + "for i in range(N):\n", + " output_snr_with_audio(i)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# find best recordings\n", + "N = 10 # number of files to fetch\n", + "for i in range(N):\n", + " output_snr_with_audio(-i-1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.hist(snrs, bins=100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Indic-TTS/TTS/notebooks/dataset_analysis/CheckPitch.ipynb b/Indic-TTS/TTS/notebooks/dataset_analysis/CheckPitch.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..72afbc64a17e2a46d1d2d5336990f01eb620ca20 --- /dev/null +++ b/Indic-TTS/TTS/notebooks/dataset_analysis/CheckPitch.ipynb @@ -0,0 +1,179 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "source": [ + "%load_ext autoreload\n", + "%autoreload 2" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 9, + "source": [ + "import numpy as np\n", + "import glob\n", + "from TTS.utils.audio import AudioProcessor\n", + "from TTS.config.shared_configs import BaseAudioConfig\n", + "from TTS.tts.utils.visual import plot_pitch" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 13, + "source": [ + "pitch_path = \"/home/ubuntu/TTS/recipes/ljspeech/fast_pitch/f0_cache\"\n", + "wav_path = \"/home/ubuntu/TTS/recipes/ljspeech/LJSpeech-1.1/wavs\"\n", + "wav_files = glob.glob(\"/home/ubuntu/TTS/recipes/ljspeech/LJSpeech-1.1/wavs/*.wav\")\n", + "print(len(wav_files))" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "13100\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 20, + "source": [ + "ap = AudioProcessor(**BaseAudioConfig( sample_rate=22050,\n", + " do_trim_silence=True,\n", + " trim_db=60.0,\n", + " signal_norm=False,\n", + " mel_fmin=0.0,\n", + " mel_fmax=8000,\n", + " spec_gain=1.0,\n", + " log_func=\"np.log\",\n", + " ref_level_db=20,\n", + " preemphasis=0.0,))" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " > Setting up Audio Processor...\n", + " | > sample_rate:22050\n", + " | > resample:False\n", + " | > num_mels:80\n", + " | > log_func:np.log\n", + " | > min_level_db:-100\n", + " | > frame_shift_ms:None\n", + " | > frame_length_ms:None\n", + " | > ref_level_db:20\n", + " | > fft_size:1024\n", + " | > power:1.5\n", + " | > preemphasis:0.0\n", + " | > griffin_lim_iters:60\n", + " | > signal_norm:False\n", + " | > symmetric_norm:True\n", + " | > mel_fmin:0\n", + " | > mel_fmax:8000\n", + " | > spec_gain:1.0\n", + " | > stft_pad_mode:reflect\n", + " | > max_norm:4.0\n", + " | > clip_norm:True\n", + " | > do_trim_silence:True\n", + " | > trim_db:60.0\n", + " | > do_sound_norm:False\n", + " | > do_amp_to_db_linear:True\n", + " | > do_amp_to_db_mel:True\n", + " | > stats_path:None\n", + " | > base:2.718281828459045\n", + " | > hop_length:256\n", + " | > win_length:1024\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 15, + "source": [ + "pitch_files = [wf.replace(\".wav\", \"_pitch.npy\").replace(wav_path, pitch_path) for wf in wav_files]" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 30, + "source": [ + "idx = 100\n", + "# wav_file = wav_files[idx]\n", + "# pitch_file = pitch_files[idx]\n", + "wav_file = \"/home/ubuntu/TTS/recipes/ljspeech/fast_pitch/../LJSpeech-1.1/wavs/LJ011-0097.wav\"\n", + "pitch_file = \"/home/ubuntu/TTS/recipes/ljspeech/fast_pitch/f0_cache/LJ011-0097_pitch.npy\"\n", + "pitch = np.load(pitch_file)\n", + "wav = ap.load_wav(wav_file)\n", + "spec = ap.melspectrogram(wav)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 31, + "source": [ + "plot_pitch(pitch, spec.T)" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABuIAAAJNCAYAAADEcGOGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd5gkR2E3/m91mLB570465ZwTp3zKIAkQIEQQRoAJNmAZjAMGB2z8w/b7mtcBMMY2GJNFkEAEESURhFBEOed0p3j5Nk/s7vr9cSvp9ro29HdnZ3dmvp/n0SOpZ2qrprq6urqqq8pYayEiIiIiIiIiIiIiIiIijeUtdgJERERERERERERERERE2pEG4kREREREREREREREREQWgAbiRERERERERERERERERBaABuJEREREREREREREREREFoAG4kREREREREREREREREQWgAbiRERERERERERERERERBZAsNgJmCtjjPX8sClxWdOUaObN2ObFxeYJk0bbKsPDTcx/tEKZbGZ+tAj6Gk2YQO17AmzIXQAeewKI6BK2kmyF08amsQV+WzPvowB5fyOLludRFQk84sQ1+xZlyRhboEgiZgpJs39YK2Rks7VpnjS7jqS1SjrbFVElt8zzHoNtfrZxe4tPYyv8uDZ+UDdN/G3NbpP7RKAmn2rDNOWb3iZc+mWrre83pFZo3zWzX77p99927kumfhuXIYmNrLWtd4W3zECc54c47i3/nDlcTHTgJrnMQQAA9W6uhJuYiy83RnSWcf1yiMkxUC/KHmZ8Ty4fq8u4H2diLr6u9dnDsee6NsCFi/NchcakMyhx+RiUqGDw6tnDJGSNx96YuzZwZbL/weHMYUyVuNgAwCPvzDFZmRAe/KtBKtzRBz1Jhcv52S+A+zbsSsVVGstT4YxPNlbGs1fm4VbmSRXID5N1wkT2MH6Vyw+/RgVDUOHi23hs9jzx9x2n4jplrzVUuFW9T2cOs1MwSsUVkwszPFZZSYXbUu/OHKbHrzYtLgC47qn9M4cpjxSouFDj8t/UyZcjiHBetbltayaN28JlD8PWP6yglL3eKgyRdStdJ3NtC7+cPZxfIdtNZOehVyMKZUK2tcg0WrJNWF2RvQ7acBz3cBn1kI1yMlg4lj1PctwtEYWt3Pnu2pi9LAfjRKUFwCtz142pc5WyYTr5a9xvg8fdE22R6Dxir222Soi5/E8KxG8ju0TZMsJaf/qyzGEm9iD7VsgiudNd2U94bozLx3CUa5QEG8lngP7s7eTaTkUqrqGDuA7eeg8RiLzX0M+kE1yEIdEmZJ9/a91cpRARp5vpfwaAkMzHro3cxZ3bRHR4sPcodtCbrcur2esgU+Get3/+6CfKVMBF1nIjhyIiIiIiIiIiIiIiIiKtQANxIiIiIiIiIiIiIiIiIgtAA3EiIiIiIiIiIiIiIiIiC0ADcSIiIiIiIiIiIiIiIiILQANxIiIiIiIiIiIiIiIiIgsgWOwEZBHnTOYwSZg9nqiQPR4AiLqoYDAxGS7Jnk4TWyquuMjliVfPHibJcWk0XDAqjQBgiWHs3DD524hzDQARed5Mkj2MX6Gigl/l8sSvcvExvIhLY2Eo4iI0xHlLiJMGwOZzVDjkmcqVSyN8Lv9zPle59gbZC9ey7hIVV63mU+Fswr1Hk+Sz50lcJN/ZGeLqHwZTHwNAwmU/6mTdaomynMtx9Ug3UY4BIE/cFAd8rvxXLFGPAEjQvLJVSrg60icbJSv7xzKHeXI8T8VFNpsA8rqxxC2AaY8AgCXTaGpkOCKdHhsXeeKYdppXZ9vkXDjrcdc2c5+KyfaPV+cKpR9k/21+iav/kxx3AZg6127Kb81+v8mNcvV/1EMFQ9xFVibEe8t+hSvH9S4uXHl59i6dIhUTEDDPKABMzJVJr5S9ovTq5HXTQ3bmMM9gbD4mZMdRM5GXGlv/2BzXpRkViDBF7t7mkb2u9e7s9Q/bRrAe15b0KuR1QwhHuYZTfpg8AcTzNvnYAPbRhu1L9omsZONi+uQBICb65U2Z7W+lgsEj+7cMEy7iOq7pNjnbT8hoZlxLgGbEiYiIiIiIiIiIiIiIiCwADcSJiIiIiIiIiIiIiIiILAANxImIiIiIiIiIiIiIiIgsAA3EiYiIiIiIiIiIiIiIiCwADcSJiIiIiIiIiIiIiIiILAANxImIiIiIiIiIiIiIiIgsgGCxE7DQ6j0mc5iowMVlfTJc9iQCAOJ89jBenYus3kMFA2z2IFGRiyoJicgAmIjLE9vEYeygxP22cJyLLyTiKy/jMsRwPw1hKckcJs5z59qvU8Hgl2MqnKlF2QOFza3OzUQleyCPLCNj3G97bryfCrdL92jmMF1hjYqLFdfJCqia/UbF3jeY+h8ATJw9YBKSaSQT6ZF1AohkToxxjZLhOncz3VzvzRxmPObSWCcbTjF5A+4Lstdbo2SjcGutiwpXj7PniU248h+McvnvEbcoAED22zaCEvfb2GvUEGncFjB7kCTHRRWOk5VrCzAJ99v8SvYT59W4k+1VyQvAy15IqPYggKDEtUmsIZ+JCtnbaey15pe5NJqIu2/41ezxBWUqKoQTXPnPjRGZSV5rLKZtty1g9vyPl2dvxwCAibhCaSrEDcdy+WGL5I2D5RPXG3muTYl4tgSAmMsTSzxe2pArIwlZt0aF7OHCCSoqJAGXxrgrpML5o9XMYUzC5X//YyUqXNSd/bfRdR0pKnJteaYPLihzbZLCZioYou7sF6lXZ9t2XL9duJUrW4iyx2fqZPuTvN+YmGyoEdepbXJf5mLTjDgRERERERERERERERGRBaCBOBEREREREREREREREZEFoIE4ERERERERERERERERkQWggTgRERERERERERERERGRBaCBOBEREREREREREREREZEFECx2ArLwIps5TDCRPR6/kj0MAHh1Lpxf5cIVhuLMYWq93NirXzVUuCSXPVxtIPt5BkAPKychF5/1uDxhBGUujWGJCxcT5y0JqagAcPlo/ezhrGHPGZmPea5QBrnsVbOpcBWQibLXIwAAS+RJ4FNR+RUuHydqXKHcaHozhxkqFam46mN5Kpw/yuWlV89+DQRj3HUTlKlg8CIiDFlH5sYTKpzhgsGrZS/L9Tp3rp8eH6TC9QS1zGF6A67hVCAbTqNRgQoXmuz1XTXhmsqViKt/Jqq5zGHMBFdG2PYPyHspc7ot99MQk21Cpv4BuPrOr3L5zz6nhKXsFVcSkuc6Jn9bmatcvTh7OKYduS0cV7gMkca4K3t9AAB+matb4y6yMU/UCV6NKyNeja1/uHDhWPYwha1cOe55husU8OrZ721sOfaqZCVJ1glMOAMu/61HXtvE842ZIBvJ5HkD+dtskD2czXM3btvFte1Q58ok0wfnkc+kbL3FNK8NeakFJbZPgAtGIdufJuLqBL+UvWx5FbI8jhAd1wDMbgNUOBtmL8umTj4Ak8LR7M+kJiHbFmS7yYyVqHAIsz9f2gLXJrQhWSf7ZH/TOHF/Y/oWW5hmxImIiIiIiIiIiIiIiIgsgJaaESciIiLz5yUJ9t20CQevfw4HrV8Pawx+dPSxWLvTToudNBERERERERERkbaigTgREZE21lsu49Bnn8Mh69bhsGe2/fug9etQiKYunfH7112L3/nAn+DRXXZdpJSKiIiIiIiIiIi0Hw3EiYiItAGTJNhn8xYc8ty2wbZDn3sOhz73HHYfGp5T+J5aFX//o8vw9gvfT6/BLyIiIiIiIiIiIlNpIE5ERKTFnf7gQ/i7H/0YB2zcOK+/s/qJx3HGww/hmkMObVDKREREREREREREOpu32AkQERERkrV4/6+uwle+9OV5D8I976+u+Cm8JGnI3xIREREREREREel0LTUjLqjYzGH8WvZ4TJI9HgAIylzHZW4rkUgA4TNbMoep77mciisucEVlZL9c5jBeRC6JVuGCeXUuvoCIz4upqJAf4cpW9yPZywgATBycvZwEFS4fPa74w6tnv05rvWTZIpfp66py583miOvNcvWWqdS5cPVo9i/tiKxboz7uwlnZM06FK/jZ82Ssmr2uAwCQ9Y9fNuiqVvEvP/g2XnXfPdTfGC524anB5TjquaenHD94/Xq86be34werTgAAGHJMLurmwsWF7HlS2MKVrTjH5b/1qWDwmMvNcL9tvJqnwj0+uiJzmO6wSsV16rLHqXCDwQQV7rHSysxhtlS5grx+opcKV61nr/+tz5URsMHIcN4E8f4fedtOQi4cXd91ZQ/D1j858sQx7Wuy+oEh27txnntHNDbZw/lkG40tkzYkbhxku8kGXD6aiMsTppwwz+gAf/9ly2RhKPuPK2wl2sgA/AoXztSz/zjrcwXZxGSlwGJuG2w5Trj8T7qzt7cMe43WuDQi4i4Ar5Q9L63PXaSmyj2TWp/LS6ZN7tXI/g7up8GLsl9vbF9mOMJ1pnklrjJn+juifu7Zxi+RdfJE9ucbto60m7dS4XIxd21HKwcyhzExWbcS9ygAsHmiMc/W/2Q420d2eBB9aaZCNpwMd93Q91LifmMDsnHXolpqIE5ERESAPbduwee++VUcsmHdrN+NjcHaFTvhoV12xSMrdsdDK3fDQ7vshg29/QCAi7/6XzjmmbVTwvzp1Vfg8sNXoRKSA4wiIiIiIiIiIiICQANxIiIiLeXUBx/BZ7/4LQyUy87PH9xlN9y6z754aJfd8NCuu+HRnXdBJbdtQM2vpt/k/MTZr8UlX/uvKcd2GRvBO26+Dl889azG/wAREREREREREZEOooE4ERGRVmAtLvzVtfjIZZfDn2ZtuC+e9lJ86uWvRpxhWZg799oXvzjkSLzioXunHL/whqvw3WNOxEiuZ17JFhERERERERER6WTcgsoiIiLSNIVaDf/5lUvw0R/8zDkIVw5DfPCCt+PfznltpkG45336zNcg2mGPnd5qBe+/7pd0mkVEREREREREREQDcSIiIkvaHlu24gef+Bxed9tdzs+fHlyGCy78E/zsqKPpONas2BnfPWZ16vhbb70Rewxtof+uiIiIiIiIiIhIp9NAnIiIyBJ18kOP4Sf//J84/JnnnJ/fuN8BOP/9f4YHd9t93nF99oxXYCLMTTmWS2J88JrL5/23RUREREREREREOlVL7REXlJPMYerd2ZfoSnyTOQwAeHX3nj2zCYZLVLhkeCR7XMU8FReWk3sEmdzs39mBJYeHLVuaIy5YzGQlV0QQF7gymfQWqHAmyZ5Qk/3ynFe4Wk/2glJZxuWjX6GCobiFK5Qmyp4pHsKmxQUANuzKHoasW0GWkcSS1w1RCXnkT4M/zbVmLd591fX46PcuR5C4M+DLp56BT7zyNdmWopzh0t7c3YevnvRS/PG1v5hy/DUP3Imvrj4D9+2219zjAX3aENSyh4mz32oAACbmTlxQ5Spzr5o9PjNdGZnFsiLXthgsZA/HXmu/2XIQFS7ncTfuLZXuzGGGS0UqrrEJ7v4bT2Svy4PR7G1dAPCJ8gjw90S/mj1MOEE2nEgBd9lQ/Br53FDlatfcSPbrJhivU3Fhmn1MZxWTdWst+29LcuSDA9uWIdiAfCgyXBqtz8VnmPxns5+oRwCAvG1Q6YyI/gcACCrscwMRH3mNerWYCseUEQAw1ezhbJFsFCbkdUNcp0meO9f+CHfeTEQ0rgHAy162bJ4r/wm4dhPLr2TPy6BC9hOS2c/0yXjkMwpb/8PjwkW92TvTKsu4azsocGWy+MRE5jAm4urIaHSUCgcyXEBsZWELXP6zbRlTJdugBDqN5L3N5oi+u4Arx7SY7M0h2heGjatFaUaciIjIEpKv1fHvX70Uf3/pT52DcJUwwId/5234l1efR+0HN5Ovrn4pNnX3po7/5VU/4TtWRUREREREREREOpgG4kRERJaI4x9dg8v+9XM4/6Y7nJ8/O9iP8//qj/Djo49dkPgn8gX89xmvTB0/8cnHcfrjDy5InCIiIiIiIiIiIu1MA3EiIiKL7OBn1uEr//VVfO8Tn8fhT7v3g/vtQfvhtR/9U9y39/z3g5vJ91ediDXLdkod/4urfgpvmmUyRURERERERERExE0DcSIiIotkj81b8e9f+Q6u/L+fwVn3PjTt975y5il4+wffiy195H6dGUS+j0+d9ZrU8YM2rcfr77ltweMXERERERERERFpJ+Q2ySIiIsIaGCnh3d+5AW/62R3Iz7CpcyUI8NG3vwHfO/m4JqYO+NXBR+KOPfbBMc+snXL8T6+5ApcfvgqVkNusWUREREREREREpNNoRpyIiEiTFMs1vPeS6/Gj93wOv/ujW2cchHtot13wO3/1vqYPwgEAjMEnzn5t6vAuYyN45y3XNj89IiIiIiIiIiIiLaqlZsTF+ezjhgnxC6O8yR4IgBf5VLh8yIXz+vsyh6kv55Y1i7q5ouJXs4cJJrj8r+YtFa7eN31H+ExMnP28JZuoqGA9Lk9qy4tcuJ7svy0OuTSamDtvlniNgKkPAMCQk38SMk+8KPs+XN5omYoLAVf/2CD7CTDlGhWXV+PeGdk00U2F687VM4epzVL/B/UYb/rFHfjDS6/DiuGJGb/7zLIBfOq8V+KHJx6NxPMA1yVCbtXmZzgF96zcF7886Ei8/JF7pxz/gxt+je8fsRrDXTPfTzzudMOvZK8TmPoAAMBdooDl6q2EuE+F+YiKqzskbsAAVuRmLp8uCZmRz5X6qXDPjnPhIuK+HVu2kJAMUf4D8j6avaqbjI/Lk5gIZsj8N9xlA5NweekReRlUuYo8N8z9uIQ4b7V+rgHkRWw+cnli89mvbWu4suWPcXUrfCI+9l6T4xq8TNsOAFDJHsQjr1HLNVtR6+LCMQ0FL+Ly0a9y5y0cyV4B+VXu+Rfkc5shnm0AAMQzsKmRhSvm0ugRdUmS5861qbD1D/m8x/RTkafaVMkHB7KeNEw62a2yuSQiHM8eYWEzUSGDv26SYsjFR+RJOMalkW2T1Fdm728NyDaCv3JnKhwGsqcRAOKefOYwdD1Otrcs0W4y7L2NbFtQdSRA1SWWbNuZOpknJNtVaGp8railBuJERERaiUkszrn+fvzJt36DPdcPzfjdrd1d+K9Xn4VvnnESauHSuD3/x+mvwcsevR+BfbG12Fur4H03/hL/cvYbFjFlIiIiIiIiIiIirWFp9PSJiIi0maMefgYf/fwVOOyJ9TN+r5QL8aWzT8cXXnE6xorcLNaFsnb5zvjeS1bjLXfdOOX4W+68Ed887nQ8M7B8kVImIiIiIiIiIiLSGrRHnIiISIPt+8xmfPVvvz7jIFzd93DRS0/G6f/0EXzqda9ccoNwz/ufU16BUjh1ebIwifFn116+SCkSERERERERERFpHRqIExERabA3X3E7ctH063FfftrheN1n34+PvfX12NTf28SUZbe5pw9fOeFlqeOvfvBOHLHuqUVIkYiIiIiIiIiISOvQQJyIiEiDnXb7Y87jN6zaD2/+9/fir//ijXh612VNThXvohNeis3d6QHDD//mJ/Qm6SIiIiIiIiIiIp1AA3EiIiINtNdzW7D3uq1TjsWewR/84+/iff/4u3hw/10XKWW8Ui6Pz57yytTxE556HKc98eAipEhERERERERERKQ1BIudgCzqRZM5TK03e5i4kD0MAERdPhWu2j9IhbMme7jaAPfbLBcMXj17GL/KxeVXyN8WcePRJmLKFhUVkhI348R6XJ6YJHt8fo1LoxdRwagySZctMlwccvmfhNnLpBdw9Y8NuPJvvezhjM/FlXRPv8TjTPbuH6LCDebKmcM84S1/4b9feW96YOqBQ3fFI6fsgmUoTTk+0ctVClGFPG/EXd8k2/797dNOwNvvuAb7b9405fMPXftTXL3qYCQ7lAm2Tk6Y64aclMfkBwDUernrjUlnVOfimqjnqXAbvZ7MYRKykfDsWD8VLoq58h8G2esSsvkDm5AhmeJPlmNDXjdxgbzf17P/ODNORUWfuDhPBiRmBic+2W5l23bEaWPagwAQDleocHSbhAjn1bm2hUkSLlypljlM0sO1ETyijQYACVm2bJ64T5H1D/vcwMbnZ28SIixxZcSvkOEmiAduklfjTkDSzbVJEBF5wtYj7A2fwN5/k/4uKpxH1D8sQ9atNJ9rJydE2ynJkSfOcIWrtHP231bv7qbi6l0zQYVj79v+WPZ2QrCZq3/ifm4f9rgrzB6mh6vrwiLZUVjj6n+vRJRJsk2YdJH1P8FUyI67kHyYIttbqGcvyxbZyyMAYIbtUmZEtnfB9PmR5bhVaUaciIhIA62++YnUsZtO2HcRUtJYke/jU698Ter4QRvX46wH71+EFImIiIiIiIiIiGxjjCkYY24xxtxtjLnfGPOPk8f3NcbcbIx5zBjzHWNMbvJ4fvL/H5v8fJ+FSpsG4kRERBqkUK5j1T3PpI7f3AYDcQDwy8OOwO177ZM6/rs339D8xIiIiIiIiIiIiLyoCuBMa+1LAKwCcI4xZjWAfwXwaWvtAQCGALxn8vvvATA0efzTk99bEBqIExERaZBj7noKuR2WZNmyrBuPHrDzIqWowYzBf5/1itThUx57FPtu2rgICRIREREREREREQHsNs9vchBO/mMBnAnge5PHLwLw+sn/ft3k/2Py87OMIdcVnoUG4kRERBpk9c1rUsduPn4fem+ApeiG/Q/EmuUrUsffestvFyE1IiIiIiIiIiIi2xhjfGPMXQA2AvglgMcBDFtrn9+k7xkAu0/+9+4AngaAyc9HACxfiHRpIE5ERKQRrMUJt6YH4m46cb9FSMzCsZ6Hi088OXX8/NtvQbFGbpAsIiIiIiIiIiIyu8AYc9t2/1y4/YfW2thauwrAHgBOAHDIYiRyR8FiJyAL62WfUWCD7GGSXOYgAIBaHxcO4GZK+DUikKWigiHDUXFFs3+nodg8iWf/zo6SkIur3sWVkSRo3iVeGE6ocOEYkZEsQ54AUlDmCpeJiLyMyHwkZ2oZmz2+pMBVrv4wV443l3uocIzAS7D32i3YdcPolOOxZ3DXcXsi8KY5p2Tlan2ybCWNmZn3g2OPx4d+eQWK9foLx/oqFZx795347vGr5/W3LfOKUItMOEzC7OctGePqrfU9vVS4apz9eivVuTSWa1y4aoULlxDlP6lz76z5ea5ONmH2+p9pjwDktQYgGOcuuKCcPYxXJ+tI8t4WTnDx5Uezn7egxJ24JMedOJNk/22WrFvjbu5+zzy3AYBXzZ6XzHMlACRFrv7xLJH/Oa79k4RkGalzZdKrZQ8XVNg2MvncTD5f+kQdFJS5ZyKvxoUzRNmKerhrNBrIU+HY522vTtStWye4yOpcIbE9xexhfPL5K+Yykn0G86r12b/UKIHfvLjAtZ08sv5h22kxcbnRaSSuNYDvJ7Qhcb497t5GxQXueqPbTTv1cwGJ+n9bhNnDsW0EGnG+k94uLqqJChXOsHVkQjzvkfcoliXvG6ac/cVsm6P7aSNr7XGz/n1rh40xVwM4CcCAMSaYnPW2B4BnJ7/2LIA9ATxjjAkA9APYwiZsJpoRJyIi0gAnOJalvPfI3THRQ3ZaLGGjxS789KijU8ffftMN/AOBiIiIiIiIiIgIyRizkzFmYPK/iwBeDuBBAFcDeNPk194F4EeT//3jyf/H5Oe/tnZhOrY0ECciItIAJ968NnXslhP3aXo6muWbq09JHTts3XNY9fRTi5AaERERERERERHpcLsCuNoYcw+AWwH80lr7UwB/DeBDxpjHsG0PuC9Pfv/LAJZPHv8QgI8sVMJaamlKERGRpahroooj7302dfyWE/ZdhNQ0xwO774G79twrNfD2uzfdgLv22nuRUiUiIiIiIiIiIp3IWnsPgNQSTtbaJ7Btv7gdj1cA/E4TkqYZcSIiIvN1zO1PIYinrvW9cacerNl3+SKlqDm+dWJ6Vtyr770Ly8bHFyE1IiIiIiIiIiIiS48G4kRERObphFvWpo7dcuK+gCF3bG4Rlx/5Emztmropci6O8abbb1mkFImIiIiIiIiIiCwtGogTERGZD2tx4s1rUodvPrF9l6V8Xi0M8b3jTkwdf8stv4WXJI4QIiIiIiIiIiIinWVB94gzxhwM4DvbHdoPwMcAfH3y+D4A1gJ4s7V2aPY/mD0N1YHsYeK8zR4IQJKngiEJufj8cvYMyY1yszO4FAJR1+zfScXlc3HF3WSnLxnMEOFisoxQhR9AHHGxBRPZz7hX50pJrY874XEue56wafTrVDD4Na5wGSaZXnNnXtkccfsgZ4f5VSoYNo70UOGGSsVM3z94zXqs2DIx5VjN9/G9nY5B6amZL3ozxt2GwxHuPZqglP0chBMzf37Zfifjvdf+Bt52d4o9h7birDsfxLX7Hp45PpNkvwDYMlIY4q5Rv8qFqywPM4epB2S95XFpHK1kv1GNl7ibW5I0930wGxHxxWTdasn2VjX7PdFEXFweGc6STw8JES4kV7kNKlz5L2yNqXBJmD0v6z1c+6fexV03TN3KtHUBIKhwhSQocfmfKxMNXrLdlPjkBUC0gWxA1pHkg5sNyTY5k06yamXLJJsnCZEllUEuH8vLybJlC5mDGMtlSFjiwpmYjG88e53gM88oAJDP3kYDAMs837DlmHzJjb1uEiZPfLJNUqpR4RBzPy4hflqc48qxR1blHnFrY+71AJB0ceXfH6tQ4SxRtpi2FgBUB3NUuHp3855TvIg7b7kxrt2U3zDLA76DqXAP3IYrIrAF4vmSbTbluPJv6mSHK3EPtgHZUU5XQFw4WyTOG1mPt6oFrVmstQ9ba1dZa1cBOBZACcBlAD4C4Cpr7YEArpr8fxERkZZz2u2PpY7dfMi+KDGNxxb0bP9yXL/PIanjb77vhkVIjYiIiIiIiIiIyNLSzFeRzwLwuLX2SQCvA3DR5PGLALy+iekQERFpmNNvfzR17OqjDl6ElCye7xx1SurYKU8+jD1GNi9CakRERERERERERJaOZg7EvQXAJZP/vdJau27yv9cDWNnEdIiIiDRE33gZqx5+JnX8N0cetAipWTw37H0InulbNuWYB4s33ffbRUqRiIiIiIiIiIjI0tCUgThjTA7AeQC+u+Nn1lqLaVZtN8ZcaIy5zRhzm7WdtWaoiIgsfSff9QT8Hdbif2qnQTy+606LlKLFkXgevnvkyanjb3jgZuQjcs8HERERERERERGRNtCsGXGvAnCHtXbD5P9vMMbsCgCT/97oCmSt/YK19jhr7XHGNHPynoiIyOxc+8NdfdTBALNxe4u77PATUPWDKccGqiW84tG7FylFIiIiIiIiIiIii69Zo1tvxYvLUgLAjwG8a/K/3wXgR01Kh4iISEOYxOLUO6YZiOtAw8Ue/OLAVanjF9x3Q/MTIyIiIiIiIiIiskQEs39lfowx3QBeDuAPtzv8LwAuNca8B8CTAN4829+xBqj1ZJ9hEOedq17OKAkzBwGwLY0ME5PxEcOo9e7s+QEAJuF+nCGii4pcGm3Y3OVLo57sJ8BEZFxdZP6TZSsXZo8v6uaqE/a6ibqyh/ErXFxBmSuTbBUbTGQvKM2eM2wq2dNoQ5+KK8lRweCRhcvOMdxhj6/DipGJKccqYYBbXrI3/PzcLr64xp25ej8VDFF39jyp9809zNfOPBmvfei2KceO3PAUDhl+Gvfvsuec/kY4nil58xIVuDISFbiyHHdlr0u8AnfjyAXcDcAQN+5x5Lm4qFBAErPXNhHIJ9sk7G2jnv23+ZXmthGSkMwTYqZwYSsVFTy6vcXVyXGOqFvJth3dJiTa8n6VfG4gyz9blr1a9sLMlEcAQEi2uIj4rMelMclx9yhWEmRP59heXD7W+ppcJktE/wPZtjDkoyxTl4cTs3/HpdrLdnhwwerdxPN2UqTiCjeVqHAeccNnn4nYFTcs2W5NiHR6EVeQkyLXCZfkuOftuJg9L5M899vYupzp72PvbUmOq5M9siwzj+lxkey+Zqst4r6RNPf2i8Qn25IDhcxhAvLhxtTJBw4CXbd6XPlPyCah9bOn0yRc/eMNk50rVW57EVvI3i9gi2SHX4ta8L5ba+2EtXa5tXZku2NbrLVnWWsPtNaeba0lH7NFREQWx+m3P5o6dtPh+6GS76yGxPbu3nMv3Lf7HqnjF9ylWXEiIiIiIiIiItKZtPGaiIgI4fQ70gNxv3nJgYuQkiXEGHxr9cmpw69+6A70lcnXr0VERERERERaTCGq4k2P3IC3PHQtemvczFsRaR8aiBMREclocGQCRz76bOr4NasOWoTULC0/ecnRGClMXRaoEEV4/f23LlKKRERERERERJonH9Vx0ZX/gb+87TL8+R0/xiU/+yT6K3o5VaSTaSBOREQko1PuehzeDsukP7HrCjy5y/LFSdASUsnl8P3jjk8dv+CuG2Fsc/fyFBEREREREWm2k597EPuMbnrh/3cqj+KctXcsYopEZLFpIE5ERCSj0+94LHXsN5oN94KLT0wvT7n38Gac9GR6OU8RERERERGRdrLX2KbUsf1G1i9CSkRkqdBAnIiISAZenOBUDcTNaO1OO+HGvdP58ZY7r1+E1IiIiIiIiIg0TxhHqWP92idOpKMFi52ATJo0bGjIcHb2rzQ0QjadDC99/5iTqJg9V6LldSouLx9z4XzuzNXj7GcgGPOpuJIebjk3r8aVEpNkD2fJ69OQK9XVe7OfN6/GxRVONPNqAwpbspcTr5Cj4vKq3PWGKPv1ZmLuGo27uELSW6xS4YyZuWwd9dgzGBgvTzlWyoX47T4HIC5nu636vVz+d6/kflvgZz8HtYhrKnz1lSfh5C88MuXYGU88gP6+zXh22eC04Qrrs5f/kHyeqfeQdSRXlMG0FJIqd9+YqJJ1wizl3yUMuQxJEu7+GxvuhpPUs+elGSfv23ny5kb8tCTH5aNfJe9tIReMYckk+lWybdfNRVgZzH7i6j1UVEjI/GfqraDM5Uec58Il3OWGsJTPHihmrxvyBmCzx2fIOtJ6XP6zbXkbZA/oV7i40McFi/NcXiZEEyguzv4dl4B83siNZQ/D/K75oJ8Tiedtls2TFRBRlzDXzHzCmYhrkwRbs+9lZUOucNkCWSjJ+o65BhKyHjFk0YoK2c+3V2fbP1z+mzrZT0WUyaiLy8jKABcuZh6ldiiOgZ/uSO2rT6Tam7VerhwX2b5ky1wA3M3NxFwZsX728m8DLkP8Mtfh7ZFtSRNl7wNKitwDQLyMazh5NXYQgGgnE23kVqYZcSIiIhmcetvjqWPXH3YAauSDZ7v69eGH4tnBgSnHfGvx1utvWpwEiYiIiIiIiDRB3jEjbqCSfYBbRNqHBuJEREQyOMUxEPebIw9ehJQsbbHv4+JTVqeOX/DbW5Crk29YiYiIiIiIiCxxucixNGVVS1OKdDINxImIiMzR8qFxHPZ4eoNlDcS5fefkE1Dzpy4HstPYOM65695FSpGIiIiIiIjIwsrF6SUIByoTHbcUn4i8SANxIiIic3Ty7U+kjj221wo8u2L6Pc862ea+Xlyx6sjU8Xdcd+MipEZERERERERk4bmWpgxsgp4au1GqiLQ6DcSJiIjM0am3PZY6dv1xByxCSlrHN04/OXXs+CfW4tBnnluE1IiIiIiIiIgsLNeMOAAY1D5xIh1LA3EiIiJzEEQxTrpzTer49cftvwipaR237bcPHtxtl9Txt1/320VIjYiIiIiIiMjCcs2IA4D+qgbiRDpVsNgJWJISLhg7qmkTQ4Uz7pcrZuTVubjYPAERnZePqajCvPsmN5skJs8cESzuITOym/ttEbn0dNTrz/6lHYTD2cMAQDDBlUnLnDay+HvEtQYAfpULV1mWvWr2ohwVl7eZK1vxQFfmMCbmyr9X5q7RUoXLE2vdBeX4B9aid2LqSR0v5nHDPgcAI1wak5ALx64qH/rMOeDKyHj3i3X5N85ejf/39R9O+fzcO+7CR999Hqw3NQ+sn70uiQpUErl6BIBf48JRJ26a8jibhGxbxESmRBFZ/mPuvpHUyRNHtIFsjrzayPuNIdJouEuUrkgM225l25JUZFywaj9XtiorsoeJurkMScgyyZy3eo3LSLbdFBXIe6KX/SYQlrj892tc/ueGst84/DKXkV6dq1ujbq5rIM5nLydRkYqKRj8DEyyX/TBs444oymwa2WebsMT9uHAse79AbsM4FRcirg/CFrM/b5g6Fxe7r1RSCLnoguzPe16Fa5R4bH1Hhgsmsv82f4K7R7HXdkKctjjPxRUXuDqyNsg9b5ske6aUl3P3KPZ+wz4nbi9MphmIq09MOb/W4/K/2sslMg6zxxd0cXH5VbK9S6TRL5P9TTWy/emTz0TELcBUufuGSZr5AAaAiM/bMroACVm6NCNORERkDs6485HUsRuO3B9RQPZmdJDLTjoalWDqw1N/uYL+UnmRUiQiIiIiIiKyMHLTzIgb0NKUIh1LA3EiIiJzcMadj6aO/eaYAxchJa2nVMhjtDv9OmKOfSNYREREREREZInKT7NHnAbiRDqXBuJERERmscvmERzy1IbU8WtXaSBurqphejmRfJ1cv0xERERERERkicpF082IKzU5JSKyVGggTkREZBan35WeDffAPrtg47K+RUhNa3INxBXq7OZWIiIiIiIiIktTXktTisgONBAnIiIyC+eylEcftAgpaV2VML3juGbEiYiIiIiISLvJTbc0ZVkDcSKdKv16+hJW78keJi7azGGSdF/hnBh2qxtyONT62cPEBS4uj5y0wKTRkPlhDBeuu6tKhSv7SeYw1dE8FZcx2csxACBiMzN7kLjApZG9bpJc9vhMzBUSNo30aStkP2+1PrLiQhcVytSzl/8kz91y/BoVDEnMlf/+3vKU/w/rEU657/HU9247eW/0dVcAALU8N6DUX6xQ4UKfK5T1OHulHHjZzzWA1AVQzTlmxEX11PeiLuLaJpNI87i6xK9mD1evc3FFEXEDBuB5ZMVFiGvkPYq8txkiPva+Yck2iUdUJbkxLrKYbe+S4+f5oexhujdydV1+M9e2GzqomwoXdWevhJg2MgB4ZJ1gicuGaWuxcQFAXCTbaTZ7OuNc8/IRAIqV7A9TJuJubibhzptHtO0AwBDPiX6VaxPWyYUI2LIcTGQvJybiyhZT/wOAFxHlv0DepIhrDQC6NnB1eVjKXriSPHdzMx53cduAqVypqGB9sv0TcxFaor2b5MibGxku7uLOd9/TRJ1M3rgt2VFVXUbE5XNxdW2kgiG/hWtvbT4qex9EbYBsI5B9mUwf6I71+HQz4vqrE1OvL/Lxy5I9+pVlRF1C3jbCcbbDO3sQv8jW49yPC0IuvnCoPPuXdpAU2f4+jj/K9VNRHfNk26JVaUaciIjIDFbd/zS6y1NHA0d6Crjv4N0XKUWtyb1HnJamFBERERERkfaSi9xvWAxqaUqRjqWBOBERkRmcelt6NtxNx+yLmHwrtVM5B+JqGogTERERERGRNmItcrF7NrCWphTpXOpFFBERmcEpt6YH4m447oBFSElrqzr3iNNAnIiIiIiIiLSPIInhTbO+Yn+l1HHL8YnINhqIExERmcYuG0ew7zNbUsdvPHa/RUhNa3MvTUluiCIiIiIiIiKyBE23PxwABDZBb43cg0tEWpoG4kRERKax97NbU8ce3H8XDA10L0JqWpv2iBMREREREZF2l59mf7jnDZTHm5QSEVlKNBAnIiIyjUIl3YDesKJ3EVLS+jQQJyIiIiIiIu0uN8OMOAAYqGifOJFOlO4VW6oMkKS3l5lTuMxByKV6rc+Fg89FaOLsP86vUlEBCRksl/23xRU2Izm1CncZJFUinRE39m3JcEwZAQBTzR7Oq3NxsQxZJhlJjgtXJydNFbdkv25MzNUj1nDnzUuyx+fVuGUIvWqRCpd4XJ70FV5cJmIA5dTntmimfGc+6jFX3/Xn0ulaKFsrjZn9N9eBOI8oJl5E1j9sMHL8MC5kL5N+mav/a2NcxWVy2StXL+AqZJ+ICwBiy5042+3eMH3GMOy9jQxmicZkxFWRVHkEADL7qes0zpPn2ufC1fq5PIl7s5ctUyPbdhUyHLEXiSVf2WTa/wAQdXPhKsuyJzQ3wsWVH81+rgEg6s1eJ7NttHCsRoUD0bYDgPKuhcxhagNcXEnIhfOIZxsA8GrE8zaZ/WzbgrnfBGUyH8kVxdn+lXAT0VFNXjdJkelsApIw+33bxOSDrEeW43GuUJqYuLdVuUJiC1y71R/hnolM1JM5TL4ne10HAAnZ6xr1EOeb7stk27vk9ZbLHo5tk/hk3WqY2/12Pysfz3wtDFYmXvw+ed488n5jiX4Suk1Iln+mv6/WR5ZHRz/FXHRF3IkLguyZaepc+5Pty6f52X9bMtjHxfUMF2yxaUaciIjINHK1dMu9RjbUOl0lTHdwaEaciIiIiIiItJPZZsT1V0pNSomILCUaiBMREZlGrpZ+86iWa+6s3XbhnhFHvlotIiIiIiIisgTNNhA3WNbSlCKdSANxIiIi03DNiKvmNSOOoT3iREREREREpN3lotn2iBtvUkpEZCnRQJyIiMg0nEtT5jQQx9BAnIiIiIiIiLS72faI09KUIp1JA3EiIiLTcA/EaWlKRlV7xImIiIiIiEiby2tpShFx0ECciIjINNx7xGlGHEN7xImIiIiIiEi7y0UzP+cOVDQQJ9KJWqo3MSrazGHiYpI9IpM9CACYhAtoAyKNABJiHNXE5I8jJUwJq3Ljw4mfvXwAgOWCAXUinQEXmcmlBwPmxJJl0hInrs5eOFwwS+SlJbORzUevxkUXFbLH50XcdROOcTOSrJ89PiYMALqMJDEX30Qt98J/e+V0/Tzm56d8BwAKAZeP+/RtocKFhrtvPDUxmDmMMVy9FeSnXnBRMX0+Ckk99b24i7i2yWvNkBPywipXKJMwe7g4T943Qq6MBLnsmRJH3CzRpEQ2Q8n2FpiyTLYtDHm/T4jfFnVz+REXuDLCtnfjYvZwlX6uHrdegQxHBaPbCQzDtmWIm6kh8yPOceU/LpDh8tl/W72HO2dl6uEGyBP1f34zeXNLuGvbq3Dhat3ZC0q9h3xuC8k6mXwGptI5vvSfG8JxMh+5IoIkIJ9Jw+ztC1PmMtJjrxuPqCjJuJj8AAAEZP8KEZ9nuHNtylUqnC2VuXC79mUOE+fI30b2N/mV7GHi3OzfcYZLL1wyJ9Yj24T57GHqveR9w+fSyOT/9k0EP5z5maq/OoFa77b/ZstIQrR/ACDimsmUgLtEqTa5T95HbZUsW2T5T4gXu/0Jro5kJXmuUjDM/Y28b7QqzYgTERGZhmbENY72iBMREREREZF2l59tRpyWphTpSBqIExERmUbetUecY0BJZld1DGC68ldERERERESkVeWimZ9zB8olGEtOMxaRlqWBOBERkWnkHDO2XANKMrtKLr28QUF7xImIiIiIiEgbycUzD8QFNkFvhVj/UkRamgbiREREppGvOgbi8hqIYziXptSMOBEREREREWkj+VlmxAHAoJanFOk4GogTERGZRk5LUzaM9ogTERERERGRdjfbHnGA9okT6UQaiBMREZmGa6ColvMXISWtzzWAqYE4ERERERERaSezLU0JAIMlDcSJdJqWeq0/7rKZw5ju5nXy2RrZOetl/10AYJF9Y8+oh4vLL5FjtqZ556zQXaPCRXXuvNUr2cOZfEzFFeS4PInJ32ZjkzlMUM4eBgCSgCuTSIj4uCQiIWvKqJuL0B/Knie1bu4a9avcjwsmspdlY7lzHRe5cAlRjgFgeLz4wn/75XTcW6LuKd8BgGKe2+vs/uouVLiVPeNUuO4gez05Vs9TccX1qWWyZHKp7+RqUep7QTX7eQvHuHNtyP2xiVsbAMAnblO1JrfUmPtGQt5r2DqZ5ZWaN4ieFLjCZYh7G1uOLXv/5ZoyiHPZ44uLXCGJq+R9g0gjAJhi9naazXH37SQi6zvivCXprT3nxIZcobQ+99uslz0v/Rp5rsm2TFQgzveK9H1zLoJxrq7zK+TFzTTJyXoLZPn3yC1pDdGWZH9bVJz9Oy4J0UwzlsvH3Abux3l1LlzcQ/y4bu66gWHr1uy/LS5wjTu/wvUJmDp3bduQaBOS9bhh9+Du66KC1Xuzx1dnn+3r3H0jN5o9nEfG1fMc15fGlH8AiLqzh2H7BOj7DVFPbt+OzGH2G09fNL7td5F1csI+2hBNEr/KRcX2pTFtC7b8s2KmbQeg3pe9gc22P/0x7sRZ8hkgLmS/B3vkPapVaUaciIjINPK1dAO6kiNbJR1OS1OKiIiIiIhIu5vL0pSD5VITUiIiS4kG4kRERKbhGiiqsm9sdrhqmB7A1ECciIiIiIiItJPcHJ5zBye0NKVIp9FAnIiIyDScA3GOmV0yO82IExERERERkXaXj7RHnIikaSBORERkGvmaBuIaJfI9xDvsvxEkCfy4s9YEFxERERERkfaVizUQJyJpGogTERGZhnMgTktTcozRrDgRERERERFpa3PZI26gpD3iRDqNBuJEWlS+Vseha9dhcFRv0YgsFO0R11gaiBMREREREZF2pqUpRcSldXoTDZAUkszBwlz2Ja+CkFsmK8pz45q+b6lwcWxm/9KOYeo+FVfSkz0uALBEGnMFrlPWGC4fwYbLZS+PNiLHvnMArMVBT2/EaXc/hlPveQzHP/gkCvUIsTG45ugDccnZx+Oaow9E4r0YhyHLFhMq6uLiMs1clY481UmeC2dGyfhCIq7sxXEyMi6YVyfKP1eNIDfMBZxYzt3iavG2a8iPYwTJ1N8ZeR7K1WIqTL3GxTXQzzW+R6oFKlw9zn4PiGKu3rLVdFzVMARQnnIsN57A5l78rl/Nfr79WuYg88KWZUPc3pgwAJ9GmxABq+S9jUxjM3l1LpEmIduE5ezxBSUyjWSb0DBlBEA4lj1McRN3k8oPcxeOXyVuwADqNSIvA+63JT1kw4mJjn1lk21bk2XLEumsd3FxRQUunFfPnidBmbtGi+R9w4vIZ9Jc9jBJgXxGCchwjjbJXCREfJaLCl5Eln8iWEL2AsV58rrp5jLFekSbsEo+3LBtEuaEN7n9Y32yLW+yJ9SG3Ln2HauQLGR81b7seVLvo6JCTLYlw/Hs9Q/7TFRaSVTk4J83EqKfKslz13ZENmbqPcT9Zrv2T2jnMCOuPI7aQELXCX6Z+21JSLbTCLkR9pkoe5iJ3cg2GtluSkLut+WHmVDcNcqFApA0r4zEhdYZmmqEzvq1Ii1mxcgYTn3gMZzx0MM49Z7HsPPweOo7vrU4845HcOYdj+C55f249Mxj8N0zj8WGZWRLUUQAAAXtD9dwzhlxc3hbUERERERERKQVzGXVl8GJEkyS0IPlItJ61KMosoTk6hGOf3QtTrvvUZx+/yM4/Kl1mcLvtmUEH/zu1fjj71+Dq485CBefdQKuO+qAKbPkRGRu8vX0W2yVHDdbQrapBlqaUkRERERERNrXXF429a1Fb6WC0e6uJqRIRJYCDcSJLLJCtYYLrrsNL7vnYax++AkUa7NPYZ9NkCR4+W0P4eW3PYRnVgzg22ceh+++9FhsGuxtQIpFOoNzfzjNiJuXbUtTTqWBOBEREREREWkXrpd6656HcIetL5aNT2ggTqSDqEdRZBHtv24jLvrUV7DnlmEqfM33kYtn3itkj83D+ItLf4U/+/6vcdWxh+Dis47HDUfsD6tZciIz0kBc4zmXpnQ8pIiIiIiIiIi0IteMuI39fdh9aHjKsWUTE1iLnZqUKhFZbOpRFFkkBz+9Ht/65Jew02h637fp1AIftx6yN64/an9c/5ID8MieO+O0ux/DW391G156xyPw7fQbaoZxgnNueQDn3PIAntx5EI/suRKx76Hu+4g9D1HgIfI8RL6Pej33wn9v/+91gwO4+rBDMdTT3YgsEFnSCo7ZqRqImx/3QJxmxImIiIiIiEh7yDkG4tYP9KcG4gYmSk1KkYgsBa3To2gBU80+gydJsoeJoukHM2bieVy4gR6u4vVM9vhGywUqrnI5R4VjSli9whVLr4vL/+5ijQpXJs53d7EKADjksfX4n09cgoGx8qxhHttrBe44fm/ceuzeuPuoPVAtvLi02y4Yx6Mv3wX/5+Xn4n82juI1V9yH11xxL3bePPPg3t4bh7D3xqHM6QeAdSv68M5/+T2s36l/yvHRjT3U3/NKPhUORP4boj4AAEOOEyRkDRsVTOYwuTGu/Edd5MxIL/teaX4lmf1LLtxPo9loW/7nKunZppUwfOHz7ZmteSquoST7uQaAFcvHqHCFIHthHq5z9w1TTl/bFT99LymOx1O+G+ezn/ComDkIACCc4PK/sIkrlNVBIj4uibARd217uZlnWTsViTAAMMZVkjbP1SVJIXs431GO58RyJ86rZw8XzN6UcEpyZOEiq3KPmPxqEu5aMzHZlueahABx3uCT+e+TeZIjTlyT6x9TI9skZDoZlkyi9bIn0szwgt1CiLrI+o7IfxuQv40pxwCiInniiOstZi/tMfK6IbIy6uYSWTZcuFoPV7byI9njK2ylokJulFuhgbm2o26u/VMd5J43PPKeyNxL/TL34Gzzzd2Hm3nerneTbQuyUmDSWN6ZiyvPdQ3Br3J5khBF2ZDPGwnZbgLxnG6KL5Z/18um63bqBdZMPbYsGQX6ufonyjexL63KxRXnmpf/Sci2m9gGLxcsN5q9LOe3VKi4TMS1myz5nOLVsv+2uJscb2hRrTMQJ9Imjnj4WXzuY99G70TV+flQXxE3r9oXNx6zH25atS82rehFX8H93e1t2rkPX3vXyfjG21fjxJufwHk/vQcn3rqGucfOaNfNo/ibL16JP/vbCxr7h0WWGNeSidVAt835cOXfXDayFhEREREREVnqvCRxbiGzaaA3dWxwTDPiRDqJehRFmujo+57Cf/3jpegup1+5fm7nfvzNX74O9x68O/Vm3fNi38ONJx+AG08+ACvWjeG1V9yLc6+8Byu2Tswn6VOcefMjWPXg07jr0D0b9jdFlhr3HnHNfVuz3bjyT0tTioiIiIiISDvIOZ5vK2GALb3pLV6WjTWun05Elj5yjQYRyeqke5/AZ//+O85BuKd2HcR7/uXtuOfQPeY1CLejDSv78aXfOxXnf+t9+Ju/fz1uOm5fZoa304e/+iugyUvmiDRTwTUjTnvEzYt7Rhy3FIeIiIiIiIjIUuJ+oTfAkGMgbmBcM+JEOol6FEWa4PQ7H8VnP/Ft5w35iT2W430ffxs2LU9PU2+U2Pdw3SkH4rpTDsTyLePYf80m5GoRgiiBHycI4sl/T/5/veLBjxOEUYIgjrHn+iG87tf3TPmbqx5+Bmfe/DB+vfqQBUu3yGJyXa+VnGbEzYdrIFMz4kRERERERKQduJ5va2GArT1dqePLNBAn0nDGmD0BfB3ASmzbze8L1trPGGP+AcAfANg0+dW/tdZePhnmbwC8B0AM4E+ttT9fiLRpIE5kgZ19y4P4j3//rnON6Ef22Qnv+6e3YWgg/WbMQtmyvAdblvfM+J2RcmHK/3txgsMeX4cDn9w05fiffePXuOb4gxD7mlwr7We6N9mE51yaUjPiREREREREpA1M148w7BiIG9TSlCILIQLwYWvtHcaYXgC3G2N+OfnZp621n9z+y8aYwwC8BcDhAHYD8CtjzEHW2nRH/jyp91xkAb36hvvwn5+61DkI98D+u+DC//e7TR2EYyW+h0+/86zU8f2e2YI3/Oqu5idIpAk0ENd4zqUpNSNORERERERE2kB+mi0utjr3iNOMOJFGs9aus9beMfnfYwAeBLD7DEFeB+Db1tqqtXYNgMcAnLAQaVvwHkVjzACALwE4AtumA74bwMMAvgNgHwBrAbzZWjs029/yiJfmkzox1mi4fa+MSahwIxNFKlxU9zOHSRJu7DUeI5djI7LSkJuYVSrZ8wMAKmGeCme8mX/cG6+/A5/40vfgO/ZRu3P/PfGuv3oXxpIiMDx7XKN++s2ZuWB3cLOOc3DFwUfg5kP2wYkPrZ1y/P0XX4PvHHscTI4r/wl5voNR4nxzSaQlXNFCOJ79zHkxd7b9KhcutzW91+FCiYvkNZojX16ZLJLFJP0ba3nfWda9XSpUVIP93Btw1nLXzVAp+/2Gjcvm0/lULTgG4mx9yncNcW37NS6NPnfa6L08k1z2MCbm4jIT3D0xqRPxkfW4x/62EvfbbJi9vosLXB1pc+wdOHs7zSPLP3lp078tyWePMAnYa5ur/4MSF1+NKMu2xrXJDXONArDE6gWGLCTsdsTkoxQ8okkSVLhyzDyPsuEsV9Wh3k2+a8vWCUQ4qh0PIOqjggGzPLdNiyiTNiDrSLJuZdoJ1WXcxRZ1kc9tE2y7KXtZtj4XV0ReN8yzFHtvi4n7KABYskrwa8QzaQ93beeHucrVL5Ev9DF5QuZj7HPXdkRcp36FS2R+iLzfk9kfjmWPL85zfZKGrJOZzjRb21b+c+V04EoQYms+vR3NwHiJfpYybFsyyh6fXyHr/zJZ/xOjFWyfQDBOBUNhmLuXhuPZL5wkRz7/Ovpf5sKvcBe3DZfefC9jzD4AjgZwM4BTAPyxMeadAG7DtllzQ9g2SHfTdsGewcwDd7Rm5NBnAFxprT0EwEuwbRTyIwCustYeCOCqyf8XaRtvvfoWfHKaQbhbDt4H7/jI72OsmxuAXTTG4F/eek7q8M7D43j3lTcsQoJEFpb2iGs89x5xWppSREREREREWt90K+sMuZamHC/BJE1+Y1ykPQTGmNu2++fCHb9gjOkB8H0AH7TWjgL4HwD7A1gFYB2ATzUzwcACD8QZY/oBnA7gywBgra1Za4exbcrfRZNfuwjA6xcyHSLN9K5f3oh//tpl8ByDcNcfsT9+7y/fhQlyhs9iu+uAPXH5CUekjv/hT67DslHyNRKRJWq6JSWE5x6I09KUIiIiIiIi0vqcA3FBiHoQYKwwtS/QtxZ9JXKZFpHOFllrj9vuny9s/6ExJsS2QbhvWWt/AADW2g3W2thamwD4Il5cfvJZAHtuF3yPyWMNt9Az4vYFsAnAV40xdxpjvmSM6Qaw0lq7bvI76wGsXOB0iDTFhZdfi3/85k+cn/36JQfjPR96B8oFYm2yJeQTF7wckTe16uitVPEnP756kVIksjDcb7JpRtx8OAfiIg3EiYiIiIiISOub6YXeoZ70PnGD49onTqSRjDEG2yaFPWit/fftju+63dfeAOC+yf/+MYC3GGPyxph9ARwI4JaFSNtCD8QFAI4B8D/W2qMBTGCHZSittRbTrL5rjLnw+SmGVlN1ZYl77xXX4W+/c4Xzs58fcxje9ydvR60NlrVbu8sKXHLmcanjv/vrm7Hnxq2LkCKRhVGoaUZco1WDdB2opSlFRERERESkHUy3NCUAbHUsT7lsnNs3XkSmdQqAdwA40xhz1+Q/rwbwb8aYe40x9wB4GYA/BwBr7f0ALgXwAIArAXzAWsttOj6LhR6IewbAM9bamyf//3vYNjC34flRyMl/b3QFttZ+4fkphsZbehv+iTxvv3Wb8JFLr3R+9pMTj8IHPvA21NqoA/8/33gWJvJTZ/bl4hh/+b2fL1KKRBrPvUdc+1zHi0FLU4qIiIiIiEi7cj3f1oJtz8HDrn3ixjQjTqSRrLXXW2uNtfYoa+2qyX8ut9a+w1p75OTx87ZbrRHW2o9ba/e31h5srXXPsmmABR3dstauB/C0MebgyUNnYdvo4o8BvGvy2LsA/Ggh0yGy0N73s2sQOGZtfv+Uo/Fn77sAUeAvQqoWzub+HnzxNaemjp938z04Ys2CLKMr0nRamrLxKhqIExERERERkTY109KUWx1LUy4b04w4kU7RjFf7/wTAt4wxOQBPAPh9bBsAvNQY8x4ATwJ481z+kF81mSNPxrP/xDjkxifj7MkDAJgct+ym8bOHswmbSOfqobMHi4m8jLg0GnJc2Sbcb7PetnC7bRnCG264M/X5d045Dn/9jvNh6y+my3Rx5zpf4JZu8z0uvnJl9sGGr553Et5+1c1YMTK10fCR716Bt//1uwEzx/NIrjpriWJiC9y5jslxAkNWCgmxjWBMXjdRkQsX5ps3uBznuPMGsrp7frHkfM21yXLgXEw5GuMG6DZV+6hwxiPrZCJcUuGaCv54uk6OonThLlSiKd8NStlPXDieOcg29C2Ry3/mt8UFKip4NfJeWsp+vq3PthG4NOaGybqVuEzJ5g9db3n17L/Nr1JR0QzZlgyIPgYvIk+Az5YtLr5aX/Y2aJInywjxPLQtIBGGbaORr3oGFfK8jWbPy+IW7scFFTZTsgepd5PPpHkuH/1q8+pyQ7atXW2LufDIdrJfJu7bRTIf2feSiJ9WG+BWW0rSEznmJOoly/JI9nDss01hC5fGPFH/JE1eYKMwRJ7vMHteWo+8R8XcdZOQfXce0b3ik/co+nwz/R3ssw2Z/x65cFtATAALR9m+FS4c83yTJNvKY76cbivUvBCm7GGo0JP6bGBrBZjIXlC8Mlf+/Vr2MOyzJf2czhRJsvznRsj6h3zesAETju3c4pg6d3GbSvbK1WPvGy1qwdd7tNbeNbm85FHW2tdba4estVustWdZaw+01p5trdXGUtKyLvzltQh3mA031N2Ff7jgPNg2XlJ1opjHf53/stTxU+9/HKff++gipEiksWZ6k004rj3icpFmxImIiIiIiEjrc66sM/kc7JwRN6GlKUU6RfuOEog0wfLRcbzlultTx7965skoFfKLkKLm+s5Zx2LtLstSxz/ynZ/DOJbqFGkl7j3itDTlfDj3iIu4Gb8iIiIiIiIiS8lML/QOdzv2iBvX0pQinUIDcSLz8O6rrkdxh5vsRD6Hr515yiKlqLmiwMen3nJ26vhhT63D63579yKkSKRx3HvEaUbcfFQD7REnIiIiIiIi7SnvWPHl+efgrd2OGXEaiBPpGBqIEyH1lsp459U3po5/84zVGHG85dKurlh9OO46YPfU8b/43i+Rr2mmi7QuDcQ1XiVMzygsON4YFBEREREREWk17n6Ebc/BQ46lKQe0NKVIx9BAnAjpHdfchL5KdcqxauDjS2eftkgpWiTG4N9+9xWpw3tsHsbbr7p5ERIk0hgFx0CyBuLmp+oYiHO9MSgiIiIiIiLSalxbL2hGnIgAGogToRRqNbznV9eljn/35OOwcaBvEVK0uG45bF/8+iUHp47/8Y+vRt9EeRFSJDJ/2iOu8dxLU2pGnIiIiIiIiLQ+54y4yefgIdcecRMaiBPpFC31ar9XN5nDmCh7GMR+9jAAbD6hwsFYLr4k+2+zETn2SmQjABjinNFqXFx+NXuevPXG27FibOrNMjYGXzr5LAQj019WcZ3L/4kxrvPfkPF5xASVT7z8XLz0nkfg2RfL8+B4GX906fX4t3NfM224/GYujUkue5g4T0WFYIIrW4Wt3LUdTmQPF5S5uPLD3GwkrxpnDmN9Lh/zw1y4JOROuA235WW+ms6bWqkLZshR+JbVqLj6+7llKDyPu99U69nrkqTIDZRVyum3/crWMRAXRUhyL5bfoJI9rohcDTgucOFMzJVJQ5y2JOSu7bgv+zUKAKaWvU72J8i2BffT6DZJQLwXEqWL8ZyE5H2juCF7pnjcqYZJ2BPA8avNu7clAVcmc2NcfAFxDbBzgZl6BAAME6FlHwC4fPTJd7fyI9njyw+R7Z86eQIYhntUtz75LOtx55t5bmDb1jFZ34XjZHxEU9Krkm0EskqOuppYl7OP9mS4uEDcN8hzneS4cHWiDZof5eoRr04+W46y9V32C84QYQDARGTdGpPPwKPZHwKqo1zdyrYlmb40pj6eT7igwt7vs/82v4usSDyyLUm0gZ6/jeZr6QyteyG8usFozr00palZWC9be9Ij32el+snJW03SxPeYfaIfAQD924JKE9uEZFRMPQ4AMGRbxjEIPasye+Jak2bEiWQUxDH+4JrfpI7/ZNXReHr58uYnaIl4eLdd8YPjjk0d/71rr8Muw8PNT5DIPGmPuMarBekH2HwUAba5AwIiIiIiIiIijebaeuH5GXH1IMBYYepAsG8t+jpsMEKkU2kgTiSj8+66A7sPD6WO/++ZZy5CapaWT59zDio7LD1XiCJ88MpfLFKKRHgFx5KJrqUVZe5i30d9hzf9PGsRsq+4i4iIiIiIiCwROecLvS9ODRvqSk+lXablKUU6ggbiRDLwkgTvu/qq1PFfHnY4Htll10VI0dKybnAAF512aur4+bfeigPXr1+EFInwXG+yVULtETdfVUceumYfioiIiIiIiLSSfDTzC71D3enlKQfHNRAn0gk0ECeSwcvvvw/7b9qUOv75M89ahNQsTf9z1pkYLhanHPOtxV//9Gdafk5ahh/HCJKpC3FHnoeY3HdFXuRa3tM16CkiIiIiIiLSSmbb4sI5EKcZcSIdQQNxInNlLf7IMRvuxgMOwF17770ICVqaRru68Lmz0wOTZz7woAbjpGXMtK67zI8rH/OOZUBFREREREREWom7L+HFVWG29qQH4rQ0pUhn0ECcyByd+ugjOOLZZ1LH/0ez4VK+fuopeHZwIHX8D6/+Df7yZ1doME6WPOf+cI6ZXJKdc2lKzYgTERERERGRFudcmnK7voRhxx5xmhEn0hlaqlcx6sreeZ/0Zu/cM2Ey+5ccPI8bXDCGCoa4SiyRVufGXk3EJdISwQw7RkOGs+HcAr7/N79KHbtrnz1x7TH7ASaeW2Rk2aJ/W46LL46znziv/GJ5rPoh/vW1r8F/fv1bqe+9/9e/RuIbfPI15wDGwJIr/fnV7GHYchyybSLyvEV5Iv/JcYwk4PLE5LOfOBNx5TEc4zKy1ksFQ603QViqpY5XciGSgvs3sPX/yHC6ET4XtkzevvNzrKu2Y3y2AnKXLeeMuFr0wveZ+0Z+qLmD+4asymt92X9cOE7etxPy2s5eROBXyIZMk+/3fiV7GPZcs+GYe6Jl4yLr/4S9b6er1VkFZe7mZhKukFQHuest6iaeUXJL/6Ukpj4AAI+c5GzJV0QTYvvW0kpuz1e/zp23cCx7ZvoV7uImm/+IC+z9JnueFLZwcVWWk/UW2WxK8tl/G/u8EZDPG0ydbCrN7RPw6mQ7gSjLljzXfpm7tnNj2RPpkfVIUOYubr/MVcpJLnvhsjnuBASlEhUO5P0+N5y9fVEscuW47HHXWziWPVxQpqKCXyH7MmMuHHOd0m2EJtb/SX7bNZqP0+Wr3OMh7tr2+ZYBx0BcZRy2kK2twPYJWOL5nu23szXymZSo7iKua4XuEwO4TImI9lZhC1eP+45+rTkh++6S3uLsX9pRT4GKC89xwRabZsSJzMGxa9Zg9eNPpI5/9lUv40dS29xPjlmFz5/1UudnH/jlVfjQ5T/XzDhZslxLJWpGXGNojzgRERERERFpR+6+hJmXphycIAejRaSlqFdRZA7ef9WvU8ce2XUlfnnUYYuQmhZhDP71ta+BZy0u/PU1qY//5Be/QuwZfP74Vy1C4kRmNtu67sJz5aP2iBMREREREZFWl5tlv/kh10DcmJamFOkEmhEnMotDnn0OZz7wYOr45855GSy5zEDHMAb/fN65+NJLT3d+/MErf4k/uvbnTU6UyOwKNc2IWyjOGXF1zYgTERERERGR1uZ6tt3+GXioO72G4rJxzYgT6QQaRRCZxft/nZ4N9/SyQfz4+JcsQmpakDH4+Otfiy+fcZrz4z+95uf4w+t+2eREiczM1XiuhJoR1wjOPeK0NKWIiIiIiIi0OPdA3GxLU2pGnEgn0ECcyAz23rQZr77r7tTxL7zsZYh9crfSTmQM/ukN5+Grp5/q/PjPf3MFLrz+V01OlMj0nEtTakZcQ1QdA5pamlJERERERERamrXOvoRa8GL/oXNpSs2IE+kIrdOraICoJ84czC9kD5NEJnMYAEhq3MBM90CZChcS+VGPuTQmCZcnUT17fPWxHBWXP8r9NjvDVXDhb66Gb+2UY5t6e3HpScfDEOXE+lw+skyZG2sPxrOHmykfJ1ODfzr39fAji3feeEPq0w9dfTniwOCLp501p/hM9uKPhCtaNCaNAOATYxJBJaHi8iI7+5cc/Er2GUxemR1sKVKh6n3cb0M+Rh7V1OFqPgDy7pNa7KpRUe0xMEyF27tnKxWOsXZsORXukYndnMer+XRlkUMdNretDI/vS543AlOPA4BXJcPVs/+2uMjlh4m5NFL1VnNvbYgLXLioJ3te+hXux+WHqGCI89njq/dycUVkPhryEjXEbcoabiayX+MSmZDvWCV54tru4u7bhmyTg8kSy+UjWf0gyXHt1tpw9ggLW7nfZsnfVlmW/bE7qHJpLGzh2iThGHlxE883cS5PRcXUkQBQ76GCwatnj8/jsp8WlIj8L3DXmkc+27B5wtR3foWLi73emHtiUObqf79KngDDXTfWz15OTMT9Nku+5Gx7uHZCOJp+1ptNeuhkbuo9XCdEvYvob2KbCOQUDba9FRO3gKiLjKtA3u9zRFnOJwijCN4O7ae67yHuMgC2/c3hZekMGJgowQsiJBm2v7Fsu5UoJx65gE2deP5iMc8aAGDItoVP9gn4RJ9AvZcbvomLXM0VTHD3m/y60cxhosH0Uq3tTDPiRKaxcngE599yW+r4l152Ompaoo5jDP7x9W/AN0862fnxX/7yZ3j39Vc3OVEiaYWaZsQtFOfSlJoRJyIiIiIiIi1stv3hAKAeBBgtTh2M861FX4mbpCEirUMDcSLTeO/V1yAXT30LYKRYxLdOOWmRUtQmjME/vP4NuHi1Ox8/8ouf4Pdv+E1z0ySyA9fAUCWngbhGqOTSLzK4Bj5FREREREREWoVrIK7meBFVy1OKdCYNxIk4DI5P4G03/jZ1/KLTT8FEgVzLSV5gPQ8fe8Mb8e0TVzs//5uf/xjvuvGaJqdK5EWzbbAsPOeMuEgz4kRERERERKR1zWVGHABs7U0PxC0b00CcSLvTQJyIw7uuvR5dtakdw6VciK+dftoipaj9WM/D373xfHz3mBOdn3/0yh/hHTdd2+RUiWwz1wa0ZOfKR1d+i4iIiIiIiLSK3Bxf6B3uTu+LNTg+sSBpEpGlQwNxIjvorlTwe9denzp+8cknOaePC896Hv7uvN/B944+wfn5/3f5D/HHV/8cXkLuuipCKtTSM7Q0ENcYrgcRDcSJiIiIiIhIK5v7jLj0QJxmxIm0Pw3Eiezgd2/4LfrLUzdJrfk+vvSyMxYpRe3Neh7+7nVvxg9WHe/8/E+v/jm+/PUvYPn4WJNTJp3M1YCuaGnKhnDPiNPSlCIiIiIiItK6XM+1rudf7REn0pla6vV+0539jfn+vuxTe601mcPMJ1whx3VAjlfymcPU6z4VVxjGVLiEyBOT5+KKe7j839Gbbr01dez7Jx2Ldbv0AnhxZlZ+WTn1vdl0FWpUmuoxd97Y810dzV62TImLC4mHGAZ/fcGbYbwEb7jj9tRXTnniEfzofz6JD7717bh5/wMAAH6FKFvkxLo6OREyKnJlMiTGHOOQy/98yKUx72cP5xW4W47hqgSEo9xvq+V95CvpSKteDqi687m/K3t9AAA9YZUK92xpgAo3Uc9lDhN43IWTW1ZxHo/608e6/OoL36+vT78dOBuPnFBnIvIaHSfbCcQlkJC/za9yaUxCmzmModPIhUvI1muSI/Ike3YA4O8bPtFMqA5wcdUGucrVq3Nly8TZ3/+LSmxc3ImrrODCxcuyt+UDsr3LYp5TErKOZEWOPUTnot5LhCOvbbb8e8Tpjgpk+U+4F4f8Cpcplni1t7SSex84JrfqtuRjivWy50lCtq3jApf/zOlOuri2XUzkBwD449wJCIg+6aDJK7vFRNsiIZ6jACCokQ+z7OoyljjfHtlGJp8TyS44GGQPWB3k0lgd5BJZ782e/wHRRwLwbet6N1eX1way/7ZoJ67f1CP7Mn0/exo9P0FPkO4XqOV95LqnNvJHlqX73HaqjaLYO/cHpHJCXgD17OeNfW72ylwZSYrZ6y0bcPcor8KlkXm2AYComD1cOM79ttwY2eAl+YPZ+3LYNnmr0ow4ke1Zi/3Xb0od/vwrNBtuoSWeh7/6nbfgh0cf4/x857ExfOOLn8cHrvqllqqUBedcUoLsIJSpatojTkRERERERNqMsx8hl37+HXYsTTk4qhlxIu1OA3Ei28lHEbwd3vyqBj7WrtxpkVLUWRLPw1+++a347JlnIzHpN258a/GhX1yJr35ZS1XKwirMcUkJyc71IJKvaSBOREREREREWpfrudb1IuqQayBOe8SJtD0NxIlsp1BLd75XctmXchNe4nn491e+Cu/+/fdiS7d7ba9TH3sUl335kzj+yceanDrpFM494nLaI64RXAOaOc2IExERERERkRbmeq6tOVbWGepLD8QNaCBOpO1pIE5kO8VaenOWsjrfF8V1Bx+C1/7Zh3Hzvvs5P99pYgxfvfh/8L7rtVSlNJ5zk2UtTdkQroE4V36LiIiIiIiItIq5Lk051KOlKUU6kQbiRLbjnBEXaiBusWzo78c7/uB9My5V+WfXXoEvfOcLWDahpSqlcfKRowGtuqAhnEtTakaciIiIiIiItLBcPU4dc72I6poRp6UpRdqfBuJEtlN0DMRpRtziin1/1qUqT1nzCC778qe0VKU0jGtQXnvENYZzRpz2iBMREREREZEW5pwR53j+HXbMiOubqMCLtdqTSDtrqV5FG2UfN6xF2X9i6KffYJhbXD4VLvC5iranUM0cxubTSy/ORbXOFZUqsg9ieYGl4oo9LpypvViuusquGXE5mCg9G8va9LHZMGEAoF7nylZ1pECF88ayx2fJ8zbX1wGuO/QQvPbPP4xPX/xNnPjEE6nPdx4fxVcv/h/810vPwf+eehYSL/2HbZNfPTBklgTl7AEtWZsnAVcm43z2zEx8Lq4kx4UzZBvWH/NRqKTvA7V6Hv4018ZzTy2n4lqXH6DCdfVmr/8BoL+rnDlMLebqnzh2l5Gyn953M1eLX/h+OJr9fIcTzS0jIMPV+rNf22w94nG3e/iV7HmZIyckFzdzGRnlybqEea+Giwqlncm6tZg9TG2Ay0fbzbV3Y0ebaC7KRJ7kt3JxWfLeRt838tnzMpdv7pK8TBu0brjGhSErLrJoodZL3KfINnlAvqyexNnzxGvyOypJyOVJVCSe0fupqOjnDb9M3jeIZ4facq5uBRmMKss9XP1jyOsmicl74jRtyZlY8nmDxVyn7LNNbYDbu94j+3JyI9kbk8bRnzIXNs89b7ANtfG904Mgsxnbk3wmylPBEPdmb5REfVwd6dW4MhKuIfvuCsQ9MeQqSeNzacwXspfl0I/RYyup40nRoKuQvp5Gu/Pom3jxud5PLHa3IxjpmtsDQY08b4lPlGWyvzWhHsAA2529cvVzXEM+Jtu7tX6u/skR99KAbMfE3G2DatsBAJZlr/AKm9PXTDvTjDiR7bhmwWhG3NKxob8f77jwffjsWWcjcTS6fWvxwauvwI8+/0n87ZWX4ZUP3I0V46OLkFJpdfnINSNOdUEjuPeI04w4ERERERERaV2ulV5cWzMAwEhvesCtX/vEibS1lpoR1wh7rduKv/3iFTj08fWwnkE98BH5HuqBv+2f0EccbPf/gYfohf/2sWlZD3590sG476DdAMeeVdLainXXQBz5CoEsiNj38e/nvAp37LIfPnHZt7CsNJH6zkGb1uOgTevxrpuvAwCsXbYCt++1L27bZz/cvte+WLt8J12/MiPXHnG1oONumQvCPRDX3JkhIiIiIiIiIo2Uc7xgWptmi4vhvi7suX54yrGBkTKe2mMhUiYiS0Fn9Spai//9h29hrw1D8/oz7/7+b3H/AbviO685Fj8/7TBU85ol0S6KtfR08bJmwSxJ1x9wCF73hx/Gp37wTZzwZHqpyu3ts3Uz9tm6GeffdSsAYHN3D27fe1/cvtd+uH3vffHALrsjZqbnS9sqOAaGNCOuMTQjTkRERERERNpNvpZeQnO6GXFDfeklUvvHsm8lISKto6MG4vZ9dsu8B+Ged/hj6/B/PvNT/PlXrsJlr1iF773qGKxZtqIhf1sWT9GxNGVFS1MuWRv7BvB773w//uQ3P8cfXncVPMxt3eoVE+N45QP34pUP3AsAmMjlcPte++Hzp5+N2/bZbyGTLC0i5xiIq0zzJptk43oQ0UCciIiIiIiItDLX0pT10P3S97BjacqBES1NKdLOOmqPuP7xxr9ZMDhWxru//1v85MLP4b//+ds4+a7HActtYimLr+CaEaelKZe02PPxH2e+Gu95+4V4YJfdqb/RXavh9Mcewle//nnsv2lDg1Morci1NGU10KB8I7hebig4HlhEREREREREWkXo6keY5oXeEceMuIFRzYgTaWcd9Xp/obpwe9D4icVZtz6Ms259GE/svhyXnHM8fvjSl2C8u7BgcUrjuWbElTUjriXcuP/BeMP+B2Pl6DCOeWoNjn1qDY576gkcvGHdnGfK5aMIZz14Hx7faeUCp1aWOvdAXEfdMhdMLUi/EZivR9teYtHejSIiIiIiItKCXDPipl2a0jUjTgNxIm2tpXoVvVx6rd3ZFHMvDqz0x5XU57e8ZG/88x+fgzCKEUYxgijBMn8CYT1BMPn/QX3bv/tGK3j5zx/AwQ9vnDHO/Z7dgo9++Up8+OJf4dpzDsQvzj8Mz+y3LHPaZ7Ou1Jc5TLnODSp15dMzxeaiWs9exMqb02+FLCRvWfWF/+7y0ze9ap835TvP6+tOl6fZ7No7mjkMAAzkuOnp0e7cvmdPjQ1mDvPsc1wZj3LcDNKo1338yV178OTBR+IyHAkA6C2XccwTT+H4x9bghEfXYtXap5yDLM/rt2OorZha13glbvJwOM4NKlQHs4fz00V0TuLlXBrrXdnD5ce4c21iLpwl53wb694jrhaEMNMkJezl6shVez5DhduzyC2znPeyzzzbUu+m4to6Nn24WuAjF029zrpRRS0MUdk5exq53AdMlSskXo27bixRJSeFhIor6iPT6GW/3qKt3L0mKnD5H2S//QIA4nz2MB5ZuKarK2aTEPlvsjePAXDnGgDgkQPmRKbUszd1AQCWTKINuTzxiN/m+9y17ZOFK2EzhRDH3LVt61w4v5r9tyXkU3BCLpTh1bOn0VTJdlOTJ5lHeSL/yfY/27bzyeIfdWdPpw24a9uwixUR59smXIaw70vZkMuTpJA9wnovl8j8MFtHZi8jXr25Kyj5dS7/kWQPF/dzL6Jbsm0RjHCDFpX+7NdbdYCKCvU+Lv+9AaIRSrYRqmR/R3mMC5cQ9WQQcg1ett5i2jLGWISOPeLKQYgoSf+9rb3p5+WekQpq0Ryfrci2Xa4re9mqlbm+ZBuQ9V0te/7HZe6Z1ETkPZH8aT5xafs1st3EZQktJu7bSb7JiVxkLTUQN1/FSrq0D/d14endpw4gLCtOP+jx4ze8BAc/uB7nXXY3zvjNo8jVp78ZFMoRXnHZg3jFZQ9i7YHLsHWnbowMFjE6WMTIsuLkfxcwMvn/Y/0FJEFHrRa65Lg637VHXGsbKxZxzeEH45rDD4ZJDHL1CEc8/QyOf2wNXnXnvVj15NNTvl90LE8qncWPYwQ7PHhGnofI76wGwkKq5oLUQFy+HqGm+lZERERERERakGtGXG2aGXHDva6lKbVHnEg766iBuEI1XSFWCtk7/R4+dBd84tBd8MX3n4ZzLr8f5/74Huy8cXzGMPs8uhX7PLp11r892p/HyLJtg3XDy7pw/7G74bpzDkA931Gnaop8vY4D123AAes2YryQx40HH4BSgXitfQ5cy5eW8+oYbie1MMAd++2DO/bbB1t6e7DqGzsOxC3cErbSGrQs5cKrhgF6MXUaZ74WYYZJdCIiIiIiIiJLVq4+9z3ihvrSS1MOamlKkbbWUT2LrkGWyjwGuIYHu/Dt3z0el77lWKz+7Rqc/6M7cORtz80niegbqaJvpAqsGQYAnPKrx3H+V+7AD37/aPzmNQchDtt3RoZJEuy+cRj73LcGhz67Dgc/ux6HPLse+27YBN++OA334d1W4oIPvw9DPY3vsdUecZ2llE+vL1TQQFzHy0fpMqCBuMZyPYzkHQ8tIiIiIiIiIq0g0x5xfekZcf0aiBNpax3Vs+geiJv/IEvie7jx1P3x0Fm7Yvc1Q3jFDx7A6Vc8imKpMR36yzdN4A/+7Xqc98278f13H4PrXnkArN/aS1j2j5Vw0FMbcfCTG3DQkxtw0FMbceBTG9HtWD50Rwc/twGvu+UufO3MUxqeruIClRFZmspheiCuS0tTdjzXErXVUPVAI7mW59BAnIiIiIiIiLSqvGP7oto0M+KGHQNxWppSpL111EBcvgmDLM/uO4ivfvgUfPt9x+O0Kx/FK77/APZYO9yQv73yuTH80T9dg9d94258973H4IcnrqI3tV0M3eUq3nD1Xbjg57fhwGc2zetvHfzsugalairXbKiyY9aUtAfX/n/aI05cA0IaiGss14y4nOPtQREREREREZFW4HqmrU2zstlIT3ppyv7xMrw4QdLiky9ExK2jBuKKlebNdip35/CL8w/HL954GFasH8eyzSX0bS2jf2jbP31DZfRvLaN/qIK+yf/vG6nO/ocB7P7kMD74//0a5+53L778eyfjxpP2B8zSHZDbY/1WvP2KW3D+r+9Eb2luv3E2CzVrqVhN/10tTdm+yjktTSlpOe0Rt+C0NKXIwsrV6zj7/gfQXa3iyqOOxFgx/aAvIiIiIiKN4+xLmGZpyijwMdqVR992/aSeBfrGKxjuT8+WE5HW11I9i8lY9gGRLabnxf8ZTX++OenBlqGeKceGx7jOiif9ZdN/uHzyH4eV/WMAAD+KMTBSxsBwCSu2jOM1V96Ll1736LR/8oAnNuGfP/YjPHzoSnz9Patx53F7zjogl/e5js6RaiFbAGtx7N1P4Y3fuxNn3v4IvO32eGuEQrUO7Pgn8wn1t7bPMdcecZV8CFeu1qLs+/WtH+/NHAYA1tk+KpzvcXkyXslnDuPl0lPw5yKJuEFkU8n+hpBXnxpXBemBuGK1Bq8y9XuGy8Z0GZ2joJQ9oA24fLTki1aW2a6SrAfiPJdIG3LxufeIC2FnyGLf5wrJs+P9VLiHN+9MhespZH8ZYmXXGBVXMT/9CxP1fLoA9aGCYr6GaKTHEWJmpsljeIa8tpnrhr22nTeuBQoXdXEZEo5yiUzI92N84l0gE3G/zSPvbbZKhOudmsYgjvHNz38Bxz+xBgDwoSuuxLl/8efY0rtDG6TG3gCa9/IXfW2TTzg73v/nqjaWffWEepksyHQFRPw2tvlOhjMT3InziHeoAnYLFvK3ebXsAYMKW/9w4UzChUuIPczjIhlXjmtvWY/bZ91j6mTDxWU99sGBCFcn29ZMXAB/32CiI5OYkPeNiHgh2mfKFfhn0uoAd78JwuzlxK+yD86cqJ/ru6v3Zj8H9V7utyVdXD9JMZ/95lav0QWZCsY2SZiyHFW4cmxj8reF2ROZ5A1y1fT5HkcBtWnOzVBv95SBOADoGq5hY/fsfYBsN2u9mr2cWPK+Ybq5xnxYyB6OaY8DgCHyAwCCca5sBcTqo0xbFwDyo1y95dW5wsX0dyRBZ83+bKmBuPly7f9VXkL7f8WBjy3Le7BleQ8e339n3HzCfjjokfV4z0U34KRb1kwb7uAHN+Djf/Ej3PuS3fD196zG/S/ZvYmpnipfreMVVz+AC354Ow5cm335yfFiHg/tugse2n0XPLz7rnhw912xcmQEn/3SxVO+t1Az4pz7CGpGXNtyzYjTHnGSd+4R11G3ywXn2iNOS1OKNMaJjz3+wiAcAOwyMoo/u/IX+NjvnL+IqRIRERERaW/ubS6m70sY6uvC3hu2Tjk2OFrC2sXr1hWRBdRRPYuu2U5LfdnBRw7aBX/98fNxxH3P4r1fux7H3P30tN898u7n8Ik//QFuP34v3Hbi3tiyohtbdurBlhXd2Lq8GxHxtuJc7bR5DOf/9E684fK7MDA6t1dMH9t9Jzy898pt/+y1Eo/stTOe3WkA1a1Tp2Af/2h6ENJ1LhvBWUaW0GCtNFbZse/XQpUtaR15x3ISFe0R11DVXPp+lNdAnEhDHLBhY+rY62+7A/983rko57PPeBcRERERkdk5B+KmWZoSAIYd+8QNjhJTpkSkJXTUQJxztlOLDLLcd8Tu+OAnL8Axdz6F9371Ohzx4Lppv3vsrU/h2FufSh0fGixi84oebFnRg80rurF5p15sXtE9+f89GO/Jb1s1whhYM7mqw+R/o5bAGgMYwGLyc2Ow71ObccEPb8eZ1z+MIJ59yms5F+KHZ7wEX3/ViXh8z7ktreYaLC0u1Iw419KUS3ywVngV1x5xjtlQ0lncS1N21O1ywdUcbwXmtEecSEO42ki91SrOvfNufHf1CYuQIhERERGR9uda5cX17Pu8rb3dqWMDYxqIE2lXHdWz2FVNd0y4lqZbyu44ei/80aq3YfUtT+APv3Yd9n9s85zDDg6VMThUxoGPZl8ycr6eW96Pb77qBHz3zGMw0ptt01HXQNiCDcRpacqO4poR11WrbVtsm1jvX9qD8y22QPVAI7mWptSMOJHGmK6N9Nbf3qSBOBERERGRBeAlCXJxeo+4WjD96mRDfen+0YExdiNbEVnqOmogzrXkXKlFZsRNYQxuOnF/3H/K7jj52sfxjq/chL2eHFrsVDnddsheuOjVq/GrEw5B7HNLY5by6cFSLU0pjRD7Pqq+j/x2jSXPWuSiCDUtRdixXLMitUdcY7nyUzPiRBpjur1Oj37yKRz67HN4cPfdmpwiEREREZH25nqerYTBjC95a2lKkc7SUj2LxmafoRLmXqwIXW8IRz3elO8AQF93JXviAPQXuHDetkUgM3tqdBBPrToOl376GLz62vvwR9++FnuuX/wBuVrg44rTDsfF556A23bbZ9tBC2COfaxe1Zvy/1VbSH2nq1pLfQ8VL/W9uYiez35r0eWYETceF5GU0397giiPIMtWMccNPJZr3GBSLsjeIe71zL40qcuE4/zOLWD2fW6SMH2tVXI55MtT3zjK29q2BtMkP+Jmx1lyW8Yklz0+pjgCgOFOGxUuqHB1Xb2HCob6QPpttLkIfcfs6WKAuHv6vxdvSTeg52JdiZuVvesuXF2/smssc5hKzNUjlRnqn5Kf/t1e2aJSC6myzM5fZa9RcEULYK437tYGWyATSWSmjbkz4LjUFlREXKa5US4uj/1tRDXp1afmf7EyfZvhLTfcjH98wxsBAInP1clUOQZgmHJCXtx+hQuY5Mg88YhwhovLC7gTYNmGAiMh200h99vifPaK0iPf6WPrLSZcWCbPNXvf8LjzFhWzh0uK5Ms3bL3leJabCzYvKWSbxDJ1ApmNbP3P1nfUPYCs6tg2oUc837DPX00tjwCSsHkRehFXRozlwsVEF0TSxZ04U+Ta5EGQPVwcc+eMvG0jIXuUDdG/kpDPG1QbDYBP1K2uNngtDODNkIbh/vSMuMGxEswc6k2fKCMAkMtlDxcRbS0AqNe4QhJHRKVMlhG6biXDRdkWiQPAtz+9OnvD5yR+9nMQFdlOmdbUUgNx8+Wc7dQGyw4mvoefvuwoXHna4Tj5zsdxyJoN2HnLGFZuGZ389xiWj0wseDq29HfjO686Fpeecyy2DE72nDfgRY6SY/nQhZgR51qOrhIESLwmt3ilqcq5EP07DMQVazWMdBN3R2kLzqUpNSOuoVwbVmtpSpHGmG5GHAC8/o7b8a+vOde5R6qIiIiIiHByUXqAy/Xcu70hx9Y92iNOpH11VM+ic/+vNlp2MAp8XHv8Qbj2+INSnwX1GDsNjWH5hhJWbh3FzltGsXLrGFZuffHfhVoEWAuDbW8WGQsYbP9vO/ky2+Qxa5F4Bo/uvRLff/kqXHna4agvQGd1NQyQGANvu7ed8lEEL0kaOkjmmjHZTuVD3FwDvTN1Ykr7yzuXplRd0EiuDatdA6Aikp1red3n9VUqePU9d+MHxx3fxBSJiIiIiLQ314uls73Q69ojTktTirSvjhqIcy072Cn7f0Whj3U7D+DJwRVU+Fy4iB2kxqAchujeYXCkWKthokAua+jQrjMmZWYVxzleqD0IpTU494gLOup2ueAqmhEnsmBme5nkLTfdpIE4EREREZEGcu0R53oBdXvDrhlxo2XHN0WkHXTOmnvWOmfElfNamqcVuAbEGj1YUnSVDy3d1PZc57hQ14y4TuZcplaD8g2lpSlFFs5s97Bjn1yLg9ava1JqRERERETan3NGHLE05aCWphRpWx0zEBdGMYJk6mabdd9DFHTWpoCtyrWXiWspyflw/T3NiGt/zdqDUFqHc484zYhrKNcSHVqaUqQx5rK88gU339yElIiIiIiIdAZmr/mRnmLqWN94GV6cOL4tIq2uYwbiCo6Odc1waB3uwZJGD8Q5lqNTGWl7rnqgq6oZcZ0sH7n2iNNAXCNpjziRheNq8+7oDbffhrxeOhERERERaQhmIC4KfIx0T91yx7NA30SloWkTkaVhwXsWjTFrAYwBiAFE1trjjDHLAHwHwD4A1gJ4s7V2aMY/ZAFTNZnjr47nAQD9Q9XUZ+Vc7oXPt7elxmXLkNdNhRvsn6DC9RTSv2k2tSCm4mIxv8w6TrNzacp6bcp3PbIP14xvO9+F0fQbJ2U/98LnO/J7sg/W5Mj8DzzubZhl3dyU9jjJPkZfrnODluNJ9usaAGx39rz0R9MzYCt+epC3q1yHV3sxXUloM8cFAIZ8iSkuZM+TpMmTe02cPY31Lu7dD0NWW6bKxVesOtZ293Iw9en/3s4HbqbiOmXlE1S4/YqbqHAFk73jvZSk75Nz8Uvv0Gk/G1yRXvd+mZnAATttxn0T2ZcEZt8XDHJs4eLqhKiSvZ7MdXEvBiRk3ZrPZ7+ZTgTcfq3je3Jp9OpkOCIro24yruxNNABAvTd72UqCqWG66rNH3l8u49W33ofLTjomc3wz1YUzB8weJBzj8t8n+y7qvVx8zKuNYYFruFpXQ3kOEqK6Y+OCx9WR7CuiAdHcDUpk2478aSDCWcPlP9OOBABL5n9CPAKYAvlMRN636dcOiPout5VrlNcGmzj7wScLMlkl0PERmHs9APjkfZsRFbmLjb1GTczlfxJkP+EBef+Ni+T9vkpeN0SWmIhLoyHviUxsvs/lR0JeouE4F9AjqvKYfLYJu7g7QL6QPVyPTV8AUd5DITfz3xrrK6B/h4G3vapDsLPUFWOGe073iMZMmXhGB4CkSnZUEafb1NiGJPlsX+DCBePZf1ycI+ufiEuj9ck6uZY9Pr/S3HGKxdasGXEvs9austYeN/n/HwFwlbX2QABXTf7/gnLNcNGyg63DtY9Xw/eIc/y9cqgy0u6ce8RplkBHc+4Rp7qgoWqOtfJztc5qgIksFNeKAb8+9JDUsbddq+UpRUREREQawbVHnGslmB0N96eXp+wfTb+4KiKtb7GWpnwdgIsm//siAK9f6Ai1/1drcw6W1Bd+jzjX3nTSXpzLnja4bElr0R5xC6+WS78Zl3M8uIhIdq4Xi75yxumpYyc8thYHPrehGUkSEREREVl0PaUKPv2fl+K29/w/XPwPX8Je67c27G/n6ukXS10voO5opE8DcSKdohkDcRbAL4wxtxtjLpw8ttJau27yv9cDWLnQiXB1SpTyGmRpFa7Bkkbv4+WaBaXB2vbnmunU1eD9B6W1uPeIU13QSHXHQFyoGXEi82aSBMV6ug777YEH4KFdd00df8t1tzQjWSIiIiIii+5jX/sZXnvjvRiYKOOEh57Ef//HJQ372znnHnGzL82ogTiRztGMgbhTrbXHAHgVgA8YY6a8kmuttZhmhWZjzIXGmNuMMbfZZH5rprsG4ioaZGkZrnPl6miaD9csqHKowdp25xps1dKUnS3vqFs0I66xtDSlyMIoOOqvShgg8TxcctKJqc/edOPtzjpPRERERKSd7Lx1FOddf8+UY4etXY/lw+MN+fvOpSnJGXEDIxqIE2lHCz4QZ619dvLfGwFcBuAEABuMMbsCwOS/N04T9gvW2uOstccZb35JLbiWptSMuJbhGhArNnhGnHOPOA3Wtj1n2dLSlB3NuUec6oKG0tKUIgvDNaP7+VUFLjvuWFR22KdioFTGq26/rylpExERERFZLOdfcwcCxySPvlJjBr1cz7PVOQzEDfd3pdM0poE4kXa0oANxxphuY0zv8/8N4BUA7gPwYwDvmvzauwD8aCHTAQBdVQ2ytDLXMqKNHizRHnGdyTUg7xqUlc6Rj7RH3EKrOx5ItDSlyPy5ZsQ9/8LJWLGIn65alfr8rdfdvNDJEhERERFZNCZJ8OZf3+78zNVfzHC90FsLNSNORF600D2LKwFcZox5Pq6LrbVXGmNuBXCpMeY9AJ4E8OZZ/5IBkv7sb8sPLN82xXh5OJb6LO41L3y+vWXdpczxAEBguOUzN5fSbz/Mxdbh/sxhjHGuAjorz+d+W6GQ/YZW3yUdV20w/b2ecALhLi+eq/p6Lh+fzxLnjLgwxHRZVt+UvlnOZvNoPnMYAJg2EbMFq8y+HrWLLWTvEA+6uNkstsal0dSzv0fg1U3qWMVz7D9YqU35rl9Jh5tbfFQwBMTKCH6dKyNBiQtXGMpeRkzMxZUb4wbEk5B718S1R1ylx4MtTv+b9+gdpuIqJ9xv+9mGI6lwHlGX7NPNbWAdJdPnfzlIvwgT1mJEiQczlD1P/DJ3jZK3bdR7yYD92SuFJOF+G6tez14n2zJXjwe15v62hHj/yq9ycYX0CjfZ8yTJv3hddztWCyjnci80I769ejXedOttUz5f/cga7L9pPR7fbec5xWd9ri7HWPY6mb1G/RqXxrohy6SjfTFrEEu+EBiTaWTCsZdowJ04Q9YJHvEeh0dOwmbqETZcnG9uHcm20xKmR4H8aYllr1Hy/WMiS9gkBmPcvTQuzm8LjyxsgYyLbMsw7buA68qBF5HPUpXs4QpbuReKk4Arx3GBDJfPHq7WSz7bk/WP6/l+LmwzNul5Pi6y/Nej7HlZmeCeLXNVsuIi+6moetIj45qM7JR7n8Cem4ad3ylU6i9873m5gOh/RnrwzO9JsKJnYsZw1cF0I2H52AS6w5nriq3jXB9oeSh7X6Ypcdc2edpgA+YGzMXFhrMhFzAuZr8AipvINlqOu7bDce4laeZ+Exe4sjUTY8yeAL6ObeNSFsAXrLWfMcYsA/AdAPsAWAvgzdbaIbNt4OozAF4NoATg96y1dzQ8YVjgGXHW2iestS+Z/Odwa+3HJ49vsdaeZa090Fp7trWW6+XLoOCaEVfQjLhW0YxZS64ZdpoR1/4qzqUpNSOuk7lmlFTn8CabzJ2WphRZGK7Z/duvAHHHPnvj4V1Wpr7z1mtuXdB0iYiIiIgslrdcddu0n3VVGrPalut5tj6XGXH9hdSxPs2IE5mPCMCHrbWHAVgN4APGmMMAfATAVdbaAwFcNfn/APAqAAdO/nMhgP9ZqIQ18T2QxeUaiKvkNRDXKsqOc+U6p/Ph2li1EqqMtDvXErUF7RHX0bRH3MJzbVqd09KUIvPmHojb7oUTY/Cd1atT3zn/hjuQ17LMIiIiItJmlg+P4+zbH5z282KD+hZdz7OuF1B3NNKfnqHWN1ppSJpEOpG1dt3zM9qstWMAHgSwO4DXAbho8msXAXj95H+/DsDX7TY3ARgwxuy6EGnTQJy0BNeMuEat4/w814y4sgbi2l7ZNSNOnZEdLe+cEae6oJFcDyShZsSJzJt7me2p97nLjj02te/lsvESXnnH/QuaNhERERGRZjv/2jsQxtMvrdtdIdei30FYdw3EzT4jbtQxENc/qhlxIo1gjNkHwNEAbgaw0lq7bvKj9di2dCWwbZDu6e2CPTN5rOE6ZiDO9YaDBuJaRzNmxDk7r7Q0ZdtznWPXoKx0jnyUHhDasdNa5qfuWpqynsAk7MLuIgLMYUYcgJHuLlz+kqNS33vbb7Q8pYiIiIi0D5MkuODq22f8TuNmxKX7EeYyI260L700Zc9YBd4Mg4cigsAYc9t2/1y44xeMMT0Avg/gg9ba0e0/s9Za8DsL0jpmIE4z4lqbayCuq9rYwRJX55WWo2t/rlmPrrIgncFP4tTbcrExiPyOuV02hzGohY5ZcY63CEVk7rpm2SPued8+Kb085UkPPYF9129akHSJiIiIiDTb6gfWYJ/1W2b8TqP6Ft1LU87+Qm/iexjryU855lmgd0zLU4rMILLWHrfdP1/Y/kNjTIhtg3Dfstb+YPLwhueXnJz898bJ488C2HO74HtMHmu4julZdL3h4BrckaWpGTPiCo7l6FzLFkp7qTjOsassSGdwzYar5ELAmEVITXur5l37xGl5SpH5cC6z7Zj5feu+++KxXXdKHX+rZsWJiIiISJu44Ne3zfqdYsMG4hwz4hwvn7q4lqfUPnEiHGOMAfBlAA9aa/99u49+DOBdk//9LgA/2u74O802qwGMbLeEZUO11lpbUfaO0PGJbVN8g4n0lN5hdL3w+fbGxtMV4Fx0dXOV5MrecSrc7n2js39pBxN1bmBptJLOp7ko17IPdsZR+kY14afjL1bqU75rc9y0bVPdNh7tXs5p+vR7y7KvI93Xw63zPNjV3PWh6/HcGgvb2zrRRcUVjZCDnUR9EHWlZx2PRY5B3qg25btxgZutHI5xgzeVnYhwlosrN0KmcVn29ziCCjnrm1yRod6bPT5vIl0PVMMA8Gf+Ww9tWjnj59O5p7YbFa4+zNXJfm/2QeanugeouEql/Iyfl4MQvZhajz7z1AD8SvYy2fUcV44NOQEvLmSvIwFg7BCiMOe4REZ1Lo22kj1cMMw1J/0yd97sLNfjdOKZi6STIeufqJsL5xP9AEnuxfwoxOk/UCqEU77zvItPOxEfu/SnU4696fo78MnXnYNaOP05NRXuPT6PKMoB2fyx5MsTbJ2AIHuZDIrciwd+wCUyDLOH8wx3rSVkm2TcI9uSRJ0cFbk0BhNUMFiiSq5y1Tg88n2ygOzvs8QtwHhc2WJfi/KqXL1l6tljdNW3cxGUuF+X5Ik05snnZrb+J/OfeZbyIvK5rdS8JeBqfeQL4ewCWuSF49WIZykiDADkt3J7dEVdXBuUqZNtyDYKufKfJET5J9ojAN/+qfWRhcsS6SSCDI5N4JW3PjDr93qjCvKFqTfPYpi9nRZU02VkIsijGs1cTserOWzp6cLuGJ5yPFkPbFo+/UNFpUT2pcVM3cpFRTYJ4RF9Aoa4ZgAgLpDXNlknM9dbvZtst5L37XCcqxSSkChb1QVZHfIUAO8AcK8x5q7JY38L4F8AXGqMeQ+AJwG8efKzywG8GsBjAEoAfn8hEgW02kDcPBSc+39pRlyrKBcc+3g5zul8FF0z4rRHXNtz1QONXvZUWke+7tgfboYOaeG58tWV/yIyd66Xikp5d1vm+ycfg7/+wRXIRy8+aC0fn8Ar7rwfPz3hJQuWRhERERGRhXb+jXcgF80+oNCwPeIcz7JznRE33Jt+GWlwtDTvNIl0Imvt9Zj+NZSzHN+3AD6woIma1DFLU3ZVHLOdtDRly3ANljR8aUrXHnGO/cOkvbjOcbFe597SkpbnWpa0qnpgQbjyVQNxIvPjnt3vHogb7unGFccemTr+tmtvbni6RERERESaxlq89dpbUoc3LOtNHStWGjQQ51iasp6b40BcX3ogrn+suStjicjC65iBONeMuMo0bwjL0uMaNG30rCXXDDvNiGt/se+j6k9tHHnWOvcKk/bn3CNOM+IWhGbEiTRe1rbMxaefmDp2ykOPY58NmxuaLhERERGRZjn+0bU4YP2m1PFvn3Nc6lij9ogL6+nZdzMt9769ob70FkkDmhEn0nY6ZiDONdW4pBlxLaPsGDR1Da7Oh2smjDrgO4OrfLlmFUj7y2tGXNNUcxqIE2k010tKpRkG4m4+aF88vnJF6vhbrku/QSwiIiIi0gredk26LXvzEfvgwX13SR3vatiMOMdAnOOZ12XEMRA3OKoZcSLtpnMG4lwz4rRHXMtw7uNVqTVs+UCTJM494rQ0ZWcohwu/B6G0BteMOO0RtzCcM+J03YnMi7MtM1N71xhc4pgV9zs33IZQM8NFREREpMX0j5fw6tvuTR3/7iuOQbng6Ptp0Iy4vGNpyuo8lqbUjDiR9tMxA3Gu/cRcs2BkaYoCH7Udlg/0rZ3TxqtzMd1ydNbrmEuko7kGejUjrjO5Z8RpIG4haGlKkcZzdSTMNCMOAL538rGoBlPbWCvGJvDyux5oaNpERERERBbaG266E4Ud+viGe4r41YmHOre9Wcg94uY6I861NKX2iBNpP63Vuxhmn/1kzLYwzhlx+eCFz7eXL3CVcKXMDew9PrwzFc74SeYwftiYgau5yucb16layYfIlaamv1itvbDmsqlxg2YmArpKjoHaMAczQ/I9L3v+1yLukquS4QIijQAwVEo3AmYTRVz+e1VysJOZDGnchyuOTspirY7nqwcTTRNwFgk5oTIgxgA98lJL8ly4YDx7GI9s31qPm/lqg+zh8tZxrwhCYJYyUBrnMnLf3bh9mA7efyMVziMunKdKg1RcD0zsOuPn7hlxMerLshfmkT7uGjUxF86rkeEm5vZG5PbqEXmRckmEP9G8F1AS4hoF+LrVNvHdmpg8bcxv2/6cuZbWqSZ553mNitvaVEN9XbjymCPwulvunvL52669GZcff2QqnM1zbQsTZz8BtT4qKiTkEw5z3wAAEG3QqM49N0SOZ5e5qBLPUR753GAtWQGRbXmmvuta35hVNeaKKZPNrLMAIPG588ac7hz5jBiGXLgxxwyIuciNZb9vwyPbJOTzhk/001pDFi62Te5z4eJC9jBRF5ePtR4uT3zi+SYhihUAkNU//Cp73poXV5LnMiUucuEs004g7qMAYMjrplbJ3ihk44q6uXCFzeR9g2hvefk5tkmsxVsdS6x///SjMZYUMWLSM88KlTqqO+T3CHHBBdV0G/m5Sj+GR9Jxbi+KfDwXpp+5e4cqGB2foW9ujHso8ivZzxsTBgDAPTbAJNnj88h36dk+SY+8bxc2Zy9buXGy/km4cPUerm5l2pJ+g1a6axUdM93H9YZwRXvEtRTXnn6uvf8YxXq6fJS1LGXHcM0WcO2zI+1PM+Kap+aoYzUjTmR+XLO5y7PMiAOAS844IXXstAcewx9ecU1D0iUiIiIistCOfuxpHPLMhtTx75x5HABgwvFiRlelQUtTOp5l59qXMNSTHqxbNqalKUXaTUcMxAVRjDCeOgwfeR5qAfkqkiyK6WYtNULBuYegli7tFK69AF2Ds9L+3I1nDcovBPfSlNojTmQ+ulwDcY59UHf024P3w5qdl6eO/+33rsBfff/Khu3JKyIiIiKyUN5y9a2pY7cevDce333bSmSuLYoa8oK/tc6+hFo4t37nod70QNygBuJE2k5HDMQ5B1nyIWDIqbWyKJxrOTdo1pJmxHU212wBV70h7U8z4ppHe8SJNF7B1Z6Zy4tFxuCLrzzN+dEHLv8NPv6NH8JLyLVlREREREQWWG+pgtfedG/q+POz4YDpVtqaf79iGCXwdnhxLfI8xP7cBuKGe9JLUPaVKvDj5m4vJCILqyMG4lxvN5RzGmRpNaWFenMF7pl1c+q4krbgWprStbyXtL98lB4Ics2YlPmrOjauzjs2uBaRuXPOiJtjm/fi00/AZatXOT97+zU34zNf+DZCRx0pIiIiIrLYzrvx7lTf3kh3AZevPuKF/6+FAeIdJmXkoxhBNL8BL1cbOcsLvbHvY6R76saYnrXon6jMK10isrR07kCc9odrORVHR1KjZsS53iBX53vncJUtV2emtD/NiGsezYgTaTzXbO7SHJamBADrefjz97wZX3/Zaufn5916D774399AQXuoioiIiMhSYi3e6liW8kenrEJ1+/4eY1By7BM3375F1wulNceLpzMZ6u1OHRscm6DTJCJLT0v1Lpog+5I43V1VLDPjqeO1QoDurqozjOdxS+8MdJWpcN0hV+GP1vKZw4xMpKc7z0VU5/bTq1azF7G46o5rwtGRlJ+IX/i+8bn9SxIDFBLHG+SFEElu+r+ZbM6el/Ui95bNxFbuvJkSd968avYx+rif60Bnz5tfItJYcMflmhFXqNdhJ1+U8smXo8IxbvnbgKhKLPtaBbntT1DJHjAscZFFBS4fw9HsmdI1kT7Z9SQHf2zma2mPfTdljgsADu7fSIULDFcoN1d7MofxyEJSKM58b4u70ue1y1bhd2evS5KIKyO2wtWRlrwn2hnuKdPx+riZ30mdqxRsJXs4sjjCJNx58yKy4iKyst7LxWXIMWUmT2wwmUZr0eVamrIrhHXca03ZVY59fOyNb8Rwvht/euVVqU9fdu/D+Manv4L3vu/3MdqVrW0SF2b/Tio1XNMaSUi2Ccl3sLze7IWrp4d7w7mY4+qEgHi+YcIAQJRw9c/W8fT+KHNRG+nNHsg2d4uCpIkLbRS2cOFyo2TdSmSl73NlKx9wN5xSH/e8HY9nr7jYesQne2Zc9fusPPJck/dtv0aGK2cPl5D5WOsj2yRE0WKeowAgHCfr5ALZJiSCJT6XjzG5YpVf4/KymbcAQ9Z3Pb3Z2wnVGncBxGR+ROlxoznxiGe3ejRzgTxyzTM4/Ml1qePfPvtYGDO1nJTzIXrLU/uDu2s1jPe8WOfHcbYLIKikz3MlDBBFsz83xsPbGglbi93YB1Nv4n3r6oi73Y2Iwkayv49oSjJ9VGxcAGDi7Nd2EpB9AiUuHPsMXBjKXiewdV1uhHso9epcvVXvyV4HefXO2ou8I2bEFVwz4gqa7dRqFmxTVWwbdNmRZsR1DudsS82I60iuukAz4haGZsSJNFYuilJ7U9R8H9Ec96Z4gTH493PPwf99w7nOj094fA0u+cznsWJ0jE2qiIiIiEjDvO03t6SO3bHfnnhkr11Sx519i5XGz4jL2o+wtSc9srlsXDPiRNpJRwzEuQZrKlqasuW49jhp1GCJq/Nde8R1julmxEnnyUUalG8WDcSJNJZ7fzi+LfPls87AX/7u76T20QCAw595Dpd++nPYfcsQ/fdFREREROaru1zFeTffnTp+yUtPcH6/5OgP7prv0pSO59isA3FD3emVATQQJ9JeOmIgruB4M0F7xLUe94y4xgzEuQb0yup87xiuQd75NsSkNeVdmywHmhG3EFxr5ucc92sRmZsdN6cH5t+W+e5JJ+AD7347qkF6Vt1+Gzfju//+Wey/nltiV0RERERkvl57893o2WFG21ghj5+ceJTz+wux2lbOMRBXyzoQ55gRNzhRotMkIktPZwzEuWbEkWtQy+JxDpY4Op0Yzs4rlZGOUXHsP1h07LMj7c89EKe6YCG47sOuF2dEZG6cLxU1YHb/lUcfhff84bsx4fhbuw2P4NJPfw5HPPXMvOMREREREcnqrdfcmjr2w5NWOQfcAKBUSB+f94w419KUjhdPZ+JamnJQM+JE2kpHDMS51vqt5DXDodU0e0ZcRUtTdgzXoGuhQYO80loKjqUptUfcwnDNiHM9wIjI3LheIGnUMtvXH3oQ3v4nF2K4q5j6bPn4BC75zOex+pHHGxKXiIiIiMhcHPbkc1i1Jv1C2LfPOH7aMK4V0ubbt+hamrKWcWUd19KUmhEn0l46YiCuUHUsTel4A0KWtubvEadZMJ3CtUdco8qWtBbtEdc8rgFO15IeIjI3rj3iXPc31p377o0L/uz92NjXm/qst1LFRZ/9Es6694GGxSciIiIiMhPXbLh79tkd9+2z+7RhSo6X/LsqjV+aMvMecY4ZcdojTqS9tNRr/jZObxY/m5HhLmDYcRzFbZ85I8oeDwBsJdIHAMX+ChXO82xTwgBAHHNjtkmdCFd352MpyKeOFcv1F7+fZI/qhb/j3CNu5s4r2529w3jP3bZmDgMAA4UyFa4ccQMIY9V0Xs9m81C6Y24uknL2uAAgLhBl2bjDuN6I6qrVtvs+d21HRe56Y+KLuri4bHrbnzmJC9nTWKlx+eiRYzM2yJ4n+dgxIy4Xws5SlT27eSBzXADw3JZ+Klx9iLtuEGbPk6CbeyiJxmauf0ZK6QeNYCKBv6aQOa5clStbPnf7pa+b0qHZIywUuZcCKuAGYGYr605c9vPYqpVA3WsA+GSZNLXs8SW5bWEKSTX1WTkfvvB5Kq6B7GXrkYHleONH34eLP/ll7LVpapsmH0X43y9chE+94eX4wjmnI9phXzlvJHvhisn7qEe2yQ3Zlowmsj9SjZZ7qLhGp2knz4q5ttm2Nfmqp4m431YYzx7OI/vbwgmyveVlTyNVHwMobJ3HQxHBJNl/W0KEmQ/f5/KkvoIoKGNsFwuXJzmibq0OkmWEPW1kdEx7iy39ScC2JbPXCUx9AABexNU/xc1chWfi7PHVe8nyT7btLBkddb8n2xYJ+eBQLmdvy0c1Li6fzP+EzH+/QvR3lNKRFas1vP7Gu1LHv33SiTCT33e10SaQXuEhv9Ui2vLic2iUsYyYDel4KjaPZNPsz7b54W31+Hi9L/XZ8qES8pvcGR2QY3RM+WfbTUw9AnB9QB7xHAUA+VHuzuHFVDDyfsP293H1liXHRfxa9rw05L2tVXXEjDjt/9Ue3DPitEeczJ9rGdKiY5aktD/XkhLVjEtKyNy43hB05b+IzI1rSeVGLU25vad3Xo7z/+Z9eHj3lanPgiTBX3//5/jx//1vHLFW+8aJiIiIyMJ4zR13o68y9UXHiXwOPz7u6BnDudrH816a0rXFRealKdMvqg6UtTSlSDvp2IE47f/Velw3S9cyTAyVkc5Wdiw9WNDSlB3J2YDWHnELouq47jQQJ8JzLk05zSb187VxsA9v/siFuHO/PZ2fH/7UOvz4/3wWf3Pp5Sg0aD9fEREREZHnvfX6m1PHfnLsKowXZ56F5lyacp79P84XejNucTFUdOwRVxqn0yQiS09nDMQ5OgBcS9HJ0uaaoeZ6+5uRd8x+qqjzvWO4GmKNmm0prSUfpRvQ2iNuYWhGnEhjuZfZXrj6a7inG2/7y/fi+sMOcH7uW4v3XXEtfv6xz+DkBx5bsHSIiIiISGc56Ln1OHbNk6njl5x64qxhF+Il/0asrDPiGIgbKJfhx+QaiCKy5HTIQFy6Q32h3hCWheO8WTboLWtn55VmxHUM136AjZptKa3FNShfDTQQtxCcA3GOGYkiMjfOtswCt3dLhTx+/4O/hy+88jTExr2XwD4bt+CST3wJH//Bd9Bb5va8FRERERF5nms23IO774q793av1rC9UrOWpsz4cn/s+xgupvev66uo/SzSLjpjIM7RMVHR/l8tZyFnLbn2A9MecZ3DVR9oacrO5JoRp6UpF4brDUHNiBPhOfe7dbxo0mi1MMDH3/IavP7v/ggP7rHLtN9782234Mr/+Fe84r57FjxNIiIiItKe8rU63njz7anjF596IjDNi2Hbm1iiS1MCwFBXT+rYstIElSYRWXo6YiDOvXm9BllajWuwZL5vrbzwd1yDtU3ovJKlwVUfaGnKzlRwzojTQNxC0B5xIo3VzD3iXO7Zb0+89u//GJ944ytQDXznd3YeG8NnL74I//2tr2Gn0dGmpU1ERERE2sNr7rgb/TusslAOQ/zo+GPmFN61YsT8Z8Sln2Nrvrs9PJNh1z5xExqIE2kXrdO7aIDewVLmYLv1jWK5SVday/cYx0F7bnCGWVHgKrlSxA3ubS6n33iYi6FSesrybCZGZ960dDq2zo3ZmlySOYzf6x4AqS5Lv9nSFdUQTH4/slxnk4mNs/O9XAyBGe6b+e7sN+p6wuVjLc5+AweAcp0rkzGRznyBa7iU2P0asxetaV89KDmWHizW67BhAhiDOLJEZICP2d/GcrFEVhomPwCQSYRlwrFxka+MJETRysXpBnQdOfi1mRMf3ptuMC+kkMzLOE+EKXBNhdwsY2q2kr4f5WsRcsPZf5xHjpuz4SzZerIJeeIIQcjtJVDLE/ftEe4eZbiqFRHXlIENskcYlLhzxtQ/AJAwTZn+bQW5aCqpjyp93guf78jzuRNg7fRlJAo8fPYNL8WVJx6Gf/7yZTjhkfTeHQDwyvvvxeonHsPH33AuLj3p+GnfXs5v5spWnOd+W9TNhevZOfuzQ0+hSsVVrXMVENO2q1S5glwb59rk/jAXH9MmYe6HAGADtjGTPQhbj8RFruHkkX2QhniHpjzMVeRRN1cnJFTDFfDC7PdEUybzn2yTVJcRaSSfG9g2ORuOuW58shw39XljnDsBXpULF4xxmRL1ZK/L/TK5l5VHtrfYtjUTjGy3GqIeAYB8oXkvBidkmzDJk/0dXvb4zHbP42+7Lr0s5U+PfgnGgi6YHYq7X0mnsRqn70HdpTqCsRcrgqz1ZLGULvtRlENuePbKxd+uCT9c6E59vnxkfMp3nse2Ezzivh2UuDISkuEYbD0elMlnIq5JAhBtSUNWrUnI3ri5YH6FKFzNKyJLQmfMiKukb2AVtvNfFk3F8dZKwbH/H2OxlnOSpSHxPFR2mPXkWavZOR1Ie8Q1j3NpSu0RJ0JbSnsiP77bzrjgo3+Av3vXeRgvuNPQXy7j3y7+Li7+r//FEU89A5Owb5SIiIiISCc4aN06HLdmber4xSefNOe/UXbsEddd416Qel7O1Y9AbHEx1JUeiBsoZ5+UIiJLU+vMiJuHvGNEtlJUx2qrcS0f2LWAS1Nq+dLOUsmFKOywnECxVkNV5aBj+HGMcIeO4NgYRF5HvLPSdHXfR2IMPPviK1BhksBPYsQe+3qZSOdyLamzmG0Z63n45tmrcdXRh+CfvvYjnHXXw87vnfzI4/jpv30GW3q68duDDsCNB+2PGw4+EE+uWN7kFIuIiIjIUvbWG9Oz4R7cbVfctfdec/4bJcdAnKtPMAvn0pTEC71DRcdAnPaIE2kbHTEQ55o1Vc13xE9vK5Vc+pwV6hFMksDOs6PcOSPOcXOW9lXO5TBQmrrOeLFWx/DiJEcWgavxXA3COW34LARjUA0CFHd4ezAXRSjnNBAnklWXo73r2gOj2dYtH8B7PvROvPbXD+Dvv/dDrBh3dyYsH5/AuXfcjXPvuBsA8MzgAG7e+yD8dr8DcdO+B2JTb18zky0iIiIiS0ihVsMbb70tdfySk1ZnemZ39fUtxEAcs9f8sGMgbrCsgTiRdtERo1H5qqNCJPe8kcVjPQ/lXJgaNCvW6igVyI0eAHhJ4r5pEtPIpXW59qrrmmdjTFqLa1nEiuqBBeUciIsjlMHX6SKdaqnNiJvCGPzkuFW4/pAD8Xc/+DHOv+WOWYPsMTSMPYZuwfl33QIAeHSnlfjtvgfipv0Owi1774+xYva9kkVERESkNb36rrvRV5m6WVo5DPHD447J9HdKjm1o5tv34+pLYLa4GHYsTTmoGXEibaMjehhdS1NWtUdcSyrlHQNx1fkNxBUcs+FKOc2C6TSVBXgrSlqLa09AZjkJmbttDydTZ6JqnzgRjmt2/2LtETedoZ5ufPidb8WPjzsaH//2D7DH1qE5hz1w0wYcuGkD3nnL9YiNwd27742vnnwGfnHoUWqziYiIiLS5t914U+rYT45elfnlLOeMuPrSmBHnXJpSM+JE2kZHbHxTqDhmOWhGXEuqOAZQXW+AZ1FwbKpaCdX53mlcswZcg7TSvjQztvlqjocT13kQkdm59s1dCktTulxz2CF4xUc/jH940+tw7SEHopyx3eVbi2OeWYv/uvQifO7bX8HKkeGFSaiIiIiILLqDn1uHY9c+mTp+ycmrM/8t1x5xS2ZGnJamFGlrLdTDaBH6ceZQ/aaEMEqmHEsMkO+KkDfuv1eJuWwJvGT2LzmctPMaKlw4Tfpn8mxlgIrrmQkuXGIb+4ZyvSu9b9B+PZvh7Qw8F/ZTf7OrOp46VimE8AarM6elSrzdgq7MYQBgaIwLVytzA4q2kn1/prB/5vyajtfDDXaZdYXscc3Qv18x6cZY75YY4XIffpUsx1yVAEu8ImEiMo2WC5bkiYDkjAWPHQ/NmP95136iXgi/PHu6awNcRia7V2b/ksOyAa4xbkz2dA6NpB8G5iJ+dvY3E10D4PHOVUzsmvH+Rr5WFIxxAcNRriyH67MPipR9rmx5AVkBednji7q5NIZjzZ3FZIgsIZpa28KRZZKKbzIbXS+PlAvhC5/vKF/gKtfSOLcKgV+emilVFPGNE0/HN048HbkowtFPrsXJjz6Kkx97FEc9/TSCZG4n7KyH78eJax/Dv73qXFxy4mpYz0PUTZb/hCuT5VI6T3YeGkV3uYo1u65w3v/Gh7i2nRkjH9+I+p9tW+RKZDiybmXaCey17dXJ+o64bcfkOLrPNclhLPfbaj3Zz5s3ypVjtknoFbgT7vvZ65KowNU/JuJuHMy9Le7h8sPUyTROdyOaPWBmda7ZSj9vMNd2OMGVkSTk8r82yN23mfjYeoSuW0e5E5cQL1sash5hjQ8TS3CT9UhA3u8t8dwAACbOHt/br745dezBlbvhwZ59kN8y/d9zXduJzSGBgbddZ0g+ilDYapF42/IwznjZ5Grp8hHBn1PdEpRe/O9RzzEQNzEx5TvPo/tJCEGZPddcuPxI9ustCblyHJS4azsqcPvaJyHxvF3kflvXRrKQkOeN4nXWyiYtNBDHyVXTF1S1oGUHW1W1kO60dS09moVrKaeyli7tOAuxYa+0FudbbJodu6Bcbwm6ZimLyOxcM+KW2tKU06kFAW7e/wDcvP8B+DRehZ5KBceteQKnPPIoTnr8URy6bt2M4XuqVfyfH34f5911O/72/DfjkX13alLK04Ioxt9+6wq84xc3wbcW9+67G/76D8/HQ3vtsmhpEhEREWlVhVoN591zW+r4pcecxPXtGoNKGKJrh+Uoi/UaJvLZX/gGGjgjrqClKUXaWdsPxDn3h9OylC2rkk+fO9fSo1kUHbNgXLM0pL2VHRv2znedcGktjVrXXebOtfSna68+EZmd88WiFm3PjBcK+M2hh+Gagw8DACwbH8Pqxx/DyY89hpMfexR7bd3iDHfc2rX46X98Cv/5qrPxv2e/FPUm1+FdlSr++zOX4KV3P/rCsSPXPIcffvRz+PTvnI0vnnvqC29ai4iIiMjsXn3/XeirTl1JphTm8JMjjqH/ZinMNXggztGX4Gdvh44WiqnZev3VMvwkRuxxM7BEZOlo+ydBDcS1l4pjRlzBMZCWhavjyrUXnbQ3176ARc3M6Sh5x/lm3mKTuXPuEafrToTi2jN3qe4Rl9XWnl5c/pKj8Xfn/w7O/Ku/wQfe/i5s7O11fjcXx/iLn/4cP/nXz2DV2qealsYVI+O45P9+acog3PZp+utv/xzf/j9fwp4btjYtTSIiIiKt7s23/zZ17GeHH43xArF85yTXi9hddXJtZwA5x0BcjehLiD0fY47BwP6KY21KEWk5HTAQ5+hYdcyqktbgGkQtzHNpStdAXqu+QS68Ui69CHhBS1N2lIJzOQndLxaSa6DT9TahiMwsiGKE8dQ9Z2JjUAva8M1ZY/DzI4/COR/6K1x6/AnTfu2Qdevxg0/9Nz72vR+hq8p3rMzFvs9twvc+9nkcuea5Gb933CNP4vKP/Bcu+PWtALmPjoiIiEinOHj9czj6mSdTxy89ZvW8/m6jtyZxL03J9SUMFXtSx7Q8pUh7mPNAnDHmmJn+WchEzodrRlxNM+JalnNG3HyXpnTuEdceb5DL3FUcg687LlUg7c21JKJmxC0sLU0p0hjT7g/Xxnsij3Z14W/fdAHefuH7sXb5Cud3PGvx7t9cj1/80ydxxgMPLUg6jlmzFt/9hy9gr01Dc/p+d7WGf/7SD/GVz1yEnUbGFiRNIiIiIu3ANRvugZW7497d9prX32301iTubS64voThYnqfuEENxIm0hSwz4j4H4CYAXwDwxcn//iyATwH4ZOOT1hj5aroyrGggrmW5loyc/x5x6Zuta1BG2purIVZwDNJK+2pk41nmxvWWoOttQhGZmet+1SnLbN+0/wF4zZ//Bf73pS9DNM3+a3sMDeOiz30Zn77oYiwbG29Y3K+45z5c/N+fx7Lx9HJBlTDAD095CZJpBkPPuvsh/OLvPo1X3XZvw9IjIiIi0i6KtSped8/tqePfOfakeb9sVg7TKyLNbyCucTPiRvPpJTd7ahXHN0Wk1WSpFZ4D8AfW2nsBwBhzBIB/sNa+aUFStiNrMF7KvmnmhvXp/SO2mG48sGGX6aOyXIWeJFy4tT3LqHCDhXLmML6XzP4lh3Kd68zZOt6VOcxM+b/ZpN8MqQ4FeG6oH/U6t/xSvhynjpXCHJJo5nHqIEyHm83O/VznT0+OW1JpvJZuXMwFc77LNa6MVGLuvMW92fMfE9Of01LRsexpUkOS45eO8mrNm4kQZK8OAAAxOfnTqzfvtyXkuxM2zHbuctbRkV0IEBVn/zt2T+4E7DTA1QnGcOWyWs+emWGOm6FWHpx9QK3Snb7+86jDFrLdq0ydW2mbvb7jAlf+o92z1+X9/dx+ALWIq1tLY0RdTlaTtQGuTcIKxonzRrYJQV6j1H1jJETX5nRelsIcMDL9+ayR13ahi+ukKPcR9c/w3MpxNQzxiVedi58dtQr/7/vfxRHPPuP83htuvRNn3P8wvnba6bjkxJOwtWfq0j9Z6oS3X38D/uH7P4TvWGJya08X3vuhd+KOA/fCJWccj0994XvYY/Nw6nvLxkv4/Ge/hR+ctgr/+K7XYKx79r1OkoC7bmyVqBMqZN0akHVk9scGAMD/z957R1lyVWffz6lcN3SYqJFGCSGQRFAARA7GZLBNMg4YY4yNjXGO2J8xr83r+Dpng7GRsUkGbDA552CUQCihMEqj0aRON1XdCuf7o3uk6a7dfevsubn3b61ZM1N9T1fdqlMnPWc/22IMkxWz+XHA/G6BeZugGENdALAyXvvjdHjlkor5PdFM11zl8K4x544TOO+Nz6tceTzEsQyzb9NVXr+RMG2Ss8D8nnhLzPvI3LvS2WN+LzPmRplggVe3uO2dt2LeCGlm+5/UeM9Npcw2gfEI/JC3WZA7b+PQjXl1S6/w3lHNXROwy92T595wDerxegGq5Xn44KWXlm77cpe+xmZYXAjxre4DYxHD5+ZlRBCI75bq76wNr1qbEAlrUVT4nNdgzmU5a0DMR73xmsuy2XPbCu64adhwrtPKme0Ic0yYVnmLcLlr3pb7i9vLiczkDj30hAgHAFrrbwO4sP+X1F+o/F/bZYfwNEJFqlHWkiaQu8g9iZrcbvTbI1yYPIJEcsQNG7GmFIT+UCH6KyrSe9q54Yz9eMnrfh5/+PwXoOPS4/0d7TZ++eMfw5f+4E34o/e8Cxfcu3VetwJa49f+5yN403v/ixTh7to9j5f8zk/j6vNXLZO+fuGD8Jw/+Hm8+ymP2vRXvviL1+Kjv/G3eMK3bzO7FkEQBEEQhCnlB678WuHYhx9xKVqBeZDGRkhrSub6j8pzeFlRXUlsnsDZIoS4ajLYfMeCIAwHEyHuW0qpf1ZKPW3tz1sAfGtQF9YvKhGxMCFC3MRCPbuQeMYmUEJeRIgywnTTz4GYMJn4hBAXbbKQK/QHWogTa0pBMIXaVLRd891mto1/fup34Xm//Kv48oPP3/Rzfpri+6/8Bj78l3+G//jHv8czv30drHzrsAE3TfHn//FO/MynP0P+/FvnnoEXv/GncWDf+px1zTDAb/zkS/CTv/gjOFYvujsAwOnHl/Hvv/+veMMVH4Yv1tiCIAiCIGxjLjh0Ly65567C8Xc/+nF9+f3URuwK05qSEuFi22HbZ7a9otBY6YoQJwjTgMlW/1cBeC2AX1j7/xcA/EPfr6jPbOecGdMItah0qnm8AmoXueSI23YMItpSmCzoHHESETdIYkLolIg4QTCnQuS7bW/zTUV37dyFH/3Jn8JLrvwGfutDH8RcZ3ML4cfdfhsed/ttuOvDO3DFk5+E/3zsY9AI19tE1qII//AvV+BJ37mF/B2ffeRD8Lqf+yG0g81twT/5qItw9YPPwh/863/j2VfdQH7mVR/7Kp76zVvw6cseittO343bT9+F207fjcUZWsATBEEQBEGYNn7gyq8Wjl2/7wxcd8aZffn9bWIjdiXmiV39zA8HbBIRJ0KcIEwFpVsGrXWklPpHAB/RWt88wGvqKyFhTblddwhPA1REXCU6NbGEriMixG03qIi44BSS9QqTByUAUUKR0D/EmlIQ+gOVXF42FQFQCu97zOX43AUX4jc//D/43muuJu0kT3DW8QW84b8/iF/66Mfx3ssfgyue8kTcsXs39iwv423/9M+48N5DZLn3POVR+K1XvRBpiTxIx2dr+KlfeDle+pWr8MYrPox6p7iw8qBDx/CgDx9bd2yhVsFtZ+zGrft247Z9u3Hb6at/37N7HrnFy60jlMPOM+xoNbGr1cCexQZ2tlf/7Gqd+HcTc1ETubIQOS7itT8dx7v/3104D/zMdlf/bbtY8UN887RzsBgW85oLgiAIwnYk7Mb4vm9eVTj+rsc8nh1ltpGOVxS7qPF0GegNvfxxeIu4NrGmFITpoLQQp5T6XgD/D4AH4Fyl1CUAfk9r/b0Dura+QOWIE5FlcukEhFhCPGMTqKgnWbzaflCRAxIRt72QHHHDhxTiiB2FgiBsDbmpaJtHxJ3M8Xodv/qDP4w/e/Zz8Yqvfhk/8PWvbRkhV4tj/NgXv4Qf/dKX8dkLL8AFhw7hjMUl8rN/+exn4i9f/jSzhSGl8P6nXoavXXQu/uQf348n3HCgZ5EdzTZ23HwnHnPzneuOx66DA3t34rZ9u3Fkvo7lavjAn8oD/15ya1iuhIhljAtgdZFvvt3CznYDO9pN7Gw1Md9Z/XtXq4GdayLbrmYDc502LPCS3ZchsWx8/LxL8I5HPBk37u7PTn9BEARBmFSef921qG2ITmt5Hj70iEv7dg5qIzaVc7kM/Y6Ia1NCXDdi/z5BEMYHk5bhjQAuB/A5ANBaX6uUOncQF0WiAM8z3yW/WzULx7y5DGfML29aZn91yfg8ANDJeBPbO1fmWeXuWjAvt8Um4C2x7a1zZmx+PvPdKtHS5olXV5JK4ZjXylbLpLydMQERUdexfehk693FszuKdasX580e6/0hgnPC46xyXI4n5vZH31nZwzrX3XqOVc6qmO8IiqPN39G4U6zjFUSwTu8gafPebRXxkvNq2/xF7Wb92RlWFtU1P5/b4F2ju8IrpwzbBL9b7GPK5ojLj/ISRh85vrmF2VZYETP6wTKvW5p5Kjfqff+TqPj9K0s5/EOG75wa3AIphdPmleNM7ZotXt1KO7zJn7NkXs5f4L2jFlNzjed5z1szmmS3wToV3MO8e5IxHne8e7OIuK2FuGSL8daW5TzemFCF5uP4hNFmAYDVph/2wdPm8Ecvej7+6nnPwIu+cRV+7AtfwvmHj2z+e7TGd99wI/mz1LLwOy98Cd5z+eOgO8XcIL3ILI27wz344V94DV71mS/jN973MQTEjupe+EmKC+45jAvuOVzq87HjrAp0YYjlSgWNIEBq28gshcyykCkLmb32t7KQWRZyZSG11/62LOSWQmrZ9/+dWdZa+dXfk8NaO3bi86t/Z5aNW/buxa17TzP+nlvhbXhPlc5x+d234iHH78WOdhPzURM72k3s6Kz9aTcRpuPjeuDmGV5wy1V4wS1X4Zs7z8V7zn8SvnD6w5ErXgdsR7x3NPN55+O05RZjHAkAGXNsbTomPIF2GG2Qb94eAEA2x3MEULH5c7NqvA5YM+cbqjO8qN2cMY8CACdmfjfO6YY7bIXDbBOciNG3+bx31OryrpELY5kKijnfyHNe3UruMV+T4batbos7T2cVg+rxuH/oq18rHPvwwy9Dxw7Z84eNdBzKmrILa60p1lb5e+LHxXel67g9v+cJVLa+brUcQoiLo8LnwuO8foPzvmmbWUeavGs0uf8n6OzhbULMAt5385aZ9z8ZXntnE3WzDFnAa8tdYk2tJ1yhYkIxWW1JtNbLav1uz7G/W35MhAj7EuEwqbQJW1EqL4oJYk0pAJvkiDvFaEthsqB2snUlIm6gdKkccYyFaEHY7kiOODM6vo93POkJeMcTH48n3/wdvOpzX8R33XhT6fJt18PPvfxH8fkLLjzla9GWhX95xpPxxYsegj+54r247Pa7Tvl3boWfptiz0sCeFabK3Afe9sQn4/df8L3QA7DUdLMUf/LRf8PTD3y77797GFx8/AAuPn4A91bm8d7znogPnXs5Wm7Yu6AgCIIgTAEPPXoQjzhcHAu9+7LH9/U8VEQc35qy3zniipvlxJpSEKYDk5bheqXUDwOwlVLnA/h5AF8ZzGX1j5CIdopEZJlYSLHkFO0DxZpSAOjckadqeypMFv32dhd6Q01QPLGmFARjqLEMNWYSNqAUvnjBQ/HFCx6KBx0+gld95kt40dVXorqFNdHxag0/8WOvxnVnntXXS7nl9L140et/Bg89eB8uvOc+PPjQEZx33xGcd99RnHPkGPyUt6N1HPmxL38RSmu86Xtf2LdcL8BqLrc/+vjbJ1aEO5nT24v4+es+hJ+48ZP48NmPxnvPeyLuqe8e9WUJgiAIwkD5/m9/tXDsht37cf3p/bVuppwjQrY1JbWOcArWlC7hGiNCnCBMBSYtw88B+P8AxADeAeDjAP7vIC6qn/gRYTUWysLEpEJ2lqcaEUd0tpHsIt92tAmBXnLEbS98KkcckcNM6B+U0CkRcYJgDjWWoVwEhM25fe8e/J8XvgR/9uzn4WXf+Dpe8ZUvYf/S4rrPHNi1C69+1U/irp27BnMRSuHm/ftw8/596w7bWYb9xxdx3qGjOP/gEZx3+CjOu+8IHnzfEcy1N891N8688itfQtv38WfPeV5ffp/SOX73U+/GM267ri+/byOLQQULYR0Lfh3Hw9U/C0EdC2ENx8MZLAQ1KGj4aQI/SxBs+LvS7iLIuvCzFH62eixMY1x++DuY77Y2PW8ljfH9t30ZL7ntK/jKvgvx7gc/GVfvPq+vAqYgCIIgjANhN8bzbrqqcPw/H9HfaDhg1d1gIxVmRJxHzF8T+xQi4sgccSLECcI0UKplUErZAD6stf4urIpxE4NPRLSINeXkQi0qnapYEkhEnAA6UvZURV5hsqAsJSKJiBso1E5BEeIEwRxKiOuUzHEprKcRhnjrU56Gtz3xyfjuG6/HS6/8X5xz7Bi+fP5D8NfPeBYWq7WhX1Nm27hzzy7cuWcXPvOwix74gdbY0WzhvPuO4uxjxzHXamO23Vn7s/bv1kn/bnfg5sPNw7MVr/3sp9H2PPzD059xar9Ia/zW596P77n5ytJFEsvGYlDFQlhb+1PHYljDYli9X1w7VlkV3BbDGlJ7NVeGw9Q9vSZ9370swbPuugYvu/WLOG/lvk3LW9B40qEb8KRDN+DWmdPw/vOegDvqe7HiVdDwQqx4FXRteecFQRCEyeW537kGtQ2RXy3Xx0cfcmnfz0VaUzLFLtqakt8nS0ScIEwvpRQprXWmlMqVUrNa6+VBX1Q/CYgccWJNOblQAlmFGT5+AkqIEzun7Qf1zCtxsu0Sh25n/ISwlJCF7IESkTniJBJVEEyhxkKU5bJQnsy28YmHPxKfePgjR30pm6MUFuo1LNRr+Mb55275USu2AK1R6XZXRbnOqjhXjWPYeX7/HyvXcPIcVp7DSXPYuX7g5zqHna39nZ/8R8POs7VyGm6Wbficxly7hafdXMzD9ysf/yg6roe3PfkpvHugNX7xKx/Cy75NZ0x4+yVPxZ1zu1fFtsqa6Fapo6X8sYgq69ouPnTu5fjQOY/Bo47eipfd8kU86b4btyzz4JX78OvXvL9wPLJdrHgVNJ0QK26IFbeChrsq0p3497fnz8btM/uI3yoIgiAIo+WlhC3lRx56KdpeMWfaqUK6bfUxIu6UcsRREXEixAnCVGDSMjQBXKeU+iSA+/0ztNY/3/er6iM+kSMuDiQiblIh83idohAnOeIEAMgtC7HrFMQYP0mRQBYztwP99nYXekNZf1IWoYIgbA21qagtNtvCRpRC2/fR9n0cmp/r/fGUJ1RZm6Sz+5WPfQSv/eynC8d/+0MfQMdz8d6Ln2B8rp/5/Cfxqqs/S/7s95/6ErznkU+krzEZs41WSuGqPefjqj3n48zGUbz0ti/jeXd8A5Ws/DwnyBIEnWXswdb7Zt97zhPx1w/73lO9YkEQBEHoGxceuQcPP3J34fh7H24+NigDGRHHFOL6nWu+RUXEdSP27xMEYXwwWWF8/9ofY9asLa8EcFBr/QKl1LkA3gVgJ4CrALxCa92zxdPafDIYEtaUeUXBtze3vlqMK8bnAYAZj+dV8tg9d7LK2XvMrWVua/KSfC9EvHvSScw7H9ve/HtZM8WZfdhNUN3ZRpLYxucC6M62W7dhB5usIqxx/Li5NdHnj59vXAYAvhqewypnWbxFBtfZ+rtT7Ki2Wefi0jxuXidVvHUdaXteQYjz7rOAumV8LgAA0/3JXTGvy4p5LrvDW2SzGRuylHm1AgBo3qsNy3AcTS1kp6kLp937Htkxc7GSqTlx76XFWFTNmBsQyzy3NKc2V6RwDJsTh1mPGcOKVZjldMpoSxzey61azBeH0W1w25+cOT/1VpjvG2Nu7US8frRylHdTulXzOtI6U6FCWClHtrelkKKrvIZEdXh1y26ZP/B0jmdVmzO/m9Xlbb6wIvPnZkW8esxuthi3hNtGbtYm/Pl3PxeVqItXfvWLhZ+96b/eByx6+MhDHlX6PC//1ufxC1/9GPmzv33k8/GhvY9D5TCzw9wEp8NrExKDd/uOHXvwpztehDc/7Nn4njv+Fy+99cvY117sXbAkL73jy/jM3otxw9xZ646nYd9O0ROL6UKdJ8xKmTPLVc0vtDbHWxOIOrzNE7pi/t08f7ibnnSFd75opbgY3fNcEW9wQQxJBwZ3n1/CeNYAYDPfmzQ07++zgDdvdtq8cZPd4dUtxXjgWcb7bjm3XN28/+K2kU6HVykTplu3S6RGfcn1xWi46/fsxw379q+WafDOpTe5/d2UELviLpy1a9MGt6RC1MMscVC5r9yYoX73hr5GW8igYJ80MQuyFDtui5FZD7yXVsJ7bzjvaRry6nFa5c0bVG4+3rK7vDGaSodbzonN321tMdvxGnPCzTyfe9/meY83PxfrVBNLz6+rlDqxbfEirfUVG/+UPM8vADjZY+OPAfyF1vrBABYBvNroqg0IIsKaMpBop0klcSykGxoEN8vhJvxJNiXWdsS+dFtC5dOh8u4I0wnp7S7WlAOFzBGXSUScIJhCCXESESeMHUrh95/3vXjPoy4v/MjSGr/7uXfh6bd/q9SvetGNX8OvfvWD5M/+5aJn4D8ueNqpXOlY0PRCvPMhT8XLnvMb+K3HvQLf3HlO3373M++9um+/SxAEQRBOhbAb4/k3Fful/3zk4wd2zn5GxFHWlF37FJx1lELHIa4vE3tKQZh0yuiO+5RSTwDwvUqpS5VSl538p1dhpdR+AM8H8M9r/1cAng7gvWsfuQLAC1lXXwKfEFnEmnKCUQqdgIqg4C/cUmXFmnJ7QvqEn0LdEiaLfltKCL2hhDhqIiMIwtaEhKVrJEKcMIZoy8IbXvj9+J9HXlr4maNz/NGn/x1PvGvrHGnPueVq/PYX3kv+7F3nPxlvediz+nKt40Jm2fjc/kfitd/1Ovz4038e73rwk/GlfRfiWzvPxh31PVjwa0iV2Xbipx2+Dnbe32hBQRAEQeDwvJuvLuRAa7k+PvLQnkvObNp9taYk1p1PcR2hbRN54lIR4gRh0imjSP0OgDcA2A/gzzf8TGNVVNuKvwTw6wDqa//fCWBJa31ipe0eAGeUuVgOPhERF/sixE0yke+i3l7fAYVRF/Cqxr/LzjL46fpJaK4UukTeImH6iQgB9lRzEAqTg+SIGz7UBIWayAiCsDVU9LZExAnjSm5Z+PWX/hCCpItn3nj9up+5eYY//cTb8LPP+0lcdfqDC2Wfdse38abPvhMW4aP7gXMvx19d8j2A4hp4jj837TgTN+04s/gDrVFJY8x0O9ix1MBM0kE9aWMm6WAmaeNHb/s0/PyBcc58t4XLFm7DN3Y9ZIhXLwiCIAirKJ3jwiMH8ZQDN+Cl132t8PMPX3AZOp65PW1ZIsoNKU2gdA5tuLnFz/ocEQeg7QRAvLLuWEWEOEEYC9aCzC7HA3rWQQD/q7Xu6Vfas2XQWr8XwHuVUm/QWr9pi4t4mNb6+g3HXgDgiNb6KqXU03qdi/idrwHwmtUr5fnK+jGxsCrWlBMNZRtJ2UuWIegW60fHc6d6Ai9sTtsvLlpWRIjbNvhERIlExA2WLmVNKRFxgmAMJcRJdL8wzqS2jV/8wR/FP779rXjyrd9Z97MgS/HXH30rXvv8n8K3Tjvn/uOPvedm/PEn/w2OLuZE+cRZl+BPHvWS7TuGVwptN0DbDbCQzxR+fP7KvXja4evWHfvuQ9eKECcIgiAMjWoc4fEHvoOn33gDnnzgRuxub574bZC2lACglYW246GSrh9DB0liLAC6/bamBNB2iBx2IsQJwshRSj0LwN8DuAWrAhywGrz2YKXUz2itP7FV+dItw1Yi3BpvB7AxbviJWLW0fB6AAMAMgL8CMKeUctai4vafdOEbz/lmAG8GACvwjLMgWlkOr7sx2gnoejxRTxgP+irESX444SToHHESnbNdGISlhLA11P31iB2FgiBsDS3ESUScMN50HQc/8/JX4V+ueAsec8ft635WSbv424++BT/5Pa/Fzbv245JDt+MvPv6v8Ag7xS+cfhF+7/IfRG5ts2zvBnx638UFIe7Jh6/Hn1+UoGvLWEcQBEEYDGcvHMVTb7kBT731RjzmztvIfnwj1+09Ezft2T/wa+u4RSGuknSNhTgqx/kghLhQhDhBGAf+CsAztNZ3nHxQKXUugI8AuHCrwv303CpsP9Ra/yaA31y7oKcB+FWt9cuVUv8J4KUA3gXglQA+0MfruB8q91ccSLTTpNMhopYoQa0MlMhC2RMK2wMqnw61uClMH3aWwc3X77DPlEIqi3oDhbL+9NME0Fr6akEwgBrPiBAnTAKR5+E1r3g13vav/4SL77lr3c/q3Qj/8OE34/894fvwm196P0Jiw8zXzjgfb3jcjyCzZKPlVnx910PRdHzUTlrEq2YxHnf0JnzhtEeM8MqEcSKMVuc9VE52QRCEMrhZikfddTueduuNeOotN+DchaPGv+OfL3/GAK6sSMf1gM76Y5UkxvH7MyuVg0xxcYqbXDpURFwmQpwgjAEOVtOsbeQggJ4vfj+FOJOItd8A8C6l1P8FcA2At5b57XFk1pDVlouNVNv18J37dm9ZLs94E7ks4pU77fRFVrmKay4+Wco4sBAAEKW8qtLsmHs6d6Otz9VyihMDa1mj2zSfMNjErY8cD1mjd12zm4wFeua6cmLzJkNWzDthZ9Y8ebs+jXUq2HbRXqgUmfl3U8nWZTpE3Qo7KZwG7912G7z773R6f6ZfKGbwUeWo+XNz27xnffxCXvuT7Ch/PocQ82PXQbxLo0z35rR5zzpnrnNkPq8tz6vm7zY0sx4v935vUlhILQvOSSKorTUcnSM1WFRVjK+1ejJeMc3UZ51j5hOydJZ3/xXzudmMvQfc+2Ex2x+nzav/nHrCuR8AkFSYbQJjzu4tWajExQtN2wG8dPOHEzMdIrTLa8u1ZX5PKgd4ixjJLLON5LYJjMedzjEbLov33YxmamuomPdy2x2zcitugFf9xE/inX/393jo0UPrfjYftfAHn3kHWe7qM87Fz770x5FFjM6UOSbn9jecdtLpMNvxuPiwO/DxhX2PwPPuvnLd8acf/iY+e9bFAIDc4Z3P7ZhXLqfNq1tWlzlPD3nvTdYyH4OmNd41KuY8nVMqzzc8a63xq//xKfzYh74KBY3/ePbl+MNXPht6w4a0QrmSpIbrOCewPPMXjnv/vRLjVgrOXIrbjljMct0a732L6+blXOYYTTOvUXEGTgAsxj7uNGGOmxjrFgBgL5m3P9w6wl1/2Fj/Lzl4AL//sXfi7KVjrN93x8xuXPHwp+Mr8w9HcHx9XXKIvq0Mrb2b162IWP+pdLqwqoAymAME0SbWlCUvOZ4t1q1GGBSOeW6y7rNJlbmkz7iVwTJ3/M8qBqfFOB9zI6/mjv+Z46Zod/HZDgp/gRe0knm8B9c5y0zEBgCry1wTHh3/AuAbSql3Abh77diZAH4QJfStfgpxW6K1/hyAz639+3asJrUbKKRNj9gOTjwR8QypBagyUFGTklNl+0JFW0qOuO1BIPnhRkbsOHA2vGdemiC1JbpBEMpg5TmZJJ6KOBWEcWW5UsFPfP9P44p3/R0etHCk5+ev37sfr33JT6Dj+fAipji5zfjU6ZcUhLjHH7kJ1aSDlhuO6KqEceCx19+B13zgS/f//8c+8jXcu3sWb3vBE0Z4VYIgTBIPPXIQ//S+N6OalI/a6lo2rtp7Hr68/yJ8af+FOFjfNcArLNJxiY3Yifn6z7CsKSVHnCCMHq31Hyql/hvA9wE4kczyIICXa61v6FW+nzP0sVutpvKGie3g5NPuqzUllVNF6sh2hcoRF4gQty3wCSEuIuqD0H9ix0F1w3vmZynaI7oeQZg0qAWDtusVIhkEYdxZqNbx6pf9NP7tnX+LM5cXNv3crTv34jUvfQ2avohHJly96zwseDXs6DbvP+bnKZ583/X42JmPHuGVCaPmUTfdWTj2i+/6DD71mAtxz975EVyRIAiTxL6VBfzj+8uJcIdrM/jKvovwpTMuxDf2nY+Oa+6i1S/6JcR5A7CmbBP3pWIgcgqCMBiUUmdprW8EcCOnfOkZulLqRUqp2ZP+P6eUeuGJ/2utH8e5gEFCCXESETf5UEIZNyJOcqoIJ0M9e6qOCNOHnxCDZ1eiSYZBTAiePpEHSBAEGiqil1pYEIRJ4Eh9Dq9+2WtxX22W/PldczvxEy/7aSxVakO+sskns2x89vRHFo4/8+C1w78YYayYaUWFY5U4wZv+6YOreXsFQRA2YabTwj+9783Y3WqQP8+hcO2+s/HXT3wuXvojv4zvfs0b8QeP/3584ayHj1SEAzZJTSIRcYIgbM1/n/iHUup9poVNtsq+UWu9fOI/WuslAG80PeEwEWvK6YSyD+SKJbQQJ3Vku0IKcYyBmDB5kNaUIsQNhS5hn0clvBYEgYYc70pErzDBHJzbiVf/wGtxbIPYdqg+hx9/2WtxdBORTujNp864pHDssmO3Yi5uFj8sbBtqHXpx94nX3Y4Xff6bQ74aQRAmBS9N8Dcf+BfSUvr2HXvwm8/9YTz1tb+LH/nhX8CbH/dM3LR3PzuP1yBoExvXOGLX0CLi0uKmCUEQhs7JjdiDTAubCHHUZ8d6lVIi4qYT6hlSz7oMlBAn9qXbF0qEDZnRlsJkQUbESY64oUDdZ08i4gShNJRNjUT3C5POHTv24JU/9LP43zPPQ9Pz8eWzH4If+8HX4dDsjlFf2kTz7fmzcW+43mrQ0Tm+695vjeiKhHGg1t584fk33/Yx7FwSoVYQhPUoneMPP/oOPOrggcLPDtdm8JqX/BT+56JHY3GMI9j7Zk2ZF9cSklPMd94iIuJM8u8JgjAw9Cb/LoWJkHalUurPAfzd2v9fB+Aq0xMOk0BsB6cSKkccVywJiHJSR7YvVARBSERKCdMHZYUoOeKGQywRcYJwSlARvZFYUwpTwB079uBVP/i6UV/GdKEUPnPGJfiRWz+77vAzD16D9zz8SSO6KGHUbCXEzbU6eMO/fAS/+MsvG+IVCYIw7vz6Zz6IZ3+nGDHb8AK89sWvwX0z459fcrxzxAWFY5IjThDGgouVUitYjYwL1/6Ntf9rrfXMVoVNhLifA/AGAO/GquL3SayKcUNDWbnR5ymrnrRioRpu3bDWA17jttwpNpRlOHz7LlY5NWPeQdhuxjoXF52bBF2uYjtbP+c4KFbbStpdHxxaEkpk6bguUKaqnW4eFl6v8kLJqz5PaGzFvIU4pcxzAURd3kAjajJ9wV3za1Q9NnNGlEd43IXT5tknKObrZnfMy2hmfLJi6h3a/NVG6jMKAciZY1htUI+pCKyu40CV7HaSed7Drp9Ge+n3Yl+dV861za/zWLvKOteRAztLfS4i2nTMdNHZW77Pj+eY7yirFGPb0ykUVDHvvXFavG9nxeblOO3BqWAzXVksRnuXVnjnyh1m7WLUkTArjlvbngdtb/3LnAbvwdkd3g7f3GP022ZD//uZY6XOBqyU93Z3ZxjvjeJ13HbCbIEYxZwO71yauQnc6fD6Un/ZvFxaGW7DpS3zOpL6vHYk61Hu4+cUhbhHLN6Jfa0FHKqZRxxqxmXmzHFrWmM2CjnvXtpt83oSd3gD19oMYwIAIEnMb6bjrH9nZqKtz/28r16Pj1xzA774uPONzwUAUY/+aDPilvlcljOOAfjzjWQHo29jzr8q9zHHu8zzKUZ+QCtlXiNTX4hneR2Ozagn3Taz4WK2PxvHQNUowms/+2nsbjRw++7d+PDFl+CeHRvmW8whgrdsVvBHvvl5/OiVXygcTywbr3/iK3Fvchpq927eXmfu8OYbweLm15GkxTam3ohXyxjckoBw6NKRA3+Fn2OTyhFXTWOcvMRhx7zfHyyZj5tyxjMDwBskAFAZ57vx7odivqNJjdcmuE3z+58x19LSCq+NVDnvXnrL5oEMzCoyMrTmznRWKV1rtNYtAK9XSlXX/j32VIhop0isKSce6hn205pSIuK2L2SOOGb+QWGyoCKoJUfccKAiDyUiThDKQ0fEyXhXEASa22b34faZvXjQyuF1x59x17V4+0VPH9FVCaOk1u696fMN//gRvPgRP4Vmlbf5WBCEU+Nf3/oWPOrOO+7//69/9CO49syz8KGLL8FHLr4Eh2eHkz/1Wbdeg1/56gfJn/3fx/4ArjqNJ9iPAmojdpByrCmJTb32qa0lUEJcJZEccYIw6ZSWVJVST1BK3QDgxrX/X6yU+vuBXVkfIHPEBSKyTDr9tKakykmOuO0LmSOOiKwVpg9K+JEcccOBsqakhAVBEGgqXToiThAEgUQpfPLMSwuHn3XnNSO4GGEcqG5hTXmCvQsN/MIVnxnC1QiCsJFzjh5dJ8Kd4JK778Jvf+iD+NIfvAnv/Ie/w8u/+mXsaPKcU8rwqHtvw5s+807yZ3938fPw8XMuG9i5B0GHckRiCHF+VlxLGIgQl4o1pSBMOiaxjX8B4NkAjgOA1vqbAJ4yiIvqF2SOOF8iHCadfkbEyS5y4WT65REuTB5+Uhw8S1swHGIqIk6EOEEojeSIEwTBlE+deXHh2PlLh3Du8n0juBph1NTbxSiLay7YXzj2so9djcu+fecwLkkQhJM4Y3Fhy59bWuPyA7fjdz/wfnz1938Xb/vnf8T3f+PrmG23+3YND1q4D3/+sX+Flxdt9f7z/Cfg7Rd+V9/ONSz6JcR5lBBnnWqOOCoiToQ4QSiLUupflFJHlFLfPunY/1FKHVRKXbv253kn/ew3lVK3KqVuVko9e1DXZWQyqrW+e8Oh4SYcM4QSZyTaafKhI+KYQhxpTSl1ZLtCtQ9iTbk9oIQfsaYcDtR9poRRQRBoKkTktkTECYKwFQdru/DtHWcVjktU3PZD5Rq1TrEfef0vvgjtoDg3euPffRheV8ZpgjBM6lF5S0Jbazzp1lvwh+97D776+/8Hb37bP+OFV1+JmsHv2Mju5jL+9iNvwUy3mE/yc/sfjr+47IWAmrBET6CFOJY1ZUasJZxyRFzRBlgi4gTBiLcBeA5x/C+01pes/fkIACilLgLwgwAetlbm75VSp5QLbjNMhLi7lVJPAKCVUq5S6lexZlM5rlAii+SIm3xIsYRtTSk54oQHoBYuA4mI2xYEhPAj1pTDgRTiJEecIJSG6qckolcQhF586sxLCseeeee1gNZDvxZhdFSiYh/SCjzcc9o8/vJHijkDzzm4gNe8+4vDuDRBENYwEeJOxssyPP2mG/Gn73kn/vdNv4P/+Ke/xy988mN43G23lnYgqcUd/O1H34J9zaXCz76162y88fEvR24ZxXiMDVSOuL5FxJ2iENeiIuLSWPpoQSiJ1voLALYOJ36A7wPwLq11rLU+AOBWAJcP4rpMWoafBvBXAM4AcC+AjwN43SAuql9Qg0oR4iYfamceN2qJKicRcdsXSoSlIg2E6UMi4kYHJXiKNaUglIfqpyirZUEQhJP59P6L8XPf/B/YeGBRb3/zOC5auBs37CxGywnTSb1VXOBvVlYXgN/53MfgeV/8Ni65+eC6n//Y+7+KTzzpInzn3L1DucZTQmv84Ne+jp/4/OfR8n189sIL8c7HPw6HZ2dHfWWCUBoqmu1jD38EvnPaaXjBtdfiQceO9vwdXpbhsQduw2MP3Iaf+/Qn0bVtXHvm2fj6g87DddXzcN2eswvW5k6W4k8/cQUecvxQ4ffdObsLv/aUH5/ozat9sabUGl5eFOIS69TWEjLLRmw58E/63bbW8LMEMXHdgiCU5meVUj8K4EoAv6K1XsSq1vW1kz5zz9qxvlO6ZdBaHwPw8kFcRFksy0z5p0QWZy7Hrlpry3K7g6bReU5wVp23M6E5X1agXc+xTtW4zNHlGutcvs9bFM1z850xvTZ4pNXi7wy7XaiOedRo2OELcfWq+a6k83YcMy4DAIHNiw6xVM4ql+bm9/LeFm8yc9dh83oMAHZkbn1gd7Yu081o29PuPO8+KrZ5L2NHGdMJwuU1d4jmza8xZ47RmdUYKil/jUFcfFix5cLqlrux1l6eYFvxeG3r0RbvvWm2ihYXveC04wCgSt67LjFJCTppz/f1ZOyY9wJw31HNnFdFexltucMbW+gO77lZjEvkvqMWc59DUuc9b6trfi8tribMbJNtxvmqTWIjQe7DW976ItKK+bkAwF3hlfMY5TSz/ntNXqW0GXUEANLAfNwU72CdCqnmVS5Ou+W0eeeqHGaOm5htSe6YX2dS4bWRSci7J17TvG65bd4NSYi5EsURfxZXnfZgXH7fLeuOP/vA1bhp9szS57MS8+9mR7z7zy2XFwMLSpEGjDZhkbdAyqgiAIBK3dyqzHMe6OznusUcUq2Kt/oZB3jTzz8P7/qFt8JNH6iPbpbj//z1h/Dy//fjyOzez8SymG2yZz5QSyvr2+Nf+8DH8LMf+8z9/3/EPffgZz79aXzi4ofh3576eHz1IecBSiHJuGML8zLccSsxVS2FxTTXSgPz69TMc+kGr5zNHEvaRYfF3mWWeRMAbt+m7QcahTphCXnLaXvxl899Nv7yOc/Chffeixdc+018z9XXYv9SufVFL8tw+R234/I7bgfwSSSWjet3nYWr9p6Hq/c+CNftOhuv//r78NiDtxTKHg9q+IXv+kl0lz2EMB+8Zr55W06tA5bB6WzeuCZJcYGiEnfhNXJYablG2c4z2BsWMVNlQUUKDso9fLdFT8A6trdOiAOAnYcbWPTqAIDc5rUldmxeKTe2rYMul8yYv29Oize59xd4lp9pjbfApS3z5+Yf512jSnkNUO7xnlvGmBNZzGsE4Cilrjzp/2/WWr+5R5l/APAmAHrt7z8D8OPcC+BQumYrpR6E1Yi4x2H1gr8K4Je01rcP6NpOGUqIk4i4yadDPMNK1L+IuI27gITtA/XsA4nM2RZQOckmeXffJBETFnpiTSkI5Qkpa0ppvwRBKMEnzr6kIMR9993fxN9c/D3I1WRajQlm1NrFxb1m9QHl8vazd+Ot3/8E/PQ7v7TuMw+77RB+5INfxxUvevzAr5HLKz7/lXUi3AmcPMfzrrkOz7vmOtxy2h68/amPxwcuegyaYTiCqxSE3lDWlI1gbYOlUrjxjDNw4xln4C+f8nw84uBdeP63r8Vzr78Wp60slz6Hm2e45MgBXHLkAF59HZApVRCYAKDtePjlp78a99Z3otqY7LWSyKYi4swEDyoajtpoyqFt+5hL1m+WqKTx/UKcIGxzUq31o00KaK0Pn/i3UuotAD609t+DAE7ehbZ/7VjfMRldvwPAewDsA3A6gP8E8M5BXFS/CIj8X3EgVmOTTscnxBKuNSWxeCXWlNuXDiEIVJKu+HBvAyjBNXakvxgG1H0WIU4QykOOZYi8EoIgCBv53JmPQLIhXGZX1MClR8d2r63QZyghrlVZ34f8y8uegNvO2lX43Ove8TnsP8Rz9xk0z7722/i9d3+g5+fOv+8Ifu/dH8BXfv/38Hvvfy8ecqhowScIo6beIYS4kHA6UQrX7T8bf/Sc78PTfukN+OEf/1n8++VPxJH6jPE5KREuVRZ+8ymvwI07y0dNjzOUNWWQmYVZellxHaFvQpxTfMaVjBcZJQgCoJTad9J/XwTg22v//iCAH1RK+UqpcwGcD+B/B3ENJkJcRWv9dq11uvbn3wGYe1wNkZAS4nxZWJ10qKjGkMgHWAZKwKPyhAnbA21ZiAhRQKLiph8/pXLEiSg/DKhcfJIjThDKExDtVyTtlyAIJWj4FXzl9AsKx5951zUjuBphFFQpIS5cPx9OXAe/93PPQ77BTSvspnjj33947DYtPvrWA/jrt74DlsF1VbtdvPxrX8VH/+JP8c5/+Du84Npr4MrGMGFM2DIibhO0ZeGqsx+ENz3/JXjyr7wRz/m51+MN3/P9+J9HXMoS5gDgjx77Enz1jAtZZccROiLObG1xo3UkAHTt/ozD232I2BOE7YpS6p1YdXN8qFLqHqXUqwH8iVLqOqXUtwB8F4BfAgCt9fVYDT67AcDHALxOa81ONrQVJqrUR5VSrwfwLqxaU/4AgI8opXYAgNZ67LZChTFh1RPIwsSkQ1lTht0UKs+hLTMLlbArEXHCejquh2DDpCvsJohEoJ1qSGtKQiAS+g9lASoRcYJQnjApTsg7YrMtCEJJPnH2pXjqPdevO/a0e67Dn136IiS2jIWmnVq7OB9uVosL/N+6cD/e8fzL8SMfWr9B/HHfugMv/PQ38d/PuGRQl2jE+YcO463/8LbCfA4AvvqQB+Hcw8dw2vLWSUsvP3A7Lj9wO47W6nj3Yx+Ldz728bhvbm5AVywIvamRQpyBlapSOLBrDw7s2oP3PPrxgNY4e+EYLj9wKx57x2147K23Yk9n6/fiLY98Jj54/mNNL32s6RCCmXlE3OCsKTtO0eGiYnh9grBd0Vr/EHH4rVt8/vcB/P7grmgVk9bhZWt//xRWhThgNRX9D679/0F9vK6+QFpTSkTcxKMthchzEHTXd3h+mhqLJQGx+B6JELetiTwX2JALOex2sYjqaC5IGAqU8CM54oYDJXh6RISPIAg0IRFBKkKcIAhl+eL+i9B2PFROigKYSTp47OGb8aXTHzbCKxOGQa1F5Iir0H3IX//Id+HpX78Zpx9dn3fq1/7lk/jiox6M4/O1gVxjWfYurOCKv3kr5tqdws8+8/AL8BM//UooAM/65vX40c9/BY//ztYWrLubDfzspz+Fn/zcZ/EXz34u3vLUpwFKbVlGEAYBFRHXDE7Bhlwp3LlzN+7cuRv/+ejHY/aWDPsbx/Gow7fhsrU/e9sPvOdvv+ipeMsjn8U/35gSE9aUYZZA6Ryry9298XLCmrJPm1jaNiHESUScIEw0Jq3DbwD4mNZ6RSn1BgCXAXiT1vrqwVxakXjZzAkziIoLq7c09+Dew3Nbljugi/7nZajXigO+MuytN1jldoTt3h/agGvzIis7CW9But01LxdFvct0PLcgxIVpjE5odr6AiIiLHA9qo+8GwdJx84nG1csV4zIAoLu8ZOnK4dmEOL55NIrjMqN2x8vJBG1i8bLaTGBVzSddToc3UQuPmd+UpMY7l2bOJZ3I/BodXhOJsoPgjVgGWg65ccNxoEp+zewwz6n5yDHeBMpb4rUJdom2bSM6YLYjcblzpQnxzq2kqB4sf612zLtGbff+DEXm8epkvJtx/5l2TxnzualseAtMVsrsAJjFsoDx3co2AhsIFofXuVG2YlhyUHXyLctlPu9ZZ8x1nzQ0P5/dZd5HZjVuncZrFDh9sOY14+zvprauDiTca+Q+t9zlfbmc0SZz+42U044AyBlTqcTQ6eMETsfsu2Vw8cV9D8Oz715vR/nMu6/F589+eM/ynHtpMkY7mZy5x8Bp8cpxXric2f/mMa/9sWfNX27beuAaqUibdtVb95kTJDUbv/+zz8HfvfHd647PtCL8f2/5KH79N19Mnm9lgbmh0WAOXO908M9/+nacsbhU+Nm1Z5+J1736FcjXolQ+eunF+OilF+PBhw7jFV/4Cl789atQjzZf3PazDK//yIdw6T134Fdf/gNohA9EIrkN8/eUW/+ZQxKA0f5zz8cdIyimGYbNDA7iPAP+uXj9hrf8QLmZZvE9TVcqqB5cX/985vgzPJbhOObwiblH4RNzjwIeonF6ZwH7W8dwNJjFgfppCI8V13uinUzBiSFouw3eelMWbv6OZrARW07BXtJDhk5YrsOxOsUXrGs5Rt1HZxc9SGhUi1GPTpje/3mLuQSXx+aNgsUoAwBOm3mRjDqibd67llZ5691JlVf/rcT8XnorTAHW4Y0lNbOclTLGJM3tFeVpcmd/e02EexKApwP4ZwD/MJjL6g8hmf9LIhymgY5P7FwhnncvqDKR7CLf1lDPP0y2V8ewHaFyknUlIm4oxEReRp+w+BAEgSYgksRHxA5fQRCEzfjk/ksLx5588HrS+laYLihrylZl8w1mX3nUefjQdxUF2md++Sa89t8/j/PuODL0nHFekuLN//BvuOieQ4WfHdi9Cz/+Mz9Orh/cum8v3vgDL8Lj/uC38dvf/2LcvG/vlud59re+jQ/+6V/hgoP39u3aBaEM9ZiIiPN4G0FLoRTurezE/+5+KA7UTxvcecaADjFmDgzyxHlEjrikT9aUbcqaUiLiBGGiMRHiTsjYzwfwFq31hwGM9SyfzP9F5BcTJg/qOVaInIBb4WQZvGz97oxMKXQdZoiEMBVQYn1AiDTCdEFZU0au9BfDgBI8PUJYEASBhlosoBYVBEEQNuMbe8/HsrfeuSPIEjz54PWblBCmBRNryhP82U88A4szxUiN17zry3jvz/4zPvHKv8Gb/uyDeP5nrsPOxWbfrpVC5Tn+9Ip34wk331b42dF6Da/82Vdjob61k00rCPDvT34Cnv36X8XLfv61+NClF28akXru0WP4rz//G7z4f6/sy/ULQhlqcdFapuEb5IgTNoXavBYa5GGj5q1dIvcch7ZLCHGyQUYQJhoTmf6gUuqfADwTwB8rpXyYCXlDxcpzMv8XlYtGmDwoIY6ymdyKgIyY9MT3fZtDRsQZ1i1h8vCJnGRUpJbQf8iIOEIYFQSBhhLiIluEOEEQypNaDj591iPx4lu/tu74s++4Bp8457IRXZUwDCh741Zla3/BpdkK/uQ1z8If/ukHyJ/vXmjiBZ/9Nl7w2W8DAG7cfxq+9LAH44sPOx9ff8i5iIjoNC6/9f6P4Pu+8c3C8Zbv4cd/5sdx126DtCNK4X8ffB7+98HnYffyCn7mU5/Bqz7/pcLHwiTBn//7u/Do2+/AHz31ReKiIQwUJ0sRbHALyZSSfMB9okOMmY0i4ggnl65ExAmCsAkmQtrLAHwcwLO11ksAdgD4tUFcVD+gRRYXmum1L4wXZEScoVgi1qUCBZUjToS46YfcuCGT6qFA3WdqQiMIAk1ICXHSfgmCYMgnzi7aUz7u0M2YidkJ1oQJgIyIq/ZO9PWxp16ELz76vFLnuPCe+/CTH/8S/u3P/xXf+tnfxTv/+M147Yc/h4ffcQ9UzkxgBuDVn/oCXvPJLxSOJ5aFn/mJV+C6s89k/+6jszP43Ze8ED/16lei4dP344e/8jW8421/gzOWFtjnEYRe1LpFW8qWF8gG8j5xqhFxG/PLAUBsixAnCAJNaVVKa93WWr9fa33L2v8Paa0/MbhLOzUokaUttpRTQz9yxFERdJEIcdseqg6EYk059VA54iSCejhQ99kXa0pBKIfWCKkccRIRJwiCIdfuORdHwtl1xxyd47vv+taIrkgYBnREXIk+RCm88ZdegOsecrrR+fw0wxNuuh2vf+/H8OHf/Vtc8/P/F//4t2/Hj376q3jwveXzy33PN67F7/znh8ifvf5Hvh+ff9gFRte1GR+/+BH43l/7Rdy0j86T9fBD9+B9b/kzPPnWG/tyPkHYSI3ID9fwB5gfbptx6hFxhDVlnyLiWoQ1ZTUp1gdBECaHqV1lpCJYIhHipgYqcs1UiCMj4iS8f9tD1QGJiJt+yBxxElEyFKj77Ik1pSCUghKtY8tBLg4QgiAYopWFT559CV5+0+fXHX/mndfgv85//IiuShg01U5xntPLmvIEi7NV/OifvRIX3XofHnfNATz22gO45IZ74KVZ78JrzLfaeO5V1+O5V63mIzwyW8dXLjxv9c+Dz8fdu3YUyjz+5lvxZ297N/n7/uR7n4P3Pe7Rpc9fhgN7duNFv/xz+P13vw8vvvLqws/nog7+6Z3/jH948jPwd095tvTBQl+pE0Jc0xMhrl+QEXGnak3ZtxxxxecsEXGCMNlMjhCnAe++8pc7c6RocdCxfeQL5QaVHFaO8n73sjvb+0ME2i63W2wdHs/6QTm8cjoxH4Sqtt3zM20UO6TqSgK7Vf581WVq4d2D1Sn3O/LM3ArAjnn2ARY3OIRRRQAgC8wHDp3Z8hOudbi8umUvmTdfVrf3/Y+t4kCs2kzgNs2fndM2LsJGMW+/0+FVEs75dO9Xmz4Xsx6b4FE54gwi4vxjvAm3YrrxWEydKmf0+n7Ea7dUyWvMYyLnZ5YY1Zdo12CvcSPBAq9Sasu8nFXhXWTObFvTEnZUG7GYexW0zXxuGfP+M9ogbfGusb2HV860Ta506Gg4r9n7+WtmH5VUeO1dNG9+T3LmOkbOrFv+Eu+9sbrm98RKefU4DXjfzWa8p07Eux+ZxxzvMu+Jt2TeTmYBb1Bix7xrjOfM60ju8O5j7jDrVqjwkYdeWhDiLj1yADvyZRypztHnc83vJXeMnDDHktwxqN0xL6NqvHO5M7zF1VpgXm53+IDd6Ey7+CWruxOcXlspHI8yeiB59JIZ/M8lF+N/cDGCToKHX3cQl115Fy676i486PbjRte2Z7mBF37tWrzwa9cCAO7ZO4f/feTZ+MYjz8E3Hnk25pfbeMs/vh0+Ifa9+3mPwj/+wJNgKUaDd9/W45/Y9vGrP/RDuPqcc/CG//oA/Gz9+S1ovO6Ln8Qjj9yJX3jFy7FYq276u+wO01KQWYx7Ps1oSzRTg1Qp12aR1965bfNyaYs7bmUVQxqu/h2i+I42wvD+n58Md9xaOcytk7xyqc8ox65cW5+L2ojto1v6Xnp6kxxxBlXMbdPjrTgtDoRrcXz/59u7eUv6DqdNqPM6Un+RN5fVrCrCHTcx6zFzTsT5cv4x3v3XjDHaajned0sZ4+ukWmGda1KZHCHOECqCRfJ/TQ8dj9i1khjmiCM+L3VEaPehbgmTB5UjThKvD4fYKQ5FKGFUEIQiZH64Pu3CFQRh+3HTzv24c2YXzl45dv8xCxrPuv1a/Psjnja6CxMGRqVd7EfaVb5LTBS6uPLyc3Dl5ecAAOYXWnjENw7i0VfdiUdffSd2HTfLObj/8BL2f3IJL/7kNwEAsWvDT4rKxmce9xD88WueBbQHmDdLKbzjCU/At/fvx99d8W84Y3Gp8JEn3/wd/M+f/gV+9sdegWvPOXv1oNaYb7WxZ2UFe5dXsPf4CvY0Gtizsnz/37sbDexprGChWsUVT3gy/vnJT5McYAKAVeFlI2JN2T8oa0qTiDiXiojrkzUllSMulIg4QZhopleII/L9UOKNMJmQQpyhfWBA1JHIlcWr7U5EWVNKjriph8wRRwhEQv/pEsmsfWJCIwhCESqHBWWxIwiCUAql8LHzLsNPXbM+Ffyzb79GhLgpxMpyhJ31Y65crYpp/WJxRxWffMZF+OQzLgK0xrl3HL9flHvkt+5BJTKbZ1Ei3DUX7sdv/uoLkdvDsYT81lln4Xt++Zfw5//xDjztppsLPz9jaQnv/pu/x/X7z8CelRXsWmkUIug2Y9/yMl7/0Q/h5tP24YsP6U+eO2GyqcfFiLimCHF9gxo3G+WIy4vz1mSAQpxYUwrCZDO1q4yBRDtNNWTUUh9yxFEijLC96BBiLNWeCNODnWVw8/V2EJlSSGymj5FgREzmiBPxWxDKEFC2uhIRJwjCKfDxB11aEOIuOnYPzlo+irtmd4/oqoRBEBLRcJ2Kx7b36olSOHDuLhw4dxf+86WPgp1muODm+/Coa+7CZdfcjYfdcC88Qmjbitv378QvvOFliP3h9n1L1Spe/ROvxus+9Sn84sc/CUuv96HzsgyX3nkX+/c/5Ts3ixAnAABqVI44EeL6RucUc8RRG0ipjaYcOiLECcLUMbVCnETETTeUqFrpQ0SciLUC5REu1pTTjZcWB8+x44odzJCgJipBlgJayzMQhB6QNtuExY4gCEJZ7pzbg5t2noELjh9cd/zZt12Nt1z27BFdlTAIKi3ClrIyvD4kc2xc/7AzcP3DzsC//cjj4cUJHn79vbjs2rtx2TV34aE33wcn3zzR0pEdNbzud38IK3UiWdYQ0JaFv3nOs/DNs8/GX779PzDf7l+C8PmWmYWnML3UCSGuEYgQ1y8osSvIDCLisuK6Ytfqz7qiRMQJwvQxtUJcIDniphpKVA2MI+KIOiIRcdse2ppShLhphsoPF7tT2z2OHbllIbFsuPn6HdBuliERe1BB2BLKOicWIU4QhFPkY+ddWhDinnXgmyLETRmVVnH+3K6Nrg/p+i6uvuxsXH3Zam619LjCZdffhcd860489psH8NADR+7/7H276vj53/kBHNozO6rLvZ8vXPhQfM+v/iL+7m1vx8V33d2X3zkTFe0Ihe1JjbCmbPijEZ+nESoirmKw/uMREXFxn6wpO7aHHAoWHtiQEOQJ7DxDZol7jyBMIlO7wiURcdMNmSPOUCyh6kgkYu22h7amFJu8acanrN1EABoqsePA7a4X4vwsESFOEHpAWedIRJwgCKfKJ869BL/4vx9ad+xBS4fhpQm6hKW0MJlUWsXIimFGxPWiVfHxxcecjy8+5nwAwNxyGxffdA+cNMfXLj0XrUoxWmRUHNyxAy/7+dfht//7g3jFl75S+HnL83BkdgaHZ2ZwtDqDIzOzOFKv48jMLHY3Gvitj3xw3efrIsQJa4g15WCJiHGzUUQckSOuX9aUUAodx0N1QxRcmHXRtESMFYRJZHJWuBSQnGnQGF5ftAWI6zas+d6/w3bMfMlPkCbMHQnLvMGuyhiWXS3eNaqUV1U4pmK6RI5lctdK1IVKy58xJBJDR7YHq6Tmwrn/wXGezVo27HHW5g4gm+K0eXUkZ7ZCVmJ+L53iGLZAV9N1y2E4jeghblKqHuK1W14j7/0hgu6M+ZdTGaNiAQB4idftuFwdCdvFexcTguxWuEwnGqfFuyeK97gR7zB/b7jvqG2gX8e2ixrWTzBmj3SRheUWWLo1Xttapk2g4NZlkz7qVFE27xpz17wc93ulFVYxeMu8ck7b/LvZzDrCbf9N3zc/L75ojRkfjTN6X0Dm856b2+TVrWDRvL9JqrxrbO/h9RtWwvtuWWB+ndz7zx5bML6aypnzBt7QAt4K7/6ngflcStvMMTlTg+I8N597P0Je/T/5Gu+bncdCUMOOqLnuM/Wsg2MbcnGp2Pw6U2a/nTHXHbltOadOdud53y1p8tYEKrvNNwzW3NUx1864OIDt1pz7f76RwOFtTrz6rjNZ5TbSdALc8/Adq//RAAj3xjzh1X/FKwa788DzzuDid5//Evz7Y56EBx09gpUwxOH6LI7O1NE6SThRG6rVhfeujz4FgJlOp/C5zBve2A4AgqPmN8Xh6ofMaSJ3nMAZE3orvHNx5w1puHq+mXaxAWtbAdmucfvfpM7r71PmWIYzv2SPm3rkvGwR801fd5GWHNu5KApxUeDe//zKYG2xtth2/IIQ51sJlv0q+73Z2LaUYgub4K1PNrz5r9PhLZIkNWb9Z4z/AcDjzKUs5ppYg2dlqlLegLdbNy/HfbcnlckR4gwJY8JmYcgJfIXB0fGJXSuGUUtkXhXDxXdh+iBtT4mIKWF68Im2I5bd3kOlS0S+UX77giCshxrLRNJ+CYLQB1b8sCjExR0cq8yM6IqEfhNSOeJq0oecKrft2Yvb9uwt/fmVsKgwizWlcAIyIs6TiLh+QW3ypxwnNoPMEWf3rx2l8sRVU+buEkEQRg5z38/4ExL5wjoixE0NlGBWIXK+bQWVU47KDyZsLyJqICY54qYaSmgVa8rhEhOTFcrmQxCE9VA54qgFBUEQBFMaXlEcqBMRVMLkEjaJPqQqfciwWQkIIa4jQpywSp0Q4iRHXP84dSFucDniAKDlFkXXSsKLchIEYfRMsRBH7BCWHHFTQ5uIiDPPEUdMPCRH3LYnIkReEeKmGz8hBs+uCHHDhIqI84lJjSAI66EWCqgNJYIgCKZQC731ruzCnyYqLWLzclXmw8Om6fvIN9i3VbtdOBnTi16YKmrdoigrOeL6R4fYjE9tdNsMSohL+pUjDnREXCUVIU4QJpWpFeICwppSIuKmBypyjRJft4KyshQ7J4EciBnangqThU9ExElbMFxiYrIi1pSC0BvaZluEOEEQTh0yIo5YEBYmF9KaUiLiho62LDQIYaUu9pQCgFpcFF2o+iLwIB2RTlGI6/YxIk6EOEGYLqZWiKNsCiXaaXogI+IIq8mtIIU4iZrc9pzqjihh8vBTYvAs+SKHSpcQPqlJjSAI66H6J9lIIAhCP1ghIuJmxJpyqqCEOLGmHA1Unrh6JBGoAh0R15IccX2DtKY0cETyic2jVNoFLm1XhDhBmCamVogLyYg4GVROC1SOuMDUmpISa2XxfdtDLWCKNeV04xOivOSIGy50RJwIcYLQC2rHruSIEwShH5DWlESuImFyCcWacmxoBEVhZbYjwvd2x8pz1LpF0aUpQlzfOOUccURe8+6grSklR5wgTCwTtdLoV8s3hpWs2DBV98TYv3uxd1mXt+hecXjlApu32NhOzQfJdy7Ps87VTXlVpds1L9ddLnY0G2nnduFYpdsFFPHhTaAi4toVF7mvS5XXe8w7P+dCnr1E6PD84aOE99ys3Fyjbzd6PzfyXMd4C4a6WAV6kpe4HQnxoTBNYKU5tDK7L4qpI5S5zo1067x9FdE8r5y/Uu49ORmtDF7Qk8sxt4w4rXLnq7SIwbNyYXfKX2/KnAt19vLKJXPMnBFObl6my3sAlbvLV+SIso6uZujsGux+ISsxr8cAkDLfN7tlfr6Uu6OSeevchvl7WruHUa8AdGd4bULm8cpZKaPdYvQ1AKCYr2j9PrOC9RU6R5wq8VWTmtGpTirHu/8eo26Fx3h1i0sa8r4bGE0Jt26lVV67lTGGWxZzHGPSf56Mynnlcse8nB1z7yOzjjDa5G6Vd6oy7z/Jhtet4VJCXLvwOW0z7wkDm6kDctvkpG7+3XKb+QBSXsedMuZtrrV6Q2qt4ny2W3fu//lGdrlN43MBwEP2HWGVu3PRfO0iWeTNSeHynlvO6KZyr3iupXoIHFp/rKLaSGYeOIHd5tWRLGCOdyvmZTjzWACwmY70DrNN2KSKb4nKePfRZmomdqxRIzY/tFwf7ooCNfhIA1573K3yyjnMvhSMdQF2v92jSYgsYpO/kTVlsfJmiQ2nU/56sy2eGxURF2YxtAU4EfPd9hn3n7k3vTvDG/DaXfPGNQuZDRCzGnPvv9M2/27JDG/d1NXcQSEPznw7rUxtjBjJ1H5bKiIu9idKdxS2oENYSJrm8SLzqoh96bZHWxYiIhqKsi8UpgOPeLZi7TZcqIg4yuZDEIT1BBktxAmCIJwqdESc5KyaJgKJiBsbKGvKmY68b9sdypay6Uo0XD/ZNEdcSQHDJ3PE9dGaUnLECcJUMbVCXEDkCyN33AsTSdexkW3YReNlGZys/NYmKqdcROQHE7YfbUrolTxxUwvp6y7WlEMlJmyBRfwWhN4ERPtF5ToVBEEwpeERwgCxKCxMLrQ1pfQho4AW4sQKdrtTIywIxZayv2SWja61PmrLgiYFNgoqnUJfrSklR5wgTBVTK8RVIkJkCWRhdWpQCm0i519A5H3bDCqnnETECQAtyEqeuOmFiqbtSkTcUKFzxElEnCD0gtokIhG9giD0gxVCiKuLEDdVVJrEfLgmfcgoWAmL4opExAlURFxLIuL6DpUnLigpdpFCnNW/tecWmSNORHpBmFSmVogjI+ICGVROE5RoFhrYU1IRcZTlpbD96BDROabWp8LkQFlTSkTccIkJ4SBI5Z0ThF5Q1pQdYsIuCIJgilhTTj+0NaXMh0fBSqX4vs225X3b7tS6RcFFIuL6z6b2lCWgNo8mfRTiKGvKqkTECcLEMrVCHJUjTqwpp4uIEM0qpxgRFxECjLD9ICPixJpyaqGsKaUtGC5dQvikBFJBENZD54iT9ksQhFOn4VUKxyQibroIW8U+pC0RcSNhWXLECQQ1IvJJhLj+Q0XElVn/UTqHlxfT4/QzIq5NREBWCMtSQRAmg6kV4gJCiIt9iXCYJk7VmpKKnpOIOAGgc8SJNeX0QuUioyK0hMFB3W9KIBUEYT2SI04QhEHR8IuLfyLETQ92msOP1y8g55ZCV9J5jAQqIm5GIuK2PXREXLGuCKcGV4jzsqIIF1sOoFRfrgvYxJpSIuIEYWKZqFFWNy53uSrPSdvBO9o7oKPe2mOa2D0/Q7FjrsUqd/78UVa53UHTuIxj5axzrXR5u26OtqrGZRaWy1kqUdaUlW4X0L3LOlkGJ19/L1LLQlxTAMrdoyAwj9aYDXlezjM+r9xKzHtuyx3zcl7IWzSPK8NrhlRabkDUCYt1S9W7aJ9WonKdhLfMHIBZ5uU0r9lCzrz9acX8Gv0ls/t3KucCgO5cufO5FhERFzrIgvLXG+0rDsLLEO5qs8rtqPDahCw333+z3OBN9qIS/e0JWrPFCqwqCZpnlWuP3SZvX1E8z6tb2ubV5dw3L6dqvMhA3eE1ChbjdO29vPuveLcRive6Idph/rwdZgqGymHeeKuzy+y5+TkRzRD6yN3e39VfMjrV/cRzvHIpoylJQt476i/z7r+/wjtfGpiXyxusU6E7y7tGO2K8cMx3VDO3eirNO2GwaF6Oe40O5z4yy+UO71nHM7xyG9vkRkBZU0ZQKodWD9xAlTG+m827xpy5T6p6iFmZGbTOYJ6L12whSs0H88fjKurLRZGnXfFwvFvbtJzHGSQAOKu6yCrH4UDOfG9iXuXKE/PGRC0UF/0bhLgy047WzV/TOaZbBHPcmjLqFrffsGPec/OWeefjjC+4c1Juu5WGgHdbcSC6NBugs5u+Foep3bpt5tyGuZZgJebni+eY840Sr03bI+wfOzHs7tbXGRKBAF3bQWen4Txsi6q13C22DWEeo1uz4DV4HQenTva6F5uhcl45zVgTY5+LKZw6bd79T6rmdTl3eXN7zR5v8cplnvl347QHk8xURsQF3WJLG7kOtDWVX3fbQkWvUR0hBRU5Rwl7wvaEqguUlakwHfhEdKzkiBsuZEScWFMKwtZoTe7WpXb1CoIgmJJZNlru+sVJCxpVscSaCipEfrhWTfqPUbFCWFNKjjihHhMRcUS0snBq8CPiCGcdu7/rim2XEAmlHxaEiWUqlSkqGq4dyKBy2qDEkrJCHG1LKUKcsAot8opN3rRCCT6SI264xG5R+PRTeecEYSvcPIO9IYIosSykNjNEWhAEYQMNIhdRPRZxYBqotIoLue2KrJmMCkqIkxxxQk2EuKEQsYW44ny1a/d3Qy8lxEmOOEGYXKZTiIuJxPUiskwdVI44SmCjoPJ9RZJTRViDyhFXMcg/KEwWlOAjEXHDhbrfXiIRcYKwFRINJwjCoGn4lcIxEeKmg0qLsDauSh8yKpapHHGRvGvbHaq9bfiSI67fUOPnoIwQlxf98vstxG2MTAfWhDimnbcgCKNlKoW4gIhc6fgixE0bp2IfSNYREWuFNSjhXqwppxfKmrJLWCUKgyMmIhDFmlIQtoZaIJBNRYIg9BMyb1VXxIFpoNIWIW6ckIg4gaIWSUTcMCCtKTNeRFy/rSlT20HXWu924egcPmGLKQjC+DOVQhxlIReJEDd1RKcQtURFxFF2hML2hLSmLBltKUwelOAjEXHDhbrflEAqCMIDSEScIAiDZoWIvJCIuOmg2hQhbpxoex5Sa/3yXJCk8GQ8vK2pdYtCXEOEuL7TITaylYqII8SwpM8RccBm9pTFuiEIwvgzUSuNebOcmBYs5oVjbctHd6Fch6VyZXRdJ1g8xOsQv7pjhlVOOcXv2bOMzQxfZhbLI/MqFtxT7jl3u0TOgqUEwfHez2/2GLFzxfLgLpXPqxI55s/7zpViB1oKXpUEzKvIKl1zjd6qD3eSYDfNc+B4S+VuZBITCXEbCbwVswdhMW+J2xiezYDL3EilGXXSjnnfS1u8F0CXbO8oa8qO70KbvAaM9vhUOLZUY5XLF8zbIO3wnpvXKf/c0pzI+dlJ4R8v9xCI4qVwmPMX2+C7rYPx4nSZ0dqKWSXjOfPnXb+Tdy4n4tWtaAdvH5nNCGz2lnjXmLm8OmIn5c9HWbF3PA9ZyXVUm1n/q4d496Q7Y35POnt49zGp8fLkcetk5ptfZ8p1luI2P4y+lNPXA2Bfo9PmFezsMC/ntnnPOmemYOTcf6/Ba8gV88FR342yQKsl7XWf1Tajbg07lSVzaB3PM+4ltwP2eeW6qfnNrDhdzBK2h92ajYqzeWd5uMNbt7j5yB5WOY7zWtLlLXHlK7zxlt1hzJtjql4prAQBdrTb647OL0Y4VvfWyvG+WzpXtM8rBWNdzF/ktT8W03yG204mFfPrLDu+6lc5gM4R1wiCTeep3HMlVeZ8e4jjhDRg1q20d0PSDoo3zrO66Na3PqfVIHLNe47x/cx6jAmbfoC5eH3b4FRjJGnd6Dz3l+2Yvzc5c27DnRO5HfMOIAmGG2uUzvPOZzHW4HK2esMsyBw3eSvm/Y3aZi6r2yYijsonJkw2HcLKjIp0owiohXfi9wnbEyoiThLiTi8+kYssFmvKoULdb7GmFIStoSLiqGTzgiAIXMiIOCJCQ5g8KlREXE36kFGyEhZzMoo95famTghxYk3Zf0hryhIRcZQ9ZLfP1pQA0PaIjeJdWZ8ShElkSoU4YoewiCxTBxk+XtK6gcr3RVldCtuTiBAFytYtYfKghHmxphwusUtYUxLPRRCEB6Asc6ixkSAIAhcqIm5mw658YTKhcsR1KtKHjJKVgHjfiBxhwvahRlgBU+2ycGp0COvHMpv86Rxx/V9HoMRXEeIEYTKZUiGOyBHHtHYSxhdqselUIuIo8UXYnnA9woXJhIyII4QhYXB0CeHTk4g4QdgSMkecbDwTBKGPNDzJETethC2iD5EccSNlJSwutktE3DZGa9TiotjSDCQirt9wI+Ko+Wp3AOuKLUIoFCFOECaTqRTiAioiTqKdpg7qmZbpLAE6uqkjYq2wBlm3JCJuavGoiDhZzB4qYk0pCOaQ+S0lIk4QhD4i1pTTi1hTjh8NKiKuIxGo25Uw6cLR63N5RY6DZAARV9sd7kZsf0gRcS3KmlJSpwjCRDKVLXiFFOJkUXXaiE7BmpKKnKN+n7A9OZX8g8LkITniRg9lBUpNbIbBBYfvwdNv+TaO1mbw/kc+Fpllj+Q6BKEXkiNOEIRBI9aU00vYKo6z2lUZ/46SlVCsKYUHqFH54TyJhhsEXLctL8sKx7oDEOKoHHEV2RQjCBPJVApxlDVl25eFiWmDFkvK7QqhrCnFzkk4AbWQSeUVFKYDSsCXHHHDhRI+R2FN+dg7voN/+s83w81Xd58++fab8PMv/vGhX4cglIG2ppTxriAI/YOMiBNryqkgpHLEiTXlSFkmhTh537YrdUqII6ImhVOHbU1JRcQNwpqSiogTa0pBmEgGutKolAoAfAGAv3au92qt36iUOhfAuwDsBHAVgFdorUu0cnnPjwBAmBE7hCsOVFjcrUChuzzHzqyuWeWcY7yGOgvMz5dXyt2DAor33Tjlkplyz7kxR1iZ5QmSWu9zeqpYR1pVF2nV4Hot8+/mHOU9a29ZscpxsRjVpLOX995YTINcm7EBSJWrWqQQFyYJYPjI3RbvvSl7nf0gZW6q85fNv5tmBhZpZvVXae+CdpbdL7qcIFcKWWbDMngOLrMdTxZ45bhNsheZ30yLGZjmtgw+HBXfOT9NSrdFNlMnzzac9oeu+fK6+vDdt3wb+xrHcXBu57rPKeY6lbY57w3zYQ8xkI/7bsdzzA6AeUvAaEu43y1Y5jXkmVv+IqkNIh3fRV6yWUmZazkZox0BeP22xZ2pMKtWtIP33ZJZ80qZ1nh1RDvDG5Nz3hkAQMYr6C7zXjgrNj9flPOuUTPrlmKMrb0G736ER3h1y+4W60i3U1z8m213EB5/4BzxrPlN4d5H7rttMff2xDu4HY45lsebp88E5ouxs24H9VaxnDWrMetuLvycGS4anwsAPJv3AO5amTcuc2ypxjoXmG1rNmP+3LJN1hGWdhGL7VYLyd7Vwbhq8dqEMnMiCs57U3YMspG0wrv/Ky6vUXAYgb2cNRIAyJljmdlG8V1sugHsLV55p8O7j9z5nsp550sr5nWSOyZPS4ytm7XiuxfoLqKdW5e1fMJZx3eQGY6xVY93re0UF22qUQyV8e6/ts3vP7cec+dtaWB+jdx1NCvh3kfe+ThjQm0Ne02Y+W5Xzdvk8PD2CnoYdI64GMDTtdYXA7gEwHOUUo8D8McA/kJr/WAAiwBe3c+TkjnifIl2mjaoCLZKyaglavEqkjyCwhqkR7hExE0lXlYc9UaOC6jhDnS2O1QEIhW5PGjOXThSOHb2wrGhX4cglIHaqdsmkrkLgiBwaXiVwrF6IhE60wBlTRmJNeVIWakUF9tn2vK+bVdqhPVgwxdrykHAtaakcpoPLUecRMQJwkQyUCFOr9Jc+6+79kcDeDqA964dvwLAC/t53jAmBpUiskwdHeKZUiIsRUhY0UkeQeEEkeSI2zbQ+eHElnLYUF76XpZB6SGGhwKY7RS3x851TEL7BGF4BIQdDtV/CYIgcGm6xUXfeleEgWkgaFHWlNKHjJKVSjGMZrYl79t2hcwRJ0LcQGALccRYvDsIa0pio11VcsQJwkQy6Ig4KKVspdS1AI4A+CSA2wAsaa1PrH7eA+CMfp6zEhODShFZpg5KiCsrlpBRk5JXRViD9AgnxFth8pH8cGOCUuTuwaHmidOaFN1EiBPGlUByxAmCMGDajo9UrV8yCLIELuEoIEwWYZPYmFqTNZNRskwIcTMdWWzfrpA54jzJETcIqPFzpUTEGTVXHcRaQlsi4gRhahi4EKe1zrTWlwDYD+ByABeULauUeo1S6kql1JU6K78rPuwSg0qxppw6aCGunFgiEXHCVlARBWJNOZ1QdhKD2MUm9IaatPhDXOirduNCvkAAmCOi5ARhHBAhThCEgaMUGRVXE3vKicbpZnCT9WOe1FZI/CEmmBUKiDWlcDKUNWXTFwvyQdDeLCJOb50ni7amHEBEnEfkiEtEiBOESWTgQtwJtNZLAD4L4PEA5pRSJ1bc9gM4uEmZN2utH621frSyy19qQAlxYk05dVA54sqKJXSOOFl8F1YhrSnTZOg2ecLg8Yk8ZGLtNhq6xKRlmBFxm0W+SUScMK6EmQhxgiAMHioCQ+wpJ5uAyA/XqXmSI3nEUNaUM22JiNuu1OJiOysRcYMhtR0k1vqNCLbWZD75k6HWEroDiIhrkhFx0jYIwiQyUCFOKbVbKTW39u8QwDMB3IhVQe6lax97JYAP9PO8IWU7KBFxU8emEXE9dq0AQCCL78IWaGWhQ0RFUTaGwmQjOeLGBzIijmirB8VmkW8SESeMK9RYRoQ4QRD6zYpbXPitJbIAOMmETWJTquSHGzkSESecDGVN2ZAccQODjIoj1pZPhrJpHsRaAhURV8Y6UxCE8WPQq437AFyhlLKxKvq9R2v9IaXUDQDepZT6vwCuAfDWnr9JaezYvVLqpPW82GHV9kU4/bTFUuUdixf10k54g1e9n7fzrB2bn2++yhvItbu877Z4vGZcJquWu/8ZgMhxEJwUMWFpDdtLEPcQ1QJiF3m74kB7Bs9emz+3rMKrW50KqxjcZZ7WrhmuJHZnuDsoc0aVzA2cHCLPQ7hhkbMSJYit8r9EZeXPd6rl3E5vAZoirvOeWxqal3Mi3jUqZiCiKnE6Mkec5xjXL3+Jdx+TOu+eWAnvfG7DvEzK3Hhp2kRSNh6OSpGV0BVspnNssPDA/d9zpEl+ZsdKa93nAFbzDwBonG/+coe7eEJgmvDspfIV8w4nnufdEIups3L6KIBXl+2I+d1S3rttUrdCwpKmqz3YJdfHo7N4jWvk8r6bv2D+4MLDzPto8Z6bZo63NGO4ZbeGZkyyyhCHadriPTcwizmM6Y1iBlyXGVtQlOnLNpIy11sznzm2C+hyK2EIbJhGh06EeGa1Dmee+fm4Y7s04D2AxlnMcdq8eUVRAXMCwKTumS/GOo3iA2hXPXTzrZeHKswB1yNnSAOknniW+b1sdHjWfZ0FXjlnl3kD5Dj0C9Al3sHZdgfhTAdQCp2MNyhXHd7AKZk1v/+5wxx/BrxGIduk3eqJMu+DM6YrpHZ47VZAdG4Le320z9j8XjlN3tgiPMoqBn+RO04zL9OjedqckufquB5mN0QhBnkXi3Z10zJUxFzku8ZrCbrHGGFlhoiIS2N0Z3j1318yf27c+bYdM99txtiCO/53W7xr1DZzUloieGQj3PEnd7zVrQ1vnuK0t9dG+IF+W631twBcShy/Hav54gZCEBHRThIRN5VEnrtOiAOAStztLcSJfanQg47rYn7DMckTN334lBAnOeJGAmXjMcyIuNlok4i4TY4LwqgJMomIEwRh8Kz4RYW6JtaUE01IWlPK+HfUxL6L2LXhJw8IYG6WI4wTdALp37cb9YiIiAslIm5Q0I5bW6//kNaU9iAi4opCnETECcJkMuStmMMhjAkhLtheCut2oe2bd5abfaYjOeKEk6AWMysixE0dVIJlsakdDaQ1ZQ9f/n4yF9G54GY3OS4IoyZICWsx2UggCEKfoXISzRC5i4TJgbKm7FRF6BkHVqpFoaXeEivY7QgpxAUixA0Kcv2nhzUltZYwiBxxlBBXFSFOECaSqRTiAlKIk4WJaYQSz3r5OK9+hqgjEhEnnAQ1EJMccdMHNXiWHHGjoUtYU45DRNxsLBFxwngSUjbbEhEnCEKfWfGLQlxdIuImGjIiTnLEjQUNKk+cCHHbknpHhLhhQq3/UDbwJ0NtGh2Euw4VrVdJurBypu+gIAgjY0qFONqnV5g+KPGMEtk2QgkqEhEnnAwVFUVFHwiTjVhTjg+UAOoRQumgmIvpyLd6N4KTDTffiyCUgRKqI0eEOEEQ+kuDjIiTTSqTTKVFRMTVpP8YB6iIuJmWCN/bEToijpm8W+gJLcRtsjpcdQAAol9JREFUvf7jEWPxeADWlFpZtD1lD6FQEITxY/qEOK1Ja8rYkwiHaaTN8HGG1mTUXCRCnHASnIGYMHmQvu4SETcS4jGNiANkwVEYT6iIOMkRJwhCv6Ej4iRCZ5IJJCJubGmQQpy8b9uRmuSIGyrk+g/LmnIwbakIcYIwHUydEEdFw8Wujdyeuq8qgGdN6WUZbK3XHevaNlLb7uu1CZMNJ1mvMHlIjrjxgRJAqeczKLbKBbdZ/jhBGBV2nsHN10dqZkoNJEG8IAjbGyoirt6VDSqTjFhTji8rVeJ9EyFuWyI54oZL26WErl5CHOWuM5ixOCXE1WRTjCBMHBM0W1fopr0vt9IuNpRx4CB0y++qdy2eBdW5M8dZ5fb4DVa5wDKPFLCge3+I4PrGPla5O2xzz+Jjx+ulP9upEBEUdoysvvkzdAlrh8h3Eewys3wIPPP73015Yl+W8YTkZAfvFdeZMi/TZQqZvCoJlZjfk9wv/73aRN2yal20Ty9fp9MK77n5i+ZlGmebPzMAUEzHPXeIukTGnG/oEreftHYLHOS+WcXs7OVVZLvDfG7MQLGUcS/TKu+7ZYbOKZ1qsb1ykSAr8SxUzruPzknriHOdzRcVdyy3cddJ9y7awTsfPPM+kd3+r/AioyqL5t9NMdMT5Mw1P4u5J4LT3immFtzexezvvXL3vxYTkf2OBwVVul+1El49zkLeA493mz+ANOTVf4fZR3H7RDBuibfCbLeY381tmrflmcG46WRyl1dOM2em4VHz78bpDwF+HclC83tiR7z+N63w7v9m92RxZ7FDr+YR4vnV89iMNtnlTX8BPdy6BWX+DJyAN0g7c9cSqxxnfj/XJua9Mwqz7tbz4aPd8vP0k7mrNc8ql2TmfWnS5T1sK2K+N8fNrQITd/NOY8GpFY6FR3N0FkKAOd7VAbPhYpyPsUQFAHA6vP5eMdYtAN51dvYyB7yMdsRL0sKGxNSy0Jq3tuyIcmZb5y/y7j+3v+H0pQ7ToTUt+Yp2CHv3atSFvUVdodIotOsO0orZMy8zl20FRSEuQJc1VotnjYvw53tcYZJTJZlri1bGK+gv8Bq8eIf5JDhhvmtui/fdvCbvgWuLUR/ntldQzNSFiVG2lFEgu7umFTIijlicOpkgISJgxLpU2ABVt4Ie0ZbC5EHniJP2YBRQufmGGhG3hf3k7Cb54wRhVATEJgKxpRQEYRAs+5XCsZlYclZNMpQ1ZURsiBKGz0qFsKakhFNhqiGj4cIAUMzNgEJPOKlJqLnqoNYSmn6xbah2xZpSECaNqRPiAio/nC9C3LTS9s19nMn8cFJHhA3QA7Hh5asShgM5eBZrypFATVqoBNiDYiuxbSuRThBGQUjkhIgGlJNCEITtTSMohhPMbJFXVRh/giYhxNWkDxkHVsLi+zYrQty2o94pPnPJDzdYODnivIzIETcgm3g6R5xYUwrCpLEthLgokN1d0woloIXdrRduqZ93RIgTNtAhRN6KRMRNHZIjbnyg7vuwIuKcLEVti2TXEhEnjBsSEScIwrBY8YmcVbEs/k0ylBDXESFuLFgmcsRJRNz2oxYV5yUixA0W44g4rYebI84vCnESEScIk8fUCXGUNWXsixA3rVD2gb3EEjIijvg9wvamQ4gCYk05fYg15fhA3XdqcjMIZrtb7+yXiDhh3AhTOkecIAhCv6Ei4upRB9DMZCzCyKGtKWU+PA6sEGLLTEeE7+1GnXjmVN0Q+oepEOfkOewN/WBqWcjsweS7anliTSkI08AUCnHFhjKWHHFTC2VNGTAi4sSaUthIx6OsCcSactoIKCHOFSFuFHQJWz3q+QyCXkKbRMQJ40ZALAxIRJwgCIMgsR20N7Qvjs5R2SKSXBhvRIgbX1YqEhEnADNR8Zk3g2JElNA/qPWfrfo5KoXCIDf0SkScIEwHUyfEBTFhMyZC3NRCRbJVCDH2ZCihTqwphY1QEXG9kvUKkwedYFnag1FAR8QNx5pyppcQ15UFEGG8oCLiOhIRJwjCgGj4xZ34s8RCsTAZhFSOuLqMf8cBSoiTHHHbDyoiTqwpB0vbLQpdW63/+FR+uEEKcWSOOBHiBGHSmJxt/xpoLRcHJRtRi8Vjx5I6br39tNKnsiu8hb+F+QqrnLMzZ5U7PVhileNQd3gNvKXMLUssp/z96FSKE4YqIrgzm3eYdbu44NoNHASeWeTFnlrT6PMAsDPgRVV0c154e93lPbflrvkg78bD5d+xk0m6vGYoz5RxGRMHnfaO4j6FEBH0zvJiXBe8RdHMN/9uOXPubHO1RWV+jdCMMgBy5tpyOpP1/IwLKkeGjTw0a5dVMtzvljAdL5w24zp5Xw3a8BqpjRVeSSEuY24QbZy9+uW8ztZCXA2t+z8LAK55878Ko7vPMt6eKRXzynHqpMV07mR2bbB5wyZYjABLxbRe85q8cu3d5V64MCs23s1ZF639g7eKc1Z4Dy6rmD+4dDcvKjad5zVcziJvTJLVzL9be4b3rFTO+25WbF7O4q7vMLd6WswxSRowxoRD1hw499JxmfW4xatbtrX5+Rp+BXubK+uOzTY6OBLMQ/UebhVIZszLAEAWMNs4bp1krAvUKrwXJ3R47d3ecKX3h05GazJHXDMMkPbomD2Lt06yGPVex6FY6ZjPSZMO8+VmtOMAb7ylthjbNezimtJMK4KKLCjG/BcA8jrvuVkd8/6e0x4AvD5q9YS8Ypy5s/a5A1DzdquWEhFxXsh6JmWI53nlcm4/xdCWuddYtk62QsJtK+siqdKft6iIONuFHTHWckoMPykhLswjpIzmVW/R32+Gv8jsfxlrwgAARrPF7KLQrfIGCVox1zIZxZhLacZrMidIfOZaAuO7pSHzy00oUxcRR1nHUXnEhOmAerZh1CMijsgjGEkeQWEDZN0Sa8qpg84RJ33GKKAsQYeVI26us/UmidkeQp0gDJuAiogTa0pBEAbEikfY5Un+1InEjTPY2fqF0cSzkHqDWeAXzFgOiXetIxFx2416RETEEfk6hf5BW1NuvrZIbRgdqDUlIcSJNaUgTB4ixAkTTScwz+MlOeKEMkRE/kER4qYPyRE3PozSmnKuh9DWS6gThGFDWeW0iQUEQRCEftDwiwvA9bi4UCyMP6QtpeSHGxso+8F6J4LKmdFYwkQi1pTDZ2MuVAAIu1tYUxLzVCrneb9oERbRNemHBWHimD4hjsgPRu1sEKYDMmqJiHg7maBL5BEUIU7YQJuoE0GP/IPC5OEnxE42EeJGAjVxGVpEXHtroW2u3TbzthWEARMQ74aMdwVBGBQrRCTGTCxROpNI2CL6DxHixobEcdDesMZha42qzEO3FaQQ5zO9+IVSUM4SW+aIo4Q4WyLiBEHYmikU4oiBpYgsUwsloPUU4ohBrFhTChshrQl61C1h8qAG0JErfcYoICPiCKF0EPSKiPPyTCY6wlhBLQx0pO0SBGFAUBFxYk05mQSEEBfVZCPHOLFC2FPOij3ltqLepiLixJpykJDrP1vM/6gNo4O0pmwSEXEyPxWEyWP6hDgidFh2CE8vbdI+cOvdYqQ1pdiXChugc8TJTsRpg8wRJxFxIyEmRIThWVP2tp7sJdYJwjAhc8TJeFcQhAGxQlpTijAwiYRNYlOqRMSNFcsVQvhuy/u2nSAj4gKxphwk/YiIG2Su+RYREVmNRYgThEljolYbld3bF5vcIRy4gF3eUsr1eAt/yy3eDpXPLDyEVc52MuMyYcCL6PFd3j1ZWK4al7Gs8v7ncVBMKh1GCbJ0c43Z7xS/S1a1EHhm9+as2qLR5wFgxuENoA+0drLKVW2ecJQ45sm6TZ7byWQdXmJw5ZjbxPnV8vcjn1OFY2E3geOWf+/M39BVkjnzklaXt69CdYrfs1Q5xuPuzrFOBWuA40vKqjZ2XMCwemmXZ1uYM90OtcN8305jtOW8KgI0zCYi7ZliW+AnCeyo9wUks7wbqddGQXMldvXX8yaycH71uhaZN4VRrFrhvQDJ6bx+O9I1Rile+6OZ28HUCq+czUijYDH3X6Q+s20tWZWp5PGtGQfpjEH/YfHeG/c4b/rgtMwfOFeK1zVeD5ydxnvfLMaYpFrl5fVwbN53SzPz8Vaa8V7SpMurI/ES03bLY/SJzPoP5njLapnff3+Rd67KYd53S7aoWi1FROg0O3BaGvFO8/YurfGuMQt45VTGa5MtgzWEE7Q6vHr8ndYeVrlgv9kcNl0q1sWy1pT7vGWjc53guaffwCp3Z8d8DnxzhXcfDy/VWeW6TfNNMM7xre83FYE6txzDmeXV4y7vqwE7zfvEboXX/ntHeeVs5lyWg0qZYztGvzHTKt77lh32nBdxx63ccjlzRTllLJ2mFeZ8r+RjW67Qm/z1JmM8TxMb/H0HSd38Op1274tsubQQ5zaNT3f/HNiEbMjOqJy3zW3z6ojX4I2ttcVrE3Rifp25zVs3zR3mNTLn6WlleG1yL5RS/wLgBQCOaK0fvnZsB4B3AzgHwB0AXqa1XlRKKQB/BeB5ANoAfkxrffUgrmsKI+KonBmyw2ta6RARcUEP+0AyIk7sS4UNUJa2AVF3hMmGtJSQiLiRQN33oUXE9cgRBwDzbYmIE8aHgIjmpVwCBEEQ+gElDNS7EqEziVSIBf6oJnPhcYKyppwRa8ptRS2SiLhh07VtpNb6JXI3z+FuMh8lnXUGaE1JRsR1eZu6BGGb8DYAz9lw7PUAPq21Ph/Ap9f+DwDPBXD+2p/XAPiHQV3U9AlxkiNuW0E920qPRMaUmCJCnLARsm5FYk05bVA5yCRH3GgYrRDXW2QrI9YJwrAI0+JCqlhTCoIwKBqe5IibFkIiR1zZiDhhOKwEVI44ed+2E3VCiKNyhAl9RCkje0ovI5x1Briht+UVn38liQHNjPAXhClHa/0FAAsbDn8fgCvW/n0FgBeedPzf9CpfAzCnlNo3iOuaQiFOcmZsJ9qMqCWqjkS+RMAI66EGUUGSQuU8S0BhPKGEOImIGw2Up75HRCz2Ha1LiWxlxDpBGBZURJw4QAiCMChWCCGuLjvxJ5JKi5gLS0TcWEFFxFHCjDC9SI640dAm1o4r3U2EOGLDaHeAOeISx0HXWm9P6OY5KQgKgrApe7XWh9b+fR+AvWv/PgPA3Sd97p61Y31n+oQ4yppSop2mlq7rIFfrPWj9NIOdbe7xS1pTBlJHhPVoyyIXNamcYsJkYuU5vA1tRa4UEqb/tnBqjCoirhbHcEsI7BIRJ4wTYSobzwRBGB6kNaVExE0klBAnEXHjhVhTbm/sLEN1g/iTK0VaEwr9hRpLh5sIccO2pgSANmlPyctvLAhTgKOUuvKkP68xKay11gCGHlI6ddv+qfxgsjAxxSiFjueiuiHKLYwTNCv0YjplXyrWlAJFJ3ALwm3YTdAJpE2ZBshoOMcB1PgkmN1O0ELc4CPiygpskiNOGCcomxzJEScIwqCgrCklR9xkIhFx448IcdubWlQUVlqeD21NXRzF2EFFxG0qxJERcYNdYm95PuY22NRWkhiLqA30vIIwpqRa60cbljmslNqntT60Zj15ZO34QQBnnvS5/WvH+s7UteRkRJxY9Uw1HSKabSt7SjpH3NRp0kIfoNqOUPLETQ3ULrZI+ouRQVtTDj4irqzlpETECeNEQEbESfslCMJgICPixJpyIqFyxEUSETdWiBC3vanFYks5Kqggjs2sKSkhjprP9hMqKrImfbEgmPBBAK9c+/crAXzgpOM/qlZ5HIDlkyws+8rEqA9KaZy2e7nn5+ppsRGydmeozZffyd7t8m6LZfEiGnXGi75IuuY7n7OUZ7m20uLdE7tmvojq+2ZlqGi2XU4DUZ3uBCvE4lV9Lsa+6orReQ+2Z40+DwC3JLuNywCAbfHyki1EVVa55Y75QC9JeHVLebzvZh0xr//dBbOBUccqDnS8gxayrDg5orC6vHdb2+blnBbvXG6TGf3FeGwOM6CoO8cr14vN8sOprvkeFWs3bwBcr/LKnTt/nFVu3jOfxB+Pee3Itw7sN/p8V2vkSsE6KeG0l2dIZzLkPXaAapfX/2ZVjfq9zVKfnU1aSOZWK35LMfcxMS5z2F4JinFCt8E7l2aOQlNelUTO6KYs5hgtZq6XqJJtK2VNGc1ZsKrlo0hnZniLeq0ZXuRdsmR+Uyp38ipJvIv33LLa5tbmW5ZjnK5RciyxEcvmtQp5yrhIzRwjMOdE8Jl5eBn9tkp4381u8dp/f9H8fJrZ1SQh77t19m5eLtIBcihYJ/VK1SRGsitHGpg3ru4K8x31mfNtZp3kXOWOGd7GnZU2r+Po5mbtZNgs9hPHwwpW0t62d3dHO4zOdYLT/SVWuXPDY8Zljka8yJC7mztZ5Tik9a37mqX54rOoJ212m2A1eH2pdhltMqcMgDTkvaMOcy6bM/QSbjui58zGFrWV4tykUfOR7C2xITjmrcn4R3jlgmO8+59WzMtw678JVESc50X3zwFPxnGITXE1G+mM+TuQlmy2GtVi26B2dtA41+yc/oL5zezWec/a672MTxIsmr9v3GFr7vIKWl3meJdxoZw2CwAUb2rDvpd2bH5P3NZgVjyUUu8E8DQAu5RS9wB4I4A/AvAepdSrAdwJ4GVrH/8IgOcBuBVAG8CrBnJRmCAhrix+VFxYpSKmhOmBer6U/eQJqIi4rkTECQRkRNwW0ZbCZBGMwNdd2AKlELtO4R3z0hTRAC2m51pFhfjg/BzOWFxa/7mmWFMK4wPVfnXEmlIQhAGhlYWVIMBctF7Ar8UdLARiiTVJhG0qR5z0H+PEckUi4rYz9Q4RERdKRNwwICPi4s1yxG2S5mKANAMiR1wsOeIEgUJr/UOb/Oi7ic9qAK8b7BWtMnXWlGSOOMn/NdVQEXFbCnHEz+JAFt+FIibWBMLkQUfESX8xSug8cYO1p5xvFneuH9izq/g5QrAThFERpsVJt1hTCoIwSBpBURyYjUQcmDSoHHEdsaYcK1YqRdFlpi32c9sFUoir9I5YFU4dKiJuU2vKEawlNAmLUhHiBGGymC4hTmtaZJGFiamGWnii6sEJKJFOhDiBghLigkSEuGmBzBFHCEHC8KCEOCryp59QAtuBPUUbYSpyThBGgdI5AkKgjjxpvwRBGBwrQdFLrC5C3MRRpYS4mkTEjRPLkiNuWzPTLgorKxIRNxTaXlHwDDeJiKNymVNz2X5C5ogTIU4QJoqpEuK8JCukJOg6NjJ7qr6msAHKmnJTIW4TsbYri1cCQYfY0STWlNMDmWBZIuJGChkRN2AhjhLY7ty9E7lab4w+E0VwMqbJuiD0EdKW0nOhe+RSFARBOBVWiIi4GRHiJg6JiBt/VihrSomI2zbUIrGmHBVmEXHDT3PRoqwpIxHiBGGSmKoZexCJLeV2hLSmJOoCQIu1iWshd6bqVRD6BJWXSoS46YHKFznoXWzC1lBC6MCtKVtFa8qFWpXMzyFRccI4EKbFBYG2jHcFQRgwDZ+wyxMhbrLQWnLETQCU6DITRbDyfARXIwybOiG6NkWIGwpGOeJGsKm3SUTEVWMR6QVhkpgq9YEU4ohoKWG66PiEWLJJRBxpXerLwrtAQ+2ICruy42haoH3dpT0YJXSOuOFbUy5Wq1isFi24RIgTxoGQsEimNo4IgiD0E8qaciaSfnGSCDoJ7Hz9rtTYt5HJptSxIrcsrBC5oOpEpJQwfZA54kSIGwr0+k/5HHFdx+77NZ0MFREn1pSCMFlMzIqjAnBGbXnLz5x+fKlwLA8tPHTXEaNzeRbPesphlrOV7v0hguWueWd828Iu1rlWkuLEqwx+YJ5Py3PMoh+6YbGz89opkrR43GkXn1EcuMi1+eQjyc072btu3mtcBgBbMrc6qveHCLI58wgUFfMGHdrh7ezLGRq70za7H7FFWRMkYL6ypQmOmt9Lb+vmcfNyK7wvY8fm5TRzXJpUeS+ASrZ+3kFE5FhyeIvZ8zO8haizZxdY5RyL994kjLau5vIG93M7msZlsrD4zFzVRe5v/X2dJq+OpDWNuWbx2S2FFSxViv3e/EoL2APkPrMR6JpfZ+NwjXUqFfPuib9oXs5iaqV2k3cfc4fXtyUznHOxTsUmK86vC3iqeMPbvgutze5LxeflPJ0NeQuB9zLKtO0SN4TAavA6HLvJK5dVzdtk517ed/MXePWf856WqY8U8Tzv3ea2JcExxj1hNuM5V/NmnM9mpiVu7WeO/3v0bUszxblnVXfgMILiFDPY3T/O7O+rvAceVMzHQC5zjKZ4jw0rcfk1AXeR2IRWc7HDKzeOvS9idKQArl86jVWu7pnf/7uX5ljnQsZ7ACoyr5M66F1HVioBZjYIbxW0cZxwbOiFv8B7bxJGg6dS3n30lpn3n9mWc/obZTjOOoE2vEhKiOvutFCb693YxjFv4Jo2qqxyjKklAN5aDnf+ZUflnxu1sW3TiDjCmrI7p6BmzTtvnZa7kc3Z4vOtxrHxemFSZ9xLZh/ltngFU4b2rHzeuewur1x3B+8FyFzz8/krvLEFs9lCxryXccX8nnDuxyQzVVuf/JgYWAYTozUKTMgccZvYB1KRchIRJ2xGxyPq1oDzVQnDg7STGLCvu7A1MZGvk9pt2E8oa8rFagWL1eKElIqeE4RhEybFhUnKHUAQBKGfLIdERFxHrCkniVqL6D9q4iA0jpB54uR92xbMUBFxFYmIGwZt1yBHHGlNOYIccRIRJwgTxVQJcR4R3SBC3PRD5YirbJIjzu9KHRHK0yEGYptZEwiTh+SIGz+6lDXlgIW4uTYREVetYImypiQ+KwjDhuqHqI0jgiAI/aRBWOWJMDBZVIj8cFFV+o9xZIUQXmbb8r5tB2qEENesMkPUBSOoHHEm1pSjEOLEslYQJoupEuKCjkQ7bUcoIY7KBQfQEXFdqSPCJpgMxITJg46Ik8WIUUJGxA0wR5ybpqhH63cR5kphJQxpa0oiek4Qhk1IvBNtiYgTBGHAkBFxkQgDk0S1XYyciKoyFx5HVkKJiNuu1DvF97QZihA3DKgccSbWlIMW4poSEScIE89UCXEeZU0ZyqLqtNOhhLhNrCkpgU7EWmEzOm6xboWb1C1h8qAGzxEhBAnDY9gRcVSE23IYIrcsLBIRcWJNKYwDZEQcMRYSBEHoJytBURiY7Ui/OElUCWvKqCYbOcaRZbGm3LbU24Q1pUTEDQWTjdhemhWODVyIIwTZaiRCnCBMElMlxPmUNaWILFMPbU1Jd5ZkjjixphQ2gUrWGyYSETctSETc+BF7duEY9Zz6xRwhrJ0Q4EhrShHihDEgSCkhThZSBUEYLFSETp2wUBPGlyplTVmTufA4QllTihC3PaDa1abkiBsKRhFxhEPFKKwpaxIRJwgTxfQLcSKyTD2doLw1JZkTSuqIsAlURNxm0ZbC5CE54sYPOiJucO8cFeF2QoBbrFaJz4s1pTB6qKTxkiNOEIRBQwlxEhE3WZBCnOSIG0tWyIg4Eb63A2REXEUi4oYBFRFHjbuBTXLEDXg8LtaUgjD5TMyKo1Iap4fLW35md94sHptr4Lt23mx0rjPcRaPPnyBQvMXCisVrOO/o7jIu81nvQta5Zs/k7b5yVTFcuxcHO3NGn9+5qzgB3KnbOGfnQuH4fnepcKzju0i1uSadZMXIjV6EpxfraBnimNehZxZvh7zycuMyVoUXtWJZ5ucCgATmg9FMmz2zFmHVEqYxcl+XKq+YWx0SZV4mLc7VSpZjnAwAYF7OWy533zbiMDd/Os2tH0DYLrZPae7Bjsy/W5rxHvZ9rRlWucMLvHKWbf6+7ZtfYZ2L00ZS4nelkcFd3vr+WpyXBsCeQ8XKteLWEBy10UpqhZ/tWOogOGrDZs53op2MurWTN7bQFfP+FwC6mfk1apt3/50Wr5y3wmtLrK75+RjDGACA1+ZdY+NBvT/jOsUFgbbjQ0dm79zh47NGnz9BvcZrlGdr5guIccCr/w27KKSXQTXN2y0AgGvetqZVXv3PfF45TjuZhbwxmrZ59d8/xrv/OWNGmzHXNDVzjS13zO8JZzwCAIxpzSo9TkfmrIoi1hiU24/mzPtvd5j9lG3eCbiMMgBwzo7i3LUMe4NG6c+emRbXOeKaAxvl3vWzK7xrjFLeg2sk5i9q1OWdS/m858Zq7fLe9ZG0go3b0L55u5wFwxun5cwAfbd8NV6Hz5xfNs5k3BPeqaAsg4JaF/JXA8CRdBbpSu8+UpeoWxR+m1eO0/8CQLzDvB7nNaZLii5/kc0akZok6ULNFMfeVERcpD3kXfOxjGqVK9NKi+PbahTDMhwvWIxbyX23E96QHD6ju+GOEZIqb+CUMe+JYgyvo1neNYYLvLG8lfEavLTkWul2Zroi4jrF1iQNmBNqYWKgItr8aJOIOOJ4LHlVhE2gIgwkR9z04FGDZ0IIEoYHFZE4UGtKIkfcUrhmTVkpzhrmOhIRJ4weOiJOrCkFQRgsy5QQ12kDWhZdJoWgRYx9JSJuLFmuEu9bW6wpp51q1IW1oU3teC5SR9Y1h0HbK4r/m1pTUhFxg7amJKzoq90uVM4TWwRBGD5TJcS5hDVlGk7VVxQISCEuphduqeNiTSlsBpmsd4A2ecJwoXPESXswSroeJcQN7p2jhLWlsLr2N5EjjhDuBGHYBESuUiqnhSAIQj/pum5hnOTmueRPniDCllhTTgpkBKrkiJt6qPxwjVDyww0LajwdEkKcynP4aTGKdtBrCdqy0CKusbqJfaYgCOPHVKlUXlRsCJNQdo5MO11CSAs69MItmUfQl4V3gYYciMkgZ2oICFFVhLjRMg4RcYuVHhFxsvNfGDFURFwkOeIEQRgCVFRcPRJxYFIIm0REXF36j3FkpVIUX2aI3GHCdCH54UZL7DrI1XqbRz/N4GwQ3TxKhHMdQHHTfpSnJXniBGGimXohTqwpp584KE4eJCJO6AeUTSG1I0qYTKhIq9iRxYhRQokJlIVov5iNKGvKVQEucj1ExM7/alcmOsJoCQiL5DZhVSMIgtBvyLxVEqUzMUhE3ORARcTNijXl1CMRcSNGqVJRcaOwpTxB06eEOBHpBWFSmCohjrKmTMSacuqhhDQqFxywiRAnOeKETRBryumGtKaUHHEjhbSmJCY6/WKuTVhTVh6wpDwhyq0r0xF7SmG00DnipO0SBGHwkHZ5EhE3MYRkjjjZlDqOrFTEmnI7Uu8UN/xR0ZHC4KDWgDbmifNGKMRREXE1iYgThIlhqlQqv0PkiJOIuKknDomFW0KUXT1ORMD4UkcEGmphU6wppwdyJ5tYU44UagITDDRH3OYRccB6Ue7+MoR4JwjDhMrHJBFxgiAMAxHiJhvSmrImGznGkWVKiJOIuKmHsqZshmJNOUxaxJi6Eq9vO0cZEdciIuJqEhEnCBPDxKw45lrh1sbuLT+TNIuCypJXwWJa3NG+FTZyo8+f4AL/EKvcmXaTVy40L3eed4R1rlbO6/zvTeeNy1jKLP+O5RWfVxAl2BcsFzya59Li4NWpacx55oNa0+sEAN/mRXYcaxcXg8vQtHl12fPMrzNwed8tSnjNUOKaLzrqwExE6xC5oIIkBawM2uq9j0E7vFxSeXHe1RN3gScop7yqBTDqfxbwPNMVrxojOLb1+UIil6Ru8RYjGi3eTsVGk/GwAdgHeOfr7ipaOPfiqGNeBgDi2PxeNlD8XkGcwo62fpYuM0htvlkU1VpZBd7y6r9X3OL4YdexNqwa73wWR1PMmbkGLF774zbMz+e0eNfIuh/gtyUZYyijmXt1lOZdY+70bvACQoiLZy3YNbMbqpl1a+lInVUOJb7bRurzvJe7voMnmHdrvDHJnlnzMfmMP9xFkyQzr8zdnPcCRCnvPh6pz7DKdVcYY8IKb9xqubxBSd42vycWMbctgx3z3u0y5RpeceA40+kAhl1OxgzwUMx+QzO1Js1oy7Oct9e54vA2+1Wd8pEQlfapWVPu9xZLf/ZkztvDW4M4kpi3CV9zzmWd6+Z797LKOZXBbBjL8hyZpWDnD7xclW4Cz42QGG4cTJhjQk4bxG1/unOsYkjqvPNx2gS7zXu3M1X+ZPWlYn1q+CF0Uu7cVsCct53Gq8fdOfZA2byMzavHeqfhGlDYOz3JZkKcYq6/oV7+uzVqxQlNqCNklfLnZgwJoZjvtpUy522ccQIzlXvKW5KBw9wb4TXM60k8w2t/cqbqk1R459OM8yleszWxTFdEHGE7mIQS7TTt5I6F1F1flS0NON3i2+wRkXKxPzF6tDBslEKbjIoTe8ppwM8kR9y4Qe0kpCxE+8UckSNuOTgpIi4grCkjiYgTRgtpTSkRcYIgDAEqR9wM0ZcK40kgEXETg7YsNAhLQipiSpgeJEfc6KFcJjZaU/pEupLusCLiwuL1VcWaUhAmhukS4gjbwUSsKbcFXeI5+xElxBWPdYkcc4Jwgg6RQ1CEuOnAo3LEiRA3UqgJjDcoa0qtMUuIakvhSTniguLOf6qMIAwTKiKO6qsEQRD6DS3EiV3eJKByDb8tOeImCUqIm22JEDfNUELcighxQ4UW4sbImpLIEVeNRIgThElhuoQ4KiJOhLhtAfWcqTxxZEScCHHCFlDJeiVP3HRARVrFtrQHoyT2hhcRV+3GcPP1thAdx0XsPPDOL4dERByRV04QhgkdESdCnCAIg4fMEdcRIW4S8NtpwbU6Dh1oe6qWhKaK5VpRgJE8cdNNLSIi4ghBVhgc5EbsjRFx3dEJcU1CiKtJRJwgTAxTNeqihBexptwedEMiioKoD5RYKxFxwlZIRNz04hORVl2JiBsppDUlYSHaDyiLyeUNVpQSESeMI1QfRO3eFQRB6DdURFw9FmFgEgiaxCYOsaUcaygBZkasKaeaGSIijhJehMFRzppyzCLiRIgThIlhqoS4QKwpty1kRFynbESc1BFhcyQibnqhBJ5IhLiRQk1gKAvRfjBLRLZtFN42CnMAnVdOEIYJ1QdFRD5TQRCEfkNGxIk15UQQtIh5sNhSjjUrVYmI225IjrjRQwlxhYi4MRPiamJNKQgTw8SMvJQC5rytBx0BEe10l7UDUWy2S/jzR883+vwJ5n3e4twT5m9jlTvNWTYukzG118PJLKvctY39xmVuPH6acZmX21/D6Vh/P+4+PIdv7Tp93TFFPKLvxHtw35L59zu9Zn7/d1Z5kRT7q0uscp2MtzB3NKoZl2nEvJ1accRcPOya12Wdm5fpOMSOqGYKFZf4XUr3/gwF4zXNQt65cp9Xzl0xv0iLGdiUM3uq9r58y597WbHPWNpvIatuXY5Cr/CiUawOcz8Ms2qprjIu02ny3m2dmH+3dlacaPppAt2jDiRFvawndRTb48V6FdHOB/5/ZE8xIq6etdCdNz8fAGSMW+nUeC+OYrY/GcPi0GLuTfAXedfYOsO8HgNAd8783bYj3rmC47xyedDjnmiNkEgQv/OMNuZss13y3Dpy58FdrHJomjfmrUXe+FPv4L03XoVXmXNt/rwDm3mNVjHfcRksz/x5p5rXR610eYuG2Q7e+ZbcojjUC9tmtpEp7xq1b/7cOP0oAKTMPYa52/ueLM4ROavaHViD2TNTwGauNUZ13vOOE/N261jKG7g2DNcsThDsKteW7FpuFI5FhhFxt0W7jT5/gnmHt04SMCYPHrMyZsd54900NH+3rZLtAeXMUF/pQseGL3nGG5NwhgnhEd653CbvHU2qzDEh43VLZ3j9b7CzvHg6mxXnJ9lpwMyucutIGWO9AwBaTeaaDLMvZc1lc96zdkKzdiSuFNvwSrcLddJ39XNCiPMcWA7vfvhB+c6tO1d8xtW8A10v3/Ypxq20mrw+SvFeG2S++UU6Hd79r97Hu8j2Lt6Aq7PT/D3Nma9oFvDaBG7byuk3/AVmOzKhTE9EnNakNaXYDm4PIr/4nEMiQtKPiQgYyasibEGHiDIIE4mIm3SsPIeXrR9w5UohsSVCdpSQ1pQDioibaxNCXGX9gscSkSNuvi0RccLo8JMUll4/Wem6NjLJ8SMIwhBYrhDWlBIRNxFUCGtKUyFOGC6UNeVsS963aabWLgoyDSIyUhgcbWJ9sGBNSdjEDy0iLiwKYrWORMQJwqQwNbN2J8lh5esXJlLHQu5MzVcUtoAS0wJCdKOiJmNCxBOEE5DWlLEIcZOOT0SUxI7D2x4m9I2hCnGUNWVlQ464SnEn8lxHcsQJo4O0pQxkIVUQhOFAWVPOihA3EYQtov+oSv8xzixXCSvYjrxv0wwlqDQrkiNumHTIHHHr1w5Ia0pvWEIckSNOrCkFYWKYGpWKioaLJRpu20AtQhWEOK0REuLcsDpMYTIhhThCxBEmC0rciVxZjBg1MZGjz0sH875RgtpSuCEirkLkiJOIOGGEVESIEwRhhCwTQlw9FmFgEghbhDOM5Igba1aIiLiZtpkNtTBZ1InnK0LccGkHvBxxXWeEEXEixAnCxDDVQpzYUm4fyIi4DdaUfpdKqGojFzsnYQtIa0piIVSYLCghLh7S4FnYnHGLiFsJQuQboiTrcQQnY5rdC8IpQkbESWS/IAhDohkUhYF6HMHKzXNwCsMlFGvKiWOFsIKdaYvwPbVoTVpTihA3XDplrCmpiLghWVM2JSJOECaaqVEgPImI29Z0SkTEUVaVkh9O6AUlxAWEJ7gwWZDWlBIRN3JS20K2QfhydA57AMIXlSNuoxVlbllYDggbLkLEE4RhEBL9j0TECYIwLHLLQoMU40QcGHfCNhURJ/3HOLNC5AabFSFuavG7Kbx0/ZwncSxxcBoybcKaMiyzyX+U1pSSI04QJoapEeLEmnJ7QwlqGztLKj+cCHFCLyhrSsoaTJgsgs1yxAmjRSnSnnIQUXFkRFxYtKKk7SklT5wwGjbuyAVkLCMIwnCh7ClnJE/c2ENaU0pE3FhDW1PKuzatULaUjUogOcyHDLXJv1rGmnJIEXFiTSkIk81AWwql1JkA/g3AXgAawJu11n+llNoB4N0AzgFwB4CXaa0Xt/pdWgOH2jOb/nzHcrNwrOn6OBLVjK97f3XJuAyw9fVtxdtvv5xVzrXNLUA6Xd5gO814mm17uThR64UdmC+4LqBSOKaXFY4vPPD8Z48UB60t10Pd53VaT9l5i3GZx4S3s861w+J5wcfaZpX7TrLHuMyXVh7COten2g9llfP2mC+E25b5O5Pv0oVjVbcNZ0+JSZAqli2D75u/A4HLEyq6Ka+OtFrFiWEv8mM8Ww2LGYCY7dy8oLNSfKei0EG2M+HNdWJeG2lHvIlVWuPVLe2Zl1MrvH7DSnjfLXYdVJINYsNMjLi2xZBFm59rJim2IQuzFeT++nu0VK0Ax4tlM8a9hGVeJkt4dcsLeS9OPMuJPuS1I9w6koXM+u8z+oCcd/9zm/fddI86EqRFIS6p2Kh55mOZvUHDuAwAeGfyIlTvPD5vXCa/3XwcDwDZEq/d6jZ4U6ODi+Z94sFsF+tcbFzGe5Px6rEKeWMS2+XZG+b3md9/xLzv5jaYC6Iz5vef19IB6QzvHS3bbq1UAmDDzL3e7cBk2mEx97Sl5lNLAEDu8O6mxei3Leb4n0ual7vxQaM4LnBnM+zxyvcFh7qzpT97Mp89zJsncvq2xYhZSZi4R8z7G22XK9NozRWOzXQi4/GkYs5TOOM0xpAcAJBUmf0N0zTD23L1kSat8Ma7lTPK1eNdefFdjOsOzttxrPS5lru8+n/7Aq+cvcxcX5wzHyfUd/I2Qsax2TV2qBxx0fpOy6PSXLguPJ83/5qplF/vs4n+rBbHqM6W/x1Rp/gde8EdW6iM996ER8zbhMzjtSPdGq+NTJntFmeZNueqN8w22V9kzrcZ50tq22uzwaAj4lIAv6K1vgjA4wC8Til1EYDXA/i01vp8AJ9e+/8p4UdEdINExG0bIiJ8fOOu8ZCypiSinQThZMj8g0RdEiaLUfq6C1tD5okjIhhPlflWcTK3WC1u6lisFI9JRJwwKqiIuFhyxAmCMESWiX6xLhFxY0+FiIjbcpOTMHJWqOhTiYibWmqtomDXrsh61bAplSOOsqYc0lpC17WR2uuX8t00h0usbwiCMH4MVIjTWh/SWl+99u8GgBsBnAHg+wBcsfaxKwC88FTPtdGGEBCrnu0EmcdrY444Iq8KVU4QToa0PZUccROPCHHjS0Tk6huINWWraE25HBYXFylryvm25IgTRkOwMVoUQBTKWEYQhOFB2eXNihA39oStYv/RFSFurFkJKWtKnlOOMP7U24QQVxMhbtiQOeI2rC2OdC1BKdKestqR9CmCMAkMLUecUuocAJcC+DqAvVrrQ2s/ug+r1pWnhE/l/5Lk9duGNvGsN4olIbGLnNrtIggnQ9WRjdYEwuRBCfMixI0HdERcf4U4N01Rj9dPdnOlyJ3HSxIRJ4wREhEnCMKooTatSETc+FMhhDiJiBtvOq6HxFq/ZBekKXzZFDqVkBFxVRHihk2bsKYsRMSROeJ4FowcqEjJakfyxAnCJDAUIU4pVQPwPgC/qLVeOflnWmuNTSzwlVKvUUpdqZS6Umdb5wwIxJpyW0NZTG7sLAOis5SIOKEXpBAnk5+Jhxo8U5FYwvCJHSLCuc/WlHNERNtyGCK3isOixWoxIo4qLwjDgOp/JCJOEIRhQkXEzUTSL447oVhTTh5KYYUQvmfFnnIqoYS4lkTEDR0yR1wJIS4e4lpCm4iIqxERlYIgjB8DF+KUUi5WRbj/0Fq/f+3wYaXUvrWf7wNwhCqrtX6z1vrRWutHK3vrSyUj4mSH8LahXUIsoSLiYhHihB6Q1pSSI27ioXKOSUTceDCMHHGULSUV+bbZ8XmJiBNGRKUrEXGCIIwWMm9VJHZ54w5lTRlXpf8Yd8SecvtARTS1q/4IrmR7Q60tVsbJmhK0ECfWlIIwGQxUiFNKKQBvBXCj1vrPT/rRBwG8cu3frwTwgVM9l09FxInt4LaBjFraGBEnOeIEBpQQR9UlYbIY9S42YXNihxDi+pwjbr5VFNKoXHCbHZeIOGFUUP1PJA4QgiAMkeUKJcRJvzjukNaUdek/xh1S+JaIuKmEtqaU+emwiTwXuVLrjvlJCit/wKXNo9JceEMU4sSaUhAmlkG3FE8E8AoA1ymlrl079lsA/gjAe5RSrwZwJ4CX9fpFtsrx/NO+venPH+ncWzh21q4FPGzmEPHprbmluce4DAAcb9OLeL0IXN4Co+r9kQL1gNc4LzTpSIFeKGdrS1GKvGvurdyyigPUSrcLx83u/38tLX73OHTwyLmDxucDgNPdReMyrZy3o6lu8Xa3WIp0fe2Jp7LeH+oTtm1eRwAgy8z3Ebi2+f2IwmIzWe124fm939uow7OS0Nr8/rdj3iA9TXle5ppRtbTPe9aqw/Rb725eR4JO8R7Htgt0Lai2+fl0wPtuySzzXWPeSw6a64jCfLepSGU/S7fcOmQZdm07VooLhgu1CrKgWLGPzxX7l9luC+ms+ffTgfnzrtZ5/bZl8e5/NzEfXThtzogEYHZRALP6q9T8Ot0G77tp5lY3lW19vgqRo3TBqeJ4x3ycdkZlybgMAJw/c5RVrpubt6137GbuBGc8awBAj/u/Kdq8nMqZ52Kic/MXTsXMipzxxiRZlTcnshjPLfOZDRD3sTFOl1WZ4yZm3bI65Z53wym2NzOdjtF3tJnrhdy21WL0bQBQ9c3nYKHL27DXSXjvjWP1HluoLEfQWf9+aQWomoZvlb/eC0LztRUAwE5esSNR3bhMzmiPAeDekDcmTxjlTOY2y9ViRNxc2oJlMKa0Kry2NY+L5+5FWuHdf5sZ5KeY08R43rxRTmd59zEu+W6HjeK7uBRU0ErKj4WynNdIKofXJ+bMvtSumd/LisdrWznteOQ7qGwI9njk3MH7IxTnVFEM33NaA/vmVgrHy7DQMhvHrwTFdzNsJ6XXyBRjEmbVePc/b/HqZHeGMSdl7lFoncF8b7hLOQvm9z9navLxPK9NTmrcOdGQykwwAxXitNZfwubTle/u57mcqPgGJOHwkmUKo0Ui4oRBQUbEiTXlxENZHUqOuPGAjIgbQo64peom1pREjrh5wtpSEIYBZU0pVuyCIAwTKmfVTCQROuMMlR+uW7UBa7gbAgRzyIi4llhTTiN1wnK0VRNrylEQBW5BiAui9H4hzk2K68/dYUbEkdaUEhEnCJPAwHPEDQuXiG5IAhHitgsRIahtzONF5fWiRBZBOBkR4qYTyupQcsSNB3SOuMFbUy4SgtvqcSJHHFFeEIbBxvy3AJ1UXhAEYVCQOatEiBtrSCGuJuPeSWCFsoIVa8qppNYuCimtqozxRkEnIBxaOg+0o16XWH/2hrf+3AqLAq3kiBOEyWBqhDgnKlp3pBIRt21o+8UBysYIOImIEzjQ0ZYixE06o06wLGwOlauv3znijCLiKsXjc802z59VEE6RjdH+gETECYIwXJaJiLi6CHFjTUjlh6tK3zEJ0DniJCJuGqGFOImIGwWUEBecFCHndotz0+5QhTiJiBOESWVqhDiXsqaUiLhtAyWoVUpExHUIAU8QToaKiKMWQoXJghLmRYgbD4ZhTUlZSy4SghsARJ6HaEPdcPMctUgmO8LwCRNCiCMWCwRBEAYFKQyIEDfWVJrFvqNbl3HvJCDWlNuHOiHEtSuyXjUKqLF1ED0gvpERce7w1p9Ja0oij7QgCOPH9AhxpDXl1Hw9oQeUNaWfpLDyByIlqYV3qpwgnExMeH37SQYrK0bhCpMDFWElOeLGg2FYU861i9aSVC64EyxWij+bkzxxwgiokBFx0nYJgjA8lkWImzjCtlhTTiorlaIV7GxL3rdppEbliJOIuJFA2b6fHBFHCXHDzBFHW1PKJlFBmASmRqlyKCFOrCm3D0qh3cNCkLSmlMUroReb1K2AsCMQJgcqwkoi4sYD2ppyCBFxm1hTArRtpeSJE0ZBSLRdlH2OIAjCoIhcF117/Tzbz1L4RMSuMB5QOeLiqqyVTAKUFaxYU04nVERcqyYRcaOAWicM1uWIG0drSumDBWESmJhVRwXgbO/Ypj+vxsVOa1e9icurtxmfq2LxGrAzwiVWuUTzGuxWar475taVXaxznbVjkVVuiUgu3AvH4kUaxaFTsKM8v34EiztWIxl2oLhoOrM7gnZ4evSNnTOMy1zf2Mc61y6ft+BrgZfD6N7OjHGZQy3zMgAwX+Ht6Osk5guPUcJr8tquV6hb+m4P7Xpty3La4t3/VsP8u1lt5r4KZjGVKOMyPnPzJrOJBPTm10jmiHNcQCvoHeZ9QFDhCUUWt72LeJMyyy5uWumF55mXORXiSrFS+uhCVzcXv62G2f2ghLiGqsFp0nVmKShGxM2vdIDU8D0w/TyA0OPVrTTjvdzaMW+3tM1r63LH/H4AQB7wzqc98/ctY7orKGbQtN2jLa8QtjP3NHbgvvvmzM+lePdxV8gbk4SOeV1+8DmHWeeKU15/v9DaXJDfijNml1nlOKSaVydbXfN+I2G2I1wsXpOAZd98vmHZvJc0S3mDEsc170vTFq+vd+/hlVNZ2Qeg0AhC7Gw11x2tooN2WG4Mq3Lew4528Z6b9nnt3VxgPng9u7bAOteMwxNX9nm925+HpMW2dKlSxaHunNG5HhbeY/T5Ezx95gZWuXbNfL3jmvbZrHPdMbeDVc5mtCVRp/w72txbbHPm4jbCSvn5is2cb7RONy/TVcUIvlIwUy9z2xLFmd4wxsgAEEXl2sVaq7im+e3W6Wjl5d+DIGDOSV3mwHU3LwrLdhhzUsY8FuDV/6RCvHdJBzU3BrSGS0TEedUMIXj3f9/MitHn/Z3F8+/JGjhv9+Zr5idzuFk3Oh8AHF/Yeu1rM/Ru3vp6zNho6N3CG6PZMXNuyZzLplXzctxr9JaZ83SP993Ya3fbiOmJiIuKjWsWMmdzwkQSE7tW/PiBhdsgJqzoJCJOKEHkFSdLkidusqEiGqlILGH4DMOacrZdFOKWNskRt9nP5ojfIQiDhorub0u+W0EQhsxyUBQ/ZzvSL44rfpOYB4s15USwUi2+a3XJETd1OGmGcMMYL1cKLcIiURg8lNuEv2ZNaWc57Hy9uJHZCjlzgz+HDrHpJWzL+pQgTAJTI8TZnaIQl4ZT8/WEEsRBcTJxso+zHxGWHEQZQdhIh8glGHZloDPJUNaUkiNuPBi4EKc1mSOOygN3gqWQyhEn1pTC8KkQ1m8dYrOIIAjCIGkQQlxd8sSNLV6zGD0RV2XcOwmQOeKa8q5NGzUiv1cz9AElwQWjICKEuKCzOh91u8W152HaUgJAu1Ic+1c6/U3lIAjCYJgapcohhDiunZAwmdC7Vh5YvPWJiLjYFyFO6A21yLlxx5owWfgpFREn7cE4QOaI66MQV4tjuPn6MUPHdbeMiFwkIuIoe0tBGDQBsQlE8t0KgjBslkMqIk7EgXGFiojr1KTvmARWqkUhTiLipo86kfevUTG3ZhX6Ay3Era7/uISzTuINdx2hXSXWpyQiThAmgqlRqsiIOMLXV5heKFEtPCkKLogISw6G77Cw/aCEuIpExE00ZI44EeLGAjoirn/CNxUNt5Ut5erPqYg4EeKE4eKmaUFETiwLiSNtlyAIw4WKiJuRiLixxSOEuFisKScCKiKu3ooAzUyqJowlpBAXMvPtCafMVpv8qfxwyZAj4mhrStkoLgiTwHQIcVrDpnLESUTctoIS1fw4If99AomIE8pAWVNSUQnC5BAQwo7kiBsPBm1NSeV2o6wn1/2cjIgTa0phuFCWyFQOU0EQhEGzHBb7xbpExI0tXovYkCrWlBNB13MRbRgbO7lGhUi7IUwu9Q4VESdC3Kgg1xbXIuI8SohzR29NKRFxgjAZTIVSpRINa0NbmDuAdsVPeTvRK0dcQFhTSkScUAY6R5xMfiYZOkecCPPjAJWrr59C3DyZH848Ik6sKYVhExLtVtsVIU4QhOHTCIi8VSLEjS1+g5gHizXlxCD2lNNPrV3MESdC3OigIs6CMYqIi4jrq3QSqFwiZQVh3JmYVUcFjTmb3n3uJMWGMAsszNktPNRdNj7XE/wF4zIAkGC4jd69qfnju2nuNNa5VvKi/UgZZizzCdnxrMY6l10t3v/T9TLOqi4CAAIiIm7PjiYWk60XYDfjxmXze3msuXXUxWbc4exglVtq8J6b5xXfqV7sqvGiQ/ZUGqxyuTYX2m86upd1rqhafNcqTgdqdutdRzriDchUbF5Oe7z2RyW8DQvaMT9fUmedCuym1S1GSp+AzBEX2oCbw9qi3GY8Zv+dxmUA4LzKMVa5c/0jrHKeMn+3b4/3sM71hWMPZpVLCFvpIEtge5s/l2RHeaGuroptzuJMBSnRh5zg2I5iWzoXtaBrZgKhWzEX8OOU1440l3ntv7PCaH+Yc8+MmfpCW7xGwaqYC7ops/1xl3kLnOlZm9cRLyv2s53QRW2Ot/i92OLVkXsPz7HK+Yz6X6/wFhpPq/HGFtwxyaxrfp37w0XWuXzVv40JvWgyX9LD8Qyr3M1LvP7mkfsPGpfxNu7iLEkO3rhpKTZ/3+625ljn6jIjZR2D/SUrQXH+NNuI4DTL3Z9kltm47i4uVpfBcczHdgCQ5OYd3OEOr/4vO7w2edbp3Qc4zWJ992dT7HDM5m+fXbrQ6PMn2OPz2tZ93pJxmVbKa7eSLm9pLLXM65btmLU/jWqAPUvNdcfcu4FWXnJtgVf9Wdv2vYi5GZ55jTlTT3ZXzK8zrfIGvNWdvd+zXVmzcEzPA2fvMVub9G3eGOHW7i5WuTTiPYCZuvmGxrmAN95dic0FzY5f7EfzBnBvcxYzS8Vrbzke7m3OouryotKqrmHfZgNR4BTS7+gm0Kn0fiZZznhPmd22znjxP5yWJOUt7cLKeO2W0+LdlDQ0P1/GDTRihl9x21bNOB+nzCQzFV/Xbhd77ZxRsYXJJg6Lg2cvWh3kqlzDi0e/c0WYTNo+EREXS+j/JCM54sYX0pqSSIrNhYpkWyQi3k5mqUpExDUlIk4YLlQkNtU/CYIgDJoVIkfcbCT94rjiE9aUMbHRUBhPlqtETkYip5gwudSJiLhmlbljTThlKOesMNrcmrLrDb89pQS3ithTCsLYMx1CXKeoQmeVqfhqggFdwprS72wePh77NrQlgq3QG2pHVEhEWAqTQ0AsaEuOuPGAzhHXv/dtjhDQlqpbb59bJH4+JznihCFTITaASI44QRBGQYMQ4uqRWFOOKwFhTRnXRYibFBqENeVMW963aaJGWI22RIgbGR1CiAvuF+KK7Wl3BBv8O0SeuEpHhDhBGHemQq2yomJEXBaIwLLdoHLE+Wt54byo2Fkmvkw+hHJEZI44GeRMMlREXDSCnWxCkZh4Dn3NEUdFxBERbyezEobI1fpxxUwnhpPyrM0EgQO1gaBNbBQRBEEYNMshEaEjQtzY4reIDWg1GfdOCitErrAZyck4VVA54kSIGx1bRsQRqZFGEhFH5YlryRqVIIw7UyHEkRFx4VR8NcGAblDcheJ1NhfiqM8LAkWHsP6icg4Kk4GV5/Cy9QPoXCkktrQJ48AorCmXKltHxOWWRS46zhG/SxAGBRUR1yE2igiCIAwaKiJOhLjxxEpyuBs2LucWkIQy7p0UVoiIuFmxppwqaCFONluNiogQubaKiBtFigvSmlIi4gRh7JkKtcruUDnipuKrCQbERGfpR5sLcVQEnSBQUBEHFRHiJhZvs/xwSiKpxwHamrJ/Qtxcs2gpSVlPboSyr5Q8ccIwoSyRJSJOEIRRsCxC3MRA5oerybh3kqCtKWUMOk2QQhxhPSgMB8qa8sQ4nFpLGBtrSskRJwhjz8QoETkUrmw/iPzZg5cO41G4Z92xBbeKK9sPQhbeYXwuWxWFvTLstHiDodMd3gLjua75de6172adayHndSxHs63tvihaOS8Ef6uIOD8iwsfXhLh7O7Os8+XafPJSD4oDrDK0urwd70mHV85xzOuWbfHem8W49wI4RSM2ryedNm8wGxE2pmHShbKK0bjrYO4H0AHD7o47l27z3m3d67sT2O3hbpBwK7RYWs+KC0Wx69z/ecs2r8sXVA8blwGAp9ZuZJU7zeb1N109vGfwBTyYVc6dK/aJQZqgXtt8gc9kV/fOuFk4Fp2vUT13ectyyzt84Oj6Y2e6x3Bsd/k2rB2Zt0HNJV4bqXNeo5DVzOu/WubVK4vr7DnH2wjhB+blOm3eULk7z+sT3crmE+g6iu99XLFx9vwi61ythNcn3h3zxhZZZl4nj947xzrX8aDGKrdjnpf7cSYwj0w42OaNPy1l3v8CQGCb1/9U88YIac5rE0KX925/5/huVjkONvP+t9rm49aceR+1y7vGeEf5duuYV/w+9biDvGTzkIa8a3Q9XseRdnl12WGsC6TMsdY19+xnlfPO2notYffRRuFYVPWwkJrP0w936sZlAOCrd53DKnfB3iPGZaKM12+nK7w+UaXmfZsOzerxglPs02bbEVDyNQoP8e4JpwvwF1inKv1dNsKoxgCApG5+Qncvb7PBI/Yc6vmZ09PiPOTMfUt4/K4DRuc6HM8Yff4Ed/tzrHIhY2wNAJqxlsZZfwOAmme+BmcT9SOIElhKk04tqWfDUhr3rvDufxyZj60PqeK5Oodd3H10vmfZLDXvp2zG+jMApBGz/20wrpG33Mpuf7LiHolSKG1+wtzl1f+0uG+q3PmYapFbXGrpCfc+TipTETbmdooDGbFa2H50CbFkqxxxXYmIE0oSEdaUVGSCMBlIfrjxhvLYpyxAuMw1ipPopXrvEepyvSiIza3I7n9heFCWyJR1siAIwqBZCYurJvUogtK8hTphcITN4gaPqCZ9xySxXCEiUCVH3FRBvqd1eU9HRUSsFZ7IEUetJXRHYE3ZCosbYqpiTSkIY890CHFEtJMIcduPOCQWb7ewppQccUJZOoT1V9AVIW5SoXaxjWLwLNBQz8JPUoCxc4xirlGMKlqu9RbiKLFulhD1BGFQkDnixJpSEIQRkNk2mv76RUALGrWYux1dGBRhqzhniaoy7p0kViqUNaXkiJsmKtR7KoL5yIgJa8ogTqFyDa9bXH+OR2BN2QoIIS6SPlgQxp0pEeKKO+8SEVm2HVSEm79mTenFxMI7EUEnCBRtIuKgEsluo0nFT4oTnVgi4saGzLaQ2OuHJ5YGnPTUd9m7SYbahp2CuaJzb2yEEuKo6DpBGBRUJLZExAmCMCrIKB3JEzd2hC0i0qYqfccksUK8a7OSI26qIN/TmsxPR4W2FJmeJIgT0qmFcnQZNK2wuBmv2hEhThDGnakQ4hwqIk6EuG3HVhFxVI64WKwphZJEHrEjSiLiJhYqIi52ZUFinKAmM5QNiCmzzeIC4UotRG73Hg4tS0ScMGJEiBMEYZyg7ClnOiIOjBuVJhFpI5Z3EwUZEdeRiLhpokJYU8YSETdSOlRUXJTATYpri6MR4qiIONksLgjjzlQIcV672BCmIsRtO8gccWtCnEtFxIkQJ5SEsv6SHHGTi+SIG39iyp6yD3niKFvKMvnhVj9XzBE3uyILjsLwCMWaUhCEMWIllIi4SYCKtInFmnKiIKNP2/KuTQsq1wjahGOLvKcjJSKEuLDT3SQibjysKWsSEScIY89UCHFkRFw4FV9NMICOiMvW/X0yiS9irVCODhERF0pE3MRCCXGU8COMDmoy4/UjIo6IYCstxM2INaUwWiQiThCEcYKyyxMhbvygc8RJ3zFJkO+aRMRNDUE7gbUhFXYUOsgdWdMcJaQQFyVkjrhR5JtvUtaUkiNOEMaeiVl5zKFwU+s08mePaRwoHLvHnsdNrdNwqDtrfK77ohnjMsBqgmoOD60dZpXb5y0Zl/EUbyFzKStGApThO236mW15rm65RdECupg/yGlnONieRdQoVvXjdhUH27M43q6yTtfpmk9g0pQ3mAp9nuhjObycSr576gveZVlo8573whHGe5oq1rlaUa1wLOwkyBeKu5BOxo5559OMYpqpK1td3jW6TfNyNnNc2D6jONgtQzWkrRlmUFwkSgMb4drnk9T8Zi6mvDbyYDrPKnd3spNVrpVvXWcpMuaenT1hg1XuOzfsR0f5ANaX794ZYjmi+3Qdlqsj4aFi27ZQqaHd6p0j7rBbPHdtKcZK06ANY7zcOmFOwjPeu60YbYJmjibZ7ZbNG2+FvrldS5e5WKkWeDdFbXH7KSEu8l3sDXjvWrXGa5Q9i9cmL8e937ONHL2X17aiyatc3TpvYdNS5nXy4LL5HAUAmkd541Z7hXFPeM0InDNbrHKuy6tb7QPmY0KbOf7JfF77k/uMMTmnDACEzHKeWbnlevGdruVtZJXe94jxygAAPI83R3EcXt2KM/O23LZ4918xb8qNx7eebz/92E2FY4thBQtd87bkjMqycRkAsPbwvlvgmM+Buzmv/fd38ERkzRjbdRtm0eyNoPiu1TsR7A6grd7jxKTKu/8WYwkinue1rf4iqxiCY7zvFs+Zl9EZb0xuqa3bhFqrOPZo1zzYPcpxzrUZ3PYn9HjrVFXPfEzuWbz2/+4V3nw7Ihy0at0YYVr8zllgwbUznDm3xDrXCmOM7O4qPutaJy7VwYZV8/vPrSPtnDknPWbe/2bmSx2nVI47UOZUZYc3tIbiDX/gMtfunI55PdEOc8IxoUzFFosT9oMnExM2hcJ0ExM7Vvz4RI44ItRfrCmFknSI/GFhV/y3JxU6Ik4iZMcJ0pqSmPSYMt8qWkku1sot9FOfk4g4YZhQ/U47EGtKQRBGw3KVyJ3akX5x3Ki2i6tpnZr0HZNE6thobbCitrRGTaJfpgIqarVTlXd01FARcUGUkNaUyQjWEtoVIiJOrCkFYeyZCiHOk/xfAugdK0GUAFojIOpIJGKtUJKOR+SIE2vKiYUaPMdi7zZWxA4hxPXBmnKuSeSIKynEUZ+bJ36fIAyKkNhUFBHWyYIgCMNgpUJF6YgQN25QQpxYU04eZJ44ed+mgrBJ5ACWd3TkGFlTjiDffJu0ppTN4oJwMkqpO5RS1ymlrlVKXbl2bIdS6pNKqVvW/uaFzTKZDiGOyP8lQtz2I3NspPb6Km3nGm6S0VGTRMcqCBSx6yDf4BfmpymsnGn9I4wUyRE3/kREFGo/hDhKOFssmSNusU5ExDXbgGb6awmCIdQGEImIEwRhVFDCgETEjR+1VlGIa8si/8RBCd8ixE0HlRbheCBRqyOnQwhdQZTAJTb1UvnNB01LIuIEoSzfpbW+RGv96LX/vx7Ap7XW5wP49Nr/h8ZUCHF+R2wHhVWoqDg/TuETeVXEvlQojVJiTzlF+FQU9Qh2sQmbMzBrylOIiIs9F50N0Udulq968QvCEAiJXa4dieYVBGFErFAROpEIA+NGjYyIk0X+SYN830SImwoqVERcTcZ3o2Yzx62xiYijhDiJiBOEMnwfgCvW/n0FgBcO8+RTIcRREXFxKIuq2xEqyi2Ikk0i4qSOCOXZuAAPiD3lpCIRceNPTAjfQR/et7lTyBG32Wcpu0tBGARUnyNCnCAIo4LKESfWlONHtS2L/NMAFRE325b3bRoIm4TjgYjlIycKqbXFFB6xljCSiDgiYk82iApCAQ3gE0qpq5RSr1k7tldrfWjt3/cB2DvMC5oKIY6MbpBop20JGREXpZvkiJMJiFCeiMgT1w9hQBg+PpUjTiLixgoyR1w6GGvKJcJycjOWCBvL+YYsggjDgcoR1/FloUYQhNFACgMixI0dVESc5J+aPFZCiYibVkKxphxLOpts8h+XiLiu5yC11i/pe2kGtw9zZkGYEByl1JUn/XkN8Zknaa0vA/BcAK9TSj3l5B9qrTVWxbqhMTErjwrAHr9B/iyMix1XfSbCHr+Bg50543Pd25w1LgMAR5ZrrHJf65zLKmc55nUlz1TvDxF4AU9wyFLznSGux+s4Ai9B0/ULx9uLLlSreK8O6zqONGvIcp4e/ZjT7zIuc3H9bta56lbEKreclV9gXl+uXM6kk8k07z5+4/jZrHKNanHy34s84+1UyhMLbSpZr9MBapvX16zKOh1U07xp1oz2AACy4itTCpWb38vUvFqtMsNrf2oBvSOslhPHKw98vh2bT3y+fvQc4zIAcN3S6axyUcpbQMm1eR/w+D0HWOfyreIkpVS5vW2k9eJ1Vitt+Hvp6LOsZN+2o90qHDvu1pB1ytXnxbD4Us8eSpDPl3uRdGB+T+b20GOfQbF01HwsYx/h1Uc15DSboWs+vkiqvP635fEaV7VFU07miPNcNFLeuc6tHGOVe9BpR1nlDsbmebBvqfLq/9EOrwPmtP8A8NCZI8Zl9lWWWee6BvtZ5VoetxM2pxLwrJF2V4ttdBnuOdu8b2sv8MbIVsCbp7iuefufRry21a3x2i3TlKftHcXx6kynA1XiFqmENyet+ry65VjD63BmPN79n6/zIux7zWWrhBB3wNqJxbZ5O3nhzH3GZQDg7B3HWeUsxtrYTS3exvaDHm8NyGeMLZYY07bGXLF/mokilBnaZzVe/c8Z76nNDMiJGXMUAMg8XrktB1yb4DHXqRbird81RQwHFvwqvnDkwcbnmvd57ci+Om+85dq8+V7FMW/LzwwXWec6LeR9t5m5Ylt+pl5EPSOO71yENQccieusc3H7qHbFxUxz/Uu3313CyszWY76aZ37/7z4+Z1wGAFvi6O40r1uZz1uTdFd45bjtXWa+lImUubbIxVvilctdRpvMl8HSk/K+0b9a64Nrfx9RSv0X/v/27j1IsuyuD/z33Js331mVVf2a7pme0cxo9BxJSIwENstjDSwCE4jFjxVGIGzWxMZ6d+3dtXfFeiN2/QcOHCa83g1jYhVYBocxrFfYIFgw1mLZgBFCQvKCkDSa0Qwz090z093VlZXv+zz7R9V0d9X9ZVWeX2Vl3lv1/UQoNJ2dp+/NzHvPPff87u93gPcAeNUYc9la+7Ix5jIA9xu5YzgVGXGBUJoyYtnBM0nKcmtMYzFziRlx5EIq/9UUHgKg4qsJ/QEz4opF+j2k382VVEZyuzX/qFYsTSmUuyRaNC/LcmV1M2NYVpeIVqYvlKZkhk7xtEf5mUKWvSufvvAQKs+306ElnaPMiFu5SFjuqDpJEAgZcfEKSlMCwFgoTymVIyY6i4wxLWNM57X/BvCfAPg8gI8B+ODe2z4I4JeWuV+n4u69Osk/mRI3VtMR0mqJ6eNhjHooBOI48U4OpNKUXCOunIpSToJmk4IL0tp+TqzF+jA/YeGyRlyvlX/vxkiXwUHkoiksvj6pBoBRPglORHRMYmBgysBAkQRxgmqyf9yb+B5CLuNROgOhFCwDcadDa5gf441ayrI1tDBSIK42SRCE+bmEpLqaHBcpENecMBBHtOcSgH9pdu+XKwD+mbX2XxljPg3gnxtjfgjACwD+/DJ36lSMwKpSRpzQadLpNzMjjmvE0TFNqkKQN+Igp4yqXCOu8KTAqLS2n4v2JESQ7i/7MakGCIVze5aeELTbYEYcLYGU2S89fEREtCyjehWJ56GS3bu2NuIY1SRBJKz1SssnZUYMm1U+xFFCYgbqmIG406AprBE3YtbqyoVClbXqNEGlSBlxTSkjTlkvkeiUsdY+B+AdwutbAL55+Xu0q/SlKb04g5/sLyia+gZphYPLs8gpI46BOHIwrglPGwnHFRVfVcisilY0eCaZlBEn/W4uNgZSWUq3NYKk97M0JS1DcyoE4hyCyEREC2eMmBXXYVZcYbRH+bWMhop1tmn1dlia8tRqCgFzlqZcPTkjLkUQ5tdzS2qrmUsYMSOOqHRKH4iTsuHius+nvM4oMSNuZiCOT2rS/KQJzwYz4kqpJmTIsjRlsZxEacrjlqWc9X4G4mgZxIw44QERIqJlkgJx6xNeF4tCyogbCRkUVHwsTXl6tYbCGnE8T1cuEpY7qk6KlhGXL2EqBXaJqDhKH4gLpsL6cHVmNpxVUiCOGXG0CLOCvFQ+NWHwzNKUxSL9HsctTSllxElrvh1GCsRxjThaBnGNOI5jiGjF+mJwIJ+FRavRFkqUjRpce6qMxNKUPNdOBbE0ZZvn6aqFUkbcOEEQCxlxK1ojTsqIazEjjqjQSjXz2Ivzg49gIAdYXnuvZ/Kd5FEGU91FLw51X6fNdNl7aeTezq+6fx8AEA6VA4HI/YLUfEBX07haScX08bVwilqcn3i3TYOqSfGei8+ptveNa087t3lX7YZqWw9V8sf+PAKjC0rvZO5P131quqbaVj/RlUe50Xff3lpjqNpW1U8RbOaPocuNHh558PbMdqNI9yTbaM29XaehO2/GkW4id1BtuTdKdH2dH+j6rczK2wuEgM40CO6+f1a7w7y8te7cBgCMsUe/SbC5vrzgzwvjTVU7D7rP5vsZYqG8Rz2J4fvysZCmR/d1XSkjrt6CGc1/7d7xO/l/dzQG0vmOGW/oPk6IN3X9eC1QPiigGJMohlq7dIcIrLJdNMdxclAc68Z2tW3dDbm9Kn+4VpK/qZ7WA/i+xbN3zqu2NYx1Y7vXd26p2gUmfx09ypPrunETdF0ywkz3e7+1ed25zYVKX7Wt7zn/WVW7yLof/9NMN0YYZ7pj60uTy6p2D7e3ndusvU6XSVLxdB3eJHX/Lp8b6s7t6zu6EyDJ3PutYSf/W3fiCewRp1J2QTdRuF7TBR4C373/AYBYcd1o+Lrr7+PrW6p2a8Hs7+QdlXzfVNnMsFnTZS3+2xuvV7WrVnTf/1s2XnVuM05091+DHd39dtR0/73jgXsfecfm733Xp2PYtTm2P1E+qK5olrSVgzRF/wMAfqi7v6xM3NtVlMfx9vTwY6s5zPeHNypraAXu/eR6VddHjpRjQs11AwD6kfsckNfUHVvae9KXzEbutVovf75FVR/XJrvvbQe6OZkH2z1Vu8ZGfl7jcXMbT26+cmi7rdDtYVQA2OjorhtSZuE8+r77PibK9Wmtsl2wo7zf89yPyUyZJKvp6wBgclF33tTusDrhUUqfESeVppSeXKCzQSo3ub6Tv9Ge1AKWLyUn0vqDDWHNHio+qcQh14grlkgsTam7+X1NV8yIcwsobwvv32BpSloCKQNbWruUiGiZ5CwdXheLoj4SHlpuMZu6jHak7NMxS1OWnrVojfLBm6FQcpCWayrM/3R28oHOVZWlBOT+XOr3iag4Sh+IqwmlKSOWpjyzpGBJt58foHJ9OHIVCsdMjYG4UpLWiGNpymKRfo/qcUtTDvMTg9uupSmF93ONOFoGltgmoiIaCGvEsVxecUgTshMG4kpp0KgjO/AgcXsawU+P96AarVYtTFDJ9meehIGPmPemKxfW879BW8heXOUDvdOmEIgbH++emYhOVukDcVUxEMeL1lkVCpNS3X5+klR6uoXoMNIxUxcCOlR8VWGNuIg3O4USihlxxzvfuoP8QxmuGXH9RiM3CbI2naLCSRA6YdIacWOOZYhoxfrtfCBunRlxhdEYCoG4NrOpy8h6HgZ1oRQsA9+l1hay4UbMhiuEaWO+cXYcrDIQl79nro/5sDhRkZ2CQJwwocpA3Jk1b0Ycs1/IlZgRJ2QoUPFVhYAO+4RikQKjtWNmxHUXkBGXeR52GvkyXMyKo5NWj4SMuCoDcUS0Wn0hI64zZbm8omBpytOlL5anZCCuzMRAXIvB8iKQMuIkKy1NKWbEcY6KqMjKH4ibsDQl3SOVaeruCBlxLOdEjqSMOK4RV05SQIcZccUiZcRJAVQXG8Iaca6BuFltuqORap+I5iVlxE3qnKghotUSM+K4blVhNBiIO1X6zfzDYOsjnm9l1hoL68O1mBFXBJnvzVV2cpXzCFwjjqh8yh+IY2lKuo8ciJPWiOMNCLmZCv2KtEYlFZ8UiGNGXLFIv8fxM+KE0pRNt9KUgFzOcmPMjDg6WQ0hA3vCjDgiWjFxjThmxBVGQ1jPaNLmtaOsmBF3+sgZcQzEFcU85SkLlxHHQBxRoZVm5tEAeKR+J/f6A2k/91q1ndx9b2jdP2J0Xve19NfyA6N5xJmu4x5G7k9Cp5ku9hrGuu9kMnUf6K83dIPJKPXF0pTS5NX0vjKDaxXd9rbStnObz4ZXVNsa2Juqdld83WfLFG0u+kPVtp5sXVe1+/L6Rec2W2P3SXcA8I3FOMifb7Vpcug5NQ512QoV3/0XqFd0QYrMmqPfJBh69ug3HeDtKG/8+7o+clCXB6FVIaCzlbYQT3b7hariu7y0mb8WzSNVfv/9se56kymuAU/H7ucaANQC3TGZph7Gfv7cqUYJ0lTe/zQ++hiR1ohbWEZcMoRtHr1OnE3cf+9QcR0FgHiO72RRPMXnAoCk7d6PAIDRbQ5TxVhmOtBNhngbmispcLEtB3W7Vnh9Dei2x7ja6am2tR26H/8A8FvXH1e1Cyruayk2A91kwsOd/D3DPLqBLoBwI9pwbtP08pNv86gb3XfS8tz75JZyH9fscieGr0WbS9tWbHV9q2fc+7tuVXc89mr5rJl5JIoxQrSR71c74QRJ4/DPa1Pl+DPWja39RHe9iVL337sf6a4bWzu6+5Sve93zM/8uGOb73Z1GHa9rbqm2lVjdXMIzd86r2u3E7uNdzbkGAI22rr+rKq5tofJBmp1G/rq9vhMC4eHHqT/W/W5Zzf27NJHu3DbK5ZYT3VAGSct9nOYr59IOG6c9nG3nXkvXPVzt9PDV6y84byvMdMfWjdG6qp1WO3A/3/qJ7v5Xqx2EiBo+sHP4+9K6d/fzvDpeU20rUc4JW2FOxh9muD4+/PcMU/d7onY1/2DHPF7su4+RAcBq5kkyXf+TtXQdkLmj6xOMYgyUNnT3ltGa7ppYv6X7bKliCJR0dPtYVqXPiAuENeJilqY8s+bNdAuFgB3RYaRjhmvElY+XZgiS/YOYzABxhdeNIhEz4o5ZmrIrlqbUZMTl7/g3hixNSSerLpRCZnY/Ea2amBE3YUZcUTSljDiuP1VafWGdYp5v5dYc8RwtsnnmDVeZETcWjpUG14gjKrRTGYhLGIg7s6R1vMT3cfKKHInZllwjrnSqSf6aEQYVfYoNnYhIWCPuOKUpgyRBZ7r/ycvMGAwa7k9WbgvlLLtDlqakk1UP88e/dF0iIlqmQTv/6DMDA8UhlShjacryYmnK00cKlkvBFVqNsHF05thKA3FNIRA30WWuEdFylD8QN2FGHN0jreMlvq9WmqqsVBBS8FaaGKVik7IYV7nAMskWnRG3LqwPt9OqI/Pch0FSacqNEQNxdLIaU+GJaQbiiGjFBu18YGB9zEBcUTSYbXOqSBlxPN/KTcqIG7d5jhZFOMf84ioDcZOGlBHHQBxRkZ3KQFzUYCDurJrU5hu0MCOOXIVC8JalKctHCuaEQvYVrZb0mxwnI25DyFjrtXWLSsilKRmIo5MlPfgRcixDRCs2szSlPVvrfRRVcyhkxLV47SirnZZQmpKBuFJjRlyxzZcRt7pp9UlDqNo0iXkNJiqw8gfipNKUDMSdWfNnxPEGhNxIZU+ZEVc+UjBnqlwwnU6OGIg7RkacFCjbVgbipHXlusyIoxMmrRHHjDgiWrUk8DE+MI7yrUX7QDloWgFrUZcy4phtU1pcI+70YUZcsRW9NGVW8XLVvjwL1Cd8YJyoqEqTBmBgsVkZ5l5vhflBfrWV3H3vlWDbeVvvaX3FfQcBxHa5X+coy9fkP0ovVU48JvmJx3mMU/dBRC/R7eMz/QswwXxPftiWQae2e+x8eXhRtb3fvvm4c5tbA933+NVXXlK1q3n5QPU8AkW7S9W+alt1TzdIeOv6y85tXq2vqbbVixoI1vLfSWMaYa02uy7/beXvnWXug7nrt7uqbWmflbKZ+5pqtW3dOmzjq7rj2Pey3GuNNH+zE1V98b0uHu64X2uA3WNLY6vXVrXTiDzdzUUY666JWWYw9eVAXJZCXM/P+IcfyRtjISOuow3E6TPiTNM9mOj5umMznirHJIpOIW7pehLlJQpJqDsm/bb7fjbWdGuvTCLd8XWhORJfb8f58W5jPcGF5ghv7bhfDwHgVq2javfCrTeq2mn0rO57fHlbd73fXJO//6O88/x15zZfGF5Wbev6aF3VrqK4zmnGgwCwWdM9nFDzdA9cPN1zH8tHqbIfUY4XppF74Hy9sdy1nzTHCAD0mw00o/3j+bVggOH67O/Y39I9SPCyv6FqB093naoEinPA6LaVbOnGhF/uXhBfr4UxKun+fYkCH18YP4CH1nuqbX39xjOqdk92bqjaaeYSrk27qm09cf62qt1O5L7e8GjsPo8DAP01YU3G6QSoHn7upsu7bYBJdPd7fqRrF63pzjeruASMtnXn6NXXzb5PPDfJjzuaGxGuNrZxJeg5b0szRwgAFxr5udZ5RIp5CwDwFP3kJNVdN4ax7jtZr04RzfGgf1Lz4e99HqPt/60uR6bux5g2g9wD4hvhGNud2efU7bH7PNXFlu4Y0Y6ttwfu9wCpck7e1HXj3bij2161797fZVXlzJ0y/Spt6LaXKb6StH62MjhLnxFXmeYHHUm99B+LlKxn5lr/TVp/iOgwcdXHwdhTEGfwkuMFcGi5akIWI9eIKx7reYgq+Ru7qjIrrjuQMuJ0N9M9ISNuY6S7wSCal/Rk63SOp3SJiE6aVC5vfcQsnVVrjfIPcAybuglpKoZ+U1iTkedaqdWF8rHTNiseFEXRM+IAYNIUylOOmRFHVFSlj1hJa8QxEHe2SWt55d4zZwlLoruMQSiUATvOulW0fFwjrjwWWZ5SXCNOmxHXzLfrco04OmHSQwRcI46IikAKDnDdqtVrjYWSd02WvCuzflMqTbnczFlaLCkQN2EgrjDKEYjL9+sNof8nomIofcSqIgXimlwj7iyT1vLKvYeTV6QgrUFYmzIQVyZS4DTkGnGFJGUuawNxckbc4taI2xiNuSg2nShmxBFRUTEjrpha43xG3KjFQFyZ7UiBOAa9S63BjLhCkx7EPiiurToQx4w4ojIpfyBOKE0Z1xmIO8vmCcQxI440pOyD+pSDnDKRShuyVG0xiRlxygxUMSNOGYgLqwEmB4K3QZqhPc1PeBEtivTQxzwVAIiITpqcEccsnVVrj/IZESxNWW5iRhzPtVKrjRiIK7JSZMQ1pEAcM+KIiqr8gbgJ14ij/aSspYM4eUUaUgCXGXHlUpcy4gI+vFFEiyxN2R3mnxbeVpamBIDtVr6tFOwjWgST2dwi7MB8T+kSEZ00OTjALJ1VEzPiGIgrtVG9itTsX7S8EcXqNZRp9ZgRV2xlCMSNhUxnZsQRFdeJRqyMMR8xxtw0xnz+vtc2jTEfN8Y8s/f/G8fZRmUqlKZscFL1LJtnzZR5suaIDpICuLWQg5wyqQqBuIgZcYW0yNKUG0Jpyl47P3E4L6msZXfEQBydjKoUhKv6sJ4R3k1EtFwsTVlM0hpxLE1ZcsYw8H2K+HGGINyfWJD6BhHnMwtjnkpayYoDcVOWpiQqlZOeffxpAP8AwD+577UPAfgNa+2PGWM+tPfn//Gof8gCiG1+dwMhI25Sq959743YPc43yPLlNeZRN7oJwktBT9Wu64+c27Q8XeksbbtbSce5TZjpDksPu+vzzHOxjGr+3fd/8dYl1faiyH0/k1h3kf7M9YdV7aZj3c1Wq+Ne4sJa3YSg5+XP4Xm84dwt5zbnau7nzP2SZv7ZhXPpCN2qfPNjjG7NqMnLbec2trLc9akqO+7HsvLUhjfVPTMymeYHpd44/z2N/Nq+977hAfdj62pz27kNANR83XXji+MrqnZBy71MxVpTV/JG2yfc6e8GuaSMuGqYiEuxZcnhx4i0RtydRhtQnqO9en6duHO3pvDOH35e+KH7SRBfdm4CALCp7ryp7LjvY/2mMiCkbJa0ddfSieIJ4yTWdVzBncXdlNeEQNz0vjI0r6+/qvp3n2o9p2r32JPufSQA/Padx53b7ES6gPnNgft1FACSVPe7henyHuh44eVzqnbGW944oVbXTQBd3eip2vWn7lk+g21dVrT2e6zU3K/300j34KB2ydJaVTcm6beE0pSTCXDId2WVXaRNlReOqW6DtUvuY6As0+1j7CvHJCO5n/S28/dYd6ot9EYNPD3U3f8GnfxD0PO4GPRV7aqKYzJVPmt+e6q7brQC97H11Qu6+4abgzYGndru2sT3eSDYxnRj9jE+uuY+JwMAlcHyKk1p+4TKWHe+JS338617fqja1qz5rXY/379MWwFCGwAW+GT/9c7bavi6koSvTnTHyLm6bn6lU3GfX3yksaXa1o2wq2rXrYzRXDv6+2w1Q1yu7QAAHm7cUW2r6el+t5tRB8F6vl9+MOnh0Zbu+5qlWVlucE81BlKm+cSKe3QAh45zDpMqpmnrt3SdpLZvNbrLPTLFvGRleLYeLj3RK6u19jcBHOyJ3gfgZ/b++2cAfPdxtlGZCBlxTT5BcpbNt0YcM+LIXSSVppywFEiZSBlxUsCHVi9aaGnKfCDuOKUpe0Jpyu74eIF+olnqk/yNL8cxRFQUfSEjbm3EdatWrS2Uphw2WJqy7KTAd4fnWynVhbKUmofG6OREc5SmTGqrnX8Om8I985hzVERFtYrF1C5Za1/e++9XAOgexwLgxRn8ZH+0NfOANDhb0VTab57137hGHGlwjbjyq0fChDZLUxbSwtaIsxZdoUSWVF5yXtvNfEbcwaeTiRZFyojjOIaIiqLfFDLiWCpv5doTIRDHNeJKbyBloDIQV0pSII7rwxXLPIG4uLqKafV7wlb+mKmPWJqSqKhW2mNYay2AmXmLxpgfNsZ8xhjzmSzNv60S5sstJHUfMAzEnWX3l2uahRNYpBEJx02VgbhSkQI5zIgrprCa78s1i9F3JiGCdP94YVINxH9/XmJG3IgZcXQypIy46RwTA0REy8A14oqpLQRnGIgrPzEQN2QgrowaUiBOCKrQ6syzXh8z4ojIxSoCca8aYy4DwN7/35z1Rmvth621T1lrn/L8fHBNLEvZWO3TCLR607ky4jjAIXehMPHJjLhyEQNxzIgrpKmUESeUFj2KWJbyGNlwALDdEjLixsyIo5MhZ8RxHENExSBnxDEwsGrtSX7NIZamLD+Wpjw9pEAcS1MWy1ylKaurDcRJwdvaiHNUREW1iqjVxwB8cO+/Pwjgl7T/UCAE4uI614c76+aZnJoKJQaJjsLSlOXHjLjykAKkmtKUG0IgrnfMQFyvKWXEMRBHJ4MZcURUZMyIK6aOEAxlRlz59dssTXlaNIb5YDkDccUyX0bciktTChlxLE1JVFwn2mMYY34OwCcBvNEYc80Y80MAfgzAtxpjngHwLXt/VqlMZ5SmpDPtqMmpzABxwOOE3LE0ZflJGVVhwBueIlrUGnFSIG67nZ80dLEtlKbcYGlKOiFcI46IiqzfzF9TmRG3eq2xtEZcPohD5SKVpmRGXDnJa8RVV7AnNMt8a8StuDRli6UpicrkRO/irbXfO+Ovvtn138qsh4/ffvO+197wyiv4AD6177WtoLXvfb2p+2TbKNJNym5vt1XtGq38IHkenjdzeb2ZWrX8UzfzyKxu3b1e3z3roN063kByy+RLht1vWgtwa3zvtxpd7+g2pPhKrO/+mwHAZKw8VRPd7zaM3X+3SkN3sTdePqA+j88+/7Bzm0qQz6Kdx+b67gT7Dazn/m68U8WzvfNiuyTRDcqqd9yfkciUh4gX646RYOjeRruP1R3dMyPTdv6p32CUP97GWR3x4N57166690GXgr5zGwBIMt1n+7o3P6tq5xn3861d0V03bk5118RXX+4CACYQfr9hhngk3KAechh3d/JP5W+3WrCJB29D99nunM9PgnSnI2Ttw/uYrOF+vpmBbkziT3THluIQQaqd19NdEuGPdJ8t3HIfE/pj3bYqY13f+sL2Ru61d2zlj/ktr3X3vc9vXFBt60+0eqp2TzWfU7W7Emw7t4ms7jq6kx4+Fpzl1XhN1e58MHBus53o9rH2Bt14K1RchDerugcMAqMbb4WZrr97Yu2Wc5vRA7rJzlGia3dr4n5NjFLd8b891GV991/R3RN5oUVmDDx7r1NvhREqdzwkvvwZtPdECHV9ctDTfZfeA+77+cQF9+MRAKoP6M6bTkWeS7iY5Afrjz+6hepDFoNElxn3/9x4q6pdqhzvvu3cy85tap6uj3yp11W1G95U9OXa4z8zuG3z16n67RTDW7P3w1POCWhoxpEAULujaxfrbjdgPffvZDDUPcj33FCeK/iaO/nx1MvVtbvv74fuA+w3dmeu/HOoy80dVbtpqrtuTxTttGOLS1XdffqLk014c8xVvYo13Ax3z8vWjP74KGlFnyMTNqXSlIdnxD3QcB+3Xht3ndsAQKwcy3Sb7pn1qXLeOrqpGzdpe1bNcLd+W7etxpauUx4+pDsmvYr7txKcseeZS72gmlQSTiodR2fL5IjSlFOuq0JKk3r+2GlMdRP5tBq1JH/dmDIjrpAWlRF3EmvE9cSMOJampJPRmApPTHMsQ0QFYT0P/Ya0ThzLU65SUyp7J6wlROXSbwilYHmulVJjnD9Hxy1mxBVJVvEQB4dPm686I24qZMTVmRFHVFjlDsRx8XoSHDU5xckr0pL6l7rQD1FxcY248lhYIE4IkEmBNBdSIG+dgTg6IfUwH4ib1DlRQ0TFIQUH1iYMDqyStEYQA3HlJ63JyKB3ObWEYPmoxXUciyY8ojxlXFt1IE7KiOMcFVFRlToQJy1ez4w4krKW9v09A3GkNBXW5KkJE6RUXPVIuG4wEFdI0tp9i1sj7niBuH6zgczsL7uwNglRSXQlU4gO0wjzEzXS9YiIaFV2hHXimKWzQtaiIQTipAlbKhcx+3TCNeLKqDXKlzFkRlzxREfMMa86Iy5sSmvEcY6KqKhKHYgTM+IYiDvzjs6I4zFCOtKxJWUqUHHJGXGclCgiOSPO/Xw7iUBc5nnipKOUfUd0XA0pI67GiRoiKg5mxBVLbZLAy/avQxbVfKTBaieM6fj6wviTGXHl1BwJGXFtju+K5siMuBUH4uK6j+zAmodBlMGLlQs2EtGJKncgTlgjbnpENhSdfixNSSdFXiOOgbgyqSXC08HMiCukk1wjrteevaD9vKRgHteJo5MgXWeOyv4nIlomZsQVi5QNx7KUpwPPtdODpSnLITxkzJ36BlllxdPqxohZcXVmxREVUskDcUKJMWY7nXlHTU6FVd6EkI6cEcf622XCjLjyWFQgTgqOHTcjDpDXmZOCfkTHJa4Rx4eKiKhAmBFXLPL6cMy0OQ3E0pTjKWCt8G4qsuY4H4hjacriOSwjbtXZcK+ZtoT7Zq4TR1RIpY5azVOaMrUm956j3Lne1e2Qpxv8jOP8jcs8atfdJ2FubujSk21Tt+6NGbtfmMa+bh+zbPe33soOz3QYVmoYju89aWQbyjV9FL+3V1F+trHuVDWZ+/EPANVOvl75UTpN9zYAsDPM30zMw7vpPkiNO7rf+vZeP/JKtJb7u8o4xe1eW2yX9nQDadN1P060v7V/R9cuU8wBK7pjAEBFGdswYf5ZEylwGtnqvvd2q+4TR081n3NuAwDf1tZNUgVG15f4cO+3rqfy8X2U3xi8VdXOe+PuPj700nbu7y7Xe3j3G5/PvZ4dcnBdCvu51x586x14VzMMIl3/k1gP4QUfOPCzv6l1A1uPzg7y9Sbu29sZ6IKG2v4nSxUnaqZ7ritp6cZNZolzTanyuiF0P3OZ3MmPYSr9/Ae+k3TQ33vvb689rtrWONUdIw/W8ufmPFqe+zihbnRP8z5SvbXUdhpZVXeQvL3x0oL3ZLbA6CZxYqsbt95KOqp2Hd99faTY6ibPRpkuW2E7cc/Efmm6odrWZ5OrqnZxT/f928BiUBPKNQ+m8CL5mpI2dOOYykD3u3nK+chUcX1LlMfWuuI4BoAr9V7utYeiO7nXkjXv7ntrynN7mugeAvnKnXOqdtuR+zzJA/WBaltXuz1Vu+cT9987flFfmSG2dYS+j1p6b3xSTVO07mSYVhcbxAmG7mNCo5xaiZVfiVWOtzRdeaqck2lW8gE3AGgLa8Rl6+bu+9++ft15W+NMdwyEke5+o+rpfvCHG/k+6iip8sd+ZnRR1e5SbfceMmvOPg+SmoducG+y4mJV1/8MUt09abuyewzFrXw/tBGOEVfkY3YN7tcbzdw6ALww3FS1q/nu16nxSPc92pbumpjWdMdkcMu9L4l0Q0JEG7p91M7d1XrubRJdSKS0Sp4RxzXiKG9SP3zwMWFGHClJGQjS2j1UXNIaY1LmFa1eJDxhWI3cb/Y6O/kbjcG6bpB+v/6aUBqoz6f/afEaUX4Ch2MZIiqSHWbEFYqUCREKGRNUQsZgwPPtVGgKpSmZEVc80SEZcUlB1t2USlMyI46omEodiKuLpSk5MXHWHTU5xTXiSGtSyw+MG6H8hBsVUy0R1hZlacpCkkp9BI6BuEqconmgPn5mFnOT218TSgP1dU+zEx2mKVxnpOsREdGqMDBQLLWhEIhrMxB3WrAUbPl5aYbGRFi7vMn70qKJGrODbYkyI2rRIpamJCqNYvQaSlJG3PSQpxXobDhqjTiuq0JaYkZcxIy4MpHXiON1o4jiav53cQ3Etfv5ki+jTg2Zf/zhz866MAnCjDg6AXXhOsOMOCIqEmbEFUt9KEzwt3ndOC2kdeLWeb6VSkNYx3HcDBZyj0KLddgacUlB1oiTMp4ZiCMqplL38uIacTVOqJ51se8j8WYf2lNOXpGSNPFZZ2nKUqlLpSkr7BOKaBGlKcWylEImmwYz4mhZpIy4MTPiiKhAmKFTLMyIO914vpVfYyxUO2BZykKKDln+SKrgsgphKz+fUR1znoqoiModiBPXiOOE6plnzKHlJ5kRR1pRUEFm9q9aWktS+KlyVWpaKi/LUD3wW2XGIKoUYwBN+8mlKd2e7OsIgbFFrA8HyGvEMSOOTkKTGXFEVHA7TWHd1DGviasirxHH68ZpsdNo5l5bm/BhsDJpcX240oiE9ddeU5TSlMyIIyqPYvQaSsyIo1nGhwTbmBFHasaIx1aDWXGlUBXWhwsrFeBAcJWKIaoJgbjQNSMuX5pysF5T79P9mBFHy1LnGnFEVHBihs6UgbhVkUtTcp7ktBgIpSmZEVcuTSkQ1+bYrojCQ9aIK0pGHNeIIyqP0ozGMhi8sL2x7zUzsLn3vRBv7HvfZOJ+MfPX8hfFuVjdZG6W6NpF5zLnNkFPF3uNau7bAgCsuwcoWo38xOk8ouTe4XxYRlzc8lGr3bsoXegOVdt7fP22c5tHm1uqbWmNU91gzjP5c+soN8OOalufia+q2o0fcD9OtE8e+P69439aC9Ce7u8jWmmIiZ//rtOq7rzxuu6DpnSkCzBP67p99Ifu36bJdH2dNsxZObCPrXH+s4aVSu59Gi2ju25c8HXff2rdz1EAmCqaaT9bYI6XKSqtETerNGUnkPuDC6N8/z7tBnffnymv2y+P1nCzme/zOjtTjOPZ56Kn2JxVnjd+V/e7pQP3viRpqzYFqxxbWOXvBk2fHOn6By/U7ePaufwx24rzv2VwOUa3ufveMNUN53/92ptU7bRaVffePPB1/chjHd14K/B02+vH7pm23UA3adrwlfcpCtp+vKncx9TqzrdnJpec2wxT3UMZSaabdIsVn+1O2FJtazTVjf/Ttq5PNrFBryUE4sYTzPrYJtb91mlDt49ZoOuTTeq+n0+/clG1rUyxLQB49yP5a8A3bedfeynYxDPD3X175/qLqm19w7lnVO2e2nhB1e527D7AaPu6uYSv6ur65Irnfkx+WTeMR6Wyu63RA/l+aLPeQ/3RgdhuMtb1CZqHfprXdH1k0tZ9KXFHOU+loZgjAeS5ldY4f5yO29V979UcyzVPF3w5H+jmxLQGqfu46QvDy6ptab+T2O4ey5P67PMgqlbuvg8APtfXzW01fN2MxyTdvW97S+VG7u+GvRqeHsrjIw/ux3KkHP8MI914K0zc72/SsTLEESvHCMr79Ew1dae8cCjp9hGwip+gMjpbD8aXOiNOXLyepSkJhx8HoTC5SzQvqRwYM+LKgevDlYuYEee4RlxLWCNuuKDSlDud/L+zPmBGHC2YteJapIc9cEREtGwz16xSPjhEx9McCZnUTV43TotBS8iIG3EMWiZiRhzLxxZS1Ch+aUqpf29wjTiiQipGr6EkTkyw7CDh8AkqrhFHxyE9ESX1RVQ8tUQIxAUMzBeVvEacWyCuLZSmHC6oNOWOsEbcep+TjrRY1TiFn+0/pqKKj9Qv9RCeiE6ZKAh2y33fJ8gyNKPlZXDSPY1RfszLsnenR7+dD8R1GIgrFekcnXCNuEI6NBAXFKM0pRSIqzMQR1RIpb6Ll7JQGGQh4PDjgE+R03FIGXFNYf0eKp5aLK0Rx/6gqCKpNKWwNuxhTjIQF9YCTA+sS1tJM7TG7A9ocZgNR0RlsdOckRVHSydmxHGS/9ToCxlxDMSVC9eIK49D14grSEbclBlxRKVRjF5DiZMTNMthxwGPEToO6fhhRlw5VMWMOPYHRZUE+SFKkGTw0vnXgjjJQBwA7HSESccBJx1pcRpTYTKVZdiJqID6dQbiiqIhBuJ47TgtWJqy/KRg+ZjB8kI6LCNOquCyCpNm/tiRrgNEtHqlDsQ1pgzEkeywjDhmTdJxSMdPQ1ivkopHXiOOpSkLyxiEws1NJZ6/POWJB+JmlackWpC6kAXKsS4RFZGUEbc+5jVxFZpSaUpO8p8aYiBuyEBcmTAjrjzC+mFrxBUlEMeMOKKyKM0MpGcyvOPS9Xt/TjJUk/2TcZkB3nT1VcCYu69NU/fJimGsm6RLs+XGNY1xX4em6rutr/MaD7o1bzZqY+c2l2s7qm3dijp3/7uzOfvpjzc8dAvNK/e+h6/qvKja3rsbzzm3ueDlJ4Xn4Zuj3yOZWl3D2Lofy7fSlmpb39g9r2r3xckV5za3w7ZqW69O7x1b/lr+XHistoXrl27lXn+x1lVtrx64ld8DgLGwdt084lg3eIyMop9UdpFmomvoT/e3q6ZCacqggoOH++3Q/Vj+N6M3O7cBgGGav5GexzPDi6p2Ueb+e79r/SXVtmKrO7a+cPOBu/89DQLUDqwL9/z187lMtCyT+zp/K3/N++T0UTx9bXcbnqe7tkVPrwEAbps1vAE39/2d9x9q2BrLv0/SmT+b7662e38AQHnVBvyB++/mRbprjb+lvHlVfrjwvPsYyKS6z1bb1rV7pLu978+PvbqVe0/a8va976FmT7Wt54bnVO1e7q+p2g1D9+vURNEGAG5sr6vapYnuenNxY+DcZhzpAqr9QVPVzq+4H//xzXxgZR7BRV3wZaPjft8AALd77uO7tK+c8AwU/TgAxIpjS3Gvdywt5fUm2v1s0rpV7WyErJk/9sxU1/+bGdf7o7Su685t85j7d1JTjOMBYGtbd5/y+9eu5l6rDvL78MmdR9FPd8/pcaI7/l/Xzl+T5tH2dffAGxX3PmGY6uZynhnoxtZ1332y++L6ULWt3mT3HBsKAZu18RSeJ/dP2UD5AE/FvQ+K27p+y4t157ZJlGPQ0L2dPa87jqW5tNYo/29N2sG+9/7B4EHnbb067hz9JkEr0GVPVYzymqigmVsEgIqnmwN9cbQJAEgx+1jZMq277wN25601Wr7u+++Fu336rSB//aiOkrt/f1Cz4r497VxyZUa/dBTN2RZ0dOdoPNH1kTZU3ssqxneJbroVnjIeq+kjAaju02t3ljzeXbHSZsRVw3wnENUr+4JwdHaF9dkdYnTIEy1ER5GeiKo5rltFq1FLhMwSlqYsNHGdOGGtv1m6QpnInlBOUqvXzI+Iu2PdTSKRpCaUPg5rHMcQUfEwI64YTJahJZQ1HjWYbXNa9Nv5c41rxJVLQ8halcoL0upNDykJL92rrsJIKk3JjDiiQipvIG4qZDYwwEJ7osMuljxO6BikCdCaUCaXiqcmrRFXYSCuyMJAON+iOQNx1mJ9KATi2rpsEsl2M/9vdUejhf37RHVhvHvYhAAR0ar0hUDc2pjBgWVrTSN4dv/T5aNaFalfjBJqdHyDVj7rrzOaAvZsZRWUGUtTlse0pGvENSdcI46oiEobiJMyUCI+IUx7okMy4hiwpeNgRlx5cY248hEDcXNmxLXHIYJ0fymMSbWCcIHra0kZcRvMiKMFqk+EfovjGCIqIDkjjtfEZWtPhPVxm4tbH5dWLw4qmBzIxPEzy4n3EmmOGIgri/DQjLhiBOLGQiCuPokZnCcqoPIG4iZCII4TE7TnsEmqw4J0REeRMhHqzIgrBak0pRTooeIQS1POmRHXHeQn/3qdxWXDAUBPyogbMyOOFkd60GPK8S4RFVC/mV8jjhlxy9ceMxB3FgxawvnG8pSlIWXETVoMxBVREvhIfHnqPA6KMbeY+R7CA0FBP7NiZQ0iWq3SBuLE0pSHpAzT2RLNOBYyzyCtlPawpwIQM+I4wCmFmpQRxzXiCu04GXFdqSzlAteHA4BtrhFHJ6wmZcQ12G8RUfH0G1wjrgjak3wwZthgIO606bcZiCuzBjPiSmVWecq4IGvEAXJ5ygazZIkKp7QRCWnim6V66DWzsiOjug8Ys+S9odNEKmvHQFw5iBlxXCOu0ELh5mbeNeKWkhHXyv97G8yIowWSMuKktUqJiFZNKk25xkDc0okZcQzEnTpSRlyHgbhysBbNUf5Bq3GL96VFNas8ZVFKUwJyecrGmIE4oqIpzZ28B4uvWX/+7p8f8bdy72m2o33v0cqsLj4ZGN1kfN3TlbWrG/d22m1pP5sP95rEo0x3o/A588jd/6535M+Z1H1cqvX3vab5HgHgVtpxbnMj2VBtq5fqJo8jqzvFM+serNysDFXb2vR17d7ZfMG5za3qmmpbn/eu3P3vxlp+MLOZjvBgs5d7/dWh+zECANPY/XdLEl2/FY11A35/4D7ozOq6GuVepAueV8b72zXH+XM9tkHufV+6fdF5Wy/2def2Vq+tapf0dU9Mrj0wcG4zTnTbSjPdMTkZ3dvexBOOz8H+9wBAFuePx9bN/HVrq97GpH/fxEWiO7a8xu6xvLWR75vXp2OkDflYD3ru34l3S3dNTJq6883Pz98d6eA5NDflsgXTC9nRb5IoDkl/qPtsiTLmu1bdP2m9HuUnsW1r//uebF1Tbeuxxi1Vuz9qXDn6TYJboXt/5ykPkhd6uj45C3S/t2YvjdF9tlZLN9E6Dd2v98FFXRCl1VB0JAB8T3du+757u+r55WYvVyqpc5t6oLv/urOTz9aeRzrR3TeY+u5n63fz44X1cHL37/e1aSofYrutuyYOH3X//gHgTes7zm02a7pj61lln3BwvHUpy4/1JmsB1u7rO56+6T7WBYA/fFHX/0vjtHk88tBt5zZrNV0f+ZXb51TtphP3cXIWKSfv43vXqO1K/ppauWYwOJ9/3ZvqxuS1O+7tlNNG8HSnKLxQ99mM4nKTPK7byYP3UvVxBC/bf76HVR8D0wDu+/52onyw9SjDUNdH1nzdD9eu6a73mvkm7ZhwELt/j8D+739cq+Ic8g9b9rzGvvdVlOOYKNNdf5uVe3NTYTP/b2yGY/Qq+THBTuReJSZOdf1WraI7tgZj92PZ85Q3l5lyTkDZt1Z33NtlgfLefqq8t1He3mv68kQ3bC2t0mbEVab5Xzfm2l+0Z9axwPXh6LiksqdVYc1KKp6qmBFXmudRzqTjlabMT4Rtt09+jbiNETPiaHHEjDhWgCCiAtppCaUpR8yIW7aWkAEx4hpxp460JiNLwZZDk2UpS2fW+szSeuarMmnmH7hqMiOOqHBKG4gLJvlAXFIv7cehBYsacsCNwVo6LmkCtCo8GEDFI5WmnHKNuEKT1vCbNxC3IQTipFKSx7HdEtaIG3GNOFqcmvCgB9eII6Ii6gulKTtjlspbtpZQmpKBuNNHOt/WJgzElUFLCMSNWjxHi2zSkAOlRSpNKa4RJ1QEIqLVKm3kqjLJp/zGzeJ0grRaswJu8YwAHdG8pKzKKteIK4Vakh+IRlwjrtDkjLj5biikQNyiM+L6jTrSA+uOdsIQgRD0JdKQri/M7ieiImJGXDG0R8IacQzEnTpck7G8mkMhI67FjLgim8xcI67YGXFcI46oeEobiAuEDBRmxNFr4hmp48yIo+OKmBFXWlIAh6Upiy0Ubm5q0ZylKYXMtEUH4qzniRMh62NmxdFi1IRA3KwF44mIVmnYyAd7OtMQfspx8jIxI+5skEpTrjEDtRSkcoEMxBXbdGYgrjjzi2MhI67OjDiiwilt5ErKiEsYZKE9s0pTSkEUIhfSMSRNlFLxSKUpGYgrNql06LFKU7YXvxJwTyhPucHylLQgzIgjorLIPE8MDnSEwBCdnLYYiOMk/2nTb7A0ZVk1h/lzlIG4YpsViIuD4ozJ5Yw4BuKIiqa8gTgpI65R2o9DCzarBCUz4ui45Iw4BuLKQCpNyTXiik0uTakPxC06Iw4Atpv5f3NjNFr4duhsktaIm3KNOCIqKDlLh8GBZZIy4oZcf+rUkc41loItB2mNuHGbgbgim50RV5yHelmakqgcitNrHCGDh9/afuLun1+/fTP3nqftA/veAwCdivsTeInVBfQavu5pg05FV0Jgs+I+0VfzlvtERKb4LlOYo98kGKb3bjCiqrzdSTXY9z4A+Pidt6i2tz11n9DdCfMD5nncvLmuamcj3bHst9wDS49c2lJt61xdN2FdV5xvNU9XGuf+PmFYzd/IVqcpoizfnbaquoHPdr/r3Ma+qju2gonufAuGunYqVtfs4M9dD/PHdZIEqByI14yf6Tpva9jIZ2nPwwa6dt5Ed24Pn3PvS56+qDu26g3d8Z9N7p1LU5O/Ka1Osn3vAYDqzfz51+3nJyOGozVUb9y7SfES3XFsvXsH5U4tnxF37vYEwcX8v+1F7tuzypGar0xAqPbc99Eoz9FgoGsYr+l+N3/q3q62rTxGlF3kNN1/E12d5K9bg2o99z6NK8G2qt35bl/VbmrdJ5liq3uA6uX1rqrdq+Gaqt2Ves+5jae8uI2z0ztZlylPnPbl5WVc+UZ33dbYSfIZL/P4TPVhVbuXbm6q2nXa9663w04NuL3/7x/0trHT3f9ZtL91P9T1CWaqa9etugc23tJ+WbWtt3Wuq9odPE4eTvN9+xuu3gQevDd2fHZ0QbUt7bXn5qitarc1cr/fDnzd/d5aUzcnk6buY3KvrpuTmdy+933sNPLfzdpkKg5ANOMfAEhr7tcpqy0+oR5L6j5bsvhn82aq+vvvQaUSotN2kHvfRs29woZV9q1xpusj+5HuPlFzDYhS3U1RvaKcp63eG1ukLXl/g1a6731VT/eAdt3XtWvdN9/tr+VPonPRGBfqQ9W/vWobHffjv6bs/3dqumOkF+vuGyLFvaz2flvTjwOAp4zhepp5QuVnK6vSppBVhQnVkGUHaU9cm1WakhlxdDzMiCsvKSMuYmnKQpMy4urRfAPljXE+yN9rLr40pTQR0p2wNCUthlyakv0WERXToC2Uphxx3aplqg+FChAtZlKfNtIaxcw+LYfmkBlxZTOrGkVcoIw4qZ+vjViakqhoShuIkxevL04nSKtlfQ+REIyLeYzQMYUNoVSeUDqMikcKxIUVTkwUWahcIy5IErTD/RkSmTEY1HVPbR6mJ5Sm7ApBQCKN+lSYUOVYhogKatCSAnFcI26Z6iOhpHGb493Tpi8F4iYMepeBVC6Qa8QVWzizNGVxHvSfCqUp61wjjqhwGIijU0taD44ZcXRcSeAh8/anW1eSDH6yvFJFpFNLhesGA3GFJq4RJwRUD1oXMtJ26g1k3uKHPduNfJZdd8yMOFoMKSOO410iKqq+EIhbGzJLZ5lqQkZc2OZ147TpN7geY1mJGXEMxBXarIfg4kIF4oRKMmM+ME5UNKUNxImlemocYNI9UtAtErKZiJwYg1A4tgKWpyy8aiIF4tgnFJn0+8yTEScFwqTMtUWQ/t2NCTPiaDHqYiCODxAQUTHJpSmZEbdMLE15NgyEQNz6ZAov48OhRdccsTRl2UilKaOqDxjlotAnQOrnGyxNSVQ4pQ3EMSOOjiIF3aQsOSJXUtC/JqxbScVSZ2nK0hEz4uYIxC1rfbhZ/y4z4mhRmBFHRGXCjLjVMqlFbZLmXo9avG6cNqnvY1Cv5V5vszxl4TEjrnymwkNwRSpLCcwoTclAHJ1hxpj3GmOeNsY8a4z50Kr35zWlHZGJgbgZC2jS2RQJE1XSa0SuwkYF2N7/2jf+4pcx7O6ffLg91U3894b5mv9HsX1d/+fFuqe4/GU+3Gx1zcyBdmvTfHAk8tknFJm0Rtxjr9zCB/7tJ/e9VhnsvxF64ys3cu2WmRH3+puv4Ht/73dyrxtNvF75yJRVtqssMYboK+eKwlcXux+H0X4fym4LD9h7H87LLIIDZY9T3yAJSvscHRGdclJG3Du+dA1/7ld/f99r2j5yOswHHuZhlOPdR5+/6dzmcn1HtS0PukymSXZvAj8I80G4aasC6xUna4MWp99ooDPdf1P2A//uk+i19o9N/bFu3GAUh6R2/KmlHUtmmlvAF3Ube7C7v0+4dKOfew8z4opNegguDooViAuFQNz67TG+8aNP514fxrpr6TLtRO5zYhVPeR2NdHNpk75u/XlvqugotQMnJU+ZZ+Ap5gm9/NAl51MPP4E/3rw4979pjPEB/ASAbwVwDcCnjTEfs9Z+wX0PF6s0M5BZZvDp5x65+2c7yA8mP3PrYTwXXNj/omLMaXd0F0Fbm+PoERsucWDs685eM9ZdZEzi/tmaj+QHJvNYa+wfGG35LVw9EC15OrqIT996eN9rt3pt1fbigeLipfz+ESpHtJ5ue+nYvWt4/kuXVdt6XtUKsBXFZ1N+/83N/TOxO34DFzHc99qf+fDnVP82rdZUCPQEI/d+K0l152iyqRss2kDZl2huqGPdZxsPdYHo+yfLIuR/nzdffwU/+rO/6Pzvbm00EZ3bf52u3tZd2+6b88LWev5zPrp1G3/rl39B9W/TGff/Hv7X01qA66Puvtf+dfYW1aa8g08rzOlcTVd6ta14gqOmvAsM5rmjE1yq6cagGr5mhhNARznr6Cnu4DPNjRSAVDkTq/1OAqO8B1PQfrbYul9vtJ/rQmN49JsE/TXdxNz29r17qVe8tdzfv/vzL+Ldn39R9W/T8YWtSq6//6q1a6p/S9snvNJcV7Ubpe7zMp3KcjPCel33yWLtJPgLtY19fx6tB7mHQ//GL/266t+m1Ro0akiy/deXKw33MckDjcGidmkuYaqbUq4oxmmZ8vqbKNu1/HuZi/W1/Hg0rXm4UNt/vY2V24pUkWHg1vTe9Teu5Le9th3iA3/n91T/NlGRfOg7vxdfuTx/IA7AewA8a619DgCMMT8P4H0AVh6IK+0jtfVIqH1eZUYc3SMtqCqllBO5mtR4HJ0Woc/fssikjDitg08HL+zfPaFMOyLJhOMYIiqwftM9KEEna9rmdeO0GgqlYKmcWJqy2EJp2ZuClaacCBlxRGfYgwBeuu/P1/ZeW7nSBuIaUb6uMifH6X7XrmwIr3WXvyN06ly/2F31LtAC3G51EPvFGkDTftc38/241vMXzy/s37rfVruNQa345T3odHj5ki6rgIhoGV64uLnqXaADth/kA0On1UuXFzdOptUZNwP0uwyqFtmtK20k/v6M4JsP5TPAVymsV9Db4MMwdKZUjDGfue9/P7zqHZpHaQNxzTCfETdhRhzd55ff+3aM73ty/LNvv4pnHnNKZSUS/fy3PYVISP2ncvmnX/31gOGaGUV2fXMDH3+bruze/W5srOPX3vm2BexRXlyp4J/+ya87kX+b6KCPfte7Vr0LREQzfeXKBfzm255Y9W7QntQ3+N33P7bq3aAT8gvvfSem1dKsNkMz/Op/+iTSCh8OLbLReh2f/PbH7/458Q0+8WfeuMI9EhiDX/mzJ3O/S1RQibX2qfv+9+H7/u46gKv3/fmhvddWrpxXbWvxf/7pr0cjilEPIzSiGM0wRhiU8+PQyfjy6y/hB37yB/Et/+5L6Hfq+Nh7385Jd1qI33vbo/gLf/uH8C2f+iK6w8nM96WJcv0pxZpc/lR3bGsX1FYu46LbVqr7bLOWVokqFfzew6/HJ17/1mPsFS3LX/lL34/v/vRn8eRL1+BZeY2jw47jl85t4hff805srenWA53Hj7/3O/D5Bx/Cu59/HkGqXNl4Bu25ZrVDIsWSRJ5iPVgAUCwZBgBIlQmImu/SnyrXWm3ovpPq5bH4+rhZxe+8+zF87h0Pi39PRFQIxuAv/7UP4Ht++3N484svz7xue77u4pZGyoubcmndza77enutIF+5Zx7aNQErMy5uk06AL/zHl3Ht7cxSPK3+8E0P4oM//kF8y7//Erp9efwAANORcuCkOG/U923Kc3SJS4Qibeh28nxXXustCXx88e2X8TvfxGB5GXzkf/46fPGpy9h8dYQ/+por+OM3n0y1leP46Pe/Cy8+uoknP3cDQTT7ntRTnKba9QCtVc7BKjqFg+sszivLdPsYa+f7pu7fpfprVN6nK5fphhefzJz7C5sXXJt8GsATxphHsRuAez+Av7Do/dIwdsbguGi8WtU+8pH/1b2h4hiwO7r6zLamHAVozygNX/d7m7Gug9Gc9M1H3BelBYC1hm5h5ls93eRsPFAMaJXfP0JltMRTbk+xOaPdRyVbUXw25fff3Jx9Y3OYcKrrS9KBe3Zv9ZbuHLXKRGKjuTArD0c/Wu4kf6Ko4JPUdR8u2dSNcEykPN8U8162oxyFhcrrhmLwpuoPAFRvKwfP2mUcFLupHQRrJwu80P37r0x052jtjqoZQuWcoqbfatzWfY+TC7rvpPsNrzi3udQcqLblKWe9ztVGqnZtRadcU54Agacbk6fKp1N8RZRXO+mu5Sk6oExzI4Xlfo/Acr9L7WeLrfv1Jsx0k17PjpwnKwAAX9k+p2q3ve1+L1Wt56vbzCPcVpZvU06yvfXNLx39pgMebPZU29L0kQDQ8N2/y6anCxZq+4RXQl1Z5VHqPuDqVHRzAlq92L0U3DDWBcZe2NGVorxzvatqp7lv8JRzAtpu3FeMWwGoPlv0gG5M8s43/rGq3ZWG+7yY9hzV0gZnKopxWqa8/ibKdppxU6zcVqS83kep7l624rmfANuhrsyxNjimuU8Zx7rJrUgZUBtNdH15dMv9u7TKuUxvovv+K2NdXxL0FXM5yqmtL/3t/25srW3N+ntjzHcA+PsAfAAfsdb+qG5Li8UUMiIiIiIiIiIiIiIiIio1a+2vAvjVVe/HQaUKxGVD9+i2JmtA+1RNpkzB9JWR5lSRgZG1dI8a2aruCVXru3+20UD3pGOaKp9QHSlTGzRlF7QZQWPdZ0tbyppmiidktJ9N+2SHhqnqjv8w1D1ZoykxCQCe5vdWPkWi/fY1WWpZVbe1uK1rl1WWl0lnlfuozWzTZC0BQKbJ3FMex9oaM7ah6H8S5ROSLW0dHF0zDc11FNA/Wabh6RIbYFJlJmNP951EXfc24wd020qaus9240X3jJQbVpfFYurKx893dNdETZWEbF2ZNVxRjluVfYkm20Y7JtH2P5VA8/S58loT6Z4s9oLl1b1OtZnl6muie5Paui6zR1sGKlPeS2n6hHCkm4bQZttoM+e/csu99NiXE92a5PGO7sn6ypp7dttDF7Z129LcI0KfpeArxpLafkubJT4MtWUS3MXK7BevrRuoZX33381XVkkIBsrxrnJGM1Xcl2orAD17R1fC8Ctwb6ctlecpKylp5+CM4nyLlaWJ/YpuvBUoxk3hVDlvpL1uK8ckVjFOM8oKcEFNN5aPFPO0Zqg8/pXndlbXXRM9xVyaUf7W2r5VvYSEYjrf1yXpl9Zya8kRERERERERERERERERnREMxBERERERERERERERERGdAAbiiIiIiIiIiIiIiIiIiE4AA3FEREREREREREREREREJ4CBOCIiIiIiIiIiIiIiIqITUFn1DszNAkHPd24W9I1zGy9xbgIAyAL3bQFAfcuq2iV19zhq0lxu7NWL3duMrur2cRLr2pmp+3EFALWb7u1MptoUKmNdu2hdd0zCuncNXqTclO7rBxQfLa0pN6Y8bXzF8Q8AwXB5/RZ03Q9q2+4N07puW9bTHcdW+buZVNNKtzFNHwno+xKr+CqzQHfeJG3dweVFiuNf+T3Wb+v2UXtsJS33z6b5zQAARtdQc73xp7rvMZjo2k3Oaa9t7k20fWv7RV27HcV1ytZ032Plhu42QNdHAv7U/XdLR4FqW16qO0a0n03VB1ndZ9OOmzTtUuWxFSj6cQBIm7rtGcV52ujp9jFpqZqprhvei7pjZHpeN0iwga5dMHL/cBXFWBcAgqGqGabndMdWiKZ7I2X/07ipG1ykTfeT+8ZzDdW2vEQ7KFFS/GxZVdmPKPt/3bZ036N2vFtVzvpVd9zbVJRjQi9WtlOO06K2+28wjXUX4Mm4q2rnT93bJLpTG1lTe3Opa+aF7t9/pjyOU1+3k5Gimfbc9ifKPkH5/Wvm0hLFtQYAkrSqatfYcr8masfItW1dOz/UXbf9UNFIefmtDnQXt1pP17kOHnL/vcPukscWK8aMOCIiIiIiIiIiIiIiIqITwEAcERERERERERERERER0QlgII6IiIiIiIiIiIiIiIjoBDAQR0RERERERERERERERHQCGIgjIiIiIiIiIiIiIiIiOgErC8QZY95rjHnaGPOsMeZDq9oPIiIiIiIiIiIiIiIiopNQWcVGjTE+gJ8A8K0ArgH4tDHmY9baLxzWLlPsrfXd21S3rHujY/BiXbv2dubcZnRJF3v1Et134kXubbJAt4/Wq6rapY3lfbb6Hd22Mt+o2rV3VM3gh8s7B9K6rl2mOLezQPc9RuuqZghGunbVHffvPxjrfrNqP1W10/QJ1e1Qta24ozu3w03dJW6y6d4HBUPdsVUZ6X63ivIcDdfdP5vR7uNY951oromNLffrIQBUprp2RtcMk3PuHVcW6LZVv6PbSau4BGv7Vj/SHVvtG7p+azpWHP/K3xq6rwTBQPEDDHTbqm3r2nmJrp2mv4s7ui9ScxwD+jG5Sd0/m6+7JKrubQCojsm0qjyQte4o+5KJ+/efNFWbUp/blbF7G+39VzDUnQBpVdeutu2+n83byn5cMY4BgPqWqhkGjyiu21XlmFzZlwc3dO00koayobJP1vTlwVC3rbCrO7mN4lCuKPosADj/B7qby/EV3Q+XKsZ3ned1+5g1dPdtWUXZ39Xd29V7ugvwWDkHF7fd2wTKcat3Rzu4WJ6kpexbe8r5RcUhaZRjZC3tmFBzf9m8oby3V45lYN3bWU+3j4FyvqM20J1wvmIOon5rqtrWsnVecm+T1nXzfWW1qoy49wB41lr7nLU2AvDzAN63on0hIiIiIiIiIiIiIiIiWrhVBeIeBHB/nPTa3mtEREREREREREREREREp8JKSlPOyxjzwwB+GADgFz9VmoiIiIiIiIiIiIiIiOg1q8qIuw7g6n1/fmjvtX2stR+21j5lrX3KeKvaVSIiIiIiIiIiIiIiIiJ3q4pufRrAE8aYR40xVQDvB/CxFe0LERERERERERERERER0cKtpDSltTYxxvxXAH4dgA/gI9baP1rFvhARERERERERERERERGdBGOtXfU+zMUYkwGYzPjrCoBkibtDRKcP+xEiOi72I0S0COxLiOi42I8Q0SKwLyGi4zqJfqRhrS3dOmalCcQdxhjzGWvtU6veDyIqL/YjRHRc7EeIaBHYlxDRcbEfIaJFYF9CRMfFfuSe0kUOiYiIiIiIiIiIiIiIiMqAgTgiIiIiIiIiIiIiIiKiE3BaAnEfXvUOEFHpsR8houNiP0JEi8C+hIiOi/0IES0C+xIiOi72I3tOxRpxREREREREREREREREREVzWjLiiIiIiIiIiIiIiIiIiAql1IE4Y8x7jTFPG2OeNcZ8aNX7Q0TFZ4y5aoz5hDHmC8aYPzLG/NW91zeNMR83xjyz9/8bq95XIio+Y4xvjPmcMeZX9v78qDHmU3tjk//LGFNd9T4SUXEZY7rGmI8aY75kjPmiMeZPcExCRK6MMf/t3r3N540xP2eMqXNMQkSHMcZ8xBhz0xjz+fteE8cgZtf/sdef/IEx5l2r23MiKpIZfcnf3bu/+QNjzL80xnTv+7sf2etLnjbGfNtKdnpFShuIM8b4AH4CwLcDeAuA7zXGvGW1e0VEJZAA+O+ttW8B8LUA/spe3/EhAL9hrX0CwG/s/ZmI6Ch/FcAX7/vz3wHwv1lrXw9gG8APrWSviKgs/ncA/8pa+yYA78Buf8IxCRHNzRjzIID/BsBT1tonAfgA3g+OSYjocD8N4L0HXps1Bvl2AE/s/e+HAfzkkvaRiIrvp5HvSz4O4Elr7dsBfBnAjwDA3vzr+wG8da/NP9yL8ZwJpQ3EAXgPgGettc9ZayMAPw/gfSveJyIqOGvty9baz+799wC7E14PYrf/+Jm9t/0MgO9eyQ4SUWkYYx4C8KcB/NTenw2APwXgo3tvYV9CRDMZY9YBfAOAfwQA1trIWtsDxyRE5K4CoGGMqQBoAngZHJMQ0SGstb8J4M6Bl2eNQd4H4J/YXb8LoGuMubyUHSWiQpP6Emvtv7bWJnt//F0AD+399/sA/Ly1NrTWPg/gWezGeM6EMgfiHgTw0n1/vrb3GhHRXIwxrwPwTgCfAnDJWvvy3l+9AuDSqvaLiErj7wP4HwBke38+B6B334CTYxMiOsyjAG4B+Md7JW5/yhjTAsckROTAWnsdwI8DeBG7AbgdAL8PjkmIyN2sMQjnYIlI6y8B+LW9/z7TfUmZA3FERGrGmDaAXwDw16y1/fv/zlprAdiV7BgRlYIx5jsB3LTW/v6q94WISqsC4F0AftJa+04AIxwoQ8kxCREdZW8Np/dhN7h/BUAL+RJRREROOAYhouMyxvxN7C4R9LOr3pciKHMg7jqAq/f9+aG914iIDmWMCbAbhPtZa+2/2Hv51ddKK+z9/81V7R8RlcLXAfguY8wfY7c89p/C7lpP3b2yUADHJkR0uGsArllrP7X3549iNzDHMQkRufgWAM9ba29Za2MA/wK74xSOSYjI1awxCOdgiciJMeYHAXwngO/bC+wDZ7wvKXMg7tMAnjDGPGqMqWJ3ob+PrXifiKjg9tZw+kcAvmit/Xv3/dXHAHxw778/COCXlr1vRFQe1tofsdY+ZK19HXbHIP/GWvt9AD4B4M/uvY19CRHNZK19BcBLxpg37r30zQC+AI5JiMjNiwC+1hjT3LvXea0v4ZiEiFzNGoN8DMAPmF1fC2DnvhKWRET7GGPei91lPL7LWju+768+BuD9xpiaMeZRAE8A+L1V7OMqmHsByfIxxnwHdtdn8QF8xFr7o6vdIyIqOmPMfwTgtwD8Ie6t6/Q/YXeduH8O4GEALwD489bagwsXExHlGGO+CcBft9Z+pzHmMexmyG0C+ByAD1hrwxXuHhEVmDHmqwD8FIAqgOcA/EXsPizJMQkRzc0Y87cA/GfYLf/0OQD/OXbXXOGYhIhExpifA/BNAM4DeBXA/wLgFyGMQfaC/P8Au2VvxwD+orX2MyvYbSIqmBl9yY8AqAHY2nvb71pr/4u99/9N7K4bl2B3uaBfO/hvnlalDsQRERERERERERERERERFVWZS1MSERERERERERERERERFRYDcUREREREREREREREREQngIE4IiIiIiIiIiIiIiIiohPAQBwRERERERERERERERHRCWAgjoiIiIiIiIiIiIiIiOgEMBBHRERERES0IsaYrjHmv9z77yvGmI+uep+IiIiIiIhocYy1dtX7QEREREREdCYZY14H4FestU+uel+IiIiIiIho8Sqr3gEiIiIiIqIz7McAPG6M+Q8AngHwZmvtk8aYHwTw3QBaAJ4A8OMAqgC+H0AI4DustXeMMY8D+AkAFwCMAfxla+2Xlv0hiIiIiIiISMbSlERERERERKvzIQBfsdZ+FYC/ceDvngTwPQDeDeBHAYytte8E8EkAP7D3ng8D+K+ttV8N4K8D+IfL2GkiIiIiIiKaDzPiiIiIiIiIiukT1toBgIExZgfAL++9/ocA3m6MaQP4kwD+b2PMa21qy99NIiIiIiIimoWBOCIiIiIiomIK7/vv7L4/Z9i9l/MA9Pay6YiIiIiIiKiAWJqSiIiIiIhodQYAOpqG1to+gOeNMX8OAMyudyxy54iIiIiIiOh4GIgjIiIiIiJaEWvtFoB/b4z5PIC/q/gnvg/ADxlj/j8AfwTgfYvcPyIiIiIiIjoeY61d9T4QERERERERERERERERnTrMiCMiIiIiIiIiIiIiIiI6AQzEEREREREREREREREREZ0ABuKIiIiIiIiIiIiIiIiITgADcUREREREREREREREREQngIE4IiIiIiIiIiIiIiIiohPAQBwRERERERERERERERHRCWAgjoiIiIiIiIiIiIiIiOgEMBBHREREREREREREREREdAL+f+itReBxkDxdAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "execution_count": 31 + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [], + "outputs": [], + "metadata": {} + } + ], + "metadata": { + "orig_nbformat": 4, + "language_info": { + "name": "python", + "version": "3.9.7", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.9.1 64-bit ('miniconda3': virtualenv)" + }, + "interpreter": { + "hash": "822ce188d9bce5372c4adbb11364eeb49293228c2224eb55307f4664778e7f56" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/Indic-TTS/TTS/notebooks/dataset_analysis/CheckSpectrograms.ipynb b/Indic-TTS/TTS/notebooks/dataset_analysis/CheckSpectrograms.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..47e5c4cf4dab2db8511b694c39bce113618d65da --- /dev/null +++ b/Indic-TTS/TTS/notebooks/dataset_analysis/CheckSpectrograms.ipynb @@ -0,0 +1,319 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from TTS.utils.audio import AudioProcessor\n", + "from TTS.tts.utils.visual import plot_spectrogram\n", + "from TTS.config import load_config\n", + "\n", + "import IPython.display as ipd\n", + "import glob" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "from TTS.config.shared_configs import BaseAudioConfig\n", + "CONFIG = BaseAudioConfig()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## โœ๏ธ Set these values " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data_path = \"/root/wav48_silence_trimmed/\"\n", + "file_ext = \".flac\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Read audio files" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "file_paths = glob.glob(data_path + f\"/**/*{file_ext}\", recursive=True)\n", + "\n", + "# Change this to the index of the desired file listed below\n", + "sample_file_index = 10\n", + "\n", + "SAMPLE_FILE_PATH = file_paths[sample_file_index]\n", + "\n", + "print(\"File list, by index:\")\n", + "dict(enumerate(file_paths))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "## โœ๏ธ Set Audio Processor\n", + "Play with the AP parameters until you find a good fit with the synthesis speech below.\n", + "\n", + "The default values are loaded from your config.json file, so you only need to\n", + "uncomment and modify values below that you'd like to tune." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "tune_params={\n", + " 'num_mels': 80, # In general, you don't need to change this. \n", + " 'fft_size': 2400, # In general, you don't need to change this.\n", + " 'frame_length_ms': 50, \n", + " 'frame_shift_ms': 12.5,\n", + " 'sample_rate': 48000, # This must match the sample rate of the dataset.\n", + " 'hop_length': None, # In general, you don't need to change this.\n", + " 'win_length': 1024, # In general, you don't need to change this.\n", + " 'preemphasis': 0.98, # In general, 0 gives better voice recovery but makes training harder. If your model does not train, try 0.97 - 0.99.\n", + " 'min_level_db': -100,\n", + " 'ref_level_db': 0, # The base DB; increase until all background noise is removed in the spectrogram, then lower until you hear better speech below.\n", + " 'power': 1.5, # Change this value and listen to the synthesized voice. 1.2 - 1.5 are resonable values.\n", + " 'griffin_lim_iters': 60, # Quality does not improve for values > 60\n", + " 'mel_fmin': 0.0, # Adjust this and check mel-spectrogram-based voice synthesis below.\n", + " 'mel_fmax': 8000.0, # Adjust this and check mel-spectrogram-based voice synthesis below.\n", + " 'do_trim_silence': True # If you dataset has some silience at the beginning or end, this trims it. Check the AP.load_wav() below,if it causes any difference for the loaded audio file.\n", + "}\n", + "\n", + "# These options have to be forced off in order to avoid errors about the \n", + "# pre-calculated not matching the options being tuned.\n", + "reset={\n", + " 'signal_norm': True, # check this if you want to test normalization parameters.\n", + " 'stats_path': None,\n", + " 'symmetric_norm': False,\n", + " 'max_norm': 1,\n", + " 'clip_norm': True,\n", + "}\n", + "\n", + "# Override select parts of loaded config with parameters above\n", + "tuned_config = CONFIG.copy()\n", + "tuned_config.update(reset)\n", + "tuned_config.update(tune_params)\n", + "\n", + "AP = AudioProcessor(**tuned_config);" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### Check audio loading " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "wav = AP.load_wav(SAMPLE_FILE_PATH)\n", + "ipd.Audio(data=wav, rate=AP.sample_rate) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### Generate Mel-Spectrogram and Re-synthesis with GL" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "AP.power = 1.5" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "mel = AP.melspectrogram(wav)\n", + "print(\"Max:\", mel.max())\n", + "print(\"Min:\", mel.min())\n", + "print(\"Mean:\", mel.mean())\n", + "plot_spectrogram(mel.T, AP, output_fig=True)\n", + "\n", + "wav_gen = AP.inv_melspectrogram(mel)\n", + "ipd.Audio(wav_gen, rate=AP.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### Generate Linear-Spectrogram and Re-synthesis with GL" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "spec = AP.spectrogram(wav)\n", + "print(\"Max:\", spec.max())\n", + "print(\"Min:\", spec.min())\n", + "print(\"Mean:\", spec.mean())\n", + "plot_spectrogram(spec.T, AP, output_fig=True)\n", + "\n", + "wav_gen = AP.inv_spectrogram(spec)\n", + "ipd.Audio(wav_gen, rate=AP.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### Compare values for a certain parameter\n", + "\n", + "Optimize your parameters by comparing different values per parameter at a time." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "from librosa import display\n", + "from matplotlib import pylab as plt\n", + "import IPython\n", + "plt.rcParams['figure.figsize'] = (20.0, 16.0)\n", + "\n", + "def compare_values(attribute, values):\n", + " \"\"\"\n", + " attributes (str): the names of the attribute you like to test.\n", + " values (list): list of values to compare.\n", + " \"\"\"\n", + " file = SAMPLE_FILE_PATH\n", + " wavs = []\n", + " for idx, val in enumerate(values):\n", + " set_val_cmd = \"AP.{}={}\".format(attribute, val)\n", + " exec(set_val_cmd)\n", + " wav = AP.load_wav(file)\n", + " spec = AP.spectrogram(wav)\n", + " spec_norm = AP.denormalize(spec.T)\n", + " plt.subplot(len(values), 2, 2*idx + 1)\n", + " plt.imshow(spec_norm.T, aspect=\"auto\", origin=\"lower\")\n", + " # plt.colorbar()\n", + " plt.tight_layout()\n", + " wav_gen = AP.inv_spectrogram(spec)\n", + " wavs.append(wav_gen)\n", + " plt.subplot(len(values), 2, 2*idx + 2)\n", + " display.waveplot(wav, alpha=0.5)\n", + " display.waveplot(wav_gen, alpha=0.25)\n", + " plt.title(\"{}={}\".format(attribute, val))\n", + " plt.tight_layout()\n", + " \n", + " wav = AP.load_wav(file)\n", + " print(\" > Ground-truth\")\n", + " IPython.display.display(IPython.display.Audio(wav, rate=AP.sample_rate))\n", + " \n", + " for idx, wav_gen in enumerate(wavs):\n", + " val = values[idx]\n", + " print(\" > {} = {}\".format(attribute, val))\n", + " IPython.display.display(IPython.display.Audio(wav_gen, rate=AP.sample_rate))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "compare_values(\"preemphasis\", [0, 0.5, 0.97, 0.98, 0.99])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "compare_values(\"ref_level_db\", [2, 5, 10, 15, 20, 25, 30, 35, 40, 1000])" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "27648abe09795c3a768a281b31f7524fcf66a207e733f8ecda3a4e1fd1059fb0" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Indic-TTS/TTS/notebooks/dataset_analysis/PhonemeCoverage.ipynb b/Indic-TTS/TTS/notebooks/dataset_analysis/PhonemeCoverage.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..2b7f5d670f9440a67d28c1a8cc110ab84c0a8872 --- /dev/null +++ b/Indic-TTS/TTS/notebooks/dataset_analysis/PhonemeCoverage.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "# Jupyter Notbook for phoneme coverage analysis\n", + "\n", + "This jupyter notebook checks dataset configured in config.json for phoneme coverage.\n", + "As mentioned here https://github.com/mozilla/TTS/wiki/Dataset#what-makes-a-good-dataset a good phoneme coverage is recommended.\n", + "\n", + "Most parameters will be taken from config.json file in mozilla tts repo so please ensure it's configured correctly for your dataset.\n", + "This notebook used lots of existring code from the TTS repo to ensure future compatibility.\n", + "\n", + "Many thanks to Neil Stoker supporting me on this topic :-).\n", + "\n", + "I provide this notebook without any warrenty but it's hopefully useful for your dataset analysis.\n", + "\n", + "Happy TTS'ing :-)\n", + "\n", + "Thorsten Mรผller\n", + "\n", + "* https://github.com/thorstenMueller/deep-learning-german-tts\n", + "* https://discourse.mozilla.org/t/contributing-my-german-voice-for-tts/" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# set some vars\n", + "# TTS_PATH = \"/home/thorsten/___dev/tts/mozilla/TTS\"\n", + "CONFIG_FILE = \"/path/to/config/config.json\"\n", + "CHARS_TO_REMOVE = \".,:!?'\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# import stuff\n", + "from TTS.utils.io import load_config\n", + "from TTS.tts.datasets.formatters import load_tts_samples\n", + "from TTS.tts.utils.text import phoneme_to_sequence, sequence_to_phoneme\n", + "from tqdm import tqdm\n", + "from matplotlib import pylab as plt\n", + "from multiprocessing import Pool, cpu_count\n", + "\n", + "# extra imports that might not be included in requirements.txt\n", + "import collections\n", + "import operator\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false", + "tags": [] + }, + "outputs": [], + "source": [ + "# Load config.json properties\n", + "CONFIG = load_config(CONFIG_FILE)\n", + "\n", + "# Load some properties from config.json\n", + "CONFIG_METADATA = sorted(load_tts_samples(CONFIG.datasets)[0])\n", + "CONFIG_METADATA = CONFIG_METADATA\n", + "CONFIG_DATASET = CONFIG.datasets[0]\n", + "CONFIG_PHONEME_LANGUAGE = CONFIG.phoneme_language\n", + "CONFIG_TEXT_CLEANER = CONFIG.text_cleaner\n", + "CONFIG_ENABLE_EOS_BOS_CHARS = CONFIG.enable_eos_bos_chars\n", + "\n", + "# Will be printed on generated output graph\n", + "CONFIG_RUN_NAME = CONFIG.run_name\n", + "CONFIG_RUN_DESC = CONFIG.run_description" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false", + "tags": [] + }, + "outputs": [], + "source": [ + "# print some debug information on loaded config values\n", + "print(\" > Run name: \" + CONFIG_RUN_NAME + \" (\" + CONFIG_RUN_DESC + \")\")\n", + "print(\" > Dataset files: \" + str(len(CONFIG_METADATA)))\n", + "print(\" > Phoneme language: \" + CONFIG_PHONEME_LANGUAGE)\n", + "print(\" > Used text cleaner: \" + CONFIG_TEXT_CLEANER)\n", + "print(\" > Enable eos bos chars: \" + str(CONFIG_ENABLE_EOS_BOS_CHARS))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_phoneme_from_sequence(text):\n", + " temp_list = []\n", + " if len(text[0]) > 0:\n", + " temp_text = text[0].rstrip('\\n')\n", + " for rm_bad_chars in CHARS_TO_REMOVE:\n", + " temp_text = temp_text.replace(rm_bad_chars,\"\")\n", + " seq = phoneme_to_sequence(temp_text, [CONFIG_TEXT_CLEANER], CONFIG_PHONEME_LANGUAGE, CONFIG_ENABLE_EOS_BOS_CHARS)\n", + " text = sequence_to_phoneme(seq)\n", + " text = text.replace(\" \",\"\")\n", + " temp_list.append(text)\n", + " return temp_list" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false", + "tags": [] + }, + "outputs": [], + "source": [ + "# Get phonemes from metadata\n", + "phonemes = []\n", + "\n", + "with Pool(cpu_count()-1) as p:\n", + " \n", + " phonemes = list(tqdm(p.imap(get_phoneme_from_sequence, CONFIG_METADATA), total=len(CONFIG_METADATA)))\n", + " phonemes = [i for sub in phonemes for i in sub]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false", + "tags": [] + }, + "outputs": [], + "source": [ + "s = \"\"\n", + "phonemeString = s.join(phonemes)\n", + "\n", + "d = {}\n", + "collections._count_elements(d, phonemeString)\n", + "sorted_d = dict(sorted(d.items(), key=operator.itemgetter(1),reverse=True))\n", + "\n", + "# remove useless keys\n", + "sorted_d.pop(' ', None)\n", + "sorted_d.pop('หˆ', None)\n", + "\n", + "phonemesSum = len(phonemeString.replace(\" \",\"\"))\n", + "\n", + "print(\"Dataset contains \" + str(len(sorted_d)) + \" different ipa phonemes.\")\n", + "print(\"Dataset consists of \" + str(phonemesSum) + \" phonemes\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false", + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"5 rarest phonemes\")\n", + "\n", + "rareList = dict(sorted(sorted_d.items(), key=operator.itemgetter(1), reverse=False)[:5])\n", + "for key, value in rareList.items():\n", + " print(key + \" --> \" + str(value) + \" occurrences\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# create plot from analysis result\n", + "\n", + "x = []\n", + "y = []\n", + "\n", + "for key, value in sorted_d.items():\n", + " x.append(key)\n", + " y.append(value)\n", + "\n", + "plt.figure(figsize=(50,50))\n", + "plt.title(\"Phoneme coverage for \" + CONFIG_RUN_NAME + \" (\" + CONFIG_RUN_DESC + \")\", fontsize=50)\n", + "plt.xticks(fontsize=50)\n", + "plt.yticks(fontsize=50)\n", + "plt.barh(x,y, align='center', alpha=1.0)\n", + "plt.gca().invert_yaxis()\n", + "plt.ylabel('phoneme', fontsize=50)\n", + "plt.xlabel('occurrences', fontsize=50)\n", + "\n", + "for i, v in enumerate(y):\n", + " plt.text(v + 2, i - .2, str(v), fontsize=20)\n", + " plt.text(v + 2, i + .2, \"(\" + str(round(100/phonemesSum * v,2)) + \"%)\", fontsize=20)\n", + " \n", + " \n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Indic-TTS/TTS/notebooks/dataset_analysis/README.md b/Indic-TTS/TTS/notebooks/dataset_analysis/README.md new file mode 100644 index 0000000000000000000000000000000000000000..79faf5215951c996e7b15cc960a93195fd9034a8 --- /dev/null +++ b/Indic-TTS/TTS/notebooks/dataset_analysis/README.md @@ -0,0 +1,7 @@ +## Simple Notebook to Analyze a Dataset + +By the use of this notebook, you can easily analyze a brand new dataset, find exceptional cases and define your training set. + +What we are looking in here is reasonable distribution of instances in terms of sequence-length, audio-length and word-coverage. + +This notebook is inspired from https://github.com/MycroftAI/mimic2 diff --git a/Indic-TTS/TTS/notebooks/dataset_analysis/analyze.py b/Indic-TTS/TTS/notebooks/dataset_analysis/analyze.py new file mode 100644 index 0000000000000000000000000000000000000000..4855886efdd2298875ef038dcfdb918b5c912d62 --- /dev/null +++ b/Indic-TTS/TTS/notebooks/dataset_analysis/analyze.py @@ -0,0 +1,210 @@ +# visualisation tools for mimic2 +import argparse +import csv +import os +import random +from statistics import StatisticsError, mean, median, mode, stdev + +import matplotlib.pyplot as plt +import seaborn as sns +from text.cmudict import CMUDict + + +def get_audio_seconds(frames): + return (frames * 12.5) / 1000 + + +def append_data_statistics(meta_data): + # get data statistics + for char_cnt in meta_data: + data = meta_data[char_cnt]["data"] + audio_len_list = [d["audio_len"] for d in data] + mean_audio_len = mean(audio_len_list) + try: + mode_audio_list = [round(d["audio_len"], 2) for d in data] + mode_audio_len = mode(mode_audio_list) + except StatisticsError: + mode_audio_len = audio_len_list[0] + median_audio_len = median(audio_len_list) + + try: + std = stdev(d["audio_len"] for d in data) + except StatisticsError: + std = 0 + + meta_data[char_cnt]["mean"] = mean_audio_len + meta_data[char_cnt]["median"] = median_audio_len + meta_data[char_cnt]["mode"] = mode_audio_len + meta_data[char_cnt]["std"] = std + return meta_data + + +def process_meta_data(path): + meta_data = {} + + # load meta data + with open(path, "r", encoding="utf-8") as f: + data = csv.reader(f, delimiter="|") + for row in data: + frames = int(row[2]) + utt = row[3] + audio_len = get_audio_seconds(frames) + char_count = len(utt) + if not meta_data.get(char_count): + meta_data[char_count] = {"data": []} + + meta_data[char_count]["data"].append( + { + "utt": utt, + "frames": frames, + "audio_len": audio_len, + "row": "{}|{}|{}|{}".format(row[0], row[1], row[2], row[3]), + } + ) + + meta_data = append_data_statistics(meta_data) + + return meta_data + + +def get_data_points(meta_data): + x = meta_data + y_avg = [meta_data[d]["mean"] for d in meta_data] + y_mode = [meta_data[d]["mode"] for d in meta_data] + y_median = [meta_data[d]["median"] for d in meta_data] + y_std = [meta_data[d]["std"] for d in meta_data] + y_num_samples = [len(meta_data[d]["data"]) for d in meta_data] + return { + "x": x, + "y_avg": y_avg, + "y_mode": y_mode, + "y_median": y_median, + "y_std": y_std, + "y_num_samples": y_num_samples, + } + + +def save_training(file_path, meta_data): + rows = [] + for char_cnt in meta_data: + data = meta_data[char_cnt]["data"] + for d in data: + rows.append(d["row"] + "\n") + + random.shuffle(rows) + with open(file_path, "w+", encoding="utf-8") as f: + for row in rows: + f.write(row) + + +def plot(meta_data, save_path=None): + save = False + if save_path: + save = True + + graph_data = get_data_points(meta_data) + x = graph_data["x"] + y_avg = graph_data["y_avg"] + y_std = graph_data["y_std"] + y_mode = graph_data["y_mode"] + y_median = graph_data["y_median"] + y_num_samples = graph_data["y_num_samples"] + + plt.figure() + plt.plot(x, y_avg, "ro") + plt.xlabel("character lengths", fontsize=30) + plt.ylabel("avg seconds", fontsize=30) + if save: + name = "char_len_vs_avg_secs" + plt.savefig(os.path.join(save_path, name)) + + plt.figure() + plt.plot(x, y_mode, "ro") + plt.xlabel("character lengths", fontsize=30) + plt.ylabel("mode seconds", fontsize=30) + if save: + name = "char_len_vs_mode_secs" + plt.savefig(os.path.join(save_path, name)) + + plt.figure() + plt.plot(x, y_median, "ro") + plt.xlabel("character lengths", fontsize=30) + plt.ylabel("median seconds", fontsize=30) + if save: + name = "char_len_vs_med_secs" + plt.savefig(os.path.join(save_path, name)) + + plt.figure() + plt.plot(x, y_std, "ro") + plt.xlabel("character lengths", fontsize=30) + plt.ylabel("standard deviation", fontsize=30) + if save: + name = "char_len_vs_std" + plt.savefig(os.path.join(save_path, name)) + + plt.figure() + plt.plot(x, y_num_samples, "ro") + plt.xlabel("character lengths", fontsize=30) + plt.ylabel("number of samples", fontsize=30) + if save: + name = "char_len_vs_num_samples" + plt.savefig(os.path.join(save_path, name)) + + +def plot_phonemes(train_path, cmu_dict_path, save_path): + cmudict = CMUDict(cmu_dict_path) + + phonemes = {} + + with open(train_path, "r", encoding="utf-8") as f: + data = csv.reader(f, delimiter="|") + phonemes["None"] = 0 + for row in data: + words = row[3].split() + for word in words: + pho = cmudict.lookup(word) + if pho: + indie = pho[0].split() + for nemes in indie: + if phonemes.get(nemes): + phonemes[nemes] += 1 + else: + phonemes[nemes] = 1 + else: + phonemes["None"] += 1 + + x, y = [], [] + for k, v in phonemes.items(): + x.append(k) + y.append(v) + + plt.figure() + plt.rcParams["figure.figsize"] = (50, 20) + barplot = sns.barplot(x=x, y=y) + if save_path: + fig = barplot.get_figure() + fig.savefig(os.path.join(save_path, "phoneme_dist")) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--train_file_path", + required=True, + help="this is the path to the train.txt file that the preprocess.py script creates", + ) + parser.add_argument("--save_to", help="path to save charts of data to") + parser.add_argument("--cmu_dict_path", help="give cmudict-0.7b to see phoneme distribution") + args = parser.parse_args() + meta_data = process_meta_data(args.train_file_path) + plt.rcParams["figure.figsize"] = (10, 5) + plot(meta_data, save_path=args.save_to) + if args.cmu_dict_path: + plt.rcParams["figure.figsize"] = (30, 10) + plot_phonemes(args.train_file_path, args.cmu_dict_path, args.save_to) + + plt.show() + + +if __name__ == "__main__": + main() diff --git a/Indic-TTS/TTS/pyproject.toml b/Indic-TTS/TTS/pyproject.toml new file mode 100644 index 0000000000000000000000000000000000000000..b790159d5f5be2b395b101a8ce9e7360b7ad4d8c --- /dev/null +++ b/Indic-TTS/TTS/pyproject.toml @@ -0,0 +1,33 @@ +[build-system] +requires = ["setuptools", "wheel", "cython==0.29.28", "numpy==1.21.6"] + +[flake8] +max-line-length=120 + +[tool.black] +line-length = 120 +target-version = ['py39'] +exclude = ''' + +( + /( + \.eggs # exclude a few common directories in the + | \.git # root of the project + | \.hg + | \.mypy_cache + | \.tox + | \.venv + | _build + | buck-out + | build + | dist + )/ + | foo.py # also separately exclude a file named foo.py in + # the root of the project +) +''' + +[tool.isort] +line_length = 120 +profile = "black" +multi_line_output = 3 \ No newline at end of file diff --git a/Indic-TTS/TTS/recipes/README.md b/Indic-TTS/TTS/recipes/README.md new file mode 100644 index 0000000000000000000000000000000000000000..21a6727d8bffb9a16c9b053aaae1aab25c1805fa --- /dev/null +++ b/Indic-TTS/TTS/recipes/README.md @@ -0,0 +1,22 @@ +# ๐Ÿธ๐Ÿ’ฌ TTS Training Recipes + +TTS recipes intended to host scripts running all the necessary steps to train a TTS model on a particular dataset. + +For each dataset, you need to download the dataset once. Then you run the training for the model you want. + +Run each script from the root TTS folder as follows. + +```console +$ sh ./recipes//download_.sh +$ python recipes///train.py +``` + +For some datasets you might need to resample the audio files. For example, VCTK dataset can be resampled to 22050Hz as follows. + +```console +python TTS/bin/resample.py --input_dir recipes/vctk/VCTK/wav48_silence_trimmed --output_sr 22050 --output_dir recipes/vctk/VCTK/wav48_silence_trimmed --n_jobs 8 --file_ext flac +``` + +If you train a new model using TTS, feel free to share your training to expand the list of recipes. + +You can also open a new discussion and share your progress with the ๐Ÿธ community. \ No newline at end of file diff --git a/Indic-TTS/TTS/recipes/blizzard2013/README.md b/Indic-TTS/TTS/recipes/blizzard2013/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9dcb73972802686dba80b83e798ab1466f2b26a0 --- /dev/null +++ b/Indic-TTS/TTS/recipes/blizzard2013/README.md @@ -0,0 +1,12 @@ +# How to get the Blizzard 2013 Dataset + +The Capacitron model is a variational encoder extension of standard Tacotron based models to model prosody. + +To take full advantage of the model, it is advised to train the model with a dataset that contains a significant amount of prosodic information in the utterances. A tested candidate for such applications is the blizzard2013 dataset from the Blizzard Challenge, containing many hours of high quality audio book recordings. + +To get a license and download link for this dataset, you need to visit the [website](https://www.cstr.ed.ac.uk/projects/blizzard/2013/lessac_blizzard2013/license.html) of the Centre for Speech Technology Research of the University of Edinburgh. + +You get access to the raw dataset in a couple of days. There are a few preprocessing steps you need to do to be able to use the high fidelity dataset. + +1. Get the forced time alignments for the blizzard dataset from [here](https://github.com/mueller91/tts_alignments). +2. Segment the high fidelity audio-book files based on the instructions [here](https://github.com/Tomiinek/Blizzard2013_Segmentation). \ No newline at end of file diff --git a/Indic-TTS/TTS/recipes/blizzard2013/tacotron1-Capacitron/train_capacitron_t1.py b/Indic-TTS/TTS/recipes/blizzard2013/tacotron1-Capacitron/train_capacitron_t1.py new file mode 100644 index 0000000000000000000000000000000000000000..52c6098fa2656227a1a8940abfcfb7536103a844 --- /dev/null +++ b/Indic-TTS/TTS/recipes/blizzard2013/tacotron1-Capacitron/train_capacitron_t1.py @@ -0,0 +1,101 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig, CapacitronVAEConfig +from TTS.tts.configs.tacotron_config import TacotronConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.tacotron import Tacotron +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) + +data_path = "/srv/data/" + +# Using LJSpeech like dataset processing for the blizzard dataset +dataset_config = BaseDatasetConfig(name="ljspeech", meta_file_train="metadata.csv", path=data_path) + +audio_config = BaseAudioConfig( + sample_rate=24000, + do_trim_silence=True, + trim_db=60.0, + signal_norm=True, + mel_fmin=80.0, + mel_fmax=12000, + spec_gain=20.0, + log_func="np.log10", + ref_level_db=20, + preemphasis=0.0, + min_level_db=-100, +) + +# Using the standard Capacitron config +capacitron_config = CapacitronVAEConfig(capacitron_VAE_loss_alpha=1.0) + +config = TacotronConfig( + run_name="Blizzard-Capacitron-T1", + audio=audio_config, + capacitron_vae=capacitron_config, + use_capacitron_vae=True, + batch_size=128, # Tune this to your gpu + max_audio_len=6 * 24000, # Tune this to your gpu + min_audio_len=0.5 * 24000, + eval_batch_size=16, + num_loader_workers=12, + num_eval_loader_workers=8, + precompute_num_workers=24, + run_eval=True, + test_delay_epochs=5, + ga_alpha=0.0, + r=2, + optimizer="CapacitronOptimizer", + optimizer_params={"RAdam": {"betas": [0.9, 0.998], "weight_decay": 1e-6}, "SGD": {"lr": 1e-5, "momentum": 0.9}}, + attention_type="graves", + attention_heads=5, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phonemizer="espeak", + phoneme_cache_path=os.path.join(data_path, "phoneme_cache"), + stopnet_pos_weight=15, + print_step=50, + print_eval=True, + mixed_precision=False, + output_path=output_path, + datasets=[dataset_config], + lr=1e-3, + lr_scheduler="StepwiseGradualLR", + lr_scheduler_params={"gradual_learning_rates": [[0, 1e-3], [2e4, 5e-4], [4e5, 3e-4], [6e4, 1e-4], [8e4, 5e-5]]}, + scheduler_after_epoch=False, # scheduler doesn't work without this flag + # Need to experiment with these below for capacitron + loss_masking=False, + decoder_loss_alpha=1.0, + postnet_loss_alpha=1.0, + postnet_diff_spec_alpha=0.0, + decoder_diff_spec_alpha=0.0, + decoder_ssim_alpha=0.0, + postnet_ssim_alpha=0.0, +) + +ap = AudioProcessor(**config.audio.to_dict()) + +tokenizer, config = TTSTokenizer.init_from_config(config) + +train_samples, eval_samples = load_tts_samples(dataset_config, eval_split=True) + +model = Tacotron(config, ap, tokenizer, speaker_manager=None) + +trainer = Trainer( + TrainerArgs(), + config, + output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, +) + +# ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/blizzard2013/tacotron2-Capacitron/train_capacitron_t2.py b/Indic-TTS/TTS/recipes/blizzard2013/tacotron2-Capacitron/train_capacitron_t2.py new file mode 100644 index 0000000000000000000000000000000000000000..cf27b9dfd1f8e8c186808aebbbc54ed0de4addf1 --- /dev/null +++ b/Indic-TTS/TTS/recipes/blizzard2013/tacotron2-Capacitron/train_capacitron_t2.py @@ -0,0 +1,117 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig, CapacitronVAEConfig +from TTS.tts.configs.tacotron2_config import Tacotron2Config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.tacotron2 import Tacotron2 +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) + +data_path = "/srv/data/blizzard2013/segmented" + +# Using LJSpeech like dataset processing for the blizzard dataset +dataset_config = BaseDatasetConfig( + name="ljspeech", + meta_file_train="metadata.csv", + path=data_path, +) + +audio_config = BaseAudioConfig( + sample_rate=24000, + do_trim_silence=True, + trim_db=60.0, + signal_norm=True, + mel_fmin=80.0, + mel_fmax=12000, + spec_gain=25.0, + log_func="np.log10", + ref_level_db=20, + preemphasis=0.0, + min_level_db=-100, +) + +# Using the standard Capacitron config +capacitron_config = CapacitronVAEConfig(capacitron_VAE_loss_alpha=1.0) + +config = Tacotron2Config( + run_name="Blizzard-Capacitron-T2", + audio=audio_config, + capacitron_vae=capacitron_config, + use_capacitron_vae=True, + batch_size=246, # Tune this to your gpu + max_audio_len=6 * 24000, # Tune this to your gpu + min_audio_len=1 * 24000, + eval_batch_size=16, + num_loader_workers=12, + num_eval_loader_workers=8, + precompute_num_workers=24, + run_eval=True, + test_delay_epochs=5, + ga_alpha=0.0, + r=2, + optimizer="CapacitronOptimizer", + optimizer_params={"RAdam": {"betas": [0.9, 0.998], "weight_decay": 1e-6}, "SGD": {"lr": 1e-5, "momentum": 0.9}}, + attention_type="dynamic_convolution", + grad_clip=0.0, # Important! We overwrite the standard grad_clip with capacitron_grad_clip + double_decoder_consistency=False, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phonemizer="espeak", + phoneme_cache_path=os.path.join(data_path, "phoneme_cache"), + stopnet_pos_weight=15, + print_step=25, + print_eval=True, + mixed_precision=False, + output_path=output_path, + datasets=[dataset_config], + lr=1e-3, + lr_scheduler="StepwiseGradualLR", + lr_scheduler_params={ + "gradual_learning_rates": [ + [0, 1e-3], + [2e4, 5e-4], + [4e5, 3e-4], + [6e4, 1e-4], + [8e4, 5e-5], + ] + }, + scheduler_after_epoch=False, # scheduler doesn't work without this flag + # dashboard_logger='wandb', + # sort_by_audio_len=True, + seq_len_norm=True, + # Need to experiment with these below for capacitron + loss_masking=False, + decoder_loss_alpha=1.0, + postnet_loss_alpha=1.0, + postnet_diff_spec_alpha=0.0, + decoder_diff_spec_alpha=0.0, + decoder_ssim_alpha=0.0, + postnet_ssim_alpha=0.0, +) + +ap = AudioProcessor(**config.audio.to_dict()) + +tokenizer, config = TTSTokenizer.init_from_config(config) + +train_samples, eval_samples = load_tts_samples(dataset_config, eval_split=True) + +model = Tacotron2(config, ap, tokenizer, speaker_manager=None) + +trainer = Trainer( + TrainerArgs(), + config, + output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, + training_assets={"audio_processor": ap}, +) + +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/kokoro/tacotron2-DDC/run.sh b/Indic-TTS/TTS/recipes/kokoro/tacotron2-DDC/run.sh new file mode 100644 index 0000000000000000000000000000000000000000..69800cf7b4e9b518a352191498ec50e44af86f90 --- /dev/null +++ b/Indic-TTS/TTS/recipes/kokoro/tacotron2-DDC/run.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# take the scripts's parent's directory to prefix all the output paths. +RUN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CORPUS=kokoro-speech-v1_1-small +echo $RUN_DIR +if [ \! -d $RUN_DIR/$CORPUS ] ; then + echo "$RUN_DIR/$CORPUS doesn't exist." + echo "Follow the instruction of https://github.com/kaiidams/Kokoro-Speech-Dataset to make the corpus." + exit 1 +fi +# create train-val splits +shuf $RUN_DIR/$CORPUS/metadata.csv > $RUN_DIR/$CORPUS/metadata_shuf.csv +head -n 8000 $RUN_DIR/$CORPUS/metadata_shuf.csv > $RUN_DIR/$CORPUS/metadata_train.csv +tail -n 812 $RUN_DIR/$CORPUS/metadata_shuf.csv > $RUN_DIR/$CORPUS/metadata_val.csv +# compute dataset mean and variance for normalization +python TTS/bin/compute_statistics.py $RUN_DIR/tacotron2-DDC.json $RUN_DIR/scale_stats.npy --data_path $RUN_DIR/$CORPUS/wavs/ +# training .... +# change the GPU id if needed +CUDA_VISIBLE_DEVICES="0" python TTS/bin/train_tts.py --config_path $RUN_DIR/tacotron2-DDC.json \ + --coqpit.output_path $RUN_DIR \ + --coqpit.datasets.0.path $RUN_DIR/$CORPUS \ + --coqpit.audio.stats_path $RUN_DIR/scale_stats.npy \ + --coqpit.phoneme_cache_path $RUN_DIR/phoneme_cache \ \ No newline at end of file diff --git a/Indic-TTS/TTS/recipes/kokoro/tacotron2-DDC/tacotron2-DDC.json b/Indic-TTS/TTS/recipes/kokoro/tacotron2-DDC/tacotron2-DDC.json new file mode 100644 index 0000000000000000000000000000000000000000..b36300550962e553eac34d6689a408c4cf5fabfa --- /dev/null +++ b/Indic-TTS/TTS/recipes/kokoro/tacotron2-DDC/tacotron2-DDC.json @@ -0,0 +1,125 @@ +{ + "datasets": [ + { + "name": "kokoro", + "path": "DEFINE THIS", + "meta_file_train": "metadata.csv", + "meta_file_val": null + } + ], + "audio": { + "fft_size": 1024, + "win_length": 1024, + "hop_length": 256, + "frame_length_ms": null, + "frame_shift_ms": null, + "sample_rate": 22050, + "preemphasis": 0.0, + "ref_level_db": 20, + "do_trim_silence": true, + "trim_db": 60, + "power": 1.5, + "griffin_lim_iters": 60, + "num_mels": 80, + "mel_fmin": 50.0, + "mel_fmax": 7600.0, + "spec_gain": 1, + "signal_norm": true, + "min_level_db": -100, + "symmetric_norm": true, + "max_norm": 4.0, + "clip_norm": true, + "stats_path": "scale_stats.npy" + }, + "gst":{ + "gst_style_input": null, + + + + "gst_embedding_dim": 512, + "gst_num_heads": 4, + "gst_style_tokens": 10, + "gst_use_speaker_embedding": false + }, + "model": "Tacotron2", + "run_name": "kokoro-ddc", + "run_description": "tacotron2 with DDC and differential spectral loss.", + "batch_size": 32, + "eval_batch_size": 16, + "mixed_precision": true, + "distributed": { + "backend": "nccl", + "url": "tcp:\/\/localhost:54321" + }, + "reinit_layers": [], + "loss_masking": true, + "decoder_loss_alpha": 0.5, + "postnet_loss_alpha": 0.25, + "postnet_diff_spec_alpha": 0.25, + "decoder_diff_spec_alpha": 0.25, + "decoder_ssim_alpha": 0.5, + "postnet_ssim_alpha": 0.25, + "ga_alpha": 5.0, + "stopnet_pos_weight": 15.0, + "run_eval": true, + "test_delay_epochs": 10, + "test_sentences_file": null, + "noam_schedule": false, + "grad_clip": 1.0, + "epochs": 1000, + "lr": 0.0001, + "wd": 0.000001, + "warmup_steps": 4000, + "seq_len_norm": false, + "memory_size": -1, + "prenet_type": "original", + "prenet_dropout": true, + "attention_type": "original", + "windowing": false, + "use_forward_attn": false, + "forward_attn_mask": false, + "transition_agent": false, + "location_attn": true, + "bidirectional_decoder": false, + "double_decoder_consistency": true, + "ddc_r": 7, + "attention_heads": 4, + "attention_norm": "sigmoid", + "r": 7, + "gradual_training": [[0, 7, 64], [1, 5, 64], [50000, 3, 32], [130000, 2, 32], [290000, 1, 32]], + "stopnet": true, + "separate_stopnet": true, + "print_step": 25, + "tb_plot_step": 100, + "print_eval": false, + "save_step": 10000, + "checkpoint": true, + "keep_all_best": false, + "keep_after": 10000, + "tb_model_param_stats": false, + "text_cleaner": "basic_cleaners", + "enable_eos_bos_chars": false, + "num_loader_workers": 4, + "num_val_loader_workers": 4, + "batch_group_size": 4, + "min_seq_len": 6, + "max_seq_len": 153, + "compute_input_seq_cache": false, + "use_noise_augment": true, + "output_path": "DEFINE THIS", + "phoneme_cache_path": "DEFINE THIS", + "use_phonemes": true, + "phoneme_language": "ja-jp", + "characters": { + "pad": "_", + "eos": "~", + "bos": "^", + "characters": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!'(),-.:;? ", + "punctuations": "!'(),-.:;? ", + "phonemes": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + }, + "use_speaker_embedding": false, + "use_gst": false, + "use_external_speaker_embedding_file": false, + "external_speaker_embedding_file": "../../speakers-vctk-en.json" +} \ No newline at end of file diff --git a/Indic-TTS/TTS/recipes/ljspeech/README.md b/Indic-TTS/TTS/recipes/ljspeech/README.md new file mode 100644 index 0000000000000000000000000000000000000000..94508a7f2ecd7d161b16997e415ed4c4935a39f2 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/README.md @@ -0,0 +1,19 @@ +# ๐Ÿธ๐Ÿ’ฌ TTS LJspeech Recipes + +For running the recipes + +1. Download the LJSpeech dataset here either manually from [its official website](https://keithito.com/LJ-Speech-Dataset/) or using ```download_ljspeech.sh```. +2. Go to your desired model folder and run the training. + + Running Python files. (Choose the desired GPU ID for your run and set ```CUDA_VISIBLE_DEVICES```) + ```terminal + CUDA_VISIBLE_DEVICES="0" python train_modelX.py + ``` + + Running bash scripts. + ```terminal + bash run.sh + ``` + +๐Ÿ’ก Note that these runs are just templates to help you start training your first model. They are not optimized for the best +result. Double-check the configurations and feel free to share your experiments to find better parameters together ๐Ÿ’ช. diff --git a/Indic-TTS/TTS/recipes/ljspeech/align_tts/train_aligntts.py b/Indic-TTS/TTS/recipes/ljspeech/align_tts/train_aligntts.py new file mode 100644 index 0000000000000000000000000000000000000000..591b15091f78bb8e98e21cee5e60aed3c31a4b79 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/align_tts/train_aligntts.py @@ -0,0 +1,70 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.tts.configs.align_tts_config import AlignTTSConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.align_tts import AlignTTS +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) + +# init configs +dataset_config = BaseDatasetConfig( + name="ljspeech", meta_file_train="metadata.csv", path=os.path.join(output_path, "../LJSpeech-1.1/") +) +config = AlignTTSConfig( + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="english_cleaners", + use_phonemes=False, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=25, + print_eval=True, + mixed_precision=False, + output_path=output_path, + datasets=[dataset_config], +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init model +model = AlignTTS(config, ap, tokenizer) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/download_ljspeech.sh b/Indic-TTS/TTS/recipes/ljspeech/download_ljspeech.sh new file mode 100644 index 0000000000000000000000000000000000000000..9468988a9928708d2d1792afeacebd6e0c4cb64a --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/download_ljspeech.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# take the scripts's parent's directory to prefix all the output paths. +RUN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +echo $RUN_DIR +# download LJSpeech dataset +wget http://data.keithito.com/data/speech/LJSpeech-1.1.tar.bz2 +# extract +tar -xjf LJSpeech-1.1.tar.bz2 +# create train-val splits +shuf LJSpeech-1.1/metadata.csv > LJSpeech-1.1/metadata_shuf.csv +head -n 12000 LJSpeech-1.1/metadata_shuf.csv > LJSpeech-1.1/metadata_train.csv +tail -n 1100 LJSpeech-1.1/metadata_shuf.csv > LJSpeech-1.1/metadata_val.csv +mv LJSpeech-1.1 $RUN_DIR/recipes/ljspeech/ +rm LJSpeech-1.1.tar.bz2 \ No newline at end of file diff --git a/Indic-TTS/TTS/recipes/ljspeech/fast_pitch/train_fast_pitch.py b/Indic-TTS/TTS/recipes/ljspeech/fast_pitch/train_fast_pitch.py new file mode 100644 index 0000000000000000000000000000000000000000..a84658f35f2187f6a8d1971cab82dd2a4a8c4204 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/fast_pitch/train_fast_pitch.py @@ -0,0 +1,101 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig, BaseDatasetConfig +from TTS.tts.configs.fast_pitch_config import FastPitchConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.forward_tts import ForwardTTS +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor +from TTS.utils.manage import ModelManager + +output_path = os.path.dirname(os.path.abspath(__file__)) + +# init configs +dataset_config = BaseDatasetConfig( + name="ljspeech", + meta_file_train="metadata.csv", + # meta_file_attn_mask=os.path.join(output_path, "../LJSpeech-1.1/metadata_attn_mask.txt"), + path=os.path.join(output_path, "../LJSpeech-1.1/"), +) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=60.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = FastPitchConfig( + run_name="fast_pitch_ljspeech", + audio=audio_config, + batch_size=32, + eval_batch_size=16, + num_loader_workers=8, + num_eval_loader_workers=4, + compute_input_seq_cache=True, + compute_f0=True, + f0_cache_path=os.path.join(output_path, "f0_cache"), + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + precompute_num_workers=4, + print_step=50, + print_eval=False, + mixed_precision=False, + sort_by_audio_len=True, + max_seq_len=500000, + output_path=output_path, + datasets=[dataset_config], +) + +# compute alignments +if not config.model_args.use_aligner: + manager = ModelManager() + model_path, config_path, _ = manager.download_model("tts_models/en/ljspeech/tacotron2-DCA") + # TODO: make compute_attention python callable + os.system( + f"python TTS/bin/compute_attention_masks.py --model_path {model_path} --config_path {config_path} --dataset ljspeech --dataset_metafile metadata.csv --data_path ./recipes/ljspeech/LJSpeech-1.1/ --use_cuda true" + ) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init the model +model = ForwardTTS(config, ap, tokenizer, speaker_manager=None) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/fast_speech/train_fast_speech.py b/Indic-TTS/TTS/recipes/ljspeech/fast_speech/train_fast_speech.py new file mode 100644 index 0000000000000000000000000000000000000000..0245dd938b9e4cc54f3a4a1b59cdd5f887f4cde4 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/fast_speech/train_fast_speech.py @@ -0,0 +1,100 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config import BaseAudioConfig, BaseDatasetConfig +from TTS.tts.configs.fast_speech_config import FastSpeechConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.forward_tts import ForwardTTS +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor +from TTS.utils.manage import ModelManager + +output_path = os.path.dirname(os.path.abspath(__file__)) + +# init configs +dataset_config = BaseDatasetConfig( + name="ljspeech", + meta_file_train="metadata.csv", + # meta_file_attn_mask=os.path.join(output_path, "../LJSpeech-1.1/metadata_attn_mask.txt"), + path=os.path.join(output_path, "../LJSpeech-1.1/"), +) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=60.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = FastSpeechConfig( + run_name="fast_speech_ljspeech", + audio=audio_config, + batch_size=32, + eval_batch_size=16, + num_loader_workers=8, + num_eval_loader_workers=4, + compute_input_seq_cache=True, + compute_f0=False, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + precompute_num_workers=8, + print_step=50, + print_eval=False, + mixed_precision=False, + sort_by_audio_len=True, + max_seq_len=500000, + output_path=output_path, + datasets=[dataset_config], +) + +# compute alignments +if not config.model_args.use_aligner: + manager = ModelManager() + model_path, config_path, _ = manager.download_model("tts_models/en/ljspeech/tacotron2-DCA") + # TODO: make compute_attention python callable + os.system( + f"python TTS/bin/compute_attention_masks.py --model_path {model_path} --config_path {config_path} --dataset ljspeech --dataset_metafile metadata.csv --data_path ./recipes/ljspeech/LJSpeech-1.1/ --use_cuda true" + ) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init the model +model = ForwardTTS(config, ap, tokenizer) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/glow_tts/train_glowtts.py b/Indic-TTS/TTS/recipes/ljspeech/glow_tts/train_glowtts.py new file mode 100644 index 0000000000000000000000000000000000000000..a0b4ac48b41c0a5b89e1ba66e5f8b7809d2e71d2 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/glow_tts/train_glowtts.py @@ -0,0 +1,84 @@ +import os + +# Trainer: Where the โœจ๏ธ happens. +# TrainingArgs: Defines the set of arguments of the Trainer. +from trainer import Trainer, TrainerArgs + +# GlowTTSConfig: all model related values for training, validating and testing. +from TTS.tts.configs.glow_tts_config import GlowTTSConfig + +# BaseDatasetConfig: defines name, formatter and path of the dataset. +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.glow_tts import GlowTTS +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +# we use the same path as this script as our training folder. +output_path = os.path.dirname(os.path.abspath(__file__)) + +# DEFINE DATASET CONFIG +# Set LJSpeech as our target dataset and define its path. +# You can also use a simple Dict to define the dataset and pass it to your custom formatter. +dataset_config = BaseDatasetConfig( + name="ljspeech", meta_file_train="metadata.csv", path=os.path.join(output_path, "../LJSpeech-1.1/") +) + +# INITIALIZE THE TRAINING CONFIGURATION +# Configure the model. Every config class inherits the BaseTTSConfig. +config = GlowTTSConfig( + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=25, + print_eval=False, + mixed_precision=True, + output_path=output_path, + datasets=[dataset_config], +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# INITIALIZE THE MODEL +# Models take a config object and a speaker manager as input +# Config defines the details of the model like the number of layers, the size of the embedding, etc. +# Speaker manager is used by multi-speaker models. +model = GlowTTS(config, ap, tokenizer, speaker_manager=None) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/hifigan/train_hifigan.py b/Indic-TTS/TTS/recipes/ljspeech/hifigan/train_hifigan.py new file mode 100644 index 0000000000000000000000000000000000000000..b4cbae63edc228f755375d38e7a117ff76f2a785 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/hifigan/train_hifigan.py @@ -0,0 +1,46 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.configs import HifiganConfig +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.models.gan import GAN + +output_path = os.path.dirname(os.path.abspath(__file__)) + +config = HifiganConfig( + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=5, + epochs=1000, + seq_len=8192, + pad_short=2000, + use_noise_augment=True, + eval_split_size=10, + print_step=25, + print_eval=False, + mixed_precision=False, + lr_gen=1e-4, + lr_disc=1e-4, + data_path=os.path.join(output_path, "../LJSpeech-1.1/wavs/"), + output_path=output_path, +) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + +# init model +model = GAN(config, ap) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/multiband_melgan/train_multiband_melgan.py b/Indic-TTS/TTS/recipes/ljspeech/multiband_melgan/train_multiband_melgan.py new file mode 100644 index 0000000000000000000000000000000000000000..225f5a302f349be2f2069eeb10cd4b8ab6645eb0 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/multiband_melgan/train_multiband_melgan.py @@ -0,0 +1,46 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.configs import MultibandMelganConfig +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.models.gan import GAN + +output_path = os.path.dirname(os.path.abspath(__file__)) + +config = MultibandMelganConfig( + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=5, + epochs=1000, + seq_len=8192, + pad_short=2000, + use_noise_augment=True, + eval_split_size=10, + print_step=25, + print_eval=False, + mixed_precision=False, + lr_gen=1e-4, + lr_disc=1e-4, + data_path=os.path.join(output_path, "../LJSpeech-1.1/wavs/"), + output_path=output_path, +) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + +# init model +model = GAN(config, ap) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/speedy_speech/train_speedy_speech.py b/Indic-TTS/TTS/recipes/ljspeech/speedy_speech/train_speedy_speech.py new file mode 100644 index 0000000000000000000000000000000000000000..1ab3db1c2ee61d53246b73610b87d395183d402e --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/speedy_speech/train_speedy_speech.py @@ -0,0 +1,88 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config import BaseAudioConfig, BaseDatasetConfig +from TTS.tts.configs.speedy_speech_config import SpeedySpeechConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.forward_tts import ForwardTTS +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig( + name="ljspeech", meta_file_train="metadata.csv", path=os.path.join(output_path, "../LJSpeech-1.1/") +) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=60.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = SpeedySpeechConfig( + run_name="speedy_speech_ljspeech", + audio=audio_config, + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + compute_input_seq_cache=True, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + precompute_num_workers=4, + print_step=50, + print_eval=False, + mixed_precision=False, + sort_by_audio_len=True, + max_seq_len=500000, + output_path=output_path, + datasets=[dataset_config], +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init model +model = ForwardTTS(config, ap, tokenizer) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/tacotron2-Capacitron/train_capacitron_t2.py b/Indic-TTS/TTS/recipes/ljspeech/tacotron2-Capacitron/train_capacitron_t2.py new file mode 100644 index 0000000000000000000000000000000000000000..6bb0aed782513cd0fc7ff5b11c00b7b2894080f5 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/tacotron2-Capacitron/train_capacitron_t2.py @@ -0,0 +1,115 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig, CapacitronVAEConfig +from TTS.tts.configs.tacotron2_config import Tacotron2Config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.tacotron2 import Tacotron2 +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) + +data_path = "/srv/data/" + +# Using LJSpeech like dataset processing for the blizzard dataset +dataset_config = BaseDatasetConfig( + name="ljspeech", + meta_file_train="metadata.csv", + path=data_path, +) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=60.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=11025, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +# Using the standard Capacitron config +capacitron_config = CapacitronVAEConfig(capacitron_VAE_loss_alpha=1.0, capacitron_capacity=50) + +config = Tacotron2Config( + run_name="Capacitron-Tacotron2", + audio=audio_config, + capacitron_vae=capacitron_config, + use_capacitron_vae=True, + batch_size=128, # Tune this to your gpu + max_audio_len=8 * 22050, # Tune this to your gpu + min_audio_len=1 * 22050, + eval_batch_size=16, + num_loader_workers=8, + num_eval_loader_workers=8, + precompute_num_workers=24, + run_eval=True, + test_delay_epochs=25, + ga_alpha=0.0, + r=2, + optimizer="CapacitronOptimizer", + optimizer_params={"RAdam": {"betas": [0.9, 0.998], "weight_decay": 1e-6}, "SGD": {"lr": 1e-5, "momentum": 0.9}}, + attention_type="dynamic_convolution", + grad_clip=0.0, # Important! We overwrite the standard grad_clip with capacitron_grad_clip + double_decoder_consistency=False, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phonemizer="espeak", + phoneme_cache_path=os.path.join(data_path, "phoneme_cache"), + stopnet_pos_weight=15, + print_step=25, + print_eval=True, + mixed_precision=False, + sort_by_audio_len=True, + seq_len_norm=True, + output_path=output_path, + datasets=[dataset_config], + lr=1e-3, + lr_scheduler="StepwiseGradualLR", + lr_scheduler_params={ + "gradual_learning_rates": [ + [0, 1e-3], + [2e4, 5e-4], + [4e5, 3e-4], + [6e4, 1e-4], + [8e4, 5e-5], + ] + }, + scheduler_after_epoch=False, # scheduler doesn't work without this flag + # Need to experiment with these below for capacitron + loss_masking=False, + decoder_loss_alpha=1.0, + postnet_loss_alpha=1.0, + postnet_diff_spec_alpha=0.0, + decoder_diff_spec_alpha=0.0, + decoder_ssim_alpha=0.0, + postnet_ssim_alpha=0.0, +) + +ap = AudioProcessor(**config.audio.to_dict()) + +tokenizer, config = TTSTokenizer.init_from_config(config) + +train_samples, eval_samples = load_tts_samples(dataset_config, eval_split=True) + +model = Tacotron2(config, ap, tokenizer, speaker_manager=None) + +trainer = Trainer( + TrainerArgs(), + config, + output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, + training_assets={"audio_processor": ap}, +) + +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/tacotron2-DCA/train_tacotron_dca.py b/Indic-TTS/TTS/recipes/ljspeech/tacotron2-DCA/train_tacotron_dca.py new file mode 100644 index 0000000000000000000000000000000000000000..a9f253ea86c0e18cabbacb5dae84774388d8325c --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/tacotron2-DCA/train_tacotron_dca.py @@ -0,0 +1,101 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.configs.tacotron2_config import Tacotron2Config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.tacotron2 import Tacotron2 +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +# from TTS.tts.datasets.tokenizer import Tokenizer + +output_path = os.path.dirname(os.path.abspath(__file__)) + +# init configs +dataset_config = BaseDatasetConfig( + name="ljspeech", meta_file_train="metadata.csv", path=os.path.join(output_path, "../LJSpeech-1.1/") +) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=60.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = Tacotron2Config( # This is the config that is saved for the future use + audio=audio_config, + batch_size=64, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + ga_alpha=0.0, + decoder_loss_alpha=0.25, + postnet_loss_alpha=0.25, + postnet_diff_spec_alpha=0, + decoder_diff_spec_alpha=0, + decoder_ssim_alpha=0, + postnet_ssim_alpha=0, + r=2, + attention_type="dynamic_convolution", + double_decoder_consistency=False, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=25, + print_eval=True, + mixed_precision=False, + output_path=output_path, + datasets=[dataset_config], +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# INITIALIZE THE MODEL +# Models take a config object and a speaker manager as input +# Config defines the details of the model like the number of layers, the size of the embedding, etc. +# Speaker manager is used by multi-speaker models. +model = Tacotron2(config, ap, tokenizer) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/tacotron2-DDC/train_tacotron_ddc.py b/Indic-TTS/TTS/recipes/ljspeech/tacotron2-DDC/train_tacotron_ddc.py new file mode 100644 index 0000000000000000000000000000000000000000..99089db83e32d0fdcd7d9090fc7f06c3f772fe2a --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/tacotron2-DDC/train_tacotron_ddc.py @@ -0,0 +1,94 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.configs.tacotron2_config import Tacotron2Config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.tacotron2 import Tacotron2 +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +# from TTS.tts.datasets.tokenizer import Tokenizer + +output_path = os.path.dirname(os.path.abspath(__file__)) + +# init configs +dataset_config = BaseDatasetConfig( + name="ljspeech", meta_file_train="metadata.csv", path=os.path.join(output_path, "../LJSpeech-1.1/") +) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=60.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = Tacotron2Config( # This is the config that is saved for the future use + audio=audio_config, + batch_size=64, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + r=6, + gradual_training=[[0, 6, 64], [10000, 4, 32], [50000, 3, 32], [100000, 2, 32]], + double_decoder_consistency=True, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + precompute_num_workers=8, + print_step=25, + print_eval=True, + mixed_precision=False, + output_path=output_path, + datasets=[dataset_config], +) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# INITIALIZE THE MODEL +# Models take a config object and a speaker manager as input +# Config defines the details of the model like the number of layers, the size of the embedding, etc. +# Speaker manager is used by multi-speaker models. +model = Tacotron2(config, ap, tokenizer, speaker_manager=None) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/univnet/train.py b/Indic-TTS/TTS/recipes/ljspeech/univnet/train.py new file mode 100644 index 0000000000000000000000000000000000000000..81d2b889b90cb888084d7229c424986f0e3118d4 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/univnet/train.py @@ -0,0 +1,45 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.configs import UnivnetConfig +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.models.gan import GAN + +output_path = os.path.dirname(os.path.abspath(__file__)) +config = UnivnetConfig( + batch_size=64, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + seq_len=8192, + pad_short=2000, + use_noise_augment=True, + eval_split_size=10, + print_step=25, + print_eval=False, + mixed_precision=False, + lr_gen=1e-4, + lr_disc=1e-4, + data_path=os.path.join(output_path, "../LJSpeech-1.1/wavs/"), + output_path=output_path, +) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + +# init model +model = GAN(config, ap) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/vits_tts/train_vits.py b/Indic-TTS/TTS/recipes/ljspeech/vits_tts/train_vits.py new file mode 100644 index 0000000000000000000000000000000000000000..c070b3f1ce7f75394999f1243c7da84226a33799 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/vits_tts/train_vits.py @@ -0,0 +1,91 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.configs.vits_config import VitsConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.vits import Vits +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig( + name="ljspeech", meta_file_train="metadata.csv", path=os.path.join(output_path, "../LJSpeech-1.1/") +) +audio_config = BaseAudioConfig( + sample_rate=22050, + win_length=1024, + hop_length=256, + num_mels=80, + preemphasis=0.0, + ref_level_db=20, + log_func="np.log", + do_trim_silence=True, + trim_db=45, + mel_fmin=0, + mel_fmax=None, + spec_gain=1.0, + signal_norm=False, + do_amp_to_db_linear=False, +) + +config = VitsConfig( + audio=audio_config, + run_name="vits_ljspeech", + batch_size=32, + eval_batch_size=16, + batch_group_size=5, + num_loader_workers=0, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + compute_input_seq_cache=True, + print_step=25, + print_eval=True, + mixed_precision=True, + output_path=output_path, + datasets=[dataset_config], +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# config is updated with the default characters if not defined in the config. +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init model +model = Vits(config, ap, tokenizer, speaker_manager=None) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), + config, + output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/wavegrad/train_wavegrad.py b/Indic-TTS/TTS/recipes/ljspeech/wavegrad/train_wavegrad.py new file mode 100644 index 0000000000000000000000000000000000000000..1abdf45d8759de249eafdd479c5e96b7f5f59b33 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/wavegrad/train_wavegrad.py @@ -0,0 +1,49 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.configs import WavegradConfig +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.models.wavegrad import Wavegrad + +output_path = os.path.dirname(os.path.abspath(__file__)) +config = WavegradConfig( + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + seq_len=6144, + pad_short=2000, + use_noise_augment=True, + eval_split_size=50, + print_step=50, + print_eval=True, + mixed_precision=False, + data_path=os.path.join(output_path, "../LJSpeech-1.1/wavs/"), + output_path=output_path, +) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + +# init model +model = Wavegrad(config) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), + config, + output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, + training_assets={"audio_processor": ap}, +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/ljspeech/wavernn/train_wavernn.py b/Indic-TTS/TTS/recipes/ljspeech/wavernn/train_wavernn.py new file mode 100644 index 0000000000000000000000000000000000000000..640f50921888f4fd4a33a32e725b280a639170b6 --- /dev/null +++ b/Indic-TTS/TTS/recipes/ljspeech/wavernn/train_wavernn.py @@ -0,0 +1,51 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.configs import WavernnConfig +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.models.wavernn import Wavernn + +output_path = os.path.dirname(os.path.abspath(__file__)) +config = WavernnConfig( + batch_size=64, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=10000, + seq_len=1280, + pad_short=2000, + use_noise_augment=False, + eval_split_size=10, + print_step=25, + print_eval=True, + mixed_precision=False, + lr=1e-4, + grad_clip=4, + data_path=os.path.join(output_path, "../LJSpeech-1.1/wavs/"), + output_path=output_path, +) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + +# init model +model = Wavernn(config) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), + config, + output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, + training_assets={"audio_processor": ap}, +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/multilingual/vits_tts/train_vits_tts.py b/Indic-TTS/TTS/recipes/multilingual/vits_tts/train_vits_tts.py new file mode 100644 index 0000000000000000000000000000000000000000..0e650ade8ed7db0a272a729301d6b18877ab3e4a --- /dev/null +++ b/Indic-TTS/TTS/recipes/multilingual/vits_tts/train_vits_tts.py @@ -0,0 +1,140 @@ +import os +from glob import glob + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.configs.vits_config import VitsConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.vits import CharactersConfig, Vits, VitsArgs +from TTS.tts.utils.languages import LanguageManager +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) + +mailabs_path = "/home/julian/workspace/mailabs/**" +dataset_paths = glob(mailabs_path) +dataset_config = [ + BaseDatasetConfig(name="mailabs", meta_file_train=None, path=path, language=path.split("/")[-1]) + for path in dataset_paths +] + +audio_config = BaseAudioConfig( + sample_rate=16000, + win_length=1024, + hop_length=256, + num_mels=80, + preemphasis=0.0, + ref_level_db=20, + log_func="np.log", + do_trim_silence=False, + trim_db=23.0, + mel_fmin=0, + mel_fmax=None, + spec_gain=1.0, + signal_norm=True, + do_amp_to_db_linear=False, + resample=False, +) + +vitsArgs = VitsArgs( + use_language_embedding=True, + embedded_language_dim=4, + use_speaker_embedding=True, + use_sdp=False, +) + +config = VitsConfig( + model_args=vitsArgs, + audio=audio_config, + run_name="vits_vctk", + use_speaker_embedding=True, + batch_size=32, + eval_batch_size=16, + batch_group_size=0, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="multilingual_cleaners", + use_phonemes=False, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + compute_input_seq_cache=True, + print_step=25, + use_language_weighted_sampler=True, + print_eval=False, + mixed_precision=False, + sort_by_audio_len=True, + min_audio_len=32 * 256 * 4, + max_audio_len=160000, + output_path=output_path, + datasets=dataset_config, + characters=CharactersConfig( + characters_class="TTS.tts.models.vits.VitsCharacters", + pad="", + eos="", + bos="", + blank="", + characters="!ยก'(),-.:;ยฟ?abcdefghijklmnopqrstuvwxyzยตรŸร รกรขรครฅรฆรงรจรฉรชรซรฌรญรฎรฏรฑรฒรณรดรถรนรบรปรผฤ…ฤ‡ฤ™ล‚ล„ล“ล›ลŸลบลผฦ’ะฐะฑะฒะณะดะตะถะทะธะนะบะปะผะฝะพะฟั€ัั‚ัƒั„ั…ั†ั‡ัˆั‰ัŠั‹ัŒััŽัั‘ั”ั–ั—า‘ำง ยซยฐยฑยตยป$%&โ€˜โ€™โ€šโ€œ`โ€โ€ž", + punctuations="!ยก'(),-.:;ยฟ? ", + phonemes=None, + ), + test_sentences=[ + [ + "It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.", + "mary_ann", + None, + "en_US", + ], + [ + "Il m'a fallu beaucoup de temps pour d\u00e9velopper une voix, et maintenant que je l'ai, je ne vais pas me taire.", + "ezwa", + None, + "fr_FR", + ], + ["Ich finde, dieses Startup ist wirklich unglaublich.", "eva_k", None, "de_DE"], + ["ะฏ ะดัƒะผะฐัŽ, ั‡ั‚ะพ ัั‚ะพั‚ ัั‚ะฐั€ั‚ะฐะฟ ะดะตะนัั‚ะฒะธั‚ะตะปัŒะฝะพ ัƒะดะธะฒะธั‚ะตะปัŒะฝั‹ะน.", "oblomov", None, "ru_RU"], + ], +) + +# force the convertion of the custom characters to a config attribute +config.from_dict(config.to_dict()) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init speaker manager for multi-speaker training +# it maps speaker-id to speaker-name in the model and data-loader +speaker_manager = SpeakerManager() +speaker_manager.set_ids_from_data(train_samples + eval_samples, parse_key="speaker_name") +config.model_args.num_speakers = speaker_manager.num_speakers + +language_manager = LanguageManager(config=config) +config.model_args.num_languages = language_manager.num_languages + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# config is updated with the default characters if not defined in the config. +tokenizer, config = TTSTokenizer.init_from_config(config) + +# init model +model = Vits(config, ap, tokenizer, speaker_manager, language_manager) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/README.md b/Indic-TTS/TTS/recipes/thorsten_DE/README.md new file mode 100644 index 0000000000000000000000000000000000000000..3ef0dbaa8b631f8fc0e5e4d38422dcead94799eb --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/README.md @@ -0,0 +1,15 @@ +# ๐Ÿธ๐Ÿ’ฌ TTS Thorsten Recipes + +For running the recipes you need the [Thorsten-Voice](https://github.com/thorstenMueller/Thorsten-Voice) dataset. + +You can download it manually from [the official website](https://www.thorsten-voice.de/) or use ```download_thorsten_de.sh``` alternatively running any of the **train_modelX.py**scripts will download the dataset if not already present. + +Then, go to your desired model folder and run the training. + + Running Python files. (Choose the desired GPU ID for your run and set ```CUDA_VISIBLE_DEVICES```) + ```terminal + CUDA_VISIBLE_DEVICES="0" python train_modelX.py + ``` + +๐Ÿ’ก Note that these runs are just templates to help you start training your first model. They are not optimized for the best +result. Double-check the configurations and feel free to share your experiments to find better parameters together ๐Ÿ’ช. diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/align_tts/train_aligntts.py b/Indic-TTS/TTS/recipes/thorsten_DE/align_tts/train_aligntts.py new file mode 100644 index 0000000000000000000000000000000000000000..fbfe6de5a9009c566d9346276c0171af5150a3a9 --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/align_tts/train_aligntts.py @@ -0,0 +1,84 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.tts.configs.align_tts_config import AlignTTSConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.align_tts import AlignTTS +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor +from TTS.utils.downloaders import download_thorsten_de + +output_path = os.path.dirname(os.path.abspath(__file__)) + +# init configs +dataset_config = BaseDatasetConfig( + name="thorsten", meta_file_train="metadata.csv", path=os.path.join(output_path, "../thorsten-de/") +) + +# download dataset if not already present +if not os.path.exists(dataset_config.path): + print("Downloading dataset") + download_thorsten_de(os.path.split(os.path.abspath(dataset_config.path))[0]) + +config = AlignTTSConfig( + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=False, + phoneme_language="de", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=25, + print_eval=True, + mixed_precision=False, + test_sentences=[ + "Es hat mich viel Zeit gekostet ein Stimme zu entwickeln, jetzt wo ich sie habe werde ich nicht mehr schweigen.", + "Sei eine Stimme, kein Echo.", + "Es tut mir Leid David. Das kann ich leider nicht machen.", + "Dieser Kuchen ist groรŸartig. Er ist so lecker und feucht.", + "Vor dem 22. November 1963.", + ], + output_path=output_path, + datasets=[dataset_config], +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init model +model = AlignTTS(config, ap, tokenizer) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/download_thorsten_DE.sh b/Indic-TTS/TTS/recipes/thorsten_DE/download_thorsten_DE.sh new file mode 100644 index 0000000000000000000000000000000000000000..27809ce50741e4491338f1cf04cbff52df1e26d9 --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/download_thorsten_DE.sh @@ -0,0 +1,21 @@ +# create venv +python3 -m venv env +source .env/bin/activate +pip install pip --upgrade + +# download Thorsten_DE dataset +pip install gdown +gdown --id 1yKJM1LAOQpRVojKunD9r8WN_p5KzBxjc -O dataset.tgz +tar -xzf dataset.tgz + +# create train-val splits +shuf LJSpeech-1.1/metadata.csv > LJSpeech-1.1/metadata_shuf.csv +head -n 20668 LJSpeech-1.1/metadata_shuf.csv > LJSpeech-1.1/metadata_train.csv +tail -n 2000 LJSpeech-1.1/metadata_shuf.csv > LJSpeech-1.1/metadata_val.csv + +# rename dataset and remove archive +mv LJSpeech-1.1 thorsten-de +rm dataset.tgz + +# destry venv +rm -rf env diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/glow_tts/train_glowtts.py b/Indic-TTS/TTS/recipes/thorsten_DE/glow_tts/train_glowtts.py new file mode 100644 index 0000000000000000000000000000000000000000..cb8422d4f966a35436d5fbdc54233707f3d3569d --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/glow_tts/train_glowtts.py @@ -0,0 +1,97 @@ +import os + +# Trainer: Where the โœจ๏ธ happens. +# TrainingArgs: Defines the set of arguments of the Trainer. +from trainer import Trainer, TrainerArgs + +# GlowTTSConfig: all model related values for training, validating and testing. +from TTS.tts.configs.glow_tts_config import GlowTTSConfig + +# BaseDatasetConfig: defines name, formatter and path of the dataset. +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.glow_tts import GlowTTS +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor +from TTS.utils.downloaders import download_thorsten_de + +# we use the same path as this script as our training folder. +output_path = os.path.dirname(os.path.abspath(__file__)) + +# DEFINE DATASET CONFIG +# Set LJSpeech as our target dataset and define its path. +# You can also use a simple Dict to define the dataset and pass it to your custom formatter. +dataset_config = BaseDatasetConfig( + name="thorsten", meta_file_train="metadata.csv", path=os.path.join(output_path, "../thorsten-de/") +) + +# download dataset if not already present +if not os.path.exists(dataset_config.path): + print("Downloading dataset") + download_thorsten_de(os.path.split(os.path.abspath(dataset_config.path))[0]) + +# INITIALIZE THE TRAINING CONFIGURATION +# Configure the model. Every config class inherits the BaseTTSConfig. +config = GlowTTSConfig( + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="de", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=25, + print_eval=False, + mixed_precision=True, + test_sentences=[ + "Es hat mich viel Zeit gekostet ein Stimme zu entwickeln, jetzt wo ich sie habe werde ich nicht mehr schweigen.", + "Sei eine Stimme, kein Echo.", + "Es tut mir Leid David. Das kann ich leider nicht machen.", + "Dieser Kuchen ist groรŸartig. Er ist so lecker und feucht.", + "Vor dem 22. November 1963.", + ], + output_path=output_path, + datasets=[dataset_config], +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# INITIALIZE THE MODEL +# Models take a config object and a speaker manager as input +# Config defines the details of the model like the number of layers, the size of the embedding, etc. +# Speaker manager is used by multi-speaker models. +model = GlowTTS(config, ap, tokenizer, speaker_manager=None) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/hifigan/train_hifigan.py b/Indic-TTS/TTS/recipes/thorsten_DE/hifigan/train_hifigan.py new file mode 100644 index 0000000000000000000000000000000000000000..b476780211154266bf3683b8657b40481bba1366 --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/hifigan/train_hifigan.py @@ -0,0 +1,53 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.utils.audio import AudioProcessor +from TTS.utils.downloaders import download_thorsten_de +from TTS.vocoder.configs import HifiganConfig +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.models.gan import GAN + +output_path = os.path.dirname(os.path.abspath(__file__)) + +config = HifiganConfig( + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=5, + epochs=1000, + seq_len=8192, + pad_short=2000, + use_noise_augment=True, + eval_split_size=10, + print_step=25, + print_eval=False, + mixed_precision=False, + lr_gen=1e-4, + lr_disc=1e-4, + data_path=os.path.join(output_path, "../thorsten-de/wavs/"), + output_path=output_path, +) + +# download dataset if not already present +if not os.path.exists(config.data_path): + print("Downloading dataset") + download_path = os.path.abspath(os.path.join(os.path.abspath(config.data_path), "../../")) + download_thorsten_de(download_path) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + +# init model +model = GAN(config, ap) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/multiband_melgan/train_multiband_melgan.py b/Indic-TTS/TTS/recipes/thorsten_DE/multiband_melgan/train_multiband_melgan.py new file mode 100644 index 0000000000000000000000000000000000000000..2951b1495a78fa7f0ded9dbd4201af88206267cf --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/multiband_melgan/train_multiband_melgan.py @@ -0,0 +1,53 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.utils.audio import AudioProcessor +from TTS.utils.downloaders import download_thorsten_de +from TTS.vocoder.configs import MultibandMelganConfig +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.models.gan import GAN + +output_path = os.path.dirname(os.path.abspath(__file__)) + +config = MultibandMelganConfig( + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=5, + epochs=1000, + seq_len=8192, + pad_short=2000, + use_noise_augment=True, + eval_split_size=10, + print_step=25, + print_eval=False, + mixed_precision=False, + lr_gen=1e-4, + lr_disc=1e-4, + data_path=os.path.join(output_path, "../thorsten-de/wavs/"), + output_path=output_path, +) + +# download dataset if not already present +if not os.path.exists(config.data_path): + print("Downloading dataset") + download_path = os.path.abspath(os.path.join(os.path.abspath(config.data_path), "../../")) + download_thorsten_de(download_path) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + +# init model +model = GAN(config, ap) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/speedy_speech/train_speedy_speech.py b/Indic-TTS/TTS/recipes/thorsten_DE/speedy_speech/train_speedy_speech.py new file mode 100644 index 0000000000000000000000000000000000000000..1a4c8ec86dc51a58caa682528058a59c16924d70 --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/speedy_speech/train_speedy_speech.py @@ -0,0 +1,102 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config import BaseAudioConfig, BaseDatasetConfig +from TTS.tts.configs.speedy_speech_config import SpeedySpeechConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.forward_tts import ForwardTTS +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor +from TTS.utils.downloaders import download_thorsten_de + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig( + name="thorsten", meta_file_train="metadata.csv", path=os.path.join(output_path, "../thorsten-de/") +) + +# download dataset if not already present +if not os.path.exists(dataset_config.path): + print("Downloading dataset") + download_thorsten_de(os.path.split(os.path.abspath(dataset_config.path))[0]) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=60.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = SpeedySpeechConfig( + run_name="speedy_speech_thorsten-de", + audio=audio_config, + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + compute_input_seq_cache=True, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + min_audio_len=11050, # need to up min_audio_len to avois speedy speech error + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="de", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + precompute_num_workers=4, + print_step=50, + print_eval=False, + mixed_precision=False, + test_sentences=[ + "Es hat mich viel Zeit gekostet ein Stimme zu entwickeln, jetzt wo ich sie habe werde ich nicht mehr schweigen.", + "Sei eine Stimme, kein Echo.", + "Es tut mir Leid David. Das kann ich leider nicht machen.", + "Dieser Kuchen ist groรŸartig. Er ist so lecker und feucht.", + "Vor dem 22. November 1963.", + ], + sort_by_audio_len=True, + max_seq_len=500000, + output_path=output_path, + datasets=[dataset_config], +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init model +model = ForwardTTS(config, ap, tokenizer) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/tacotron2-DDC/train_tacotron_ddc.py b/Indic-TTS/TTS/recipes/thorsten_DE/tacotron2-DDC/train_tacotron_ddc.py new file mode 100644 index 0000000000000000000000000000000000000000..dac40ec8021430d7f769a1a3498c4b3366bdf57c --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/tacotron2-DDC/train_tacotron_ddc.py @@ -0,0 +1,108 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.configs.tacotron2_config import Tacotron2Config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.tacotron2 import Tacotron2 +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor +from TTS.utils.downloaders import download_thorsten_de + +# from TTS.tts.datasets.tokenizer import Tokenizer +output_path = os.path.dirname(os.path.abspath(__file__)) + +# init configs +dataset_config = BaseDatasetConfig( + name="thorsten", meta_file_train="metadata.csv", path=os.path.join(output_path, "../thorsten-de/") +) + +# download dataset if not already present +if not os.path.exists(dataset_config.path): + print("Downloading dataset") + download_thorsten_de(os.path.split(os.path.abspath(dataset_config.path))[0]) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=60.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = Tacotron2Config( # This is the config that is saved for the future use + audio=audio_config, + batch_size=40, # BS of 40 and max length of 10s will use about 20GB of GPU memory + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + r=6, + gradual_training=[[0, 6, 64], [10000, 4, 32], [50000, 3, 32], [100000, 2, 32]], + double_decoder_consistency=True, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="de", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + precompute_num_workers=8, + print_step=25, + print_eval=True, + mixed_precision=False, + test_sentences=[ + "Es hat mich viel Zeit gekostet ein Stimme zu entwickeln, jetzt wo ich sie habe werde ich nicht mehr schweigen.", + "Sei eine Stimme, kein Echo.", + "Es tut mir Leid David. Das kann ich leider nicht machen.", + "Dieser Kuchen ist groรŸartig. Er ist so lecker und feucht.", + "Vor dem 22. November 1963.", + ], + # max audio length of 10 seconds, feel free to increase if you got more than 20GB GPU memory + max_audio_len=22050 * 10, + output_path=output_path, + datasets=[dataset_config], +) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# INITIALIZE THE MODEL +# Models take a config object and a speaker manager as input +# Config defines the details of the model like the number of layers, the size of the embedding, etc. +# Speaker manager is used by multi-speaker models. +model = Tacotron2(config, ap, tokenizer, speaker_manager=None) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/univnet/train_univnet.py b/Indic-TTS/TTS/recipes/thorsten_DE/univnet/train_univnet.py new file mode 100644 index 0000000000000000000000000000000000000000..7d82093d627cd6eea19df00f8828b1abc90aca27 --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/univnet/train_univnet.py @@ -0,0 +1,52 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.utils.audio import AudioProcessor +from TTS.utils.downloaders import download_thorsten_de +from TTS.vocoder.configs import UnivnetConfig +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.models.gan import GAN + +output_path = os.path.dirname(os.path.abspath(__file__)) +config = UnivnetConfig( + batch_size=64, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + seq_len=8192, + pad_short=2000, + use_noise_augment=True, + eval_split_size=10, + print_step=25, + print_eval=False, + mixed_precision=False, + lr_gen=1e-4, + lr_disc=1e-4, + data_path=os.path.join(output_path, "../thorsten-de/wavs/"), + output_path=output_path, +) + +# download dataset if not already present +if not os.path.exists(config.data_path): + print("Downloading dataset") + download_path = os.path.abspath(os.path.join(os.path.abspath(config.data_path), "../../")) + download_thorsten_de(download_path) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + +# init model +model = GAN(config, ap) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/vits_tts/train_vits.py b/Indic-TTS/TTS/recipes/thorsten_DE/vits_tts/train_vits.py new file mode 100644 index 0000000000000000000000000000000000000000..86a7dfe68aed09b9ba67ee79c565ee1c592b5e0b --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/vits_tts/train_vits.py @@ -0,0 +1,105 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.configs.vits_config import VitsConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.vits import Vits +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor +from TTS.utils.downloaders import download_thorsten_de + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig( + name="thorsten", meta_file_train="metadata.csv", path=os.path.join(output_path, "../thorsten-de/") +) + +# download dataset if not already present +if not os.path.exists(dataset_config.path): + print("Downloading dataset") + download_thorsten_de(os.path.split(os.path.abspath(dataset_config.path))[0]) + +audio_config = BaseAudioConfig( + sample_rate=22050, + win_length=1024, + hop_length=256, + num_mels=80, + preemphasis=0.0, + ref_level_db=20, + log_func="np.log", + do_trim_silence=True, + trim_db=45, + mel_fmin=0, + mel_fmax=None, + spec_gain=1.0, + signal_norm=False, + do_amp_to_db_linear=False, +) + +config = VitsConfig( + audio=audio_config, + run_name="vits_thorsten-de", + batch_size=32, + eval_batch_size=16, + batch_group_size=5, + num_loader_workers=0, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="de", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + compute_input_seq_cache=True, + print_step=25, + print_eval=True, + mixed_precision=True, + test_sentences=[ + "Es hat mich viel Zeit gekostet ein Stimme zu entwickeln, jetzt wo ich sie habe werde ich nicht mehr schweigen.", + "Sei eine Stimme, kein Echo.", + "Es tut mir Leid David. Das kann ich leider nicht machen.", + "Dieser Kuchen ist groรŸartig. Er ist so lecker und feucht.", + "Vor dem 22. November 1963.", + ], + output_path=output_path, + datasets=[dataset_config], +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# config is updated with the default characters if not defined in the config. +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init model +model = Vits(config, ap, tokenizer, speaker_manager=None) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), + config, + output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/wavegrad/train_wavegrad.py b/Indic-TTS/TTS/recipes/thorsten_DE/wavegrad/train_wavegrad.py new file mode 100644 index 0000000000000000000000000000000000000000..e9d2c95c006f332bb05cb6b33577dece2285809f --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/wavegrad/train_wavegrad.py @@ -0,0 +1,56 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.utils.audio import AudioProcessor +from TTS.utils.downloaders import download_thorsten_de +from TTS.vocoder.configs import WavegradConfig +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.models.wavegrad import Wavegrad + +output_path = os.path.dirname(os.path.abspath(__file__)) +config = WavegradConfig( + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + seq_len=6144, + pad_short=2000, + use_noise_augment=True, + eval_split_size=50, + print_step=50, + print_eval=True, + mixed_precision=False, + data_path=os.path.join(output_path, "../thorsten-de/wavs/"), + output_path=output_path, +) + +# download dataset if not already present +if not os.path.exists(config.data_path): + print("Downloading dataset") + download_path = os.path.abspath(os.path.join(os.path.abspath(config.data_path), "../../")) + download_thorsten_de(download_path) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + +# init model +model = Wavegrad(config) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), + config, + output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, + training_assets={"audio_processor": ap}, +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/thorsten_DE/wavernn/train_wavernn.py b/Indic-TTS/TTS/recipes/thorsten_DE/wavernn/train_wavernn.py new file mode 100644 index 0000000000000000000000000000000000000000..f2a283f745e9772856dd605798e87bd167053de5 --- /dev/null +++ b/Indic-TTS/TTS/recipes/thorsten_DE/wavernn/train_wavernn.py @@ -0,0 +1,58 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.utils.audio import AudioProcessor +from TTS.utils.downloaders import download_thorsten_de +from TTS.vocoder.configs import WavernnConfig +from TTS.vocoder.datasets.preprocess import load_wav_data +from TTS.vocoder.models.wavernn import Wavernn + +output_path = os.path.dirname(os.path.abspath(__file__)) +config = WavernnConfig( + batch_size=64, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=10000, + seq_len=1280, + pad_short=2000, + use_noise_augment=False, + eval_split_size=10, + print_step=25, + print_eval=True, + mixed_precision=False, + lr=1e-4, + grad_clip=4, + data_path=os.path.join(output_path, "../thorsten-de/wavs/"), + output_path=output_path, +) + +# download dataset if not already present +if not os.path.exists(config.data_path): + print("Downloading dataset") + download_path = os.path.abspath(os.path.join(os.path.abspath(config.data_path), "../../")) + download_thorsten_de(download_path) + +# init audio processor +ap = AudioProcessor(**config.audio.to_dict()) + +# load training samples +eval_samples, train_samples = load_wav_data(config.data_path, config.eval_split_size) + +# init model +model = Wavernn(config) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), + config, + output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, + training_assets={"audio_processor": ap}, +) +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/vctk/download_vctk.sh b/Indic-TTS/TTS/recipes/vctk/download_vctk.sh new file mode 100644 index 0000000000000000000000000000000000000000..c0cea7438281e02795adeeefe96a195b0b89b923 --- /dev/null +++ b/Indic-TTS/TTS/recipes/vctk/download_vctk.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# take the scripts's parent's directory to prefix all the output paths. +RUN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +echo $RUN_DIR +# download LJSpeech dataset +wget https://datashare.ed.ac.uk/bitstream/handle/10283/3443/VCTK-Corpus-0.92.zip -O VCTK-Corpus-0.92.zip +# extract +mkdir VCTK +unzip VCTK-Corpus-0.92 -d VCTK +# create train-val splits +mv VCTK $RUN_DIR/recipes/vctk/ +rm VCTK-Corpus-0.92.zip diff --git a/Indic-TTS/TTS/recipes/vctk/fast_pitch/train_fast_pitch.py b/Indic-TTS/TTS/recipes/vctk/fast_pitch/train_fast_pitch.py new file mode 100644 index 0000000000000000000000000000000000000000..c39932daaae28f47b9223543da809950e366cbb4 --- /dev/null +++ b/Indic-TTS/TTS/recipes/vctk/fast_pitch/train_fast_pitch.py @@ -0,0 +1,98 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config import BaseAudioConfig, BaseDatasetConfig +from TTS.tts.configs.fast_pitch_config import FastPitchConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.forward_tts import ForwardTTS +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig(name="vctk", meta_file_train="", path=os.path.join(output_path, "../VCTK/")) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=23.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = FastPitchConfig( + run_name="fast_pitch_ljspeech", + audio=audio_config, + batch_size=32, + eval_batch_size=16, + num_loader_workers=8, + num_eval_loader_workers=4, + compute_input_seq_cache=True, + precompute_num_workers=4, + compute_f0=True, + f0_cache_path=os.path.join(output_path, "f0_cache"), + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=50, + print_eval=False, + mixed_precision=False, + min_text_len=0, + max_text_len=500, + min_audio_len=0, + max_audio_len=500000, + output_path=output_path, + datasets=[dataset_config], + use_speaker_embedding=True, +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init speaker manager for multi-speaker training +# it maps speaker-id to speaker-name in the model and data-loader +speaker_manager = SpeakerManager() +speaker_manager.set_ids_from_data(train_samples + eval_samples, parse_key="speaker_name") +config.model_args.num_speakers = speaker_manager.num_speakers + +# init model +model = ForwardTTS(config, ap, tokenizer, speaker_manager=speaker_manager) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/vctk/fast_speech/train_fast_speech.py b/Indic-TTS/TTS/recipes/vctk/fast_speech/train_fast_speech.py new file mode 100644 index 0000000000000000000000000000000000000000..a3249de1cf6120f5c5c9d0c317c3bf10b7115162 --- /dev/null +++ b/Indic-TTS/TTS/recipes/vctk/fast_speech/train_fast_speech.py @@ -0,0 +1,96 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config import BaseAudioConfig, BaseDatasetConfig +from TTS.tts.configs.fast_speech_config import FastSpeechConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.forward_tts import ForwardTTS +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig(name="vctk", meta_file_train="", path=os.path.join(output_path, "../VCTK/")) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=23.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = FastSpeechConfig( + run_name="fast_speech_vctk", + audio=audio_config, + batch_size=32, + eval_batch_size=16, + num_loader_workers=8, + num_eval_loader_workers=4, + compute_input_seq_cache=True, + precompute_num_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=50, + print_eval=False, + mixed_precision=False, + min_text_len=0, + max_text_len=500, + min_audio_len=0, + max_audio_len=500000, + output_path=output_path, + datasets=[dataset_config], + use_speaker_embedding=True, +) + +## INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init speaker manager for multi-speaker training +# it maps speaker-id to speaker-name in the model and data-loader +speaker_manager = SpeakerManager() +speaker_manager.set_ids_from_data(train_samples + eval_samples, parse_key="speaker_name") +config.model_args.num_speakers = speaker_manager.num_speakers + +# init model +model = ForwardTTS(config, ap, tokenizer, speaker_manager=speaker_manager) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/vctk/glow_tts/train_glow_tts.py b/Indic-TTS/TTS/recipes/vctk/glow_tts/train_glow_tts.py new file mode 100644 index 0000000000000000000000000000000000000000..23c02efc791258c8719faed1c9b1dbddef7f45aa --- /dev/null +++ b/Indic-TTS/TTS/recipes/vctk/glow_tts/train_glow_tts.py @@ -0,0 +1,96 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.glow_tts_config import GlowTTSConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.glow_tts import GlowTTS +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +# set experiment paths +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_path = os.path.join(output_path, "../VCTK/") + +# download the dataset if not downloaded +if not os.path.exists(dataset_path): + from TTS.utils.downloaders import download_vctk + + download_vctk(dataset_path) + +# define dataset config +dataset_config = BaseDatasetConfig(name="vctk", meta_file_train="", path=dataset_path) + +# define audio config +# โ— resample the dataset externally using `TTS/bin/resample.py` and set `resample=False` for faster training +audio_config = BaseAudioConfig(sample_rate=22050, resample=True, do_trim_silence=True, trim_db=23.0) + +# define model config +config = GlowTTSConfig( + batch_size=64, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + precompute_num_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=25, + print_eval=False, + mixed_precision=True, + output_path=output_path, + datasets=[dataset_config], + use_speaker_embedding=True, + min_text_len=0, + max_text_len=500, + min_audio_len=0, + max_audio_len=500000, +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init speaker manager for multi-speaker training +# it maps speaker-id to speaker-name in the model and data-loader +speaker_manager = SpeakerManager() +speaker_manager.set_ids_from_data(train_samples + eval_samples, parse_key="speaker_name") +config.num_speakers = speaker_manager.num_speakers + +# init model +model = GlowTTS(config, ap, tokenizer, speaker_manager=speaker_manager) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/vctk/speedy_speech/train_speedy_speech.py b/Indic-TTS/TTS/recipes/vctk/speedy_speech/train_speedy_speech.py new file mode 100644 index 0000000000000000000000000000000000000000..bcd0105af8bb0b4c9e4a45d6ee75254a4a9b487b --- /dev/null +++ b/Indic-TTS/TTS/recipes/vctk/speedy_speech/train_speedy_speech.py @@ -0,0 +1,96 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config import BaseAudioConfig, BaseDatasetConfig +from TTS.tts.configs.speedy_speech_config import SpeedySpeechConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.forward_tts import ForwardTTS +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig(name="vctk", meta_file_train="", path=os.path.join(output_path, "../VCTK/")) + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=23.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = SpeedySpeechConfig( + run_name="fast_pitch_ljspeech", + audio=audio_config, + batch_size=32, + eval_batch_size=16, + num_loader_workers=8, + num_eval_loader_workers=4, + compute_input_seq_cache=True, + precompute_num_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=50, + print_eval=False, + mixed_precision=False, + min_text_len=0, + max_text_len=500, + min_audio_len=0, + max_audio_len=500000, + output_path=output_path, + datasets=[dataset_config], + use_speaker_embedding=True, +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init speaker manager for multi-speaker training +# it maps speaker-id to speaker-name in the model and data-loader +speaker_manager = SpeakerManager() +speaker_manager.set_ids_from_data(train_samples + eval_samples, parse_key="speaker_name") +config.model_args.num_speakers = speaker_manager.num_speakers + +# init model +model = ForwardTTS(config, ap, tokenizer, speaker_manager) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/vctk/tacotron-DDC/train_tacotron-DDC.py b/Indic-TTS/TTS/recipes/vctk/tacotron-DDC/train_tacotron-DDC.py new file mode 100644 index 0000000000000000000000000000000000000000..36e28ed7690074286fa3db0bb4903d8c470d98f4 --- /dev/null +++ b/Indic-TTS/TTS/recipes/vctk/tacotron-DDC/train_tacotron-DDC.py @@ -0,0 +1,98 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.configs.tacotron_config import TacotronConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.tacotron import Tacotron +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig(name="vctk", meta_file_train="", path=os.path.join(output_path, "../VCTK/")) + +audio_config = BaseAudioConfig( + sample_rate=22050, + resample=True, # Resample to 22050 Hz. It slows down training. Use `TTS/bin/resample.py` to pre-resample and set this False for faster training. + do_trim_silence=True, + trim_db=23.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = TacotronConfig( # This is the config that is saved for the future use + audio=audio_config, + batch_size=48, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + precompute_num_workers=4, + run_eval=True, + test_delay_epochs=-1, + r=6, + gradual_training=[[0, 6, 48], [10000, 4, 32], [50000, 3, 32], [100000, 2, 32]], + double_decoder_consistency=True, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=25, + print_eval=False, + mixed_precision=True, + min_text_len=0, + max_text_len=500, + min_audio_len=0, + max_audio_len=44000 * 10, # 44k is the original sampling rate before resampling, corresponds to 10 seconds of audio + output_path=output_path, + datasets=[dataset_config], + use_speaker_embedding=True, # set this to enable multi-sepeaker training +) + +## INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init speaker manager for multi-speaker training +# it mainly handles speaker-id to speaker-name for the model and the data-loader +speaker_manager = SpeakerManager() +speaker_manager.set_ids_from_data(train_samples + eval_samples, parse_key="speaker_name") + +# init model +model = Tacotron(config, ap, tokenizer, speaker_manager) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/vctk/tacotron2-DDC/train_tacotron2-ddc.py b/Indic-TTS/TTS/recipes/vctk/tacotron2-DDC/train_tacotron2-ddc.py new file mode 100644 index 0000000000000000000000000000000000000000..d04d91c066449a059eae96055e23cb3c8364c54a --- /dev/null +++ b/Indic-TTS/TTS/recipes/vctk/tacotron2-DDC/train_tacotron2-ddc.py @@ -0,0 +1,104 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.configs.tacotron2_config import Tacotron2Config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.tacotron2 import Tacotron2 +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig(name="vctk", meta_file_train="", path=os.path.join(output_path, "../VCTK/")) + +audio_config = BaseAudioConfig( + sample_rate=22050, + resample=False, # Resample to 22050 Hz. It slows down training. Use `TTS/bin/resample.py` to pre-resample and set this False for faster training. + do_trim_silence=True, + trim_db=23.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + preemphasis=0.0, +) + +config = Tacotron2Config( # This is the config that is saved for the future use + audio=audio_config, + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + r=2, + # gradual_training=[[0, 6, 48], [10000, 4, 32], [50000, 3, 32], [100000, 2, 32]], + double_decoder_consistency=True, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=150, + print_eval=False, + mixed_precision=True, + min_text_len=0, + max_text_len=500, + min_audio_len=0, + max_audio_len=44000 * 10, + output_path=output_path, + datasets=[dataset_config], + use_speaker_embedding=True, # set this to enable multi-sepeaker training + decoder_ssim_alpha=0.0, # disable ssim losses that causes NaN for some runs. + postnet_ssim_alpha=0.0, + postnet_diff_spec_alpha=0.0, + decoder_diff_spec_alpha=0.0, + attention_norm="softmax", + optimizer="Adam", + lr_scheduler=None, + lr=3e-5, +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init speaker manager for multi-speaker training +# it mainly handles speaker-id to speaker-name for the model and the data-loader +speaker_manager = SpeakerManager() +speaker_manager.set_ids_from_data(train_samples + eval_samples, parse_key="speaker_name") + +# init model +model = Tacotron2(config, ap, tokenizer, speaker_manager) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/vctk/tacotron2/train_tacotron2.py b/Indic-TTS/TTS/recipes/vctk/tacotron2/train_tacotron2.py new file mode 100644 index 0000000000000000000000000000000000000000..5a0e157a937c7211314a6f25f0e34451109fec0b --- /dev/null +++ b/Indic-TTS/TTS/recipes/vctk/tacotron2/train_tacotron2.py @@ -0,0 +1,104 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.configs.tacotron2_config import Tacotron2Config +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.tacotron2 import Tacotron2 +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig(name="vctk", meta_file_train="", path=os.path.join(output_path, "../VCTK/")) + +audio_config = BaseAudioConfig( + sample_rate=22050, + resample=False, # Resample to 22050 Hz. It slows down training. Use `TTS/bin/resample.py` to pre-resample and set this False for faster training. + do_trim_silence=True, + trim_db=23.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + preemphasis=0.0, +) + +config = Tacotron2Config( # This is the config that is saved for the future use + audio=audio_config, + batch_size=32, + eval_batch_size=16, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + r=2, + # gradual_training=[[0, 6, 48], [10000, 4, 32], [50000, 3, 32], [100000, 2, 32]], + double_decoder_consistency=False, + epochs=1000, + text_cleaner="phoneme_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + print_step=150, + print_eval=False, + mixed_precision=True, + min_text_len=0, + max_text_len=500, + min_audio_len=0, + max_audio_len=44000 * 10, + output_path=output_path, + datasets=[dataset_config], + use_speaker_embedding=True, # set this to enable multi-sepeaker training + decoder_ssim_alpha=0.0, # disable ssim losses that causes NaN for some runs. + postnet_ssim_alpha=0.0, + postnet_diff_spec_alpha=0.0, + decoder_diff_spec_alpha=0.0, + attention_norm="softmax", + optimizer="Adam", + lr_scheduler=None, + lr=3e-5, +) + +## INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# If characters are not defined in the config, default characters are passed to the config +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init speaker manager for multi-speaker training +# it mainly handles speaker-id to speaker-name for the model and the data-loader +speaker_manager = SpeakerManager() +speaker_manager.set_ids_from_data(train_samples + eval_samples, parse_key="speaker_name") + +# init model +model = Tacotron2(config, ap, tokenizer, speaker_manager) + +# INITIALIZE THE TRAINER +# Trainer provides a generic API to train all the ๐ŸธTTS models with all its perks like mixed-precision training, +# distributed training, etc. +trainer = Trainer( + TrainerArgs(), config, output_path, model=model, train_samples=train_samples, eval_samples=eval_samples +) + +# AND... 3,2,1... ๐Ÿš€ +trainer.fit() diff --git a/Indic-TTS/TTS/recipes/vctk/vits/train_vits.py b/Indic-TTS/TTS/recipes/vctk/vits/train_vits.py new file mode 100644 index 0000000000000000000000000000000000000000..88fd7de9a19c75886ab1dc37e8ceebb5ac438978 --- /dev/null +++ b/Indic-TTS/TTS/recipes/vctk/vits/train_vits.py @@ -0,0 +1,107 @@ +import os + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.shared_configs import BaseDatasetConfig +from TTS.tts.configs.vits_config import VitsConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.models.vits import Vits, VitsArgs +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +output_path = os.path.dirname(os.path.abspath(__file__)) +dataset_config = BaseDatasetConfig( + name="vctk", meta_file_train="", language="en-us", path=os.path.join(output_path, "../VCTK/") +) + + +audio_config = BaseAudioConfig( + sample_rate=22050, + win_length=1024, + hop_length=256, + num_mels=80, + preemphasis=0.0, + ref_level_db=20, + log_func="np.log", + do_trim_silence=True, + trim_db=23.0, + mel_fmin=0, + mel_fmax=None, + spec_gain=1.0, + signal_norm=False, + do_amp_to_db_linear=False, + resample=True, +) + +vitsArgs = VitsArgs( + use_speaker_embedding=True, +) + +config = VitsConfig( + model_args=vitsArgs, + audio=audio_config, + run_name="vits_vctk", + batch_size=32, + eval_batch_size=16, + batch_group_size=5, + num_loader_workers=4, + num_eval_loader_workers=4, + run_eval=True, + test_delay_epochs=-1, + epochs=1000, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en", + phoneme_cache_path=os.path.join(output_path, "phoneme_cache"), + compute_input_seq_cache=True, + print_step=25, + print_eval=False, + mixed_precision=True, + max_text_len=325, # change this if you have a larger VRAM than 16GB + output_path=output_path, + datasets=[dataset_config], +) + +# INITIALIZE THE AUDIO PROCESSOR +# Audio processor is used for feature extraction and audio I/O. +# It mainly serves to the dataloader and the training loggers. +ap = AudioProcessor.init_from_config(config) + +# INITIALIZE THE TOKENIZER +# Tokenizer is used to convert text to sequences of token IDs. +# config is updated with the default characters if not defined in the config. +tokenizer, config = TTSTokenizer.init_from_config(config) + +# LOAD DATA SAMPLES +# Each sample is a list of ```[text, audio_file_path, speaker_name]``` +# You can define your custom sample loader returning the list of samples. +# Or define your custom formatter and pass it to the `load_tts_samples`. +# Check `TTS.tts.datasets.load_tts_samples` for more details. +train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, +) + +# init speaker manager for multi-speaker training +# it maps speaker-id to speaker-name in the model and data-loader +speaker_manager = SpeakerManager() +speaker_manager.set_ids_from_data(train_samples + eval_samples, parse_key="speaker_name") +config.model_args.num_speakers = speaker_manager.num_speakers + +# init model +model = Vits(config, ap, tokenizer, speaker_manager) + +# init the trainer and ๐Ÿš€ +trainer = Trainer( + TrainerArgs(), + config, + output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, +) +trainer.fit() diff --git a/Indic-TTS/TTS/requirements.dev.txt b/Indic-TTS/TTS/requirements.dev.txt new file mode 100644 index 0000000000000000000000000000000000000000..8c674727d3da0bd22788be40496d7578a315c2eb --- /dev/null +++ b/Indic-TTS/TTS/requirements.dev.txt @@ -0,0 +1,5 @@ +black +coverage +isort +nose2 +pylint==2.10.2 diff --git a/Indic-TTS/TTS/requirements.notebooks.txt b/Indic-TTS/TTS/requirements.notebooks.txt new file mode 100644 index 0000000000000000000000000000000000000000..65d3f642c9dcaf109cd8697beb8672f53a81dd59 --- /dev/null +++ b/Indic-TTS/TTS/requirements.notebooks.txt @@ -0,0 +1 @@ +bokeh==1.4.0 \ No newline at end of file diff --git a/Indic-TTS/TTS/requirements.txt b/Indic-TTS/TTS/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..b3acfeca4ee0cff9f1e11a667b4a53afb3106ba8 --- /dev/null +++ b/Indic-TTS/TTS/requirements.txt @@ -0,0 +1,36 @@ +# core deps +numpy==1.21.6 +cython==0.29.28 +scipy>=1.4.0 +torch>=1.7 +torchaudio +soundfile +librosa==0.8.0 +numba==0.55.1 +inflect +tqdm +anyascii +pyyaml +fsspec>=2021.04.0 +# deps for examples +flask +# deps for inference +pysbd +# deps for notebooks +umap-learn==0.5.1 +pandas +# deps for training +matplotlib +pyworld==0.2.10 # > 0.2.10 is not p3.10.x compatible +# coqui stack +trainer +# config management +coqpit>=0.0.16 +# chinese g2p deps +jieba +pypinyin +# japanese g2p deps +mecab-python3==1.0.5 +unidic-lite==1.0.8 +# gruut+supported langs +gruut[cs,de,es,fr,it,nl,pt,ru,sv]==2.2.3 diff --git a/Indic-TTS/TTS/run_bash_tests.sh b/Indic-TTS/TTS/run_bash_tests.sh new file mode 100644 index 0000000000000000000000000000000000000000..feb9082bd3f566ca0b3636fc249bade741e19536 --- /dev/null +++ b/Indic-TTS/TTS/run_bash_tests.sh @@ -0,0 +1,8 @@ +set -e +TF_CPP_MIN_LOG_LEVEL=3 + +# runtime bash based tests +# TODO: move these to python +./tests/bash_tests/test_demo_server.sh && \ +./tests/bash_tests/test_resample.sh && \ +./tests/bash_tests/test_compute_statistics.sh diff --git a/Indic-TTS/TTS/setup.cfg b/Indic-TTS/TTS/setup.cfg new file mode 100644 index 0000000000000000000000000000000000000000..2344c8b289944835fe78c6ecaf467c1197b8e2e7 --- /dev/null +++ b/Indic-TTS/TTS/setup.cfg @@ -0,0 +1,8 @@ +[build_py] +build-lib=temp_build + +[bdist_wheel] +bdist-dir=temp_build + +[install_lib] +build-dir=temp_build diff --git a/Indic-TTS/TTS/setup.py b/Indic-TTS/TTS/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..3c8609499dd959417b8c6b2fb84f2a7f4f63e04a --- /dev/null +++ b/Indic-TTS/TTS/setup.py @@ -0,0 +1,138 @@ +#!/usr/bin/env python +# ,*++++++*, ,*++++++*, +# *++. .+++ *++. .++* +# *+* ,++++* *+* *+* ,++++, *+* +# ,+, .++++++++++* ,++,,,,*+, ,++++++++++. *+, +# *+. .++++++++++++..++ *+.,++++++++++++. .+* +# .+* ++++++++++++.*+, .+*.++++++++++++ *+, +# .++ *++++++++* ++, .++.*++++++++* ++, +# ,+++*. . .*++, ,++*. .*+++* +# *+, .,*++**. .**++**. ,+* +# .+* *+, +# *+. Coqui .+* +# *+* +++ TTS +++ *+* +# .+++*. . . *+++. +# ,+* *+++*... ...*+++* *+, +# .++. .""""+++++++****+++++++"""". ++. +# ,++. .++, +# .++* *++. +# *+++, ,+++* +# .,*++++::::::++++*,. +# `````` + +import os +import subprocess +import sys +from distutils.version import LooseVersion + +import numpy +import setuptools.command.build_py +import setuptools.command.develop +from Cython.Build import cythonize +from setuptools import Extension, find_packages, setup + +if LooseVersion(sys.version) < LooseVersion("3.7") or LooseVersion(sys.version) >= LooseVersion("3.11"): + raise RuntimeError("TTS requires python >= 3.7 and < 3.11 " "but your Python version is {}".format(sys.version)) + + +cwd = os.path.dirname(os.path.abspath(__file__)) +with open(os.path.join(cwd, "TTS", "VERSION")) as fin: + version = fin.read().strip() + + +class build_py(setuptools.command.build_py.build_py): # pylint: disable=too-many-ancestors + def run(self): + setuptools.command.build_py.build_py.run(self) + + +class develop(setuptools.command.develop.develop): + def run(self): + setuptools.command.develop.develop.run(self) + + +# The documentation for this feature is in server/README.md +package_data = ["TTS/server/templates/*"] + + +def pip_install(package_name): + subprocess.call([sys.executable, "-m", "pip", "install", package_name]) + + +requirements = open(os.path.join(cwd, "requirements.txt"), "r").readlines() +with open(os.path.join(cwd, "requirements.notebooks.txt"), "r") as f: + requirements_notebooks = f.readlines() +with open(os.path.join(cwd, "requirements.dev.txt"), "r") as f: + requirements_dev = f.readlines() +requirements_all = requirements_dev + requirements_notebooks + +with open("README.md", "r", encoding="utf-8") as readme_file: + README = readme_file.read() + +exts = [ + Extension( + name="TTS.tts.utils.monotonic_align.core", + sources=["TTS/tts/utils/monotonic_align/core.pyx"], + ) +] +setup( + name="TTS", + version=version, + url="https://github.com/coqui-ai/TTS", + author="Eren Gรถlge", + author_email="egolge@coqui.ai", + description="Deep learning for Text to Speech by Coqui.", + long_description=README, + long_description_content_type="text/markdown", + license="MPL-2.0", + # cython + include_dirs=numpy.get_include(), + ext_modules=cythonize(exts, language_level=3), + # ext_modules=find_cython_extensions(), + # package + include_package_data=True, + packages=find_packages(include=["TTS*"]), + package_data={ + "TTS": [ + "VERSION", + ] + }, + project_urls={ + "Documentation": "https://github.com/coqui-ai/TTS/wiki", + "Tracker": "https://github.com/coqui-ai/TTS/issues", + "Repository": "https://github.com/coqui-ai/TTS", + "Discussions": "https://github.com/coqui-ai/TTS/discussions", + }, + cmdclass={ + "build_py": build_py, + "develop": develop, + # 'build_ext': build_ext + }, + install_requires=requirements, + extras_require={ + "all": requirements_all, + "dev": requirements_dev, + "notebooks": requirements_notebooks, + }, + python_requires=">=3.7.0, <3.11", + entry_points={"console_scripts": ["tts=TTS.bin.synthesize:main", "tts-server = TTS.server.server:main"]}, + classifiers=[ + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Development Status :: 3 - Alpha", + "Intended Audience :: Science/Research", + "Intended Audience :: Developers", + "Operating System :: POSIX :: Linux", + "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", + "Topic :: Software Development", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: Multimedia :: Sound/Audio :: Speech", + "Topic :: Multimedia :: Sound/Audio", + "Topic :: Multimedia", + "Topic :: Scientific/Engineering :: Artificial Intelligence", + ], + zip_safe=False, +) diff --git a/Indic-TTS/TTS/tests/__init__.py b/Indic-TTS/TTS/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8906c8c796c5c321398b1ea803e972965597923b --- /dev/null +++ b/Indic-TTS/TTS/tests/__init__.py @@ -0,0 +1,56 @@ +import os + +from TTS.config import BaseDatasetConfig +from TTS.utils.generic_utils import get_cuda + + +def get_device_id(): + use_cuda, _ = get_cuda() + if use_cuda: + if "CUDA_VISIBLE_DEVICES" in os.environ and os.environ["CUDA_VISIBLE_DEVICES"] != "": + GPU_ID = os.environ["CUDA_VISIBLE_DEVICES"].split(",")[0] + else: + GPU_ID = "0" + else: + GPU_ID = "" + return GPU_ID + + +def get_tests_path(): + """Returns the path to the test directory.""" + return os.path.dirname(os.path.realpath(__file__)) + + +def get_tests_input_path(): + """Returns the path to the test data directory.""" + return os.path.join(get_tests_path(), "inputs") + + +def get_tests_data_path(): + """Returns the path to the test data directory.""" + return os.path.join(get_tests_path(), "data") + + +def get_tests_output_path(): + """Returns the path to the directory for test outputs.""" + return os.path.join(get_tests_path(), "outputs") + + +def run_cli(command): + exit_status = os.system(command) + assert exit_status == 0, f" [!] command `{command}` failed." + + +def get_test_data_config(): + return BaseDatasetConfig(name="ljspeech", path="tests/data/ljspeech/", meta_file_train="metadata.csv") + + +def assertHasAttr(test_obj, obj, intendedAttr): + # from https://stackoverflow.com/questions/48078636/pythons-unittest-lacks-an-asserthasattr-method-what-should-i-use-instead + testBool = hasattr(obj, intendedAttr) + test_obj.assertTrue(testBool, msg=f"obj lacking an attribute. obj: {obj}, intendedAttr: {intendedAttr}") + + +def assertHasNotAttr(test_obj, obj, intendedAttr): + testBool = hasattr(obj, intendedAttr) + test_obj.assertFalse(testBool, msg=f"obj should not have an attribute. obj: {obj}, intendedAttr: {intendedAttr}") diff --git a/Indic-TTS/TTS/tests/aux_tests/__init__.py b/Indic-TTS/TTS/tests/aux_tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/tests/aux_tests/test_audio_processor.py b/Indic-TTS/TTS/tests/aux_tests/test_audio_processor.py new file mode 100644 index 0000000000000000000000000000000000000000..566116923be25d2c5e8daf50a1bad3833fa14950 --- /dev/null +++ b/Indic-TTS/TTS/tests/aux_tests/test_audio_processor.py @@ -0,0 +1,190 @@ +import os +import unittest + +from tests import get_tests_input_path, get_tests_output_path, get_tests_path +from TTS.config import BaseAudioConfig +from TTS.utils.audio import AudioProcessor + +TESTS_PATH = get_tests_path() +OUT_PATH = os.path.join(get_tests_output_path(), "audio_tests") +WAV_FILE = os.path.join(get_tests_input_path(), "example_1.wav") + +os.makedirs(OUT_PATH, exist_ok=True) +conf = BaseAudioConfig(mel_fmax=8000) + + +# pylint: disable=protected-access +class TestAudio(unittest.TestCase): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.ap = AudioProcessor(**conf) + + def test_audio_synthesis(self): + """1. load wav + 2. set normalization parameters + 3. extract mel-spec + 4. invert to wav and save the output + """ + print(" > Sanity check for the process wav -> mel -> wav") + + def _test(max_norm, signal_norm, symmetric_norm, clip_norm): + self.ap.max_norm = max_norm + self.ap.signal_norm = signal_norm + self.ap.symmetric_norm = symmetric_norm + self.ap.clip_norm = clip_norm + wav = self.ap.load_wav(WAV_FILE) + mel = self.ap.melspectrogram(wav) + wav_ = self.ap.inv_melspectrogram(mel) + file_name = "/audio_test-melspec_max_norm_{}-signal_norm_{}-symmetric_{}-clip_norm_{}.wav".format( + max_norm, signal_norm, symmetric_norm, clip_norm + ) + print(" | > Creating wav file at : ", file_name) + self.ap.save_wav(wav_, OUT_PATH + file_name) + + # maxnorm = 1.0 + _test(1.0, False, False, False) + _test(1.0, True, False, False) + _test(1.0, True, True, False) + _test(1.0, True, False, True) + _test(1.0, True, True, True) + # maxnorm = 4.0 + _test(4.0, False, False, False) + _test(4.0, True, False, False) + _test(4.0, True, True, False) + _test(4.0, True, False, True) + _test(4.0, True, True, True) + + def test_normalize(self): + """Check normalization and denormalization for range values and consistency""" + print(" > Testing normalization and denormalization.") + wav = self.ap.load_wav(WAV_FILE) + wav = self.ap.sound_norm(wav) # normalize audio to get abetter normalization range below. + self.ap.signal_norm = False + x = self.ap.melspectrogram(wav) + x_old = x + + self.ap.signal_norm = True + self.ap.symmetric_norm = False + self.ap.clip_norm = False + self.ap.max_norm = 4.0 + x_norm = self.ap.normalize(x) + print( + f" > MaxNorm: {self.ap.max_norm}, ClipNorm:{self.ap.clip_norm}, SymmetricNorm:{self.ap.symmetric_norm}, SignalNorm:{self.ap.signal_norm} Range-> {x_norm.max()} -- {x_norm.min()}" + ) + assert (x_old - x).sum() == 0 + # check value range + assert x_norm.max() <= self.ap.max_norm + 1, x_norm.max() + assert x_norm.min() >= 0 - 1, x_norm.min() + # check denorm. + x_ = self.ap.denormalize(x_norm) + assert (x - x_).sum() < 1e-3, (x - x_).mean() + + self.ap.signal_norm = True + self.ap.symmetric_norm = False + self.ap.clip_norm = True + self.ap.max_norm = 4.0 + x_norm = self.ap.normalize(x) + print( + f" > MaxNorm: {self.ap.max_norm}, ClipNorm:{self.ap.clip_norm}, SymmetricNorm:{self.ap.symmetric_norm}, SignalNorm:{self.ap.signal_norm} Range-> {x_norm.max()} -- {x_norm.min()}" + ) + + assert (x_old - x).sum() == 0 + # check value range + assert x_norm.max() <= self.ap.max_norm, x_norm.max() + assert x_norm.min() >= 0, x_norm.min() + # check denorm. + x_ = self.ap.denormalize(x_norm) + assert (x - x_).sum() < 1e-3, (x - x_).mean() + + self.ap.signal_norm = True + self.ap.symmetric_norm = True + self.ap.clip_norm = False + self.ap.max_norm = 4.0 + x_norm = self.ap.normalize(x) + print( + f" > MaxNorm: {self.ap.max_norm}, ClipNorm:{self.ap.clip_norm}, SymmetricNorm:{self.ap.symmetric_norm}, SignalNorm:{self.ap.signal_norm} Range-> {x_norm.max()} -- {x_norm.min()}" + ) + + assert (x_old - x).sum() == 0 + # check value range + assert x_norm.max() <= self.ap.max_norm + 1, x_norm.max() + assert x_norm.min() >= -self.ap.max_norm - 2, x_norm.min() # pylint: disable=invalid-unary-operand-type + assert x_norm.min() <= 0, x_norm.min() + # check denorm. + x_ = self.ap.denormalize(x_norm) + assert (x - x_).sum() < 1e-3, (x - x_).mean() + + self.ap.signal_norm = True + self.ap.symmetric_norm = True + self.ap.clip_norm = True + self.ap.max_norm = 4.0 + x_norm = self.ap.normalize(x) + print( + f" > MaxNorm: {self.ap.max_norm}, ClipNorm:{self.ap.clip_norm}, SymmetricNorm:{self.ap.symmetric_norm}, SignalNorm:{self.ap.signal_norm} Range-> {x_norm.max()} -- {x_norm.min()}" + ) + + assert (x_old - x).sum() == 0 + # check value range + assert x_norm.max() <= self.ap.max_norm, x_norm.max() + assert x_norm.min() >= -self.ap.max_norm, x_norm.min() # pylint: disable=invalid-unary-operand-type + assert x_norm.min() <= 0, x_norm.min() + # check denorm. + x_ = self.ap.denormalize(x_norm) + assert (x - x_).sum() < 1e-3, (x - x_).mean() + + self.ap.signal_norm = True + self.ap.symmetric_norm = False + self.ap.max_norm = 1.0 + x_norm = self.ap.normalize(x) + print( + f" > MaxNorm: {self.ap.max_norm}, ClipNorm:{self.ap.clip_norm}, SymmetricNorm:{self.ap.symmetric_norm}, SignalNorm:{self.ap.signal_norm} Range-> {x_norm.max()} -- {x_norm.min()}" + ) + + assert (x_old - x).sum() == 0 + assert x_norm.max() <= self.ap.max_norm, x_norm.max() + assert x_norm.min() >= 0, x_norm.min() + x_ = self.ap.denormalize(x_norm) + assert (x - x_).sum() < 1e-3 + + self.ap.signal_norm = True + self.ap.symmetric_norm = True + self.ap.max_norm = 1.0 + x_norm = self.ap.normalize(x) + print( + f" > MaxNorm: {self.ap.max_norm}, ClipNorm:{self.ap.clip_norm}, SymmetricNorm:{self.ap.symmetric_norm}, SignalNorm:{self.ap.signal_norm} Range-> {x_norm.max()} -- {x_norm.min()}" + ) + + assert (x_old - x).sum() == 0 + assert x_norm.max() <= self.ap.max_norm, x_norm.max() + assert x_norm.min() >= -self.ap.max_norm, x_norm.min() # pylint: disable=invalid-unary-operand-type + assert x_norm.min() < 0, x_norm.min() + x_ = self.ap.denormalize(x_norm) + assert (x - x_).sum() < 1e-3 + + def test_scaler(self): + scaler_stats_path = os.path.join(get_tests_input_path(), "scale_stats.npy") + conf.stats_path = scaler_stats_path + conf.preemphasis = 0.0 + conf.do_trim_silence = True + conf.signal_norm = True + + ap = AudioProcessor(**conf) + mel_mean, mel_std, linear_mean, linear_std, _ = ap.load_stats(scaler_stats_path) + ap.setup_scaler(mel_mean, mel_std, linear_mean, linear_std) + + self.ap.signal_norm = False + self.ap.preemphasis = 0.0 + + # test scaler forward and backward transforms + wav = self.ap.load_wav(WAV_FILE) + mel_reference = self.ap.melspectrogram(wav) + mel_norm = ap.melspectrogram(wav) + mel_denorm = ap.denormalize(mel_norm) + assert abs(mel_reference - mel_denorm).max() < 1e-4 + + def test_compute_f0(self): # pylint: disable=no-self-use + ap = AudioProcessor(**conf) + wav = ap.load_wav(WAV_FILE) + pitch = ap.compute_f0(wav) + mel = ap.melspectrogram(wav) + assert pitch.shape[0] == mel.shape[1] diff --git a/Indic-TTS/TTS/tests/aux_tests/test_extract_tts_spectrograms.py b/Indic-TTS/TTS/tests/aux_tests/test_extract_tts_spectrograms.py new file mode 100644 index 0000000000000000000000000000000000000000..ef7518469cbbf11c29e3b190c447419c26ea3339 --- /dev/null +++ b/Indic-TTS/TTS/tests/aux_tests/test_extract_tts_spectrograms.py @@ -0,0 +1,66 @@ +import os +import unittest + +import torch + +from tests import get_tests_input_path, get_tests_output_path, run_cli +from TTS.config import load_config +from TTS.tts.models import setup_model + +torch.manual_seed(1) + +# pylint: disable=protected-access +class TestExtractTTSSpectrograms(unittest.TestCase): + @staticmethod + def test_GlowTTS(): + # set paths + config_path = os.path.join(get_tests_input_path(), "test_glow_tts.json") + checkpoint_path = os.path.join(get_tests_output_path(), "checkpoint_test.pth") + output_path = os.path.join(get_tests_output_path(), "output_extract_tts_spectrograms/") + # load config + c = load_config(config_path) + # create model + model = setup_model(c) + # save model + torch.save({"model": model.state_dict()}, checkpoint_path) + # run test + run_cli( + f'CUDA_VISIBLE_DEVICES="" python TTS/bin/extract_tts_spectrograms.py --config_path "{config_path}" --checkpoint_path "{checkpoint_path}" --output_path "{output_path}"' + ) + run_cli(f'rm -rf "{output_path}" "{checkpoint_path}"') + + @staticmethod + def test_Tacotron2(): + # set paths + config_path = os.path.join(get_tests_input_path(), "test_tacotron2_config.json") + checkpoint_path = os.path.join(get_tests_output_path(), "checkpoint_test.pth") + output_path = os.path.join(get_tests_output_path(), "output_extract_tts_spectrograms/") + # load config + c = load_config(config_path) + # create model + model = setup_model(c) + # save model + torch.save({"model": model.state_dict()}, checkpoint_path) + # run test + run_cli( + f'CUDA_VISIBLE_DEVICES="" python TTS/bin/extract_tts_spectrograms.py --config_path "{config_path}" --checkpoint_path "{checkpoint_path}" --output_path "{output_path}"' + ) + run_cli(f'rm -rf "{output_path}" "{checkpoint_path}"') + + @staticmethod + def test_Tacotron(): + # set paths + config_path = os.path.join(get_tests_input_path(), "test_tacotron_config.json") + checkpoint_path = os.path.join(get_tests_output_path(), "checkpoint_test.pth") + output_path = os.path.join(get_tests_output_path(), "output_extract_tts_spectrograms/") + # load config + c = load_config(config_path) + # create model + model = setup_model(c) + # save model + torch.save({"model": model.state_dict()}, checkpoint_path) + # run test + run_cli( + f'CUDA_VISIBLE_DEVICES="" python TTS/bin/extract_tts_spectrograms.py --config_path "{config_path}" --checkpoint_path "{checkpoint_path}" --output_path "{output_path}"' + ) + run_cli(f'rm -rf "{output_path}" "{checkpoint_path}"') diff --git a/Indic-TTS/TTS/tests/aux_tests/test_find_unique_phonemes.py b/Indic-TTS/TTS/tests/aux_tests/test_find_unique_phonemes.py new file mode 100644 index 0000000000000000000000000000000000000000..fa740ba36161d98c79fc5196b2fc574e57de8015 --- /dev/null +++ b/Indic-TTS/TTS/tests/aux_tests/test_find_unique_phonemes.py @@ -0,0 +1,78 @@ +import os +import unittest + +import torch + +from tests import get_tests_output_path, run_cli +from TTS.config.shared_configs import BaseDatasetConfig +from TTS.tts.configs.vits_config import VitsConfig + +torch.manual_seed(1) + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") + +dataset_config_en = BaseDatasetConfig( + name="ljspeech", + meta_file_train="metadata.csv", + meta_file_val="metadata.csv", + path="tests/data/ljspeech", + language="en", +) + +dataset_config_pt = BaseDatasetConfig( + name="ljspeech", + meta_file_train="metadata.csv", + meta_file_val="metadata.csv", + path="tests/data/ljspeech", + language="pt-br", +) + +# pylint: disable=protected-access +class TestFindUniquePhonemes(unittest.TestCase): + @staticmethod + def test_espeak_phonemes(): + # prepare the config + config = VitsConfig( + batch_size=2, + eval_batch_size=2, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + datasets=[dataset_config_en, dataset_config_pt], + ) + config.save_json(config_path) + + # run test + run_cli(f'CUDA_VISIBLE_DEVICES="" python TTS/bin/find_unique_phonemes.py --config_path "{config_path}"') + + @staticmethod + def test_no_espeak_phonemes(): + # prepare the config + config = VitsConfig( + batch_size=2, + eval_batch_size=2, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + datasets=[dataset_config_en, dataset_config_pt], + ) + config.save_json(config_path) + + # run test + run_cli(f'CUDA_VISIBLE_DEVICES="" python TTS/bin/find_unique_phonemes.py --config_path "{config_path}"') diff --git a/Indic-TTS/TTS/tests/aux_tests/test_remove_silence_vad_script.py b/Indic-TTS/TTS/tests/aux_tests/test_remove_silence_vad_script.py new file mode 100644 index 0000000000000000000000000000000000000000..c934e065516323cddb019dde7eec492c6c2c339d --- /dev/null +++ b/Indic-TTS/TTS/tests/aux_tests/test_remove_silence_vad_script.py @@ -0,0 +1,29 @@ +import os +import unittest + +import torch + +from tests import get_tests_input_path, get_tests_output_path, run_cli + +torch.manual_seed(1) + +# pylint: disable=protected-access +class TestRemoveSilenceVAD(unittest.TestCase): + @staticmethod + def test(): + # set paths + wav_path = os.path.join(get_tests_input_path(), "../data/ljspeech/wavs") + output_path = os.path.join(get_tests_output_path(), "output_wavs_removed_silence/") + output_resample_path = os.path.join(get_tests_output_path(), "output_ljspeech_16khz/") + + # resample audios + run_cli( + f'CUDA_VISIBLE_DEVICES="" python TTS/bin/resample.py --input_dir "{wav_path}" --output_dir "{output_resample_path}" --output_sr 16000' + ) + + # run test + run_cli( + f'CUDA_VISIBLE_DEVICES="" python TTS/bin/remove_silence_using_vad.py --input_dir "{output_resample_path}" --output_dir "{output_path}"' + ) + run_cli(f'rm -rf "{output_resample_path}"') + run_cli(f'rm -rf "{output_path}"') diff --git a/Indic-TTS/TTS/tests/aux_tests/test_speaker_encoder.py b/Indic-TTS/TTS/tests/aux_tests/test_speaker_encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..f2875cc188ffc20654c995ab844b660ed5c5f9ad --- /dev/null +++ b/Indic-TTS/TTS/tests/aux_tests/test_speaker_encoder.py @@ -0,0 +1,148 @@ +import unittest + +import torch as T + +from tests import get_tests_input_path +from TTS.encoder.losses import AngleProtoLoss, GE2ELoss, SoftmaxAngleProtoLoss +from TTS.encoder.models.lstm import LSTMSpeakerEncoder +from TTS.encoder.models.resnet import ResNetSpeakerEncoder + +file_path = get_tests_input_path() + + +class LSTMSpeakerEncoderTests(unittest.TestCase): + # pylint: disable=R0201 + def test_in_out(self): + dummy_input = T.rand(4, 80, 20) # B x D x T + dummy_hidden = [T.rand(2, 4, 128), T.rand(2, 4, 128)] + model = LSTMSpeakerEncoder(input_dim=80, proj_dim=256, lstm_dim=768, num_lstm_layers=3) + # computing d vectors + output = model.forward(dummy_input) + assert output.shape[0] == 4 + assert output.shape[1] == 256 + output = model.inference(dummy_input) + assert output.shape[0] == 4 + assert output.shape[1] == 256 + # compute d vectors by passing LSTM hidden + # output = model.forward(dummy_input, dummy_hidden) + # assert output.shape[0] == 4 + # assert output.shape[1] == 20 + # assert output.shape[2] == 256 + # check normalization + output_norm = T.nn.functional.normalize(output, dim=1, p=2) + assert_diff = (output_norm - output).sum().item() + assert output.type() == "torch.FloatTensor" + assert abs(assert_diff) < 1e-4, f" [!] output_norm has wrong values - {assert_diff}" + # compute d for a given batch + dummy_input = T.rand(1, 80, 240) # B x T x D + output = model.compute_embedding(dummy_input, num_frames=160, num_eval=5) + assert output.shape[0] == 1 + assert output.shape[1] == 256 + assert len(output.shape) == 2 + + +class ResNetSpeakerEncoderTests(unittest.TestCase): + # pylint: disable=R0201 + def test_in_out(self): + dummy_input = T.rand(4, 80, 20) # B x D x T + dummy_hidden = [T.rand(2, 4, 128), T.rand(2, 4, 128)] + model = ResNetSpeakerEncoder(input_dim=80, proj_dim=256) + # computing d vectors + output = model.forward(dummy_input) + assert output.shape[0] == 4 + assert output.shape[1] == 256 + output = model.forward(dummy_input, l2_norm=True) + assert output.shape[0] == 4 + assert output.shape[1] == 256 + + # check normalization + output_norm = T.nn.functional.normalize(output, dim=1, p=2) + assert_diff = (output_norm - output).sum().item() + assert output.type() == "torch.FloatTensor" + assert abs(assert_diff) < 1e-4, f" [!] output_norm has wrong values - {assert_diff}" + # compute d for a given batch + dummy_input = T.rand(1, 80, 240) # B x D x T + output = model.compute_embedding(dummy_input, num_frames=160, num_eval=10) + assert output.shape[0] == 1 + assert output.shape[1] == 256 + assert len(output.shape) == 2 + + +class GE2ELossTests(unittest.TestCase): + # pylint: disable=R0201 + def test_in_out(self): + # check random input + dummy_input = T.rand(4, 5, 64) # num_speaker x num_utterance x dim + loss = GE2ELoss(loss_method="softmax") + output = loss.forward(dummy_input) + assert output.item() >= 0.0 + # check all zeros + dummy_input = T.ones(4, 5, 64) # num_speaker x num_utterance x dim + loss = GE2ELoss(loss_method="softmax") + output = loss.forward(dummy_input) + assert output.item() >= 0.0 + # check speaker loss with orthogonal d-vectors + dummy_input = T.empty(3, 64) + dummy_input = T.nn.init.orthogonal_(dummy_input) + dummy_input = T.cat( + [ + dummy_input[0].repeat(5, 1, 1).transpose(0, 1), + dummy_input[1].repeat(5, 1, 1).transpose(0, 1), + dummy_input[2].repeat(5, 1, 1).transpose(0, 1), + ] + ) # num_speaker x num_utterance x dim + loss = GE2ELoss(loss_method="softmax") + output = loss.forward(dummy_input) + assert output.item() < 0.005 + + +class AngleProtoLossTests(unittest.TestCase): + # pylint: disable=R0201 + def test_in_out(self): + # check random input + dummy_input = T.rand(4, 5, 64) # num_speaker x num_utterance x dim + loss = AngleProtoLoss() + output = loss.forward(dummy_input) + assert output.item() >= 0.0 + + # check all zeros + dummy_input = T.ones(4, 5, 64) # num_speaker x num_utterance x dim + loss = AngleProtoLoss() + output = loss.forward(dummy_input) + assert output.item() >= 0.0 + + # check speaker loss with orthogonal d-vectors + dummy_input = T.empty(3, 64) + dummy_input = T.nn.init.orthogonal_(dummy_input) + dummy_input = T.cat( + [ + dummy_input[0].repeat(5, 1, 1).transpose(0, 1), + dummy_input[1].repeat(5, 1, 1).transpose(0, 1), + dummy_input[2].repeat(5, 1, 1).transpose(0, 1), + ] + ) # num_speaker x num_utterance x dim + loss = AngleProtoLoss() + output = loss.forward(dummy_input) + assert output.item() < 0.005 + + +class SoftmaxAngleProtoLossTests(unittest.TestCase): + # pylint: disable=R0201 + def test_in_out(self): + + embedding_dim = 64 + num_speakers = 5 + batch_size = 4 + + dummy_label = T.randint(low=0, high=num_speakers, size=(batch_size, num_speakers)) + # check random input + dummy_input = T.rand(batch_size, num_speakers, embedding_dim) # num_speaker x num_utterance x dim + loss = SoftmaxAngleProtoLoss(embedding_dim=embedding_dim, n_speakers=num_speakers) + output = loss.forward(dummy_input, dummy_label) + assert output.item() >= 0.0 + + # check all zeros + dummy_input = T.ones(batch_size, num_speakers, embedding_dim) # num_speaker x num_utterance x dim + loss = SoftmaxAngleProtoLoss(embedding_dim=embedding_dim, n_speakers=num_speakers) + output = loss.forward(dummy_input, dummy_label) + assert output.item() >= 0.0 diff --git a/Indic-TTS/TTS/tests/aux_tests/test_speaker_encoder_train.py b/Indic-TTS/TTS/tests/aux_tests/test_speaker_encoder_train.py new file mode 100644 index 0000000000000000000000000000000000000000..d9d6d71e77c0c750ae3448bbf96bdea77f2ff3a0 --- /dev/null +++ b/Indic-TTS/TTS/tests/aux_tests/test_speaker_encoder_train.py @@ -0,0 +1,88 @@ +import glob +import os +import shutil + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.config.shared_configs import BaseAudioConfig +from TTS.encoder.configs.speaker_encoder_config import SpeakerEncoderConfig + + +def run_test_train(): + command = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_encoder.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech_test " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + ) + run_cli(command) + + +config_path = os.path.join(get_tests_output_path(), "test_speaker_encoder_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +config = SpeakerEncoderConfig( + batch_size=4, + num_classes_in_batch=4, + num_utter_per_class=2, + eval_num_classes_in_batch=4, + eval_num_utter_per_class=2, + num_loader_workers=1, + epochs=1, + print_step=1, + save_step=2, + print_eval=True, + run_eval=True, + audio=BaseAudioConfig(num_mels=80), +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.loss = "ge2e" +config.save_json(config_path) + +print(config) +# train the model for one epoch +run_test_train() + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# restore the model and continue training for one more epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_encoder.py --continue_path {continue_path} " +) +run_cli(command_train) +shutil.rmtree(continue_path) + +# test resnet speaker encoder +config.model_params["model_name"] = "resnet" +config.save_json(config_path) + +# train the model for one epoch +run_test_train() + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# restore the model and continue training for one more epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_encoder.py --continue_path {continue_path} " +) +run_cli(command_train) +shutil.rmtree(continue_path) + +# test model with ge2e loss function +# config.loss = "ge2e" +# config.save_json(config_path) +# run_test_train() + +# test model with angleproto loss function +# config.loss = "angleproto" +# config.save_json(config_path) +# run_test_train() + +# test model with softmaxproto loss function +config.loss = "softmaxproto" +config.save_json(config_path) +run_test_train() diff --git a/Indic-TTS/TTS/tests/aux_tests/test_speaker_manager.py b/Indic-TTS/TTS/tests/aux_tests/test_speaker_manager.py new file mode 100644 index 0000000000000000000000000000000000000000..890cc02398d9dff5a8a318fdd44bea09cac695c2 --- /dev/null +++ b/Indic-TTS/TTS/tests/aux_tests/test_speaker_manager.py @@ -0,0 +1,77 @@ +import os +import unittest + +import numpy as np +import torch + +from tests import get_tests_input_path +from TTS.config import load_config +from TTS.encoder.utils.generic_utils import setup_encoder_model +from TTS.encoder.utils.io import save_checkpoint +from TTS.tts.utils.speakers import SpeakerManager +from TTS.utils.audio import AudioProcessor + +encoder_config_path = os.path.join(get_tests_input_path(), "test_speaker_encoder_config.json") +encoder_model_path = os.path.join(get_tests_input_path(), "checkpoint_0.pth") +sample_wav_path = os.path.join(get_tests_input_path(), "../data/ljspeech/wavs/LJ001-0001.wav") +sample_wav_path2 = os.path.join(get_tests_input_path(), "../data/ljspeech/wavs/LJ001-0002.wav") +d_vectors_file_path = os.path.join(get_tests_input_path(), "../data/dummy_speakers.json") +d_vectors_file_pth_path = os.path.join(get_tests_input_path(), "../data/dummy_speakers.pth") + + +class SpeakerManagerTest(unittest.TestCase): + """Test SpeakerManager for loading embedding files and computing d_vectors from waveforms""" + + @staticmethod + def test_speaker_embedding(): + # load config + config = load_config(encoder_config_path) + config.audio.resample = True + + # create a dummy speaker encoder + model = setup_encoder_model(config) + save_checkpoint(model, None, None, get_tests_input_path(), 0) + + # load audio processor and speaker encoder + ap = AudioProcessor(**config.audio) + manager = SpeakerManager(encoder_model_path=encoder_model_path, encoder_config_path=encoder_config_path) + + # load a sample audio and compute embedding + waveform = ap.load_wav(sample_wav_path) + mel = ap.melspectrogram(waveform) + d_vector = manager.compute_embeddings(mel) + assert d_vector.shape[1] == 256 + + # compute d_vector directly from an input file + d_vector = manager.compute_embedding_from_clip(sample_wav_path) + d_vector2 = manager.compute_embedding_from_clip(sample_wav_path) + d_vector = torch.FloatTensor(d_vector) + d_vector2 = torch.FloatTensor(d_vector2) + assert d_vector.shape[0] == 256 + assert (d_vector - d_vector2).sum() == 0.0 + + # compute d_vector from a list of wav files. + d_vector3 = manager.compute_embedding_from_clip([sample_wav_path, sample_wav_path2]) + d_vector3 = torch.FloatTensor(d_vector3) + assert d_vector3.shape[0] == 256 + assert (d_vector - d_vector3).sum() != 0.0 + + # remove dummy model + os.remove(encoder_model_path) + + def test_speakers_file_processing(self): + manager = SpeakerManager(d_vectors_file_path=d_vectors_file_path) + self.assertEqual(manager.num_speakers, 1) + self.assertEqual(manager.embedding_dim, 256) + manager = SpeakerManager(d_vectors_file_path=d_vectors_file_pth_path) + self.assertEqual(manager.num_speakers, 1) + self.assertEqual(manager.embedding_dim, 256) + d_vector = manager.get_embedding_by_clip(manager.clip_ids[0]) + assert len(d_vector) == 256 + d_vectors = manager.get_embeddings_by_name(manager.speaker_names[0]) + assert len(d_vectors[0]) == 256 + d_vector1 = manager.get_mean_embedding(manager.speaker_names[0], num_samples=2, randomize=True) + assert len(d_vector1) == 256 + d_vector2 = manager.get_mean_embedding(manager.speaker_names[0], num_samples=2, randomize=False) + assert len(d_vector2) == 256 + assert np.sum(np.array(d_vector1) - np.array(d_vector2)) != 0 diff --git a/Indic-TTS/TTS/tests/aux_tests/test_stft_torch.py b/Indic-TTS/TTS/tests/aux_tests/test_stft_torch.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/tests/bash_tests/test_compute_statistics.sh b/Indic-TTS/TTS/tests/bash_tests/test_compute_statistics.sh new file mode 100644 index 0000000000000000000000000000000000000000..d7f0ab9d4c7d1ded0c1584941cb949bb711ad430 --- /dev/null +++ b/Indic-TTS/TTS/tests/bash_tests/test_compute_statistics.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -xe +BASEDIR=$(dirname "$0") +echo "$BASEDIR" +# run training +CUDA_VISIBLE_DEVICES="" python TTS/bin/compute_statistics.py --config_path $BASEDIR/../inputs/test_glow_tts.json --out_path $BASEDIR/../outputs/scale_stats.npy + diff --git a/Indic-TTS/TTS/tests/bash_tests/test_demo_server.sh b/Indic-TTS/TTS/tests/bash_tests/test_demo_server.sh new file mode 100644 index 0000000000000000000000000000000000000000..ebd0bc8b89f2ba450a569be4c147ec4959efca18 --- /dev/null +++ b/Indic-TTS/TTS/tests/bash_tests/test_demo_server.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -xe + +python -m TTS.server.server & +SERVER_PID=$! + +echo 'Waiting for server...' +sleep 30 + +curl -o /tmp/audio.wav "http://localhost:5002/api/tts?text=synthesis%20schmynthesis" +python -c 'import sys; import wave; print(wave.open(sys.argv[1]).getnframes())' /tmp/audio.wav + +kill $SERVER_PID + +rm /tmp/audio.wav diff --git a/Indic-TTS/TTS/tests/bash_tests/test_resample.sh b/Indic-TTS/TTS/tests/bash_tests/test_resample.sh new file mode 100644 index 0000000000000000000000000000000000000000..ba87127298f7bd8155a25430c36f57bdc1c401e7 --- /dev/null +++ b/Indic-TTS/TTS/tests/bash_tests/test_resample.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +set -xe +BASEDIR=$(dirname "$0") +TARGET_SR=16000 +echo "$BASEDIR" +#run the resample script +python TTS/bin/resample.py --input_dir $BASEDIR/../data/ljspeech --output_dir $BASEDIR/outputs/resample_tests --output_sr $TARGET_SR +#check samplerate of output +OUT_SR=$( (echo "import librosa" ; echo "y, sr = librosa.load('"$BASEDIR"/outputs/resample_tests/wavs/LJ001-0012.wav', sr=None)" ; echo "print(sr)") | python ) +OUT_SR=$(($OUT_SR + 0)) +if [[ $OUT_SR -ne $TARGET_SR ]]; then + echo "Missmatch between target and output sample rates" + exit 1 +fi +#cleaning up +rm -rf $BASEDIR/outputs/resample_tests diff --git a/Indic-TTS/TTS/tests/data/dummy_speakers.json b/Indic-TTS/TTS/tests/data/dummy_speakers.json new file mode 100644 index 0000000000000000000000000000000000000000..233533b7968a053c0868f9db2446749e9c0effd1 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/dummy_speakers.json @@ -0,0 +1,100226 @@ +{ + "p244_302.wav": { + "name": "p244", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + }, + "p244_342.wav": { + "name": "p244", + "embedding": [ + 0.05005024001002312, + 0.10739441215991974, + -0.015767700970172882, + 0.03197174146771431, + -0.049751877784729004, + 0.07368919253349304, + -0.11086710542440414, + 0.12266570329666138, + -0.055884428322315216, + 0.14480051398277283, + -0.09230168908834457, + 0.10953367501497269, + -0.0357954278588295, + -0.1691109836101532, + -0.04994215443730354, + 0.05317877233028412, + -0.04780467599630356, + -0.028082450851798058, + -0.030347973108291626, + -0.0015789138851687312, + 0.03955546021461487, + 0.04067610204219818, + 0.028119998052716255, + 0.00921852607280016, + 0.030067767947912216, + 0.061427608132362366, + -0.0016679083928465843, + 0.05357091501355171, + 0.023015424609184265, + -0.050316497683525085, + -0.04255743324756622, + 0.1287825107574463, + -0.04624408483505249, + 0.023578952997922897, + 0.047039519995450974, + 0.00930054672062397, + 0.004682430997490883, + -0.06462899595499039, + -0.019383519887924194, + -0.008494102396070957, + -0.048186637461185455, + 0.07191027700901031, + 0.015244226902723312, + -0.0003928039222955704, + 0.03503163531422615, + 0.008267269469797611, + -0.02512257918715477, + -0.05235607177019119, + -0.09180445224046707, + 0.15558570623397827, + 0.06139551103115082, + 0.006414560601115227, + -0.07681959867477417, + -0.07630625367164612, + 0.10429195314645767, + -0.00981030985713005, + -0.11445462703704834, + -0.036746423691511154, + 0.07292406260967255, + 0.16880059242248535, + -0.01842034049332142, + -0.033148035407066345, + 0.013845782727003098, + 0.11980786919593811, + 0.050728216767311096, + 0.10279352217912674, + 0.07316798716783524, + 0.09072566032409668, + 0.0038510854355990887, + 0.02752499468624592, + 0.06867751479148865, + 0.0616176500916481, + 0.05001520365476608, + -0.024926170706748962, + 0.026522532105445862, + 0.004151749890297651, + -0.03625208139419556, + 0.026617109775543213, + -0.01584431901574135, + -0.010617567226290703, + -0.020938802510499954, + 0.008502485230565071, + -0.004227738361805677, + 0.014398372732102871, + -0.025087807327508926, + 0.045862697064876556, + 0.023492811247706413, + -0.015581879764795303, + 0.07379084825515747, + 0.05002640560269356, + 0.004349455237388611, + 0.05815402418375015, + -0.07435561716556549, + -0.10093250125646591, + 0.012758184224367142, + 0.0040325382724404335, + 0.02395264059305191, + 0.08153457194566727, + 0.033792220056056976, + -0.019414838403463364, + 0.1033405214548111, + 0.0384766086935997, + 0.006529564969241619, + 0.027514591813087463, + -0.10867736488580704, + 0.1150912344455719, + 0.09220621734857559, + -0.024154093116521835, + 0.03327079489827156, + -0.029712006449699402, + 0.08647294342517853, + 0.08700971305370331, + -0.14513355493545532, + -0.07308748364448547, + 0.03144310414791107, + 0.007094813045114279, + 0.0018512541428208351, + 0.0968799740076065, + -0.016651807352900505, + 0.013502601534128189, + 0.09198576211929321, + -0.0859537273645401, + -0.054299745708703995, + -0.030169349163770676, + 0.04377683997154236, + -0.0789153128862381, + 0.04800377041101456, + 0.03584020584821701, + -0.0009612710564397275, + -0.012059178203344345, + 0.07625425606966019, + -0.007969949394464493, + -0.003650201950222254, + 0.025299428030848503, + -0.05164157599210739, + 0.033006470650434494, + -0.03845863789319992, + 0.0038426616229116917, + 0.05190078914165497, + 0.04112619906663895, + 0.05069519951939583, + 0.001691763405688107, + -0.022290080785751343, + -0.09915561228990555, + 0.013304539024829865, + 0.05602234601974487, + 0.05504598468542099, + -0.01420528907328844, + -0.025512415915727615, + -0.04316616803407669, + -0.0638405904173851, + 0.036458369344472885, + -0.0006715459749102592, + 0.08267225325107574, + 0.0027876130770891905, + 0.0013964123791083694, + 0.11250487715005875, + 0.014469620771706104, + -0.007276642601937056, + -0.05617782846093178, + -0.027922146022319794, + 0.01478651538491249, + 0.06186310201883316, + -0.08734073489904404, + -0.07542749494314194, + 0.015517745167016983, + 0.012257397174835205, + -0.020948491990566254, + 0.03487060219049454, + 0.054895590990781784, + 0.013588862493634224, + 0.04263032600283623, + -0.0647064745426178, + 0.01728040724992752, + -0.12200611084699631, + -0.06621172279119492, + -0.019416222348809242, + -0.030050568282604218, + -0.0017845522379502654, + 0.08169281482696533, + 0.017037319019436836, + 0.02421201765537262, + 0.0037975357845425606, + -0.08823724091053009, + -0.07071515917778015, + 0.08511896431446075, + 0.08436156809329987, + 0.01660916581749916, + 0.057988524436950684, + 0.05465036630630493, + -0.032873932272195816, + 0.05294205993413925, + 0.06271162629127502, + 0.11366848647594452, + -0.02610023133456707, + 0.015349031426012516, + -0.07377832382917404, + 0.07414689660072327, + 0.07684557139873505, + -0.11574330925941467, + -0.10163731873035431, + -0.023144066333770752, + -0.051269568502902985, + 0.045116886496543884, + -0.026288434863090515, + 0.011183633469045162, + 0.03164569288492203, + -0.030619151890277863, + -0.10015660524368286, + -0.09329545497894287, + 0.09745553135871887, + -0.04969329759478569, + -0.02546953782439232, + -0.08311304450035095, + 0.04494427889585495, + 0.07559853792190552, + 0.036820605397224426, + -0.030338197946548462, + 0.01947575807571411, + 0.05258313566446304, + -0.06045728921890259, + -0.023316536098718643, + 0.04226306453347206, + 0.0016495431773364544, + -0.09124850481748581, + 0.011782881803810596, + -0.06902118027210236, + 0.09021267294883728, + -0.06915663182735443, + 0.16398003697395325, + -0.022971302270889282, + -0.06647606194019318, + -0.08104446530342102, + 0.05106651410460472, + -0.017583303153514862, + 0.03503591939806938, + 0.042305998504161835, + 0.05885643512010574, + 0.02223961427807808, + -0.0645500048995018, + 0.11483395099639893, + 0.03016156330704689, + -0.03008243814110756, + -0.0585399866104126, + -0.04248024523258209, + -0.04242590814828873, + 0.026500295847654343, + 0.002028970280662179, + -0.08147037774324417, + 0.0017442512325942516, + 0.01499109622091055, + -0.02363378368318081, + 0.06126737967133522, + 0.1384272277355194, + 0.06977587938308716, + -0.11724086105823517 + ] + }, + "p244_379.wav": { + "name": "p244", + "embedding": [ + 0.04385417327284813, + 0.08368086814880371, + 0.0004669101908802986, + -0.010091540403664112, + -0.03873376548290253, + 0.046230755746364594, + -0.14813315868377686, + 0.13340362906455994, + -0.03948982059955597, + 0.15426620841026306, + -0.06360238790512085, + 0.11138015985488892, + -0.008127805776894093, + -0.18019263446331024, + -0.03770577162504196, + 0.04193387180566788, + -0.057793062180280685, + -0.04214119166135788, + -0.056620948016643524, + -0.04057123512029648, + 0.051402948796749115, + 0.05183681845664978, + 0.013680952601134777, + 0.018274657428264618, + 0.0034123891964554787, + 0.062409352511167526, + 0.02043917216360569, + 0.055918335914611816, + 0.023541729897260666, + -0.08195513486862183, + -0.02083502523601055, + 0.08724872767925262, + -0.028091277927160263, + 0.018559720367193222, + 0.04656890779733658, + -0.025418013334274292, + 0.030472083017230034, + -0.05127841979265213, + -0.03467317670583725, + 0.03528723865747452, + -0.03902474045753479, + 0.07907763868570328, + 0.0074369898065924644, + 0.007716057356446981, + 0.05388845503330231, + 0.029956858605146408, + -0.015823351219296455, + -0.0724020004272461, + -0.09075143933296204, + 0.1657782644033432, + 0.10434740036725998, + -0.019610103219747543, + -0.04357729107141495, + -0.07185962796211243, + 0.08603136241436005, + -0.052245061844587326, + -0.10766220092773438, + -0.05293136462569237, + 0.06449665129184723, + 0.12944144010543823, + -0.042106788605451584, + -0.04758021980524063, + 0.049494460225105286, + 0.12775693833827972, + 0.040527358651161194, + 0.07349203526973724, + 0.0795803964138031, + 0.0761307030916214, + -0.044778965413570404, + 0.003302923869341612, + 0.03309907764196396, + 0.07771170139312744, + 0.04621581360697746, + 0.005038945935666561, + 0.044806189835071564, + 0.020960239693522453, + -0.0068280380219221115, + 8.056375372689217e-05, + -0.019911594688892365, + 0.02049337327480316, + -0.010624206624925137, + 0.03540490195155144, + -0.021328754723072052, + 0.012203291058540344, + -0.02071482688188553, + 0.06538721919059753, + -0.008392799645662308, + 0.000987844541668892, + 0.060524582862854004, + 0.023379843682050705, + 0.04655498266220093, + 0.054990898817777634, + -0.05890372022986412, + -0.08285146206617355, + 0.028673967346549034, + 0.008595142513513565, + -0.011616579256951809, + 0.056019872426986694, + 0.017910296097397804, + -0.02655627205967903, + 0.1350702941417694, + 0.049260806292295456, + -0.028640856966376305, + 0.03055524453520775, + -0.10077312588691711, + 0.12397953122854233, + 0.07329561561346054, + -0.034036532044410706, + 0.03970664367079735, + -0.05486592650413513, + 0.06752245128154755, + 0.04661741852760315, + -0.1333666741847992, + -0.09235265851020813, + 0.043007396161556244, + 0.02136904001235962, + -0.02561361901462078, + 0.10230007022619247, + -0.005486679263412952, + 0.033191148191690445, + 0.10709051787853241, + -0.056307561695575714, + -0.04276499152183533, + -0.01762603223323822, + 0.05830918997526169, + -0.0918903574347496, + 0.060251664370298386, + 0.04541034623980522, + 0.0014724340289831161, + 0.017731232568621635, + 0.1095895916223526, + -0.022439848631620407, + -0.006722745485603809, + -0.012465088628232479, + -0.03208261355757713, + 0.01631762459874153, + -0.04512239620089531, + -0.009204409085214138, + 0.021059151738882065, + 0.0491592101752758, + 0.03468703478574753, + -0.0031415175180882215, + -0.0552615225315094, + -0.12650644779205322, + 0.018601013347506523, + -0.0013559520011767745, + 0.07058518379926682, + 0.0008318508043885231, + -0.0053475843742489815, + -0.05491418391466141, + -0.049462370574474335, + -0.024400413036346436, + -0.024958988651633263, + 0.06559912860393524, + -0.024860378354787827, + 0.02269887924194336, + 0.09741535037755966, + 0.012000896036624908, + 0.0035986807197332382, + -0.034669265151023865, + -0.025829574093222618, + -0.003224350977689028, + 0.047697536647319794, + -0.046893130987882614, + -0.06946690380573273, + 0.005941083189100027, + 0.04294610768556595, + 0.01209615170955658, + 0.06000249832868576, + 0.03875409811735153, + 0.012823483906686306, + 0.03734605759382248, + -0.09658080339431763, + 0.0314655676484108, + -0.10068618506193161, + -0.06583625078201294, + -0.01892363652586937, + -0.0025274772197008133, + -0.01628824882209301, + 0.0637492835521698, + -0.008107378147542477, + 0.048660408705472946, + -0.010005421936511993, + -0.10025914013385773, + -0.0969337448477745, + 0.059523966163396835, + 0.0996452122926712, + -0.004202151205390692, + 0.045321013778448105, + 0.05651431530714035, + -0.014919697307050228, + 0.06441773474216461, + 0.04368766397237778, + 0.10110782086849213, + -0.0043152268044650555, + 0.03423415124416351, + -0.059874605387449265, + 0.06583072245121002, + 0.04978032037615776, + -0.08416496962308884, + -0.073335662484169, + -0.010527554899454117, + -0.07210519164800644, + 0.035875968635082245, + -0.0031813548412173986, + 0.012447054497897625, + 0.04415292665362358, + 0.00752978352829814, + -0.08800460398197174, + -0.05641252547502518, + 0.07591962814331055, + -0.07787096500396729, + -0.011992206797003746, + -0.057379916310310364, + 0.036020129919052124, + 0.12026499956846237, + 0.0666547641158104, + -0.017779793590307236, + -0.04473390430212021, + 0.04401383921504021, + -0.02994568645954132, + 0.004939892329275608, + 0.027159716933965683, + 0.030616983771324158, + -0.10693733394145966, + 0.02875242382287979, + -0.09080235660076141, + 0.04131399840116501, + -0.05450586974620819, + 0.1073312759399414, + 0.010020781308412552, + -0.0629810318350792, + -0.09145230054855347, + 0.026476040482521057, + -0.0383373461663723, + 0.060232680290937424, + 0.0011733348947018385, + 0.04009602963924408, + 0.069184809923172, + -0.06585222482681274, + 0.10212516039609909, + 0.05953359603881836, + -0.04728677496314049, + -0.06880010664463043, + -0.04774005338549614, + -0.024935949593782425, + 0.03395010158419609, + 0.03719611465930939, + -0.07992134988307953, + -0.03410416841506958, + 0.012216593138873577, + -0.04541661962866783, + 0.09453573077917099, + 0.13344059884548187, + 0.05227658897638321, + -0.1507265418767929 + ] + }, + "p244_146.wav": { + "name": "p244", + "embedding": [ + 0.05173081159591675, + 0.08781048655509949, + 0.03257787972688675, + 0.005466929636895657, + -0.023618539795279503, + 0.015054089948534966, + -0.11388292163610458, + 0.1028447076678276, + 0.007264353334903717, + 0.07433748990297318, + -0.11498712748289108, + 0.10358240455389023, + -0.05607076734304428, + -0.1409558355808258, + -0.04124286398291588, + 0.03587265685200691, + -0.04401744529604912, + -0.01768949255347252, + -0.02214878797531128, + -0.010046346113085747, + 0.035469312220811844, + 0.014919303357601166, + 0.04470502957701683, + 0.018321475014090538, + -0.00444794399663806, + 0.04457274079322815, + -0.004052337259054184, + 0.03477124497294426, + 0.021253926679491997, + -0.005067147314548492, + 0.021340904757380486, + 0.039399079978466034, + -0.007815222255885601, + 0.055303506553173065, + 0.06028258427977562, + 0.02536826580762863, + -0.0054739429615437984, + -0.018883245065808296, + -0.03618921339511871, + 0.013414287939667702, + -0.04407748207449913, + 0.055351853370666504, + 0.02702566236257553, + -0.03960036486387253, + 0.0490243062376976, + 0.04641438648104668, + -0.016285691410303116, + -0.01790410652756691, + -0.10511147230863571, + 0.12259026616811752, + 0.010291787795722485, + 0.03289821743965149, + -0.08099640905857086, + -0.026124536991119385, + 0.09215167164802551, + -0.050865575671195984, + -0.09459369629621506, + -0.028084008023142815, + 0.07599273324012756, + 0.09264038503170013, + -0.023951835930347443, + -0.041913505643606186, + -0.005671866238117218, + 0.0582917258143425, + 0.041189368814229965, + 0.05618399381637573, + 0.0817662701010704, + 0.09764754772186279, + -0.03388510271906853, + 0.010172495618462563, + 0.06193658709526062, + 0.03605092316865921, + 0.06660737097263336, + 0.006852769758552313, + -0.004304143600165844, + -0.006190738640725613, + 0.0004641196574084461, + 0.019091667607426643, + -0.009173627942800522, + -0.004967373795807362, + -0.027705632150173187, + -0.008259315975010395, + -0.0029292358085513115, + 0.002002920024096966, + -0.02405666932463646, + 0.03258177638053894, + 0.031177019700407982, + 0.008372969925403595, + 0.06282497942447662, + 0.06677483022212982, + -0.01705140992999077, + 0.046009503304958344, + -0.03578224405646324, + -0.07554700970649719, + -0.03225565701723099, + -0.020589854568243027, + 0.03575562685728073, + 0.035922177135944366, + 0.03503880649805069, + 0.023354357108473778, + 0.0855662077665329, + 0.0254385843873024, + -0.0036251756828278303, + 0.0032674050889909267, + -0.10853132605552673, + 0.08199082314968109, + 0.05580103024840355, + -0.027594666928052902, + 0.019852720201015472, + -0.036443717777729034, + 0.048316389322280884, + 0.07583539932966232, + -0.05360352247953415, + -0.03800172358751297, + 0.024394333362579346, + 0.03642188012599945, + 0.03318864107131958, + 0.07662512362003326, + -0.01152440719306469, + 0.016784314066171646, + 0.11875718086957932, + -0.07176057249307632, + -0.024109384045004845, + 0.005587983876466751, + 0.009327013045549393, + -0.03365793824195862, + 0.05791780352592468, + 0.029259514063596725, + 0.02902703545987606, + 0.004038798622786999, + 0.06939239799976349, + 0.00478143896907568, + 0.009569157846271992, + -0.036234915256500244, + -0.015711260959506035, + 0.02211536280810833, + -0.02117694728076458, + 0.0007077722693793476, + 0.06763876974582672, + 0.06141200661659241, + 0.04103091359138489, + 0.06552741676568985, + -0.05750571936368942, + -0.0852167159318924, + 0.011977690272033215, + 0.05217904597520828, + 0.047709863632917404, + -0.007119899149984121, + -0.03633209317922592, + -0.04580448567867279, + -0.007685321383178234, + 0.04970385879278183, + -0.0024655070155858994, + 0.05368969962000847, + -0.0014410652220249176, + -0.009220248088240623, + 0.08319792151451111, + 0.004213802516460419, + -0.008937712758779526, + -0.07948096841573715, + -0.05960806831717491, + -0.025604955852031708, + 0.024362564086914062, + -0.10140591114759445, + -0.054099615663290024, + -0.023109978064894676, + 0.037883318960666656, + -0.0025205023121088743, + 0.0227670781314373, + 0.05524842441082001, + -0.005986891686916351, + 0.01179206557571888, + -0.03954809904098511, + 0.01663348637521267, + -0.06980662047863007, + -0.10311965644359589, + 0.01984083279967308, + -0.00989723764359951, + 0.021990396082401276, + 0.05811266228556633, + 0.005904274992644787, + 0.03793155774474144, + -0.01590459607541561, + -0.09037895500659943, + -0.06753981113433838, + 0.061282679438591, + 0.021295949816703796, + 0.0032610055059194565, + 0.05217217653989792, + 0.0253852941095829, + -0.0741269439458847, + 0.07798756659030914, + 0.01668640784919262, + 0.0862961933016777, + -0.07870747148990631, + 0.02164555713534355, + -0.027306711301207542, + 0.03223402425646782, + 0.06706254184246063, + -0.06367616355419159, + -0.08458103984594345, + -0.050511181354522705, + -0.02036047726869583, + 0.0028320476412773132, + -0.016799330711364746, + -0.005957796238362789, + 0.017700176686048508, + -0.01823967508971691, + -0.06084313616156578, + -0.08374806493520737, + 0.014344906434416771, + -0.03149090334773064, + 0.012745125219225883, + -0.05736103653907776, + 0.03571572154760361, + 0.025993801653385162, + -0.019825372844934464, + -0.0036927226465195417, + 0.021637266501784325, + -0.002274036407470703, + -0.04890124127268791, + -0.0485353097319603, + 0.024078156799077988, + 0.04139643907546997, + -0.011267557740211487, + -0.03186582773923874, + -0.07837104797363281, + 0.04924409091472626, + -0.010795444250106812, + 0.12591981887817383, + -0.012514190748333931, + -0.04951813071966171, + -0.0067854104563593864, + -0.032804928719997406, + -0.04248955100774765, + 0.03967583552002907, + 0.029716845601797104, + 0.032708458602428436, + 0.007038564886897802, + -0.02184302732348442, + 0.0928443893790245, + 0.05198834463953972, + -0.04275655746459961, + -0.04693467542529106, + -0.048397552222013474, + -0.05464000627398491, + -0.01461903564631939, + -0.031152945011854172, + -0.0545472614467144, + 0.0027494654059410095, + -0.013447854667901993, + 0.017987411469221115, + 0.04795508086681366, + 0.11922390758991241, + 0.04045257717370987, + -0.07620753347873688 + ] + }, + "p244_190.wav": { + "name": "p244", + "embedding": [ + 0.03891666978597641, + 0.08618548512458801, + -0.012352603487670422, + 0.0023647616617381573, + -0.04511157423257828, + 0.08262351155281067, + -0.15334278345108032, + 0.11335278302431107, + -0.07073113322257996, + 0.1437074840068817, + -0.05526787042617798, + 0.11605475842952728, + -0.02294749766588211, + -0.19488683342933655, + -0.06092676520347595, + 0.062192484736442566, + -0.07134442031383514, + -0.06475155055522919, + 0.005238390993326902, + -0.011493239551782608, + 0.05193570256233215, + 0.025915730744600296, + 0.013390488922595978, + 0.035989910364151, + 0.013592299073934555, + 0.07172174751758575, + 0.015837375074625015, + 0.05136915296316147, + 0.013818459585309029, + -0.02149501070380211, + -0.04269518703222275, + 0.1095333993434906, + -0.04994969069957733, + 0.008344747126102448, + 0.04553315043449402, + 0.002721929457038641, + 0.019683293998241425, + -0.07648376375436783, + -0.011557327583432198, + 0.005703666713088751, + -0.04630947858095169, + 0.08604322373867035, + 0.024151362478733063, + 0.009969284757971764, + 0.006591316312551498, + 0.016788501292467117, + -0.008936790749430656, + -0.04407847672700882, + -0.10332876443862915, + 0.14969968795776367, + 0.07188258320093155, + -0.004159452393651009, + -0.05464881286025047, + -0.07255028188228607, + 0.117868572473526, + 0.005936199799180031, + -0.10220304131507874, + -0.03999566659331322, + 0.07501912117004395, + 0.16038082540035248, + -0.03320574760437012, + -0.04479363560676575, + 0.02120385691523552, + 0.1265159398317337, + 0.044165074825286865, + 0.0974731296300888, + 0.07087424397468567, + 0.09011547267436981, + -0.011436786502599716, + -0.008907885290682316, + 0.07551225274801254, + 0.0740157887339592, + 0.028836743906140327, + -0.020702751353383064, + 0.04140472412109375, + 0.007198440842330456, + -0.02204008214175701, + 0.05030984431505203, + -0.012128639966249466, + -0.01338435523211956, + -0.02191055938601494, + -0.001331954263150692, + -0.0150510398671031, + 0.03325839340686798, + -0.01166414376348257, + 0.046062763780355453, + 0.010720659047365189, + -0.0016609709709882736, + 0.07922933995723724, + 0.03723090887069702, + 0.02604392170906067, + 0.08400508016347885, + -0.07623007893562317, + -0.07979101687669754, + 0.05053455010056496, + 0.008680237457156181, + 0.03445329889655113, + 0.08768151700496674, + 0.0446850061416626, + -0.024085253477096558, + 0.10533446818590164, + 0.05589498579502106, + -0.006498263217508793, + 0.02790868654847145, + -0.1080659031867981, + 0.12004449218511581, + 0.07869429886341095, + -0.04090873897075653, + 0.019370591267943382, + -0.04255497828125954, + 0.09387113153934479, + 0.08306798338890076, + -0.1440945565700531, + -0.08431284129619598, + 0.055854879319667816, + 0.042773813009262085, + -0.014650602824985981, + 0.13262630999088287, + -0.031001346185803413, + 0.007896746508777142, + 0.08489559590816498, + -0.05678100138902664, + -0.04893491417169571, + -0.033049799501895905, + 0.0443098209798336, + -0.07036128640174866, + 0.05185675621032715, + 0.03613513708114624, + 0.004043039865791798, + -0.011045982129871845, + 0.07997813820838928, + -0.0227487925440073, + -0.025182552635669708, + 0.02432696893811226, + -0.03223945200443268, + 0.046007998287677765, + -0.022601153701543808, + 0.016615698114037514, + 0.043354518711566925, + 0.04039819538593292, + 0.032384030520915985, + 0.01469055563211441, + -0.03640322387218475, + -0.12419065833091736, + 0.015508345328271389, + 0.05666865408420563, + 0.07116006314754486, + -0.015323542058467865, + -0.05304718390107155, + -0.05137743800878525, + -0.0591328926384449, + 0.012484293431043625, + 0.0029017780907452106, + 0.091408371925354, + -0.001773263793438673, + -0.00022884283680468798, + 0.07577857375144958, + 0.0194857157766819, + -0.003263377584517002, + -0.03675318509340286, + -0.041201747953891754, + 0.023517003282904625, + 0.04719114303588867, + -0.08032232522964478, + -0.06488973647356033, + -0.0009055742993950844, + 0.036279790103435516, + -0.015142029151320457, + 0.028365613892674446, + 0.05698738992214203, + 0.017797598615288734, + 0.0376548208296299, + -0.08761591464281082, + 0.043355900794267654, + -0.12279794365167618, + -0.06551626324653625, + -0.0320172980427742, + -0.010431734845042229, + 0.0024665198288857937, + 0.07042818516492844, + -0.004997836891561747, + 0.040651585906744, + -0.022141478955745697, + -0.07916876673698425, + -0.06485278904438019, + 0.07047265768051147, + 0.103216752409935, + 0.012911692261695862, + 0.062018103897571564, + 0.057831525802612305, + -0.012101317755877972, + 0.046879060566425323, + 0.05007849261164665, + 0.13482853770256042, + -0.03489668667316437, + 0.019783727824687958, + -0.04995163530111313, + 0.0744292289018631, + 0.05259699746966362, + -0.10245924443006516, + -0.06838458776473999, + 6.273388862609863e-05, + -0.04936979338526726, + 0.04081407189369202, + -0.02829176001250744, + 0.012483715079724789, + 0.003441236913204193, + -0.005567100830376148, + -0.1050506979227066, + -0.08585310727357864, + 0.07601556181907654, + -0.06117270886898041, + -0.012992369942367077, + -0.09122200310230255, + 0.055312518030405045, + 0.10301375389099121, + 0.037872932851314545, + -0.030580706894397736, + 0.005703204311430454, + 0.03272298350930214, + -0.025252459570765495, + -0.004251203499734402, + 0.03085319697856903, + 0.01622661016881466, + -0.1204351857304573, + 0.00017932639457285404, + -0.09284012019634247, + 0.0756625235080719, + -0.06378820538520813, + 0.16047629714012146, + -0.02003616839647293, + -0.05094631761312485, + -0.08163866400718689, + 0.028918597847223282, + -0.017792830243706703, + 0.04300200566649437, + 0.039597608149051666, + 0.06194380670785904, + 0.009485496208071709, + -0.0545857697725296, + 0.12352314591407776, + 0.042216140776872635, + -0.037687428295612335, + -0.07131104171276093, + -0.005493655800819397, + -0.01561376266181469, + 0.04466020315885544, + 0.016033610329031944, + -0.0759623795747757, + -0.029592476785182953, + 0.034450795501470566, + -0.020359832793474197, + 0.0662091001868248, + 0.13950827717781067, + 0.06911428272724152, + -0.1255066841840744 + ] + }, + "p244_369.wav": { + "name": "p244", + "embedding": [ + 0.028199300169944763, + 0.10727851092815399, + 0.0007854877039790154, + 0.014856789261102676, + -0.02383865788578987, + 0.05175522714853287, + -0.15402263402938843, + 0.14111328125, + -0.0471477210521698, + 0.14013467729091644, + -0.1019069105386734, + 0.093677818775177, + -0.03452619910240173, + -0.18918216228485107, + -0.06011847034096718, + 0.040417589247226715, + -0.04967929795384407, + -0.033519256860017776, + -0.0112451845780015, + -0.002914853859692812, + 0.06663721054792404, + 0.03348027914762497, + -0.009950281120836735, + 0.03041946142911911, + -0.001922254334203899, + 0.039967119693756104, + 0.01975911855697632, + 0.06062823534011841, + 0.0386592298746109, + -0.010230815038084984, + -0.009711163118481636, + 0.13572587072849274, + -0.018907783553004265, + 0.037021297961473465, + 0.06497976928949356, + 0.009449531324207783, + 0.008329341188073158, + -0.040101662278175354, + -0.015024878084659576, + 0.0030898405238986015, + -0.047345276921987534, + 0.061730872839689255, + 0.037560299038887024, + 0.011270963586866856, + 0.039189569652080536, + 0.05919507145881653, + -0.014882213436067104, + -0.054816409945487976, + -0.08506748080253601, + 0.1604343056678772, + 0.07355619966983795, + -0.016493886709213257, + -0.05894913151860237, + -0.06987728178501129, + 0.1099076122045517, + -0.01109024416655302, + -0.1018749549984932, + -0.033475831151008606, + 0.11122995615005493, + 0.1727573424577713, + -0.02717198245227337, + -0.03787035495042801, + 0.021621355786919594, + 0.14679546654224396, + 0.02834227867424488, + 0.09194448590278625, + 0.056256502866744995, + 0.10263821482658386, + 0.002833115868270397, + 0.008135393261909485, + 0.0622495636343956, + 0.05787428468465805, + 0.028404200449585915, + -0.04193072021007538, + 0.034289535135030746, + 0.008783059194684029, + -0.011217325925827026, + 0.040299057960510254, + -0.028623204678297043, + -0.01079061534255743, + -0.009426545351743698, + 0.02032358944416046, + -0.02184356190264225, + 0.011745870113372803, + -0.025703642517328262, + 0.052416764199733734, + 0.022887282073497772, + -0.006816552951931953, + 0.07264624536037445, + 0.0622590035200119, + 0.03945743665099144, + 0.05528624355792999, + -0.06214742362499237, + -0.10373042523860931, + 0.022373618558049202, + -0.013525377959012985, + 0.023544378578662872, + 0.07536736130714417, + 0.03749381750822067, + -0.011822872795164585, + 0.11691711843013763, + 0.038871005177497864, + -0.007304166443645954, + 0.03464965522289276, + -0.13144895434379578, + 0.12909510731697083, + 0.06521330028772354, + -0.02801908552646637, + 0.024824976921081543, + -0.04462732374668121, + 0.07613295316696167, + 0.07967578619718552, + -0.13630422949790955, + -0.07441186904907227, + 0.05125047266483307, + 0.0413830429315567, + -0.02172214165329933, + 0.11135700345039368, + -0.012063495814800262, + -0.002701223362237215, + 0.09428876638412476, + -0.06454937905073166, + -0.0689682736992836, + -0.049475304782390594, + 0.0462544709444046, + -0.082177072763443, + 0.06637449562549591, + 0.026514071971178055, + 0.0003492333344183862, + -0.017994390800595284, + 0.0893142968416214, + -0.018672045320272446, + 0.00800756923854351, + -0.00570314098149538, + -0.029605116695165634, + 0.049831829965114594, + -0.048813529312610626, + 0.019458573311567307, + 0.008507682010531425, + 0.04998883605003357, + 0.04737384617328644, + 0.025580327957868576, + -0.04806726425886154, + -0.10428784042596817, + -0.0008538421243429184, + 0.04670098423957825, + 0.08045955002307892, + 0.007464645896106958, + -0.036868758499622345, + -0.043867629021406174, + -0.04719647020101547, + 0.007677203975617886, + -0.01655011810362339, + 0.0799948200583458, + 0.003716093488037586, + -0.006608342751860619, + 0.09437038004398346, + -0.0012841126881539822, + -0.00011603336315602064, + -0.06334536522626877, + -0.01437787152826786, + 0.011144244112074375, + 0.02807004377245903, + -0.08281341195106506, + -0.06476549804210663, + 0.011694781482219696, + 0.03234819322824478, + -0.01226583868265152, + 0.028073497116565704, + 0.030791539698839188, + 0.018071219325065613, + 0.04037819057703018, + -0.08583992719650269, + 0.025005552917718887, + -0.12360372394323349, + -0.07989845424890518, + -0.022651176899671555, + -0.002108201151713729, + 0.0013351314701139927, + 0.06324441730976105, + 0.0018283510580658913, + 0.01843988336622715, + 0.016505595296621323, + -0.08618628233671188, + -0.08267609030008316, + 0.07102423906326294, + 0.08336284756660461, + 0.013562096282839775, + 0.06645528972148895, + 0.04629442095756531, + -0.03991423547267914, + 0.06404398381710052, + 0.04608313366770744, + 0.11671169102191925, + -0.02419842779636383, + 0.007976994849741459, + -0.06375421583652496, + 0.06935905665159225, + 0.06549336016178131, + -0.10340673476457596, + -0.08530882000923157, + -0.013326704502105713, + -0.05254099518060684, + 0.02138952538371086, + -0.01734915003180504, + 0.018607545644044876, + 0.007718452252447605, + -0.01408150140196085, + -0.09854468703269958, + -0.05838078260421753, + 0.06029728427529335, + -0.09261518716812134, + -0.01981927827000618, + -0.07572667300701141, + 0.05167001485824585, + 0.11062225699424744, + 0.037236444652080536, + -0.0400782972574234, + -0.02766759879887104, + 0.04832552373409271, + -0.07503670454025269, + -0.02767399698495865, + 0.010355996899306774, + 0.022310465574264526, + -0.09718108177185059, + 0.023773279041051865, + -0.08914737403392792, + 0.054145485162734985, + -0.07524878531694412, + 0.14482787251472473, + -0.0031678318046033382, + -0.08146260678768158, + -0.07533472776412964, + 0.02277853712439537, + -0.01881023868918419, + 0.04335108771920204, + 0.029217790812253952, + 0.05414988100528717, + 0.01590767502784729, + -0.055966816842556, + 0.12878789007663727, + 0.03935732692480087, + -0.029454415664076805, + -0.06619588285684586, + -0.03981907665729523, + -0.039492495357990265, + 0.022052889689803123, + 0.025556489825248718, + -0.09094993770122528, + -0.04063460975885391, + 0.02391265705227852, + -0.02889437787234783, + 0.07761697471141815, + 0.13333022594451904, + 0.045225322246551514, + -0.12099325656890869 + ] + }, + "p244_055.wav": { + "name": "p244", + "embedding": [ + 0.046574436128139496, + 0.08913436532020569, + -0.0023929483722895384, + 0.004350261762738228, + -0.04254953935742378, + 0.06514020264148712, + -0.1442471146583557, + 0.1451658010482788, + -0.0565878227353096, + 0.1407376527786255, + -0.09106993675231934, + 0.11484470963478088, + -0.03148968145251274, + -0.19993528723716736, + -0.022515378892421722, + 0.048772528767585754, + -0.04098231717944145, + -0.017407460138201714, + -0.029846753925085068, + -0.025409795343875885, + 0.04550321400165558, + 0.01899908110499382, + 0.009541154839098454, + 0.009712934494018555, + 0.007824135944247246, + 0.07307508587837219, + -0.004122601822018623, + 0.03266330435872078, + 0.002577691338956356, + -0.026551980525255203, + -0.03578141704201698, + 0.11213751137256622, + -0.05473366379737854, + 0.004312671720981598, + 0.07759320735931396, + -0.01027532760053873, + -0.024935448542237282, + -0.0615367516875267, + -0.014649576507508755, + -0.008107008412480354, + -0.06940373033285141, + 0.05909372866153717, + 0.024877093732357025, + -0.008142421022057533, + 0.04316188395023346, + 0.04451502859592438, + 0.0028448961675167084, + -0.043630972504615784, + -0.09380718320608139, + 0.1379014253616333, + 0.07744523882865906, + -0.004231967031955719, + -0.05677090585231781, + -0.05916500836610794, + 0.11454176902770996, + -0.003850226290524006, + -0.11819355189800262, + -0.04130569100379944, + 0.10107502341270447, + 0.15562397241592407, + -0.05671142041683197, + -0.026052938774228096, + 0.028546340763568878, + 0.10549560189247131, + 0.03289832919836044, + 0.11902220547199249, + 0.08150166273117065, + 0.1073945164680481, + -0.01186227984726429, + 0.024482499808073044, + 0.06277100741863251, + 0.055194370448589325, + 0.0640106201171875, + -0.03717948496341705, + 0.022137347608804703, + 0.011258618906140327, + -0.024129696190357208, + 0.016543114557862282, + -0.03129882737994194, + -0.01165520865470171, + -0.019313769415020943, + -0.005342992953956127, + 0.0018325226847082376, + 0.009058971889317036, + -0.019726015627384186, + 0.05271347239613533, + 0.03635776415467262, + -0.000942105136346072, + 0.07288220524787903, + 0.017791273072361946, + -0.0028136475011706352, + 0.07125572860240936, + -0.08712626248598099, + -0.07857319712638855, + 0.02426619827747345, + -0.011976849287748337, + -0.0002128448977600783, + 0.09163360297679901, + 0.05353984609246254, + -0.011702270247042179, + 0.12337925285100937, + 0.04680298641324043, + -0.0005060539115220308, + 0.03358887881040573, + -0.10153765976428986, + 0.12774483859539032, + 0.07750610262155533, + -0.05008864402770996, + 0.04139804095029831, + -0.059163689613342285, + 0.08013476431369781, + 0.08006198704242706, + -0.14718866348266602, + -0.0539596751332283, + 0.04259147495031357, + 0.02254943922162056, + -0.026735395193099976, + 0.1272776573896408, + -0.02291165292263031, + 0.0169075895100832, + 0.11666344106197357, + -0.08210164308547974, + -0.059017203748226166, + -0.024821419268846512, + 0.043551139533519745, + -0.08164355158805847, + 0.06433211266994476, + 0.04648889973759651, + -0.0016722474247217178, + 0.013577437028288841, + 0.10247376561164856, + -0.027321791276335716, + -0.02072293311357498, + 0.005596350412815809, + -0.03557903319597244, + 0.02170388586819172, + -0.03603385388851166, + 0.0076075354591012, + 0.024209316819906235, + 0.04263443499803543, + 0.0333988256752491, + 0.008780399337410927, + -0.037260085344314575, + -0.10201187431812286, + 0.012085439637303352, + 0.04208651930093765, + 0.08861590176820755, + -0.00486858282238245, + -0.02041034586727619, + -0.03934132307767868, + -0.06423559039831161, + 0.004675803240388632, + -0.02093695104122162, + 0.07811477780342102, + -0.027870360761880875, + 0.007149981334805489, + 0.08687368035316467, + 0.03586791083216667, + -0.003421555971726775, + -0.07692418992519379, + -0.03912508487701416, + 0.00718061625957489, + 0.047734081745147705, + -0.08591185510158539, + -0.07083427906036377, + -0.014545300975441933, + 0.03895916789770126, + -0.017533330246806145, + 0.05183684080839157, + 0.03833241015672684, + 0.025639843195676804, + 0.02463449165225029, + -0.08224032819271088, + 0.015124998986721039, + -0.11992624402046204, + -0.07971511036157608, + -0.01891009509563446, + -0.013322421349585056, + -0.004228496458381414, + 0.06551694869995117, + -0.0019042243948206306, + 0.03481516242027283, + -0.014965128153562546, + -0.07622719556093216, + -0.08238254487514496, + 0.06252120435237885, + 0.07650018483400345, + -0.011789831332862377, + 0.04586467891931534, + 0.05817842483520508, + -0.049839988350868225, + 0.0470852330327034, + 0.06303859502077103, + 0.1288510262966156, + -0.02223774418234825, + 0.03674256429076195, + -0.06645467132329941, + 0.07680311799049377, + 0.07735106348991394, + -0.08554330468177795, + -0.0876953974366188, + -0.018741222098469734, + -0.05704496055841446, + 0.03937928378582001, + -0.019623935222625732, + -0.0041176192462444305, + -0.0019676941446959972, + -0.0062654884532094, + -0.08003780245780945, + -0.07332847267389297, + 0.07443499565124512, + -0.0674520954489708, + -0.005016189534217119, + -0.09536699950695038, + 0.05337999761104584, + 0.0944749191403389, + 0.031060732901096344, + -0.026241417974233627, + -0.005389410071074963, + 0.04848342016339302, + -0.03311874344944954, + 0.0016810663510113955, + 0.0416463166475296, + 0.03446490317583084, + -0.11019304394721985, + -0.003943437710404396, + -0.08162915706634521, + 0.06479348242282867, + -0.05929083377122879, + 0.1414589285850525, + -0.00805061124265194, + -0.04871737211942673, + -0.0753415897488594, + 0.035351913422346115, + 0.00344419339671731, + 0.036168865859508514, + 0.03754804655909538, + 0.07143204659223557, + 0.02240382507443428, + -0.06710101664066315, + 0.12995368242263794, + 0.014064205810427666, + -0.023517899215221405, + -0.06127078831195831, + -0.04899080842733383, + -0.04501912370324135, + -0.0015472689410671592, + 0.005220281425863504, + -0.10901229083538055, + -0.028873872011899948, + 0.019628137350082397, + -0.016123972833156586, + 0.056438006460666656, + 0.14413830637931824, + 0.06163401901721954, + -0.12603460252285004 + ] + }, + "p244_416.wav": { + "name": "p244", + "embedding": [ + 0.0567907989025116, + 0.06137121841311455, + 0.03674077242612839, + -0.03178399056196213, + 0.00300041027367115, + 0.11558578163385391, + -0.09009912610054016, + 0.09349261224269867, + -0.0014780350029468536, + 0.027230067178606987, + -0.067775659263134, + 0.034372493624687195, + 0.0031084883958101273, + -0.1340586543083191, + -0.011272762902081013, + 0.047002751380205154, + -0.03475184738636017, + 0.025634601712226868, + -0.04725174978375435, + -0.01655474305152893, + -0.02471337839961052, + 0.008841507136821747, + 0.04945560172200203, + -0.02523030713200569, + 0.05547273904085159, + 0.03038673661649227, + 0.004403010942041874, + 0.019978735595941544, + -0.013245188631117344, + -0.014343657530844212, + -0.012119540013372898, + 0.07473617792129517, + -0.040856122970581055, + -0.032392777502536774, + 0.06482695788145065, + -0.003955521620810032, + 0.04602472856640816, + -0.09960207343101501, + -0.021383536979556084, + 0.03907986357808113, + -0.06382596492767334, + 0.08577613532543182, + 0.07248856127262115, + 0.031154153868556023, + 0.024028554558753967, + 0.012702086009085178, + 0.004519999492913485, + -0.050253767520189285, + -0.09138837456703186, + 0.14109325408935547, + 0.019830642268061638, + 0.030226966366171837, + -0.08460353314876556, + -0.0027941223233938217, + 0.05003519356250763, + 0.0001817962620407343, + -0.03909480199217796, + -0.01801268942654133, + 0.04741377383470535, + 0.08155964314937592, + 0.04193412885069847, + -0.00751175731420517, + 0.0282631553709507, + 0.07708166539669037, + -0.0008111521601676941, + 0.026783302426338196, + 0.08534255623817444, + 0.09093628823757172, + 0.020387357100844383, + 0.0287494957447052, + 0.05056292191147804, + -0.011136289685964584, + 0.012760885059833527, + -0.02051311917603016, + 0.034366849809885025, + -0.03974774479866028, + -0.014197340235114098, + -0.014851966872811317, + -0.0009447336196899414, + -0.02088828943669796, + 0.06970079243183136, + 0.03769897669553757, + 0.01453565526753664, + 0.06822018325328827, + -0.04767470434308052, + 0.027288168668746948, + -0.02114154025912285, + 0.09532777965068817, + 0.08049063384532928, + 0.044545844197273254, + 0.03397013992071152, + 0.00405912846326828, + -0.025210492312908173, + -0.08055074512958527, + 0.01917753927409649, + 0.028193194419145584, + 0.0009263250976800919, + 0.00024887174367904663, + 0.016075773164629936, + -0.03548377379775047, + 0.09358718991279602, + 0.007819762453436852, + -0.0052802651189267635, + 0.010923583060503006, + -0.06192692369222641, + 0.05942104011774063, + 0.04144691675901413, + 0.012968428432941437, + 0.06518562883138657, + -0.021607359871268272, + 0.0213124118745327, + 0.0648246482014656, + -0.08226243406534195, + -0.018341904506087303, + 0.029112935066223145, + 0.018069801852107048, + 0.049465928226709366, + 0.11785601824522018, + 0.015189849771559238, + 0.021076707169413567, + 0.035244591534137726, + -0.07194758206605911, + -0.019156519323587418, + 0.04732681065797806, + 0.001741865649819374, + 0.018829703330993652, + -0.0234701968729496, + 0.029811378568410873, + 0.01583380252122879, + -0.07465830445289612, + 0.03607070446014404, + 0.02948310784995556, + 0.024294618517160416, + -0.05371376872062683, + 0.04280327633023262, + 0.042849522083997726, + -0.0021061180159449577, + -0.025993550196290016, + 0.025131581351161003, + 0.05759604647755623, + -0.009550297632813454, + 0.041474323719739914, + -0.051814183592796326, + -0.09134930372238159, + -0.051411066204309464, + -0.017881054431200027, + 0.04415519908070564, + -0.020648781210184097, + -0.02756025455892086, + -0.06745801866054535, + 0.023630425333976746, + -0.0011830441653728485, + -0.007896332070231438, + 0.03980392962694168, + 0.09757402539253235, + -0.06991977989673615, + 0.05163955315947533, + -0.02070273831486702, + 0.032362744212150574, + -0.01946130022406578, + -0.03826843574643135, + 0.024332456290721893, + 0.023941773921251297, + -0.0042892321944236755, + -0.047967202961444855, + 0.014726214110851288, + -0.06178019195795059, + -0.012573277577757835, + -0.005452342331409454, + 0.02859993278980255, + -0.0017840638756752014, + -0.03733401000499725, + -0.07862615585327148, + 0.020164823159575462, + -0.043614305555820465, + -0.03302149847149849, + 0.07899540662765503, + 0.04223420098423958, + -0.03670389950275421, + 0.09814518690109253, + 0.044447124004364014, + 0.02855328656733036, + -0.03492702916264534, + -0.028882192447781563, + 0.04290291666984558, + 0.04755566641688347, + 0.0358084999024868, + -0.0017981259152293205, + 0.02763209491968155, + -0.006372924894094467, + -0.0008250924292951822, + 0.03864503279328346, + 0.039031289517879486, + 0.020886069163680077, + -0.037478022277355194, + -0.03772738575935364, + 0.022353626787662506, + 0.08378852903842926, + -0.006557576358318329, + -0.050600141286849976, + -0.029572520405054092, + 0.04553770646452904, + -0.017793282866477966, + 0.001892803586088121, + -0.00015062838792800903, + 0.025224143639206886, + 0.03570117801427841, + -0.033847302198410034, + -0.048651739954948425, + -0.0749111995100975, + 0.02383178099989891, + -0.0725645124912262, + -0.019341357052326202, + -0.033219676464796066, + 0.0482814759016037, + 0.08746325969696045, + -0.015543824061751366, + -0.004597595892846584, + -0.008085458539426327, + -0.017453357577323914, + -0.019890829920768738, + -0.042361900210380554, + -0.0017944574356079102, + 0.02992306649684906, + -0.0801640972495079, + 0.018427453935146332, + -0.051806218922138214, + 0.06349413841962814, + 0.015992505475878716, + 0.07570898532867432, + 0.059676650911569595, + -0.02038032002747059, + -0.06252992898225784, + -0.004649071022868156, + -0.0071282461285591125, + 0.027470968663692474, + -0.008077695034444332, + 0.0085157360881567, + 0.05133112519979477, + -0.021400058642029762, + 0.05884072184562683, + 0.018169095739722252, + -0.06082256883382797, + -0.04509517922997475, + 0.013953562825918198, + -0.016391271725296974, + 0.025656264275312424, + -0.027521420270204544, + -0.046593815088272095, + 0.025631526485085487, + 0.04764686897397041, + 0.03699498623609543, + 0.011318061500787735, + 0.04729567468166351, + 0.014677945524454117, + -0.04137536883354187 + ] + }, + "p244_022.wav": { + "name": "p244", + "embedding": [ + 0.05324256047606468, + 0.061302293092012405, + -0.005025130696594715, + 0.01198851503431797, + -0.057215042412281036, + 0.04223097488284111, + -0.10840871185064316, + 0.13754360377788544, + -0.02465054765343666, + 0.09339778870344162, + -0.07185589522123337, + 0.11825723946094513, + -0.030186904594302177, + -0.14125891029834747, + -0.016872841864824295, + 0.05601181462407112, + -0.025600483641028404, + -0.0234761293977499, + -0.04188695177435875, + -0.024710973724722862, + 0.013375586830079556, + 0.026865586638450623, + 0.0398847833275795, + 0.01684473268687725, + 0.022400561720132828, + 0.06845802068710327, + -0.0006524207419715822, + 0.038663335144519806, + 0.012818616814911366, + -0.037854522466659546, + -0.01886928454041481, + 0.06561212986707687, + -0.05319884419441223, + 0.0071054003201425076, + 0.05396874621510506, + -0.005310772452503443, + -0.008902838453650475, + -0.062401723116636276, + -0.026669198647141457, + -0.0033368864096701145, + -0.05418379232287407, + 0.07686834782361984, + 0.026250198483467102, + -0.018549030646681786, + 0.03559478744864464, + 0.017564356327056885, + -0.011372784152626991, + -0.035834427922964096, + -0.11986465752124786, + 0.13321977853775024, + 0.042802900075912476, + 0.00832411739975214, + -0.10078143328428268, + -0.040594760328531265, + 0.0821743980050087, + -0.038213491439819336, + -0.08589424192905426, + -0.04702872782945633, + 0.058764275163412094, + 0.11749287694692612, + -0.017929598689079285, + -0.029212012887001038, + 0.01113861333578825, + 0.08081115782260895, + 0.05228882655501366, + 0.057697027921676636, + 0.09072805941104889, + 0.10422497242689133, + -0.03733307123184204, + 0.034734275192022324, + 0.048660267144441605, + 0.05916241556406021, + 0.05137226730585098, + 0.012145251035690308, + 0.00894327461719513, + -0.010723164305090904, + -0.007460992783308029, + 0.009404128417372704, + -0.023798830807209015, + -0.022367704659700394, + -0.019436601549386978, + 0.009480023756623268, + 0.007161378860473633, + 0.020561737939715385, + -0.01759173348546028, + 0.07141675055027008, + 0.02871347777545452, + 0.0041181789711117744, + 0.0652528628706932, + 0.03488336130976677, + -0.027383113279938698, + 0.04738170653581619, + -0.07045860588550568, + -0.06743291020393372, + -0.007237815298140049, + -0.01465634722262621, + 0.03835726156830788, + 0.0582859106361866, + 0.023977557197213173, + 0.0012763416161760688, + 0.11218085139989853, + 0.04241640120744705, + 0.0026273243129253387, + 0.013760223984718323, + -0.0759207010269165, + 0.11506791412830353, + 0.08514852821826935, + -0.018498443067073822, + 0.03904011473059654, + -0.04295190051198006, + 0.048243194818496704, + 0.05668666958808899, + -0.10186289995908737, + -0.047524306923151016, + 0.008349123410880566, + 0.004310175776481628, + 0.0033535838592797518, + 0.1038592979311943, + -0.010126795619726181, + 0.03911980614066124, + 0.09584072232246399, + -0.08150944113731384, + -0.04041064903140068, + 0.016518017277121544, + 0.02416919730603695, + -0.056308772414922714, + 0.04082862287759781, + 0.042970508337020874, + 0.010659074410796165, + 0.01760186068713665, + 0.08590855449438095, + -0.0026000705547630787, + 0.0016993418103083968, + 0.010413152165710926, + -0.028262360021471977, + 0.020225364714860916, + -0.016469767317175865, + -0.014491048641502857, + 0.0718434676527977, + 0.06346558779478073, + 0.04298487305641174, + 0.009037402458488941, + -0.02301657944917679, + -0.10575832426548004, + -0.001162229455076158, + 0.04356175288558006, + 0.06886432319879532, + -0.029556620866060257, + -0.028247911483049393, + -0.041098855435848236, + -0.0413292832672596, + 0.006152871064841747, + 0.014197251759469509, + 0.062205392867326736, + -0.024410007521510124, + 0.004270531237125397, + 0.08781793713569641, + 0.02211890183389187, + -0.00658487668260932, + -0.06471861898899078, + -0.026197416707873344, + 0.000420949247200042, + 0.055853601545095444, + -0.059295106679201126, + -0.0691130980849266, + -0.003671650541946292, + 0.034395016729831696, + -0.027208132669329643, + 0.04693871736526489, + 0.04393736645579338, + 0.004974675364792347, + 0.014129765331745148, + -0.06800070405006409, + 0.024692555889487267, + -0.08237608522176743, + -0.058275967836380005, + 0.015931254252791405, + -0.01525780837982893, + -0.015050581656396389, + 0.06195163354277611, + 0.023209623992443085, + 0.06388459354639053, + -0.011865590699017048, + -0.08598818629980087, + -0.06828141212463379, + 0.05322566255927086, + 0.04108474776148796, + -0.015175786800682545, + 0.04581515118479729, + 0.0505252368748188, + -0.04002430662512779, + 0.0537480004131794, + 0.05123565346002579, + 0.07857302576303482, + -0.05612390115857124, + 0.0047832028940320015, + -0.04561203345656395, + 0.06616338342428207, + 0.06934478878974915, + -0.08487281948328018, + -0.0690789446234703, + -0.028633838519454002, + -0.04422156512737274, + 0.03621666878461838, + -0.020767319947481155, + -0.003627300728112459, + 0.04623904824256897, + -0.012674671597778797, + -0.09455786645412445, + -0.07809048891067505, + 0.06553131341934204, + -0.057748373597860336, + 0.013004057109355927, + -0.06921438127756119, + 0.02716211788356304, + 0.07098933309316635, + 0.02222384326159954, + -0.0037244276609271765, + -0.007137469481676817, + 0.023656774312257767, + -0.03247683122754097, + -0.022201651707291603, + 0.046808600425720215, + 0.031671714037656784, + -0.06424158811569214, + -0.01589217036962509, + -0.06142134591937065, + 0.052113499492406845, + -0.015291360206902027, + 0.133778914809227, + 0.0006001185975037515, + -0.04379967600107193, + -0.06352009624242783, + 0.0006721764802932739, + -0.029346132650971413, + 0.05153700336813927, + 0.041114747524261475, + 0.04483325406908989, + 0.029850849881768227, + -0.0434134267270565, + 0.11956961452960968, + 0.050123121589422226, + -0.05864757299423218, + -0.04936657473444939, + -0.04123452678322792, + -0.03550001233816147, + 0.014122906140983105, + -0.0006522267940454185, + -0.0715562105178833, + 0.0065712593495845795, + 0.0033439528197050095, + -0.022484436631202698, + 0.05486337095499039, + 0.12036079168319702, + 0.07447535544633865, + -0.09200917929410934 + ] + }, + "p244_335.wav": { + "name": "p244", + "embedding": [ + 0.04199257493019104, + 0.08892996609210968, + 0.008641382679343224, + -0.009453978389501572, + -0.02137896604835987, + 0.06362928450107574, + -0.12301419675350189, + 0.08644839376211166, + -0.03773996978998184, + 0.13767001032829285, + -0.05482705309987068, + 0.07192657887935638, + -0.008518553338944912, + -0.1373392939567566, + -0.05108211934566498, + 0.034587059170007706, + -0.07831590622663498, + -0.005116255953907967, + -0.05878249555826187, + -0.008343957364559174, + 0.03481651097536087, + 0.036918655037879944, + 0.04181723669171333, + -0.060623109340667725, + 0.0587172657251358, + 0.037981703877449036, + 0.0530821867287159, + 0.06958456337451935, + 0.06090376898646355, + -0.059416964650154114, + -0.020414866507053375, + 0.10418006777763367, + -0.02444155141711235, + 0.016964247450232506, + 0.03525381162762642, + 0.002311745658516884, + 0.04806772246956825, + -0.06123020499944687, + -0.021319659426808357, + 0.06647691130638123, + -0.012859487906098366, + 0.08751493692398071, + 0.027104495093226433, + 0.0101105822250247, + 0.009353546425700188, + 0.04908143728971481, + -0.005352572537958622, + -0.08023662865161896, + -0.07675178349018097, + 0.1825820505619049, + 0.040736597031354904, + -0.01549578458070755, + -0.05682007223367691, + -0.07847986370325089, + 0.09336146712303162, + -0.019799184054136276, + -0.06816112995147705, + -0.031503286212682724, + 0.07169219851493835, + 0.14021651446819305, + -0.029171908274292946, + 0.005227888002991676, + 0.016633763909339905, + 0.11838006973266602, + 0.022399093955755234, + 0.05357801541686058, + 0.06887462735176086, + 0.08455190062522888, + 0.04138166457414627, + 0.048407185822725296, + 0.025311864912509918, + 0.06889475882053375, + -0.015499012544751167, + -0.011595621705055237, + 0.029313433915376663, + -0.02255629375576973, + -0.0514276847243309, + 0.012401705607771873, + -0.007684722077101469, + -0.0027304328978061676, + 0.015446944162249565, + -0.0002575097605586052, + -0.0019865259528160095, + 0.023443857207894325, + -0.03219224512577057, + 0.04208652302622795, + -0.03812112659215927, + -0.006978310644626617, + 0.07214789092540741, + 0.01456240564584732, + 0.006361637730151415, + 0.04026614874601364, + -0.04209909215569496, + -0.12104970961809158, + -0.007916999980807304, + 0.005739630199968815, + 0.01301302295178175, + 0.05009947717189789, + 0.04211876913905144, + -0.049872443079948425, + 0.10778867453336716, + 0.041849687695503235, + -0.025697171688079834, + 0.02777659147977829, + -0.09451504051685333, + 0.11773648858070374, + 0.0697186291217804, + -0.007269886787980795, + 0.023536888882517815, + -0.04603276774287224, + 0.06318366527557373, + 0.044546082615852356, + -0.14325019717216492, + -0.06988342106342316, + 0.05604244023561478, + -0.02932731807231903, + 0.008439527824521065, + 0.06855004280805588, + -0.0033898716792464256, + -0.018165534362196922, + 0.07283703237771988, + -0.06284299492835999, + -0.04674302041530609, + -0.022204400971531868, + 0.0673355832695961, + -0.05229955166578293, + 0.0053389910608530045, + 0.03211677819490433, + -0.03647319972515106, + -0.01811276748776436, + 0.07836821675300598, + 0.01435836497694254, + 0.02559647150337696, + 0.020600534975528717, + -0.012520981952548027, + 0.06220254302024841, + -0.03484669327735901, + 0.029449913650751114, + 0.04761910066008568, + 0.08200129121541977, + 0.05170191079378128, + 0.007448915857821703, + -0.07090297341346741, + -0.08006048202514648, + 0.006199871655553579, + 0.01693909242749214, + 0.048258572816848755, + -0.019243672490119934, + -0.014141546562314034, + -0.06672597676515579, + -0.058080561459064484, + 0.022938579320907593, + 0.01846778579056263, + 0.10079550743103027, + 0.014553926885128021, + -0.03154242783784866, + 0.1280750185251236, + -0.0310067031532526, + -0.004371006973087788, + -0.008714258670806885, + -0.010095467790961266, + 0.04211525619029999, + 0.005994373932480812, + -0.04314360395073891, + -0.04779992997646332, + 0.025909392163157463, + -0.022329673171043396, + -0.017854366451501846, + -0.0004951246082782745, + -0.003264857456088066, + 0.020975276827812195, + 0.04464074224233627, + -0.05537869781255722, + -0.014321788214147091, + -0.07688619196414948, + 0.0074501242488622665, + -0.009183879010379314, + -0.010820964351296425, + -0.07537836581468582, + 0.10119102895259857, + -0.008822977542877197, + 0.013086620718240738, + 0.012761054560542107, + -0.07155165821313858, + -0.008827300742268562, + 0.06906633824110031, + 0.08144252002239227, + 0.017893217504024506, + 0.035997506231069565, + 0.04988212138414383, + 0.013876711949706078, + 0.03241956979036331, + 0.0907677710056305, + 0.060314640402793884, + 0.0072409361600875854, + -0.021741919219493866, + -0.03993678092956543, + 0.1135089099407196, + 0.010460760444402695, + -0.09237933903932571, + -0.06321438401937485, + -0.02145492658019066, + -0.07221998274326324, + 0.015705164521932602, + -0.007785316091030836, + 0.02918567880988121, + 0.016829241067171097, + -0.010494627989828587, + -0.08744720369577408, + -0.0733645111322403, + 0.06126019358634949, + -0.09093831479549408, + -0.0495544895529747, + -0.029355553910136223, + 0.04723712056875229, + 0.10146286338567734, + 0.07382183521986008, + 0.0197888370603323, + -0.01096520759165287, + 0.053285837173461914, + -0.10108982771635056, + -0.042458269745111465, + 0.01303887739777565, + -0.014631019905209541, + -0.07976728677749634, + 0.039096347987651825, + -0.05399172380566597, + 0.05580270290374756, + -0.06278306990861893, + 0.128276988863945, + 0.00547771668061614, + -0.0711478441953659, + -0.07058806717395782, + 0.03497830778360367, + -0.064044289290905, + 0.023915551602840424, + 0.0412735752761364, + 0.015875883400440216, + 0.043776970356702805, + -0.05875685065984726, + 0.12558326125144958, + 0.014873407781124115, + -0.021190688014030457, + -0.09137672930955887, + -0.04988788813352585, + -0.00418389867991209, + 0.04000279679894447, + 0.021027863025665283, + -0.0600716695189476, + -0.0002337014302611351, + 0.03781680762767792, + -0.03509362041950226, + 0.06237088888883591, + 0.1147623062133789, + 0.06811603158712387, + -0.0892682820558548 + ] + }, + "p244_234.wav": { + "name": "p244", + "embedding": [ + 0.03859855234622955, + 0.06536020338535309, + -0.05317090451717377, + 0.048265717923641205, + -0.07475513219833374, + 0.03391978517174721, + -0.11376482248306274, + 0.07741101086139679, + -0.024729568511247635, + 0.10837063938379288, + -0.06549143046140671, + 0.0974111258983612, + -0.03725048527121544, + -0.16334807872772217, + -0.022786781191825867, + 0.029134754091501236, + -0.021586617454886436, + -0.034028712660074234, + -0.07125753164291382, + -0.05357389524579048, + 0.03808830678462982, + 0.04620485007762909, + 0.037542980164289474, + -0.03874049335718155, + 0.024919772520661354, + 0.07656604051589966, + -0.0012513245455920696, + 0.020306438207626343, + -0.0073990351520478725, + -0.02825022302567959, + -0.033680260181427, + 0.12117268145084381, + -0.05313227325677872, + -0.02491612732410431, + 0.0220029316842556, + -0.011181545443832874, + -0.026563022285699844, + -0.06553985178470612, + 0.00677464809268713, + 0.0188668854534626, + -0.06003882735967636, + 0.07544171065092087, + 0.037750158458948135, + -0.02425515465438366, + 0.03790944069623947, + -0.02394789643585682, + -0.03895793855190277, + -0.031601451337337494, + -0.1135723739862442, + 0.15090526640415192, + 0.06480830907821655, + 0.005111951846629381, + -0.07643724977970123, + -0.03469008952379227, + 0.11702896654605865, + 0.00011325161904096603, + -0.10391978174448013, + -0.0601520910859108, + 0.05091874301433563, + 0.13522972166538239, + -0.021721580997109413, + -0.010522306896746159, + 0.04580019786953926, + 0.08238363265991211, + 0.05134568735957146, + 0.05934164673089981, + 0.09767190366983414, + 0.11020466685295105, + -0.01940980926156044, + 0.026963967829942703, + 0.0635671317577362, + 0.0512508898973465, + 0.004070617258548737, + -0.03484227508306503, + 0.028774341568350792, + -0.023614415898919106, + -0.03152000159025192, + -0.021742310374975204, + -0.0170968659222126, + -0.03713006153702736, + -0.014190487563610077, + -0.006610504351556301, + 0.023592984303832054, + 0.013758573681116104, + -0.07379648089408875, + 0.03989016264677048, + 0.05868522822856903, + -0.04482884332537651, + 0.07561008632183075, + 0.04234018176794052, + -0.02142864651978016, + 0.02775394916534424, + -0.06345707178115845, + -0.06695277243852615, + 0.006896377075463533, + 0.015231841243803501, + -0.002263029105961323, + 0.07118502259254456, + 0.041825756430625916, + -0.01341099664568901, + 0.1182360053062439, + 0.05332415923476219, + -0.00010971445590257645, + 0.016209347173571587, + -0.05489329993724823, + 0.11478199064731598, + 0.09783156961202621, + -0.021169234067201614, + 0.04628896340727806, + -0.025693543255329132, + 0.04850009083747864, + 0.03727053850889206, + -0.0980229601264, + -0.05620863288640976, + 0.01675214245915413, + -0.0005779140628874302, + -0.016480816528201103, + 0.12641844153404236, + -0.023657022044062614, + 0.029201500117778778, + 0.1001882255077362, + -0.07846298068761826, + -0.0468326061964035, + -0.02599833346903324, + 0.0507347472012043, + -0.05261535570025444, + 0.03368260711431503, + 0.06303907930850983, + -0.010581274516880512, + 0.010219539515674114, + 0.07421673089265823, + -0.0032368479296565056, + 0.011091831140220165, + 0.022239116951823235, + -0.030271630734205246, + 0.06623533368110657, + -0.009648853912949562, + -0.014935877174139023, + 0.08406563848257065, + 0.03172847628593445, + 0.07616819441318512, + -0.020973140373826027, + 0.0075493683107197285, + -0.08079719543457031, + 0.034587062895298004, + 0.03369280695915222, + 0.07178688794374466, + -0.02151252143085003, + -0.002016404177993536, + -0.06350171566009521, + -0.09410462528467178, + 0.036443352699279785, + -0.0070542446337640285, + 0.11022815108299255, + -0.02414689213037491, + 0.0006169844418764114, + 0.10694345086812973, + 0.03461815416812897, + -0.0037476629950106144, + -0.039060309529304504, + -0.012701804749667645, + 0.0005930531769990921, + 0.0647931694984436, + -0.06514895707368851, + -0.05673503875732422, + -0.017224684357643127, + 0.028163854032754898, + -0.013866370543837547, + 0.06153073161840439, + 0.06615598499774933, + 0.007006385363638401, + 0.015415019355714321, + -0.09403462707996368, + 0.040469661355018616, + -0.0571637861430645, + 0.0030420292168855667, + -0.018780099228024483, + -0.05402619391679764, + -0.03947633132338524, + 0.10606244206428528, + 0.028492046520113945, + 0.018114376813173294, + -0.00851733423769474, + -0.08809319138526917, + -0.05415783450007439, + 0.04925578832626343, + 0.0618937686085701, + -0.03630887717008591, + 0.04230650141835213, + 0.06619949638843536, + -0.02612951397895813, + 0.02468230575323105, + 0.08153250068426132, + 0.06665295362472534, + -0.05009851232171059, + -0.010692842304706573, + -0.046283796429634094, + 0.0961911752820015, + 0.057161860167980194, + -0.08834637701511383, + -0.058778949081897736, + -0.05279126390814781, + -0.0705227255821228, + 0.032884445041418076, + -0.00844891369342804, + 0.011212746612727642, + 0.04085033759474754, + -0.01949182152748108, + -0.11022347211837769, + -0.09587196260690689, + 0.08932378888130188, + -0.05024102330207825, + 0.0008833149913698435, + -0.08373536169528961, + 0.011574815027415752, + 0.07716451585292816, + 0.030302952975034714, + -0.018663160502910614, + 0.003427368588745594, + 0.026869148015975952, + -0.03749735653400421, + 0.025821998715400696, + 0.06695492565631866, + 0.030477840453386307, + -0.08606046438217163, + -0.01636342518031597, + -0.07262247055768967, + 0.09376001358032227, + -0.045824408531188965, + 0.13435187935829163, + 0.030832357704639435, + -0.029940340667963028, + -0.0678267776966095, + 0.08531317859888077, + -0.038513388484716415, + 0.0648491233587265, + 0.07825575023889542, + 0.06580692529678345, + 0.023558005690574646, + -0.07233178615570068, + 0.10416823625564575, + 0.0473080649971962, + -0.03588294982910156, + -0.07229477912187576, + -0.020407695323228836, + -0.02657570317387581, + 0.03915943577885628, + 0.04880320280790329, + -0.06501597911119461, + 0.018592577427625656, + 0.0319160558283329, + -0.024493027478456497, + 0.08041813969612122, + 0.110394686460495, + 0.11622071266174316, + -0.07773072272539139 + ] + }, + "p244_397.wav": { + "name": "p244", + "embedding": [ + 0.057540830224752426, + 0.06532454490661621, + -0.02408442460000515, + 0.042704205960035324, + -0.062366336584091187, + 0.056560419499874115, + -0.1079028993844986, + 0.11655204743146896, + -0.04469050094485283, + 0.13947443664073944, + -0.07262063026428223, + 0.11737707257270813, + -0.01949811726808548, + -0.17521195113658905, + -0.03316901624202728, + 0.05325757712125778, + -0.06746870279312134, + -0.04792320355772972, + -0.0665336474776268, + -0.03227730095386505, + 0.0373370423913002, + 0.05137907713651657, + 0.035126909613609314, + 0.02016899548470974, + 0.014160270802676678, + 0.07044355571269989, + -0.012833474203944206, + 0.03222101554274559, + 0.015369421802461147, + -0.07165725529193878, + -0.04738829657435417, + 0.09383641928434372, + -0.0397530198097229, + 0.011873606592416763, + 0.03279845416545868, + 0.00019890815019607544, + 0.00031969169504009187, + -0.08078673481941223, + -0.044617921113967896, + 0.0028171264566481113, + -0.05969257652759552, + 0.06437467038631439, + 0.01772245019674301, + -0.031186606734991074, + 0.04823547601699829, + -0.010540718212723732, + -0.04005371034145355, + -0.04987271875143051, + -0.10491453111171722, + 0.1607937067747116, + 0.09455075860023499, + 0.005585236009210348, + -0.06001652032136917, + -0.06775936484336853, + 0.10809382051229477, + -0.0183560773730278, + -0.1331251561641693, + -0.031904272735118866, + 0.06258156150579453, + 0.16119226813316345, + -0.03705383464694023, + -0.02197418175637722, + 0.034684278070926666, + 0.12138589471578598, + 0.06770135462284088, + 0.08071542531251907, + 0.09527765959501266, + 0.10467272996902466, + -0.023244358599185944, + 0.02007889375090599, + 0.07369059324264526, + 0.07845441997051239, + 0.0824674516916275, + -0.004242807626724243, + 0.028644919395446777, + 0.015267936512827873, + -0.029963966459035873, + -0.012296195141971111, + -0.03389760106801987, + -0.008340008556842804, + -0.016823895275592804, + -0.0030051961075514555, + 0.018570445477962494, + 0.015772460028529167, + -0.02580837905406952, + 0.05877598747611046, + 0.03376041352748871, + -0.023342913016676903, + 0.047215916216373444, + 0.027569323778152466, + -0.0004563244874589145, + 0.06384430825710297, + -0.06534422934055328, + -0.08968979120254517, + 0.01588067226111889, + 0.011095504276454449, + 0.014128206297755241, + 0.06967657804489136, + 0.04535719379782677, + -0.02505848929286003, + 0.11780580133199692, + 0.04420093819499016, + -0.010124864988029003, + 0.0207502581179142, + -0.0945325717329979, + 0.10449769347906113, + 0.10750206559896469, + -0.02789856493473053, + 0.03669149801135063, + -0.0426027774810791, + 0.09445399045944214, + 0.07198980450630188, + -0.14391843974590302, + -0.05636026710271835, + 0.030613554641604424, + -0.012263334356248379, + -0.004027357324957848, + 0.10700099170207977, + -0.006462668534368277, + 0.04592222720384598, + 0.10730355978012085, + -0.08114545047283173, + -0.03928473964333534, + -0.023136427626013756, + 0.053239788860082626, + -0.08261683583259583, + 0.052216537296772, + 0.036352451890707016, + -0.0025719678960740566, + 0.003824323182925582, + 0.07800237834453583, + -0.02541550248861313, + -0.026276595890522003, + 0.011455315165221691, + -0.05827484652400017, + 0.02425011619925499, + -0.02965531498193741, + -0.02056877315044403, + 0.06409473717212677, + 0.03817122057080269, + 0.02788360044360161, + -0.020514635369181633, + -0.02869958057999611, + -0.11039724946022034, + 0.0313028059899807, + 0.026596589013934135, + 0.07606153935194016, + -0.007155153900384903, + -0.00208934280090034, + -0.03904145956039429, + -0.07480637729167938, + 0.03183102607727051, + -0.030751032754778862, + 0.06840033829212189, + -0.030961211770772934, + 0.004520168527960777, + 0.09241440147161484, + 0.013798135332763195, + -0.011791705153882504, + -0.036504633724689484, + -0.029024504125118256, + 0.017915723845362663, + 0.06781511008739471, + -0.07024537026882172, + -0.070942722260952, + 0.004237617366015911, + 0.02153971791267395, + -0.023881524801254272, + 0.04084716737270355, + 0.028243567794561386, + 0.012064069509506226, + 0.02149488590657711, + -0.07491093128919601, + 0.008561758324503899, + -0.12347130477428436, + -0.060442790389060974, + 0.00012538924056570977, + -0.04127415642142296, + 0.00697859562933445, + 0.06804788112640381, + 0.016223493963479996, + 0.029025528579950333, + -0.022596752271056175, + -0.09798000752925873, + -0.07826878130435944, + 0.07046032696962357, + 0.06413925439119339, + 0.010672470554709435, + 0.04109174758195877, + 0.07330833375453949, + -0.016872752457857132, + 0.044797904789447784, + 0.05065843462944031, + 0.11130677163600922, + -0.015410601161420345, + 0.021907702088356018, + -0.07040541619062424, + 0.09405621141195297, + 0.07999931275844574, + -0.07885131239891052, + -0.08681308478116989, + -0.034416936337947845, + -0.06607018411159515, + 0.049803461879491806, + -0.025917261838912964, + 0.0004382620973046869, + 0.03776116669178009, + -0.005550956353545189, + -0.11164825409650803, + -0.08303257077932358, + 0.11659802496433258, + -0.05695090815424919, + -0.015014204196631908, + -0.08481454849243164, + 0.03651123866438866, + 0.09869354963302612, + 0.034791506826877594, + -0.018765516579151154, + 0.020810086280107498, + 0.05472680926322937, + -0.04323801025748253, + -0.004003293812274933, + 0.04698282107710838, + 0.019797801971435547, + -0.12165190279483795, + -0.017747284844517708, + -0.0698779746890068, + 0.06123388931155205, + -0.051786281168460846, + 0.13769465684890747, + -0.0026503829285502434, + -0.03999355062842369, + -0.08109214156866074, + 0.06105998158454895, + -0.005325633566826582, + 0.06430846452713013, + 0.04729950428009033, + 0.07043691724538803, + 0.0337294302880764, + -0.08141229301691055, + 0.11539270728826523, + 0.04767915606498718, + -0.04081384465098381, + -0.05705872178077698, + -0.038658443838357925, + -0.034047093242406845, + 0.007532726041972637, + 8.991795766633004e-05, + -0.07070273905992508, + -0.0014495283830910921, + 0.005676197819411755, + -0.0341653935611248, + 0.05727916583418846, + 0.14224930107593536, + 0.08008070290088654, + -0.11024807393550873 + ] + }, + "p244_106.wav": { + "name": "p244", + "embedding": [ + 0.0427519716322422, + 0.07694810628890991, + -0.02245134301483631, + -0.005665434058755636, + -0.010476135648787022, + 0.06258927285671234, + -0.1418188214302063, + 0.10302042961120605, + -0.06556939333677292, + 0.11914758384227753, + -0.07776011526584625, + 0.08804655075073242, + -0.011592025868594646, + -0.1432502567768097, + -0.08018187433481216, + 0.027180248871445656, + -0.01970004104077816, + -0.004508022218942642, + -0.026844289153814316, + -0.01862291246652603, + 0.04567750543355942, + 0.018382199108600616, + 0.0061140842735767365, + -0.00606498122215271, + 0.010840908624231815, + 0.03474259749054909, + 0.033002011477947235, + 0.03733992204070091, + -0.004828840494155884, + 0.02688691020011902, + 0.020637158304452896, + 0.10734124481678009, + -0.01397402212023735, + 0.027543287724256516, + 0.05704706907272339, + 0.030004329979419708, + -0.008690332062542439, + -0.07661132514476776, + 0.010858278721570969, + -0.0017732740379869938, + -0.024860268458724022, + 0.0724225789308548, + 0.05331461876630783, + 0.031018195673823357, + 0.016407746821641922, + -0.0012391991913318634, + -0.012477651238441467, + -0.0644802451133728, + -0.08840176463127136, + 0.15691760182380676, + 0.04493248835206032, + 0.024969400838017464, + -0.10528482496738434, + -0.04488055408000946, + 0.11523723602294922, + -0.004678588360548019, + -0.06408601999282837, + -0.0564829558134079, + 0.05434976890683174, + 0.1709747016429901, + -0.020079301670193672, + -0.04213612526655197, + 0.005624804645776749, + 0.11440606415271759, + -0.010934830643236637, + 0.06499598920345306, + 0.10186415910720825, + 0.08263866603374481, + 0.012216202914714813, + 0.020930536091327667, + 0.02490309253334999, + 0.04082687944173813, + 0.0038823112845420837, + -0.05641651153564453, + 0.028496716171503067, + -0.01733851246535778, + -0.016198333352804184, + 0.03138786926865578, + -0.03411983326077461, + -0.05369788780808449, + -0.02596319653093815, + 0.016600243747234344, + 0.005684027448296547, + 0.02999354712665081, + -0.05634834244847298, + 0.025477098301053047, + 0.0038183159194886684, + -0.04912189394235611, + 0.05777186527848244, + 0.0677749514579773, + -0.003958894871175289, + -0.005723932757973671, + -0.04160679131746292, + -0.09642630815505981, + 0.016420360654592514, + 0.00039441417902708054, + -0.009193778969347477, + 0.0674218237400055, + 0.021623987704515457, + -0.002396136522293091, + 0.07411657273769379, + 0.033429283648729324, + -0.019676407799124718, + -0.015580292791128159, + -0.08421895653009415, + 0.09572944790124893, + 0.09954970329999924, + -0.01319190114736557, + 0.009538757614791393, + -0.062058378010988235, + 0.02598610892891884, + 0.07688501477241516, + -0.1164083480834961, + -0.08166754990816116, + 0.06654050201177597, + 0.05794944614171982, + 0.03165165334939957, + 0.09595367312431335, + -0.007649307604879141, + -0.022623702883720398, + 0.059548377990722656, + -0.05058114230632782, + -0.06607181578874588, + -0.06546132266521454, + 0.040819473564624786, + -0.04138847067952156, + 0.024085860699415207, + 0.03412676602602005, + 0.02466416172683239, + -0.05497874319553375, + 0.06199301406741142, + 0.01113943662494421, + -0.008335095830261707, + -0.010134845972061157, + 0.026606829836964607, + 0.0726943239569664, + -0.021889425814151764, + -0.010633549652993679, + 0.009030130691826344, + 0.07020898163318634, + 0.032597240060567856, + 0.04164118692278862, + -0.030050138011574745, + -0.06943956017494202, + -0.014498108997941017, + 0.07804124057292938, + 0.04547502100467682, + -0.0435788631439209, + -0.05152851343154907, + -0.04110708460211754, + -0.032782066613435745, + -0.0016359263099730015, + -0.015720851719379425, + 0.09455867111682892, + 0.031994856894016266, + 0.031123023480176926, + 0.10014209151268005, + -0.02973327413201332, + -0.01036190614104271, + -0.02443264052271843, + 0.04108366742730141, + 0.018774792551994324, + 0.015921510756015778, + -0.045924410223960876, + -0.05289851874113083, + 0.003566407598555088, + 0.024182381108403206, + -0.022433005273342133, + -0.005906634032726288, + 0.01901666820049286, + -0.0029092319309711456, + 0.041755907237529755, + -0.08814629912376404, + 0.013949907384812832, + -0.13104656338691711, + -0.007741441950201988, + -0.008114174008369446, + -0.04755556955933571, + 0.012878422625362873, + 0.0642852932214737, + 0.03845012187957764, + 0.013791058212518692, + -0.004724073689430952, + -0.09635418653488159, + -0.03396987542510033, + 0.08273695409297943, + 0.10104820132255554, + -0.013546517118811607, + 0.007590843364596367, + 0.025754503905773163, + 0.004993945360183716, + 0.02900567278265953, + 0.0814787894487381, + 0.061993952840566635, + -0.04452437907457352, + -0.029020089656114578, + -0.04106205329298973, + 0.09100213646888733, + 0.0467894971370697, + -0.09919969737529755, + -0.0771709531545639, + -0.019369514659047127, + -0.04193383455276489, + -0.00019593536853790283, + -0.025279633700847626, + 0.017453771084547043, + 0.02317841723561287, + -0.04758284240961075, + -0.11623245477676392, + -0.08040468394756317, + 0.0547233484685421, + -0.05182869732379913, + -0.0026939632371068, + -0.05191291868686676, + 0.04142235592007637, + 0.0949823260307312, + 0.020158160477876663, + -0.007058457471430302, + -0.024548951536417007, + -0.00752929225564003, + -0.07997819781303406, + -0.043783482164144516, + -0.03655308857560158, + 0.006962346378713846, + -0.09107588231563568, + 0.02590060979127884, + -0.06737266480922699, + 0.09787330776453018, + -0.07624639570713043, + 0.10886448621749878, + -0.006393615156412125, + -0.06544225662946701, + -0.07187162339687347, + -0.02109329029917717, + -0.0179626252502203, + 0.05293448269367218, + 0.025958435609936714, + 0.04295800253748894, + -0.021494261920452118, + -0.057783521711826324, + 0.09629243612289429, + 0.07330377399921417, + -0.020481985062360764, + -0.08109760284423828, + -0.018762478604912758, + -0.002446417696774006, + 0.02659645862877369, + -0.004103943705558777, + -0.03248944133520126, + 0.004662847146391869, + 0.024305369704961777, + -0.04136628657579422, + 0.06538631021976471, + 0.10389071702957153, + 0.0602184496819973, + -0.10899677872657776 + ] + }, + "p244_191.wav": { + "name": "p244", + "embedding": [ + 0.022175565361976624, + 0.0747724249958992, + -0.027321409434080124, + 0.030165312811732292, + -0.05689185485243797, + 0.07187459617853165, + -0.15050649642944336, + 0.10399547219276428, + -0.037636712193489075, + 0.1342366337776184, + -0.04982148855924606, + 0.10650668293237686, + -0.008327571675181389, + -0.22470709681510925, + -0.04590329900383949, + 0.054470378905534744, + -0.06933785229921341, + -0.05900704115629196, + -0.051514819264411926, + -0.025101831182837486, + 0.044221095740795135, + 0.03885680064558983, + 0.0031743545550853014, + 0.0074349381029605865, + 0.009667285718023777, + 0.06393073499202728, + -0.009768174961209297, + 0.03430560976266861, + 0.008768603205680847, + -0.014811355620622635, + -0.028077878057956696, + 0.1162358820438385, + -0.04909404367208481, + 0.004908096045255661, + 0.04136002063751221, + -0.005539552308619022, + 0.007891043089330196, + -0.036787621676921844, + -0.0105166370049119, + 0.03261182829737663, + -0.05397137999534607, + 0.08123006671667099, + 0.056336089968681335, + 0.02756069228053093, + 0.042793285101652145, + 0.01947682537138462, + -0.03352392092347145, + -0.052572377026081085, + -0.10145284980535507, + 0.1726909726858139, + 0.08373115211725235, + -0.02637336030602455, + -0.042922284454107285, + -0.05629683658480644, + 0.1016121581196785, + 0.006244222167879343, + -0.13506515324115753, + -0.06101066246628761, + 0.10683766007423401, + 0.15685945749282837, + -0.027135232463479042, + -0.02631394751369953, + 0.016621630638837814, + 0.14870795607566833, + 0.046060968190431595, + 0.09830193221569061, + 0.06431888043880463, + 0.1227603331208229, + -0.012555280700325966, + -0.012496725656092167, + 0.08732208609580994, + 0.048278260976076126, + 0.02975551038980484, + -0.031862739473581314, + 0.03687242045998573, + -0.010816832073032856, + 0.013931049965322018, + 0.0018217662582173944, + -0.021716777235269547, + 0.004080775193870068, + 0.005389925092458725, + 0.008121881633996964, + -0.01443731039762497, + 0.031808264553546906, + -0.03613647073507309, + 0.046505335718393326, + 0.04709441959857941, + 0.0026023699901998043, + 0.06788568198680878, + 0.06565072387456894, + 0.026158148422837257, + 0.0611119419336319, + -0.06408911198377609, + -0.0799141675233841, + 0.04541116580367088, + 0.014736386016011238, + 0.01829720474779606, + 0.06068801134824753, + 0.033604465425014496, + -0.008374703116714954, + 0.10796406120061874, + 0.04096109792590141, + -0.03924153372645378, + 0.03126382827758789, + -0.10777614265680313, + 0.14503967761993408, + 0.07615648210048676, + -0.011648321524262428, + 0.028465423732995987, + -0.0382898710668087, + 0.07624278217554092, + 0.06406006217002869, + -0.12477913498878479, + -0.06001076102256775, + 0.05483951047062874, + 0.02717859297990799, + -0.04498917981982231, + 0.13747744262218475, + -0.009407522156834602, + 0.015672191977500916, + 0.10710211843252182, + -0.061838794499635696, + -0.043705619871616364, + -0.03202421963214874, + 0.03577689453959465, + -0.0925050601363182, + 0.03193860873579979, + 0.046968456357717514, + -0.015962304547429085, + 0.00843830220401287, + 0.0938134416937828, + -0.009952452965080738, + 0.004126099403947592, + 0.0025766040198504925, + -0.02352413907647133, + 0.0604381188750267, + -0.00112285150680691, + 0.010314145125448704, + 0.04976432025432587, + 0.023834409192204475, + 0.05055885761976242, + -0.012612798251211643, + -0.0377265028655529, + -0.12382485717535019, + 0.025742942467331886, + 0.024966957047581673, + 0.08417195081710815, + -0.013430200517177582, + 0.0034405088517814875, + -0.04963560029864311, + -0.08324241638183594, + 0.030722662806510925, + -0.02228548191487789, + 0.09034071862697601, + -0.008055459707975388, + -0.037861380726099014, + 0.08979056030511856, + 0.016244126483798027, + 0.0017152815125882626, + -0.035636186599731445, + -0.03838826343417168, + 0.013545718975365162, + 0.03792436048388481, + -0.10829644650220871, + -0.03670772165060043, + 0.002010050928220153, + 0.042315997183322906, + -0.0072885481640696526, + 0.037247128784656525, + 0.055533722043037415, + 0.011021795682609081, + 0.028642475605010986, + -0.07372120767831802, + 0.016794823110103607, + -0.08757111430168152, + -0.05934591963887215, + -0.014382150024175644, + -0.021497951820492744, + -0.013199860230088234, + 0.0862390547990799, + -0.0036681336350739002, + 0.019779764115810394, + -0.02517828717827797, + -0.07932916283607483, + -0.0665304884314537, + 0.0705956220626831, + 0.07664357870817184, + -0.0077321394346654415, + 0.054230138659477234, + 0.05223070830106735, + -0.039549436420202255, + 0.04978561773896217, + 0.055477555841207504, + 0.1299421638250351, + -0.04276376590132713, + 0.029367748647928238, + -0.0633784830570221, + 0.08539832383394241, + 0.05862031131982803, + -0.08714938163757324, + -0.059677526354789734, + 0.0008904297719709575, + -0.052549783140420914, + 0.02825263887643814, + -0.04864303395152092, + 0.005762938410043716, + 0.030967002734541893, + 0.009038272313773632, + -0.1029125452041626, + -0.08618417382240295, + 0.06293707340955734, + -0.08058104664087296, + -0.005472587421536446, + -0.09468360990285873, + 0.04746519774198532, + 0.10620653629302979, + 0.03684850037097931, + -0.049029648303985596, + -0.008159715682268143, + 0.04514487460255623, + -0.039109472185373306, + 0.0007048398838378489, + 0.039099399000406265, + 0.037268124520778656, + -0.12623754143714905, + -0.03399093076586723, + -0.09068727493286133, + 0.050463948398828506, + -0.0474587008357048, + 0.13753531873226166, + 0.028787899762392044, + -0.03845091164112091, + -0.060725659132003784, + 0.04398157447576523, + -0.016064437106251717, + 0.06347043067216873, + 0.047907594591379166, + 0.074980728328228, + 0.04420159384608269, + -0.03178921714425087, + 0.12935315072536469, + 0.04517108201980591, + -0.03804997354745865, + -0.07401292026042938, + 0.010099492967128754, + -0.032603826373815536, + 0.0480019710958004, + 0.04429735988378525, + -0.11224681884050369, + -0.02244671806693077, + 0.0525258332490921, + -0.03385701775550842, + 0.05783668905496597, + 0.1340969055891037, + 0.07120203226804733, + -0.0999627485871315 + ] + }, + "p244_408.wav": { + "name": "p244", + "embedding": [ + 0.05795387923717499, + 0.07993321120738983, + -0.028890900313854218, + 0.04526165500283241, + -0.053827352821826935, + 0.07763614505529404, + -0.1255510449409485, + 0.10473877191543579, + -0.03808465227484703, + 0.14794796705245972, + -0.054261621087789536, + 0.1166784018278122, + 0.008465890772640705, + -0.1844589114189148, + -0.033687327057123184, + 0.0470532588660717, + -0.05057710409164429, + -0.02854839526116848, + -0.0529794916510582, + -0.0006592115387320518, + 0.048261843621730804, + 0.05804350972175598, + 0.03579185903072357, + -0.034539684653282166, + 0.030921176075935364, + 0.04982202500104904, + 0.001303676050156355, + 0.04713825136423111, + 0.02033761329948902, + -0.09648922085762024, + -0.04627399146556854, + 0.11619056016206741, + -0.04022083058953285, + 0.02874002419412136, + 0.037012986838817596, + -0.004669602029025555, + 0.008763359859585762, + -0.06490179896354675, + -0.02678809128701687, + 0.02365734800696373, + -0.036279380321502686, + 0.0786181092262268, + 0.032284680753946304, + -0.007165825460106134, + 0.042665693908929825, + -0.0048924582079052925, + -0.030786365270614624, + -0.05162402242422104, + -0.0943618193268776, + 0.1822013556957245, + 0.05752633512020111, + -0.0026272409595549107, + -0.061701394617557526, + -0.08332651853561401, + 0.09486395120620728, + 0.002730137901380658, + -0.12565092742443085, + -0.04224316030740738, + 0.062358319759368896, + 0.15870404243469238, + -0.00639377674087882, + -0.03632984310388565, + 0.027366695925593376, + 0.12502487003803253, + 0.048423781991004944, + 0.09107780456542969, + 0.07537348568439484, + 0.10573868453502655, + 0.00944077130407095, + 0.03287335857748985, + 0.052275948226451874, + 0.07837960124015808, + 0.04395738244056702, + -0.017929136753082275, + 0.040936488658189774, + -0.0040151197463274, + -0.027951855212450027, + -0.008947746828198433, + -0.011454056948423386, + -0.0007989341393113136, + 0.003869995940476656, + 0.004563618451356888, + 0.021159760653972626, + 0.030073046684265137, + -0.047005705535411835, + 0.03801552206277847, + 0.02660352922976017, + -0.017359985038638115, + 0.05702454596757889, + 0.04981996864080429, + 0.0342940129339695, + 0.049222953617572784, + -0.0661940649151802, + -0.11556795239448547, + 0.03198021277785301, + 0.025216955691576004, + 0.0177287720143795, + 0.06385821104049683, + 0.03505943715572357, + -0.026817122474312782, + 0.10143935680389404, + 0.033250562846660614, + -0.01962314546108246, + 0.022350860759615898, + -0.08895082771778107, + 0.11319520324468613, + 0.09378618746995926, + -0.0030606850050389767, + 0.05085260793566704, + -0.058879315853118896, + 0.09249942004680634, + 0.0699605941772461, + -0.14641055464744568, + -0.08140605688095093, + 0.041800521314144135, + -0.00790295097976923, + -0.0018841137643903494, + 0.12380842864513397, + 0.00541010731831193, + 0.027493659406900406, + 0.08993594348430634, + -0.10014893859624863, + -0.047284893691539764, + -0.0257110595703125, + 0.04882792383432388, + -0.09543190151453018, + 0.05618387460708618, + 0.030164871364831924, + -0.026353899389505386, + -0.012837149202823639, + 0.0756593570113182, + -0.017210397869348526, + 0.026204951107501984, + 0.0013834394048899412, + -0.04166504740715027, + 0.04386794939637184, + -0.039340242743492126, + 0.007611640263348818, + 0.05172627419233322, + 0.01723569631576538, + 0.054618194699287415, + -0.024440079927444458, + -0.037975117564201355, + -0.1261913776397705, + 0.023831166326999664, + 0.031019095331430435, + 0.057257261127233505, + -0.01631343923509121, + -0.013952294364571571, + -0.039183732122182846, + -0.08422552049160004, + 0.052201323211193085, + -0.03210868313908577, + 0.07844893634319305, + 0.019184023141860962, + -0.007348168641328812, + 0.10857681930065155, + 0.006041594315320253, + 0.002210104838013649, + -0.03175653889775276, + -0.038547806441783905, + 0.02191019244492054, + 0.05476086214184761, + -0.09116437286138535, + -0.0550079345703125, + 0.0073479898273944855, + 0.0009390049381181598, + -0.012643402442336082, + 0.02743622660636902, + 0.05711442977190018, + 0.020645011216402054, + 0.04290563613176346, + -0.07044471055269241, + -0.007050788961350918, + -0.10893266648054123, + -0.05954836308956146, + -0.01748489774763584, + -0.035437729209661484, + -0.01827521063387394, + 0.10539530217647552, + 0.01852291449904442, + 0.020397283136844635, + -0.03199456259608269, + -0.061375267803668976, + -0.06714057922363281, + 0.06909464299678802, + 0.06822487711906433, + 0.010802545584738255, + 0.03910788893699646, + 0.04038555175065994, + -0.012726346030831337, + 0.04964650049805641, + 0.05538329482078552, + 0.09894035756587982, + -0.010316697880625725, + 0.012042976915836334, + -0.07650133967399597, + 0.12115707993507385, + 0.08962982147932053, + -0.0786755159497261, + -0.09203052520751953, + -0.020763112232089043, + -0.08135312795639038, + 0.03938748687505722, + -0.039056919515132904, + 0.0013477166648954153, + 0.04168971627950668, + -0.00751902861520648, + -0.1154029369354248, + -0.08849278092384338, + 0.09200016409158707, + -0.06380036473274231, + -0.024448929354548454, + -0.08399520814418793, + 0.04543715715408325, + 0.09038315713405609, + 0.05097802355885506, + -0.04044061526656151, + -0.001345152035355568, + 0.06383608281612396, + -0.060351815074682236, + 0.0017298684688284993, + 0.04822154343128204, + 0.017030300572514534, + -0.10195666551589966, + 0.0010009845718741417, + -0.06511762738227844, + 0.05057504400610924, + -0.08186712861061096, + 0.14817070960998535, + -5.755014717578888e-05, + -0.070331871509552, + -0.0739428848028183, + 0.0715414509177208, + -0.01954510062932968, + 0.040190234780311584, + 0.0398549884557724, + 0.05801467224955559, + 0.05601721629500389, + -0.08724776655435562, + 0.09807078540325165, + 0.0446489080786705, + -0.01285366527736187, + -0.07045096158981323, + -0.03892212361097336, + -0.031981877982616425, + 0.053543977439403534, + 0.012469088658690453, + -0.0838434100151062, + 0.00615954864770174, + 0.039289359003305435, + -0.010561258532106876, + 0.05536743998527527, + 0.13979165256023407, + 0.05070715770125389, + -0.11497946083545685 + ] + }, + "p244_197.wav": { + "name": "p244", + "embedding": [ + 0.058055635541677475, + 0.1074618473649025, + 0.021068284288048744, + -0.0010020845802500844, + -0.04170786216855049, + 0.08451616019010544, + -0.17002679407596588, + 0.1508990228176117, + -0.03895324096083641, + 0.1541563868522644, + -0.051700741052627563, + 0.10365165024995804, + -0.002696135314181447, + -0.19420285522937775, + -0.04791633039712906, + 0.055123891681432724, + -0.06069289147853851, + -0.027404047548770905, + -0.017811425030231476, + -0.03357461839914322, + 0.030294299125671387, + 0.04507025331258774, + 0.04362129047513008, + -0.0014828925486654043, + 0.05933642014861107, + 0.05420345440506935, + 0.009121217764914036, + 0.049728456884622574, + -0.000526254007127136, + -0.06650300323963165, + -0.025423135608434677, + 0.10703492909669876, + -0.048015132546424866, + 0.011957149021327496, + 0.04159965738654137, + -0.021543148905038834, + 0.009015759453177452, + -0.07240532338619232, + -0.01671900972723961, + 0.014973951503634453, + -0.01312252227216959, + 0.09170165657997131, + 0.04914812743663788, + 0.0187879279255867, + 0.014517447911202908, + 0.029300352558493614, + -0.004633763805031776, + -0.06220166012644768, + -0.11511097848415375, + 0.17847901582717896, + 0.05609407275915146, + 0.009741229005157948, + -0.06864548474550247, + -0.0787307620048523, + 0.10420095175504684, + -0.01636802777647972, + -0.10933462530374527, + -0.027812931686639786, + 0.08134518563747406, + 0.1686745285987854, + -0.029305512085556984, + -0.05873207747936249, + 0.0376870222389698, + 0.1378747969865799, + 0.0232933908700943, + 0.08510619401931763, + 0.08449776470661163, + 0.09587737172842026, + -0.013932125642895699, + 0.0073706479743123055, + 0.034882497042417526, + 0.05307560786604881, + 0.009565510787069798, + -0.020982712507247925, + 0.017607592046260834, + -0.019956450909376144, + -0.021204426884651184, + -0.0021228892728686333, + -0.013767629861831665, + -0.013673433102667332, + -0.007005990482866764, + 0.003988579381257296, + -0.0010128997964784503, + 0.04044744744896889, + -0.02840178832411766, + 0.03810817375779152, + -0.011452930979430676, + 0.002437965013086796, + 0.09827789664268494, + 0.019896171987056732, + 0.04258324205875397, + 0.06000569462776184, + -0.06600376218557358, + -0.06905841082334518, + 0.04455297067761421, + 0.01811547577381134, + 0.026311039924621582, + 0.07242988795042038, + 0.04268445074558258, + -0.03791908547282219, + 0.13067877292633057, + 0.05285258963704109, + -0.012711300514638424, + 0.008694911375641823, + -0.10869701951742172, + 0.12411991506814957, + 0.07382039725780487, + -0.017362473532557487, + 0.06939296424388885, + -0.054552335292100906, + 0.0707441046833992, + 0.06080062687397003, + -0.15742075443267822, + -0.0933922603726387, + 0.03836025297641754, + 0.05100821331143379, + -0.015163294039666653, + 0.1337669938802719, + 7.327039929805323e-05, + 0.034779444336891174, + 0.08967702835798264, + -0.0820172056555748, + -0.047974471002817154, + -0.013950485736131668, + 0.06435086578130722, + -0.0925464779138565, + 0.04168618097901344, + 0.07407135516405106, + -0.03881368413567543, + 0.016208147630095482, + 0.06853528320789337, + -0.008164691738784313, + 0.0060318936593830585, + 0.008668231777846813, + -0.042966317385435104, + 0.02779749222099781, + -0.02616289258003235, + 0.02356853149831295, + 0.006193407811224461, + 0.043752271682024, + 0.04131161794066429, + 0.00846865028142929, + -0.061276935040950775, + -0.11208146810531616, + 0.0010961816878989339, + 0.020529426634311676, + 0.06525661796331406, + -0.016497058793902397, + -0.040986113250255585, + -0.04217483103275299, + -0.03932361677289009, + 0.016968177631497383, + 0.005211802199482918, + 0.07559551298618317, + -0.0035012983717024326, + -0.0009613845031708479, + 0.09929198771715164, + 0.05012435466051102, + -0.0016848078230395913, + -0.04078972712159157, + -0.03895736113190651, + 0.014426643960177898, + 0.03421925753355026, + -0.08102822303771973, + -0.05011318251490593, + 0.005671427585184574, + 0.04207475110888481, + -0.020724017173051834, + 0.052591726183891296, + 0.044406261295080185, + 0.02426319569349289, + 0.03639514371752739, + -0.05352209508419037, + 0.026526305824518204, + -0.08224309980869293, + -0.06781580299139023, + 0.001592017593793571, + 0.010638938285410404, + -0.045833855867385864, + 0.09403815120458603, + 0.022935403510928154, + 0.0695425346493721, + -0.02482745051383972, + -0.04397549480199814, + -0.06354080885648727, + 0.047804396599531174, + 0.07627888023853302, + -0.016450703144073486, + 0.031017674133181572, + 0.04734286665916443, + -0.02203744277358055, + 0.06639260798692703, + 0.0652126893401146, + 0.09491625428199768, + -0.0347813256084919, + 0.02320261299610138, + -0.07312561571598053, + 0.07098966091871262, + 0.06723051518201828, + -0.08712327480316162, + -0.08389002829790115, + -0.02102913334965706, + -0.07230132818222046, + 0.038018643856048584, + -0.008482086472213268, + 0.008950849995017052, + 0.007707138080149889, + -0.006337166763842106, + -0.09167716652154922, + -0.08920707553625107, + 0.07076869159936905, + -0.07141191512346268, + -0.0038407405372709036, + -0.07515989989042282, + 0.06482430547475815, + 0.10594165325164795, + 0.05566047504544258, + -0.001486341585405171, + -0.03975987061858177, + 0.026226256042718887, + -0.03154412657022476, + 0.005256484728306532, + 0.053102798759937286, + 0.028496958315372467, + -0.11359695345163345, + 0.01944729872047901, + -0.08850865811109543, + 0.052623454481363297, + -0.04521642252802849, + 0.16470223665237427, + 0.021295713260769844, + -0.0673568993806839, + -0.08467940241098404, + 0.019602719694375992, + -0.04269549995660782, + 0.042172446846961975, + 0.022178830578923225, + 0.04342152178287506, + 0.058471474796533585, + -0.0572822168469429, + 0.0899905413389206, + 0.0321134477853775, + -0.04098472371697426, + -0.08059430122375488, + -0.03718848153948784, + -0.023323047906160355, + 0.03747283294796944, + -0.0025357201229780912, + -0.09115681052207947, + -0.030114056542515755, + 0.03872305899858475, + 0.004737819544970989, + 0.0894341990351677, + 0.1272176206111908, + 0.05156904458999634, + -0.14191167056560516 + ] + }, + "p244_336.wav": { + "name": "p244", + "embedding": [ + 0.04297199845314026, + 0.06637506932020187, + 0.0003252355381846428, + -0.04164819419384003, + -0.0164704080671072, + 0.02591972053050995, + -0.13879114389419556, + 0.09573985636234283, + -0.004450442269444466, + 0.15151214599609375, + -0.05243874341249466, + 0.09468136727809906, + -0.024470534175634384, + -0.09278792887926102, + 0.021567203104496002, + 0.02131728082895279, + -0.027086731046438217, + 9.04211774468422e-05, + -0.0008207745850086212, + -0.08896653354167938, + 0.010634129866957664, + 0.01587599143385887, + 0.02689112164080143, + -0.05673631653189659, + 0.014687832444906235, + 0.08172720670700073, + -0.007245142012834549, + -0.017211776226758957, + -0.014790334738790989, + -0.07775133848190308, + 0.02428421750664711, + 0.06400258839130402, + -0.05009445175528526, + -0.008332937024533749, + 0.03116048499941826, + -0.012234840542078018, + -0.021201271563768387, + -0.02297772653400898, + 0.02111024223268032, + 0.05742549151182175, + -0.044390276074409485, + 0.08910342305898666, + 0.03663421422243118, + 0.004380689933896065, + 0.03484594449400902, + -0.019738275557756424, + -0.028948847204446793, + 0.020697079598903656, + -0.04744671657681465, + 0.1116088479757309, + 0.05790285766124725, + -0.0015091700479388237, + -0.06089019030332565, + 0.013046946376562119, + 0.06016375496983528, + 0.0027748923748731613, + -0.08971203118562698, + -0.0043679457157850266, + 0.018695957958698273, + 0.07477156817913055, + -0.037917912006378174, + -0.07455902546644211, + 0.021636972203850746, + 0.06878378987312317, + -0.005640862509608269, + 0.047774724662303925, + 0.09340020269155502, + 0.07889383286237717, + -0.0365731380879879, + 0.0011922679841518402, + 0.02478170022368431, + 0.07595258951187134, + 0.05987626314163208, + -0.02564232610166073, + 0.053052566945552826, + -0.03301495686173439, + -0.004700921941548586, + -0.05111683905124664, + -0.000600697472691536, + -0.05951221287250519, + -0.04950045794248581, + -0.022256068885326385, + 0.021153628826141357, + 0.07263054698705673, + -3.6852434277534485e-05, + -0.010028915479779243, + 0.06456665694713593, + -0.040224798023700714, + 0.0445375069975853, + 0.02239389345049858, + 0.015698667615652084, + 0.021052440628409386, + -0.09284137189388275, + -0.02747391164302826, + 0.021850164979696274, + -0.038596514612436295, + 0.0730225071310997, + 0.044772081077098846, + 0.044825874269008636, + 0.020545249804854393, + 0.08739449083805084, + 0.05544038861989975, + 0.001629092963412404, + -0.04035439342260361, + -0.06761690974235535, + 0.10777570307254791, + 0.10720673203468323, + -0.07259534299373627, + 0.03398248925805092, + -0.005189461633563042, + 0.02227882668375969, + -0.0324593111872673, + -0.10422004014253616, + -0.029190029948949814, + -0.020331036299467087, + 0.06648590415716171, + 0.01597311906516552, + 0.12341463565826416, + 0.011800015345215797, + 0.04585743322968483, + 0.08070963621139526, + -0.019063778221607208, + -0.022774135693907738, + -0.05218600109219551, + 0.027308207005262375, + -0.10546234250068665, + 0.0696202740073204, + 0.05264337360858917, + 0.03131499141454697, + 0.03148127719759941, + 0.08422926068305969, + 0.01298036240041256, + -0.011416951194405556, + -0.05168282240629196, + 0.009225451387465, + 0.011088758707046509, + 0.010594906285405159, + 0.050012726336717606, + 0.03542950749397278, + 0.011802375316619873, + 0.10038711130619049, + 0.04961829632520676, + -0.007886858657002449, + -0.0796830803155899, + 0.036881640553474426, + 0.003776947967708111, + 0.02053573727607727, + -0.04421299695968628, + -0.031965840607881546, + 0.015910228714346886, + -0.07837881147861481, + -0.015975290909409523, + -0.00562854390591383, + 0.06497380137443542, + 0.004884698428213596, + -0.006149151362478733, + 0.10936041176319122, + 0.05248694121837616, + 0.0030342661775648594, + -0.0033281277865171432, + -0.014363911002874374, + -0.019560104236006737, + 0.07094424962997437, + -0.1463857740163803, + -0.06753361225128174, + -0.021173985674977303, + 0.03479725494980812, + 0.021704215556383133, + 0.042933911085128784, + 0.09864449501037598, + -0.018615618348121643, + 0.0384952686727047, + 0.023089613765478134, + 0.0036072293296456337, + -0.050257302820682526, + -0.08452620357275009, + -0.02091260440647602, + -0.07687711715698242, + -0.06702183932065964, + 0.04567151144146919, + -0.043574102222919464, + 0.06908570230007172, + -0.02905118092894554, + -0.027556948363780975, + -0.05216683819890022, + 0.026882434263825417, + 0.021881554275751114, + -0.0668681263923645, + -0.015298723243176937, + 0.09534942358732224, + 0.01464770920574665, + 0.0020034611225128174, + 0.05454543977975845, + 0.09636372327804565, + -0.07684508711099625, + 0.02490130253136158, + -0.06378153711557388, + 0.07028444111347198, + 0.07099933922290802, + -0.020072638988494873, + -0.054828282445669174, + -0.06908369064331055, + -0.054092518985271454, + 0.04419594630599022, + -0.0267596747726202, + -0.02340739406645298, + -0.0006609074771404266, + -0.004478516057133675, + -0.04075480252504349, + -0.053550899028778076, + 0.04134989529848099, + -0.031349148601293564, + 0.021280432119965553, + -0.06925119459629059, + 0.02097034826874733, + 0.018761366605758667, + 0.07122942805290222, + -0.04583998769521713, + 0.05291718244552612, + 0.01850764825940132, + -0.023767197504639626, + 0.030848052352666855, + 0.02042655646800995, + 0.05000197887420654, + -0.03353630751371384, + -0.06380531936883926, + -0.07287409901618958, + 0.029993098229169846, + -0.038242340087890625, + 0.0485946424305439, + 0.02599048614501953, + -0.031193427741527557, + -0.03089020401239395, + -0.02484181709587574, + -0.037060145288705826, + 0.025059210136532784, + 0.07898952066898346, + 0.055542346090078354, + 0.048502467572689056, + -0.023209938779473305, + 0.07391097396612167, + 0.03547685593366623, + 0.027104074135422707, + -0.026511378586292267, + -0.0020484812557697296, + -0.023154495283961296, + 0.032872721552848816, + 0.02549217827618122, + -0.07073508948087692, + 0.024470817297697067, + 0.0013566603884100914, + 0.022015897557139397, + 0.03684920445084572, + 0.03721669688820839, + 0.040202103555202484, + -0.0817594826221466 + ] + }, + "p244_246.wav": { + "name": "p244", + "embedding": [ + 0.062234725803136826, + 0.06518390029668808, + -0.03540882468223572, + 0.037405289709568024, + -0.05455930903553963, + 0.03411645069718361, + -0.14325088262557983, + 0.14795808494091034, + 0.02645295485854149, + 0.12226879596710205, + -0.04102587699890137, + 0.12960875034332275, + 0.0007471313001587987, + -0.16069212555885315, + 0.008489241823554039, + 0.02835860289633274, + -0.0019056424498558044, + 0.009615087881684303, + -0.06737266480922699, + -0.032690081745386124, + 0.028827182948589325, + 0.03656414896249771, + 0.05571463704109192, + -0.06944573670625687, + 0.0347844660282135, + 0.051989588886499405, + -0.007428913842886686, + 0.04363567754626274, + -0.004475218243896961, + -0.07549194246530533, + -0.014238673262298107, + 0.08848488330841064, + -0.07911901921033859, + 0.005589722190052271, + 0.05654514580965042, + -0.04831772297620773, + -0.04138533025979996, + -0.03560688719153404, + -0.01955695077776909, + 0.022490136325359344, + -0.030201975256204605, + 0.08055878430604935, + 0.025492113083600998, + -0.029204340651631355, + 0.07459831982851028, + 0.029252590611577034, + -0.016695860773324966, + -0.03644099831581116, + -0.11087613552808762, + 0.1458817720413208, + 0.03860539570450783, + 0.019598830491304398, + -0.11119317263364792, + -0.036532312631607056, + 0.06928285956382751, + -0.044481340795755386, + -0.08801126480102539, + -0.04170284420251846, + 0.048794571310281754, + 0.11482498794794083, + -0.0402633398771286, + -0.05157041549682617, + 0.041940752416849136, + 0.06955446302890778, + 0.1100507378578186, + 0.055275656282901764, + 0.11011705547571182, + 0.13010051846504211, + -0.03663085773587227, + 0.031186329200863838, + 0.008879574947059155, + 0.07947991788387299, + 0.0680614709854126, + 0.020778140053153038, + 0.02273562178015709, + -0.0005222858744673431, + 0.002409461885690689, + -0.06968048214912415, + -0.043244630098342896, + -0.006703294813632965, + 0.025375161319971085, + 0.028511039912700653, + 0.05909962207078934, + 0.052408598363399506, + -0.05707280710339546, + 0.07115450501441956, + 0.07252462208271027, + -0.03190404921770096, + 0.047037675976753235, + 0.014114072546362877, + -0.0008033867925405502, + 0.05534384399652481, + -0.13608433306217194, + -0.08927701413631439, + 0.021495027467608452, + -0.008207659237086773, + 0.0085078040137887, + 0.02958180382847786, + 0.036678846925497055, + -0.009311249479651451, + 0.12113740295171738, + 0.05633220821619034, + -0.038567107170820236, + 0.04020875319838524, + -0.05341002345085144, + 0.1243322342634201, + 0.09695638716220856, + -0.022481311112642288, + 0.051924265921115875, + -0.07940144836902618, + 0.041989393532276154, + 0.024286450818181038, + -0.10995928943157196, + -0.06781532615423203, + 0.026161516085267067, + -0.007904996164143085, + -0.012699516490101814, + 0.1411893218755722, + -0.0014471127651631832, + 0.07202480733394623, + 0.1189289391040802, + -0.09899033606052399, + -0.03218572214245796, + 0.0066069141030311584, + 0.054606273770332336, + -0.0759187713265419, + 0.04832048714160919, + 0.028710562735795975, + 0.0003779493272304535, + 0.022543838247656822, + 0.08694420754909515, + 0.01130138523876667, + 0.005096713081002235, + 0.0017715028952807188, + -0.018005847930908203, + 0.03301377221941948, + -0.004401381127536297, + -0.03748319670557976, + 0.043648861348629, + 0.04363642632961273, + 0.07328172028064728, + -0.017843572422862053, + -0.02216685563325882, + -0.12259674072265625, + 0.021692872047424316, + 0.008032059296965599, + 0.08469515293836594, + -0.03329864889383316, + 0.0017294064164161682, + -0.05610518157482147, + -0.06764674931764603, + 0.02713514119386673, + 0.0034611541777849197, + 0.04947759211063385, + -0.01971656084060669, + 0.013315335847437382, + 0.10871091485023499, + 0.03157930076122284, + 0.03563417121767998, + -0.02640039473772049, + -0.0332062803208828, + -0.021624762564897537, + 0.057052142918109894, + -0.07201257348060608, + -0.07685928046703339, + -0.028159311041235924, + 0.01147978100925684, + -0.033475611358881, + 0.07518038153648376, + 0.057338301092386246, + 0.027355404570698738, + 0.0265045128762722, + -0.03906038776040077, + -0.02538939006626606, + -0.07170476019382477, + -0.06387759745121002, + -0.004573984537273645, + -0.002391337649896741, + -0.05780286341905594, + 0.07712560892105103, + 0.03469777852296829, + 0.08039484918117523, + -0.053021810948848724, + -0.052227720618247986, + -0.09603653848171234, + 0.037728890776634216, + 0.02811294049024582, + -0.045195624232292175, + 0.02005293034017086, + 0.04451301693916321, + -0.030211258679628372, + 0.04744444414973259, + 0.09658835828304291, + 0.05439599230885506, + -0.013864046894013882, + 0.009558364748954773, + -0.08252006024122238, + 0.14363832771778107, + 0.11120176315307617, + -0.05009642243385315, + -0.09617748111486435, + -0.0201492290943861, + -0.095227912068367, + 0.006009896285831928, + -0.02647731453180313, + -0.0001439920160919428, + 0.0760733112692833, + 0.01558336429297924, + -0.09346333146095276, + -0.09026537835597992, + 0.06560471653938293, + -0.07884369790554047, + 0.00162464939057827, + -0.0754927396774292, + 0.02557339332997799, + 0.09053429216146469, + 0.007992707192897797, + -0.021941013634204865, + -0.04882774129509926, + 0.04420505836606026, + -0.01772095449268818, + 0.032647646963596344, + 0.06194338947534561, + 0.05249716341495514, + -0.09589116275310516, + -0.013015180826187134, + -0.02547292411327362, + 0.024815011769533157, + -0.014813199639320374, + 0.11465806514024734, + 0.02971246838569641, + -0.027110066264867783, + -0.05960920825600624, + 0.04442355036735535, + -0.028591053560376167, + 0.07079499959945679, + 0.02038370445370674, + 0.06699541211128235, + 0.058832522481679916, + -0.07945895195007324, + 0.10569782555103302, + 0.03929407522082329, + -0.06036685034632683, + -0.08901453763246536, + -0.08659602701663971, + -0.04641169309616089, + 0.031386587768793106, + 0.03945339098572731, + -0.07684697955846786, + -0.00206894613802433, + 0.025160953402519226, + -0.01587875746190548, + 0.02038617432117462, + 0.11597073823213577, + 0.05066359043121338, + -0.10850891470909119 + ] + }, + "p244_130.wav": { + "name": "p244", + "embedding": [ + 0.0483817420899868, + 0.07082764804363251, + -0.018744714558124542, + 0.039659298956394196, + -0.06096640229225159, + 0.004679184406995773, + -0.12546823918819427, + 0.14823207259178162, + 0.015305161476135254, + 0.10067307949066162, + -0.04685888811945915, + 0.15098433196544647, + -0.0017455627676099539, + -0.15939916670322418, + 0.024027159437537193, + 0.03704172372817993, + 0.009130998514592648, + -0.02013785019516945, + 0.013401441276073456, + -0.03525494039058685, + 0.055074721574783325, + 0.04819576069712639, + 0.05984567850828171, + -0.023445401340723038, + 0.027696605771780014, + 0.07229888439178467, + 0.004518445115536451, + 0.03639143705368042, + -0.0005885710706934333, + -0.06751259416341782, + -0.03823664039373398, + 0.05809609219431877, + -0.05971789360046387, + -0.0018191959243267775, + 0.035165827721357346, + -0.04505794495344162, + -0.034337569028139114, + -0.04791431874036789, + -0.022435128688812256, + 0.0128852017223835, + -0.038900792598724365, + 0.07302288711071014, + 0.02277919463813305, + -0.06429733335971832, + 0.04632265865802765, + 0.02333163097500801, + -0.0068079340271651745, + -0.010877195745706558, + -0.12315338850021362, + 0.13772797584533691, + 0.056093987077474594, + 0.02339167706668377, + -0.07882283627986908, + -0.05833493918180466, + 0.07601308822631836, + 0.0037426683120429516, + -0.06516733765602112, + -0.0029292176477611065, + 0.04751995950937271, + 0.10647952556610107, + -0.02084764465689659, + -0.045451950281858444, + 0.06714346259832382, + 0.07580310106277466, + 0.0760878473520279, + 0.04512735456228256, + 0.10616996139287949, + 0.11047235131263733, + -0.05297979712486267, + 0.006176195573061705, + 0.011929850094020367, + 0.10621093213558197, + 0.044848229736089706, + 0.0064920722506940365, + 0.004785965662449598, + 0.017359241843223572, + -0.017422406002879143, + -0.03614243492484093, + -0.022749029099941254, + -0.03305765613913536, + -0.0007780059240758419, + 0.006115839816629887, + 0.03840500861406326, + 0.046187907457351685, + -0.038807954639196396, + 0.06955067813396454, + 0.07115959376096725, + -0.0002790192957036197, + 0.054900094866752625, + -0.011141876690089703, + 0.008288074284791946, + 0.07651889324188232, + -0.1249968409538269, + -0.06300756335258484, + 0.038186654448509216, + -0.0006003642920404673, + 0.04554593563079834, + 0.10180588811635971, + 0.060806434601545334, + -0.021724587306380272, + 0.12779487669467926, + 0.06763186305761337, + -0.022588923573493958, + 0.00411205692216754, + -0.05090319737792015, + 0.1054033562541008, + 0.11008894443511963, + -0.03677869960665703, + 0.0696030706167221, + -0.07315269112586975, + 0.06190277636051178, + 0.026881014928221703, + -0.11970995366573334, + -0.06826762855052948, + 0.016256017610430717, + 0.019804831594228745, + 0.002884648507460952, + 0.14632290601730347, + 0.005431973375380039, + 0.08432426303625107, + 0.10937955230474472, + -0.1110774576663971, + -0.06225376948714256, + -0.0221081729978323, + 0.06104288622736931, + -0.07780227065086365, + 0.08430743217468262, + 0.060042139142751694, + -0.0233868770301342, + 0.016126718372106552, + 0.043488308787345886, + -0.01603449508547783, + 0.029745182022452354, + 0.006045798771083355, + -0.032596390694379807, + 0.006203831639140844, + -0.028141643851995468, + -0.019225429743528366, + 0.029528316110372543, + 0.019331365823745728, + 0.041358958929777145, + -0.014365693554282188, + -0.00958995334804058, + -0.1453835368156433, + 0.033181048929691315, + 0.03359852731227875, + 0.06236536428332329, + -0.030696779489517212, + -0.06875710934400558, + -0.04039425402879715, + -0.06977571547031403, + -0.005077578127384186, + 0.004829036071896553, + 0.02970641665160656, + -0.031681668013334274, + 0.030496647581458092, + 0.06999583542346954, + 0.052733615040779114, + -0.00029541010735556483, + -0.012492012232542038, + -0.07217376679182053, + 0.000859053514432162, + 0.04456605762243271, + -0.06580594182014465, + -0.09546233713626862, + -0.058730967342853546, + 0.022496569901704788, + -0.03035735711455345, + 0.06908684223890305, + 0.049859922379255295, + 0.026896487921476364, + 0.010915283113718033, + -0.05993424355983734, + -8.503844583174214e-05, + -0.08358120173215866, + -0.09428979456424713, + -0.018427304923534393, + 0.018659524619579315, + -0.02153618261218071, + 0.07418867945671082, + 0.03727605938911438, + 0.10246787965297699, + -0.03685007244348526, + -0.009295267052948475, + -0.08450650423765182, + 0.011907926760613918, + 0.03609730303287506, + -0.012805852107703686, + 0.048492640256881714, + 0.06477619707584381, + -0.03512146696448326, + 0.0536235086619854, + 0.05676162242889404, + 0.05978219956159592, + -0.014764445833861828, + 0.01151392050087452, + -0.06268353760242462, + 0.10880293697118759, + 0.12007027864456177, + -0.054786890745162964, + -0.07946425676345825, + -0.054703157395124435, + -0.10350140184164047, + 0.031033804640173912, + -0.005409087985754013, + 0.013613267801702023, + 0.0285273939371109, + 0.017124783247709274, + -0.09336404502391815, + -0.08844578266143799, + 0.05829755589365959, + -0.036124564707279205, + 0.005765251349657774, + -0.09375389665365219, + 0.0365976057946682, + 0.11474370211362839, + 0.02573411725461483, + -0.02051503211259842, + -0.051311880350112915, + 0.03134428337216377, + 0.016199007630348206, + 0.028238758444786072, + 0.07190842926502228, + 0.07987867295742035, + -0.09940101206302643, + -0.013664326630532742, + -0.05342360958456993, + 0.03217547386884689, + -0.045086801052093506, + 0.11238980293273926, + 0.03454163670539856, + -0.04369392246007919, + -0.09124766290187836, + 0.0571213960647583, + 0.016971921548247337, + 0.05072672665119171, + 0.009725001640617847, + 0.047851428389549255, + 0.03121873550117016, + -0.107744500041008, + 0.0983891412615776, + 0.04270121455192566, + -0.049248456954956055, + -0.07582562416791916, + -0.05434579402208328, + -0.02231798693537712, + 0.04242752492427826, + 0.018614668399095535, + -0.06351149082183838, + -0.03136802464723587, + 0.022570988163352013, + 0.019011355936527252, + 0.03019523248076439, + 0.14833936095237732, + 0.02832471951842308, + -0.1262088119983673 + ] + }, + "p244_327.wav": { + "name": "p244", + "embedding": [ + 0.013196651823818684, + 0.11890305578708649, + -0.004542496986687183, + 0.049333371222019196, + -0.05395256727933884, + 0.0022604726254940033, + -0.05548735707998276, + 0.0603465661406517, + -0.014438347890973091, + 0.08676643669605255, + -0.052193012088537216, + 0.09676573425531387, + -0.05464395508170128, + -0.08851510286331177, + -0.03548905625939369, + -0.008346905000507832, + 0.0050183795392513275, + 0.048899952322244644, + -0.007851855829358101, + -0.02263437584042549, + -0.029554076492786407, + -0.00037205033004283905, + -0.03293415904045105, + 0.005970536265522242, + -0.025503309443593025, + 0.0040174443274736404, + -0.029574351385235786, + 0.03110436350107193, + -0.002543959766626358, + -0.059578247368335724, + -0.0057619791477918625, + 0.03986481577157974, + -0.015394826419651508, + 0.006114695221185684, + 0.02552868239581585, + 0.001054611406289041, + 0.019006647169589996, + -0.016406074166297913, + -0.03704599663615227, + -0.028000200167298317, + -0.040925282984972, + 0.0011538434773683548, + 0.026364922523498535, + -0.056655582040548325, + 0.016938969492912292, + 0.03360353037714958, + -0.016993260011076927, + -0.016701243817806244, + -0.020338548347353935, + 0.09648387879133224, + 0.007653282955288887, + 0.06300763785839081, + -0.03990523889660835, + -0.05223686620593071, + 0.1198267787694931, + 0.010891223326325417, + -0.0231698676943779, + -0.014122292399406433, + -0.0020603127777576447, + 0.08130665123462677, + 0.027541426941752434, + 0.02126936987042427, + 0.02333941124379635, + 0.06686248630285263, + -0.008235132321715355, + 0.04003538936376572, + 0.055872298777103424, + 0.04654872789978981, + -0.020082751289010048, + 0.04276534169912338, + 0.041740477085113525, + 0.029323045164346695, + 0.014010610990226269, + 0.020290682092308998, + -0.026327984407544136, + 0.023227673023939133, + 0.004990508779883385, + 0.06915926933288574, + -0.04206033796072006, + -0.018709737807512283, + -0.02613747864961624, + 0.022307364270091057, + 0.00408798037096858, + -0.06944576650857925, + -0.04495447501540184, + -0.023478373885154724, + 0.03557122126221657, + 0.02305559627711773, + 0.021976882591843605, + 0.0325840562582016, + 0.04724317416548729, + -0.0015440434217453003, + -0.02642081491649151, + -0.06250319629907608, + 0.015172623097896576, + -0.02207833342254162, + 0.03864607959985733, + 0.0144144706428051, + 0.0005683731287717819, + 0.010063673369586468, + 0.040375966578722, + 0.006904032081365585, + 0.04348159208893776, + -0.008989842608571053, + -0.05335412546992302, + -0.011677954345941544, + 0.03380510210990906, + 0.01941431313753128, + 0.039031945168972015, + 0.02557201497256756, + 0.05923229828476906, + 0.09882311522960663, + -0.06384085863828659, + -0.04046373441815376, + 0.011066386476159096, + 0.04982154443860054, + -0.022073134779930115, + 0.05861622840166092, + -0.017771786078810692, + 0.019810007885098457, + 0.041077595204114914, + 0.013836231082677841, + -0.03430665656924248, + -0.026773793622851372, + -0.006333686411380768, + -0.01762358285486698, + 0.04304005578160286, + 0.020030632615089417, + -0.021824978291988373, + -0.05765622854232788, + 0.06692032516002655, + -0.014795970171689987, + -0.024689458310604095, + 0.02167966216802597, + -0.0006019920110702515, + -0.04315555468201637, + 0.05104271322488785, + -0.0393759086728096, + 0.02606905624270439, + 0.0695122629404068, + -0.025692598894238472, + 0.0008956068195402622, + 0.0042330604046583176, + -0.02331354282796383, + 0.03711045905947685, + 0.021936826407909393, + -0.024474799633026123, + 0.08449864387512207, + -0.05076161399483681, + -0.048262130469083786, + -0.031435199081897736, + 0.0399453341960907, + -0.03153136372566223, + 0.0893363282084465, + 0.058858778327703476, + 0.0398516021668911, + 0.0380668006837368, + -0.01898638904094696, + -0.005924876779317856, + -0.007116112858057022, + -0.10884974151849747, + 0.009590805508196354, + 0.0033424077555537224, + 0.0107746422290802, + -0.01896841824054718, + 0.015878286212682724, + -0.006613150238990784, + -0.01575806364417076, + 0.0012081637978553772, + 0.0272452961653471, + -0.004351332318037748, + 0.06987175345420837, + -0.10034775733947754, + -0.01674550212919712, + -0.06565854698419571, + -0.037267934530973434, + 0.023031752556562424, + -0.041140004992485046, + 0.008332076482474804, + 0.02062748372554779, + 0.04425511136651039, + -0.038273658603429794, + -0.009828265756368637, + -0.06143855303525925, + -0.00410238653421402, + 0.016067249700427055, + 0.018080443143844604, + 0.02678677812218666, + -0.007922947406768799, + 0.017894580960273743, + 0.035755135118961334, + 0.03582911938428879, + 0.022619053721427917, + 0.059399135410785675, + -0.021487753838300705, + 0.007093596272170544, + 0.02828720584511757, + 0.07983069121837616, + 0.018252849578857422, + -0.08761118352413177, + -0.11072571575641632, + -0.011294991709291935, + -0.04015304520726204, + 0.044461559504270554, + -0.010170679539442062, + 0.03207830339670181, + 0.001340415794402361, + 0.014513084664940834, + 0.04576552286744118, + -0.12580646574497223, + 0.04471628740429878, + -0.0003653205931186676, + -0.05186966434121132, + 0.013936681672930717, + 0.010181711986660957, + 0.02096298709511757, + 0.015369715169072151, + -0.02131561003625393, + -0.009356766939163208, + 0.023700354620814323, + -0.006348747760057449, + -0.015089953318238258, + 0.037345971912145615, + 0.010826123878359795, + 0.015073135495185852, + 0.020365171134471893, + -0.04196001961827278, + 0.029436469078063965, + -0.006438283249735832, + 0.04570543020963669, + -0.009088899940252304, + -0.03538886830210686, + -0.07537313550710678, + 0.07549562305212021, + -0.04007522761821747, + 0.04426063224673271, + -0.01176130399107933, + 0.02230175957083702, + 0.002984285354614258, + -0.022502023726701736, + 0.11341774463653564, + 0.021770846098661423, + -0.02735484205186367, + -0.020341908559203148, + -0.020718947052955627, + -0.04231278598308563, + 0.044872500002384186, + 0.046704672276973724, + -0.027051502838730812, + -0.011136801913380623, + 0.04829796031117439, + 0.03519148379564285, + 0.0918767973780632, + 0.06966596841812134, + 0.05598558858036995, + 0.03039107844233513 + ] + }, + "p244_118.wav": { + "name": "p244", + "embedding": [ + 0.08021856844425201, + 0.10969100892543793, + 0.03342356160283089, + 0.009949089959263802, + 0.057601261883974075, + 0.04524441435933113, + -0.1211153045296669, + 0.059965021908283234, + -0.020339827984571457, + 0.14657330513000488, + -0.11284252256155014, + 0.06286406517028809, + -0.020700976252555847, + -0.11063581705093384, + -0.030577220022678375, + 0.0448831170797348, + -0.009756211191415787, + 0.04334409534931183, + -0.02051616460084915, + 0.033768441528081894, + 0.00885817687958479, + 0.015843801200389862, + 0.05865012854337692, + -0.07426120340824127, + 0.08317530900239944, + 0.022432656958699226, + 0.05704435333609581, + 0.08689700067043304, + 0.03175964951515198, + -0.018328966572880745, + 0.029209870845079422, + 0.11342711746692657, + -0.02476494200527668, + 0.01682024449110031, + 0.032519806176424026, + 0.04995492845773697, + -0.0070250630378723145, + -0.07192917168140411, + 0.03270074352622032, + -0.005756274797022343, + 0.010225449688732624, + 0.05691733583807945, + 0.04085694998502731, + -0.029640285298228264, + -0.005855883471667767, + 0.05865361541509628, + 0.021647760644555092, + -0.04638085886836052, + -0.11118754744529724, + 0.12052658200263977, + 0.008098968304693699, + 0.023148424923419952, + -0.08550912141799927, + -0.07185272872447968, + 0.0470857210457325, + 0.029950033873319626, + -0.02184305340051651, + -0.021323945373296738, + 0.08827625215053558, + 0.1475561559200287, + -0.013476436957716942, + -0.051205698400735855, + 0.011677843518555164, + 0.08581048250198364, + 0.024764016270637512, + 0.09175382554531097, + 0.06725993007421494, + 0.06867270171642303, + 0.042651742696762085, + 0.0678689032793045, + 0.014246590435504913, + 0.03924500569701195, + -0.004332654178142548, + -0.014721066690981388, + -0.014425585977733135, + -0.023758664727211, + -0.046216245740652084, + 0.018436932936310768, + 0.008266807533800602, + -0.07028249651193619, + 0.0003694252809509635, + -0.05090713873505592, + 0.011282239109277725, + 0.027101241052150726, + -0.014320816844701767, + 0.0067093707621097565, + 0.03240598738193512, + -0.04147815704345703, + 0.0968562513589859, + 0.006448704749345779, + 0.01083011832088232, + -0.0035309400409460068, + -0.04104558378458023, + -0.12041911482810974, + -0.005356861278414726, + -0.00500280037522316, + 0.004404408857226372, + 0.027927152812480927, + 0.04572881758213043, + -0.018008248880505562, + 0.09197898209095001, + 0.008144675754010677, + 0.018935229629278183, + -0.010596564039587975, + -0.035210855305194855, + 0.09775760769844055, + 0.08336663246154785, + -0.004042668268084526, + 0.021012291312217712, + -0.042535874992609024, + -0.016166996210813522, + 0.11024556308984756, + -0.13234774768352509, + -0.0879531130194664, + 0.018417388200759888, + -0.011912384070456028, + -0.0057600741274654865, + 0.0507965162396431, + 0.007791630923748016, + -0.03545762598514557, + 0.06614147126674652, + -0.08127156645059586, + -0.07742097973823547, + -0.030510179698467255, + 0.05978544056415558, + -0.05713605880737305, + 0.00915742851793766, + 0.06365719437599182, + -0.02868960052728653, + -0.06758248060941696, + 0.05223947763442993, + -0.0006843593437224627, + 0.011516544967889786, + -0.021365884691476822, + -0.010801957920193672, + 0.07555743306875229, + -0.07588811218738556, + 0.03540682792663574, + 0.004379707388579845, + 0.025115743279457092, + 0.03285476192831993, + 0.022581836208701134, + -0.058954305946826935, + -0.060113325715065, + -0.007974544540047646, + 0.07487452775239944, + 0.0357213169336319, + -0.038779035210609436, + -0.07104304432868958, + -0.031658660620450974, + -0.02254287339746952, + 0.0645938515663147, + 0.011461847461760044, + 0.06996951997280121, + 0.06303934007883072, + 0.0007822467014193535, + 0.1435275375843048, + -0.0425516739487648, + 0.033266160637140274, + -0.05716407299041748, + 0.012439013458788395, + 0.06893227994441986, + 0.0005773305892944336, + -0.07196105271577835, + -0.058866627514362335, + 0.01889757066965103, + -0.016617491841316223, + -0.014492619782686234, + 0.005629643797874451, + 0.006959831342101097, + 0.015503142029047012, + 0.020521223545074463, + 0.002555912360548973, + -0.036060627549886703, + -0.06164941564202309, + -0.025468356907367706, + -0.020932916551828384, + -0.009335173293948174, + -0.00503320898860693, + 0.06612639874219894, + 0.03306607902050018, + 0.026818640530109406, + 0.005393319763243198, + -0.03500642254948616, + -0.044147342443466187, + 0.06242217868566513, + 0.10573065280914307, + -0.002897303318604827, + 0.018014175817370415, + 0.01841695047914982, + -0.009610586799681187, + 0.014421416446566582, + 0.05665088817477226, + 0.04340434819459915, + -0.006976466625928879, + -0.07730883359909058, + -0.07915009558200836, + 0.09371644258499146, + 0.08577200770378113, + -0.10061462968587875, + -0.06727772951126099, + -0.03836091235280037, + -0.055724043399095535, + 0.03469405323266983, + -0.03803228586912155, + -0.003129224292933941, + 0.011618871241807938, + -0.07181718200445175, + -0.0581618957221508, + -0.1111060157418251, + 0.04286568611860275, + -0.030137211084365845, + -0.03444654121994972, + -0.06273093819618225, + 0.04339297115802765, + 0.019260574132204056, + 0.05937652289867401, + 0.02199064940214157, + 0.01679362542927265, + 0.01639135368168354, + -0.10649415850639343, + -0.051960788667201996, + 0.027338160201907158, + -0.030154366046190262, + -0.06931205093860626, + 0.024207327514886856, + -0.04473692923784256, + 0.09450338035821915, + -0.06879223883152008, + 0.10711175948381424, + -0.007084609009325504, + -0.05299802124500275, + -0.09194636344909668, + -0.00240876991301775, + -0.052422549575567245, + 0.040736839175224304, + 0.03356121852993965, + -0.02506815455853939, + 0.02232864871621132, + -0.07647602260112762, + 0.08005044609308243, + 0.004780407063663006, + 0.04597420245409012, + -0.08066266030073166, + -0.05446663498878479, + -0.053460489958524704, + 0.03453965485095978, + -0.028911877423524857, + -0.025795945897698402, + 0.0029121432453393936, + 0.03358977660536766, + -0.004812704399228096, + 0.03617364540696144, + 0.0719185322523117, + 0.02065223827958107, + -0.05530675873160362 + ] + }, + "p244_400.wav": { + "name": "p244", + "embedding": [ + 0.05053942650556564, + 0.09646899998188019, + -0.027374617755413055, + 0.024246055632829666, + -0.05257076025009155, + 0.09351804107427597, + -0.11137928813695908, + 0.12616947293281555, + -0.04456082731485367, + 0.15492606163024902, + -0.051945388317108154, + 0.11233455687761307, + -0.018775006756186485, + -0.1520809829235077, + -0.04695861041545868, + 0.018748905509710312, + -0.07124253362417221, + -0.023805759847164154, + -0.10862024128437042, + -0.02287735417485237, + 0.030787251889705658, + 0.03205721080303192, + 0.025626754388213158, + -0.021082360297441483, + 0.031791239976882935, + 0.06859797239303589, + 0.00863736867904663, + 0.05237775295972824, + 0.02464832365512848, + -0.09288458526134491, + -0.03058764711022377, + 0.09527076780796051, + -0.06832201778888702, + 0.02968393638730049, + 0.050669021904468536, + -0.02569620870053768, + 0.014991317875683308, + -0.040170539170503616, + -0.009432490915060043, + 0.040505848824977875, + -0.022939687594771385, + 0.09011654555797577, + -0.0009731203899718821, + 0.035227663815021515, + 0.034676164388656616, + 0.024047493934631348, + -0.014489714056253433, + -0.07286138832569122, + -0.07280115783214569, + 0.18246901035308838, + 0.08122102916240692, + -0.023695914074778557, + -0.056694891303777695, + -0.08033302426338196, + 0.0821426510810852, + -0.029088255017995834, + -0.1365344226360321, + -0.06719265133142471, + 0.05663881450891495, + 0.1370963752269745, + -0.04770912975072861, + -0.028637737035751343, + 0.0112940464168787, + 0.12040476500988007, + 0.08527788519859314, + 0.0839025229215622, + 0.09662358462810516, + 0.10660937428474426, + -0.016998691484332085, + 0.024155355989933014, + 0.06180451065301895, + 0.04467274248600006, + 0.08433789014816284, + 0.018324395641684532, + 0.0502580925822258, + -0.013541549444198608, + 0.015926234424114227, + -0.02741243503987789, + -0.017203042283654213, + 0.009793896228075027, + 0.009469199925661087, + 0.036539480090141296, + -0.003526360262185335, + 0.04668328911066055, + -0.030008362606167793, + 0.06147938221693039, + 0.00850432738661766, + -0.026476800441741943, + 0.0516519770026207, + 0.03651402145624161, + 0.03542536869645119, + 0.06543764472007751, + -0.07363831996917725, + -0.0862838476896286, + 0.04344604164361954, + 0.01410445012152195, + 0.0037103150971233845, + 0.036826543509960175, + 0.03100178763270378, + -0.007787529844790697, + 0.10383725166320801, + 0.0494295209646225, + -0.042055025696754456, + 0.02392265386879444, + -0.08150888979434967, + 0.14098212122917175, + 0.07739824056625366, + -0.030676715075969696, + 0.03343028202652931, + -0.03434886783361435, + 0.0699676126241684, + 0.03870538994669914, + -0.13470511138439178, + -0.10837861895561218, + 0.04302896559238434, + -0.00874422024935484, + -0.029670823365449905, + 0.07562843710184097, + -0.002656846772879362, + 0.03161662817001343, + 0.10219651460647583, + -0.066884845495224, + -0.01801367662847042, + -0.012202414683997631, + 0.05396562069654465, + -0.07898958027362823, + 0.015454623848199844, + 0.04010533541440964, + -0.001971959136426449, + -0.00276409974321723, + 0.13414739072322845, + 0.005273330956697464, + -0.012891230173408985, + 0.01833406835794449, + -0.022578798234462738, + 0.041748158633708954, + -0.0066428473219275475, + -0.01478208415210247, + 0.03524940460920334, + 0.03562815487384796, + 0.055995918810367584, + -0.03283051773905754, + -0.0418962687253952, + -0.10740187764167786, + 0.033719323575496674, + 0.02134593203663826, + 0.05213851481676102, + -0.038598574697971344, + 0.021210819482803345, + -0.03093128278851509, + -0.06231634318828583, + 0.02418169006705284, + -0.009159738197922707, + 0.0772741436958313, + -0.03150858357548714, + -0.007958821952342987, + 0.13126052916049957, + 0.0033897990360856056, + 0.007149349432438612, + -0.03360576927661896, + -0.018871353939175606, + 0.013747945427894592, + 0.060412608087062836, + -0.06583832949399948, + -0.06400668621063232, + 0.006678346544504166, + 0.022931678220629692, + 0.0033535792026668787, + 0.0803307294845581, + 0.051240451633930206, + -0.009944802150130272, + 0.031103044748306274, + -0.036846745759248734, + -0.016207732260227203, + -0.07806430757045746, + -0.0458969846367836, + -0.023766152560710907, + -0.044228918850421906, + -0.041395753622055054, + 0.08404529094696045, + 0.012381714768707752, + 0.05741448700428009, + -0.02016575261950493, + -0.09285682439804077, + -0.06741909682750702, + 0.07487379759550095, + 0.07823365926742554, + -0.01932818815112114, + 0.029713913798332214, + 0.07107331603765488, + -0.005012538284063339, + 0.04666861146688461, + 0.08552233874797821, + 0.09391190111637115, + -0.023120302706956863, + 0.027389535680413246, + -0.091127410531044, + 0.09053464233875275, + 0.0428406186401844, + -0.09005285799503326, + -0.073916494846344, + -0.007085512392222881, + -0.057615190744400024, + 0.016361400485038757, + -0.0413484200835228, + 0.029719578102231026, + 0.07708516716957092, + 0.0002740445779636502, + -0.07349929213523865, + -0.10459575057029724, + 0.11195839941501617, + -0.09053973108530045, + -0.009640864096581936, + -0.0689467042684555, + 0.03942933678627014, + 0.08978866785764694, + 0.06725664436817169, + -0.018309906125068665, + -0.00024114875122904778, + 0.05321994796395302, + -0.016517654061317444, + 0.00033383630216121674, + 0.04865456372499466, + 0.015678534284234047, + -0.11634225398302078, + 0.006422641221433878, + -0.07633957266807556, + 0.051836688071489334, + -0.05980987101793289, + 0.1252908706665039, + 0.0033604034688323736, + -0.04055309295654297, + -0.08084645867347717, + 0.0545833483338356, + -0.049858130514621735, + 0.06814046204090118, + 0.013050705194473267, + 0.0619654543697834, + 0.05434957146644592, + -0.054302092641592026, + 0.12178653478622437, + 0.044727351516485214, + -0.04462964087724686, + -0.08999882638454437, + -0.06695359945297241, + -0.03502817451953888, + 0.043355923146009445, + 0.03577809035778046, + -0.08695538341999054, + 0.008675831370055676, + 0.023106645792722702, + -0.04838944226503372, + 0.05734530836343765, + 0.13678139448165894, + 0.08542408049106598, + -0.12853728234767914 + ] + }, + "p244_076.wav": { + "name": "p244", + "embedding": [ + 0.04037095233798027, + 0.13764843344688416, + 0.007012718357145786, + 0.02261301875114441, + -0.032263197004795074, + 0.07159577310085297, + -0.08193717896938324, + 0.11613215506076813, + -0.06130309775471687, + 0.13961389660835266, + -0.11655938625335693, + 0.10490601509809494, + -0.06449037790298462, + -0.13848866522312164, + -0.037140801548957825, + 0.05259323492646217, + -0.0348464697599411, + 0.03234892711043358, + -0.02132207714021206, + 0.0030829589813947678, + 0.030819809064269066, + 0.017189502716064453, + 0.06872552633285522, + -0.02526131644845009, + 0.04082213714718819, + 0.05645167455077171, + 0.02694776840507984, + 0.07625964283943176, + 0.04195638373494148, + -0.0509735643863678, + -0.04752815514802933, + 0.1251574158668518, + -0.032261840999126434, + 0.033561546355485916, + 0.0576615184545517, + 0.016482248902320862, + -0.0012533895205706358, + -0.05587492138147354, + -0.0011165686883032322, + -0.021076317876577377, + -0.0334252268075943, + 0.040446631610393524, + 0.0008315485902130604, + -0.02376745082437992, + 0.027616413310170174, + 0.024395866319537163, + -0.020841583609580994, + -0.025382153689861298, + -0.08509089052677155, + 0.1477886587381363, + 0.05559735745191574, + -0.0015781987458467484, + -0.07457108795642853, + -0.09058764576911926, + 0.10822287201881409, + 0.005029873922467232, + -0.11035969853401184, + -0.012881547212600708, + 0.08433149755001068, + 0.16410008072853088, + -0.009644023142755032, + -0.027379069477319717, + 0.0023826458491384983, + 0.10790708661079407, + -6.020348519086838e-05, + 0.112828828394413, + 0.0586782842874527, + 0.07315827906131744, + 0.031227514147758484, + 0.07111864537000656, + 0.037119604647159576, + 0.06497267633676529, + 0.017160294577479362, + -0.024218998849391937, + 0.004126985557377338, + -0.026237523183226585, + -0.0459447056055069, + 0.052518054842948914, + -0.015375608578324318, + -0.04730473831295967, + -0.0329255647957325, + -0.017924068495631218, + -0.008379505947232246, + -0.03960617259144783, + -0.00845858734101057, + 0.04162054508924484, + -0.009148597717285156, + -0.00582651374861598, + 0.08696100115776062, + 0.02784571796655655, + -0.023738257586956024, + 0.0439765527844429, + -0.037809647619724274, + -0.09898503124713898, + -0.01753910258412361, + 0.00706604216247797, + 0.019492272287607193, + 0.08926250040531158, + 0.03702676296234131, + -0.021501606330275536, + 0.10189008712768555, + 0.05460657551884651, + 0.03087984025478363, + 0.025580208748579025, + -0.09864602237939835, + 0.10859756916761398, + 0.08049934357404709, + -0.01699146255850792, + 0.04073077812790871, + -0.0175881776958704, + 0.08812698721885681, + 0.10243579745292664, + -0.14123377203941345, + -0.06874243170022964, + -0.01940654031932354, + -0.008445695042610168, + 0.0031498530879616737, + 0.05005911365151405, + -0.020407598465681076, + -0.014747008681297302, + 0.10300946235656738, + -0.09670090675354004, + -0.08348426222801208, + -0.04263151437044144, + 0.044025786221027374, + -0.057726748287677765, + 0.037608884274959564, + 0.041304659098386765, + -0.015584757551550865, + -0.018973151221871376, + 0.06120190769433975, + -0.013975674286484718, + 0.021961238235235214, + 0.060964688658714294, + -0.07643675804138184, + 0.0016423962078988552, + -0.07740730047225952, + 0.020345179364085197, + 0.056520938873291016, + 0.06204928457736969, + 0.05876106768846512, + 0.012037435546517372, + -0.029501445591449738, + -0.05763449892401695, + -0.013333426788449287, + 0.08377092331647873, + 0.025010403245687485, + -0.012123534455895424, + -0.04990389943122864, + -0.021398276090621948, + -0.051785264164209366, + 0.04337175190448761, + 0.0074604470282793045, + 0.0799565464258194, + -0.010167635045945644, + -0.005495373625308275, + 0.11491915583610535, + 0.009996838867664337, + -0.02934999018907547, + -0.09868563711643219, + -0.03302093967795372, + 0.03735147789120674, + 0.014893303625285625, + -0.09818150848150253, + -0.08328143507242203, + 0.014430168084800243, + -0.006564276292920113, + -0.027671217918395996, + 0.02406672202050686, + 0.03553932532668114, + 0.009732716716825962, + 0.041021060198545456, + -0.031582195311784744, + -0.0006226208060979843, + -0.09954287856817245, + -0.060952745378017426, + -0.023160364478826523, + -0.0334116593003273, + -0.007443828973919153, + 0.07629574835300446, + 0.010202744975686073, + 0.010963167995214462, + 0.03494274243712425, + -0.061509981751441956, + -0.05982247740030289, + 0.08414982259273529, + 0.0643981397151947, + 0.023676443845033646, + 0.07315056025981903, + 0.050914157181978226, + -0.06682533025741577, + 0.060128938406705856, + 0.05861974135041237, + 0.08930563181638718, + -0.027293624356389046, + -0.005892493762075901, + -0.0803760439157486, + 0.03835541754961014, + 0.09374020993709564, + -0.12522566318511963, + -0.1097838431596756, + -0.06733863055706024, + -0.050214678049087524, + 0.06219257414340973, + -0.02199053019285202, + -0.010140171274542809, + 0.01084477361291647, + -0.051775116473436356, + -0.07259685546159744, + -0.08979864418506622, + 0.10459926724433899, + -0.035193461924791336, + -0.04423952102661133, + -0.04723978042602539, + 0.05199592188000679, + 0.03887098655104637, + 0.03169165924191475, + -0.019173385575413704, + 0.04122205078601837, + 0.06062355637550354, + -0.093259796500206, + -0.03810175880789757, + 0.04094254598021507, + -0.000958690419793129, + -0.05110141262412071, + 0.036421142518520355, + -0.07109324634075165, + 0.08266282826662064, + -0.07566773146390915, + 0.17352139949798584, + -0.03900402411818504, + -0.07110479474067688, + -0.0783536285161972, + 0.05334654822945595, + -0.039068467915058136, + -0.0055625224485993385, + 0.04592191427946091, + 0.034208592027425766, + -0.010556260123848915, + -0.08727201819419861, + 0.1313057243824005, + -0.011344349943101406, + -0.009854376316070557, + -0.057933785021305084, + -0.05131971091032028, + -0.05881940945982933, + 0.00033874576911330223, + -0.024586688727140427, + -0.08287695050239563, + -0.005483762361109257, + -0.004566133953630924, + -0.0017496270593255758, + 0.057817209511995316, + 0.13085409998893738, + 0.06414993107318878, + -0.0817672535777092 + ] + }, + "p244_421.wav": { + "name": "p244", + "embedding": [ + 0.052359603345394135, + 0.08491339534521103, + -0.0052977679297327995, + 0.027988698333501816, + -0.054709941148757935, + 0.0558035783469677, + -0.13452669978141785, + 0.13362833857536316, + -0.03757494315505028, + 0.14037875831127167, + -0.06648547202348709, + 0.10888543725013733, + -0.029858548194169998, + -0.18481528759002686, + -0.024504847824573517, + 0.0695403665304184, + -0.043456271290779114, + -0.03300505131483078, + -0.03962382674217224, + -0.012660928070545197, + 0.02752881869673729, + 0.037373535335063934, + 0.04065645858645439, + 0.012203475460410118, + 0.021803414449095726, + 0.060740821063518524, + 0.002221314236521721, + 0.05864550918340683, + 0.018737390637397766, + -0.05807553976774216, + -0.02747165411710739, + 0.10151033103466034, + -0.042212747037410736, + 0.020324809476733208, + 0.053468845784664154, + -0.0034837238490581512, + -0.005158654879778624, + -0.06351504474878311, + -0.02001127414405346, + -0.00910661369562149, + -0.04769226163625717, + 0.08150672167539597, + 0.023300809785723686, + -0.005530927330255508, + 0.045759882777929306, + 0.015095775946974754, + -0.030782124027609825, + -0.053303610533475876, + -0.11417430639266968, + 0.14903146028518677, + 0.07275809347629547, + 0.0021658800542354584, + -0.06897446513175964, + -0.07877419888973236, + 0.09227396547794342, + -0.028562214225530624, + -0.1202654093503952, + -0.05955028161406517, + 0.07685442268848419, + 0.15787135064601898, + -0.02730032429099083, + -0.03053065948188305, + 0.019903123378753662, + 0.128347709774971, + 0.05918174609541893, + 0.09720789641141891, + 0.07236267626285553, + 0.10033013671636581, + -0.02036476880311966, + 0.02200353518128395, + 0.05133114755153656, + 0.061604928225278854, + 0.042029526084661484, + 0.011000072583556175, + 0.021969132125377655, + 0.00298164295963943, + -0.013397286646068096, + 0.009743070229887962, + -0.016798675060272217, + -0.0074360668659210205, + -0.024280427023768425, + 0.01408606581389904, + -0.002260783454403281, + 0.01663368195295334, + -0.013697940856218338, + 0.05663369223475456, + 0.021143531426787376, + -0.005746930837631226, + 0.0695028007030487, + 0.03222574293613434, + 0.00443997560068965, + 0.05952133238315582, + -0.06665770709514618, + -0.08225062489509583, + 0.009627111256122589, + 0.004235336557030678, + 0.022029904648661613, + 0.06457825005054474, + 0.0189584419131279, + -0.01946914941072464, + 0.11743514239788055, + 0.046374596655368805, + -0.00821107067167759, + 0.033387795090675354, + -0.09662780165672302, + 0.11897893249988556, + 0.06971326470375061, + -0.014988185837864876, + 0.051024388521909714, + -0.048399847000837326, + 0.06919652223587036, + 0.07528217881917953, + -0.13261821866035461, + -0.06689087301492691, + 0.025559432804584503, + 0.008176721632480621, + -0.021581675857305527, + 0.11641605943441391, + -0.00542498379945755, + 0.03229762613773346, + 0.10619594156742096, + -0.08651252090930939, + -0.05318313091993332, + -0.006541445851325989, + 0.04954063147306442, + -0.0865594670176506, + 0.045327093452215195, + 0.0434432327747345, + -0.01434248685836792, + 0.011201722547411919, + 0.0901261568069458, + -0.0059002055786550045, + 0.003480600891634822, + 0.02298714779317379, + -0.05986514315009117, + 0.02254810743033886, + -0.04001174867153168, + 0.0009383925935253501, + 0.05553753674030304, + 0.04159386828541756, + 0.0430096760392189, + -0.004365541972219944, + -0.034328117966651917, + -0.11798670142889023, + 0.005010065156966448, + 0.03674982488155365, + 0.07754839956760406, + -0.0124696409329772, + -0.015956806018948555, + -0.043485648930072784, + -0.06129337474703789, + 0.020878370851278305, + -0.009759507142007351, + 0.07530860602855682, + -0.024133212864398956, + 0.00018365922733210027, + 0.09656389057636261, + 0.01610649935901165, + 0.0009305290877819061, + -0.054944634437561035, + -0.035191625356674194, + 0.008118957281112671, + 0.057478539645671844, + -0.08140076696872711, + -0.05751657485961914, + 0.013857441954314709, + 0.04003417119383812, + -0.018604308366775513, + 0.0471780002117157, + 0.0489465668797493, + 0.018174225464463234, + 0.029334744438529015, + -0.06177128851413727, + 0.016143137589097023, + -0.09872758388519287, + -0.07609512656927109, + -0.0018860509153455496, + -0.007533456198871136, + -0.01084181945770979, + 0.07288126647472382, + 0.01838839054107666, + 0.05020969361066818, + -0.008386634290218353, + -0.08623592555522919, + -0.09076200425624847, + 0.06908263266086578, + 0.06968741118907928, + -0.0013668525498360395, + 0.05549834296107292, + 0.0528520867228508, + -0.05103222653269768, + 0.053178735077381134, + 0.04785279929637909, + 0.104213647544384, + -0.029271148145198822, + 0.02190653793513775, + -0.08060689270496368, + 0.06930804252624512, + 0.09676992893218994, + -0.09904275834560394, + -0.08024166524410248, + -0.020491164177656174, + -0.06414781510829926, + 0.04435170441865921, + -0.028730478137731552, + -0.003296114271506667, + 0.043042369186878204, + -0.014094225130975246, + -0.10101969540119171, + -0.09378762543201447, + 0.08977267146110535, + -0.06952670216560364, + -0.0030763084068894386, + -0.07000904530286789, + 0.03830642253160477, + 0.08000911772251129, + 0.04903144761919975, + -0.02160087786614895, + -0.011179282329976559, + 0.05266395956277847, + -0.045007988810539246, + -0.004609322175383568, + 0.05822475999593735, + 0.01822805032134056, + -0.09958585351705551, + 0.0022085928358137608, + -0.0774078443646431, + 0.05633009225130081, + -0.0453941784799099, + 0.15446597337722778, + -0.005352163687348366, + -0.05346453934907913, + -0.07835906744003296, + 0.020546667277812958, + -0.027687987312674522, + 0.05097168684005737, + 0.02886008284986019, + 0.06206386536359787, + 0.04512518644332886, + -0.05445303022861481, + 0.12324132025241852, + 0.04730850085616112, + -0.03821056708693504, + -0.05541013181209564, + -0.039593156427145004, + -0.04679294675588608, + 0.029032841324806213, + 0.00022608294966630638, + -0.09560677409172058, + -0.01142454706132412, + 0.02166072651743889, + -0.0305277518928051, + 0.05913497135043144, + 0.14018478989601135, + 0.0649317055940628, + -0.11952614784240723 + ] + }, + "p244_394.wav": { + "name": "p244", + "embedding": [ + 0.04221281781792641, + 0.07372567802667618, + -0.0659819096326828, + 0.006157597526907921, + -0.02978031150996685, + 0.03945683687925339, + -0.12181125581264496, + 0.058032795786857605, + -0.03868616372346878, + 0.14774687588214874, + -0.07240644097328186, + 0.09537186473608017, + -0.013648711144924164, + -0.11537807434797287, + -0.04489489644765854, + 0.024008475244045258, + -0.017972923815250397, + -0.02762364223599434, + -0.07296928763389587, + -0.05663127824664116, + 0.04322358965873718, + 0.047203414142131805, + 0.01330507267266512, + -0.054803602397441864, + 0.0009810198098421097, + 0.07010701298713684, + 0.004903367720544338, + 0.002591957338154316, + -0.004884074442088604, + 0.0023916661739349365, + 0.007890032604336739, + 0.09013614058494568, + -0.03697314113378525, + -0.013693119399249554, + 0.0155577901750803, + 0.030582480132579803, + -0.010209169238805771, + -0.04287702590227127, + 0.009402159601449966, + 0.05422542989253998, + -0.04355786740779877, + 0.07451993972063065, + 0.02853311412036419, + -0.0025416752323508263, + 0.032882463186979294, + -0.03931282460689545, + -0.03843151777982712, + 0.002634061500430107, + -0.052503764629364014, + 0.17036250233650208, + 0.10296783596277237, + 0.007376339286565781, + -0.07343405485153198, + -0.031032774597406387, + 0.09722359478473663, + -0.005868859123438597, + -0.08558053523302078, + -0.06655317544937134, + 0.002623163163661957, + 0.1131540983915329, + -0.012632308527827263, + -0.06558747589588165, + 0.00698844064027071, + 0.10186818242073059, + 0.02486557886004448, + 0.03929458558559418, + 0.0945490300655365, + 0.08909730613231659, + -0.021795857697725296, + 0.0030776322819292545, + 0.07897725701332092, + 0.06378591805696487, + 0.049082182347774506, + -0.06440963596105576, + 0.06504374742507935, + -0.01625491864979267, + -0.008609740994870663, + -0.01093031745404005, + -0.02692103572189808, + -0.06158566102385521, + -0.0005314182490110397, + -0.011568897403776646, + -0.017167942598462105, + 0.04275604337453842, + -0.08168315142393112, + -1.0542571544647217e-06, + 0.06265141069889069, + -0.05579163879156113, + 0.05064044147729874, + 0.09218795597553253, + 0.02366851642727852, + 0.0011337138712406158, + -0.0610482320189476, + -0.06813901662826538, + 0.04482470825314522, + -0.0032767076045274734, + 0.0015504853799939156, + 0.04853503406047821, + 0.033751919865608215, + 0.0024062134325504303, + 0.07271923124790192, + 0.04323473200201988, + -0.02236836776137352, + -0.019747108221054077, + -0.07916384190320969, + 0.11579327285289764, + 0.13964106142520905, + -0.03967355564236641, + -0.011013301089406013, + 0.0017855498008430004, + 0.037831664085388184, + 0.03917057067155838, + -0.09499269723892212, + -0.0749216079711914, + 0.028514113277196884, + 0.03920985758304596, + 0.037640832364559174, + 0.08007712662220001, + -0.0013311905786395073, + -0.002193443477153778, + 0.09710744023323059, + -0.02258693240582943, + -0.06172921508550644, + -0.06625495105981827, + 0.008981116116046906, + -0.07737134397029877, + 0.03650752827525139, + 0.061724476516246796, + 0.033231399953365326, + -0.02998354844748974, + 0.08500725775957108, + 0.002355338539928198, + 0.003857824020087719, + -0.045823559165000916, + 0.02854788862168789, + 0.05841199308633804, + 0.011052394285798073, + -0.003450383897870779, + 0.0456831119954586, + 0.013796903192996979, + 0.0868886411190033, + 0.021950632333755493, + 0.022808659821748734, + -0.09523002803325653, + 0.04796866700053215, + 0.0413176454603672, + 0.0050698332488536835, + -0.0522797517478466, + -0.01754833571612835, + -0.020438849925994873, + -0.06216639280319214, + 0.015912078320980072, + -0.048053402453660965, + 0.08413240313529968, + 0.02139638550579548, + -0.028737042099237442, + 0.14665734767913818, + -0.037699125707149506, + -0.007535828277468681, + 0.006085017696022987, + 0.032038867473602295, + -0.0022094841115176678, + 0.04081571847200394, + -0.10109880566596985, + -0.07877299189567566, + -0.014130750671029091, + 0.012173613533377647, + 0.04750073328614235, + 0.01893373392522335, + 0.08463788032531738, + -0.048994410783052444, + 0.03135241940617561, + -0.06985719501972198, + 0.016635265201330185, + -0.09746984392404556, + 0.003945829346776009, + -0.0282443817704916, + -0.11036363244056702, + -0.0005139214918017387, + 0.07725851982831955, + -0.01924262009561062, + 0.010488408617675304, + -0.05139767751097679, + -0.10992743074893951, + -0.06320053339004517, + 0.05239824950695038, + 0.10323932766914368, + -0.02312656305730343, + 0.01673564314842224, + 0.08824264258146286, + 0.028324509039521217, + 0.008866289630532265, + 0.045627690851688385, + 0.08047404885292053, + -0.0641738772392273, + -0.00593201257288456, + -0.04705319553613663, + 0.07765305042266846, + 0.05012659728527069, + -0.08386698365211487, + -0.0650007575750351, + -0.07331133633852005, + -0.03916112333536148, + 0.013628602959215641, + -0.04112265259027481, + 0.02014829032123089, + 0.05306567996740341, + -0.03210524469614029, + -0.0801018625497818, + -0.09217952191829681, + 0.07033544033765793, + -0.0350370891392231, + -0.0052529750391840935, + -0.05333959311246872, + 0.024838626384735107, + 0.02708384022116661, + 0.05357912555336952, + -0.06930997967720032, + 0.021345606073737144, + 0.0037568937987089157, + -0.037808675318956375, + -0.01639874465763569, + -0.003400258719921112, + 0.030739542096853256, + -0.07515322417020798, + -0.026407957077026367, + -0.0663398802280426, + 0.11452736705541611, + -0.07026782631874084, + 0.05067889764904976, + 0.004596891347318888, + -0.03442615643143654, + -0.0711522325873375, + 0.025660306215286255, + -0.011127292178571224, + 0.05089222639799118, + 0.08250969648361206, + 0.055533066391944885, + -0.006250837817788124, + -0.06509929150342941, + 0.07760076224803925, + 0.06454917043447495, + 0.002327009104192257, + -0.08449520915746689, + 0.02630813792347908, + -0.0261441208422184, + 0.038046471774578094, + 0.061569489538669586, + -0.05411284416913986, + 0.04874954745173454, + 0.004920903593301773, + -0.03563157096505165, + 0.050731562077999115, + 0.04804393649101257, + 0.05965430289506912, + -0.08994707465171814 + ] + }, + "p244_059.wav": { + "name": "p244", + "embedding": [ + 0.05211058259010315, + 0.09031020849943161, + -0.016787324100732803, + 0.044890522956848145, + -0.07434713840484619, + 0.04509442672133446, + -0.138683021068573, + 0.15274880826473236, + -0.014317094348371029, + 0.11448056995868683, + -0.05287359654903412, + 0.1250535100698471, + -0.025392839685082436, + -0.19026386737823486, + -0.003872975707054138, + 0.06730380654335022, + -0.008804458193480968, + -0.024860791862010956, + 0.006314050406217575, + -0.02803061529994011, + 0.02479531429708004, + 0.04429391771554947, + 0.043818652629852295, + 0.0028664530254900455, + 0.05632931739091873, + 0.06739361584186554, + -0.010996385477483273, + 0.030286163091659546, + 0.0024190880358219147, + -0.053098730742931366, + -0.04355702921748161, + 0.08344703912734985, + -0.05834344029426575, + 0.005014099180698395, + 0.051025375723838806, + -0.01388503983616829, + -0.020580502226948738, + -0.060148969292640686, + -0.02872304990887642, + -0.0010775126283988357, + -0.054255276918411255, + 0.0857522115111351, + 0.05023276060819626, + -0.03782668337225914, + 0.03837617114186287, + 0.01860402524471283, + -0.003439562860876322, + -0.03719545155763626, + -0.1267479658126831, + 0.1542169451713562, + 0.04489909112453461, + 0.012139051221311092, + -0.08407258987426758, + -0.06525923311710358, + 0.10446441173553467, + 0.0014876071363687515, + -0.09852991253137589, + -0.03226218745112419, + 0.08392706513404846, + 0.1515682339668274, + -0.01122039183974266, + -0.03162868693470955, + 0.028277942910790443, + 0.11791953444480896, + 0.05518379434943199, + 0.07797396183013916, + 0.06564490497112274, + 0.11697226762771606, + -0.019241739064455032, + 0.024206530302762985, + 0.04920335114002228, + 0.0724349096417427, + 0.018184814602136612, + -0.01683025434613228, + -0.01598476432263851, + -0.004768064711242914, + -0.023378970101475716, + -0.011343930847942829, + -0.005287173204123974, + -0.02188873663544655, + -0.024261534214019775, + -0.005456279031932354, + 0.011974446475505829, + 0.014671731740236282, + -0.023219861090183258, + 0.05448531731963158, + 0.0510338731110096, + -0.004323908593505621, + 0.07310354709625244, + 0.022049546241760254, + -0.015815729275345802, + 0.06292496621608734, + -0.08115273714065552, + -0.06564487516880035, + 0.018000714480876923, + -0.0011353300651535392, + 0.039665453135967255, + 0.09368514269590378, + 0.04481733590364456, + -0.015207127667963505, + 0.13545510172843933, + 0.0574614554643631, + 0.008050581440329552, + 0.018052363768219948, + -0.07626637071371078, + 0.12130442261695862, + 0.06759084761142731, + -0.010168075561523438, + 0.08639216423034668, + -0.04942810907959938, + 0.06838169693946838, + 0.06409639120101929, + -0.14163321256637573, + -0.0523344948887825, + 0.015249529853463173, + 0.022128598764538765, + -0.01690315082669258, + 0.14046034216880798, + 0.005391120444983244, + 0.05108964443206787, + 0.10216464102268219, + -0.10790012776851654, + -0.06773235648870468, + -0.01801345869898796, + 0.056593433022499084, + -0.09005950391292572, + 0.06811849772930145, + 0.07202481478452682, + -0.039467282593250275, + 0.031007032841444016, + 0.05758289992809296, + -0.002961705904453993, + 0.024321893230080605, + 0.024886082857847214, + -0.048783764243125916, + 0.008189593441784382, + -0.030337151139974594, + 0.01699521765112877, + 0.059775106608867645, + 0.016814284026622772, + 0.057762689888477325, + -0.001238397671841085, + -0.021220512688159943, + -0.12438033521175385, + 0.008859913796186447, + 0.04408992826938629, + 0.08999302238225937, + -0.0163830928504467, + -0.04759235680103302, + -0.03438553214073181, + -0.08179104328155518, + 0.02691732719540596, + 0.010365668684244156, + 0.07743996381759644, + -0.027045879513025284, + 0.004372643772512674, + 0.08790628612041473, + 0.056354813277721405, + -0.012188902124762535, + -0.05727371573448181, + -0.049839019775390625, + -0.00020913488697260618, + 0.043822042644023895, + -0.10179653763771057, + -0.06975045055150986, + -0.02184605598449707, + 0.028134597465395927, + -0.04036519303917885, + 0.05948321521282196, + 0.039885878562927246, + 0.031334299594163895, + 0.022022534161806107, + -0.05822766572237015, + 0.007934393361210823, + -0.084077388048172, + -0.0759524330496788, + -0.01076965406537056, + 0.008049480617046356, + -0.04031803458929062, + 0.08851504325866699, + 0.03602299839258194, + 0.06514918804168701, + -0.009855658747255802, + -0.03239437937736511, + -0.06953404098749161, + 0.03346630930900574, + 0.023713747039437294, + -0.007787439506500959, + 0.05046822875738144, + 0.06018594279885292, + -0.06341789662837982, + 0.0562901496887207, + 0.060678452253341675, + 0.0846179872751236, + -0.0357646644115448, + 0.022774893790483475, + -0.06300573796033859, + 0.08778300881385803, + 0.10481292009353638, + -0.09367352724075317, + -0.08410625159740448, + -0.053423330187797546, + -0.07847580313682556, + 0.04153309017419815, + -0.019026286900043488, + 0.0061453827656805515, + 0.004096143878996372, + -0.0075471303425729275, + -0.09132785350084305, + -0.10212084650993347, + 0.06480856239795685, + -0.055305205285549164, + 5.991733632981777e-05, + -0.08395881950855255, + 0.041417863219976425, + 0.09231184422969818, + 0.03960429131984711, + -0.004887227434664965, + -0.021804237738251686, + 0.05057108402252197, + -0.03523723781108856, + 0.01057150773704052, + 0.09661002457141876, + 0.0465642586350441, + -0.09745390713214874, + -0.01476682722568512, + -0.062276691198349, + 0.06255712360143661, + -0.03646198660135269, + 0.1689663827419281, + 0.021374596282839775, + -0.05630611628293991, + -0.0784098207950592, + 0.03436777740716934, + -0.018948176875710487, + 0.04361008107662201, + 0.02956235781311989, + 0.05381504446268082, + 0.03879433125257492, + -0.04818301647901535, + 0.11761713773012161, + 0.0379662811756134, + -0.040918607264757156, + -0.04715179651975632, + -0.047564469277858734, + -0.039870284497737885, + 0.037253767251968384, + 0.003212657291442156, + -0.09977522492408752, + -0.02584272250533104, + 0.03237131983041763, + 0.007361389230936766, + 0.058573536574840546, + 0.14789551496505737, + 0.06627048552036285, + -0.10891734063625336 + ] + }, + "p244_100.wav": { + "name": "p244", + "embedding": [ + 0.0663197785615921, + 0.09439428150653839, + -0.05860540270805359, + 0.04420878365635872, + -0.0157189778983593, + 0.05247534066438675, + -0.10924509167671204, + 0.10548478364944458, + -0.029878534376621246, + 0.11963379383087158, + -0.06781339645385742, + 0.09859782457351685, + -0.04731093719601631, + -0.10407844930887222, + -0.025321464985609055, + 0.0381789356470108, + -0.028281522914767265, + -0.005352920852601528, + -0.018945593386888504, + -0.016972610726952553, + 0.04892675578594208, + 0.009979571215808392, + 0.04857354611158371, + -0.043624814599752426, + -0.007384458556771278, + 0.059436164796352386, + -0.004885569680482149, + -0.010640589520335197, + 0.011995124630630016, + -0.007840579375624657, + 0.0026341602206230164, + 0.04913713037967682, + -0.017757225781679153, + 0.000975143164396286, + 0.04100700840353966, + 0.026308663189411163, + -0.03971042484045029, + -0.05527646467089653, + 0.016162578016519547, + 0.0015194378793239594, + -0.033707112073898315, + 0.059089966118335724, + 0.026121221482753754, + -0.0753602385520935, + 0.062055837363004684, + -0.05959121510386467, + -0.02531673014163971, + -0.007754381280392408, + -0.08055133372545242, + 0.13634063303470612, + 0.0722898468375206, + 0.04264960065484047, + -0.09108496457338333, + -0.0037523843348026276, + 0.0923738032579422, + 0.021413519978523254, + -0.08120468258857727, + -0.03694716840982437, + 0.020819321274757385, + 0.13331222534179688, + -0.026344316080212593, + -0.046072062104940414, + 0.04454554617404938, + 0.062435977160930634, + 0.038268934935331345, + 0.04812190681695938, + 0.11056789755821228, + 0.06409688293933868, + -0.0023174136877059937, + 0.030247226357460022, + 0.048067860305309296, + 0.08169476687908173, + 0.05583852529525757, + -0.01167504582554102, + 0.014711730182170868, + -0.048491790890693665, + -0.04016498476266861, + -0.008022511377930641, + 0.008780616335570812, + -0.0828246995806694, + -0.03210859373211861, + -0.037795573472976685, + 0.01731165125966072, + 0.031443674117326736, + -0.023595400154590607, + 0.01804482564330101, + 0.05807250365614891, + -0.057509537786245346, + 0.03341579809784889, + 0.04593736678361893, + -0.002328613307327032, + 0.019688639789819717, + -0.052042510360479355, + -0.10841652005910873, + 0.026302458718419075, + -0.010919563472270966, + 0.029422741383314133, + 0.038488660007715225, + 0.06177400052547455, + 0.026608601212501526, + 0.0835871696472168, + 0.04342842847108841, + 0.006749723106622696, + 0.0043671149760484695, + -0.0627894401550293, + 0.11522842943668365, + 0.1276656687259674, + -0.037673670798540115, + 0.029498660936951637, + -0.03411189839243889, + 0.007968232035636902, + 0.05691046267747879, + -0.08458146452903748, + -0.051257744431495667, + 0.01903976872563362, + 0.024734729900956154, + 0.045076634734869, + 0.10741623491048813, + 0.02892608568072319, + 0.009291954338550568, + 0.10416583716869354, + -0.09102657437324524, + -0.08732734620571136, + -0.07047225534915924, + 0.044792789965867996, + -0.06465359032154083, + 0.07475265115499496, + 0.07118361443281174, + 0.0050682323053479195, + -0.003476560115814209, + 0.04940428584814072, + -0.008041362278163433, + 0.00932995229959488, + -0.025251735001802444, + -0.00887626688927412, + 0.03655785694718361, + -0.05850313603878021, + -0.009714930318295956, + 0.06718210875988007, + 0.017471838742494583, + 0.06314821541309357, + 0.021001707762479782, + 0.017348608002066612, + -0.09711773693561554, + 0.00856832042336464, + 0.08780636638402939, + 0.012186123058199883, + -0.04391637444496155, + -0.04549715295433998, + -0.0033802613615989685, + -0.05527162551879883, + 0.016970159485936165, + -0.028318775817751884, + 0.07493670284748077, + -0.0031198784708976746, + 0.03987174108624458, + 0.10714699327945709, + -0.003863329067826271, + 0.004510321654379368, + -0.03685054928064346, + -0.008681939914822578, + 0.03332715481519699, + 0.03084845468401909, + -0.11221206933259964, + -0.10365574061870575, + -0.06344129145145416, + 0.022486770525574684, + 0.00369067769497633, + 0.025880323722958565, + 0.06596258282661438, + -0.009321731515228748, + 0.0115674939006567, + -0.028061628341674805, + 0.03308183327317238, + -0.10043562948703766, + -0.054394111037254333, + -0.033737242221832275, + -0.07232873886823654, + 0.012167712673544884, + 0.08024148643016815, + 0.008952250704169273, + 0.028988581150770187, + -0.03271050006151199, + -0.06773829460144043, + -0.06748488545417786, + 0.0571545735001564, + 0.05134906619787216, + -0.02053200639784336, + 0.009943072684109211, + 0.06056932732462883, + 0.011697516776621342, + 0.01142505556344986, + 0.022412709891796112, + 0.1010124683380127, + -0.03607857972383499, + -0.048399388790130615, + -0.07639270275831223, + 0.04189855605363846, + 0.12902554869651794, + -0.08879778534173965, + -0.07785983383655548, + -0.09564165025949478, + -0.05752214044332504, + 0.019074978306889534, + -0.07030005753040314, + -0.007959501817822456, + 0.019897159188985825, + -0.05385321378707886, + -0.09478220343589783, + -0.13109785318374634, + 0.06463485211133957, + -0.010974442586302757, + -0.004489540588110685, + -0.07305482029914856, + 0.04138777405023575, + 0.026729801669716835, + -0.014840628951787949, + -0.043802786618471146, + 0.05128946155309677, + -0.019664419814944267, + -0.02324110083281994, + -0.002534065395593643, + 0.012591449543833733, + 0.0510978102684021, + -0.0857885554432869, + -0.02150963433086872, + -0.06154468655586243, + 0.09006279706954956, + -0.06946229934692383, + 0.11457448452711105, + -0.027412837371230125, + -0.026068881154060364, + -0.08111831545829773, + 0.03654753044247627, + -0.008012485690414906, + 0.047931745648384094, + 0.04473424702882767, + 0.040938958525657654, + 0.0036564096808433533, + -0.09383370727300644, + 0.06946577876806259, + 0.042330384254455566, + 0.008626967668533325, + -0.09750566631555557, + -0.02568056248128414, + -0.05529318377375603, + 0.008041676133871078, + -0.01950201578438282, + -0.039776209741830826, + 0.018483854830265045, + -0.007487908937036991, + 0.04015301913022995, + 0.048131756484508514, + 0.07871736586093903, + 0.02605525404214859, + -0.05583636462688446 + ] + }, + "p244_023.wav": { + "name": "p244", + "embedding": [ + 0.03908824548125267, + 0.1017199233174324, + -0.009959769435226917, + 0.021438581869006157, + -0.06452645361423492, + 0.044496528804302216, + -0.13400962948799133, + 0.1451302468776703, + -0.044776733964681625, + 0.11464640498161316, + -0.07916643470525742, + 0.12784340977668762, + -0.029615890234708786, + -0.1755208522081375, + -0.048016875982284546, + 0.05921188369393349, + -0.0343744233250618, + -0.045235276222229004, + -0.0074041178449988365, + -0.0253108162432909, + 0.039457403123378754, + 0.03610103577375412, + 0.03011571429669857, + 0.03964009881019592, + 0.02795795351266861, + 0.06703013181686401, + 0.016632018610835075, + 0.05980275571346283, + 0.03333541005849838, + -0.029680419713258743, + -0.03519735857844353, + 0.09383947402238846, + -0.04114807769656181, + 0.014151819981634617, + 0.053443919867277145, + -0.0067961798049509525, + 0.016943257302045822, + -0.06032857298851013, + -0.02663329243659973, + -0.00046618329361081123, + -0.039308350533246994, + 0.07699462026357651, + 0.04193534702062607, + -0.005273374263197184, + 0.02674288861453533, + 0.04383581504225731, + -0.0043047694489359856, + -0.0473567396402359, + -0.11646394431591034, + 0.14727148413658142, + 0.05183038488030434, + -0.00142720399890095, + -0.06901705265045166, + -0.06773066520690918, + 0.11674400418996811, + -0.031111136078834534, + -0.0977528765797615, + -0.029965033754706383, + 0.08769207447767258, + 0.15565212070941925, + -0.03476284071803093, + -0.04429098591208458, + 0.023429809138178825, + 0.13291653990745544, + 0.057654645293951035, + 0.07660049945116043, + 0.07403185218572617, + 0.10676908493041992, + -0.02657163515686989, + -0.0007726012845523655, + 0.05820402503013611, + 0.08041516691446304, + 0.01997154764831066, + -0.012673151679337025, + 0.008889789693057537, + 0.0164633821696043, + -0.010283536277711391, + 0.027073834091424942, + -0.025768082588911057, + -0.011276870965957642, + -0.033658891916275024, + 0.016812419518828392, + -0.011569165624678135, + 0.010936538688838482, + -0.01961156167089939, + 0.08063401281833649, + 0.019893674179911613, + 0.0028532263822853565, + 0.07736208289861679, + 0.029046129435300827, + 0.0002845727140083909, + 0.06905665993690491, + -0.07306993007659912, + -0.06884765625, + 0.017564628273248672, + -0.0046822004951536655, + 0.029821451753377914, + 0.07846148312091827, + 0.0375356562435627, + -0.012686869129538536, + 0.13154901564121246, + 0.05841303989291191, + -0.005561016034334898, + 0.023732321336865425, + -0.09533876925706863, + 0.12531165778636932, + 0.07549038529396057, + -0.021976590156555176, + 0.04789264127612114, + -0.04142708331346512, + 0.0662362203001976, + 0.05911421775817871, + -0.13633295893669128, + -0.08132922649383545, + 0.03302367776632309, + 0.044984545558691025, + -0.02104741893708706, + 0.10965011268854141, + -0.028814515098929405, + 0.035344772040843964, + 0.09868381917476654, + -0.06828127056360245, + -0.056365661323070526, + -0.01856410503387451, + 0.04307914897799492, + -0.07022472470998764, + 0.05234229564666748, + 0.05905531346797943, + -0.009590099565684795, + 0.010263609699904919, + 0.08055105805397034, + -0.0061597395688295364, + -0.003881992306560278, + 0.028562072664499283, + -0.057598669081926346, + 0.019651295617222786, + -0.0191297959536314, + 0.005933896638453007, + 0.043608468025922775, + 0.05449352785944939, + 0.04584034904837608, + 0.011709746904671192, + -0.03451947867870331, + -0.12400718033313751, + 0.007686857134103775, + 0.03464972600340843, + 0.08371372520923615, + -0.0009035574039444327, + -0.044929251074790955, + -0.043272312730550766, + -0.04334426671266556, + -0.001561360084451735, + 0.01567970961332321, + 0.08219204843044281, + -0.039747532457113266, + 0.010228430852293968, + 0.08703365921974182, + 0.025471672415733337, + -0.006671713199466467, + -0.052804186940193176, + -0.030194992199540138, + 0.0002452497137710452, + 0.04281293973326683, + -0.059373751282691956, + -0.07548919320106506, + 0.0015809343894943595, + 0.052883878350257874, + -0.027732735499739647, + 0.05769096314907074, + 0.03231029957532883, + 0.013555985875427723, + 0.03596971556544304, + -0.05700072646141052, + 0.022291073575615883, + -0.10057568550109863, + -0.06620828062295914, + -0.014416437596082687, + 0.015316369943320751, + -0.025401776656508446, + 0.063944011926651, + 0.034537337720394135, + 0.07000309973955154, + 0.011429321952164173, + -0.0725812315940857, + -0.08231204748153687, + 0.053027551621198654, + 0.06893660128116608, + 0.007796157151460648, + 0.0591251477599144, + 0.06391574442386627, + -0.03666124865412712, + 0.06755539029836655, + 0.05735276639461517, + 0.08449211716651917, + -0.030076559633016586, + 0.014660472981631756, + -0.05635940283536911, + 0.06003953889012337, + 0.06228463724255562, + -0.11223392188549042, + -0.07457417994737625, + -0.03092467039823532, + -0.05540286377072334, + 0.04038581624627113, + -0.00673317164182663, + 0.01929626055061817, + 0.013313712552189827, + -0.0018207458779215813, + -0.10298387706279755, + -0.08288252353668213, + 0.06628750264644623, + -0.0733165293931961, + 0.005856611765921116, + -0.07208412885665894, + 0.040309373289346695, + 0.1149497926235199, + 0.02881626971065998, + -0.004198829643428326, + -0.029416609555482864, + 0.03783728554844856, + -0.036783572286367416, + -0.012174882926046848, + 0.05171601101756096, + 0.029560891911387444, + -0.09624523669481277, + 0.011329907923936844, + -0.08156187832355499, + 0.06035470962524414, + -0.03657836839556694, + 0.1633358746767044, + 0.011731870472431183, + -0.05558416619896889, + -0.08446737378835678, + 0.01829644851386547, + -0.03290078416466713, + 0.05489852651953697, + 0.0303493719547987, + 0.04956279695034027, + 0.02715081349015236, + -0.0494561493396759, + 0.1296415776014328, + 0.04800746962428093, + -0.06840189546346664, + -0.07137420773506165, + -0.03960240259766579, + -0.03337593004107475, + 0.027055565267801285, + 0.027266275137662888, + -0.08271216601133347, + -0.040648285299539566, + 0.015020700171589851, + -0.02820698171854019, + 0.08464384078979492, + 0.1389710009098053, + 0.07099004834890366, + -0.1135907769203186 + ] + }, + "p244_001.wav": { + "name": "p244", + "embedding": [ + 0.015332179144024849, + 0.07108315825462341, + -0.020739970728754997, + 0.05744510889053345, + -0.04570154845714569, + 0.020833274349570274, + -0.1109994649887085, + 0.14159035682678223, + 0.009848130866885185, + 0.11420293152332306, + -0.07159987092018127, + 0.0914527103304863, + -0.0625762864947319, + -0.17988622188568115, + 0.052134789526462555, + 0.051672205328941345, + 0.04731632024049759, + -0.006856944411993027, + 0.003111025085672736, + -0.007992730475962162, + 0.027882717549800873, + 0.05588168278336525, + -0.014738529920578003, + -0.02105940505862236, + 0.01581038162112236, + 0.06336754560470581, + -0.04263804107904434, + -0.01843671128153801, + -0.029094256460666656, + -0.018652595579624176, + -0.02964254654943943, + 0.0827953964471817, + -0.0799579918384552, + 0.010914979502558708, + 0.06217946112155914, + 0.009177275002002716, + -0.07105202972888947, + 0.016001801937818527, + -0.01115439087152481, + -0.005310261622071266, + -0.10693271458148956, + 0.047822482883930206, + 0.015527957119047642, + -0.018014488741755486, + 0.08667831122875214, + 0.029291581362485886, + 0.0021342034451663494, + -0.0023415519390255213, + -0.0867738425731659, + 0.1013704240322113, + 0.05490349233150482, + -0.02102711796760559, + -0.0681600347161293, + -0.05408202111721039, + 0.043294474482536316, + 0.01799607463181019, + -0.09437404572963715, + -0.021127671003341675, + 0.09878145158290863, + 0.11597470939159393, + 0.012194476090371609, + -0.03993900120258331, + 0.0261235274374485, + 0.0897771418094635, + 0.04261494427919388, + 0.08973386883735657, + 0.04110422730445862, + 0.11391530930995941, + -0.03944727033376694, + -0.02352098375558853, + 0.03497697040438652, + 0.0508694052696228, + 0.08620239794254303, + -0.032662659883499146, + -0.015647606924176216, + 0.00278669036924839, + -0.028113259002566338, + -0.012908965349197388, + -0.017692675814032555, + -0.018312573432922363, + -0.014719038270413876, + -0.021705131977796555, + -0.007278572767972946, + -0.0012894890969619155, + -0.0078122434206306934, + 0.018887579441070557, + 0.12920019030570984, + 0.009379029273986816, + 0.06988713145256042, + 0.03569526970386505, + -0.025971459224820137, + 0.07317141443490982, + -0.1158798336982727, + -0.003239100333303213, + 0.0035500172525644302, + -0.022510454058647156, + 0.02235689014196396, + 0.1020098477602005, + 0.04558086395263672, + 0.010756200179457664, + 0.12658396363258362, + 0.0006218478083610535, + 0.03367367386817932, + 0.03445741534233093, + -0.09070102870464325, + 0.11754370480775833, + 0.0624704584479332, + -0.042367011308670044, + 0.058698706328868866, + -0.043965213000774384, + 0.0372648686170578, + 0.06139852851629257, + -0.09974567592144012, + -0.01718933880329132, + 0.0024605211801826954, + 0.01508396491408348, + -0.04705511033535004, + 0.16210293769836426, + 0.026749365031719208, + 0.009849561378359795, + 0.11299304664134979, + -0.1387653350830078, + -0.09164271503686905, + -0.005564861930906773, + 0.028440717607736588, + -0.12368398904800415, + 0.07504577934741974, + 0.05022487789392471, + -0.006364494562149048, + 0.05789971351623535, + 0.07559937238693237, + -0.008155264891684055, + 0.06495187431573868, + -0.022819023579359055, + -0.022629395127296448, + -0.01611892506480217, + -0.03801148384809494, + 0.018936779350042343, + 0.036104340106248856, + -0.008834347128868103, + 0.09331975877285004, + -0.02421494573354721, + -0.00135873444378376, + -0.1277925968170166, + 0.0049688429571688175, + 0.08407506346702576, + 0.061537016183137894, + -0.030716441571712494, + -0.035312190651893616, + -0.04310460388660431, + -0.10013379901647568, + 0.03536054864525795, + -0.011094405315816402, + 0.038348257541656494, + -0.02725199982523918, + -0.011467266827821732, + 0.1260988712310791, + 0.05621485784649849, + -0.029998809099197388, + -0.07546477019786835, + -0.05859825015068054, + -0.04499642923474312, + 0.04695644602179527, + -0.1449158936738968, + -0.09980586171150208, + -0.055393971502780914, + 0.017905019223690033, + 0.0026516574434936047, + 0.06350744515657425, + 0.058349281549453735, + 0.038489554077386856, + -0.0006957833538763225, + -0.0564144067466259, + -0.004356719553470612, + -0.08724237978458405, + -0.11274762451648712, + -0.04256569966673851, + -0.018790483474731445, + 0.005788655020296574, + 0.07858725637197495, + -0.009145157411694527, + 0.03569881618022919, + -0.01142931543290615, + -0.02560727298259735, + -0.10053502768278122, + 0.04588941112160683, + 0.00034770439378917217, + -0.02873968705534935, + 0.047554414719343185, + 0.06538181006908417, + -0.1378755271434784, + 0.04275937378406525, + 0.06216815114021301, + 0.1073300838470459, + -0.04981303960084915, + 0.08144046366214752, + -0.05596820265054703, + 0.06934529542922974, + 0.12503361701965332, + -0.05679711326956749, + -0.09968920052051544, + -0.041347332298755646, + -0.06743539869785309, + 0.03525843098759651, + -0.06051412224769592, + -0.009532234631478786, + -0.004692481830716133, + -0.015292897820472717, + -0.06887029111385345, + -0.08320097625255585, + 0.057233698666095734, + -0.016128353774547577, + -0.0017727082595229149, + -0.09885057806968689, + 0.0449804849922657, + 0.015024697408080101, + 0.06777267158031464, + -0.039914682507514954, + -0.01014675758779049, + 0.0651957169175148, + -0.01678445190191269, + 0.023181021213531494, + 0.10439378023147583, + 0.05277450382709503, + -0.05962442234158516, + -0.05271410197019577, + -0.04789105802774429, + 0.05983292683959007, + -0.04893389344215393, + 0.10914941132068634, + 0.008151409216225147, + -0.07194779068231583, + -0.05372968316078186, + 0.026354417204856873, + 0.039717897772789, + 0.00383058562874794, + 0.010209467262029648, + 0.07519416511058807, + 0.03247915208339691, + -0.021991681307554245, + 0.12093430757522583, + 0.02438914030790329, + 0.013897374272346497, + -0.013209586963057518, + -0.07147912681102753, + -0.06426887214183807, + 0.01133603323251009, + 0.0048578823916614056, + -0.12598922848701477, + 0.004515137057751417, + 0.018026068806648254, + 0.030099008232355118, + 0.002299480140209198, + 0.13964521884918213, + 0.052897028625011444, + -0.12555529177188873 + ] + }, + "p244_418.wav": { + "name": "p244", + "embedding": [ + 0.03042732924222946, + 0.08651362359523773, + -0.013920066878199577, + 0.048780761659145355, + -0.052090711891651154, + 0.08329790085554123, + -0.11538572609424591, + 0.11805260181427002, + -0.05403435230255127, + 0.1214764341711998, + -0.06727450340986252, + 0.1027962788939476, + -0.03265245258808136, + -0.1598365306854248, + -0.04812697693705559, + 0.06039876490831375, + -0.060169413685798645, + -0.03810255974531174, + -0.027802687138319016, + 0.0004598855448421091, + 0.0426812581717968, + 0.03234236687421799, + 0.03217286616563797, + 0.005338083952665329, + 0.026176458224654198, + 0.05210056155920029, + 0.01715407334268093, + 0.0640350729227066, + 0.04269653186202049, + -0.043983157724142075, + -0.031350284814834595, + 0.11005459725856781, + -0.032013725489377975, + 0.01277065183967352, + 0.03910341486334801, + 0.017702404409646988, + 0.009509921073913574, + -0.07261432707309723, + -0.017713073641061783, + 0.0029306281358003616, + -0.056677162647247314, + 0.07570306211709976, + 0.03297759220004082, + 0.0011304605286568403, + 0.032163284718990326, + 0.0020733103156089783, + -0.033347513526678085, + -0.044419534504413605, + -0.11861996352672577, + 0.1733040064573288, + 0.07114322483539581, + 0.00046034157276153564, + -0.06837894022464752, + -0.08171238005161285, + 0.11344584077596664, + 0.008522684685885906, + -0.11059318482875824, + -0.040410589426755905, + 0.07804276794195175, + 0.16771946847438812, + -0.00998427253216505, + -0.012965536676347256, + 0.007841771468520164, + 0.13953067362308502, + 0.046284958720207214, + 0.08596092462539673, + 0.061943650245666504, + 0.1144830510020256, + 0.023485522717237473, + 0.02887917123734951, + 0.06789934635162354, + 0.06649571657180786, + 0.012322461232542992, + -0.008861749432981014, + 0.026057785376906395, + -0.0032019380014389753, + -0.022234968841075897, + 0.03055218979716301, + -0.016919052228331566, + -0.027719389647245407, + -0.006482791155576706, + 0.004953575320541859, + -0.00019641872495412827, + 0.02074054628610611, + -0.0189328882843256, + 0.061738744378089905, + -0.0003138644096907228, + -0.007053555455058813, + 0.06543485820293427, + 0.03294426202774048, + -0.007979125715792179, + 0.05275658890604973, + -0.047497041523456573, + -0.10310500860214233, + 0.008370448835194111, + 0.012577819637954235, + 0.032337382435798645, + 0.07281038165092468, + 0.025696445256471634, + -0.02632003091275692, + 0.11227305978536606, + 0.04462633281946182, + -0.0026685483753681183, + 0.029009569436311722, + -0.10383844375610352, + 0.11793702840805054, + 0.06773589551448822, + 0.0013511746656149626, + 0.04369799420237541, + -0.035197317600250244, + 0.0898575484752655, + 0.07476542890071869, + -0.14476880431175232, + -0.06473158299922943, + 0.04074136167764664, + 0.011845901608467102, + -0.010365951806306839, + 0.1114029511809349, + 0.0005197376012802124, + 0.01257854700088501, + 0.10317005217075348, + -0.09022516012191772, + -0.05977262184023857, + -0.027801748365163803, + 0.05695301294326782, + -0.06449718028306961, + 0.03565460443496704, + 0.03788425028324127, + -0.017154905945062637, + -0.019174739718437195, + 0.06904801726341248, + -0.007908841595053673, + 0.01101063471287489, + 0.034281887114048004, + -0.0528271421790123, + 0.047352395951747894, + -0.04941331595182419, + 0.008191721513867378, + 0.0674145519733429, + 0.04438894987106323, + 0.05146746337413788, + -0.006602135952562094, + -0.030637752264738083, + -0.1019003689289093, + -0.0015331199392676353, + 0.05343484878540039, + 0.06839784979820251, + -0.015266354195773602, + -0.03592716157436371, + -0.047860078513622284, + -0.07134748995304108, + 0.03448622301220894, + -0.006113764829933643, + 0.09391947835683823, + -0.010928637348115444, + -0.021680442616343498, + 0.09492798149585724, + -0.010043883696198463, + -0.004402143880724907, + -0.03908437117934227, + -0.03171183168888092, + 0.029661845415830612, + 0.034044280648231506, + -0.07901380956172943, + -0.06244722008705139, + 0.018996838480234146, + 0.015304110944271088, + -0.029031287878751755, + 0.007591585628688335, + 0.022095542401075363, + 0.01805446296930313, + 0.028784144669771194, + -0.059311896562576294, + 0.013762134127318859, + -0.10258348286151886, + -0.04074089229106903, + -0.0035348222590982914, + -0.018314126878976822, + -0.02378804050385952, + 0.08394932746887207, + 0.01932479813694954, + 0.02460772916674614, + 0.015703296288847923, + -0.08019258081912994, + -0.05558403581380844, + 0.0718565583229065, + 0.07005901634693146, + 0.022349661216139793, + 0.06703704595565796, + 0.06528645753860474, + -0.021125029772520065, + 0.03852381184697151, + 0.05289817973971367, + 0.10172756761312485, + -0.022602692246437073, + -0.011527790687978268, + -0.07194548845291138, + 0.08536722511053085, + 0.06805568933486938, + -0.10020886361598969, + -0.07833231985569, + -0.026089251041412354, + -0.06174907088279724, + 0.044399045407772064, + -0.04184674471616745, + 0.0021067787893116474, + 0.026352612301707268, + -0.026897024363279343, + -0.11908938735723495, + -0.0906689390540123, + 0.08755158632993698, + -0.08036810159683228, + -0.031581226736307144, + -0.06086207926273346, + 0.04355759546160698, + 0.09889324009418488, + 0.03754740208387375, + -0.02637976035475731, + 0.005788288079202175, + 0.05877317488193512, + -0.07560603320598602, + -0.024257352575659752, + 0.042853742837905884, + 0.0026402100920677185, + -0.10282234847545624, + 0.00972248986363411, + -0.07420995086431503, + 0.06533047556877136, + -0.06502285599708557, + 0.15314491093158722, + -0.012376468628644943, + -0.05757790058851242, + -0.07536821812391281, + 0.04355122894048691, + -0.024933792650699615, + 0.03695180267095566, + 0.042136382311582565, + 0.05257222056388855, + 0.029036542400717735, + -0.06018456071615219, + 0.13721179962158203, + 0.030541544780135155, + -0.031840644776821136, + -0.06002620980143547, + -0.02252354845404625, + -0.032839205116033554, + 0.03107338957488537, + 0.007079975213855505, + -0.0801437497138977, + -0.01041292492300272, + 0.024479543790221214, + -0.02416488528251648, + 0.061183638870716095, + 0.13520441949367523, + 0.06480760872364044, + -0.09626524150371552 + ] + }, + "p244_035.wav": { + "name": "p244", + "embedding": [ + 0.047512274235486984, + 0.08609914034605026, + -0.046957552433013916, + 0.027574673295021057, + -0.03924497961997986, + 0.03821911662817001, + -0.13186554610729218, + 0.10746931284666061, + -0.027431121096014977, + 0.12437397241592407, + -0.04287900775671005, + 0.11486640572547913, + -0.015343727543950081, + -0.1584114283323288, + -0.025371000170707703, + 0.04812903702259064, + -0.021808108314871788, + -0.027373217046260834, + -0.007206720300018787, + -0.021419469267129898, + 0.06363151967525482, + 0.04318461939692497, + 0.036855049431324005, + -0.022972911596298218, + -0.002549968659877777, + 0.06865663826465607, + 0.00332033634185791, + 0.019372913986444473, + 0.004853181075304747, + -0.03148690611124039, + -0.018673807382583618, + 0.08538803458213806, + -0.02187051624059677, + 0.007954302243888378, + 0.0301038920879364, + 0.008952243253588676, + -0.02129673957824707, + -0.05781055614352226, + -0.007296671159565449, + 0.015679871663451195, + -0.03887028619647026, + 0.06691883504390717, + 0.01664990559220314, + -0.03335646912455559, + 0.05290444940328598, + -0.053276486694812775, + -0.037761978805065155, + -0.019499806687235832, + -0.0798143744468689, + 0.14589202404022217, + 0.09664269536733627, + 0.027677249163389206, + -0.06830545514822006, + -0.03380965813994408, + 0.09383022040128708, + 0.018186433240771294, + -0.0948326587677002, + -0.0416414812207222, + 0.04243795573711395, + 0.14704479277133942, + 0.005419223569333553, + -0.02080828696489334, + 0.041589777916669846, + 0.10111330449581146, + 0.021087510511279106, + 0.06361795216798782, + 0.10026641935110092, + 0.07566763460636139, + -0.00036413720226846635, + 0.013197584077715874, + 0.02729940041899681, + 0.09100913256406784, + 0.014969943091273308, + -0.031735554337501526, + 0.017868466675281525, + -0.025481805205345154, + -0.03786304593086243, + -0.011180998757481575, + -0.008563697338104248, + -0.045560143887996674, + -0.030515586957335472, + -0.009088415652513504, + -0.0014375986065715551, + 0.02741953730583191, + -0.033017996698617935, + 0.017747124657034874, + 0.03437551483511925, + -0.040561579167842865, + 0.04603039473295212, + 0.045318882912397385, + 0.015366427600383759, + 0.022925768047571182, + -0.05694061145186424, + -0.08957916498184204, + 0.02947296015918255, + 0.02426670305430889, + 0.01292937807738781, + 0.08937977254390717, + 0.031166646629571915, + 0.00403913389891386, + 0.09304189682006836, + 0.038550134748220444, + -0.01802215538918972, + -0.009072205051779747, + -0.07091206312179565, + 0.1043706089258194, + 0.09936642646789551, + -0.0253828726708889, + 0.053714536130428314, + -0.05511198565363884, + 0.03667735308408737, + 0.04630982503294945, + -0.1055835410952568, + -0.05516941472887993, + 0.034832291305065155, + 0.03261159360408783, + 0.025443535298109055, + 0.11465909332036972, + 0.03726130723953247, + 0.030363252386450768, + 0.09185874462127686, + -0.08185656368732452, + -0.09117460250854492, + -0.06671448051929474, + 0.0653037577867508, + -0.07601243257522583, + 0.08106499910354614, + 0.05676394701004028, + -0.0019281134009361267, + -0.0022406044881790876, + 0.047236502170562744, + -0.0026236686389893293, + 0.02866353653371334, + -0.005930222570896149, + -0.03171057999134064, + 0.02295582741498947, + -0.059072356671094894, + 0.010003656148910522, + 0.03996270149946213, + 0.0051517183892428875, + 0.05573644861578941, + 0.0027772970497608185, + -0.0032236739061772823, + -0.10150401294231415, + 0.008834552951157093, + 0.05883560702204704, + 0.045625656843185425, + -0.027181189507246017, + -0.054899148643016815, + -0.01451468002051115, + -0.06837444007396698, + 0.002241502283141017, + -0.045617520809173584, + 0.07822269201278687, + -0.0005640421877615154, + 0.02417202852666378, + 0.07696916162967682, + 0.000522322952747345, + -0.005944509990513325, + -0.03242078423500061, + -0.013525960966944695, + 0.013982011005282402, + 0.03526326268911362, + -0.09811844676733017, + -0.07592052221298218, + -0.033725377172231674, + 0.014820109121501446, + -0.015350266359746456, + 0.02785833738744259, + 0.05280764028429985, + 0.004163810517638922, + 0.02141760103404522, + -0.07109146565198898, + 0.02428961917757988, + -0.09811060130596161, + -0.05941072106361389, + -0.027518145740032196, + -0.02331431210041046, + -0.0032530315220355988, + 0.08884786814451218, + 0.02086341381072998, + 0.028346367180347443, + -0.027570350095629692, + -0.057705070823431015, + -0.07781679183244705, + 0.05320239067077637, + 0.06403405964374542, + -0.0035114018246531487, + 0.03885791823267937, + 0.04390726983547211, + -0.02458917163312435, + 0.022658567875623703, + 0.036476388573646545, + 0.08441587537527084, + -0.046668022871017456, + -0.006689698901027441, + -0.07432778179645538, + 0.05822507664561272, + 0.11375582218170166, + -0.08773978054523468, + -0.07553941011428833, + -0.0564013347029686, + -0.07821381092071533, + 0.020092494785785675, + -0.04410077631473541, + 0.000687162100803107, + 0.027942299842834473, + -0.03650069236755371, + -0.12579014897346497, + -0.10675406455993652, + 0.0777093842625618, + -0.03278997540473938, + -0.006179330870509148, + -0.06986880302429199, + 0.0446537584066391, + 0.07444396615028381, + 0.02134857140481472, + -0.05210947245359421, + -0.0038992948830127716, + 0.020999623462557793, + -0.03290301188826561, + 0.004802831914275885, + 0.03310735523700714, + 0.052572257816791534, + -0.10819780826568604, + -0.0009580999612808228, + -0.06278321146965027, + 0.06290467083454132, + -0.07500292360782623, + 0.11263549327850342, + 0.007468120660632849, + -0.056552112102508545, + -0.0906960591673851, + 0.04758359119296074, + 0.021654268726706505, + 0.03939587622880936, + 0.01717129349708557, + 0.050779130309820175, + 0.00842757523059845, + -0.09632016718387604, + 0.08334605395793915, + 0.051021527498960495, + 0.0013994028558954597, + -0.08277277648448944, + -0.005998106673359871, + -0.020790688693523407, + 0.0514594130218029, + -0.0009228637209162116, + -0.06089923903346062, + -0.006041245069354773, + 0.005709233693778515, + 0.013314230367541313, + 0.06248827278614044, + 0.11817269772291183, + 0.03676634654402733, + -0.10958908498287201 + ] + }, + "p244_226.wav": { + "name": "p244", + "embedding": [ + 0.017812533304095268, + 0.09059041738510132, + -0.03313907980918884, + 0.04103659838438034, + -0.07077332586050034, + 0.0858350545167923, + -0.09737630188465118, + 0.08155152946710587, + -0.08273117989301682, + 0.12696227431297302, + -0.06535467505455017, + 0.07652875781059265, + -0.054977089166641235, + -0.1634788066148758, + -0.019013606011867523, + 0.06683763116598129, + -0.05668655410408974, + -0.02705809473991394, + -0.08173489570617676, + -0.014207035303115845, + 0.021991947665810585, + -0.0008913557976484299, + 0.0338105782866478, + -0.043577641248703, + 0.01690848171710968, + 0.061247799545526505, + -0.007964516058564186, + 0.014899916015565395, + -0.0015098992735147476, + -0.030810566619038582, + -0.041758790612220764, + 0.11071734130382538, + -0.048800788819789886, + -0.02021772228181362, + 0.03633880615234375, + 0.007430911995470524, + -0.021571576595306396, + -0.06781338155269623, + 0.023993993178009987, + -0.013845808804035187, + -0.04508243501186371, + 0.06458313018083572, + 0.01562678813934326, + -0.007549887988716364, + 0.03832894191145897, + -0.032098378986120224, + -0.04359281063079834, + -0.021026315167546272, + -0.09502652287483215, + 0.14071117341518402, + 0.0716174989938736, + -0.014656499028205872, + -0.07088983803987503, + -0.06469035148620605, + 0.1039232462644577, + 0.021482126787304878, + -0.12525664269924164, + -0.08519650995731354, + 0.07195033133029938, + 0.14371412992477417, + -0.0143812270835042, + 0.0027439752593636513, + -0.0018545370548963547, + 0.08409930765628815, + 0.032359957695007324, + 0.12321692705154419, + 0.050845690071582794, + 0.08650851249694824, + 0.01957816071808338, + 0.042425885796546936, + 0.07798807322978973, + 0.025242211297154427, + 0.017986726015806198, + -0.027062153443694115, + 0.05001316964626312, + -0.041238922625780106, + -0.021431762725114822, + 0.02151731587946415, + -0.011262292042374611, + -0.05123452469706535, + -0.007807143963873386, + -0.02646128460764885, + 0.015259671956300735, + -0.0050367871299386024, + -0.018694862723350525, + 0.03231633082032204, + 0.049393001943826675, + -0.009402278810739517, + 0.08503606170415878, + 0.05327557027339935, + -0.020933054387569427, + 0.0507267564535141, + -0.05928286910057068, + -0.07814568281173706, + 0.0231265090405941, + 0.010647416114807129, + -0.006972522474825382, + 0.054435472935438156, + 0.020305711776018143, + -0.020595472306013107, + 0.07533472031354904, + 0.062298484146595, + 0.0049236612394452095, + 0.038266535848379135, + -0.09032192826271057, + 0.13072529435157776, + 0.08264055848121643, + -0.0016047056997194886, + 0.01971760205924511, + -0.002422597259283066, + 0.06372210383415222, + 0.08181428164243698, + -0.11387448012828827, + -0.06097695976495743, + 0.0058185202069580555, + -0.03437022492289543, + -0.026582656428217888, + 0.10046318173408508, + 0.010077845305204391, + -0.01973363757133484, + 0.12020901590585709, + -0.09582118690013885, + -0.07433643937110901, + -0.017314458265900612, + 0.02952229604125023, + -0.06504113972187042, + 0.019193297252058983, + 0.07229027152061462, + -0.014313793741166592, + 0.006998042576014996, + 0.07392776757478714, + -0.00953326653689146, + 0.013012412935495377, + 0.05263940244913101, + -0.0539824441075325, + 0.05201076343655586, + -0.029374677687883377, + -0.008439918048679829, + 0.07707489281892776, + 0.03963133692741394, + 0.06181463971734047, + -0.03984887897968292, + 0.023428667336702347, + -0.07353004068136215, + 0.007975846529006958, + 0.06959986686706543, + 0.034159399569034576, + -0.020396485924720764, + 0.02756473794579506, + -0.03465186804533005, + -0.09888540208339691, + 0.03113856539130211, + -0.03112836368381977, + 0.10586914420127869, + -0.016313310712575912, + -0.010148300789296627, + 0.10745478421449661, + 0.02456034906208515, + 0.0011929835891351104, + -0.08267434686422348, + -0.036593787372112274, + 0.06966713070869446, + 0.05008133500814438, + -0.09171774238348007, + -0.046621330082416534, + -0.003816711250692606, + 0.03263888135552406, + -0.019197531044483185, + 0.024892134591937065, + 0.07395240664482117, + 0.01321241445839405, + 0.022703152149915695, + -0.06322157382965088, + 0.06555382907390594, + -0.06085039675235748, + -0.014930887147784233, + -0.01683466136455536, + -0.07916229963302612, + -0.021217316389083862, + 0.08617821335792542, + 0.009829986840486526, + -0.009620287455618382, + -0.014620725065469742, + -0.08855455368757248, + -0.05156542360782623, + 0.06566715985536575, + 0.06902584433555603, + -0.0161186084151268, + 0.05520292744040489, + 0.051071230322122574, + -0.02909225970506668, + 0.007875243201851845, + 0.06917604058980942, + 0.10452248156070709, + -0.03878478333353996, + -0.0131932832300663, + -0.09000295400619507, + 0.06527124345302582, + 0.08763380348682404, + -0.10467067360877991, + -0.0676594004034996, + -0.04176659137010574, + -0.031584903597831726, + 0.05053078010678291, + -0.06521078944206238, + -0.02410782314836979, + 0.05019301921129227, + -0.03197476267814636, + -0.09199391305446625, + -0.11977519094944, + 0.12044841796159744, + -0.052169881761074066, + -0.01880607008934021, + -0.07795597612857819, + 0.02965570241212845, + 0.02910565584897995, + 0.028086815029382706, + -0.06644060462713242, + 0.03515669330954552, + 0.046732522547245026, + -0.05202682316303253, + 0.02212521620094776, + 0.04053444415330887, + 0.0047126454301178455, + -0.08312739431858063, + 0.0004059639759361744, + -0.09185010194778442, + 0.0974762812256813, + -0.04912235960364342, + 0.16276174783706665, + -0.021926935762166977, + -0.015017393045127392, + -0.08026532828807831, + 0.0661572590470314, + -0.016571369022130966, + 0.043669480830430984, + 0.0596039779484272, + 0.0794236809015274, + 0.02443462237715721, + -0.04566018655896187, + 0.11101384460926056, + -0.003603626973927021, + -0.005719837266951799, + -0.0508153960108757, + 0.014219369739294052, + -0.07715022563934326, + 0.02015441283583641, + -0.016168801113963127, + -0.102598175406456, + 0.022079816088080406, + 0.03219984471797943, + -0.011841347441077232, + 0.07455947995185852, + 0.11495341360569, + 0.08404475450515747, + -0.0624585822224617 + ] + }, + "p244_299.wav": { + "name": "p244", + "embedding": [ + 0.06525465846061707, + 0.10495209693908691, + 0.03223846107721329, + 0.016825005412101746, + -0.022490717470645905, + 0.0565137080848217, + -0.09467238932847977, + 0.09756150096654892, + -0.04944169148802757, + 0.1523725688457489, + -0.11396205425262451, + 0.10953082144260406, + -0.03651455044746399, + -0.1839219629764557, + -0.08920477330684662, + 0.04318549856543541, + -0.1008606106042862, + 0.0006701675010845065, + -0.06478724628686905, + -0.025530997663736343, + 0.0459497906267643, + 0.054662637412548065, + 0.07263357192277908, + -0.0009710810845717788, + 0.04059436917304993, + 0.07352381944656372, + 0.019158611074090004, + 0.07684890180826187, + 0.04121684283018112, + -0.10462955385446548, + -0.028435807675123215, + 0.12060249596834183, + -0.021402571350336075, + 0.029443880543112755, + 0.02644909732043743, + 0.012790137901902199, + 0.03859560564160347, + -0.03909823298454285, + -0.02449653670191765, + 0.023418409749865532, + -0.022774219512939453, + 0.06648801267147064, + -0.0018441944848746061, + -0.003679991699755192, + 0.03021998703479767, + 0.0245768204331398, + -0.03373754769563675, + -0.04800606891512871, + -0.10045932978391647, + 0.17561951279640198, + 0.06669551879167557, + 0.022984713315963745, + -0.07473025470972061, + -0.0914839655160904, + 0.1033722385764122, + -0.04138606786727905, + -0.1324692666530609, + -0.015400592237710953, + 0.07188437879085541, + 0.1745031625032425, + -0.02837865985929966, + -0.04367165267467499, + 0.029865633696317673, + 0.1106882244348526, + 0.022444233298301697, + 0.085270456969738, + 0.0994037613272667, + 0.05433196946978569, + 0.009999201633036137, + 0.046106431633234024, + 0.0537010096013546, + 0.07132069766521454, + 0.07379911839962006, + -0.026058921590447426, + 0.024111108854413033, + -0.011033689603209496, + -0.020490849390625954, + 0.007766140624880791, + -0.014132874086499214, + 0.0008325775270350277, + -0.012159896083176136, + -0.004228881560266018, + -0.007673243060708046, + -0.030775906518101692, + -0.03162151202559471, + 0.050704240798950195, + -0.02407735399901867, + -0.01223254669457674, + 0.07154654711484909, + 0.057108353823423386, + 0.02514728531241417, + 0.03744937852025032, + -0.03559383004903793, + -0.10221049189567566, + 0.004771812818944454, + 0.006398889701813459, + 0.021163037046790123, + 0.05676198750734329, + 0.05728333070874214, + -0.03295552730560303, + 0.1011909544467926, + 0.057710736989974976, + 0.003964595962315798, + 0.0016684905858710408, + -0.12661729753017426, + 0.09040845185518265, + 0.12222171574831009, + -0.017466116696596146, + 0.03753943368792534, + 0.010324040427803993, + 0.09317605942487717, + 0.10224784910678864, + -0.14613954722881317, + -0.07852289080619812, + -0.01632460206747055, + -0.021364035084843636, + 0.024501658976078033, + 0.046979501843452454, + -0.04010120779275894, + 0.010432679206132889, + 0.09373456984758377, + -0.06838951259851456, + -0.03329191729426384, + -0.04200923815369606, + 0.03089362382888794, + -0.10082848370075226, + 0.04401632770895958, + 0.03614797443151474, + -0.0037154927849769592, + -0.025383666157722473, + 0.08150732517242432, + -0.024260053411126137, + -0.009058866649866104, + -0.0022542846854776144, + -0.06266731023788452, + 0.00518936850130558, + -0.06299592554569244, + 0.00224533979780972, + 0.07850766181945801, + 0.047631315886974335, + 0.030845433473587036, + 0.019286898896098137, + -0.057110559195280075, + -0.08896134048700333, + 0.018198121339082718, + 0.04260723292827606, + 0.008305331692099571, + -0.007923095487058163, + -0.01071025338023901, + -0.03632080554962158, + -0.04154243320226669, + 0.08141613006591797, + -0.0034014841075986624, + 0.07047772407531738, + 0.0032769411336630583, + -0.013654384762048721, + 0.12524522840976715, + -0.009069817140698433, + -0.012858973816037178, + -0.050339873880147934, + -0.012125964276492596, + 0.031177598983049393, + 0.028574947267770767, + -0.0954546183347702, + -0.06267496198415756, + 0.020996076986193657, + 0.009550933726131916, + -0.004062483552843332, + 0.04714687168598175, + 0.06491273641586304, + -0.01572195254266262, + 0.02811150625348091, + -0.040634118020534515, + 0.016217274591326714, + -0.10074228048324585, + -0.07388980686664581, + -0.005860468838363886, + -0.0651792660355568, + -0.002756331115961075, + 0.07921024411916733, + 0.012623680755496025, + -0.006509409751743078, + -0.01404818519949913, + -0.11291965842247009, + -0.06609392911195755, + 0.0731973797082901, + 0.09069140255451202, + 0.043645575642585754, + 0.05095747858285904, + 0.053662076592445374, + -0.026429863646626472, + 0.11103732138872147, + 0.05484195426106453, + 0.13079118728637695, + -0.032712168991565704, + 0.02296675741672516, + -0.06567157804965973, + 0.04224824532866478, + 0.05530143901705742, + -0.08168598264455795, + -0.10931160300970078, + -0.044377122074365616, + -0.0723477303981781, + 0.08402661234140396, + 0.014698334969580173, + 0.009212006814777851, + 0.05181252956390381, + -0.015379744581878185, + -0.07406057417392731, + -0.0743553563952446, + 0.11936365813016891, + -0.026120983064174652, + -0.050299275666475296, + -0.06002526730298996, + 0.049183186143636703, + 0.05959730222821236, + 0.026089487597346306, + -0.0026231701485812664, + 0.04825114831328392, + 0.030927781015634537, + -0.08415275067090988, + -0.05903004854917526, + 0.02372831664979458, + -0.024885375052690506, + -0.0731138363480568, + 0.00032999555696733296, + -0.11139626055955887, + 0.07734385877847672, + -0.06374754756689072, + 0.13184620440006256, + -0.04206470027565956, + -0.06348712742328644, + -0.07138999551534653, + 0.06452766060829163, + -0.05767722800374031, + 0.06281332671642303, + 0.08663783222436905, + 0.05028331279754639, + 0.023744475096464157, + -0.09078331291675568, + 0.09316637367010117, + 0.021749479696154594, + -0.042131755501031876, + -0.07219576835632324, + -0.03430481627583504, + -0.0368807390332222, + -0.003160016844049096, + -0.015943780541419983, + -0.06629819422960281, + 0.01755841262638569, + 0.0013367170467972755, + -0.025492778047919273, + 0.05650454759597778, + 0.10607189685106277, + 0.03448333963751793, + -0.08789954334497452 + ] + }, + "p244_344.wav": { + "name": "p244", + "embedding": [ + 0.05785099416971207, + 0.1109224408864975, + -0.007159736007452011, + 0.008349551819264889, + -0.0435284748673439, + 0.08217641711235046, + -0.13609643280506134, + 0.1284220814704895, + -0.05251353979110718, + 0.14806871116161346, + -0.08109495043754578, + 0.09958012402057648, + -0.014049846678972244, + -0.1978411078453064, + -0.035785600543022156, + 0.051955997943878174, + -0.04597517102956772, + -0.0016738830599933863, + -0.04772093892097473, + -0.010143155232071877, + 0.028294147923588753, + 0.02395155280828476, + 0.00914748478680849, + -0.02986595779657364, + 0.04369159787893295, + 0.05366864055395126, + -0.005277041345834732, + 0.030500197783112526, + -0.005059400107711554, + -0.04588552936911583, + -0.0467258058488369, + 0.13302773237228394, + -0.047579213976860046, + 0.026921693235635757, + 0.08929920196533203, + 0.0012285778066143394, + -0.017531603574752808, + -0.06672068685293198, + -0.010465852916240692, + 0.006913275923579931, + -0.03499038890004158, + 0.07198087126016617, + 0.04544607177376747, + 0.007247472647577524, + 0.04198122397065163, + 0.04771246761083603, + 0.010499674826860428, + -0.06133449077606201, + -0.06975804269313812, + 0.16359329223632812, + 0.04251303896307945, + -0.010465221479535103, + -0.07099996507167816, + -0.07582181692123413, + 0.09738533198833466, + -0.00836309976875782, + -0.11989572644233704, + -0.03652895241975784, + 0.09124121814966202, + 0.1507948487997055, + -0.03502993285655975, + -0.04249962419271469, + -0.0014890988823026419, + 0.11999700963497162, + 0.010711725801229477, + 0.11983908712863922, + 0.05363166332244873, + 0.10856938362121582, + 0.006699001416563988, + 0.04155507683753967, + 0.06656653434038162, + 0.047099314630031586, + 0.052688296884298325, + -0.047392070293426514, + 0.036343201994895935, + -0.005509236361831427, + -0.037099990993738174, + 0.015293164178729057, + -0.03229137510061264, + -0.002235549734905362, + -0.011757569387555122, + 0.0027793976478278637, + 0.019965749233961105, + 0.00708624254912138, + -0.017573408782482147, + 0.032505013048648834, + 0.040242984890937805, + -0.007144433446228504, + 0.07299722731113434, + 0.06345395743846893, + 0.007595045492053032, + 0.05285285413265228, + -0.08416520059108734, + -0.11388155817985535, + 0.04209868982434273, + -0.0005669667152687907, + 0.0016788875218480825, + 0.07130926847457886, + 0.04701681062579155, + -0.017556920647621155, + 0.09558342397212982, + 0.050410110503435135, + -0.0016123120440170169, + 0.03228164091706276, + -0.1072370707988739, + 0.1308879256248474, + 0.08197914063930511, + -0.013330936431884766, + 0.0350673533976078, + -0.06423955410718918, + 0.09303425252437592, + 0.09237924218177795, + -0.16140779852867126, + -0.07283392548561096, + 0.03918175399303436, + -0.008261866867542267, + -0.013359136879444122, + 0.11424532532691956, + -0.02375209704041481, + -0.005212510470300913, + 0.09676734358072281, + -0.09837020933628082, + -0.060571637004613876, + -0.03379792720079422, + 0.025965919718146324, + -0.09258256107568741, + 0.04301176220178604, + 0.044763460755348206, + -0.014842348173260689, + -0.002080074045807123, + 0.08291754871606827, + -0.0008366527035832405, + -0.002387942746281624, + 0.004649616777896881, + -0.019002005457878113, + 0.04031208157539368, + -0.023888621479272842, + 0.022209666669368744, + 0.0252758227288723, + 0.046621281653642654, + 0.03824624419212341, + 0.00593279954046011, + -0.028868485242128372, + -0.08815938234329224, + 0.003064821008592844, + 0.04442959278821945, + 0.06529945135116577, + -0.02092544361948967, + -0.002192132640630007, + -0.028183037415146828, + -0.08209900557994843, + 0.03580604866147041, + -0.026423681527376175, + 0.0711858868598938, + 0.02154758758842945, + -0.004989531822502613, + 0.12286464124917984, + 0.03290189057588577, + -0.005588519386947155, + -0.07340742647647858, + -0.026646949350833893, + 0.029122980311512947, + 0.05568907409906387, + -0.11040371656417847, + -0.06192261725664139, + 0.0011645122431218624, + -0.016356736421585083, + -0.025905780494213104, + 0.02242409810423851, + 0.04045805335044861, + 0.02268514223396778, + 0.05503729358315468, + -0.07334285229444504, + 0.0019255736842751503, + -0.13436110317707062, + -0.05416038632392883, + -0.025928620249032974, + -0.039887990802526474, + -0.010550256818532944, + 0.09001092612743378, + -0.0047018942423164845, + 0.01399797573685646, + -0.02610042691230774, + -0.05919145047664642, + -0.046540625393390656, + 0.08017183840274811, + 0.08122405409812927, + 0.0015265726251527667, + 0.03560664504766464, + 0.026534922420978546, + -0.023910829797387123, + 0.040683895349502563, + 0.07533729076385498, + 0.11010071635246277, + -0.022893184795975685, + 0.03910081833600998, + -0.07094786316156387, + 0.11056504398584366, + 0.07315543293952942, + -0.09186962246894836, + -0.11349812895059586, + -0.015909504145383835, + -0.037440814077854156, + 0.027942873537540436, + -0.0347382128238678, + -0.009762267582118511, + 0.004904330708086491, + -0.018296372145414352, + -0.0684630423784256, + -0.08263783156871796, + 0.0775475949048996, + -0.05198180675506592, + -0.013393385335803032, + -0.08564633131027222, + 0.061585888266563416, + 0.08239369839429855, + 0.040338799357414246, + -0.05126342922449112, + 0.005704818293452263, + 0.06052856519818306, + -0.060382381081581116, + -0.01515639666467905, + 0.016332531347870827, + 0.01277819462120533, + -0.08798089623451233, + 0.018368098884820938, + -0.04996307194232941, + 0.08702942728996277, + -0.0796576589345932, + 0.16390392184257507, + -0.014727666042745113, + -0.07781647145748138, + -0.05855898559093475, + 0.03564026579260826, + -0.015868691727519035, + 0.01871754601597786, + 0.04221160337328911, + 0.06321880221366882, + 0.021970443427562714, + -0.05272405967116356, + 0.1074758768081665, + 0.005036352202296257, + -0.0061488039791584015, + -0.04770372807979584, + -0.04779090732336044, + -0.04319775104522705, + 0.02141861990094185, + -0.0026098531670868397, + -0.1130748987197876, + 0.007606293074786663, + 0.03627312183380127, + -0.013938918709754944, + 0.052663687616586685, + 0.13975360989570618, + 0.06305785477161407, + -0.12126585841178894 + ] + }, + "p244_360.wav": { + "name": "p244", + "embedding": [ + 0.04818341135978699, + 0.0892372876405716, + -0.023963045328855515, + 0.03353828936815262, + -0.0587724894285202, + 0.04637666046619415, + -0.1390831172466278, + 0.13001206517219543, + -0.028515413403511047, + 0.13336704671382904, + -0.06780992448329926, + 0.12324316054582596, + -0.00434302631765604, + -0.20527401566505432, + -0.03509523347020149, + 0.052356064319610596, + -0.05108198896050453, + -0.04220440983772278, + -0.02751733362674713, + -0.024607710540294647, + 0.05460461974143982, + 0.0598616898059845, + 0.024827798828482628, + -0.0009294659830629826, + 0.0215434767305851, + 0.06283250451087952, + 0.007106424774974585, + 0.04856424406170845, + 0.019958490505814552, + -0.05086905509233475, + -0.04544483870267868, + 0.11000079661607742, + -0.04285122826695442, + 0.010822150856256485, + 0.04023807495832443, + -0.0172361321747303, + 0.004100871738046408, + -0.05445122346282005, + -0.03459722921252251, + 0.019841361790895462, + -0.04251132905483246, + 0.07924088835716248, + 0.049969062209129333, + -0.007279278244823217, + 0.049436770379543304, + 0.02144922874867916, + -0.02620839700102806, + -0.05495361238718033, + -0.10778412222862244, + 0.17434734106063843, + 0.07190129160881042, + 0.004165538586676121, + -0.05924128741025925, + -0.06530208140611649, + 0.1076882928609848, + -0.005999373272061348, + -0.11085349321365356, + -0.033510591834783554, + 0.07840707898139954, + 0.15708011388778687, + -0.020719420164823532, + -0.04222678393125534, + 0.035200491547584534, + 0.12964297831058502, + 0.0483706071972847, + 0.08025745302438736, + 0.07878462970256805, + 0.10153041779994965, + -0.007564951665699482, + 0.014279303140938282, + 0.062808096408844, + 0.08337651193141937, + 0.03345275670289993, + -0.027589987963438034, + 0.032149627804756165, + 0.010095231235027313, + -0.02473561465740204, + -0.0009514203993603587, + -0.01662163808941841, + -0.0019060338381677866, + -0.0013230836484581232, + 0.011667110957205296, + 0.008785568177700043, + 0.02372272126376629, + -0.03692757338285446, + 0.05743300914764404, + 0.034976400434970856, + -0.001934751751832664, + 0.06716115772724152, + 0.034734297543764114, + 0.01959652453660965, + 0.06311195343732834, + -0.07915162295103073, + -0.09368149936199188, + 0.033322520554065704, + 0.011361178010702133, + 0.02762276493012905, + 0.07484801113605499, + 0.04263082146644592, + -0.02613668702542782, + 0.12353827804327011, + 0.04825718328356743, + -0.017903637140989304, + 0.029046356678009033, + -0.09762896597385406, + 0.11958770453929901, + 0.09574230760335922, + -0.016620857641100883, + 0.05462227016687393, + -0.05322267860174179, + 0.08577287197113037, + 0.06266245990991592, + -0.1443309336900711, + -0.07345615327358246, + 0.043604299426078796, + 0.026158498600125313, + -0.012653142213821411, + 0.13935181498527527, + -0.006468495354056358, + 0.03820013999938965, + 0.10803616046905518, + -0.08957557380199432, + -0.059089384973049164, + -0.03278517723083496, + 0.05207153409719467, + -0.09878183901309967, + 0.06484998762607574, + 0.05092233419418335, + -0.021630026400089264, + 0.005786439403891563, + 0.07191776484251022, + -0.019467100501060486, + 0.009732222184538841, + 0.0004570989403873682, + -0.03916069120168686, + 0.034367792308330536, + -0.03271656483411789, + 0.0025011892430484295, + 0.042799726128578186, + 0.02957453764975071, + 0.047085750848054886, + -0.0011959981638938189, + -0.03680147975683212, + -0.13563141226768494, + 0.020480960607528687, + 0.026251450181007385, + 0.07421793043613434, + -0.007241176441311836, + -0.0312972366809845, + -0.04691696912050247, + -0.07139088213443756, + 0.019030258059501648, + -0.01212640292942524, + 0.07105046510696411, + -0.00853114016354084, + -0.0007098466157913208, + 0.0941433310508728, + 0.023770665749907494, + -0.0034995628520846367, + -0.03423214703798294, + -0.043204404413700104, + 0.013585953041911125, + 0.046025656163692474, + -0.08780065178871155, + -0.0678306445479393, + -0.0053627812303602695, + 0.026609428226947784, + -0.019446764141321182, + 0.03454305976629257, + 0.04616714268922806, + 0.023568496108055115, + 0.036026448011398315, + -0.08049984276294708, + 0.02272200398147106, + -0.1157190352678299, + -0.073982372879982, + -0.016189996153116226, + -0.0065652416087687016, + -0.02246159315109253, + 0.08463318645954132, + 0.009956256486475468, + 0.043271202594041824, + -0.019988102838397026, + -0.061487823724746704, + -0.07361534237861633, + 0.06201750785112381, + 0.07731617242097855, + 0.009294477291405201, + 0.05246388912200928, + 0.04720202833414078, + -0.028537709265947342, + 0.05688081309199333, + 0.04749014228582382, + 0.10813334584236145, + -0.01687084697186947, + 0.014279123395681381, + -0.06130410358309746, + 0.09323512017726898, + 0.07583028823137283, + -0.09023593366146088, + -0.08087369054555893, + -0.022342924028635025, + -0.06757941842079163, + 0.04381515085697174, + -0.016919147223234177, + 0.00869122613221407, + 0.02092628926038742, + 0.005649100057780743, + -0.10753688216209412, + -0.08004668354988098, + 0.06542098522186279, + -0.06795226037502289, + -0.015878837555646896, + -0.08632469177246094, + 0.048127323389053345, + 0.1169637143611908, + 0.03337424620985985, + -0.03121248260140419, + -0.026110628619790077, + 0.04236619919538498, + -0.044278666377067566, + 0.004427822306752205, + 0.04517524689435959, + 0.04218100756406784, + -0.10436249524354935, + 0.0029109488241374493, + -0.07495289295911789, + 0.05299672856926918, + -0.059955574572086334, + 0.14652499556541443, + 0.014607176184654236, + -0.0617627277970314, + -0.08570197224617004, + 0.05610182136297226, + -0.011980456300079823, + 0.04974393546581268, + 0.036598946899175644, + 0.053706955164670944, + 0.044027894735336304, + -0.07756789028644562, + 0.10961734503507614, + 0.03991749882698059, + -0.03993002325296402, + -0.06623899191617966, + -0.02951471321284771, + -0.03404852747917175, + 0.038766007870435715, + 0.026224222034215927, + -0.08289890736341476, + -0.029031813144683838, + 0.029849905520677567, + -0.013806086964905262, + 0.06660966575145721, + 0.13615640997886658, + 0.04583241790533066, + -0.12063522636890411 + ] + }, + "p244_090.wav": { + "name": "p244", + "embedding": [ + 0.04064396768808365, + 0.08127425611019135, + 0.0626651868224144, + 0.010515211150050163, + -0.0006475523114204407, + 0.006266243755817413, + -0.06174740567803383, + 0.0465511754155159, + 0.02600579708814621, + 0.0719980001449585, + -0.08814815431833267, + 0.07031863927841187, + -0.05689362809062004, + -0.12588611245155334, + -0.054793424904346466, + 0.0026247650384902954, + -0.08458973467350006, + -0.019523780792951584, + -0.022977255284786224, + -0.027991391718387604, + 0.01419652346521616, + -0.005771474912762642, + 0.07965461164712906, + -0.03457125648856163, + -0.025750059634447098, + 0.059703342616558075, + 0.012465003877878189, + 0.02703074924647808, + 0.03189624100923538, + -0.021269138902425766, + 0.03828392177820206, + 0.016185134649276733, + 0.008575506508350372, + 0.01700453646481037, + 0.030969278886914253, + 0.012255815789103508, + 0.0023500584065914154, + -0.018851539120078087, + -0.03283969312906265, + 0.054762423038482666, + -0.051807552576065063, + 0.054250169545412064, + 0.03277702257037163, + -0.06027974560856819, + 0.06507537513971329, + 0.01832493022084236, + -0.04006722941994667, + 0.010587694123387337, + -0.11249355971813202, + 0.10613133013248444, + 0.02595362439751625, + 0.02173946425318718, + -0.046614184975624084, + 0.001112576574087143, + 0.07961267232894897, + -0.022676020860671997, + -0.10368247330188751, + -0.020038418471813202, + 0.062287941575050354, + 0.05499210208654404, + -0.038513362407684326, + -0.03270542994141579, + -0.03815265744924545, + 0.0267141405493021, + 0.05871954560279846, + 0.028176359832286835, + 0.10708551853895187, + 0.08919653296470642, + -0.004631532821804285, + 0.028754757717251778, + 0.06231595575809479, + 0.01567215472459793, + 0.027146045118570328, + 0.004878790117800236, + 0.015389010310173035, + -0.03102223202586174, + -0.006385800428688526, + -0.004703775513917208, + 0.009810584597289562, + -0.01857198029756546, + 0.018842706456780434, + -0.03814390301704407, + 0.019134651869535446, + 0.011757351458072662, + -0.028971102088689804, + 0.017234614118933678, + 0.02773413062095642, + 0.03158588334918022, + 0.04936652630567551, + 0.0501798540353775, + -0.005821910221129656, + 0.058594685047864914, + -0.02979329042136669, + -0.08756905049085617, + -0.050675250589847565, + -0.03978967294096947, + 0.04243859648704529, + 0.037334974855184555, + 0.03551529347896576, + 0.019609754905104637, + 0.0737939178943634, + 0.02514183335006237, + -0.034302689135074615, + 0.0092157032340765, + -0.08985643833875656, + 0.03873419761657715, + 0.07328743487596512, + -0.012470136396586895, + -0.005603881552815437, + -0.0046141669154167175, + 0.08125514537096024, + 0.06594736129045486, + -0.02226751297712326, + 0.0002889372408390045, + 0.01647973246872425, + 0.03091169334948063, + 0.011780399829149246, + 0.07843362540006638, + -0.02702299878001213, + 0.0038549555465579033, + 0.13695725798606873, + -0.050181373953819275, + 0.005859868600964546, + -0.012817978858947754, + -0.010104721412062645, + -0.03332233428955078, + 0.030030228197574615, + 0.011784368194639683, + -0.00015557464212179184, + -0.004663496743887663, + 0.048312947154045105, + 0.019948840141296387, + -0.01283595897257328, + -0.04992695897817612, + -0.0158180333673954, + 0.06533131003379822, + -0.00957013200968504, + 0.007416803855448961, + 0.07714344561100006, + 0.0678035318851471, + 0.031001625582575798, + 0.045978475362062454, + -0.03039032220840454, + -0.022971563041210175, + 0.0387633852660656, + 0.03797642141580582, + 0.01062517799437046, + -0.0077188946306705475, + -0.054019927978515625, + -0.06872181594371796, + 0.011401109397411346, + 0.0697874128818512, + -0.0304543599486351, + 0.060097914189100266, + 0.01463514007627964, + -0.010936297476291656, + 0.08449341356754303, + -0.010837298817932606, + -0.009675005450844765, + -0.0336470901966095, + -0.08266518265008926, + -0.015317079611122608, + 0.025599392130970955, + -0.15433835983276367, + -0.03613152354955673, + -0.050635382533073425, + 0.01456288993358612, + 0.008349638432264328, + 0.00025600194931030273, + 0.06447562575340271, + -0.023840826004743576, + -0.005452310666441917, + -0.012684334069490433, + 0.009937944822013378, + -0.034454409033060074, + -0.07915346324443817, + 0.00742768682539463, + -0.031095465645194054, + 0.022986911237239838, + 0.05516264960169792, + -0.05528753623366356, + 0.015599982813000679, + -0.024020100012421608, + -0.0912422388792038, + -0.023345571011304855, + 0.07813675701618195, + 0.01678263209760189, + 0.007619466166943312, + 0.05370423197746277, + 0.043600715696811676, + -0.057052865624427795, + 0.056252673268318176, + -0.033938370645046234, + 0.08170104771852493, + -0.07578510046005249, + 0.012209897860884666, + -0.0052476003766059875, + 0.021156426519155502, + 0.07137377560138702, + -0.04816038906574249, + -0.08887307345867157, + -0.03825104236602783, + -0.034095779061317444, + 0.020649783313274384, + -0.021899720653891563, + -0.05128190666437149, + 0.01892632246017456, + -0.01499510370194912, + -0.05113307014107704, + -0.09644712507724762, + 0.017037585377693176, + -0.006728529930114746, + -0.002356880810111761, + -0.0784783661365509, + 0.015572423115372658, + -0.008868716657161713, + 0.021705541759729385, + -0.012285393662750721, + 0.06398647278547287, + -0.00813133642077446, + -0.01981765776872635, + -0.03380812704563141, + 0.010599728673696518, + 0.043498069047927856, + 0.015872284770011902, + -0.06370401382446289, + -0.05483846738934517, + 0.03882104158401489, + 0.003696262836456299, + 0.06969879567623138, + 0.02077825553715229, + 0.0002292674034833908, + 0.028231801465153694, + -6.337091326713562e-05, + -0.037019550800323486, + 0.04078030586242676, + 0.05615423619747162, + 0.01964956894516945, + 0.0013615414500236511, + -0.03153536841273308, + 0.09341824054718018, + 0.03599722683429718, + -0.0029991213232278824, + -0.03623276948928833, + 0.015962064266204834, + -0.06498231738805771, + -0.056303344666957855, + 0.0014917273074388504, + -0.05723215267062187, + 0.017543850466609, + -0.004169324412941933, + 0.018473897129297256, + 0.005040300078690052, + 0.08774666488170624, + 0.03280787914991379, + 0.00721321627497673 + ] + }, + "p244_330.wav": { + "name": "p244", + "embedding": [ + 0.028775177896022797, + 0.0942976251244545, + -0.007552044931799173, + 0.008686493150889874, + -0.050842370837926865, + 0.04642527550458908, + -0.1547546088695526, + 0.14853498339653015, + -0.04556361213326454, + 0.1401551365852356, + -0.07498010993003845, + 0.09947290271520615, + -0.028957396745681763, + -0.20971153676509857, + -0.024361716583371162, + 0.05742349475622177, + -0.049325551837682724, + -0.03760281205177307, + -0.028330618515610695, + -0.036062952131032944, + 0.04246811196208, + 0.05712404474616051, + 0.0010933857411146164, + 0.006788269616663456, + 0.035417355597019196, + 0.060848068445920944, + -0.00593825476244092, + 0.022392529994249344, + -0.002645763335749507, + -0.04228941351175308, + -0.02704721689224243, + 0.10263815522193909, + -0.04541067034006119, + -0.0016553238965570927, + 0.04527520015835762, + -0.012980104424059391, + 0.005061643663793802, + -0.05632397159934044, + -0.035657983273267746, + 0.021175328642129898, + -0.05598392337560654, + 0.07094807922840118, + 0.04540979862213135, + 0.009661754593253136, + 0.048433270305395126, + 0.03346649929881096, + -0.015975601971149445, + -0.0627770870923996, + -0.10571716725826263, + 0.1799689680337906, + 0.06859327852725983, + -0.0010220753028988838, + -0.06429551541805267, + -0.077412910759449, + 0.11247684061527252, + -0.0012093563564121723, + -0.1156325712800026, + -0.03648144379258156, + 0.09239096939563751, + 0.16624177992343903, + -0.019953126087784767, + -0.04572741314768791, + 0.040032509714365005, + 0.1287534534931183, + 0.02503649890422821, + 0.08262725919485092, + 0.06323330104351044, + 0.08655506372451782, + -0.009852055460214615, + 4.258615444996394e-05, + 0.06674792617559433, + 0.05819473788142204, + 0.02464931644499302, + -0.04103938490152359, + 0.022542722523212433, + 0.011651113629341125, + -0.031608715653419495, + -0.0006100579630583525, + -0.017362941056489944, + -0.006360533647239208, + -0.00681935902684927, + 0.019258219748735428, + -0.004623271990567446, + 0.01647677831351757, + -0.02628968469798565, + 0.04284828156232834, + 0.02720942720770836, + 0.0063293566927313805, + 0.08645815402269363, + 0.03611991927027702, + 0.02872610278427601, + 0.06712743639945984, + -0.07143925130367279, + -0.07111746072769165, + 0.028093665838241577, + 0.011730422265827656, + 0.008528018370270729, + 0.07223747670650482, + 0.046128008514642715, + -0.027298910543322563, + 0.13931550085544586, + 0.04103231057524681, + 0.004401904530823231, + 0.025906242430210114, + -0.11898987740278244, + 0.11477471888065338, + 0.07792922109365463, + -0.026407528668642044, + 0.058479174971580505, + -0.04493040218949318, + 0.07228315621614456, + 0.06652665138244629, + -0.152790829539299, + -0.07113491743803024, + 0.03901821747422218, + 0.034688226878643036, + -0.020282993093132973, + 0.15232884883880615, + -0.0008881477988325059, + 0.027568671852350235, + 0.10801813006401062, + -0.0980055034160614, + -0.06507053226232529, + -0.024508953094482422, + 0.060099925845861435, + -0.09166676551103592, + 0.05855695903301239, + 0.07104960829019547, + -0.029177578166127205, + 0.02858414128422737, + 0.06988789141178131, + -0.017563609406352043, + 0.020906032994389534, + -0.016088807955384254, + -0.03398805856704712, + 0.029657838866114616, + -0.036932263523340225, + 0.000521114852745086, + 0.030030759051442146, + 0.042283255606889725, + 0.04619602859020233, + 0.004907483235001564, + -0.05178247392177582, + -0.12175274640321732, + 0.015008042566478252, + 0.01987510174512863, + 0.07778052240610123, + -0.003235435811802745, + -0.020022328943014145, + -0.044971998780965805, + -0.06584125012159348, + -0.004014094825834036, + -0.005116398446261883, + 0.09099182486534119, + -0.011174105107784271, + -0.0026409414131194353, + 0.1033637747168541, + 0.0485977828502655, + -0.004749538376927376, + -0.04129302501678467, + -0.046134140342473984, + -0.001764293061569333, + 0.0420251227915287, + -0.08176632225513458, + -0.06909742951393127, + -0.011056512594223022, + 0.04126637801527977, + -0.003850417211651802, + 0.04995927959680557, + 0.03722752258181572, + 0.024100279435515404, + 0.027754345908761024, + -0.09293355792760849, + 0.03915109857916832, + -0.10830654948949814, + -0.0761324018239975, + -0.006361217238008976, + -0.012022493407130241, + -0.0258127823472023, + 0.09199270606040955, + 0.002167552476748824, + 0.03620534390211105, + -0.017047669738531113, + -0.06860188394784927, + -0.07338572293519974, + 0.055204544216394424, + 0.07647529244422913, + -0.011820715852081776, + 0.04574711248278618, + 0.0529719814658165, + -0.04489642381668091, + 0.053750310093164444, + 0.05419224128127098, + 0.11394426226615906, + -0.022352589294314384, + 0.02878769114613533, + -0.05205736309289932, + 0.08080983906984329, + 0.05842039734125137, + -0.08768323063850403, + -0.07520138472318649, + -0.023953553289175034, + -0.06678587943315506, + 0.04522787407040596, + -0.00245091924443841, + 0.01864619180560112, + 0.0017047241562977433, + -0.0016624588752165437, + -0.09359132498502731, + -0.06657226383686066, + 0.05649025738239288, + -0.05803738534450531, + -0.016047485172748566, + -0.08337128162384033, + 0.05354076251387596, + 0.11559978127479553, + 0.049841102212667465, + -0.015008434653282166, + -0.03896990790963173, + 0.03340882807970047, + -0.038215503096580505, + 0.0042031267657876015, + 0.05201674625277519, + 0.03596038743853569, + -0.09438767284154892, + 0.0034492751583456993, + -0.08936912566423416, + 0.07114681601524353, + -0.053649820387363434, + 0.14778290688991547, + 0.014951919205486774, + -0.06981822103261948, + -0.1001640185713768, + 0.0405099056661129, + -0.010781927965581417, + 0.048182617872953415, + 0.023616915568709373, + 0.06275665014982224, + 0.06097223609685898, + -0.040008544921875, + 0.1036645770072937, + 0.03136811405420303, + -0.03299437835812569, + -0.04510760307312012, + -0.03755544498562813, + -0.03452673926949501, + 0.018769390881061554, + 0.006894656457006931, + -0.0962354764342308, + -0.023216702044010162, + 0.024768684059381485, + 0.002940610283985734, + 0.08153677731752396, + 0.1194208562374115, + 0.04961024224758148, + -0.1429012417793274 + ] + }, + "p244_005.wav": { + "name": "p244", + "embedding": [ + 0.025751689448952675, + 0.09247411042451859, + -0.01481679081916809, + 0.002580709755420685, + -0.047820497304201126, + 0.031276993453502655, + -0.15323218703269958, + 0.13633522391319275, + -0.0312531478703022, + 0.12312326580286026, + -0.05915254354476929, + 0.10241879522800446, + -0.04438268765807152, + -0.16465875506401062, + -0.013169439509510994, + 0.06484699249267578, + -0.02492721937596798, + -0.03713805228471756, + 0.012213650159537792, + -0.02052169106900692, + 0.028823306784033775, + 0.019845543429255486, + 0.010030052624642849, + 0.0174336526542902, + 0.01750507764518261, + 0.07105695456266403, + -0.0018580554751679301, + 0.023838896304368973, + -8.113496005535126e-05, + -0.0011915796203538775, + -0.012518675997853279, + 0.08900490403175354, + -0.039401229470968246, + 0.007327149156481028, + 0.061140816658735275, + 0.0033923436421900988, + -0.008418516255915165, + -0.0373876616358757, + 0.009603055194020271, + -0.0022687034215778112, + -0.05736105516552925, + 0.08183414489030838, + 0.03330230340361595, + -0.003914451692253351, + 0.03413618728518486, + 0.030132634565234184, + -0.00441955029964447, + -0.01882593147456646, + -0.08758299052715302, + 0.13185621798038483, + 0.0608295276761055, + 0.009664368815720081, + -0.06682051718235016, + -0.034202467650175095, + 0.08539756387472153, + -0.013197868131101131, + -0.09733202308416367, + -0.05651670694351196, + 0.07982601225376129, + 0.1298866719007492, + -0.02178170159459114, + -0.041950952261686325, + 0.020245349034667015, + 0.11902689933776855, + 0.029456421732902527, + 0.07493413984775543, + 0.06037766858935356, + 0.10166652500629425, + -0.02030940353870392, + -0.009444179013371468, + 0.053118105977773666, + 0.05621718242764473, + 0.025752825662493706, + -0.015468365512788296, + 0.010053319856524467, + -0.012781363911926746, + -0.008865932933986187, + 0.012631827965378761, + -0.014924371615052223, + -0.03145730495452881, + -0.05392680689692497, + 0.004488821607083082, + -0.023478878661990166, + 0.026279447600245476, + 0.005703621078282595, + 0.03302256390452385, + 0.05726640298962593, + -0.012014302425086498, + 0.08122263103723526, + 0.042374927550554276, + -0.008360168896615505, + 0.04747333750128746, + -0.0784466490149498, + -0.04162577539682388, + 0.02184409275650978, + -0.007953012362122536, + 0.03751415014266968, + 0.06978607922792435, + 0.02579343318939209, + 0.016692832112312317, + 0.1087413802742958, + 0.03914780169725418, + 0.004087178036570549, + 0.007513151969760656, + -0.09907539933919907, + 0.1404232233762741, + 0.06030994653701782, + -0.0458175390958786, + 0.03655023127794266, + -0.032442737370729446, + 0.023660805076360703, + 0.042734142392873764, + -0.10230907052755356, + -0.05554288253188133, + 0.030258584767580032, + 0.044573355466127396, + -0.022863119840621948, + 0.12222959101200104, + 0.004582211375236511, + 0.022670665755867958, + 0.10225160419940948, + -0.07203736156225204, + -0.08265693485736847, + -0.023847756907343864, + 0.035272691398859024, + -0.08250445127487183, + 0.06003674864768982, + 0.07833289355039597, + 0.007364712655544281, + 0.027607271447777748, + 0.08703519403934479, + 0.0236942358314991, + 0.019190281629562378, + -0.005353455897420645, + -0.02498854510486126, + 0.01818469725549221, + -0.02052154950797558, + 0.020734982565045357, + 0.03831108286976814, + 0.028344979509711266, + 0.06835141032934189, + 0.026013633236289024, + -0.014806079678237438, + -0.11593671143054962, + -0.0050568473525345325, + 0.05435812473297119, + 0.06633037328720093, + -0.027806712314486504, + -0.043762363493442535, + -0.02780364826321602, + -0.05236717686057091, + -0.02628963626921177, + 0.0030397993978112936, + 0.08151530474424362, + -0.022789010778069496, + -0.005302906036376953, + 0.09771472215652466, + 0.02625555731356144, + -0.004160396289080381, + -0.06628470122814178, + -0.026820192113518715, + -0.005690340884029865, + 0.039222847670316696, + -0.09614644199609756, + -0.0746803879737854, + -0.0171371977776289, + 0.0507940910756588, + -0.004642564337700605, + 0.05241745337843895, + 0.057788994163274765, + 0.013224628753960133, + 0.015903351828455925, + -0.045140378177165985, + 0.035480767488479614, + -0.0744086354970932, + -0.0786619707942009, + -0.02025953121483326, + -0.004782547242939472, + -0.029815783724188805, + 0.07740012556314468, + 0.006323916371911764, + 0.06174571067094803, + -0.005351876374334097, + -0.06544952839612961, + -0.08191382139921188, + 0.049945052713155746, + 0.05891530588269234, + -0.03241581842303276, + 0.04496927559375763, + 0.04943684861063957, + -0.05588522180914879, + 0.023241456598043442, + 0.04074364900588989, + 0.10572715103626251, + -0.06369687616825104, + 0.019643960520625114, + -0.05950211361050606, + 0.05306880548596382, + 0.07781235128641129, + -0.09480667859315872, + -0.06370726972818375, + -0.03584478050470352, + -0.041032467037439346, + 0.019404901191592216, + -0.032237228006124496, + 0.0116353090852499, + 0.006078171543776989, + -0.025051867589354515, + -0.08602433651685715, + -0.10105009377002716, + 0.04299122467637062, + -0.0635981485247612, + 0.012628167867660522, + -0.06944680958986282, + 0.04417206719517708, + 0.057485032826662064, + 0.033591967076063156, + -0.040401894599199295, + -0.01090376265347004, + 0.02220587246119976, + -0.02587585709989071, + 0.002378108911216259, + 0.05339096859097481, + 0.04920055344700813, + -0.06807062029838562, + -0.015053587034344673, + -0.08359590172767639, + 0.06522922217845917, + -0.04064479470252991, + 0.1401396095752716, + 0.00669890409335494, + -0.051161497831344604, + -0.0719616636633873, + -0.01930060237646103, + -0.01189219206571579, + 0.034772831946611404, + 0.030210062861442566, + 0.057875823229551315, + 0.02430647611618042, + -0.022067708894610405, + 0.11881152540445328, + 0.04928240925073624, + -0.022224219515919685, + -0.060008931905031204, + -0.030271828174591064, + -0.04335605353116989, + 0.03636306896805763, + 0.014109629206359386, + -0.10383329540491104, + -0.01007533073425293, + 0.017167722806334496, + 0.003292742418125272, + 0.07619378715753555, + 0.11934701353311539, + 0.061288367956876755, + -0.11134073883295059 + ] + }, + "p244_338.wav": { + "name": "p244", + "embedding": [ + 0.04102391004562378, + 0.09404051303863525, + -0.013703575357794762, + 0.043323636054992676, + -0.0589664988219738, + 0.0326029509305954, + -0.12760983407497406, + 0.14680981636047363, + -0.02417687140405178, + 0.12538829445838928, + -0.08796220272779465, + 0.11340855807065964, + -0.03165631368756294, + -0.19505028426647186, + -0.02535703033208847, + 0.07253023982048035, + -0.047131799161434174, + -0.04184499382972717, + -0.037942349910736084, + -0.01847253367304802, + 0.038353584706783295, + 0.04341405630111694, + 0.028912773355841637, + 0.03292600065469742, + 0.0030481999274343252, + 0.06400053203105927, + -0.005463878624141216, + 0.04588539898395538, + 0.031159546226263046, + -0.013155660592019558, + -0.03663887083530426, + 0.11392031610012054, + -0.023835692554712296, + 0.009370487183332443, + 0.050447773188352585, + -0.006495075300335884, + -0.004920381121337414, + -0.05598188936710358, + -0.033462539315223694, + -0.007103222422301769, + -0.060744114220142365, + 0.06411627680063248, + 0.03661311790347099, + -0.008307775482535362, + 0.07547600567340851, + 0.020827434957027435, + -0.050890058279037476, + -0.050755392760038376, + -0.11806660145521164, + 0.15462371706962585, + 0.09738489240407944, + -0.0014778965851292014, + -0.06550323963165283, + -0.051741503179073334, + 0.09798663854598999, + -0.019104696810245514, + -0.11481021344661713, + -0.04825432598590851, + 0.0923953503370285, + 0.15434959530830383, + -0.01551961712539196, + -0.020738907158374786, + 0.0250251404941082, + 0.15619820356369019, + 0.05627680569887161, + 0.09270654618740082, + 0.062010325491428375, + 0.11288772523403168, + -0.03001170977950096, + 0.017727412283420563, + 0.07268472015857697, + 0.0596601627767086, + 0.035544008016586304, + -0.012070360593497753, + 0.019215280190110207, + 0.012073686346411705, + -0.017725301906466484, + 0.007525689899921417, + -0.034538932144641876, + -0.007980989292263985, + -0.025446800515055656, + 0.009731393307447433, + -0.016469363123178482, + 0.010556772351264954, + -0.01962146908044815, + 0.06840859353542328, + 0.04780596122145653, + 0.0061414241790771484, + 0.06742027401924133, + 0.04598572850227356, + 0.004867593292146921, + 0.06456311792135239, + -0.06450364738702774, + -0.086041659116745, + 0.009608002379536629, + -0.001914256950840354, + 0.024147581309080124, + 0.06559255719184875, + 0.02723701111972332, + -0.01865668222308159, + 0.1240086778998375, + 0.04605934023857117, + -0.01619747094810009, + 0.04223329573869705, + -0.10692392289638519, + 0.126690074801445, + 0.08142156898975372, + -0.021290220320224762, + 0.040113888680934906, + -0.03608899936079979, + 0.07253705710172653, + 0.07166515290737152, + -0.12288157641887665, + -0.04304562136530876, + 0.029197407886385918, + 0.014444700442254543, + -0.027562733739614487, + 0.11656133830547333, + 0.004667364992201328, + 0.042792391031980515, + 0.11476494371891022, + -0.07899925112724304, + -0.0684492439031601, + -0.02288840524852276, + 0.04763060808181763, + -0.09656398743391037, + 0.053603172302246094, + 0.05281418561935425, + -0.007395615801215172, + 0.010420829057693481, + 0.07941490411758423, + -0.005900798365473747, + 0.00013526731345336884, + 0.014369579032063484, + -0.06391957402229309, + 0.030904870480298996, + -0.03508904576301575, + -0.003078195033594966, + 0.04659448564052582, + 0.040982797741889954, + 0.040698982775211334, + -0.0021367508452385664, + -0.018278196454048157, + -0.10974903404712677, + 0.010570976883172989, + 0.031058212742209435, + 0.08584713935852051, + 0.008872914128005505, + -0.01721477322280407, + -0.04305783659219742, + -0.0623776875436306, + 0.005800226703286171, + -0.02083773724734783, + 0.06063871830701828, + -0.04043854400515556, + -0.013258038088679314, + 0.0933605283498764, + 0.009024466387927532, + 0.003986444789916277, + -0.047592610120773315, + -0.03874823451042175, + 0.011362962424755096, + 0.05025026202201843, + -0.08625790476799011, + -0.07113875448703766, + 0.011010151356458664, + 0.03381587564945221, + -0.025479283183813095, + 0.03287027031183243, + 0.02819760888814926, + 0.010258961468935013, + 0.023746557533740997, + -0.07637040317058563, + 0.029231026768684387, + -0.11355855315923691, + -0.07538261264562607, + -0.007543667685240507, + -0.0021072616800665855, + -0.0033139530569314957, + 0.05932000279426575, + 0.008054036647081375, + 0.039663612842559814, + 0.010288329795002937, + -0.09107789397239685, + -0.09306816756725311, + 0.0720660462975502, + 0.07757392525672913, + 0.007989971898496151, + 0.0750846266746521, + 0.0554271899163723, + -0.05560479313135147, + 0.048159655183553696, + 0.030037513002753258, + 0.11011700332164764, + -0.019759507849812508, + 0.013727596960961819, + -0.08091473579406738, + 0.05746433138847351, + 0.09096956253051758, + -0.11060699820518494, + -0.08227789402008057, + -0.025494307279586792, + -0.050003327429294586, + 0.039126306772232056, + -0.026564180850982666, + -0.003959990106523037, + 0.04524245113134384, + -0.009651796892285347, + -0.11342038959264755, + -0.08504398912191391, + 0.07966822385787964, + -0.07838701456785202, + -0.0018658809131011367, + -0.0688696950674057, + 0.03626197576522827, + 0.0955563336610794, + 0.01767021417617798, + -0.04212246090173721, + -0.017780475318431854, + 0.0479314848780632, + -0.044675808399915695, + -0.010200833901762962, + 0.032487496733665466, + 0.0371989831328392, + -0.11207787692546844, + -0.001362629234790802, + -0.07121067494153976, + 0.06254415214061737, + -0.04630634933710098, + 0.14817757904529572, + 0.017550859600305557, + -0.045733314007520676, + -0.08875660598278046, + 0.03624237701296806, + -0.004451698623597622, + 0.05125384032726288, + 0.029379427433013916, + 0.05633626878261566, + 0.02399054914712906, + -0.06488151848316193, + 0.129984050989151, + 0.03490384668111801, + -0.049936018884181976, + -0.056096404790878296, + -0.015089405700564384, + -0.052996568381786346, + 0.016771573573350906, + 0.02335342764854431, + -0.0932389348745346, + -0.03478509187698364, + 0.012313449755311012, + -0.04063805937767029, + 0.07577440142631531, + 0.13775473833084106, + 0.06095390021800995, + -0.11094637960195541 + ] + }, + "p244_391.wav": { + "name": "p244", + "embedding": [ + 0.04475565627217293, + 0.08445829898118973, + -0.03482842072844505, + 0.028779076412320137, + -0.05144379660487175, + 0.07730261981487274, + -0.1261998862028122, + 0.10576523840427399, + -0.034466277807950974, + 0.14886286854743958, + -0.0728699266910553, + 0.13544268906116486, + -0.005417270120233297, + -0.17050045728683472, + -0.019191410392522812, + 0.04791611060500145, + -0.0217113196849823, + -0.021417034789919853, + -0.04494427144527435, + -0.02324852906167507, + 0.04740201681852341, + 0.04067324101924896, + 0.04741324856877327, + -0.041410841047763824, + 0.031443677842617035, + 0.06916915625333786, + -0.01657356135547161, + 0.03314198926091194, + -0.008323051035404205, + -0.09121359139680862, + -0.06360432505607605, + 0.10366450250148773, + -0.06279800087213516, + 0.006447340361773968, + 0.030507370829582214, + -0.008925455622375011, + 0.010416969656944275, + -0.06755886226892471, + -0.010517291724681854, + 0.014069553464651108, + -0.024344198405742645, + 0.06747173517942429, + -0.009081847034394741, + -0.025300128385424614, + 0.03991752862930298, + 0.0052709029987454414, + -0.014901787042617798, + -0.028051448985934258, + -0.09598222374916077, + 0.15395468473434448, + 0.05070444568991661, + 0.0026327979285269976, + -0.07729495316743851, + -0.07014848291873932, + 0.0927153006196022, + -0.00932000856846571, + -0.09822805225849152, + -0.034471482038497925, + 0.05725415423512459, + 0.14293190836906433, + -0.024730799719691277, + -0.05496111884713173, + 0.049386873841285706, + 0.07950408011674881, + 0.049979060888290405, + 0.07378515601158142, + 0.10072334855794907, + 0.10587462782859802, + -0.016188785433769226, + 0.003911721520125866, + 0.031614284962415695, + 0.09812268614768982, + 0.0813341811299324, + -0.014089087955653667, + 0.040813107043504715, + -0.0020376797765493393, + -0.025137141346931458, + -0.019072165712714195, + -0.05207672342658043, + -0.03556160256266594, + 0.0030249105766415596, + -0.006976144388318062, + 0.024737738072872162, + 0.024147195741534233, + -0.047896239906549454, + 0.0465267039835453, + 0.06678692996501923, + -0.034494489431381226, + 0.06862171739339828, + 0.03676571324467659, + 0.015841543674468994, + 0.05871529132127762, + -0.12004963308572769, + -0.07510169595479965, + 0.0632457286119461, + 0.02912026271224022, + -0.01038141269236803, + 0.07163555920124054, + 0.0556488111615181, + -0.026362119242548943, + 0.11318233609199524, + 0.035304829478263855, + -0.0005532089853659272, + 0.012245634570717812, + -0.08129800111055374, + 0.13182812929153442, + 0.1263558715581894, + -0.04192619025707245, + 0.027076663449406624, + -0.04925129562616348, + 0.057712405920028687, + 0.06085308641195297, + -0.13565240800380707, + -0.09596654772758484, + 0.012001050636172295, + -0.020846327766776085, + -0.003182913176715374, + 0.1101795956492424, + -0.012469641864299774, + 0.044291310012340546, + 0.10889151692390442, + -0.10956189036369324, + -0.058276236057281494, + -0.0070252083241939545, + 0.03585992753505707, + -0.09176762402057648, + 0.06521953642368317, + 0.04517240822315216, + 0.015312273986637592, + -0.00339338555932045, + 0.07249868661165237, + -0.013997214846313, + 0.007416174281388521, + 0.0038231033831834793, + -0.037874698638916016, + 0.008054663427174091, + -0.027380961924791336, + -0.03448547050356865, + 0.0436052642762661, + 0.03516879305243492, + 0.06869257241487503, + -0.029147779569029808, + -0.017612360417842865, + -0.13826081156730652, + 0.024862486869096756, + 0.03652787581086159, + 0.04917508363723755, + -0.01798488013446331, + -0.015032642520964146, + -0.049134574830532074, + -0.07683062553405762, + 0.04029630869626999, + -0.020044395700097084, + 0.07759607583284378, + 0.004628386348485947, + 0.014294054359197617, + 0.11544560641050339, + 0.029482055455446243, + 0.00648410152643919, + -0.031085975468158722, + -0.03396117314696312, + 0.007486049085855484, + 0.043998751789331436, + -0.06972501426935196, + -0.10206920653581619, + -0.029392996802926064, + 0.0035860100761055946, + -0.005114537198096514, + 0.08452353626489639, + 0.07642000168561935, + 0.020112834870815277, + 0.01829945109784603, + -0.060348283499479294, + -0.009538174606859684, + -0.08370153605937958, + -0.0578397698700428, + -0.020565152168273926, + -0.050570763647556305, + -0.030210578814148903, + 0.10048534721136093, + 0.023672735318541527, + 0.03672643378376961, + -0.06911935657262802, + -0.05053436756134033, + -0.09950694441795349, + 0.04814744368195534, + 0.05687841400504112, + -0.009804955683648586, + 0.019170355051755905, + 0.05248704552650452, + -0.0027235078159719706, + 0.05640871077775955, + 0.08356982469558716, + 0.08389993011951447, + -0.02409106120467186, + 0.022876331582665443, + -0.060714107006788254, + 0.12603406608104706, + 0.10261187702417374, + -0.06148110702633858, + -0.0946405827999115, + -0.03647901862859726, + -0.09201876074075699, + 0.04842294007539749, + -0.031402166932821274, + -0.003240474732592702, + 0.05512641742825508, + -0.014015892520546913, + -0.10799790173768997, + -0.09559755772352219, + 0.09522709250450134, + -0.048895835876464844, + -0.017499355599284172, + -0.08222983032464981, + 0.04866539686918259, + 0.07448327541351318, + 0.02879994362592697, + -0.04282752051949501, + 0.0011830126168206334, + 0.05681319534778595, + -0.027522733435034752, + 0.024755720049142838, + 0.055269505828619, + 0.040254633873701096, + -0.10236751288175583, + -0.007689174730330706, + -0.07135006785392761, + 0.04229961708188057, + -0.06378545612096786, + 0.13410131633281708, + 0.0108482139185071, + -0.045616161078214645, + -0.07834893465042114, + 0.07525690644979477, + -0.016149261966347694, + 0.04846128448843956, + 0.030103370547294617, + 0.06719794124364853, + 0.04558586701750755, + -0.10772771388292313, + 0.10215885937213898, + 0.04660838097333908, + -0.03494365140795708, + -0.09867776930332184, + -0.07350967079401016, + -0.036285027861595154, + 0.03467181324958801, + 0.01720988005399704, + -0.08759579807519913, + 0.00595390098169446, + 0.024533240124583244, + 0.02508567087352276, + 0.05026039108633995, + 0.1316027194261551, + 0.05401219055056572, + -0.11442084610462189 + ] + }, + "p244_255.wav": { + "name": "p244", + "embedding": [ + 0.05430874228477478, + 0.09774158895015717, + 0.01347745954990387, + 0.004972044378519058, + -0.012308331206440926, + 0.05372491478919983, + -0.015709009021520615, + 0.0686049535870552, + 0.058810096234083176, + 0.028306618332862854, + -0.08619813621044159, + 0.04947549104690552, + -0.022378897294402122, + -0.09923802316188812, + 0.025608714669942856, + 0.026873666793107986, + -0.018502648919820786, + 0.015591317787766457, + -0.043779533356428146, + -0.026002051308751106, + -0.014537546783685684, + 0.006839936599135399, + 0.03584045544266701, + -0.018978744745254517, + 0.011685444973409176, + 0.002531846985220909, + -0.03858165442943573, + -0.007537835277616978, + -0.015930943191051483, + -0.04945084825158119, + -0.030241888016462326, + 0.03820665180683136, + -0.024072200059890747, + -0.010192835703492165, + -0.004791846964508295, + -0.04764346033334732, + 0.024696966633200645, + -0.07823380082845688, + -0.06926882266998291, + 0.04884723201394081, + -0.055877409875392914, + 0.042214974761009216, + 0.02864380180835724, + -0.0466630794107914, + 0.0625571608543396, + 0.011679427698254585, + -0.047914013266563416, + -0.00826011598110199, + -0.08712661266326904, + 0.12145355343818665, + 0.0217595212161541, + 0.022263966500759125, + -0.06696166843175888, + 0.005346570163965225, + 0.054151393473148346, + -0.008380424231290817, + -0.0278440173715353, + 0.00017682649195194244, + 0.02487005665898323, + 0.014670856297016144, + 0.06343583017587662, + -0.02097918838262558, + 0.0275642741471529, + 0.04632057994604111, + 0.04389994218945503, + -0.014888783916831017, + 0.07998812198638916, + 0.10132572799921036, + -0.03211326524615288, + 0.020754342898726463, + 0.01418408565223217, + 0.009712819010019302, + 0.042468585073947906, + -0.007901829667389393, + 0.00095329899340868, + -0.02055731974542141, + 0.008386963978409767, + -0.04433564469218254, + -0.02692912518978119, + -0.028600141406059265, + 0.06794092804193497, + 0.007959078066051006, + 0.02130330353975296, + 0.027074065059423447, + -0.0463731549680233, + -0.013050507754087448, + 0.05219823122024536, + 0.08347707986831665, + 0.06172531843185425, + 0.030457882210612297, + 0.01658627577126026, + 0.04357363283634186, + -0.06571778655052185, + -0.07064215838909149, + 0.015229208394885063, + 0.021436570212244987, + 0.0027671707794070244, + 0.013337412849068642, + 0.03716866672039032, + -0.027809806168079376, + 0.10106607526540756, + -0.011955322697758675, + 0.004767312668263912, + -0.00479104183614254, + -0.05073666572570801, + 0.012240037322044373, + 0.061280716210603714, + -0.00638702604919672, + 0.0681275874376297, + 0.017029546201229095, + 0.06522238254547119, + 0.043957993388175964, + -0.04780182987451553, + 0.013337705284357071, + -0.022062424570322037, + 0.008388960734009743, + 0.026759816333651543, + 0.10155860334634781, + 0.010886836796998978, + 0.057982828468084335, + 0.08869235217571259, + -0.06098257005214691, + 0.01550203375518322, + 0.05748186632990837, + -0.011237148195505142, + 0.004615951329469681, + 0.03253023326396942, + 0.02515196055173874, + -0.0034752970095723867, + -0.0286130141466856, + 0.0004828236997127533, + 0.01972118951380253, + 0.029773356392979622, + -0.07508664578199387, + 0.01647849939763546, + -0.01317545399069786, + -0.0030111498199403286, + -0.027988936752080917, + 0.01638893596827984, + 0.04712340235710144, + -0.006316136568784714, + 0.022809334099292755, + -0.049131277948617935, + -0.059588637202978134, + 0.02155737392604351, + -0.042042024433612823, + 0.005092935636639595, + 0.05131315439939499, + -0.02260187827050686, + -0.05235358327627182, + 0.00721769779920578, + 0.03811686858534813, + -0.028150059282779694, + 0.019183780997991562, + 0.08530475199222565, + -0.04081461951136589, + 0.05118509382009506, + 0.024056170135736465, + 0.029365716502070427, + -0.018594348803162575, + -0.09280963987112045, + -0.006896346341818571, + 0.03319235518574715, + -0.030784036964178085, + -0.044725202023983, + -0.016633763909339905, + -0.07315071672201157, + -0.0031818910501897335, + 0.015321135520935059, + 0.07648880779743195, + -0.018735330551862717, + -0.02757854200899601, + -0.0827283188700676, + -0.0026331646367907524, + -0.008053064346313477, + -0.0910884439945221, + 0.07206295430660248, + 0.038100820034742355, + 0.013404693454504013, + 0.0881463885307312, + 0.019160162657499313, + 0.00919361412525177, + -0.06912365555763245, + -0.027963832020759583, + 0.034555308520793915, + 0.031073711812496185, + 0.0018057804554700851, + -0.0025843651965260506, + 0.04371615871787071, + 0.041177865117788315, + -0.012960391119122505, + 0.035534925758838654, + 0.013252072036266327, + 0.0353245809674263, + -0.02948800101876259, + 0.0122229577973485, + 0.029015105217695236, + 0.09154590219259262, + 0.04014185443520546, + -0.027290519326925278, + -0.0880202203989029, + -0.026353871449828148, + -0.042294666171073914, + 0.013319004327058792, + 0.01445453055202961, + 0.012715521268546581, + 0.04443905130028725, + -0.01205204613506794, + -0.025969084352254868, + -0.09695051610469818, + -0.0004797913134098053, + -0.0025463085621595383, + -0.01854422315955162, + -0.028552358970046043, + 0.026280077174305916, + 0.05005079135298729, + 0.004732104018330574, + -0.025891238823533058, + 0.017430447041988373, + 0.00866516213864088, + 0.018742449581623077, + -0.022751860320568085, + 0.005694802850484848, + 0.050899628549814224, + -0.016456685960292816, + -0.01385124959051609, + -0.05806155502796173, + 0.04041241109371185, + 0.04801962897181511, + 0.0625956729054451, + 0.05974408611655235, + 0.017898771911859512, + -0.0724748894572258, + 0.05567363649606705, + -0.004642583429813385, + 0.03655055910348892, + -0.03209227696061134, + 0.014330834150314331, + 0.07109825313091278, + -0.04922118037939072, + 0.04186179116368294, + 0.02869436703622341, + -0.03642933815717697, + -0.0290510430932045, + 0.011721570044755936, + -0.045564111322164536, + -0.010473456233739853, + -0.009366411715745926, + -0.03548828139901161, + -0.004731165710836649, + 0.029181640595197678, + 0.07118245959281921, + 0.026769788935780525, + 0.049811460077762604, + 0.012321382761001587, + -0.018462814390659332 + ] + }, + "p244_248.wav": { + "name": "p244", + "embedding": [ + 0.03326428309082985, + 0.10503867268562317, + -0.006563019473105669, + 0.021382618695497513, + -0.035181332379579544, + 0.06641621887683868, + -0.14270910620689392, + 0.14689882099628448, + -0.0529194101691246, + 0.14005199074745178, + -0.08515670150518417, + 0.10863259434700012, + -0.02142701856791973, + -0.19966208934783936, + -0.05129221826791763, + 0.04734417796134949, + -0.037114884704351425, + -0.021756403148174286, + -0.020290590822696686, + 0.02037068083882332, + 0.054260432720184326, + 0.0197905283421278, + -0.008160501718521118, + 0.005950427148491144, + 0.011820094659924507, + 0.04632983356714249, + 0.018941283226013184, + 0.07119020819664001, + 0.038772545754909515, + -0.008806821890175343, + -0.021929437294602394, + 0.1389164924621582, + -0.04237101599574089, + 0.023965582251548767, + 0.09051065146923065, + -0.010492709465324879, + -0.010640027932822704, + -0.04174468666315079, + 0.0015000661369413137, + -0.005619301460683346, + -0.04801660403609276, + 0.07297725975513458, + 0.04421119764447212, + 0.029680799692869186, + 0.044248875230550766, + 0.06206236407160759, + -0.006960523780435324, + -0.059761714190244675, + -0.08272796124219894, + 0.14419464766979218, + 0.061015497893095016, + -0.013569101691246033, + -0.06060367450118065, + -0.06195567548274994, + 0.09821299463510513, + -0.0053466870449483395, + -0.10537618398666382, + -0.059383925050497055, + 0.10277719050645828, + 0.16306942701339722, + -0.025835031643509865, + -0.029996497556567192, + 0.005888940766453743, + 0.13256876170635223, + 0.038057293742895126, + 0.11651652306318283, + 0.06195082142949104, + 0.1047007367014885, + 0.016978176310658455, + 0.031210927292704582, + 0.06324133276939392, + 0.0424971729516983, + 0.018749108538031578, + -0.03604646399617195, + 0.041535235941410065, + 0.0004186670994386077, + -0.010627089068293571, + 0.029011476784944534, + -0.024011215195059776, + 0.0014914039056748152, + -0.008591105230152607, + 0.03372807055711746, + -0.007432431913912296, + 0.027847113087773323, + -0.02181638590991497, + 0.06372219324111938, + 0.016094636172056198, + 0.0001664205628912896, + 0.07467986643314362, + 0.04773971810936928, + 0.020981866866350174, + 0.05578187480568886, + -0.08660785108804703, + -0.11086946725845337, + 0.027062853798270226, + -0.011498336680233479, + 0.010076425038278103, + 0.07281024754047394, + 0.028779448941349983, + -0.0022513512521982193, + 0.10478446632623672, + 0.044505927711725235, + -0.015915464609861374, + 0.05098680406808853, + -0.11171170324087143, + 0.1369580328464508, + 0.05428781360387802, + -0.017963018268346786, + 0.03188413381576538, + -0.06151900812983513, + 0.07348376512527466, + 0.07083126157522202, + -0.14331021904945374, + -0.07584619522094727, + 0.06422212719917297, + 0.0241533350199461, + -0.03761085495352745, + 0.12506811320781708, + -0.023752253502607346, + 0.001755036530084908, + 0.09748087078332901, + -0.07048944383859634, + -0.0653095692396164, + -0.037154119461774826, + 0.04394792392849922, + -0.08155908435583115, + 0.05932453274726868, + 0.020151883363723755, + -0.01049033086746931, + -0.012261648662388325, + 0.09844256937503815, + -0.007093452848494053, + -0.0038391880225390196, + 0.01670568436384201, + -0.02559264935553074, + 0.06542926281690598, + -0.04142296314239502, + 0.02087036520242691, + 0.006950828246772289, + 0.04439277946949005, + 0.054226797074079514, + 0.011732866056263447, + -0.033627741038799286, + -0.10067842155694962, + -0.003911444917321205, + 0.039438504725694656, + 0.07828150689601898, + -0.008904989808797836, + -0.023920999839901924, + -0.04549529775977135, + -0.0516778863966465, + 0.00099505006801337, + -0.012249048799276352, + 0.0849609225988388, + 0.00759790139272809, + 0.0008260492468252778, + 0.09692353010177612, + -0.0005662136245518923, + 0.017252637073397636, + -0.06549599021673203, + -0.025167036801576614, + 0.01781909354031086, + 0.04906206578016281, + -0.08635608851909637, + -0.049549639225006104, + 0.014585984870791435, + 0.021570555865764618, + -0.02042437717318535, + 0.01902623102068901, + 0.040436070412397385, + 0.026762712746858597, + 0.049159519374370575, + -0.07578486204147339, + 0.021188899874687195, + -0.12176697701215744, + -0.06806919723749161, + -0.03642034903168678, + 0.0004002218774985522, + -0.015886256471276283, + 0.06698358058929443, + 0.0039036013185977936, + 0.037194326519966125, + 0.015204844065010548, + -0.0767972469329834, + -0.07526036351919174, + 0.07649330794811249, + 0.0991264134645462, + -0.001367559190839529, + 0.06216452270746231, + 0.031130140647292137, + -0.04054833948612213, + 0.04654073342680931, + 0.056162938475608826, + 0.10860594362020493, + -0.019133972004055977, + 0.00453865947201848, + -0.077931247651577, + 0.08217664062976837, + 0.07550106942653656, + -0.1111370176076889, + -0.08311592042446136, + 0.00900371465831995, + -0.044097039848566055, + 0.01728678308427334, + -0.03302762284874916, + 0.01365702971816063, + 0.0205699373036623, + -0.007566655054688454, + -0.09120527654886246, + -0.07581083476543427, + 0.058440614491701126, + -0.10131945461034775, + -0.016129354014992714, + -0.08538387715816498, + 0.05188335105776787, + 0.11250221729278564, + 0.02571343630552292, + -0.046410802751779556, + -0.03351137414574623, + 0.051456283777952194, + -0.05524391308426857, + -0.02375953458249569, + 0.017551101744174957, + 0.015847980976104736, + -0.10280276089906693, + 0.028751088306307793, + -0.06517082452774048, + 0.05934521183371544, + -0.0794801115989685, + 0.15510199964046478, + -0.013200648128986359, + -0.06854457408189774, + -0.07437928766012192, + 0.025352315977215767, + -0.006819678470492363, + 0.03801553323864937, + 0.028141608461737633, + 0.061457544565200806, + 0.019665881991386414, + -0.0542270727455616, + 0.13810986280441284, + 0.020569251850247383, + -0.0248253270983696, + -0.07060646265745163, + -0.039414022117853165, + -0.05000360682606697, + 0.02745663933455944, + 0.03320255130529404, + -0.10911651700735092, + -0.031119652092456818, + 0.03785828873515129, + -0.03898182511329651, + 0.0671602189540863, + 0.13517501950263977, + 0.042723946273326874, + -0.12259938567876816 + ] + }, + "p244_052.wav": { + "name": "p244", + "embedding": [ + 0.02461729198694229, + 0.11220350861549377, + 0.00576367974281311, + 0.019884226843714714, + -0.04553502798080444, + 0.09078769385814667, + -0.1215575635433197, + 0.1318088173866272, + -0.07248298823833466, + 0.1112847551703453, + -0.08531473577022552, + 0.0903068482875824, + -0.046396393328905106, + -0.16560135781764984, + -0.0748433843255043, + 0.03916962072253227, + -0.023979267105460167, + -0.00828811526298523, + 0.019866470247507095, + -0.017199667170643806, + 0.034716784954071045, + 0.024099452421069145, + 0.031233252957463264, + 0.047742970287799835, + 0.02351890131831169, + 0.04149694740772247, + -0.0010612073820084333, + 0.06147298216819763, + 0.02914806455373764, + -0.0073667969554662704, + -0.0359785333275795, + 0.1282387673854828, + -0.04221896827220917, + 0.022699439898133278, + 0.05404910445213318, + 0.008744747377932072, + 0.00874701701104641, + -0.04250281676650047, + -0.0013972679153084755, + -0.014133111573755741, + -0.06006339192390442, + 0.07375790178775787, + 0.046959202736616135, + 0.015315026976168156, + 0.037660617381334305, + -0.0009997468441724777, + -0.005216027610003948, + -0.03204164654016495, + -0.10133330523967743, + 0.1442474126815796, + 0.054993636906147, + -0.019869307056069374, + -0.08211657404899597, + -0.05116325616836548, + 0.12014009058475494, + -0.022556878626346588, + -0.11318440735340118, + -0.016502240672707558, + 0.09668166935443878, + 0.16815432906150818, + -0.008910097181797028, + -0.02278093434870243, + 0.008447269909083843, + 0.11771362274885178, + 0.0171053446829319, + 0.0892338976264, + 0.05988588184118271, + 0.09027130901813507, + 0.002936731092631817, + 0.017418542876839638, + 0.03888275474309921, + 0.03919089213013649, + -0.016603533178567886, + -0.05297697335481644, + -0.008933966048061848, + -0.01466728001832962, + -0.01987205632030964, + 0.053971461951732635, + -0.007564156781882048, + -0.014675319194793701, + -0.03689700365066528, + -0.0019894482102245092, + -0.03175489977002144, + -0.003526933491230011, + -0.031240373849868774, + 0.04904472082853317, + -0.018115155398845673, + 0.006456083618104458, + 0.08571235090494156, + 0.061489421874284744, + -0.013132041320204735, + 0.04120257869362831, + -0.03525439277291298, + -0.053384676575660706, + -0.0025698337703943253, + 0.011682536453008652, + 0.0021088719367980957, + 0.103084035217762, + 0.015489468351006508, + -0.0075929369777441025, + 0.11186592280864716, + 0.048607371747493744, + 0.017590107396245003, + 0.025880703702569008, + -0.1165463998913765, + 0.11485552787780762, + 0.06032179296016693, + -0.006168113090097904, + 0.054958827793598175, + -0.020840175449848175, + 0.07374560832977295, + 0.08006364107131958, + -0.13088193535804749, + -0.049307700246572495, + 0.05015387758612633, + 0.053890161216259, + 0.017599359154701233, + 0.09057211875915527, + -0.006140542216598988, + -0.013789824210107327, + 0.07432764768600464, + -0.059044960886240005, + -0.06589166074991226, + -0.04651696979999542, + 0.059359584003686905, + -0.05485941097140312, + 0.04034537449479103, + 0.04481913894414902, + -0.004485502373427153, + -0.015887927263975143, + 0.04910779371857643, + -0.005915951449424028, + -0.0010451485868543386, + 0.05398301035165787, + -0.049914829432964325, + 0.025554336607456207, + -0.03148936852812767, + 0.024627970531582832, + 0.03483326733112335, + 0.04228203371167183, + 0.056894294917583466, + 0.02319403737783432, + -0.026692498475313187, + -0.07117032259702682, + -0.025391101837158203, + 0.07293614745140076, + 0.06483370065689087, + -0.012316869571805, + -0.05095524340867996, + -0.05656690150499344, + -0.053292274475097656, + 0.03591407835483551, + 0.014254285022616386, + 0.10420675575733185, + -0.012310061603784561, + -0.009402175433933735, + 0.08443333208560944, + 0.021613098680973053, + -0.012500266544520855, + -0.07796072214841843, + -0.007898930460214615, + -0.009853281080722809, + 0.02404339239001274, + -0.0710131824016571, + -0.06594668328762054, + 0.012925908900797367, + 0.033652301877737045, + -0.02251022681593895, + 0.02441975474357605, + 0.04228997230529785, + 0.011201804503798485, + 0.051938001066446304, + -0.08097703754901886, + 0.03697438910603523, + -0.09129761904478073, + -0.052359070628881454, + -0.0262919832020998, + 0.0056367493234574795, + -0.006701742764562368, + 0.0776686817407608, + 0.04400784522294998, + 0.010905489325523376, + 0.04755881801247597, + -0.081350177526474, + -0.050006281584501266, + 0.06667609512805939, + 0.0676199346780777, + 0.005168521776795387, + 0.07405666261911392, + 0.06712150573730469, + -0.0817323848605156, + 0.07908907532691956, + 0.06922781467437744, + 0.07884333282709122, + -0.04767966270446777, + 0.013489321805536747, + -0.04463464021682739, + 0.03492811322212219, + 0.06259921193122864, + -0.12189766764640808, + -0.11362707614898682, + -0.02967889793217182, + -0.0356282964348793, + 0.035641077905893326, + -0.01859964244067669, + 0.009658269584178925, + -0.005589451640844345, + -0.03788786008954048, + -0.08369266986846924, + -0.09335709363222122, + 0.07418875396251678, + -0.055459871888160706, + -0.023473430424928665, + -0.06079328805208206, + 0.046317920088768005, + 0.07799415290355682, + 0.014707422815263271, + -0.024482211098074913, + 0.0015435069799423218, + 0.033230993896722794, + -0.06597688794136047, + -0.036313995718955994, + 0.04239746183156967, + -0.006132114678621292, + -0.10634181648492813, + 0.0341251865029335, + -0.07060961425304413, + 0.11117818206548691, + -0.041971705853939056, + 0.16613945364952087, + -0.016668274998664856, + -0.06820325553417206, + -0.0623968169093132, + 0.02231348678469658, + -0.026286892592906952, + 0.017103224992752075, + 0.02587055414915085, + 0.04509027674794197, + -0.012744843028485775, + -0.016076557338237762, + 0.1124788373708725, + 0.027185829356312752, + -0.05542168766260147, + -0.05452360212802887, + -0.021760813891887665, + -0.033542174845933914, + 0.01871402934193611, + 0.01952582411468029, + -0.09221219271421432, + -0.027059849351644516, + 0.01278475858271122, + -0.021847978234291077, + 0.07726338505744934, + 0.12456287443637848, + 0.07813167572021484, + -0.1188732385635376 + ] + }, + "p244_353.wav": { + "name": "p244", + "embedding": [ + 0.043939970433712006, + 0.10691487789154053, + -0.03382353112101555, + 0.024774219840765, + -0.06259916722774506, + 0.04711415618658066, + -0.14136506617069244, + 0.14516456425189972, + -0.02197573333978653, + 0.12541812658309937, + -0.06838381290435791, + 0.12074869871139526, + -0.029490657150745392, + -0.1730169951915741, + -0.0169266015291214, + 0.06136977672576904, + -0.024157673120498657, + -0.027413394302129745, + -0.023489084094762802, + -0.03913910314440727, + 0.026756517589092255, + 0.027055714279413223, + 0.02038307674229145, + 0.006067059934139252, + 0.027422845363616943, + 0.07447230815887451, + -0.01915745995938778, + 0.012766714207828045, + -0.013059066608548164, + -0.020452678203582764, + -0.042938947677612305, + 0.09641903638839722, + -0.04826776683330536, + -0.001437250291928649, + 0.04582596942782402, + -0.011489923112094402, + -0.01030330266803503, + -0.05598995089530945, + -0.00026965251890942454, + -0.004197809379547834, + -0.04700184985995293, + 0.07193886488676071, + 0.024902895092964172, + -0.026057027280330658, + 0.04780525714159012, + 0.016849588602781296, + -0.012146556749939919, + -0.031586647033691406, + -0.10496874153614044, + 0.14691615104675293, + 0.07423444092273712, + -0.0008038997184485197, + -0.08242611587047577, + -0.038067616522312164, + 0.09638342261314392, + -0.0076970322988927364, + -0.09671672433614731, + -0.03786900267004967, + 0.07513648271560669, + 0.13381272554397583, + -0.029442651197314262, + -0.03760174661874771, + 0.03242933750152588, + 0.12780199944972992, + 0.05309326946735382, + 0.07383023947477341, + 0.07119062542915344, + 0.1162438690662384, + -0.03798314929008484, + 0.002081445185467601, + 0.05844908207654953, + 0.061394400894641876, + 0.060104578733444214, + -0.02254362404346466, + 0.00842240173369646, + -0.02575605735182762, + -0.01775575987994671, + -0.017861973494291306, + -0.032954730093479156, + -0.04290040582418442, + -0.029251541942358017, + -0.006941178347915411, + -0.004586758092045784, + 0.02825237065553665, + -0.02763018012046814, + 0.044173017144203186, + 0.0750226154923439, + -0.032377734780311584, + 0.07098361104726791, + 0.04978755861520767, + -0.003548018168658018, + 0.058121442794799805, + -0.09239117801189423, + -0.060137294232845306, + 0.05180661007761955, + -0.002339379396289587, + 0.018108706921339035, + 0.07394929230213165, + 0.04876463860273361, + -0.011561593972146511, + 0.11747635900974274, + 0.049650516360998154, + 0.0027373291086405516, + 0.014396516606211662, + -0.0818329006433487, + 0.13982510566711426, + 0.09525132179260254, + -0.04213577136397362, + 0.042720548808574677, + -0.0363873690366745, + 0.04285022243857384, + 0.062207844108343124, + -0.12231659144163132, + -0.059776198118925095, + 0.017880823463201523, + 0.02003583498299122, + -0.01886848174035549, + 0.10633452981710434, + 0.008891570381820202, + 0.044902052730321884, + 0.10354335606098175, + -0.08470162749290466, + -0.07425521314144135, + -0.034826043993234634, + 0.047132622450590134, + -0.08839268982410431, + 0.06450497359037399, + 0.08593564480543137, + 0.0030951513908803463, + 0.01817740686237812, + 0.06573298573493958, + 0.0024766316637396812, + 0.0007607733714394271, + 0.007003994192928076, + -0.03736093267798424, + 0.01061282865703106, + -0.01007426530122757, + 0.0012555706780403852, + 0.025982683524489403, + 0.020591700449585915, + 0.05436306446790695, + -0.0006632544100284576, + 0.005667123943567276, + -0.11041754484176636, + 0.015894755721092224, + 0.047319523990154266, + 0.07157841324806213, + -0.017311550676822662, + -0.027808040380477905, + -0.02620134875178337, + -0.06364040821790695, + 0.005542825907468796, + -0.007868200540542603, + 0.06593191623687744, + -0.03174726665019989, + -0.001960505498573184, + 0.10873977839946747, + 0.04383071884512901, + 0.0022285464219748974, + -0.04395073652267456, + -0.020196333527565002, + 0.012962227687239647, + 0.04972103238105774, + -0.09548301994800568, + -0.08497324585914612, + -0.028217127546668053, + 0.033452823758125305, + -0.016314763575792313, + 0.07153943181037903, + 0.04869813472032547, + 0.010796202346682549, + 0.012075768783688545, + -0.06252385675907135, + 0.024236634373664856, + -0.07974513620138168, + -0.05849669873714447, + -0.020876843482255936, + -0.03045497089624405, + -0.031504787504673004, + 0.07692693173885345, + 0.030361225828528404, + 0.05152229219675064, + -0.034591592848300934, + -0.05497196316719055, + -0.07747530937194824, + 0.03953031823039055, + 0.058082230389118195, + -0.027342036366462708, + 0.035873111337423325, + 0.05944370478391647, + -0.03729637712240219, + 0.0356731116771698, + 0.06934027373790741, + 0.09381049871444702, + -0.037000373005867004, + 0.018823441118001938, + -0.06490135192871094, + 0.07236181944608688, + 0.09311109781265259, + -0.08784578740596771, + -0.08716148138046265, + -0.05564112961292267, + -0.05037158355116844, + 0.023461824283003807, + -0.0335405170917511, + 0.01222970336675644, + 0.02390909194946289, + -0.012353017926216125, + -0.09205956757068634, + -0.11025117337703705, + 0.0797870084643364, + -0.06430177390575409, + 0.009054852649569511, + -0.07965712249279022, + 0.05632390081882477, + 0.07357460260391235, + 0.013699891977012157, + -0.043824464082717896, + -0.0116160549223423, + 0.03202202543616295, + -0.016615988686680794, + 0.016063343733549118, + 0.053188424557447433, + 0.04957496374845505, + -0.11299188435077667, + -0.0062429821118712425, + -0.06451284140348434, + 0.07691487669944763, + -0.03716975077986717, + 0.1552359163761139, + 0.02833961695432663, + -0.03954467177391052, + -0.08787109702825546, + 0.03880289942026138, + -0.013706794008612633, + 0.04677604138851166, + 0.0314050018787384, + 0.06105167791247368, + 0.020481619983911514, + -0.05866445600986481, + 0.10519498586654663, + 0.04149964451789856, + -0.04062721133232117, + -0.07529982924461365, + -0.04706866666674614, + -0.04687320813536644, + 0.030921760946512222, + 0.01699727028608322, + -0.08952122926712036, + -0.020645545795559883, + 0.018967652693390846, + 0.0038050522562116385, + 0.07898121327161789, + 0.12863728404045105, + 0.06583650410175323, + -0.1036527007818222 + ] + }, + "p244_164.wav": { + "name": "p244", + "embedding": [ + 0.0594656839966774, + 0.10709811747074127, + -0.009478701278567314, + 0.014008665457367897, + -0.04990536719560623, + 0.07834392786026001, + -0.14610826969146729, + 0.15572059154510498, + -0.03834958374500275, + 0.14458638429641724, + -0.05045820772647858, + 0.11260189116001129, + -0.020351529121398926, + -0.17301446199417114, + -0.019511312246322632, + 0.060571715235710144, + -0.04906829446554184, + -0.03699567914009094, + -0.018836725503206253, + -0.026801511645317078, + 0.015098942443728447, + 0.03914260119199753, + 0.020265765488147736, + 0.011904153972864151, + 0.055603377521038055, + 0.07252798974514008, + -0.018950436264276505, + 0.028585443273186684, + -0.010216201655566692, + -0.07654242217540741, + -0.03248701989650726, + 0.09222359955310822, + -0.06877975165843964, + 0.017660843208432198, + 0.0494048148393631, + -0.01843917928636074, + -0.010575932450592518, + -0.06733650714159012, + -0.02305220626294613, + 6.938248407095671e-05, + -0.04125489294528961, + 0.09556032717227936, + 0.03692626953125, + -0.010760156437754631, + 0.01643647439777851, + 0.02905668318271637, + 0.003687824122607708, + -0.05119138956069946, + -0.10591503977775574, + 0.1611585021018982, + 0.05903426185250282, + -0.002332336502149701, + -0.07803048193454742, + -0.0695740357041359, + 0.0932781994342804, + -0.011613067239522934, + -0.11296188831329346, + -0.029901567846536636, + 0.07225608825683594, + 0.14319384098052979, + -0.030803438276052475, + -0.0417182520031929, + 0.025613486766815186, + 0.128589928150177, + 0.05874600261449814, + 0.09313248097896576, + 0.06954358518123627, + 0.11018253117799759, + -0.02993832528591156, + 0.022344328463077545, + 0.057668283581733704, + 0.057046227157115936, + 0.05641727149486542, + -0.017789684236049652, + 0.016078609973192215, + -0.0170163344591856, + -0.020496416836977005, + -0.02113696187734604, + -0.013186370953917503, + -0.025964956730604172, + -0.0121114831417799, + 0.0024513863027095795, + 0.008113515563309193, + 0.03615376353263855, + -0.011661062017083168, + 0.04284850135445595, + 0.044131629168987274, + -0.018957529217004776, + 0.08339321613311768, + 0.03797092288732529, + 0.021465379744768143, + 0.0708024799823761, + -0.09454603493213654, + -0.0607772096991539, + 0.0449020117521286, + 0.001478975173085928, + 0.03833973407745361, + 0.08255483955144882, + 0.04951360821723938, + -0.009843872860074043, + 0.12479770183563232, + 0.04491530358791351, + 0.006890221498906612, + 0.006743225269019604, + -0.09826315939426422, + 0.14281581342220306, + 0.06024184450507164, + -0.035629577934741974, + 0.06203886866569519, + -0.049200527369976044, + 0.0762380063533783, + 0.07117051631212234, + -0.15567734837532043, + -0.07161803543567657, + 0.020707186311483383, + 0.009617948904633522, + -0.026887325569987297, + 0.1291286051273346, + 0.0006019645370543003, + 0.03635036200284958, + 0.08926235884428024, + -0.0951957032084465, + -0.0520201250910759, + -0.011026940308511257, + 0.05075107142329216, + -0.10613619536161423, + 0.06694957613945007, + 0.0646403357386589, + -0.02390226349234581, + 0.03278383985161781, + 0.08511307835578918, + -0.0027913691010326147, + 0.004280788358300924, + 0.014742509461939335, + -0.029447827488183975, + 0.009352752938866615, + -0.024173688143491745, + 0.019747614860534668, + 0.011975567787885666, + 0.01541026122868061, + 0.051368460059165955, + -0.010944240726530552, + -0.021711276844143867, + -0.10878575593233109, + 0.01868097484111786, + 0.031388815492391586, + 0.07991840690374374, + -0.01489272527396679, + -0.029355479404330254, + -0.021170616149902344, + -0.0625380128622055, + 0.009269311092793941, + -0.0035207602195441723, + 0.0640183687210083, + -0.006121315993368626, + 0.003834654577076435, + 0.11720642447471619, + 0.06327647715806961, + 0.002736604306846857, + -0.059557244181632996, + -0.024205023422837257, + 0.015541747212409973, + 0.0673469677567482, + -0.09150288999080658, + -0.06817245483398438, + -0.001982145244255662, + 0.020541556179523468, + -0.023838162422180176, + 0.07395950704813004, + 0.04975065961480141, + 0.032182611525058746, + 0.014874253422021866, + -0.0633438229560852, + 0.016460036858916283, + -0.08519095182418823, + -0.07817889750003815, + -0.01045701839029789, + -0.01665334962308407, + -0.04219694808125496, + 0.0875631719827652, + 0.021297477185726166, + 0.05953603237867355, + -0.03363807871937752, + -0.05494934320449829, + -0.06964477896690369, + 0.05072474107146263, + 0.056322548538446426, + -0.02381245605647564, + 0.02447160705924034, + 0.05777783691883087, + -0.03476788476109505, + 0.040135473012924194, + 0.059586044400930405, + 0.11007022112607956, + -0.04677971452474594, + 0.032591432332992554, + -0.06050638109445572, + 0.07805934548377991, + 0.07897111773490906, + -0.0944739356637001, + -0.07798964530229568, + -0.02272661402821541, + -0.062202565371990204, + 0.02518220990896225, + -0.021116480231285095, + 0.009551675990223885, + 0.011311385780572891, + -0.012302102521061897, + -0.09029628336429596, + -0.09280556440353394, + 0.08553604781627655, + -0.07617902010679245, + -0.0009349153842777014, + -0.09397603571414948, + 0.0600925013422966, + 0.08066295087337494, + 0.06040782481431961, + -0.024022653698921204, + -0.014285099692642689, + 0.05054769665002823, + -0.01797836646437645, + 0.017552226781845093, + 0.085203155875206, + 0.040570832788944244, + -0.10100072622299194, + -0.007374167907983065, + -0.0655958279967308, + 0.06040674448013306, + -0.04505102336406708, + 0.1660071611404419, + 0.009140953421592712, + -0.06578747183084488, + -0.08166655898094177, + 0.027246372774243355, + -0.019429907202720642, + 0.043643347918987274, + 0.030838103964924812, + 0.057012416422367096, + 0.058647431433200836, + -0.038849279284477234, + 0.10850533097982407, + 0.040856122970581055, + -0.026720594614744186, + -0.051427848637104034, + -0.055083267390728, + -0.041140928864479065, + 0.04029040038585663, + 0.0024347722064703703, + -0.1077069416642189, + -0.014998281374573708, + 0.03404555842280388, + 0.004768904764205217, + 0.0754873976111412, + 0.14448189735412598, + 0.06581549346446991, + -0.12508776783943176 + ] + }, + "p244_230.wav": { + "name": "p244", + "embedding": [ + 0.056013286113739014, + 0.03714391589164734, + -0.006162726785987616, + 0.0007905091042630374, + -0.025705358013510704, + 0.06713633239269257, + -0.14226174354553223, + 0.11263689398765564, + -0.05571219325065613, + 0.08893713355064392, + -0.055112458765506744, + 0.0731644481420517, + -0.010182168334722519, + -0.14791817963123322, + -0.02855006977915764, + 0.06242036819458008, + -0.021413318812847137, + -0.022249605506658554, + -0.04029892757534981, + -0.006370568182319403, + 0.008403691463172436, + 0.031938906759023666, + 0.00801350362598896, + -0.01641983352601528, + 0.027265042066574097, + 0.05362307280302048, + -0.00018361459660809487, + 0.01898009516298771, + -0.027236532419919968, + 0.0019029267132282257, + 0.0025387518107891083, + 0.09532196819782257, + -0.037012532353401184, + -0.030520524829626083, + 0.05299223214387894, + 0.010502032935619354, + 0.0012134239077568054, + -0.09347701072692871, + -0.004099187906831503, + -0.006725732237100601, + -0.06607513129711151, + 0.07849696278572083, + 0.055674102157354355, + 0.01100136712193489, + 0.01824071630835533, + 0.006606068462133408, + -0.004261543974280357, + -0.05974356457591057, + -0.11420981585979462, + 0.15129908919334412, + 0.02386198565363884, + 0.03897732496261597, + -0.10510300099849701, + -0.029018577188253403, + 0.07838630676269531, + 0.00835583359003067, + -0.056262172758579254, + -0.07234429568052292, + 0.04734432324767113, + 0.15339669585227966, + -0.002796964254230261, + -0.03464989364147186, + 0.027139555662870407, + 0.09072297811508179, + 0.03211933374404907, + 0.06043105572462082, + 0.09267735481262207, + 0.0948609709739685, + 0.01259525865316391, + 0.026584986597299576, + 0.05674136430025101, + 0.027040211483836174, + 0.017330823466181755, + -0.025926560163497925, + 0.03535137325525284, + -0.02139151841402054, + -0.03667180985212326, + 0.005609530955553055, + -0.02083970420062542, + -0.045055702328681946, + 0.013960529118776321, + 0.012674015015363693, + 0.024131156504154205, + 0.05503500625491142, + -0.04470612108707428, + 0.03360062465071678, + 0.03432310372591019, + -0.01707579381763935, + 0.08083848655223846, + 0.044244568794965744, + 0.004788603167980909, + 0.020985690876841545, + -0.060382239520549774, + -0.08003890514373779, + 0.022601094096899033, + 0.012500055134296417, + 0.01914467290043831, + 0.030573755502700806, + 0.01478942297399044, + -0.02975829504430294, + 0.0911652073264122, + -0.005542195402085781, + 0.015651334077119827, + 0.008869946002960205, + -0.07910382002592087, + 0.10676756501197815, + 0.0715847983956337, + -0.01695254072546959, + 0.021068355068564415, + -0.046003829687833786, + 0.010163719765841961, + 0.07535072416067123, + -0.10606637597084045, + -0.058830954134464264, + 0.055338650941848755, + 0.017236042767763138, + 0.023401563987135887, + 0.14160703122615814, + 0.02438358962535858, + 0.010803459212183952, + 0.07776294648647308, + -0.09656594693660736, + -0.053666189312934875, + 0.007733501028269529, + 0.02650153636932373, + -0.03803712874650955, + 0.030671386048197746, + 0.05915973335504532, + 0.012527081184089184, + -0.0209103561937809, + 0.0619325265288353, + 0.00918325874954462, + 0.009638451039791107, + -0.031693607568740845, + 0.013476742431521416, + 0.07048434019088745, + -0.006475945934653282, + -0.022134929895401, + 0.03836553916335106, + 0.0501384399831295, + 0.026009608060121536, + 0.018488086760044098, + -0.03790687769651413, + -0.11187230050563812, + -0.029584437608718872, + 0.05646776407957077, + 0.06525199115276337, + -0.04061385989189148, + -0.030117198824882507, + -0.06170855462551117, + -0.030808523297309875, + -0.012271692976355553, + -0.002872450975701213, + 0.08010086417198181, + 0.042493920773267746, + -0.009057383984327316, + 0.08383893221616745, + -0.007440716028213501, + 0.03570020943880081, + -0.034287407994270325, + -0.004831552505493164, + 0.03721839562058449, + 0.03959018737077713, + -0.032654035836458206, + -0.05974603816866875, + -0.003963192459195852, + 0.014841060154139996, + -0.02452170103788376, + 0.0013139372458681464, + 0.0249284990131855, + 0.0124655244871974, + -0.007256511598825455, + -0.0891616940498352, + 0.0518822968006134, + -0.09128762781620026, + -0.01488957554101944, + 0.03961503505706787, + -0.02482362650334835, + -0.02994430810213089, + 0.09405364841222763, + 0.022211674600839615, + 0.03581884503364563, + -0.03610766679048538, + -0.08008735626935959, + -0.027728348970413208, + 0.04441916570067406, + 0.06797396391630173, + -0.03148669749498367, + 0.00954367034137249, + -0.0015327533474192023, + 0.005271201487630606, + 0.01340256817638874, + 0.056852132081985474, + 0.07405798882246017, + -0.03730624169111252, + -0.046241119503974915, + -0.022990159690380096, + 0.11287641525268555, + 0.035534534603357315, + -0.0650450587272644, + -0.05100494250655174, + 0.011640718206763268, + -0.034434724599123, + 0.009442973881959915, + -0.023103205487132072, + 0.019912462681531906, + 0.04292803257703781, + -0.03275977075099945, + -0.1272137612104416, + -0.07149083912372589, + 0.04267006739974022, + -0.07501514256000519, + -0.004336903803050518, + -0.07462344318628311, + 0.038579944521188736, + 0.0790209099650383, + 0.016775555908679962, + -0.01168876327574253, + -0.03275301679968834, + -0.004615466110408306, + -0.06482589244842529, + -0.016674190759658813, + 0.012881053611636162, + 0.030085651203989983, + -0.07199843227863312, + -0.0031549804843962193, + -0.06372497975826263, + 0.07417309284210205, + -0.03465184196829796, + 0.11975656449794769, + 0.0172154288738966, + -0.04511001706123352, + -0.08861349523067474, + -0.00874839536845684, + -0.0005107658798806369, + 0.05078420042991638, + 0.03108431026339531, + 0.04208550974726677, + 0.042323093861341476, + -0.041673868894577026, + 0.08590114116668701, + 0.048882972449064255, + -0.025937674567103386, + -0.054015349596738815, + -0.026187313720583916, + -0.025463899597525597, + 0.038449134677648544, + -0.030729934573173523, + -0.04977121576666832, + 0.020411644130945206, + 0.04302361235022545, + 0.008658559061586857, + 0.05402036011219025, + 0.09839686751365662, + 0.03958921879529953, + -0.08683746308088303 + ] + }, + "p244_178.wav": { + "name": "p244", + "embedding": [ + 0.03712261840701103, + 0.10299722105264664, + -0.00403292803093791, + 0.026907529681921005, + -0.05853986740112305, + 0.03755905106663704, + -0.12841719388961792, + 0.138652503490448, + -0.02681763470172882, + 0.13290223479270935, + -0.08146893233060837, + 0.12259525805711746, + -0.04527243226766586, + -0.19801700115203857, + -0.01635902002453804, + 0.06641770899295807, + -0.014850256964564323, + -0.007043277844786644, + -0.013415524736046791, + -0.021864118054509163, + 0.02971971407532692, + 0.04869363456964493, + 0.032104432582855225, + -0.0032524587586522102, + 0.039779260754585266, + 0.0765891820192337, + -0.0010581850074231625, + 0.04524082690477371, + 0.0003628884442150593, + -0.06143292412161827, + -0.038828812539577484, + 0.10332119464874268, + -0.054013416171073914, + 0.02078835293650627, + 0.052907370030879974, + -0.00028266478329896927, + -0.014157673344016075, + -0.025893185287714005, + -0.0017233524704352021, + 0.0013958578929305077, + -0.0463557168841362, + 0.06737864017486572, + 0.01205834373831749, + -3.2813288271427155e-05, + 0.04619474709033966, + 0.051478177309036255, + -0.004143240861594677, + -0.048191919922828674, + -0.10256132483482361, + 0.1568867266178131, + 0.050495970994234085, + -0.007260498590767384, + -0.07333797961473465, + -0.08386564254760742, + 0.08568930625915527, + -0.018067941069602966, + -0.11281709372997284, + -0.03989407420158386, + 0.10002265870571136, + 0.14609214663505554, + -0.02461106702685356, + -0.053070612251758575, + 0.012777771800756454, + 0.11683471500873566, + 0.023663681000471115, + 0.09530059248209, + 0.0567760095000267, + 0.0915597677230835, + -0.028181027621030807, + 0.012626001611351967, + 0.04473212733864784, + 0.062812939286232, + 0.06605339795351028, + -0.01565207540988922, + 0.006290452554821968, + -0.015162407420575619, + -0.003137855790555477, + 0.011556969955563545, + -0.01576746255159378, + -0.022488679736852646, + -0.020964205265045166, + 0.0021488498896360397, + -0.010705877095460892, + -0.01569433882832527, + -0.00373866967856884, + 0.04473067820072174, + 0.050707243382930756, + -0.0014077355153858662, + 0.08103881776332855, + 0.039343755692243576, + -0.007086962927132845, + 0.06777282804250717, + -0.08286634087562561, + -0.05878179147839546, + 0.03190059959888458, + -0.004369435366243124, + 0.034629739820957184, + 0.07383552938699722, + 0.03243429213762283, + -0.005696788430213928, + 0.11846515536308289, + 0.04383081942796707, + 0.011523867957293987, + 0.01973215863108635, + -0.10149984061717987, + 0.13023534417152405, + 0.08018310368061066, + -0.018835747614502907, + 0.06438010185956955, + -0.03974708169698715, + 0.06656348705291748, + 0.06779806315898895, + -0.13369201123714447, + -0.06812851130962372, + -0.009644665755331516, + 0.00868218857795, + -0.029070354998111725, + 0.11089421808719635, + -0.018454821780323982, + 0.02712063118815422, + 0.11820265650749207, + -0.1116076409816742, + -0.06902912259101868, + -0.020521564409136772, + 0.02741391584277153, + -0.11555635184049606, + 0.05735808610916138, + 0.07042264938354492, + -0.02060883305966854, + 0.03749286010861397, + 0.08846522867679596, + -0.0023412886075675488, + 0.031236154958605766, + 0.005439474247395992, + -0.05126297101378441, + -0.020799510180950165, + -0.03759344667196274, + 0.005050658714026213, + 0.0493328683078289, + 0.03366320580244064, + 0.06276095658540726, + 0.0029723765328526497, + -0.040692634880542755, + -0.12779691815376282, + 0.006258119363337755, + 0.055015888065099716, + 0.053064413368701935, + -0.02270687371492386, + -0.02574940398335457, + -0.024883266538381577, + -0.06726200133562088, + 0.029306646436452866, + 0.0072535243816673756, + 0.06752286106348038, + -0.02773122861981392, + -0.008305350318551064, + 0.12045978009700775, + 0.04753173887729645, + -0.019304681569337845, + -0.07876787334680557, + -0.04941553622484207, + 0.002045764122158289, + 0.03578618913888931, + -0.12068357318639755, + -0.07415036857128143, + -0.024593252688646317, + 0.03917188569903374, + -0.016258222982287407, + 0.067776620388031, + 0.0617227777838707, + 0.018349483609199524, + 0.023837992921471596, + -0.04080554097890854, + 0.0026069162413477898, + -0.08595094829797745, + -0.09882542490959167, + -0.011610809713602066, + -0.02239689975976944, + -0.02791624143719673, + 0.07917069643735886, + 0.002631774637848139, + 0.04317404329776764, + -0.03080374374985695, + -0.0523606538772583, + -0.08598465472459793, + 0.05262487009167671, + 0.04452838748693466, + 0.004893545061349869, + 0.05870331823825836, + 0.042578838765621185, + -0.08084826916456223, + 0.07944075763225555, + 0.061727993190288544, + 0.12253653258085251, + -0.04733484238386154, + 0.05089572072029114, + -0.06677445769309998, + 0.05795943737030029, + 0.09437147527933121, + -0.08475182950496674, + -0.0939042940735817, + -0.0475880429148674, + -0.0678853988647461, + 0.06170334294438362, + -0.02545233443379402, + 0.0018410562770441175, + 0.02366887778043747, + -0.005163310095667839, + -0.07524684071540833, + -0.08914919942617416, + 0.0695025697350502, + -0.037062037736177444, + -0.003804852720350027, + -0.07871198654174805, + 0.06456378102302551, + 0.06850453466176987, + 0.04466533660888672, + -0.02215014584362507, + -0.014458067715168, + 0.05620088428258896, + -0.046637795865535736, + -0.0033499212004244328, + 0.06430047750473022, + 0.04652746021747589, + -0.06467356532812119, + -0.00737482775002718, + -0.08667854964733124, + 0.057117097079753876, + -0.047693487256765366, + 0.16161498427391052, + -0.0028951384592801332, + -0.06593134999275208, + -0.07063286006450653, + 0.03259924054145813, + -0.023492828011512756, + 0.03652738407254219, + 0.03287685662508011, + 0.05605044215917587, + 0.0444687083363533, + -0.050842177122831345, + 0.12692990899085999, + 0.035019032657146454, + -0.0317072719335556, + -0.04341932758688927, + -0.05827448517084122, + -0.05472496151924133, + 0.029848232865333557, + -0.01177220605313778, + -0.1171531230211258, + -0.024804072454571724, + 0.022816404700279236, + 0.01220932137221098, + 0.05075586214661598, + 0.1443537473678589, + 0.04555417224764824, + -0.1103561520576477 + ] + }, + "p244_040.wav": { + "name": "p244", + "embedding": [ + 0.04495055601000786, + 0.08091925084590912, + -0.023899100720882416, + 0.06364770233631134, + 0.0043339719995856285, + 0.017842553555965424, + -0.15235336124897003, + 0.10670260339975357, + 0.007963153533637524, + 0.12191521376371384, + -0.08412328362464905, + 0.10776207596063614, + -0.0026113111525774, + -0.19686566293239594, + -0.025430435314774513, + 0.04363745450973511, + 0.0063882204703986645, + -0.0392884835600853, + 0.04481268301606178, + 0.020669160410761833, + 0.06594237685203552, + 0.0764748603105545, + 0.004484226461499929, + -0.007977046072483063, + 0.030034303665161133, + 0.037923891097307205, + 0.002517371205613017, + 0.04114250838756561, + 0.0273317638784647, + 0.012979288585484028, + 0.014537165872752666, + 0.1215284988284111, + -0.018760859966278076, + 0.010456711985170841, + 0.03460221737623215, + 0.021090570837259293, + -0.003616174915805459, + -0.05582403019070625, + -0.0283343605697155, + 0.006691006477922201, + -0.07339166104793549, + 0.06644338369369507, + 0.05084121599793434, + -0.02697248011827469, + 0.04172699525952339, + 0.023947030305862427, + -0.01215349417179823, + -0.038375936448574066, + -0.0995880514383316, + 0.15816575288772583, + 0.06119965761899948, + 0.03348084166646004, + -0.08770403265953064, + -0.05057140439748764, + 0.07704555243253708, + 0.044308632612228394, + -0.046811506152153015, + -0.013155868276953697, + 0.08359432965517044, + 0.18490557372570038, + 0.013240848667919636, + -0.03752153739333153, + 0.046499382704496384, + 0.13724452257156372, + 0.06937169283628464, + 0.06601040065288544, + 0.07093054801225662, + 0.11323708295822144, + 0.018576711416244507, + -0.0031576817855238914, + 0.0498509481549263, + 0.08755046129226685, + 0.014901616610586643, + -0.058390967547893524, + -0.019455134868621826, + 0.033823806792497635, + -0.06609778106212616, + -0.005165450274944305, + -0.009029597975313663, + -0.005711965728551149, + 0.00858728401362896, + -0.013741516508162022, + -0.005588752217590809, + 0.06467785686254501, + -0.028528055176138878, + 0.00831794273108244, + 0.08257483690977097, + -0.03213237598538399, + 0.060412608087062836, + 0.036047499626874924, + 0.03468085080385208, + 0.03456924483180046, + -0.08877044171094894, + -0.10367810726165771, + 0.018753085285425186, + 0.019932083785533905, + 0.001656953594647348, + 0.0951651781797409, + 0.06465445458889008, + -0.02606094628572464, + 0.12595856189727783, + -0.010712393559515476, + -0.014769189059734344, + 0.009770405478775501, + -0.09444763511419296, + 0.10428347438573837, + 0.0815771222114563, + -0.02266279049217701, + 0.0435517318546772, + -0.051708173006772995, + 0.024538608267903328, + 0.07642997056245804, + -0.14907562732696533, + -0.05421648919582367, + 0.08253740519285202, + 0.03526829183101654, + 0.01327831856906414, + 0.1492481231689453, + 0.03444350138306618, + 0.03188977390527725, + 0.08572719991207123, + -0.08569172769784927, + -0.09323955327272415, + -0.07331091910600662, + 0.07598268240690231, + -0.07419396936893463, + 0.08765041083097458, + 0.028623564168810844, + -0.001634847023524344, + -0.03797255828976631, + 0.0289253331720829, + -0.02151227928698063, + 0.029429927468299866, + -0.05495020002126694, + -0.015399664640426636, + 0.07979043573141098, + -0.0740356594324112, + 0.021387577056884766, + 0.006761624943464994, + -0.01709704101085663, + 0.05385821685194969, + 0.03471032530069351, + -0.03326821327209473, + -0.12563538551330566, + 0.003685401752591133, + 0.05497492477297783, + 0.09479479491710663, + -0.019053932279348373, + -0.07465942949056625, + -0.06583745777606964, + -0.05240589380264282, + 0.037893157452344894, + -0.028790488839149475, + 0.06153125315904617, + 0.038089219480752945, + -0.01391951460391283, + 0.10477640479803085, + -0.047057848423719406, + 0.030479364097118378, + -0.0016953053418546915, + -0.015339018777012825, + -0.007733749225735664, + 0.018341461196541786, + -0.0906587690114975, + -0.08532994240522385, + -0.02004626952111721, + -0.011209310963749886, + -0.019155094400048256, + 0.006984043400734663, + 0.00710704131051898, + 0.025630448013544083, + 0.0109371617436409, + -0.07828947901725769, + -0.02800135686993599, + -0.11755731701850891, + -0.07833923399448395, + -0.0259071234613657, + 0.02926010638475418, + -0.0016416204161942005, + 0.07786545902490616, + 0.04187348112463951, + 0.020147088915109634, + 0.0015260165091603994, + -0.048953574150800705, + -0.0736822634935379, + 0.03856421262025833, + 0.070896677672863, + -0.004274791106581688, + 0.05022195726633072, + 0.037424735724925995, + -0.024672996252775192, + 0.027671197429299355, + 0.04090285301208496, + 0.07970910519361496, + -0.006848360877484083, + -0.022482862696051598, + -0.06558993458747864, + 0.13110531866550446, + 0.11166006326675415, + -0.08023499697446823, + -0.08536139130592346, + -0.023370882496237755, + -0.08703171461820602, + 0.009509020484983921, + -0.02097439020872116, + 0.028122292831540108, + -0.00030433348729275167, + -0.03710223734378815, + -0.11090395599603653, + -0.09562809020280838, + 0.025277476757764816, + -0.05576304718852043, + -0.05077287554740906, + -0.10832804441452026, + 0.04808374494314194, + 0.09711091220378876, + 0.01782788150012493, + -0.02110099047422409, + -0.03539315611124039, + 0.030252281576395035, + -0.06695185601711273, + -0.03145667165517807, + 0.05306421220302582, + 0.02451188676059246, + -0.13823451101779938, + -0.019514748826622963, + -0.03546757251024246, + 0.09687231481075287, + -0.09072501212358475, + 0.101354219019413, + 0.021578939631581306, + -0.08464367687702179, + -0.10189229995012283, + 0.039914533495903015, + 0.04118196293711662, + 0.05118982493877411, + 0.008239515125751495, + 0.030299313366413116, + 0.018764406442642212, + -0.07884528487920761, + 0.09468279033899307, + 0.04409037530422211, + 0.01662810891866684, + -0.09230504930019379, + -0.05334858596324921, + -0.012485414743423462, + 0.056828539818525314, + 0.015249905176460743, + -0.05182284861803055, + -0.016369830816984177, + 0.035126689821481705, + -0.006698464043438435, + 0.030547412112355232, + 0.11847157776355743, + 0.03373018279671669, + -0.12432920932769775 + ] + }, + "p244_112.wav": { + "name": "p244", + "embedding": [ + -0.0009802263230085373, + 0.08174587786197662, + -0.022297613322734833, + 0.05671565979719162, + -0.07533954083919525, + 0.04122024402022362, + -0.07901707291603088, + 0.07334195077419281, + -0.040008895099163055, + 0.09940716624259949, + -0.074732705950737, + 0.10062313079833984, + -0.058968156576156616, + -0.16907745599746704, + 0.011732298880815506, + 0.07067835330963135, + -0.010217098519206047, + 0.015776891261339188, + -0.054323963820934296, + -0.03308413177728653, + 0.02753547951579094, + 0.004149802029132843, + 0.07034067809581757, + -0.07410216331481934, + 0.016815539449453354, + 0.0816277414560318, + 0.020690444856882095, + 0.03366517275571823, + -0.01031907182186842, + -0.056505244225263596, + -0.046657562255859375, + 0.10779893398284912, + -0.03677147626876831, + -0.02187792956829071, + 0.03771497309207916, + -0.01023287232965231, + -0.039262332022190094, + -0.03292806074023247, + 0.03921150416135788, + -0.012086894363164902, + -0.04110576957464218, + 0.04990589618682861, + 0.002277469728142023, + -0.022117502987384796, + 0.053709499537944794, + -0.029078945517539978, + -0.05086686089634895, + 0.008605746552348137, + -0.10042262077331543, + 0.12241555750370026, + 0.06355815380811691, + -0.009840436279773712, + -0.07614320516586304, + -0.06971330940723419, + 0.09044612944126129, + 0.026915261521935463, + -0.11820939183235168, + -0.05908767879009247, + 0.08081290125846863, + 0.1179690808057785, + -0.00016829418018460274, + -0.0023905811831355095, + 0.018842794001102448, + 0.07030780613422394, + -0.009298200719058514, + 0.10999328643083572, + 0.048297613859176636, + 0.08664128929376602, + 0.0066216373816132545, + 0.05596403032541275, + 0.0380781926214695, + 0.05797659605741501, + 0.005250042304396629, + -0.020069502294063568, + 0.017919423058629036, + -0.054512910544872284, + -0.024967892095446587, + -3.842124715447426e-05, + -0.009181708097457886, + -0.07244692742824554, + -0.022843975573778152, + -0.04403878375887871, + 0.024410400539636612, + -0.052098535001277924, + -0.009675349108874798, + 0.03293566405773163, + 0.07328155636787415, + -0.012279498390853405, + 0.08596457540988922, + 0.052158892154693604, + -0.03150991350412369, + 0.051902152597904205, + -0.055141765624284744, + -0.06645189225673676, + -0.0039552850648760796, + 0.01636188104748726, + 0.020017027854919434, + 0.06412402540445328, + 0.030177609995007515, + -0.009816373698413372, + 0.07664959132671356, + 0.07388676702976227, + 0.024874798953533173, + 0.0273908618837595, + -0.06444159895181656, + 0.09397181123495102, + 0.11117450892925262, + -0.002812185324728489, + 0.04502446949481964, + -0.019359134137630463, + 0.06258551776409149, + 0.06892985850572586, + -0.07889647036790848, + -0.061794668436050415, + -0.058790531009435654, + -0.04438777267932892, + -0.028374426066875458, + 0.09670434892177582, + -0.004261840134859085, + -0.004163431003689766, + 0.12552669644355774, + -0.12190863490104675, + -0.08938755095005035, + -0.03409399837255478, + 0.023814234882593155, + -0.0643991008400917, + 0.03387078270316124, + 0.07639537751674652, + -0.030473146587610245, + 0.02189747989177704, + 0.049688275903463364, + -0.013621720485389233, + 0.04722753167152405, + 0.05327651649713516, + -0.07378670573234558, + 0.009556584060192108, + -0.04394747316837311, + -0.00473697017878294, + 0.09845617413520813, + 0.05024895817041397, + 0.07578941434621811, + -0.041455067694187164, + 0.020339036360383034, + -0.07199618965387344, + -0.00032202573493123055, + 0.06411229074001312, + 0.005231868475675583, + -0.03483327478170395, + 0.001881057396531105, + -0.017777256667613983, + -0.10686129331588745, + 0.0411837063729763, + -0.01494716014713049, + 0.09120506793260574, + -0.022627366706728935, + -0.009103327989578247, + 0.11127546429634094, + 0.05352877080440521, + -0.025964023545384407, + -0.09588244557380676, + -0.06749939918518066, + 0.05777214094996452, + 0.02400066889822483, + -0.13540257513523102, + -0.05402431637048721, + -0.04703710973262787, + 0.014835123904049397, + -0.015248063951730728, + 0.028131704777479172, + 0.07688596844673157, + 0.02474958449602127, + 0.013577042147517204, + -0.03989001363515854, + 0.057824112474918365, + -0.04226052016019821, + -0.03806401416659355, + -0.023969005793333054, + -0.08808296173810959, + -0.024581748992204666, + 0.09127004444599152, + -0.00015879381680861115, + -0.0023662401363253593, + -0.011115769855678082, + -0.03736710548400879, + -0.06828293949365616, + 0.04172505810856819, + 0.03899235278367996, + -0.013100661337375641, + 0.07425445318222046, + 0.03501540422439575, + -0.07611650973558426, + 0.03888406977057457, + 0.05817209929227829, + 0.0886860191822052, + -0.05818326398730278, + -0.01082757767289877, + -0.08797362446784973, + 0.06570108234882355, + 0.12596997618675232, + -0.07915858924388885, + -0.07743801176548004, + -0.08394711464643478, + -0.04512365162372589, + 0.07957577705383301, + -0.05289927124977112, + -0.04932757839560509, + 0.03850160539150238, + -0.025188328698277473, + -0.08130116015672684, + -0.10619225353002548, + 0.12219294160604477, + -0.021180758252739906, + -0.008895516395568848, + -0.0709991455078125, + 0.03743146359920502, + 0.02384989894926548, + 0.01840767078101635, + -0.06096290424466133, + 0.04182836785912514, + 0.06620658189058304, + -0.03637291491031647, + 0.03359926491975784, + 0.04802922531962395, + 0.03619861230254173, + -0.02270526997745037, + -0.017054516822099686, + -0.0744648277759552, + 0.06370579451322556, + -0.03850877285003662, + 0.14627712965011597, + -0.008775411173701286, + -0.02794124186038971, + -0.06970594823360443, + 0.07781580835580826, + -0.014483317732810974, + 0.02895738184452057, + 0.06764410436153412, + 0.07853825390338898, + 0.01507125236093998, + -0.08431023359298706, + 0.1134813129901886, + -0.01131184957921505, + 0.0026457877829670906, + -0.04900173097848892, + 0.011052620597183704, + -0.0666150152683258, + 0.024891305714845657, + -0.025077415630221367, + -0.10422015190124512, + 0.01919066347181797, + 0.020873498171567917, + 0.016923341900110245, + 0.0581284761428833, + 0.1151733249425888, + 0.06967391073703766, + -0.027923349291086197 + ] + }, + "p244_214.wav": { + "name": "p244", + "embedding": [ + 0.047064945101737976, + 0.09374096989631653, + -0.029795479029417038, + 0.021070312708616257, + -0.05589009076356888, + 0.07865388691425323, + -0.09673842787742615, + 0.11000014841556549, + -0.05048755556344986, + 0.131479412317276, + -0.05370466411113739, + 0.12335020303726196, + -0.015409699641168118, + -0.14077019691467285, + -0.06206444278359413, + 0.04187578707933426, + -0.08741737902164459, + -0.03439265489578247, + -0.057838551700115204, + -0.02681402675807476, + 0.039697375148534775, + 0.025438295677304268, + 0.0642424076795578, + -0.03531991317868233, + 0.03902808204293251, + 0.06412626057863235, + 0.030178818851709366, + 0.060814641416072845, + 0.03210289403796196, + -0.08688667416572571, + -0.044193901121616364, + 0.09137901663780212, + -0.049057118594646454, + 0.02080947905778885, + 0.04218422248959541, + 0.0006431713700294495, + 0.015838002786040306, + -0.0843123123049736, + -0.02381298318505287, + 0.018406018614768982, + -0.015955021604895592, + 0.07347764074802399, + 0.013104238547384739, + -0.0401352196931839, + 0.006440825294703245, + -0.00018069567158818245, + -0.01934182085096836, + -0.04337479919195175, + -0.10113073885440826, + 0.18702459335327148, + 0.07387524843215942, + 0.015530914068222046, + -0.06757976114749908, + -0.09620954096317291, + 0.11589176207780838, + -0.007667948491871357, + -0.11702315509319305, + -0.024702582508325577, + 0.039730995893478394, + 0.15890994668006897, + -0.034337423741817474, + -0.020275689661502838, + 0.029227253049612045, + 0.12411117553710938, + 0.042949289083480835, + 0.062421295791864395, + 0.09880602359771729, + 0.09733450412750244, + 0.006113381125032902, + 0.05861132964491844, + 0.05956602841615677, + 0.10144306719303131, + 0.04811899736523628, + 0.006292167119681835, + 0.030547291040420532, + -0.02756848931312561, + -0.036115359514951706, + -0.016231752932071686, + -0.04358946532011032, + -0.041516147553920746, + -0.015501786023378372, + 0.009788262657821178, + 0.03226057067513466, + 0.019569098949432373, + -0.01108971331268549, + 0.07296542823314667, + -0.015121547505259514, + -0.04750765860080719, + 0.046328455209732056, + 0.022960711270570755, + -0.006325690075755119, + 0.041848886758089066, + -0.06744523346424103, + -0.10826902836561203, + 0.011240575462579727, + 0.01573677361011505, + 0.031987763941287994, + 0.07897083461284637, + 0.05564790964126587, + -0.033009812235832214, + 0.09721823036670685, + 0.06314319372177124, + -0.01413993164896965, + -0.0028952702414244413, + -0.07780136168003082, + 0.11032142490148544, + 0.111485555768013, + -0.01416182890534401, + 0.022237898781895638, + -0.05350640416145325, + 0.09373100101947784, + 0.06556052714586258, + -0.1477869749069214, + -0.09696733206510544, + 0.005461027845740318, + -0.019313577562570572, + 0.004709434229880571, + 0.0838983878493309, + -0.013766838237643242, + 0.03721331059932709, + 0.10485678166151047, + -0.08244822919368744, + -0.044463638216257095, + -0.03709612786769867, + 0.053563982248306274, + -0.050841473042964935, + 0.03447488695383072, + 0.04613909497857094, + -0.01970847323536873, + -0.010802707634866238, + 0.06719760596752167, + -0.018274515867233276, + -0.009892809204757214, + 0.045708656311035156, + -0.05996613949537277, + 0.02718154340982437, + -0.04021844640374184, + -0.010672122240066528, + 0.06381121277809143, + 0.06861798465251923, + 0.04255390912294388, + -0.013168737292289734, + -0.04493601620197296, + -0.07938000559806824, + 0.016043849289417267, + 0.03960055857896805, + 0.05487310141324997, + -0.029077205806970596, + -0.03648816794157028, + -0.01762356236577034, + -0.0602191686630249, + 0.030928272753953934, + -0.00013626401778310537, + 0.07913556694984436, + -0.01807384565472603, + 0.00330669479444623, + 0.10706989467144012, + 0.006294815801084042, + -0.032156262546777725, + -0.030468961223959923, + -0.008995155803859234, + 0.04417487606406212, + 0.043615393340587616, + -0.06412704288959503, + -0.07915131747722626, + 0.007170567288994789, + -0.0034205028787255287, + -0.02790575660765171, + 0.038497958332300186, + 0.02190997079014778, + 0.011776771396398544, + 0.02892483025789261, + -0.04509740322828293, + -0.013596253469586372, + -0.11366325616836548, + -0.02900163270533085, + -0.010162962600588799, + -0.06506217271089554, + -0.04136526957154274, + 0.08132496476173401, + 0.02283637784421444, + 0.04748018458485603, + -0.006393404211848974, + -0.07064872235059738, + -0.050806254148483276, + 0.06312011182308197, + 0.06869572401046753, + 0.023169487714767456, + 0.03028082475066185, + 0.07200144976377487, + 0.026990236714482307, + 0.0423385351896286, + 0.06885185837745667, + 0.07954250276088715, + -0.030644822865724564, + -0.022927861660718918, + -0.0760050043463707, + 0.09944835305213928, + 0.06745614856481552, + -0.09499670565128326, + -0.07299520075321198, + -0.05125616863369942, + -0.07023270428180695, + 0.03086809068918228, + -0.03088713437318802, + 0.010799797251820564, + 0.0277373306453228, + -0.015600482001900673, + -0.11233333498239517, + -0.09321694076061249, + 0.11651705205440521, + -0.06504756212234497, + -0.019255002960562706, + -0.05156809836626053, + 0.030898239463567734, + 0.11055074632167816, + 0.043039415031671524, + 0.0038550500757992268, + 0.03207135945558548, + 0.04429542273283005, + -0.05662743002176285, + -0.016363929957151413, + 0.0314166434109211, + 0.009591658599674702, + -0.09701497852802277, + 0.013765759766101837, + -0.05995069444179535, + 0.03888368234038353, + -0.06455570459365845, + 0.14857006072998047, + -0.013764876872301102, + -0.05282110720872879, + -0.0901290774345398, + 0.0639055147767067, + -0.06208319962024689, + 0.04900985211133957, + 0.05416499078273773, + 0.05222054570913315, + 0.014623776078224182, + -0.11301794648170471, + 0.13485057651996613, + 0.03911841660737991, + -0.03812802955508232, + -0.08746892213821411, + -0.06006479263305664, + -0.016906699165701866, + 0.01666960120201111, + 0.008866417221724987, + -0.04860284924507141, + 0.00625983439385891, + -0.0016223359853029251, + -0.022989757359027863, + 0.062379077076911926, + 0.14042839407920837, + 0.08589006960391998, + -0.08640982210636139 + ] + }, + "p244_215.wav": { + "name": "p244", + "embedding": [ + 0.05340327322483063, + 0.10633864998817444, + 0.016881447285413742, + 0.011955846101045609, + -0.028103653341531754, + 0.039301495999097824, + -0.007915105670690536, + 0.07690724730491638, + 0.03343275189399719, + 0.0071962811052799225, + -0.10044921934604645, + 0.05461234971880913, + -0.05114267021417618, + -0.1005287915468216, + 0.03138060122728348, + 0.04352860525250435, + -0.028951672837138176, + 0.011115949600934982, + -0.05946015566587448, + -0.027463845908641815, + -0.04222572222352028, + -0.01483626663684845, + 0.0420759841799736, + -0.007125634700059891, + 0.017293814569711685, + 0.02452283538877964, + -0.04159819334745407, + -0.008275894448161125, + -0.033947646617889404, + -0.015321293845772743, + -0.04088747873902321, + 0.02245538868010044, + -0.026904450729489326, + -0.017765305936336517, + 0.003981326706707478, + -0.03462702035903931, + 0.02976091578602791, + -0.06605526804924011, + -0.0760427936911583, + 0.035450588911771774, + -0.061423659324645996, + 0.043719857931137085, + 0.03152107819914818, + -0.06027592718601227, + 0.07246733456850052, + 0.03666800633072853, + -0.05529148504137993, + -0.0057771094143390656, + -0.10241740942001343, + 0.10199737548828125, + 0.015739869326353073, + 0.03047354705631733, + -0.06237658113241196, + -0.0009945407509803772, + 0.07519080489873886, + -0.02481830306351185, + -0.033776238560676575, + -0.019413195550441742, + 0.028561802580952644, + 0.019934870302677155, + 0.028781460598111153, + -0.007138711400330067, + 0.00945344753563404, + 0.030890248715877533, + 0.06488597393035889, + 0.005041081458330154, + 0.06499192118644714, + 0.09021380543708801, + -0.04256809875369072, + 0.02328052558004856, + 0.049421776086091995, + 0.0002708360552787781, + 0.048158034682273865, + -0.007632295601069927, + -0.0066888523288071156, + -0.0028166454285383224, + -0.0018488089554011822, + -0.036213528364896774, + -0.013678686693310738, + -0.020208947360515594, + 0.036172378808259964, + 0.009933008812367916, + 0.026395440101623535, + 0.003233599476516247, + -0.03619940206408501, + 0.0026943646371364594, + 0.06542219966650009, + 0.074161097407341, + 0.06696416437625885, + 0.03806217014789581, + -0.031037840992212296, + 0.06247745454311371, + -0.046704474836587906, + -0.0468948557972908, + 0.0014159264974296093, + 0.01603846065700054, + -0.007557017263025045, + 0.012560242787003517, + 0.030513733625411987, + -0.021396394819021225, + 0.09735725820064545, + -0.00040161237120628357, + 0.03699781745672226, + 0.00926295481622219, + -0.04896874353289604, + 0.022798974066972733, + 0.053600162267684937, + -0.025863278657197952, + 0.06389139592647552, + 0.05553627386689186, + 0.05068339407444, + 0.06422695517539978, + -0.04759574681520462, + 0.012998662889003754, + -0.03497140854597092, + 0.009746340103447437, + 0.030462805181741714, + 0.07011143863201141, + 0.002916098339483142, + 0.05067679286003113, + 0.1155703067779541, + -0.06528075039386749, + 0.015539305284619331, + 0.07424341887235641, + -0.001646561548113823, + 0.01806781068444252, + 0.02655821666121483, + 0.045040328055620193, + -0.003527548164129257, + -0.004002511501312256, + 0.009933184832334518, + 0.027712196111679077, + 0.012289375066757202, + -0.05542512238025665, + 0.0071549974381923676, + -0.02295861765742302, + 0.0007631317712366581, + -0.03404443711042404, + 0.04421551153063774, + 0.047018758952617645, + -0.0211980938911438, + 0.03315199539065361, + -0.03931222856044769, + -0.060177698731422424, + 0.029677048325538635, + -0.025737091898918152, + 0.0119534432888031, + 0.056419603526592255, + -0.0043476177379488945, + -0.05137646943330765, + 0.003010384738445282, + 0.042700670659542084, + -0.0047316947020590305, + 0.04177888110280037, + 0.04720599949359894, + -0.04274782910943031, + 0.04149050638079643, + 0.032853126525878906, + 0.02865358255803585, + -0.04825536534190178, + -0.09471835941076279, + -0.006813532207161188, + 0.03889298439025879, + -0.018483903259038925, + -0.05374060198664665, + -0.019268011674284935, + -0.03440209850668907, + 0.00211772951297462, + 0.023846661671996117, + 0.0755378007888794, + -0.025281261652708054, + -0.044753298163414, + -0.0645294263958931, + 0.022926198318600655, + 0.00519133172929287, + -0.10383737087249756, + 0.06645971536636353, + 0.019896792247891426, + 0.010932762175798416, + 0.09003394097089767, + 0.028335466980934143, + 0.016694311052560806, + -0.04772309213876724, + -0.05228255316615105, + 0.01909811794757843, + 0.03237741440534592, + -0.001835099421441555, + -0.01396514568477869, + 0.04869674891233444, + 0.04550394043326378, + -0.036374419927597046, + 0.04230061173439026, + 0.00609235092997551, + 0.037768810987472534, + -0.0290360189974308, + 0.011342196725308895, + 0.04197467863559723, + 0.0473606251180172, + 0.031079819425940514, + -0.05481845512986183, + -0.08514288812875748, + -0.04372561350464821, + -0.013911528512835503, + 0.015830835327506065, + 0.029978711158037186, + 0.02546517923474312, + 0.045097097754478455, + -0.0013326751068234444, + -0.010913103818893433, + -0.1187296062707901, + -0.004345055669546127, + 0.009404845535755157, + -0.015766851603984833, + -0.014623725786805153, + 0.019849084317684174, + 0.013312287628650665, + -0.00048827752470970154, + -0.003574371337890625, + 0.034068118780851364, + -0.00222137663513422, + 0.022723587229847908, + -0.033382244408130646, + 0.024314584210515022, + 0.038221798837184906, + 0.018750663846731186, + -0.019439980387687683, + -0.08463259041309357, + 0.06716679036617279, + 0.06160535290837288, + 0.09457183629274368, + 0.03948646038770676, + 0.03383138030767441, + -0.06190531700849533, + 0.038250964134931564, + -0.023806357756257057, + 0.02556297369301319, + -0.025996921584010124, + 0.0302744060754776, + 0.051189325749874115, + -0.009792758151888847, + 0.04220205917954445, + 0.02648290991783142, + -0.04122382029891014, + -0.01870855689048767, + 0.005629613995552063, + -0.07677137106657028, + -0.025150945410132408, + -0.022165482863783836, + -0.042740389704704285, + 0.010031008161604404, + 0.011736268177628517, + 0.07382740825414658, + 0.029676204547286034, + 0.056366175413131714, + 0.031996890902519226, + -0.006148543208837509 + ] + }, + "p244_110.wav": { + "name": "p244", + "embedding": [ + 0.02555643394589424, + 0.07235626876354218, + 0.01770714856684208, + 0.026068637147545815, + -0.04630326107144356, + 0.03194857016205788, + -0.11019507050514221, + 0.13463464379310608, + -0.0429706908762455, + 0.1285693645477295, + -0.09663064777851105, + 0.08202726393938065, + -0.07185394316911697, + -0.1800156533718109, + 0.020058924332261086, + 0.04866713285446167, + 0.0034322692081332207, + 0.006989171728491783, + -0.03739259019494057, + -0.01714503951370716, + 0.013698607683181763, + 0.022624261677265167, + 0.020074687898159027, + 0.012232186272740364, + 0.004504336975514889, + 0.0857618898153305, + -0.01760084182024002, + 0.02221524715423584, + -0.012096527963876724, + -0.021842781454324722, + -0.03781283646821976, + 0.11227633059024811, + -0.07059779763221741, + -0.0024249600246548653, + 0.09085740149021149, + -0.016050709411501884, + -0.07173023372888565, + -0.007009584456682205, + -0.010077418759465218, + -0.034766700118780136, + -0.09529420733451843, + 0.05475795269012451, + 0.01458156481385231, + 0.016427000984549522, + 0.06712383776903152, + 0.049199193716049194, + -0.0038540740497410297, + -0.018240638077259064, + -0.08559584617614746, + 0.08013657480478287, + 0.06938417255878448, + -0.015711436048150063, + -0.03539039194583893, + -0.05248210206627846, + 0.07989786565303802, + -0.016821742057800293, + -0.10916199535131454, + -0.059557169675827026, + 0.11869795620441437, + 0.11590433120727539, + -0.05694813281297684, + -0.02093386836349964, + 0.003558643162250519, + 0.086424820125103, + 0.029945047572255135, + 0.1258133053779602, + 0.047477301210165024, + 0.09240173548460007, + -0.01444920152425766, + 0.029028236865997314, + 0.052897460758686066, + 0.036802634596824646, + 0.07295069098472595, + -0.034984417259693146, + -0.0023337118327617645, + 0.023935696110129356, + -0.00937301479279995, + 0.015886934474110603, + -0.006022213026881218, + 0.0020228582434356213, + -0.01804099604487419, + -0.04307274892926216, + -0.009423762559890747, + -0.035697948187589645, + 0.013644331134855747, + 0.03897920995950699, + 0.08407110720872879, + 0.007962756790220737, + 0.08778700977563858, + 0.007871446199715137, + -0.05993299186229706, + 0.07932788878679276, + -0.07809124886989594, + -0.017535602673888206, + -0.011218776926398277, + -0.03262505680322647, + 0.012550795450806618, + 0.08188579976558685, + 0.03862619400024414, + 0.007160184904932976, + 0.11518634855747223, + 0.022629477083683014, + 0.028711212798953056, + 0.05931922793388367, + -0.11019732058048248, + 0.1228824257850647, + 0.048726409673690796, + -0.042014531791210175, + 0.0452614389359951, + -0.028597736731171608, + 0.0609288364648819, + 0.0787540152668953, + -0.11722566932439804, + -0.01935793273150921, + -0.016635458916425705, + -0.019967833533883095, + -0.05789241939783096, + 0.11276793479919434, + -0.023669414222240448, + -0.020678788423538208, + 0.1348908543586731, + -0.10980445146560669, + -0.07240233570337296, + -0.0003691096499096602, + 0.01737053133547306, + -0.13624191284179688, + 0.04622536897659302, + 0.04442868381738663, + -0.013762760907411575, + 0.04043731838464737, + 0.12342032045125961, + -0.01572316884994507, + -0.008604258298873901, + 0.0054579731076955795, + -0.051671016961336136, + -0.0074430713430047035, + -0.03893083333969116, + 0.02852053940296173, + 0.060383982956409454, + 0.03592574596405029, + 0.060844436287879944, + -0.01535792276263237, + -0.0077037084847688675, + -0.08128048479557037, + -0.008699445053935051, + 0.054758574813604355, + 0.05283838510513306, + -0.010027196258306503, + 0.003271749010309577, + -0.042886462062597275, + -0.08479133248329163, + 0.03776728734374046, + -0.013723475858569145, + 0.055247992277145386, + -0.040381886065006256, + 0.004527071490883827, + 0.11329612135887146, + 0.046185653656721115, + -0.013349653221666813, + -0.12891486287117004, + -0.038776032626628876, + 0.0022130890283733606, + 0.05557439476251602, + -0.12151066213846207, + -0.05831880867481232, + -0.02554401010274887, + 0.057104989886283875, + -0.009181196801364422, + 0.03971859812736511, + 0.03621897101402283, + 0.039036307483911514, + 0.011169672012329102, + -0.0295325368642807, + 0.014777950942516327, + -0.059585779905319214, + -0.087800994515419, + -0.0345965139567852, + -0.027754995971918106, + -0.014154193922877312, + 0.04475027322769165, + -0.032369453459978104, + 0.01805879734456539, + -0.0025275805965065956, + -0.07460813224315643, + -0.09717938303947449, + 0.0600360706448555, + 0.0318426676094532, + -0.018791604787111282, + 0.04684809595346451, + 0.041291236877441406, + -0.13143031299114227, + 0.036254823207855225, + 0.04524070769548416, + 0.14362019300460815, + -0.047457944601774216, + 0.06435289978981018, + -0.05861120671033859, + 0.03930116444826126, + 0.09640099853277206, + -0.08042299747467041, + -0.0909884124994278, + -0.018367188051342964, + -0.035890843719244, + 0.07536790519952774, + -0.03099660575389862, + -0.04874314367771149, + 0.0047473907470703125, + -0.01652522385120392, + -0.039226893335580826, + -0.06445834040641785, + 0.07846919447183609, + -0.03068755567073822, + -0.009995811618864536, + -0.09745784103870392, + 0.0478726401925087, + 0.003368699923157692, + 0.06446559727191925, + -0.014516664668917656, + 0.011852843686938286, + 0.0683678388595581, + -0.0370762012898922, + 0.004386263433843851, + 0.09676545113325119, + 0.02815013751387596, + -0.04111116752028465, + -0.052117787301540375, + -0.07754398137331009, + 0.07877151668071747, + -0.03502999246120453, + 0.11218953877687454, + -0.03431636095046997, + -0.0400056354701519, + -0.03413724526762962, + -0.0019906521774828434, + 0.01643894612789154, + 0.01642376184463501, + 0.059626124799251556, + 0.0699956938624382, + 0.02787698619067669, + -0.020561281591653824, + 0.1302621066570282, + -0.007433319464325905, + 0.011815494857728481, + -0.01599222794175148, + -0.03756856173276901, + -0.0720696672797203, + -0.021684154868125916, + -0.010201646015048027, + -0.15179437398910522, + 0.009371409192681313, + 0.00499859731644392, + -0.02156764827668667, + 0.02268831990659237, + 0.12261008471250534, + 0.06367574632167816, + -0.09981290996074677 + ] + }, + "p244_261.wav": { + "name": "p244", + "embedding": [ + 0.028719626367092133, + 0.0682663768529892, + -0.04940575361251831, + 0.03504057228565216, + -0.016620462760329247, + 0.04279787093400955, + -0.12955424189567566, + 0.06353916227817535, + -0.04909253492951393, + 0.14170783758163452, + -0.09153395891189575, + 0.06715115904808044, + -0.02883533574640751, + -0.1582050621509552, + -0.02464410848915577, + 0.055761996656656265, + -0.01921982318162918, + -0.00347290001809597, + -0.06350982189178467, + -0.015356123447418213, + 0.05540609359741211, + 0.06547226011753082, + 0.01876433566212654, + -0.049175627529621124, + 0.006675088312476873, + 0.05275445431470871, + -0.02564014494419098, + -0.0010150463785976171, + -0.03351340442895889, + -0.03141164034605026, + -0.008707764558494091, + 0.12295949459075928, + 0.0034940880723297596, + 0.003139996435493231, + 0.015117807313799858, + 0.051158081740140915, + -0.021998688578605652, + -0.07792427390813828, + -0.0007367711514234543, + -0.008576905354857445, + -0.0631859079003334, + 0.035880327224731445, + 0.006141346879303455, + -0.038210514932870865, + 0.07119050621986389, + -0.07058751583099365, + -0.04105035215616226, + -0.03922830522060394, + -0.08949838578701019, + 0.17172160744667053, + 0.06163036823272705, + 0.045889709144830704, + -0.09138541668653488, + -0.05498262494802475, + 0.1072787344455719, + 0.014204464852809906, + -0.08314104378223419, + -0.048729151487350464, + 0.05059795081615448, + 0.1794515699148178, + -0.004692745860666037, + -0.020559659227728844, + 0.060942020267248154, + 0.060778748244047165, + -0.015036608092486858, + 0.09242556989192963, + 0.07661066204309464, + 0.05347227305173874, + 0.0388450026512146, + 0.005949879996478558, + 0.04976240545511246, + 0.07206512987613678, + 0.027056021615862846, + -0.06214090436697006, + 0.02311357483267784, + 0.00044776126742362976, + -0.07447825372219086, + 0.011545495130121708, + -0.027642032131552696, + -0.05656038597226143, + 0.014318699017167091, + -0.026159826666116714, + 0.023067116737365723, + -0.005185766611248255, + -0.07371778786182404, + -0.02234519273042679, + 0.07163495570421219, + -0.06722832471132278, + 0.05723799020051956, + 0.06098293885588646, + 0.024096745997667313, + -0.001870916225016117, + -0.027889618650078773, + -0.10887596011161804, + 0.0246100053191185, + 0.04710167646408081, + -0.03869970142841339, + 0.04575304687023163, + 0.04728969559073448, + -0.03264822065830231, + 0.07574567198753357, + -0.002339482307434082, + 0.013620937243103981, + 0.006478495895862579, + -0.09110035747289658, + 0.07065313309431076, + 0.14203159511089325, + -0.0036951114889234304, + 0.04770747199654579, + -0.04089842364192009, + 0.021626245230436325, + 0.09142092615365982, + -0.10794660449028015, + -0.07400927692651749, + 0.027334842830896378, + -0.008714540861546993, + 0.051466234028339386, + 0.1170751303434372, + 0.0508880615234375, + -0.0033791083842515945, + 0.10336221754550934, + -0.12567271292209625, + -0.08851557970046997, + -0.04820217937231064, + 0.03977808356285095, + -0.06521207094192505, + 0.06675456464290619, + 0.07564829289913177, + 0.005411386024206877, + -0.016224874183535576, + 0.0325373075902462, + -0.022063452750444412, + 0.04771711677312851, + -0.05338918790221214, + -0.022877052426338196, + 0.039339084178209305, + -0.06750660389661789, + -0.03709257021546364, + 0.07008512318134308, + 0.0391334593296051, + 0.0582529678940773, + -0.012380555272102356, + -0.027346568182110786, + -0.10309469699859619, + -0.009733662940561771, + 0.07755441963672638, + 0.03022763319313526, + -0.020615937188267708, + -0.001985626295208931, + -0.05781591311097145, + -0.08478523045778275, + 0.05125606432557106, + -0.08793842792510986, + 0.10906244814395905, + 0.03553424030542374, + 0.012464728206396103, + 0.12585753202438354, + -0.020334316417574883, + -0.01074310578405857, + -0.050014056265354156, + -0.010473500937223434, + 0.03056339919567108, + 0.03348955512046814, + -0.07469385117292404, + -0.07651777565479279, + -0.02957879565656185, + 0.005555484443902969, + -0.013957532122731209, + 0.008994956500828266, + 0.04029555991292, + 0.015366200357675552, + 0.01623581536114216, + -0.1108129471540451, + 0.04026583582162857, + -0.11875109374523163, + -0.03266284987330437, + 0.007016483228653669, + -0.06607335805892944, + 0.018608558923006058, + 0.12396019697189331, + 0.01859358139336109, + -0.050637125968933105, + -0.058687955141067505, + -0.09448264539241791, + -0.060775838792324066, + 0.06692124903202057, + 0.07513782382011414, + -0.00427282927557826, + 0.020299918949604034, + 0.011965272948145866, + 0.0041732583194971085, + 0.015369415283203125, + 0.06248774379491806, + 0.10406634956598282, + -0.0048499819822609425, + -0.030295372009277344, + -0.06337064504623413, + 0.10416190326213837, + 0.09583314508199692, + -0.050846487283706665, + -0.07677732408046722, + -0.04408232867717743, + -0.06627500057220459, + 0.054286010563373566, + -0.04040510952472687, + -0.007627756800502539, + 0.03301994502544403, + -0.05689230561256409, + -0.14404836297035217, + -0.0914098471403122, + 0.07674422115087509, + 0.007081826217472553, + -0.023436736315488815, + -0.07264649868011475, + 0.03708415478467941, + 0.03996081277728081, + 0.01779070869088173, + -0.046048760414123535, + 0.01382038276642561, + 0.014750783331692219, + -0.08491375297307968, + -0.008266124874353409, + 0.0039771609008312225, + 0.0008199198637157679, + -0.07435379922389984, + 0.008985860273241997, + -0.07965540885925293, + 0.11350997537374496, + -0.06394005566835403, + 0.10732769966125488, + -0.013949532061815262, + -0.060727380216121674, + -0.08874869346618652, + 0.0719105526804924, + 0.01938960887491703, + 0.033333919942379, + 0.03244972229003906, + 0.05756678059697151, + 0.050989627838134766, + -0.0989881157875061, + 0.0424191839993, + 0.04609941691160202, + 0.024677548557519913, + -0.05812446027994156, + -0.04080793634057045, + -0.032777562737464905, + 0.02581276372075081, + -0.046896569430828094, + -0.046861421316862106, + 0.03433758765459061, + 0.009798077866435051, + 0.02808917500078678, + 0.06244601309299469, + 0.07803112268447876, + 0.032547835260629654, + -0.10110392421483994 + ] + }, + "p244_111.wav": { + "name": "p244", + "embedding": [ + 0.03550855442881584, + 0.14485898613929749, + -0.010829811915755272, + -0.03280510753393173, + -0.03996242582798004, + 0.039297379553318024, + -0.14222826063632965, + 0.1331581324338913, + -0.016904544085264206, + 0.12735259532928467, + -0.10943038016557693, + 0.11034969985485077, + -0.08529987931251526, + -0.10741734504699707, + -0.02197076380252838, + 0.012994790449738503, + 0.025103982537984848, + 0.02306518144905567, + -0.022478360682725906, + -0.030524447560310364, + 0.03684055060148239, + 0.03498847037553787, + 0.01673566922545433, + -0.02004510723054409, + 0.007751945871859789, + 0.0461181104183197, + -0.0013326248154044151, + 0.05583211034536362, + 0.012679265812039375, + -0.016813842579722404, + 0.0006979331374168396, + 0.08946909010410309, + -0.045991286635398865, + 0.041900523006916046, + 0.05703932046890259, + 0.010381726548075676, + -0.024921881034970284, + -0.0243266262114048, + 0.036851316690444946, + -0.0033594791311770678, + -0.0234886035323143, + 0.061311401426792145, + 0.022858023643493652, + -0.01987280137836933, + 0.0304512158036232, + 0.06362675130367279, + 0.028783652931451797, + -0.03097056970000267, + -0.07412416487932205, + 0.13080735504627228, + 0.02817368507385254, + -0.013529549352824688, + -0.07549724727869034, + -0.03104124590754509, + 0.08248063921928406, + -0.0479760579764843, + -0.05786697939038277, + -0.07814197987318039, + 0.060501545667648315, + 0.08764363825321198, + -0.048179976642131805, + -0.0659920945763588, + 0.007014569826424122, + 0.09848722815513611, + 0.018647005781531334, + 0.06673350185155869, + 0.08258254826068878, + 0.12289552390575409, + -0.041442207992076874, + -0.010779842734336853, + -0.0037249941378831863, + 0.04359939694404602, + 0.008133910596370697, + -0.0006030024960637093, + 0.016861408948898315, + -0.03304049000144005, + 0.009248674847185612, + 0.054975561797618866, + -0.04692225903272629, + -0.04663801193237305, + -0.03479180485010147, + 0.02962360344827175, + -0.047401636838912964, + -0.013485975563526154, + -0.021126369014382362, + 0.06323599815368652, + 0.044344738125801086, + -0.02065996080636978, + 0.09202764928340912, + 0.045098792761564255, + 0.004654675256460905, + 0.029217151924967766, + -0.08452662825584412, + -0.04490996152162552, + 0.013734543696045876, + -0.03426099568605423, + 0.004958480596542358, + 0.08601246774196625, + 0.014770184643566608, + 0.006437203846871853, + 0.11453334987163544, + 0.02017252892255783, + -0.00776681350544095, + 0.01847825199365616, + -0.0804281085729599, + 0.1612178385257721, + 0.07517047226428986, + -0.04474687576293945, + 0.015668615698814392, + -0.06843627244234085, + -0.0033770427107810974, + 0.03790973871946335, + -0.07300029695034027, + -0.08607394993305206, + 0.01222588773816824, + 0.041114211082458496, + -0.019171588122844696, + 0.07914507389068604, + -0.011501951143145561, + 0.0008063190616667271, + 0.12321918457746506, + -0.07063327729701996, + -0.08817235380411148, + -0.008862371556460857, + 0.030997196212410927, + -0.047107189893722534, + 0.04081398993730545, + 0.08151167631149292, + 0.007638392969965935, + 0.03005233407020569, + 0.08584250509738922, + 0.019545547664165497, + 0.046437494456768036, + 0.006292250473052263, + -0.04177769646048546, + 0.00728335976600647, + -0.013473732396960258, + -0.012093758210539818, + 0.0013461187481880188, + 0.09340496361255646, + 0.090224489569664, + 0.024059699848294258, + -0.02864828333258629, + -0.10220964252948761, + -0.010555543005466461, + 0.06303481757640839, + 0.03227592632174492, + -0.030729053542017937, + -0.019810186699032784, + -0.0417516827583313, + -0.03278498351573944, + -0.018932055681943893, + -0.0021347845904529095, + 0.07034353911876678, + -0.051769934594631195, + 0.01090044155716896, + 0.13358326256275177, + 0.037237100303173065, + 0.009262293577194214, + -0.06731415539979935, + -0.014622404240071774, + -0.02947082556784153, + 0.01738361455500126, + -0.07015276700258255, + -0.09717075526714325, + -0.03522675111889839, + 0.05434386804699898, + -0.006228724494576454, + 0.0832095593214035, + 0.060385528951883316, + 0.006247204728424549, + 0.044586025178432465, + -0.05626225844025612, + 0.02354953996837139, + -0.05149802565574646, + -0.051610447466373444, + -0.017696933820843697, + -0.0015532439574599266, + -0.009260283783078194, + 0.06963570415973663, + 0.008927978575229645, + 0.066965252161026, + 0.01630980521440506, + -0.08143803477287292, + -0.11671242117881775, + 0.015963826328516006, + 0.06909096240997314, + -0.041098590940237045, + 0.051891714334487915, + 0.04089884087443352, + -0.05928340181708336, + 0.0590372160077095, + 0.06834644079208374, + 0.0473015271127224, + -0.03937268629670143, + 0.009194767102599144, + -0.055180251598358154, + 0.02112501859664917, + 0.07843370735645294, + -0.10434204339981079, + -0.06425374746322632, + -0.06442097574472427, + -0.022550711408257484, + -0.03478993475437164, + -0.010842906311154366, + 0.014627031050622463, + 0.013083430007100105, + 0.0014417776837944984, + -0.0695328414440155, + -0.08121350407600403, + 0.011930480599403381, + -0.058943212032318115, + 0.034701064229011536, + -0.06020333617925644, + 0.04696594178676605, + 0.06092483177781105, + 0.04206293821334839, + -0.032730501145124435, + -0.04312049597501755, + 0.028974315151572227, + -0.029506759718060493, + 0.019039565697312355, + 0.0474838986992836, + 0.05166543275117874, + -0.032307956367731094, + 0.04034123569726944, + -0.08381982147693634, + 0.06599937379360199, + -0.047803476452827454, + 0.1456785947084427, + 0.027119625359773636, + -0.07268694043159485, + -0.08589650690555573, + -0.0002403393154963851, + -0.052077047526836395, + 0.021691421046853065, + -0.006582115776836872, + 0.016479825600981712, + 0.012505254708230495, + -0.046623602509498596, + 0.12616442143917084, + 0.0442710742354393, + -0.05161421746015549, + -0.08115414530038834, + -0.07762987911701202, + -0.06402859091758728, + 0.020394140854477882, + 0.030192259699106216, + -0.08394274115562439, + -0.0313834585249424, + 0.006412512622773647, + -0.014594304375350475, + 0.08737412095069885, + 0.12215501070022583, + 0.07093289494514465, + -0.12070630490779877 + ] + }, + "p244_041.wav": { + "name": "p244", + "embedding": [ + 0.0477493517100811, + 0.09237784147262573, + -0.04194314032793045, + 0.015993749722838402, + -0.06453871726989746, + 0.04421694204211235, + -0.11807951331138611, + 0.12396105378866196, + -0.02690242789685726, + 0.1365990936756134, + -0.06510811299085617, + 0.13611844182014465, + -0.008770588785409927, + -0.16155876219272614, + -0.034966230392456055, + 0.02737453207373619, + -0.043871812522411346, + -0.025151420384645462, + -0.061628472059965134, + -0.049977779388427734, + 0.051731400191783905, + 0.048346951603889465, + 0.03644756227731705, + -0.02840607985854149, + 0.016115382313728333, + 0.06663861870765686, + 0.005010311957448721, + 0.0280466228723526, + 0.007017101161181927, + -0.06567616760730743, + -0.044305138289928436, + 0.09010188281536102, + -0.05202030390501022, + 0.012884674593806267, + 0.038975901901721954, + -0.021395020186901093, + -0.004304943140596151, + -0.06211567670106888, + -0.026561586186289787, + 0.02595832198858261, + -0.03137664496898651, + 0.06644094735383987, + 0.01489008218050003, + -0.033769767731428146, + 0.05108369514346123, + 0.0031738176476210356, + -0.019590381532907486, + -0.04465639218688011, + -0.09283270686864853, + 0.1672413945198059, + 0.07739828526973724, + 0.004435134120285511, + -0.07296284288167953, + -0.05701959878206253, + 0.10157613456249237, + -0.024667665362358093, + -0.10168250650167465, + -0.029142102226614952, + 0.04136113449931145, + 0.1286768764257431, + -0.03394491225481033, + -0.04360955208539963, + 0.04500718042254448, + 0.10438748449087143, + 0.051580771803855896, + 0.05864544212818146, + 0.1077108085155487, + 0.10473759472370148, + -0.0309605710208416, + 0.023109566420316696, + 0.04447374865412712, + 0.09272312372922897, + 0.05901356786489487, + -0.011929653584957123, + 0.03504199534654617, + -0.004105374217033386, + -0.01844783127307892, + -0.020031172782182693, + -0.03811773657798767, + -0.02390196919441223, + -0.006757264956831932, + 0.012772822752594948, + 0.01802491582930088, + 0.02396896481513977, + -0.04342176765203476, + 0.06574518978595734, + 0.04898051545023918, + -0.03049437701702118, + 0.05111781880259514, + 0.041526615619659424, + 0.01291646622121334, + 0.05399622023105621, + -0.0910683199763298, + -0.09725426137447357, + 0.03494423255324364, + 0.0060155875980854034, + 0.00856709759682417, + 0.07191620767116547, + 0.05017685517668724, + -0.02178741991519928, + 0.10842698812484741, + 0.05835350602865219, + -0.02091311663389206, + 0.009147617034614086, + -0.07842686772346497, + 0.1159372627735138, + 0.12462387979030609, + -0.03323308005928993, + 0.033219143748283386, + -0.05944114178419113, + 0.0759272575378418, + 0.047366105020046234, + -0.1181628555059433, + -0.08785824477672577, + 0.024486316367983818, + 0.0008049008320085704, + 0.0021551456302404404, + 0.11213827133178711, + -0.004702751990407705, + 0.05059404298663139, + 0.11286967992782593, + -0.07962623238563538, + -0.054937005043029785, + -0.04110291972756386, + 0.045597486197948456, + -0.07029402256011963, + 0.060428276658058167, + 0.06039038300514221, + 0.004759245552122593, + 0.007408760488033295, + 0.06954717636108398, + -0.017764568328857422, + 0.004618425853550434, + 0.00407846225425601, + -0.041635021567344666, + 0.017860565334558487, + -0.013863824307918549, + -0.0257607102394104, + 0.04759707674384117, + 0.05385126918554306, + 0.0446147620677948, + -0.00906505435705185, + -0.022154850885272026, + -0.10992348194122314, + 0.032542936503887177, + 0.027880478650331497, + 0.05512824282050133, + -0.020555822178721428, + -0.01608181558549404, + -0.02974173054099083, + -0.0684344619512558, + 0.009244384244084358, + -0.01695946604013443, + 0.061791520565748215, + -0.02952212654054165, + 0.00883636437356472, + 0.10563653707504272, + 0.026330173015594482, + -0.009894780814647675, + -0.02149779722094536, + -0.0250079445540905, + 0.010634174570441246, + 0.050586216151714325, + -0.06921441853046417, + -0.09290610253810883, + -0.029016582295298576, + 0.012191740795969963, + -0.018572300672531128, + 0.06368248164653778, + 0.053111325949430466, + 0.007641030475497246, + 0.0381646454334259, + -0.07638256251811981, + 0.007735195569694042, + -0.11101382225751877, + -0.051872946321964264, + -0.016163796186447144, + -0.040560003370046616, + -0.021449659019708633, + 0.07260923087596893, + 0.012661389075219631, + 0.04406234622001648, + -0.030989903956651688, + -0.07271388918161392, + -0.06864629685878754, + 0.05229887366294861, + 0.06854039430618286, + 0.0027720890939235687, + 0.032364506274461746, + 0.06306475400924683, + -0.0015725692501291633, + 0.04637237638235092, + 0.07249733060598373, + 0.08299090713262558, + -0.020934831351041794, + 0.009450020268559456, + -0.0701339840888977, + 0.1035202294588089, + 0.07218052446842194, + -0.07887984812259674, + -0.08870985358953476, + -0.0490020290017128, + -0.06473680585622787, + 0.023912271484732628, + -0.022393954917788506, + 0.01675771176815033, + 0.03506441041827202, + 0.009061263874173164, + -0.10205816477537155, + -0.0841464027762413, + 0.08850695192813873, + -0.055125847458839417, + -0.0012489210348576307, + -0.0738770142197609, + 0.03230364993214607, + 0.10851822793483734, + 0.02782110497355461, + -0.030705278739333153, + -0.010481758043169975, + 0.041074901819229126, + -0.022446414455771446, + 0.01784534752368927, + 0.025507211685180664, + 0.045900341123342514, + -0.0955275446176529, + 0.0034386366605758667, + -0.06259236484766006, + 0.054756324738264084, + -0.055079083889722824, + 0.12476056814193726, + 0.016941087320446968, + -0.05011047050356865, + -0.09257613122463226, + 0.06569737941026688, + -0.01717977412045002, + 0.05570942163467407, + 0.02985534630715847, + 0.059644948691129684, + 0.022495320066809654, + -0.10366769880056381, + 0.10545758903026581, + 0.042949795722961426, + -0.0459798239171505, + -0.08494843542575836, + -0.05034906417131424, + -0.0250820592045784, + 0.030237583443522453, + 0.02807774394750595, + -0.05646726116538048, + -0.006900464650243521, + 0.005302296485751867, + -0.01282959058880806, + 0.06398545205593109, + 0.13197055459022522, + 0.06530894339084625, + -0.11476507037878036 + ] + }, + "p244_328.wav": { + "name": "p244", + "embedding": [ + 0.05617386847734451, + 0.07904292643070221, + -0.05768284201622009, + 0.01280163787305355, + -0.01526748575270176, + 0.0485241636633873, + -0.15064625442028046, + 0.10934114456176758, + -0.03235384821891785, + 0.1413254737854004, + -0.04893331974744797, + 0.10392957925796509, + 0.00040120165795087814, + -0.14071737229824066, + -0.03232470527291298, + 0.0321141853928566, + -0.0015894435346126556, + -0.011904029175639153, + -0.011431677266955376, + -0.021638354286551476, + 0.06593276560306549, + 0.03981903940439224, + 0.0029544932767748833, + -0.018907058984041214, + 0.001344342716038227, + 0.06283427029848099, + 0.007014612667262554, + 0.005726813338696957, + -0.027804411947727203, + -0.01787494495511055, + 0.003961613401770592, + 0.10440093278884888, + -0.013393338769674301, + 0.014731412753462791, + 0.02829013019800186, + 0.008674138225615025, + -0.026389606297016144, + -0.08025700598955154, + 0.0073259854689240456, + 0.007017776370048523, + -0.02491014450788498, + 0.07158514857292175, + 0.018068892881274223, + -0.009878246113657951, + 0.04825524240732193, + -0.05671892687678337, + -0.02168121188879013, + -0.03901250660419464, + -0.07670150697231293, + 0.15379369258880615, + 0.08683139830827713, + 0.05515015125274658, + -0.08740255981683731, + -0.01735696569085121, + 0.09593777358531952, + 0.02081870101392269, + -0.05083323270082474, + -0.04623928293585777, + 0.024533364921808243, + 0.16087546944618225, + -0.011430121958255768, + -0.0456274151802063, + 0.04772263020277023, + 0.0976860374212265, + 0.00822538137435913, + 0.04963439702987671, + 0.11910323798656464, + 0.0733649879693985, + 0.0013680141419172287, + 0.009420438669621944, + 0.006742628291249275, + 0.09184914827346802, + 0.0413745641708374, + -0.04767830669879913, + 0.035659365355968475, + -0.02246152237057686, + -0.03310563415288925, + -0.019495779648423195, + -0.025863494724035263, + -0.06216835603117943, + -0.008380716666579247, + 0.0034364003222435713, + 0.019272930920124054, + 0.049597930163145065, + -0.05142837390303612, + -0.00502572488039732, + 0.04930359125137329, + -0.08180411159992218, + 0.03782174736261368, + 0.04454237222671509, + 0.018986109644174576, + 0.007577402517199516, + -0.07519514858722687, + -0.10205693542957306, + 0.06489294767379761, + 0.02303912863135338, + -0.008926928974688053, + 0.0840153843164444, + 0.0438527949154377, + 0.0008392501622438431, + 0.06922023743391037, + 0.01919633522629738, + -0.019355930387973785, + -0.027148349210619926, + -0.05884486436843872, + 0.10010324418544769, + 0.12095650285482407, + -0.037342801690101624, + 0.04775581508874893, + -0.07086178660392761, + 0.008903516456484795, + 0.05004771426320076, + -0.11418317258358002, + -0.07147450000047684, + 0.046104028820991516, + 0.02718237228691578, + 0.04102572798728943, + 0.11280116438865662, + 0.03383931145071983, + 0.027148520573973656, + 0.07994554191827774, + -0.0745246633887291, + -0.0801478698849678, + -0.09133970737457275, + 0.05698493495583534, + -0.07129272818565369, + 0.08108112215995789, + 0.05352579057216644, + 0.019657142460346222, + -0.02620226889848709, + 0.0318094827234745, + -0.006074388511478901, + -0.0001315223053097725, + -0.03856272250413895, + 0.006228663958609104, + 0.03147214278578758, + -0.04583292454481125, + -0.003433307632803917, + -0.0030966829508543015, + 0.008602485060691833, + 0.0375945046544075, + 0.012672887183725834, + 0.0012815799564123154, + -0.0956883430480957, + -0.0017617587000131607, + 0.05918446183204651, + 0.038543879985809326, + -0.04297349974513054, + -0.04934300109744072, + -0.023013826459646225, + -0.05868016183376312, + -0.006701629608869553, + -0.056717418134212494, + 0.07512792199850082, + 0.04180514067411423, + 0.04520123079419136, + 0.09287647902965546, + -0.006895776838064194, + 0.017783477902412415, + -0.003460145089775324, + 0.02473307028412819, + 0.02298557572066784, + 0.03354668244719505, + -0.07770553976297379, + -0.07962100952863693, + -0.04650557041168213, + 0.0017606260953471065, + -0.024057237431406975, + 0.013286969624459743, + 0.02535199001431465, + 0.0076537225395441055, + 0.017590194940567017, + -0.09013740718364716, + 0.007999510504305363, + -0.12707996368408203, + -0.03398171067237854, + -0.021966902539134026, + -0.03939962014555931, + -0.0012892317026853561, + 0.08144719153642654, + 0.030042706057429314, + 0.017198117449879646, + -0.05104053393006325, + -0.05589691549539566, + -0.054754309356212616, + 0.05088431015610695, + 0.08637966215610504, + -0.015134629793465137, + -0.002071704715490341, + 0.012231019325554371, + 0.027255753055214882, + 0.014431443996727467, + 0.06546209752559662, + 0.08026807010173798, + -0.02532717026770115, + -0.009718581102788448, + -0.05980297923088074, + 0.1069805696606636, + 0.10707004368305206, + -0.0614449679851532, + -0.09145216643810272, + -0.04136540740728378, + -0.07436417043209076, + 0.00538298673927784, + -0.044389039278030396, + 0.008544267155230045, + 0.03614173084497452, + -0.04093204438686371, + -0.13392260670661926, + -0.09538638591766357, + 0.06791391968727112, + -0.02935994416475296, + -0.0032106838189065456, + -0.07973016798496246, + 0.0651625320315361, + 0.09330111742019653, + 0.011324265971779823, + -0.05224213749170303, + -0.025258494541049004, + 0.0014371015131473541, + -0.03626387566328049, + 0.0013702819123864174, + -0.005832750350236893, + 0.030596623197197914, + -0.12303905189037323, + 0.011951295658946037, + -0.0479188933968544, + 0.07796569168567657, + -0.08250056207180023, + 0.09229965507984161, + 0.00027545448392629623, + -0.0613454170525074, + -0.09219121932983398, + 0.04239840433001518, + 0.046963680535554886, + 0.036961205303668976, + -0.00227383803576231, + 0.05158303678035736, + 0.007124053314328194, + -0.11739473789930344, + 0.05927913635969162, + 0.062101248651742935, + 0.011960633099079132, + -0.09744171798229218, + -0.02750169299542904, + -0.0009344723075628281, + 0.05877801030874252, + -0.01584586128592491, + -0.03744545578956604, + -0.0023435503244400024, + 0.02005106210708618, + 0.023712754249572754, + 0.061332784593105316, + 0.09847626835107803, + 0.020485959947109222, + -0.11655662953853607 + ] + }, + "p244_048.wav": { + "name": "p244", + "embedding": [ + 0.04827209562063217, + 0.07733197510242462, + -0.003094793064519763, + 0.04265182465314865, + -0.04931697994470596, + 0.07825329899787903, + -0.13045519590377808, + 0.13008370995521545, + -0.05213911086320877, + 0.13751989603042603, + -0.08746270835399628, + 0.1242460161447525, + -0.019425880163908005, + -0.18289387226104736, + -0.044179804623126984, + 0.06216875836253166, + -0.01563127711415291, + -0.02073816768825054, + -0.0048699751496315, + 0.006337813567370176, + 0.05005989223718643, + 0.02714351937174797, + 0.04588029533624649, + 0.01888325996696949, + 0.014225313439965248, + 0.05118347331881523, + 0.010695486329495907, + 0.07697305828332901, + 0.037662725895643234, + -0.048459917306900024, + -0.03948194161057472, + 0.12638385593891144, + -0.04402773827314377, + 0.02371201291680336, + 0.05820462480187416, + 0.0047158473171293736, + -0.0040702433325350285, + -0.07582718133926392, + -0.015208657830953598, + -0.036827657371759415, + -0.048001714050769806, + 0.06616838276386261, + 0.018180236220359802, + -0.008400265127420425, + 0.039698801934719086, + 0.0044549996964633465, + -0.029463913291692734, + -0.0380723774433136, + -0.11143915355205536, + 0.12026453018188477, + 0.056759580969810486, + 0.011729151010513306, + -0.0793977826833725, + -0.07146266102790833, + 0.10772228240966797, + -0.014417052268981934, + -0.10487514734268188, + -0.03818989172577858, + 0.08424211293458939, + 0.18898943066596985, + -0.017520999535918236, + -0.030518971383571625, + 0.021288853138685226, + 0.10361947119235992, + 0.0527152344584465, + 0.1059795469045639, + 0.09200204908847809, + 0.09676412492990494, + 0.00929214246571064, + 0.03070054203271866, + 0.025073019787669182, + 0.08254441618919373, + 0.034201644361019135, + -0.006474196910858154, + 0.011831933632493019, + 0.012454196810722351, + -0.02525544911623001, + 0.02861812710762024, + -0.033858414739370346, + -0.012108471244573593, + -0.02703946642577648, + -0.001300246687605977, + 0.01257583498954773, + 0.011897867545485497, + -0.030838433653116226, + 0.05659656971693039, + 0.005704890005290508, + -0.013511136174201965, + 0.06260167807340622, + 0.019151829183101654, + -0.01630425825715065, + 0.05332048237323761, + -0.08144542574882507, + -0.10232388973236084, + 0.005137446336448193, + 0.0044280909933149815, + 0.009218962863087654, + 0.08582229912281036, + 0.028914859518408775, + -0.020744170993566513, + 0.1139017641544342, + 0.03861263766884804, + -0.0056467317044734955, + 0.04693478345870972, + -0.09190023690462112, + 0.11143511533737183, + 0.08087579905986786, + -0.009290654212236404, + 0.051562365144491196, + -0.06122512370347977, + 0.0812540128827095, + 0.08307251334190369, + -0.1430470496416092, + -0.06673327088356018, + 0.027310559526085854, + 0.016199221834540367, + -0.008983487263321877, + 0.11584265530109406, + -0.018362928181886673, + 0.02473014034330845, + 0.091159887611866, + -0.08273765444755554, + -0.05975021421909332, + -0.018027430400252342, + 0.04511408507823944, + -0.07047255337238312, + 0.05964837223291397, + 0.01350078172981739, + 0.0006645230459980667, + -0.011342974379658699, + 0.07541333138942719, + -0.017483746632933617, + -0.014441552571952343, + 0.04478956013917923, + -0.07441110908985138, + 0.02282283641397953, + -0.05053841695189476, + 0.0024701296351850033, + 0.054625071585178375, + 0.04182734340429306, + 0.055346667766571045, + 0.004719394259154797, + -0.030691489577293396, + -0.10647712647914886, + -0.014974161051213741, + 0.051886290311813354, + 0.080818310379982, + -0.0012216406175866723, + -0.04254882410168648, + -0.05467415973544121, + -0.057816725224256516, + 0.03811957687139511, + -0.008121978491544724, + 0.08739885687828064, + -0.00270849303342402, + 0.023016218096017838, + 0.0714796930551529, + 0.006914336234331131, + -0.001389464596286416, + -0.070253387093544, + -0.030554182827472687, + 0.006429283879697323, + 0.05303538218140602, + -0.0715801864862442, + -0.05467407405376434, + 0.016154427081346512, + 0.033158719539642334, + -0.042429156601428986, + 0.03310069441795349, + 0.04770341515541077, + 0.032174259424209595, + 0.04236266762018204, + -0.06367494910955429, + -0.00280338479205966, + -0.12100141495466232, + -0.06949446350336075, + -0.009603125043213367, + 0.007858033291995525, + -0.001059834728948772, + 0.0625513419508934, + 0.037704311311244965, + 0.04697214812040329, + 0.007810885552316904, + -0.06778083741664886, + -0.09864729642868042, + 0.062486808747053146, + 0.06209496408700943, + 0.023577526211738586, + 0.06678949296474457, + 0.045135557651519775, + -0.05043257400393486, + 0.07210192084312439, + 0.06486591696739197, + 0.09128132462501526, + -0.022669468075037003, + 0.012239282950758934, + -0.08310054242610931, + 0.08222278952598572, + 0.11855454742908478, + -0.09039004147052765, + -0.1022348403930664, + -0.016433820128440857, + -0.0805412083864212, + 0.05964312702417374, + -0.033202290534973145, + -0.017606928944587708, + 0.03513156622648239, + -0.03205867111682892, + -0.12043394148349762, + -0.08593438565731049, + 0.09556235373020172, + -0.07492953538894653, + -0.01863514631986618, + -0.07923662662506104, + 0.03670211881399155, + 0.0882929265499115, + 0.016785964369773865, + -0.019328579306602478, + -0.006718709133565426, + 0.06685979664325714, + -0.06807854771614075, + -0.019682439044117928, + 0.04808364808559418, + 1.0044197551906109e-05, + -0.11420659720897675, + 0.014631063677370548, + -0.06839814782142639, + 0.04320947080850601, + -0.05270499736070633, + 0.16021078824996948, + -0.01832277700304985, + -0.055416032671928406, + -0.0695975124835968, + 0.03730277344584465, + -0.012677269987761974, + 0.040440868586301804, + 0.03587840497493744, + 0.06559747457504272, + 0.014560209587216377, + -0.08525940775871277, + 0.13062810897827148, + 0.03711410611867905, + -0.040612734854221344, + -0.0745595246553421, + -0.04604172334074974, + -0.04146720468997955, + 0.015205984935164452, + -0.005205302499234676, + -0.08903783559799194, + -0.02617494761943817, + 0.02137882076203823, + -0.02170909382402897, + 0.052738163620233536, + 0.1374872624874115, + 0.05957169085741043, + -0.10747544467449188 + ] + }, + "p244_026.wav": { + "name": "p244", + "embedding": [ + 0.06586799025535583, + 0.11278679966926575, + 0.0049434844404459, + 0.028054434806108475, + -0.050383105874061584, + 0.060185957700014114, + -0.11728794127702713, + 0.14155426621437073, + -0.0459170788526535, + 0.13404732942581177, + -0.10389409959316254, + 0.11975269019603729, + -0.032792992889881134, + -0.16663172841072083, + -0.0439152866601944, + 0.04642602801322937, + -0.026820560917258263, + 0.004712419584393501, + -0.046308018267154694, + -0.03168323636054993, + 0.019950177520513535, + 0.045187026262283325, + 0.05844635143876076, + 0.016566717997193336, + 0.03047313541173935, + 0.0620131641626358, + -0.010942035354673862, + 0.05403365194797516, + 0.03414197266101837, + -0.053701892495155334, + -0.044500626623630524, + 0.11905394494533539, + -0.051627591252326965, + 0.012245481833815575, + 0.050309598445892334, + -0.007627889513969421, + -0.009441401809453964, + -0.0470849871635437, + -0.023912079632282257, + 0.00040835142135620117, + -0.04580874741077423, + 0.05982600152492523, + 0.017169905826449394, + -0.01894812285900116, + 0.07335232943296432, + 0.008407972753047943, + -0.021488133817911148, + -0.04493880271911621, + -0.10867172479629517, + 0.14045865833759308, + 0.05867236852645874, + -0.0006718453951179981, + -0.08618460595607758, + -0.05350463092327118, + 0.09918363392353058, + -0.04780343919992447, + -0.12267208844423294, + -0.030448067933321, + 0.07761223614215851, + 0.1502697616815567, + -0.029043741524219513, + -0.028298037126660347, + 0.02671806327998638, + 0.1055757999420166, + 0.05961158126592636, + 0.09839142858982086, + 0.08869531750679016, + 0.09445095807313919, + -0.028137894347310066, + 0.03457392752170563, + 0.04931679368019104, + 0.042325008660554886, + 0.04774358868598938, + -0.023446764796972275, + 0.009804775938391685, + -0.00511131901293993, + -0.008887168951332569, + 0.013712966814637184, + -0.014532960951328278, + -0.006879265420138836, + -0.027192190289497375, + 0.0052452050149440765, + -0.018263498321175575, + -0.0020943335257470608, + -0.054482102394104004, + 0.0717814564704895, + 0.020618127658963203, + 0.004537150729447603, + 0.07351469993591309, + 0.05744819715619087, + -0.009114952757954597, + 0.04616812244057655, + -0.05194506421685219, + -0.0707567036151886, + 0.002746155485510826, + -0.003859890392050147, + 0.00025226082652807236, + 0.0743798166513443, + 0.02977294661104679, + -0.008410993963479996, + 0.12026776373386383, + 0.0699431449174881, + 0.009360147640109062, + 0.03390972316265106, + -0.09845301508903503, + 0.12943825125694275, + 0.09846656024456024, + -0.019256005063652992, + 0.06757931411266327, + -0.02021576464176178, + 0.06509047001600266, + 0.07466380298137665, + -0.12672531604766846, + -0.04961514100432396, + 0.023249352350831032, + 0.005390803329646587, + 0.004474075045436621, + 0.08171842992305756, + -0.004117000848054886, + 0.022824615240097046, + 0.10177913308143616, + -0.07870312035083771, + -0.0565452016890049, + -0.019559189677238464, + 0.04730800539255142, + -0.0931725949048996, + 0.0495491698384285, + 0.05466557294130325, + -0.010689627379179, + -0.004761622287333012, + 0.09053339064121246, + -0.00405983766540885, + 0.0013721450231969357, + 0.028684459626674652, + -0.05138193070888519, + 0.010132534429430962, + -0.02009863778948784, + 0.00040217209607362747, + 0.053819164633750916, + 0.042085856199264526, + 0.05309782177209854, + -0.000862735090777278, + -0.0193669144064188, + -0.09966550767421722, + 0.004759381525218487, + 0.053793154656887054, + 0.06253529340028763, + -0.008933543227612972, + -0.01144277211278677, + -0.045943230390548706, + -0.06170273572206497, + 0.03640960901975632, + 0.0006338045932352543, + 0.07830873131752014, + -0.04069656506180763, + -0.0017511346377432346, + 0.11064109951257706, + 0.023758316412568092, + 0.0019833254627883434, + -0.06366121768951416, + -0.012429897673428059, + 0.005104259122163057, + 0.05324679985642433, + -0.07818473875522614, + -0.08689823746681213, + 0.00674787349998951, + 0.0329638235270977, + -0.01725333370268345, + 0.0686255618929863, + 0.05748320370912552, + -0.01090861577540636, + 0.04167197272181511, + -0.06881002336740494, + 0.023425288498401642, + -0.097846120595932, + -0.06627470254898071, + -0.018358347937464714, + -0.023377839475870132, + -0.010047231800854206, + 0.07810098677873611, + 0.03274979069828987, + 0.03823040425777435, + 0.01940709911286831, + -0.09928067773580551, + -0.08621026575565338, + 0.06613142788410187, + 0.065971240401268, + 0.004101244267076254, + 0.05681080371141434, + 0.0645536407828331, + -0.06128019839525223, + 0.0822572112083435, + 0.06855404376983643, + 0.07632607966661453, + -0.03120030090212822, + 0.01882569119334221, + -0.0711621642112732, + 0.0410422645509243, + 0.08664519339799881, + -0.11697583645582199, + -0.11304691433906555, + -0.046047408133745193, + -0.0542854480445385, + 0.04587730020284653, + -0.012150708585977554, + 0.006285725627094507, + 0.05040615424513817, + -0.023762140423059464, + -0.07985907793045044, + -0.11192364990711212, + 0.10189016163349152, + -0.060136765241622925, + -0.0045797983184456825, + -0.05888885632157326, + 0.03486146405339241, + 0.05931705981492996, + 0.018688436597585678, + -0.021912064403295517, + 0.003393254242837429, + 0.03480001538991928, + -0.05567473918199539, + -0.028087276965379715, + 0.054103415459394455, + 0.01772863045334816, + -0.09788274765014648, + 0.019465439021587372, + -0.08132140338420868, + 0.09603934735059738, + -0.04148917272686958, + 0.16371195018291473, + -0.004500369541347027, + -0.053607940673828125, + -0.07650648057460785, + 0.03987590968608856, + -0.03835117816925049, + 0.03776033967733383, + 0.041810162365436554, + 0.0628417506814003, + 0.016790427267551422, + -0.061725325882434845, + 0.09631823003292084, + 0.034476954489946365, + -0.05627333000302315, + -0.058845993131399155, + -0.04486531764268875, + -0.060280539095401764, + 0.01529710367321968, + 0.020937280729413033, + -0.09943728148937225, + -0.01247384399175644, + 0.0030751070007681847, + -0.02770974114537239, + 0.06942403316497803, + 0.13579750061035156, + 0.06446173042058945, + -0.1180371418595314 + ] + }, + "p244_085.wav": { + "name": "p244", + "embedding": [ + 0.018087055534124374, + 0.0933462604880333, + -0.0036630649119615555, + 0.0013941247016191483, + -0.001707153394818306, + 0.01125246286392212, + -0.143900066614151, + 0.054094523191452026, + -0.0603456124663353, + 0.1075640320777893, + -0.06990658491849899, + 0.056109458208084106, + -0.07267501205205917, + -0.1554218828678131, + -0.02299981564283371, + 0.024502132087945938, + 7.203221321105957e-05, + -0.012527445331215858, + -0.03593705594539642, + -0.010605812072753906, + 0.02705473266541958, + 0.0072975922375917435, + 0.05035639554262161, + -0.057835567742586136, + -0.04578536003828049, + 0.05118054896593094, + -0.007196454796940088, + 0.007599356584250927, + -0.0014428067952394485, + 0.02932841144502163, + 0.02643621899187565, + 0.061962079256772995, + 0.007674040272831917, + -0.02462301217019558, + 0.018094398081302643, + 0.04898426681756973, + -0.030484657734632492, + -0.039679307490587234, + -0.010059981606900692, + 0.024629417806863785, + -0.07595178484916687, + 0.024289939552545547, + 0.012777344323694706, + -0.035832587629556656, + 0.09996741265058517, + -0.05551682412624359, + -0.023658543825149536, + -0.010727426037192345, + -0.08434763550758362, + 0.08422692120075226, + 0.07921017706394196, + 0.039118826389312744, + -0.039305124431848526, + -0.012150153517723083, + 0.1050582230091095, + -0.022499412298202515, + -0.07330711930990219, + -0.07558267563581467, + 0.05910210311412811, + 0.11011790484189987, + -0.05361681059002876, + -0.03072173334658146, + 0.00934761855751276, + 0.03835664689540863, + 0.01825552247464657, + 0.07085765898227692, + 0.10325634479522705, + 0.026297535747289658, + -0.004400158300995827, + -0.03584076836705208, + 0.05724923685193062, + 0.06123337894678116, + -0.005622128024697304, + -0.05766342952847481, + 0.02699277736246586, + -0.008603029884397984, + -0.04304300248622894, + 0.03261411190032959, + 0.016424184665083885, + -0.03697900474071503, + -0.01802590861916542, + -0.050807561725378036, + -0.036922261118888855, + -0.013693712651729584, + -0.03206862509250641, + 0.0003787276800721884, + 0.06777765601873398, + -0.026665568351745605, + 0.07745389640331268, + 0.07400812208652496, + 0.006455200258642435, + 0.0296090729534626, + -0.014085926115512848, + -0.056382231414318085, + -0.002909161150455475, + 0.009341124445199966, + -0.02516353502869606, + 0.0503351166844368, + 0.017234181985259056, + 0.012665923684835434, + 0.047552742063999176, + 0.03175375610589981, + -0.007960866205394268, + 0.022750098258256912, + -0.1145852729678154, + 0.06509339064359665, + 0.0783756747841835, + -0.03670535981655121, + -0.005044805817306042, + -0.028172729536890984, + 0.007967358455061913, + 0.06971028447151184, + -0.01098247617483139, + -0.0416664183139801, + 0.047445230185985565, + 0.03468272462487221, + 0.045711714774370193, + 0.10030428320169449, + 0.032425347715616226, + -0.04412374272942543, + 0.12681105732917786, + -0.0804399847984314, + -0.106150783598423, + -0.06356216222047806, + 0.02112031728029251, + -0.06292861700057983, + 0.04266925901174545, + 0.0768735259771347, + 0.0052373274229466915, + -0.01824849843978882, + 0.06235845386981964, + 0.01196365151554346, + 0.00015286484267562628, + -0.04465065151453018, + -0.05017252638936043, + 0.03461996465921402, + -0.036610040813684464, + -0.034879498183727264, + 0.06972329318523407, + 0.055190056562423706, + 0.07166831195354462, + 0.02097162976861, + -0.004931293893605471, + -0.07623781263828278, + -0.008405450731515884, + 0.08921784162521362, + 0.007342057302594185, + -0.03738617151975632, + -0.01246339175850153, + -0.06843055784702301, + -0.03567283973097801, + 0.010461712256073952, + -0.07564270496368408, + 0.11346551775932312, + -0.0033607659861445427, + 0.015661735087633133, + 0.09067034721374512, + -0.04303101822733879, + 0.010769782587885857, + -0.030664116144180298, + -0.017958514392375946, + 0.0386456660926342, + 0.011988261714577675, + -0.11037346720695496, + -0.08271387219429016, + -0.09711509943008423, + 0.043262943625450134, + 0.03908117115497589, + -0.012103168293833733, + 0.029926935210824013, + -0.020721688866615295, + -0.01077366340905428, + -0.05128378048539162, + 0.07093960791826248, + -0.054347701370716095, + -0.03504074364900589, + -0.0441867932677269, + -0.05136359855532646, + 0.019310396164655685, + 0.08733035624027252, + -0.03214306756854057, + -0.028156131505966187, + -0.027446914464235306, + -0.12362004816532135, + -0.08885293453931808, + 0.016574662178754807, + 0.07487190514802933, + -0.010476477444171906, + 0.013593342155218124, + 0.016356026753783226, + -0.03763721138238907, + 0.024288944900035858, + 0.023187212646007538, + 0.09847237169742584, + -0.057714566588401794, + 0.003446787828579545, + -0.016983292996883392, + 0.011980373412370682, + 0.09920325875282288, + -0.06629854440689087, + -0.059505775570869446, + -0.05229927599430084, + -0.05217505991458893, + 0.0035718195140361786, + -0.052415888756513596, + -0.018414296209812164, + 0.016170214861631393, + -0.047011420130729675, + -0.09969283640384674, + -0.11133800446987152, + 0.05518141761422157, + 0.0028394125401973724, + -0.010484160855412483, + -0.06997545063495636, + 0.01673356629908085, + 0.006099766120314598, + 0.021040940657258034, + -0.0316634401679039, + 0.01940349116921425, + -0.0003433879464864731, + -0.035187605768442154, + -0.00431852089241147, + 0.019920406863093376, + 0.04871916398406029, + -0.022554144263267517, + 0.015205571427941322, + -0.06013894081115723, + 0.09862841665744781, + -0.0349789559841156, + 0.06779785454273224, + -0.004732479341328144, + -0.012840909883379936, + -0.04303565248847008, + 0.012043815106153488, + 0.002457635710015893, + 0.04344474524259567, + 0.0035958299413323402, + 0.0430680476129055, + -0.001043548807501793, + -0.06839619576931, + 0.06548592448234558, + 0.03918410837650299, + 0.030097827315330505, + -0.0629858747124672, + 0.03876311331987381, + -0.071984201669693, + -0.0004786290228366852, + -0.033461276441812515, + -0.049506548792123795, + 0.007829486392438412, + -0.02149169147014618, + 0.021478988230228424, + 0.03943754732608795, + 0.08372125029563904, + 0.008070766925811768, + -0.05953504890203476 + ] + }, + "p244_323.wav": { + "name": "p244", + "embedding": [ + 0.02871638536453247, + 0.051263488829135895, + -0.06377660483121872, + -0.0011825654655694962, + -0.062144167721271515, + 0.009119579568505287, + -0.09230530261993408, + 0.05599607899785042, + 0.010039747692644596, + 0.12691593170166016, + -0.03158995881676674, + 0.11866971850395203, + -0.01373649574816227, + -0.06472773104906082, + 0.035830430686473846, + 0.024272190406918526, + 0.0021013920195400715, + -0.032836731523275375, + 0.00861874409019947, + -0.07240842282772064, + 0.03786554932594299, + 0.03471728041768074, + 0.013183526694774628, + -0.05087427794933319, + 0.01974313333630562, + 0.08220608532428741, + -0.005121189635246992, + -0.032184090465307236, + -0.010909415781497955, + -0.07532564550638199, + -0.009868454188108444, + 0.056082457304000854, + -0.04622389376163483, + -0.023673072457313538, + 0.018023284152150154, + -0.016152994707226753, + -0.005786332301795483, + -0.021831970661878586, + 0.0301973894238472, + 0.04693290963768959, + -0.0706654042005539, + 0.086793452501297, + 0.027545075863599777, + -0.046459659934043884, + 0.015378075651824474, + -0.013875472359359264, + -0.03133957087993622, + 0.05000423640012741, + -0.04601828008890152, + 0.13840126991271973, + 0.05799878388643265, + 0.005497355945408344, + -0.045303866267204285, + -0.0010933764278888702, + 0.05176963657140732, + 0.029750416055321693, + -0.07023464888334274, + -0.03413277119398117, + -0.021266251802444458, + 0.04919935017824173, + -0.0023549627512693405, + -0.06728837639093399, + 0.053382910788059235, + 0.07895254343748093, + 0.0416635163128376, + -0.001432059332728386, + 0.06937859207391739, + 0.10092435777187347, + -0.022179771214723587, + -0.013597930781543255, + 0.05496983602643013, + 0.11263670772314072, + 0.057101696729660034, + -0.0059454431757330894, + 0.03954645246267319, + -0.009492919780313969, + -0.00903551746159792, + -0.055211760103702545, + -0.012809870764613152, + -0.05985936522483826, + -0.03533719480037689, + -0.030036769807338715, + 0.02666664496064186, + 0.06691686064004898, + -0.017516305670142174, + -0.005920063704252243, + 0.09066222608089447, + -0.048055559396743774, + 0.04691261798143387, + 0.014263049699366093, + 0.0005674464628100395, + 0.023161299526691437, + -0.09646491706371307, + -0.027800582349300385, + 0.02029002085328102, + -0.022283388301730156, + 0.06933422386646271, + 0.06327666342258453, + 0.030297348275780678, + 0.02270124852657318, + 0.07812336087226868, + 0.03223074972629547, + 0.005052454769611359, + -0.03579312935471535, + -0.04599575698375702, + 0.12966462969779968, + 0.10759195685386658, + -0.06264957040548325, + 0.015448414720594883, + 0.010730382055044174, + 0.02743333950638771, + -0.03560694307088852, + -0.09007301181554794, + -0.055008262395858765, + -0.02073560282588005, + 0.04592134803533554, + 0.0021925270557403564, + 0.11582744121551514, + 0.016268793493509293, + 0.06295105069875717, + 0.09980301558971405, + -0.03730154037475586, + -0.06772688031196594, + -0.03965190798044205, + 0.009277956560254097, + -0.10876169800758362, + 0.07391860336065292, + 0.06934487819671631, + 0.022319529205560684, + 0.03508362919092178, + 0.08821681886911392, + 0.0031576910987496376, + 0.022887010127305984, + -0.03740036115050316, + 0.005623174831271172, + 0.01935412362217903, + 0.018265677616000175, + 0.04518246278166771, + 0.0662398636341095, + 0.008614526130259037, + 0.11931255459785461, + 0.018186219036579132, + 0.017100248485803604, + -0.12548528611660004, + 0.055967703461647034, + 0.025920337066054344, + 0.014790941961109638, + -0.048439282923936844, + -0.03974846005439758, + 0.014888690784573555, + -0.06794696301221848, + -0.025159573182463646, + 0.0012388948816806078, + 0.05878271907567978, + -0.018764574080705643, + -0.014417821541428566, + 0.11121925711631775, + 0.029509639367461205, + 0.0007065150421112776, + 0.010009539313614368, + -0.03432059660553932, + -0.02066403068602085, + 0.05809623748064041, + -0.12603461742401123, + -0.09124049544334412, + -0.041157372295856476, + 0.021325435489416122, + 0.036489762365818024, + 0.04219236224889755, + 0.09379845857620239, + -0.021900057792663574, + 0.04154343158006668, + -0.01239454559981823, + -0.0066101509146392345, + -0.03764355182647705, + -0.04764707386493683, + -0.03731728345155716, + -0.07083473354578018, + -0.07130855321884155, + 0.06676249206066132, + -0.03487703204154968, + 0.07321414351463318, + -0.0342208668589592, + -0.023896537721157074, + -0.0660284161567688, + -0.002548346295952797, + 0.013067374937236309, + -0.05973179265856743, + 0.0015914635732769966, + 0.1021197959780693, + 0.014858659356832504, + -0.03718653321266174, + 0.023452315479516983, + 0.0683438777923584, + -0.0714542418718338, + -0.011024764738976955, + -0.05041978880763054, + 0.10450713336467743, + 0.06938096880912781, + -0.024714702740311623, + -0.02636539563536644, + -0.10218591243028641, + -0.05194422975182533, + 0.03712168335914612, + -0.040700528770685196, + 0.0009272522293031216, + 0.0009515304118394852, + -0.010160882025957108, + -0.055278852581977844, + -0.06971997767686844, + 0.03301675617694855, + -0.04334889352321625, + 0.004685009829699993, + -0.07197853922843933, + 0.006085403263568878, + 0.013866756111383438, + 0.06978773325681686, + -0.0544532835483551, + 0.045096561312675476, + 0.01829826831817627, + -0.013667093589901924, + 0.04202777519822121, + 0.0716504454612732, + 0.05905398726463318, + -0.028631076216697693, + -0.07850592583417892, + -0.0644499734044075, + 0.02972378209233284, + -0.04339110851287842, + 0.053262483328580856, + 0.02020193263888359, + -0.02496352419257164, + -0.05461408570408821, + 0.0017900094389915466, + -0.010763568803668022, + 0.0118790902197361, + 0.08973324298858643, + 0.06148537993431091, + 0.029789313673973083, + -0.04087475687265396, + 0.09612463414669037, + 0.0531892292201519, + 0.014539996162056923, + -0.06240740418434143, + -0.012929040938615799, + -0.020954158157110214, + 0.04648301750421524, + 0.06369830667972565, + -0.07293614745140076, + 0.0560353584587574, + 0.024033322930336, + 0.031354282051324844, + 0.052939482033252716, + 0.04367426782846451, + 0.07082176953554153, + -0.07048733532428741 + ] + }, + "p244_355.wav": { + "name": "p244", + "embedding": [ + 0.06036846339702606, + 0.08853242546319962, + -0.006428401451557875, + 0.0057867057621479034, + -0.05621178448200226, + 0.07643314450979233, + -0.14393797516822815, + 0.15075388550758362, + -0.04845606908202171, + 0.13624948263168335, + -0.05370578542351723, + 0.11401273310184479, + -0.017049454152584076, + -0.18980637192726135, + -0.037002988159656525, + 0.05715904384851456, + -0.07381679117679596, + -0.04442931339144707, + -0.059523701667785645, + -0.0323486290872097, + 0.0268989410251379, + 0.01874561980366707, + 0.0128057561814785, + 0.017308175563812256, + 0.030600521713495255, + 0.07107022404670715, + -0.007656680420041084, + 0.03900393098592758, + 0.002704054117202759, + -0.050151001662015915, + -0.015263024717569351, + 0.08578639477491379, + -0.052349597215652466, + 0.009188116528093815, + 0.055868931114673615, + -0.016971921548247337, + 0.0004109707660973072, + -0.06074458733201027, + -0.02889387682080269, + 0.014716987498104572, + -0.04133320227265358, + 0.09005272388458252, + 0.04280244931578636, + -0.0037300570402294397, + 0.027053333818912506, + 0.03978683054447174, + -0.006499607115983963, + -0.05823285132646561, + -0.10117165744304657, + 0.16214996576309204, + 0.07374725490808487, + -0.006576562765985727, + -0.06669057905673981, + -0.06315204501152039, + 0.10416731238365173, + -0.027336422353982925, + -0.127847820520401, + -0.044761914759874344, + 0.08030316978693008, + 0.15398317575454712, + -0.05999171733856201, + -0.03266638144850731, + 0.023023733869194984, + 0.1316802054643631, + 0.06947454065084457, + 0.09431891143321991, + 0.08449162542819977, + 0.11324270069599152, + -0.02958572842180729, + 0.014752449467778206, + 0.07405275851488113, + 0.05709080398082733, + 0.0714445561170578, + -0.001845009159296751, + 0.0357089638710022, + -0.004875649698078632, + 0.003105737268924713, + -0.01579306460916996, + -0.025587625801563263, + -0.004861369263380766, + -0.005901547148823738, + 0.021357715129852295, + 0.014941968023777008, + 0.03187756612896919, + -0.019702687859535217, + 0.0596734955906868, + 0.03226993978023529, + -0.01706724986433983, + 0.06491198390722275, + 0.04608175903558731, + 0.03139709308743477, + 0.07700126618146896, + -0.08459654450416565, + -0.08077813684940338, + 0.04145988076925278, + -0.0035000841598957777, + 0.03311444818973541, + 0.05329100042581558, + 0.037499383091926575, + -0.007407205179333687, + 0.11428084224462509, + 0.058987583965063095, + -0.02441546879708767, + 0.03157887980341911, + -0.10306955873966217, + 0.14112037420272827, + 0.07258675992488861, + -0.03568536043167114, + 0.04172355681657791, + -0.041546594351530075, + 0.07019535452127457, + 0.06077785789966583, + -0.13787710666656494, + -0.0791168212890625, + 0.032593343406915665, + 0.020355163142085075, + -0.03335819020867348, + 0.12284095585346222, + -0.011035183444619179, + 0.03483346849679947, + 0.10580459237098694, + -0.06588597595691681, + -0.03543132543563843, + -0.005835389252752066, + 0.04690001904964447, + -0.0812503919005394, + 0.051824286580085754, + 0.055925402790308, + -0.003960063215345144, + 0.02714613452553749, + 0.10642100870609283, + -0.001443480490706861, + -0.01698671653866768, + 0.008151775225996971, + -0.02514643967151642, + 0.027306247502565384, + -0.005876511801034212, + 0.002547395648434758, + 0.02831980213522911, + 0.03893304616212845, + 0.03358163684606552, + -0.0017246401403099298, + -0.0346517451107502, + -0.11204276233911514, + 0.018413864076137543, + 0.028104856610298157, + 0.0913316160440445, + -0.013658476993441582, + 0.00232383469119668, + -0.034915491938591, + -0.061004094779491425, + 0.0025341480504721403, + -0.009763648733496666, + 0.06943570077419281, + -0.021624647080898285, + -0.004388654604554176, + 0.1112128496170044, + 0.026822529733181, + 0.01602952927350998, + -0.043513745069503784, + -0.01502235233783722, + 0.022373944520950317, + 0.0614626482129097, + -0.0835481733083725, + -0.06088887155056, + -0.0020441864617168903, + 0.042370475828647614, + -0.01576180011034012, + 0.06601649522781372, + 0.04185749962925911, + 0.005543984472751617, + 0.01601308211684227, + -0.06310105323791504, + 0.028903983533382416, + -0.09743650257587433, + -0.06784515082836151, + 0.003060117596760392, + -0.025129593908786774, + -0.026015181094408035, + 0.066642627120018, + 0.013490845449268818, + 0.05782214552164078, + -0.02752104587852955, + -0.0952022522687912, + -0.07619073987007141, + 0.05597684532403946, + 0.08000271022319794, + -0.02649606764316559, + 0.036068618297576904, + 0.06840987503528595, + -0.018654316663742065, + 0.047797709703445435, + 0.06361024081707001, + 0.12446829676628113, + -0.03480725735425949, + 0.028284952044487, + -0.06907781958580017, + 0.0770389586687088, + 0.061118997633457184, + -0.08856939524412155, + -0.07044962048530579, + -0.010542751289904118, + -0.04937030002474785, + 0.020144402980804443, + -0.01816735789179802, + 0.017114227637648582, + 0.03734929859638214, + 0.0097791263833642, + -0.08579295128583908, + -0.0838615745306015, + 0.07927669584751129, + -0.0904659628868103, + 0.009595880284905434, + -0.08989790827035904, + 0.04700317978858948, + 0.10720080137252808, + 0.042399175465106964, + -0.023628637194633484, + -0.011450308375060558, + 0.034883882850408554, + -0.018237393349409103, + 0.004418144468218088, + 0.04620610177516937, + 0.03313702344894409, + -0.11405257135629654, + -0.011874860152602196, + -0.08303601294755936, + 0.04826189577579498, + -0.029718399047851562, + 0.15472456812858582, + 0.012197725474834442, + -0.04418008401989937, + -0.0826801210641861, + 0.01825789362192154, + -0.02464769408106804, + 0.0648951604962349, + 0.0428338497877121, + 0.07521780580282211, + 0.05374845862388611, + -0.03880413621664047, + 0.12024907767772675, + 0.04216542840003967, + -0.04555374011397362, + -0.067747101187706, + -0.040939636528491974, + -0.03998100757598877, + 0.023282814770936966, + 0.0054460447281599045, + -0.09071138501167297, + -0.020179126411676407, + 0.026966780424118042, + -0.029944490641355515, + 0.0648113340139389, + 0.13851043581962585, + 0.07271739840507507, + -0.11591905355453491 + ] + }, + "p244_293.wav": { + "name": "p244", + "embedding": [ + 0.018766077235341072, + 0.07832224667072296, + -0.01338904444128275, + 0.06080423295497894, + -0.0548609234392643, + 0.050576359033584595, + -0.09788424521684647, + 0.11394108831882477, + -0.056879106909036636, + 0.11803025007247925, + -0.10151873528957367, + 0.08068136870861053, + -0.08316683769226074, + -0.17655687034130096, + -0.01658007502555847, + 0.08558399975299835, + -0.03489235043525696, + -0.02801639586687088, + -0.03741428628563881, + -0.004323628731071949, + 0.023353835567831993, + 0.024913672357797623, + 0.013999580405652523, + 0.03661104664206505, + 0.005566709209233522, + 0.07210391759872437, + -0.020662488415837288, + 0.0316840298473835, + 0.009711146354675293, + -0.005394725129008293, + -0.03358791768550873, + 0.11052357405424118, + -0.034875884652137756, + 0.011503329500555992, + 0.06418995559215546, + 0.03379853069782257, + -0.024521518498659134, + -0.03241090103983879, + -0.006856228690594435, + -0.04489932954311371, + -0.10583367943763733, + 0.05011476203799248, + 0.024063870310783386, + 0.003499245271086693, + 0.052678219974040985, + 0.0156423207372427, + -0.03558489680290222, + -0.027634311467409134, + -0.1078028678894043, + 0.12505193054676056, + 0.07614916563034058, + -0.01134906429797411, + -0.05060739070177078, + -0.06302972882986069, + 0.11003569513559341, + -0.006011045537889004, + -0.13780753314495087, + -0.06591972708702087, + 0.11863414943218231, + 0.17017588019371033, + -0.022381220012903214, + -0.003695601597428322, + -0.0056387861259281635, + 0.1256171613931656, + 0.04616585373878479, + 0.11541697382926941, + 0.032799556851387024, + 0.1092979684472084, + 0.01792016252875328, + 0.009708814322948456, + 0.09480037540197372, + 0.039220839738845825, + 0.05978573113679886, + -0.0157419852912426, + -0.010820921510457993, + 0.016308126971125603, + -0.02257700264453888, + 0.03668336197733879, + -0.02355329319834709, + -0.01680375076830387, + -0.03980802744626999, + -0.027739854529500008, + -0.014905964024364948, + -0.03182728588581085, + 0.009705748409032822, + 0.045542094856500626, + 0.06020873785018921, + -0.00687247421592474, + 0.07128147780895233, + 0.037019360810518265, + -0.05557704344391823, + 0.06628328561782837, + -0.03983638435602188, + -0.04826798290014267, + -0.02397048845887184, + -0.0005372475134208798, + 0.012752880342304707, + 0.06341224908828735, + 0.03191596269607544, + -0.004981848411262035, + 0.11297659575939178, + 0.008063608780503273, + 0.03474205359816551, + 0.04326782375574112, + -0.10992805659770966, + 0.11436183750629425, + 0.05497283488512039, + -0.014645973220467567, + 0.03035632334649563, + -0.007069403771311045, + 0.06526973098516464, + 0.10979896038770676, + -0.1270352452993393, + -0.020149005576968193, + 0.01648905500769615, + -0.007942164316773415, + -0.037712834775447845, + 0.09686160087585449, + 0.0024537418503314257, + -0.006335014011710882, + 0.13672277331352234, + -0.10170070827007294, + -0.07488036155700684, + -0.012716513127088547, + 0.029769551008939743, + -0.08896783739328384, + 0.04051545262336731, + 0.04808410629630089, + -0.0030757482163608074, + 0.013942616991698742, + 0.08829846978187561, + -0.014227330684661865, + -0.009617168456315994, + 0.020743126049637794, + -0.0762581154704094, + 0.01839030720293522, + -0.05220619589090347, + 0.00865284912288189, + 0.08152864873409271, + 0.03222652152180672, + 0.05623181536793709, + -0.006721979938447475, + -0.01321941427886486, + -0.09449884295463562, + -0.007029630243778229, + 0.07050686329603195, + 0.06973870098590851, + 0.002110447734594345, + -0.005542682483792305, + -0.043368272483348846, + -0.07919786870479584, + 0.054487816989421844, + -0.022104062139987946, + 0.09615138918161392, + -0.0447135865688324, + -0.03454030677676201, + 0.1031801849603653, + 0.0011876635253429413, + -0.016548309475183487, + -0.11301251500844955, + -0.03576128929853439, + 0.0018747929716482759, + 0.044468630105257034, + -0.10457715392112732, + -0.06522348523139954, + 0.013756644912064075, + 0.05506196618080139, + -0.008104594424366951, + 0.026059618219733238, + 0.024717506021261215, + 0.01778505928814411, + 0.011430995538830757, + -0.04185657203197479, + 0.014964859932661057, + -0.09231160581111908, + -0.07081983983516693, + -0.0074061681516468525, + -0.038231849670410156, + 0.009655090980231762, + 0.05711817368865013, + 0.008274390362203121, + 0.004020174965262413, + 0.020683590322732925, + -0.09754687547683716, + -0.09733251482248306, + 0.07647679001092911, + 0.03809097409248352, + 0.003508695401251316, + 0.06882958859205246, + 0.06191876530647278, + -0.10502425581216812, + 0.04165640473365784, + 0.03898163139820099, + 0.1351521611213684, + -0.033675599843263626, + 0.0282076895236969, + -0.0727163627743721, + 0.044218823313713074, + 0.09947332739830017, + -0.10260143876075745, + -0.08041021227836609, + -0.04103296622633934, + -0.032291460782289505, + 0.07333236932754517, + -0.04375382140278816, + -0.02577655389904976, + 0.015982430428266525, + -0.036244653165340424, + -0.08553531765937805, + -0.0913504958152771, + 0.08446788787841797, + -0.05532671511173248, + -0.018455471843481064, + -0.0708339661359787, + 0.03648616001009941, + 0.028114615008234978, + 0.03032359853386879, + -0.01918690837919712, + 0.05045837536454201, + 0.0730222761631012, + -0.07147010415792465, + -0.017639808356761932, + 0.0766962543129921, + 0.001869450556114316, + -0.0802168995141983, + -0.03556222468614578, + -0.08752631396055222, + 0.08988158404827118, + -0.030184414237737656, + 0.15392524003982544, + -0.030985843390226364, + -0.04035087674856186, + -0.05721399188041687, + 0.02088957279920578, + -0.00838535651564598, + 0.04259791225194931, + 0.05062619224190712, + 0.07299064099788666, + 0.012801427394151688, + -0.015872951596975327, + 0.14752542972564697, + 0.011669939383864403, + -0.015471728518605232, + -0.02480458654463291, + -0.038634561002254486, + -0.0808815062046051, + -0.0224862489849329, + -0.012519699521362782, + -0.120182104408741, + -0.0019618342630565166, + 0.004150859545916319, + -0.022695783525705338, + 0.04961440712213516, + 0.12317359447479248, + 0.08003267645835876, + -0.07765915989875793 + ] + }, + "p244_193.wav": { + "name": "p244", + "embedding": [ + 0.028064658865332603, + 0.10093169659376144, + -0.0209024790674448, + 0.0005015037604607642, + -0.04624292626976967, + 0.07274523377418518, + -0.15114489197731018, + 0.11999926716089249, + -0.04301624372601509, + 0.15464086830615997, + -0.07388464361429214, + 0.09885291755199432, + -0.009067868813872337, + -0.19971846044063568, + -0.024177275598049164, + 0.02904629521071911, + -0.02677609771490097, + -0.013945994898676872, + -0.037669431418180466, + -0.025288552045822144, + 0.05819498747587204, + 0.0506451353430748, + -0.01479200180619955, + -0.05680122599005699, + 0.04410255327820778, + 0.049362678080797195, + 0.007612136658281088, + 0.019799187779426575, + -0.00015100942982826382, + -0.05961752310395241, + -0.03394631668925285, + 0.1318761557340622, + -0.035015612840652466, + 0.012703672051429749, + 0.048580244183540344, + -0.014072760939598083, + 0.0036075555253773928, + -0.05344409495592117, + 0.009733493439853191, + 0.038950033485889435, + -0.023327123373746872, + 0.07290294766426086, + 0.048989102244377136, + 0.03345615044236183, + 0.018166551366448402, + 0.05316765978932381, + 0.010791055858135223, + -0.06295697391033173, + -0.06711817532777786, + 0.19449837505817413, + 0.044383518397808075, + -0.02158026397228241, + -0.04870667681097984, + -0.06490049511194229, + 0.09780507534742355, + 0.01840827241539955, + -0.10608617961406708, + -0.053192123770713806, + 0.102013498544693, + 0.14631377160549164, + -0.02272331342101097, + -0.055770739912986755, + 0.018477950245141983, + 0.1361236423254013, + -0.0034078541211783886, + 0.089718759059906, + 0.06669244170188904, + 0.12168992310762405, + 0.0202292799949646, + 0.011864868924021721, + 0.04311855137348175, + 0.05122264847159386, + 0.017698725685477257, + -0.062245968729257584, + 0.04131901264190674, + -0.030735652893781662, + -0.01098595093935728, + 0.004761946387588978, + -0.029796747490763664, + -0.020606722682714462, + 0.019907385110855103, + 0.000877486658282578, + 0.005308923311531544, + 0.020342709496617317, + -0.040731605142354965, + 0.017835749313235283, + 0.04353313520550728, + -0.010599726811051369, + 0.094170942902565, + 0.03840005025267601, + 0.04946715012192726, + 0.04376824572682381, + -0.0874771773815155, + -0.09188377857208252, + 0.07096783816814423, + 0.016629032790660858, + 0.0019821543246507645, + 0.06621650606393814, + 0.05396273359656334, + -0.02276771329343319, + 0.12169624865055084, + 0.017844896763563156, + -0.018606580793857574, + 0.013554127886891365, + -0.10569509863853455, + 0.14705581963062286, + 0.08077208697795868, + -0.01915149949491024, + 0.047597579658031464, + -0.07196494936943054, + 0.07360904663801193, + 0.0430615171790123, + -0.15370124578475952, + -0.08593811094760895, + 0.04457654431462288, + 0.01647261157631874, + -0.04098517820239067, + 0.12814576923847198, + -0.01650349237024784, + 0.004972091410309076, + 0.09837710857391357, + -0.09899020940065384, + -0.0586339607834816, + -0.04442628473043442, + 0.029755819588899612, + -0.09374802559614182, + 0.04484346881508827, + 0.0703909620642662, + -0.03302557393908501, + 0.019055038690567017, + 0.07564608007669449, + -0.009183716028928757, + 0.034275613725185394, + -0.025118662044405937, + -0.017659621313214302, + 0.048619043081998825, + -0.020642878487706184, + 0.01947825588285923, + -0.006357635371387005, + 0.038111306726932526, + 0.06730303168296814, + -0.011889657005667686, + -0.04917293041944504, + -0.10561397671699524, + 0.023614857345819473, + 0.009614656679332256, + 0.055440161377191544, + -0.023745901882648468, + -0.004637076053768396, + -0.03961402550339699, + -0.07685063034296036, + 0.013602161779999733, + -0.022146614268422127, + 0.08944978564977646, + 0.02504526823759079, + -0.015570049174129963, + 0.12435919046401978, + 0.04165079444646835, + 0.003684479743242264, + -0.049653757363557816, + -0.044736072421073914, + 0.020284350961446762, + 0.019070114940404892, + -0.10015366226434708, + -0.04773537814617157, + -0.017175287008285522, + 0.00645119184628129, + -0.01676187291741371, + 0.03483615070581436, + 0.04950835928320885, + 0.029220538213849068, + 0.0433000773191452, + -0.07386346161365509, + 0.005387182347476482, + -0.08708079904317856, + -0.03846361115574837, + -0.008275208994746208, + -0.012573392130434513, + -0.051855187863111496, + 0.11334152519702911, + -0.011024225503206253, + 0.015157445333898067, + -0.044631943106651306, + -0.0408916138112545, + -0.04860717058181763, + 0.05073310807347298, + 0.07394257932901382, + -0.022264894098043442, + 0.026369821280241013, + 0.02444506250321865, + -0.011402787640690804, + 0.03376973047852516, + 0.0785791426897049, + 0.10599788278341293, + -0.015553602017462254, + 0.027493169531226158, + -0.06009837985038757, + 0.13035555183887482, + 0.049230996519327164, + -0.06425788998603821, + -0.08028513193130493, + -0.026675259694457054, + -0.06862812489271164, + 0.022149328142404556, + -0.023004727438092232, + 0.002290364122018218, + -0.007452433463186026, + 0.0032334483694285154, + -0.08550503104925156, + -0.06634517014026642, + 0.04706482216715813, + -0.06982442736625671, + -0.016020910814404488, + -0.10891351848840714, + 0.0779048353433609, + 0.11737146228551865, + 0.05526309460401535, + -0.048146817833185196, + -0.04920608177781105, + 0.04895175248384476, + -0.05627858266234398, + 0.01980765350162983, + 0.02313810959458351, + 0.04900076612830162, + -0.08923839032649994, + 0.01320543885231018, + -0.07215215265750885, + 0.04624795913696289, + -0.07483778148889542, + 0.13847589492797852, + 0.031741637736558914, + -0.07044603675603867, + -0.06914973258972168, + 0.06395974010229111, + -0.015005374327301979, + 0.031309694051742554, + 0.03386189788579941, + 0.04783611372113228, + 0.06502298265695572, + -0.07598915696144104, + 0.104585200548172, + 0.022739706560969353, + -0.005537805147469044, + -0.07495599240064621, + -0.04264640808105469, + -0.02485761232674122, + 0.046410996466875076, + 0.023422393947839737, + -0.11223297566175461, + -0.022592881694436073, + 0.057693783193826675, + 0.019227633252739906, + 0.08285953104496002, + 0.12196313589811325, + 0.045694947242736816, + -0.11441688239574432 + ] + }, + "p244_368.wav": { + "name": "p244", + "embedding": [ + 0.054597966372966766, + 0.06794026494026184, + -0.02768591418862343, + -0.005401697941124439, + -0.020188521593809128, + 0.04107090085744858, + -0.14340251684188843, + 0.12126179039478302, + -0.021215420216321945, + 0.10495319217443466, + -0.059717752039432526, + 0.09763114899396896, + -0.032423511147499084, + -0.152787446975708, + -0.03312711417675018, + 0.0368674211204052, + -0.02028288133442402, + -0.02517843246459961, + -0.027576742693781853, + -0.014677315019071102, + 0.0429673045873642, + 0.03135883808135986, + 0.002525127027183771, + -0.01153523102402687, + 0.004896932747215033, + 0.05532139539718628, + 0.00695518683642149, + 0.011402073316276073, + 0.014647096395492554, + 0.014217379502952099, + 0.005237075500190258, + 0.06142966076731682, + -0.024166006594896317, + 0.009274882264435291, + 0.05640403553843498, + 0.014400884509086609, + -0.024316739290952682, + -0.060479458421468735, + 0.0006956632132641971, + 0.024502307176589966, + -0.041442278772592545, + 0.07500746846199036, + 0.06557668745517731, + -0.022111516445875168, + 0.041771672666072845, + 0.0070436373353004456, + 0.005612244363874197, + -0.05346980690956116, + -0.10505198687314987, + 0.15771043300628662, + 0.053827062249183655, + 0.025785794481635094, + -0.06625185906887054, + -0.02419087290763855, + 0.09482318162918091, + 8.56202095746994e-05, + -0.08090624213218689, + -0.0659714862704277, + 0.06595274060964584, + 0.12809544801712036, + -0.0298458244651556, + -0.044891294091939926, + 0.023406565189361572, + 0.09892218559980392, + 0.0306496974080801, + 0.05206165462732315, + 0.11163072288036346, + 0.10073049366474152, + -0.017706627026200294, + 0.003945580683648586, + 0.057496510446071625, + 0.06304314732551575, + 0.012680932879447937, + -0.011091801337897778, + 0.011797195300459862, + -0.027157016098499298, + -0.011047573760151863, + 0.012354746460914612, + -0.0008024691487662494, + -0.04273931682109833, + -0.014057951048016548, + -0.001459690509364009, + -0.009018465876579285, + 0.05048226937651634, + -0.0195211973041296, + 0.049049124121665955, + 0.03578001260757446, + -0.02302272617816925, + 0.0659097284078598, + 0.03899890184402466, + -0.005676360335201025, + 0.017515873536467552, + -0.04500562697649002, + -0.08900042623281479, + 0.027018975466489792, + -0.005247652530670166, + 0.010233448818325996, + 0.064513199031353, + 0.03975391387939453, + 0.015497750602662563, + 0.10694428533315659, + 0.03259456902742386, + -0.017690710723400116, + 0.0008960801060311496, + -0.08283502608537674, + 0.12349831312894821, + 0.08296424150466919, + -0.028503989800810814, + 0.031295210123062134, + -0.07373412698507309, + 0.02208525501191616, + 0.05004064366221428, + -0.10610406845808029, + -0.052143897861242294, + 0.07557830214500427, + 0.03986836597323418, + 0.0187306459993124, + 0.12801772356033325, + 0.012325256131589413, + 0.0006934603443369269, + 0.10787783563137054, + -0.0833342894911766, + -0.06913228332996368, + -0.03961227834224701, + 0.04431707784533501, + -0.052155084908008575, + 0.05045519396662712, + 0.06766574084758759, + -0.014377645216882229, + -0.002127209212630987, + 0.06171921640634537, + -0.00032047121203504503, + -0.0026335555594414473, + -0.035901837050914764, + 0.01750933565199375, + 0.05526147410273552, + -0.01948964223265648, + -0.01272566244006157, + 0.02374565415084362, + 0.051132023334503174, + 0.04217388853430748, + 0.01760914921760559, + -0.05110933631658554, + -0.12104706466197968, + 0.002807683078572154, + 0.04644662141799927, + 0.07695146650075912, + -0.04856482893228531, + -0.02853672206401825, + -0.03597293794155121, + -0.04724053293466568, + -0.026257269084453583, + -0.016987793147563934, + 0.08190922439098358, + -0.006321170832961798, + 0.00892754178494215, + 0.08382084965705872, + 0.004374565090984106, + 0.01832118257880211, + -0.025459572672843933, + -0.027531318366527557, + 0.024592887610197067, + 0.015883151441812515, + -0.07838408648967743, + -0.074302077293396, + -0.03906022757291794, + 0.026572950184345245, + -0.012810841202735901, + 0.00791997741907835, + 0.013579031452536583, + 0.0035343915224075317, + 0.016205325722694397, + -0.08096267282962799, + 0.028728468343615532, + -0.10955439507961273, + -0.035989586263895035, + -0.010934676975011826, + -0.0073814066126942635, + 0.0007349936058744788, + 0.0874292254447937, + 0.0009223666856996715, + 0.04272165521979332, + -0.01941465586423874, + -0.07535108178853989, + -0.054687634110450745, + 0.052424073219299316, + 0.08294413983821869, + -0.023709189146757126, + 0.014289806596934795, + 0.035777926445007324, + -0.0030412874184548855, + 0.015678327530622482, + 0.033716361969709396, + 0.08050978928804398, + -0.040942296385765076, + -0.020942477509379387, + -0.027544483542442322, + 0.0814032331109047, + 0.07084417343139648, + -0.09136833250522614, + -0.048834603279829025, + -0.04359143227338791, + -0.045942436903715134, + -0.01427727472037077, + -0.04610138386487961, + 0.009285246022045612, + 0.0028468479868024588, + -0.026254139840602875, + -0.10221607983112335, + -0.090653195977211, + 0.02330595627427101, + -0.04653122276067734, + 0.01661672070622444, + -0.08013215661048889, + 0.058743562549352646, + 0.11125113815069199, + 0.01397441141307354, + -0.014740772545337677, + -0.02139434777200222, + -0.018331613391637802, + -0.03534567728638649, + -0.012891126796603203, + 0.013865387067198753, + 0.05214637145400047, + -0.0958641991019249, + -0.0034252412151545286, + -0.05333008989691734, + 0.061730869114398956, + -0.061814360320568085, + 0.11231162399053574, + 0.01744024083018303, + -0.04388999193906784, + -0.07586324214935303, + -0.0031678739469498396, + -0.004547739867120981, + 0.0561864972114563, + 0.011110684834420681, + 0.028143253177404404, + 0.026374276727437973, + -0.06230119988322258, + 0.09798835217952728, + 0.06055163964629173, + -0.025798462331295013, + -0.07412344217300415, + -0.01732182875275612, + -0.02169863134622574, + 0.03376752883195877, + 0.0015755556523799896, + -0.0434403195977211, + -0.021126046776771545, + 0.016976920887827873, + -0.0027252330910414457, + 0.05588299036026001, + 0.11567628383636475, + 0.034576695412397385, + -0.09895847737789154 + ] + }, + "p244_148.wav": { + "name": "p244", + "embedding": [ + 0.04248299449682236, + 0.1088084876537323, + -0.039898257702589035, + 0.016109680756926537, + -0.007761038839817047, + 0.032458849251270294, + -0.10358981043100357, + 0.11110831797122955, + -0.04506179690361023, + 0.13135957717895508, + -0.07696053385734558, + 0.10821495950222015, + -0.043233998119831085, + -0.11114148795604706, + -0.02046075649559498, + 0.057946763932704926, + -0.008570295758545399, + 0.026915019378066063, + 0.00514995539560914, + -0.008594631217420101, + 0.05259736627340317, + 0.022356022149324417, + 0.041673265397548676, + -0.04690439999103546, + -0.0031371526420116425, + 0.059676505625247955, + -0.012141656130552292, + -0.0055268798023462296, + 0.002419542521238327, + -0.02234533242881298, + -0.010623934678733349, + 0.06984658539295197, + 0.0016246447339653969, + 0.02020179107785225, + 0.05156949907541275, + 0.03143560141324997, + -0.02695651352405548, + -0.04271716624498367, + 0.012414712458848953, + -0.0036344260443001986, + -0.04752660542726517, + 0.0379205197095871, + 0.0074498895555734634, + -0.06874533742666245, + 0.060273632407188416, + -0.028537487611174583, + -0.02265193499624729, + 0.006309090182185173, + -0.04293375089764595, + 0.13157673180103302, + 0.0700802281498909, + 0.033397648483514786, + -0.07771100103855133, + -0.01575387641787529, + 0.09487232565879822, + 0.005112245678901672, + -0.08541784435510635, + -0.020819952711462975, + 0.0306388046592474, + 0.14434334635734558, + -0.012820703908801079, + -0.044141482561826706, + 0.03894544020295143, + 0.078412726521492, + 0.007539356593042612, + 0.07224211096763611, + 0.07755531370639801, + 0.0501728318631649, + 0.026598472148180008, + 0.015210765413939953, + 0.029122186824679375, + 0.09684719890356064, + 0.05640073120594025, + -0.03136436641216278, + -0.001794097712263465, + -0.028641223907470703, + -0.06381870806217194, + -0.006069047376513481, + -0.006458558142185211, + -0.07951106876134872, + -0.0599675327539444, + -0.04045707732439041, + 0.0038311833050101995, + -0.00022782199084758759, + -0.008839325979351997, + 0.006036813370883465, + 0.06356246769428253, + -0.058796174824237823, + 0.03489162400364876, + 0.06339679658412933, + 0.010602842085063457, + 0.00932422373443842, + -0.04932007938623428, + -0.10191045701503754, + 0.010955105535686016, + 0.011345273815095425, + 0.01914011687040329, + 0.05016087740659714, + 0.05357366055250168, + 0.02968147024512291, + 0.07375020533800125, + 0.03487242013216019, + 0.035464197397232056, + 0.0016346834599971771, + -0.08760132640600204, + 0.09856240451335907, + 0.11962580680847168, + -0.0428517609834671, + 0.035678066313266754, + -0.03504303842782974, + 0.03120984323322773, + 0.06372453272342682, + -0.10126155614852905, + -0.050504401326179504, + -0.006664739456027746, + 0.0156350489705801, + 0.0522531196475029, + 0.06485053151845932, + 0.043721262365579605, + 0.0033383150584995747, + 0.09240428358316422, + -0.09696812927722931, + -0.12102443724870682, + -0.08276250213384628, + 0.046721603721380234, + -0.07468682527542114, + 0.09312871098518372, + 0.06458370387554169, + 0.024062253534793854, + -0.007651632651686668, + 0.06311263144016266, + 0.013866707682609558, + 0.026757072657346725, + -0.029613759368658066, + -0.022419927641749382, + 0.0018990151584148407, + -0.08057676255702972, + 0.02023256942629814, + 0.0683978796005249, + 0.015799807384610176, + 0.074375681579113, + 0.032963573932647705, + 0.0141293965280056, + -0.07836262881755829, + -0.013821486383676529, + 0.0955047458410263, + 0.0025049839168787003, + -0.021450141444802284, + -0.0612109899520874, + -0.005396940279752016, + -0.060798950493335724, + 0.0039175283163785934, + -0.03677001968026161, + 0.07162518799304962, + 0.004333005752414465, + 0.038920190185308456, + 0.11667513847351074, + -0.02412485145032406, + -0.00836784765124321, + -0.04515838250517845, + -0.0004311520606279373, + 0.016081498935818672, + 0.016713464632630348, + -0.116643026471138, + -0.11761742830276489, + -0.04262144863605499, + 0.009450307115912437, + 0.015945205464959145, + 0.029861222952604294, + 0.054206930100917816, + -0.014322925359010696, + 0.016983643174171448, + -0.03505007177591324, + 0.022430334240198135, + -0.10759289562702179, + -0.07379721850156784, + -0.0471261665225029, + -0.07716687768697739, + 0.006430382374674082, + 0.08667804300785065, + 0.005794629920274019, + 0.013079619035124779, + -0.016471879556775093, + -0.07220794260501862, + -0.0874302014708519, + 0.03963758051395416, + 0.04099626466631889, + -0.012121981009840965, + 0.01696222834289074, + 0.03593946248292923, + -0.024275150150060654, + 0.012220092117786407, + 0.023516254499554634, + 0.09786400198936462, + -0.041868992149829865, + -0.015040406957268715, + -0.08167489618062973, + 0.050331830978393555, + 0.1317368447780609, + -0.08616477251052856, + -0.09435716271400452, + -0.1022263914346695, + -0.05445020645856857, + 0.02426890842616558, + -0.05544189363718033, + -0.011222044005990028, + 0.005908037535846233, + -0.05400668829679489, + -0.08300652354955673, + -0.11280298978090286, + 0.0708019807934761, + -0.02463448792695999, + -0.030180634930729866, + -0.04082821309566498, + 0.040906764566898346, + 0.0038041621446609497, + -0.0018810434266924858, + -0.06067786365747452, + 0.04300433024764061, + 0.0048789381980896, + -0.04923533648252487, + -0.01746589131653309, + 0.020950013771653175, + 0.0414959080517292, + -0.04940083250403404, + -0.005177237093448639, + -0.07816188782453537, + 0.08760306239128113, + -0.07669836282730103, + 0.12723694741725922, + -0.04411640390753746, + -0.06997726112604141, + -0.08404213190078735, + 0.014857415109872818, + 0.0036375648342072964, + 0.021724119782447815, + 0.04858018457889557, + 0.03941226750612259, + -0.009746450930833817, + -0.08930712938308716, + 0.0767572671175003, + 0.03971749171614647, + 0.03837615251541138, + -0.07917232811450958, + -0.04959459230303764, + -0.05392814055085182, + 0.002488921396434307, + -0.02051621675491333, + -0.050106726586818695, + 0.034129541367292404, + -0.03328149765729904, + 0.04441455379128456, + 0.06249994784593582, + 0.06472223252058029, + 0.019791193306446075, + -0.08799661695957184 + ] + }, + "p244_287.wav": { + "name": "p244", + "embedding": [ + 0.0692286342382431, + 0.05480683594942093, + 0.007684987038373947, + 0.0032945023849606514, + -0.02195264771580696, + 0.05035950988531113, + -0.14261296391487122, + 0.1083078533411026, + -0.03737542778253555, + 0.1022167056798935, + -0.06891612708568573, + 0.08420092612504959, + 0.005649595521390438, + -0.16731896996498108, + -0.05414462834596634, + 0.04770868644118309, + -0.04743783548474312, + -0.01798628829419613, + -0.05265462026000023, + -0.026190605014562607, + 0.015089110471308231, + 0.05945054441690445, + 0.040232300758361816, + -0.013521063141524792, + 0.03452802449464798, + 0.05620187520980835, + 0.009818429127335548, + 0.04042443260550499, + 0.0005402704700827599, + -0.04905647039413452, + -0.006263858638703823, + 0.09032385796308517, + -0.024130504578351974, + -0.015338076278567314, + 0.038439683616161346, + 0.002249504439532757, + 0.030774902552366257, + -0.08525492995977402, + -0.03178837522864342, + 0.026400890201330185, + -0.0451011136174202, + 0.08129338920116425, + 0.05663622170686722, + 0.0006870478391647339, + 0.023642301559448242, + 0.014209933578968048, + -0.0037164841778576374, + -0.07629619538784027, + -0.11188864707946777, + 0.17933812737464905, + 0.03267664462327957, + 0.032216623425483704, + -0.09039906412363052, + -0.04582812264561653, + 0.08925295621156693, + -0.01917594112455845, + -0.07608664780855179, + -0.04462350904941559, + 0.05636598914861679, + 0.1631850153207779, + -0.009876868687570095, + -0.0363830141723156, + 0.043847449123859406, + 0.10999936610460281, + 0.026485320180654526, + 0.04352160170674324, + 0.10503900051116943, + 0.08791948109865189, + 0.004083937965333462, + 0.022220395505428314, + 0.04441465437412262, + 0.048213113099336624, + 0.02719922550022602, + -0.02342405542731285, + 0.026014363393187523, + -0.013228056952357292, + -0.039156924933195114, + -0.01303048338741064, + -0.020297903567552567, + -0.01681068167090416, + 0.012318119406700134, + 0.015283848159015179, + 0.014192163944244385, + 0.042268432676792145, + -0.0550118088722229, + 0.04217224195599556, + 0.00210662093013525, + -0.012524041347205639, + 0.07037238776683807, + 0.04373300075531006, + 0.025661831721663475, + 0.014635907486081123, + -0.037032321095466614, + -0.08303970843553543, + 0.01293417438864708, + 0.017564896494150162, + 0.005596471950411797, + 0.036855876445770264, + 0.0346909798681736, + -0.04222099110484123, + 0.11262392997741699, + 0.01319817639887333, + -0.004733177833259106, + -0.004792144522070885, + -0.08267088234424591, + 0.0941539779305458, + 0.09530054032802582, + -0.003206122200936079, + 0.047448284924030304, + -0.04040597006678581, + 0.022858984768390656, + 0.06782518327236176, + -0.12642446160316467, + -0.07093212008476257, + 0.04961775243282318, + 0.019923804327845573, + 0.037647850811481476, + 0.11929202079772949, + 0.00948140025138855, + 0.029270555824041367, + 0.07347947359085083, + -0.07912205159664154, + -0.04406982287764549, + -0.0067990245297551155, + 0.0386674627661705, + -0.05977544188499451, + 0.03508898988366127, + 0.051611728966236115, + -0.004733145236968994, + -0.02855514921247959, + 0.06631622463464737, + -0.00045882631093263626, + 0.005783036816865206, + -0.039893604815006256, + 0.0017935745418071747, + 0.05008835345506668, + -0.013344003818929195, + -0.016096141189336777, + 0.032731786370277405, + 0.05889163166284561, + 0.01872183382511139, + 0.025728384032845497, + -0.0713554099202156, + -0.11876139044761658, + -0.01751829870045185, + 0.02349994331598282, + 0.06863129884004593, + -0.019667314365506172, + -0.025050390511751175, + -0.06488745659589767, + -0.01902407966554165, + 0.00878208503127098, + -0.010262690484523773, + 0.07641758024692535, + 0.02366775833070278, + -0.013284876942634583, + 0.09293458610773087, + -0.014687488786876202, + 0.017383567988872528, + -0.016538089141249657, + 0.0016597704961895943, + 0.020237665623426437, + 0.02548619918525219, + -0.025365207344293594, + -0.0640617087483406, + 0.007149113342165947, + 0.009432383812963963, + -0.011131688952445984, + 0.022257991135120392, + 0.01702532358467579, + 0.0013369610533118248, + 0.008878740482032299, + -0.08414817601442337, + 0.020464539527893066, + -0.08853347599506378, + -0.028630351647734642, + 0.03762521594762802, + -0.017337292432785034, + -0.0360490158200264, + 0.09711417555809021, + 0.036133892834186554, + 0.036103926599025726, + -0.03119988553225994, + -0.0778912901878357, + -0.03259140998125076, + 0.04367799311876297, + 0.06294777989387512, + -0.008116551674902439, + 0.0055156489834189415, + 0.015379343181848526, + 0.015287667512893677, + 0.05834120512008667, + 0.06027369573712349, + 0.053702905774116516, + -0.022857004776597023, + -0.03155399113893509, + -0.025409482419490814, + 0.10521921515464783, + 0.030779791995882988, + -0.06422463804483414, + -0.05962016433477402, + -0.004290957003831863, + -0.06072331964969635, + 0.02386871911585331, + 0.006661337800323963, + 0.035139523446559906, + 0.03961062803864479, + -0.018998555839061737, + -0.10254982858896255, + -0.07192068547010422, + 0.057048458606004715, + -0.07079260796308517, + -0.01409408263862133, + -0.055671386420726776, + 0.03869445621967316, + 0.0976174846291542, + 0.02797241508960724, + 0.01609788089990616, + -0.031307436525821686, + -0.00224253349006176, + -0.0715823769569397, + -0.02703169919550419, + 0.02031353861093521, + 0.024443984031677246, + -0.0876607820391655, + 0.013503563590347767, + -0.07867026329040527, + 0.06488778442144394, + -0.040746480226516724, + 0.11283106356859207, + 0.030320683494210243, + -0.06053103506565094, + -0.09321457892656326, + 0.008813604712486267, + -0.03633468225598335, + 0.0633057951927185, + 0.03598177060484886, + 0.03379935026168823, + 0.053377654403448105, + -0.06258979439735413, + 0.077357217669487, + 0.05837476626038551, + -0.04095661640167236, + -0.07174566388130188, + -0.04580726847052574, + -0.012428422458469868, + 0.03455574810504913, + -0.00936194509267807, + -0.04435930773615837, + 0.008833218365907669, + 0.03094535693526268, + -0.00499032624065876, + 0.06910305470228195, + 0.10018431395292282, + 0.04017564281821251, + -0.10175991803407669 + ] + }, + "p244_177.wav": { + "name": "p244", + "embedding": [ + 0.044507335871458054, + 0.10290037840604782, + -0.01942838914692402, + 0.0063907690346241, + -0.04126619175076485, + 0.0843627005815506, + -0.1418745219707489, + 0.14350973069667816, + -0.04559346288442612, + 0.15234117209911346, + -0.04654005169868469, + 0.11439628154039383, + -0.01790357381105423, + -0.18213427066802979, + -0.044224731624126434, + 0.042119164019823074, + -0.07358305901288986, + -0.038187477737665176, + -0.058632660657167435, + -0.017521066591143608, + 0.0413493886590004, + 0.02630498819053173, + 0.0078112343326210976, + -0.0012402207357808948, + 0.014448297210037708, + 0.06487567722797394, + -0.011467904783785343, + 0.04016463831067085, + 0.007768734358251095, + -0.07167845964431763, + -0.02149045094847679, + 0.10485772788524628, + -0.058698564767837524, + 0.03315238654613495, + 0.05382955074310303, + -0.022961340844631195, + -0.003142670262604952, + -0.04328037425875664, + -0.014102445915341377, + 0.015298848040401936, + -0.028260469436645508, + 0.08367998152971268, + 0.0210939422249794, + 0.009135067462921143, + 0.03220939636230469, + 0.02343090809881687, + -0.01149408146739006, + -0.04386613145470619, + -0.08241796493530273, + 0.16499371826648712, + 0.08151083439588547, + -0.020411022007465363, + -0.06182187795639038, + -0.0674542784690857, + 0.08925721794366837, + -0.026139482855796814, + -0.13917896151542664, + -0.044697415083646774, + 0.0769345611333847, + 0.15594087541103363, + -0.03628110885620117, + -0.03648683428764343, + 0.026295984163880348, + 0.13706699013710022, + 0.060307685285806656, + 0.09352603554725647, + 0.08576934039592743, + 0.10748005658388138, + -0.025145884603261948, + 0.011413290165364742, + 0.05874883010983467, + 0.05749337002635002, + 0.07069246470928192, + -0.007783948909491301, + 0.051094770431518555, + -0.019684571772813797, + 0.006331183481961489, + -0.020142074674367905, + -0.03404755890369415, + -0.015640851110219955, + -0.006409103516489267, + 0.024741489440202713, + 0.0010743311140686274, + 0.046937912702560425, + -0.019743602722883224, + 0.044876035302877426, + 0.036132004112005234, + -0.025616612285375595, + 0.0575033463537693, + 0.06666213274002075, + 0.05305125191807747, + 0.07089225202798843, + -0.08957815170288086, + -0.08050308376550674, + 0.04896273463964462, + -4.942466694046743e-05, + 0.029679100960493088, + 0.0570414699614048, + 0.037622272968292236, + -0.005926609970629215, + 0.10246354341506958, + 0.04696955159306526, + -0.025673234835267067, + 0.016343584284186363, + -0.10917592793703079, + 0.14109067618846893, + 0.07756783068180084, + -0.034430764615535736, + 0.03604024648666382, + -0.04463666304945946, + 0.06836666911840439, + 0.05606304481625557, + -0.12919269502162933, + -0.0906955748796463, + 0.03903983160853386, + 0.0145482262596488, + -0.03145833685994148, + 0.1191861629486084, + 0.009720953181385994, + 0.03448380529880524, + 0.09203238785266876, + -0.07754082977771759, + -0.04164496436715126, + -0.019547145813703537, + 0.04328896850347519, + -0.08834540843963623, + 0.05817221850156784, + 0.04665100574493408, + -0.0032242448069155216, + 0.01575862616300583, + 0.1058458685874939, + -0.0060029043816030025, + 0.0041887154802680016, + 0.005531563889235258, + -0.03112679347395897, + 0.02468976378440857, + -0.013656284660100937, + 0.010801400989294052, + 0.005599747411906719, + 0.02738834358751774, + 0.05051258206367493, + -0.017434172332286835, + -0.03983341529965401, + -0.10948289185762405, + 0.013040440157055855, + 0.03244007006287575, + 0.07351240515708923, + -0.015346869826316833, + -0.0029499991796910763, + -0.015452703461050987, + -0.05347593128681183, + 0.009149023331701756, + -0.028586266562342644, + 0.06400436908006668, + -0.011156049557030201, + -0.01872202195227146, + 0.11995216459035873, + 0.023755474016070366, + 0.004615433514118195, + -0.04865787923336029, + -0.01536521129310131, + 0.015331385657191277, + 0.062423255294561386, + -0.0918792113661766, + -0.06155911833047867, + 0.0020905390847474337, + 0.033234383910894394, + 0.0048028877936303616, + 0.07626350224018097, + 0.06587320566177368, + 0.005603136960417032, + 0.023449789732694626, + -0.06388477981090546, + 0.010032905265688896, + -0.09658244252204895, + -0.07583260536193848, + -0.011855741031467915, + -0.03673208877444267, + -0.026649339124560356, + 0.07699368894100189, + 0.010135439224541187, + 0.04810210317373276, + -0.03279845789074898, + -0.07675309479236603, + -0.07960840314626694, + 0.0640387237071991, + 0.07321665436029434, + -0.02039494179189205, + 0.03280410170555115, + 0.062203727662563324, + -0.0169824231415987, + 0.04802972823381424, + 0.06645660847425461, + 0.11753946542739868, + -0.04872111603617668, + 0.025700999423861504, + -0.08670076727867126, + 0.07631438970565796, + 0.07487630099058151, + -0.08698824793100357, + -0.0757039412856102, + -0.00127976736985147, + -0.056065235286951065, + 0.010733071714639664, + -0.038011085242033005, + 0.016188420355319977, + 0.04787304252386093, + -0.00043989234836772084, + -0.09895528852939606, + -0.08916385471820831, + 0.09480084478855133, + -0.0960225835442543, + 0.008184118196368217, + -0.08192850649356842, + 0.053381916135549545, + 0.09574402123689651, + 0.04957319051027298, + -0.05337437987327576, + -0.005033590365201235, + 0.04659406840801239, + -0.01844211108982563, + 0.011635253205895424, + 0.039850831031799316, + 0.04237517714500427, + -0.10864727199077606, + -0.008472432382404804, + -0.0758974552154541, + 0.03537415713071823, + -0.056284770369529724, + 0.14548859000205994, + 0.005222897510975599, + -0.06317712366580963, + -0.08173328638076782, + 0.041449468582868576, + -0.02393939159810543, + 0.053023483604192734, + 0.030388472601771355, + 0.08063406497240067, + 0.05251232534646988, + -0.06138286367058754, + 0.11442851275205612, + 0.03890982270240784, + -0.03311581537127495, + -0.08304301649332047, + -0.04845770448446274, + -0.0363117940723896, + 0.042048197239637375, + 0.021497942507267, + -0.09967577457427979, + -0.016620216891169548, + 0.024843836203217506, + -0.01707850955426693, + 0.07017605006694794, + 0.13972100615501404, + 0.060311540961265564, + -0.13035288453102112 + ] + }, + "p244_263.wav": { + "name": "p244", + "embedding": [ + 0.04128599539399147, + 0.07598605751991272, + -0.01703360117971897, + 0.02478514425456524, + -0.06335717439651489, + 0.08377527445554733, + -0.12763366103172302, + 0.11426429450511932, + -0.06585008651018143, + 0.130933940410614, + -0.07471145689487457, + 0.09078354388475418, + -0.03528660908341408, + -0.18902921676635742, + -0.04560801386833191, + 0.059346042573451996, + -0.07185767590999603, + -0.04309976100921631, + -0.07151428610086441, + -0.017230043187737465, + 0.029046662151813507, + 0.02187749184668064, + 0.003815083298832178, + 0.0077848127111792564, + 0.038880445063114166, + 0.05359562486410141, + -0.00587601400911808, + 0.03737001121044159, + 0.010253438726067543, + -0.022297155112028122, + -0.021236151456832886, + 0.11117593199014664, + -0.04131752997636795, + 0.009576773270964622, + 0.05776389688253403, + 0.015924660488963127, + 0.0037651374004781246, + -0.06612217426300049, + -0.030195903033018112, + 0.012611115351319313, + -0.06276153773069382, + 0.076931893825531, + 0.05328954756259918, + -0.0023592787329107523, + 0.02656152844429016, + 0.025806717574596405, + -0.023553449660539627, + -0.06257037818431854, + -0.1065969318151474, + 0.16351750493049622, + 0.05849403142929077, + 0.0027965775225311518, + -0.06692974269390106, + -0.07347643375396729, + 0.12299235165119171, + -0.016869191080331802, + -0.1290738582611084, + -0.04897785931825638, + 0.09080550074577332, + 0.18446344137191772, + -0.051156461238861084, + -0.014012139290571213, + 0.007214481942355633, + 0.12299323081970215, + 0.05643310770392418, + 0.09896814823150635, + 0.07080000638961792, + 0.11513865739107132, + 0.014350561425089836, + 0.012689726427197456, + 0.09455596655607224, + 0.055783070623874664, + 0.05863562971353531, + -0.01641079969704151, + 0.021119805052876472, + 0.009808136150240898, + -0.024745317175984383, + 0.012815197929739952, + -0.034563515335321426, + 0.004890691488981247, + -0.013302087783813477, + 0.01238696463406086, + 0.025868277996778488, + 0.011318932287395, + -0.027005527168512344, + 0.05232429504394531, + 0.0227592121809721, + -0.01808975450694561, + 0.06424864381551743, + 0.03846590965986252, + -0.02277255989611149, + 0.06032843142747879, + -0.0597979873418808, + -0.09974275529384613, + 0.004211927764117718, + 0.004095435608178377, + 0.018116604536771774, + 0.053751543164253235, + 0.03604555130004883, + -0.018202871084213257, + 0.11016976833343506, + 0.04118771478533745, + -0.0010136824566870928, + 0.04419294372200966, + -0.10390569269657135, + 0.11609356105327606, + 0.07350269705057144, + -0.014546538703143597, + 0.035217300057411194, + -0.03119894675910473, + 0.07928471267223358, + 0.07784344255924225, + -0.1420353800058365, + -0.06783810257911682, + 0.05091366544365883, + 0.013413838110864162, + -0.02013235352933407, + 0.11179488897323608, + -0.017391007393598557, + 0.006360135972499847, + 0.10977926850318909, + -0.07860468327999115, + -0.035291098058223724, + -0.008562113158404827, + 0.043972499668598175, + -0.05718036741018295, + 0.026436736807227135, + 0.0379178524017334, + -0.014167545363307, + 0.009817534126341343, + 0.08710454404354095, + -0.005403401795774698, + -0.015400934033095837, + 0.015755411237478256, + -0.03670327365398407, + 0.05373668670654297, + -0.0224139504134655, + -0.004703362472355366, + 0.07648744434118271, + 0.05891390144824982, + 0.04091031104326248, + 0.0071042245253920555, + -0.04414096847176552, + -0.10686540603637695, + 0.0027092299424111843, + 0.04072807729244232, + 0.0961134284734726, + -0.009441401809453964, + 0.01563969813287258, + -0.057062502950429916, + -0.0801522433757782, + 0.037142105400562286, + -0.014690391719341278, + 0.10363982617855072, + -0.012510514818131924, + -0.018634168431162834, + 0.0925869345664978, + 0.0008132611401379108, + -0.01129884272813797, + -0.05854763835668564, + -0.015685176476836205, + 0.016685033217072487, + 0.05314243584871292, + -0.07423895597457886, + -0.05283540487289429, + 0.01611187681555748, + 0.03279174864292145, + -0.024663999676704407, + 0.028591422364115715, + 0.020020995289087296, + 0.014441312290728092, + 0.032588060945272446, + -0.06198543682694435, + 0.01629823073744774, + -0.11632714420557022, + -0.04015820100903511, + 0.007386847399175167, + -0.03576727211475372, + -0.02159692347049713, + 0.07925155758857727, + 0.017603199928998947, + 0.02251569740474224, + -0.0007731998339295387, + -0.10292688012123108, + -0.05028044059872627, + 0.08091562986373901, + 0.061586037278175354, + 0.0030805757269263268, + 0.045238859951496124, + 0.0681837946176529, + -0.021632235497236252, + 0.041553035378456116, + 0.07853146642446518, + 0.12201513350009918, + -0.01677505485713482, + 0.010314326733350754, + -0.0555390864610672, + 0.09369504451751709, + 0.04927774518728256, + -0.09229934960603714, + -0.07560437172651291, + -0.019447151571512222, + -0.04411613941192627, + 0.03195546194911003, + -0.027498751878738403, + 0.015715764835476875, + 0.008266070857644081, + -0.0093894237652421, + -0.0955914855003357, + -0.08007149398326874, + 0.07545959949493408, + -0.07774260640144348, + -0.015143567696213722, + -0.07147689908742905, + 0.03594396263360977, + 0.10226476192474365, + 0.03887157142162323, + -0.003692230675369501, + 0.021670151501893997, + 0.052344802767038345, + -0.0735076442360878, + -0.021128442138433456, + 0.04399508982896805, + -0.0030346475541591644, + -0.10147459805011749, + 0.0016169245354831219, + -0.07501290738582611, + 0.07262503355741501, + -0.0329170897603035, + 0.1617656946182251, + -0.008428012952208519, + -0.04238666221499443, + -0.06451249867677689, + 0.028731701895594597, + -0.03555263951420784, + 0.05893290787935257, + 0.0522683821618557, + 0.07954270392656326, + 0.04428446665406227, + -0.03126406669616699, + 0.13565810024738312, + 0.026286523789167404, + -0.03735680133104324, + -0.052023373544216156, + -0.04361040145158768, + -0.047741711139678955, + -0.0012032240629196167, + -0.007811387535184622, + -0.07947827130556107, + 0.002552179852500558, + 0.02337745577096939, + -0.03732242062687874, + 0.04848259314894676, + 0.13554911315441132, + 0.09589840471744537, + -0.10047736018896103 + ] + }, + "p244_294.wav": { + "name": "p244", + "embedding": [ + 0.05459770932793617, + 0.09692078828811646, + 0.034110262989997864, + -0.0064083002507686615, + -0.0016159266233444214, + 0.06098071485757828, + -0.0019242726266384125, + 0.029791438952088356, + 0.043669626116752625, + 0.03141648694872856, + -0.13712216913700104, + 0.015368815511465073, + -0.04275570809841156, + -0.09147221595048904, + 0.0021834485232830048, + 0.003703085705637932, + -0.04947929084300995, + 0.033372387290000916, + -0.08244379609823227, + -0.04842475801706314, + -0.02709442377090454, + 0.01844625733792782, + 0.04003070294857025, + -0.012804122641682625, + 0.008990863338112831, + -0.0015538651496171951, + -0.033967334777116776, + 0.0038456767797470093, + -0.004893500357866287, + -0.02232736349105835, + -0.017596619203686714, + 0.052045293152332306, + -0.020494090393185616, + 0.003293451853096485, + -0.012989339418709278, + -0.01611274853348732, + 0.04672421142458916, + -0.058031462132930756, + -0.07602435350418091, + 0.08422161638736725, + -0.05447268858551979, + 0.039856910705566406, + 0.036663204431533813, + -0.03148551285266876, + 0.06773682683706284, + 0.028575213626027107, + -0.06859086453914642, + -0.018293052911758423, + -0.0930774137377739, + 0.12601858377456665, + 0.019773390144109726, + 0.0027833152562379837, + -0.043309565633535385, + -0.0038204602897167206, + 0.08016970753669739, + -0.026515642181038857, + -0.05711697041988373, + -0.013333331793546677, + 0.03941173851490021, + 0.01232369989156723, + 0.02178972214460373, + -0.018486149609088898, + -0.0008278060704469681, + 0.029108721762895584, + 0.032468684017658234, + 0.003423718735575676, + 0.07366481423377991, + 0.0882650762796402, + -0.034370917826890945, + 0.027483398094773293, + 0.041749030351638794, + -0.015110151842236519, + 0.035660263150930405, + -0.024566374719142914, + -0.002788074780255556, + 0.006025985814630985, + -0.0012370645999908447, + -0.00061781145632267, + -0.011827313341200352, + 0.0045961979776620865, + 0.05302602797746658, + -0.008314095437526703, + 0.005373794585466385, + -0.028439205139875412, + -0.06640344113111496, + -0.018115470185875893, + 0.020426370203495026, + 0.10739146918058395, + 0.06657235324382782, + 0.030314920470118523, + -0.02405921369791031, + 0.05070885270833969, + -0.004432052373886108, + -0.06371951103210449, + -0.014773405157029629, + 0.02326551079750061, + -0.0334271639585495, + 0.010177874937653542, + 0.0128205306828022, + -0.033079661428928375, + 0.10438427329063416, + -0.012929296121001244, + 0.017319563776254654, + 0.003089758800342679, + -0.05310531705617905, + 0.026461442932486534, + 0.06254327297210693, + -0.007300850469619036, + 0.05399668216705322, + 0.05127112194895744, + 0.07161993533372879, + 0.054211489856243134, + -0.04744037240743637, + 0.02229412831366062, + -0.01912686601281166, + 0.02145194821059704, + 0.027147062122821808, + 0.04858610779047012, + -0.014697854407131672, + 0.00962826982140541, + 0.11358815431594849, + -0.05141371488571167, + 0.045244377106428146, + 0.0693792775273323, + -0.013311095535755157, + 0.015627872198820114, + -0.010845188051462173, + 0.01296083815395832, + 0.0010310275247320533, + -0.018267296254634857, + 0.032023265957832336, + 0.02748061530292034, + 0.016742747277021408, + -0.058643072843551636, + 0.007779669016599655, + 0.014255264773964882, + -0.011432375758886337, + -0.032026465982198715, + 0.06818370521068573, + 0.0639820247888565, + -0.004529863595962524, + 0.03531370311975479, + -0.08471833169460297, + -0.041573092341423035, + 0.033655498176813126, + -0.029919598251581192, + -0.008899053558707237, + 0.0473807118833065, + 0.0228391382843256, + -0.07020162791013718, + -0.01822015270590782, + 0.0824078917503357, + -0.024868350476026535, + 0.05708181858062744, + 0.05647536367177963, + -0.04861126095056534, + 0.045512981712818146, + 0.007925758138298988, + 0.0029540322721004486, + -0.059834592044353485, + -0.08462066203355789, + -0.017674196511507034, + 0.02872186154127121, + -0.02420901134610176, + -0.03424072265625, + 0.00038669025525450706, + -0.036492180079221725, + 0.018306896090507507, + 0.003338536247611046, + 0.06238124147057533, + -0.05255705863237381, + -0.02036033384501934, + -0.07615116238594055, + 0.006157362833619118, + -0.01492508128285408, + -0.07994262129068375, + 0.07392583042383194, + 0.010979946702718735, + 0.03220098838210106, + 0.09884827584028244, + -0.0093125831335783, + -0.024086738005280495, + -0.02919691987335682, + -0.08508110046386719, + 0.03622109815478325, + 0.0648600310087204, + 0.014950856566429138, + 0.0005343131488189101, + 0.0695033073425293, + 0.07146354019641876, + -0.043819110840559006, + 0.06294053792953491, + 0.006943363696336746, + 0.04776650294661522, + -0.03678154945373535, + 0.02134629525244236, + 0.05925159901380539, + 0.021911825984716415, + -0.014504063874483109, + -0.05298515781760216, + -0.0887821614742279, + -0.03641137108206749, + -0.01660066470503807, + 0.0271434523165226, + 0.04009388014674187, + 0.0022525531239807606, + 0.029352184385061264, + -0.01085197739303112, + -0.014458512887358665, + -0.08562184125185013, + -0.02121656946837902, + 0.01790078915655613, + -0.03444860503077507, + -0.009848552756011486, + 0.010793544352054596, + 0.014673493802547455, + 0.032983336597681046, + 0.016017448157072067, + 0.057917576283216476, + 0.0021679699420928955, + -0.024285046383738518, + -0.06794047355651855, + -0.0030190758407115936, + 0.016725914552807808, + 0.023800421506166458, + -0.016430489718914032, + -0.08820229768753052, + 0.06737106293439865, + 0.04852858558297157, + 0.05988413840532303, + 0.04306931421160698, + 0.01472826860845089, + -0.02986275963485241, + 0.056540168821811676, + -0.05957406759262085, + 0.015854213386774063, + 0.008490528911352158, + -0.0008817892521619797, + 0.05486217141151428, + -0.005926603451371193, + 0.04668886959552765, + 0.013959752395749092, + -0.04538290947675705, + -0.0045194728299975395, + 0.02113373950123787, + -0.06746774166822433, + -0.06198063865303993, + -0.0027016643434762955, + -0.03714124858379364, + 0.014241979457437992, + 0.01456441730260849, + 0.03408201038837433, + 0.026708047837018967, + 0.05251551792025566, + 0.05870480462908745, + -0.029065687209367752 + ] + }, + "p244_135.wav": { + "name": "p244", + "embedding": [ + 0.023152079433202744, + 0.09741730242967606, + -0.0059401304461061954, + -0.005204157903790474, + 0.03634214773774147, + 0.03535531088709831, + -0.15766490995883942, + 0.09233208000659943, + -0.028851093724370003, + 0.1348705291748047, + -0.02905436046421528, + 0.08282940089702606, + -0.026874873787164688, + -0.10395929962396622, + -0.020957835018634796, + 0.04384145140647888, + -0.03349773585796356, + 0.005120584741234779, + 0.004561613313853741, + -0.04811861738562584, + 0.029772508889436722, + 0.018856395035982132, + 0.038218241184949875, + -0.07529878616333008, + -0.023433564230799675, + 0.09012305736541748, + -0.015199529007077217, + 0.020292077213525772, + -0.016277670860290527, + -0.05402466654777527, + -0.00019069109112024307, + 0.07217034697532654, + -0.017931345850229263, + -0.005795499309897423, + 0.0464404821395874, + 0.010099080391228199, + -0.019779304042458534, + -0.00823136791586876, + 0.0235019251704216, + 0.043510861694812775, + -0.04943716526031494, + 0.07658616453409195, + 0.011271169409155846, + 0.0025685979053378105, + 0.07787811756134033, + -0.024300359189510345, + -0.008092183619737625, + 0.02601260505616665, + -0.03273119404911995, + 0.08107335865497589, + 0.07730451971292496, + -0.035827118903398514, + -0.04903008043766022, + 0.0060870107263326645, + 0.07299045473337173, + -0.004551445133984089, + -0.11414709687232971, + -0.006249286234378815, + 0.04710996150970459, + 0.10727240145206451, + -0.03295926749706268, + -0.03396943211555481, + 0.03118891641497612, + 0.08713142573833466, + 0.01949862390756607, + 0.08233736455440521, + 0.0864095538854599, + 0.05616934224963188, + -0.002649313537403941, + -0.06313405930995941, + -0.0016063060611486435, + 0.06908921897411346, + 0.03489881008863449, + -0.008097958751022816, + 0.043651033192873, + -0.04006895795464516, + -0.03346656262874603, + -0.03596054017543793, + -0.030230427160859108, + -0.05994865298271179, + -0.055788472294807434, + -0.018438048660755157, + -0.004831886850297451, + 0.0500052385032177, + 0.005923507735133171, + 0.004992896690964699, + 0.07878495007753372, + -0.034897416830062866, + 0.027589812874794006, + 0.06915529072284698, + 0.05788910388946533, + 0.02284521982073784, + -0.055793389678001404, + -0.03556106984615326, + 0.01592733897268772, + -0.0023698201403021812, + 0.04201061278581619, + 0.03706873580813408, + 0.03596065938472748, + 0.02524399757385254, + 0.074647456407547, + 0.029606565833091736, + -0.02129148691892624, + -0.012736542150378227, + -0.07534854114055634, + 0.07479290664196014, + 0.11114946752786636, + -0.03819539397954941, + 0.01701013371348381, + -0.04315700754523277, + 0.001974867656826973, + 0.005336157977581024, + -0.08184857666492462, + -0.033932819962501526, + 0.030174821615219116, + 0.05284665524959564, + 0.017482154071331024, + 0.10176478326320648, + 0.03601876273751259, + 0.007964854128658772, + 0.06117773801088333, + -0.02712995745241642, + -0.06513582170009613, + -0.08050549775362015, + 0.0726812481880188, + -0.0772937461733818, + 0.08192472159862518, + 0.0410720556974411, + 0.053981244564056396, + -5.988357588648796e-05, + 0.07112900912761688, + 0.03771350905299187, + 0.002997546922415495, + -0.03868882730603218, + -0.011506887152791023, + 0.017934169620275497, + -0.02998996153473854, + 0.06013557314872742, + 0.0058275917544960976, + 0.006400484591722488, + 0.08703646063804626, + 0.010072679258883, + 0.018033944070339203, + -0.054202016443014145, + -0.012071235105395317, + 0.032916150987148285, + 0.009730007499456406, + -0.018693195655941963, + -0.052879441529512405, + -0.013050433248281479, + -0.06234798580408096, + -0.023303914815187454, + -0.08574208617210388, + 0.07188475131988525, + -0.007570648565888405, + 0.00465709064155817, + 0.10330045223236084, + 0.0035562007687985897, + 0.0039936089888215065, + -0.0093446159735322, + 0.0004977677017450333, + -0.024095721542835236, + 0.03508252277970314, + -0.12515079975128174, + -0.09142842143774033, + -0.01919148489832878, + 0.02442741021513939, + 0.04023757204413414, + 0.06503134965896606, + 0.0722869336605072, + -0.004145444370806217, + 0.013488314114511013, + 0.011189866811037064, + -0.008618982508778572, + -0.07647408545017242, + -0.07290400564670563, + -0.049331702291965485, + -0.07295039296150208, + -0.03239937126636505, + 0.07065114378929138, + -0.003519633784890175, + 0.061097707599401474, + -0.02508750930428505, + -0.045581988990306854, + -0.08626221120357513, + 0.04207466170191765, + 0.06388793885707855, + -0.04866380617022514, + 0.014923077076673508, + 0.06266094744205475, + -0.014633476734161377, + 0.023118089884519577, + 0.0540110319852829, + 0.06507842242717743, + -0.036700256168842316, + 0.01881781406700611, + -0.10154832899570465, + 0.03728842735290527, + 0.1263507604598999, + -0.0640719011425972, + -0.06301351636648178, + -0.028203463181853294, + -0.073729507625103, + 0.01431583147495985, + -0.058322980999946594, + -0.015351168811321259, + 0.011649432592093945, + -0.0032535537611693144, + -0.09025150537490845, + -0.08877411484718323, + 0.05652223527431488, + -0.05885806307196617, + 0.005997309461236, + -0.043803319334983826, + 0.032793596386909485, + 0.013186916708946228, + 0.06229151040315628, + -0.06326690316200256, + 0.03381779044866562, + 0.052496038377285004, + -0.005334106273949146, + 0.04825032502412796, + 0.03551916778087616, + 0.06365902721881866, + -0.06620834767818451, + -0.0168315302580595, + -0.06659018993377686, + 0.060722533613443375, + -0.07018409669399261, + 0.0692947655916214, + 0.0461626760661602, + -0.057385947555303574, + -0.04328979551792145, + 0.023377705365419388, + -0.007375683635473251, + 0.03373037651181221, + 0.03742073103785515, + 0.05114341527223587, + 0.019233204424381256, + -0.040658656507730484, + 0.05962540581822395, + 0.01966499537229538, + 0.02538778819143772, + -0.05764186009764671, + -0.027959484606981277, + -0.04696515575051308, + 0.033016059547662735, + 0.047041065990924835, + -0.07674629986286163, + 0.0011832164600491524, + -0.006663663312792778, + 0.01351076178252697, + 0.03883802145719528, + 0.07107052206993103, + 0.019237473607063293, + -0.0993230864405632 + ] + }, + "p244_039.wav": { + "name": "p244", + "embedding": [ + 0.03452495485544205, + 0.09113936126232147, + -0.02807021513581276, + 0.027674861252307892, + -0.06901799887418747, + 0.07104932516813278, + -0.1240689754486084, + 0.13344720005989075, + -0.05678536742925644, + 0.12918883562088013, + -0.04733916372060776, + 0.1164083257317543, + -0.0435982346534729, + -0.17250755429267883, + -0.019068442285060883, + 0.0685286745429039, + -0.06407567858695984, + -0.0567045658826828, + -0.05430130660533905, + -0.024232761934399605, + 0.02634439244866371, + 0.027563832700252533, + 0.021898195147514343, + 0.0037842821329832077, + 0.023540113121271133, + 0.07967697083950043, + -0.0024690390564501286, + 0.03802308812737465, + 0.006210951134562492, + -0.05959038436412811, + -0.038175068795681, + 0.07783909887075424, + -0.055609963834285736, + 0.004352572839707136, + 0.044309139251708984, + -0.006673365831375122, + 0.007752086967229843, + -0.05395379662513733, + -0.024816643446683884, + 0.010710205882787704, + -0.048644691705703735, + 0.0851868987083435, + 0.028173040598630905, + -0.015676124021410942, + 0.02468530274927616, + 0.01629478484392166, + -0.017444442957639694, + -0.04212478548288345, + -0.10894104838371277, + 0.16576528549194336, + 0.07792654633522034, + -0.011281299404799938, + -0.052508577704429626, + -0.07379334419965744, + 0.10837060213088989, + -0.01277498435229063, + -0.12587250769138336, + -0.05935867875814438, + 0.0760241448879242, + 0.1493900716304779, + -0.04268559068441391, + -0.028354642912745476, + 0.0199174452573061, + 0.11805108189582825, + 0.0691637396812439, + 0.08714838325977325, + 0.06688728928565979, + 0.11302471160888672, + -0.016877448186278343, + 0.0058128125965595245, + 0.07747972011566162, + 0.07227548956871033, + 0.05270903557538986, + 0.01096506230533123, + 0.03515718877315521, + -0.0074975392781198025, + -0.007881204597651958, + 0.0007107113488018513, + -0.0194461140781641, + -0.028660684823989868, + -0.005686155520379543, + 0.0169783066958189, + 0.012060223147273064, + 0.022798454388976097, + -0.002281412947922945, + 0.06908160448074341, + 0.039669353514909744, + -0.01327459141612053, + 0.06779712438583374, + 0.027073048055171967, + 0.003198810387402773, + 0.07844610512256622, + -0.08185259997844696, + -0.06457537412643433, + 0.03036617487668991, + 0.005941013339906931, + 0.029900038614869118, + 0.05931316316127777, + 0.03459172695875168, + -0.007403201423585415, + 0.1252930611371994, + 0.04622042179107666, + -0.001258991425856948, + 0.03196042776107788, + -0.09170105308294296, + 0.14176511764526367, + 0.06982070207595825, + -0.031273163855075836, + 0.03707767277956009, + -0.034169696271419525, + 0.06605812907218933, + 0.06151140481233597, + -0.12980085611343384, + -0.08624441921710968, + 0.02376975491642952, + 0.007056825328618288, + -0.03618696331977844, + 0.12434963881969452, + -0.0011281119659543037, + 0.03457741439342499, + 0.12813995778560638, + -0.09511110186576843, + -0.053252480924129486, + -0.001085975207388401, + 0.04598922282457352, + -0.07676871865987778, + 0.04736027866601944, + 0.05796707049012184, + -0.011520478874444962, + 0.029647361487150192, + 0.096123106777668, + -0.014565447345376015, + 0.0005589481443166733, + 0.027220789343118668, + -0.047706518322229385, + 0.015413366258144379, + -0.024416249245405197, + -0.008328471332788467, + 0.061628419905900955, + 0.03454606607556343, + 0.0511992946267128, + -0.02460273541510105, + -0.027242150157690048, + -0.1334373950958252, + 0.019158165901899338, + 0.034600451588630676, + 0.08311831951141357, + -0.011632947251200676, + -0.008430896326899529, + -0.036042604595422745, + -0.07167571783065796, + 0.008893825113773346, + -0.004112382419407368, + 0.08552367985248566, + -0.03929881751537323, + -0.011441257782280445, + 0.10401059687137604, + 0.032531190663576126, + 0.001271229819394648, + -0.05946318060159683, + -0.04089515283703804, + 0.01465566921979189, + 0.049633849412202835, + -0.07746708393096924, + -0.07782280445098877, + -0.003218310885131359, + 0.04652273654937744, + -0.012186771258711815, + 0.06431117653846741, + 0.04941924661397934, + 0.022992730140686035, + 0.019034449011087418, + -0.05408584326505661, + 0.02870144695043564, + -0.07829972356557846, + -0.06670744717121124, + -0.005202499683946371, + -0.02171381749212742, + -0.03455350920557976, + 0.07468392699956894, + 0.006643473170697689, + 0.05565433204174042, + -0.024039601907134056, + -0.07702488452196121, + -0.08659431338310242, + 0.059704288840293884, + 0.05510610342025757, + -0.010910090990364552, + 0.04358004778623581, + 0.0703972578048706, + -0.02365177683532238, + 0.03980516642332077, + 0.05007283017039299, + 0.11998628824949265, + -0.03361207991838455, + 0.010733604431152344, + -0.06827697157859802, + 0.07469190657138824, + 0.068604975938797, + -0.09395161271095276, + -0.05628751218318939, + -0.022331485524773598, + -0.05472203344106674, + 0.037674590945243835, + -0.03950042277574539, + 0.00900814589112997, + 0.0321948304772377, + 0.0036626129876822233, + -0.09853214770555496, + -0.09387937188148499, + 0.08493678271770477, + -0.08031099289655685, + -0.00446568476036191, + -0.07738938182592392, + 0.04300074279308319, + 0.08873571455478668, + 0.053508080542087555, + -0.03370709717273712, + 0.00267464155331254, + 0.05076988786458969, + -0.0256606787443161, + 0.027654945850372314, + 0.07335919141769409, + 0.04329894483089447, + -0.09374304860830307, + -0.013861390762031078, + -0.08887840807437897, + 0.04297950863838196, + -0.0341179184615612, + 0.16169285774230957, + 0.0035016387701034546, + -0.036780983209609985, + -0.08410822600126266, + 0.03573472797870636, + -0.03151992708444595, + 0.0613817535340786, + 0.032926950603723526, + 0.07025118172168732, + 0.05510089918971062, + -0.045611269772052765, + 0.13286525011062622, + 0.04163186624646187, + -0.04257578402757645, + -0.06335237622261047, + -0.04410955682396889, + -0.051591657102108, + 0.038163717836141586, + 0.020653005689382553, + -0.09552693367004395, + -0.021972300484776497, + 0.022965526208281517, + -0.008364957757294178, + 0.0680304765701294, + 0.13970616459846497, + 0.07336626946926117, + -0.09822914004325867 + ] + }, + "p244_250.wav": { + "name": "p244", + "embedding": [ + 0.062431447207927704, + 0.1055077388882637, + 0.0719587653875351, + -0.0017626192420721054, + 0.01648172177374363, + 0.011706388555467129, + -0.0732860416173935, + 0.07602834701538086, + 0.046242982149124146, + 0.08620595932006836, + -0.10527466237545013, + 0.07213811576366425, + -0.058775804936885834, + -0.10755819082260132, + -0.07280032336711884, + 0.0035202298313379288, + -0.07658751308917999, + -0.008769907057285309, + -0.011892813257873058, + -0.03454851359128952, + 0.017723968252539635, + 0.002853741869330406, + 0.07499523460865021, + -0.023043876513838768, + -0.025650162249803543, + 0.04952001944184303, + 0.01879957504570484, + 0.02826358750462532, + 0.034655049443244934, + -0.04409731179475784, + 0.059410445392131805, + 0.018725212663412094, + 0.019333552569150925, + 0.03222040832042694, + 0.04541291669011116, + 0.015718013048171997, + 0.01366178598254919, + -0.012472366914153099, + -0.015246894210577011, + 0.05869060009717941, + -0.011923854239284992, + 0.049618229269981384, + 0.017274901270866394, + -0.05264103040099144, + 0.05863826721906662, + 0.033894263207912445, + -0.037105221301317215, + 0.0021170377731323242, + -0.10726907849311829, + 0.1230846494436264, + 0.021869661286473274, + 0.02329801581799984, + -0.06757653504610062, + -0.004025541245937347, + 0.07061650604009628, + -0.042555369436740875, + -0.08233536779880524, + 0.00034937169402837753, + 0.04897359758615494, + 0.05953141674399376, + -0.03580698370933533, + -0.05203752964735031, + -0.017815086990594864, + 0.045831747353076935, + 0.03294871747493744, + 0.012103233486413956, + 0.10486552119255066, + 0.08104012161493301, + -0.019803527742624283, + 0.029939714819192886, + 0.0404583178460598, + 0.016506722196936607, + 0.04867973178625107, + 0.009029091335833073, + 0.014505889266729355, + -0.03871307522058487, + -0.005139422602951527, + -0.00021542096510529518, + -0.004956761375069618, + -0.035853900015354156, + 0.015884365886449814, + -0.02970482036471367, + 0.012992695905268192, + 0.01892855390906334, + -0.031174639239907265, + 0.02334025874733925, + -0.0011029792949557304, + 0.021739188581705093, + 0.05173725634813309, + 0.043126001954078674, + 0.033411115407943726, + 0.04900289699435234, + -0.04000385105609894, + -0.09918032586574554, + -0.031840428709983826, + -0.05493808910250664, + 0.05054762214422226, + 0.022552907466888428, + 0.03326025605201721, + 0.010650456883013248, + 0.08386949449777603, + 0.036290764808654785, + -0.0348379984498024, + -0.014407012611627579, + -0.08405423164367676, + 0.040549520403146744, + 0.09424307942390442, + -0.010251492261886597, + -0.00920802727341652, + -0.011925606057047844, + 0.057332783937454224, + 0.05337955802679062, + -0.037124279886484146, + -0.023837216198444366, + 0.005821993574500084, + 0.05783270299434662, + 0.03503227233886719, + 0.07044202089309692, + -0.013608439825475216, + 0.02767532505095005, + 0.1217494085431099, + -0.03475397825241089, + 0.008493371307849884, + -0.020756468176841736, + -0.00910147838294506, + -0.03746757656335831, + 0.04849274456501007, + 0.017566323280334473, + 0.013705388642847538, + -0.015677576884627342, + 0.044619832187891006, + 0.017076361924409866, + -0.011637162417173386, + -0.0628896951675415, + -0.015701444819569588, + 0.04721507802605629, + -0.00780488969758153, + 0.014239276759326458, + 0.034589026123285294, + 0.080256886780262, + 0.027128536254167557, + 0.06867227703332901, + -0.05274093151092529, + -0.028290964663028717, + 0.028087947517633438, + 0.030750615522265434, + -0.004874279722571373, + -0.008929851464927197, + -0.07355612516403198, + -0.040170133113861084, + 0.040504783391952515, + 0.06173902004957199, + -0.023618973791599274, + 0.047443144023418427, + 0.012195669114589691, + 0.003977837041020393, + 0.09765516966581345, + -0.011126579716801643, + -0.01099430676549673, + -0.027726374566555023, + -0.06543842703104019, + -0.025217559188604355, + 0.017444688826799393, + -0.14914390444755554, + -0.04372129216790199, + -0.04174049198627472, + 0.014871444553136826, + 0.011410490609705448, + 0.020001566037535667, + 0.05797942355275154, + -0.033873897045850754, + 0.01121208444237709, + 0.012561148963868618, + -0.0008125659078359604, + -0.040627654641866684, + -0.09612931311130524, + 0.009742990136146545, + -0.02788529545068741, + 0.013036103919148445, + 0.04047970846295357, + -0.02767289988696575, + 0.03477858379483223, + -0.02697950042784214, + -0.07211016863584518, + -0.02981290966272354, + 0.07507242262363434, + 0.02910318598151207, + 0.007929733023047447, + 0.041007086634635925, + 0.043032798916101456, + -0.018553080037236214, + 0.08752802014350891, + -0.021110326051712036, + 0.06976930797100067, + -0.06684784591197968, + 0.011702246963977814, + -0.022627564147114754, + 0.013361742720007896, + 0.08069506287574768, + -0.039607301354408264, + -0.10544412583112717, + -0.05867569148540497, + -0.03933628648519516, + 0.029441125690937042, + -0.015022898092865944, + -0.03169183060526848, + 0.019883954897522926, + -0.012003048323094845, + -0.0503416582942009, + -0.0827881395816803, + 0.014340793713927269, + 0.0034641996026039124, + 0.011428428813815117, + -0.06133219599723816, + 0.02851206809282303, + 0.006955187767744064, + 0.00915826391428709, + -0.012972543947398663, + 0.05632566660642624, + -0.025707431137561798, + -0.020661504939198494, + -0.0511556938290596, + -0.02719610556960106, + 0.04003056883811951, + 0.0014334768056869507, + -0.040297575294971466, + -0.05317388474941254, + 0.03939535841345787, + -0.008402019739151001, + 0.06413179636001587, + 0.02613222599029541, + -0.0028604064136743546, + 0.014601640403270721, + -0.005364725366234779, + -0.06329908967018127, + 0.038015615195035934, + 0.03844130039215088, + 0.0024194493889808655, + -0.00031972676515579224, + -0.042167793959379196, + 0.08011392503976822, + 0.03018803335726261, + -0.01578505150973797, + -0.05181126669049263, + -0.01699543185532093, + -0.0622689351439476, + -0.062031641602516174, + 0.00442867074161768, + -0.04469887539744377, + 0.005384992808103561, + -0.01816532388329506, + 0.029129192233085632, + 0.02449989877641201, + 0.0841723084449768, + 0.008989982306957245, + -0.01770438626408577 + ] + }, + "p244_395.wav": { + "name": "p244", + "embedding": [ + 0.06550323963165283, + 0.08433538675308228, + -0.01784982718527317, + 0.042128533124923706, + -0.0611109584569931, + 0.0825430303812027, + -0.11566765606403351, + 0.12361620366573334, + -0.048154883086681366, + 0.13537082076072693, + -0.07359838485717773, + 0.1323944330215454, + -0.023047588765621185, + -0.16341546177864075, + -0.04204190894961357, + 0.05769350379705429, + -0.045354656875133514, + -0.024428818374872208, + -0.05983767658472061, + -0.005813024938106537, + 0.030469555407762527, + 0.015851859003305435, + 0.04962851107120514, + 0.010186433792114258, + 0.019705165177583694, + 0.06448869407176971, + 0.010008448734879494, + 0.07087679952383041, + 0.04192063957452774, + -0.06828481703996658, + -0.044956106692552567, + 0.10697366297245026, + -0.041706833988428116, + 0.015813250094652176, + 0.05696561187505722, + -0.00443008728325367, + 0.005681009031832218, + -0.06760845333337784, + -0.019102338701486588, + -0.0051755537278950214, + -0.042273592203855515, + 0.07852160185575485, + 0.019778680056333542, + -0.02376950904726982, + 0.04094938561320305, + 0.016479993239045143, + -0.028815045952796936, + -0.04552776366472244, + -0.10375819355249405, + 0.1447528898715973, + 0.06393130123615265, + -0.011723598465323448, + -0.06754104793071747, + -0.05448810011148453, + 0.09959813952445984, + -0.029199954122304916, + -0.11930166929960251, + -0.055169977247714996, + 0.07341191172599792, + 0.15536415576934814, + -0.04089302942156792, + -0.023522716015577316, + 0.01840304583311081, + 0.12300778925418854, + 0.08684463798999786, + 0.09674455225467682, + 0.08758467435836792, + 0.12548743188381195, + -0.006790135521441698, + 0.042646609246730804, + 0.0560179203748703, + 0.06942833214998245, + 0.061708252876996994, + 0.013477151282131672, + 0.03933752700686455, + -0.008483430370688438, + 0.001742625143378973, + -0.0003776503726840019, + -0.03048553504049778, + -0.013693335466086864, + -0.004844842478632927, + 0.011782709509134293, + 0.012974073179066181, + 0.015144234523177147, + -0.0349220335483551, + 0.07906190305948257, + 0.02308282069861889, + -0.020901208743453026, + 0.050234150141477585, + 0.036390677094459534, + 0.0014946670271456242, + 0.06121912971138954, + -0.07839523255825043, + -0.09944514185190201, + 0.022250216454267502, + -0.0006318851956166327, + 0.02032862976193428, + 0.052526310086250305, + 0.031497515738010406, + -0.0024404043797403574, + 0.11751715838909149, + 0.061954744160175323, + -0.019176315516233444, + 0.055060286074876785, + -0.07769570499658585, + 0.14618411660194397, + 0.07447339594364166, + -0.021978769451379776, + 0.036761581897735596, + -0.037156060338020325, + 0.07684732973575592, + 0.06659726798534393, + -0.12881402671337128, + -0.07086119800806046, + 0.024343134835362434, + -0.021254505962133408, + -0.02728954888880253, + 0.09162120521068573, + -0.018867691978812218, + 0.02837556228041649, + 0.10054180026054382, + -0.06760302186012268, + -0.046280235052108765, + -0.00885520875453949, + 0.03753401339054108, + -0.08088141679763794, + 0.051847539842128754, + 0.021052204072475433, + 0.009135914035141468, + -0.006809916812926531, + 0.11279579252004623, + -0.008204659447073936, + -0.023509299382567406, + 0.03740396350622177, + -0.0526740737259388, + 0.03347979113459587, + -0.024213820695877075, + -0.004802764393389225, + 0.059255875647068024, + 0.03875081241130829, + 0.0485798642039299, + -0.019528187811374664, + -0.011809159070253372, + -0.10885215550661087, + 0.01261910516768694, + 0.031799495220184326, + 0.079539455473423, + -0.0022320784628391266, + -0.0003851871006190777, + -0.04649035632610321, + -0.06041101738810539, + 0.03568731248378754, + -0.015645936131477356, + 0.07626651227474213, + -0.026368524879217148, + 0.004640602506697178, + 0.10662159323692322, + -0.006209053099155426, + 0.02273491397500038, + -0.05773773044347763, + -0.007855311036109924, + 0.028580427169799805, + 0.05584920197725296, + -0.06564788520336151, + -0.06538498401641846, + 0.00945715606212616, + 0.02500418946146965, + -0.02937411703169346, + 0.049371227622032166, + 0.04602263122797012, + 0.01210583746433258, + 0.03564991056919098, + -0.053790681064128876, + 0.003295939415693283, + -0.0892810970544815, + -0.04139140993356705, + -0.012519673444330692, + -0.027147313579916954, + -0.02612319402396679, + 0.06090090423822403, + 0.0270896814763546, + 0.04251787066459656, + -0.008985700085759163, + -0.09190566837787628, + -0.08594243228435516, + 0.06631132960319519, + 0.059366270899772644, + 0.005575481336563826, + 0.04892541468143463, + 0.05515887588262558, + -0.020950686186552048, + 0.054844826459884644, + 0.06025625020265579, + 0.08997799456119537, + -0.014691060408949852, + -0.0008571925573050976, + -0.07554928958415985, + 0.08299057185649872, + 0.08920322358608246, + -0.09265848994255066, + -0.08691748976707458, + -0.01644587144255638, + -0.06504520028829575, + 0.03762195259332657, + -0.039312612265348434, + -0.008922424167394638, + 0.07188019901514053, + -0.008827592246234417, + -0.0992414727807045, + -0.09651048481464386, + 0.11100850999355316, + -0.1005588248372078, + -0.009016851894557476, + -0.0759815126657486, + 0.03321519121527672, + 0.07887186855077744, + 0.024975284934043884, + -0.0414896085858345, + 0.004556160420179367, + 0.05652583763003349, + -0.054578110575675964, + -0.003086267039179802, + 0.04762229323387146, + 0.014138929545879364, + -0.11925549805164337, + -0.00040640681982040405, + -0.07136248052120209, + 0.04329359158873558, + -0.04628782719373703, + 0.15944702923297882, + -0.0057054003700613976, + -0.031560610979795456, + -0.06449881941080093, + 0.0418616458773613, + -0.039061058312654495, + 0.05671829730272293, + 0.052179187536239624, + 0.06839682161808014, + 0.026597080752253532, + -0.07664692401885986, + 0.13425201177597046, + 0.04492074251174927, + -0.047954022884368896, + -0.08672016859054565, + -0.04469480738043785, + -0.05823684483766556, + 0.030289176851511, + 0.027064893394708633, + -0.09275262802839279, + -0.013293991796672344, + 0.030065184459090233, + -0.03977680951356888, + 0.06271173059940338, + 0.1367710381746292, + 0.07483130693435669, + -0.07990959286689758 + ] + }, + "p244_006.wav": { + "name": "p244", + "embedding": [ + 0.032584819942712784, + 0.1049271896481514, + -0.002525875810533762, + 0.003385673277080059, + -0.05324282497167587, + 0.043377261608839035, + -0.13818272948265076, + 0.14049102365970612, + -0.03734908252954483, + 0.12935465574264526, + -0.08139845728874207, + 0.10115008056163788, + -0.0506473183631897, + -0.17288002371788025, + -0.03645024076104164, + 0.048998553305864334, + -0.03691449016332626, + -0.02941044420003891, + -0.020614400506019592, + -0.031054820865392685, + 0.03942759335041046, + 0.03691130131483078, + 0.022531339898705482, + 0.0038436129689216614, + 0.024111609905958176, + 0.06306054443120956, + 0.00833013467490673, + 0.044451747089624405, + 0.017286362126469612, + -0.01843874156475067, + -0.021356038749217987, + 0.10783866047859192, + -0.04226216301321983, + 0.013979869894683361, + 0.03725777566432953, + 0.0003412840887904167, + 0.002151644788682461, + -0.04941617697477341, + -0.005643906537443399, + 0.004004535265266895, + -0.04352103918790817, + 0.06729330867528915, + 0.030861902981996536, + 0.0014430790906772017, + 0.032290518283843994, + 0.03224336728453636, + -0.009899266064167023, + -0.0457160547375679, + -0.10391190648078918, + 0.16303008794784546, + 0.06934019178152084, + -0.013200843706727028, + -0.07165385037660599, + -0.05886688083410263, + 0.10377968102693558, + -0.0190423633903265, + -0.11089439690113068, + -0.04303240403532982, + 0.09793652594089508, + 0.14531023800373077, + -0.03524527698755264, + -0.043960895389318466, + 0.02097223699092865, + 0.13054785132408142, + 0.027608783915638924, + 0.07388577610254288, + 0.07486177980899811, + 0.10373018682003021, + -0.03144093230366707, + 0.0023356922902166843, + 0.04236556962132454, + 0.05065072700381279, + 0.022266868501901627, + -0.017793145030736923, + 0.013374044559895992, + -0.014765307307243347, + -0.007625909522175789, + 0.023213110864162445, + -0.030211906880140305, + -0.029227502644062042, + -0.026578618213534355, + 0.007347418926656246, + -0.020503085106611252, + 0.0052078524604439735, + -0.013212007470428944, + 0.052431799471378326, + 0.02425723522901535, + 0.0011300855549052358, + 0.09152035415172577, + 0.03403962776064873, + 0.0031800991855561733, + 0.05837097391486168, + -0.06789390742778778, + -0.05538655072450638, + 0.021903950721025467, + -0.0018652449361979961, + 0.02344564162194729, + 0.07710041105747223, + 0.02651391550898552, + -0.0161783155053854, + 0.12691165506839752, + 0.038947202265262604, + -0.01102367602288723, + 0.01403308566659689, + -0.10447870194911957, + 0.13535141944885254, + 0.07990939170122147, + -0.029910052195191383, + 0.03957931324839592, + -0.043194729834795, + 0.05208694189786911, + 0.05332353711128235, + -0.1209440603852272, + -0.06707784533500671, + 0.020525116473436356, + 0.0413086861371994, + -0.027878012508153915, + 0.11308136582374573, + -0.013566798530519009, + 0.023569602519273758, + 0.11197449266910553, + -0.07672980427742004, + -0.06516806781291962, + -0.019179027527570724, + 0.04320067912340164, + -0.07537756860256195, + 0.03865492716431618, + 0.07633932679891586, + -0.015267954207956791, + 0.028615208342671394, + 0.07544175535440445, + 3.3990945667028427e-06, + 0.017168525606393814, + 0.01147286593914032, + -0.05397850275039673, + 0.010506335645914078, + -0.024102624505758286, + -0.003356616012752056, + 0.030709538608789444, + 0.059255875647068024, + 0.05510294809937477, + 0.009372744709253311, + -0.04574961960315704, + -0.10505867004394531, + 0.002091650851070881, + 0.04249827563762665, + 0.06434054672718048, + -0.0158955380320549, + -0.02750999480485916, + -0.03876878321170807, + -0.05259860306978226, + -0.005092475097626448, + 0.002838969463482499, + 0.07858627289533615, + -0.03373764082789421, + -0.018163787201046944, + 0.10624653100967407, + 0.03449534997344017, + -0.009036562405526638, + -0.06582380086183548, + -0.032328926026821136, + 0.0018797609955072403, + 0.03176433965563774, + -0.08226799219846725, + -0.07240099459886551, + -0.00923194270581007, + 0.050441548228263855, + -0.014044500887393951, + 0.05435492843389511, + 0.0474538579583168, + 0.009035871364176273, + 0.02526284009218216, + -0.06518673896789551, + 0.028520630672574043, + -0.0887334942817688, + -0.06937338411808014, + 0.006807276047766209, + -0.0011302940547466278, + -0.018455656245350838, + 0.07386765629053116, + 0.008288794197142124, + 0.04644479975104332, + 0.001334281638264656, + -0.07985314726829529, + -0.07701501995325089, + 0.05552231892943382, + 0.07348356395959854, + -0.014634881168603897, + 0.06306709349155426, + 0.06387119740247726, + -0.05427989736199379, + 0.06010766327381134, + 0.05643840879201889, + 0.10310705006122589, + -0.043063800781965256, + 0.016745667904615402, + -0.0649903193116188, + 0.047075483947992325, + 0.06403174251317978, + -0.1044611856341362, + -0.07372820377349854, + -0.04192366823554039, + -0.05399514362215996, + 0.027581652626395226, + -0.013948271051049232, + 0.015401473268866539, + 0.01587090641260147, + -0.008906680159270763, + -0.10232412815093994, + -0.08734972029924393, + 0.05813188850879669, + -0.05929386615753174, + 0.0036743972450494766, + -0.07567810267210007, + 0.05526915192604065, + 0.09819579124450684, + 0.034856781363487244, + -0.011518271639943123, + -0.023225978016853333, + 0.02949949912726879, + -0.04173942655324936, + -0.005806375294923782, + 0.03298297896981239, + 0.04307696223258972, + -0.08543585985898972, + 0.010868465527892113, + -0.08774351328611374, + 0.06024782359600067, + -0.035674452781677246, + 0.1530730426311493, + 0.019577646628022194, + -0.05333314463496208, + -0.08791891485452652, + 0.026680879294872284, + -0.03147127479314804, + 0.0434952974319458, + 0.029414352029561996, + 0.04575791209936142, + 0.03115924447774887, + -0.055549658834934235, + 0.12637826800346375, + 0.03869802877306938, + -0.04950588196516037, + -0.06578905880451202, + -0.036461152136325836, + -0.041822731494903564, + 0.018039824441075325, + 0.008888096548616886, + -0.08852120488882065, + -0.04211621731519699, + 0.015565511770546436, + -0.015324335545301437, + 0.0796964168548584, + 0.12744811177253723, + 0.06640426069498062, + -0.11343657225370407 + ] + }, + "p244_117.wav": { + "name": "p244", + "embedding": [ + 0.0663791298866272, + 0.06481096893548965, + -0.03348292037844658, + 0.020564712584018707, + -0.03492648899555206, + 0.02512381039559841, + -0.09711866080760956, + 0.07552213221788406, + -0.040559589862823486, + 0.11849957704544067, + -0.08109736442565918, + 0.08790730684995651, + -0.010697794146835804, + -0.11700117588043213, + -0.06738083064556122, + 0.03288768231868744, + -0.04765726998448372, + -0.04647444561123848, + -0.04495936632156372, + -0.01139787770807743, + 0.03867693245410919, + 0.043678607791662216, + 0.020771410316228867, + -0.03289779648184776, + 0.04199159890413284, + 0.05658009275794029, + 0.029611488804221153, + 0.025073807686567307, + -0.006493689492344856, + 0.026495207101106644, + 0.0011126045137643814, + 0.11153659224510193, + -0.044191014021635056, + -0.013819792307913303, + 0.0311887226998806, + 0.02249486930668354, + 0.011648205108940601, + -0.07382804155349731, + 0.008307871408760548, + 0.0019037476740777493, + -0.024948447942733765, + 0.08163805305957794, + 0.04867237061262131, + -0.010434059426188469, + -0.005144375376403332, + 0.029986664652824402, + -0.005942861549556255, + -0.054276760667562485, + -0.11896392703056335, + 0.1747700273990631, + 0.02796965464949608, + 0.026809019967913628, + -0.09365317970514297, + -0.04876662790775299, + 0.0796499028801918, + 0.0098640788346529, + -0.04191647097468376, + -0.045978181064128876, + 0.04680206626653671, + 0.15397390723228455, + -0.01689627207815647, + -0.04848678410053253, + 0.014617616310715675, + 0.08847671747207642, + 0.03875938802957535, + 0.023299671709537506, + 0.08159701526165009, + 0.09758806228637695, + 0.007904723286628723, + 0.047025568783283234, + 0.0659836083650589, + 0.029545437544584274, + 0.023729432374238968, + -0.05017070844769478, + 0.026821738108992577, + -0.025956720113754272, + -0.026093963533639908, + 0.0038982192054390907, + -0.040285468101501465, + -0.06192207336425781, + -0.010583801195025444, + -0.0030246595852077007, + 0.02301739528775215, + 0.03665097802877426, + -0.06552837789058685, + 0.051581718027591705, + 0.036703675985336304, + -0.058151982724666595, + 0.08319983631372452, + 0.03686737269163132, + -0.01637602411210537, + -0.0024369806051254272, + -0.06684253364801407, + -0.07785780727863312, + 0.035711102187633514, + 0.00615624850615859, + 0.018981322646141052, + 0.05096926540136337, + 0.04271988570690155, + -0.023800117895007133, + 0.08233090490102768, + 0.023124366998672485, + 0.0006741330726072192, + -0.02275349199771881, + -0.08901208639144897, + 0.12537899613380432, + 0.11221356689929962, + -0.01637592352926731, + -0.010132333263754845, + -0.02012024074792862, + 0.024066075682640076, + 0.06426465511322021, + -0.10625521093606949, + -0.08621283620595932, + 0.030181964859366417, + 0.00192217156291008, + 0.0046913279220461845, + 0.07177047431468964, + -0.01979185827076435, + 0.012640844099223614, + 0.07597804069519043, + -0.08043913543224335, + -0.04631512239575386, + -0.03861051797866821, + 0.014440439641475677, + -0.08531521260738373, + 0.020678933709859848, + 0.07579287886619568, + -0.01242291834205389, + -0.03175487369298935, + 0.06600604951381683, + 0.025848107412457466, + 0.004945406690239906, + -0.015682613477110863, + 0.03583322465419769, + 0.07717518508434296, + 0.002941790036857128, + -0.038786597549915314, + 0.02014279179275036, + 0.05632985010743141, + 0.051919858902692795, + 0.009324396960437298, + -0.002588793868198991, + -0.07343313843011856, + 0.031933434307575226, + 0.08379973471164703, + 0.021868597716093063, + -0.04236214607954025, + -0.04696473479270935, + -0.05884414166212082, + -0.0460367351770401, + 0.0138088408857584, + 0.017595849931240082, + 0.08983033150434494, + 0.030379775911569595, + 0.00941836554557085, + 0.1442602574825287, + -0.01569347269833088, + -0.009762893430888653, + -0.01568719372153282, + 0.0339643657207489, + 0.05143208056688309, + 0.032057058066129684, + -0.0357724130153656, + -0.07902616262435913, + 0.004774644039571285, + 0.010366776958107948, + -0.018539030104875565, + 0.029176995158195496, + 0.029292089864611626, + -0.020781368017196655, + 0.010427485220134258, + -0.06426107883453369, + 0.013449100777506828, + -0.08969840407371521, + 0.00946175865828991, + -0.001794168958440423, + -0.08096250891685486, + -0.03316441923379898, + 0.07327745854854584, + 0.023014485836029053, + 0.0393022745847702, + -0.027058064937591553, + -0.10035022348165512, + -0.023686770349740982, + 0.08339046686887741, + 0.0839746966958046, + -0.025258135050535202, + 0.015715466812253, + 0.023011572659015656, + 0.028393303975462914, + 0.011937202885746956, + 0.0633280873298645, + 0.0804753303527832, + -0.03716718405485153, + -0.06480783969163895, + -0.03089866042137146, + 0.116466224193573, + 0.021582720801234245, + -0.0926688015460968, + -0.04235338419675827, + -0.047869723290205, + -0.040671683847904205, + 0.00749615952372551, + 0.014579607173800468, + 0.04157961905002594, + 0.04385460168123245, + -0.04499632120132446, + -0.11614260077476501, + -0.10122857987880707, + 0.058299362659454346, + -0.04211875796318054, + -0.005418750457465649, + -0.05257604643702507, + 0.0265200212597847, + 0.0626673549413681, + 0.0114889619871974, + 0.01612227037549019, + -0.005144713446497917, + -0.03464069962501526, + -0.07651016861200333, + -0.03730890527367592, + -0.004086734727025032, + 0.03898791968822479, + -0.0624421052634716, + 0.003802548162639141, + -0.0599251314997673, + 0.08920934796333313, + -0.05726965144276619, + 0.12540869414806366, + -0.010254740715026855, + -0.036541931331157684, + -0.08108656108379364, + 0.008565537631511688, + -0.041284918785095215, + 0.07953342795372009, + 0.06964181363582611, + 0.017991025000810623, + -0.008446039631962776, + -0.07632865011692047, + 0.10225652903318405, + 0.07402639091014862, + -0.027663087472319603, + -0.07545515149831772, + -0.04524011164903641, + -0.02710394561290741, + 0.003935838118195534, + 0.01634923368692398, + -0.028507238253951073, + 0.014483869075775146, + 0.030218619853258133, + -0.030427830293774605, + 0.07724196463823318, + 0.09033051133155823, + 0.060144178569316864, + -0.06725859642028809 + ] + }, + "p244_414.wav": { + "name": "p244", + "embedding": [ + 0.05337275564670563, + 0.09347979724407196, + -0.01617208495736122, + 0.015344187617301941, + -0.051168859004974365, + 0.07525269687175751, + -0.12179407477378845, + 0.12432641535997391, + -0.06415523588657379, + 0.15049946308135986, + -0.07099460065364838, + 0.12227404117584229, + -0.02313445881009102, + -0.17240847647190094, + -0.04736506938934326, + 0.04944154620170593, + -0.0601639524102211, + -0.039453037083148956, + -0.032291024923324585, + 6.793421925976872e-05, + 0.05067278444766998, + 0.03623484447598457, + 0.021768562495708466, + 0.006948499940335751, + 0.00878700241446495, + 0.07093086838722229, + 0.014023074880242348, + 0.06032991409301758, + 0.028757669031620026, + -0.07819128036499023, + -0.03957583010196686, + 0.1095798909664154, + -0.04314263164997101, + 0.029746145009994507, + 0.060170628130435944, + -0.000363360159099102, + 0.007370705250650644, + -0.07157830893993378, + -0.016270935535430908, + -0.0039893025532364845, + -0.04488180950284004, + 0.07358165085315704, + 0.015919405966997147, + -0.012264054268598557, + 0.01863841712474823, + 0.02229408547282219, + -0.010928409174084663, + -0.05995403230190277, + -0.08643461018800735, + 0.1562034785747528, + 0.07088296115398407, + -0.004013930447399616, + -0.050174780189991, + -0.08669688552618027, + 0.10542869567871094, + -0.011490270495414734, + -0.12580139935016632, + -0.048519596457481384, + 0.07145947962999344, + 0.15937139093875885, + -0.03752167150378227, + -0.0384533628821373, + 0.024835262447595596, + 0.12317246198654175, + 0.044771235436201096, + 0.10647053271532059, + 0.08519617468118668, + 0.09169928729534149, + -0.001533685950562358, + 0.02733851782977581, + 0.06200683116912842, + 0.08383584022521973, + 0.059349097311496735, + -0.0019989125430583954, + 0.04737678915262222, + -0.0016305656172335148, + -0.022421574220061302, + 0.020158428698778152, + -0.016585052013397217, + -0.012505578808486462, + -0.017927024513483047, + 0.021225716918706894, + 0.0029016989283263683, + 0.020022213459014893, + -0.011623300611972809, + 0.061272792518138885, + 0.009784468449652195, + -0.015076527372002602, + 0.06223952770233154, + 0.033248208463191986, + 0.027849216014146805, + 0.06625443696975708, + -0.07395663857460022, + -0.10191988199949265, + 0.025953607633709908, + -0.0011344742961227894, + 0.02856616862118244, + 0.07920478284358978, + 0.03522225096821785, + -0.014241073280572891, + 0.10890447348356247, + 0.04155503958463669, + -0.0084445271641016, + 0.026931937783956528, + -0.09902231395244598, + 0.1268363893032074, + 0.0799713283777237, + -0.03023127093911171, + 0.028904562816023827, + -0.060109205543994904, + 0.09531669318675995, + 0.07547635585069656, + -0.14982913434505463, + -0.09231121838092804, + 0.033190034329891205, + 0.007038099691271782, + -0.02111329324543476, + 0.11351749300956726, + -0.025695431977510452, + 0.019240889698266983, + 0.1008530855178833, + -0.0826231837272644, + -0.0480121448636055, + -0.0257711261510849, + 0.037566471844911575, + -0.08659997582435608, + 0.06426386535167694, + 0.03095492161810398, + -0.009906553663313389, + -0.001334917964413762, + 0.09995832294225693, + -0.025347266346216202, + -0.00865009892731905, + 0.016087155789136887, + -0.05126236751675606, + 0.02221379242837429, + -0.043657850474119186, + 0.006328982301056385, + 0.03574098274111748, + 0.04346025735139847, + 0.04006488248705864, + -0.005997288040816784, + -0.04574074596166611, + -0.11877577006816864, + 0.016988495364785194, + 0.03338633477687836, + 0.06776638329029083, + -0.005708509124815464, + -0.025159288197755814, + -0.02828025631606579, + -0.0529685840010643, + 0.013637338764965534, + -0.01797289401292801, + 0.07487207651138306, + -0.005986368283629417, + 0.007802212610840797, + 0.0994187444448471, + 0.016678549349308014, + -0.00010740617290139198, + -0.05749409645795822, + -0.03445484861731529, + 0.024085022509098053, + 0.0630992203950882, + -0.07922924309968948, + -0.06572607159614563, + 0.010446312837302685, + 0.024683155119419098, + -0.01451587863266468, + 0.0391768142580986, + 0.05514409393072128, + 0.02439870312809944, + 0.04159264266490936, + -0.06749506294727325, + 0.01026029884815216, + -0.12275136262178421, + -0.07851161062717438, + -0.01657060533761978, + -0.02547772228717804, + -0.003994768485426903, + 0.07156360149383545, + 0.0017041168175637722, + 0.035028621554374695, + -0.01159695629030466, + -0.08217807114124298, + -0.08210548758506775, + 0.07249727100133896, + 0.08577492833137512, + 0.01932879537343979, + 0.04386300966143608, + 0.045057184994220734, + -0.01685880683362484, + 0.0473417304456234, + 0.044633276760578156, + 0.12211090326309204, + -0.019795356318354607, + 0.013241836801171303, + -0.0746978223323822, + 0.08316610753536224, + 0.07629567384719849, + -0.09628407657146454, + -0.07493922114372253, + -0.015265904366970062, + -0.059690605849027634, + 0.04075497016310692, + -0.02806091494858265, + 0.00484283734112978, + 0.026090744882822037, + -0.0063917869701981544, + -0.10699254274368286, + -0.07515783607959747, + 0.09153671562671661, + -0.07236147671937943, + -0.010375437326729298, + -0.09194009006023407, + 0.05121401324868202, + 0.09815976023674011, + 0.05290521681308746, + -0.03345044329762459, + 0.003943076357245445, + 0.058402158319950104, + -0.0485280379652977, + 0.00016099540516734123, + 0.04057348147034645, + 0.020463839173316956, + -0.09463279694318771, + 0.00874655693769455, + -0.08400268852710724, + 0.039982300251722336, + -0.0781797468662262, + 0.15764813125133514, + -0.020856384187936783, + -0.06966894865036011, + -0.08086109161376953, + 0.0453309565782547, + -0.021734872832894325, + 0.04313546419143677, + 0.04256168007850647, + 0.06295493990182877, + 0.041449107229709625, + -0.08462811261415482, + 0.12133316695690155, + 0.045901477336883545, + -0.0248493030667305, + -0.06361193209886551, + -0.048655495047569275, + -0.038715094327926636, + 0.03535463660955429, + 0.010105248540639877, + -0.08735272288322449, + -0.01854035258293152, + 0.02449534833431244, + -0.021589156240224838, + 0.06691836565732956, + 0.14419814944267273, + 0.05591727793216705, + -0.11574887484312057 + ] + }, + "p244_253.wav": { + "name": "p244", + "embedding": [ + 0.0659065991640091, + 0.07509010285139084, + -0.024440791457891464, + -0.001634875312447548, + -0.046231627464294434, + 0.03870411217212677, + -0.1354798674583435, + 0.14504340291023254, + -0.039977025240659714, + 0.09383848309516907, + -0.04805021360516548, + 0.10036615282297134, + 0.009969496168196201, + -0.11082163453102112, + -0.046134404838085175, + 0.023836283013224602, + 0.0014015557244420052, + -0.015952402725815773, + -0.028823979198932648, + -0.01151888445019722, + 0.015373526141047478, + 0.03339692950248718, + 0.009113047271966934, + -0.009018579497933388, + 0.037673816084861755, + 0.029065484181046486, + 0.005538268480449915, + 0.01837175339460373, + 0.007479529827833176, + 0.02990323305130005, + -0.0010585598647594452, + 0.08733303099870682, + -0.050202760845422745, + 0.010362047702074051, + 0.043523091822862625, + 0.011447603814303875, + -0.005951732397079468, + -0.0819530338048935, + -0.01541035994887352, + -0.0070488532073795795, + -0.029752040281891823, + 0.09017757326364517, + 0.05828443169593811, + -0.006793014705181122, + 0.007019433192908764, + 0.014472566545009613, + 0.01464794296771288, + -0.061176445335149765, + -0.10762913525104523, + 0.1486799418926239, + 0.004450784996151924, + 0.008131470531225204, + -0.12579701840877533, + -0.016540562734007835, + 0.0826941654086113, + -0.032750729471445084, + -0.03878742828965187, + -0.055116526782512665, + 0.03610720485448837, + 0.13918444514274597, + -0.015389349311590195, + -0.05884116515517235, + 0.005374635569751263, + 0.09946253150701523, + 0.05703935772180557, + 0.028374670073390007, + 0.1077100932598114, + 0.1067352443933487, + -0.030965689569711685, + 0.02396455779671669, + 0.03290452063083649, + 0.03955530375242233, + 0.011360063217580318, + -0.02434130758047104, + 0.012554807588458061, + -0.03345746174454689, + -0.006304372567683458, + 0.023870892822742462, + -0.022353515028953552, + -0.049800723791122437, + -0.02220963127911091, + 0.019474683329463005, + -0.004713356960564852, + 0.0714944452047348, + -0.06565125286579132, + 0.05690184235572815, + 0.040205713361501694, + -0.035322438925504684, + 0.07339352369308472, + 0.08051391690969467, + 0.006438813172280788, + 0.012984735891222954, + -0.07159963995218277, + -0.07156150043010712, + 0.02788781002163887, + -0.02782830037176609, + 0.05234832316637039, + 0.06279204785823822, + 0.021869642660021782, + 0.005398619454354048, + 0.08487403392791748, + 0.03819020837545395, + -0.006558696273714304, + -0.011617226526141167, + -0.06747996807098389, + 0.12636533379554749, + 0.09980346262454987, + -0.013211781159043312, + 0.020522916689515114, + -0.049001313745975494, + 0.010408591479063034, + 0.044483084231615067, + -0.0948638916015625, + -0.07751217484474182, + 0.067380890250206, + 0.05425296723842621, + 0.026540569961071014, + 0.09843991696834564, + 0.015075989998877048, + 0.01484285295009613, + 0.047278378158807755, + -0.07201935350894928, + -0.05516931414604187, + -0.008485788479447365, + 0.032912611961364746, + -0.05039115995168686, + 0.04347151517868042, + 0.061444345861673355, + 0.0006294646300375462, + -0.02945905737578869, + 0.06335999816656113, + 0.02476908639073372, + 0.01327902264893055, + -0.015673339366912842, + 0.03080238774418831, + 0.06649118661880493, + 0.025583066046237946, + -0.02487625926733017, + 0.02049708552658558, + 0.05804292485117912, + 0.05558866634964943, + 0.025322120636701584, + 0.0005338550545275211, + -0.09712747484445572, + 0.004549121484160423, + 0.08775191009044647, + 0.06214361637830734, + -0.059692010283470154, + -0.0601113960146904, + -0.03807923197746277, + -0.03510478138923645, + -0.01695621944963932, + 0.03143256902694702, + 0.06958773732185364, + -0.0020206328481435776, + 0.016987819224596024, + 0.11053489148616791, + -0.006412738934159279, + 0.007900618016719818, + -0.011927224695682526, + 0.04685390740633011, + 0.02254825457930565, + 0.046424709260463715, + -0.0289375688880682, + -0.0934915617108345, + -0.004640120547264814, + 0.033181458711624146, + -0.02525162324309349, + 0.02672378346323967, + 0.0471775084733963, + -0.026801731437444687, + 0.03799400478601456, + -0.08719084411859512, + 0.03613336756825447, + -0.11106973141431808, + -0.009208418428897858, + 0.0005084946751594543, + -0.029659219086170197, + -0.015466381795704365, + 0.07627661526203156, + 0.04467010125517845, + 0.07124413549900055, + -0.004158590454608202, + -0.09351237863302231, + -0.034465525299310684, + 0.048995740711688995, + 0.07400546967983246, + -0.04525791108608246, + 0.0006407536566257477, + 0.049952056258916855, + 0.012691473588347435, + 0.01874997466802597, + 0.08085097372531891, + 0.047892145812511444, + -0.0489029586315155, + -0.039329417049884796, + -0.044258613139390945, + 0.09503402560949326, + 0.04393851384520531, + -0.11533653736114502, + -0.0682753324508667, + -0.02465703897178173, + -0.037853043526411057, + -0.032204288989305496, + -0.016869917511940002, + 0.03891190141439438, + 0.0473678819835186, + -0.021637139841914177, + -0.12105533480644226, + -0.10460696369409561, + 0.047805506736040115, + -0.08263389021158218, + 0.029937192797660828, + -0.05965464189648628, + 0.01737012341618538, + 0.0810689851641655, + 0.01800205558538437, + -0.010326297953724861, + -0.04939088970422745, + -0.02670142985880375, + -0.051365356892347336, + -0.044225119054317474, + -0.006073169410228729, + 0.035165004432201385, + -0.0841970145702362, + 0.02438327670097351, + -0.05442404747009277, + 0.07993105798959732, + -0.03565894067287445, + 0.1460910439491272, + 0.020470960065722466, + -0.07599806040525436, + -0.09064380824565887, + -0.04182501882314682, + -0.03868559002876282, + 0.06587879359722137, + 0.032756395637989044, + 0.034168146550655365, + -1.4596618711948395e-05, + -0.05268435552716255, + 0.08482556790113449, + 0.09877606481313705, + -0.04556364566087723, + -0.0873718410730362, + -0.040023379027843475, + -0.015530819073319435, + 0.04508063197135925, + 0.01741029880940914, + -0.016096223145723343, + 0.0044369176030159, + 0.013603215105831623, + -0.04250704497098923, + 0.07414849102497101, + 0.10565780103206635, + 0.059978507459163666, + -0.11924143135547638 + ] + }, + "p244_109.wav": { + "name": "p244", + "embedding": [ + 0.05739546939730644, + 0.08613348007202148, + -0.006044930778443813, + 0.0352112278342247, + -0.06083273887634277, + 0.03468688577413559, + -0.14677467942237854, + 0.14680781960487366, + -0.021860700100660324, + 0.12390688061714172, + -0.06311961263418198, + 0.12757804989814758, + -0.022577140480279922, + -0.19756779074668884, + -0.008795039728283882, + 0.08517857640981674, + -0.032355278730392456, + -0.02848302572965622, + -0.025251664221286774, + -0.02377479337155819, + 0.02512427419424057, + 0.043954938650131226, + 0.060328077524900436, + 0.005702539347112179, + 0.031326524913311005, + 0.06979607045650482, + 0.002574204234406352, + 0.053611837327480316, + 0.0093069551512599, + -0.057945143431425095, + -0.035119932144880295, + 0.09045854210853577, + -0.03604564815759659, + -0.0005113724619150162, + 0.050318460911512375, + -0.011871270835399628, + 4.0381837607128546e-05, + -0.06830374896526337, + -0.0277443528175354, + -0.008360256440937519, + -0.040520697832107544, + 0.07810407876968384, + 0.0224294476211071, + -0.03035673499107361, + 0.060263119637966156, + 0.02106332592666149, + -0.033152010291814804, + -0.044141735881567, + -0.13355642557144165, + 0.1488659381866455, + 0.07038581371307373, + 0.02156125009059906, + -0.08391305059194565, + -0.07415102422237396, + 0.0971040353178978, + -0.030163947492837906, + -0.10386817157268524, + -0.04477739334106445, + 0.07305428385734558, + 0.16108199954032898, + -0.0229775533080101, + -0.034324757754802704, + 0.038250505924224854, + 0.11930715292692184, + 0.060493435710668564, + 0.09059705585241318, + 0.07020947337150574, + 0.1004265546798706, + -0.02927844226360321, + 0.016493503004312515, + 0.044844381511211395, + 0.07669737190008163, + 0.03551100939512253, + 0.006001103203743696, + 0.01228416245430708, + 0.007548165507614613, + -0.024507751688361168, + -0.008376196026802063, + -0.015511329285800457, + -0.017870772629976273, + -0.01723967306315899, + 0.008231448009610176, + 0.007556747179478407, + 0.011855248361825943, + -0.027854524552822113, + 0.062090061604976654, + 0.0341794528067112, + -0.004567167721688747, + 0.0724688395857811, + 0.019014395773410797, + -0.0008657457074150443, + 0.060691915452480316, + -0.07151425629854202, + -0.07954558730125427, + 0.020314980298280716, + 0.011950142681598663, + 0.022227173671126366, + 0.06036045774817467, + 0.023404493927955627, + -0.027063174173235893, + 0.1304457038640976, + 0.0630183145403862, + -0.0060635036788880825, + 0.03458651155233383, + -0.08411171287298203, + 0.11534597724676132, + 0.08304879069328308, + -0.014469115063548088, + 0.06840068101882935, + -0.041978105902671814, + 0.060439582914114, + 0.0727461725473404, + -0.1337536871433258, + -0.07041275501251221, + 0.015840495005249977, + 0.01233344804495573, + -0.013424286618828773, + 0.12322752177715302, + 0.005914837121963501, + 0.05673353001475334, + 0.117793969810009, + -0.09871840476989746, + -0.06949783861637115, + -0.0042399633675813675, + 0.0551203116774559, + -0.09464181959629059, + 0.06249776482582092, + 0.07012145966291428, + -0.02135149948298931, + 0.017793484032154083, + 0.07335391640663147, + -0.005597086623311043, + 0.011523909866809845, + 0.01644597016274929, + -0.058747705072164536, + 0.005872945301234722, + -0.04127098247408867, + -0.01425835769623518, + 0.0605582520365715, + 0.033361248672008514, + 0.04053114354610443, + -0.00681935204192996, + -0.03324224427342415, + -0.13778139650821686, + 0.003976250067353249, + 0.03389718756079674, + 0.08339881896972656, + -0.007886230945587158, + -0.030938230454921722, + -0.04448118805885315, + -0.0599418506026268, + 0.010695687495172024, + -0.009594394825398922, + 0.06870704889297485, + -0.02924153208732605, + 0.006847626995295286, + 0.08679477870464325, + 0.027226699516177177, + 0.0018853339133784175, + -0.04736558720469475, + -0.04945267736911774, + 0.016022196039557457, + 0.0454501137137413, + -0.08235573768615723, + -0.07084080576896667, + -0.0070708515122532845, + 0.04068135842680931, + -0.032321542501449585, + 0.04960598051548004, + 0.038274526596069336, + 0.022238314151763916, + 0.017885731533169746, + -0.05703619867563248, + 0.02338593453168869, + -0.09009230136871338, + -0.08075901865959167, + 0.002486435230821371, + 0.008224758319556713, + -0.029937084764242172, + 0.07189749926328659, + 0.030756091699004173, + 0.06540273129940033, + -0.02816474437713623, + -0.06498674303293228, + -0.09770011901855469, + 0.05295402556657791, + 0.05662689357995987, + 0.0015044284518808126, + 0.058535512536764145, + 0.04629106447100639, + -0.04560130834579468, + 0.061952006071805954, + 0.047713376581668854, + 0.09148293733596802, + -0.016202818602323532, + 0.012414633296430111, + -0.07333677262067795, + 0.07675021141767502, + 0.10897409170866013, + -0.08695634454488754, + -0.08112332224845886, + -0.036334481090307236, + -0.07327903062105179, + 0.057342421263456345, + -0.0145942447707057, + 0.0006856077234260738, + 0.04557185620069504, + -0.011704448610544205, + -0.1123899519443512, + -0.09791746735572815, + 0.08337440341711044, + -0.06064557284116745, + -0.004089634865522385, + -0.0628826916217804, + 0.04487769305706024, + 0.08675407618284225, + 0.02726869285106659, + -0.017857426777482033, + -0.031373947858810425, + 0.04116690158843994, + -0.042946889996528625, + 0.004726524464786053, + 0.06690191477537155, + 0.04441523179411888, + -0.10162967443466187, + 0.007017001509666443, + -0.07676421105861664, + 0.053607277572155, + -0.03338317945599556, + 0.15788988769054413, + 0.0119588328525424, + -0.04459541663527489, + -0.09059779345989227, + 0.026029985398054123, + -0.023152461275458336, + 0.05804430693387985, + 0.021228080615401268, + 0.05717020481824875, + 0.048421114683151245, + -0.06877723336219788, + 0.10947582125663757, + 0.04329445958137512, + -0.047781284898519516, + -0.06127448379993439, + -0.04130503535270691, + -0.055049192160367966, + 0.0326380580663681, + -0.005245511885732412, + -0.09330736100673676, + -0.028838014230132103, + 0.016722194850444794, + -0.010706339031457901, + 0.06182768568396568, + 0.1386440098285675, + 0.04118635505437851, + -0.11009286344051361 + ] + }, + "p244_312.wav": { + "name": "p244", + "embedding": [ + 0.015115632675588131, + 0.07223115861415863, + -0.0020533159840852022, + 0.04228286072611809, + -0.006371307652443647, + 0.04990001767873764, + -0.07020367681980133, + 0.0487297922372818, + -0.05339176952838898, + 0.15103980898857117, + -0.12234080582857132, + 0.08643540740013123, + -0.04453974962234497, + -0.14344476163387299, + -0.0251156073063612, + 0.02139274775981903, + -0.03654440864920616, + 0.03277100622653961, + -0.05478564649820328, + -0.03230539336800575, + 0.05921761319041252, + 0.07936245948076248, + 0.04668014496564865, + -0.052221983671188354, + 0.005212868098169565, + 0.06402292102575302, + -0.020825820043683052, + 0.036405764520168304, + 0.008070295676589012, + -0.13803991675376892, + -0.0482972115278244, + 0.11677175760269165, + -0.029670054093003273, + 0.02404903806746006, + -0.013602443039417267, + 0.017274048179388046, + -0.020915072411298752, + -0.018871530890464783, + -0.014337779954075813, + 0.0014606877230107784, + -0.052115097641944885, + 0.02135101892054081, + -0.02439035475254059, + -0.01282050646841526, + 0.04708550125360489, + -0.03330114856362343, + -0.03222230449318886, + -0.013768676668405533, + -0.07614147663116455, + 0.16634711623191833, + 0.053961075842380524, + -0.0026977118104696274, + -0.04983261972665787, + -0.08148597180843353, + 0.08884178847074509, + -0.004952655639499426, + -0.14231504499912262, + 0.011187897995114326, + 0.08110079169273376, + 0.13044947385787964, + -0.009287124499678612, + -0.04630175232887268, + 0.03958515077829361, + 0.05871117115020752, + -0.02902132272720337, + 0.0898125097155571, + 0.07278240472078323, + 0.041674237698316574, + 0.01308460533618927, + 0.020940300077199936, + 0.008747893385589123, + 0.08632219582796097, + 0.06605222821235657, + -0.0462956428527832, + 0.010121885687112808, + 0.007276811636984348, + -0.051074691116809845, + 0.028794409707188606, + -0.011513588950037956, + -0.029004141688346863, + 0.006922640837728977, + -0.049004796892404556, + -0.008345667272806168, + -0.06528280675411224, + -0.02787744626402855, + -0.0020188805647194386, + 0.03389494866132736, + -0.014308687299489975, + 0.07219575345516205, + 0.032453540712594986, + 0.01708252914249897, + 0.033069685101509094, + -0.030524233356118202, + -0.06059879809617996, + -0.002071019262075424, + 0.03162568435072899, + -0.0054235076531767845, + 0.06549955904483795, + 0.06157100945711136, + -0.028302693739533424, + 0.10277147591114044, + 0.011557220481336117, + 0.03959643468260765, + -0.018499260768294334, + -0.11130046099424362, + 0.06427522003650665, + 0.13470283150672913, + 0.003276452887803316, + 0.06343982368707657, + -0.017135923728346825, + 0.09468264132738113, + 0.0819682702422142, + -0.12226925790309906, + -0.05566508695483208, + -0.035344138741493225, + -0.017945565283298492, + 0.030227798968553543, + 0.08432887494564056, + -0.010283301584422588, + -0.020880941301584244, + 0.10020695626735687, + -0.13482952117919922, + -0.059246305376291275, + -0.03256281465291977, + 0.011748181656002998, + -0.11977741122245789, + 0.06418773531913757, + 0.04065250605344772, + -0.02072078175842762, + 0.014553282409906387, + 0.07624413073062897, + -0.05368376150727272, + 0.04327709600329399, + -0.024555768817663193, + -0.061816200613975525, + -0.041629400104284286, + -0.08573607355356216, + -0.0217968188226223, + 0.08240741491317749, + 0.0445537269115448, + 0.06262975931167603, + -0.019458848983049393, + -0.06651761382818222, + -0.10590438544750214, + 0.00962788239121437, + 0.05472379922866821, + -0.008921545930206776, + -0.010740948840975761, + 0.002315530553460121, + -0.03541753068566322, + -0.07608170062303543, + 0.07531290501356125, + -0.050457172095775604, + 0.06512399017810822, + 0.0033374689519405365, + -0.013107403181493282, + 0.12156622111797333, + 0.02566804364323616, + -0.04253965988755226, + -0.07956333458423615, + -0.04753100126981735, + 0.00883153360337019, + 0.009269867092370987, + -0.11197134852409363, + -0.06630025058984756, + -0.02749679610133171, + 0.004038706421852112, + 0.01835394650697708, + 0.0388292595744133, + 0.07381658256053925, + 0.01360377948731184, + 0.02391894906759262, + -0.04704713821411133, + 0.019652945920825005, + -0.08830897510051727, + -0.08141794055700302, + 0.007449087221175432, + -0.07520467042922974, + 0.03248056024312973, + 0.1157418042421341, + -0.032339610159397125, + -0.06660428643226624, + -0.05077730864286423, + -0.07081522792577744, + -0.0720144510269165, + 0.06092381104826927, + 0.04278179630637169, + 0.03951593488454819, + 0.03510010987520218, + 0.05421309918165207, + -0.048864975571632385, + 0.08979848772287369, + 0.041258305311203, + 0.14028732478618622, + -0.04146946221590042, + 0.03866475448012352, + -0.05740002170205116, + 0.05875694751739502, + 0.07405953109264374, + -0.024600287899374962, + -0.09972354769706726, + -0.039126377552747726, + -0.07141612470149994, + 0.10491704940795898, + -0.02136886492371559, + -0.04152430593967438, + 0.009420864284038544, + -0.04051225259900093, + -0.08547887951135635, + -0.04949510097503662, + 0.11076352000236511, + 0.016875144094228745, + -0.04979408159852028, + -0.07580237835645676, + 0.05460367724299431, + 0.02481137216091156, + 0.06275676190853119, + -0.015234648250043392, + 0.053780488669872284, + 0.05598363280296326, + -0.08687961101531982, + -0.004771187901496887, + 0.047404512763023376, + 0.004116476979106665, + -0.014873728156089783, + -0.009625840000808239, + -0.11008241772651672, + 0.058257095515728, + -0.06296917796134949, + 0.0923713743686676, + -0.026684515178203583, + -0.06853699684143066, + -0.06578568369150162, + 0.1008608266711235, + -0.01734708622097969, + 0.017783261835575104, + 0.08565252274274826, + 0.042901039123535156, + 0.08388683199882507, + -0.11167167127132416, + 0.06270655989646912, + 0.01114030834287405, + 0.021431084722280502, + -0.030852973461151123, + -0.03638945519924164, + -0.03772243857383728, + -0.006519352551549673, + -0.03680536150932312, + -0.09481385350227356, + 0.027113022282719612, + -0.012785693630576134, + 0.02386845275759697, + 0.02694052644073963, + 0.08384421467781067, + 0.009739955887198448, + -0.0888400673866272 + ] + }, + "p244_319.wav": { + "name": "p244", + "embedding": [ + 0.04419044405221939, + 0.09056366235017776, + -0.07513836026191711, + 0.048270877450704575, + -0.06125824153423309, + 0.02990613505244255, + -0.11891696602106094, + 0.1064797043800354, + 0.00932198017835617, + 0.11947310715913773, + -0.054237693548202515, + 0.11613690853118896, + -0.03302270919084549, + -0.13520264625549316, + 0.010527489706873894, + 0.025518450886011124, + 0.00029355473816394806, + -0.003963499329984188, + -0.0681152269244194, + -0.03505297377705574, + 0.03287924826145172, + 0.033635661005973816, + 0.03947008028626442, + -0.055014919489622116, + 0.0012865308672189713, + 0.06756991147994995, + -0.019457556307315826, + 0.00804508663713932, + -0.004007723182439804, + -0.03781922906637192, + -0.03979473561048508, + 0.09029709547758102, + -0.06172361597418785, + 0.002270035445690155, + 0.028337392956018448, + -0.016549136489629745, + -0.05441751703619957, + -0.04254625365138054, + 0.030088145285844803, + 0.0007468266412615776, + -0.044019412249326706, + 0.05973818153142929, + 0.02574634924530983, + -0.026936249807476997, + 0.046697117388248444, + -0.02530161291360855, + -0.04350415617227554, + -0.014194131828844547, + -0.07992391288280487, + 0.14254586398601532, + 0.07706809788942337, + 0.0025733564980328083, + -0.07799725979566574, + -0.012880346737802029, + 0.0860956460237503, + 0.0022530669812113047, + -0.10933447629213333, + -0.055939219892024994, + 0.03437776863574982, + 0.10422317683696747, + -0.012803660705685616, + -0.024806076660752296, + 0.035654909908771515, + 0.10237081348896027, + 0.07116690278053284, + 0.059178225696086884, + 0.09887969493865967, + 0.13833555579185486, + -0.025103075429797173, + 0.020181290805339813, + 0.03652666136622429, + 0.05671537667512894, + 0.0474429726600647, + -0.014889785088598728, + 0.033275529742240906, + -0.03486432880163193, + -0.002486539538949728, + -0.03660111129283905, + -0.020790424197912216, + -0.06735467910766602, + -0.004393347539007664, + -0.010831980966031551, + 0.006890885531902313, + 0.04052734375, + -0.05447879061102867, + 0.03268809616565704, + 0.10357707738876343, + -0.06316496431827545, + 0.052513524889945984, + 0.04743622615933418, + -0.000425887294113636, + 0.04073223099112511, + -0.0976434126496315, + -0.05778953433036804, + 0.037132732570171356, + -0.00030600622994825244, + 0.018300319090485573, + 0.06231734901666641, + 0.045891474932432175, + -0.005857191979885101, + 0.10039034485816956, + 0.04598373919725418, + -0.01883428730070591, + 0.016515430063009262, + -0.044203922152519226, + 0.1341182291507721, + 0.10516184568405151, + -0.03902968019247055, + 0.029400236904621124, + -0.04583703726530075, + 0.043536849319934845, + 0.029266290366649628, + -0.08817074447870255, + -0.05455995351076126, + 0.02221987210214138, + 0.005768245086073875, + -0.01587926596403122, + 0.11983644962310791, + 0.012560899369418621, + 0.04256709665060043, + 0.10850886255502701, + -0.08326700329780579, + -0.06865361332893372, + -0.03096238523721695, + 0.04412977024912834, + -0.06297232210636139, + 0.04253026098012924, + 0.06848850101232529, + 0.005618124268949032, + -0.007348539307713509, + 0.07355884462594986, + 0.004793113563209772, + 0.024968013167381287, + 0.004496053792536259, + -0.0257409680634737, + 0.042100951075553894, + 0.004556948319077492, + -0.015999233350157738, + 0.04011787101626396, + 0.019229650497436523, + 0.07722873985767365, + -0.027322782203555107, + 0.022300289943814278, + -0.09458456933498383, + 0.0307004377245903, + 0.055125877261161804, + 0.03879985213279724, + -0.03831888735294342, + -0.011866869404911995, + -0.029350044205784798, + -0.07556745409965515, + 0.02446538582444191, + -0.020898297429084778, + 0.0564456582069397, + -0.03940664976835251, + -0.01386672630906105, + 0.12792135775089264, + 0.017452819272875786, + 0.010838748887181282, + -0.03652416914701462, + -0.012017732486128807, + 0.009938303381204605, + 0.04889616370201111, + -0.09973563253879547, + -0.07184059172868729, + -0.03578529134392738, + 0.018186137080192566, + -0.014812970533967018, + 0.059717580676078796, + 0.08123335242271423, + 0.005960757844150066, + 0.018530843779444695, + -0.052632272243499756, + 0.013307937420904636, + -0.053198765963315964, + -0.0298524908721447, + -0.016808239743113518, + -0.05400118976831436, + -0.02831321954727173, + 0.08420003950595856, + 0.026544244959950447, + 0.03689193353056908, + -0.04465373605489731, + -0.05500436946749687, + -0.06921444833278656, + 0.038753002882003784, + 0.05172387510538101, + -0.056301530450582504, + 0.02814250811934471, + 0.06931400299072266, + -0.03347296640276909, + -0.0024425871670246124, + 0.07497180253267288, + 0.06604721397161484, + -0.04627583548426628, + -0.01683066040277481, + -0.08147799968719482, + 0.0840359628200531, + 0.10136692225933075, + -0.08423597365617752, + -0.07100728154182434, + -0.06724514067173004, + -0.06517535448074341, + 0.0012098010629415512, + -0.05655192583799362, + 0.0013812556862831116, + 0.056987032294273376, + -0.010655757039785385, + -0.09848500788211823, + -0.11914636939764023, + 0.08726778626441956, + -0.0534479022026062, + 0.015838682651519775, + -0.09185099601745605, + 0.036120302975177765, + 0.047316402196884155, + 0.015715980902314186, + -0.06873959302902222, + -0.002534897066652775, + 0.039400555193424225, + -0.006852324120700359, + 0.0453813336789608, + 0.061837416142225266, + 0.06594138592481613, + -0.09954193979501724, + -0.029201243072748184, + -0.052546679973602295, + 0.07438486814498901, + -0.06084191054105759, + 0.12268063426017761, + 0.03422657400369644, + -0.021232178434729576, + -0.08751991391181946, + 0.07305287569761276, + -0.01204090565443039, + 0.04914397373795509, + 0.05653859302401543, + 0.06471593677997589, + 0.015004511922597885, + -0.09018240869045258, + 0.10709134489297867, + 0.04311639815568924, + -0.020636938512325287, + -0.09339933842420578, + -0.03308381885290146, + -0.04181063547730446, + 0.05528061091899872, + 0.040337905287742615, + -0.06631528586149216, + 0.010500705800950527, + 0.023511139675974846, + -0.015705613419413567, + 0.05758930742740631, + 0.10737930238246918, + 0.08653219044208527, + -0.09123395383358002 + ] + }, + "p244_019.wav": { + "name": "p244", + "embedding": [ + 0.043645840138196945, + 0.09000486135482788, + -0.014766769483685493, + 0.024335574358701706, + -0.0678584948182106, + 0.05244502052664757, + -0.1327638179063797, + 0.14221879839897156, + -0.03032982163131237, + 0.13031697273254395, + -0.06544449180364609, + 0.12695704400539398, + -0.024368593469262123, + -0.1919749528169632, + -0.019306913018226624, + 0.06660457700490952, + -0.04614481329917908, + -0.0330330953001976, + -0.03133698180317879, + -0.031930774450302124, + 0.032004788517951965, + 0.03133589029312134, + 0.03268120810389519, + 0.007189165335148573, + 0.02343025617301464, + 0.0770869180560112, + 0.001116209547035396, + 0.04274427890777588, + 0.010093988850712776, + -0.04368862137198448, + -0.04230609908699989, + 0.09942979365587234, + -0.04613504558801651, + 0.010755178518593311, + 0.05125841498374939, + -0.019561579450964928, + -0.010448102839291096, + -0.05495961382985115, + -0.008619613945484161, + -0.0058892820961773396, + -0.040610186755657196, + 0.07927807420492172, + 0.03265079855918884, + -0.010018340311944485, + 0.04204524680972099, + 0.02684825100004673, + -0.02097545936703682, + -0.045395370572805405, + -0.11326402425765991, + 0.1502005159854889, + 0.08010874688625336, + -0.0087644774466753, + -0.0659211054444313, + -0.056693434715270996, + 0.09800469130277634, + -0.016896074637770653, + -0.11377488821744919, + -0.05146593973040581, + 0.0862141028046608, + 0.14185190200805664, + -0.03091595135629177, + -0.028108233585953712, + 0.021090393885970116, + 0.13312703371047974, + 0.04231356456875801, + 0.0971648097038269, + 0.06687565892934799, + 0.11238361895084381, + -0.02723124995827675, + 0.02333441935479641, + 0.05267775058746338, + 0.06660793721675873, + 0.041154082864522934, + -0.004256479907780886, + 0.017845699563622475, + -0.015710799023509026, + -0.007661410607397556, + 0.0005954798543825746, + -0.03233131021261215, + -0.0229560025036335, + -0.024913141503930092, + 0.000838741660118103, + 0.0021872781217098236, + 0.012059546075761318, + -0.012562994845211506, + 0.05847707390785217, + 0.04398197680711746, + -0.00904103647917509, + 0.0699722021818161, + 0.031126484274864197, + -0.004477318841964006, + 0.0674130842089653, + -0.0820566788315773, + -0.07817738503217697, + 0.030353788286447525, + 0.0009663403034210205, + 0.02671818993985653, + 0.07270333170890808, + 0.035691358149051666, + -0.014246786944568157, + 0.11493851244449615, + 0.05259993299841881, + -0.013765624724328518, + 0.02795824222266674, + -0.09309575706720352, + 0.13726358115673065, + 0.08433478325605392, + -0.01939130388200283, + 0.050675150007009506, + -0.05311408266425133, + 0.0750754252076149, + 0.06480636447668076, + -0.1301712691783905, + -0.05769859626889229, + 0.010755452327430248, + 0.010141793638467789, + -0.03680554777383804, + 0.11869124323129654, + -0.011384345591068268, + 0.04291548952460289, + 0.11379803717136383, + -0.0843738541007042, + -0.06104934215545654, + -0.017229463905096054, + 0.03901267051696777, + -0.09242506325244904, + 0.04979259893298149, + 0.06309882551431656, + -0.014141127467155457, + 0.030077943578362465, + 0.0837942585349083, + -0.004435176495462656, + 0.001128458185121417, + 0.030705690383911133, + -0.05405060574412346, + 0.009841765277087688, + -0.021983865648508072, + 0.005829300731420517, + 0.04252003878355026, + 0.03831961378455162, + 0.04597902297973633, + -0.00835330132395029, + -0.022460682317614555, + -0.11049767583608627, + 0.009778939187526703, + 0.03346436843276024, + 0.07855146378278732, + -0.009597251191735268, + -0.02321794629096985, + -0.03315868601202965, + -0.0723535344004631, + 0.005061472300440073, + -0.00934696290642023, + 0.06735693663358688, + -0.03835853189229965, + -0.0072474549524486065, + 0.09467984735965729, + 0.041568633168935776, + -0.001958973705768585, + -0.062190305441617966, + -0.038273438811302185, + 0.01835728995501995, + 0.048084139823913574, + -0.09380101412534714, + -0.0611860528588295, + -0.0055597214959561825, + 0.037320706993341446, + -0.03422966226935387, + 0.05231741815805435, + 0.04656871408224106, + 0.022631732746958733, + 0.02631610631942749, + -0.06933645159006119, + 0.017829904332756996, + -0.09372898191213608, + -0.07075932621955872, + -0.006447040941566229, + -0.009030413813889027, + -0.027176061645150185, + 0.06852483749389648, + 0.012436563149094582, + 0.05452544242143631, + -0.019362879917025566, + -0.0596567764878273, + -0.08112342655658722, + 0.05655614286661148, + 0.0631454661488533, + -0.007354711648076773, + 0.05686396360397339, + 0.0487113818526268, + -0.04727543145418167, + 0.04776395484805107, + 0.05420079827308655, + 0.11041741818189621, + -0.034343820065259933, + 0.02638939395546913, + -0.07589810341596603, + 0.07316949963569641, + 0.093514584004879, + -0.09648355841636658, + -0.07521901279687881, + -0.031918611377477646, + -0.05447818711400032, + 0.041970860213041306, + -0.031924474984407425, + -0.008569800294935703, + 0.027338897809386253, + -0.00042557166307233274, + -0.10086355358362198, + -0.09049829095602036, + 0.07902263104915619, + -0.07167840003967285, + 0.008777692914009094, + -0.08000784367322922, + 0.0513056218624115, + 0.09095417708158493, + 0.02948816679418087, + -0.0369478277862072, + -0.015693888068199158, + 0.051384251564741135, + -0.028523370623588562, + 0.010666112415492535, + 0.04596463218331337, + 0.047441937029361725, + -0.10504477471113205, + -0.0045044575817883015, + -0.06914548575878143, + 0.04738188907504082, + -0.03778764232993126, + 0.16144846379756927, + 0.016072994098067284, + -0.04059106856584549, + -0.07998155057430267, + 0.03733528032898903, + -0.016966860741376877, + 0.04525521770119667, + 0.03756619617342949, + 0.06081431731581688, + 0.03344818577170372, + -0.06778550893068314, + 0.13147157430648804, + 0.033681612461805344, + -0.04258108511567116, + -0.06240231916308403, + -0.03199373930692673, + -0.04285348206758499, + 0.03236526995897293, + 0.011768505908548832, + -0.10437305271625519, + -0.032722968608140945, + 0.02768459916114807, + -0.01433499064296484, + 0.07204347103834152, + 0.14273704588413239, + 0.07012146711349487, + -0.10024670511484146 + ] + }, + "p244_241.wav": { + "name": "p244", + "embedding": [ + 0.04855145141482353, + 0.10388829559087753, + 0.007621504832059145, + 0.014084719121456146, + -0.04301459342241287, + 0.06849325448274612, + -0.09801189601421356, + 0.10925611853599548, + -0.08141535520553589, + 0.13665910065174103, + -0.12346279621124268, + 0.09902921319007874, + -0.06005801260471344, + -0.16112415492534637, + -0.04238605499267578, + 0.04897911846637726, + -0.03166691213846207, + 0.008135289885103703, + -0.045518938452005386, + -0.02430955320596695, + 0.022337349131703377, + 0.03604353219270706, + 0.03823590651154518, + 0.01980532705783844, + 0.026693126186728477, + 0.06383757293224335, + -0.004623767454177141, + 0.05126023292541504, + 0.021751489490270615, + -0.05143981799483299, + -0.051273226737976074, + 0.11770674586296082, + -0.04369792342185974, + 0.013948287814855576, + 0.05998640134930611, + 0.021963942795991898, + 0.0004481850191950798, + -0.05225333198904991, + -0.021923648193478584, + -0.010574856773018837, + -0.06980741024017334, + 0.04147776961326599, + 0.003056139685213566, + -0.009921594522893429, + 0.05329664796590805, + 0.025850359350442886, + -0.011497590690851212, + -0.04397731274366379, + -0.09409703314304352, + 0.1313454806804657, + 0.04998315870761871, + -0.005225644912570715, + -0.061617471277713776, + -0.07721313089132309, + 0.11883231997489929, + -0.033477701246738434, + -0.12391061335802078, + -0.03029947727918625, + 0.0865338072180748, + 0.16138508915901184, + -0.04544484242796898, + -0.029190942645072937, + 0.010008024051785469, + 0.08031313121318817, + 0.02582111768424511, + 0.1161913275718689, + 0.0714988261461258, + 0.08074761927127838, + 0.005205424036830664, + 0.02900320664048195, + 0.06444621831178665, + 0.04472336918115616, + 0.053396329283714294, + -0.037300001829862595, + 0.005555342882871628, + 0.02497043088078499, + -0.03533528745174408, + 0.05489230901002884, + -0.014426913112401962, + -0.0039623393677175045, + -0.03082038089632988, + -0.0097047733142972, + -0.015025701373815536, + -0.0434880405664444, + -0.02828710898756981, + 0.05669764056801796, + 0.0005257711745798588, + 0.008027404546737671, + 0.07677888870239258, + 0.026675008237361908, + -0.04944892227649689, + 0.05094979703426361, + -0.03902903199195862, + -0.07506494224071503, + -0.014869222417473793, + 0.004144656006246805, + -0.026414018124341965, + 0.0847502052783966, + 0.030529940500855446, + -0.012968376278877258, + 0.1166490763425827, + 0.052746839821338654, + 0.0427168570458889, + 0.04046155512332916, + -0.10833506286144257, + 0.10884879529476166, + 0.08455890417098999, + -0.026933126151561737, + 0.048196226358413696, + -0.011005966924130917, + 0.0821273922920227, + 0.0976448506116867, + -0.14543811976909637, + -0.053050361573696136, + 0.017240280285477638, + -0.003042595461010933, + 0.003207179717719555, + 0.0640895813703537, + -0.030248042196035385, + -0.011854519136250019, + 0.11737500131130219, + -0.08714167773723602, + -0.061433304101228714, + -0.016499049961566925, + 0.036850713193416595, + -0.0701727420091629, + 0.040095001459121704, + 0.0403565987944603, + 0.0020230580121278763, + -0.0034932373091578484, + 0.09443716704845428, + -0.021341778337955475, + -0.012844682671129704, + 0.029157381504774094, + -0.05852624773979187, + 0.0026108077727258205, + -0.04634423553943634, + -0.002826808486133814, + 0.07767903804779053, + 0.06181219220161438, + 0.03926551714539528, + 0.008812297135591507, + -0.036281876266002655, + -0.09084829688072205, + -0.003346675308421254, + 0.06916650384664536, + 0.05068311095237732, + -0.0044388072565197945, + 0.0014686076901853085, + -0.05462687462568283, + -0.0681893527507782, + 0.04659188538789749, + -0.005526903551071882, + 0.10282546281814575, + -0.03730575367808342, + 0.009473313577473164, + 0.10287028551101685, + 0.014399701729416847, + -0.022871065884828568, + -0.09819097816944122, + -0.02461743727326393, + 0.007161572575569153, + 0.0411594919860363, + -0.06994098424911499, + -0.0859316885471344, + 0.00927063636481762, + 0.0360124297440052, + -0.0096918735653162, + 0.047297608107328415, + 0.03313833847641945, + 0.0044814180582761765, + 0.046500928699970245, + -0.06753655523061752, + 0.016161903738975525, + -0.10432673245668411, + -0.0543946772813797, + -0.020103605464100838, + -0.03209888935089111, + 0.007815122604370117, + 0.07899929583072662, + 0.009852278046309948, + 0.00455419160425663, + 0.02052672952413559, + -0.10859338194131851, + -0.07700277119874954, + 0.07874372601509094, + 0.06829214096069336, + 0.01762128807604313, + 0.05811459571123123, + 0.06048346310853958, + -0.060409173369407654, + 0.08008294552564621, + 0.07020724564790726, + 0.10097268223762512, + -0.019900325685739517, + 0.0370103120803833, + -0.050697922706604004, + 0.036122877150774, + 0.06127641350030899, + -0.10580562055110931, + -0.11345987021923065, + -0.046258002519607544, + -0.04944352060556412, + 0.08074247092008591, + -0.009374765679240227, + -0.0035515157505869865, + 0.008655051700770855, + -0.03376298397779465, + -0.06207156181335449, + -0.08288927376270294, + 0.09518016129732132, + -0.025089647620916367, + -0.0324341282248497, + -0.05632743984460831, + 0.03967411816120148, + 0.04602235555648804, + 0.03851163387298584, + -0.0002709056716412306, + 0.03235660493373871, + 0.04745863378047943, + -0.08346137404441833, + -0.03865830600261688, + 0.05321166664361954, + -0.010574307292699814, + -0.06656316667795181, + 0.023734666407108307, + -0.09398245811462402, + 0.11111139506101608, + -0.05355370044708252, + 0.1551147848367691, + -0.04079209640622139, + -0.05409376323223114, + -0.05981755256652832, + 0.03477563336491585, + -0.037898462265729904, + 0.019900977611541748, + 0.04998005926609039, + 0.05720070004463196, + 0.009731464087963104, + -0.042229704558849335, + 0.11460287123918533, + 0.009367861784994602, + -0.030984530225396156, + -0.03553812950849533, + -0.05675627291202545, + -0.05962741747498512, + -0.021136879920959473, + -0.0032997215166687965, + -0.10011956840753555, + 0.0004761507734656334, + -0.010803990997374058, + -0.024961348623037338, + 0.060372449457645416, + 0.13477203249931335, + 0.07770529389381409, + -0.1096356213092804 + ] + }, + "p244_306.wav": { + "name": "p244", + "embedding": [ + 0.05505622550845146, + 0.07680020481348038, + -0.03827314078807831, + 0.0035655181854963303, + -0.0046660639345645905, + 0.02073761634528637, + -0.1413261890411377, + 0.07939309626817703, + -0.03812088817358017, + 0.14609000086784363, + -0.04396982491016388, + 0.09468288719654083, + -0.029429864138364792, + -0.11848115921020508, + -0.009265345521271229, + 0.057256996631622314, + -0.0355813167989254, + -0.0283795353025198, + -0.0076742880046367645, + -0.028055639937520027, + 0.04498696327209473, + 0.04041751101613045, + 0.04749239981174469, + -0.03170397877693176, + -0.005378715228289366, + 0.07455624639987946, + -0.0028243588749319315, + 0.023833759129047394, + 0.016195468604564667, + -0.033213112503290176, + 0.007682809606194496, + 0.06728558242321014, + -0.0014248816296458244, + -0.01707622967660427, + 0.003660690039396286, + 0.019824368879199028, + -0.004316001199185848, + -0.0593959279358387, + 0.0025273840874433517, + 0.0374947153031826, + -0.040805961936712265, + 0.05585349723696709, + 0.018934044986963272, + -0.029842540621757507, + 0.03390195965766907, + -0.06957244127988815, + -0.05907613784074783, + -0.008028434589505196, + -0.06762120127677917, + 0.13579198718070984, + 0.10991869866847992, + 0.02149053104221821, + -0.04955786094069481, + 0.0034280698746442795, + 0.0963892936706543, + 0.01778365671634674, + -0.09388463199138641, + -0.049003083258867264, + 0.026032747700810432, + 0.13977527618408203, + -0.021188070997595787, + -0.02734021469950676, + 0.04864706099033356, + 0.09901722520589828, + 0.02095963805913925, + 0.049538541585206985, + 0.1066974550485611, + 0.047495778650045395, + 0.014780217781662941, + -0.013616404496133327, + 0.019388051703572273, + 0.08726206421852112, + 0.020648520439863205, + -0.010897047817707062, + 0.02282070927321911, + -0.013776706531643867, + -0.04380542039871216, + -0.01056300476193428, + -0.0001723114401102066, + -0.06448108702898026, + -0.06004903092980385, + -0.023561565205454826, + -0.01949315145611763, + 0.054675959050655365, + -0.0067515065893530846, + 0.0027969181537628174, + 0.026212245225906372, + -0.041123561561107635, + 0.035941608250141144, + 0.015969542786478996, + 0.023747731000185013, + 0.014893513172864914, + -0.033469509333372116, + -0.0790315568447113, + 0.014688857831060886, + 0.016097987070679665, + 0.021435314789414406, + 0.04335038363933563, + 0.033681608736515045, + 0.01696859858930111, + 0.10140206664800644, + 0.03156451880931854, + -0.00837996881455183, + -0.02197633683681488, + -0.05654747039079666, + 0.08613306283950806, + 0.11363258212804794, + -0.03464864194393158, + 0.048325322568416595, + -0.027570761740207672, + -0.010014321655035019, + 0.0037313923239707947, + -0.09995387494564056, + -0.03605522960424423, + 0.029343679547309875, + 0.05993777886033058, + 0.02685803920030594, + 0.09484286606311798, + 0.03450668230652809, + 0.03874657303094864, + 0.0922374352812767, + -0.04130696505308151, + -0.07843338698148727, + -0.05972140282392502, + 0.07574707269668579, + -0.060857005417346954, + 0.06701217591762543, + 0.05937100574374199, + 0.009569802321493626, + 0.0002467036247253418, + 0.06186249107122421, + 0.019481608644127846, + 0.014568346552550793, + -0.03743567690253258, + -0.023488711565732956, + 0.03462141752243042, + -0.0623919814825058, + 0.0265984907746315, + 0.046789415180683136, + 0.006928352639079094, + 0.06547141820192337, + 0.0300578810274601, + -0.0012788493186235428, + -0.09290700405836105, + 0.013414192944765091, + 0.036794938147068024, + 0.04122234135866165, + -0.024422885850071907, + -0.04641049727797508, + -0.006802916526794434, + -0.054350703954696655, + -0.030609797686338425, + -0.0559987835586071, + 0.0992480143904686, + -0.01778743416070938, + 0.03443723917007446, + 0.06636541336774826, + -0.03534723445773125, + -0.0029190946370363235, + -0.01694457232952118, + 0.015438850969076157, + 0.009172656573355198, + 0.028035113587975502, + -0.07191040366888046, + -0.08365357667207718, + 0.0023439358919858932, + 0.04300897568464279, + 0.02191540226340294, + 0.049554355442523956, + 0.05818035081028938, + -0.023233793675899506, + 0.013830053620040417, + -0.017325764521956444, + 0.017293429002165794, + -0.07358473539352417, + -0.06480465084314346, + -0.0010920651257038116, + -0.03592834994196892, + -0.024872202426195145, + 0.08201742172241211, + 0.011467477306723595, + 0.05391485244035721, + -0.01736217923462391, + -0.06846168637275696, + -0.08243231475353241, + 0.06161642074584961, + 0.07036758959293365, + -0.033649928867816925, + 0.00907411053776741, + 0.06846663355827332, + 0.01289813220500946, + 0.002310441806912422, + 0.026799112558364868, + 0.07719340175390244, + -0.03801887854933739, + -0.03133057430386543, + -0.08754429221153259, + 0.022657452151179314, + 0.10896364599466324, + -0.0877876877784729, + -0.04274103045463562, + -0.06856776773929596, + -0.09331691265106201, + 0.03670834004878998, + -0.03515349328517914, + 0.004988156724721193, + 0.030150409787893295, + -0.04532838612794876, + -0.11392181366682053, + -0.10930128395557404, + 0.06066618859767914, + -0.037151992321014404, + 0.006051860749721527, + -0.05155124142765999, + 0.025649290531873703, + 0.050248079001903534, + 0.04166022688150406, + -0.03138338401913643, + 0.027954040095210075, + 0.007608810439705849, + -0.028143342584371567, + 0.0008438541553914547, + 0.026732830330729485, + 0.05875341594219208, + -0.09967515617609024, + -0.010662459768354893, + -0.08705344796180725, + 0.06402252614498138, + -0.06523282825946808, + 0.08083129674196243, + 0.02737555280327797, + -0.01571253314614296, + -0.10060656070709229, + 0.014561232179403305, + -0.010295488871634007, + 0.05841793119907379, + 0.03223147988319397, + 0.03551070764660835, + 0.04109828919172287, + -0.07578560709953308, + 0.07033883780241013, + 0.058126144111156464, + 0.01752890646457672, + -0.08540873229503632, + 0.006016083061695099, + -0.027324464172124863, + 0.046412453055381775, + 0.005907483398914337, + -0.027537653222680092, + -0.004746068734675646, + -0.014799483120441437, + 0.003220837563276291, + 0.06860937178134918, + 0.06972348690032959, + 0.048717208206653595, + -0.10334914922714233 + ] + }, + "p244_027.wav": { + "name": "p244", + "embedding": [ + 0.04432281106710434, + 0.07354508340358734, + -0.03412673622369766, + 0.0028409529477357864, + -0.012658207677304745, + 0.05901127681136131, + -0.12379668653011322, + 0.08685243874788284, + 0.012447293847799301, + 0.13412760198116302, + -0.06889189779758453, + 0.11494535207748413, + 0.022990604862570763, + -0.15885275602340698, + -0.006521563045680523, + 0.004106161650270224, + 0.008960036560893059, + 0.0411091148853302, + -0.036406636238098145, + -0.02812749333679676, + 0.0601324662566185, + 0.05481727421283722, + 0.044593121856451035, + -0.14300663769245148, + 0.03986106812953949, + 0.05103269964456558, + 0.012283232063055038, + 0.052562467753887177, + -0.015370592474937439, + -0.10172130167484283, + -0.03452380746603012, + 0.10231205075979233, + -0.05644785612821579, + 0.01934194378554821, + 0.05006445199251175, + -0.019126635044813156, + -0.02801322564482689, + -0.042540453374385834, + 0.030695855617523193, + 0.031318336725234985, + 0.005516704171895981, + 0.053985387086868286, + 0.023677410557866096, + -0.03394247964024544, + 0.029108364135026932, + 0.04938003420829773, + 0.021068723872303963, + -0.055030401796102524, + -0.0659765899181366, + 0.16514599323272705, + 0.012818671762943268, + 0.016749534755945206, + -0.07091765105724335, + -0.05374474078416824, + 0.07389141619205475, + 0.012549187988042831, + -0.058447156101465225, + -0.027476154267787933, + 0.056489497423172, + 0.10836535692214966, + -0.02241826243698597, + -0.05815034359693527, + 0.05611545592546463, + 0.04972558468580246, + -0.012564528733491898, + 0.06321202218532562, + 0.1030239462852478, + 0.08244116604328156, + 0.029996566474437714, + 0.03186764940619469, + -0.0323331356048584, + 0.10459224879741669, + 0.03648272529244423, + -0.033128805458545685, + 0.0326327309012413, + -0.028120974078774452, + -0.04594683647155762, + -0.03663431853055954, + -0.05550771951675415, + -0.0330071821808815, + 0.03931658715009689, + -0.006884632632136345, + 0.0686824694275856, + 0.024757636711001396, + -0.06870334595441818, + 0.027374185621738434, + 0.040667325258255005, + -0.0534016378223896, + 0.046957019716501236, + -0.007710677571594715, + 0.02688753977417946, + 0.013953055255115032, + -0.1099095270037651, + -0.11291852593421936, + 0.04806957393884659, + 0.018868692219257355, + -0.025740426033735275, + 0.058151327073574066, + 0.07144999504089355, + -0.04021773487329483, + 0.09609010815620422, + 0.009181387722492218, + -0.038025110960006714, + -0.001317206653766334, + -0.040908198803663254, + 0.11304080486297607, + 0.13078133761882782, + 0.005507038906216621, + 0.03398223966360092, + -0.11903263628482819, + 0.035784296691417694, + 0.036333270370960236, + -0.14562994241714478, + -0.0747666209936142, + 0.0033839354291558266, + -0.01173822209239006, + 0.0062467013485729694, + 0.11940028518438339, + -0.003899088129401207, + 0.028578901663422585, + 0.10952045023441315, + -0.1148550808429718, + -0.053863491863012314, + -0.04510793089866638, + 0.03156639263033867, + -0.07044486701488495, + 0.06248483061790466, + 0.04448135197162628, + -0.026083804666996002, + 0.01805531047284603, + 0.044719040393829346, + -0.01635478250682354, + 0.03495458513498306, + -0.016607210040092468, + -0.014521969482302666, + 0.022298172116279602, + -0.05599301680922508, + -0.008513668552041054, + -0.0020260638557374477, + 0.04130125790834427, + 0.07170802354812622, + -0.010988626629114151, + -0.07091115415096283, + -0.10348059982061386, + 0.02258566953241825, + 0.009420241229236126, + 0.03773786500096321, + -0.03998532518744469, + -0.032974280416965485, + -0.03115672431886196, + -0.07251474261283875, + 0.04311061650514603, + -0.023966269567608833, + 0.06192421913146973, + 0.030083896592259407, + 0.023471448570489883, + 0.10188248008489609, + 0.02776740863919258, + -0.004157468676567078, + -0.034370824694633484, + -0.03946379944682121, + 0.0039813946932554245, + 0.004686253145337105, + -0.077348992228508, + -0.04909580573439598, + -0.03943309932947159, + -0.03568442538380623, + -0.03952997550368309, + 0.05051346868276596, + 0.04566514864563942, + 0.0454668328166008, + 0.026747507974505424, + -0.0385223850607872, + -0.0630970224738121, + -0.08967648446559906, + -0.04111894592642784, + -0.00871978234499693, + -0.026575561612844467, + -0.051508672535419464, + 0.12006650865077972, + 0.008227568119764328, + 0.03348005563020706, + -0.07317588478326797, + 0.0016684443689882755, + -0.07362757623195648, + 0.027828818187117577, + 0.04218640178442001, + -0.020466996356844902, + -0.002867426723241806, + -0.004060441628098488, + 0.00015130732208490372, + 0.053317341953516006, + 0.095311738550663, + 0.04253970831632614, + 0.013434167020022869, + -0.0034487536177039146, + -0.061610374599695206, + 0.15834152698516846, + 0.10514329373836517, + -0.01765006221830845, + -0.07048051059246063, + -0.036414600908756256, + -0.10194718092679977, + 0.02502007596194744, + -0.017176542431116104, + -0.010008294135332108, + 0.000814578088466078, + 0.018073352053761482, + -0.09646859765052795, + -0.05671139061450958, + 0.015663597732782364, + -0.04576176404953003, + -0.014507502317428589, + -0.08447213470935822, + 0.05495987460017204, + 0.09973976016044617, + 0.029841985553503036, + -0.0037116468884050846, + -0.031571075320243835, + 0.053076013922691345, + -0.05090910196304321, + 0.03330843150615692, + 0.01553352177143097, + 0.04024161398410797, + -0.06372494995594025, + 0.011975262314081192, + -0.03629833832383156, + -0.008213363587856293, + -0.06851102411746979, + 0.0992109403014183, + 0.04397306218743324, + -0.05417325720191002, + -0.05329791456460953, + 0.09340571612119675, + -0.02845717966556549, + 0.01837374083697796, + 0.03311600908637047, + 0.02748539298772812, + 0.04829017072916031, + -0.14807772636413574, + 0.07516683638095856, + 0.02214081585407257, + 0.0023267148062586784, + -0.09832902252674103, + -0.10687923431396484, + -0.024699702858924866, + 0.028222691267728806, + 0.02537519857287407, + -0.06494569778442383, + -0.003348737955093384, + 0.050109393894672394, + 0.03473294526338577, + 0.021052168682217598, + 0.11525900661945343, + 0.006066151428967714, + -0.08687369525432587 + ] + }, + "p244_077.wav": { + "name": "p244", + "embedding": [ + 0.0441247895359993, + 0.05577719584107399, + -0.011542562395334244, + 0.04647618532180786, + -0.07843305170536041, + 0.04447241127490997, + -0.12737514078617096, + 0.14008599519729614, + -0.022516822442412376, + 0.11242713034152985, + -0.05996832996606827, + 0.13259345293045044, + -0.02528795599937439, + -0.18848836421966553, + -0.00502127967774868, + 0.07134155929088593, + -0.014987419359385967, + -0.042251598089933395, + -0.008396918885409832, + -0.02066117525100708, + 0.030952034518122673, + 0.030579710379242897, + 0.05033896863460541, + 0.030778992921113968, + 0.014115611091256142, + 0.07981330156326294, + -0.013351555913686752, + 0.04463367164134979, + 0.019361531361937523, + -0.028901483863592148, + -0.0441368892788887, + 0.09508106112480164, + -0.06657519936561584, + 0.0026479996740818024, + 0.05398434400558472, + -0.017870793119072914, + -0.02787959761917591, + -0.05334862321615219, + -0.03318542614579201, + -0.021154779940843582, + -0.07629251480102539, + 0.07471948862075806, + 0.03834088519215584, + -0.01960926689207554, + 0.054473958909511566, + 0.008354767225682735, + -0.031763315200805664, + -0.019614068791270256, + -0.12774911522865295, + 0.11969154328107834, + 0.06087518483400345, + -0.0017305565997958183, + -0.07445700466632843, + -0.0444067120552063, + 0.10394944250583649, + -0.022765133529901505, + -0.11375965178012848, + -0.048930611461400986, + 0.09639698266983032, + 0.1404995620250702, + -0.03372683376073837, + -0.021637579426169395, + 0.02221793122589588, + 0.1013527512550354, + 0.08033356070518494, + 0.09617137908935547, + 0.07934974133968353, + 0.12718281149864197, + -0.026742536574602127, + 0.016393916681408882, + 0.053307823836803436, + 0.07378504425287247, + 0.037886109203100204, + -0.005526804365217686, + 0.0018383972346782684, + 0.02013028971850872, + 0.0002220624592155218, + 0.0023388895206153393, + -0.022234193980693817, + -0.00037703244015574455, + -0.021738335490226746, + -0.010839002206921577, + 0.010133093222975731, + 0.016255555674433708, + -0.02127884142100811, + 0.07280543446540833, + 0.05774432420730591, + 0.009844318963587284, + 0.06331487745046616, + 0.02046625316143036, + -0.03377727046608925, + 0.08063536137342453, + -0.09111381322145462, + -0.05468762665987015, + -0.0004921611398458481, + -0.009001150727272034, + 0.027706097811460495, + 0.09170880913734436, + 0.03438568115234375, + -0.009573924355208874, + 0.13051530718803406, + 0.046903930604457855, + -0.00993403047323227, + 0.04298553615808487, + -0.08616945147514343, + 0.1249568909406662, + 0.06969983875751495, + -0.02717544510960579, + 0.05156414955854416, + -0.05012320727109909, + 0.08062338083982468, + 0.061145517975091934, + -0.12330621480941772, + -0.030489381402730942, + 0.021639931946992874, + 0.00677353423088789, + -0.032268159091472626, + 0.1390179693698883, + -0.01703375019133091, + 0.041552312672138214, + 0.11843377351760864, + -0.08506986498832703, + -0.05398859083652496, + 0.0014515286311507225, + 0.03961411863565445, + -0.08837606012821198, + 0.058947350829839706, + 0.031523775309324265, + -0.005090508610010147, + 0.029098298400640488, + 0.0854685977101326, + -0.01350948866456747, + -0.010343389585614204, + 0.03508518636226654, + -0.06436306983232498, + 0.013971364125609398, + -0.020596493035554886, + 0.006497354246675968, + 0.07645373791456223, + 0.030720841139554977, + 0.06042849272489548, + -0.01582488603889942, + -0.008674650453031063, + -0.1221734881401062, + 0.012565107084810734, + 0.035887524485588074, + 0.09438872337341309, + -0.0019660682883113623, + -0.027055587619543076, + -0.052517496049404144, + -0.08269670605659485, + 0.026657959446310997, + 0.001751558156684041, + 0.07053229212760925, + -0.04909665882587433, + 0.0018528427463024855, + 0.06924028694629669, + 0.038046836853027344, + 0.0036381392274051905, + -0.06326187402009964, + -0.05350184440612793, + -0.010834218934178352, + 0.05925120413303375, + -0.09384602308273315, + -0.05921382084488869, + -0.014839387498795986, + 0.05338997393846512, + -0.03743450716137886, + 0.051080018281936646, + 0.04795766621828079, + 0.03266468644142151, + 0.01791839674115181, + -0.0691235139966011, + 0.011312424205243587, + -0.08719964325428009, + -0.07640030980110168, + -0.01496092975139618, + 0.0074958885088562965, + -0.013697894290089607, + 0.059496089816093445, + 0.02363206073641777, + 0.05525142699480057, + -0.005776542238891125, + -0.07624559104442596, + -0.10020535439252853, + 0.04826219007372856, + 0.03628809005022049, + -0.013998333364725113, + 0.06495166569948196, + 0.0707811713218689, + -0.08242375403642654, + 0.05237758159637451, + 0.045573752373456955, + 0.10469721257686615, + -0.04441332072019577, + 0.03467366099357605, + -0.0633363276720047, + 0.0810864269733429, + 0.10685169696807861, + -0.0902961939573288, + -0.08031240105628967, + -0.023051604628562927, + -0.0735018253326416, + 0.05149964615702629, + -0.030868660658597946, + -0.024761589244008064, + 0.030378814786672592, + 0.002915068995207548, + -0.10719775408506393, + -0.08636774122714996, + 0.07856257259845734, + -0.07141738384962082, + -0.0007749493233859539, + -0.09568405151367188, + 0.03428655490279198, + 0.08233478665351868, + 0.022525392472743988, + -0.02349892258644104, + -0.0033800352830439806, + 0.05736416205763817, + -0.02389426901936531, + 0.007860852405428886, + 0.0827043354511261, + 0.036795757710933685, + -0.10705377161502838, + -0.047763891518116, + -0.06690309196710587, + 0.049164410680532455, + -0.023161571472883224, + 0.15385277569293976, + 0.0024788815062493086, + -0.03624585270881653, + -0.04904076084494591, + 0.025826483964920044, + 0.0019155757036060095, + 0.04821204021573067, + 0.05015700310468674, + 0.07506665587425232, + 0.02887258306145668, + -0.04474882781505585, + 0.1433289647102356, + 0.04517758637666702, + -0.05305725708603859, + -0.056351616978645325, + -0.022155005484819412, + -0.05352121591567993, + 0.01626274362206459, + 0.02168426476418972, + -0.11227668076753616, + -0.020241057500243187, + 0.029854975640773773, + -0.029061123728752136, + 0.044770658016204834, + 0.14251279830932617, + 0.07589574158191681, + -0.09854022413492203 + ] + }, + "p244_364.wav": { + "name": "p244", + "embedding": [ + 0.07411766052246094, + 0.0688961073756218, + -0.03767406567931175, + -0.0035897730849683285, + -0.029766447842121124, + 0.046414099633693695, + -0.12934976816177368, + 0.09268532693386078, + -0.005761180073022842, + 0.14150846004486084, + -0.06534643471240997, + 0.1073131412267685, + 0.009341469034552574, + -0.10973008722066879, + -0.022096753120422363, + 0.019180428236722946, + -0.039482422173023224, + -0.018080715090036392, + -0.04646385833621025, + -0.03326559066772461, + 0.027837440371513367, + 0.05835944414138794, + 0.02847321890294552, + -0.03541101515293121, + 0.022809116169810295, + 0.047375187277793884, + -0.00468095950782299, + 0.011728998273611069, + -0.0037638982757925987, + -0.06544762849807739, + -0.001855323789641261, + 0.08075466006994247, + -0.05059591680765152, + 0.019316092133522034, + 0.009953207336366177, + 0.004052397795021534, + 0.00855876225978136, + -0.07630345970392227, + -0.009677673690021038, + 0.040510546416044235, + -0.010372968390583992, + 0.07524291425943375, + 0.022167598828673363, + -0.022396724671125412, + 0.00717608816921711, + -0.00957159511744976, + -0.016653750091791153, + -0.03913448378443718, + -0.08551868051290512, + 0.18275299668312073, + 0.048809558153152466, + 0.01193698775023222, + -0.08591070026159286, + -0.034239254891872406, + 0.060345228761434555, + -0.003848826512694359, + -0.06945644319057465, + -0.025525327771902084, + 0.02138989232480526, + 0.11611030995845795, + -0.01534538995474577, + -0.06660165637731552, + 0.037291429936885834, + 0.08991001546382904, + 0.030401840806007385, + 0.0201491080224514, + 0.11415170133113861, + 0.0930323451757431, + -0.03326226770877838, + 0.014700353145599365, + 0.03936295211315155, + 0.07029324024915695, + 0.08579345792531967, + -0.0018287412822246552, + 0.04666293412446976, + -0.029974348843097687, + -0.020235486328601837, + -0.01014566607773304, + -0.022014593705534935, + -0.056566379964351654, + -0.0003004016471095383, + -0.010959039442241192, + 0.018272504210472107, + 0.0851973295211792, + -0.04853484034538269, + 0.019574005156755447, + 0.03364041820168495, + -0.04355157911777496, + 0.05365624278783798, + 0.045190244913101196, + 0.03042224608361721, + 0.02210867404937744, + -0.07886255532503128, + -0.0850730836391449, + 0.053215377032756805, + 5.2145373047096655e-05, + 0.0519869439303875, + 0.05321744084358215, + 0.05672458931803703, + -0.013537104241549969, + 0.08900400251150131, + 0.02567974478006363, + -0.005181679967790842, + -0.04215504229068756, + -0.06359979510307312, + 0.11314573884010315, + 0.14001679420471191, + -0.037757281213998795, + 0.023854993283748627, + -0.042268212884664536, + 0.031940706074237823, + 0.027521274983882904, + -0.11223103106021881, + -0.07159793376922607, + 0.025317013263702393, + 0.027026234194636345, + 0.04232592508196831, + 0.09741935133934021, + 0.024838989600539207, + 0.04968748614192009, + 0.07410114258527756, + -0.06681782007217407, + -0.037675559520721436, + -0.025230515748262405, + 0.03447061777114868, + -0.07518871128559113, + 0.0433245524764061, + 0.05249509960412979, + 0.003272540867328644, + -0.02157735824584961, + 0.0655079334974289, + -0.008282921276986599, + 0.010799411684274673, + -0.04245069622993469, + 0.019343122839927673, + 0.0475752130150795, + 0.002618471859022975, + -0.0015741947572678328, + 0.022558771073818207, + 0.02955506555736065, + 0.044815391302108765, + 0.0234798863530159, + -0.04209362715482712, + -0.12220008671283722, + 0.03398098796606064, + 0.041929736733436584, + 0.03299722075462341, + -0.05535803362727165, + -0.03683823347091675, + -0.00916335266083479, + -0.048021018505096436, + 0.023520659655332565, + -0.005893264897167683, + 0.04973649978637695, + 0.02444392442703247, + -0.011596551164984703, + 0.11101164668798447, + 0.0012469416251406074, + -0.0016663861460983753, + -0.002089510438963771, + 0.005225991364568472, + 0.027256745845079422, + 0.05554088205099106, + -0.07215414196252823, + -0.08712362498044968, + -0.004855040460824966, + 0.005757532082498074, + 0.0021163932979106903, + 0.040705401450395584, + 0.06049233675003052, + -0.03540574014186859, + 0.028685539960861206, + -0.06474751234054565, + -0.003975156228989363, + -0.09975000470876694, + -0.0512579008936882, + 0.005521845072507858, + -0.05837303027510643, + -0.014604221098124981, + 0.09144848585128784, + 0.005041875876486301, + 0.05929539352655411, + -0.05762714892625809, + -0.05505233258008957, + -0.037216201424598694, + 0.049103111028671265, + 0.06742976605892181, + -0.0353429913520813, + -0.0027305083349347115, + 0.0564521849155426, + 0.04915950819849968, + 0.028110604733228683, + 0.06778980791568756, + 0.07989275455474854, + -0.05025125667452812, + -0.020636796951293945, + -0.05088840425014496, + 0.1061127632856369, + 0.0628167986869812, + -0.05226246640086174, + -0.06122283637523651, + -0.055083196610212326, + -0.0589204803109169, + 0.016531746834516525, + -0.02637522481381893, + 0.0182774867862463, + 0.04533546417951584, + -0.018756572157144547, + -0.0969420075416565, + -0.09481378644704819, + 0.0583159439265728, + -0.03491229563951492, + 0.008995480835437775, + -0.06785570830106735, + 0.04639941453933716, + 0.07237907499074936, + 0.048800449818372726, + -0.027813490480184555, + 0.011149127036333084, + -0.010462388396263123, + -0.04715214669704437, + -0.01963178999722004, + 0.0028442740440368652, + 0.03367045149207115, + -0.08749338239431381, + -0.01355995424091816, + -0.06922807544469833, + 0.04285108298063278, + -0.059916459023952484, + 0.10366028547286987, + 0.01412882935255766, + -0.058058008551597595, + -0.08771266788244247, + 0.02347324788570404, + -0.03683902323246002, + 0.04756538197398186, + 0.043209902942180634, + 0.028496388345956802, + 0.04044199734926224, + -0.09550120681524277, + 0.06856609880924225, + 0.0707521140575409, + -0.013329627923667431, + -0.08416861295700073, + -0.0413392037153244, + -0.0009588624234311283, + 0.04733605310320854, + 0.0095968097448349, + -0.022001352161169052, + 0.01775701902806759, + 0.008782084099948406, + 0.0021933193784207106, + 0.0537465438246727, + 0.09249182790517807, + 0.05076516792178154, + -0.1178692877292633 + ] + }, + "p244_205.wav": { + "name": "p244", + "embedding": [ + 0.03016308695077896, + 0.07631278038024902, + -0.02349473536014557, + -0.0017680339515209198, + -0.025959618389606476, + 0.011977539397776127, + -0.1266510784626007, + 0.07942116260528564, + -0.012677554972469807, + 0.1364721804857254, + -0.06258305162191391, + 0.0889732763171196, + -0.05844544619321823, + -0.09973613917827606, + 0.00487312488257885, + 0.04413086548447609, + -0.01881502754986286, + -0.005670476704835892, + 0.005553156137466431, + -0.07158921658992767, + 0.021017249673604965, + 0.0031952597200870514, + 0.028753286227583885, + -0.04739619791507721, + -0.008782098069787025, + 0.09371021389961243, + 0.001390613615512848, + -0.019207758828997612, + -0.01510784961283207, + -0.03508295863866806, + 0.011021770536899567, + 0.058934133499860764, + -0.022919263690710068, + -0.0034853527322411537, + 0.03721454739570618, + 0.02054639160633087, + -0.03435319662094116, + 0.0009646564722061157, + 0.049066949635744095, + 0.03440074995160103, + -0.06181098148226738, + 0.06955818831920624, + 0.007186093833297491, + -0.003993075340986252, + 0.057347480207681656, + -0.042310722172260284, + -0.04215339571237564, + 0.034727320075035095, + -0.04151586443185806, + 0.09577593207359314, + 0.06594061851501465, + 0.010294405743479729, + -0.06734541058540344, + 0.01236158236861229, + 0.07711176574230194, + 0.007514624390751123, + -0.11242041736841202, + -0.016460532322525978, + 0.03292901813983917, + 0.09196829050779343, + -0.031774237751960754, + -0.05448863282799721, + 0.00978437066078186, + 0.0871991366147995, + 0.003283141180872917, + 0.060162123292684555, + 0.08885753899812698, + 0.09054620563983917, + -0.00599433109164238, + -0.027453433722257614, + 0.040771447122097015, + 0.06526815891265869, + 0.06084730476140976, + -0.024752981960773468, + 0.03567638620734215, + -0.04636397585272789, + 0.0012313686311244965, + -0.025745250284671783, + -0.004358578473329544, + -0.08555863797664642, + -0.06419212371110916, + -0.041867781430482864, + 0.0004935902543365955, + 0.03392283245921135, + -0.0019047296373173594, + -0.015169690363109112, + 0.0805935189127922, + -0.04919591546058655, + 0.04117341339588165, + 0.04079952463507652, + -0.024259822443127632, + 0.006130870431661606, + -0.0655989721417427, + -0.019292734563350677, + 0.009497793391346931, + -0.019837111234664917, + 0.06371242552995682, + 0.04196896031498909, + 0.03817059099674225, + 0.044975943863391876, + 0.0781751498579979, + 0.041749581694602966, + 0.0076402341946959496, + -0.029130414128303528, + -0.062173351645469666, + 0.0958670824766159, + 0.11044518649578094, + -0.06733745336532593, + 0.027478892356157303, + -0.00026594940572977066, + 0.004652870818972588, + -0.0034995153546333313, + -0.08310652524232864, + -0.01802799291908741, + -0.013631366193294525, + 0.059266187250614166, + 0.011897288262844086, + 0.09876236319541931, + 0.016565734520554543, + 0.017642585560679436, + 0.10447601974010468, + -0.03063739836215973, + -0.06334168463945389, + -0.07251597195863724, + 0.03190169110894203, + -0.09228309988975525, + 0.06963847577571869, + 0.06185544282197952, + 0.04570194333791733, + 0.011232136748731136, + 0.06871529668569565, + 0.01743600331246853, + 0.009362057782709599, + -0.062454648315906525, + -0.0077316854149103165, + 0.009054852649569511, + -0.0016396455466747284, + 0.044532883912324905, + 0.05752849578857422, + -0.0030330857262015343, + 0.10861839354038239, + 0.037174634635448456, + 0.02606108784675598, + -0.0805550068616867, + 0.020083174109458923, + 0.03879685699939728, + 0.007034924812614918, + -0.05270201712846756, + -0.04865071922540665, + 0.01137634739279747, + -0.06903019547462463, + -0.005708023905754089, + -0.033123183995485306, + 0.073824942111969, + -0.007686281576752663, + -0.020624075084924698, + 0.11325747519731522, + 0.024462204426527023, + -0.019084304571151733, + -0.03392207622528076, + -0.02937910705804825, + -0.027688931673765182, + 0.048706650733947754, + -0.1823766827583313, + -0.07137907296419144, + -0.030675146728754044, + 0.0416785404086113, + 0.011940306052565575, + 0.024640271440148354, + 0.08288649469614029, + -0.003177657723426819, + 0.025145195424556732, + 0.032972194254398346, + 0.004632714670151472, + -0.0440162755548954, + -0.0829324722290039, + -0.023201609030365944, + -0.07680384814739227, + -0.035976164042949677, + 0.05989842861890793, + -0.032220836728811264, + 0.04643622040748596, + -0.03596806526184082, + -0.04324684664607048, + -0.0665208026766777, + 0.06019249185919762, + 0.013477716594934464, + -0.04814360290765762, + 0.0039572808891534805, + 0.07898157835006714, + -0.027035336941480637, + -0.005007045343518257, + 0.02664177678525448, + 0.09329436719417572, + -0.07667524367570877, + 0.020837122574448586, + -0.0740472599864006, + 0.038607027381658554, + 0.10655274987220764, + -0.04236876592040062, + -0.06561217457056046, + -0.09368140995502472, + -0.04921199381351471, + 0.059822387993335724, + -0.07126978784799576, + -0.031032122671604156, + -0.001142874825745821, + -0.04545274004340172, + -0.06689963489770889, + -0.0906432718038559, + 0.0516461580991745, + -0.014145022258162498, + 0.007073591463267803, + -0.06059178337454796, + 0.05127984285354614, + -0.008993417955935001, + 0.04388221353292465, + -0.06733091175556183, + 0.06072895973920822, + 0.020806273445487022, + -0.030553819611668587, + 0.025757934898138046, + 0.031326279044151306, + 0.06085589528083801, + -0.03650522977113724, + -0.07732366025447845, + -0.07856559753417969, + 0.05569041147828102, + -0.04994209483265877, + 0.05564780905842781, + 0.020791439339518547, + -0.03016388788819313, + -0.012631956487894058, + -0.016292493790388107, + -0.006613049656152725, + 0.023799734190106392, + 0.06291507184505463, + 0.06203335523605347, + 0.015896782279014587, + -0.029428161680698395, + 0.08116836845874786, + 0.03815999627113342, + 0.028297681361436844, + -0.04080859199166298, + 0.006520522758364677, + -0.0443902313709259, + 0.018002452328801155, + 0.0064173294231295586, + -0.10180249065160751, + 0.03926005959510803, + -0.016444198787212372, + 0.03178990259766579, + 0.0287665743380785, + 0.057476386427879333, + 0.031311824917793274, + -0.03543446585536003 + ] + }, + "p244_153.wav": { + "name": "p244", + "embedding": [ + 0.029908746480941772, + 0.08796428889036179, + 0.003561137244105339, + 0.05124139040708542, + -0.03838258981704712, + 0.0694885402917862, + -0.1072276160120964, + 0.11506807804107666, + -0.03839406371116638, + 0.09610925614833832, + -0.08132104575634003, + 0.1011568009853363, + -0.03140243515372276, + -0.16094990074634552, + -0.05393482372164726, + 0.053198784589767456, + -0.02203511819243431, + -0.016521615907549858, + 0.01955573260784149, + -0.0018976922146975994, + 0.03567659854888916, + 0.060260578989982605, + 0.06530128419399261, + 0.021815720945596695, + 0.034594371914863586, + 0.047837283462285995, + 0.009844763204455376, + 0.07774927467107773, + 0.05152718722820282, + -0.02773633413016796, + -0.049499064683914185, + 0.12236839532852173, + -0.034186042845249176, + 0.005283478647470474, + 0.04035300016403198, + 0.015342583879828453, + 0.022626454010605812, + -0.05843276157975197, + -0.02367490716278553, + -0.0004228993784636259, + -0.053719110786914825, + 0.06582271307706833, + 0.03062688186764717, + 0.006141499616205692, + 0.05435426905751228, + -0.01053429115563631, + -0.023255351930856705, + -0.027505073696374893, + -0.11757603287696838, + 0.1545579582452774, + 0.05283476412296295, + 0.011358948424458504, + -0.08650030195713043, + -0.07226473093032837, + 0.09286567568778992, + -0.012404659762978554, + -0.10434385389089584, + -0.004754845052957535, + 0.07416536659002304, + 0.1650507152080536, + 0.010440561920404434, + -0.029890703037381172, + 0.025686901062726974, + 0.11186371743679047, + 0.045836832374334335, + 0.07590942829847336, + 0.07507078349590302, + 0.08583184331655502, + 0.005289588123559952, + 0.011945978738367558, + 0.04197634011507034, + 0.057633113116025925, + -0.006659397855401039, + -0.022176772356033325, + -0.005409453064203262, + 0.02046557329595089, + -0.03861046954989433, + 0.042081087827682495, + -0.0004089409194421023, + -0.0010156872449442744, + -0.00868919026106596, + -0.0002444600686430931, + -0.018871985375881195, + 0.013513554818928242, + -0.028141943737864494, + 0.05924978852272034, + -0.015947844833135605, + 0.027160553261637688, + 0.08286624401807785, + 0.026302088052034378, + -0.014514127746224403, + 0.04845216125249863, + -0.040523711591959, + -0.06870316714048386, + -0.008588501252233982, + 0.01960325427353382, + 0.015888340771198273, + 0.08247237652540207, + 0.019546357914805412, + -0.03295070677995682, + 0.12452343106269836, + 0.0405028834939003, + 0.004306546412408352, + 0.03981367126107216, + -0.10950112342834473, + 0.0926700234413147, + 0.0770566314458847, + -0.006715069990605116, + 0.06003909930586815, + -0.023645147681236267, + 0.07512587308883667, + 0.06461478024721146, + -0.13270705938339233, + -0.051948510110378265, + 0.055488720536231995, + 0.043098319321870804, + 0.029987327754497528, + 0.10221464931964874, + -0.002652437426149845, + 0.009572223760187626, + 0.08839090168476105, + -0.08693386614322662, + -0.060796551406383514, + -0.028052741661667824, + 0.06288323551416397, + -0.056464701890945435, + 0.029760736972093582, + 0.04184230789542198, + -0.006167259067296982, + -0.029533741995692253, + 0.04234592989087105, + -0.004774926230311394, + 0.017861083149909973, + 0.04606383293867111, + -0.061881713569164276, + 0.02691880241036415, + -0.045809872448444366, + -0.0025958181358873844, + 0.06921854615211487, + 0.03920679911971092, + 0.045526109635829926, + 0.01668567769229412, + -0.044367674738168716, + -0.11068161576986313, + -0.022587129846215248, + 0.05972949415445328, + 0.055391937494277954, + -0.019681308418512344, + -0.05416606366634369, + -0.0694938525557518, + -0.05197073146700859, + 0.047747254371643066, + 0.02751024439930916, + 0.07250191271305084, + -0.024239996448159218, + -0.022324927151203156, + 0.08132641017436981, + -0.0012540584430098534, + -0.007914934307336807, + -0.04296570271253586, + -0.03436541184782982, + 0.002303579356521368, + 0.025939514860510826, + -0.06129169464111328, + -0.08254344761371613, + 0.009578917175531387, + 0.01595713384449482, + -0.02093738503754139, + 0.015819037333130836, + 0.04128260910511017, + 0.009775327518582344, + 0.033406831324100494, + -0.05089791119098663, + 0.008312804624438286, + -0.10598722100257874, + -0.057884979993104935, + -0.01282563991844654, + 0.02829064056277275, + -0.009662375785410404, + 0.0908101350069046, + 0.04490748420357704, + 0.03041825070977211, + 0.030597813427448273, + -0.07342524826526642, + -0.05376426875591278, + 0.06540121883153915, + 0.08210955560207367, + 0.027659712359309196, + 0.09065345674753189, + 0.06466289609670639, + -0.06027880311012268, + 0.07642999291419983, + 0.0599515363574028, + 0.07149791717529297, + -0.027665289118885994, + -0.00744996964931488, + -0.06514466553926468, + 0.0502924770116806, + 0.0699816346168518, + -0.10499098896980286, + -0.11024827510118484, + -0.016736045479774475, + -0.06558652222156525, + 0.05622667819261551, + -0.01895371451973915, + 0.014385553076863289, + 0.022288907319307327, + -0.03905046358704567, + -0.10988224297761917, + -0.10348936915397644, + 0.08278729766607285, + -0.03129652887582779, + -0.039153359830379486, + -0.055608995258808136, + 0.03957006335258484, + 0.07866915315389633, + 0.004229674115777016, + -0.013247305527329445, + -0.0019157640635967255, + 0.0330946147441864, + -0.06683085858821869, + -0.04622773081064224, + 0.04608287289738655, + -0.0011177631095051765, + -0.11169110238552094, + 0.025441113859415054, + -0.06304651498794556, + 0.10115350782871246, + -0.0571221262216568, + 0.14585107564926147, + -0.009756825864315033, + -0.05754952132701874, + -0.06882981956005096, + 0.04157806187868118, + -0.021346334367990494, + 0.022811686620116234, + 0.035449832677841187, + 0.039186086505651474, + 0.0056622447445988655, + -0.05191107094287872, + 0.10407206416130066, + 0.030057601630687714, + -0.057143434882164, + -0.06609752029180527, + -0.024134939536452293, + -0.026114612817764282, + 0.02671566978096962, + 0.01797613874077797, + -0.07374761998653412, + -0.01744576171040535, + 0.00899358931928873, + -0.02213093265891075, + 0.0421634316444397, + 0.1310834437608719, + 0.05119245499372482, + -0.12099143117666245 + ] + }, + "p244_413.wav": { + "name": "p244", + "embedding": [ + 0.05552748590707779, + 0.06643375009298325, + 0.0063137393444776535, + 0.038887862116098404, + -0.021131176501512527, + 0.08869626373052597, + -0.11887893080711365, + 0.11855585873126984, + -0.052547886967659, + 0.14150460064411163, + -0.07664511352777481, + 0.12353579699993134, + -0.008132260292768478, + -0.15871445834636688, + -0.057194918394088745, + 0.0658191367983818, + -0.03010125830769539, + -0.006774375215172768, + -0.026586201041936874, + 0.021808285266160965, + 0.04495798796415329, + 0.0243681613355875, + 0.06698594987392426, + -0.01693485863506794, + 0.027512365952134132, + 0.04701056331396103, + 0.032983992248773575, + 0.10896874219179153, + 0.05157843604683876, + -0.09362108260393143, + -0.020956801250576973, + 0.11279016733169556, + -0.04005863144993782, + 0.03653428703546524, + 0.0634993463754654, + 0.01574144884943962, + 0.018847458064556122, + -0.07978498935699463, + -0.0190176609903574, + -0.022713553160429, + -0.028643637895584106, + 0.06819503009319305, + 0.0020107771269977093, + -0.010499625466763973, + 0.02728862501680851, + 0.02273166924715042, + -0.025774050503969193, + -0.056974202394485474, + -0.10698744654655457, + 0.1389126181602478, + 0.03351801261305809, + 0.03023739904165268, + -0.079288549721241, + -0.09491343796253204, + 0.09026093035936356, + -0.019700828939676285, + -0.09688359498977661, + -0.0420842319726944, + 0.06795133650302887, + 0.18795260787010193, + -0.027427110821008682, + -0.02889133431017399, + 0.022119268774986267, + 0.10026641190052032, + 0.06310391426086426, + 0.09474997222423553, + 0.09602619707584381, + 0.09091298282146454, + 0.03454095125198364, + 0.044640809297561646, + 0.009785193018615246, + 0.09830987453460693, + 0.049372993409633636, + 0.03379545360803604, + 0.020351819694042206, + 0.008216971531510353, + -0.027445772662758827, + 0.005562667269259691, + -0.04314633458852768, + -0.011826267465949059, + -0.003884481033310294, + 0.01878754422068596, + 0.03315787389874458, + 0.025065675377845764, + -0.02491840161383152, + 0.07031452655792236, + -0.02640325203537941, + -0.03403852507472038, + 0.04275985062122345, + -0.004857080057263374, + -0.004863875452429056, + 0.038948945701122284, + -0.08327022939920425, + -0.12070327997207642, + -0.0023379367776215076, + 0.008535699918866158, + 0.011260807514190674, + 0.06192712485790253, + 0.027038482949137688, + -0.026114799082279205, + 0.11182981729507446, + 0.029974572360515594, + -0.019896410405635834, + 0.04478997737169266, + -0.08082740008831024, + 0.11399301886558533, + 0.0766785740852356, + 0.00101058732252568, + 0.03435847908258438, + -0.0655413419008255, + 0.06915264576673508, + 0.07939369231462479, + -0.15886840224266052, + -0.08740544319152832, + 0.024686507880687714, + -0.006875765044242144, + -0.0021982279140502214, + 0.0999336987733841, + -0.0126122385263443, + 0.027436088770627975, + 0.09133933484554291, + -0.08899252116680145, + -0.05001698434352875, + -0.007605938706547022, + 0.04212932661175728, + -0.06933107227087021, + 0.05320509523153305, + -0.0007477098843082786, + -0.002256180625408888, + -0.02303261309862137, + 0.08864404261112213, + -0.004568884614855051, + -0.014503145590424538, + 0.03994216024875641, + -0.06618905067443848, + 0.028465144336223602, + -0.06871537119150162, + -0.002379771787673235, + 0.04775664955377579, + 0.05490398406982422, + 0.06107613071799278, + -0.0026206476613879204, + -0.06289470195770264, + -0.11377197504043579, + -0.014492626301944256, + 0.0397581122815609, + 0.07092711329460144, + -0.00949084386229515, + -0.03062376007437706, + -0.050523847341537476, + -0.03790987282991409, + 0.050263628363609314, + -0.006090502254664898, + 0.08917921781539917, + 0.010893257334828377, + 0.027754753828048706, + 0.09274743497371674, + -0.03531840443611145, + 0.010466954670846462, + -0.05027315020561218, + -0.011201899498701096, + 0.01890147477388382, + 0.04252006858587265, + -0.051358383148908615, + -0.05104398354887962, + 0.030734572559595108, + 0.01547168754041195, + -0.038472339510917664, + 0.040820203721523285, + 0.031793635338544846, + 0.03252987563610077, + 0.04169648513197899, + -0.018572775647044182, + -0.04110284149646759, + -0.10871896147727966, + -0.05247989296913147, + -0.0007934365421533585, + -0.006549298297613859, + -0.025634920224547386, + 0.06595176458358765, + 0.038318850100040436, + 0.057129211723804474, + -0.0013733610976487398, + -0.06975972652435303, + -0.10146481543779373, + 0.06508670747280121, + 0.05807028338313103, + 0.02873513475060463, + 0.04772498086094856, + 0.03442928194999695, + -0.010035617277026176, + 0.06919601559638977, + 0.07061515003442764, + 0.07210110127925873, + -0.003882280085235834, + -0.01024559698998928, + -0.08845819532871246, + 0.10111252963542938, + 0.11110378801822662, + -0.07251887023448944, + -0.08826974034309387, + -0.004682965576648712, + -0.10096397250890732, + 0.05143251642584801, + -0.034302905201911926, + -0.012578219175338745, + 0.06033125892281532, + -0.030913520604372025, + -0.11542132496833801, + -0.07458457350730896, + 0.09471369534730911, + -0.09540969133377075, + -0.03394777700304985, + -0.056562505662441254, + 0.02710641361773014, + 0.08661946654319763, + 0.0342843160033226, + 0.013200325891375542, + -0.0048741428181529045, + 0.07087680697441101, + -0.0968417376279831, + -0.028699439018964767, + 0.05182900279760361, + -0.015251491218805313, + -0.10511530935764313, + 0.02316276915371418, + -0.0690665915608406, + 0.005918172188103199, + -0.0598493292927742, + 0.1405659019947052, + -0.026604073122143745, + -0.052839308977127075, + -0.06870703399181366, + 0.025515126064419746, + -0.04872877150774002, + 0.050505273044109344, + 0.033847369253635406, + 0.05386171489953995, + 0.03783049434423447, + -0.09490808099508286, + 0.14095443487167358, + 0.04343278333544731, + -0.038364771753549576, + -0.08966538310050964, + -0.08357422053813934, + -0.03950528800487518, + 0.016744229942560196, + -0.003149115713313222, + -0.06896740943193436, + -0.01977505348622799, + 0.026742100715637207, + -0.022353297099471092, + 0.03828902170062065, + 0.12637129426002502, + 0.039877377450466156, + -0.09273171424865723 + ] + }, + "p244_034.wav": { + "name": "p244", + "embedding": [ + 0.06562553346157074, + 0.048612311482429504, + 0.015203645452857018, + -0.0012235715985298157, + -0.03443368896842003, + 0.05501305311918259, + -0.1029471755027771, + 0.11168458312749863, + 0.017423667013645172, + 0.07007189095020294, + -0.08742016553878784, + 0.0821203738451004, + -0.006993485148996115, + -0.1573825180530548, + -0.008023237809538841, + 0.04416750371456146, + -0.03125345706939697, + -0.007048833183944225, + -0.05864045023918152, + -0.03840073198080063, + 0.012356491759419441, + 0.043636079877614975, + 0.053607277572155, + -0.0024839178659021854, + 0.03205051273107529, + 0.04524322599172592, + -0.01184853445738554, + 0.019582659006118774, + 0.0020372439175844193, + -0.046482667326927185, + -0.006112158298492432, + 0.06346125900745392, + -0.03171871230006218, + -0.010496973991394043, + 0.033257387578487396, + -0.006122102495282888, + 0.01347152516245842, + -0.08026003837585449, + -0.04488036781549454, + 0.04201894998550415, + -0.05190723389387131, + 0.07317086309194565, + 0.051554225385189056, + -0.015824010595679283, + 0.05274331197142601, + 0.0038529206067323685, + -0.03422069922089577, + -0.05027550086379051, + -0.1174953430891037, + 0.15826359391212463, + 0.04552783817052841, + 0.025667157024145126, + -0.09340095520019531, + -0.01947007328271866, + 0.07311001420021057, + -0.0266435444355011, + -0.06862623989582062, + -0.02304871380329132, + 0.059475041925907135, + 0.10230003297328949, + 0.014408551156520844, + -0.01942823827266693, + 0.032441359013319016, + 0.06341756135225296, + 0.01187172718346119, + 0.02172405831515789, + 0.10330133140087128, + 0.09432270377874374, + -0.020649559795856476, + 0.035143088549375534, + 0.04434032365679741, + 0.03849361091852188, + 0.03960993140935898, + -0.0031395829282701015, + 0.014636171981692314, + -0.019699156284332275, + -0.015449078753590584, + -0.018568111583590508, + -0.02272905968129635, + -0.003091132966801524, + 0.03170564025640488, + 0.01269453763961792, + 0.02450958453118801, + 0.027898622676730156, + -0.04987247288227081, + 0.04154077172279358, + 0.004989826586097479, + 0.05342442914843559, + 0.07077434659004211, + 0.029061879962682724, + 0.008336978033185005, + 0.03075072541832924, + -0.043387334793806076, + -0.09138722717761993, + 0.005141383036971092, + 0.010789508931338787, + 0.017937371507287025, + 0.030780762434005737, + 0.024082280695438385, + -0.025861745700240135, + 0.11531367152929306, + 0.02285810559988022, + -0.012274956330657005, + 0.0018036316614598036, + -0.07109217345714569, + 0.07755395770072937, + 0.09363259375095367, + 0.0005820145597681403, + 0.06153271347284317, + -0.04272299259901047, + 0.048228733241558075, + 0.052560191601514816, + -0.09407263994216919, + -0.02396334707736969, + 0.015526879578828812, + 0.018149055540561676, + 0.04114966094493866, + 0.11613212525844574, + 0.004743978381156921, + 0.04427904635667801, + 0.09413877129554749, + -0.08159561455249786, + -0.012154145166277885, + 0.025887874886393547, + 0.020455336198210716, + -0.03368502855300903, + 0.02239091321825981, + 0.039456807076931, + -0.00019180650997441262, + -0.01304236613214016, + 0.048595916479825974, + -0.0005361376097425818, + 0.013854669407010078, + -0.03764548897743225, + 0.008796806447207928, + 0.03606352210044861, + -0.029762111604213715, + -0.030115853995084763, + 0.06373052299022675, + 0.06733863055706024, + 0.011902834288775921, + 0.03505462035536766, + -0.06342729926109314, + -0.0978875458240509, + -0.0015799155225977302, + -0.007915060967206955, + 0.05789420008659363, + -0.012920069508254528, + -0.024410098791122437, + -0.06025725603103638, + -0.017454717308282852, + 0.028336133807897568, + -0.0020864568650722504, + 0.04961779713630676, + 0.03826633095741272, + -0.0179322250187397, + 0.05169997736811638, + 0.013553905300796032, + 0.0027613863348960876, + -0.041492484509944916, + -0.04961634799838066, + 0.0030799596570432186, + 0.037748388946056366, + -0.05053270608186722, + -0.0476413369178772, + -0.007074679713696241, + -0.01024414412677288, + -0.024845262989401817, + 0.01547197438776493, + 0.040204353630542755, + -0.010804510675370693, + -0.004049159586429596, + -0.08144941926002502, + 0.027288060635328293, + -0.0710800439119339, + -0.06883895397186279, + 0.05499356985092163, + 0.01186924334615469, + -0.004030154552310705, + 0.08174224197864532, + 0.023305434733629227, + 0.031559329479932785, + -0.047674696892499924, + -0.06275229901075363, + -0.01827729120850563, + 0.056984275579452515, + 0.034231606870889664, + -0.0018060453003272414, + 0.04879539832472801, + 0.026821276172995567, + -0.027623958885669708, + 0.07013483345508575, + 0.03366212174296379, + 0.06304562091827393, + -0.0448773130774498, + -0.00812606792896986, + -0.01052139699459076, + 0.08368801325559616, + 0.050083886831998825, + -0.04954775422811508, + -0.06648942083120346, + -0.018721820786595345, + -0.04476935788989067, + 0.03467569500207901, + 0.0025751139037311077, + -0.0037698138039559126, + 0.041302941739559174, + -0.014410212635993958, + -0.08020330965518951, + -0.06206473708152771, + 0.030090447515249252, + -0.03456461429595947, + -0.005840213503688574, + -0.058361537754535675, + 0.03530937433242798, + 0.09414809942245483, + -0.006623054854571819, + -0.003878684714436531, + -0.012763336300849915, + 0.0006068050861358643, + -0.03687785193324089, + -0.03678639605641365, + 0.01219350378960371, + 0.0361783504486084, + -0.07579641044139862, + -0.006687878631055355, + -0.06306930631399155, + 0.03952993080019951, + 0.0004062677617184818, + 0.09683389961719513, + 0.03247857838869095, + -0.020130399614572525, + -0.05690188705921173, + 0.031087344512343407, + -0.019660916179418564, + 0.05484982952475548, + 0.025913558900356293, + 0.01733427867293358, + 0.05963724106550217, + -0.05483750253915787, + 0.07693038135766983, + 0.038009028881788254, + -0.05759081989526749, + -0.0389627069234848, + -0.007351682987064123, + -0.030361158773303032, + -0.0009335912764072418, + -0.01841195672750473, + -0.05207183212041855, + 0.008091631345450878, + 0.020619958639144897, + 0.013020697981119156, + 0.04077501595020294, + 0.08046837151050568, + 0.038598451763391495, + -0.08290281891822815 + ] + }, + "p244_003.wav": { + "name": "p244", + "embedding": [ + 0.0295333843678236, + 0.06818605959415436, + -0.00016502142534591258, + 0.022960500791668892, + -0.04116135463118553, + 0.0252471175044775, + -0.13690705597400665, + 0.11414899677038193, + -0.0020723938941955566, + 0.11166918277740479, + -0.08013176918029785, + 0.09192591160535812, + -0.04262375459074974, + -0.16115251183509827, + -0.014802008867263794, + 0.043254509568214417, + -0.030447257682681084, + -0.053501784801483154, + -0.015254824422299862, + -0.009343627840280533, + 0.039815712720155716, + 0.035177480429410934, + 0.018444228917360306, + 0.016101902350783348, + 0.003158713225275278, + 0.054110314697027206, + -0.009109004400670528, + 0.02530478872358799, + 0.013888445682823658, + -0.008295020088553429, + 0.013123651035130024, + 0.06857029348611832, + -0.032917413860559464, + 0.032608598470687866, + 0.040043581277132034, + 0.017812302336096764, + -0.017666494473814964, + -0.039362866431474686, + -0.0261479951441288, + -0.0014135331148281693, + -0.0679730772972107, + 0.06807398051023483, + 0.0324995182454586, + -0.017256667837500572, + 0.043432679027318954, + 0.02631065621972084, + -0.02101738750934601, + -0.03066873922944069, + -0.1055397316813469, + 0.13855354487895966, + 0.05508971959352493, + 0.013379818759858608, + -0.06369727104902267, + -0.04134828597307205, + 0.08572905510663986, + -0.022043539211153984, + -0.09691758453845978, + -0.05206381157040596, + 0.08876153081655502, + 0.11121437698602676, + -0.030014842748641968, + -0.04228461906313896, + 0.011554970405995846, + 0.09005703777074814, + 0.052858322858810425, + 0.06045984849333763, + 0.07781072705984116, + 0.10947312414646149, + -0.026679182425141335, + -0.015123778954148293, + 0.06666175276041031, + 0.056673258543014526, + 0.04848107323050499, + -0.0026129595935344696, + 0.0132496552541852, + 0.011503173038363457, + -0.01166569348424673, + 0.016191817820072174, + -0.018551545217633247, + -0.0036922504659742117, + -0.021846560761332512, + -0.012725886888802052, + -0.004193407483398914, + 0.022679870948195457, + -0.014913520775735378, + 0.03395794704556465, + 0.04889579117298126, + -0.00021272581943776459, + 0.0750490352511406, + 0.0378580205142498, + -0.003489042865112424, + 0.05743644759058952, + -0.07021570205688477, + -0.05749934911727905, + -0.004176382906734943, + -0.011763731017708778, + 0.0321279875934124, + 0.066522978246212, + 0.031300242990255356, + 0.003982923924922943, + 0.10867124050855637, + 0.010436068288981915, + -0.015197833068668842, + 0.00872453860938549, + -0.11299969255924225, + 0.10792400687932968, + 0.05790141969919205, + -0.03113420307636261, + 0.013999111019074917, + -0.052892643958330154, + 0.046940870583057404, + 0.06055445224046707, + -0.08770355582237244, + -0.047328345477581024, + 0.0492437444627285, + 0.04116356000304222, + -0.010526577942073345, + 0.12705299258232117, + 0.007765599526464939, + 0.01837928220629692, + 0.12015612423419952, + -0.08633997291326523, + -0.05526984855532646, + -0.006431904621422291, + 0.028700610622763634, + -0.07456450164318085, + 0.049012281000614166, + 0.04659518599510193, + 0.0033286120742559433, + 0.015890272334218025, + 0.07810961455106735, + 0.0056940908543765545, + 0.011244875378906727, + -0.02638048306107521, + -0.026325030252337456, + 0.031601328402757645, + -0.024860238656401634, + -0.002651314018294215, + 0.05492263659834862, + 0.04224498197436333, + 0.05766316130757332, + 0.02264775149524212, + -0.0422237291932106, + -0.11385434865951538, + 0.016186775639653206, + 0.05067789554595947, + 0.06854478269815445, + -0.02093648724257946, + -0.033872880041599274, + -0.05047303065657616, + -0.04880719259381294, + 0.019625676795840263, + -0.010662071406841278, + 0.06729476153850555, + -0.0068361894227564335, + -0.010815287940204144, + 0.09018208831548691, + 0.011250493116676807, + -0.006714948918670416, + -0.05294112116098404, + -0.05251975730061531, + -0.018979543820023537, + 0.04257283732295036, + -0.10115806013345718, + -0.06125190481543541, + -0.023261789232492447, + 0.04930824041366577, + -0.0049368105828762054, + 0.029348323121666908, + 0.046581678092479706, + 0.017598140984773636, + 0.01052377000451088, + -0.05512464791536331, + 0.02366301603615284, + -0.08300351351499557, + -0.09226083755493164, + -0.0067525687627494335, + 0.008845457807183266, + 0.011241708882153034, + 0.06768151372671127, + -0.008157648146152496, + 0.04334553703665733, + -0.016736004501581192, + -0.08927588164806366, + -0.08907850831747055, + 0.058233629912137985, + 0.04732293635606766, + -0.016672369092702866, + 0.05053155496716499, + 0.04913689196109772, + -0.06880442053079605, + 0.03210317716002464, + 0.025231758132576942, + 0.11282401531934738, + -0.058189429342746735, + 0.035158172249794006, + -0.04620283097028732, + 0.07102667540311813, + 0.08196061849594116, + -0.0762406662106514, + -0.06024560332298279, + -0.03166374936699867, + -0.04267769679427147, + 0.0125054270029068, + -0.028068695217370987, + -0.006948710884898901, + 0.010740067809820175, + -0.017177550122141838, + -0.09047006070613861, + -0.08063143491744995, + 0.028889387845993042, + -0.050079572945833206, + 0.0014487378066405654, + -0.08759210258722305, + 0.03647930547595024, + 0.06456023454666138, + 0.028283119201660156, + -0.016644684597849846, + -0.007800982799381018, + 0.024897441267967224, + -0.03692768141627312, + -0.009652554988861084, + 0.054503507912158966, + 0.040738411247730255, + -0.0612194649875164, + -0.03147048503160477, + -0.07065439969301224, + 0.052066314965486526, + -0.03769790753722191, + 0.12280608713626862, + -0.0019774094689637423, + -0.04481757432222366, + -0.03552081808447838, + -0.010182089172303677, + -0.0035797045566141605, + 0.04381715878844261, + 0.019970109686255455, + 0.04968859627842903, + 0.03286181762814522, + -0.03224371001124382, + 0.11276187747716904, + 0.05984009429812431, + -0.024158863350749016, + -0.04718280956149101, + -0.03275075554847717, + -0.041144657880067825, + 0.0072350515983998775, + -0.007992195896804333, + -0.08522205799818039, + -0.0021310315933078527, + 0.012713230215013027, + -0.004684712737798691, + 0.04930267855525017, + 0.1318783164024353, + 0.06259594112634659, + -0.10558916628360748 + ] + }, + "p244_030.wav": { + "name": "p244", + "embedding": [ + 0.05470728129148483, + 0.07676955312490463, + -0.02762940526008606, + 0.05767924338579178, + -0.07619606703519821, + 0.04276008903980255, + -0.11171802133321762, + 0.13443566858768463, + 0.014216672629117966, + 0.12439748644828796, + -0.03545985370874405, + 0.1309659779071808, + -0.019644618034362793, + -0.1529431939125061, + 0.02912980690598488, + 0.05755430459976196, + -0.004274472594261169, + -0.02756984531879425, + -0.014871301129460335, + -0.025451336055994034, + 0.026815159246325493, + 0.05262542515993118, + 0.06884843111038208, + -0.025878513231873512, + 0.035344719886779785, + 0.08189433813095093, + -0.016676263883709908, + 0.03463464602828026, + -0.004183952230960131, + -0.1075097993016243, + -0.04870396852493286, + 0.06653337180614471, + -0.06726223230361938, + 0.01787535473704338, + 0.02079075574874878, + -0.031276315450668335, + -0.02352435514330864, + -0.05166897177696228, + -0.010286376811563969, + 0.0036683299113065004, + -0.03095962479710579, + 0.08559343218803406, + 0.019595187157392502, + -0.05610499531030655, + 0.02678229659795761, + -0.0016871335683390498, + -0.025511208921670914, + -0.019675660878419876, + -0.12104354798793793, + 0.15562313795089722, + 0.06929443776607513, + 0.0057962979190051556, + -0.07313663512468338, + -0.07135674357414246, + 0.06761529296636581, + -0.0007422398775815964, + -0.09742194414138794, + -0.03820406645536423, + 0.05416587367653847, + 0.11439339816570282, + -0.011249566450715065, + -0.03667866811156273, + 0.0433211624622345, + 0.09483082592487335, + 0.07048407196998596, + 0.06450808048248291, + 0.0841134786605835, + 0.11811643838882446, + -0.04232597351074219, + 0.021638095378875732, + 0.012464185245335102, + 0.09455686807632446, + 0.055138133466243744, + 0.03224926441907883, + 0.0006414596573449671, + -0.02130945771932602, + -0.015845898538827896, + -0.03467155247926712, + -0.01327726524323225, + -0.04097800701856613, + -0.0034745950251817703, + -0.010024461895227432, + 0.034938354045152664, + 0.02906501665711403, + -0.020026667043566704, + 0.05671773850917816, + 0.062143027782440186, + -0.0180739164352417, + 0.06378280371427536, + -0.008467407897114754, + -0.006435783114284277, + 0.06746965646743774, + -0.10297304391860962, + -0.05244568735361099, + 0.033282771706581116, + 0.014758987352252007, + 0.04851013422012329, + 0.0939134731888771, + 0.041356537491083145, + -0.022815290838479996, + 0.12511798739433289, + 0.04143769294023514, + -0.012946373783051968, + 0.0026330742985010147, + -0.052655741572380066, + 0.1248498409986496, + 0.09045326709747314, + -0.017180759459733963, + 0.07442940771579742, + -0.06850285083055496, + 0.07324356585741043, + 0.037742242217063904, + -0.12452586740255356, + -0.0637553334236145, + -0.013753941282629967, + -0.006501892115920782, + -0.01811373233795166, + 0.12327870726585388, + 0.018540682271122932, + 0.07552286982536316, + 0.11820340901613235, + -0.12442626059055328, + -0.05893946439027786, + -0.0007568219443783164, + 0.05576680600643158, + -0.09783821552991867, + 0.06099921464920044, + 0.06353416293859482, + -0.03922055661678314, + 0.03726281598210335, + 0.054679617285728455, + -0.010034135542809963, + 0.03613394498825073, + 0.03675030171871185, + -0.06013532727956772, + -0.01117075514048338, + -0.03954803943634033, + -0.005952105857431889, + 0.048808448016643524, + 0.009786593727767467, + 0.06733052432537079, + -0.043168265372514725, + -0.01037953794002533, + -0.13466255366802216, + 0.029157396405935287, + 0.034274522215127945, + 0.05720892176032066, + -0.029842007905244827, + -0.04731646180152893, + -0.02947131358087063, + -0.07857740670442581, + 0.026416301727294922, + -0.0038499748334288597, + 0.03999471664428711, + -0.03648192808032036, + 0.017898237332701683, + 0.08382024616003036, + 0.06179053336381912, + -0.014123756438493729, + -0.05873624235391617, + -0.06598500907421112, + 0.00648857094347477, + 0.050255510956048965, + -0.08953459560871124, + -0.07552239298820496, + -0.0285145565867424, + 0.02494506537914276, + -0.04001874476671219, + 0.07711224257946014, + 0.06339746713638306, + 0.03856305405497551, + 0.002129770815372467, + -0.03816752880811691, + -0.011841261759400368, + -0.05057452619075775, + -0.08925756067037582, + -0.005924629513174295, + -0.0015792513731867075, + -0.041762690991163254, + 0.08837725222110748, + 0.04063595086336136, + 0.08196276426315308, + -0.047005802392959595, + -0.010510338470339775, + -0.09416946768760681, + 0.025445953011512756, + 0.014178285375237465, + -0.01749601773917675, + 0.04425964504480362, + 0.059983398765325546, + -0.05745777487754822, + 0.04824567586183548, + 0.053836409002542496, + 0.07614849507808685, + -0.037899937480688095, + 0.017541049048304558, + -0.07810387760400772, + 0.0930262953042984, + 0.13822007179260254, + -0.06520669907331467, + -0.07337333261966705, + -0.0694187581539154, + -0.10342937707901001, + 0.041308846324682236, + -0.03650330752134323, + -0.013999367132782936, + 0.03666064143180847, + 0.002039629267528653, + -0.10853581130504608, + -0.1032566949725151, + 0.08476080000400543, + -0.04359114170074463, + 0.0030293113086372614, + -0.09174497425556183, + 0.044643521308898926, + 0.07275035977363586, + 0.057189296931028366, + -0.026364460587501526, + -0.01764502376317978, + 0.06311649084091187, + -0.008676948957145214, + 0.04276953265070915, + 0.10869312286376953, + 0.06944498419761658, + -0.09542709589004517, + -0.018323691561818123, + -0.05242624878883362, + 0.01803870126605034, + -0.037017881870269775, + 0.14510849118232727, + 0.029216380789875984, + -0.04170714318752289, + -0.07686308026313782, + 0.06558069586753845, + -0.017520304769277573, + 0.048418521881103516, + 0.01869634911417961, + 0.03934627026319504, + 0.05995792895555496, + -0.08986963331699371, + 0.1134452149271965, + 0.04789048433303833, + -0.0365600511431694, + -0.06660213321447372, + -0.05832260102033615, + -0.04478484392166138, + 0.05500505492091179, + 0.004616708494722843, + -0.0925792008638382, + -0.021152371540665627, + 0.024854060262441635, + 0.016134504228830338, + 0.04518268257379532, + 0.15707702934741974, + 0.05744396150112152, + -0.1055162101984024 + ] + }, + "p244_249.wav": { + "name": "p244", + "embedding": [ + 0.012935522012412548, + 0.09927419573068619, + -0.024993648752570152, + 0.04509132355451584, + -0.05368250608444214, + 0.060529448091983795, + -0.0839657261967659, + 0.10867979377508163, + -0.07567229121923447, + 0.10712631046772003, + -0.13276126980781555, + 0.07911356538534164, + -0.09166958183050156, + -0.14737306535243988, + -0.0715826228260994, + 0.04715517535805702, + -0.017219772562384605, + -0.04937504976987839, + 0.006780656054615974, + -0.010438249446451664, + 0.04826318472623825, + 0.03554379194974899, + 8.224325574701652e-05, + 0.06011860817670822, + 0.01483230385929346, + 0.05356563627719879, + -0.0007025262457318604, + 0.06787404417991638, + 0.038646623492240906, + 0.02557419240474701, + -0.019631613045930862, + 0.13727380335330963, + -0.05240580067038536, + -0.015167741104960442, + 0.021254021674394608, + 0.037348441779613495, + 0.0300596933811903, + -0.04376578703522682, + -0.007100844290107489, + -0.015584741719067097, + -0.10023512691259384, + 0.05997200310230255, + 0.009028336964547634, + 0.010574288666248322, + 0.031171562150120735, + -0.006243289913982153, + -0.02563583105802536, + -0.02633700706064701, + -0.12020395696163177, + 0.1268252730369568, + 0.06137459725141525, + 0.01221002172678709, + -0.09540942311286926, + -0.0676732212305069, + 0.12198535352945328, + -0.01483103260397911, + -0.08746879547834396, + -0.0397750660777092, + 0.07313300669193268, + 0.1875762939453125, + -0.013813882134854794, + -0.02578629180788994, + 0.019833292812108994, + 0.08182096481323242, + 0.07705184072256088, + 0.07122629880905151, + 0.07838647812604904, + 0.08692800253629684, + 0.016382649540901184, + -0.019005723297595978, + 0.08939873427152634, + 0.04651903733611107, + 0.023835137486457825, + -0.0531136579811573, + -0.0037986375391483307, + 0.03557954728603363, + -0.02296283096075058, + 0.06596098095178604, + -0.017140677198767662, + -0.007329446263611317, + -0.028013966977596283, + 0.01259949803352356, + -0.04364576190710068, + -0.004426313564181328, + -0.03909788280725479, + 0.06070079654455185, + 0.007922438904643059, + -0.008891773410141468, + 0.1033315435051918, + 0.038845568895339966, + -0.0515342652797699, + 0.05017722025513649, + -0.07063961029052734, + -0.04186994954943657, + -0.02348773553967476, + -0.0009436081745661795, + -0.0025916362646967173, + 0.10672426223754883, + 0.02616169862449169, + -0.018439998850226402, + 0.12969665229320526, + 0.02538936398923397, + 0.04393988475203514, + 0.03814641758799553, + -0.12770715355873108, + 0.10855274647474289, + 0.07451435923576355, + -0.036402951925992966, + 0.027284573763608932, + 0.03557748347520828, + 0.04942774400115013, + 0.06636208295822144, + -0.11313772201538086, + -0.05737714469432831, + 0.04062531888484955, + 0.04659825935959816, + 0.006506338715553284, + 0.07647179812192917, + -0.039271123707294464, + -0.009470909833908081, + 0.10287342965602875, + -0.055081818252801895, + -0.06007155403494835, + -0.03266264498233795, + 0.04245371371507645, + -0.04170932248234749, + 0.03218434005975723, + 0.0382448248565197, + 0.039504993706941605, + -0.012289178557693958, + 0.06953231245279312, + -0.007693782448768616, + -0.013923222199082375, + 0.03387003764510155, + -0.05377437174320221, + 0.05353546142578125, + -0.04104000702500343, + -0.03804019093513489, + 0.09091018885374069, + 0.05472839996218681, + 0.0798858106136322, + 0.02622653730213642, + -0.0010170680470764637, + -0.08546695113182068, + -0.006697039119899273, + 0.0795888602733612, + 0.062414806336164474, + -0.01590139977633953, + -0.028021443635225296, + -0.10086825489997864, + -0.052615344524383545, + 0.03260738402605057, + 0.03941960260272026, + 0.11866677552461624, + -0.018320243805646896, + 0.0005236418801359832, + 0.10138029605150223, + -0.006560175679624081, + -0.01788152940571308, + -0.05558563396334648, + -0.01329271961003542, + -0.021850038319826126, + 0.05118302255868912, + -0.04921804368495941, + -0.10621524602174759, + 0.011298242025077343, + 0.0506180115044117, + -0.0025212641339749098, + 0.052181415259838104, + 0.055101606994867325, + -0.007459715474396944, + 0.009913264773786068, + -0.09084285795688629, + 0.06088470295071602, + -0.09334676712751389, + -0.037019032984972, + -0.022635476663708687, + -0.018536237999796867, + 0.003790324553847313, + 0.07412982732057571, + 0.03162064775824547, + 0.01260063610970974, + 0.0646538957953453, + -0.15381334722042084, + -0.07888547331094742, + 0.07864928990602493, + 0.09040091186761856, + 0.011129902675747871, + 0.08324947953224182, + 0.08978580683469772, + -0.061792463064193726, + 0.06304390728473663, + 0.07358133047819138, + 0.10434794425964355, + -0.05192577838897705, + -0.0018468810012564063, + -0.02810545451939106, + 0.017826221883296967, + 0.03070542775094509, + -0.12759071588516235, + -0.08754231780767441, + -0.0346057154238224, + -0.04267074540257454, + 0.06150691956281662, + 0.001976055558770895, + 0.04200102016329765, + 0.019065219908952713, + -0.05994474142789841, + -0.10044196248054504, + -0.08682776242494583, + 0.07510696351528168, + -0.0410810261964798, + -0.047067947685718536, + -0.07730194181203842, + -0.002518618246540427, + 0.06757852435112, + 0.014476128853857517, + 0.000981855089776218, + 0.0257673729211092, + 0.020144488662481308, + -0.06789638847112656, + -0.0522676557302475, + 0.07216951996088028, + -0.021084681153297424, + -0.08619770407676697, + 0.01282979641109705, + -0.08609282225370407, + 0.13633054494857788, + -0.04155348241329193, + 0.14530400931835175, + -0.03721082583069801, + -0.05338159203529358, + -0.08183901011943817, + 0.039759375154972076, + -0.027577422559261322, + 0.05348000302910805, + 0.04731455445289612, + 0.05943932384252548, + -0.0067628007382154465, + -0.01098265964537859, + 0.13872428238391876, + 0.04102689027786255, + -0.07474246621131897, + -0.0558406226336956, + -0.03822559118270874, + -0.055315352976322174, + -0.015425224788486958, + 0.02848370373249054, + -0.06721736490726471, + 0.014461886137723923, + -0.009060640819370747, + -0.041844263672828674, + 0.06357363611459732, + 0.11187741905450821, + 0.09933291375637054, + -0.10855313390493393 + ] + }, + "p244_325.wav": { + "name": "p244", + "embedding": [ + 0.04966717213392258, + 0.08694766461849213, + -0.012625151313841343, + -0.00333605008199811, + -0.054571639746427536, + 0.06827566027641296, + -0.13681650161743164, + 0.14079231023788452, + -0.05652210861444473, + 0.1499648094177246, + -0.07269900292158127, + 0.12226858735084534, + -0.02143661491572857, + -0.18968161940574646, + -0.01778835989534855, + 0.04816300421953201, + -0.04101085662841797, + -0.02439987286925316, + -0.04568105936050415, + -0.0217617005109787, + 0.04689629375934601, + 0.02851555496454239, + 0.006267506163567305, + -0.01548614539206028, + 0.020500976592302322, + 0.06706105172634125, + -0.0013503337977454066, + 0.03221709281206131, + -0.0010236594825983047, + -0.05861405283212662, + -0.0418982207775116, + 0.1028124988079071, + -0.05563540756702423, + 0.017795199528336525, + 0.06905356049537659, + -0.012193439528346062, + -0.010338643565773964, + -0.06881534308195114, + -0.026384342461824417, + 0.0025092957075685263, + -0.04409679025411606, + 0.06917420029640198, + 0.027254996821284294, + -0.004066402558237314, + 0.034804701805114746, + 0.040940672159194946, + -0.0013422956690192223, + -0.05357092618942261, + -0.08283291012048721, + 0.15489768981933594, + 0.06422407925128937, + -0.007211022544652224, + -0.062371835112571716, + -0.07197795063257217, + 0.10829363018274307, + -0.01292574591934681, + -0.12013749778270721, + -0.03944230079650879, + 0.08368775993585587, + 0.14994242787361145, + -0.04818883538246155, + -0.0466359406709671, + 0.02133755013346672, + 0.10212883353233337, + 0.036463163793087006, + 0.10289247334003448, + 0.08162319660186768, + 0.10675529390573502, + -0.010096531361341476, + 0.022563256323337555, + 0.05517695099115372, + 0.07468937337398529, + 0.07003836333751678, + -0.02187785878777504, + 0.04528842866420746, + 0.010652739554643631, + -0.024704448878765106, + 0.006845420226454735, + -0.039860405027866364, + -0.010626170784235, + -0.007208168040961027, + 0.013719648122787476, + 0.02561389096081257, + 0.01668722555041313, + -0.01544229220598936, + 0.056099895387887955, + 0.039016760885715485, + -0.0065971361473202705, + 0.06699902564287186, + 0.028059016913175583, + 0.01333620399236679, + 0.07469695806503296, + -0.10454930365085602, + -0.0935489684343338, + 0.04098852723836899, + -0.0011533864308148623, + 0.007668512407690287, + 0.0752333253622055, + 0.04500114172697067, + -0.017139587551355362, + 0.11948438733816147, + 0.04693763330578804, + -0.003338349750265479, + 0.03240814805030823, + -0.10219991207122803, + 0.12679052352905273, + 0.08641367405653, + -0.04284123331308365, + 0.035013142973184586, + -0.07300899922847748, + 0.09186586737632751, + 0.06711637228727341, + -0.1508287787437439, + -0.08321239799261093, + 0.03424824774265289, + 0.004776747431606054, + -0.02780088223516941, + 0.13528096675872803, + -0.026613906025886536, + 0.02791471593081951, + 0.11105003952980042, + -0.09543438255786896, + -0.0535685233771801, + -0.013050749897956848, + 0.037612125277519226, + -0.08245661854743958, + 0.060058485716581345, + 0.03796648234128952, + -0.002163125667721033, + 0.02153128571808338, + 0.09307429939508438, + -0.01862884685397148, + -0.004344776272773743, + 0.0032302397303283215, + -0.03349637985229492, + 0.016122985631227493, + -0.031178709119558334, + -0.0061846645548939705, + 0.029227789491415024, + 0.04861590266227722, + 0.04031187295913696, + -0.003569886088371277, + -0.03822077065706253, + -0.11567361652851105, + 0.018854305148124695, + 0.03079787641763687, + 0.0776229053735733, + -0.010300492867827415, + -0.007661917246878147, + -0.0339072048664093, + -0.07512915134429932, + -0.0013691673520952463, + -0.016950692981481552, + 0.07187387347221375, + -0.008953878656029701, + 0.013965497724711895, + 0.10073987394571304, + 0.04174278676509857, + -0.0016268487088382244, + -0.06149154156446457, + -0.042421549558639526, + 0.012927472591400146, + 0.05488825589418411, + -0.08420486748218536, + -0.0717003345489502, + -0.012175071984529495, + 0.02066364511847496, + -0.019151728600263596, + 0.05008373409509659, + 0.04730449616909027, + 0.03039482608437538, + 0.03697170689702034, + -0.08086833357810974, + 0.017663858830928802, + -0.12649551033973694, + -0.07574167847633362, + -0.0068981279619038105, + -0.022750329226255417, + -0.011448211967945099, + 0.07025618851184845, + -0.0037273778580129147, + 0.038678668439388275, + -0.03346174955368042, + -0.07171659171581268, + -0.08048898726701736, + 0.06606294959783554, + 0.07402089238166809, + -0.010351193137466908, + 0.03651900961995125, + 0.05470327287912369, + -0.025639459490776062, + 0.03978167474269867, + 0.06857487559318542, + 0.12023566663265228, + -0.017861492931842804, + 0.03880258649587631, + -0.06221162527799606, + 0.10736630856990814, + 0.07197622954845428, + -0.07603555917739868, + -0.08909307420253754, + -0.013390164822340012, + -0.06062651425600052, + 0.033977534621953964, + -0.020843125879764557, + -0.005121609196066856, + 0.014978908933699131, + 0.005755345802754164, + -0.0876794382929802, + -0.06285345554351807, + 0.07738222181797028, + -0.06504037976264954, + -0.01028781570494175, + -0.09509485960006714, + 0.057529449462890625, + 0.105836421251297, + 0.04114073887467384, + -0.03801435977220535, + -0.011728797107934952, + 0.056232597678899765, + -0.038454413414001465, + 0.011725552380084991, + 0.033920325338840485, + 0.038447387516498566, + -0.09217006713151932, + 0.003505860222503543, + -0.06905852258205414, + 0.04261811822652817, + -0.06036914885044098, + 0.14646580815315247, + -0.008204489946365356, + -0.056593842804431915, + -0.07322032749652863, + 0.03865882754325867, + -0.003404405666515231, + 0.03998562693595886, + 0.03483697026968002, + 0.07470151782035828, + 0.044311121106147766, + -0.0735577791929245, + 0.12321104109287262, + 0.028826171532273293, + -0.028087828308343887, + -0.05595666170120239, + -0.05587945878505707, + -0.03696545213460922, + 0.01333977933973074, + 0.0031317879911512136, + -0.09466608613729477, + -0.015701090916991234, + 0.02463914081454277, + -0.008789020590484142, + 0.05304677039384842, + 0.1365112066268921, + 0.06213065981864929, + -0.12903247773647308 + ] + }, + "p244_198.wav": { + "name": "p244", + "embedding": [ + 0.04573114216327667, + 0.08617543429136276, + -0.02858794294297695, + 0.045825034379959106, + -0.05586448311805725, + 0.015705913305282593, + -0.14525958895683289, + 0.14441385865211487, + -0.007577837444841862, + 0.12012898176908493, + -0.08360494673252106, + 0.10557852685451508, + -0.036870889365673065, + -0.17176644504070282, + -0.003762185573577881, + 0.06278923898935318, + -0.007680974900722504, + -0.053558558225631714, + -0.01869705133140087, + -0.01734916865825653, + 0.032301511615514755, + 0.03452988341450691, + 0.02038854919373989, + 0.014368487522006035, + 0.013691375963389874, + 0.06397934257984161, + -0.013846836984157562, + 0.029486337676644325, + -0.0007169125601649284, + 0.010544600896537304, + -0.010950813069939613, + 0.10610571503639221, + -0.05792625993490219, + -0.012156374752521515, + 0.03588303551077843, + -0.0003430732467677444, + -0.015359587967395782, + -0.055918894708156586, + -0.017944518476724625, + -0.02053442783653736, + -0.07188434898853302, + 0.06898166239261627, + 0.019391119480133057, + -0.020578131079673767, + 0.05303849279880524, + 0.025202907621860504, + -0.033700939267873764, + -0.030474219471216202, + -0.12311089038848877, + 0.13435962796211243, + 0.0680011734366417, + 0.02365124598145485, + -0.09387233853340149, + -0.04124774783849716, + 0.08823093771934509, + -0.010408556088805199, + -0.07647858560085297, + -0.05022794008255005, + 0.07796560227870941, + 0.1482400894165039, + -0.03063991665840149, + -0.038071926683187485, + 0.03562512621283531, + 0.11228753626346588, + 0.09648095071315765, + 0.06766235828399658, + 0.08470303565263748, + 0.12467707693576813, + -0.034814320504665375, + -0.005743354558944702, + 0.06785984337329865, + 0.059568386524915695, + 0.058094535022974014, + -0.02290506288409233, + 0.010997187346220016, + 0.0072613125666975975, + -0.011212692596018314, + -0.011183119378983974, + -0.027541745454072952, + -0.031197141855955124, + -0.013685786165297031, + 0.004870687611401081, + -0.004314986988902092, + 0.045276716351509094, + -0.03659700229763985, + 0.05031836777925491, + 0.09069882333278656, + -0.025898782536387444, + 0.08491881191730499, + 0.03384856879711151, + -0.007800151128321886, + 0.06583129614591599, + -0.11183460056781769, + -0.04853647202253342, + 0.03173079341650009, + -0.0050321235321462154, + 0.027479570358991623, + 0.08051649481058121, + 0.03731761872768402, + -0.014671975746750832, + 0.12701721489429474, + 0.028830107301473618, + -0.0015379930846393108, + 0.025718828663229942, + -0.08901875466108322, + 0.13019844889640808, + 0.07983462512493134, + -0.05251915752887726, + 0.030518166720867157, + -0.025044186040759087, + 0.023425936698913574, + 0.05075475573539734, + -0.10527608543634415, + -0.05957867577672005, + 0.03125949949026108, + 0.021248646080493927, + -0.028054513037204742, + 0.13006699085235596, + 0.010323820635676384, + 0.04855002462863922, + 0.11611439287662506, + -0.09012424200773239, + -0.07026010751724243, + -0.004726876504719257, + 0.04934266209602356, + -0.08412440121173859, + 0.06654663383960724, + 0.06829831004142761, + 0.008332595229148865, + 0.01660689152777195, + 0.07168363034725189, + 0.0018737774807959795, + 0.009136000648140907, + -0.0175600815564394, + -0.041738223284482956, + 0.0398765429854393, + -0.02146129682660103, + -0.02454327791929245, + 0.03338729590177536, + 0.019490718841552734, + 0.07131679356098175, + -0.0028607449494302273, + 0.006023178808391094, + -0.12588702142238617, + 0.018045753240585327, + 0.05641790106892586, + 0.08506707847118378, + -0.017318833619356155, + -0.02772548422217369, + -0.05546362325549126, + -0.05531419441103935, + 0.00559897581115365, + -0.0008896330837160349, + 0.06779243052005768, + -0.02197936549782753, + 0.00267136562615633, + 0.11170823127031326, + 0.017964042723178864, + 0.013985203579068184, + -0.0338824987411499, + -0.029022324830293655, + 0.0008136490359902382, + 0.05989436060190201, + -0.0837642103433609, + -0.08694818615913391, + -0.025673506781458855, + 0.05180685222148895, + -0.017752964049577713, + 0.06915580481290817, + 0.04728826880455017, + 0.0171771552413702, + -0.008071793243288994, + -0.07093185186386108, + 0.03269710764288902, + -0.07537884265184402, + -0.07543797045946121, + -0.011488859541714191, + -0.0065704891458153725, + -0.023778622969985008, + 0.06810300052165985, + 0.025751084089279175, + 0.057915762066841125, + -0.017445450648665428, + -0.08929392695426941, + -0.10142609477043152, + 0.048392679542303085, + 0.06272386014461517, + -0.03545256704092026, + 0.048410121351480484, + 0.06473474204540253, + -0.0548214390873909, + 0.027810579165816307, + 0.05268535763025284, + 0.10579436272382736, + -0.03883456066250801, + 0.011074000969529152, + -0.06225326657295227, + 0.06963302195072174, + 0.09237271547317505, + -0.09263814985752106, + -0.07666580379009247, + -0.03390684723854065, + -0.06416483223438263, + 0.022711586207151413, + -0.013901068828999996, + 0.025143830105662346, + 0.042900338768959045, + -0.02062884159386158, + -0.11979401111602783, + -0.09554505348205566, + 0.06356225907802582, + -0.07423657178878784, + -0.0008085041772574186, + -0.09670431911945343, + 0.035818152129650116, + 0.07554256170988083, + 0.02146162837743759, + -0.028629526495933533, + -0.03222452104091644, + 0.02494540624320507, + -0.021514831110835075, + 0.0033187177032232285, + 0.07233118265867233, + 0.046795666217803955, + -0.09871554374694824, + -0.017479687929153442, + -0.06945660710334778, + 0.07331635057926178, + -0.03326781094074249, + 0.1357022076845169, + 0.020543619990348816, + -0.03964664414525032, + -0.09272287040948868, + 0.02300575003027916, + 0.008829619735479355, + 0.06554687768220901, + 0.020907409489154816, + 0.05970393866300583, + 0.03596484288573265, + -0.057768143713474274, + 0.12148874998092651, + 0.05166614055633545, + -0.03916317597031593, + -0.07552072405815125, + -0.04630008339881897, + -0.056811995804309845, + 0.02795395627617836, + 0.014243417419493198, + -0.08052065968513489, + -0.012850725091993809, + 0.014679081737995148, + -0.013156717643141747, + 0.058125466108322144, + 0.13021086156368256, + 0.06566799432039261, + -0.11359727382659912 + ] + }, + "p244_159.wav": { + "name": "p244", + "embedding": [ + 0.058413147926330566, + 0.0851493775844574, + -0.01938800700008869, + 0.034967441111803055, + -0.06543193757534027, + 0.07954458892345428, + -0.1346077024936676, + 0.14574402570724487, + -0.058722496032714844, + 0.1336444765329361, + -0.0524507611989975, + 0.1330804079771042, + -0.017090793699026108, + -0.16936129331588745, + -0.04304691404104233, + 0.05415913462638855, + -0.04199191927909851, + -0.0380057618021965, + -0.05088915675878525, + -0.009263405576348305, + 0.04141171649098396, + 0.023143654689192772, + 0.037514809519052505, + 0.005587120074778795, + 0.019456548616290092, + 0.05461234226822853, + 0.001579886768013239, + 0.059790968894958496, + 0.028279192745685577, + -0.07147859036922455, + -0.023932291194796562, + 0.09955228120088577, + -0.04808495193719864, + 0.013571491464972496, + 0.042836204171180725, + -0.017299702391028404, + 0.0015348431188613176, + -0.06544842571020126, + -0.028561929240822792, + -0.005550609435886145, + -0.02939167059957981, + 0.07087188959121704, + 0.021183058619499207, + -0.012081865221261978, + 0.045907698571681976, + -0.004005631431937218, + -0.03639606386423111, + -0.04180077835917473, + -0.11158914864063263, + 0.14163821935653687, + 0.06460636854171753, + 0.01153847761452198, + -0.08199407160282135, + -0.07088756561279297, + 0.11114148050546646, + -0.028697293251752853, + -0.12238836288452148, + -0.043736644089221954, + 0.0589846596121788, + 0.18154636025428772, + -0.03646986186504364, + -0.028366971760988235, + 0.034096501767635345, + 0.11927962303161621, + 0.08460699766874313, + 0.08264227211475372, + 0.10199432820081711, + 0.104372039437294, + -0.009565104730427265, + 0.02626793645322323, + 0.04569845646619797, + 0.07976773381233215, + 0.049327000975608826, + 0.015197510831058025, + 0.03785546496510506, + -0.0021829847246408463, + 0.0028939866460859776, + -0.011847763322293758, + -0.02904510498046875, + -0.01801573485136032, + -0.013712520711123943, + 0.03416603431105614, + 0.016758522018790245, + 0.03353836387395859, + -0.039441246539354324, + 0.07412821054458618, + 0.014228343032300472, + -0.022725345566868782, + 0.052542611956596375, + 0.03700548782944679, + 0.01803748682141304, + 0.06138095632195473, + -0.0786462277173996, + -0.09951856732368469, + 0.02177383378148079, + 0.004044240340590477, + 0.0341787151992321, + 0.05324501544237137, + 0.0178073700517416, + -0.007979007437825203, + 0.11131744086742401, + 0.05885232985019684, + -0.014886860735714436, + 0.035755183547735214, + -0.08536800742149353, + 0.1259189397096634, + 0.07854315638542175, + -0.01486610621213913, + 0.05409734696149826, + -0.0419207364320755, + 0.06442134082317352, + 0.05710768699645996, + -0.12515130639076233, + -0.09122486412525177, + 0.026567600667476654, + 0.0212209802120924, + -0.01835457980632782, + 0.12408091127872467, + -0.003833891125395894, + 0.051880791783332825, + 0.09631906449794769, + -0.07687751203775406, + -0.04282434284687042, + -0.002761050360277295, + 0.05375911295413971, + -0.06647136807441711, + 0.058102138340473175, + 0.037846677005290985, + -0.0060182781890034676, + 0.003675130195915699, + 0.0896177589893341, + -0.011278442107141018, + 0.002197357127442956, + 0.03172638639807701, + -0.06291276216506958, + 0.025404684245586395, + -0.021125055849552155, + -0.010551205836236477, + 0.05474591255187988, + 0.04287055879831314, + 0.056560762226581573, + -0.01729593239724636, + -0.025317426770925522, + -0.1177828311920166, + 0.0031550980638712645, + 0.028308046981692314, + 0.08317138254642487, + -0.007012281566858292, + -0.017009031027555466, + -0.03824325650930405, + -0.049531158059835434, + 0.015359850600361824, + -0.008112877607345581, + 0.08716776967048645, + -0.01764707639813423, + 0.013395133428275585, + 0.08997654914855957, + 0.013790569268167019, + 0.013510936871170998, + -0.04022020846605301, + -0.016576815396547318, + 0.013002024032175541, + 0.06430725008249283, + -0.06638894975185394, + -0.06313949823379517, + 0.0073865256272256374, + 0.04728049784898758, + -0.025099273771047592, + 0.057141780853271484, + 0.05243726447224617, + 0.01260291412472725, + 0.03382009267807007, + -0.05118957534432411, + 0.019361114129424095, + -0.09620572626590729, + -0.06528978794813156, + 0.007228863891214132, + -0.018684368580579758, + -0.03585337847471237, + 0.06467610597610474, + 0.04336762800812721, + 0.06281490623950958, + -0.0077796257100999355, + -0.0794244110584259, + -0.09477965533733368, + 0.05507725477218628, + 0.055404528975486755, + 0.00026303762570023537, + 0.040793463587760925, + 0.05808216333389282, + -0.015401584096252918, + 0.06726420670747757, + 0.0677766501903534, + 0.08394092321395874, + -0.025968968868255615, + -0.004199789837002754, + -0.08528822660446167, + 0.07715778052806854, + 0.0974041074514389, + -0.09428833425045013, + -0.08270764350891113, + -0.019037652760744095, + -0.07656624913215637, + 0.03579473868012428, + -0.03251129388809204, + 0.009883809834718704, + 0.07214915007352829, + -0.01128344889730215, + -0.12907877564430237, + -0.09040738642215729, + 0.10556988418102264, + -0.09632175415754318, + 0.0028497972525656223, + -0.07180330157279968, + 0.03239740803837776, + 0.1037566214799881, + 0.015980158001184464, + -0.025148779153823853, + -0.019905555993318558, + 0.0505656898021698, + -0.04484933614730835, + 0.004202523268759251, + 0.052196599543094635, + 0.0269288569688797, + -0.10545407235622406, + 0.0031444099731743336, + -0.07538380473852158, + 0.027356499806046486, + -0.0340481661260128, + 0.15492624044418335, + 0.001511018956080079, + -0.042291343212127686, + -0.08816663175821304, + 0.044423576444387436, + -0.036082275211811066, + 0.0653405711054802, + 0.032282911241054535, + 0.08144906908273697, + 0.05112887918949127, + -0.07640519738197327, + 0.12074606120586395, + 0.05320623517036438, + -0.05867772549390793, + -0.0895145982503891, + -0.04446505755186081, + -0.04716450348496437, + 0.03641282767057419, + 0.007578905206173658, + -0.0761210173368454, + -0.023382557556033134, + 0.018243834376335144, + -0.01702934131026268, + 0.06948816776275635, + 0.12938576936721802, + 0.05923928692936897, + -0.10708929598331451 + ] + }, + "p244_320.wav": { + "name": "p244", + "embedding": [ + 0.025520801544189453, + 0.07877252995967865, + -0.003103757742792368, + 0.033836882561445236, + -0.08043865859508514, + 0.0457850843667984, + -0.11211296170949936, + 0.11164680123329163, + -0.027138078585267067, + 0.11066503077745438, + -0.09568971395492554, + 0.0965370386838913, + -0.016866173595190048, + -0.19909408688545227, + -0.017862588167190552, + 0.05212496221065521, + -0.049090828746557236, + -0.02265555039048195, + -0.02733519673347473, + -0.04589300975203514, + 0.04851827770471573, + 0.055428534746170044, + 0.050118379294872284, + 0.0025774845853447914, + 0.043658867478370667, + 0.05856213718652725, + 0.015148472040891647, + 0.0464465357363224, + 0.02517641894519329, + -0.043575722724199295, + -0.05331163853406906, + 0.1046111211180687, + -0.009041492827236652, + -0.012373365461826324, + 0.032275933772325516, + -0.019374284893274307, + 0.007885291241109371, + -0.06459587812423706, + -0.03704747557640076, + 0.033120665699243546, + -0.05432902276515961, + 0.07299421727657318, + 0.06089409440755844, + -0.016993261873722076, + 0.037817858159542084, + 0.009072830900549889, + -0.03586292266845703, + -0.055808745324611664, + -0.12454576790332794, + 0.1887241005897522, + 0.07881983369588852, + -0.012671553529798985, + -0.057992804795503616, + -0.06267143785953522, + 0.12205424904823303, + 0.012421952560544014, + -0.10446374118328094, + -0.016401691362261772, + 0.09666335582733154, + 0.15409152209758759, + -0.013929875567555428, + -0.01580873876810074, + 0.036068208515644073, + 0.12577728927135468, + -0.005117212422192097, + 0.09175033122301102, + 0.05273692309856415, + 0.08473008871078491, + -0.006884884089231491, + 0.04424678534269333, + 0.05382002890110016, + 0.07339969277381897, + -0.029947789385914803, + -0.03862817957997322, + -0.004522421862930059, + 0.0015955782728269696, + -0.05324070155620575, + 0.030611634254455566, + -0.009906492196023464, + 0.00014639180153608322, + -0.003053084947168827, + -0.008608316071331501, + 0.009825386106967926, + -0.04046602174639702, + -0.028976455330848694, + 0.05257901921868324, + -0.004623483866453171, + 0.031562693417072296, + 0.07770092785358429, + 0.004387503489851952, + -0.014716900885105133, + 0.04621315374970436, + -0.028419988229870796, + -0.10382391512393951, + 0.003904375247657299, + 0.022020693868398666, + 0.011379226110875607, + 0.09337257593870163, + 0.0345635712146759, + -0.04893741384148598, + 0.13333404064178467, + 0.054878875613212585, + -0.004535716027021408, + 0.03689620643854141, + -0.09091217815876007, + 0.09812438488006592, + 0.09628951549530029, + 0.002807183191180229, + 0.07539047300815582, + -0.042548783123493195, + 0.10629554837942123, + 0.05668673291802406, + -0.14158661663532257, + -0.04556601867079735, + 0.012369860894978046, + 0.02958417497575283, + -0.001235730480402708, + 0.10671583563089371, + -0.01761295460164547, + 0.008461223915219307, + 0.11134716868400574, + -0.09489066898822784, + -0.06414701044559479, + -0.034735988825559616, + 0.05360417813062668, + -0.06968238949775696, + 0.031240612268447876, + 0.06621511280536652, + -0.03984420374035835, + 0.01821187511086464, + 0.04201790690422058, + -0.031000137329101562, + 0.022071823477745056, + 0.03235841915011406, + -0.05499796196818352, + 0.03371907398104668, + -0.0667421743273735, + 0.011573335155844688, + 0.08141951262950897, + 0.051439594477415085, + 0.030979935079813004, + 0.015057777054607868, + -0.04582558944821358, + -0.09321261197328568, + 0.016480151563882828, + 0.017121383920311928, + 0.07412862777709961, + 0.0035083144903182983, + -0.025581354275345802, + -0.062389880418777466, + -0.0835554450750351, + 0.025608256459236145, + -0.004866618663072586, + 0.07624217122793198, + -0.02494824305176735, + 0.0010127227287739515, + 0.056198667734861374, + 0.04309277981519699, + -0.029178284108638763, + -0.06340880692005157, + -0.07106196880340576, + 0.01193341612815857, + 0.02568979375064373, + -0.07379039376974106, + -0.05820883810520172, + -0.008504355326294899, + 0.022267483174800873, + -0.041610024869441986, + -0.0005361400544643402, + 0.011520364321768284, + 0.023507241159677505, + 0.04325632005929947, + -0.08259670436382294, + 0.03512035310268402, + -0.09949750453233719, + -0.04365795850753784, + -0.007120637688785791, + 0.013626787811517715, + -0.027239196002483368, + 0.08776382356882095, + 0.005865401588380337, + 0.014887961558997631, + 0.006898198276758194, + -0.03954825550317764, + -0.03754882887005806, + 0.06032465398311615, + 0.06547810137271881, + 0.027362583205103874, + 0.0935697853565216, + 0.062348753213882446, + -0.05896969139575958, + 0.057689473032951355, + 0.040895912796258926, + 0.09860705584287643, + -0.006726451683789492, + 0.000279892235994339, + -0.04421014338731766, + 0.06964688003063202, + 0.05661206692457199, + -0.09451404958963394, + -0.0817442461848259, + -0.048741914331912994, + -0.06386011093854904, + 0.07009054720401764, + 0.0011014719493687153, + -0.022415097802877426, + -0.017177147790789604, + -0.007621739991009235, + -0.07507762312889099, + -0.05295128375291824, + 0.04943493753671646, + -0.025051366537809372, + -0.03307938948273659, + -0.07187759131193161, + 0.04678461700677872, + 0.12320798635482788, + 0.03921324387192726, + -0.009760253131389618, + -0.02440573461353779, + 0.04600626975297928, + -0.06350357830524445, + -0.00517002958804369, + 0.049542710185050964, + 0.015346411615610123, + -0.08599340915679932, + 0.01961633935570717, + -0.0815107598900795, + 0.07330404222011566, + -0.05598717927932739, + 0.1525687724351883, + 0.021213382482528687, + -0.04798867553472519, + -0.0737653523683548, + 0.0767839252948761, + -0.01707714982330799, + 0.029994748532772064, + 0.050640784204006195, + 0.012454717420041561, + 0.051881421357393265, + -0.07105045020580292, + 0.11011287569999695, + 0.006932501681149006, + -0.04478736221790314, + -0.04011773318052292, + -0.005451499484479427, + -0.023584691807627678, + 0.0030439498368650675, + 0.001462601125240326, + -0.07537886500358582, + -0.03603881224989891, + 0.026913758367300034, + -0.02891014888882637, + 0.07795421779155731, + 0.13605740666389465, + 0.07035727053880692, + -0.09568221122026443 + ] + }, + "p244_267.wav": { + "name": "p244", + "embedding": [ + 0.04089002311229706, + 0.08040937781333923, + 0.05000807344913483, + -0.0070318905636668205, + 0.008723873645067215, + 0.07464659214019775, + -0.11834269762039185, + 0.1018214225769043, + -0.04301316291093826, + 0.13808655738830566, + -0.10668472945690155, + 0.06459633260965347, + 0.013080033473670483, + -0.16938516497612, + -0.0646447241306305, + 0.017802206799387932, + -0.04766518250107765, + 0.039930008351802826, + -0.03393450751900673, + -0.010385828092694283, + 0.062403604388237, + 0.057696856558322906, + 0.04255995899438858, + -0.061506301164627075, + 0.04749395698308945, + 0.009770615957677364, + 0.03562210500240326, + 0.07580393552780151, + 0.050825536251068115, + -0.08106863498687744, + -0.0231953002512455, + 0.13198384642601013, + 0.0015208730474114418, + 0.030939212068915367, + 0.04094603657722473, + 0.00992706511169672, + 0.031001130118966103, + -0.04581299051642418, + -0.031974270939826965, + 0.045957040041685104, + -0.013186722993850708, + 0.057713862508535385, + 0.035606760531663895, + 0.01743660680949688, + 0.03220895677804947, + 0.03501259535551071, + -0.012407653033733368, + -0.06057533621788025, + -0.08138827979564667, + 0.17724911868572235, + 0.026143399998545647, + -0.0017656413838267326, + -0.07492661476135254, + -0.08444344252347946, + 0.10468797385692596, + -0.013748415745794773, + -0.09538333117961884, + 0.017244767397642136, + 0.09012005478143692, + 0.17713619768619537, + 0.003649749793112278, + -0.041360899806022644, + 0.03068859502673149, + 0.08699106425046921, + -0.037116240710020065, + 0.07794386893510818, + 0.07276590168476105, + 0.039734940975904465, + 0.06012583523988724, + 0.05856478214263916, + -0.012993717566132545, + 0.06079424172639847, + -0.022939421236515045, + -0.06243829429149628, + 0.004789378494024277, + 0.004343423526734114, + -0.06441061198711395, + 0.033424824476242065, + -0.015343820676207542, + 0.025518257170915604, + 0.01456561591476202, + -0.01243472658097744, + 0.016527898609638214, + -0.015675794333219528, + -0.05754144489765167, + 0.016180193051695824, + -0.06933006644248962, + 0.015319699421525002, + 0.07244564592838287, + 0.026999380439519882, + 0.03303860127925873, + 0.014041176997125149, + -0.011146186850965023, + -0.13782307505607605, + -0.01228814572095871, + 0.022822659462690353, + -0.033740848302841187, + 0.04843050241470337, + 0.04773620888590813, + -0.06402254104614258, + 0.10926861315965652, + 0.019560925662517548, + -0.011908043175935745, + 0.02584703266620636, + -0.11332231760025024, + 0.04632158577442169, + 0.09927937388420105, + 0.028471410274505615, + 0.0660373866558075, + -0.0635748878121376, + 0.08980832993984222, + 0.06897356361150742, + -0.156078040599823, + -0.06994686275720596, + 0.034303344786167145, + 0.013385571539402008, + 0.055527638643980026, + 0.07519859075546265, + -0.009599572978913784, + -0.03178717568516731, + 0.05675498768687248, + -0.08693210780620575, + -0.04817034676671028, + -0.041984155774116516, + 0.05391543358564377, + -0.04625561088323593, + 0.03939437121152878, + 0.01379892136901617, + -0.032152507454156876, + -0.03476390242576599, + 0.037203822284936905, + -0.024082684889435768, + 0.04144737496972084, + -0.02462238073348999, + -0.027651842683553696, + 0.033668678253889084, + -0.08139661699533463, + 0.03142492100596428, + 0.035938624292612076, + 0.07558830082416534, + 0.031962353736162186, + 0.038796812295913696, + -0.10666034370660782, + -0.060587868094444275, + -0.031992703676223755, + 0.025321437045931816, + 0.02320745959877968, + -0.010833362117409706, + -0.02502829022705555, + -0.07051452994346619, + -0.05833090469241142, + 0.058272723108530045, + -0.02111818641424179, + 0.09312470257282257, + 0.041767701506614685, + -0.004681993275880814, + 0.09134726226329803, + -0.029596125707030296, + -0.023587215691804886, + -0.05084984377026558, + -0.027825910598039627, + 0.012946934439241886, + -0.01631007343530655, + -0.05537319555878639, + -0.02790706604719162, + 0.022779371589422226, + -0.025850091129541397, + -0.023266222327947617, + -0.021136850118637085, + 0.007566055282950401, + 0.020570658147335052, + 0.06101328134536743, + -0.08109825104475021, + -0.01259965542703867, + -0.12628933787345886, + -0.03314174339175224, + 0.006773616187274456, + -0.006627519614994526, + -0.019430387765169144, + 0.10877761989831924, + 0.014117586426436901, + -0.027515683323144913, + 0.005301102064549923, + -0.06428813934326172, + -0.026269692927598953, + 0.06154746562242508, + 0.07906775176525116, + 0.03647599369287491, + 0.04911907762289047, + 0.03478210046887398, + -0.018287887796759605, + 0.09326697885990143, + 0.07508493959903717, + 0.06459780037403107, + 0.026122933253645897, + -0.003883889876306057, + -0.04503998905420303, + 0.09965449571609497, + 0.035454824566841125, + -0.047789111733436584, + -0.11980824172496796, + -0.020889632403850555, + -0.09032846987247467, + 0.06199394911527634, + 0.010868974961340427, + -0.002025547670200467, + -0.019454307854175568, + -0.013309402391314507, + -0.08036572486162186, + -0.028606118634343147, + 0.047644853591918945, + -0.03588501363992691, + -0.0644679144024849, + -0.033684246242046356, + 0.05091279372572899, + 0.08927328884601593, + 0.034298285841941833, + 0.019498834386467934, + -0.016765590757131577, + 0.03656992316246033, + -0.12758934497833252, + -0.06662915647029877, + -0.011847520247101784, + -0.04146898165345192, + -0.05854378640651703, + 0.05294590815901756, + -0.06130136176943779, + 0.06894461810588837, + -0.0754314661026001, + 0.11578963696956635, + -0.004171848297119141, + -0.09924408793449402, + -0.05959136411547661, + 0.053625643253326416, + -0.04109543561935425, + 0.0036542071029543877, + 0.06296193599700928, + 0.013312599621713161, + 0.0511101633310318, + -0.0864224061369896, + 0.0662599727511406, + -0.0013344483450055122, + -0.0021012951619923115, + -0.06593005359172821, + -0.05514055863022804, + -0.00924589578062296, + -0.013202570378780365, + -0.024397898465394974, + -0.04346625134348869, + 0.0026541510596871376, + 0.01563926972448826, + -0.013218116015195847, + 0.04669560492038727, + 0.09310673177242279, + 0.007529200986027718, + -0.12247913330793381 + ] + }, + "p244_211.wav": { + "name": "p244", + "embedding": [ + 0.05561555176973343, + 0.07476101815700531, + -0.052211008965969086, + 0.026955675333738327, + -0.05322640389204025, + 0.03661806508898735, + -0.1373979151248932, + 0.1361597180366516, + -0.012683428823947906, + 0.1356649398803711, + -0.0324353352189064, + 0.12370516359806061, + 0.006509109400212765, + -0.17643816769123077, + -0.013529859483242035, + 0.03817180171608925, + -0.05228463560342789, + -0.037346456199884415, + -0.06533680856227875, + -0.03281663358211517, + 0.04387222230434418, + 0.050544463098049164, + 0.012072822079062462, + -0.04519437626004219, + 0.029870914295315742, + 0.06636123359203339, + -0.0035710344091057777, + 0.022054746747016907, + 0.005078745074570179, + -0.07734794914722443, + -0.031176943331956863, + 0.08020225167274475, + -0.06060321256518364, + 0.0051995860412716866, + 0.03883940726518631, + -0.036200523376464844, + -0.008651331067085266, + -0.05984622240066528, + -0.03858014941215515, + 0.036591291427612305, + -0.04583512246608734, + 0.08515188097953796, + 0.034839026629924774, + -0.01952531933784485, + 0.048758406192064285, + 0.017685972154140472, + -0.009091068059206009, + -0.053028590977191925, + -0.08681647479534149, + 0.18202757835388184, + 0.07922704517841339, + -0.0011413302272558212, + -0.07443785667419434, + -0.04456184059381485, + 0.08431188017129898, + -0.010584240779280663, + -0.11034146696329117, + -0.04460762068629265, + 0.0503133088350296, + 0.13076087832450867, + -0.036837439984083176, + -0.03333016484975815, + 0.04087750241160393, + 0.11446449160575867, + 0.08727821707725525, + 0.05246981978416443, + 0.09329789131879807, + 0.12436968088150024, + -0.015837140381336212, + 0.03008127771317959, + 0.057855479419231415, + 0.08494603633880615, + 0.06157143414020538, + -0.008879698812961578, + 0.04087744653224945, + -0.010015686973929405, + -0.009288820438086987, + -0.06433969736099243, + -0.02304484322667122, + -0.005173154175281525, + 0.02611020766198635, + 0.021895278245210648, + 0.027947112917900085, + 0.06532160937786102, + -0.03830118477344513, + 0.04961472749710083, + 0.06292508542537689, + -0.048523757606744766, + 0.046999916434288025, + 0.033453889191150665, + 0.026609007269144058, + 0.05786164849996567, + -0.11185987293720245, + -0.09477086365222931, + 0.04972974210977554, + 0.00779179111123085, + 0.01772131398320198, + 0.05159105360507965, + 0.05798032879829407, + -0.01643475331366062, + 0.12167476117610931, + 0.038890138268470764, + -0.034270405769348145, + 0.012571039609611034, + -0.08048106729984283, + 0.1291421353816986, + 0.0926733911037445, + -0.03286352753639221, + 0.043652333319187164, + -0.061568863689899445, + 0.07348719239234924, + 0.02780885249376297, + -0.13319814205169678, + -0.0759279727935791, + 0.04850144684314728, + -0.012471156194806099, + -0.01813753880560398, + 0.13866285979747772, + 0.009152228012681007, + 0.06203901022672653, + 0.10936550796031952, + -0.08230889588594437, + -0.04436946660280228, + -0.027178756892681122, + 0.06267385929822922, + -0.10013187676668167, + 0.06900951266288757, + 0.05117321386933327, + -0.01755327172577381, + 0.02061193250119686, + 0.0841592475771904, + -0.005175595637410879, + 0.0025618202053010464, + -0.02132461965084076, + -0.006105925887823105, + 0.040046803653240204, + -0.005014043301343918, + -0.014901263639330864, + 0.02035597339272499, + 0.017970576882362366, + 0.055543072521686554, + -0.028462860733270645, + -0.026065878570079803, + -0.119926318526268, + 0.03612257540225983, + 0.0034357786644250154, + 0.07882676273584366, + -0.023357613012194633, + 0.0021365750581026077, + -0.0362718403339386, + -0.07706248760223389, + -0.0027817520312964916, + -0.019782818853855133, + 0.060455694794654846, + -0.008558814413845539, + -0.004156298004090786, + 0.12639448046684265, + 0.02850279211997986, + 0.02800658345222473, + -0.0064366040751338005, + -0.017596498131752014, + 0.017183849588036537, + 0.05843152850866318, + -0.08233487606048584, + -0.07428313791751862, + -0.02307450771331787, + -0.0003148764371871948, + -0.00482788123190403, + 0.055707767605781555, + 0.033807434141635895, + 0.021727226674556732, + 0.02055608108639717, + -0.08225865662097931, + 0.003446632996201515, + -0.0926632434129715, + -0.05106983706355095, + -0.012522444128990173, + -0.03198954463005066, + -0.05880741775035858, + 0.080826535820961, + 0.007645905017852783, + 0.047904014587402344, + -0.047136273235082626, + -0.06485400348901749, + -0.06541036814451218, + 0.04404671490192413, + 0.06206110119819641, + -0.03320083022117615, + 0.009351923130452633, + 0.05454473942518234, + 0.0026818979531526566, + 0.011116365902125835, + 0.07128830254077911, + 0.0951414704322815, + -0.015848718583583832, + 0.008449976332485676, + -0.06262824684381485, + 0.13949379324913025, + 0.06430038064718246, + -0.06512638181447983, + -0.07184892892837524, + -0.022798646241426468, + -0.07825500518083572, + 0.003076508641242981, + -0.022325653582811356, + 0.02487379126250744, + 0.04365435242652893, + 0.013782620429992676, + -0.09706795960664749, + -0.08698441088199615, + 0.0768311470746994, + -0.08895616978406906, + -0.005962833762168884, + -0.09124652296304703, + 0.03530086204409599, + 0.11600761115550995, + 0.039607878774404526, + -0.03638194501399994, + -0.03423493728041649, + 0.03955703228712082, + -0.017453700304031372, + 0.027179241180419922, + 0.04660420119762421, + 0.06128426268696785, + -0.11945350468158722, + -0.013160161674022675, + -0.0415797233581543, + 0.0394231341779232, + -0.04532665014266968, + 0.11346608400344849, + 0.03232453763484955, + -0.0451977513730526, + -0.09722869098186493, + 0.056215204298496246, + -0.00927736982703209, + 0.0627959594130516, + 0.02523762360215187, + 0.06942947208881378, + 0.06505091488361359, + -0.07707616686820984, + 0.10791420191526413, + 0.05018983408808708, + -0.029584821313619614, + -0.07997827231884003, + -0.06634309887886047, + -0.016911637037992477, + 0.048534516245126724, + 0.036889348179101944, + -0.07415550947189331, + -0.010050700977444649, + 0.0272953100502491, + -0.012888816185295582, + 0.057177603244781494, + 0.11965953558683395, + 0.06349019706249237, + -0.11336217820644379 + ] + }, + "p244_165.wav": { + "name": "p244", + "embedding": [ + 0.03967594727873802, + 0.11585744470357895, + -0.008639282546937466, + 0.020129162818193436, + -0.06774327158927917, + 0.0625583678483963, + -0.11016085743904114, + 0.15146467089653015, + -0.04860122501850128, + 0.13405165076255798, + -0.08476852625608444, + 0.12267416715621948, + -0.04478985071182251, + -0.16407841444015503, + -0.03766641393303871, + 0.06088217720389366, + -0.040658533573150635, + -0.024455390870571136, + -0.037225570529699326, + -0.025911470875144005, + 0.02810397557914257, + 0.018418874591588974, + 0.02706461399793625, + 0.023228801786899567, + 0.02667958103120327, + 0.06969434022903442, + 0.00436252448707819, + 0.05329588055610657, + 0.025567099452018738, + -0.03724467381834984, + -0.04781217500567436, + 0.10602779686450958, + -0.049003686755895615, + 0.02519882097840309, + 0.06171729415655136, + -0.013418648391962051, + 0.0024574301205575466, + -0.04842984676361084, + -0.00952373631298542, + -0.0033513978123664856, + -0.036917783319950104, + 0.07925011217594147, + 0.023896804079413414, + 0.0006462677265517414, + 0.03923942893743515, + 0.036784667521715164, + -0.012810589745640755, + -0.04202618822455406, + -0.10374557226896286, + 0.15303929150104523, + 0.07213838398456573, + -0.026199575513601303, + -0.0721045583486557, + -0.0621412992477417, + 0.10370802134275436, + -0.0309724360704422, + -0.11170091480016708, + -0.04647126793861389, + 0.08283820748329163, + 0.13622578978538513, + -0.028179805725812912, + -0.034623660147190094, + 0.0015617292374372482, + 0.13400229811668396, + 0.044177573174238205, + 0.09309019148349762, + 0.05910392850637436, + 0.1103207916021347, + -0.035859934985637665, + 0.030682718381285667, + 0.0537598691880703, + 0.05562162399291992, + 0.03778868168592453, + -0.008430171757936478, + 0.022472640499472618, + -0.014264455996453762, + -0.0016798058059066534, + 0.02416589856147766, + -0.03488977998495102, + -0.023770660161972046, + -0.037995595484972, + 0.01511642336845398, + -0.015401272103190422, + -0.0016783864703029394, + -0.012259754352271557, + 0.07910149544477463, + 0.027622051537036896, + -0.0008163368329405785, + 0.0767674595117569, + 0.04940398782491684, + -0.011513065546751022, + 0.06224565953016281, + -0.08076849579811096, + -0.07767949253320694, + 0.020146973431110382, + -0.010552426800131798, + 0.02722552977502346, + 0.07289230078458786, + 0.026804868131875992, + -0.004942950326949358, + 0.11428235471248627, + 0.06732738763093948, + -0.006283899303525686, + 0.03265165910124779, + -0.09857062995433807, + 0.1445649266242981, + 0.0813715010881424, + -0.02178370952606201, + 0.04157993942499161, + -0.03250889480113983, + 0.07710427790880203, + 0.06216999143362045, + -0.12639182806015015, + -0.07282953709363937, + 0.0034495964646339417, + 0.008697226643562317, + -0.030725397169589996, + 0.08657179772853851, + -0.025908906012773514, + 0.030586540699005127, + 0.09950512647628784, + -0.07126377522945404, + -0.055402129888534546, + -0.019063675776124, + 0.034799061715602875, + -0.0755910575389862, + 0.04377538710832596, + 0.053865931928157806, + -0.0034394979011267424, + 0.02299828827381134, + 0.0909913033246994, + 0.0041182758286595345, + 0.0004711151123046875, + 0.05070638656616211, + -0.057587310671806335, + 0.009657394140958786, + -0.016324883326888084, + 0.004814613610506058, + 0.046114277094602585, + 0.056198835372924805, + 0.05687164515256882, + -0.0037865196354687214, + -0.0046349624171853065, + -0.09198613464832306, + 0.008206354454159737, + 0.0464017391204834, + 0.061579763889312744, + -0.011508050374686718, + -0.02121482416987419, + -0.0332116037607193, + -0.06690096855163574, + -0.0002730429987423122, + 0.006457747425884008, + 0.0766737163066864, + -0.04605969041585922, + 0.004488477949053049, + 0.11394591629505157, + 0.03200026601552963, + -0.015776630491018295, + -0.07389393448829651, + -0.025715522468090057, + 0.006654556840658188, + 0.048764050006866455, + -0.07982741296291351, + -0.07480873912572861, + 0.005237420555204153, + 0.03231421113014221, + -0.022735368460416794, + 0.06632789224386215, + 0.04875322803854942, + 0.008680691942572594, + 0.0384768545627594, + -0.06221424788236618, + 0.024033470079302788, + -0.093968465924263, + -0.05359342694282532, + -0.01922314614057541, + -0.022807035595178604, + -0.025805925950407982, + 0.06608009338378906, + 0.015927810221910477, + 0.05658772215247154, + 0.016445299610495567, + -0.08115064352750778, + -0.07686804980039597, + 0.07033812999725342, + 0.06715753674507141, + -0.0018075741827487946, + 0.06631970405578613, + 0.06917589157819748, + -0.047905974090099335, + 0.0630243793129921, + 0.06990984827280045, + 0.09791704267263412, + -0.03824529051780701, + 0.02791735529899597, + -0.0748954564332962, + 0.054023947566747665, + 0.07346709817647934, + -0.12069100141525269, + -0.09216158837080002, + -0.039735909551382065, + -0.043230753391981125, + 0.037867799401283264, + -0.029833585023880005, + 0.0035556077491492033, + 0.03954966366291046, + -0.0061808316968381405, + -0.08369222283363342, + -0.09028251469135284, + 0.09089213609695435, + -0.07503612339496613, + 0.00924255046993494, + -0.06325525790452957, + 0.039707720279693604, + 0.08755951374769211, + 0.03303712233901024, + -0.034828610718250275, + -0.0016722469590604305, + 0.05430574342608452, + -0.031120292842388153, + -0.010548003017902374, + 0.037798333913087845, + 0.0297946035861969, + -0.08675667643547058, + 0.014282351359724998, + -0.06989174336194992, + 0.07082843780517578, + -0.038404837250709534, + 0.16890528798103333, + 0.0020773860160261393, + -0.04848208278417587, + -0.07494451105594635, + 0.029797043651342392, + -0.03563976287841797, + 0.03672938048839569, + 0.035480476915836334, + 0.05658628046512604, + 0.014400872401893139, + -0.04764615744352341, + 0.14371421933174133, + 0.033516138792037964, + -0.061540957540273666, + -0.059838876128196716, + -0.0389665886759758, + -0.04797103628516197, + 0.02227701246738434, + 0.030173322185873985, + -0.09946665167808533, + -0.025316527113318443, + 0.011935308575630188, + -0.03308209031820297, + 0.08439870923757553, + 0.14766719937324524, + 0.08619862049818039, + -0.1089140772819519 + ] + }, + "p244_356.wav": { + "name": "p244", + "embedding": [ + 0.04086939990520477, + 0.08951200544834137, + -0.026374438777565956, + 0.03856663405895233, + -0.06730605661869049, + 0.0873529389500618, + -0.10553879290819168, + 0.11942847073078156, + -0.06356222182512283, + 0.151752769947052, + -0.06456775963306427, + 0.10343065857887268, + -0.03862103819847107, + -0.16911888122558594, + -0.03482303395867348, + 0.05769289284944534, + -0.06591907143592834, + -0.043339088559150696, + -0.06732074916362762, + -0.022766653448343277, + 0.03342362493276596, + 0.040194205939769745, + 0.01719977706670761, + 0.0039030457846820354, + 0.03261745721101761, + 0.06683658808469772, + -0.014979502186179161, + 0.030012287199497223, + 0.008016941137611866, + -0.08423100411891937, + -0.04582330584526062, + 0.10858146101236343, + -0.04576100409030914, + 0.025592606514692307, + 0.032217759639024734, + 0.0006537479348480701, + 0.004875914193689823, + -0.06298317015171051, + -0.019257143139839172, + 0.0005593490786850452, + -0.049346521496772766, + 0.07798685878515244, + 0.025978393852710724, + 0.0004016320453956723, + 0.02908991277217865, + -0.006298460997641087, + -0.033271800726652145, + -0.05221286416053772, + -0.0937284529209137, + 0.18031814694404602, + 0.07851989567279816, + -0.012121371924877167, + -0.05992363393306732, + -0.07952374219894409, + 0.10676153004169464, + -0.005858476273715496, + -0.14307348430156708, + -0.053222015500068665, + 0.07925372570753098, + 0.16216279566287994, + -0.020424779504537582, + -0.018776120617985725, + 0.0074111116118729115, + 0.1364484429359436, + 0.04707653820514679, + 0.09105082601308823, + 0.07038827240467072, + 0.10942619293928146, + 0.0017424310790374875, + 0.02338968962430954, + 0.07447397708892822, + 0.05923231691122055, + 0.06232087314128876, + -0.009397023357450962, + 0.03479659929871559, + -0.016016103327274323, + -0.015911351889371872, + -0.0009062483441084623, + -0.03415266424417496, + -0.023133162409067154, + -0.021057307720184326, + 0.005176630802452564, + 0.009483702480793, + 0.010469830594956875, + -0.01430918462574482, + 0.04501991719007492, + 0.034592047333717346, + -0.02202957309782505, + 0.06608723104000092, + 0.048086170107126236, + 0.009918369352817535, + 0.060980021953582764, + -0.06518412381410599, + -0.08466757833957672, + 0.02336093969643116, + 0.015045255422592163, + 0.026683226227760315, + 0.06649713963270187, + 0.033746909350156784, + -0.019483964890241623, + 0.1067667081952095, + 0.03334623947739601, + -0.002106674946844578, + 0.01401473954319954, + -0.10387741029262543, + 0.13408410549163818, + 0.08653315901756287, + -0.00869319960474968, + 0.04028468579053879, + -0.029592256993055344, + 0.08483413606882095, + 0.07535626739263535, + -0.14697687327861786, + -0.06821461021900177, + 0.01582537591457367, + -0.01609744317829609, + -0.02322383224964142, + 0.10218681395053864, + 0.0051074945367872715, + 0.022427907213568687, + 0.1023264229297638, + -0.09726029634475708, + -0.04470622539520264, + -0.01842515729367733, + 0.04056418687105179, + -0.08730257302522659, + 0.04035990685224533, + 0.04516203701496124, + -0.01682428829371929, + 0.018705403432250023, + 0.08134029805660248, + -0.008416708558797836, + 0.00244336761534214, + 0.02857125736773014, + -0.06176706403493881, + 0.027274195104837418, + -0.02988981455564499, + 0.0030025558080524206, + 0.05451573058962822, + 0.03475082665681839, + 0.054191768169403076, + -0.029301758855581284, + -0.019413653761148453, + -0.0967000424861908, + 0.01952831819653511, + 0.030948691070079803, + 0.06650516390800476, + -0.01649133302271366, + 0.0050955163314938545, + -0.026191718876361847, + -0.08118981868028641, + 0.03647289425134659, + -0.025159452110528946, + 0.08692571520805359, + -0.013840983621776104, + -0.014536605216562748, + 0.12050910294055939, + 0.02689511328935623, + -0.015167511999607086, + -0.06247050315141678, + -0.026502516120672226, + 0.021901793777942657, + 0.06385867297649384, + -0.08855246007442474, + -0.05560731887817383, + 0.017624270170927048, + 0.02216988615691662, + -0.01880536414682865, + 0.05033149570226669, + 0.046090055257081985, + 0.01750963181257248, + 0.028113212436437607, + -0.05739482492208481, + 0.011944243684411049, + -0.09569239616394043, + -0.05275866016745567, + 0.000302922329865396, + -0.054119616746902466, + -0.017465630546212196, + 0.08965660631656647, + 0.014668621122837067, + 0.02036041021347046, + -0.01609942875802517, + -0.08675159513950348, + -0.06559126079082489, + 0.07725353538990021, + 0.05012989044189453, + 0.003195937257260084, + 0.0420549213886261, + 0.06380848586559296, + -0.02766098827123642, + 0.03873578831553459, + 0.0595577135682106, + 0.11881475150585175, + -0.029372617602348328, + 0.024797804653644562, + -0.07991312444210052, + 0.08599613606929779, + 0.07942035794258118, + -0.09733115136623383, + -0.08269278705120087, + -0.03404483199119568, + -0.05191946402192116, + 0.04673101380467415, + -0.041733354330062866, + -0.00048792490269988775, + 0.03443985804915428, + -0.0145350880920887, + -0.10161145031452179, + -0.0894225686788559, + 0.11258187890052795, + -0.07217399775981903, + -0.011903337202966213, + -0.08650445938110352, + 0.0452762097120285, + 0.0853215903043747, + 0.0592464804649353, + -0.03526864945888519, + 0.027561983093619347, + 0.07129386067390442, + -0.05256011337041855, + 0.007490691263228655, + 0.05711611732840538, + 0.014849871397018433, + -0.09769967198371887, + -0.012917572632431984, + -0.07902374863624573, + 0.05670669674873352, + -0.053847476840019226, + 0.15977267920970917, + -0.003217934397980571, + -0.05182019621133804, + -0.07304446399211884, + 0.05916804075241089, + -0.025032419711351395, + 0.048482805490493774, + 0.044112756848335266, + 0.07247015833854675, + 0.04754685238003731, + -0.05276981741189957, + 0.12296392023563385, + 0.039938054978847504, + -0.02849949151277542, + -0.0488908514380455, + -0.03706773743033409, + -0.04777908697724342, + 0.0248568132519722, + -0.003756074234843254, + -0.09971877932548523, + 0.010898696258664131, + 0.026814734563231468, + -0.015190057456493378, + 0.07238695025444031, + 0.1374489814043045, + 0.08575549721717834, + -0.10293564200401306 + ] + }, + "p244_399.wav": { + "name": "p244", + "embedding": [ + 0.043407708406448364, + 0.08514630794525146, + -0.004393481649458408, + -0.017237260937690735, + -0.027270518243312836, + 0.038521382957696915, + -0.11699099838733673, + 0.1150565892457962, + -0.03607865050435066, + 0.1637323647737503, + -0.06965497136116028, + 0.07763926684856415, + -0.009350992739200592, + -0.14831416308879852, + -0.04423484951257706, + 0.012057676911354065, + -0.07149875909090042, + 0.020692303776741028, + -0.08802884817123413, + 0.0032151222694665194, + 0.07314873486757278, + 0.058580655604600906, + 0.02529294788837433, + -0.10331368446350098, + 0.03364839032292366, + 0.03980763256549835, + 0.06568023562431335, + 0.05860733613371849, + 0.04895852133631706, + -0.10105137526988983, + -0.010964975692331791, + 0.1181853711605072, + -0.02922952175140381, + 0.03131198137998581, + 0.04253586754202843, + -0.03794465959072113, + 0.009031357243657112, + -0.0376671701669693, + -0.040401890873909, + 0.06202126294374466, + -0.02167307771742344, + 0.06562337279319763, + 0.006518195383250713, + 0.011429822072386742, + 0.05421014875173569, + 0.03634736314415932, + -0.025013383477926254, + -0.08090966939926147, + -0.05387640744447708, + 0.1955152153968811, + 0.06107282638549805, + -0.005303638055920601, + -0.07695049792528152, + -0.08275580406188965, + 0.08707845211029053, + -0.009905875660479069, + -0.08993817865848541, + -0.034108612686395645, + 0.054829783737659454, + 0.1368941068649292, + -0.028208032250404358, + -0.015052329748868942, + 0.022843828424811363, + 0.0715927854180336, + -0.0010192799381911755, + 0.044366396963596344, + 0.07649503648281097, + 0.03229347988963127, + 0.05760540813207626, + 0.10044670850038528, + -0.003477548249065876, + 0.07733965665102005, + 0.0009144004434347153, + -0.022935424000024796, + 0.04968501254916191, + -0.005019399803131819, + -0.06939955055713654, + -0.0021369503811001778, + -0.014622367918491364, + 0.028308648616075516, + 0.03437855467200279, + 0.03125846013426781, + 0.019676368683576584, + 0.004109161905944347, + -0.04377274960279465, + 0.04807640612125397, + -0.0622292198240757, + -0.01346023939549923, + 0.048401277512311935, + -0.0034759631380438805, + 0.026329033076763153, + 0.03414757549762726, + -0.05391175299882889, + -0.17603802680969238, + -0.018477359786629677, + 0.0055984798818826675, + -0.01211104542016983, + 0.02662937343120575, + 0.04154057800769806, + -0.06734733283519745, + 0.09840120375156403, + 0.027053028345108032, + -0.031699128448963165, + 0.029967427253723145, + -0.09623030573129654, + 0.06701046228408813, + 0.07976463437080383, + 0.019208690151572227, + 0.032371360808610916, + -0.09073149412870407, + 0.09181475639343262, + 0.0308143999427557, + -0.1284741461277008, + -0.0825284868478775, + 0.04926585406064987, + -0.04131811857223511, + 0.023724224418401718, + 0.09970830380916595, + 0.00023345567751675844, + -0.019320406019687653, + 0.08103495836257935, + -0.08968541026115417, + -0.042313579469919205, + -0.040758296847343445, + 0.06690813601016998, + -0.06204451620578766, + 0.0415092371404171, + 0.008520049042999744, + -0.05466149002313614, + -0.01350567676126957, + 0.07163883745670319, + -0.019098002463579178, + 0.04717077314853668, + -0.018486324697732925, + -0.020546559244394302, + 0.04924091324210167, + -0.08019986003637314, + -0.002873710822314024, + 0.04371439293026924, + 0.09363424777984619, + 0.04580260440707207, + 0.014807956293225288, + -0.09634441137313843, + -0.06610545516014099, + 0.0019455874571576715, + 0.0017015831544995308, + 0.025520039722323418, + -0.01260680053383112, + -0.001566617051139474, + -0.06118291988968849, + -0.05729690566658974, + 0.0018601319752633572, + -0.017036782577633858, + 0.0833219438791275, + 0.022019457072019577, + 0.017744986340403557, + 0.1212051659822464, + -0.023838693276047707, + -0.01061723567545414, + -0.02597096934914589, + -0.028454719111323357, + 0.03623758256435394, + 0.02798575349152088, + -0.046151597052812576, + -0.04130226746201515, + 0.006558964028954506, + -0.02732974663376808, + 0.007865079678595066, + -0.010325999930500984, + -0.00023810472339391708, + 0.024877462536096573, + 0.055413391441106796, + -0.08336721360683441, + -0.01316053606569767, + -0.12758152186870575, + -0.02248723804950714, + -0.020609617233276367, + -0.039464905858039856, + -0.06324316561222076, + 0.09323467314243317, + -0.03642461821436882, + -0.011015796102583408, + -0.011010970920324326, + -0.07861576229333878, + -0.026543892920017242, + 0.08534091711044312, + 0.09695500880479813, + 0.023573437705636024, + 0.03926955536007881, + 0.02396240644156933, + 0.006417909637093544, + 0.043264664709568024, + 0.07744477689266205, + 0.08910040557384491, + 0.03543535992503166, + -0.02767322212457657, + -0.04132278636097908, + 0.11849206686019897, + 0.03320126235485077, + -0.06905090808868408, + -0.08573455363512039, + -0.02476121112704277, + -0.08664263784885406, + 0.030558835715055466, + -0.006718845572322607, + 0.00779906939715147, + 0.019522856920957565, + 0.016397511586546898, + -0.096031054854393, + -0.026959164068102837, + 0.05537264794111252, + -0.07411211729049683, + -0.050628259778022766, + -0.02682347409427166, + 0.026658786460757256, + 0.1291964203119278, + 0.07049524039030075, + 0.014440370723605156, + -0.03224454075098038, + 0.06706452369689941, + -0.11083965748548508, + -0.029099933803081512, + -0.023874379694461823, + -0.025118602439761162, + -0.05290934070944786, + 0.06555207818746567, + -0.03741598501801491, + 0.03360322117805481, + -0.09411516040563583, + 0.09540413320064545, + -0.02489689737558365, + -0.08482369035482407, + -0.09301001578569412, + 0.06976577639579773, + -0.046728700399398804, + 0.021285828202962875, + 0.030839871615171432, + 0.01062258891761303, + 0.07393287122249603, + -0.12058000266551971, + 0.10721905529499054, + 0.004731575958430767, + 0.013897083699703217, + -0.061224132776260376, + -0.07533226162195206, + -0.015477333217859268, + -0.010902968235313892, + 0.001196539495140314, + -0.03732926771044731, + 0.009925230406224728, + 0.012417476624250412, + -0.026409873738884926, + 0.049373526126146317, + 0.08713968098163605, + 0.010785295628011227, + -0.11902668327093124 + ] + }, + "p244_292.wav": { + "name": "p244", + "embedding": [ + 0.02978472411632538, + 0.00844737607985735, + -0.022143715992569923, + 0.07281013578176498, + -0.02330043911933899, + 0.07798058539628983, + -0.10541976243257523, + 0.07966556400060654, + -0.05141333118081093, + 0.1361052691936493, + -0.08067888021469116, + 0.05543431267142296, + -0.010731135495007038, + -0.17521022260189056, + -0.0180555060505867, + 0.061209071427583694, + -0.05542079731822014, + -0.0006583239301107824, + -0.08810283988714218, + 0.02877158857882023, + 0.06928957253694534, + 0.07792311161756516, + 0.02024732157588005, + -0.051773060113191605, + 0.010985376313328743, + 0.021596424281597137, + 0.01120042335242033, + 0.07479297369718552, + 0.04911467805504799, + -0.09630712866783142, + -0.005978746805340052, + 0.12200847268104553, + -0.01801954209804535, + 0.014994977973401546, + 0.030241530388593674, + 0.0155265424400568, + 0.0009099359740503132, + -0.03831105679273605, + -0.028641412034630775, + 0.016760200262069702, + -0.07368175685405731, + 0.05674555152654648, + 0.03237203136086464, + 0.03398388996720314, + 0.08281849324703217, + -0.008106161840260029, + -0.08759444206953049, + -0.07100453972816467, + -0.1120789647102356, + 0.1613544225692749, + 0.05960554629564285, + 0.009728522971272469, + -0.044778719544410706, + -0.07683882862329483, + 0.0909070074558258, + 0.01107009407132864, + -0.12459607422351837, + -0.08191263675689697, + 0.09382978826761246, + 0.1923878788948059, + -0.0019968939013779163, + 0.013254500925540924, + 0.03994491696357727, + 0.08640435338020325, + 0.04014137014746666, + 0.09069765359163284, + 0.053090475499629974, + 0.06117432564496994, + 0.09111525863409042, + 0.03566819801926613, + 0.01563529670238495, + 0.07747708261013031, + 0.0007923566736280918, + 0.0036026551388204098, + 0.0272341500967741, + 0.034250639379024506, + -0.04543229937553406, + 0.0031557055190205574, + -0.031035585328936577, + 0.0502319298684597, + 0.034504495561122894, + 0.018384940922260284, + 0.04751954227685928, + -0.006692108232527971, + -0.0625535175204277, + 0.043901484459638596, + -0.034086961299180984, + 0.0001770639355527237, + 0.0413428395986557, + -0.024855032563209534, + 0.001108216238208115, + 0.023319272324442863, + -0.01741201803088188, + -0.1326574683189392, + -0.04704342782497406, + 0.03093782067298889, + -0.021161584183573723, + 0.006018002517521381, + -0.00518689164891839, + -0.05481847748160362, + 0.12718717753887177, + -0.026280276477336884, + -0.027132853865623474, + 0.06241834536194801, + -0.08875400573015213, + 0.07980675250291824, + 0.05902193859219551, + 0.053044773638248444, + 0.050138067454099655, + -0.04974028468132019, + 0.060327544808387756, + 0.0655059739947319, + -0.14963261783123016, + -0.028454886749386787, + 0.06327219307422638, + -0.012809679843485355, + -0.007210670039057732, + 0.14251743257045746, + 0.024538135156035423, + -0.011140108108520508, + 0.11241748183965683, + -0.11833605170249939, + -0.033140141516923904, + 0.007824218831956387, + 0.06312833726406097, + -0.0639585480093956, + 0.053029920905828476, + -0.026817718520760536, + -0.0368630476295948, + 0.008135326206684113, + 0.07525601238012314, + -0.03474194183945656, + 0.02815941907465458, + 0.0048700966872274876, + -0.05952896922826767, + 0.0734386220574379, + -0.12032050639390945, + -0.010470408014953136, + 0.09427011758089066, + 0.05006031692028046, + 0.08284653723239899, + -0.029075944796204567, + -0.09600839763879776, + -0.11729686707258224, + -0.010005713440477848, + -0.0068902322091162205, + 0.07979514449834824, + 0.00613864092156291, + 0.026466138660907745, + -0.0870661586523056, + -0.07945363968610764, + 0.0769726112484932, + -0.05543803796172142, + 0.11835591495037079, + 0.0162125825881958, + 0.0027792956680059433, + 0.052065782248973846, + -0.049297869205474854, + 0.009339897893369198, + -0.04202976077795029, + -0.0557120218873024, + -0.0009214148158207536, + 0.023042500019073486, + -0.05398085340857506, + -0.0027062115259468555, + 0.044533368200063705, + 0.025707069784402847, + -0.011558673344552517, + -0.010034295730292797, + 0.012893454171717167, + 0.03819505125284195, + 0.020159991458058357, + -0.04656371846795082, + -0.006478699389845133, + -0.094541534781456, + -0.021168410778045654, + 0.011217146180570126, + -0.01657198742032051, + -0.0295425932854414, + 0.10062684118747711, + 0.008051402866840363, + -0.01711026020348072, + -0.001680716872215271, + -0.09159387648105621, + -0.09306102991104126, + 0.09266086667776108, + 0.04368305578827858, + 0.011623713187873363, + 0.05852610990405083, + 0.03634224086999893, + -0.03923001140356064, + 0.044802065938711166, + 0.05468299239873886, + 0.0972294807434082, + 0.046213969588279724, + -0.02021324262022972, + -0.05593721196055412, + 0.11970607936382294, + 0.09194639325141907, + -0.04186704382300377, + -0.0506104975938797, + 0.014429462142288685, + -0.11097955703735352, + 0.08465274423360825, + -0.03146445006132126, + -0.040149785578250885, + 0.053672537207603455, + -0.0060563478618860245, + -0.13333512842655182, + -0.019666306674480438, + 0.05323227122426033, + -0.1026659831404686, + -0.06263666599988937, + -0.04058093577623367, + 0.011989978142082691, + 0.10436394065618515, + 0.04677855595946312, + 0.030187595635652542, + -0.002272543963044882, + 0.07451274991035461, + -0.1316886693239212, + 0.0020504635758697987, + 0.05662250518798828, + -0.03712950646877289, + -0.07926171272993088, + 0.0037090876139700413, + -0.07958752661943436, + 0.00390845350921154, + -0.05563895404338837, + 0.09774356335401535, + -0.02173725515604019, + -0.034459371119737625, + -0.05764124169945717, + 0.08004993945360184, + -0.03101935051381588, + 0.04732012003660202, + 0.04447893425822258, + 0.05280740559101105, + 0.11529012024402618, + -0.06742821633815765, + 0.11136690527200699, + 0.021314358338713646, + -0.006134507711976767, + -0.037167228758335114, + -0.04780614748597145, + -0.06523802131414413, + -0.028220772743225098, + 0.003216435434296727, + -0.06819122284650803, + 0.005061344243586063, + 0.0370168499648571, + -0.01879378966987133, + 0.032584886997938156, + 0.08438259363174438, + 0.009825991466641426, + -0.09319378435611725 + ] + }, + "p244_079.wav": { + "name": "p244", + "embedding": [ + 0.06516256183385849, + 0.09580160677433014, + -0.010024912655353546, + 0.028830762952566147, + -0.0722404196858406, + 0.04410260170698166, + -0.12284588813781738, + 0.140308678150177, + -0.026371777057647705, + 0.13703271746635437, + -0.07013494521379471, + 0.14145883917808533, + -0.0287533737719059, + -0.1753140091896057, + -0.020089223980903625, + 0.06814181804656982, + -0.024494217708706856, + -0.01852126605808735, + -0.04487146437168121, + -0.009977125562727451, + 0.023365594446659088, + 0.026251815259456635, + 0.06408986449241638, + -0.009501132182776928, + 0.04037458822131157, + 0.07798200845718384, + 0.011470229364931583, + 0.06849347054958344, + 0.024142172187566757, + -0.07543677091598511, + -0.043644312769174576, + 0.09946713596582413, + -0.06297313421964645, + 0.01536078006029129, + 0.051502976566553116, + -0.021028434857726097, + -0.013401273638010025, + -0.05042524263262749, + -0.019526313990354538, + -0.0067052049562335014, + -0.03078743815422058, + 0.08218748867511749, + 0.012076299637556076, + -0.029669523239135742, + 0.04701274633407593, + 0.03221958875656128, + -0.0238468237221241, + -0.0433136522769928, + -0.11535975337028503, + 0.14637990295886993, + 0.04629471153020859, + 0.009074930101633072, + -0.09432247281074524, + -0.06899213790893555, + 0.0928945541381836, + -0.04236429184675217, + -0.10814248025417328, + -0.0603962168097496, + 0.06318166851997375, + 0.13227872550487518, + -0.03318799287080765, + -0.04776616394519806, + 0.014100514352321625, + 0.1020800769329071, + 0.07988174259662628, + 0.0888691172003746, + 0.07963944971561432, + 0.10757699608802795, + -0.02693941816687584, + 0.048616521060466766, + 0.04493517428636551, + 0.075970858335495, + 0.0588279590010643, + 0.013869773596525192, + 0.026416122913360596, + -0.003352896310389042, + -0.002936075208708644, + -0.007241982501000166, + -0.016357282176613808, + -0.015565671026706696, + -0.013938527554273605, + 0.015750925987958908, + 0.012026733718812466, + 0.0059774634428322315, + -0.02928123250603676, + 0.07431838661432266, + 0.036998599767684937, + -0.014820186421275139, + 0.06684798002243042, + 0.030558597296476364, + -0.0173952616751194, + 0.06289484351873398, + -0.10084779560565948, + -0.08981823921203613, + 0.01646825112402439, + -0.011834731325507164, + 0.030426006764173508, + 0.05790908262133598, + 0.026028063148260117, + -0.009957386180758476, + 0.11783450096845627, + 0.07251115143299103, + -0.005082995630800724, + 0.03915700316429138, + -0.07243093848228455, + 0.13601046800613403, + 0.08595867455005646, + -0.016306884586811066, + 0.05203995108604431, + -0.03906119614839554, + 0.07126761972904205, + 0.06326884031295776, + -0.12511089444160461, + -0.08278553187847137, + -0.008053545840084553, + -0.022284874692559242, + -0.030374838039278984, + 0.10552652180194855, + -0.027563486248254776, + 0.04734759032726288, + 0.11284604668617249, + -0.09717071056365967, + -0.054251790046691895, + 0.007773173041641712, + 0.031180864199995995, + -0.09953389316797256, + 0.05676734820008278, + 0.04854784160852432, + -0.006961371749639511, + 0.018301382660865784, + 0.10394886136054993, + -0.0035078434739261866, + 0.007843966595828533, + 0.02568798139691353, + -0.061050452291965485, + 0.005224249325692654, + -0.023605231195688248, + -0.0071538230404257774, + 0.07506098598241806, + 0.03730127587914467, + 0.0615386925637722, + -0.0086620282381773, + -0.007373702712357044, + -0.12529276311397552, + 0.011405468918383121, + 0.04152694344520569, + 0.06523949652910233, + -0.016931375488638878, + -0.017557824030518532, + -0.03932113200426102, + -0.060288846492767334, + 0.025387771427631378, + 0.01169002614915371, + 0.06566314399242401, + -0.03005640022456646, + 0.013669880107045174, + 0.1229715421795845, + 0.028635794296860695, + 0.0065623014234006405, + -0.06518053263425827, + -0.03174331411719322, + 0.011019711382687092, + 0.06399239599704742, + -0.09251774847507477, + -0.06803411990404129, + -0.0032121860422194004, + 0.03338535130023956, + -0.02481101080775261, + 0.06714528799057007, + 0.07079502195119858, + 0.022468185052275658, + 0.037124164402484894, + -0.04624837636947632, + 0.013048010878264904, + -0.08079132437705994, + -0.0706033855676651, + -0.00602807616814971, + -0.01950966939330101, + -0.03886004164814949, + 0.066257543861866, + 0.02169523760676384, + 0.06392017006874084, + -0.025257427245378494, + -0.07497726380825043, + -0.09656015038490295, + 0.061889246106147766, + 0.052845295518636703, + -0.0002559491840656847, + 0.05314617604017258, + 0.048261500895023346, + -0.047096386551856995, + 0.06495040655136108, + 0.058088771998882294, + 0.09279659390449524, + -0.034642692655324936, + 0.020721999928355217, + -0.07892473042011261, + 0.07680954039096832, + 0.09880086779594421, + -0.09906453639268875, + -0.09369700402021408, + -0.03440767526626587, + -0.07206651568412781, + 0.050891950726509094, + -0.02989235147833824, + -0.003563639475032687, + 0.06643103063106537, + -0.0022542979568243027, + -0.09432574361562729, + -0.10080718994140625, + 0.08983003348112106, + -0.06773792207241058, + -0.0012895718682557344, + -0.0749431848526001, + 0.035775937139987946, + 0.07154205441474915, + 0.03231631964445114, + -0.028951279819011688, + -0.012004037387669086, + 0.05119956284761429, + -0.03849438950419426, + -0.0009040175937116146, + 0.06436005979776382, + 0.030313212424516678, + -0.07667014002799988, + -0.003539234632626176, + -0.07074956595897675, + 0.04775746911764145, + -0.03263372927904129, + 0.1630285680294037, + -0.008396154269576073, + -0.04302608221769333, + -0.07123927772045135, + 0.028731761500239372, + -0.04127562791109085, + 0.05254625901579857, + 0.046864256262779236, + 0.0590631365776062, + 0.04338300973176956, + -0.07303330302238464, + 0.12959596514701843, + 0.048778362572193146, + -0.05276206508278847, + -0.06825324892997742, + -0.05494856834411621, + -0.05755572021007538, + 0.04025141894817352, + 0.0131063312292099, + -0.09747196733951569, + -0.00620085746049881, + 0.021146811544895172, + -0.027976226061582565, + 0.055900782346725464, + 0.13161638379096985, + 0.06194650009274483, + -0.09125107526779175 + ] + }, + "p244_417.wav": { + "name": "p244", + "embedding": [ + 0.05909836292266846, + 0.08160175383090973, + -0.07030828297138214, + 0.011782796122133732, + 0.025327229872345924, + 0.05053437128663063, + -0.13075393438339233, + 0.07129392772912979, + -0.038319140672683716, + 0.13663902878761292, + -0.04119236022233963, + 0.11303113400936127, + -0.011498070321977139, + -0.10368526726961136, + -0.03302355483174324, + 0.0602126345038414, + -0.015298991464078426, + -0.0010763611644506454, + -0.010557844303548336, + 0.017065340653061867, + 0.06165258586406708, + 0.03136908635497093, + 0.024239016696810722, + -0.05923013389110565, + 0.004103496670722961, + 0.05849559232592583, + 0.019867662340402603, + 0.007513002492487431, + -0.01094362698495388, + -0.026498273015022278, + 0.01610308326780796, + 0.06772201508283615, + 0.0048959869891405106, + 0.04399401322007179, + 0.028874894604086876, + 0.047758735716342926, + -0.01651011034846306, + -0.05631769448518753, + 0.024276209995150566, + 0.016915326938033104, + -0.006811744999140501, + 0.05868542939424515, + 0.011618515476584435, + -0.03999960422515869, + 0.045762963593006134, + -0.05200161039829254, + -0.021532367914915085, + -0.014844749122858047, + -0.05701658874750137, + 0.1442849040031433, + 0.05042952299118042, + 0.06697671860456467, + -0.08402715623378754, + -0.018702922388911247, + 0.08897987753152847, + 0.03815074637532234, + -0.06362417340278625, + -0.043369024991989136, + 0.02607535570859909, + 0.1534719467163086, + -0.0019072418799623847, + -0.04298985004425049, + 0.04340633749961853, + 0.0731189176440239, + 0.0009420793503522873, + 0.04949144646525383, + 0.10599350929260254, + 0.049234434962272644, + 0.04804335534572601, + 0.00664458516985178, + 0.015810616314411163, + 0.09508240222930908, + 0.04241625592112541, + -0.018506541848182678, + 0.02625420317053795, + -0.0387938916683197, + -0.04149240255355835, + -0.019300974905490875, + -0.019704679027199745, + -0.08427698165178299, + -0.04882911965250969, + -0.02197306603193283, + 0.02618379145860672, + 0.03960245102643967, + -0.016376499086618423, + -0.0038973260670900345, + 0.037387698888778687, + -0.09241961687803268, + 0.014897347427904606, + 0.0459207147359848, + 0.008868705481290817, + -0.015156161040067673, + -0.030490398406982422, + -0.11602529883384705, + 0.036987531930208206, + 0.02778133749961853, + 0.007633493281900883, + 0.04099714010953903, + 0.05399581044912338, + 0.03645102679729462, + 0.05131783336400986, + -0.0022190194576978683, + -0.010710250586271286, + -0.04364379122853279, + -0.03711196035146713, + 0.08210805058479309, + 0.11589988321065903, + -0.022554457187652588, + 0.03075755015015602, + -0.06686490774154663, + -0.01652601733803749, + 0.04832708090543747, + -0.08810297399759293, + -0.07225038856267929, + 0.02643495611846447, + 0.00782470591366291, + 0.05593413859605789, + 0.09123110771179199, + 0.04908927530050278, + 0.013989736326038837, + 0.07796026766300201, + -0.07409682869911194, + -0.09257493913173676, + -0.08532830327749252, + 0.04421807825565338, + -0.056917883455753326, + 0.09170624613761902, + 0.057820141315460205, + 0.020159270614385605, + -0.029578659683465958, + 0.04342036321759224, + 0.010445686988532543, + 0.03175807744264603, + -0.053649917244911194, + 0.014682024717330933, + 0.034018997102975845, + -0.06942272186279297, + 0.01105683483183384, + 0.025826385244727135, + 0.012040230445563793, + 0.05236422270536423, + 0.011512226425111294, + -0.02166522853076458, + -0.09067350625991821, + -0.010335113853216171, + 0.0841900110244751, + 0.015186644159257412, + -0.037455059587955475, + -0.05919199436903, + -0.009369528852403164, + -0.04918203130364418, + -0.008586794137954712, + -0.07027163356542587, + 0.08636704832315445, + 0.03705809637904167, + 0.045824263244867325, + 0.0931997075676918, + -0.04799710586667061, + -0.003033669199794531, + -0.022821493446826935, + 0.014738349243998528, + 0.04186870902776718, + 0.00905478373169899, + -0.08448685705661774, + -0.08272877335548401, + -0.036763694137334824, + 0.005915842019021511, + -0.01258518360555172, + 0.02452155016362667, + 0.019416294991970062, + 0.00042718928307294846, + 0.015424338169395924, + -0.04108411446213722, + -0.029329627752304077, + -0.1307343989610672, + -0.04976578801870346, + -0.03194744884967804, + -0.06242218613624573, + -0.001822001300752163, + 0.09731131792068481, + 0.02909584902226925, + 0.0361294224858284, + -0.04363678768277168, + -0.05799331143498421, + -0.06978301703929901, + 0.06613919883966446, + 0.07298628985881805, + -0.010914690792560577, + -0.006618715822696686, + 0.0006062202155590057, + 0.054281141608953476, + 0.014420747756958008, + 0.024333177134394646, + 0.05964489281177521, + -0.025259647518396378, + -0.04551899433135986, + -0.07691792398691177, + 0.08032470941543579, + 0.13576894998550415, + -0.07084605097770691, + -0.05785665661096573, + -0.06607513129711151, + -0.07666939496994019, + 0.004633105359971523, + -0.06901639699935913, + 0.0024745126720517874, + 0.030072888359427452, + -0.06653248518705368, + -0.14836283028125763, + -0.11879001557826996, + 0.04005735367536545, + -0.01500088069587946, + -0.001864453312009573, + -0.03363480046391487, + 0.05235423892736435, + 0.053054485470056534, + 0.0012810584157705307, + -0.03355234116315842, + 0.033964578062295914, + 0.00257265567779541, + -0.054090466350317, + 0.003916524816304445, + -0.005782747641205788, + 0.031482093036174774, + -0.08382150530815125, + -0.0027385219000279903, + -0.05115952342748642, + 0.05881929770112038, + -0.10346367955207825, + 0.10519222915172577, + -0.01679205149412155, + -0.06308574974536896, + -0.07517553120851517, + 0.026690855622291565, + -0.0042991191148757935, + 0.03806775063276291, + -0.0045922622084617615, + 0.03564491868019104, + -0.0004764758050441742, + -0.12449732422828674, + 0.06663791835308075, + 0.07047554850578308, + 0.04356139153242111, + -0.10867809504270554, + -0.04062619060277939, + -0.031341418623924255, + 0.04778260737657547, + -0.026821356266736984, + -0.019748523831367493, + 0.016232892870903015, + 0.0102919340133667, + 0.049607787281274796, + 0.060328833758831024, + 0.09035275876522064, + 0.0076279789209365845, + -0.07072833180427551 + ] + }, + "p244_108.wav": { + "name": "p244", + "embedding": [ + 0.037769027054309845, + 0.0710381492972374, + -0.013538839295506477, + 0.030405599623918533, + -0.048303909599781036, + 0.047502100467681885, + -0.12979720532894135, + 0.13112381100654602, + -0.04121986776590347, + 0.13865065574645996, + -0.06637080013751984, + 0.11918260157108307, + -0.02338600717484951, + -0.17452624440193176, + -0.03334740549325943, + 0.053329914808273315, + -0.052101992070674896, + -0.051867153495550156, + -0.02814045548439026, + -0.015195145271718502, + 0.06074162945151329, + 0.05908415466547012, + 0.027038339525461197, + 0.016313016414642334, + -0.0019269927870482206, + 0.06195680797100067, + 0.00941650103777647, + 0.05909734219312668, + 0.030846452340483665, + -0.06887990236282349, + -0.027073901146650314, + 0.09607156366109848, + -0.035451002418994904, + 0.019882015883922577, + 0.030511513352394104, + -0.006075890269130468, + 0.005407089367508888, + -0.060771238058805466, + -0.027218779549002647, + 0.0007485868409276009, + -0.04762926325201988, + 0.064360111951828, + 0.017738550901412964, + -0.004371512681245804, + 0.044193193316459656, + 0.010321813635528088, + -0.03718484193086624, + -0.049315135926008224, + -0.10986790060997009, + 0.15704680979251862, + 0.08583162724971771, + 0.002673715353012085, + -0.054422348737716675, + -0.08579865097999573, + 0.0989055335521698, + -0.014484390616416931, + -0.11814837157726288, + -0.03308306634426117, + 0.07271839678287506, + 0.16380542516708374, + -0.023201337084174156, + -0.04115494713187218, + 0.04155807942152023, + 0.1233464702963829, + 0.053849734365940094, + 0.07423166930675507, + 0.09269973635673523, + 0.09026002138853073, + -0.01808060333132744, + -0.0031782067380845547, + 0.04294588789343834, + 0.09047387540340424, + 0.04572029411792755, + 0.011087577790021896, + 0.03329905867576599, + 0.020404307171702385, + -0.016010120511054993, + 0.012689856812357903, + -0.02847563847899437, + -0.011781329289078712, + -0.013834763318300247, + 0.02012418769299984, + -0.001295606605708599, + 0.026633528992533684, + -0.01753336563706398, + 0.06517314910888672, + 0.009562328457832336, + 0.001202161773107946, + 0.06457757949829102, + 0.0090591199696064, + 0.026839464902877808, + 0.06940041482448578, + -0.06883049011230469, + -0.08096461743116379, + 0.017309095710515976, + 0.00798952765762806, + 0.030694887042045593, + 0.071352019906044, + 0.026322495192289352, + -0.02666120044887066, + 0.12993334233760834, + 0.031112438067793846, + -0.018255699425935745, + 0.0215463750064373, + -0.1017928346991539, + 0.11137932538986206, + 0.08648931980133057, + -0.022003335878252983, + 0.043162472546100616, + -0.05501672253012657, + 0.07904902845621109, + 0.056521736085414886, + -0.13755005598068237, + -0.07910493016242981, + 0.03956972807645798, + 0.03755289316177368, + -0.01744893193244934, + 0.13272981345653534, + -0.0025059031322598457, + 0.044972460716962814, + 0.10937439650297165, + -0.08695052564144135, + -0.0469745509326458, + -0.013501530513167381, + 0.05740271136164665, + -0.08264053612947464, + 0.058961138129234314, + 0.03909563645720482, + -0.013607785105705261, + 0.00901024229824543, + 0.08045458793640137, + -0.02897498570382595, + 0.01139548234641552, + 0.006714156828820705, + -0.06346580386161804, + 0.019933141767978668, + -0.051351290196180344, + -0.01442717295140028, + 0.04159499332308769, + 0.045513030141592026, + 0.045417528599500656, + -0.010866502299904823, + -0.05763040482997894, + -0.13829928636550903, + 0.013783352449536324, + 0.025993984192609787, + 0.07238723337650299, + -0.003234532428905368, + -0.034839000552892685, + -0.04261712729930878, + -0.0482478104531765, + 0.0030171263497322798, + -0.01660945639014244, + 0.06876339763402939, + -0.026470273733139038, + 0.007127915974706411, + 0.07978830486536026, + 0.014804217964410782, + -0.007156125735491514, + -0.03436718136072159, + -0.05446624383330345, + 0.0011916083749383688, + 0.050004031509160995, + -0.06330541521310806, + -0.06627877056598663, + 0.0073267011903226376, + 0.05267653614282608, + -0.014921151101589203, + 0.0441112220287323, + 0.04526621103286743, + 0.02363879606127739, + 0.027524542063474655, + -0.062001269310712814, + 0.017758777365088463, + -0.11300303786993027, + -0.08872376382350922, + 0.0010788652580231428, + 0.00575434323400259, + -0.0014929225435480475, + 0.06600398570299149, + 0.010372169315814972, + 0.05465450882911682, + -0.011330771259963512, + -0.07699830830097198, + -0.10192805528640747, + 0.06034308671951294, + 0.07360713183879852, + 0.013644381426274776, + 0.058742474764585495, + 0.05997880920767784, + -0.031363487243652344, + 0.06095287948846817, + 0.03652942180633545, + 0.10963128507137299, + -0.014189288020133972, + 0.0131861362606287, + -0.07598196715116501, + 0.07306838035583496, + 0.08477163314819336, + -0.07896190881729126, + -0.06811490654945374, + -0.01841197907924652, + -0.07801651209592819, + 0.05320187658071518, + -0.019152428954839706, + 0.004496054723858833, + 0.03913014009594917, + -0.006063781213015318, + -0.12831251323223114, + -0.06573736667633057, + 0.08094042539596558, + -0.0684390664100647, + -0.010018846951425076, + -0.0766594186425209, + 0.04366012662649155, + 0.11602740734815598, + 0.0430748425424099, + -0.01758422516286373, + -0.024480555206537247, + 0.05124711990356445, + -0.04431149363517761, + 0.008394647389650345, + 0.046755388379096985, + 0.03474678844213486, + -0.10223262757062912, + 0.0017594726523384452, + -0.09047816693782806, + 0.026896348223090172, + -0.058137476444244385, + 0.13104358315467834, + 0.0028527029789984226, + -0.05642174184322357, + -0.09072732925415039, + 0.04773995280265808, + -0.011190174147486687, + 0.05739889666438103, + 0.019390763714909554, + 0.05372073873877525, + 0.056175973266363144, + -0.0820341631770134, + 0.11841245740652084, + 0.0530717596411705, + -0.047464609146118164, + -0.06119228154420853, + -0.03717399388551712, + -0.03339669108390808, + 0.024605661630630493, + 0.009874189272522926, + -0.07432351261377335, + -0.03453310579061508, + 0.014192461967468262, + -0.015464729629456997, + 0.0650659054517746, + 0.13560165464878082, + 0.04126901552081108, + -0.12902331352233887 + ] + }, + "p244_404.wav": { + "name": "p244", + "embedding": [ + 0.06419070810079575, + 0.03918735682964325, + 0.018891897052526474, + -0.024760231375694275, + -0.0044189319014549255, + 0.061069127172231674, + -0.12353234738111496, + 0.11402365565299988, + -0.01301989983767271, + 0.0726519376039505, + -0.074640654027462, + 0.07257071137428284, + 0.013570642098784447, + -0.16925662755966187, + -0.016988839954137802, + 0.0402834415435791, + -0.033827416598796844, + 0.0018439119448885322, + -0.05225320905447006, + -0.023063872009515762, + 0.007399502210319042, + 0.035385504364967346, + 0.019246816635131836, + -0.019139209762215614, + 0.03528938814997673, + 0.051592618227005005, + 0.008245360106229782, + 0.030118336901068687, + -0.00805277656763792, + -0.02223818376660347, + -0.0024345237761735916, + 0.07700461149215698, + -0.047400347888469696, + -0.023779628798365593, + 0.07173925638198853, + -0.01097535528242588, + 0.024193670600652695, + -0.08065156638622284, + -0.03758898377418518, + 0.04157523065805435, + -0.07463541626930237, + 0.07886776328086853, + 0.05739801377058029, + 0.017474792897701263, + 0.030995994806289673, + 0.04302537068724632, + 0.0185097549110651, + -0.06454786658287048, + -0.08851965516805649, + 0.14850017428398132, + 0.03784302622079849, + 0.02680383250117302, + -0.09480651468038559, + -0.02694118022918701, + 0.06176032871007919, + -0.00958809070289135, + -0.05352582037448883, + -0.018147751688957214, + 0.052148692309856415, + 0.10750074684619904, + -0.002527217147871852, + -0.03069782257080078, + 0.034207865595817566, + 0.07760173082351685, + 0.02324984036386013, + 0.043913256376981735, + 0.10409825295209885, + 0.09321358054876328, + -0.0036606565117836, + 0.02431890368461609, + 0.05929890275001526, + 0.030513204634189606, + 0.05708102881908417, + -0.0316973477602005, + 0.03701934963464737, + 7.894884038250893e-05, + -0.030291549861431122, + -0.024996792897582054, + -0.02041189931333065, + -0.0008447397849522531, + 0.04634835943579674, + 0.033863142132759094, + 0.02291455678641796, + 0.06275485455989838, + -0.04199187085032463, + 0.04416771978139877, + 0.010940715670585632, + 0.041617464274168015, + 0.06766355037689209, + 0.039431121200323105, + 0.029266422614455223, + 0.0252792090177536, + -0.07499801367521286, + -0.08459967374801636, + 0.02049117721617222, + 0.0074583785608410835, + -0.001809485605917871, + 0.027394866570830345, + 0.0390801802277565, + -0.02715630829334259, + 0.10793386399745941, + 0.0133076636120677, + -0.013719815760850906, + 0.016668228432536125, + -0.07613083720207214, + 0.07515460252761841, + 0.07862353324890137, + -0.024481292814016342, + 0.047744035720825195, + -0.05333958566188812, + 0.034810639917850494, + 0.05320924520492554, + -0.11187504231929779, + -0.043811604380607605, + 0.04977675899863243, + 0.01474270410835743, + 0.03419841453433037, + 0.1369720995426178, + -0.008887114934623241, + 0.03133609890937805, + 0.059311773627996445, + -0.07049624621868134, + -0.02666119858622551, + 0.01818070188164711, + 0.023506611585617065, + -0.03075127862393856, + 0.0290546715259552, + 0.01889539323747158, + 0.02487761899828911, + -0.03740197792649269, + 0.06636646389961243, + 0.008534574881196022, + 0.0024177252780646086, + -0.07108943164348602, + 0.04890812560915947, + 0.04983970522880554, + -0.00212167389690876, + -0.029463589191436768, + 0.011981675401329994, + 0.05491115152835846, + 0.005321655422449112, + 0.044630855321884155, + -0.05937693640589714, + -0.11505681276321411, + -0.0185006782412529, + -0.0015292007010430098, + 0.07068949192762375, + -0.025997823104262352, + -0.01903698779642582, + -0.07173436880111694, + -0.0023146148305386305, + -0.023053180426359177, + -0.013655908405780792, + 0.03999319300055504, + 0.05996199697256088, + -0.02522510103881359, + 0.07778358459472656, + -0.017628181725740433, + 0.02842363715171814, + -0.011958295479416847, + -0.024478040635585785, + 0.00924835167825222, + 0.04183658957481384, + -0.01981481909751892, + -0.06968905031681061, + -0.0037176895420998335, + -0.03756232187151909, + -0.004527131095528603, + 0.017100661993026733, + 0.013365581631660461, + 0.005815163254737854, + -0.016466617584228516, + -0.10252156108617783, + 0.014748352579772472, + -0.09593423455953598, + -0.050770483911037445, + 0.04162231832742691, + 0.01304446067661047, + -0.024725615978240967, + 0.08434300124645233, + 0.019340988248586655, + 0.04165211319923401, + -0.0411079041659832, + -0.060147762298583984, + -0.016400877386331558, + 0.04762309044599533, + 0.0675269216299057, + -0.017000969499349594, + 0.014390714466571808, + 0.010720767080783844, + 0.004498566035181284, + 0.04444005340337753, + 0.05338844656944275, + 0.053616635501384735, + -0.023164525628089905, + -0.00481156911700964, + -0.0004819085297640413, + 0.11780031770467758, + 0.009947620332241058, + -0.03936826437711716, + -0.04667234420776367, + 0.032626569271087646, + -0.04150997847318649, + 0.006006588693708181, + 0.015647653490304947, + 0.03623216226696968, + 0.03108939155936241, + -0.013885598629713058, + -0.0617140494287014, + -0.04628079757094383, + 0.028406960889697075, + -0.07054746150970459, + -0.018730072304606438, + -0.06522786617279053, + 0.042094405740499496, + 0.1134909987449646, + 0.00495230033993721, + 0.002252227393910289, + -0.03561714291572571, + -0.0019150078296661377, + -0.021867990493774414, + -0.037140652537345886, + 0.0005945439334027469, + 0.035443346947431564, + -0.0881577655673027, + 0.006026825867593288, + -0.05300630256533623, + 0.0634591281414032, + -0.022257929667830467, + 0.07022680342197418, + 0.04091481864452362, + -0.046875618398189545, + -0.07154149562120438, + -0.005084961652755737, + 0.013852670788764954, + 0.04405937343835831, + 0.012489140033721924, + 0.0331738218665123, + 0.05204693228006363, + -0.040726177394390106, + 0.0817209854722023, + 0.03359841927886009, + -0.04797407612204552, + -0.05069175362586975, + -0.03561512380838394, + -0.00046914443373680115, + 0.016547078266739845, + -0.008146703243255615, + -0.04674345254898071, + 0.01621292345225811, + 0.030225535854697227, + -0.0018810307374224067, + 0.017799293622374535, + 0.0843789204955101, + 0.02765839919447899, + -0.09700661152601242 + ] + }, + "p244_049.wav": { + "name": "p244", + "embedding": [ + 0.0475463829934597, + 0.09513473510742188, + -0.006068339571356773, + 0.021098626777529716, + -0.04044165834784508, + 0.04198088496923447, + -0.14156155288219452, + 0.13876782357692719, + -0.03534679114818573, + 0.13478629291057587, + -0.09711000323295593, + 0.12022916972637177, + -0.02514369785785675, + -0.20709945261478424, + -0.023456240072846413, + 0.053956516087055206, + -0.0449865385890007, + -0.027352971956133842, + -0.008817016147077084, + -0.024683747440576553, + 0.048486825078725815, + 0.044479403644800186, + 0.00867047905921936, + 0.022702138870954514, + 0.0016932659782469273, + 0.07166951894760132, + 0.0005249902023933828, + 0.04029426351189613, + 0.02112444117665291, + -0.029109513387084007, + -0.04090667515993118, + 0.10708269476890564, + -0.03454422950744629, + 0.0020850077271461487, + 0.0637882649898529, + -0.004405135754495859, + -0.004943423438817263, + -0.05423498898744583, + -0.01772003062069416, + -0.006364059634506702, + -0.07122121751308441, + 0.059955839067697525, + 0.03056979738175869, + -0.02366606704890728, + 0.0536670908331871, + 0.047796089202165604, + -0.009355583228170872, + -0.05812649801373482, + -0.10274310410022736, + 0.15152902901172638, + 0.08465466648340225, + -0.011770433746278286, + -0.04562000185251236, + -0.05469464883208275, + 0.09929494559764862, + 5.6900560593931004e-05, + -0.10337064415216446, + -0.03899132087826729, + 0.0991852805018425, + 0.1506568193435669, + -0.031215783208608627, + -0.029513003304600716, + 0.039236750453710556, + 0.12928339838981628, + 0.03271016851067543, + 0.10827409476041794, + 0.06029234826564789, + 0.10210902988910675, + -0.01437874510884285, + 0.01629011332988739, + 0.06418173760175705, + 0.06052457541227341, + 0.05344700813293457, + -0.0374826155602932, + 0.019597206264734268, + 0.0101812444627285, + -0.032910238951444626, + 0.01618269644677639, + -0.014839684590697289, + -0.013028068467974663, + -0.008910229429602623, + -0.006597636267542839, + -0.012438446283340454, + 0.00730512198060751, + -0.025430859997868538, + 0.05521159619092941, + 0.039102017879486084, + 0.003691272111609578, + 0.06712035089731216, + 0.023203451186418533, + 0.012753480114042759, + 0.06530016660690308, + -0.07615182548761368, + -0.08094727247953415, + 0.03181953728199005, + -0.002851153491064906, + 0.004683312028646469, + 0.09019245207309723, + 0.05108082294464111, + -0.01864493452012539, + 0.13329198956489563, + 0.03792903572320938, + -0.0014252597466111183, + 0.04303397238254547, + -0.10739202797412872, + 0.1354880928993225, + 0.07648725807666779, + -0.04246428236365318, + 0.04589829221367836, + -0.05546974018216133, + 0.08001882582902908, + 0.08458433300256729, + -0.14827829599380493, + -0.04540344327688217, + 0.044439516961574554, + 0.02248564176261425, + -0.029364116489887238, + 0.12351515144109726, + -0.006620639003813267, + 0.023162584751844406, + 0.11297736316919327, + -0.08203953504562378, + -0.07665301859378815, + -0.04098742455244064, + 0.046205732971429825, + -0.11254053562879562, + 0.07936838269233704, + 0.052473943680524826, + -0.006090579088777304, + 0.01039053127169609, + 0.0940728634595871, + -0.03134115785360336, + -0.0054808794520795345, + -0.0039880163967609406, + -0.03030667081475258, + 0.01616595685482025, + -0.047957442700862885, + 0.011981154792010784, + 0.014473007060587406, + 0.023792922496795654, + 0.03315510228276253, + 0.0068056886084377766, + -0.036574095487594604, + -0.11832774430513382, + 0.018171975389122963, + 0.042477816343307495, + 0.08915697038173676, + 0.013131125830113888, + -0.03833124414086342, + -0.044536832720041275, + -0.06207020580768585, + 0.00030853203497827053, + -0.022233178839087486, + 0.06557407975196838, + -0.02755184844136238, + 0.006208732724189758, + 0.08769842982292175, + 0.027013512328267097, + 0.0049041141755878925, + -0.05983532592654228, + -0.041174035519361496, + 0.01868407614529133, + 0.03740725666284561, + -0.08608248829841614, + -0.07837054133415222, + -0.00900968722999096, + 0.03450753912329674, + -0.019652539864182472, + 0.0420735627412796, + 0.034488264471292496, + 0.024492621421813965, + 0.023953653872013092, + -0.09959570318460464, + 0.019592974334955215, + -0.11650485545396805, + -0.08623222261667252, + -0.027420461177825928, + 0.0019349019275978208, + -0.0024711433798074722, + 0.06545230746269226, + -0.009740003384649754, + 0.035744477063417435, + -0.013761785812675953, + -0.0660208910703659, + -0.08851736038923264, + 0.0549754835665226, + 0.08370275050401688, + 0.006444267462939024, + 0.05500565096735954, + 0.04012533277273178, + -0.05145742744207382, + 0.05105600506067276, + 0.033011242747306824, + 0.12542292475700378, + -0.010914579965174198, + 0.02344227023422718, + -0.05586374178528786, + 0.06902960687875748, + 0.08258596062660217, + -0.08731798082590103, + -0.07631795108318329, + -0.024579746648669243, + -0.06024374067783356, + 0.04319954290986061, + -0.016182495281100273, + -0.000923074665479362, + 0.0014819487696513534, + -0.008515158668160439, + -0.089241623878479, + -0.07614150643348694, + 0.057811181992292404, + -0.07190749794244766, + -0.019181611016392708, + -0.09324660897254944, + 0.05874720588326454, + 0.0962495282292366, + 0.033562399446964264, + -0.04117560759186745, + -0.027032088488340378, + 0.03990776091814041, + -0.045605093240737915, + 0.0015980829484760761, + 0.04379775747656822, + 0.05125972256064415, + -0.11862359941005707, + 0.0056625958532094955, + -0.08322019129991531, + 0.06070470064878464, + -0.07032650709152222, + 0.14923729002475739, + 0.008735728450119495, + -0.05821780860424042, + -0.08965730667114258, + 0.04144864156842232, + 0.006865859497338533, + 0.03835439682006836, + 0.03526514396071434, + 0.04721233993768692, + 0.02700684405863285, + -0.07600522041320801, + 0.1189938336610794, + 0.029594114050269127, + -0.019516535103321075, + -0.05715472251176834, + -0.04561162739992142, + -0.04984667897224426, + 0.017764806747436523, + 0.025110041722655296, + -0.10677909851074219, + -0.049841295927762985, + 0.03037760965526104, + -0.01036197878420353, + 0.07492029666900635, + 0.14541363716125488, + 0.037221912294626236, + -0.11960726231336594 + ] + }, + "p244_351.wav": { + "name": "p244", + "embedding": [ + 0.06704145669937134, + 0.05823506787419319, + 0.030241966247558594, + -0.03705039620399475, + 0.006909685209393501, + 0.0932241901755333, + -0.06810291856527328, + 0.06883310526609421, + 0.00155550055205822, + 0.04379822313785553, + -0.08923117816448212, + 0.04777928814291954, + 0.008395617827773094, + -0.136733740568161, + -0.01879725605249405, + 0.046538516879081726, + -0.05091383308172226, + 0.02822810597717762, + -0.06763501465320587, + -0.024408429861068726, + -0.010235240682959557, + 0.02395259216427803, + 0.059341199696063995, + -0.03244274854660034, + 0.0438317134976387, + 0.03897450119256973, + 0.0065063368529081345, + 0.02308381348848343, + -0.006782982498407364, + -0.03565731644630432, + -0.019158361479640007, + 0.0782981887459755, + -0.026104524731636047, + -0.02209126204252243, + 0.05125085264444351, + 0.009704766795039177, + 0.059460680931806564, + -0.10379713773727417, + -0.034776072949171066, + 0.043902166187763214, + -0.06420910358428955, + 0.0628296360373497, + 0.049240801483392715, + 0.0029306765645742416, + 0.032963827252388, + 0.004978878889232874, + -0.0046936082653701305, + -0.061599548906087875, + -0.07922981679439545, + 0.1526414155960083, + 0.030769091099500656, + 0.04064822569489479, + -0.08091539889574051, + -0.018084930256009102, + 0.048893265426158905, + -0.010109447874128819, + -0.04269569739699364, + -0.0027581676840782166, + 0.0360928438603878, + 0.08483288437128067, + 0.039877187460660934, + -0.007614978589117527, + 0.040842268615961075, + 0.064113549888134, + -0.014371966943144798, + 0.026534665375947952, + 0.09887561202049255, + 0.06561963260173798, + 0.022939587011933327, + 0.03532765805721283, + 0.05432305485010147, + 0.017604021355509758, + 0.05098516866564751, + -0.024919988587498665, + 0.03871893137693405, + -0.02850848063826561, + -0.03807409852743149, + -0.019279640167951584, + -0.013364613056182861, + -0.01836494728922844, + 0.067538321018219, + 0.028540581464767456, + 0.018481124192476273, + 0.041880302131175995, + -0.04994499683380127, + 0.02163398265838623, + -0.024133171886205673, + 0.08421847969293594, + 0.07045003026723862, + 0.044835299253463745, + 0.030816011130809784, + -0.006503632292151451, + -0.022939639165997505, + -0.09851651638746262, + 0.009312189184129238, + 0.032479122281074524, + -0.013365810737013817, + -0.002710772678256035, + 0.02432195097208023, + -0.04618127644062042, + 0.08671192824840546, + 0.0036795511841773987, + -0.006280895788222551, + 0.004515236243605614, + -0.06504005193710327, + 0.043493784964084625, + 0.0792287290096283, + 0.00462745688855648, + 0.05508670583367348, + -0.020342670381069183, + 0.03571278601884842, + 0.07519960403442383, + -0.08603756874799728, + -0.021520232781767845, + 0.011256717145442963, + -0.007585185579955578, + 0.07266493886709213, + 0.08963727951049805, + 0.008370034396648407, + 0.026655040681362152, + 0.041409529745578766, + -0.073029063642025, + -0.021643180400133133, + 0.03481026738882065, + -0.005380101501941681, + 0.0035184770822525024, + -0.013319611549377441, + 0.0224656630307436, + 0.03054683282971382, + -0.07471266388893127, + 0.034888170659542084, + 0.01191724743694067, + 0.015840142965316772, + -0.07374249398708344, + 0.03549838066101074, + 0.0224164929240942, + -0.017805660143494606, + -0.04488350823521614, + 0.03473108261823654, + 0.0675075501203537, + -0.016258355230093002, + 0.05133683979511261, + -0.06452854722738266, + -0.0906495749950409, + -0.03532847389578819, + -0.013745943084359169, + 0.03072349727153778, + -0.00711077218875289, + -0.020660752430558205, + -0.0649898573756218, + 0.03042362444102764, + 0.00642771553248167, + -0.027265753597021103, + 0.028220463544130325, + 0.09902530908584595, + -0.05122558772563934, + 0.060032181441783905, + -0.035985250025987625, + 0.01873202808201313, + -0.015580343082547188, + -0.0337342731654644, + 0.02912384457886219, + 0.027779292315244675, + -0.000771593302488327, + -0.06464264541864395, + 0.014612175524234772, + -0.0725935697555542, + -0.004106349777430296, + -0.0010228119790554047, + 0.02510572038590908, + -0.013170212507247925, + -0.03557687625288963, + -0.08968241512775421, + 0.006630235817283392, + -0.06688438355922699, + -0.04054092988371849, + 0.07745760679244995, + 0.014819085597991943, + -0.010020339861512184, + 0.09203378856182098, + 0.03292340785264969, + 0.0066065192222595215, + -0.05413554608821869, + -0.04648738354444504, + 0.02979138121008873, + 0.05529949814081192, + 0.050144582986831665, + 0.019709505140781403, + 0.022195138037204742, + -0.012681165710091591, + 0.012812916189432144, + 0.04796817898750305, + 0.028981631621718407, + 0.034979429095983505, + -0.027928978204727173, + -0.030164793133735657, + 0.02286100760102272, + 0.08644644170999527, + -0.0002261437475681305, + -0.03957487642765045, + -0.034387193620204926, + 0.02911531738936901, + -0.02363932505249977, + 0.016472451388835907, + 0.012730593793094158, + 0.019347818568348885, + 0.04383888095617294, + -0.040693968534469604, + -0.047640323638916016, + -0.06191657856106758, + 0.03659037500619888, + -0.04567191004753113, + -0.031197071075439453, + -0.026576252654194832, + 0.04854495823383331, + 0.08480000495910645, + -0.020679092034697533, + 0.0015879161655902863, + 0.013026267290115356, + -0.019762394949793816, + -0.0332379974424839, + -0.05657337233424187, + -0.024955058470368385, + 0.025027822703123093, + -0.07732786983251572, + 0.023637311533093452, + -0.05580015480518341, + 0.059601880609989166, + 0.00220605731010437, + 0.06466390192508698, + 0.04856862872838974, + -0.02864808402955532, + -0.06842250376939774, + 0.01873037777841091, + -0.001178903505206108, + 0.028635935857892036, + 0.0026000821962952614, + 0.00303029827773571, + 0.05007866397500038, + -0.05784064158797264, + 0.048221755772829056, + 0.024801796302199364, + -0.053993869572877884, + -0.04294169321656227, + -0.002083864063024521, + -0.0129734231159091, + 0.005749902687966824, + -0.04221602529287338, + -0.026547254994511604, + 0.03614458069205284, + 0.026439839974045753, + 0.03091368079185486, + 0.009394442662596703, + 0.0422995388507843, + 0.005992533639073372, + -0.036101650446653366 + ] + }, + "p244_184.wav": { + "name": "p244", + "embedding": [ + 0.043890755623579025, + 0.08505771309137344, + -0.014418607577681541, + 0.05119144171476364, + -0.07487911731004715, + 0.039904240518808365, + -0.0789528340101242, + 0.12820200622081757, + -0.038454413414001465, + 0.09622292220592499, + -0.07556413859128952, + 0.167055144906044, + -0.010330495424568653, + -0.17147041857242584, + -0.07540953159332275, + 0.03999222815036774, + -0.026614608243107796, + -0.028791245073080063, + 0.015424036420881748, + -0.02673296444118023, + 0.0702357217669487, + 0.08003674447536469, + 0.07933282852172852, + 0.018238360062241554, + 0.03354933112859726, + 0.07591891288757324, + 0.03875710442662239, + 0.09171140193939209, + 0.053987402468919754, + -0.09499023109674454, + -0.0666663721203804, + 0.08714472502470016, + -0.0329500250518322, + 0.012769694440066814, + 0.021275892853736877, + -0.019346900284290314, + 0.0480443574488163, + -0.043350137770175934, + -0.03835352882742882, + 0.027153311297297478, + -0.02492375485599041, + 0.06955984979867935, + 0.006105436943471432, + -0.025699805468320847, + 0.0529632568359375, + -0.005154609214514494, + -0.023983687162399292, + -0.03335484117269516, + -0.12110687792301178, + 0.16359923779964447, + 0.05461646988987923, + 0.031083887442946434, + -0.08836103975772858, + -0.08555283397436142, + 0.11411811411380768, + -0.02772662229835987, + -0.07916954159736633, + 0.00560044776648283, + 0.03567344322800636, + 0.16897299885749817, + 0.0020335703156888485, + -0.04417891427874565, + 0.0477592870593071, + 0.09379659593105316, + 0.04681135341525078, + 0.04155230149626732, + 0.09959916025400162, + 0.057315435260534286, + -0.008235082030296326, + 0.02711101807653904, + 0.018748415634036064, + 0.12074065953493118, + 0.027918657287955284, + -0.006959917023777962, + 0.0006813450600020587, + 0.023227302357554436, + -0.03171291947364807, + 0.016142068430781364, + -0.01406625472009182, + -0.0037790213245898485, + -0.019053807482123375, + 0.01949171908199787, + 0.015480420552194118, + -0.009981020353734493, + -0.037590038031339645, + 0.08450647443532944, + -0.02401881292462349, + -0.006191688124090433, + 0.04215914383530617, + 0.006862887181341648, + -0.011351067572832108, + 0.051584187895059586, + -0.06960795819759369, + -0.1019834503531456, + 0.001985696842893958, + 0.013733861967921257, + 0.0297338105738163, + 0.09063045680522919, + 0.03341888636350632, + -0.03361824154853821, + 0.11747490614652634, + 0.06494419276714325, + -0.0026375590823590755, + 0.01859324239194393, + -0.08523046225309372, + 0.07872146368026733, + 0.12975522875785828, + 0.006621855776757002, + 0.07833165675401688, + -0.03364546597003937, + 0.09074798971414566, + 0.0536341667175293, + -0.14509478211402893, + -0.08406513184309006, + 0.003765242639929056, + 0.03314562141895294, + 0.04313020408153534, + 0.07648768275976181, + -0.0283002108335495, + 0.06041765585541725, + 0.09415999054908752, + -0.0854165181517601, + -0.046685054898262024, + -0.053394865244627, + 0.057289306074380875, + -0.06280698627233505, + 0.06906235218048096, + 0.045254096388816833, + 0.0013116456102579832, + -0.021103205159306526, + 0.038884151726961136, + -0.030252229422330856, + 0.007258565630763769, + 0.05298084393143654, + -0.07948058098554611, + -0.012687699869275093, + -0.05962829664349556, + -0.01423613727092743, + 0.09236863255500793, + 0.04087842255830765, + 0.04636557027697563, + 0.017751868814229965, + -0.0312421265989542, + -0.12579035758972168, + 0.0071611590683460236, + 0.04106401652097702, + 0.03752791881561279, + -0.009522752836346626, + -0.08183171600103378, + -0.04686363786458969, + -0.05321026220917702, + 0.038066260516643524, + 0.0400669164955616, + 0.07196805626153946, + -0.036398086696863174, + 0.03303104639053345, + 0.0691780373454094, + 0.01096411608159542, + -0.025769485160708427, + -0.015307455323636532, + -0.02977103739976883, + -0.009425358846783638, + 0.03558971732854843, + -0.05349878594279289, + -0.09915625303983688, + -0.01775696873664856, + 0.02489335462450981, + -0.027579359710216522, + 0.04895031079649925, + 0.048750706017017365, + -0.0001891324936877936, + 0.04464235529303551, + -0.04382289573550224, + -0.006914936471730471, + -0.1152111068367958, + -0.06727608293294907, + -0.024730389937758446, + -0.007135397754609585, + -0.03739252686500549, + 0.07210288196802139, + 0.06634336709976196, + 0.05646740645170212, + 0.010103200562298298, + -0.04375826567411423, + -0.07646053284406662, + 0.03941487893462181, + 0.06055415794253349, + 0.06438817828893661, + 0.0835215374827385, + 0.06230328977108002, + -0.022786781191825867, + 0.12653151154518127, + 0.07117488235235214, + 0.05934397131204605, + -0.010505910031497478, + 0.005181418266147375, + -0.05573165789246559, + 0.06675601750612259, + 0.0884820744395256, + -0.09574930369853973, + -0.11331278085708618, + -0.06252880394458771, + -0.1048608049750328, + 0.08730683475732803, + -0.00012744062405545264, + 0.02955835498869419, + 0.046797964721918106, + 0.0008930893382057548, + -0.11105445772409439, + -0.0872381404042244, + 0.09520980715751648, + -0.02480298839509487, + -0.03677918016910553, + -0.04398595541715622, + 0.023222243413329124, + 0.11804411560297012, + 4.9878188292495906e-05, + 0.013271125964820385, + -0.017938243225216866, + 0.04117550700902939, + -0.05391534045338631, + -0.03508086875081062, + 0.04264451563358307, + 0.006528493016958237, + -0.09303133934736252, + 0.027545975521206856, + -0.07321067899465561, + 0.05899357423186302, + -0.05544789507985115, + 0.13341733813285828, + -0.018868740648031235, + -0.054445359855890274, + -0.09287986159324646, + 0.08792873471975327, + -0.031962037086486816, + 0.046662312000989914, + 0.033910978585481644, + 0.03124554082751274, + 0.008196335285902023, + -0.10700886696577072, + 0.10969391465187073, + 0.05273907631635666, + -0.09013558179140091, + -0.08190502971410751, + -0.05302773043513298, + -0.011819390580058098, + 0.027898680418729782, + 0.02523074485361576, + -0.034925032407045364, + -0.030958760529756546, + -0.004015491809695959, + -0.0022458883468061686, + 0.06051085889339447, + 0.13358932733535767, + 0.02728516235947609, + -0.10576461255550385 + ] + }, + "p244_002.wav": { + "name": "p244", + "embedding": [ + 0.02358773536980152, + 0.07826605439186096, + -0.027543067932128906, + 0.031680479645729065, + -0.07373817265033722, + 0.050326019525527954, + -0.12228147685527802, + 0.12812471389770508, + -0.03913921117782593, + 0.12552094459533691, + -0.063118577003479, + 0.1157759428024292, + -0.046507250517606735, + -0.18721237778663635, + 0.0004700678982771933, + 0.07076182961463928, + -0.028337620198726654, + -0.051535118371248245, + -0.025464870035648346, + -0.03454870358109474, + 0.029593035578727722, + 0.029509365558624268, + 0.003851971821859479, + 0.02604139782488346, + 0.015128349885344505, + 0.08368734270334244, + -0.02362710051238537, + 0.0106833316385746, + -0.0232837051153183, + -0.03319923207163811, + -0.045803382992744446, + 0.08455102145671844, + -0.06445177644491196, + 0.011724996380507946, + 0.047038301825523376, + 0.0013751982478424907, + -0.015428800135850906, + -0.04209304228425026, + -0.01663612760603428, + -0.00877833366394043, + -0.08127505332231522, + 0.07297591120004654, + 0.02443988062441349, + -0.016256440430879593, + 0.04076751321554184, + 0.017612911760807037, + -0.016523662954568863, + -0.031120549887418747, + -0.11199674755334854, + 0.14118105173110962, + 0.07491213083267212, + -0.01583864912390709, + -0.058698512613773346, + -0.060395874083042145, + 0.10201830416917801, + -0.008420097641646862, + -0.11700267344713211, + -0.04858531057834625, + 0.08741970360279083, + 0.1385299414396286, + -0.03007463552057743, + -0.032490409910678864, + 0.018984273076057434, + 0.10844701528549194, + 0.056400366127491, + 0.09863264113664627, + 0.054077714681625366, + 0.11717013269662857, + -0.039178911596536636, + -0.016189374029636383, + 0.07102316617965698, + 0.07059231400489807, + 0.07944108545780182, + -0.011055003851652145, + 0.009577132761478424, + 0.008006935007870197, + -0.013070395216345787, + 0.0075176190584897995, + -0.025560803711414337, + -0.025546584278345108, + -0.02846902422606945, + -0.010807862505316734, + 0.001602032221853733, + 0.008516959846019745, + -0.005555284209549427, + 0.05008368939161301, + 0.07965726405382156, + -0.013095414265990257, + 0.06566435098648071, + 0.03424368053674698, + -0.025594614446163177, + 0.08266881108283997, + -0.09044355154037476, + -0.04109787940979004, + 0.02378132753074169, + 0.0014220110606402159, + 0.02196289598941803, + 0.09291413426399231, + 0.04062889516353607, + -0.005350210703909397, + 0.1164693683385849, + 0.030876826494932175, + 0.012760510668158531, + 0.02262270823121071, + -0.09269329905509949, + 0.1272474229335785, + 0.07751910388469696, + -0.04080330953001976, + 0.041031546890735626, + -0.03814410790801048, + 0.07047991454601288, + 0.07510924339294434, + -0.12477375566959381, + -0.04994071647524834, + 0.01527847908437252, + 0.015763960778713226, + -0.03540327027440071, + 0.13015125691890717, + -0.0015134529676288366, + 0.034743472933769226, + 0.12304578721523285, + -0.09818711876869202, + -0.06383582204580307, + -0.010296138934791088, + 0.033754292875528336, + -0.09067896753549576, + 0.056689921766519547, + 0.05938276648521423, + 0.0013965866528451443, + 0.040264323353767395, + 0.08552718162536621, + -0.015032759867608547, + 0.0052743032574653625, + 0.017005007714033127, + -0.047505784779787064, + -0.0034433994442224503, + -0.01980522647500038, + 0.003273322246968746, + 0.06160595640540123, + 0.021210571750998497, + 0.05466904863715172, + -0.017585575580596924, + -0.009554693475365639, + -0.13104790449142456, + 0.02533816546201706, + 0.05835263431072235, + 0.08430012315511703, + -0.013944342732429504, + -0.024379678070545197, + -0.03711916506290436, + -0.08951502293348312, + 0.014764171093702316, + -0.00650345254689455, + 0.078699491918087, + -0.04668764770030975, + -0.004294841084629297, + 0.09571234881877899, + 0.0528540164232254, + -0.0220005065202713, + -0.07365991175174713, + -0.04793429747223854, + -0.013625634834170341, + 0.05680353194475174, + -0.09912532567977905, + -0.08124546706676483, + -0.019717229530215263, + 0.05668644234538078, + -0.011334139853715897, + 0.07291688770055771, + 0.05611800402402878, + 0.029576651751995087, + 0.01304707396775484, + -0.0732540637254715, + 0.015658125281333923, + -0.09017372131347656, + -0.08548907935619354, + -0.017555225640535355, + -0.027347825467586517, + -0.006128217093646526, + 0.06830267608165741, + 0.012454835698008537, + 0.04593104496598244, + -0.023782506585121155, + -0.06570237874984741, + -0.09388864040374756, + 0.05440802127122879, + 0.04032035171985626, + -0.01430125255137682, + 0.04942398518323898, + 0.07252196967601776, + -0.07328368723392487, + 0.042637377977371216, + 0.058200906962156296, + 0.1299072802066803, + -0.04843887686729431, + 0.057595498859882355, + -0.05590197071433067, + 0.07234153151512146, + 0.0904366672039032, + -0.08401448279619217, + -0.07548040896654129, + -0.039046335965394974, + -0.05667746067047119, + 0.04639512300491333, + -0.04596441984176636, + -0.0032003677915781736, + 0.0073587168008089066, + 0.001806933432817459, + -0.0926545113325119, + -0.08737234771251678, + 0.07453086972236633, + -0.051295891404151917, + 0.006884843576699495, + -0.09308046847581863, + 0.043042056262493134, + 0.06748859584331512, + 0.05167599022388458, + -0.03423576429486275, + 0.014277677051723003, + 0.06291401386260986, + -0.015866756439208984, + 0.02137969434261322, + 0.08569542318582535, + 0.046959757804870605, + -0.0943174958229065, + -0.0365343876183033, + -0.0801193118095398, + 0.06505569815635681, + -0.03039010800421238, + 0.1565544605255127, + 0.006734907627105713, + -0.04568962752819061, + -0.06981738656759262, + 0.02863404154777527, + -0.0015778010711073875, + 0.04543830826878548, + 0.0291912741959095, + 0.07866893708705902, + 0.03238718956708908, + -0.026903148740530014, + 0.13715890049934387, + 0.04452521353960037, + -0.03350624442100525, + -0.044210076332092285, + -0.04607298970222473, + -0.05255250632762909, + 0.022222690284252167, + 0.008832775056362152, + -0.10808197408914566, + -0.015592294745147228, + 0.02139430120587349, + -5.829939618706703e-05, + 0.051591672003269196, + 0.1530590057373047, + 0.08657270669937134, + -0.10864903032779694 + ] + }, + "p244_185.wav": { + "name": "p244", + "embedding": [ + 0.061931438744068146, + 0.0943182036280632, + 0.017586873844265938, + -0.016560431569814682, + -0.01549588143825531, + 0.06860578060150146, + -0.1735783964395523, + 0.10738663375377655, + -0.06024941802024841, + 0.1527029573917389, + -0.10229989886283875, + 0.0820830762386322, + -0.024862563237547874, + -0.1922997534275055, + -0.06880733370780945, + 0.04849780350923538, + -0.06502246856689453, + -0.03457893803715706, + 0.0012382371351122856, + -0.03095114231109619, + 0.038484349846839905, + 0.05193109065294266, + 0.008144903928041458, + 0.02631678432226181, + 0.0451781302690506, + 0.05656164139509201, + 0.010965327732264996, + 0.049336764961481094, + -0.005590734537690878, + -0.03349357470870018, + -0.02043190225958824, + 0.13056224584579468, + -0.03088408149778843, + -0.005155405029654503, + 0.028637176379561424, + 0.023479096591472626, + 0.03669722378253937, + -0.0857032984495163, + -0.002330233808606863, + -0.003384561976417899, + -0.03503650426864624, + 0.06760133057832718, + 0.02083505317568779, + 0.018323713913559914, + 0.0068146237172186375, + 0.04039827734231949, + 0.0028054174035787582, + -0.07450364530086517, + -0.10297901928424835, + 0.16271817684173584, + 0.04333998262882233, + 0.018857136368751526, + -0.0736873671412468, + -0.08138163387775421, + 0.10239444673061371, + -0.011204741895198822, + -0.08961302042007446, + -0.018971525132656097, + 0.08370642364025116, + 0.1880270391702652, + -0.045557837933301926, + -0.06589552760124207, + 0.03892253339290619, + 0.10237638652324677, + 0.01838921755552292, + 0.08959254622459412, + 0.08224697411060333, + 0.0660763531923294, + 0.012882357463240623, + -0.01609390787780285, + 0.060892581939697266, + 0.04428984969854355, + 0.04501251131296158, + -0.04964422062039375, + 0.026755765080451965, + 0.01607527770102024, + -0.04234948381781578, + 0.04744495451450348, + -0.0172147024422884, + -0.007962924428284168, + 0.0005255321739241481, + -0.008809900842607021, + -0.014055125415325165, + 0.017560552805662155, + -0.035148583352565765, + 0.015296468511223793, + -0.00401654839515686, + -0.009734917432069778, + 0.10195815563201904, + 0.02065407671034336, + 0.020383402705192566, + 0.060295410454273224, + -0.06215808168053627, + -0.07610048353672028, + 0.05746382474899292, + 0.021879538893699646, + -0.0019333818927407265, + 0.06846021860837936, + 0.04975048080086708, + -0.05284110829234123, + 0.12015827000141144, + 0.029055429622530937, + 0.019173379987478256, + 0.02234555594623089, + -0.12423446029424667, + 0.10854637622833252, + 0.0924525335431099, + -0.04406654089689255, + 0.038346078246831894, + -0.03121175616979599, + 0.06448947638273239, + 0.08739827573299408, + -0.15698984265327454, + -0.089156374335289, + 0.05125739797949791, + 0.04494181647896767, + 0.0008481969125568867, + 0.10862427949905396, + -0.028039967641234398, + -0.006550223100930452, + 0.08231733739376068, + -0.07706663012504578, + -0.061941809952259064, + -0.020563066005706787, + 0.04454972594976425, + -0.09160491824150085, + 0.03808602690696716, + 0.060925837606191635, + 0.005269246641546488, + -0.015477458946406841, + 0.06979642808437347, + -0.011888453736901283, + -0.015624463558197021, + -0.02562510408461094, + -0.020971886813640594, + 0.03489968553185463, + -0.029899869114160538, + -0.008173709735274315, + 0.014536741189658642, + 0.056775838136672974, + 0.014111342839896679, + 0.03855336830019951, + -0.06912229210138321, + -0.11743748188018799, + -0.0033062375150620937, + 0.054164811968803406, + 0.057940319180488586, + -0.017601799219846725, + -0.031252745538949966, + -0.072161465883255, + -0.03870869800448418, + 0.023170702159404755, + 0.005680281203240156, + 0.08354271948337555, + 0.015904748812317848, + 0.0032762247137725353, + 0.10606884956359863, + 0.023646127432584763, + -0.0023334778379648924, + -0.05040481314063072, + -0.012844240292906761, + 0.03589194267988205, + 0.03635179251432419, + -0.06052795797586441, + -0.06869138777256012, + -0.0025041282642632723, + 0.04248450696468353, + -0.01490707602351904, + 0.03628591075539589, + 0.03992671146988869, + 0.015115615911781788, + 0.02881280519068241, + -0.08762317895889282, + 0.04189129173755646, + -0.11166097223758698, + -0.05664055794477463, + 0.0014595371903851628, + -0.009036744944751263, + -0.0038564163260161877, + 0.08789880573749542, + 0.005479919724166393, + 0.028801556676626205, + -0.0506991371512413, + -0.0854375958442688, + -0.05812521651387215, + 0.06582494080066681, + 0.11485972255468369, + 0.005417494103312492, + 0.036176636815071106, + 0.02856173738837242, + -0.003962871618568897, + 0.061177995055913925, + 0.06648282706737518, + 0.13206112384796143, + -0.020873498171567917, + 0.019060513004660606, + -0.03514261171221733, + 0.06428977847099304, + 0.034177958965301514, + -0.07694768905639648, + -0.08694911003112793, + -0.00605004234239459, + -0.05699876323342323, + 0.05943584442138672, + 0.014504838734865189, + 0.025877878069877625, + -0.009845886379480362, + -0.03490893542766571, + -0.0897604376077652, + -0.07291705906391144, + 0.05996953696012497, + -0.02755383774638176, + -0.03472472354769707, + -0.08967968821525574, + 0.07644389569759369, + 0.08695225417613983, + 0.043586790561676025, + 0.00286676362156868, + -0.016348622739315033, + 0.005012219306081533, + -0.06722348928451538, + -0.022148026153445244, + 0.023505806922912598, + 0.00038319453597068787, + -0.1097593754529953, + 0.03014691174030304, + -0.09828896820545197, + 0.09809508919715881, + -0.06587450206279755, + 0.15200844407081604, + -0.007465310860425234, + -0.06238946691155434, + -0.09271591901779175, + 0.019227854907512665, + -0.025916390120983124, + 0.044934600591659546, + 0.0454816073179245, + 0.03466986119747162, + 0.03788481652736664, + -0.056064315140247345, + 0.07617609202861786, + 0.035814326256513596, + -0.02204306423664093, + -0.06533538550138474, + -0.04845082759857178, + -0.023975593969225883, + 0.009637643583118916, + -0.031131941825151443, + -0.07051219046115875, + -0.01244270522147417, + 0.033741891384124756, + -0.0015441062860190868, + 0.0764072835445404, + 0.11345212906599045, + 0.04249701276421547, + -0.13651220500469208 + ] + }, + "p244_382.wav": { + "name": "p244", + "embedding": [ + 0.012547873891890049, + 0.05160238593816757, + 0.011362994089722633, + 0.010442528873682022, + -0.02396126464009285, + 0.013589495792984962, + -0.11730173975229263, + 0.036210618913173676, + -0.010385122150182724, + 0.11090656369924545, + -0.06143496558070183, + 0.06634905934333801, + -0.045379187911748886, + -0.10618384927511215, + 0.01740165799856186, + 0.03435014933347702, + -0.006350047420710325, + -0.00864393636584282, + -0.031849052757024765, + -0.09376578032970428, + 0.020534124225378036, + 0.036604393273591995, + 0.036742858588695526, + -0.06433065235614777, + -0.03600381687283516, + 0.08359530568122864, + 0.01833106204867363, + 0.00012774299830198288, + -0.01433572731912136, + -0.05799144506454468, + 0.012074185535311699, + 0.05872979015111923, + -0.022189244627952576, + -0.04682639613747597, + 0.03789011389017105, + 0.021736960858106613, + -0.011056792922317982, + 0.032406531274318695, + 0.03573356941342354, + 0.048331134021282196, + -0.10984036326408386, + 0.08040735870599747, + 0.035817697644233704, + -0.013468739576637745, + 0.05903147906064987, + -0.010543732903897762, + -0.0302356518805027, + 0.04786694049835205, + -0.05198640376329422, + 0.10123961418867111, + 0.09019836783409119, + -0.01387955155223608, + -0.0026811081916093826, + -0.0028360895812511444, + 0.06472156941890717, + 0.006172278895974159, + -0.09047840535640717, + -0.06961512565612793, + 0.01754872500896454, + 0.048186399042606354, + -0.0459323488175869, + -0.03905865177512169, + 0.021418139338493347, + 0.07180844992399216, + 0.02538359723985195, + 0.08152899891138077, + 0.04512246698141098, + 0.06418582797050476, + -0.015758180990815163, + -0.03462575748562813, + 0.04637700319290161, + 0.06378970295190811, + 0.05963975191116333, + -0.009656872600317001, + 0.04629376903176308, + -0.027568265795707703, + -0.0015075068222358823, + -0.015118101611733437, + -0.0021336134523153305, + -0.02977989986538887, + -0.016649462282657623, + -0.03093707747757435, + 0.0054865069687366486, + -0.011831393465399742, + -0.02760191448032856, + -0.013728601858019829, + 0.07599321007728577, + -0.011270669288933277, + 0.05656953155994415, + 0.017831265926361084, + 0.010215329006314278, + 0.04234057292342186, + -0.024735376238822937, + 0.013357169926166534, + -0.021729113534092903, + -0.023060370236635208, + 0.05408324673771858, + 0.04192613810300827, + -0.009943902492523193, + 0.03809733688831329, + 0.07158517092466354, + 0.012510206550359726, + -0.01156134344637394, + 0.02253643423318863, + -0.08828597515821457, + 0.09063994139432907, + 0.07299457490444183, + -0.04215797781944275, + 0.011265666224062443, + 0.005750037729740143, + 0.0337931364774704, + 0.004370613023638725, + -0.04674713686108589, + -0.026644859462976456, + -0.017069317400455475, + 0.05421210452914238, + -0.023538794368505478, + 0.11078331619501114, + -0.004369608126580715, + -0.001963440328836441, + 0.13071255385875702, + -0.011764176189899445, + -0.0530334934592247, + -0.0342542938888073, + 0.0011928481981158257, + -0.11772595345973969, + 0.04352394863963127, + 0.061838164925575256, + 0.010597269982099533, + 0.04860387742519379, + 0.12782812118530273, + -0.001282795681618154, + 0.007060809060931206, + -0.04113354533910751, + -0.02608216181397438, + 0.005709658842533827, + 0.005518050864338875, + 0.03675176203250885, + 0.06943594664335251, + 0.022506503388285637, + 0.10988815128803253, + 0.00980820506811142, + 0.017211895436048508, + -0.10632960498332977, + 0.02222321182489395, + 0.029957246035337448, + -0.008503291755914688, + -0.03047473356127739, + -0.02670774981379509, + -0.0339556559920311, + -0.06403562426567078, + 0.020782222971320152, + -0.06388944387435913, + 0.08039310574531555, + -0.035465702414512634, + -0.03365049511194229, + 0.12671050429344177, + 0.011926470324397087, + -0.018395351245999336, + -0.0451463907957077, + -0.04775174707174301, + -0.03024212270975113, + 0.02390103042125702, + -0.15910173952579498, + -0.03548077493906021, + -0.06562969833612442, + 0.06842155754566193, + 0.061021797358989716, + 0.01578560657799244, + 0.08299657702445984, + -0.026273656636476517, + 0.024967610836029053, + 0.005361704155802727, + 0.007530272472649813, + -0.025087492540478706, + -0.07498277723789215, + -0.028843076899647713, + -0.09150299429893494, + -0.03826965391635895, + 0.04488532990217209, + -0.05601165071129799, + 0.025278553366661072, + -0.01570734940469265, + -0.08624249696731567, + -0.09655316174030304, + 0.01300131343305111, + 0.032063499093055725, + -0.034426964819431305, + 0.036032259464263916, + 0.06893187016248703, + -0.05150822922587395, + 0.02387727051973343, + 0.01330776046961546, + 0.1009955108165741, + -0.06870239228010178, + 0.02597085013985634, + -0.04178846627473831, + 0.015592994168400764, + 0.07868680357933044, + -0.02680528722703457, + -0.03693900629878044, + -0.05068472772836685, + -0.03574802726507187, + 0.06267403811216354, + -0.04315007105469704, + -0.03363295644521713, + -0.017319170758128166, + 0.028717953711748123, + -0.043894216418266296, + -0.060050118714571, + 0.05433402955532074, + -0.03880521282553673, + 0.0020879385992884636, + -0.06176038086414337, + 0.0007769614458084106, + -0.05895606428384781, + 0.11176969110965729, + -0.0466681532561779, + 0.046651311218738556, + 0.03920469433069229, + -0.036042407155036926, + 0.05796392634510994, + 0.06418243795633316, + 0.06173306331038475, + 0.013650529086589813, + -0.06049313396215439, + -0.0877370685338974, + 0.026592738926410675, + -0.016280457377433777, + 0.0243687704205513, + 0.03331802785396576, + -0.012801187112927437, + -0.0022738445550203323, + 0.00848740991204977, + -0.035573720932006836, + 0.012242107652127743, + 0.09276110678911209, + 0.06797154247760773, + 0.016932833939790726, + -0.020362310111522675, + 0.09237921237945557, + 0.023318475112318993, + 0.028431814163923264, + -0.029714711010456085, + 0.03502645716071129, + -0.06460855901241302, + 0.014962121844291687, + 0.05536523461341858, + -0.10144593566656113, + 0.024608131498098373, + 0.01699121668934822, + 0.012575887143611908, + 0.018135521560907364, + 0.05983434617519379, + 0.055573634803295135, + -0.037474654614925385 + ] + }, + "p244_054.wav": { + "name": "p244", + "embedding": [ + 0.044531773775815964, + 0.08339071273803711, + -0.043592821806669235, + 0.032639503479003906, + -0.041242025792598724, + 0.03188537061214447, + -0.12195440381765366, + 0.12405737489461899, + -0.039067547768354416, + 0.11954139173030853, + -0.06776689738035202, + 0.10958655178546906, + -0.036398995667696, + -0.15811637043952942, + -0.0032070246525108814, + 0.060783497989177704, + -0.013422037474811077, + -0.024434328079223633, + -0.0128059983253479, + -0.006297648884356022, + 0.05196934938430786, + 0.030873890966176987, + 0.02055971696972847, + 0.004828694276511669, + -0.0059669530019164085, + 0.06463739275932312, + -0.01451481319963932, + 0.016734275966882706, + 0.0023957248777151108, + -0.009596682153642178, + -0.028207283467054367, + 0.0838286280632019, + -0.025441495701670647, + -0.001375867985188961, + 0.04361264035105705, + 0.013163789175450802, + -0.027481794357299805, + -0.06679468601942062, + -0.014668326824903488, + -0.021882986649870872, + -0.06359701603651047, + 0.049910545349121094, + 0.011246456764638424, + -0.04057619720697403, + 0.05698006972670555, + -0.032979294657707214, + -0.03630266711115837, + -0.02610834687948227, + -0.08936958014965057, + 0.1295086145401001, + 0.08682025969028473, + 0.030690256506204605, + -0.07012548297643661, + -0.03371772915124893, + 0.10229375213384628, + 0.013465752825140953, + -0.08645573258399963, + -0.044837117195129395, + 0.048386506736278534, + 0.15683308243751526, + -0.008068239316344261, + -0.014551311731338501, + 0.03809425234794617, + 0.09007300436496735, + 0.04222553223371506, + 0.08796178549528122, + 0.08538471162319183, + 0.08014971017837524, + 0.0014690251555293798, + 0.007828207686543465, + 0.0482005700469017, + 0.07763230055570602, + 0.04141215234994888, + -0.027177661657333374, + 0.011572152376174927, + 0.009257100522518158, + -0.04612048715353012, + 0.008623328059911728, + -0.007388022728264332, + -0.04041937366127968, + -0.03299110010266304, + -0.008901793509721756, + -0.0006154334987513721, + 0.016461152583360672, + -0.023357797414064407, + 0.028125744313001633, + 0.05248458683490753, + -0.0352524071931839, + 0.051901452243328094, + 0.027309920638799667, + -0.01561039499938488, + 0.03811197355389595, + -0.07006604224443436, + -0.08662566542625427, + 0.023440055549144745, + 0.0154373524710536, + 0.00595161272212863, + 0.08428120613098145, + 0.04134146124124527, + -0.0005706424708478153, + 0.09696288406848907, + 0.035293079912662506, + 0.005181587301194668, + 0.02159595489501953, + -0.07563850283622742, + 0.10091414302587509, + 0.09128039330244064, + -0.03950861096382141, + 0.04708978161215782, + -0.047100722789764404, + 0.04237062856554985, + 0.07073447108268738, + -0.11546891927719116, + -0.04164433479309082, + 0.037117987871170044, + 0.019331369549036026, + 0.018671944737434387, + 0.10687331855297089, + 0.025190195068717003, + 0.022847510874271393, + 0.09897732734680176, + -0.0918402224779129, + -0.09489685297012329, + -0.045933157205581665, + 0.06433014571666718, + -0.07319973409175873, + 0.07652459293603897, + 0.05230450630187988, + 0.010129591450095177, + -0.00817757286131382, + 0.05129304528236389, + -0.010708371177315712, + 0.003669125959277153, + -0.002487152349203825, + -0.03125491365790367, + 0.027580542489886284, + -0.05913276597857475, + -0.011526434682309628, + 0.048139046877622604, + 0.015221628360450268, + 0.042926251888275146, + 0.0016710280906409025, + 0.011386695317924023, + -0.10330268740653992, + 0.006572123151272535, + 0.07021503895521164, + 0.06470756977796555, + -0.014764896593987942, + -0.042874034494161606, + -0.03324338048696518, + -0.07297824323177338, + -0.007540812250226736, + -0.035766687244176865, + 0.08067728579044342, + -0.011344107799232006, + 0.035138264298439026, + 0.07291869074106216, + -0.001958150416612625, + 0.0014686796348541975, + -0.04221239313483238, + -0.017281625419855118, + 0.018143512308597565, + 0.04632008820772171, + -0.06905063986778259, + -0.09081631898880005, + -0.022073036059737206, + 0.02567869983613491, + -0.016295934095978737, + 0.029283598065376282, + 0.03530899062752724, + 0.01007854100316763, + 0.009313436225056648, + -0.08200067281723022, + 0.029111281037330627, + -0.1150745078921318, + -0.0669938176870346, + -0.02214871160686016, + -0.017387447878718376, + 0.017351120710372925, + 0.07316271960735321, + 0.024209685623645782, + 0.029132088646292686, + -0.014923411421477795, + -0.0653960257768631, + -0.09251268953084946, + 0.05088326334953308, + 0.06618297845125198, + -0.010669587180018425, + 0.03743422031402588, + 0.044326361268758774, + -0.044679902493953705, + 0.017755715176463127, + 0.04266372323036194, + 0.09544762223958969, + -0.02135905995965004, + -0.0040208748541772366, + -0.06608234345912933, + 0.06355912238359451, + 0.11735900491476059, + -0.09566470980644226, + -0.07402803003787994, + -0.04731234163045883, + -0.06647393107414246, + 0.023328756913542747, + -0.04298260062932968, + -0.0005063054850324988, + 0.02435779571533203, + -0.040551625192165375, + -0.11309491842985153, + -0.10754703730344772, + 0.07565949857234955, + -0.032360099256038666, + -0.014236598275601864, + -0.07610159367322922, + 0.03851526975631714, + 0.068403460085392, + 0.008493021130561829, + -0.04496745765209198, + -0.0027959574945271015, + 0.025532986968755722, + -0.02969980798661709, + -0.010796865448355675, + 0.04664656147360802, + 0.037412308156490326, + -0.10859899967908859, + -0.0028363890014588833, + -0.06875377893447876, + 0.0795290470123291, + -0.0637238547205925, + 0.13003848493099213, + -0.008818810805678368, + -0.04281790554523468, + -0.10158710181713104, + 0.03621697053313255, + 0.036350153386592865, + 0.04004887118935585, + 0.015556114725768566, + 0.055863939225673676, + 0.009571072645485401, + -0.0766301304101944, + 0.09556584805250168, + 0.04306706786155701, + -0.006984502077102661, + -0.07146522402763367, + -0.030883878469467163, + -0.03619595617055893, + 0.02568429335951805, + -0.015237387269735336, + -0.058929115533828735, + -0.005680184345692396, + 0.000603125779889524, + -0.0004595927894115448, + 0.05696096271276474, + 0.11993834376335144, + 0.04048936069011688, + -0.11684443056583405 + ] + }, + "p244_315.wav": { + "name": "p244", + "embedding": [ + 0.03413383662700653, + 0.11248143017292023, + -0.04909581318497658, + -0.01946149580180645, + -0.05494026094675064, + 0.05198469012975693, + -0.10419207811355591, + 0.06858484447002411, + -0.03169497847557068, + 0.15407967567443848, + -0.045282673090696335, + 0.11573299020528793, + -0.048958953469991684, + -0.11797276884317398, + 0.01691889949142933, + 0.046824801713228226, + -0.011813892051577568, + -0.008026326075196266, + -0.07579988241195679, + -0.0490071140229702, + 0.006307331379503012, + 0.006721321493387222, + 0.055475570261478424, + -0.08238747715950012, + 0.025415092706680298, + 0.06830001622438431, + -0.02267875149846077, + 0.009058261290192604, + -0.022792411968111992, + -0.05325685441493988, + -0.05768198519945145, + 0.0705752819776535, + -0.07316683232784271, + -0.005149628035724163, + 0.015670960769057274, + -0.000647758599370718, + -0.007105298340320587, + -0.04145439714193344, + 0.04939868673682213, + 0.008313881233334541, + -0.008967209607362747, + 0.07133138179779053, + -0.018732253462076187, + -0.03521409258246422, + 0.02477094531059265, + -0.003414227394387126, + -0.025668339803814888, + -0.009604323655366898, + -0.05513915419578552, + 0.12803515791893005, + 0.0672895759344101, + -0.028591400012373924, + -0.05910041928291321, + -0.04063919931650162, + 0.0807579904794693, + -0.0106466393917799, + -0.09221473336219788, + -0.08951853215694427, + 0.018430430442094803, + 0.07097722589969635, + -0.014687201008200645, + -0.03409990295767784, + 0.006377875339239836, + 0.06148528680205345, + 0.032162778079509735, + 0.08445896208286285, + 0.06989485025405884, + 0.10910843312740326, + -0.028483934700489044, + 0.023875702172517776, + 0.03908916562795639, + 0.03176497668027878, + 0.03761683776974678, + -0.0023465966805815697, + 0.039592765271663666, + -0.06574079394340515, + -0.007427575532346964, + 0.010662117972970009, + -0.022269485518336296, + -0.09172341972589493, + -0.033294033259153366, + -0.044124770909547806, + -0.02916226163506508, + -0.001995379338040948, + -0.0143654216080904, + 0.018939625471830368, + 0.10067899525165558, + -0.027329163625836372, + 0.09213057160377502, + 0.05443928390741348, + 0.0037899818271398544, + 0.04963983595371246, + -0.09650826454162598, + -0.03462880477309227, + 0.034820307046175, + -0.0007875389419496059, + 0.004731725435703993, + 0.04835128039121628, + 0.024307332932949066, + -0.020640313625335693, + 0.07182465493679047, + 0.07269822061061859, + 0.002478731330484152, + 0.013228606432676315, + -0.06202029436826706, + 0.1436268836259842, + 0.11806733906269073, + -0.035913363099098206, + 0.0031225793063640594, + -0.018875202164053917, + 0.03541206941008568, + 0.04431717097759247, + -0.0552237369120121, + -0.0839335173368454, + -0.030153775587677956, + -0.028216522186994553, + -0.021700209006667137, + 0.056338679045438766, + 0.012501124292612076, + 0.012556970119476318, + 0.10519523918628693, + -0.07827557623386383, + -0.0943988561630249, + -0.001382332295179367, + 0.028694912791252136, + -0.06438609212636948, + 0.023066814988851547, + 0.09650695323944092, + 0.02172049880027771, + 0.022864725440740585, + 0.09543150663375854, + 0.019513897597789764, + 0.034896932542324066, + 0.02922985702753067, + -0.021459218114614487, + 0.009129984304308891, + 0.014786722138524055, + -0.029674747958779335, + 0.06844797730445862, + 0.04813861474394798, + 0.07747222483158112, + -0.02400597371160984, + 0.04565712809562683, + -0.07895905524492264, + 0.03376833349466324, + 0.06263545900583267, + -0.0058061107993125916, + -0.04849748685956001, + 0.015252277255058289, + -0.010260669514536858, + -0.09156184643507004, + 0.006445238366723061, + -0.022827867418527603, + 0.08660911023616791, + -0.03378603607416153, + -0.015216754749417305, + 0.1553623527288437, + 0.03669090196490288, + -0.013548744842410088, + -0.059314094483852386, + -0.027013130486011505, + 0.0441359281539917, + 0.03447284549474716, + -0.10293310880661011, + -0.0661337822675705, + -0.02860097587108612, + 0.024177582934498787, + 0.003979003056883812, + 0.08148729056119919, + 0.11319103837013245, + -0.0069936830550432205, + 0.029588159173727036, + -0.05135303735733032, + 0.0418066643178463, + -0.015039725229144096, + -0.013632766902446747, + -0.018243515864014626, + -0.09486951678991318, + -0.026181941851973534, + 0.07402196526527405, + -0.004380423575639725, + 0.0331728495657444, + -0.06885910779237747, + -0.07564035058021545, + -0.08704549074172974, + 0.02460172027349472, + 0.054089777171611786, + -0.05204082652926445, + 0.03461485356092453, + 0.05356509983539581, + -0.02620266191661358, + 0.010335616767406464, + 0.07561412453651428, + 0.07537376135587692, + -0.051287420094013214, + -0.00031730160117149353, + -0.08707383275032043, + 0.060790468007326126, + 0.09890241920948029, + -0.09302216023206711, + -0.049903638660907745, + -0.08977462351322174, + -0.023200221359729767, + 0.0029694996774196625, + -0.05973154306411743, + -0.004922495689243078, + 0.05704745650291443, + -0.00866637472063303, + -0.05818870663642883, + -0.14534473419189453, + 0.10099364817142487, + -0.03192056342959404, + 0.011476516723632812, + -0.05229166895151138, + 0.03170435130596161, + -0.010224081575870514, + 0.04247201606631279, + -0.07210371643304825, + 0.035147733986377716, + 0.03281755745410919, + 0.012498822063207626, + 0.05496523529291153, + 0.04321397840976715, + 0.06977403163909912, + -0.04002279415726662, + -0.016014492139220238, + -0.08187700808048248, + 0.09048968553543091, + -0.03173889219760895, + 0.1459461748600006, + 0.01020322646945715, + -0.001790856011211872, + -0.09119556844234467, + 0.048776544630527496, + -0.04592974856495857, + 0.04166581481695175, + 0.06384682655334473, + 0.0476040281355381, + 0.005869491025805473, + -0.04697089642286301, + 0.0986829400062561, + 0.03343397378921509, + -0.02489675022661686, + -0.07331164926290512, + -0.014144917018711567, + -0.0687505304813385, + 0.050350695848464966, + 0.014541254378855228, + -0.08110079914331436, + 0.02182883396744728, + 0.023041747510433197, + -0.013296023942530155, + 0.07973086088895798, + 0.09263253957033157, + 0.09798845648765564, + -0.07878242433071136 + ] + }, + "p244_290.wav": { + "name": "p244", + "embedding": [ + 0.01912044547498226, + 0.0878903716802597, + -0.00811822060495615, + 0.040054745972156525, + -0.05176994204521179, + 0.026453204452991486, + -0.029326923191547394, + 0.06288449466228485, + 0.03335327282547951, + 0.06359043717384338, + -0.0520898662507534, + 0.04585761949419975, + -0.061563968658447266, + -0.10855460166931152, + -0.010652425698935986, + 0.023728996515274048, + -0.005488347262144089, + 0.020646758377552032, + -0.03890529274940491, + -0.01703776977956295, + -0.04177787899971008, + -0.022052664309740067, + -0.04700027406215668, + 0.025646071881055832, + -0.05263756960630417, + 0.04717602580785751, + -0.033035993576049805, + -0.0008956827223300934, + -0.026933956891298294, + -0.04906585067510605, + 0.02629845216870308, + 0.05654216557741165, + -0.02185446210205555, + -0.039292111992836, + 0.04170616716146469, + -0.04133742302656174, + 0.008103480562567711, + -0.023746736347675323, + -0.044792115688323975, + -0.0015041893348097801, + -0.063213050365448, + 0.00797811895608902, + 0.015389461070299149, + -0.07636027783155441, + 0.002584769856184721, + 0.03233061358332634, + -0.011692564934492111, + -0.01648004725575447, + -0.036780282855033875, + 0.09442220628261566, + 0.0322970375418663, + 0.029101412743330002, + -0.028388291597366333, + -0.029950594529509544, + 0.12743638455867767, + 0.015334445051848888, + 0.021385349333286285, + -0.029812147840857506, + 0.012949611991643906, + 0.06365389376878738, + 0.009745093062520027, + -0.01222170889377594, + 0.0481518991291523, + 0.052945736795663834, + -0.0042460206896066666, + 0.0463312566280365, + 0.057978421449661255, + 0.10464777052402496, + -0.020650649443268776, + 0.007968008518218994, + 0.05429162085056305, + 0.0014821551740169525, + 0.053401075303554535, + 0.022862186655402184, + -0.02775970846414566, + 0.011058037169277668, + 0.00011264253407716751, + 0.02712939865887165, + -0.028745047748088837, + -0.03999347239732742, + 0.01725243777036667, + -0.000758882611989975, + 0.01597965508699417, + -0.042269542813301086, + -0.032369546592235565, + -0.03964819386601448, + 0.0617033913731575, + -0.0014846604317426682, + 0.06334895640611649, + -0.014688508585095406, + 0.04743838310241699, + 0.05074680224061012, + -0.05440659075975418, + -0.05539717525243759, + 0.014292231760919094, + -0.019001878798007965, + 0.03565326705574989, + 0.037062324583530426, + 0.009589990600943565, + 0.014036282896995544, + 0.06806677579879761, + -0.024226054549217224, + 0.05962487682700157, + 0.01211432833224535, + -0.07123999297618866, + -0.02635989338159561, + 0.03756067156791687, + 0.005959119647741318, + 0.024486029520630836, + 0.044524870812892914, + 0.03301968052983284, + 0.08831869065761566, + -0.04037364944815636, + -0.05762895196676254, + 0.030030623078346252, + 0.07834096252918243, + -0.06656120717525482, + 0.10810627043247223, + -0.021274428814649582, + 0.028830530121922493, + 0.07025730609893799, + -0.006297927349805832, + -0.001488884910941124, + 0.013544036075472832, + -0.0005233306437730789, + -0.033376362174749374, + 0.0672052726149559, + 0.03341102972626686, + -0.030123023316264153, + -0.033759087324142456, + 0.04925951734185219, + -0.023741915822029114, + -0.033747073262929916, + -0.043573372066020966, + 0.03504834324121475, + 0.008837351575493813, + 0.039331164211034775, + -0.02504708059132099, + -0.0018461518920958042, + 0.0803990587592125, + -0.0009807944297790527, + -0.03415236994624138, + -0.010165511630475521, + -0.04275501146912575, + 0.019379690289497375, + 0.03222106397151947, + 0.03502677381038666, + 0.06861163675785065, + -0.03326110169291496, + -0.06489211320877075, + -0.006306573748588562, + 0.03422148898243904, + -0.05326361954212189, + 0.08789268136024475, + 0.058206744492053986, + 0.01831907406449318, + 0.07299650460481644, + -0.03483293205499649, + -0.0014111967757344246, + -0.030852051451802254, + -0.08148300647735596, + -0.01032851543277502, + 0.01567525416612625, + -0.02900564856827259, + -0.03451034426689148, + -0.028528772294521332, + -0.007494870573282242, + 0.007547067478299141, + 0.022373061627149582, + 0.021143479272723198, + -0.01800907962024212, + 0.04096347093582153, + -0.0828053206205368, + -0.006824616342782974, + -0.0184059739112854, + -0.038303181529045105, + 0.04072409123182297, + 0.012901604175567627, + 0.0010232338681817055, + 0.022037165239453316, + 0.009273068979382515, + -0.0196218378841877, + -0.053866732865571976, + -0.08367647975683212, + 0.016084197908639908, + 0.027223750948905945, + 0.025060266256332397, + -0.01541376393288374, + -0.005240677855908871, + 0.04960779473185539, + 0.05163364112377167, + 0.011579295620322227, + 0.03604981675744057, + 0.07421388477087021, + -0.033744823187589645, + -0.0032753143459558487, + 0.027166450396180153, + 0.10652270913124084, + 0.03926441818475723, + -0.053613074123859406, + -0.09483854472637177, + -0.0335165411233902, + -0.036572933197021484, + 0.05009347200393677, + -0.022581521421670914, + 0.03593762218952179, + -0.0089015644043684, + 0.005714827217161655, + 0.020998116582632065, + -0.10319957137107849, + 0.020687537267804146, + 0.007287014275789261, + -0.014180734753608704, + -0.018811218440532684, + 0.008932719938457012, + 0.021662309765815735, + 0.04693171754479408, + -0.022302716970443726, + -0.021310104057192802, + 0.020492244511842728, + -0.0006692931056022644, + -0.0024574417620897293, + 0.04556262865662575, + 0.0514710433781147, + -0.0010628588497638702, + -0.01849389635026455, + -0.025267377495765686, + 0.04617158696055412, + 0.015502825379371643, + 0.05003879964351654, + 0.009656425565481186, + -0.008890802040696144, + -0.09754496812820435, + 0.06594467163085938, + -0.021181201562285423, + 0.06645216047763824, + -0.007990904152393341, + 0.0376305915415287, + 0.06180844083428383, + -0.00667180772870779, + 0.08812643587589264, + 0.005475944839417934, + -0.0222301222383976, + -0.044031497091054916, + -0.0431826077401638, + -0.02952864021062851, + -0.001858039409853518, + 0.05068175867199898, + -0.01804637908935547, + -0.03750092163681984, + 0.04238550737500191, + 0.016636352986097336, + 0.07106532156467438, + 0.07458914071321487, + 0.0646275132894516, + 0.0074406638741493225 + ] + }, + "p244_341.wav": { + "name": "p244", + "embedding": [ + 0.05144480988383293, + 0.09490710496902466, + -0.021923646330833435, + 0.025897063314914703, + -0.060403577983379364, + 0.07773204892873764, + -0.1412520408630371, + 0.13891853392124176, + -0.04217970371246338, + 0.1378546953201294, + -0.035827118903398514, + 0.11010695993900299, + -0.022878920659422874, + -0.17258340120315552, + -0.029567096382379532, + 0.07048855721950531, + -0.05807400494813919, + -0.04977872222661972, + -0.052923671901226044, + -0.009816604666411877, + 0.008188669569790363, + 0.015158360823988914, + 0.03498988598585129, + -0.00605994276702404, + 0.03965850546956062, + 0.06300187110900879, + -0.006520512513816357, + 0.055122967809438705, + 0.007679138332605362, + -0.06641988456249237, + -0.014704719185829163, + 0.08735961467027664, + -0.06784327328205109, + 0.017183993011713028, + 0.04393257945775986, + -0.01377885602414608, + -0.0021048171911388636, + -0.06173987686634064, + -0.014424381777644157, + -0.006023450754582882, + -0.034361060708761215, + 0.10261380672454834, + 0.02472495660185814, + -0.007815316319465637, + 0.01871519535779953, + 0.013764625415205956, + -0.017168574035167694, + -0.047201819717884064, + -0.1079639196395874, + 0.15566271543502808, + 0.06997188925743103, + 0.0003933088155463338, + -0.08531288057565689, + -0.07673226296901703, + 0.08558286726474762, + -0.0208512581884861, + -0.12377744913101196, + -0.07109367847442627, + 0.06526520103216171, + 0.1547544300556183, + -0.03256845101714134, + -0.025883059948682785, + 0.010721691884100437, + 0.12660090625286102, + 0.08642827719449997, + 0.08840705454349518, + 0.07699798047542572, + 0.11311851441860199, + -0.019651539623737335, + 0.026744019240140915, + 0.06717963516712189, + 0.05525387451052666, + 0.04959084466099739, + 0.014187723398208618, + 0.0288851261138916, + -0.03147173672914505, + -0.0007630875916220248, + -0.028616424649953842, + -0.018456537276506424, + -0.02608596906065941, + -0.021630095317959785, + 0.020860102027654648, + 0.005859169643372297, + 0.05097389221191406, + -0.008726393803954124, + 0.04270967096090317, + 0.034227192401885986, + -0.0370824933052063, + 0.07148225605487823, + 0.049353644251823425, + 0.013594419695436954, + 0.06155559420585632, + -0.09407760947942734, + -0.07176750898361206, + 0.028547782450914383, + 0.0036114000249654055, + 0.028942083939909935, + 0.05231490731239319, + 0.023434635251760483, + -0.007127637974917889, + 0.10949581861495972, + 0.046734586358070374, + -0.0178220197558403, + 0.015526052564382553, + -0.08812092244625092, + 0.14471960067749023, + 0.05609337240457535, + -0.014147101901471615, + 0.04629359394311905, + -0.036612898111343384, + 0.04154061898589134, + 0.060822244733572006, + -0.12675780057907104, + -0.0879315584897995, + 0.02080797404050827, + -0.003991410601884127, + -0.03631272166967392, + 0.11920009553432465, + 0.01180082093924284, + 0.045656461268663406, + 0.09535133838653564, + -0.08752863854169846, + -0.050203315913677216, + 0.007991038262844086, + 0.05196003243327141, + -0.08059116452932358, + 0.04225955903530121, + 0.06067333742976189, + -0.017503179609775543, + 0.02666880004107952, + 0.09904748201370239, + 0.012025121599435806, + 0.009307839907705784, + 0.027502041310071945, + -0.04676958918571472, + 0.029968073591589928, + -0.011394794099032879, + -0.002331534866243601, + 0.039806317538022995, + 0.017847564071416855, + 0.06357142329216003, + -0.01853979378938675, + -0.020683813840150833, + -0.11147885024547577, + -0.0007262104190886021, + 0.03840206190943718, + 0.08944395929574966, + -0.029955651611089706, + -0.0004986696876585484, + -0.02589883655309677, + -0.05605993792414665, + 0.012824616394937038, + -0.004544756840914488, + 0.08468576520681381, + -0.011032759211957455, + -0.015628637745976448, + 0.13016214966773987, + 0.02594016119837761, + 0.009066566824913025, + -0.04820541664958, + -0.011101684533059597, + 0.01899886690080166, + 0.07315941154956818, + -0.0899038016796112, + -0.05063747987151146, + 0.01304718665778637, + 0.036304451525211334, + -0.009482748806476593, + 0.07670986652374268, + 0.06042204797267914, + 0.01884995773434639, + 0.012809822335839272, + -0.04806660860776901, + 0.016181349754333496, + -0.059673674404621124, + -0.06470909714698792, + 0.0014662076719105244, + -0.023437581956386566, + -0.051634907722473145, + 0.08094987273216248, + 0.0331161692738533, + 0.06778091937303543, + -0.025496773421764374, + -0.0826568678021431, + -0.08372054249048233, + 0.055319420993328094, + 0.05553797632455826, + -0.034959372133016586, + 0.027661526575684547, + 0.0661623403429985, + -0.0268266424536705, + 0.030382946133613586, + 0.06150016188621521, + 0.09969155490398407, + -0.05662955343723297, + 0.01419757679104805, + -0.08851909637451172, + 0.07444809377193451, + 0.08771632611751556, + -0.10171777009963989, + -0.06157103180885315, + -0.010723607614636421, + -0.055419087409973145, + 0.0169186070561409, + -0.04167061299085617, + 0.022828031331300735, + 0.056738466024398804, + -0.018225129693746567, + -0.10133303701877594, + -0.11747681349515915, + 0.09777864813804626, + -0.0977693498134613, + 0.01351673062890768, + -0.07692878693342209, + 0.03325483947992325, + 0.07665561139583588, + 0.055152133107185364, + -0.028388746082782745, + -0.005988146178424358, + 0.04631059616804123, + -0.020998038351535797, + 0.012032933533191681, + 0.0781719982624054, + 0.029342520982027054, + -0.10526087880134583, + -0.00933622196316719, + -0.0654182881116867, + 0.04446505755186081, + -0.030080342665314674, + 0.16331614553928375, + 0.011038949713110924, + -0.04740135371685028, + -0.09075221419334412, + 0.01164920348674059, + -0.04199260473251343, + 0.06427827477455139, + 0.028239388018846512, + 0.07292013615369797, + 0.06301284581422806, + -0.03558768332004547, + 0.12175273895263672, + 0.05364023149013519, + -0.03373897075653076, + -0.06901658326387405, + -0.05237111449241638, + -0.04455861821770668, + 0.05221952497959137, + 0.0010546408593654633, + -0.10342967510223389, + 0.004786589182913303, + 0.03170613944530487, + -0.02323976904153824, + 0.06615154445171356, + 0.1356145441532135, + 0.08601370453834534, + -0.10246265679597855 + ] + }, + "p244_296.wav": { + "name": "p244", + "embedding": [ + 0.041318681091070175, + 0.0945296585559845, + -0.026775799691677094, + 0.045866094529628754, + -0.055853065103292465, + 0.04816087707877159, + -0.10735886543989182, + 0.13000677525997162, + -0.04410688579082489, + 0.13508228957653046, + -0.06848134845495224, + 0.10222294181585312, + -0.006338165141642094, + -0.1870807558298111, + -0.03953560069203377, + 0.03323279321193695, + -0.07274294644594193, + -0.029713099822402, + -0.0779244601726532, + -0.0008681975305080414, + 0.05867717042565346, + 0.04237307235598564, + 0.014544080942869186, + -0.0234934464097023, + 0.006065462715923786, + 0.044528622180223465, + 0.019178733229637146, + 0.056521471589803696, + 0.058167532086372375, + -0.04547460377216339, + -0.0328659862279892, + 0.12109345197677612, + -0.029036706313490868, + 0.03205665200948715, + 0.05403066426515579, + -0.02390475943684578, + -0.007008626591414213, + -0.037837665528059006, + -0.04116789251565933, + 0.030151614919304848, + -0.054543085396289825, + 0.06686088442802429, + 0.0665142685174942, + 0.004767619073390961, + 0.056362103670835495, + 0.015434455126523972, + -0.047723133116960526, + -0.05780066177248955, + -0.07999444007873535, + 0.18002712726593018, + 0.08711431920528412, + -0.02807789295911789, + -0.05149059370160103, + -0.047855574637651443, + 0.10140743106603622, + -0.0037548760883510113, + -0.15592895448207855, + -0.04236697033047676, + 0.10501722246408463, + 0.15432967245578766, + -0.016631536185741425, + 0.0028191402088850737, + 0.00797203928232193, + 0.15575803816318512, + 0.05745095759630203, + 0.0968722477555275, + 0.059764306992292404, + 0.11765952408313751, + 0.011920973658561707, + 0.05072137713432312, + 0.06883751600980759, + 0.06562920659780502, + 0.005385405849665403, + -0.026856614276766777, + 0.03951319679617882, + -0.006331588141620159, + -0.0206725113093853, + -0.005500771105289459, + -0.030993448570370674, + 0.022903921082615852, + -0.0052184490486979485, + 0.014078463427722454, + 0.0032910448499023914, + 0.014566889964044094, + -0.0353395976126194, + 0.07072412967681885, + 0.014765985310077667, + 0.005105732940137386, + 0.043322768062353134, + 0.04887993633747101, + 0.025364618748426437, + 0.04704684019088745, + -0.04609707370400429, + -0.11718489974737167, + -0.014623098075389862, + 0.001542488345876336, + 0.02529967576265335, + 0.06292904913425446, + 0.03873699903488159, + -0.015730854123830795, + 0.11337673664093018, + 0.039424363523721695, + -0.041698943823575974, + 0.029235277324914932, + -0.09620600938796997, + 0.12352906912565231, + 0.0674699917435646, + 0.008962842635810375, + 0.03628653660416603, + -0.05478410795331001, + 0.0964847132563591, + 0.04554268717765808, + -0.13312795758247375, + -0.045462604612112045, + 0.06395375728607178, + -0.003645610297098756, + -0.02261500246822834, + 0.1143454983830452, + 0.00031702342675998807, + 0.010378554463386536, + 0.09764956682920456, + -0.06914980709552765, + -0.04608475789427757, + -0.03610144555568695, + 0.05797521770000458, + -0.08386005461215973, + 0.046092256903648376, + 0.009382068179547787, + -0.047608595341444016, + -0.0012762827100232244, + 0.08843357861042023, + -0.012790529057383537, + 0.013585151173174381, + 0.022525502368807793, + -0.04850340262055397, + 0.07277356088161469, + -0.04308157414197922, + 0.023064637556672096, + 0.03960254788398743, + 0.04245040938258171, + 0.0598858967423439, + -0.022455569356679916, + -0.044262465089559555, + -0.0901675894856453, + 0.023209083825349808, + 0.014932384714484215, + 0.07892078161239624, + 0.004284909460693598, + -0.0022143537644296885, + -0.04088211432099342, + -0.08096452057361603, + 0.01720733940601349, + -0.03373314440250397, + 0.07582180947065353, + -0.021895410493016243, + -0.030406001955270767, + 0.10198938101530075, + -0.007291710469871759, + 0.0030485086608678102, + -0.05230522155761719, + -0.024559469893574715, + 0.015485113486647606, + 0.04864849895238876, + -0.09028993546962738, + -0.04405295476317406, + 0.024547187611460686, + 0.007781818974763155, + -0.010542208328843117, + 0.005231906659901142, + 0.017798909917473793, + 0.0024374243803322315, + 0.0523248016834259, + -0.08068772405385971, + 0.010028494521975517, + -0.12339293211698532, + -0.05186411365866661, + -0.021564709022641182, + -0.0227389857172966, + -0.016183309257030487, + 0.07365275919437408, + 0.0012940015876665711, + 0.017588775604963303, + 0.03823458403348923, + -0.08692120015621185, + -0.06424491107463837, + 0.08963587880134583, + 0.06753387302160263, + 0.002155711641535163, + 0.06636876612901688, + 0.06379912048578262, + -0.043997108936309814, + 0.03490740805864334, + 0.049191415309906006, + 0.09566248953342438, + -0.008505954407155514, + -0.0019705158192664385, + -0.08357450366020203, + 0.08678137511014938, + 0.06673752516508102, + -0.11800973117351532, + -0.07379437237977982, + -0.020728258416056633, + -0.05262252315878868, + 0.007787683513015509, + -0.029094474390149117, + 0.0003525139472912997, + 0.03164540231227875, + 0.015931393951177597, + -0.10209763795137405, + -0.07028472423553467, + 0.08402393013238907, + -0.1088315024971962, + -0.01746816374361515, + -0.07123661041259766, + 0.026188498362898827, + 0.12433307617902756, + 0.04734567925333977, + -0.029640348628163338, + -0.0016770545626059175, + 0.0705217719078064, + -0.07041095197200775, + -0.017768193036317825, + 0.02826724946498871, + 0.020265942439436913, + -0.10742716491222382, + 0.006870593409985304, + -0.05989695340394974, + 0.037293531000614166, + -0.07067269831895828, + 0.13812874257564545, + 0.015748854726552963, + -0.0676906406879425, + -0.08093681931495667, + 0.06581062823534012, + -0.019399330019950867, + 0.044615477323532104, + 0.05384982377290726, + 0.05743812769651413, + 0.04006803035736084, + -0.07658716291189194, + 0.1392107456922531, + 0.021193357184529305, + -0.02970031090080738, + -0.06526640057563782, + -0.0215093232691288, + -0.03709458187222481, + 0.016958212479948997, + 0.0481191910803318, + -0.08683504909276962, + -0.02103733830153942, + 0.024913201108574867, + -0.06485319137573242, + 0.07178670167922974, + 0.13823001086711884, + 0.07610105723142624, + -0.10873140394687653 + ] + }, + "p244_281.wav": { + "name": "p244", + "embedding": [ + 0.04316239804029465, + 0.09389373660087585, + -0.004338981583714485, + 0.02047625370323658, + -0.050993047654628754, + 0.068476602435112, + -0.1208743304014206, + 0.12484188377857208, + -0.07613775134086609, + 0.1500626802444458, + -0.11026425659656525, + 0.1104574203491211, + -0.04054606705904007, + -0.18952953815460205, + -0.0257693063467741, + 0.05206223577260971, + -0.0442204549908638, + 0.0008913697674870491, + -0.04847009479999542, + -0.03451327979564667, + 0.04897636920213699, + 0.036467544734478, + 0.025049470365047455, + -0.004559813067317009, + 0.02676309645175934, + 0.06207616627216339, + -0.01977812498807907, + 0.016210488975048065, + 0.004305846989154816, + -0.07645659148693085, + -0.049201600253582, + 0.11599043011665344, + -0.02723785862326622, + 0.0043502310290932655, + 0.048825591802597046, + -0.0014877127250656486, + -0.008433063514530659, + -0.07079911231994629, + -0.024381348863244057, + -0.008154544979333878, + -0.053825974464416504, + 0.04391765967011452, + 0.01588037610054016, + -0.022000059485435486, + 0.04293741658329964, + 0.012471312656998634, + -0.020323943346738815, + -0.04164234548807144, + -0.08783012628555298, + 0.1584375947713852, + 0.06209580972790718, + 0.003575683571398258, + -0.06467777490615845, + -0.07489050924777985, + 0.12742935121059418, + 0.0025154389441013336, + -0.12956053018569946, + -0.01891259476542473, + 0.09117413312196732, + 0.17949531972408295, + -0.03186075761914253, + -0.023736614733934402, + 0.0336587093770504, + 0.10539084672927856, + 0.0021025659516453743, + 0.10217355936765671, + 0.06640615314245224, + 0.08427748084068298, + 0.01719059981405735, + 0.042019739747047424, + 0.05327766388654709, + 0.0626484751701355, + 0.046641625463962555, + -0.05263303965330124, + 0.006512587424367666, + 0.0006292110774666071, + -0.048804864287376404, + 0.008333852514624596, + -0.03805795684456825, + -0.026150163263082504, + -0.01371549442410469, + -0.01841064728796482, + 0.015263654291629791, + -0.032870713621377945, + -0.03372101113200188, + 0.03469639644026756, + 0.024499110877513885, + -0.015447386540472507, + 0.0741010457277298, + 0.02746744453907013, + 0.004795158747583628, + 0.04854855313897133, + -0.055203042924404144, + -0.09991756826639175, + 0.021872874349355698, + 0.021441973745822906, + -0.010287429206073284, + 0.07411578297615051, + 0.058819130063056946, + -0.028419315814971924, + 0.1258266568183899, + 0.044557999819517136, + 0.027902871370315552, + 0.020803408697247505, + -0.10969652235507965, + 0.11149384081363678, + 0.10121595114469528, + -0.017748437821865082, + 0.060041315853595734, + -0.04024200141429901, + 0.10059916973114014, + 0.09553758800029755, + -0.160922110080719, + -0.05883362144231796, + 0.0019642841070890427, + -0.00855749100446701, + -3.0842842534184456e-05, + 0.10438629984855652, + -0.014789480715990067, + 0.015048881061375141, + 0.10627907514572144, + -0.10361991077661514, + -0.06523903459310532, + -0.036818645894527435, + 0.04138176143169403, + -0.08383512496948242, + 0.06932668387889862, + 0.05693099647760391, + -0.021924462169408798, + 0.01642550528049469, + 0.07105615735054016, + -0.03741040453314781, + -0.0012498274445533752, + 0.005890397354960442, + -0.05652263015508652, + 0.010543439537286758, + -0.059381477534770966, + -0.0016308611957356334, + 0.05255758389830589, + 0.048733849078416824, + 0.041055403649806976, + 0.00028462009504437447, + -0.03760337084531784, + -0.0806020051240921, + 0.007694039959460497, + 0.03671346604824066, + 0.05928145349025726, + 0.008565877564251423, + -0.007897469215095043, + -0.03692619130015373, + -0.07190090417861938, + 0.03099704720079899, + -0.034588899463415146, + 0.09157770127058029, + -0.00566551648080349, + 0.017080388963222504, + 0.0929098129272461, + 0.04333870857954025, + -0.01783258095383644, + -0.08507756888866425, + -0.039767101407051086, + 0.020575709640979767, + 0.03145882859826088, + -0.08532088249921799, + -0.06350696086883545, + -0.007995542138814926, + 0.020544854924082756, + -0.025409091264009476, + 0.041259557008743286, + 0.03125467151403427, + 0.021289899945259094, + 0.03556213900446892, + -0.07972882688045502, + 0.028546597808599472, + -0.11305233836174011, + -0.06000962853431702, + 0.004138820804655552, + -0.0448276624083519, + -0.0060881758108735085, + 0.09007851779460907, + 0.005987387616187334, + -0.004957599099725485, + -0.025380559265613556, + -0.06755310297012329, + -0.06653745472431183, + 0.05965537950396538, + 0.05057786777615547, + 0.009551698341965675, + 0.04264432191848755, + 0.04539789259433746, + -0.03645608201622963, + 0.06734208762645721, + 0.05736595019698143, + 0.11864569783210754, + -0.009800620377063751, + 0.020939519628882408, + -0.061349056661129, + 0.08253012597560883, + 0.0883067324757576, + -0.07265673577785492, + -0.10535315424203873, + -0.05579511076211929, + -0.06478118151426315, + 0.07777097821235657, + -0.012174505740404129, + -0.02264985628426075, + 0.0001900692004710436, + -0.030676869675517082, + -0.08952242136001587, + -0.06041882559657097, + 0.09801868349313736, + -0.038460567593574524, + -0.0325746014714241, + -0.08659961819648743, + 0.05395590141415596, + 0.08195780217647552, + 0.025128480046987534, + -0.024774737656116486, + 0.008562793023884296, + 0.05355486273765564, + -0.07659287750720978, + -0.006160122808068991, + 0.04255946725606918, + 0.017358507961034775, + -0.08650492131710052, + 0.007121242582798004, + -0.09494180232286453, + 0.07364729791879654, + -0.058140769600868225, + 0.15665312111377716, + -0.011113450862467289, + -0.05189599096775055, + -0.08183331787586212, + 0.07581934332847595, + -0.010511255823075771, + 0.03715214133262634, + 0.05822507292032242, + 0.06378577649593353, + 0.04279954731464386, + -0.08393155038356781, + 0.09939467161893845, + 0.00495325680822134, + -0.0136440210044384, + -0.04334452748298645, + -0.04805696755647659, + -0.046550579369068146, + -0.015952609479427338, + -0.024811657145619392, + -0.10690297186374664, + -0.00766246672719717, + 0.00816418882459402, + 0.011764800176024437, + 0.07797898352146149, + 0.1134762093424797, + 0.051282189786434174, + -0.10418900102376938 + ] + }, + "p244_200.wav": { + "name": "p244", + "embedding": [ + 0.024939430877566338, + 0.07433727383613586, + -0.02525252290070057, + -0.02982010878622532, + -0.04866282641887665, + 0.03008236363530159, + -0.10671471804380417, + 0.08964802324771881, + -0.02626296691596508, + 0.13251730799674988, + -0.031405266374349594, + 0.12363055348396301, + -0.012178616598248482, + -0.08940556645393372, + 0.0018033534288406372, + 0.03925182297825813, + -0.02653134986758232, + -0.018556490540504456, + 0.026375677436590195, + -0.09278352558612823, + 0.01694541983306408, + 0.012202143669128418, + 0.010271896608173847, + -0.02886061742901802, + 0.03657793253660202, + 0.08312389999628067, + -0.010484747588634491, + -0.015864841639995575, + -0.0163906030356884, + -0.07271693646907806, + -0.023432716727256775, + 0.07284985482692719, + -0.0495089590549469, + -0.036293063312768936, + 0.03591129183769226, + -0.017441047355532646, + 0.012030897662043571, + -0.030306216329336166, + 0.011072250083088875, + 0.050925251096487045, + -0.05886799469590187, + 0.09645560383796692, + 0.015479094348847866, + -0.012519692070782185, + 0.03595249354839325, + -0.0164759811013937, + -0.03039535880088806, + 0.04172850400209427, + -0.04935479164123535, + 0.09674926102161407, + 0.048564258962869644, + -0.000288613693555817, + -0.0673631876707077, + -0.014889011159539223, + 0.0623813234269619, + 6.916932761669159e-05, + -0.08723580837249756, + 0.014711225405335426, + -0.008832443505525589, + 0.08853672444820404, + 0.0005101468414068222, + -0.05904746800661087, + 0.03553440421819687, + 0.07162363827228546, + 0.01699855551123619, + 0.019998032599687576, + 0.07644030451774597, + 0.07371202111244202, + -0.024670282378792763, + -0.013962291181087494, + 0.050953831523656845, + 0.09373202919960022, + 0.042279232293367386, + -0.028921708464622498, + 0.029026946052908897, + -0.012677819468080997, + -0.01491071842610836, + -0.053724255412817, + -0.02286776900291443, + -0.04822743311524391, + -0.07667197287082672, + -0.008525769226253033, + 0.00692553399130702, + 0.06857479363679886, + -0.0091291144490242, + 0.0035489723086357117, + 0.05871639400720596, + -0.03512198105454445, + 0.043976426124572754, + 0.040980033576488495, + -0.004412780050188303, + 0.01763414777815342, + -0.09585338830947876, + -0.020235881209373474, + 0.0206478089094162, + -0.020029375329613686, + 0.055878497660160065, + 0.06788526475429535, + 0.026739640161395073, + 0.018899738788604736, + 0.08721262216567993, + 0.0679880827665329, + 0.024675853550434113, + -0.04514288902282715, + -0.06802409142255783, + 0.11047828197479248, + 0.10541452467441559, + -0.06352011114358902, + 0.02776617370545864, + 0.029069572687149048, + 0.028467632830142975, + -0.019322458654642105, + -0.1172647774219513, + -0.04296399652957916, + -0.017716901376843452, + 0.05623961612582207, + 0.028697222471237183, + 0.09767939895391464, + 0.014171984046697617, + 0.0632934719324112, + 0.0728757306933403, + -0.015174215659499168, + -0.043012503534555435, + -0.05897904187440872, + 0.035041432827711105, + -0.0940159261226654, + 0.08481593430042267, + 0.06827917695045471, + 0.0398956835269928, + 0.027891317382454872, + 0.07555405795574188, + 0.020095162093639374, + -0.001981164328753948, + -0.03519681468605995, + -0.005365423858165741, + 0.004899994470179081, + 0.0011436042841523886, + 0.05051884427666664, + 0.0682157501578331, + 0.006879162043333054, + 0.10563625395298004, + 0.03429514169692993, + 0.02302711457014084, + -0.07805975526571274, + 0.03918889909982681, + 0.013640772551298141, + 0.02186778001487255, + -0.040986474603414536, + -0.05063813924789429, + 0.01307217963039875, + -0.05762668699026108, + -0.03132152184844017, + 0.012684009969234467, + 0.08698233962059021, + -0.0092921182513237, + -0.00035212747752666473, + 0.09546104073524475, + 0.048112861812114716, + -0.014029380865395069, + 0.026199499145150185, + -0.027232758700847626, + -0.02722012996673584, + 0.07394665479660034, + -0.1244584321975708, + -0.08965231478214264, + -0.017049642279744148, + 0.023505130782723427, + 0.024891991168260574, + 0.06786487996578217, + 0.09854506701231003, + -0.023347780108451843, + 0.03873459994792938, + 0.002268165349960327, + 0.007273775991052389, + -0.052528440952301025, + -0.05805787444114685, + -0.04761459678411484, + -0.07977532595396042, + -0.08394771814346313, + 0.06359367072582245, + -0.021463530138134956, + 0.07687333971261978, + -0.019330628216266632, + -0.030743122100830078, + -0.05443199723958969, + 0.022308409214019775, + 0.015683092176914215, + -0.039642155170440674, + 0.005122012458741665, + 0.09998506307601929, + 0.022308651357889175, + 0.001636601984500885, + 0.04902666062116623, + 0.06823647022247314, + -0.07573557645082474, + 0.019600939005613327, + -0.06206582486629486, + 0.08165790140628815, + 0.06261108070611954, + -0.033628933131694794, + -0.06303587555885315, + -0.08612208068370819, + -0.04926425963640213, + 0.06854651123285294, + -0.015825580805540085, + 0.001919277012348175, + 0.004753971006721258, + -0.02591554820537567, + -0.05505221709609032, + -0.06278872489929199, + 0.0532737672328949, + -0.042514581233263016, + -0.0005053229979239404, + -0.04744567722082138, + 0.008204679004848003, + 0.025649558752775192, + 0.06280621141195297, + -0.04345583915710449, + 0.05438661575317383, + 0.025178682059049606, + -0.018067140132188797, + 0.021471034735441208, + 0.058836158365011215, + 0.03464612364768982, + -0.03089158982038498, + -0.05643361061811447, + -0.06605249643325806, + 0.058067843317985535, + -0.046560630202293396, + 0.06214062124490738, + 0.026599962264299393, + -0.044281624257564545, + -0.043504875153303146, + 0.0005766376852989197, + -0.023025842383503914, + 0.022232720628380775, + 0.08538094162940979, + 0.07625876367092133, + 0.022420961409807205, + -0.014766862615942955, + 0.07176991552114487, + 0.03368942439556122, + 0.0020218826830387115, + -0.033641137182712555, + -0.009077683091163635, + -0.020941833034157753, + 0.03228991478681564, + 0.053042322397232056, + -0.09055463969707489, + 0.05898561328649521, + 0.00012491096276789904, + 0.022904491052031517, + 0.05739465355873108, + 0.04272972792387009, + 0.052329860627651215, + -0.07928024232387543 + ] + }, + "p244_099.wav": { + "name": "p244", + "embedding": [ + 0.04797389730811119, + 0.05731881782412529, + -0.01664837822318077, + 0.06621331721544266, + -0.037036310881376266, + 0.04248513653874397, + -0.09955631196498871, + 0.09833134710788727, + -0.028889445587992668, + 0.1185491755604744, + -0.08084610104560852, + 0.12563496828079224, + -0.04067962244153023, + -0.12601245939731598, + 0.020635247230529785, + 0.03957397863268852, + -0.0029155127704143524, + -0.018910743296146393, + -0.03386684134602547, + 0.003915635868906975, + 0.018154732882976532, + 0.024123037233948708, + 0.08103647828102112, + -0.04928715154528618, + 0.01759207621216774, + 0.06991182267665863, + 0.019663583487272263, + 0.07400402426719666, + 0.029341569170355797, + -0.07665659487247467, + -0.03882969543337822, + 0.06719779968261719, + -0.061870746314525604, + -0.006127007771283388, + 0.035242341458797455, + -0.0017320187762379646, + -0.01734486222267151, + -0.06741787493228912, + -0.014015083201229572, + 0.005804424174129963, + -0.06314443796873093, + 0.06655818223953247, + -0.011562912724912167, + -0.06722623109817505, + 0.029264191165566444, + 0.0032405396923422813, + -0.0038957998622208834, + -0.012525351718068123, + -0.12379302084445953, + 0.12770959734916687, + 0.034488823264837265, + 0.017717232927680016, + -0.05976395308971405, + -0.08137929439544678, + 0.08960846066474915, + 0.017543073743581772, + -0.07438570261001587, + -0.04093882441520691, + 0.0653700977563858, + 0.11880487203598022, + -0.033533886075019836, + -0.029918277636170387, + 0.04755759611725807, + 0.06378337740898132, + 0.1010880395770073, + 0.06463412195444107, + 0.07664380967617035, + 0.11635836958885193, + 0.0021344833076000214, + 0.024340124800801277, + 0.032780971378088, + 0.0974268764257431, + 0.009732979349792004, + 0.03125299885869026, + -0.013230005279183388, + 0.03494032844901085, + -0.036179449409246445, + 0.007988890632987022, + -0.005469565745443106, + -0.03135570511221886, + 0.026901038363575935, + -0.030528370290994644, + 0.03191215917468071, + 0.012297059409320354, + -0.03444536775350571, + 0.06359434872865677, + 0.03217943012714386, + -0.02028823085129261, + 0.05408889055252075, + -0.04371800273656845, + -0.020244712010025978, + 0.046688586473464966, + -0.08195452392101288, + -0.07157929986715317, + 0.0015675760805606842, + 0.011018885299563408, + 0.005806446075439453, + 0.08384741842746735, + 0.0452895313501358, + -0.02232355624437332, + 0.14760661125183105, + 0.04032951965928078, + -0.011120690032839775, + 0.01873120665550232, + -0.023098144680261612, + 0.10003713518381119, + 0.08632374554872513, + -0.014551489613950253, + 0.03517834469676018, + -0.0368342250585556, + 0.05442814156413078, + 0.05583671107888222, + -0.12702547013759613, + -0.0734264925122261, + 0.012456387281417847, + -0.006074516102671623, + -0.002131884451955557, + 0.10714790225028992, + -0.0018328316509723663, + 0.029803579673171043, + 0.12262587249279022, + -0.11412858963012695, + -0.05872868373990059, + 0.0019734473899006844, + 0.0458216667175293, + -0.04639827832579613, + 0.05771676450967789, + 0.05319635942578316, + -0.013182412832975388, + -0.0181103702634573, + 0.0763944685459137, + -0.024806607514619827, + -0.0013747243210673332, + 0.030301911756396294, + -0.0450468584895134, + 0.03634897619485855, + -0.05253252759575844, + -0.02253030613064766, + 0.09377595037221909, + 0.025862909853458405, + 0.0702534019947052, + -0.04127182438969612, + -0.024843038991093636, + -0.1249043419957161, + 0.03717726096510887, + 0.04913254454731941, + 0.06471754610538483, + -0.039670512080192566, + -0.05141894146800041, + -0.06116370111703873, + -0.07510469853878021, + 0.03804895281791687, + -0.008929936215281487, + 0.07653331756591797, + -0.03723600506782532, + 0.026008635759353638, + 0.0677201971411705, + -0.0020098406821489334, + -0.017148375511169434, + -0.05122039467096329, + -0.07550272345542908, + -0.008807705715298653, + 0.025530848652124405, + -0.05315689742565155, + -0.08590848743915558, + -0.04814942553639412, + 0.017998334020376205, + -0.03655826300382614, + 0.04605000466108322, + 0.018693581223487854, + 0.0278000608086586, + 0.011537164449691772, + -0.02198604680597782, + -0.010920695960521698, + -0.06340960413217545, + -0.03395809605717659, + -0.03288775309920311, + 0.009680969640612602, + -0.01693061739206314, + 0.08156916499137878, + 0.029080234467983246, + 0.06477776169776917, + -0.02653038315474987, + -0.04795694723725319, + -0.09764037281274796, + 0.053057290613651276, + 0.029055697843432426, + -0.0038898885250091553, + 0.046625442802906036, + 0.08647708594799042, + -0.02352616935968399, + 0.02273315191268921, + 0.03572075068950653, + 0.052214041352272034, + 0.0035590827465057373, + -0.008618451654911041, + -0.06136263906955719, + 0.11565394699573517, + 0.10002350807189941, + -0.06544682383537292, + -0.04990899935364723, + -0.03754248097538948, + -0.09936943650245667, + 0.06782529503107071, + -0.03666696697473526, + -0.010957189835608006, + 0.047450751066207886, + -0.04349039867520332, + -0.09827381372451782, + -0.08476640284061432, + 0.0804053246974945, + -0.03720587491989136, + -0.02907801792025566, + -0.07870368659496307, + 0.009352538734674454, + 0.058842990547418594, + 0.06708842515945435, + 0.011715766042470932, + 0.01123451255261898, + 0.03538103401660919, + -0.03175191953778267, + 0.019035685807466507, + 0.11148630082607269, + 0.010102298110723495, + -0.08917774260044098, + -0.02202148549258709, + -0.059331461787223816, + 0.05914332717657089, + -0.048362839967012405, + 0.10305222868919373, + 0.0019009602256119251, + -0.020299125462770462, + -0.07116810977458954, + 0.05938335880637169, + -0.031602777540683746, + 0.05474865436553955, + 0.03143714740872383, + 0.034149542450904846, + 0.03435913473367691, + -0.09433424472808838, + 0.1179744154214859, + 0.032009437680244446, + -0.02853197604417801, + -0.06957449018955231, + -0.050554729998111725, + -0.042635612189769745, + 0.02992558665573597, + 0.029597483575344086, + -0.07063183188438416, + -0.0011022929102182388, + 0.016902685165405273, + -0.02418183907866478, + 0.03027252107858658, + 0.1287989318370819, + 0.048080917447805405, + -0.07848779857158661 + ] + }, + "p244_050.wav": { + "name": "p244", + "embedding": [ + 0.05023301765322685, + 0.08407358825206757, + 0.012249777093529701, + -0.004582732915878296, + 0.00921735167503357, + 0.03914384916424751, + -0.1385028064250946, + 0.10706543177366257, + -0.038663528859615326, + 0.13633409142494202, + -0.10946248471736908, + 0.10321488231420517, + -0.06059561297297478, + -0.16560634970664978, + -0.03220677375793457, + 0.03134256973862648, + -0.012396692298352718, + 0.007105602882802486, + -0.009908203966915607, + -0.027424683794379234, + 0.04879109188914299, + 0.032814767211675644, + 0.0404229611158371, + -0.016135631129145622, + -0.02184418961405754, + 0.06487292796373367, + 0.001284771948121488, + 0.03454388305544853, + 0.024741049855947495, + -0.0221596360206604, + 0.007210791110992432, + 0.07492826879024506, + -0.014464574865996838, + 0.023417605087161064, + 0.047493986785411835, + 0.03747191280126572, + -0.028197024017572403, + -0.043357040733098984, + -0.00019876348960679024, + 0.0013277034740895033, + -0.05088428780436516, + 0.050801992416381836, + 0.006723180413246155, + -0.01704547181725502, + 0.07095968723297119, + -0.01579451374709606, + -0.01814933679997921, + -0.016627049073576927, + -0.08284677565097809, + 0.1097920835018158, + 0.0793813094496727, + 0.030496686697006226, + -0.06401565670967102, + -0.022432729601860046, + 0.09402446448802948, + -0.02061808668076992, + -0.10900342464447021, + -0.04879279062151909, + 0.07701753079891205, + 0.14399832487106323, + -0.04000835120677948, + -0.039612721651792526, + 0.0062844278290867805, + 0.06933045387268066, + -0.0021418731193989515, + 0.08384978026151657, + 0.11210405826568604, + 0.07143969088792801, + 0.0017284353962168097, + 0.01101828645914793, + 0.01896217092871666, + 0.056189291179180145, + 0.041943322867155075, + -0.03135531395673752, + 0.011549843475222588, + -0.01569194719195366, + -0.018923219293355942, + 0.023408878594636917, + -0.02063116803765297, + -0.04125453904271126, + -0.030472127720713615, + -0.021046843379735947, + -0.023883666843175888, + -0.008352704346179962, + -0.018687037751078606, + 0.019816428422927856, + 0.03232010453939438, + -0.01079557090997696, + 0.050949014723300934, + 0.0433989092707634, + -0.005060452502220869, + 0.024456534534692764, + -0.04327687621116638, + -0.061716478317976, + 0.0017756118904799223, + 0.007055922411382198, + -0.019221888855099678, + 0.07131462544202805, + 0.035756729543209076, + 0.01814980059862137, + 0.10414302349090576, + 0.023390082642436028, + -0.009977656416594982, + 0.002370603382587433, + -0.09756433218717575, + 0.09115295112133026, + 0.09864702075719833, + -0.04001914709806442, + 0.03529156744480133, + -0.05400681495666504, + 0.02995765022933483, + 0.07381685078144073, + -0.09159816801548004, + -0.026553085073828697, + 0.024876292794942856, + 0.03304285556077957, + 0.025642594322562218, + 0.09719684720039368, + 0.002858811989426613, + -0.0025673508644104004, + 0.11778514087200165, + -0.06069906800985336, + -0.08164152503013611, + -0.050629623234272, + 0.023459255695343018, + -0.06639887392520905, + 0.07500357180833817, + 0.0432649664580822, + 0.0249970443546772, + 0.007935889065265656, + 0.0689091831445694, + -0.003879968076944351, + -0.003371685743331909, + -0.03303280472755432, + -0.03112868033349514, + 0.005660293623805046, + -0.06665004789829254, + -0.0003721409884747118, + 0.03621627390384674, + 0.045871801674366, + 0.0525544099509716, + 0.03317507728934288, + -0.03997926786541939, + -0.08191762864589691, + -0.009530076757073402, + 0.05157766863703728, + 0.042967699468135834, + -0.02040005475282669, + -0.03236093372106552, + -0.04035399481654167, + -0.04318874701857567, + 0.01618031971156597, + -0.061329469084739685, + 0.08321692794561386, + -0.010404542088508606, + 0.01469092071056366, + 0.07953208684921265, + -0.020822763442993164, + -0.011731987819075584, + -0.07514123618602753, + -0.015800151973962784, + -0.002479126676917076, + 0.008888563141226768, + -0.09747322648763657, + -0.07021086663007736, + -0.03552898392081261, + 0.03687005490064621, + -0.011990826576948166, + 0.03773476183414459, + 0.048297666013240814, + -0.0001280568540096283, + 0.004878080449998379, + -0.059530820697546005, + 0.006472278386354446, + -0.11003661155700684, + -0.08119408041238785, + -0.007553338073194027, + -0.025208037346601486, + 0.029597129672765732, + 0.06932783126831055, + -0.007433533668518066, + 0.011366916820406914, + -0.017465949058532715, + -0.10035966336727142, + -0.10316044092178345, + 0.06292540580034256, + 0.06025577336549759, + 0.0047773150727152824, + 0.04025264084339142, + 0.03914668411016464, + -0.04787943884730339, + 0.07229110598564148, + 0.02674618922173977, + 0.09172123670578003, + -0.04650774225592613, + 0.02007182314991951, + -0.05496493726968765, + 0.026629026979207993, + 0.1155325397849083, + -0.06653355062007904, + -0.08573679625988007, + -0.05051653832197189, + -0.06250812858343124, + 0.039306141436100006, + -0.028587397187948227, + -0.03125658631324768, + 0.01702810451388359, + -0.04568246006965637, + -0.09682674705982208, + -0.08427475392818451, + 0.048536404967308044, + -0.02547849714756012, + -0.001573527930304408, + -0.07549740374088287, + 0.05138392373919487, + 0.037759825587272644, + 0.02291359379887581, + -0.019467901438474655, + 0.017523251473903656, + 0.009189575910568237, + -0.05531178042292595, + -0.01360197365283966, + 0.016984183341264725, + 0.03654772788286209, + -0.0690145492553711, + -0.0010855160653591156, + -0.08244650065898895, + 0.06669095903635025, + -0.061314743012189865, + 0.08719583600759506, + -0.003984938375651836, + -0.037146057933568954, + -0.048084571957588196, + 0.0083693265914917, + 0.003241797909140587, + 0.03946899622678757, + 0.02690153382718563, + 0.043775223195552826, + 0.0009269304573535919, + -0.08752890676259995, + 0.0961446464061737, + 0.037892162799835205, + 0.003973602317273617, + -0.05850657448172569, + -0.02105182409286499, + -0.059252798557281494, + -0.0024594441056251526, + -0.019940117374062538, + -0.08833538740873337, + -0.01831350475549698, + -0.008458632044494152, + 0.0074912733398377895, + 0.03735307604074478, + 0.11042550206184387, + 0.013948485255241394, + -0.09502600878477097 + ] + }, + "p244_403.wav": { + "name": "p244", + "embedding": [ + 0.0377490296959877, + 0.0732356607913971, + -0.019850432872772217, + 0.0333767831325531, + -0.07099741697311401, + 0.05619765818119049, + -0.1509312242269516, + 0.1263742446899414, + -0.027428142726421356, + 0.1251850426197052, + -0.04978351294994354, + 0.1028362438082695, + -0.002218975918367505, + -0.22137275338172913, + 0.006918236147612333, + 0.0729297548532486, + -0.014897100627422333, + -0.022236498072743416, + -0.031686216592788696, + -0.025594644248485565, + 0.018437325954437256, + 0.05417141318321228, + 0.020603956654667854, + -0.017678197473287582, + 0.06263827532529831, + 0.055562734603881836, + -0.02087223157286644, + 0.01868341863155365, + -0.01220864336937666, + -0.048225805163383484, + -0.05367189645767212, + 0.09862232953310013, + -0.06352758407592773, + -0.008043133653700352, + 0.05733560770750046, + -0.011390184983611107, + -0.012570415623486042, + -0.04948428273200989, + -0.02673189342021942, + 0.024310864508152008, + -0.059616900980472565, + 0.09221051633358002, + 0.06049450486898422, + -0.0023746411316096783, + 0.05961926281452179, + 0.015207107178866863, + -0.007485062815248966, + -0.05887911468744278, + -0.11336857080459595, + 0.15759360790252686, + 0.04255159944295883, + -0.01151873730123043, + -0.07437939941883087, + -0.0654408186674118, + 0.09553039073944092, + -0.0043128496035933495, + -0.10397833585739136, + -0.04489545151591301, + 0.08238612115383148, + 0.1481323093175888, + -0.004289031028747559, + -0.03150048106908798, + 0.026212798431515694, + 0.09638091921806335, + 0.039877258241176605, + 0.10572708398103714, + 0.04421164095401764, + 0.09841453284025192, + -0.0050971657037734985, + 0.012710859067738056, + 0.06164707988500595, + 0.05109027028083801, + 0.010820966213941574, + -0.04045774042606354, + 0.01703864522278309, + 0.009230081923305988, + -0.030867155641317368, + -0.001352402614429593, + 0.001722430344671011, + 0.009927773848176003, + -0.0018683752277866006, + 0.003392999991774559, + 0.015851695090532303, + 0.011007177643477917, + -0.0496663823723793, + 0.03806179761886597, + 0.049583856016397476, + 0.016059570014476776, + 0.07973407208919525, + 0.03753602132201195, + -0.011931311339139938, + 0.05727504938840866, + -0.0767231434583664, + -0.07214605063199997, + 0.03396015614271164, + 0.016391996294260025, + -0.0017494803760200739, + 0.06703546643257141, + 0.03006320632994175, + -0.01927153207361698, + 0.12514999508857727, + 0.055862873792648315, + 0.002293237717822194, + 0.0503060556948185, + -0.08753368258476257, + 0.1179405152797699, + 0.07085679471492767, + -0.0001921962248161435, + 0.08866031467914581, + -0.04881196469068527, + 0.07010506093502045, + 0.06854349374771118, + -0.14733177423477173, + -0.05160451680421829, + 0.0433259978890419, + 0.007557045668363571, + -0.021415123715996742, + 0.15008965134620667, + 0.006820023991167545, + 0.01624210737645626, + 0.0982942134141922, + -0.11900971829891205, + -0.07204529643058777, + -0.0007706643082201481, + 0.0513414591550827, + -0.10332310944795609, + 0.04690876230597496, + 0.06416155397891998, + -0.040872395038604736, + 0.019163815304636955, + 0.06826205551624298, + 0.0007301387377083302, + 0.041555047035217285, + 0.008249817416071892, + -0.01041487231850624, + 0.03226141631603241, + -0.022251099348068237, + 0.007512851618230343, + 0.06927990168333054, + 0.00921021867543459, + 0.05257350206375122, + -0.013672875240445137, + -0.017679965123534203, + -0.13836930692195892, + 0.008151741698384285, + 0.03629102557897568, + 0.08736777305603027, + -0.02026567980647087, + -0.009210661053657532, + -0.06033314764499664, + -0.11327636986970901, + 0.028572317212820053, + -0.008258670568466187, + 0.09571856260299683, + -0.003611412364989519, + -0.005928050726652145, + 0.10117276757955551, + 0.04710693657398224, + -0.006630953401327133, + -0.051499143242836, + -0.04675263911485672, + 0.0014382260851562023, + 0.05600534379482269, + -0.08773181587457657, + -0.06035488471388817, + -0.016414295881986618, + 0.022271832451224327, + -0.02416715770959854, + 0.039517588913440704, + 0.04905982315540314, + 0.03403179347515106, + 0.043375611305236816, + -0.09376996755599976, + 0.022426482290029526, + -0.09017930179834366, + -0.0545673742890358, + -0.028377365320920944, + -0.002430593129247427, + -0.03984657675027847, + 0.10902615636587143, + 0.022513747215270996, + 0.035332273691892624, + -0.030425477772951126, + -0.0381329171359539, + -0.06094350665807724, + 0.058856137096881866, + 0.04914209246635437, + -0.010538293980062008, + 0.048013120889663696, + 0.04214265197515488, + -0.06385670602321625, + 0.04088686406612396, + 0.07497887313365936, + 0.08795854449272156, + -0.01327254343777895, + 0.03594272583723068, + -0.044732414186000824, + 0.10898943990468979, + 0.08237890899181366, + -0.08857299387454987, + -0.08345945179462433, + -0.017827525734901428, + -0.06994134187698364, + 0.04780062288045883, + -0.02667645923793316, + 0.0025994793977588415, + 0.014067212119698524, + -0.00599027331918478, + -0.07769648730754852, + -0.09515123814344406, + 0.05552405118942261, + -0.043748997151851654, + -0.014083610847592354, + -0.07232087850570679, + 0.046409305185079575, + 0.0833406001329422, + 0.04265587031841278, + -0.03337465226650238, + -0.037892088294029236, + 0.052113085985183716, + -0.04029715806245804, + 0.00981439184397459, + 0.08255501091480255, + 0.03312237560749054, + -0.10218776762485504, + 0.00043972209095954895, + -0.06067749112844467, + 0.09044945240020752, + -0.047911547124385834, + 0.16199392080307007, + 0.015095770359039307, + -0.05655485391616821, + -0.06871742010116577, + 0.03671246021986008, + -0.003715657629072666, + 0.03331994637846947, + 0.025603413581848145, + 0.06348010897636414, + 0.06485005468130112, + -0.019126396626234055, + 0.09705483168363571, + 0.037519216537475586, + -0.028215497732162476, + -0.033869847655296326, + -0.02794579043984413, + -0.04226047545671463, + 0.048254698514938354, + 0.012315713800489902, + -0.11845612525939941, + -0.0005446719587780535, + 0.04830523207783699, + -0.0038991388864815235, + 0.046570613980293274, + 0.1376451700925827, + 0.0616631954908371, + -0.13084611296653748 + ] + }, + "p244_051.wav": { + "name": "p244", + "embedding": [ + 0.045718200504779816, + 0.07814808189868927, + -0.022502843290567398, + 0.0345439612865448, + -0.051323942840099335, + 0.071048803627491, + -0.12195656448602676, + 0.1288100779056549, + 0.006800434552133083, + 0.13863827288150787, + -0.056577168405056, + 0.11115185916423798, + -0.013747458346188068, + -0.14130006730556488, + -0.00955258123576641, + 0.030395613983273506, + -0.0014988072216510773, + 0.018854573369026184, + -0.07543803751468658, + -0.030781254172325134, + 0.03106451779603958, + 0.04985269159078598, + 0.06654403358697891, + -0.07023470103740692, + 0.03807223588228226, + 0.04907004535198212, + -0.004326869733631611, + 0.060035914182662964, + 0.008692435920238495, + -0.10099340230226517, + -0.016854148358106613, + 0.11121881008148193, + -0.0654132142663002, + 0.029565026983618736, + 0.02955807000398636, + -0.039671700447797775, + -0.02099781297147274, + -0.032290175557136536, + -0.005050659645348787, + 0.01921827904880047, + -0.002769326791167259, + 0.07135940343141556, + 0.020010901615023613, + -0.002847805619239807, + 0.04927193373441696, + 0.014986333437263966, + -0.03531285747885704, + -0.03632693737745285, + -0.09852772951126099, + 0.16049720346927643, + 0.026491917669773102, + -0.002244291827082634, + -0.09792020171880722, + -0.05734919384121895, + 0.080751933157444, + -0.035606399178504944, + -0.09206739813089371, + -0.054172586649656296, + 0.0593574121594429, + 0.1254468709230423, + -0.01763366535305977, + -0.05385550111532211, + 0.026340872049331665, + 0.08332055807113647, + 0.061912551522254944, + 0.06390613317489624, + 0.09732405841350555, + 0.11813553422689438, + -0.016838407143950462, + 0.040032822638750076, + -0.022121939808130264, + 0.08001182973384857, + 0.03151440620422363, + 0.026716018095612526, + 0.016527488827705383, + -0.0277165025472641, + 0.011138040572404861, + -0.01962466537952423, + -0.04782872274518013, + -0.02105182409286499, + 0.012222223915159702, + 0.013110589236021042, + 0.03360828384757042, + 0.010957952588796616, + -0.047239482402801514, + 0.0485336109995842, + 0.03982091695070267, + -0.024835579097270966, + 0.06507693231105804, + 0.014884350821375847, + 0.004096033982932568, + 0.04506729543209076, + -0.09053198993206024, + -0.08962118625640869, + 0.008276755921542645, + 0.007184777408838272, + 0.012478053569793701, + 0.03677140176296234, + 0.0197935588657856, + -0.014974843710660934, + 0.11253708600997925, + 0.028747625648975372, + -0.030179714784026146, + 0.027362504974007607, + -0.06210380047559738, + 0.1302015632390976, + 0.09526360034942627, + 0.0033987753558903933, + 0.05254428833723068, + -0.07106545567512512, + 0.04407435655593872, + 0.03023122251033783, + -0.10974492877721786, + -0.0793764740228653, + -0.01271610613912344, + -0.005240126047283411, + -0.024861207231879234, + 0.10951578617095947, + -0.0011123642325401306, + 0.04358101636171341, + 0.11311906576156616, + -0.09732146561145782, + -0.030524391680955887, + 0.012786861509084702, + 0.03871888667345047, + -0.0693420022726059, + 0.026883520185947418, + 0.024641642346978188, + -0.010376667603850365, + 0.02571887895464897, + 0.07903122156858444, + 0.0032168482430279255, + 0.03503262996673584, + 0.03094591572880745, + -0.05997152626514435, + 0.03157106041908264, + -0.030329175293445587, + -0.011543367058038712, + 0.05789976567029953, + 0.060659561306238174, + 0.10066156089305878, + -0.03530433773994446, + -0.03605501353740692, + -0.10295362770557404, + 0.01207150612026453, + 0.008135126903653145, + 0.053194694221019745, + -0.02623765729367733, + 0.0026844320818781853, + -0.04492941126227379, + -0.07102026045322418, + 0.05340743437409401, + 0.0024783103726804256, + 0.07553350925445557, + -0.011634002439677715, + 0.011383520439267159, + 0.1108168438076973, + 0.034075766801834106, + 0.00588107667863369, + -0.06093894690275192, + -0.036231156438589096, + -0.024960467591881752, + 0.03524819388985634, + -0.0733175054192543, + -0.0526459738612175, + 0.0024429571349173784, + 0.023876946419477463, + -0.04030609875917435, + 0.07071715593338013, + 0.06764596700668335, + 0.028779897838830948, + 0.03869398683309555, + -0.012509806081652641, + -0.03194332495331764, + -0.04880797863006592, + -0.05567163974046707, + 0.00893435813486576, + -0.00252919876947999, + -0.05981268733739853, + 0.08401110768318176, + 0.035109564661979675, + 0.05701560899615288, + -0.03525567427277565, + -0.04844788461923599, + -0.10192984342575073, + 0.051501646637916565, + 0.012331448495388031, + -0.02791045419871807, + 0.035872284322977066, + 0.03841182589530945, + -0.05187975615262985, + 0.06851222366094589, + 0.09011781960725784, + 0.05522051453590393, + -0.03169730678200722, + 0.008116046898066998, + -0.0959625095129013, + 0.1069781631231308, + 0.11132871359586716, + -0.0743902251124382, + -0.09637438505887985, + -0.03360144793987274, + -0.09452845901250839, + 0.029925107955932617, + -0.03429165109992027, + -0.02270779386162758, + 0.06702468544244766, + 0.001764132408425212, + -0.1091214120388031, + -0.07458578050136566, + 0.06920494139194489, + -0.07603760063648224, + -0.002438775496557355, + -0.0638931393623352, + 0.030917895957827568, + 0.07071851193904877, + 0.03271857649087906, + -0.013270213268697262, + -0.029767053201794624, + 0.06868032366037369, + -0.04773161560297012, + 0.032205693423748016, + 0.06881655752658844, + 0.03367075324058533, + -0.05578242987394333, + -0.012317117303609848, + -0.04807884618639946, + 0.00622282549738884, + -0.01894450932741165, + 0.13298092782497406, + 0.027140147984027863, + -0.038350049406290054, + -0.050428710877895355, + 0.06762756407260895, + -0.06128579378128052, + 0.05508648231625557, + 0.019695326685905457, + 0.03885522484779358, + 0.06511763483285904, + -0.07835085690021515, + 0.11472852528095245, + 0.03113851509988308, + -0.061922840774059296, + -0.08783504366874695, + -0.07309067249298096, + -0.04796215146780014, + 0.04110460728406906, + 0.03031926602125168, + -0.08058655261993408, + -0.012373680248856544, + 0.03283856064081192, + -0.009387717582285404, + 0.05421913415193558, + 0.11533720791339874, + 0.06810104846954346, + -0.08834759145975113 + ] + }, + "p244_346.wav": { + "name": "p244", + "embedding": [ + 0.07210871577262878, + 0.11166694760322571, + -0.026589415967464447, + 0.030031569302082062, + -0.05290517210960388, + 0.06579455733299255, + -0.12648563086986542, + 0.13862329721450806, + -0.025357862934470177, + 0.14204758405685425, + -0.06121651083230972, + 0.1268324851989746, + -0.01438700221478939, + -0.16671913862228394, + -0.031155217438936234, + 0.05034483224153519, + -0.057185109704732895, + -0.027700150385499, + -0.03843969106674194, + -0.029972784221172333, + 0.025088196620345116, + 0.04572126269340515, + 0.033618099987506866, + 0.010355454869568348, + 0.03802390769124031, + 0.08006399869918823, + -0.012983969412744045, + 0.030424833297729492, + 0.0018929843790829182, + -0.06949885189533234, + -0.05493546277284622, + 0.1018865630030632, + -0.05870597064495087, + 0.016578517854213715, + 0.04055076837539673, + -0.016119560226798058, + -0.0006655063480138779, + -0.06159809231758118, + -0.019451359286904335, + 0.015043022111058235, + -0.035419102758169174, + 0.07804234325885773, + 0.02223268151283264, + -0.030461439862847328, + 0.03514702618122101, + 0.012019072659313679, + -0.007501565385609865, + -0.04286115616559982, + -0.10102902352809906, + 0.1699438989162445, + 0.07436004281044006, + -0.00016392780526075512, + -0.0704466700553894, + -0.0563688799738884, + 0.09077860414981842, + -0.011636397801339626, + -0.11089707165956497, + -0.023114528506994247, + 0.05805956572294235, + 0.13712985813617706, + -0.02690938301384449, + -0.042380958795547485, + 0.03662398084998131, + 0.13466346263885498, + 0.067609503865242, + 0.08088449388742447, + 0.07952743768692017, + 0.11223019659519196, + -0.04120715335011482, + 0.023579660803079605, + 0.0641297996044159, + 0.0662492960691452, + 0.08014080673456192, + -0.013523911125957966, + 0.02260228991508484, + -0.015035864897072315, + -0.01987355761229992, + -0.015860063955187798, + -0.01458186749368906, + -0.027581356465816498, + -0.01184071321040392, + -0.0022914642468094826, + 0.0015340391546487808, + 0.03595581278204918, + -0.03148810192942619, + 0.05267483741044998, + 0.05145016312599182, + -0.028606746345758438, + 0.0662049800157547, + 0.050139352679252625, + 0.02193133346736431, + 0.06545385718345642, + -0.08312764763832092, + -0.08141277730464935, + 0.050871506333351135, + 0.0019451389089226723, + 0.040741316974163055, + 0.07857110351324081, + 0.05487683415412903, + -0.012801513075828552, + 0.10977913439273834, + 0.056246720254421234, + -0.0006764865247532725, + 0.009939451701939106, + -0.08667836338281631, + 0.13208161294460297, + 0.103082075715065, + -0.04022331163287163, + 0.05104866623878479, + -0.03539847582578659, + 0.07707816362380981, + 0.07098853588104248, + -0.1389017254114151, + -0.07217241823673248, + 0.025976743549108505, + 0.009854231961071491, + -0.008709657937288284, + 0.0991295576095581, + 0.003028789535164833, + 0.049470946192741394, + 0.09339207410812378, + -0.08505438268184662, + -0.04880012199282646, + -0.03519634157419205, + 0.04732624068856239, + -0.10224151611328125, + 0.06668078899383545, + 0.06605608761310577, + -0.010493254289031029, + 3.6819837987422943e-06, + 0.07942492514848709, + -0.009084750898182392, + -0.005228916648775339, + 0.009002912789583206, + -0.033270735293626785, + 0.008502000942826271, + -0.014110216870903969, + 0.01087709330022335, + 0.024162493646144867, + 0.014641442336142063, + 0.03536529839038849, + -0.010668939910829067, + -0.011433234438300133, + -0.11826251447200775, + 0.03521667793393135, + 0.04551813751459122, + 0.06312485039234161, + -0.01719171553850174, + -0.0330636128783226, + -0.01640160381793976, + -0.06579912453889847, + 0.024562742561101913, + -0.009991688653826714, + 0.051906682550907135, + -0.022704631090164185, + -0.0007774537662044168, + 0.11164286732673645, + 0.038637712597846985, + -1.3448763638734818e-05, + -0.04170120507478714, + -0.022312477231025696, + 0.025479204952716827, + 0.059130266308784485, + -0.09289409220218658, + -0.09222902357578278, + -0.01051497831940651, + 0.012984300032258034, + -0.014248975552618504, + 0.07088484615087509, + 0.05621228367090225, + 0.003572426037862897, + 0.024213973432779312, + -0.061184998601675034, + 0.006932617165148258, + -0.10452644526958466, + -0.07151442021131516, + -0.020617865025997162, + -0.03697817400097847, + -0.021631551906466484, + 0.0833590179681778, + 0.022454526275396347, + 0.055356234312057495, + -0.03631935268640518, + -0.05389655381441116, + -0.06547439098358154, + 0.05798552185297012, + 0.07042905688285828, + 0.0003022877499461174, + 0.03276430815458298, + 0.05818331614136696, + -0.013985903933644295, + 0.049035146832466125, + 0.060382381081581116, + 0.10376324504613876, + -0.03490917384624481, + 0.01874351128935814, + -0.0734420046210289, + 0.077022023499012, + 0.08631910383701324, + -0.09909568727016449, + -0.09585420787334442, + -0.04311494529247284, + -0.06203712522983551, + 0.026148581877350807, + -0.029802629724144936, + 0.016733741387724876, + 0.034567661583423615, + -0.008480810560286045, + -0.08948124945163727, + -0.11097423732280731, + 0.10051584243774414, + -0.0623873770236969, + -0.0011464687995612621, + -0.08466720581054688, + 0.0560152530670166, + 0.07863102853298187, + 0.036488354206085205, + -0.042816877365112305, + 0.00606294721364975, + 0.04221480339765549, + -0.01655549183487892, + 0.00408388115465641, + 0.05716034024953842, + 0.04579092562198639, + -0.11718948185443878, + -0.004729651380330324, + -0.06429540365934372, + 0.07563677430152893, + -0.05978791415691376, + 0.15995538234710693, + 0.010114320553839207, + -0.054568588733673096, + -0.08873523771762848, + 0.05909750610589981, + -0.019260264933109283, + 0.04408474639058113, + 0.03442694619297981, + 0.055299047380685806, + 0.030035164207220078, + -0.07887953519821167, + 0.10196585953235626, + 0.04201589152216911, + -0.03978707641363144, + -0.07471296191215515, + -0.04805316776037216, + -0.03540157899260521, + 0.04803115129470825, + 0.020751869305968285, + -0.08235003054141998, + -0.01914026215672493, + 0.017218807712197304, + -0.0037166166584938765, + 0.07060544192790985, + 0.151498943567276, + 0.061921000480651855, + -0.11944206804037094 + ] + }, + "p244_280.wav": { + "name": "p244", + "embedding": [ + 0.060478486120700836, + 0.07014969736337662, + -0.0003303766716271639, + 0.03782152011990547, + -0.03082103468477726, + 0.07061322778463364, + -0.1573628932237625, + 0.12538211047649384, + -0.03756590187549591, + 0.13343311846256256, + -0.061775628477334976, + 0.09434889256954193, + -0.012579934671521187, + -0.18807080388069153, + -0.0476452074944973, + 0.06009714677929878, + -0.04862841218709946, + -0.030980505049228668, + -0.030674036592245102, + -0.0053529394790530205, + 0.02953764982521534, + 0.047824740409851074, + 0.037942495197057724, + 0.005611931439489126, + 0.04103648662567139, + 0.045796703547239304, + 0.0025880367029458284, + 0.06205648556351662, + 0.017863420769572258, + -0.05217069387435913, + -0.008744262158870697, + 0.11043752729892731, + -0.04434295743703842, + 0.012487146072089672, + 0.04547634348273277, + 0.01933441311120987, + 0.003564878599718213, + -0.0836782157421112, + -0.03571081534028053, + -0.0026182434521615505, + -0.057573460042476654, + 0.07964299619197845, + 0.048467136919498444, + -0.005043788347393274, + 0.034075137227773666, + 0.010259522125124931, + -0.01572520099580288, + -0.06692887842655182, + -0.12203095853328705, + 0.16736356914043427, + 0.04114377498626709, + 0.03100799024105072, + -0.07878031581640244, + -0.08628706634044647, + 0.10114747285842896, + -0.009735843166708946, + -0.11582085490226746, + -0.03876187652349472, + 0.08211887627840042, + 0.19482824206352234, + -0.032070789486169815, + -0.03762795031070709, + 0.03315575793385506, + 0.11731021106243134, + 0.07215867936611176, + 0.08511636406183243, + 0.09045302867889404, + 0.11017961800098419, + 0.01949392817914486, + -0.0006871321238577366, + 0.05344098061323166, + 0.0596701018512249, + 0.03936806321144104, + -0.0022030463442206383, + 0.016414135694503784, + 0.02472023293375969, + -0.028909089043736458, + 0.0037146545946598053, + -0.013230424374341965, + 0.0028750647325068712, + 0.005122964736074209, + 0.013863536529242992, + 0.01978185586631298, + 0.05334577336907387, + -0.04296736791729927, + 0.045819856226444244, + 0.0030826441943645477, + -0.015915557742118835, + 0.06957364082336426, + 0.01776098646223545, + 0.010859650559723377, + 0.05378272384405136, + -0.057663775980472565, + -0.09368374943733215, + 0.004344256594777107, + 0.008660512045025826, + 0.011232402175664902, + 0.05625608190894127, + 0.03634929656982422, + -0.034326665103435516, + 0.12762080132961273, + 0.0305621474981308, + -0.015298018231987953, + 0.03482647240161896, + -0.09564433246850967, + 0.09422804415225983, + 0.07521044462919235, + -0.0016128204297274351, + 0.0644950419664383, + -0.05217842757701874, + 0.05746022239327431, + 0.077559694647789, + -0.15510886907577515, + -0.07660350203514099, + 0.07537676393985748, + 0.038983121514320374, + 0.003099447349086404, + 0.14587566256523132, + 0.0094251474365592, + 0.03234625980257988, + 0.0948590487241745, + -0.09525232762098312, + -0.04483780264854431, + -0.007484804838895798, + 0.0642944797873497, + -0.07523420453071594, + 0.041439399123191833, + 0.034983936697244644, + -0.028654197230935097, + -0.01614030823111534, + 0.07284779846668243, + -0.0013894164003431797, + -0.00017082225531339645, + -0.010916239582002163, + -0.039183609187603, + 0.04822877049446106, + -0.03047354519367218, + -0.0013511828146874905, + 0.0478319376707077, + 0.0468166247010231, + 0.030552595853805542, + 0.011445598676800728, + -0.07172305881977081, + -0.14100781083106995, + -0.009380286559462547, + 0.04078041762113571, + 0.09323626756668091, + -0.0193291325122118, + -0.021773088723421097, + -0.059698499739170074, + -0.05373607575893402, + 0.04152636229991913, + -0.010325471870601177, + 0.09380179643630981, + 0.0008813398890197277, + -0.011472019366919994, + 0.09109489619731903, + -0.006185851059854031, + 0.011839545331895351, + -0.026966169476509094, + -0.02594616636633873, + 0.0022142822854220867, + 0.042140789330005646, + -0.06941162049770355, + -0.05290977656841278, + 0.011227907612919807, + 0.038221877068281174, + -0.019123263657093048, + 0.03171005845069885, + 0.025507617741823196, + 0.02013111114501953, + 0.034457430243492126, + -0.055262792855501175, + -0.002053313422948122, + -0.11382970213890076, + -0.06424825638532639, + 0.018081890419125557, + 0.007068316452205181, + -0.011743100360035896, + 0.0919254720211029, + 0.03653419762849808, + 0.05397625267505646, + -0.014124181121587753, + -0.07891079783439636, + -0.06933921575546265, + 0.0627862885594368, + 0.06671788543462753, + 0.003754342906177044, + 0.03462069109082222, + 0.04744644835591316, + -0.01629844680428505, + 0.05497806519269943, + 0.06399870663881302, + 0.09277167916297913, + -0.008421486243605614, + 0.0008284798823297024, + -0.07660794258117676, + 0.10520949959754944, + 0.07809194177389145, + -0.07596531510353088, + -0.07989215850830078, + -0.00189402315299958, + -0.07995735108852386, + 0.03510107845067978, + -0.018750691786408424, + 0.022173797711730003, + 0.021866794675588608, + -0.02222725749015808, + -0.10737795382738113, + -0.09425497055053711, + 0.07138977944850922, + -0.07614212483167648, + -0.018508248031139374, + -0.07459993660449982, + 0.03939858078956604, + 0.10009239614009857, + 0.04365496709942818, + 0.009761950932443142, + -0.015313250944018364, + 0.03632032871246338, + -0.0698617547750473, + -0.023288385942578316, + 0.06016835197806358, + -0.0010722246952354908, + -0.12363427132368088, + 0.005966808646917343, + -0.07906326651573181, + 0.06645837426185608, + -0.04923289269208908, + 0.15301790833473206, + 0.0033569803927093744, + -0.06137098744511604, + -0.08379287272691727, + 0.012940006330609322, + -0.025993112474679947, + 0.058549702167510986, + 0.029668355360627174, + 0.07477380335330963, + 0.05629333108663559, + -0.05086246877908707, + 0.10138367116451263, + 0.04571443423628807, + -0.03205813467502594, + -0.06697387993335724, + -0.05641714483499527, + -0.028425320982933044, + 0.023195780813694, + -0.016321396455168724, + -0.07328684628009796, + -0.008601004257798195, + 0.03166140615940094, + -0.0185615886002779, + 0.03842851147055626, + 0.12477824836969376, + 0.05128330737352371, + -0.12961441278457642 + ] + }, + "p244_065.wav": { + "name": "p244", + "embedding": [ + 0.007054517976939678, + 0.08852758258581161, + -0.0030881152488291264, + 0.0636865422129631, + -0.02267257496714592, + -0.024485107511281967, + -0.11980750411748886, + 0.05317477136850357, + 0.028464192524552345, + 0.08153848350048065, + -0.03808337822556496, + 0.08043301105499268, + -0.049214012920856476, + -0.1045268103480339, + 0.011294144205749035, + 0.007210413925349712, + 0.04944579675793648, + 0.012070726603269577, + 0.05308769270777702, + -0.00642412668094039, + -0.012724775820970535, + 0.014442275278270245, + -0.05375155061483383, + 0.010946331545710564, + -0.017190538346767426, + 0.00409560464322567, + -0.03997906297445297, + 0.030390020459890366, + -0.02666877582669258, + -0.03509528934955597, + 0.023254292085766792, + 0.024275124073028564, + -0.03428839519619942, + -0.00648182537406683, + -0.006953302770853043, + 0.020122431218624115, + -0.01958870142698288, + -0.019027702510356903, + -0.033361345529556274, + -0.053111203014850616, + -0.06355586647987366, + 0.007037436589598656, + 0.024053290486335754, + -0.041075557470321655, + 0.01932276040315628, + 0.04714740812778473, + -0.02205568179488182, + -0.007933729328215122, + -0.03981979936361313, + 0.06050863116979599, + 0.007435048930346966, + 0.09415753185749054, + -0.04852147772908211, + -0.04339141398668289, + 0.08928994089365005, + 0.032963402569293976, + 0.022321002557873726, + -0.009264932945370674, + 0.008072290569543839, + 0.08619340509176254, + 0.02580038085579872, + 0.0016125477850437164, + 0.05168456584215164, + 0.03864423930644989, + 0.021270928904414177, + 0.018495289608836174, + 0.05618312954902649, + 0.04735862463712692, + -0.024951014667749405, + -0.015342317521572113, + 0.032533105462789536, + 0.02854267694056034, + -0.003760816529393196, + 0.024109598249197006, + -0.01245660986751318, + 0.05564098805189133, + 0.0069576771929860115, + 0.052089814096689224, + -0.039382994174957275, + -0.007599366828799248, + -0.005017128773033619, + 0.02545362338423729, + 0.012090643867850304, + -0.003604564815759659, + -0.04543128237128258, + -0.044524699449539185, + 0.07269853353500366, + 0.03109152987599373, + 0.02478325180709362, + -0.0010882458882406354, + 0.04931827634572983, + 0.011062037199735641, + -0.07306485623121262, + -0.006963550113141537, + 0.029459502547979355, + -0.014439661987125874, + 0.05608278140425682, + 0.006197329610586166, + 0.004131363704800606, + -0.0008229962550103664, + 0.06696853786706924, + -0.038628462702035904, + 0.04334733635187149, + -0.01070895604789257, + -0.04666449502110481, + -0.00774046778678894, + 0.009578716941177845, + 0.011090116575360298, + 0.062096551060676575, + -0.005763772875070572, + 0.025457151234149933, + 0.07299954444169998, + -0.05411238968372345, + -0.036584626883268356, + 0.040011610835790634, + 0.08659297227859497, + -0.026051782071590424, + 0.105359748005867, + 0.012498749420046806, + 0.03378230705857277, + 0.03779051452875137, + -0.008045244961977005, + -0.04387284070253372, + 0.001744009554386139, + 0.018662968650460243, + -0.01628388836979866, + 0.060004279017448425, + 0.01878431998193264, + -0.026796922087669373, + -0.05688052996993065, + 0.04540418088436127, + -0.013780368492007256, + -0.006090857088565826, + -0.020738810300827026, + 0.03176988288760185, + -0.040732331573963165, + 0.05360192060470581, + -0.05600165203213692, + -0.018467068672180176, + 0.04460231214761734, + -0.021325290203094482, + -0.002376510761678219, + -0.010872955434024334, + -0.08862053602933884, + 0.019667156040668488, + 0.017193248495459557, + 0.00880078598856926, + 0.07495932281017303, + -0.07368112355470657, + -0.09551052004098892, + -0.02687603235244751, + 0.01950133591890335, + -0.011110908351838589, + 0.06437593698501587, + 0.07642767578363419, + 0.03576076775789261, + 0.026395520195364952, + -0.00975878443568945, + 0.016826525330543518, + 0.030054941773414612, + -0.12074629962444305, + -0.004736792296171188, + 0.003714575432240963, + 0.035051919519901276, + -0.021945547312498093, + 0.008539482951164246, + 0.02285677008330822, + -0.016836900264024734, + 0.008142596110701561, + 0.03265974298119545, + 0.03339824825525284, + 0.03713845834136009, + -0.11179555952548981, + -0.006665410939604044, + -0.041757918894290924, + -0.08026179671287537, + 0.028926577419042587, + 0.020995359867811203, + 0.004242144525051117, + 0.024909673258662224, + 0.044699542224407196, + 0.010940499603748322, + -0.030128225684165955, + -0.02363281510770321, + -0.04188314825296402, + -0.005710013676434755, + 0.0007939375936985016, + -0.0037873294204473495, + -0.010398989543318748, + 0.0022998731583356857, + 0.02183486893773079, + 0.02785884588956833, + 0.01234511286020279, + 0.044538822025060654, + -0.021557513624429703, + 0.009014240466058254, + 0.043109044432640076, + 0.1039772778749466, + 0.050274889916181564, + -0.06282788515090942, + -0.07150369882583618, + 0.01840965822339058, + -0.07788141071796417, + 0.023911356925964355, + -0.005105285905301571, + 0.036022037267684937, + -0.008091493509709835, + 0.006417714059352875, + 0.031618375331163406, + -0.12832170724868774, + 0.0010662898421287537, + -0.021570947021245956, + -0.03863372653722763, + 0.0058544352650642395, + -0.00021003000438213348, + 0.038972217589616776, + 0.01815401017665863, + -0.01616358757019043, + -0.08109483867883682, + 0.015411155298352242, + 0.018661584705114365, + 0.021232973784208298, + 0.07534293830394745, + 0.030911121517419815, + -0.01609310507774353, + -8.790404535830021e-05, + -0.038275957107543945, + 0.013330904766917229, + 0.008816724643111229, + 0.020381882786750793, + 0.016050497069954872, + -0.019882112741470337, + -0.07982417941093445, + 0.016075707972049713, + 0.01653657853603363, + 0.04855777323246002, + -0.05607140064239502, + 0.003358134999871254, + 0.03295283764600754, + -0.020481236279010773, + 0.0936817079782486, + 0.05501065403223038, + -0.004118446726351976, + -0.024199025705456734, + -0.022350359708070755, + -0.030676506459712982, + 0.06899551302194595, + 0.027223506942391396, + -0.04199513420462608, + -0.023756854236125946, + 0.06762238591909409, + 0.061578549444675446, + 0.06401962041854858, + 0.06752371788024902, + 0.0323612280189991, + 0.008513741195201874 + ] + }, + "p244_401.wav": { + "name": "p244", + "embedding": [ + 0.04489310085773468, + 0.07182004302740097, + 0.0011177249252796173, + -0.004109829664230347, + -0.034445881843566895, + 0.07682614028453827, + -0.11882264912128448, + 0.10732126235961914, + -0.028650319203734398, + 0.10478071868419647, + -0.07900713384151459, + 0.09189572930335999, + -0.03820741921663284, + -0.15655018389225006, + -0.040688566863536835, + 0.039437856525182724, + -0.028592970222234726, + -0.002292851684615016, + -0.023234358057379723, + -0.011581746861338615, + 0.031602825969457626, + 0.028258662670850754, + 0.012293512932956219, + -0.007524948567152023, + 0.03390558063983917, + 0.051076389849185944, + 0.01826249063014984, + 0.03736492991447449, + 0.019276108592748642, + -0.02670341730117798, + -0.0020804828964173794, + 0.08596721291542053, + -0.022331437095999718, + 0.006396051496267319, + 0.04163404181599617, + -0.004347694106400013, + 0.011006522923707962, + -0.06619955599308014, + 0.00893741101026535, + 0.035417478531599045, + -0.032548002898693085, + 0.07003971189260483, + 0.07857532799243927, + 0.0029592267237603664, + 0.025644049048423767, + 0.01917346566915512, + 0.021810319274663925, + -0.05014675483107567, + -0.09140770137310028, + 0.17448531091213226, + 0.029064586386084557, + -0.003430331591516733, + -0.08150865137577057, + -0.030426636338233948, + 0.0925912857055664, + 0.013099310919642448, + -0.07282260060310364, + -0.0327586755156517, + 0.08186417073011398, + 0.13813602924346924, + 0.005199912004172802, + -0.04613731801509857, + 0.01917032152414322, + 0.11498075723648071, + 0.00905969925224781, + 0.06572088599205017, + 0.08403681963682175, + 0.08654722571372986, + -0.001270835637114942, + 0.020083539187908173, + 0.03906271234154701, + 0.04610569030046463, + -0.010907359421253204, + -0.02932312712073326, + 0.015360893681645393, + -0.02838645689189434, + -0.04259275645017624, + 0.014861616306006908, + 0.0005569010972976685, + -0.02950633130967617, + -0.00064772495534271, + 0.009545441716909409, + 0.016760990023612976, + 0.012044175527989864, + -0.012275079265236855, + 0.04524761438369751, + -0.015177300199866295, + 0.024818813428282738, + 0.07859313488006592, + 0.015163875184953213, + 0.007043452933430672, + 0.02522212825715542, + -0.04402400180697441, + -0.08786113560199738, + -0.0013720368733629584, + 0.005846457555890083, + -0.007249782793223858, + 0.04216877743601799, + 0.04215012118220329, + -0.02289453148841858, + 0.11355797946453094, + 0.03916066139936447, + -0.01779448799788952, + 0.015762940049171448, + -0.06729009747505188, + 0.0975072979927063, + 0.07447269558906555, + 0.0046886904165148735, + 0.07150852680206299, + -0.07578445225954056, + 0.04128572344779968, + 0.04009030759334564, + -0.12140516936779022, + -0.038901109248399734, + 0.04106326401233673, + 0.019915258511900902, + 0.017193442210555077, + 0.13464881479740143, + -0.01360523235052824, + -0.006719199474900961, + 0.06171268969774246, + -0.09263436496257782, + -0.05506977066397667, + -0.020614199340343475, + 0.049023985862731934, + -0.028678346425294876, + 0.013152997009456158, + 0.04140090569853783, + -0.005198844708502293, + -0.009676923975348473, + 0.05090288817882538, + -0.02106054499745369, + -0.010947386734187603, + 0.0070092095993459225, + -0.0031143552623689175, + 0.05345790088176727, + -0.021911390125751495, + 0.014261135831475258, + 0.015416580252349377, + 0.056310348212718964, + 0.03309084475040436, + 0.028845787048339844, + -0.0822661742568016, + -0.08312277495861053, + -0.016405954957008362, + 0.02270328812301159, + 0.0729580968618393, + -0.020277883857488632, + -0.03376463055610657, + -0.04484662413597107, + -0.0312936007976532, + -0.003465568646788597, + 0.002198886126279831, + 0.07714059948921204, + 0.019428126513957977, + -0.0009956683497875929, + 0.09624773263931274, + 0.03908269852399826, + 0.004569241777062416, + -0.044861942529678345, + -0.03633127734065056, + -0.007806172128766775, + 0.035614993423223495, + -0.04768701642751694, + -0.055022209882736206, + -0.012597106397151947, + 0.0009983207564800978, + -0.022495344281196594, + -0.00691523402929306, + 0.011133741587400436, + 0.023090727627277374, + 0.028663285076618195, + -0.09162688255310059, + 0.0077186645939946175, + -0.10169520229101181, + -0.013930174522101879, + 0.003624526783823967, + -0.006425138097256422, + -0.02408706210553646, + 0.07169730961322784, + 0.027275746688246727, + 0.042725272476673126, + -0.012898693792521954, + -0.017067894339561462, + -0.018911590799689293, + 0.04049438238143921, + 0.08427852392196655, + -0.0075738802552223206, + 0.024786634370684624, + 0.03650485724210739, + -0.014552943408489227, + 0.0440838560461998, + 0.05364827439188957, + 0.04882293567061424, + -0.025804173201322556, + -0.01869308203458786, + -0.024130692705512047, + 0.0934181660413742, + 0.05555276572704315, + -0.06930126249790192, + -0.0791609063744545, + -0.023157767951488495, + -0.05146999657154083, + 0.031920306384563446, + -0.029901180416345596, + 0.00803244486451149, + 0.008386016823351383, + -0.02284039556980133, + -0.07294479757547379, + -0.052257053554058075, + 0.03019798919558525, + -0.025340361520648003, + 0.0014590885257348418, + -0.08998271077871323, + 0.062331221997737885, + 0.12441585958003998, + 0.012446841225028038, + -0.00011241436004638672, + -0.009898337535560131, + 0.008208958432078362, + -0.04118141531944275, + -0.017398323863744736, + 0.007388897240161896, + 0.011968409642577171, + -0.10124349594116211, + 0.010999663732945919, + -0.038165345788002014, + 0.07665795087814331, + -0.05123162269592285, + 0.13270463049411774, + 0.022762609645724297, + -0.07037785649299622, + -0.07649403810501099, + 0.04354443401098251, + -0.022880151867866516, + 0.026879917830228806, + 0.026550687849521637, + 0.002287554321810603, + 0.045405417680740356, + -0.04320551082491875, + 0.07766204327344894, + 0.012355471029877663, + -0.03675200417637825, + -0.052819471806287766, + -0.026048731058835983, + -0.007226914167404175, + 0.034377098083496094, + -0.02456560730934143, + -0.047170452773571014, + -0.03708440065383911, + 0.03570055961608887, + -0.00039428070886060596, + 0.07206713408231735, + 0.08851854503154755, + 0.05097908899188042, + -0.10105577111244202 + ] + }, + "p244_028.wav": { + "name": "p244", + "embedding": [ + 0.04755127429962158, + 0.10183662176132202, + 0.0010523957898840308, + 0.02922067604959011, + -0.04274490475654602, + 0.038365814834833145, + -0.06552916765213013, + 0.08610039204359055, + 0.035453494638204575, + 0.06006334349513054, + -0.07028511166572571, + 0.08537688106298447, + -0.04050898179411888, + -0.1390821784734726, + 0.024735689163208008, + 0.042568638920784, + -0.014613419771194458, + 0.014225073158740997, + -0.029939576983451843, + -0.034473054111003876, + -0.010743875056505203, + 0.00788539182394743, + 0.03904461860656738, + -0.02794816344976425, + 0.011626980267465115, + 0.03243539482355118, + -0.03089280053973198, + 0.0042264265939593315, + -0.02236943319439888, + -0.049150656908750534, + -0.03482130542397499, + 0.06426028907299042, + -0.039804838597774506, + -0.01849549077451229, + 0.007050680927932262, + -0.03167414292693138, + -0.008302778005599976, + -0.05966934561729431, + -0.040282219648361206, + 0.02036818116903305, + -0.05221115052700043, + 0.04385153949260712, + 0.0334717333316803, + -0.05056173354387283, + 0.052905336022377014, + 0.0016782870516180992, + -0.037295300513505936, + -0.01027694158256054, + -0.09702881425619125, + 0.11669182032346725, + 0.021666383370757103, + 0.03943680226802826, + -0.07181055843830109, + -0.018096525222063065, + 0.08736743777990341, + 0.00660637766122818, + -0.04432570934295654, + -0.01977316103875637, + 0.04292946308851242, + 0.06551717966794968, + 0.025621537119150162, + -0.023061856627464294, + 0.029861142858862877, + 0.051065441220998764, + 0.03569559007883072, + 0.03514891117811203, + 0.07030251622200012, + 0.10977679491043091, + -0.025406427681446075, + 0.02344321832060814, + 0.040315043181180954, + 0.016602082177996635, + 0.030591100454330444, + -0.0058657038025557995, + -0.00417511910200119, + -0.0190811138600111, + 0.007784759160131216, + -0.018561270087957382, + -0.012272404506802559, + -0.03856922313570976, + 0.0358729213476181, + -0.011877069249749184, + 0.024296961724758148, + 0.003412483958527446, + -0.03995659202337265, + 0.0005717501044273376, + 0.07475002855062485, + 0.04483198747038841, + 0.07419504970312119, + 0.023583896458148956, + 0.0038302745670080185, + 0.06575292348861694, + -0.08080480992794037, + -0.0626729428768158, + 0.02762717567384243, + 0.0047406721860170364, + 0.0345180444419384, + 0.03522268682718277, + 0.03593577444553375, + -0.021924622356891632, + 0.09303209185600281, + 0.016171371564269066, + 0.02173789218068123, + 0.0038622687570750713, + -0.06000085920095444, + 0.04291970655322075, + 0.06911487877368927, + -0.0031252149492502213, + 0.06710980087518692, + 0.003924044780433178, + 0.0574735552072525, + 0.0593157634139061, + -0.06362977623939514, + -0.007711254060268402, + -0.013962488621473312, + 0.014901747927069664, + -0.0062421150505542755, + 0.11572062224149704, + 0.005575128830969334, + 0.047401800751686096, + 0.11153077334165573, + -0.08428153395652771, + -0.017851917073130608, + 0.03323207423090935, + -0.006795029155910015, + -0.03945271670818329, + 0.04119458794593811, + 0.05774679034948349, + -0.023836631327867508, + -0.003152022836729884, + 0.02888466790318489, + 0.007186677306890488, + 0.013508424162864685, + -0.031240282580256462, + -0.00527383154258132, + -0.01741006039083004, + 0.013710341416299343, + -0.026303980499505997, + 0.04059672728180885, + 0.0510963499546051, + 0.005595838185399771, + 0.0031259420793503523, + -0.023735901340842247, + -0.0815017819404602, + 0.024494286626577377, + 0.005684319883584976, + 0.015271495096385479, + 0.027004096657037735, + -0.02345387265086174, + -0.05020205304026604, + -0.04126422107219696, + 0.05323927849531174, + -0.01286892220377922, + 0.0534650981426239, + 0.04284551739692688, + -0.02408970147371292, + 0.0656687468290329, + 0.04228387027978897, + 0.018443554639816284, + -0.03604736924171448, + -0.10777660459280014, + 0.011916114948689938, + 0.027050882577896118, + -0.06734307110309601, + -0.041548795998096466, + -0.03302937000989914, + -0.026736650615930557, + -0.02513352781534195, + 0.018220387399196625, + 0.06891888380050659, + -0.001024129567667842, + 0.005385813768953085, + -0.06709214299917221, + 0.01778745837509632, + -0.025751546025276184, + -0.08605223894119263, + 0.04397451505064964, + 0.013558605685830116, + -0.005675298627465963, + 0.07290878146886826, + 0.011174386367201805, + 0.007607316132634878, + -0.06834818422794342, + -0.03054022789001465, + 0.0006859104032628238, + 0.028349969536066055, + 0.009199216030538082, + -0.0023368187248706818, + 0.038524508476257324, + 0.03716970235109329, + -0.02000138722360134, + 0.03221309557557106, + 0.027532130479812622, + 0.0699729472398758, + -0.041125424206256866, + 0.011979207396507263, + -0.003780066967010498, + 0.09037631005048752, + 0.06973788142204285, + -0.0585121214389801, + -0.09334539622068405, + -0.0418572723865509, + -0.05219274386763573, + 0.03597882390022278, + -0.013921931385993958, + 0.0046239858493208885, + 0.0304935984313488, + -0.005541916936635971, + -0.027760235592722893, + -0.12137407064437866, + 0.03088071197271347, + -0.00470554968342185, + -0.011253468692302704, + -0.04905698448419571, + 0.03508400917053223, + 0.04082183167338371, + 0.013387786224484444, + -0.029505278915166855, + 0.0028569649439305067, + 0.021662142127752304, + 0.005729150027036667, + 0.0009606803650967777, + 0.03738084062933922, + 0.05761587247252464, + -0.032028183341026306, + -0.025989770889282227, + -0.05615795776247978, + 0.05168236419558525, + 0.025567544624209404, + 0.10789619386196136, + 0.03592901676893234, + 0.0039420402608811855, + -0.07238127291202545, + 0.05853618308901787, + -0.007556072436273098, + 0.044537194073200226, + -0.000889735936652869, + 0.03255235031247139, + 0.05939881503582001, + -0.05622616410255432, + 0.07850207388401031, + 0.02056068181991577, + -0.03140944242477417, + -0.02984531596302986, + 0.0037734932266175747, + -0.055665504187345505, + 0.018798034638166428, + -0.006064708344638348, + -0.06632205098867416, + -0.009425180032849312, + 0.04087073355913162, + 0.061400409787893295, + 0.039582133293151855, + 0.0802602469921112, + 0.028447499498724937, + -0.012771984562277794 + ] + }, + "p244_375.wav": { + "name": "p244", + "embedding": [ + 0.059578537940979004, + 0.09280254691839218, + -0.0066365948878228664, + 0.024891652166843414, + -0.053558267652988434, + 0.06540051102638245, + -0.11934581398963928, + 0.12229330837726593, + -0.0509914830327034, + 0.15572336316108704, + -0.07859791815280914, + 0.11564308404922485, + -0.021675940603017807, + -0.18438056111335754, + -0.015552418306469917, + 0.06570121645927429, + -0.02968379110097885, + -0.010172601789236069, + -0.05178419500589371, + -0.009660843759775162, + 0.01647229492664337, + 0.04650793597102165, + 0.04146043211221695, + -0.027816975489258766, + 0.06240103021264076, + 0.06358069181442261, + -0.017046866938471794, + 0.03668953850865364, + -0.0048728445544838905, + -0.10522384196519852, + -0.05157117545604706, + 0.10016235709190369, + -0.062238238751888275, + 0.015529388561844826, + 0.05061105638742447, + 0.00023448059801012278, + -0.002044137567281723, + -0.06672107428312302, + -0.03165212646126747, + 0.0012310049496591091, + -0.040847357362508774, + 0.07420497387647629, + 0.004687570966780186, + -0.029070932418107986, + 0.04449932277202606, + 0.014169570058584213, + -0.008884252980351448, + -0.050716713070869446, + -0.09780256450176239, + 0.14669272303581238, + 0.03418397158384323, + 0.021093983203172684, + -0.0908086970448494, + -0.09299582988023758, + 0.09701521694660187, + -0.025175780057907104, + -0.11251315474510193, + -0.03461805358529091, + 0.06012021750211716, + 0.1627790480852127, + -0.02188902720808983, + -0.04220303148031235, + 0.019917529076337814, + 0.07649338990449905, + 0.0470145046710968, + 0.09943431615829468, + 0.06948114931583405, + 0.07604683935642242, + 0.005181148182600737, + 0.03605261445045471, + 0.0520034059882164, + 0.07600453495979309, + 0.06825710088014603, + -0.01941586285829544, + 0.016241174191236496, + 0.002721425611525774, + -0.04470668360590935, + -0.010297677479684353, + -0.020321939140558243, + -0.009839298203587532, + -0.014528479427099228, + 0.0029372014105319977, + 0.028109008446335793, + -0.005147801712155342, + -0.02741917409002781, + 0.038570158183574677, + 0.03876641392707825, + -0.0266829002648592, + 0.06695496290922165, + 0.038391269743442535, + -0.01220671646296978, + 0.04704676568508148, + -0.08746813237667084, + -0.09188591688871384, + 0.02267633005976677, + 0.015564397908747196, + -0.0035276205744594336, + 0.06636932492256165, + 0.04641081020236015, + -0.023868784308433533, + 0.11050665378570557, + 0.04873201996088028, + 0.026215987280011177, + 0.02176022343337536, + -0.09232854843139648, + 0.10331210494041443, + 0.0937546119093895, + -0.012360389344394207, + 0.06315313279628754, + -0.03728475421667099, + 0.07729382812976837, + 0.08975464105606079, + -0.15307822823524475, + -0.0802825316786766, + -0.007423429749906063, + -0.0359358973801136, + 0.0044212304055690765, + 0.09970168769359589, + -0.012956305406987667, + 0.02692350186407566, + 0.09899879992008209, + -0.12060088664293289, + -0.05770988017320633, + -0.004800276830792427, + 0.040592700242996216, + -0.09787033498287201, + 0.0659930408000946, + 0.040485505014657974, + -0.01716802455484867, + 0.00959782488644123, + 0.07381284236907959, + -0.00859649758785963, + 0.00956201646476984, + 0.00805002823472023, + -0.04012591764330864, + 0.0008313688449561596, + -0.042600467801094055, + -0.008403842337429523, + 0.07794525474309921, + 0.032944850623607635, + 0.061015062034130096, + -0.011487586423754692, + -0.02267439104616642, + -0.11197391152381897, + 0.009205866605043411, + 0.040095292031764984, + 0.06204332411289215, + -0.0201509241014719, + -0.006357738748192787, + -0.043703507632017136, + -0.0847778171300888, + 0.04851159453392029, + -0.010166676715016365, + 0.08910751342773438, + 0.009700733236968517, + 0.021795623004436493, + 0.11651267111301422, + 0.036139898002147675, + -0.012692245654761791, + -0.063199482858181, + -0.029565289616584778, + 0.0086702611297369, + 0.06336972117424011, + -0.08738499879837036, + -0.07571856677532196, + 0.0010187309235334396, + -0.003994225990027189, + -0.021148551255464554, + 0.06660972535610199, + 0.052289340645074844, + 0.029873261228203773, + 0.03169350326061249, + -0.0618247352540493, + 0.0031243953853845596, + -0.10155005753040314, + -0.07095028460025787, + -0.016942543908953667, + -0.0493391677737236, + -0.030458148568868637, + 0.10075749456882477, + 0.022182809188961983, + 0.028399672359228134, + -0.037996806204319, + -0.0672098770737648, + -0.08322595059871674, + 0.06166207790374756, + 0.0402684286236763, + 0.0059422701597213745, + 0.021377118304371834, + 0.04352794587612152, + -0.03173092007637024, + 0.06193907931447029, + 0.07415612041950226, + 0.09858869016170502, + -0.018818747252225876, + 0.03497813642024994, + -0.05843231454491615, + 0.10435932129621506, + 0.09960930049419403, + -0.08169743418693542, + -0.10250139236450195, + -0.041442614048719406, + -0.07611596584320068, + 0.06408633291721344, + -0.019564621150493622, + 0.00157434050925076, + 0.030543766915798187, + -0.026445912197232246, + -0.08242195844650269, + -0.0919657051563263, + 0.0996866375207901, + -0.03322572633624077, + -0.028335459530353546, + -0.06936761736869812, + 0.04020280763506889, + 0.05407722294330597, + 0.049542464315891266, + -0.011735916137695312, + 0.015297822654247284, + 0.060945961624383926, + -0.05752795934677124, + -0.004825894255191088, + 0.07949329912662506, + 0.0022117667831480503, + -0.06799446791410446, + 0.0049944594502449036, + -0.06599101424217224, + 0.0729508101940155, + -0.05294749513268471, + 0.1609140783548355, + -0.023618346080183983, + -0.06585977971553802, + -0.07187116146087646, + 0.04707232490181923, + -0.029453633353114128, + 0.038448482751846313, + 0.04046997055411339, + 0.071866974234581, + 0.05872473120689392, + -0.06087472662329674, + 0.09252091497182846, + 0.03984646499156952, + -0.0178317129611969, + -0.04091453552246094, + -0.08009994775056839, + -0.05055548995733261, + 0.016472145915031433, + -0.020330043509602547, + -0.09813778102397919, + 0.031845033168792725, + 0.015062674880027771, + 0.006186965387314558, + 0.04824165254831314, + 0.13069140911102295, + 0.05769135057926178, + -0.11621339619159698 + ] + }, + "p244_092.wav": { + "name": "p244", + "embedding": [ + 0.046102799475193024, + 0.1064535602927208, + 0.03882990777492523, + 0.007487049326300621, + 0.00428888201713562, + 0.021372683346271515, + -0.03719458356499672, + 0.07438396662473679, + 0.05713196471333504, + 0.03525877371430397, + -0.08500215411186218, + 0.0642709955573082, + -0.04784000292420387, + -0.11319784820079803, + 0.00696053309366107, + 0.02920011430978775, + -0.04282845929265022, + 0.008282708004117012, + -0.017733167856931686, + -0.013514751568436623, + -0.008095936849713326, + -0.01753217726945877, + 0.038109809160232544, + -0.012525534257292747, + -0.021155208349227905, + 0.015163109637796879, + -0.03453231230378151, + 0.006535589229315519, + -0.008898885920643806, + -0.016865571960806847, + 0.0025727860629558563, + 0.03577691316604614, + 0.0010335445404052734, + 0.006816348992288113, + 0.0066894181072711945, + -0.023162085562944412, + 0.002310875803232193, + -0.051988910883665085, + -0.0719069167971611, + 0.04178440198302269, + -0.045457273721694946, + 0.038020215928554535, + 0.03348635882139206, + -0.07091621309518814, + 0.07716374099254608, + 0.017605872824788094, + -0.06732846796512604, + 0.002190190367400646, + -0.10653941333293915, + 0.0980999767780304, + 0.01689918152987957, + 0.02511964738368988, + -0.06662436574697495, + 0.007720688357949257, + 0.07335393875837326, + -0.02371140569448471, + -0.0503150150179863, + -0.0016451980918645859, + 0.04434879869222641, + 0.0359160378575325, + 0.029808776453137398, + -0.01780438795685768, + -0.006639616563916206, + 0.024667447432875633, + 0.05476382374763489, + 0.012440737336874008, + 0.0739692896604538, + 0.09163016825914383, + -0.03765476122498512, + 0.031139355152845383, + 0.025126319378614426, + -0.0078003183007240295, + 0.041260406374931335, + -0.003057287074625492, + -0.009109203703701496, + -0.019441546872258186, + -0.0030809524469077587, + -0.029171768575906754, + -0.000464538112282753, + -0.019734226167201996, + 0.03652775660157204, + -0.011969586834311485, + 0.03430986404418945, + 0.02560114488005638, + -0.0371861606836319, + -0.015020813792943954, + 0.05930951237678528, + 0.06193121522665024, + 0.055845413357019424, + 0.04522349685430527, + -0.0033451991621404886, + 0.08283627033233643, + -0.05941439047455788, + -0.08488892018795013, + -0.012808052822947502, + -0.012809467501938343, + 0.023438578471541405, + 0.034978240728378296, + 0.029422586783766747, + -0.014472197741270065, + 0.08584047853946686, + -0.0011968445032835007, + 0.007447962649166584, + 0.00256266538053751, + -0.07293926924467087, + 0.008252881467342377, + 0.05080214515328407, + -0.016282476484775543, + 0.05042785406112671, + 0.022402819246053696, + 0.07470276951789856, + 0.05985689163208008, + -0.0324404314160347, + 0.021031370386481285, + 0.007160048000514507, + 0.038123033940792084, + 0.02340659126639366, + 0.10042808949947357, + 0.008154327049851418, + 0.04819753021001816, + 0.1180533617734909, + -0.06895293295383453, + 0.028081845492124557, + 0.041626282036304474, + -0.009441891685128212, + -0.007816918194293976, + 0.0510195828974247, + 0.0171507578343153, + -0.013345770537853241, + 0.004236073233187199, + 0.007495969533920288, + 0.024195585399866104, + 0.010949238203465939, + -0.060463737696409225, + -0.0007464159280061722, + 0.009811539202928543, + -0.024902820587158203, + -0.004825470969080925, + 0.022217990830540657, + 0.05351581051945686, + -0.0034582987427711487, + 0.03593512624502182, + -0.05492741987109184, + -0.03803575038909912, + 0.029162567108869553, + 0.0038121212273836136, + 0.011272409930825233, + 0.03133147582411766, + -0.032537639141082764, + -0.05462552234530449, + 0.00949428603053093, + 0.06676427274942398, + -0.03231997787952423, + 0.04331296309828758, + 0.05982999503612518, + -0.012316036969423294, + 0.04005206748843193, + 0.02436148002743721, + 0.004238395486027002, + -0.03714202344417572, + -0.10295673459768295, + -0.017503172159194946, + 0.035558219999074936, + -0.08419470489025116, + -0.022950150072574615, + -0.04408934712409973, + -0.03376606106758118, + -0.005433212500065565, + -0.007501991465687752, + 0.07606455683708191, + -0.01956539787352085, + -0.023461323231458664, + -0.05429337918758392, + 0.02085306867957115, + -0.022151967510581017, + -0.11239247024059296, + 0.055110231041908264, + 0.017243439331650734, + 0.031251806765794754, + 0.061051297932863235, + -0.013462391681969166, + 0.007184591144323349, + -0.05044195428490639, + -0.04503496736288071, + 0.021522115916013718, + 0.04583548754453659, + -0.005309795029461384, + 0.00023113004863262177, + 0.05684908106923103, + 0.04979639872908592, + -0.04319640249013901, + 0.05203596502542496, + -0.016613345593214035, + 0.054124653339385986, + -0.04773581773042679, + 0.010217105969786644, + 0.02970133349299431, + 0.04535802826285362, + 0.06896093487739563, + -0.028549883514642715, + -0.12263995409011841, + -0.04257612302899361, + -0.042543064802885056, + 0.008781581185758114, + 0.005966579541563988, + -0.009652921929955482, + 0.03065895289182663, + -0.011680271476507187, + -0.03733941167593002, + -0.1088545098900795, + 0.001846805214881897, + 0.010092360898852348, + -0.00575418071821332, + -0.04098682478070259, + 0.01856289431452751, + 0.007557962089776993, + 0.0033586565405130386, + -0.023028098046779633, + 0.028080232441425323, + 0.0025641191750764847, + -0.0024903863668441772, + -0.03747071325778961, + -0.0052144937217235565, + 0.05973551794886589, + 0.010085277259349823, + -0.03185553476214409, + -0.0480203703045845, + 0.03725714981555939, + 0.0360775850713253, + 0.08504394441843033, + 0.040999654680490494, + 0.007665744051337242, + -0.022576870396733284, + 0.03460155427455902, + -0.019515953958034515, + 0.026071704924106598, + -0.014560465700924397, + 0.02562776952981949, + 0.05236086994409561, + -0.030892319977283478, + 0.053186215460300446, + 0.03204383701086044, + -0.012995278462767601, + -0.01589767076075077, + 0.009988261386752129, + -0.07885195314884186, + -0.035886481404304504, + -0.01613621599972248, + -0.0346883088350296, + -0.010800416581332684, + 0.007152854464948177, + 0.07665567845106125, + 0.02376319281756878, + 0.07549691945314407, + 0.015777645632624626, + -0.024306349456310272 + ] + }, + "p244_155.wav": { + "name": "p244", + "embedding": [ + 0.038709141314029694, + 0.043836869299411774, + -0.06396207213401794, + 0.04326394200325012, + -0.013039220124483109, + 0.0816001296043396, + -0.12744568288326263, + 0.04817115515470505, + -0.008936937898397446, + 0.13784155249595642, + -0.021501243114471436, + 0.07812226563692093, + 0.010580182075500488, + -0.1325506865978241, + -0.025479409843683243, + 0.009881933219730854, + -0.05875460058450699, + -0.012978470884263515, + -0.09415224194526672, + -0.01109527051448822, + 0.03044036589562893, + 0.04656811058521271, + 0.029310565441846848, + -0.07565078884363174, + -0.017435453832149506, + 0.041611168533563614, + -0.03085864707827568, + 0.032696839421987534, + 0.03225797787308693, + -0.06318903714418411, + -0.0015083067119121552, + 0.08648298680782318, + -0.05842342972755432, + 0.030528143048286438, + 0.028480829671025276, + 0.024362945929169655, + -0.014088524505496025, + -0.05996789038181305, + 0.015227108262479305, + 0.030005622655153275, + -0.05273135006427765, + 0.06654505431652069, + 0.016269003972411156, + 0.0005897665396332741, + 0.037468940019607544, + -0.02293059416115284, + -0.028184011578559875, + -0.04152239114046097, + -0.07217125594615936, + 0.15526792407035828, + 0.06199213117361069, + -0.04013952612876892, + -0.04978558421134949, + -0.03067539632320404, + 0.06878992170095444, + -0.0108029805123806, + -0.10697904974222183, + -0.0534791573882103, + 0.0492333360016346, + 0.12223925441503525, + -0.024633046239614487, + -0.0035367757081985474, + 0.03653936833143234, + 0.10729417204856873, + 0.07732705771923065, + 0.08159413188695908, + 0.08719471096992493, + 0.13844552636146545, + -0.003963734954595566, + -0.014521709643304348, + 0.02702314406633377, + 0.07397551834583282, + 0.04139146953821182, + 0.017629068344831467, + 0.046669792383909225, + 0.00708424299955368, + -0.016581423580646515, + -0.02016923762857914, + -0.03360714390873909, + -0.006741231307387352, + 0.03577711060643196, + -0.01876078173518181, + 0.009083036333322525, + 0.05862201750278473, + -0.047700248658657074, + 0.017685096710920334, + 0.06044720858335495, + -0.0414934903383255, + 0.025639966130256653, + 0.058089740574359894, + 0.04993915557861328, + 0.03617924451828003, + -0.05439300835132599, + -0.07959708571434021, + 0.018747450783848763, + 0.023512057960033417, + -0.01631442829966545, + 0.03148621693253517, + 0.02198919653892517, + -0.013070760294795036, + 0.08281363546848297, + 0.00024617649614810944, + -0.07482937723398209, + 0.023715108633041382, + -0.055486973375082016, + 0.13352099061012268, + 0.09609562158584595, + -0.014771975576877594, + -0.018591301515698433, + -0.06443176418542862, + 0.051209624856710434, + 0.04648289456963539, + -0.11433684825897217, + -0.05108414590358734, + 0.0841970443725586, + 0.003375728614628315, + -0.008407028391957283, + 0.12312732636928558, + 0.03540223836898804, + 0.005191072355955839, + 0.08774043619632721, + -0.03753364086151123, + -0.021206999197602272, + -0.017795555293560028, + 0.0500633642077446, + -0.039844218641519547, + 0.0184720978140831, + 0.010412727482616901, + 0.023461967706680298, + -0.019044948741793633, + 0.10482227802276611, + -0.00271056592464447, + 0.005580555647611618, + 0.004776953253895044, + -0.015123852528631687, + 0.0774531364440918, + -0.011077302508056164, + 0.0016978110652416945, + 0.040417931973934174, + 0.03850406035780907, + 0.07998046278953552, + -0.04676659032702446, + -0.03834376856684685, + -0.106003537774086, + 0.0288406889885664, + 0.04193590208888054, + 0.0633968785405159, + -0.02126298099756241, + 0.015216912142932415, + -0.06166090816259384, + -0.0843062549829483, + 0.06419310718774796, + -0.07349217683076859, + 0.0806356891989708, + -0.006198268383741379, + -0.04442786052823067, + 0.10852636396884918, + -0.041549552232027054, + 0.0294739231467247, + 0.002143656834959984, + -0.011323148384690285, + -0.011787602677941322, + 0.028720956295728683, + -0.07168862968683243, + -0.05025062710046768, + 0.00545505341142416, + 0.019485659897327423, + -0.0074730138294398785, + 0.044146038591861725, + 0.052180252969264984, + 0.009438680484890938, + 0.013756041415035725, + -0.04974091798067093, + -0.041357506066560745, + -0.07107856124639511, + 0.0017826128751039505, + -0.017409687861800194, + -0.03978564217686653, + -0.0028044055216014385, + 0.08520350605249405, + 0.005610228516161442, + 0.007441772148013115, + -0.04621688276529312, + -0.08248014748096466, + -0.06893877685070038, + 0.05399763211607933, + 0.06844192743301392, + -0.042343560606241226, + 0.02398272417485714, + 0.07128758728504181, + 0.00042195338755846024, + 0.0003962703049182892, + 0.08211225271224976, + 0.06570414453744888, + -0.02653568610548973, + 0.005126255098730326, + -0.09310240298509598, + 0.1334727704524994, + 0.07533380389213562, + -0.06525146216154099, + -0.04615272581577301, + 0.010399042628705502, + -0.07800833135843277, + -0.0011621806770563126, + -0.07775026559829712, + -0.01909555308520794, + 0.0613197460770607, + -0.012403747998178005, + -0.11790768802165985, + -0.08019264042377472, + 0.04837048426270485, + -0.09151708334684372, + -0.01653306744992733, + -0.07922130823135376, + 0.027308156713843346, + 0.055980268865823746, + 0.07508037984371185, + -0.04733382165431976, + 0.019509542733430862, + 0.05709865316748619, + -0.036791153252124786, + 0.03562687709927559, + 0.06118527427315712, + 0.01394906360656023, + -0.12607155740261078, + -0.030854877084493637, + -0.05060849338769913, + 0.05079884082078934, + -0.0685778260231018, + 0.09104838967323303, + 0.0360553078353405, + -0.048803217709064484, + -0.05063339322805405, + 0.07499854266643524, + -0.025002621114253998, + 0.055632367730140686, + 0.043725281953811646, + 0.05133059248328209, + 0.04578588157892227, + -0.05071654170751572, + 0.11553595960140228, + 0.022255556657910347, + -0.014213662594556808, + -0.09727587550878525, + -0.03352759778499603, + -0.03071572631597519, + 0.05789727717638016, + 0.06460973620414734, + -0.07017071545124054, + 0.007500883191823959, + 0.03614375740289688, + -0.0549197793006897, + 0.03965677320957184, + 0.11726978421211243, + 0.09742529690265656, + -0.09380317479372025 + ] + }, + "p244_147.wav": { + "name": "p244", + "embedding": [ + 0.01687598042190075, + 0.06943561881780624, + -0.007168432231992483, + 0.05266550928354263, + -0.042319826781749725, + 0.01016500499099493, + -0.09822674840688705, + 0.08250243216753006, + -0.0007278798148036003, + 0.0965728759765625, + -0.0959683209657669, + 0.0973936915397644, + -0.05587733909487724, + -0.1327417939901352, + 0.02922956645488739, + 0.0429067388176918, + 0.022647663950920105, + 0.025980796664953232, + -0.016756445169448853, + -0.06472177803516388, + 0.03813295066356659, + 0.049331240355968475, + 0.06756006181240082, + -0.0461440235376358, + -0.021891430020332336, + 0.07544268667697906, + -0.008549144491553307, + 0.019413096830248833, + 0.012278901413083076, + -0.055473875254392624, + -0.01793714426457882, + 0.09056406468153, + -0.006831254810094833, + -0.016637753695249557, + 0.03704149276018143, + 0.029418956488370895, + -0.045027729123830795, + -0.01147896982729435, + 0.0032222128938883543, + 0.007434912025928497, + -0.08236000686883926, + 0.04922019690275192, + 0.017478952184319496, + -0.0376509390771389, + 0.07833422720432281, + -0.047492578625679016, + -0.06431808322668076, + 0.031461507081985474, + -0.07579408586025238, + 0.09862212836742401, + 0.08787371963262558, + 0.008924763649702072, + -0.0470295324921608, + -0.021108150482177734, + 0.0765337124466896, + -0.005508362781256437, + -0.09920899569988251, + -0.03975412994623184, + 0.04680348560214043, + 0.11293455958366394, + -0.004147372208535671, + -0.008561430498957634, + 0.029330581426620483, + 0.07162770628929138, + -0.006370825227349997, + 0.08896437287330627, + 0.0730324387550354, + 0.07857243716716766, + -0.011741924099624157, + 0.016542578116059303, + 0.013277491554617882, + 0.08568202704191208, + 0.0365888848900795, + -0.009046215564012527, + 0.00134345144033432, + -0.010595113039016724, + -0.03115909919142723, + 0.001813046634197235, + -0.016159240156412125, + -0.0438741073012352, + -0.03822213411331177, + -0.0296674445271492, + 0.009476404637098312, + -0.03547278791666031, + -0.030248742550611496, + 0.0015751596074551344, + 0.08084380626678467, + -0.013797730207443237, + 0.05011191964149475, + 0.028738608583807945, + -0.017701828852295876, + 0.028609108179807663, + -0.04165536165237427, + -0.04038427770137787, + -0.033882759511470795, + 0.003850731998682022, + 0.029894759878516197, + 0.06803813576698303, + 0.010777734220027924, + 0.02098166011273861, + 0.10072540491819382, + 0.037381548434495926, + 0.013857911340892315, + 0.014234564267098904, + -0.08099372684955597, + 0.08434265851974487, + 0.1128661036491394, + -0.019581366330385208, + 0.05152810737490654, + -0.014639541506767273, + 0.04346306622028351, + 0.028025131672620773, + -0.07644529640674591, + -0.0149867944419384, + -0.03752937540411949, + 0.03354319557547569, + 0.01883382722735405, + 0.10219782590866089, + 0.024212142452597618, + 0.023683704435825348, + 0.12026466429233551, + -0.07696861028671265, + -0.07811364531517029, + -0.04685017466545105, + 0.020663248375058174, + -0.08006954193115234, + 0.06868821382522583, + 0.049958180636167526, + 0.018483765423297882, + 0.027916600927710533, + 0.0651274248957634, + 0.001998619642108679, + 0.03573717549443245, + 0.0033614288549870253, + -0.07070489972829819, + -0.02143549732863903, + -0.06060607358813286, + 0.025016959756612778, + 0.08599035441875458, + 0.02988770604133606, + 0.10118745267391205, + 0.006766083650290966, + 0.025512486696243286, + -0.08451934158802032, + -0.003950513433665037, + 0.04807303473353386, + 0.02188900113105774, + -0.0190617386251688, + -0.029232874512672424, + -0.019365286454558372, + -0.09402510523796082, + 0.03969733417034149, + -0.05569050833582878, + 0.08042807877063751, + -0.033141449093818665, + -4.494811219046824e-05, + 0.0841088518500328, + 0.0019143037497997284, + -0.030746646225452423, + -0.07616119086742401, + -0.03583524376153946, + -0.0154340248554945, + 0.025227200239896774, + -0.12619835138320923, + -0.0742165595293045, + -0.036740221083164215, + 0.025796081870794296, + -0.005953145679086447, + 0.02056020125746727, + 0.07888464629650116, + -0.017125576734542847, + 0.021695397794246674, + -0.0013919075718149543, + 0.014222665689885616, + -0.06085383892059326, + -0.08637982606887817, + -0.008353529497981071, + -0.052160099148750305, + -0.012566241435706615, + 0.0632978230714798, + -0.0007249763002619147, + 0.021564027294516563, + 0.006890064105391502, + -0.053601957857608795, + -0.10291656851768494, + 0.03308693692088127, + 0.011536362580955029, + 0.0006774887442588806, + 0.0648837760090828, + 0.07050660997629166, + -0.06708021461963654, + 0.04630706459283829, + 0.04192341864109039, + 0.08083929121494293, + -0.06159328669309616, + 0.018643440678715706, + -0.09010124206542969, + 0.03023688867688179, + 0.13584372401237488, + -0.051041215658187866, + -0.08429925888776779, + -0.07979002594947815, + -0.0765543133020401, + 0.07438375800848007, + -0.03615685552358627, + -0.05224291980266571, + 0.015784140676259995, + -0.026803268119692802, + -0.08065406233072281, + -0.07475551962852478, + 0.08840927481651306, + -0.019861675798892975, + 0.000561397522687912, + -0.0594276487827301, + 0.005635014735162258, + -0.011994479224085808, + 0.05452972650527954, + -0.05477689951658249, + 0.03244395554065704, + 0.06490307301282883, + -0.06395669281482697, + 0.018686428666114807, + 0.05370347201824188, + 0.055524300783872604, + -0.01574614644050598, + -0.01902826502919197, + -0.07318990677595139, + 0.04314978048205376, + -0.0285206139087677, + 0.0673958957195282, + 0.02181817591190338, + -0.027508800849318504, + -0.047594424337148666, + 0.04699129983782768, + -0.010133549571037292, + 0.01799565553665161, + 0.06949862837791443, + 0.06538397073745728, + 0.007716785650700331, + -0.08463312685489655, + 0.10020949691534042, + 0.009254100732505322, + 0.009770847856998444, + -0.029096392914652824, + 0.0018080523004755378, + -0.058436810970306396, + 0.02323175221681595, + 1.7389655113220215e-05, + -0.08250914514064789, + -0.002193694468587637, + -0.019860494881868362, + 0.00676284683868289, + 0.03341388329863548, + 0.08732720464468002, + 0.04965898394584656, + -0.06717147678136826 + ] + }, + "p244_229.wav": { + "name": "p244", + "embedding": [ + 0.017833705991506577, + 0.10620729625225067, + -0.02716187760233879, + 0.06193678453564644, + -0.05028887465596199, + -0.01674700900912285, + -0.08416841179132462, + 0.0586332343518734, + 0.018962420523166656, + 0.09082196652889252, + -0.024159403517842293, + 0.10156888514757156, + -0.04226793348789215, + -0.10385236889123917, + -0.004946193657815456, + 0.003811277449131012, + 0.015462502837181091, + 0.018416576087474823, + 0.012632036581635475, + -0.026110099628567696, + -0.03203895688056946, + 0.004537452943623066, + -0.03025299310684204, + 0.000410422682762146, + -0.013634571805596352, + 0.018337521702051163, + -0.0398084819316864, + 0.03187377005815506, + -0.019862772896885872, + -0.060700614005327225, + -0.004677378572523594, + 0.022295722737908363, + -0.03438471257686615, + -0.0035824680235236883, + -0.007223563268780708, + -0.008648294024169445, + -0.004147071857005358, + -0.01863870583474636, + -0.031555965542793274, + -0.0344526432454586, + -0.04499049484729767, + 0.0218128003180027, + 0.02852516621351242, + -0.059561338275671005, + 0.020503636449575424, + 0.02322128415107727, + -0.027357393875718117, + -0.01871231012046337, + -0.038537222892045975, + 0.0892009288072586, + 0.029826998710632324, + 0.07851661741733551, + -0.04619782790541649, + -0.03014095313847065, + 0.10330498218536377, + 0.01882355473935604, + -0.009541727602481842, + -0.027155457064509392, + -0.011539775878190994, + 0.07540429383516312, + 0.02208646759390831, + 0.013419600203633308, + 0.042072951793670654, + 0.06542489677667618, + 0.026318825781345367, + 0.0207879189401865, + 0.05928638577461243, + 0.05388724058866501, + -0.03340350463986397, + 0.032644789665937424, + 0.04676036536693573, + 0.035159528255462646, + 0.0031194668263196945, + 0.03228311240673065, + -0.005200378596782684, + 0.018861297518014908, + 0.01503603346645832, + 0.03180718049407005, + -0.031021390110254288, + -0.01753920689225197, + -0.003928624093532562, + 0.027134915813803673, + 0.007655126042664051, + -0.027180857956409454, + -0.04441680386662483, + -0.027815070003271103, + 0.07109994441270828, + 0.008170605637133121, + 0.018829017877578735, + 0.019240474328398705, + 0.04515431448817253, + 0.007108947262167931, + -0.06692110002040863, + -0.03214964270591736, + 0.03002394735813141, + -0.017836879938840866, + 0.0601254403591156, + 0.000507846474647522, + 0.00819731131196022, + 0.0015452175866812468, + 0.05034971609711647, + -0.012081120163202286, + 0.03314417600631714, + -0.006373772397637367, + -0.04044809937477112, + 0.011094868183135986, + 0.03351490944623947, + 0.021656449884176254, + 0.059381045401096344, + 0.006152201443910599, + 0.040625881403684616, + 0.07226324081420898, + -0.05167388543486595, + -0.036990970373153687, + 0.01653316803276539, + 0.04657892510294914, + -0.032473526895046234, + 0.08378227055072784, + 0.003351696766912937, + 0.05009856075048447, + 0.0572018139064312, + 0.0042100027203559875, + -0.03722354769706726, + -0.016422713175415993, + 0.010823165997862816, + -0.028255663812160492, + 0.054991669952869415, + 0.03505391627550125, + -0.0277281291782856, + -0.0378371886909008, + 0.06286531686782837, + -0.009166107513010502, + -0.0195931326597929, + 0.009264307096600533, + 0.01508574839681387, + -0.05154145881533623, + 0.06666966527700424, + -0.05569108948111534, + 0.008931046351790428, + 0.04931595176458359, + -0.019608136266469955, + -0.010359052568674088, + 0.007967304438352585, + -0.060940101742744446, + 0.037310630083084106, + 0.004216235596686602, + -0.004898916929960251, + 0.07396860420703888, + -0.05401541292667389, + -0.07106470316648483, + -0.030234647914767265, + 0.01728491485118866, + -0.016407834365963936, + 0.06678484380245209, + 0.06425316631793976, + 0.02962702140212059, + 0.04817122220993042, + 0.0010351669043302536, + 0.01694277673959732, + 0.019808391109108925, + -0.1101369857788086, + 0.009859793819487095, + 0.01395457610487938, + 0.0019650347530841827, + -0.022062331438064575, + 0.009369672276079655, + 0.0010352330282330513, + -0.02205272763967514, + 0.012263722717761993, + 0.041676051914691925, + 0.016890935599803925, + 0.046777721494436264, + -0.11090710759162903, + 0.003162207081913948, + -0.033976003527641296, + -0.050292376428842545, + 0.030784860253334045, + -0.025186769664287567, + -0.02213302068412304, + 0.02199498936533928, + 0.034588564187288284, + -0.005461312830448151, + -0.04336395859718323, + -0.035829924046993256, + -0.02146868407726288, + 0.006920505315065384, + 0.0031632333993911743, + -0.0021576033905148506, + -0.02171609178185463, + 0.007879875600337982, + 0.04192621260881424, + 0.016796531155705452, + 0.011167256161570549, + 0.056430600583553314, + -0.034959372133016586, + -0.0005472246557474136, + 0.024400025606155396, + 0.09771516919136047, + 0.04066973179578781, + -0.08596210181713104, + -0.07395122945308685, + 0.00012766290456056595, + -0.0559719055891037, + 0.023752085864543915, + -0.01878785341978073, + 0.0335935540497303, + 0.015935957431793213, + 0.014390076510608196, + 0.039736147969961166, + -0.14267529547214508, + 0.03004344180226326, + -0.030806226655840874, + -0.03931436687707901, + 0.00065656378865242, + 0.000554962083697319, + 0.040239207446575165, + 0.016702713444828987, + -0.03528685122728348, + -0.05296364799141884, + 0.021238017827272415, + 0.028150256723165512, + 0.029138362035155296, + 0.0690004751086235, + 0.04669996723532677, + -0.008775357156991959, + -0.0012180993799120188, + -0.03143259137868881, + 0.007968328893184662, + 0.011450434103608131, + 0.04193948954343796, + 0.016909148544073105, + -0.015046491287648678, + -0.08710579574108124, + 0.05308601260185242, + -0.010983648709952831, + 0.05314164608716965, + -0.02919692173600197, + 0.01054445095360279, + 0.03424951061606407, + -0.03450099378824234, + 0.11250001192092896, + 0.04888845607638359, + -0.02481604367494583, + -0.030990026891231537, + -0.017108354717493057, + -0.036871287971735, + 0.07498010993003845, + 0.04275849089026451, + -0.04594205319881439, + -0.016575051471590996, + 0.06173774600028992, + 0.04882063716650009, + 0.08966310322284698, + 0.06832963973283768, + 0.05440453067421913, + 0.03674720972776413 + ] + }, + "p244_305.wav": { + "name": "p244", + "embedding": [ + 0.03680841997265816, + 0.11020034551620483, + -0.005404968746006489, + 0.042662445455789566, + -0.08041616529226303, + 0.08192805200815201, + -0.09941112995147705, + 0.11860743165016174, + -0.0606069341301918, + 0.12563851475715637, + -0.09892147034406662, + 0.1306304782629013, + -0.014961876906454563, + -0.18951694667339325, + -0.03994905576109886, + 0.05225594714283943, + -0.028645865619182587, + 0.008471691980957985, + -0.04621202498674393, + -0.01793196052312851, + 0.05020938441157341, + 0.019284356385469437, + 0.06857504695653915, + -0.013151300139725208, + 0.031644877046346664, + 0.046304889023303986, + 0.015884162858128548, + 0.0573231503367424, + 0.0376487597823143, + -0.05762620270252228, + -0.07605525851249695, + 0.12885041534900665, + -0.014173022471368313, + 0.005599393509328365, + 0.05730842053890228, + -0.023400746285915375, + 0.0107292914763093, + -0.061165884137153625, + -0.008159165270626545, + 0.010970084927976131, + -0.025679657235741615, + 0.06106745824217796, + 0.020902398973703384, + -0.0282975472509861, + 0.06579822301864624, + -0.00013658902025781572, + -0.04225555807352066, + -0.023120585829019547, + -0.09900441765785217, + 0.14053599536418915, + 0.07213610410690308, + -0.02566283755004406, + -0.075237937271595, + -0.06398482620716095, + 0.12165427207946777, + -0.002922208048403263, + -0.11024611443281174, + -0.03415912017226219, + 0.07996848970651627, + 0.16135293245315552, + 0.007831237278878689, + 0.0005735987797379494, + 0.020971955731511116, + 0.11034524440765381, + -0.009645863436162472, + 0.10238414257764816, + 0.04607567936182022, + 0.07685147970914841, + 0.0033366908319294453, + 0.08128233253955841, + 0.02057475410401821, + 0.06220689043402672, + -0.030061066150665283, + -0.04662223532795906, + 0.01886085979640484, + -0.037505168467760086, + -0.03627442196011543, + 0.028389321640133858, + -0.03163444623351097, + -0.02072555013000965, + -0.03730696067214012, + -0.008698281832039356, + 0.004216532222926617, + -0.05045827850699425, + -0.05701678246259689, + 0.06090954318642616, + -0.0005308945546858013, + 0.0026624053716659546, + 0.07018835097551346, + 0.058347903192043304, + -0.015369430184364319, + 0.030175304040312767, + -0.03861163556575775, + -0.12848998606204987, + 0.003807591274380684, + 0.019269131124019623, + -0.011519728228449821, + 0.07888594269752502, + 0.015645693987607956, + -0.026519672945141792, + 0.10311182588338852, + 0.08790585398674011, + -0.003693113336339593, + 0.05167796090245247, + -0.07798141241073608, + 0.12200459837913513, + 0.10174231976270676, + 0.007830099202692509, + 0.05984542891383171, + -0.031067993491888046, + 0.09622670710086823, + 0.07772275805473328, + -0.12174350768327713, + -0.06391138583421707, + -0.015521051362156868, + -0.018069177865982056, + -0.0008157648844644427, + 0.07142185419797897, + -0.015518763102591038, + 0.007603475823998451, + 0.08897192031145096, + -0.07205375283956528, + -0.07780874520540237, + -0.040904443711042404, + 0.04534268006682396, + -0.06015076860785484, + 0.059068720787763596, + 0.04122454300522804, + -0.01691916584968567, + -0.0098841218277812, + 0.055033717304468155, + -0.017712585628032684, + 0.01491404790431261, + 0.07901303470134735, + -0.07045823335647583, + 0.022614985704421997, + -0.05301900580525398, + 0.011059349402785301, + 0.07335592061281204, + 0.05476197227835655, + 0.0561140775680542, + -0.008677709847688675, + 0.004275009501725435, + -0.05714411288499832, + -0.0068344492465257645, + 0.046769410371780396, + 0.04538201913237572, + 0.01631047949194908, + -0.025193823501467705, + -0.055848535150289536, + -0.09241708368062973, + 0.03677891939878464, + -0.01886765845119953, + 0.10332703590393066, + -0.014842845499515533, + 0.024641763418912888, + 0.07389681041240692, + 0.023641254752874374, + -0.01999754272401333, + -0.08563105762004852, + -0.03083745203912258, + 0.035126619040966034, + 0.025894906371831894, + -0.07319611310958862, + -0.057273030281066895, + 0.0014720156323164701, + 2.184821460105013e-05, + -0.04095613956451416, + 0.02348559908568859, + 0.04756169766187668, + 0.00873467419296503, + 0.06310738623142242, + -0.08655968308448792, + 0.027806872501969337, + -0.09011808782815933, + -0.01761840656399727, + -0.0385696180164814, + -0.043738093227148056, + -0.030356185510754585, + 0.08681339025497437, + 0.0356714241206646, + 0.005997860804200172, + 0.03047958016395569, + -0.05473127216100693, + -0.06523144990205765, + 0.06382925808429718, + 0.059864506125450134, + 0.022563794627785683, + 0.08718200027942657, + 0.047233566641807556, + -0.0451233796775341, + 0.08615673333406448, + 0.07195208966732025, + 0.05867895483970642, + -0.002825414063408971, + -0.011505942791700363, + -0.07360249757766724, + 0.06834246963262558, + 0.10501454770565033, + -0.11997657269239426, + -0.11935344338417053, + -0.06379147619009018, + -0.06624368578195572, + 0.06997809559106827, + -0.02433452196419239, + -0.0262463241815567, + 0.04251294583082199, + -0.023216083645820618, + -0.0944429561495781, + -0.08610774576663971, + 0.11461147665977478, + -0.057830873876810074, + -0.02340402454137802, + -0.03950190544128418, + 0.023174431174993515, + 0.07389065623283386, + 0.005727465730160475, + -0.04888283461332321, + -0.00010191417095484212, + 0.0781739354133606, + -0.07571560889482498, + -0.007918321527540684, + 0.02574598230421543, + 0.005559690296649933, + -0.08457118272781372, + 0.047549787908792496, + -0.07322046905755997, + 0.07703110575675964, + -0.06899742037057877, + 0.18086005747318268, + 0.004408083390444517, + -0.043381791561841965, + -0.07191946357488632, + 0.08766552805900574, + -0.039148908108472824, + 0.013512498699128628, + 0.052040182054042816, + 0.05019459128379822, + -0.004328541923314333, + -0.10064201802015305, + 0.12004023790359497, + 0.009381997399032116, + -0.03776310011744499, + -0.07108494639396667, + -0.016123419627547264, + -0.048631854355335236, + 0.011479893699288368, + 0.027229811996221542, + -0.09176034480333328, + -0.023768458515405655, + 0.018228860571980476, + -0.01637456752359867, + 0.09974496811628342, + 0.14912520349025726, + 0.08032150566577911, + -0.08421117812395096 + ] + }, + "p244_321.wav": { + "name": "p244", + "embedding": [ + 0.019796855747699738, + 0.04795306921005249, + -0.019162900745868683, + -0.0013976339250802994, + -0.05059266462922096, + 0.024233508855104446, + -0.11165747791528702, + 0.08841949701309204, + -0.009336846880614758, + 0.12800636887550354, + -0.042159970849752426, + 0.11095093935728073, + 0.0015247608534991741, + -0.1398591846227646, + 0.014686169102787971, + 0.026818890124559402, + -0.01941770501434803, + -0.017896147444844246, + -0.00888101477175951, + -0.08759269118309021, + 0.04669930413365364, + 0.06280328333377838, + 0.023890424519777298, + -0.03796340525150299, + 0.00501624308526516, + 0.07881958037614822, + -0.00682907784357667, + 0.004837107844650745, + -0.011024710722267628, + -0.09525908529758453, + -0.04165209084749222, + 0.07646425068378448, + -0.04464235156774521, + -0.024425994604825974, + 0.01538074016571045, + -0.02293332666158676, + -0.008042561821639538, + -0.020627465099096298, + -0.004315420985221863, + 0.04895251989364624, + -0.06276361644268036, + 0.07247351109981537, + 0.026428688317537308, + -0.01012672483921051, + 0.05220962315797806, + -0.01447707787156105, + -0.03048100508749485, + -0.0012980960309505463, + -0.07267862558364868, + 0.13778889179229736, + 0.07741786539554596, + -0.02722783014178276, + -0.028835080564022064, + -0.039682306349277496, + 0.06727282702922821, + 0.00670588668435812, + -0.10694492608308792, + -0.012221192941069603, + 0.03368746489286423, + 0.08983111381530762, + -0.018398467451334, + -0.05516328290104866, + 0.05287482589483261, + 0.08594126999378204, + 0.01762217842042446, + 0.05788952857255936, + 0.08418719470500946, + 0.07011488825082779, + -0.03242700919508934, + -0.022819530218839645, + 0.02979768067598343, + 0.0952475368976593, + 0.0562124066054821, + -0.020052915439009666, + 0.0411151684820652, + 0.002737700939178467, + -0.009134945459663868, + -0.029955647885799408, + -0.015836356207728386, + -0.01971692405641079, + -0.018036289140582085, + -0.009873829782009125, + 0.020086398348212242, + 0.03005480021238327, + -0.0292836781591177, + 0.01388915441930294, + 0.05110170692205429, + 0.004012066870927811, + 0.04873056337237358, + 0.007368580903857946, + 0.02270909771323204, + 0.054285578429698944, + -0.07641416788101196, + -0.027434296905994415, + 0.025849001482129097, + -0.0042922478169202805, + 0.035942044109106064, + 0.08234238624572754, + 0.03569891303777695, + -0.013023817911744118, + 0.10679589211940765, + 0.042937107384204865, + -0.006507156416773796, + -0.008870118297636509, + -0.07570001482963562, + 0.08984769880771637, + 0.11224710941314697, + -0.038124315440654755, + 0.0507424920797348, + -0.03510075435042381, + 0.0725833848118782, + -0.0006898492574691772, + -0.12000507861375809, + -0.04006369039416313, + 0.006407805718481541, + 0.04356196150183678, + -0.0028378437273204327, + 0.13622228801250458, + 0.006731804460287094, + 0.04774729162454605, + 0.10489606112241745, + -0.06673643738031387, + -0.048521216958761215, + -0.046600136905908585, + 0.035671234130859375, + -0.11617111414670944, + 0.07023552805185318, + 0.05316717550158501, + 0.0024900510907173157, + 0.0377872996032238, + 0.07560620456933975, + -0.023201899603009224, + 0.01714150607585907, + -0.026662565767765045, + -0.029489167034626007, + -0.005715946201235056, + -0.01771145686507225, + 0.01756838895380497, + 0.04702644795179367, + 0.017122114077210426, + 0.0696008950471878, + -0.002864556387066841, + -0.019465235993266106, + -0.11771953850984573, + 0.04103127121925354, + 0.009452946484088898, + 0.037627145648002625, + -0.025642866268754005, + -0.0359167642891407, + -0.011247633025050163, + -0.08937516808509827, + -0.003203418105840683, + -0.02582256682217121, + 0.058227479457855225, + -0.031154057011008263, + -0.001993859652429819, + 0.08229762315750122, + 0.057472631335258484, + -0.01950656995177269, + -0.001266084611415863, + -0.05629737675189972, + -0.01752004586160183, + 0.04999757558107376, + -0.11136072874069214, + -0.07291733473539352, + -0.03777594491839409, + 0.03453898802399635, + 0.017137693241238594, + 0.04605704918503761, + 0.07797226309776306, + -0.0021591167896986008, + 0.03852430358529091, + -0.045857787132263184, + 0.0037035192362964153, + -0.07883689552545547, + -0.08240285515785217, + -0.024815313518047333, + -0.047267187386751175, + -0.035947155207395554, + 0.0677686557173729, + -0.026642654091119766, + 0.04849773645401001, + -0.045029167085886, + -0.02876419387757778, + -0.07279334962368011, + 0.022052543237805367, + 0.042411379516124725, + -0.014073062688112259, + 0.024032149463891983, + 0.08131226152181625, + -0.025271791964769363, + 0.031216438859701157, + 0.0436992421746254, + 0.09169494360685349, + -0.03659851849079132, + 0.04318968579173088, + -0.05520794168114662, + 0.0829092338681221, + 0.07640048116445541, + -0.020023712888360023, + -0.063369020819664, + -0.043132685124874115, + -0.0794314593076706, + 0.06705223023891449, + -0.020340420305728912, + -0.014383744448423386, + -0.0043847993947565556, + 0.022201169282197952, + -0.0691576898097992, + -0.04532690346240997, + 0.06268709152936935, + -0.02989770844578743, + -0.00779334269464016, + -0.08017323911190033, + 0.02725606970489025, + 0.06483534723520279, + 0.07840752601623535, + -0.04323766380548477, + 0.003998568281531334, + 0.04557940363883972, + -0.02123401314020157, + 0.04879053309559822, + 0.051013581454753876, + 0.06213816627860069, + -0.06196678429841995, + -0.035608939826488495, + -0.07556778937578201, + 0.02215547114610672, + -0.05067184194922447, + 0.06656070053577423, + 0.037851981818675995, + -0.0398666076362133, + -0.0593203566968441, + 0.053124748170375824, + -0.0021822997368872166, + 0.022914491593837738, + 0.058885447680950165, + 0.06444264948368073, + 0.05139835178852081, + -0.06555067747831345, + 0.0732717290520668, + 0.03350609540939331, + -0.006020057946443558, + -0.03344335779547691, + -0.00962885096669197, + -0.01858488656580448, + 0.029179146513342857, + 0.036740198731422424, + -0.07965373992919922, + 0.0013965889811515808, + 0.01820480264723301, + 0.018503092229366302, + 0.03805097937583923, + 0.09350802004337311, + 0.03438076749444008, + -0.11205171793699265 + ] + }, + "p244_068.wav": { + "name": "p244", + "embedding": [ + 0.021957755088806152, + 0.08661796152591705, + -0.045143336057662964, + 0.045182548463344574, + -0.047540441155433655, + 0.010512247681617737, + -0.11310746520757675, + 0.10278674960136414, + -0.036397069692611694, + 0.11621536314487457, + -0.08819311112165451, + 0.10504996031522751, + -0.07022294402122498, + -0.15615186095237732, + -0.023822052404284477, + 0.0656767338514328, + -0.0005303770303726196, + -0.038710445165634155, + -0.006298385560512543, + -0.029215510934591293, + 0.07068923115730286, + 0.05148620530962944, + 0.017076954245567322, + 0.007087378762662411, + -0.012709235772490501, + 0.07656851410865784, + -0.008050093427300453, + 0.011457858607172966, + -0.004715288989245892, + 0.010694569908082485, + -0.012077799066901207, + 0.09943683445453644, + -0.014580751769244671, + -0.021040506660938263, + 0.02109205350279808, + 0.03495434671640396, + -0.019907262176275253, + -0.03617654740810394, + -0.000608989386819303, + -0.006250749342143536, + -0.0753464549779892, + 0.039726804941892624, + -0.0034810006618499756, + -0.02756824716925621, + 0.07469600439071655, + -0.03918081149458885, + -0.050030939280986786, + -0.008366195484995842, + -0.10358190536499023, + 0.13226330280303955, + 0.09312580525875092, + 0.042326267808675766, + -0.06573665142059326, + -0.035372018814086914, + 0.10529046505689621, + 0.009614803828299046, + -0.07926337420940399, + -0.055499326437711716, + 0.05049272999167442, + 0.16806785762310028, + -0.0018078784924000502, + -0.02924937568604946, + 0.04494518041610718, + 0.08643177151679993, + 0.04230610281229019, + 0.06142454966902733, + 0.08683254569768906, + 0.07367929816246033, + 0.007889879867434502, + -0.02790161967277527, + 0.05355392396450043, + 0.07458736002445221, + 0.03828192874789238, + -0.03543815761804581, + 0.01036419440060854, + 0.006485484540462494, + -0.029976023361086845, + 0.018398797139525414, + -0.023383930325508118, + -0.051529936492443085, + -0.022684192284941673, + -0.004640957340598106, + -0.013122609816491604, + 0.001032407395541668, + -0.04056040570139885, + 0.02226077765226364, + 0.06955316662788391, + -0.0331730917096138, + 0.06142030283808708, + 0.030625488609075546, + -0.015783414244651794, + 0.03583595156669617, + -0.05616746470332146, + -0.06951442360877991, + 0.02198934182524681, + 0.02224070392549038, + 0.0034164737444370985, + 0.07401338964700699, + 0.02572927437722683, + 0.002608424751088023, + 0.10432995855808258, + 0.023159176111221313, + 0.02326396480202675, + 0.01384873129427433, + -0.09176649153232574, + 0.1016901433467865, + 0.10549823939800262, + -0.03362666070461273, + 0.0482378713786602, + -0.009836315177381039, + 0.017206335440278053, + 0.05310118943452835, + -0.09218424558639526, + -0.04348192363977432, + 0.01949073001742363, + 0.02991928532719612, + 0.01068449392914772, + 0.10253587365150452, + 0.02146149054169655, + 0.028457026928663254, + 0.1260330080986023, + -0.09592334926128387, + -0.10011017322540283, + -0.057887911796569824, + 0.040403492748737335, + -0.0695645660161972, + 0.06672489643096924, + 0.06927646696567535, + 0.023627087473869324, + 0.004220356233417988, + 0.05582958087325096, + -0.006523303687572479, + 0.029547661542892456, + -0.014327874407172203, + -0.055371325463056564, + 0.017639292404055595, + -0.05609823018312454, + -0.015749260783195496, + 0.07552137225866318, + 0.02237766608595848, + 0.06844121217727661, + 0.008556347340345383, + 0.020640438422560692, + -0.12003402411937714, + 0.0007948220591060817, + 0.0727209597826004, + 0.03607843816280365, + -0.020361270755529404, + -0.044254548847675323, + -0.04218670725822449, + -0.06681978702545166, + 0.006706803105771542, + -0.03010953590273857, + 0.09841638803482056, + -0.023907622322440147, + 0.012109657749533653, + 0.08864200115203857, + -0.004977382719516754, + -0.007578730117529631, + -0.04252775013446808, + -0.02234969660639763, + -0.007929573766887188, + 0.03151892125606537, + -0.09064247459173203, + -0.1010613963007927, + -0.042087361216545105, + 0.05107451602816582, + -0.004260665737092495, + 0.042364686727523804, + 0.052337389439344406, + -0.013811245560646057, + 0.007843616418540478, + -0.06644966453313828, + 0.04462031275033951, + -0.08869294822216034, + -0.056289754807949066, + -0.014875976368784904, + -0.03884541988372803, + 0.006139889359474182, + 0.08160577714443207, + 0.013248255476355553, + 0.024326007813215256, + -0.0032954688649624586, + -0.08268805593252182, + -0.1023300513625145, + 0.05481996759772301, + 0.061673473566770554, + 0.003450061660259962, + 0.0645458847284317, + 0.04077550023794174, + -0.044062625616788864, + 0.038811683654785156, + 0.03586976230144501, + 0.10323973000049591, + -0.04386085271835327, + 0.004681393504142761, + -0.060749601572752, + 0.036128636449575424, + 0.10026691854000092, + -0.08631306886672974, + -0.07773762196302414, + -0.06431446224451065, + -0.07211191207170486, + 0.05085686594247818, + -0.03988942131400108, + 0.01222461462020874, + 0.028577325865626335, + -0.0391903892159462, + -0.12443135678768158, + -0.09700140357017517, + 0.07328532636165619, + -0.015357635915279388, + -0.014184346422553062, + -0.061515968292951584, + 0.03144798055291176, + 0.05173064395785332, + 0.008370292373001575, + -0.048340167850255966, + -0.0010128326248377562, + 0.011528288945555687, + -0.04620502144098282, + -0.009316708892583847, + 0.05019637197256088, + 0.04620800167322159, + -0.07486826181411743, + -0.013767186552286148, + -0.088576540350914, + 0.08730854839086533, + -0.05167301744222641, + 0.11671514809131622, + -0.004235226195305586, + -0.03978075832128525, + -0.09189099073410034, + 0.05710427090525627, + 0.028938813135027885, + 0.049866896122694016, + 0.02716229483485222, + 0.06394459307193756, + 0.0003793786163441837, + -0.07575772702693939, + 0.09853824973106384, + 0.04341161996126175, + -0.015513102523982525, + -0.07642939686775208, + -0.016793806105852127, + -0.05546639487147331, + 0.018490217626094818, + -0.0011689866660162807, + -0.05994240194559097, + -0.000582697510253638, + -0.0060240477323532104, + 0.025851421058177948, + 0.06462063640356064, + 0.09856706857681274, + 0.035542722791433334, + -0.09254105389118195 + ] + }, + "p244_376.wav": { + "name": "p244", + "embedding": [ + 0.08005376160144806, + 0.05755379796028137, + -0.06888500601053238, + -0.012651419267058372, + -0.035178836435079575, + 0.05041232705116272, + -0.14282119274139404, + 0.05526858940720558, + -0.017436450347304344, + 0.15130344033241272, + -0.03355814889073372, + 0.11094611138105392, + 0.027208877727389336, + -0.10332140326499939, + -0.02636384405195713, + 0.006753427907824516, + -0.017748337239027023, + -0.004211030900478363, + -0.06095856428146362, + -0.04716094210743904, + 0.010429040528833866, + 0.05530063062906265, + 0.03440217301249504, + -0.06851283460855484, + 0.02622714266180992, + 0.04758075624704361, + -0.002288578078150749, + 0.01325017586350441, + -0.02644115313887596, + -0.04145092889666557, + 0.00013965927064418793, + 0.08812232315540314, + -0.05831935256719589, + -0.007134494371712208, + -0.00359090487472713, + 0.00300761591643095, + -0.0018879435956478119, + -0.07648806273937225, + -0.002619081176817417, + 0.05342339351773262, + -0.0006017116829752922, + 0.08844119310379028, + 0.04588779807090759, + 0.012877222150564194, + -0.013752523809671402, + -0.02985967881977558, + -0.025843659415841103, + -0.0272990670055151, + -0.06780489534139633, + 0.18060865998268127, + 0.06884300708770752, + 0.005504269618541002, + -0.08884146809577942, + -0.017812181264162064, + 0.06815776228904724, + -0.013821378350257874, + -0.06650679558515549, + -0.051671311259269714, + -0.0009009093046188354, + 0.10872600972652435, + -0.018352646380662918, + -0.05834049731492996, + 0.02400658279657364, + 0.10218660533428192, + 0.024838706478476524, + 0.01669878512620926, + 0.10635505616664886, + 0.10029220581054688, + -0.030666068196296692, + 0.012608409859240055, + 0.03512316942214966, + 0.04906298592686653, + 0.05049573630094528, + -0.030832210555672646, + 0.0599546879529953, + -0.032943420112133026, + 0.0007438166067004204, + -0.020310375839471817, + -0.03576834127306938, + -0.07504996657371521, + 0.0055182864889502525, + -0.005051222629845142, + 0.019051004201173782, + 0.1001109629869461, + -0.10099520534276962, + 0.0008055642247200012, + 0.054867908358573914, + -0.061348363757133484, + 0.05157175660133362, + 0.07086262106895447, + 0.038022495806217194, + 0.0048141684383153915, + -0.059027619659900665, + -0.06818430125713348, + 0.06334421038627625, + 0.005557971075177193, + 0.030040446668863297, + 0.04530750960111618, + 0.03309766203165054, + -0.015002413652837276, + 0.06790737062692642, + 0.03983112424612045, + -0.028200428932905197, + -0.031751230359077454, + -0.04700809717178345, + 0.11032786965370178, + 0.1379425972700119, + -0.03843233734369278, + 0.007988182827830315, + -0.022303558886051178, + 0.0240476131439209, + 0.023102665320038795, + -0.09188297390937805, + -0.07471267879009247, + 0.04373764246702194, + 0.05013854801654816, + 0.04415269196033478, + 0.09229746460914612, + 0.01910434290766716, + 0.044870488345623016, + 0.058838970959186554, + -0.022323831915855408, + -0.05037125200033188, + -0.031643085181713104, + 0.014776039868593216, + -0.06577251851558685, + 0.020165421068668365, + 0.061019591987133026, + 0.004524789750576019, + -0.03427709639072418, + 0.07929814606904984, + 0.01673387736082077, + 0.013604751788079739, + -0.024389877915382385, + 0.043047912418842316, + 0.07457157224416733, + 0.02622353844344616, + -0.0023830030113458633, + 0.02857119031250477, + 0.020267723128199577, + 0.057761844247579575, + 0.026318516582250595, + -0.010373399592936039, + -0.11678669601678848, + 0.04177180677652359, + 0.038499727845191956, + 0.03413465619087219, + -0.07446363568305969, + -0.028032515197992325, + -0.011551225557923317, + -0.03445816785097122, + 0.0166546031832695, + -0.03555645793676376, + 0.04926202446222305, + 0.02559366077184677, + -0.03673495352268219, + 0.1158822774887085, + -0.033373527228832245, + -0.014727499336004257, + 0.01235896721482277, + 0.045747436583042145, + 0.019564781337976456, + 0.04482809826731682, + -0.06912360340356827, + -0.05930550396442413, + 0.001979677937924862, + 0.01577814482152462, + 0.013632276095449924, + 0.038298387080430984, + 0.07666600495576859, + -0.048963628709316254, + 0.041163742542266846, + -0.06342019140720367, + -0.009470120072364807, + -0.07057616114616394, + 0.0076567791402339935, + 0.010691531002521515, + -0.09257781505584717, + -0.03947608545422554, + 0.08207451552152634, + 0.01605331525206566, + 0.03958521783351898, + -0.08270879089832306, + -0.07009458541870117, + -0.021396761760115623, + 0.042822498828172684, + 0.0718824714422226, + -0.055736735463142395, + -0.010422486811876297, + 0.058570556342601776, + 0.04986683279275894, + 0.015990938991308212, + 0.08449632674455643, + 0.04153852164745331, + -0.061078086495399475, + -0.03711984306573868, + -0.03062603622674942, + 0.09993880987167358, + 0.04734416678547859, + -0.05824292451143265, + -0.04347402602434158, + -0.05519230663776398, + -0.049645937979221344, + -0.0006622616201639175, + -0.014162433333694935, + 0.024793529883027077, + 0.06623566150665283, + -0.021464698016643524, + -0.08998558670282364, + -0.0979444831609726, + 0.06329875439405441, + -0.05878762528300285, + 0.013441061601042747, + -0.05012490227818489, + 0.027473634108901024, + 0.043029628694057465, + 0.05713218078017235, + -0.040637753903865814, + 0.007757308892905712, + -0.020825708284974098, + -0.060269929468631744, + 0.0030862241983413696, + 0.013228049501776695, + 0.04468826949596405, + -0.08472061902284622, + -0.011824308894574642, + -0.06840802729129791, + 0.07352784276008606, + -0.07417911291122437, + 0.07702597230672836, + 0.03445609286427498, + -0.028549835085868835, + -0.07389676570892334, + 0.004822645336389542, + -0.04218965023756027, + 0.057287391275167465, + 0.07284535467624664, + 0.03744577243924141, + 0.02262120321393013, + -0.08249017596244812, + 0.06453859806060791, + 0.08595191687345505, + -0.007596771232783794, + -0.09834901243448257, + 0.0011981930583715439, + -0.0032746782526373863, + 0.060035690665245056, + 0.05292436107993126, + -0.025849156081676483, + 0.040095530450344086, + 0.029390152543783188, + -0.03652733191847801, + 0.04038412123918533, + 0.07081020623445511, + 0.0669822245836258, + -0.10407344251871109 + ] + }, + "p244_070.wav": { + "name": "p244", + "embedding": [ + 0.02991032972931862, + 0.09713266789913177, + -0.027360284700989723, + 0.02170083485543728, + -0.047729186713695526, + 0.055943526327610016, + -0.13302892446517944, + 0.09923289716243744, + -0.0437522754073143, + 0.14577391743659973, + -0.07060668617486954, + 0.08505018055438995, + -0.029882129281759262, + -0.18598291277885437, + -0.029957802966237068, + 0.06529025733470917, + -0.059457626193761826, + -0.03936466574668884, + -0.04785887897014618, + -0.023037217557430267, + 0.0352051705121994, + 0.05845373868942261, + 0.02115449495613575, + -0.022364582866430283, + 0.023670166730880737, + 0.06351901590824127, + 0.00473762396723032, + 0.039859239012002945, + 0.0013181092217564583, + -0.05319696292281151, + -0.029683595523238182, + 0.11725907027721405, + -0.03794175386428833, + 0.018588010221719742, + 0.025406356900930405, + 0.014373437501490116, + 0.018563341349363327, + -0.06947159767150879, + -0.010458077304065228, + 0.014902902767062187, + -0.0382770337164402, + 0.06767833232879639, + 0.028078097850084305, + 0.00964970514178276, + 0.03624027594923973, + 0.008601536974310875, + -0.03129652887582779, + -0.06333072483539581, + -0.09231466054916382, + 0.1972379833459854, + 0.08844916522502899, + -0.006180133670568466, + -0.048308469355106354, + -0.09691385924816132, + 0.09024622291326523, + 0.016768306493759155, + -0.12709854543209076, + -0.06816892325878143, + 0.0870758593082428, + 0.16377541422843933, + -0.015808267518877983, + -0.0325927734375, + 0.013753147795796394, + 0.13827481865882874, + 0.01878228224813938, + 0.09819979965686798, + 0.0577523335814476, + 0.09746627509593964, + 0.004603349603712559, + 0.0063022105023264885, + 0.07522371411323547, + 0.05628213658928871, + 0.03123718872666359, + -0.016654256731271744, + 0.035716086626052856, + -0.014248053543269634, + -0.025026725605130196, + 0.012815079651772976, + -0.009755978360772133, + -0.02446960285305977, + -0.0052015832625329494, + 0.002701279241591692, + -0.01197902113199234, + 0.015339416451752186, + -0.013912796974182129, + 0.02174682915210724, + 0.029543699696660042, + -0.009072719141840935, + 0.08121216297149658, + 0.03776708245277405, + 0.015159412287175655, + 0.04681462049484253, + -0.05047263950109482, + -0.08258160948753357, + 0.029082901775836945, + 0.030308786779642105, + 0.012764479964971542, + 0.06561272591352463, + 0.02340395748615265, + -0.03610274940729141, + 0.10929451882839203, + 0.02647586166858673, + -0.016308387741446495, + 0.012034917250275612, + -0.10742451250553131, + 0.1267780065536499, + 0.07977531850337982, + -0.011146089062094688, + 0.03917150944471359, + -0.0402151495218277, + 0.06598741561174393, + 0.07048916816711426, + -0.142117440700531, + -0.07743804156780243, + 0.025727108120918274, + 0.010038471780717373, + -0.028583722189068794, + 0.10993412137031555, + 0.0159462783485651, + 0.010519732721149921, + 0.1172567829489708, + -0.10484252125024796, + -0.07501819729804993, + -0.025926880538463593, + 0.047169029712677, + -0.09261322766542435, + 0.018937285989522934, + 0.07269708812236786, + -0.029842954128980637, + 0.007695285603404045, + 0.07650066912174225, + -0.0011957152746617794, + 0.034363117069005966, + 0.006253550760447979, + -0.04821476340293884, + 0.03430265188217163, + -0.0352766327559948, + -0.0020013500470668077, + 0.045845627784729004, + 0.038289979100227356, + 0.049407415091991425, + -0.01659550704061985, + -0.05738826096057892, + -0.1140483021736145, + 0.01262338925153017, + 0.033136963844299316, + 0.06008845195174217, + -0.01889149844646454, + -0.00403453316539526, + -0.03142246976494789, + -0.08135172724723816, + 0.021794293075799942, + -0.02001180127263069, + 0.08747489005327225, + -0.0022539724595844746, + -0.027037477120757103, + 0.11984295397996902, + 0.01634308136999607, + -0.013876904733479023, + -0.05187677592039108, + -0.04038695991039276, + 0.03837493807077408, + 0.04228370636701584, + -0.09457358717918396, + -0.061183761805295944, + 0.017095627263188362, + 0.027456611394882202, + -0.00366988405585289, + 0.034399040043354034, + 0.04362881928682327, + 0.011307156644761562, + 0.023048173636198044, + -0.07092536985874176, + 0.006714926101267338, + -0.08838729560375214, + -0.0592900887131691, + -0.006112528499215841, + -0.028270918875932693, + -0.022105993703007698, + 0.09926992654800415, + -0.009517538361251354, + 0.0219819787889719, + -0.021933868527412415, + -0.07600809633731842, + -0.06995662301778793, + 0.07575470209121704, + 0.08184435963630676, + 8.164811879396439e-05, + 0.0515405610203743, + 0.04392187297344208, + -0.0358964279294014, + 0.027801673859357834, + 0.05057409405708313, + 0.11894149333238602, + -0.03312252461910248, + 0.010453984141349792, + -0.07434603571891785, + 0.0778932273387909, + 0.06405719369649887, + -0.10046273469924927, + -0.05399708077311516, + -0.03222255781292915, + -0.05673178285360336, + 0.03812501206994057, + -0.032521992921829224, + 0.007975148037075996, + 0.023129835724830627, + -0.01954576186835766, + -0.10331720858812332, + -0.09622026234865189, + 0.08285944163799286, + -0.04898538440465927, + -0.014663532376289368, + -0.06842975318431854, + 0.05165817216038704, + 0.08830922842025757, + 0.07179246097803116, + -0.028822287917137146, + -0.004184132441878319, + 0.048411935567855835, + -0.06446801126003265, + 0.0017306981608271599, + 0.04234875738620758, + 0.037913233041763306, + -0.09251242130994797, + 0.004728993866592646, + -0.08809943497180939, + 0.0548415444791317, + -0.06621024012565613, + 0.14646996557712555, + 0.01086841244250536, + -0.06429386138916016, + -0.09507139772176743, + 0.04500804841518402, + -0.03568064421415329, + 0.038801148533821106, + 0.02710224688053131, + 0.04702979698777199, + 0.05346471816301346, + -0.058262720704078674, + 0.11559824645519257, + 0.04072568565607071, + -0.005541316233575344, + -0.052699729800224304, + -0.026144415140151978, + -0.042245879769325256, + 0.047387562692165375, + -0.0011509372852742672, + -0.09449885785579681, + -0.007616832386702299, + 0.03220047429203987, + -0.014819370582699776, + 0.07149173319339752, + 0.13382050395011902, + 0.06893161684274673, + -0.1137724369764328 + ] + }, + "p244_260.wav": { + "name": "p244", + "embedding": [ + 0.052443671971559525, + 0.058890312910079956, + -0.030283790081739426, + 0.054286450147628784, + -0.05942036956548691, + 0.03844401612877846, + -0.13732722401618958, + 0.08087147772312164, + -0.026981018483638763, + 0.1198892891407013, + -0.060615673661231995, + 0.07791361212730408, + -0.019531795755028725, + -0.18594130873680115, + -0.01834254525601864, + 0.06921707838773727, + -0.06945834308862686, + -0.057750023901462555, + -0.07611195743083954, + -0.032044682651758194, + 0.020030103623867035, + 0.05806142836809158, + 0.03044389933347702, + -0.013777684420347214, + 0.033260051161050797, + 0.053187862038612366, + -0.005918641574680805, + 0.027794208377599716, + 0.009298181161284447, + -0.034195128828287125, + -0.010616540908813477, + 0.10243809968233109, + -0.01972627080976963, + -0.011815393343567848, + 0.005173263140022755, + 0.03616705164313316, + 0.002077273791655898, + -0.08505409955978394, + -0.03782462701201439, + 0.01574067585170269, + -0.06782083213329315, + 0.06345131993293762, + 0.03816036134958267, + -0.0339784175157547, + 0.039595648646354675, + -0.025284461677074432, + -0.050554897636175156, + -0.05418383330106735, + -0.12210095673799515, + 0.18167096376419067, + 0.07810959219932556, + 0.021752292290329933, + -0.068272665143013, + -0.07620363682508469, + 0.09472226351499557, + 0.0032911384478211403, + -0.12374389171600342, + -0.050256822258234024, + 0.07356399297714233, + 0.17306257784366608, + -0.023705286905169487, + -0.0021210014820098877, + 0.027197862043976784, + 0.13342586159706116, + 0.06263761967420578, + 0.07645954191684723, + 0.06787553429603577, + 0.11010432988405228, + 0.002539274049922824, + 0.016204629093408585, + 0.09764999151229858, + 0.059212684631347656, + 0.03640780970454216, + -0.0123871685937047, + 0.01393324974924326, + -0.0020597586408257484, + -0.03439733386039734, + -0.006506206467747688, + -0.017389077693223953, + -0.02587355673313141, + 0.0013553816825151443, + -0.019604841247200966, + 0.009471730329096317, + 0.018233075737953186, + -0.03592627868056297, + 0.02556605450809002, + 0.054522350430488586, + -0.03486078977584839, + 0.06509394943714142, + 0.050987839698791504, + 0.003218352561816573, + 0.0436897911131382, + -0.03764643147587776, + -0.0888967365026474, + 0.009503361769020557, + 0.023859849199652672, + 0.024276316165924072, + 0.048773396760225296, + 0.03251905366778374, + -0.030649341642856598, + 0.1110071912407875, + 0.02671528235077858, + -0.011274587363004684, + 0.01955975592136383, + -0.09594254940748215, + 0.11146451532840729, + 0.09117516875267029, + -0.011454186402261257, + 0.040852826088666916, + -0.021633144468069077, + 0.05776110664010048, + 0.0782390683889389, + -0.12134939432144165, + -0.04581364244222641, + 0.025709660723805428, + -0.006021748296916485, + -0.006508306600153446, + 0.11656110733747482, + 0.02181277610361576, + 0.022313140332698822, + 0.11436766386032104, + -0.09455771744251251, + -0.05395294725894928, + -0.013253034092485905, + 0.0563943050801754, + -0.08456818014383316, + 0.03143411874771118, + 0.06915058195590973, + -0.024777468293905258, + 0.005611828062683344, + 0.06044044345617294, + -0.0011769109405577183, + 0.01612609066069126, + -0.017426365986466408, + -0.03795291483402252, + 0.06245235726237297, + -0.027717262506484985, + -0.0146824661642313, + 0.08564204722642899, + 0.030956588685512543, + 0.04711495339870453, + -0.011472516693174839, + -0.03338033705949783, + -0.10827721655368805, + 0.02675252966582775, + 0.04157167673110962, + 0.08721060305833817, + -0.019418086856603622, + 0.009227249771356583, + -0.058872297406196594, + -0.08381900936365128, + 0.056617505848407745, + -0.030123643577098846, + 0.08945368230342865, + -0.005842579994350672, + -0.030310453847050667, + 0.11009860038757324, + -0.009250789880752563, + -0.0023176763206720352, + -0.029247581958770752, + -0.023278385400772095, + 0.04241662472486496, + 0.0491216778755188, + -0.08824587613344193, + -0.05917992815375328, + 0.012933153659105301, + 0.022040069103240967, + -0.028918232768774033, + 0.01963481307029724, + 0.017823772504925728, + -0.003989948891103268, + 0.006159224547445774, + -0.07605648040771484, + 0.025758519768714905, + -0.09067247807979584, + -0.04475948214530945, + 0.021828006953001022, + -0.04493986442685127, + -0.00769712682813406, + 0.09507131576538086, + 0.012354816310107708, + 0.007893905974924564, + -0.03547287732362747, + -0.11190629750490189, + -0.06183738261461258, + 0.06806796044111252, + 0.06126062572002411, + -0.005525221116840839, + 0.044351838529109955, + 0.05669216066598892, + -0.01432847324758768, + 0.01546574104577303, + 0.04030876234173775, + 0.11800795793533325, + -0.03175816312432289, + -0.00919390469789505, + -0.06634333729743958, + 0.08731898665428162, + 0.07194938510656357, + -0.08271962404251099, + -0.053904324769973755, + -0.040673449635505676, + -0.062066707760095596, + 0.0386207140982151, + -0.021277619525790215, + 0.005010928027331829, + 0.04068051651120186, + -0.03413543850183487, + -0.12400849163532257, + -0.1026727557182312, + 0.08904910832643509, + -0.050866737961769104, + -0.02218184620141983, + -0.07930473238229752, + 0.03549589961767197, + 0.07337690144777298, + 0.04734059423208237, + -0.01640145853161812, + 0.008923745714128017, + 0.02853236347436905, + -0.07541575282812119, + -0.01096288301050663, + 0.04997691139578819, + 0.00787083525210619, + -0.10931070894002914, + -0.02784734219312668, + -0.0821065753698349, + 0.07258278131484985, + -0.04227996617555618, + 0.1414038985967636, + 0.01636827364563942, + -0.0457879975438118, + -0.08554629236459732, + 0.04441457241773605, + -0.024595730006694794, + 0.07259853184223175, + 0.06704141199588776, + 0.056777939200401306, + 0.05424455553293228, + -0.060157254338264465, + 0.09853781759738922, + 0.048772942274808884, + -0.010409444570541382, + -0.04846806824207306, + -0.01409197598695755, + -0.03018895536661148, + 0.028375796973705292, + -0.022878238931298256, + -0.06497061252593994, + 0.014018911868333817, + 0.024653032422065735, + -0.03470531478524208, + 0.05763044208288193, + 0.11638481914997101, + 0.08661766350269318, + -0.08111521601676941 + ] + }, + "p244_192.wav": { + "name": "p244", + "embedding": [ + 0.03262646123766899, + 0.12379908561706543, + 0.016163086518645287, + -0.00663268007338047, + -0.05911390855908394, + 0.09224914014339447, + -0.10246001183986664, + 0.13159795105457306, + -0.08496902137994766, + 0.14029830694198608, + -0.06387554854154587, + 0.12614262104034424, + -0.02968781255185604, + -0.18280376493930817, + -0.08825138211250305, + 0.038232047110795975, + -0.08782477676868439, + -0.012869427911937237, + -0.05663047358393669, + -0.03225100040435791, + 0.045121416449546814, + 0.021371454000473022, + 0.038543567061424255, + 0.014830940403044224, + 0.03173444792628288, + 0.06083229184150696, + 0.03976612165570259, + 0.06885115057229996, + 0.058115214109420776, + -0.09211589395999908, + -0.0532311350107193, + 0.0960359275341034, + -0.039316657930612564, + 0.01907646283507347, + 0.05744375288486481, + -0.027037344872951508, + 0.05597357451915741, + -0.026630999520421028, + -0.014653770253062248, + 0.0547000952064991, + -0.005754037760198116, + 0.08610182255506516, + 0.022965729236602783, + 0.026887163519859314, + 0.02968793734908104, + 0.03296804800629616, + -0.006874381564557552, + -0.04925329610705376, + -0.08828482031822205, + 0.17789803445339203, + 0.07549478858709335, + -0.04517019912600517, + -0.04509381577372551, + -0.08592663705348969, + 0.11843317002058029, + -0.047517500817775726, + -0.13891443610191345, + -0.0443793386220932, + 0.07666254788637161, + 0.14082317054271698, + -0.02262004092335701, + -0.025023939087986946, + 0.01558383833616972, + 0.12578435242176056, + 0.0017377515323460102, + 0.09159385412931442, + 0.06470347940921783, + 0.0568973682820797, + -0.006759846117347479, + 0.04127608239650726, + 0.04138202592730522, + 0.05442634969949722, + -0.003463547211140394, + -0.028999852016568184, + 0.04508412629365921, + -0.04047863930463791, + 0.007330487947911024, + 0.025570763275027275, + -0.001731345895677805, + 0.011806417256593704, + -0.025929901748895645, + 0.03188137710094452, + -0.032630082219839096, + -0.020052870735526085, + -0.028647303581237793, + 0.08918803185224533, + -0.06625811010599136, + 0.020840546116232872, + 0.08517219871282578, + 0.056607574224472046, + 0.03346594423055649, + 0.05179920047521591, + -0.026437651365995407, + -0.08375440537929535, + 0.01749361678957939, + 0.010003789328038692, + 0.0013587971916422248, + 0.06163894012570381, + 0.030074529349803925, + -0.009656962938606739, + 0.11676964163780212, + 0.0974079817533493, + -0.015413512475788593, + 0.018763558939099312, + -0.1064629852771759, + 0.13343174755573273, + 0.06986691802740097, + -0.0060981521382927895, + 0.048893094062805176, + -0.012913327664136887, + 0.0947539359331131, + 0.06055876240134239, + -0.13951069116592407, + -0.09990041702985764, + 0.02111734077334404, + 0.018239859491586685, + -0.006232604384422302, + 0.06367859989404678, + -0.038519486784935, + 0.0013844977365806699, + 0.09338568150997162, + -0.037311892956495285, + -0.03465544059872627, + -0.04517214000225067, + 0.047214996069669724, + -0.08431456983089447, + 0.04411686584353447, + 0.0476948618888855, + -0.03336651623249054, + 0.010245944373309612, + 0.10439297556877136, + -0.027889762073755264, + -0.006752275861799717, + 0.05106702446937561, + -0.05176100134849548, + 0.020060457289218903, + -0.043331947177648544, + 0.0307435542345047, + 0.05499693751335144, + 0.06152747943997383, + 0.0451640710234642, + -0.0065767355263233185, + -0.047320377081632614, + -0.07724594324827194, + 0.01527004037052393, + 0.007835125550627708, + 0.029460886493325233, + 0.002716443035751581, + -0.01829267293214798, + -0.04220691695809364, + -0.0415181890130043, + 0.009277798235416412, + 0.011681064032018185, + 0.10670042783021927, + -0.0373481810092926, + 0.011390705592930317, + 0.09584599733352661, + 0.02628462389111519, + -0.012467705644667149, + -0.06510966271162033, + -0.01812545396387577, + 0.018218478187918663, + 0.021362971514463425, + -0.06408677995204926, + -0.04967020824551582, + 0.015409364365041256, + 0.03610571473836899, + 0.007837394252419472, + 0.05593043565750122, + 0.055983323603868484, + -0.007863645441830158, + 0.06584001332521439, + -0.06082644313573837, + 0.04337921366095543, + -0.07438793033361435, + -0.04220271110534668, + -0.04701162502169609, + -0.04382346570491791, + -0.053444165736436844, + 0.07747042179107666, + 0.013824761845171452, + 0.030396370217204094, + 0.023242823779582977, + -0.08791415393352509, + -0.04846861958503723, + 0.06330010294914246, + 0.08721206337213516, + 0.022446848452091217, + 0.05515456572175026, + 0.0662652924656868, + -0.02282850444316864, + 0.10573237389326096, + 0.07012295722961426, + 0.08537440747022629, + -0.02867060713469982, + 0.02211076021194458, + -0.0632515475153923, + 0.032728876918554306, + 0.03469701483845711, + -0.11599639058113098, + -0.09122373908758163, + -0.03641390800476074, + -0.05869691073894501, + 0.053902365267276764, + -0.008009104989469051, + 0.014753764495253563, + 0.0302495788782835, + 0.012730518355965614, + -0.06036784127354622, + -0.08083370327949524, + 0.10071447491645813, + -0.06936222314834595, + -0.02176787331700325, + -0.04625125601887703, + 0.04283015802502632, + 0.10944625735282898, + 0.051922429352998734, + -0.017396582290530205, + -0.002459428273141384, + 0.03914971277117729, + -0.039964254945516586, + -0.022487320005893707, + 0.02524956688284874, + 0.0014459765516221523, + -0.08683238923549652, + 0.037161603569984436, + -0.11110566556453705, + 0.06750425696372986, + -0.06399993598461151, + 0.15809762477874756, + -0.018155252560973167, + -0.05730913206934929, + -0.07170087844133377, + 0.06281932443380356, + -0.08599540591239929, + 0.04444502294063568, + 0.045324452221393585, + 0.05362018570303917, + 0.03590121120214462, + -0.04842270910739899, + 0.11408175528049469, + 0.02636745199561119, + -0.05775199085474014, + -0.0828903317451477, + -0.021566241979599, + -0.040971413254737854, + 0.025289272889494896, + 0.049910563975572586, + -0.1077699288725853, + -0.01977474056184292, + 0.02118963748216629, + -0.036079291254282, + 0.1123875305056572, + 0.12693852186203003, + 0.05807378143072128, + -0.10722947120666504 + ] + }, + "p244_283.wav": { + "name": "p244", + "embedding": [ + 0.039232030510902405, + 0.04001661390066147, + -0.0031923092901706696, + 0.01469759177416563, + -0.030734937638044357, + 0.03192451596260071, + -0.11696989834308624, + 0.0813559889793396, + -0.0394848957657814, + 0.10779696702957153, + -0.08436741679906845, + 0.033969469368457794, + -0.038807567209005356, + -0.14530779421329498, + -0.014879296533763409, + 0.03799489140510559, + -0.06091165542602539, + -0.032437942922115326, + -0.0676305890083313, + -0.026015490293502808, + 0.030592216178774834, + 0.03598465025424957, + 0.016055293381214142, + -0.020193390548229218, + 0.007442080415785313, + 0.05791006609797478, + 0.021558858454227448, + 0.03837969899177551, + 0.007267209701240063, + -0.02674448862671852, + 0.0013659819960594177, + 0.08930043876171112, + -0.020491085946559906, + -0.048027679324150085, + 0.023123454302549362, + 0.01599838212132454, + 0.001458665356040001, + -0.05919037386775017, + -0.02921389788389206, + 0.02535497024655342, + -0.06072108447551727, + 0.050209060311317444, + 0.02088596671819687, + 0.009203490801155567, + 0.021353889256715775, + 0.020389307290315628, + -0.029122738167643547, + -0.060888539999723434, + -0.09751646220684052, + 0.17787866294384003, + 0.07247117161750793, + -0.002008268842473626, + -0.0502011701464653, + -0.06404097378253937, + 0.10148391127586365, + 0.0032503509428352118, + -0.07468050718307495, + -0.047246359288692474, + 0.07784225046634674, + 0.1442847102880478, + -0.033880677074193954, + -0.01677069440484047, + 0.025779258459806442, + 0.08851069211959839, + 0.012007324025034904, + 0.05170857533812523, + 0.08094961941242218, + 0.0826890617609024, + 0.019261198118329048, + 0.01898733153939247, + 0.08610763400793076, + 0.04475600644946098, + 0.04295939952135086, + -0.02593531832098961, + 0.05717357248067856, + 0.03452795743942261, + -0.04352286085486412, + 0.016954660415649414, + -0.01345846988260746, + -0.01772265136241913, + 0.04204338788986206, + -0.016601774841547012, + 0.013175204396247864, + 0.014141897670924664, + -0.03879683464765549, + 0.037507250905036926, + 0.00757070817053318, + 0.003475553123280406, + 0.07302048802375793, + 0.009177839383482933, + 0.019743120297789574, + 0.05916476249694824, + -0.04525167867541313, + -0.08441450446844101, + 0.019859010353684425, + 0.012698805890977383, + 0.014833247289061546, + 0.037402380257844925, + 0.05333958566188812, + -0.045696139335632324, + 0.11021425575017929, + 0.02164195105433464, + 0.011721721850335598, + 0.024101829156279564, + -0.11210121214389801, + 0.10297517478466034, + 0.09022724628448486, + -0.012470535933971405, + 0.023200623691082, + -0.02056589350104332, + 0.06078717112541199, + 0.05715538188815117, + -0.14052119851112366, + -0.056609563529491425, + 0.03597521781921387, + 0.002670317655429244, + 0.017241600900888443, + 0.11350379884243011, + -0.00435231626033783, + -0.026707038283348083, + 0.11042928695678711, + -0.10169180482625961, + -0.05147615075111389, + -0.008788736537098885, + 0.04958194121718407, + -0.08600907772779465, + 0.0028126961551606655, + 0.06777589023113251, + -0.03514304757118225, + -0.025616973638534546, + 0.09346672147512436, + -0.0063130296766757965, + -0.0005574353854171932, + -0.050451964139938354, + 0.009761122986674309, + 0.07647810131311417, + -0.035720814019441605, + -0.021647488698363304, + 0.03993307054042816, + 0.05119851976633072, + 0.013027305714786053, + 0.007492732256650925, + -0.06469928473234177, + -0.11385206878185272, + 0.020658567547798157, + 0.03075352869927883, + 0.04238678514957428, + -0.020495446398854256, + 0.001584527431987226, + -0.04922589659690857, + -0.056288160383701324, + 0.0074312081560492516, + -0.00858324859291315, + 0.07519644498825073, + 0.019060436636209488, + -0.03340581804513931, + 0.12344402074813843, + -0.020817503333091736, + 0.013176415115594864, + -0.02140885405242443, + -0.019554313272237778, + 0.04474584758281708, + 0.033792316913604736, + -0.054356422275304794, + -0.06857017427682877, + 0.0013102320954203606, + 0.01623266562819481, + 0.028343770653009415, + -0.018343066796660423, + 0.01499768253415823, + -0.011074679903686047, + 0.001171500189229846, + -0.08690568059682846, + 0.05001261830329895, + -0.09137199819087982, + -0.043171025812625885, + 0.0218740776181221, + -0.023452039808034897, + 0.006724332459270954, + 0.08522772789001465, + -0.03320242092013359, + -0.0005520532722584903, + -0.04186738654971123, + -0.09571130573749542, + -0.02740243636071682, + 0.0722603052854538, + 0.08467152714729309, + -0.0056976331397891045, + 0.039137668907642365, + 0.044860970228910446, + -0.012593826279044151, + 0.02291056327521801, + 0.04710756987333298, + 0.1249910220503807, + -0.015299561433494091, + -0.013998322188854218, + -0.03501644730567932, + 0.09460246562957764, + 0.03299938142299652, + -0.06793376803398132, + -0.04781394451856613, + -0.017772313207387924, + -0.0501258485019207, + 0.05202708765864372, + -0.00376477325335145, + 0.017450060695409775, + 0.02385827898979187, + -0.025509625673294067, + -0.08307081460952759, + -0.06406915932893753, + 0.059717610478401184, + -0.020572561770677567, + -0.04520442336797714, + -0.06958864629268646, + 0.05237307399511337, + 0.09158962965011597, + 0.057359956204891205, + -0.009468848817050457, + -0.016166023910045624, + 0.014479326084256172, + -0.058091334998607635, + -0.04781114310026169, + 0.006234246306121349, + 0.0026140189729630947, + -0.0882546454668045, + -0.0040228660218417645, + -0.10071736574172974, + 0.05490674078464508, + -0.04665672034025192, + 0.0811089426279068, + -0.018870998173952103, + -0.03884682059288025, + -0.0983276516199112, + 0.030058693140745163, + 0.01853208616375923, + 0.06611476838588715, + 0.06005669757723808, + 0.026961153373122215, + 0.06335900723934174, + -0.05181583762168884, + 0.09810954332351685, + 0.009274730458855629, + -0.000679048418533057, + -0.048414409160614014, + -0.011094672605395317, + -0.023080993443727493, + 0.00956993643194437, + -0.03550200164318085, + -0.08103357255458832, + 0.013593828305602074, + 0.026865746825933456, + -0.02848776802420616, + 0.041616037487983704, + 0.057346295565366745, + 0.034800585359334946, + -0.09665316343307495 + ] + }, + "p244_236.wav": { + "name": "p244", + "embedding": [ + 0.04820508509874344, + 0.10878953337669373, + -0.00947614386677742, + -0.0003535933792591095, + -0.04852373152971268, + 0.08393901586532593, + -0.11278443783521652, + 0.14334747195243835, + -0.08266112208366394, + 0.14938929677009583, + -0.09045444428920746, + 0.12153787910938263, + -0.03380352258682251, + -0.1644965559244156, + -0.06996169686317444, + 0.04691207408905029, + -0.06985533237457275, + -0.03311828896403313, + -0.05637100338935852, + -0.022647444158792496, + 0.03965609520673752, + 0.012664943002164364, + 0.009896627627313137, + 0.01723404787480831, + 0.03526989370584488, + 0.06919237226247787, + 0.0037125730887055397, + 0.040071550756692886, + 0.008713934570550919, + -0.051345594227313995, + -0.030846770852804184, + 0.10160335898399353, + -0.0481330007314682, + 0.016990812495350838, + 0.06602165102958679, + 0.0025146990083158016, + 0.014945178292691708, + -0.06995779275894165, + -0.02499580569565296, + 0.004144517704844475, + -0.03736572712659836, + 0.07600238174200058, + 0.00015054602408781648, + -0.00893908366560936, + 0.01967032440006733, + 0.03309566155076027, + -0.0016683717258274555, + -0.0550842210650444, + -0.08720910549163818, + 0.14490476250648499, + 0.06668956577777863, + 0.013609993271529675, + -0.08508859574794769, + -0.07864023745059967, + 0.1228390485048294, + -0.028607016429305077, + -0.10472586005926132, + -0.029922716319561005, + 0.055135756731033325, + 0.1741729974746704, + -0.05482381582260132, + -0.03255802392959595, + 0.017149999737739563, + 0.10389762371778488, + 0.0510408915579319, + 0.09742671251296997, + 0.08957777917385101, + 0.07893287390470505, + -0.007838211953639984, + 0.03179732710123062, + 0.07636762410402298, + 0.07055525481700897, + 0.08114434778690338, + -0.02431241236627102, + 0.029850732535123825, + -0.0014123732689768076, + -0.027026109397411346, + 0.015605702064931393, + -0.034852564334869385, + -0.014863528311252594, + -0.03151274472475052, + 0.023755531758069992, + 0.009298218414187431, + 0.009798758663237095, + -0.01909622736275196, + 0.06469061225652695, + 0.00819188542664051, + -0.03863329440355301, + 0.06194514408707619, + 0.05268247425556183, + 0.0052335914224386215, + 0.059845663607120514, + -0.08664561063051224, + -0.10503512620925903, + 0.02540104277431965, + -0.01200943998992443, + 0.016580455005168915, + 0.07227786630392075, + 0.05260920897126198, + -0.0127695482224226, + 0.09336817264556885, + 0.06439413875341415, + 0.0066719455644488335, + 0.015260877087712288, + -0.11065904796123505, + 0.10796335339546204, + 0.10224591940641403, + -0.041906751692295074, + 0.018132474273443222, + -0.017762072384357452, + 0.08129678666591644, + 0.08055371046066284, + -0.14529111981391907, + -0.10058961808681488, + 0.01881277561187744, + 0.007373459171503782, + 0.008507193997502327, + 0.07839669287204742, + -0.034401699900627136, + 0.020863482728600502, + 0.08997596055269241, + -0.05576471611857414, + -0.036810919642448425, + -0.03261200711131096, + 0.0408412329852581, + -0.054378122091293335, + 0.05939074605703354, + 0.0389554537832737, + 0.018266424536705017, + -0.00621865876019001, + 0.08780462294816971, + -0.012491317465901375, + -0.0341871939599514, + 0.02302609011530876, + -0.037475988268852234, + 0.023640180006623268, + -0.020730774849653244, + -0.008431666530668736, + 0.048404715955257416, + 0.06805644184350967, + 0.03736625984311104, + 0.014366347342729568, + -0.025486215949058533, + -0.08414452522993088, + 0.013811491429805756, + 0.05308109149336815, + 0.059004999697208405, + -0.014732841402292252, + -0.011847937479615211, + -0.033606112003326416, + -0.05253882706165314, + 0.012648035772144794, + 0.0009992653504014015, + 0.0962996631860733, + -0.010550910606980324, + 0.024433404207229614, + 0.10697051882743835, + 0.011619520373642445, + -0.015601426362991333, + -0.04500630497932434, + -0.00020239880541339517, + 0.020814690738916397, + 0.06258518248796463, + -0.06208540499210358, + -0.08312119543552399, + 0.0038182176649570465, + 0.018675215542316437, + -0.022086210548877716, + 0.061458975076675415, + 0.03930175304412842, + 0.005808436311781406, + 0.03233630582690239, + -0.06515025347471237, + 0.023756559938192368, + -0.12939141690731049, + -0.04911305010318756, + -0.024706944823265076, + -0.05979182571172714, + -0.018310382962226868, + 0.05946996062994003, + 0.023050716146826744, + 0.040581114590168, + 0.001777112134732306, + -0.10548600554466248, + -0.06767678260803223, + 0.06569081544876099, + 0.08394081890583038, + 0.014556505717337132, + 0.0347890630364418, + 0.07125942409038544, + 0.008142087608575821, + 0.06304094195365906, + 0.0910014659166336, + 0.11787177622318268, + -0.018391568213701248, + 0.014040175825357437, + -0.061126336455345154, + 0.07746598869562149, + 0.05195401608943939, + -0.10281551629304886, + -0.09707718342542648, + -0.036570996046066284, + -0.04190056398510933, + 0.03774503618478775, + -0.011199538595974445, + 0.03354952484369278, + 0.02544495463371277, + -0.011408906430006027, + -0.08432602882385254, + -0.08067432790994644, + 0.10441898554563522, + -0.05864937603473663, + -0.008841561153531075, + -0.06917839497327805, + 0.03518252819776535, + 0.09449824690818787, + 0.022959351539611816, + -0.005297847557812929, + 0.025215094909071922, + 0.04239176958799362, + -0.038950107991695404, + -0.025728100910782814, + 0.021930865943431854, + -0.006618882063776255, + -0.09107661247253418, + 0.019343502819538116, + -0.07480685412883759, + 0.09088470041751862, + -0.04888838902115822, + 0.15754434466362, + -0.02769552543759346, + -0.04993031173944473, + -0.0872674435377121, + 0.034873005002737045, + -0.03391573205590248, + 0.0581282377243042, + 0.04402262717485428, + 0.0796821117401123, + 0.010697830468416214, + -0.06277894228696823, + 0.11729097366333008, + 0.032235559076070786, + -0.04771881550550461, + -0.0723021849989891, + -0.06284220516681671, + -0.03661695495247841, + 0.0004031551070511341, + -9.724032133817673e-05, + -0.062462352216243744, + 0.0009330874308943748, + -0.0061837732791900635, + -0.026214733719825745, + 0.06998561322689056, + 0.13696980476379395, + 0.08397702127695084, + -0.11739620566368103 + ] + }, + "p244_252.wav": { + "name": "p244", + "embedding": [ + 0.07716768980026245, + 0.04761534184217453, + 0.022936426103115082, + -0.01818549446761608, + -0.02361423335969448, + 0.09606628119945526, + -0.11084376275539398, + 0.09879275411367416, + -0.01856781542301178, + 0.08185043931007385, + -0.0704033151268959, + 0.07855867594480515, + -0.0007906816899776459, + -0.14765167236328125, + -0.028049219399690628, + 0.049288731068372726, + -0.04007682576775551, + -0.007258512079715729, + -0.05120792239904404, + -0.017174510285258293, + 0.0006373462965711951, + 0.0317862294614315, + 0.04892366752028465, + -0.012307718396186829, + 0.04618589207530022, + 0.047960370779037476, + -0.0022773458622395992, + 0.033281974494457245, + -0.004639841616153717, + -0.06337213516235352, + -0.008107287809252739, + 0.07646127790212631, + -0.05012640357017517, + -0.005116280168294907, + 0.04253533482551575, + 0.004233282059431076, + 0.03603450953960419, + -0.09249454736709595, + -0.028095990419387817, + 0.029318884015083313, + -0.03973676264286041, + 0.08701322972774506, + 0.04862217232584953, + 0.010080568492412567, + 0.009718114510178566, + 0.010890218429267406, + -0.007595764007419348, + -0.05470741540193558, + -0.10715685784816742, + 0.15896251797676086, + 0.023291587829589844, + 0.02394668012857437, + -0.09805776923894882, + -0.042856305837631226, + 0.0678141862154007, + -0.02080141380429268, + -0.06842844188213348, + -0.020687028765678406, + 0.0457315556704998, + 0.12150713056325912, + 0.00650379341095686, + -0.038537707179784775, + 0.020190967246890068, + 0.06558647751808167, + 0.01745457760989666, + 0.03496813401579857, + 0.10727386176586151, + 0.09574540704488754, + -0.0043279025703668594, + 0.027904434129595757, + 0.047822266817092896, + 0.03478327766060829, + 0.05985298007726669, + -0.004163273144513369, + 0.034400686621665955, + -0.025424672290682793, + -0.019376840442419052, + -0.004690757021307945, + -0.020117968320846558, + -0.015141252428293228, + 0.035345081239938736, + 0.013400128111243248, + 0.032083556056022644, + 0.05194786190986633, + -0.04222938418388367, + 0.036896854639053345, + -0.010872950777411461, + 0.04008467122912407, + 0.07687951624393463, + 0.03662335127592087, + 0.022966397926211357, + 0.03104298934340477, + -0.062205057591199875, + -0.0847967267036438, + 0.026772333309054375, + 0.021584510803222656, + 0.024301722645759583, + 0.024316977709531784, + 0.022458655759692192, + -0.030945148319005966, + 0.10055385529994965, + 0.016075003892183304, + -0.0005864178529009223, + -0.0004686601459980011, + -0.07390236109495163, + 0.08552559465169907, + 0.08547310531139374, + -0.005103106610476971, + 0.04666489362716675, + -0.04283273220062256, + 0.04751395434141159, + 0.06039704382419586, + -0.10840564221143723, + -0.0551137775182724, + 0.02095617912709713, + 0.011739959940314293, + 0.041054725646972656, + 0.11576496064662933, + -0.006472109816968441, + 0.031181734055280685, + 0.057312365621328354, + -0.08539610356092453, + -0.013761365786194801, + 0.03754434734582901, + 0.010123850777745247, + -0.03408979997038841, + 0.008371716365218163, + 0.02369045466184616, + 0.012939779087901115, + -0.035803236067295074, + 0.06357365101575851, + 0.005891553126275539, + 0.006101024337112904, + -0.03183082863688469, + 0.01424261461943388, + 0.037585943937301636, + -0.006662173196673393, + -0.029049456119537354, + 0.04843834042549133, + 0.0595395490527153, + 0.012075426988303661, + 0.030909210443496704, + -0.061696119606494904, + -0.11236244440078735, + -0.017913268879055977, + 0.010937197133898735, + 0.0498560331761837, + -0.031363457441329956, + -0.024469276890158653, + -0.06001213192939758, + -0.009219100698828697, + 0.02502514235675335, + 0.003918850794434547, + 0.054274022579193115, + 0.06396757811307907, + -0.028168698772788048, + 0.07540445029735565, + -0.0026130876503884792, + 0.011308208107948303, + -0.03668171912431717, + -0.02977321669459343, + 0.016988396644592285, + 0.04607531055808067, + -0.03489614650607109, + -0.050719693303108215, + 0.011316904798150063, + -0.01980675384402275, + -0.012938972562551498, + 0.021747849881649017, + 0.04534756764769554, + -0.0015244546812027693, + -0.00390112167224288, + -0.06848718225955963, + 0.018934527412056923, + -0.07049661874771118, + -0.053243763744831085, + 0.05872231349349022, + 0.0002640386519487947, + -0.02055390551686287, + 0.08759373426437378, + 0.03117450885474682, + 0.03949025273323059, + -0.057931311428546906, + -0.0559668242931366, + -0.016329504549503326, + 0.058916669338941574, + 0.04654241353273392, + -0.0031460896134376526, + 0.02492399513721466, + 0.017247971147298813, + 0.002409940119832754, + 0.06758801639080048, + 0.04950052499771118, + 0.06565926223993301, + -0.0504579171538353, + -0.006733857095241547, + -0.004204904194921255, + 0.10001038759946823, + 0.032257337123155594, + -0.0443548820912838, + -0.060041576623916626, + 0.010238075628876686, + -0.045519229024648666, + 0.032666780054569244, + -0.004553451202809811, + 0.009114152751863003, + 0.04385507106781006, + -0.023009493947029114, + -0.08292701840400696, + -0.061900608241558075, + 0.046312179416418076, + -0.0468490794301033, + -0.011925039812922478, + -0.0627334862947464, + 0.046067014336586, + 0.08596786111593246, + 0.01104133389890194, + -0.0009143439820036292, + -0.0007118040230125189, + -3.193567317794077e-05, + -0.04350648075342178, + -0.03599806874990463, + 0.016398241743445396, + 0.024121612310409546, + -0.07949941605329514, + -0.0010461978381499648, + -0.06150464341044426, + 0.04389932006597519, + -0.009544586762785912, + 0.10946111381053925, + 0.018009494990110397, + -0.03305317461490631, + -0.05472590774297714, + 0.010353559628129005, + -0.029074829071760178, + 0.04577895253896713, + 0.030117368325591087, + 0.020630067214369774, + 0.058496929705142975, + -0.04316342994570732, + 0.07929673790931702, + 0.03900561481714249, + -0.053236447274684906, + -0.05053195357322693, + -0.023328524082899094, + -0.017847547307610512, + 0.018769679591059685, + -0.029451027512550354, + -0.049021925777196884, + 0.024573471397161484, + 0.03654532879590988, + 0.018014010041952133, + 0.029905572533607483, + 0.08131217211484909, + 0.03999240696430206, + -0.07961864769458771 + ] + }, + "p244_060.wav": { + "name": "p244", + "embedding": [ + 0.010319357737898827, + 0.0850897878408432, + -0.03894076868891716, + 0.026983702555298805, + -0.08828854560852051, + 0.02914612926542759, + -0.12848438322544098, + 0.1303921341896057, + -0.033224545419216156, + 0.11203675717115402, + -0.055660296231508255, + 0.11407133936882019, + -0.04252006858587265, + -0.1845645159482956, + 0.008322346024215221, + 0.06202714145183563, + -0.00772900553420186, + -0.06893395632505417, + -0.010762635618448257, + -0.058170855045318604, + 0.019024470821022987, + 0.05188191682100296, + 0.009776233695447445, + 0.02144307643175125, + 0.0466361939907074, + 0.08826763182878494, + -0.01392319891601801, + 0.008796894922852516, + -0.013954735361039639, + -0.02961748279631138, + -0.04825478047132492, + 0.06644025444984436, + -0.07807009667158127, + -0.013634485192596912, + 0.025580374523997307, + -0.012992185540497303, + 0.002267067087814212, + -0.05052456259727478, + -0.02736019529402256, + 0.023870903998613358, + -0.07653500139713287, + 0.09130758047103882, + 0.04592723026871681, + -0.015383795835077763, + 0.02227753773331642, + 0.026673022657632828, + 0.0010515314061194658, + -0.039813652634620667, + -0.12150304019451141, + 0.15330061316490173, + 0.06767918169498444, + -0.019426468759775162, + -0.0538233257830143, + -0.058774277567863464, + 0.11442490667104721, + 0.005418546963483095, + -0.08697262406349182, + -0.05489328131079674, + 0.0808868482708931, + 0.1208563894033432, + -0.023710474371910095, + -0.039113108068704605, + 0.029464852064847946, + 0.11568918824195862, + 0.06337639689445496, + 0.06569229811429977, + 0.05648089200258255, + 0.11258888244628906, + -0.0427105575799942, + -0.020454401150345802, + 0.07935763895511627, + 0.065859355032444, + 0.005731577984988689, + -0.0349247120320797, + -0.009022481739521027, + 0.01164968777447939, + -0.013493604026734829, + 0.0012932498939335346, + 0.0013600762467831373, + -0.025590956211090088, + -0.02267385646700859, + -0.0027841173578053713, + -0.014395585283637047, + 0.009059876203536987, + -0.018825633451342583, + 0.055172353982925415, + 0.07010673731565475, + 0.005263277795165777, + 0.0985979288816452, + 0.01685400679707527, + -0.02920975536108017, + 0.07298513501882553, + -0.09121734648942947, + -0.025173617526888847, + 0.026747766882181168, + 0.002089724177494645, + 0.0161639004945755, + 0.10048042982816696, + 0.04460211098194122, + -0.006978645455092192, + 0.15180979669094086, + 0.04709753021597862, + 0.00613615196198225, + 0.018375253304839134, + -0.07542149722576141, + 0.13488836586475372, + 0.06756802648305893, + -0.03203896805644035, + 0.06115478277206421, + -0.028003297746181488, + 0.05214086174964905, + 0.043575968593358994, + -0.13225015997886658, + -0.059863172471523285, + 0.019882699474692345, + 0.031307581812143326, + -0.045711699873209, + 0.13543730974197388, + -0.008268368430435658, + 0.038935061544179916, + 0.11968955397605896, + -0.09310030192136765, + -0.07240497320890427, + -0.011716950684785843, + 0.05096723139286041, + -0.07887426018714905, + 0.05373120307922363, + 0.08968839049339294, + -0.023526102304458618, + 0.05787473917007446, + 0.06969986110925674, + -0.006690591108053923, + 0.02990853786468506, + 0.025639597326517105, + -0.03730863705277443, + 0.01607578434050083, + -0.002495318418368697, + 0.0059391530230641365, + 0.06705472618341446, + 0.018811028450727463, + 0.07272481173276901, + -0.016190147027373314, + -0.002926398301497102, + -0.1372460424900055, + 0.03927961736917496, + 0.027552923187613487, + 0.09074218571186066, + -0.012215186841785908, + -0.03261037543416023, + -0.04710067808628082, + -0.08708988130092621, + -0.012460575439035892, + 0.024923868477344513, + 0.1019999086856842, + -0.05604429915547371, + 0.009859636425971985, + 0.09739726781845093, + 0.07259497046470642, + -0.022275546565651894, + -0.05157797783613205, + -0.05215566232800484, + -0.021176153793931007, + 0.056844379752874374, + -0.0702158585190773, + -0.08331730961799622, + -0.026942776516079903, + 0.06617077440023422, + -0.013111292384564877, + 0.08779062330722809, + 0.04665382578969002, + 0.02885263040661812, + 0.018075959756970406, + -0.08566723763942719, + 0.03140733763575554, + -0.050884511321783066, + -0.04698203131556511, + -0.03114417754113674, + 0.005914061330258846, + -0.04932389408349991, + 0.08828851580619812, + 0.02260974980890751, + 0.0691206157207489, + -0.007027794606983662, + -0.05315271392464638, + -0.07366085797548294, + 0.03419667109847069, + 0.04459504038095474, + -0.03229214996099472, + 0.046945732086896896, + 0.0862363874912262, + -0.06363877654075623, + 0.03426161780953407, + 0.060030825436115265, + 0.08963975310325623, + -0.044932879507541656, + 0.04023361951112747, + -0.03113686293363571, + 0.07413095980882645, + 0.049196142703294754, + -0.1073906198143959, + -0.04382339119911194, + -0.05128374695777893, + -0.06565576791763306, + 0.044274844229221344, + -0.011771533638238907, + 0.02642114832997322, + -0.012519543059170246, + 0.006477381102740765, + -0.08157273381948471, + -0.08441781997680664, + 0.04868568107485771, + -0.047600157558918, + 0.0062561542727053165, + -0.0975136086344719, + 0.03167145699262619, + 0.10504133254289627, + 0.06389369815587997, + -0.010879270732402802, + -0.03164425864815712, + 0.04633409529924393, + 0.00375395268201828, + 0.030372655019164085, + 0.1151462122797966, + 0.06429405510425568, + -0.08760999888181686, + -0.030764011666178703, + -0.08119678497314453, + 0.08690568804740906, + -0.021799977868795395, + 0.14866431057453156, + 0.0437784343957901, + -0.03950846940279007, + -0.09059536457061768, + 0.03331327065825462, + -0.014637211337685585, + 0.05456538498401642, + 0.02798890508711338, + 0.05034765228629112, + 0.05131957307457924, + -0.005473603960126638, + 0.1309117078781128, + 0.058576859533786774, + -0.04967375099658966, + -0.04827294871211052, + -0.028375117108225822, + -0.0350322425365448, + 0.049600750207901, + 0.05065053328871727, + -0.10405796021223068, + -0.023053869605064392, + 0.028034038841724396, + -0.009889252483844757, + 0.08101300895214081, + 0.1456712782382965, + 0.10626771301031113, + -0.11374877393245697 + ] + }, + "p244_345.wav": { + "name": "p244", + "embedding": [ + 0.045877546072006226, + 0.11875580251216888, + -0.017863981425762177, + 0.025564592331647873, + -0.0524015799164772, + 0.05442719906568527, + -0.13574808835983276, + 0.16307680308818817, + -0.039542656391859055, + 0.11975181102752686, + -0.07524090260267258, + 0.12576846778392792, + -0.03437037765979767, + -0.16086065769195557, + -0.03810508921742439, + 0.0649118721485138, + -0.03300544247031212, + -0.04286783188581467, + -0.022135574370622635, + -0.011394473724067211, + 0.023545145988464355, + 0.010001571848988533, + 0.013483229093253613, + 0.042971931397914886, + 0.024895548820495605, + 0.0677359402179718, + -0.0016721499850973487, + 0.05110224336385727, + 0.01848067156970501, + -0.016396086663007736, + -0.028569933027029037, + 0.10196627676486969, + -0.05123291537165642, + 0.022947272285819054, + 0.07415245473384857, + -0.009256826713681221, + 0.0021574050188064575, + -0.05563361570239067, + -0.015556368045508862, + -0.015096426010131836, + -0.042186420410871506, + 0.09021161496639252, + 0.036202408373355865, + -0.005907810293138027, + 0.027726221829652786, + 0.056590788066387177, + -0.0009712614119052887, + -0.03755756467580795, + -0.10771737992763519, + 0.13905805349349976, + 0.059124529361724854, + -0.004364447668194771, + -0.08264568448066711, + -0.051852934062480927, + 0.1013861745595932, + -0.03576742112636566, + -0.09168543666601181, + -0.03592255711555481, + 0.07751351594924927, + 0.14390945434570312, + -0.03813654184341431, + -0.039009541273117065, + 0.012218079529702663, + 0.13961222767829895, + 0.08239584416151047, + 0.08826127648353577, + 0.06760676205158234, + 0.1323280781507492, + -0.04040486738085747, + 0.007209773641079664, + 0.07157877087593079, + 0.06490863859653473, + 0.05382317304611206, + -0.010858990252017975, + 0.018394378945231438, + 0.0025679762475192547, + -0.003073283936828375, + 0.009680027142167091, + -0.037728674709796906, + -0.027807047590613365, + -0.031216097995638847, + 0.024840623140335083, + -0.008932779543101788, + 0.03718067705631256, + -0.011907346546649933, + 0.07937295734882355, + 0.0574285164475441, + -0.02353842183947563, + 0.07348953187465668, + 0.058348722755908966, + 0.005962574388831854, + 0.0689300000667572, + -0.10440932214260101, + -0.06982174515724182, + 0.03642618656158447, + -0.015895333141088486, + 0.038859959691762924, + 0.0743815153837204, + 0.0405430793762207, + 0.004581686109304428, + 0.1142737865447998, + 0.06260409206151962, + -0.007013286463916302, + 0.028690434992313385, + -0.09515450894832611, + 0.14377647638320923, + 0.06991235911846161, + -0.039168957620859146, + 0.033977773040533066, + -0.03357969969511032, + 0.05543025955557823, + 0.06131080910563469, + -0.12389364838600159, + -0.08814802020788193, + 0.03295309096574783, + 0.02797437272965908, + -0.028329655528068542, + 0.10221065580844879, + -0.013809229247272015, + 0.0428425595164299, + 0.08823131024837494, + -0.06793893873691559, + -0.05846641585230827, + -0.011932412162423134, + 0.037948958575725555, + -0.0711013600230217, + 0.06252309679985046, + 0.056145377457141876, + 0.008678766898810863, + 0.004064670763909817, + 0.0944502055644989, + 0.014080911874771118, + -0.009564951993525028, + 0.02134818211197853, + -0.03823674097657204, + 0.029147882014513016, + -0.004485559184104204, + 0.004731260240077972, + 0.01844809763133526, + 0.04029298946261406, + 0.0517243817448616, + 0.0017030885210260749, + 0.00338127464056015, + -0.11428224295377731, + 0.007480166386812925, + 0.05130084604024887, + 0.08715660870075226, + -0.010842518880963326, + -0.03009987436234951, + -0.032463982701301575, + -0.042041465640068054, + -0.013163061812520027, + -0.00044929361320100725, + 0.06675392389297485, + -0.029656700789928436, + 0.005936486646533012, + 0.11347314715385437, + 0.014091256074607372, + 0.00526619516313076, + -0.05493510887026787, + -0.009215408936142921, + 0.012615012004971504, + 0.06002745032310486, + -0.06845264136791229, + -0.08309277147054672, + 0.0008251086692325771, + 0.036288537085056305, + -0.023976562544703484, + 0.07259766757488251, + 0.03733580559492111, + 0.016606401652097702, + 0.022160761058330536, + -0.055476006120443344, + 0.022810615599155426, + -0.09436427056789398, + -0.06395740807056427, + -0.023368408903479576, + -0.0029617114923894405, + -0.02930443361401558, + 0.0593186616897583, + 0.03916984423995018, + 0.07658252120018005, + 0.0026528197340667248, + -0.0781402736902237, + -0.08464892953634262, + 0.058636393398046494, + 0.07157339155673981, + -0.011574629694223404, + 0.04964999482035637, + 0.06817468255758286, + -0.02451152727007866, + 0.04405029118061066, + 0.0652138888835907, + 0.09252564609050751, + -0.04052755609154701, + 0.014083432033658028, + -0.06899388134479523, + 0.06478458642959595, + 0.07376208156347275, + -0.11341925710439682, + -0.0793699398636818, + -0.01703120581805706, + -0.03897799551486969, + 0.010684812441468239, + -0.026505019515752792, + 0.023590460419654846, + 0.03499063476920128, + -0.009903956204652786, + -0.10002534091472626, + -0.09431063383817673, + 0.07781700789928436, + -0.0976959764957428, + 0.018235698342323303, + -0.07326072454452515, + 0.04077434539794922, + 0.09585803002119064, + 0.025075923651456833, + -0.04243334382772446, + -0.019204750657081604, + 0.04406733810901642, + -0.01527250837534666, + -0.010890774428844452, + 0.05198314040899277, + 0.03822604566812515, + -0.10163716971874237, + 0.010504502803087234, + -0.0579083077609539, + 0.07480528950691223, + -0.037262991070747375, + 0.16336590051651, + 0.010644020512700081, + -0.05460762977600098, + -0.08188417553901672, + 0.005301930010318756, + -0.01990138739347458, + 0.05716840922832489, + 0.021901428699493408, + 0.062422942370176315, + 0.019573554396629333, + -0.04018236696720123, + 0.14014992117881775, + 0.04381345957517624, + -0.06128812953829765, + -0.07661556452512741, + -0.04957921802997589, + -0.045815713703632355, + 0.03981441259384155, + 0.03583936765789986, + -0.09163767099380493, + -0.027579031884670258, + 0.01335985865443945, + -0.035417258739471436, + 0.07811953872442245, + 0.1480201929807663, + 0.07594288885593414, + -0.11549913138151169 + ] + }, + "p244_122.wav": { + "name": "p244", + "embedding": [ + 0.03743371739983559, + 0.10720232874155045, + -0.018781617283821106, + 0.04856396093964577, + -0.07787799090147018, + 0.09338998794555664, + -0.08635412901639938, + 0.132926344871521, + -0.09560003876686096, + 0.11818298697471619, + -0.08316017687320709, + 0.11397704482078552, + -0.06699466705322266, + -0.13302141427993774, + -0.03900410234928131, + 0.07091595232486725, + -0.03225522115826607, + -0.011559952981770039, + -0.03053993359208107, + 0.0019339919090270996, + 0.024532150477170944, + 0.004498928319662809, + 0.03958319500088692, + 0.006275035906583071, + 0.04688907414674759, + 0.058034494519233704, + 0.001993780955672264, + 0.046386830508708954, + 0.02587943710386753, + -0.05183255672454834, + -0.04817590117454529, + 0.11246327310800552, + -0.0480869896709919, + 0.004008980467915535, + 0.060408905148506165, + 0.009594632312655449, + -0.008777286857366562, + -0.06991462409496307, + -0.005293631460517645, + -0.02828967571258545, + -0.04537370055913925, + 0.06305830925703049, + 0.027596797794103622, + -0.012072106823325157, + 0.02364671789109707, + -0.00946541503071785, + -0.028811603784561157, + -0.027421480044722557, + -0.11157301068305969, + 0.13974159955978394, + 0.02989085391163826, + 0.009215213358402252, + -0.08537621796131134, + -0.08293554186820984, + 0.12916776537895203, + -0.0034411009401082993, + -0.11670493334531784, + -0.04251917451620102, + 0.07298141717910767, + 0.17307496070861816, + -0.007816367782652378, + -0.0010156766511499882, + -0.0017665550112724304, + 0.10236340761184692, + 0.042613349854946136, + 0.1062050610780716, + 0.04865824058651924, + 0.0957416445016861, + 0.03394673764705658, + 0.052192337810993195, + 0.06361228972673416, + 0.050172463059425354, + 0.0018313052132725716, + -0.014574884437024593, + 0.012013012543320656, + -0.018153436481952667, + -0.02861083298921585, + 0.04035335034132004, + -0.020496390759944916, + -0.04161035269498825, + -0.03830898553133011, + 0.010159906931221485, + 0.013967495411634445, + -0.00866398774087429, + -0.023196931928396225, + 0.07164852321147919, + 0.0011555850505828857, + -0.003916345536708832, + 0.07917851209640503, + 0.031976956874132156, + -0.039139606058597565, + 0.05405601114034653, + -0.049285341054201126, + -0.09560078382492065, + -0.010390949435532093, + 0.006245959550142288, + 0.028321517631411552, + 0.08238692581653595, + 0.022060247138142586, + -0.012857005931437016, + 0.10433919727802277, + 0.062318310141563416, + 0.043363239616155624, + 0.02795252576470375, + -0.09443861246109009, + 0.11549369990825653, + 0.06495235860347748, + 0.004485428333282471, + 0.051787763833999634, + -0.013774391263723373, + 0.08958699554204941, + 0.0867702066898346, + -0.14117901027202606, + -0.0677584707736969, + 0.010466031730175018, + -0.006722311954945326, + -0.0036849668249487877, + 0.0950571745634079, + -0.008553601801395416, + 0.005356732755899429, + 0.10411150008440018, + -0.09842915832996368, + -0.06597709655761719, + -0.014846889302134514, + 0.04449513554573059, + -0.04619382321834564, + 0.03834206238389015, + 0.05252353847026825, + -0.03631815314292908, + 0.006494474597275257, + 0.06149832159280777, + -0.005749039351940155, + 0.0011753792641684413, + 0.07839253544807434, + -0.07852672040462494, + 0.033325277268886566, + -0.0436285100877285, + 0.006331406533718109, + 0.08405425399541855, + 0.06468705832958221, + 0.062078624963760376, + -0.022429736331105232, + -0.0006883870810270309, + -0.07655367255210876, + -0.0037659863010048866, + 0.06873098760843277, + 0.05087975040078163, + -0.016011929139494896, + -0.027592938393354416, + -0.0344330370426178, + -0.07718139886856079, + 0.03035605698823929, + 0.00870976597070694, + 0.12011028826236725, + -0.025040265172719955, + 0.005098174326121807, + 0.08854014426469803, + 0.02952500618994236, + -0.016712194308638573, + -0.08891536295413971, + -0.03628239780664444, + 0.031522754579782486, + 0.04699038714170456, + -0.07000486552715302, + -0.05858318507671356, + 0.01704219914972782, + 0.02237371914088726, + -0.04608524218201637, + 0.028855513781309128, + 0.03540954738855362, + 0.018313037231564522, + 0.047766849398612976, + -0.045039497315883636, + 0.03940672427415848, + -0.09270790219306946, + -0.03135111927986145, + -0.007384052034467459, + -0.0429653562605381, + -0.03355783969163895, + 0.07964133471250534, + 0.04177909716963768, + 0.028094423934817314, + 0.03671655058860779, + -0.07740931212902069, + -0.04950239881873131, + 0.07339277863502502, + 0.040769919753074646, + 0.01997051015496254, + 0.0645984336733818, + 0.05923932045698166, + -0.03651990741491318, + 0.049070119857788086, + 0.07296834886074066, + 0.08073194324970245, + -0.02513333410024643, + -0.022510387003421783, + -0.07116544246673584, + 0.05991154536604881, + 0.08492305874824524, + -0.12777595221996307, + -0.09180017560720444, + -0.054328687489032745, + -0.04336068034172058, + 0.0594538152217865, + -0.03820797801017761, + -0.002230334095656872, + 0.014107787981629372, + -0.039769500494003296, + -0.10806524753570557, + -0.10429500043392181, + 0.11634322255849838, + -0.0626748725771904, + -0.019094964489340782, + -0.05899760127067566, + 0.029658494517207146, + 0.06473022699356079, + 0.03282465413212776, + -0.016576441004872322, + 0.030899109318852425, + 0.05824644863605499, + -0.07691401988267899, + -0.012888756580650806, + 0.06102752685546875, + -0.012921885587275028, + -0.06557910144329071, + 0.026414114981889725, + -0.07013809680938721, + 0.09113122522830963, + -0.04826099053025246, + 0.2017737329006195, + -0.03359649330377579, + -0.04099184274673462, + -0.07443004846572876, + 0.05125390738248825, + -0.04524015635251999, + 0.030260004103183746, + 0.044194724410772324, + 0.07291244715452194, + 0.011812632903456688, + -0.04344344884157181, + 0.12826985120773315, + 0.003006895072758198, + -0.03864568844437599, + -0.03855869174003601, + -0.032189831137657166, + -0.06864183396100998, + 0.006718698423355818, + -0.007533951196819544, + -0.09214520454406738, + 0.0040212357416749, + 0.011203983798623085, + -0.00021398533135652542, + 0.0785241574048996, + 0.1321500688791275, + 0.07848693430423737, + -0.07616489380598068 + ] + }, + "p244_170.wav": { + "name": "p244", + "embedding": [ + 0.05748377740383148, + 0.0796695351600647, + -0.008959709666669369, + 0.017229732125997543, + -0.03572970628738403, + 0.042074054479599, + -0.14395171403884888, + 0.12015019357204437, + -0.023967813700437546, + 0.12188416719436646, + -0.0479796901345253, + 0.10505375266075134, + -0.008924026042222977, + -0.1674666851758957, + -0.06612429022789001, + 0.045074429363012314, + -0.0664149671792984, + -0.020073339343070984, + -0.0651918277144432, + -0.009307630360126495, + 0.0353832021355629, + 0.053181421011686325, + 0.05575935170054436, + -0.02728326991200447, + 0.03762940689921379, + 0.046655409038066864, + 0.024258267134428024, + 0.0758737251162529, + 0.04325859248638153, + -0.0859338566660881, + -0.010597070679068565, + 0.08684079349040985, + -0.03945229575037956, + 0.002797730965539813, + 0.04961937293410301, + -0.0023637539707124233, + 0.019432269036769867, + -0.04971079155802727, + -0.032629162073135376, + 0.038272857666015625, + -0.03687658533453941, + 0.08606031537055969, + 0.014470947906374931, + 0.00042985318577848375, + 0.05761588364839554, + 0.022943397983908653, + -0.02185143157839775, + -0.06937938928604126, + -0.10850593447685242, + 0.16270595788955688, + 0.048342641443014145, + 0.020467355847358704, + -0.08551698923110962, + -0.07008664309978485, + 0.08488969504833221, + -0.060921430587768555, + -0.10177715867757797, + -0.04281995818018913, + 0.04743306338787079, + 0.15300270915031433, + -0.034507136791944504, + -0.021585840731859207, + 0.04405404254794121, + 0.09956991672515869, + 0.06956490129232407, + 0.0496709868311882, + 0.09219267219305038, + 0.07645878195762634, + 0.007524482905864716, + 0.029480105265975, + 0.03507820516824722, + 0.07300250977277756, + 0.03396718576550484, + 0.016427617520093918, + 0.025354888290166855, + 0.007970473729074001, + -0.025605706498026848, + -0.01369947474449873, + -0.021254710853099823, + 0.017700668424367905, + 0.0009108397061936557, + 0.0339067243039608, + 0.0005838572978973389, + 0.02060249075293541, + -0.036197926849126816, + 0.07709024846553802, + -0.027796588838100433, + -0.008777523413300514, + 0.05383291095495224, + 0.02646770142018795, + 0.01451475452631712, + 0.04008987918496132, + -0.053662534803152084, + -0.10190849006175995, + -0.016087394207715988, + 0.003562054131180048, + 0.009038129821419716, + 0.015864994376897812, + 0.01680494286119938, + -0.03324166685342789, + 0.11492624878883362, + 0.05243725702166557, + -0.02014010027050972, + 0.03435374051332474, + -0.0850381851196289, + 0.0909820944070816, + 0.07062637805938721, + -0.006881219334900379, + 0.03946191817522049, + -0.04892871901392937, + 0.04284268617630005, + 0.06308159232139587, + -0.11988546699285507, + -0.08542710542678833, + 0.0697358250617981, + 0.014273954555392265, + 0.017158182337880135, + 0.10223032534122467, + 0.004407420754432678, + 0.02800765447318554, + 0.09694602340459824, + -0.06870314478874207, + -0.030770590528845787, + -0.004913199692964554, + 0.058905959129333496, + -0.05724268779158592, + 0.04725160822272301, + 0.03419005870819092, + -0.006721088197082281, + -0.015799738466739655, + 0.09465306997299194, + -0.004607826471328735, + 0.010878166183829308, + -0.00011261676991125569, + -0.03291517123579979, + 0.030339231714606285, + -0.04807319492101669, + -0.022467290982604027, + 0.08329416811466217, + 0.07380926609039307, + 0.04109102487564087, + 0.01992044597864151, + -0.07709814608097076, + -0.1221996396780014, + -0.004207264166325331, + 0.019444618374109268, + 0.07642588019371033, + -0.012831549160182476, + -0.014584934338927269, + -0.06304802000522614, + -0.03221304342150688, + 0.024402514100074768, + 0.00975395180284977, + 0.08332888782024384, + -0.014043513685464859, + -0.008711714297533035, + 0.0906527191400528, + -0.03770761936903, + 0.010202913545072079, + -0.009045541286468506, + -0.007258260622620583, + 0.007969088852405548, + 0.03107650950551033, + -0.03641550987958908, + -0.06938638538122177, + 0.012345305643975735, + 0.02711482346057892, + -0.006814546883106232, + 0.04785529524087906, + 0.04359513148665428, + 0.006706336513161659, + 0.03680199012160301, + -0.041372548788785934, + 0.0026394943706691265, + -0.09423838555812836, + -0.053378552198410034, + 0.0013387305662035942, + -0.014718569815158844, + -0.05621272325515747, + 0.07806216925382614, + 0.02076493762433529, + 0.04274290055036545, + -0.01845531538128853, + -0.09669941663742065, + -0.06985851377248764, + 0.0628296285867691, + 0.06807747483253479, + 0.02067222259938717, + 0.0357564240694046, + 0.04432541877031326, + -0.009395377710461617, + 0.07972109317779541, + 0.0748312771320343, + 0.06763284653425217, + -0.004407945554703474, + -0.022697430104017258, + -0.05931934714317322, + 0.086830735206604, + 0.04781627655029297, + -0.07891084253787994, + -0.06726589053869247, + -0.004925444256514311, + -0.08367767184972763, + 0.023849986493587494, + -0.010991059243679047, + 0.03048563562333584, + 0.06296008825302124, + -0.004094384144991636, + -0.10446479171514511, + -0.08738195896148682, + 0.07364118099212646, + -0.09402193874120712, + -0.027812443673610687, + -0.023291196674108505, + 0.015333132818341255, + 0.0980805978178978, + 0.021116070449352264, + 0.01902790740132332, + -0.016613459214568138, + 0.04200465604662895, + -0.07272464036941528, + -0.029187094420194626, + 0.04031291604042053, + 0.0022139656357467175, + -0.07990922778844833, + 0.03259692341089249, + -0.07306845486164093, + 0.04753194749355316, + -0.044937558472156525, + 0.12213563919067383, + -0.013774930499494076, + -0.0411345511674881, + -0.08523625135421753, + 0.02425447478890419, + -0.0713401734828949, + 0.07204298675060272, + 0.022641194984316826, + 0.05019098520278931, + 0.05937380716204643, + -0.06890332698822021, + 0.12420996278524399, + 0.052706968039274216, + -0.05510779470205307, + -0.09198163449764252, + -0.07292493432760239, + -0.03229665011167526, + 0.022051174193620682, + 0.013844112865626812, + -0.05184826999902725, + 0.00027040144777856767, + 0.009622372686862946, + -0.031015580520033836, + 0.04380853474140167, + 0.11941279470920563, + 0.033248137682676315, + -0.11495515704154968 + ] + }, + "p244_069.wav": { + "name": "p244", + "embedding": [ + 0.042389072477817535, + 0.060909055173397064, + -0.03267619386315346, + 0.002641531638801098, + -0.01857568323612213, + 0.01183414924889803, + -0.1024591401219368, + 0.11261001229286194, + -0.03575439378619194, + 0.09899791330099106, + -0.06624089181423187, + 0.12662726640701294, + -0.042341820895671844, + -0.16291534900665283, + -0.00860240776091814, + 0.029767565429210663, + 0.04389046132564545, + 0.03515121340751648, + 0.021808674558997154, + 0.0020727962255477905, + 0.08016923069953918, + 0.020399831235408783, + 0.02387755550444126, + -0.061178356409072876, + -0.0027651293203234673, + 0.05555344745516777, + 0.015508322976529598, + 0.04360657185316086, + -0.0023571676574647427, + -0.003749505616724491, + 0.021052023395895958, + 0.09535599499940872, + -0.008906003087759018, + 0.01894993893802166, + 0.05497564375400543, + 0.014511961489915848, + -0.03168598189949989, + -0.05401148647069931, + -0.0075623453594744205, + -0.010130887851119041, + -0.03362499549984932, + 0.04273761436343193, + -0.00011577457189559937, + -0.0386732742190361, + 0.08641842007637024, + -0.021072236821055412, + -0.025557029992341995, + -0.022640634328126907, + -0.0796433687210083, + 0.09799011796712875, + 0.03548601269721985, + 0.07013832777738571, + -0.10872337222099304, + -0.04984432831406593, + 0.08539055287837982, + 0.0159637201577425, + -0.04192604497075081, + -0.027110770344734192, + 0.03984592482447624, + 0.1743972897529602, + 0.018841281533241272, + -0.016089502722024918, + 0.023046329617500305, + 0.01481558382511139, + 0.007711809128522873, + 0.08097852766513824, + 0.11568149924278259, + 0.03625311329960823, + 0.04287005960941315, + 0.04006768763065338, + -0.013683229684829712, + 0.10724496841430664, + -0.021905681118369102, + -0.052615076303482056, + -0.0004883408546447754, + 0.024844884872436523, + -0.07848293334245682, + 0.010138795711100101, + 0.004058877006173134, + -0.01877998560667038, + -0.012701638042926788, + -0.0051839714869856834, + 0.036180153489112854, + -0.004358217585831881, + -0.04561818391084671, + 0.0024591945111751556, + 0.027727672830224037, + -0.033819593489170074, + 0.03178202360868454, + 0.013203229755163193, + -0.022299204021692276, + 0.014154805801808834, + -0.07717344164848328, + -0.14431096613407135, + -0.02045532502233982, + 0.01677081175148487, + -0.024711361154913902, + 0.07528313994407654, + 0.016613762825727463, + -0.008961262181401253, + 0.0721164345741272, + 0.037327345460653305, + -0.004819595254957676, + 0.02987496741116047, + -0.05986471474170685, + 0.04961073771119118, + 0.08666570484638214, + -0.014121350832283497, + 0.0759602040052414, + -0.06417098641395569, + 0.017668139189481735, + 0.04760894179344177, + -0.09103067219257355, + -0.044606439769268036, + 0.02660381607711315, + 0.005931918043643236, + 0.06229817494750023, + 0.1233488991856575, + 0.03419329226016998, + 0.0265579205006361, + 0.06784731149673462, + -0.1113286018371582, + -0.10652370750904083, + -0.06957471370697021, + 0.06035409867763519, + -0.011010304093360901, + 0.08161742240190506, + 0.04019465669989586, + 0.012358935549855232, + 0.0049023712053895, + 0.018766041845083237, + -0.000120493583381176, + 0.047260113060474396, + 0.008240207098424435, + -0.033083610236644745, + 0.024753378704190254, + -0.08594093471765518, + -0.010837981477379799, + 0.05789615586400032, + 0.035636741667985916, + 0.044445864856243134, + 0.0333406999707222, + -0.027318958193063736, + -0.07351724058389664, + -0.023325413465499878, + 0.09436725080013275, + 0.0356861837208271, + -0.035730328410863876, + -0.043299898505210876, + -0.048382289707660675, + -0.07916504889726639, + -0.0031764497980475426, + -0.023856284096837044, + 0.0894659161567688, + 0.01325690932571888, + 0.0575961172580719, + 0.08197653293609619, + -0.021808994933962822, + 0.002389457542449236, + -0.03929046168923378, + -0.01464114896953106, + -0.011560480110347271, + 0.02792140655219555, + -0.07199744135141373, + -0.07748468220233917, + -0.062362540513277054, + 0.003370748832821846, + -0.04592014104127884, + -0.003650350496172905, + 0.02482995018362999, + 0.015676122158765793, + 0.02550121396780014, + -0.08696705102920532, + 0.0027029630728065968, + -0.13820025324821472, + -0.039592500776052475, + -0.022139739245176315, + 0.021407321095466614, + -0.005270976573228836, + 0.07514826208353043, + 0.02643505483865738, + 0.02515743114054203, + 0.0066955555230379105, + -0.05152153596282005, + -0.07023081183433533, + 0.04150098189711571, + 0.05895484983921051, + 0.006566681433469057, + 0.05536797642707825, + -0.003086986020207405, + -0.04773534834384918, + 0.04597030580043793, + 0.0845419317483902, + 0.059260379523038864, + 0.006793409585952759, + 0.005690903402864933, + -0.06108565628528595, + 0.08743776381015778, + 0.13043445348739624, + -0.058101505041122437, + -0.10552392899990082, + -0.044606540352106094, + -0.08202724158763885, + 0.02622777409851551, + -0.011979629285633564, + 0.008905715309083462, + 0.029565244913101196, + -0.03393614664673805, + -0.11569207906723022, + -0.06938490271568298, + 0.031257372349500656, + 0.01972610130906105, + -0.018224963918328285, + -0.06464698165655136, + 0.02669561468064785, + 0.07991744577884674, + -0.015330341644585133, + -0.009182688780128956, + -0.016383636742830276, + 0.012035254389047623, + -0.0684083104133606, + -0.024530213326215744, + 0.013870317488908768, + 0.012000054121017456, + -0.06282660365104675, + 0.01696491241455078, + -0.019633010029792786, + 0.07732855528593063, + -0.056663841009140015, + 0.09623023122549057, + -0.022688264027237892, + -0.06618054956197739, + -0.07370336353778839, + 0.04491158202290535, + 0.06285522133111954, + 0.00042776018381118774, + -0.0054189544171094894, + 0.0467192716896534, + -0.011271262541413307, + -0.10400275886058807, + 0.06921228766441345, + -0.008432026021182537, + 0.015983790159225464, + -0.06062867119908333, + -0.043254513293504715, + -0.019985631108283997, + 0.031779009848833084, + -0.05549731105566025, + -0.025366276502609253, + 0.002890250412747264, + 0.006617321632802486, + 0.021016422659158707, + 0.013747095130383968, + 0.09621340036392212, + 0.0036958791315555573, + -0.10211804509162903 + ] + }, + "p244_347.wav": { + "name": "p244", + "embedding": [ + 0.0412711426615715, + 0.05669066682457924, + 0.0026466804556548595, + -0.013535615056753159, + -0.012290127575397491, + 0.05207832157611847, + -0.11556962877511978, + 0.04488130658864975, + -0.03145916759967804, + 0.13418292999267578, + -0.05039643496274948, + 0.09852319955825806, + -0.008905481547117233, + -0.08545409142971039, + -0.029720518738031387, + 0.015832580626010895, + -0.05277622863650322, + -0.01431513112038374, + -0.008151955902576447, + -0.07682820409536362, + 0.02734529599547386, + 0.018164165318012238, + 0.04664066433906555, + -0.030748898163437843, + -0.01775631681084633, + 0.0599295012652874, + 0.008151862770318985, + 0.018725769594311714, + 0.019111307337880135, + -0.05802386254072189, + 0.016101142391562462, + 0.07306662946939468, + -0.03258818760514259, + -0.008821018040180206, + 0.036667704582214355, + 0.02222164161503315, + -0.001985148061066866, + -0.01419311948120594, + 0.009656942449510098, + 0.045648518949747086, + -0.06915364414453506, + 0.09444315731525421, + 0.017069676890969276, + -0.007167252246290445, + 0.03239572048187256, + -0.03653346747159958, + -0.04547145962715149, + 0.06134096533060074, + -0.037075694650411606, + 0.09916102886199951, + 0.0790301263332367, + -0.0058848136104643345, + -0.04327109456062317, + -0.003551008179783821, + 0.07426905632019043, + -0.013668294996023178, + -0.11215940862894058, + -0.007052119821310043, + -0.007789473980665207, + 0.08425324410200119, + -0.02867584489285946, + -0.05079594999551773, + 0.011486916802823544, + 0.08159174770116806, + 0.03348308429121971, + 0.04700622335076332, + 0.0868123322725296, + 0.07694805413484573, + -0.013397812843322754, + -0.009495899081230164, + 0.05626486986875534, + 0.07804311811923981, + 0.05993897467851639, + -0.01853775605559349, + 0.05605451017618179, + -0.022127756848931313, + -0.0038471929728984833, + -0.022197816520929337, + -0.016036830842494965, + -0.03030901774764061, + -0.055075276643037796, + -0.030812369659543037, + 0.004299653694033623, + 0.06146626174449921, + -0.02501361258327961, + -0.01709631085395813, + 0.029184209182858467, + -0.03381877392530441, + 0.023456662893295288, + 0.06639024615287781, + 0.015539669431746006, + 0.023865021765232086, + -0.04032358527183533, + -0.03108346462249756, + -0.009654205292463303, + -0.026263751089572906, + 0.0561036542057991, + 0.05736720934510231, + 0.020820975303649902, + 0.030338812619447708, + 0.05575665086507797, + 0.05765734612941742, + -0.018747318536043167, + -0.009165119379758835, + -0.08851375430822372, + 0.08497588336467743, + 0.09434656798839569, + -0.0587095245718956, + 0.002375600393861532, + 0.02574363723397255, + 0.05182548239827156, + 0.010134536772966385, + -0.08147353678941727, + -0.03569801151752472, + 0.014600043185055256, + 0.07553279399871826, + 0.037950627505779266, + 0.09037680923938751, + 0.0008282165508717299, + 0.021755561232566833, + 0.0763978660106659, + 0.03208310902118683, + -0.033214911818504333, + -0.054609719663858414, + 0.01931104250252247, + -0.08515143394470215, + 0.06209424138069153, + 0.014453418552875519, + 0.05049937963485718, + -0.013458872213959694, + 0.10869995504617691, + 0.0037034200504422188, + -0.027995191514492035, + -0.036268141120672226, + 0.00253349170088768, + 0.04465457797050476, + 0.0075359102338552475, + 0.05478878319263458, + 0.06163358315825462, + 0.011904487386345863, + 0.09669404476881027, + 0.04883698746562004, + 0.008974113501608372, + -0.08142051100730896, + 0.03174172341823578, + 0.0340711884200573, + 0.016802538186311722, + -0.03692558780312538, + -0.04192771017551422, + 0.00202106311917305, + -0.043695177882909775, + 0.02224118635058403, + -0.04560896009206772, + 0.0677952691912651, + 0.0011676126159727573, + -0.032591842114925385, + 0.09846597909927368, + -0.019296349957585335, + -0.01346222497522831, + 0.0036270413547754288, + -0.0007555702468380332, + -0.025264816358685493, + 0.054064296185970306, + -0.14167112112045288, + -0.055227093398571014, + -0.006791448220610619, + 0.037377677857875824, + 0.04774264618754387, + 0.01624024286866188, + 0.10128265619277954, + -0.058761972934007645, + 0.05141361057758331, + -0.0005744025111198425, + -0.006706186104565859, + -0.07836834341287613, + -0.0615382045507431, + -0.0359075590968132, + -0.0996285155415535, + -0.017887085676193237, + 0.03606034442782402, + -0.03364332765340805, + 0.041625794023275375, + -0.007175257429480553, + -0.08883555233478546, + -0.07037220895290375, + 0.03378533199429512, + 0.04039790853857994, + -0.026106970384716988, + 0.022121211513876915, + 0.11218108236789703, + 0.007509727030992508, + 0.02783248946070671, + 0.021564345806837082, + 0.0824040099978447, + -0.08386042714118958, + 0.014419618993997574, + -0.05962219089269638, + 0.031088335439562798, + 0.07668279111385345, + -0.03974822163581848, + -0.065896175801754, + -0.0494840107858181, + -0.025581711903214455, + 0.04325051233172417, + -0.03431348875164986, + -0.020339643582701683, + 0.015450803562998772, + -0.023189883679151535, + -0.04450700059533119, + -0.0699068158864975, + 0.07984033972024918, + -0.061840031296014786, + -0.0043916888535022736, + -0.03970395028591156, + -0.005336089059710503, + -0.02459822967648506, + 0.06447196751832962, + -0.06031797453761101, + 0.09303230792284012, + 0.015215856023132801, + -0.04186929762363434, + 0.002140691503882408, + 0.02776448428630829, + 0.015336650423705578, + -0.03899999335408211, + -0.06077704578638077, + -0.07876808196306229, + 0.05405525118112564, + -0.05180056020617485, + 0.04063853621482849, + -0.006929229944944382, + -0.035339005291461945, + -0.008251747116446495, + -0.022141527384519577, + -0.03096598945558071, + 0.02070022001862526, + 0.10553033649921417, + 0.08118073642253876, + -0.021488819271326065, + -0.02310914359986782, + 0.07726868242025375, + 0.04008672013878822, + 0.01673300936818123, + -0.05181705206632614, + 0.03634129464626312, + -0.029078567400574684, + 0.014757100492715836, + 0.05690399929881096, + -0.07162076234817505, + 0.05197465792298317, + -0.0025249968748539686, + -0.020353052765130997, + 0.014066814444959164, + 0.04892072081565857, + 0.06346987187862396, + -0.06699855625629425 + ] + }, + "p244_157.wav": { + "name": "p244", + "embedding": [ + 0.06274768710136414, + 0.03825800120830536, + -0.0033065180759876966, + -0.006682202219963074, + -0.01771368458867073, + 0.055959559977054596, + -0.13801440596580505, + 0.12309806793928146, + -0.034329187124967575, + 0.08862051367759705, + -0.06109682843089104, + 0.08656501770019531, + 0.007827946916222572, + -0.15208062529563904, + -0.03614667430520058, + 0.03548501431941986, + -0.024202939122915268, + -0.008609562180936337, + -0.054639190435409546, + -0.012602399103343487, + 0.02119191363453865, + 0.04405825585126877, + 0.0028640534728765488, + -0.023142129182815552, + 0.017828378826379776, + 0.05189964175224304, + 0.004527223762124777, + 0.023284612223505974, + -0.0057751489803195, + -0.01309884712100029, + 0.007959551177918911, + 0.08831426501274109, + -0.03701397776603699, + -0.010631110519170761, + 0.05668676644563675, + -0.010418376885354519, + 0.001741559011861682, + -0.07652382552623749, + -0.02150186523795128, + 0.02483842894434929, + -0.058899007737636566, + 0.07595877349376678, + 0.07162299752235413, + 0.015666477382183075, + 0.028073750436306, + 0.025942470878362656, + 0.014092875644564629, + -0.06324666738510132, + -0.10040765255689621, + 0.16741704940795898, + 0.027573097497224808, + 0.01804249919950962, + -0.10138100385665894, + -0.02015196904540062, + 0.07756535708904266, + -0.005804148968309164, + -0.06629043072462082, + -0.050849221646785736, + 0.055925674736499786, + 0.13648945093154907, + -0.006125593092292547, + -0.03875351697206497, + 0.02991393767297268, + 0.0978822112083435, + 0.0293409526348114, + 0.04434789717197418, + 0.11220666766166687, + 0.10735618323087692, + -0.003646738361567259, + 0.02512589655816555, + 0.044776543974876404, + 0.03431624174118042, + 0.030787356197834015, + -0.02672792598605156, + 0.036868393421173096, + -0.015505118295550346, + -0.026290182024240494, + -0.010984379798173904, + -0.03000492975115776, + -0.022326432168483734, + 0.018413206562399864, + 0.026656724512577057, + 0.021801531314849854, + 0.06617453694343567, + -0.05302262306213379, + 0.04811028763651848, + 0.02560536563396454, + -0.004730940796434879, + 0.06375011801719666, + 0.052400581538677216, + 0.02656303346157074, + 0.017524149268865585, + -0.06161477789282799, + -0.08669359982013702, + 0.018443187698721886, + 0.0006426457548514009, + 0.013397922739386559, + 0.03400969132781029, + 0.03068729117512703, + -0.021045871078968048, + 0.10060818493366241, + 0.0020663875620812178, + -0.01124049723148346, + 0.00016079223132692277, + -0.07695870101451874, + 0.10415235161781311, + 0.08591245114803314, + -0.013983006589114666, + 0.03742546588182449, + -0.06544427573680878, + 0.01936090551316738, + 0.04765874147415161, + -0.10838233679533005, + -0.058138199150562286, + 0.06782806664705276, + 0.028023432940244675, + 0.028606921434402466, + 0.14478760957717896, + 0.01191443856805563, + 0.025621986016631126, + 0.06474218517541885, + -0.08207213878631592, + -0.0389985665678978, + 0.0018848404288291931, + 0.03159947693347931, + -0.03883250057697296, + 0.03337228298187256, + 0.038793690502643585, + 0.010944174602627754, + -0.022375576198101044, + 0.07655879855155945, + 0.0033097839914262295, + 0.009736997075378895, + -0.04954742640256882, + 0.032036442309617996, + 0.07004294544458389, + 0.0069518922828137875, + -0.018580995500087738, + 0.01105495821684599, + 0.05577467009425163, + 0.024866636842489243, + 0.025071561336517334, + -0.059047795832157135, + -0.11163818836212158, + -0.019772712141275406, + 0.031170329079031944, + 0.07466323673725128, + -0.03351680934429169, + -0.023961633443832397, + -0.060349948704242706, + -0.021305903792381287, + -0.022203072905540466, + -0.015400081872940063, + 0.06040715426206589, + 0.029994137585163116, + -0.017065487802028656, + 0.08778540790081024, + -0.01113156508654356, + 0.03423745185136795, + -0.01649390161037445, + -0.0018926325719803572, + 0.013770075514912605, + 0.034245144575834274, + -0.026725511997938156, + -0.06654241681098938, + -0.0058194417506456375, + 0.001194218872115016, + -0.010738056153059006, + 0.012048224918544292, + 0.015798911452293396, + 0.0018528278451412916, + 0.004602747969329357, + -0.10483839362859726, + 0.0255399402230978, + -0.1051347479224205, + -0.02282046340405941, + 0.03679654747247696, + -0.013239650055766106, + -0.027232229709625244, + 0.09114474058151245, + 0.020934097468852997, + 0.04278257116675377, + -0.02396356873214245, + -0.07292294502258301, + -0.02666199766099453, + 0.04258349537849426, + 0.07128126919269562, + -0.035406723618507385, + 0.005308506544679403, + 0.014439131133258343, + 0.011806134134531021, + 0.03380893915891647, + 0.06416885554790497, + 0.05430710315704346, + -0.03258613124489784, + -0.030579276382923126, + -0.023772327229380608, + 0.12372585386037827, + 0.02314685843884945, + -0.0544075183570385, + -0.05280038341879845, + 0.016436295583844185, + -0.0444490909576416, + -0.006520816590636969, + -0.008584277704358101, + 0.031740956008434296, + 0.04188862442970276, + -0.008750460110604763, + -0.10833059996366501, + -0.05442196875810623, + 0.03239291161298752, + -0.08703356981277466, + 0.0047711823135614395, + -0.06967581808567047, + 0.03747133910655975, + 0.11157047748565674, + 0.017352882772684097, + -0.006289730779826641, + -0.049069903790950775, + -0.005863155238330364, + -0.0528264194726944, + -0.024261508136987686, + -0.0033458347897976637, + 0.04210058972239494, + -0.08488588035106659, + 0.004092587158083916, + -0.053820788860321045, + 0.059624847024679184, + -0.0436747744679451, + 0.09754639863967896, + 0.03522047400474548, + -0.0663733035326004, + -0.08282151818275452, + -0.0007431879639625549, + -0.005893544759601355, + 0.049697570502758026, + 0.026152510195970535, + 0.03760453313589096, + 0.046701349318027496, + -0.0530659519135952, + 0.08974557369947433, + 0.05037372559309006, + -0.03692547231912613, + -0.0663122832775116, + -0.04270852357149124, + -0.006302577909082174, + 0.03392454981803894, + 0.00201242184266448, + -0.04211777448654175, + 0.008807561360299587, + 0.03336133062839508, + -0.007241835352033377, + 0.0544072687625885, + 0.09891193360090256, + 0.04132698476314545, + -0.11022458970546722 + ] + }, + "p244_086.wav": { + "name": "p244", + "embedding": [ + 0.04058758541941643, + 0.05707496404647827, + -0.03836807608604431, + 0.03512593358755112, + -0.07383444905281067, + 0.04957398772239685, + -0.13017742335796356, + 0.11729548871517181, + -0.039957642555236816, + 0.12198658287525177, + -0.04513384401798248, + 0.1239967793226242, + -0.010964492335915565, + -0.19818654656410217, + -0.013189973309636116, + 0.05734149366617203, + -0.05365602672100067, + -0.0625680461525917, + -0.04966297373175621, + -0.034478046000003815, + 0.036917801946401596, + 0.05233831703662872, + 0.019359372556209564, + 0.0030397744849324226, + 0.020032258704304695, + 0.07939080893993378, + -0.009967454709112644, + 0.024669989943504333, + 0.001333344727754593, + -0.05349157005548477, + -0.048599258065223694, + 0.07821957767009735, + -0.06079249829053879, + -0.01427432894706726, + 0.036619942635297775, + -0.01747128553688526, + 0.0007379520684480667, + -0.05678967759013176, + -0.03972814604640007, + 0.02851865254342556, + -0.06608286499977112, + 0.07830791175365448, + 0.0477905198931694, + -0.015870993956923485, + 0.04767383635044098, + 0.008565939962863922, + -0.020001649856567383, + -0.045987483114004135, + -0.11187990009784698, + 0.15980158746242523, + 0.07865479588508606, + -0.012689968571066856, + -0.05196975916624069, + -0.054953932762145996, + 0.10646001994609833, + -0.011847546324133873, + -0.12508486211299896, + -0.04689028486609459, + 0.07448107749223709, + 0.14265106618404388, + -0.04204976186156273, + -0.03148014098405838, + 0.038656722754240036, + 0.10301309823989868, + 0.07791075110435486, + 0.0800962746143341, + 0.07613751292228699, + 0.11102531850337982, + -0.01735655963420868, + -0.006543383933603764, + 0.07973690330982208, + 0.07934500277042389, + 0.05118989571928978, + -0.012880037538707256, + 0.03483256697654724, + 0.020528405904769897, + -0.015322490595281124, + -0.01661631092429161, + -0.01214521937072277, + 0.004847847856581211, + 0.005531628616154194, + 0.008465563878417015, + 0.023781727999448776, + 0.03004276752471924, + -0.03144514933228493, + 0.07102768123149872, + 0.0543365404009819, + -0.003726797876879573, + 0.056550078094005585, + 0.024787262082099915, + 0.0032945151906460524, + 0.07655567675828934, + -0.08138968050479889, + -0.06683298945426941, + 0.03440267965197563, + 0.019296666607260704, + 0.009587163105607033, + 0.063373863697052, + 0.04588541015982628, + -0.018813274800777435, + 0.12973400950431824, + 0.04215530306100845, + -0.011943644843995571, + 0.03597428277134895, + -0.08418693393468857, + 0.1198873445391655, + 0.08880268037319183, + -0.029398974031209946, + 0.04533214494585991, + -0.049159400165081024, + 0.08031581342220306, + 0.05285089462995529, + -0.13597974181175232, + -0.06376269459724426, + 0.05149390548467636, + 0.006144902668893337, + -0.025638848543167114, + 0.1461046189069748, + -0.008281498216092587, + 0.040571462363004684, + 0.12188776582479477, + -0.08619432896375656, + -0.044897690415382385, + -0.01341365184634924, + 0.052110083401203156, + -0.08784531056880951, + 0.05693289265036583, + 0.049084704369306564, + -0.012311004102230072, + 0.022327056154608727, + 0.08460091054439545, + -0.02457287907600403, + -0.007772268261760473, + 0.0021988588850945234, + -0.027888190001249313, + 0.03187965601682663, + -0.011864447966217995, + -0.013593818061053753, + 0.06836052983999252, + 0.02206624671816826, + 0.03742603212594986, + -0.024825064465403557, + -0.0301041416823864, + -0.1429411917924881, + 0.03209402784705162, + 0.016581948846578598, + 0.09144237637519836, + -0.00959692057222128, + -0.005573159083724022, + -0.058278173208236694, + -0.09083827584981918, + 0.015277802012860775, + -0.01225945632904768, + 0.08049440383911133, + -0.03330737352371216, + -0.006423125043511391, + 0.08229725062847137, + 0.03271114453673363, + 0.006481239106506109, + -0.03171835467219353, + -0.04404463991522789, + 0.008224808610975742, + 0.05602450668811798, + -0.07359646260738373, + -0.07248391956090927, + -0.02017083391547203, + 0.04001403599977493, + -0.011114749126136303, + 0.050568774342536926, + 0.04193432256579399, + 0.02349749766290188, + 0.020095184445381165, + -0.0834217518568039, + 0.024718699976801872, + -0.09383046627044678, + -0.06108575314283371, + -0.01371628325432539, + -0.019321896135807037, + -0.022519215941429138, + 0.07915105670690536, + 0.01181795448064804, + 0.04354029893875122, + -0.03930105268955231, + -0.07850587368011475, + -0.07777340710163116, + 0.05252227932214737, + 0.0632658526301384, + -0.015045162290334702, + 0.03825882077217102, + 0.06574724614620209, + -0.026200678199529648, + 0.0372898206114769, + 0.051983561366796494, + 0.10803788900375366, + -0.01902872882783413, + 0.020945537835359573, + -0.0446934811770916, + 0.11168535053730011, + 0.06274493038654327, + -0.07197760790586472, + -0.05890105292201042, + -0.017712388187646866, + -0.0668000727891922, + 0.045169398188591, + -0.026235414668917656, + 0.007637351751327515, + 0.022234197705984116, + 0.02016567438840866, + -0.10075777024030685, + -0.08245828002691269, + 0.07092501223087311, + -0.06577587872743607, + -0.011416262947022915, + -0.0934334397315979, + 0.037599124014377594, + 0.10930037498474121, + 0.0385400652885437, + -0.02920175902545452, + -0.010879136621952057, + 0.039247818291187286, + -0.01921367272734642, + 0.026680922135710716, + 0.0700419545173645, + 0.04611950367689133, + -0.11677803099155426, + -0.030073177069425583, + -0.07577842473983765, + 0.0585419163107872, + -0.04171869158744812, + 0.14076575636863708, + 0.013987628743052483, + -0.0328177772462368, + -0.07807652652263641, + 0.049609191715717316, + -0.004282123409211636, + 0.06763955950737, + 0.04454671964049339, + 0.07316531240940094, + 0.06067637726664543, + -0.04748491942882538, + 0.11469197273254395, + 0.054574400186538696, + -0.040320541709661484, + -0.05957065522670746, + -0.0322323739528656, + -0.036504730582237244, + 0.03230755031108856, + 0.036879416555166245, + -0.08869340270757675, + -0.0110970139503479, + 0.030039120465517044, + -0.01634569838643074, + 0.052931975573301315, + 0.1340961903333664, + 0.06646884977817535, + -0.11248211562633514 + ] + }, + "p244_134.wav": { + "name": "p244", + "embedding": [ + 0.0622018463909626, + 0.1327560842037201, + -0.026491519063711166, + 0.03965924680233002, + -0.05983572453260422, + 0.07172872126102448, + -0.09572288393974304, + 0.15615679323673248, + -0.047941505908966064, + 0.11980122327804565, + -0.10109180957078934, + 0.14807407557964325, + -0.04070136696100235, + -0.1288943886756897, + -0.06004098430275917, + 0.04093494638800621, + -0.010518948547542095, + -0.011621727608144283, + -0.014310152269899845, + -0.013755956664681435, + 0.02872421219944954, + 0.009694254957139492, + 0.036946024745702744, + 0.029177136719226837, + 0.040951453149318695, + 0.063828244805336, + 0.0034961490891873837, + 0.06040937453508377, + 0.030641386285424232, + -0.03643089532852173, + -0.05544741451740265, + 0.11300627887248993, + -0.055516891181468964, + 0.017353275790810585, + 0.05894283950328827, + -0.00020205974578857422, + 0.0033030719496309757, + -0.04933089762926102, + -0.00725951325148344, + -0.016243144869804382, + -0.020947769284248352, + 0.06707493960857391, + 0.010141802951693535, + -0.03671390563249588, + 0.029064463451504707, + 0.027157649397850037, + 0.003513710107654333, + -0.026831332594156265, + -0.10181010514497757, + 0.1282554566860199, + 0.032813552767038345, + 0.016223134472966194, + -0.10427436232566833, + -0.05072477459907532, + 0.10793045908212662, + -0.0376259908080101, + -0.07871465384960175, + -0.0028020869940519333, + 0.05185255408287048, + 0.15715593099594116, + -0.03203558176755905, + -0.04067929834127426, + 0.01443856954574585, + 0.10073094069957733, + 0.08034796267747879, + 0.07018522918224335, + 0.09205205738544464, + 0.1086721271276474, + -0.025567198172211647, + 0.033587805926799774, + 0.05205640196800232, + 0.07386362552642822, + 0.07442335039377213, + -0.019369393587112427, + 0.008443720638751984, + -0.013719220645725727, + -0.007741993293166161, + 0.01937638595700264, + -0.03527840971946716, + -0.045300163328647614, + -0.024530448019504547, + 0.022466804832220078, + 0.00741222919896245, + 0.016732580959796906, + -0.04707795009016991, + 0.0869964212179184, + 0.03724443539977074, + -0.04334992915391922, + 0.06521935760974884, + 0.0508296936750412, + -0.02222064509987831, + 0.05124201253056526, + -0.10589244961738586, + -0.09038302302360535, + 0.036771975457668304, + -0.02868126891553402, + 0.040719956159591675, + 0.08264879882335663, + 0.05071950703859329, + 0.006061921827495098, + 0.10374876856803894, + 0.07461705058813095, + 0.014417007565498352, + 0.030950188636779785, + -0.0826287567615509, + 0.13508948683738708, + 0.10684458166360855, + -0.03642892464995384, + 0.04120572656393051, + -0.008325044065713882, + 0.061466529965400696, + 0.06510888040065765, + -0.1193639487028122, + -0.08827556669712067, + 0.003733537159860134, + 0.018154004588723183, + 0.017135079950094223, + 0.05855339393019676, + -0.031154703348875046, + 0.03954688087105751, + 0.08034920692443848, + -0.06683668494224548, + -0.04941023141145706, + -0.03574524074792862, + 0.03460447117686272, + -0.06021100655198097, + 0.0708598643541336, + 0.044335439801216125, + 0.019089361652731895, + -0.021764487028121948, + 0.07222854346036911, + 0.00030676904134452343, + -0.02399158477783203, + 0.04847247898578644, + -0.040297456085681915, + 0.0020639775320887566, + 0.002081210957840085, + -0.009715343825519085, + 0.041291698813438416, + 0.051991626620292664, + 0.05807889997959137, + 0.011871043592691422, + 0.019927164539694786, + -0.09270739555358887, + 0.007123466581106186, + 0.07272288203239441, + 0.05771661549806595, + -0.01963166706264019, + -0.04582394286990166, + -0.03658342361450195, + -0.03922621160745621, + 0.029612090438604355, + 0.031892791390419006, + 0.07143702358007431, + -0.02476927638053894, + 0.030063264071941376, + 0.11151249706745148, + 0.018040018156170845, + -0.005392676685005426, + -0.05694349855184555, + 0.005480976775288582, + 0.01041684951633215, + 0.05482897162437439, + -0.06139064580202103, + -0.10707433521747589, + -0.007486686110496521, + 0.013832524418830872, + -0.04370430111885071, + 0.07752937078475952, + 0.05068504810333252, + 0.005762046203017235, + 0.03755341097712517, + -0.03167432174086571, + 0.0015448546037077904, + -0.10362815111875534, + -0.047716014087200165, + -0.028951041400432587, + -0.030049197375774384, + -0.032629672437906265, + 0.05871205776929855, + 0.05865924060344696, + 0.07069949805736542, + 0.01280115358531475, + -0.059996623545885086, + -0.07138459384441376, + 0.05062780901789665, + 0.048659540712833405, + 0.02274874784052372, + 0.04370371997356415, + 0.06451734900474548, + -0.004164085723459721, + 0.08456026017665863, + 0.09698827564716339, + 0.07018941640853882, + -0.023288819938898087, + -0.010122159495949745, + -0.05788757652044296, + 0.057798102498054504, + 0.0836566835641861, + -0.11314018815755844, + -0.12190453708171844, + -0.06107761710882187, + -0.05114412680268288, + 0.03179720789194107, + -0.025040172040462494, + 0.03414640575647354, + 0.0466463640332222, + -0.027013324201107025, + -0.08368606865406036, + -0.11304448544979095, + 0.10386017709970474, + -0.05776321887969971, + 0.0014743907377123833, + -0.06786850839853287, + 0.03872167319059372, + 0.07316740602254868, + -0.011720423586666584, + -0.029916729778051376, + 0.013210982084274292, + 0.03754677623510361, + -0.0407559759914875, + -0.025794383138418198, + 0.04394083842635155, + 0.01615135371685028, + -0.09156452119350433, + 0.025174185633659363, + -0.055095139890909195, + 0.08706554770469666, + -0.03749625012278557, + 0.1771300882101059, + -0.007881375961005688, + -0.040389735251665115, + -0.0687192901968956, + 0.04410019516944885, + -0.040084898471832275, + 0.03894632309675217, + 0.04144362360239029, + 0.06238207966089249, + -0.012978958897292614, + -0.0763697549700737, + 0.11493854224681854, + 0.04401835426688194, + -0.07852423191070557, + -0.09453123807907104, + -0.07565627247095108, + -0.04914827644824982, + 0.026203107088804245, + 0.030564583837985992, + -0.06608007848262787, + -0.018777944147586823, + -0.00116734579205513, + -0.006987260654568672, + 0.06478210538625717, + 0.14419645071029663, + 0.06578686833381653, + -0.08597676455974579 + ] + }, + "p244_133.wav": { + "name": "p244", + "embedding": [ + 0.041297547519207, + 0.11455926299095154, + -0.0017132259672507644, + 0.018165865913033485, + -0.051963645964860916, + 0.09041957557201385, + -0.08692163974046707, + 0.12645292282104492, + -0.09143020957708359, + 0.15465213358402252, + -0.11593572795391083, + 0.11773064732551575, + -0.044806286692619324, + -0.1490412950515747, + -0.06706982851028442, + 0.03986232727766037, + -0.04833361506462097, + 0.002107993932440877, + -0.060350093990564346, + 0.0069448016583919525, + 0.05833254009485245, + 0.000788657576777041, + 0.03213661536574364, + -0.01207007747143507, + 0.021789170801639557, + 0.04163859784603119, + 0.03385450690984726, + 0.06263872981071472, + 0.04133098945021629, + -0.05485771596431732, + -0.03725240379571915, + 0.13898667693138123, + -0.02946937270462513, + 0.03784608840942383, + 0.0781920775771141, + 0.012042203918099403, + -0.0014045416610315442, + -0.06810173392295837, + -0.01753845065832138, + -0.02219734899699688, + -0.02109723538160324, + 0.04637330397963524, + 0.004315180238336325, + -0.009702122770249844, + 0.033445652574300766, + 0.023403994739055634, + -0.03825129196047783, + -0.03742963448166847, + -0.07289575785398483, + 0.1262144297361374, + 0.04913631081581116, + 0.004767424892634153, + -0.08466526865959167, + -0.08497320860624313, + 0.12530331313610077, + -0.010960602201521397, + -0.1129029244184494, + -0.030695561319589615, + 0.08174505084753036, + 0.18919098377227783, + -0.022884823381900787, + -0.012764216400682926, + -0.0019257356179878116, + 0.10391833633184433, + 0.021053628996014595, + 0.11531467735767365, + 0.0751236230134964, + 0.0809326320886612, + 0.04574631154537201, + 0.0760323777794838, + 0.05403928458690643, + 0.06185106188058853, + 0.03970938175916672, + -0.02811742015182972, + 0.039041414856910706, + -0.015278642065823078, + -0.028954897075891495, + 0.03921008110046387, + -0.05481412634253502, + -0.02577005885541439, + -0.03172075003385544, + 0.01496118400245905, + 0.02791183441877365, + -0.021887533366680145, + -0.026877062395215034, + 0.061779119074344635, + -0.008785966783761978, + -0.022177185863256454, + 0.053655318915843964, + 0.05277888476848602, + -0.010125143453478813, + 0.03967394307255745, + -0.06804991513490677, + -0.14738930761814117, + -0.012449276633560658, + -0.016071254387497902, + 0.011165747418999672, + 0.07467452436685562, + 0.036343421787023544, + -0.019686389714479446, + 0.08277130872011185, + 0.0648355633020401, + 0.008782033808529377, + 0.0366487056016922, + -0.11050742864608765, + 0.1022585779428482, + 0.08801715075969696, + -0.003631700063124299, + 0.016802899539470673, + -0.03087206557393074, + 0.10668429732322693, + 0.09522587060928345, + -0.13953015208244324, + -0.08506143093109131, + -0.00264726672321558, + -0.025648826733231544, + -0.0010603005066514015, + 0.06754474341869354, + -0.027455255389213562, + -0.008131668902933598, + 0.09003298729658127, + -0.0673074796795845, + -0.06193699687719345, + -0.04229079186916351, + 0.03137551620602608, + -0.04543914645910263, + 0.05138185992836952, + -0.004624051973223686, + 0.007637045346200466, + -0.03060484677553177, + 0.07636098563671112, + -0.019327733665704727, + -0.012097650207579136, + 0.053983524441719055, + -0.07345453649759293, + 0.042408209294080734, + -0.049985166639089584, + 0.008950160816311836, + 0.05210144445300102, + 0.08750709891319275, + 0.05141513794660568, + 0.002851310884580016, + -0.018281059339642525, + -0.04121723771095276, + -0.01046680472791195, + 0.055975887924432755, + 0.043200232088565826, + 0.012413250282406807, + -0.016545619815587997, + -0.027319665998220444, + -0.06217388063669205, + 0.03314356505870819, + -0.013571945950388908, + 0.09823563694953918, + 0.0019467358943074942, + 0.021671226248145103, + 0.09472833573818207, + -0.0051863593980669975, + -0.01598552241921425, + -0.07899544388055801, + -0.0031464819330722094, + 0.04760095104575157, + 0.052674226462841034, + -0.07419611513614655, + -0.05610281974077225, + 0.024660281836986542, + -0.0022799137514084578, + -0.04687836766242981, + 0.014581711031496525, + 0.02412720024585724, + 0.010095291770994663, + 0.06529437750577927, + -0.05785476788878441, + 0.004069725051522255, + -0.135610431432724, + -0.033472005277872086, + -0.02212948352098465, + -0.06666119396686554, + -0.011357763782143593, + 0.04767968878149986, + 0.02581382915377617, + 0.007326185703277588, + 0.04437337443232536, + -0.08830290287733078, + -0.061657555401325226, + 0.08468224108219147, + 0.05942381173372269, + 0.03753438964486122, + 0.060077324509620667, + 0.050926726311445236, + -0.01278261374682188, + 0.06519371271133423, + 0.08476236462593079, + 0.08517537266016006, + -0.0007953721797093749, + -0.012795460410416126, + -0.07919950038194656, + 0.07496115565299988, + 0.09045148640871048, + -0.11373654752969742, + -0.11356612294912338, + -0.039007291197776794, + -0.0497543029487133, + 0.04672514647245407, + -0.0340145118534565, + -0.00975661538541317, + 0.030717633664608, + -0.025635145604610443, + -0.09907827526330948, + -0.07132606953382492, + 0.13276441395282745, + -0.0745672658085823, + -0.028220923617482185, + -0.05113302171230316, + 0.02091464214026928, + 0.08047666400671005, + 0.01702745445072651, + -0.028631914407014847, + 0.034702155739068985, + 0.07751099765300751, + -0.10417625308036804, + -0.03942802548408508, + -0.004535287618637085, + -0.028360813856124878, + -0.07269437611103058, + 0.03828089311718941, + -0.06709221750497818, + 0.060136713087558746, + -0.07069261372089386, + 0.17005649209022522, + -0.0424695685505867, + -0.05571698769927025, + -0.06540583819150925, + 0.052116844803094864, + -0.038852546364068985, + 0.027352681383490562, + 0.05796901136636734, + 0.08096598833799362, + -0.018361283466219902, + -0.09400112181901932, + 0.13685202598571777, + 0.005040790420025587, + -0.022602172568440437, + -0.06846167892217636, + -0.04854939877986908, + -0.061454616487026215, + -0.023517979308962822, + -0.009991307742893696, + -0.06929834932088852, + 0.006569344084709883, + 0.0038476220797747374, + -0.026457427069544792, + 0.06944996118545532, + 0.13379625976085663, + 0.07714101672172546, + -0.07563582807779312 + ] + }, + "p244_129.wav": { + "name": "p244", + "embedding": [ + 0.05392615497112274, + 0.07443667948246002, + -0.009994728490710258, + -0.009014388546347618, + -0.02173648029565811, + 0.03859037905931473, + -0.12552936375141144, + 0.1256403923034668, + -0.06035454571247101, + 0.09997209906578064, + -0.06202982738614082, + 0.10489467531442642, + -0.005122889764606953, + -0.1571434736251831, + -0.0880635678768158, + 0.03198288381099701, + -0.045143015682697296, + -0.006307042203843594, + -0.027759509161114693, + -0.024430638179183006, + 0.03673839196562767, + 0.03499136120080948, + 0.020181884989142418, + -0.012590021826326847, + 0.04001505672931671, + 0.03888263180851936, + 0.028153423219919205, + 0.04097350686788559, + 0.027295127511024475, + 0.003928378224372864, + 0.002996165305376053, + 0.09662798047065735, + -0.018309295177459717, + 0.013687074184417725, + 0.07015502452850342, + 0.033664800226688385, + 0.004545565228909254, + -0.0794612467288971, + -0.02087850496172905, + 0.009411952458322048, + -0.045582108199596405, + 0.07155988365411758, + 0.040919363498687744, + -0.019065722823143005, + 0.0299101322889328, + 0.016979368403553963, + 0.0036395557690411806, + -0.07593900710344315, + -0.10309791564941406, + 0.15288719534873962, + 0.01870296709239483, + 0.047613222151994705, + -0.11891864240169525, + -0.06445339322090149, + 0.11014333367347717, + -0.03317048400640488, + -0.07327345013618469, + -0.020378394052386284, + 0.02845267578959465, + 0.17581988871097565, + -0.02416062355041504, + -0.027550997212529182, + 0.01721351221203804, + 0.10199615359306335, + 0.02705969847738743, + 0.04991358146071434, + 0.1079227477312088, + 0.06764909625053406, + 0.020355235785245895, + 0.04830589145421982, + 0.04662405699491501, + 0.0597914382815361, + 0.005850202403962612, + -0.04733363911509514, + 0.007627889513969421, + -0.003365917131304741, + -0.05620148777961731, + 0.011901435442268848, + -0.02279374748468399, + -0.019748002290725708, + -0.028799837455153465, + 0.030615627765655518, + 0.002194210421293974, + 0.0270709041506052, + -0.050927430391311646, + 0.05480382591485977, + -0.015551891177892685, + -0.04787268489599228, + 0.05460184067487717, + 0.07094497978687286, + -0.011764146387577057, + 0.013380622491240501, + -0.055755071341991425, + -0.10712259262800217, + -0.020806077867746353, + -0.01791190728545189, + 0.006997612304985523, + 0.06865952908992767, + 0.037363409996032715, + -0.019053038209676743, + 0.08073477447032928, + 0.05926159396767616, + -0.004894784651696682, + 0.0075787147507071495, + -0.09441211819648743, + 0.0782688558101654, + 0.10550709813833237, + -0.01682424172759056, + 0.017590994015336037, + -0.0476725772023201, + 0.05361957848072052, + 0.08424115926027298, + -0.12738361954689026, + -0.07545700669288635, + 0.07856108248233795, + 0.03635145723819733, + 0.05592794343829155, + 0.09744493663311005, + -0.005688908509910107, + -0.0019249757751822472, + 0.06625314056873322, + -0.06221519783139229, + -0.05811835080385208, + -0.05217359960079193, + 0.054616786539554596, + -0.04010135307908058, + 0.05409979820251465, + 0.04592623561620712, + 0.008029206655919552, + -0.04225748032331467, + 0.05206568166613579, + 0.010796322487294674, + -0.0030347637366503477, + -0.016415055841207504, + 0.018820129334926605, + 0.06336290389299393, + -0.01777966320514679, + -0.024717368185520172, + 0.037478700280189514, + 0.0927240252494812, + 0.02607731707394123, + 0.05414276197552681, + -0.04490037262439728, + -0.07333119958639145, + -0.010936434380710125, + 0.09308279305696487, + 0.05582552030682564, + -0.040384046733379364, + -0.05247347429394722, + -0.05684541165828705, + -0.021842073649168015, + 0.0004816511645913124, + 0.012069856747984886, + 0.09166248887777328, + -0.0019981549121439457, + 0.03308132290840149, + 0.11047571897506714, + -0.038139186799526215, + -0.007936987094581127, + 0.0028473716229200363, + 0.03919798135757446, + 0.026521438732743263, + 0.023982921615242958, + -0.03588304668664932, + -0.08112575113773346, + -0.0022799649741500616, + -0.001674160361289978, + -0.0358114168047905, + 0.0005139485001564026, + 0.010183852165937424, + -0.0015047881752252579, + 0.0435851514339447, + -0.0954829528927803, + 0.022527482360601425, + -0.16106975078582764, + -0.00900324247777462, + -0.015356677584350109, + -0.04914845898747444, + -0.006328769493848085, + 0.07458657026290894, + 0.04068043455481529, + 0.02095233090221882, + 0.012564263306558132, + -0.11711712181568146, + -0.024375971406698227, + 0.06816166639328003, + 0.09943650662899017, + 0.013466029427945614, + 0.0071571338921785355, + 0.028654180467128754, + 0.023938678205013275, + 0.032016463577747345, + 0.07807129621505737, + 0.05729295313358307, + -0.018133021891117096, + -0.04137236252427101, + -0.0445544607937336, + 0.09838218986988068, + 0.02983623556792736, + -0.09720556437969208, + -0.0902697890996933, + -0.027857154607772827, + -0.0417763777077198, + -0.0021216869354248047, + 0.00452845823019743, + 0.044691868126392365, + 0.014556209556758404, + -0.04080378636717796, + -0.11652612686157227, + -0.08267544209957123, + 0.05755245313048363, + -0.05149652063846588, + -0.01796053722500801, + -0.044719576835632324, + 0.02303094044327736, + 0.09662321209907532, + -0.003799034282565117, + 0.023075276985764503, + -0.022207390516996384, + -0.016091376543045044, + -0.09067900478839874, + -0.06383467465639114, + -0.02560262195765972, + -0.007304156199097633, + -0.08523023128509521, + 0.041381530463695526, + -0.05000466853380203, + 0.11790335178375244, + -0.06316035985946655, + 0.13298948109149933, + -0.01973225176334381, + -0.07779376953840256, + -0.08542152494192123, + -0.01643693633377552, + -0.02898472547531128, + 0.055288925766944885, + 0.044188156723976135, + 0.05746244639158249, + -0.022932549938559532, + -0.06478139758110046, + 0.09215466678142548, + 0.06123930588364601, + -0.035009823739528656, + -0.06930521130561829, + -0.0554036945104599, + 0.0020948778837919235, + 0.008704611100256443, + -0.007246280089020729, + -0.013204630464315414, + 0.007811293005943298, + -0.002652811584994197, + -0.04926186054944992, + 0.0598335862159729, + 0.10606255382299423, + 0.054550208151340485, + -0.12116880714893341 + ] + }, + "p244_113.wav": { + "name": "p244", + "embedding": [ + 0.05266711488366127, + 0.08582263439893723, + -0.02592119202017784, + 0.019899480044841766, + -0.06496009230613708, + 0.048812996596097946, + -0.1588859111070633, + 0.13600994646549225, + -0.030165988951921463, + 0.13593433797359467, + -0.04642648249864578, + 0.12987945973873138, + -0.020480554550886154, + -0.18912239372730255, + -0.021262919530272484, + 0.06009237468242645, + -0.02741141803562641, + -0.05052557960152626, + -0.015856029465794563, + -0.027928199619054794, + 0.02803090214729309, + 0.042347684502601624, + 0.025782620534300804, + 0.0022609729785472155, + 0.041953157633543015, + 0.07605547457933426, + -0.007571537978947163, + 0.03295883908867836, + -0.0030406098812818527, + -0.05938256159424782, + -0.03306674212217331, + 0.08316744863986969, + -0.06765448302030563, + -0.004874638747423887, + 0.033529132604599, + -0.014325467869639397, + 0.0013069804990664124, + -0.06559905409812927, + -0.018419045954942703, + 0.010221763513982296, + -0.04732197895646095, + 0.08943614363670349, + 0.026139071211218834, + -0.02501012571156025, + 0.023983489722013474, + 0.022603865712881088, + 0.002640419639647007, + -0.04471921920776367, + -0.11350669711828232, + 0.15213394165039062, + 0.05256342515349388, + 0.008560108952224255, + -0.07780388742685318, + -0.06634317338466644, + 0.09941860288381577, + -0.010311364196240902, + -0.09696295112371445, + -0.052800457924604416, + 0.06888774782419205, + 0.14631260931491852, + -0.03388986364006996, + -0.05362073704600334, + 0.03783417493104935, + 0.11092883348464966, + 0.07482509315013885, + 0.06419740617275238, + 0.0879727154970169, + 0.11161946505308151, + -0.02705576829612255, + -0.004465590231120586, + 0.05596315488219261, + 0.07429435104131699, + 0.04771411418914795, + -0.014407447539269924, + 0.02334466576576233, + -0.007317695766687393, + -0.011422003619372845, + -0.019164983183145523, + -0.015534501522779465, + -0.027109500020742416, + -0.012050880119204521, + 0.0062237330712378025, + 0.002427445026114583, + 0.042277999222278595, + -0.030984140932559967, + 0.047915127128362656, + 0.059436503797769547, + -0.025418559089303017, + 0.08329557627439499, + 0.034678295254707336, + 0.012928245589137077, + 0.07167655229568481, + -0.10910872370004654, + -0.05550219118595123, + 0.049642592668533325, + 0.001558721880428493, + 0.020475173369050026, + 0.06777223199605942, + 0.0511762760579586, + -0.015133535489439964, + 0.13422654569149017, + 0.048582110553979874, + -0.00784805603325367, + 0.014216885901987553, + -0.08218632638454437, + 0.1341009885072708, + 0.08056965470314026, + -0.035237401723861694, + 0.05655606836080551, + -0.04740045219659805, + 0.04677413031458855, + 0.05319509282708168, + -0.13338381052017212, + -0.08521207422018051, + 0.033410973846912384, + 0.01281578466296196, + -0.024215031415224075, + 0.14557114243507385, + -0.00869741104543209, + 0.04875190928578377, + 0.10435070097446442, + -0.09193342179059982, + -0.06268054246902466, + -0.013657070696353912, + 0.049857206642627716, + -0.09539420157670975, + 0.07522916793823242, + 0.06951335072517395, + -0.012824811972677708, + 0.02431079000234604, + 0.07977151870727539, + -0.004391202703118324, + 0.007424943149089813, + -0.003942327573895454, + -0.030067792162299156, + 0.015791919082403183, + -0.002340142149478197, + -0.008628172799944878, + 0.0364588238298893, + 0.021641982719302177, + 0.05973050743341446, + -0.004062551073729992, + -0.021350668743252754, + -0.14606045186519623, + 0.019084783270955086, + 0.03022613190114498, + 0.08562620729207993, + -0.017911944538354874, + -0.03051462396979332, + -0.04280445724725723, + -0.06004221737384796, + 0.002937659854069352, + 0.0018669666023924947, + 0.08669067174196243, + -0.016913872212171555, + 0.006382003892213106, + 0.11146383732557297, + 0.046541500836610794, + 0.012049530632793903, + -0.02926841750741005, + -0.030022265389561653, + 0.004241586197167635, + 0.057848334312438965, + -0.08068471401929855, + -0.07798247039318085, + -0.0290053877979517, + 0.04081055894494057, + -0.008505836129188538, + 0.08182427287101746, + 0.06039590761065483, + 0.021579179912805557, + 0.014276997186243534, + -0.07375432550907135, + 0.020761828869581223, + -0.07047093659639359, + -0.06523757427930832, + -0.011761642061173916, + -0.015990277752280235, + -0.045896563678979874, + 0.08601028472185135, + 0.028392210602760315, + 0.06888741999864578, + -0.04887698218226433, + -0.05965172126889229, + -0.0852140411734581, + 0.03415220230817795, + 0.05710722133517265, + -0.025758277624845505, + 0.02026914246380329, + 0.056293901056051254, + -0.019123535603284836, + 0.04892539605498314, + 0.06510180234909058, + 0.09337292611598969, + -0.0375477597117424, + 0.02333034574985504, + -0.052902404218912125, + 0.10347604751586914, + 0.08357144892215729, + -0.07872869819402695, + -0.06853903084993362, + -0.03240904584527016, + -0.0754864513874054, + 0.032725293189287186, + -0.014659631997346878, + 0.029350321739912033, + 0.02840963937342167, + -0.004350689705461264, + -0.10283681005239487, + -0.1052875965833664, + 0.07420540601015091, + -0.07010527700185776, + 0.008501279167830944, + -0.09442303329706192, + 0.04686177894473076, + 0.09679373353719711, + 0.040300656110048294, + -0.024278780445456505, + -0.02721174620091915, + 0.033263299614191055, + -0.010030240751802921, + 0.02370413951575756, + 0.07773198187351227, + 0.05175931379199028, + -0.10856864601373672, + -0.016282837837934494, + -0.07674230635166168, + 0.06133342161774635, + -0.03762954846024513, + 0.15692093968391418, + 0.02711891569197178, + -0.048004016280174255, + -0.09299994260072708, + 0.027254121378064156, + -0.020146537572145462, + 0.06552023440599442, + 0.03268613666296005, + 0.07247371971607208, + 0.05437099561095238, + -0.055424656718969345, + 0.10389180481433868, + 0.06420666724443436, + -0.03823890537023544, + -0.07564503699541092, + -0.05463288351893425, + -0.03448047488927841, + 0.05037635564804077, + 0.015081064775586128, + -0.09624598175287247, + -0.016583899036049843, + 0.03790034353733063, + 0.007881008088588715, + 0.06808155030012131, + 0.13471582531929016, + 0.061022914946079254, + -0.11671235412359238 + ] + }, + "p244_125.wav": { + "name": "p244", + "embedding": [ + 0.04512891545891762, + 0.10432637482881546, + -0.026215000078082085, + 0.03385285288095474, + -0.08149534463882446, + 0.10970335453748703, + -0.11565253883600235, + 0.1056872308254242, + -0.06380829960107803, + 0.1443595141172409, + -0.042785510420799255, + 0.11578189581632614, + -0.016190458089113235, + -0.17944610118865967, + -0.03558603301644325, + 0.06630606949329376, + -0.034195397049188614, + -0.005926445126533508, + -0.047937747091054916, + -0.0010083622764796019, + 0.01739398017525673, + 0.021829038858413696, + 0.04105433076620102, + -0.04893742874264717, + 0.07487490028142929, + 0.052493225783109665, + 0.008113069459795952, + 0.04738616198301315, + 0.002095246920362115, + -0.09708696603775024, + -0.06657794117927551, + 0.11366607248783112, + -0.059582456946372986, + 0.0235900841653347, + 0.053876057267189026, + -0.007159947883337736, + 0.010989903472363949, + -0.0587448813021183, + 0.011473600752651691, + 0.021653857082128525, + -0.006518281996250153, + 0.09408535063266754, + 0.03983663022518158, + -0.002927956636995077, + 0.011783753521740437, + 0.016308235004544258, + -0.0052011096850037575, + -0.04499087110161781, + -0.09166138619184494, + 0.16865481436252594, + 0.023754121735692024, + -0.026250839233398438, + -0.07726902514696121, + -0.09046296030282974, + 0.10517049580812454, + -0.005890835542231798, + -0.10882264375686646, + -0.06222473084926605, + 0.06772004067897797, + 0.1498308628797531, + -0.0031964019872248173, + -0.03413783013820648, + -0.009236854501068592, + 0.10852149873971939, + 0.011532392352819443, + 0.10324481129646301, + 0.03358490765094757, + 0.09139684587717056, + 0.019114602357149124, + 0.05334613099694252, + 0.03903999924659729, + 0.059925973415374756, + 0.003664352698251605, + -0.019248846918344498, + 0.034947361797094345, + -0.05856955796480179, + -0.019251830875873566, + 0.015843171626329422, + -0.0069058844819664955, + -0.023239202797412872, + -0.018647603690624237, + 0.005984857678413391, + 0.02566693350672722, + -0.009859294630587101, + -0.03400120139122009, + 0.04397953674197197, + 0.014859405346214771, + -0.01965768076479435, + 0.07944491505622864, + 0.06610117852687836, + -0.010992285795509815, + 0.03727010264992714, + -0.06801246851682663, + -0.10969861596822739, + 0.03757087141275406, + 0.02315947599709034, + 0.01897449977695942, + 0.06112867221236229, + 0.020707352086901665, + -0.01669279672205448, + 0.08805934339761734, + 0.06901668757200241, + 0.013307984918355942, + 0.030067598447203636, + -0.07806509733200073, + 0.13966026902198792, + 0.07341732084751129, + 0.020065249875187874, + 0.06132183223962784, + -0.038206715136766434, + 0.08776731789112091, + 0.07752826064825058, + -0.14298465847969055, + -0.09741400927305222, + -0.0070975469425320625, + -0.024273836985230446, + -0.02258213609457016, + 0.09308410435914993, + -0.024363458156585693, + -0.0012514310656115413, + 0.08733444660902023, + -0.09904124587774277, + -0.05525195598602295, + -0.015873271971940994, + 0.030854692682623863, + -0.0808526873588562, + 0.03413348272442818, + 0.046862296760082245, + -0.04644785448908806, + 0.013428938575088978, + 0.07309228181838989, + 0.003995553124696016, + 0.029969770461320877, + 0.065598264336586, + -0.039192795753479004, + 0.026482343673706055, + -0.026106547564268112, + 0.025038346648216248, + 0.07799410820007324, + 0.03637745976448059, + 0.07396122813224792, + -0.024779651314020157, + -0.0132305808365345, + -0.09724399447441101, + 0.0023832041770219803, + 0.04702654108405113, + 0.047006089240312576, + -0.02175857312977314, + -0.011672073043882847, + -0.03722044825553894, + -0.10271601378917694, + 0.052550312131643295, + 0.00657836627215147, + 0.11014967411756516, + 0.01651615835726261, + 0.005980789661407471, + 0.10929179191589355, + 0.04564369469881058, + -0.014958723448216915, + -0.07665686309337616, + -0.02384403720498085, + 0.03758100047707558, + 0.038161713629961014, + -0.09398920834064484, + -0.04468710348010063, + 0.010997436009347439, + -0.0045196665450930595, + -0.0298407394438982, + 0.046191826462745667, + 0.0697917491197586, + 0.02932918816804886, + 0.06488846242427826, + -0.05145473778247833, + 0.010845218785107136, + -0.06489353626966476, + -0.022748468443751335, + -0.03324192017316818, + -0.06173117458820343, + -0.06745723634958267, + 0.1137159988284111, + 0.025899073109030724, + 0.024418696761131287, + -0.02072727493941784, + -0.03085111640393734, + -0.03956538811326027, + 0.06374966353178024, + 0.037675824016332626, + 0.006032956298440695, + 0.03632340580224991, + 0.028634967282414436, + -0.02249719761312008, + 0.06109248474240303, + 0.09133797883987427, + 0.07837530970573425, + -0.032901983708143234, + 0.012392661534249783, + -0.06136041507124901, + 0.11161164194345474, + 0.09009142965078354, + -0.1054024025797844, + -0.0950327143073082, + -0.04629550501704216, + -0.06075979396700859, + 0.04947635531425476, + -0.048837777227163315, + -0.004198533017188311, + 0.02499806322157383, + -0.01532420702278614, + -0.07993901520967484, + -0.10609419643878937, + 0.09526405483484268, + -0.05893123894929886, + -0.017346439883112907, + -0.05751090124249458, + 0.04680261015892029, + 0.06576312333345413, + 0.06334643810987473, + -0.041471004486083984, + 0.007180421147495508, + 0.07584094256162643, + -0.06248830631375313, + 0.013814223930239677, + 0.0633963942527771, + 0.006562592461705208, + -0.06464602053165436, + 0.02832934632897377, + -0.06338690221309662, + 0.0677010789513588, + -0.06531787663698196, + 0.20250418782234192, + -0.011792201548814774, + -0.05663381516933441, + -0.057102687656879425, + 0.059156037867069244, + -0.0693090632557869, + 0.016006743535399437, + 0.04589393734931946, + 0.060533832758665085, + 0.046223729848861694, + -0.04861221835017204, + 0.11730561405420303, + 0.03099760413169861, + -0.017490530386567116, + -0.05587955191731453, + -0.04201593995094299, + -0.04608694091439247, + 0.06122569739818573, + 0.00919948611408472, + -0.1138974204659462, + 0.018559828400611877, + 0.05176904797554016, + 0.011245728470385075, + 0.07479051500558853, + 0.1446010321378708, + 0.08672527223825455, + -0.07816220819950104 + ] + }, + "p244_142.wav": { + "name": "p244", + "embedding": [ + 0.044091422110795975, + 0.07743866741657257, + -0.008428291417658329, + 0.030143287032842636, + -0.020201601088047028, + 0.08146895468235016, + -0.16609877347946167, + 0.10837343335151672, + -0.054010625928640366, + 0.14748694002628326, + -0.05846453085541725, + 0.08908722549676895, + -0.00979151576757431, + -0.21999913454055786, + -0.022897057235240936, + 0.06719061732292175, + -0.04753673076629639, + -0.022768575698137283, + -0.024456845596432686, + 0.02589966543018818, + 0.031428031623363495, + 0.01232027355581522, + 0.012082988396286964, + -0.009386545047163963, + 0.027116162702441216, + 0.04895694553852081, + -0.0206296406686306, + 0.038302868604660034, + -0.00407725153490901, + -0.012179161421954632, + -0.016930075362324715, + 0.1352418214082718, + -0.06851913034915924, + 0.001655557076446712, + 0.07899977266788483, + 0.0037230250891298056, + -0.04877312481403351, + -0.05199562385678291, + 0.0016954276943579316, + -0.023792948573827744, + -0.07425396889448166, + 0.07345152646303177, + 0.030001258477568626, + 0.009505374357104301, + 0.04755253344774246, + 0.015463468618690968, + -0.012125799432396889, + -0.035624660551548004, + -0.08789891749620438, + 0.11724990606307983, + 0.058107439428567886, + 0.00503843929618597, + -0.06582161784172058, + -0.06505601853132248, + 0.08617187291383743, + 0.015430380590260029, + -0.11312363296747208, + -0.06555827707052231, + 0.09202402830123901, + 0.16443733870983124, + -0.02339477278292179, + -0.019992755725979805, + 0.01177819725126028, + 0.10955788940191269, + 0.05824762210249901, + 0.13660144805908203, + 0.04057910665869713, + 0.10317262262105942, + 0.026862991973757744, + 0.03629329428076744, + 0.08264689147472382, + 0.036499351263046265, + 0.04852892458438873, + -0.047179389744997025, + 0.02811608836054802, + -0.00022103595256339759, + -0.030083760619163513, + -0.0045753479935228825, + -0.014025572687387466, + -0.00016731731011532247, + -0.001117827370762825, + -0.024101480841636658, + 0.0016721455613151193, + 0.03795992210507393, + -0.014634850434958935, + 0.008282522670924664, + 0.06142982468008995, + -0.021815435960888863, + 0.06625853478908539, + 0.06827973574399948, + 0.012328526936471462, + 0.06346876919269562, + -0.0868157371878624, + -0.08818034082651138, + 0.031383052468299866, + 0.006197072099894285, + 0.0005468082381412387, + 0.057138171046972275, + 0.04718642681837082, + -0.0053126877173781395, + 0.08353392779827118, + 0.03018593229353428, + 0.005062393378466368, + 0.046734608709812164, + -0.10961950570344925, + 0.11949074268341064, + 0.045873645693063736, + -0.017947908490896225, + 0.03215749189257622, + -0.050151146948337555, + 0.06887584179639816, + 0.1098480075597763, + -0.13919194042682648, + -0.046134889125823975, + 0.05155736953020096, + -0.024865809828042984, + -0.03445601835846901, + 0.14712075889110565, + 0.0021482466254383326, + -0.015834737569093704, + 0.0877358615398407, + -0.09279146045446396, + -0.06910572201013565, + -0.025697927922010422, + 0.03996589407324791, + -0.1131061464548111, + 0.06024720519781113, + 0.021332452073693275, + -0.008160749450325966, + -0.020695582032203674, + 0.09601693600416183, + -0.015088719315826893, + -0.011547433212399483, + -0.006499287206679583, + -0.018710995092988014, + 0.06689240038394928, + -0.03599360212683678, + 0.03126445412635803, + 0.035963233560323715, + -0.0025377669371664524, + 0.054147783666849136, + -0.0023579730186611414, + -0.01101789902895689, + -0.09605683386325836, + -0.009743058122694492, + 0.05777978524565697, + 0.08672703057527542, + -0.01718573272228241, + -0.00951284822076559, + -0.044255468994379044, + -0.09024734795093536, + 0.05528480187058449, + -0.0391538143157959, + 0.08561825007200241, + 0.04492386803030968, + -0.020393267273902893, + 0.1072118803858757, + 0.006132496986538172, + 0.026425933465361595, + -0.061918579041957855, + -0.009826728142797947, + 0.03627658635377884, + 0.0687282383441925, + -0.11699320375919342, + -0.03933601453900337, + 0.0048781465739011765, + 0.00863227155059576, + -0.0027903656009584665, + 0.012056820094585419, + 0.05353269726037979, + 0.023276688531041145, + 0.018112661316990852, + -0.07971055805683136, + 0.013795309700071812, + -0.10655240714550018, + -0.07264188677072525, + -0.03917001187801361, + -0.048284098505973816, + -0.0007066698744893074, + 0.07883720099925995, + -0.012125194072723389, + 0.003237518249079585, + -0.035836875438690186, + -0.06985735893249512, + -0.08264351636171341, + 0.061692140996456146, + 0.07784304767847061, + -0.01511172205209732, + 0.03541022911667824, + 0.02296164073050022, + -0.050339046865701675, + 0.019817473366856575, + 0.04740717262029648, + 0.13291172683238983, + -0.047311920672655106, + 0.023881183937191963, + -0.07386672496795654, + 0.10570187866687775, + 0.1119840145111084, + -0.08409196883440018, + -0.07879561930894852, + 0.025941869243979454, + -0.044020798057317734, + 0.024145582690835, + -0.06075059622526169, + -0.021853962913155556, + 0.02493392489850521, + -0.03968885540962219, + -0.08674146980047226, + -0.10423794388771057, + 0.08893847465515137, + -0.08463059365749359, + -0.023387346416711807, + -0.08728238940238953, + 0.039996951818466187, + 0.042412009090185165, + 0.030743541195988655, + -0.06090109050273895, + 0.012743172235786915, + 0.054827190935611725, + -0.04240451008081436, + -0.01562053058296442, + 0.05694739520549774, + -0.005967938341200352, + -0.1200098916888237, + -0.02897501550614834, + -0.05907841771841049, + 0.08186513185501099, + -0.07347573339939117, + 0.15074819326400757, + -0.03388827666640282, + -0.06125997006893158, + -0.06807532906532288, + 0.01246599294245243, + 0.019586147740483284, + 0.03979422524571419, + 0.051129817962646484, + 0.08657147735357285, + 0.02677091769874096, + -0.03884980082511902, + 0.11124187707901001, + 0.014219792559742928, + 0.02706090174615383, + -0.053942833095788956, + -0.017855612561106682, + -0.04901871457695961, + 0.028953639790415764, + -0.007471634075045586, + -0.12662649154663086, + 0.017938710749149323, + 0.046976376324892044, + -0.01961124874651432, + 0.028681958094239235, + 0.11557317525148392, + 0.04550383612513542, + -0.10988728702068329 + ] + }, + "p244_071.wav": { + "name": "p244", + "embedding": [ + 0.05807351693511009, + 0.0887608751654625, + -0.018991809338331223, + 0.026218712329864502, + -0.06738467514514923, + 0.06312461942434311, + -0.11771702021360397, + 0.13595294952392578, + -0.044640056788921356, + 0.13572809100151062, + -0.07144707441329956, + 0.12897056341171265, + -0.021063080057501793, + -0.17505864799022675, + -0.035056471824645996, + 0.051293086260557175, + -0.055298082530498505, + -0.036122217774391174, + -0.04738318920135498, + -0.03124941885471344, + 0.036118894815444946, + 0.03986750915646553, + 0.030062025412917137, + 0.008247941732406616, + 0.030315328389406204, + 0.07848373055458069, + -0.0013130693696439266, + 0.040251947939395905, + 0.011462969705462456, + -0.07026667892932892, + -0.0469355434179306, + 0.09271174669265747, + -0.05489548295736313, + 0.00905666220933199, + 0.04792410135269165, + -0.011996923014521599, + 0.0028056292794644833, + -0.061709921807050705, + -0.02898849919438362, + 0.012501413002610207, + -0.044021159410476685, + 0.07473638653755188, + 0.03001815639436245, + -0.02070397138595581, + 0.030848098918795586, + 0.0298746507614851, + -0.008098583668470383, + -0.0543169341981411, + -0.10264801234006882, + 0.16388052701950073, + 0.06808345019817352, + -0.0044543808326125145, + -0.06020621582865715, + -0.06678085029125214, + 0.107156902551651, + -0.021159198135137558, + -0.11694003641605377, + -0.03393065929412842, + 0.07648836076259613, + 0.1490037739276886, + -0.04737032949924469, + -0.0404522530734539, + 0.027859574183821678, + 0.11551656574010849, + 0.05921501666307449, + 0.08507843315601349, + 0.08967580646276474, + 0.10563677549362183, + -0.02200581505894661, + 0.017706282436847687, + 0.06513924896717072, + 0.07775908708572388, + 0.07296648621559143, + -0.006723630242049694, + 0.03007356822490692, + -0.0008583361050114036, + -0.013761173002421856, + -0.004629965405911207, + -0.02577507123351097, + -0.012327159754931927, + -0.01200829353183508, + 0.009919436648488045, + 0.02142050862312317, + 0.015394649468362331, + -0.024856513366103172, + 0.07157839834690094, + 0.03046455793082714, + -0.012260248884558678, + 0.06340380758047104, + 0.025663509964942932, + 0.001453674165531993, + 0.06762465089559555, + -0.08565789461135864, + -0.08278287947177887, + 0.03236193209886551, + -0.0008894894272089005, + 0.02836447022855282, + 0.07022207230329514, + 0.048096250742673874, + -0.01548395212739706, + 0.12118487805128098, + 0.055480197072029114, + -0.00924451369792223, + 0.0221734456717968, + -0.09177523851394653, + 0.12997305393218994, + 0.0964130312204361, + -0.030925147235393524, + 0.04553816840052605, + -0.04472580552101135, + 0.08717553317546844, + 0.06115412712097168, + -0.14649495482444763, + -0.07435113191604614, + 0.020150555297732353, + 0.006237914320081472, + -0.015351386740803719, + 0.10890376567840576, + -0.025419116020202637, + 0.03974146023392677, + 0.11107337474822998, + -0.08194974064826965, + -0.04027193784713745, + -0.019799618050456047, + 0.04232291132211685, + -0.0882759541273117, + 0.056093111634254456, + 0.05033014714717865, + -0.00853983499109745, + 0.018487893044948578, + 0.08929496258497238, + -0.01683453470468521, + -0.018333125859498978, + 0.01930348202586174, + -0.04238429293036461, + 0.00946978572756052, + -0.015492500737309456, + -0.0059771365486085415, + 0.04728580266237259, + 0.04450833797454834, + 0.03942327946424484, + -0.007866519503295422, + -0.0298530962318182, + -0.11994849890470505, + 0.028765495866537094, + 0.027658436447381973, + 0.07270434498786926, + -0.00797295942902565, + -0.015379039570689201, + -0.03664929419755936, + -0.06578201055526733, + 0.015182415023446083, + -0.0008842225070111454, + 0.06897900998592377, + -0.030236070975661278, + 0.007262660190463066, + 0.09760522097349167, + 0.03429961949586868, + -0.004371834918856621, + -0.049546971917152405, + -0.03016752004623413, + 0.01798054948449135, + 0.056147199124097824, + -0.07348093390464783, + -0.07664106786251068, + -0.0060156118124723434, + 0.031485747545957565, + -0.02355564385652542, + 0.06153585761785507, + 0.0442175529897213, + 0.01591101847589016, + 0.027632173150777817, + -0.058986809104681015, + 0.008831396698951721, + -0.10336852073669434, + -0.06577182561159134, + -0.007753692101687193, + -0.02752024494111538, + -0.02377166412770748, + 0.07231250405311584, + 0.01875799521803856, + 0.05377378687262535, + -0.02304949425160885, + -0.07208409905433655, + -0.0737532526254654, + 0.05691802501678467, + 0.06316342949867249, + 0.0032272636890411377, + 0.03649712726473808, + 0.06256909668445587, + -0.01961454749107361, + 0.061703138053417206, + 0.06847445666790009, + 0.10836170613765717, + -0.021329190582036972, + 0.024009298533201218, + -0.06080351397395134, + 0.08838444948196411, + 0.06952297687530518, + -0.08604490756988525, + -0.08216174691915512, + -0.03451235219836235, + -0.06587493419647217, + 0.045420825481414795, + -0.019218463450670242, + 0.010467138141393661, + 0.028323298320174217, + 0.007349638268351555, + -0.09139257669448853, + -0.08464118093252182, + 0.0891350656747818, + -0.063229501247406, + -0.004910801537334919, + -0.08516650646924973, + 0.04788077995181084, + 0.10579688847064972, + 0.03687785565853119, + -0.01713266223669052, + -0.00036536407424136996, + 0.04605476185679436, + -0.03225358948111534, + 0.004635300952941179, + 0.04822668433189392, + 0.03494442254304886, + -0.10395854711532593, + -0.004747320432215929, + -0.07803529500961304, + 0.0534597747027874, + -0.04090527817606926, + 0.15619845688343048, + 0.005727827083319426, + -0.043876927345991135, + -0.07576988637447357, + 0.04942955821752548, + -0.026885464787483215, + 0.05324612185359001, + 0.046804629266262054, + 0.06528818607330322, + 0.041673608124256134, + -0.06905834376811981, + 0.11932535469532013, + 0.041629157960414886, + -0.04979165643453598, + -0.06603531539440155, + -0.05023183673620224, + -0.04068956524133682, + 0.019361453130841255, + 0.015713181346654892, + -0.0864185094833374, + -0.019584305584430695, + 0.020179200917482376, + -0.014209382236003876, + 0.06364451348781586, + 0.14248047769069672, + 0.06541594862937927, + -0.106376051902771 + ] + }, + "p244_063.wav": { + "name": "p244", + "embedding": [ + 0.03105643019080162, + 0.08554035425186157, + 0.02433938905596733, + 0.019092461094260216, + -0.0036414898931980133, + -0.01012413576245308, + -0.029033754020929337, + 0.04582410305738449, + 0.06644009798765182, + 0.02422577328979969, + -0.08776270598173141, + 0.0483083538711071, + -0.056201156228780746, + -0.11252660304307938, + 0.02410043217241764, + 0.021764587610960007, + -0.04266195371747017, + 0.002342715859413147, + -0.040058959275484085, + -0.022652525454759598, + -0.022885702550411224, + -0.020170196890830994, + 0.030278079211711884, + -0.021206647157669067, + -0.036231908947229385, + 0.027360834181308746, + -0.0344056710600853, + -0.011803285218775272, + -0.018552079796791077, + 0.009720159694552422, + -0.001115383580327034, + 0.023647086694836617, + -0.00857304222881794, + -0.013584845699369907, + 0.009184879250824451, + -0.02673809602856636, + -0.009676256217062473, + -0.04102008789777756, + -0.06477876752614975, + 0.04573163762688637, + -0.0870649516582489, + 0.03277049958705902, + 0.046226851642131805, + -0.08387885242700577, + 0.08200499415397644, + 0.015560347586870193, + -0.0662885382771492, + 0.0077109914273023605, + -0.10351966321468353, + 0.0825604498386383, + 0.02445063367486, + 0.012079034931957722, + -0.0478934645652771, + 0.032485127449035645, + 0.06814618408679962, + -0.009565731510519981, + -0.060235340148210526, + -0.03071798011660576, + 0.04650052636861801, + 0.012404244393110275, + 0.010495691560208797, + -0.0052714878693223, + -0.01747097261250019, + 0.010691734030842781, + 0.07982178032398224, + 0.030011223629117012, + 0.0594479963183403, + 0.10784439742565155, + -0.03956669941544533, + 0.02430770732462406, + 0.05397195741534233, + -0.01737232506275177, + 0.037402622401714325, + -0.014770830981433392, + -0.00738118588924408, + 0.000979708507657051, + -0.014488596469163895, + -0.029111109673976898, + 0.01994919404387474, + -0.013119641691446304, + 0.0511932335793972, + -0.02710065245628357, + 0.023998023942112923, + 0.010849249549210072, + -0.04423877224326134, + -0.009255893528461456, + 0.10118195414543152, + 0.06053862348198891, + 0.04538895934820175, + 0.04245872050523758, + -0.030890226364135742, + 0.08711840212345123, + -0.05158989876508713, + -0.07107601314783096, + -0.03224097192287445, + -0.022391056641936302, + -0.0006772801280021667, + 0.036936912685632706, + 0.03606313467025757, + -0.018891457468271255, + 0.08996282517910004, + -0.0126413032412529, + 0.004430259577929974, + 0.021129967644810677, + -0.05228395760059357, + 0.014107000082731247, + 0.049310408532619476, + -0.028827577829360962, + 0.02147824689745903, + 0.03756196051836014, + 0.07700464129447937, + 0.0568147674202919, + -0.011988703161478043, + 0.04279327020049095, + 0.012430463917553425, + 0.020698750391602516, + -0.0008149035274982452, + 0.10153654217720032, + 0.00040434766560792923, + 0.031080074608325958, + 0.14214791357517242, + -0.05370105803012848, + 0.02049648016691208, + 0.043775737285614014, + -0.031228037551045418, + -0.014731254428625107, + 0.040111713111400604, + 0.014631280675530434, + -0.0007974607869982719, + 0.013930161483585835, + 0.02547520026564598, + 0.019608493894338608, + 0.0004660021513700485, + -0.07362757623195648, + 0.008002600632607937, + 0.03063669241964817, + -0.006437936797738075, + -0.008299417793750763, + 0.04793029651045799, + 0.04554450511932373, + -0.0013055391609668732, + 0.027068475261330605, + -0.04203086346387863, + -0.0392727367579937, + 0.0451681949198246, + 0.004858033731579781, + 0.01825796253979206, + 0.037626806646585464, + -0.008093742653727531, + -0.0695081353187561, + -0.00869007408618927, + 0.07364516705274582, + -0.04527127742767334, + 0.05107257515192032, + 0.025569718331098557, + -0.03791782259941101, + 0.04115404188632965, + 0.024648400023579597, + 0.009502576664090157, + -0.03840293735265732, + -0.11246615648269653, + -0.017843477427959442, + 0.03647778928279877, + -0.09027460217475891, + -0.029078323394060135, + -0.06343092769384384, + -0.01789630390703678, + 0.01277280692011118, + -0.015472803264856339, + 0.06734797358512878, + -0.021008610725402832, + -0.03386368229985237, + -0.0638267919421196, + 0.015611624345183372, + -0.003619130700826645, + -0.09523309022188187, + 0.039222851395606995, + 0.009249047376215458, + 0.035757191479206085, + 0.054674141108989716, + -0.03741035610437393, + -0.008628038689494133, + -0.045913130044937134, + -0.06450282782316208, + 0.019198831170797348, + 0.037115760147571564, + -0.007926956750452518, + -0.012477781623601913, + 0.055236831307411194, + 0.06221051514148712, + -0.057778459042310715, + 0.018592093139886856, + -0.01754257269203663, + 0.06259797513484955, + -0.045437343418598175, + 0.010842733085155487, + 0.04513061046600342, + 0.04570592939853668, + 0.047213684767484665, + -0.030376357957720757, + -0.09519802778959274, + -0.04083241522312164, + -0.02832810766994953, + 0.014120924286544323, + 0.002846464514732361, + -0.012063547968864441, + 0.022236157208681107, + 0.0012738360092043877, + -0.018109116703271866, + -0.10475285351276398, + -0.015032557770609856, + 0.010158160701394081, + -0.011292430572211742, + -0.06401592493057251, + 0.00038685090839862823, + -0.02081780880689621, + 0.03182196617126465, + -0.021548328921198845, + 0.04672554135322571, + 0.015559805557131767, + 0.00895227026194334, + -0.02360260672867298, + 0.014144625514745712, + 0.05879434943199158, + 0.02050899714231491, + -0.060546405613422394, + -0.05004870146512985, + 0.058372870087623596, + 0.039183273911476135, + 0.0634753406047821, + 0.0581124909222126, + 0.024736538529396057, + -0.01376645639538765, + 0.03098839521408081, + -0.01460226345807314, + 0.027210760861635208, + 0.018743272870779037, + 0.03199074789881706, + 0.04323304444551468, + -0.008895537815988064, + 0.07203303277492523, + 0.03568592295050621, + -0.0032968265004456043, + -0.001707201823592186, + 0.018686160445213318, + -0.09120447933673859, + -0.04628748074173927, + 0.017872925847768784, + -0.045394644141197205, + 0.005250438116490841, + 0.015030574053525925, + 0.05049777776002884, + 0.003858765121549368, + 0.07143180072307587, + 0.04214390367269516, + -0.0038417577743530273 + ] + }, + "p244_013.wav": { + "name": "p244", + "embedding": [ + 0.04180122911930084, + 0.09214162826538086, + -0.023953890427947044, + 0.033022597432136536, + -0.05570778250694275, + 0.062306858599185944, + -0.12841181457042694, + 0.15746766328811646, + -0.02411716803908348, + 0.13524729013442993, + -0.06339174509048462, + 0.12076590955257416, + -0.041479554027318954, + -0.15628328919410706, + 0.0033186450600624084, + 0.05365518853068352, + -0.0064680688083171844, + -0.02130661904811859, + -0.024971408769488335, + -0.01502863597124815, + 0.027534110471606255, + 0.022711116820573807, + 0.011029191315174103, + -0.006697091739624739, + 0.03608196973800659, + 0.06516958773136139, + -0.018898561596870422, + 0.029230449348688126, + -0.005271849688142538, + -0.05269036814570427, + -0.027185529470443726, + 0.09689103066921234, + -0.07007506489753723, + 0.014870780520141125, + 0.05317511409521103, + -0.021288137882947922, + -0.031244633719325066, + -0.04405716806650162, + 0.0020173387601971626, + -0.02095952257514, + -0.049467217177152634, + 0.07526838034391403, + 0.01684637740254402, + -0.012001371011137962, + 0.03228865563869476, + 0.027417033910751343, + -0.010017581284046173, + -0.026068396866321564, + -0.10345882177352905, + 0.1320187747478485, + 0.054364752024412155, + 0.010060951113700867, + -0.09031840413808823, + -0.050685565918684006, + 0.088133804500103, + -0.005484725348651409, + -0.09754212200641632, + -0.04370247572660446, + 0.07120070606470108, + 0.13908639550209045, + -0.02591714821755886, + -0.037886153906583786, + 0.019719060510396957, + 0.09992881864309311, + 0.07219521701335907, + 0.08328386396169662, + 0.07846216857433319, + 0.12435492128133774, + -0.019095713272690773, + 0.016601845622062683, + 0.04097136855125427, + 0.060054175555706024, + 0.06731104850769043, + -0.0005042863776907325, + 0.009632173925638199, + -0.016460828483104706, + -0.007587812375277281, + -0.019918402656912804, + -0.03549594432115555, + -0.04073633253574371, + -0.010511688888072968, + 0.011776662431657314, + 0.02103639952838421, + 0.035723209381103516, + -0.014737311750650406, + 0.05293334648013115, + 0.07555471360683441, + -0.03248133510351181, + 0.07212894409894943, + 0.019678011536598206, + -0.0035595810040831566, + 0.06935756653547287, + -0.12128299474716187, + -0.06480127573013306, + 0.03666117787361145, + -0.004663382191210985, + 0.02658022567629814, + 0.07021257281303406, + 0.04215478524565697, + -0.0014582121511921287, + 0.1214357241988182, + 0.03208373486995697, + 0.007184488233178854, + 0.02348063886165619, + -0.08203645050525665, + 0.14015400409698486, + 0.07637452334165573, + -0.03448845446109772, + 0.052705369889736176, + -0.050920527428388596, + 0.052040498703718185, + 0.05532774329185486, + -0.1277979612350464, + -0.06570499390363693, + 0.007321244105696678, + 0.0015962962061166763, + -0.036100488156080246, + 0.1262112259864807, + 0.004486396908760071, + 0.04735985025763512, + 0.10633707046508789, + -0.10624785721302032, + -0.058018118143081665, + -0.005772040691226721, + 0.04285059869289398, + -0.07732734829187393, + 0.06460559368133545, + 0.05450254678726196, + -0.006709379609674215, + 0.03220319747924805, + 0.07729875296354294, + 0.002653898438438773, + 0.007862737402319908, + 0.017341790720820427, + -0.0407961905002594, + 0.009697271510958672, + -0.020843302831053734, + -0.0047683995217084885, + 0.021697912365198135, + 0.022755347192287445, + 0.07159145176410675, + -0.018902845680713654, + -0.0014484189450740814, + -0.11145545542240143, + 0.008788513019680977, + 0.044541746377944946, + 0.0721859261393547, + -0.0292716845870018, + -0.020181458443403244, + -0.02958027832210064, + -0.06776988506317139, + 0.008942861109972, + -0.0021678556222468615, + 0.06922096014022827, + -0.017078066244721413, + 0.006485714577138424, + 0.10922037065029144, + 0.047116126865148544, + 0.008538180962204933, + -0.07208286225795746, + -0.0340455062687397, + -0.0003438859130255878, + 0.058403000235557556, + -0.09053274244070053, + -0.07285749912261963, + -0.01625024899840355, + 0.028661159798502922, + -0.03577844426035881, + 0.07629077881574631, + 0.05391363427042961, + 0.036884114146232605, + 0.013693151995539665, + -0.04572390764951706, + 0.010387314483523369, + -0.07715493440628052, + -0.07679317891597748, + -0.0039046690799295902, + -0.016595548018813133, + -0.03808900713920593, + 0.07443471252918243, + 0.029606353491544724, + 0.06747093796730042, + -0.027109559625387192, + -0.049743857234716415, + -0.09094046801328659, + 0.043254464864730835, + 0.031138062477111816, + -0.03484842926263809, + 0.03799951449036598, + 0.057091549038887024, + -0.04655960202217102, + 0.03534773737192154, + 0.07292725145816803, + 0.0973801463842392, + -0.035579096525907516, + 0.020460793748497963, + -0.0753767341375351, + 0.08986330032348633, + 0.1107315644621849, + -0.07787105441093445, + -0.08640953153371811, + -0.039389558136463165, + -0.0650918260216713, + 0.027072690427303314, + -0.039555057883262634, + 0.004868770018219948, + 0.030602451413869858, + -0.00993249099701643, + -0.09708236902952194, + -0.09578721225261688, + 0.08067167550325394, + -0.07769184559583664, + 0.005996673833578825, + -0.0971374660730362, + 0.04981131851673126, + 0.06969193369150162, + 0.0295806135982275, + -0.034254394471645355, + -0.017549563199281693, + 0.05788266286253929, + -0.01689348928630352, + 0.02332819625735283, + 0.07809992879629135, + 0.0437905415892601, + -0.09219998121261597, + -0.013689766637980938, + -0.052776336669921875, + 0.0472794733941555, + -0.031283989548683167, + 0.15503309667110443, + 0.011733030900359154, + -0.04290162771940231, + -0.07679995894432068, + 0.03731664642691612, + -0.0027612466365098953, + 0.04682622104883194, + 0.02213919721543789, + 0.06984446942806244, + 0.04407970607280731, + -0.05545263737440109, + 0.12399067729711533, + 0.03447185084223747, + -0.03532817214727402, + -0.06159738823771477, + -0.07154671847820282, + -0.056981466710567474, + 0.02826017700135708, + -0.0011807818664237857, + -0.10187993943691254, + -0.015239959582686424, + 0.02550121769309044, + 0.008778824470937252, + 0.05148731917142868, + 0.1295362412929535, + 0.062025539577007294, + -0.10440461337566376 + ] + }, + "p244_422.wav": { + "name": "p244", + "embedding": [ + 0.04541833698749542, + 0.08458312600851059, + -0.023454783484339714, + 0.034486714750528336, + -0.06569331139326096, + 0.08166154474020004, + -0.10306773334741592, + 0.11541111022233963, + -0.06664577126502991, + 0.1469326764345169, + -0.0744980201125145, + 0.1275518238544464, + -0.02101374790072441, + -0.17484790086746216, + -0.03702579811215401, + 0.046783193945884705, + -0.04963590204715729, + -0.020609663799405098, + -0.05518731102347374, + -0.008572538383305073, + 0.05503934249281883, + 0.04530587047338486, + 0.03069922886788845, + -0.02644139900803566, + 0.029758132994174957, + 0.05602380633354187, + 0.01148210372775793, + 0.0443878248333931, + 0.021111946552991867, + -0.09415147453546524, + -0.05215606093406677, + 0.10799876600503922, + -0.042590439319610596, + 0.024378152564167976, + 0.04700938239693642, + 0.006542799063026905, + 0.007808975875377655, + -0.06589578837156296, + -0.02965022251009941, + 0.014180677011609077, + -0.044283993542194366, + 0.06340132653713226, + 0.018022162839770317, + -0.016951337456703186, + 0.03702714294195175, + 0.005523263942450285, + -0.026546133682131767, + -0.03932574391365051, + -0.09015718102455139, + 0.1703866869211197, + 0.05058049410581589, + -0.0029137905221432447, + -0.0669962540268898, + -0.09811115264892578, + 0.1144866794347763, + 0.0038611034397035837, + -0.13156317174434662, + -0.030452024191617966, + 0.06977283954620361, + 0.1672186404466629, + -0.019561922177672386, + -0.04077700898051262, + 0.020243890583515167, + 0.10603959113359451, + 0.033650953322649, + 0.091997429728508, + 0.07575692236423492, + 0.09621387720108032, + 0.0177758801728487, + 0.03607472777366638, + 0.060398396104574203, + 0.08784779906272888, + 0.05488348379731178, + -0.015069113112986088, + 0.03863956034183502, + 8.72766540851444e-05, + -0.02677016332745552, + 0.012962518259882927, + -0.028015250340104103, + -0.015588689595460892, + -0.005776535719633102, + 0.013448293320834637, + 0.030180932953953743, + 0.00013139439397491515, + -0.030962733551859856, + 0.056462615728378296, + 0.02322574146091938, + -0.012342063710093498, + 0.05526026338338852, + 0.046231746673583984, + 0.0170885156840086, + 0.059908606112003326, + -0.07249534130096436, + -0.12434734404087067, + 0.0189268309623003, + 0.012780689634382725, + 0.02083045430481434, + 0.06770552694797516, + 0.039627399295568466, + -0.01924307458102703, + 0.10678678005933762, + 0.04480630159378052, + 0.004858614411205053, + 0.026508526876568794, + -0.09574019908905029, + 0.10585805773735046, + 0.10635103285312653, + -0.00851711817085743, + 0.037962574511766434, + -0.05263345688581467, + 0.10930723696947098, + 0.07997693121433258, + -0.14693857729434967, + -0.09290163964033127, + 0.018383167684078217, + -0.00992563832551241, + -0.0005949775222688913, + 0.11755628883838654, + -0.018640587106347084, + 0.02285652421414852, + 0.10849317163228989, + -0.1019386574625969, + -0.04690127819776535, + -0.03197425231337547, + 0.038750652223825455, + -0.0705902948975563, + 0.06172307953238487, + 0.02591230720281601, + -0.012785526923835278, + -0.003375417785719037, + 0.07257199287414551, + -0.03204205259680748, + 0.016749585047364235, + 0.013025358319282532, + -0.05999693647027016, + 0.024329418316483498, + -0.04753658547997475, + -0.004451957996934652, + 0.07646813988685608, + 0.04985387995839119, + 0.05346887931227684, + -0.014890183694660664, + -0.03708735108375549, + -0.11680256575345993, + 0.02105340175330639, + 0.0380379743874073, + 0.04715924710035324, + -0.011000190861523151, + -0.01658296398818493, + -0.029534200206398964, + -0.08115171641111374, + 0.04553832486271858, + -0.016616538166999817, + 0.09122822433710098, + 0.0007307507330551744, + 0.0025862623006105423, + 0.09746529906988144, + 0.01971001923084259, + -0.011201451532542706, + -0.04757167771458626, + -0.05075792968273163, + 0.01659035123884678, + 0.04615657031536102, + -0.09459192305803299, + -0.06831562519073486, + -0.006062419153749943, + 0.005153947044163942, + -0.02177676372230053, + 0.03420368582010269, + 0.05226865038275719, + 0.01881447620689869, + 0.050769686698913574, + -0.06105195730924606, + 0.004163816571235657, + -0.12745454907417297, + -0.06377451866865158, + -0.01025293581187725, + -0.055922988802194595, + -0.008037387393414974, + 0.08714110404253006, + 0.010349174961447716, + 0.014007600955665112, + -0.019033897668123245, + -0.06697788834571838, + -0.06847860664129257, + 0.06912989914417267, + 0.054943978786468506, + 0.026518283411860466, + 0.050358060747385025, + 0.0540132150053978, + -0.01333160325884819, + 0.06103567034006119, + 0.06090788170695305, + 0.10781397670507431, + -0.008715350180864334, + 0.015866965055465698, + -0.07559799402952194, + 0.11775265634059906, + 0.08472425490617752, + -0.07624869793653488, + -0.10165652632713318, + -0.040690235793590546, + -0.07324263453483582, + 0.061560120433568954, + -0.0384230874478817, + -0.0031766362953931093, + 0.026019444689154625, + -0.0035079438239336014, + -0.10405293107032776, + -0.07224126160144806, + 0.09929147362709045, + -0.052750762552022934, + -0.030151432380080223, + -0.0856558158993721, + 0.0414586067199707, + 0.09855987131595612, + 0.043341271579265594, + -0.03213178738951683, + 0.01844930462539196, + 0.07316546142101288, + -0.06688538193702698, + 0.00011240405001444742, + 0.03938597813248634, + 0.006907101254910231, + -0.0756271556019783, + -0.001042670919559896, + -0.0773075670003891, + 0.05040000006556511, + -0.07534458488225937, + 0.15776090323925018, + -0.02002742886543274, + -0.06325960159301758, + -0.07376483827829361, + 0.07833678275346756, + -0.019484220072627068, + 0.03947871923446655, + 0.05043086037039757, + 0.0736052617430687, + 0.03817128762602806, + -0.08851241320371628, + 0.11513213813304901, + 0.03098997473716736, + -0.02461356669664383, + -0.0550229586660862, + -0.04713433235883713, + -0.039751727133989334, + 0.019792353734374046, + -0.003768391441553831, + -0.07755888998508453, + 0.004410837776958942, + 0.022804660722613335, + 0.0012865568278357387, + 0.052790626883506775, + 0.13204078376293182, + 0.055120617151260376, + -0.09807848185300827 + ] + }, + "p244_349.wav": { + "name": "p244", + "embedding": [ + 0.08540891110897064, + 0.058250218629837036, + -0.012711707502603531, + 0.010913546197116375, + -0.02710677497088909, + 0.047694385051727295, + -0.124262735247612, + 0.09863723814487457, + 0.014355293475091457, + 0.10110175609588623, + -0.09421265125274658, + 0.08098426461219788, + 0.0105329230427742, + -0.13205063343048096, + -0.01683698408305645, + 0.02207673154771328, + -0.029234804213047028, + -0.011948125436902046, + -0.04459882900118828, + -0.02646157145500183, + 0.026781944558024406, + 0.05505087971687317, + 0.02969173714518547, + -0.028447303920984268, + 0.011826466768980026, + 0.047629959881305695, + 0.017836060374975204, + 0.030722439289093018, + 0.014373427256941795, + -0.019731616601347923, + -0.010528886690735817, + 0.09963102638721466, + -0.04415366053581238, + -0.001232187612913549, + 0.039728373289108276, + 0.012414194643497467, + 0.009998729452490807, + -0.08705490082502365, + -0.01833634451031685, + 0.02830887958407402, + -0.028729084879159927, + 0.08252543210983276, + 0.05862324684858322, + -0.022307252511382103, + 0.016683407127857208, + 0.03279050439596176, + -0.002284369198605418, + -0.05492330715060234, + -0.09989649057388306, + 0.18919336795806885, + 0.04894007369875908, + 0.009525242261588573, + -0.08266939967870712, + -0.028124278411269188, + 0.06982710212469101, + -0.01275735255330801, + -0.0371808260679245, + -0.02138627879321575, + 0.041986849159002304, + 0.1095627099275589, + -0.01373211294412613, + -0.056958239525556564, + 0.021656101569533348, + 0.08172081410884857, + 0.017425764352083206, + 0.04288431629538536, + 0.09412529319524765, + 0.11123912781476974, + -0.02966512367129326, + 0.020743966102600098, + 0.058004822582006454, + 0.06339043378829956, + 0.06896809488534927, + -0.015414141118526459, + 0.052423786371946335, + -0.011913759633898735, + -0.03395117074251175, + 0.0209461972117424, + -0.025050632655620575, + -0.03093639388680458, + 0.039338916540145874, + -0.007561462931334972, + 0.029064171016216278, + 0.057590946555137634, + -0.08605705201625824, + 0.03638822212815285, + 0.017086384817957878, + 0.011760610155761242, + 0.06750627607107162, + 0.017311399802565575, + 0.02671937644481659, + 0.030181407928466797, + -0.06563965976238251, + -0.0993516594171524, + 0.04442785307765007, + -0.004955397453159094, + 0.04499300569295883, + 0.04858509823679924, + 0.042385734617710114, + -0.025584038347005844, + 0.10022928565740585, + 0.03266632556915283, + -0.02193629741668701, + 0.0061015053652226925, + -0.06473364681005478, + 0.11887188255786896, + 0.12711608409881592, + -0.0025452065747231245, + 0.021680917590856552, + -0.059343963861465454, + 0.05260802060365677, + 0.03638646379113197, + -0.11722113192081451, + -0.04973914474248886, + 0.03135228902101517, + 0.040642909705638885, + 0.03446685150265694, + 0.10699605196714401, + -0.015008322894573212, + 0.030230766162276268, + 0.06898210942745209, + -0.07640878856182098, + -0.030434798449277878, + 0.0009467800846323371, + 0.0144145917147398, + -0.06574729084968567, + 0.01355134230107069, + 0.02871314063668251, + -0.011575380340218544, + -0.03486074507236481, + 0.07009276002645493, + -0.007925139740109444, + 0.0034914433490484953, + -0.02545424923300743, + 0.022998027503490448, + 0.06354846805334091, + -0.004102764185518026, + -0.024549957364797592, + 0.024519838392734528, + 0.042749207466840744, + 0.03245797008275986, + 0.03332022204995155, + -0.0439610593020916, + -0.13172119855880737, + 0.0188288651406765, + 0.0338139608502388, + 0.05362704396247864, + -0.03647772967815399, + -0.04939907789230347, + -0.052901264280080795, + -0.049329664558172226, + 0.02882273867726326, + -0.00579820154234767, + 0.03838112950325012, + 0.032717250287532806, + -0.029096631333231926, + 0.09640783071517944, + -0.008007340133190155, + -0.0013703161384910345, + -0.02021518163383007, + -0.015804030001163483, + 0.03113214671611786, + 0.04158685728907585, + -0.047837287187576294, + -0.0662064403295517, + 0.001580905169248581, + -0.003128214506432414, + -0.022414717823266983, + -0.011353373527526855, + 0.03561578691005707, + -0.01849271170794964, + 0.028660621494054794, + -0.09624510258436203, + 0.00881007220596075, + -0.11597937345504761, + -0.04871399328112602, + 0.013783697038888931, + -0.0026244446635246277, + 0.009489571675658226, + 0.07479843497276306, + -0.0009749364107847214, + 0.04950837418437004, + -0.04377108812332153, + -0.06294356286525726, + -0.02207951806485653, + 0.06318537890911102, + 0.0710412859916687, + -0.007000393234193325, + 0.03631216287612915, + 0.04741024971008301, + 0.019181789830327034, + 0.038925912231206894, + 0.06555253267288208, + 0.08878957480192184, + -0.018117303028702736, + -0.016201388090848923, + -0.014072326943278313, + 0.11503031104803085, + 0.0418236069381237, + -0.05530969426035881, + -0.05751148983836174, + -0.015735020861029625, + -0.0547705814242363, + 0.02074793539941311, + -0.0044256290420889854, + 0.020954011008143425, + 0.02769204042851925, + 0.005833758972585201, + -0.08535482734441757, + -0.05664476007223129, + 0.03385096788406372, + -0.03923582285642624, + -0.009810577146708965, + -0.07013048976659775, + 0.04954316467046738, + 0.0873485654592514, + 0.04243951290845871, + -0.02536085806787014, + -0.027801496908068657, + -0.013402402400970459, + -0.06600793451070786, + -0.05737914890050888, + -0.01806335151195526, + 0.03436524048447609, + -0.10731378197669983, + 0.016827620565891266, + -0.053686272352933884, + 0.04782935231924057, + -0.04589269682765007, + 0.10324844717979431, + 0.017581896856427193, + -0.054719746112823486, + -0.06637399643659592, + 0.025925684720277786, + -0.0315590426325798, + 0.04078938066959381, + 0.05448117107152939, + -0.009613792411983013, + 0.02574933134019375, + -0.08420148491859436, + 0.09530393779277802, + 0.03864520788192749, + -0.03345613181591034, + -0.06460580229759216, + -0.028467323631048203, + -0.020778222009539604, + 0.03040323406457901, + 0.01706008054316044, + -0.04301028698682785, + -0.003909021615982056, + 0.02198522910475731, + -0.02423027902841568, + 0.0343119315803051, + 0.09058769047260284, + 0.04472474008798599, + -0.096591055393219 + ] + }, + "p244_298.wav": { + "name": "p244", + "embedding": [ + 0.0783153623342514, + 0.04486734792590141, + -0.03558306023478508, + 0.022604607045650482, + -0.009468507021665573, + 0.017579689621925354, + -0.1448608785867691, + 0.09454167634248734, + -0.010854416526854038, + 0.09866137057542801, + -0.08153223991394043, + 0.07843281328678131, + 0.005925238132476807, + -0.1220955103635788, + -0.022552667185664177, + 0.04597381874918938, + -0.003340328112244606, + -0.0003471421077847481, + -0.05397111549973488, + 0.002467063721269369, + 0.013333065435290337, + 0.05771683529019356, + 0.02660403586924076, + -0.044326797127723694, + 0.024812573567032814, + 0.034753669053316116, + -0.0035345316864550114, + 0.015890037640929222, + -0.004101975355297327, + 0.02681456133723259, + 0.03311733528971672, + 0.10977243632078171, + -0.02149936929345131, + -0.0034764958545565605, + 0.03331802785396576, + 0.03492150083184242, + -0.017748737707734108, + -0.10053358227014542, + -0.006926415022462606, + -0.01801607757806778, + -0.0489988848567009, + 0.0686577633023262, + 0.05895029753446579, + -0.02180906943976879, + 0.026191536337137222, + -0.006195317953824997, + -0.020656749606132507, + -0.06300091743469238, + -0.11293397098779678, + 0.1733628511428833, + 0.010862482711672783, + 0.061366863548755646, + -0.12394580990076065, + -0.013097794726490974, + 0.058895308524370193, + -0.003234550356864929, + -0.035752613097429276, + -0.07516436278820038, + 0.041185539215803146, + 0.15332958102226257, + -0.00027687568217515945, + -0.04494452476501465, + 0.030546151101589203, + 0.09159915149211884, + 0.0491509884595871, + 0.04296111315488815, + 0.10902520269155502, + 0.09630227833986282, + 0.009345638565719128, + 0.04124707728624344, + 0.0423772856593132, + 0.038456812500953674, + 0.02613762952387333, + -0.025760576128959656, + 0.02131805010139942, + -0.0170186348259449, + -0.04316383972764015, + 0.006306009367108345, + -0.020465513691306114, + -0.05683024600148201, + 0.010927809402346611, + -0.004765205085277557, + 0.02153712511062622, + 0.07214502990245819, + -0.0712527334690094, + 0.012937184423208237, + 0.06659115105867386, + -0.0567387230694294, + 0.06816545128822327, + 0.06045649200677872, + 0.0018454701639711857, + -0.011259032413363457, + -0.051385410130023956, + -0.10195751488208771, + 0.008097678422927856, + 0.0003301333636045456, + 0.024047812446951866, + 0.02176598086953163, + 0.03327599912881851, + -0.019416116178035736, + 0.08248540014028549, + -0.008758355863392353, + 0.0007432121783494949, + -0.013671837747097015, + -0.06470733880996704, + 0.1097816675901413, + 0.11527879536151886, + -0.014673611149191856, + 0.013993321917951107, + -0.04987140744924545, + -0.01517330389469862, + 0.07111507654190063, + -0.09263627976179123, + -0.050832316279411316, + 0.055070918053388596, + 0.009448597207665443, + 0.04152873903512955, + 0.11458305269479752, + 0.039318718016147614, + 0.013146838173270226, + 0.06974419206380844, + -0.10073088109493256, + -0.06746795773506165, + -0.005582009442150593, + 0.02534407004714012, + -0.060782793909311295, + 0.028066866099834442, + 0.06245073676109314, + 0.0065525611862540245, + -0.044309474527835846, + 0.05730561167001724, + 0.015031469985842705, + 0.018446076661348343, + -0.05952349305152893, + 0.02918555960059166, + 0.09582728147506714, + -0.012697113677859306, + -0.03522792458534241, + 0.03355211764574051, + 0.04821883514523506, + 0.03775961697101593, + 0.032743506133556366, + -0.02601339854300022, + -0.11340316385030746, + -0.005859032738953829, + 0.08502575010061264, + 0.054179828613996506, + -0.05415614694356918, + -0.027379555627703667, + -0.0590558797121048, + -0.03867267817258835, + 0.021324295550584793, + -0.013695325702428818, + 0.060611508786678314, + 0.03834274411201477, + -0.007643892429769039, + 0.11931717395782471, + -0.04876114800572395, + 0.03685218095779419, + -0.01933169923722744, + 0.03703108802437782, + 0.0433482751250267, + 0.037367917597293854, + -0.04029347747564316, + -0.07037602365016937, + 0.0024285546969622374, + 0.010377885773777962, + -0.022722166031599045, + -0.00872567854821682, + 0.029660653322935104, + -0.021610666066408157, + 0.0057167490012943745, + -0.08704697340726852, + 0.023718245327472687, + -0.11360763013362885, + -0.012324569746851921, + 0.034791380167007446, + -0.037861838936805725, + 0.0048785824328660965, + 0.0975361168384552, + 0.030398281291127205, + 0.02705276757478714, + -0.03759271651506424, + -0.10856139659881592, + -0.0357990600168705, + 0.059820253401994705, + 0.08740724623203278, + -0.049302391707897186, + -0.005269133485853672, + 0.0003327936865389347, + 0.026355082169175148, + -0.012095901183784008, + 0.055634740740060806, + 0.06892257183790207, + -0.040863633155822754, + -0.07823437452316284, + -0.0519237220287323, + 0.11780060827732086, + 0.06420783698558807, + -0.07833965122699738, + -0.053266607224941254, + -0.009619832038879395, + -0.045403797179460526, + -0.012149225920438766, + -0.01588856428861618, + 0.013819454237818718, + 0.062056638300418854, + -0.05083910748362541, + -0.14196781814098358, + -0.10112844407558441, + 0.03565697371959686, + -0.05574406683444977, + -0.0027304021641612053, + -0.07112748175859451, + 0.02799573540687561, + 0.046260084956884384, + 0.0164666585624218, + -0.014325562864542007, + -0.03065035678446293, + -0.039814673364162445, + -0.10131550580263138, + -0.04837861657142639, + -0.010866813361644745, + 0.015578078106045723, + -0.0769130066037178, + 5.078595131635666e-05, + -0.056136466562747955, + 0.08581120520830154, + -0.049361880868673325, + 0.11011503636837006, + 0.008481668308377266, + -0.06276503205299377, + -0.09720103442668915, + -0.01675868220627308, + -0.0160441305488348, + 0.06392525881528854, + 0.047983601689338684, + 0.021097492426633835, + 0.029247887432575226, + -0.0867052972316742, + 0.06496419757604599, + 0.07208430767059326, + -0.0005047102458775043, + -0.07958857715129852, + -0.0334341861307621, + -0.020782334730029106, + 0.040011532604694366, + -0.016867419704794884, + -0.007381606847047806, + 0.0317048579454422, + 0.025594156235456467, + -0.02639741078019142, + 0.053974978625774384, + 0.06923414766788483, + 0.0375593937933445, + -0.09193511307239532 + ] + }, + "p244_061.wav": { + "name": "p244", + "embedding": [ + 0.010503833182156086, + 0.07383543252944946, + -0.016542084515094757, + 0.012019818648695946, + -0.04151562973856926, + -0.020791402086615562, + -0.11385171115398407, + 0.06947172433137894, + -0.03628823161125183, + 0.09727707505226135, + -0.05810140073299408, + 0.09898405522108078, + -0.057805225253105164, + -0.10939942300319672, + -0.022850457578897476, + 0.036566466093063354, + -0.0534239336848259, + -0.026703137904405594, + -0.013698762282729149, + -0.06186290830373764, + 0.03921116888523102, + 0.020700370892882347, + 0.0695619136095047, + -0.05865180492401123, + -0.009902337566018105, + 0.08839148283004761, + 0.03088214434683323, + 0.023921171203255653, + 0.018199335783720016, + -0.06475703418254852, + 0.013161275535821915, + 0.03705478832125664, + 0.0007729083299636841, + -0.004861840978264809, + 0.01599164865911007, + 0.01235099509358406, + -0.009464501403272152, + 0.006483843550086021, + 0.01098025031387806, + 0.04673808813095093, + -0.05720778927206993, + 0.0529603511095047, + 0.002980251330882311, + -0.04305103421211243, + 0.06909830868244171, + -0.054810021072626114, + -0.02551485039293766, + 0.04205501079559326, + -0.06361868232488632, + 0.09851347655057907, + 0.06359386444091797, + 0.03271337226033211, + -0.05402759462594986, + -0.0011928901076316833, + 0.09332353621721268, + -0.02536720782518387, + -0.13511063158512115, + -0.033564016222953796, + 0.03294172137975693, + 0.10094667971134186, + -0.02611926943063736, + -0.023370955139398575, + 0.026872577145695686, + 0.047649916261434555, + 0.026842184364795685, + 0.0445898212492466, + 0.1110273227095604, + 0.04294699802994728, + 0.02638382837176323, + -0.016651874408125877, + 0.03973395377397537, + 0.08609452843666077, + 0.0077682435512542725, + 0.003985174931585789, + 0.022044053301215172, + -0.05459677800536156, + -0.0046559590846300125, + -0.031538791954517365, + -0.008538326248526573, + -0.05782307684421539, + -0.0910380557179451, + -0.01406343188136816, + 0.0035837190225720406, + -0.02373800054192543, + -0.003686077892780304, + 0.014293171465396881, + 0.04337034747004509, + -0.03884441405534744, + 0.05448584258556366, + 0.04829871654510498, + -0.024612754583358765, + -0.006182447075843811, + -0.017899438738822937, + -0.03282230347394943, + -0.05259358137845993, + 0.020701829344034195, + 0.06864460557699203, + 0.024832911789417267, + 0.025403568521142006, + 0.07236802577972412, + 0.06778188049793243, + 0.04925151541829109, + 0.0033265934325754642, + -0.025807548314332962, + -0.08680272102355957, + 0.05969361588358879, + 0.09965786337852478, + -0.02880961075425148, + 0.040903665125370026, + -0.016247164458036423, + 0.014681282453238964, + -0.011436587199568748, + -0.014758501201868057, + -0.04151485487818718, + -0.01939372718334198, + 0.013222092762589455, + 0.016262739896774292, + 0.07775906473398209, + 0.00627591647207737, + 0.02597089484333992, + 0.10190996527671814, + -0.04874615743756294, + -0.06950819492340088, + -0.0687536895275116, + 0.04424936696887016, + -0.05221402272582054, + 0.06808855384588242, + 0.0745353102684021, + 0.029006335884332657, + 0.03840961679816246, + 0.0714312195777893, + 0.0459996834397316, + 0.030135516077280045, + -0.023774681612849236, + -0.05253520980477333, + 0.007193325087428093, + -0.011947530321776867, + 0.0031251590698957443, + 0.12023049592971802, + 0.034215740859508514, + 0.11386828124523163, + 0.021032562479376793, + 0.019968319684267044, + -0.05792011693120003, + -0.008707597851753235, + 0.04271010681986809, + -0.004224861040711403, + -0.05100340023636818, + -0.05411183089017868, + -0.027316758409142494, + -0.05744759365916252, + -0.016456816345453262, + -0.04456716775894165, + 0.0972992479801178, + -0.011926674284040928, + -0.0006774088833481073, + 0.10733026266098022, + 0.012175491079688072, + -0.04454914107918739, + -0.05713679641485214, + -0.027568140998482704, + -0.019110843539237976, + 0.03704819083213806, + -0.13727952539920807, + -0.07754117250442505, + -0.057516977190971375, + 0.04801909625530243, + 0.009561143815517426, + 0.04344985634088516, + 0.06921812891960144, + -0.0227131936699152, + 0.01063104160130024, + 0.01005251519382, + 0.04331858456134796, + -0.03098268434405327, + -0.07494499534368515, + -0.016767974942922592, + -0.07594367861747742, + -0.045961350202560425, + 0.09026035666465759, + -0.01376914419233799, + 0.059039242565631866, + -0.010324150323867798, + -0.0952242985367775, + -0.07355916500091553, + 0.05698993057012558, + 0.007061205338686705, + -0.0304392259567976, + 0.030798139050602913, + 0.026353420689702034, + -0.05475950613617897, + 0.02391527034342289, + 0.022022049874067307, + 0.06968840956687927, + -0.0952993631362915, + 0.0018919302383437753, + -0.06795518100261688, + 0.025494331493973732, + 0.09529565274715424, + -0.06826399266719818, + -0.04033336043357849, + -0.08081422746181488, + -0.04762030020356178, + 0.04861374944448471, + -0.030655009672045708, + -0.01004729513078928, + 0.006124161183834076, + -0.031252987682819366, + -0.088677778840065, + -0.10544636845588684, + 0.07235821336507797, + -0.024289406836032867, + -0.0010815453715622425, + -0.040017180144786835, + 0.007286242675036192, + 0.009337343275547028, + 0.025132909417152405, + -0.02728910744190216, + 0.04744695872068405, + 0.0029693227261304855, + -0.03418800234794617, + 0.028190884739160538, + 0.05699702724814415, + 0.08039338886737823, + 0.03288767486810684, + -0.04579857736825943, + -0.08449687063694, + 0.033274490386247635, + -0.0187789648771286, + 0.0910448208451271, + 0.004878797102719545, + -0.035113222897052765, + -0.02455628290772438, + 0.012131564319133759, + -0.03887154906988144, + 0.04349634796380997, + 0.06392054259777069, + 0.06324782967567444, + 0.011202742345631123, + -0.061195697635412216, + 0.07890881597995758, + 0.049680642783641815, + -0.0033997371792793274, + -0.04919392615556717, + -0.008915805257856846, + -0.038483768701553345, + 0.011282350867986679, + -0.013656266033649445, + -0.06140866130590439, + 0.05136915296316147, + -0.04518759250640869, + 0.0378573015332222, + 0.07140222936868668, + 0.07738418877124786, + 0.056116946041584015, + -0.03015414997935295 + ] + }, + "p244_036.wav": { + "name": "p244", + "embedding": [ + 0.039696451276540756, + 0.07900166511535645, + -0.03502984344959259, + 0.001488078385591507, + -0.04796702787280083, + -0.007704870775341988, + -0.11515000462532043, + 0.11792300641536713, + -0.006122824735939503, + 0.12819629907608032, + -0.05480644106864929, + 0.126910999417305, + -0.03232337534427643, + -0.0947665125131607, + 0.014001257717609406, + 0.0387929305434227, + -0.026176713407039642, + -0.021547775715589523, + 0.02614351361989975, + -0.03343471884727478, + 0.04482840374112129, + 0.03203378617763519, + 0.04191741347312927, + -0.03329453244805336, + 0.014557702466845512, + 0.08128000795841217, + -0.006069991737604141, + -0.010209326632320881, + 0.0017964591970667243, + -0.04160566255450249, + 0.006297718733549118, + 0.05584024265408516, + -0.029551396146416664, + 0.0172466691583395, + 0.033043429255485535, + -0.006160011515021324, + -0.0294638741761446, + -0.03317053243517876, + 0.002704608254134655, + 0.011645063757896423, + -0.054771557450294495, + 0.07515023648738861, + 0.010668998584151268, + -0.06582660228013992, + 0.03622075170278549, + -0.019955553114414215, + -0.021793009713292122, + 0.01973731815814972, + -0.05598358064889908, + 0.13411536812782288, + 0.04202825948596001, + 0.05436961352825165, + -0.08185459673404694, + 0.009210711345076561, + 0.06650005280971527, + 0.0002536596730351448, + -0.086894690990448, + -0.029942207038402557, + 0.024715105071663857, + 0.09667101502418518, + -0.014627203345298767, + -0.054063230752944946, + 0.04994397982954979, + 0.06874984502792358, + 0.03454384580254555, + 0.03129365295171738, + 0.10296916961669922, + 0.08128376305103302, + -0.004657566547393799, + 0.014649923890829086, + 0.03687429428100586, + 0.09047475457191467, + 0.04890032485127449, + -0.0023312317207455635, + 0.007084229029715061, + -0.030093371868133545, + -0.026402411982417107, + -0.04439539834856987, + -0.0024288874119520187, + -0.059110499918460846, + -0.08051137626171112, + -0.01982063613831997, + 0.01331713330000639, + 0.03629866987466812, + 0.009104162454605103, + 0.00870920717716217, + 0.07833587378263474, + -0.05017024278640747, + 0.04939065873622894, + 0.033726178109645844, + -0.01456803735345602, + 0.009120665490627289, + -0.09196499735116959, + -0.050080977380275726, + -0.005661372095346451, + -0.014132464304566383, + 0.07505285739898682, + 0.06012466549873352, + 0.048706162720918655, + 0.04341353103518486, + 0.08402121067047119, + 0.03331269696354866, + 0.007629400584846735, + -0.040091097354888916, + -0.07908697426319122, + 0.12384488433599472, + 0.10022184252738953, + -0.06589409708976746, + 0.032079536467790604, + -0.032655153423547745, + 0.006819132715463638, + -0.004454446956515312, + -0.07505501806735992, + -0.04442037642002106, + -0.010505639016628265, + 0.020856546238064766, + 0.021828463301062584, + 0.10846095532178879, + 0.0320945680141449, + 0.05220886319875717, + 0.0971718430519104, + -0.08202537894248962, + -0.08927089720964432, + -0.04340739548206329, + 0.039753615856170654, + -0.097220778465271, + 0.09664259105920792, + 0.0757996141910553, + 0.03085213340818882, + 0.03681663051247597, + 0.07658296823501587, + 0.04002885892987251, + 0.03453121706843376, + -0.04865395277738571, + -0.00394897535443306, + 0.006425143219530582, + -0.028068479150533676, + 0.015059907920658588, + 0.07034169882535934, + 0.019843172281980515, + 0.10434575378894806, + 0.037197694182395935, + 0.009082874283194542, + -0.09497249126434326, + 0.020384294912219048, + 0.06136561930179596, + 0.01703318953514099, + -0.043061237782239914, + -0.06168171018362045, + -0.009724212810397148, + -0.056085407733917236, + -0.03192100673913956, + 0.006132389418780804, + 0.058645397424697876, + -0.008427866734564304, + 0.023568224161863327, + 0.11412405967712402, + 0.020760629326105118, + -0.005317517556250095, + -0.03144900128245354, + -0.019740229472517967, + -0.01343044824898243, + 0.05508983135223389, + -0.11658359318971634, + -0.10302060842514038, + -0.047438159584999084, + 0.028975151479244232, + 0.0046210698783397675, + 0.0543365553021431, + 0.08943154662847519, + -0.006475461646914482, + 0.005902215372771025, + -0.008919097483158112, + 0.025085752829909325, + -0.06045353785157204, + -0.08726175129413605, + -0.020090853795409203, + -0.04674510657787323, + -0.04142329469323158, + 0.0830049067735672, + -0.00825763214379549, + 0.07419272512197495, + -0.02403843402862549, + -0.06681835651397705, + -0.07453533262014389, + 0.03593842312693596, + 0.015746906399726868, + -0.06332405656576157, + 0.0056026391685009, + 0.055119022727012634, + -0.026377443224191666, + -0.0183092150837183, + 0.014950566925108433, + 0.10145875811576843, + -0.0856412798166275, + -0.014706939458847046, + -0.07549495995044708, + 0.07272934913635254, + 0.1018032357096672, + -0.07302296161651611, + -0.05466547980904579, + -0.08435799181461334, + -0.05623549595475197, + 0.00935031846165657, + -0.03244401514530182, + -0.0003330435138195753, + 0.014386954717338085, + -0.04248708486557007, + -0.08264987170696259, + -0.11466667056083679, + 0.03702050447463989, + -0.03772899881005287, + 0.002540057757869363, + -0.06888452917337418, + 0.022443683817982674, + 0.01781071349978447, + 0.02222575806081295, + -0.03691492974758148, + 0.024909881874918938, + -0.014810662716627121, + -0.021678956225514412, + 0.010898753069341183, + 0.053276997059583664, + 0.07110464572906494, + -0.015498161315917969, + -0.060730189085006714, + -0.0829211175441742, + 0.04473395645618439, + -0.046907782554626465, + 0.10802876949310303, + -0.01765967160463333, + -0.05644248425960541, + -0.0660654753446579, + -0.023356230929493904, + -0.006721619050949812, + 0.03198873996734619, + 0.06324706971645355, + 0.05243811756372452, + 0.02564788982272148, + -0.06232444941997528, + 0.08388499170541763, + 0.07024085521697998, + 0.013579219579696655, + -0.06624753028154373, + -0.049042217433452606, + -0.030707955360412598, + 0.023042382672429085, + -0.00033287331461906433, + -0.063911572098732, + 0.05250997096300125, + -0.01413326058536768, + 0.03689776360988617, + 0.0767374336719513, + 0.07504931092262268, + 0.04817044734954834, + -0.08827077597379684 + ] + }, + "p244_137.wav": { + "name": "p244", + "embedding": [ + 0.07323402166366577, + 0.04701566323637962, + -0.03407219424843788, + -0.012443309649825096, + -0.052713777869939804, + 0.05072305351495743, + -0.1369348168373108, + 0.083346888422966, + -0.029676249250769615, + 0.1251402050256729, + -0.030146399512887, + 0.10617455840110779, + 0.0004471093416213989, + -0.14881309866905212, + -0.05102582275867462, + 0.026798482984304428, + -0.06987975537776947, + -0.019881077110767365, + -0.08919119834899902, + -0.04895108938217163, + 0.028941020369529724, + 0.03658512607216835, + 0.06155029684305191, + -0.081780806183815, + 0.04772460460662842, + 0.054173119366168976, + 0.0011837980709969997, + 0.03629201650619507, + -0.005539597012102604, + -0.0769825354218483, + -0.007821701467037201, + 0.07083937525749207, + -0.07476836442947388, + -0.015395007096230984, + 0.032972149550914764, + -0.010023701936006546, + -0.01503636222332716, + -0.07573936134576797, + -0.012586395256221294, + 0.048920415341854095, + -0.022296112030744553, + 0.09835036098957062, + 0.033725909888744354, + -0.045888371765613556, + 0.01916206255555153, + 0.0004385198699310422, + 0.000893506221473217, + -0.04467454180121422, + -0.09139126539230347, + 0.1573576033115387, + 0.011268718168139458, + 0.027591580525040627, + -0.09971460700035095, + -0.055402517318725586, + 0.0914253517985344, + -0.0517367348074913, + -0.09656410664319992, + -0.04162157326936722, + 0.015442490577697754, + 0.12979888916015625, + -0.049116406589746475, + -0.04449981451034546, + 0.04587629809975624, + 0.053686946630477905, + 0.08161471784114838, + 0.0282039325684309, + 0.12598221004009247, + 0.09968308359384537, + -0.006171942222863436, + 0.0403103269636631, + 0.05260257422924042, + 0.06849610805511475, + 0.029213018715381622, + 0.006409008987247944, + 0.042101070284843445, + -0.022989381104707718, + -0.012170197442173958, + -0.04559522494673729, + -0.02409525215625763, + -0.024511262774467468, + 0.017215341329574585, + 0.016802771016955376, + 0.04515107348561287, + 0.05234968662261963, + -0.06451591849327087, + 0.03960376977920532, + 0.04394268989562988, + -0.04873551055788994, + 0.0624396950006485, + 0.06528867781162262, + 0.02384638786315918, + 0.041767656803131104, + -0.09128506481647491, + -0.09978775680065155, + 0.012783454731106758, + 0.010417213663458824, + 0.030834242701530457, + 0.01819121278822422, + 0.04190941900014877, + -0.02935558743774891, + 0.08560215681791306, + 0.07491399347782135, + -0.02291879989206791, + 0.01884651929140091, + -0.06593538820743561, + 0.11619137227535248, + 0.10952077805995941, + -0.02838185988366604, + 0.016298631206154823, + -0.04978831112384796, + 0.03408537805080414, + 0.054956674575805664, + -0.0895986557006836, + -0.0922883152961731, + 0.037310995161533356, + -0.014090909622609615, + 0.02099648304283619, + 0.12910661101341248, + -0.008333265781402588, + 0.024744190275669098, + 0.08971239626407623, + -0.06946422159671783, + -0.026211461052298546, + 0.0037510537076741457, + 0.03790688514709473, + -0.04257971793413162, + 0.03757815062999725, + 0.05519421398639679, + 0.005291100591421127, + 0.008724266663193703, + 0.08928349614143372, + 0.004024004563689232, + 0.00590260187163949, + -0.010149299167096615, + 0.00730150006711483, + 0.07397693395614624, + 0.015930086374282837, + -0.034333303570747375, + 0.09817247837781906, + 0.07742985337972641, + 0.04726383090019226, + 0.010349077172577381, + -0.038224589079618454, + -0.1082267239689827, + 0.018956340849399567, + 0.025141257792711258, + 0.05967985838651657, + -0.047370050102472305, + 0.005567436572164297, + -0.060044705867767334, + -0.06234858185052872, + 0.04380882903933525, + 0.007086709141731262, + 0.08184448629617691, + 0.007063056342303753, + -0.025985410436987877, + 0.12440069764852524, + -0.0010097082704305649, + 0.025082135573029518, + 0.004870504140853882, + 0.0020038411021232605, + 0.01643371768295765, + 0.059934407472610474, + -0.050406575202941895, + -0.0577012374997139, + -0.029048709198832512, + 0.01412963680922985, + -0.00985980499535799, + 0.06265769153833389, + 0.08610108494758606, + -0.00437965476885438, + 0.02930818684399128, + -0.06474530696868896, + 0.018012654036283493, + -0.06760760396718979, + -0.004771389067173004, + 0.011742699891328812, + -0.07271106541156769, + -0.05105860158801079, + 0.09905054420232773, + 0.008971092291176319, + 0.034508515149354935, + -0.07160092890262604, + -0.10660918056964874, + -0.04197307676076889, + 0.027732256799936295, + 0.056387901306152344, + -0.025404997169971466, + -0.00295102596282959, + 0.0391593798995018, + 0.026075223460793495, + 0.038801200687885284, + 0.08246750384569168, + 0.06608185172080994, + -0.045813582837581635, + -0.03664502501487732, + -0.04121950641274452, + 0.14050422608852386, + 0.0377991683781147, + -0.04623603820800781, + -0.0512462854385376, + -0.021551743149757385, + -0.05791545659303665, + 0.002480804920196533, + -0.0013288995251059532, + 0.03373163938522339, + 0.06470980495214462, + 0.0011280989274382591, + -0.09180772304534912, + -0.09985987842082977, + 0.06479770690202713, + -0.0658077672123909, + -0.0053179021924734116, + -0.06633488833904266, + 0.009957075119018555, + 0.07213683426380157, + 0.031549811363220215, + -0.007009602151811123, + 0.005476254969835281, + -0.012819638475775719, + -0.04475744068622589, + 0.014464026317000389, + 0.04359792545437813, + 0.01910415105521679, + -0.05417538434267044, + -0.030229883268475533, + -0.0734155997633934, + 0.06711634993553162, + -0.028289776295423508, + 0.11958017945289612, + -0.0030914433300495148, + -0.03456159681081772, + -0.06999552249908447, + 0.03639760613441467, + -0.06454180181026459, + 0.07271772623062134, + 0.09131985902786255, + 0.06695115566253662, + 0.045604173094034195, + -0.059106260538101196, + 0.09006214886903763, + 0.05803312361240387, + -0.042356938123703, + -0.08483725786209106, + -0.05335173010826111, + -0.024826427921652794, + 0.03546859323978424, + 0.026413235813379288, + -0.04585723206400871, + 0.057613927870988846, + 0.033775992691516876, + -0.013522894121706486, + 0.02359507791697979, + 0.0853094831109047, + 0.06051453948020935, + -0.07958009839057922 + ] + }, + "p244_064.wav": { + "name": "p244", + "embedding": [ + 0.008073003962635994, + 0.08285491913557053, + -0.028157172724604607, + 0.06573159992694855, + -0.0554533526301384, + -0.02481571026146412, + -0.08226963877677917, + 0.05811410769820213, + 0.01850319467484951, + 0.07986201345920563, + -0.0282637607306242, + 0.09572188556194305, + -0.032036565244197845, + -0.12506912648677826, + 0.006754709407687187, + 0.006025562062859535, + 0.02327914535999298, + 0.016029734164476395, + 0.016798008233308792, + -0.024326611310243607, + -0.02280670404434204, + 0.0013512670993804932, + -0.04506585747003555, + 0.009816441684961319, + -0.015753760933876038, + 0.009264109656214714, + -0.043210867792367935, + 0.020358748733997345, + -0.024531273171305656, + -0.022729191929101944, + -0.00346355140209198, + 0.028613679111003876, + -0.03164613991975784, + -0.015002998523414135, + 0.007012704387307167, + -0.008996935561299324, + -0.018092893064022064, + -0.021090079098939896, + -0.04626358300447464, + -0.04103551059961319, + -0.07599478960037231, + 0.009250197559595108, + 0.04560007527470589, + -0.058144696056842804, + 0.03333031386137009, + 0.021891143172979355, + -0.02973495051264763, + -0.024465270340442657, + -0.041638825088739395, + 0.07266988605260849, + 0.025158818811178207, + 0.07875867187976837, + -0.04601132124662399, + -0.022743722423911095, + 0.11506137996912003, + 0.021386640146374702, + 0.002506434917449951, + -0.020643513649702072, + -0.0041916705667972565, + 0.08226695656776428, + 0.02678918093442917, + 0.01671762950718403, + 0.041184768080711365, + 0.04360993206501007, + 0.02105596289038658, + 0.04237477481365204, + 0.054725222289562225, + 0.0538550466299057, + -0.015155108645558357, + 0.02800930291414261, + 0.06236835569143295, + 0.02802305854856968, + -0.009396242909133434, + 0.004089821130037308, + -0.012259213253855705, + 0.04935428872704506, + -0.0016519725322723389, + 0.040427833795547485, + -0.025010839104652405, + 0.0007421821355819702, + 0.0003476180136203766, + 0.02041826955974102, + 0.016220219433307648, + -0.040934011340141296, + -0.050862230360507965, + -0.028849074617028236, + 0.07131238281726837, + 0.025313757359981537, + 0.020388789474964142, + 0.012514823116362095, + 0.021862730383872986, + 0.011575905606150627, + -0.06464927643537521, + -0.037729039788246155, + 0.014027376659214497, + -0.012412749230861664, + 0.038013506680727005, + 0.009691670536994934, + 0.007364816963672638, + -0.0003252946771681309, + 0.04953968524932861, + -0.019130192697048187, + 0.03827701136469841, + 0.018272604793310165, + -0.04982520267367363, + -0.0194728784263134, + 0.022449076175689697, + 0.018033284693956375, + 0.05674382671713829, + 0.005432464182376862, + 0.05533427372574806, + 0.0824822336435318, + -0.050678398460149765, + -0.01896451786160469, + 0.038239363580942154, + 0.0547531358897686, + -0.030329927802085876, + 0.10726689547300339, + -0.004390609450638294, + 0.036274608224630356, + 0.05998578295111656, + 0.005488622933626175, + -0.035031065344810486, + -0.012115872465074062, + 0.014282059855759144, + -0.019235748797655106, + 0.06082679331302643, + 0.01668960601091385, + -0.01851656287908554, + -0.04215440899133682, + 0.047648318111896515, + -0.023941755294799805, + -0.02541382610797882, + -0.005890370812267065, + 0.03238661214709282, + -0.032256510108709335, + 0.05578060448169708, + -0.05678391084074974, + 0.01750776544213295, + 0.05285665765404701, + -0.023921141400933266, + 0.00218186411075294, + 0.007912974804639816, + -0.05279063805937767, + 0.031054846942424774, + 0.011985421180725098, + 0.016678936779499054, + 0.08475092053413391, + -0.056048065423965454, + -0.09518636763095856, + -0.04432906210422516, + 0.018017835915088654, + -0.02686208114027977, + 0.07699866592884064, + 0.07470855861902237, + 0.03309299424290657, + 0.026293829083442688, + -0.005313487723469734, + 0.014934655278921127, + 0.014928527176380157, + -0.11858431994915009, + 0.0025797300040721893, + 0.018775252625346184, + 0.012170355767011642, + -0.018563110381364822, + 0.008147730492055416, + 0.0044998470693826675, + -0.031025545671582222, + -0.01478531863540411, + 0.02612193301320076, + 0.029462894424796104, + 0.047810621559619904, + -0.13897770643234253, + 0.009146193973720074, + -0.05225842818617821, + -0.052055828273296356, + 0.022394906729459763, + 0.0005108844488859177, + -0.006495494395494461, + 0.015602083876729012, + 0.02254321239888668, + -0.01711433008313179, + -0.03826015070080757, + -0.04095692187547684, + -0.015238618478178978, + 0.004249135032296181, + 0.006023623049259186, + 0.002120460383594036, + -0.012878527864813805, + 0.0017192941159009933, + 0.022670254111289978, + 0.0069946590811014175, + 0.013229338452219963, + 0.06178675591945648, + -0.02049620822072029, + 0.008565949276089668, + 0.04393836110830307, + 0.1151999831199646, + 0.037574078887701035, + -0.07984953373670578, + -0.07641103863716125, + 0.013078344985842705, + -0.050771456211805344, + 0.03375804424285889, + -0.009442889131605625, + 0.029631327837705612, + -0.006700159981846809, + 0.009019304066896439, + 0.039935238659381866, + -0.11725741624832153, + 0.0012909658253192902, + -0.02296554110944271, + -0.05315922945737839, + -0.003896240144968033, + -0.004889799281954765, + 0.049395281821489334, + 0.006247611716389656, + -0.031720440834760666, + -0.06393852829933167, + 0.020570116117596626, + 0.018650364130735397, + 0.018874062225222588, + 0.06854256242513657, + 0.03835316002368927, + -0.009198036044836044, + -0.002077037002891302, + -0.022908898070454597, + 0.034073200076818466, + 0.006593231111764908, + 0.044001415371894836, + 0.011244134046137333, + -0.012179341167211533, + -0.07697649300098419, + 0.04772772639989853, + 0.021452302113175392, + 0.048440106213092804, + -0.029465805739164352, + 0.017431490123271942, + 0.03159251809120178, + -0.019094113260507584, + 0.11066094040870667, + 0.03656743839383125, + -0.01628035679459572, + -0.012127243913710117, + -0.009914837777614594, + -0.03556737303733826, + 0.047875288873910904, + 0.03907151520252228, + -0.04478989169001579, + -0.017625361680984497, + 0.06298432499170303, + 0.038594506680965424, + 0.07337473332881927, + 0.0686052069067955, + 0.05127863958477974, + 0.030096881091594696 + ] + }, + "p244_116.wav": { + "name": "p244", + "embedding": [ + 0.026206303387880325, + 0.0870557427406311, + -0.031800564378499985, + 0.03391792252659798, + -0.046698667109012604, + 0.08534678816795349, + -0.16658273339271545, + 0.13364169001579285, + -0.03994257003068924, + 0.13041645288467407, + -0.042279601097106934, + 0.0682499036192894, + -0.04535885527729988, + -0.1648472249507904, + -0.0011063702404499054, + 0.06920823454856873, + -0.029199155047535896, + -0.05062545835971832, + -0.041224405169487, + -0.006878157611936331, + 0.00823267363011837, + 0.03437193110585213, + -0.01196223869919777, + -0.01792658120393753, + 0.04224570095539093, + 0.052962690591812134, + -0.01605040766298771, + 0.026313968002796173, + -0.02262882888317108, + -0.04536876082420349, + -0.006420617923140526, + 0.09725066274404526, + -0.05911702662706375, + -0.0040521943010389805, + 0.03993048146367073, + 0.0038983169943094254, + -0.0029922418761998415, + -0.07162532210350037, + 0.0008092247880995274, + -0.00086886843200773, + -0.0504748560488224, + 0.09489797055721283, + 0.05033232271671295, + 0.014569630846381187, + 0.013880239799618721, + 0.02584090270102024, + -0.002059028949588537, + -0.060770247131586075, + -0.10385298728942871, + 0.17202679812908173, + 0.06102000176906586, + -0.0003504775813780725, + -0.05936667323112488, + -0.06881854683160782, + 0.08519840985536575, + 0.021892044693231583, + -0.09799736738204956, + -0.09496836364269257, + 0.08372001349925995, + 0.16316553950309753, + -0.02758689969778061, + -0.03166946396231651, + 0.0193328894674778, + 0.12465889751911163, + 0.05687375366687775, + 0.07553974539041519, + 0.05244285985827446, + 0.12438154220581055, + 0.012407002970576286, + -0.012851450592279434, + 0.05765034630894661, + 0.03135097399353981, + 0.0207177996635437, + 0.005379687529057264, + 0.03346143662929535, + -0.027114737778902054, + -0.013732386752963066, + -0.009842348285019398, + -0.01835620030760765, + -0.03842465952038765, + 0.008297521620988846, + 0.03200364112854004, + 0.016961023211479187, + 0.061113446950912476, + -0.01410306990146637, + 0.02622094377875328, + 0.0455208346247673, + -0.03591391071677208, + 0.09161274135112762, + 0.010056025348603725, + 0.0018795325886458158, + 0.049939267337322235, + -0.08770015835762024, + -0.05661017447710037, + 0.049550555646419525, + 0.01573294587433338, + 0.008452299050986767, + 0.0465301051735878, + 0.01902879774570465, + -0.01893848180770874, + 0.13692250847816467, + 0.0063081649132072926, + -0.005656961817294359, + 0.02673012763261795, + -0.08552642166614532, + 0.15257230401039124, + 0.028820201754570007, + -0.009973833337426186, + 0.0537065714597702, + -0.05198920518159866, + 0.014364134520292282, + 0.045994147658348083, + -0.14206749200820923, + -0.0830812156200409, + 0.05460478365421295, + 0.0251338891685009, + -0.05105239525437355, + 0.1529836803674698, + 0.03480285778641701, + 0.026686403900384903, + 0.11159271001815796, + -0.11851374804973602, + -0.07005777955055237, + 0.009028308093547821, + 0.06546522676944733, + -0.06755473464727402, + 0.028424758464097977, + 0.08120614290237427, + -0.03927188739180565, + 0.030569370836019516, + 0.07677066326141357, + 0.020035814493894577, + 0.025743741542100906, + 0.004887916147708893, + -0.026523731648921967, + 0.04686063155531883, + -0.015688950195908546, + -0.008490651845932007, + 0.015294539742171764, + 0.018724041059613228, + 0.06374606490135193, + -0.029174381867051125, + -0.03510284423828125, + -0.1314167082309723, + -0.01545157190412283, + 0.024854429066181183, + 0.09983950108289719, + -0.027889424934983253, + 0.004549515899270773, + -0.04875047132372856, + -0.07016092538833618, + -0.007065870799124241, + -0.0117063969373703, + 0.10565370321273804, + 4.535890184342861e-05, + -0.015448075719177723, + 0.10956123471260071, + 0.03712017089128494, + 0.016568314284086227, + -0.05109051614999771, + -0.021917346864938736, + 0.01675349846482277, + 0.04576878249645233, + -0.06387738138437271, + -0.05400563403964043, + 0.0003287973813712597, + 0.04667960852384567, + -0.008596284314990044, + 0.06346990168094635, + 0.03464750200510025, + 0.046771030873060226, + 0.005699501372873783, + -0.053875576704740524, + 0.022539041936397552, + -0.04357587918639183, + -0.03636154532432556, + 0.011438531801104546, + 0.004058046266436577, + -0.07187315821647644, + 0.10332147777080536, + 0.028414800763130188, + 0.06598779559135437, + -0.025210976600646973, + -0.04689367115497589, + -0.06525686383247375, + 0.04820077866315842, + 0.04841648414731026, + -0.052594710141420364, + 0.019348938018083572, + 0.04825716093182564, + -0.019123604521155357, + 0.008446082472801208, + 0.07624737918376923, + 0.09311379492282867, + -0.02453649416565895, + -0.004148264415562153, + -0.0666135847568512, + 0.10110478103160858, + 0.07015637308359146, + -0.0842842161655426, + -0.04048370569944382, + -0.005877007730305195, + -0.06628985702991486, + 0.010554682463407516, + -0.04181568697094917, + 0.02767411433160305, + 0.019909244030714035, + -0.019710995256900787, + -0.10630884766578674, + -0.10019253939390182, + 0.056776415556669235, + -0.09683962166309357, + 0.007209221366792917, + -0.07556276023387909, + 0.045698381960392, + 0.09420475363731384, + 0.07326105237007141, + -0.028026890009641647, + -0.04498768597841263, + 0.049674808979034424, + -0.03841136395931244, + 0.041742339730262756, + 0.09235819429159164, + 0.047276757657527924, + -0.10901515185832977, + 0.014002731069922447, + -0.06860703974962234, + 0.053145959973335266, + -0.038949355483055115, + 0.1533702313899994, + 0.03870934993028641, + -0.039243437349796295, + -0.09733320772647858, + 0.016834599897265434, + -0.033303290605545044, + 0.05384053662419319, + -0.004111143760383129, + 0.06296724081039429, + 0.08997665345668793, + -0.01389042753726244, + 0.1130770742893219, + 0.042675409466028214, + -0.016742032021284103, + -0.052376970648765564, + -0.06528536975383759, + -0.049585774540901184, + 0.05759061127901077, + 0.0047167628072202206, + -0.10972248017787933, + -0.014114035293459892, + 0.05395267903804779, + 0.014432688243687153, + 0.07244445383548737, + 0.1318526566028595, + 0.07724472880363464, + -0.11529317498207092 + ] + }, + "p244_216.wav": { + "name": "p244", + "embedding": [ + 0.005050513427704573, + 0.03837194666266441, + 0.005418553948402405, + 0.055746566504240036, + -0.050176482647657394, + -0.014155305922031403, + -0.07702336460351944, + 0.07438337802886963, + 0.008550649508833885, + 0.0816316157579422, + -0.05169358104467392, + 0.10954662412405014, + -0.03955812007188797, + -0.13056251406669617, + 0.004008145071566105, + 0.02883581444621086, + -0.014740677550435066, + 0.0015757757937535644, + 0.0018871304346248507, + -0.08889325708150864, + 0.03142702579498291, + 0.041287243366241455, + 0.10917645692825317, + -0.04542539641261101, + -0.010929431766271591, + 0.08688090741634369, + 0.019439389929175377, + 0.038496531546115875, + 0.006717031821608543, + -0.06696125864982605, + -0.017160862684249878, + 0.046849410980939865, + -0.033362679183483124, + -0.034051209688186646, + 0.017070777714252472, + -0.03092655912041664, + -0.017797861248254776, + 0.023451250046491623, + -0.005198194645345211, + 0.03770628944039345, + -0.06574392318725586, + 0.061571091413497925, + 0.004475114401429892, + -0.0355054996907711, + 0.06688785552978516, + -0.0336417555809021, + -0.04801703989505768, + 0.060571085661649704, + -0.09510727971792221, + 0.1043686494231224, + 0.08565127104520798, + -0.006477054208517075, + -0.05472811311483383, + -0.03031889721751213, + 0.06610922515392303, + -0.02342265658080578, + -0.10264177620410919, + -0.02378898113965988, + 0.03450561687350273, + 0.0723593682050705, + -0.019676538184285164, + -0.03702038154006004, + 0.02346557006239891, + 0.0585310272872448, + 0.03663717210292816, + 0.027803806588053703, + 0.08438434451818466, + 0.056078698486089706, + -0.03789341077208519, + 0.023495744913816452, + 0.013664104044437408, + 0.08113572746515274, + 0.047856103628873825, + 0.012783223763108253, + 0.007815196178853512, + -0.022541433572769165, + -0.0013378288131207228, + -0.024215053766965866, + -0.01741562969982624, + -0.033809274435043335, + -0.026879753917455673, + -0.04576704651117325, + 0.02017657272517681, + -0.023189907893538475, + -0.004947920795530081, + 0.02598796784877777, + 0.055610816925764084, + 0.0063562532886862755, + 0.038349419832229614, + 0.023640867322683334, + -0.025260746479034424, + 0.06014727056026459, + -0.053290169686079025, + -0.004640375263988972, + -0.028023306280374527, + -0.011708798818290234, + 0.048023246228694916, + 0.05608978867530823, + 0.03543567657470703, + -0.005607225000858307, + 0.08987357467412949, + 0.05642988905310631, + -0.002444575307890773, + 0.006879492662847042, + -0.08711465448141098, + 0.05988682433962822, + 0.12077635526657104, + -0.020973442122340202, + 0.05374884232878685, + -0.011692593805491924, + 0.05550151318311691, + 0.018598265945911407, + -0.056220751255750656, + -0.016013164073228836, + -0.056455619633197784, + 0.015841584652662277, + 0.014797080308198929, + 0.08970996737480164, + -0.011381561867892742, + 0.034239333122968674, + 0.12139938771724701, + -0.05488577485084534, + -0.05754374712705612, + -0.052062734961509705, + 0.027437981218099594, + -0.08927728980779648, + 0.03894751891493797, + 0.05005880817770958, + 0.0023588924668729305, + 0.033137399703264236, + 0.06590083986520767, + -0.0010675042867660522, + 0.015768742188811302, + 0.0010590851306915283, + -0.055256910622119904, + -0.010855491273105145, + -0.030183736234903336, + 0.007347285747528076, + 0.10568894445896149, + 0.02490714192390442, + 0.0780995711684227, + 0.012859819456934929, + 0.021017147228121758, + -0.08323003351688385, + 0.0134481992572546, + 0.02905542403459549, + -0.010488798841834068, + -0.0433945469558239, + -0.05058302730321884, + -0.024740807712078094, + -0.0648549348115921, + 0.04095859080553055, + -0.016681663691997528, + 0.04605083912611008, + -0.039368972182273865, + -0.017245754599571228, + 0.09159683436155319, + 0.018118780106306076, + -0.03911110758781433, + -0.03853283077478409, + -0.04979106783866882, + -0.013144823722541332, + 0.024024493992328644, + -0.14373517036437988, + -0.07408706098794937, + -0.07393872737884521, + 0.05194120854139328, + 0.03831130266189575, + 0.03749269247055054, + 0.08431114256381989, + -0.040897566825151443, + -0.015654532238841057, + -0.0046629635617136955, + 0.0029440242797136307, + -0.0365060493350029, + -0.07701775431632996, + -0.028207622468471527, + -0.07155455648899078, + -0.023582246154546738, + 0.05362280458211899, + -0.01084048580378294, + 0.05410457402467728, + -0.042400434613227844, + -0.06520429253578186, + -0.08439745754003525, + 0.017195893451571465, + 0.007366342004388571, + -0.011369919404387474, + 0.06681790947914124, + 0.07491111010313034, + -0.07899633049964905, + 0.08052435517311096, + 0.016803188249468803, + 0.08231620490550995, + -0.08814448118209839, + 0.016920704394578934, + -0.064263254404068, + 0.01689610630273819, + 0.13715393841266632, + -0.04987175390124321, + -0.07743959873914719, + -0.0721811056137085, + -0.07619887590408325, + 0.08832260221242905, + -0.019805550575256348, + -0.047732871025800705, + 0.033461734652519226, + 0.003329787403345108, + -0.051791250705718994, + -0.09765299409627914, + 0.09773095697164536, + -0.013897779397666454, + -0.013289999216794968, + -0.044936250895261765, + 0.015601358376443386, + -0.004568840377032757, + 0.03622458875179291, + -0.02787911705672741, + 0.034366000443696976, + 0.027753150090575218, + 0.0070157740265131, + 0.013481042347848415, + 0.06054134666919708, + 0.07139156758785248, + -0.01143829058855772, + -0.07067518681287766, + -0.06704524159431458, + 0.03562408685684204, + -0.00837002508342266, + 0.05289943143725395, + 0.0018538765143603086, + -0.015500355511903763, + -0.030728653073310852, + 0.05081811174750328, + -0.013012362644076347, + 0.04631124436855316, + 0.09559158980846405, + 0.060394078493118286, + -0.0059871673583984375, + -0.07505792379379272, + 0.100405752658844, + 0.02583060786128044, + -0.032470159232616425, + -0.047120265662670135, + 0.013522963039577007, + -0.04196019470691681, + -0.014827296137809753, + 0.02837984822690487, + -0.08888687938451767, + 0.024314193055033684, + -0.008817065507173538, + 0.005312844179570675, + 0.005563404411077499, + 0.0775805339217186, + 0.036363132297992706, + -0.04132216423749924 + ] + }, + "p244_326.wav": { + "name": "p244", + "embedding": [ + 0.05647645890712738, + 0.07903605699539185, + -0.004121718928217888, + 0.0019325204193592072, + -0.049081914126873016, + 0.038870666176080704, + -0.17135155200958252, + 0.15737147629261017, + -0.027951620519161224, + 0.13319209218025208, + -0.05079863220453262, + 0.11452760547399521, + 0.0022181151434779167, + -0.20568430423736572, + -0.011569373309612274, + 0.05091247707605362, + -0.03208211064338684, + -0.03403328359127045, + -0.02147858217358589, + -0.04425549507141113, + 0.04236111789941788, + 0.05011980980634689, + 0.02916918322443962, + 0.0011963311117142439, + 0.022949669510126114, + 0.06001188978552818, + 0.00044258800335228443, + 0.03015023097395897, + -0.0040679313242435455, + -0.0348568819463253, + -0.03410216420888901, + 0.09089004993438721, + -0.03857149928808212, + -0.013817212544381618, + 0.04207659885287285, + -0.03440301492810249, + -0.00778503343462944, + -0.0743178129196167, + -0.029665200039744377, + 0.013971026986837387, + -0.04077344760298729, + 0.0804327130317688, + 0.03363679349422455, + -0.004382612183690071, + 0.061580829322338104, + 0.006162175443023443, + -0.01832357794046402, + -0.04825931787490845, + -0.11529036611318588, + 0.151228129863739, + 0.08180355280637741, + 0.009078157134354115, + -0.07779133319854736, + -0.044410672038793564, + 0.10451439023017883, + -0.01526350062340498, + -0.09601058810949326, + -0.03452193737030029, + 0.06472700834274292, + 0.14778700470924377, + -0.031788721680641174, + -0.03927962854504585, + 0.054874569177627563, + 0.11718955636024475, + 0.0390625074505806, + 0.07301878184080124, + 0.09164915978908539, + 0.09407659620046616, + -0.039267901331186295, + 0.012233918532729149, + 0.03642059117555618, + 0.05842337757349014, + 0.0138986362144351, + -0.027262387797236443, + 0.02389431558549404, + 0.004721355624496937, + -0.020589269697666168, + -0.00980563648045063, + -0.014243396930396557, + -0.007784364279359579, + -0.00384308397769928, + 0.00722363218665123, + -0.003884421195834875, + 0.033975034952163696, + -0.04485015198588371, + 0.04347986727952957, + 0.031524911522865295, + 0.0033555100671947002, + 0.0774640440940857, + 0.024448400363326073, + 0.03461942449212074, + 0.06385176628828049, + -0.07538408041000366, + -0.07524696737527847, + 0.0495070219039917, + 0.009413221850991249, + 0.010432607494294643, + 0.07613398879766464, + 0.037244245409965515, + -0.031528618186712265, + 0.12774954736232758, + 0.0625736266374588, + -0.02060304768383503, + 0.0313524454832077, + -0.09481717646121979, + 0.1129370629787445, + 0.09118568897247314, + -0.031262971460819244, + 0.06947764754295349, + -0.05978141352534294, + 0.05725526809692383, + 0.047938309609889984, + -0.12872180342674255, + -0.0648694857954979, + 0.0469001941382885, + 0.0385744608938694, + -0.008684594184160233, + 0.14922146499156952, + 0.011114565655589104, + 0.04434294253587723, + 0.10491957515478134, + -0.07646625488996506, + -0.06805442273616791, + -0.019770199432969093, + 0.07203864306211472, + -0.08883814513683319, + 0.07083283364772797, + 0.07794561982154846, + -0.01631910912692547, + 0.016206717118620872, + 0.06730979681015015, + -0.011082170531153679, + 0.010066624730825424, + -0.014413034543395042, + -0.023694686591625214, + 0.02766743116080761, + -0.02585180476307869, + -0.005592920817434788, + 0.020905254408717155, + 0.031094839796423912, + 0.03175541013479233, + 0.001233138027600944, + -0.029830869287252426, + -0.12184932082891464, + 0.010508127510547638, + 0.01802799664437771, + 0.07637999951839447, + -0.015570408664643764, + -0.029947910457849503, + -0.04754545912146568, + -0.06413667649030685, + -0.016748948022723198, + -0.015571588650345802, + 0.06889452040195465, + -0.015651628375053406, + 0.011496755294501781, + 0.08591806143522263, + 0.04651890695095062, + 0.014679962769150734, + -0.01411455124616623, + -0.04216204211115837, + 0.01124353613704443, + 0.049257613718509674, + -0.07660109549760818, + -0.0668872818350792, + -0.03297725319862366, + 0.039453309029340744, + -0.0196552574634552, + 0.040541429072618484, + 0.041925571858882904, + 0.015136521309614182, + 0.020173950120806694, + -0.10130882263183594, + 0.04977213591337204, + -0.10537748038768768, + -0.06801893562078476, + -0.0028433194383978844, + 0.006322941742837429, + -0.023407211527228355, + 0.08147451281547546, + 0.016330068930983543, + 0.05409392714500427, + -0.030439695343375206, + -0.06312473863363266, + -0.0732867568731308, + 0.03937825188040733, + 0.08545289933681488, + -0.022739550098776817, + 0.04721982777118683, + 0.048184268176555634, + -0.029300507158041, + 0.046093251556158066, + 0.054711490869522095, + 0.0953032597899437, + -0.011328532360494137, + 0.02001500129699707, + -0.06193692237138748, + 0.08260598033666611, + 0.08038806170225143, + -0.0836341604590416, + -0.08670918643474579, + -0.024671923369169235, + -0.06764788180589676, + 0.03385632485151291, + -0.0028617912903428078, + 0.015496130101382732, + 0.029228515923023224, + 0.00102093699388206, + -0.10297652333974838, + -0.08681529015302658, + 0.06565834581851959, + -0.05890960618853569, + -7.892772555351257e-05, + -0.08781218528747559, + 0.052917592227458954, + 0.1129583939909935, + 0.020902689546346664, + -0.026498064398765564, + -0.05960073322057724, + 0.021304255351424217, + -0.008080968633294106, + 0.012233974412083626, + 0.04004616290330887, + 0.05252767726778984, + -0.11715561151504517, + 0.008802996948361397, + -0.081198550760746, + 0.0649220198392868, + -0.043660055845975876, + 0.1275567263364792, + 0.02994544804096222, + -0.04751164838671684, + -0.1005706787109375, + 0.037465181201696396, + 0.010169055312871933, + 0.04947688430547714, + 0.01565558835864067, + 0.0547947995364666, + 0.04639807343482971, + -0.07283086329698563, + 0.08394279330968857, + 0.04525873064994812, + -0.04548519104719162, + -0.07351969927549362, + -0.017760049551725388, + -0.023599453270435333, + 0.039142947643995285, + 0.0019877138547599316, + -0.08344948291778564, + -0.036214396357536316, + 0.02449866198003292, + -0.008161312900483608, + 0.0730876475572586, + 0.12449346482753754, + 0.04325075075030327, + -0.14535921812057495 + ] + }, + "p244_419.wav": { + "name": "p244", + "embedding": [ + 0.06083516404032707, + 0.11662372946739197, + -0.010951412841677666, + 0.0263645201921463, + -0.0674663782119751, + 0.07690811157226562, + -0.13070333003997803, + 0.13485047221183777, + -0.03932299092411995, + 0.1097576692700386, + -0.04920841380953789, + 0.13261674344539642, + -0.01585199125111103, + -0.17799976468086243, + -0.037467412650585175, + 0.07317551970481873, + -0.04008955508470535, + -0.0023596957325935364, + -0.030376046895980835, + -0.007567227352410555, + 0.010918810963630676, + 0.007402253802865744, + 0.06254812330007553, + -0.012820769101381302, + 0.05959368497133255, + 0.05872346833348274, + 0.02781469002366066, + 0.07284603267908096, + 0.03543016314506531, + -0.03931150212883949, + -0.04573261737823486, + 0.09794783592224121, + -0.043906599283218384, + 0.01869359239935875, + 0.07258836925029755, + -0.002346000401303172, + 0.006400824524462223, + -0.07021138072013855, + -0.008998343721032143, + 0.006079293321818113, + -0.011671755462884903, + 0.08647403120994568, + 0.053747326135635376, + -0.02551126480102539, + 0.02642642892897129, + 0.03566354513168335, + -0.00420792680233717, + -0.047181226313114166, + -0.11689212918281555, + 0.15690991282463074, + 0.03090955875813961, + 0.005013628862798214, + -0.0859299749135971, + -0.08353278785943985, + 0.10580959916114807, + -0.016131579875946045, + -0.10650736093521118, + -0.0424816831946373, + 0.07766459882259369, + 0.15099643170833588, + -0.02301827259361744, + -0.0205608569085598, + 0.0033584285993129015, + 0.13728797435760498, + 0.04627763107419014, + 0.10518422722816467, + 0.05480710417032242, + 0.1170174852013588, + -0.010952591896057129, + 0.04857170954346657, + 0.05849912017583847, + 0.07163064926862717, + 0.009242474101483822, + 0.013024954125285149, + 0.014280444011092186, + -0.026946572586894035, + -0.01150105893611908, + 0.022526027634739876, + -0.012215487658977509, + -0.025782596319913864, + -0.031099211424589157, + 0.015242155641317368, + 0.010931520722806454, + 0.012196353636682034, + -0.026906870305538177, + 0.07545508444309235, + 0.010470365174114704, + -0.0011720983311533928, + 0.06510636955499649, + 0.04995344579219818, + -0.009989118203520775, + 0.05351223051548004, + -0.053027283400297165, + -0.1062372475862503, + 0.009820534847676754, + -0.0058873724192380905, + 0.04402993246912956, + 0.0660303458571434, + 0.02297598123550415, + -0.00495131453499198, + 0.09830664098262787, + 0.09491933882236481, + -0.008639329113066196, + 0.03967539966106415, + -0.06774254143238068, + 0.1321856677532196, + 0.06997360289096832, + 0.0021841833367943764, + 0.06331697851419449, + -0.04716039076447487, + 0.07264742255210876, + 0.08234654366970062, + -0.13311713933944702, + -0.08550317585468292, + 0.019442839547991753, + 0.019908394664525986, + -0.019610024988651276, + 0.10110601782798767, + -0.01835044100880623, + 0.028228241950273514, + 0.09351484477519989, + -0.07935181260108948, + -0.06512089818716049, + -0.012635830789804459, + 0.037400390952825546, + -0.06374944746494293, + 0.027713490650057793, + 0.0608680322766304, + -0.03684769198298454, + -0.00977357104420662, + 0.08218265324831009, + 0.016834445297718048, + 0.015206827782094479, + 0.06292486190795898, + -0.046363115310668945, + 0.024377569556236267, + -0.015522792935371399, + 0.020801743492484093, + 0.06598635017871857, + 0.057184718549251556, + 0.04022335261106491, + 0.0031346192117780447, + -0.029957424849271774, + -0.11696556955575943, + 0.0007094676839187741, + 0.058494724333286285, + 0.08337339758872986, + -0.02051680162549019, + -0.03961547464132309, + -0.026886215433478355, + -0.0662282332777977, + 0.023662175983190536, + 0.020926430821418762, + 0.08748117089271545, + -0.026798447594046593, + -0.01203005202114582, + 0.09355267137289047, + 0.017791345715522766, + -0.004080181010067463, + -0.05586542934179306, + -0.02533883973956108, + 0.04271090030670166, + 0.03122773766517639, + -0.09068462252616882, + -0.06610505282878876, + 0.008217401802539825, + 0.01269354298710823, + -0.04585854336619377, + 0.033451635390520096, + 0.03700171411037445, + 0.0045049479231238365, + 0.05514219403266907, + -0.03782859444618225, + 0.0029868311248719692, + -0.10349141061306, + -0.050935838371515274, + -0.013891038484871387, + -0.007841261103749275, + -0.038354843854904175, + 0.08054852485656738, + 0.03754604607820511, + 0.07043623924255371, + 0.009298709221184254, + -0.04432382062077522, + -0.05677574872970581, + 0.06236385926604271, + 0.0651523619890213, + 0.01677655056118965, + 0.060372285544872284, + 0.04500025138258934, + -0.021298842504620552, + 0.06054048612713814, + 0.07007988542318344, + 0.06017880141735077, + -0.031840041279792786, + -0.009376992471516132, + -0.08214021474123001, + 0.07381021231412888, + 0.09016189724206924, + -0.12650716304779053, + -0.07929831743240356, + -0.03434703126549721, + -0.04745608940720558, + 0.020430151373147964, + -0.03529493510723114, + 0.007513072807341814, + 0.033408813178539276, + -0.010800879448652267, + -0.08751987665891647, + -0.1251140981912613, + 0.08608241379261017, + -0.08125439286231995, + 0.006926291156560183, + -0.0435793474316597, + 0.04188838601112366, + 0.08625149726867676, + 0.02780303545296192, + -0.018457993865013123, + -0.006067521870136261, + 0.052661895751953125, + -0.057967767119407654, + -0.017828509211540222, + 0.04688819870352745, + 0.02235068380832672, + -0.09449154883623123, + 0.03194766864180565, + -0.05927123874425888, + 0.05683661997318268, + -0.04885485768318176, + 0.1955493539571762, + 0.006093400530517101, + -0.05609149485826492, + -0.07668501883745193, + 0.018956057727336884, + -0.06362532824277878, + 0.03209010884165764, + 0.03578523173928261, + 0.06080184131860733, + 0.008849730715155602, + -0.06689353287220001, + 0.13770708441734314, + 0.02647826075553894, + -0.05171520262956619, + -0.07367865741252899, + -0.03191560506820679, + -0.03901107236742973, + 0.05744992196559906, + 0.012534620240330696, + -0.08805913478136063, + -0.02861597016453743, + 0.030343791469931602, + -0.02510196343064308, + 0.06250257790088654, + 0.1583583652973175, + 0.07638853788375854, + -0.08378622680902481 + ] + }, + "p244_340.wav": { + "name": "p244", + "embedding": [ + 0.06639134883880615, + 0.08019162714481354, + -0.0027581891044974327, + 0.004180664662271738, + -0.030272439122200012, + 0.048977553844451904, + -0.1245986744761467, + 0.1365082561969757, + 0.009521890431642532, + 0.10858672857284546, + -0.09621915221214294, + 0.09146901220083237, + -0.03681021183729172, + -0.13924184441566467, + -0.007102347910404205, + 0.042863357812166214, + -0.03392926603555679, + -0.022205114364624023, + -0.038932789117097855, + -0.008115699514746666, + 0.015234426595270634, + 0.007234741002321243, + 0.01680072769522667, + 0.008193664252758026, + 0.020926427096128464, + 0.04164732247591019, + -0.015389865264296532, + 0.0136415995657444, + 0.008672126568853855, + -0.005748657509684563, + 0.014228813350200653, + 0.0760236456990242, + -0.04467058554291725, + 0.03631991893053055, + 0.07519757002592087, + 0.015932073816657066, + -0.023643437772989273, + -0.060222700238227844, + -0.013411266729235649, + -0.0013590147718787193, + -0.040331389755010605, + 0.07436111569404602, + 0.030003592371940613, + -0.02226611040532589, + 0.03718755394220352, + 0.043628811836242676, + -0.010191012173891068, + -0.03746765851974487, + -0.09806478023529053, + 0.13987596333026886, + 0.039679620414972305, + 0.010337457992136478, + -0.10140713304281235, + -0.029269620776176453, + 0.06586898863315582, + -0.02568648010492325, + -0.08333948999643326, + -0.0408974215388298, + 0.07074789702892303, + 0.10099364072084427, + -0.020467672497034073, + -0.04077022895216942, + -0.004249453544616699, + 0.08768243342638016, + 0.039876539260149, + 0.05888636037707329, + 0.07596106827259064, + 0.12785689532756805, + -0.03381903097033501, + 0.0382893830537796, + 0.06609951704740524, + 0.03227633982896805, + 0.08410327136516571, + 0.004174867644906044, + 0.01832503266632557, + -0.019428031519055367, + -0.015371739864349365, + 0.007760817185044289, + -0.02981926128268242, + -0.022213822230696678, + -0.015078537166118622, + -0.009039074182510376, + 0.006208865903317928, + 0.04495428502559662, + -0.014489944092929363, + 0.0324760302901268, + 0.04820657894015312, + -0.005023290403187275, + 0.07005922496318817, + 0.04904730245471001, + -0.008960306644439697, + 0.04829821735620499, + -0.08658397197723389, + -0.09277187287807465, + 0.013114173896610737, + -0.0337505042552948, + 0.04326009750366211, + 0.04207330942153931, + 0.039886631071567535, + 0.007571110036224127, + 0.10040537267923355, + 0.03025638870894909, + -0.006090020295232534, + 0.011271117255091667, + -0.09047084301710129, + 0.12773479521274567, + 0.07634005695581436, + -0.03252033144235611, + 0.014107977971434593, + -0.04958254098892212, + 0.03959175571799278, + 0.06129565089941025, + -0.09590176492929459, + -0.03559233248233795, + 0.028872815892100334, + 0.016722846776247025, + 0.00038526952266693115, + 0.10121827572584152, + 0.004214008338749409, + 0.02676658146083355, + 0.09626264870166779, + -0.08186472207307816, + -0.03469136729836464, + 0.007905438542366028, + 0.017963996157050133, + -0.05624501407146454, + 0.04268525540828705, + 0.04294935241341591, + 0.019407492130994797, + 0.008044121786952019, + 0.08362578600645065, + 0.01402804534882307, + -0.0015495724510401487, + -0.02666974812746048, + 0.00781327486038208, + 0.04793216660618782, + -0.01652440056204796, + 0.00012958655133843422, + 0.03809443861246109, + 0.05035661906003952, + 0.041099101305007935, + 0.0405113659799099, + -0.02772117219865322, + -0.09168410301208496, + 0.00730043975636363, + 0.052525199949741364, + 0.06806518137454987, + -0.03680209070444107, + -0.023750513792037964, + -0.022470341995358467, + -0.04228659346699715, + 0.024037525057792664, + 0.0025971680879592896, + 0.04648330435156822, + 0.010084804147481918, + -0.012208247557282448, + 0.10476034134626389, + 0.012795300222933292, + 0.0004179964307695627, + -0.06421824544668198, + -0.024929407984018326, + 0.0037254979833960533, + 0.05674167722463608, + -0.10214373469352722, + -0.061027493327856064, + -0.008299363777041435, + 0.012122754007577896, + -0.019059723243117332, + 0.03881477564573288, + 0.05121390521526337, + -0.007847309112548828, + 0.014536220580339432, + -0.054082807153463364, + 0.008495871908962727, + -0.09904608130455017, + -0.08127027004957199, + 0.013614809140563011, + -0.015359293669462204, + 0.00932619720697403, + 0.06560306251049042, + -0.00076671177521348, + 0.051303550601005554, + -0.02514202520251274, + -0.0811050534248352, + -0.05205173045396805, + 0.0779341459274292, + 0.04712040349841118, + -0.03177156671881676, + 0.040250204503536224, + 0.05301342159509659, + -0.030997931957244873, + 0.02893413044512272, + 0.05376358702778816, + 0.10341478139162064, + -0.0588308721780777, + 0.01917843706905842, + -0.055761415511369705, + 0.08098762482404709, + 0.07878062129020691, + -0.07567794620990753, + -0.08167435228824615, + -0.036413874477148056, + -0.020301852375268936, + 0.005011129193007946, + -0.03511064499616623, + -0.007393251173198223, + 0.02708134427666664, + -0.027660030871629715, + -0.06989926844835281, + -0.08587639778852463, + 0.04238252341747284, + -0.05383865535259247, + 0.020441412925720215, + -0.07664134353399277, + 0.0404881127178669, + 0.0507473461329937, + 0.012512242421507835, + -0.03588709980249405, + 0.014069817960262299, + 0.013960480690002441, + -0.035563401877880096, + -0.04448779299855232, + 0.01059906929731369, + 0.026837708428502083, + -0.07180899381637573, + -0.025497715920209885, + -0.045538775622844696, + 0.060949455946683884, + -0.032372038811445236, + 0.13015858829021454, + -0.005669048521667719, + -0.04213802143931389, + -0.04043497517704964, + -0.02032424882054329, + -0.02200600691139698, + 0.0392804890871048, + 0.03568727523088455, + 0.040386863052845, + 0.02337987907230854, + -0.03212041035294533, + 0.11466336995363235, + 0.03853045403957367, + -0.027079515159130096, + -0.0475112609565258, + -0.04738258570432663, + -0.04195820912718773, + 0.0007492341101169586, + -0.0158979631960392, + -0.07680543512105942, + 0.014782892540097237, + 0.004984106868505478, + -0.01322584692388773, + 0.033086612820625305, + 0.11723743379116058, + 0.07080477476119995, + -0.0995333269238472 + ] + }, + "p244_239.wav": { + "name": "p244", + "embedding": [ + 0.07127400487661362, + 0.019093776121735573, + 0.01414394099265337, + -0.011523932218551636, + -0.013843409717082977, + 0.0429999902844429, + -0.11181488633155823, + 0.09210527688264847, + -0.051988907158374786, + 0.06096595153212547, + -0.08969350904226303, + 0.08204600214958191, + 0.019030727446079254, + -0.12784619629383087, + -0.06960482895374298, + 0.026802966371178627, + -0.022742750123143196, + -0.0012724511325359344, + -0.05044564977288246, + -0.024079613387584686, + 0.022867467254400253, + 0.059336770325899124, + 0.03110773302614689, + -0.01116505078971386, + 0.008191319182515144, + 0.05949847400188446, + 0.027810193598270416, + 0.043228629976511, + 0.0029876260086894035, + -0.005984343588352203, + 0.0005563944578170776, + 0.09297096729278564, + -0.024394700303673744, + -0.02786426432430744, + 0.03871412202715874, + -0.0035634443629533052, + 0.027407187968492508, + -0.09005075693130493, + -0.02802146226167679, + 0.024221867322921753, + -0.058861080557107925, + 0.06764927506446838, + 0.06804198026657104, + 0.017803382128477097, + 0.015552683733403683, + 0.012702573090791702, + 0.004298015497624874, + -0.06711240112781525, + -0.10869817435741425, + 0.16304926574230194, + 0.0069725047796964645, + 0.03469327092170715, + -0.10918616503477097, + -0.004171609878540039, + 0.0829123854637146, + -0.007965498603880405, + -0.03523474186658859, + -0.031712256371974945, + 0.03830372542142868, + 0.14346832036972046, + 0.01051875576376915, + -0.0437149703502655, + 0.04311894625425339, + 0.08204641193151474, + 0.014975320547819138, + 0.020011013373732567, + 0.1371983289718628, + 0.08168377727270126, + 5.484931170940399e-05, + 0.03883256018161774, + 0.03779157996177673, + 0.04149949178099632, + 0.016846805810928345, + -0.036675140261650085, + 0.03393048048019409, + -0.007770964875817299, + -0.036692384630441666, + 0.011459278874099255, + -0.03477047011256218, + -0.03154977783560753, + 0.015536344610154629, + 0.016264664009213448, + 0.021259237080812454, + 0.044192470610141754, + -0.07296409457921982, + 0.05625876039266586, + -0.004139753058552742, + 0.0060454062186181545, + 0.0600721500813961, + 0.05596785992383957, + 0.01783670112490654, + -0.0015761107206344604, + -0.030506260693073273, + -0.09027876704931259, + -0.004364637657999992, + 0.007507472764700651, + 0.027169086039066315, + 0.03355260565876961, + 0.02715018205344677, + -0.03729039430618286, + 0.08606458455324173, + -0.007123356685042381, + 0.004398429300636053, + -0.01685267686843872, + -0.06783889979124069, + 0.07272452861070633, + 0.11239971965551376, + -0.004071911796927452, + 0.022723225876688957, + -0.047756996005773544, + 0.012102460488677025, + 0.0588613897562027, + -0.0905846357345581, + -0.05410899221897125, + 0.045872077345848083, + 0.03321833163499832, + 0.06676512211561203, + 0.11658039689064026, + -0.008802798576653004, + 0.02088093012571335, + 0.04114298149943352, + -0.06236909329891205, + -0.026366010308265686, + 0.0023633111268281937, + 0.008877340704202652, + -0.012683948501944542, + 0.02095046080648899, + 0.02316000498831272, + 0.034441880881786346, + -0.05924255773425102, + 0.06334992498159409, + -0.004052160307765007, + 0.002737640403211117, + -0.04595591500401497, + 0.027514228597283363, + 0.07666558772325516, + 0.00889552477747202, + -0.025774721056222916, + 0.038250602781772614, + 0.07810305058956146, + 0.007095523178577423, + 0.04939836636185646, + -0.06631563603878021, + -0.10145246982574463, + -0.029270604252815247, + 0.03936555236577988, + 0.04891711845993996, + -0.027486711740493774, + -0.053716253489255905, + -0.07629136741161346, + 0.005359183996915817, + -0.01069799717515707, + 0.007228119298815727, + 0.05622076243162155, + 0.044690702110528946, + -0.012043043971061707, + 0.07024528086185455, + -0.03508200868964195, + 0.027698000892996788, + -0.011489249765872955, + 0.010456315241754055, + 0.01987171545624733, + 0.025585021823644638, + 0.016467289999127388, + -0.07188097387552261, + 0.008071591146290302, + -0.001341152936220169, + -0.01675121672451496, + -0.005555272102355957, + 0.01658037304878235, + -0.018899204209446907, + -0.0030862707644701004, + -0.11138496547937393, + 0.033861398696899414, + -0.10947717726230621, + -0.002798810601234436, + 0.056818753480911255, + -0.021806513890624046, + -0.013877428136765957, + 0.08745700120925903, + 0.03198591619729996, + 0.033464930951595306, + -0.015329709276556969, + -0.08588293939828873, + -0.005722682923078537, + 0.03773140162229538, + 0.06973476707935333, + -0.007243748754262924, + 0.010962575674057007, + -0.0011178664863109589, + 0.022056449204683304, + 0.058426182717084885, + 0.056818168610334396, + 0.032578226178884506, + -0.042369045317173004, + -0.06312602758407593, + 0.010349487885832787, + 0.10465070605278015, + -0.012116104364395142, + -0.06008843332529068, + -0.05170039087533951, + 0.019996510818600655, + -0.042729154229164124, + 0.014916767366230488, + 0.014680233784019947, + 0.03672060742974281, + 0.05459703505039215, + -0.013234852813184261, + -0.11752871423959732, + -0.03486056253314018, + 0.03271418809890747, + -0.07190996408462524, + -0.008984608575701714, + -0.0554688386619091, + 0.02521122246980667, + 0.11016703397035599, + -0.001111089251935482, + 0.02533961459994316, + -0.035138338804244995, + -0.029855214059352875, + -0.08012183010578156, + -0.057451412081718445, + -0.030463306233286858, + 0.028177790343761444, + -0.04955669492483139, + 0.005125638097524643, + -0.07297259569168091, + 0.058610301464796066, + -0.03174437955021858, + 0.07638567686080933, + 0.02632550150156021, + -0.06413320451974869, + -0.08980400860309601, + 0.0011020172387361526, + -0.016635259613394737, + 0.05730810388922691, + 0.0527595616877079, + 0.012529173865914345, + 0.017594855278730392, + -0.07702326774597168, + 0.08198077231645584, + 0.06108960509300232, + -0.06026972830295563, + -0.07305431365966797, + -0.01985214650630951, + 0.012401393614709377, + 0.028201133012771606, + -0.0014108233153820038, + 0.0041879042983055115, + 0.0209663063287735, + 0.026940345764160156, + -0.011645923368632793, + 0.06098298728466034, + 0.07873081415891647, + 0.036621641367673874, + -0.07907790690660477 + ] + }, + "p244_227.wav": { + "name": "p244", + "embedding": [ + 0.06037134677171707, + 0.08570896089076996, + -0.019702520221471786, + 0.022366613149642944, + -0.07531517744064331, + 0.07544559985399246, + -0.12379723787307739, + 0.14445246756076813, + -0.04340231418609619, + 0.14070409536361694, + -0.07161542028188705, + 0.1391201764345169, + -0.0004176038783043623, + -0.18650177121162415, + -0.0181155763566494, + 0.03891553357243538, + -0.03167455270886421, + -0.005392352119088173, + -0.053561482578516006, + -0.029414039105176926, + 0.04016154631972313, + 0.029714740812778473, + 0.035814691334962845, + -0.023127835243940353, + 0.02899923175573349, + 0.06704011559486389, + -0.010245775803923607, + 0.034223780035972595, + 0.012145204469561577, + -0.07225147634744644, + -0.061436425894498825, + 0.10887479782104492, + -0.06607499718666077, + 0.005742373876273632, + 0.0644531399011612, + -0.03770455718040466, + -0.02444148249924183, + -0.06412821263074875, + -0.02814031019806862, + 0.0045563047751784325, + -0.0350966602563858, + 0.06708647310733795, + 0.034414179623126984, + -0.023326324298977852, + 0.05697493627667427, + 0.015522249042987823, + -0.011106668971478939, + -0.04738255962729454, + -0.08933813869953156, + 0.1410139501094818, + 0.06501325964927673, + -0.015082523226737976, + -0.07161733508110046, + -0.0435834676027298, + 0.1068471223115921, + -0.017745455726981163, + -0.12056022882461548, + -0.030402742326259613, + 0.07582388818264008, + 0.14390461146831512, + -0.039118990302085876, + -0.028490055352449417, + 0.029065797105431557, + 0.08872385323047638, + 0.04287610575556755, + 0.10764962434768677, + 0.08694794028997421, + 0.10373049974441528, + -0.011214769445359707, + 0.056350044906139374, + 0.03859269618988037, + 0.06862278282642365, + 0.04696699604392052, + -0.031149927526712418, + 0.0350484699010849, + -0.008445067331194878, + -0.025201544165611267, + -0.015529055148363113, + -0.028943222016096115, + -0.0017155238892883062, + -0.003591958899050951, + 0.006237707566469908, + 0.040478311479091644, + 0.0066591971553862095, + -0.04383482038974762, + 0.07017461955547333, + 0.028217725455760956, + -0.005691654048860073, + 0.05217348039150238, + 0.03057531639933586, + -0.007049663458019495, + 0.055375583469867706, + -0.09654393792152405, + -0.10485202074050903, + 0.031433381140232086, + 0.0061244722455739975, + -0.0027027763426303864, + 0.0787169486284256, + 0.04314332455396652, + -0.012910754419863224, + 0.1122114434838295, + 0.06743180751800537, + -0.010364268906414509, + 0.044879235327243805, + -0.0835464745759964, + 0.1287938952445984, + 0.09315474331378937, + -0.019612416625022888, + 0.0631938949227333, + -0.07716260105371475, + 0.10375265777111053, + 0.057239778339862823, + -0.14380934834480286, + -0.060594379901885986, + 0.01816524751484394, + -0.013938801363110542, + -0.02389213815331459, + 0.1250602751970291, + -0.022790445014834404, + 0.038707759231328964, + 0.10168983042240143, + -0.08606225252151489, + -0.053587380796670914, + -0.019488949328660965, + 0.048445168882608414, + -0.085906982421875, + 0.0631561428308487, + 0.03454866260290146, + -0.018750105053186417, + 0.022732049226760864, + 0.08373497426509857, + -0.019818153232336044, + -0.012598307803273201, + 0.03540262207388878, + -0.039321206510066986, + 0.0159012321382761, + -0.02145484834909439, + 0.0023860055953264236, + 0.039884619414806366, + 0.03538494557142258, + 0.04765427112579346, + -0.020397935062646866, + -0.01177804172039032, + -0.08741892129182816, + 0.01649581827223301, + 0.02263766899704933, + 0.07652141153812408, + -0.002356482669711113, + -0.006948956288397312, + -0.042637523263692856, + -0.0931013897061348, + 0.013425029814243317, + -0.020280778408050537, + 0.0697951465845108, + -0.018908970057964325, + 0.024380605667829514, + 0.08535847067832947, + 0.05487808585166931, + 0.004974113777279854, + -0.0680510550737381, + -0.029298128560185432, + 0.017211752012372017, + 0.06064422428607941, + -0.0817132443189621, + -0.06587617844343185, + -0.01283592451363802, + 0.008852152153849602, + -0.03935614973306656, + 0.04913647100329399, + 0.04603557661175728, + 0.030678432434797287, + 0.04446561634540558, + -0.09261421114206314, + 0.010217836126685143, + -0.11238285899162292, + -0.05385879427194595, + -0.018265459686517715, + -0.0251108817756176, + -0.03299194574356079, + 0.07536908239126205, + 0.01846587099134922, + 0.04141339287161827, + -0.019112002104520798, + -0.05137632042169571, + -0.07393202185630798, + 0.05355052277445793, + 0.055620186030864716, + -0.01335783489048481, + 0.04116807132959366, + 0.0487552247941494, + -0.036438003182411194, + 0.058290984481573105, + 0.07508772611618042, + 0.08659902215003967, + -0.015032120048999786, + 0.022882547229528427, + -0.06408246606588364, + 0.10252620279788971, + 0.09582817554473877, + -0.08702091872692108, + -0.10179796069860458, + -0.02871435508131981, + -0.07349397987127304, + 0.03968850523233414, + -0.02762385830283165, + -0.019550630822777748, + 0.027073998004198074, + 0.009995599277317524, + -0.09180231392383575, + -0.08091013878583908, + 0.09065079689025879, + -0.07136523723602295, + -0.01066931989043951, + -0.08579641580581665, + 0.04663429409265518, + 0.10176980495452881, + 0.01736580766737461, + -0.04070871323347092, + -0.01898895390331745, + 0.055287159979343414, + -0.034810587763786316, + 0.01455785147845745, + 0.04177185893058777, + 0.04016496241092682, + -0.10704472661018372, + 0.01202833466231823, + -0.048827074468135834, + 0.04372423142194748, + -0.048256728798151016, + 0.161650151014328, + 0.0031913002021610737, + -0.04870273917913437, + -0.06659187376499176, + 0.07048682123422623, + -0.010164874605834484, + 0.03241579234600067, + 0.04637807607650757, + 0.07134668529033661, + 0.035752009600400925, + -0.08948419243097305, + 0.11096765100955963, + 0.016276035457849503, + -0.03500794246792793, + -0.06615947186946869, + -0.050319962203502655, + -0.047357331961393356, + 0.013476955704391003, + 0.022592905908823013, + -0.10324914753437042, + -0.020539050921797752, + 0.026094775646924973, + -0.013407817110419273, + 0.06635773181915283, + 0.13746339082717896, + 0.06524045765399933, + -0.10997216403484344 + ] + }, + "p244_160.wav": { + "name": "p244", + "embedding": [ + 0.026559598743915558, + 0.1116848886013031, + -0.016116315498948097, + 0.051389217376708984, + -0.05837224796414375, + 0.017432451248168945, + -0.022781696170568466, + 0.04519841820001602, + 0.0255142729729414, + 0.07495652139186859, + -0.04130738973617554, + 0.07807604968547821, + -0.0513303279876709, + -0.09406927973031998, + -0.007932877168059349, + 0.020030591636896133, + -0.006581081077456474, + 0.02560054138302803, + -0.023602964356541634, + -0.010282590985298157, + -0.050811320543289185, + -0.00525493361055851, + 0.002204073593020439, + -0.008879566565155983, + -0.040683846920728683, + 0.03986447677016258, + -0.031193401664495468, + 0.012891063466668129, + -0.019032025709748268, + -0.1048523336648941, + -0.010010089725255966, + 0.05138653144240379, + -0.028826337307691574, + -0.026896072551608086, + 0.007702079601585865, + -0.03902773559093475, + 0.014631949365139008, + -0.028339151293039322, + -0.054345883429050446, + -0.015875523909926414, + -0.0364132821559906, + 0.00630771741271019, + -0.01191217266023159, + -0.07795916497707367, + 0.016351427882909775, + -0.0012911586090922356, + -0.04717263951897621, + -0.006497536785900593, + -0.04528365656733513, + 0.10074131935834885, + 0.025250926613807678, + 0.05538181960582733, + -0.04879321902990341, + -0.04657234624028206, + 0.12063401937484741, + 0.014146438799798489, + 0.005084522068500519, + -0.01622661016881466, + -0.01819690130650997, + 0.05265335366129875, + 0.04058893769979477, + -0.0028991326689720154, + 0.05349726974964142, + 0.05099568888545036, + 0.008044037967920303, + 0.037750180810689926, + 0.058458127081394196, + 0.06295692175626755, + -0.022748533636331558, + 0.036461763083934784, + 0.04959450662136078, + 0.026321707293391228, + 0.04101115092635155, + 0.041950855404138565, + -0.022483622655272484, + 0.005180465057492256, + 0.003750205971300602, + 0.025160280987620354, + -0.01991969719529152, + -0.042616672813892365, + 0.0027666196692734957, + -0.004818296059966087, + 0.01092077512294054, + -0.04666807875037193, + -0.02696220576763153, + -0.04495837166905403, + 0.06898374855518341, + 0.005142414942383766, + 0.047648072242736816, + 0.004516623914241791, + 0.053117770701646805, + 0.0462389811873436, + -0.040140800178050995, + -0.05522499606013298, + 0.02683410979807377, + 0.003386897034943104, + 0.050053078681230545, + 0.029816962778568268, + 0.005843058228492737, + 0.004132304340600967, + 0.04547717049717903, + -0.01720576174557209, + 0.06789544224739075, + -0.01553838700056076, + -0.05814449489116669, + -0.031201064586639404, + 0.04844619706273079, + 0.018837835639715195, + 0.033266641199588776, + 0.0484301894903183, + 0.0575186088681221, + 0.09253117442131042, + -0.03851114958524704, + -0.057117901742458344, + -0.00688267033547163, + 0.03141169622540474, + -0.039591070264577866, + 0.08456496894359589, + -0.005943231750279665, + 0.03955782949924469, + 0.05599345266819, + -0.029588595032691956, + -0.01905791088938713, + 0.016566919162869453, + -0.008770550601184368, + -0.05794387310743332, + 0.058530230075120926, + 0.031134668737649918, + -0.03416421636939049, + -0.04878013953566551, + 0.052470795810222626, + -0.021651186048984528, + -0.018802674487233162, + -0.014108812436461449, + -0.003923185169696808, + -0.02743849717080593, + 0.037589505314826965, + -0.04890361428260803, + 0.025228170678019524, + 0.0692390725016594, + -0.0014297310262918472, + -0.05619741976261139, + 0.001806040178053081, + -0.0505979098379612, + 0.03501978516578674, + 0.03337126970291138, + -0.010297193191945553, + 0.05970190465450287, + -0.04140562564134598, + -0.04531535506248474, + -0.02139427326619625, + 0.051135823130607605, + -0.0441482849419117, + 0.0745561495423317, + 0.05846432223916054, + 0.02120148204267025, + 0.07236268371343613, + -0.02390219457447529, + -0.006168705876916647, + -0.01925705373287201, + -0.10689781606197357, + 0.016164032742381096, + 0.025825107470154762, + -0.020861327648162842, + -0.03136304020881653, + -0.02024385705590248, + -0.024434704333543777, + -0.0028209052979946136, + 0.022269051522016525, + 0.04599447548389435, + -0.008368403650820255, + 0.049845099449157715, + -0.0799744501709938, + -0.005105664953589439, + -0.012980857864022255, + -0.05203929543495178, + 0.03248864412307739, + -0.020502634346485138, + -0.008597271516919136, + 0.033127136528491974, + 0.02249806933104992, + -0.037907686084508896, + -0.06620056182146072, + -0.07399959862232208, + 0.007195569574832916, + 0.029491569846868515, + 0.016986342146992683, + 0.007693079765886068, + -0.013965637423098087, + 0.03907273709774017, + 0.051342613995075226, + 0.01718650758266449, + 0.007847528904676437, + 0.07077126950025558, + -0.04855210334062576, + -0.006412457674741745, + 0.030008159577846527, + 0.09268131852149963, + 0.048097409307956696, + -0.07212166488170624, + -0.10743173211812973, + -0.03378477692604065, + -0.05552264675498009, + 0.0688861832022667, + -0.030944589525461197, + 0.020307613536715508, + 0.020808249711990356, + -0.007350586354732513, + 0.0056816451251506805, + -0.1304166167974472, + 0.061731744557619095, + 0.03215894103050232, + -0.03690272569656372, + -0.007082510739564896, + 0.006484119221568108, + -0.0048206280916929245, + 0.05094684660434723, + -0.03103126958012581, + -0.0005900515243411064, + 0.016392599791288376, + -0.003268212080001831, + 0.007919812574982643, + 0.055651649832725525, + 0.0423818975687027, + 0.018856879323720932, + -0.013363394886255264, + -0.023763928562402725, + 0.03382803127169609, + 0.006204478442668915, + 0.0458715595304966, + -0.003102308139204979, + -0.013315879739820957, + -0.106963150203228, + 0.08787776529788971, + -0.03548796474933624, + 0.057874154299497604, + -0.010665055364370346, + 0.017566632479429245, + 0.05890590697526932, + -0.03642525151371956, + 0.07835541665554047, + 0.021359838545322418, + -0.0193508081138134, + -0.03404254838824272, + -0.013302493840456009, + -0.035955529659986496, + 0.035202693194150925, + 0.042525772005319595, + -0.01032334566116333, + -0.006047356873750687, + 0.03645598888397217, + 0.042794372886419296, + 0.08431451767683029, + 0.07425171136856079, + 0.055540118366479874, + 0.027588654309511185 + ] + }, + "p244_056.wav": { + "name": "p244", + "embedding": [ + 0.038328371942043304, + 0.06367671489715576, + -0.027478108182549477, + 0.053355857729911804, + -0.05999847501516342, + 0.08225319534540176, + -0.14614485204219818, + 0.1154351755976677, + -0.02209380455315113, + 0.12605777382850647, + -0.03030681237578392, + 0.09915250539779663, + -0.02087361179292202, + -0.18541213870048523, + -0.0023089428432285786, + 0.08155229687690735, + -0.007917769253253937, + -0.01564657874405384, + -0.05361519753932953, + -0.005513269454240799, + 0.005140484776347876, + 0.030321989208459854, + 0.03555504232645035, + -0.027472959831357002, + 0.04679049551486969, + 0.03893141448497772, + -0.01573146879673004, + 0.053847476840019226, + 0.004548178054392338, + -0.06983290612697601, + -0.025777123868465424, + 0.08817800879478455, + -0.05765452980995178, + 0.027357857674360275, + 0.05434811860322952, + 0.005703633651137352, + -0.004371881019324064, + -0.04762175679206848, + -0.004995710216462612, + 0.0020579956471920013, + -0.04185333102941513, + 0.09500788152217865, + 0.0452316515147686, + -0.01057750266045332, + 0.042994141578674316, + 0.014600496739149094, + -0.01879080757498741, + -0.04451435059309006, + -0.11859199404716492, + 0.14696958661079407, + 0.029264669865369797, + -0.01479214709252119, + -0.08258024603128433, + -0.07070136070251465, + 0.09047552943229675, + -0.02678380161523819, + -0.10557340085506439, + -0.08048279583454132, + 0.0840415358543396, + 0.15198521316051483, + -0.010024361312389374, + -0.01821364276111126, + 0.002189514460042119, + 0.11044515669345856, + 0.06453007459640503, + 0.0904700979590416, + 0.0374385267496109, + 0.1305156946182251, + 0.0015142466872930527, + 0.007919435389339924, + 0.020688869059085846, + 0.06220712512731552, + 0.015139110386371613, + 0.01849103532731533, + 0.011681335046887398, + -0.014993296936154366, + -0.007299354765564203, + -0.004437160678207874, + -0.027512013912200928, + -0.011841649189591408, + -0.01434422843158245, + 0.0023328829556703568, + 0.027927620336413383, + 0.014589717611670494, + -0.036527119576931, + 0.04561164975166321, + 0.047775376588106155, + -0.028939470648765564, + 0.05588280409574509, + 0.040653008967638016, + -0.027852699160575867, + 0.040589358657598495, + -0.0725463405251503, + -0.07555719465017319, + 0.006225344259291887, + 0.01126736681908369, + -0.004792221821844578, + 0.03662295639514923, + 0.0037884991616010666, + -0.007372761145234108, + 0.11891268193721771, + 0.03254926949739456, + -0.01723564602434635, + 0.04737314209342003, + -0.0680658295750618, + 0.13920092582702637, + 0.05126619338989258, + 0.026127591729164124, + 0.06337494403123856, + -0.056040287017822266, + 0.03214118629693985, + 0.06679442524909973, + -0.12897734344005585, + -0.06014731898903847, + 0.01990739442408085, + -0.0070129260420799255, + -0.0365622341632843, + 0.12884365022182465, + 0.012689088471233845, + 0.021939659491181374, + 0.1049538105726242, + -0.10255618393421173, + -0.05850471928715706, + 0.020309578627347946, + 0.04694744199514389, + -0.07767294347286224, + 0.0318603441119194, + 0.030406324192881584, + -0.025112081319093704, + 0.021169589832425117, + 0.08431406319141388, + 0.022275879979133606, + 0.034444332122802734, + 0.04291002079844475, + -0.03720298409461975, + 0.03455735370516777, + -0.02514510229229927, + 0.007068756967782974, + 0.07924430072307587, + 0.029403533786535263, + 0.09271825850009918, + -0.03362305089831352, + -0.031318217515945435, + -0.13683345913887024, + -0.011278930120170116, + 0.03819924220442772, + 0.10330018401145935, + -0.018379729241132736, + 0.00244515435770154, + -0.058840662240982056, + -0.10101937502622604, + 0.05231962352991104, + -0.014565413817763329, + 0.1185389906167984, + -0.009202133864164352, + -0.004613430239260197, + 0.10359296202659607, + 0.015815144404768944, + 0.0018608442042022943, + -0.06523013859987259, + -0.02134281024336815, + -0.01475444994866848, + 0.03678862005472183, + -0.07916846871376038, + -0.03944757580757141, + 0.016942711547017097, + 0.032575272023677826, + -0.03222767263650894, + 0.05971198529005051, + 0.04335341602563858, + 0.038127753883600235, + 0.034792717546224594, + -0.044339898973703384, + -0.021466948091983795, + -0.04879412055015564, + -0.04230405390262604, + -0.0034981335047632456, + -0.008795037865638733, + -0.0518103651702404, + 0.0975133627653122, + 0.04820462316274643, + 0.05235876888036728, + -0.018672702834010124, + -0.051297612488269806, + -0.10104307532310486, + 0.054405152797698975, + 0.005037857685238123, + -0.027715278789401054, + 0.03686122968792915, + 0.044303834438323975, + -0.05497080832719803, + 0.050464704632759094, + 0.08660118281841278, + 0.059202197939157486, + -0.026598041877150536, + 0.02196887880563736, + -0.07423491775989532, + 0.12015064060688019, + 0.12374447286128998, + -0.08341850340366364, + -0.07052579522132874, + -0.019805671647191048, + -0.07627588510513306, + 0.027864931151270866, + -0.05387416481971741, + -0.004778549540787935, + 0.04778347909450531, + -0.019103879109025, + -0.10759029537439346, + -0.1048310399055481, + 0.06568128615617752, + -0.0942007452249527, + 0.0012340828543528914, + -0.0469803661108017, + 0.029530808329582214, + 0.06226624175906181, + 0.05579405277967453, + -0.015114019624888897, + -0.017105918377637863, + 0.08538550138473511, + -0.0633305162191391, + 0.020461436361074448, + 0.09949508309364319, + 0.01492242980748415, + -0.09198328852653503, + -0.007643409073352814, + -0.05490371584892273, + 0.039846695959568024, + -0.022794198244810104, + 0.16857904195785522, + 0.022090043872594833, + -0.04276996850967407, + -0.05042840540409088, + 0.014080922119319439, + -0.0516873337328434, + 0.053385525941848755, + 0.01847190037369728, + 0.06780648976564407, + 0.06270890682935715, + -0.01408656220883131, + 0.13060125708580017, + 0.0571218840777874, + -0.03772319480776787, + -0.05590088292956352, + -0.06338523328304291, + -0.05283889174461365, + 0.05294118821620941, + 0.01910148561000824, + -0.12151288986206055, + -0.0011200555600225925, + 0.04946079105138779, + -0.020088355988264084, + 0.04812328517436981, + 0.14391952753067017, + 0.09139038622379303, + -0.08823636174201965 + ] + }, + "p244_078.wav": { + "name": "p244", + "embedding": [ + 0.055630218237638474, + 0.1067352369427681, + 0.002760309260338545, + 0.020574919879436493, + -0.038188669830560684, + 0.0941101610660553, + -0.09879721701145172, + 0.106082983314991, + -0.08724622428417206, + 0.16249629855155945, + -0.09837605059146881, + 0.12139571458101273, + -0.018660595640540123, + -0.15788023173809052, + -0.06801563501358032, + 0.04094967246055603, + -0.07233306765556335, + -0.012670725584030151, + -0.030045168474316597, + -0.008351616561412811, + 0.05629514530301094, + 0.0474000982940197, + 0.05469570681452751, + -0.006902947090566158, + 0.0279505904763937, + 0.05331993103027344, + 0.006443081423640251, + 0.05493545904755592, + 0.02974170260131359, + -0.11172091215848923, + -0.06248054280877113, + 0.12382711470127106, + -0.023882700130343437, + 0.016918832436203957, + 0.027727941051125526, + 0.0012149892281740904, + 0.03127792105078697, + -0.08427728712558746, + -0.02286512218415737, + -0.004720490891486406, + -0.016724610701203346, + 0.05678213760256767, + -0.008819813840091228, + -0.020762315019965172, + 0.016446148976683617, + -0.020085155963897705, + -0.03122781589627266, + -0.042162854224443436, + -0.08499240130186081, + 0.15938058495521545, + 0.0632585734128952, + 0.016745148226618767, + -0.06889068335294724, + -0.08602249622344971, + 0.11774913221597672, + -0.0037802455481141806, + -0.11549004167318344, + -0.0056350515224039555, + 0.05256785452365875, + 0.19134508073329926, + -0.01288327481597662, + -0.028405997902154922, + 0.041795507073402405, + 0.09828393906354904, + 0.012277642264962196, + 0.09504145383834839, + 0.08769989758729935, + 0.04927289858460426, + 0.031748756766319275, + 0.04910534247756004, + 0.034943435341119766, + 0.07930120080709457, + 0.038688480854034424, + -0.037833523005247116, + 0.025218788534402847, + -0.019915523007512093, + -0.05998706817626953, + 0.021445412188768387, + -0.020591862499713898, + -0.02663932926952839, + -0.0153141338378191, + -0.008027773350477219, + 0.0070179784670472145, + -0.004541077185422182, + -0.03750359266996384, + 0.036534544080495834, + -0.027762984856963158, + -0.024407943710684776, + 0.07256761938333511, + 0.029750952497124672, + 0.02671189419925213, + 0.04122646898031235, + -0.0477452278137207, + -0.11737048625946045, + 0.020861215889453888, + 0.031394343823194504, + 0.0016068917466327548, + 0.08763805776834488, + 0.05224749073386192, + -0.04364006966352463, + 0.10341253876686096, + 0.04862023517489433, + 0.019776152446866035, + 0.0049330126494169235, + -0.11249294877052307, + 0.09830232709646225, + 0.11616941541433334, + -0.014970390126109123, + 0.04488604515790939, + -0.026193594560027122, + 0.10363094508647919, + 0.09409166127443314, + -0.16502316296100616, + -0.08759430050849915, + 0.008928144350647926, + -0.011504007503390312, + 0.0340847410261631, + 0.07251366227865219, + -0.01425595860928297, + 0.01328407134860754, + 0.08133666962385178, + -0.0839223712682724, + -0.058623820543289185, + -0.048220425844192505, + 0.05373107269406319, + -0.07759253680706024, + 0.06660626828670502, + 0.027627989649772644, + -0.011569928377866745, + -0.02027498558163643, + 0.05959482118487358, + -0.04370884597301483, + -0.00953164603561163, + 0.03459625318646431, + -0.06948640942573547, + 0.016997747123241425, + -0.07292965054512024, + 0.001577579416334629, + 0.0519273616373539, + 0.04581351578235626, + 0.040306150913238525, + -0.005860194563865662, + -0.04170579835772514, + -0.07742556929588318, + 0.007583111058920622, + 0.042086441069841385, + 0.028847387060523033, + -0.0007596837822347879, + -0.036219775676727295, + -0.03948000818490982, + -0.046713266521692276, + 0.04621388390660286, + -0.015276334248483181, + 0.0842442438006401, + 0.014856208115816116, + 0.028215540573000908, + 0.08941014111042023, + 0.01986808329820633, + -0.019871439784765244, + -0.05743054300546646, + -0.02193480357527733, + 0.040594082325696945, + 0.04170772805809975, + -0.06216242536902428, + -0.06606973707675934, + 0.015140027739107609, + 0.003207495668902993, + -0.026440391317009926, + 0.029404249042272568, + 0.05135619267821312, + 0.017684534192085266, + 0.045513201504945755, + -0.06714869290590286, + 0.024346038699150085, + -0.11197793483734131, + -0.04892519861459732, + -0.016080524772405624, + -0.05219294875860214, + -0.009945571422576904, + 0.08835085481405258, + 0.027112849056720734, + -0.0024880480486899614, + -0.013584609143435955, + -0.07527217268943787, + -0.05660012736916542, + 0.06697279959917068, + 0.07509242743253708, + 0.037866540253162384, + 0.038694173097610474, + 0.046378105878829956, + 0.0064362529665231705, + 0.07628372311592102, + 0.05895989015698433, + 0.10219667106866837, + -0.009982917457818985, + -0.01127435453236103, + -0.07062623649835587, + 0.06987965106964111, + 0.08156045526266098, + -0.0872301384806633, + -0.11450573056936264, + -0.04452529549598694, + -0.0767161026597023, + 0.08281093835830688, + -0.015804573893547058, + -0.0020173536613583565, + 0.021954553201794624, + -0.03985925018787384, + -0.10587214678525925, + -0.0773933157324791, + 0.13195228576660156, + -0.03250063955783844, + -0.05269068107008934, + -0.07849941402673721, + 0.051247190684080124, + 0.07176458835601807, + 0.03178824111819267, + -0.020844925194978714, + 0.03256065398454666, + 0.04053771495819092, + -0.0851791724562645, + -0.020112428814172745, + 0.03442341834306717, + -0.010670512914657593, + -0.09209192544221878, + 0.03319999575614929, + -0.0941704660654068, + 0.07270291447639465, + -0.08972466737031937, + 0.16377297043800354, + -0.0324772484600544, + -0.06603601574897766, + -0.08975996822118759, + 0.08654289692640305, + -0.03915800899267197, + 0.03179012984037399, + 0.06263607740402222, + 0.049225758761167526, + 0.02835780568420887, + -0.1102827712893486, + 0.07609602808952332, + 0.023705288767814636, + -0.016242744401097298, + -0.07431349158287048, + -0.045934394001960754, + -0.03657393902540207, + 0.007536218035966158, + -0.01845720410346985, + -0.0711108073592186, + 0.010064364410936832, + 0.0036284979432821274, + 0.007677001412957907, + 0.08542200177907944, + 0.12095218151807785, + 0.04364725574851036, + -0.10538380593061447 + ] + }, + "p244_062.wav": { + "name": "p244", + "embedding": [ + 0.021794212982058525, + 0.07907729595899582, + -0.02841346152126789, + -0.015859708189964294, + -0.06424835324287415, + 0.06387975811958313, + -0.11144575476646423, + 0.12209363281726837, + -0.06114812195301056, + 0.13196012377738953, + -0.07439765334129333, + 0.09188421815633774, + -0.05453932285308838, + -0.14907890558242798, + -0.0390595979988575, + 0.026605786755681038, + -0.04232645779848099, + -0.021957313641905785, + -0.087961845099926, + -0.04156852141022682, + 0.03828243538737297, + 0.007931772619485855, + -0.02519194968044758, + -0.008817838504910469, + 0.017104677855968475, + 0.05094083026051521, + 0.0004894123412668705, + 0.031202970072627068, + 0.002435644157230854, + -0.011450054123997688, + -0.015073923394083977, + 0.09006287902593613, + -0.05852273106575012, + 0.02499542385339737, + 0.06425312906503677, + 0.012921303510665894, + -0.025711527094244957, + -0.042459890246391296, + 0.0018460024148225784, + 0.026552977040410042, + -0.0718337818980217, + 0.06952087581157684, + 0.02226673811674118, + -0.0020950566977262497, + 0.0315837636590004, + 0.0329069122672081, + 0.0022115297615528107, + -0.06436945497989655, + -0.08765766024589539, + 0.1378021538257599, + 0.06539446115493774, + -0.028171617537736893, + -0.06404684484004974, + -0.06096411123871803, + 0.12313007563352585, + -0.04145287349820137, + -0.1264445036649704, + -0.04790085554122925, + 0.06480594724416733, + 0.13758891820907593, + -0.06513374298810959, + -0.02956644631922245, + -0.0007622246630489826, + 0.10006635636091232, + 0.05754372850060463, + 0.0836755633354187, + 0.09292846918106079, + 0.11577112227678299, + -0.026309117674827576, + 0.0005640224553644657, + 0.07485707104206085, + 0.04527078941464424, + 0.0684117004275322, + -0.0035286853089928627, + 0.034221578389406204, + 0.010326101444661617, + 0.0006285249255597591, + 0.024298526346683502, + -0.0360148586332798, + -0.010448945686221123, + -0.02834143489599228, + 0.0246539618819952, + -0.009179140441119671, + 0.0022719306871294975, + -0.02260502427816391, + 0.06468090415000916, + 0.04094701632857323, + -0.015857215970754623, + 0.06263691931962967, + 0.06454430520534515, + -0.028945326805114746, + 0.0730544775724411, + -0.07714489102363586, + -0.081499382853508, + -0.004363709129393101, + -0.027288399636745453, + 0.02606525830924511, + 0.0558144748210907, + 0.025309979915618896, + 0.005748945754021406, + 0.09176786243915558, + 0.04580090567469597, + -0.001802746206521988, + 0.04070059210062027, + -0.0878300666809082, + 0.11983676254749298, + 0.07847346365451813, + -0.035752587020397186, + 0.014184404164552689, + -0.04365314543247223, + 0.07216737419366837, + 0.0494089275598526, + -0.09954509139060974, + -0.07211105525493622, + 0.046957388520240784, + 0.029278963804244995, + -0.02720465511083603, + 0.09144176542758942, + -0.024550890550017357, + -0.015109876170754433, + 0.12353020161390305, + -0.06131336838006973, + -0.03163054585456848, + -0.00985715538263321, + 0.03938358277082443, + -0.03256215155124664, + 0.02536025643348694, + 0.04210666939616203, + 0.013145418837666512, + 0.019744323566555977, + 0.11745338141918182, + 0.002565953880548477, + -0.0046151974238455296, + 0.004640447441488504, + -0.01160176657140255, + 0.03936464712023735, + 0.006603270769119263, + -0.020428884774446487, + 0.07607868313789368, + 0.08538609743118286, + 0.041804492473602295, + 0.014903525821864605, + -0.039826810359954834, + -0.08922447264194489, + 0.013417287729680538, + 0.05620255321264267, + 0.07754065096378326, + -0.03470059856772423, + 0.017016157507896423, + -0.0518205426633358, + -0.08239337801933289, + 0.0068237208761274815, + -0.009328922256827354, + 0.09967579692602158, + -0.049350544810295105, + -0.014919477514922619, + 0.11594163626432419, + 0.0040334854274988174, + -0.008862588554620743, + -0.05128038302063942, + -0.01910565420985222, + -0.006497434340417385, + 0.057690273970365524, + -0.06555988639593124, + -0.0783952847123146, + -0.002121283207088709, + 0.03951757401227951, + 0.0036794249899685383, + 0.05851081758737564, + 0.04518513381481171, + -0.0038719484582543373, + 0.036255642771720886, + -0.08122381567955017, + 0.01836446113884449, + -0.12228478491306305, + -0.028511982411146164, + -0.011650661937892437, + -0.05292245000600815, + 0.0061986492946743965, + 0.07129751890897751, + -0.017159277573227882, + 0.025866545736789703, + 0.01357787661254406, + -0.13572727143764496, + -0.06041032820940018, + 0.06825228780508041, + 0.07815296202898026, + -0.016630569472908974, + 0.04512578248977661, + 0.0904008150100708, + -0.03705696761608124, + 0.029913946986198425, + 0.0918593555688858, + 0.11844207346439362, + -0.031447071582078934, + 0.024922136217355728, + -0.056631527841091156, + 0.08434765040874481, + 0.03192727267742157, + -0.09711845219135284, + -0.0736217349767685, + -0.0392693355679512, + -0.01587245613336563, + 0.0004422329366207123, + -0.03323450684547424, + 0.022801723331212997, + 0.021854812279343605, + -0.002091458300128579, + -0.07529273629188538, + -0.0779525488615036, + 0.05402090400457382, + -0.07683536410331726, + 0.016498014330863953, + -0.06550651788711548, + 0.02364080771803856, + 0.09570302069187164, + 0.05481031537055969, + -0.009080225601792336, + 0.01197740901261568, + 0.05472739040851593, + -0.03618208318948746, + -0.010378731414675713, + 0.019115785136818886, + 0.007613572292029858, + -0.06855800747871399, + 0.0037479265592992306, + -0.07659077644348145, + 0.07853808999061584, + -0.03008956089615822, + 0.1388910412788391, + -0.008087326772511005, + -0.04959932342171669, + -0.07068032026290894, + 0.008142957463860512, + -0.03131917491555214, + 0.053351350128650665, + 0.04390658438205719, + 0.0793236494064331, + 0.027297910302877426, + -0.02160029113292694, + 0.15010517835617065, + 0.04446285963058472, + -0.04441145062446594, + -0.048087507486343384, + -0.05718188360333443, + -0.04617037624120712, + -0.010363179259002209, + 0.020320087671279907, + -0.06806303560733795, + 0.014382373541593552, + -0.003251938149333, + -0.051646891981363297, + 0.040618300437927246, + 0.1404690146446228, + 0.11432871222496033, + -0.12149269878864288 + ] + }, + "p244_254.wav": { + "name": "p244", + "embedding": [ + 0.02267284132540226, + 0.08950132131576538, + 0.001772264949977398, + -0.007002172060310841, + -0.043781403452157974, + 0.07006856054067612, + -0.12842966616153717, + 0.1217845007777214, + -0.06789173930883408, + 0.15788127481937408, + -0.07104265689849854, + 0.08979351818561554, + -0.024333367124199867, + -0.20156364142894745, + -0.03780628368258476, + 0.05626312643289566, + -0.06781038641929626, + -0.011971860192716122, + -0.0709281712770462, + -0.016078006476163864, + 0.054661765694618225, + 0.03927809000015259, + 0.014632712118327618, + -0.026649275794625282, + 0.01823336072266102, + 0.05039310082793236, + 0.019736649468541145, + 0.055123135447502136, + 0.025863392278552055, + -0.08084969967603683, + -0.03343670070171356, + 0.10604381561279297, + -0.031401269137859344, + 0.03500845283269882, + 0.06250065565109253, + -0.006048311945050955, + 0.017024002969264984, + -0.041905052959918976, + -0.01837330125272274, + 0.030735468491911888, + -0.039884667843580246, + 0.06538999080657959, + 0.030266832560300827, + 0.0221833698451519, + 0.057657185941934586, + 0.029406949877738953, + -0.02092100866138935, + -0.06744278967380524, + -0.07698270678520203, + 0.18445947766304016, + 0.08587168902158737, + -0.034685175865888596, + -0.03320767357945442, + -0.10137896984815598, + 0.10593029111623764, + -0.02107778750360012, + -0.15286000072956085, + -0.06655935198068619, + 0.10060349851846695, + 0.15369179844856262, + -0.020365405827760696, + -0.02726658619940281, + 0.013924109749495983, + 0.12650908529758453, + -0.012485582381486893, + 0.1056627556681633, + 0.043741028755903244, + 0.0696001797914505, + 0.013850214891135693, + 0.02924380451440811, + 0.03949317708611488, + 0.06465169042348862, + 0.010466444306075573, + -0.019939659163355827, + 0.048722002655267715, + 0.0037677884101867676, + -0.027086449787020683, + 0.024974798783659935, + -0.02324608340859413, + 0.01931760273873806, + -0.0223697442561388, + 0.02485673315823078, + -0.011648105457425117, + -0.01984689012169838, + -0.014308599755167961, + 0.04988565295934677, + -0.02361106500029564, + 0.014154995791614056, + 0.06518375873565674, + 0.036780040711164474, + 0.019127173349261284, + 0.04675702378153801, + -0.03646767511963844, + -0.10256878286600113, + -0.0009558231104165316, + 0.016554323956370354, + -0.016134019941091537, + 0.04751855880022049, + 0.01622507907450199, + -0.03139703348278999, + 0.11870048195123672, + 0.038625456392765045, + -0.017814885824918747, + 0.03130226954817772, + -0.11381719261407852, + 0.11681395024061203, + 0.07140105217695236, + 0.008671518415212631, + 0.04424026608467102, + -0.06266017258167267, + 0.09019289165735245, + 0.0737273171544075, + -0.14745956659317017, + -0.0777050107717514, + 0.03056967817246914, + 0.0023697202559560537, + -0.024548741057515144, + 0.11161129921674728, + -0.008922174572944641, + -0.010600641369819641, + 0.1171237975358963, + -0.0916517972946167, + -0.05656455084681511, + -0.024845119565725327, + 0.04811275377869606, + -0.08362922072410583, + 0.03778211399912834, + 0.038325369358062744, + -0.03550461307168007, + 0.021209044381976128, + 0.09921400249004364, + -0.02430238574743271, + 0.0280729029327631, + 0.014888405799865723, + -0.05205099657177925, + 0.023402482271194458, + -0.06809167563915253, + 0.014149989001452923, + 0.05656815320253372, + 0.06378643214702606, + 0.04633314907550812, + -0.004467300605028868, + -0.0804833471775055, + -0.10245928168296814, + -0.002957882359623909, + 0.013201483525335789, + 0.05815167352557182, + -0.00012937959400005639, + 0.0006998542230576277, + -0.039799969643354416, + -0.08054407685995102, + 0.010311481542885303, + -0.03324545919895172, + 0.10333181172609329, + -0.009456876665353775, + -0.002893076278269291, + 0.10194623470306396, + 0.015406377613544464, + -0.020343879237771034, + -0.07443255931138992, + -0.04750433564186096, + 0.008626674301922321, + 0.03097820095717907, + -0.08455244451761246, + -0.03965308889746666, + 0.023441532626748085, + 0.027392562478780746, + 0.014931093901395798, + 0.03306759521365166, + 0.04002920165657997, + 0.013606026768684387, + 0.05221894755959511, + -0.08975961804389954, + 0.01714259944856167, + -0.11647796630859375, + -0.06259243935346603, + -0.01730668731033802, + -0.037339240312576294, + -0.00779766496270895, + 0.09336385875940323, + -0.025324106216430664, + 0.012019439600408077, + 0.00288563990034163, + -0.08692871779203415, + -0.08279089629650116, + 0.0888817235827446, + 0.08361510932445526, + 0.006263306830078363, + 0.06132703647017479, + 0.0456986203789711, + -0.047159235924482346, + 0.06329408288002014, + 0.05485544353723526, + 0.10920080542564392, + -0.008428208529949188, + 0.033179763704538345, + -0.0736638531088829, + 0.07989007234573364, + 0.06301747262477875, + -0.09383939951658249, + -0.07224112749099731, + -0.017554650083184242, + -0.05685288831591606, + 0.050482284277677536, + -0.022692793980240822, + -0.009400018490850925, + 0.016151705756783485, + 0.005223544780164957, + -0.08291236311197281, + -0.05807602405548096, + 0.06960805505514145, + -0.06974229216575623, + -0.019771402701735497, + -0.04360705614089966, + 0.0423688106238842, + 0.10989385843276978, + 0.07894083857536316, + -0.01238461583852768, + -0.006537243723869324, + 0.07101429253816605, + -0.06634881347417831, + -0.01016603410243988, + 0.016114355996251106, + 0.005355095025151968, + -0.07101620733737946, + 0.02863890677690506, + -0.09414098411798477, + 0.03883692994713783, + -0.07073958963155746, + 0.14297594130039215, + -0.014428096823394299, + -0.07590172439813614, + -0.08147718757390976, + 0.04531485214829445, + -0.04757470265030861, + 0.023833908140659332, + 0.029940733686089516, + 0.05362982675433159, + 0.06394033133983612, + -0.05830772966146469, + 0.12204479426145554, + 0.027873637154698372, + -0.013711145147681236, + -0.04286234453320503, + -0.04472770169377327, + -0.041315849870443344, + 0.009365711361169815, + 0.011626794934272766, + -0.10894149541854858, + -0.009801985695958138, + 0.022848108783364296, + -0.027861744165420532, + 0.07467971742153168, + 0.1273859292268753, + 0.05719268321990967, + -0.1358308345079422 + ] + }, + "p244_271.wav": { + "name": "p244", + "embedding": [ + 0.057645201683044434, + 0.0522216260433197, + -0.016730522736907005, + 0.04023532569408417, + -0.04599135369062424, + 0.01421796903014183, + -0.14918893575668335, + 0.13732680678367615, + -0.006119074299931526, + 0.12446120381355286, + -0.06242717057466507, + 0.12070503830909729, + -0.008513492532074451, + -0.1773672103881836, + -0.0035244268365204334, + 0.05956079065799713, + -0.023398486897349358, + -0.04099506139755249, + -0.022574730217456818, + -0.04124479740858078, + 0.039195407181978226, + 0.06727701425552368, + 0.042618099600076675, + 0.00013865064829587936, + 0.03249586373567581, + 0.06079108268022537, + -0.011989271268248558, + 0.03230298310518265, + -0.0014632532838732004, + -0.0675337165594101, + -0.013594978488981724, + 0.07291044294834137, + -0.035699307918548584, + -0.00637893658131361, + 0.026181882247328758, + -0.009651538915932178, + 0.0035682141315191984, + -0.08618289977312088, + -0.05564896762371063, + 0.0007229861803352833, + -0.05842367559671402, + 0.0689009502530098, + 0.028169099241495132, + -0.046671390533447266, + 0.051316551864147186, + 0.010972786694765091, + -0.02745550125837326, + -0.0518372617661953, + -0.13427606225013733, + 0.16263169050216675, + 0.06281419843435287, + 0.0428144708275795, + -0.07910054922103882, + -0.07005368173122406, + 0.10406118631362915, + -0.01458258368074894, + -0.08127206563949585, + -0.02513802796602249, + 0.05648406594991684, + 0.17644548416137695, + -0.03262477368116379, + -0.047475408762693405, + 0.06382229924201965, + 0.09621010720729828, + 0.0806242972612381, + 0.045787516981363297, + 0.10362613201141357, + 0.10905762016773224, + -0.01700802892446518, + -0.005089037586003542, + 0.0375291146337986, + 0.10394600033760071, + 0.056084200739860535, + -0.0007612472400069237, + 0.0024307407438755035, + 0.03590548038482666, + -0.038377776741981506, + -0.039751481264829636, + -0.033238984644412994, + -0.016377098858356476, + 0.005728748627007008, + 0.008211709558963776, + 0.038420505821704865, + 0.041770704090595245, + -0.0430108867585659, + 0.05411100015044212, + 0.04587821662425995, + -0.032544154673814774, + 0.06098322942852974, + -0.008483397774398327, + -0.0010454041184857488, + 0.061437271535396576, + -0.09184131026268005, + -0.07204633951187134, + 0.020317886024713516, + 0.02035820670425892, + 0.009742151945829391, + 0.06786319613456726, + 0.05574149638414383, + -0.04042826592922211, + 0.14737583696842194, + 0.034708138555288315, + -0.009336868301033974, + 0.014033161103725433, + -0.07744282484054565, + 0.09101902693510056, + 0.103970468044281, + -0.027645952999591827, + 0.07163559645414352, + -0.05604071915149689, + 0.049251753836870193, + 0.05181020870804787, + -0.147222638130188, + -0.07301433384418488, + 0.034258291125297546, + 0.01853165216743946, + 0.004912801552563906, + 0.1522858738899231, + 0.012938303872942924, + 0.08543366193771362, + 0.11822488903999329, + -0.10506215691566467, + -0.05713406205177307, + -0.012322880327701569, + 0.07293687760829926, + -0.0871485024690628, + 0.0767558366060257, + 0.05422208458185196, + -0.020910784602165222, + 0.021453406661748886, + 0.04741090536117554, + -0.018971379846334457, + 0.001412482582964003, + -0.025089384987950325, + -0.04493342712521553, + 0.020168103277683258, + -0.03967045992612839, + -0.035306405276060104, + 0.045289862900972366, + 0.03356914967298508, + 0.04138214513659477, + -0.004025834612548351, + -0.04669450595974922, + -0.1451512575149536, + 0.018440131098031998, + 0.016490837559103966, + 0.0952434241771698, + -0.006791363470256329, + -0.029295364394783974, + -0.05709148943424225, + -0.061325572431087494, + 0.005849067587405443, + -0.01900847628712654, + 0.07369867712259293, + -0.015769490972161293, + 0.02874220535159111, + 0.08293113112449646, + 0.024048801511526108, + 0.005152805242687464, + -0.011926950886845589, + -0.03857610374689102, + -0.0041598966345191, + 0.04460723325610161, + -0.05170983448624611, + -0.08146385103464127, + -0.023161929100751877, + 0.0389215350151062, + -0.030733171850442886, + 0.05901958793401718, + 0.008873896673321724, + 0.029586229473352432, + 0.0038467594422399998, + -0.0661846473813057, + 0.003719617612659931, + -0.09510025382041931, + -0.07293621450662613, + 0.01977679505944252, + 0.008334549143910408, + -0.031437139958143234, + 0.0715172216296196, + 0.041669655591249466, + 0.07302892208099365, + -0.0416928306221962, + -0.0628652423620224, + -0.09711092710494995, + 0.02791094407439232, + 0.035985175520181656, + -0.014699403196573257, + 0.021091777831315994, + 0.05986753851175308, + -0.012188548222184181, + 0.05124721676111221, + 0.05844375491142273, + 0.07975989580154419, + 0.0036592292599380016, + 0.008387072943150997, + -0.054620251059532166, + 0.12821269035339355, + 0.1001145988702774, + -0.04460150748491287, + -0.07461026310920715, + -0.03888298571109772, + -0.10516244918107986, + 0.04814879223704338, + 0.012637008912861347, + 0.0189889557659626, + 0.0300883986055851, + -0.00805343221873045, + -0.12038549035787582, + -0.06939695030450821, + 0.06515085697174072, + -0.053924404084682465, + -0.01570354960858822, + -0.08085495978593826, + 0.03609049320220947, + 0.11877266317605972, + 0.03245849162340164, + 0.017538949847221375, + -0.04086510092020035, + 0.028179019689559937, + -0.04456644877791405, + 0.01193064171820879, + 0.08079929649829865, + 0.0485471673309803, + -0.1125328317284584, + -0.009575989097356796, + -0.06625263392925262, + 0.04212479665875435, + -0.023885540664196014, + 0.12376153469085693, + 0.029859911650419235, + -0.04269330948591232, + -0.10050852596759796, + 0.03531353920698166, + -0.0015867208130657673, + 0.07996632903814316, + 0.0156500656157732, + 0.06358222663402557, + 0.06748707592487335, + -0.08029983937740326, + 0.09023921191692352, + 0.05495235696434975, + -0.04432224482297897, + -0.06448254734277725, + -0.07485339045524597, + -0.02856951765716076, + 0.010917482897639275, + -0.012713112868368626, + -0.05862396955490112, + -0.022699255496263504, + 0.015809088945388794, + 0.0043995073065161705, + 0.05281329154968262, + 0.11953572928905487, + 0.04049871116876602, + -0.12376582622528076 + ] + }, + "p244_203.wav": { + "name": "p244", + "embedding": [ + 0.05320492386817932, + 0.047799136489629745, + 0.011436599306762218, + -0.008054366335272789, + -0.023845171555876732, + 0.06632715463638306, + -0.09804938733577728, + 0.09147490561008453, + 0.0045898850075900555, + 0.06327089667320251, + -0.06883655488491058, + 0.07314512133598328, + 0.0008444140548817813, + -0.14797191321849823, + 0.006608190946280956, + 0.04039071500301361, + -0.024048037827014923, + -0.004019101615995169, + -0.027416495606303215, + -0.0368630588054657, + 0.011207511648535728, + 0.04311623424291611, + 0.049417950212955475, + -0.024218495935201645, + 0.03420667350292206, + 0.06108112633228302, + -0.0023637874983251095, + 0.01371063943952322, + -0.022748593240976334, + -0.049748972058296204, + -0.030147580429911613, + 0.06466563045978546, + -0.04744365066289902, + -0.022828012704849243, + 0.03418948873877525, + -0.012585325166583061, + 0.028086630627512932, + -0.07548638433218002, + -0.02437128871679306, + 0.038551606237888336, + -0.059517960995435715, + 0.07637225836515427, + 0.04218212887644768, + -0.0038494295440614223, + 0.026847651228308678, + 0.009754986502230167, + -0.006152359768748283, + -0.03972157835960388, + -0.09933986514806747, + 0.15292508900165558, + 0.04567469656467438, + 0.01721138320863247, + -0.07361916452646255, + -0.027512740343809128, + 0.05169306695461273, + 0.00804288499057293, + -0.05235716700553894, + -0.010487522929906845, + 0.047256242483854294, + 0.08451905101537704, + 0.01697452738881111, + -0.02971804141998291, + 0.05106857419013977, + 0.07204754650592804, + 0.012445634230971336, + 0.025537747889757156, + 0.09421484917402267, + 0.09218649566173553, + -0.015106268227100372, + 0.005118653178215027, + 0.039460767060518265, + 0.04211316257715225, + 0.057070206850767136, + -0.014465108513832092, + 0.02861526608467102, + -0.016212793067097664, + -0.023425936698913574, + -0.0255250483751297, + -0.019385553896427155, + -0.02792409062385559, + 0.04901750013232231, + 0.008402163162827492, + 0.026795990765094757, + 0.04951261729001999, + -0.04182060807943344, + 0.03410498797893524, + 0.02267496846616268, + 0.05738399177789688, + 0.06915000081062317, + 0.0239560604095459, + 0.02781721204519272, + 0.03333546966314316, + -0.06266138702630997, + -0.05615337938070297, + 0.03887941688299179, + 0.03169476240873337, + 0.015654591843485832, + 0.04569553956389427, + 0.03876877576112747, + -0.0370047427713871, + 0.1081358790397644, + 0.008898444473743439, + -0.0037924880161881447, + -0.004547609481960535, + -0.059149276465177536, + 0.07554659247398376, + 0.09009566158056259, + -0.01851879060268402, + 0.05776584893465042, + -0.04132988676428795, + 0.04004490748047829, + 0.048314645886421204, + -0.09926323592662811, + -0.03564335033297539, + 0.011855682358145714, + 0.007635089568793774, + 0.03141538053750992, + 0.12859253585338593, + 0.009843738749623299, + 0.045731477439403534, + 0.06879091262817383, + -0.09167176485061646, + -0.037506163120269775, + 0.02302504889667034, + 0.017064429819583893, + -0.03809773176908493, + 0.01874214969575405, + 0.04098629206418991, + 0.010148350149393082, + -0.028210317716002464, + 0.036555882543325424, + 0.0032372898422181606, + 0.0311819426715374, + -0.04642470180988312, + 0.01508938055485487, + 0.018128652125597, + -0.013283981010317802, + -0.03218214213848114, + 0.027341201901435852, + 0.036524105817079544, + 0.010732549242675304, + 0.01738336682319641, + -0.04456997662782669, + -0.12605251371860504, + -0.008674852550029755, + 0.0010722950100898743, + 0.03957218676805496, + -0.02159672975540161, + -0.041124794632196426, + -0.05869763344526291, + -0.01643262431025505, + 0.0005537364631891251, + -0.01112966425716877, + 0.024158060550689697, + 0.05013992637395859, + -0.03911668807268143, + 0.0631740391254425, + 0.013196773827075958, + 0.005221178289502859, + -0.020275859162211418, + -0.05122780054807663, + 0.013813035562634468, + 0.030995093286037445, + -0.03232130408287048, + -0.07681521028280258, + -0.022009892389178276, + -0.027872085571289062, + -0.00691666966304183, + 0.030607599765062332, + 0.043206244707107544, + 0.0057489401660859585, + -0.03163832426071167, + -0.08502250164747238, + 0.015029589645564556, + -0.05445132777094841, + -0.06380262225866318, + 0.047905921936035156, + 0.014210125431418419, + -0.02075188420712948, + 0.09374929964542389, + 0.027967195957899094, + 0.04231597110629082, + -0.06153659150004387, + -0.022731691598892212, + -0.012186696752905846, + 0.03814654424786568, + 0.03575189411640167, + -0.00915575958788395, + 0.033084526658058167, + 0.020828580483794212, + -0.016791023313999176, + 0.0513828806579113, + 0.03743875026702881, + 0.052771344780921936, + -0.03646264970302582, + -0.0021127290092408657, + 0.0041466159746050835, + 0.09631451964378357, + 0.033778030425310135, + -0.03219907730817795, + -0.04204895719885826, + 0.0024648234248161316, + -0.054525911808013916, + 0.02790418267250061, + 0.00226418930105865, + 0.016059136018157005, + 0.02665839157998562, + -0.009727763012051582, + -0.07046971470117569, + -0.06503443419933319, + 0.03668923303484917, + -0.03864191100001335, + -0.019197283312678337, + -0.06485207378864288, + 0.05504381284117699, + 0.0919666439294815, + 0.013247310183942318, + -0.011289517395198345, + -0.012406980618834496, + -0.0014653801918029785, + -0.008494708687067032, + -0.009265957400202751, + 0.025266608223319054, + 0.05778200924396515, + -0.08423022925853729, + -0.005291566252708435, + -0.06840603053569794, + 0.041275035589933395, + -0.01362069882452488, + 0.07468315958976746, + 0.05122219771146774, + -0.02949412912130356, + -0.07358384877443314, + 0.02857038378715515, + 0.01028354186564684, + 0.03694801777601242, + 0.007761284708976746, + 0.016958113759756088, + 0.047975361347198486, + -0.0629507526755333, + 0.07172977924346924, + 0.034149229526519775, + -0.04743167385458946, + -0.05342298373579979, + -0.015073215588927269, + -0.012188675813376904, + 0.02875084988772869, + -0.013990381732583046, + -0.05342768132686615, + 0.009889054112136364, + 0.035517312586307526, + 0.04193177819252014, + 0.017920322716236115, + 0.08575962483882904, + 0.022102240473031998, + -0.07489384710788727 + ] + }, + "p244_152.wav": { + "name": "p244", + "embedding": [ + 0.06568039953708649, + 0.07050301134586334, + 0.015121426433324814, + 0.03542715683579445, + -0.007639400660991669, + 0.000384732149541378, + -0.11704064905643463, + 0.06026551127433777, + 0.06049394607543945, + 0.0890810489654541, + -0.11136486381292343, + 0.06300534307956696, + -0.03144402056932449, + -0.11153105646371841, + 0.011645074933767319, + 0.004853077232837677, + -0.021283747628331184, + -0.019176630303263664, + -0.014977691695094109, + -0.03683779016137123, + 0.031739816069602966, + 0.028890985995531082, + 0.051894064992666245, + -0.051564548164606094, + -0.01084556058049202, + 0.03681202605366707, + -0.009445001371204853, + -0.02565644681453705, + 0.006432653404772282, + -0.007784731686115265, + 0.05918963626027107, + 0.011419139802455902, + -0.00481805857270956, + 0.04123397544026375, + 0.0390835665166378, + 0.037033021450042725, + -0.023634470999240875, + -0.0033903345465660095, + -0.015534022822976112, + 0.05760395526885986, + -0.049196623265743256, + 0.07449229061603546, + 0.05927181988954544, + -0.06591930985450745, + 0.054184507578611374, + -0.0069709280505776405, + -0.02410479262471199, + 0.012685774825513363, + -0.0924324095249176, + 0.1296849548816681, + 0.032415907829999924, + 0.049245622009038925, + -0.06852807104587555, + 0.011016981676220894, + 0.06610535085201263, + -0.0039020217955112457, + -0.0638691857457161, + -0.03165901079773903, + 0.02272486872971058, + 0.0452842190861702, + -0.02567441388964653, + -0.05181419476866722, + -0.006496144458651543, + 0.03539993241429329, + 0.024695932865142822, + 0.03415378928184509, + 0.07912105321884155, + 0.10679687559604645, + -0.033390022814273834, + 0.01811676099896431, + 0.07058060169219971, + 0.046678733080625534, + 0.05361613631248474, + -0.010610930621623993, + 0.008627021685242653, + -0.033300288021564484, + -0.028978338465094566, + -0.008193012326955795, + 0.034127965569496155, + -0.022994857281446457, + -0.005106198135763407, + -0.054289668798446655, + 0.00948486290872097, + 0.03841902315616608, + -0.0521470308303833, + -0.02019362896680832, + 0.08034151792526245, + -0.01214711181819439, + 0.05394124984741211, + 0.06095908582210541, + 0.0067995465360581875, + 0.015406320802867413, + -0.045767344534397125, + -0.06889083981513977, + -0.017969008535146713, + -0.0266830213367939, + 0.06068703159689903, + 0.03987390547990799, + 0.0448191873729229, + 0.02920946106314659, + 0.06690320372581482, + 0.01593732088804245, + -0.02332831360399723, + -0.027879005298018456, + -0.07674582302570343, + 0.09171070903539658, + 0.09511812776327133, + -0.03631272912025452, + 0.00815240852534771, + -0.01907288283109665, + 0.011825218796730042, + 0.03335467353463173, + -0.03220153972506523, + -0.024864561855793, + 0.015264173969626427, + 0.06606915593147278, + 0.050294890999794006, + 0.10389401018619537, + 0.030422233045101166, + 0.014141361229121685, + 0.11506776511669159, + -0.05551592633128166, + -0.037076231092214584, + -0.019839921966195107, + 0.0027153100818395615, + -0.07247728109359741, + 0.06413573026657104, + 0.046325549483299255, + 0.012318139895796776, + 0.002652701223269105, + 0.04738154262304306, + 0.0047084493562579155, + 0.021685883402824402, + -0.0804065614938736, + 0.02493578940629959, + 0.06412941962480545, + -0.004564137198030949, + 0.020893307402729988, + 0.07060474157333374, + 0.004942305386066437, + 0.08554500341415405, + 0.07560121268033981, + -0.017686428502202034, + -0.09360737353563309, + 0.03937064856290817, + 0.04402584582567215, + 0.011577093973755836, + -0.049636200070381165, + -0.04219415411353111, + -0.03464174270629883, + -0.050765715539455414, + 0.07800976932048798, + -0.03237457573413849, + 0.05607454851269722, + 0.03024885803461075, + -0.025695523247122765, + 0.11722832918167114, + -0.015280376188457012, + 0.0021266797557473183, + -0.03746919333934784, + -0.06223081052303314, + -0.02988281100988388, + 0.028580032289028168, + -0.1587752401828766, + -0.05835855007171631, + -0.06271016597747803, + 0.018332980573177338, + 0.02145416848361492, + -0.009620556607842445, + 0.07113045454025269, + -0.030116654932498932, + 0.01783253811299801, + -0.0028718672692775726, + 0.005618592724204063, + -0.04031171277165413, + -0.10369075834751129, + -0.008024596609175205, + -0.03695688396692276, + 0.012727197259664536, + 0.07196111977100372, + -0.0263172946870327, + 0.023576980456709862, + -0.025948306545615196, + -0.07018887996673584, + -0.05338285118341446, + 0.040716271847486496, + 0.008761843666434288, + -0.03361821919679642, + 0.0235324427485466, + 0.053621962666511536, + -0.030684035271406174, + 0.02026905119419098, + -0.0004247799515724182, + 0.08760958909988403, + -0.07562284916639328, + 0.007745894603431225, + -0.027319807559251785, + 0.05717445909976959, + 0.0958368331193924, + -0.031041249632835388, + -0.056582316756248474, + -0.08980703353881836, + -0.01526031643152237, + -0.0061603933572769165, + -0.03898739069700241, + -0.02920238859951496, + -0.012367170304059982, + -0.017699792981147766, + -0.02984776720404625, + -0.09936054050922394, + -0.017922768369317055, + 0.003220178186893463, + 0.016064416617155075, + -0.08474445343017578, + 0.016015449538826942, + -0.03626994043588638, + 0.016837196424603462, + -0.0303809717297554, + 0.0441390797495842, + -0.02560199610888958, + -0.03497883677482605, + -0.03319574519991875, + 0.02868572250008583, + 0.05245283991098404, + 0.002589680254459381, + -0.06905016303062439, + -0.060260094702243805, + 0.05613602697849274, + -0.017674973234534264, + 0.05546843633055687, + 0.007831376045942307, + -0.024376019835472107, + 0.011616818606853485, + -0.0378858782351017, + -0.025648297742009163, + 0.017465008422732353, + 0.05622566118836403, + 0.01388239860534668, + 0.010057474486529827, + -0.02033090963959694, + 0.06108627840876579, + 0.054762739688158035, + 0.02007434144616127, + -0.04783332347869873, + -0.011268765665590763, + -0.04247445985674858, + 0.000974167138338089, + -0.003802998922765255, + -0.052601687610149384, + 0.04212568327784538, + -0.012764737010002136, + 0.035188090056180954, + 0.008754042908549309, + 0.07769253104925156, + 0.03181547671556473, + -0.05080236494541168 + ] + }, + "p244_168.wav": { + "name": "p244", + "embedding": [ + 0.056565508246421814, + 0.10569661855697632, + 0.01976991631090641, + 0.016167454421520233, + -0.01686066761612892, + 0.05318206548690796, + -0.09300638735294342, + 0.1022619903087616, + -0.0028305761516094208, + 0.11097203195095062, + -0.07566644251346588, + 0.07825879007577896, + -0.04601753130555153, + -0.13325703144073486, + -0.03003876470029354, + 0.037246305495500565, + -0.06474657356739044, + -0.014575082808732986, + -0.0264684297144413, + -0.021955300122499466, + 0.009934083558619022, + 0.018253004178404808, + 0.043765172362327576, + -0.01032787561416626, + 0.004264790564775467, + 0.0464717335999012, + -0.0137382997199893, + 0.01764575019478798, + 0.003650949103757739, + -0.05782259255647659, + -0.010250275954604149, + 0.06251734495162964, + -0.02665332891047001, + 0.02203410305082798, + 0.0396132618188858, + 0.0016502225771546364, + -0.0013912394642829895, + -0.0550323985517025, + -0.03445427119731903, + 0.02622019499540329, + -0.0410459041595459, + 0.06113039329648018, + 0.028976740315556526, + -0.04266804829239845, + 0.04016966372728348, + 0.009342637844383717, + -0.03406491130590439, + -0.02069433033466339, + -0.10190615803003311, + 0.1413787454366684, + 0.04822705313563347, + 0.012435030192136765, + -0.06034659966826439, + -0.04195810854434967, + 0.09271474927663803, + -0.012511786073446274, + -0.10435543954372406, + -0.01934734545648098, + 0.05127720907330513, + 0.1035361960530281, + -0.015034444630146027, + -0.034601837396621704, + -0.0006921999156475067, + 0.0784897431731224, + 0.04153509438037872, + 0.06304416060447693, + 0.07200072705745697, + 0.09118663519620895, + -0.022404808551073074, + 0.028127577155828476, + 0.05848971754312515, + 0.03265898674726486, + 0.05510114133358002, + -0.006718305870890617, + 0.021895799785852432, + -0.017620040103793144, + -0.0296504907310009, + -0.0004278969136066735, + -0.004838461987674236, + -0.03186143562197685, + 0.008121516555547714, + -0.011741980910301208, + 0.014575828798115253, + 0.017020730301737785, + -0.026703685522079468, + 0.022150270640850067, + 0.026279255747795105, + 0.02104608342051506, + 0.06673584133386612, + 0.04156454652547836, + 0.02037002332508564, + 0.07593825459480286, + -0.056258246302604675, + -0.08281802386045456, + 0.0035218074917793274, + -0.011316908523440361, + 0.03560544550418854, + 0.05660180002450943, + 0.03805754333734512, + -0.015298187732696533, + 0.09920457005500793, + 0.03190723434090614, + 0.006925049237906933, + -0.002623538486659527, + -0.09016817808151245, + 0.08034653961658478, + 0.07268591970205307, + -0.01996028982102871, + 0.02928842231631279, + -0.01607932150363922, + 0.08490611612796783, + 0.08069181442260742, + -0.10030349344015121, + -0.03755411505699158, + 0.01686638779938221, + 0.023562200367450714, + 0.011748241260647774, + 0.10431400686502457, + 0.0036321133375167847, + 0.025132248178124428, + 0.11550642549991608, + -0.0804922953248024, + -0.019314246252179146, + -0.00261731818318367, + 0.01315247267484665, + -0.06227680668234825, + 0.0479128398001194, + 0.029852773994207382, + -0.016977770254015923, + 0.003962523303925991, + 0.056579262018203735, + -0.003590494394302368, + -0.0027589770033955574, + -0.014792868867516518, + -0.029546651989221573, + 0.025381311774253845, + -0.029416430741548538, + 0.011119483038783073, + 0.04061873257160187, + 0.04402565211057663, + 0.02762262523174286, + 0.020840629935264587, + -0.04530724883079529, + -0.07301972806453705, + 0.022980893030762672, + 0.0374937430024147, + 0.03745894134044647, + -0.0025378642603754997, + -0.042062897235155106, + -0.02515600249171257, + -0.02632288634777069, + 0.053740113973617554, + -0.02566761150956154, + 0.061681587249040604, + 0.009704223833978176, + -0.011917075142264366, + 0.08598228543996811, + 0.024193791672587395, + -0.012578501366078854, + -0.05083724856376648, + -0.06380100548267365, + 0.004806314595043659, + 0.044742271304130554, + -0.11028078198432922, + -0.054466620087623596, + -0.019980769604444504, + 0.00043937284499406815, + -0.004930587485432625, + 0.023000026121735573, + 0.056260038167238235, + -0.007063616067171097, + 0.012684051878750324, + -0.042122963815927505, + 0.015917006880044937, + -0.07711641490459442, + -0.09213312715291977, + 0.005742879584431648, + -0.02615552581846714, + 0.009976689703762531, + 0.07130679488182068, + -0.013923478312790394, + 0.02293221279978752, + -0.03153935819864273, + -0.06742885708808899, + -0.031680211424827576, + 0.0642232894897461, + 0.031702347099781036, + 0.008542610332369804, + 0.03702723607420921, + 0.06184356287121773, + -0.026360029354691505, + 0.0495012141764164, + 0.01424497738480568, + 0.09329962730407715, + -0.05293044447898865, + 0.01893806643784046, + -0.03423337638378143, + 0.05290659889578819, + 0.07764897495508194, + -0.06535385549068451, + -0.09471289813518524, + -0.040083594620227814, + -0.047701042145490646, + 0.03219965100288391, + -0.026276051998138428, + -0.010520808398723602, + 0.01824675314128399, + -0.01838953047990799, + -0.07038309425115585, + -0.09503281116485596, + 0.061373695731163025, + -0.027713842689990997, + -0.007684936746954918, + -0.07138590514659882, + 0.037943996489048004, + 0.030346957966685295, + 0.04433427378535271, + -0.021969594061374664, + 0.03747117146849632, + 0.027651622891426086, + -0.02950470894575119, + -0.021597977727651596, + 0.031217336654663086, + 0.032784946262836456, + -0.049545299261808395, + -0.018668031319975853, + -0.06159907206892967, + 0.05239469185471535, + -0.03028920479118824, + 0.12433380633592606, + 0.007899793796241283, + -0.03463663160800934, + -0.043083272874355316, + 0.030646683648228645, + -0.031581319868564606, + 0.03180946037173271, + 0.03660577908158302, + 0.03586579114198685, + 0.02999577485024929, + -0.043787047266960144, + 0.0906069427728653, + 0.03280480206012726, + -0.015752756968140602, + -0.0313909612596035, + -0.01949360966682434, + -0.06354457139968872, + -0.01424131914973259, + -0.008922316133975983, + -0.07690262049436569, + 0.003482172265648842, + 0.007449437864124775, + 0.02683500200510025, + 0.03875287249684334, + 0.11064650118350983, + 0.03921329975128174, + -0.08053995668888092 + ] + }, + "p244_412.wav": { + "name": "p244", + "embedding": [ + 0.059551071375608444, + 0.09396977722644806, + -0.007790356408804655, + 0.03827323019504547, + -0.031122148036956787, + 0.08021914213895798, + -0.13160111010074615, + 0.1297227442264557, + -0.03387943655252457, + 0.13853919506072998, + -0.08293893188238144, + 0.11878636479377747, + -0.006550307851284742, + -0.1708064079284668, + -0.041420020163059235, + 0.04908297583460808, + -0.01511390134692192, + 0.010826004669070244, + -0.00890287570655346, + 0.010085998103022575, + 0.050186432898044586, + 0.0425027534365654, + 0.04095324128866196, + -0.025668812915682793, + 0.0361940935254097, + 0.036053795367479324, + 0.01619900017976761, + 0.06936417520046234, + 0.02931908331811428, + -0.06283420324325562, + -0.03523242473602295, + 0.13757073879241943, + -0.03425612673163414, + 0.03379429876804352, + 0.07027476280927658, + 0.014631631784141064, + -0.012448492459952831, + -0.07274185866117477, + -0.0018677401822060347, + -0.02096092514693737, + -0.025742243975400925, + 0.05728081986308098, + 0.02749268338084221, + -0.006675062235444784, + 0.04198485240340233, + 0.01832471787929535, + -0.017652049660682678, + -0.051068760454654694, + -0.09912580251693726, + 0.15159271657466888, + 0.03060276061296463, + 0.024431198835372925, + -0.08318814635276794, + -0.0815662294626236, + 0.09044089913368225, + -0.00455247750505805, + -0.09931713342666626, + -0.018587984144687653, + 0.07565685361623764, + 0.18303295969963074, + -0.010835006833076477, + -0.041080743074417114, + 0.021704111248254776, + 0.10754959285259247, + 0.03294294327497482, + 0.10348986834287643, + 0.08616535365581512, + 0.09886334836483002, + 0.029273122549057007, + 0.03710238263010979, + 0.020716063678264618, + 0.07193975150585175, + 0.0438961498439312, + -0.014550592750310898, + 0.016445836052298546, + 0.00466400571167469, + -0.03322482854127884, + 0.024070069193840027, + -0.03337256237864494, + -0.015817489475011826, + -0.005727203097194433, + 0.006391867529600859, + 0.029035791754722595, + 0.025645751506090164, + -0.04106895625591278, + 0.04555663466453552, + 0.0073151011019945145, + -0.016664739698171616, + 0.058821287006139755, + 0.02043408527970314, + 0.00013909365225117654, + 0.04111506789922714, + -0.07460179179906845, + -0.12922067940235138, + 0.019843820482492447, + 0.002329119248315692, + 0.014328515157103539, + 0.07003022730350494, + 0.03540678322315216, + -0.03142236918210983, + 0.10023465007543564, + 0.036998823285102844, + -0.0054785399697721004, + 0.03650575131177902, + -0.09243693202733994, + 0.10729318112134933, + 0.09154709428548813, + 0.00496859522536397, + 0.058631282299757004, + -0.07062047719955444, + 0.08093982934951782, + 0.07895738631486893, + -0.1539396047592163, + -0.07585584372282028, + 0.03915075212717056, + 0.02207566797733307, + 0.012164573185145855, + 0.11254385113716125, + 0.0005174963735044003, + 0.024131037294864655, + 0.09192382544279099, + -0.10582148283720016, + -0.06048337742686272, + -0.035661470144987106, + 0.03839374706149101, + -0.0737416073679924, + 0.054281871765851974, + 0.02367679588496685, + -0.01686018332839012, + -0.022690005600452423, + 0.06175989657640457, + -0.00546395406126976, + 0.01441828440874815, + 0.017339123412966728, + -0.05324285849928856, + 0.02747204154729843, + -0.052139945328235626, + 0.00864584930241108, + 0.03275572136044502, + 0.04912107437849045, + 0.043823085725307465, + 0.012414149008691311, + -0.05398445576429367, + -0.11230254173278809, + -0.016785483807325363, + 0.05911783128976822, + 0.061964720487594604, + -0.020540151745080948, + -0.04015234857797623, + -0.03434581682085991, + -0.05891314148902893, + 0.05093757063150406, + -0.01295282319188118, + 0.06875548511743546, + 0.013460883870720863, + 0.00600619800388813, + 0.08526816964149475, + -0.0013410001993179321, + -0.000845342583488673, + -0.057320207357406616, + -0.03240108862519264, + 0.02450636401772499, + 0.03732983022928238, + -0.08661596477031708, + -0.05807797238230705, + 0.006895546801388264, + 0.0024755909107625484, + -0.047786809504032135, + 0.01871403679251671, + 0.03775128722190857, + 0.022860705852508545, + 0.05361276865005493, + -0.03679286688566208, + -0.026529472321271896, + -0.13456949591636658, + -0.06961002200841904, + -0.0020515008363872766, + -0.0010099774226546288, + -0.008797619491815567, + 0.08168214559555054, + 0.03459955006837845, + 0.043608199805021286, + -0.008597624488174915, + -0.04494110494852066, + -0.06701546907424927, + 0.06338801234960556, + 0.06272050738334656, + 0.030632514506578445, + 0.0563620924949646, + 0.019242025911808014, + -0.017249440774321556, + 0.06670928746461868, + 0.0789564922451973, + 0.08576953411102295, + -0.0011255552526563406, + -0.00410756841301918, + -0.09396969527006149, + 0.1029408797621727, + 0.11418573558330536, + -0.07202354073524475, + -0.11462907493114471, + -0.02302691899240017, + -0.07886506617069244, + 0.045495133846998215, + -0.033001236617565155, + -0.004796125926077366, + 0.02436123788356781, + -0.03048814833164215, + -0.10970458388328552, + -0.08865918964147568, + 0.08036887645721436, + -0.060385968536138535, + -0.021434027701616287, + -0.07117162644863129, + 0.054617077112197876, + 0.08526913821697235, + 0.012556545436382294, + -0.019951485097408295, + -0.012037888169288635, + 0.05951451510190964, + -0.09091498702764511, + -0.025194905698299408, + 0.020978357642889023, + 0.004785995930433273, + -0.10062437504529953, + 0.033920541405677795, + -0.05357489734888077, + 0.05097579583525658, + -0.07629111409187317, + 0.15890458226203918, + -0.015446837991476059, + -0.06800419092178345, + -0.0695822462439537, + 0.044950924813747406, + -0.017370080575346947, + 0.02149895951151848, + 0.03292621672153473, + 0.05680186673998833, + 0.01768268272280693, + -0.1016058549284935, + 0.10827549546957016, + 0.020568612962961197, + -0.02066868543624878, + -0.07249072939157486, + -0.06639677286148071, + -0.04306124895811081, + 0.021274492144584656, + -0.01809285394847393, + -0.07401397079229355, + -0.016246456652879715, + 0.02581849694252014, + 0.0021219714544713497, + 0.0340658500790596, + 0.13973397016525269, + 0.030186116695404053, + -0.1141631230711937 + ] + }, + "p244_120.wav": { + "name": "p244", + "embedding": [ + 0.0345221683382988, + 0.11285677552223206, + -0.006185987964272499, + 0.00444819126278162, + -0.04851618409156799, + 0.04443643242120743, + -0.14280781149864197, + 0.16455696523189545, + -0.054629914462566376, + 0.11926575005054474, + -0.08495447039604187, + 0.09751155972480774, + -0.0506727397441864, + -0.1767335832118988, + -0.04004449024796486, + 0.069318987429142, + -0.0488586388528347, + -0.04349035769701004, + -0.040879592299461365, + -0.02426302433013916, + 0.01655694469809532, + 0.004437287803739309, + -0.009126175194978714, + 0.057895857840776443, + 0.021293045952916145, + 0.0665641576051712, + -0.0037109688855707645, + 0.045338451862335205, + 0.017536109313368797, + 0.007746345363557339, + -0.009824639186263084, + 0.09418481588363647, + -0.029059838503599167, + 0.013081266544759274, + 0.07159115374088287, + -0.00026314088609069586, + 0.011893361806869507, + -0.043273866176605225, + -0.02280638925731182, + 0.005177565850317478, + -0.058620356023311615, + 0.07651512324810028, + 0.043367937207221985, + 0.00030603446066379547, + 0.03683783486485481, + 0.05965195223689079, + -0.0029484110418707132, + -0.05564282089471817, + -0.10472553968429565, + 0.14723926782608032, + 0.0845227986574173, + -0.02044135332107544, + -0.07024499028921127, + -0.055844470858573914, + 0.10607326030731201, + -0.03724218159914017, + -0.11428283900022507, + -0.05419738590717316, + 0.0979962944984436, + 0.15035147964954376, + -0.04854988306760788, + -0.01990264095366001, + 0.010210538282990456, + 0.16217073798179626, + 0.06145327538251877, + 0.09531673789024353, + 0.04559844732284546, + 0.11191905289888382, + -0.04619233310222626, + 0.004203858319669962, + 0.08833819627761841, + 0.041186489164829254, + 0.046529099345207214, + -0.014624322764575481, + 0.01584678143262863, + 0.005087331403046846, + 0.0007320850272662938, + 0.0194782093167305, + -0.02834141254425049, + -0.013659695163369179, + -0.04466176778078079, + 0.030789121985435486, + -0.03721405193209648, + 0.008746621198952198, + -0.006488821469247341, + 0.07020560652017593, + 0.04476916044950485, + -0.009815419092774391, + 0.07588279992341995, + 0.07513284683227539, + 0.010681292973458767, + 0.06956884264945984, + -0.06521964818239212, + -0.06147092580795288, + 0.011778132058680058, + -0.02267150580883026, + 0.02839742973446846, + 0.06304428726434708, + 0.031682223081588745, + 0.007486862130463123, + 0.11619949340820312, + 0.05684630572795868, + -0.0018135188147425652, + 0.03489911928772926, + -0.10900737345218658, + 0.14764909446239471, + 0.05465555936098099, + -0.04299356788396835, + 0.029297037050127983, + -0.014288803562521935, + 0.0414859876036644, + 0.07062771916389465, + -0.11803363263607025, + -0.06383292376995087, + 0.03299330174922943, + 0.037048954516649246, + -0.03904881328344345, + 0.0872720330953598, + -0.008770468644797802, + 0.01533513143658638, + 0.10238590091466904, + -0.05033291131258011, + -0.06311125308275223, + -0.01857956126332283, + 0.043770015239715576, + -0.07190638780593872, + 0.04814283549785614, + 0.06744087487459183, + 0.005141375586390495, + 0.0175476111471653, + 0.10697303712368011, + 0.014797304756939411, + -0.008125048130750656, + 0.017246047034859657, + -0.03243488073348999, + 0.03565003722906113, + -0.011775722727179527, + 0.014176595956087112, + 0.02908923104405403, + 0.04835540056228638, + 0.041539084166288376, + 0.015653640031814575, + -0.017810266464948654, + -0.09884323179721832, + 0.006732898764312267, + 0.04855845123529434, + 0.10380532592535019, + -0.003862161422148347, + -0.0040578898042440414, + -0.03480366989970207, + -0.04818146675825119, + -0.0247996523976326, + -0.003616938367486, + 0.08203420042991638, + -0.044428907334804535, + -0.009084219112992287, + 0.11731656640768051, + 0.003149626310914755, + 0.007940972223877907, + -0.060447268187999725, + 0.005992789752781391, + 0.004215777385979891, + 0.0528411865234375, + -0.0694071501493454, + -0.0820966362953186, + 0.015340112149715424, + 0.05275840312242508, + -0.003037865739315748, + 0.07079257071018219, + 0.023328151553869247, + -0.002711064647883177, + 0.015954559668898582, + -0.07223737239837646, + 0.04205968230962753, + -0.09430976212024689, + -0.059846825897693634, + -0.0208941288292408, + -0.018279600888490677, + -0.01656361296772957, + 0.052218444645404816, + 0.018482070416212082, + 0.05238855257630348, + 0.025909263640642166, + -0.11537493020296097, + -0.08688834309577942, + 0.06682883948087692, + 0.08272383362054825, + -0.02036820910871029, + 0.059195246547460556, + 0.07914192974567413, + -0.05107014626264572, + 0.04094104841351509, + 0.052519600838422775, + 0.10583151131868362, + -0.03903021663427353, + 0.016622763127088547, + -0.06429634243249893, + 0.035176992416381836, + 0.052942998707294464, + -0.13259881734848022, + -0.06305655837059021, + -0.03044966608285904, + -0.021380890160799026, + 0.006965217180550098, + -0.011119682341814041, + 0.03047073259949684, + 0.02747570537030697, + -0.014237066730856895, + -0.07584354281425476, + -0.0850161537528038, + 0.0657251700758934, + -0.1002492755651474, + 0.019911937415599823, + -0.06504003703594208, + 0.031941067427396774, + 0.0934300571680069, + 0.0373072549700737, + -0.02253125235438347, + -0.014421112835407257, + 0.03891584649682045, + -0.027869481593370438, + -0.01874903216958046, + 0.04147224500775337, + 0.026441780850291252, + -0.10136489570140839, + 0.009756246581673622, + -0.08010652661323547, + 0.0838051438331604, + -0.031622424721717834, + 0.1586567610502243, + 0.015823224559426308, + -0.053576741367578506, + -0.09206540882587433, + -0.016890795901417732, + -0.034552544355392456, + 0.057748619467020035, + 0.022549351677298546, + 0.061687394976615906, + 0.0239492766559124, + -0.005867598112672567, + 0.14386054873466492, + 0.0446644052863121, + -0.05506458878517151, + -0.05955399572849274, + -0.042109981179237366, + -0.054780587553977966, + 0.019849447533488274, + 0.030567895621061325, + -0.09644058346748352, + -0.03136271610856056, + 0.005498300772160292, + -0.05479053407907486, + 0.09022976458072662, + 0.14143067598342896, + 0.09358908236026764, + -0.12136007845401764 + ] + }, + "p244_067.wav": { + "name": "p244", + "embedding": [ + 0.020868409425020218, + 0.0868513286113739, + -0.012039963155984879, + 0.019087977707386017, + -0.0729515552520752, + 0.07583948224782944, + -0.10541653633117676, + 0.11873645335435867, + -0.07380959391593933, + 0.14194393157958984, + -0.08430862426757812, + 0.11622262746095657, + -0.0546979159116745, + -0.17934924364089966, + -0.017293427139520645, + 0.06783819198608398, + -0.04402795806527138, + -0.04271041601896286, + -0.04180052503943443, + -0.028469868004322052, + 0.03680458664894104, + 0.01561243087053299, + 0.01897319406270981, + 0.028721995651721954, + 0.006416977383196354, + 0.08553045243024826, + -0.012912136502563953, + 0.030799776315689087, + 0.01150369644165039, + -0.050855159759521484, + -0.05115745961666107, + 0.10553304851055145, + -0.056656867265701294, + 0.01121559552848339, + 0.04766120761632919, + -0.00876043550670147, + -0.008931387215852737, + -0.050337910652160645, + -0.011606164276599884, + -0.017599213868379593, + -0.06905359029769897, + 0.07020455598831177, + 0.00306877912953496, + 0.0001026339887175709, + 0.0311671681702137, + 0.00494158361107111, + -0.029914572834968567, + -0.026356277987360954, + -0.09261718392372131, + 0.12716248631477356, + 0.08353427797555923, + -0.031998563557863235, + -0.05076141282916069, + -0.06290306150913239, + 0.11054226756095886, + -0.014636765234172344, + -0.13588395714759827, + -0.06840340793132782, + 0.09216269105672836, + 0.13853719830513, + -0.032242052257061005, + -0.020886607468128204, + 0.005845916457474232, + 0.11510229110717773, + 0.040641821920871735, + 0.12292227149009705, + 0.049254514276981354, + 0.1059156283736229, + -0.023208286613225937, + 0.02244659513235092, + 0.06283772736787796, + 0.06280370056629181, + 0.05181184411048889, + -0.015416629612445831, + 0.025779955089092255, + -0.0022751784417778254, + -0.006654226686805487, + 0.03142628073692322, + -0.02260248363018036, + -0.01621728017926216, + -0.03134561702609062, + -0.014710749499499798, + -0.021795710548758507, + -0.021698681637644768, + 0.003551172325387597, + 0.054710499942302704, + 0.05024096369743347, + 0.000979394419118762, + 0.07397016882896423, + 0.04378657042980194, + -0.01866992563009262, + 0.08207811415195465, + -0.07188402116298676, + -0.05842689424753189, + 0.01084179151803255, + 0.004157151561230421, + 0.011689719744026661, + 0.08458214998245239, + 0.033798880875110626, + -0.003460160456597805, + 0.11204814910888672, + 0.04379774630069733, + 0.006874361541122198, + 0.03510897234082222, + -0.09786175191402435, + 0.14100712537765503, + 0.07588119804859161, + -0.035735756158828735, + 0.03177005052566528, + -0.02765769511461258, + 0.09233300387859344, + 0.07977771759033203, + -0.12316806614398956, + -0.05609642341732979, + -0.011355175636708736, + -0.015557361766695976, + -0.04847920686006546, + 0.09977260231971741, + -0.029047349467873573, + 0.005727539304643869, + 0.11568583548069, + -0.07327874004840851, + -0.05858144909143448, + -0.009706265293061733, + 0.018438544124364853, + -0.09241557121276855, + 0.050521910190582275, + 0.03653712198138237, + 0.007419217377901077, + 0.038794904947280884, + 0.10721154510974884, + -0.027727147564291954, + -0.01003716979175806, + 0.04247761145234108, + -0.06914205849170685, + 0.007558742538094521, + -0.032879382371902466, + 0.015886986628174782, + 0.07359768450260162, + 0.04000311717391014, + 0.061109937727451324, + -0.023807067424058914, + 0.0012497404823079705, + -0.09182318300008774, + 0.01841042935848236, + 0.037720777094364166, + 0.06340830028057098, + 0.0013550283620133996, + 0.0004873467842116952, + -0.034900542348623276, + -0.08777841925621033, + 0.016995344310998917, + -0.018115662038326263, + 0.08811838924884796, + -0.03945860639214516, + 0.001946773030795157, + 0.09453526139259338, + 0.045616745948791504, + -0.013560041785240173, + -0.10332232713699341, + -0.04099069535732269, + 0.003214046359062195, + 0.05721449851989746, + -0.0923265665769577, + -0.060605041682720184, + 0.007285548839718103, + 0.051176127046346664, + -0.01324876956641674, + 0.05760982632637024, + 0.06655386090278625, + 0.024315889924764633, + 0.025252368301153183, + -0.0742875188589096, + 0.03546706587076187, + -0.08509795367717743, + -0.06393812596797943, + -0.018804963678121567, + -0.040829822421073914, + -0.0029831058345735073, + 0.06176944822072983, + -0.008249293081462383, + 0.023371916264295578, + -0.000571876298636198, + -0.09278358519077301, + -0.09932700544595718, + 0.06875362992286682, + 0.05416400730609894, + -0.003684660652652383, + 0.06501224637031555, + 0.06914102286100388, + -0.07024751603603363, + 0.04835633188486099, + 0.042042143642902374, + 0.13709813356399536, + -0.049365803599357605, + 0.04294247180223465, + -0.07167274504899979, + 0.04976804181933403, + 0.08467129617929459, + -0.10611759126186371, + -0.07544932514429092, + -0.035962000489234924, + -0.04060329496860504, + 0.06351238489151001, + -0.043235473334789276, + -0.03657742962241173, + 0.024615004658699036, + -0.016037333756685257, + -0.08906956017017365, + -0.07769998908042908, + 0.10148769617080688, + -0.0646141767501831, + -0.0024357701186090708, + -0.09675583988428116, + 0.043204087764024734, + 0.052898846566677094, + 0.05180158466100693, + -0.046868979930877686, + 0.03207521140575409, + 0.0725894346833229, + -0.025808483362197876, + 0.01369834691286087, + 0.06474174559116364, + 0.022981004789471626, + -0.07859141379594803, + -0.03240450844168663, + -0.09464406967163086, + 0.06016550213098526, + -0.03589615598320961, + 0.160593181848526, + -0.016197221353650093, + -0.043579649180173874, + -0.06344643235206604, + 0.04137660935521126, + -0.012816869653761387, + 0.03843008354306221, + 0.06086871027946472, + 0.0787402018904686, + 0.030957505106925964, + -0.04526152461767197, + 0.14024889469146729, + 0.028170615434646606, + -0.02721204236149788, + -0.053903162479400635, + -0.020322106778621674, + -0.059405043721199036, + 0.0197504460811615, + 0.014078475534915924, + -0.1281036138534546, + -0.00748630054295063, + 0.019126102328300476, + -0.02727348729968071, + 0.07681892067193985, + 0.13779094815254211, + 0.0967927947640419, + -0.09268027544021606 + ] + }, + "p244_348.wav": { + "name": "p244", + "embedding": [ + 0.06416963785886765, + 0.0763169527053833, + -0.03299425542354584, + 0.04098282381892204, + -0.06967906653881073, + 0.047166064381599426, + -0.11756372451782227, + 0.11179213225841522, + -0.019342811778187752, + 0.14263132214546204, + -0.05705989897251129, + 0.13704779744148254, + -0.0022996054030954838, + -0.1816350519657135, + -0.030605586245656013, + 0.043044961988925934, + -0.04927428066730499, + -0.04703671112656593, + -0.0530998557806015, + -0.04178537428379059, + 0.03982323408126831, + 0.06660129129886627, + 0.0455942340195179, + 0.006632889620959759, + 0.024298429489135742, + 0.07572554796934128, + -0.010593682527542114, + 0.03301914781332016, + 0.011640319600701332, + -0.10006465017795563, + -0.05677707493305206, + 0.08164320886135101, + -0.05086119472980499, + 0.010672129690647125, + 0.014715148136019707, + -0.018537038937211037, + 0.014582466334104538, + -0.058439094573259354, + -0.036608338356018066, + 0.030830949544906616, + -0.04347511753439903, + 0.07392939925193787, + 0.018461402505636215, + -0.03597142547369003, + 0.05048117786645889, + -0.0034174006432294846, + -0.025858085602521896, + -0.04569001495838165, + -0.10903674364089966, + 0.17590458691120148, + 0.08129538595676422, + -0.008880347944796085, + -0.05846276879310608, + -0.06529244780540466, + 0.09038583934307098, + -0.025317519903182983, + -0.12211281061172485, + -0.03669178485870361, + 0.0553026981651783, + 0.13649219274520874, + -0.02917296066880226, + -0.04795972630381584, + 0.045753784477710724, + 0.12120044231414795, + 0.08033176511526108, + 0.05919057875871658, + 0.09365145862102509, + 0.10905051231384277, + -0.03795982152223587, + 0.0016961735673248768, + 0.05388873815536499, + 0.08848769217729568, + 0.08406290411949158, + -0.0003825872263405472, + 0.030380364507436752, + 0.005348149221390486, + -0.009688726626336575, + -0.031847935169935226, + -0.018902946263551712, + -0.005971909966319799, + -0.0016954416641965508, + -0.0025203523691743612, + 0.010228863917291164, + 0.02720189467072487, + -0.04551564157009125, + 0.06288662552833557, + 0.04906798154115677, + -0.022211231291294098, + 0.051218800246715546, + 0.03666144609451294, + 0.018922779709100723, + 0.06296109408140182, + -0.07955645024776459, + -0.0784418061375618, + 0.03906489908695221, + 0.01877228543162346, + 0.012471899390220642, + 0.06295335292816162, + 0.051156848669052124, + -0.024583876132965088, + 0.12628428637981415, + 0.04476037994027138, + -0.020415350794792175, + 0.012895047664642334, + -0.07944655418395996, + 0.12012055516242981, + 0.11362238228321075, + -0.026701495051383972, + 0.05360058695077896, + -0.04528056085109711, + 0.08192526549100876, + 0.056361161172389984, + -0.13404487073421478, + -0.07066284120082855, + 0.023433204740285873, + -0.008017717860639095, + -0.006984381470829248, + 0.1085088849067688, + -0.006292938254773617, + 0.06264964491128922, + 0.1077122688293457, + -0.08239695429801941, + -0.0391920767724514, + -0.03114943765103817, + 0.05154057592153549, + -0.10968014597892761, + 0.061816513538360596, + 0.04747128486633301, + -0.006041971500962973, + 0.006270749494433403, + 0.08324433118104935, + -0.024418562650680542, + -0.003103762399405241, + -0.0017465186538174748, + -0.04680066555738449, + 0.006634939461946487, + -0.013291368260979652, + -0.01601908728480339, + 0.06028125062584877, + 0.01936379447579384, + 0.040837325155735016, + -0.023072805255651474, + -0.024967461824417114, + -0.13793975114822388, + 0.042109642177820206, + 0.015544407069683075, + 0.06919063627719879, + -0.006869792938232422, + -0.01729438826441765, + -0.0438687726855278, + -0.07317142188549042, + 0.03169111907482147, + -0.014413293451070786, + 0.05965622514486313, + -0.030996613204479218, + 0.006164215505123138, + 0.09972159564495087, + 0.02927928976714611, + -0.0006327853770926595, + -0.019514229148626328, + -0.029328860342502594, + 0.005025753751397133, + 0.05842050909996033, + -0.07635505497455597, + -0.08322034776210785, + -0.012893766164779663, + 0.02761763334274292, + -0.00658753514289856, + 0.07751573622226715, + 0.057326652109622955, + 0.004889404866844416, + 0.024311507120728493, + -0.07353408634662628, + -0.005548990797251463, + -0.08532489836215973, + -0.06867697834968567, + -0.011845898814499378, + -0.03660754859447479, + -0.02051054872572422, + 0.0806734636425972, + 0.025295086205005646, + 0.05031318590044975, + -0.04750332981348038, + -0.06907308101654053, + -0.08586178719997406, + 0.04537511616945267, + 0.05123066529631615, + 0.0036835186183452606, + 0.02592979371547699, + 0.06370057910680771, + -0.019487395882606506, + 0.06826324760913849, + 0.057477302849292755, + 0.0885062888264656, + -0.022730223834514618, + 0.03245188668370247, + -0.060124047100543976, + 0.10704690217971802, + 0.08858537673950195, + -0.06782245635986328, + -0.08526552468538284, + -0.045309655368328094, + -0.08879561722278595, + 0.046389006078243256, + -0.026801470667123795, + 0.010144572705030441, + 0.04984457045793533, + 0.005001446232199669, + -0.10068418085575104, + -0.09918620437383652, + 0.10351140797138214, + -0.05554025247693062, + -0.01126169040799141, + -0.08422324061393738, + 0.03590209037065506, + 0.09755320101976395, + 0.045386701822280884, + -0.029424484819173813, + -0.0033509526401758194, + 0.04767423868179321, + -0.022274363785982132, + 0.014419065788388252, + 0.06711696088314056, + 0.04518205672502518, + -0.12307103723287582, + -0.022879544645547867, + -0.07614308595657349, + 0.05048812925815582, + -0.05015058442950249, + 0.1369452029466629, + 0.025236688554286957, + -0.042625993490219116, + -0.08200784027576447, + 0.06793235242366791, + -0.024855712428689003, + 0.0686807930469513, + 0.039610885083675385, + 0.0635165274143219, + 0.05367117375135422, + -0.08354263007640839, + 0.09824296832084656, + 0.0734625905752182, + -0.04576064646244049, + -0.0790901780128479, + -0.0505632683634758, + -0.03072902001440525, + 0.038853466510772705, + 0.02813848853111267, + -0.07984182983636856, + -0.004669418558478355, + 0.023210391402244568, + -0.012019085697829723, + 0.06310807913541794, + 0.14355075359344482, + 0.06386779248714447, + -0.11344774067401886 + ] + }, + "p244_044.wav": { + "name": "p244", + "embedding": [ + 0.05540139600634575, + 0.0351874977350235, + -0.0029585787560790777, + -0.0036408863961696625, + -0.009717918932437897, + 0.026989303529262543, + -0.13735339045524597, + 0.10246618837118149, + -0.02932894229888916, + 0.1057426854968071, + -0.08385153114795685, + 0.0787532776594162, + -0.005749681498855352, + -0.14476078748703003, + -0.03264135122299194, + 0.04958081245422363, + -0.02901853248476982, + -0.013268353417515755, + -0.04734598845243454, + -0.013348409906029701, + 0.03271309658885002, + 0.05585765093564987, + 0.017678800970315933, + -0.018751535564661026, + -2.394833973085042e-05, + 0.05371611565351486, + 0.008370274677872658, + 0.03865957260131836, + 0.009304262697696686, + -0.017450083047151566, + 0.015023577027022839, + 0.09004774689674377, + -0.026044484227895737, + 0.0009122826159000397, + 0.04927607998251915, + 0.02071547694504261, + -0.003611566498875618, + -0.0842553973197937, + -0.021370701491832733, + 0.013384552672505379, + -0.06065421551465988, + 0.060138292610645294, + 0.038274116814136505, + 0.0030879653058946133, + 0.024408888071775436, + 0.02827766351401806, + -0.0088332649320364, + -0.06442015618085861, + -0.10005885362625122, + 0.16790227591991425, + 0.04864255338907242, + 0.014047691598534584, + -0.08935472369194031, + -0.03855591267347336, + 0.08309578895568848, + -0.0077942973002791405, + -0.062055446207523346, + -0.04749360680580139, + 0.057343170046806335, + 0.1353236436843872, + -0.01041158102452755, + -0.044429339468479156, + 0.03171449154615402, + 0.09943391382694244, + 0.013505324721336365, + 0.06197275221347809, + 0.10125812143087387, + 0.09637221693992615, + -0.01094371359795332, + 0.020567288622260094, + 0.04689057916402817, + 0.05445460230112076, + 0.04057963192462921, + -0.014234514907002449, + 0.03683260828256607, + 0.0012604668736457825, + -0.0359886959195137, + 0.014987404458224773, + -0.03495274484157562, + -0.03806743025779724, + 0.020563479512929916, + 0.0005404595285654068, + 0.011878499761223793, + 0.04789520427584648, + -0.04487988352775574, + 0.03433726355433464, + 0.02138691209256649, + 0.0005418236833065748, + 0.06738737225532532, + 0.0329102948307991, + 0.030989371240139008, + 0.025151332840323448, + -0.0516933873295784, + -0.09323399513959885, + 0.008121470920741558, + -0.0024637330789119005, + 0.023736722767353058, + 0.043473612517118454, + 0.02698652073740959, + -0.028227433562278748, + 0.10058945417404175, + -0.002524597104638815, + -0.014985373243689537, + -0.0031128115952014923, + -0.07942080497741699, + 0.09619386494159698, + 0.099323570728302, + -0.015833454206585884, + 0.014053039252758026, + -0.06924107670783997, + 0.03721923753619194, + 0.05781635269522667, + -0.11579690873622894, + -0.0548018142580986, + 0.052189093083143234, + 0.03476516529917717, + 0.026683229953050613, + 0.13142159581184387, + 0.010898714885115623, + 0.020617790520191193, + 0.08051857352256775, + -0.07659701257944107, + -0.04957641288638115, + 0.0006005354225635529, + 0.02204623818397522, + -0.03960549086332321, + 0.03626979514956474, + 0.032854702323675156, + 0.010973429307341576, + -0.02172589860856533, + 0.08298837393522263, + -0.010839487425982952, + 0.020128600299358368, + -0.043658968061208725, + 0.0002710595726966858, + 0.060335662215948105, + -0.021085208281874657, + -0.009002873674035072, + 0.02431986853480339, + 0.0639747604727745, + 0.029162375256419182, + 0.025574831292033195, + -0.07356759160757065, + -0.11855047941207886, + -0.007786398287862539, + 0.03783252835273743, + 0.06678080558776855, + -0.02601083740592003, + -0.03537067398428917, + -0.05401691049337387, + -0.025844207033514977, + -0.0037404238246381283, + -0.029338188469409943, + 0.05766249820590019, + 0.021084189414978027, + -0.017874745652079582, + 0.09360738843679428, + -0.025284549221396446, + 0.013361017219722271, + -0.02724376693367958, + -0.022132039070129395, + 0.017302291467785835, + 0.03225565329194069, + -0.041591793298721313, + -0.05928799510002136, + 0.01305367611348629, + 0.015114177018404007, + -0.014453674666583538, + -0.001210155664011836, + 0.018828436732292175, + 0.004517893306910992, + 0.013616982847452164, + -0.10014872997999191, + 0.01490868628025055, + -0.1160678118467331, + -0.04340996965765953, + 0.030036643147468567, + -0.000349000736605376, + 0.006367855705320835, + 0.07502906769514084, + -0.0036811628378927708, + 0.03091811202466488, + -0.03298807889223099, + -0.08331942558288574, + -0.03943921998143196, + 0.05338000878691673, + 0.0753025934100151, + -0.009122584015130997, + 0.02758536860346794, + 0.029099121689796448, + -0.0034411102533340454, + 0.02397848293185234, + 0.05102162063121796, + 0.08103230595588684, + -0.030999958515167236, + -0.01997513882815838, + -0.03418756648898125, + 0.10940631479024887, + 0.03795918822288513, + -0.06236086040735245, + -0.04988820478320122, + 0.0030434816144406796, + -0.05253837630152702, + 0.020179901272058487, + -0.0199077520519495, + 0.01477649062871933, + 0.0338677354156971, + -0.014915850013494492, + -0.12014935910701752, + -0.03963743522763252, + 0.03166377171874046, + -0.06261864304542542, + -0.002676093950867653, + -0.07130350917577744, + 0.03663774952292442, + 0.1020917147397995, + 0.037786319851875305, + -0.014607070945203304, + -0.031856633722782135, + 0.002835892140865326, + -0.06941057741641998, + -0.03648950159549713, + -0.008691705763339996, + 0.037000514566898346, + -0.07694466412067413, + -0.002713435096666217, + -0.06846268475055695, + 0.049588948488235474, + -0.04926304146647453, + 0.09001024812459946, + 0.021845895797014236, + -0.06423349678516388, + -0.08003246039152145, + -0.0019804886542260647, + -0.003215455450117588, + 0.05571264028549194, + 0.03837262839078903, + 0.018403928726911545, + 0.044507842510938644, + -0.07045572996139526, + 0.10923983156681061, + 0.04475123807787895, + -0.02649056911468506, + -0.05786821246147156, + -0.027255138382315636, + -0.01597152277827263, + 0.03250078856945038, + -0.005201913416385651, + -0.03966651111841202, + -0.0032188917975872755, + 0.02061603218317032, + -0.021886512637138367, + 0.04958562180399895, + 0.09706853330135345, + 0.037583090364933014, + -0.10383137315511703 + ] + }, + "p244_057.wav": { + "name": "p244", + "embedding": [ + 0.042658597230911255, + 0.07373440265655518, + -0.042017921805381775, + 0.04971172660589218, + -0.08102007210254669, + 0.06125273555517197, + -0.11694268882274628, + 0.13449028134346008, + -0.03624627739191055, + 0.12037333846092224, + -0.04670920968055725, + 0.14087115228176117, + 0.00011318037286400795, + -0.17798201739788055, + -0.02754015475511551, + 0.040677260607481, + -0.04235752671957016, + -0.016533244401216507, + -0.0717368796467781, + -0.024673495441675186, + 0.05648712068796158, + 0.024630118161439896, + 0.05028512701392174, + -0.04432780295610428, + 0.006298882886767387, + 0.052003875374794006, + 0.008977169170975685, + 0.04707060009241104, + 0.02072804793715477, + -0.05827939510345459, + -0.04008573293685913, + 0.11003127694129944, + -0.05210462212562561, + 0.00895748008042574, + 0.05134767293930054, + -0.04342135041952133, + -0.029322419315576553, + -0.047930993139743805, + -0.018395300954580307, + 0.009645577520132065, + -0.03082261234521866, + 0.06193145364522934, + 0.025976713746786118, + -0.025547288358211517, + 0.07112058997154236, + -0.014389791525900364, + -0.05688486248254776, + -0.013784706592559814, + -0.1082160472869873, + 0.13892841339111328, + 0.08027221262454987, + -0.0033687162213027477, + -0.08491973578929901, + -0.047700412571430206, + 0.11100733280181885, + -0.014018434099853039, + -0.12360776215791702, + -0.04192376136779785, + 0.05141473934054375, + 0.15656176209449768, + -0.021107863634824753, + -0.011425882577896118, + 0.03725047409534454, + 0.1016295775771141, + 0.056882549077272415, + 0.08021517097949982, + 0.09563928842544556, + 0.10773084312677383, + -0.013878921046853065, + 0.0630386471748352, + 0.027519889175891876, + 0.0867965966463089, + 0.018995199352502823, + -0.00758158415555954, + 0.03319406509399414, + -0.020736895501613617, + -0.009845266118645668, + -0.03240451216697693, + -0.04514143243432045, + -0.019291093572974205, + -0.01708867773413658, + 0.017963888123631477, + 0.035908762365579605, + 0.012050234712660313, + -0.049016982316970825, + 0.07073120772838593, + 0.03209540247917175, + -0.024402478709816933, + 0.037249986082315445, + 0.04311056435108185, + -0.00636585708707571, + 0.050601810216903687, + -0.08048838376998901, + -0.11849690973758698, + 0.003383701667189598, + 0.011985288932919502, + 0.01919235847890377, + 0.0612993985414505, + 0.021035224199295044, + -0.0037703639827668667, + 0.09749886393547058, + 0.07026691734790802, + -0.02102075144648552, + 0.030336380004882812, + -0.06137215346097946, + 0.11697441339492798, + 0.10063496977090836, + -0.004330971743911505, + 0.04971890151500702, + -0.05922890827059746, + 0.08101237565279007, + 0.04440369829535484, + -0.10373479872941971, + -0.07120360434055328, + 0.006141620688140392, + -0.005235287360846996, + -0.023264802992343903, + 0.134757399559021, + -0.006947047542780638, + 0.055613260716199875, + 0.10629017651081085, + -0.07855509221553802, + -0.04463636502623558, + -0.021638011559844017, + 0.055245526134967804, + -0.04844392091035843, + 0.06252002716064453, + 0.032610103487968445, + -0.013118140399456024, + 0.01573919877409935, + 0.07210180163383484, + -0.02472047321498394, + 0.016713324934244156, + 0.049177348613739014, + -0.07215912640094757, + 0.041919007897377014, + -0.03672518953680992, + -0.007667713798582554, + 0.07663096487522125, + 0.04351896792650223, + 0.07501128315925598, + -0.028448665514588356, + -0.008285744115710258, + -0.08659380674362183, + 0.005693176295608282, + 0.024349119514226913, + 0.06949149817228317, + -0.009844282642006874, + -0.01269880123436451, + -0.029022859409451485, + -0.08014222979545593, + 0.025880802422761917, + -0.027504265308380127, + 0.08404827862977982, + -0.026718009263277054, + 0.010596396401524544, + 0.07617653906345367, + 0.02967570535838604, + -0.006403231993317604, + -0.04598081111907959, + -0.028654057532548904, + 0.008319772779941559, + 0.053879186511039734, + -0.0867946594953537, + -0.05442504584789276, + -0.021900422871112823, + 0.02703044004738331, + -0.028688717633485794, + 0.04261992126703262, + 0.0548551008105278, + 0.015629053115844727, + 0.034706294536590576, + -0.07209552824497223, + 0.014745630323886871, + -0.09644142538309097, + -0.04417610540986061, + -0.018349912017583847, + -0.04618903622031212, + -0.040281087160110474, + 0.07412734627723694, + 0.03254743665456772, + 0.0423596128821373, + -0.003541739657521248, + -0.05816451832652092, + -0.08474371582269669, + 0.05352664738893509, + 0.03902830183506012, + -0.007147971540689468, + 0.05684029310941696, + 0.058591827750205994, + -0.03242700546979904, + 0.056032270193099976, + 0.07266870141029358, + 0.07109204679727554, + -0.03621084615588188, + -0.003321175929158926, + -0.09544070065021515, + 0.09888750314712524, + 0.11192983388900757, + -0.08583962917327881, + -0.0921175628900528, + -0.037021514028310776, + -0.07837015390396118, + 0.03923950344324112, + -0.04536805674433708, + -0.014613630250096321, + 0.06497185677289963, + 0.0039850943721830845, + -0.1330309361219406, + -0.07600510865449905, + 0.10415568202733994, + -0.09434092044830322, + 0.0005877655930817127, + -0.061691198498010635, + 0.017683925107121468, + 0.10313122719526291, + 0.000999506562948227, + -0.03477863967418671, + -0.011027686297893524, + 0.062136210501194, + -0.03392190486192703, + 0.022306038066744804, + 0.03726818412542343, + 0.03559507429599762, + -0.08566252142190933, + -0.0013286432949826121, + -0.049543119966983795, + 0.02244129590690136, + -0.03894244134426117, + 0.13845036923885345, + 0.006760017946362495, + -0.038349516689777374, + -0.08156262338161469, + 0.08797506988048553, + -0.02791464887559414, + 0.053304776549339294, + 0.04674801975488663, + 0.07543385028839111, + 0.022843074053525925, + -0.10655760765075684, + 0.13490071892738342, + 0.02066524140536785, + -0.0457330048084259, + -0.09066809713840485, + -0.027774915099143982, + -0.04519465193152428, + 0.021998699754476547, + 0.029997579753398895, + -0.07456813752651215, + -0.018419792875647545, + 0.011191231198608875, + -0.01641165465116501, + 0.06939584016799927, + 0.12185235321521759, + 0.07355348765850067, + -0.08811970055103302 + ] + }, + "p244_033.wav": { + "name": "p244", + "embedding": [ + 0.05503704398870468, + 0.04126527160406113, + 0.028578555211424828, + -0.021874483674764633, + -0.009847121313214302, + 0.0940089076757431, + -0.06819070130586624, + 0.07790213078260422, + 0.012370242737233639, + 0.02222418040037155, + -0.0717296376824379, + 0.05137820169329643, + -0.0009726779535412788, + -0.13882096111774445, + -0.00807705894112587, + 0.0543212816119194, + -0.03527560085058212, + 0.014220127835869789, + -0.06138240173459053, + -0.019632671028375626, + -0.014992786571383476, + 0.01048943679779768, + 0.06166643649339676, + -0.0200663935393095, + 0.04159843176603317, + 0.03275735676288605, + 0.004174490459263325, + 0.025599969550967216, + 0.0024124151095747948, + -0.016274787485599518, + -0.009249405935406685, + 0.058753468096256256, + -0.03836642578244209, + -0.021624622866511345, + 0.049998216331005096, + -0.006679716520011425, + 0.04524123668670654, + -0.09250281751155853, + -0.032838352024555206, + 0.0467701256275177, + -0.06930014491081238, + 0.07942825555801392, + 0.07616984844207764, + 0.013530037365853786, + 0.03430735692381859, + 0.010687392204999924, + -0.013379319570958614, + -0.044989049434661865, + -0.09564291685819626, + 0.13972485065460205, + 0.02319157123565674, + 0.02359095774590969, + -0.0843544751405716, + -0.006598832085728645, + 0.05079162120819092, + -0.006757604889571667, + -0.04895760491490364, + -0.02604241855442524, + 0.05102890729904175, + 0.06556835025548935, + 0.047526516020298004, + -0.004110292065888643, + 0.01991882175207138, + 0.06621947139501572, + 0.009147971868515015, + 0.017581192776560783, + 0.09697175025939941, + 0.09611494839191437, + 0.011887033469974995, + 0.027554944157600403, + 0.0553416982293129, + 0.006610002368688583, + 0.014754112809896469, + -0.003383040428161621, + 0.025151968002319336, + -0.030998259782791138, + -0.012653917074203491, + -0.025196246802806854, + -0.0029356912709772587, + -0.008422995917499065, + 0.061520420014858246, + 0.03234238922595978, + 0.01717015542089939, + 0.050243716686964035, + -0.04374992847442627, + 0.033682480454444885, + -0.013783849775791168, + 0.10162042081356049, + 0.0746852234005928, + 0.0407617911696434, + 0.010323528200387955, + 0.0009243618696928024, + -0.028158560395240784, + -0.08587627112865448, + -0.008755132555961609, + 0.02521700970828533, + -0.003991944715380669, + -0.006430109962821007, + 0.006756959483027458, + -0.03189900517463684, + 0.10079100728034973, + 0.008428608067333698, + -0.02478889934718609, + 0.01860320009291172, + -0.05652153119444847, + 0.057058185338974, + 0.04892893135547638, + 0.01361973024904728, + 0.05956698954105377, + -0.025912873446941376, + 0.03085711970925331, + 0.0531538724899292, + -0.06980676203966141, + -0.00903877429664135, + 0.022771088406443596, + 0.004799459595233202, + 0.04482216387987137, + 0.11981566250324249, + 0.003450536634773016, + 0.03170914947986603, + 0.04556145519018173, + -0.06718897074460983, + -0.013340558856725693, + 0.062368884682655334, + 0.0018227379769086838, + 0.024645287543535233, + -0.027156272903084755, + 0.022594686597585678, + 0.02368982322514057, + -0.0520721971988678, + 0.0425841361284256, + 0.027727916836738586, + 0.025195419788360596, + -0.05521911010146141, + 0.035098329186439514, + 0.03956956788897514, + 0.000834080739878118, + -0.04249418526887894, + 0.050750792026519775, + 0.06984292715787888, + -0.0005850158631801605, + 0.043573640286922455, + -0.06163248047232628, + -0.09233947098255157, + -0.0383978933095932, + -0.02143182046711445, + 0.04378749802708626, + -0.006941661238670349, + -0.018346618860960007, + -0.0790707990527153, + 0.023840874433517456, + 1.263245940208435e-05, + -0.009724571369588375, + 0.038023218512535095, + 0.07959675043821335, + -0.05844411998987198, + 0.050648804754018784, + -0.025519538670778275, + 0.028987377882003784, + -0.022427359595894814, + -0.05055466294288635, + 0.007468527182936668, + 0.031119007617235184, + -0.00751885399222374, + -0.04164040833711624, + 0.011285919696092606, + -0.050722166895866394, + -0.004625143948942423, + 0.001974336802959442, + 0.039731934666633606, + -0.00563558004796505, + -0.03561624884605408, + -0.07944482564926147, + 0.013095082715153694, + -0.03421042114496231, + -0.03314093127846718, + 0.07991906255483627, + 0.04608798772096634, + -0.019420582801103592, + 0.08691956102848053, + 0.04034686088562012, + 0.02982557751238346, + -0.03717201203107834, + -0.04152484983205795, + 0.02425471693277359, + 0.05419965833425522, + 0.03612910583615303, + -0.005846992135047913, + 0.042186662554740906, + 0.005433021113276482, + -0.01671779900789261, + 0.04475399851799011, + 0.023597944527864456, + 0.02329040691256523, + -0.04797558858990669, + -0.027197031304240227, + 0.022699818015098572, + 0.08339535444974899, + 0.0032104365527629852, + -0.04503514617681503, + -0.021230213344097137, + 0.03628489375114441, + -0.023001430556178093, + 0.005420295055955648, + -0.0006123166531324387, + 0.011518686078488827, + 0.0485251322388649, + -0.027095016092061996, + -0.05361117050051689, + -0.0662553533911705, + 0.013231858611106873, + -0.058311667293310165, + -0.007921005599200726, + -0.0318119153380394, + 0.034134261310100555, + 0.09536511451005936, + -0.020250875502824783, + 0.0023607080802321434, + 0.0007106075063347816, + -0.014448193833231926, + -0.01130728516727686, + -0.039694465696811676, + -0.0023696087300777435, + 0.041263043880462646, + -0.07747235149145126, + -0.00010490883141756058, + -0.0497434064745903, + 0.050729431211948395, + 0.025525305420160294, + 0.06620647758245468, + 0.06714387983083725, + -0.008791105821728706, + -0.054592691361904144, + 0.003910398110747337, + -0.007692305371165276, + 0.035516027361154556, + -0.0005606263875961304, + 0.006531648337841034, + 0.06001660227775574, + -0.01902925781905651, + 0.07483260333538055, + 0.03050580620765686, + -0.0711502805352211, + -0.03632104769349098, + 0.02073141559958458, + -0.014771663583815098, + 0.018105216324329376, + -0.021234482526779175, + -0.040807321667671204, + 0.026090865954756737, + 0.04086343199014664, + 0.01827331632375717, + 0.006655510514974594, + 0.048183273524045944, + 0.028873968869447708, + -0.027636181563138962 + ] + }, + "p244_273.wav": { + "name": "p244", + "embedding": [ + 0.0026476019993424416, + 0.05040179193019867, + -0.02965957298874855, + -0.034782592207193375, + -0.022863516584038734, + 0.03144398704171181, + -0.14000385999679565, + 0.051099713891744614, + -0.04079238325357437, + 0.13728491961956024, + -0.007415551692247391, + 0.08959319442510605, + -0.013946100138127804, + -0.09861291199922562, + -0.0044763414189219475, + 0.05538463220000267, + -0.048577889800071716, + -0.032904960215091705, + 0.01900862343609333, + -0.08309365063905716, + 0.02128327637910843, + -0.003264501690864563, + -0.01786132901906967, + -0.033455558121204376, + 0.02312278002500534, + 0.07343585789203644, + -0.0038511897437274456, + -0.01767529733479023, + -0.028988216072320938, + -0.05128886178135872, + -0.004760146141052246, + 0.07865680009126663, + -0.031286630779504776, + -0.027404900640249252, + 0.0321369543671608, + -0.005473798606544733, + 0.006576112005859613, + -0.016731375828385353, + 0.028515463694930077, + 0.05061473324894905, + -0.08200086653232574, + 0.08887961506843567, + 0.02601844072341919, + 0.011357372626662254, + 0.03733556717634201, + -0.016124669462442398, + -0.02678702399134636, + 0.036197301000356674, + -0.029411114752292633, + 0.09708891808986664, + 0.05593682825565338, + -0.02425423264503479, + -0.0386524498462677, + -0.007788142189383507, + 0.0639965683221817, + 0.029921142384409904, + -0.10787051171064377, + 0.0056901611387729645, + 0.015934761613607407, + 0.09393545985221863, + -0.014263492077589035, + -0.05579478293657303, + 0.03485441952943802, + 0.0968020036816597, + 0.02439579740166664, + 0.04180368036031723, + 0.05488671362400055, + 0.07529357075691223, + 0.0026147146709263325, + -0.055362768471241, + 0.06008877977728844, + 0.07915298640727997, + 0.0430389828979969, + -0.01995036005973816, + 0.04954618960618973, + -0.011623811908066273, + -0.006167737767100334, + -0.05614133179187775, + -0.03622627258300781, + -0.048705801367759705, + -0.07243897020816803, + -0.014460626058280468, + 0.018311824649572372, + 0.07117718458175659, + 0.010565374977886677, + -0.025768399238586426, + 0.06887920200824738, + -0.042999908328056335, + 0.03278893977403641, + 0.04510287940502167, + 0.011646484956145287, + 0.018368449062108994, + -0.07040495425462723, + -0.01980988308787346, + 0.01990605518221855, + -0.006179517600685358, + 0.06271880865097046, + 0.03327307105064392, + 0.02138558402657509, + 0.03103802353143692, + 0.06835385411977768, + 0.03468228876590729, + 0.01039789617061615, + -0.02561241202056408, + -0.07081673294305801, + 0.09570132195949554, + 0.07046829909086227, + -0.06066931411623955, + 0.027953507378697395, + 0.011127099394798279, + 0.025985557585954666, + -0.014827873557806015, + -0.10529714822769165, + -0.03224654868245125, + 0.010995421558618546, + 0.05927664786577225, + -0.014649520628154278, + 0.12406080216169357, + 0.020794177427887917, + 0.03692144528031349, + 0.06189810112118721, + -0.009922102093696594, + -0.04693252220749855, + -0.06247655674815178, + 0.04660366475582123, + -0.0950712263584137, + 0.07217497378587723, + 0.05943816155195236, + 0.03775598853826523, + 0.02648629993200302, + 0.0937858447432518, + 0.031699247658252716, + 0.00045697903260588646, + -0.05652068182826042, + 0.005226939916610718, + 0.029063716530799866, + 0.011619489639997482, + 0.0555356927216053, + 0.056166961789131165, + -0.004735746420919895, + 0.09648586809635162, + 0.028552792966365814, + 0.008195789530873299, + -0.08477400988340378, + 0.018421396613121033, + 0.018365738913416862, + 0.0406486876308918, + -0.034434232860803604, + -0.03627825155854225, + 0.006090272217988968, + -0.06791737675666809, + -0.049891479313373566, + -0.03130611777305603, + 0.08802126348018646, + 0.011686543002724648, + -0.028816476464271545, + 0.09757503867149353, + 0.04058592766523361, + -0.009651847183704376, + 0.024637019261717796, + -0.025973135605454445, + -0.024761321023106575, + 0.06587699055671692, + -0.14869078993797302, + -0.0584012009203434, + -0.014292672276496887, + 0.03659965470433235, + 0.046618424355983734, + 0.04329434037208557, + 0.07247595489025116, + -0.006700476631522179, + 0.03669091314077377, + -0.006628260016441345, + 0.0065744612365961075, + -0.059426456689834595, + -0.05883348733186722, + -0.037214841693639755, + -0.07949355244636536, + -0.07062729448080063, + 0.06170422583818436, + -0.0452277846634388, + 0.055910624563694, + -0.031131815165281296, + -0.040166616439819336, + -0.044766124337911606, + 0.038244858384132385, + 0.020098481327295303, + -0.049127593636512756, + 0.004920534789562225, + 0.07999622821807861, + 0.007382713258266449, + -0.03009817749261856, + 0.03157437965273857, + 0.08087754249572754, + -0.06818441301584244, + 0.020835569128394127, + -0.058606937527656555, + 0.0851200595498085, + 0.055453091859817505, + -0.02522546611726284, + -0.031772222369909286, + -0.03446222096681595, + -0.042361222207546234, + 0.053891852498054504, + -0.048653945326805115, + -0.0010657142847776413, + -0.014853335916996002, + -0.021661918610334396, + -0.0667293444275856, + -0.05397786945104599, + 0.05126090347766876, + -0.07112500816583633, + -0.0023414152674376965, + -0.03467349335551262, + 0.01196509599685669, + 0.024627475067973137, + 0.06790965050458908, + -0.058424755930900574, + 0.05146559700369835, + 0.03203999623656273, + -0.03010169044137001, + 0.04194901883602142, + 0.04581429064273834, + 0.039138708263635635, + -0.048563115298748016, + -0.06794974207878113, + -0.0779951810836792, + 0.03790833055973053, + -0.04594273865222931, + 0.059765059500932693, + 0.0409092903137207, + -0.04962727427482605, + -0.02866518124938011, + -0.02079601213335991, + -0.014579536393284798, + 0.023257005959749222, + 0.07405896484851837, + 0.08979281038045883, + 0.03659071773290634, + 0.011373279616236687, + 0.08352388441562653, + 0.03708831965923309, + 0.028296543285250664, + -0.020455490797758102, + 0.005406586453318596, + -0.020148176699876785, + 0.022320300340652466, + 0.04028785973787308, + -0.09396903216838837, + 0.048410166054964066, + 0.021559784188866615, + 0.029390135779976845, + 0.04379183053970337, + 0.036473553627729416, + 0.05472201108932495, + -0.06304406374692917 + ] + }, + "p244_114.wav": { + "name": "p244", + "embedding": [ + 0.06669951975345612, + 0.10124754905700684, + -0.0022013874258846045, + 0.03649517148733139, + -0.021619021892547607, + 0.053168296813964844, + -0.16219760477542877, + 0.11655928194522858, + -0.01387164555490017, + 0.1186247318983078, + -0.06351030617952347, + 0.10898423194885254, + -0.01726130209863186, + -0.16677242517471313, + -0.024964701384305954, + 0.06468411535024643, + -0.026851870119571686, + -0.032134346663951874, + -0.0033342628739774227, + -0.008759641088545322, + 0.0032952409237623215, + 0.03859074413776398, + 0.049083881080150604, + -0.02073134109377861, + 0.06332868337631226, + 0.05428619682788849, + 0.014313665218651295, + 0.066304512321949, + -0.010303741320967674, + -0.051963094621896744, + -0.013814348727464676, + 0.0884525328874588, + -0.054471034556627274, + 0.006114103831350803, + 0.04680199548602104, + 0.026793599128723145, + 0.020099684596061707, + -0.08509883284568787, + -0.01705184578895569, + -0.005261139944195747, + -0.02789417654275894, + 0.09863394498825073, + 0.03861689195036888, + -0.0397944338619709, + 0.007458297535777092, + 0.04691072925925255, + 0.01988939195871353, + -0.0555143803358078, + -0.13748982548713684, + 0.15095984935760498, + 0.013565191067755222, + 0.05258611589670181, + -0.08982804417610168, + -0.09698932617902756, + 0.08381138741970062, + -0.004245487041771412, + -0.062168098986148834, + -0.03301975503563881, + 0.06551120430231094, + 0.16978979110717773, + -0.02783021330833435, + -0.0541827455163002, + 0.031541407108306885, + 0.09513824433088303, + 0.0769338458776474, + 0.07380522787570953, + 0.083738312125206, + 0.11341849714517593, + -0.0014829318970441818, + -0.016546843573451042, + 0.05440804362297058, + 0.07229621708393097, + 0.04665745794773102, + 0.014899211004376411, + -0.004094243980944157, + 0.008550656959414482, + -0.03569471091032028, + -0.002781311981379986, + -0.018585097044706345, + -0.035936299711465836, + -0.011547836475074291, + 0.016961177811026573, + 0.025844469666481018, + 0.05370710790157318, + -0.024885138496756554, + 0.05165655538439751, + 0.045758239924907684, + -0.03461221233010292, + 0.07788741588592529, + 0.016297314316034317, + -0.007213803008198738, + 0.03925038501620293, + -0.09498238563537598, + -0.07026637345552444, + 0.028194207698106766, + 0.007803819607943296, + 0.01729004830121994, + 0.0715162456035614, + 0.04602537304162979, + -0.02796456590294838, + 0.12523646652698517, + 0.03793541342020035, + 0.006545787677168846, + 0.011256947182118893, + -0.06981537491083145, + 0.11090090125799179, + 0.07812876999378204, + -0.01100641954690218, + 0.054404400289058685, + -0.04454074800014496, + 0.017416132614016533, + 0.08018931746482849, + -0.14238345623016357, + -0.1061008870601654, + 0.04114401340484619, + 0.030631156638264656, + 0.0026168236508965492, + 0.11518049240112305, + 0.0005010650493204594, + 0.04926629364490509, + 0.09329401701688766, + -0.11661004275083542, + -0.06290889531373978, + 0.0024043903686106205, + 0.06123144179582596, + -0.06810425221920013, + 0.04396265745162964, + 0.0688818171620369, + -0.02121102623641491, + -0.017339549958705902, + 0.05694655701518059, + 0.026569832116365433, + 0.008694757707417011, + -0.007300286553800106, + -0.02416439726948738, + 0.022513214498758316, + -0.019183343276381493, + -0.02127186954021454, + 0.04039110988378525, + 0.040891021490097046, + 0.032756298780441284, + 0.0137447165325284, + -0.04398074746131897, + -0.15867531299591064, + -0.004860861226916313, + 0.06436794251203537, + 0.08836264908313751, + -0.03412599861621857, + -0.047433964908123016, + -0.061883583664894104, + -0.046971842646598816, + 0.025024034082889557, + 0.014585485681891441, + 0.07874025404453278, + -0.004638315178453922, + 0.002713327994570136, + 0.11288897693157196, + 0.006145218852907419, + 0.0037173195742070675, + -0.017560182139277458, + -0.01592506282031536, + 0.009115886874496937, + 0.029176663607358932, + -0.056749127805233, + -0.09481942653656006, + -0.014187329448759556, + 0.019675396382808685, + -0.023463424295186996, + 0.08248897641897202, + 0.03267376869916916, + 0.02932296320796013, + 0.017345400527119637, + -0.03329450264573097, + -0.019061576575040817, + -0.08452650904655457, + -0.06144671142101288, + 0.0008327392861247063, + 0.005450002383440733, + -0.035220760852098465, + 0.0977049171924591, + 0.055239804089069366, + 0.09511526674032211, + -0.031255364418029785, + -0.04565175622701645, + -0.07411039620637894, + 0.0403832271695137, + 0.059165194630622864, + -0.005458163097500801, + 0.01866809092462063, + 0.043018363416194916, + 0.011813637800514698, + 0.056993789970874786, + 0.07636085152626038, + 0.06494415551424026, + -0.01523410715162754, + -0.0013035740703344345, + -0.06747864186763763, + 0.10821281373500824, + 0.09415844082832336, + -0.08186593651771545, + -0.06548730283975601, + -0.02638210356235504, + -0.08318708091974258, + 0.022101102396845818, + -0.0077890669927001, + 0.04065181314945221, + 0.0186697356402874, + -0.02592366747558117, + -0.0911296159029007, + -0.121262326836586, + 0.053475432097911835, + -0.056022629141807556, + -0.010926328599452972, + -0.059962570667266846, + 0.032457493245601654, + 0.07609052211046219, + 0.055883247405290604, + 0.020474789664149284, + -0.024406442418694496, + 0.03677567094564438, + -0.04756082966923714, + -0.0005149353528395295, + 0.09520062804222107, + 0.023777177557349205, + -0.1029689684510231, + 0.026280013844370842, + -0.06712538003921509, + 0.07708365470170975, + -0.04668726399540901, + 0.15436357259750366, + 0.021601703017950058, + -0.06359592825174332, + -0.09732343256473541, + -0.00601994851604104, + -0.04985116422176361, + 0.06155013293027878, + 0.011149303987622261, + 0.05528872460126877, + 0.046844758093357086, + -0.05233580619096756, + 0.09394358843564987, + 0.04739709198474884, + -0.03704778105020523, + -0.07554302364587784, + -0.09069973975419998, + -0.0346965566277504, + 0.04656268283724785, + -0.01053727325052023, + -0.06500908732414246, + -0.002842111513018608, + 0.033416878432035446, + 0.006041018292307854, + 0.0415038987994194, + 0.1435728669166565, + 0.050778940320014954, + -0.11512802541255951 + ] + }, + "p244_098.wav": { + "name": "p244", + "embedding": [ + 0.04837983846664429, + 0.07397189736366272, + -0.015257400460541248, + 0.004226955119520426, + -0.0217236690223217, + 0.04345892369747162, + -0.16690826416015625, + 0.10852667689323425, + -0.017744475975632668, + 0.12906280159950256, + -0.0865454226732254, + 0.09669071435928345, + -0.028869260102510452, + -0.1700381636619568, + 0.008216941729187965, + 0.04893476143479347, + 0.0021732402965426445, + -0.003368159756064415, + -0.02969559282064438, + -0.019953763112425804, + 0.04410291090607643, + 0.03686554357409477, + 0.03652225807309151, + -0.07071204483509064, + 0.018293865025043488, + 0.07157804071903229, + 0.0033935662358999252, + 0.053154293447732925, + -0.005582939367741346, + -0.03573019802570343, + -0.012815169990062714, + 0.09875959903001785, + -0.040312353521585464, + -0.02933599427342415, + 0.02862393856048584, + -0.0016386136412620544, + -0.0300297848880291, + -0.08071736991405487, + 0.021702971309423447, + -0.005472929682582617, + -0.04542834311723709, + 0.07055270671844482, + 0.020278697833418846, + -0.03449685871601105, + 0.031579796224832535, + 0.016280796378850937, + 0.004470291547477245, + -0.04703650623559952, + -0.10625828057527542, + 0.15504711866378784, + 0.05663695186376572, + 0.024519825354218483, + -0.08005991578102112, + -0.025812696665525436, + 0.08329600840806961, + 0.02192092500627041, + -0.06178736314177513, + -0.06989549100399017, + 0.08307104557752609, + 0.1362994909286499, + -0.0526692196726799, + -0.03864138573408127, + 0.058870889246463776, + 0.06797685474157333, + 0.028171837329864502, + 0.07244863361120224, + 0.09931854903697968, + 0.10579518973827362, + 0.011454739607870579, + 0.010721366852521896, + 0.005931943655014038, + 0.06777166575193405, + 0.0060185398906469345, + -0.0027391379699110985, + 0.020594749599695206, + -0.02383052371442318, + -0.037465650588274, + 0.005291081499308348, + -0.028236083686351776, + -0.051930129528045654, + 0.036599185317754745, + -0.0039236522279679775, + 0.01938287355005741, + 0.03994649648666382, + -0.0483199879527092, + 0.029257463291287422, + 0.046966832131147385, + -0.034857410937547684, + 0.09018257260322571, + -0.020626991987228394, + 0.011873006820678711, + 0.033042412251234055, + -0.10080374777317047, + -0.0901232659816742, + 0.0473480150103569, + 0.014334257692098618, + -0.002812618389725685, + 0.06270328909158707, + 0.047439202666282654, + -0.029730264097452164, + 0.14102405309677124, + 0.02559536322951317, + -0.027706529945135117, + 0.034407421946525574, + -0.06206132099032402, + 0.13693787157535553, + 0.10564863681793213, + -0.019914600998163223, + 0.043340325355529785, + -0.07963314652442932, + 0.004914093762636185, + 0.04742511361837387, + -0.12345616519451141, + -0.06824080646038055, + 0.03785701096057892, + 0.021179266273975372, + -0.012078160420060158, + 0.1373988687992096, + 0.00678655132651329, + 0.019382013007998466, + 0.119720458984375, + -0.11037038266658783, + -0.089786596596241, + -0.00984465517103672, + 0.05732637271285057, + -0.07139059156179428, + 0.05901322513818741, + 0.08729320019483566, + -0.01768692582845688, + 0.018650315701961517, + 0.06390143930912018, + -0.005462422035634518, + 0.021591048687696457, + -0.019534112885594368, + -0.017429277300834656, + 0.03725701570510864, + -0.046739932149648666, + -0.03273056447505951, + 0.015863344073295593, + 0.04314257949590683, + 0.05571836978197098, + -0.0027665982488542795, + -0.03711618110537529, + -0.1370280236005783, + -0.003486255183815956, + 0.031079839915037155, + 0.07326079159975052, + -0.03008180484175682, + -0.01804978959262371, + -0.0631231740117073, + -0.05878232419490814, + -0.011977490037679672, + -0.03093951940536499, + 0.07846591621637344, + 0.0038145771250128746, + 0.017129892483353615, + 0.09291879832744598, + 0.019267885014414787, + 0.032569874078035355, + -0.04674635827541351, + -0.04252927005290985, + 0.028227098286151886, + 0.015208818018436432, + -0.06798401474952698, + -0.06236961483955383, + -0.04348182678222656, + 0.024289807304739952, + -0.028147011995315552, + 0.04094310104846954, + 0.04463409632444382, + 0.04146460443735123, + 0.006917104125022888, + -0.07282091677188873, + 0.037571981549263, + -0.06347844749689102, + -0.03339000418782234, + 0.023619018495082855, + 0.011770635843276978, + -0.03156188502907753, + 0.09836532175540924, + 0.010770116932690144, + 0.0384446419775486, + -0.0594913549721241, + -0.043212853372097015, + -0.08475650101900101, + 0.032853178679943085, + 0.07375316321849823, + -0.041910912841558456, + 0.03750850260257721, + 0.024050042033195496, + -0.016666170209646225, + 0.019358089193701744, + 0.06663091480731964, + 0.08477072417736053, + 0.0016039833426475525, + -0.03596211224794388, + -0.04994069039821625, + 0.10153074562549591, + 0.09700529277324677, + -0.052259691059589386, + -0.04572824016213417, + -0.03073439933359623, + -0.08259276300668716, + 0.021225402131676674, + -0.019002296030521393, + -0.010798409581184387, + 0.029618043452501297, + -0.02029169350862503, + -0.10508082062005997, + -0.08839097619056702, + 0.031039409339427948, + -0.06059584766626358, + -0.005972542800009251, + -0.10417849570512772, + 0.0615026131272316, + 0.09850043058395386, + 0.02322964183986187, + -0.03207894787192345, + -0.05575793981552124, + 0.010520120151340961, + -0.044707559049129486, + 0.03450167179107666, + 0.043019164353609085, + 0.05543632060289383, + -0.10299453884363174, + 0.02348225936293602, + -0.07682305574417114, + 0.040648236870765686, + -0.03621683642268181, + 0.10659989714622498, + 0.04252257198095322, + -0.012846319004893303, + -0.09913890808820724, + 0.048100292682647705, + -0.001361750066280365, + 0.049081750214099884, + 0.026375235989689827, + 0.030131394043564796, + 0.07254589349031448, + -0.10557491332292557, + 0.09367348998785019, + 0.038298726081848145, + -0.020881816744804382, + -0.09438943862915039, + -0.050282105803489685, + -0.038230083882808685, + 0.04092351347208023, + -0.0033249109983444214, + -0.07708792388439178, + -0.03910594806075096, + 0.04860986769199371, + 0.009706912562251091, + 0.04692884534597397, + 0.09414441883563995, + 0.02205154299736023, + -0.08977436274290085 + ] + }, + "p244_286.wav": { + "name": "p244", + "embedding": [ + 0.03965359181165695, + 0.08334919065237045, + -0.03466814383864403, + 0.04762045666575432, + -0.05989878624677658, + 0.0547928623855114, + -0.11458101123571396, + 0.09626089781522751, + -0.04710391163825989, + 0.13282105326652527, + -0.0829072892665863, + 0.10916483402252197, + -0.0280429869890213, + -0.18205790221691132, + -0.05485405772924423, + 0.058250319212675095, + -0.071883425116539, + -0.0554778128862381, + -0.060775768011808395, + -0.023007620126008987, + 0.04706360399723053, + 0.053651344031095505, + 0.030458535999059677, + 0.014448348432779312, + 0.012662037275731564, + 0.06297767162322998, + 0.006117767654359341, + 0.04464814066886902, + 0.026059694588184357, + -0.05101980268955231, + -0.0373312383890152, + 0.11033035814762115, + -0.019709400832653046, + 0.017575323581695557, + 0.025407766923308372, + 0.014861850999295712, + 0.027334976941347122, + -0.06484168767929077, + -0.02902950346469879, + 0.012129507958889008, + -0.05121062695980072, + 0.06807412207126617, + 0.035225760191679, + -0.011037054471671581, + 0.03571804612874985, + 0.006440630182623863, + -0.04688020050525665, + -0.055549006909132004, + -0.10779765248298645, + 0.18085426092147827, + 0.08498485386371613, + 0.0013532856246456504, + -0.049499206244945526, + -0.07108765840530396, + 0.1134115681052208, + -0.010858546942472458, + -0.1234833225607872, + -0.05628567934036255, + 0.08164706081151962, + 0.17708179354667664, + -0.024145109578967094, + -0.01859411783516407, + 0.026249539107084274, + 0.1542750895023346, + 0.0541277639567852, + 0.07544867694377899, + 0.06862325966358185, + 0.1094503402709961, + 0.002875420032069087, + 0.00574179133400321, + 0.07665570080280304, + 0.07955022901296616, + 0.05018950626254082, + -0.012543427757918835, + 0.028607051819562912, + 0.000623376457951963, + -0.02043360285460949, + 0.005165505222976208, + -0.03938993066549301, + -0.01378672756254673, + -0.017424678429961205, + 0.0035220100544393063, + 0.0038184314034879208, + 0.005550440400838852, + -0.03064497373998165, + 0.05782994255423546, + 0.035546645522117615, + -0.02710813097655773, + 0.05448796600103378, + 0.046151816844940186, + 0.009554852731525898, + 0.049803655594587326, + -0.0439445897936821, + -0.09304702281951904, + 0.01230230089277029, + 0.01750217378139496, + 0.01815630868077278, + 0.057669252157211304, + 0.039531491696834564, + -0.030741414055228233, + 0.11637061834335327, + 0.028872525319457054, + -0.014081710949540138, + 0.01844765990972519, + -0.09600609540939331, + 0.12252411246299744, + 0.09930967539548874, + -0.01117746438831091, + 0.028271004557609558, + -0.023595262318849564, + 0.0728687047958374, + 0.07677887380123138, + -0.13526326417922974, + -0.06867365539073944, + 0.02532915771007538, + -0.002198990900069475, + -0.0194699726998806, + 0.0965455025434494, + -0.0052479831501841545, + 0.030898435041308403, + 0.10627418011426926, + -0.07768365740776062, + -0.050768714398145676, + -0.033573444932699203, + 0.03934682160615921, + -0.08280032128095627, + 0.037756457924842834, + 0.04382206127047539, + -0.007731298916041851, + -0.005797511897981167, + 0.08098673820495605, + -0.016620200127363205, + -0.004476112779229879, + 0.012059062719345093, + -0.06691382080316544, + 0.041057877242565155, + -0.03441961854696274, + -0.009010056033730507, + 0.06690674275159836, + 0.04378747195005417, + 0.04359416291117668, + -0.011721762828528881, + -0.03514957055449486, + -0.11276938766241074, + 0.016450412571430206, + 0.03223695605993271, + 0.07436487078666687, + 0.00576063571497798, + -0.005503570195287466, + -0.04481299966573715, + -0.0670711025595665, + 0.04269587993621826, + -0.025289416313171387, + 0.0870809555053711, + -0.02201303094625473, + -0.019382236525416374, + 0.10005062073469162, + -0.008835656568408012, + -0.013770369812846184, + -0.040185824036598206, + -0.014881419949233532, + 0.021023428067564964, + 0.039408572018146515, + -0.07216029614210129, + -0.06286806613206863, + 0.0189787857234478, + 0.034160830080509186, + -0.01696130447089672, + 0.03892875835299492, + 0.029355008155107498, + 0.00521048903465271, + 0.027820482850074768, + -0.06123510003089905, + 0.008841984905302525, + -0.09887248277664185, + -0.04599880427122116, + -0.0002470402978360653, + -0.04383402317762375, + -0.015362843871116638, + 0.07556407153606415, + 0.02148246578872204, + 0.0204310342669487, + -0.003336530877277255, + -0.09509699046611786, + -0.07216265797615051, + 0.07253819704055786, + 0.059912629425525665, + 0.021152537316083908, + 0.05105268582701683, + 0.05847620964050293, + -0.014046954922378063, + 0.0504198893904686, + 0.04916255176067352, + 0.10716527700424194, + -0.015229424461722374, + 1.4662742614746094e-05, + -0.06413403153419495, + 0.08112047612667084, + 0.06648196280002594, + -0.09531855583190918, + -0.06758002936840057, + -0.03555349260568619, + -0.06101922690868378, + 0.04711758717894554, + -0.02551228553056717, + 0.0076766228303313255, + 0.0366310216486454, + -0.007850791327655315, + -0.11808868497610092, + -0.08245821297168732, + 0.09915246069431305, + -0.07534398883581161, + -0.0184329766780138, + -0.0680866613984108, + 0.029651332646608353, + 0.09529390186071396, + 0.04011979699134827, + -0.02150655910372734, + 0.016918279230594635, + 0.05355050414800644, + -0.0731503963470459, + -0.00512725068256259, + 0.04470835253596306, + 0.01859690062701702, + -0.10760574042797089, + -0.008668920956552029, + -0.09228496998548508, + 0.055723294615745544, + -0.05420416593551636, + 0.14775095880031586, + 0.00951094925403595, + -0.043959733098745346, + -0.08135919272899628, + 0.05623441934585571, + -0.03840135782957077, + 0.06650450825691223, + 0.05323943495750427, + 0.06078232824802399, + 0.03487376868724823, + -0.07409492135047913, + 0.12832532823085785, + 0.054068438708782196, + -0.04190947860479355, + -0.07186160236597061, + -0.03206105902791023, + -0.03780420124530792, + 0.022655298933386803, + 0.020889680832624435, + -0.07102075219154358, + -0.008038150146603584, + 0.021124642342329025, + -0.029339898377656937, + 0.07949034869670868, + 0.13116487860679626, + 0.08380748331546783, + -0.08898495137691498 + ] + }, + "p244_145.wav": { + "name": "p244", + "embedding": [ + 0.000866294838488102, + 0.0798451155424118, + -0.013673443347215652, + 0.020723972469568253, + -0.06435421854257584, + 0.013350107707083225, + -0.12047069519758224, + 0.10891728103160858, + 0.016164865344762802, + 0.1136094480752945, + -0.06224357336759567, + 0.06195935606956482, + -0.058374445885419846, + -0.15152528882026672, + 0.055977534502744675, + 0.04750707745552063, + 0.021167410537600517, + -0.031977105885744095, + -0.04057375714182854, + -0.06225855275988579, + 0.004077243618667126, + 0.03531269729137421, + 0.030513400211930275, + -0.038371842354536057, + 0.023270083591341972, + 0.07396102696657181, + -0.02587416023015976, + -0.010700749233365059, + -0.04742564633488655, + -0.009029113687574863, + -0.05130244418978691, + 0.09797510504722595, + -0.06502918899059296, + -0.04335843399167061, + 0.04531361535191536, + -0.01698923669755459, + -0.02718903310596943, + -0.014191309921443462, + 0.005399320274591446, + 0.002884971909224987, + -0.0742228627204895, + 0.0817498117685318, + 0.03162350505590439, + 0.005313806235790253, + 0.03373723477125168, + 0.022291768342256546, + -0.00377840967848897, + -0.0063735488802194595, + -0.08136189728975296, + 0.11646412312984467, + 0.061205849051475525, + -0.010834423825144768, + -0.04973047599196434, + -0.02657543309032917, + 0.07113885879516602, + 0.005776381120085716, + -0.07698143273591995, + -0.0701075941324234, + 0.08882682025432587, + 0.06968583911657333, + -0.04100600630044937, + -0.020746076479554176, + 0.024267567321658134, + 0.07723593711853027, + 0.043395187705755234, + 0.08277633041143417, + 0.03791458159685135, + 0.11603325605392456, + -0.04079378396272659, + -0.008615761063992977, + 0.06929008662700653, + 0.01784130558371544, + 0.04518788680434227, + -0.03668772056698799, + -0.0043637314811348915, + -0.03244310989975929, + -0.007317100651562214, + -0.013275925070047379, + -0.0024896259419620037, + -0.041739773005247116, + 0.002316845115274191, + -0.05241987481713295, + -0.0029617012478411198, + -0.004984825849533081, + -0.00041303783655166626, + 0.01132383942604065, + 0.13004425168037415, + 0.002126149833202362, + 0.11696454882621765, + 0.014218205586075783, + -0.019793100655078888, + 0.07654641568660736, + -0.10456772148609161, + 0.024764958769083023, + 0.01925661787390709, + -0.026303928345441818, + 0.02189370058476925, + 0.07398516684770584, + 0.04710300266742706, + -0.013466921634972095, + 0.12686243653297424, + 0.020702531561255455, + 0.013879034668207169, + 0.04477982968091965, + -0.10073322802782059, + 0.13517625629901886, + 0.06391899287700653, + -0.060432784259319305, + 0.026656776666641235, + -0.016443196684122086, + 0.02790289930999279, + 0.026460178196430206, + -0.0722956657409668, + -0.03719186782836914, + -0.019390523433685303, + -0.0018782955594360828, + -0.05677981674671173, + 0.10295814275741577, + 0.006859760731458664, + -0.008002869784832, + 0.13616155087947845, + -0.10636334121227264, + -0.09849551320075989, + 0.006072650663554668, + 0.021749399602413177, + -0.12145094573497772, + 0.02007569745182991, + 0.07979589700698853, + 3.603869117796421e-05, + 0.05640546232461929, + 0.09385153651237488, + 0.010712558403611183, + 0.026797764003276825, + -0.016875602304935455, + -0.021045895293354988, + 0.012506329454481602, + 0.011942090466618538, + 0.0034771799109876156, + 0.053242526948451996, + 0.022998377680778503, + 0.08401992917060852, + -0.025539761409163475, + 0.028318075463175774, + -0.09664975851774216, + 0.027834001928567886, + 0.02957802824676037, + 0.04041682183742523, + -0.028063789010047913, + 0.018232114613056183, + -0.0432368703186512, + -0.10172879695892334, + 0.030729077756404877, + 0.01185903511941433, + 0.056991416960954666, + -0.04150890186429024, + -0.013196945190429688, + 0.14347302913665771, + 0.0668364018201828, + 0.0015882495790719986, + -0.07713723927736282, + -0.046904057264328, + 0.011026029475033283, + 0.05249374359846115, + -0.12046463787555695, + -0.07032088935375214, + -0.05698117986321449, + 0.041615184396505356, + 0.009288751520216465, + 0.0559646338224411, + 0.057193122804164886, + 0.03295191749930382, + 0.0011447503929957747, + -0.03908756002783775, + 0.03927215561270714, + -0.001677151769399643, + -0.039620012044906616, + -0.04620375484228134, + -0.026760349050164223, + -0.04354633390903473, + 0.08639715611934662, + -0.013604691252112389, + 0.02473180741071701, + -0.040581025183200836, + -0.05611288547515869, + -0.09409336745738983, + 0.004870757460594177, + 0.03614380210638046, + -0.06562957167625427, + 0.038515910506248474, + 0.06316792964935303, + -0.0866309329867363, + 0.0017547979950904846, + 0.05832800269126892, + 0.12391996383666992, + -0.05042435601353645, + 0.03219211846590042, + -0.05329654738306999, + 0.06256245821714401, + 0.07453096657991409, + -0.057908717542886734, + -0.05597337335348129, + -0.058611754328012466, + -0.036907948553562164, + 0.02614029310643673, + -0.02483871951699257, + -0.01442926935851574, + 0.005469983443617821, + 0.0015806432347744703, + -0.02993520349264145, + -0.10144856572151184, + 0.07258644700050354, + -0.020328521728515625, + -0.009655105881392956, + -0.10214070230722427, + 0.04523385316133499, + -0.001953795552253723, + 0.0534239187836647, + -0.04590844362974167, + -0.004398705437779427, + 0.043311767280101776, + 0.009254002943634987, + 0.06503857672214508, + 0.10150010883808136, + 0.0621287077665329, + -0.04731246083974838, + -0.05667645111680031, + -0.08424383401870728, + 0.08999298512935638, + -0.0075050294399261475, + 0.10175660997629166, + 0.03155006468296051, + -0.008158411830663681, + -0.046788379549980164, + 0.01786966808140278, + 0.004166973754763603, + 0.04085596650838852, + 0.06444135308265686, + 0.04867866262793541, + 0.04261824116110802, + 0.0021858741529285908, + 0.0928221046924591, + 0.03612302988767624, + -0.02014216221868992, + -0.04622621089220047, + -0.0173117034137249, + -0.06618103384971619, + 0.02471117675304413, + 0.03890076279640198, + -0.1259387731552124, + 0.016684317961335182, + 0.031813181936740875, + -0.008885195478796959, + 0.05564308911561966, + 0.09895449131727219, + 0.08597353100776672, + -0.08025602996349335 + ] + }, + "p244_352.wav": { + "name": "p244", + "embedding": [ + 0.027903886511921883, + 0.11415190249681473, + -0.04790414497256279, + 0.026707950979471207, + -0.018786540254950523, + 0.06470722705125809, + -0.1429920345544815, + 0.10831661522388458, + -0.034385357052087784, + 0.14468461275100708, + -0.057334356009960175, + 0.09034624695777893, + -0.05191733315587044, + -0.15536558628082275, + -0.00742834759876132, + 0.06274017691612244, + -0.02650057151913643, + -0.019660096615552902, + -0.03253774717450142, + 0.01039358600974083, + 0.022948743775486946, + 0.03404460847377777, + 0.01648814231157303, + -0.04296881705522537, + 0.01888411119580269, + 0.07106846570968628, + -0.002423522062599659, + 0.04482313245534897, + -0.014000087045133114, + -0.02699931338429451, + -0.028906112536787987, + 0.09947431087493896, + -0.05262455344200134, + 0.011102014221251011, + 0.0380474217236042, + 0.021925456821918488, + -0.022539017722010612, + -0.055622175335884094, + 0.03062969446182251, + -0.015329653397202492, + -0.05330852046608925, + 0.06953661143779755, + 0.02011418156325817, + -0.022405199706554413, + 0.03537743538618088, + 0.0013935146853327751, + 0.0005968024488538504, + -0.036983244121074677, + -0.0984746664762497, + 0.16575849056243896, + 0.09433721005916595, + 0.0035479580983519554, + -0.0513468012213707, + -0.05323337763547897, + 0.07536119222640991, + 0.02783386968076229, + -0.0995003879070282, + -0.07364583760499954, + 0.08300929516553879, + 0.15202495455741882, + -0.013569614849984646, + -0.021898936480283737, + 0.03672587871551514, + 0.11170487105846405, + 0.030833197757601738, + 0.0919969230890274, + 0.06481793522834778, + 0.09096160531044006, + 0.020300161093473434, + -0.002672998933121562, + 0.04485250264406204, + 0.04836146533489227, + 0.036209188401699066, + 0.00044649187475442886, + 0.02045116201043129, + -0.034408390522003174, + -0.03879784047603607, + 0.00043190945871174335, + -0.01596132293343544, + -0.06398924440145493, + -0.021290134638547897, + 3.605196252465248e-05, + 0.00096085574477911, + 0.03985308110713959, + 0.003571564331650734, + 0.022082265466451645, + 0.047020189464092255, + -0.0471661351621151, + 0.07490761578083038, + 0.020649980753660202, + -0.001139187254011631, + 0.03662538155913353, + -0.07390881329774857, + -0.06005021929740906, + 0.027182593941688538, + 0.015231535769999027, + -0.0006300150416791439, + 0.05722701549530029, + 0.03306960314512253, + -0.006450926885008812, + 0.11368940770626068, + 0.004762811586260796, + -0.004556384868919849, + 0.0221753790974617, + -0.07366780191659927, + 0.1262688785791397, + 0.06650125235319138, + -0.015598105266690254, + 0.03341161087155342, + -0.05215980112552643, + 0.0076317209750413895, + 0.06491941958665848, + -0.12095680832862854, + -0.07196345180273056, + 0.0449582040309906, + 0.017957298085093498, + -0.028348425403237343, + 0.11951908469200134, + 0.03818431496620178, + 0.014776283875107765, + 0.11245018988847733, + -0.11389647424221039, + -0.09117236733436584, + -0.030420556664466858, + 0.07737965881824493, + -0.06443020701408386, + 0.04842883348464966, + 0.08554523438215256, + -0.015290562994778156, + 0.005104021169245243, + 0.0626864954829216, + 0.006563291884958744, + 0.0270241592079401, + 0.010510570369660854, + -0.03985866159200668, + 0.014187393710017204, + -0.05674777925014496, + -0.0056015849113464355, + 0.018129663541913033, + 0.01700945943593979, + 0.055413588881492615, + -0.013049107044935226, + -0.03319576382637024, + -0.11505954712629318, + -0.016973815858364105, + 0.06654006242752075, + 0.07067476212978363, + -0.023813635110855103, + -0.03125523403286934, + -0.03188708424568176, + -0.06084626168012619, + -0.004812777973711491, + -0.03345659747719765, + 0.08851666748523712, + -0.014804107137024403, + -0.010163087397813797, + 0.11573286354541779, + 0.0019109472632408142, + -0.0005967402830719948, + -0.06391730904579163, + -0.01619056984782219, + 0.02532208524644375, + 0.032463036477565765, + -0.08146776258945465, + -0.07911534607410431, + -0.008213222026824951, + 0.024202415719628334, + 0.004798787645995617, + 0.06354346871376038, + 0.052032820880413055, + 0.0353596955537796, + -0.0008856877684593201, + -0.051867205649614334, + 0.006956511177122593, + -0.0706096887588501, + -0.04703080654144287, + -0.015954166650772095, + -0.030352376401424408, + -0.025803562253713608, + 0.0980248749256134, + 0.02150784246623516, + 0.04114314913749695, + -0.02575737237930298, + -0.04563649743795395, + -0.07864087074995041, + 0.055667150765657425, + 0.0779569000005722, + -0.03978807479143143, + 0.036223724484443665, + 0.05191851779818535, + -0.03555375337600708, + 0.007482793182134628, + 0.06534615904092789, + 0.09108556807041168, + -0.01974594220519066, + -0.025349974632263184, + -0.0822688415646553, + 0.06946583837270737, + 0.10867691040039062, + -0.09719139337539673, + -0.03970339894294739, + -0.03347230330109596, + -0.06146158277988434, + 0.007929987274110317, + -0.0631377249956131, + 0.01729501783847809, + 0.021671714261174202, + -0.02958552911877632, + -0.09739544987678528, + -0.1294325888156891, + 0.06472821533679962, + -0.06674446165561676, + -0.001584033714607358, + -0.05773462355136871, + 0.0472959503531456, + 0.06292291730642319, + 0.0546550378203392, + -0.043937746435403824, + 0.006834802217781544, + 0.04036595672369003, + -0.03309433162212372, + 0.039026204496622086, + 0.06429195404052734, + 0.03936392813920975, + -0.11006450653076172, + 0.024218343198299408, + -0.06988352537155151, + 0.07901452481746674, + -0.06447377800941467, + 0.15054550766944885, + 0.013008290901780128, + -0.03672163188457489, + -0.1127423346042633, + 0.03657326474785805, + -0.02566785365343094, + 0.03327825292944908, + 0.00048699136823415756, + 0.050732336938381195, + 0.04640598222613335, + -0.060877859592437744, + 0.11389008909463882, + 0.03285582736134529, + 0.007169988006353378, + -0.07271468639373779, + -0.061879776418209076, + -0.05909551680088043, + 0.03964494913816452, + 0.004095983691513538, + -0.07776191830635071, + -0.019568875432014465, + 0.02665437012910843, + 0.013542751781642437, + 0.07008476555347443, + 0.12661629915237427, + 0.056342367082834244, + -0.1183590292930603 + ] + }, + "p244_008.wav": { + "name": "p244", + "embedding": [ + 0.039513878524303436, + 0.07909629493951797, + -0.038770534098148346, + 0.0327041856944561, + -0.05641026049852371, + 0.014332274906337261, + -0.12009327858686447, + 0.10119545459747314, + -0.018728960305452347, + 0.10527503490447998, + -0.06064216420054436, + 0.12288598716259003, + -0.03122006729245186, + -0.13796360790729523, + -0.01639382541179657, + 0.0637514516711235, + -0.038995955139398575, + -0.046994589269161224, + -0.009234906174242496, + -0.03133096173405647, + 0.03958454728126526, + 0.04382617771625519, + 0.03852836415171623, + 0.007387572433799505, + 0.018128884956240654, + 0.0705672949552536, + 0.005204600282013416, + 0.028237273916602135, + -0.0016749268397688866, + -0.04088608920574188, + -0.012447429820895195, + 0.06859572976827621, + -0.01795373111963272, + 0.01633540913462639, + 0.029273319989442825, + 0.0016611374448984861, + 0.013443110510706902, + -0.049109604209661484, + -0.01720798760652542, + 0.006688239052891731, + -0.040972210466861725, + 0.07344033569097519, + 0.028256084769964218, + -0.03818638250231743, + 0.020737024024128914, + 0.007735445164144039, + -0.03072717785835266, + -0.02640649303793907, + -0.10358743369579315, + 0.15726891160011292, + 0.05397598445415497, + 0.023792622610926628, + -0.06669197976589203, + -0.04396532103419304, + 0.09702610224485397, + -0.010626784525811672, + -0.08489739149808884, + -0.03304330259561539, + 0.04935958981513977, + 0.1380203664302826, + -0.02528848499059677, + -0.040924470871686935, + 0.04238341003656387, + 0.11290633678436279, + 0.059677790850400925, + 0.0510471872985363, + 0.07893804460763931, + 0.10233412683010101, + -0.015668055042624474, + -0.010304788127541542, + 0.056144773960113525, + 0.09653525054454803, + 0.05569203943014145, + 0.01034574955701828, + 0.00625847652554512, + 0.00014209530490916222, + -0.031023502349853516, + -0.011181945912539959, + -0.021251436322927475, + -0.044935740530490875, + -0.041518982499837875, + -0.00843728706240654, + 0.022131910547614098, + 0.019020933657884598, + -0.006263173185288906, + 0.0436544269323349, + 0.06281575560569763, + -0.042734041810035706, + 0.05449814349412918, + 0.026043463498353958, + -0.01034363079816103, + 0.04628857597708702, + -0.07016055285930634, + -0.06909722834825516, + 0.012961129657924175, + 0.018828894942998886, + 0.04907117411494255, + 0.05535848066210747, + 0.04460000991821289, + -0.0017285272479057312, + 0.10297612845897675, + 0.026457324624061584, + 0.008337809704244137, + -0.006018521264195442, + -0.07360824942588806, + 0.11333294212818146, + 0.09616672247648239, + -0.03373955935239792, + 0.04212629050016403, + -0.04265093803405762, + 0.03882293030619621, + 0.04288604483008385, + -0.10755352675914764, + -0.07527566701173782, + 0.006028910167515278, + 0.01955416239798069, + -5.770226562162861e-05, + 0.09991393983364105, + 0.007132283877581358, + 0.05472737178206444, + 0.09964706748723984, + -0.08907028287649155, + -0.06829674541950226, + -0.028726322576403618, + 0.05415859818458557, + -0.06862740218639374, + 0.05374690890312195, + 0.07115484774112701, + 0.007600478362292051, + 0.013574568554759026, + 0.06500902771949768, + 0.00834614597260952, + 0.018878545612096786, + -0.009039871394634247, + -0.04007747396826744, + 0.02418578416109085, + -0.030702337622642517, + -0.00492717232555151, + 0.06748516857624054, + 0.028090212494134903, + 0.057854555547237396, + 0.0038598976098001003, + -0.012338299304246902, + -0.1263551414012909, + 0.016844825819134712, + 0.05090313404798508, + 0.05546088144183159, + -0.021372433751821518, + -0.04049351438879967, + -0.033505067229270935, + -0.05648123845458031, + -0.0021226233802735806, + -0.005176561418920755, + 0.06427891552448273, + -0.022564534097909927, + 0.014879985712468624, + 0.10262786597013474, + 0.013848081231117249, + -0.015709880739450455, + -0.035439178347587585, + -0.020820967853069305, + 0.006157045718282461, + 0.04766130447387695, + -0.0785871297121048, + -0.09080027043819427, + -0.018941668793559074, + 0.04475794732570648, + -0.011631695553660393, + 0.05054289102554321, + 0.037730228155851364, + 0.010627719573676586, + 0.007027782499790192, + -0.03486822545528412, + 0.013682324439287186, + -0.07636146247386932, + -0.0688614696264267, + -0.0037491396069526672, + -0.016645360738039017, + -0.030306901782751083, + 0.07677282392978668, + 0.033976390957832336, + 0.07495146244764328, + -0.024683427065610886, + -0.06513631343841553, + -0.0777592808008194, + 0.04816911742091179, + 0.03779111057519913, + -0.021404629573225975, + 0.033410802483558655, + 0.045552462339401245, + -0.02002175897359848, + 0.028809700161218643, + 0.04019254446029663, + 0.08596429228782654, + -0.04565665125846863, + -0.005720173008739948, + -0.06268956512212753, + 0.07553169131278992, + 0.09040579199790955, + -0.08701770752668381, + -0.05009842664003372, + -0.060127004981040955, + -0.05938676744699478, + 0.02922808937728405, + -0.025477472692728043, + 0.009625066071748734, + 0.01655624806880951, + -0.015479977242648602, + -0.11396532505750656, + -0.09799760580062866, + 0.061736732721328735, + -0.04954129084944725, + -0.0004789404047187418, + -0.06177568435668945, + 0.03774429112672806, + 0.07778225839138031, + 0.024979565292596817, + -0.014359983615577221, + 0.003015118418261409, + 0.022015955299139023, + -0.031146174296736717, + 0.010306322947144508, + 0.06568862497806549, + 0.05681601166725159, + -0.06998932361602783, + -0.023770418018102646, + -0.0756036639213562, + 0.05078805610537529, + -0.03409186005592346, + 0.13871105015277863, + 0.00909865740686655, + -0.053936123847961426, + -0.08164601027965546, + 0.014933167956769466, + -0.022704225033521652, + 0.0662720799446106, + 0.031069371849298477, + 0.039036720991134644, + 0.03828074783086777, + -0.06260357797145844, + 0.10861402750015259, + 0.06348785758018494, + -0.03521537780761719, + -0.07163076102733612, + -0.05024534463882446, + -0.033390264958143234, + 0.03413733094930649, + -0.0021868175826966763, + -0.052751123905181885, + 0.0025727166794240475, + 0.00847792997956276, + 0.0023390576243400574, + 0.07736755907535553, + 0.11673449724912643, + 0.06847669929265976, + -0.08555512875318527 + ] + }, + "p244_204.wav": { + "name": "p244", + "embedding": [ + 0.021620549261569977, + 0.07910554111003876, + -0.029602771624922752, + 0.005245045758783817, + -0.07521495968103409, + 0.02685179002583027, + -0.12578876316547394, + 0.15610788762569427, + -0.022922364994883537, + 0.14713451266288757, + -0.08117420971393585, + 0.1377536952495575, + -0.03466911241412163, + -0.18588680028915405, + 0.02607247792184353, + 0.03931224346160889, + 0.02169107086956501, + -0.016864748671650887, + -0.044106971472501755, + -0.045448750257492065, + 0.03236180171370506, + 0.03707735612988472, + 0.0025132019072771072, + -0.020725637674331665, + 0.03817856311798096, + 0.08177869021892548, + -0.024342479184269905, + -0.0037554181180894375, + -0.016854457557201385, + -0.04801994189620018, + -0.04592582955956459, + 0.08890283852815628, + -0.0953814685344696, + -0.011339335702359676, + 0.05178200826048851, + -0.049624595791101456, + -0.04213443771004677, + -0.03400759398937225, + -0.018996406346559525, + 0.015408488921821117, + -0.06682349741458893, + 0.07053438574075699, + 0.004916166886687279, + 0.005188826471567154, + 0.06428449600934982, + 0.04866940528154373, + 0.005172084551304579, + -0.03555886447429657, + -0.0917367935180664, + 0.12154380232095718, + 0.05958052724599838, + -0.013892536982893944, + -0.07621726393699646, + -0.03925538808107376, + 0.09524309635162354, + -0.006158028729259968, + -0.07950548082590103, + -0.06647326052188873, + 0.06954745948314667, + 0.09595178812742233, + -0.030090106651186943, + -0.0493813194334507, + 0.02632339671254158, + 0.07273902744054794, + 0.06166967377066612, + 0.08624575287103653, + 0.07580458372831345, + 0.10825874656438828, + -0.040398336946964264, + 0.02396935410797596, + 0.04443128779530525, + 0.03894231095910072, + 0.047293126583099365, + -0.054341211915016174, + 0.013147315010428429, + 0.01396704651415348, + -0.0033481356222182512, + -0.028694532811641693, + -0.02588217332959175, + -0.010961364023387432, + -0.010297078639268875, + 0.0047026327811181545, + -0.0010811975225806236, + 0.0031684867572039366, + -0.03889324143528938, + 0.05109832063317299, + 0.08500693738460541, + -0.0009861905127763748, + 0.09225407242774963, + 0.010104137472808361, + -0.022546740248799324, + 0.07191568613052368, + -0.14134357869625092, + -0.04597463831305504, + 0.03677152097225189, + -0.022138582542538643, + -0.02792692743241787, + 0.0762842670083046, + 0.05191322788596153, + -0.000995749607682228, + 0.14354124665260315, + 0.04801831394433975, + -0.00037388806231319904, + 0.03427601605653763, + -0.08139047026634216, + 0.13231946527957916, + 0.08073902130126953, + -0.05076228082180023, + 0.0578991174697876, + -0.04984896630048752, + 0.05862916260957718, + 0.025643032044172287, + -0.11973633617162704, + -0.0525621697306633, + 0.0032067110296338797, + -0.02235792577266693, + -0.057501956820487976, + 0.1392737627029419, + -0.027735510841012, + 0.048089221119880676, + 0.11955547332763672, + -0.0974925085902214, + -0.06753597408533096, + -0.0023316359147429466, + 0.037860386073589325, + -0.09910393506288528, + 0.07272092252969742, + 0.05784321203827858, + 0.002411584137007594, + 0.07156773656606674, + 0.10577785968780518, + -0.006294758524745703, + 0.015425491146743298, + -0.0051282658241689205, + -0.019897883757948875, + 0.01092411670833826, + 0.0016404323978349566, + -0.013521437533199787, + 0.0346493162214756, + 0.033270370215177536, + 0.0848134309053421, + -0.023158662021160126, + 0.016552351415157318, + -0.09683579206466675, + 0.039614275097846985, + 0.025033194571733475, + 0.06819972395896912, + -0.016517875716090202, + -0.0012368502793833613, + -0.05667738616466522, + -0.0866817981004715, + -0.020541131496429443, + 0.0038866258691996336, + 0.08593631535768509, + -0.045914459973573685, + 0.0413024015724659, + 0.12665170431137085, + 0.07821060717105865, + 0.00013071556168142706, + -0.05476207286119461, + -0.05856912583112717, + -0.031504206359386444, + 0.07027675211429596, + -0.0809619277715683, + -0.07815688103437424, + -0.04652511700987816, + 0.037681177258491516, + -0.007138380780816078, + 0.10270943492650986, + 0.058885350823402405, + 0.027535097673535347, + 0.027343537658452988, + -0.103610098361969, + 0.019108954817056656, + -0.06506158411502838, + -0.04881369695067406, + -0.044671546667814255, + -0.021028753370046616, + -0.054578594863414764, + 0.08287395536899567, + -0.005928212311118841, + 0.0646088719367981, + -0.03127380833029747, + -0.0658736526966095, + -0.09443346410989761, + 0.039175309240818024, + 0.05237019434571266, + -0.058106910437345505, + 0.03092692419886589, + 0.06382396817207336, + -0.05578877404332161, + 0.036983609199523926, + 0.08623147755861282, + 0.09601902961730957, + -0.02972327545285225, + 0.06982023268938065, + -0.049849867820739746, + 0.1053542047739029, + 0.07236816734075546, + -0.07546801120042801, + -0.08463121950626373, + -0.03607209399342537, + -0.07658535242080688, + 0.045290689915418625, + -0.013076988980174065, + 0.0059357136487960815, + 0.029451463371515274, + 0.015801111236214638, + -0.06129278242588043, + -0.06774111837148666, + 0.06390300393104553, + -0.0494936965405941, + 0.005540984217077494, + -0.10533817112445831, + 0.03350371867418289, + 0.08554068207740784, + 0.043537333607673645, + -0.035782717168331146, + -0.04976189136505127, + 0.047483887523412704, + 0.022914495319128036, + 0.037533048540353775, + 0.07122839987277985, + 0.05834416672587395, + -0.07703907787799835, + -0.027631178498268127, + -0.057438384741544724, + 0.08356929570436478, + -0.036973875015974045, + 0.1234494298696518, + 0.022361617535352707, + -0.030692601576447487, + -0.07844868302345276, + 0.04921601340174675, + 0.016829973086714745, + 0.0415031723678112, + 0.031282126903533936, + 0.06980385631322861, + 0.054031457751989365, + -0.044957246631383896, + 0.1195613369345665, + 0.033129509538412094, + -0.03471432998776436, + -0.04458899423480034, + -0.060265179723501205, + -0.04377664253115654, + 0.014578146860003471, + 0.049820538610219955, + -0.12224040925502777, + 0.002240369562059641, + 0.019118357449769974, + -0.009389598853886127, + 0.06701179593801498, + 0.12330880016088486, + 0.08151233941316605, + -0.134560689330101 + ] + }, + "p244_081.wav": { + "name": "p244", + "embedding": [ + 0.03213370591402054, + 0.0979895368218422, + -0.012609624303877354, + 0.048052191734313965, + -0.0562005490064621, + 0.07871226966381073, + -0.12662386894226074, + 0.12949472665786743, + -0.04685886204242706, + 0.12473385781049728, + -0.07641522586345673, + 0.10852976143360138, + -0.025535428896546364, + -0.19434329867362976, + -0.04311336949467659, + 0.05754229426383972, + -0.032044123858213425, + -0.0032568282913416624, + -0.03204956278204918, + 0.002665461041033268, + 0.043540313839912415, + 0.026270674541592598, + 0.03089885041117668, + -0.010260563343763351, + 0.022191310301423073, + 0.04829544946551323, + 0.004813422914594412, + 0.06099959462881088, + 0.03897271677851677, + -0.018686043098568916, + -0.0417955107986927, + 0.1457860767841339, + -0.05086737126111984, + 0.02043311670422554, + 0.06907306611537933, + 0.0006892679375596344, + -0.02304399572312832, + -0.03535531461238861, + 0.0022397604770958424, + -0.0036825707647949457, + -0.04613088443875313, + 0.06442543119192123, + 0.05690540745854378, + 0.019137680530548096, + 0.05947133153676987, + 0.021372394636273384, + -0.03565455973148346, + -0.03948509320616722, + -0.1022753119468689, + 0.15575294196605682, + 0.04468391463160515, + -0.021333055570721626, + -0.0652478039264679, + -0.060193486511707306, + 0.10389100015163422, + 0.0026625385507941246, + -0.13639198243618011, + -0.044928062707185745, + 0.11714807152748108, + 0.1639849692583084, + -0.009660583920776844, + -0.025412529706954956, + -0.002576845698058605, + 0.12975521385669708, + 0.037616174668073654, + 0.11934775114059448, + 0.0599881149828434, + 0.11855623871088028, + 0.015588351525366306, + 0.03530234098434448, + 0.06565146148204803, + 0.04178553447127342, + 0.007349045947194099, + -0.028251519426703453, + 0.029389014467597008, + -0.012512795627117157, + 0.005195807199925184, + 0.03841552138328552, + -0.017168011516332626, + -0.008922298438847065, + -0.006632693111896515, + 0.005583820398896933, + -0.0034381363075226545, + 0.005803799722343683, + -0.03664793819189072, + 0.0656885877251625, + 0.024731013923883438, + 0.02787303738296032, + 0.07271914184093475, + 0.06153174489736557, + -0.002128938678652048, + 0.05529940873384476, + -0.05544855073094368, + -0.09829540550708771, + 0.013611490838229656, + -0.002596162725239992, + 0.03281403332948685, + 0.06703225523233414, + 0.022330395877361298, + -0.007098186761140823, + 0.10069988667964935, + 0.06033281981945038, + -0.010919515043497086, + 0.05001094564795494, + -0.09959090501070023, + 0.13427840173244476, + 0.06541270017623901, + 0.01142967026680708, + 0.05221201851963997, + -0.04324822872877121, + 0.08778797835111618, + 0.07631527632474899, + -0.1288968026638031, + -0.050719600170850754, + 0.04300855100154877, + 0.0260040033608675, + -0.025349507108330727, + 0.12612482905387878, + -0.007611442357301712, + -0.0021340330131351948, + 0.10850021988153458, + -0.09003597497940063, + -0.06333781778812408, + -0.027979085221886635, + 0.031626224517822266, + -0.08314096927642822, + 0.03670233115553856, + 0.030735015869140625, + -0.03317011892795563, + -0.009088266640901566, + 0.08486603200435638, + -0.008403741754591465, + 0.020784305408596992, + 0.03625890985131264, + -0.04986405000090599, + 0.049977947026491165, + -0.02965582348406315, + 0.02761470340192318, + 0.055096790194511414, + 0.044264595955610275, + 0.05940474569797516, + -0.003939729183912277, + -0.032343845814466476, + -0.10818034410476685, + 0.0023454930633306503, + 0.05126441270112991, + 0.06651972234249115, + -0.011429212056100368, + -0.019640181213617325, + -0.036482539027929306, + -0.08061010390520096, + 0.0513400174677372, + -0.009244145825505257, + 0.09090688079595566, + -0.0151980584487319, + -0.03436033055186272, + 0.08398816734552383, + 0.013349571265280247, + 0.007005738560110331, + -0.0803329199552536, + -0.05062820017337799, + 0.02000533975660801, + 0.033226415514945984, + -0.11413382738828659, + -0.0446985587477684, + 0.01275942474603653, + 0.028429506346583366, + -0.031280722469091415, + 0.011581659317016602, + 0.055851973593235016, + 0.008818534202873707, + 0.05434439703822136, + -0.05087029188871384, + 0.01276406180113554, + -0.10937576740980148, + -0.0671301856637001, + -0.01922297477722168, + -0.008153161965310574, + -0.010482192039489746, + 0.08286858350038528, + 0.009223862551152706, + 0.021133888512849808, + 0.01188607607036829, + -0.064598947763443, + -0.06657154113054276, + 0.07595282047986984, + 0.06222962588071823, + 0.01599958725273609, + 0.08065498620271683, + 0.03951767086982727, + -0.06793556362390518, + 0.06399747729301453, + 0.05769545957446098, + 0.10521434992551804, + -0.03498142957687378, + 0.0023059917148202658, + -0.08800952136516571, + 0.06736696511507034, + 0.09266314655542374, + -0.11013470590114594, + -0.09424010664224625, + -0.01322482991963625, + -0.04873482510447502, + 0.039785467088222504, + -0.050593774765729904, + -0.0182709489017725, + 0.03194830194115639, + -0.009394100867211819, + -0.09513884782791138, + -0.096921905875206, + 0.07279365509748459, + -0.08087120205163956, + -0.013512670062482357, + -0.07499399781227112, + 0.05270504951477051, + 0.08768204599618912, + 0.01209377869963646, + -0.05245205760002136, + -0.0009882780723273754, + 0.057265426963567734, + -0.07470221072435379, + -0.019615644589066505, + 0.030566250905394554, + 0.0185557771474123, + -0.09472685307264328, + 0.0028135227039456367, + -0.07665684074163437, + 0.05617022514343262, + -0.0562426820397377, + 0.1731330007314682, + -0.010448402725160122, + -0.05660713091492653, + -0.052503615617752075, + 0.05048142001032829, + -0.023679519072175026, + 0.029432743787765503, + 0.052778951823711395, + 0.07074064016342163, + 0.015421571210026741, + -0.0555206723511219, + 0.13676826655864716, + 0.006412816699594259, + -0.035486191511154175, + -0.06173129752278328, + -0.001885883859358728, + -0.06570940464735031, + 0.02868037112057209, + 0.024407723918557167, + -0.11543022096157074, + -0.029168330132961273, + 0.04029463231563568, + -0.021747678518295288, + 0.05247454717755318, + 0.13362474739551544, + 0.0449431836605072, + -0.09310270100831985 + ] + }, + "p244_385.wav": { + "name": "p244", + "embedding": [ + 0.045871417969465256, + 0.11186913400888443, + 0.00438494049012661, + -0.011742634698748589, + -0.04474398121237755, + 0.09747549146413803, + -0.1404711753129959, + 0.1555105298757553, + -0.06613657623529434, + 0.16012690961360931, + -0.0687192901968956, + 0.1107354387640953, + -0.018052924424409866, + -0.18716958165168762, + -0.05368705466389656, + 0.03638600558042526, + -0.06502287089824677, + -0.016972960904240608, + -0.04884461686015129, + -0.008174742572009563, + 0.04831221327185631, + 0.007531135343015194, + -0.0047982861287891865, + -0.0019827138166874647, + 0.017027605324983597, + 0.054750051349401474, + 0.01732824370265007, + 0.05932663008570671, + 0.021189065650105476, + -0.062108445912599564, + -0.02803128771483898, + 0.11786743253469467, + -0.049675535410642624, + 0.03487037494778633, + 0.08826304227113724, + -0.031047485768795013, + 0.0022557186894118786, + -0.04956532642245293, + -0.0028623149264603853, + 0.00996128749102354, + -0.016439735889434814, + 0.0840008407831192, + 0.031104199588298798, + 0.028288541361689568, + 0.02927723526954651, + 0.0585792176425457, + 0.011306039057672024, + -0.06859191507101059, + -0.06719674915075302, + 0.15906275808811188, + 0.07665354758501053, + -0.030672527849674225, + -0.04710652306675911, + -0.07172360271215439, + 0.10005084425210953, + -0.03228176757693291, + -0.1188296303153038, + -0.055814746767282486, + 0.08605849742889404, + 0.15157842636108398, + -0.04420950263738632, + -0.03782351315021515, + 0.011202430352568626, + 0.12784533202648163, + 0.017743747681379318, + 0.11453984677791595, + 0.07027567923069, + 0.0843321830034256, + -0.003724726615473628, + 0.03982752189040184, + 0.03881325572729111, + 0.04802235960960388, + 0.043487437069416046, + -0.019419943913817406, + 0.05808219313621521, + -0.016763733699917793, + -0.005238555371761322, + 0.014152929186820984, + -0.024627618491649628, + 0.006610215175896883, + -0.01443529687821865, + 0.03908499702811241, + 0.008336817845702171, + 0.01766454242169857, + -0.010166262276470661, + 0.059298932552337646, + -0.01987832598388195, + -0.007360312156379223, + 0.06711704283952713, + 0.04001389071345329, + 0.035235047340393066, + 0.05773480609059334, + -0.08370012044906616, + -0.10547614842653275, + 0.042522888630628586, + -0.005578859709203243, + 0.007751731667667627, + 0.06490164250135422, + 0.024526158347725868, + -0.00856785848736763, + 0.1030300185084343, + 0.05986305698752403, + -0.02195248194038868, + 0.038277577608823776, + -0.1145762950181961, + 0.14229969680309296, + 0.053986333310604095, + -0.023819994181394577, + 0.041623108088970184, + -0.0687195286154747, + 0.09064706414937973, + 0.056877076625823975, + -0.15005357563495636, + -0.09600003063678741, + 0.03820410370826721, + 0.019480934366583824, + -0.04020973667502403, + 0.10717343538999557, + -0.029797552153468132, + 0.009655368514358997, + 0.09000623226165771, + -0.0618533231317997, + -0.04383796826004982, + -0.02796785533428192, + 0.04741745442152023, + -0.08143442124128342, + 0.05012882873415947, + 0.03258078545331955, + -0.010219903662800789, + 0.01636679284274578, + 0.11275582760572433, + -0.010713944211602211, + -0.01651557721197605, + 0.02912227250635624, + -0.0266458448022604, + 0.03346564993262291, + -0.036162324249744415, + 0.02600618451833725, + -0.0030781321693211794, + 0.0527995340526104, + 0.04263389855623245, + 0.003189775859937072, + -0.043684836477041245, + -0.07907427847385406, + 0.0006774531793780625, + 0.019977513700723648, + 0.06711924076080322, + -0.0071228258311748505, + -0.012071134522557259, + -0.03611143305897713, + -0.0524408333003521, + -0.013392012566328049, + -0.01527265552431345, + 0.07425066828727722, + -0.0012095257407054305, + 0.020006101578474045, + 0.10346958786249161, + 0.029455851763486862, + 0.0007626976585015655, + -0.07459330558776855, + -0.016935721039772034, + 0.020794715732336044, + 0.05543822795152664, + -0.07505100965499878, + -0.044984616339206696, + 0.012338891625404358, + 0.02657809853553772, + -0.010118257254362106, + 0.04897993803024292, + 0.04975210875272751, + 0.025209985673427582, + 0.04663657024502754, + -0.07825689017772675, + 0.02224918268620968, + -0.11303100734949112, + -0.06090568006038666, + -0.02896808460354805, + -0.018171295523643494, + -0.0316518098115921, + 0.06599346548318863, + -0.0007092852029018104, + 0.04945264011621475, + -0.00348032102920115, + -0.07399351894855499, + -0.06731084734201431, + 0.07268933951854706, + 0.09860076010227203, + -0.013203510083258152, + 0.042342592030763626, + 0.04282982274889946, + -0.02149653621017933, + 0.0605279877781868, + 0.07342345267534256, + 0.11338246613740921, + -0.023849500343203545, + 0.02937689609825611, + -0.07826597988605499, + 0.07550396025180817, + 0.06194820627570152, + -0.09974642097949982, + -0.08785484731197357, + 0.005303366109728813, + -0.049881331622600555, + 0.019132710993289948, + -0.0242499690502882, + 0.006114527117460966, + 0.0212209802120924, + 0.00938879419118166, + -0.07497288286685944, + -0.06556227803230286, + 0.07407844811677933, + -0.09435851126909256, + -0.0073996190913021564, + -0.07422924786806107, + 0.05978701636195183, + 0.11779443919658661, + 0.055191319435834885, + -0.03697899356484413, + -0.0272142942994833, + 0.05121101438999176, + -0.03528626263141632, + -0.0016348283970728517, + 0.01197389978915453, + 0.020866582170128822, + -0.1000773087143898, + 0.04218969866633415, + -0.0723632350564003, + 0.04216983914375305, + -0.06630398333072662, + 0.15699294209480286, + -0.016808493062853813, + -0.07099200785160065, + -0.07270801812410355, + 0.03401869535446167, + -0.03845476359128952, + 0.03282615542411804, + 0.02502809837460518, + 0.06195691227912903, + 0.04220603033900261, + -0.05840633809566498, + 0.12266574054956436, + 0.017571592703461647, + -0.029280629009008408, + -0.07419605553150177, + -0.055782463401556015, + -0.041236817836761475, + 0.024900421500205994, + 0.024229034781455994, + -0.11052656918764114, + -0.027387814596295357, + 0.031266603618860245, + -0.03102274239063263, + 0.08931320160627365, + 0.1403033435344696, + 0.05686182156205177, + -0.13733287155628204 + ] + }, + "p244_284.wav": { + "name": "p244", + "embedding": [ + 0.04141642898321152, + 0.06979545950889587, + -0.019032523036003113, + 0.0390816256403923, + -0.043868135660886765, + 0.06532397866249084, + -0.11736100912094116, + 0.09019085019826889, + -0.06744042038917542, + 0.12230528891086578, + -0.06797505915164948, + 0.09747536480426788, + -0.01648901030421257, + -0.17341503500938416, + -0.054784566164016724, + 0.0424853190779686, + -0.06551390886306763, + -0.032326653599739075, + -0.07067592442035675, + -0.0049887532368302345, + 0.04271107539534569, + 0.04007439315319061, + 0.03347145393490791, + -0.019418317824602127, + 0.033270448446273804, + 0.04106369614601135, + 0.005285894498229027, + 0.042339012026786804, + 0.03307656571269035, + -0.04388793557882309, + -0.024313900619745255, + 0.11311817169189453, + -0.021848518401384354, + -0.007152605801820755, + 0.03852579742670059, + 0.01580837368965149, + -0.003727669594809413, + -0.07809041440486908, + -0.03819633647799492, + 0.00834386795759201, + -0.056444283574819565, + 0.06837356090545654, + 0.03744346648454666, + -0.017337609082460403, + 0.04702596366405487, + -0.025707252323627472, + -0.037150632590055466, + -0.05421062931418419, + -0.1029304713010788, + 0.1610407531261444, + 0.05368327349424362, + 0.018700847402215004, + -0.08519278466701508, + -0.0660209059715271, + 0.11482568830251694, + -0.013651309534907341, + -0.11893503367900848, + -0.044651664793491364, + 0.06012747436761856, + 0.1813526749610901, + -0.020620031282305717, + 0.0038448225241154432, + 0.026122961193323135, + 0.10145090520381927, + 0.048468392342329025, + 0.08712530136108398, + 0.08492505550384521, + 0.08808408677577972, + 0.027660097926855087, + 0.033076416701078415, + 0.06910654157400131, + 0.05137063190340996, + 0.022279199212789536, + -0.03102794848382473, + 0.029225781559944153, + 0.0017949480097740889, + -0.04483289644122124, + 0.003275876631960273, + -0.022943561896681786, + -0.002547027077525854, + -0.004529222846031189, + 0.006550888530910015, + 0.021823525428771973, + 0.024601589888334274, + -0.05423561856150627, + 0.04232274740934372, + 0.006816928740590811, + -0.0280821081250906, + 0.05533795803785324, + 0.042043350636959076, + 0.0007511208532378078, + 0.027507033199071884, + -0.038378119468688965, + -0.10773613303899765, + -0.010008382610976696, + 0.014144865795969963, + -0.01612825319170952, + 0.0561729297041893, + 0.04122903198003769, + -0.030249420553445816, + 0.10074333846569061, + 0.0488659143447876, + -0.015792477875947952, + 0.03387673944234848, + -0.10013174265623093, + 0.09112514555454254, + 0.0901968702673912, + 0.0022102929651737213, + 0.042065154761075974, + -0.02508392557501793, + 0.0649300217628479, + 0.07821866869926453, + -0.1372946947813034, + -0.05955647677183151, + 0.06794905662536621, + -0.0034256819635629654, + 0.02056579664349556, + 0.1159113198518753, + 0.00536385178565979, + 0.005847449414432049, + 0.08433307707309723, + -0.07659203559160233, + -0.04995877668261528, + -0.02838127873837948, + 0.062301672995090485, + -0.06246389448642731, + 0.043179526925086975, + 0.031634822487831116, + -0.01866913214325905, + -0.024759050458669662, + 0.07096080482006073, + -0.011106367222964764, + -0.0032295244745910168, + 0.008477922528982162, + -0.031070424243807793, + 0.06400710344314575, + -0.041499435901641846, + -0.014915753155946732, + 0.07021591067314148, + 0.05228372663259506, + 0.0431116484105587, + -0.010864054784178734, + -0.03191244229674339, + -0.09366914629936218, + 0.0002226183860329911, + 0.039261579513549805, + 0.07691851258277893, + -0.009308917447924614, + 0.01134653389453888, + -0.06734026968479156, + -0.06866125762462616, + 0.03303215652704239, + -0.033099010586738586, + 0.10547616332769394, + 0.006046065595000982, + -0.006494411267340183, + 0.09562556445598602, + -0.022267041727900505, + 0.0013959072530269623, + -0.01959322951734066, + -0.002048219321295619, + 0.02998843416571617, + 0.049768831580877304, + -0.05107250437140465, + -0.050383299589157104, + 0.015026159584522247, + 0.00774481613188982, + -0.02084973081946373, + 0.002089640125632286, + 0.025806095451116562, + 0.008929691277444363, + 0.04049064591526985, + -0.08050184696912766, + 0.027125172317028046, + -0.11228012293577194, + -0.020122552290558815, + 0.002663110150024295, + -0.04198998957872391, + -0.0131063936278224, + 0.08673688024282455, + 0.03347950428724289, + -0.0008789798012003303, + 0.004454189911484718, + -0.10653974860906601, + -0.042314063757658005, + 0.06982344388961792, + 0.06771819293498993, + 0.01876017637550831, + 0.035832278430461884, + 0.057350873947143555, + 0.005859625991433859, + 0.03373382240533829, + 0.07599811255931854, + 0.07678279280662537, + 0.0023659071885049343, + -0.028074581176042557, + -0.05995447561144829, + 0.1001565009355545, + 0.05846802517771721, + -0.08766864985227585, + -0.07658152282238007, + -0.016321495175361633, + -0.061697762459516525, + 0.035262107849121094, + -0.020403580740094185, + 0.02010262943804264, + 0.034007780253887177, + -0.03171507641673088, + -0.10942661017179489, + -0.10004278272390366, + 0.10807790607213974, + -0.06583673506975174, + -0.03333992883563042, + -0.05982062965631485, + 0.01562969945371151, + 0.08392059057950974, + 0.021171271800994873, + -0.011283649131655693, + 0.010521436110138893, + 0.030436046421527863, + -0.0862221047282219, + -0.025896865874528885, + 0.03126629441976547, + -0.012270445935428143, + -0.11129117012023926, + 0.017236925661563873, + -0.076917365193367, + 0.09629207849502563, + -0.06398941576480865, + 0.14145654439926147, + -0.008674035780131817, + -0.04693850874900818, + -0.08016742765903473, + 0.04609028249979019, + -0.029501326382160187, + 0.05558779835700989, + 0.04978852719068527, + 0.08113552629947662, + 0.0382465198636055, + -0.06253757327795029, + 0.09452789276838303, + 0.03421499580144882, + -0.021824760362505913, + -0.06579199433326721, + -0.031653475016355515, + -0.03478645533323288, + 0.01003987342119217, + -0.009544308297336102, + -0.05965317413210869, + 0.015635376796126366, + 0.02291708067059517, + -0.03659220039844513, + 0.0568128377199173, + 0.11286088079214096, + 0.07105669379234314, + -0.09920184314250946 + ] + }, + "p244_082.wav": { + "name": "p244", + "embedding": [ + 0.009411174803972244, + 0.08323510736227036, + -0.04857800900936127, + 0.029742909595370293, + -0.057362064719200134, + 0.04094798117876053, + -0.1382228434085846, + 0.08897451311349869, + -0.04493768885731697, + 0.10658545792102814, + -0.07055925577878952, + 0.10487526655197144, + -0.030202943831682205, + -0.20856811106204987, + -0.06325679272413254, + 0.06275913864374161, + -0.05976363271474838, + -0.07527010142803192, + -0.04118075221776962, + -0.018783489242196083, + 0.05728233978152275, + 0.042633481323719025, + -0.009143693372607231, + 0.011600812897086143, + 0.0013446449302136898, + 0.0663529708981514, + 0.015016966499388218, + 0.03444671258330345, + 0.01594073511660099, + 0.007594255730509758, + -0.02965313382446766, + 0.11619430035352707, + -0.02377568744122982, + 0.007002450991421938, + 0.047205667942762375, + 0.03281540423631668, + 0.030444353818893433, + -0.04127202183008194, + -0.011317635886371136, + 0.035685937851667404, + -0.07206816971302032, + 0.07363279163837433, + 0.034547243267297745, + 0.010727166198194027, + 0.05058418959379196, + 0.02445879578590393, + -0.03089790791273117, + -0.049073249101638794, + -0.10659847408533096, + 0.1731153428554535, + 0.08125479519367218, + -0.015048407018184662, + -0.0494743287563324, + -0.07082439959049225, + 0.1080903559923172, + -0.008389386348426342, + -0.11675167828798294, + -0.06075400859117508, + 0.09706941992044449, + 0.15158149600028992, + -0.018457647413015366, + -0.026260415092110634, + 0.016313740983605385, + 0.1482800394296646, + 0.04631701856851578, + 0.07797910273075104, + 0.04749668389558792, + 0.12294045090675354, + -0.00970434956252575, + -0.02651379629969597, + 0.12090296298265457, + 0.0732836127281189, + 0.023590464144945145, + -0.04570477828383446, + 0.0390847809612751, + 0.0214807391166687, + -0.011423197574913502, + 0.030962955206632614, + -0.02656143717467785, + -0.006641690153628588, + -0.008897986263036728, + 0.01583193615078926, + -0.03470209985971451, + 0.016625670716166496, + -0.02421959862112999, + 0.0678267702460289, + 0.07286550104618073, + -0.01156865805387497, + 0.05863085016608238, + 0.09633757919073105, + 0.020386775955557823, + 0.05461570620536804, + -0.06643228232860565, + -0.08959316462278366, + 0.03463796153664589, + 0.00827353447675705, + 0.018163369968533516, + 0.06372036039829254, + 0.03379521146416664, + -0.017196208238601685, + 0.10332553088665009, + 0.03757525980472565, + -0.01448835339397192, + 0.026851868256926537, + -0.10643801093101501, + 0.12773369252681732, + 0.09552449733018875, + -0.02199445478618145, + -0.008014488965272903, + -0.020254118368029594, + 0.06972513347864151, + 0.07754160463809967, + -0.10743217170238495, + -0.07968710362911224, + 0.055382125079631805, + 0.023620393127202988, + -0.021427322179079056, + 0.12267042696475983, + -0.008210848085582256, + 0.0027259818743914366, + 0.11488700658082962, + -0.06672704964876175, + -0.06719198077917099, + -0.043614983558654785, + 0.020578186959028244, + -0.07784849405288696, + 0.048601940274238586, + 0.0639006495475769, + 0.017551138997077942, + -0.019592275843024254, + 0.08678491413593292, + -0.00807617511600256, + 0.004243718925863504, + -0.025327831506729126, + -0.019358357414603233, + 0.06537950783967972, + -0.010837739333510399, + -0.012346676550805569, + 0.07549881935119629, + 0.03967012092471123, + 0.045830607414245605, + 0.0013602623948827386, + -0.03151504695415497, + -0.1291232407093048, + 0.024233289062976837, + 0.04815968498587608, + 0.07571224123239517, + -0.015101255849003792, + -0.01381041668355465, + -0.05592862889170647, + -0.07876960188150406, + 0.03084312379360199, + -0.02304004691541195, + 0.10026149451732635, + -0.005592876113951206, + -0.04701017960906029, + 0.1049978956580162, + -0.018784694373607635, + -0.0066004260443151, + -0.025569746270775795, + -0.036011822521686554, + 0.013088454492390156, + 0.036392226815223694, + -0.09904009103775024, + -0.0846695527434349, + -0.004475453868508339, + 0.022818515077233315, + 0.0068465229123830795, + 0.026776809245347977, + 0.04669120907783508, + 0.001870704465545714, + 0.027750639244914055, + -0.08918944001197815, + 0.03525206074118614, + -0.11673890799283981, + -0.05327051132917404, + -0.029964253306388855, + -0.04133564233779907, + -0.0030565818306058645, + 0.08169017732143402, + -0.008359239436686039, + 0.004224564414471388, + -0.011324957013130188, + -0.10791286826133728, + -0.07242006808519363, + 0.08339009433984756, + 0.09452908486127853, + 0.02411576732993126, + 0.07288530468940735, + 0.0544586218893528, + -0.006983669940382242, + 0.041727472096681595, + 0.042256295680999756, + 0.13072146475315094, + -0.02864881046116352, + 0.010814046487212181, + -0.047910600900650024, + 0.08523382991552353, + 0.033189740031957626, + -0.10427984595298767, + -0.056293684989213943, + -0.013072704896330833, + -0.03354141116142273, + 0.032415322959423065, + -0.03511476144194603, + 0.026913179084658623, + 0.026824524626135826, + 0.0010047397809103131, + -0.11934097111225128, + -0.08471548557281494, + 0.051463719457387924, + -0.06151154637336731, + -0.009184977039694786, + -0.07765986770391464, + 0.03273706138134003, + 0.10582055151462555, + 0.03917999938130379, + -0.056362319737672806, + 0.009582164697349072, + 0.03869963809847832, + -0.051336877048015594, + -0.012613809667527676, + 0.007583669852465391, + 0.027266785502433777, + -0.0950557067990303, + -0.018024984747171402, + -0.09256584942340851, + 0.08323374390602112, + -0.06041473150253296, + 0.12585674226284027, + 0.0070867701433598995, + -0.05049802362918854, + -0.07285327464342117, + 0.035981278866529465, + -0.023722613230347633, + 0.06461898237466812, + 0.04261399060487747, + 0.06368102133274078, + 0.009700990281999111, + -0.048192787915468216, + 0.13488326966762543, + 0.05653298273682594, + -0.03816651925444603, + -0.0662367194890976, + -0.0075411563739180565, + -0.025510886684060097, + 0.05108931288123131, + 0.05768226459622383, + -0.07609832286834717, + -0.014019026421010494, + 0.028443632647395134, + -0.03756922110915184, + 0.05862042307853699, + 0.12917949259281158, + 0.06986866146326065, + -0.09145446121692657 + ] + }, + "p244_218.wav": { + "name": "p244", + "embedding": [ + 0.06673995405435562, + 0.09241461753845215, + -0.04671558737754822, + 0.005720822140574455, + -0.04166216030716896, + 0.021131504327058792, + -0.13404692709445953, + 0.09596005827188492, + 0.009214630350470543, + 0.12595249712467194, + -0.06881837546825409, + 0.08258086442947388, + -0.04355539381504059, + -0.10822881758213043, + 0.009794319979846478, + 0.03366012126207352, + 0.00036196294240653515, + -0.01178551372140646, + -0.05208093672990799, + -0.04542585089802742, + 0.015606909990310669, + 0.05928616225719452, + 0.03245805948972702, + -0.08387447148561478, + 0.02475116401910782, + 0.08091872930526733, + -0.011844740249216557, + 0.004846625030040741, + -0.013500849716365337, + -0.036631010472774506, + -0.011087826453149319, + 0.07231725752353668, + -0.07530510425567627, + -0.016270868480205536, + 0.026694197207689285, + 0.01794445887207985, + -0.02220413088798523, + -0.06130357086658478, + 0.009617235511541367, + 0.026830632239580154, + -0.04883992671966553, + 0.08181708306074142, + 0.03895075246691704, + -0.0401669442653656, + 0.025874869897961617, + 0.027915049344301224, + 0.010074172168970108, + -0.04031967371702194, + -0.08327020704746246, + 0.18530426919460297, + 0.050702378153800964, + -0.00048330845311284065, + -0.07360462844371796, + -0.02074882946908474, + 0.07327612489461899, + -0.008302642963826656, + -0.05100390687584877, + -0.07220813632011414, + 0.05020608752965927, + 0.08551609516143799, + -0.04471487179398537, + -0.05941503494977951, + 0.03845163807272911, + 0.08454490453004837, + 0.04414811730384827, + 0.042242731899023056, + 0.09319295734167099, + 0.1278742551803589, + -0.031150344759225845, + -0.0013818519655615091, + 0.03789704293012619, + 0.06335889548063278, + 0.0383380763232708, + -0.002171811182051897, + 0.025673845782876015, + -0.028235426172614098, + -0.01745263859629631, + -0.004064389504492283, + -0.018047470599412918, + -0.06305825710296631, + 0.02313840761780739, + -0.00674998015165329, + 0.004048997536301613, + 0.048994652926921844, + -0.03848019987344742, + 0.023486563935875893, + 0.09877488017082214, + -0.04409158602356911, + 0.08935674279928207, + 0.02204792946577072, + 0.012775031849741936, + 0.030318424105644226, + -0.09796352684497833, + -0.055483508855104446, + 0.03484194353222847, + -0.00657587731257081, + 0.024930257350206375, + 0.06521096080541611, + 0.04179495573043823, + -0.022350311279296875, + 0.12113296985626221, + 0.017137957736849785, + -0.015005506575107574, + -0.002767186611890793, + -0.06037360429763794, + 0.15837937593460083, + 0.1218695268034935, + -0.03505280613899231, + 0.014612356200814247, + -0.04748029261827469, + 0.01335287094116211, + 0.03550170361995697, + -0.11038891226053238, + -0.07553435862064362, + 0.017396938055753708, + 0.03284015506505966, + -0.0008369721472263336, + 0.10557593405246735, + 0.013690419495105743, + 0.012181827798485756, + 0.13112908601760864, + -0.0927133858203888, + -0.07104067504405975, + -0.0042142667807638645, + 0.037650760263204575, + -0.0820700079202652, + 0.032728411257267, + 0.10643388330936432, + -0.013440646231174469, + 0.02328268624842167, + 0.07236253470182419, + 0.021005120128393173, + 0.032534319907426834, + -0.032793428748846054, + 0.003447011113166809, + 0.036398567259311676, + 0.0006801164126954973, + -0.01696469448506832, + 0.03490343689918518, + 0.05360676720738411, + 0.08189666271209717, + -0.006878489162772894, + -0.02048259973526001, + -0.1363704949617386, + 0.039053499698638916, + 0.03193531185388565, + 0.037786729633808136, + -0.04440353065729141, + -0.007418894208967686, + -0.029864240437746048, + -0.07562088221311569, + 0.001393111888319254, + -0.011884447187185287, + 0.05794353783130646, + -0.022241737693548203, + -0.01787719316780567, + 0.1491033434867859, + 0.027059899643063545, + 0.021256128326058388, + -0.021346963942050934, + -0.016197465360164642, + 0.014491203241050243, + 0.026206161826848984, + -0.09537866711616516, + -0.09075523912906647, + -0.046413715928792953, + 0.018450338393449783, + 0.00672380905598402, + 0.05369650572538376, + 0.0625077337026596, + 0.006286041811108589, + 0.018740981817245483, + -0.0527520515024662, + 0.019446130841970444, + -0.047873418778181076, + -0.023290500044822693, + -0.005407287739217281, + -0.037413738667964935, + -0.027827031910419464, + 0.09225767850875854, + -0.004187794402241707, + 0.041743017733097076, + -0.046815741807222366, + -0.06845550239086151, + -0.05745353549718857, + 0.028204983100295067, + 0.062291186302900314, + -0.0586608462035656, + 0.010917039588093758, + 0.06356892734766006, + -0.014507530257105827, + -0.0026156194508075714, + 0.070974200963974, + 0.07693815976381302, + -0.035423390567302704, + -0.01701207086443901, + -0.05271977186203003, + 0.10168087482452393, + 0.06159539520740509, + -0.08040063083171844, + -0.03370402753353119, + -0.07339389622211456, + -0.05034111440181732, + -0.012771296314895153, + -0.025148048996925354, + 0.01490765530616045, + 0.019698305055499077, + -0.00143462885171175, + -0.07982230186462402, + -0.10257213562726974, + 0.0267894696444273, + -0.03584497794508934, + 0.007640083320438862, + -0.09003444761037827, + 0.041306376457214355, + 0.055980607867240906, + 0.07535381615161896, + -0.027003316208720207, + -0.020421011373400688, + -0.005871819332242012, + -0.030469907447695732, + 0.024197686463594437, + 0.04127150774002075, + 0.05883333459496498, + -0.06733577698469162, + -0.012668863870203495, + -0.06967277079820633, + 0.08528416603803635, + -0.04000786691904068, + 0.09443873912096024, + 0.027870740741491318, + -0.033193059265613556, + -0.0991239994764328, + 0.03142354637384415, + -0.03074929304420948, + 0.03852801024913788, + 0.04193933680653572, + 0.0056736283004283905, + 0.05675719678401947, + -0.047608088701963425, + 0.10432156175374985, + 0.04758857190608978, + -0.014785085804760456, + -0.06801826506853104, + -0.050628721714019775, + -0.052018903195858, + 0.049489185214042664, + 0.03528051823377609, + -0.067943274974823, + 0.004121929407119751, + 0.029231710359454155, + -0.0023907579015940428, + 0.05455969274044037, + 0.08119166642427444, + 0.06660211086273193, + -0.10265371948480606 + ] + }, + "p244_258.wav": { + "name": "p244", + "embedding": [ + 0.07679141312837601, + 0.03285347297787666, + -0.005191308446228504, + 0.017157545313239098, + -0.01648176833987236, + 0.04638223722577095, + -0.088742196559906, + 0.057948336005210876, + -0.022573599591851234, + 0.07319176197052002, + -0.11689199507236481, + 0.021522829309105873, + -0.003921594470739365, + -0.0912213921546936, + 0.002323621418327093, + 0.014264101162552834, + 0.002201654016971588, + 0.012111756019294262, + -0.09432931244373322, + -0.01385512389242649, + 0.0003177318722009659, + 0.034604333341121674, + 0.01753060147166252, + -0.059732384979724884, + -0.0020971104968339205, + 0.042796872556209564, + 0.010780866257846355, + 0.005441932938992977, + 0.004265574738383293, + -0.002715539187192917, + -0.009840097278356552, + 0.11150279641151428, + -0.04598115012049675, + -0.01988230086863041, + 0.03898988664150238, + 0.04225374758243561, + 0.007714281789958477, + -0.10172348469495773, + -0.019400203600525856, + 0.0038004154339432716, + -0.07217127084732056, + 0.06552952527999878, + 0.055657122284173965, + -0.015563245862722397, + 0.007612681016325951, + 0.012087170034646988, + 0.007316205650568008, + -0.013617804273962975, + -0.06583358347415924, + 0.15554118156433105, + 0.031136982142925262, + 0.0055865030735731125, + -0.07283760607242584, + -0.021615318953990936, + 0.10212336480617523, + -0.0070214164443314075, + -0.036226727068424225, + -0.030113667249679565, + 0.026174569502472878, + 0.10048529505729675, + 0.008407581597566605, + -0.03803853318095207, + -0.01644132472574711, + 0.017940891906619072, + -0.014630669727921486, + 0.055051594972610474, + 0.09959582984447479, + 0.11093810200691223, + 0.0049186935648322105, + 0.025319887325167656, + 0.06981988251209259, + 0.0289970301091671, + 0.04492059350013733, + -0.05474399775266647, + 0.06897800415754318, + 0.005950739607214928, + -0.06861895322799683, + 0.05169109255075455, + -0.04048681631684303, + -0.03773059695959091, + 0.0584164597094059, + -0.015366610139608383, + 0.034149251878261566, + 0.006377383600920439, + -0.11505354195833206, + 0.0046930452808737755, + 0.005290476605296135, + 0.038996078073978424, + 0.10869783163070679, + 0.018349923193454742, + 0.009688381105661392, + 0.01598978228867054, + -0.036223456263542175, + -0.08092721551656723, + 0.01347358338534832, + 0.00746909761801362, + 0.013366539031267166, + 0.029650598764419556, + 0.0247380118817091, + -0.018677975982427597, + 0.07955006510019302, + -0.025160063058137894, + 0.00850014016032219, + -0.009872529655694962, + -0.03528575599193573, + 0.0710277408361435, + 0.11302268505096436, + 0.02511666528880596, + 0.01139133796095848, + -0.041211847215890884, + 0.04427892342209816, + 0.05170672759413719, + -0.07742707431316376, + -0.05129126459360123, + 0.028028609231114388, + 0.037942662835121155, + 0.06499990075826645, + 0.09817469865083694, + -0.040436845272779465, + -0.02128174901008606, + 0.05847795307636261, + -0.06975678354501724, + -0.004629859700798988, + 0.04635251313447952, + -0.007115555927157402, + -0.007278773933649063, + -0.007724538445472717, + -0.0016099689528346062, + -0.029732869938015938, + -0.058376964181661606, + 0.055915676057338715, + -0.027520939707756042, + 0.0052959127351641655, + -0.0474945567548275, + 0.02992713451385498, + 0.08013647794723511, + 0.006267134100198746, + -0.06800227612257004, + 0.04786580801010132, + 0.05581164360046387, + 0.03627294301986694, + 0.01124153845012188, + -0.04230596125125885, + -0.08089552074670792, + 0.0007849982939660549, + 0.0416392907500267, + 0.042494021356105804, + -0.021547436714172363, + -0.026843221858143806, + -0.10129571706056595, + -0.043941665440797806, + 0.027755694463849068, + -0.0478389635682106, + 0.0665149912238121, + 0.0659036710858345, + -0.043209102004766464, + 0.08743710815906525, + -0.03005043976008892, + -0.006855689454823732, + -0.07787776738405228, + -0.043079689145088196, + 0.03751013055443764, + 0.03974080830812454, + 0.0006978809833526611, + -0.04671081155538559, + 0.021193694323301315, + 0.0026710564270615578, + -0.010079368948936462, + -0.04505263641476631, + 0.034987062215805054, + -0.010533876717090607, + 0.01829933375120163, + -0.1373869776725769, + 0.019953547045588493, + -0.12611842155456543, + -0.029317855834960938, + 0.034984566271305084, + 0.01392775122076273, + 0.04856440797448158, + 0.07969792187213898, + -0.013384771533310413, + 0.0044553703628480434, + -0.044323064386844635, + -0.12362749874591827, + 0.006815183907747269, + 0.0634303092956543, + 0.06017370522022247, + -0.005435607396066189, + 0.037726692855358124, + 0.05026915669441223, + 0.00932311825454235, + 0.027295488864183426, + 0.07428344339132309, + 0.07999062538146973, + -0.01062973402440548, + -0.019960129633545876, + 0.005895745009183884, + 0.11012575030326843, + 0.02762814797461033, + -0.05788486450910568, + -0.04115934297442436, + 0.01942356303334236, + -0.032451555132865906, + 0.03567459434270859, + 0.00912648718804121, + 0.013185901567339897, + 0.026380911469459534, + -0.015013724565505981, + -0.08134867250919342, + -0.016082588583230972, + 0.03090437687933445, + -0.011898979544639587, + -0.019635427743196487, + -0.06859276443719864, + 0.01730221137404442, + 0.050356995314359665, + 0.04189112037420273, + -0.024182943627238274, + -0.02373354136943817, + 0.006139649078249931, + -0.08314862102270126, + -0.07653996348381042, + -0.024275556206703186, + 0.008871578611433506, + -0.066228486597538, + 0.042074281722307205, + -0.0472719706594944, + 0.07996881753206253, + -0.02567720040678978, + 0.07942695915699005, + 0.0016464916989207268, + -0.05625027418136597, + -0.04452471807599068, + 0.05419591814279556, + -0.011272326111793518, + 0.04632297530770302, + 0.07949044555425644, + -0.029907487332820892, + 0.01672234944999218, + -0.08599400520324707, + 0.08126738667488098, + 0.006985564716160297, + -0.0048313080333173275, + -0.03543149679899216, + -0.0006830152124166489, + -0.04757782071828842, + -0.009476684965193272, + -0.011244406923651695, + -0.058826301246881485, + 0.0307366494089365, + 0.015632303431630135, + -0.03818799927830696, + 0.01670285500586033, + 0.041338443756103516, + 0.051368676126003265, + -0.06183270364999771 + ] + }, + "p244_091.wav": { + "name": "p244", + "embedding": [ + 0.04309367388486862, + 0.0720987468957901, + -0.0132478391751647, + 0.017731424421072006, + -0.06165162846446037, + 0.06395068019628525, + -0.13169601559638977, + 0.14464542269706726, + -0.046683065593242645, + 0.1385502815246582, + -0.04386259242892265, + 0.12500441074371338, + -0.01278278511017561, + -0.19199281930923462, + -0.02863188646733761, + 0.05434998869895935, + -0.057081859558820724, + -0.04133368283510208, + -0.053575754165649414, + -0.024377061054110527, + 0.04223744198679924, + 0.0311942920088768, + 0.0261395126581192, + -0.0014756987802684307, + 0.021796882152557373, + 0.0695478767156601, + -0.0006583810318261385, + 0.047250326722860336, + 0.012663107365369797, + -0.07275444269180298, + -0.025742821395397186, + 0.08432137966156006, + -0.058854520320892334, + 0.010051047429442406, + 0.04828295856714249, + -0.028486598283052444, + -0.009382815100252628, + -0.04764934629201889, + -0.03271391987800598, + 0.013127505779266357, + -0.047004178166389465, + 0.08635374158620834, + 0.0333406999707222, + -0.00034673017216846347, + 0.042563408613204956, + 0.013922426849603653, + -0.02209658920764923, + -0.04705999791622162, + -0.10563153028488159, + 0.1506836712360382, + 0.075776606798172, + -0.006607173942029476, + -0.0648643970489502, + -0.06669889390468597, + 0.10503864288330078, + -0.025230523198843002, + -0.13188141584396362, + -0.047879062592983246, + 0.07593496143817902, + 0.15364305675029755, + -0.041862230747938156, + -0.031919319182634354, + 0.02820572629570961, + 0.1098124235868454, + 0.06707937270402908, + 0.0889878123998642, + 0.09234442561864853, + 0.10160738229751587, + -0.01282145269215107, + 0.019284797832369804, + 0.05580781027674675, + 0.0751730427145958, + 0.04807524383068085, + -0.0008225438068620861, + 0.037131816148757935, + 0.0014572007348760962, + -0.0006831804057583213, + -0.021310074254870415, + -0.023456593975424767, + -0.003276883391663432, + -0.0038925036787986755, + 0.02375621162354946, + 0.017930250614881516, + 0.028639446943998337, + -0.02274405211210251, + 0.06532417982816696, + 0.02309400588274002, + -0.010117791593074799, + 0.05741807818412781, + 0.03127700090408325, + 0.018069909885525703, + 0.07340972870588303, + -0.09006212651729584, + -0.07940064370632172, + 0.0225283931940794, + 0.0030012200586497784, + 0.024960016831755638, + 0.06134403869509697, + 0.031337201595306396, + -0.00855853222310543, + 0.11929445713758469, + 0.052166104316711426, + -0.01905599795281887, + 0.028067348524928093, + -0.09640559554100037, + 0.12266942858695984, + 0.08031803369522095, + -0.022284023463726044, + 0.04782688617706299, + -0.051695507019758224, + 0.0787573754787445, + 0.05408960208296776, + -0.1350681036710739, + -0.0754668191075325, + 0.0330924391746521, + 0.009739085100591183, + -0.02826535701751709, + 0.13806474208831787, + -0.010384946130216122, + 0.04305350407958031, + 0.11038455367088318, + -0.08230754733085632, + -0.03646830469369888, + -0.0055635301396250725, + 0.054766371846199036, + -0.08317561447620392, + 0.05998267978429794, + 0.03684881329536438, + -0.013172414153814316, + 0.02731870859861374, + 0.09247037768363953, + -0.018216188997030258, + -0.004504123702645302, + 0.016312040388584137, + -0.04332476109266281, + 0.022890862077474594, + -0.025876715779304504, + -0.002924907486885786, + 0.049809135496616364, + 0.036981649696826935, + 0.05224273353815079, + -0.017538845539093018, + -0.037159230560064316, + -0.119931161403656, + 0.016010232269763947, + 0.01986614614725113, + 0.08030147850513458, + -0.014970451593399048, + -0.006482881959527731, + -0.0401659831404686, + -0.06644508987665176, + 0.007841970771551132, + -0.008373289369046688, + 0.07976173609495163, + -0.021678447723388672, + 0.0011113336076959968, + 0.10172917693853378, + 0.03010474517941475, + 0.008834779262542725, + -0.04021097347140312, + -0.035399019718170166, + 0.003066539764404297, + 0.05836181342601776, + -0.0846424549818039, + -0.05683001130819321, + -0.004309183917939663, + 0.043701838701963425, + -0.010717585682868958, + 0.05616123974323273, + 0.05136401578783989, + 0.022349296137690544, + 0.028967753052711487, + -0.06828059256076813, + 0.02481108531355858, + -0.0951242744922638, + -0.0741296261548996, + -0.003367321565747261, + -0.0185336172580719, + -0.02813224494457245, + 0.07075908035039902, + 0.011294732801616192, + 0.051759183406829834, + -0.023240529000759125, + -0.08101250976324081, + -0.08983057737350464, + 0.05698192119598389, + 0.06296256184577942, + -0.016562119126319885, + 0.03837001323699951, + 0.0679793655872345, + -0.03630131110548973, + 0.050037138164043427, + 0.06037301942706108, + 0.11213769018650055, + -0.031672198325395584, + 0.02792520448565483, + -0.07070574164390564, + 0.09044340252876282, + 0.0789322555065155, + -0.08119912445545197, + -0.07228894531726837, + -0.008563557639718056, + -0.06970565021038055, + 0.04068715497851372, + -0.02785094641149044, + 0.0017837516497820616, + 0.0431668758392334, + 0.012809227220714092, + -0.0992497056722641, + -0.07491475343704224, + 0.08240143954753876, + -0.08449393510818481, + -0.00450856564566493, + -0.08662715554237366, + 0.04068160802125931, + 0.11025522649288177, + 0.0415530726313591, + -0.023766905069351196, + -0.017375074326992035, + 0.050013281404972076, + -0.02350243180990219, + 0.012389621697366238, + 0.0574544295668602, + 0.03179460018873215, + -0.10195067524909973, + -0.01964683085680008, + -0.07553237676620483, + 0.03137651085853577, + -0.033169474452733994, + 0.1412326544523239, + 0.0024874797090888023, + -0.04609978199005127, + -0.07931625097990036, + 0.03564610704779625, + -0.01348478626459837, + 0.060373455286026, + 0.03673099726438522, + 0.07927213609218597, + 0.0639696940779686, + -0.055534981191158295, + 0.12298642098903656, + 0.04358307272195816, + -0.04595636948943138, + -0.06615161895751953, + -0.04008050262928009, + -0.03524373471736908, + 0.023251861333847046, + 0.014349992386996746, + -0.09259232878684998, + -0.01610407419502735, + 0.024809114634990692, + -0.020766835659742355, + 0.05673844739794731, + 0.12615686655044556, + 0.05869127810001373, + -0.11874385923147202 + ] + }, + "p244_149.wav": { + "name": "p244", + "embedding": [ + 0.03768186271190643, + 0.08385203778743744, + 0.003771065967157483, + 0.016704736277461052, + -0.02278084307909012, + 0.04204532504081726, + -0.16192631423473358, + 0.16337457299232483, + -0.028415264561772346, + 0.13345271348953247, + -0.07519504427909851, + 0.10003703832626343, + -0.02614821307361126, + -0.18881404399871826, + -0.024122655391693115, + 0.05158974230289459, + -0.0221388041973114, + -0.018566664308309555, + -0.016828352585434914, + 0.005564190912991762, + 0.05611561983823776, + 0.049695853143930435, + 0.004307721275836229, + -0.001803562045097351, + 0.012524161487817764, + 0.04730432853102684, + 0.00986695196479559, + 0.06021067500114441, + 0.02476823329925537, + -0.03380019590258598, + -0.00223548524081707, + 0.11448952555656433, + -0.04335777088999748, + 0.030037984251976013, + 0.07191549241542816, + -0.00968906655907631, + -0.024295175448060036, + -0.04914316534996033, + -0.018657123669981956, + -0.0071354638785123825, + -0.054571714252233505, + 0.06066074222326279, + 0.043791115283966064, + 0.02487028017640114, + 0.052724555134773254, + 0.0570414774119854, + -0.007172238547354937, + -0.05884827673435211, + -0.0950125902891159, + 0.16391783952713013, + 0.06042741984128952, + 0.0028025214560329914, + -0.06446389108896255, + -0.07849854975938797, + 0.09417851269245148, + -0.010156840085983276, + -0.11376545578241348, + -0.04148290306329727, + 0.10617800801992416, + 0.16100741922855377, + -0.0250163022428751, + -0.04480304569005966, + 0.0320194736123085, + 0.1292324811220169, + 0.04362428933382034, + 0.09016602486371994, + 0.08338652551174164, + 0.10966627299785614, + -0.002137948991730809, + 0.006961085833609104, + 0.035613901913166046, + 0.053405776619911194, + 0.033508457243442535, + -0.011102542281150818, + 0.024848341941833496, + 0.027205847203731537, + -0.010422540828585625, + 0.007268413435667753, + -0.03176813945174217, + 0.001368687953799963, + -0.005691193044185638, + 0.034977711737155914, + 0.002772694919258356, + 0.037705063819885254, + -0.014800334349274635, + 0.058759916573762894, + 0.013955675065517426, + 0.010913911275565624, + 0.07828021049499512, + 0.01347639411687851, + 0.02955559641122818, + 0.06418874859809875, + -0.0798056498169899, + -0.08031607419252396, + 0.017876846715807915, + -0.004576188512146473, + 0.014666064642369747, + 0.07051225751638412, + 0.028934121131896973, + -0.01445766631513834, + 0.13701120018959045, + 0.02543218433856964, + -0.01817462593317032, + 0.03026607260107994, + -0.11601606756448746, + 0.11854873597621918, + 0.04868794232606888, + -0.0228131003677845, + 0.05795200914144516, + -0.077306367456913, + 0.06261872500181198, + 0.055262207984924316, + -0.15220719575881958, + -0.06971816718578339, + 0.06351606547832489, + 0.04874006286263466, + -0.03217070549726486, + 0.1579434871673584, + -0.002579244552180171, + 0.028287317603826523, + 0.10888787358999252, + -0.09761328995227814, + -0.06145886331796646, + -0.011445235460996628, + 0.060192376375198364, + -0.08660709112882614, + 0.05724826455116272, + 0.03938935697078705, + -0.027138710021972656, + 0.005414584651589394, + 0.09243336319923401, + -0.00719593046233058, + 0.02358940802514553, + -0.015410438179969788, + -0.03600359335541725, + 0.03849741071462631, + -0.05553814396262169, + 0.00407925620675087, + -0.007076476700603962, + 0.04599997401237488, + 0.04391339793801308, + 0.007961018942296505, + -0.07285860925912857, + -0.12969304621219635, + -0.009119763039052486, + 0.022251714020967484, + 0.08857829123735428, + -0.00926095899194479, + -0.027449872344732285, + -0.03495349735021591, + -0.04527740180492401, + -0.010584015399217606, + -0.01791813038289547, + 0.06671866774559021, + -0.00796806626021862, + -0.005068654660135508, + 0.09341266751289368, + 0.015182343311607838, + 0.009166423231363297, + -0.054214511066675186, + -0.04482874274253845, + -0.006100847385823727, + 0.041935257613658905, + -0.07273270189762115, + -0.05464041605591774, + 0.0032572061754763126, + 0.04191582649946213, + -0.007699319627135992, + 0.03734232112765312, + 0.029372671619057655, + 0.029092110693454742, + 0.02629699930548668, + -0.06226622313261032, + 0.006399726029485464, + -0.12177871912717819, + -0.09955225884914398, + 0.0018630328122526407, + 0.028377551585435867, + -0.00882348045706749, + 0.07371123135089874, + 0.01345228124409914, + 0.056676216423511505, + 0.0026063756085932255, + -0.07180155813694, + -0.09480110555887222, + 0.05946919322013855, + 0.07905697077512741, + -0.016860011965036392, + 0.0557427853345871, + 0.04409220069646835, + -0.058635152876377106, + 0.05230488255620003, + 0.04737548902630806, + 0.097597636282444, + -0.016359668225049973, + 0.018242985010147095, + -0.07807204127311707, + 0.08407483994960785, + 0.08453156054019928, + -0.08569619059562683, + -0.07536394894123077, + 0.00361895770765841, + -0.07456056773662567, + 0.019792921841144562, + -0.011527043767273426, + 0.017840590327978134, + 0.017282098531723022, + -0.003985610790550709, + -0.10447810590267181, + -0.0651320070028305, + 0.05125219374895096, + -0.08799359202384949, + -0.00356765603646636, + -0.07514673471450806, + 0.053844936192035675, + 0.12126345932483673, + 0.038374364376068115, + -0.011949478648602962, + -0.0579039603471756, + 0.042095355689525604, + -0.048414088785648346, + -0.00973714143037796, + 0.03740885481238365, + 0.03555256500840187, + -0.09930659830570221, + 0.016074690967798233, + -0.07543778419494629, + 0.03346505016088486, + -0.06566616892814636, + 0.1308433711528778, + 0.002985036000609398, + -0.07399366796016693, + -0.08267852663993835, + 0.013626091182231903, + -0.0031136367470026016, + 0.04493806138634682, + 0.003336617723107338, + 0.05804196745157242, + 0.05074665695428848, + -0.054444264620542526, + 0.12769778072834015, + 0.03700132668018341, + -0.0334160141646862, + -0.05462217703461647, + -0.05680021643638611, + -0.04155223071575165, + 0.014036959037184715, + 0.008526414632797241, + -0.09706000983715057, + -0.040051259100437164, + 0.027229513972997665, + -0.016197683289647102, + 0.0530916228890419, + 0.1305728554725647, + 0.028189923614263535, + -0.1510210782289505 + ] + }, + "p244_282.wav": { + "name": "p244", + "embedding": [ + 0.04918473958969116, + 0.08637490123510361, + -0.007416686043143272, + 0.011736655607819557, + -0.034126728773117065, + 0.09576372057199478, + -0.16671088337898254, + 0.11537657678127289, + -0.07332129776477814, + 0.15138636529445648, + -0.06084202975034714, + 0.08286546170711517, + -0.016679655760526657, + -0.19939547777175903, + -0.04118802025914192, + 0.060039639472961426, + -0.0485377162694931, + -0.03061012551188469, + -0.061128370463848114, + -0.021811429411172867, + 0.02710186503827572, + 0.03617182374000549, + 0.003836966585367918, + -0.015880730003118515, + 0.06001034751534462, + 0.04411380738019943, + -0.009789112024009228, + 0.02384761907160282, + -0.023135032504796982, + -0.07027004659175873, + -0.017313463613390923, + 0.11355763673782349, + -0.04108476638793945, + 0.0054458873346447945, + 0.049676381051540375, + 0.010946200229227543, + 0.022713428363204002, + -0.0690869390964508, + -0.025180278345942497, + 0.022344209253787994, + -0.03395051136612892, + 0.08637428283691406, + 0.04206613823771477, + 0.02410716935992241, + 0.018926391378045082, + 0.022452645003795624, + -0.0033003794960677624, + -0.0629497617483139, + -0.09105990827083588, + 0.1637907326221466, + 0.03488153591752052, + 0.02003924548625946, + -0.07264581322669983, + -0.09036867320537567, + 0.11691020429134369, + -0.01661752536892891, + -0.11093058437108994, + -0.041040897369384766, + 0.07760954648256302, + 0.1973458081483841, + -0.03649074211716652, + -0.04468505457043648, + 0.024507921189069748, + 0.10280981659889221, + 0.033941738307476044, + 0.0926000103354454, + 0.07198548316955566, + 0.09376473724842072, + 0.02536942809820175, + -0.006938672624528408, + 0.06506480276584625, + 0.05119505152106285, + 0.04949592798948288, + -0.04402872920036316, + 0.038263265043497086, + 0.0034496309235692024, + -0.033596690744161606, + -0.004746205173432827, + -0.026907946914434433, + -0.005863695405423641, + 0.005246943794190884, + 0.013683231547474861, + 0.02701464667916298, + 0.022461578249931335, + -0.04446312412619591, + 0.01840929128229618, + 0.03137648478150368, + -0.030592940747737885, + 0.08245187997817993, + 0.04999903216958046, + 0.029997780919075012, + 0.05336563289165497, + -0.07607252895832062, + -0.08314183354377747, + 0.04955289512872696, + 0.030490122735500336, + -0.0097513347864151, + 0.04004715383052826, + 0.04669622331857681, + -0.029973922297358513, + 0.11153507232666016, + 0.03164280578494072, + 0.011941333301365376, + 0.028219493106007576, + -0.11870015412569046, + 0.11242745816707611, + 0.07347170263528824, + -0.019780682399868965, + 0.05719504505395889, + -0.03001154586672783, + 0.058226972818374634, + 0.08163052797317505, + -0.15437033772468567, + -0.10382787883281708, + 0.0460633710026741, + 0.011677831411361694, + -0.002385564148426056, + 0.12334049493074417, + -0.005099774803966284, + 0.00373261421918869, + 0.08679091930389404, + -0.09700756520032883, + -0.04592788964509964, + -0.008215099573135376, + 0.051422297954559326, + -0.07695111632347107, + 0.04211403429508209, + 0.05514785274863243, + -0.01441549975425005, + -0.002632137155160308, + 0.0784575343132019, + 0.0010088167618960142, + 0.003617632668465376, + -0.020375492051243782, + -0.00885198824107647, + 0.04245833307504654, + -0.019077708944678307, + -0.0023816616740077734, + 0.040753982961177826, + 0.041563913226127625, + 0.04827522486448288, + -0.0011446280404925346, + -0.048880934715270996, + -0.11934922635555267, + -0.005425691604614258, + 0.031441982835531235, + 0.0708688497543335, + -0.019094662740826607, + 0.015499190427362919, + -0.05891560763120651, + -0.06943809986114502, + 0.03880215436220169, + -0.022658992558717728, + 0.11601532995700836, + 0.03702371567487717, + 0.0017082486301660538, + 0.12184203416109085, + 0.01326817087829113, + 0.003069052705541253, + -0.04492931067943573, + -0.007773939054459333, + 0.01448272354900837, + 0.0442669615149498, + -0.06655454635620117, + -0.0586044043302536, + 0.002862915163859725, + 0.02099073864519596, + -0.006853929720818996, + 0.052816517651081085, + 0.03505631536245346, + 0.02370835654437542, + 0.02798202447593212, + -0.06569341570138931, + 0.021529115736484528, + -0.09267281740903854, + -0.041293468326330185, + 0.0020594631787389517, + -0.03777649253606796, + -0.04203295335173607, + 0.11180447787046432, + 0.031770844012498856, + 0.022221706807613373, + -0.04405190050601959, + -0.07476504147052765, + -0.05941647291183472, + 0.05638466775417328, + 0.059406913816928864, + -0.01249806396663189, + 0.008707843720912933, + 0.036489181220531464, + 0.008604108355939388, + 0.05506923794746399, + 0.09578022360801697, + 0.10153677314519882, + -0.013855861499905586, + 0.023530006408691406, + -0.045515142381191254, + 0.11799225211143494, + 0.054027266800403595, + -0.06644414365291595, + -0.0875316858291626, + -0.015532460063695908, + -0.06729471683502197, + 0.04164282605051994, + -0.015173353254795074, + 0.0241103433072567, + 0.01613209769129753, + -0.024961547926068306, + -0.08904419094324112, + -0.08301189541816711, + 0.08476808667182922, + -0.06067796051502228, + -0.021545374765992165, + -0.07147687673568726, + 0.051183976233005524, + 0.08135366439819336, + 0.0504799410700798, + -0.012078030034899712, + -0.012088810093700886, + 0.04369615390896797, + -0.06308901309967041, + 0.002464691177010536, + 0.05622190982103348, + 0.0018578750314190984, + -0.09580859541893005, + 0.013557873666286469, + -0.08640974760055542, + 0.0827709287405014, + -0.049802280962467194, + 0.15335458517074585, + -0.002155531430616975, + -0.06400637328624725, + -0.072476327419281, + 0.02539350464940071, + -0.031643129885196686, + 0.05469140410423279, + 0.030460383743047714, + 0.08160100877285004, + 0.07404012233018875, + -0.026813236996531487, + 0.07912090420722961, + 0.03971291333436966, + -0.018852807581424713, + -0.06498745828866959, + -0.05719950795173645, + -0.033781807869672775, + 0.027375701814889908, + -0.025486808270215988, + -0.09414863586425781, + 0.019231317564845085, + 0.04031920060515404, + 0.014105978421866894, + 0.06413815915584564, + 0.11309399455785751, + 0.058938100934028625, + -0.12928643822669983 + ] + }, + "p244_144.wav": { + "name": "p244", + "embedding": [ + 0.06451576948165894, + 0.07863955944776535, + -0.054214559495449066, + -0.0013287020847201347, + -0.04699229821562767, + 0.05234336107969284, + -0.11202690005302429, + 0.1264936923980713, + -0.04261700063943863, + 0.1227116659283638, + -0.05619831755757332, + 0.1020348072052002, + -0.0021212296560406685, + -0.0959632620215416, + -0.031342703849077225, + 0.031068187206983566, + -0.016820518299937248, + -0.012836553156375885, + -0.0575728565454483, + -0.007126937620341778, + 0.01864396035671234, + 0.042010921984910965, + -0.0033465642482042313, + -0.04457543045282364, + 0.03951434791088104, + 0.04612615704536438, + -0.003626084653660655, + -0.0012710131704807281, + -9.020802099257708e-05, + -0.014274194836616516, + 0.002750260755419731, + 0.09270736575126648, + -0.0549585297703743, + 0.02991463616490364, + 0.04406115040183067, + 0.013795966282486916, + -0.0028166677802801132, + -0.0755537897348404, + -0.004171857610344887, + 0.0017133401706814766, + -0.020847436040639877, + 0.09847398102283478, + 0.04870182275772095, + -0.01996915228664875, + 0.0008741049095988274, + 0.023187611252069473, + 0.0064304484985768795, + -0.06064082682132721, + -0.0796089768409729, + 0.18075178563594818, + 0.021234050393104553, + 0.007563202176243067, + -0.10967054218053818, + -0.030316786840558052, + 0.07097498327493668, + -0.011462385766208172, + -0.04815720021724701, + -0.06891772150993347, + 0.022153671830892563, + 0.12933334708213806, + -0.008986820466816425, + -0.06296688318252563, + 0.00954245962202549, + 0.10089502483606339, + 0.04547721892595291, + 0.03384922072291374, + 0.08851581066846848, + 0.1031089574098587, + -0.014161994680762291, + 0.0418732725083828, + 0.05211334675550461, + 0.06060950458049774, + 0.04798581451177597, + -0.013754267245531082, + 0.041533492505550385, + -0.04157410189509392, + -0.021936986595392227, + 0.00012329593300819397, + -0.026196949183940887, + -0.06331545859575272, + -0.0151357501745224, + 0.012079700827598572, + 0.018896345049142838, + 0.07096876204013824, + -0.05173385143280029, + 0.03253144398331642, + 0.05863405019044876, + -0.057456113398075104, + 0.07040925323963165, + 0.07698200643062592, + 0.019345292821526527, + 0.010062191635370255, + -0.07948547601699829, + -0.0973343774676323, + 0.04828553646802902, + -0.017899371683597565, + 0.05202047899365425, + 0.042936474084854126, + 0.03044051304459572, + 0.017331190407276154, + 0.07494838535785675, + 0.017454246059060097, + 0.0014740910846740007, + -0.021523334085941315, + -0.06535103172063828, + 0.15509024262428284, + 0.11784021556377411, + -0.01838667131960392, + 0.008557137101888657, + -0.03870384395122528, + 0.015690870583057404, + 0.04523897171020508, + -0.11500421166419983, + -0.09417371451854706, + 0.02455427311360836, + 0.010425731539726257, + 0.011744928546249866, + 0.09375882148742676, + 0.026946041733026505, + 0.016524648293852806, + 0.05758378282189369, + -0.09494365751743317, + -0.06495655328035355, + -0.006743422709405422, + 0.010163147002458572, + -0.08007995039224625, + 0.041595760732889175, + 0.07645824551582336, + -0.010622847825288773, + -0.00458108726888895, + 0.07820293307304382, + 0.02537374198436737, + 0.02983633056282997, + -0.020779289305210114, + 0.03136895224452019, + 0.05646835267543793, + 0.009946179576218128, + -0.006923624314367771, + 0.02413981407880783, + 0.03297823667526245, + 0.07414369285106659, + 0.007161813322454691, + -0.00267966091632843, + -0.10024695098400116, + 0.022871360182762146, + 0.07752461731433868, + 0.03979470208287239, + -0.05954083800315857, + -0.0264838095754385, + -0.007483895402401686, + -0.05975719541311264, + -0.004031844437122345, + 0.006820830050855875, + 0.07728968560695648, + 0.019074691459536552, + 0.002906989539042115, + 0.1524740308523178, + -0.007221294566988945, + 0.011522188782691956, + -0.028411056846380234, + 0.04153662919998169, + 0.034812286496162415, + 0.05945446342229843, + -0.04929729923605919, + -0.09740880131721497, + 0.0042921812273561954, + 0.01036841794848442, + -0.014612752012908459, + 0.03148571774363518, + 0.05867883190512657, + -0.027848713099956512, + 0.04501333832740784, + -0.07449093461036682, + 0.01893012970685959, + -0.11056061834096909, + -0.013285566121339798, + -0.006873646751046181, + -0.061138808727264404, + -0.030024878680706024, + 0.0877450704574585, + 0.016684407368302345, + 0.05443602427840233, + -0.028466980904340744, + -0.09104223549365997, + -0.03484445437788963, + 0.05966056138277054, + 0.07343141734600067, + -0.054386381059885025, + -0.004553365521132946, + 0.05119304358959198, + 0.036805443465709686, + -0.01783037930727005, + 0.0653134137392044, + 0.0833202451467514, + -0.048128098249435425, + -0.03658363223075867, + -0.06021568924188614, + 0.12124153971672058, + 0.04905258119106293, + -0.10331075638532639, + -0.05194811522960663, + -0.0427817665040493, + -0.031648486852645874, + -0.020182698965072632, + -0.026452865451574326, + 0.030227527022361755, + 0.05226399004459381, + -0.027822185307741165, + -0.1087491512298584, + -0.1005541980266571, + 0.05035927891731262, + -0.07216939330101013, + 0.0235403161495924, + -0.06493920087814331, + 0.03590066730976105, + 0.05739014595746994, + 0.04634343832731247, + -0.044089142233133316, + -0.01857799105346203, + -0.023557066917419434, + -0.061096809804439545, + -0.03005470335483551, + -0.008483832702040672, + 0.03132792189717293, + -0.06305155158042908, + 0.00618013646453619, + -0.05518964305520058, + 0.05967462807893753, + -0.05417861044406891, + 0.13946104049682617, + -0.011814150959253311, + -0.08001607656478882, + -0.09965641796588898, + -0.015382720157504082, + -0.038887836039066315, + 0.05071520432829857, + 0.04677646607160568, + 0.025949567556381226, + 0.020992448553442955, + -0.06595253944396973, + 0.09091810882091522, + 0.08341232687234879, + -0.007141642272472382, + -0.07471198588609695, + -0.051463689655065536, + -0.026010246947407722, + 0.05512811616063118, + 0.016546163707971573, + -0.03272877633571625, + 0.029712345451116562, + 0.016880350187420845, + -0.023146355524659157, + 0.08148369193077087, + 0.07711365818977356, + 0.0578840896487236, + -0.10065698623657227 + ] + }, + "p244_318.wav": { + "name": "p244", + "embedding": [ + 0.04507553204894066, + 0.10920147597789764, + -0.022158142179250717, + 0.011556160636246204, + -0.06520803272724152, + 0.05223945528268814, + -0.13449203968048096, + 0.13945050537586212, + -0.03241237252950668, + 0.13587743043899536, + -0.06733669340610504, + 0.11064039915800095, + -0.04449087381362915, + -0.14924824237823486, + -0.014828489162027836, + 0.059912145137786865, + -0.051316335797309875, + -0.04313979297876358, + -0.06568493694067001, + -0.04600934311747551, + 0.018532564863562584, + 0.023898029699921608, + 0.02709241770207882, + 0.014347524382174015, + 0.035172414034605026, + 0.07545115798711777, + 6.184587255120277e-05, + 0.03931276127696037, + 0.002304574241861701, + -0.043067969381809235, + -0.03390832245349884, + 0.08618511259555817, + -0.05207951366901398, + 0.00672593479976058, + 0.03976500779390335, + -0.022910870611667633, + 0.009279772639274597, + -0.04141080379486084, + -0.008341005071997643, + 0.018926098942756653, + -0.027027040719985962, + 0.09029260277748108, + 0.009867168962955475, + -0.005765540990978479, + 0.025646712630987167, + 0.03594989329576492, + -0.006896687671542168, + -0.044028256088495255, + -0.10330000519752502, + 0.16128036379814148, + 0.08075575530529022, + -0.01955389976501465, + -0.06548656523227692, + -0.05060984194278717, + 0.09168876707553864, + -0.0356663353741169, + -0.1006714403629303, + -0.06021656095981598, + 0.07082536816596985, + 0.11834166198968887, + -0.047988057136535645, + -0.04068361595273018, + 0.02116357535123825, + 0.13058772683143616, + 0.07561755925416946, + 0.07317395508289337, + 0.0645039975643158, + 0.11565060913562775, + -0.06145942956209183, + 0.002869861666113138, + 0.06504159420728683, + 0.052801087498664856, + 0.06237401068210602, + 0.009972390718758106, + 0.022321166470646858, + -0.01706426590681076, + 0.009798907674849033, + -0.003948776051402092, + -0.022489584982395172, + -0.0320168063044548, + -0.01852479949593544, + 0.013525784946978092, + -0.015719957649707794, + 0.019091691821813583, + -0.012450532987713814, + 0.059192802757024765, + 0.06244989112019539, + -0.02332986518740654, + 0.08280375599861145, + 0.03874257206916809, + 0.015305336564779282, + 0.07569806277751923, + -0.0913001000881195, + -0.05676039680838585, + 0.04459819197654724, + -0.003976620268076658, + 0.03136901929974556, + 0.046301960945129395, + 0.03205833584070206, + -0.004987073130905628, + 0.12204782664775848, + 0.058196671307086945, + -0.008118255995213985, + 0.029100563377141953, + -0.0868886336684227, + 0.15975579619407654, + 0.08245521783828735, + -0.04829215258359909, + 0.04312577843666077, + -0.017702851444482803, + 0.03541550412774086, + 0.040521711111068726, + -0.10498850047588348, + -0.08655978739261627, + 0.0007403949275612831, + 0.006318551953881979, + -0.049518685787916183, + 0.08220335841178894, + -0.0022732438519597054, + 0.040700219571590424, + 0.11848847568035126, + -0.07807755470275879, + -0.05293574556708336, + 0.007153650745749474, + 0.045477889478206635, + -0.08164584636688232, + 0.0372631810605526, + 0.08606104552745819, + 0.002052789553999901, + 0.042651813477277756, + 0.11153598874807358, + 0.010337131097912788, + 0.0033313168678432703, + 0.013698937371373177, + -0.03761139512062073, + 0.009935274720191956, + 0.0017573998775333166, + -0.009830291382968426, + 0.03997397422790527, + 0.03306715190410614, + 0.05466125160455704, + -0.01318013109266758, + -0.0031720383558422327, + -0.12026414275169373, + 0.02907611057162285, + 0.038955021649599075, + 0.06646828353404999, + -0.02589097060263157, + 0.0007897550240159035, + -0.03274973854422569, + -0.06406117975711823, + -0.005779765546321869, + 0.004290500655770302, + 0.06758448481559753, + -0.049288880079984665, + -0.007854145020246506, + 0.1344522088766098, + 0.036866143345832825, + 0.009831075556576252, + -0.06030388921499252, + -0.018817909061908722, + 0.011213169433176517, + 0.052855901420116425, + -0.07131435722112656, + -0.08908241987228394, + -0.011078552342951298, + 0.05069715529680252, + -0.0054439883679151535, + 0.10068371146917343, + 0.058539845049381256, + -0.0010237207170575857, + 0.015886269509792328, + -0.04767495393753052, + 0.03443163260817528, + -0.054864950478076935, + -0.055831171572208405, + -0.007442827802151442, + -0.022288542240858078, + -0.045784592628479004, + 0.07440043985843658, + 0.010203235782682896, + 0.06714300066232681, + -0.025977984070777893, + -0.08768455684185028, + -0.08800902962684631, + 0.05272018164396286, + 0.06623592972755432, + -0.03501349315047264, + 0.049074240028858185, + 0.08077995479106903, + -0.02768271416425705, + 0.03973587974905968, + 0.06374876946210861, + 0.11115764826536179, + -0.03982605040073395, + 0.022942883893847466, + -0.07662893831729889, + 0.049810923635959625, + 0.05544648319482803, + -0.10768159478902817, + -0.07013879716396332, + -0.038094114512205124, + -0.04538816958665848, + 0.0239694956690073, + -0.022712329402565956, + 0.02705361135303974, + 0.05473530292510986, + 0.0023576742969453335, + -0.07717382162809372, + -0.11067014932632446, + 0.087740957736969, + -0.0760345607995987, + 0.019093003123998642, + -0.07037229835987091, + 0.045412786304950714, + 0.0776141807436943, + 0.05505777895450592, + -0.029280412942171097, + -0.015065735206007957, + 0.03831012174487114, + 0.0002976396935991943, + 0.02039031870663166, + 0.05480428412556648, + 0.05185496434569359, + -0.09379037469625473, + -0.0010709408670663834, + -0.09537047892808914, + 0.0642523318529129, + -0.014521993696689606, + 0.1528104990720749, + 0.027624811977148056, + -0.03512641787528992, + -0.09572188556194305, + 0.021997952833771706, + -0.04331353306770325, + 0.058442965149879456, + 0.021160349249839783, + 0.05122164264321327, + 0.05405889451503754, + -0.039488621056079865, + 0.11723458766937256, + 0.04998578876256943, + -0.05880585312843323, + -0.07599344104528427, + -0.04550326615571976, + -0.04497572034597397, + 0.047326985746622086, + 0.021340832114219666, + -0.08772169798612595, + -0.023435043171048164, + 0.011185297742486, + -0.02631141059100628, + 0.08280722796916962, + 0.13119782507419586, + 0.08854357898235321, + -0.10515636205673218 + ] + }, + "p244_007.wav": { + "name": "p244", + "embedding": [ + 0.045149561017751694, + 0.09462827444076538, + -0.004983566235750914, + 0.01441553607583046, + -0.040921974927186966, + 0.0460314117372036, + -0.1374877691268921, + 0.14266598224639893, + -0.02844548225402832, + 0.14590361714363098, + -0.10295730829238892, + 0.10899394005537033, + -0.03622077777981758, + -0.1817992627620697, + -0.010942138731479645, + 0.049713678658008575, + -0.018514594063162804, + -0.01720358617603779, + -0.01836828701198101, + -0.02213156782090664, + 0.05242509767413139, + 0.03886376693844795, + 0.011565125547349453, + 0.0005401832750067115, + 0.008142187260091305, + 0.060174088925123215, + -0.002350371330976486, + 0.036150168627500534, + 0.009359965100884438, + -0.028012793511152267, + -0.02911045402288437, + 0.11387284845113754, + -0.042926009744405746, + 0.01754629611968994, + 0.05512300133705139, + -0.0023006401024758816, + -0.015515687875449657, + -0.059416264295578, + -0.0034726187586784363, + -0.01844344660639763, + -0.052459970116615295, + 0.051387228071689606, + 0.018303057178854942, + -0.006816095672547817, + 0.048413462936878204, + 0.04628662019968033, + -0.016710927709937096, + -0.04815246909856796, + -0.0959140956401825, + 0.14691177010536194, + 0.07315322756767273, + 0.0010720882564783096, + -0.060489654541015625, + -0.05905752629041672, + 0.09213852137327194, + -0.004349768161773682, + -0.09773315489292145, + -0.03875022754073143, + 0.09545882046222687, + 0.15052419900894165, + -0.03678842633962631, + -0.04767787456512451, + 0.029551643878221512, + 0.11777134984731674, + 0.03265444561839104, + 0.09840225428342819, + 0.07757331430912018, + 0.10743063688278198, + -0.01601983606815338, + 0.0037266486324369907, + 0.0393899604678154, + 0.06142648309469223, + 0.05681558698415756, + -0.024123316630721092, + 0.019066978245973587, + 0.005068219266831875, + -0.021948404610157013, + 0.018842605873942375, + -0.03453856706619263, + -0.024402549490332603, + -0.01040874794125557, + -0.0016926064854487777, + -0.0013946382096037269, + 0.014890472404658794, + -0.02607232891023159, + 0.04491014406085014, + 0.04575467109680176, + -0.0022593028843402863, + 0.07943510264158249, + 0.00871972180902958, + 0.0077266693115234375, + 0.06365819275379181, + -0.08963986486196518, + -0.07812100648880005, + 0.03682796657085419, + 0.0006405137246474624, + 0.006351283751428127, + 0.0839984342455864, + 0.04083499312400818, + -0.02534095197916031, + 0.1304074376821518, + 0.027666514739394188, + -0.001957169035449624, + 0.028884446248412132, + -0.10244368016719818, + 0.13300222158432007, + 0.0867403969168663, + -0.040909938514232635, + 0.040179602801799774, + -0.06159123778343201, + 0.06630713492631912, + 0.06784448772668839, + -0.14018531143665314, + -0.05995617434382439, + 0.027340415865182877, + 0.02889484167098999, + -0.032858945429325104, + 0.11932780593633652, + -0.007023673038929701, + 0.029417915269732475, + 0.11900245398283005, + -0.0956362634897232, + -0.07041047513484955, + -0.024063672870397568, + 0.04008038341999054, + -0.08925782144069672, + 0.059200387448072433, + 0.05558852478861809, + -0.00468786945566535, + 0.023262869566679, + 0.0776807963848114, + -0.019946567714214325, + 0.006450870539993048, + -0.002378875855356455, + -0.05001462623476982, + 0.01711973547935486, + -0.045849110931158066, + -0.0012377402745187283, + 0.01026424765586853, + 0.041825130581855774, + 0.052442729473114014, + 0.005560107529163361, + -0.03959401324391365, + -0.11477609723806381, + 0.011388657614588737, + 0.0426616445183754, + 0.06983286142349243, + -0.006180457770824432, + -0.030488889664411545, + -0.03860398381948471, + -0.056340109556913376, + 0.005566542502492666, + -0.01672866940498352, + 0.05992467328906059, + -0.02122928760945797, + 0.009386766701936722, + 0.09203469753265381, + 0.03568700700998306, + -0.001121892943046987, + -0.06701791286468506, + -0.05225416272878647, + 0.006604105234146118, + 0.03601774573326111, + -0.08915388584136963, + -0.0722610354423523, + -0.01153799332678318, + 0.041301801800727844, + -0.02586875855922699, + 0.052861955016851425, + 0.04162454232573509, + 0.023200949653983116, + 0.02434510551393032, + -0.07235388457775116, + 0.015180274844169617, + -0.10750853270292282, + -0.08713891357183456, + -0.004747116472572088, + 0.003373709972947836, + -6.0791149735450745e-05, + 0.06760033965110779, + -0.0034182898234575987, + 0.045295488089323044, + -0.0170745886862278, + -0.06334178149700165, + -0.0921957939863205, + 0.059231236577034, + 0.07021010667085648, + -0.01315352227538824, + 0.0540599450469017, + 0.04610733315348625, + -0.057014286518096924, + 0.04529346153140068, + 0.05259294435381889, + 0.11683603376150131, + -0.017661986872553825, + 0.031231671571731567, + -0.06803632527589798, + 0.07313703000545502, + 0.09136772155761719, + -0.07618334889411926, + -0.08612386882305145, + -0.036052532494068146, + -0.06151314824819565, + 0.039730288088321686, + -0.019058262929320335, + -0.006168651860207319, + 0.0071921637281775475, + -0.010274677537381649, + -0.09668649733066559, + -0.0691647082567215, + 0.05889381095767021, + -0.06229701638221741, + -0.010126300156116486, + -0.09735549986362457, + 0.06448353826999664, + 0.09117724001407623, + 0.03756062686443329, + -0.029363583773374557, + -0.03031315468251705, + 0.040525857359170914, + -0.04621623083949089, + 0.0024459604173898697, + 0.03496124967932701, + 0.04540511965751648, + -0.09806956350803375, + 0.008444282226264477, + -0.07950171828269958, + 0.04574510455131531, + -0.05788262188434601, + 0.1417692005634308, + 0.009513124823570251, + -0.054678451269865036, + -0.08371474593877792, + 0.03866763785481453, + 0.003159400075674057, + 0.030905848369002342, + 0.020846746861934662, + 0.04654347896575928, + 0.03371462970972061, + -0.08124206960201263, + 0.11730848252773285, + 0.024292364716529846, + -0.023562973365187645, + -0.061257652938365936, + -0.05499252676963806, + -0.050434406846761703, + 0.009189965203404427, + -0.002579478081315756, + -0.09833388030529022, + -0.037157781422138214, + 0.018929090350866318, + 9.888783097267151e-05, + 0.0609932541847229, + 0.13144658505916595, + 0.046483367681503296, + -0.12329264730215073 + ] + }, + "p244_161.wav": { + "name": "p244", + "embedding": [ + 0.06870262324810028, + 0.10832621902227402, + 0.018237516283988953, + 0.0003815444651991129, + -0.018562277778983116, + 0.07336337864398956, + -0.15925759077072144, + 0.13991522789001465, + -0.060507576912641525, + 0.15200191736221313, + -0.08756881207227707, + 0.10665490478277206, + -0.03218308091163635, + -0.1784062385559082, + -0.051562707871198654, + 0.06383423507213593, + -0.051114290952682495, + -0.021441539749503136, + -0.010848100297152996, + -0.00442859809845686, + 0.03806187957525253, + 0.026988688856363297, + 0.028587399050593376, + 0.029623044654726982, + 0.022562410682439804, + 0.06481856107711792, + 0.006737282034009695, + 0.05229507014155388, + 0.0069920942187309265, + -0.05479402840137482, + -0.018677551299333572, + 0.11925399303436279, + -0.029504429548978806, + 0.025281410664319992, + 0.06654888391494751, + 0.013784918002784252, + 0.007076592650264502, + -0.08078533411026001, + -0.010977746918797493, + -0.02224605530500412, + -0.035707853734493256, + 0.06702031940221786, + 0.013324787840247154, + -0.002375748474150896, + 0.020236758515238762, + 0.04379139095544815, + 0.0005133097874931991, + -0.04975833743810654, + -0.09307645261287689, + 0.1431887149810791, + 0.05501990765333176, + 0.012574536725878716, + -0.0724792629480362, + -0.0848955512046814, + 0.10336392372846603, + -0.027185775339603424, + -0.11092164367437363, + -0.025609731674194336, + 0.08587907254695892, + 0.17760726809501648, + -0.046085044741630554, + -0.050447843968868256, + 0.029222603887319565, + 0.12457051873207092, + 0.03412794694304466, + 0.10647805780172348, + 0.07635490596294403, + 0.09448458254337311, + -0.010382408276200294, + 0.008122078143060207, + 0.048811670392751694, + 0.05862194299697876, + 0.06506988406181335, + -0.020888125523924828, + 0.02912452444434166, + 0.006172207184135914, + -0.027292665094137192, + 0.025266330689191818, + -0.023525765165686607, + -0.024357467889785767, + -0.02253073826432228, + -0.00208936701528728, + -0.011701757088303566, + 0.01969437301158905, + -0.015462040901184082, + 0.039249107241630554, + 0.01680240035057068, + -0.018924657255411148, + 0.08197642862796783, + 0.040215566754341125, + 0.037328775972127914, + 0.06807029247283936, + -0.065538689494133, + -0.0797659158706665, + 0.04386014863848686, + 0.0059586199931800365, + 0.0171256922185421, + 0.07328593730926514, + 0.044418882578611374, + -0.022651297971606255, + 0.11246055364608765, + 0.04188261553645134, + 0.009091696701943874, + 0.015819981694221497, + -0.1156444177031517, + 0.12238971889019012, + 0.07270428538322449, + -0.04746101424098015, + 0.03256046026945114, + -0.0442255400121212, + 0.07173807919025421, + 0.09776537120342255, + -0.15303656458854675, + -0.09183570742607117, + 0.04038841277360916, + 0.02522859536111355, + -0.0050983852706849575, + 0.10459312796592712, + -0.014848722144961357, + 0.011565989814698696, + 0.09376179426908493, + -0.07401733100414276, + -0.05897212028503418, + -0.022061064839363098, + 0.039304040372371674, + -0.09357898682355881, + 0.06608165055513382, + 0.0492662712931633, + 0.0027238510083407164, + -0.017883144319057465, + 0.09324191510677338, + -0.01609242893755436, + -0.01770544983446598, + -0.008201437070965767, + -0.04062352329492569, + 0.017123602330684662, + -0.04358793422579765, + 0.011792747303843498, + 0.002367309993132949, + 0.04382942244410515, + 0.025523971766233444, + 0.015377247706055641, + -0.05584787577390671, + -0.11316414922475815, + -0.0018854388035833836, + 0.0531994067132473, + 0.06586024910211563, + -0.0036472126375883818, + -0.039595119655132294, + -0.03285756707191467, + -0.02714969962835312, + 0.022000622004270554, + -0.0215320885181427, + 0.07059452682733536, + 0.005336389876902103, + 0.006951726507395506, + 0.1057104766368866, + 0.014294530265033245, + 0.011490853503346443, + -0.06466006487607956, + -0.019668901339173317, + 0.03289859741926193, + 0.04279383271932602, + -0.07607969641685486, + -0.07183100283145905, + 0.0034481151960790157, + 0.03494783490896225, + -0.014473985880613327, + 0.0458655022084713, + 0.03803864121437073, + 0.014231516048312187, + 0.025620516389608383, + -0.0582166388630867, + 0.014855700545012951, + -0.11558549106121063, + -0.08754715323448181, + -0.008582242764532566, + -0.011124735698103905, + 0.003764317836612463, + 0.06719385087490082, + 0.01484648883342743, + 0.03679465875029564, + -0.03116190806031227, + -0.0819769948720932, + -0.08818960189819336, + 0.06477537751197815, + 0.09183748066425323, + 0.006224717013537884, + 0.03845309466123581, + 0.0348658561706543, + -0.020722847431898117, + 0.06271000951528549, + 0.05161736533045769, + 0.11731331795454025, + -0.027741428464651108, + 0.02158561907708645, + -0.06975573301315308, + 0.07015620172023773, + 0.08249412477016449, + -0.08361397683620453, + -0.09463249891996384, + -0.019229568541049957, + -0.05283684656023979, + 0.04383622109889984, + -0.008865853771567345, + 0.005712880752980709, + 0.015254969708621502, + -0.032408811151981354, + -0.09880499541759491, + -0.08109933882951736, + 0.09112220257520676, + -0.06285277009010315, + -0.009766589850187302, + -0.08192508667707443, + 0.07207295298576355, + 0.07351924479007721, + 0.04085075855255127, + -0.024230893701314926, + -0.004076804965734482, + 0.03783038258552551, + -0.05463511496782303, + -0.019450504332780838, + 0.03397679701447487, + 0.016385337337851524, + -0.10431455075740814, + 0.01707218773663044, + -0.09213979542255402, + 0.07221890985965729, + -0.07339034974575043, + 0.16168177127838135, + -0.02109682373702526, + -0.07328248023986816, + -0.08050103485584259, + 0.009347349405288696, + -0.01990067958831787, + 0.045343443751335144, + 0.029147714376449585, + 0.0550139918923378, + 0.02574208192527294, + -0.06777419149875641, + 0.10246551036834717, + 0.03721686452627182, + -0.017056453973054886, + -0.07194140553474426, + -0.05997295305132866, + -0.04421697184443474, + 0.022755298763513565, + -0.020484410226345062, + -0.09410213679075241, + -0.023953229188919067, + 0.018044713884592056, + -0.0023260421585291624, + 0.07099057734012604, + 0.13451765477657318, + 0.03564916178584099, + -0.12935785949230194 + ] + }, + "p244_322.wav": { + "name": "p244", + "embedding": [ + 0.05867404490709305, + 0.08776416629552841, + -0.009117075242102146, + 0.006275969557464123, + -0.05828960984945297, + 0.05608009174466133, + -0.15756559371948242, + 0.15339866280555725, + -0.043311361223459244, + 0.12987080216407776, + -0.04376037046313286, + 0.13991306722164154, + -4.772613010572968e-06, + -0.19379335641860962, + -0.037924982607364655, + 0.0577777698636055, + -0.056644003838300705, + -0.04867164045572281, + -0.009366032667458057, + -0.03086036816239357, + 0.04147467762231827, + 0.04401761293411255, + 0.03154900297522545, + 0.021233724430203438, + 0.025893524289131165, + 0.08144257962703705, + 0.015503056347370148, + 0.05473456159234047, + 0.020258257165551186, + -0.06304898113012314, + -0.04084392264485359, + 0.07913471013307571, + -0.05371316149830818, + -0.007965032942593098, + 0.04409767687320709, + -0.03573685139417648, + 0.007143785711377859, + -0.06800752133131027, + -0.02970271185040474, + 0.017500991001725197, + -0.03473828732967377, + 0.09454252570867538, + 0.03404957056045532, + -0.01597454585134983, + 0.023009149357676506, + 0.03175893798470497, + -0.0014671747339889407, + -0.05008109658956528, + -0.1111796572804451, + 0.14726674556732178, + 0.08040410280227661, + -0.002775174332782626, + -0.06350021809339523, + -0.05659450590610504, + 0.10560932010412216, + -0.016208071261644363, + -0.1032608300447464, + -0.03512602671980858, + 0.07019481062889099, + 0.1424742490053177, + -0.04023712873458862, + -0.04222244396805763, + 0.04894430190324783, + 0.1261807233095169, + 0.05756570026278496, + 0.07596937566995621, + 0.09350641071796417, + 0.09585306793451309, + -0.03165556862950325, + 0.018457213416695595, + 0.049356598407030106, + 0.08357895910739899, + 0.025122439488768578, + -0.008470152504742146, + 0.025872208178043365, + -0.00923940259963274, + -0.014261228032410145, + -0.011694937944412231, + -0.007796307094395161, + -0.010588720440864563, + -0.008430177345871925, + 0.014417783357203007, + -0.0044074226170778275, + 0.03972719609737396, + -0.02282765321433544, + 0.07116247713565826, + 0.010834299959242344, + -0.006394419819116592, + 0.07449810951948166, + 0.021347124129533768, + 0.03531501069664955, + 0.07125614583492279, + -0.086465023458004, + -0.07489131391048431, + 0.04830196872353554, + -0.0001503361272625625, + 0.037160806357860565, + 0.07645300030708313, + 0.04441075026988983, + -0.015106570906937122, + 0.13763055205345154, + 0.06629740446805954, + -0.02261001244187355, + 0.023913847282528877, + -0.08670985698699951, + 0.1360081434249878, + 0.07539215683937073, + -0.03781836852431297, + 0.05808195844292641, + -0.057647716253995895, + 0.07614754140377045, + 0.049175336956977844, + -0.14671207964420319, + -0.08810988813638687, + 0.04085970297455788, + 0.039393968880176544, + -0.022739311680197716, + 0.14198949933052063, + -0.01827811822295189, + 0.05077064409852028, + 0.09974881261587143, + -0.06040159985423088, + -0.0496547557413578, + -0.018630361184477806, + 0.06358248740434647, + -0.09324121475219727, + 0.08466548472642899, + 0.06435555219650269, + -0.01880018040537834, + 0.01887170970439911, + 0.09250757098197937, + -0.019450407475233078, + -0.008574271574616432, + 0.013556569814682007, + -0.03143060952425003, + 0.0165313258767128, + -0.021760541945695877, + 0.007706217002123594, + 0.020902518182992935, + 0.0266584400087595, + 0.03983909636735916, + -0.0017553266370669007, + -0.04117373377084732, + -0.1326344758272171, + 0.01696479506790638, + 0.009681995026767254, + 0.0847819596529007, + -0.0011977946851402521, + -0.04532928764820099, + -0.041529830545186996, + -0.0410635843873024, + -0.020994078367948532, + 0.007407172117382288, + 0.06456858664751053, + -0.028331449255347252, + 0.013436204753816128, + 0.08333013206720352, + 0.04634971171617508, + 0.015180795453488827, + -0.030198749154806137, + -0.03350245580077171, + 0.020259691402316093, + 0.05327599495649338, + -0.07026441395282745, + -0.06719457358121872, + -0.011357349343597889, + 0.04443669319152832, + -0.02031329646706581, + 0.05439165607094765, + 0.0497092641890049, + 0.028534119948744774, + 0.02472635731101036, + -0.07578153163194656, + 0.04309258237481117, + -0.08571420609951019, + -0.07007020711898804, + -0.015253056772053242, + 0.011146986857056618, + -0.047452718019485474, + 0.06553606688976288, + 0.01987873949110508, + 0.07775586098432541, + -0.026488518342375755, + -0.05859935283660889, + -0.07976828515529633, + 0.03688163310289383, + 0.08365271240472794, + -0.011485207825899124, + 0.041748978197574615, + 0.0557313933968544, + -0.012076572515070438, + 0.0557733029127121, + 0.04484863951802254, + 0.10123520344495773, + -0.025056693702936172, + 0.00805388018488884, + -0.05475130304694176, + 0.07183671742677689, + 0.06349208950996399, + -0.09084787964820862, + -0.06388452649116516, + -0.01715942658483982, + -0.06846684217453003, + 0.039339762181043625, + -0.0042763021774590015, + 0.017304273322224617, + 0.0237430389970541, + 0.008652533404529095, + -0.1057690903544426, + -0.08377397805452347, + 0.07391486316919327, + -0.08307552337646484, + 0.0057650376111269, + -0.08851455897092819, + 0.05180005356669426, + 0.12259875237941742, + 0.028729919344186783, + -0.025784656405448914, + -0.04210766777396202, + 0.027388472110033035, + -0.008438419550657272, + 0.02171332761645317, + 0.057243864983320236, + 0.05695510655641556, + -0.11887624114751816, + 0.0033189682289958, + -0.08494004607200623, + 0.03907385095953941, + -0.04326308146119118, + 0.1467370092868805, + 0.023233477026224136, + -0.0502345971763134, + -0.0973343551158905, + 0.03095272183418274, + -0.023961668834090233, + 0.06033830717206001, + 0.03715446963906288, + 0.05577002838253975, + 0.05007936432957649, + -0.07353881001472473, + 0.10891478508710861, + 0.05222782492637634, + -0.048930149525403976, + -0.08264405280351639, + -0.02988201566040516, + -0.02504650317132473, + 0.049169961363077164, + 0.03359472379088402, + -0.08841452747583389, + -0.048421625047922134, + 0.02786114625632763, + -0.011260537430644035, + 0.08766349405050278, + 0.13737866282463074, + 0.047570183873176575, + -0.1182001456618309 + ] + }, + "p244_029.wav": { + "name": "p244", + "embedding": [ + 0.02780189737677574, + 0.06881777197122574, + -0.02166341058909893, + 0.035300370305776596, + -0.08039987087249756, + 0.03737490996718407, + -0.13218814134597778, + 0.10533221811056137, + -0.025261640548706055, + 0.13056746125221252, + -0.06294182687997818, + 0.11150313168764114, + -0.04067876562476158, + -0.19179928302764893, + 0.01603834703564644, + 0.07331312447786331, + -0.009981782175600529, + -0.05697910487651825, + -0.030502507463097572, + -0.03456566482782364, + 0.018658112734556198, + 0.04433068633079529, + 0.030695535242557526, + 0.009590781293809414, + 0.030597832053899765, + 0.08441580086946487, + -0.01755676046013832, + 0.020735016092658043, + -0.011478307656943798, + -0.03744737058877945, + -0.05290212854743004, + 0.08481673896312714, + -0.06441842019557953, + -0.016748838126659393, + 0.022417467087507248, + -0.007377291098237038, + -0.008932935073971748, + -0.04833114892244339, + -0.009816067293286324, + 0.0020654138643294573, + -0.06729279458522797, + 0.0770978033542633, + 0.012322187423706055, + -0.013452468439936638, + 0.03841298446059227, + 0.011561397463083267, + -0.024539481848478317, + -0.02239598147571087, + -0.1207062155008316, + 0.13176241517066956, + 0.06389179825782776, + -0.01150287501513958, + -0.06859362870454788, + -0.05717504769563675, + 0.09275449812412262, + -0.008093236945569515, + -0.09542311728000641, + -0.07539010047912598, + 0.08015977591276169, + 0.11930983513593674, + -0.026469871401786804, + -0.03782252222299576, + 0.023962363600730896, + 0.09392349421977997, + 0.06957662850618362, + 0.08792545646429062, + 0.05430028215050697, + 0.11039911210536957, + -0.03676654398441315, + -0.007545675151050091, + 0.0666150227189064, + 0.05513319373130798, + 0.03976689279079437, + -0.019877765327692032, + 0.010215479880571365, + 0.007984207943081856, + -0.0031649149022996426, + 0.008714050054550171, + -0.00264170253649354, + -0.021914878860116005, + -0.012283986434340477, + -0.026817915961146355, + -0.011580743826925755, + -0.002369352150708437, + -0.021885622292757034, + 0.04338505491614342, + 0.08456631004810333, + -0.0020076162181794643, + 0.08473724871873856, + 0.02747882902622223, + -0.02704799361526966, + 0.0778418481349945, + -0.08801056444644928, + -0.028749868273735046, + 0.03529080003499985, + 0.006499058101326227, + 0.003503114450722933, + 0.0772712379693985, + 0.03805812448263168, + -0.017157312482595444, + 0.12923437356948853, + 0.04269561544060707, + 0.006646237336099148, + 0.03647709637880325, + -0.08015980571508408, + 0.13249893486499786, + 0.07367956638336182, + -0.037179671227931976, + 0.04943344369530678, + -0.02214723825454712, + 0.051948897540569305, + 0.05367725342512131, + -0.10972532629966736, + -0.05366886779665947, + -0.00395756121724844, + -0.01649671234190464, + -0.05136849731206894, + 0.12127330899238586, + -0.013668501749634743, + 0.02866087108850479, + 0.12481474876403809, + -0.09382082521915436, + -0.07580876350402832, + 0.008934416808187962, + 0.027468513697385788, + -0.10574019700288773, + 0.049265168607234955, + 0.06492609530687332, + 0.001026851125061512, + 0.036990828812122345, + 0.08854550123214722, + -0.01331368274986744, + 0.019535653293132782, + 0.006677671801298857, + -0.04297717660665512, + 0.014578481204807758, + -0.010654295794665813, + -0.009864230640232563, + 0.08132299035787582, + 0.011906872503459454, + 0.06819181144237518, + -0.025784719735383987, + 0.006931353360414505, + -0.1369224637746811, + 0.028833262622356415, + 0.04176367074251175, + 0.0686354860663414, + -0.012330367229878902, + -0.008494798094034195, + -0.057070568203926086, + -0.09885986149311066, + 0.02841872163116932, + -0.0012829565675929189, + 0.08452381193637848, + -0.0442269928753376, + 0.005829977802932262, + 0.09953711926937103, + 0.05012792348861694, + -0.005873378366231918, + -0.0641418918967247, + -0.049663521349430084, + 0.00015880540013313293, + 0.05739030987024307, + -0.0848923772573471, + -0.06908732652664185, + -0.026412172242999077, + 0.05897587910294533, + -0.01342968363314867, + 0.07305772602558136, + 0.06559213995933533, + 0.026138633489608765, + 0.004874559119343758, + -0.07479707151651382, + 0.03167376294732094, + -0.041544221341609955, + -0.05901027098298073, + -0.023487603291869164, + -0.020500417798757553, + -0.03167291730642319, + 0.08064433932304382, + 0.013003415428102016, + 0.04186970368027687, + -0.03767181560397148, + -0.07162640243768692, + -0.10102683305740356, + 0.03790765255689621, + 0.046678703278303146, + -0.029464757069945335, + 0.04837606102228165, + 0.06666761636734009, + -0.06644361466169357, + 0.04189606010913849, + 0.046696633100509644, + 0.10919620096683502, + -0.04652491956949234, + 0.0415828600525856, + -0.044446270912885666, + 0.07271315157413483, + 0.08629599958658218, + -0.0788758173584938, + -0.06641732156276703, + -0.04304632544517517, + -0.0710979551076889, + 0.06476205587387085, + -0.027910947799682617, + -0.0032920720987021923, + 0.03390655666589737, + -0.007626053877174854, + -0.09001055359840393, + -0.10095858573913574, + 0.07489994913339615, + -0.038231879472732544, + -0.006134871859103441, + -0.09589746594429016, + 0.038394395262002945, + 0.04740843176841736, + 0.054574836045503616, + -0.03585117310285568, + -0.007327437400817871, + 0.046828169375658035, + -0.012232083827257156, + 0.027652762830257416, + 0.09809942543506622, + 0.04111935943365097, + -0.08717308938503265, + -0.04641895741224289, + -0.09534372389316559, + 0.08270589262247086, + -0.027644727379083633, + 0.1443927139043808, + 0.017893584445118904, + -0.023883726447820663, + -0.063459612429142, + 0.02851518988609314, + -0.010903319343924522, + 0.05522590130567551, + 0.045986589044332504, + 0.06351014971733093, + 0.045878518372774124, + -0.02977527305483818, + 0.11506573855876923, + 0.05919646471738815, + -0.031413257122039795, + -0.05762070417404175, + -0.0213331189006567, + -0.05005037412047386, + 0.04196877032518387, + 0.022439155727624893, + -0.1201159879565239, + 0.0053299106657505035, + 0.03308534622192383, + -0.013428907841444016, + 0.06381815671920776, + 0.1387225091457367, + 0.08890995383262634, + -0.09253202378749847 + ] + }, + "p244_407.wav": { + "name": "p244", + "embedding": [ + -0.003104584291577339, + 0.04657316207885742, + -0.032337043434381485, + 0.006645446643233299, + -0.05889582633972168, + 0.023109564557671547, + -0.0836152508854866, + 0.05858964845538139, + -0.03308698907494545, + 0.1238940954208374, + -0.03413597121834755, + 0.1005193442106247, + -0.01499311812222004, + -0.08105746656656265, + 0.023426655679941177, + 0.05755702406167984, + -0.011530330404639244, + -0.040308378636837006, + -0.0003295931965112686, + -0.08617779612541199, + 0.026843346655368805, + 0.013807281851768494, + -0.005035571753978729, + -0.01111688930541277, + 0.0010062993969768286, + 0.08500957489013672, + -0.016075022518634796, + -0.013842049986124039, + -0.019869215786457062, + -0.0630098357796669, + -0.04138507694005966, + 0.09601067006587982, + -0.037356168031692505, + -0.05952814221382141, + 0.02426801063120365, + -0.012836904264986515, + -0.005598604213446379, + -0.011211697943508625, + 0.02020454593002796, + 0.008303358219563961, + -0.10945820808410645, + 0.0837821438908577, + -0.018392261117696762, + -0.011588041670620441, + 0.05007948726415634, + -0.034542445093393326, + -0.05800371617078781, + 0.05362749844789505, + -0.042021967470645905, + 0.07242666929960251, + 0.08492620289325714, + -0.02868054062128067, + -0.04110778868198395, + -0.02114693820476532, + 0.05137369781732559, + 0.019055377691984177, + -0.1011195182800293, + -0.024596519768238068, + -0.0002370290458202362, + 0.07408127188682556, + -0.0005028368905186653, + -0.033601824194192886, + 0.03478960692882538, + 0.09339827299118042, + 0.06205793470144272, + 0.04223657771945, + 0.05290503799915314, + 0.06885270029306412, + -0.022216254845261574, + -0.029701411724090576, + 0.06996627151966095, + 0.0864732414484024, + 0.08215707540512085, + -0.0019089310662820935, + 0.02766697108745575, + -0.006614426150918007, + 0.0011562397703528404, + -0.05672324076294899, + -0.03587431460618973, + -0.028931934386491776, + -0.05705353617668152, + -0.021391846239566803, + -0.0013540992513298988, + 0.03384846821427345, + 0.0011343229562044144, + -0.006994025781750679, + 0.08271786570549011, + -0.02858877182006836, + 0.04757063835859299, + 0.031527962535619736, + -0.014183513820171356, + 0.04894658550620079, + -0.08426105231046677, + 0.008590849116444588, + 0.016310518607497215, + -0.019878674298524857, + 0.05104648321866989, + 0.07355128228664398, + 0.007673108018934727, + 0.017706256359815598, + 0.08254500478506088, + 0.029020095244050026, + 0.020456653088331223, + -0.0029742568731307983, + -0.07228829711675644, + 0.1103634387254715, + 0.07806919515132904, + -0.0640028715133667, + 0.006874486804008484, + 0.03914283961057663, + 0.040454551577568054, + -0.004827793687582016, + -0.09616594016551971, + -0.023870384320616722, + -0.024942860007286072, + 0.012525135651230812, + -0.012076758779585361, + 0.09087841212749481, + 0.01347122248262167, + 0.03773888200521469, + 0.09482701122760773, + -0.02195243164896965, + -0.0607881098985672, + -0.05246800556778908, + 0.02600812539458275, + -0.12688294053077698, + 0.0887662023305893, + 0.05488528311252594, + 0.045933984220027924, + 0.05349424108862877, + 0.10580737888813019, + 0.005932166241109371, + -0.008115613833069801, + -0.03361114114522934, + -0.03186650201678276, + -0.003121431451290846, + -0.00012975651770830154, + 0.04425520822405815, + 0.07043840736150742, + -0.006851738318800926, + 0.10119348019361496, + -0.007384748198091984, + 0.060464370995759964, + -0.07564433664083481, + 0.03929874673485756, + 0.0343942791223526, + 0.02475239336490631, + -0.03344819322228432, + -0.02465083636343479, + 0.0072366707026958466, + -0.06678535044193268, + -0.02442559227347374, + -0.023924626410007477, + 0.06874669343233109, + -0.029876066371798515, + -0.009793409146368504, + 0.09930677711963654, + 0.031654663383960724, + -0.0060859257355332375, + -0.002396952360868454, + -0.03451858088374138, + -0.013528370298445225, + 0.0750058963894844, + -0.13117572665214539, + -0.07055386900901794, + -0.020009178668260574, + 0.032913632690906525, + 0.045135047286748886, + 0.053581275045871735, + 0.08896920830011368, + -0.018656853586435318, + 0.026856394484639168, + -0.020285427570343018, + 0.024043720215559006, + -0.053148895502090454, + -0.05038430914282799, + -0.046974774450063705, + -0.08690065145492554, + -0.057863496243953705, + 0.04483678936958313, + -0.04021107405424118, + 0.045361801981925964, + -0.028334293514490128, + -0.07365195453166962, + -0.08450794219970703, + 0.017343856394290924, + 0.03447098284959793, + -0.026992756873369217, + 0.03211980685591698, + 0.10205669701099396, + -0.02623457834124565, + -0.01944817788898945, + 0.015529869124293327, + 0.10556671023368835, + -0.0641951709985733, + 0.02835429087281227, + -0.06852920353412628, + 0.05496248975396156, + 0.0796789675951004, + -0.024761170148849487, + -0.061186533421278, + -0.0679822713136673, + -0.03255509212613106, + 0.08795242756605148, + -0.04374832659959793, + -0.016944946721196175, + 0.026646820828318596, + -0.027378231287002563, + -0.061976246535778046, + -0.05818817391991615, + 0.0926298126578331, + -0.05986655876040459, + -0.012708021327853203, + -0.06789904087781906, + 0.008965477347373962, + -0.015787430107593536, + 0.07708202302455902, + -0.07744063436985016, + 0.05499912053346634, + 0.05589529499411583, + -0.016781218349933624, + 0.05208747088909149, + 0.08026955276727676, + 0.03256071358919144, + -0.04298686236143112, + -0.07182008028030396, + -0.06363420188426971, + 0.0448843352496624, + -0.026755396276712418, + 0.0501389242708683, + 0.026474572718143463, + -0.026602022349834442, + -0.046603161841630936, + 0.02742432802915573, + 0.01171579398214817, + 0.010041594505310059, + 0.1002071425318718, + 0.1084214597940445, + 0.01527472585439682, + -0.016209213063120842, + 0.07432680577039719, + 0.028180165216326714, + 0.0075395843014121056, + -0.022618385031819344, + 0.007898639887571335, + -0.04450123757123947, + 0.016117246821522713, + 0.049493271857500076, + -0.11122187972068787, + 0.06742001324892044, + 0.015724629163742065, + 0.01118016429245472, + 0.04433777183294296, + 0.05172194540500641, + 0.0658288300037384, + -0.06423455476760864 + ] + }, + "p244_235.wav": { + "name": "p244", + "embedding": [ + 0.08414724469184875, + 0.031948335468769073, + 0.008943088352680206, + -0.02238096296787262, + -0.02330591529607773, + 0.047428738325834274, + -0.10531490296125412, + 0.09980402886867523, + -0.04704798012971878, + 0.0699850395321846, + -0.08023872971534729, + 0.08879193663597107, + 0.017676588147878647, + -0.12182343006134033, + -0.0659368485212326, + 0.02796243131160736, + -0.03592311963438988, + 0.005282433703541756, + -0.06951486319303513, + -0.029010048136115074, + 0.011277561075985432, + 0.05407358705997467, + 0.033470313996076584, + -0.02317504957318306, + 0.029628541320562363, + 0.058356016874313354, + 0.03048108145594597, + 0.03721782565116882, + -0.00400970783084631, + -0.021969571709632874, + -0.0018918104469776154, + 0.08224688470363617, + -0.019491994753479958, + -0.022157397121191025, + 0.0456538200378418, + -0.0007916120812296867, + 0.03099163994193077, + -0.09128797054290771, + -0.03188329190015793, + 0.03247610852122307, + -0.04240315407514572, + 0.07372508943080902, + 0.06276065111160278, + -0.0047044456005096436, + 0.009728895500302315, + 0.015967829152941704, + 0.009108318015933037, + -0.08033211529254913, + -0.11000896990299225, + 0.17768913507461548, + 0.005370305851101875, + 0.04462099075317383, + -0.11519655585289001, + -0.01280895620584488, + 0.08057249337434769, + -0.022846464067697525, + -0.03344767168164253, + -0.03641297668218613, + 0.024675730615854263, + 0.14093877375125885, + -0.002063194289803505, + -0.03948536887764931, + 0.03993751108646393, + 0.07905098795890808, + 0.01084806490689516, + 0.021227842196822166, + 0.1313486546278, + 0.0696532279253006, + -0.0011959066614508629, + 0.0597175657749176, + 0.04390156269073486, + 0.0480753555893898, + 0.030905958265066147, + -0.021440064534544945, + 0.03045884147286415, + -0.02206547185778618, + -0.045527294278144836, + 0.0067911092191934586, + -0.028769362717866898, + -0.032696593552827835, + 0.010667145252227783, + 0.024968117475509644, + 0.037860311567783356, + 0.032501377165317535, + -0.0674109160900116, + 0.060953445732593536, + -0.010538906790316105, + -0.012828954495489597, + 0.055500272661447525, + 0.05890392139554024, + 0.008883259259164333, + -0.010890992358326912, + -0.027336928993463516, + -0.11041491478681564, + -0.003958722576498985, + 0.002464384539052844, + 0.03246554732322693, + 0.027331676334142685, + 0.026970436796545982, + -0.02828892692923546, + 0.07926802337169647, + 0.011447388678789139, + 0.013722170144319534, + -0.01360907033085823, + -0.06630753725767136, + 0.0808674767613411, + 0.11701808869838715, + -0.006666000932455063, + 0.025465281680226326, + -0.04413112998008728, + 0.021561142057180405, + 0.06509619951248169, + -0.09490412473678589, + -0.06714627891778946, + 0.03217704966664314, + 0.01808125711977482, + 0.07384863495826721, + 0.09053315222263336, + -0.00805019773542881, + 0.019038518890738487, + 0.04889168590307236, + -0.07183147966861725, + -0.026759475469589233, + -8.155964314937592e-05, + 0.012430368922650814, + -0.02079918049275875, + 0.02140168286859989, + 0.036056291311979294, + 0.02562927082180977, + -0.0455782487988472, + 0.06624790281057358, + 0.0035619856789708138, + -0.004401146434247494, + -0.039004165679216385, + 0.038433872163295746, + 0.0660308301448822, + 0.0013722097501158714, + -0.03185052424669266, + 0.049162380397319794, + 0.09024513512849808, + 0.004282768815755844, + 0.053114861249923706, + -0.062113165855407715, + -0.0957697331905365, + -0.019128186628222466, + 0.04619210585951805, + 0.047117047011852264, + -0.035239361226558685, + -0.0407211072742939, + -0.06313902139663696, + -0.004834108054637909, + -0.008600874803960323, + 0.014729546383023262, + 0.05742064118385315, + 0.03767884150147438, + 0.0048480164259672165, + 0.07689369469881058, + -0.03033529780805111, + 0.018571069464087486, + -0.017184583470225334, + 0.026356305927038193, + 0.034995414316654205, + 0.027773484587669373, + 0.009876169264316559, + -0.08222924172878265, + 0.004199131391942501, + -0.015613555908203125, + -0.026801731437444687, + -0.0025995224714279175, + 0.010991642251610756, + -0.024151857942342758, + 0.007024191319942474, + -0.10378921031951904, + 0.03716892749071121, + -0.11630301922559738, + 0.0037630535662174225, + 0.050034526735544205, + -0.04498978704214096, + -0.02551146224141121, + 0.09027744829654694, + 0.0293334499001503, + 0.03520354628562927, + -0.02103339321911335, + -0.0888897180557251, + 0.00338873453438282, + 0.04604913294315338, + 0.06833773851394653, + -0.005775232799351215, + 0.00189307052642107, + -0.004502268508076668, + 0.04314936324954033, + 0.05591220408678055, + 0.06444937735795975, + 0.0380018949508667, + -0.03494517505168915, + -0.06984288990497589, + 0.008918458595871925, + 0.10586248338222504, + -0.007336929440498352, + -0.06716549396514893, + -0.056028276681900024, + -0.002254173159599304, + -0.03827476128935814, + 0.006087338551878929, + 0.01722545549273491, + 0.037802811712026596, + 0.053151801228523254, + -0.013767322525382042, + -0.10574370622634888, + -0.046843286603689194, + 0.04101041331887245, + -0.06096049025654793, + -0.009861629456281662, + -0.041982538998126984, + 0.026280207559466362, + 0.10085171461105347, + 0.005654484033584595, + 0.03152710199356079, + -0.02600701153278351, + -0.03461811691522598, + -0.0877743661403656, + -0.0573757141828537, + -0.032806240022182465, + 0.019656050950288773, + -0.040631845593452454, + 0.024713240563869476, + -0.06452464312314987, + 0.06095213443040848, + -0.031063474714756012, + 0.09285181760787964, + 0.013319146819412708, + -0.06253103911876678, + -0.08947643637657166, + -0.0007865540683269501, + -0.04162108525633812, + 0.05814853683114052, + 0.05279542878270149, + 0.010547339916229248, + 0.021966557949781418, + -0.08115498721599579, + 0.07450666278600693, + 0.062321167439222336, + -0.05725353956222534, + -0.06883177161216736, + -0.037378374487161636, + 0.006283266469836235, + 0.026729024946689606, + -0.01295035146176815, + 0.014990851283073425, + 0.026568707078695297, + 0.016074951738119125, + -0.013926400803029537, + 0.06668197363615036, + 0.08498382568359375, + 0.04286962375044823, + -0.07782401889562607 + ] + }, + "p244_162.wav": { + "name": "p244", + "embedding": [ + 0.04829081892967224, + 0.07129817456007004, + 0.051060669124126434, + 0.01499593909829855, + 0.006851959973573685, + -0.03260171040892601, + -0.08099651336669922, + 0.0637405589222908, + 0.042777325958013535, + 0.07052373886108398, + -0.1430099606513977, + 0.07106330990791321, + -0.08491027355194092, + -0.10734517872333527, + -0.0011229310184717178, + 0.0048606786876916885, + -0.0260935015976429, + 0.004033581353724003, + 0.0005641123279929161, + -0.030605744570493698, + 0.024690553545951843, + 0.002459196373820305, + 0.063155397772789, + -0.03677212446928024, + -0.020689982920885086, + 0.061141762882471085, + 0.01590825244784355, + 0.01885281503200531, + 0.01796097308397293, + -0.014633886516094208, + 0.0576229952275753, + -0.004206769168376923, + -0.004706941545009613, + 0.03355146571993828, + 0.044683653861284256, + 0.04711952432990074, + -0.031321462243795395, + 0.01808738335967064, + -0.011247927322983742, + 0.03334259241819382, + -0.05550412833690643, + 0.02937045320868492, + 0.01106729544699192, + -0.06507216393947601, + 0.05344980210065842, + 0.03527987003326416, + -0.01651758700609207, + -0.010242031887173653, + -0.1056196391582489, + 0.07300670444965363, + -0.00381536316126585, + 0.05724401772022247, + -0.07236778736114502, + 0.008820079267024994, + 0.06905412673950195, + -0.027067359536886215, + -0.06065972149372101, + -0.002367055043578148, + 0.0663047507405281, + 0.05490785464644432, + -0.057445064187049866, + -0.04136288911104202, + -0.015054792165756226, + -0.009747395291924477, + 0.019799938425421715, + 0.05514756962656975, + 0.09970948100090027, + 0.07663170993328094, + -0.001820526085793972, + 0.012564287520945072, + 0.04491446539759636, + 0.030097443610429764, + 0.07451489567756653, + 0.003090151585638523, + -0.025342805311083794, + -0.01995203085243702, + -0.018643762916326523, + 0.021785348653793335, + 0.029633793979883194, + -0.03783007711172104, + -0.005959200672805309, + -0.05608599632978439, + 0.030384628102183342, + -0.020527375862002373, + -0.024479135870933533, + 0.0070673758164048195, + 0.04662042483687401, + 0.0055808331817388535, + 0.05391581356525421, + 0.006396042183041573, + -0.05223555862903595, + 0.016951095312833786, + -0.04365228861570358, + -0.06470535695552826, + -0.06035321578383446, + -0.04102332144975662, + 0.05799346789717674, + 0.04061641916632652, + 0.05916895717382431, + 0.03652959316968918, + 0.08606840670108795, + 0.01245332695543766, + 0.01622013933956623, + -0.007563130930066109, + -0.07510185986757278, + 0.04551553726196289, + 0.07953262329101562, + -0.03560539335012436, + 0.01461092010140419, + -0.02374665066599846, + 0.017668411135673523, + 0.04932129383087158, + -0.03196987882256508, + 0.0005330704152584076, + -0.0102433105930686, + 0.0466730110347271, + 0.03221350535750389, + 0.06516797095537186, + -0.013123176991939545, + 0.014387490227818489, + 0.14503583312034607, + -0.07748457789421082, + -0.021284718066453934, + -0.016460951417684555, + -0.00297079561278224, + -0.045399948954582214, + 0.07853630185127258, + 0.022576481103897095, + 0.03634403645992279, + 0.02891157940030098, + 0.04597816243767738, + -6.0051679611206055e-06, + 0.007174585945904255, + -0.07001560181379318, + -0.0062933992594480515, + 0.033886175602674484, + -0.049763910472393036, + -0.0002592746168375015, + 0.08288367092609406, + 0.044630762189626694, + 0.07149235904216766, + 0.08638546615839005, + -0.03478264436125755, + -0.058708563446998596, + 0.022461488842964172, + 0.052463121712207794, + 0.013278926722705364, + -0.030438873916864395, + -0.06200844794511795, + -0.050558045506477356, + -0.009217949584126472, + 0.07866780459880829, + -0.005517421755939722, + 0.05016082525253296, + 0.006720272824168205, + 0.013659686781466007, + 0.08834490180015564, + 0.015174908563494682, + -0.03221818804740906, + -0.07967913150787354, + -0.08492235839366913, + -0.042138565331697464, + 0.011063575744628906, + -0.16297471523284912, + -0.059360262006521225, + -0.0707269161939621, + 0.04095064103603363, + -0.019250744953751564, + 0.007106492295861244, + 0.03798842430114746, + 0.0003156587481498718, + -0.0002084793522953987, + 0.03658463805913925, + 0.012920170091092587, + -0.015694666653871536, + -0.12953589856624603, + 0.031466078013181686, + -0.015922950580716133, + 0.01862953044474125, + 0.03950270265340805, + -0.03379764035344124, + 0.0347873829305172, + -0.026543226093053818, + -0.0705251470208168, + -0.04750291630625725, + 0.06966233253479004, + -0.03216658532619476, + -0.007991489954292774, + 0.028201598674058914, + 0.016452794894576073, + -0.0805661603808403, + 0.05922037363052368, + -0.001249874010682106, + 0.09122666716575623, + -0.0651148334145546, + 0.022558391094207764, + -0.008464845828711987, + 0.0015021003782749176, + 0.085782989859581, + -0.0171499066054821, + -0.07387082278728485, + -0.08045917749404907, + -0.024955278262495995, + 0.04449775815010071, + -0.016574623063206673, + -0.03539040684700012, + -0.03342164307832718, + -0.02457502856850624, + -0.01841406151652336, + -0.06822459399700165, + -0.031038597226142883, + 0.028844032436609268, + -0.012666555121541023, + -0.08779608458280563, + 0.030437305569648743, + -0.03140716254711151, + -0.009308185428380966, + 0.016618382185697556, + 0.04579534754157066, + -0.021695084869861603, + -0.05439550429582596, + -0.04313071072101593, + 0.03656603395938873, + 0.061044517904520035, + 0.048750195652246475, + -0.07004205137491226, + -0.08202021569013596, + 0.030084650963544846, + 0.010904965922236443, + 0.0544193834066391, + -0.007780302315950394, + -0.01956063136458397, + 0.038042858242988586, + -0.05090366303920746, + -0.021977724507451057, + 0.026563208550214767, + 0.046450383961200714, + -0.003090105950832367, + 0.01573701575398445, + -0.02198765240609646, + 0.08512962609529495, + 0.027058618143200874, + -7.81303970143199e-06, + -0.022902492433786392, + -0.06274542212486267, + -0.061719294637441635, + -0.059388771653175354, + -0.05725156143307686, + -0.05289582535624504, + 0.031797170639038086, + -0.05301262065768242, + 0.05503222346305847, + 0.0015455090906471014, + 0.09750083088874817, + 0.010077114216983318, + -0.01228514313697815 + ] + }, + "p244_179.wav": { + "name": "p244", + "embedding": [ + 0.030571645125746727, + 0.08619459718465805, + -0.016192864626646042, + 0.031087905168533325, + -0.057278215885162354, + 0.07416775077581406, + -0.09019750356674194, + 0.10113927721977234, + -0.060720138251781464, + 0.1361154019832611, + -0.09812057018280029, + 0.12131239473819733, + -0.04670654982328415, + -0.17017166316509247, + -0.02837412618100643, + 0.058825891464948654, + -0.034396205097436905, + 0.0024779802188277245, + -0.05535587668418884, + -0.024263184517621994, + 0.04062965139746666, + 0.02393612638115883, + 0.04757293313741684, + -0.020466435700654984, + 0.01712745800614357, + 0.07184048742055893, + -0.0002682122285477817, + 0.04832533001899719, + 0.007551028858870268, + -0.07667022198438644, + -0.058858178555965424, + 0.10712940990924835, + -0.04223278909921646, + 0.019811954349279404, + 0.05423697084188461, + 0.011132519692182541, + -0.003056335262954235, + -0.0478329062461853, + -0.0034378503914922476, + -0.011444422416388988, + -0.044155582785606384, + 0.05112019181251526, + -0.006352514028549194, + -0.023807942867279053, + 0.05234072729945183, + 0.01447363942861557, + -0.028755847364664078, + -0.027758397161960602, + -0.09399205446243286, + 0.13870251178741455, + 0.0579192154109478, + -0.013906346634030342, + -0.06775277853012085, + -0.0807543396949768, + 0.10503064841032028, + -0.01718464121222496, + -0.12325428426265717, + -0.0415889248251915, + 0.07923341542482376, + 0.1536082923412323, + -0.02759230136871338, + -0.034631647169589996, + 0.013573359698057175, + 0.09162097424268723, + 0.018155556172132492, + 0.10615106672048569, + 0.06383427232503891, + 0.09351585805416107, + -0.004068485461175442, + 0.032757192850112915, + 0.04195607453584671, + 0.08625063300132751, + 0.07285959273576736, + -0.007157584186643362, + 0.03145573288202286, + -0.0011888457229360938, + -0.02785051427781582, + 0.025799527764320374, + -0.04441903159022331, + -0.031139878556132317, + -0.01888282783329487, + -0.010782881639897823, + 0.020020633935928345, + -0.04007243737578392, + -0.018312649801373482, + 0.05557441711425781, + 0.04506079480051994, + -0.015550896525382996, + 0.052601590752601624, + 0.03852296993136406, + -0.02566887065768242, + 0.055641066282987595, + -0.07030117511749268, + -0.0899798721075058, + 0.014209027402102947, + 0.01588517427444458, + -0.0013428847305476665, + 0.061403971165418625, + 0.031709328293800354, + -0.016449660062789917, + 0.0992315411567688, + 0.04493049904704094, + 0.0154700493440032, + 0.03664861619472504, + -0.0863228440284729, + 0.11838136613368988, + 0.11464715003967285, + -0.015835151076316833, + 0.030355069786310196, + -0.037218958139419556, + 0.08494094014167786, + 0.09600099176168442, + -0.13206098973751068, + -0.07194055616855621, + -0.027682622894644737, + -0.03497975692152977, + -0.01695835217833519, + 0.08218910545110703, + -0.022721877321600914, + 0.010010723024606705, + 0.11872994154691696, + -0.1014866828918457, + -0.06436829268932343, + -0.021778110414743423, + 0.018398024141788483, + -0.07755455374717712, + 0.04881449043750763, + 0.036511510610580444, + 0.017951201647520065, + 0.004995942115783691, + 0.08541607856750488, + -0.029691128060221672, + 0.0033705513924360275, + 0.036358386278152466, + -0.07027767598628998, + -0.008424963802099228, + -0.05272942781448364, + -0.012739395722746849, + 0.08978040516376495, + 0.05215379595756531, + 0.05632282793521881, + -0.018879681825637817, + -0.016407718881964684, + -0.10121433436870575, + -0.0013988418504595757, + 0.053860437124967575, + 0.044518791139125824, + -0.006905117072165012, + -0.005888267885893583, + -0.030689379200339317, + -0.08670379966497421, + 0.051256321370601654, + -0.025720639154314995, + 0.0827542170882225, + -0.0174130667001009, + 0.0017660766607150435, + 0.10364135354757309, + 0.02007053606212139, + -0.023596424609422684, + -0.08628662675619125, + -0.03753092885017395, + 0.015446661040186882, + 0.03851909190416336, + -0.09172306954860687, + -0.08230212330818176, + -0.006774085573852062, + 0.02032453566789627, + -0.021618491038680077, + 0.04923762381076813, + 0.054791249334812164, + 0.018143504858016968, + 0.027777664363384247, + -0.05341195687651634, + -0.003582623554393649, + -0.10147850960493088, + -0.058054789900779724, + -0.0103674391284585, + -0.06462931632995605, + -0.0018470166251063347, + 0.0738021582365036, + 0.0049993619322776794, + 0.012638866901397705, + -0.01818142831325531, + -0.06478318572044373, + -0.09603165090084076, + 0.06740697473287582, + 0.04037811607122421, + 0.02259417250752449, + 0.05606265366077423, + 0.04504580423235893, + -0.048457350581884384, + 0.07444643974304199, + 0.06457282602787018, + 0.10059687495231628, + -0.024822916835546494, + 0.02699822001159191, + -0.07105910778045654, + 0.07941639423370361, + 0.10358962416648865, + -0.0788687989115715, + -0.10156002640724182, + -0.04550536721944809, + -0.059704940766096115, + 0.07852086424827576, + -0.04858074709773064, + -0.034332044422626495, + 0.040348827838897705, + -0.022306490689516068, + -0.09576012194156647, + -0.08172659575939178, + 0.10498189181089401, + -0.044428423047065735, + -0.023250237107276917, + -0.06271548569202423, + 0.04286088049411774, + 0.05300229415297508, + 0.030528580769896507, + -0.03509475290775299, + 0.037150751799345016, + 0.0760376825928688, + -0.06404687464237213, + -0.0011810499709099531, + 0.04259870573878288, + 0.013071316294372082, + -0.061304450035095215, + -0.005143480841070414, + -0.08300714194774628, + 0.046151161193847656, + -0.05058329552412033, + 0.15314170718193054, + -0.02044074609875679, + -0.04971642792224884, + -0.05920543521642685, + 0.06445460766553879, + -0.026811551302671432, + 0.029481317847967148, + 0.05114942789077759, + 0.06528611481189728, + 0.018429845571517944, + -0.08800383657217026, + 0.12919296324253082, + 0.016551926732063293, + -0.02735801599919796, + -0.05854961276054382, + -0.0559699647128582, + -0.05918307229876518, + 0.0008963110740296543, + -0.009198951534926891, + -0.09892384707927704, + 0.004933548625558615, + 0.009357663802802563, + 0.0010615966748446226, + 0.04635327309370041, + 0.13274195790290833, + 0.0661928653717041, + -0.07634106278419495 + ] + }, + "p244_151.wav": { + "name": "p244", + "embedding": [ + 0.05338154733181, + 0.07692953944206238, + -0.014915263280272484, + 0.017773957923054695, + -0.06250782310962677, + 0.07432658970355988, + -0.1349685788154602, + 0.126249760389328, + -0.04604538530111313, + 0.15463483333587646, + -0.053544916212558746, + 0.10725729167461395, + -0.030185209587216377, + -0.18928208947181702, + -0.010301225818693638, + 0.06485643982887268, + -0.057404763996601105, + -0.03540218621492386, + -0.07023858278989792, + -0.027816802263259888, + 0.025902029126882553, + 0.047697313129901886, + 0.0183144211769104, + -0.00888589583337307, + 0.032714106142520905, + 0.07206510752439499, + -0.019219059497117996, + 0.02560625970363617, + -0.021043477579951286, + -0.0932825356721878, + -0.03926796466112137, + 0.0931343212723732, + -0.055780746042728424, + 0.009114207699894905, + 0.03935887664556503, + -0.010610794648528099, + -0.002836352214217186, + -0.04435507953166962, + -0.02503439411520958, + 0.019594432786107063, + -0.040795788168907166, + 0.07587078213691711, + 0.016821514815092087, + -0.0006884306785650551, + 0.0466751754283905, + 0.014027215540409088, + -0.02387208491563797, + -0.05771256238222122, + -0.10067372769117355, + 0.17035824060440063, + 0.06818369030952454, + -0.0034879762679338455, + -0.060495488345623016, + -0.07923023402690887, + 0.09581132233142853, + -0.03183387219905853, + -0.134304940700531, + -0.05645330250263214, + 0.07098782062530518, + 0.1509125530719757, + -0.04128161072731018, + -0.04748644679784775, + 0.027616092935204506, + 0.09805630147457123, + 0.049848735332489014, + 0.09751050174236298, + 0.06945262849330902, + 0.0908101499080658, + -0.01977325975894928, + 0.006688814610242844, + 0.061421941965818405, + 0.05686631053686142, + 0.08493521809577942, + 0.0004338165745139122, + 0.042795952409505844, + -0.0010274001397192478, + -0.011535627767443657, + -0.01253002043813467, + -0.015385286882519722, + -0.0053469715639948845, + 0.0023587404284626245, + 0.015199463814496994, + 0.021320056170225143, + 0.008909085765480995, + -0.022398579865694046, + 0.04738030955195427, + 0.04108746349811554, + -0.012559186667203903, + 0.06764794886112213, + 0.030138878151774406, + 0.016081376001238823, + 0.07339587062597275, + -0.0819292888045311, + -0.06931192427873611, + 0.04381158575415611, + 0.017003946006298065, + 0.011945467442274094, + 0.04491691291332245, + 0.025100961327552795, + -0.01912400871515274, + 0.11456035822629929, + 0.038164470344781876, + 0.005056596361100674, + 0.03075678087770939, + -0.10413150489330292, + 0.12567977607250214, + 0.08012968301773071, + -0.030693447217345238, + 0.050216399133205414, + -0.03954636678099632, + 0.07639139890670776, + 0.06447548419237137, + -0.13578617572784424, + -0.07799884676933289, + 0.020948413759469986, + -0.004169312305748463, + -0.020297545939683914, + 0.12309718877077103, + -0.0006718793883919716, + 0.029021989554166794, + 0.12414532899856567, + -0.11150306463241577, + -0.03991929814219475, + 0.006012200377881527, + 0.04379991441965103, + -0.10680531710386276, + 0.050182685256004333, + 0.05441530421376228, + -0.01033379603177309, + 0.03289240226149559, + 0.09933243691921234, + -0.016157232224941254, + 0.007249072194099426, + -0.004718083888292313, + -0.03527181223034859, + 0.0015940385637804866, + -0.02847292274236679, + -0.01587466150522232, + 0.058956194669008255, + 0.02762434259057045, + 0.04672842472791672, + -0.020860277116298676, + -0.04069723188877106, + -0.13734041154384613, + 0.02481251023709774, + 0.02375340461730957, + 0.0650215893983841, + -0.01844874769449234, + 0.012373916804790497, + -0.03875350207090378, + -0.07846923172473907, + 0.02957528829574585, + -0.015639083459973335, + 0.07587534934282303, + -0.018191874027252197, + -0.0012868910562247038, + 0.10822582244873047, + 0.041814275085926056, + 0.004464832134544849, + -0.05965173989534378, + -0.04472074657678604, + 0.006731791887432337, + 0.05795472860336304, + -0.0859435573220253, + -0.0651235356926918, + -0.00693739578127861, + 0.039246946573257446, + -0.0027100276201963425, + 0.06693608313798904, + 0.06515911221504211, + 0.02362545020878315, + 0.022761203348636627, + -0.05538514256477356, + 0.0250663124024868, + -0.08307922631502151, + -0.08149533718824387, + -0.0006556776352226734, + -0.039784662425518036, + -0.02876432053744793, + 0.08780990540981293, + 0.002508232370018959, + 0.030806537717580795, + -0.0612480491399765, + -0.07779560983181, + -0.08647386729717255, + 0.0672992467880249, + 0.06014605611562729, + -0.01298338733613491, + 0.029198117554187775, + 0.049173541367053986, + -0.03662455826997757, + 0.059224989265203476, + 0.06037263572216034, + 0.13589826226234436, + -0.023976674303412437, + 0.04590022563934326, + -0.062300749123096466, + 0.09153693914413452, + 0.07727071642875671, + -0.06391610205173492, + -0.08505367487668991, + -0.020878100767731667, + -0.0698758065700531, + 0.053322214633226395, + -0.032328225672245026, + 0.0019058722537010908, + 0.042897243052721024, + 0.0021038458216935396, + -0.09081218391656876, + -0.08085671067237854, + 0.08750441670417786, + -0.04706183448433876, + -0.01079383585602045, + -0.07860804349184036, + 0.05731835216283798, + 0.07274751365184784, + 0.05638352781534195, + -0.034406356513500214, + -0.003083118936046958, + 0.047633200883865356, + -0.03546527400612831, + 0.025678370147943497, + 0.06251882761716843, + 0.030412035062909126, + -0.08691278100013733, + -0.013631895184516907, + -0.08894501626491547, + 0.05345285311341286, + -0.03952764719724655, + 0.1526717245578766, + -0.010541461408138275, + -0.03926369547843933, + -0.06898391991853714, + 0.04631609842181206, + -0.026039013639092445, + 0.05616597831249237, + 0.03304118663072586, + 0.070219486951828, + 0.08123277127742767, + -0.03954586759209633, + 0.09585540741682053, + 0.045004505664110184, + -0.03133155405521393, + -0.04682401195168495, + -0.05581985414028168, + -0.05603248253464699, + 0.024348953738808632, + -0.006897169630974531, + -0.1039557158946991, + 0.0009472938254475594, + 0.026775918900966644, + 0.0035683715250343084, + 0.05396405979990959, + 0.13006016612052917, + 0.04612473398447037, + -0.12077564001083374 + ] + }, + "p244_047.wav": { + "name": "p244", + "embedding": [ + 0.06592823565006256, + 0.08634445816278458, + -0.05203823000192642, + 0.022983569651842117, + -0.00553181953728199, + 0.04818369075655937, + -0.1382196545600891, + 0.100897878408432, + -0.02517542988061905, + 0.12603816390037537, + -0.07611290365457535, + 0.11310906708240509, + 0.002127218060195446, + -0.12196719646453857, + -0.04750456660985947, + 0.0340161994099617, + -0.022115785628557205, + -0.005590872839093208, + -0.021228544414043427, + -0.005754104815423489, + 0.04956686869263649, + 0.031655631959438324, + 0.01635877788066864, + -0.02284124679863453, + 0.012919880449771881, + 0.05458870902657509, + 0.030053364112973213, + 0.035363420844078064, + 0.010314006358385086, + 0.004139812663197517, + 0.018835382536053658, + 0.10752004384994507, + -0.024731086567044258, + 0.021443117409944534, + 0.0341707319021225, + 0.011841820552945137, + -0.025024110451340675, + -0.06894447654485703, + 0.007605442777276039, + 0.006737133488059044, + -0.02988891862332821, + 0.07450156658887863, + 0.04596211761236191, + -0.012590151280164719, + 0.01613054983317852, + -0.0033343154937028885, + -0.01497122272849083, + -0.05013280361890793, + -0.09199265390634537, + 0.16674596071243286, + 0.05915763974189758, + 0.030991625040769577, + -0.09406575560569763, + -0.009818894788622856, + 0.09341020882129669, + 0.020607685670256615, + -0.041559766978025436, + -0.05375760793685913, + 0.049641311168670654, + 0.15271402895450592, + -0.017432039603590965, + -0.043175965547561646, + 0.03913137689232826, + 0.12286661565303802, + 0.03423837572336197, + 0.05694129690527916, + 0.10740529000759125, + 0.09109769761562347, + 0.0035390518605709076, + 0.038384366780519485, + 0.033550769090652466, + 0.07336247712373734, + 0.03583502024412155, + -0.030067026615142822, + 0.029840033501386642, + -0.024235369637608528, + -0.019593534991145134, + -0.0034263969864696264, + -0.02303505316376686, + -0.06312770396471024, + -0.020670877769589424, + 0.002357965800911188, + 0.01862325705587864, + 0.06174740195274353, + -0.041777193546295166, + 0.028745215386152267, + 0.04310256987810135, + -0.07678806781768799, + 0.03418527916073799, + 0.050089623779058456, + 0.01349277887493372, + 0.002735711634159088, + -0.05580076947808266, + -0.11501264572143555, + 0.033295489847660065, + -0.006879905238747597, + 0.02203415147960186, + 0.06237472593784332, + 0.05400538444519043, + 0.011446223594248295, + 0.07700318843126297, + 0.021614382043480873, + -0.022246181964874268, + -0.024690061807632446, + -0.050893597304821014, + 0.116461381316185, + 0.11012955009937286, + -0.02678968757390976, + 0.025255849584937096, + -0.059779297560453415, + 0.01227518729865551, + 0.06082569435238838, + -0.11335492134094238, + -0.06902417540550232, + 0.03451678156852722, + 0.02915201708674431, + 0.01753680780529976, + 0.10128960013389587, + 0.006060037761926651, + 0.01746409572660923, + 0.065096415579319, + -0.056160781532526016, + -0.0627235397696495, + -0.07041087746620178, + 0.04766854643821716, + -0.06201068311929703, + 0.05851907283067703, + 0.045629046857357025, + 0.011815855279564857, + -0.05049819126725197, + 0.07386770844459534, + -0.0033091730438172817, + -0.00961120706051588, + -0.019955364987254143, + 0.028728440403938293, + 0.06521470099687576, + -0.03563466668128967, + 0.007318600080907345, + -0.003750898875296116, + 0.026417143642902374, + 0.03748757019639015, + 0.026447271928191185, + -0.01050395518541336, + -0.08193591237068176, + 0.009270614013075829, + 0.06918269395828247, + 0.056311193853616714, + -0.03413223475217819, + -0.05644124746322632, + -0.02421751618385315, + -0.04152216762304306, + -0.0011794923339039087, + -0.02481546625494957, + 0.06741110980510712, + 0.024912703782320023, + 0.023557016626000404, + 0.10761044919490814, + -0.0313621424138546, + 0.014151579700410366, + -0.01747249811887741, + 0.03744783252477646, + 0.03733870014548302, + 0.027481097728013992, + -0.06134762614965439, + -0.07908773422241211, + -0.010789117775857449, + 0.009928219020366669, + -0.019895588979125023, + 0.012810485437512398, + 0.017583327367901802, + -0.006856146268546581, + 0.024190029129385948, + -0.07462447881698608, + -0.010698225349187851, + -0.1276930570602417, + -0.028874143958091736, + -0.01974429003894329, + -0.04464239254593849, + -0.00983351655304432, + 0.06675009429454803, + 0.037056177854537964, + 0.04110782593488693, + -0.013327017426490784, + -0.0669906735420227, + -0.04840049147605896, + 0.06413404643535614, + 0.09464256465435028, + -0.01924043893814087, + 0.0026499461382627487, + 0.027335720136761665, + 0.03339831903576851, + 0.012847086414694786, + 0.062497250735759735, + 0.06524231284856796, + -0.03510156273841858, + -0.05481558293104172, + -0.060433171689510345, + 0.0923689529299736, + 0.08497798442840576, + -0.10058562457561493, + -0.06161234527826309, + -0.03219972923398018, + -0.06334944814443588, + -0.0018226122483611107, + -0.03567150980234146, + 0.01452193409204483, + 0.044877488166093826, + -0.038239486515522, + -0.12325076758861542, + -0.10446220636367798, + 0.0528663769364357, + -0.06480579078197479, + 0.005558964796364307, + -0.0653512179851532, + 0.044351108372211456, + 0.08800370991230011, + 0.015784073621034622, + -0.025861406698822975, + -0.00241960515268147, + -0.010029720142483711, + -0.06049330532550812, + -0.01963091269135475, + -0.012720050290226936, + 0.026492467150092125, + -0.1071920320391655, + 0.0017960708355531096, + -0.05885661393404007, + 0.07329477369785309, + -0.07474247366189957, + 0.11086786538362503, + -0.0019602221436798573, + -0.06511756032705307, + -0.09652253985404968, + 0.018370740115642548, + -0.01414383202791214, + 0.05176272243261337, + 0.0293699000030756, + 0.032051242887973785, + 0.0016629381570965052, + -0.10479559749364853, + 0.09490065276622772, + 0.06754730641841888, + -0.00018845684826374054, + -0.10491541028022766, + -0.031102946028113365, + -0.009768453426659107, + 0.0564497634768486, + 0.016670752316713333, + -0.014845199882984161, + -0.015359252691268921, + 0.031931206583976746, + -0.019525855779647827, + 0.07610532641410828, + 0.09976024925708771, + 0.04823916405439377, + -0.09098787605762482 + ] + }, + "p244_387.wav": { + "name": "p244", + "embedding": [ + 0.05354906618595123, + 0.09765110909938812, + -0.05324000120162964, + 0.01336327288299799, + 0.0005212724208831787, + 0.04374198615550995, + -0.17443504929542542, + 0.11053217947483063, + -0.03025122359395027, + 0.14385399222373962, + -0.03728903830051422, + 0.09514616429805756, + -0.04378384351730347, + -0.13015100359916687, + -0.020348254591226578, + 0.0590820387005806, + -0.020964570343494415, + -0.008310393430292606, + -0.013095324859023094, + -0.005703997798264027, + 0.0466109998524189, + 0.02175387553870678, + 0.01760837994515896, + -0.018259473145008087, + -0.02049732580780983, + 0.06909360736608505, + -0.016545677557587624, + 0.01709672249853611, + -0.009089938364923, + 0.0025545363314449787, + 0.004110085777938366, + 0.0888431966304779, + 0.0026269257068634033, + 0.006760727148503065, + 0.030522389337420464, + 0.03299310430884361, + -0.03321494162082672, + -0.05414698272943497, + 0.024370180442929268, + -0.0019585900008678436, + -0.037366438657045364, + 0.04417842999100685, + 0.0027837734669446945, + -0.025961261242628098, + 0.05526050552725792, + -0.06428706645965576, + -0.02854008600115776, + -0.013471122831106186, + -0.06524255126714706, + 0.13522595167160034, + 0.10719707608222961, + 0.027081046253442764, + -0.06699232757091522, + 0.0013939402997493744, + 0.09225818514823914, + 0.013461964204907417, + -0.08650701493024826, + -0.052536047995090485, + 0.038395099341869354, + 0.15935875475406647, + -0.023923469707369804, + -0.02494906261563301, + 0.03567003458738327, + 0.11294953525066376, + 0.020205214619636536, + 0.07185454666614532, + 0.09708480536937714, + 0.07319282740354538, + 0.00600969884544611, + -0.021706517785787582, + 0.009677791967988014, + 0.05809071660041809, + 0.06017580255866051, + -0.007883155718445778, + 0.03415533900260925, + -0.03268399089574814, + -0.02937799133360386, + 2.344651147723198e-05, + -0.02055910788476467, + -0.08310361951589584, + -0.03602138161659241, + -0.009546364657580853, + -0.019303947687149048, + 0.055985722690820694, + -0.016760921105742455, + -0.008992908522486687, + 0.0577261745929718, + -0.0758432000875473, + 0.03576980531215668, + 0.04526446759700775, + 0.021973520517349243, + 0.026411227881908417, + -0.05568648874759674, + -0.09455728530883789, + 0.050509948283433914, + 0.002184647135436535, + 0.013582345098257065, + 0.04680690914392471, + 0.0325813964009285, + 0.016247186809778214, + 0.07681549340486526, + 0.013082959689199924, + -0.009824356995522976, + -0.0007351897656917572, + -0.06217750906944275, + 0.10632684826850891, + 0.10209167748689651, + -0.04193472862243652, + 0.040388159453868866, + -0.04647144675254822, + -0.0163577813655138, + 0.04564157873392105, + -0.08820956200361252, + -0.04130534455180168, + 0.056680403649806976, + 0.053834687918424606, + 0.02340078353881836, + 0.10123381018638611, + 0.05094054341316223, + 0.02665385603904724, + 0.0934397503733635, + -0.06041048839688301, + -0.08739293366670609, + -0.0709250420331955, + 0.07208696007728577, + -0.05781517177820206, + 0.07073374092578888, + 0.0641392394900322, + 0.02788388356566429, + -0.011555745266377926, + 0.05087069422006607, + 0.01812530681490898, + 0.006914706900715828, + -0.03490523621439934, + -0.024205069988965988, + 0.01688438653945923, + -0.05153709277510643, + 0.017614539712667465, + 0.005037687718868256, + 0.004737320356070995, + 0.04738428071141243, + 0.0252805408090353, + 0.009697499684989452, + -0.09615115076303482, + -0.02097797393798828, + 0.07822176069021225, + 0.045730650424957275, + -0.029787501320242882, + -0.04409850388765335, + -0.011932299472391605, + -0.043656785041093826, + -0.01956712268292904, + -0.07777930051088333, + 0.08318998664617538, + -0.004047340247780085, + 0.021316220983862877, + 0.08009546250104904, + -0.03045850247144699, + 0.019091876223683357, + -0.02928493730723858, + 0.021585237234830856, + 0.012359283864498138, + 0.01861005462706089, + -0.09552836418151855, + -0.08658338338136673, + -0.023134730756282806, + 0.032868642359972, + 0.004126129671931267, + 0.042933389544487, + 0.04229239374399185, + -0.00515346135944128, + 0.006446721963584423, + -0.03709350526332855, + 0.013891741633415222, + -0.09959129989147186, + -0.05918333679437637, + -0.0018269403371959925, + -0.035192832350730896, + 0.0006221001967787743, + 0.07590551674365997, + 0.026714149862527847, + 0.03314167261123657, + -0.04623878002166748, + -0.04831302911043167, + -0.07755360007286072, + 0.05093060061335564, + 0.07633493840694427, + -0.02667674794793129, + 0.018942879512906075, + 0.03513457626104355, + 0.004706918261945248, + 0.01301814615726471, + 0.057114146649837494, + 0.09225666522979736, + -0.02478555589914322, + -0.01479764562100172, + -0.10062605142593384, + 0.03879788890480995, + 0.13930216431617737, + -0.08616366982460022, + -0.08117936551570892, + -0.04904048517346382, + -0.07912970334291458, + -0.0022717141546308994, + -0.07979755103588104, + 0.010628344491124153, + 0.040879394859075546, + -0.04890758544206619, + -0.11566022038459778, + -0.125263050198555, + 0.06886452436447144, + -0.045262426137924194, + 0.010862018913030624, + -0.057173795998096466, + 0.0657719150185585, + 0.0443018302321434, + 0.012802252545952797, + -0.07093697786331177, + 0.00039125699549913406, + 0.021834442391991615, + -0.027714937925338745, + 0.012332821264863014, + 0.008706901222467422, + 0.050707317888736725, + -0.12938737869262695, + 0.013751399703323841, + -0.06924933940172195, + 0.07748182117938995, + -0.0754193365573883, + 0.11137852072715759, + 0.022869590669870377, + -0.028854383155703545, + -0.09795855730772018, + 0.03347766026854515, + 0.016184503212571144, + 0.041924718767404556, + -0.004175333306193352, + 0.053666599094867706, + 0.017667608335614204, + -0.08689325302839279, + 0.07405539602041245, + 0.04489438980817795, + 0.01188390702009201, + -0.099245086312294, + -0.02994922548532486, + -0.036934610456228256, + 0.05011643469333649, + -0.020317981019616127, + -0.036633025854825974, + -0.03258639946579933, + -0.0011051604524254799, + 0.02551230788230896, + 0.05911894142627716, + 0.08626800775527954, + 0.0274351816624403, + -0.10613103955984116 + ] + }, + "p244_370.wav": { + "name": "p244", + "embedding": [ + 0.06358363479375839, + 0.052086930721998215, + -0.033375632017850876, + 0.024352174252271652, + -0.029548410326242447, + 0.04322075471282005, + -0.12358683347702026, + 0.0980907678604126, + -0.028239868581295013, + 0.09883289039134979, + -0.06776271760463715, + 0.10071702301502228, + -0.003912396728992462, + -0.13626070320606232, + -0.036885831505060196, + 0.049305807799100876, + -0.029518790543079376, + -0.02014755643904209, + -0.04283095523715019, + -0.0034735207445919514, + 0.034562982618808746, + 0.04898704215884209, + 0.02501325123012066, + -0.016140256077051163, + 0.003224332584068179, + 0.050173815339803696, + 0.004041686188429594, + 0.025037167593836784, + 0.010121937841176987, + -0.0007708693738095462, + -0.00936773233115673, + 0.10003810375928879, + -0.020182596519589424, + 0.008550230413675308, + 0.04188136011362076, + 0.02348760887980461, + -0.005613319575786591, + -0.0899352952837944, + -0.009353580884635448, + -0.0033507130574434996, + -0.05088331922888756, + 0.06189851090312004, + 0.0455242395401001, + -0.03018762730062008, + 0.026718024164438248, + -0.005332240369170904, + -0.022811628878116608, + -0.04764222726225853, + -0.10759177058935165, + 0.17088580131530762, + 0.043301060795784, + 0.030866894870996475, + -0.08962439745664597, + -0.02926292084157467, + 0.07840068638324738, + 0.007265242747962475, + -0.06605461984872818, + -0.05507994815707207, + 0.04273151978850365, + 0.1474609375, + 0.0053265998139977455, + -0.0353923998773098, + 0.03343440592288971, + 0.11094405502080917, + 0.038835376501083374, + 0.051008909940719604, + 0.10195668786764145, + 0.10674421489238739, + -0.0032077631913125515, + 0.03315971419215202, + 0.05357072502374649, + 0.06047172471880913, + 0.03474898263812065, + -0.012428490445017815, + 0.026341404765844345, + -0.014956079423427582, + -0.037227459251880646, + 0.015154647640883923, + -0.030725430697202682, + -0.05124049633741379, + -0.004478194285184145, + -0.0011889568995684385, + 0.01397707499563694, + 0.05128103122115135, + -0.04815045744180679, + 0.03926636651158333, + 0.046017538756132126, + -0.035012852400541306, + 0.057239383459091187, + 0.05723331496119499, + 0.011852627620100975, + 0.020283186808228493, + -0.05228623002767563, + -0.10401515662670135, + 0.011727344244718552, + 0.00226261536590755, + 0.0369267612695694, + 0.04888961836695671, + 0.03214789554476738, + -0.017729442566633224, + 0.08660130947828293, + 0.010889412835240364, + -0.0039831423200666904, + 0.0024034357629716396, + -0.07095792889595032, + 0.11455190181732178, + 0.10765324532985687, + -0.01739230751991272, + 0.011458965949714184, + -0.05707177519798279, + 0.03527267277240753, + 0.07158884406089783, + -0.09827883541584015, + -0.05695202574133873, + 0.05055902525782585, + 0.01594480313360691, + 0.025098759680986404, + 0.11537399142980576, + 0.024101069197058678, + 0.027589883655309677, + 0.08033628761768341, + -0.09245534241199493, + -0.05840960144996643, + -0.01812942698597908, + 0.02659742906689644, + -0.04826899990439415, + 0.04274073988199234, + 0.047342848032712936, + 0.009312302805483341, + -0.03238561376929283, + 0.06430177390575409, + -0.004671956412494183, + 0.013287797570228577, + -0.025483980774879456, + -0.003528903005644679, + 0.06853683292865753, + -0.018641289323568344, + -0.020502910017967224, + 0.04244101047515869, + 0.05076661705970764, + 0.028665540739893913, + 0.01829468458890915, + -0.03106623888015747, + -0.11081772297620773, + -0.0005156360566616058, + 0.07608922570943832, + 0.06021679937839508, + -0.030876431614160538, + -0.045001864433288574, + -0.046545885503292084, + -0.03892975673079491, + 0.014904765412211418, + -0.0188447292894125, + 0.05615964159369469, + 0.0101771280169487, + -0.0049799103289842606, + 0.09185302257537842, + -0.028422880917787552, + 0.016626134514808655, + -0.026544060558080673, + -0.0035445517860352993, + 0.03769306093454361, + 0.03424353152513504, + -0.049838386476039886, + -0.07820651680231094, + -0.0031218070071190596, + 0.00999393966048956, + -0.02342018485069275, + 0.007535461336374283, + 0.037368044257164, + -0.00901389867067337, + 0.01478247344493866, + -0.08844810724258423, + 0.018496345728635788, + -0.12130551040172577, + -0.028652943670749664, + 0.01603725180029869, + -0.0366351418197155, + 0.010690420866012573, + 0.08611470460891724, + 0.018213268369436264, + 0.032499413937330246, + -0.02826966904103756, + -0.08564408868551254, + -0.04284198582172394, + 0.06024631857872009, + 0.07628051936626434, + -0.011440441012382507, + 0.02643408440053463, + 0.01984279789030552, + 0.01848333515226841, + 0.013331098482012749, + 0.039503421634435654, + 0.08019526302814484, + -0.04073656350374222, + -0.04949706420302391, + -0.05718610808253288, + 0.10537546873092651, + 0.0680176317691803, + -0.07953892648220062, + -0.06308607757091522, + -0.016499940305948257, + -0.04990826174616814, + 0.0013425549259409308, + -0.033544380217790604, + 0.006573493592441082, + 0.04878033325076103, + -0.027558881789445877, + -0.1395055055618286, + -0.08631736040115356, + 0.054967280477285385, + -0.06340521574020386, + -0.00035998784005641937, + -0.07162298262119293, + 0.030102554708719254, + 0.07785527408123016, + 0.014623328112065792, + -0.03358393907546997, + -0.008013874292373657, + -0.0011572515359148383, + -0.072145015001297, + -0.026260074228048325, + -0.005862375255674124, + 0.03931247442960739, + -0.08920542895793915, + -0.0023228744976222515, + -0.061324357986450195, + 0.06155848503112793, + -0.06112359091639519, + 0.12354496121406555, + 0.007984168827533722, + -0.05936148017644882, + -0.08903499692678452, + 0.018638623878359795, + -0.01284672599285841, + 0.05320116877555847, + 0.04392097517848015, + 0.035797856748104095, + 0.010480914264917374, + -0.09665390104055405, + 0.09956544637680054, + 0.06119024008512497, + -0.021366572007536888, + -0.07915973663330078, + -0.02441607415676117, + -0.017493724822998047, + 0.04341648146510124, + -0.0002006373106269166, + -0.023859083652496338, + 0.009792476892471313, + 0.02212761901319027, + -0.015774572268128395, + 0.058409400284290314, + 0.10812409967184067, + 0.05167866498231888, + -0.09207665175199509 + ] + }, + "p244_094.wav": { + "name": "p244", + "embedding": [ + 0.036822110414505005, + 0.07242009043693542, + -0.03309670090675354, + -0.003048468381166458, + -0.04386954382061958, + -0.0069147199392318726, + -0.12519848346710205, + 0.09353595972061157, + 0.0010776873677968979, + 0.1182837188243866, + -0.04163239896297455, + 0.1122724711894989, + -0.042727746069431305, + -0.10052508860826492, + 0.0033552562817931175, + 0.03179413080215454, + -0.04065268486738205, + -0.018443435430526733, + 0.013175498694181442, + -0.0526496022939682, + 0.028364267200231552, + 0.025354256853461266, + 0.048551734536886215, + -0.048213206231594086, + 0.015067324042320251, + 0.08254222571849823, + 0.007271159440279007, + -0.009745016694068909, + -0.006072564981877804, + -0.05856800079345703, + 0.025633469223976135, + 0.03369980677962303, + -0.020547989755868912, + 0.028014807030558586, + 0.021404704079031944, + 0.007647130638360977, + -0.018102232366800308, + -0.02085983008146286, + 0.020786212757229805, + 0.03888123482465744, + -0.041176121681928635, + 0.07970619201660156, + 0.025005556643009186, + -0.043162617832422256, + 0.04116996377706528, + -0.052835602313280106, + -0.02516220323741436, + 0.02510622888803482, + -0.06655316054821014, + 0.13633355498313904, + 0.04500214383006096, + 0.047181203961372375, + -0.077740877866745, + 0.004249364137649536, + 0.06375887989997864, + 0.006304305978119373, + -0.12372950464487076, + -0.02603471837937832, + 0.035960450768470764, + 0.09387969970703125, + -0.008010385558009148, + -0.04498652368783951, + 0.02632390335202217, + 0.07419561594724655, + 0.010307151824235916, + 0.02524694614112377, + 0.11624124646186829, + 0.09580099582672119, + 0.004578115418553352, + 0.0006483753677457571, + 0.026631953194737434, + 0.08535744249820709, + 0.02605813927948475, + 0.011120393872261047, + 0.009190461598336697, + -0.06851828843355179, + -0.003289947286248207, + -0.045305199921131134, + 0.003732684999704361, + -0.07966253161430359, + -0.08729877322912216, + -0.017239820212125778, + 0.011701574549078941, + 0.03995276987552643, + 0.016065631061792374, + 0.0032900068908929825, + 0.0605255551636219, + -0.05310510843992233, + 0.04639972001314163, + 0.04993167147040367, + -0.02462589181959629, + -0.006307780742645264, + -0.057300861924886703, + -0.04256671667098999, + -0.01977190002799034, + -0.002005410846322775, + 0.08204307407140732, + 0.05164267122745514, + 0.043841101229190826, + 0.06345724314451218, + 0.07971853762865067, + 0.03579944744706154, + -0.0014951155753806233, + -0.06037520244717598, + -0.06967750936746597, + 0.09940171241760254, + 0.10683947801589966, + -0.054134123027324677, + 0.044979795813560486, + -0.03446132689714432, + -0.004506383091211319, + -0.014328483492136002, + -0.05021153390407562, + -0.03431627154350281, + -0.007207631133496761, + 0.03747543692588806, + 0.030941026285290718, + 0.10742281377315521, + 0.03565647080540657, + 0.046510279178619385, + 0.09481403231620789, + -0.0695134848356247, + -0.06875143945217133, + -0.06445220857858658, + 0.05341656506061554, + -0.06355087459087372, + 0.08065932244062424, + 0.07191523164510727, + 0.022466683760285378, + 0.03860599920153618, + 0.043286219239234924, + 0.04631999135017395, + 0.04550920054316521, + -0.04700487107038498, + -0.009830931201577187, + 0.01268603652715683, + -0.00519970990717411, + 0.017201753333210945, + 0.08121289312839508, + 0.0255601704120636, + 0.09990699589252472, + 0.037457071244716644, + -0.004490953870117664, + -0.08814029395580292, + 0.014860142022371292, + 0.04880005866289139, + 0.015370822511613369, + -0.0703241229057312, + -0.05383877083659172, + 0.00047181732952594757, + -0.0644407570362091, + -0.02265036478638649, + -0.007319060154259205, + 0.07243052124977112, + -0.001426486298441887, + -0.00921764224767685, + 0.10356497764587402, + 0.02925504744052887, + -0.022865386679768562, + -0.03902352601289749, + -0.030284838750958443, + -0.011967724189162254, + 0.03957284241914749, + -0.15744337439537048, + -0.07778098434209824, + -0.0451216958463192, + 0.02714158594608307, + -0.0036962516605854034, + 0.0470903106033802, + 0.08343033492565155, + -0.00291498564183712, + 0.007713680155575275, + 0.009778233245015144, + 0.017260070890188217, + -0.0405857115983963, + -0.08749169111251831, + -0.0031842044554650784, + -0.05087461695075035, + -0.03871949762105942, + 0.10236622393131256, + -0.0058644115924835205, + 0.07155845314264297, + -0.03593955561518669, + -0.05258514732122421, + -0.051043830811977386, + 0.05202056095004082, + 0.00041935592889785767, + -0.06088961660861969, + 0.006526827812194824, + 0.0462937131524086, + -0.030801162123680115, + -0.004340748302638531, + 0.029814936220645905, + 0.08274928480386734, + -0.10477759689092636, + -0.005980929359793663, + -0.0748855471611023, + 0.05844786390662193, + 0.10525840520858765, + -0.05913669615983963, + -0.04547093063592911, + -0.09805968403816223, + -0.05136168375611305, + 0.011522175744175911, + -0.04839431867003441, + -0.012120232917368412, + 0.0010702842846512794, + -0.04265597090125084, + -0.08253851532936096, + -0.11632935702800751, + 0.037482257932424545, + -0.02459690347313881, + 0.016678372398018837, + -0.06416452676057816, + 0.04302721098065376, + 0.031156009063124657, + 0.02446451038122177, + -0.03664455562829971, + 0.048583198338747025, + -0.007140323519706726, + -0.02506367489695549, + 0.029407629743218422, + 0.04427163675427437, + 0.0771368145942688, + -0.008016351610422134, + -0.06885376572608948, + -0.07182422280311584, + 0.029722614213824272, + -0.0405505932867527, + 0.09799253940582275, + 0.011097833514213562, + -0.048780474811792374, + -0.03552151098847389, + -0.025461331009864807, + -0.02536981739103794, + 0.03774099051952362, + 0.05317344516515732, + 0.054422132670879364, + 0.027769843116402626, + -0.047993600368499756, + 0.07540889084339142, + 0.06735294312238693, + 0.005908850580453873, + -0.05712722986936569, + -0.02110944874584675, + -0.0179589856415987, + 0.03770499303936958, + -0.015163765288889408, + -0.06058238819241524, + 0.04539172723889351, + -0.013005126267671585, + 0.05264304578304291, + 0.06468474864959717, + 0.08613322675228119, + 0.04964660480618477, + -0.05588657408952713 + ] + }, + "p244_377.wav": { + "name": "p244", + "embedding": [ + 0.04733222723007202, + 0.09046431630849838, + -0.007729042321443558, + 0.023351922631263733, + -0.045406218618154526, + 0.0695141851902008, + -0.14895758032798767, + 0.13072697818279266, + -0.03740275651216507, + 0.13736365735530853, + -0.061719201505184174, + 0.11193593591451645, + -0.012872840277850628, + -0.19223563373088837, + -0.04125719517469406, + 0.05775046348571777, + -0.05566421151161194, + -0.04179064556956291, + -0.01767709106206894, + -0.016842788085341454, + 0.04336528107523918, + 0.039042405784130096, + 0.024615731090307236, + 0.019655853509902954, + 0.018564637750387192, + 0.06023978441953659, + 0.006099242717027664, + 0.04876285791397095, + 0.011892968788743019, + -0.04463401436805725, + -0.03324940428137779, + 0.10493414103984833, + -0.033655568957328796, + 0.016802456229925156, + 0.04893812537193298, + -0.005977705121040344, + 0.010311475023627281, + -0.07104698568582535, + -0.01493571326136589, + 0.005471229087561369, + -0.04094529524445534, + 0.08284159004688263, + 0.0349363274872303, + -0.0021036460530012846, + 0.02977772057056427, + 0.020967869088053703, + -0.01297469437122345, + -0.05224353075027466, + -0.10763004422187805, + 0.16375944018363953, + 0.07977543026208878, + -0.004425516352057457, + -0.057821862399578094, + -0.07021655887365341, + 0.09861578792333603, + -0.005678652785718441, + -0.1081778034567833, + -0.045505356043577194, + 0.07989533990621567, + 0.16195233166217804, + -0.02595449611544609, + -0.0380433015525341, + 0.03098231554031372, + 0.14104890823364258, + 0.040164824575185776, + 0.09193927049636841, + 0.07257379591464996, + 0.10661174356937408, + -0.02201034501194954, + 0.005454308819025755, + 0.051565513014793396, + 0.06457283347845078, + 0.03750522434711456, + -0.01008233055472374, + 0.026899609714746475, + -0.004043132066726685, + -0.015529944561421871, + 0.011348563246428967, + -0.01910034939646721, + -0.011130217462778091, + -0.017013324424624443, + 0.004208702128380537, + -0.0074163442477583885, + 0.03168845921754837, + -0.022276248782873154, + 0.05006998032331467, + 0.021145593374967575, + -0.010872529819607735, + 0.06869891285896301, + 0.03454512357711792, + 0.02676863595843315, + 0.06201603263616562, + -0.06676843017339706, + -0.08428718894720078, + 0.03883475065231323, + 0.011023982428014278, + 0.020811481401324272, + 0.07552500814199448, + 0.03640558943152428, + -0.02461135946214199, + 0.11043436825275421, + 0.044609084725379944, + -0.022144397720694542, + 0.02399427816271782, + -0.10074125230312347, + 0.12465481460094452, + 0.07897934317588806, + -0.02425292693078518, + 0.0445183627307415, + -0.054526086896657944, + 0.07095321267843246, + 0.0692463219165802, + -0.13837578892707825, + -0.07763507217168808, + 0.04583822935819626, + 0.03376290202140808, + -0.01840008795261383, + 0.12454652786254883, + -0.0008544350857846439, + 0.030636047944426537, + 0.09778328984975815, + -0.07056055217981339, + -0.05649099871516228, + -0.031130269169807434, + 0.05065948888659477, + -0.08655708283185959, + 0.05324557423591614, + 0.05073268339037895, + -0.012185122817754745, + -0.0032959484960883856, + 0.07827114313840866, + -0.009260710328817368, + -0.0033345255069434643, + 0.011785428039729595, + -0.039946116507053375, + 0.03251684457063675, + -0.029809778556227684, + 0.012041283771395683, + 0.02555250935256481, + 0.03331790864467621, + 0.031097471714019775, + 0.0016900639748200774, + -0.04283086583018303, + -0.11885258555412292, + 0.007231834810227156, + 0.036401525139808655, + 0.07811887562274933, + -0.010405996814370155, + -0.034443892538547516, + -0.042231760919094086, + -0.058891575783491135, + 0.013215364888310432, + -0.015550191514194012, + 0.07276944816112518, + -0.01287914626300335, + -0.003698386251926422, + 0.08664282411336899, + 0.015264466404914856, + 0.0011708190431818366, + -0.04073679447174072, + -0.031158100813627243, + 0.019602570682764053, + 0.038766101002693176, + -0.07748782634735107, + -0.06124364584684372, + -0.00022036582231521606, + 0.03349297121167183, + -0.01661285199224949, + 0.03932264819741249, + 0.04105234518647194, + 0.015920568257570267, + 0.027934208512306213, + -0.0695836991071701, + 0.013799848966300488, + -0.10334327071905136, + -0.06709205359220505, + -0.014693690463900566, + -0.0046608950942754745, + -0.015061387792229652, + 0.07610457390546799, + 0.017258161678910255, + 0.051063209772109985, + -0.016528960317373276, + -0.06407789885997772, + -0.0741993859410286, + 0.056603118777275085, + 0.08332005143165588, + 0.004241840448230505, + 0.04837234318256378, + 0.04887954518198967, + -0.023131929337978363, + 0.05168752372264862, + 0.05290812999010086, + 0.10788771510124207, + -0.023714736104011536, + 0.015375932678580284, + -0.07529333233833313, + 0.08378778398036957, + 0.08201092481613159, + -0.0899907574057579, + -0.07696673274040222, + -0.02056359499692917, + -0.06307683885097504, + 0.03234029561281204, + -0.02875496819615364, + 0.008930492214858532, + 0.022837094962596893, + -0.00964735820889473, + -0.10226570814847946, + -0.09338478744029999, + 0.0775962695479393, + -0.07447759807109833, + -0.0003247287531848997, + -0.07987533509731293, + 0.05032431334257126, + 0.10073523223400116, + 0.0409855842590332, + -0.027450840920209885, + -0.018690699711441994, + 0.04257289692759514, + -0.034710608422756195, + 3.053806722164154e-05, + 0.039272792637348175, + 0.031003182753920555, + -0.12332575023174286, + 0.00576448580250144, + -0.0801028460264206, + 0.05784715712070465, + -0.06268148869276047, + 0.15345041453838348, + 0.01110049244016409, + -0.05558255314826965, + -0.08508320152759552, + 0.029661260545253754, + -0.02098817378282547, + 0.04710116982460022, + 0.02508586458861828, + 0.0568326860666275, + 0.028572171926498413, + -0.06707557290792465, + 0.11390320956707001, + 0.04429692029953003, + -0.033711306750774384, + -0.07568075507879257, + -0.03493708744645119, + -0.027595657855272293, + 0.040212761610746384, + 0.012148179113864899, + -0.08643628656864166, + -0.03368380293250084, + 0.03219104930758476, + -0.01587980054318905, + 0.07350198924541473, + 0.1479368358850479, + 0.06011173129081726, + -0.1269829273223877 + ] + }, + "p244_277.wav": { + "name": "p244", + "embedding": [ + 0.04264187067747116, + 0.06311096251010895, + -0.023551030084490776, + 0.0025000344030559063, + -0.057646460831165314, + 0.00225723534822464, + -0.11004720628261566, + 0.07569189369678497, + -0.03535941243171692, + 0.13863961398601532, + -0.05673816427588463, + 0.09984621405601501, + -0.02892191894352436, + -0.12817013263702393, + 0.010409042239189148, + 0.04462805762887001, + -0.034322742372751236, + -0.0507219135761261, + -0.0610097199678421, + -0.057701073586940765, + 0.026611264795064926, + 0.060849081724882126, + 0.028283659368753433, + -0.02435755357146263, + 0.02505907416343689, + 0.07433561980724335, + -0.014201589860022068, + -0.0020288852974772453, + -0.024021558463573456, + -0.07985426485538483, + -0.0157223641872406, + 0.03277362138032913, + -0.0407225526869297, + -0.016750629991292953, + 0.012855478562414646, + 0.0014595035463571548, + 0.0031131920404732227, + -0.0452728196978569, + -0.034499913454055786, + 0.02210972085595131, + -0.07554882019758224, + 0.06354205310344696, + 0.0002334974706172943, + -0.07364454865455627, + 0.022563796490430832, + -0.00024508778005838394, + -0.0025662570260465145, + -0.013982882723212242, + -0.07237289100885391, + 0.14286483824253082, + 0.07294850051403046, + 0.024620216339826584, + -0.044067081063985825, + -0.03783527389168739, + 0.087599977850914, + -0.024627361446619034, + -0.08886294811964035, + -0.06635920703411102, + 0.01920413412153721, + 0.09394382685422897, + -0.05642993748188019, + -0.04926179349422455, + 0.059584908187389374, + 0.046132609248161316, + 0.0660858228802681, + 0.03160572052001953, + 0.07284341007471085, + 0.06849180907011032, + -0.02200448140501976, + -0.002484874567016959, + 0.059769004583358765, + 0.08756299316883087, + 0.0719323381781578, + -0.0010794373229146004, + 0.021357227116823196, + 0.028888575732707977, + -0.042473286390304565, + -0.026766955852508545, + -0.021503642201423645, + -0.016207046806812286, + -0.0060727521777153015, + -0.0017984514124691486, + 0.028757430613040924, + -0.018070241436362267, + -0.018856022506952286, + 0.04063067585229874, + 0.05448971688747406, + -0.03964638337492943, + 0.060966476798057556, + 0.004664110951125622, + -0.011398667469620705, + 0.04361611604690552, + -0.08058154582977295, + -0.03437003120779991, + 0.01716829091310501, + 0.01690690591931343, + -0.012456999160349369, + 0.05685466527938843, + 0.03253331780433655, + -0.003275204449892044, + 0.099212646484375, + 0.017133908346295357, + 0.00788399949669838, + -0.004772128537297249, + -0.07832632213830948, + 0.12250611931085587, + 0.08846046775579453, + -0.04815295338630676, + 0.014907857403159142, + -0.03462682291865349, + 0.03354254737496376, + 0.04674684256315231, + -0.09301337599754333, + -0.087657630443573, + -0.006601814646273851, + -0.018905671313405037, + 0.0013481024652719498, + 0.09413935244083405, + 0.0020515201613307, + 0.04556795582175255, + 0.1325456202030182, + -0.08294179290533066, + -0.07228812575340271, + -0.0012694617034867406, + 0.02431389130651951, + -0.09716517478227615, + 0.07305336743593216, + 0.0702163353562355, + 0.004958189092576504, + 0.04787379875779152, + 0.0946945995092392, + -0.015924906358122826, + -0.0011008083820343018, + -0.02557320147752762, + -0.025193018838763237, + -0.018104009330272675, + -0.029397133737802505, + -0.02496369741857052, + 0.08315920829772949, + 0.03424597904086113, + 0.053083233535289764, + -0.005343281663954258, + -0.015508508309721947, + -0.12803561985492706, + 0.03876134380698204, + 0.03950865566730499, + 0.04070867970585823, + -0.019142312929034233, + 0.009575407952070236, + -0.04028969258069992, + -0.07258483022451401, + -0.008832355029881, + -0.038102902472019196, + 0.07548213005065918, + -0.03485502302646637, + 0.04116066172719002, + 0.10541260987520218, + 0.01915627345442772, + -0.00029413867741823196, + -0.05262730270624161, + -0.021592440083622932, + -0.008701791986823082, + 0.04718241095542908, + -0.04831003397703171, + -0.09325270354747772, + -0.04639029875397682, + 0.03858348727226257, + 0.018506933003664017, + 0.07129750400781631, + 0.0396333746612072, + 0.0033629750832915306, + 0.00828552059829235, + -0.07426701486110687, + 0.03370433300733566, + -0.05994594097137451, + -0.05434270575642586, + -0.008889112621545792, + -0.05110438913106918, + -0.02826916053891182, + 0.06683064252138138, + -0.008082222193479538, + 0.04435339570045471, + -0.04691636562347412, + -0.09931562095880508, + -0.11064563691616058, + 0.004934659227728844, + 0.036238037049770355, + -0.029476074501872063, + 0.008395855315029621, + 0.05499150976538658, + -0.012559883296489716, + 0.02311696857213974, + 0.020174259319901466, + 0.09117074310779572, + -0.03786388784646988, + 0.012111879885196686, + -0.023081757128238678, + 0.0757397934794426, + 0.06704360246658325, + -0.055841103196144104, + -0.037043072283267975, + -0.07037146389484406, + -0.07031042873859406, + 0.03177401423454285, + -0.0011859583901241422, + 0.008750032633543015, + 0.018187981098890305, + -0.0074934326112270355, + -0.0681600496172905, + -0.07481291890144348, + 0.057219941169023514, + -0.041216135025024414, + -0.017641713842749596, + -0.06915230304002762, + 0.0043623484671115875, + 0.03144053742289543, + 0.058244090527296066, + 0.0012780011165887117, + -0.0020744120702147484, + 0.012411200441420078, + -0.0251882616430521, + 0.037169575691223145, + 0.09109952300786972, + 0.036118537187576294, + -0.03495539352297783, + -0.01692371442914009, + -0.08257092535495758, + 0.05267810821533203, + -0.015549730509519577, + 0.09850166738033295, + -0.013627718202769756, + -0.02539307251572609, + -0.08449490368366241, + 0.015916192904114723, + -0.0176605936139822, + 0.063267782330513, + 0.04489488899707794, + 0.06108396500349045, + 0.04919436573982239, + -0.06144469976425171, + 0.0855003073811531, + 0.07372401654720306, + -0.011811371892690659, + -0.05288457125425339, + -0.0619916133582592, + -0.049867428839206696, + -0.011114935390651226, + 0.006419411860406399, + -0.06830126792192459, + 0.02813584730029106, + 0.003600649768486619, + 0.0007874211296439171, + 0.07652373611927032, + 0.09360671043395996, + 0.06632298231124878, + -0.10903823375701904 + ] + }, + "p244_010.wav": { + "name": "p244", + "embedding": [ + 0.028725378215312958, + 0.10670597106218338, + -0.013663104735314846, + 0.049690186977386475, + -0.06104345619678497, + 0.06506575644016266, + -0.12935765087604523, + 0.1428772509098053, + -0.03178021311759949, + 0.0916590467095375, + -0.09041033685207367, + 0.14234593510627747, + -0.028014011681079865, + -0.17712175846099854, + -0.026547489687800407, + 0.0555666945874691, + 0.003901268355548382, + -0.005483678076416254, + 0.023041341453790665, + -0.011615506373345852, + 0.05064955726265907, + 0.01587148942053318, + 0.05886288732290268, + 0.013373097404837608, + 0.03190702944993973, + 0.056823499500751495, + 0.018164364621043205, + 0.06301610171794891, + 0.029072750359773636, + -0.016369102522730827, + -0.05543539673089981, + 0.10893231630325317, + -0.0157815869897604, + 0.002462020143866539, + 0.06886240839958191, + -0.007040664553642273, + -0.0037082922644913197, + -0.06262369453907013, + -0.0014248085208237171, + -0.02177208662033081, + -0.02147660031914711, + 0.06623233109712601, + 0.040154967457056046, + -0.0349268913269043, + 0.03514464199542999, + 0.0244491808116436, + -0.009560373611748219, + -0.015133281238377094, + -0.12620337307453156, + 0.128758504986763, + 0.043029993772506714, + 0.013383596204221249, + -0.08306790143251419, + -0.05327610298991203, + 0.11673308908939362, + 0.0037154806777834892, + -0.0717497318983078, + -0.012218031100928783, + 0.08629606664180756, + 0.18141299486160278, + -0.005386904813349247, + -0.02255343273282051, + 0.03178722783923149, + 0.10652004927396774, + 0.028859883546829224, + 0.0872742235660553, + 0.07398101687431335, + 0.11215727776288986, + -0.0018404878210276365, + 0.02770141139626503, + 0.017030417919158936, + 0.08586126565933228, + -0.0024256715551018715, + -0.020028676837682724, + -0.010820229537785053, + -0.005327487830072641, + -0.02738869935274124, + 0.03361598029732704, + -0.0383361354470253, + -0.0462166853249073, + -0.022930003702640533, + -0.009437731467187405, + 0.01947222836315632, + 6.002793088555336e-05, + -0.04381745308637619, + 0.06869108974933624, + 0.026850320398807526, + -0.012992391362786293, + 0.0617077462375164, + 0.010400219820439816, + -0.024428587406873703, + 0.0535995289683342, + -0.07261838018894196, + -0.10296855866909027, + 0.02543533593416214, + -0.0024873341899365187, + 0.025066573172807693, + 0.0891386941075325, + 0.04712182655930519, + -0.020786520093679428, + 0.11509157717227936, + 0.06848638504743576, + -0.0008477892260998487, + 0.04748477041721344, + -0.07441697269678116, + 0.12000942975282669, + 0.09091515839099884, + -0.004055557306855917, + 0.07382682710886002, + -0.04909979924559593, + 0.0602409765124321, + 0.06179901957511902, + -0.12094734609127045, + -0.07089880108833313, + 0.014706685207784176, + 0.041342414915561676, + 0.002742488868534565, + 0.10451318323612213, + -0.00913223810493946, + 0.04099633917212486, + 0.0883367657661438, + -0.0933537483215332, + -0.07883404195308685, + -0.0391116663813591, + 0.04052465781569481, + -0.04352322965860367, + 0.05479617416858673, + 0.05855022370815277, + -0.008855506777763367, + -0.01494442019611597, + 0.045939669013023376, + -0.0074395835399627686, + 0.014088914729654789, + 0.06511983275413513, + -0.06878434866666794, + 0.008816284127533436, + -0.03868421912193298, + 0.00898418202996254, + 0.05127020180225372, + 0.04162725433707237, + 0.040688395500183105, + 0.018520019948482513, + -0.015696054324507713, + -0.1123669371008873, + -0.025542566552758217, + 0.07176807522773743, + 0.07686452567577362, + -0.0035655226092785597, + -0.06837192177772522, + -0.04631870985031128, + -0.05864271521568298, + 0.02417045831680298, + 0.009200849570333958, + 0.07643677294254303, + -0.027439165860414505, + 0.01286247093230486, + 0.051882702857255936, + 0.024856867268681526, + -0.008481026627123356, + -0.07212729752063751, + -0.03712907433509827, + 0.019971342757344246, + 0.011348159983754158, + -0.06558899581432343, + -0.07371678948402405, + -0.021353378891944885, + 0.03119572065770626, + -0.06447643041610718, + 0.03798682242631912, + 0.038434408605098724, + 0.02241576462984085, + 0.03698313236236572, + -0.037804167717695236, + -0.002959656063467264, + -0.09651385247707367, + -0.05180474743247032, + -0.009964662604033947, + 0.031705763190984726, + -0.0287723857909441, + 0.06844978779554367, + 0.06184413656592369, + 0.06942988187074661, + 0.008909285999834538, + -0.006876582279801369, + -0.07053043693304062, + 0.030965980142354965, + 0.04503471404314041, + 0.028909485787153244, + 0.08840499818325043, + 0.04474673792719841, + -0.036640655249357224, + 0.08059094846248627, + 0.08203427493572235, + 0.06344818323850632, + -0.01037412229925394, + -0.020454753190279007, + -0.07374860346317291, + 0.06970997154712677, + 0.11968529224395752, + -0.09022782742977142, + -0.1003156453371048, + -0.04872199892997742, + -0.07762288302183151, + 0.04848495498299599, + -0.028974764049053192, + -0.002572589088231325, + 0.01237446814775467, + -0.017692934721708298, + -0.1055043637752533, + -0.099042609333992, + 0.07173991203308105, + -0.0579565092921257, + -0.0008106371387839317, + -0.05996666103601456, + 0.04513000696897507, + 0.0959613025188446, + -0.016461580991744995, + -0.02952190488576889, + -0.02839544788002968, + 0.054464954882860184, + -0.05942635238170624, + -0.008524757809937, + 0.04394569620490074, + 0.03610827773809433, + -0.10853509604930878, + 0.03327574580907822, + -0.0647948831319809, + 0.05671197175979614, + -0.047558050602674484, + 0.17820847034454346, + 0.01884525641798973, + -0.03572610765695572, + -0.08030148595571518, + 0.05138568580150604, + -0.016077954322099686, + 0.03466182202100754, + 0.03344974294304848, + 0.05271591618657112, + -0.013466671109199524, + -0.10121957957744598, + 0.12472590804100037, + 0.010765277780592442, + -0.05773167312145233, + -0.09374077618122101, + -0.04166870564222336, + -0.03574949502944946, + 0.028676796704530716, + 0.0072265565395355225, + -0.07576675713062286, + -0.06061454489827156, + 0.022106267511844635, + 0.010483967140316963, + 0.0645110011100769, + 0.14586959779262543, + 0.051320455968379974, + -0.08237648010253906 + ] + }, + "p244_303.wav": { + "name": "p244", + "embedding": [ + 0.05086994171142578, + 0.08072485029697418, + 0.040910255163908005, + 0.0013891905546188354, + -0.014478957280516624, + 0.03669634088873863, + -0.09335188567638397, + 0.07901257276535034, + 0.014464322477579117, + 0.08860625326633453, + -0.12932388484477997, + 0.0366247333586216, + -0.05844385549426079, + -0.12876854836940765, + -0.03077705204486847, + 0.021804828196763992, + -0.04318710044026375, + 0.007399998605251312, + -0.04967281594872475, + -0.04463738575577736, + 0.019266493618488312, + 0.01893220655620098, + 0.05309247225522995, + -0.0314900204539299, + -0.027108270674943924, + 0.02366781048476696, + 0.0024859225377440453, + 0.010353431105613708, + 0.018924426287412643, + 0.0027833953499794006, + 0.027088072150945663, + 0.04175854101777077, + -0.000131973996758461, + 0.008983499370515347, + 0.04687155783176422, + 0.04443495720624924, + -0.010417547076940536, + -0.0334966778755188, + -0.026688016951084137, + 0.06783045828342438, + -0.04978682100772858, + 0.0629938393831253, + 0.048324186354875565, + -0.01743905618786812, + 0.05304032564163208, + -0.002429172396659851, + -0.0651036947965622, + -0.005244677886366844, + -0.10726199299097061, + 0.14259158074855804, + 0.054975174367427826, + 0.018864206969738007, + -0.07321242988109589, + -0.01979796402156353, + 0.11842131614685059, + -0.02936933934688568, + -0.08809123188257217, + -0.04840527102351189, + 0.036557577550411224, + 0.07616955786943436, + -0.006615160498768091, + -0.03273646533489227, + -0.040768593549728394, + 0.043823353946208954, + -0.019574299454689026, + 0.06636378914117813, + 0.08028679341077805, + 0.07933355867862701, + -0.01782982051372528, + 0.035356756299734116, + 0.08476553857326508, + 0.00943467952311039, + 0.01453235000371933, + -0.033368516713380814, + 0.027517026290297508, + -0.024607796221971512, + -0.027229975908994675, + 0.04379443824291229, + 0.010878156870603561, + -0.022651487961411476, + 0.019058922305703163, + -0.020240318030118942, + -0.00400744192302227, + -0.007379990536719561, + -0.06787237524986267, + -0.001393275335431099, + -0.006609325297176838, + 0.05506915599107742, + 0.07482090592384338, + 0.06983830779790878, + 0.0030721938237547874, + 0.03625817596912384, + -0.014485575258731842, + -0.09609570354223251, + -0.03183092921972275, + -0.02788097783923149, + 0.022880004718899727, + 0.0371972993016243, + 0.015818441286683083, + -0.004957647994160652, + 0.07519248872995377, + 0.04007837176322937, + 0.003095117397606373, + 0.0005476865917444229, + -0.11065604537725449, + 0.045733485370874405, + 0.09538108110427856, + -0.0049351295456290245, + 0.005513550713658333, + -0.010928180068731308, + 0.09307888895273209, + 0.07535122334957123, + -0.0694999024271965, + -0.022451302036643028, + 0.02165895700454712, + 0.06930910795927048, + 0.0748559907078743, + 0.08120141178369522, + -0.009417391382157803, + -0.03359581530094147, + 0.13591331243515015, + -0.05253691226243973, + -0.0068921782076358795, + -0.0020351381972432137, + -0.0020439699292182922, + -0.010730847716331482, + 0.019805535674095154, + 0.020882681012153625, + 0.0009033810347318649, + -0.02671380713582039, + 0.042021244764328, + -0.00638983678072691, + 0.002193121239542961, + -0.047575682401657104, + 0.006564216688275337, + 0.06948788464069366, + -0.025066815316677094, + 0.0034740683622658253, + 0.08385401964187622, + 0.07601861655712128, + 0.04497477784752846, + 0.07866920530796051, + -0.05052900314331055, + -0.045000601559877396, + 0.020842349156737328, + 0.03276495635509491, + 0.008508268743753433, + -0.015079807490110397, + -0.04481314867734909, + -0.050781890749931335, + -0.029487382620573044, + 0.08121202886104584, + -0.027118362486362457, + 0.0812443345785141, + 0.015863755717873573, + -0.034007616341114044, + 0.07388241589069366, + -0.031191222369670868, + -0.022215748205780983, + -0.04986584186553955, + -0.07730323821306229, + -0.0037364806048572063, + 0.017251040786504745, + -0.12774981558322906, + -0.03113045170903206, + -0.02424062043428421, + 0.005722923204302788, + 0.0077817002311348915, + -0.050905559211969376, + 0.06880206614732742, + -0.04607398435473442, + 0.0271031241863966, + -0.06728782504796982, + 0.04851977527141571, + -0.08129298686981201, + -0.06558481603860855, + 0.006172357127070427, + -0.03902430087327957, + 0.035720452666282654, + 0.07345400750637054, + -0.03674108535051346, + -0.02113676443696022, + -0.018549378961324692, + -0.11090287566184998, + -0.013332740403711796, + 0.07086677849292755, + 0.04954908415675163, + 0.011247997172176838, + 0.06500115990638733, + 0.0801166296005249, + -0.039803557097911835, + 0.0606718473136425, + 0.01620657369494438, + 0.0858481153845787, + -0.07190751284360886, + 0.012757385149598122, + -0.005361108109354973, + 0.03920765221118927, + 0.04750397056341171, + -0.05647473409771919, + -0.0880991667509079, + -0.06131656840443611, + -0.02567828819155693, + 0.02819378301501274, + -0.029608365148305893, + -0.03244323283433914, + 0.005862005054950714, + -0.017094694077968597, + -0.051371246576309204, + -0.07057394087314606, + 0.019255897030234337, + 0.010236331261694431, + -0.0066207945346832275, + -0.04347224533557892, + 0.020936865359544754, + 0.002386130392551422, + 0.02471340447664261, + -0.020868349820375443, + 0.03521343320608139, + -0.008208176121115685, + -0.057333897799253464, + -0.07976987957954407, + -0.027563974261283875, + 0.006840787827968597, + -0.0043005309998989105, + -0.006566083058714867, + -0.06918224692344666, + 0.08459626883268356, + -0.012925414368510246, + 0.06600619852542877, + -0.007634011562913656, + -0.009500415995717049, + -0.0029632877558469772, + -0.0020032599568367004, + -0.04413478076457977, + 0.03092007152736187, + 0.0714048370718956, + 0.006414875388145447, + -0.0025811661034822464, + -0.02007622830569744, + 0.08884145319461823, + 0.02687453106045723, + -0.012341579422354698, + -0.02021118625998497, + 0.05025880038738251, + -0.06245449185371399, + -0.04651808738708496, + -0.010262799449265003, + -0.05070169270038605, + 0.03186872974038124, + -0.02141043171286583, + -0.009322119876742363, + 0.0147930346429348, + 0.06873107701539993, + 0.02929753065109253, + -0.06964659690856934 + ] + }, + "p244_232.wav": { + "name": "p244", + "embedding": [ + 0.030955003574490547, + 0.08225686848163605, + -0.026167739182710648, + 0.034364327788352966, + -0.055399082601070404, + 0.05940912663936615, + -0.1497858315706253, + 0.1509069800376892, + -0.03663818538188934, + 0.1248239278793335, + -0.0603150948882103, + 0.1123816967010498, + -0.026475079357624054, + -0.1824588179588318, + -0.02223712019622326, + 0.06200999766588211, + -0.03276641666889191, + -0.05313640087842941, + -0.028874503448605537, + -0.008750061504542828, + 0.026636511087417603, + 0.022036101669073105, + -0.0004767272621393204, + 0.035958029329776764, + 0.018418053165078163, + 0.057225774973630905, + -0.00893328245729208, + 0.04563155770301819, + 0.019728491082787514, + -0.013275843113660812, + -0.028433043509721756, + 0.100715771317482, + -0.05943729728460312, + 0.008357983082532883, + 0.06376755982637405, + -0.013840243220329285, + -0.014781555160880089, + -0.05871795117855072, + -0.019421186298131943, + -0.007225473411381245, + -0.06464377045631409, + 0.08721588551998138, + 0.04328744113445282, + 0.0009219245985150337, + 0.04154667630791664, + 0.03276629000902176, + -0.009504780173301697, + -0.04713617265224457, + -0.1121065691113472, + 0.1356859803199768, + 0.07888346910476685, + -0.013625338673591614, + -0.06818297505378723, + -0.04119180887937546, + 0.10064180195331573, + -0.016587089747190475, + -0.10427527129650116, + -0.05555611848831177, + 0.0860384851694107, + 0.14325544238090515, + -0.03649243712425232, + -0.025906547904014587, + 0.017998311668634415, + 0.13315555453300476, + 0.08517007529735565, + 0.08853767812252045, + 0.06979244202375412, + 0.1303124874830246, + -0.028727956116199493, + -0.0018185931257903576, + 0.06994375586509705, + 0.05707184225320816, + 0.04032492637634277, + -0.0053398082964122295, + 0.019982216879725456, + 0.011023357510566711, + -0.00556158646941185, + 0.005987999495118856, + -0.02921021357178688, + -0.004633207805454731, + -0.01667523756623268, + 0.02470996230840683, + -0.004161872435361147, + 0.04750695824623108, + -0.017112310975790024, + 0.06861309707164764, + 0.05199010670185089, + -0.01693868823349476, + 0.07043921947479248, + 0.03453134372830391, + -0.0027603227645158768, + 0.06514585763216019, + -0.09954482316970825, + -0.07337656617164612, + 0.028049040585756302, + -0.010628284886479378, + 0.018603162840008736, + 0.07038712501525879, + 0.03109721466898918, + -0.0019274418009445071, + 0.13062971830368042, + 0.04392148554325104, + -0.01758021116256714, + 0.045508481562137604, + -0.0909043699502945, + 0.13980942964553833, + 0.058309681713581085, + -0.026628196239471436, + 0.042237989604473114, + -0.049634356051683426, + 0.05781242251396179, + 0.0522179901599884, + -0.1284443885087967, + -0.059402432292699814, + 0.06277811527252197, + 0.035799045115709305, + -0.04045063629746437, + 0.13847792148590088, + -0.0049690427258610725, + 0.038601987063884735, + 0.10101017355918884, + -0.0708998590707779, + -0.05300513654947281, + -0.009106209501624107, + 0.05786249786615372, + -0.06362000852823257, + 0.05602806806564331, + 0.04469164088368416, + -0.00024171569384634495, + 0.013101227581501007, + 0.09494341909885406, + 0.004752127919346094, + -0.013464430347084999, + 0.01538572832942009, + -0.03090580180287361, + 0.04443518444895744, + -0.010465172119438648, + 0.0006785569712519646, + 0.033403921872377396, + 0.028841624036431313, + 0.05300929397344589, + -0.007053093984723091, + -0.012311217375099659, + -0.12023797631263733, + 0.0045458474196493626, + 0.03103308193385601, + 0.11261628568172455, + -0.013627579435706139, + -0.01721094362437725, + -0.05851977318525314, + -0.060338519513607025, + -0.016285033896565437, + -0.008334862068295479, + 0.08106769621372223, + -0.028965385630726814, + 0.0035702052991837263, + 0.087030328810215, + 0.020359423011541367, + 0.01530112512409687, + -0.04681496322154999, + -0.024376949295401573, + -0.005033688619732857, + 0.06387915462255478, + -0.07089253515005112, + -0.06645822525024414, + 0.002432561945170164, + 0.042131394147872925, + -0.020987922325730324, + 0.05834024399518967, + 0.03505070134997368, + 0.03231378644704819, + 0.023026399314403534, + -0.07291001826524734, + 0.02770531177520752, + -0.09786864370107651, + -0.05986499786376953, + -0.01803792268037796, + 0.016358211636543274, + -0.024587152525782585, + 0.06809000670909882, + 0.025577712804079056, + 0.06966913491487503, + 0.004402273800224066, + -0.07678177952766418, + -0.08311372995376587, + 0.060352958738803864, + 0.0684356614947319, + -0.025736043229699135, + 0.052126433700323105, + 0.0699366107583046, + -0.0360199511051178, + 0.027775436639785767, + 0.064737468957901, + 0.09838823974132538, + -0.02781607210636139, + 0.020914599299430847, + -0.06858585774898529, + 0.08611253648996353, + 0.07740860432386398, + -0.10443754494190216, + -0.06946203112602234, + 0.0011498844251036644, + -0.0512927770614624, + 0.012925932183861732, + -0.039728835225105286, + 0.013339024968445301, + 0.028628556057810783, + -0.0028679983224719763, + -0.09937349706888199, + -0.09012958407402039, + 0.06622787564992905, + -0.10237047076225281, + 0.012176545336842537, + -0.08945709466934204, + 0.031761594116687775, + 0.11416492611169815, + 0.027827873826026917, + -0.03773145377635956, + -0.03059513121843338, + 0.055243417620658875, + -0.012641758657991886, + 0.00845520943403244, + 0.0636475682258606, + 0.0392475463449955, + -0.12736910581588745, + -0.0009595244191586971, + -0.059611327946186066, + 0.06867016851902008, + -0.03509185463190079, + 0.1494835764169693, + 0.021333612501621246, + -0.03771695867180824, + -0.07975314557552338, + 0.017768308520317078, + -0.004101933911442757, + 0.05537090077996254, + 0.014293333515524864, + 0.07221437990665436, + 0.04722786694765091, + -0.03195471316576004, + 0.14044740796089172, + 0.050141796469688416, + -0.0511203296482563, + -0.06355500966310501, + -0.041622135788202286, + -0.04044727236032486, + 0.03785739466547966, + 0.0339277908205986, + -0.09896513819694519, + -0.03048505261540413, + 0.026035085320472717, + -0.039641860872507095, + 0.06470636278390884, + 0.14841541647911072, + 0.08750447630882263, + -0.12302286922931671 + ] + }, + "p244_386.wav": { + "name": "p244", + "embedding": [ + 0.031649477779865265, + 0.07646173983812332, + -0.03148992359638214, + 0.052173126488924026, + -0.009548192843794823, + 0.05671019107103348, + -0.11025732755661011, + 0.04974089190363884, + -0.032562751322984695, + 0.13640549778938293, + -0.07717396318912506, + 0.07606972008943558, + -0.03287271782755852, + -0.16226907074451447, + -0.03962043672800064, + 0.06625166535377502, + -0.06991659104824066, + -0.03414027392864227, + -0.07099336385726929, + 0.004159691743552685, + 0.021393030881881714, + 0.045025646686553955, + 0.04835662245750427, + -0.02847697213292122, + 0.015876639634370804, + 0.07108022272586823, + 0.005270687863230705, + 0.053520023822784424, + 0.019035978242754936, + -0.014788918197154999, + -0.017116323113441467, + 0.11924406886100769, + -0.025705359876155853, + 0.011664564721286297, + 0.012256763875484467, + 0.05011039972305298, + 0.0011061616241931915, + -0.0535585917532444, + 0.006119484081864357, + 0.0008402115199714899, + -0.0679161548614502, + 0.05726798623800278, + 0.01713777333498001, + 0.00038415100425481796, + 0.04642557352781296, + -0.026818644255399704, + -0.057028114795684814, + -0.041265588253736496, + -0.10324981808662415, + 0.18313279747962952, + 0.09561291337013245, + 0.002732375171035528, + -0.06283178925514221, + -0.06810610741376877, + 0.08464275300502777, + 0.0027346834540367126, + -0.11771519482135773, + -0.05812404304742813, + 0.07848899066448212, + 0.1573343276977539, + 0.0008205575868487358, + -0.012080795131623745, + 0.013525392860174179, + 0.13324788212776184, + 0.044215209782123566, + 0.09904691576957703, + 0.06427250802516937, + 0.09096527099609375, + 0.024918677285313606, + 0.012453887611627579, + 0.09327840059995651, + 0.051750071346759796, + 0.05452318862080574, + -0.025828810408711433, + 0.02530427649617195, + 0.008843940682709217, + -0.03821789473295212, + 0.007995064370334148, + -0.00885915569961071, + -0.027870621532201767, + -0.01016781385987997, + -0.038475148379802704, + -0.020360104739665985, + 0.022097362205386162, + -0.012947442941367626, + 0.019672485068440437, + 0.04778805375099182, + -0.03624803200364113, + 0.05572628229856491, + 0.06616448611021042, + 0.004147545900195837, + 0.0384577177464962, + -0.022854197770357132, + -0.0798768550157547, + -0.005360814742743969, + 0.021205708384513855, + 0.0058741495013237, + 0.04019877314567566, + 0.04669239744544029, + -0.02885352075099945, + 0.07884927839040756, + 0.013295728713274002, + -0.011601023375988007, + 0.015225466340780258, + -0.0960804671049118, + 0.09479682147502899, + 0.10039801895618439, + -0.011088932864367962, + -0.002814692445099354, + -0.0030156525317579508, + 0.05556480959057808, + 0.09981440752744675, + -0.11694090068340302, + -0.04579015076160431, + 0.035769350826740265, + -0.020206402987241745, + 0.004826541990041733, + 0.0826086699962616, + 0.020274579524993896, + -0.010239641182124615, + 0.10876694321632385, + -0.07385456562042236, + -0.057519882917404175, + -0.04038620367646217, + 0.04464328661561012, + -0.08643260598182678, + 0.012069916352629662, + 0.05321726202964783, + 0.01035312470048666, + -0.048268113285303116, + 0.07908546179533005, + -0.008166933432221413, + 0.0024181418120861053, + -0.01672356389462948, + -0.032482050359249115, + 0.06223515793681145, + -0.054473478347063065, + -0.004516275599598885, + 0.06853006780147552, + 0.01806415431201458, + 0.04293894022703171, + -0.0002868594601750374, + -0.027835572138428688, + -0.0888238251209259, + 0.016806710511446, + 0.06457258015871048, + 0.036462608724832535, + -0.018106846138834953, + -0.012780562043190002, + -0.04917676001787186, + -0.06469360738992691, + 0.08024219423532486, + -0.037855107337236404, + 0.080410435795784, + 0.0010232441127300262, + -0.05984511598944664, + 0.1319093406200409, + -0.05424684286117554, + -0.005210271570831537, + -0.03288478031754494, + -0.01364852860569954, + 0.03927774727344513, + 0.031974393874406815, + -0.09523142874240875, + -0.06245991215109825, + 0.023493686690926552, + 0.007143914699554443, + 0.011369949206709862, + 0.004833690822124481, + 0.04307461157441139, + -0.006663513835519552, + -0.004109029192477465, + -0.04627680778503418, + -0.009475663304328918, + -0.09625554084777832, + -0.04432388022542, + -0.012137578800320625, + -0.06808105111122131, + 0.020495522767305374, + 0.08719237148761749, + 0.011581341736018658, + -0.02281828224658966, + -0.020354295149445534, + -0.11550386250019073, + -0.06183753162622452, + 0.09062296897172928, + 0.10387173295021057, + 0.006936357822269201, + 0.053012944757938385, + 0.053312644362449646, + -0.027003593742847443, + 0.017472604289650917, + 0.0384615883231163, + 0.11574673652648926, + -0.03329072892665863, + -0.013949348591268063, + -0.08618734776973724, + 0.07743092626333237, + 0.07602544873952866, + -0.09142109751701355, + -0.06249772757291794, + -0.021195027977228165, + -0.04711662232875824, + 0.05338535085320473, + -0.04962320253252983, + -0.000934468349441886, + 0.05762859433889389, + -0.04432222247123718, + -0.10845957696437836, + -0.12000110745429993, + 0.09313343465328217, + -0.03256407752633095, + -0.03908460959792137, + -0.0546737015247345, + 0.038468413054943085, + 0.024689989164471626, + 0.038590602576732635, + -0.0395713709294796, + 0.07005934417247772, + 0.03545287996530533, + -0.07135067135095596, + -0.037966590374708176, + 0.01848294399678707, + -0.013839974999427795, + -0.10702270269393921, + -0.0300307497382164, + -0.07974396646022797, + 0.11046966910362244, + -0.06991369277238846, + 0.1135016530752182, + -0.02276787720620632, + -0.04138772934675217, + -0.06875388324260712, + 0.049664974212646484, + -0.03177066892385483, + 0.05610818788409233, + 0.060398831963539124, + 0.046858787536621094, + 0.011969218030571938, + -0.06032554805278778, + 0.10747948288917542, + 0.03370114415884018, + 0.012704925611615181, + -0.071434885263443, + -0.0022916351445019245, + -0.04706091061234474, + 0.04040273278951645, + 0.0057310545817017555, + -0.05830095708370209, + 0.029064958915114403, + 0.021631691604852676, + -0.0445687472820282, + 0.04271232336759567, + 0.09893974661827087, + 0.07274339348077774, + -0.08253943175077438 + ] + }, + "p244_301.wav": { + "name": "p244", + "embedding": [ + 0.057568274438381195, + 0.09223821014165878, + 0.007904359139502048, + 0.009360878728330135, + -0.05180535838007927, + 0.048424966633319855, + -0.13868360221385956, + 0.12880083918571472, + -0.05091404169797897, + 0.14076541364192963, + -0.0888776183128357, + 0.11056727170944214, + -0.028841275721788406, + -0.19478873908519745, + -0.031966038048267365, + 0.06778732687234879, + -0.05272502452135086, + -0.017331931740045547, + -0.030604835599660873, + -0.03833030164241791, + 0.030700307339429855, + 0.04406757280230522, + 0.04959128051996231, + 0.0025467961095273495, + 0.036366261541843414, + 0.06365272402763367, + -0.0035961742978543043, + 0.038380078971385956, + -0.0005476729711517692, + -0.06377257406711578, + -0.040321171283721924, + 0.10129543393850327, + -0.027603134512901306, + 0.0005738348118029535, + 0.04033486917614937, + -0.0038666005712002516, + 0.01028286200016737, + -0.07850514352321625, + -0.028521744534373283, + -0.005902342032641172, + -0.030111927539110184, + 0.062242597341537476, + 0.018771197646856308, + -0.023722808808088303, + 0.04266452044248581, + 0.016253197565674782, + -0.02212587371468544, + -0.051569223403930664, + -0.11230802536010742, + 0.15956172347068787, + 0.058610379695892334, + 0.01764579676091671, + -0.08062902092933655, + -0.08030031621456146, + 0.11157318204641342, + -0.020428361371159554, + -0.11070533841848373, + -0.029925629496574402, + 0.07958759367465973, + 0.1769854724407196, + -0.03261929750442505, + -0.03844251483678818, + 0.03673999011516571, + 0.10619242489337921, + 0.021103203296661377, + 0.09065048396587372, + 0.07233696430921555, + 0.07809402793645859, + -0.007173887919634581, + 0.02198970690369606, + 0.043946199119091034, + 0.06531546264886856, + 0.03806215897202492, + -0.02396574430167675, + 0.008523855358362198, + -0.0003651070292107761, + -0.039425112307071686, + 0.007121828384697437, + -0.02786560356616974, + -0.02154955267906189, + -0.02398958057165146, + -0.013112209737300873, + 0.00716791208833456, + -0.00997895561158657, + -0.029585793614387512, + 0.037681058049201965, + 0.018233096227049828, + -0.011726005002856255, + 0.08116354048252106, + 0.020696040242910385, + 0.0010887833777815104, + 0.05523429065942764, + -0.05894294008612633, + -0.08556370437145233, + 0.019801979884505272, + 0.018817182630300522, + 0.0012730273883789778, + 0.06652579456567764, + 0.04354375600814819, + -0.04097859561443329, + 0.12280085682868958, + 0.0563124418258667, + 0.011998578906059265, + 0.016338754445314407, + -0.10847403109073639, + 0.10571916401386261, + 0.10303105413913727, + -0.018500104546546936, + 0.057639554142951965, + -0.03330636024475098, + 0.07022090256214142, + 0.09000542014837265, + -0.14976483583450317, + -0.06731857359409332, + 0.005179397761821747, + 0.004760426934808493, + 0.004492407664656639, + 0.10216490924358368, + -0.008764456026256084, + 0.03062225878238678, + 0.10736056417226791, + -0.09608791768550873, + -0.06707940995693207, + -0.01942978985607624, + 0.047624245285987854, + -0.09213035553693771, + 0.05182105302810669, + 0.06826537847518921, + -0.016363760456442833, + 0.014646435156464577, + 0.06341733783483505, + -0.013831235468387604, + 0.0006679337238892913, + 0.014714477583765984, + -0.057459622621536255, + 0.004620720632374287, + -0.040540874004364014, + -0.013093220070004463, + 0.05659019201993942, + 0.056231118738651276, + 0.03017984889447689, + 0.008781541138887405, + -0.04713290184736252, + -0.10730623453855515, + 0.0018080560257658362, + 0.039404671639204025, + 0.0640001893043518, + -0.004524265415966511, + -0.01980147510766983, + -0.040244586765766144, + -0.06377777457237244, + 0.019537638872861862, + -0.006887010298669338, + 0.08165401220321655, + -0.015925323590636253, + 0.011493921279907227, + 0.09520278871059418, + 0.0398494154214859, + -0.015489242970943451, + -0.059635013341903687, + -0.03367886692285538, + 0.024076364934444427, + 0.031787239015102386, + -0.07955163717269897, + -0.064188152551651, + -0.004629002884030342, + 0.033348675817251205, + -0.030268795788288116, + 0.048232655972242355, + 0.0365501344203949, + 0.017679031938314438, + 0.031582847237586975, + -0.06808843463659286, + 0.03319443389773369, + -0.09929189085960388, + -0.0706048309803009, + 0.010325675830245018, + -0.021829819306731224, + -0.01639660820364952, + 0.07677091658115387, + 0.019103065133094788, + 0.030340274795889854, + -0.03465960547327995, + -0.07381446659564972, + -0.07497461140155792, + 0.059479884803295135, + 0.05848969146609306, + 0.007035806775093079, + 0.04001577943563461, + 0.04349610209465027, + -0.036494385451078415, + 0.06861573457717896, + 0.06017628312110901, + 0.10490620136260986, + -0.018062766641378403, + 0.019025573506951332, + -0.06426830589771271, + 0.07456734776496887, + 0.08552327752113342, + -0.08499103784561157, + -0.09438055008649826, + -0.0479549877345562, + -0.06438026577234268, + 0.06781607121229172, + 0.0005342429503798485, + 0.000799510336946696, + 0.017691489309072495, + -0.024699386209249496, + -0.09493192285299301, + -0.0831979364156723, + 0.09308241307735443, + -0.03512897342443466, + -0.020412854850292206, + -0.06987360864877701, + 0.051389843225479126, + 0.07810716331005096, + 0.028827784582972527, + -9.47900116443634e-05, + -0.007626057602465153, + 0.03066258132457733, + -0.06585600972175598, + -0.008351843804121017, + 0.040980204939842224, + 0.024061432108283043, + -0.09204276651144028, + 0.010062674060463905, + -0.09098725020885468, + 0.07235553860664368, + -0.04125840216875076, + 0.16192816197872162, + -0.00015349453315138817, + -0.046393897384405136, + -0.09159310907125473, + 0.034498684108257294, + -0.029201602563261986, + 0.046501275151968, + 0.040973108261823654, + 0.05589176341891289, + 0.037237588316202164, + -0.06892435997724533, + 0.09393317997455597, + 0.02951010689139366, + -0.036253638565540314, + -0.05330682545900345, + -0.04663770645856857, + -0.04110775142908096, + 0.001878537004813552, + -0.03317738324403763, + -0.08862005174160004, + -0.0120218051597476, + 0.013715273700654507, + 0.0009218305349349976, + 0.07436086982488632, + 0.12232868373394012, + 0.05545676499605179, + -0.11029675602912903 + ] + }, + "p244_270.wav": { + "name": "p244", + "embedding": [ + 0.06799270212650299, + 0.06986050307750702, + -0.030308954417705536, + 0.009406200610101223, + -0.0280753206461668, + 0.04757925122976303, + -0.15357211232185364, + 0.07828021049499512, + -0.025264710187911987, + 0.14144983887672424, + -0.08151759207248688, + 0.08363526314496994, + -0.038718331605196, + -0.1377076953649521, + -0.035343438386917114, + 0.03952331840991974, + -0.038099486380815506, + -0.026263367384672165, + -0.03320247679948807, + -0.04013172537088394, + 0.035255067050457, + 0.04455157741904259, + 0.03481442481279373, + -0.02171032503247261, + 0.013106733560562134, + 0.05328827351331711, + -0.006691508926451206, + 0.004149415530264378, + -0.0027372678741812706, + -0.015064834617078304, + 0.015518597327172756, + 0.0787128284573555, + -0.025712989270687103, + 0.008137466385960579, + 0.027371030300855637, + 0.04111115634441376, + -0.00980415754020214, + -0.07554060220718384, + -0.002641502767801285, + 0.027434928342700005, + -0.04423069208860397, + 0.07521319389343262, + 0.05543341860175133, + -0.029544582590460777, + 0.013403094373643398, + -0.02985316514968872, + -0.022139674052596092, + -0.028378035873174667, + -0.08750086277723312, + 0.17022018134593964, + 0.049229517579078674, + 0.04327505826950073, + -0.08021430671215057, + -0.02661857381463051, + 0.10918998718261719, + 0.002991946181282401, + -0.08516161143779755, + -0.05540993809700012, + 0.04097442328929901, + 0.14431564509868622, + -0.03581167757511139, + -0.05663484334945679, + 0.014659020118415356, + 0.09168395400047302, + 0.02321115881204605, + 0.05371744930744171, + 0.10288208723068237, + 0.10380702465772629, + -0.004797391593456268, + 0.00024840733385644853, + 0.07075881958007812, + 0.06166936084628105, + 0.04630058631300926, + -0.030442573130130768, + 0.02644006535410881, + -0.02474067732691765, + -0.027147820219397545, + 0.013351775705814362, + -0.00498542096465826, + -0.05953351780772209, + -0.018255535513162613, + -0.022663993760943413, + 0.009124348871409893, + 0.04385858029127121, + -0.048377107828855515, + -0.00128183513879776, + 0.055021341890096664, + -0.04844118282198906, + 0.06293805688619614, + 0.05118151754140854, + 0.004495254717767239, + 0.017500076442956924, + -0.05158805102109909, + -0.08397918939590454, + 0.0215607937425375, + -1.3715277418668848e-05, + 0.029940873384475708, + 0.04640599340200424, + 0.04902661591768265, + -0.001838482916355133, + 0.09337493032217026, + 0.036085344851017, + 0.0014516152441501617, + -0.008137430064380169, + -0.08914171904325485, + 0.10762730240821838, + 0.11927849054336548, + -0.03658577427268028, + 0.030142251402139664, + -0.0354972742497921, + 0.031178509816527367, + 0.056456953287124634, + -0.10893867909908295, + -0.05645158514380455, + 0.04027913138270378, + 0.048129916191101074, + 0.03372490406036377, + 0.11904533207416534, + 0.0066388314589858055, + 0.006417814642190933, + 0.09890909492969513, + -0.06482607126235962, + -0.05654880031943321, + -0.03464934229850769, + 0.029620913788676262, + -0.06323816627264023, + 0.040416471660137177, + 0.05517037957906723, + 0.0026294346898794174, + -0.012145090848207474, + 0.06144228205084801, + 0.004542961250990629, + 0.001486417604610324, + -0.04767225310206413, + 0.0011693686246871948, + 0.058297790586948395, + -0.0051822843961417675, + 0.001652231439948082, + 0.06307755410671234, + 0.04204031452536583, + 0.060373857617378235, + 0.04696718603372574, + -0.02939853072166443, + -0.1203867718577385, + 0.017689043655991554, + 0.05398954078555107, + 0.045486174523830414, + -0.039891310036182404, + -0.02353554219007492, + -0.029192402958869934, + -0.06690873205661774, + 0.04063386097550392, + -0.023980434983968735, + 0.09611372649669647, + 0.019894331693649292, + -0.008288721553981304, + 0.11201837658882141, + -0.011443797498941422, + -0.0014377329498529434, + -0.029375141486525536, + 0.0017132697394117713, + 0.012996098026633263, + 0.037378232926130295, + -0.1013718992471695, + -0.06755703687667847, + -0.02031397819519043, + 0.03224779665470123, + 0.0060243732295930386, + 0.016036614775657654, + 0.061923276633024216, + -0.017473440617322922, + 0.03167106211185455, + -0.05162401497364044, + 0.014683408662676811, + -0.09121719002723694, + -0.040306106209754944, + 0.010868720710277557, + -0.061787452548742294, + 0.0035548019222915173, + 0.09469505399465561, + 0.0020755156874656677, + 0.021223535761237144, + -0.04330555722117424, + -0.08449256420135498, + -0.05020967125892639, + 0.05761520192027092, + 0.05676736682653427, + -0.023077700287103653, + 0.004592872224748135, + 0.06153615564107895, + 0.017525020986795425, + 0.019843533635139465, + 0.04900500923395157, + 0.10481980443000793, + -0.055756598711013794, + -0.015864495187997818, + -0.04481380432844162, + 0.08426442742347717, + 0.0744682177901268, + -0.07107919454574585, + -0.06658408045768738, + -0.06271475553512573, + -0.0548674538731575, + 0.015327002853155136, + -0.03906814754009247, + 0.007808073423802853, + 0.007038188632577658, + -0.03538782522082329, + -0.09278490394353867, + -0.10324453562498093, + 0.05112820118665695, + -0.02323496900498867, + 0.010151720605790615, + -0.07668624818325043, + 0.0360274463891983, + 0.044782306998968124, + 0.04083431512117386, + -0.021566664800047874, + 0.03244791179895401, + -0.00563589483499527, + -0.059588849544525146, + -0.0204447191208601, + 0.019399069249629974, + 0.027902822941541672, + -0.0801028311252594, + -0.027346324175596237, + -0.08761890977621078, + 0.08654701709747314, + -0.05193805322051048, + 0.10969868302345276, + 0.004548600409179926, + -0.03667440637946129, + -0.06438678503036499, + -0.005068215541541576, + -0.029014956206083298, + 0.05610468611121178, + 0.06325861811637878, + 0.04696780443191528, + 0.027549726888537407, + -0.05382007360458374, + 0.08028334379196167, + 0.06447622179985046, + -0.0007913423469290137, + -0.06454464048147202, + -0.00570499524474144, + -0.02104426920413971, + 0.026596155017614365, + -0.011489320546388626, + -0.04393615573644638, + 0.025307562202215195, + 0.011626522056758404, + 0.0023843436501920223, + 0.04302237555384636, + 0.07981114834547043, + 0.06109225004911423, + -0.08637422323226929 + ] + }, + "p244_173.wav": { + "name": "p244", + "embedding": [ + 0.07176820933818817, + 0.09407888352870941, + -0.011364780366420746, + 0.010159902274608612, + -0.016106361523270607, + 0.05601426213979721, + -0.15782994031906128, + 0.10752272605895996, + -0.01731758937239647, + 0.16062405705451965, + -0.0568208247423172, + 0.10075299441814423, + -0.006862226873636246, + -0.1627231240272522, + -0.005759446881711483, + 0.04793665558099747, + -0.022647885605692863, + -0.01614522375166416, + -0.012670285999774933, + -0.011533843353390694, + 0.0270843468606472, + 0.06354396045207977, + 0.02789982780814171, + -0.04641401022672653, + 0.04943964257836342, + 0.07072983682155609, + -0.026536909863352776, + 0.020545681938529015, + -0.03066398948431015, + -0.09755146503448486, + -0.028680959716439247, + 0.09456484019756317, + -0.0629541426897049, + 0.004870763048529625, + 0.010024232789874077, + 0.0037586414255201817, + -0.009080039337277412, + -0.07031209766864777, + 0.003934313543140888, + 0.006634276360273361, + -0.026572339236736298, + 0.07697838544845581, + 0.008321565575897694, + -0.028096474707126617, + 0.018405137583613396, + 0.008620363660156727, + 0.015106569975614548, + -0.046957701444625854, + -0.09293113648891449, + 0.1733725517988205, + 0.040017981082201004, + 0.018934788182377815, + -0.0762978121638298, + -0.06529507786035538, + 0.05791374295949936, + 0.011339535936713219, + -0.07870632410049438, + -0.026602882891893387, + 0.06393817067146301, + 0.12505125999450684, + -0.01607131026685238, + -0.06907400488853455, + 0.05594916269183159, + 0.09082278609275818, + 0.031827427446842194, + 0.06660838425159454, + 0.08085164427757263, + 0.08245068043470383, + -0.014189053326845169, + -0.0047857495956122875, + 0.023275600746273994, + 0.06424253433942795, + 0.06848644465208054, + -0.019990667700767517, + 0.022112617269158363, + -0.02770320326089859, + -0.03607051074504852, + -0.02559647522866726, + -0.015543723478913307, + -0.043046653270721436, + 0.010368452407419682, + -0.023759517818689346, + 0.0066072107292711735, + 0.047005683183670044, + -0.03279145061969757, + -0.00031907856464385986, + 0.06352050602436066, + -0.03349427133798599, + 0.0873803198337555, + 0.03147701919078827, + 0.047228965908288956, + 0.04499738663434982, + -0.0993172824382782, + -0.05194021761417389, + 0.0814802423119545, + 0.02768086828291416, + 0.021833667531609535, + 0.06721874326467514, + 0.06602063030004501, + -0.026171432808041573, + 0.11556895077228546, + 0.01782584935426712, + 0.006803395226597786, + -0.01679006777703762, + -0.0866253674030304, + 0.1195625513792038, + 0.10142633318901062, + -0.03202471882104874, + 0.05930221080780029, + -0.05675867572426796, + 0.03749794512987137, + 0.061748430132865906, + -0.1386668086051941, + -0.07783924788236618, + 0.01595931686460972, + -0.004411232192069292, + -0.0006495704874396324, + 0.12575292587280273, + 0.01999078318476677, + 0.029421869665384293, + 0.07984790951013565, + -0.12089603394269943, + -0.07428208738565445, + -0.014167513698339462, + 0.04148555174469948, + -0.13301032781600952, + 0.07904093712568283, + 0.07656114548444748, + -0.027148105204105377, + 0.017414215952157974, + 0.05377041548490524, + -0.007800941821187735, + 0.03367157652974129, + -0.041114598512649536, + -0.004928048234432936, + 0.0014044824056327343, + -0.03247660771012306, + -0.011709107086062431, + -0.007882753387093544, + 0.0020699799060821533, + 0.04860632121562958, + -0.009369758889079094, + -0.031571898609399796, + -0.1366378366947174, + 0.02385927364230156, + 0.04236344248056412, + 0.04399466887116432, + -0.026446310803294182, + -0.03849812597036362, + -0.029361609369516373, + -0.06658098101615906, + 0.01916542835533619, + -0.027384649962186813, + 0.049863725900650024, + 0.026535917073488235, + 0.0006802743300795555, + 0.1292160153388977, + 0.04050588980317116, + 0.008325567469000816, + -0.034439072012901306, + -0.0182051844894886, + 0.035081617534160614, + 0.03761845454573631, + -0.08179673552513123, + -0.07960256934165955, + -0.035053886473178864, + 0.0015208013355731964, + 0.00039042532444000244, + 0.07526734471321106, + 0.06694494932889938, + 0.02038998156785965, + 0.00393206812441349, + -0.07140673696994781, + 0.015561315231025219, + -0.07188624143600464, + -0.07797953486442566, + -0.0011919899843633175, + -0.038577593863010406, + -0.023005720227956772, + 0.11078164726495743, + 0.011829000897705555, + 0.030275991186499596, + -0.09112456440925598, + -0.03231711685657501, + -0.0775674432516098, + 0.03312600031495094, + 0.06938186287879944, + -0.027957189828157425, + -0.005439095199108124, + 0.03145615756511688, + -0.01234870683401823, + 0.04460148513317108, + 0.06083906441926956, + 0.10649219155311584, + -0.031135428696870804, + 0.01706313155591488, + -0.04707447439432144, + 0.10066907107830048, + 0.09728628396987915, + -0.0434102863073349, + -0.06789210438728333, + -0.027286015450954437, + -0.09110747277736664, + 0.024142339825630188, + -0.01407662034034729, + 0.010439066216349602, + 0.027954814955592155, + -0.0264646764844656, + -0.09735719859600067, + -0.10639109462499619, + 0.06820908188819885, + -0.03417264297604561, + -0.01120026409626007, + -0.09239445626735687, + 0.07127836346626282, + 0.05764802545309067, + 0.062376610934734344, + -0.02964300662279129, + -0.021027889102697372, + 0.01798599399626255, + -0.023972038179636, + 0.019715020433068275, + 0.055095501244068146, + 0.04365352541208267, + -0.10191469639539719, + 0.0012429035268723965, + -0.0725974589586258, + 0.06259524077177048, + -0.05908035486936569, + 0.12826167047023773, + 0.019626274704933167, + -0.055374495685100555, + -0.09822532534599304, + 0.0451180674135685, + -0.012566395103931427, + 0.038176268339157104, + 0.025728680193424225, + 0.03536828234791756, + 0.07543665915727615, + -0.08609627932310104, + 0.05570127069950104, + 0.056159213185310364, + 0.008486177772283554, + -0.07039356976747513, + -0.06544645130634308, + -0.027505137026309967, + 0.05889352411031723, + -0.014390192925930023, + -0.08508481085300446, + -0.002448371611535549, + 0.04183949902653694, + 0.04390355199575424, + 0.05432435870170593, + 0.11898042261600494, + 0.014156199991703033, + -0.1298334300518036 + ] + }, + "p244_212.wav": { + "name": "p244", + "embedding": [ + 0.04926248639822006, + 0.09347432851791382, + -0.02989881858229637, + 0.04287482425570488, + -0.07121097296476364, + 0.06113899499177933, + -0.12194943428039551, + 0.1443902850151062, + -0.026454035192728043, + 0.12350095808506012, + -0.06389691680669785, + 0.13769842684268951, + -0.010839363560080528, + -0.1748703420162201, + -0.009052792564034462, + 0.051553875207901, + -0.03032657504081726, + -0.027276592329144478, + -0.01762459985911846, + -0.02490421012043953, + 0.04523976519703865, + 0.026174617931246758, + 0.042886923998594284, + -0.0011535920202732086, + 0.02268734574317932, + 0.06813979893922806, + -0.008159923367202282, + 0.03383906930685043, + 0.012882075272500515, + -0.04250115901231766, + -0.05369354039430618, + 0.09711077809333801, + -0.04795306175947189, + 0.005942797288298607, + 0.04737791419029236, + -0.029083454981446266, + -0.016851384192705154, + -0.06789243221282959, + -0.015624778345227242, + -0.004724005237221718, + -0.03770575299859047, + 0.07108642160892487, + 0.03683258593082428, + -0.04691920056939125, + 0.040689773857593536, + 0.0017856033518910408, + -0.025633830577135086, + -0.022076554596424103, + -0.1124044805765152, + 0.1485075056552887, + 0.08334562182426453, + 0.004351007752120495, + -0.06874970346689224, + -0.04564416781067848, + 0.10296206921339035, + 0.011801138520240784, + -0.10092521458864212, + -0.02880946546792984, + 0.06590692698955536, + 0.14732694625854492, + -0.017298776656389236, + -0.01934986189007759, + 0.03992252051830292, + 0.12292594462633133, + 0.05581901967525482, + 0.08670341968536377, + 0.08431488275527954, + 0.12420819699764252, + -0.02458467148244381, + 0.036521416157484055, + 0.04772704094648361, + 0.08484551310539246, + 0.03571600466966629, + -0.013911524787545204, + 0.016172481700778008, + -0.01837928779423237, + -0.022812267765402794, + -0.011723371222615242, + -0.03292742371559143, + -0.041716281324625015, + -0.014236153103411198, + -0.0020793424919247627, + 0.022282516583800316, + 0.028689857572317123, + -0.03425309807062149, + 0.06377941370010376, + 0.05432802066206932, + -0.014670338481664658, + 0.05781891196966171, + 0.02322547324001789, + 0.0008584093884564936, + 0.06046289950609207, + -0.0935458093881607, + -0.09158241748809814, + 0.03851895034313202, + 0.009966236539185047, + 0.03802908957004547, + 0.09636756032705307, + 0.04850156977772713, + -0.015959028154611588, + 0.11254779249429703, + 0.06478337943553925, + -0.009102988056838512, + 0.024678101763129234, + -0.07216702401638031, + 0.13344532251358032, + 0.09953349828720093, + -0.028674017637968063, + 0.05954040586948395, + -0.05857591703534126, + 0.08252397179603577, + 0.0627819150686264, + -0.12963241338729858, + -0.059737276285886765, + 0.015851616859436035, + 0.010762259364128113, + -0.021799711510539055, + 0.12426159530878067, + 0.009573590941727161, + 0.05866051837801933, + 0.10245257616043091, + -0.09398536384105682, + -0.06916390359401703, + -0.03563554212450981, + 0.053915515542030334, + -0.0720360055565834, + 0.06783805042505264, + 0.05705127865076065, + -0.016505202278494835, + 0.008189246989786625, + 0.05618195980787277, + -0.018990276381373405, + 0.005063587799668312, + 0.04427889734506607, + -0.055357616394758224, + 0.021597588434815407, + -0.029596343636512756, + 0.007059850730001926, + 0.038379229605197906, + 0.018356427550315857, + 0.04641779139637947, + -0.017772115767002106, + 0.005433990154415369, + -0.10581168532371521, + 0.018909212201833725, + 0.041864145547151566, + 0.08023247122764587, + -0.00948785524815321, + -0.04590172320604324, + -0.027374034747481346, + -0.07832708954811096, + 0.009802371263504028, + -0.015804335474967957, + 0.05598200112581253, + -0.02208850346505642, + 0.006917305290699005, + 0.07315942645072937, + 0.038381580263376236, + -0.002510452875867486, + -0.053397759795188904, + -0.03993199020624161, + 0.026768989861011505, + 0.04826163500547409, + -0.0876753032207489, + -0.07765023410320282, + -0.01559979934245348, + 0.017758280038833618, + -0.043765634298324585, + 0.0477977991104126, + 0.044568829238414764, + 0.023309417068958282, + 0.022982459515333176, + -0.07431454956531525, + 0.014876702800393105, + -0.09874092042446136, + -0.06252795457839966, + -0.013873577117919922, + -0.010914936661720276, + -0.023025624454021454, + 0.07346211373806, + 0.028459902852773666, + 0.06103762984275818, + -0.012941684573888779, + -0.03182506188750267, + -0.0742461234331131, + 0.04373345524072647, + 0.04771711304783821, + -0.0023526393342763186, + 0.055207058787345886, + 0.06242801249027252, + -0.032313913106918335, + 0.03726121038198471, + 0.05519833415746689, + 0.08633619546890259, + -0.02889649197459221, + -0.0041061509400606155, + -0.08075399696826935, + 0.08854243159294128, + 0.11216777563095093, + -0.09398438781499863, + -0.08515109121799469, + -0.046981871128082275, + -0.07143368571996689, + 0.02817981131374836, + -0.04188070446252823, + -0.008412213064730167, + 0.024546276777982712, + -0.006018579937517643, + -0.11036016047000885, + -0.09961618483066559, + 0.09249331057071686, + -0.07802318036556244, + -0.0007111175800673664, + -0.088178351521492, + 0.04190279543399811, + 0.10098787397146225, + 0.012273182161152363, + -0.05088677257299423, + -0.013336263597011566, + 0.049407146871089935, + -0.022840479388833046, + 0.01786416582763195, + 0.05521143227815628, + 0.058342739939689636, + -0.11871907860040665, + -0.0011970819905400276, + -0.05556679144501686, + 0.037498194724321365, + -0.05119210481643677, + 0.15708871185779572, + 0.021797113120555878, + -0.042812660336494446, + -0.08902624249458313, + 0.06639361381530762, + 2.842256799340248e-05, + 0.038995031267404556, + 0.03430986404418945, + 0.057846926152706146, + 0.015145277604460716, + -0.10340934246778488, + 0.1268310844898224, + 0.02518150396645069, + -0.03879963606595993, + -0.08295939862728119, + -0.02969885803759098, + -0.03879639133810997, + 0.03559086471796036, + 0.018966900184750557, + -0.08289770036935806, + -0.036304399371147156, + 0.02229735255241394, + -0.0009657228365540504, + 0.06664615869522095, + 0.14926570653915405, + 0.06402461975812912, + -0.10259199142456055 + ] + }, + "p244_297.wav": { + "name": "p244", + "embedding": [ + 0.07629692554473877, + 0.019971350207924843, + -0.03802793100476265, + -0.006920741870999336, + -0.012514205649495125, + 0.008400335907936096, + -0.1661592721939087, + 0.05450918525457382, + -0.005334441550076008, + 0.1383333057165146, + -0.04782237857580185, + 0.09122902154922485, + 0.05695922300219536, + -0.11926629394292831, + -0.026478007435798645, + -0.0032569197937846184, + -0.0037452802062034607, + -0.01487928256392479, + -0.03494531288743019, + -0.03976662829518318, + 0.018306411802768707, + 0.0729287788271904, + 0.018423713743686676, + -0.02867380529642105, + 0.022599918767809868, + 0.03466223552823067, + 0.016785111278295517, + 0.03369872644543648, + -0.012988896109163761, + -0.0051640113815665245, + 0.03835226222872734, + 0.09454752504825592, + -0.03953073173761368, + -0.015669522807002068, + 0.0002562357112765312, + -0.0037231799215078354, + 0.010481055825948715, + -0.06576351821422577, + -0.031258899718523026, + 0.060968827456235886, + -0.026809804141521454, + 0.08423973619937897, + 0.07316368818283081, + 0.03806396946310997, + -0.015905175358057022, + 0.007131893187761307, + -0.015634985640645027, + -0.04342108592391014, + -0.07481781393289566, + 0.17867104709148407, + 0.059898246079683304, + 0.01981240138411522, + -0.08707676827907562, + -0.014873607084155083, + 0.05679138004779816, + -0.020422862842679024, + -0.042762722820043564, + -0.03297768533229828, + 0.023651596158742905, + 0.11516857147216797, + -0.011122106574475765, + -0.061041586101055145, + 0.03531097620725632, + 0.0985541045665741, + 0.026169762015342712, + -0.0008743098005652428, + 0.10756926238536835, + 0.09035806357860565, + -0.022079408168792725, + 0.0003854893147945404, + 0.027243316173553467, + 0.04686136543750763, + 0.03756828233599663, + -0.057963777333498, + 0.0463244803249836, + 0.017470043152570724, + -0.002822326496243477, + -0.009697090834379196, + -0.0333847813308239, + -0.030203914269804955, + 0.029083535075187683, + -0.007038524374365807, + 0.014345266856253147, + 0.10834480077028275, + -0.12180013209581375, + 0.0009901653975248337, + 0.02897222340106964, + -0.039978988468647, + 0.06123960018157959, + 0.04182210564613342, + 0.05178956314921379, + 0.0012031756341457367, + -0.04275290668010712, + -0.041629284620285034, + 0.04267159476876259, + 0.001502116210758686, + 0.026989420875906944, + 0.03683321550488472, + 0.03040151484310627, + -0.02361932024359703, + 0.0913555696606636, + 0.0122599545866251, + -0.04111108183860779, + -0.03137291222810745, + -0.05846916139125824, + 0.09025005996227264, + 0.10722416639328003, + -0.04756893217563629, + 0.010950114578008652, + -0.00423665065318346, + -0.0002347724512219429, + 0.003550526686012745, + -0.10134103894233704, + -0.062464095652103424, + 0.07700498402118683, + 0.08343572914600372, + 0.04594942554831505, + 0.12246283888816833, + 0.021112067624926567, + 0.045787788927555084, + 0.05157501623034477, + -0.00040265917778015137, + -0.03345586359500885, + -0.01539759524166584, + 0.028891535475850105, + -0.07772502303123474, + 0.029788680374622345, + 0.0491885244846344, + -0.0067960843443870544, + -0.049767691642045975, + 0.08093934506177902, + 0.007673865184187889, + 0.01841999962925911, + -0.0654219314455986, + 0.06309318542480469, + 0.09555287659168243, + 0.01710500940680504, + 0.01704421639442444, + 0.003249748144298792, + 0.008811423555016518, + 0.055022697895765305, + 0.054727066308259964, + -0.054593898355960846, + -0.14069455862045288, + 0.03490566834807396, + 0.030424585565924644, + 0.04977791756391525, + -0.06496742367744446, + -0.047632452100515366, + -0.05405411124229431, + -0.002910137176513672, + 0.005666239187121391, + -0.01811882108449936, + 0.04784992337226868, + 0.03455706685781479, + -0.039973221719264984, + 0.1071385070681572, + -0.06219460070133209, + -0.004876335151493549, + 0.02228272147476673, + 0.0539839044213295, + -0.008913730271160603, + 0.03449740260839462, + -0.036798641085624695, + -0.04819076135754585, + 0.01632244884967804, + 0.039813846349716187, + 0.030323179438710213, + 0.01755298301577568, + 0.04531760513782501, + -0.04706723988056183, + 0.03339900076389313, + -0.07254259288311005, + -0.01250685378909111, + -0.06893104314804077, + -0.0036847665905952454, + 0.025534726679325104, + -0.03282387554645538, + -0.04400666430592537, + 0.06764364242553711, + 0.02060113474726677, + 0.05287296324968338, + -0.05018552392721176, + -0.07889688014984131, + -0.02753717079758644, + 0.025382716208696365, + 0.08142886310815811, + -0.06796963512897491, + -0.005324011668562889, + 0.0546257346868515, + 0.034353598952293396, + 0.02660982683300972, + 0.07399705797433853, + 0.03870521858334541, + -0.04743567481637001, + -0.025365836918354034, + -0.012146467342972755, + 0.11036759614944458, + 0.01119477953761816, + -0.0339694581925869, + -0.03719257563352585, + -0.03000205010175705, + -0.06114179641008377, + 0.010866746306419373, + 0.04313436895608902, + 0.04434502124786377, + 0.062102459371089935, + -0.016348928213119507, + -0.08330464363098145, + -0.052538808435201645, + 0.011660106480121613, + -0.0668366402387619, + 2.127978950738907e-05, + -0.04786863550543785, + 0.01919173076748848, + 0.05848894268274307, + 0.06234728917479515, + -0.0020749401301145554, + -0.0330393947660923, + -0.032533567398786545, + -0.07975277304649353, + -0.027455519884824753, + 0.019928976893424988, + 0.03278620168566704, + -0.08646176755428314, + -0.016873378306627274, + -0.09054318070411682, + 0.06774342060089111, + -0.06268683075904846, + 0.033310286700725555, + 0.048422921448946, + -0.04793819412589073, + -0.06293939054012299, + -0.034452885389328, + -0.030322391539812088, + 0.060948535799980164, + 0.057113468647003174, + 0.02951253205537796, + 0.04063909128308296, + -0.06381344050168991, + 0.053798358887434006, + 0.09327006340026855, + -0.011326191015541553, + -0.0931345596909523, + 8.282624185085297e-05, + 0.024634400382637978, + 0.03995777666568756, + 0.062418267130851746, + -0.023690296337008476, + 0.017248474061489105, + 0.03683752566576004, + -0.05682305991649628, + 0.03897673264145851, + 0.05409426987171173, + 0.05446132645010948, + -0.12581440806388855 + ] + }, + "p244_208.wav": { + "name": "p244", + "embedding": [ + 0.05125076323747635, + 0.11419150233268738, + -0.025501761585474014, + 0.026101000607013702, + -0.008544359356164932, + 0.06391303241252899, + -0.11612982302904129, + 0.08943429589271545, + -0.051306888461112976, + 0.12412339448928833, + -0.0921008288860321, + 0.09335722029209137, + -0.0444030836224556, + -0.11974431574344635, + -0.03559380769729614, + 0.03892037272453308, + -0.024653399363160133, + -0.009654968976974487, + -0.027000732719898224, + 0.013440657407045364, + 0.01123119704425335, + 0.0397481694817543, + 0.027141539379954338, + -0.03496481478214264, + 0.057529255747795105, + 0.051261916756629944, + 0.014046593569219112, + 0.05508347228169441, + 0.009758812375366688, + -0.03700024634599686, + -0.016322080045938492, + 0.0984763503074646, + -0.058843642473220825, + 0.012739856727421284, + 0.03934529796242714, + 0.04367176815867424, + 0.0019126555416733027, + -0.06717853993177414, + -0.00011252891272306442, + -0.0013750223442912102, + -0.04891732707619667, + 0.0629829615354538, + 0.01425075065344572, + -0.04114707559347153, + 0.004804631229490042, + 0.02511514350771904, + 0.024984922260046005, + -0.05233056843280792, + -0.09256522357463837, + 0.13978534936904907, + 0.007139792665839195, + 0.029415536671876907, + -0.07998111099004745, + -0.08232612907886505, + 0.08668428659439087, + 0.009077733382582664, + -0.06827464699745178, + -0.03016751818358898, + 0.0566578209400177, + 0.1562870293855667, + -0.021291103214025497, + -0.03526361286640167, + 0.021431736648082733, + 0.07608122378587723, + 0.06751179695129395, + 0.08654499053955078, + 0.07225680351257324, + 0.08797501027584076, + 0.03173702582716942, + 0.012589674443006516, + 0.06281158328056335, + 0.05196135491132736, + 0.04360462725162506, + -0.0199274979531765, + -0.00046735070645809174, + -0.0003736445214599371, + -0.04351101815700531, + 0.02821057289838791, + -0.0018056074623018503, + -0.05079984664916992, + -0.002817056141793728, + 0.004377659875899553, + 0.001524798572063446, + 0.028849530965089798, + -0.027030812576413155, + 0.037783533334732056, + 0.04753422737121582, + -0.0519958958029747, + 0.07566116005182266, + 0.0326567068696022, + -0.010243198834359646, + 0.03281642124056816, + -0.07016395032405853, + -0.08529186993837357, + 0.009472963400185108, + -0.0013765832409262657, + 0.001708323135972023, + 0.07339968532323837, + 0.05608911067247391, + -0.006538934540003538, + 0.09834583103656769, + 0.016034189611673355, + 0.03622647747397423, + 0.01470652874559164, + -0.0769614726305008, + 0.10847531259059906, + 0.07698879390954971, + -0.028939982876181602, + 0.032963041216135025, + -0.02088911645114422, + 0.027025917544960976, + 0.09028632938861847, + -0.13116732239723206, + -0.08939984440803528, + 0.039894949644804, + 0.004922441206872463, + 0.005088046193122864, + 0.08056143671274185, + -0.0014945559669286013, + -0.0068378872238099575, + 0.09679040312767029, + -0.1027953177690506, + -0.07012687623500824, + -0.021615853533148766, + 0.05138783901929855, + -0.054190538823604584, + 0.039423245936632156, + 0.06339075416326523, + -0.013208101503551006, + -0.04085865616798401, + 0.06894146651029587, + 0.008153419941663742, + 0.020064057782292366, + 9.135343134403229e-05, + -0.014587385579943657, + 0.03393830358982086, + -0.03440434858202934, + -0.009682769887149334, + 0.04648035764694214, + 0.03619641438126564, + 0.051738858222961426, + 0.004564904607832432, + -0.034195683896541595, + -0.11797688156366348, + 0.010923285037279129, + 0.08597961813211441, + 0.05481487140059471, + -0.03411075472831726, + -0.03295685723423958, + -0.03991026058793068, + -0.05341802537441254, + 0.03717910498380661, + 0.014164534397423267, + 0.09592233598232269, + 0.005031134933233261, + -0.004775440786033869, + 0.13432247936725616, + -0.005793027579784393, + 0.00704911258071661, + -0.03959937393665314, + 0.0026470068842172623, + 0.02113662101328373, + 0.03298279270529747, + -0.058486148715019226, + -0.10803937166929245, + -0.007899343967437744, + 0.00174621120095253, + -0.011188600212335587, + 0.05900624021887779, + 0.03674301132559776, + 0.01179041713476181, + 0.028104089200496674, + -0.0358993224799633, + -0.010864193551242352, + -0.09579557180404663, + -0.04460500553250313, + -0.020270323380827904, + -0.032305702567100525, + -0.011009836569428444, + 0.09381204843521118, + 0.03437057510018349, + 0.032235510647296906, + -0.0011680247262120247, + -0.07181525230407715, + -0.05891504883766174, + 0.05968004837632179, + 0.06921112537384033, + 9.620329365134239e-05, + 0.01788141205906868, + 0.04756581783294678, + -0.002611130475997925, + 0.02369558997452259, + 0.07196229696273804, + 0.07695899158716202, + -0.01221809908747673, + -0.03209751099348068, + -0.058739446103572845, + 0.08297953754663467, + 0.05804389715194702, + -0.11153349280357361, + -0.06065557897090912, + -0.0368708074092865, + -0.05111505836248398, + 0.016518335789442062, + -0.02241358533501625, + 0.05150509998202324, + 0.003765938337892294, + -0.04792702943086624, + -0.07965269684791565, + -0.12038996815681458, + 0.06834189593791962, + -0.037262238562107086, + -0.028588397428393364, + -0.06584685295820236, + 0.028936758637428284, + 0.031042225658893585, + 0.05225653946399689, + 0.0010111918672919273, + 0.024980131536722183, + 0.03724896162748337, + -0.06834117323160172, + -0.020135698840022087, + 0.07245460152626038, + -0.001701096072793007, + -0.07039386034011841, + 0.020550265908241272, + -0.07188960909843445, + 0.10665726661682129, + -0.06960248947143555, + 0.15118984878063202, + -0.01805129647254944, + -0.07085611671209335, + -0.10296998918056488, + 0.017364734783768654, + -0.034966666251420975, + 0.034675318747758865, + 0.021118618547916412, + 0.046076975762844086, + 0.021706534549593925, + -0.04627785086631775, + 0.09942415356636047, + 0.03874754533171654, + -0.004360751248896122, + -0.06609224528074265, + -0.089366115629673, + -0.04460126906633377, + 0.033301226794719696, + -0.0055572260171175, + -0.05169789493083954, + 0.013971950858831406, + 0.016396237537264824, + 0.00987611897289753, + 0.04228082299232483, + 0.1234031617641449, + 0.060734257102012634, + -0.09420932829380035 + ] + }, + "p244_126.wav": { + "name": "p244", + "embedding": [ + 0.060276102274656296, + 0.10743342339992523, + 0.022987917065620422, + -0.021033264696598053, + -0.021439027041196823, + 0.07483284175395966, + -0.06769314408302307, + 0.09959492087364197, + -0.003704679664224386, + 0.06015157699584961, + -0.10082963109016418, + 0.08416327834129333, + -0.0033188601955771446, + -0.13983041048049927, + -0.02683335356414318, + 0.03296198695898056, + -0.039197247475385666, + 0.011853891424834728, + -0.028025781735777855, + -0.03097955510020256, + 0.0131643395870924, + 0.017187735065817833, + 0.055144302546978, + -0.004673599265515804, + 0.03625783324241638, + 0.04145725816488266, + 0.01909453794360161, + 0.0378464050590992, + 0.01077343337237835, + -0.036670975387096405, + -0.044595759361982346, + 0.07184606790542603, + -0.037301287055015564, + -0.006060857325792313, + 0.05372486636042595, + -0.021383030340075493, + 0.04996330291032791, + -0.08223645389080048, + -0.04609699174761772, + 0.033471666276454926, + -0.04277456924319267, + 0.06639231741428375, + 0.0306229367852211, + -0.006403905339539051, + 0.03139862045645714, + 0.04951004683971405, + -0.0010821273317560554, + -0.04407871887087822, + -0.07879745960235596, + 0.13030210137367249, + 0.03422272205352783, + 0.016165826469659805, + -0.0627593994140625, + -0.031019166111946106, + 0.08138328790664673, + -0.028556479141116142, + -0.04194782301783562, + 0.008330968208611012, + 0.051011376082897186, + 0.07240282744169235, + 0.010012256912887096, + -0.03621017187833786, + 0.03859952837228775, + 0.07630112022161484, + 0.012344986200332642, + 0.038448430597782135, + 0.09056162089109421, + 0.07001557946205139, + -0.009482350200414658, + 0.013522451743483543, + 0.04224702715873718, + 0.046314649283885956, + 0.03834046423435211, + -0.02975088357925415, + 0.03224742412567139, + -0.0036381403915584087, + -0.021601876243948936, + -0.006208098493516445, + -0.019239753484725952, + -0.006544872187077999, + 0.03382453694939613, + 0.02823467180132866, + 0.006495587527751923, + 0.010953640565276146, + -0.04835706949234009, + 0.04895298182964325, + -0.016508445143699646, + 0.07658147811889648, + 0.07289744913578033, + 0.027002310380339622, + 0.01608724519610405, + 0.029596593230962753, + -0.05557520315051079, + -0.08576392382383347, + 0.03198881819844246, + 0.016156647354364395, + -0.010536057874560356, + 0.035520993173122406, + 0.04566342383623123, + -0.031579237431287766, + 0.1086253970861435, + 0.03952968120574951, + -0.01291958149522543, + 0.01971152424812317, + -0.07607865333557129, + 0.06416411697864532, + 0.07246428728103638, + -0.01685943268239498, + 0.050458960235118866, + -0.01639564149081707, + 0.06503182649612427, + 0.06319156289100647, + -0.10356451570987701, + -0.052363067865371704, + 0.005080516450107098, + 0.01879105716943741, + 0.03251377493143082, + 0.08255527913570404, + -0.03586138039827347, + 0.03309435397386551, + 0.06900020688772202, + -0.049934666603803635, + -0.02494620904326439, + 0.015644891187548637, + 0.007722519338130951, + -0.02038024365901947, + 0.02241111546754837, + 0.03562706708908081, + 0.017094654962420464, + -0.04560891538858414, + 0.043694984167814255, + 0.0060726492665708065, + 0.005004418548196554, + -0.035136040300130844, + 0.007139201276004314, + -0.005530822090804577, + -0.020593177527189255, + -0.028182528913021088, + 0.01247173361480236, + 0.05715559050440788, + 0.006377595476806164, + 0.037852250039577484, + -0.043610453605651855, + -0.09432698786258698, + -0.0010650096228346229, + -0.009283925406634808, + 0.024017006158828735, + 0.02309003286063671, + -0.041179824620485306, + -0.052725329995155334, + 0.01539422757923603, + -0.0031656306236982346, + -0.004998265765607357, + 0.02614317461848259, + 0.04530863091349602, + -0.01980159431695938, + 0.06348380446434021, + 0.002737609203904867, + 0.007668794598430395, + -0.02342359535396099, + -0.04502991959452629, + 0.018195219337940216, + 0.03136162459850311, + -0.010419152677059174, + -0.07989799976348877, + -0.006481997203081846, + -0.03328252583742142, + -0.013683601282536983, + 0.03470136970281601, + 0.05236878618597984, + -0.0052366117015480995, + -0.00716061657294631, + -0.07312414050102234, + 0.0032258755527436733, + -0.07030171900987625, + -0.06507742404937744, + 0.025859151035547256, + 0.040030330419540405, + -0.017705120146274567, + 0.07526713609695435, + 0.032592982053756714, + 0.04028020054101944, + -0.03211855888366699, + -0.043448612093925476, + -0.0046804845333099365, + 0.048828691244125366, + 0.05837429687380791, + 0.01816587708890438, + 0.04255989193916321, + 0.031063003465533257, + -0.009992222301661968, + 0.06856922805309296, + 0.050552479922771454, + 0.04652805253863335, + -0.009125716984272003, + 0.009852642193436623, + 0.012126500718295574, + 0.06528227031230927, + 0.01505771093070507, + -0.0673830509185791, + -0.05860796198248863, + -0.0058288476429879665, + -0.04162576422095299, + 0.031100472435355186, + 0.03190494328737259, + 0.02960197627544403, + 0.026081394404172897, + -0.0081310560926795, + -0.04280052334070206, + -0.07205747812986374, + 0.028458010405302048, + -0.04414428770542145, + -0.026520688086748123, + -0.03470790013670921, + 0.051165830343961716, + 0.09821806848049164, + -0.006167824380099773, + -0.0010318731656298041, + -0.006127180065959692, + 0.0061864531598985195, + -0.012101506814360619, + -0.04184962809085846, + -0.0015382766723632812, + 0.03160073608160019, + -0.06789115071296692, + 0.03475356101989746, + -0.07483793795108795, + 0.05938262864947319, + -0.003016571281477809, + 0.0904371440410614, + 0.03648079186677933, + -0.02464001625776291, + -0.07144004106521606, + 0.025891322642564774, + -0.009742679074406624, + 0.03344042971730232, + 0.000156499445438385, + 0.014185163192451, + 0.02812061831355095, + -0.06517656147480011, + 0.06944935023784637, + 0.03066737949848175, + -0.07193551957607269, + -0.06680554151535034, + -0.009874850511550903, + -0.030184758827090263, + 0.0028842329047620296, + 0.0014550735941156745, + -0.053957514464855194, + -0.008624620735645294, + 0.023186035454273224, + 0.01699202135205269, + 0.0342695377767086, + 0.0812079906463623, + 0.014652922749519348, + -0.05705541372299194 + ] + }, + "p244_343.wav": { + "name": "p244", + "embedding": [ + 0.04048285260796547, + 0.050855204463005066, + -0.04111466184258461, + -0.01708024926483631, + -0.045686352998018265, + 0.041656494140625, + -0.1261962652206421, + 0.07455097138881683, + -0.005745976231992245, + 0.15562069416046143, + -0.02061404287815094, + 0.11013163626194, + 0.007303598336875439, + -0.10282115638256073, + 0.018437756225466728, + 0.024569332599639893, + -0.02578464150428772, + -0.004576869308948517, + -0.01225886307656765, + -0.07069813460111618, + 0.028024721890687943, + 0.030405886471271515, + 0.02746352180838585, + -0.06279630959033966, + 0.01839635893702507, + 0.06060687080025673, + -0.013895709998905659, + -0.004747550003230572, + -0.010169142857193947, + -0.07565844058990479, + -0.01652393490076065, + 0.08838427066802979, + -0.04680223390460014, + -0.016897987574338913, + 0.01990644633769989, + -0.017104018479585648, + -0.026446189731359482, + -0.03877663612365723, + 0.01733200065791607, + 0.04610736668109894, + -0.043801404535770416, + 0.08983806520700455, + 0.020851127803325653, + -0.013959072530269623, + 0.029988856986165047, + -0.05556454882025719, + -0.058505598455667496, + 0.0375538133084774, + -0.04095020890235901, + 0.11656245589256287, + 0.08041796088218689, + 0.0031306305900216103, + -0.06218336150050163, + -0.004902448505163193, + 0.057975783944129944, + 0.00917382724583149, + -0.10093078762292862, + -0.019349712878465652, + -0.009282464161515236, + 0.09114935994148254, + -0.001632831059396267, + -0.05908629298210144, + 0.031125348061323166, + 0.08755418658256531, + 0.02008543536067009, + 0.02993987500667572, + 0.09234490990638733, + 0.08019337058067322, + -0.014564476907253265, + 0.008977140299975872, + 0.03931872546672821, + 0.08820055425167084, + 0.05184897407889366, + -0.02005847916007042, + 0.04542212188243866, + -0.030288120731711388, + -0.012041673064231873, + -0.058913350105285645, + -0.010794056579470634, + -0.05675097927451134, + -0.053684256970882416, + -0.026349803432822227, + 0.010762011632323265, + 0.089112788438797, + -0.02302808128297329, + -0.027715425938367844, + 0.06155753880739212, + -0.05336911231279373, + 0.03030720353126526, + 0.047166936099529266, + 0.010137850418686867, + 0.011287245899438858, + -0.08667226880788803, + -0.05202798545360565, + 0.02901623025536537, + -0.010442557744681835, + 0.05318186804652214, + 0.05278075486421585, + 0.03072032891213894, + 0.007445366121828556, + 0.07861006259918213, + 0.06375391036272049, + 0.0005516544915735722, + -0.026715759187936783, + -0.06337056308984756, + 0.09740497171878815, + 0.10956341028213501, + -0.04964444041252136, + 0.0407428964972496, + -0.0003967657685279846, + 0.039645757526159286, + -0.01401291973888874, + -0.10797692835330963, + -0.03048950433731079, + 0.0006152484565973282, + 0.050987523049116135, + 0.030641769990324974, + 0.10672831535339355, + 0.029062816873192787, + 0.0520622543990612, + 0.07446759194135666, + -0.028189940378069878, + -0.05075071007013321, + -0.05501377955079079, + 0.03480115532875061, + -0.09697028249502182, + 0.06871119141578674, + 0.03955377638339996, + 0.027193769812583923, + 0.005783365108072758, + 0.07503387331962585, + 0.01007310301065445, + 0.009224120527505875, + -0.04262863099575043, + 0.006299678236246109, + 0.025967424735426903, + -0.006247186101973057, + 0.043900266289711, + 0.05639313906431198, + -0.008831813000142574, + 0.10313312709331512, + 0.033233642578125, + 0.010255120694637299, + -0.09374222904443741, + 0.04032016545534134, + 0.008093034848570824, + 0.04000284895300865, + -0.0517435185611248, + -0.032055214047431946, + 0.02673550881445408, + -0.0746106207370758, + -0.0048705581575632095, + -0.018290644511580467, + 0.061789728701114655, + 0.013421861454844475, + -0.016090987250208855, + 0.08622059971094131, + 0.015592485666275024, + -0.007235540077090263, + 0.018917901441454887, + -0.005323478952050209, + -0.0019005760550498962, + 0.07276856899261475, + -0.13172996044158936, + -0.06415256857872009, + -0.002425233833491802, + 0.01210082694888115, + 0.027545087039470673, + 0.02959677204489708, + 0.10955505073070526, + -0.03130568936467171, + 0.04264047369360924, + -0.011558061465620995, + -0.0036917943507432938, + -0.05989084765315056, + -0.05101752281188965, + -0.021976713091135025, + -0.08806974440813065, + -0.058260489255189896, + 0.0745333731174469, + -0.025795953348279, + 0.049068886786699295, + -0.052847445011138916, + -0.03229995444417, + -0.05956869199872017, + 0.022989457473158836, + 0.026988033205270767, + -0.04920592159032822, + -0.01300679799169302, + 0.10437968373298645, + 0.023749232292175293, + -0.02082212083041668, + 0.04441311955451965, + 0.07953150570392609, + -0.07751595228910446, + 0.0014803651720285416, + -0.0711224228143692, + 0.08944322168827057, + 0.09335390478372574, + -0.025321798399090767, + -0.06632337719202042, + -0.07104109972715378, + -0.06386034190654755, + 0.04492798447608948, + -0.04763428866863251, + -0.01699564978480339, + 0.032989297062158585, + -0.038258809596300125, + -0.05784458667039871, + -0.0793478935956955, + 0.08160287886857986, + -0.05243944376707077, + 0.0033914465457201004, + -0.052534617483615875, + 0.015824686735868454, + 0.02074095606803894, + 0.06124778836965561, + -0.0765281394124031, + 0.051489442586898804, + 0.033592574298381805, + -0.031927138566970825, + 0.021895835176110268, + 0.0362342894077301, + 0.03668513149023056, + -0.0640970841050148, + -0.05757332593202591, + -0.055847086012363434, + 0.037555575370788574, + -0.060103073716163635, + 0.05226214975118637, + 0.022088661789894104, + -0.036174941807985306, + -0.051780179142951965, + -0.00021217763423919678, + -0.016391150653362274, + 0.025964174419641495, + 0.09227732568979263, + 0.08194012194871902, + 0.03681248053908348, + -0.05572652444243431, + 0.05870746076107025, + 0.053479552268981934, + 0.031480200588703156, + -0.052254222333431244, + 0.017325764521956444, + -0.013203416019678116, + 0.04549732059240341, + 0.03555392101407051, + -0.06641463190317154, + 0.062012121081352234, + 0.003890520893037319, + 0.003987109288573265, + 0.028409229591488838, + 0.036373719573020935, + 0.04860718920826912, + -0.08962382376194 + ] + }, + "p244_072.wav": { + "name": "p244", + "embedding": [ + 0.05091477558016777, + 0.11082984507083893, + 0.051068346947431564, + -6.896443665027618e-05, + 0.004510428756475449, + 0.02594395913183689, + -0.04000703990459442, + 0.08396007865667343, + 0.05519246309995651, + 0.03307126834988594, + -0.09776068478822708, + 0.0557841882109642, + -0.061339594423770905, + -0.10850565135478973, + -0.00012551993131637573, + 0.030610868707299232, + -0.0343116819858551, + 0.0137474425137043, + -0.04527265951037407, + -0.0024438651744276285, + -0.024632621556520462, + -0.026822201907634735, + 0.02566588670015335, + 0.01287630945444107, + -0.020881423726677895, + 0.012098722159862518, + -0.032319575548172, + 0.012072020210325718, + -0.00538181746378541, + -0.008382931351661682, + 0.013652271591126919, + 0.04279010370373726, + -0.012426517903804779, + 0.010377652943134308, + 0.020282883197069168, + -0.02840505540370941, + 0.003805076703429222, + -0.03410978615283966, + -0.06279856711626053, + 0.04059663787484169, + -0.050617292523384094, + 0.04934890940785408, + 0.040801938623189926, + -0.04486571252346039, + 0.07830934226512909, + 0.04147917032241821, + -0.05824130028486252, + -0.005142692476511002, + -0.10169768333435059, + 0.09046393632888794, + 0.01140446774661541, + 0.012037391774356365, + -0.06532743573188782, + 0.013636242598295212, + 0.06930286437273026, + -0.040415309369564056, + -0.044998809695243835, + -0.028575116768479347, + 0.04460948333144188, + 0.024814743548631668, + 0.01968178153038025, + -0.020989829674363136, + -0.023300884291529655, + 0.02660304680466652, + 0.06825980544090271, + 0.02043815143406391, + 0.06954092532396317, + 0.0983593612909317, + -0.05290396884083748, + 0.028369782492518425, + 0.032488152384757996, + -0.0331563875079155, + 0.052240923047065735, + 0.002033014316111803, + -0.00991674792021513, + -0.015759840607643127, + 0.021839089691638947, + -0.021720899268984795, + 0.011581401340663433, + -0.0016735438257455826, + 0.0380132682621479, + 0.0005111955106258392, + 0.014836706221103668, + 0.026892144232988358, + -0.03513069450855255, + -0.009438976645469666, + 0.055736325681209564, + 0.060582391917705536, + 0.06524187326431274, + 0.05387242138385773, + -0.002449044259265065, + 0.07538674771785736, + -0.058331429958343506, + -0.07883276045322418, + -0.013998386450111866, + -0.024245578795671463, + 0.010735786519944668, + 0.012819748371839523, + 0.0171203650534153, + -0.0027646017260849476, + 0.08516664803028107, + 0.0024237781763076782, + 0.0030618617311120033, + 0.01611291989684105, + -0.07569067180156708, + 0.014593832194805145, + 0.03155166283249855, + -0.021580228582024574, + 0.04565523564815521, + 0.038734547793865204, + 0.05454707145690918, + 0.05893401801586151, + -0.026516977697610855, + 0.01660340465605259, + 0.010513239540159702, + 0.041991882026195526, + 0.020761560648679733, + 0.09022515267133713, + 0.00021610985277220607, + 0.03162631392478943, + 0.11191713809967041, + -0.05030633881688118, + 0.03419942408800125, + 0.0578744001686573, + -0.014067539945244789, + -0.007369965314865112, + 0.04264577478170395, + 0.007035624235868454, + 0.003830372355878353, + -0.009351001121103764, + 0.043671220541000366, + 0.029724854975938797, + -0.001637422014027834, + -0.06448015570640564, + 0.013684873469173908, + 0.016040632501244545, + 0.0004542004317045212, + -0.0029164364095777273, + 0.017174653708934784, + 0.05282069742679596, + -0.009367251768708229, + 0.048460058867931366, + -0.04815210774540901, + -0.03313309699296951, + 0.027842078357934952, + -0.005812202580273151, + 0.02107108384370804, + 0.04077579826116562, + -0.016027728095650673, + -0.059943415224552155, + 0.02154986746609211, + 0.05715598538517952, + -0.020085208117961884, + 0.051889996975660324, + 0.05069435387849808, + -0.014212406240403652, + 0.05441562086343765, + 0.014320979826152325, + 0.03053002804517746, + -0.054683975875377655, + -0.08944999426603317, + -0.023147616535425186, + 0.040887556970119476, + -0.06970347464084625, + -0.014076425693929195, + -0.02496548369526863, + -0.022463548928499222, + 0.018935494124889374, + 0.0006937161087989807, + 0.0747917890548706, + -0.030357692390680313, + -0.010939407162368298, + -0.050109103322029114, + 0.024446573108434677, + -0.005866717547178268, + -0.11105966567993164, + 0.051256075501441956, + 0.02396795153617859, + 0.028293127194046974, + 0.04782991111278534, + -0.0033507151529192924, + 0.013028092682361603, + -0.03827323392033577, + -0.06591889262199402, + 0.010163530707359314, + 0.04859050735831261, + 0.015476723201572895, + -0.010164043866097927, + 0.056660957634449005, + 0.04535314440727234, + -0.049201227724552155, + 0.05555194988846779, + -0.00920093059539795, + 0.05638732761144638, + -0.056285761296749115, + 0.01770615205168724, + 0.027490660548210144, + 0.029073908925056458, + 0.052364032715559006, + -0.04126725718379021, + -0.11722627282142639, + -0.021119151264429092, + -0.02100757136940956, + 0.0005582878366112709, + -0.0005367044359445572, + 0.0036107914056628942, + 0.048533424735069275, + -0.004896373022347689, + -0.007967781275510788, + -0.1081191897392273, + -0.003447897732257843, + 0.0002133697271347046, + 0.009057855233550072, + -0.034529320895671844, + 0.013528825715184212, + -0.00154181569814682, + 0.0035048341378569603, + -0.02506220154464245, + 0.02238447777926922, + 0.001650981605052948, + 0.013996691443026066, + -0.05007544159889221, + -0.005328020080924034, + 0.04637805372476578, + 0.007008839398622513, + -0.029255885630846024, + -0.05403870344161987, + 0.054928045719861984, + 0.045772429555654526, + 0.08533405512571335, + 0.031425803899765015, + 0.014947559684515, + -0.02466295287013054, + 0.012441747821867466, + -0.032198794186115265, + 0.029913613572716713, + -0.02174210734665394, + 0.028558528050780296, + 0.05295272916555405, + 0.007579335011541843, + 0.060258980840444565, + 0.03201170638203621, + -0.017680102959275246, + -0.01360813993960619, + -0.0015189871191978455, + -0.08491042256355286, + -0.028589241206645966, + -0.00767325796186924, + -0.03906512260437012, + -0.007060392759740353, + 0.012488571926951408, + 0.054467055946588516, + 0.03447853773832321, + 0.07207818329334259, + 0.020658820867538452, + -0.030700940638780594 + ] + }, + "p244_371.wav": { + "name": "p244", + "embedding": [ + 0.03227641433477402, + 0.07893455028533936, + -0.003008049912750721, + -0.02006196603178978, + -0.012401927262544632, + 0.020664788782596588, + -0.13638852536678314, + 0.07639500498771667, + -0.022286780178546906, + 0.1394807994365692, + -0.05815175175666809, + 0.09103092551231384, + -0.017967024818062782, + -0.13092158734798431, + -0.026399848982691765, + 0.03507838025689125, + -0.07203131169080734, + -0.009481187909841537, + -0.010336998850107193, + -0.06760882586240768, + 0.03291138634085655, + 0.006558132357895374, + 0.04447223246097565, + -0.06333409249782562, + -0.005651502870023251, + 0.06446963548660278, + 0.025199880823493004, + 0.015213461592793465, + 0.021492887288331985, + -0.025948047637939453, + 0.017750808969140053, + 0.06744347512722015, + -0.010210562497377396, + 0.007555130869150162, + 0.051741406321525574, + 0.0046320101246237755, + -0.013758942484855652, + -0.015026512555778027, + 0.022221513092517853, + 0.0648978129029274, + -0.03392181172966957, + 0.08260823786258698, + 0.04356994479894638, + 0.004897799808532, + 0.06078849732875824, + -0.0277726911008358, + -0.0462493970990181, + 0.01788242533802986, + -0.05303872004151344, + 0.1206045150756836, + 0.06604209542274475, + -0.004654387012124062, + -0.06057612597942352, + 0.010613691061735153, + 0.09292103350162506, + -0.0040059383027255535, + -0.1242314949631691, + -0.00563264824450016, + 0.03555014356970787, + 0.10576723515987396, + -0.03464776650071144, + -0.04644881188869476, + 0.0024156481958925724, + 0.10119637846946716, + -0.0018182694911956787, + 0.06835620105266571, + 0.09282024204730988, + 0.07859265804290771, + 0.004812122788280249, + 0.007401864975690842, + 0.054654866456985474, + 0.06204240769147873, + 0.017942586913704872, + -0.03141889348626137, + 0.05323202908039093, + -0.04748234152793884, + -0.007433713413774967, + -0.024028928950428963, + -0.003700780216604471, + -0.05373591184616089, + -0.05975489690899849, + -0.021994510665535927, + 0.005917379632592201, + 0.04507405683398247, + -0.009225860238075256, + 0.0019493326544761658, + 0.02532758191227913, + -0.020517483353614807, + 0.0316905602812767, + 0.0638870894908905, + 0.004317956045269966, + 0.0017329230904579163, + -0.04223298281431198, + -0.06712155044078827, + -0.007157105952501297, + -0.021823067218065262, + 0.06653784215450287, + 0.03614731505513191, + 0.03914476931095123, + 0.030541783198714256, + 0.0668286606669426, + 0.07110290229320526, + -0.023772098124027252, + -0.010852713137865067, + -0.07836492359638214, + 0.0844816267490387, + 0.10738882422447205, + -0.03860627859830856, + 0.02868693321943283, + -0.021105684340000153, + 0.04606686905026436, + -0.00011913105845451355, + -0.08615939319133759, + -0.025819644331932068, + 0.018519770354032516, + 0.07057251036167145, + 0.018239911645650864, + 0.10097189247608185, + 0.008362851105630398, + 0.016340095549821854, + 0.08805924654006958, + -0.0026069916784763336, + -0.042908355593681335, + -0.07718533277511597, + 0.042381614446640015, + -0.07085731625556946, + 0.05826074630022049, + 0.03642083704471588, + 0.029401075094938278, + -0.005581636913120747, + 0.07468406856060028, + 0.0231492817401886, + 0.0003915046399924904, + -0.05088362470269203, + 0.005963008850812912, + 0.06247413903474808, + -0.006602025590837002, + 0.050059158354997635, + 0.058450911194086075, + 0.020052675157785416, + 0.09255939722061157, + 0.053725678473711014, + -0.008070921525359154, + -0.060385435819625854, + 0.022250596433877945, + 0.01926630735397339, + 0.020541919395327568, + -0.035011403262615204, + -0.04660602658987045, + -0.009186917915940285, + -0.06800634413957596, + -0.0007893447764217854, + -0.03717979043722153, + 0.07326235622167587, + 0.011153215542435646, + -0.022582361474633217, + 0.1033172607421875, + 0.0005239443853497505, + -0.015004586428403854, + 0.0018104743212461472, + -0.021707868203520775, + -0.0069784484803676605, + 0.05017644912004471, + -0.16441015899181366, + -0.053960446268320084, + -0.013316246680915356, + 0.03525568172335625, + 0.01271000038832426, + -0.0021763681434094906, + 0.07563194632530212, + -0.020028769969940186, + 0.039418213069438934, + -0.0026795826852321625, + 0.008740264922380447, + -0.0803966149687767, + -0.06385741382837296, + -0.035338547080755234, + -0.07374973595142365, + -0.03639139235019684, + 0.05982355400919914, + -0.03856709972023964, + 0.04521141201257706, + -0.011947247199714184, + -0.06854445487260818, + -0.03994475677609444, + 0.06963108479976654, + 0.0475093349814415, + -0.03724616765975952, + 0.020763475447893143, + 0.0793621614575386, + -0.0019649025052785873, + 0.009077351540327072, + 0.024843920022249222, + 0.08805812895298004, + -0.0656127855181694, + -0.0009819060796871781, + -0.07022621482610703, + 0.046319104731082916, + 0.0814773365855217, + -0.06484180688858032, + -0.06355142593383789, + -0.05763907730579376, + -0.039179425686597824, + 0.036811403930187225, + -0.049308329820632935, + -0.02700643055140972, + 0.0033810893073678017, + -0.022560294717550278, + -0.06166971102356911, + -0.08655437082052231, + 0.04492838680744171, + -0.04982927441596985, + -0.0020562559366226196, + -0.040295813232660294, + 0.029725197702646255, + 0.03380037844181061, + 0.030435828492045403, + -0.05710452422499657, + 0.05291185900568962, + 0.005867356434464455, + -0.04476577416062355, + -0.0017581810243427753, + -0.0075097717344760895, + 0.04464172571897507, + -0.04374231398105621, + -0.04347284883260727, + -0.07547937333583832, + 0.053342245519161224, + -0.053910695016384125, + 0.06947334855794907, + 0.009540295228362083, + -0.04560142010450363, + -0.016805680468678474, + -0.023156872019171715, + -0.038032419979572296, + 0.037289898842573166, + 0.07728054374456406, + 0.05242393910884857, + 0.007996432483196259, + -0.03643183782696724, + 0.09355387836694717, + 0.03745007514953613, + 0.01697434112429619, + -0.04983559250831604, + 0.03119225986301899, + -0.03829854726791382, + 0.012120218947529793, + 0.03494340926408768, + -0.07356956601142883, + 0.029912598431110382, + -0.015489637851715088, + -0.00717683881521225, + 0.040845803916454315, + 0.06143088638782501, + 0.03821150213479996, + -0.05639513581991196 + ] + }, + "p244_237.wav": { + "name": "p244", + "embedding": [ + 0.062478117644786835, + 0.08805671334266663, + -0.02701466903090477, + 0.03598133474588394, + -0.07690879702568054, + 0.06420727074146271, + -0.12137028574943542, + 0.15541139245033264, + -0.03752361610531807, + 0.12034769356250763, + -0.05400796979665756, + 0.15097662806510925, + -0.011816158890724182, + -0.16544224321842194, + -0.009200764819979668, + 0.05478277802467346, + -0.03287597373127937, + -0.02415657415986061, + -0.03408486023545265, + -0.025752220302820206, + 0.03161536902189255, + 0.016185950487852097, + 0.048119641840457916, + -0.004026359878480434, + 0.027900943532586098, + 0.07276415824890137, + -0.005021668039262295, + 0.037588223814964294, + 0.013086924329400063, + -0.06067211925983429, + -0.053979743272066116, + 0.08161202073097229, + -0.061278510838747025, + 0.0006353624630719423, + 0.05743684619665146, + -0.03418692946434021, + -0.016989169642329216, + -0.07235880941152573, + -0.024300675839185715, + -0.005221587140113115, + -0.028233444318175316, + 0.07381439208984375, + 0.025142934173345566, + -0.046350352466106415, + 0.043835945427417755, + 0.010748608969151974, + -0.012153811752796173, + -0.021170055493712425, + -0.11025504767894745, + 0.13349317014217377, + 0.069571852684021, + 0.002749471925199032, + -0.08233949542045593, + -0.048098716884851456, + 0.104718878865242, + -0.013645684346556664, + -0.10558249056339264, + -0.03026825562119484, + 0.057154491543769836, + 0.14035625755786896, + -0.036229223012924194, + -0.027161872014403343, + 0.03229169920086861, + 0.09954825043678284, + 0.0756656602025032, + 0.08606154471635818, + 0.08958965539932251, + 0.12150564789772034, + -0.03269243612885475, + 0.04268181324005127, + 0.04451560229063034, + 0.08201420307159424, + 0.04899541288614273, + -0.00022266758605837822, + 0.02575509063899517, + -0.013191865757107735, + -0.01470563467592001, + -0.019229203462600708, + -0.029503345489501953, + -0.03195473551750183, + -0.011629972606897354, + 0.009657690301537514, + 0.0330524742603302, + 0.029375743120908737, + -0.031165163964033127, + 0.08170977234840393, + 0.04960762336850166, + -0.01955675147473812, + 0.053336236625909805, + 0.021318037062883377, + -0.0055083041079342365, + 0.07204363495111465, + -0.10473954677581787, + -0.09303762763738632, + 0.042858708649873734, + 0.0008611101657152176, + 0.031141679733991623, + 0.07449442148208618, + 0.04478573799133301, + -0.008067564107477665, + 0.11609692871570587, + 0.07905703037977219, + -0.009608324617147446, + 0.033123329281806946, + -0.06986745446920395, + 0.1358831226825714, + 0.09568972885608673, + -0.033319856971502304, + 0.05726880580186844, + -0.05880068242549896, + 0.08086007833480835, + 0.05691419541835785, + -0.1282206028699875, + -0.07169242203235626, + 0.013588154688477516, + -0.00384822441264987, + -0.017541950568556786, + 0.1223708838224411, + -0.0063660042360424995, + 0.06443572044372559, + 0.10724899917840958, + -0.08622677624225616, + -0.057326652109622955, + -0.01775958761572838, + 0.051261596381664276, + -0.0701296254992485, + 0.06919596344232559, + 0.05582398921251297, + -0.009145856834948063, + 0.02050151117146015, + 0.0777398869395256, + -0.01273889560252428, + -0.009545340202748775, + 0.046829573810100555, + -0.04941624402999878, + 0.011287465691566467, + -0.01271025463938713, + -0.006767892278730869, + 0.045659709721803665, + 0.02967599779367447, + 0.041732121258974075, + -0.0246922355145216, + 0.005342630669474602, + -0.10961102694272995, + 0.01791636273264885, + 0.035969555377960205, + 0.07793932408094406, + -0.014361567795276642, + -0.030218031257390976, + -0.029936406761407852, + -0.0731051042675972, + 0.0035858757328242064, + -0.005743669345974922, + 0.059719935059547424, + -0.03382924944162369, + 0.01874733529984951, + 0.07892933487892151, + 0.04624543339014053, + 0.008689455687999725, + -0.05614771693944931, + -0.03463371470570564, + 0.028909631073474884, + 0.059867795556783676, + -0.07605750113725662, + -0.0788099616765976, + -0.02278270199894905, + 0.02078505977988243, + -0.04565538465976715, + 0.0618792399764061, + 0.04627395421266556, + 0.02144698053598404, + 0.024966023862361908, + -0.06481112539768219, + 0.018386628478765488, + -0.09612500667572021, + -0.059061888605356216, + -0.009723568335175514, + -0.01764582097530365, + -0.03347139433026314, + 0.06480272859334946, + 0.03506843000650406, + 0.0765841156244278, + -0.02614673599600792, + -0.049033064395189285, + -0.08097899705171585, + 0.04008316993713379, + 0.04488355293869972, + -0.012902098707854748, + 0.045022401958703995, + 0.06370033323764801, + -0.01737222447991371, + 0.04609743505716324, + 0.06887859851121902, + 0.07918258756399155, + -0.026797780767083168, + 0.002684700768440962, + -0.0785614401102066, + 0.09555377066135406, + 0.10551431775093079, + -0.08648798614740372, + -0.09077871590852737, + -0.04114428535103798, + -0.06787050515413284, + 0.03233399987220764, + -0.036318860948085785, + -0.0015345574356615543, + 0.04481567442417145, + 0.003793739713728428, + -0.10578152537345886, + -0.10483092069625854, + 0.10364645719528198, + -0.0776587724685669, + 0.008925843052566051, + -0.0856873095035553, + 0.04074029624462128, + 0.09557828307151794, + 0.008781029842793941, + -0.04159076511859894, + -0.014469398185610771, + 0.04487713426351547, + -0.00967913307249546, + 0.021334808319807053, + 0.05455067753791809, + 0.05536310374736786, + -0.1128218024969101, + -0.0036477381363511086, + -0.04945822060108185, + 0.041252292692661285, + -0.03801654651761055, + 0.16559556126594543, + 0.012511742301285267, + -0.03287249058485031, + -0.0847829058766365, + 0.0574336051940918, + -0.010976465418934822, + 0.04984276741743088, + 0.041278913617134094, + 0.07160691171884537, + 0.02191673219203949, + -0.09028167277574539, + 0.1194876953959465, + 0.03112691268324852, + -0.05098661035299301, + -0.08122666925191879, + -0.044997625052928925, + -0.04622385650873184, + 0.03200463950634003, + 0.01595987007021904, + -0.09011881053447723, + -0.025714095681905746, + 0.018508657813072205, + -0.007140908390283585, + 0.061176598072052, + 0.14482010900974274, + 0.06545878201723099, + -0.09433522820472717 + ] + }, + "p244_150.wav": { + "name": "p244", + "embedding": [ + 0.05445127934217453, + 0.09504492580890656, + -0.017335087060928345, + 0.0005590729415416718, + -0.006677444092929363, + 0.04324043542146683, + -0.1598438173532486, + 0.1521265208721161, + 0.015800952911376953, + 0.1326429843902588, + -0.048835158348083496, + 0.0989331379532814, + -0.005136210471391678, + -0.14589878916740417, + -0.04850536957383156, + 0.011442350223660469, + -0.030728237703442574, + 0.014277603477239609, + -0.05103939399123192, + -0.01851794309914112, + 0.045180030167102814, + 0.03869707137346268, + 0.033563558012247086, + -0.06366416066884995, + 0.025235624983906746, + 0.029222752898931503, + 0.017475837841629982, + 0.06741766631603241, + 0.02338658645749092, + -0.06970561295747757, + 0.024240758270025253, + 0.09504877775907516, + -0.05197633430361748, + 0.033248111605644226, + 0.07017750293016434, + -0.013887058012187481, + -0.024386439472436905, + -0.048670120537281036, + -0.01240481436252594, + 0.029740747064352036, + -0.024747541174292564, + 0.07934467494487762, + 0.01621522381901741, + -0.005670198705047369, + 0.053112003952264786, + 0.03493073582649231, + 0.009446266107261181, + -0.056866712868213654, + -0.08870917558670044, + 0.17104384303092957, + 0.042898599058389664, + 0.01768159680068493, + -0.10744079947471619, + -0.05929476022720337, + 0.06378844380378723, + -0.047138895839452744, + -0.07429944723844528, + -0.03783268854022026, + 0.04104207083582878, + 0.11972683668136597, + -0.02845608815550804, + -0.05077710002660751, + 0.03715653344988823, + 0.10548093914985657, + 0.05520070344209671, + 0.043782852590084076, + 0.09991559386253357, + 0.10533083975315094, + -0.01836565136909485, + 0.04458494111895561, + -0.00521993450820446, + 0.06749764829874039, + 0.03679005801677704, + 0.01765529438853264, + 0.02865200862288475, + -0.008177322335541248, + -0.007171163335442543, + -0.03467854857444763, + -0.04015803709626198, + -0.0035336739383637905, + 0.018306873738765717, + 0.04459645599126816, + 0.002496963134035468, + 0.061544694006443024, + -0.03148921951651573, + 0.050127506256103516, + 0.0038662105798721313, + -0.03732423856854439, + 0.05701339617371559, + 0.03474909067153931, + 0.04054331034421921, + 0.027622219175100327, + -0.08793716132640839, + -0.11432887613773346, + 0.0007522208616137505, + -0.01896682381629944, + 0.003803498111665249, + 0.038041431456804276, + 0.02822987735271454, + -0.012858950532972813, + 0.10713546723127365, + 0.03951896354556084, + -0.05070802941918373, + 0.01302795298397541, + -0.07655227929353714, + 0.10519850254058838, + 0.07445921003818512, + -0.012636429630219936, + 0.033837221562862396, + -0.09579169750213623, + 0.03084684908390045, + 0.0460226908326149, + -0.11251669377088547, + -0.08904886990785599, + 0.05482660233974457, + 0.026281513273715973, + 0.014545917510986328, + 0.12108919024467468, + 0.01869647018611431, + 0.03808961808681488, + 0.09633824229240417, + -0.06543208658695221, + -0.042110469192266464, + -0.03323754668235779, + 0.0576302707195282, + -0.05046115070581436, + 0.052969273179769516, + 0.030514420941472054, + 0.0023071318864822388, + -0.007951482199132442, + 0.08881241083145142, + 0.0023535944055765867, + 0.020196449011564255, + -0.021460825577378273, + -0.010890054516494274, + 0.04041213542222977, + -0.038867317140102386, + -0.013536549173295498, + 0.009058648720383644, + 0.07553917914628983, + 0.05397619679570198, + 0.023913858458399773, + -0.06078393757343292, + -0.08743506669998169, + -0.0055031250230968, + 0.02007358893752098, + 0.07694711536169052, + -0.040580905973911285, + -0.026430224999785423, + -0.04195965453982353, + -0.02747427113354206, + 0.0014347780961543322, + -0.00816923938691616, + 0.05164854973554611, + 0.004903111141175032, + -0.001956344349309802, + 0.1120600700378418, + -0.01691797375679016, + 0.02195458672940731, + -0.00655318982899189, + 0.0007120408117771149, + -0.018527142703533173, + 0.03203348070383072, + -0.05274778604507446, + -0.07529155910015106, + -0.009422887116670609, + 0.0026912791654467583, + -0.01571531407535076, + 0.054356373846530914, + 0.036526329815387726, + 0.019234666600823402, + 0.0369151309132576, + -0.053116705268621445, + -0.03291326388716698, + -0.10476283729076385, + -0.057671964168548584, + -0.008893082849681377, + -0.0005948860198259354, + -0.04530104622244835, + 0.07100029289722443, + 0.018888205289840698, + 0.05772804468870163, + -0.01787591353058815, + -0.06595436483621597, + -0.07405616343021393, + 0.04277785122394562, + 0.06701213121414185, + -0.01245732419192791, + 0.018164178356528282, + 0.03243707865476608, + -0.009980788454413414, + 0.06199754774570465, + 0.0889868512749672, + 0.04605251923203468, + -0.022417619824409485, + -0.007732506841421127, + -0.09337057173252106, + 0.1175006777048111, + 0.07790759950876236, + -0.06739962846040726, + -0.08892644941806793, + -0.00017318621394224465, + -0.08638440817594528, + -0.031016670167446136, + -0.026220280677080154, + 0.025334432721138, + 0.051826294511556625, + -0.015674695372581482, + -0.0880260020494461, + -0.07810349017381668, + 0.050383590161800385, + -0.09572884440422058, + -0.008797546848654747, + -0.045625604689121246, + 0.020948154851794243, + 0.10767039656639099, + 0.03592601791024208, + -0.0036805658601224422, + -0.05265194922685623, + 0.03810866177082062, + -0.038443513214588165, + -0.01184895634651184, + 0.023958120495080948, + 0.019777752459049225, + -0.08414611220359802, + 0.03260072320699692, + -0.03366226702928543, + 0.03722888231277466, + -0.061745695769786835, + 0.09403915703296661, + 0.018213409930467606, + -0.0672248899936676, + -0.07968960702419281, + 0.023506173864006996, + -0.05182614177465439, + 0.053563233464956284, + -0.010357051156461239, + 0.03555510565638542, + 0.04073306918144226, + -0.07910112291574478, + 0.11850571632385254, + 0.03808992728590965, + -0.037928007543087006, + -0.09998872876167297, + -0.10208195447921753, + -0.02480815351009369, + 0.04088554158806801, + 0.023231646046042442, + -0.05354025959968567, + -0.00515914848074317, + 0.012200551107525826, + -0.033005621284246445, + 0.035563550889492035, + 0.12522609531879425, + 0.032806456089019775, + -0.12793779373168945 + ] + }, + "p244_123.wav": { + "name": "p244", + "embedding": [ + 0.047935813665390015, + 0.09868910163640976, + -0.02358902618288994, + 0.039254672825336456, + -0.08080698549747467, + 0.01979684643447399, + -0.1290421485900879, + 0.14838680624961853, + -0.01925787329673767, + 0.09545451402664185, + -0.0655849352478981, + 0.15221551060676575, + -0.026543449610471725, + -0.1803678274154663, + -0.031248360872268677, + 0.07790245115756989, + -0.022635377943515778, + -0.042884618043899536, + -0.011101074516773224, + -0.024351127445697784, + 0.018490398302674294, + 0.02723417431116104, + 0.06314945220947266, + 0.03816467151045799, + 0.026572411879897118, + 0.08199214190244675, + 0.016079099848866463, + 0.06612670421600342, + 0.03773189336061478, + -0.026156505569815636, + -0.049615275114774704, + 0.07632870972156525, + -0.04222646355628967, + -0.007784062065184116, + 0.05659156292676926, + -0.020539313554763794, + 0.010034045204520226, + -0.0572444312274456, + -0.02125987783074379, + -0.006358354352414608, + -0.03878733515739441, + 0.08554770797491074, + 0.02923593483865261, + -0.041204482316970825, + 0.04980042204260826, + 0.034969545900821686, + -0.012981700710952282, + -0.031637709587812424, + -0.136001318693161, + 0.12609539926052094, + 0.06247280538082123, + 0.0049299378879368305, + -0.0876971036195755, + -0.04676724597811699, + 0.0985020250082016, + -0.050785817205905914, + -0.08533252775669098, + -0.04530923813581467, + 0.07116612046957016, + 0.13595515489578247, + -0.027138888835906982, + -0.028523694723844528, + 0.02811417728662491, + 0.12468639016151428, + 0.08511309325695038, + 0.07142630219459534, + 0.07455113530158997, + 0.11343652009963989, + -0.04902837797999382, + 0.016779478639364243, + 0.05108056589961052, + 0.08679787814617157, + 0.02159731835126877, + 0.00569456210359931, + 0.0042259581387043, + 0.0007285761530511081, + -0.009510291740298271, + 0.006272531114518642, + -0.02393496036529541, + -0.018868491053581238, + -0.04187668487429619, + 0.012432875111699104, + -0.008963399566709995, + 0.011986427009105682, + -0.022273089736700058, + 0.1004435271024704, + 0.042855530977249146, + -0.00926428847014904, + 0.06705661863088608, + 0.03570529818534851, + -0.02310272864997387, + 0.06416408717632294, + -0.08750297874212265, + -0.0670657679438591, + 0.011473655700683594, + -0.015031831339001656, + 0.024471379816532135, + 0.0659395381808281, + 0.037837572395801544, + -0.0075630322098731995, + 0.1322927474975586, + 0.08378434181213379, + -0.010745341889560223, + 0.040007565170526505, + -0.06994685530662537, + 0.1312371790409088, + 0.08377501368522644, + -0.02062736451625824, + 0.05747717618942261, + -0.034366365522146225, + 0.04676353931427002, + 0.05633261054754257, + -0.11159484088420868, + -0.06889460235834122, + 0.015194023959338665, + 0.012482589110732079, + -0.017916742712259293, + 0.10312461107969284, + -0.02651827782392502, + 0.059082500636577606, + 0.10515463352203369, + -0.06520505249500275, + -0.06996916234493256, + -0.012537147849798203, + 0.04434474557638168, + -0.0749981477856636, + 0.060916464775800705, + 0.0659603402018547, + 0.00183815136551857, + 0.00949239544570446, + 0.08374138176441193, + 0.004408447537571192, + -0.008399765007197857, + 0.04493667930364609, + -0.06115281209349632, + 0.00882935244590044, + -0.009041817858815193, + -0.011205955408513546, + 0.06833150237798691, + 0.04499555379152298, + 0.044427044689655304, + 0.005526232998818159, + -0.0013271027710288763, + -0.13187739253044128, + 0.0029732505790889263, + 0.03732961416244507, + 0.09435002505779266, + 0.0006489133229479194, + -0.04298786818981171, + -0.051117103546857834, + -0.04414571449160576, + -0.007264079060405493, + 0.020839324221014977, + 0.06787355244159698, + -0.0624614879488945, + 0.008336108177900314, + 0.08739246428012848, + 0.01971442624926567, + 0.008241701871156693, + -0.04189733415842056, + -0.020518694072961807, + 0.006500543095171452, + 0.0513586699962616, + -0.0604424886405468, + -0.08609747886657715, + -0.012232346460223198, + 0.046607114374637604, + -0.0355626605451107, + 0.06916355341672897, + 0.04407934471964836, + 0.012806417420506477, + 0.020992964506149292, + -0.05804038792848587, + 0.023951802402734756, + -0.07645511627197266, + -0.05613651126623154, + -0.02277601882815361, + 0.012747762724757195, + -0.039644304662942886, + 0.055075209587812424, + 0.05049785226583481, + 0.08725063502788544, + 0.0011182089801877737, + -0.07058509439229965, + -0.09501567482948303, + 0.04005023092031479, + 0.06036540865898132, + 0.004332630895078182, + 0.06460879743099213, + 0.05896572768688202, + -0.036681003868579865, + 0.06764934957027435, + 0.055881284177303314, + 0.06115977466106415, + -0.028115984052419662, + -0.00039863772690296173, + -0.06316331028938293, + 0.057546548545360565, + 0.09326006472110748, + -0.11558821052312851, + -0.07488150149583817, + -0.03998482972383499, + -0.056760214269161224, + 0.04024461284279823, + -0.01527421921491623, + 0.017751840874552727, + 0.047286100685596466, + 0.001247235108166933, + -0.1040644496679306, + -0.11439242213964462, + 0.08464350551366806, + -0.07662586867809296, + 0.017329208552837372, + -0.0555596649646759, + 0.0290832556784153, + 0.09408316016197205, + 0.00019073513976763934, + -0.02277049422264099, + -0.029403764754533768, + 0.03492112457752228, + -0.015735380351543427, + -0.0010919775813817978, + 0.06162617728114128, + 0.04125378653407097, + -0.10668320953845978, + 0.00865055900067091, + -0.06471343338489532, + 0.06943607330322266, + -0.023811817169189453, + 0.16725806891918182, + 0.021339697763323784, + -0.032372549176216125, + -0.09002547711133957, + 0.016651824116706848, + -0.0340128093957901, + 0.06592398881912231, + 0.03635784238576889, + 0.054862987250089645, + 0.011859702877700329, + -0.06403880566358566, + 0.13180667161941528, + 0.05661667138338089, + -0.07817618548870087, + -0.08639197051525116, + -0.03598418086767197, + -0.04523245990276337, + 0.04229831323027611, + 0.04203055053949356, + -0.090467169880867, + -0.03499970957636833, + 0.00952528603374958, + -0.03472364693880081, + 0.07906821370124817, + 0.14434456825256348, + 0.07129251956939697, + -0.086697518825531 + ] + }, + "p244_279.wav": { + "name": "p244", + "embedding": [ + 0.0520191453397274, + 0.06683322042226791, + -0.05218029022216797, + 0.009071988984942436, + -0.00949503667652607, + 0.018779944628477097, + -0.1245230883359909, + 0.07804550975561142, + -0.056330606341362, + 0.13133792579174042, + -0.07470617443323135, + 0.08096323162317276, + -0.020086199045181274, + -0.13068002462387085, + -0.054525647312402725, + 0.032097481191158295, + -0.04229017347097397, + -0.019590429961681366, + -0.07944805175065994, + -0.025222357362508774, + 0.035048045217990875, + 0.05781761556863785, + 0.025801002979278564, + -0.05447918176651001, + 0.012016301974654198, + 0.0608753003180027, + 0.012441380880773067, + 0.017905104905366898, + 0.007546348962932825, + -0.007106134667992592, + 0.01191239058971405, + 0.0835629403591156, + -0.03399771451950073, + -0.010156111791729927, + 0.012086132541298866, + 0.03906512260437012, + -0.00043959449976682663, + -0.06790551543235779, + 0.010043170303106308, + 0.016791533678770065, + -0.042105402797460556, + 0.054084762930870056, + 0.03865585848689079, + -0.022079667076468468, + 0.0368582159280777, + -0.0146127725020051, + -0.03163152188062668, + -0.07022309303283691, + -0.08575502783060074, + 0.17867203056812286, + 0.07932297885417938, + 0.04412449896335602, + -0.07738173007965088, + -0.03472016006708145, + 0.10072579979896545, + 0.004298762418329716, + -0.06597690284252167, + -0.07603298127651215, + 0.016661036759614944, + 0.1536272019147873, + -0.024027584120631218, + -0.03949277848005295, + 0.020423799753189087, + 0.09840992093086243, + 0.005495581775903702, + 0.03965126350522041, + 0.10977207124233246, + 0.05614548176527023, + 0.019403541460633278, + 0.024645822122693062, + 0.0408913716673851, + 0.050808850675821304, + 0.030882734805345535, + -0.05330682173371315, + 0.05576683208346367, + -0.02075422741472721, + -0.04296060651540756, + 0.0017399471253156662, + -0.026645533740520477, + -0.07209558039903641, + -0.0076570333912968636, + 0.015097926370799541, + 0.006781320553272963, + 0.02138354815542698, + -0.06528018414974213, + 0.029388809576630592, + 0.027205435559153557, + -0.058518312871456146, + 0.06716534495353699, + 0.038299545645713806, + -0.00743325287476182, + -0.024749377742409706, + -0.04626326262950897, + -0.08060380816459656, + 0.022845624014735222, + 0.006770520471036434, + -0.016435548663139343, + 0.030038874596357346, + 0.03380761295557022, + -0.026185167953372, + 0.07946860045194626, + 0.02947250008583069, + -0.019602373242378235, + -0.027460381388664246, + -0.06599431484937668, + 0.11118429154157639, + 0.1396806687116623, + -0.006802147254347801, + 0.0026200972497463226, + -0.032686181366443634, + 0.01057338248938322, + 0.06713508814573288, + -0.11419455707073212, + -0.07052184641361237, + 0.0548800453543663, + 0.030668586492538452, + 0.030700329691171646, + 0.07999694347381592, + 0.019764676690101624, + -0.009286267682909966, + 0.08549840748310089, + -0.08144000172615051, + -0.07725387811660767, + -0.060516178607940674, + 0.04315546527504921, + -0.07481749355792999, + 0.03985782712697983, + 0.07825423777103424, + -0.006186093669384718, + -0.037569183856248856, + 0.06172458082437515, + 0.012102059088647366, + -0.006403912790119648, + -0.04141402989625931, + 0.043237313628196716, + 0.054311491549015045, + -0.026584520936012268, + -0.04333289712667465, + 0.01529704686254263, + 0.0445157065987587, + 0.04538054019212723, + 0.021498408168554306, + -0.012310020625591278, + -0.0844266340136528, + 0.024476516991853714, + 0.06225130707025528, + 0.025506403297185898, + -0.03862001374363899, + -0.023227086290717125, + -0.030311886221170425, + -0.03701767325401306, + -0.015341464430093765, + -0.04773303493857384, + 0.09846585988998413, + 0.00785382091999054, + 0.029214119538664818, + 0.11849590390920639, + -0.05175226554274559, + -0.0027003567665815353, + -0.005204865708947182, + 0.04099271073937416, + 0.04894743859767914, + 0.013694122433662415, + -0.036463987082242966, + -0.07727885246276855, + 0.0074785854667425156, + 0.007762848865240812, + 0.006016571074724197, + 0.011575054377317429, + 0.022281501442193985, + -0.019407734274864197, + 0.006433653645217419, + -0.07725550979375839, + 0.01835590973496437, + -0.12018996477127075, + 0.003141818568110466, + -0.007673362269997597, + -0.07878651469945908, + 0.00708797387778759, + 0.08978602290153503, + 0.01866057701408863, + 0.013536175712943077, + -0.045769430696964264, + -0.11441882699728012, + -0.042273275554180145, + 0.08821281790733337, + 0.10511176288127899, + -0.015396878123283386, + -0.01159561425447464, + 0.024827174842357635, + 0.037263356149196625, + -0.008314723148941994, + 0.06436347216367722, + 0.06946414709091187, + -0.008239863440394402, + -0.07226821780204773, + -0.0398029088973999, + 0.08776760846376419, + 0.04970499873161316, + -0.09706464409828186, + -0.03450682386755943, + -0.05589821934700012, + -0.05155661329627037, + 0.01245830673724413, + -0.022623302415013313, + 0.02387787215411663, + 0.03990945219993591, + -0.039009034633636475, + -0.12075541913509369, + -0.09642039239406586, + 0.06341516971588135, + -0.040683284401893616, + -0.008881762623786926, + -0.04353077709674835, + 0.034678421914577484, + 0.06704499572515488, + 0.008364738896489143, + -0.009846445173025131, + -0.014528504572808743, + -0.02198714017868042, + -0.06812019646167755, + -0.0252497848123312, + -0.0285518616437912, + 0.0410170704126358, + -0.08738823235034943, + 0.031555213034152985, + -0.0722704827785492, + 0.0873974859714508, + -0.06831436604261398, + 0.08111992478370667, + 0.0020491108298301697, + -0.02732449769973755, + -0.11388514935970306, + 0.029330717399716377, + -0.018018225207924843, + 0.07232734560966492, + 0.049911100417375565, + 0.033157579600811005, + 0.02780042588710785, + -0.09500128030776978, + 0.08650533854961395, + 0.08225865662097931, + -0.005279342643916607, + -0.07847237586975098, + -0.02644912153482437, + -0.03823351860046387, + 0.022987350821495056, + 0.001889458973892033, + -0.010943258181214333, + -0.0028536678291857243, + 0.006852135527879, + -0.03145923465490341, + 0.0767761617898941, + 0.07135774195194244, + 0.022094519808888435, + -0.10847096145153046 + ] + }, + "p244_186.wav": { + "name": "p244", + "embedding": [ + 0.049780651926994324, + 0.09498939663171768, + -0.011941144242882729, + 0.025888066738843918, + -0.037194035947322845, + 0.05615521967411041, + -0.1325494647026062, + 0.13605374097824097, + -0.02295851707458496, + 0.13731497526168823, + -0.06083249673247337, + 0.09459879249334335, + -0.016566215083003044, + -0.15367192029953003, + -0.03788261115550995, + 0.04270133376121521, + -0.0591256245970726, + -0.023712610825896263, + -0.03981366753578186, + -0.0033279280178248882, + 0.039632685482501984, + 0.0440482571721077, + 0.020980030298233032, + -0.03662561997771263, + 0.044919371604919434, + 0.048804059624671936, + 0.020211923867464066, + 0.057196978479623795, + 0.03199577331542969, + -0.05255095660686493, + -0.015256383456289768, + 0.11538469046354294, + -0.04307785630226135, + 0.019466117024421692, + 0.03486809879541397, + -0.00032154936343431473, + -0.009850124828517437, + -0.07209324836730957, + -0.019919173792004585, + 0.017468048259615898, + -0.03899131715297699, + 0.08111665397882462, + 0.03616027906537056, + -0.008590081706643105, + 0.025768987834453583, + 0.014063315466046333, + -0.006635394878685474, + -0.06832893192768097, + -0.10622978955507278, + 0.1869138926267624, + 0.056873105466365814, + 0.007400006987154484, + -0.08579879999160767, + -0.07059236615896225, + 0.08114106953144073, + -0.0040430836379528046, + -0.10034534335136414, + -0.033646032214164734, + 0.06214534491300583, + 0.15712344646453857, + -0.023823387920856476, + -0.03319559618830681, + 0.018809616565704346, + 0.12001721560955048, + 0.057272713631391525, + 0.07024353742599487, + 0.08927302062511444, + 0.10318976640701294, + 0.0013709496706724167, + 0.04490320011973381, + 0.03413322567939758, + 0.05794113874435425, + 0.023188617080450058, + -0.00040143157821148634, + 0.02711189165711403, + -0.020066890865564346, + -0.03524855896830559, + 0.0030172038823366165, + -0.01195192988961935, + -0.02428671531379223, + 0.005008189473301172, + 0.02575261890888214, + 0.011594429612159729, + 0.056109216064214706, + -0.024052705615758896, + 0.05364781618118286, + 0.0024599097669124603, + -0.025418920442461967, + 0.07601740956306458, + 0.020341258496046066, + 0.013301611877977848, + 0.050985176116228104, + -0.07911110669374466, + -0.11158083379268646, + 0.009729173965752125, + -0.0071069360710680485, + 0.046111881732940674, + 0.06801579892635345, + 0.03950390964746475, + -0.026529837399721146, + 0.11196405440568924, + 0.04042007774114609, + -0.022448640316724777, + 0.014554007910192013, + -0.0860765278339386, + 0.11390452086925507, + 0.08796030282974243, + -0.016473572701215744, + 0.048987872898578644, + -0.060133930295705795, + 0.06924648582935333, + 0.04526021331548691, + -0.13611623644828796, + -0.07596048712730408, + 0.04822613671422005, + 0.022315096110105515, + -0.004644811153411865, + 0.12823879718780518, + 0.005842046346515417, + 0.031274229288101196, + 0.08919675648212433, + -0.09538307785987854, + -0.0461282804608345, + -0.021206222474575043, + 0.06171686202287674, + -0.07238461077213287, + 0.039248351007699966, + 0.05201123654842377, + -0.03691919893026352, + 0.0013806335628032684, + 0.06983670592308044, + -0.0011842255480587482, + 0.020656948909163475, + 0.00756952166557312, + -0.0357440784573555, + 0.05000495910644531, + -0.03807573765516281, + 0.0036224927753210068, + 0.031258419156074524, + 0.0527312308549881, + 0.0484200045466423, + 0.004734721500426531, + -0.047661200165748596, + -0.10588062554597855, + 0.0045497845858335495, + 0.04596410319209099, + 0.06315878033638, + -0.03719942271709442, + -0.030062830075621605, + -0.04634224250912666, + -0.051202692091464996, + 0.015086007304489613, + 0.004031861200928688, + 0.06949175894260406, + -0.003637679386883974, + -0.012160002253949642, + 0.1269933432340622, + 0.011015105992555618, + -0.0008069919422268867, + -0.032828234136104584, + -0.025377415120601654, + 0.015222224406898022, + 0.0528106614947319, + -0.07549412548542023, + -0.06384138017892838, + 0.006625814363360405, + 0.008787952363491058, + -0.021066462621092796, + 0.027520207688212395, + 0.036008816212415695, + 0.025656141340732574, + 0.03806747496128082, + -0.060057297348976135, + 0.010157227516174316, + -0.11259924620389938, + -0.05163257569074631, + 0.001529137371107936, + -0.00845365971326828, + -0.031535740941762924, + 0.0914374589920044, + 0.012499975971877575, + 0.05353322625160217, + -0.001693258062005043, + -0.06909862160682678, + -0.0455293282866478, + 0.06612171232700348, + 0.08565175533294678, + 0.002202434465289116, + 0.046733416616916656, + 0.049875035881996155, + -0.0014274637214839458, + 0.030810199677944183, + 0.06460615992546082, + 0.10363326966762543, + -0.022446565330028534, + -0.01786843314766884, + -0.09056596457958221, + 0.09339028596878052, + 0.060664091259241104, + -0.09198956191539764, + -0.08776917308568954, + -0.017218543216586113, + -0.07294963300228119, + 0.01954902522265911, + -0.025054577738046646, + 0.026129813864827156, + 0.026914816349744797, + -0.01855437271296978, + -0.11046057939529419, + -0.08695186674594879, + 0.06816712021827698, + -0.0699438750743866, + -0.012322836555540562, + -0.08002462983131409, + 0.04649566859006882, + 0.10242058336734772, + 0.04990389943122864, + -0.013408978469669819, + -0.020994018763303757, + 0.035579584538936615, + -0.057652220129966736, + -0.009350299835205078, + 0.02777467481791973, + 0.010307356715202332, + -0.09487438201904297, + 0.027934473007917404, + -0.05723356083035469, + 0.06135866045951843, + -0.06065633147954941, + 0.15114903450012207, + 0.007244945503771305, + -0.0714966356754303, + -0.09494678676128387, + 0.04025014862418175, + -0.03390611708164215, + 0.04048825800418854, + 0.034435372799634933, + 0.04029976204037666, + 0.049797311425209045, + -0.08118963241577148, + 0.11395411938428879, + 0.027208494022488594, + -0.02166212722659111, + -0.06798888742923737, + -0.05895119160413742, + -0.018733887001872063, + 0.036244772374629974, + 0.006609201431274414, + -0.058978307992219925, + -0.016218818724155426, + 0.019838619977235794, + -0.022571798413991928, + 0.061886150389909744, + 0.12519052624702454, + 0.05719219893217087, + -0.12144674360752106 + ] + }, + "p244_389.wav": { + "name": "p244", + "embedding": [ + 0.04964253306388855, + 0.07147164642810822, + -0.023855488747358322, + 0.009601152502000332, + -0.03650026023387909, + 0.0252509918063879, + -0.14053422212600708, + 0.13478609919548035, + -0.017778024077415466, + 0.1325148046016693, + -0.06748643517494202, + 0.12535309791564941, + -0.005407724529504776, + -0.18714392185211182, + -0.0038822144269943237, + 0.029013734310865402, + -0.02789529412984848, + -0.013960222713649273, + -0.029330529272556305, + -0.032227523624897, + 0.06844169646501541, + 0.05408642813563347, + 0.011623265221714973, + -0.02318566106259823, + -0.015936443582177162, + 0.06676285713911057, + 0.0077512613497674465, + 0.035172995179891586, + 0.009118190966546535, + -0.048626817762851715, + -0.03151613101363182, + 0.08784034103155136, + -0.03133663162589073, + 0.013059570454061031, + 0.05865493416786194, + -0.01998130790889263, + -0.02221369557082653, + -0.05281658098101616, + -0.0278736874461174, + 0.01690276525914669, + -0.05741718411445618, + 0.051280390471220016, + 0.021318530663847923, + -0.03186129033565521, + 0.07071669399738312, + 0.018691975623369217, + -0.011189226061105728, + -0.0458110049366951, + -0.09346655011177063, + 0.15409106016159058, + 0.08942298591136932, + 0.00563018349930644, + -0.055634163320064545, + -0.04712982475757599, + 0.08556137979030609, + -0.011394977569580078, + -0.09742304682731628, + -0.02711251750588417, + 0.0626111775636673, + 0.1299046277999878, + -0.03835728019475937, + -0.035862356424331665, + 0.05873362347483635, + 0.09533900022506714, + 0.03565296158194542, + 0.08913514018058777, + 0.0988224670290947, + 0.09537652134895325, + -0.024873949587345123, + 0.009020083583891392, + 0.03127939999103546, + 0.08881151676177979, + 0.0618852898478508, + -0.01940850540995598, + 0.04258141666650772, + 0.03239329159259796, + -0.035421356558799744, + -0.003220668062567711, + -0.024362778291106224, + -0.0025995809119194746, + 0.006880385335534811, + 0.018820548430085182, + 0.023136839270591736, + 0.030249077826738358, + -0.04412847384810448, + 0.05700276419520378, + 0.03787606582045555, + -0.0025889745447784662, + 0.04101213812828064, + 0.01078611146658659, + 0.025310678407549858, + 0.06093835085630417, + -0.09138470888137817, + -0.09233307838439941, + 0.026226183399558067, + -0.000831136479973793, + -0.0036285407841205597, + 0.08612217754125595, + 0.048663657158613205, + -0.018391352146863937, + 0.11880064010620117, + 0.041312217712402344, + -0.024444010108709335, + 0.03639297932386398, + -0.08512981235980988, + 0.10115258395671844, + 0.10371828079223633, + -0.038159266114234924, + 0.049265604466199875, + -0.0879659578204155, + 0.07459738105535507, + 0.047489386051893234, + -0.12783177196979523, + -0.06034495681524277, + 0.05674789473414421, + 0.024518083781003952, + -0.00571811106055975, + 0.148992657661438, + 0.004579258617013693, + 0.04639511555433273, + 0.11653193831443787, + -0.09323574602603912, + -0.06669460237026215, + -0.037002742290496826, + 0.05766318365931511, + -0.08456750214099884, + 0.0829339325428009, + 0.03849758580327034, + -0.00476697226986289, + 0.007714379578828812, + 0.07273873686790466, + -0.03140334412455559, + 0.013713590800762177, + -0.025193532928824425, + -0.02423720806837082, + 0.017991913482546806, + -0.04869674891233444, + -0.009695064276456833, + 0.015489794313907623, + 0.033399488776922226, + 0.02593194507062435, + 0.0020804922096431255, + -0.04575156420469284, + -0.1324165165424347, + 0.017629174515604973, + 0.034133076667785645, + 0.07721230387687683, + -0.011460991576313972, + -0.030183393508195877, + -0.04280737042427063, + -0.06815729290246964, + -0.011978501453995705, + -0.046983253210783005, + 0.04523259401321411, + -0.02150619775056839, + 0.018531300127506256, + 0.08077391982078552, + 0.016388606280088425, + 0.004657186102122068, + -0.024618666619062424, + -0.04792141169309616, + 0.0007916279137134552, + 0.04553179070353508, + -0.0725981742143631, + -0.08912689983844757, + -0.033685874193906784, + 0.020242737606167793, + -0.012520924210548401, + 0.03694436699151993, + 0.03833423927426338, + 0.02411615662276745, + 0.02653633803129196, + -0.10931293666362762, + 0.012123778462409973, + -0.13374003767967224, + -0.08708872646093369, + -0.01953904889523983, + 0.0017591805662959814, + 0.009442574344575405, + 0.06969283521175385, + -0.001415996695868671, + 0.0444008968770504, + -0.03092077001929283, + -0.05863282084465027, + -0.0863884910941124, + 0.048835813999176025, + 0.08602620661258698, + -0.004547545686364174, + 0.04455546289682388, + 0.04448841139674187, + -0.02577764168381691, + 0.04145362228155136, + 0.05063789710402489, + 0.1003967672586441, + 0.006545286625623703, + 0.023936178535223007, + -0.0645827054977417, + 0.10333234071731567, + 0.09196887910366058, + -0.054392870515584946, + -0.08496984094381332, + -0.017037218436598778, + -0.07981628179550171, + 0.020779818296432495, + -0.013802110217511654, + 0.006919558625668287, + 0.01613161526620388, + 0.013877051882445812, + -0.09816001355648041, + -0.06542323529720306, + 0.05088915675878525, + -0.05183778703212738, + -0.012386116199195385, + -0.0886194109916687, + 0.05039968341588974, + 0.11728017032146454, + 0.03749311715364456, + -0.03848762437701225, + -0.04207203537225723, + 0.034046150743961334, + -0.025762498378753662, + 0.01390274427831173, + 0.02045624516904354, + 0.05512845516204834, + -0.1097072884440422, + 0.01596188172698021, + -0.06605931371450424, + 0.04116734117269516, + -0.07096131891012192, + 0.10229065269231796, + 0.011715034954249859, + -0.05940639227628708, + -0.09298370778560638, + 0.05071388930082321, + 0.02423255145549774, + 0.03490743041038513, + 0.009444080293178558, + 0.05541565269231796, + 0.036875348538160324, + -0.10995044559240341, + 0.09450041502714157, + 0.031227100640535355, + -0.02044413797557354, + -0.06892361491918564, + -0.05475762486457825, + -0.02239786647260189, + 0.022677583619952202, + 0.016151851043105125, + -0.0708613321185112, + -0.032538071274757385, + 0.011150333099067211, + -0.012001276016235352, + 0.04270801693201065, + 0.13865134119987488, + 0.02483021467924118, + -0.14446961879730225 + ] + }, + "p244_025.wav": { + "name": "p244", + "embedding": [ + 0.04728066176176071, + 0.09132519364356995, + -0.0266993660479784, + 0.014039554633200169, + -0.06971262395381927, + 0.0015893001109361649, + -0.06117280572652817, + 0.1088259220123291, + -0.017518499866127968, + 0.10607945173978806, + -0.09705836325883865, + 0.1183314323425293, + -0.060748979449272156, + -0.07807207852602005, + -0.015277368016541004, + 0.01768813468515873, + 0.00882519967854023, + -0.015771502628922462, + -0.03676807880401611, + -0.013335805386304855, + 0.04646868258714676, + 0.03957943618297577, + 0.032906629145145416, + -0.021989382803440094, + 0.0050403159111738205, + 0.07141248136758804, + 0.006551366299390793, + -0.0022186916321516037, + 0.01907799020409584, + -0.01741943508386612, + 0.00974871963262558, + 0.044684696942567825, + -0.031482212245464325, + 0.03326811641454697, + 0.04526546597480774, + 0.03129633888602257, + -0.037986814975738525, + -0.017496518790721893, + -0.012590011581778526, + 0.000543401634786278, + -0.06637702137231827, + 0.045201633125543594, + 0.009126069024205208, + -0.08740653842687607, + 0.03196221590042114, + 0.0008265916258096695, + -0.0031872917897999287, + -0.0008214432746171951, + -0.07785055041313171, + 0.13492977619171143, + 0.022686874493956566, + 0.049052923917770386, + -0.08332902193069458, + -0.018849007785320282, + 0.09554073214530945, + -0.02876932919025421, + -0.06366067379713058, + -0.07523071765899658, + 0.02019379287958145, + 0.0781453400850296, + -0.032315660268068314, + -0.04980345442891121, + 0.01791449822485447, + 0.039823293685913086, + 0.032374948263168335, + 0.04197629913687706, + 0.08284154534339905, + 0.08710107207298279, + -0.022611506283283234, + 0.042292509227991104, + 0.06746797263622284, + 0.08345398306846619, + 0.04449405521154404, + -0.00808747485280037, + 0.006780174560844898, + -0.01332017034292221, + -0.02537577971816063, + 0.02388228476047516, + -3.645848482847214e-05, + -0.03148433566093445, + -0.03693670779466629, + -0.000999006791971624, + 0.009746003895998001, + -0.04150763154029846, + -0.03425607830286026, + 0.06543602049350739, + 0.055986642837524414, + -0.03789931535720825, + 0.05830211192369461, + 0.054321613162755966, + -0.037993114441633224, + 0.021350963041186333, + -0.062318190932273865, + -0.07305333018302917, + -0.030844910070300102, + -0.03561857342720032, + 0.045457303524017334, + 0.08888489007949829, + 0.02863730490207672, + 0.05255160480737686, + 0.06512414664030075, + 0.02646852843463421, + 0.03002905286848545, + -0.009629910811781883, + -0.08390727639198303, + 0.1374681293964386, + 0.0997086614370346, + -0.039803870022296906, + -0.01094500720500946, + -0.031186792999505997, + 0.030149733647704124, + 0.04288199171423912, + -0.055234357714653015, + -0.07929259538650513, + -0.02113642729818821, + -0.0023737112060189247, + 0.025490527972579002, + 0.07405589520931244, + -0.003513803705573082, + -0.0003266558051109314, + 0.1349898725748062, + -0.09396745264530182, + -0.08919544517993927, + -0.02063814364373684, + -0.02076747640967369, + -0.07658687233924866, + 0.070269376039505, + 0.060781680047512054, + 0.011432209983468056, + 0.029541268944740295, + 0.09501159191131592, + -0.001910191960632801, + 0.02806958183646202, + -0.011061329394578934, + -0.02147325873374939, + -0.004888467490673065, + -0.025288943201303482, + 0.005936942063271999, + 0.10234484076499939, + 0.06296571344137192, + 0.1000697985291481, + 0.026982193812727928, + 0.01060149073600769, + -0.0879545658826828, + 0.022408539429306984, + 0.10782898217439651, + -0.007051026448607445, + -0.03832744434475899, + -0.03476756811141968, + -0.014071768149733543, + -0.06264172494411469, + 0.02122318744659424, + 0.007265170104801655, + 0.07849688827991486, + -0.033829424530267715, + 0.027128618210554123, + 0.12101788818836212, + -0.003733959048986435, + -0.0019902344793081284, + -0.08114194869995117, + -0.017888862639665604, + -0.02297256328165531, + 0.0381234809756279, + -0.09798060357570648, + -0.11297637969255447, + -0.06335989385843277, + 0.025235041975975037, + -0.011736004613339901, + 0.026038821786642075, + 0.057422883808612823, + -0.017501628026366234, + 0.04528648033738136, + -0.04488951712846756, + 0.05101536214351654, + -0.0784270241856575, + -0.049702972173690796, + -0.048079974949359894, + -0.06671763956546783, + 0.0022890325635671616, + 0.06637407839298248, + -0.018089480698108673, + 0.02861608937382698, + 0.025617124512791634, + -0.10746562480926514, + -0.09760837256908417, + 0.02613038569688797, + 0.03304443135857582, + -0.01710517145693302, + 0.043048322200775146, + 0.05472904443740845, + -0.045455992221832275, + 0.022019008174538612, + 0.010858343914151192, + 0.09878860414028168, + -0.07357415556907654, + -0.0042722392827272415, + -0.038643043488264084, + 0.05250518023967743, + 0.07596319913864136, + -0.10704830288887024, + -0.060466423630714417, + -0.12184098362922668, + -0.029531046748161316, + -0.004727337509393692, + -0.027492262423038483, + 0.0058106123469769955, + 0.012840759940445423, + -0.02136811800301075, + -0.06257054954767227, + -0.0891914963722229, + 0.02585662342607975, + -0.014219660311937332, + 0.0016826819628477097, + -0.06680537015199661, + 0.010963051579892635, + -0.0003173463046550751, + 0.03191859647631645, + -0.011891636997461319, + 0.018400467932224274, + -0.011010151356458664, + -0.056199342012405396, + -0.022005779668688774, + 0.05189729481935501, + 0.026533037424087524, + 0.032330870628356934, + -0.02206023968756199, + -0.06971227377653122, + 0.06681889295578003, + -0.042676106095314026, + 0.13253949582576752, + -0.06805618852376938, + -0.05376983806490898, + -0.044418513774871826, + 0.0011334531009197235, + -0.02395021542906761, + 0.01614169403910637, + 0.06772264093160629, + 0.03880290314555168, + -0.02249978482723236, + -0.07261064648628235, + 0.11414507031440735, + 0.06347735226154327, + -0.009585547260940075, + -0.06244874373078346, + -0.053595464676618576, + -0.06424856930971146, + -0.004242710769176483, + 0.0030150925740599632, + -0.053490862250328064, + 0.04673640429973602, + -0.023656141012907028, + 0.0003688698634505272, + 0.0835297629237175, + 0.1028333380818367, + 0.07413534820079803, + -0.07562227547168732 + ] + }, + "p244_329.wav": { + "name": "p244", + "embedding": [ + -0.005544627085328102, + 0.06198248267173767, + 0.004634879529476166, + 0.021113816648721695, + -0.044267334043979645, + -0.031414665281772614, + -0.09524384140968323, + 0.07862409204244614, + -0.029118720442056656, + 0.09866597503423691, + -0.07544707506895065, + 0.09305178374052048, + -0.05698026344180107, + -0.12308865785598755, + 0.0180025827139616, + 0.033627789467573166, + 0.009352291002869606, + -0.02268972061574459, + -0.01778477057814598, + -0.04896176978945732, + 0.03435751050710678, + 0.06365825980901718, + 0.02586447075009346, + -0.021655237302184105, + -0.008241991512477398, + 0.07650616019964218, + -0.012857471592724323, + -0.003986007999628782, + -0.022557053714990616, + -0.06080430746078491, + -0.00031503589707426727, + 0.03554786369204521, + -0.022862931713461876, + -0.0228655394166708, + 0.018445748835802078, + 0.021002281457185745, + -0.023799780756235123, + 0.01135361846536398, + -0.02672605589032173, + 0.012114268727600574, + -0.12098908424377441, + 0.030034363269805908, + -0.0048117609694600105, + -0.048177570104599, + 0.06104302033782005, + 0.016689537093043327, + -0.006458019372075796, + 0.016416212543845177, + -0.06254874169826508, + 0.08453187346458435, + 0.061173390597105026, + 0.01850994862616062, + -0.03041110932826996, + -0.01941123604774475, + 0.06710182875394821, + -0.01897074654698372, + -0.07495981454849243, + -0.06148586794734001, + 0.04911886900663376, + 0.062065910547971725, + -0.05005854368209839, + -0.03270219638943672, + 0.04875677451491356, + 0.039867546409368515, + 0.02703641913831234, + 0.055593665689229965, + 0.05901962146162987, + 0.03524057939648628, + -0.011570108123123646, + -0.03959264978766441, + 0.057695675641298294, + 0.07419515401124954, + 0.06387314945459366, + -0.01761275716125965, + 0.013430282473564148, + 0.03664001449942589, + -0.03950544074177742, + -0.008957642130553722, + -0.010413320735096931, + -0.01036157738417387, + -0.03097372129559517, + -0.013436786830425262, + -0.00023613292432855815, + -0.05614519864320755, + -0.0077747986651957035, + 0.03682340309023857, + 0.07967673242092133, + 0.0007643811404705048, + 0.059014905244112015, + 0.026371365413069725, + -0.014461099170148373, + 0.04225132241845131, + -0.05795370414853096, + 0.008060790598392487, + -0.030709654092788696, + -0.01028340682387352, + 0.020751409232616425, + 0.07499875873327255, + 0.017875991761684418, + 0.030727699398994446, + 0.07834219187498093, + -0.007102827075868845, + 0.026036430150270462, + 0.004032354801893234, + -0.10909755527973175, + 0.09570895880460739, + 0.0696415975689888, + -0.04072205349802971, + 0.0034895152784883976, + -0.02699539065361023, + 0.027414733543992043, + 0.04818747192621231, + -0.05155643820762634, + -0.049935758113861084, + -0.01530660130083561, + -0.0020182596053928137, + -0.00699925422668457, + 0.0961560532450676, + 0.015446463599801064, + 0.005732082761824131, + 0.13439252972602844, + -0.09265976399183273, + -0.10652390867471695, + -0.018225042149424553, + -0.006649364717304707, + -0.10694273561239243, + 0.07759647816419601, + 0.07681707292795181, + 0.012503315694630146, + 0.057671286165714264, + 0.11152992397546768, + 0.006875825580209494, + 0.02438422292470932, + -0.03399043157696724, + -0.04218409210443497, + -0.033269450068473816, + -0.03208575397729874, + 5.464367495733313e-05, + 0.07965957373380661, + 0.03992646560072899, + 0.07209324091672897, + 0.006200456526130438, + -0.0037965283263474703, + -0.09806735813617706, + 0.01492305751889944, + 0.076610267162323, + 0.004444792866706848, + -0.024339355528354645, + -0.024795832112431526, + -0.037871815264225006, + -0.053092874586582184, + 0.005128528457134962, + -0.041391272097826004, + 0.06062359735369682, + -0.04469582438468933, + 0.018589405342936516, + 0.11447858065366745, + -0.0017805651295930147, + -0.027430733665823936, + -0.0734269767999649, + -0.031009305268526077, + -0.016635244712233543, + 0.031740203499794006, + -0.09768009185791016, + -0.09541608393192291, + -0.07081269472837448, + 0.06204848363995552, + 0.03061353601515293, + 0.052115004509687424, + 0.044423289597034454, + 0.0016121268272399902, + 0.005247681401669979, + -0.04739367589354515, + 0.043722111731767654, + -0.03980259224772453, + -0.08861198276281357, + -0.03918468579649925, + -0.053784485906362534, + -0.009916325099766254, + 0.06018403172492981, + -0.035982247442007065, + 0.024668967351317406, + -0.0211794376373291, + -0.10341373831033707, + -0.11254493147134781, + 0.0018819079268723726, + 0.02707829140126705, + -0.011820084415376186, + 0.03811441734433174, + 0.02679506316781044, + -0.08152776211500168, + 0.0311566349118948, + 0.013653472065925598, + 0.08790870755910873, + -0.05919070169329643, + 0.0336502380669117, + -0.015940843150019646, + 0.01199861615896225, + 0.07962381839752197, + -0.05437647923827171, + -0.037804629653692245, + -0.06536708027124405, + -0.045384764671325684, + 0.05194753408432007, + -0.005883814301341772, + -0.014137446880340576, + -0.00609972421079874, + 0.003839246230199933, + -0.05598258972167969, + -0.06314468383789062, + 0.04020438715815544, + -0.024574175477027893, + -0.015057406388223171, + -0.08187941461801529, + -0.004326094873249531, + -0.014390842989087105, + 0.07337900251150131, + 0.0031799187418073416, + -0.0037213906180113554, + 0.030000625178217888, + -0.039977043867111206, + 0.028816191479563713, + 0.10328862816095352, + 0.06476470828056335, + 0.0350937619805336, + -0.02926509641110897, + -0.08768477290868759, + 0.04801398143172264, + -0.024401629343628883, + 0.0722629725933075, + -0.006581056397408247, + -0.04384986683726311, + -0.04814082011580467, + 0.0001794517011148855, + -0.002577307168394327, + 0.022349826991558075, + 0.05108978971838951, + 0.060505837202072144, + 0.015153774991631508, + -0.053677525371313095, + 0.0886063203215599, + 0.05088115856051445, + 0.01599227450788021, + -0.034507203847169876, + -0.037383854389190674, + -0.06879597902297974, + -0.02244390733540058, + -0.0009749099845066667, + -0.08880208432674408, + 0.029364068061113358, + -0.015180820599198341, + 0.019148169085383415, + 0.05424491688609123, + 0.09361078590154648, + 0.040511246770620346, + -0.0897696241736412 + ] + }, + "p244_357.wav": { + "name": "p244", + "embedding": [ + 0.06972910463809967, + 0.06739023327827454, + -0.06170198693871498, + 0.018775634467601776, + -0.03588758781552315, + 0.0649954304099083, + -0.13766621053218842, + 0.10362699627876282, + -0.03624305874109268, + 0.10524637997150421, + -0.046022526919841766, + 0.09719941020011902, + -0.002834675367921591, + -0.10584241151809692, + -0.0377446785569191, + 0.03572224825620651, + -0.0021057967096567154, + 0.0013607954606413841, + -0.041360754519701004, + 0.009375831112265587, + 0.03295276686549187, + 0.03323345631361008, + 0.012944510206580162, + -0.041706379503011703, + 0.025914648547768593, + 0.030174151062965393, + 0.014126356691122055, + 0.02248372882604599, + 0.0036759087815880775, + 0.0009140335023403168, + -0.0012793485075235367, + 0.0893627256155014, + -0.0299682654440403, + 0.02160615473985672, + 0.04417218267917633, + 0.011334434151649475, + -0.01733045093715191, + -0.08580219745635986, + 0.0105465492233634, + -0.0010910485871136189, + -0.01050049439072609, + 0.08448060601949692, + 0.07084998488426208, + -0.00499091949313879, + 0.0025040628388524055, + -0.006714037619531155, + -0.005206972360610962, + -0.05556436628103256, + -0.0966198742389679, + 0.1689758151769638, + 0.0143450191244483, + 0.03579188883304596, + -0.10329142212867737, + -0.015243053436279297, + 0.09332321584224701, + 0.008697101846337318, + -0.04352220520377159, + -0.08054336905479431, + 0.026705633848905563, + 0.14721164107322693, + -0.002385042142122984, + -0.05746109038591385, + 0.018784577026963234, + 0.10421192646026611, + 0.039660222828388214, + 0.0409710593521595, + 0.10622353851795197, + 0.09024246037006378, + 0.002522810362279415, + 0.024903880432248116, + 0.02735091745853424, + 0.060085512697696686, + -0.0017608420457690954, + 0.003584047546610236, + 0.02670731022953987, + -0.03584801405668259, + -0.02187918871641159, + 0.021168118342757225, + -0.00762348435819149, + -0.05962866172194481, + -0.013089446350932121, + 0.02323010191321373, + 0.027965519577264786, + 0.06914739310741425, + -0.05049928277730942, + 0.02922941744327545, + 0.028659392148256302, + -0.05947839841246605, + 0.05637276545166969, + 0.05255650728940964, + -0.010411053895950317, + -0.008278166875243187, + -0.04766537994146347, + -0.12366069108247757, + 0.030465014278888702, + 0.00013085361570119858, + 0.032128140330314636, + 0.04259221628308296, + 0.021499060094356537, + 0.00375279039144516, + 0.0713067501783371, + 0.02708558738231659, + -0.008532686159014702, + -0.006281804293394089, + -0.04381237551569939, + 0.12141285836696625, + 0.10051020979881287, + 0.0014802692458033562, + 0.03445610776543617, + -0.06818720698356628, + 0.017130697146058083, + 0.049766018986701965, + -0.101842001080513, + -0.08296908438205719, + 0.06256444752216339, + 0.03921586647629738, + 0.03046710044145584, + 0.10825768113136292, + 0.011512940749526024, + 0.005230730399489403, + 0.05423043668270111, + -0.08202383667230606, + -0.0667533352971077, + -0.02116292156279087, + 0.03881089389324188, + -0.03389594331383705, + 0.024548720568418503, + 0.05810442566871643, + -0.016244828701019287, + -0.029061466455459595, + 0.05179385095834732, + 0.010683749802410603, + 0.00983046367764473, + -0.006054816767573357, + 0.02387930080294609, + 0.08193044364452362, + -0.005693188868463039, + -0.013211306184530258, + 0.027593664824962616, + 0.051229268312454224, + 0.04209590330719948, + 0.01836562156677246, + -0.018793325871229172, + -0.11360463500022888, + -0.008760695345699787, + 0.0781717598438263, + 0.05345386266708374, + -0.056430596858263016, + -0.03362216427922249, + -0.028318308293819427, + -0.049307338893413544, + -0.009060056880116463, + -0.011526191607117653, + 0.07274100929498672, + 0.017242776229977608, + 0.032199710607528687, + 0.08604419976472855, + -0.016052665188908577, + 0.018490906804800034, + -0.024630920961499214, + 0.023259969428181648, + 0.04637088626623154, + 0.033066749572753906, + -0.0375385507941246, + -0.07127895951271057, + -0.009788970462977886, + 0.016655512154102325, + -0.028947461396455765, + -0.004227755591273308, + 0.03065069019794464, + -0.009251004084944725, + 0.0477210097014904, + -0.0722513496875763, + 0.012178759090602398, + -0.1234005019068718, + 0.01049613207578659, + -0.00025842548348009586, + -0.035158053040504456, + -0.01364965084940195, + 0.09684853255748749, + 0.04605598747730255, + 0.056741323322057724, + -0.01744954288005829, + -0.05632244795560837, + -0.021669741719961166, + 0.05704730749130249, + 0.08692049980163574, + -0.030953887850046158, + 0.0007817652076482773, + 0.01813158392906189, + 0.045482292771339417, + 0.004471767693758011, + 0.07399888336658478, + 0.040188610553741455, + -0.028395257890224457, + -0.06494726985692978, + -0.045659083873033524, + 0.10116519033908844, + 0.0771910771727562, + -0.09601793438196182, + -0.05631272494792938, + -0.027462515980005264, + -0.05516643449664116, + -0.02065207064151764, + -0.0525970533490181, + 0.012513198889791965, + 0.04407810419797897, + -0.02918807417154312, + -0.13304215669631958, + -0.10536287724971771, + 0.03618479520082474, + -0.05555425584316254, + 0.021637538447976112, + -0.06295222043991089, + 0.037156254053115845, + 0.09378945827484131, + 0.020421963185071945, + -0.022969432175159454, + -0.03247111290693283, + -0.01447397843003273, + -0.07073706388473511, + -0.016013137996196747, + 0.0003811251372098923, + 0.023362331092357635, + -0.09457676112651825, + 0.03389350324869156, + -0.048120371997356415, + 0.07254493236541748, + -0.05955251678824425, + 0.1370476484298706, + 0.009384021162986755, + -0.05852793529629707, + -0.09808972477912903, + 0.0009142011404037476, + -0.03109685331583023, + 0.04899543523788452, + 0.022091086953878403, + 0.021921755746006966, + 0.02702271193265915, + -0.07844947278499603, + 0.0810246467590332, + 0.07411861419677734, + -0.027226194739341736, + -0.09629100561141968, + -0.023695094510912895, + -0.013731062412261963, + 0.0657021701335907, + 0.0005412332247942686, + -0.0006784871220588684, + 0.0008903555572032928, + 0.03201688826084137, + -0.020708387717604637, + 0.06397310644388199, + 0.0922405943274498, + 0.048202451318502426, + -0.09531234204769135 + ] + }, + "p244_016.wav": { + "name": "p244", + "embedding": [ + 0.04051810875535011, + 0.06690486520528793, + -0.033708859235048294, + 0.03671709820628166, + -0.03845207020640373, + 0.032780032604932785, + -0.14912444353103638, + 0.13018101453781128, + -0.0010805726051330566, + 0.12852822244167328, + -0.04286907985806465, + 0.10912932455539703, + -0.00573818851262331, + -0.177122101187706, + 0.0028319985140115023, + 0.051830168813467026, + -0.030473405495285988, + -0.05070249363780022, + -0.010931533761322498, + -0.016053451225161552, + 0.0456344299018383, + 0.06058346852660179, + 0.01461214479058981, + -0.004392530303448439, + 0.014387959614396095, + 0.06585042923688889, + -0.009662941098213196, + 0.0324079766869545, + 0.007896742783486843, + -0.050136029720306396, + -0.026401950046420097, + 0.08292513340711594, + -0.04552718997001648, + 0.008650950156152248, + 0.03522353619337082, + -0.013688315637409687, + -0.015335598960518837, + -0.06033455207943916, + -0.02980225160717964, + 0.009661932475864887, + -0.05967609956860542, + 0.08095196634531021, + 0.03956491872668266, + -0.034930385649204254, + 0.035889722406864166, + 0.011980006471276283, + -0.01231046486645937, + -0.04335959628224373, + -0.10692300647497177, + 0.1572565734386444, + 0.08295287936925888, + 0.0073030912317335606, + -0.0570632703602314, + -0.04932660609483719, + 0.08073550462722778, + 0.008689356036484241, + -0.0966644138097763, + -0.0378798246383667, + 0.07101687043905258, + 0.1358330249786377, + -0.019165491685271263, + -0.02883703075349331, + 0.05291098356246948, + 0.11967045068740845, + 0.06932578235864639, + 0.06779652088880539, + 0.08289850503206253, + 0.11162374168634415, + -0.019288862124085426, + -0.0031644494738429785, + 0.04786653816699982, + 0.08686845749616623, + 0.04189016669988632, + -0.0001112177997129038, + 0.01635715179145336, + 0.008836068212985992, + -0.028658390045166016, + -0.01963823474943638, + -0.015792587772011757, + -0.01580667681992054, + 0.0040189181454479694, + 0.008919058367609978, + 0.014408099465072155, + 0.05892181396484375, + -0.025555426254868507, + 0.04514877125620842, + 0.05674052983522415, + -0.022173216566443443, + 0.05973997339606285, + 0.011843579821288586, + 0.024693438783288002, + 0.0603720061480999, + -0.09063177555799484, + -0.06547486037015915, + 0.03342488408088684, + 0.005790857598185539, + 0.029917040839791298, + 0.0837230235338211, + 0.05385090783238411, + -0.01909828558564186, + 0.12960182130336761, + 0.023425666615366936, + -0.021913761273026466, + 0.019606955349445343, + -0.0787922590970993, + 0.11407951265573502, + 0.07720455527305603, + -0.027124259620904922, + 0.05694260820746422, + -0.07036172598600388, + 0.06096518784761429, + 0.04461970180273056, + -0.13190896809101105, + -0.058255910873413086, + 0.055646199733018875, + 0.028786802664399147, + -0.016899121925234795, + 0.1520422101020813, + 0.02525480091571808, + 0.05128249153494835, + 0.10620071738958359, + -0.09688061475753784, + -0.06232024356722832, + -0.02122008055448532, + 0.06690078973770142, + -0.0887972041964531, + 0.0786643847823143, + 0.048729509115219116, + -0.028080791234970093, + 0.013619333505630493, + 0.0625675618648529, + -0.0130501389503479, + 0.017447112128138542, + -0.014992785640060902, + -0.024081243202090263, + 0.028229236602783203, + -0.0367024801671505, + 0.003026180434972048, + 0.016970409080386162, + 0.008277904242277145, + 0.044564470648765564, + -0.01177924033254385, + -0.0393252819776535, + -0.14389453828334808, + 0.018038541078567505, + 0.027318662032485008, + 0.09478374570608139, + -0.013233949430286884, + -0.03757332265377045, + -0.0450616255402565, + -0.06943442672491074, + -0.0020399573259055614, + -0.02811126410961151, + 0.05477302893996239, + -0.014403223991394043, + -0.0010520702926442027, + 0.08142606914043427, + 0.020454496145248413, + 0.011113223619759083, + -0.025445638224482536, + -0.038584448397159576, + 0.007810632232576609, + 0.04612548276782036, + -0.07453037053346634, + -0.07559381425380707, + -0.014829359948635101, + 0.02373846247792244, + -0.018207039684057236, + 0.0480978861451149, + 0.037044707685709, + 0.03864092379808426, + 0.01082706544548273, + -0.08361036330461502, + 0.00647435337305069, + -0.09939318150281906, + -0.08051186054944992, + -0.00996298249810934, + 0.013587194494903088, + -0.019608015194535255, + 0.08560257405042648, + 0.01767372153699398, + 0.05805790051817894, + -0.027385732159018517, + -0.04634594917297363, + -0.08442296087741852, + 0.036416199058294296, + 0.06011306121945381, + -0.018580064177513123, + 0.03815450146794319, + 0.0541682243347168, + -0.026287520304322243, + 0.02207903191447258, + 0.04216459393501282, + 0.09922679513692856, + -0.011121436953544617, + 0.004603381734341383, + -0.06368358433246613, + 0.1052146926522255, + 0.09675245732069016, + -0.06895194947719574, + -0.05487356707453728, + -0.020620230585336685, + -0.08344074338674545, + 0.01203469093888998, + -0.019137948751449585, + 0.013086751103401184, + 0.012765067629516125, + 0.003509512171149254, + -0.11139048635959625, + -0.085530124604702, + 0.053799260407686234, + -0.07429026067256927, + -0.0024241183418780565, + -0.09297332912683487, + 0.04146304354071617, + 0.10614720731973648, + 0.045611411333084106, + -0.028677864000201225, + -0.03646695613861084, + 0.04328562691807747, + -0.022161992266774178, + 0.026895800605416298, + 0.07181604951620102, + 0.05712796375155449, + -0.1235656887292862, + -0.007126865442842245, + -0.06264682859182358, + 0.038573626428842545, + -0.05264133960008621, + 0.12364890426397324, + 0.03203369304537773, + -0.05668767914175987, + -0.0939750075340271, + 0.039070554077625275, + 0.009730945341289043, + 0.05214281752705574, + 0.012974734418094158, + 0.05390125513076782, + 0.06048962101340294, + -0.07861433178186417, + 0.10344332456588745, + 0.05393049865961075, + -0.019272439181804657, + -0.06681125611066818, + -0.04907776042819023, + -0.02446931041777134, + 0.04851621761918068, + 0.021766094490885735, + -0.07594799250364304, + -0.033533915877342224, + 0.02563137374818325, + -0.0046650259755551815, + 0.048620808869600296, + 0.14016841351985931, + 0.04956796392798424, + -0.13117723166942596 + ] + }, + "p244_337.wav": { + "name": "p244", + "embedding": [ + 0.06357072293758392, + 0.12591025233268738, + 0.07006644457578659, + -0.015215903520584106, + 0.02714518830180168, + 0.03264628350734711, + -0.06606484949588776, + 0.06581936031579971, + 0.05310523509979248, + 0.09040797501802444, + -0.09511347115039825, + 0.035431869328022, + -0.04092997685074806, + -0.11102703213691711, + -0.01735813170671463, + 0.017631951719522476, + -0.07755692303180695, + 0.011045120656490326, + -0.03363728150725365, + -0.03453698009252548, + -0.014923900365829468, + -0.0030812565237283707, + 0.07160196453332901, + -0.04828950762748718, + 0.002502996474504471, + 0.03974238783121109, + -0.01536097563803196, + -0.0005635404959321022, + -0.009577825665473938, + -0.06541632115840912, + 0.02475626766681671, + 0.022668685764074326, + 0.005876651033759117, + 0.03617662936449051, + 0.030242349952459335, + 0.007141558453440666, + 0.003515218384563923, + -0.029527120292186737, + -0.0292219165712595, + 0.07796933501958847, + -0.009438793174922466, + 0.0568702295422554, + 0.023875031620264053, + -0.05550827458500862, + 0.0599316842854023, + 0.011658438481390476, + -0.0370093509554863, + -0.010489502921700478, + -0.09112150967121124, + 0.12110947072505951, + 0.021221477538347244, + 0.020916149020195007, + -0.06362378597259521, + -0.001623939722776413, + 0.05629764497280121, + -0.02382519282400608, + -0.08513681590557098, + 0.0033728405833244324, + 0.035544488579034805, + 0.02385822683572769, + -0.01722223497927189, + -0.03426945582032204, + -0.024537622928619385, + 0.025006119161844254, + 0.0008355386089533567, + 0.03662567958235741, + 0.06661416590213776, + 0.054919660091400146, + -0.027265775948762894, + 0.04690919816493988, + 0.034029848873615265, + -0.008298519998788834, + 0.06274469941854477, + 9.690411388874054e-05, + 0.016773881390690804, + -0.0643966943025589, + -0.01949666626751423, + -0.020516373217105865, + 0.024980969727039337, + -0.036277443170547485, + 0.03005598857998848, + -0.03174200654029846, + 0.027659287676215172, + 0.018558474257588387, + -0.032030120491981506, + -0.023672999814152718, + 0.020671119913458824, + 0.03555385023355484, + 0.062437884509563446, + 0.05043475329875946, + 0.03648427873849869, + 0.056479066610336304, + -0.03731931373476982, + -0.09246250241994858, + -0.013015715405344963, + -0.03496254235506058, + 0.04955560714006424, + 0.017191331833600998, + 0.043338462710380554, + -0.0008696811273694038, + 0.07697781920433044, + 0.030423954129219055, + -0.01410999707877636, + -0.025233402848243713, + -0.0676155835390091, + 0.03485284000635147, + 0.08324001729488373, + -0.011431500315666199, + 0.02322409860789776, + -0.0007219631224870682, + 0.0694468766450882, + 0.060692198574543, + -0.04339031130075455, + -0.00032777339220046997, + -0.020498031750321388, + 0.02604079432785511, + 0.04291475564241409, + 0.06246257573366165, + 0.006132986396551132, + 0.02121514081954956, + 0.11166727542877197, + -0.06699950993061066, + 0.030972689390182495, + 0.003795386292040348, + -0.012878019362688065, + -0.0490633100271225, + 0.04782489687204361, + 0.020377017557621002, + -0.003418991342186928, + 0.0001584421843290329, + 0.02110578492283821, + 0.02077466994524002, + 0.003818400204181671, + -0.054585035890340805, + 0.0018689632415771484, + 0.02700348012149334, + -0.02421363815665245, + 0.022694306448101997, + 0.03226364403963089, + 0.04870469868183136, + 0.016613781452178955, + 0.06239878386259079, + -0.0503784716129303, + -0.015207886695861816, + 0.03068344108760357, + 0.012323945760726929, + -0.009966287761926651, + -0.012963440269231796, + -0.04543355852365494, + -0.02260706201195717, + -0.002241317182779312, + 0.09423957020044327, + -0.025701560080051422, + 0.03858235850930214, + 0.04459567740559578, + -0.001337686786428094, + 0.1019161120057106, + 0.034563373774290085, + -0.021709445863962173, + -0.04325784742832184, + -0.07394756376743317, + -0.010701078921556473, + 0.03200690075755119, + -0.1614108383655548, + -0.021555878221988678, + -0.03734583780169487, + -0.03584977611899376, + 0.006048415321856737, + 0.013734642416238785, + 0.07061280310153961, + -0.027480563148856163, + 0.007907764054834843, + 0.0013669952750205994, + 0.011461102403700352, + -0.02868250384926796, + -0.11659567058086395, + 0.020381135866045952, + -0.047726765275001526, + 0.01552228257060051, + 0.07287449389696121, + -0.04410259798169136, + 0.004859298933297396, + -0.04880005866289139, + -0.04692478105425835, + 0.015201244503259659, + 0.07477204501628876, + 0.017476705834269524, + -2.1323212422430515e-05, + 0.020455945283174515, + 0.034225694835186005, + -0.026310931891202927, + 0.05604342371225357, + -0.009844496846199036, + 0.0813305675983429, + -0.06089827045798302, + 0.027818668633699417, + -0.005416626110672951, + 0.014772187918424606, + 0.06832297146320343, + -0.021546149626374245, + -0.11031489074230194, + -0.06080133467912674, + -0.02116691693663597, + 0.027910171076655388, + -0.016317958012223244, + -0.03824947774410248, + 0.007023532874882221, + -0.011336670257151127, + -0.013859203085303307, + -0.09113756567239761, + 0.02342355065047741, + 0.02837616205215454, + 0.004606687463819981, + -0.06532706320285797, + 0.027152802795171738, + -0.03189672529697418, + 0.02507844939827919, + -0.032639749348163605, + 0.07138194888830185, + 0.0022166483104228973, + -0.014683031477034092, + -0.0430789440870285, + -0.01697285659611225, + 0.031949955970048904, + 0.011931685730814934, + -0.03563685342669487, + -0.0554065927863121, + 0.047775380313396454, + 0.007679596543312073, + 0.07990893721580505, + 0.03215881809592247, + -0.011561330407857895, + 0.015731219202280045, + 0.0026624388992786407, + -0.06192142516374588, + 0.003511176211759448, + 0.033074114471673965, + 0.005636034533381462, + 0.03974713757634163, + -0.024308715015649796, + 0.03552728891372681, + 0.027024682611227036, + 0.01616571843624115, + -0.007707834243774414, + -0.014502554200589657, + -0.06470315903425217, + -0.043164581060409546, + -0.023556098341941833, + -0.04584721848368645, + 0.021824803203344345, + -0.022979341447353363, + 0.06951957941055298, + 0.01898857206106186, + 0.08085615932941437, + 0.011693358421325684, + -0.047889843583106995 + ] + }, + "p244_396.wav": { + "name": "p244", + "embedding": [ + 0.06517630815505981, + 0.10721991956233978, + -0.026210322976112366, + 0.02655503898859024, + -0.03522571548819542, + 0.06942230463027954, + -0.11102457344532013, + 0.12470437586307526, + -0.028148166835308075, + 0.16116848587989807, + -0.05939150229096413, + 0.12537911534309387, + 0.002466081641614437, + -0.16047430038452148, + -0.025566497817635536, + 0.039198294281959534, + -0.044055912643671036, + -0.003115265630185604, + -0.04788688197731972, + 0.003106349613517523, + 0.04585167393088341, + 0.04467109218239784, + 0.04544520378112793, + -0.04946667701005936, + 0.02919802814722061, + 0.05480317771434784, + -0.0013365903869271278, + 0.04785804823040962, + 0.011247104965150356, + -0.10752403736114502, + -0.04367070645093918, + 0.10983128845691681, + -0.042708106338977814, + 0.04068087786436081, + 0.05139332264661789, + -0.01772719994187355, + -0.012709896080195904, + -0.06883697211742401, + -0.013414707034826279, + 0.005680189933627844, + -0.022992700338363647, + 0.06731124222278595, + 0.008581933565437794, + -0.03604145720601082, + 0.0368812121450901, + 0.004855903796851635, + -0.019964639097452164, + -0.04552185535430908, + -0.07436802983283997, + 0.1696459949016571, + 0.06883874535560608, + 0.011203248053789139, + -0.06979367136955261, + -0.07916714251041412, + 0.07860253751277924, + -0.0017830193974077702, + -0.11333741247653961, + -0.027933157980442047, + 0.04430707171559334, + 0.14919014275074005, + -0.010751070454716682, + -0.028372839093208313, + 0.03801906853914261, + 0.11634698510169983, + 0.040157102048397064, + 0.088083915412426, + 0.0870276689529419, + 0.08878590166568756, + 0.006489753723144531, + 0.05652322992682457, + 0.028659621253609657, + 0.08469879627227783, + 0.06456289440393448, + -0.010897435247898102, + 0.03275791183114052, + -0.024754337966442108, + -0.04490974545478821, + -0.02952863834798336, + -0.025987200438976288, + -0.026346305385231972, + -0.007786503527313471, + 0.006081285420805216, + 0.027438336983323097, + 0.03851122781634331, + -0.030722923576831818, + 0.03364578261971474, + 0.024736011400818825, + -0.04859985038638115, + 0.048089176416397095, + 0.038405902683734894, + 0.03868989273905754, + 0.04249880835413933, + -0.08509248495101929, + -0.11658293008804321, + 0.029262281954288483, + 0.014601492322981358, + 0.017014412209391594, + 0.08175350725650787, + 0.049749284982681274, + -0.027871903032064438, + 0.09385992586612701, + 0.03826487809419632, + -0.013534833677113056, + 0.0005872240290045738, + -0.07795710116624832, + 0.11196853220462799, + 0.10102922469377518, + -0.016416946426033974, + 0.046119365841150284, + -0.06792338192462921, + 0.08339055627584457, + 0.06787735223770142, + -0.14817942678928375, + -0.08350761979818344, + 0.019396947696805, + -0.024958504363894463, + 0.0075767082162201405, + 0.09991246461868286, + 0.02037220448255539, + 0.04211430996656418, + 0.08934465050697327, + -0.10430359840393066, + -0.06072365492582321, + -0.04291628673672676, + 0.055879466235637665, + -0.09226059913635254, + 0.0775848776102066, + 0.03358490392565727, + -0.0186989214271307, + -0.011364801786839962, + 0.06770117580890656, + -0.015590742230415344, + 0.01835024170577526, + 0.008083555847406387, + -0.04789236560463905, + 0.022914139553904533, + -0.058133624494075775, + 0.013061843812465668, + 0.012555889785289764, + 0.02218298800289631, + 0.05212775990366936, + -0.01836366392672062, + -0.0316888652741909, + -0.09081701934337616, + 0.0176241472363472, + 0.04111219942569733, + 0.04795978218317032, + -0.01748806983232498, + -0.03008992224931717, + -0.014394992962479591, + -0.05571184307336807, + 0.03071283921599388, + -0.03396749123930931, + 0.05361219868063927, + 0.01325300894677639, + 0.015651697292923927, + 0.11935000866651535, + 0.008567150682210922, + -0.001899931812658906, + -0.03708351030945778, + -0.019476210698485374, + 0.031346894800662994, + 0.058785729110240936, + -0.08987122774124146, + -0.06835330277681351, + -0.0011888910084962845, + -0.016794703900814056, + -0.0119209298864007, + 0.04924074932932854, + 0.0498056560754776, + 0.018354468047618866, + 0.03197338059544563, + -0.059796907007694244, + -0.02137620747089386, + -0.11094969511032104, + -0.06660529971122742, + -0.026609044522047043, + -0.053207144141197205, + -0.022704333066940308, + 0.09328952431678772, + 0.02344149351119995, + 0.03072524629533291, + -0.0297149159014225, + -0.04843574017286301, + -0.07187207788228989, + 0.05697520077228546, + 0.06802003085613251, + 0.0008193914545699954, + 0.022981014102697372, + 0.03956327214837074, + -0.0033469372428953648, + 0.033217623829841614, + 0.05818531662225723, + 0.08356843888759613, + -0.017114058136940002, + 0.001056239940226078, + -0.09554487466812134, + 0.10885017365217209, + 0.11455187201499939, + -0.07943351566791534, + -0.09818488359451294, + -0.03901026397943497, + -0.08240342885255814, + 0.02317032217979431, + -0.035247549414634705, + 0.0040632588788867, + 0.03994818031787872, + -0.01680007204413414, + -0.1005466878414154, + -0.09014047682285309, + 0.10579557716846466, + -0.06792503595352173, + -0.021382413804531097, + -0.0751475915312767, + 0.0429789237678051, + 0.0774446502327919, + 0.04907786846160889, + -0.041583120822906494, + 0.006374651566147804, + 0.06434763967990875, + -0.049181804060935974, + 0.0031090732663869858, + 0.04416338726878166, + 0.023342810571193695, + -0.09791085124015808, + 0.01773425191640854, + -0.04863790050148964, + 0.04365210235118866, + -0.09506496787071228, + 0.14368534088134766, + -0.005144298542290926, + -0.07950660586357117, + -0.09214206039905548, + 0.07147965580224991, + -0.01729930005967617, + 0.02507266029715538, + 0.029670685529708862, + 0.051528457552194595, + 0.03800062835216522, + -0.11955156922340393, + 0.09893016517162323, + 0.03362716734409332, + 0.00511011341586709, + -0.0811774730682373, + -0.07450739294290543, + -0.0336877778172493, + 0.03602423518896103, + 0.0038190397899597883, + -0.07339638471603394, + 0.01095831673592329, + 0.015445513650774956, + 0.0006300406530499458, + 0.05763588100671768, + 0.13967403769493103, + 0.04407641664147377, + -0.12899541854858398 + ] + }, + "p244_266.wav": { + "name": "p244", + "embedding": [ + 0.06275972723960876, + 0.10458409786224365, + -0.016859009861946106, + 0.041719552129507065, + -0.05976272374391556, + 0.08425871282815933, + -0.1139720231294632, + 0.11842691898345947, + -0.06820785999298096, + 0.1367681324481964, + -0.059513628482818604, + 0.11924424767494202, + -0.029219742864370346, + -0.15291652083396912, + -0.055678531527519226, + 0.056495338678359985, + -0.05656929314136505, + -0.03382333368062973, + -0.053548652678728104, + -0.012108069844543934, + 0.019336778670549393, + 0.026876257732510567, + 0.06881733238697052, + 0.010827560909092426, + 0.03989651799201965, + 0.05641339346766472, + -0.0027742963284254074, + 0.055488113313913345, + 0.030304603278636932, + -0.08616435527801514, + -0.050449904054403305, + 0.09712797403335571, + -0.04303281009197235, + 0.01880800724029541, + 0.034522153437137604, + -0.0034501992631703615, + 0.018394574522972107, + -0.07735978066921234, + -0.03030386194586754, + -0.003677834989503026, + -0.027858294546604156, + 0.08223546296358109, + 0.020708100870251656, + -0.034314870834350586, + 0.022450122982263565, + -0.03282851725816727, + -0.024700362235307693, + -0.028004543855786324, + -0.10558931529521942, + 0.15091395378112793, + 0.06254488974809647, + 0.008824310265481472, + -0.0832078605890274, + -0.07657890021800995, + 0.11659140139818192, + -0.027609556913375854, + -0.13063302636146545, + -0.03658204525709152, + 0.05352015420794487, + 0.17844796180725098, + -0.015451924875378609, + -0.00901712104678154, + 0.024675089865922928, + 0.12304750084877014, + 0.0773555338382721, + 0.07592643797397614, + 0.0871802270412445, + 0.09822160005569458, + -0.003057264257222414, + 0.035391438752412796, + 0.052185989916324615, + 0.0679408460855484, + 0.03263004869222641, + -0.005798683501780033, + 0.01762537658214569, + -0.021588413044810295, + -0.03007441759109497, + -0.006682452280074358, + -0.020017992705106735, + -0.03128517419099808, + -0.040192827582359314, + 0.0009146551601588726, + 0.003359758760780096, + 0.02354622073471546, + -0.03548082709312439, + 0.0556405633687973, + 0.008179174736142159, + -0.03888179361820221, + 0.062490176409482956, + 0.05662870407104492, + 0.006768522784113884, + 0.047149911522865295, + -0.0548359751701355, + -0.08042454719543457, + 0.0018875326495617628, + 0.010982846841216087, + 0.012556401081383228, + 0.0741402804851532, + 0.042389899492263794, + -0.019322898238897324, + 0.11022689938545227, + 0.06383726000785828, + 0.005732770077884197, + 0.01422690600156784, + -0.08839423209428787, + 0.11207915842533112, + 0.08923239260911942, + -0.011756308376789093, + 0.05343710258603096, + -0.013429244048893452, + 0.06370701640844345, + 0.08137749135494232, + -0.1313275843858719, + -0.08043543994426727, + 0.024216052144765854, + -0.012891063466668129, + 0.01359106320887804, + 0.08228619396686554, + 0.0016628594603389502, + 0.032983340322971344, + 0.07362677901983261, + -0.07221278548240662, + -0.050070129334926605, + -0.01869276538491249, + 0.06632186472415924, + -0.06181447207927704, + 0.0451107956469059, + 0.04258367419242859, + -0.01631988026201725, + -0.019103124737739563, + 0.0688035786151886, + -0.005099877715110779, + -0.00914565846323967, + 0.05334053188562393, + -0.06745366752147675, + 0.030854910612106323, + -0.021866487339138985, + 0.00345616415143013, + 0.06318770349025726, + 0.034494396299123764, + 0.051546044647693634, + -0.020824428647756577, + -0.008118115365505219, + -0.08988383412361145, + 0.0050772977992892265, + 0.05215409770607948, + 0.06953738629817963, + -0.010564915835857391, + -0.01703966036438942, + -0.040006499737501144, + -0.05445738881826401, + 0.04455437883734703, + -0.011390249244868755, + 0.09923287481069565, + -0.019289400428533554, + 0.01112386118620634, + 0.11131057143211365, + 0.007414557505398989, + -0.009932797402143478, + -0.04962749779224396, + 0.004140329547226429, + 0.020935652777552605, + 0.05963125824928284, + -0.05633137747645378, + -0.07001110911369324, + 0.021303271874785423, + 0.018475018441677094, + -0.01819244772195816, + 0.06341169029474258, + 0.04877929389476776, + 0.00554093811661005, + 0.03536195680499077, + -0.05592143535614014, + 0.015182938426733017, + -0.08435918390750885, + -0.03751921281218529, + -0.01346663199365139, + -0.04503343254327774, + -0.026056470349431038, + 0.08853857219219208, + 0.06391701102256775, + 0.04124690219759941, + 0.005767180118709803, + -0.08943105489015579, + -0.07201839983463287, + 0.06090395152568817, + 0.046102941036224365, + 0.006043666508048773, + 0.032095517963171005, + 0.07614442706108093, + -0.01004391722381115, + 0.05742378905415535, + 0.07475529611110687, + 0.05713532119989395, + -0.029169835150241852, + -0.013026731088757515, + -0.08042380958795547, + 0.06478587538003922, + 0.09427034854888916, + -0.1158149242401123, + -0.092522531747818, + -0.044841885566711426, + -0.06462964415550232, + 0.03804730623960495, + -0.024530325084924698, + 0.018008101731538773, + 0.0534059964120388, + -0.03458288311958313, + -0.10203512758016586, + -0.1257103830575943, + 0.14744949340820312, + -0.0744117796421051, + -0.008387519046664238, + -0.061107221990823746, + 0.022889189422130585, + 0.06047376990318298, + 0.03595353662967682, + -0.01875624805688858, + 0.030477866530418396, + 0.05256212502717972, + -0.05230649560689926, + -0.004871675278991461, + 0.07330705225467682, + -0.0023340322077274323, + -0.1180487796664238, + 0.01086245384067297, + -0.07277999073266983, + 0.08402067422866821, + -0.050315700471401215, + 0.175079345703125, + -0.009606784209609032, + -0.04910197854042053, + -0.08703337609767914, + 0.04491184651851654, + -0.05352848768234253, + 0.05318020284175873, + 0.0428909957408905, + 0.0743495300412178, + 0.021179206669330597, + -0.06641532480716705, + 0.10372385382652283, + 0.0538320317864418, + -0.04913196340203285, + -0.08250683546066284, + -0.04653572291135788, + -0.0360957607626915, + 0.03450682386755943, + 0.004789314232766628, + -0.07222826778888702, + 0.01192548405379057, + 0.011586499400436878, + -0.024299541488289833, + 0.08379250019788742, + 0.13765215873718262, + 0.09894561767578125, + -0.10718527436256409 + ] + }, + "p244_088.wav": { + "name": "p244", + "embedding": [ + 0.04236525297164917, + 0.0754239484667778, + -0.045186206698417664, + 0.017724841833114624, + -0.05314382165670395, + 0.039793021976947784, + -0.10560227930545807, + 0.08876095712184906, + -0.024642176926136017, + 0.13936582207679749, + -0.056469183415174484, + 0.11251355707645416, + -0.025432568043470383, + -0.131851464509964, + 0.016572829335927963, + 0.05110277235507965, + 0.00490798382088542, + 0.002525883726775646, + -0.022889379411935806, + -0.011963474564254284, + 0.03135685250163078, + 0.02465794049203396, + 0.027101527899503708, + -0.0571042001247406, + 0.030960900709033012, + 0.06672944873571396, + -0.020442238077521324, + -0.0123983733355999, + -0.0274873785674572, + -0.04356111213564873, + -0.014801619574427605, + 0.0810440331697464, + -0.049000270664691925, + 0.021360039710998535, + 0.047575559467077255, + 0.014525718986988068, + -0.05328334867954254, + -0.04646814987063408, + 0.018019547685980797, + -0.005874117370694876, + -0.06566236168146133, + 0.07170110940933228, + 0.021989118307828903, + -0.05264194309711456, + 0.03709504008293152, + -0.02321106567978859, + -0.01464831456542015, + 0.0007167396834120154, + -0.06337251514196396, + 0.1360478699207306, + 0.03794759511947632, + 0.024134796112775803, + -0.08403553068637848, + -0.035290926694869995, + 0.06470327079296112, + 0.019074328243732452, + -0.10654830187559128, + -0.058657824993133545, + 0.04420551657676697, + 0.11027829349040985, + -0.004422395955771208, + -0.03993586450815201, + 0.021196871995925903, + 0.07929973304271698, + 0.022144824266433716, + 0.0743233785033226, + 0.06557686626911163, + 0.11367546021938324, + 0.004306766204535961, + 0.033876389265060425, + 0.04230637475848198, + 0.07662834227085114, + 0.05118350312113762, + -0.013198355212807655, + 0.01101980172097683, + -0.029172873124480247, + -0.03249881789088249, + -0.01671185903251171, + -0.015918301418423653, + -0.05581733211874962, + -0.04373576492071152, + -0.03005111590027809, + 0.017875809222459793, + 0.012417186051607132, + -0.012060903012752533, + 0.0020107373129576445, + 0.10785671323537827, + -0.047186147421598434, + 0.04970058426260948, + 0.06769898533821106, + -0.01986728049814701, + 0.022695254534482956, + -0.08581473678350449, + -0.06847154349088669, + 0.011790100485086441, + 0.0014627976343035698, + 0.02513846568763256, + 0.0700957402586937, + 0.03988618776202202, + 0.02200813964009285, + 0.0703100636601448, + 0.023964952677488327, + 0.014909503981471062, + -0.010527588427066803, + -0.060880087316036224, + 0.1303771585226059, + 0.10453125834465027, + -0.0334869921207428, + 0.029558852314949036, + -0.04625929892063141, + 0.028897378593683243, + 0.05807436630129814, + -0.09177964180707932, + -0.057013027369976044, + -0.010535283014178276, + -0.019309118390083313, + -0.0007236426463350654, + 0.11596311628818512, + 0.02552586793899536, + 0.0073189823888242245, + 0.10318364948034286, + -0.11327483505010605, + -0.09830202162265778, + -0.02680278941988945, + 0.010000979527831078, + -0.0974183902144432, + 0.06776617467403412, + 0.0634193941950798, + 0.009705807082355022, + 0.009710841812193394, + 0.07640868425369263, + 0.015296265482902527, + 0.04788470268249512, + -0.02279328927397728, + -0.004113178700208664, + 0.019310237839818, + -0.02490140311419964, + 0.022229334339499474, + 0.07778877764940262, + 0.018070844933390617, + 0.08573661744594574, + 0.001061081886291504, + 0.015682900324463844, + -0.10538306087255478, + 0.011464020237326622, + 0.08083142340183258, + 0.026681188493967056, + -0.047883540391922, + -0.02291342429816723, + -0.009277289733290672, + -0.0929560661315918, + 0.025853481143712997, + -0.02502596192061901, + 0.07388801872730255, + 0.007943443953990936, + -0.009611682966351509, + 0.13422970473766327, + 0.012996269389986992, + 0.0029671199154108763, + -0.06125715374946594, + -0.01954694092273712, + 0.004312800709158182, + 0.05019153282046318, + -0.1347048580646515, + -0.08504339307546616, + -0.03595571592450142, + -0.003675208194181323, + 0.004475640133023262, + 0.03553519770503044, + 0.08206185698509216, + 0.002802877454087138, + 0.027015861123800278, + -0.04695117101073265, + 0.006720840930938721, + -0.07637880742549896, + -0.05834929645061493, + -0.022947674617171288, + -0.07970127463340759, + -0.004842136055231094, + 0.09929104894399643, + -0.007080617360770702, + 0.018930353224277496, + -0.034353189170360565, + -0.054217901080846786, + -0.07930701225996017, + 0.045394912362098694, + 0.029179122298955917, + -0.04350883886218071, + 0.015973228961229324, + 0.04174887388944626, + -0.044578202068805695, + -0.017151078209280968, + 0.03466076776385307, + 0.09698228538036346, + -0.0734417662024498, + 0.004493778105825186, + -0.07623273134231567, + 0.10808276385068893, + 0.11594148725271225, + -0.07232116907835007, + -0.07124092429876328, + -0.07698666304349899, + -0.03539056330919266, + 0.01261798944324255, + -0.06289085745811462, + -0.02799104154109955, + 0.023715287446975708, + -0.05077308043837547, + -0.0756128579378128, + -0.1193140372633934, + 0.062068209052085876, + -0.03669997677206993, + 0.007340624928474426, + -0.07714134454727173, + 0.032271284610033035, + -0.0031958750914782286, + 0.04009813070297241, + -0.0646197497844696, + 0.044082652777433395, + 0.03337187319993973, + -0.03719500079751015, + 0.012969679199159145, + 0.058170340955257416, + 0.02635194920003414, + -0.0319247841835022, + -0.05222412943840027, + -0.06367869675159454, + 0.06894227862358093, + -0.05995966121554375, + 0.12644216418266296, + -0.02645149454474449, + -0.06243101879954338, + -0.06587567180395126, + -0.002566605806350708, + 0.009437533095479012, + 0.013487285003066063, + 0.06623219698667526, + 0.06982529908418655, + 0.017574332654476166, + -0.06234272941946983, + 0.10064071416854858, + 0.05192526429891586, + 0.0380561426281929, + -0.056160181760787964, + -0.04067622125148773, + -0.04052918031811714, + 0.03014150820672512, + -0.004749623127281666, + -0.09433123469352722, + 0.06469447910785675, + 0.02332175150513649, + 0.024281909689307213, + 0.04411012679338455, + 0.09125831723213196, + 0.06726011633872986, + -0.08644570410251617 + ] + }, + "p244_251.wav": { + "name": "p244", + "embedding": [ + 0.049328289926052094, + 0.059953488409519196, + -0.01054478157311678, + 0.020352214574813843, + -0.0199117548763752, + 0.05276632308959961, + -0.11319814622402191, + 0.06005311757326126, + -0.03570986166596413, + 0.16524741053581238, + -0.10067404061555862, + 0.09237560629844666, + -0.010569012723863125, + -0.17408621311187744, + -0.021804997697472572, + 0.04224531352519989, + -0.04727105796337128, + 0.00436815619468689, + -0.04831356555223465, + -0.03102274239063263, + 0.06311007589101791, + 0.09043288230895996, + 0.04414050281047821, + -0.05400954931974411, + 0.0042407820001244545, + 0.06681108474731445, + -0.025087375193834305, + 0.03582890331745148, + -0.028526578098535538, + -0.14018011093139648, + -0.07212929427623749, + 0.11119742691516876, + -0.027697492390871048, + 0.025717835873365402, + -0.0017318916507065296, + 0.018676547333598137, + 0.00516867870464921, + -0.03892746567726135, + -0.005725560709834099, + 0.00348449544981122, + -0.017069881781935692, + 0.0355876162648201, + -0.015043491497635841, + -0.008019731380045414, + 0.06229155510663986, + 0.0017029240261763334, + -0.03863031417131424, + -0.04859350621700287, + -0.08093905448913574, + 0.1773947775363922, + 0.06079889088869095, + -0.005341731011867523, + -0.0387200228869915, + -0.07986727356910706, + 0.07623015344142914, + -0.026826025918126106, + -0.13215351104736328, + -0.026669472455978394, + 0.07634372264146805, + 0.14381921291351318, + -0.022608619183301926, + -0.07395382225513458, + 0.05345578119158745, + 0.06411219388246536, + -0.025302492082118988, + 0.07952225208282471, + 0.07111746072769165, + 0.03671516478061676, + 0.0023251762613654137, + -0.015842296183109283, + 0.009580474346876144, + 0.0881299078464508, + 0.10273173451423645, + -0.02085926942527294, + 0.04295113682746887, + 0.013505339622497559, + -0.046422675251960754, + 0.01220475509762764, + -0.04360032081604004, + -0.005511448718607426, + 0.011075293645262718, + -0.032045405358076096, + 0.014161832630634308, + -0.034202009439468384, + -0.03750857710838318, + 0.009857445023953915, + 0.03544248268008232, + -0.014740318059921265, + 0.05080818012356758, + 0.0199776329100132, + 0.03391994535923004, + 0.035608358681201935, + -0.05160940811038017, + -0.0641646683216095, + 0.058570489287376404, + 0.05968838930130005, + -0.0176845695823431, + 0.04797288775444031, + 0.046034883707761765, + -0.07386460900306702, + 0.102744922041893, + -0.005570786073803902, + 0.014623268507421017, + -0.005881818942725658, + -0.10371869057416916, + 0.08173513412475586, + 0.14124202728271484, + -0.002029349096119404, + 0.03605691343545914, + -0.05607824772596359, + 0.08291968703269958, + 0.07880977541208267, + -0.14043837785720825, + -0.06603536754846573, + -0.006447142921388149, + -0.018748588860034943, + 0.02126128599047661, + 0.09051737189292908, + 0.00649992935359478, + 0.009501633234322071, + 0.11749141663312912, + -0.1311604231595993, + -0.05950690060853958, + -0.012895062565803528, + 0.019873417913913727, + -0.1369878649711609, + 0.05963912606239319, + 0.04787156730890274, + 0.002567657735198736, + 0.009192496538162231, + 0.0749645084142685, + -0.045056115835905075, + 0.023208580911159515, + -0.040937650948762894, + -0.050383709371089935, + -0.03924104943871498, + -0.07999251782894135, + -0.04218427836894989, + 0.05701034143567085, + 0.029537491500377655, + 0.03700511157512665, + -0.017973028123378754, + -0.0868062824010849, + -0.140301913022995, + 0.014460212551057339, + 0.0260839331895113, + 0.01212030928581953, + -0.0024296967312693596, + -0.00913532916456461, + -0.03982291370630264, + -0.08167420327663422, + 0.0697038471698761, + -0.058382548391819, + 0.03966904431581497, + 0.0042314352467656136, + 0.0007226946763694286, + 0.08827710151672363, + 0.020843632519245148, + -0.027329083532094955, + -0.056936465203762054, + -0.05073275417089462, + 0.022085975855588913, + 0.019711047410964966, + -0.08167755603790283, + -0.06705820560455322, + -0.017035579308867455, + 0.019519371911883354, + 0.011421735398471355, + 0.05200369656085968, + 0.07803940773010254, + 0.019217800348997116, + 0.006655774544924498, + -0.0657368004322052, + 0.00040613164310343564, + -0.10277131199836731, + -0.09155014157295227, + 0.008352401666343212, + -0.06651359796524048, + 0.023270629346370697, + 0.11062470078468323, + -0.02021205425262451, + -0.02643536776304245, + -0.10284361243247986, + -0.061432551592588425, + -0.0966632068157196, + 0.06050602346658707, + 0.06663714349269867, + 0.02348233386874199, + 0.020204821601510048, + 0.02230023592710495, + -0.03305267542600632, + 0.08827963471412659, + 0.04610329121351242, + 0.13187098503112793, + -0.007613573223352432, + 0.04823947325348854, + -0.039790716022253036, + 0.09473560750484467, + 0.08938881754875183, + -0.005552427843213081, + -0.08788211643695831, + -0.02698804996907711, + -0.08806759119033813, + 0.09903028607368469, + -0.02297016605734825, + -0.04481854289770126, + 0.03193691745400429, + -0.008596988394856453, + -0.10733656585216522, + -0.05774542689323425, + 0.0790112167596817, + 0.009053654037415981, + -0.04344800114631653, + -0.06411679834127426, + 0.0662645697593689, + 0.052377767860889435, + 0.0593242421746254, + -0.018326755613088608, + 0.024680186063051224, + 0.04674012213945389, + -0.07952851802110672, + 0.012883469462394714, + 0.02382596954703331, + 0.024478016421198845, + -0.06606549024581909, + 0.005899862386286259, + -0.10745332390069962, + 0.023255206644535065, + -0.07051318883895874, + 0.1077079176902771, + -0.014976700767874718, + -0.05343962460756302, + -0.06335050612688065, + 0.08788689970970154, + -0.03633427247405052, + 0.027967587113380432, + 0.050388187170028687, + 0.03291618078947067, + 0.08403430879116058, + -0.11826460808515549, + 0.0543389655649662, + 0.052195750176906586, + 0.008650942705571651, + -0.04869018495082855, + -0.06905244290828705, + -0.0529961958527565, + -0.005277123302221298, + -0.028453629463911057, + -0.08558467030525208, + 0.020153438672423363, + 0.01427987590432167, + 0.04202116280794144, + 0.03267994523048401, + 0.10085238516330719, + -0.009471339173614979, + -0.1218496710062027 + ] + }, + "p244_406.wav": { + "name": "p244", + "embedding": [ + 0.022433273494243622, + 0.11010242998600006, + -0.00825293455272913, + 0.0286464411765337, + -0.07395180314779282, + 0.05012383684515953, + -0.12714862823486328, + 0.14757871627807617, + -0.04032038152217865, + 0.10994261503219604, + -0.07795362919569016, + 0.12456173449754715, + -0.06213505193591118, + -0.18791791796684265, + -0.023377323523163795, + 0.08217857033014297, + 0.008465186692774296, + -0.004512334708124399, + -0.004613865632563829, + -0.011728457175195217, + 0.014283307828009129, + -0.004827337339520454, + 0.03108474239706993, + 0.008688081987202168, + 0.046692222356796265, + 0.0611715242266655, + 0.01224487740546465, + 0.0638929083943367, + 0.004131973255425692, + 0.0055716331116855145, + -0.027185827493667603, + 0.10582759976387024, + -0.05903424695134163, + 0.021410971879959106, + 0.08168889582157135, + 0.011746183037757874, + -0.015315328724682331, + -0.03388787806034088, + 0.009365646168589592, + -0.024647563695907593, + -0.046410251408815384, + 0.07175841182470322, + 0.024881821125745773, + 0.008763165213167667, + 0.04082033410668373, + 0.0612298883497715, + -0.004612419288605452, + -0.0269665215164423, + -0.12224484980106354, + 0.12598580121994019, + 0.01978444680571556, + 0.002172099193558097, + -0.10446738451719284, + -0.0774807408452034, + 0.10754960775375366, + -0.021365001797676086, + -0.09653037041425705, + -0.05904841050505638, + 0.10277979075908661, + 0.1550615131855011, + -0.02624199166893959, + -0.043827105313539505, + -0.02491120621562004, + 0.11231652647256851, + 0.04204030707478523, + 0.10449327528476715, + 0.0451502650976181, + 0.13080008327960968, + -0.01876417174935341, + 0.02138260006904602, + 0.05753375217318535, + 0.04959304258227348, + 0.02698889933526516, + -0.01137266494333744, + -0.0019854996353387833, + -0.008908815681934357, + 0.01426773052662611, + 0.041263844817876816, + -0.02699982188642025, + -0.03687213733792305, + -0.043809905648231506, + 0.012480275705456734, + -0.0067670284770429134, + -0.015618935227394104, + -0.005444853100925684, + 0.06822241842746735, + 0.056879524141550064, + -0.005852878093719482, + 0.08322931081056595, + 0.05207604542374611, + -0.05484650284051895, + 0.06743285059928894, + -0.09576766192913055, + -0.06958533078432083, + 0.009045041166245937, + -0.019883116707205772, + 0.03549882769584656, + 0.07247328758239746, + 0.012957296334207058, + 0.013708283193409443, + 0.10199087858200073, + 0.061259057372808456, + 0.01730342209339142, + 0.04120148718357086, + -0.08406860381364822, + 0.13011270761489868, + 0.06231855973601341, + -0.012005441822111607, + 0.04700308293104172, + -0.03417704626917839, + 0.04836944490671158, + 0.07589543610811234, + -0.1075824648141861, + -0.07824350148439407, + -0.01381006371229887, + 0.016014596447348595, + -0.04581049457192421, + 0.1094963327050209, + -0.036450717598199844, + 0.028939707204699516, + 0.11604727059602737, + -0.0929003581404686, + -0.07065986841917038, + -0.006767651066184044, + 0.018073400482535362, + -0.06184563785791397, + 0.035943079739809036, + 0.060829613357782364, + 0.0009416225366294384, + 0.025887329131364822, + 0.08263947069644928, + 0.02154458314180374, + 0.023379093036055565, + 0.03917766362428665, + -0.06726950407028198, + 0.007558941841125488, + -0.013419078662991524, + 0.0044156648218631744, + 0.08153006434440613, + 0.055984947830438614, + 0.07435870170593262, + 0.012628359720110893, + -0.007919891737401485, + -0.10971485078334808, + -0.015739768743515015, + 0.07960822433233261, + 0.06753089278936386, + -0.03338081017136574, + -0.030068732798099518, + -0.029494402930140495, + -0.07300763577222824, + 0.02699226699769497, + 0.03174315392971039, + 0.10782495141029358, + -0.030381515622138977, + -0.006868352647870779, + 0.11232158541679382, + 0.0364680290222168, + -0.016050897538661957, + -0.08812564611434937, + -0.04741069674491882, + -0.010606169700622559, + 0.03333564102649689, + -0.12429565191268921, + -0.06682263314723969, + -0.017341116443276405, + 0.04887819662690163, + -0.03813241794705391, + 0.05993665009737015, + 0.04879587143659592, + 0.022781575098633766, + 0.033962611109018326, + -0.029881419613957405, + 0.006083779968321323, + -0.0786898210644722, + -0.07324090600013733, + -0.007931698113679886, + -0.011931668035686016, + -0.03465215489268303, + 0.06462141126394272, + 0.02420193701982498, + 0.06448564678430557, + 0.011100980453193188, + -0.06012969836592674, + -0.09225257486104965, + 0.057550642639398575, + 0.03213885799050331, + -0.0028893230482935905, + 0.0760091170668602, + 0.04881973937153816, + -0.0874478742480278, + 0.07650589942932129, + 0.07824760675430298, + 0.09871044754981995, + -0.06014077737927437, + 0.04279525205492973, + -0.07939570397138596, + 0.06016266718506813, + 0.09840571880340576, + -0.11393151432275772, + -0.10124827176332474, + -0.044690296053886414, + -0.04529865086078644, + 0.0433080717921257, + -0.04151226207613945, + 0.007362959906458855, + 0.026500094681978226, + -0.016556164249777794, + -0.0832802802324295, + -0.10136456787586212, + 0.05681251361966133, + -0.06221964955329895, + 0.008924389258027077, + -0.06465260684490204, + 0.04324430227279663, + 0.06933638453483582, + 0.018118569627404213, + -0.018436025828123093, + -0.008176364004611969, + 0.06551843136548996, + -0.04315779358148575, + -0.02036682888865471, + 0.05997240170836449, + 0.025921640917658806, + -0.04682108759880066, + -0.008312494494020939, + -0.06844659149646759, + 0.07077407091856003, + -0.018362656235694885, + 0.18124262988567352, + -0.005586482584476471, + -0.049223992973566055, + -0.055040910840034485, + -0.0043085478246212006, + -0.03021119348704815, + 0.040172625333070755, + 0.026781173422932625, + 0.07101870328187943, + 0.0014859841903671622, + -0.018747827038168907, + 0.16909834742546082, + 0.025779128074645996, + -0.058207977563142776, + -0.05218813568353653, + -0.04835975915193558, + -0.058003440499305725, + 0.021850500255823135, + -0.0049940901808440685, + -0.11896137148141861, + -0.019330821931362152, + 0.019596410915255547, + -0.012157253921031952, + 0.04467516019940376, + 0.14526787400245667, + 0.08396502584218979, + -0.07826828956604004 + ] + }, + "p244_018.wav": { + "name": "p244", + "embedding": [ + 0.03764362633228302, + 0.09154234081506729, + -0.01500939205288887, + 0.028700580820441246, + -0.04713848978281021, + 0.04220254719257355, + -0.14503705501556396, + 0.14676356315612793, + -0.026814399287104607, + 0.1316307634115219, + -0.07282541692256927, + 0.10995055735111237, + -0.030329391360282898, + -0.18260616064071655, + -0.024929527193307877, + 0.060952335596084595, + -0.057107873260974884, + -0.05216919258236885, + -0.029472116380929947, + -0.03406848385930061, + 0.03186372295022011, + 0.043869826942682266, + 0.02480209805071354, + 0.042479485273361206, + 0.009154178202152252, + 0.07734604179859161, + -0.012624327093362808, + 0.03543419390916824, + 0.014923883602023125, + -0.029815804213285446, + -0.026638299226760864, + 0.09449411928653717, + -0.044534169137477875, + 0.0047486284747719765, + 0.03883387893438339, + -0.015306773595511913, + -0.006794194225221872, + -0.05252738669514656, + -0.02585734613239765, + -0.0024617682211101055, + -0.06378418207168579, + 0.07526711374521255, + 0.026857584714889526, + -0.013827614486217499, + 0.04137516766786575, + 0.017740922048687935, + -0.02246253192424774, + -0.03978245332837105, + -0.10990358889102936, + 0.1443898230791092, + 0.10094386339187622, + -0.011521545238792896, + -0.0602971687912941, + -0.04417018964886665, + 0.09648551791906357, + -0.01685475744307041, + -0.12209080159664154, + -0.03975705802440643, + 0.09193167835474014, + 0.14617785811424255, + -0.03656116873025894, + -0.024837318807840347, + 0.041759323328733444, + 0.14488957822322845, + 0.07192541658878326, + 0.0860205739736557, + 0.0774093046784401, + 0.11114364862442017, + -0.04562363773584366, + -0.004283388610929251, + 0.06778092682361603, + 0.06189418584108353, + 0.052877843379974365, + -0.007849927060306072, + 0.009774241596460342, + -0.0023856530897319317, + -0.009205885231494904, + -0.005678159184753895, + -0.02607208862900734, + -0.018539177253842354, + -0.02201419323682785, + -0.0015125880017876625, + -0.0222533717751503, + 0.032405536621809006, + -0.01320338062942028, + 0.055061180144548416, + 0.05358836054801941, + -0.011499579064548016, + 0.07383372634649277, + 0.039092641323804855, + 0.022722944617271423, + 0.07295548915863037, + -0.07043106108903885, + -0.052647124975919724, + 0.022289332002401352, + -0.005592279136180878, + 0.02574138157069683, + 0.07316920161247253, + 0.05053160339593887, + -0.012173017486929893, + 0.13138136267662048, + 0.039022963494062424, + -0.015197357162833214, + 0.022221194580197334, + -0.10390225797891617, + 0.1305568367242813, + 0.07771643251180649, + -0.041435956954956055, + 0.043465472757816315, + -0.03624916821718216, + 0.056415800005197525, + 0.06254167854785919, + -0.12350660562515259, + -0.050076842308044434, + 0.03929123282432556, + 0.03178086876869202, + -0.02937980927526951, + 0.12179442495107651, + 0.006015018559992313, + 0.04337229207158089, + 0.1066557839512825, + -0.06533510237932205, + -0.05633750930428505, + -0.02094077132642269, + 0.05509558320045471, + -0.08800698071718216, + 0.060511376708745956, + 0.058736544102430344, + -0.004252209793776274, + 0.017218418419361115, + 0.08921100199222565, + -0.011730597354471684, + -0.009119277819991112, + 0.003968897275626659, + -0.0507071390748024, + 0.019811999052762985, + -0.018805263563990593, + 0.008205834776163101, + 0.026582758873701096, + 0.02569599449634552, + 0.03908529132604599, + -0.005167054478079081, + -0.029924875125288963, + -0.11901851743459702, + 0.01826886460185051, + 0.027276957407593727, + 0.09127062559127808, + 0.0017137329559773207, + -0.02138015814125538, + -0.037254586815834045, + -0.04874496906995773, + -0.0005164108006283641, + -0.017661932855844498, + 0.05890849605202675, + -0.04590122401714325, + -0.018569065257906914, + 0.09410692751407623, + 0.027656808495521545, + 0.010529249906539917, + -0.050668325275182724, + -0.027563506737351418, + 0.0026391465216875076, + 0.05307858809828758, + -0.08083528280258179, + -0.07554952800273895, + -0.0001614801585674286, + 0.052309438586235046, + -0.010271302424371243, + 0.06478386372327805, + 0.042986806482076645, + 0.013125678524374962, + 0.00799109973013401, + -0.07204458117485046, + 0.022329751402139664, + -0.09145520627498627, + -0.08002033084630966, + -0.007434266619384289, + 0.0012075421400368214, + -0.008884293027222157, + 0.0639994814991951, + 0.016127046197652817, + 0.05375587195158005, + -0.011737806722521782, + -0.08225305378437042, + -0.0935329869389534, + 0.05271512642502785, + 0.07052402198314667, + -0.01769179478287697, + 0.05305507034063339, + 0.07153312861919403, + -0.04968443140387535, + 0.04087692126631737, + 0.04003684222698212, + 0.11682800203561783, + -0.03704041242599487, + 0.017538178712129593, + -0.07418105006217957, + 0.04964343458414078, + 0.08312442898750305, + -0.10155589133501053, + -0.06480942666530609, + -0.025586828589439392, + -0.05473422259092331, + 0.03188405930995941, + -0.024246953427791595, + 0.006356997415423393, + 0.025086306035518646, + -0.0049482667818665504, + -0.1010873094201088, + -0.09280122071504593, + 0.08394641429185867, + -0.08323238790035248, + 0.011020710691809654, + -0.08684509247541428, + 0.04471810907125473, + 0.08881159871816635, + 0.029325654730200768, + -0.032305918633937836, + -0.012388265691697598, + 0.041262850165367126, + -0.010964948683977127, + 0.011134950444102287, + 0.06203185394406319, + 0.04745800048112869, + -0.12669628858566284, + -0.022570312023162842, + -0.08204594254493713, + 0.062097832560539246, + -0.03753640875220299, + 0.14323924481868744, + 0.025786053389310837, + -0.045844126492738724, + -0.0949782133102417, + 0.030293602496385574, + -0.004052481148391962, + 0.06212465465068817, + 0.03314443677663803, + 0.06611765921115875, + 0.03992925211787224, + -0.057246748358011246, + 0.11820288002490997, + 0.04609298333525658, + -0.04439686983823776, + -0.07164696604013443, + -0.03039267472922802, + -0.040580786764621735, + 0.02873329073190689, + 0.025070957839488983, + -0.09447844326496124, + -0.038386739790439606, + 0.014619055204093456, + -0.02579638361930847, + 0.07778245955705643, + 0.13773494958877563, + 0.07198118418455124, + -0.11946538090705872 + ] + }, + "p244_171.wav": { + "name": "p244", + "embedding": [ + 0.048756081610918045, + 0.10788099467754364, + -0.015114023350179195, + 0.011512534692883492, + -0.04713154211640358, + 0.06162680685520172, + -0.1253783404827118, + 0.13322007656097412, + -0.03776686638593674, + 0.13973170518875122, + -0.07304860651493073, + 0.13877861201763153, + -0.01722518913447857, + -0.178676575422287, + -0.0655965805053711, + 0.041443996131420135, + -0.0508502796292305, + -0.02661816030740738, + -0.03518000245094299, + -0.010728603228926659, + 0.06004888564348221, + 0.031563468277454376, + 0.025766754522919655, + 0.008738480508327484, + 0.004412919748574495, + 0.06819488108158112, + 0.027018524706363678, + 0.07064399123191833, + 0.047100163996219635, + -0.05526864156126976, + -0.0397224985063076, + 0.11563403904438019, + -0.030901232734322548, + 0.0389702282845974, + 0.05596928298473358, + -0.005339030176401138, + 0.016688555479049683, + -0.04657135531306267, + 0.005024332087486982, + 0.011187591589987278, + -0.02432718500494957, + 0.07588692009449005, + 0.018434898927807808, + -0.003303242614492774, + 0.03780677169561386, + 0.040311750024557114, + -0.013515792787075043, + -0.05391480028629303, + -0.08915295451879501, + 0.16478806734085083, + 0.07315248996019363, + -0.018548952415585518, + -0.0543912872672081, + -0.0677674412727356, + 0.0878400057554245, + -0.02745378017425537, + -0.1169440895318985, + -0.0463714599609375, + 0.08114601671695709, + 0.14538335800170898, + -0.026894118636846542, + -0.04318784922361374, + 0.022913847118616104, + 0.15118637681007385, + 0.04801703244447708, + 0.08850812911987305, + 0.08872583508491516, + 0.11048711091279984, + -0.02008085697889328, + 0.016718624159693718, + 0.051669590175151825, + 0.07550366222858429, + 0.04862320423126221, + -0.001224815845489502, + 0.04683710262179375, + -0.01575394719839096, + 0.014198355376720428, + 0.016827991232275963, + -0.02759290486574173, + -0.01795351132750511, + -0.016925204545259476, + 0.02255924418568611, + -0.02233215980231762, + 0.026395462453365326, + -0.029256489127874374, + 0.07548694312572479, + 0.019365482032299042, + -0.010187491774559021, + 0.05716826766729355, + 0.05902569741010666, + 0.041420385241508484, + 0.060123853385448456, + -0.07182320952415466, + -0.10445757955312729, + 0.0424509271979332, + -0.012181096710264683, + 0.037834297865629196, + 0.06358584761619568, + 0.03178483247756958, + -0.0027521606534719467, + 0.10499188303947449, + 0.05855675786733627, + -0.037732724100351334, + 0.032149188220500946, + -0.09303632378578186, + 0.14386561512947083, + 0.09384411573410034, + -0.02661513350903988, + 0.027049528434872627, + -0.04984838515520096, + 0.07522110641002655, + 0.060198865830898285, + -0.12207189202308655, + -0.09108433872461319, + 0.029622238129377365, + 0.02106487937271595, + -0.027309224009513855, + 0.09333403408527374, + -0.01536241453140974, + 0.031974077224731445, + 0.09518208354711533, + -0.060793448239564896, + -0.05631709843873978, + -0.03943692892789841, + 0.028135620057582855, + -0.08980363607406616, + 0.0626974105834961, + 0.04496128857135773, + 0.002481867093592882, + -0.007878376170992851, + 0.10467808693647385, + -0.00851157121360302, + 0.008898183703422546, + 0.011487308889627457, + -0.04572311043739319, + 0.023658456280827522, + -0.02107226848602295, + 0.011845976114273071, + 0.021882344037294388, + 0.04806576669216156, + 0.041651174426078796, + 0.0021060099825263023, + -0.036074213683605194, + -0.11784979701042175, + 0.014952259138226509, + 0.037581268697977066, + 0.05971430242061615, + -0.007005677092820406, + -0.035375431180000305, + -0.024502793326973915, + -0.04102998226881027, + 0.009020538069307804, + -0.01272731926292181, + 0.06389932334423065, + -0.024287838488817215, + -0.014425510540604591, + 0.10816574096679688, + -0.00445717154070735, + 0.004040740430355072, + -0.04767029359936714, + -0.02507316693663597, + 0.027433931827545166, + 0.04105466604232788, + -0.08448050916194916, + -0.06702357530593872, + 0.002646862296387553, + 0.033555034548044205, + -0.017439104616642, + 0.05496995896100998, + 0.06342251598834991, + 0.0007091599400155246, + 0.04484397545456886, + -0.061908598989248276, + 0.005099175963550806, + -0.10752078890800476, + -0.06950725615024567, + -0.020398156717419624, + -0.01927923783659935, + -0.01337464153766632, + 0.06500561535358429, + 0.008506903424859047, + 0.04837486147880554, + -0.008027157746255398, + -0.07648869603872299, + -0.08697380125522614, + 0.06110098212957382, + 0.08827006816864014, + 0.023793108761310577, + 0.06287623941898346, + 0.04477966949343681, + -0.013410470448434353, + 0.06897540390491486, + 0.05162268131971359, + 0.10352706909179688, + -0.022335799410939217, + 0.008817421272397041, + -0.08764206618070602, + 0.06651510298252106, + 0.07290469110012054, + -0.09856373071670532, + -0.08053789287805557, + -0.021058687940239906, + -0.05695857107639313, + 0.021678728982806206, + -0.032520830631256104, + 0.018302321434020996, + 0.05524074658751488, + 0.0036722910590469837, + -0.10566379129886627, + -0.09024463593959808, + 0.08234959840774536, + -0.09206800162792206, + 0.003938575275242329, + -0.07406823337078094, + 0.05583396926522255, + 0.11015675961971283, + 0.03372165188193321, + -0.05074060708284378, + -0.013541603460907936, + 0.044080086052417755, + -0.044000640511512756, + -0.008936327882111073, + 0.005447791889309883, + 0.03692197799682617, + -0.10317489504814148, + 0.01576639898121357, + -0.08872266113758087, + 0.03166333585977554, + -0.06905488669872284, + 0.1497354656457901, + 0.01104644499719143, + -0.06141091138124466, + -0.08196337521076202, + 0.04192446544766426, + -0.03701178729534149, + 0.04831523448228836, + 0.039102789014577866, + 0.055049218237400055, + 0.01417083851993084, + -0.09580568224191666, + 0.12973815202713013, + 0.05164837837219238, + -0.04808277636766434, + -0.09841989725828171, + -0.03322279453277588, + -0.034084200859069824, + 0.052762411534786224, + 0.040813714265823364, + -0.082816943526268, + -0.04035034775733948, + 0.026957236230373383, + -0.03289157897233963, + 0.07755455374717712, + 0.14474698901176453, + 0.04329165071249008, + -0.10240413248538971 + ] + }, + "p244_045.wav": { + "name": "p244", + "embedding": [ + 0.036409180611371994, + 0.06373345851898193, + -0.04850875213742256, + 0.0012590696569532156, + -0.0655830129981041, + 0.043895818293094635, + -0.12458140403032303, + 0.10167236626148224, + -0.01149693038314581, + 0.13705159723758698, + -0.03965980187058449, + 0.10947172343730927, + -0.007635345682501793, + -0.16530273854732513, + -0.010866695083677769, + 0.021307123824954033, + -0.02756701223552227, + -0.006040188483893871, + -0.07994157075881958, + -0.0484396256506443, + 0.03522863984107971, + 0.043894726783037186, + 0.03130299597978592, + -0.09033254534006119, + 0.04276881739497185, + 0.049529194831848145, + 0.009891757741570473, + 0.036779966205358505, + -0.00973771046847105, + -0.07737540453672409, + -0.02124992571771145, + 0.09549771249294281, + -0.07894158363342285, + 0.015054848045110703, + 0.04750899225473404, + -0.02162482589483261, + -0.023351959884166718, + -0.038765259087085724, + -0.0073468806222081184, + 0.04152461886405945, + -0.036400359123945236, + 0.07820509374141693, + 0.03232400119304657, + -0.028038693591952324, + 0.05439256131649017, + 0.019738323986530304, + -0.011991242878139019, + -0.05228567123413086, + -0.08575982600450516, + 0.15669089555740356, + 0.03329421579837799, + -0.003134464845061302, + -0.08130383491516113, + -0.0701078474521637, + 0.08273150771856308, + -0.03147679939866066, + -0.10889844596385956, + -0.05446823686361313, + 0.04780600219964981, + 0.11897586286067963, + -0.03460344299674034, + -0.04509624466300011, + 0.032144591212272644, + 0.07155874371528625, + 0.05732978135347366, + 0.06744895875453949, + 0.0877368301153183, + 0.10208085179328918, + -0.010492564179003239, + 0.03598418086767197, + 0.03696993365883827, + 0.0879252701997757, + 0.03163312003016472, + -0.005844987463206053, + 0.03779713064432144, + -0.011790177784860134, + -0.015229344367980957, + -0.03421752154827118, + -0.030828654766082764, + -0.006605314090847969, + 0.006194352172315121, + 0.023673221468925476, + 0.04953373968601227, + 0.014020876958966255, + -0.05010061711072922, + 0.05289199575781822, + 0.054383210837841034, + -0.028982415795326233, + 0.054083094000816345, + 0.04069673269987106, + -0.006503037177026272, + 0.045567888766527176, + -0.09922129660844803, + -0.0970517247915268, + -0.004961349070072174, + -0.0029878681525588036, + 0.005250225774943829, + 0.04367164522409439, + 0.022428929805755615, + -0.016702774912118912, + 0.10158343613147736, + 0.04256047308444977, + -0.014677779749035835, + 0.03042411431670189, + -0.06267350167036057, + 0.11361376196146011, + 0.09337268769741058, + -0.016695033758878708, + 0.033519189804792404, + -0.07685229182243347, + 0.05857387185096741, + 0.04186607152223587, + -0.10366949439048767, + -0.08254759013652802, + 0.02052883617579937, + -0.012891009449958801, + -0.028348566964268684, + 0.13967370986938477, + -0.006839882582426071, + 0.021905580535531044, + 0.12210458517074585, + -0.09927570074796677, + -0.04383537918329239, + -0.009029564447700977, + 0.04083845391869545, + -0.06358872354030609, + 0.04009952396154404, + 0.038503486663103104, + -0.014631219208240509, + 0.0349312424659729, + 0.0866166204214096, + -0.001095527783036232, + 0.03843126818537712, + 0.0076775867491960526, + -0.021519560366868973, + 0.03769470378756523, + -0.015402357093989849, + -0.015597800724208355, + 0.07944595813751221, + 0.06551666557788849, + 0.0781731903553009, + -0.014774523675441742, + -0.04573675990104675, + -0.10937036573886871, + 0.024098757654428482, + 0.02056432142853737, + 0.07296841591596603, + -0.030045025050640106, + 0.0053977956995368, + -0.04413025826215744, + -0.09769289195537567, + 0.031458646059036255, + 0.0046644010581076145, + 0.08497168123722076, + -0.009289938025176525, + -0.0042288536205887794, + 0.11800014972686768, + 0.037131939083337784, + -0.0033342335373163223, + -0.038018785417079926, + -0.03281279280781746, + -0.014849001541733742, + 0.056446775794029236, + -0.0863642692565918, + -0.06582127511501312, + -0.02366805635392666, + 0.014046663418412209, + -0.014413945376873016, + 0.06533527374267578, + 0.0694565549492836, + 0.024139652028679848, + 0.04405529797077179, + -0.07130910456180573, + -0.014843943528831005, + -0.08857505023479462, + -0.0410175621509552, + -0.0230402834713459, + -0.04828879237174988, + -0.05237221345305443, + 0.09565780311822891, + -0.005147187039256096, + 0.04034685716032982, + -0.031523481011390686, + -0.07084348797798157, + -0.07660600543022156, + 0.05688017979264259, + 0.03928137570619583, + -0.023704711347818375, + 0.020886853337287903, + 0.04073280468583107, + -0.03065858967602253, + 0.03230053558945656, + 0.08439664542675018, + 0.06984895467758179, + -0.02489544451236725, + 0.007882220670580864, + -0.0605912059545517, + 0.13794445991516113, + 0.06979639083147049, + -0.07512485235929489, + -0.06894218176603317, + -0.03242199122905731, + -0.06852367520332336, + 0.010146543383598328, + -0.02471516840159893, + 0.011098667047917843, + 0.02745484560728073, + 0.01733534224331379, + -0.09166112542152405, + -0.07267217338085175, + 0.05370981618762016, + -0.06865569949150085, + -0.00790631864219904, + -0.06420284509658813, + 0.014538805931806564, + 0.08597350865602493, + 0.05690353736281395, + -0.00878701452165842, + -0.008382181636989117, + 0.057446569204330444, + -0.04996214807033539, + 0.03720337152481079, + 0.056372448801994324, + 0.033424291759729385, + -0.04152454063296318, + -0.01176535151898861, + -0.048215679824352264, + 0.027980845421552658, + -0.039744336158037186, + 0.13341759145259857, + 0.014345242641866207, + -0.058308348059654236, + -0.05801123380661011, + 0.051401592791080475, + -0.0452803373336792, + 0.043751880526542664, + 0.04491008073091507, + 0.06822976469993591, + 0.05634336918592453, + -0.07143687456846237, + 0.11643654853105545, + 0.04153633117675781, + -0.025006501004099846, + -0.06321591138839722, + -0.07403762638568878, + -0.04065658897161484, + 0.030912788584828377, + 0.038822632282972336, + -0.0725584551692009, + 0.023880701512098312, + 0.03400370478630066, + -0.007432215381413698, + 0.03394685685634613, + 0.12482020258903503, + 0.08397350460290909, + -0.09825662523508072 + ] + }, + "p244_011.wav": { + "name": "p244", + "embedding": [ + 0.04693511500954628, + 0.09151306003332138, + -0.015350173227488995, + 0.01501099206507206, + -0.05352330207824707, + 0.024777594953775406, + -0.11958026885986328, + 0.13174134492874146, + -0.03121187724173069, + 0.11712955683469772, + -0.07886708527803421, + 0.12884557247161865, + -0.03458358719944954, + -0.1426384150981903, + -0.037757065147161484, + 0.044479768723249435, + -0.041767336428165436, + -0.043814342468976974, + -0.005046903621405363, + -0.03032349981367588, + 0.03716897591948509, + 0.03688639774918556, + 0.03818846866488457, + 0.0272796880453825, + 0.016458002850413322, + 0.07186990231275558, + 0.0034022170584648848, + 0.035620372742414474, + 0.02769152633845806, + -0.026159582659602165, + -0.0077646332792937756, + 0.06918182224035263, + -0.04000372067093849, + 0.022949062287807465, + 0.03956812992691994, + 0.0021731534507125616, + 0.0021572664845734835, + -0.05360705778002739, + -0.02615455724298954, + 0.006823182106018066, + -0.050907909870147705, + 0.07867929339408875, + 0.021527081727981567, + -0.034393176436424255, + 0.02676575817167759, + 0.00946024339646101, + -0.01362234354019165, + -0.016480371356010437, + -0.09921713173389435, + 0.14778493344783783, + 0.05703011155128479, + 0.022879837080836296, + -0.08257072418928146, + -0.03717171773314476, + 0.10028153657913208, + -0.02581956796348095, + -0.1014406681060791, + -0.030647045001387596, + 0.059790290892124176, + 0.13068018853664398, + -0.028375966474413872, + -0.04566575959324837, + 0.02301890030503273, + 0.10864495486021042, + 0.056900300085544586, + 0.0498492605984211, + 0.09485321491956711, + 0.10639964789152145, + -0.03414921835064888, + 0.011846917681396008, + 0.061606764793395996, + 0.08003950119018555, + 0.041194938123226166, + -0.010102824307978153, + 0.004090904723852873, + -0.007145411800593138, + -0.013436323963105679, + 0.004326218273490667, + -0.016671283170580864, + -0.028611352667212486, + -0.05065273866057396, + -0.002835388295352459, + -0.015028364956378937, + 0.02607208490371704, + -0.010497629642486572, + 0.05200168490409851, + 0.03615011274814606, + -0.02207058109343052, + 0.06440500915050507, + 0.05203700065612793, + -0.005159619729965925, + 0.04691538214683533, + -0.0748772844672203, + -0.05882537364959717, + -0.001121237874031067, + -0.01175533514469862, + 0.044174011796712875, + 0.08308183401823044, + 0.04617855325341225, + 0.01403222419321537, + 0.11239280551671982, + 0.049323976039886475, + -0.006587873678654432, + -0.013005129992961884, + -0.09525784850120544, + 0.12376048415899277, + 0.09235859662294388, + -0.042835406959056854, + 0.030474955216050148, + -0.02863466553390026, + 0.042455077171325684, + 0.04740241914987564, + -0.10655175894498825, + -0.06431827694177628, + 0.020908359438180923, + 0.03831387683749199, + 0.010186552070081234, + 0.10208350419998169, + -0.007704551797360182, + 0.041669271886348724, + 0.09961819648742676, + -0.05906952545046806, + -0.06040550395846367, + -0.027082595974206924, + 0.03710734471678734, + -0.06680440157651901, + 0.07056431472301483, + 0.05684357509016991, + 0.012937569990754128, + 0.013492563739418983, + 0.07756072282791138, + 0.004854758270084858, + 0.0016230002511292696, + -0.004766053054481745, + -0.031538475304841995, + 0.023391051217913628, + -0.017501024529337883, + 0.00579298147931695, + 0.056401170790195465, + 0.043436940759420395, + 0.06694584339857101, + 0.02649066410958767, + -0.02080940082669258, + -0.10680897533893585, + 0.021535338833928108, + 0.05269007757306099, + 0.06138451769948006, + -0.02455325424671173, + -0.04900142550468445, + -0.027948278933763504, + -0.03953804820775986, + -0.003613616107031703, + 0.010626162402331829, + 0.07250669598579407, + -0.029650498181581497, + 0.00503036892041564, + 0.1020331159234047, + 0.01196464616805315, + -0.00870331097394228, + -0.04239264130592346, + -0.019085511565208435, + -0.011673356406390667, + 0.04814722761511803, + -0.08738696575164795, + -0.08782561123371124, + -0.016146989539265633, + 0.040562499314546585, + -0.00870204996317625, + 0.05808655172586441, + 0.05818870663642883, + -0.008133861236274242, + 0.017620747908949852, + -0.05324352905154228, + 0.026560891419649124, + -0.09001462906599045, + -0.07081657648086548, + -0.013763591647148132, + -0.020148402079939842, + -0.011310645379126072, + 0.06907995045185089, + 0.01780843548476696, + 0.06420137733221054, + 0.001113583566620946, + -0.09472236782312393, + -0.08345158398151398, + 0.05078394338488579, + 0.05246732756495476, + -0.02011728286743164, + 0.04108734801411629, + 0.07679054141044617, + -0.029277771711349487, + 0.043227437883615494, + 0.033382292836904526, + 0.09315013885498047, + -0.07060300558805466, + 0.007743968162685633, + -0.05747741460800171, + 0.052234042435884476, + 0.07412166148424149, + -0.10356845706701279, + -0.06901421397924423, + -0.058231987059116364, + -0.04774828255176544, + 0.02056937851011753, + -0.014962839893996716, + 0.013775983825325966, + 0.024671588093042374, + -0.02619941532611847, + -0.09307463467121124, + -0.09923496097326279, + 0.06260036677122116, + -0.060408320277929306, + 0.008377525955438614, + -0.07549357414245605, + 0.03015982173383236, + 0.07258807122707367, + 0.02156328223645687, + -0.013451685197651386, + 0.00790953729301691, + 0.005418199580162764, + -0.02525339089334011, + -0.018708324059844017, + 0.05127616599202156, + 0.038760047405958176, + -0.06665867567062378, + -0.026355160400271416, + -0.07957812398672104, + 0.06650206446647644, + -0.03824251517653465, + 0.1345810741186142, + -0.008153272792696953, + -0.05615853890776634, + -0.07514964044094086, + -0.0017292529810220003, + -0.022700471803545952, + 0.053166139870882034, + 0.04759633541107178, + 0.05596443638205528, + 0.010722211562097073, + -0.0535164549946785, + 0.1146818995475769, + 0.0649646446108818, + -0.043889325112104416, + -0.07289095222949982, + -0.033148143440485, + -0.028311440721154213, + 0.022350577637553215, + 0.019162673503160477, + -0.06904880702495575, + -0.0017095506191253662, + -0.005666177719831467, + -0.015931710600852966, + 0.07856272906064987, + 0.11935938894748688, + 0.0751008614897728, + -0.10518162697553635 + ] + }, + "p244_138.wav": { + "name": "p244", + "embedding": [ + 0.0700933188199997, + 0.0377182811498642, + -0.006153803318738937, + -0.008792988955974579, + -0.01029633916914463, + 0.06081300973892212, + -0.10449773818254471, + 0.05837077274918556, + -0.016417216509580612, + 0.08198314905166626, + -0.08462048321962357, + 0.07559515535831451, + 0.010649865493178368, + -0.1105349063873291, + -0.049864549189805984, + 0.028284763917326927, + -0.0215237308293581, + 0.0077948011457920074, + -0.05577688664197922, + 0.004510017111897469, + 0.015806157141923904, + 0.029210276901721954, + 0.0397406741976738, + -0.046633027493953705, + 0.016121678054332733, + 0.02957761660218239, + 0.02926536090672016, + 0.047166623175144196, + 0.04204349219799042, + 0.011825904250144958, + 0.007843952625989914, + 0.08851593732833862, + -0.013868517242372036, + -0.01586082950234413, + 0.04913341626524925, + 0.029168786481022835, + 0.013422926887869835, + -0.08862494677305222, + -0.0008264980278909206, + 0.0478745736181736, + -0.022770477458834648, + 0.0700978934764862, + 0.05314859747886658, + 0.011500800028443336, + -0.01110411062836647, + 0.012603465467691422, + -0.020398985594511032, + -0.049812182784080505, + -0.09821194410324097, + 0.16786211729049683, + 0.03350654989480972, + -0.001977858366444707, + -0.10501866787672043, + -0.017769109457731247, + 0.08057454228401184, + -0.008657335303723812, + -0.029612254351377487, + -0.045323342084884644, + 0.020617350935935974, + 0.11189388483762741, + 0.014370227232575417, + -0.036810312420129776, + 0.0023287988733500242, + 0.08959723263978958, + -0.0040346551686525345, + 0.048174213618040085, + 0.10340115427970886, + 0.10218804329633713, + -0.0018373546190559864, + 0.03814993053674698, + 0.07398408651351929, + 0.04268969967961311, + 0.019909044727683067, + -0.02334015816450119, + 0.04232386499643326, + -0.01496145874261856, + -0.03174427151679993, + 0.03793960064649582, + -0.01772383600473404, + -0.055531736463308334, + 0.025936629623174667, + -0.012942067347466946, + 0.008283143863081932, + 0.08056256920099258, + -0.07879214733839035, + 0.04175274074077606, + -2.6310328394174576e-05, + 0.016693077981472015, + 0.06180515140295029, + 0.06533603370189667, + 0.028443939983844757, + 0.004371471703052521, + -0.02654329314827919, + -0.11455459892749786, + 0.007954401895403862, + -0.004122806712985039, + 0.025998856872320175, + 0.029509756714105606, + 0.030390221625566483, + -0.008637006394565105, + 0.06519265472888947, + 0.04027631878852844, + -0.017089582979679108, + 0.01539282500743866, + -0.05229375511407852, + 0.09466859698295593, + 0.12216692417860031, + 0.008287385106086731, + 0.0025515519082546234, + -0.048837412148714066, + 0.04525119438767433, + 0.03641248121857643, + -0.098570317029953, + -0.05471383035182953, + 0.060472600162029266, + 0.04027802497148514, + 0.06161133944988251, + 0.0813916027545929, + -0.0029232604429125786, + -0.0002641519531607628, + 0.04492009058594704, + -0.05212651938199997, + -0.045050930231809616, + 0.005184590816497803, + 0.003385903313755989, + 0.0001318417489528656, + -0.005962742492556572, + 0.011397925205528736, + 0.005217838101089001, + -0.08035160601139069, + 0.083350270986557, + 0.005274652503430843, + 0.010940833017230034, + -0.041902244091033936, + 0.03870531916618347, + 0.113883376121521, + -0.0008794106543064117, + -0.009889818727970123, + 0.05096101015806198, + 0.06472828984260559, + 0.03843250498175621, + 0.04841066896915436, + -0.03987744078040123, + -0.10456392168998718, + 0.0015691224252805114, + 0.04382818192243576, + 0.046617865562438965, + -0.056362759321928024, + -0.04848276078701019, + -0.05004505068063736, + -0.009818851947784424, + 0.02410774677991867, + -0.015900276601314545, + 0.0555308535695076, + 0.04682601988315582, + -0.04986138641834259, + 0.09564351290464401, + -0.0859374925494194, + 0.003384761279448867, + -0.006825659424066544, + -0.0012053176760673523, + 0.03988638147711754, + 0.025213807821273804, + -0.030601859092712402, + -0.06182052195072174, + 0.031095515936613083, + -0.018277062103152275, + -0.015841705724596977, + -0.048798274248838425, + 0.03619398921728134, + -0.0316365584731102, + 0.03343591094017029, + -0.0954868346452713, + 0.011421136558055878, + -0.09681153297424316, + 0.00432366319000721, + 0.016019439324736595, + -0.026051219552755356, + -0.003913429100066423, + 0.07487329095602036, + 0.012472547590732574, + 0.012945892289280891, + -0.024861523881554604, + -0.08066530525684357, + 0.003796197474002838, + 0.07142336666584015, + 0.08017975836992264, + 0.0042107198387384415, + 0.035059794783592224, + 0.04922247678041458, + 0.040788229554891586, + 0.0242929644882679, + 0.06684544682502747, + 0.03171093016862869, + -0.038825489580631256, + -0.06607095152139664, + -0.01302734762430191, + 0.11494527012109756, + 0.01928497664630413, + -0.07260964810848236, + -0.046309322118759155, + -0.016786161810159683, + -0.05228213220834732, + 0.022402217611670494, + -0.03037768043577671, + 0.018248820677399635, + 0.05267509073019028, + -0.03130359202623367, + -0.09463240206241608, + -0.06523000448942184, + 0.03587363287806511, + -0.04817706346511841, + -0.007058877032250166, + -0.04091645032167435, + 0.023375002667307854, + 0.07097339630126953, + 0.02264590561389923, + -0.025574853643774986, + 0.002775501925498247, + -0.03003949113190174, + -0.08194026350975037, + -0.09228100627660751, + -0.043983664363622665, + 0.014984121546149254, + -0.08094244450330734, + 0.012860621325671673, + -0.04829484969377518, + 0.07830144464969635, + -0.05900753289461136, + 0.08163068443536758, + 0.022269975394010544, + -0.0518019013106823, + -0.05760157108306885, + -0.018490605056285858, + -0.046950988471508026, + 0.061665259301662445, + 0.06822863221168518, + -0.01342926174402237, + 0.00778565090149641, + -0.06658805906772614, + 0.10745098441839218, + 0.042737770825624466, + -0.02777242660522461, + -0.09870735555887222, + 0.014597277157008648, + -0.010621944442391396, + 0.05519593879580498, + 0.017933133989572525, + -0.0048694908618927, + 0.029852233827114105, + 0.010921476408839226, + -0.0545937642455101, + 0.023371294140815735, + 0.07272682338953018, + 0.05420816317200661, + -0.06974054872989655 + ] + }, + "p244_121.wav": { + "name": "p244", + "embedding": [ + 0.05420980975031853, + 0.10433891415596008, + -0.002371707931160927, + 0.020668279379606247, + -0.062030401080846786, + 0.04665670171380043, + -0.14484882354736328, + 0.16389036178588867, + -0.03254805877804756, + 0.1299302577972412, + -0.04473206400871277, + 0.13779394328594208, + -0.023932889103889465, + -0.16968263685703278, + -0.03426493704319, + 0.06643204391002655, + -0.037543244659900665, + -0.03569311648607254, + -0.018265314400196075, + -0.020131167024374008, + 0.023475490510463715, + 0.04014807194471359, + 0.0508076474070549, + 0.018009144812822342, + 0.038952454924583435, + 0.07226864248514175, + 0.00013127876445651054, + 0.05769720673561096, + 0.015796735882759094, + -0.08617471158504486, + -0.028159286826848984, + 0.07532615959644318, + -0.0640748143196106, + 0.023477481678128242, + 0.050398264080286026, + -0.027185093611478806, + 0.0007421582704409957, + -0.052032992243766785, + -0.03202911466360092, + 5.494197830557823e-05, + -0.026282360777258873, + 0.08942057192325592, + 0.0127931609749794, + -0.013073738664388657, + 0.03898070007562637, + 0.029325444251298904, + -0.007269487716257572, + -0.039107270538806915, + -0.11962693929672241, + 0.14749082922935486, + 0.05608372390270233, + 0.003949814476072788, + -0.09281918406486511, + -0.07841530442237854, + 0.0938212126493454, + -0.052570588886737823, + -0.10997049510478973, + -0.03562942147254944, + 0.06064043939113617, + 0.14383962750434875, + -0.02476629428565502, + -0.05246924236416817, + 0.03413013368844986, + 0.11553512513637543, + 0.07347337901592255, + 0.06802143156528473, + 0.08190984278917313, + 0.09528174251317978, + -0.04751479625701904, + 0.013920800760388374, + 0.033005841076374054, + 0.07544243335723877, + 0.04563790559768677, + 0.011751430109143257, + 0.015539208427071571, + -1.2705335393548012e-05, + -0.0038763682823628187, + -0.019443053752183914, + -0.017570193856954575, + -0.014361182227730751, + -0.033393293619155884, + 0.02703552320599556, + -0.0016232822090387344, + 0.03060579113662243, + -0.01138681173324585, + 0.07251236587762833, + 0.017457157373428345, + -0.010640464723110199, + 0.06827431917190552, + 0.03848595172166824, + 0.01570388302206993, + 0.06788620352745056, + -0.09191546589136124, + -0.05857941880822182, + 0.02314208820462227, + -0.0037599471397697926, + 0.03216229006648064, + 0.06510032713413239, + 0.026834748685359955, + -0.007788940332829952, + 0.12890613079071045, + 0.06693337112665176, + -0.006075536832213402, + 0.0040418291464447975, + -0.09198859333992004, + 0.12205406278371811, + 0.06841802597045898, + -0.018052613362669945, + 0.06684797257184982, + -0.04273418337106705, + 0.05855492874979973, + 0.05181191861629486, + -0.13271838426589966, + -0.09420039504766464, + 0.0129048777744174, + 0.016212984919548035, + -0.0145639106631279, + 0.12382704764604568, + -0.0074400519952178, + 0.06595636904239655, + 0.09348036348819733, + -0.08727648109197617, + -0.048237577080726624, + 0.0034920484758913517, + 0.055652230978012085, + -0.09223422408103943, + 0.07151056826114655, + 0.06163690611720085, + -0.017924435436725616, + 0.027824589982628822, + 0.08913451433181763, + 0.0011070951586589217, + 0.013404087163507938, + 0.022202227264642715, + -0.05987752974033356, + -0.010100746527314186, + -0.022031325846910477, + -0.0036397739313542843, + 0.03698786720633507, + 0.032855454832315445, + 0.05669660121202469, + -0.00853847898542881, + -0.03218870237469673, + -0.13003608584403992, + 0.002222585491836071, + 0.03106776811182499, + 0.07201901078224182, + -0.011891582980751991, + -0.03763050585985184, + -0.026040777564048767, + -0.04013928025960922, + -0.003471312578767538, + 0.00908602960407734, + 0.06965924799442291, + -0.03596119582653046, + 0.015903249382972717, + 0.10955451428890228, + 0.047489821910858154, + -0.0040491316467523575, + -0.04420807957649231, + -0.027716761454939842, + -0.008892526850104332, + 0.06171005219221115, + -0.0735800638794899, + -0.07369723170995712, + -0.005328902043402195, + 0.04626666009426117, + -0.006353202275931835, + 0.08953050523996353, + 0.059936851263046265, + 0.01968693919479847, + 0.024121977388858795, + -0.05000599846243858, + 0.01973305456340313, + -0.07669686526060104, + -0.08990556001663208, + -0.009098267182707787, + -0.002223168732598424, + -0.04789714515209198, + 0.07107093930244446, + 0.04477805644273758, + 0.08857405930757523, + -0.020753053948283195, + -0.06478407233953476, + -0.09558364003896713, + 0.044731177389621735, + 0.051224276423454285, + -0.011965077370405197, + 0.03919252008199692, + 0.066912442445755, + -0.03924969956278801, + 0.0796569287776947, + 0.0604277066886425, + 0.07815545797348022, + -0.04826827347278595, + 0.03236033022403717, + -0.07221107184886932, + 0.060588933527469635, + 0.09354443848133087, + -0.09701211750507355, + -0.08625448495149612, + -0.026837002485990524, + -0.07930216193199158, + 0.042531609535217285, + -0.011242630891501904, + 0.023232558742165565, + 0.05087307095527649, + -0.0017697298899292946, + -0.10703520476818085, + -0.09764380753040314, + 0.09167136996984482, + -0.07334596663713455, + 0.01491341833025217, + -0.058493319898843765, + 0.040147699415683746, + 0.09295397251844406, + 0.03933216631412506, + -0.01162954792380333, + -0.03260267525911331, + 0.04031674563884735, + -0.009134911000728607, + 0.0050201937556266785, + 0.07226568460464478, + 0.04269695281982422, + -0.09170492738485336, + 0.005055755842477083, + -0.07237952202558517, + 0.04862818494439125, + -0.029337037354707718, + 0.15892544388771057, + 0.004040901083499193, + -0.06510515511035919, + -0.08938401937484741, + 0.01596609130501747, + -0.0412583127617836, + 0.061232030391693115, + 0.01430846843868494, + 0.0633939728140831, + 0.054595205932855606, + -0.048005711287260056, + 0.11012687534093857, + 0.05717059224843979, + -0.063078373670578, + -0.06797784566879272, + -0.06504462659358978, + -0.03918616101145744, + 0.04230204224586487, + 0.01452500931918621, + -0.09345594048500061, + -0.024548668414354324, + 0.01076485589146614, + -0.006039399653673172, + 0.08096581697463989, + 0.13920244574546814, + 0.055372096598148346, + -0.13247406482696533 + ] + }, + "p244_331.wav": { + "name": "p244", + "embedding": [ + 0.03541579097509384, + 0.0816521942615509, + -0.012221673503518105, + 0.012426997534930706, + -0.040238942950963974, + 0.08783203363418579, + -0.14746879041194916, + 0.09265685081481934, + -0.08654499053955078, + 0.1622808426618576, + -0.09461624175310135, + 0.09993752092123032, + -0.038974132388830185, + -0.17777110636234283, + -0.057347845286130905, + 0.04853283241391182, + -0.05085389316082001, + -0.05372815206646919, + -0.04684190824627876, + -0.0032470766454935074, + 0.061999496072530746, + 0.03692714124917984, + 0.0014325641095638275, + 0.010339765809476376, + 0.015984781086444855, + 0.051798634231090546, + -0.003846462583169341, + 0.04651078209280968, + 0.0055691152811050415, + -0.05945006012916565, + -0.017140604555606842, + 0.1259884536266327, + -0.04461679607629776, + 0.012495743110775948, + 0.019269734621047974, + 0.02090282551944256, + 0.02442237362265587, + -0.06516962498426437, + -0.008429610170423985, + -0.001907103811390698, + -0.03992881253361702, + 0.05954951047897339, + -0.005811501760035753, + 0.028921978548169136, + 0.011498075909912586, + 0.007941762916743755, + -0.03373553603887558, + -0.04980475455522537, + -0.09024978429079056, + 0.14310427010059357, + 0.051989879459142685, + 0.009912103414535522, + -0.06032196804881096, + -0.09596925228834152, + 0.11927606165409088, + 0.0018951395759359002, + -0.11591041088104248, + -0.05492280051112175, + 0.07581627368927002, + 0.19796814024448395, + -0.03416939824819565, + -0.04985221475362778, + 0.03073951043188572, + 0.0916435718536377, + 0.048828016966581345, + 0.09417574107646942, + 0.09466355293989182, + 0.08180411159992218, + 0.021081503480672836, + -0.024011464789509773, + 0.07200424373149872, + 0.06034855544567108, + 0.06768033653497696, + -0.02673531509935856, + 0.047355808317661285, + 0.019006023183465004, + -0.00662753963842988, + 0.03522117808461189, + -0.03266746923327446, + -0.014477008953690529, + -0.008514937944710255, + 0.010027474723756313, + -0.011535647325217724, + 0.012374328449368477, + -0.03871690854430199, + 0.03026578016579151, + 0.028054356575012207, + -0.018768228590488434, + 0.08365121483802795, + 0.04314650222659111, + 0.03223786875605583, + 0.06849844008684158, + -0.0776033103466034, + -0.07629218697547913, + 0.05171087384223938, + 0.02957124449312687, + 0.002694519469514489, + 0.05777736008167267, + 0.030600065365433693, + -0.03157910332083702, + 0.10725909471511841, + 0.022535985335707664, + 0.012225919403135777, + 0.016766047105193138, + -0.12019062042236328, + 0.1189369186758995, + 0.08406544476747513, + -0.04210780933499336, + 0.02105756849050522, + -0.014496641233563423, + 0.05981947109103203, + 0.07588721811771393, + -0.13372643291950226, + -0.10916389524936676, + 0.0372701920568943, + 0.02367197722196579, + -0.022109616547822952, + 0.11264190077781677, + -0.020507248118519783, + 0.00626147398725152, + 0.09513746947050095, + -0.08201045542955399, + -0.050255924463272095, + -0.0029273105319589376, + 0.034200429916381836, + -0.07355986535549164, + 0.04518639296293259, + 0.03625653684139252, + 0.02164197340607643, + -0.01521256286650896, + 0.09786180406808853, + -0.02204759605228901, + 0.006522484589368105, + -0.013778411783277988, + -0.043217483907938004, + 0.04097282886505127, + -0.032853610813617706, + -0.02832372859120369, + 0.05739249661564827, + 0.04623105004429817, + 0.06224474683403969, + -0.0027581541799008846, + -0.04563479870557785, + -0.13216279447078705, + 0.008978284895420074, + 0.050044041126966476, + 0.05378037318587303, + -0.010215730406343937, + -0.002609184244647622, + -0.05991087481379509, + -0.058252375572919846, + 0.034909091889858246, + -0.014852546155452728, + 0.11469104140996933, + 0.016988882794976234, + 0.0025289137847721577, + 0.10041376203298569, + -0.00028351403307169676, + -0.0020893134642392397, + -0.04796756058931351, + -0.021590260788798332, + 0.013540289364755154, + 0.053607601672410965, + -0.058453384786844254, + -0.06942971050739288, + 0.005301427561789751, + 0.06184694916009903, + 0.010216601192951202, + 0.07055143266916275, + 0.07513122260570526, + 0.0007667512982152402, + 0.020512782037258148, + -0.05919606611132622, + 0.034454457461833954, + -0.08991119265556335, + -0.06496554613113403, + 0.004474753513932228, + -0.04367688670754433, + -0.0024121080059558153, + 0.08297397196292877, + 0.013606883585453033, + 0.01881113089621067, + -0.03440484032034874, + -0.1082039400935173, + -0.09895014762878418, + 0.06505335867404938, + 0.08122184127569199, + -0.0016685303999111056, + 0.03677600994706154, + 0.059178099036216736, + -0.009844358079135418, + 0.06286277621984482, + 0.07264810055494308, + 0.1308685690164566, + -0.03740754351019859, + 0.018966030329465866, + -0.05577864497900009, + 0.07950403541326523, + 0.055514488369226456, + -0.07599318772554398, + -0.06791509687900543, + -0.010446444153785706, + -0.07375945150852203, + 0.06095854192972183, + -0.021290533244609833, + 0.019405076280236244, + 0.048066675662994385, + -0.03073003515601158, + -0.11433113366365433, + -0.07640784978866577, + 0.09234999865293503, + -0.059330545365810394, + -0.019570494070649147, + -0.0894651785492897, + 0.04015011340379715, + 0.07895421981811523, + 0.04484124109148979, + -0.015935782343149185, + 0.01086941733956337, + 0.04565582796931267, + -0.06120605394244194, + -0.004541727248579264, + 0.05140858143568039, + 0.00817751232534647, + -0.09109561145305634, + -0.006130436901003122, + -0.1253180205821991, + 0.05774698778986931, + -0.06462391465902328, + 0.1439346969127655, + -0.016630418598651886, + -0.05334024503827095, + -0.08961011469364166, + 0.04076334089040756, + -0.02999519370496273, + 0.0687546655535698, + 0.042265649884939194, + 0.07961881905794144, + 0.05788794159889221, + -0.05281192064285278, + 0.10735557228326797, + 0.05628572776913643, + -0.030042653903365135, + -0.07711321860551834, + -0.04306810349225998, + -0.04259932413697243, + 0.016305210068821907, + -0.019216010347008705, + -0.07786834239959717, + 0.009043860249221325, + 0.02674337476491928, + 0.0008316270541399717, + 0.06443923711776733, + 0.11581195145845413, + 0.05936264619231224, + -0.11903617531061172 + ] + }, + "p244_009.wav": { + "name": "p244", + "embedding": [ + 0.03290610387921333, + 0.08333328366279602, + -0.014391103759407997, + 0.03857538476586342, + -0.057077277451753616, + 0.0047579314559698105, + -0.10529172420501709, + 0.12756314873695374, + -0.004455195739865303, + 0.104286789894104, + -0.07982030510902405, + 0.12462792545557022, + -0.05842305347323418, + -0.14488382637500763, + -0.014104433357715607, + 0.0633617490530014, + -0.01144502405077219, + -0.01146823912858963, + 0.006739433854818344, + -0.03120742179453373, + 0.03622310236096382, + 0.046508997678756714, + 0.06616988778114319, + -0.0016240356490015984, + 0.008199850097298622, + 0.08053796738386154, + -0.0022529433481395245, + 0.030590787529945374, + 0.011158742010593414, + -0.03716909885406494, + -0.007432682439684868, + 0.061043620109558105, + -0.013746824115514755, + 0.01777333952486515, + 0.025905504822731018, + 0.014887186698615551, + -0.00883655808866024, + -0.03131641447544098, + -0.006488006561994553, + -0.010581636801362038, + -0.05273634195327759, + 0.05792669579386711, + 0.0069999173283576965, + -0.04620152711868286, + 0.05337395891547203, + -0.003029255196452141, + -0.03159916028380394, + -0.011096817441284657, + -0.10760626196861267, + 0.14992429316043854, + 0.04811668395996094, + 0.02662993222475052, + -0.08908692002296448, + -0.0403478778898716, + 0.08363235741853714, + -0.025169089436531067, + -0.0932357981801033, + -0.04197346419095993, + 0.0749293714761734, + 0.1356501281261444, + -0.01578334905207157, + -0.042207829654216766, + 0.031088298186659813, + 0.09933555871248245, + 0.03422577306628227, + 0.05418774113059044, + 0.08088222146034241, + 0.09444867074489594, + -0.02446182817220688, + 0.003708901349455118, + 0.02211766317486763, + 0.08883614093065262, + 0.047666702419519424, + 0.015000523068010807, + -0.014961561188101768, + -0.021019399166107178, + -0.013484487310051918, + 0.0034485410433262587, + -0.020270880311727524, + -0.04885249212384224, + -0.048257194459438324, + -0.027113303542137146, + -0.0027742625679820776, + -0.01651928760111332, + -0.005384180229157209, + 0.043192241340875626, + 0.05892901122570038, + -0.018471181392669678, + 0.06013456732034683, + 0.035338740795850754, + -0.022221896797418594, + 0.044151850044727325, + -0.05702565610408783, + -0.04898470640182495, + -0.013930716551840305, + -0.0022831978276371956, + 0.04580358415842056, + 0.06563348323106766, + 0.03550197184085846, + 0.007841670885682106, + 0.10671895742416382, + 0.02599121630191803, + 0.0043195998296141624, + -0.0025952039286494255, + -0.0934603214263916, + 0.10964865237474442, + 0.10816070437431335, + -0.024411596357822418, + 0.046036675572395325, + -0.034352269023656845, + 0.01966046541929245, + 0.04859580844640732, + -0.08874480426311493, + -0.04727163910865784, + -0.02022959478199482, + 0.0157342329621315, + 0.016454599797725677, + 0.09834884107112885, + 0.01735919900238514, + 0.03737746551632881, + 0.12326224148273468, + -0.10016807913780212, + -0.09266705811023712, + -0.03160642459988594, + 0.03176315873861313, + -0.09092157334089279, + 0.06275834143161774, + 0.07296454906463623, + 0.008957098238170147, + 0.029911672696471214, + 0.059294555336236954, + 0.011397802270948887, + 0.03669579699635506, + -0.004788540303707123, + -0.061024945229291916, + -0.018016789108514786, + -0.04988691210746765, + -0.007763370871543884, + 0.08740144968032837, + 0.04229965806007385, + 0.07493235915899277, + 0.01616298407316208, + -0.020788973197340965, + -0.11774794012308121, + 0.0003076753346249461, + 0.06607553362846375, + 0.03273431584239006, + -0.023462504148483276, + -0.0511879101395607, + -0.023802796378731728, + -0.057312972843647, + 0.023569168522953987, + 0.0038475836627185345, + 0.06572814285755157, + -0.038017284125089645, + -0.0033452454954385757, + 0.10601448267698288, + 0.014992693439126015, + -0.014330792240798473, + -0.056976012885570526, + -0.038848187774419785, + -0.011372795328497887, + 0.020188990980386734, + -0.11092783510684967, + -0.0934695452451706, + -0.04296105355024338, + 0.055108942091464996, + -0.01912037841975689, + 0.04681546241044998, + 0.05948136746883392, + -0.0024230442941188812, + -0.0009722725953906775, + -0.02059830352663994, + 0.011703070253133774, + -0.06589550524950027, + -0.09323522448539734, + -0.001835276372730732, + -0.021795958280563354, + -0.007641312200576067, + 0.06791874766349792, + 0.020152149721980095, + 0.05164969339966774, + -0.022221006453037262, + -0.0693928673863411, + -0.10133972764015198, + 0.038995932787656784, + 0.02053011581301689, + -0.00844467245042324, + 0.05497853830456734, + 0.04694122448563576, + -0.07966507971286774, + 0.06087392568588257, + 0.02980203740298748, + 0.10071810334920883, + -0.06234333664178848, + 0.007728932425379753, + -0.07707223296165466, + 0.04718461632728577, + 0.12590500712394714, + -0.08345238119363785, + -0.07745872437953949, + -0.08545085787773132, + -0.06679253280162811, + 0.04591762647032738, + -0.029235392808914185, + -0.010717829689383507, + 0.03232759237289429, + -0.025126105174422264, + -0.10085204243659973, + -0.10697224736213684, + 0.056809864938259125, + -0.03047030046582222, + -0.004984191618859768, + -0.06127926707267761, + 0.04727930948138237, + 0.039400458335876465, + 0.013793750666081905, + -0.015099452808499336, + 0.007690818980336189, + 0.015575211495161057, + -0.045287180691957474, + -0.0115211121737957, + 0.05708640068769455, + 0.05113761126995087, + -0.042249903082847595, + -0.038948528468608856, + -0.09032081067562103, + 0.05272318795323372, + -0.03209463506937027, + 0.13962438702583313, + -0.004263963550329208, + -0.048091232776641846, + -0.06869148463010788, + 0.010186580941081047, + -0.016271507367491722, + 0.05376783758401871, + 0.043973468244075775, + 0.04174920916557312, + 0.012833533808588982, + -0.06805049628019333, + 0.10944811999797821, + 0.0558023527264595, + -0.032690275460481644, + -0.066848024725914, + -0.047987475991249084, + -0.04779447615146637, + 0.013941776007413864, + -0.020745795220136642, + -0.08239023387432098, + -0.0035557392984628677, + -0.0050284368917346, + 0.01777922734618187, + 0.06079863756895065, + 0.114070825278759, + 0.04020806774497032, + -0.07465103268623352 + ] + }, + "p244_127.wav": { + "name": "p244", + "embedding": [ + 0.04658830910921097, + 0.06260549277067184, + -0.006287736352533102, + 0.024215614423155785, + -0.019602863118052483, + 0.06372515857219696, + -0.13202497363090515, + 0.11467951536178589, + -0.011525056324899197, + 0.13998782634735107, + -0.08808180689811707, + 0.11441274732351303, + -0.0037071583792567253, + -0.1515623927116394, + -0.019572248682379723, + 0.031747639179229736, + -0.00026290927780792117, + 0.014862647280097008, + -0.007206363137811422, + -0.01091399323195219, + 0.06945531070232391, + 0.07098910212516785, + 0.040798820555210114, + -0.04977024346590042, + 0.034653451293706894, + 0.05427345260977745, + 0.005055768880993128, + 0.06353043019771576, + 0.0022681551054120064, + -0.09526313841342926, + -0.023277804255485535, + 0.11598458141088486, + -0.017313525080680847, + 0.014803117141127586, + 0.014584030024707317, + -0.007661606650799513, + -0.014505650848150253, + -0.0625762939453125, + 0.011438107118010521, + 0.01185659971088171, + -0.01616045832633972, + 0.049701690673828125, + 0.023318318650126457, + -0.015806090086698532, + 0.034538254141807556, + -0.0009171826532110572, + -0.011900722980499268, + -0.05578138679265976, + -0.10989811271429062, + 0.17207221686840057, + 0.024038737639784813, + 0.02493540570139885, + -0.07878866046667099, + -0.06328605860471725, + 0.08350934088230133, + 0.0077207498252391815, + -0.06403134018182755, + -0.016696106642484665, + 0.06292547285556793, + 0.16110067069530487, + -0.010943852365016937, + -0.058716218918561935, + 0.06317492574453354, + 0.06314487755298615, + -0.005325620528310537, + 0.0704900324344635, + 0.10005318373441696, + 0.07264034450054169, + 0.02517593279480934, + 0.0148459542542696, + -0.021879859268665314, + 0.08725609630346298, + 0.016613127663731575, + -0.0073416875675320625, + 0.02053922228515148, + -0.0033455914817750454, + -0.035645242780447006, + 0.01729992777109146, + -0.03468381613492966, + -0.03027549386024475, + 0.023294072598218918, + 0.0029266304336488247, + 0.03214956820011139, + 0.023959046229720116, + -0.055630505084991455, + 0.0348842591047287, + 0.0011369313579052687, + -0.014479635283350945, + 0.06491304188966751, + -0.0171013455837965, + 0.020700231194496155, + 0.03855355829000473, + -0.06517244130373001, + -0.11348254978656769, + 0.03670442849397659, + 0.021799206733703613, + 0.011915899813175201, + 0.06533152610063553, + 0.05046561360359192, + -0.04921099543571472, + 0.11094015836715698, + 0.01865033246576786, + -0.01207005139440298, + 0.003989707678556442, + -0.06642302870750427, + 0.0855250284075737, + 0.12379711866378784, + 0.004956814460456371, + 0.08126046508550644, + -0.0907628983259201, + 0.05807500332593918, + 0.03417370468378067, + -0.13315434753894806, + -0.08021371066570282, + 0.01635052263736725, + 0.029660116881132126, + 0.022714344784617424, + 0.1263212263584137, + 0.0037559240590780973, + 0.03628788888454437, + 0.08916031569242477, + -0.1201762780547142, + -0.05086067318916321, + -0.02359720878303051, + 0.039999544620513916, + -0.07151632010936737, + 0.059445809572935104, + 0.04963528364896774, + -0.02567708119750023, + 0.0016434730496257544, + 0.03686103969812393, + -0.032526928931474686, + 0.03571029379963875, + -0.010871256701648235, + -0.04564623534679413, + 0.021675823256373405, + -0.06487111747264862, + -0.022027797996997833, + 0.024676360189914703, + 0.052233144640922546, + 0.044405072927474976, + 0.0022868788801133633, + -0.07289264351129532, + -0.1260998249053955, + -0.004170695319771767, + 0.03340679407119751, + 0.037976693361997604, + -0.028692152351140976, + -0.039732035249471664, + -0.056720905005931854, + -0.06840913742780685, + 0.03389532119035721, + -0.028629226610064507, + 0.06423278152942657, + 0.01169472187757492, + 0.01982017420232296, + 0.07205839455127716, + 0.019033191725611687, + -0.00809904932975769, + -0.04061006382107735, + -0.048766326159238815, + 0.008097197860479355, + 0.010801266878843307, + -0.04781961441040039, + -0.05832257866859436, + -0.02562042325735092, + 0.01620791107416153, + -0.041379477828741074, + 0.028882190585136414, + 0.041352707892656326, + 0.03783556818962097, + 0.03214290365576744, + -0.05074073374271393, + -0.011035635136067867, + -0.10127341747283936, + -0.06457854807376862, + 0.016947541385889053, + 0.008741732686758041, + -0.019055141136050224, + 0.09269105643033981, + 0.02707105502486229, + 0.033004049211740494, + -0.05711086839437485, + -0.017399966716766357, + -0.06857027113437653, + 0.04161455109715462, + 0.05821641534566879, + 0.015034226700663567, + 0.04238680750131607, + 0.013804599642753601, + -0.012920196168124676, + 0.07800231873989105, + 0.07381346821784973, + 0.07853017002344131, + 0.01876921020448208, + -0.01598728448152542, + -0.06785853952169418, + 0.1082458347082138, + 0.10947208106517792, + -0.02701704204082489, + -0.08586087077856064, + -0.025790922343730927, + -0.11441995948553085, + 0.06302960216999054, + -0.013127107173204422, + -0.009299460798501968, + 0.01957782171666622, + -0.015136376023292542, + -0.1261642873287201, + -0.05232756584882736, + 0.03815246373414993, + -0.021039143204689026, + -0.014643959701061249, + -0.07588966190814972, + 0.05869888886809349, + 0.10201459378004074, + 0.025809211656451225, + -0.003931641578674316, + -0.038445066660642624, + 0.03567447513341904, + -0.06961512565612793, + 0.0071885958313941956, + 0.018263740465044975, + 0.025493260473012924, + -0.0879364013671875, + 0.03344513103365898, + -0.06425642967224121, + 0.022746529430150986, + -0.0661846324801445, + 0.12518291175365448, + 0.018635880202054977, + -0.04994634538888931, + -0.07431639730930328, + 0.08005322515964508, + -0.012550096027553082, + 0.02522459253668785, + 0.020094329491257668, + 0.01730910688638687, + 0.06951040029525757, + -0.13160404562950134, + 0.0784558355808258, + 0.027975033968687057, + -0.027666527777910233, + -0.07800722122192383, + -0.07368484139442444, + -0.020990831777453423, + 0.028741326183080673, + -0.017479144036769867, + -0.04319344088435173, + -0.03360884636640549, + 0.03481416776776314, + 0.038555216044187546, + 0.049933891743421555, + 0.11130048334598541, + -0.0071829236112535, + -0.11586718261241913 + ] + }, + "p244_131.wav": { + "name": "p244", + "embedding": [ + 0.051773663610219955, + 0.11920531839132309, + -0.017388202250003815, + 0.00801470223814249, + -0.053291283547878265, + 0.08008962869644165, + -0.14152702689170837, + 0.13869786262512207, + -0.06063380464911461, + 0.13399645686149597, + -0.08124585449695587, + 0.1243433803319931, + -0.02791563980281353, + -0.16790561378002167, + -0.03832479566335678, + 0.056006934493780136, + -0.02642492949962616, + -0.021153349429368973, + -0.029843613505363464, + -0.01801777444779873, + 0.02627597376704216, + 0.0016101183136925101, + 0.014214443042874336, + 0.0020707491785287857, + 0.04575660079717636, + 0.05909210443496704, + 0.0027672320138663054, + 0.03775542601943016, + -0.0012633068254217505, + -0.0262643750756979, + -0.04282417148351669, + 0.10847103595733643, + -0.05040731281042099, + 0.005238312296569347, + 0.0695110410451889, + 0.004018851555883884, + 0.0013476479798555374, + -0.08221562951803207, + -0.006653761025518179, + -0.012197775766253471, + -0.027806490659713745, + 0.07341498136520386, + 0.0196712426841259, + -0.024899905547499657, + 0.02405600994825363, + 0.038215458393096924, + 0.009255281649529934, + -0.046461135149002075, + -0.09786874055862427, + 0.13107037544250488, + 0.04400842636823654, + 0.011600933969020844, + -0.09161623567342758, + -0.06429623812437057, + 0.11179177463054657, + -0.014369804412126541, + -0.08008041232824326, + -0.02826160565018654, + 0.06530298292636871, + 0.15863749384880066, + -0.03980468586087227, + -0.042695533484220505, + 0.014585405588150024, + 0.10486936569213867, + 0.04771605134010315, + 0.09672224521636963, + 0.07401271909475327, + 0.10617061704397202, + -0.014771237038075924, + 0.02012082003057003, + 0.06321466714143753, + 0.06497268378734589, + 0.05378652736544609, + -0.031599752604961395, + 0.030269965529441833, + -0.00839713029563427, + -0.027909105643630028, + 0.01970379427075386, + -0.04190796613693237, + -0.040651991963386536, + -0.02526729367673397, + 0.011208882555365562, + 0.011837984435260296, + 0.017618713900446892, + -0.030671343207359314, + 0.054828397929668427, + 0.04742934927344322, + -0.030792851001024246, + 0.0753750279545784, + 0.05128327012062073, + -0.007923362776637077, + 0.057089969515800476, + -0.10551302134990692, + -0.0930054634809494, + 0.05335550010204315, + -0.004006318747997284, + 0.011687538586556911, + 0.07276883721351624, + 0.0472969114780426, + -0.008699174039065838, + 0.10147623717784882, + 0.07395502924919128, + 0.010805686935782433, + 0.03500901162624359, + -0.08613039553165436, + 0.13689228892326355, + 0.08635851740837097, + -0.03649013116955757, + 0.03314037621021271, + -0.038866739720106125, + 0.06129535287618637, + 0.0781913697719574, + -0.13437868654727936, + -0.09328192472457886, + 0.02348935417830944, + 0.007293185219168663, + -0.013193312101066113, + 0.0976811870932579, + -0.02401071786880493, + 0.019212350249290466, + 0.08764948695898056, + -0.0785221979022026, + -0.07158657908439636, + -0.022475769743323326, + 0.03214990720152855, + -0.06492529809474945, + 0.06085385009646416, + 0.057107701897621155, + 0.013710787519812584, + -0.0067566074430942535, + 0.07545354962348938, + 0.004002261906862259, + -0.015050138346850872, + 0.025699054822325706, + -0.02662610076367855, + 0.026017412543296814, + -0.006892682518810034, + -0.009361796081066132, + 0.027427449822425842, + 0.05025481432676315, + 0.044319652020931244, + 0.009692894294857979, + 0.004204666707664728, + -0.10147213190793991, + 0.0006517904694192111, + 0.06280013918876648, + 0.07969294488430023, + -0.014023507945239544, + -0.026885345578193665, + -0.03972513601183891, + -0.06018434092402458, + 0.0011818509083241224, + -0.004179387353360653, + 0.08737614005804062, + -0.0017851374577730894, + 0.02197900041937828, + 0.10882064700126648, + 0.027451803907752037, + -0.0006058961153030396, + -0.0544869601726532, + -0.003399872686713934, + 0.037098612636327744, + 0.055405810475349426, + -0.06441332399845123, + -0.0911090224981308, + -0.012462671846151352, + 0.012206878513097763, + -0.03538180887699127, + 0.05990897864103317, + 0.03708581626415253, + 0.01570219174027443, + 0.03672369197010994, + -0.06958041340112686, + 0.021782031282782555, + -0.1099281907081604, + -0.03805774822831154, + -0.02388021908700466, + -0.03261515498161316, + -0.026013564318418503, + 0.06997651606798172, + 0.03265005722641945, + 0.053749483078718185, + -0.015251873061060905, + -0.06236136704683304, + -0.07106058299541473, + 0.05539129301905632, + 0.07320192456245422, + 0.00047182230628095567, + 0.03349994122982025, + 0.04923785850405693, + 0.0042983125895261765, + 0.04841270670294762, + 0.09075738489627838, + 0.08412593603134155, + -0.020233657211065292, + 0.011173320934176445, + -0.05772450566291809, + 0.0908752977848053, + 0.07853017747402191, + -0.0999670922756195, + -0.09733794629573822, + -0.0314897857606411, + -0.044976554811000824, + 0.023222923278808594, + -0.023158585652709007, + 0.018883084878325462, + 0.026271507143974304, + -0.026486029848456383, + -0.0903608426451683, + -0.0990128144621849, + 0.08923383802175522, + -0.06793790310621262, + 0.0019103498198091984, + -0.0708601325750351, + 0.043945472687482834, + 0.08585767447948456, + 0.015695583075284958, + -0.03577731177210808, + -0.007984409108757973, + 0.04524214193224907, + -0.040539972484111786, + -0.006983797065913677, + 0.03293531760573387, + 0.023067450150847435, + -0.10118408501148224, + 0.03308899700641632, + -0.059888310730457306, + 0.08571215718984604, + -0.05049239099025726, + 0.1737249344587326, + 0.0047993953339755535, + -0.04805077239871025, + -0.08287292718887329, + 0.023064663633704185, + -0.023640461266040802, + 0.04154631122946739, + 0.03071696124970913, + 0.06575850397348404, + 0.004734584596008062, + -0.06670975685119629, + 0.1147979125380516, + 0.029987230896949768, + -0.038460299372673035, + -0.07809272408485413, + -0.05830715224146843, + -0.04498923569917679, + 0.027115676552057266, + 0.0030816548969596624, + -0.08249428868293762, + -0.014225131832063198, + 0.019196022301912308, + -0.006374415010213852, + 0.07042526453733444, + 0.14711768925189972, + 0.07646961510181427, + -0.1051764190196991 + ] + }, + "p244_220.wav": { + "name": "p244", + "embedding": [ + 0.03879730403423309, + 0.09055493772029877, + -0.013449713587760925, + 0.02201610803604126, + -0.05717796832323074, + 0.0815148651599884, + -0.12207820266485214, + 0.11224985122680664, + -0.060486312955617905, + 0.1440199613571167, + -0.07286649197340012, + 0.11312384903430939, + -0.019619306549429893, + -0.19507959485054016, + -0.04555293545126915, + 0.052274953573942184, + -0.05741092190146446, + -0.026642274111509323, + -0.03728384152054787, + -0.025818457826972008, + 0.0455283522605896, + 0.05022699758410454, + 0.028865983709692955, + 0.0031799792777746916, + 0.03064601682126522, + 0.05860237404704094, + -0.00041064945980906487, + 0.04074525833129883, + 0.011033182963728905, + -0.06751112639904022, + -0.05683927983045578, + 0.11227892339229584, + -0.045693494379520416, + 0.023093216121196747, + 0.04455939680337906, + 0.005104595795273781, + 0.012291442602872849, + -0.06127537041902542, + -0.02649378776550293, + 0.015792740508913994, + -0.04402081295847893, + 0.06688160449266434, + 0.03025428019464016, + -0.0003331135958433151, + 0.039093393832445145, + 0.0072454228065907955, + -0.019478455185890198, + -0.0503864660859108, + -0.09392698854207993, + 0.1703638881444931, + 0.062744140625, + -0.0065002660267055035, + -0.05478322133421898, + -0.09012486040592194, + 0.11785050481557846, + -0.0051047103479504585, + -0.13170382380485535, + -0.027212215587496758, + 0.0818513035774231, + 0.16934679448604584, + -0.020376477390527725, + -0.040059130638837814, + 0.01990499161183834, + 0.11665328592061996, + 0.019441386684775352, + 0.1002735048532486, + 0.06772534549236298, + 0.08665567636489868, + 0.0014297913294285536, + 0.007924351841211319, + 0.06708859652280807, + 0.07308071851730347, + 0.04511871561408043, + -0.026148442178964615, + 0.02646047994494438, + 0.005571114830672741, + -0.02838445082306862, + 0.025852523744106293, + -0.019251462072134018, + -0.002665368840098381, + -0.020315591245889664, + 0.0013356282142922282, + 0.005613367073237896, + -0.0006534084677696228, + -0.026520565152168274, + 0.04145396500825882, + 0.012017980217933655, + 0.004497114103287458, + 0.06751247495412827, + 0.04404584318399429, + 0.00844128429889679, + 0.06120280548930168, + -0.05212843045592308, + -0.0926857441663742, + 0.022167038172483444, + 0.01979418843984604, + 0.011135349981486797, + 0.07833263278007507, + 0.03854385018348694, + -0.02573969028890133, + 0.11011773347854614, + 0.05281824991106987, + 0.0032901037484407425, + 0.024407315999269485, + -0.10709923505783081, + 0.10679684579372406, + 0.09270425140857697, + -0.009921396151185036, + 0.05202547833323479, + -0.045261450111866, + 0.10293298959732056, + 0.08683113753795624, + -0.15195858478546143, + -0.07544927299022675, + 0.03328393027186394, + 0.021967818960547447, + -0.0022797503042966127, + 0.1113390251994133, + -0.013943596743047237, + 0.01276822667568922, + 0.10044863820075989, + -0.09282051771879196, + -0.054333608597517014, + -0.033119358122348785, + 0.042725201696157455, + -0.08001001924276352, + 0.0430799201130867, + 0.039619144052267075, + -0.01773996464908123, + 0.00014796573668718338, + 0.07431536167860031, + -0.024226512759923935, + 0.004928186535835266, + 0.02313924953341484, + -0.050774913281202316, + 0.019231736660003662, + -0.037040047347545624, + 0.008389119058847427, + 0.06587131321430206, + 0.04547805339097977, + 0.03970226272940636, + -8.527810859959573e-05, + -0.04865244776010513, + -0.11709722131490707, + 0.01301967166364193, + 0.04203265905380249, + 0.06552766263484955, + -0.008239119313657284, + -0.02330688200891018, + -0.03644777834415436, + -0.08237116038799286, + 0.04103248938918114, + -0.012745723128318787, + 0.09000204503536224, + -0.01131061464548111, + -0.00408023688942194, + 0.08427457511425018, + 0.03021332249045372, + -0.025550007820129395, + -0.05551968142390251, + -0.04676496610045433, + 0.01076146587729454, + 0.042087048292160034, + -0.08938419073820114, + -0.06806981563568115, + 0.0052156224846839905, + 0.023495769128203392, + -0.016163988038897514, + 0.03915276378393173, + 0.049200914800167084, + 0.01324817817658186, + 0.05049874633550644, + -0.07602536678314209, + 0.009448867291212082, + -0.12491156905889511, + -0.0672941654920578, + -0.018088815733790398, + -0.03395524621009827, + -0.001566180377267301, + 0.09039953351020813, + 0.008829125203192234, + 0.021368809044361115, + -0.01361086405813694, + -0.06383176892995834, + -0.06541204452514648, + 0.07006420195102692, + 0.06460034847259521, + 0.025414317846298218, + 0.053112201392650604, + 0.05500742793083191, + -0.03475232422351837, + 0.06942816823720932, + 0.06279851496219635, + 0.11005311459302902, + -0.022728553041815758, + 0.03446103632450104, + -0.061128031462430954, + 0.08493976294994354, + 0.0739341750741005, + -0.09063868224620819, + -0.09390824288129807, + -0.032900579273700714, + -0.06158585473895073, + 0.057387083768844604, + -0.02975746989250183, + -0.0012641990324482322, + 0.008109633810818195, + -0.008847979828715324, + -0.08933817595243454, + -0.08393734693527222, + 0.09103529155254364, + -0.0433959886431694, + -0.022728756070137024, + -0.0708194375038147, + 0.048191651701927185, + 0.09499004483222961, + 0.04553939402103424, + -0.02243354730308056, + 0.014007735066115856, + 0.05793747305870056, + -0.058781158179044724, + -0.006644446402788162, + 0.047453057020902634, + 0.015412582084536552, + -0.09625618159770966, + 0.008070964366197586, + -0.08590416610240936, + 0.0674610584974289, + -0.06626740097999573, + 0.16323433816432953, + -0.012062348425388336, + -0.06744888424873352, + -0.0719728171825409, + 0.058629315346479416, + -0.027350004762411118, + 0.032272979617118835, + 0.039434365928173065, + 0.06757237762212753, + 0.031247874721884727, + -0.06235533207654953, + 0.1072753369808197, + 0.032561205327510834, + -0.0334937646985054, + -0.05052363872528076, + -0.03174809366464615, + -0.0367119163274765, + 0.02287173829972744, + -0.0005507778259925544, + -0.08926013112068176, + -0.008259646594524384, + 0.023013412952423096, + -0.006786442827433348, + 0.05982303246855736, + 0.14092090725898743, + 0.06602182984352112, + -0.12202151119709015 + ] + }, + "p244_374.wav": { + "name": "p244", + "embedding": [ + 0.023449799045920372, + 0.09643372893333435, + -0.032250478863716125, + 0.005322292447090149, + -0.016022540628910065, + 0.0508054755628109, + -0.13578638434410095, + 0.09502934664487839, + -0.056720755994319916, + 0.1447373479604721, + -0.03489553555846214, + 0.09041651338338852, + -0.03130771964788437, + -0.1395520269870758, + -0.027699880301952362, + 0.05204661935567856, + -0.051412902772426605, + -0.02630513161420822, + -0.0019895657896995544, + -0.04401072859764099, + 0.046441029757261276, + 0.03166159242391586, + 0.011625888757407665, + -0.029704419896006584, + 0.004238383378833532, + 0.08030026406049728, + 0.005667436867952347, + 0.014578722417354584, + -0.0003715492784976959, + -0.06751219928264618, + -0.03447506204247475, + 0.09523941576480865, + -0.022197291254997253, + -0.008337460458278656, + 0.027852412313222885, + 0.009596243500709534, + 0.0008364307577721775, + -0.050223857164382935, + 0.000549623160623014, + 0.02582681179046631, + -0.0528397411108017, + 0.0737689957022667, + 0.023051604628562927, + -0.005195187404751778, + 0.05737006664276123, + -0.05281570181250572, + -0.02818243019282818, + -0.017421789467334747, + -0.06383350491523743, + 0.1298730969429016, + 0.10277587175369263, + -0.007928198203444481, + -0.0379345640540123, + -0.037560053169727325, + 0.08777811378240585, + 0.022373056039214134, + -0.1208801120519638, + -0.0252310112118721, + 0.04938438534736633, + 0.14853988587856293, + -0.011800747364759445, + -0.026561260223388672, + 0.03328322991728783, + 0.11597199738025665, + 0.012417681515216827, + 0.07975783944129944, + 0.08920113742351532, + 0.05056234821677208, + 0.02026141993701458, + -0.016240660101175308, + 0.03821743652224541, + 0.08321662247180939, + 0.03376757353544235, + -0.0201406367123127, + 0.03548591211438179, + -0.03312789648771286, + -0.033397823572158813, + -0.024128664284944534, + -0.011269854381680489, + -0.04666639864444733, + -0.050403352826833725, + -0.00040141059434972703, + 0.002832874422892928, + 0.03926333785057068, + 0.0014116069069132209, + 0.013494587503373623, + 0.028113186359405518, + -0.038565732538700104, + 0.038569074124097824, + 0.03380490094423294, + 0.028290167450904846, + 0.028291037306189537, + -0.050817154347896576, + -0.06457144021987915, + 0.02594846300780773, + 0.009456822648644447, + 0.030960887670516968, + 0.06504091620445251, + 0.03901662677526474, + 0.0018195733428001404, + 0.09513044357299805, + 0.04242563992738724, + 0.0013941613724455237, + -0.00964332651346922, + -0.08384327590465546, + 0.08617278188467026, + 0.09848646819591522, + -0.030436735600233078, + 0.04858040809631348, + -0.026909753680229187, + 0.037407875061035156, + 0.030659686774015427, + -0.12841413915157318, + -0.044140756130218506, + 0.029600482434034348, + 0.03816960006952286, + 0.0023257534485310316, + 0.10797127336263657, + 0.03385370224714279, + 0.02210618183016777, + 0.08123153448104858, + -0.06448104977607727, + -0.06887614727020264, + -0.09283602237701416, + 0.06871804594993591, + -0.09410824626684189, + 0.07797706127166748, + 0.05561335012316704, + 0.007313728332519531, + 0.008195910602807999, + 0.055985815823078156, + 0.008309325203299522, + -0.003935560584068298, + -0.01303067710250616, + -0.04327896237373352, + 0.004225160926580429, + -0.04742027074098587, + 0.03935592621564865, + 0.027425501495599747, + 0.008239563554525375, + 0.05436950549483299, + 0.002620019717141986, + -0.0037700410466641188, + -0.07606267184019089, + 0.004679839126765728, + 0.025717658922076225, + 0.03588217869400978, + -0.021849848330020905, + -0.041657865047454834, + 0.001358928857371211, + -0.07490625232458115, + -0.020749058574438095, + -0.045521121472120285, + 0.08894895762205124, + -0.0032843926455825567, + 0.0088884886354208, + 0.0840899869799614, + 0.01933881640434265, + -0.0074418894946575165, + -0.016723372042179108, + -0.009743014350533485, + 0.02282208763062954, + 0.04553689807653427, + -0.10854979604482651, + -0.07491825520992279, + -0.006919624283909798, + 0.01743520423769951, + 0.012150495313107967, + 0.03819242864847183, + 0.056162089109420776, + 0.00873025692999363, + 0.038402944803237915, + -0.022650912404060364, + 0.017682809382677078, + -0.09988783299922943, + -0.06519915908575058, + -0.031922828406095505, + -0.06194712966680527, + -0.03511340543627739, + 0.07849004864692688, + -0.007298754062503576, + 0.03678799793124199, + -0.01956704631447792, + -0.048037197440862656, + -0.053779806941747665, + 0.06473030894994736, + 0.07054997980594635, + 0.00425155321136117, + 0.017644930630922318, + 0.05806760489940643, + 0.006640546955168247, + 0.009750778786838055, + 0.041887760162353516, + 0.104054294526577, + -0.022354010492563248, + 0.0025161877274513245, + -0.08518111705780029, + 0.05406004935503006, + 0.09197567403316498, + -0.06775777041912079, + -0.06599339097738266, + -0.03665510565042496, + -0.07428398728370667, + 0.04573630914092064, + -0.0492304265499115, + 0.000265246257185936, + -0.008219039998948574, + -0.013596093282103539, + -0.10187450051307678, + -0.08742545545101166, + 0.0933118388056755, + -0.045064859092235565, + -0.01372772827744484, + -0.0618569515645504, + 0.04460422322154045, + 0.0685817301273346, + 0.05725841969251633, + -0.057626865804195404, + 0.027187949046492577, + 0.047102004289627075, + -0.04292602464556694, + 0.03270243853330612, + 0.025353293865919113, + 0.04611819237470627, + -0.09895791113376617, + -0.0016420434694737196, + -0.06781023740768433, + 0.05189454182982445, + -0.07250219583511353, + 0.09858774393796921, + 0.017517752945423126, + -0.050958409905433655, + -0.08054932951927185, + 0.05003558099269867, + -0.008419888094067574, + 0.029420314356684685, + 0.03812549635767937, + 0.07518221437931061, + 0.030836796388030052, + -0.06830979883670807, + 0.0732167661190033, + 0.02889445424079895, + 0.016833506524562836, + -0.048200011253356934, + -0.009828130714595318, + -0.03241066634654999, + 0.041101641952991486, + 0.006099475082010031, + -0.06915758550167084, + -0.006090696435421705, + 0.00019398207950871438, + 0.020913206040859222, + 0.06758694350719452, + 0.08900843560695648, + 0.02920929156243801, + -0.09521955251693726 + ] + }, + "p244_384.wav": { + "name": "p244", + "embedding": [ + 0.05566015467047691, + 0.11395697295665741, + 0.016208510845899582, + 0.01644066348671913, + -0.024002349004149437, + 0.054477911442518234, + -0.06622035056352615, + 0.08821912854909897, + 0.020203595981001854, + 0.07493787258863449, + -0.08233807235956192, + 0.07063636928796768, + -0.040873635560274124, + -0.1317119002342224, + -0.002980649471282959, + 0.0365707166492939, + -0.03391682356595993, + 0.007290172390639782, + -0.03264535591006279, + -0.028852222487330437, + -0.013985025696456432, + 0.010282794013619423, + 0.03223650902509689, + 0.0045434534549713135, + -0.0029877275228500366, + 0.027245599776506424, + -0.030182931572198868, + 0.013489204458892345, + -0.006926137953996658, + -0.0492633581161499, + -0.023077093064785004, + 0.07702772319316864, + -0.02443801425397396, + 0.0008054872741922736, + 0.014587613753974438, + -0.030850771814584732, + 0.010230448096990585, + -0.0658850222826004, + -0.04567558690905571, + 0.02418021485209465, + -0.043879434466362, + 0.051380373537540436, + 0.025394242256879807, + -0.042888231575489044, + 0.039149150252342224, + 0.0022595818154513836, + -0.04928196594119072, + -0.00761794438585639, + -0.09855502843856812, + 0.10403876006603241, + 0.033704712986946106, + 0.022440306842327118, + -0.06818641722202301, + -0.020435117185115814, + 0.1011800765991211, + -0.0034335616510361433, + -0.05934975668787956, + -0.009920991957187653, + 0.042349811643362045, + 0.08056049793958664, + 0.01637434959411621, + -0.020987948402762413, + 0.023552950471639633, + 0.07456541061401367, + 0.04375208169221878, + 0.04541177302598953, + 0.07541152834892273, + 0.10399436950683594, + -0.033417265862226486, + 0.027119828388094902, + 0.03373056650161743, + 0.011724199168384075, + 0.04241838678717613, + -0.012726284563541412, + -0.004522574134171009, + -0.017244575545191765, + -0.002019263803958893, + -0.009453907608985901, + -0.01497898530215025, + -0.04106542095541954, + 0.02151159942150116, + -0.022283729165792465, + 0.003852484282106161, + 0.011755655519664288, + -0.040615763515233994, + -0.009845077991485596, + 0.057101499289274216, + 0.03894852101802826, + 0.07229340076446533, + 0.03508644551038742, + 0.026812713593244553, + 0.07455843687057495, + -0.06594584882259369, + -0.06658811867237091, + 0.014251867309212685, + -0.004513641819357872, + 0.034751296043395996, + 0.04799506068229675, + 0.03846416622400284, + -0.016666464507579803, + 0.10123103857040405, + 0.00968961976468563, + 0.026942379772663116, + 0.0037530555855482817, + -0.06388043612241745, + 0.042672865092754364, + 0.06472232192754745, + -0.012896097265183926, + 0.06440748274326324, + 0.01062367670238018, + 0.06981091946363449, + 0.06846883147954941, + -0.07536599785089493, + -0.014261203818023205, + -0.003836844116449356, + 0.031877219676971436, + 0.0012222162913531065, + 0.10023045539855957, + -0.003363877534866333, + 0.036561690270900726, + 0.08934098482131958, + -0.059772785753011703, + 0.0007901564240455627, + 0.030527103692293167, + 0.0047083026729524136, + -0.03602129593491554, + 0.045893482863903046, + 0.02402573451399803, + -0.018750881776213646, + -0.01842883974313736, + 0.04225537180900574, + 0.009178774431347847, + -0.002205016789957881, + -0.023625221103429794, + -0.014965901151299477, + 0.0016625039279460907, + 0.0035599893890321255, + 7.717932749073952e-05, + 0.027427583932876587, + 0.04772336408495903, + 0.012440296821296215, + 0.006515865679830313, + -0.04017090052366257, + -0.06528477370738983, + 0.024902252480387688, + 0.0067955926060676575, + 0.025829432532191277, + 0.03323550522327423, + -0.02986619435250759, + -0.04087820276618004, + -0.027270019054412842, + 0.062224578112363815, + -0.025220494717359543, + 0.06402501463890076, + 0.04003491252660751, + -0.010010424070060253, + 0.07204889506101608, + 0.03619522601366043, + 0.013378968462347984, + -0.04099726676940918, + -0.07827086746692657, + -0.004374640993773937, + 0.042702071368694305, + -0.07098110020160675, + -0.034417614340782166, + -0.012448584660887718, + -0.024141617119312286, + -0.01612934097647667, + 0.01713244616985321, + 0.06172192841768265, + -0.01600707694888115, + 0.012988138012588024, + -0.07074102759361267, + 0.015045110136270523, + -0.044114768505096436, + -0.08719181269407272, + 0.035293471068143845, + 0.0063250502571463585, + 0.009485555812716484, + 0.07353170216083527, + 0.015584670007228851, + 0.00660300999879837, + -0.036142997443675995, + -0.051705487072467804, + -0.00463007902726531, + 0.04233451187610626, + 0.026176786050200462, + -0.0022782832384109497, + 0.03917685151100159, + 0.05707709491252899, + -0.016167620196938515, + 0.0413212776184082, + 0.02133442834019661, + 0.0711769312620163, + -0.043713055551052094, + 0.01626548171043396, + -0.005085880868136883, + 0.06328696012496948, + 0.06897328048944473, + -0.0725037008523941, + -0.10481145977973938, + -0.04440099745988846, + -0.044441476464271545, + 0.031490959227085114, + -0.009176194667816162, + 0.0003801745770033449, + 0.03060680627822876, + -0.018050074577331543, + -0.03994433581829071, + -0.11339092254638672, + 0.05120830237865448, + -0.017044490203261375, + -0.007945175282657146, + -0.053484879434108734, + 0.03012763522565365, + 0.028895672410726547, + 0.031500112265348434, + -0.027842644602060318, + 0.022633550688624382, + 0.03358602151274681, + -0.005996193736791611, + -0.020609170198440552, + 0.03077751025557518, + 0.035197652876377106, + -0.04148676618933678, + -0.026999717578291893, + -0.05664321780204773, + 0.059217438101768494, + 0.01310439221560955, + 0.10835233330726624, + 0.03155405446887016, + -0.01899263821542263, + -0.07134135067462921, + 0.05220211669802666, + -0.025549456477165222, + 0.04190117120742798, + 0.008280213922262192, + 0.03209483623504639, + 0.047817789018154144, + -0.0439918115735054, + 0.07255464047193527, + 0.025607986375689507, + -0.028876788914203644, + -0.03586782515048981, + 0.0011342864017933607, + -0.05578766390681267, + 0.0039499131962656975, + 0.000495461979880929, + -0.05514378473162651, + -0.01818789914250374, + 0.024498112499713898, + 0.042953379452228546, + 0.05583646148443222, + 0.08736936748027802, + 0.05355657637119293, + -0.04766364023089409 + ] + }, + "p244_311.wav": { + "name": "p244", + "embedding": [ + 0.051357634365558624, + 0.08640292286872864, + -0.023266131058335304, + 0.02229953557252884, + -0.06447425484657288, + 0.07222622632980347, + -0.13573625683784485, + 0.1333259791135788, + -0.04352742061018944, + 0.14977094531059265, + -0.05300269275903702, + 0.11877299845218658, + -0.01130568515509367, + -0.17859090864658356, + -0.04289994761347771, + 0.0334707610309124, + -0.03931748867034912, + -0.039801016449928284, + -0.04093143343925476, + -0.03651154786348343, + 0.036497943103313446, + 0.05618300288915634, + 0.015927409753203392, + 0.009223002940416336, + 0.04482416808605194, + 0.05732090026140213, + -0.009629062376916409, + 0.03104410693049431, + 0.005513321608304977, + -0.07702966779470444, + -0.038203924894332886, + 0.0964803695678711, + -0.06254828721284866, + 0.029088163748383522, + 0.028710223734378815, + -0.010501404292881489, + 0.010291682556271553, + -0.06586772203445435, + -0.03337614983320236, + 0.027852701023221016, + -0.03957948088645935, + 0.08354207873344421, + 0.03790400177240372, + -0.0027799096424132586, + 0.029529694467782974, + 0.006164429243654013, + -0.0006938234437257051, + -0.05417706072330475, + -0.09687276184558868, + 0.1767762005329132, + 0.05619187653064728, + -0.007181104738265276, + -0.06980688869953156, + -0.0776086151599884, + 0.11143673956394196, + -0.016323860734701157, + -0.1179150640964508, + -0.02359612286090851, + 0.06593306362628937, + 0.15822909772396088, + -0.029200537130236626, + -0.056219637393951416, + 0.025904085487127304, + 0.12358596920967102, + 0.055603161454200745, + 0.06216292828321457, + 0.09565773606300354, + 0.10930820554494858, + -0.02649831771850586, + -0.0010681552812457085, + 0.05225870758295059, + 0.07488647103309631, + 0.052707020193338394, + -0.021133607253432274, + 0.023522090166807175, + 0.003000113647431135, + -0.014402510598301888, + -0.0042637246660888195, + -0.023517247289419174, + -0.006714884657412767, + -0.016419006511569023, + 0.016467660665512085, + 0.010034924373030663, + 0.03235607594251633, + -0.038288574665784836, + 0.046929627656936646, + 0.028022320941090584, + -0.018424823880195618, + 0.06956097483634949, + 0.047474659979343414, + 0.0226121935993433, + 0.06090710312128067, + -0.08389033377170563, + -0.0798303559422493, + 0.035781875252723694, + 0.007912063039839268, + 0.02175053581595421, + 0.07769251614809036, + 0.04378724843263626, + -0.01348889246582985, + 0.12146754562854767, + 0.044603876769542694, + -0.012466082349419594, + 0.007494073361158371, + -0.09475603699684143, + 0.11331655085086823, + 0.09762737154960632, + -0.019908040761947632, + 0.06147930026054382, + -0.056610412895679474, + 0.08070899546146393, + 0.05401461198925972, + -0.14500020444393158, + -0.08816921710968018, + 0.040170855820178986, + 0.030931632965803146, + -0.005460510030388832, + 0.131168395280838, + -0.011465403251349926, + 0.044736944139003754, + 0.08541398495435715, + -0.08328656852245331, + -0.03487028554081917, + -0.027626361697912216, + 0.06220778077840805, + -0.07433606684207916, + 0.053497716784477234, + 0.0505019947886467, + -0.019700603559613228, + 0.013632059097290039, + 0.06955055147409439, + -0.008388577029109001, + 0.005705136340111494, + 0.004309090785682201, + -0.037476446479558945, + 0.02089506760239601, + -0.004578168969601393, + 0.001466446090489626, + 0.043698713183403015, + 0.03842398524284363, + 0.054924771189689636, + -0.006294566672295332, + -0.037312932312488556, + -0.11995771527290344, + 0.026603087782859802, + 0.027026604861021042, + 0.07196778059005737, + -0.022917944937944412, + -0.02381109818816185, + -0.04027148336172104, + -0.07303570210933685, + 0.02255737967789173, + -0.003647993318736553, + 0.09252651035785675, + -0.011052945628762245, + 0.010942134074866772, + 0.10676807165145874, + 0.04383505508303642, + -0.01471814326941967, + -0.02746441960334778, + -0.029986966401338577, + -0.017777137458324432, + 0.06124287098646164, + -0.07759775966405869, + -0.07165796309709549, + -0.007651845924556255, + 0.025621674954891205, + -0.01494077779352665, + 0.07042072713375092, + 0.04821113869547844, + 0.01670840196311474, + 0.04153861105442047, + -0.07673287391662598, + 0.0016940627247095108, + -0.10998199135065079, + -0.06242836266756058, + -0.008893463760614395, + -0.022390324622392654, + -0.023218736052513123, + 0.09397567808628082, + 0.03106657788157463, + 0.05410348251461983, + -0.02080501988530159, + -0.060123544186353683, + -0.06440001726150513, + 0.05380197614431381, + 0.053523868322372437, + -0.0066789621487259865, + 0.027786459773778915, + 0.06938782334327698, + -0.0177437923848629, + 0.06584183126688004, + 0.08010941743850708, + 0.08836636692285538, + -0.03083617426455021, + 0.04386240243911743, + -0.06199156492948532, + 0.10994042456150055, + 0.06841009855270386, + -0.0839373916387558, + -0.09480857849121094, + -0.035347942262887955, + -0.07720832526683807, + 0.030661912634968758, + -0.02123548835515976, + 0.026769477874040604, + 0.018754659220576286, + 0.0011099257972091436, + -0.09803085029125214, + -0.08783013373613358, + 0.08327104151248932, + -0.057306498289108276, + -0.00015311618335545063, + -0.09112933278083801, + 0.04500465840101242, + 0.11834831535816193, + 0.05302465707063675, + -0.012607109732925892, + -0.013908649794757366, + 0.05101641267538071, + -0.023482875898480415, + 0.0057307276874780655, + 0.060634415596723557, + 0.02579566463828087, + -0.10661022365093231, + -0.0024223041255027056, + -0.06767679005861282, + 0.06707805395126343, + -0.04907575249671936, + 0.15105122327804565, + 0.01744437776505947, + -0.06619874387979507, + -0.07671445608139038, + 0.0547390878200531, + -0.023104017600417137, + 0.050892770290374756, + 0.02182084694504738, + 0.06905778497457504, + 0.05052930861711502, + -0.05335437133908272, + 0.10176366567611694, + 0.05871710553765297, + -0.050939638167619705, + -0.06275615096092224, + -0.05191664397716522, + -0.011560317128896713, + 0.03879278153181076, + 0.011536180973052979, + -0.07817871868610382, + -0.011468037962913513, + 0.026277780532836914, + -0.009750363416969776, + 0.06902795284986496, + 0.1414240151643753, + 0.0844682902097702, + -0.13844546675682068 + ] + }, + "p244_276.wav": { + "name": "p244", + "embedding": [ + 0.07513131946325302, + 0.02545362338423729, + -0.0007975666667334735, + 0.0007347576320171356, + -0.014446436427533627, + -0.0018529929220676422, + -0.1630624234676361, + 0.12214868515729904, + -0.001670363126322627, + 0.07535199820995331, + -0.051437895745038986, + 0.09921683371067047, + 0.013241864740848541, + -0.15327613055706024, + -0.021063577383756638, + 0.04479089006781578, + -0.005546256899833679, + -0.015442103147506714, + -0.022954702377319336, + -0.03150840848684311, + 0.020176153630018234, + 0.06058849021792412, + 0.031246734783053398, + -0.019195646047592163, + 0.025389356538653374, + 0.05622461438179016, + 0.015163104049861431, + 0.03469700366258621, + -0.01221897266805172, + -0.009008258581161499, + 0.01926465332508087, + 0.061990123242139816, + -0.028483707457780838, + -0.032817672938108444, + 0.03926622122526169, + -0.0018425974994897842, + -0.0015973140252754092, + -0.08711747825145721, + -0.03546024113893509, + 0.015213991515338421, + -0.06350058317184448, + 0.08013074845075607, + 0.05164342746138573, + -0.03413361310958862, + 0.03368685394525528, + 0.025439295917749405, + 0.011682569049298763, + -0.064358189702034, + -0.1342936009168625, + 0.151157945394516, + 0.014985228888690472, + 0.06193343922495842, + -0.11136561632156372, + -0.018629081547260284, + 0.07343872636556625, + -0.02206953428685665, + -0.02288104221224785, + -0.04405027627944946, + 0.04169435799121857, + 0.13684767484664917, + -0.019486747682094574, + -0.0519028902053833, + 0.06259241700172424, + 0.07143506407737732, + 0.06255485862493515, + 0.016289565712213516, + 0.12722131609916687, + 0.0883333832025528, + -0.02125145122408867, + 0.006384031381458044, + 0.02852659486234188, + 0.06598511338233948, + 0.02192794531583786, + -0.007386332377791405, + 0.013409084640443325, + 0.018812738358974457, + -0.03646520525217056, + -0.022810813039541245, + -0.021267544478178024, + -0.024511411786079407, + 0.01405554823577404, + 0.02284611389040947, + 0.02818315289914608, + 0.06552787125110626, + -0.06397907435894012, + 0.05365968868136406, + 0.0382208451628685, + -0.025596462190151215, + 0.06153101846575737, + 0.027358587831258774, + 0.007291970308870077, + 0.01601489633321762, + -0.07241231948137283, + -0.07202789932489395, + 0.011328734457492828, + -0.0033673529978841543, + 0.015303499065339565, + 0.040278173983097076, + 0.03942414000630379, + -0.0285886712372303, + 0.11708387732505798, + 0.025230389088392258, + -0.01589309796690941, + 0.0013176712673157454, + -0.05587373673915863, + 0.08489914983510971, + 0.09609320014715195, + -0.023247260600328445, + 0.04496036469936371, + -0.05696377158164978, + -0.011959615163505077, + 0.04828553646802902, + -0.10010834783315659, + -0.06327567249536514, + 0.05855641886591911, + 0.03563724085688591, + 0.045757003128528595, + 0.1486397087574005, + 0.012655029073357582, + 0.0502140074968338, + 0.08141949772834778, + -0.08284391462802887, + -0.05485440418124199, + 0.004507214762270451, + 0.04715452343225479, + -0.05526868253946304, + 0.06577930599451065, + 0.05322889983654022, + 0.006675058510154486, + -0.016785262152552605, + 0.056993406265974045, + 0.011212694458663464, + -0.00012188901746412739, + -0.06596982479095459, + 0.036848943680524826, + 0.05157247930765152, + -0.005241219885647297, + -0.043959300965070724, + 0.025657981634140015, + 0.059320058673620224, + 0.014650347642600536, + 0.04271932691335678, + -0.05382728576660156, + -0.1463930308818817, + -0.008406261913478374, + 0.041148796677589417, + 0.08537115156650543, + -0.032415278255939484, + -0.04834642633795738, + -0.07863584160804749, + -0.023011289536952972, + -0.029490754008293152, + -0.001999839209020138, + 0.057922668755054474, + 0.008890870027244091, + 0.017409829422831535, + 0.07651060819625854, + -0.017208917066454887, + 0.04339132830500603, + 0.01516370102763176, + 0.002494536340236664, + 0.008127131499350071, + 0.028701579198241234, + -0.0042880079708993435, + -0.08832081407308578, + -0.03724939376115799, + 0.023126747459173203, + -0.01982273906469345, + 0.027472496032714844, + 0.007182744797319174, + -0.002531040459871292, + -0.008446760475635529, + -0.10211595147848129, + 0.029691239818930626, + -0.09596455097198486, + -0.029073771089315414, + 0.03172459453344345, + 0.0033631238620728254, + -0.026961371302604675, + 0.07979995012283325, + 0.04175744205713272, + 0.07449490576982498, + -0.042166538536548615, + -0.07729753851890564, + -0.053343381732702255, + 0.012318165972828865, + 0.06639628112316132, + -0.03494974225759506, + -0.002078404650092125, + 0.009801940992474556, + 0.02757570892572403, + 0.04453955590724945, + 0.058736201375722885, + 0.04062897711992264, + -0.01466267928481102, + -0.039879556745290756, + -0.008759453892707825, + 0.12539933621883392, + 0.048204414546489716, + -0.0434136837720871, + -0.04680304974317551, + 0.0005535235395655036, + -0.07774858176708221, + -0.000574390112888068, + 0.03343776613473892, + 0.04662688076496124, + 0.05060954391956329, + -0.01016424410045147, + -0.11285319179296494, + -0.06839986145496368, + 0.015341583639383316, + -0.060285188257694244, + -0.0014953764621168375, + -0.05849572271108627, + 0.029280435293912888, + 0.10980862379074097, + 0.015062114223837852, + 0.027394801378250122, + -0.0706247091293335, + -0.036756765097379684, + -0.046370141208171844, + -0.019908517599105835, + 0.02065538987517357, + 0.045064907521009445, + -0.08134107291698456, + 0.006947098299860954, + -0.06597991287708282, + 0.06346414983272552, + -0.01968800649046898, + 0.08218702673912048, + 0.040747594088315964, + -0.05304236710071564, + -0.10162591189146042, + -0.020573318004608154, + -0.011410156264901161, + 0.07832687348127365, + 0.02096492424607277, + 0.039235204458236694, + 0.04070473089814186, + -0.07032576948404312, + 0.06468284130096436, + 0.07685994356870651, + -0.046594396233558655, + -0.07684477418661118, + -0.054644010961055756, + -0.0035267286002635956, + 0.03640913590788841, + -0.004815790336579084, + -0.011477336287498474, + -0.004399165511131287, + 0.02710307203233242, + -0.008676138706505299, + 0.0436553955078125, + 0.09508110582828522, + 0.01512140966951847, + -0.11000603437423706 + ] + }, + "p244_119.wav": { + "name": "p244", + "embedding": [ + 0.041035328060388565, + 0.1171216368675232, + -0.01179348025470972, + 0.03046359308063984, + -0.04702170193195343, + 0.09453181177377701, + -0.10668397694826126, + 0.12248910963535309, + -0.08323294669389725, + 0.14492663741111755, + -0.09888210147619247, + 0.10447487235069275, + -0.05675545334815979, + -0.1498221755027771, + -0.05997239425778389, + 0.05494444817304611, + -0.06274647265672684, + -0.023233912885189056, + -0.04553444683551788, + -0.005147829651832581, + 0.03341696783900261, + 0.012462028302252293, + 0.025516755878925323, + 0.022354155778884888, + 0.027508899569511414, + 0.06286543607711792, + 0.001179900486022234, + 0.048382315784692764, + 0.022447364404797554, + -0.050107475370168686, + -0.040904365479946136, + 0.12279647588729858, + -0.04318425804376602, + 0.014436806552112103, + 0.05204117298126221, + 0.019102005288004875, + 0.006252304185181856, + -0.06737777590751648, + -0.0053457641042768955, + -0.021111296489834785, + -0.04827390983700752, + 0.06416188925504684, + 0.00558291282504797, + -0.004469968844205141, + 0.028955701738595963, + 0.006233080290257931, + -0.019877638667821884, + -0.04545636475086212, + -0.09355872869491577, + 0.15283310413360596, + 0.07247988134622574, + -0.002529071643948555, + -0.07150186598300934, + -0.07887449860572815, + 0.10880424082279205, + -0.007559535093605518, + -0.12024316191673279, + -0.04662764444947243, + 0.07981253415346146, + 0.17828938364982605, + -0.02430693805217743, + -0.01474565640091896, + 0.010893961414694786, + 0.12074629962444305, + 0.044923555105924606, + 0.10954049229621887, + 0.06623528152704239, + 0.08859512209892273, + 0.017126547172665596, + 0.031472571194171906, + 0.07967846095561981, + 0.0410277396440506, + 0.05896005779504776, + -0.021644819527864456, + 0.03180265426635742, + -0.01761065609753132, + -0.01831923797726631, + 0.032657016068696976, + -0.02466539293527603, + -0.03449594974517822, + -0.030181854963302612, + 0.00802590325474739, + -0.004851335193961859, + 0.005722460336983204, + -0.021320605650544167, + 0.05398112162947655, + 0.009338266216218472, + -0.0218175258487463, + 0.07274986803531647, + 0.051705602556467056, + -0.002791539765894413, + 0.05145624279975891, + -0.05410643666982651, + -0.0874621570110321, + 0.01553080789744854, + 0.0018303999677300453, + 0.010888876393437386, + 0.07250514626502991, + 0.03416242077946663, + -0.015027493238449097, + 0.0963885635137558, + 0.052156828343868256, + 0.018163956701755524, + 0.02427164651453495, + -0.1131306141614914, + 0.12617751955986023, + 0.0781724825501442, + -0.02230972982943058, + 0.028605753555893898, + -0.0042348201386630535, + 0.07369662076234818, + 0.09680469334125519, + -0.1422722339630127, + -0.07125332206487656, + 0.022511953487992287, + -0.007162821479141712, + -0.008128483779728413, + 0.07181699573993683, + -0.0035393889993429184, + 0.0033530760556459427, + 0.09313615411520004, + -0.07921084761619568, + -0.06184364855289459, + -0.03161986917257309, + 0.045311339199543, + -0.07356663048267365, + 0.043095991015434265, + 0.04346722364425659, + 0.001474400283768773, + -0.01761433854699135, + 0.08378525078296661, + -0.010551784187555313, + -0.015932224690914154, + 0.042461566627025604, + -0.05689840763807297, + 0.02786139026284218, + -0.037262171506881714, + 0.0036523835733532906, + 0.04492847993969917, + 0.05050475895404816, + 0.04371700435876846, + -0.007069278042763472, + -0.009565704502165318, + -0.0784645527601242, + -0.0012035290710628033, + 0.06865569949150085, + 0.05565640330314636, + -0.008396778255701065, + -0.013615313917398453, + -0.03218509256839752, + -0.056504637002944946, + 0.02951989322900772, + -0.011214896105229855, + 0.09775665402412415, + -0.01146942563354969, + -0.005394458770751953, + 0.10931695997714996, + 0.005259362049400806, + -0.009987985715270042, + -0.07161106169223785, + -0.006231918931007385, + 0.03999503329396248, + 0.05255555734038353, + -0.06762631237506866, + -0.07490804046392441, + 0.02168220467865467, + 0.023013144731521606, + -0.019276540726423264, + 0.04656728357076645, + 0.042168669402599335, + 0.004543937277048826, + 0.031079240143299103, + -0.05665223300457001, + 0.02340463176369667, + -0.0977492481470108, + -0.04623570665717125, + -0.01847703568637371, + -0.05729732662439346, + -0.01188218966126442, + 0.0690579041838646, + 0.02865620329976082, + 0.02114933356642723, + 0.013684026896953583, + -0.0934654101729393, + -0.06491606682538986, + 0.07864168286323547, + 0.0688200294971466, + 0.018624501302838326, + 0.05195033177733421, + 0.06353733688592911, + -0.024179628118872643, + 0.050453878939151764, + 0.07028040289878845, + 0.1048823893070221, + -0.022610560059547424, + -0.0059287287294864655, + -0.07370325177907944, + 0.05497792363166809, + 0.07311097532510757, + -0.11497239768505096, + -0.08855105191469193, + -0.035394515842199326, + -0.04312887787818909, + 0.04550495371222496, + -0.0346343070268631, + 0.013257147744297981, + 0.03421206399798393, + -0.04018382728099823, + -0.08878929913043976, + -0.1068856343626976, + 0.1229618713259697, + -0.06971406936645508, + -0.022279294207692146, + -0.06242777034640312, + 0.04196704179048538, + 0.06394918262958527, + 0.03370310366153717, + -0.0312601774930954, + 0.03787950053811073, + 0.04882405698299408, + -0.06794276833534241, + -0.02030945010483265, + 0.03759439289569855, + -0.00434664823114872, + -0.10304947197437286, + 0.022803107276558876, + -0.08713734149932861, + 0.09344163537025452, + -0.06279364228248596, + 0.17406919598579407, + -0.029436789453029633, + -0.048017099499702454, + -0.08457805216312408, + 0.04212973266839981, + -0.036227550357580185, + 0.03667278587818146, + 0.039252158254384995, + 0.07407870888710022, + 0.00952131673693657, + -0.05543564260005951, + 0.11899800598621368, + 0.021641097962856293, + -0.0313698872923851, + -0.06194864958524704, + -0.0465119443833828, + -0.058486443012952805, + 0.010606616735458374, + -0.008879156783223152, + -0.09011583030223846, + 0.003236854914575815, + 0.012624252587556839, + -0.015175329521298409, + 0.0782565027475357, + 0.1355554461479187, + 0.07503320276737213, + -0.0978284627199173 + ] + }, + "p244_183.wav": { + "name": "p244", + "embedding": [ + 0.04004361480474472, + 0.1142340749502182, + 0.01573406346142292, + 0.008702335879206657, + -0.026102041825652122, + 0.01421207096427679, + -0.05444011092185974, + 0.09331192076206207, + 0.030600570142269135, + 0.06351393461227417, + -0.08533996343612671, + 0.07840592414140701, + -0.06860426068305969, + -0.10734489560127258, + 0.008671983145177364, + 0.035235267132520676, + -0.037064485251903534, + -0.006941264029592276, + -0.020846206694841385, + -0.04411144182085991, + -0.019091255962848663, + 0.01464475691318512, + 0.023537633940577507, + 0.02783234789967537, + -0.0023410916328430176, + 0.05802048742771149, + -0.022554244846105576, + 0.002357428427785635, + -0.009786895476281643, + -0.0505397766828537, + -0.01694747619330883, + 0.03900054097175598, + -0.03462659940123558, + -0.012639855965971947, + -4.806742072105408e-05, + -0.032658763229846954, + 0.014093822799623013, + -0.0402003675699234, + -0.046144478023052216, + 0.03959941864013672, + -0.0663345605134964, + 0.051373012363910675, + 0.0051093799993395805, + -0.06451612710952759, + 0.031120896339416504, + 0.02127220295369625, + -0.02785540372133255, + -0.009320992045104504, + -0.11060484498739243, + 0.10683252662420273, + 0.042785607278347015, + 0.01784227229654789, + -0.05954263359308243, + -0.02501940354704857, + 0.08733145892620087, + -0.0021991929970681667, + -0.03732706606388092, + -0.0202924907207489, + 0.02913406305015087, + 0.04478723928332329, + 0.002322676358744502, + -0.03601595014333725, + 0.029787488281726837, + 0.06767427176237106, + 0.06451044231653214, + 0.028775891289114952, + 0.06827805936336517, + 0.08838818967342377, + -0.0701795443892479, + 0.001795570133253932, + 0.05021118372678757, + 0.020627638325095177, + 0.06979973614215851, + 0.005090269260108471, + -0.02057863026857376, + 0.0007662351126782596, + 0.009133713319897652, + -0.009617729112505913, + 0.009377913549542427, + -0.043493762612342834, + 0.017148837447166443, + -0.02034933678805828, + -0.01801767572760582, + 0.00206182524561882, + -0.020618274807929993, + 0.006135655101388693, + 0.07763402909040451, + 0.0382198840379715, + 0.08375623822212219, + 0.02762819454073906, + 0.012393539771437645, + 0.09375175088644028, + -0.07711796462535858, + -0.040032483637332916, + 0.006372353993356228, + -0.024415001273155212, + 0.04663130268454552, + 0.058602865785360336, + 0.054348163306713104, + -0.007863905280828476, + 0.10615401715040207, + 0.01535364892333746, + 0.032873425632715225, + -0.006063016131520271, + -0.06522908806800842, + 0.05220669507980347, + 0.0654420554637909, + -0.04212576150894165, + 0.04679134488105774, + 0.04497436434030533, + 0.04629715532064438, + 0.06347309052944183, + -0.06397742033004761, + -0.013589812442660332, + -0.019445527344942093, + 0.035097844898700714, + -0.005463359411805868, + 0.08890075981616974, + -0.015350909903645515, + 0.03926539421081543, + 0.1120821163058281, + -0.059573426842689514, + -0.00844486616551876, + 0.025637462735176086, + -0.006960737518966198, + -0.057128291577100754, + 0.05967188999056816, + 0.036719538271427155, + -0.0010291710495948792, + 0.011213904246687889, + 0.05888380855321884, + 0.0024499837309122086, + -0.0001847290841396898, + -0.037351541221141815, + -0.006991258822381496, + -0.026712220162153244, + 0.008545072749257088, + -0.008541903458535671, + 0.03254855424165726, + 0.05428321287035942, + 0.010814297012984753, + 0.02313941717147827, + -0.026378391310572624, + -0.08601202815771103, + 0.047178126871585846, + 0.015321163460612297, + 0.021147971972823143, + 0.03083699196577072, + -0.04194445535540581, + -0.03578154370188713, + -0.01372518204152584, + 0.029537610709667206, + -0.0041631124913692474, + 0.05572943389415741, + -0.0008132308721542358, + -0.0012410444905981421, + 0.07629962265491486, + 0.04363131523132324, + 0.014784732833504677, + -0.030621131882071495, + -0.08758185803890228, + -0.009393461048603058, + 0.036248113960027695, + -0.06479854881763458, + -0.07270146161317825, + -0.035207197070121765, + -0.009832712821662426, + 0.01271092426031828, + 0.045438237488269806, + 0.06104039400815964, + -0.02665194869041443, + -0.002569361124187708, + -0.06129225343465805, + 0.0247060414403677, + -0.01936211995780468, + -0.09773583710193634, + 0.018274758011102676, + 0.0011608017375692725, + 0.003764840541407466, + 0.052485670894384384, + -0.0030179969035089016, + 0.02800317108631134, + -0.04018954560160637, + -0.057796746492385864, + -0.014679154381155968, + 0.02069707028567791, + 0.02277674898505211, + -0.001057436689734459, + 0.031517356634140015, + 0.07840427756309509, + -0.01953011006116867, + 0.04013515263795853, + 0.011267222464084625, + 0.08430679887533188, + -0.05262231081724167, + 0.023029936477541924, + 0.01687745377421379, + 0.03873715549707413, + 0.048860371112823486, + -0.07173056900501251, + -0.07870382815599442, + -0.062005363404750824, + -0.05009894073009491, + 0.03723980486392975, + 0.0012853461084887385, + 0.02723969891667366, + 0.025289051234722137, + -0.005822490435093641, + -0.00565047562122345, + -0.10714810341596603, + 0.03927227854728699, + -0.0018325697164982557, + -0.005222877021878958, + -0.05847787857055664, + 0.02401411533355713, + 0.02280975691974163, + 0.052191611379384995, + -0.00558630283921957, + 0.01785661280155182, + 0.01825030893087387, + 0.032320376485586166, + -0.016544198617339134, + 0.05133195221424103, + 0.0547487698495388, + -0.0240594781935215, + -0.04512994736433029, + -0.0745638757944107, + 0.07238838076591492, + 0.023735735565423965, + 0.08931230753660202, + 0.03413977846503258, + -0.008464518934488297, + -0.08797469735145569, + 0.03390021622180939, + -0.02840748056769371, + 0.04909130930900574, + 0.005772958509624004, + 0.026611965149641037, + 0.053455837070941925, + -0.018304210156202316, + 0.08503516763448715, + 0.04462161287665367, + -0.03644011169672012, + -0.02813814952969551, + -0.02026468515396118, + -0.05901561304926872, + 0.000768480240367353, + 0.014603976160287857, + -0.04559175670146942, + -0.01959086023271084, + 0.013073625974357128, + 0.050295960158109665, + 0.057487405836582184, + 0.09151953458786011, + 0.04710816591978073, + -0.0457567498087883 + ] + }, + "p244_225.wav": { + "name": "p244", + "embedding": [ + 0.051310356706380844, + 0.0834568589925766, + -0.007183582987636328, + 0.024922311305999756, + -0.05904063582420349, + 0.05854015052318573, + -0.12535451352596283, + 0.13923655450344086, + -0.048962414264678955, + 0.13454389572143555, + -0.08436745405197144, + 0.12003946304321289, + -0.018191056326031685, + -0.18622538447380066, + -0.04205184429883957, + 0.05584371089935303, + -0.05870799347758293, + -0.03711184859275818, + -0.04091525822877884, + -0.024240415543317795, + 0.04846750944852829, + 0.046098366379737854, + 0.02297571860253811, + 0.023305930197238922, + 0.0161106176674366, + 0.0672079548239708, + 0.006895146332681179, + 0.05087154358625412, + 0.025754354894161224, + -0.05391912907361984, + -0.04346948117017746, + 0.10569560527801514, + -0.029959870502352715, + 0.012836702167987823, + 0.05633143335580826, + -0.008604303002357483, + 0.007666845805943012, + -0.0707116574048996, + -0.03749518841505051, + 0.002286672592163086, + -0.046102285385131836, + 0.0695449560880661, + 0.03421386331319809, + -0.0005849180743098259, + 0.04492742940783501, + 0.026415377855300903, + -0.02220986597239971, + -0.06214544177055359, + -0.10468965023756027, + 0.1593395471572876, + 0.08075140416622162, + 0.0007237071986310184, + -0.056593798100948334, + -0.06586285680532455, + 0.11136949062347412, + -0.023772722110152245, + -0.12023966014385223, + -0.032618336379528046, + 0.08353757858276367, + 0.1662822961807251, + -0.03776085376739502, + -0.03253000229597092, + 0.02880828082561493, + 0.12897907197475433, + 0.04153900220990181, + 0.09347943961620331, + 0.0847809910774231, + 0.09913381934165955, + -0.013993805274367332, + 0.02056264504790306, + 0.06070602685213089, + 0.075182244181633, + 0.050415150821208954, + -0.011057760566473007, + 0.028329208493232727, + 0.019188813865184784, + -0.024003982543945312, + 0.013095136731863022, + -0.03203959763050079, + 0.0020693736150860786, + -0.016150690615177155, + 0.015914611518383026, + 0.00934388767927885, + 0.004301947541534901, + -0.021690620109438896, + 0.07170313596725464, + 0.012773110531270504, + 0.0011356908362358809, + 0.062143921852111816, + 0.024439770728349686, + 0.009733228944242, + 0.06504429131746292, + -0.0682581290602684, + -0.09829120337963104, + 0.02016337215900421, + 0.004274268634617329, + 0.021691270172595978, + 0.07123589515686035, + 0.0369928702712059, + -0.02347165159881115, + 0.12361294031143188, + 0.048631519079208374, + -0.010325217619538307, + 0.03487465903162956, + -0.1055663675069809, + 0.11801376193761826, + 0.08848124742507935, + -0.024073978886008263, + 0.044693246483802795, + -0.05175858736038208, + 0.09415145218372345, + 0.06779108941555023, + -0.14691698551177979, + -0.07015042752027512, + 0.03770233690738678, + 0.021970687434077263, + -0.01646597310900688, + 0.11501292884349823, + -0.022866234183311462, + 0.03493736684322357, + 0.10662199556827545, + -0.07663226872682571, + -0.04691013693809509, + -0.02115100994706154, + 0.04523073136806488, + -0.08182382583618164, + 0.05350396782159805, + 0.042129211127758026, + -0.008851347491145134, + 0.010719409212470055, + 0.08423992991447449, + -0.018655668944120407, + -0.017582222819328308, + 0.016056731343269348, + -0.053253501653671265, + 0.022326787933707237, + -0.03952012211084366, + -0.0036005841102451086, + 0.04588611051440239, + 0.05219850689172745, + 0.0284300334751606, + 0.0018955932464450598, + -0.04513990506529808, + -0.11290672421455383, + 0.013492641970515251, + 0.021745748817920685, + 0.07653792947530746, + 0.0019345910986885428, + -0.016105739399790764, + -0.04283713549375534, + -0.06032940745353699, + 0.010123149491846561, + -0.014821472577750683, + 0.06825020164251328, + -0.025392016395926476, + 0.009346231818199158, + 0.08582484722137451, + 0.018835386261343956, + -0.002730567706748843, + -0.05414818227291107, + -0.03663495182991028, + 0.014556418173015118, + 0.050860535353422165, + -0.07009952515363693, + -0.06716781109571457, + 0.009577251970767975, + 0.029556702822446823, + -0.028313755989074707, + 0.03512787073850632, + 0.031155100092291832, + 0.019702419638633728, + 0.0357375293970108, + -0.06907254457473755, + 0.022252175956964493, + -0.12954393029212952, + -0.06845229119062424, + -0.0014752396382391453, + -0.0039057238027453423, + -0.007702663540840149, + 0.06386175751686096, + 0.01073797419667244, + 0.042002737522125244, + -0.004782171919941902, + -0.08473232388496399, + -0.0756043940782547, + 0.06864666938781738, + 0.08150909841060638, + 0.016689594835042953, + 0.05930107459425926, + 0.05765974149107933, + -0.02660529874265194, + 0.059486594051122665, + 0.052595850080251694, + 0.1166267842054367, + -0.009347288869321346, + 0.01946708932518959, + -0.06721298396587372, + 0.07768040895462036, + 0.06711600720882416, + -0.09189391136169434, + -0.08728042244911194, + -0.022854052484035492, + -0.059434063732624054, + 0.05167289078235626, + -0.01226080022752285, + -0.0005905249854549766, + 0.02559918724000454, + 0.001991212833672762, + -0.10102181881666183, + -0.06682616472244263, + 0.08294108510017395, + -0.06717744469642639, + -0.010215646587312222, + -0.08186393231153488, + 0.04807831346988678, + 0.11755266040563583, + 0.02768605202436447, + -0.017336614429950714, + -0.012437839061021805, + 0.049414195120334625, + -0.05128028243780136, + -0.007469031028449535, + 0.03093288466334343, + 0.024964459240436554, + -0.10463273525238037, + 0.010376625694334507, + -0.079476498067379, + 0.05149449035525322, + -0.04900449141860008, + 0.14601962268352509, + -0.004348237533122301, + -0.04973670840263367, + -0.08056377619504929, + 0.04329552501440048, + -0.015312936156988144, + 0.05326518043875694, + 0.04006648436188698, + 0.059056758880615234, + 0.038145314902067184, + -0.0742846131324768, + 0.1193387508392334, + 0.033959515392780304, + -0.051414769142866135, + -0.05939514562487602, + -0.036965176463127136, + -0.03650502488017082, + 0.008558135479688644, + 0.009751654230058193, + -0.08333491533994675, + -0.033416714519262314, + 0.015308569185435772, + -0.031427640467882156, + 0.07233746349811554, + 0.13444292545318604, + 0.05726928636431694, + -0.11903858184814453 + ] + }, + "p244_181.wav": { + "name": "p244", + "embedding": [ + 0.04853549972176552, + 0.07374346256256104, + -0.001116683823056519, + -0.004097479395568371, + -0.05194046348333359, + 0.032380111515522, + -0.15319423377513885, + 0.1677865833044052, + -0.03134298697113991, + 0.14076322317123413, + -0.05758073553442955, + 0.13522285223007202, + -0.0045502083376049995, + -0.2062889188528061, + -0.01282620057463646, + 0.05268338695168495, + -0.023829998448491096, + -0.017512261867523193, + -0.029962552711367607, + -0.01580413244664669, + 0.056428417563438416, + 0.03410758450627327, + 0.01014520600438118, + -0.012165883556008339, + 0.01225997693836689, + 0.05962875112891197, + 0.025165636092424393, + 0.061515845358371735, + 0.011232085525989532, + -0.05249512940645218, + -0.017271436750888824, + 0.08193641901016235, + -0.04830748960375786, + 0.015094342641532421, + 0.07996463775634766, + -0.03762584179639816, + -0.01477043516933918, + -0.0492141991853714, + -0.040189262479543686, + 0.012100317515432835, + -0.05262179672718048, + 0.07870141416788101, + 0.04001838341355324, + -0.0012544456403702497, + 0.06015627086162567, + 0.06565815955400467, + -0.006570492871105671, + -0.06202240660786629, + -0.10482068359851837, + 0.1445426493883133, + 0.07270271331071854, + 0.0028371138032525778, + -0.06960224360227585, + -0.0651412233710289, + 0.10882683098316193, + -0.027654144912958145, + -0.09092991054058075, + -0.04937249794602394, + 0.08291393518447876, + 0.14302006363868713, + -0.039390768855810165, + -0.041358478367328644, + 0.03378795087337494, + 0.10844965279102325, + 0.04374459385871887, + 0.0949270948767662, + 0.08207087218761444, + 0.09717680513858795, + -0.011792026460170746, + 0.0363716296851635, + 0.032117169350385666, + 0.08845886588096619, + 0.03672913461923599, + -0.007556884549558163, + 0.03091672994196415, + 0.02143774926662445, + -0.01366843469440937, + -0.013842469081282616, + -0.02877255156636238, + 0.008468045853078365, + -0.008475390262901783, + 0.040177036076784134, + 0.029854124411940575, + 0.014830820262432098, + -0.018003882840275764, + 0.07784435153007507, + 0.0208574328571558, + -0.0002615501289255917, + 0.052651312202215195, + 0.013198098167777061, + 0.013720996677875519, + 0.06634802371263504, + -0.1027640625834465, + -0.10428232699632645, + 0.014153995551168919, + -0.015950949862599373, + 0.010771851055324078, + 0.0733986347913742, + 0.0238480381667614, + -0.005900437943637371, + 0.1312226802110672, + 0.0532442107796669, + -0.02058122307062149, + 0.04952317848801613, + -0.10026396065950394, + 0.1128343939781189, + 0.06282803416252136, + -0.030719399452209473, + 0.052864156663417816, + -0.08830054104328156, + 0.08695419132709503, + 0.051488880068063736, + -0.14639277756214142, + -0.07902682572603226, + 0.03511642664670944, + 0.022750703617930412, + -0.03486593812704086, + 0.1531457006931305, + -0.025465352460741997, + 0.046481434255838394, + 0.11906690150499344, + -0.07846203446388245, + -0.055537011474370956, + -0.016915205866098404, + 0.0648004338145256, + -0.08302264660596848, + 0.08443479239940643, + 0.026740243658423424, + -0.009410153143107891, + 0.027778157964348793, + 0.09605671465396881, + -0.017449194565415382, + 0.0035791348200291395, + 0.0011096944799646735, + -0.026050278916954994, + 0.018737956881523132, + -0.05604676529765129, + 0.0008088279282674193, + 0.022545162588357925, + 0.05101313441991806, + 0.05300116911530495, + 0.009291495196521282, + -0.046177081763744354, + -0.11584735661745071, + 0.008204870857298374, + 0.007565791253000498, + 0.09485208988189697, + 0.00445913802832365, + -0.02815094403922558, + -0.045742250978946686, + -0.06417097896337509, + -0.029459692537784576, + -0.007919691503047943, + 0.07071837037801743, + -0.015393108129501343, + 0.040643878281116486, + 0.08823003619909286, + 0.02858070842921734, + 0.011487992480397224, + -0.040893036872148514, + -0.04137302190065384, + -0.0060546607710421085, + 0.05033597722649574, + -0.07571807503700256, + -0.06315838545560837, + -0.01347871869802475, + 0.03451967239379883, + -0.022088471800088882, + 0.04240419343113899, + 0.024976396933197975, + 0.041568558663129807, + 0.03842240199446678, + -0.09280429035425186, + 0.020226500928401947, + -0.11809604614973068, + -0.08533738553524017, + -0.022438112646341324, + 0.003981985151767731, + -0.03767376393079758, + 0.05087290331721306, + 0.005034510046243668, + 0.06469130516052246, + -0.002973736496642232, + -0.06831032782793045, + -0.09751009196043015, + 0.048866864293813705, + 0.07535960525274277, + -0.019422877579927444, + 0.046537987887859344, + 0.04640880599617958, + -0.04698324576020241, + 0.05519653111696243, + 0.06034466251730919, + 0.0976715013384819, + 8.228563092416152e-05, + 0.03282411769032478, + -0.05300220474600792, + 0.1086861789226532, + 0.08543731272220612, + -0.07902968674898148, + -0.08156649023294449, + -0.008789177052676678, + -0.08046814799308777, + 0.026485934853553772, + -0.002566782757639885, + 0.0038669253699481487, + 0.02527458965778351, + 0.026181191205978394, + -0.09029557555913925, + -0.04500250890851021, + 0.04789915680885315, + -0.09012192487716675, + -0.009148224256932735, + -0.0724482461810112, + 0.03745226189494133, + 0.132490336894989, + 0.03726755455136299, + -0.01586213894188404, + -0.06267713755369186, + 0.05438413843512535, + -0.03506023809313774, + 0.013881347142159939, + 0.042518507689237595, + 0.043448496609926224, + -0.08421245217323303, + 0.015443815849721432, + -0.06268421560525894, + 0.020667875185608864, + -0.04616343230009079, + 0.12721915543079376, + 0.0010249214246869087, + -0.06269851326942444, + -0.0810132846236229, + 0.01638193242251873, + -0.005842297337949276, + 0.049309249967336655, + 0.010862704366445541, + 0.06154543161392212, + 0.05593006685376167, + -0.06132841482758522, + 0.13494554162025452, + 0.03964308649301529, + -0.04365214705467224, + -0.05405324697494507, + -0.059244342148303986, + -0.03747475892305374, + 0.01179627887904644, + 0.022646265104413033, + -0.08147099614143372, + -0.04162844642996788, + 0.0229788850992918, + -0.024886325001716614, + 0.06388237327337265, + 0.13688220083713531, + 0.044621385633945465, + -0.13598714768886566 + ] + }, + "p244_107.wav": { + "name": "p244", + "embedding": [ + 0.018986329436302185, + 0.07078036665916443, + 0.006265767849981785, + 0.02359943464398384, + -0.021356943994760513, + 0.08659772574901581, + -0.13949386775493622, + 0.07979732751846313, + -0.06393814086914062, + 0.1497763693332672, + -0.06465169787406921, + 0.07656559348106384, + -0.024128064513206482, + -0.18016406893730164, + -0.08015492558479309, + 0.03792214393615723, + -0.08288389444351196, + -0.05135296285152435, + -0.012154608964920044, + -0.01092481892555952, + 0.07797106355428696, + 0.06504654139280319, + 0.010650359094142914, + 0.013227639719843864, + -0.00042673488496802747, + 0.04103270173072815, + 0.01009832601994276, + 0.050835248082876205, + 0.01654806360602379, + -0.0785716325044632, + -0.029552340507507324, + 0.11881434917449951, + -0.04304300993680954, + 0.047803036868572235, + 0.011636339128017426, + 0.03811034560203552, + 0.030043434351682663, + -0.040382977575063705, + -0.030305400490760803, + 0.019964013248682022, + -0.036857783794403076, + 0.06805232167243958, + 0.006876373663544655, + 0.044883519411087036, + 0.017787471413612366, + -0.016511091962456703, + -0.024941591545939445, + -0.03105109930038452, + -0.08011465519666672, + 0.17052917182445526, + 0.06246097385883331, + -0.014357741922140121, + -0.04994981735944748, + -0.11703971028327942, + 0.1090301126241684, + -0.0014445552369579673, + -0.1395440548658371, + -0.008596444502472878, + 0.08908972144126892, + 0.17083905637264252, + 0.006106068380177021, + -0.052606768906116486, + 0.022033292800188065, + 0.09799718856811523, + 0.0003657626803033054, + 0.0765744149684906, + 0.06276323646306992, + 0.05974283441901207, + 0.007905557751655579, + -0.036622487008571625, + 0.052865348756313324, + 0.06904914975166321, + 0.03529331088066101, + -0.04167652130126953, + 0.045096442103385925, + 0.01656993106007576, + -0.014775793068110943, + 0.052089761942625046, + -0.01925453543663025, + 0.003051417414098978, + -0.015225245617330074, + -0.015594327822327614, + -0.015718944370746613, + 0.011332297697663307, + -0.022591035813093185, + 0.010972678661346436, + -0.012020682916045189, + 0.002858270425349474, + 0.07237361371517181, + 0.07124389708042145, + 0.05658094212412834, + 0.06093538552522659, + -0.03981662169098854, + -0.06070934236049652, + 0.03469102829694748, + 0.03705674037337303, + 0.016070283949375153, + 0.08140319585800171, + 0.0365169420838356, + -0.02945508062839508, + 0.09506413340568542, + 0.01847119815647602, + -0.004679569974541664, + -0.012284490279853344, + -0.15561553835868835, + 0.0781673789024353, + 0.08458705991506577, + -0.014894695952534676, + 0.014846181496977806, + -0.039537906646728516, + 0.1071552187204361, + 0.09049631655216217, + -0.13942833244800568, + -0.08672802895307541, + 0.04133039712905884, + 0.0416400283575058, + 0.020161911845207214, + 0.11683528870344162, + -0.014187408611178398, + -0.015081814490258694, + 0.07005643844604492, + -0.0705585703253746, + -0.03392527997493744, + -0.03995451703667641, + 0.04487442597746849, + -0.08848090469837189, + 0.03944464772939682, + 0.007544742431491613, + -0.004261431284248829, + -0.02394506335258484, + 0.060046106576919556, + -0.03800112009048462, + 0.012030383571982384, + -0.002693778369575739, + -0.042180873453617096, + 0.024834778159856796, + -0.048504095524549484, + 0.014299875125288963, + 0.06087065488100052, + 0.04069444164633751, + 0.0522843673825264, + -0.0036741429939866066, + -0.07643705606460571, + -0.11633668839931488, + 0.0056757754646241665, + 0.0534629225730896, + 0.028400704264640808, + -0.01787242852151394, + -0.039167050272226334, + -0.04316931217908859, + -0.07920325547456741, + 0.07119631767272949, + -0.01749090477824211, + 0.0982508659362793, + 0.029152927920222282, + -0.02141754887998104, + 0.0911213755607605, + 0.011613093316555023, + -0.03806714713573456, + -0.037456244230270386, + -0.047122322022914886, + -0.0009285841952078044, + 0.02391948364675045, + -0.08757875859737396, + -0.05143696069717407, + 0.015609733760356903, + 0.028181953355669975, + 0.0180954709649086, + 0.03240957856178284, + 0.06839299201965332, + 0.00494399294257164, + 0.0423361174762249, + -0.08937080204486847, + 0.011890641413629055, + -0.12494389712810516, + -0.09722138941287994, + -0.0166076198220253, + -0.04433054476976395, + 0.03799745440483093, + 0.09615711867809296, + -0.0030421435367316008, + -0.018143337219953537, + -0.01988799311220646, + -0.08525364100933075, + -0.07768607139587402, + 0.07390022277832031, + 0.0739513635635376, + 0.03481234610080719, + 0.055766306817531586, + 0.06132469326257706, + -0.03944970294833183, + 0.08940285444259644, + 0.053724393248558044, + 0.1362406462430954, + -0.05846592038869858, + 0.05685748904943466, + -0.05243150144815445, + 0.0797581672668457, + 0.05632391571998596, + -0.06626347452402115, + -0.08350029587745667, + -0.00929337926208973, + -0.0768534392118454, + 0.06385917961597443, + -0.033822763711214066, + 0.006117173936218023, + 0.008199060335755348, + -0.017200030386447906, + -0.11949693411588669, + -0.06962133944034576, + 0.09143565595149994, + -0.027929916977882385, + -0.03770570456981659, + -0.07410022616386414, + 0.052244603633880615, + 0.08327490091323853, + 0.06563417613506317, + -0.010562488809227943, + 0.028810199350118637, + 0.04854373261332512, + -0.056534282863140106, + -0.0273711197078228, + 0.022549763321876526, + -0.019329529255628586, + -0.09160171449184418, + -0.016648469492793083, + -0.10516708344221115, + 0.05289390683174133, + -0.08231537789106369, + 0.12841537594795227, + -0.0357721745967865, + -0.09255094826221466, + -0.05272103101015091, + 0.047350283712148666, + -0.021463148295879364, + 0.03665878623723984, + 0.039248254150152206, + 0.06672525405883789, + 0.02034568041563034, + -0.04230334609746933, + 0.07991709560155869, + 0.05416296049952507, + -0.023108704015612602, + -0.045002829283475876, + -0.010626382194459438, + 0.003869683248922229, + 0.027586787939071655, + -0.0053460909985005856, + -0.08179886639118195, + 0.013816035352647305, + 0.02730204164981842, + -0.002952365204691887, + 0.042515143752098083, + 0.11149786412715912, + 0.05035954713821411, + -0.1337471604347229 + ] + }, + "p244_224.wav": { + "name": "p244", + "embedding": [ + 0.04962719604372978, + 0.09732125699520111, + -0.0143382977694273, + 0.02728196047246456, + -0.06896641850471497, + 0.0552939847111702, + -0.10239609330892563, + 0.14319078624248505, + -0.052431076765060425, + 0.1283714473247528, + -0.08825169503688812, + 0.1425744891166687, + -0.034931644797325134, + -0.16779926419258118, + -0.031961627304553986, + 0.059813402593135834, + -0.04328319430351257, + -0.03515210375189781, + -0.030132224783301353, + -0.038394536823034286, + 0.035689376294612885, + 0.027956193313002586, + 0.039848215878009796, + 0.0350717194378376, + 0.012987012974917889, + 0.08265584707260132, + 0.0008173746755346656, + 0.04667996987700462, + 0.02069834992289543, + -0.05261540412902832, + -0.05512323975563049, + 0.08663111180067062, + -0.045588575303554535, + 0.011046282947063446, + 0.04991162568330765, + -0.010892706923186779, + 0.009458189830183983, + -0.06487947702407837, + -0.0286991186439991, + -0.009078212082386017, + -0.051371634006500244, + 0.06625634431838989, + 0.016617964953184128, + -0.03296768665313721, + 0.03816141188144684, + 0.025730393826961517, + -0.021823478862643242, + -0.035476066172122955, + -0.11402949690818787, + 0.14825060963630676, + 0.0843455046415329, + -0.004118979908525944, + -0.06286304444074631, + -0.06260013580322266, + 0.11318610608577728, + -0.023049727082252502, + -0.10841351002454758, + -0.025535790249705315, + 0.07253169268369675, + 0.15246140956878662, + -0.03746199607849121, + -0.03258427605032921, + 0.028609059751033783, + 0.12159141898155212, + 0.05789707228541374, + 0.0897446870803833, + 0.08512584865093231, + 0.10896792262792587, + -0.03643473982810974, + 0.01998995989561081, + 0.061563991010189056, + 0.08648942410945892, + 0.06491782516241074, + -0.004056436475366354, + 0.011502666398882866, + 0.005630706436932087, + -0.02097097411751747, + 0.00923735648393631, + -0.03812224417924881, + -0.029163045808672905, + -0.03368283808231354, + 0.0007098371861502528, + 0.00538286566734314, + 0.0009792795171961188, + -0.015939347445964813, + 0.08044539391994476, + 0.030145376920700073, + -0.0072248405776917934, + 0.06023592874407768, + 0.020126961171627045, + -0.012134900316596031, + 0.0692741721868515, + -0.08108511567115784, + -0.0763382539153099, + 0.017370417714118958, + 0.002023442182689905, + 0.022333841770887375, + 0.0892980545759201, + 0.04410454258322716, + -0.013034462928771973, + 0.12683239579200745, + 0.060135047882795334, + 0.0009284485131502151, + 0.02179778181016445, + -0.09034089744091034, + 0.12779009342193604, + 0.09989762306213379, + -0.03615942224860191, + 0.041501980274915695, + -0.03599080070853233, + 0.08386196196079254, + 0.0731990858912468, + -0.1398015022277832, + -0.06821295619010925, + 0.006960911210626364, + 0.012176195159554482, + -0.013337856158614159, + 0.08957992494106293, + -0.018812956288456917, + 0.05378841608762741, + 0.10989981889724731, + -0.07602980732917786, + -0.05461965128779411, + -0.02553100883960724, + 0.04327293485403061, + -0.07406872510910034, + 0.06069129332900047, + 0.053797103464603424, + 0.0065932548604905605, + 0.016853980720043182, + 0.08326350152492523, + -0.02526889741420746, + -0.019924145191907883, + 0.04177658259868622, + -0.06791895627975464, + -0.000978151336312294, + -0.03056339919567108, + -0.007666699588298798, + 0.05261984467506409, + 0.04701119288802147, + 0.04026451334357262, + -0.005929887294769287, + -0.013597341254353523, + -0.10850181430578232, + 0.02067003771662712, + 0.04102496802806854, + 0.07485508173704147, + 0.0013909948756918311, + -0.0361965149641037, + -0.03173280507326126, + -0.05560848116874695, + 0.004811486229300499, + -0.0008209968218579888, + 0.06774955242872238, + -0.054226890206336975, + 0.014018885791301727, + 0.08759158849716187, + 0.03004780039191246, + -0.01708192378282547, + -0.059488922357559204, + -0.03584703058004379, + 0.008219394832849503, + 0.04993153735995293, + -0.06751155108213425, + -0.0873916894197464, + -0.0032585635781288147, + 0.040782149881124496, + -0.03189239278435707, + 0.0657217726111412, + 0.03473864495754242, + 0.012142978608608246, + 0.02388724684715271, + -0.06332354992628098, + 0.01221928559243679, + -0.10184069722890854, + -0.06907028704881668, + -0.012476525269448757, + -0.01689266972243786, + -0.01256043091416359, + 0.05241880938410759, + 0.025876570492982864, + 0.06134306639432907, + -0.0024604620411992073, + -0.07519222795963287, + -0.08729800581932068, + 0.05448159575462341, + 0.057663559913635254, + 0.010470318607985973, + 0.05588189885020256, + 0.07581347227096558, + -0.03498871251940727, + 0.06422655284404755, + 0.05413016304373741, + 0.09791615605354309, + -0.026707544922828674, + 0.02322123572230339, + -0.06447356939315796, + 0.06213940680027008, + 0.08329996466636658, + -0.09603621810674667, + -0.08694516122341156, + -0.04871954023838043, + -0.061167120933532715, + 0.054186563938856125, + -0.024595504626631737, + 0.00024648121325299144, + 0.02719011716544628, + -0.00308419531211257, + -0.09797334671020508, + -0.08452215045690536, + 0.09873801469802856, + -0.06415601074695587, + -0.0030830642208456993, + -0.07649759948253632, + 0.040085867047309875, + 0.09742473065853119, + 0.02509359084069729, + -0.021539052948355675, + 0.004630350973457098, + 0.04759451746940613, + -0.030850231647491455, + -0.0027519073337316513, + 0.054138630628585815, + 0.03846846520900726, + -0.1047482118010521, + -0.0027216044254601, + -0.07578456401824951, + 0.05717060714960098, + -0.0362926721572876, + 0.1545051634311676, + 0.004095475655049086, + -0.03923984244465828, + -0.08584123104810715, + 0.0467841736972332, + -0.01851397007703781, + 0.05204775929450989, + 0.04069438576698303, + 0.05585354566574097, + 0.013542990200221539, + -0.07543648034334183, + 0.13558673858642578, + 0.03662727028131485, + -0.06127173826098442, + -0.06918633729219437, + -0.04369966685771942, + -0.04464063048362732, + 0.010191565379500389, + 0.020701343193650246, + -0.08413331210613251, + -0.0305267833173275, + 0.001832252717576921, + -0.022537413984537125, + 0.07631073892116547, + 0.1475430577993393, + 0.07468569278717041, + -0.10101490467786789 + ] + }, + "p244_141.wav": { + "name": "p244", + "embedding": [ + 0.068923220038414, + 0.0924782082438469, + 0.02698499709367752, + -0.01698596216738224, + -0.022123616188764572, + 0.07684674113988876, + -0.08014806360006332, + 0.11866427958011627, + 0.013518492691218853, + 0.06179654598236084, + -0.09089430421590805, + 0.09500541538000107, + -0.0075258477590978146, + -0.14115139842033386, + -0.019810549914836884, + 0.039922088384628296, + -0.03582993149757385, + 0.015733567997813225, + -0.04923884570598602, + -0.024042293429374695, + 0.004346251487731934, + 0.009345974773168564, + 0.05112504959106445, + 0.004298120737075806, + 0.029690828174352646, + 0.037295252084732056, + -0.0033339790534228086, + 0.028432216495275497, + 0.01325818058103323, + -0.03045157715678215, + -0.02788727544248104, + 0.07552196830511093, + -0.03660047799348831, + 0.0074586328119039536, + 0.061181288212537766, + -0.0200702715665102, + 0.023195739835500717, + -0.07623811811208725, + -0.036821089684963226, + 0.02984483540058136, + -0.040129657834768295, + 0.07058500498533249, + 0.05127548426389694, + -0.015639178454875946, + 0.05347995460033417, + 0.03377233445644379, + -0.008445807732641697, + -0.034044049680233, + -0.09286578744649887, + 0.1335347592830658, + 0.03304428979754448, + 0.009045018814504147, + -0.08136817067861557, + -0.010237561538815498, + 0.06691109389066696, + -0.03663356602191925, + -0.06309717893600464, + -0.007281227968633175, + 0.05802008509635925, + 0.07650483399629593, + 0.021154876798391342, + -0.022795071825385094, + 0.02272713929414749, + 0.07861630618572235, + 0.02577219158411026, + 0.03663335740566254, + 0.0939372181892395, + 0.10263802856206894, + -0.025683850049972534, + 0.03480205684900284, + 0.04027433693408966, + 0.026075702160596848, + 0.04253336042165756, + -0.009162602946162224, + 0.01882908120751381, + -0.022082194685935974, + -0.006963628809899092, + -0.018189910799264908, + -0.023454774171113968, + -0.006281568668782711, + 0.024233005940914154, + 0.024674441665410995, + 0.01229693740606308, + 0.03318728134036064, + -0.04538854956626892, + 0.04809953272342682, + 0.005983038805425167, + 0.06514596939086914, + 0.06771441549062729, + 0.05024484544992447, + 0.015811212360858917, + 0.03091355413198471, + -0.055564917623996735, + -0.0970439463853836, + 0.01133184414356947, + 0.0005957087269052863, + 0.004527910612523556, + 0.028108973056077957, + 0.026921523734927177, + -0.015116693452000618, + 0.1057809516787529, + 0.042175233364105225, + -0.017813026905059814, + 0.02040094882249832, + -0.07687985152006149, + 0.0824103131890297, + 0.06754721701145172, + -0.010242084972560406, + 0.057601384818553925, + -0.029330871999263763, + 0.05856937915086746, + 0.061335694044828415, + -0.08648469299077988, + -0.025834694504737854, + 0.012828582897782326, + 0.01590515673160553, + 0.03241315111517906, + 0.09338172525167465, + -0.00867719016969204, + 0.045204129070043564, + 0.0653485581278801, + -0.06094851344823837, + -0.015735197812318802, + 0.026987185701727867, + 0.011037036776542664, + -0.015367105603218079, + 0.021218154579401016, + 0.030355684459209442, + 0.01667485013604164, + -0.03186711296439171, + 0.06219978258013725, + 0.01475514005869627, + 0.00443243607878685, + -0.028041090816259384, + 0.009053267538547516, + 0.009680083952844143, + -0.00848004687577486, + -0.019272593781352043, + 0.025945579633116722, + 0.06428781151771545, + 0.003554773982614279, + 0.03786199167370796, + -0.04213632270693779, + -0.08019794523715973, + -0.009167403914034367, + -0.0004635453224182129, + 0.04594936966896057, + 0.012174731120467186, + -0.030211467295885086, + -0.05239854380488396, + 0.002455689013004303, + 0.004877150058746338, + -0.0075872777961194515, + 0.031820811331272125, + 0.03895227238535881, + -0.02012220397591591, + 0.06151208281517029, + 0.007341994903981686, + 0.018575768917798996, + -0.0442054346203804, + -0.0441681444644928, + 0.005569660570472479, + 0.041040368378162384, + -0.034946098923683167, + -0.05877748131752014, + -0.0004004749353043735, + -0.032616838812828064, + -0.014384198933839798, + 0.032256826758384705, + 0.05332021042704582, + -0.011078780516982079, + 0.001790625392459333, + -0.08127550780773163, + 0.00835905410349369, + -0.07179434597492218, + -0.06660371273756027, + 0.038152486085891724, + 0.027067236602306366, + -0.004106359090656042, + 0.06933911144733429, + 0.036187149584293365, + 0.043000128120183945, + -0.027768274769186974, + -0.04768511280417442, + -0.010287761688232422, + 0.053026072680950165, + 0.043087996542453766, + 0.0040331194177269936, + 0.05106344819068909, + 0.028503969311714172, + -0.023405587300658226, + 0.06892295181751251, + 0.03908409923315048, + 0.041366592049598694, + -0.04180203005671501, + 0.0004790624079760164, + -0.0073122731409966946, + 0.06569291651248932, + 0.044690437614917755, + -0.0682908445596695, + -0.07503515481948853, + 0.0014045065036043525, + -0.032103247940540314, + 0.007540534250438213, + -7.934620225569233e-05, + 0.006172175519168377, + 0.047262903302907944, + -0.01286875270307064, + -0.05351176857948303, + -0.08234937489032745, + 0.03974941745400429, + -0.05515018850564957, + 0.0029463693499565125, + -0.03557360917329788, + 0.040601350367069244, + 0.08469371497631073, + -0.01683524250984192, + -0.023156389594078064, + -0.001939891604706645, + 0.002462851582095027, + -0.0087631456553936, + -0.03998411074280739, + -0.006535450927913189, + 0.044557806104421616, + -0.08075080811977386, + 0.01455008890479803, + -0.050404518842697144, + 0.05211418867111206, + 0.0033184513449668884, + 0.10874741524457932, + 0.04036594182252884, + -0.028343355283141136, + -0.05510684847831726, + 0.025554046034812927, + -0.02090444043278694, + 0.032358042895793915, + 0.004022589884698391, + 0.02583552896976471, + 0.03393810614943504, + -0.05043305456638336, + 0.07956372201442719, + 0.027327917516231537, + -0.06777572631835938, + -0.051680758595466614, + -0.011212892830371857, + -0.036767132580280304, + 0.007731962949037552, + -0.00023343414068222046, + -0.05771992728114128, + -0.003808550536632538, + 0.02401779592037201, + 0.012112687341868877, + 0.042980797588825226, + 0.08600609004497528, + 0.033650681376457214, + -0.0658734142780304 + ] + }, + "p244_180.wav": { + "name": "p244", + "embedding": [ + 0.04287217929959297, + 0.08562701940536499, + -0.015287653543055058, + 0.036764249205589294, + -0.04638880491256714, + 0.04878851771354675, + -0.1254628598690033, + 0.13322418928146362, + -0.04258638620376587, + 0.13999226689338684, + -0.09335038810968399, + 0.10710559785366058, + -0.03508500009775162, + -0.1945321261882782, + -0.03503262996673584, + 0.06371995806694031, + -0.06115536019206047, + -0.03210833668708801, + -0.05164248123764992, + -0.014452077448368073, + 0.04337220638990402, + 0.04441754147410393, + 0.02052772045135498, + 0.012482683174312115, + 0.012612485326826572, + 0.0665159672498703, + -0.009948942810297012, + 0.0402454249560833, + 0.00976457167416811, + -0.03758953511714935, + -0.022761408239603043, + 0.1160731166601181, + -0.037258755415678024, + 0.023569952696561813, + 0.05849108844995499, + 0.0050984835252165794, + -0.005451524164527655, + -0.055714357644319534, + -0.03563567250967026, + -0.007449758239090443, + -0.06463293731212616, + 0.06334054470062256, + 0.025538090616464615, + -0.004314308986067772, + 0.051937881857156754, + 0.026081426069140434, + -0.0381358340382576, + -0.04920509457588196, + -0.10323816537857056, + 0.159244567155838, + 0.08181116729974747, + 0.019467290490865707, + -0.07092482596635818, + -0.07579121738672256, + 0.11322926729917526, + -0.012180223129689693, + -0.1223359927535057, + -0.039783768355846405, + 0.08074229955673218, + 0.1788947880268097, + -0.033803459256887436, + -0.031111378222703934, + 0.0253484845161438, + 0.12656015157699585, + 0.05155251920223236, + 0.1021069884300232, + 0.07734425365924835, + 0.10235083103179932, + -0.0037702443078160286, + 0.02231024019420147, + 0.07893197238445282, + 0.07348102331161499, + 0.07408797740936279, + -0.02287248894572258, + 0.020641451701521873, + 0.021848231554031372, + -0.032741837203502655, + -0.0005036769434809685, + -0.03305608034133911, + -0.006087020039558411, + -0.015949970111250877, + 0.011261356994509697, + 0.010060756467282772, + 0.009770382195711136, + -0.019627364352345467, + 0.048058610409498215, + 0.04291192442178726, + -0.022824563086032867, + 0.062159132212400436, + 0.039522890001535416, + 0.004643607884645462, + 0.06180132180452347, + -0.07286012172698975, + -0.09708299487829208, + 0.008771114982664585, + 0.0035176516976207495, + 0.021517109125852585, + 0.06355897337198257, + 0.044992536306381226, + -0.021221591159701347, + 0.11107702553272247, + 0.03340764343738556, + -0.0004985607229173183, + 0.02741919830441475, + -0.11414609849452972, + 0.10387134552001953, + 0.09328484535217285, + -0.028874654322862625, + 0.03562599793076515, + -0.0332423634827137, + 0.0846838504076004, + 0.0898602306842804, + -0.14424557983875275, + -0.06692004948854446, + 0.02809644117951393, + 0.009229492396116257, + -0.010721873492002487, + 0.119399294257164, + -0.010611619800329208, + 0.031077859923243523, + 0.10898005962371826, + -0.09330882877111435, + -0.04938614368438721, + -0.023604173213243484, + 0.04384623467922211, + -0.08141624927520752, + 0.05874110385775566, + 0.03711886331439018, + -0.0003137262538075447, + -0.0015751449391245842, + 0.08045978844165802, + -0.018024854362010956, + -0.006810707040131092, + -0.0032768247183412313, + -0.05479854717850685, + 0.031644560396671295, + -0.04633217304944992, + -0.010116659104824066, + 0.05587824434041977, + 0.03809250891208649, + 0.04481849446892738, + 0.005171018186956644, + -0.03733333200216293, + -0.11193248629570007, + 0.011853637173771858, + 0.03896187245845795, + 0.07517776638269424, + -0.003814305877313018, + -0.009121467359364033, + -0.03450698405504227, + -0.0647905170917511, + 0.033882513642311096, + -0.025436406955122948, + 0.07367978990077972, + -0.009349098429083824, + -0.004832168109714985, + 0.104781873524189, + 0.006044739857316017, + -0.009774036705493927, + -0.05064236372709274, + -0.03197922557592392, + 0.004540130961686373, + 0.0560140535235405, + -0.0912093073129654, + -0.06879136711359024, + 0.008184043690562248, + 0.028505831956863403, + -0.011029754765331745, + 0.03687044605612755, + 0.035428911447525024, + 0.018672361969947815, + 0.019027046859264374, + -0.06336243450641632, + 0.00952989887446165, + -0.1304386854171753, + -0.08182943612337112, + -0.004146466497331858, + -0.03175421059131622, + -0.0003050958039239049, + 0.07162944972515106, + 0.01157375518232584, + 0.02589418739080429, + -0.009354421868920326, + -0.08987092971801758, + -0.08629173785448074, + 0.07768312096595764, + 0.07189644128084183, + 0.00918702781200409, + 0.05069814994931221, + 0.05711710825562477, + -0.043779946863651276, + 0.05178084224462509, + 0.05450008064508438, + 0.13465994596481323, + -0.020610075443983078, + 0.024871082976460457, + -0.07336477935314178, + 0.08318401873111725, + 0.08415284752845764, + -0.08872678875923157, + -0.09011656045913696, + -0.02447526715695858, + -0.05621317774057388, + 0.0489952452480793, + -0.021398957818746567, + 0.003726938273757696, + 0.029173649847507477, + -0.01271715760231018, + -0.10573464632034302, + -0.0675889179110527, + 0.08780509233474731, + -0.06232892721891403, + -0.015668850392103195, + -0.0789867490530014, + 0.03913281857967377, + 0.08829204738140106, + 0.024565041065216064, + -0.024829076603055, + 0.011869668029248714, + 0.055623821914196014, + -0.054621972143650055, + -0.020805392414331436, + 0.041097190231084824, + 0.016251320019364357, + -0.09385091066360474, + -0.013513226062059402, + -0.07502492517232895, + 0.06739393621683121, + -0.04968585819005966, + 0.13732515275478363, + -0.016053739935159683, + -0.056435588747262955, + -0.08078397810459137, + 0.04247337579727173, + -0.0038466856349259615, + 0.05834244564175606, + 0.041751060634851456, + 0.07223579287528992, + 0.03435615450143814, + -0.06490053981542587, + 0.12374728918075562, + 0.02952367626130581, + -0.03260251507163048, + -0.054583314806222916, + -0.04587647318840027, + -0.04500049725174904, + 0.003952471073716879, + -0.005704508163034916, + -0.08034328371286392, + -0.007313928566873074, + 0.006328531075268984, + -0.024210944771766663, + 0.047043636441230774, + 0.12548011541366577, + 0.05870911478996277, + -0.11604777723550797 + ] + }, + "p244_167.wav": { + "name": "p244", + "embedding": [ + 0.04707973822951317, + 0.08512790501117706, + 0.017433252185583115, + -0.010049238801002502, + -0.027678970247507095, + 0.09129085391759872, + -0.07708367705345154, + 0.10728625953197479, + -0.023322490975260735, + 0.06904000043869019, + -0.0714399516582489, + 0.08210638165473938, + -0.011329654604196548, + -0.12147276848554611, + -0.0015023425221443176, + 0.05498618632555008, + -0.029536675661802292, + 0.0027658964972943068, + -0.04268315061926842, + -0.014539126306772232, + -0.009536261670291424, + 0.00696258619427681, + 0.058693867176771164, + -0.020710289478302002, + 0.03857957199215889, + 0.05058648809790611, + -0.000273537531029433, + 0.027161478996276855, + 0.0004217643290758133, + -0.0439465194940567, + -0.03740622475743294, + 0.07502558082342148, + -0.056660816073417664, + -0.008298594504594803, + 0.05187267065048218, + -0.013564445078372955, + 0.024587390944361687, + -0.09216286987066269, + -0.03276935964822769, + 0.009169310331344604, + -0.056369051337242126, + 0.07358594238758087, + 0.02663174830377102, + 0.007156963460147381, + 0.024815743789076805, + 0.0062155211344361305, + -0.0034827683120965958, + -0.023563673719763756, + -0.08253515511751175, + 0.12691868841648102, + 0.03767480328679085, + 0.019493775442242622, + -0.07521302253007889, + -0.0295400470495224, + 0.07755976170301437, + -0.018448349088430405, + -0.06302373856306076, + -0.012354684993624687, + 0.04073628783226013, + 0.0865408405661583, + 0.025180846452713013, + -0.023361138999462128, + 0.021092116832733154, + 0.06708208471536636, + 0.023151254281401634, + 0.053722649812698364, + 0.08739151805639267, + 0.08955836296081543, + -0.0065083070658147335, + 0.027378231287002563, + 0.048375409096479416, + 0.036388516426086426, + 0.02471884712576866, + -0.010595530271530151, + 0.028296595439314842, + -0.01590379700064659, + -0.03191643953323364, + -0.008536002598702908, + -0.017039146274328232, + -0.01747817173600197, + 0.022909987717866898, + 0.022554030641913414, + 0.009545434266328812, + 0.027733517810702324, + -0.028594069182872772, + 0.04081657528877258, + -0.0029537356458604336, + 0.06451727449893951, + 0.08688073605298996, + 0.02574579045176506, + 0.014948733150959015, + 0.03415994346141815, + -0.060237299650907516, + -0.06995562463998795, + 0.020499086007475853, + 0.031554386019706726, + 0.0036485109012573957, + 0.03065515123307705, + 0.025369582697749138, + -0.027931563556194305, + 0.10070967674255371, + 0.023287784308195114, + -0.0009688375284895301, + 0.001203195541165769, + -0.06778344511985779, + 0.07224768400192261, + 0.05726079270243645, + -0.0040361955761909485, + 0.048369914293289185, + -0.025990938767790794, + 0.0551203116774559, + 0.05932316184043884, + -0.09196369349956512, + -0.04974181577563286, + 0.007547107990831137, + 0.0041877878829836845, + 0.035280995070934296, + 0.10521729290485382, + -0.009196754544973373, + 0.0372876301407814, + 0.058194637298583984, + -0.08105669170618057, + -0.02356204390525818, + 0.039087925106287, + 0.010740846395492554, + -0.007051540073007345, + 0.007526857312768698, + 0.0390218049287796, + 0.005931292660534382, + -0.02777162566781044, + 0.05320620536804199, + 0.008385999128222466, + 0.009738633409142494, + -0.01149764470756054, + -0.009483715519309044, + 0.0010052463039755821, + -0.015930140390992165, + -0.038347966969013214, + 0.03739845007658005, + 0.051481373608112335, + 0.029979199171066284, + 0.003185371635481715, + -0.025677524507045746, + -0.0847093015909195, + -0.019944485276937485, + 0.010563371703028679, + 0.031666189432144165, + -0.00785780604928732, + -0.0317373163998127, + -0.05702310800552368, + -0.00612629484385252, + -0.009472507983446121, + -0.009091544896364212, + 0.0502474308013916, + 0.04683661460876465, + -0.026863310486078262, + 0.06821515411138535, + 0.007443234324455261, + 0.004543836694210768, + -0.040841296315193176, + -0.062287937849760056, + 0.011087912134826183, + 0.04299960657954216, + -0.01109161227941513, + -0.07103273272514343, + 0.0023626885376870632, + -0.027720585465431213, + -0.01672457903623581, + 0.02954830974340439, + 0.04956777021288872, + 0.009142892435193062, + -0.0127300675958395, + -0.06628468632698059, + 0.014434169046580791, + -0.07022538781166077, + -0.05645657703280449, + 0.03632683306932449, + 0.031128432601690292, + -0.024220317602157593, + 0.07866879552602768, + 0.03261057287454605, + 0.04827475547790527, + -0.0349263995885849, + -0.05173870921134949, + -0.015932749956846237, + 0.05100814625620842, + 0.03704618662595749, + 0.002308618277311325, + 0.038799941539764404, + 0.0432167574763298, + -0.020732365548610687, + 0.037445541471242905, + 0.051251985132694244, + 0.0512886568903923, + -0.03503634035587311, + 0.008252796716988087, + -0.014522379264235497, + 0.07860466837882996, + 0.03661031275987625, + -0.07371249049901962, + -0.05090833455324173, + 0.01257159560918808, + -0.04109746217727661, + 0.0277106873691082, + -0.006819318979978561, + 0.011071180924773216, + 0.04564926028251648, + -0.02753159962594509, + -0.06565520167350769, + -0.07913267612457275, + 0.06392000615596771, + -0.05291129648685455, + -0.009865141473710537, + -0.044501226395368576, + 0.04317125305533409, + 0.079008549451828, + 0.0036972227972000837, + -0.01048391591757536, + 0.005263200029730797, + 0.02147604152560234, + 0.004751445725560188, + -0.02239108644425869, + 0.024752311408519745, + 0.037187036126852036, + -0.07118416577577591, + 0.015515079721808434, + -0.046753764152526855, + 0.0659591406583786, + 0.008004775270819664, + 0.10493459552526474, + 0.027253877371549606, + -0.03027404099702835, + -0.07307233661413193, + 0.03192661702632904, + 0.0001670519559411332, + 0.03432702645659447, + 0.004586372058838606, + 0.023750942200422287, + 0.04797280579805374, + -0.05145956203341484, + 0.08629883825778961, + 0.025798249989748, + -0.05911736935377121, + -0.044936250895261765, + -0.008365584537386894, + -0.03264952823519707, + 0.02177836373448372, + -0.02301935665309429, + -0.06799818575382233, + 0.01904139295220375, + 0.021186351776123047, + 0.011413270607590675, + 0.029889201745390892, + 0.07833109050989151, + 0.036050260066986084, + -0.06394705176353455 + ] + }, + "p244_080.wav": { + "name": "p244", + "embedding": [ + 0.022935442626476288, + 0.09640032052993774, + -0.00262433011084795, + 0.00919140875339508, + -0.022395236417651176, + -0.0027653351426124573, + -0.10289772599935532, + 0.0792112648487091, + -0.025138236582279205, + 0.11822348088026047, + -0.10249543190002441, + 0.08955548703670502, + -0.07592034339904785, + -0.10798313468694687, + -0.02383330650627613, + 0.03619668260216713, + -0.006831965409219265, + 0.006147237494587898, + -0.026636846363544464, + -0.06548704206943512, + 0.04381079971790314, + 0.023009691387414932, + 0.05674208700656891, + -0.05197969824075699, + -0.02874726429581642, + 0.10414999723434448, + 0.0033289343118667603, + 0.014779753983020782, + -0.005131295416504145, + -0.035717450082302094, + 0.0016329586505889893, + 0.03423984721302986, + -0.018916528671979904, + 0.014781697653234005, + 0.03858477249741554, + 0.04465959221124649, + -0.041259974241256714, + 0.018253441900014877, + 0.013986133970320225, + 0.02905401401221752, + -0.06952391564846039, + 0.052167169749736786, + -0.004307717550545931, + -0.035446494817733765, + 0.08575202524662018, + -0.025628745555877686, + -0.01232240255922079, + 0.009164616465568542, + -0.06502345204353333, + 0.0973408967256546, + 0.06095746159553528, + 0.015500586479902267, + -0.05821622908115387, + -0.011755358427762985, + 0.1052543893456459, + -0.027858003973960876, + -0.10372836887836456, + -0.028162376955151558, + 0.047136325389146805, + 0.09003078937530518, + -0.06292364001274109, + -0.05182661861181259, + 0.009000720456242561, + 0.049195241183042526, + 0.03263609856367111, + 0.08903387188911438, + 0.11052943021059036, + 0.06148676201701164, + -0.008279198780655861, + -0.04386623203754425, + 0.0374402292072773, + 0.08248496055603027, + 0.06774741411209106, + -0.010443861596286297, + 0.025451309978961945, + -0.03772726282477379, + 0.007184172514826059, + 0.0012357961386442184, + -0.010979774408042431, + -0.06406047195196152, + -0.03685372695326805, + -0.028270073235034943, + 0.0037496155127882957, + -0.03674938529729843, + -0.03346597030758858, + 0.022938372567296028, + 0.0737951248884201, + -0.026175372302532196, + 0.04679589718580246, + 0.04721876233816147, + -0.020461056381464005, + 0.01643197052180767, + -0.03926379233598709, + -0.025848062708973885, + -0.0250605009496212, + -0.012646771036088467, + 0.058042388409376144, + 0.06492941826581955, + 0.037546515464782715, + 0.06273335963487625, + 0.06380569189786911, + 0.039636969566345215, + 0.0002344781532883644, + -0.0022067087702453136, + -0.08454318344593048, + 0.057148903608322144, + 0.12178117781877518, + -0.042248956859111786, + 0.026501305401325226, + -0.034538887441158295, + 0.03554641455411911, + 0.02890169620513916, + -0.04485159367322922, + -0.04294715076684952, + -0.023335903882980347, + 0.026320401579141617, + 0.02236473560333252, + 0.06880465894937515, + -0.005760335363447666, + -0.014488864690065384, + 0.12077110260725021, + -0.06384418904781342, + -0.07678333669900894, + -0.07603100687265396, + 0.022697359323501587, + -0.0791313648223877, + 0.07144536823034286, + 0.04848698899149895, + 0.03562559187412262, + 0.019893446937203407, + 0.06547132879495621, + 0.010206692852079868, + 0.020238369703292847, + -0.034656405448913574, + -0.03764572739601135, + -0.010647440329194069, + -0.019053788855671883, + 0.014916029758751392, + 0.09002663940191269, + 0.03564060479402542, + 0.09896186739206314, + 0.01198516320437193, + 0.03503521531820297, + -0.07820829749107361, + 0.010020527057349682, + 0.06754842400550842, + -0.019115395843982697, + -0.042204827070236206, + -0.05533764511346817, + -0.02979818731546402, + -0.06848762929439545, + 0.01644035428762436, + -0.05761922150850296, + 0.07225719094276428, + -0.026507336646318436, + 0.014494970440864563, + 0.1318766474723816, + 0.019118081778287888, + -0.04242726042866707, + -0.05576483905315399, + -0.040118467062711716, + -0.03527712821960449, + 0.023533428087830544, + -0.16723714768886566, + -0.08374740183353424, + -0.07266789674758911, + 0.04033157601952553, + 0.005697854794561863, + 0.03307320177555084, + 0.05674409866333008, + -0.00736004114151001, + 0.025302359834313393, + -0.008941157720983028, + 0.024136634543538094, + -0.06608708202838898, + -0.08500169217586517, + -0.03722498565912247, + -0.0820484310388565, + 0.0030963472090661526, + 0.06611262261867523, + -0.027501927688717842, + 0.02997785061597824, + -0.014206597581505775, + -0.0897846519947052, + -0.09211274981498718, + 0.06178612634539604, + 0.025527819991111755, + -0.004660853184759617, + 0.029044259339571, + 0.04766248166561127, + -0.08930860459804535, + 0.041857700794935226, + 0.021609416231513023, + 0.09293758869171143, + -0.06496190279722214, + 0.04089675098657608, + -0.04615473374724388, + 0.008139315992593765, + 0.10298070311546326, + -0.07245919108390808, + -0.06786300241947174, + -0.08537886291742325, + -0.04386327043175697, + 0.03143146634101868, + -0.06382175534963608, + -0.022953975945711136, + -0.014260202646255493, + -0.00770226726308465, + -0.0735427588224411, + -0.08604089915752411, + 0.054536253213882446, + -0.002473333850502968, + -0.007351551204919815, + -0.05520911514759064, + 0.04073307663202286, + -0.005512945353984833, + 0.04282146319746971, + -0.034995317459106445, + 0.038817062973976135, + 0.01078060083091259, + -0.03456932306289673, + 0.014562118798494339, + 0.04662066698074341, + 0.06337518990039825, + 0.015382414683699608, + -0.03802090138196945, + -0.08534346520900726, + 0.05308078974485397, + -0.025435537099838257, + 0.0836106389760971, + -0.008187885396182537, + -0.04709063470363617, + -0.006285067647695541, + 0.012433654628694057, + -0.005599376279860735, + 0.02429061010479927, + 0.04455827176570892, + 0.05604148656129837, + -0.008471336215734482, + -0.06035800278186798, + 0.0891936868429184, + 0.03530941158533096, + 0.0009362921118736267, + -0.04584295675158501, + -0.02124122902750969, + -0.06280230730772018, + -0.007850621826946735, + -0.006578205153346062, + -0.07067693769931793, + 0.022704359143972397, + -0.03307250887155533, + 0.025164103135466576, + 0.029459595680236816, + 0.09369748830795288, + 0.028062455356121063, + -0.050122179090976715 + ] + }, + "p244_310.wav": { + "name": "p244", + "embedding": [ + 0.062333762645721436, + 0.11135416477918625, + -0.010516969487071037, + -0.006485992576926947, + -0.05130276083946228, + 0.06126203387975693, + -0.14945679903030396, + 0.1642509400844574, + -0.053004682064056396, + 0.13242875039577484, + -0.0558055154979229, + 0.1253504604101181, + -0.013647131621837616, + -0.1708347499370575, + -0.048024486750364304, + 0.04792303591966629, + -0.06457256525754929, + -0.04175776243209839, + -0.04514404758810997, + -0.042643945664167404, + 0.023041173815727234, + 0.02632591687142849, + 0.009444857016205788, + 0.019633198156952858, + 0.0445408932864666, + 0.06953977048397064, + 0.0009119375608861446, + 0.02979297563433647, + 0.0033158750738948584, + -0.056146290153265, + -0.022432927042245865, + 0.07109639048576355, + -0.05427337437868118, + 0.006242684554308653, + 0.056439489126205444, + -0.023334486410021782, + 0.019439522176980972, + -0.07142479717731476, + -0.03865321725606918, + 0.02475246600806713, + -0.023804016411304474, + 0.09528770297765732, + 0.03319437801837921, + -0.015879716724157333, + 0.020103946328163147, + 0.04602956399321556, + 0.018373748287558556, + -0.05385857820510864, + -0.09695323556661606, + 0.1576339304447174, + 0.060154348611831665, + 0.003256745170801878, + -0.08038675785064697, + -0.06254622340202332, + 0.10964995622634888, + -0.033896103501319885, + -0.09776374697685242, + -0.02907993644475937, + 0.056550975888967514, + 0.14644931256771088, + -0.050270020961761475, + -0.044469814747571945, + 0.03467117249965668, + 0.12549498677253723, + 0.06777068227529526, + 0.06362436711788177, + 0.08401626348495483, + 0.10009558498859406, + -0.04259272664785385, + 0.014622258953750134, + 0.06307181715965271, + 0.06722456216812134, + 0.05293458327651024, + -0.01901255175471306, + 0.0256817527115345, + -0.004500877112150192, + -0.014562606811523438, + -0.016639545559883118, + -0.022020038217306137, + -0.018084583804011345, + -0.02398824319243431, + 0.02738938480615616, + 0.00420380337163806, + 0.03587711974978447, + -0.021967288106679916, + 0.06440689414739609, + 0.030048459768295288, + -0.030402695760130882, + 0.07170552015304565, + 0.05547770857810974, + 0.03398648649454117, + 0.06849531829357147, + -0.09338508546352386, + -0.07385315746068954, + 0.04826626926660538, + -0.00901690311729908, + 0.020674970000982285, + 0.06259172409772873, + 0.0551062673330307, + -0.005868728272616863, + 0.12045145034790039, + 0.0753273293375969, + -0.00876203179359436, + 0.00862166564911604, + -0.09939444065093994, + 0.13078439235687256, + 0.08275123685598373, + -0.046129416674375534, + 0.047482818365097046, + -0.03654826059937477, + 0.053228553384542465, + 0.05904535949230194, + -0.13952064514160156, + -0.10209541022777557, + 0.03199651837348938, + 0.02433048002421856, + -0.009237615391612053, + 0.11519865691661835, + -0.009365643374621868, + 0.04630453884601593, + 0.08908770978450775, + -0.05981840938329697, + -0.05235005542635918, + -0.020699501037597656, + 0.05867981165647507, + -0.07363149523735046, + 0.0775236189365387, + 0.07276376336812973, + -0.0017665711930021644, + 0.020374348387122154, + 0.09087875485420227, + 0.0007007376989349723, + -0.014258968643844128, + 0.002553727477788925, + -0.013424744829535484, + 0.01827506348490715, + 0.0010108643909916282, + 0.000856323167681694, + 0.012265734374523163, + 0.04437711089849472, + 0.036183103919029236, + 0.007288246415555477, + -0.02180321328341961, + -0.10839347541332245, + 0.021832622587680817, + 0.030520638450980186, + 0.08195261657238007, + -0.009910766035318375, + -0.020321935415267944, + -0.024892106652259827, + -0.04641749709844589, + -0.022338520735502243, + -0.0005006389692425728, + 0.0804557204246521, + -0.027200235053896904, + 0.02207481861114502, + 0.1158241257071495, + 0.03636608272790909, + 0.010507237166166306, + -0.026340406388044357, + 0.002669725101441145, + 0.01554177887737751, + 0.059437137097120285, + -0.05581275373697281, + -0.08813385665416718, + -0.01614191010594368, + 0.028714101761579514, + -0.010185315273702145, + 0.0893682986497879, + 0.03561735153198242, + 0.003323871176689863, + 0.021243175491690636, + -0.07853252440690994, + 0.0366552472114563, + -0.09887391328811646, + -0.05439227446913719, + -0.017395587638020515, + -0.03081517666578293, + -0.048097848892211914, + 0.06837590038776398, + 0.03603004664182663, + 0.075649693608284, + -0.020068824291229248, + -0.08150546252727509, + -0.07169344276189804, + 0.03834502771496773, + 0.0763382837176323, + -0.025374209508299828, + 0.018010210245847702, + 0.0705205574631691, + 0.014005008153617382, + 0.05430516600608826, + 0.07449464499950409, + 0.08702366054058075, + -0.031685881316661835, + 0.016271088272333145, + -0.05655751749873161, + 0.07943019270896912, + 0.04702039062976837, + -0.09766217321157455, + -0.07521934807300568, + -0.03131193667650223, + -0.052844297140836716, + 0.010865757241845131, + 0.007213325705379248, + 0.04729142040014267, + 0.02575257048010826, + 0.003015512600541115, + -0.0818973034620285, + -0.09146809577941895, + 0.08307889103889465, + -0.08757950365543365, + 0.013212001882493496, + -0.0730065256357193, + 0.0410885252058506, + 0.11009232699871063, + 0.03561345115303993, + -0.0081672677770257, + -0.0246304702013731, + 0.019638020545244217, + -0.0005461095715872943, + 0.0066030896268785, + 0.04522112011909485, + 0.03942589461803436, + -0.1044793352484703, + 0.015239045023918152, + -0.07528360933065414, + 0.07470488548278809, + -0.03606195002794266, + 0.15367625653743744, + 0.01645088382065296, + -0.059046514332294464, + -0.10648392885923386, + 0.014447370544075966, + -0.03611423447728157, + 0.06656364351511002, + 0.02394464984536171, + 0.06695408374071121, + 0.03547429293394089, + -0.042541008442640305, + 0.10056301951408386, + 0.047229327261447906, + -0.05342699587345123, + -0.07886892557144165, + -0.06227856129407883, + -0.023887883871793747, + 0.03216726332902908, + 0.018341396003961563, + -0.0730758085846901, + -0.02213200554251671, + 0.01135922595858574, + -0.015492855571210384, + 0.094337098300457, + 0.13425292074680328, + 0.07430572807788849, + -0.13209103047847748 + ] + }, + "p244_390.wav": { + "name": "p244", + "embedding": [ + 0.05390515550971031, + 0.08928265422582626, + -0.009095130488276482, + 0.0331672802567482, + -0.03521709889173508, + 0.07289695739746094, + -0.134585902094841, + 0.12634585797786713, + -0.04289443790912628, + 0.15653173625469208, + -0.058817293494939804, + 0.10553275793790817, + -0.0011788542615249753, + -0.1952839344739914, + -0.04377306252717972, + 0.04105088487267494, + -0.07260677218437195, + -0.02957030013203621, + -0.06161730736494064, + 0.0018908885540440679, + 0.04718029499053955, + 0.04348362237215042, + 0.031137706711888313, + -7.213740173028782e-05, + 0.007394982967525721, + 0.05135253071784973, + 7.532518066000193e-05, + 0.05643025413155556, + 0.03473090007901192, + -0.06871864944696426, + -0.036472972482442856, + 0.12149496376514435, + -0.04107067734003067, + 0.026809513568878174, + 0.055561088025569916, + -0.02963853068649769, + -0.007271257229149342, + -0.04845721274614334, + -0.029888229444622993, + 0.016986336559057236, + -0.045228127390146255, + 0.07154866307973862, + 0.03585415706038475, + 0.013049333356320858, + 0.05837123468518257, + 0.005929145030677319, + -0.03145897388458252, + -0.05738860368728638, + -0.08443523198366165, + 0.1713896542787552, + 0.09075279533863068, + -0.014891610480844975, + -0.049283236265182495, + -0.05789681524038315, + 0.09286869317293167, + -0.015881182625889778, + -0.1446750909090042, + -0.054379530251026154, + 0.0792398601770401, + 0.15658412873744965, + -0.016973700374364853, + -0.018962474539875984, + 0.025595594197511673, + 0.1400173306465149, + 0.05862336978316307, + 0.10565488040447235, + 0.07664918154478073, + 0.09592867642641068, + 0.0021817826200276613, + 0.03837255761027336, + 0.05230647325515747, + 0.0448959618806839, + 0.037463411688804626, + -0.020335907116532326, + 0.050175171345472336, + 0.003201348939910531, + -0.019272953271865845, + -0.010164099745452404, + -0.006473494693636894, + 0.02481451816856861, + -0.001570268883369863, + 0.01204477995634079, + -0.0032795509323477745, + 0.034901563078165054, + -0.03703448921442032, + 0.049503225833177567, + -0.002315206453204155, + -0.0015280717052519321, + 0.05702874809503555, + 0.039399269968271255, + 0.04136405140161514, + 0.061849117279052734, + -0.05117488279938698, + -0.09778434038162231, + 0.015687324106693268, + 0.010577641427516937, + -6.401844439096749e-05, + 0.05919798091053963, + 0.038666751235723495, + -0.023059936240315437, + 0.1095709279179573, + 0.046080607920885086, + -0.03148084506392479, + 0.036561522632837296, + -0.10593611747026443, + 0.11764362454414368, + 0.06253674626350403, + -0.010973717086017132, + 0.053999822586774826, + -0.04982920363545418, + 0.08696375042200089, + 0.06308745592832565, + -0.14470164477825165, + -0.05770739167928696, + 0.06784173846244812, + -0.00554050225764513, + -0.01823246106505394, + 0.12491173297166824, + 0.006918720435351133, + 0.016837649047374725, + 0.09361709654331207, + -0.0745864138007164, + -0.04860581085085869, + -0.02651151642203331, + 0.06534599512815475, + -0.10346052050590515, + 0.04956859350204468, + 0.02006286382675171, + -0.026648448780179024, + -0.012086551636457443, + 0.10539241135120392, + -0.018278049305081367, + -0.002573288744315505, + 0.009611809626221657, + -0.03760271146893501, + 0.05780063197016716, + -0.04063032940030098, + 0.022076835855841637, + 0.020960509777069092, + 0.018808521330356598, + 0.03726546838879585, + -0.01462057139724493, + -0.045741137117147446, + -0.1042439416050911, + 0.012642532587051392, + 0.02781568467617035, + 0.07075914740562439, + -0.001994219608604908, + -0.005888078361749649, + -0.043102920055389404, + -0.06279237568378448, + 0.02562461420893669, + -0.038862429559230804, + 0.06611211597919464, + -0.0100297462195158, + -0.010633885860443115, + 0.10490754246711731, + -0.0032152431085705757, + 0.013908391818404198, + -0.050229016691446304, + -0.01925613358616829, + 0.017270535230636597, + 0.06111428141593933, + -0.08161693066358566, + -0.04565566033124924, + 0.019952932372689247, + 0.021331798285245895, + 0.0056177591904997826, + 0.03059665858745575, + 0.05080237612128258, + 0.010925977490842342, + 0.04018120467662811, + -0.08479554206132889, + 0.011016296222805977, + -0.11183982342481613, + -0.06443434953689575, + -0.025700028985738754, + -0.019076114520430565, + -0.00666585611179471, + 0.08366718888282776, + 0.00783555954694748, + 0.028873024508357048, + -0.004083580337464809, + -0.08913102000951767, + -0.07488339394330978, + 0.07882171869277954, + 0.09218160063028336, + -0.005183601286262274, + 0.04809688776731491, + 0.049967970699071884, + -0.03552994504570961, + 0.04761362075805664, + 0.04599515721201897, + 0.10308775305747986, + -0.01695864088833332, + 0.014222340658307076, + -0.09289102256298065, + 0.07657654583454132, + 0.08020355552434921, + -0.09848613291978836, + -0.08836112916469574, + 0.0039378684014081955, + -0.06599529832601547, + 0.025393830612301826, + -0.02892601117491722, + 0.0049562654457986355, + 0.04748081415891647, + 6.835884414613247e-05, + -0.09207058697938919, + -0.08813222497701645, + 0.10073535144329071, + -0.09169846773147583, + -0.019248684868216515, + -0.0721120685338974, + 0.04407724365592003, + 0.09232749789953232, + 0.04549960047006607, + -0.03842763602733612, + -0.008677591569721699, + 0.05421547591686249, + -0.04442988708615303, + -0.007950632832944393, + 0.039528023451566696, + 0.01881370320916176, + -0.1321561634540558, + 0.00788298062980175, + -0.0783316120505333, + 0.06109057739377022, + -0.08186092972755432, + 0.140180766582489, + -0.007290482986718416, + -0.06880410015583038, + -0.08298700302839279, + 0.05013761669397354, + -0.01638776622712612, + 0.04276889190077782, + 0.03441886231303215, + 0.06435059010982513, + 0.0453796423971653, + -0.06823495030403137, + 0.10489839315414429, + 0.031164808198809624, + -0.018003329634666443, + -0.07761579006910324, + -0.02650955319404602, + -0.040319573134183884, + 0.03270123898983002, + 0.026091286912560463, + -0.10452570021152496, + -0.009347882121801376, + 0.02893173322081566, + -0.04637656360864639, + 0.06974027305841446, + 0.1362844705581665, + 0.05342552065849304, + -0.1435653567314148 + ] + }, + "p244_272.wav": { + "name": "p244", + "embedding": [ + 0.07805004715919495, + 0.031246481463313103, + 0.0403924360871315, + -0.05527679994702339, + 0.024828551337122917, + 0.07462207973003387, + -0.12186755239963531, + 0.07680010050535202, + -0.014242593199014664, + 0.057926736772060394, + -0.08840712904930115, + 0.04659002274274826, + 0.025284886360168457, + -0.1520388126373291, + -0.03570377081632614, + 0.030892131850123405, + -0.04072274640202522, + 0.024306446313858032, + -0.05477508157491684, + -0.03034302592277527, + -0.0067830272018909454, + 0.04069060832262039, + 0.036249976605176926, + -0.04064023867249489, + 0.040984589606523514, + 0.047366317361593246, + 0.013311544433236122, + 0.02635137364268303, + -0.02134903520345688, + -0.036444611847400665, + 0.0006156200543045998, + 0.07961243391036987, + -0.03660359978675842, + -0.04000692814588547, + 0.05057183653116226, + 0.005644030403345823, + 0.05831284448504448, + -0.09285643696784973, + -0.022177865728735924, + 0.051782768219709396, + -0.05667605251073837, + 0.07458725571632385, + 0.05092700198292732, + 0.030888816341757774, + 0.014505833387374878, + 0.030910607427358627, + 0.02317505143582821, + -0.07474349439144135, + -0.08601969480514526, + 0.1618729531764984, + 0.014286966994404793, + 0.041374675929546356, + -0.10537150502204895, + -0.013100223615765572, + 0.04306437075138092, + -0.011819606646895409, + -0.027152301743626595, + -0.007410903926938772, + 0.038424551486968994, + 0.09972322732210159, + 0.022540202364325523, + -0.03822816163301468, + 0.04328371584415436, + 0.055118706077337265, + -0.026188569143414497, + 0.014896324835717678, + 0.11809432506561279, + 0.06560206413269043, + 0.008971446193754673, + 0.026067521423101425, + 0.039699532091617584, + 0.01513068750500679, + 0.06188390403985977, + -0.04368027299642563, + 0.04448987543582916, + -0.027908308431506157, + -0.04238244146108627, + -0.01628924533724785, + -0.02337472140789032, + -0.01637083664536476, + 0.06354888528585434, + 0.018838247284293175, + 0.017638787627220154, + 0.06269198656082153, + -0.05855787545442581, + 0.018404502421617508, + -0.018946334719657898, + 0.0524844229221344, + 0.0754566490650177, + 0.04872932657599449, + 0.04560946673154831, + -0.005865195766091347, + -0.04433590918779373, + -0.0777931660413742, + 0.03516163304448128, + 0.027359621599316597, + -0.012207778170704842, + 0.007468577474355698, + 0.03845154866576195, + -0.049091488122940063, + 0.09061408787965775, + -0.010038855485618114, + 0.002318674698472023, + -0.01295918133109808, + -0.07040002197027206, + 0.060140158981084824, + 0.09907764196395874, + -0.015951979905366898, + 0.04184911027550697, + -0.03884124010801315, + 0.008190998807549477, + 0.06033554673194885, + -0.09694486856460571, + -0.041078198701143265, + 0.03351639211177826, + 0.012129362672567368, + 0.07398790866136551, + 0.11422621458768845, + -0.0016760625876486301, + 0.018616054207086563, + 0.029490642249584198, + -0.06932834535837173, + -0.02365504764020443, + 0.02712034061551094, + -0.0032923854887485504, + -0.022457998245954514, + 0.0092119500041008, + 0.023451542481780052, + 0.040889251977205276, + -0.06427560746669769, + 0.0527741014957428, + 0.010937150567770004, + 0.009991750121116638, + -0.10067594796419144, + 0.07235223054885864, + 0.04502633959054947, + -0.0011446168646216393, + -0.04225616529583931, + 0.007886041887104511, + 0.06918466091156006, + -0.014319105073809624, + 0.06925106048583984, + -0.08320833742618561, + -0.10994590073823929, + -0.038774192333221436, + 0.0011140275746583939, + 0.03918425738811493, + -0.035329923033714294, + -0.02905648574233055, + -0.07947008311748505, + 0.032268088310956955, + -0.01167863979935646, + -0.01231518667191267, + 0.030090592801570892, + 0.09888110309839249, + -0.04613158106803894, + 0.07447901368141174, + -0.03751831501722336, + 0.022598695009946823, + -0.009025701321661472, + -0.007163614500313997, + 0.02782125025987625, + 0.017612474039196968, + 0.005257181823253632, + -0.06694945693016052, + -0.0005585253238677979, + -0.059513263404369354, + 0.005501090548932552, + 0.00797060877084732, + 0.020931215956807137, + -0.012566907331347466, + -0.03347695246338844, + -0.11056963354349136, + 0.021343054249882698, + -0.07710330188274384, + -0.033407628536224365, + 0.07335171103477478, + 0.0013008173555135727, + -0.02465185523033142, + 0.10292619466781616, + 0.018680822104215622, + 0.017956409603357315, + -0.07259131222963333, + -0.05193762108683586, + 0.017226621508598328, + 0.04458422213792801, + 0.06698817759752274, + -0.005020072218030691, + -0.0042329225689172745, + -0.025899047031998634, + 0.03187107667326927, + 0.0690484419465065, + 0.05349622666835785, + 0.03670891746878624, + -0.03689820319414139, + -0.02484549582004547, + 0.035276077687740326, + 0.10420235991477966, + -0.02229044958949089, + -0.011279079131782055, + -0.03782124072313309, + 0.04193677753210068, + -0.0345267578959465, + 0.014670413918793201, + 0.029176101088523865, + 0.03896758332848549, + 0.03579922765493393, + -0.032069213688373566, + -0.060753900557756424, + -0.03974713385105133, + 0.017953645437955856, + -0.05051875859498978, + -0.030922263860702515, + -0.04569966718554497, + 0.055334389209747314, + 0.09403257071971893, + -0.006817622110247612, + 0.016337305307388306, + -0.022613225504755974, + -0.039114195853471756, + -0.04312022030353546, + -0.05394390597939491, + -0.036319658160209656, + 0.026847518980503082, + -0.07230760902166367, + 0.02256101928651333, + -0.06537202000617981, + 0.06207843869924545, + -0.016198329627513885, + 0.04776257649064064, + 0.04713447019457817, + -0.04444450885057449, + -0.07119201868772507, + -0.006379054859280586, + -0.008983755484223366, + 0.03671051934361458, + 0.022441480308771133, + -0.0002881418913602829, + 0.05042334645986557, + -0.056568440049886703, + 0.04519500955939293, + 0.032964859157800674, + -0.04395901784300804, + -0.05827764794230461, + -0.02664433792233467, + 0.010392685420811176, + 0.021448174491524696, + -0.030511366203427315, + -0.022718951106071472, + 0.03794592246413231, + 0.037708837538957596, + 0.030361898243427277, + 0.02101735584437847, + 0.05144747719168663, + 0.001114354468882084, + -0.07820219546556473 + ] + }, + "p244_210.wav": { + "name": "p244", + "embedding": [ + 0.030596919357776642, + 0.0841556191444397, + 0.012820704840123653, + 0.010635925456881523, + 0.008473701775074005, + 0.028797658160328865, + -0.1492796540260315, + 0.14613549411296844, + -0.003934000618755817, + 0.12034957110881805, + -0.07674948126077652, + 0.05096691846847534, + -0.03624391183257103, + -0.1290227472782135, + -0.03811531886458397, + 0.02606789767742157, + -0.034172289073467255, + -0.02522493712604046, + -0.006144885439425707, + -0.006501024588942528, + 0.03783539682626724, + 0.019031988456845284, + -0.0009674839675426483, + 0.01439635083079338, + 0.037747837603092194, + 0.012713033705949783, + 0.016097357496619225, + 0.061483800411224365, + 0.025261247530579567, + -0.013186433352530003, + 0.03253801539540291, + 0.11990076303482056, + -0.0628390684723854, + -0.009552542120218277, + 0.048650167882442474, + 0.007677403278648853, + -0.027684640139341354, + -0.03144530951976776, + -0.058763280510902405, + 0.026295050978660583, + -0.044312141835689545, + 0.05063920468091965, + 0.01699085719883442, + 0.0011239736340939999, + 0.03825441375374794, + 0.022916747257113457, + -0.0019340435974299908, + -0.034722182899713516, + -0.08818639814853668, + 0.13072866201400757, + 0.06585775315761566, + 0.012756201438605785, + -0.08909894526004791, + -0.090900719165802, + 0.06726817786693573, + 0.007602536119520664, + -0.07183565199375153, + 0.002192273736000061, + 0.06536427140235901, + 0.14639964699745178, + -0.007427135482430458, + -0.01235495787113905, + 0.018868179991841316, + 0.07820919156074524, + 0.07840124517679214, + 0.045271143317222595, + 0.04875032603740692, + 0.0846790075302124, + 0.029304085299372673, + 0.029179414734244347, + 0.059164032340049744, + 0.021112974733114243, + 0.009686710312962532, + -0.042836036533117294, + 0.030365262180566788, + 0.03601401299238205, + -0.02768142893910408, + 0.004443887621164322, + 0.01381439995020628, + 0.0046913400292396545, + 0.03584422916173935, + -1.531653106212616e-05, + -0.013592083938419819, + 0.06888803839683533, + -0.039438508450984955, + 0.042061954736709595, + -0.004070714116096497, + -0.01485615223646164, + 0.08001046627759933, + 0.03558462858200073, + 0.023850612342357635, + 0.07595677673816681, + -0.07829700410366058, + -0.08305729925632477, + -0.006581442430615425, + -0.003209050977602601, + 0.024796640500426292, + 0.05243242159485817, + 0.037644971162080765, + -0.02066842094063759, + 0.12771877646446228, + 0.034893687814474106, + 0.013780414126813412, + -0.0042670974507927895, + -0.1260133981704712, + 0.07696455717086792, + 0.04633644223213196, + -0.02695537358522415, + 0.0515616312623024, + -0.012208234518766403, + 0.04175709933042526, + 0.04974275454878807, + -0.13143886625766754, + -0.03920525684952736, + 0.05118044093251228, + 0.0059749591164290905, + 0.01594759337604046, + 0.1069403663277626, + 0.03104320913553238, + -0.01620885170996189, + 0.07889629900455475, + -0.08621074259281158, + -0.055649906396865845, + -0.033559974282979965, + 0.1016840785741806, + -0.08952215313911438, + 0.027700264006853104, + 0.024675438180565834, + -0.014423297718167305, + -0.04531712830066681, + 0.07375186681747437, + 0.000415031798183918, + -0.00015851296484470367, + -0.028294507414102554, + 0.01749030500650406, + 0.08891933411359787, + -0.021659063175320625, + 0.03105173259973526, + 0.01992894522845745, + 0.04125868156552315, + 0.025921441614627838, + 0.01935938559472561, + -0.049375589936971664, + -0.07961546629667282, + -0.009436559863388538, + 0.0684974193572998, + 0.06708923727273941, + -0.0491051971912384, + -0.030637552961707115, + -0.0654284656047821, + -0.05686984211206436, + 0.02030065283179283, + 0.04222528636455536, + 0.08421556651592255, + 0.046449583023786545, + -0.029040930792689323, + 0.13530217111110687, + -0.03105255588889122, + 0.007283971644937992, + -0.020225167274475098, + 0.025831453502178192, + 0.009825004264712334, + 0.04207317531108856, + -0.06330402940511703, + -0.07473613321781158, + 0.02230144292116165, + 0.0007133600302040577, + 0.022106168791651726, + 0.029444189742207527, + -0.0011781472712755203, + -0.0005464546848088503, + 0.019190713763237, + -0.06677652150392532, + 0.013764157891273499, + -0.0881725549697876, + -0.07823389768600464, + -0.007210577372461557, + 0.013173889368772507, + -0.019713273271918297, + 0.07604013383388519, + -0.00691785104572773, + 0.047817979007959366, + 0.027661941945552826, + -0.09357676655054092, + -0.07103085517883301, + 0.06767357885837555, + 0.05215778946876526, + -0.012474924325942993, + 0.04100147634744644, + 0.06916986405849457, + -0.0339847169816494, + 0.023280568420886993, + 0.06203930824995041, + 0.07159791886806488, + -0.05701250582933426, + -0.012226616963744164, + -0.08411754667758942, + 0.09320881962776184, + 0.047804687172174454, + -0.09929536283016205, + -0.08394557982683182, + -0.011899353936314583, + -0.05481933802366257, + 0.012348607182502747, + -0.004481784068048, + 0.06157462298870087, + 0.007839015685021877, + -0.0472693033516407, + -0.06354792416095734, + -0.08071665465831757, + 0.07271368056535721, + -0.06602893024682999, + -0.04005580395460129, + -0.04836101830005646, + 0.03449997678399086, + 0.08083398640155792, + 0.05337708070874214, + 0.03816365450620651, + -0.039333928376436234, + 0.034648336470127106, + -0.05005088075995445, + -0.07325781136751175, + 0.04599399119615555, + -0.026650480926036835, + -0.10073283314704895, + -0.017291313037276268, + -0.050028689205646515, + 0.09322719275951385, + -0.06154647096991539, + 0.10789820551872253, + -0.013691608794033527, + -0.07906541228294373, + -0.07174591720104218, + -0.025496678426861763, + 0.0209258534014225, + 0.03191053494811058, + 0.027914701029658318, + 0.04535887390375137, + 0.031264886260032654, + -0.011600816622376442, + 0.08953496813774109, + 0.01850002072751522, + 0.009259818121790886, + -0.048829250037670135, + -0.0622490718960762, + 0.0012840889394283295, + 0.01808755099773407, + -0.0008657914586365223, + -0.09528379887342453, + 0.04542069509625435, + 0.0033216187730431557, + -0.0407499261200428, + 0.015438757836818695, + 0.0888296440243721, + 0.051443349570035934, + -0.14641030132770538 + ] + }, + "p244_201.wav": { + "name": "p244", + "embedding": [ + 0.05511818081140518, + 0.11212310194969177, + -0.011525323614478111, + 0.016972655430436134, + -0.04211655631661415, + 0.0638246089220047, + -0.16440251469612122, + 0.1507434844970703, + -0.026916876435279846, + 0.13388268649578094, + -0.037310678511857986, + 0.12266439944505692, + -0.020745359361171722, + -0.17097729444503784, + -0.03719726949930191, + 0.059551902115345, + -0.04489855840802193, + -0.036431364715099335, + -0.014066828414797783, + -0.01691630855202675, + 0.009256268851459026, + 0.02300920896232128, + 0.040245041251182556, + 0.02279983088374138, + 0.03718739002943039, + 0.06513645499944687, + 0.0007651466876268387, + 0.05713482201099396, + 0.00963128823786974, + -0.03747817873954773, + -0.029261961579322815, + 0.08851687610149384, + -0.06712214648723602, + 0.023853596299886703, + 0.05486403405666351, + -0.013791164383292198, + 0.003468405921012163, + -0.05426535755395889, + -0.011016378179192543, + 0.003150020493194461, + -0.025247231125831604, + 0.10075338929891586, + 0.03476456552743912, + -0.008219363167881966, + 0.01719394326210022, + 0.03493858128786087, + 0.008156637661159039, + -0.0324087031185627, + -0.11855581402778625, + 0.1498035192489624, + 0.06533762067556381, + -0.0043103876523673534, + -0.0772293359041214, + -0.05846061557531357, + 0.08848056942224503, + -0.027996767312288284, + -0.10237906873226166, + -0.03466286510229111, + 0.07236357033252716, + 0.14088992774486542, + -0.031598836183547974, + -0.0486932098865509, + 0.023812200874090195, + 0.13915732502937317, + 0.08070148527622223, + 0.07763877511024475, + 0.07992343604564667, + 0.12148387730121613, + -0.050063468515872955, + -0.0021491101942956448, + 0.050942204892635345, + 0.0586591511964798, + 0.04539824277162552, + 0.009091577492654324, + 0.012125764042139053, + -0.017939668148756027, + -0.004847826436161995, + -0.005730635020881891, + -0.014895502477884293, + -0.029740257188677788, + -0.029120707884430885, + 0.013473547995090485, + -0.011863608844578266, + 0.06011473387479782, + -0.012197759002447128, + 0.0584108941257, + 0.034900542348623276, + -0.018841322511434555, + 0.0773913562297821, + 0.05043083429336548, + 0.0210711732506752, + 0.06707257777452469, + -0.0912616178393364, + -0.05538351833820343, + 0.0398763008415699, + -0.008284758776426315, + 0.038146667182445526, + 0.07084225118160248, + 0.041463833302259445, + -0.0010061735520139337, + 0.12212863564491272, + 0.06449627876281738, + -0.014100637286901474, + 0.016240563243627548, + -0.08583803474903107, + 0.13689729571342468, + 0.06536121666431427, + -0.03450407832860947, + 0.055621471256017685, + -0.04011617228388786, + 0.04346810281276703, + 0.060454487800598145, + -0.12322668731212616, + -0.0895187184214592, + 0.04595860093832016, + 0.04117373004555702, + -0.0230595450848341, + 0.12120827287435532, + -0.001005854457616806, + 0.0545198880136013, + 0.08080488443374634, + -0.07027877867221832, + -0.04748065769672394, + -0.009639699943363667, + 0.06234338507056236, + -0.06941592693328857, + 0.05164248123764992, + 0.06436388194561005, + -0.013249555602669716, + 0.010334555990993977, + 0.08919903635978699, + 0.011683602817356586, + 0.000299295992590487, + 0.02489382028579712, + -0.036725860089063644, + 0.014538826420903206, + -0.0019320540595799685, + 0.012876464053988457, + 0.015764329582452774, + 0.021520916372537613, + 0.04543602466583252, + 0.005655610002577305, + -0.024667367339134216, + -0.1309337466955185, + 0.003189387731254101, + 0.0531509593129158, + 0.08745987713336945, + -0.024010051041841507, + -0.040880054235458374, + -0.030893104150891304, + -0.03797308728098869, + 0.0009898971766233444, + 0.006269948557019234, + 0.0656789243221283, + -0.03542296215891838, + -0.009637041948735714, + 0.10649190843105316, + 0.030321605503559113, + 0.0031170290894806385, + -0.04022235423326492, + -0.016823559999465942, + 0.0015661268262192607, + 0.047295406460762024, + -0.08259402215480804, + -0.07387891411781311, + -0.004735726863145828, + 0.04221796989440918, + -0.01233053021132946, + 0.08891333639621735, + 0.05673213303089142, + 0.016745546832680702, + 0.0222429558634758, + -0.048097945749759674, + 0.011405489407479763, + -0.07478676736354828, + -0.07258903235197067, + -0.018395038321614265, + 0.009205790236592293, + -0.03617504984140396, + 0.07776371389627457, + 0.04206109046936035, + 0.09293448179960251, + -0.023142961785197258, + -0.05291867256164551, + -0.07306499779224396, + 0.04751640930771828, + 0.06554031372070312, + -0.025272902101278305, + 0.03950625658035278, + 0.07353940606117249, + -0.024351969361305237, + 0.05548709258437157, + 0.07088024914264679, + 0.08119156956672668, + -0.05111321806907654, + 0.024134550243616104, + -0.07701750099658966, + 0.060233116149902344, + 0.0856102705001831, + -0.10147425532341003, + -0.07619839906692505, + -0.013500827364623547, + -0.061241574585437775, + 0.006847718730568886, + -0.0328960083425045, + 0.029118482023477554, + 0.03181857243180275, + -0.005155395716428757, + -0.08790645003318787, + -0.12165117263793945, + 0.08395262062549591, + -0.08868646621704102, + 0.019166551530361176, + -0.06920987367630005, + 0.05198763310909271, + 0.08661377429962158, + 0.03899727016687393, + -0.029150929301977158, + -0.018633730709552765, + 0.034087590873241425, + 0.0008559771813452244, + 0.008367626927793026, + 0.07127957046031952, + 0.04484396427869797, + -0.12551236152648926, + 0.008474432863295078, + -0.06450192630290985, + 0.06808453798294067, + -0.035618893802165985, + 0.16381029784679413, + 0.021532177925109863, + -0.054629646241664886, + -0.08315492421388626, + 0.003878412302583456, + -0.04005561023950577, + 0.05593789368867874, + 0.015326911583542824, + 0.06255761533975601, + 0.03487628698348999, + -0.041331011801958084, + 0.11909664422273636, + 0.049699876457452774, + -0.05620461702346802, + -0.08857350051403046, + -0.045126304030418396, + -0.030415156856179237, + 0.06337439268827438, + 0.0274224691092968, + -0.08693434298038483, + -0.03429974988102913, + 0.021948659792542458, + -0.018025502562522888, + 0.0702352374792099, + 0.14869332313537598, + 0.07642989605665207, + -0.12858504056930542 + ] + }, + "p244_136.wav": { + "name": "p244", + "embedding": [ + 0.05141834914684296, + 0.09384244680404663, + 0.0027724015526473522, + 0.048024777323007584, + -0.03925531357526779, + 0.06964029371738434, + -0.07960496842861176, + 0.08917447924613953, + -0.05906029790639877, + 0.14789757132530212, + -0.11277738213539124, + 0.11306633800268173, + -0.021489301696419716, + -0.16951832175254822, + -0.03842146694660187, + 0.06441636383533478, + -0.027990078553557396, + 0.030925128608942032, + -0.030577704310417175, + 0.0270548015832901, + 0.04513400420546532, + 0.0441758967936039, + 0.07102750241756439, + -0.051528967916965485, + 0.062090471386909485, + 0.049823418259620667, + 0.029422150924801826, + 0.08429831266403198, + 0.04295084625482559, + -0.10208781063556671, + -0.052613869309425354, + 0.13765741884708405, + -0.036743395030498505, + 0.026554159820079803, + 0.04950394481420517, + 0.011309279128909111, + 0.0005480997497215867, + -0.061575815081596375, + 0.000676786876283586, + -0.0182732492685318, + -0.01846231147646904, + 0.056750133633613586, + 0.006017546635121107, + -0.010398592799901962, + 0.0258325282484293, + 0.021399367600679398, + -0.04424873739480972, + -0.0469798780977726, + -0.09055374562740326, + 0.14626476168632507, + 0.02010076679289341, + 0.022107237949967384, + -0.07736627757549286, + -0.09531641006469727, + 0.09994763135910034, + 0.01042456366121769, + -0.10447446256875992, + -0.026107992976903915, + 0.07764921337366104, + 0.17855390906333923, + 0.0013499065535143018, + -0.03455064073204994, + 0.004637734033167362, + 0.08558331429958344, + 0.012575481086969376, + 0.11652513593435287, + 0.050336919724941254, + 0.05314097926020622, + 0.06140861660242081, + 0.08126457035541534, + 0.02980859950184822, + 0.07705634832382202, + 0.01710939221084118, + -0.026365702971816063, + 0.013730703853070736, + -0.013302801176905632, + -0.0603434219956398, + 0.03303295373916626, + -0.010137918405234814, + -0.011267154477536678, + -0.004585144575685263, + -0.014200631529092789, + 0.03355584293603897, + -0.039536818861961365, + -0.033892177045345306, + 0.032373566180467606, + -0.010474840179085732, + -0.009296310134232044, + 0.06975413113832474, + 0.01981363445520401, + -0.022136781364679337, + 0.02798370271921158, + -0.05673570930957794, + -0.1416313648223877, + -0.006681807804852724, + 0.02671816758811474, + 0.013314202427864075, + 0.06863708794116974, + 0.03743428364396095, + -0.045212581753730774, + 0.08942880481481552, + 0.04641281068325043, + 0.02805173024535179, + 0.03454264998435974, + -0.08436690270900726, + 0.09035779535770416, + 0.09968797862529755, + 0.025750044733285904, + 0.05775569751858711, + -0.03618744760751724, + 0.11050941050052643, + 0.1042468398809433, + -0.16119490563869476, + -0.07683303207159042, + -0.024384746327996254, + -0.034818004816770554, + 0.007066630758345127, + 0.06654946506023407, + -0.027014728635549545, + -0.01130053773522377, + 0.09593239426612854, + -0.11562374979257584, + -0.0719260573387146, + -0.032707080245018005, + 0.02501877211034298, + -0.08276085555553436, + 0.049125753343105316, + 0.013773162849247456, + -0.03938998281955719, + -0.018643083050847054, + 0.06344294548034668, + -0.024832408875226974, + 0.01686427742242813, + 0.04303388670086861, + -0.07249826937913895, + 0.025042152032256126, + -0.09079482406377792, + 0.016426056623458862, + 0.09090790152549744, + 0.04403422027826309, + 0.06044825538992882, + -0.0033124065957963467, + -0.04384984076023102, + -0.08292171359062195, + -0.0028851458337157965, + 0.0525209978222847, + 0.020323116332292557, + -0.010496784932911396, + -0.028149064630270004, + -0.04103463143110275, + -0.07869160175323486, + 0.07913064956665039, + -0.0011206634808331728, + 0.08580173552036285, + 0.030030835419893265, + 0.018346428871154785, + 0.0923272967338562, + 0.006899341009557247, + -0.01107434555888176, + -0.0821005254983902, + -0.04700682684779167, + 0.05453604459762573, + 0.03173323720693588, + -0.10375726222991943, + -0.038108717650175095, + 0.020120572298765182, + -0.01418862584978342, + -0.04396382346749306, + 0.002357538789510727, + 0.04429242014884949, + 0.02557266503572464, + 0.052937597036361694, + -0.03040521964430809, + 0.00023684941697865725, + -0.1077771782875061, + -0.050389159470796585, + -0.022212030366063118, + -0.04610762372612953, + -0.018408508971333504, + 0.09210646152496338, + 0.00935431569814682, + -0.005422515328973532, + -0.0002923562133219093, + -0.05018161982297897, + -0.061742525547742844, + 0.07599705457687378, + 0.05665174126625061, + 0.04734191298484802, + 0.06706345081329346, + 0.014234588481485844, + -0.04093615710735321, + 0.06819590926170349, + 0.05485409498214722, + 0.09729917347431183, + -0.0037351511418819427, + -0.012426167726516724, + -0.07035854458808899, + 0.08780263364315033, + 0.10930603742599487, + -0.09341315180063248, + -0.1024673730134964, + -0.0436556302011013, + -0.07118580490350723, + 0.09446816146373749, + -0.02589349076151848, + -0.03805803135037422, + 0.02255435660481453, + -0.04031994566321373, + -0.08825281262397766, + -0.07669749855995178, + 0.09607619047164917, + -0.03330562263727188, + -0.06764556467533112, + -0.06447035074234009, + 0.03951749578118324, + 0.0531640350818634, + 0.03523951768875122, + -0.00457668537274003, + 0.02532750740647316, + 0.06489630043506622, + -0.11835372447967529, + -0.03565382584929466, + 0.04792428016662598, + -0.028515227138996124, + -0.0448799729347229, + 0.03351759910583496, + -0.07020387053489685, + 0.061290137469768524, + -0.08577300608158112, + 0.1748303323984146, + -0.05219673365354538, + -0.06337454915046692, + -0.06802007555961609, + 0.0746140107512474, + -0.037712790071964264, + 0.009680218994617462, + 0.07229800522327423, + 0.03549128398299217, + 0.036690570414066315, + -0.1087617352604866, + 0.10996214300394058, + -0.0017096211668103933, + 0.008962016552686691, + -0.04340721666812897, + -0.0443255677819252, + -0.06405270099639893, + 0.0012607452226802707, + -0.03241158276796341, + -0.08377400040626526, + 0.02377261407673359, + 0.020100770518183708, + 0.002682886552065611, + 0.04253046214580536, + 0.11782117187976837, + 0.03330816701054573, + -0.0671708881855011 + ] + }, + "p244_238.wav": { + "name": "p244", + "embedding": [ + 0.048192255198955536, + 0.0856732502579689, + -0.024784784764051437, + 0.034956980496644974, + -0.06625073403120041, + 0.05187675356864929, + -0.1189003437757492, + 0.1366071105003357, + -0.02329511195421219, + 0.13937202095985413, + -0.06657830625772476, + 0.13776913285255432, + -0.015011260285973549, + -0.17779940366744995, + -0.020704206079244614, + 0.04880214482545853, + -0.041755590587854385, + -0.039138369262218475, + -0.024401327595114708, + -0.02936430647969246, + 0.0556807667016983, + 0.055693209171295166, + 0.03320441395044327, + 0.00034835212863981724, + 0.017719268798828125, + 0.07283156365156174, + -0.003327935701236129, + 0.03543262183666229, + 0.00414060615003109, + -0.07725800573825836, + -0.05338648706674576, + 0.09614154696464539, + -0.050617948174476624, + 0.018481513485312462, + 0.03167777135968208, + -0.02287757396697998, + 0.0005867118015885353, + -0.0536423958837986, + -0.020605625584721565, + 0.011464349925518036, + -0.030290240421891212, + 0.0711221992969513, + 0.020660096779465675, + -0.015318632125854492, + 0.04880041256546974, + 0.01688324846327305, + -0.028967643156647682, + -0.03955049067735672, + -0.11184601485729218, + 0.17146752774715424, + 0.08238431811332703, + -0.002738955896347761, + -0.058955587446689606, + -0.06897035241127014, + 0.09003840386867523, + -0.009812616743147373, + -0.10784505307674408, + -0.027097230777144432, + 0.06440021097660065, + 0.14617036283016205, + -0.01969076506793499, + -0.055733270943164825, + 0.038849085569381714, + 0.11995720863342285, + 0.049979887902736664, + 0.07123299688100815, + 0.08621516823768616, + 0.10666322708129883, + -0.032921262085437775, + 0.006459346506744623, + 0.041732095181941986, + 0.0870308130979538, + 0.07335962355136871, + -0.0020383328665047884, + 0.033529508858919144, + 0.0009053430985659361, + -0.015052133239805698, + -0.014228877611458302, + -0.0341176837682724, + -0.022708691656589508, + -0.0058417534455657005, + 0.008260474540293217, + 0.020324915647506714, + 0.027046389877796173, + -0.02797975018620491, + 0.0632672905921936, + 0.041860174387693405, + -0.00863546784967184, + 0.05933716893196106, + 0.01817016303539276, + 0.01571546122431755, + 0.07002922892570496, + -0.09937640279531479, + -0.08078598976135254, + 0.04861612617969513, + 0.017239488661289215, + 0.03527238965034485, + 0.07749965786933899, + 0.040935199707746506, + -0.02634143829345703, + 0.11926497519016266, + 0.04318404942750931, + -0.010764160193502903, + 0.013201180845499039, + -0.09105083346366882, + 0.12342653423547745, + 0.11026807874441147, + -0.027273029088974, + 0.051274314522743225, + -0.05674508959054947, + 0.08958464115858078, + 0.051044873893260956, + -0.13859692215919495, + -0.07745301723480225, + 0.015450185164809227, + 0.015069538727402687, + -0.017095256596803665, + 0.12328608334064484, + -0.0021681305952370167, + 0.06407656520605087, + 0.10999579727649689, + -0.10157221555709839, + -0.05042215436697006, + -0.025978311896324158, + 0.048142313957214355, + -0.09797748923301697, + 0.059781208634376526, + 0.05708244442939758, + -0.011131984181702137, + 0.020146246999502182, + 0.06837328523397446, + -0.021472342312335968, + 0.009674872271716595, + 0.01459462009370327, + -0.05541980266571045, + 0.0023015919141471386, + -0.031046949326992035, + -0.011620761826634407, + 0.03468741849064827, + 0.027203360572457314, + 0.046746961772441864, + -0.0187997967004776, + -0.029246270656585693, + -0.13109919428825378, + 0.025988835841417313, + 0.03092006966471672, + 0.056365422904491425, + -0.012007994577288628, + -0.039373014122247696, + -0.034047313034534454, + -0.07035766541957855, + 0.013507400639355183, + -0.007875584997236729, + 0.05060463398694992, + -0.02387099526822567, + 0.007717732340097427, + 0.09041944891214371, + 0.041866544634103775, + -0.01242828369140625, + -0.03630158677697182, + -0.05333526059985161, + 0.010161603800952435, + 0.05040629208087921, + -0.08434578776359558, + -0.08028256148099899, + -0.016978222876787186, + 0.029886778444051743, + -0.019844239577651024, + 0.061177946627140045, + 0.05779300630092621, + 0.02064438909292221, + 0.022764405235648155, + -0.06299805641174316, + 0.006624080240726471, + -0.1037154346704483, + -0.08396510779857635, + -0.011568926274776459, + -0.016440793871879578, + -0.020698431879281998, + 0.07582233846187592, + 0.013021954335272312, + 0.06354506313800812, + -0.038435399532318115, + -0.04189471900463104, + -0.08367975056171417, + 0.053421203047037125, + 0.05864348262548447, + 0.006749191787093878, + 0.05156416445970535, + 0.05735238268971443, + -0.02956988848745823, + 0.06539896130561829, + 0.05777057260274887, + 0.10557493567466736, + -0.023623373359441757, + 0.028875652700662613, + -0.06988620012998581, + 0.09637941420078278, + 0.09502626955509186, + -0.06928315758705139, + -0.08859211206436157, + -0.036927372217178345, + -0.08109502494335175, + 0.048474378883838654, + -0.0327536016702652, + -0.001456666854210198, + 0.03568661957979202, + 0.00914892740547657, + -0.11304029822349548, + -0.08176206052303314, + 0.08448360860347748, + -0.05312156304717064, + -0.006756352260708809, + -0.08260433375835419, + 0.05436480790376663, + 0.109525166451931, + 0.037000566720962524, + -0.0370929092168808, + -0.0195329487323761, + 0.0471968874335289, + -0.025126691907644272, + 0.016944408416748047, + 0.0459243580698967, + 0.05811868607997894, + -0.10650826245546341, + -0.001933423918671906, + -0.07025714218616486, + 0.031967777758836746, + -0.05384049564599991, + 0.1429595649242401, + 0.01064557395875454, + -0.0460495725274086, + -0.08517690747976303, + 0.068721242249012, + -0.008044741116464138, + 0.04722782224416733, + 0.024256261065602303, + 0.05122235417366028, + 0.043867725878953934, + -0.09508968889713287, + 0.1171967089176178, + 0.042246345430612564, + -0.046473052352666855, + -0.06898881494998932, + -0.04760158807039261, + -0.03766796737909317, + 0.03268912807106972, + 0.016161737963557243, + -0.08264794945716858, + -0.02973749116063118, + 0.02060704305768013, + 0.009672337211668491, + 0.06370183825492859, + 0.14448684453964233, + 0.041367240250110626, + -0.12331701815128326 + ] + }, + "p244_196.wav": { + "name": "p244", + "embedding": [ + 0.021600846201181412, + 0.004570044577121735, + -0.07494718581438065, + 0.11656808853149414, + -0.08416303992271423, + -0.0036705578677356243, + -0.0676426962018013, + 0.028364302590489388, + 0.004655107855796814, + 0.0421636700630188, + -0.020549116656184196, + 0.10482598096132278, + -0.007486165966838598, + -0.15837056934833527, + 0.017453154549002647, + 0.05888497084379196, + -0.018500788137316704, + -0.04646013304591179, + -0.0852256640791893, + 0.0017188191413879395, + 0.0239394661039114, + 0.058483004570007324, + 0.09829157590866089, + -0.11539868265390396, + 0.05027247592806816, + 0.06059977039694786, + 0.03152298182249069, + 0.0605325847864151, + 0.006205031182616949, + -0.08786999434232712, + -0.02531738579273224, + 0.07218952476978302, + -0.04300328716635704, + -0.04287872835993767, + -0.006608361378312111, + -0.017997456714510918, + 0.006549905054271221, + -0.05062362551689148, + -0.00022188297589309514, + 0.060666222125291824, + -0.03764817863702774, + 0.08683430403470993, + 0.0381389781832695, + -0.06500234454870224, + 0.044205278158187866, + -0.014747124165296555, + -0.07458034157752991, + -0.011999599635601044, + -0.14061351120471954, + 0.1476481556892395, + 0.0013768341159448028, + 0.03952260687947273, + -0.07445188611745834, + -0.10498807579278946, + 0.08857572078704834, + 0.03125270456075668, + -0.07170958071947098, + -0.07785048335790634, + 0.019192785024642944, + 0.14542174339294434, + 0.01966034434735775, + 0.031899575144052505, + 0.060237716883420944, + 0.04126972332596779, + 0.10605190694332123, + 0.022118283435702324, + 0.04622618108987808, + 0.09566080570220947, + 0.03816326707601547, + 0.04114250838756561, + 0.05145137757062912, + 0.10741766542196274, + -0.03579790145158768, + 0.03237021714448929, + -0.0016727469628676772, + 0.0007892122375778854, + -0.04242180287837982, + -0.05049879848957062, + -0.00753529230132699, + -0.021233510226011276, + 0.029774416238069534, + -0.01037671323865652, + 0.08324018120765686, + 0.008410842157900333, + -0.07947350293397903, + 0.05544404685497284, + 0.07956980913877487, + -0.051099494099617004, + 0.03790952265262604, + 0.015305854380130768, + -0.028178324922919273, + 0.04381226375699043, + -0.05355055630207062, + -0.09496687352657318, + -0.038160040974617004, + 0.0489855632185936, + 0.03625588119029999, + 0.025230666622519493, + 0.011667909100651741, + -0.04750958830118179, + 0.09341155737638474, + 0.028735613450407982, + -0.002344172215089202, + 0.014013756066560745, + 0.011318717151880264, + 0.06484272330999374, + 0.1116248294711113, + 0.02786775305867195, + 0.03783769533038139, + -0.005671270191669464, + 0.02077414095401764, + 0.028183581307530403, + -0.07662416249513626, + -0.08070453256368637, + 0.002776081906631589, + -0.04332665726542473, + 0.0015102250035852194, + 0.12315301597118378, + 0.012537411414086819, + 0.04657234251499176, + 0.11499587446451187, + -0.12760981917381287, + -0.0385301373898983, + 0.013204270973801613, + 0.05735161900520325, + -0.014100005850195885, + 0.016016315668821335, + 0.057698749005794525, + -0.0548892468214035, + -0.011758845299482346, + 0.03290052339434624, + -0.0022033657878637314, + 0.07848820835351944, + 0.041470713913440704, + -0.05197889357805252, + 0.11259084939956665, + -0.049750421196222305, + -0.04358360916376114, + 0.1818459928035736, + 0.02459142357110977, + 0.085120290517807, + -0.0760008692741394, + -0.025670839473605156, + -0.12971827387809753, + 0.05193028599023819, + 0.027295392006635666, + 0.05988822504878044, + -0.036803022027015686, + -0.01406625285744667, + -0.0860980674624443, + -0.1182086393237114, + 0.09125997126102448, + 0.026377592235803604, + 0.12329612672328949, + -0.01577657461166382, + -0.004697935190051794, + 0.07087470591068268, + -0.01746348850429058, + -0.02045099250972271, + 0.00040763261495158076, + -0.05951942503452301, + 0.02545331045985222, + 0.03147123381495476, + -0.04082140326499939, + -0.04136192798614502, + -0.03162946552038193, + 0.02418454922735691, + -0.02802218496799469, + 0.04737013578414917, + 0.04965860769152641, + 0.004983807448297739, + -0.007092426065355539, + -0.0015535918064415455, + -0.0005961758433841169, + -0.012993017211556435, + 0.01917100138962269, + -0.023778550326824188, + -0.062470052391290665, + -0.0899285301566124, + 0.11358119547367096, + 0.060554951429367065, + 0.050150010734796524, + -0.03811769187450409, + -0.046608246862888336, + -0.06418602913618088, + 0.04399752989411354, + -0.0017196411499753594, + -0.016996687278151512, + 0.06712747365236282, + 0.05948321148753166, + -0.006635765545070171, + 0.02376386895775795, + 0.056312933564186096, + 0.018657678738236427, + -0.013202209025621414, + -0.07997986674308777, + -0.05439700558781624, + 0.16799308359622955, + 0.09062279015779495, + -0.06793129444122314, + 0.003616803791373968, + -0.06300493329763412, + -0.10651971399784088, + 0.0637146532535553, + -0.01129967998713255, + 0.014622806571424007, + 0.07740678638219833, + -0.0005111450445838273, + -0.14024436473846436, + -0.08714594691991806, + 0.0643690973520279, + -0.049423135817050934, + -0.026361502707004547, + -0.042946238070726395, + -0.045069437474012375, + 0.07249227166175842, + 0.06336527317762375, + 0.02762836031615734, + 0.01384671963751316, + 0.05033210292458534, + -0.05946294963359833, + 0.053952306509017944, + 0.1397915631532669, + 0.023047752678394318, + -0.0274214930832386, + -0.044140443205833435, + -0.043370265513658524, + 0.04463500529527664, + -0.059287115931510925, + 0.11878107488155365, + 0.026769720017910004, + -0.001993618905544281, + -0.07708421349525452, + 0.12255621701478958, + -0.06935304403305054, + 0.09766803681850433, + 0.07733367383480072, + 0.047418490052223206, + 0.058376822620630264, + -0.0943300724029541, + 0.12575404345989227, + 0.04397275671362877, + -0.03334272652864456, + -0.07298876345157623, + -0.04376649111509323, + -0.03700684756040573, + 0.06267010420560837, + 0.05292423442006111, + -0.029407741501927376, + 0.05177991837263107, + 0.0552787110209465, + -0.009431647136807442, + 0.025952467694878578, + 0.12382227927446365, + 0.0839836448431015, + -0.017081599682569504 + ] + }, + "p244_257.wav": { + "name": "p244", + "embedding": [ + 0.054217152297496796, + 0.06817907840013504, + 0.03713423013687134, + -0.010684062726795673, + 0.01508484035730362, + 0.02617986500263214, + -0.1607087105512619, + 0.0865040272474289, + -0.027016805484890938, + 0.13708442449569702, + -0.10475902259349823, + 0.05688543990254402, + -0.010460307821631432, + -0.18352359533309937, + -0.03182586282491684, + 0.046695150434970856, + -0.04403897002339363, + -0.00015656184405088425, + -0.03932412341237068, + -0.007941464893519878, + 0.01766897365450859, + 0.05982992425560951, + 0.010327210649847984, + -0.03081132099032402, + 0.06301897764205933, + 0.03556942567229271, + 0.026293715462088585, + 0.06525366008281708, + 0.015808887779712677, + -0.007385138422250748, + 0.03630516678094864, + 0.1110234260559082, + -0.015532521530985832, + -0.021643897518515587, + 0.024781692773103714, + 0.03119952790439129, + 0.02551283687353134, + -0.06725099682807922, + -0.0099920853972435, + 0.03957259654998779, + -0.03227991983294487, + 0.059548743069171906, + 0.04365657642483711, + 0.013627806678414345, + 0.022105857729911804, + 0.03285133093595505, + 0.007680032402276993, + -0.07825607061386108, + -0.10873427987098694, + 0.15644240379333496, + 0.031608760356903076, + 0.014791199006140232, + -0.09001362323760986, + -0.06924799084663391, + 0.053502969443798065, + -0.002283245325088501, + -0.05754539743065834, + -0.03387531638145447, + 0.08830463886260986, + 0.15600371360778809, + -0.006379101425409317, + -0.04725562408566475, + 0.031896013766527176, + 0.08861653506755829, + 0.014177089557051659, + 0.08891838043928146, + 0.07531522214412689, + 0.054293036460876465, + 0.02357693575322628, + 0.011974422261118889, + 0.04840375855565071, + 0.02700851298868656, + -0.003739798441529274, + -0.034415025264024734, + 0.023159505799412727, + 0.021604256704449654, + -0.06547054648399353, + 0.023687567561864853, + 0.007296266499906778, + 0.010971713811159134, + 0.019776316359639168, + 0.0020363214425742626, + -0.014962133951485157, + 0.032938964664936066, + -0.0303499773144722, + 0.022993918508291245, + -0.00038847560063004494, + 0.01102515496313572, + 0.0934532880783081, + 0.03400835394859314, + 0.03465603291988373, + 0.026850994676351547, + -0.03414849564433098, + -0.09130959957838058, + 0.010474520735442638, + 0.021718217059969902, + -0.014649230986833572, + 0.030711600556969643, + 0.042217232286930084, + -0.03350149840116501, + 0.11534915864467621, + 0.010818365961313248, + 0.004705140367150307, + 0.005516288802027702, + -0.09385565668344498, + 0.08167917281389236, + 0.09037114679813385, + -0.025205662474036217, + 0.05022481828927994, + -0.0373944453895092, + 0.010105933994054794, + 0.07151336222887039, + -0.13596861064434052, + -0.0687650740146637, + 0.04273831471800804, + 0.015815328806638718, + 0.01326176431030035, + 0.11737816035747528, + -0.003587041050195694, + -0.01472906768321991, + 0.06475979089736938, + -0.06688492745161057, + -0.0668620839715004, + -0.006667150184512138, + 0.060433533042669296, + -0.0788603350520134, + 0.011358421295881271, + 0.06165245175361633, + -0.014212185516953468, + -0.031060297042131424, + 0.06001724302768707, + -0.005857196636497974, + 0.016740523278713226, + -0.05987732112407684, + 0.017589537426829338, + 0.0864129289984703, + -0.04939686134457588, + -0.002140121068805456, + 0.016073305159807205, + 0.0471375435590744, + 0.009931059554219246, + 0.047132834792137146, + -0.07978732883930206, + -0.10603523999452591, + -0.011530506424605846, + 0.03299398720264435, + 0.05002181977033615, + -0.03655140474438667, + -0.015670813620090485, + -0.08277647197246552, + -0.056168489158153534, + 0.02863014116883278, + -0.0033410582691431046, + 0.07885763794183731, + 0.03353947773575783, + -0.043872468173503876, + 0.1273277848958969, + -0.030313070863485336, + 0.021686825901269913, + -0.026045599952340126, + 0.013170342892408371, + 0.015548569150269032, + 0.025662554427981377, + -0.03252416104078293, + -0.06663279980421066, + 0.0026471256278455257, + 0.004096983931958675, + 0.0015172576531767845, + -0.003519449383020401, + 0.01300845481455326, + 0.0012318952940404415, + 0.01108726765960455, + -0.08890679478645325, + 0.024663930758833885, + -0.10311698913574219, + -0.044249389320611954, + 0.010110977105796337, + 0.007091917097568512, + 0.0025250613689422607, + 0.09350241720676422, + 0.014535675756633282, + 0.026898739859461784, + -0.012900945730507374, + -0.09027010202407837, + -0.042928844690322876, + 0.06134141981601715, + 0.1257837563753128, + -0.017717817798256874, + 0.027924351394176483, + 0.018012765794992447, + -0.0049772243946790695, + 0.03948676586151123, + 0.055222801864147186, + 0.07461942732334137, + -0.011198907159268856, + -0.029866714030504227, + -0.050751943141222, + 0.08282352238893509, + 0.035378821194171906, + -0.07516846060752869, + -0.061053477227687836, + 0.012696491554379463, + -0.05744007229804993, + 0.036156993359327316, + 0.007852068170905113, + 0.03852957487106323, + 0.01347978413105011, + -0.0425565168261528, + -0.07943952828645706, + -0.08678993582725525, + 0.016128182411193848, + -0.016244612634181976, + -0.034425437450408936, + -0.06773430109024048, + 0.06063462048768997, + 0.05729877948760986, + 0.05248463153839111, + 0.026279035955667496, + -0.0323423333466053, + -0.015695445239543915, + -0.07194054871797562, + -0.054092179983854294, + 0.0022027073428034782, + -0.03613854572176933, + -0.09956088662147522, + 0.024854637682437897, + -0.06626009941101074, + 0.10389111936092377, + -0.056514859199523926, + 0.10046537220478058, + 0.018408868461847305, + -0.07223938405513763, + -0.099718376994133, + -0.0012365737929940224, + -0.019542958587408066, + 0.05479367822408676, + 0.037622544914484024, + 0.013263262808322906, + 0.05212530121207237, + -0.048746272921562195, + 0.05929608270525932, + 0.020935308188199997, + 0.010361323133111, + -0.06887972354888916, + -0.034353163093328476, + -0.011098933406174183, + 0.03636820986866951, + -0.01962437480688095, + -0.049291301518678665, + 0.014690026640892029, + 0.02708308771252632, + -0.03550346940755844, + 0.05014926195144653, + 0.07363013178110123, + 0.03114086017012596, + -0.1266014575958252 + ] + }, + "p244_243.wav": { + "name": "p244", + "embedding": [ + 0.0496537983417511, + 0.07148614525794983, + 0.021776840090751648, + -0.04420365393161774, + -0.01760343834757805, + 0.10234972089529037, + -0.057350486516952515, + 0.055450133979320526, + -0.026158912107348442, + 0.04957691580057144, + -0.09098969399929047, + 0.018589302897453308, + 0.013466292060911655, + -0.13033759593963623, + -0.006506165489554405, + 0.017749708145856857, + -0.04192372038960457, + 0.022413771599531174, + -0.03578998148441315, + -0.03640943393111229, + 0.0020634308457374573, + 0.009275656193494797, + 0.05191638693213463, + -0.03734276816248894, + 0.046207915991544724, + 0.05116480216383934, + 0.03750753402709961, + 0.03076435811817646, + -0.008631564676761627, + -0.0362841933965683, + -0.04665122553706169, + 0.07105650007724762, + -0.048958275467157364, + -0.02607041411101818, + 0.06438344717025757, + -0.03418348729610443, + 0.053798459470272064, + -0.08436086773872375, + -0.035632822662591934, + 0.04042034223675728, + -0.06375569105148315, + 0.0798109918832779, + 0.028169002383947372, + 0.03995240479707718, + -0.0016235699877142906, + 0.02437409944832325, + 0.013301012106239796, + -0.04227359965443611, + -0.0427711196243763, + 0.125056654214859, + 0.04826640710234642, + 0.0048364270478487015, + -0.04363624006509781, + -0.022009389474987984, + 0.07150287926197052, + -0.011498454958200455, + -0.03685254231095314, + -0.0005462775006890297, + 0.03539516404271126, + 0.04325321316719055, + 0.00407005287706852, + -0.029902592301368713, + 0.04099159687757492, + 0.0728224515914917, + -0.01900591515004635, + 0.05258384346961975, + 0.07483074814081192, + 0.06308706849813461, + 0.012157123535871506, + 0.01546664908528328, + 0.05176263302564621, + 0.031836096197366714, + 0.03280312940478325, + -0.05306887626647949, + 0.0751296803355217, + 0.007853830233216286, + -0.03479786962270737, + -0.0008172448724508286, + -0.019581403583288193, + 0.0011207624338567257, + 0.058312512934207916, + 0.02676708996295929, + 0.00859091803431511, + 0.0021422291174530983, + -0.044636260718107224, + 0.03409015014767647, + -0.032026100903749466, + 0.11473701894283295, + 0.06617042422294617, + 0.015520346350967884, + 0.04059837386012077, + 0.005340930074453354, + -0.035301968455314636, + -0.0752391442656517, + 0.05727509781718254, + 0.043912678956985474, + -0.026067981496453285, + 0.019499771296977997, + 0.060590069741010666, + -0.046020012348890305, + 0.08839106559753418, + 0.013256851583719254, + -0.01371961459517479, + 0.026423536241054535, + -0.04773329570889473, + 0.04620172828435898, + 0.06265450268983841, + -0.015434358268976212, + 0.05078808590769768, + -0.030986063182353973, + 0.0565127395093441, + 0.061163291335105896, + -0.09150287508964539, + -0.04668935388326645, + -0.008939883671700954, + -0.02446798048913479, + 0.025457177311182022, + 0.09199629724025726, + -0.0632307156920433, + -0.003209749236702919, + 0.03623364865779877, + -0.04287661612033844, + -0.024834370240569115, + 0.028979206457734108, + -0.015589846298098564, + -0.016861289739608765, + -0.024578209966421127, + 0.011902537196874619, + 0.02433544024825096, + -0.06909365952014923, + 0.036940060555934906, + 0.008511897176504135, + 0.021490387618541718, + -0.03275580704212189, + 0.015811150893568993, + 0.006363799795508385, + -0.013089841231703758, + -0.05089762806892395, + 0.012664316222071648, + 0.040065620094537735, + 0.0045433808118104935, + 0.018461642786860466, + -0.011409259401261806, + -0.08628358691930771, + -0.028506871312856674, + -0.043545424938201904, + 0.014133861288428307, + 0.014757659286260605, + -0.007810079492628574, + -0.05664723739027977, + 0.005982495844364166, + -0.031260378658771515, + -0.03412795811891556, + 0.005835369229316711, + 0.08807926625013351, + -0.07623422890901566, + 0.06397680193185806, + -0.008761722594499588, + -0.0024147694930434227, + -0.02402361109852791, + -0.039437536150217056, + 0.038130760192871094, + 0.03420870006084442, + 0.01828708127140999, + -0.08088166266679764, + 0.008070899173617363, + -0.058747030794620514, + -0.016414711251854897, + 0.007791649550199509, + 0.03728866949677467, + 0.011414555832743645, + -0.03592882305383682, + -0.10362247377634048, + 0.008158802054822445, + -0.059648364782333374, + -0.03001588210463524, + 0.05846205726265907, + 0.03796972706913948, + -0.029759153723716736, + 0.08839068561792374, + 0.015214415267109871, + 0.01153050921857357, + -0.044976428151130676, + -0.04810979217290878, + 0.02229764312505722, + 0.049450017511844635, + 0.05249151960015297, + 0.010856163688004017, + 0.02078171819448471, + 0.019478069618344307, + -0.013212203048169613, + 0.019681233912706375, + 0.05850540101528168, + 0.040312185883522034, + 0.012158304452896118, + 0.018736816942691803, + 0.033820632845163345, + 0.0789564847946167, + -0.03840504586696625, + -0.05302596464753151, + -0.011583568528294563, + 0.03829023614525795, + -0.030618302524089813, + 0.03171209990978241, + 0.03412092849612236, + 0.029437704011797905, + 0.01697186566889286, + -0.0162479430437088, + -0.019336581230163574, + -0.04806980863213539, + 0.04005665332078934, + -0.05400575324892998, + -0.053565315902233124, + -0.04512491077184677, + 0.06284303963184357, + 0.09372460842132568, + 0.003204282373189926, + -0.010787910781800747, + 0.007113994099199772, + 0.024702662602066994, + 0.002831178717315197, + -0.04153360798954964, + -0.005381220951676369, + 0.0162077397108078, + -0.06178746744990349, + 0.03063601441681385, + -0.07237537205219269, + 0.0566478967666626, + 0.0004073847085237503, + 0.04033561423420906, + 0.034208349883556366, + -0.03643691539764404, + -0.06485859304666519, + 0.00234314426779747, + 0.023937370628118515, + 0.01727699488401413, + 0.015712106600403786, + 0.0025768503546714783, + 0.02442970499396324, + -0.05173017829656601, + 0.06560733914375305, + 0.018253043293952942, + -0.062135741114616394, + -0.06955192238092422, + 0.019178681075572968, + -0.009437156841158867, + -0.0030983006581664085, + -0.017779942601919174, + -0.06672994792461395, + 0.031055737286806107, + 0.044334687292575836, + 0.007163724862039089, + -0.003793437033891678, + 0.04955937713384628, + 0.016003098338842392, + -0.03738771751523018 + ] + }, + "p244_314.wav": { + "name": "p244", + "embedding": [ + 0.058189090341329575, + 0.08328896015882492, + -0.019870830699801445, + 0.04033106565475464, + -0.05518024414777756, + 0.05683111771941185, + -0.14662623405456543, + 0.15226973593235016, + -0.017862394452095032, + 0.12585902214050293, + -0.04486176371574402, + 0.11680450290441513, + -0.0017784859519451857, + -0.18154475092887878, + -0.014797395095229149, + 0.05158832296729088, + -0.03777815029025078, + -0.03121890127658844, + -0.036893799901008606, + -0.019995711743831635, + 0.027361994609236717, + 0.04641467332839966, + 0.03780312463641167, + -0.011549239978194237, + 0.033320337533950806, + 0.06110489368438721, + -0.006291741039603949, + 0.04302414506673813, + 0.00817878358066082, + -0.05899279564619064, + -0.032528720796108246, + 0.09335144609212875, + -0.06489218771457672, + 0.0038668960332870483, + 0.04622727259993553, + -0.03809979557991028, + -0.020089540630578995, + -0.06341849267482758, + -0.026350483298301697, + 0.008132942020893097, + -0.03756358474493027, + 0.08730803430080414, + 0.04473651200532913, + -0.009048603475093842, + 0.04271477460861206, + 0.01764708012342453, + -0.014358106069266796, + -0.0492914542555809, + -0.11002098023891449, + 0.15273647010326385, + 0.07353895902633667, + 0.0044957115314900875, + -0.07629137486219406, + -0.04969843477010727, + 0.09433846175670624, + -0.012889936566352844, + -0.10728929936885834, + -0.04489409178495407, + 0.07027588039636612, + 0.14630010724067688, + -0.02927815169095993, + -0.028377022594213486, + 0.03878505155444145, + 0.11661815643310547, + 0.0734134167432785, + 0.0770699605345726, + 0.08848022669553757, + 0.1081513911485672, + -0.02446851134300232, + 0.027669355273246765, + 0.03946433216333389, + 0.06152413412928581, + 0.027478236705064774, + -0.006568976677954197, + 0.017857316881418228, + -0.013308866880834103, + -0.022153761237859726, + -0.035098083317279816, + -0.016449620947241783, + -0.007675682660192251, + -0.009231727570295334, + 0.013680900447070599, + 0.01681022346019745, + 0.05187910050153732, + -0.033181335777044296, + 0.058382004499435425, + 0.031433332711458206, + -0.020052604377269745, + 0.07001323252916336, + 0.017471078783273697, + 0.015135802328586578, + 0.05827289819717407, + -0.09021304547786713, + -0.07201912254095078, + 0.027981897816061974, + 0.008285891264677048, + 0.019174732267856598, + 0.0709538534283638, + 0.0399681031703949, + -0.019897790625691414, + 0.12926897406578064, + 0.049333423376083374, + -0.02260538749396801, + 0.021187951788306236, + -0.07937096059322357, + 0.12588301301002502, + 0.06677859276533127, + -0.018462661653757095, + 0.06658520549535751, + -0.0637638121843338, + 0.059569936245679855, + 0.04461345076560974, + -0.1420869529247284, + -0.06438659131526947, + 0.04538906738162041, + 0.024091191589832306, + -0.020170483738183975, + 0.14517489075660706, + 0.008319725282490253, + 0.05785977467894554, + 0.09981721639633179, + -0.08425429463386536, + -0.05074786767363548, + -0.0065811555832624435, + 0.0756840705871582, + -0.08425749838352203, + 0.057109665125608444, + 0.05769902467727661, + -0.03566598519682884, + 0.019076049327850342, + 0.07852409034967422, + -0.0024287491105496883, + 0.001566002145409584, + 0.020290274173021317, + -0.03629479557275772, + 0.03554604947566986, + -0.02274053357541561, + 0.00030595375574193895, + 0.020214663818478584, + 0.019848506897687912, + 0.05514785274863243, + -0.01920432038605213, + -0.033546604216098785, + -0.11244093626737595, + 0.012729580514132977, + 0.014519269578158855, + 0.09060710668563843, + -0.016394881531596184, + -0.025541752576828003, + -0.04367658495903015, + -0.06002841517329216, + 0.005690529011189938, + -0.005733620375394821, + 0.06822238862514496, + -0.02594325691461563, + 0.009213937446475029, + 0.09218312799930573, + 0.04258815944194794, + 0.012296490371227264, + -0.038743309676647186, + -0.028646690770983696, + 0.008165912702679634, + 0.06090899556875229, + -0.07143577933311462, + -0.05946118384599686, + -0.004967029672116041, + 0.028952833265066147, + -0.023998720571398735, + 0.05868818610906601, + 0.044262226670980453, + 0.029638690873980522, + 0.017709076404571533, + -0.0644371509552002, + 0.01606839708983898, + -0.08243139088153839, + -0.06460702419281006, + -0.011517878621816635, + 0.003940228838473558, + -0.05052667111158371, + 0.08392050862312317, + 0.03881645202636719, + 0.0732821524143219, + -0.014804787933826447, + -0.054264187812805176, + -0.07968159019947052, + 0.04153744876384735, + 0.060080237686634064, + -0.03577987104654312, + 0.02996356412768364, + 0.05711451917886734, + -0.030609674751758575, + 0.03967222571372986, + 0.06678580492734909, + 0.07600799947977066, + -0.026193827390670776, + 0.006314205937087536, + -0.07750841230154037, + 0.08896313607692719, + 0.09156018495559692, + -0.09196722507476807, + -0.07050235569477081, + -0.01968182437121868, + -0.07564805448055267, + 0.02069227211177349, + -0.017966702580451965, + 0.01135404221713543, + 0.03758442401885986, + 0.0012297378852963448, + -0.10626548528671265, + -0.09850363433361053, + 0.08135496824979782, + -0.08703020215034485, + 0.008375107310712337, + -0.08168002218008041, + 0.03508300334215164, + 0.10222812741994858, + 0.03336772322654724, + -0.016128789633512497, + -0.039159901440143585, + 0.04077637940645218, + -0.01705327443778515, + 0.023092731833457947, + 0.07385499775409698, + 0.04902614280581474, + -0.12242518365383148, + 0.003336608875542879, + -0.054648544639348984, + 0.04984314367175102, + -0.04390290379524231, + 0.14673185348510742, + 0.027665581554174423, + -0.04729912430047989, + -0.09152021259069443, + 0.040928665548563004, + -0.024485599249601364, + 0.05533696338534355, + 0.018295910209417343, + 0.060188330709934235, + 0.05471951887011528, + -0.06382420659065247, + 0.10541071742773056, + 0.0420050248503685, + -0.040507327765226364, + -0.07317264378070831, + -0.05019377917051315, + -0.033423732966184616, + 0.03914516419172287, + 0.02516632340848446, + -0.09057886898517609, + -0.02471725456416607, + 0.026833143085241318, + -0.015160108916461468, + 0.06940527260303497, + 0.13769495487213135, + 0.06705563515424728, + -0.1282826066017151 + ] + }, + "p244_084.wav": { + "name": "p244", + "embedding": [ + 0.051604341715574265, + 0.09811769425868988, + -0.014263994991779327, + 0.0610053651034832, + -0.0416816845536232, + 0.08750665187835693, + -0.12090042233467102, + 0.12208235263824463, + -0.03654148057103157, + 0.14760874211788177, + -0.07977951318025589, + 0.11291170120239258, + -0.02385380119085312, + -0.1708386391401291, + -0.02671956829726696, + 0.05178339406847954, + -0.026934895664453506, + 0.00409318134188652, + -0.02340730093419552, + 0.0346224382519722, + 0.03688936308026314, + 0.018883828073740005, + 0.0432685948908329, + -0.025522038340568542, + 0.017313934862613678, + 0.04718276485800743, + 0.010341386310756207, + 0.07456313073635101, + 0.039054397493600845, + -0.05054716020822525, + -0.04417014122009277, + 0.14093933999538422, + -0.0545610673725605, + 0.032919444143772125, + 0.0736430212855339, + 0.001354882726445794, + -0.0376882366836071, + -0.04634205996990204, + 0.019827060401439667, + -0.026523705571889877, + -0.04861428216099739, + 0.06439264863729477, + 0.02031162567436695, + -0.008433395996689796, + 0.05738072469830513, + 0.014285392127931118, + -0.03192329779267311, + -0.03650354593992233, + -0.0944942757487297, + 0.1373983472585678, + 0.06005046144127846, + -0.010155048221349716, + -0.059394270181655884, + -0.06725683808326721, + 0.07570242136716843, + 0.011265772394835949, + -0.11842174082994461, + -0.06226905807852745, + 0.08579135686159134, + 0.14969249069690704, + 0.002429233631119132, + -0.020549530163407326, + 0.0024186880327761173, + 0.11962328106164932, + 0.0493924543261528, + 0.13044627010822296, + 0.056852683424949646, + 0.10640191286802292, + 0.022912979125976562, + 0.07021445035934448, + 0.05065598338842392, + 0.04676847159862518, + 0.03733495622873306, + -0.012725704349577427, + 0.03820490837097168, + -0.019375376403331757, + -0.013355287723243237, + 0.02856229618191719, + -0.00545619847252965, + -0.02089039795100689, + -0.006917298771440983, + -0.0023123316932469606, + 0.006824534386396408, + 0.015750303864479065, + -0.02445332705974579, + 0.05177246406674385, + 0.024833135306835175, + -0.0024375231005251408, + 0.05845513567328453, + 0.04720700904726982, + -0.004579523578286171, + 0.048411156982183456, + -0.07170287519693375, + -0.10785875469446182, + 0.02008138969540596, + -0.0035158831160515547, + 0.022593645378947258, + 0.07504834234714508, + 0.020558828487992287, + -0.0062482766807079315, + 0.08665294200181961, + 0.046918921172618866, + 0.002952472073957324, + 0.05231308937072754, + -0.09236903488636017, + 0.13568313419818878, + 0.05673353374004364, + -0.002633399562910199, + 0.05058702081441879, + -0.05336853116750717, + 0.09097936749458313, + 0.08665481209754944, + -0.13190144300460815, + -0.05041259527206421, + 0.02217324823141098, + -0.02286217175424099, + -0.029726730659604073, + 0.11200840026140213, + 0.004216296132653952, + 0.00020546141604427248, + 0.10521154850721359, + -0.10657675564289093, + -0.07603424042463303, + -0.028257951140403748, + 0.04241570830345154, + -0.1027575209736824, + 0.056877363473176956, + 0.01674332097172737, + -0.020381741225719452, + -0.02296331711113453, + 0.09616480767726898, + -0.015201859176158905, + 0.017796436324715614, + 0.039782628417015076, + -0.05108533799648285, + 0.037633053958415985, + -0.055824849754571915, + 0.02805270068347454, + 0.04100172221660614, + 0.013236277736723423, + 0.06155730411410332, + -0.009169825352728367, + -0.009187893010675907, + -0.09479092806577682, + -0.0055715106427669525, + 0.07103476673364639, + 0.05320173129439354, + -0.012456915341317654, + -0.03242434561252594, + -0.028705483302474022, + -0.07609817385673523, + 0.05597716569900513, + -0.02447592467069626, + 0.06675741076469421, + 0.006179492454975843, + -0.017926599830389023, + 0.09886594116687775, + 0.000275897269602865, + 0.013314693234860897, + -0.08470045775175095, + -0.038066793233156204, + 0.03989410772919655, + 0.05198024585843086, + -0.1146978810429573, + -0.054715439677238464, + 0.011165555566549301, + -0.0004064561799168587, + -0.02484569512307644, + 0.016470544040203094, + 0.06268839538097382, + 0.023333106189966202, + 0.03522251173853874, + -0.057563938200473785, + -0.007925435900688171, + -0.10611504316329956, + -0.07634145766496658, + -0.03927495330572128, + -0.031650058925151825, + -0.008765924721956253, + 0.07862423360347748, + 0.00533115491271019, + 0.023257698863744736, + 0.0031812211964279413, + -0.049759391695261, + -0.08077029883861542, + 0.07584704458713531, + 0.06460115313529968, + 0.013984402641654015, + 0.07015544921159744, + 0.024263303726911545, + -0.059308186173439026, + 0.04224339872598648, + 0.03889017552137375, + 0.1080479845404625, + -0.02980426885187626, + -0.0014536608941853046, + -0.10237404704093933, + 0.07834376394748688, + 0.12810739874839783, + -0.10312961786985397, + -0.09728986769914627, + -0.008417700417339802, + -0.06349428743124008, + 0.03650590032339096, + -0.06534174829721451, + -0.022363172844052315, + 0.048402391374111176, + -0.03054070472717285, + -0.0976184755563736, + -0.11152041703462601, + 0.09158995002508163, + -0.08530271798372269, + -0.028057396411895752, + -0.07118166983127594, + 0.05288759246468544, + 0.05012667179107666, + 0.03095475398004055, + -0.06199873983860016, + 0.013133074156939983, + 0.07272883504629135, + -0.061854228377342224, + -0.009538339450955391, + 0.042992960661649704, + 0.01094140112400055, + -0.09632518142461777, + 0.014837837778031826, + -0.059064172208309174, + 0.049364279955625534, + -0.09104690700769424, + 0.16856735944747925, + -0.036067042499780655, + -0.06645169109106064, + -0.06130995973944664, + 0.05301263928413391, + -0.008653507567942142, + 0.00774807995185256, + 0.04118992015719414, + 0.05217945948243141, + 0.010038829408586025, + -0.0882728099822998, + 0.1309017390012741, + 0.0032823383808135986, + 0.004697061609476805, + -0.06261685490608215, + -0.03354364633560181, + -0.07051791995763779, + 0.039884086698293686, + 0.0049809785559773445, + -0.11908350884914398, + -0.0051313587464392185, + 0.04084852710366249, + -0.010133069939911366, + 0.04241776093840599, + 0.14744196832180023, + 0.03705946356058121, + -0.09257277101278305 + ] + }, + "p244_381.wav": { + "name": "p244", + "embedding": [ + 0.04341677948832512, + 0.1073475107550621, + -0.008771320804953575, + 0.025793597102165222, + -0.06034603342413902, + 0.05284808203577995, + -0.12969771027565002, + 0.15179681777954102, + -0.03252333030104637, + 0.13070034980773926, + -0.07093685865402222, + 0.12346307933330536, + -0.02149377390742302, + -0.1783321499824524, + -0.029719378799200058, + 0.05239094793796539, + -0.042203910648822784, + -0.023475302383303642, + -0.03338625654578209, + -0.02097449079155922, + 0.04296841844916344, + 0.04079088196158409, + 0.03570307791233063, + 0.006935593672096729, + 0.019928239285945892, + 0.06358444690704346, + 0.012185068801045418, + 0.05421772599220276, + 0.024306144565343857, + -0.05819404125213623, + -0.044390082359313965, + 0.10158322751522064, + -0.03824760019779205, + 0.016141919419169426, + 0.05444764718413353, + -0.028317561373114586, + 0.0009654347086325288, + -0.05414428561925888, + -0.018788300454616547, + 0.010425617918372154, + -0.03227647393941879, + 0.07732071727514267, + 0.033353567123413086, + -0.006563347764313221, + 0.04413064569234848, + 0.03297431766986847, + -0.01601649448275566, + -0.04956702142953873, + -0.10220091789960861, + 0.16640128195285797, + 0.08102753013372421, + -0.01479036919772625, + -0.061633482575416565, + -0.06500162929296494, + 0.09764530509710312, + -0.019478721544146538, + -0.11207052320241928, + -0.03911671042442322, + 0.08399231731891632, + 0.14033445715904236, + -0.020377619192004204, + -0.03329949826002121, + 0.032989464700222015, + 0.1351226419210434, + 0.03600941225886345, + 0.08121860027313232, + 0.07209289073944092, + 0.09634991735219955, + -0.03067067079246044, + 0.02809285745024681, + 0.036013782024383545, + 0.06857641786336899, + 0.024744777008891106, + -0.0057105920277535915, + 0.023424573242664337, + -0.013522958382964134, + -0.013475018553435802, + 0.0030408918391913176, + -0.02372049167752266, + -0.017203763127326965, + -0.023289095610380173, + 0.020534060895442963, + -0.004774767439812422, + 0.014394199475646019, + -0.021375581622123718, + 0.07199624180793762, + 0.01304722111672163, + 0.0014974919613450766, + 0.07224538922309875, + 0.030003635212779045, + 0.021132756024599075, + 0.05846944451332092, + -0.06949639320373535, + -0.08348613232374191, + 0.025071745738387108, + 0.002429547719657421, + 0.025900837033987045, + 0.07609982788562775, + 0.028654366731643677, + -0.018264619633555412, + 0.1265159696340561, + 0.06027061864733696, + -0.017972778528928757, + 0.025379231199622154, + -0.0926315188407898, + 0.13038262724876404, + 0.07949034869670868, + -0.01922530308365822, + 0.05550000071525574, + -0.05309709161520004, + 0.07634508609771729, + 0.048877447843551636, + -0.13367250561714172, + -0.07862475514411926, + 0.02520143985748291, + 0.02739669941365719, + -0.021427828818559647, + 0.11429973691701889, + -0.006505858153104782, + 0.04265352711081505, + 0.10180032253265381, + -0.07890903949737549, + -0.056678272783756256, + -0.021216150373220444, + 0.05551435053348541, + -0.08390554040670395, + 0.057996638119220734, + 0.06116005405783653, + -0.02618424966931343, + 0.014149047434329987, + 0.07943625003099442, + -0.00888913869857788, + 0.009824625216424465, + 0.024802178144454956, + -0.05356365442276001, + 0.013201368972659111, + -0.03795601427555084, + 0.003438686951994896, + 0.023607995361089706, + 0.04340258240699768, + 0.04475387558341026, + -0.005942606832832098, + -0.03690020367503166, + -0.11095878481864929, + 0.01246271189302206, + 0.023430785164237022, + 0.06750155240297318, + -0.0032700037118047476, + -0.03140381723642349, + -0.03426390513777733, + -0.05181468650698662, + -0.004592780023813248, + -0.004905383102595806, + 0.06533487141132355, + -0.03434694558382034, + 0.00934026949107647, + 0.0926489531993866, + 0.03468146175146103, + -0.006690116599202156, + -0.05517193675041199, + -0.03978569060564041, + 0.015130773186683655, + 0.04002753272652626, + -0.07221086323261261, + -0.0672585517168045, + -0.006059734150767326, + 0.034211110323667526, + -0.016887914389371872, + 0.05225538834929466, + 0.046110399067401886, + 0.01715187355875969, + 0.03540686517953873, + -0.06373138725757599, + 0.021797746419906616, + -0.09525369107723236, + -0.07104472070932388, + -0.016137883067131042, + -0.00022903134231455624, + -0.028076112270355225, + 0.07450765371322632, + 0.02187679521739483, + 0.05859164148569107, + 0.0001997953950194642, + -0.05988259240984917, + -0.07644517719745636, + 0.05538828298449516, + 0.07648622989654541, + -0.0015153571730479598, + 0.060034848749637604, + 0.05793853849172592, + -0.03835876286029816, + 0.06262432038784027, + 0.05504261702299118, + 0.09003640711307526, + -0.022267840802669525, + 0.01021746639162302, + -0.07668166607618332, + 0.06484633684158325, + 0.08177302032709122, + -0.10056883096694946, + -0.08299553394317627, + -0.03199594467878342, + -0.0659000426530838, + 0.037376366555690765, + -0.015332475304603577, + 0.004760111216455698, + 0.034978121519088745, + 0.0030747801065444946, + -0.09585627168416977, + -0.0832873210310936, + 0.08112706243991852, + -0.07522360235452652, + 0.0017717391019687057, + -0.06651327013969421, + 0.04485924169421196, + 0.11069697141647339, + 0.03757959231734276, + -0.030086612328886986, + -0.03303404897451401, + 0.05046907067298889, + -0.03137282282114029, + 0.00520274369046092, + 0.039818476885557175, + 0.04454108700156212, + -0.10190726816654205, + 0.024199089035391808, + -0.07636377215385437, + 0.04972470551729202, + -0.05510641634464264, + 0.1527385711669922, + 0.016285350546240807, + -0.05682217329740524, + -0.08974766731262207, + 0.04562423378229141, + -0.03084569051861763, + 0.04445897042751312, + 0.019047817215323448, + 0.047827742993831635, + 0.03978996351361275, + -0.07643681764602661, + 0.12102888524532318, + 0.0374063216149807, + -0.0512007437646389, + -0.06802412867546082, + -0.039206959307193756, + -0.0369035080075264, + 0.032420527189970016, + 0.030841780826449394, + -0.08794756978750229, + -0.04251791536808014, + 0.016675978899002075, + -0.016585037112236023, + 0.08672520518302917, + 0.14482924342155457, + 0.05615047737956047, + -0.12799817323684692 + ] + }, + "p244_213.wav": { + "name": "p244", + "embedding": [ + 0.06063387542963028, + 0.09088286012411118, + -0.02059152163565159, + 0.032020073384046555, + -0.05988572537899017, + 0.0723220556974411, + -0.12940607964992523, + 0.12636318802833557, + -0.045298121869564056, + 0.14331963658332825, + -0.07684795558452606, + 0.12841464579105377, + -0.012536706402897835, + -0.1828201413154602, + -0.044974327087402344, + 0.051794108003377914, + -0.04740993306040764, + -0.041843660175800323, + -0.02893747203052044, + -0.02371636964380741, + 0.045474354177713394, + 0.03983817994594574, + 0.021494602784514427, + 0.026943404227495193, + 0.019927185028791428, + 0.07009950280189514, + -0.016969742253422737, + 0.030348345637321472, + 0.007913130335509777, + -0.05619708448648453, + -0.04856492951512337, + 0.11403857171535492, + -0.04882218688726425, + 0.02130783721804619, + 0.04543076828122139, + -0.002714884001761675, + 0.0006889792857691646, + -0.07370182126760483, + -0.024890892207622528, + -0.005919487681239843, + -0.04606601595878601, + 0.07007649540901184, + 0.030724164098501205, + -0.018031666055321693, + 0.03520209714770317, + 0.012746227905154228, + -0.016881104558706284, + -0.049773335456848145, + -0.0956871286034584, + 0.15483318269252777, + 0.06869284808635712, + -0.0011774423765018582, + -0.0601097047328949, + -0.05916410684585571, + 0.10911138355731964, + -0.015386508777737617, + -0.11659061163663864, + -0.027826296165585518, + 0.08022873848676682, + 0.165179044008255, + -0.036213479936122894, + -0.03594476357102394, + 0.02946079894900322, + 0.1263713389635086, + 0.05523587018251419, + 0.09272502362728119, + 0.08768778294324875, + 0.11858895421028137, + -0.020024627447128296, + 0.008001770824193954, + 0.06450255215167999, + 0.07732878625392914, + 0.07727347314357758, + -0.024613752961158752, + 0.025937147438526154, + 0.000599780585616827, + -0.020001614466309547, + -0.001691059791482985, + -0.03903985023498535, + -0.013570407405495644, + -0.020673740655183792, + -0.006278165150433779, + 0.008135601878166199, + 0.0234671700745821, + -0.0320683978497982, + 0.05334707722067833, + 0.048380665481090546, + -0.022934040054678917, + 0.059396419674158096, + 0.04593002051115036, + 0.013499906286597252, + 0.06337950378656387, + -0.08464644849300385, + -0.08219234645366669, + 0.04468477889895439, + 0.011790798977017403, + 0.022599758580327034, + 0.08553504943847656, + 0.048905011266469955, + -0.019148368388414383, + 0.1093948557972908, + 0.044121526181697845, + -0.0097575131803751, + 0.015011338517069817, + -0.09894067049026489, + 0.13299092650413513, + 0.09569236636161804, + -0.032668206840753555, + 0.03816305845975876, + -0.050188012421131134, + 0.08525186777114868, + 0.0781351774930954, + -0.14882831275463104, + -0.06755466014146805, + 0.03740571439266205, + 0.014290702529251575, + -0.0098529988899827, + 0.10992084443569183, + -0.007624533027410507, + 0.036408040672540665, + 0.09409704059362411, + -0.07637786865234375, + -0.052537258714437485, + -0.034368086606264114, + 0.04037864878773689, + -0.09293404221534729, + 0.06529705226421356, + 0.04387310892343521, + 7.978349458426237e-06, + 0.0015003073494881392, + 0.0818190947175026, + -0.015662573277950287, + -0.02210635133087635, + 0.014920007437467575, + -0.04609011486172676, + 0.01984061487019062, + -0.018978284671902657, + 0.006479289848357439, + 0.03024590015411377, + 0.02935195341706276, + 0.03965607285499573, + -0.01035943441092968, + -0.021309878677129745, + -0.11072330176830292, + 0.02414010278880596, + 0.033938195556402206, + 0.08211563527584076, + -0.0038225895259529352, + -0.026569539681077003, + -0.03467546030879021, + -0.06863697618246078, + 0.02942180633544922, + -0.0234998669475317, + 0.06906381249427795, + -0.009515669196844101, + 0.009773293510079384, + 0.09443320333957672, + 0.028624791651964188, + -0.005111118778586388, + -0.051091037690639496, + -0.021682217717170715, + 0.019416645169258118, + 0.06139908358454704, + -0.08284991979598999, + -0.07208112627267838, + -0.0005695982254110277, + 0.025722220540046692, + -0.02664319798350334, + 0.05433739349246025, + 0.04429156333208084, + 0.015179401263594627, + 0.02893536165356636, + -0.0710892453789711, + 0.006091423332691193, + -0.11605669558048248, + -0.06645922362804413, + -0.016112936660647392, + -0.02972782775759697, + -0.005067059304565191, + 0.0714607834815979, + 0.023215025663375854, + 0.03936361148953438, + -0.02654155343770981, + -0.07252992689609528, + -0.07677987217903137, + 0.06006006896495819, + 0.06129022315144539, + 0.007644683122634888, + 0.035955075174570084, + 0.05441352725028992, + -0.022394627332687378, + 0.05596000701189041, + 0.06422705948352814, + 0.10887253284454346, + -0.029055092483758926, + 0.02862909436225891, + -0.06333247572183609, + 0.09343652427196503, + 0.08779172599315643, + -0.08787742257118225, + -0.0927564799785614, + -0.031325407326221466, + -0.05740939825773239, + 0.03480291739106178, + -0.03157632425427437, + -0.0014722924679517746, + 0.024180792272090912, + -0.008458137512207031, + -0.10711413621902466, + -0.08941973745822906, + 0.09954413771629333, + -0.07037326693534851, + -0.00012685442925430834, + -0.09443262219429016, + 0.050966449081897736, + 0.09769462049007416, + 0.029412291944026947, + -0.0374615453183651, + 0.007662616670131683, + 0.04703688994050026, + -0.041162941604852676, + 0.0004979684017598629, + 0.04832858592271805, + 0.03411160409450531, + -0.12340855598449707, + -0.008817218244075775, + -0.0711788758635521, + 0.05617929995059967, + -0.057425230741500854, + 0.16144156455993652, + 0.003938300535082817, + -0.05674717202782631, + -0.0717567503452301, + 0.05079909786581993, + -0.010037404485046864, + 0.05019071698188782, + 0.04167948290705681, + 0.07027153670787811, + 0.023701779544353485, + -0.07378491014242172, + 0.11376636475324631, + 0.047560617327690125, + -0.0373103991150856, + -0.07237299531698227, + -0.04365935176610947, + -0.041462577879428864, + 0.024233229458332062, + 0.009656170383095741, + -0.09177235513925552, + -0.01771819218993187, + 0.026168525218963623, + -0.013938544318079948, + 0.07142147421836853, + 0.14851415157318115, + 0.0678894966840744, + -0.11533859372138977 + ] + }, + "p244_199.wav": { + "name": "p244", + "embedding": [ + 0.0515253059566021, + 0.0781516581773758, + 0.015591202303767204, + -0.005454557947814465, + -0.03741706162691116, + 0.09951154887676239, + -0.07629392296075821, + 0.08876053988933563, + -0.013808196410536766, + 0.055125392973423004, + -0.06339573860168457, + 0.07058443129062653, + -0.002876791637390852, + -0.15375757217407227, + -0.02818797528743744, + 0.054943330585956573, + -0.052403684705495834, + -0.007417659275233746, + -0.037122081965208054, + -0.022135278210043907, + -0.0006558820605278015, + 0.017426174134016037, + 0.05053384602069855, + 0.00025323405861854553, + 0.04605891928076744, + 0.03659071773290634, + 0.005085747689008713, + 0.03032520040869713, + 0.0009314244380220771, + -0.029023315757513046, + -0.037253063172101974, + 0.0771118551492691, + -0.04358398914337158, + -0.001609722850844264, + 0.051771130412817, + -0.0059588197618722916, + 0.04467284679412842, + -0.09088999032974243, + -0.040643706917762756, + 0.030002977699041367, + -0.057238172739744186, + 0.08236318826675415, + 0.06345027685165405, + 0.013683294877409935, + 0.03155011683702469, + 0.013654729351401329, + -0.013940221630036831, + -0.047814320772886276, + -0.09062564373016357, + 0.14417046308517456, + 0.030901728197932243, + 0.016144953668117523, + -0.0670660138130188, + -0.037469156086444855, + 0.08255068957805634, + -0.01054874062538147, + -0.06896492838859558, + -0.016996651887893677, + 0.060067903250455856, + 0.09527142345905304, + 0.025904245674610138, + -0.013279530219733715, + 0.017953775823116302, + 0.08883076906204224, + 0.014384515583515167, + 0.04394923895597458, + 0.07358303666114807, + 0.0882086306810379, + 0.010242545045912266, + 0.016005199402570724, + 0.06312528252601624, + 0.030802391469478607, + 0.017024725675582886, + -0.018670205026865005, + 0.02225683629512787, + -0.012782796286046505, + -0.01938924752175808, + -0.004006456583738327, + -0.01123197190463543, + 0.00039204536005854607, + 0.025888491421937943, + 0.02536902390420437, + 0.014358571730554104, + 0.028790762647986412, + -0.032772935926914215, + 0.0362735390663147, + -0.01699935644865036, + 0.07525705546140671, + 0.07198284566402435, + 0.0420040488243103, + 0.0051080710254609585, + 0.02759743109345436, + -0.03666677698493004, + -0.0857694074511528, + 0.006321651395410299, + 0.029647931456565857, + 0.0049115633592009544, + 0.02932656928896904, + 0.015420947223901749, + -0.03279978036880493, + 0.09893001616001129, + 0.027584057301282883, + -0.009622467681765556, + 0.016130313277244568, + -0.07808174192905426, + 0.06371686607599258, + 0.05084025859832764, + 0.014175447635352612, + 0.05897212028503418, + -0.025428589433431625, + 0.06895413994789124, + 0.07201745361089706, + -0.10541494190692902, + -0.03378060460090637, + 0.022057391703128815, + 0.019664252176880836, + 0.028965357691049576, + 0.11104699224233627, + -0.01027052104473114, + 0.030104324221611023, + 0.05868934094905853, + -0.06381748616695404, + -0.019420616328716278, + 0.029764844104647636, + 0.01786114275455475, + -0.006150787230581045, + -0.007064702920615673, + 0.029903193935751915, + -0.0004061249492224306, + -0.03964140638709068, + 0.0388387069106102, + 0.016306452453136444, + 0.007765031419694424, + -0.01647040620446205, + -0.000404862075811252, + 0.02117948979139328, + -0.011917376890778542, + -0.016646403819322586, + 0.05356692522764206, + 0.05714408680796623, + 0.007617838680744171, + 0.029117939993739128, + -0.05081919953227043, + -0.09269057959318161, + -0.01836255006492138, + -0.004589974880218506, + 0.045294612646102905, + 0.004566108342260122, + -0.030165761709213257, + -0.05856022983789444, + -0.01573970727622509, + 0.01829385571181774, + -0.0027406129520386457, + 0.05774373933672905, + 0.05793432518839836, + -0.03559926897287369, + 0.05678500235080719, + 0.004939840640872717, + 0.001797561882995069, + -0.026711363345384598, + -0.052105896174907684, + 0.010459581390023232, + 0.04185253009200096, + -0.03387986123561859, + -0.045205067843198776, + 0.014369356445968151, + -0.03208669275045395, + -0.01850346103310585, + 0.008973083458840847, + 0.039684563875198364, + 0.00264127179980278, + -0.0026501468382775784, + -0.07483922690153122, + 0.012152040377259254, + -0.06846988201141357, + -0.05148279294371605, + 0.041076380759477615, + 0.028126057237386703, + -0.015078878030180931, + 0.0859799012541771, + 0.0395595021545887, + 0.03200735151767731, + -0.02169964089989662, + -0.046125270426273346, + 0.0105536337941885, + 0.059758510440588, + 0.04317406937479973, + 0.011927935294806957, + 0.046162813901901245, + 0.02862430177628994, + -0.021896351128816605, + 0.0499800369143486, + 0.040697354823350906, + 0.052120983600616455, + -0.0375836044549942, + 0.00671741645783186, + 0.003652925370261073, + 0.0829562097787857, + 0.02082514390349388, + -0.07640743255615234, + -0.05182170122861862, + 0.01458804216235876, + -0.027261679992079735, + 0.022989584133028984, + -0.005417493637651205, + 0.012950967065989971, + 0.021657045930624008, + -0.01648538000881672, + -0.06083444878458977, + -0.08671491593122482, + 0.03897317871451378, + -0.05076318979263306, + -0.016939355060458183, + -0.03590865433216095, + 0.04006796330213547, + 0.10057501494884491, + 0.006605468690395355, + 0.004110180772840977, + 0.0146378418430686, + 0.01325188484042883, + -0.021154653280973434, + -0.03682897612452507, + 0.017494268715381622, + 0.020619060844182968, + -0.08293524384498596, + 0.010754333809018135, + -0.05873020738363266, + 0.0646713599562645, + 0.005118402652442455, + 0.11330229043960571, + 0.034359484910964966, + -0.028638577088713646, + -0.060726698487997055, + 0.0177301112562418, + -0.015682987868785858, + 0.033456556499004364, + 2.7138739824295044e-05, + 0.02812274917960167, + 0.04326074570417404, + -0.021995989605784416, + 0.08204948157072067, + 0.03323245048522949, + -0.06520384550094604, + -0.035167545080184937, + 0.009964263066649437, + -0.019823363050818443, + 0.015459887683391571, + -0.018587229773402214, + -0.059443216770887375, + 0.01209951937198639, + 0.0385206863284111, + 0.010227099061012268, + 0.029104044660925865, + 0.08205370604991913, + 0.0484386645257473, + -0.052750274538993835 + ] + }, + "p244_411.wav": { + "name": "p244", + "embedding": [ + 0.059642016887664795, + 0.07965384423732758, + -0.017480334267020226, + 0.032382380217313766, + -0.07022543251514435, + 0.06445472687482834, + -0.10327498614788055, + 0.13157373666763306, + -0.036996614187955856, + 0.1204289123415947, + -0.07153010368347168, + 0.155553936958313, + 0.010817132890224457, + -0.16849181056022644, + -0.04421375319361687, + 0.021253231912851334, + -0.028402701020240784, + -0.012568382546305656, + -0.030665863305330276, + -0.03868956118822098, + 0.06314156204462051, + 0.046973612159490585, + 0.06632973253726959, + -0.01128307543694973, + 0.02419472299516201, + 0.06172002851963043, + 0.015814218670129776, + 0.06072750687599182, + 0.035288579761981964, + -0.08502109348773956, + -0.062420718371868134, + 0.08902939409017563, + -0.038452401757240295, + 0.008308952674269676, + 0.043627720326185226, + -0.027807191014289856, + 0.009850320406258106, + -0.06962423026561737, + -0.04141726344823837, + 0.022096317261457443, + -0.02695256471633911, + 0.06750936806201935, + 0.018040001392364502, + -0.05057733878493309, + 0.05104286968708038, + -0.006933089345693588, + -0.017996080219745636, + -0.03484554588794708, + -0.1068103164434433, + 0.14827364683151245, + 0.06700162589550018, + 0.006629972718656063, + -0.07882218807935715, + -0.06683379411697388, + 0.11319448798894882, + -0.01637943647801876, + -0.09796091169118881, + -0.0016170380404219031, + 0.04051607847213745, + 0.1608947515487671, + -0.026370510458946228, + -0.03198838233947754, + 0.057372357696294785, + 0.08653994649648666, + 0.0500403568148613, + 0.06373332440853119, + 0.11838296055793762, + 0.08643607795238495, + -0.020476695150136948, + 0.043690260499715805, + 0.0178915336728096, + 0.11327745765447617, + 0.04557464271783829, + -0.013138031587004662, + 0.025271516293287277, + 0.0052980175241827965, + -0.028383862227201462, + -0.010867412202060223, + -0.034048523753881454, + -0.011182970367372036, + -0.009061112999916077, + 0.008970201015472412, + 0.04037800058722496, + 0.012237053364515305, + -0.06042659282684326, + 0.07673083990812302, + 0.003307380247861147, + -0.013342324644327164, + 0.03753608465194702, + 0.01959865540266037, + 0.002677563112229109, + 0.05220995843410492, + -0.07945673167705536, + -0.11511530727148056, + 0.01810387335717678, + 0.006329129450023174, + 0.009757252410054207, + 0.08746608346700668, + 0.05137185379862785, + -0.023995978757739067, + 0.1150900349020958, + 0.07158038765192032, + -0.02294269949197769, + 0.031177883967757225, + -0.06514222919940948, + 0.09730362147092819, + 0.1279926598072052, + -0.017209332436323166, + 0.0668187066912651, + -0.06833834946155548, + 0.09236054122447968, + 0.05210068076848984, + -0.13655820488929749, + -0.08375281095504761, + 0.01709597557783127, + 0.007149823009967804, + 0.02225184068083763, + 0.10935956239700317, + -0.02106388472020626, + 0.06052929908037186, + 0.09163307398557663, + -0.07616027444601059, + -0.047462575137615204, + -0.043469011783599854, + 0.05833851546049118, + -0.059093162417411804, + 0.07242715358734131, + 0.027418464422225952, + -0.000650362460874021, + -0.013235678896307945, + 0.056720178574323654, + -0.03717149794101715, + -0.001577108516357839, + 0.037457406520843506, + -0.05954141914844513, + 0.008438026532530785, + -0.03850235044956207, + -0.013227644376456738, + 0.06570252031087875, + 0.04044290632009506, + 0.04002637788653374, + -0.0018446396570652723, + -0.022247005254030228, + -0.10768553614616394, + 0.017005234956741333, + 0.028609465807676315, + 0.06350462883710861, + -0.004099434241652489, + -0.046471428126096725, + -0.040874313563108444, + -0.06923195719718933, + 0.02761455439031124, + -0.005744852125644684, + 0.06792791187763214, + -0.02293807826936245, + 0.03558617830276489, + 0.0674629658460617, + 0.024610860273241997, + -0.011549009941518307, + -0.026513127610087395, + -0.02507929317653179, + 0.002460843650624156, + 0.04694586619734764, + -0.05512771010398865, + -0.08525311946868896, + -0.02097456157207489, + 0.009609050117433071, + -0.039024487137794495, + 0.049171432852745056, + 0.04547758400440216, + 0.013903401792049408, + 0.044464945793151855, + -0.07740233838558197, + -0.011149285361170769, + -0.12093240022659302, + -0.05409657210111618, + -0.015307456254959106, + -0.019875865429639816, + -0.021997680887579918, + 0.0676405131816864, + 0.049756284803152084, + 0.05250708758831024, + -0.0076362574473023415, + -0.044720955193042755, + -0.07624244689941406, + 0.034617550671100616, + 0.05160931497812271, + 0.027246862649917603, + 0.050259172916412354, + 0.07049086689949036, + -0.011070910841226578, + 0.08765627443790436, + 0.07695408165454865, + 0.054932139813899994, + -0.0009012601221911609, + 0.000523355498444289, + -0.06777406483888626, + 0.10285179316997528, + 0.09677831828594208, + -0.0737035721540451, + -0.10990612208843231, + -0.04993361234664917, + -0.10232850164175034, + 0.052597083151340485, + -0.013450665399432182, + 0.0073304190300405025, + 0.04062133654952049, + 0.004405973479151726, + -0.1042993888258934, + -0.08016376197338104, + 0.10289587825536728, + -0.0550079345703125, + -0.01939805969595909, + -0.0683455765247345, + 0.026967894285917282, + 0.11921452730894089, + 0.003333637025207281, + -0.012289858423173428, + -0.013178294524550438, + 0.05088487267494202, + -0.041406817734241486, + -0.003390500321984291, + 0.037062354385852814, + 0.027096610516309738, + -0.11242251098155975, + 0.016056720167398453, + -0.06145979464054108, + 0.036496102809906006, + -0.057857006788253784, + 0.1338413655757904, + 0.0107206329703331, + -0.053046815097332, + -0.08198243379592896, + 0.08529528975486755, + -0.017694635316729546, + 0.04824059456586838, + 0.04041486233472824, + 0.05968394875526428, + 0.010600298643112183, + -0.12796449661254883, + 0.10162600874900818, + 0.041107047349214554, + -0.06083913892507553, + -0.09762345999479294, + -0.05575675889849663, + -0.017922712489962578, + 0.018007460981607437, + 0.021308384835720062, + -0.049284156411886215, + -0.025588875636458397, + 0.011685170233249664, + -0.010148978792130947, + 0.0561300590634346, + 0.1417427659034729, + 0.05263352394104004, + -0.11148035526275635 + ] + }, + "p244_388.wav": { + "name": "p244", + "embedding": [ + 0.04279913753271103, + 0.07683821767568588, + -0.026776723563671112, + 0.07242654263973236, + -0.041509196162223816, + 0.08325468748807907, + -0.11956910789012909, + 0.0950818732380867, + -0.06007285416126251, + 0.13210678100585938, + -0.05847552418708801, + 0.08813778311014175, + -0.026149384677410126, + -0.166579008102417, + -0.03903099149465561, + 0.06916274130344391, + -0.06989790499210358, + -0.03631317615509033, + -0.06221272796392441, + 0.021014785394072533, + 0.02736428566277027, + 0.026379816234111786, + 0.05020748823881149, + -0.01987309381365776, + 0.02562793344259262, + 0.04216475039720535, + 0.004907548427581787, + 0.06414937973022461, + 0.034772150218486786, + -0.05441029369831085, + -0.02326892502605915, + 0.11783410608768463, + -0.03291363641619682, + 0.00463519711047411, + 0.037077855318784714, + 0.017232390120625496, + -0.006739448290318251, + -0.07905983924865723, + -0.017322368919849396, + -0.014660489745438099, + -0.057602040469646454, + 0.07148434221744537, + 0.03681974112987518, + -0.012246139347553253, + 0.03827977180480957, + -0.025573786348104477, + -0.05503149330615997, + -0.05449046194553375, + -0.11662720143795013, + 0.15778791904449463, + 0.07166272401809692, + 0.02231377176940441, + -0.06547696888446808, + -0.07713396847248077, + 0.10203243792057037, + 0.010455077514052391, + -0.11760962009429932, + -0.07778866589069366, + 0.06702810525894165, + 0.19254183769226074, + -0.0036716212052851915, + 0.015085672028362751, + 0.017253438010811806, + 0.13102467358112335, + 0.07079978287220001, + 0.10580535233020782, + 0.06114555895328522, + 0.08859376609325409, + 0.049201663583517075, + 0.04329535365104675, + 0.06624916940927505, + 0.05105634033679962, + 0.008615442551672459, + -0.0015586973167955875, + 0.02643129602074623, + -0.017454002052545547, + -0.03980826586484909, + 0.0027183685451745987, + -0.013855315744876862, + -0.01874593272805214, + -0.007366466335952282, + 0.0052628587000072, + 0.017303651198744774, + 0.03559975326061249, + -0.03322942554950714, + 0.04605250805616379, + -0.002605109941214323, + -0.03245530650019646, + 0.05909179896116257, + 0.023929957300424576, + -0.004493983928114176, + 0.03573611378669739, + -0.03361702337861061, + -0.10492219030857086, + -0.020809030160307884, + 0.016633985564112663, + 0.006826149765402079, + 0.057173892855644226, + 0.021113403141498566, + -0.036426786333322525, + 0.10008427500724792, + 0.03455492854118347, + -0.0063270339742302895, + 0.03484489023685455, + -0.08495824038982391, + 0.10796129703521729, + 0.057817794382572174, + 0.01556601282209158, + 0.03847911208868027, + -0.02231740392744541, + 0.06039247289299965, + 0.0912465751171112, + -0.14322376251220703, + -0.046759672462940216, + 0.05461625009775162, + -0.015554108656942844, + -0.008884796872735023, + 0.11654456704854965, + 0.0292135551571846, + 0.012401707470417023, + 0.09945473819971085, + -0.09154458343982697, + -0.05989929288625717, + -0.015061425045132637, + 0.07276488840579987, + -0.0658910721540451, + 0.03373792767524719, + 0.027579613029956818, + -0.04053768515586853, + -0.01888340525329113, + 0.07095083594322205, + -0.009811142459511757, + -0.0018079401925206184, + 0.04503504931926727, + -0.06619847565889359, + 0.07701301574707031, + -0.06334106624126434, + 0.006077686324715614, + 0.06886855512857437, + 0.03303665667772293, + 0.0552871897816658, + -0.02377418428659439, + -0.029360270127654076, + -0.09309427440166473, + -0.001175562385469675, + 0.055718690156936646, + 0.08294275403022766, + -0.010206620208919048, + -0.009148720651865005, + -0.05876978114247322, + -0.05823804438114166, + 0.05029996484518051, + -0.024256860837340355, + 0.10300520807504654, + -0.002360205166041851, + -0.007017430849373341, + 0.0888165757060051, + -0.029025930911302567, + 0.0034471487160772085, + -0.04323210194706917, + -0.014927180483937263, + 0.04266569763422012, + 0.04807581007480621, + -0.06337089836597443, + -0.036115776747465134, + 0.03981133550405502, + 0.024569189175963402, + -0.023068321868777275, + 0.007855734787881374, + 0.0272002425044775, + 0.021283529698848724, + 0.02660639025270939, + -0.05040641129016876, + 0.015161116607487202, + -0.0889514833688736, + -0.027425331994891167, + -0.010627709329128265, + -0.0389995276927948, + -0.022576503455638885, + 0.08996008336544037, + 0.039212338626384735, + 0.021808478981256485, + 0.01612863689661026, + -0.09127653390169144, + -0.06314870715141296, + 0.07969259470701218, + 0.061603933572769165, + 0.01238252967596054, + 0.04394424706697464, + 0.04798119142651558, + -0.014167435467243195, + 0.02011752687394619, + 0.055331334471702576, + 0.08263795077800751, + -0.007037494797259569, + -0.039183031767606735, + -0.09339691698551178, + 0.08077463507652283, + 0.1007310152053833, + -0.10723181068897247, + -0.060186564922332764, + -0.009054746478796005, + -0.06860488653182983, + 0.04117028787732124, + -0.04818103462457657, + -0.0016779854195192456, + 0.05251266807317734, + -0.037330422550439835, + -0.1221676766872406, + -0.10664443671703339, + 0.11448432505130768, + -0.09559007734060287, + -0.03472454100847244, + -0.056931011378765106, + 0.012130238115787506, + 0.06436227262020111, + 0.04443691298365593, + -0.014441188424825668, + 0.023071687668561935, + 0.055191535502672195, + -0.09020151942968369, + -0.009086200036108494, + 0.06647901237010956, + -0.017854567617177963, + -0.12300018966197968, + 0.013689089566469193, + -0.07876016199588776, + 0.07024633884429932, + -0.06827641278505325, + 0.1647666096687317, + -0.01431102305650711, + -0.03801912069320679, + -0.08726654946804047, + 0.04681612551212311, + -0.042981911450624466, + 0.04898793250322342, + 0.04049469530582428, + 0.06898501515388489, + 0.04306660592556, + -0.06444372236728668, + 0.11984724551439285, + 0.02570509910583496, + -0.009208137169480324, + -0.06738410890102386, + -0.028124570846557617, + -0.053668469190597534, + 0.026429519057273865, + -0.003367878030985594, + -0.07821069657802582, + 0.014155484735965729, + 0.03093869984149933, + -0.03153420239686966, + 0.06198987364768982, + 0.12716275453567505, + 0.07299923896789551, + -0.08960578590631485 + ] + }, + "p244_223.wav": { + "name": "p244", + "embedding": [ + 0.06746435165405273, + 0.03453626111149788, + 0.018802262842655182, + -0.007825586944818497, + -0.009814387187361717, + 0.05579018592834473, + -0.09531286358833313, + 0.08952674269676208, + 0.0019092746078968048, + 0.05800749734044075, + -0.11425498127937317, + 0.04001835361123085, + -0.015883518382906914, + -0.13597381114959717, + -0.015742767602205276, + 0.026558123528957367, + -0.014288059435784817, + 0.012245727702975273, + -0.07787568122148514, + -0.017433255910873413, + 0.0023683421313762665, + 0.019502606242895126, + 0.050130944699048996, + -0.026344383135437965, + 0.006037736311554909, + 0.03134957328438759, + 0.002301743719726801, + 0.0222611166536808, + 0.020945867523550987, + -0.0011597732082009315, + -0.00016056932508945465, + 0.06718454509973526, + -0.04193013533949852, + -0.02041812427341938, + 0.05378752201795578, + 0.016655851155519485, + 0.00016847462393343449, + -0.10018790513277054, + -0.03738325089216232, + 0.01944802887737751, + -0.07587802410125732, + 0.07158413529396057, + 0.06043025106191635, + -0.01085681188851595, + 0.0450977198779583, + 0.028120337054133415, + -0.00813515204936266, + -0.036066360771656036, + -0.09710974991321564, + 0.15066704154014587, + 0.038202062249183655, + 0.027333775535225868, + -0.09030097723007202, + -0.001152288168668747, + 0.09088161587715149, + -0.04268059879541397, + -0.049777813255786896, + -0.046671949326992035, + 0.04771159216761589, + 0.08742760866880417, + 0.00888905394822359, + -0.03385370224714279, + 0.0025641024112701416, + 0.034780971705913544, + -0.0037024933844804764, + 0.024121368303894997, + 0.11470529437065125, + 0.09740065038204193, + -0.01528053916990757, + 0.03571304678916931, + 0.06648300588130951, + 0.022431544959545135, + 0.018335528671741486, + -0.020860392600297928, + 0.051991596817970276, + -0.006882551126182079, + -0.03494260832667351, + 0.027872798964381218, + -0.029020942747592926, + 0.004292902071028948, + 0.04804347828030586, + 0.014665561728179455, + 0.021233877167105675, + -0.0003202699590474367, + -0.083039790391922, + 0.03834843263030052, + -0.016299637034535408, + 0.07488923519849777, + 0.09508562088012695, + 0.028424490243196487, + -0.006975365336984396, + 0.018224479630589485, + -0.0227232426404953, + -0.08809474855661392, + 0.0008995940443128347, + 0.006419919431209564, + -0.006341836880892515, + 0.012546876445412636, + 0.022339818999171257, + -0.027169516310095787, + 0.09633686393499374, + 0.008606428280472755, + -0.008391025476157665, + 0.011947759427130222, + -0.07165030390024185, + 0.07237375527620316, + 0.08989352732896805, + 0.022913016378879547, + 0.023092111572623253, + -0.045838937163352966, + 0.04516831040382385, + 0.06434302777051926, + -0.06889235228300095, + -0.02109365724027157, + 0.03842272609472275, + 0.025691688060760498, + 0.05670637637376785, + 0.11166322231292725, + -0.0345115028321743, + -0.011355207301676273, + 0.09559209644794464, + -0.07128887623548508, + -0.01865301840007305, + 0.04849075898528099, + -0.00918085128068924, + -0.0009427517652511597, + -0.009787343442440033, + 0.016089409589767456, + -0.008708180859684944, + -0.04379244148731232, + 0.06666576862335205, + -0.003015415742993355, + -0.003960400819778442, + -0.04926044121384621, + 0.03294874355196953, + 0.06298403441905975, + -0.02058054506778717, + -0.06400218605995178, + 0.061980441212654114, + 0.09161941707134247, + 0.014620400033891201, + 0.05029816925525665, + -0.06642168015241623, + -0.0890839472413063, + -0.024814171716570854, + 0.018034877255558968, + 0.05135874077677727, + -0.014013483189046383, + -0.022425733506679535, + -0.08444146811962128, + -0.0036991946399211884, + 0.019659902900457382, + -0.02198571339249611, + 0.05597304925322533, + 0.051497142761945724, + -0.0462024100124836, + 0.04202788323163986, + -0.0357813760638237, + 0.015549814328551292, + -0.06311838328838348, + -0.046413298696279526, + 0.024547286331653595, + 0.02782253921031952, + -0.006012763828039169, + -0.04778391867876053, + 3.1763920560479164e-06, + -0.0034371763467788696, + -0.007133588194847107, + -0.030627738684415817, + 0.04526460915803909, + -0.01648622751235962, + -0.013359026052057743, + -0.12920153141021729, + 0.044889360666275024, + -0.10495211184024811, + -0.0398227833211422, + 0.04703351482748985, + 0.021594205871224403, + 0.03445103019475937, + 0.0868418887257576, + -0.00621281610801816, + 0.005866593681275845, + -0.03537328913807869, + -0.11428296566009521, + -0.008001536130905151, + 0.05816343426704407, + 0.054338183254003525, + -0.000516034197062254, + 0.05152300000190735, + 0.033930640667676926, + -0.029608864337205887, + 0.05167367309331894, + 0.04011283814907074, + 0.06017167493700981, + -0.04184175655245781, + -0.020825427025556564, + 0.023401325568556786, + 0.0852283462882042, + 0.030077341943979263, + -0.06352971494197845, + -0.044702935963869095, + 0.005877570249140263, + -0.03520646318793297, + 0.018040383234620094, + 0.009867937304079533, + 0.006362102925777435, + 0.0412251241505146, + -0.012140120379626751, + -0.06588228046894073, + -0.04345769062638283, + 0.0077348146587610245, + -0.04040368273854256, + -0.015698954463005066, + -0.049078017473220825, + 0.022461842745542526, + 0.08226238936185837, + -0.004554638639092445, + 0.0009399037808179855, + -0.029615182429552078, + -0.015239452943205833, + -0.052473507821559906, + -0.08298250287771225, + -0.02115788124501705, + 0.016536949202418327, + -0.06285444647073746, + 0.026906626299023628, + -0.059773217886686325, + 0.06849846988916397, + 0.002102002501487732, + 0.07467304170131683, + 0.008652590215206146, + -0.014532679691910744, + -0.04937524348497391, + 0.02046164870262146, + -0.015169277787208557, + 0.053184084594249725, + 0.0541355162858963, + -0.014002952724695206, + 0.03024912253022194, + -0.06051519513130188, + 0.09172870218753815, + 0.03860616311430931, + -0.05396216735243797, + -0.03711579740047455, + 0.021270081400871277, + -0.046472761780023575, + -0.038003433495759964, + -0.015979822725057602, + -0.07203540205955505, + 0.031466804444789886, + 0.013499826192855835, + -0.03028171882033348, + 0.010555773973464966, + 0.047102928161621094, + 0.038047753274440765, + -0.06640853732824326 + ] + }, + "p244_105.wav": { + "name": "p244", + "embedding": [ + 0.04199103266000748, + 0.11617829650640488, + -0.03822670131921768, + 0.009970361366868019, + -0.06180695816874504, + 0.06572401523590088, + -0.08995041251182556, + 0.11087144911289215, + -0.040161289274692535, + 0.13533596694469452, + -0.06050288677215576, + 0.14237496256828308, + -0.021519970148801804, + -0.11296205967664719, + -0.051377072930336, + 0.041018079966306686, + -0.022327013313770294, + -0.010821400210261345, + -0.022188197821378708, + -0.026308249682188034, + 0.04904230684041977, + 0.013542171567678452, + 0.03373991698026657, + -0.0049488781951367855, + 0.023509174585342407, + 0.07685306668281555, + 0.015896936878561974, + 0.026470517739653587, + 0.015008306130766869, + -0.06461623311042786, + -0.053206026554107666, + 0.08346156775951385, + -0.04098587483167648, + 0.03245013207197189, + 0.05041162669658661, + -0.01328854076564312, + 0.013459051959216595, + -0.03604253754019737, + 0.02108015865087509, + 0.009602932259440422, + -0.022856276482343674, + 0.09376966953277588, + 0.01483251340687275, + -0.012880812399089336, + 0.03298836201429367, + 0.002260367153212428, + -0.012784450314939022, + -0.008848486468195915, + -0.06271973252296448, + 0.14742425084114075, + 0.05345187708735466, + -0.012334037572145462, + -0.07585030794143677, + -0.035776086151599884, + 0.0950363501906395, + -0.011479789391160011, + -0.0965292900800705, + -0.029636627063155174, + 0.03452540189027786, + 0.10701115429401398, + -0.0075934394262731075, + -0.0507061704993248, + 0.018968705087900162, + 0.10936087369918823, + 0.04047444462776184, + 0.05904686450958252, + 0.08163207024335861, + 0.10283955186605453, + -0.01567039266228676, + 0.012343108654022217, + 0.0296616293489933, + 0.08516241610050201, + 0.041909486055374146, + -0.006416182965040207, + 0.03499855101108551, + -0.038104794919490814, + 0.002573432633653283, + -0.006903701927512884, + -0.022830557078123093, + -0.03757607936859131, + -0.04911191761493683, + -0.0002809514699038118, + 0.0036431001499295235, + 0.01604396104812622, + -0.02919423207640648, + 0.05229528993368149, + 0.033879198133945465, + -0.04292520508170128, + 0.04799105226993561, + 0.057570502161979675, + 0.0033685490489006042, + 0.02855800651013851, + -0.0737912654876709, + -0.08116500079631805, + 0.04370058700442314, + 0.00637834845110774, + 0.026995999738574028, + 0.06688733398914337, + 0.04066891968250275, + 0.016165295615792274, + 0.08344607800245285, + 0.06817913055419922, + -0.015432355925440788, + -0.00027492642402648926, + -0.06354711949825287, + 0.1339571177959442, + 0.10456337779760361, + -0.033188626170158386, + 0.035492658615112305, + -0.027127256616950035, + 0.04902885481715202, + 0.03730037435889244, + -0.11478836834430695, + -0.09133437275886536, + 0.0011801639338955283, + 0.007715168409049511, + 0.005701042246073484, + 0.06321602314710617, + -0.0112722497433424, + 0.01958681084215641, + 0.07128651440143585, + -0.04924658685922623, + -0.07035790383815765, + -0.06190721318125725, + 0.029390333220362663, + -0.08773978799581528, + 0.06134861707687378, + 0.05012189596891403, + 0.02364715188741684, + -0.011407758109271526, + 0.08381160348653793, + 0.008381902240216732, + 0.01218886487185955, + 0.028661102056503296, + -0.024244703352451324, + 0.013345081359148026, + -0.007471784017980099, + 0.027959231287240982, + 0.04590198025107384, + 0.029659461230039597, + 0.06869475543498993, + -0.003996455110609531, + 0.02499471977353096, + -0.09376915544271469, + 0.0142821054905653, + 0.05111538618803024, + 0.014123952016234398, + -0.029080867767333984, + -0.045803528279066086, + -0.004303361289203167, + -0.06708916276693344, + -0.008562937378883362, + 0.0004720357828773558, + 0.07649107277393341, + -0.016655217856168747, + 0.017006948590278625, + 0.11920279264450073, + 0.018184518441557884, + -0.004393253941088915, + -0.04132121056318283, + -0.0013265833258628845, + 0.012190218083560467, + 0.04753274470567703, + -0.09258278459310532, + -0.07506147772073746, + -0.012659948319196701, + 0.011759753338992596, + -0.0015334058552980423, + 0.060365330427885056, + 0.07053540647029877, + -0.009500524029135704, + 0.05847875401377678, + -0.03705691546201706, + 0.005697905085980892, + -0.08066649734973907, + -0.03547865152359009, + -0.04819463938474655, + -0.06096942350268364, + -0.03281617909669876, + 0.07650876045227051, + 0.028784727677702904, + 0.056127794086933136, + 0.00027082115411758423, + -0.052896372973918915, + -0.06711860001087189, + 0.04537341743707657, + 0.06605416536331177, + -0.009477265179157257, + 0.03768934682011604, + 0.06395058333873749, + -0.01625695638358593, + 0.035413436591625214, + 0.05967690050601959, + 0.06340722739696503, + -0.04060867428779602, + 0.005485305096954107, + -0.06729786843061447, + 0.06758986413478851, + 0.0797397568821907, + -0.09445779025554657, + -0.08244279026985168, + -0.07224215567111969, + -0.042787104845047, + 0.01698298007249832, + -0.0538453571498394, + 0.007955098524689674, + 0.03596549481153488, + -0.01485449355095625, + -0.07828149944543839, + -0.11134330928325653, + 0.09029387682676315, + -0.05784526467323303, + 0.006046132650226355, + -0.051734842360019684, + 0.04293915256857872, + 0.06485158205032349, + 0.023911166936159134, + -0.05744285508990288, + 0.02017601951956749, + 0.03542225807905197, + -0.02280627191066742, + -0.0026409588754177094, + 0.03412122651934624, + 0.024010812863707542, + -0.07832947373390198, + -0.004358840640634298, + -0.06650857627391815, + 0.06273084878921509, + -0.0652836412191391, + 0.14062075316905975, + -0.005476667545735836, + -0.05514318495988846, + -0.06831812858581543, + 0.03729721158742905, + -0.02953445166349411, + 0.024901991710066795, + 0.0492917075753212, + 0.05519666522741318, + -0.009218895807862282, + -0.06570367515087128, + 0.1017032191157341, + 0.05959945172071457, + -0.033283643424510956, + -0.09524615854024887, + -0.03677475452423096, + -0.03181833028793335, + 0.04096755385398865, + 0.041259877383708954, + -0.0825209766626358, + 0.01629863865673542, + 0.023485228419303894, + -0.007235379423946142, + 0.08249468356370926, + 0.10868488997220993, + 0.06357407569885254, + -0.07810883224010468 + ] + }, + "p244_104.wav": { + "name": "p244", + "embedding": [ + 0.041993312537670135, + 0.0927915871143341, + -0.023635217919945717, + 0.03401413932442665, + -0.049704767763614655, + 0.09235957264900208, + -0.14399084448814392, + 0.12129074335098267, + -0.035267945379018784, + 0.1398114264011383, + -0.0600535050034523, + 0.11325986683368683, + -0.01964443549513817, + -0.18756522238254547, + -0.03948917239904404, + 0.05671172961592674, + -0.04484950006008148, + -0.035275910049676895, + -0.028493095189332962, + -0.00710280891507864, + 0.03766641765832901, + 0.02786479890346527, + 0.01050695963203907, + -0.005582625046372414, + 0.036100637167692184, + 0.06363923847675323, + -0.0031729359179735184, + 0.0393981859087944, + -0.00662595359608531, + -0.04091174155473709, + -0.03039582073688507, + 0.12437931448221207, + -0.06014012545347214, + 0.02942153438925743, + 0.05367758497595787, + 0.012539195828139782, + -0.00719422334805131, + -0.0525921992957592, + 0.0013659711694344878, + -0.001498503959737718, + -0.04412698373198509, + 0.08894520252943039, + 0.044096942991018295, + 0.010714509524405003, + 0.015667196363210678, + 0.031097274273633957, + -0.010116101242601871, + -0.04669087007641792, + -0.10243485867977142, + 0.1666468381881714, + 0.052448805421590805, + -0.0005351711879484355, + -0.06775981932878494, + -0.07216373085975647, + 0.0963415578007698, + 0.010191711597144604, + -0.11463125795125961, + -0.04616400599479675, + 0.09615646302700043, + 0.16290272772312164, + -0.029554234817624092, + -0.0435260534286499, + 0.006799326743930578, + 0.1317562609910965, + 0.04758976772427559, + 0.10423439741134644, + 0.0695679560303688, + 0.1393681913614273, + -0.0003243259561713785, + 0.006876935251057148, + 0.07549900561571121, + 0.060671474784612656, + 0.07056000828742981, + -0.01331544853746891, + 0.030147327110171318, + -0.024076879024505615, + 0.002624780172482133, + 0.0034128520637750626, + -0.034796204417943954, + -0.029568351805210114, + -0.0034408981446176767, + 0.003702497808262706, + 0.017516933381557465, + 0.04001220315694809, + -0.02220405824482441, + 0.04312530905008316, + 0.059406884014606476, + -0.027831654995679855, + 0.06485036015510559, + 0.062060121446847916, + 0.01610192470252514, + 0.058809198439121246, + -0.09474047273397446, + -0.08720813691616058, + 0.052215974777936935, + 0.006189660634845495, + 0.04568372666835785, + 0.07502438873052597, + 0.04258298873901367, + -0.004303544294089079, + 0.09306040406227112, + 0.028608692809939384, + -0.009236309677362442, + 0.022480159997940063, + -0.09946560859680176, + 0.14175835251808167, + 0.07973980903625488, + -0.018995195627212524, + 0.03168212249875069, + -0.055136825889348984, + 0.07474605739116669, + 0.07685787975788116, + -0.13622409105300903, + -0.0823507308959961, + 0.031062833964824677, + 0.019721344113349915, + -0.0368209145963192, + 0.1260622888803482, + -0.008385525085031986, + 0.0227363184094429, + 0.09151863306760788, + -0.09415683150291443, + -0.04459966719150543, + -0.0226836409419775, + 0.027638548985123634, + -0.08480838686227798, + 0.04222169145941734, + 0.040965426713228226, + -0.008196350187063217, + -0.0003213175805285573, + 0.08301109075546265, + 0.0029568444006145, + 0.004396231845021248, + 0.009786475449800491, + -0.03255288675427437, + 0.03162181377410889, + -0.010582532733678818, + 0.01605938747525215, + 0.031386442482471466, + 0.0246969535946846, + 0.05496756732463837, + -0.008291056379675865, + -0.026500826701521873, + -0.1195041611790657, + 0.009853058494627476, + 0.050079572945833206, + 0.07675682008266449, + -0.025990569964051247, + -0.0202273391187191, + -0.030775107443332672, + -0.08036734163761139, + 0.05014772340655327, + -0.01097302045673132, + 0.08064179122447968, + 0.013332556001842022, + -0.028773589059710503, + 0.11192211508750916, + 0.02456790953874588, + -0.0011019870871677995, + -0.05334194004535675, + -0.03009355068206787, + 0.02187325805425644, + 0.044389836490154266, + -0.11591000109910965, + -0.05547906830906868, + 0.0003466318594291806, + 0.015130819752812386, + -0.027434542775154114, + 0.04612204432487488, + 0.05507882311940193, + 0.025138316676020622, + 0.02772468514740467, + -0.045911893248558044, + -0.01048254780471325, + -0.10145393759012222, + -0.07158402353525162, + -0.008819213137030602, + -0.028672033920884132, + -0.02248135395348072, + 0.08878090232610703, + 0.012591863982379436, + 0.038297638297080994, + -0.0318383052945137, + -0.04675601050257683, + -0.06739017367362976, + 0.0647347941994667, + 0.05494198203086853, + 0.0007818698068149388, + 0.044629428535699844, + 0.04337198659777641, + -0.026525886729359627, + 0.04575919732451439, + 0.07308197766542435, + 0.12743665277957916, + -0.046412572264671326, + 0.02811635658144951, + -0.07216516882181168, + 0.1074354276061058, + 0.0878455713391304, + -0.08247501403093338, + -0.07868802547454834, + -0.012309428304433823, + -0.056923747062683105, + 0.018798766657710075, + -0.05857264995574951, + -0.0014582837466150522, + 0.020307812839746475, + -0.005348965059965849, + -0.10183601826429367, + -0.09745538979768753, + 0.0751880407333374, + -0.08353032916784286, + -0.000499181856866926, + -0.09331083297729492, + 0.0567728728055954, + 0.0895451009273529, + 0.04269560053944588, + -0.04776900261640549, + 0.006110005080699921, + 0.06342826038599014, + -0.04685213416814804, + 0.00283640343695879, + 0.050748687237501144, + 0.026887770742177963, + -0.10592646151781082, + -0.016883304342627525, + -0.06643162667751312, + 0.039897117763757706, + -0.05434108525514603, + 0.16183307766914368, + 0.0026806907262653112, + -0.054454121738672256, + -0.052208393812179565, + 0.03219299390912056, + -0.01592209003865719, + 0.04684852808713913, + 0.040493886917829514, + 0.07390118390321732, + 0.031165460124611855, + -0.0572657473385334, + 0.13536448776721954, + 0.03932786360383034, + -0.02746889367699623, + -0.06881848722696304, + -0.0402451790869236, + -0.035189367830753326, + 0.05021411180496216, + 0.009485137648880482, + -0.0997840166091919, + -0.012666463851928711, + 0.051296088844537735, + 0.000514302751980722, + 0.04523845762014389, + 0.14479690790176392, + 0.0645727589726448, + -0.09413698315620422 + ] + }, + "p244_228.wav": { + "name": "p244", + "embedding": [ + 0.036547183990478516, + 0.05494793504476547, + -0.03381495177745819, + -0.010115750133991241, + -0.04059382155537605, + 0.02810145542025566, + -0.13210858404636383, + 0.09303756058216095, + 0.005028697662055492, + 0.16204020380973816, + -0.05217421054840088, + 0.09659303724765778, + -0.0012686308473348618, + -0.11723019182682037, + 0.023297203704714775, + 0.03521076962351799, + -0.006184345111250877, + -0.0019950508140027523, + -0.004529932513833046, + -0.05533728748559952, + 0.03424292802810669, + 0.049391716718673706, + 0.007852649316191673, + -0.04434743896126747, + 0.02525271102786064, + 0.06144176423549652, + -0.024894338101148605, + -0.006331412121653557, + -0.01832963526248932, + -0.0581718273460865, + 0.011025835759937763, + 0.11011952906847, + -0.04667455703020096, + -0.004206397570669651, + 0.010972622781991959, + -0.013248814269900322, + -0.028623323887586594, + -0.04633243381977081, + 0.020680660381913185, + 0.033447153866291046, + -0.04960118979215622, + 0.0838746726512909, + 0.01760770007967949, + 0.010426776483654976, + 0.026980679482221603, + -0.030386094003915787, + -0.06536616384983063, + 0.004335332661867142, + -0.048969727009534836, + 0.14194506406784058, + 0.07445313036441803, + 0.007051954045891762, + -0.07249372452497482, + -0.01101214811205864, + 0.04477895796298981, + 0.02705524116754532, + -0.08595451712608337, + -0.034307949244976044, + 0.030470481142401695, + 0.10671170055866241, + 0.009791238233447075, + -0.06108497828245163, + 0.03524329140782356, + 0.10987058281898499, + 0.009562487713992596, + 0.03315334767103195, + 0.08764147758483887, + 0.10279177874326706, + -0.010249885730445385, + 0.006959708407521248, + 0.020144307985901833, + 0.07273457199335098, + 0.051266320049762726, + -0.025711428374052048, + 0.03318297117948532, + -0.018727295100688934, + -0.016509534791111946, + -0.04951774328947067, + -0.022715087980031967, + -0.05312328413128853, + -0.0448157861828804, + -0.022821705788373947, + -0.003900387790054083, + 0.09170660376548767, + -0.022880928590893745, + -0.029494643211364746, + 0.07554402202367783, + -0.04855826869606972, + 0.04615463316440582, + 0.03903011232614517, + 0.017772603780031204, + 0.006154010072350502, + -0.10188841074705124, + -0.05236378312110901, + 0.038186024874448776, + -0.002766687422990799, + 0.047838497906923294, + 0.06418476998806, + 0.027539290487766266, + 0.0002491651102900505, + 0.09445770829916, + 0.02097795158624649, + -0.005377943627536297, + -0.04734991118311882, + -0.07401047646999359, + 0.11700354516506195, + 0.11375206708908081, + -0.04591304063796997, + 0.03777534142136574, + -0.014602947980165482, + 0.014844397082924843, + -0.0070088207721710205, + -0.12812571227550507, + -0.029767531901597977, + -0.004303273744881153, + 0.0478520393371582, + 0.019742488861083984, + 0.11558857560157776, + 0.04125234857201576, + 0.05158422887325287, + 0.0784287303686142, + -0.05399606004357338, + -0.06061099097132683, + -0.05072500556707382, + 0.038478169590234756, + -0.10721170902252197, + 0.060248248279094696, + 0.055300697684288025, + 0.022702792659401894, + 0.003910653293132782, + 0.06804215162992477, + 0.024405136704444885, + 0.03485392779111862, + -0.05654182285070419, + 0.005347827449440956, + 0.036358222365379333, + -0.020238889381289482, + 0.041469231247901917, + 0.031049851328134537, + -0.006746730767190456, + 0.09990570694208145, + 0.029759474098682404, + -0.007160266861319542, + -0.09072452783584595, + 0.037418484687805176, + 0.007801290135830641, + 0.03955089673399925, + -0.052426502108573914, + -0.03093225508928299, + 0.01665990985929966, + -0.0764579176902771, + -0.0004300791770219803, + -0.009757639840245247, + 0.06864982843399048, + 0.030672062188386917, + -0.0229633841663599, + 0.10047703981399536, + 0.015504911541938782, + -0.00018723157700151205, + 0.010967081412672997, + -0.010971481911838055, + -0.005989436060190201, + 0.06344471871852875, + -0.12709718942642212, + -0.05961715802550316, + 0.011622114107012749, + 0.0128859244287014, + 0.011815086007118225, + 0.03485803306102753, + 0.09618727117776871, + -0.02078128233551979, + 0.024947889149188995, + -0.01679592952132225, + -0.003832906950265169, + -0.05250580608844757, + -0.06677301228046417, + 0.0032298071309924126, + -0.05456282198429108, + -0.0497753843665123, + 0.08213728666305542, + -0.02136092260479927, + 0.04913489520549774, + -0.04758963733911514, + -0.03340229019522667, + -0.0676318109035492, + 0.03568369895219803, + 0.03104977309703827, + -0.06299667060375214, + -0.0007210280746221542, + 0.08407070487737656, + -0.00670292042195797, + -0.02887452393770218, + 0.055874817073345184, + 0.09213539212942123, + -0.08104171603918076, + 0.005033660680055618, + -0.08486886322498322, + 0.1096893697977066, + 0.08756161481142044, + -0.0345761701464653, + -0.062121979892253876, + -0.06690338999032974, + -0.06330153346061707, + 0.0373421311378479, + -0.03550054132938385, + -0.017497580498456955, + 0.040321316570043564, + -0.05281955376267433, + -0.07797092199325562, + -0.07407867908477783, + 0.05309075862169266, + -0.05857566371560097, + 0.007959308102726936, + -0.07371783256530762, + 0.036032311618328094, + 0.04185828939080238, + 0.06944239884614944, + -0.06200557202100754, + 0.015215501189231873, + 0.02768900617957115, + -0.04563862830400467, + 0.006325381342321634, + 0.03160887211561203, + 0.034379299730062485, + -0.06544091552495956, + -0.06208460405468941, + -0.06095083802938461, + 0.03927738964557648, + -0.06617523729801178, + 0.055638596415519714, + 0.03216254338622093, + -0.05052667111158371, + -0.0727718323469162, + -0.004142915830016136, + 0.004101710394024849, + 0.03420416638255119, + 0.07264456152915955, + 0.06035304069519043, + 0.0509200245141983, + -0.053581397980451584, + 0.06901642680168152, + 0.05423349514603615, + 0.03478659316897392, + -0.05042131245136261, + -0.00014366023242473602, + -0.0034629814326763153, + 0.05168410390615463, + 0.018149469047784805, + -0.0771474614739418, + 0.04962316155433655, + 0.01681504398584366, + 0.004121999256312847, + 0.044393714517354965, + 0.04761321097612381, + 0.04781375825405121, + -0.10872853547334671 + ] + }, + "p244_188.wav": { + "name": "p244", + "embedding": [ + 0.017317287623882294, + 0.04498537629842758, + -0.049431826919317245, + 0.026250295341014862, + -0.07159970700740814, + 0.041431911289691925, + -0.14220894873142242, + 0.09918121993541718, + -0.02404780313372612, + 0.11870583891868591, + -0.033757831901311874, + 0.10897046327590942, + -0.01274899858981371, + -0.2121933251619339, + 0.01909901574254036, + 0.06232907623052597, + -0.03920887038111687, + -0.04471857100725174, + -0.06435555219650269, + -0.03345201909542084, + 0.03468197584152222, + 0.0357145331799984, + 0.025104904547333717, + -0.05580104887485504, + 0.01387088280171156, + 0.07723259925842285, + -0.008191756904125214, + 0.013709424063563347, + -0.023945387452840805, + -0.03753571957349777, + -0.049597322940826416, + 0.0883735865354538, + -0.06499285250902176, + -0.028659116476774216, + 0.0505051389336586, + -0.023918859660625458, + -0.028258681297302246, + -0.04561741650104523, + -0.009612597525119781, + 0.03508784621953964, + -0.06720846891403198, + 0.07514676451683044, + 0.051419928669929504, + -0.013838039711117744, + 0.05048087611794472, + 0.006804631091654301, + -0.022727705538272858, + -0.030414143577218056, + -0.10152660310268402, + 0.14894217252731323, + 0.06898372620344162, + -0.025127515196800232, + -0.05135069042444229, + -0.0408470593392849, + 0.08696570992469788, + 0.008966525085270405, + -0.13095322251319885, + -0.07086822390556335, + 0.0888456180691719, + 0.1253010779619217, + -0.035244591534137726, + -0.021543893963098526, + 0.03895064443349838, + 0.07749058306217194, + 0.06122463941574097, + 0.10049092024564743, + 0.06332235038280487, + 0.12807497382164001, + -0.0027650382835417986, + 0.0040116989985108376, + 0.0695246160030365, + 0.06422119587659836, + 0.030354848131537437, + -0.017443187534809113, + 0.04658213257789612, + 0.0029388070106506348, + -0.010607457719743252, + -0.022464144974946976, + -0.018317895010113716, + -0.012762738391757011, + 0.03116878867149353, + -0.007134473882615566, + 0.0351099967956543, + 0.02266528084874153, + -0.03112887218594551, + 0.04863879829645157, + 0.08685256540775299, + -0.0017822063528001308, + 0.06073993071913719, + 0.02116236463189125, + -0.0073343669064342976, + 0.07774338126182556, + -0.09492166340351105, + -0.06570316851139069, + 0.031402237713336945, + 0.0057772016152739525, + -0.0017051721224561334, + 0.05516954883933067, + 0.047507453709840775, + -0.020640410482883453, + 0.1228819489479065, + 0.03544235974550247, + -0.016452038660645485, + 0.04918748140335083, + -0.07279971987009048, + 0.12608854472637177, + 0.08431540429592133, + -0.030415885150432587, + 0.030399909242987633, + -0.06336770951747894, + 0.07243360579013824, + 0.043131835758686066, + -0.10869661718606949, + -0.049188461154699326, + 0.044710587710142136, + -0.023325065150856972, + -0.050837837159633636, + 0.16665911674499512, + -0.003387659788131714, + 0.01691051758825779, + 0.14217683672904968, + -0.1043357402086258, + -0.057786524295806885, + -0.0008437793585471809, + 0.030060134828090668, + -0.08626771718263626, + 0.04105145484209061, + 0.05152350664138794, + -0.00994603056460619, + 0.03077283501625061, + 0.09150253981351852, + -0.017743868753314018, + 0.015175789594650269, + -0.005155642982572317, + -0.015340684913098812, + 0.049425624310970306, + -0.010346350260078907, + -0.01423791516572237, + 0.07959248125553131, + 0.029327072203159332, + 0.04215708002448082, + -0.035785987973213196, + -0.027502745389938354, + -0.131309375166893, + 0.02814522758126259, + 0.01983937993645668, + 0.0819053202867508, + -0.014491342008113861, + 0.01907731592655182, + -0.06289822608232498, + -0.11390458047389984, + 0.02779809758067131, + -0.025660209357738495, + 0.07574279606342316, + -0.027025040239095688, + -0.03143087029457092, + 0.09052151441574097, + 0.04678970202803612, + 0.01202697865664959, + -0.05012039095163345, + -0.06305918097496033, + 0.016918502748012543, + 0.045033156871795654, + -0.10097062587738037, + -0.058853622525930405, + -0.046271972358226776, + 0.037637338042259216, + -0.009079734794795513, + 0.038432247936725616, + 0.06502270698547363, + 0.04015757888555527, + 0.015586724504828453, + -0.08537141978740692, + 0.017619166523218155, + -0.0705195963382721, + -0.04243101924657822, + -0.01802583411335945, + -0.02883341535925865, + -0.03243012726306915, + 0.08826066553592682, + -0.013770588673651218, + 0.023792801424860954, + -0.07443833351135254, + -0.06121410056948662, + -0.07203206419944763, + 0.05678550899028778, + 0.055465664714574814, + -0.03217874839901924, + 0.046823397278785706, + 0.04638488590717316, + -0.04013500362634659, + 0.0026283422484993935, + 0.06033400818705559, + 0.11864417791366577, + -0.026256369426846504, + 0.011101892217993736, + -0.055907152593135834, + 0.12708517909049988, + 0.07068803906440735, + -0.055651649832725525, + -0.0484439879655838, + -0.005763031542301178, + -0.06660846620798111, + 0.04331723600625992, + -0.04608432203531265, + -0.021472645923495293, + 0.020690463483333588, + 0.023847879841923714, + -0.0916101336479187, + -0.07911588251590729, + 0.05280515179038048, + -0.059972479939460754, + -0.01347692497074604, + -0.09861786663532257, + 0.04117956385016441, + 0.07657027244567871, + 0.044892556965351105, + -0.06180015206336975, + -0.007300299592316151, + 0.052679285407066345, + -0.020200956612825394, + 0.05991438776254654, + 0.0642707422375679, + 0.05839382857084274, + -0.09800872951745987, + -0.04367532953619957, + -0.07133033871650696, + 0.04467225819826126, + -0.046147119253873825, + 0.12688976526260376, + 0.02022826112806797, + -0.02163371443748474, + -0.060631610453128815, + 0.05313608795404434, + -0.00031630881130695343, + 0.06005815416574478, + 0.0646965503692627, + 0.08532170951366425, + 0.06233343482017517, + -0.056034162640571594, + 0.1290823519229889, + 0.030907586216926575, + -0.01748138852417469, + -0.06116333603858948, + -0.01653577759861946, + -0.04848343878984451, + 0.0357728973031044, + 0.045651160180568695, + -0.10712676495313644, + 0.001083730487152934, + 0.05164897441864014, + -0.002481299452483654, + 0.030789662152528763, + 0.12179458141326904, + 0.06833023577928543, + -0.08677087724208832 + ] + }, + "p244_176.wav": { + "name": "p244", + "embedding": [ + 0.06590309739112854, + 0.08273713290691376, + -0.022031202912330627, + 0.027331626042723656, + -0.05132855474948883, + 0.04373977705836296, + -0.15334570407867432, + 0.1566563993692398, + -0.009727679193019867, + 0.13052597641944885, + -0.03915196657180786, + 0.12613728642463684, + -0.00921361893415451, + -0.17011556029319763, + -0.0031224607955664396, + 0.05452784150838852, + -0.03364328294992447, + -0.0348631925880909, + -0.02278713509440422, + -0.029857030138373375, + 0.029342498630285263, + 0.04183362051844597, + 0.031725432723760605, + -0.0046009584330022335, + 0.028559327125549316, + 0.06831564009189606, + -0.017405208200216293, + 0.027609815821051598, + -0.0089272391051054, + -0.0710478276014328, + -0.02805780991911888, + 0.07103975862264633, + -0.0609106719493866, + 0.005562937818467617, + 0.03896316513419151, + -0.026390373706817627, + -0.013575540855526924, + -0.06560267508029938, + -0.029591700062155724, + 0.007092623971402645, + -0.037789665162563324, + 0.08400766551494598, + 0.02115662395954132, + -0.03572472184896469, + 0.03886793181300163, + 0.014422359876334667, + -0.004600794520229101, + -0.03717661648988724, + -0.11260801553726196, + 0.15533767640590668, + 0.07325652241706848, + 0.014653614722192287, + -0.08307540416717529, + -0.05747218057513237, + 0.08501579612493515, + -0.015743855386972427, + -0.09778197854757309, + -0.027945932000875473, + 0.05563493072986603, + 0.1365983933210373, + -0.032644666731357574, + -0.04546068608760834, + 0.04818868637084961, + 0.10732771456241608, + 0.07704716920852661, + 0.06185056269168854, + 0.09420525282621384, + 0.11288021504878998, + -0.04673559218645096, + 0.009247522801160812, + 0.036061182618141174, + 0.0793636366724968, + 0.0696311891078949, + 0.007205704227089882, + 0.018164895474910736, + -0.007456387858837843, + -0.015886083245277405, + -0.040691327303647995, + -0.023670226335525513, + -0.02646796964108944, + -0.003542952938005328, + 0.013792181387543678, + 0.020862823352217674, + 0.05419101566076279, + -0.026225855574011803, + 0.05407482013106346, + 0.057271093130111694, + -0.02712639793753624, + 0.0665774717926979, + 0.018475593999028206, + 0.020073935389518738, + 0.07006167620420456, + -0.1084972470998764, + -0.06667543947696686, + 0.05201352387666702, + 0.003527058055624366, + 0.03386840224266052, + 0.07018347829580307, + 0.048327378928661346, + -0.013828898780047894, + 0.12828075885772705, + 0.052020035684108734, + -0.01700139231979847, + 0.009118321351706982, + -0.07842226326465607, + 0.125259667634964, + 0.08640637993812561, + -0.03948485851287842, + 0.06417527794837952, + -0.06240531802177429, + 0.056600913405418396, + 0.048333585262298584, + -0.13238009810447693, + -0.07555337995290756, + 0.03135322779417038, + 0.01871408149600029, + -0.006715088617056608, + 0.14097750186920166, + 0.014059068635106087, + 0.07226261496543884, + 0.10537798702716827, + -0.09489516913890839, + -0.053132764995098114, + -0.013518152758479118, + 0.06651130318641663, + -0.09357684850692749, + 0.08118122071027756, + 0.06574410200119019, + -0.019548101350665092, + 0.030379649251699448, + 0.07033946365118027, + -0.004461872857064009, + 0.003948649857193232, + -0.0030166504438966513, + -0.025986608117818832, + 0.0010310538345947862, + -0.020243503153324127, + -0.015815503895282745, + 0.017549216747283936, + 0.016868874430656433, + 0.04138512164354324, + -0.011960888281464577, + -0.022519264370203018, + -0.13396292924880981, + 0.0199708491563797, + 0.025134574621915817, + 0.0808676928281784, + -0.021772390231490135, + -0.03277274966239929, + -0.030811121687293053, + -0.05993056297302246, + -0.006899719592183828, + -0.014716587960720062, + 0.05033014714717865, + -0.01804148405790329, + 0.015124909579753876, + 0.09540446847677231, + 0.049196772277355194, + 0.009166347794234753, + -0.032705970108509064, + -0.03616961091756821, + 0.006587449461221695, + 0.05745156854391098, + -0.07765307277441025, + -0.08155323565006256, + -0.029043225571513176, + 0.024371540173888206, + -0.020367398858070374, + 0.0753738135099411, + 0.04553629457950592, + 0.024564266204833984, + 0.007722645998001099, + -0.06545669585466385, + 0.01615370437502861, + -0.08819540590047836, + -0.08529090881347656, + -0.0008315509185194969, + -0.007010858040302992, + -0.03731034696102142, + 0.07583478093147278, + 0.03277184069156647, + 0.07850177586078644, + -0.05062877759337425, + -0.04603683948516846, + -0.08216080069541931, + 0.032328709959983826, + 0.04931224137544632, + -0.027668422088027, + 0.02368195913732052, + 0.059348881244659424, + -0.018062911927700043, + 0.051102038472890854, + 0.0644771158695221, + 0.09227493405342102, + -0.026067791506648064, + 0.022217441350221634, + -0.07000530511140823, + 0.10057233273983002, + 0.10241001844406128, + -0.0660070925951004, + -0.0833776593208313, + -0.034672241657972336, + -0.08395908772945404, + 0.018026867881417274, + -0.01758812554180622, + 0.020316768437623978, + 0.03906296193599701, + -0.0018471296643838286, + -0.1044909656047821, + -0.0998966246843338, + 0.08310158550739288, + -0.0647507905960083, + 0.00958292931318283, + -0.087298184633255, + 0.04991710186004639, + 0.09902515262365341, + 0.031223490834236145, + -0.026738043874502182, + -0.033829011023044586, + 0.03121050074696541, + -0.0005048485472798347, + 0.027047235518693924, + 0.06736314296722412, + 0.0641685351729393, + -0.11556115746498108, + -0.0037295869551599026, + -0.0594022274017334, + 0.04243311285972595, + -0.03628578037023544, + 0.13820697367191315, + 0.028575977310538292, + -0.04545023664832115, + -0.09418241679668427, + 0.04028555005788803, + -0.009200192987918854, + 0.06230112910270691, + 0.014625227078795433, + 0.06447426974773407, + 0.05719239264726639, + -0.07228986918926239, + 0.09338214993476868, + 0.050442688167095184, + -0.042689792811870575, + -0.07106788456439972, + -0.063497394323349, + -0.0327129140496254, + 0.04167948290705681, + 0.002049120608717203, + -0.0810183435678482, + -0.02905045449733734, + 0.021104484796524048, + 0.007179769687354565, + 0.05495418235659599, + 0.1424550712108612, + 0.04495810717344284, + -0.12958046793937683 + ] + }, + "p244_275.wav": { + "name": "p244", + "embedding": [ + 0.0372111052274704, + 0.050547100603580475, + -0.039791930466890335, + 0.06428533792495728, + -0.06765749305486679, + 0.040432676672935486, + -0.14868861436843872, + 0.10640327632427216, + -0.021880440413951874, + 0.10772843658924103, + -0.05929896980524063, + 0.08378919959068298, + -0.017492609098553658, + -0.19753682613372803, + -0.006421403028070927, + 0.06478886306285858, + -0.04720301553606987, + -0.03194117918610573, + -0.0735669732093811, + -0.028677726164460182, + 0.03851275146007538, + 0.0534440279006958, + 0.047147490084171295, + -0.0267333947122097, + 0.016785763204097748, + 0.05823175981640816, + -0.011137187480926514, + 0.028506604954600334, + 0.0070802937261760235, + -0.03567471727728844, + -0.029264654964208603, + 0.11077967286109924, + -0.006142396479845047, + -0.027134299278259277, + 0.033171698451042175, + -0.005992839112877846, + -0.01941157504916191, + -0.07562747597694397, + -0.027822960168123245, + 0.01068776287138462, + -0.06396210193634033, + 0.06659205257892609, + 0.0473058745265007, + -0.04108644276857376, + 0.06850926578044891, + -0.037930749356746674, + -0.05754496157169342, + -0.047843314707279205, + -0.13164585828781128, + 0.16440364718437195, + 0.09240882843732834, + 0.02109512872993946, + -0.07503265142440796, + -0.03818577900528908, + 0.11606360226869583, + -0.004305548965930939, + -0.11100426316261292, + -0.07306322455406189, + 0.07542389631271362, + 0.18429842591285706, + -0.016988929361104965, + 0.019483918324112892, + 0.05982273817062378, + 0.11252015829086304, + 0.04116428643465042, + 0.07991175353527069, + 0.07670343667268753, + 0.0956476479768753, + 0.014019510708749294, + 0.036897871643304825, + 0.04997949302196503, + 0.0666642040014267, + -0.0033631548285484314, + -0.018157746642827988, + 0.020306186750531197, + -0.01118550170212984, + -0.0523250550031662, + -0.02172210067510605, + -0.028238940984010696, + -0.01570945419371128, + 0.0034297779202461243, + -0.003977117128670216, + 0.028729159384965897, + 0.012515516951680183, + -0.06733973324298859, + 0.04054859280586243, + 0.04000149667263031, + -0.04084627702832222, + 0.05878767371177673, + 0.02424379624426365, + -0.010608808137476444, + 0.028196848928928375, + -0.030981626361608505, + -0.1025228425860405, + -0.005650188773870468, + 0.018151061609387398, + -0.009235326200723648, + 0.0494488850235939, + 0.03304683044552803, + -0.04707948863506317, + 0.12458515167236328, + 0.03188218176364899, + -0.015951815992593765, + 0.04687663912773132, + -0.07101300358772278, + 0.10087639838457108, + 0.09593609720468521, + 0.004735417664051056, + 0.0658436268568039, + -0.04067708179354668, + 0.04357825219631195, + 0.06105254963040352, + -0.11678953468799591, + -0.039993468672037125, + 0.046250149607658386, + -0.002066663233563304, + 0.0014543826691806316, + 0.13816797733306885, + 0.03370920568704605, + 0.035824354737997055, + 0.12066216766834259, + -0.09924739599227905, + -0.06310063600540161, + -0.01783032715320587, + 0.07728970795869827, + -0.06144742667675018, + 0.051109518855810165, + 0.06654154509305954, + -0.03428902104496956, + 0.013600043021142483, + 0.05042201653122902, + -0.01720242388546467, + 0.015457747504115105, + 0.00633569061756134, + -0.05480961129069328, + 0.05744437128305435, + -0.05916483327746391, + -0.02087836153805256, + 0.08025971055030823, + 0.032897986471652985, + 0.04981597512960434, + -0.0178227461874485, + -0.029598254710435867, + -0.10776936262845993, + -0.005454982630908489, + 0.02400267869234085, + 0.1018771380186081, + 0.0014026444405317307, + 0.006253059022128582, + -0.07616347074508667, + -0.0826883316040039, + 0.03763645514845848, + -0.053547292947769165, + 0.09755547344684601, + -0.02633102610707283, + -0.004980175755918026, + 0.06643056124448776, + 0.0013255062513053417, + 0.006942296400666237, + -0.043009497225284576, + -0.025869157165288925, + 0.0230241846293211, + 0.03868516907095909, + -0.061113178730010986, + -0.04628463089466095, + -0.006677571684122086, + 0.032870154827833176, + -0.03237747773528099, + 0.017305508255958557, + 0.021627631038427353, + 0.028258226811885834, + 0.0037730673793703318, + -0.09021933376789093, + 0.036487333476543427, + -0.07960869371891022, + -0.016955388709902763, + 0.013353020884096622, + -0.016371123492717743, + -0.04316435009241104, + 0.10222162306308746, + 0.04196551814675331, + 0.007445049472153187, + -0.02195524424314499, + -0.08111335337162018, + -0.06170753389596939, + 0.050415799021720886, + 0.04873126745223999, + -0.013593791052699089, + 0.0507008358836174, + 0.04373297095298767, + -0.022381126880645752, + 0.0268389955163002, + 0.06883329898118973, + 0.08232976496219635, + 0.0065101878717541695, + -0.039970606565475464, + -0.07118874788284302, + 0.10195834189653397, + 0.09972754120826721, + -0.07307245582342148, + -0.06400041282176971, + -0.03322445973753929, + -0.08305425196886063, + 0.045970916748046875, + -0.02062268927693367, + -0.010524102486670017, + 0.04042370617389679, + -0.018243473023176193, + -0.13788217306137085, + -0.09079774469137192, + 0.08598054200410843, + -0.07443965971469879, + -0.013190265744924545, + -0.06539787352085114, + 0.02527713030576706, + 0.09252861887216568, + 0.015022635459899902, + -0.028417464345693588, + -0.018887314945459366, + 0.04335290938615799, + -0.07408102601766586, + 0.022785726934671402, + 0.05588337033987045, + 0.02137768268585205, + -0.12280511856079102, + 0.010940550826489925, + -0.07326871156692505, + 0.06430086493492126, + -0.03907422348856926, + 0.13647128641605377, + 0.032093070447444916, + -0.023616179823875427, + -0.08593961596488953, + 0.07636019587516785, + -0.02165522798895836, + 0.0666738748550415, + 0.04711022973060608, + 0.06940796971321106, + 0.06648463010787964, + -0.09064563363790512, + 0.09680681675672531, + 0.034255027770996094, + -0.028422709554433823, + -0.07090790569782257, + -0.031739503145217896, + -0.04116027057170868, + 0.020132046192884445, + 0.001373582985252142, + -0.06732317805290222, + -0.009879304096102715, + 0.02314138039946556, + -0.01892411895096302, + 0.07125674933195114, + 0.11903060972690582, + 0.067520871758461, + -0.08741383999586105 + ] + }, + "p244_222.wav": { + "name": "p244", + "embedding": [ + 0.06108405068516731, + 0.10647977888584137, + -0.000617398414760828, + 0.02306094579398632, + -0.03677089512348175, + 0.06461239606142044, + -0.14455847442150116, + 0.1188560351729393, + -0.037819743156433105, + 0.1366496980190277, + -0.0777558982372284, + 0.1260986626148224, + -0.013707634061574936, + -0.20751075446605682, + -0.057540133595466614, + 0.06460794806480408, + -0.05266393721103668, + -0.015345701947808266, + -0.031993567943573, + -0.0010810154490172863, + 0.027816448360681534, + 0.026042643934488297, + 0.057558976113796234, + -0.013864386826753616, + 0.04250806197524071, + 0.06557751446962357, + 0.02284429594874382, + 0.07405853271484375, + 0.026938017457723618, + -0.04421895742416382, + -0.04515006020665169, + 0.12181121110916138, + -0.03756125271320343, + 0.004845899064093828, + 0.07181832939386368, + -0.001529536210000515, + 0.017629370093345642, + -0.06470608711242676, + -0.002787746489048004, + 0.009170708246529102, + -0.028057973831892014, + 0.08416552096605301, + 0.032940350472927094, + -0.014416085556149483, + 0.04113847017288208, + 0.04639853164553642, + -0.0049102287739515305, + -0.053554147481918335, + -0.11086501181125641, + 0.15409603714942932, + 0.045271433889865875, + 0.01465653907507658, + -0.07471352070569992, + -0.07080671191215515, + 0.09942316263914108, + -0.023636285215616226, + -0.09994032233953476, + -0.055198147892951965, + 0.08141282200813293, + 0.16549062728881836, + -0.028426170349121094, + -0.038404498249292374, + 0.02772606536746025, + 0.12711147964000702, + 0.04499347135424614, + 0.09814967215061188, + 0.0759621188044548, + 0.10287846624851227, + 0.007442581932991743, + 0.03093777596950531, + 0.05855100601911545, + 0.06003308296203613, + 0.0315227210521698, + -0.020807866007089615, + 0.028356939554214478, + -0.011214344762265682, + -0.026853125542402267, + -0.0011568637564778328, + -0.023175891488790512, + -0.008345823734998703, + -0.01349436305463314, + 0.0054573859088122845, + 0.003318965435028076, + 0.020443931221961975, + -0.034833770245313644, + 0.062183864414691925, + 0.019940689206123352, + -0.01843925006687641, + 0.07633303105831146, + 0.04648476094007492, + 0.006451481021940708, + 0.04481981694698334, + -0.07290449738502502, + -0.0989399403333664, + 0.024432167410850525, + -0.0006473178509622812, + -0.0009979411261156201, + 0.05842795968055725, + 0.0470779687166214, + -0.023900527507066727, + 0.11235892027616501, + 0.0650775134563446, + -0.009484140202403069, + 0.041433170437812805, + -0.08686938881874084, + 0.13090765476226807, + 0.08511263132095337, + -0.0171419158577919, + 0.035695623606443405, + -0.03681721165776253, + 0.05405735969543457, + 0.08810330927371979, + -0.14205609261989594, + -0.08561797440052032, + 0.0380837544798851, + -0.0025956700555980206, + -0.013711372390389442, + 0.10192014276981354, + -0.026365328580141068, + 0.01982794515788555, + 0.09954655170440674, + -0.07655389606952667, + -0.06609588861465454, + -0.02775553986430168, + 0.03888038173317909, + -0.09195458889007568, + 0.05020830035209656, + 0.045806337147951126, + -0.007562024053186178, + -0.025427894666790962, + 0.0920066088438034, + -0.002037553582340479, + -0.014566872268915176, + 0.01678907871246338, + -0.03626510500907898, + 0.04148344695568085, + -0.032590076327323914, + 0.006460740230977535, + 0.044672563672065735, + 0.04504762962460518, + 0.03837810829281807, + 0.01426954660564661, + -0.03653022274374962, + -0.11600615084171295, + -0.00519973412156105, + 0.0408778190612793, + 0.07300679385662079, + -0.007406510412693024, + -0.027017386630177498, + -0.05593958497047424, + -0.047655969858169556, + 0.038142282515764236, + -0.001864137127995491, + 0.08079181611537933, + -0.008619028143584728, + -0.009942388162016869, + 0.10925580561161041, + -0.0028608774300664663, + 0.015234522521495819, + -0.04282653331756592, + -0.011723631992936134, + 0.03105689026415348, + 0.03336199000477791, + -0.07925215363502502, + -0.06928686052560806, + 0.0021465288009494543, + 0.011984403245151043, + -0.018805846571922302, + 0.04306516796350479, + 0.050752654671669006, + 0.015741048380732536, + 0.036435529589653015, + -0.054405488073825836, + 0.002457967959344387, + -0.09544603526592255, + -0.04390803351998329, + -0.03200002387166023, + -0.025547679513692856, + -0.03497427701950073, + 0.08301126956939697, + 0.02629021927714348, + 0.043635718524456024, + -0.01585550606250763, + -0.06971190869808197, + -0.07166323810815811, + 0.06328172236680984, + 0.08925635367631912, + 0.009984223172068596, + 0.0418478325009346, + 0.028708338737487793, + -0.010551339015364647, + 0.06710711121559143, + 0.06426020711660385, + 0.08199739456176758, + -0.012986479327082634, + -0.0061281174421310425, + -0.07090484350919724, + 0.09049259126186371, + 0.08384969830513, + -0.10082690417766571, + -0.08927126228809357, + -0.015235744416713715, + -0.06333670020103455, + 0.035051699727773666, + -0.021348778158426285, + 0.015651199966669083, + 0.038222990930080414, + -0.015520840883255005, + -0.086278036236763, + -0.1118512749671936, + 0.08274443447589874, + -0.07864677906036377, + -0.01918899267911911, + -0.05852116644382477, + 0.04227006435394287, + 0.07503014802932739, + 0.02317352220416069, + -0.024019388481974602, + -0.0008100592531263828, + 0.034582674503326416, + -0.0597623735666275, + -0.01632051169872284, + 0.03955225646495819, + 0.012612666934728622, + -0.1105913370847702, + 0.02210206352174282, + -0.07639829069375992, + 0.0775880217552185, + -0.07166879624128342, + 0.16558100283145905, + -0.0013572783209383488, + -0.04954211413860321, + -0.07835662364959717, + 0.028120549395680428, + -0.05300430953502655, + 0.051034968346357346, + 0.05053573101758957, + 0.060512661933898926, + 0.012358414940536022, + -0.08027291297912598, + 0.12044014781713486, + 0.03400711715221405, + -0.033008355647325516, + -0.09692864120006561, + -0.05187544226646423, + -0.051885444670915604, + 0.03630934655666351, + 0.02796216681599617, + -0.09565617144107819, + -0.00820917822420597, + 0.03872651606798172, + -0.0242586862295866, + 0.06536050885915756, + 0.13753463327884674, + 0.049971528351306915, + -0.0948898121714592 + ] + }, + "p244_405.wav": { + "name": "p244", + "embedding": [ + 0.006150184199213982, + 0.07486303895711899, + -0.02663586288690567, + 0.0396827831864357, + -0.07888508588075638, + 0.010312719270586967, + -0.12243877351284027, + 0.13704636693000793, + -0.028949812054634094, + 0.09931938350200653, + -0.055680595338344574, + 0.10770174860954285, + -0.04940880835056305, + -0.16307318210601807, + 0.013370392844080925, + 0.0590081624686718, + 0.01580122858285904, + -0.0392984114587307, + 0.004905190784484148, + -0.04926897957921028, + 0.03190212696790695, + 0.029246345162391663, + 0.023797329515218735, + 0.012916888110339642, + 0.018231522291898727, + 0.08257376402616501, + -0.004941157530993223, + 0.016237521544098854, + -0.02850126102566719, + -0.029211970046162605, + -0.040705520659685135, + 0.08973772823810577, + -0.05868818610906601, + -0.019737152382731438, + 0.027195440605282784, + -0.022931616753339767, + -0.011572642251849174, + -0.027735145762562752, + -0.012257655151188374, + -0.003778803627938032, + -0.07221400737762451, + 0.0690208375453949, + 0.007677680812776089, + 0.0059084706008434296, + 0.04964328184723854, + 0.0069380514323711395, + -0.014495120383799076, + 0.00042348168790340424, + -0.1041998416185379, + 0.10878968238830566, + 0.07086145877838135, + -0.014892393723130226, + -0.07496088743209839, + -0.04954609274864197, + 0.10084711015224457, + -0.0036116731353104115, + -0.07893861830234528, + -0.03851358965039253, + 0.08017651736736298, + 0.11820194125175476, + -0.021269669756293297, + -0.025731150060892105, + 0.028402242809534073, + 0.09672196209430695, + 0.05306058004498482, + 0.06293874233961105, + 0.06270907819271088, + 0.10115713626146317, + -0.03169447183609009, + -0.017554961144924164, + 0.04578503593802452, + 0.0643862634897232, + 0.03271199390292168, + -0.03324565291404724, + -0.0011138077825307846, + -0.007808767259120941, + -0.010554883629083633, + -0.007996179163455963, + -0.02066575363278389, + -0.040589839220047, + -0.03887881711125374, + -0.023241635411977768, + 0.0036468892358243465, + -0.002424311824142933, + -0.016072357073426247, + 0.04164430499076843, + 0.0916631892323494, + -0.012127167545258999, + 0.09183749556541443, + 0.032345131039619446, + -0.027274835854768753, + 0.08409694582223892, + -0.09570327401161194, + -0.010594004765152931, + 0.028875943273305893, + 0.004311061929911375, + 0.03434719890356064, + 0.09402434527873993, + 0.04503396153450012, + -0.010267440229654312, + 0.11724266409873962, + 0.03866402804851532, + 0.02592509798705578, + 0.020174629986286163, + -0.08992619812488556, + 0.09675423055887222, + 0.08227004110813141, + -0.047772254794836044, + 0.06291826069355011, + -0.029017098248004913, + 0.046312734484672546, + 0.038410574197769165, + -0.10050421953201294, + -0.052188120782375336, + -0.010445058345794678, + 0.0026838649064302444, + -0.022569473832845688, + 0.11409549415111542, + 0.0013011815026402473, + 0.030930712819099426, + 0.1021089106798172, + -0.09437777101993561, + -0.08424870669841766, + -0.03104417771100998, + 0.06071043014526367, + -0.07492244243621826, + 0.05981636419892311, + 0.07829509675502777, + -0.0015183121431618929, + 0.04802033305168152, + 0.052258338779211044, + 0.003569698426872492, + 0.027483439072966576, + 0.02442401647567749, + -0.05770420283079147, + 0.007335989736020565, + -0.008484814316034317, + 0.010443726554512978, + 0.055802639573812485, + 0.018053952604532242, + 0.07853730767965317, + -0.01988217793405056, + 0.02538875676691532, + -0.10057611763477325, + 0.012353873811662197, + 0.050762537866830826, + 0.04853710159659386, + -0.02888815477490425, + -0.042304977774620056, + -0.03410155326128006, + -0.08970526605844498, + 0.006184403318911791, + 0.008147899992763996, + 0.08079163730144501, + -0.02827638015151024, + 0.009538035839796066, + 0.10582235455513, + 0.06337680667638779, + -0.02251357212662697, + -0.0641975998878479, + -0.0424477644264698, + 3.231666050851345e-05, + 0.06074313074350357, + -0.09988382458686829, + -0.0822218731045723, + -0.048506107181310654, + 0.05525355041027069, + -0.011318358592689037, + 0.06881704926490784, + 0.04739636555314064, + 0.013998052105307579, + -0.0018474189564585686, + -0.08094143122434616, + 0.04934513196349144, + -0.04532060772180557, + -0.06087994948029518, + -0.03767145797610283, + -0.02540403977036476, + -0.037186309695243835, + 0.07746666669845581, + 0.03033493459224701, + 0.05804086849093437, + -0.02209402807056904, + -0.06133315712213516, + -0.08052507042884827, + 0.018595688045024872, + 0.040038686245679855, + -0.0474863238632679, + 0.06294899433851242, + 0.06302913278341293, + -0.08780153840780258, + 0.04541824758052826, + 0.08086102455854416, + 0.09481661021709442, + -0.05498076602816582, + 0.040893882513046265, + -0.04828319698572159, + 0.06915664672851562, + 0.09316052496433258, + -0.08082294464111328, + -0.07157042622566223, + -0.06226029992103577, + -0.05875064432621002, + 0.05325916409492493, + -0.006705602630972862, + 0.007173493038862944, + 0.008922797627747059, + 0.0010051140561699867, + -0.08783672749996185, + -0.08716591447591782, + 0.09316055476665497, + -0.03933382406830788, + 0.001842681085690856, + -0.08648964017629623, + 0.05154842883348465, + 0.0715637058019638, + 0.03526312857866287, + -0.031575605273246765, + -0.018471233546733856, + 0.049379266798496246, + 0.0066135115921497345, + 0.024725373834371567, + 0.08367547392845154, + 0.05745554342865944, + -0.0649101734161377, + -0.03061269223690033, + -0.06204616278409958, + 0.07283425331115723, + -0.020063556730747223, + 0.1344831883907318, + 0.012971446849405766, + -0.04990969970822334, + -0.08142311871051788, + 0.04272284358739853, + 0.01761619932949543, + 0.04632534831762314, + 0.03681449592113495, + 0.06272977590560913, + 0.01905830018222332, + -0.03894062712788582, + 0.10986852645874023, + 0.03639582172036171, + -0.03918122500181198, + -0.05495746433734894, + -0.02624659799039364, + -0.03168144449591637, + 0.031790416687726974, + 0.0030091446824371815, + -0.10187118500471115, + -0.001163753680884838, + 0.01260887086391449, + 0.008416254073381424, + 0.06408717483282089, + 0.12489663064479828, + 0.07984329760074615, + -0.0996938943862915 + ] + }, + "p244_209.wav": { + "name": "p244", + "embedding": [ + 0.04554061219096184, + 0.11203058063983917, + -0.022690575569868088, + 0.012570882216095924, + -0.0615958496928215, + 0.07376416027545929, + -0.14235931634902954, + 0.15235722064971924, + -0.046706777065992355, + 0.12507732212543488, + -0.046855293214321136, + 0.129477858543396, + -0.024960055947303772, + -0.17176952958106995, + -0.021041613072156906, + 0.06449992954730988, + -0.045246973633766174, + -0.024001698940992355, + -0.03731225058436394, + -0.023389948531985283, + 0.012416157871484756, + 0.00969479326158762, + 0.02865147590637207, + -0.005654540844261646, + 0.04920028895139694, + 0.07328611612319946, + -0.004259578417986631, + 0.03601548820734024, + 0.008022502064704895, + -0.041606515645980835, + -0.045118484646081924, + 0.08548715710639954, + -0.0744706243276596, + 0.00891790259629488, + 0.06726544350385666, + -0.027431055903434753, + -0.009889774955809116, + -0.05986803025007248, + -0.01781226322054863, + 0.0095668388530612, + -0.03194738179445267, + 0.09477731585502625, + 0.03949063643813133, + -0.013258501887321472, + 0.027089383453130722, + 0.03415452316403389, + 0.013282028026878834, + -0.029356781393289566, + -0.10565045475959778, + 0.14943604171276093, + 0.050647784024477005, + -0.012686577625572681, + -0.08229793608188629, + -0.05077778548002243, + 0.10782690346240997, + -0.013646011240780354, + -0.10708905011415482, + -0.04757320135831833, + 0.07076491415500641, + 0.13209493458271027, + -0.032981354743242264, + -0.02989504486322403, + 0.014626540243625641, + 0.11616101861000061, + 0.07205488532781601, + 0.0941612720489502, + 0.06344182044267654, + 0.12834662199020386, + -0.02709992229938507, + 0.02772194892168045, + 0.05921303480863571, + 0.05661766231060028, + 0.03217185288667679, + -0.010190636850893497, + 0.020447812974452972, + -0.015202559530735016, + -0.009804517030715942, + -0.007958756759762764, + -0.020177006721496582, + -0.026570476591587067, + -0.020499303936958313, + 0.01465735025703907, + 0.006320127286016941, + 0.0368126705288887, + -0.019491689279675484, + 0.06378576904535294, + 0.049740225076675415, + -0.01400289498269558, + 0.07588404417037964, + 0.0477759912610054, + -0.004408291541039944, + 0.07181099057197571, + -0.0982455164194107, + -0.07705365866422653, + 0.030861997976899147, + -0.011823715642094612, + 0.02100476250052452, + 0.06868617236614227, + 0.052775196731090546, + 0.005227831192314625, + 0.12321065366268158, + 0.08036582916975021, + -0.0026582195423543453, + 0.03345930576324463, + -0.08013419061899185, + 0.1489182710647583, + 0.06777560710906982, + -0.032821498811244965, + 0.0617402046918869, + -0.0419139489531517, + 0.060627661645412445, + 0.06578347086906433, + -0.13268868625164032, + -0.08071302622556686, + 0.03206353634595871, + 0.007593153510242701, + -0.03766091167926788, + 0.12570424377918243, + -0.012996343895792961, + 0.040022894740104675, + 0.09272041916847229, + -0.08462142944335938, + -0.060799576342105865, + -0.005340151954442263, + 0.046294644474983215, + -0.06936579197645187, + 0.05176942050457001, + 0.059186920523643494, + -0.014587939716875553, + 0.026085246354341507, + 0.10344952344894409, + 0.006480107083916664, + 0.0066401599906384945, + 0.039710916578769684, + -0.026408351957798004, + 0.02463318407535553, + -0.0038742409087717533, + 0.013036051765084267, + 0.039368100464344025, + 0.0274701826274395, + 0.05387243628501892, + -0.010584131814539433, + 0.0007623103447258472, + -0.11440053582191467, + 0.007891575805842876, + 0.044833824038505554, + 0.09002957493066788, + -0.015656176954507828, + -0.019652806222438812, + -0.02561333030462265, + -0.07534916698932648, + -0.007397412322461605, + 0.0013407572405412793, + 0.08129993081092834, + -0.03605617210268974, + -0.002478420501574874, + 0.11295334994792938, + 0.052500493824481964, + 0.008838511072099209, + -0.05739651247859001, + -0.021529018878936768, + 0.009963859803974628, + 0.052483148872852325, + -0.08580954372882843, + -0.07665330171585083, + -0.013039784505963326, + 0.023344095796346664, + -0.0171915665268898, + 0.08285190910100937, + 0.05510025471448898, + 0.01969613879919052, + 0.03363834321498871, + -0.06921479105949402, + 0.023840559646487236, + -0.0830773338675499, + -0.04601935297250748, + -0.025027308613061905, + -0.017561502754688263, + -0.05032380670309067, + 0.08441346138715744, + 0.02640497125685215, + 0.07303734123706818, + -0.013393362984061241, + -0.05665639787912369, + -0.06498357653617859, + 0.05435187369585037, + 0.056136228144168854, + -0.029903363436460495, + 0.03915030509233475, + 0.07154837995767593, + -0.02146207168698311, + 0.03729398921132088, + 0.07908403873443604, + 0.08505338430404663, + -0.042784012854099274, + 0.018649999052286148, + -0.06908175349235535, + 0.08047108352184296, + 0.07198572903871536, + -0.11198446154594421, + -0.07691173255443573, + -0.014908134937286377, + -0.05353359878063202, + 0.011819988489151001, + -0.034393392503261566, + 0.01607479900121689, + 0.026513660326600075, + -0.0025348826311528683, + -0.07555601745843887, + -0.11043053865432739, + 0.08997412025928497, + -0.09585773944854736, + 0.011909783817827702, + -0.07016541063785553, + 0.03988944739103317, + 0.08187173306941986, + 0.0337202213704586, + -0.040319688618183136, + -0.009234657511115074, + 0.04479823634028435, + -0.0054154894314706326, + 0.017220513895154, + 0.07073770463466644, + 0.04830370098352432, + -0.1012454479932785, + 0.005688146688044071, + -0.06045256182551384, + 0.06970404088497162, + -0.03492727130651474, + 0.17103973031044006, + 0.009815742261707783, + -0.04843275994062424, + -0.08546597510576248, + 0.02463780902326107, + -0.033158447593450546, + 0.04538648948073387, + 0.03275530785322189, + 0.07747878134250641, + 0.03365189582109451, + -0.037520162761211395, + 0.13304531574249268, + 0.029347743839025497, + -0.046014294028282166, + -0.07504291832447052, + -0.047618694603443146, + -0.04382602125406265, + 0.04885208606719971, + 0.034145064651966095, + -0.10433944314718246, + -0.017432769760489464, + 0.02739243023097515, + -0.011629210785031319, + 0.07152494043111801, + 0.14030449092388153, + 0.0901455283164978, + -0.1088985800743103 + ] + }, + "p244_262.wav": { + "name": "p244", + "embedding": [ + 0.05120299756526947, + 0.10064674913883209, + -0.009198248386383057, + 0.03181561827659607, + -0.027464676648378372, + 0.059713803231716156, + -0.12019693851470947, + 0.10171031951904297, + -0.0549749955534935, + 0.14529161155223846, + -0.10167531669139862, + 0.08058565109968185, + -0.04520229250192642, + -0.1540006399154663, + -0.030811607837677002, + 0.05386172980070114, + -0.053299810737371445, + -0.01922711730003357, + -0.0534542016685009, + -0.014393138699233532, + 0.01883978210389614, + 0.0478510782122612, + 0.04279084503650665, + 0.000983256846666336, + 0.025578733533620834, + 0.048070650547742844, + -0.008330855518579483, + 0.046740561723709106, + 0.018217366188764572, + -0.04601719602942467, + -0.03640662133693695, + 0.10691242665052414, + -0.03787381947040558, + 0.013880571350455284, + 0.03360014408826828, + 0.02640683576464653, + 0.005446490831673145, + -0.07871174812316895, + -0.022228408604860306, + -0.01679687201976776, + -0.051559366285800934, + 0.05953097343444824, + 0.014877522364258766, + -0.02390565536916256, + 0.047724224627017975, + -0.001975785940885544, + -0.02440449222922325, + -0.04622616991400719, + -0.10330905765295029, + 0.14947204291820526, + 0.07587133347988129, + 0.011020049452781677, + -0.06762873381376266, + -0.07256826758384705, + 0.0993395671248436, + -0.017549198120832443, + -0.11445820331573486, + -0.03620462864637375, + 0.07281570881605148, + 0.16579386591911316, + -0.03506751358509064, + -0.020623572170734406, + 0.025090089067816734, + 0.09251000732183456, + 0.043006882071495056, + 0.09177093207836151, + 0.07299482077360153, + 0.08901026099920273, + 0.009673969820141792, + 0.019041597843170166, + 0.054912857711315155, + 0.05111443251371384, + 0.04096747934818268, + -0.02290019765496254, + 0.015500959008932114, + 0.010975207202136517, + -0.05548204109072685, + 0.029323814436793327, + -0.021801603958010674, + -0.0268276147544384, + -0.01562955603003502, + -0.01665002852678299, + 0.004028484225273132, + 0.0057489871978759766, + -0.02529078722000122, + 0.03868642449378967, + 0.017912309616804123, + -0.025504259392619133, + 0.081025630235672, + 0.01614363305270672, + -0.021524760872125626, + 0.039032407104969025, + -0.05297297239303589, + -0.0774117112159729, + 0.0019693090580403805, + 0.02007894031703472, + -0.020108114928007126, + 0.06561096757650375, + 0.032936111092567444, + -0.03397076576948166, + 0.11859112977981567, + 0.02914871647953987, + 0.012230394408106804, + 0.026038264855742455, + -0.10060828924179077, + 0.10992293059825897, + 0.09210561215877533, + -0.025584470480680466, + 0.04101255163550377, + -0.026945700868964195, + 0.05010461062192917, + 0.094532310962677, + -0.1409962922334671, + -0.06595657020807266, + 0.03477557376027107, + 0.005723160691559315, + 0.003163047833368182, + 0.08979048579931259, + 0.011873684823513031, + 0.009905392304062843, + 0.10700945556163788, + -0.09858332574367523, + -0.07193516194820404, + -0.010667238384485245, + 0.06605319678783417, + -0.07471666485071182, + 0.03627766668796539, + 0.05868104100227356, + -0.007499083876609802, + -0.012288684025406837, + 0.07106181234121323, + -0.011516093276441097, + -0.002640204969793558, + 0.01817549578845501, + -0.05530492216348648, + 0.016140220686793327, + -0.05048815533518791, + -0.021855786442756653, + 0.06002534180879593, + 0.042694251984357834, + 0.040740713477134705, + -0.007539510261267424, + -0.03849566727876663, + -0.09793002903461456, + -0.00781581737101078, + 0.05755595490336418, + 0.06336479634046555, + -0.015316218137741089, + -0.006803087890148163, + -0.04839935153722763, + -0.06794807314872742, + 0.03540760278701782, + -0.026256216689944267, + 0.08967643976211548, + -0.01670888438820839, + 0.0030486376490443945, + 0.10669426620006561, + 0.005334311630576849, + -0.012910946272313595, + -0.0673343613743782, + -0.017182420939207077, + 0.022405754774808884, + 0.0445699505507946, + -0.06255318224430084, + -0.07514600455760956, + 0.01455737091600895, + 0.02201361209154129, + -0.015958227217197418, + 0.04392615705728531, + 0.02607680857181549, + 0.024369925260543823, + 0.02490142360329628, + -0.0620080940425396, + 0.017749782651662827, + -0.09628967940807343, + -0.05716310441493988, + 0.0007887704996392131, + -0.016899889335036278, + 0.00347130442969501, + 0.0864909216761589, + 0.023680610582232475, + 0.019430886954069138, + -0.004094429314136505, + -0.09232793748378754, + -0.0800931453704834, + 0.0773281455039978, + 0.07245152443647385, + -0.002572190947830677, + 0.04278305172920227, + 0.05977634713053703, + -0.03460359200835228, + 0.04080736264586449, + 0.05990650877356529, + 0.09472056478261948, + -0.010851381346583366, + 0.0008565721800550818, + -0.0702894851565361, + 0.060493744909763336, + 0.07853777706623077, + -0.09640085697174072, + -0.08468067646026611, + -0.034121692180633545, + -0.05222040042281151, + 0.05006510019302368, + -0.02324375882744789, + 0.00355984247289598, + 0.02056746557354927, + -0.04795808717608452, + -0.10008635371923447, + -0.10249678790569305, + 0.0991460531949997, + -0.040329381823539734, + -0.03207778185606003, + -0.062081363052129745, + 0.038931041955947876, + 0.05032260715961456, + 0.04021667689085007, + -0.012123688124120235, + 0.023056063801050186, + 0.03829475864768028, + -0.07204142212867737, + -0.01737365499138832, + 0.05538780987262726, + 0.006631760857999325, + -0.09748014807701111, + 0.02391437254846096, + -0.07799693197011948, + 0.09640856832265854, + -0.0530552864074707, + 0.14040398597717285, + -0.012564594857394695, + -0.04234730452299118, + -0.08746644109487534, + 0.03843048959970474, + -0.01989157125353813, + 0.0356820747256279, + 0.027692623436450958, + 0.04851682111620903, + 0.03417710214853287, + -0.05843823403120041, + 0.09970708191394806, + 0.03376253694295883, + -0.019092349335551262, + -0.05432802438735962, + -0.05789197236299515, + -0.04716051369905472, + -0.0011810425203293562, + -0.020108606666326523, + -0.08368172496557236, + 0.0032345810905098915, + -0.0013456593733280897, + -0.014470599591732025, + 0.055579543113708496, + 0.12378937005996704, + 0.06954917311668396, + -0.11114807426929474 + ] + }, + "p244_307.wav": { + "name": "p244", + "embedding": [ + 0.07949461787939072, + 0.060568638145923615, + 0.011187783442437649, + -0.012897009961307049, + -0.021683555096387863, + 0.038954585790634155, + -0.11727048456668854, + 0.12728755176067352, + -0.01069733314216137, + 0.0712699443101883, + -0.10045093297958374, + 0.08795025944709778, + -0.009208133444190025, + -0.1474396288394928, + -0.05166105553507805, + 0.03411835432052612, + -0.04587198421359062, + 0.0029495980124920607, + -0.07381324470043182, + -0.0390251986682415, + 0.006124039646238089, + 0.03995516896247864, + 0.04736756533384323, + 0.0026155165396630764, + 0.02561923861503601, + 0.04640624672174454, + 0.00765447411686182, + 0.03446386754512787, + 0.022265907377004623, + -0.030223004519939423, + -0.001370082376524806, + 0.06214786693453789, + -0.024774428457021713, + -0.013426894322037697, + 0.06032898277044296, + 0.004201333969831467, + 0.025060102343559265, + -0.08458250761032104, + -0.053098034113645554, + 0.03669635206460953, + -0.04677743837237358, + 0.0747847780585289, + 0.04658300802111626, + -0.0320415161550045, + 0.04678977280855179, + 0.025038182735443115, + -0.007283718325197697, + -0.065359927713871, + -0.11309584230184555, + 0.16030576825141907, + 0.03372855484485626, + 0.038035694509744644, + -0.11493288725614548, + -0.020032528787851334, + 0.08441051840782166, + -0.051686905324459076, + -0.06517340987920761, + -0.021187935024499893, + 0.041899263858795166, + 0.1304379403591156, + -0.010436488315463066, + -0.02348453179001808, + 0.035457950085401535, + 0.07750619947910309, + 0.03274114429950714, + 0.02156207524240017, + 0.12371983379125595, + 0.08539639413356781, + -0.022217383608222008, + 0.046658843755722046, + 0.050084859132766724, + 0.049062035977840424, + 0.06012868136167526, + -0.007840721867978573, + 0.019550366327166557, + -0.013254883699119091, + -0.03472450375556946, + -0.007717333734035492, + -0.03391638025641441, + -0.013201042078435421, + 0.018303032964468002, + 0.029951438307762146, + 0.026134736835956573, + 0.03313012048602104, + -0.06049787625670433, + 0.06319088488817215, + -0.007476852275431156, + 0.012833978049457073, + 0.05554402992129326, + 0.0520857572555542, + 0.0007505137473344803, + 0.01314343698322773, + -0.04405715689063072, + -0.101631760597229, + -0.00985995028167963, + -0.012346148490905762, + 0.00989186018705368, + 0.021427204832434654, + 0.04406476020812988, + -0.020252034068107605, + 0.11778900027275085, + 0.04004111886024475, + -0.0057243406772613525, + 0.0118165984749794, + -0.07032965868711472, + 0.07441701740026474, + 0.1132490485906601, + -0.01473800279200077, + 0.04842686653137207, + -0.03676936775445938, + 0.03227347880601883, + 0.06824705004692078, + -0.10059110820293427, + -0.050666436553001404, + 0.034025922417640686, + 0.01992403343319893, + 0.06628663092851639, + 0.09773280471563339, + -0.00686648627743125, + 0.03480812534689903, + 0.07369277626276016, + -0.06246021017432213, + -0.02311760187149048, + 0.004844106733798981, + 0.025671040639281273, + -0.023734595626592636, + 0.035982199013233185, + 0.03417159616947174, + 0.02171308360993862, + -0.03762689232826233, + 0.06432121247053146, + 0.00026883557438850403, + -0.010563733987510204, + -0.04531251639127731, + 0.01793282851576805, + 0.04393079876899719, + -0.01043899916112423, + -0.03221121057868004, + 0.05454322695732117, + 0.08619183301925659, + -7.935737812658772e-05, + 0.057754889130592346, + -0.06459271907806396, + -0.0988495945930481, + -0.014938399195671082, + 0.013154792599380016, + 0.07626243680715561, + -0.011631235480308533, + -0.023521875962615013, + -0.0593317411839962, + 0.0027350708842277527, + 0.008922724053263664, + -0.0015894817188382149, + 0.05241117998957634, + 0.019609250128269196, + -0.0074869743548333645, + 0.07494091987609863, + -0.02073526754975319, + 0.005760747008025646, + -0.027702657505869865, + 0.0036679785698652267, + 0.013160894624888897, + 0.03709305822849274, + -0.01999766007065773, + -0.07556463778018951, + 0.003888395382091403, + -0.012878922745585442, + -0.021384499967098236, + 0.021495744585990906, + 0.018334360793232918, + -0.01882268860936165, + 0.007084686309099197, + -0.0957961231470108, + 0.024479221552610397, + -0.11162912845611572, + -0.044010233134031296, + 0.04427838325500488, + -0.010144739411771297, + -0.01014002040028572, + 0.07332593947649002, + 0.035177893936634064, + 0.04477391391992569, + -0.02435200661420822, + -0.0928417444229126, + -0.01848919317126274, + 0.05670997500419617, + 0.05213698372244835, + 0.006668459624052048, + 0.024060701951384544, + 0.03254369646310806, + 0.015387165360152721, + 0.07812749594449997, + 0.059329282492399216, + 0.043402787297964096, + -0.026623714715242386, + -0.0352184996008873, + -0.009905691258609295, + 0.08500052988529205, + 0.026410698890686035, + -0.06237661466002464, + -0.07447698712348938, + -0.013357012532651424, + -0.038861218839883804, + 0.014166364446282387, + 0.01808328554034233, + 0.03062797151505947, + 0.045820802450180054, + -0.017765365540981293, + -0.08114000409841537, + -0.06574037671089172, + 0.04714152216911316, + -0.05616933852434158, + -0.008574734441936016, + -0.04053812474012375, + 0.025975925847887993, + 0.09962654113769531, + -0.012783469632267952, + 0.012731073424220085, + -0.014211846515536308, + -0.0182407908141613, + -0.05733984708786011, + -0.058074288070201874, + -0.012579414062201977, + 0.016277872025966644, + -0.07515512406826019, + 0.02345399372279644, + -0.061218541115522385, + 0.06251329183578491, + -0.011283209547400475, + 0.09383877366781235, + 0.019841421395540237, + -0.04171907156705856, + -0.07871886342763901, + 0.006532335188239813, + -0.037885598838329315, + 0.06602694094181061, + 0.03854357451200485, + 0.026059377938508987, + 0.027344686910510063, + -0.07157064974308014, + 0.08329394459724426, + 0.04517119750380516, + -0.06972470879554749, + -0.062236689031124115, + -0.0462288074195385, + -0.020593494176864624, + -0.0034223159309476614, + -0.008592184633016586, + -0.024082964286208153, + 0.010761437937617302, + -0.0004382531042210758, + -0.015213320031762123, + 0.04773759841918945, + 0.08949684351682663, + 0.04265237972140312, + -0.09109517931938171 + ] + }, + "p244_317.wav": { + "name": "p244", + "embedding": [ + 0.07287262380123138, + 0.09812655299901962, + -0.021208832040429115, + 0.03850402310490608, + -0.07162696123123169, + 0.0648140236735344, + -0.12628519535064697, + 0.13974134624004364, + -0.02610226720571518, + 0.129885733127594, + -0.06640173494815826, + 0.14288440346717834, + -0.010287001729011536, + -0.1601899266242981, + -0.021731993183493614, + 0.04952923208475113, + -0.021700704470276833, + -0.02625288814306259, + -0.023985104635357857, + -0.028499871492385864, + 0.03118227608501911, + 0.04160599410533905, + 0.05332249402999878, + -0.002992046996951103, + 0.054745152592659, + 0.06966624408960342, + -0.0009395353263244033, + 0.04502046853303909, + 0.008063578978180885, + -0.08579669147729874, + -0.057160384953022, + 0.0945606380701065, + -0.061264101415872574, + 0.0032800287008285522, + 0.029076963663101196, + -0.022528348490595818, + 0.00380022544413805, + -0.06907157599925995, + -0.023876851424574852, + 0.007949399761855602, + -0.01676177605986595, + 0.08136487007141113, + 0.023283667862415314, + -0.036747563630342484, + 0.02962793968617916, + 0.012359404936432838, + -0.008387601934373379, + -0.03573586046695709, + -0.11570741981267929, + 0.1545926034450531, + 0.044398095458745956, + 0.014608017168939114, + -0.09082023799419403, + -0.06231624633073807, + 0.09607076644897461, + -0.018600165843963623, + -0.08647225052118301, + -0.01390514150261879, + 0.05296076089143753, + 0.14547762274742126, + -0.02452581189572811, + -0.054665327072143555, + 0.03569508343935013, + 0.09698200225830078, + 0.07168664038181305, + 0.061679258942604065, + 0.09329447150230408, + 0.10733305662870407, + -0.030396249145269394, + 0.026943553239107132, + 0.03952915221452713, + 0.08464960753917694, + 0.0612327866256237, + -0.005286802537739277, + 0.01881735771894455, + -0.011168573051691055, + -0.016965147107839584, + -0.015385551378130913, + -0.024055443704128265, + -0.031704798340797424, + -0.00820000097155571, + 0.0071626221761107445, + 0.02996157482266426, + 0.022731129080057144, + -0.0473756417632103, + 0.06988761574029922, + 0.03998790681362152, + -0.021025387570261955, + 0.0691564679145813, + 0.02385052666068077, + 0.0004879394546151161, + 0.06089800223708153, + -0.10552428662776947, + -0.08132579922676086, + 0.05395034700632095, + 0.010697264224290848, + 0.041333168745040894, + 0.07342034578323364, + 0.05016401782631874, + -0.01877385377883911, + 0.12157661467790604, + 0.06947772204875946, + 0.004803154617547989, + 0.02142377942800522, + -0.07109080255031586, + 0.13085311651229858, + 0.10612626373767853, + -0.027801712974905968, + 0.06976963579654694, + -0.043461378663778305, + 0.07607149332761765, + 0.050334494560956955, + -0.1334487795829773, + -0.0855933129787445, + 0.0005198372527956963, + 0.0016730213537812233, + -0.00435918103903532, + 0.10285373032093048, + -0.017508653923869133, + 0.0595431849360466, + 0.0861605703830719, + -0.09845541417598724, + -0.04790602624416351, + -0.011123725213110447, + 0.05006946250796318, + -0.09202638268470764, + 0.06582152098417282, + 0.060340359807014465, + -0.013127563521265984, + 0.010660240426659584, + 0.06433922052383423, + -0.008391168899834156, + -8.185161277651787e-05, + 0.026775870472192764, + -0.03909194469451904, + 0.003920567687600851, + -0.014250450767576694, + -0.013476291671395302, + 0.044944800436496735, + 0.024158291518688202, + 0.053910691291093826, + -0.011822624132037163, + 0.0022026468068361282, + -0.12252455204725266, + 0.023967724293470383, + 0.040107645094394684, + 0.06133612245321274, + -0.01878652721643448, + -0.039683207869529724, + -0.0421222485601902, + -0.0647391751408577, + 0.026795582845807076, + 0.014656484127044678, + 0.06179057061672211, + -0.013332745991647243, + 0.0279209166765213, + 0.10027885437011719, + 0.04867444187402725, + -0.0032559907995164394, + -0.04472486302256584, + -0.027477780357003212, + 0.0199548602104187, + 0.058781616389751434, + -0.06735870242118835, + -0.0880742073059082, + -0.01830691657960415, + 0.015597738325595856, + -0.03948426619172096, + 0.07772333920001984, + 0.056880123913288116, + 0.018179992213845253, + 0.025067970156669617, + -0.050757184624671936, + 0.0135984281077981, + -0.08538985252380371, + -0.06018362566828728, + -0.010940629988908768, + -0.018102725967764854, + -0.045388177037239075, + 0.08171119540929794, + 0.046842060983181, + 0.07542505860328674, + -0.03924477845430374, + -0.03681180253624916, + -0.07686837017536163, + 0.040634848177433014, + 0.04490532726049423, + 0.0009370064362883568, + 0.038233280181884766, + 0.054543301463127136, + -0.011375145986676216, + 0.07440096884965897, + 0.07758422195911407, + 0.07506166398525238, + -0.024680450558662415, + 0.009687655605375767, + -0.05667247623205185, + 0.09242541342973709, + 0.09380477666854858, + -0.08070839196443558, + -0.10032813251018524, + -0.0528007373213768, + -0.08782586455345154, + 0.047522641718387604, + -0.012635288760066032, + 0.009085020050406456, + 0.04629762843251228, + -0.00791641604155302, + -0.09959010779857635, + -0.10159891843795776, + 0.09411372244358063, + -0.05321040377020836, + -0.005753286182880402, + -0.08195038139820099, + 0.04734867811203003, + 0.0924757719039917, + 0.021127838641405106, + -0.02258911356329918, + -0.018679888918995857, + 0.04119525104761124, + -0.028386883437633514, + 0.011035250499844551, + 0.06891360878944397, + 0.043381884694099426, + -0.10275459289550781, + 0.010195378214120865, + -0.06297419965267181, + 0.05426783859729767, + -0.03645864129066467, + 0.16502799093723297, + 0.01321455743163824, + -0.04021880403161049, + -0.07766009122133255, + 0.06149517372250557, + -0.03305260092020035, + 0.049475111067295074, + 0.038428179919719696, + 0.04784597083926201, + 0.04143907129764557, + -0.08937501907348633, + 0.09718994051218033, + 0.0493609681725502, + -0.06215425580739975, + -0.0791134238243103, + -0.06024787575006485, + -0.03535911440849304, + 0.0430782288312912, + 0.01140533946454525, + -0.07397814095020294, + -0.01946890540421009, + 0.02563999593257904, + 0.008153471164405346, + 0.06780000776052475, + 0.14000800251960754, + 0.054974816739559174, + -0.10458836704492569 + ] + }, + "p244_415.wav": { + "name": "p244", + "embedding": [ + 0.058067284524440765, + 0.0893227607011795, + -0.030312389135360718, + 0.04646793380379677, + -0.07127591222524643, + 0.04332885518670082, + -0.12645582854747772, + 0.1532977819442749, + -0.025171171873807907, + 0.11037133634090424, + -0.04186585918068886, + 0.14367029070854187, + -0.02286054939031601, + -0.1568336933851242, + -0.00952941458672285, + 0.06290179491043091, + -0.02803073823451996, + -0.03793657571077347, + -0.027420761063694954, + -0.02836836315691471, + 0.025234702974557877, + 0.03681153804063797, + 0.048528462648391724, + 0.004666874185204506, + 0.033877380192279816, + 0.07434079051017761, + 0.000545359100215137, + 0.04132701829075813, + 0.005177669692784548, + -0.0808003693819046, + -0.03775056451559067, + 0.05911478400230408, + -0.045480161905288696, + 0.0018779075471684337, + 0.043788984417915344, + -0.02096332050859928, + 0.009326329454779625, + -0.06752228736877441, + -0.03043370321393013, + 0.009451724588871002, + -0.028687600046396255, + 0.08782792836427689, + 0.023714181035757065, + -0.05109623819589615, + 0.03368489816784859, + 0.016965797170996666, + -0.012417862191796303, + -0.034621674567461014, + -0.1304643750190735, + 0.15918204188346863, + 0.06985440850257874, + 0.02254994958639145, + -0.07797078788280487, + -0.0716136246919632, + 0.10306482017040253, + -0.01833372190594673, + -0.0862683653831482, + -0.03610682860016823, + 0.04159664362668991, + 0.14838957786560059, + -0.03147515654563904, + -0.0333709716796875, + 0.04611481726169586, + 0.11668632924556732, + 0.08487186580896378, + 0.05578969419002533, + 0.0848270058631897, + 0.1147758811712265, + -0.0378837063908577, + 0.014784060418605804, + 0.04396802932024002, + 0.09811017662286758, + 0.05499691516160965, + 0.02712377905845642, + 0.012732685543596745, + -0.0035715075209736824, + -0.017779627814888954, + -0.030222231522202492, + -0.01923312246799469, + -0.03810152783989906, + -0.011781765148043633, + 0.028557024896144867, + 0.031861163675785065, + 0.035915203392505646, + -0.02787952683866024, + 0.08333998918533325, + 0.04314670339226723, + -0.036074694246053696, + 0.05345572531223297, + 0.010091962292790413, + -0.0012261332012712955, + 0.06143466383218765, + -0.09292957186698914, + -0.07938869297504425, + 0.0391998291015625, + 0.007879040203988552, + 0.04109611734747887, + 0.06540139019489288, + 0.03824850171804428, + -0.011523354798555374, + 0.12833857536315918, + 0.06414703279733658, + -0.008417329750955105, + 0.015326978638768196, + -0.06074152886867523, + 0.12265419960021973, + 0.09261180460453033, + -0.02315191552042961, + 0.0666816234588623, + -0.04495909810066223, + 0.05614197999238968, + 0.051403872668743134, + -0.13539981842041016, + -0.09437233954668045, + 0.013843344524502754, + 0.016391493380069733, + -0.0013717780821025372, + 0.1151512861251831, + 0.004831231199204922, + 0.08363498747348785, + 0.11100906878709793, + -0.09734444320201874, + -0.05176212638616562, + -0.017288226634263992, + 0.06478697806596756, + -0.07065464556217194, + 0.07043248414993286, + 0.07251787185668945, + -0.02083948627114296, + 0.013036048971116543, + 0.06383423507213593, + -0.005000622943043709, + 0.005346992984414101, + 0.029670171439647675, + -0.04830852150917053, + 0.0018671108409762383, + -0.023306110873818398, + -0.020518699660897255, + 0.05410680174827576, + 0.029584288597106934, + 0.042308881878852844, + -0.021279219537973404, + -0.012007934972643852, + -0.1413489580154419, + 0.020468702539801598, + 0.025663383305072784, + 0.08102765679359436, + -0.01640687882900238, + -0.04258911311626434, + -0.03528730571269989, + -0.05767165124416351, + -0.0024513958487659693, + 0.002797134220600128, + 0.06926766037940979, + -0.03796062618494034, + 0.026113150641322136, + 0.08327862620353699, + 0.03159724548459053, + 0.0011524453293532133, + -0.026547076180577278, + -0.030328424647450447, + 0.011921278201043606, + 0.0483260303735733, + -0.054908387362957, + -0.09149367362260818, + -0.02303958497941494, + 0.03207702189683914, + -0.03456190228462219, + 0.07238362729549408, + 0.03153205290436745, + 0.02135132998228073, + 0.014784670434892178, + -0.03967716544866562, + 0.009070847183465958, + -0.07512524724006653, + -0.06463807076215744, + -0.0033189565874636173, + -0.007927434518933296, + -0.05632192641496658, + 0.06921432912349701, + 0.05591483414173126, + 0.09423528611660004, + -0.02666090801358223, + -0.039530448615550995, + -0.08316946029663086, + 0.029457014054059982, + 0.03649041801691055, + -0.003669874044135213, + 0.0331098698079586, + 0.06503357738256454, + -0.0008020875975489616, + 0.060752056539058685, + 0.06747779995203018, + 0.06465288996696472, + -0.011219233274459839, + -0.004629882052540779, + -0.06862035393714905, + 0.10259202867746353, + 0.10305620729923248, + -0.07967409491539001, + -0.07247686386108398, + -0.05361294746398926, + -0.08480080962181091, + 0.031255416572093964, + -0.019485395401716232, + 0.026248019188642502, + 0.04815208166837692, + 0.0016986991977319121, + -0.11271826922893524, + -0.10436701774597168, + 0.08799659460783005, + -0.06697031855583191, + 0.008180145174264908, + -0.06587572395801544, + 0.03425324708223343, + 0.10831750929355621, + 0.028170038014650345, + -0.013335422612726688, + -0.03229941800236702, + 0.04446359723806381, + -0.017090871930122375, + 0.022185014560818672, + 0.08182848989963531, + 0.05815521627664566, + -0.10734014213085175, + 0.006630954798310995, + -0.05975199118256569, + 0.046057406812906265, + -0.030730079859495163, + 0.1507444679737091, + 0.025428546592593193, + -0.0332195870578289, + -0.100026436150074, + 0.0454246923327446, + -0.032541461288928986, + 0.07304184883832932, + 0.01367249060422182, + 0.057981640100479126, + 0.04804261028766632, + -0.07732157409191132, + 0.11484897881746292, + 0.05566709488630295, + -0.06280164420604706, + -0.07976042479276657, + -0.06635139137506485, + -0.03813374415040016, + 0.050071291625499725, + 0.017020627856254578, + -0.06796260178089142, + -0.029163800179958344, + 0.011476422660052776, + 0.002468606922775507, + 0.0651286318898201, + 0.15095466375350952, + 0.0551203116774559, + -0.1047293096780777 + ] + }, + "p244_015.wav": { + "name": "p244", + "embedding": [ + 0.04768791422247887, + 0.1038023978471756, + -0.008375261910259724, + 0.02361338585615158, + -0.04966993257403374, + 0.04966174438595772, + -0.13655820488929749, + 0.1499980390071869, + -0.03699888288974762, + 0.12817606329917908, + -0.07830827683210373, + 0.11906859278678894, + -0.03640062361955643, + -0.1703571379184723, + -0.038617633283138275, + 0.0552348867058754, + -0.040082044899463654, + -0.028848471119999886, + -0.02262851595878601, + -0.022506285458803177, + 0.03725938871502876, + 0.03424092382192612, + 0.02840529754757881, + 0.030595460906624794, + 0.011483050882816315, + 0.06076318025588989, + 0.003220993559807539, + 0.05165772885084152, + 0.02488390915095806, + -0.034632109105587006, + -0.02764706313610077, + 0.10113180428743362, + -0.031724605709314346, + 0.026377566158771515, + 0.05848006531596184, + 0.004901512060314417, + -0.00010101590305566788, + -0.060751866549253464, + -0.025395167991518974, + -0.009939974173903465, + -0.04935191199183464, + 0.0657394751906395, + 0.03179045766592026, + -0.025397110730409622, + 0.04179215058684349, + 0.030536971986293793, + -0.01239502802491188, + -0.04455961659550667, + -0.11052795499563217, + 0.15598750114440918, + 0.07115281373262405, + 0.00021465029567480087, + -0.0696483626961708, + -0.0649842619895935, + 0.10455935448408127, + -0.029638420790433884, + -0.11381565034389496, + -0.027551673352718353, + 0.08945506066083908, + 0.16281172633171082, + -0.03651569411158562, + -0.03665367141366005, + 0.028626572340726852, + 0.14046983420848846, + 0.05646975710988045, + 0.08372870087623596, + 0.08327992260456085, + 0.11525706946849823, + -0.03297501429915428, + 0.005391135346144438, + 0.05052007734775543, + 0.07390698790550232, + 0.056996751576662064, + 0.002330843359231949, + 0.010515816509723663, + 0.0046604713425040245, + -0.011606510728597641, + 0.016207868233323097, + -0.03990662842988968, + -0.025540757924318314, + -0.033042244613170624, + 0.012594479136168957, + -0.005486670881509781, + 0.017588326707482338, + -0.01607774943113327, + 0.06642503291368484, + 0.033493414521217346, + -0.0109384311363101, + 0.06355946511030197, + 0.03995100408792496, + 0.009713450446724892, + 0.06375499814748764, + -0.06752899289131165, + -0.07547534257173538, + 0.009767625480890274, + -0.011508455500006676, + 0.029611457139253616, + 0.07538942992687225, + 0.03697431460022926, + -0.009724915027618408, + 0.12485173344612122, + 0.047102976590394974, + -0.008874129503965378, + 0.025667879730463028, + -0.10017427802085876, + 0.12589143216609955, + 0.0819205492734909, + -0.0282256081700325, + 0.045261189341545105, + -0.04803197830915451, + 0.06286067515611649, + 0.07022027671337128, + -0.12824732065200806, + -0.07029028236865997, + 0.034385766834020615, + 0.037629384547472, + -0.012226099148392677, + 0.11054117977619171, + -0.002343215746805072, + 0.04066471382975578, + 0.10653765499591827, + -0.07831638306379318, + -0.05854064226150513, + -0.026472916826605797, + 0.047836773097515106, + -0.06946991384029388, + 0.05861261487007141, + 0.05053884908556938, + -0.003966029733419418, + 0.007339124102145433, + 0.08144031465053558, + -0.008454571478068829, + -0.0008470308966934681, + 0.015244506299495697, + -0.06007556989789009, + 0.006225106306374073, + -0.03031955100595951, + 0.000731293112039566, + 0.030719637870788574, + 0.05225618928670883, + 0.037865765392780304, + 0.010966302827000618, + -0.04077623784542084, + -0.11998993903398514, + 0.0026885599363595247, + 0.04770486801862717, + 0.09139063954353333, + -0.0013836813159286976, + -0.0351170152425766, + -0.032790206372737885, + -0.041779905557632446, + 0.0065431976690888405, + -0.011324722319841385, + 0.06559690833091736, + -0.04281152784824371, + -0.0033611564431339502, + 0.09369189292192459, + 0.014679024927318096, + -0.005216902121901512, + -0.055509135127067566, + -0.02560071274638176, + 0.002007425297051668, + 0.04050833359360695, + -0.07383427023887634, + -0.08304480463266373, + -0.0002447531442157924, + 0.041305284947156906, + -0.02455410361289978, + 0.058123134076595306, + 0.032818008214235306, + 0.00947754830121994, + 0.03128841519355774, + -0.0596349872648716, + 0.004870274104177952, + -0.11454420536756516, + -0.08269444108009338, + -0.000829013530164957, + 0.00200573168694973, + -0.0019308160990476608, + 0.06140463799238205, + 0.02870461903512478, + 0.05767691880464554, + 0.0036675629671663046, + -0.07797309756278992, + -0.08698533475399017, + 0.0574752539396286, + 0.0593416765332222, + 0.006689848378300667, + 0.05444847047328949, + 0.06600314378738403, + -0.03726369887590408, + 0.06448431313037872, + 0.05622803419828415, + 0.09721706062555313, + -0.028397785499691963, + 0.014910204336047173, + -0.07911734282970428, + 0.06420159339904785, + 0.08964196592569351, + -0.09473291039466858, + -0.08922693878412247, + -0.03390422463417053, + -0.058025240898132324, + 0.025755729526281357, + -0.022725708782672882, + 0.013013463467359543, + 0.02353849448263645, + -0.00919348280876875, + -0.10230857878923416, + -0.09148150682449341, + 0.08303786814212799, + -0.07841156423091888, + 0.005270365159958601, + -0.06845597922801971, + 0.04583996906876564, + 0.1019999161362648, + 0.030643977224826813, + -0.024208730086684227, + -0.011073879897594452, + 0.044817790389060974, + -0.04460766911506653, + -0.0075659602880477905, + 0.04045931622385979, + 0.03475702553987503, + -0.10747605562210083, + 0.01045961119234562, + -0.07758840918540955, + 0.05325476452708244, + -0.04263392463326454, + 0.15609893202781677, + 0.0094844875857234, + -0.06034635007381439, + -0.08462570607662201, + 0.021879073232412338, + -0.02535025030374527, + 0.050990503281354904, + 0.023496998474001884, + 0.0638401210308075, + 0.022477077320218086, + -0.06755144894123077, + 0.12847772240638733, + 0.043955229222774506, + -0.05313151329755783, + -0.0669863373041153, + -0.05408445745706558, + -0.042849231511354446, + 0.019862400367856026, + 0.008999675512313843, + -0.08073919266462326, + -0.041148602962493896, + 0.007624457590281963, + -0.022051235660910606, + 0.07023415714502335, + 0.1460942178964615, + 0.06400677561759949, + -0.11963648349046707 + ] + }, + "p244_032.wav": { + "name": "p244", + "embedding": [ + -0.01188711915165186, + 0.06625522673130035, + -0.00831049308180809, + -0.004781907424330711, + -0.052668534219264984, + -0.0048242006450891495, + -0.11836540699005127, + 0.08616682142019272, + -0.04351551830768585, + 0.1175503134727478, + -0.05088035762310028, + 0.09620077908039093, + -0.061810627579689026, + -0.10452895611524582, + 0.01632961817085743, + 0.042015574872493744, + 0.005897304974496365, + -0.03409339860081673, + 0.027958499267697334, + -0.0645514577627182, + 0.03647718206048012, + 0.030470484867691994, + 0.030655601993203163, + -0.01934850588440895, + 0.003906670957803726, + 0.10976450890302658, + -0.00640774006024003, + -0.0059716845862567425, + -0.02210822142660618, + -0.06405752152204514, + -0.019168052822351456, + 0.058570604771375656, + -0.04099530354142189, + -0.03509947657585144, + 0.017616426572203636, + 0.005466646980494261, + -0.01976843550801277, + 0.00806850753724575, + 0.013202630914747715, + 0.020887523889541626, + -0.10191480070352554, + 0.07419765740633011, + 0.014681350439786911, + -0.028000010177493095, + 0.04671332985162735, + -0.027274053543806076, + -0.009805994108319283, + 0.05115870013833046, + -0.05446751415729523, + 0.07528532296419144, + 0.056024834513664246, + 0.02607259340584278, + -0.0389796607196331, + -0.005889305844902992, + 0.0819193422794342, + -0.0019398597069084644, + -0.10414610803127289, + -0.0556391105055809, + 0.03510364517569542, + 0.08774062991142273, + -0.020911961793899536, + -0.03733760491013527, + 0.03289172425866127, + 0.043754030019044876, + 0.02807454764842987, + 0.053819455206394196, + 0.079327292740345, + 0.04505787044763565, + 0.01673889346420765, + -0.043045904487371445, + 0.04236074909567833, + 0.08083927631378174, + 0.017340268939733505, + -0.01643211580812931, + 0.005147438496351242, + -0.01772492378950119, + -0.0033138245344161987, + -0.023161349818110466, + 0.0021698414348065853, + -0.04750949889421463, + -0.07763303816318512, + -0.010324839502573013, + -0.01793944649398327, + -0.017057523131370544, + 0.0038300591986626387, + 0.011483555659651756, + 0.0899091362953186, + -0.015438033267855644, + 0.07464599609375, + 0.021847082301974297, + -0.03105020895600319, + 0.024164939299225807, + -0.0552210807800293, + 0.02267400547862053, + -0.032534364610910416, + 0.0014012441970407963, + 0.07328041642904282, + 0.07513455301523209, + 0.018158914521336555, + 0.05976384878158569, + 0.07564116269350052, + 0.04120542109012604, + 0.03481660783290863, + -0.01308203674852848, + -0.10204945504665375, + 0.09059125185012817, + 0.08239862322807312, + -0.052623942494392395, + 0.02987281233072281, + 0.009111860767006874, + 0.019559646025300026, + -0.007728610187768936, + -0.04271340370178223, + -0.038701750338077545, + -0.028318999335169792, + 0.01738334447145462, + -0.009474573656916618, + 0.10328489542007446, + 0.008171099238097668, + 0.013271029107272625, + 0.10169035941362381, + -0.06226537749171257, + -0.09379822760820389, + -0.04555366188287735, + 0.006536991335451603, + -0.09034588932991028, + 0.0816916897892952, + 0.08206852525472641, + 0.025976384058594704, + 0.05753330886363983, + 0.10056596994400024, + 0.04490719735622406, + 0.028951425105333328, + -0.012007491663098335, + -0.0375346876680851, + -0.02729448676109314, + -0.0016618762165307999, + 0.03772684186697006, + 0.09772370010614395, + 0.022057216614484787, + 0.11797572672367096, + 0.017297696322202682, + 0.03930283337831497, + -0.08895692229270935, + -0.0028343163430690765, + 0.052743859589099884, + -0.005000583827495575, + -0.04438042640686035, + -0.057568684220314026, + -0.02071535773575306, + -0.0772814080119133, + -0.02856944128870964, + -0.015664374455809593, + 0.10269123315811157, + -0.02886970527470112, + 0.002438697963953018, + 0.10477792471647263, + 0.03162193298339844, + -0.035482730716466904, + -0.0743105486035347, + -0.027705896645784378, + -0.030887611210346222, + 0.03420909866690636, + -0.12244793772697449, + -0.08316662907600403, + -0.06264621019363403, + 0.056584492325782776, + 0.024196021258831024, + 0.0590653121471405, + 0.08234939724206924, + -0.0035608764737844467, + 0.024543220177292824, + -0.0035933051258325577, + 0.041111912578344345, + -0.0173359178006649, + -0.07775815576314926, + -0.03748437762260437, + -0.0736989974975586, + -0.055103011429309845, + 0.09780008345842361, + -0.02854042686522007, + 0.05790594220161438, + -0.005274574272334576, + -0.07474908232688904, + -0.09095799922943115, + 0.01939188688993454, + 0.009807697497308254, + -0.03281751275062561, + 0.034140028059482574, + 0.045652925968170166, + -0.07827167212963104, + 0.00867852196097374, + 0.027385763823986053, + 0.10019810497760773, + -0.08702340722084045, + 0.020692003890872, + -0.0337986946105957, + 0.037198178470134735, + 0.07832574844360352, + -0.056864477694034576, + -0.03808499872684479, + -0.0748356282711029, + -0.0433616116642952, + 0.0624387264251709, + -0.02401670813560486, + -0.003761251224204898, + -0.028872497379779816, + -0.010717782191932201, + -0.06464382261037827, + -0.08557192981243134, + 0.05694718658924103, + -0.0225386805832386, + -0.0021352171897888184, + -0.07006906718015671, + 0.00639671366661787, + -0.028113337233662605, + 0.07894715666770935, + -0.03238864988088608, + 0.04183259978890419, + 0.03258354961872101, + -0.027144934982061386, + 0.043469663709402084, + 0.10967309772968292, + 0.07313565909862518, + 0.04370087385177612, + -0.06198803335428238, + -0.09775716066360474, + 0.04039975255727768, + -0.013393670320510864, + 0.08587761968374252, + 0.003024713834747672, + -0.0345228835940361, + -0.03793001174926758, + -0.007078884169459343, + -0.009705470874905586, + 0.011357232928276062, + 0.08665861189365387, + 0.08444835245609283, + 0.017336489632725716, + -0.025160761550068855, + 0.09940199553966522, + 0.05023011937737465, + 0.019195787608623505, + -0.03249872103333473, + -0.007951718755066395, + -0.052655283361673355, + 0.02440662682056427, + 0.017055300995707512, + -0.09439820796251297, + 0.052865300327539444, + -0.014228131622076035, + 0.045272815972566605, + 0.06708119809627533, + 0.07031679153442383, + 0.06069574132561684, + -0.077654629945755 + ] + }, + "p244_269.wav": { + "name": "p244", + "embedding": [ + 0.043188270181417465, + 0.06754006445407867, + -0.0046090250834822655, + 0.03543921187520027, + -0.00901294406503439, + 0.016896938905119896, + -0.17503750324249268, + 0.1317102611064911, + -0.016218213364481926, + 0.11818666756153107, + -0.07899683713912964, + 0.0836830735206604, + -0.03136177733540535, + -0.18524695932865143, + -0.023374861106276512, + 0.0700950101017952, + -0.0433889776468277, + -0.04634470120072365, + -0.014967952854931355, + -0.019687380641698837, + 0.025393595919013023, + 0.05063102766871452, + 0.017916766926646233, + 0.04127265140414238, + 0.012588636949658394, + 0.05260131508111954, + -0.008248372934758663, + 0.04324382171034813, + 0.011535861529409885, + -0.011157146655023098, + 0.00830159243196249, + 0.09009288251399994, + -0.008959900587797165, + -0.012100247666239738, + 0.04191485419869423, + 0.02804763987660408, + 0.015345752239227295, + -0.08738559484481812, + -0.04963134601712227, + -0.013319544494152069, + -0.08665508776903152, + 0.06355902552604675, + 0.0249958299100399, + -0.044417623430490494, + 0.049563728272914886, + 0.014120201580226421, + -0.02172059938311577, + -0.05984076112508774, + -0.13904255628585815, + 0.15283802151679993, + 0.07860483974218369, + 0.05056928098201752, + -0.07592335343360901, + -0.06460545212030411, + 0.10170937329530716, + -0.015339731238782406, + -0.07761327922344208, + -0.033291544765233994, + 0.0715920701622963, + 0.19502979516983032, + -0.03760373592376709, + -0.020331304520368576, + 0.0625385195016861, + 0.11397353559732437, + 0.07562453299760818, + 0.0665394514799118, + 0.08445276319980621, + 0.09562565386295319, + -0.004549246747046709, + -0.018947312608361244, + 0.058560777455568314, + 0.07362554967403412, + 0.05120028555393219, + -0.009791478514671326, + -0.006725577637553215, + 0.0453454926609993, + -0.0548599474132061, + -0.0026478907093405724, + -0.019585244357585907, + -0.013843489810824394, + 0.00030223093926906586, + 0.011205877177417278, + -0.003757013939321041, + 0.04755447804927826, + -0.03764592483639717, + 0.044770389795303345, + 0.028700197115540504, + -0.04432448744773865, + 0.07111864537000656, + 0.003461036831140518, + -0.003499911166727543, + 0.04571731016039848, + -0.060762062668800354, + -0.06865407526493073, + 0.00071398273576051, + 0.004833770915865898, + -0.01154659129679203, + 0.06705448031425476, + 0.05232331156730652, + -0.037748683243989944, + 0.14481626451015472, + 0.026373064145445824, + -0.0021234648302197456, + 0.03736547753214836, + -0.09914448857307434, + 0.08727934956550598, + 0.07670259475708008, + -0.04015442356467247, + 0.054956886917352676, + -0.025876769796013832, + 0.02189938724040985, + 0.08436337113380432, + -0.13968423008918762, + -0.05992065370082855, + 0.07738327234983444, + 0.05129336938261986, + 0.020247388631105423, + 0.13317638635635376, + 0.03032919391989708, + 0.046734005212783813, + 0.10777594149112701, + -0.0812952071428299, + -0.07100014388561249, + -0.023438122123479843, + 0.08249648660421371, + -0.0684526115655899, + 0.07754072546958923, + 0.051120027899742126, + -0.003098198212683201, + -0.013298695906996727, + 0.0563349686563015, + -0.010315867140889168, + -0.014417883940041065, + -0.043545931577682495, + -0.02614917978644371, + 0.03231782093644142, + -0.0559900626540184, + -0.025218794122338295, + 0.029969472438097, + 0.038159675896167755, + 0.01856156624853611, + 0.031086310744285583, + -0.05751354992389679, + -0.14432883262634277, + -0.00914852600544691, + 0.047526322305202484, + 0.12105955183506012, + 0.001871981774456799, + -0.03011206164956093, + -0.07796687632799149, + -0.028393574059009552, + -0.006057681515812874, + -0.03213135153055191, + 0.0854203850030899, + -0.019392486661672592, + 0.01712975651025772, + 0.0738794356584549, + -0.028170831501483917, + 0.017100265249609947, + -0.013195020146667957, + -0.006544120144098997, + 0.00022461963817477226, + 0.02575882524251938, + -0.03552587702870369, + -0.08761981129646301, + -0.006609617732465267, + 0.04760165512561798, + -0.012265356257557869, + 0.04584185406565666, + -0.008293370716273785, + 0.02469658851623535, + -0.006775896996259689, + -0.0814058929681778, + 0.01850796677172184, + -0.10996183753013611, + -0.06694521754980087, + 0.010238923132419586, + 0.02293381839990616, + -0.005405546631664038, + 0.07504110783338547, + 0.04271293431520462, + 0.05312616750597954, + -0.012783853337168694, + -0.09331725537776947, + -0.08945153653621674, + 0.04453081637620926, + 0.07193391025066376, + -0.006654529832303524, + 0.028781499713659286, + 0.053874991834163666, + -0.0065183802507817745, + 0.043916866183280945, + 0.05222728103399277, + 0.0969514325261116, + 0.012298735789954662, + -0.012213082984089851, + -0.05426079407334328, + 0.08864711225032806, + 0.08832566440105438, + -0.06675060093402863, + -0.06448246538639069, + -0.01771804317831993, + -0.0857917070388794, + 0.02745750918984413, + 0.005977815482765436, + 0.03675169497728348, + 0.014475969597697258, + -0.03921148180961609, + -0.1100311353802681, + -0.08065205812454224, + 0.05797690898180008, + -0.07158307731151581, + -0.025568712502717972, + -0.06325100362300873, + 0.03438715264201164, + 0.09574148058891296, + 0.02740497514605522, + 0.012809514999389648, + -0.03570249304175377, + 0.014045970514416695, + -0.059785354882478714, + -0.019405698403716087, + 0.0686202123761177, + 0.0145002081990242, + -0.1368439942598343, + 0.019005727022886276, + -0.08088831603527069, + 0.08610788732767105, + -0.039045244455337524, + 0.11963413655757904, + 0.0189470537006855, + -0.04442707449197769, + -0.11223796010017395, + 0.00230557844042778, + 0.0001906536053866148, + 0.0760858952999115, + 0.004620065912604332, + 0.06601983308792114, + 0.05221652239561081, + -0.05759742483496666, + 0.09414134919643402, + 0.055526018142700195, + -0.027415843680500984, + -0.07023858278989792, + -0.0772908478975296, + -0.03206964209675789, + 0.00921714399009943, + -0.017963599413633347, + -0.053240980952978134, + -0.031061403453350067, + 0.0010671745985746384, + -0.020833026617765427, + 0.051593609154224396, + 0.12104552984237671, + 0.04042566195130348, + -0.13464613258838654 + ] + }, + "p244_037.wav": { + "name": "p244", + "embedding": [ + 0.04609669744968414, + 0.09222640097141266, + -0.021580945700407028, + -0.007860828191041946, + -0.061783574521541595, + 0.06006797030568123, + -0.13974528014659882, + 0.1572941690683365, + -0.01893703080713749, + 0.15708225965499878, + -0.04577142745256424, + 0.11284228414297104, + -0.018952466547489166, + -0.16305415332317352, + 0.016773587092757225, + 0.03552253544330597, + -0.025087224319577217, + -0.009207624942064285, + -0.04919926077127457, + -0.0416649729013443, + 0.03713240846991539, + 0.05016947537660599, + 0.0034473116975277662, + -0.04233551770448685, + 0.04089212790131569, + 0.06757853925228119, + -0.01526365801692009, + 0.014758951961994171, + -0.020787740126252174, + -0.09067264199256897, + -0.029084565117955208, + 0.0824318379163742, + -0.07493158429861069, + 0.02193271741271019, + 0.04490305483341217, + -0.033598922193050385, + -0.02999694272875786, + -0.048222094774246216, + -0.016400400549173355, + 0.026411881670355797, + -0.030350323766469955, + 0.07466590404510498, + 0.031496476382017136, + -0.013369981199502945, + 0.034805312752723694, + 0.02624635025858879, + 0.010254791006445885, + -0.05790404975414276, + -0.08454491198062897, + 0.17806588113307953, + 0.06169036775827408, + -0.010130185633897781, + -0.07536923140287399, + -0.06999798119068146, + 0.07886391878128052, + -0.010923977941274643, + -0.10704685747623444, + -0.035509947687387466, + 0.06493796408176422, + 0.1167929470539093, + -0.03196975216269493, + -0.05899728834629059, + 0.036019884049892426, + 0.09695275872945786, + 0.033059410750865936, + 0.08582562953233719, + 0.08032701909542084, + 0.10065419971942902, + -0.0390830934047699, + 0.018514294177293777, + 0.02781863324344158, + 0.06818731129169464, + 0.06486813724040985, + -0.0036366276908665895, + 0.035354167222976685, + -0.01616598106920719, + -0.006658309139311314, + -0.02056843973696232, + -0.02860332280397415, + -0.02609509788453579, + 0.005031350534409285, + 0.03522000461816788, + 0.034547239542007446, + 0.02819076180458069, + -0.01877441443502903, + 0.04965593293309212, + 0.045803338289260864, + -0.005627406761050224, + 0.06998837739229202, + 0.02237764373421669, + 0.0272560752928257, + 0.06686674803495407, + -0.10932575166225433, + -0.07156263291835785, + 0.047745078802108765, + -0.0029689257498830557, + 0.023999961093068123, + 0.07677839696407318, + 0.037881746888160706, + -0.005913769826292992, + 0.12067724019289017, + 0.04483922943472862, + -0.004491080529987812, + 0.014486407861113548, + -0.08959780633449554, + 0.13031843304634094, + 0.08334760367870331, + -0.03728418052196503, + 0.06964993476867676, + -0.09102222323417664, + 0.08135947585105896, + 0.033127930015325546, + -0.13510015606880188, + -0.08155511319637299, + 0.009679942391812801, + 0.013115852139890194, + -0.03724256902933121, + 0.1454598307609558, + -0.0009383014403283596, + 0.046949610114097595, + 0.11815674602985382, + -0.11829824000597, + -0.05062666907906532, + -0.0031384832691401243, + 0.05140610784292221, + -0.09652836620807648, + 0.05646078288555145, + 0.057847727090120316, + -0.033176254481077194, + 0.05630228668451309, + 0.08088172227144241, + -0.00880347564816475, + 0.03843264654278755, + -0.0032733329571783543, + -0.019882170483469963, + -0.00621398352086544, + -0.02687975764274597, + -0.009145697578787804, + 0.009932249784469604, + 0.04096008837223053, + 0.060400865972042084, + -0.01653945818543434, + -0.036286938935518265, + -0.12436745315790176, + 0.028956200927495956, + 0.023186005651950836, + 0.0665820837020874, + -0.026146600022912025, + -0.01369603630155325, + -0.02332121506333351, + -0.08666503429412842, + -0.014629652723670006, + -0.008633685298264027, + 0.052349481731653214, + -0.017126744613051414, + 0.013444039970636368, + 0.10813011229038239, + 0.08143388479948044, + -0.001739000785164535, + -0.055203285068273544, + -0.04999531805515289, + -0.003291212022304535, + 0.05781901627779007, + -0.08451740443706512, + -0.08357247710227966, + -0.026935193687677383, + 0.017547722905874252, + -0.015352196991443634, + 0.07713228464126587, + 0.0567568838596344, + 0.031177904456853867, + 0.03036363795399666, + -0.0856899619102478, + 0.0108160600066185, + -0.09755423665046692, + -0.0910363644361496, + -0.0035922054667025805, + -0.02248934842646122, + -0.034227244555950165, + 0.09109952300786972, + -0.0031366595067083836, + 0.058473341166973114, + -0.04336543381214142, + -0.03557639569044113, + -0.07899877429008484, + 0.044662900269031525, + 0.053626999258995056, + -0.03456380218267441, + 0.027364976704120636, + 0.052126195281744, + -0.03719847649335861, + 0.04360978305339813, + 0.07095316797494888, + 0.10449156165122986, + -0.028690554201602936, + 0.040072932839393616, + -0.06536900997161865, + 0.10065025091171265, + 0.08322034031152725, + -0.06778895854949951, + -0.08254542946815491, + -0.029918517917394638, + -0.08285269141197205, + 0.013713628053665161, + -0.020251410081982613, + 0.008273718878626823, + 0.014594011008739471, + 0.018047023564577103, + -0.08213038742542267, + -0.06951283663511276, + 0.06144186854362488, + -0.05227737873792648, + 0.003920239396393299, + -0.08412112295627594, + 0.058473143726587296, + 0.10167743265628815, + 0.06815382093191147, + -0.03507998585700989, + -0.043486788868904114, + 0.04966083914041519, + -0.010655608028173447, + 0.037047214806079865, + 0.05253640562295914, + 0.062124013900756836, + -0.0771397203207016, + 0.014247935265302658, + -0.06520361453294754, + 0.02729090303182602, + -0.044595688581466675, + 0.14254812896251678, + 0.02001035213470459, + -0.06780388951301575, + -0.08250142633914948, + 0.049276575446128845, + -0.015911217778921127, + 0.03274648264050484, + 0.005543240811675787, + 0.056914784014225006, + 0.08050018548965454, + -0.06584154069423676, + 0.10323192179203033, + 0.037204086780548096, + -0.0305505208671093, + -0.04460560530424118, + -0.0715683251619339, + -0.033582091331481934, + 0.03321485593914986, + 0.01046678051352501, + -0.09335173666477203, + -0.021143507212400436, + 0.022524219006299973, + 0.015885308384895325, + 0.05675407499074936, + 0.13817960023880005, + 0.05248038470745087, + -0.143670916557312 + ] + }, + "p244_393.wav": { + "name": "p244", + "embedding": [ + 0.05530662089586258, + 0.1088857501745224, + 0.008988786488771439, + 0.01784309186041355, + -0.030639272183179855, + 0.07027558982372284, + -0.10097402334213257, + 0.1023658961057663, + -0.0766238421201706, + 0.16351431608200073, + -0.10559310019016266, + 0.10644276440143585, + -0.02578745223581791, + -0.1821451485157013, + -0.03532141447067261, + 0.059792470186948776, + -0.0461631715297699, + 0.01539262942969799, + -0.046933915466070175, + 0.01586638204753399, + 0.04203175753355026, + 0.01844155415892601, + 0.046235255897045135, + -0.022742722183465958, + 0.02208073064684868, + 0.05181122571229935, + 0.01358347199857235, + 0.06403128057718277, + 0.03775842860341072, + -0.06724154949188232, + -0.0505983792245388, + 0.1335136890411377, + -0.030034013092517853, + 0.037271201610565186, + 0.07619142532348633, + 0.0005601946031674743, + -0.00622314028441906, + -0.06347787380218506, + -0.0028285153675824404, + -0.02228790894150734, + -0.03871477395296097, + 0.05279888957738876, + 0.007102621719241142, + -0.0027087335474789143, + 0.050753604620695114, + 0.026941947638988495, + -0.03679877519607544, + -0.04683280736207962, + -0.06946438550949097, + 0.13554079830646515, + 0.06651115417480469, + -0.0076645174995064735, + -0.055342089384794235, + -0.0814715325832367, + 0.09769266843795776, + -0.006122160237282515, + -0.1286291927099228, + -0.03884165734052658, + 0.08187872171401978, + 0.15789306163787842, + -0.01255965419113636, + -0.01965622790157795, + 0.000936754746362567, + 0.11203307658433914, + 0.013742724433541298, + 0.13842903077602386, + 0.047786012291908264, + 0.07087390124797821, + 0.030398428440093994, + 0.07165579497814178, + 0.053150005638599396, + 0.05984397977590561, + 0.029337119311094284, + -0.03959588706493378, + 0.03824008256196976, + -0.0011095469817519188, + -0.055469684302806854, + 0.03651096299290657, + -0.016719479113817215, + -0.002931940369307995, + -0.02610219642519951, + -0.010150215588510036, + 0.000319132290314883, + -0.029345188289880753, + -0.01799951121211052, + 0.03866168111562729, + -0.00132135977037251, + 0.002645906526595354, + 0.06611339002847672, + 0.0475812666118145, + -0.0018685436807572842, + 0.04292016848921776, + -0.05228336900472641, + -0.11982500553131104, + 0.005134557839483023, + 0.024468548595905304, + -0.013861969113349915, + 0.07783159613609314, + 0.03244499862194061, + -0.027328571304678917, + 0.08965101838111877, + 0.05981936305761337, + 0.013851205818355083, + 0.03916709125041962, + -0.10425898432731628, + 0.11276708543300629, + 0.07240784913301468, + -0.007321341894567013, + 0.03561032935976982, + -0.04126888886094093, + 0.1098979264497757, + 0.11309238523244858, + -0.1570119857788086, + -0.0599294975399971, + 0.009163441136479378, + -0.044725172221660614, + -0.011734546162188053, + 0.07368879020214081, + -0.02177392691373825, + -0.01804506964981556, + 0.09623777866363525, + -0.08770816028118134, + -0.08303876966238022, + -0.036671463400125504, + 0.03571299463510513, + -0.09542216360569, + 0.05138307809829712, + 0.013270329684019089, + -0.016620106995105743, + -0.021379929035902023, + 0.09141936898231506, + -0.0257705245167017, + 0.0022647941950708628, + 0.03724340721964836, + -0.05840606242418289, + 0.03802359104156494, + -0.07776792347431183, + 0.024501170963048935, + 0.048821136355400085, + 0.039485346525907516, + 0.04355578124523163, + -0.003665660973638296, + -0.02845750004053116, + -0.07236877083778381, + 0.0011151626240462065, + 0.05966826528310776, + 0.038260750472545624, + 0.002763192867860198, + -0.015233759768307209, + -0.03216845542192459, + -0.0736001506447792, + 0.03771291673183441, + -0.037575677037239075, + 0.0781431645154953, + 0.019384153187274933, + 0.012083210051059723, + 0.10935518145561218, + -0.000770034734159708, + -0.004057230893522501, + -0.0916900783777237, + -0.03057168610394001, + 0.052336398512125015, + 0.051838260143995285, + -0.09908740222454071, + -0.04938942939043045, + 0.03215978294610977, + -0.009341701865196228, + -0.01763584464788437, + 0.004455825313925743, + 0.0385122187435627, + 0.012533154338598251, + 0.051012393087148666, + -0.08356431126594543, + 0.018377896398305893, + -0.12244333326816559, + -0.06145000457763672, + -0.040509212762117386, + -0.049166321754455566, + 0.014641071669757366, + 0.07391637563705444, + -0.011827418580651283, + -0.01098037138581276, + 0.010094106197357178, + -0.08562122285366058, + -0.07483024895191193, + 0.09132589399814606, + 0.09051018208265305, + 0.019135357812047005, + 0.06368987262248993, + 0.025856012478470802, + -0.052498724311590195, + 0.04427434504032135, + 0.03813819959759712, + 0.101869598031044, + -0.01590631902217865, + 0.01648394949734211, + -0.07157225906848907, + 0.06433074176311493, + 0.09952537715435028, + -0.1102757602930069, + -0.10353618115186691, + -0.0224351417273283, + -0.042653314769268036, + 0.061965398490428925, + -0.029270488768815994, + -0.03451372683048248, + 0.027202606201171875, + -0.03634292632341385, + -0.08256484568119049, + -0.07669669389724731, + 0.1102551817893982, + -0.05407509207725525, + -0.04677741229534149, + -0.0627153068780899, + 0.048075832426548004, + 0.05095774307847023, + 0.04005669802427292, + -0.041475966572761536, + 0.026560351252555847, + 0.06449370086193085, + -0.0905550867319107, + -0.03770618885755539, + 0.024762704968452454, + -0.01287880726158619, + -0.07591540366411209, + 0.036659061908721924, + -0.06936539709568024, + 0.0742499977350235, + -0.09778933227062225, + 0.16195210814476013, + -0.04923267662525177, + -0.07773558050394058, + -0.07250361144542694, + 0.04834870994091034, + -0.014704234898090363, + 0.005917171016335487, + 0.05249428376555443, + 0.0451120063662529, + 0.010318396613001823, + -0.09057088196277618, + 0.11524202674627304, + -0.0012188596883788705, + 0.016066759824752808, + -0.0481545627117157, + -0.026720672845840454, + -0.06104463338851929, + 0.004469484090805054, + -0.009005793370306492, + -0.11097265779972076, + 0.01585230976343155, + 0.013256056234240532, + -0.030193552374839783, + 0.05704198032617569, + 0.13108649849891663, + 0.05106084793806076, + -0.10437096655368805 + ] + }, + "p244_195.wav": { + "name": "p244", + "embedding": [ + 0.04827830195426941, + 0.1026773452758789, + -0.01689162105321884, + 0.008859441615641117, + -0.053340598940849304, + 0.09638083726167679, + -0.0787772461771965, + 0.06287100166082382, + -0.08969427645206451, + 0.14988696575164795, + -0.10372394323348999, + 0.10696819424629211, + -0.026919838041067123, + -0.1417953073978424, + -0.07515859603881836, + 0.023175358772277832, + -0.052820585668087006, + 0.004614276811480522, + -0.0941750705242157, + -0.022364124655723572, + 0.04345572367310524, + 0.028496183454990387, + 0.06338748335838318, + -0.06624269485473633, + 0.05804012715816498, + 0.0455804280936718, + 0.014261881820857525, + 0.03877191245555878, + 0.021478688344359398, + -0.08018092811107635, + -0.05144444853067398, + 0.12878336012363434, + -0.041159532964229584, + 5.4697273299098015e-05, + 0.026911098510026932, + 0.011828627437353134, + 0.020086782053112984, + -0.06743556261062622, + -0.01238650269806385, + 0.026590799912810326, + -0.006153291091322899, + 0.055473826825618744, + -0.0046122707426548, + -0.024382077157497406, + 0.03174358606338501, + -0.010593142360448837, + -0.0375235341489315, + -0.03798094019293785, + -0.07185395807027817, + 0.1392531394958496, + 0.013006547465920448, + 0.0051694344729185104, + -0.09977493435144424, + -0.08611531555652618, + 0.12495452165603638, + -0.013304970227181911, + -0.10877165198326111, + -0.02003926783800125, + 0.04133256524801254, + 0.16522929072380066, + -0.02026687189936638, + -0.023397861048579216, + 0.020558368414640427, + 0.05235397070646286, + 0.02622240036725998, + 0.08548520505428314, + 0.09239251911640167, + 0.05220084264874458, + 0.034933604300022125, + 0.06399345397949219, + 0.05254298821091652, + 0.05128464102745056, + 0.03251422941684723, + -0.05417541787028313, + 0.04583678022027016, + -0.022759929299354553, + -0.03942933678627014, + 0.021520845592021942, + -0.03069712594151497, + -0.023581866174936295, + -0.006994626484811306, + -0.009042274206876755, + 0.03154977783560753, + -0.0341607928276062, + -0.08512470126152039, + 0.03482208028435707, + 0.0014998046681284904, + -0.019316941499710083, + 0.06912466883659363, + 0.06364008039236069, + -0.013631962239742279, + 0.02291388250887394, + -0.04950866475701332, + -0.12543661892414093, + 0.007727420423179865, + 0.020109748467803, + -0.02706182189285755, + 0.04560813307762146, + 0.04506213963031769, + -0.031866759061813354, + 0.07338059693574905, + 0.07352188974618912, + 0.020141100510954857, + 0.03188269957900047, + -0.09585852921009064, + 0.09127768874168396, + 0.11855800449848175, + -0.004327746573835611, + 0.02535541169345379, + 0.003577028401196003, + 0.08735962212085724, + 0.0874512791633606, + -0.12125638872385025, + -0.08865316957235336, + -0.0029713171534240246, + -0.05501050874590874, + 0.026011072099208832, + 0.052746064960956573, + -0.041187748312950134, + -0.026186328381299973, + 0.07902298867702484, + -0.06251072138547897, + -0.04418815299868584, + -0.030518215149641037, + 0.026305746287107468, + -0.04918249323964119, + 0.023371178656816483, + 0.02602410316467285, + -0.0003217114135622978, + -0.04035555198788643, + 0.06755928695201874, + -0.012393257580697536, + 0.013387958519160748, + 0.03462494909763336, + -0.03782178461551666, + 0.049526944756507874, + -0.025624113157391548, + -0.01968296989798546, + 0.10213899612426758, + 0.07237976789474487, + 0.05314534902572632, + -0.014990391209721565, + -0.00989020150154829, + -0.057128746062517166, + 0.017620353028178215, + 0.050104714930057526, + 0.01121944934129715, + -0.004682846367359161, + 0.019977612420916557, + -0.053008489310741425, + -0.08430016040802002, + 0.07264824956655502, + -0.0054061030969023705, + 0.12139920890331268, + 0.030680332332849503, + 0.014131243340671062, + 0.12432843446731567, + 0.002406906569376588, + -0.021691888570785522, + -0.044126734137535095, + 0.0058551691472530365, + 0.050916217267513275, + 0.045913346111774445, + -0.05325181037187576, + -0.06442204862833023, + 0.006222454831004143, + -0.013687129132449627, + -0.029885344207286835, + 0.03246060013771057, + 0.06582270562648773, + -0.013692069798707962, + 0.056936606764793396, + -0.06321452558040619, + 0.01233991701155901, + -0.09779045730829239, + 0.0073458291590213776, + -0.01484096609055996, + -0.10484959930181503, + -0.027622409164905548, + 0.09994994103908539, + 0.027432512491941452, + -0.0310318935662508, + -0.002121277153491974, + -0.10270730406045914, + -0.035300299525260925, + 0.07726682722568512, + 0.06102374941110611, + 0.03319225460290909, + 0.031189538538455963, + 0.050749506801366806, + 0.009378794580698013, + 0.0708124116063118, + 0.10507477819919586, + 0.05962938815355301, + 0.002073658164590597, + -0.026424942538142204, + -0.03950697183609009, + 0.0863160789012909, + 0.04411986097693443, + -0.10357911884784698, + -0.11163439601659775, + -0.05810891091823578, + -0.05505013093352318, + 0.0678786188364029, + -0.012645282782614231, + 0.014367069117724895, + 0.04535038396716118, + -0.03366231173276901, + -0.09086362272500992, + -0.10210288316011429, + 0.13081035017967224, + -0.024153484031558037, + -0.04369209334254265, + -0.042092785239219666, + 0.00964060053229332, + 0.03819739818572998, + 0.013664958998560905, + -0.005954277701675892, + 0.05341121181845665, + 0.04564730077981949, + -0.10502029210329056, + -0.029897810891270638, + 0.01573743298649788, + -0.034548185765743256, + -0.04748248681426048, + 0.021264715120196342, + -0.08316272497177124, + 0.10343590378761292, + -0.0662560984492302, + 0.15785500407218933, + -0.026739593595266342, + -0.04268960654735565, + -0.05823993682861328, + 0.08184152841567993, + -0.06470668315887451, + 0.03490499034523964, + 0.0829772800207138, + 0.07067333906888962, + 0.005528803914785385, + -0.08498436212539673, + 0.07747524976730347, + 0.017556020990014076, + -0.026148110628128052, + -0.07471171766519547, + -0.02921218052506447, + -0.05034668743610382, + -0.008241147734224796, + -0.004831814207136631, + -0.050959695130586624, + 0.05425529181957245, + 0.01966894418001175, + -0.004743877798318863, + 0.059194616973400116, + 0.10701952874660492, + 0.08642970025539398, + -0.06446842104196548 + ] + }, + "p244_066.wav": { + "name": "p244", + "embedding": [ + -0.0077630914747715, + 0.06212679296731949, + -0.029095031321048737, + 0.04807800427079201, + -0.09979154914617538, + -0.011325799860060215, + -0.09859539568424225, + 0.15455757081508636, + -0.0015637085307389498, + 0.09077074378728867, + -0.03634503856301308, + 0.11789576709270477, + -0.07192665338516235, + -0.1492106169462204, + 0.04691343754529953, + 0.07298552244901657, + 0.009551596827805042, + -0.060885265469551086, + -0.02599423937499523, + -0.05117535591125488, + 0.0178248081356287, + 0.03961044177412987, + 0.030315300449728966, + 0.0029597708489745855, + 0.01364608108997345, + 0.09334566444158554, + -0.004621140193194151, + 0.0198704581707716, + -0.009454210288822651, + -0.039348237216472626, + -0.0231894813477993, + 0.03402078524231911, + -0.07006881386041641, + -0.009674010798335075, + 0.024007730185985565, + -0.030278092250227928, + -0.02311311848461628, + -0.009588251821696758, + -0.028285054489970207, + 0.004965323954820633, + -0.08157123625278473, + 0.07757959514856339, + 0.023187167942523956, + -0.008365483023226261, + 0.05268028378486633, + 0.022256221622228622, + -0.038879770785570145, + -0.009175663813948631, + -0.1420152634382248, + 0.13813042640686035, + 0.07626407593488693, + -0.007778852712363005, + -0.07167428731918335, + -0.05480652302503586, + 0.09999435395002365, + -0.020814230665564537, + -0.08670436590909958, + -0.08495119959115982, + 0.07406032085418701, + 0.08715644478797913, + -0.022856593132019043, + -0.02539408765733242, + 0.018550610169768333, + 0.10273498296737671, + 0.07932594418525696, + 0.05336213484406471, + 0.03845370560884476, + 0.12385544180870056, + -0.05201958864927292, + -0.018596675246953964, + 0.05020606517791748, + 0.07094452530145645, + 0.01430055033415556, + 0.021955527365207672, + -0.017246752977371216, + 0.01157557312399149, + 0.021831808611750603, + -0.020078126341104507, + -0.011346502229571342, + -0.03046273998916149, + -0.023327527567744255, + 0.012779390439391136, + 0.006772393360733986, + -0.0042129154317080975, + 0.010185056366026402, + 0.08764004707336426, + 0.08824951946735382, + 0.008867944590747356, + 0.08223341405391693, + -0.00814065057784319, + -0.05953953042626381, + 0.08589067310094833, + -0.08400532603263855, + 0.0028118337504565716, + -0.016205905005335808, + -0.0018033592496067286, + 0.02545177936553955, + 0.08047227561473846, + 0.016994329169392586, + 7.825583452358842e-05, + 0.14811724424362183, + 0.027818048372864723, + 0.0010605386923998594, + 0.02271421067416668, + -0.06731268018484116, + 0.11856039613485336, + 0.061971329152584076, + -0.024232719093561172, + 0.048001643270254135, + -0.030434083193540573, + 0.037176962941884995, + 0.020549774169921875, + -0.09958325326442719, + -0.04676205664873123, + -0.02926865965127945, + 0.0057694269344210625, + -0.06073998287320137, + 0.13464143872261047, + 0.0002716788148973137, + 0.07382065802812576, + 0.17005881667137146, + -0.10015648603439331, + -0.0661592185497284, + 0.016334420070052147, + 0.05094142630696297, + -0.06953908503055573, + 0.043612148612737656, + 0.07132256776094437, + -0.01812724769115448, + 0.09500343352556229, + 0.06924550980329514, + -0.005538359750062227, + 0.045102961361408234, + 0.03517475724220276, + -0.07806044816970825, + -0.007951498031616211, + -0.027830777689814568, + -0.010484833270311356, + 0.09616238623857498, + 0.040282197296619415, + 0.10220807790756226, + -0.04751453548669815, + 0.00697948457673192, + -0.12977319955825806, + 0.023978019133210182, + 0.018472399562597275, + 0.07261732220649719, + -0.018571898341178894, + -0.02471042424440384, + -0.04819144681096077, + -0.08690645545721054, + -0.014551068656146526, + 0.02832389622926712, + 0.08143433928489685, + -0.0949617326259613, + 0.002755220979452133, + 0.08852490037679672, + 0.06482809782028198, + -0.022307103499770164, + -0.06576360762119293, + -0.08091609925031662, + -0.04684533178806305, + 0.04214273765683174, + -0.08497485518455505, + -0.08144988119602203, + -0.03612879663705826, + 0.09052322804927826, + -0.02720281481742859, + 0.08269672095775604, + 0.03126678615808487, + 0.04002169519662857, + -0.005330238025635481, + -0.05054665356874466, + 0.0319494791328907, + -0.007297709118574858, + -0.06955704838037491, + -0.010123031213879585, + 0.003082114504650235, + -0.05732957273721695, + 0.06033637747168541, + 0.02445564977824688, + 0.08980266004800797, + 0.008264157921075821, + -0.07539556920528412, + -0.11840244382619858, + 0.015741858631372452, + 0.0013391778338700533, + -0.06326083093881607, + 0.0636846199631691, + 0.09257593005895615, + -0.10514184087514877, + 0.04345356300473213, + 0.042700331658124924, + 0.08348044008016586, + -0.050993554294109344, + 0.03936244174838066, + -0.05943295359611511, + 0.07016190141439438, + 0.08867181092500687, + -0.08903425186872482, + -0.0440947525203228, + -0.07404907047748566, + -0.07128720730543137, + 0.05602087825536728, + -0.022398825734853745, + 0.0049375249072909355, + 0.024634554982185364, + 0.027141854166984558, + -0.09741058200597763, + -0.07526490837335587, + 0.04396592453122139, + -0.04957457259297371, + 0.00836198776960373, + -0.07985610514879227, + 0.024887222796678543, + 0.08291107416152954, + 0.06635834276676178, + 0.009280542843043804, + -0.03171687200665474, + 0.05296330526471138, + 0.015414518304169178, + 0.0478878878057003, + 0.13087497651576996, + 0.07354786247015, + -0.04201474413275719, + -0.0597412995994091, + -0.07587701082229614, + 0.043904103338718414, + 0.007860701531171799, + 0.12986992299556732, + 0.03976213559508324, + -0.027728118002414703, + -0.07746711373329163, + 0.01437259279191494, + -0.017655204981565475, + 0.06583189219236374, + 0.015605567023158073, + 0.04948633164167404, + 0.06586628407239914, + 0.005641864147037268, + 0.15866614878177643, + 0.05696696415543556, + -0.06103023141622543, + -0.03497155383229256, + -0.04244257137179375, + -0.06665113568305969, + 0.02710285410284996, + 0.041648995131254196, + -0.10715588927268982, + -0.0061855376698076725, + -0.00026045882259495556, + -0.017139311879873276, + 0.06754108518362045, + 0.1394340991973877, + 0.09705255925655365, + -0.08978267014026642 + ] + }, + "p244_012.wav": { + "name": "p244", + "embedding": [ + 0.040413081645965576, + 0.0830603837966919, + -0.022774528712034225, + -0.0005341863725334406, + -0.03794672340154648, + 0.05234938859939575, + -0.13388767838478088, + 0.13372640311717987, + -0.054108500480651855, + 0.12199720740318298, + -0.06777148693799973, + 0.09525827318429947, + -0.019477128982543945, + -0.15096716582775116, + -0.046066202223300934, + 0.043353330343961716, + -0.04619592800736427, + -0.03893730044364929, + -0.03926585242152214, + -0.02710663340985775, + 0.02975194714963436, + 0.030209191143512726, + -0.001423071837052703, + 0.01767009124159813, + 0.014533063396811485, + 0.061789803206920624, + 0.0020770556293427944, + 0.02855536714196205, + 0.0038799364119768143, + -0.007374171167612076, + -0.002614937722682953, + 0.08625348657369614, + -0.039034005254507065, + 0.01809553988277912, + 0.04712323471903801, + 0.00043094437569379807, + 0.0002795322798192501, + -0.07171767950057983, + -0.017839526757597923, + 0.0036740691866725683, + -0.04642723873257637, + 0.08478469401597977, + 0.043637968599796295, + 0.010240818373858929, + 0.01705770753324032, + 0.014662904664874077, + -0.004455404356122017, + -0.057040736079216, + -0.09834709763526917, + 0.16067162156105042, + 0.07033324241638184, + -0.0013096407055854797, + -0.08616489171981812, + -0.04449496790766716, + 0.10010585933923721, + -0.01945388689637184, + -0.09247705340385437, + -0.058926187455654144, + 0.06421282142400742, + 0.1438712179660797, + -0.02765613980591297, + -0.03928995877504349, + 0.015414133667945862, + 0.13032019138336182, + 0.03821246325969696, + 0.07300262898206711, + 0.08500176668167114, + 0.09541250020265579, + -0.03380883112549782, + 0.01018277183175087, + 0.060074418783187866, + 0.05779407545924187, + 0.032267194241285324, + -0.019839877262711525, + 0.023644432425498962, + -0.006142120808362961, + -0.01140713132917881, + 0.018052203580737114, + -0.025781875476241112, + -0.03170400857925415, + -0.027480022981762886, + 0.014921372756361961, + -0.00871280673891306, + 0.039258237928152084, + -0.023124337196350098, + 0.044205326586961746, + 0.03527587652206421, + -0.025986485183238983, + 0.06543485075235367, + 0.0649804174900055, + 0.017514225095510483, + 0.039923880249261856, + -0.060173433274030685, + -0.07515958696603775, + 0.021156642585992813, + -0.008265395648777485, + 0.02679346315562725, + 0.06942324340343475, + 0.03512595593929291, + -0.0003028702922165394, + 0.09636136144399643, + 0.035126201808452606, + -0.012339252978563309, + -0.005447839852422476, + -0.09485568106174469, + 0.12439955770969391, + 0.09117837995290756, + -0.029637495055794716, + 0.021180735900998116, + -0.04134117066860199, + 0.0428343266248703, + 0.0649833232164383, + -0.12068703770637512, + -0.06943859159946442, + 0.04117913544178009, + 0.03987664356827736, + -0.0014027506113052368, + 0.1096196174621582, + -0.0018225936219096184, + 0.014029955491423607, + 0.07854866981506348, + -0.06031420826911926, + -0.05430252104997635, + -0.02439490146934986, + 0.034904103726148605, + -0.06098751351237297, + 0.041726984083652496, + 0.05456957221031189, + 0.007434066850692034, + 0.0013277474790811539, + 0.0830441266298294, + 0.0019958200864493847, + -0.005506281740963459, + 0.0014513880014419556, + -0.010258546099066734, + 0.04812612384557724, + -0.012265488505363464, + 0.0007846709340810776, + 0.026168784126639366, + 0.047913338989019394, + 0.04084065929055214, + 0.015754010528326035, + -0.025927996262907982, + -0.09728501737117767, + 0.008215617388486862, + 0.0512690395116806, + 0.07119515538215637, + -0.028330130502581596, + -0.02829846739768982, + -0.025761589407920837, + -0.050660714507102966, + -0.018066642805933952, + -0.008528130128979683, + 0.07430551946163177, + -0.010310914367437363, + -0.0003291988978162408, + 0.1055549830198288, + 0.006170269101858139, + 0.0007037622854113579, + -0.041791822761297226, + 0.008994637057185173, + 0.008524062111973763, + 0.05217408388853073, + -0.0591299943625927, + -0.0724165141582489, + 0.008244737982749939, + 0.03672463446855545, + -0.009449097327888012, + 0.038269344717264175, + 0.03830341994762421, + -0.0043996647000312805, + 0.023331737145781517, + -0.08940884470939636, + 0.0342443510890007, + -0.1152038723230362, + -0.04307142645120621, + -0.0029060086235404015, + -0.031247032806277275, + -0.0012998562306165695, + 0.06992219388484955, + 0.01841125637292862, + 0.04389849305152893, + -0.0015250639989972115, + -0.10019814223051071, + -0.06024879589676857, + 0.0624699592590332, + 0.0886591300368309, + -0.02521747723221779, + 0.030167827382683754, + 0.06203741580247879, + -0.015615621581673622, + 0.025053836405277252, + 0.057888247072696686, + 0.09942366927862167, + -0.04888495057821274, + 0.0014969538897275925, + -0.052007272839546204, + 0.06846464425325394, + 0.04695957154035568, + -0.11025058478116989, + -0.05957163870334625, + -0.018552543595433235, + -0.03677377104759216, + 0.006400046870112419, + -0.020499147474765778, + 0.020892156288027763, + 0.027435507625341415, + -0.01587257906794548, + -0.10476444661617279, + -0.08054275810718536, + 0.06192772835493088, + -0.07315119355916977, + 0.01484622061252594, + -0.0769607424736023, + 0.03674861043691635, + 0.09326650947332382, + 0.04202606901526451, + -0.018240241333842278, + -0.013393988832831383, + 0.014037182554602623, + -0.03273104503750801, + -0.020009201020002365, + 0.016858907416462898, + 0.02530338615179062, + -0.09205272793769836, + -0.0017449520528316498, + -0.07689408212900162, + 0.075095534324646, + -0.042808711528778076, + 0.1277589350938797, + 0.009178093634545803, + -0.0628858283162117, + -0.09408976137638092, + -0.0038892626762390137, + -0.0174001082777977, + 0.056130461394786835, + 0.034797925502061844, + 0.04990113154053688, + 0.022978410124778748, + -0.0423492006957531, + 0.1094752624630928, + 0.06085175648331642, + -0.03767654299736023, + -0.06893106549978256, + -0.02513839676976204, + -0.017312169075012207, + 0.033020514994859695, + 0.014636870473623276, + -0.05768581107258797, + -0.008866620250046253, + 0.012733858078718185, + -0.03952283039689064, + 0.07950504869222641, + 0.11891117691993713, + 0.07795403897762299, + -0.1198640912771225 + ] + }, + "p244_166.wav": { + "name": "p244", + "embedding": [ + 0.053655095398426056, + 0.08844296634197235, + -0.04649278149008751, + 0.013936445116996765, + -0.03935004398226738, + 0.05479462072253227, + -0.13360700011253357, + 0.09471850097179413, + -0.033660002052783966, + 0.14835643768310547, + -0.0453655831515789, + 0.10396459698677063, + -0.005942014046013355, + -0.1326616257429123, + -0.019591329619288445, + 0.05505815148353577, + -0.03377779573202133, + -0.03852098807692528, + -0.018543312326073647, + -0.008368187583982944, + 0.03672625869512558, + 0.04902494698762894, + 0.02710963599383831, + -0.02074635587632656, + 0.032913096249103546, + 0.06197277829051018, + 0.0014466014690697193, + 0.021820535883307457, + -0.004275509621948004, + -0.04222218692302704, + -0.01896977797150612, + 0.09863245487213135, + -0.047002747654914856, + 0.004972544964402914, + 0.012576624751091003, + 0.007321698125451803, + 0.002351941540837288, + -0.07046922296285629, + 0.0007005079532973468, + 0.011394213885068893, + -0.03256703168153763, + 0.08399521559476852, + 0.014998058788478374, + -0.009147625416517258, + 0.0016161799430847168, + -0.018606062978506088, + -0.027188047766685486, + -0.026936573907732964, + -0.08517339080572128, + 0.17683064937591553, + 0.06996860355138779, + 0.0134064219892025, + -0.0780750960111618, + -0.04408973455429077, + 0.07826656103134155, + 0.026923730969429016, + -0.08075837790966034, + -0.05972130224108696, + 0.042407527565956116, + 0.13886141777038574, + -0.006989161483943462, + -0.05610661953687668, + 0.037248872220516205, + 0.12740808725357056, + 0.04869261384010315, + 0.053280092775821686, + 0.08517199009656906, + 0.09312839806079865, + -0.008113425225019455, + 0.007785463239997625, + 0.05904529243707657, + 0.07313312590122223, + 0.05591530725359917, + -0.010565748438239098, + 0.03037749044597149, + -0.028928544372320175, + -0.021889498457312584, + -0.012656692415475845, + -0.010193328373134136, + -0.05816423147916794, + -0.03159976750612259, + -0.014443970285356045, + -0.0038853748701512814, + 0.06717607378959656, + -0.01202497910708189, + 0.007008690387010574, + 0.058460675179958344, + -0.05275978893041611, + 0.06169342249631882, + 0.05394720286130905, + 0.02610999345779419, + 0.03156259283423424, + -0.07510482519865036, + -0.07358689606189728, + 0.06123858690261841, + 0.016693050041794777, + 0.03272085636854172, + 0.07263780385255814, + 0.045775532722473145, + -0.0033907294273376465, + 0.09135275334119797, + 0.019397348165512085, + 0.0024353615008294582, + -0.025197505950927734, + -0.07514859735965729, + 0.1269388198852539, + 0.10129731148481369, + -0.03968110680580139, + 0.030582956969738007, + -0.027220046147704124, + 0.023323342204093933, + 0.053116559982299805, + -0.12632519006729126, + -0.08291628956794739, + 0.018998507410287857, + 0.012775188311934471, + 0.0009156353771686554, + 0.09909415245056152, + 0.020280232653021812, + 0.030194073915481567, + 0.08315100520849228, + -0.08419731259346008, + -0.07775819301605225, + -0.03509482368826866, + 0.042510997503995895, + -0.0927007645368576, + 0.05401131138205528, + 0.06861019134521484, + 0.0017825644463300705, + -0.019021783024072647, + 0.07022847980260849, + 0.006236842833459377, + 0.0200313962996006, + -0.028062177821993828, + -0.0035452123265713453, + 0.04423457384109497, + -0.032316889613866806, + 0.006350439041852951, + 0.02390877716243267, + 0.0013469619443640113, + 0.06261691451072693, + 0.0019134643953293562, + -0.005199687089771032, + -0.11554916203022003, + 0.025548560544848442, + 0.05696594715118408, + 0.04851735755801201, + -0.04421606287360191, + -0.0370418019592762, + -0.004539420362561941, + -0.060816265642642975, + 0.010482232086360455, + -0.01083883922547102, + 0.07470370084047318, + 0.01877404749393463, + -0.001411761506460607, + 0.11913126707077026, + -0.004110011272132397, + 0.004352550953626633, + -0.014912760816514492, + 0.003801812883466482, + 0.04109359532594681, + 0.047184623777866364, + -0.08498860895633698, + -0.09137731045484543, + -0.0035503755789250135, + 0.014921177178621292, + 0.009820891544222832, + 0.04925699159502983, + 0.06569939851760864, + -0.015355650335550308, + 0.014127960428595543, + -0.0537368580698967, + 0.00809969287365675, + -0.07779267430305481, + -0.05698656663298607, + -0.014641610905528069, + -0.05571281537413597, + -0.024360492825508118, + 0.09402160346508026, + 0.018509771674871445, + 0.04330350086092949, + -0.050333172082901, + -0.0650399774312973, + -0.06768766045570374, + 0.051043443381786346, + 0.07187633216381073, + -0.03471110016107559, + 0.008212946355342865, + 0.06329125165939331, + 0.009072072803974152, + -0.0045273578725755215, + 0.04547902196645737, + 0.09381411969661713, + -0.056555137038230896, + -0.01935093104839325, + -0.06621578335762024, + 0.08163195848464966, + 0.08475353568792343, + -0.09308450669050217, + -0.05736543983221054, + -0.04593092203140259, + -0.06394603103399277, + 0.016700323671102524, + -0.04219955950975418, + 0.015847934409976006, + 0.0418318510055542, + -0.04094365984201431, + -0.10128842294216156, + -0.12677882611751556, + 0.08536802232265472, + -0.05766047164797783, + -0.0029032262973487377, + -0.07675062865018845, + 0.05029436945915222, + 0.057624541223049164, + 0.04686463996767998, + -0.04399394989013672, + 0.011516179889440536, + 0.010614532046020031, + -0.030909806489944458, + -0.00030715082539245486, + 0.04352226108312607, + 0.035192977637052536, + -0.10074742138385773, + -0.022891204804182053, + -0.08016446232795715, + 0.06337811052799225, + -0.07264944165945053, + 0.12457223981618881, + -0.006055818870663643, + -0.0585329607129097, + -0.10827597230672836, + 0.013784579001367092, + -0.014256780967116356, + 0.05224742740392685, + 0.03585461899638176, + 0.0427403599023819, + 0.038721948862075806, + -0.07541250437498093, + 0.0892203152179718, + 0.07800555229187012, + 0.005114484112709761, + -0.0927131399512291, + -0.025002729147672653, + -0.01710965856909752, + 0.06794629991054535, + 0.002855605911463499, + -0.04696786403656006, + 0.019650055095553398, + 0.023444827646017075, + 0.0013756786938756704, + 0.07318668812513351, + 0.10128151625394821, + 0.06210120767354965, + -0.10976234078407288 + ] + }, + "p244_075.wav": { + "name": "p244", + "embedding": [ + 0.03428453952074051, + 0.11064719408750534, + 0.0017526668962091208, + 0.0246326494961977, + -0.052845899015665054, + 0.06611949950456619, + -0.10521318018436432, + 0.13429750502109528, + -0.05651460960507393, + 0.1235857903957367, + -0.10048773884773254, + 0.10598120838403702, + -0.05684275180101395, + -0.1783761978149414, + -0.04228542745113373, + 0.06294967234134674, + -0.03110467828810215, + -0.00095291284378618, + -0.035121794790029526, + -0.013944773003458977, + 0.03131048008799553, + 0.010594845749437809, + 0.02496732771396637, + 0.014946140348911285, + 0.017528658732771873, + 0.06434151530265808, + 0.0018713257741183043, + 0.05689927935600281, + 0.017997276037931442, + -0.018579233437776566, + -0.03409453481435776, + 0.12057538330554962, + -0.03753228113055229, + 0.034450069069862366, + 0.08555713295936584, + 0.017218297347426414, + -0.012218305841088295, + -0.030455391854047775, + -0.008164172992110252, + -0.0141185587272048, + -0.0620722770690918, + 0.060246072709560394, + 0.024739062413573265, + 0.003376284148544073, + 0.04835595563054085, + 0.04146186634898186, + -0.01341229397803545, + -0.030139166861772537, + -0.09043428301811218, + 0.13250896334648132, + 0.055999018251895905, + -0.017828024923801422, + -0.07457873970270157, + -0.0697483941912651, + 0.11246555298566818, + -0.026754135265946388, + -0.12838967144489288, + -0.039564717561006546, + 0.10323658585548401, + 0.1580001413822174, + -0.027325229719281197, + -0.026766734197735786, + -0.01096925139427185, + 0.12341856956481934, + 0.023739060387015343, + 0.11721930652856827, + 0.051521383225917816, + 0.11331139504909515, + -0.0067277573980391026, + 0.03533324971795082, + 0.07012540847063065, + 0.053036224097013474, + 0.0504441000521183, + -0.02651439979672432, + 0.014645046554505825, + -0.004943884443491697, + -0.010933781042695045, + 0.034601617604494095, + -0.036210693418979645, + -0.016005119308829308, + -0.04069426655769348, + 0.0009622778743505478, + -0.016917364671826363, + -0.029449395835399628, + -0.005007491912692785, + 0.0615730881690979, + 0.03990306705236435, + -0.0031221776735037565, + 0.06841331720352173, + 0.07175624370574951, + -0.024039003998041153, + 0.061780400574207306, + -0.06226837635040283, + -0.07848657667636871, + -0.0046257274225354195, + -0.012960809282958508, + 0.022535288706421852, + 0.07917551696300507, + 0.03100755624473095, + 0.008274837397038937, + 0.09721153974533081, + 0.050989262759685516, + 0.012677839025855064, + 0.041036203503608704, + -0.10639114677906036, + 0.12764522433280945, + 0.07278670370578766, + -0.022095121443271637, + 0.03098338097333908, + -0.02898004837334156, + 0.0809275209903717, + 0.09534987807273865, + -0.1227051168680191, + -0.05885526165366173, + 0.0005997233092784882, + -0.0035510878078639507, + -0.021237578243017197, + 0.08182498067617416, + -0.024508893489837646, + -0.005949174519628286, + 0.11049088835716248, + -0.07752488553524017, + -0.06652219593524933, + -0.02911338210105896, + 0.0212554968893528, + -0.07800594717264175, + 0.047917529940605164, + 0.0359664224088192, + 0.008974568918347359, + 0.00486976932734251, + 0.09449593722820282, + -0.0018899358110502362, + -0.0003257538191974163, + 0.032444246113300323, + -0.055867474526166916, + 0.017791595309972763, + -0.0351385772228241, + 0.01986345462501049, + 0.057327769696712494, + 0.05041804909706116, + 0.059155598282814026, + 0.008122799918055534, + -0.01083378866314888, + -0.07895449548959732, + -0.00627483893185854, + 0.06800520420074463, + 0.05703945457935333, + -0.008550484664738178, + -0.015090275555849075, + -0.02927681803703308, + -0.07012715935707092, + 0.041542742401361465, + -0.012928883545100689, + 0.08516597747802734, + -0.024356510490179062, + -0.014819096773862839, + 0.12005850672721863, + 0.010945495218038559, + -0.017246559262275696, + -0.09791474044322968, + -0.024770662188529968, + 0.0011850083246827126, + 0.04086858779191971, + -0.11034372448921204, + -0.07452259212732315, + 0.006218722090125084, + 0.02181953378021717, + -0.016521282494068146, + 0.03904792293906212, + 0.03824132680892944, + 0.007279010955244303, + 0.037137240171432495, + -0.0573769137263298, + 0.007877781987190247, + -0.11130785197019577, + -0.06729962676763535, + -0.028296589851379395, + -0.04508214816451073, + -0.001398736611008644, + 0.061989620327949524, + 0.009105633944272995, + 0.016468387097120285, + 0.027100328356027603, + -0.08886811137199402, + -0.08833437412977219, + 0.07652020454406738, + 0.05635393410921097, + 0.010490206070244312, + 0.070200115442276, + 0.054011017084121704, + -0.08097734302282333, + 0.07192501425743103, + 0.0603579543530941, + 0.11222146451473236, + -0.04411302134394646, + 0.03944786638021469, + -0.07513889670372009, + 0.04705259948968887, + 0.08648710697889328, + -0.11583252251148224, + -0.10839773714542389, + -0.041446663439273834, + -0.0290602408349514, + 0.0446256548166275, + -0.031314633786678314, + -0.01224291231483221, + 0.024069389328360558, + -0.024504881352186203, + -0.07408291101455688, + -0.08164675533771515, + 0.08596008270978928, + -0.0648287758231163, + -0.00760210957378149, + -0.06233181804418564, + 0.04306813329458237, + 0.05370538681745529, + 0.025317681953310966, + -0.04027901962399483, + 0.03136410936713219, + 0.07048152387142181, + -0.06131252273917198, + -0.03257821127772331, + 0.039197325706481934, + 0.007110740523785353, + -0.06356337666511536, + -0.0007188073359429836, + -0.07171986997127533, + 0.07497894018888474, + -0.048499248921871185, + 0.1626286804676056, + -0.026472043246030807, + -0.07052823156118393, + -0.04782993346452713, + 0.02265041135251522, + -0.026331990957260132, + 0.02763562649488449, + 0.05033141374588013, + 0.06911881268024445, + -0.0130761181935668, + -0.03996057063341141, + 0.14837083220481873, + 0.008677903562784195, + -0.03402414172887802, + -0.050040263682603836, + -0.045453377068042755, + -0.06450536847114563, + 0.0004788478836417198, + 0.008729243651032448, + -0.11051183938980103, + -0.008394391275942326, + 0.007968345656991005, + -0.030474970117211342, + 0.054275304079055786, + 0.13971665501594543, + 0.0805155485868454, + -0.09118019044399261 + ] + }, + "p244_074.wav": { + "name": "p244", + "embedding": [ + 0.06014510244131088, + 0.09971879422664642, + 0.015584892593324184, + 0.021699270233511925, + -0.024226326495409012, + 0.11392833292484283, + -0.12430501729249954, + 0.1162688136100769, + -0.06320066750049591, + 0.16092291474342346, + -0.08765741437673569, + 0.09969928860664368, + -0.01792548969388008, + -0.15745452046394348, + -0.06303291022777557, + 0.041449688374996185, + -0.057555653154850006, + 0.0035726502537727356, + -0.0486614927649498, + -0.004805471282452345, + 0.0411190502345562, + 0.024463845416903496, + 0.058623261749744415, + -0.02493543177843094, + 0.031117452308535576, + 0.03865686058998108, + 0.015451236627995968, + 0.07207752764225006, + 0.02641092613339424, + -0.09324994683265686, + -0.027758805081248283, + 0.13227424025535583, + -0.03424966707825661, + 0.03947920352220535, + 0.04767537862062454, + 0.013357278890907764, + 0.006342347711324692, + -0.07750484347343445, + -0.014071457087993622, + -0.010173224844038486, + -0.014226230792701244, + 0.06542043387889862, + 0.014675341546535492, + -0.012166031636297703, + 0.01956893689930439, + 0.0038894633762538433, + -0.024501653388142586, + -0.049184542149305344, + -0.09260393679141998, + 0.15617680549621582, + 0.0518491193652153, + 0.004771186038851738, + -0.07177138328552246, + -0.08619700372219086, + 0.1051219254732132, + -0.015336241573095322, + -0.1134636402130127, + -0.02775711566209793, + 0.07479526102542877, + 0.1931106001138687, + -0.03001069277524948, + -0.03331910818815231, + 0.02120731770992279, + 0.11004520952701569, + 0.025130605325102806, + 0.10477791726589203, + 0.09282625466585159, + 0.08586355298757553, + 0.028017833828926086, + 0.05219336599111557, + 0.017089825123548508, + 0.06498713791370392, + 0.04176153987646103, + -0.011089975014328957, + 0.032536521553993225, + -0.03093256987631321, + -0.02084430307149887, + 0.015571310184895992, + -0.026068685576319695, + -0.02726149931550026, + -0.0037109642289578915, + -0.005104261916130781, + 0.02641938626766205, + 0.010872980579733849, + -0.03922935575246811, + 0.041547566652297974, + -0.020551878958940506, + -0.03216097131371498, + 0.06253150850534439, + 0.03755345195531845, + 0.0200633741915226, + 0.035502105951309204, + -0.05118311941623688, + -0.12056100368499756, + 0.013987716287374496, + 0.011165215633809566, + 0.008817262947559357, + 0.06909926235675812, + 0.039913907647132874, + -0.033625729382038116, + 0.0953153669834137, + 0.042153771966695786, + -0.007515524048358202, + 0.028902916237711906, + -0.10698682069778442, + 0.11187740415334702, + 0.08660847693681717, + -0.002844938775524497, + 0.042121924459934235, + -0.05157402530312538, + 0.08466915041208267, + 0.09120398759841919, + -0.1502046287059784, + -0.08364871889352798, + 0.0071958694607019424, + -0.008172833360731602, + 0.005273364018648863, + 0.08534418046474457, + -0.0036859335377812386, + -0.0008797831833362579, + 0.08766975998878479, + -0.08068522810935974, + -0.04992228001356125, + -0.03241259977221489, + 0.04746837168931961, + -0.0714477151632309, + 0.04672529175877571, + 0.012449185363948345, + -0.010422405786812305, + -0.0232987180352211, + 0.07312832027673721, + -0.01991652324795723, + -0.004882699344307184, + 0.03331601247191429, + -0.05931270122528076, + 0.02828357368707657, + -0.05358045548200607, + 0.019374718889594078, + 0.03794638067483902, + 0.05631332844495773, + 0.044307444244623184, + -0.0029720335733145475, + -0.05184668302536011, + -0.07062087208032608, + -0.009222757071256638, + 0.046010393649339676, + 0.051999520510435104, + -0.005567926447838545, + -0.02045314572751522, + -0.042064715176820755, + -0.05380910634994507, + 0.06741416454315186, + -0.01949601247906685, + 0.08342263102531433, + 0.02181383967399597, + 0.011088564991950989, + 0.10065892338752747, + -0.0020942343398928642, + -0.0040198094211518764, + -0.06658720225095749, + -0.0055602192878723145, + 0.035565100610256195, + 0.032847922295331955, + -0.07245933264493942, + -0.04627860337495804, + 0.027647484093904495, + 0.008904751390218735, + -0.03301059827208519, + 0.033254869282245636, + 0.04260602965950966, + 0.02298501878976822, + 0.043577805161476135, + -0.047388236969709396, + -0.01514421310275793, + -0.1021120473742485, + -0.046782445162534714, + -0.002416311064735055, + -0.03638681024312973, + -0.018268844112753868, + 0.08079420030117035, + 0.02545928955078125, + 0.018413040786981583, + -0.005437190178781748, + -0.07254447042942047, + -0.06903161108493805, + 0.06818627566099167, + 0.057744596153497696, + 0.022661438211798668, + 0.032348740845918655, + 0.0380667969584465, + -0.012004202231764793, + 0.07510870695114136, + 0.07461467385292053, + 0.09118086099624634, + -0.018249865621328354, + -0.007719416171312332, + -0.08865920454263687, + 0.08385604619979858, + 0.09812474250793457, + -0.0825810432434082, + -0.1069522574543953, + -0.028723765164613724, + -0.0832420140504837, + 0.0513782799243927, + -0.032212719321250916, + -0.014716488309204578, + 0.033219143748283386, + -0.032289646565914154, + -0.09897318482398987, + -0.07787275314331055, + 0.11439277976751328, + -0.07389659434556961, + -0.0342634841799736, + -0.06562066823244095, + 0.04722801595926285, + 0.0693758949637413, + 0.04545104503631592, + -0.016056319698691368, + 0.015001444146037102, + 0.05746561288833618, + -0.09436094015836716, + -0.0166219100356102, + 0.029135093092918396, + -0.01431970577687025, + -0.09565816819667816, + 0.022905312478542328, + -0.08642274141311646, + 0.039538733661174774, + -0.06991507858037949, + 0.16500133275985718, + -0.02460383251309395, + -0.07045608758926392, + -0.05873553454875946, + 0.04520758241415024, + -0.054409317672252655, + 0.028254954144358635, + 0.05157051980495453, + 0.06067713350057602, + 0.02536693960428238, + -0.09536367654800415, + 0.10134699940681458, + 0.024042507633566856, + -0.010347208008170128, + -0.08685632795095444, + -0.06046932190656662, + -0.042557694017887115, + 0.015346228145062923, + -0.018939699977636337, + -0.07674851268529892, + 0.0009209541603922844, + 0.02602284401655197, + -0.003074691630899906, + 0.0657355859875679, + 0.13165289163589478, + 0.05196277052164078, + -0.09723721444606781 + ] + }, + "p244_128.wav": { + "name": "p244", + "embedding": [ + 0.04285028576850891, + 0.10291832685470581, + -0.008294271305203438, + 0.0031440667808055878, + -0.05854008346796036, + 0.0744505375623703, + -0.11892271786928177, + 0.13265547156333923, + -0.0472327321767807, + 0.13479766249656677, + -0.0745711624622345, + 0.10561913251876831, + -0.02285316213965416, + -0.17996175587177277, + -0.05359140783548355, + 0.0317937433719635, + -0.05796866863965988, + -0.028445810079574585, + -0.057495832443237305, + -0.03565075248479843, + 0.035307884216308594, + 0.04116383194923401, + 0.0032741716131567955, + -0.014355423860251904, + 0.054791174829006195, + 0.06258786469697952, + 0.014593180269002914, + 0.04019845277070999, + 0.009189827367663383, + -0.0422927550971508, + -0.030498847365379333, + 0.10371505469083786, + -0.061426594853401184, + 0.023316510021686554, + 0.05623096972703934, + -0.004318609833717346, + 0.020198138430714607, + -0.050899848341941833, + -0.02848580852150917, + 0.04583275318145752, + -0.03608536720275879, + 0.08068013936281204, + 0.046967070549726486, + 0.010805629193782806, + 0.021731525659561157, + 0.05317696928977966, + 0.01321185939013958, + -0.06421341001987457, + -0.09013538062572479, + 0.18424123525619507, + 0.04776057228446007, + -0.0028770838398486376, + -0.07243786007165909, + -0.08860738575458527, + 0.10992558300495148, + -0.0163470096886158, + -0.1031622439622879, + -0.027590710669755936, + 0.0751342847943306, + 0.14967505633831024, + -0.04495275020599365, + -0.052671369165182114, + 0.00747661991044879, + 0.11520727723836899, + 0.03702854737639427, + 0.07464918494224548, + 0.08499055355787277, + 0.09904549270868301, + -0.00922226719558239, + 0.01108636986464262, + 0.0748717337846756, + 0.06487390398979187, + 0.05631181225180626, + -0.0338699109852314, + 0.031233523041009903, + 0.0019018733873963356, + -0.01824387162923813, + 0.008348758332431316, + -0.02586912177503109, + -0.0011229927185922861, + -0.009843980893492699, + 0.028770998120307922, + 0.018397890031337738, + 0.019719939678907394, + -0.02686728537082672, + 0.059890665113925934, + 0.017812829464673996, + -0.009032066911458969, + 0.07787267118692398, + 0.050689518451690674, + 0.004880410619080067, + 0.06256155669689178, + -0.08774784952402115, + -0.0894698053598404, + 0.03025517612695694, + -0.0019432483240962029, + 0.024727607145905495, + 0.07191336154937744, + 0.05225212499499321, + -0.015936629846692085, + 0.11002478748559952, + 0.05299503728747368, + -0.008342195302248001, + 0.021948836743831635, + -0.10554119944572449, + 0.11696275323629379, + 0.09277379512786865, + -0.03175366297364235, + 0.037857118993997574, + -0.04454944282770157, + 0.08099643886089325, + 0.058050110936164856, + -0.14657199382781982, + -0.09842027723789215, + 0.03615438938140869, + 0.023691225796937943, + -0.013943508267402649, + 0.10753928124904633, + -0.031842827796936035, + 0.015001642517745495, + 0.10138988494873047, + -0.08231890201568604, + -0.037937577813863754, + -0.028225857764482498, + 0.04748796671628952, + -0.06992723047733307, + 0.03258610889315605, + 0.05220450460910797, + -0.015021104365587234, + 0.00970245711505413, + 0.07571221888065338, + 0.0008274917490780354, + 0.0009434851817786694, + 0.0037812944501638412, + -0.016594819724559784, + 0.036868512630462646, + -0.006621015723794699, + -0.003088216530159116, + 0.04144478589296341, + 0.0634017288684845, + 0.05363544076681137, + 0.012106486596167088, + -0.04248375445604324, + -0.10744935274124146, + 0.02323581650853157, + 0.03876125067472458, + 0.06020769476890564, + -0.02511535957455635, + -0.013027509674429893, + -0.042832955718040466, + -0.07413189858198166, + 0.020877759903669357, + 0.015493260696530342, + 0.08876348286867142, + -0.01178110670298338, + 0.0026183626614511013, + 0.11945134401321411, + 0.024575982242822647, + -0.016531767323613167, + -0.03488043695688248, + -0.022817201912403107, + 0.0055765812285244465, + 0.050697289407253265, + -0.07481823861598969, + -0.0817171037197113, + -0.0049058618023991585, + 0.011322863399982452, + -0.009867454878985882, + 0.06068001687526703, + 0.03517413139343262, + 0.006912395358085632, + 0.039578747004270554, + -0.06977661699056625, + 0.003621757263317704, + -0.1171189397573471, + -0.04958612844347954, + -0.02333132177591324, + -0.037408117204904556, + -0.03562555089592934, + 0.09097154438495636, + 0.012545136734843254, + 0.04913122206926346, + -0.0006547458469867706, + -0.07709072530269623, + -0.048051562160253525, + 0.06257225573062897, + 0.08023197203874588, + -0.0017389459535479546, + 0.03188994526863098, + 0.06737224757671356, + -0.011643451638519764, + 0.05946042388677597, + 0.09167708456516266, + 0.10151728987693787, + -0.029805200174450874, + 0.031096410006284714, + -0.04898339882493019, + 0.10016895830631256, + 0.028483262285590172, + -0.09008339047431946, + -0.08827924728393555, + -0.03344443812966347, + -0.055373258888721466, + 0.02298158034682274, + -0.004768986254930496, + 0.03892204165458679, + 0.004340828862041235, + 0.009070918895304203, + -0.07332377135753632, + -0.07707536220550537, + 0.06340166926383972, + -0.056554581969976425, + -0.014352606609463692, + -0.07638509571552277, + 0.045238036662340164, + 0.11974451690912247, + 0.0533909797668457, + -0.004737730138003826, + -0.006433691363781691, + 0.04213054105639458, + -0.037932198494672775, + -0.020381726324558258, + 0.03291946277022362, + 0.013733863830566406, + -0.08372844755649567, + 0.013640576042234898, + -0.0693979412317276, + 0.07794291526079178, + -0.051908183842897415, + 0.14760559797286987, + 0.0021405257284641266, + -0.06954716891050339, + -0.07093621045351028, + 0.0385231152176857, + -0.03931885212659836, + 0.04432768374681473, + 0.03189799189567566, + 0.060877010226249695, + 0.033880751579999924, + -0.041171252727508545, + 0.11780042946338654, + 0.032729074358940125, + -0.04795774817466736, + -0.06289391964673996, + -0.06086689978837967, + -0.017920324578881264, + 0.01632593385875225, + 0.02147575467824936, + -0.07005555927753448, + -0.002590891905128956, + 0.022513344883918762, + -0.021650727838277817, + 0.059205275028944016, + 0.13990139961242676, + 0.08244998008012772, + -0.12977442145347595 + ] + }, + "p244_363.wav": { + "name": "p244", + "embedding": [ + 0.06403273344039917, + 0.06051492691040039, + -0.02012384496629238, + -0.017881762236356735, + -0.027586935088038445, + 0.04949760064482689, + -0.14439056813716888, + 0.09276485443115234, + -0.003955709747970104, + 0.15863388776779175, + -0.04848731309175491, + 0.11708610504865646, + 0.008923175744712353, + -0.1183699294924736, + -0.0009529429371468723, + 0.02462594211101532, + -0.026231907308101654, + -0.0009149847319349647, + -0.03142998367547989, + -0.04107664152979851, + 0.024890966713428497, + 0.027374088764190674, + 0.022732285782694817, + -0.02660374343395233, + 0.027254194021224976, + 0.06170704960823059, + -0.0024491813965141773, + 0.027911990880966187, + 0.0008403199608437717, + -0.05736023187637329, + 0.007845464162528515, + 0.10094092786312103, + -0.06058371067047119, + 0.014089441858232021, + 0.038132261484861374, + -0.011506977491080761, + -0.016614658758044243, + -0.06505867093801498, + -0.0033435611985623837, + 0.03163169324398041, + -0.042566388845443726, + 0.08961649239063263, + 0.02474232017993927, + 0.004860918037593365, + 0.020051240921020508, + 0.005838615354150534, + -0.0267366673797369, + -0.016912490129470825, + -0.06767590343952179, + 0.137917160987854, + 0.06183375418186188, + 0.002839596476405859, + -0.0751606747508049, + -0.019900521263480186, + 0.05900411307811737, + 0.0002964561281260103, + -0.0757521390914917, + -0.023973045870661736, + 0.02944762632250786, + 0.11183631420135498, + -0.033953357487916946, + -0.06368960440158844, + 0.027156000956892967, + 0.09929130971431732, + 0.04181322082877159, + 0.052422426640987396, + 0.099247507750988, + 0.10775365680456161, + -0.03121456503868103, + 0.013795128092169762, + 0.03532084822654724, + 0.06895013898611069, + 0.08076289296150208, + -0.004452466033399105, + 0.05283006280660629, + 0.0028274524956941605, + -0.003868196625262499, + -0.03429003059864044, + -0.022063929587602615, + -0.03299005329608917, + -0.02209332585334778, + -0.008881988003849983, + 0.023418426513671875, + 0.09854018688201904, + -0.02846275269985199, + 0.011028441600501537, + 0.049822621047496796, + -0.0425729975104332, + 0.02990562468767166, + 0.037396471947431564, + 0.014230488799512386, + 0.030722465366125107, + -0.09800295531749725, + -0.0838424414396286, + 0.03957703709602356, + -0.020706502720713615, + 0.0446818582713604, + 0.055889274924993515, + 0.04385174810886383, + -0.004087240435183048, + 0.08500337600708008, + 0.04163333773612976, + -0.022932028397917747, + -0.007839178666472435, + -0.05945534259080887, + 0.11431651562452316, + 0.10057404637336731, + -0.05528843402862549, + 0.030194278806447983, + -0.033868640661239624, + 0.043563853949308395, + 0.018794789910316467, + -0.12945233285427094, + -0.055467233061790466, + 0.024301959201693535, + 0.036756157875061035, + 0.008293507620692253, + 0.10468360036611557, + 0.008604477159678936, + 0.05039508268237114, + 0.07051946222782135, + -0.026770269498229027, + -0.03179869055747986, + -0.03430252894759178, + 0.036310695111751556, + -0.07879462838172913, + 0.04594317823648453, + 0.02598048560321331, + 0.024373015388846397, + -0.024430004879832268, + 0.09700754284858704, + 0.0073061189614236355, + -0.012344546616077423, + -0.03343578428030014, + 0.02182130143046379, + 0.055880945175886154, + -0.0009930426022037864, + 0.03629352152347565, + 0.02050788328051567, + 0.01343727670609951, + 0.05896482616662979, + 0.029373139142990112, + -0.019857658073306084, + -0.1102408915758133, + 0.03269043564796448, + 0.024887867271900177, + 0.06146380305290222, + -0.041399724781513214, + -0.02417270466685295, + -0.00849065463989973, + -0.06280441582202911, + 0.0016684045549482107, + -0.01296325959265232, + 0.05026625841856003, + 0.01690084859728813, + -0.006596662104129791, + 0.09954860806465149, + -0.0010454729199409485, + 0.012931148521602154, + 0.0148419588804245, + 0.004123309161514044, + 0.013352934271097183, + 0.07219018042087555, + -0.0987880676984787, + -0.06607095897197723, + 0.011087624356150627, + 0.015368583612143993, + 0.0029961182735860348, + 0.039021141827106476, + 0.05914757773280144, + -0.022443201392889023, + 0.0360303670167923, + -0.04600170999765396, + -0.02771448716521263, + -0.0938287079334259, + -0.04784083366394043, + -0.0161521527916193, + -0.046595387160778046, + -0.03091784566640854, + 0.061463065445423126, + -0.010084379464387894, + 0.07136915624141693, + -0.02919497899711132, + -0.047360315918922424, + -0.05189887806773186, + 0.03612043708562851, + 0.05802188441157341, + -0.04861808940768242, + 0.00468931719660759, + 0.07599315047264099, + 0.019815105944871902, + 0.008400033228099346, + 0.07461564242839813, + 0.07611342519521713, + -0.046885859221220016, + 0.001462546526454389, + -0.06221631169319153, + 0.11272623389959335, + 0.0724392980337143, + -0.05227070301771164, + -0.06521911919116974, + -0.03691735491156578, + -0.05702916905283928, + 0.017825230956077576, + -0.03583719953894615, + -0.0038431144785135984, + 0.04523668810725212, + -0.019796017557382584, + -0.0704396590590477, + -0.07848221808671951, + 0.05864795669913292, + -0.0761282667517662, + 0.0054170056246221066, + -0.0638924315571785, + 0.029236098751425743, + 0.06813766807317734, + 0.06036188453435898, + -0.03969743102788925, + 0.019263770431280136, + 0.029042627662420273, + -0.04254719242453575, + -0.0076590306125581264, + 0.030446184799075127, + 0.01466970331966877, + -0.09990754723548889, + -0.03380292281508446, + -0.06023750826716423, + 0.042855702340602875, + -0.0609348826110363, + 0.08603771775960922, + 0.014863325282931328, + -0.05509550869464874, + -0.05701571702957153, + -0.013307898305356503, + -0.012660689651966095, + 0.043151408433914185, + 0.054835908114910126, + 0.06222027167677879, + 0.03838126361370087, + -0.06193374842405319, + 0.0959349125623703, + 0.05506696552038193, + 0.0024874459486454725, + -0.0725620910525322, + -0.02287134900689125, + -0.009760105982422829, + 0.04641138017177582, + 0.03347271308302879, + -0.05269720405340195, + 0.017612092196941376, + 0.028211530297994614, + -0.03257675841450691, + 0.037428416311740875, + 0.08168216049671173, + 0.06732090562582016, + -0.11743035167455673 + ] + }, + "p244_295.wav": { + "name": "p244", + "embedding": [ + 0.05290251970291138, + 0.08866578340530396, + -0.014172036200761795, + 0.03047887608408928, + -0.0520898699760437, + 0.09630829095840454, + -0.13036440312862396, + 0.09883075952529907, + -0.05007344111800194, + 0.15091755986213684, + -0.04731025546789169, + 0.11103080213069916, + 0.011929815635085106, + -0.2080869972705841, + -0.029904644936323166, + 0.05783097445964813, + -0.08765420317649841, + -0.013555746525526047, + -0.08613084256649017, + -0.020421000197529793, + 0.03315795958042145, + 0.031439635902643204, + 0.04728688299655914, + -0.040597423911094666, + 0.02959975227713585, + 0.05423350632190704, + -0.017078906297683716, + 0.02361954376101494, + -0.004263904877007008, + -0.08039578795433044, + -0.06475915014743805, + 0.12110821902751923, + -0.028802108019590378, + 0.012491578236222267, + 0.05075102299451828, + -0.016131596639752388, + -0.007037237752228975, + -0.06531859934329987, + -0.028068624436855316, + 0.024828573688864708, + -0.02811659500002861, + 0.06960184872150421, + 0.03310901299118996, + -0.01496448926627636, + 0.056352488696575165, + -0.017263544723391533, + -0.039818596094846725, + -0.03839851915836334, + -0.08592745661735535, + 0.16973444819450378, + 0.08115704357624054, + -0.00883428193628788, + -0.06046222895383835, + -0.062448158860206604, + 0.09827961027622223, + -0.007846922613680363, + -0.14564767479896545, + -0.0326983705163002, + 0.07282871007919312, + 0.15935982763767242, + -0.015399754047393799, + -0.012290704995393753, + 0.024149175733327866, + 0.12355045229196548, + 0.01387656107544899, + 0.11754472553730011, + 0.05576509237289429, + 0.09296070039272308, + 0.0019340356811881065, + 0.051164157688617706, + 0.063483826816082, + 0.05950479209423065, + 0.043938253074884415, + -0.03550262749195099, + 0.041027605533599854, + -0.0240523349493742, + -0.037449248135089874, + -0.01831389218568802, + -0.025988414883613586, + 0.0010719280689954758, + -0.003004832658916712, + -0.021211858838796616, + 0.026496581733226776, + 0.0051918174140155315, + -0.03328615054488182, + 0.027924194931983948, + 0.030187323689460754, + -0.012468209490180016, + 0.051449112594127655, + 0.07266655564308167, + 0.03139781579375267, + 0.04979772865772247, + -0.04544838145375252, + -0.11425669491291046, + 0.03663652762770653, + 0.03352591395378113, + -0.0007319997530430555, + 0.052891675382852554, + 0.04801598936319351, + -0.031236916780471802, + 0.08309122920036316, + 0.06788374483585358, + -0.013497358188033104, + 0.0316450297832489, + -0.10186915844678879, + 0.11284466087818146, + 0.09876660257577896, + -0.002314150333404541, + 0.04355976730585098, + -0.039824169129133224, + 0.10397098958492279, + 0.08934269845485687, + -0.13914325833320618, + -0.05876270309090614, + 0.027994800359010696, + -0.03508389741182327, + 0.002701176330447197, + 0.10860823094844818, + 0.01188700832426548, + 0.011183975264430046, + 0.09440584480762482, + -0.08775536715984344, + -0.05217909440398216, + -0.03048260696232319, + 0.04033491015434265, + -0.10106860101222992, + 0.04850113391876221, + 0.037350866943597794, + -0.01968272402882576, + -0.007441813126206398, + 0.07533790171146393, + -0.021646160632371902, + -0.0017310635885223746, + 0.013509604148566723, + -0.037927478551864624, + 0.03929981589317322, + -0.036784231662750244, + 0.01562993973493576, + 0.055752623826265335, + 0.02243494987487793, + 0.03153522312641144, + -0.022017188370227814, + -0.02360452711582184, + -0.09017859399318695, + 0.012063869275152683, + 0.032551586627960205, + 0.058903768658638, + -0.005659362301230431, + 0.01366327702999115, + -0.03107360377907753, + -0.09516414254903793, + 0.06370949745178223, + -0.0582180917263031, + 0.06526194512844086, + 0.011835404671728611, + -0.02400565706193447, + 0.0968305915594101, + 0.015253373421728611, + -0.0012897446285933256, + -0.05431203544139862, + -0.025147121399641037, + 0.05116645246744156, + 0.044625066220760345, + -0.10463736206293106, + -0.04806501418352127, + 0.0033200837206095457, + -0.009190395474433899, + -0.014074652455747128, + 0.014267812483012676, + 0.053471509367227554, + 0.011426469311118126, + 0.039148926734924316, + -0.07803167402744293, + 0.016493376344442368, + -0.10991061478853226, + -0.04326704144477844, + -0.021416686475276947, + -0.0697161927819252, + -0.0099858483299613, + 0.10108533501625061, + 0.00226034433580935, + -0.011492466554045677, + -0.04758329689502716, + -0.06428387016057968, + -0.05141941457986832, + 0.06912635266780853, + 0.071955606341362, + 0.008642706088721752, + 0.036815255880355835, + 0.03473331779241562, + -0.008092626929283142, + 0.04696999490261078, + 0.054040051996707916, + 0.11258342862129211, + -0.01833399012684822, + 0.01800486631691456, + -0.08299419283866882, + 0.09973357617855072, + 0.09477218985557556, + -0.0731373280286789, + -0.10853767395019531, + -0.021285444498062134, + -0.05653847008943558, + 0.04914431646466255, + -0.04716038703918457, + -0.033013030886650085, + 0.04293026030063629, + -0.010498236864805222, + -0.08922325074672699, + -0.0917540043592453, + 0.11912663280963898, + -0.055475734174251556, + -0.02718234434723854, + -0.06428301334381104, + 0.04882869869470596, + 0.059380047023296356, + 0.026572778820991516, + -0.06824323534965515, + 0.03023555502295494, + 0.062191300094127655, + -0.05923333764076233, + 0.003709199372678995, + 0.02580970898270607, + 0.012109932489693165, + -0.11526891589164734, + -0.001838963944464922, + -0.07267390191555023, + 0.06847310811281204, + -0.07226385176181793, + 0.15533387660980225, + -0.004655337426811457, + -0.057828888297080994, + -0.062104471027851105, + 0.07144276797771454, + -0.02231518179178238, + 0.030752034857869148, + 0.059447064995765686, + 0.0737541913986206, + 0.035599373281002045, + -0.08204565942287445, + 0.08413322269916534, + 0.007639879826456308, + -0.0029468019492924213, + -0.06997314095497131, + -0.006133362650871277, + -0.041792504489421844, + 0.029643665999174118, + 0.00013725587632507086, + -0.10018723458051682, + 0.016295988112688065, + 0.027648676186800003, + -0.008695149794220924, + 0.06170041859149933, + 0.12852692604064941, + 0.058018703013658524, + -0.10498124361038208 + ] + }, + "p244_265.wav": { + "name": "p244", + "embedding": [ + 0.06141588091850281, + 0.0863850861787796, + -0.00772889144718647, + 0.006429128814488649, + -0.04527030885219574, + 0.05000637099146843, + -0.14279066026210785, + 0.1320023536682129, + -0.056966036558151245, + 0.14200010895729065, + -0.0780944675207138, + 0.12522992491722107, + -0.019226575270295143, + -0.17627684772014618, + -0.04489091783761978, + 0.05379902198910713, + -0.06346271932125092, + -0.04697665572166443, + -0.03622979298233986, + -0.04041717201471329, + 0.04363404959440231, + 0.053445830941200256, + 0.02921658754348755, + 0.01965351402759552, + 0.024492040276527405, + 0.07114890217781067, + 0.0007303707534447312, + 0.03748464584350586, + 0.008124567568302155, + -0.07660400867462158, + -0.03315816819667816, + 0.08190691471099854, + -0.028733596205711365, + 0.00120810407679528, + 0.03400120139122009, + -0.0018271005246788263, + 0.030979255214333534, + -0.08918013423681259, + -0.045051414519548416, + 0.007627800107002258, + -0.0354047492146492, + 0.06582905352115631, + 0.013605700805783272, + -0.030955586582422256, + 0.02764042653143406, + 0.021312881261110306, + -0.010659478604793549, + -0.06219052895903587, + -0.10788904130458832, + 0.16770416498184204, + 0.07065357267856598, + 0.022713806480169296, + -0.05951463431119919, + -0.08140042424201965, + 0.11799120903015137, + -0.02215052768588066, + -0.10574284195899963, + -0.02035026252269745, + 0.05858565866947174, + 0.18034133315086365, + -0.050429366528987885, + -0.048468366265296936, + 0.057583488523960114, + 0.11438995599746704, + 0.05638664960861206, + 0.064597487449646, + 0.10252750664949417, + 0.08532530069351196, + -0.016957592219114304, + -0.003322306089103222, + 0.056352391839027405, + 0.094028539955616, + 0.0768650472164154, + -0.007835718803107738, + 0.027863772585988045, + 0.022023748606443405, + -0.03772643208503723, + -0.005641659256070852, + -0.031409166753292084, + -0.02106664888560772, + -0.010805588215589523, + 0.013345547951757908, + 0.013816862367093563, + 0.02314738556742668, + -0.028986215591430664, + 0.06092710793018341, + 0.012848379090428352, + -0.02544492483139038, + 0.06588050723075867, + 0.01309226918965578, + 0.02681158483028412, + 0.0668388232588768, + -0.07371874153614044, + -0.0790446400642395, + 0.040636513382196426, + 0.015440435148775578, + 0.009443160146474838, + 0.06674832850694656, + 0.05638415366411209, + -0.035714857280254364, + 0.13445249199867249, + 0.051664482802152634, + 0.0027419414836913347, + 0.01137523166835308, + -0.09602459520101547, + 0.10689400136470795, + 0.10667445510625839, + -0.04308803379535675, + 0.051937036216259, + -0.041244879364967346, + 0.06648872047662735, + 0.06827705353498459, + -0.15634435415267944, + -0.10099723935127258, + 0.03558790683746338, + 0.022423533722758293, + 0.0029250963125377893, + 0.11810757219791412, + -0.009108901023864746, + 0.05770644173026085, + 0.10427931696176529, + -0.08280959725379944, + -0.05646088346838951, + -0.020561296492815018, + 0.057388439774513245, + -0.0824371948838234, + 0.07191649079322815, + 0.06053715944290161, + -0.004701548255980015, + 0.0077123260125517845, + 0.07615099847316742, + -0.02628055214881897, + -0.016148649156093597, + -0.010600737296044827, + -0.047366973012685776, + 0.004877621307969093, + -0.03101721592247486, + -0.026803234592080116, + 0.031856268644332886, + 0.048052143305540085, + 0.021104853600263596, + 0.005830016452819109, + -0.05748726427555084, + -0.13851776719093323, + 0.0194392092525959, + 0.027735350653529167, + 0.07751675695180893, + 0.0011948405299335718, + -0.025190945714712143, + -0.03790529817342758, + -0.04290200024843216, + -0.002937731798738241, + -0.017169035971164703, + 0.07741132378578186, + -0.02447914332151413, + 0.025848161429166794, + 0.09395711123943329, + 0.022960063070058823, + -0.004125075880438089, + -0.02629566192626953, + -0.018751507624983788, + 0.018105752766132355, + 0.04463201016187668, + -0.046960942447185516, + -0.09143471717834473, + -0.013318241573870182, + 0.04128715395927429, + -0.013524128124117851, + 0.06687702238559723, + 0.02442941442131996, + 0.01055664848536253, + 0.019471533596515656, + -0.0704900473356247, + 0.02539224922657013, + -0.11442510038614273, + -0.0675152838230133, + 0.009721603244543076, + -0.02033161371946335, + -0.01928350329399109, + 0.0666721984744072, + 0.027444487437605858, + 0.05788690596818924, + -0.038635265082120895, + -0.0817505270242691, + -0.08335334062576294, + 0.04522058367729187, + 0.07481241971254349, + 0.004759491421282291, + 0.023886388167738914, + 0.06340890377759933, + 0.015949996188282967, + 0.06555631756782532, + 0.057088494300842285, + 0.10183705389499664, + -0.004194200038909912, + 0.010300399735569954, + -0.051059022545814514, + 0.08699583262205124, + 0.06291025131940842, + -0.06870310008525848, + -0.07695413380861282, + -0.03393455967307091, + -0.07696463167667389, + 0.05199280008673668, + 0.011047711595892906, + 0.029042871668934822, + 0.023142365738749504, + -0.0053185345605015755, + -0.10475137084722519, + -0.07338863611221313, + 0.0940384715795517, + -0.05864279717206955, + -0.012832490727305412, + -0.07504788786172867, + 0.0514068566262722, + 0.11660397052764893, + 0.032704733312129974, + 0.004244822543114424, + -0.014622854068875313, + 0.022180471569299698, + -0.04421330988407135, + 0.0025789428036659956, + 0.04622779041528702, + 0.039170339703559875, + -0.11233170330524445, + 0.016567479819059372, + -0.09519881010055542, + 0.05243542045354843, + -0.046724990010261536, + 0.14224502444267273, + 0.006798848044127226, + -0.05118474364280701, + -0.11130020767450333, + 0.03792344033718109, + -0.026183992624282837, + 0.07226990908384323, + 0.02974279224872589, + 0.06457917392253876, + 0.04768770933151245, + -0.08781243860721588, + 0.0921948179602623, + 0.051670871675014496, + -0.04571196436882019, + -0.07563783973455429, + -0.06704097986221313, + -0.0293809175491333, + 0.011358235031366348, + -0.009815889410674572, + -0.05694393813610077, + -0.028338033705949783, + 0.005018941126763821, + 0.000653441995382309, + 0.07874833047389984, + 0.12727107107639313, + 0.04640696197748184, + -0.12975960969924927 + ] + }, + "p244_038.wav": { + "name": "p244", + "embedding": [ + 0.06439477205276489, + 0.11627796292304993, + -0.018857136368751526, + -0.011145049706101418, + -0.025873221457004547, + 0.049101777374744415, + -0.1650121510028839, + 0.13044854998588562, + -0.027952594682574272, + 0.15885549783706665, + -0.08671392500400543, + 0.11310912668704987, + -0.016927197575569153, + -0.14900633692741394, + -0.033550798892974854, + 0.018714770674705505, + -0.036722928285598755, + -0.014324760064482689, + -0.022692708298563957, + -0.02819386124610901, + 0.054330985993146896, + 0.05505513772368431, + 0.009814209304749966, + -0.018059393391013145, + 0.008099757134914398, + 0.05739843472838402, + 0.0039299605414271355, + 0.0375874787569046, + 0.014269409701228142, + -0.05008117854595184, + -0.025907929986715317, + 0.10695318877696991, + -0.03858288377523422, + 0.01771639473736286, + 0.03339051455259323, + -0.005038121249526739, + -0.0033116545528173447, + -0.07335206121206284, + 0.0052226148545742035, + 0.008138231001794338, + -0.018129779025912285, + 0.06418715417385101, + 0.017314670607447624, + -0.023593097925186157, + 0.026232846081256866, + 0.02572501264512539, + 0.011489740572869778, + -0.06279759854078293, + -0.07686542719602585, + 0.168763667345047, + 0.06735078990459442, + -0.00111345702316612, + -0.05967877432703972, + -0.03979071229696274, + 0.08087699115276337, + -0.018116841092705727, + -0.074142687022686, + -0.032986100763082504, + 0.054672449827194214, + 0.13474556803703308, + -0.03676103800535202, + -0.06252637505531311, + 0.05071040615439415, + 0.11635462939739227, + 0.026544924825429916, + 0.06582682579755783, + 0.10050135850906372, + 0.09124962985515594, + -0.026495974510908127, + -0.0028315093368291855, + 0.013345044106245041, + 0.06011321395635605, + 0.05108907073736191, + -0.025840725749731064, + 0.04631713032722473, + -0.020554862916469574, + -0.024403532966971397, + 0.014409735798835754, + -0.02092524617910385, + -0.045812174677848816, + -0.0015328023582696915, + 0.011809545569121838, + -0.012846815399825573, + 0.04751688241958618, + -0.04888773709535599, + 0.031168799847364426, + 0.024889757856726646, + -0.03402239829301834, + 0.07779605686664581, + 0.028156638145446777, + 0.04669620841741562, + 0.04032839462161064, + -0.08856549859046936, + -0.07841338217258453, + 0.06819409877061844, + -0.0027875984087586403, + 0.013581261038780212, + 0.08013671636581421, + 0.04817834496498108, + -0.02230714075267315, + 0.11979600042104721, + 0.04247979074716568, + -0.019626734778285027, + 0.0074136629700660706, + -0.09032045304775238, + 0.14209407567977905, + 0.1045672819018364, + -0.05363459512591362, + 0.036355264484882355, + -0.06699031591415405, + 0.047368377447128296, + 0.04370930418372154, + -0.12915927171707153, + -0.08462279289960861, + 0.05312618613243103, + 0.04017074406147003, + -0.00770151149481535, + 0.10889987647533417, + 0.0024326108396053314, + 0.02700762078166008, + 0.08302212506532669, + -0.0719294399023056, + -0.06971342861652374, + -0.037190478295087814, + 0.05197039246559143, + -0.09291410446166992, + 0.06969888508319855, + 0.07189285755157471, + -0.0032593084033578634, + 0.0007802906329743564, + 0.0739070475101471, + -0.010575811378657818, + 0.008843726478517056, + -0.017711874097585678, + -0.01732797920703888, + 0.020265422761440277, + -0.0185215063393116, + -0.007625448517501354, + -0.03312220424413681, + 0.040559276938438416, + 0.04554632306098938, + 0.008804453536868095, + -0.03333550691604614, + -0.11797411739826202, + 0.018385019153356552, + 0.046660587191581726, + 0.05299576371908188, + -0.011743198148906231, + -0.03923667594790459, + -0.04114318639039993, + -0.03889688849449158, + -0.021580945700407028, + -0.024570494890213013, + 0.05154753848910332, + -0.010507899336516857, + 0.018989600241184235, + 0.1126655861735344, + 0.027028437703847885, + 0.006295781582593918, + -0.027226507663726807, + -0.004959492944180965, + 0.026845797896385193, + 0.03674827516078949, + -0.051401712000370026, + -0.08731059730052948, + -0.02251921407878399, + 0.030141083523631096, + -0.006006236188113689, + 0.06439631432294846, + 0.05828789621591568, + 0.013215817511081696, + 0.03246751427650452, + -0.09111323207616806, + 0.023509180173277855, + -0.10091763734817505, + -0.050731733441352844, + -0.012368658557534218, + -0.01097035314887762, + -0.012854345142841339, + 0.079320028424263, + 0.0087592713534832, + 0.05264304205775261, + -0.03827190026640892, + -0.055144526064395905, + -0.07200711965560913, + 0.04566948115825653, + 0.09830781817436218, + -0.01894742250442505, + 0.022245291620492935, + 0.04311996325850487, + 0.0045318896882236, + 0.04133991897106171, + 0.06632495671510696, + 0.09142457693815231, + -0.010978798381984234, + -0.0015562947373837233, + -0.05638126656413078, + 0.07100266218185425, + 0.06787656992673874, + -0.0793527215719223, + -0.0751798003911972, + -0.029535826295614243, + -0.06890953332185745, + 0.004041846841573715, + -0.007809102535247803, + 0.02664385735988617, + 0.01961926743388176, + -0.01260912325233221, + -0.1013621985912323, + -0.08399906754493713, + 0.0572051964700222, + -0.06348063051700592, + 0.0034241406247019768, + -0.085358165204525, + 0.06912264227867126, + 0.09726061671972275, + 0.04884674400091171, + -0.0440090075135231, + -0.045738112181425095, + 0.011684160679578781, + -0.03165445476770401, + 0.01865381747484207, + 0.012331570498645306, + 0.06041670963168144, + -0.11584147810935974, + 0.0500732883810997, + -0.07793223857879639, + 0.05905335396528244, + -0.07582663744688034, + 0.13418897986412048, + 0.029116196557879448, + -0.06510952115058899, + -0.10680127143859863, + 0.04201100394129753, + -0.021726496517658234, + 0.0337463840842247, + 0.01406768523156643, + 0.027783513069152832, + 0.03574041277170181, + -0.10570641607046127, + 0.08106917887926102, + 0.04952608793973923, + -0.023613858968019485, + -0.09165468066930771, + -0.061425477266311646, + -0.02786344848573208, + 0.04794113337993622, + 0.02549189329147339, + -0.062400832772254944, + -0.04226354509592056, + 0.024085480719804764, + 0.004088684916496277, + 0.09167845547199249, + 0.1242532879114151, + 0.034429892897605896, + -0.14338025450706482 + ] + }, + "p244_217.wav": { + "name": "p244", + "embedding": [ + 0.05695503577589989, + 0.07583010196685791, + -0.016389742493629456, + 0.018431421369314194, + -0.040894389152526855, + 0.04120801016688347, + -0.1546989530324936, + 0.14659383893013, + -0.015423774719238281, + 0.13480515778064728, + -0.06425818055868149, + 0.12210576236248016, + 0.0032971855252981186, + -0.20861417055130005, + -0.013658901676535606, + 0.051295384764671326, + -0.028287667781114578, + -0.022000018507242203, + -0.03859560191631317, + -0.009296084754168987, + 0.0401318296790123, + 0.03239862620830536, + 0.001549319364130497, + -0.009849275462329388, + 0.020781300961971283, + 0.054708003997802734, + 0.0013669790932908654, + 0.046801090240478516, + 0.002334756776690483, + -0.029335247352719307, + -0.030995184555649757, + 0.10988393425941467, + -0.05703957751393318, + 0.017359916120767593, + 0.08969232439994812, + -0.016148347407579422, + -0.03298070654273033, + -0.0500020869076252, + -0.029819557443261147, + 0.003663610899820924, + -0.05784587189555168, + 0.07706837356090546, + 0.04449599236249924, + -0.008327395655214787, + 0.06315970420837402, + 0.055972568690776825, + 0.0015063886530697346, + -0.054875247180461884, + -0.09596193581819534, + 0.138583242893219, + 0.0606389194726944, + 0.00836460292339325, + -0.07635632157325745, + -0.04892273247241974, + 0.09018982946872711, + -0.027881067246198654, + -0.10177905112504959, + -0.03320343419909477, + 0.08164609968662262, + 0.14266330003738403, + -0.04466687887907028, + -0.04286735877394676, + 0.017054174095392227, + 0.10297219455242157, + 0.06363245099782944, + 0.10223960876464844, + 0.08230701088905334, + 0.12241026759147644, + -0.014631897211074829, + 0.025025956332683563, + 0.059896860271692276, + 0.0698169618844986, + 0.07432568073272705, + -0.023188291117548943, + 0.03386310115456581, + 0.02448231168091297, + -0.023037364706397057, + -0.012589871883392334, + -0.033811695873737335, + 0.01158376969397068, + 0.001882069744169712, + 0.02314615249633789, + 0.03053019940853119, + 0.03674817085266113, + -0.029230520129203796, + 0.05880194902420044, + 0.06158149614930153, + -0.01925525814294815, + 0.04934092238545418, + 0.03643257915973663, + -0.004568001255393028, + 0.062270596623420715, + -0.12189958244562149, + -0.1047031581401825, + 0.031784188002347946, + -0.015407895669341087, + 0.012638932093977928, + 0.06763593852519989, + 0.04626145958900452, + -0.005873025394976139, + 0.11342759430408478, + 0.05139974504709244, + -0.020759545266628265, + 0.05428338423371315, + -0.09721888601779938, + 0.1181439608335495, + 0.0793595165014267, + -0.031073730438947678, + 0.0436832532286644, + -0.07522480189800262, + 0.08172430098056793, + 0.06279304623603821, + -0.13817885518074036, + -0.06196904182434082, + 0.05790138989686966, + 0.010804906487464905, + -0.02299630269408226, + 0.1456695795059204, + -0.019599225372076035, + 0.03169623762369156, + 0.10761342942714691, + -0.08864068984985352, + -0.049610260874032974, + -0.017023073509335518, + 0.04631923884153366, + -0.08943146467208862, + 0.07312345504760742, + 0.024890314787626266, + 0.002169303596019745, + 0.0080955158919096, + 0.09349853545427322, + -0.0017502279952168465, + -0.01249099150300026, + -0.018021676689386368, + -0.0033812960609793663, + 0.03437964990735054, + -0.022166170179843903, + -0.002121887868270278, + 0.02192838490009308, + 0.029682371765375137, + 0.04028315842151642, + 0.010425377637147903, + -0.028041765093803406, + -0.1250048577785492, + 0.008147882297635078, + 0.034634895622730255, + 0.10226175934076309, + -0.01784675195813179, + -0.010427807457745075, + -0.05093197152018547, + -0.07607053220272064, + 0.003930846229195595, + -0.020810648798942566, + 0.055109620094299316, + 0.0025551526341587305, + 0.013672232627868652, + 0.10381767153739929, + 0.014201506972312927, + 0.01283918134868145, + -0.04554907977581024, + -0.027497630566358566, + 0.005998424254357815, + 0.06512703746557236, + -0.09334829449653625, + -0.06682019680738449, + -0.010354258120059967, + 0.004766783677041531, + -0.025279425084590912, + 0.037344325333833694, + 0.03449561819434166, + 0.036036308854818344, + 0.036823682487010956, + -0.08531507104635239, + 0.0018016083631664515, + -0.1394508183002472, + -0.0815252959728241, + -0.02151612378656864, + -0.0015938917640596628, + -0.012259655632078648, + 0.0693151131272316, + 0.0033840928226709366, + 0.052119988948106766, + -0.026590734720230103, + -0.06745981425046921, + -0.07988043129444122, + 0.06508442759513855, + 0.07555993646383286, + -0.010908445343375206, + 0.038952335715293884, + 0.04205147176980972, + -0.03055877983570099, + 0.03896339610219002, + 0.07675856351852417, + 0.11281244456768036, + -0.008918274194002151, + 0.03658916801214218, + -0.06202957034111023, + 0.12142127752304077, + 0.0861264169216156, + -0.06951456516981125, + -0.09837830066680908, + 0.005457638297230005, + -0.06019698828458786, + 0.01422215811908245, + -0.02416147291660309, + 0.005793252028524876, + 0.023187510669231415, + 0.0074515496380627155, + -0.08348351716995239, + -0.07295876741409302, + 0.05929452180862427, + -0.07700511068105698, + -0.003775406628847122, + -0.0873730480670929, + 0.047739215195178986, + 0.10900114476680756, + 0.024313991889357567, + -0.04424477368593216, + -0.03279256820678711, + 0.05699847638607025, + -0.03447532653808594, + -0.0061314767226576805, + 0.03095804899930954, + 0.035259686410427094, + -0.10586991906166077, + 0.004525955766439438, + -0.04176730290055275, + 0.05354766547679901, + -0.04886385798454285, + 0.13047727942466736, + -0.0014129416085779667, + -0.05769328773021698, + -0.061096373945474625, + 0.017582561820745468, + 0.010860014706850052, + 0.042609430849552155, + 0.027057643979787827, + 0.07789435982704163, + 0.04094276577234268, + -0.06281334161758423, + 0.12140953540802002, + 0.03557422012090683, + -0.03031773492693901, + -0.057436373084783554, + -0.06296677887439728, + -0.03395545110106468, + 0.021839486435055733, + 0.01674625836312771, + -0.09285302460193634, + -0.019008222967386246, + 0.026923567056655884, + -0.03376341238617897, + 0.02698184736073017, + 0.14462527632713318, + 0.05075627937912941, + -0.13280043005943298 + ] + }, + "p244_175.wav": { + "name": "p244", + "embedding": [ + 0.06346789002418518, + 0.07751361280679703, + -0.061345186084508896, + 0.0059855300933122635, + -0.06816507875919342, + 0.050359081476926804, + -0.1395430713891983, + 0.12861904501914978, + -0.0015069455839693546, + 0.13703063130378723, + -0.02308640256524086, + 0.12194506824016571, + 0.00845268089324236, + -0.14056716859340668, + -0.010019214823842049, + 0.016649287194013596, + -0.01854596473276615, + -0.010776717215776443, + -0.07068033516407013, + -0.052345190197229385, + 0.03140375390648842, + 0.02599193900823593, + 0.027596620842814445, + -0.06848743557929993, + 0.04689355939626694, + 0.047257475554943085, + -0.015023407526314259, + 0.013693500310182571, + -0.011562461964786053, + -0.07093634456396103, + -0.019092991948127747, + 0.08376101404428482, + -0.09498448669910431, + 0.008083469234406948, + 0.03845779597759247, + -0.04263698309659958, + -0.051721327006816864, + -0.037724271416664124, + 0.007709467317909002, + 0.023672278970479965, + -0.020013734698295593, + 0.08998864889144897, + 0.03202503174543381, + -0.030420318245887756, + 0.03258658945560455, + 0.001791088841855526, + -0.006609803065657616, + -0.03055848926305771, + -0.07270245999097824, + 0.13985535502433777, + 0.04490544646978378, + 0.010950845666229725, + -0.09802262485027313, + -0.03327689319849014, + 0.07671360671520233, + -0.03424697741866112, + -0.10362584888935089, + -0.035309724509716034, + 0.020134149119257927, + 0.10259351879358292, + -0.034387215971946716, + -0.04813402146100998, + 0.03244548290967941, + 0.08628875762224197, + 0.0844549611210823, + 0.0418822281062603, + 0.11302679032087326, + 0.12304940819740295, + -0.03118106722831726, + 0.042952124029397964, + 0.03557780757546425, + 0.0666932687163353, + 0.04517190530896187, + -0.014657807536423206, + 0.03452032059431076, + -0.046633247286081314, + 0.011902025900781155, + -0.06789163500070572, + -0.024341249838471413, + -0.037758272141218185, + -0.006508654914796352, + 0.018251894041895866, + 0.02663244679570198, + 0.05192834883928299, + -0.062040265649557114, + 0.02899051085114479, + 0.0837457999587059, + -0.0628102719783783, + 0.0670715719461441, + 0.06139007955789566, + 0.010444831103086472, + 0.042947880923748016, + -0.12700915336608887, + -0.07083833962678909, + 0.04285401478409767, + -0.0016075544990599155, + 0.04289363697171211, + 0.04432043060660362, + 0.037159513682127, + 0.003587345825508237, + 0.0998082309961319, + 0.0711551383137703, + -0.020768309012055397, + 0.003666960634291172, + -0.05657308176159859, + 0.1488042175769806, + 0.08466958999633789, + -0.04089108854532242, + 0.046057868748903275, + -0.05397312343120575, + 0.04399727284908295, + 0.03330078348517418, + -0.08752667903900146, + -0.07684275507926941, + 0.01432211697101593, + 0.006382961757481098, + -0.01619766280055046, + 0.13093313574790955, + 0.0027348671574145555, + 0.04161256179213524, + 0.08714604377746582, + -0.08063099533319473, + -0.04750104993581772, + -0.008746836334466934, + 0.04431828111410141, + -0.0802057683467865, + 0.05823252350091934, + 0.06678904592990875, + -0.006550130434334278, + 0.03733261674642563, + 0.09099490195512772, + 0.009603897109627724, + 0.02753298729658127, + 0.0021466300822794437, + 0.010971230454742908, + 0.04248962178826332, + 0.02431904710829258, + -0.01051582582294941, + 0.04359505698084831, + 0.028018495067954063, + 0.08911307901144028, + -0.007681314367800951, + 0.006342812441289425, + -0.09554597735404968, + 0.025849614292383194, + 0.03165729343891144, + 0.0675920695066452, + -0.057238973677158356, + -0.008086977526545525, + -0.026148777455091476, + -0.06742510199546814, + 0.017159990966320038, + 0.00811290554702282, + 0.06082607060670853, + 0.002425331389531493, + -0.011956543661653996, + 0.1416836380958557, + 0.04129130765795708, + 0.014940298162400723, + -0.03290032222867012, + 0.010639454238116741, + 0.00022791652008891106, + 0.07365251332521439, + -0.09108705073595047, + -0.05736298859119415, + -0.02716674469411373, + 0.013833167031407356, + -0.012481394223868847, + 0.08955036848783493, + 0.09413868188858032, + 0.0075254542753100395, + 0.03182124346494675, + -0.05812346190214157, + 0.013353829272091389, + -0.04923943802714348, + -0.03914391249418259, + -0.004920173902064562, + -0.055269740521907806, + -0.06653085350990295, + 0.09049324691295624, + 0.017146818339824677, + 0.053514279425144196, + -0.05546388775110245, + -0.06544967740774155, + -0.06264512985944748, + 0.023702749982476234, + 0.02649877779185772, + -0.060478150844573975, + -0.004596519283950329, + 0.05585126578807831, + -0.027569957077503204, + 0.019031893461942673, + 0.09241661429405212, + 0.06888863444328308, + -0.06637530773878098, + -0.00018554739654064178, + -0.05951085686683655, + 0.11070995032787323, + 0.07835686951875687, + -0.07178416848182678, + -0.07632406800985336, + -0.046406686305999756, + -0.051771312952041626, + -0.018572799861431122, + -0.02746032178401947, + 0.02444702759385109, + 0.056583959609270096, + -0.009931129403412342, + -0.08003847301006317, + -0.11080262809991837, + 0.08064588904380798, + -0.08228999376296997, + 0.024792760610580444, + -0.08462819457054138, + 0.028489451855421066, + 0.06298046559095383, + 0.026346109807491302, + -0.03569354489445686, + -0.023774772882461548, + 0.017565038055181503, + -0.005380216985940933, + 0.039895229041576385, + 0.060947537422180176, + 0.05775279179215431, + -0.06291563808917999, + -0.028329215943813324, + -0.04761023074388504, + 0.044990167021751404, + -0.023175090551376343, + 0.12658056616783142, + 0.026585116982460022, + -0.03660263866186142, + -0.07988627254962921, + 0.039842698723077774, + -0.037337832152843475, + 0.04629252478480339, + 0.06123068183660507, + 0.07132358849048615, + 0.04912687465548515, + -0.062370799481868744, + 0.08713943511247635, + 0.0624421201646328, + -0.027981458231806755, + -0.08425964415073395, + -0.060185227543115616, + -0.02597776986658573, + 0.04996762052178383, + 0.032887209206819534, + -0.0841042548418045, + 0.034382712095975876, + 0.028365720063447952, + -0.004861542489379644, + 0.03693706914782524, + 0.09719918668270111, + 0.0782008022069931, + -0.09507626295089722 + ] + }, + "p244_207.wav": { + "name": "p244", + "embedding": [ + 0.005714900325983763, + 0.06457733362913132, + 0.004187434911727905, + -0.021525951102375984, + -0.0065626781433820724, + 0.02792624942958355, + -0.14002498984336853, + 0.06731373071670532, + -0.01818159781396389, + 0.1356664001941681, + -0.05324416235089302, + 0.06830120831727982, + -0.034483082592487335, + -0.10734449326992035, + -0.007863657549023628, + 0.022485030815005302, + -0.05902174860239029, + -0.026858985424041748, + -0.0009185560047626495, + -0.08321932703256607, + 0.02623319998383522, + 0.005208658054471016, + 0.013213034719228745, + -0.04361630231142044, + -0.02752767875790596, + 0.07028138637542725, + 0.002143390476703644, + -0.0146803492680192, + -0.009182943031191826, + -0.04172234237194061, + 0.01835324987769127, + 0.06217292696237564, + -0.0318247489631176, + 0.004048257600516081, + 0.04170429706573486, + 0.007519562728703022, + -0.01493147574365139, + 0.01532783918082714, + 0.0287703275680542, + 0.06161107122898102, + -0.06338603794574738, + 0.07941804826259613, + 0.036901164799928665, + 0.014048144221305847, + 0.06236494705080986, + -0.01656649261713028, + -0.028536368161439896, + 0.034821610897779465, + -0.03549067676067352, + 0.10615966469049454, + 0.06451530009508133, + -0.017689723521471024, + -0.027370542287826538, + 0.012758234515786171, + 0.07373268902301788, + 0.0021164226345717907, + -0.11973743140697479, + -0.004540946334600449, + 0.03217212110757828, + 0.08122918009757996, + -0.040893152356147766, + -0.06576414406299591, + 0.014500039629638195, + 0.07964563369750977, + -0.0014269910752773285, + 0.062040407210588455, + 0.07595833390951157, + 0.07689637690782547, + -0.026510760188102722, + -0.040906645357608795, + 0.04899820685386658, + 0.05743949115276337, + 0.05673843249678612, + -0.024928472936153412, + 0.06329768896102905, + -0.034276604652404785, + 0.012909727171063423, + -0.02175063267350197, + -0.010366223752498627, + -0.04512477666139603, + -0.05208081007003784, + -0.02282804436981678, + 0.003028125036507845, + 0.045927394181489944, + -0.0029825950041413307, + -0.014140933752059937, + 0.06439346075057983, + -0.02593814767897129, + 0.03771301358938217, + 0.050027865916490555, + 0.014379791915416718, + 0.0230235792696476, + -0.05738743022084236, + -0.013791057281196117, + 0.003596492111682892, + -0.03006008267402649, + 0.07999237626791, + 0.036222681403160095, + 0.036017417907714844, + 0.03391757607460022, + 0.06323987990617752, + 0.04017386585474014, + -0.017293326556682587, + -0.019558804109692574, + -0.09338685870170593, + 0.09457619488239288, + 0.09398174285888672, + -0.06248994916677475, + 0.014357410371303558, + -5.624443292617798e-05, + 0.03288285806775093, + -0.015759091824293137, + -0.06893797963857651, + -0.023726005107164383, + 0.009546736255288124, + 0.08211015909910202, + 0.0017561540007591248, + 0.1265469193458557, + 0.016067221760749817, + 0.009599420242011547, + 0.09014800190925598, + -0.007023267447948456, + -0.026835009455680847, + -0.06230008974671364, + 0.018501663580536842, + -0.09613300859928131, + 0.06004936248064041, + 0.04435037449002266, + 0.03709470108151436, + 0.017522094771265984, + 0.09381219744682312, + 0.015421802178025246, + -0.004207766614854336, + -0.06147175654768944, + 0.00561306020244956, + 0.03227153420448303, + 0.020716127008199692, + 0.04621957987546921, + 0.054952818900346756, + 0.008233473636209965, + 0.1018039733171463, + 0.04387457296252251, + -0.013423305004835129, + -0.08311109244823456, + 0.021318968385457993, + 0.019052643328905106, + 0.01211455836892128, + -0.03850438445806503, + -0.03483520820736885, + -0.008608279749751091, + -0.07386927306652069, + -0.005466017872095108, + -0.03254125639796257, + 0.07076390087604523, + 0.0018328777514398098, + -0.034657251089811325, + 0.10914607346057892, + 0.03254685923457146, + -0.020932482555508614, + -0.007662458345293999, + -0.03775492310523987, + -0.036882780492305756, + 0.05189044028520584, + -0.16695855557918549, + -0.05213463306427002, + -0.03214156627655029, + 0.05830372869968414, + 0.04806680604815483, + 0.02171982452273369, + 0.09682385623455048, + -0.01593824289739132, + 0.034122928977012634, + 0.019758760929107666, + 0.0075564393773674965, + -0.05600166320800781, + -0.09161937236785889, + -0.0397486612200737, + -0.08457554876804352, + -0.03153682500123978, + 0.049176983535289764, + -0.05968166142702103, + 0.043516017496585846, + -0.016835235059261322, + -0.06165733188390732, + -0.052258171141147614, + 0.04853470250964165, + 0.022019289433956146, + -0.0495682992041111, + 0.008231607265770435, + 0.09220928698778152, + -0.01490121241658926, + 0.010350488126277924, + 0.02598405070602894, + 0.11678995937108994, + -0.07933177053928375, + 0.034209318459033966, + -0.05690230056643486, + 0.04964562505483627, + 0.06604070961475372, + -0.024854913353919983, + -0.04516545683145523, + -0.04230199381709099, + -0.033467452973127365, + 0.04247598350048065, + -0.05804087966680527, + -0.023922963067889214, + -0.02045528031885624, + 0.001905662938952446, + -0.043074484914541245, + -0.06196685880422592, + 0.04031866788864136, + -0.042273685336112976, + 0.01316012255847454, + -0.048686493188142776, + 0.014568752609193325, + -0.0010052993893623352, + 0.06246006488800049, + -0.06711981445550919, + 0.06435006111860275, + 0.013680890202522278, + -0.02490854635834694, + 0.025920730084180832, + 0.01244838535785675, + 0.048085447400808334, + -0.02043239399790764, + -0.07742955535650253, + -0.09716372936964035, + 0.026665080338716507, + -0.04094772785902023, + 0.04497615993022919, + 0.010428737848997116, + -0.038724079728126526, + 0.001246955245733261, + -0.029422644525766373, + -0.03412716090679169, + 0.021321220323443413, + 0.07773859053850174, + 0.07390090823173523, + 0.02460348978638649, + -0.0009994925931096077, + 0.09132890403270721, + 0.039713699370622635, + 0.02696148492395878, + -0.02657892368733883, + 0.013455790467560291, + -0.03710121288895607, + 0.006606810260564089, + 0.042904119938611984, + -0.09355448186397552, + 0.03492759168148041, + -0.006384681910276413, + 0.022673599421977997, + 0.025408102199435234, + 0.05549946799874306, + 0.03747066855430603, + -0.06575259566307068 + ] + }, + "p244_410.wav": { + "name": "p244", + "embedding": [ + 0.06138628348708153, + 0.11542730033397675, + 0.013618210330605507, + 0.0043386900797486305, + -0.02632880210876465, + 0.07874049246311188, + -0.12588030099868774, + 0.1312543749809265, + -0.06868959963321686, + 0.15047144889831543, + -0.07057936489582062, + 0.11297422647476196, + -0.024098871275782585, + -0.1708507537841797, + -0.04770872741937637, + 0.06264124810695648, + -0.04859438166022301, + 0.002145136473700404, + -0.02605314552783966, + 0.02059422805905342, + 0.03261344134807587, + 0.010087705217301846, + 0.050151657313108444, + -0.019247662276029587, + 0.036634813994169235, + 0.049692511558532715, + 0.022401003167033195, + 0.0738116055727005, + 0.031047113239765167, + -0.059921614825725555, + -0.029059529304504395, + 0.11814715713262558, + -0.03588221222162247, + 0.03566500544548035, + 0.08219851553440094, + 0.003195669502019882, + -0.0030348829459398985, + -0.07293616235256195, + -0.008689919486641884, + -0.01337275467813015, + -0.027580013498663902, + 0.06656365841627121, + 0.013780351728200912, + -0.007230506278574467, + 0.03034483641386032, + 0.02612973004579544, + -0.005744854919612408, + -0.04188116639852524, + -0.08389604091644287, + 0.13862720131874084, + 0.047218628227710724, + 0.00871156807988882, + -0.0780838280916214, + -0.09332337975502014, + 0.09848659485578537, + -0.018711350858211517, + -0.1180376410484314, + -0.03769146651029587, + 0.07095952332019806, + 0.1657940149307251, + -0.01791992597281933, + -0.026444222778081894, + 0.009156377986073494, + 0.11890661716461182, + 0.028830749914050102, + 0.12218604981899261, + 0.06318780034780502, + 0.08197610825300217, + 0.01749119721353054, + 0.05555614084005356, + 0.04741935059428215, + 0.05871226638555527, + 0.020235486328601837, + -0.01295311190187931, + 0.02967890165746212, + -0.010496165603399277, + -0.03945232182741165, + 0.02183038368821144, + -0.010659299790859222, + -0.016780901700258255, + -0.034632548689842224, + 0.007578754797577858, + -0.0019083371153101325, + 0.01640445366501808, + -0.008604365400969982, + 0.045778315514326096, + -0.009708210825920105, + -0.008862346410751343, + 0.07167281210422516, + 0.050735436379909515, + 0.020126227289438248, + 0.053325824439525604, + -0.05838897079229355, + -0.10883063077926636, + 0.003109367098659277, + 0.0016980597283691168, + 0.0108483312651515, + 0.07835330814123154, + 0.03138541430234909, + -0.014842085540294647, + 0.08973574638366699, + 0.06415779888629913, + 0.007397042587399483, + 0.026149261742830276, + -0.10174152255058289, + 0.10870009660720825, + 0.06329715251922607, + -0.019336581230163574, + 0.04037659615278244, + -0.04727781563997269, + 0.08257965743541718, + 0.09861951321363449, + -0.14841406047344208, + -0.08689580857753754, + 0.03101716935634613, + -0.00731317326426506, + -5.131463331053965e-05, + 0.09431871771812439, + -0.012281810864806175, + 0.001758349477313459, + 0.08549165725708008, + -0.08166474103927612, + -0.06902052462100983, + -0.026373399421572685, + 0.049318306148052216, + -0.06889750063419342, + 0.05453240126371384, + 0.031536247581243515, + -0.017920486629009247, + -0.02202051505446434, + 0.08621321618556976, + -0.006947343237698078, + 0.004568722099065781, + 0.034689128398895264, + -0.047042228281497955, + 0.0336570180952549, + -0.05507899448275566, + 0.029752647504210472, + 0.02880193293094635, + 0.0472036674618721, + 0.042597874999046326, + 0.007979786954820156, + -0.04230373352766037, + -0.08210102468729019, + -0.010056205093860626, + 0.06830783188343048, + 0.054157599806785583, + -0.015459793619811535, + -0.03502073884010315, + -0.025027073919773102, + -0.04586402326822281, + 0.024098828434944153, + -0.013705159537494183, + 0.08127333968877792, + 0.009081423282623291, + 0.0028022523038089275, + 0.11192270368337631, + -0.0038240584544837475, + 0.003933777566999197, + -0.06656401604413986, + -0.020861174911260605, + 0.03896436467766762, + 0.04738524183630943, + -0.08721837401390076, + -0.0633912906050682, + 0.02096131443977356, + -0.00287054106593132, + -0.015570729970932007, + 0.02618386410176754, + 0.04338506981730461, + 0.011953679844737053, + 0.05130385980010033, + -0.06290173530578613, + 0.009931986220180988, + -0.12084567546844482, + -0.06573657691478729, + -0.03267340362071991, + -0.02831471711397171, + -0.00558051560074091, + 0.07871821522712708, + 0.014146724715828896, + 0.03070511668920517, + 0.009243200533092022, + -0.07759562134742737, + -0.0696643590927124, + 0.07821585237979889, + 0.09075450897216797, + 0.007773653604090214, + 0.05091632157564163, + 0.037621937692165375, + -0.02680756151676178, + 0.0488693043589592, + 0.05618232488632202, + 0.08351285755634308, + -0.027692638337612152, + 0.005666225682944059, + -0.0912637710571289, + 0.0723094791173935, + 0.09403886646032333, + -0.11352118104696274, + -0.09781872481107712, + -0.018661251291632652, + -0.05001499876379967, + 0.03118080273270607, + -0.025698017328977585, + 0.006016460247337818, + 0.030104126781225204, + -0.036268360912799835, + -0.08565820753574371, + -0.09698472917079926, + 0.10658232867717743, + -0.07032830268144608, + -0.020525306463241577, + -0.05380408093333244, + 0.04795943200588226, + 0.06001579016447067, + 0.041961412876844406, + -0.027583729475736618, + 0.013682641088962555, + 0.046150289475917816, + -0.06453683227300644, + -0.03261297568678856, + 0.02873014286160469, + -0.006042590364813805, + -0.08512724936008453, + 0.03716982528567314, + -0.06654595583677292, + 0.07547879219055176, + -0.08775123953819275, + 0.1703391969203949, + -0.04174051806330681, + -0.08346080780029297, + -0.08242104947566986, + 0.016172874718904495, + -0.031128808856010437, + 0.016164379194378853, + 0.031993091106414795, + 0.05852271243929863, + 0.008681602776050568, + -0.07399953901767731, + 0.11765526235103607, + 0.012885339558124542, + -0.0033774811308830976, + -0.06865650415420532, + -0.04924626275897026, + -0.04310857504606247, + 0.0314045250415802, + -0.012140999548137188, + -0.08920430392026901, + 0.002188728656619787, + 0.014187728986144066, + -0.020532403141260147, + 0.061600007116794586, + 0.1364554464817047, + 0.05143813416361809, + -0.12346476316452026 + ] + }, + "p244_268.wav": { + "name": "p244", + "embedding": [ + 0.06310431659221649, + 0.08891062438488007, + 0.057315338402986526, + -0.008858971297740936, + 0.031672459095716476, + 0.02658783830702305, + -0.07486759126186371, + 0.07301227748394012, + 0.050209399312734604, + 0.0840902104973793, + -0.11808949708938599, + 0.04236871376633644, + -0.052433691918849945, + -0.12814535200595856, + -0.051364652812480927, + 0.020134927704930305, + -0.0855218842625618, + -0.00544728385284543, + -0.04091191291809082, + -0.025319723412394524, + 0.009479985572397709, + 0.01872437074780464, + 0.05280330032110214, + -0.022985313087701797, + 0.00765775702893734, + 0.026311120018363, + -0.01164957880973816, + 0.0036260634660720825, + 0.0226412583142519, + -0.02220800518989563, + 0.055221930146217346, + 0.031026408076286316, + 0.009599806740880013, + 0.03356578201055527, + 0.04034927859902382, + 0.0368569940328598, + 0.003639408852905035, + -0.03918633610010147, + -0.03377586230635643, + 0.06772951036691666, + -0.0343666709959507, + 0.04551781713962555, + 0.04054827243089676, + -0.037262845784425735, + 0.06552249193191528, + 0.017257429659366608, + -0.04550604522228241, + -0.017996232956647873, + -0.10338733345270157, + 0.1516112983226776, + 0.028339693322777748, + 0.040444083511829376, + -0.08263899385929108, + -0.009530819952487946, + 0.06374624371528625, + -0.021870657801628113, + -0.0972333624958992, + -0.0007095485925674438, + 0.06050730496644974, + 0.06377357989549637, + 0.0028351168148219585, + -0.027675624936819077, + -0.017260735854506493, + 0.042442962527275085, + 0.0008119605481624603, + 0.012130390852689743, + 0.08333855122327805, + 0.08334726095199585, + 0.00598897784948349, + 0.03944366052746773, + 0.06778285652399063, + -0.009524425491690636, + 0.04882204160094261, + -0.013460765592753887, + 0.007070770487189293, + -0.030017070472240448, + -0.02819071151316166, + -0.002772220876067877, + -0.0037603285163640976, + -0.020120825618505478, + 0.02786005474627018, + -0.02203180640935898, + 0.013314452953636646, + 0.028675565496087074, + -0.03209492936730385, + -0.01110602542757988, + -0.007717551663517952, + 0.04579617455601692, + 0.06896176934242249, + 0.05184534192085266, + 0.017284339293837547, + 0.033198677003383636, + -0.02694527618587017, + -0.10608524084091187, + -0.04547639191150665, + -0.029947763308882713, + 0.02002204954624176, + 0.005893515422940254, + 0.04120960831642151, + -0.0018764566630125046, + 0.09274991601705551, + 0.015705928206443787, + -0.017828630283474922, + -0.016607899218797684, + -0.10144427418708801, + 0.038542818278074265, + 0.08532913029193878, + -0.00023947053705342114, + 0.011417156085371971, + -0.012561132200062275, + 0.05507110059261322, + 0.07522506266832352, + -0.06105435639619827, + 0.006394127383828163, + 0.032938163727521896, + 0.04430108889937401, + 0.051403701305389404, + 0.08237497508525848, + 0.011897895485162735, + 0.01515619270503521, + 0.1135254055261612, + -0.06646746397018433, + 0.00946538895368576, + -0.0026697758585214615, + -0.000601351261138916, + -0.01414368487894535, + 0.026824194937944412, + 0.015875209122896194, + 0.008434277027845383, + -0.023086605593562126, + 0.02801133133471012, + 0.01820078119635582, + 0.007520037703216076, + -0.08520317077636719, + 0.021558113396167755, + 0.06758968532085419, + -0.028813021257519722, + 0.01090240478515625, + 0.06225084140896797, + 0.07790062576532364, + 0.009946642443537712, + 0.08515550941228867, + -0.07937370240688324, + -0.03198190778493881, + 0.016087235882878304, + 0.025300810113549232, + 0.016921505331993103, + -0.01847926713526249, + -0.041926927864551544, + -0.04404903203248978, + 0.010373488068580627, + 0.07995498180389404, + -0.022619884461164474, + 0.04849045351147652, + 0.051200851798057556, + -0.02890632301568985, + 0.09097415208816528, + -0.029832040891051292, + -0.014637788757681847, + -0.03373027592897415, + -0.06292355060577393, + -0.017978297546505928, + 0.025941012427210808, + -0.14169664680957794, + -0.028501026332378387, + -0.012339752167463303, + -0.02788308635354042, + 0.002613095100969076, + -0.0028673741035163403, + 0.05240756645798683, + -0.03357310593128204, + 0.005628190003335476, + -0.03130502998828888, + 0.00947977788746357, + -0.06364037096500397, + -0.08878746628761292, + 0.03150235116481781, + -0.018351947888731956, + 0.039620839059352875, + 0.08282946050167084, + -0.03261521831154823, + -0.0008367574773728848, + -0.03674977272748947, + -0.0852208212018013, + 0.008686866611242294, + 0.101239874958992, + 0.031720276921987534, + 0.005959689617156982, + 0.0405784547328949, + 0.0440894216299057, + -0.024530742317438126, + 0.05612146109342575, + -0.007912315428256989, + 0.07587370276451111, + -0.07104907929897308, + 0.008375139907002449, + -0.012511083856225014, + 0.04508136957883835, + 0.04878731817007065, + -0.03532436862587929, + -0.09116031229496002, + -0.04800465330481529, + -0.017353862524032593, + 0.021244684234261513, + -0.016801459714770317, + -0.025423120707273483, + 0.008604750968515873, + -0.04332951456308365, + -0.037103623151779175, + -0.0843779593706131, + 0.004076346755027771, + 0.012920545414090157, + -0.007513933815062046, + -0.050823867321014404, + 0.02897595427930355, + 0.017536111176013947, + -0.0022208113223314285, + -0.01085618231445551, + 0.06907113641500473, + -0.035663239657878876, + -0.04684930294752121, + -0.07966738194227219, + -0.028518524020910263, + 0.011889120563864708, + -0.022107306867837906, + -0.04321623593568802, + -0.048167552798986435, + 0.07959474623203278, + -0.015826363116502762, + 0.07123249769210815, + 0.009701437316834927, + -0.00923224724829197, + 0.0072501786053180695, + -0.011874960735440254, + -0.04539987072348595, + 0.028477970510721207, + 0.03939606994390488, + 0.0022410042583942413, + 0.03137281537055969, + -0.0145358145236969, + 0.06984752416610718, + 0.025273308157920837, + -0.004561700392514467, + -0.016134023666381836, + -0.0041047632694244385, + -0.05413687601685524, + -0.059700362384319305, + -0.028672901913523674, + -0.0455009862780571, + 0.044798754155635834, + -0.011599814519286156, + 0.03188484162092209, + 0.011966836638748646, + 0.0701262354850769, + 0.017792966216802597, + -0.0608154833316803 + ] + }, + "p244_020.wav": { + "name": "p244", + "embedding": [ + 0.020111050456762314, + 0.09247728437185287, + 0.025166435167193413, + 0.010333132930099964, + -0.056210409849882126, + 0.01853836700320244, + -0.09827360510826111, + 0.07573895156383514, + -0.04189908131957054, + 0.07756853103637695, + -0.05870659276843071, + 0.08700592815876007, + -0.06342567503452301, + -0.14062091708183289, + -0.031100889667868614, + 0.021081268787384033, + -0.03437665104866028, + -0.02160629630088806, + -0.04198909550905228, + -0.012814931571483612, + 0.01871916651725769, + -0.020449180155992508, + 0.035803817212581635, + 0.008470350876450539, + -0.03875792771577835, + 0.05794673413038254, + 0.0016769858775660396, + 0.019986871629953384, + 0.005749349948018789, + -0.02471870183944702, + 0.02758297324180603, + 0.06641179323196411, + -0.010039208456873894, + -0.005528332199901342, + 0.03912268579006195, + -0.005993373226374388, + -0.005713280290365219, + -0.05293441563844681, + -0.04953199625015259, + 0.014004185795783997, + -0.07651299983263016, + 0.030638379976153374, + 0.023359425365924835, + -0.0324578583240509, + 0.05405449867248535, + 0.0034008524380624294, + -0.03579028695821762, + -0.015064412727952003, + -0.08754132688045502, + 0.09980251640081406, + 0.06604974716901779, + -0.0009139559115283191, + -0.02642335742712021, + -0.038833267986774445, + 0.11125248670578003, + -0.03282087296247482, + -0.07986927032470703, + -0.04186466336250305, + 0.07153049111366272, + 0.1067778468132019, + -0.03292055428028107, + -0.035826176404953, + -0.011656848713755608, + 0.07207497954368591, + 0.053108539432287216, + 0.06990865617990494, + 0.07931245863437653, + 0.08371011912822723, + -0.03666648268699646, + -0.007143992930650711, + 0.06109270453453064, + 0.051477786153554916, + 0.022509783506393433, + -0.015039490535855293, + 0.021543193608522415, + 0.016744941473007202, + -0.026245316490530968, + 0.024499056860804558, + -0.007970703765749931, + 0.0026396973989903927, + -0.018890388309955597, + -0.009461496025323868, + -0.005383766256272793, + -0.013061519712209702, + -0.021321987733244896, + 0.04273631423711777, + 0.03139588236808777, + 0.011878791265189648, + 0.06219147890806198, + 0.05063939839601517, + 0.0008488788153044879, + 0.08594416081905365, + -0.04098690301179886, + -0.07568081468343735, + -0.017578821629285812, + -0.003560521174222231, + 0.016415735706686974, + 0.05457286164164543, + 0.0023028801660984755, + -0.010014718398451805, + 0.07237141579389572, + 0.02977786771953106, + -0.0027614531572908163, + 0.024141548201441765, + -0.11407139897346497, + 0.054244957864284515, + 0.04059650003910065, + -0.015274407342076302, + 0.006759863346815109, + -0.025715915486216545, + 0.09273432195186615, + 0.07683676481246948, + -0.03982778638601303, + -0.06374648213386536, + 0.03759436309337616, + 0.04261960834264755, + -0.00803883746266365, + 0.10744534432888031, + -0.017380472272634506, + 0.006272796541452408, + 0.11523531377315521, + -0.06526540219783783, + -0.03705465421080589, + -0.012595325708389282, + 0.010098084807395935, + -0.04520164430141449, + 0.0245953481644392, + 0.042069196701049805, + -0.022006560117006302, + 0.01372842863202095, + 0.08870820701122284, + -0.006402289029210806, + -0.013793490827083588, + -0.006970482878386974, + -0.059971489012241364, + 0.03013474866747856, + -0.0041718631982803345, + -0.015474086627364159, + 0.022079743444919586, + 0.08087258040904999, + 0.028789296746253967, + -0.0023215345572680235, + -0.02867100201547146, + -0.05714616924524307, + 0.023201212286949158, + 0.0642385333776474, + 0.040239740163087845, + 0.011647403240203857, + -0.02849597856402397, + -0.07064931839704514, + -0.013435274362564087, + 0.022055521607398987, + -0.04722315073013306, + 0.0829038918018341, + -0.023268667981028557, + 0.0057359253987669945, + 0.06697870790958405, + -0.003052075859159231, + -0.017235036939382553, + -0.05294032394886017, + -0.05445124953985214, + 0.01674816571176052, + 0.04757261276245117, + -0.07878684252500534, + -0.05606096237897873, + -0.05666513741016388, + 0.052628397941589355, + 0.026166167110204697, + 0.0031677584629505873, + 0.037842586636543274, + -0.01681971177458763, + 0.008235390298068523, + -0.053279027342796326, + 0.03407876938581467, + -0.04982725530862808, + -0.04811428114771843, + 0.00028219912201166153, + -0.007377403788268566, + 0.01042214222252369, + 0.03375440090894699, + -0.029170675203204155, + 0.02626769058406353, + -0.018943093717098236, + -0.1053246557712555, + -0.05474048852920532, + 0.04039070010185242, + 0.03152260184288025, + 0.0017168143531307578, + 0.04159450903534889, + 0.067286416888237, + -0.035605937242507935, + 0.045907825231552124, + 0.04507463425397873, + 0.08741877973079681, + -0.060339268296957016, + 0.022528639063239098, + -0.004920828156173229, + 0.042768143117427826, + 0.059048693627119064, + -0.07067345827817917, + -0.09288397431373596, + -0.023263832554221153, + -0.062192898243665695, + 0.025707727298140526, + -0.01939145103096962, + -0.021507736295461655, + 0.029672157019376755, + -0.005507215857505798, + -0.08770778030157089, + -0.0758291482925415, + 0.07726240158081055, + -0.03542296588420868, + 0.014739079400897026, + -0.06024390086531639, + 0.008896338753402233, + 0.047745928168296814, + 0.07181842625141144, + -0.005642815493047237, + 0.007414764724671841, + 0.039597287774086, + -0.0265686996281147, + -0.009603145532310009, + 0.025013327598571777, + 0.05142961069941521, + -0.026072543114423752, + 0.017455385997891426, + -0.04093378409743309, + 0.04691533371806145, + -0.007908816449344158, + 0.09570178389549255, + 0.01324513927102089, + -0.03373609855771065, + -0.04519186541438103, + 0.011305350810289383, + -0.017221562564373016, + 0.04737751930952072, + 0.009630376473069191, + 0.05060143396258354, + 0.027384359389543533, + -0.05469958111643791, + 0.11512438952922821, + 0.03068365715444088, + -0.007685971911996603, + -0.04486910253763199, + 0.015228860080242157, + -0.06025262176990509, + -0.01608678698539734, + -0.010557505302131176, + -0.057354506105184555, + -0.0034065209329128265, + -0.0003556075389496982, + -0.0018839886179193854, + 0.051765598356723785, + 0.12646539509296417, + 0.06309166550636292, + -0.05137067288160324 + ] + }, + "p244_163.wav": { + "name": "p244", + "embedding": [ + 0.05841439217329025, + 0.09662588685750961, + -0.0061739301308989525, + -0.002237170934677124, + -0.0277771707624197, + 0.10140382498502731, + -0.04726060479879379, + 0.07432474195957184, + -0.00906817615032196, + 0.08759608864784241, + -0.08986325562000275, + 0.05857470631599426, + -0.031229551881551743, + -0.11394838988780975, + -0.02688022330403328, + 0.04017500579357147, + -0.04897162318229675, + -0.00450885808095336, + -0.038108449429273605, + -0.023775113746523857, + 0.0035048499703407288, + 0.006729887332767248, + 0.018333856016397476, + -0.0008832204039208591, + 0.0207950659096241, + 0.0375790111720562, + -0.0007985268603079021, + 0.01566438376903534, + -0.001614327309653163, + -0.03306248039007187, + -0.03332936018705368, + 0.07491204142570496, + -0.030627798289060593, + 0.0007486430695280433, + 0.04377755522727966, + -0.002278407569974661, + 0.02718573808670044, + -0.09462835639715195, + -0.0294888224452734, + 0.033161405473947525, + -0.04029253125190735, + 0.06710030138492584, + 0.019457699730992317, + -0.00834108330309391, + -0.002293851226568222, + 0.020104432478547096, + -0.029140889644622803, + -0.028434645384550095, + -0.06606759130954742, + 0.1440230906009674, + 0.053341470658779144, + 0.005462430417537689, + -0.05329783260822296, + -0.036008354276418686, + 0.08846418559551239, + -0.0031364555470645428, + -0.06557545810937881, + -0.020512767136096954, + 0.048026930540800095, + 0.07501393556594849, + 0.01893289014697075, + -0.029027706012129784, + 0.009401940740644932, + 0.10228752344846725, + 0.015846794471144676, + 0.0614558681845665, + 0.06616979837417603, + 0.10708193480968475, + -0.005989402532577515, + 0.020386233925819397, + 0.07188090682029724, + 0.026576941832900047, + 0.04715946316719055, + -0.023954156786203384, + 0.044818129390478134, + -0.021003147587180138, + -0.019935499876737595, + 0.01245113741606474, + -0.0332430861890316, + -0.0432429164648056, + 0.03391849994659424, + 0.004320711828768253, + 0.009877056814730167, + 0.004860926419496536, + -0.04436563700437546, + 0.024806179106235504, + 0.013585629872977734, + 0.06439605355262756, + 0.0663529634475708, + 0.036417096853256226, + 0.03045489452779293, + 0.047612227499485016, + -0.05296152085065842, + -0.08916735649108887, + 0.03690622001886368, + 0.02019021287560463, + 0.00821962021291256, + 0.039982110261917114, + 0.0407865010201931, + -0.02024291828274727, + 0.08885294198989868, + 0.019455110654234886, + -0.0012448076158761978, + 0.011308285407721996, + -0.06887713074684143, + 0.07067835330963135, + 0.06961586326360703, + -0.008308272808790207, + 0.036000657826662064, + -0.015452384017407894, + 0.09051434695720673, + 0.07199264317750931, + -0.09637239575386047, + -0.04512724280357361, + 0.0006475374102592468, + -0.005851843860000372, + -0.006102154962718487, + 0.09125592559576035, + -0.030349669978022575, + 0.017558574676513672, + 0.0658513754606247, + -0.05648725479841232, + -0.006466813385486603, + 0.02142878621816635, + -0.011057816445827484, + -0.008932436816394329, + 0.007018874399363995, + 0.020267408341169357, + -0.0030883229337632656, + -0.036680594086647034, + 0.04770880192518234, + 0.010833981446921825, + 0.0029827263206243515, + -0.020794425159692764, + -0.004892662167549133, + 0.02534985914826393, + -0.0098141860216856, + -0.02050180360674858, + 0.023007284849882126, + 0.04670095443725586, + 0.01775568164885044, + -0.0026280980091542006, + -0.03649647533893585, + -0.07093364000320435, + 0.00864366628229618, + 0.007204011082649231, + 0.01648777350783348, + 0.014602276496589184, + -0.012358425185084343, + -0.03325846046209335, + -0.01984560303390026, + 0.021259360015392303, + -0.04084467515349388, + 0.04148033261299133, + 0.059877678751945496, + -0.05124928802251816, + 0.08260767161846161, + -0.0012720997910946608, + -0.0076899281702935696, + -0.03545330837368965, + -0.045284971594810486, + 0.034459054470062256, + 0.042196448892354965, + -0.053837403655052185, + -0.05046524852514267, + 0.0033853824716061354, + -0.039978958666324615, + -0.029626306146383286, + 0.006336470600217581, + 0.05984225124120712, + -0.011045667342841625, + -0.012948170304298401, + -0.08348678797483444, + 0.00969365332275629, + -0.07289309054613113, + -0.04234948754310608, + 0.040735792368650436, + -0.003280259668827057, + 0.00513502536341548, + 0.07622112333774567, + 0.0023975037038326263, + 0.006626129150390625, + -0.04571637511253357, + -0.06639240682125092, + 0.018399417400360107, + 0.06874015182256699, + 0.03879721835255623, + 0.014644498936831951, + 0.0469251349568367, + 0.06297238171100616, + 0.0021610483527183533, + 0.027958616614341736, + 0.039892397820949554, + 0.0855751782655716, + -0.023211505264043808, + 0.012845052406191826, + 0.0016873478889465332, + 0.082424595952034, + 0.021720226854085922, + -0.0700012668967247, + -0.05708795040845871, + -0.015773000195622444, + -0.038030482828617096, + 0.031374819576740265, + -0.004319166298955679, + 0.011662925593554974, + 0.023937970399856567, + -0.022233333438634872, + -0.07208476960659027, + -0.08108754456043243, + 0.05409551411867142, + -0.05163487046957016, + -0.02346532605588436, + -0.05439407378435135, + 0.04438807815313339, + 0.0686459168791771, + 0.032846350222826004, + -0.03742487356066704, + 0.03992089629173279, + 0.02078905701637268, + -0.028435055166482925, + -0.05065528303384781, + -0.006213558372110128, + 0.025874238461256027, + -0.06516356021165848, + 0.0005761708016507328, + -0.0627983808517456, + 0.06496476382017136, + -0.01604381576180458, + 0.09772796928882599, + 0.02124573104083538, + -0.011922435835003853, + -0.05777374655008316, + 0.034009236842393875, + -0.011686310172080994, + 0.03818716108798981, + 0.036626510322093964, + 0.01663830690085888, + 0.026756130158901215, + -0.06055809557437897, + 0.09657292068004608, + 0.022792678326368332, + -0.04041813313961029, + -0.05038847774267197, + 0.020560598000884056, + -0.04055638983845711, + -0.002742315409705043, + -0.0030675954185426235, + -0.07888146489858627, + 0.002169286832213402, + 0.037083711475133896, + 0.009535001590847969, + 0.01609252393245697, + 0.08241428434848785, + 0.05649503320455551, + -0.04198306053876877 + ] + }, + "p244_174.wav": { + "name": "p244", + "embedding": [ + 0.06053908169269562, + 0.08558464050292969, + -0.018965184688568115, + 0.0060822078958153725, + -0.058025211095809937, + 0.04829690605401993, + -0.15755316615104675, + 0.15240031480789185, + -0.044602636247873306, + 0.137856587767601, + -0.07941167801618576, + 0.12801824510097504, + -0.031585097312927246, + -0.18661773204803467, + -0.03130514174699783, + 0.05720669776201248, + -0.02270910143852234, + -0.035225965082645416, + -0.016919728368520737, + -0.03193862363696098, + 0.040963124483823776, + 0.019222203642129898, + 0.016967246308922768, + 0.02326958440244198, + 0.010996158234775066, + 0.07366849482059479, + -0.00920411478728056, + 0.028062259778380394, + -0.015596326440572739, + -0.014677177183330059, + -0.03142034634947777, + 0.10493294894695282, + -0.043143488466739655, + -0.01729748398065567, + 0.039214786142110825, + -0.015097531490027905, + -0.008306695148348808, + -0.06746401637792587, + 0.004913870710879564, + -0.02021232433617115, + -0.04165096580982208, + 0.06204339116811752, + -0.006956617813557386, + -0.012596439570188522, + 0.0532010979950428, + 0.011642388999462128, + -0.020254941657185555, + -0.036211512982845306, + -0.1110805869102478, + 0.12352153658866882, + 0.0714971274137497, + 0.02566937543451786, + -0.09412231296300888, + -0.03582538664340973, + 0.10712945461273193, + -0.023610206320881844, + -0.08403027802705765, + -0.05404921621084213, + 0.06401799619197845, + 0.16266614198684692, + -0.044669680297374725, + -0.046707071363925934, + 0.03989778459072113, + 0.10140331089496613, + 0.053454235196113586, + 0.07785943895578384, + 0.09924812614917755, + 0.09417085349559784, + -0.034340281039476395, + 0.015459941700100899, + 0.04340926557779312, + 0.05862921476364136, + 0.06078168377280235, + -0.03103979304432869, + 0.027251489460468292, + -0.014847335405647755, + -0.011730505153536797, + 0.0032020213548094034, + -0.031521931290626526, + -0.03952204808592796, + -0.021138817071914673, + 0.001015878631733358, + -0.00703272083774209, + 0.017776522785425186, + -0.046797264367341995, + 0.04575476422905922, + 0.054252494126558304, + -0.03515557944774628, + 0.07513362914323807, + 0.037983037531375885, + 0.004451265092939138, + 0.06522634625434875, + -0.09930534660816193, + -0.07327760756015778, + 0.0673816129565239, + -0.002339091617614031, + 0.012199750170111656, + 0.06315010786056519, + 0.036556266248226166, + -0.02129976451396942, + 0.1067400574684143, + 0.050953444093465805, + 0.0050945100374519825, + 0.02508370392024517, + -0.09362341463565826, + 0.1274382472038269, + 0.10374052822589874, + -0.05730605870485306, + 0.04155851528048515, + -0.03230087459087372, + 0.03375503048300743, + 0.06299611926078796, + -0.11127364635467529, + -0.07434968650341034, + 0.021692616865038872, + 0.017203565686941147, + -0.007193603552877903, + 0.11787600815296173, + -0.0026278397999703884, + 0.03939511626958847, + 0.10966388881206512, + -0.07608084380626678, + -0.07123257219791412, + -0.024885917082428932, + 0.045376308262348175, + -0.08241355419158936, + 0.08154720067977905, + 0.08450458198785782, + 0.025532372295856476, + 0.015833169221878052, + 0.07506553083658218, + -0.008143452927470207, + -0.013271811418235302, + -0.007883160375058651, + -0.040905918926000595, + 0.013033452443778515, + -0.014070827513933182, + -0.022556472569704056, + 0.030848516151309013, + 0.03128411993384361, + 0.048257872462272644, + 0.010475965216755867, + -0.005857937037944794, + -0.11833178997039795, + 0.005440273322165012, + 0.057075582444667816, + 0.06255810707807541, + -0.02172510325908661, + -0.032551079988479614, + -0.036506086587905884, + -0.047954998910427094, + -0.0022448524832725525, + -0.0046116653829813, + 0.07790759205818176, + -0.012245937250554562, + 0.01959780603647232, + 0.0952703207731247, + 0.037075772881507874, + 0.017934000119566917, + -0.0387270450592041, + -0.0182648878544569, + 0.020462749525904655, + 0.05743202939629555, + -0.081120565533638, + -0.07685534656047821, + -0.043960489332675934, + 0.05843103304505348, + -0.022667063400149345, + 0.06382974982261658, + 0.06521397829055786, + 0.0032231160439550877, + -0.0037277741357684135, + -0.08563626557588577, + 0.05547960847616196, + -0.09182780236005783, + -0.05968383699655533, + -0.005924026481807232, + -0.033981502056121826, + -0.023522641509771347, + 0.06392447650432587, + 0.019974686205387115, + 0.051858775317668915, + -0.052253663539886475, + -0.08003184199333191, + -0.08746812492609024, + 0.039200589060783386, + 0.08401018381118774, + -0.021278902888298035, + 0.043560490012168884, + 0.03696700558066368, + -0.02436467446386814, + 0.06060680001974106, + 0.06839732825756073, + 0.1203126609325409, + -0.029048707336187363, + 0.01523737981915474, + -0.05702322721481323, + 0.07002775371074677, + 0.08962385356426239, + -0.07633150368928909, + -0.09829647839069366, + -0.04284178465604782, + -0.05069104582071304, + 0.044792987406253815, + -0.01423504576086998, + 0.02151448279619217, + 0.049060989171266556, + -0.016450626775622368, + -0.12159506976604462, + -0.09810302406549454, + 0.08257488906383514, + -0.05797458440065384, + 0.0109921395778656, + -0.0930691733956337, + 0.06734311580657959, + 0.08471283316612244, + -0.008471265435218811, + -0.04161234200000763, + -0.02609671652317047, + 0.012457402423024178, + -0.013217940926551819, + 0.0031602447852492332, + 0.024377934634685516, + 0.04004962369799614, + -0.10128220915794373, + -0.0013495211023837328, + -0.08456601947546005, + 0.07523411512374878, + -0.03479805216193199, + 0.15023118257522583, + 0.008240321651101112, + -0.025441840291023254, + -0.10053075850009918, + 0.041153669357299805, + 0.00902634859085083, + 0.057733193039894104, + 0.03792540729045868, + 0.06747318059206009, + 0.015904121100902557, + -0.08649022877216339, + 0.08776737749576569, + 0.04737918823957443, + -0.049008697271347046, + -0.0898362547159195, + -0.03831641003489494, + -0.04605083167552948, + 0.024221740663051605, + -0.01501629687845707, + -0.0882963240146637, + -0.02549821138381958, + 0.01554032787680626, + 0.009332826361060143, + 0.07228730618953705, + 0.12009193003177643, + 0.03756209462881088, + -0.10823303461074829 + ] + }, + "p244_264.wav": { + "name": "p244", + "embedding": [ + 0.061170563101768494, + 0.0708121731877327, + -0.021257635205984116, + 0.01069109607487917, + -0.040154241025447845, + 0.07165251672267914, + -0.1463283896446228, + 0.1330227255821228, + -0.02723396196961403, + 0.15805542469024658, + -0.022783884778618813, + 0.11406855285167694, + 0.0049973949790000916, + -0.16913628578186035, + -0.01917419582605362, + 0.043057698756456375, + -0.05838467925786972, + -0.0277927964925766, + -0.05301709100604057, + -0.032037436962127686, + 0.04029052332043648, + 0.0528525710105896, + 0.032823655754327774, + -0.0474269762635231, + 0.03485497087240219, + 0.06042475998401642, + -0.018764130771160126, + 0.026501458138227463, + -0.024335134774446487, + -0.10746573656797409, + -0.033123914152383804, + 0.08541350066661835, + -0.056892432272434235, + 0.014906872063875198, + 0.024899205192923546, + -0.027130426838994026, + -0.0026952363550662994, + -0.06057935953140259, + -0.026362087577581406, + 0.024887191131711006, + -0.01079667080193758, + 0.07780696451663971, + 0.019829317927360535, + -0.0123857157304883, + 0.029647447168827057, + -0.0032248913776129484, + -0.015579422004520893, + -0.049463145434856415, + -0.09595844149589539, + 0.18051806092262268, + 0.07073637843132019, + 0.014501250348985195, + -0.06670577079057693, + -0.07222127914428711, + 0.08422359824180603, + -0.016195133328437805, + -0.117047518491745, + -0.02392880618572235, + 0.05013751983642578, + 0.15348616242408752, + -0.03439287096261978, + -0.056075289845466614, + 0.0506671741604805, + 0.09622706472873688, + 0.04493853449821472, + 0.054402466863393784, + 0.1061578094959259, + 0.08969119191169739, + -0.020474471151828766, + 0.011118492111563683, + 0.021666109561920166, + 0.08146689832210541, + 0.07790334522724152, + 0.00850432924926281, + 0.041391126811504364, + -0.019355138763785362, + -0.021714605391025543, + -0.0469542071223259, + -0.03980112448334694, + -0.02237231843173504, + 0.012850751169025898, + 0.017891250550746918, + 0.04626927524805069, + 0.0576079860329628, + -0.026667367666959763, + 0.03776039183139801, + 0.027250248938798904, + -0.03271190822124481, + 0.06143586337566376, + 0.017719008028507233, + 0.043225184082984924, + 0.06251790374517441, + -0.10524812340736389, + -0.0806269496679306, + 0.060623615980148315, + 0.019871611148118973, + 0.02424066886305809, + 0.05451924726366997, + 0.04766447842121124, + -0.03062250278890133, + 0.11262212693691254, + 0.03681463003158569, + -0.01660098508000374, + -0.002976907417178154, + -0.0903116762638092, + 0.11418511718511581, + 0.10884575545787811, + -0.024835417047142982, + 0.05217685550451279, + -0.0696776956319809, + 0.06651949882507324, + 0.04097208380699158, + -0.14030703902244568, + -0.09351084381341934, + 0.0297505222260952, + 0.006893041543662548, + 0.0013177674263715744, + 0.14301751554012299, + 0.020266547799110413, + 0.06687614321708679, + 0.10617867112159729, + -0.10518555343151093, + -0.036028746515512466, + -0.01152839045971632, + 0.062018394470214844, + -0.09279567748308182, + 0.06243874132633209, + 0.05241338163614273, + -0.02619791403412819, + 0.03498176485300064, + 0.06206202507019043, + -0.014992700889706612, + 0.005642796400934458, + -0.008870108984410763, + -0.03202883526682854, + 0.002469003200531006, + -0.028763562440872192, + -0.021907683461904526, + 0.014602002687752247, + 0.029262810945510864, + 0.04242852330207825, + -0.01813708245754242, + -0.05406168848276138, + -0.12713457643985748, + 0.020240655168890953, + 0.012656119652092457, + 0.05605028197169304, + -0.028521768748760223, + -0.007609011605381966, + -0.02470196783542633, + -0.0640157163143158, + 0.015513423830270767, + -0.02379671484231949, + 0.057583123445510864, + 0.0030892388895154, + 0.007311254274100065, + 0.100212462246418, + 0.042428627610206604, + 0.0025723862927407026, + -0.024301942437887192, + -0.03729318082332611, + 0.00872349739074707, + 0.0480252206325531, + -0.07708413898944855, + -0.06433989107608795, + -0.019324276596307755, + 0.014511507004499435, + -0.012205028906464577, + 0.0673813745379448, + 0.0568520613014698, + 0.030706971883773804, + 0.019773781299591064, + -0.04987790435552597, + 0.008274450898170471, + -0.09333652257919312, + -0.07631611824035645, + 0.01272669155150652, + -0.03200675547122955, + -0.040890756994485855, + 0.09280463308095932, + 0.015433721244335175, + 0.051651064306497574, + -0.07728773355484009, + -0.043639373034238815, + -0.06989146769046783, + 0.044980552047491074, + 0.05253284052014351, + -0.02048523537814617, + 0.005327143706381321, + 0.0474584624171257, + 0.012078986503183842, + 0.05485370010137558, + 0.07238372415304184, + 0.10454734414815903, + -0.016847819089889526, + 0.02153768762946129, + -0.07578417658805847, + 0.11806175112724304, + 0.09070637077093124, + -0.038415685296058655, + -0.08808137476444244, + -0.01870245486497879, + -0.09472069144248962, + 0.030040353536605835, + -0.0241569671779871, + 0.008800324983894825, + 0.04111138731241226, + 0.008878892287611961, + -0.1063944399356842, + -0.08212573826313019, + 0.08964437246322632, + -0.05568983778357506, + -0.007774032652378082, + -0.08109153807163239, + 0.05996863916516304, + 0.10082027316093445, + 0.03871668875217438, + -0.02253272570669651, + -0.019287575036287308, + 0.03597132861614227, + -0.024417150765657425, + 0.039355453103780746, + 0.04196571186184883, + 0.04748799651861191, + -0.10886409878730774, + 0.002635924145579338, + -0.0655687153339386, + 0.015472646802663803, + -0.04091915115714073, + 0.129876047372818, + 0.015315208584070206, + -0.041399046778678894, + -0.08035553246736526, + 0.061411887407302856, + -0.022989546880126, + 0.05643794685602188, + 0.018910111859440804, + 0.06725603342056274, + 0.07677512615919113, + -0.0904262587428093, + 0.07782033830881119, + 0.04176116734743118, + -0.03365887328982353, + -0.07620540261268616, + -0.06524284183979034, + -0.02479676902294159, + 0.03360970318317413, + -0.005805825814604759, + -0.06837321072816849, + -0.015479182824492455, + 0.023814361542463303, + 0.02572166547179222, + 0.05136411637067795, + 0.1195039451122284, + 0.028964992612600327, + -0.1339917778968811 + ] + }, + "p244_240.wav": { + "name": "p244", + "embedding": [ + 0.07945258915424347, + 0.037747014313936234, + -0.012152545154094696, + 0.007275744341313839, + -0.014487722888588905, + 0.03468915820121765, + -0.12849202752113342, + 0.11345958709716797, + 0.013497058302164078, + 0.08077574521303177, + -0.0872984230518341, + 0.0822061076760292, + 0.0016370187513530254, + -0.11219489574432373, + -0.030771251767873764, + 0.023793870583176613, + -0.014414789155125618, + 0.0005447063595056534, + -0.03974929824471474, + -0.011801485903561115, + 0.0245984997600317, + 0.059601105749607086, + 0.03990330919623375, + -0.031564414501190186, + 0.018286608159542084, + 0.03809820115566254, + 0.002444220706820488, + 0.023952443152666092, + 0.017742546275258064, + -0.0024557597935199738, + 0.023994049057364464, + 0.08010049164295197, + -0.042573895305395126, + 0.006394711323082447, + 0.03645411878824234, + 0.014577844180166721, + -0.010644922964274883, + -0.0915645956993103, + -0.007276620715856552, + 0.020632022991776466, + -0.030547045171260834, + 0.07944682240486145, + 0.05260749161243439, + -0.023790664970874786, + 0.02275526523590088, + 0.004906552378088236, + -0.008267361670732498, + -0.050835464149713516, + -0.11496752500534058, + 0.17796942591667175, + 0.01652267947793007, + 0.038168445229530334, + -0.12758690118789673, + -0.015560433268547058, + 0.05775945633649826, + -0.00300811231136322, + -0.03468114137649536, + -0.04003487899899483, + 0.02979302406311035, + 0.12023387849330902, + 0.020758872851729393, + -0.05356209725141525, + 0.03158777952194214, + 0.06444811820983887, + 0.023464851081371307, + 0.0087087731808424, + 0.13327732682228088, + 0.09698787331581116, + -0.0204075425863266, + 0.044966477900743484, + 0.03150532767176628, + 0.036849506199359894, + 0.03115699253976345, + -0.007958273403346539, + 0.026652969419956207, + -0.03630942106246948, + -0.031139474362134933, + 0.01702917367219925, + -0.017358968034386635, + -0.04958589747548103, + 0.02184557355940342, + -0.001390503835864365, + 0.01721680350601673, + 0.08281633257865906, + -0.07614994049072266, + 0.027157723903656006, + 0.0061440966092050076, + -0.0018952672835439444, + 0.07651069760322571, + 0.045599356293678284, + 0.007365130819380283, + 0.002516951411962509, + -0.05274444818496704, + -0.0972677543759346, + 0.008244259282946587, + -0.011233488097786903, + 0.056871604174375534, + 0.03745889291167259, + 0.035175494849681854, + -0.018397707492113113, + 0.09340852499008179, + 0.012594624422490597, + -0.010898916982114315, + -0.022984102368354797, + -0.060990530997514725, + 0.0979171022772789, + 0.12481649219989777, + 0.0024895616807043552, + 0.03210488706827164, + -0.06360240280628204, + 0.014394976198673248, + 0.041251152753829956, + -0.0887005627155304, + -0.043185044080019, + 0.05143744498491287, + 0.0423990860581398, + 0.06395760178565979, + 0.11878544092178345, + 0.026364324614405632, + 0.026161154732108116, + 0.06311032921075821, + -0.08785594999790192, + -0.03784794360399246, + 0.008842014707624912, + 0.024887248873710632, + -0.029665281996130943, + 0.023432079702615738, + 0.04108967259526253, + -0.0015136916190385818, + -0.0415712408721447, + 0.04753076285123825, + 0.0020745694637298584, + 0.031828783452510834, + -0.04287783056497574, + 0.03687690570950508, + 0.09085529297590256, + -0.005477588623762131, + -0.02045380137860775, + 0.03153949975967407, + 0.06132512167096138, + 0.032796140760183334, + 0.04804295673966408, + -0.06140383332967758, + -0.11391064524650574, + -0.008075371384620667, + 0.05906808376312256, + 0.043983783572912216, + -0.05965961515903473, + -0.06208455190062523, + -0.04980771616101265, + -0.02059316262602806, + 0.02420753613114357, + 0.009649348445236683, + 0.045536912977695465, + 0.038392938673496246, + -0.019172009080648422, + 0.08760308474302292, + -0.013360435143113136, + 0.011101778596639633, + -0.015698373317718506, + -0.00834093801677227, + 0.0266251377761364, + 0.03771558031439781, + -0.038136813789606094, + -0.06483782082796097, + -0.004165465943515301, + 0.0039901044219732285, + -0.020854417234659195, + -0.007284097373485565, + 0.04928981140255928, + -0.028580283746123314, + 0.006293036043643951, + -0.09898647665977478, + 0.020142365247011185, + -0.10804945975542068, + -0.0278143510222435, + 0.03615271672606468, + -0.01160081010311842, + 0.0078703872859478, + 0.1000448614358902, + 0.021497631445527077, + 0.05574941262602806, + -0.03412169963121414, + -0.07285572588443756, + -0.011138292029500008, + 0.05459606274962425, + 0.07091782987117767, + -0.03213128447532654, + 0.025681670755147934, + 0.02844378724694252, + 0.01579461060464382, + 0.02972789853811264, + 0.05796937644481659, + 0.053558215498924255, + -0.058030787855386734, + -0.06176538020372391, + -0.028024667873978615, + 0.10882784426212311, + 0.052942514419555664, + -0.06703929603099823, + -0.05992818623781204, + -0.023831607773900032, + -0.0470818430185318, + 0.0012477822601795197, + -0.011533379554748535, + 0.019788701087236404, + 0.05094805732369423, + -0.03088667429983616, + -0.11719512939453125, + -0.0796465203166008, + 0.016997097060084343, + -0.04180814325809479, + 0.010835467837750912, + -0.06469458341598511, + 0.03327431157231331, + 0.08082059025764465, + 0.013061001896858215, + -0.005433460231870413, + -0.03264967352151871, + -0.045302554965019226, + -0.07096290588378906, + -0.0670178011059761, + -0.021672651171684265, + 0.03161638230085373, + -0.0751357227563858, + 0.0054919826798141, + -0.04638237506151199, + 0.06188648194074631, + -0.04609490931034088, + 0.09754610061645508, + 0.013642609119415283, + -0.063230499625206, + -0.0821678638458252, + 0.0019817333668470383, + -0.02547764964401722, + 0.049427520483732224, + 0.04247651621699333, + -0.004833294078707695, + 0.018832392990589142, + -0.08992515504360199, + 0.0752616748213768, + 0.057467587292194366, + -0.034379757940769196, + -0.07014762610197067, + -0.022873571142554283, + -0.0086132250726223, + 0.034332435578107834, + -0.007526383735239506, + -0.013657476752996445, + 0.022340625524520874, + 0.012931828387081623, + -0.00490580964833498, + 0.03775404021143913, + 0.08461810648441315, + 0.038802288472652435, + -0.10554558038711548 + ] + }, + "p244_124.wav": { + "name": "p244", + "embedding": [ + 0.03170587867498398, + 0.08337774127721786, + 0.005988603457808495, + 0.022015362977981567, + -0.03809655085206032, + 0.04862849786877632, + -0.17864833772182465, + 0.11590668559074402, + -0.004251439590007067, + 0.11418318748474121, + -0.06332193315029144, + 0.12706343829631805, + 0.007978797890245914, + -0.21318550407886505, + -0.025420328602194786, + 0.052706990391016006, + -0.004550730809569359, + -0.032258786261081696, + 0.05641491338610649, + -0.0051533617079257965, + 0.05624686926603317, + 0.05355072021484375, + 0.030250616371631622, + -0.00528571056202054, + 0.04349508509039879, + 0.050252728164196014, + 0.02283732406795025, + 0.07225767523050308, + 0.026461178436875343, + -0.022242756560444832, + -0.04346585273742676, + 0.10946331173181534, + -0.04760754853487015, + 0.007036465220153332, + 0.04530885070562363, + 0.006022229790687561, + 0.0027556954883038998, + -0.03855211287736893, + 0.015568596310913563, + 0.007916059345006943, + -0.039558637887239456, + 0.0829901397228241, + 0.04689755290746689, + -0.006185658276081085, + 0.02769695781171322, + 0.06560301780700684, + 0.014573135413229465, + -0.04673599451780319, + -0.12139610946178436, + 0.14271366596221924, + 0.02954898774623871, + -0.010554103180766106, + -0.06857357174158096, + -0.06143921613693237, + 0.08245620131492615, + 0.004737256094813347, + -0.058175064623355865, + -0.01705184020102024, + 0.10011923313140869, + 0.13233692944049835, + -0.00607535894960165, + -0.06560482084751129, + 0.029593029990792274, + 0.11501942574977875, + 0.02782154642045498, + 0.08473536372184753, + 0.06236148253083229, + 0.10173208266496658, + -0.01613222248852253, + -0.024523122236132622, + 0.026860609650611877, + 0.07221655547618866, + 0.007049261592328548, + -0.03168938681483269, + 0.011986669152975082, + 0.0017140938434749842, + -0.014257064089179039, + 0.039836686104536057, + -0.0046739340759813786, + -0.007756643928587437, + -0.011570341885089874, + -0.016560228541493416, + -0.015016797930002213, + 0.027744995430111885, + -0.03683807700872421, + 0.038525283336639404, + 0.02958448976278305, + 0.024273499846458435, + 0.07799981534481049, + 0.01855200156569481, + 0.00717667443677783, + 0.05616503208875656, + -0.08753527700901031, + -0.06484109163284302, + 0.06581572443246841, + 0.0005181650631129742, + 0.028639022260904312, + 0.09741240739822388, + 0.035708338022232056, + -0.02880062162876129, + 0.12707358598709106, + 0.04755779355764389, + -0.016986733302474022, + 0.03022596426308155, + -0.08656430244445801, + 0.1457136869430542, + 0.06571777909994125, + -0.01340070553123951, + 0.057336896657943726, + -0.06582877784967422, + 0.05227863788604736, + 0.05573532357811928, + -0.14566341042518616, + -0.058580536395311356, + 0.05270298570394516, + 0.05646684765815735, + -0.028481710702180862, + 0.13403955101966858, + -0.011803973466157913, + 0.008416474796831608, + 0.08787916600704193, + -0.09145224094390869, + -0.08116000890731812, + -0.026079412549734116, + 0.036661870777606964, + -0.10347755253314972, + 0.06219000369310379, + 0.05738727003335953, + -0.015513967722654343, + -0.0009644592646509409, + 0.07257674634456635, + -0.012942686676979065, + 0.03661982715129852, + 0.005432886071503162, + -0.014694012701511383, + 0.021071139723062515, + -0.041059546172618866, + 0.027589980512857437, + 0.013847963884472847, + 0.0013940695207566023, + 0.053623657673597336, + 0.02588818408548832, + -0.041975319385528564, + -0.16352543234825134, + -0.0020953137427568436, + 0.06650181114673615, + 0.08624054491519928, + -0.016762496903538704, + -0.08626042306423187, + -0.06894153356552124, + -0.06362982094287872, + 0.02273893728852272, + 0.019530976191163063, + 0.06194871664047241, + -0.009592647664248943, + -0.010934796184301376, + 0.07108527421951294, + 0.027290258556604385, + -0.0021267954725772142, + -0.029089268296957016, + -0.05554259568452835, + 0.01095462217926979, + 0.015999842435121536, + -0.08508267998695374, + -0.063910573720932, + -0.02453514188528061, + 0.04000595211982727, + -0.02731701359152794, + 0.04292478784918785, + 0.06084790825843811, + 0.03235755115747452, + 0.04052947461605072, + -0.07176034152507782, + -0.003871637163683772, + -0.08743201196193695, + -0.080325186252594, + -0.03779982775449753, + 0.05357345938682556, + -0.02694448083639145, + 0.0908622145652771, + 0.02377660758793354, + 0.06642621755599976, + -0.02637840062379837, + -0.009373457171022892, + -0.08071614801883698, + 0.0342387780547142, + 0.07000908255577087, + 0.015808602795004845, + 0.07223792374134064, + 0.032930366694927216, + -0.05480942130088806, + 0.07242150604724884, + 0.05716224014759064, + 0.08938159048557281, + -0.025073565542697906, + 0.03268623724579811, + -0.03881744295358658, + 0.08041863143444061, + 0.09149853885173798, + -0.07416573166847229, + -0.07900340855121613, + -0.008463677950203419, + -0.08851130306720734, + 0.04195529967546463, + -0.021565068513154984, + 0.016400709748268127, + -0.007465182337909937, + -0.0030099733266979456, + -0.09339006245136261, + -0.09322210401296616, + 0.009683771058917046, + -0.05928615480661392, + -0.016967447474598885, + -0.0799696147441864, + 0.07500840723514557, + 0.10562212020158768, + 0.031572375446558, + -0.02784167230129242, + -0.06569699943065643, + 0.03901921212673187, + -0.039085812866687775, + 0.00012580468319356441, + 0.05484466999769211, + 0.04465609788894653, + -0.1222488060593605, + 0.02164340950548649, + -0.07860557734966278, + 0.045376431196928024, + -0.07000018656253815, + 0.15229500830173492, + 0.026605168357491493, + -0.06785998493432999, + -0.06001497805118561, + 0.02592596411705017, + -0.014781899750232697, + 0.02684714086353779, + 0.021956829354166985, + 0.02227221243083477, + 0.02568269520998001, + -0.06728293746709824, + 0.11107145249843597, + 0.05057144910097122, + -0.034160859882831573, + -0.07631144672632217, + -0.033525384962558746, + -0.030538246035575867, + 0.07135964184999466, + 0.03325861692428589, + -0.10000577569007874, + -0.054031096398830414, + 0.06677914410829544, + 0.007879644632339478, + 0.04934922605752945, + 0.1542784869670868, + 0.028544317930936813, + -0.1159692108631134 + ] + }, + "p244_140.wav": { + "name": "p244", + "embedding": [ + 0.032106462866067886, + 0.10258646309375763, + -0.03863545134663582, + 0.033056873828172684, + -0.047408685088157654, + 0.06788535416126251, + -0.10650399327278137, + 0.08408309519290924, + -0.051745232194662094, + 0.1439906358718872, + -0.08300479501485825, + 0.09365612268447876, + -0.03637726232409477, + -0.18144014477729797, + -0.023146042600274086, + 0.05650520324707031, + -0.06916254758834839, + -0.007570366840809584, + -0.10011936724185944, + -0.025479473173618317, + 0.033929843455553055, + 0.031131725758314133, + 0.036277081817388535, + -0.05022752285003662, + 0.00512390211224556, + 0.06359908729791641, + -0.013848669826984406, + 0.01940905675292015, + -0.002903031650930643, + -0.052057087421417236, + -0.054398469626903534, + 0.12623244524002075, + -0.02393820695579052, + 0.010701628401875496, + 0.041291724890470505, + 0.006800917908549309, + -0.023599712178111076, + -0.05122655630111694, + 0.0024571120738983154, + 0.01036273967474699, + -0.05014950782060623, + 0.04443689063191414, + 0.012572221457958221, + -0.027460843324661255, + 0.06866328418254852, + -0.024788357317447662, + -0.04691766947507858, + -0.02474340982735157, + -0.07061152160167694, + 0.16436609625816345, + 0.0976928323507309, + -0.019638914614915848, + -0.061314284801483154, + -0.061559274792671204, + 0.08832861483097076, + -0.0034463140182197094, + -0.15653139352798462, + -0.05037454515695572, + 0.07711216062307358, + 0.14175602793693542, + -0.007941044867038727, + -0.008940596133470535, + 0.019500672817230225, + 0.10958696901798248, + 0.010021863505244255, + 0.11309292912483215, + 0.051235757768154144, + 0.08879242092370987, + -0.0009065513731911778, + 0.04219233617186546, + 0.07376864552497864, + 0.046731702983379364, + 0.05028190091252327, + -0.035868722945451736, + 0.045829400420188904, + -0.023557033389806747, + -0.04582108557224274, + 0.004530781880021095, + -0.03949066251516342, + -0.03243137151002884, + -0.016561349853873253, + -0.02351978048682213, + -0.0009434190578758717, + -0.018667828291654587, + -0.02451932057738304, + 0.026422306895256042, + 0.06407799571752548, + -0.016930431127548218, + 0.05635236203670502, + 0.0839669480919838, + 0.013598821125924587, + 0.04602637141942978, + -0.04804681986570358, + -0.09976606070995331, + 0.010982569307088852, + 0.01683744788169861, + -0.009247435256838799, + 0.03935539722442627, + 0.04463207721710205, + -0.025607701390981674, + 0.08564548194408417, + 0.05055559426546097, + -0.004110095556825399, + 0.028953861445188522, + -0.09502167999744415, + 0.11557327210903168, + 0.11670465767383575, + -0.009867667220532894, + 0.016392692923545837, + -0.02477916143834591, + 0.08448526263237, + 0.08767551183700562, + -0.10353397578001022, + -0.04955824464559555, + 0.009557865560054779, + -0.04511438310146332, + -0.0010399797465652227, + 0.08924844861030579, + 0.011568907648324966, + -0.008110846392810345, + 0.11209669709205627, + -0.09427085518836975, + -0.06674505025148392, + -0.03728098422288895, + 0.02603866159915924, + -0.08407330513000488, + 0.036358293145895004, + 0.05977318435907364, + 0.004564437083899975, + -0.008266814984381199, + 0.08175940811634064, + -0.01644720509648323, + 0.012890792451798916, + 0.012213528156280518, + -0.04958978295326233, + 0.03690819814801216, + -0.03605053573846817, + -0.010096623562276363, + 0.06823625415563583, + 0.03848765790462494, + 0.04159748926758766, + -0.021061619743704796, + -0.005195945501327515, + -0.07666628062725067, + 0.012601872906088829, + 0.051536425948143005, + 0.03423471376299858, + -0.006671909708529711, + 0.024622339755296707, + -0.03014795482158661, + -0.08822052925825119, + 0.05422282591462135, + -0.06322105973958969, + 0.06704350560903549, + -0.013142933137714863, + -0.038733117282390594, + 0.12557129561901093, + 0.006835254840552807, + -0.01664559915661812, + -0.07807378470897675, + -0.028825603425502777, + 0.04406910389661789, + 0.04852832481265068, + -0.10376385599374771, + -0.06857436895370483, + 0.0002958932891488075, + -0.0040213665924966335, + 0.003764195367693901, + 0.028094250708818436, + 0.06835572421550751, + -0.004557745531201363, + 0.025327123701572418, + -0.07800909876823425, + 0.02716459333896637, + -0.10865183174610138, + -0.03786635398864746, + -0.018588313832879066, + -0.09402740001678467, + 0.014487672597169876, + 0.09529520571231842, + -0.008645059540867805, + -0.024473730474710464, + -0.03339703008532524, + -0.09031054377555847, + -0.06751986593008041, + 0.08582481741905212, + 0.0816536620259285, + 0.00204279413446784, + 0.058895424008369446, + 0.04315165430307388, + -0.025246107950806618, + 0.032529447227716446, + 0.05211769789457321, + 0.11295288801193237, + -0.027575239539146423, + 0.006363452412188053, + -0.0968601256608963, + 0.07241726666688919, + 0.09214647859334946, + -0.08937746286392212, + -0.09590311348438263, + -0.044798385351896286, + -0.03440181165933609, + 0.053835880011320114, + -0.051275983452796936, + -0.027386613190174103, + 0.05266179144382477, + -0.026864871382713318, + -0.09085887670516968, + -0.10242354869842529, + 0.12072047591209412, + -0.03682032600045204, + -0.012964700348675251, + -0.059800196439027786, + 0.03209955245256424, + 0.031012140214443207, + 0.031149979680776596, + -0.08320239186286926, + 0.0573907308280468, + 0.06590268015861511, + -0.05510091036558151, + 0.008635872043669224, + 0.008013262413442135, + 0.011779405176639557, + -0.08518533408641815, + -0.0024354278575628996, + -0.07600978761911392, + 0.0963110625743866, + -0.07082103937864304, + 0.1437510848045349, + -0.004958377219736576, + -0.044762689620256424, + -0.07384620606899261, + 0.08307861536741257, + -0.02379506081342697, + 0.03228211775422096, + 0.07300714403390884, + 0.07005840539932251, + 0.011233575642108917, + -0.08835166692733765, + 0.0944766253232956, + 0.0034095614682883024, + 0.0017764036310836673, + -0.05539702624082565, + -0.012404147535562515, + -0.06053109094500542, + 0.010805798694491386, + 0.011267581954598427, + -0.09127777814865112, + 0.02628166973590851, + 0.015385827049612999, + -0.01762445829808712, + 0.0643961951136589, + 0.1152602881193161, + 0.07447779923677444, + -0.08879270404577255 + ] + }, + "p244_004.wav": { + "name": "p244", + "embedding": [ + 0.057244203984737396, + 0.051239121705293655, + -0.006493191234767437, + 0.0046587856486439705, + -0.014370900578796864, + 0.04889317974448204, + -0.1505855768918991, + 0.11744870990514755, + -0.02296508103609085, + 0.10681253671646118, + -0.0728701651096344, + 0.08201058208942413, + -0.00767209567129612, + -0.16516365110874176, + -0.041001345962285995, + 0.04549176245927811, + -0.03501646965742111, + -0.027579933404922485, + -0.0311755258589983, + -0.008836065419018269, + 0.03076852858066559, + 0.0471736416220665, + -0.0001659514382481575, + 0.009035672061145306, + 0.012241963297128677, + 0.04364144057035446, + -0.0051876576617360115, + 0.026616103947162628, + -0.004384532570838928, + 0.00222670566290617, + 0.0057466886937618256, + 0.10275017470121384, + -0.03850072622299194, + 0.009041273966431618, + 0.05855696648359299, + 0.013160438276827335, + -0.006170983891934156, + -0.06826630234718323, + -0.020206864923238754, + 0.01614033244550228, + -0.05412178859114647, + 0.06679560244083405, + 0.051490284502506256, + 0.012002089992165565, + 0.027559733018279076, + 0.028028646484017372, + -0.00822331104427576, + -0.05394599959254265, + -0.09966468065977097, + 0.15860942006111145, + 0.04013802856206894, + 0.017943119630217552, + -0.0922805443406105, + -0.03724759444594383, + 0.0840732753276825, + -0.004480568692088127, + -0.07635274529457092, + -0.028386738151311874, + 0.06654711067676544, + 0.15144842863082886, + -0.006654726341366768, + -0.044933855533599854, + 0.027211084961891174, + 0.10585152357816696, + 0.034167565405368805, + 0.05825532227754593, + 0.09924449026584625, + 0.10678430646657944, + -0.01214150246232748, + 0.007117943838238716, + 0.06554816663265228, + 0.0388072170317173, + 0.05638907104730606, + -0.031034370884299278, + 0.025171399116516113, + 0.0017415564507246017, + -0.028098978102207184, + 0.009883041493594646, + -0.031081851571798325, + -0.024425338953733444, + 0.008048723451793194, + 0.008548153564333916, + 0.008548242971301079, + 0.062324102967977524, + -0.04049144312739372, + 0.03220600262284279, + 0.03287477791309357, + -0.006772756110876799, + 0.06856678426265717, + 0.059678614139556885, + 0.020501142367720604, + 0.03826247155666351, + -0.06959246844053268, + -0.08232609927654266, + 0.019670691341161728, + -0.0022162762470543385, + 0.03304598107933998, + 0.04985179752111435, + 0.03948202356696129, + -0.01198204979300499, + 0.09804360568523407, + 0.008098515681922436, + -0.0002941172569990158, + 0.00815909169614315, + -0.09762193262577057, + 0.09791037440299988, + 0.08280383795499802, + -0.02812999300658703, + 0.028420105576515198, + -0.058993589133024216, + 0.04419970139861107, + 0.0630403384566307, + -0.11383549869060516, + -0.052459198981523514, + 0.06827473640441895, + 0.04491904005408287, + 0.02058722823858261, + 0.13593994081020355, + 0.011091722175478935, + 0.021835027262568474, + 0.0744437426328659, + -0.07690946757793427, + -0.03526616841554642, + -0.006011516787111759, + 0.035444751381874084, + -0.04602028429508209, + 0.04425273463129997, + 0.03155776113271713, + 0.009502381086349487, + -0.024248994886875153, + 0.06927596032619476, + 0.00029218941926956177, + 0.00799286738038063, + -0.05023977532982826, + 0.01537276804447174, + 0.0709199532866478, + -0.009143814444541931, + 0.0015159700997173786, + 0.017510656267404556, + 0.04747721925377846, + 0.02624204196035862, + 0.03590153902769089, + -0.06248483061790466, + -0.11470767855644226, + -0.004738791845738888, + 0.04673238843679428, + 0.07807391881942749, + -0.02831854298710823, + -0.03755154460668564, + -0.0521104596555233, + -0.02906210348010063, + 0.010854961350560188, + -0.012914886698126793, + 0.06041932851076126, + 0.0300108902156353, + -0.012922441586852074, + 0.08949941396713257, + -0.00761021114885807, + 0.008169690147042274, + -0.02969200164079666, + -0.015670523047447205, + 0.009761703200638294, + 0.0460873618721962, + -0.05769249051809311, + -0.06362049281597137, + 0.0023356154561042786, + 0.013007670640945435, + -0.012593654915690422, + 0.01909327134490013, + 0.031186336651444435, + 0.0023230817168951035, + 0.007525439839810133, + -0.08917870372533798, + 0.014167784713208675, + -0.1180512011051178, + -0.059466756880283356, + 0.0179979857057333, + -0.012941773980855942, + 0.0009621425997465849, + 0.0856703668832779, + 0.015797816216945648, + 0.03727533668279648, + -0.03235930949449539, + -0.07736298441886902, + -0.04276653006672859, + 0.06202222406864166, + 0.07064232230186462, + -0.01980535127222538, + 0.025075972080230713, + 0.029654894024133682, + -0.005805652588605881, + 0.04072924703359604, + 0.05624306946992874, + 0.08792721480131149, + -0.05024013668298721, + -0.004494858905673027, + -0.03317595273256302, + 0.10440943390130997, + 0.04974979907274246, + -0.06304767727851868, + -0.07033741474151611, + 0.005304677411913872, + -0.047600824385881424, + 0.005815478973090649, + -0.019581694155931473, + 0.02000458724796772, + 0.02556712180376053, + -0.0237729549407959, + -0.11421756446361542, + -0.06738296151161194, + 0.03838469460606575, + -0.06318210810422897, + 0.00331917149014771, + -0.07444030046463013, + 0.04339484125375748, + 0.09425723552703857, + 0.02007249742746353, + -0.017583642154932022, + -0.021532295271754265, + 0.00424446165561676, + -0.05374759063124657, + -0.03725024685263634, + 0.004368685185909271, + 0.030680663883686066, + -0.08983869850635529, + -0.009140770882368088, + -0.058546602725982666, + 0.06307493895292282, + -0.049770474433898926, + 0.11064916849136353, + 0.011756817810237408, + -0.06703746318817139, + -0.0680784210562706, + -0.003931783139705658, + -0.0014525093138217926, + 0.05368048697710037, + 0.02675137296319008, + 0.04655763506889343, + 0.03197465464472771, + -0.04880567640066147, + 0.1013551652431488, + 0.05008199065923691, + -0.030540935695171356, + -0.05939823016524315, + -0.02996395155787468, + -0.014429381117224693, + 0.0277912225574255, + -0.006201401352882385, + -0.04977040737867355, + 0.004798954352736473, + 0.02141060307621956, + -0.009165780618786812, + 0.04160452261567116, + 0.11496564745903015, + 0.049962591379880905, + -0.12135732918977737 + ] + }, + "p244_169.wav": { + "name": "p244", + "embedding": [ + 0.057029567658901215, + 0.08338451385498047, + -0.01734072156250477, + 0.038463957607746124, + -0.05738261714577675, + 0.08633057028055191, + -0.13482148945331573, + 0.11841713637113571, + -0.0672321617603302, + 0.13830581307411194, + -0.04638269916176796, + 0.10157979279756546, + -0.02636878751218319, + -0.1886727213859558, + -0.02977590076625347, + 0.07470418512821198, + -0.07409191876649857, + -0.04069636017084122, + -0.07145829498767853, + -0.003243983956053853, + 0.01020850706845522, + 0.019279690459370613, + 0.037069663405418396, + 0.0052407956682145596, + 0.0376032255589962, + 0.0675714835524559, + -0.01886574551463127, + 0.043965794146060944, + 0.01845916360616684, + -0.06929130852222443, + -0.03393295407295227, + 0.09713002294301987, + -0.05504804104566574, + -0.008165374398231506, + 0.04820776730775833, + -0.007374047301709652, + -0.009997377172112465, + -0.06639043241739273, + -0.025024890899658203, + -0.00019767200865317136, + -0.05997892841696739, + 0.08781640231609344, + 0.0316188745200634, + -0.016193915158510208, + 0.04006927087903023, + -0.010623528622090816, + -0.02601289562880993, + -0.055488407611846924, + -0.10404876619577408, + 0.1514267474412918, + 0.07180014997720718, + 0.0007413647253997624, + -0.0652066171169281, + -0.06657960265874863, + 0.10237142443656921, + -0.016412867233157158, + -0.14202113449573517, + -0.07418593764305115, + 0.07471315562725067, + 0.16235481202602386, + -0.03485307842493057, + 0.0017970151966437697, + 0.02049916237592697, + 0.12295348942279816, + 0.0891043022274971, + 0.11592104285955429, + 0.06453748047351837, + 0.09670441597700119, + 0.006898547988384962, + 0.03541051968932152, + 0.08895045518875122, + 0.04363706707954407, + 0.04513071849942207, + -0.0030966391786932945, + 0.03634212166070938, + -0.009360048919916153, + -0.01824885979294777, + -0.015100239776074886, + 0.001968139549717307, + 0.0007456461898982525, + -0.0065033650025725365, + 0.00976000726222992, + 0.0030725549440830946, + 0.027006959542632103, + -0.027332181110978127, + 0.051742322742938995, + 0.02186988666653633, + -0.016360126435756683, + 0.06705182045698166, + 0.04799802601337433, + 0.012044823728501797, + 0.05976928398013115, + -0.051586706191301346, + -0.07648489624261856, + 0.015033205971121788, + 0.012112302705645561, + 0.007237287238240242, + 0.04883294925093651, + 0.029767388477921486, + -0.011775006540119648, + 0.11153513938188553, + 0.05835574492812157, + -0.004567086696624756, + 0.042401619255542755, + -0.09106332808732986, + 0.13329333066940308, + 0.04985566809773445, + -0.011587032116949558, + 0.05712316930294037, + -0.015900438651442528, + 0.06157167628407478, + 0.08525945246219635, + -0.14287279546260834, + -0.058312006294727325, + 0.047777220606803894, + -0.019714927300810814, + -0.022126100957393646, + 0.11741900444030762, + 0.010651095770299435, + 0.014133838005363941, + 0.10121676325798035, + -0.08445888012647629, + -0.05385727062821388, + -0.0005828676512464881, + 0.06015734001994133, + -0.0936628058552742, + 0.05022328346967697, + 0.04663466662168503, + -0.02767125703394413, + 0.004958232864737511, + 0.10852095484733582, + -0.009199898689985275, + -0.012001347728073597, + 0.02455342933535576, + -0.0366758368909359, + 0.0424298495054245, + -0.029558448120951653, + 0.006994884926825762, + 0.06476634740829468, + 0.013324043713510036, + 0.04511486366391182, + -0.025048796087503433, + -0.017671888694167137, + -0.1164848804473877, + 0.009979200549423695, + 0.03409599885344505, + 0.0973581075668335, + -0.011334016919136047, + 0.01386767067015171, + -0.04685838520526886, + -0.071267269551754, + 0.0312788300216198, + -0.027630312368273735, + 0.09542803466320038, + -0.015073378570377827, + -0.016483070328831673, + 0.10623481124639511, + 0.010985083878040314, + 0.02556760236620903, + -0.052403368055820465, + -0.01147842314094305, + 0.03319564089179039, + 0.069051593542099, + -0.07736990600824356, + -0.05358013138175011, + 0.017084144055843353, + 0.03136401250958443, + -0.0032287281937897205, + 0.04497158154845238, + 0.049444250762462616, + 0.007242798339575529, + 0.019563665613532066, + -0.06911169737577438, + 0.037850528955459595, + -0.07883647829294205, + -0.04935717582702637, + -0.013661636970937252, + -0.03714895620942116, + -0.02986377477645874, + 0.08735671639442444, + 0.022886047139763832, + 0.027004661038517952, + -0.017222218215465546, + -0.10290086269378662, + -0.07346212863922119, + 0.06715315580368042, + 0.06836634129285812, + -0.01346024964004755, + 0.031949419528245926, + 0.05771039426326752, + -0.027490884065628052, + 0.030200574547052383, + 0.049648597836494446, + 0.1049681082367897, + -0.03021169826388359, + 0.000637968594674021, + -0.07491497695446014, + 0.07274871319532394, + 0.08364419639110565, + -0.1093386709690094, + -0.061665698885917664, + -0.0003366165328770876, + -0.052009209990501404, + 0.035503089427948, + -0.0368952751159668, + 0.008412673138082027, + 0.055118121206760406, + -0.023035917431116104, + -0.0857432633638382, + -0.11854654550552368, + 0.11555308848619461, + -0.09432242810726166, + -0.014157623052597046, + -0.07081761956214905, + 0.03196137398481369, + 0.06329343467950821, + 0.044685300439596176, + -0.034853242337703705, + 0.015262763015925884, + 0.040013570338487625, + -0.04142971709370613, + 0.0026692869141697884, + 0.08138493448495865, + 0.005325319245457649, + -0.12417425960302353, + -0.006527154240757227, + -0.0869840532541275, + 0.07885152846574783, + -0.04930106922984123, + 0.16691666841506958, + -0.00925438292324543, + -0.040394578129053116, + -0.08786991238594055, + 0.0327502004802227, + -0.03264082968235016, + 0.06058737635612488, + 0.046394918113946915, + 0.08468504995107651, + 0.06254935264587402, + -0.03359273448586464, + 0.10600753873586655, + 0.03855243697762489, + -0.019256064668297768, + -0.05811845138669014, + -0.027169078588485718, + -0.060603175312280655, + 0.03630848228931427, + 0.004633820150047541, + -0.11385249346494675, + 0.01475260965526104, + 0.030828822404146194, + -0.033128850162029266, + 0.06024675443768501, + 0.1311168521642685, + 0.06941784173250198, + -0.10493093729019165 + ] + }, + "p244_313.wav": { + "name": "p244", + "embedding": [ + 0.02142168954014778, + 0.049886684864759445, + -0.04737619683146477, + 0.03312927111983299, + -0.0724833682179451, + 0.025982335209846497, + -0.10125404596328735, + 0.11237995326519012, + -0.016938187181949615, + 0.1240723729133606, + -0.057187702506780624, + 0.112162284553051, + -0.03423161059617996, + -0.17403459548950195, + 0.01640089601278305, + 0.04892852157354355, + -0.026485878974199295, + -0.036173831671476364, + -0.07597172260284424, + -0.05111394077539444, + 0.03252503648400307, + 0.04747713729739189, + 0.020761726424098015, + -0.030358506366610527, + 0.007589813321828842, + 0.08350235223770142, + -0.01819518767297268, + 0.008206741884350777, + -0.01724264770746231, + -0.06443729251623154, + -0.047212135046720505, + 0.07249844074249268, + -0.0695524588227272, + 0.0015347761800512671, + 0.036939892917871475, + -0.02219861000776291, + -0.0233923252671957, + -0.028293907642364502, + -0.02022527903318405, + 0.013947761617600918, + -0.07670603692531586, + 0.0656580775976181, + 0.029969459399580956, + -0.008617842569947243, + 0.05774608999490738, + 0.01041030790656805, + -0.02956559881567955, + -0.03704890236258507, + -0.09309722483158112, + 0.15833771228790283, + 0.07991187274456024, + -0.0236746184527874, + -0.04585540294647217, + -0.04510103911161423, + 0.08938821405172348, + -0.009732533246278763, + -0.12872089445590973, + -0.06405602395534515, + 0.07925166189670563, + 0.11178164929151535, + -0.0383923202753067, + -0.02909669280052185, + 0.028173549100756645, + 0.0861702412366867, + 0.0682726725935936, + 0.07643285393714905, + 0.07359316945075989, + 0.12612062692642212, + -0.02053428627550602, + 0.0034753684885799885, + 0.06644515693187714, + 0.072492316365242, + 0.0769229531288147, + -0.0005894061177968979, + 0.021558700129389763, + 0.0148240951821208, + -0.004262634553015232, + -0.0337153784930706, + -0.03341085463762283, + -0.01247863657772541, + 0.008604643866419792, + -0.0028425739146769047, + 0.02461695298552513, + 0.004409964196383953, + -0.012768270447850227, + 0.0563889816403389, + 0.09075548499822617, + -0.012507534585893154, + 0.05127323791384697, + 0.017769459635019302, + -0.019381878897547722, + 0.07396526634693146, + -0.09262778609991074, + -0.04413747042417526, + 0.01436161994934082, + 0.009535644203424454, + -0.00625405041500926, + 0.061799537390470505, + 0.04148771986365318, + -0.01660812273621559, + 0.12313693761825562, + 0.01719614677131176, + -0.00957178883254528, + 0.02671133726835251, + -0.07920872420072556, + 0.12369725108146667, + 0.09580912441015244, + -0.030843552201986313, + 0.029534852132201195, + -0.050272103399038315, + 0.0692659318447113, + 0.040993209928274155, + -0.11497996747493744, + -0.05024636536836624, + 0.008883442729711533, + -0.02624170482158661, + -0.04495804011821747, + 0.1271926760673523, + 0.004026795271784067, + 0.03888726234436035, + 0.14366203546524048, + -0.10506200790405273, + -0.05239793658256531, + -0.0012600127374753356, + 0.03464144468307495, + -0.08841224759817123, + 0.04136303812265396, + 0.05112754553556442, + 0.0011233033146709204, + 0.0516161248087883, + 0.09388379752635956, + -0.017144110053777695, + 0.008297096937894821, + -0.004844239912927151, + -0.03991668298840523, + 0.013256723992526531, + -0.015149693936109543, + -0.023126162588596344, + 0.07030081003904343, + 0.036917105317115784, + 0.05841983109712601, + -0.04302629083395004, + -0.021770363673567772, + -0.11899854242801666, + 0.03372488543391228, + 0.024367112666368484, + 0.06567483395338058, + -0.02054380625486374, + 0.02614741027355194, + -0.047301650047302246, + -0.10456521809101105, + 0.024221524596214294, + -0.02210712991654873, + 0.06742219626903534, + -0.054348863661289215, + -0.013684777542948723, + 0.11857466399669647, + 0.04056893661618233, + -0.007575647439807653, + -0.05717083811759949, + -0.052838217467069626, + -0.006848352961242199, + 0.04980176314711571, + -0.09226065129041672, + -0.07509312778711319, + -0.030813217163085938, + 0.04452245682477951, + -0.00011402818927308545, + 0.06774844229221344, + 0.04638856649398804, + 0.02343478798866272, + 0.006943050771951675, + -0.07064477354288101, + -0.0006331975455395877, + -0.06736897677183151, + -0.057541511952877045, + -0.011784079484641552, + -0.040383338928222656, + -0.021517081186175346, + 0.072021484375, + -0.006972750183194876, + 0.034830741584300995, + -0.04687376320362091, + -0.08340221643447876, + -0.08604519814252853, + 0.048979684710502625, + 0.035802148282527924, + -0.04106026515364647, + 0.03976672887802124, + 0.06865504384040833, + -0.0578019917011261, + 0.020123563706874847, + 0.05720202252268791, + 0.11239179223775864, + -0.03434876352548599, + 0.038983166217803955, + -0.05767671763896942, + 0.1055237203836441, + 0.07481840997934341, + -0.06025584787130356, + -0.06102852150797844, + -0.03594226390123367, + -0.06284841895103455, + 0.049261629581451416, + -0.04006171226501465, + -0.016076108440756798, + 0.029867185279726982, + 0.025098517537117004, + -0.07913494110107422, + -0.0733911395072937, + 0.0698438286781311, + -0.05169570446014404, + -0.005870752036571503, + -0.09513655304908752, + 0.032577306032180786, + 0.07396671921014786, + 0.05974563956260681, + -0.031271547079086304, + 0.00485944002866745, + 0.05167495459318161, + -0.014154445379972458, + 0.04268321394920349, + 0.07700317353010178, + 0.05174528807401657, + -0.08144669234752655, + -0.04967574402689934, + -0.06901288032531738, + 0.03783658891916275, + -0.03139082342386246, + 0.11470809578895569, + 0.014636139385402203, + -0.02812395617365837, + -0.06898641586303711, + 0.051667165011167526, + -0.005063525401055813, + 0.06066303700208664, + 0.04841357469558716, + 0.07028861343860626, + 0.059153005480766296, + -0.04929915815591812, + 0.13303810358047485, + 0.0391136072576046, + -0.031435348093509674, + -0.04060107469558716, + -0.05390309542417526, + -0.052223604172468185, + 0.012352163903415203, + 0.034251339733600616, + -0.09305623173713684, + 0.007786917500197887, + 0.02105364017188549, + -0.018030185252428055, + 0.04245876520872116, + 0.11875030398368835, + 0.08289225399494171, + -0.09679828584194183 + ] + }, + "p244_189.wav": { + "name": "p244", + "embedding": [ + 0.054061584174633026, + 0.11470216512680054, + 0.016316469758749008, + -0.020602762699127197, + -0.02756618522107601, + 0.06860370934009552, + -0.15209344029426575, + 0.12005740404129028, + -0.060834091156721115, + 0.14446377754211426, + -0.09283483028411865, + 0.10139843076467514, + -0.014834349974989891, + -0.16928303241729736, + -0.05371050536632538, + 0.050717901438474655, + -0.04537893086671829, + -0.010936446487903595, + -0.01692710630595684, + -0.027092676609754562, + 0.03606000542640686, + 0.04401242733001709, + 0.04083456099033356, + -0.011781331151723862, + 0.051066093146800995, + 0.0534324124455452, + 0.03273087739944458, + 0.07584463804960251, + 0.02319362759590149, + -0.05936663597822189, + -0.03450694680213928, + 0.10983429849147797, + -0.02830195426940918, + 0.011660071089863777, + 0.0442812405526638, + 0.002715721260756254, + 0.034936338663101196, + -0.08276695758104324, + -0.007814133539795876, + 0.009511386975646019, + -0.006412091664969921, + 0.07810306549072266, + 0.027308408170938492, + -0.0023602754808962345, + 0.016765834763646126, + 0.03881479799747467, + 0.011776605620980263, + -0.07582377642393112, + -0.09905959665775299, + 0.1619507074356079, + 0.04109371826052666, + 0.011514004319906235, + -0.06973206996917725, + -0.08052308857440948, + 0.10235860198736191, + -0.023670658469200134, + -0.08146195113658905, + -0.033827897161245346, + 0.07704507559537888, + 0.15914320945739746, + -0.040653541684150696, + -0.05438581109046936, + 0.034578584134578705, + 0.10603852570056915, + 0.00698121590539813, + 0.08897261321544647, + 0.07400938123464584, + 0.060290850698947906, + 0.009071099571883678, + 0.014636531472206116, + 0.02936544641852379, + 0.06479693949222565, + -0.0038491198793053627, + -0.017406105995178223, + 0.021649464964866638, + -0.004924245178699493, + -0.03714916855096817, + 0.0400061160326004, + -0.010739690624177456, + -0.014694343321025372, + -0.012363161891698837, + 0.01900310069322586, + -0.010543467476963997, + 0.008182458579540253, + -0.02884434163570404, + 0.045528560876846313, + -0.023044809699058533, + -0.002590528456494212, + 0.09047289937734604, + 0.012260100804269314, + 0.016220485791563988, + 0.034721896052360535, + -0.05224500596523285, + -0.09895993769168854, + 0.03114529699087143, + 0.016769982874393463, + -0.001952069578692317, + 0.06945250928401947, + 0.031156614422798157, + -0.039112742990255356, + 0.12584392726421356, + 0.05463337153196335, + 0.0014311475679278374, + 0.024224836379289627, + -0.09696173667907715, + 0.12023141235113144, + 0.08631692826747894, + -0.0130640072748065, + 0.05441105365753174, + -0.053509727120399475, + 0.05512527748942375, + 0.07659163326025009, + -0.1541886329650879, + -0.09999258816242218, + 0.031785473227500916, + 0.032652467489242554, + -0.003077820874750614, + 0.08291192352771759, + -0.020125795155763626, + 0.0013200268149375916, + 0.08556358516216278, + -0.08341815322637558, + -0.0733201652765274, + -0.0185023732483387, + 0.052630871534347534, + -0.07558268308639526, + 0.039250582456588745, + 0.07296265661716461, + -0.023450978100299835, + -0.003632880514487624, + 0.0705694928765297, + -0.0021453395020216703, + 0.0062775034457445145, + 0.016538191586732864, + -0.033143579959869385, + 0.018510211259126663, + -0.04315420985221863, + -0.0027942857705056667, + 0.021535461768507957, + 0.06784075498580933, + 0.02893092855811119, + 0.021419523283839226, + -0.06008894369006157, + -0.11445252597332001, + -0.009073866531252861, + 0.034023817628622055, + 0.05537131428718567, + -0.012290950864553452, + -0.035908497869968414, + -0.05667175352573395, + -0.04714053124189377, + -0.00381668983027339, + 0.005961798131465912, + 0.08780786395072937, + -0.0020860484801232815, + 0.022010212764143944, + 0.09874808043241501, + 0.024450024589896202, + -0.004167753271758556, + -0.054217346012592316, + -0.013665186241269112, + 0.03161023557186127, + 0.02077224850654602, + -0.046125851571559906, + -0.07084117829799652, + 0.008410995826125145, + 0.024053949862718582, + -0.02418225072324276, + 0.041069842875003815, + 0.031204944476485252, + 0.022411314770579338, + 0.05253579840064049, + -0.07542093843221664, + 0.03250299021601677, + -0.10383333265781403, + -0.04506240412592888, + -0.004484906792640686, + 0.007167072035372257, + -0.028640177100896835, + 0.09136617183685303, + 0.017007891088724136, + 0.04663955792784691, + -0.008205385878682137, + -0.0667840987443924, + -0.0615413598716259, + 0.061117734760046005, + 0.0996965765953064, + 0.0084078935906291, + 0.04220139607787132, + 0.032252345234155655, + -0.0048997774720191956, + 0.06294463574886322, + 0.06534877419471741, + 0.07824238389730453, + -0.0006872769445180893, + -0.01005035825073719, + -0.047618985176086426, + 0.06074374541640282, + 0.04725376516580582, + -0.10643108189105988, + -0.07524313032627106, + -0.0251776035875082, + -0.06120811402797699, + 0.042097002267837524, + 0.008933242410421371, + 0.018248479813337326, + 0.0032928939908742905, + -0.019674506038427353, + -0.08447685837745667, + -0.0873546451330185, + 0.061360131949186325, + -0.05344153568148613, + -0.023623239248991013, + -0.054395854473114014, + 0.05509696528315544, + 0.09705829620361328, + 0.05161996930837631, + 0.0072556789964437485, + -0.03857619687914848, + 0.022206325083971024, + -0.07385842502117157, + -0.016611680388450623, + 0.02502818964421749, + 0.013440942391753197, + -0.08975663036108017, + 0.0679871141910553, + -0.0937887653708458, + 0.06893813610076904, + -0.055279821157455444, + 0.1566605567932129, + 0.004919194150716066, + -0.06815310567617416, + -0.10012626647949219, + 0.015767451375722885, + -0.0593147873878479, + 0.028425073251128197, + 0.02212471514940262, + 0.022095924243330956, + 0.05156773328781128, + -0.0739322081208229, + 0.08749933540821075, + 0.04144130274653435, + -0.03708742931485176, + -0.07542967051267624, + -0.05963771790266037, + -0.028486791998147964, + 0.03200472891330719, + -0.00276842899620533, + -0.0686369389295578, + -0.032860077917575836, + 0.025503020733594894, + -0.011452632956206799, + 0.09059660136699677, + 0.12143524736166, + 0.04256148263812065, + -0.1243513822555542 + ] + }, + "p244_014.wav": { + "name": "p244", + "embedding": [ + 0.0456618033349514, + 0.09947610646486282, + -0.0351579487323761, + 0.01769324578344822, + -0.03846055269241333, + 0.03294319659471512, + -0.1384236067533493, + 0.1454164683818817, + -0.03573080152273178, + 0.11553234606981277, + -0.0607529878616333, + 0.1252995729446411, + -0.039623670279979706, + -0.1287994235754013, + -0.025616401806473732, + 0.059261664748191833, + 0.0065677352249622345, + -0.024798106402158737, + 0.012047134339809418, + -0.011180071160197258, + 0.045637913048267365, + 0.02454722300171852, + 0.013781548477709293, + 0.02438787743449211, + 0.025713670998811722, + 0.062442049384117126, + 0.008027640171349049, + 0.023942165076732635, + -0.004922201856970787, + -0.02145509049296379, + 0.0020491499453783035, + 0.08045138418674469, + -0.028491167351603508, + 0.029588503763079643, + 0.047634731978178024, + 0.006369514856487513, + -0.016286443918943405, + -0.07070358097553253, + -0.010438184253871441, + -0.024547982960939407, + -0.038875553756952286, + 0.07682274281978607, + 0.017487555742263794, + -0.029269102960824966, + 0.027799539268016815, + 0.006001647561788559, + -0.0035741108004003763, + -0.03324389457702637, + -0.1038001999258995, + 0.12629824876785278, + 0.042398691177368164, + 0.04587283730506897, + -0.09751556068658829, + -0.04450879245996475, + 0.10620276629924774, + -0.007475041784346104, + -0.05505678430199623, + -0.0349879153072834, + 0.05194047465920448, + 0.1577078402042389, + -0.012517052702605724, + -0.040527522563934326, + 0.03556269407272339, + 0.10202843695878983, + 0.04841536283493042, + 0.0538499541580677, + 0.0951853096485138, + 0.0903569832444191, + -0.02120477706193924, + 0.00038562389090657234, + 0.023219358175992966, + 0.08689197152853012, + 0.025803115218877792, + -0.012411314994096756, + -0.007968703284859657, + -0.002945534884929657, + -0.027890753000974655, + -0.0026419139467179775, + -0.019570011645555496, + -0.05071458965539932, + -0.05330786854028702, + 0.012360257096588612, + 0.0007026037201285362, + 0.02548249252140522, + -0.015036750584840775, + 0.0378415510058403, + 0.04665284976363182, + -0.058008939027786255, + 0.0587211437523365, + 0.02665218524634838, + -0.01011449471116066, + 0.03193049877882004, + -0.076620914041996, + -0.07339684665203094, + 0.025463296100497246, + 0.0021541332826018333, + 0.022215019911527634, + 0.08271461725234985, + 0.03895801305770874, + 0.004185925237834454, + 0.10523208975791931, + 0.03697848320007324, + 0.005295770242810249, + -0.019892394542694092, + -0.06409311294555664, + 0.11022298038005829, + 0.07042629271745682, + -0.03810158371925354, + 0.05560486763715744, + -0.0493827685713768, + 0.015588978305459023, + 0.053994275629520416, + -0.11514697968959808, + -0.07873079180717468, + 0.027407001703977585, + 0.035015251487493515, + 0.01579325459897518, + 0.10628814995288849, + 0.01557882595807314, + 0.04157496988773346, + 0.07264241576194763, + -0.07872103899717331, + -0.07472427934408188, + -0.04022175073623657, + 0.05695508047938347, + -0.05361801013350487, + 0.08196534216403961, + 0.07280725240707397, + 0.007446852512657642, + 0.0009589539840817451, + 0.054964397102594376, + 0.00770481675863266, + 0.006735594943165779, + 0.0017329519614577293, + -0.023623213171958923, + 0.006417369470000267, + -0.03334959223866463, + -0.0058499048464000225, + 0.013856390491127968, + 0.036187827587127686, + 0.05148895084857941, + 0.012061990797519684, + -0.01096294168382883, + -0.10962604731321335, + -0.005911238957196474, + 0.07075758278369904, + 0.0666264072060585, + -0.0211165938526392, + -0.060836538672447205, + -0.02669548988342285, + -0.03672284632921219, + -0.030006997287273407, + -0.00560013996437192, + 0.08636757731437683, + -0.012779127806425095, + 0.04771970212459564, + 0.09276529401540756, + 0.020862631499767303, + 0.0015486115589737892, + -0.03773873299360275, + 0.0011763554066419601, + 0.0017245570197701454, + 0.04134422913193703, + -0.05242372304201126, + -0.0871952474117279, + -0.02570885792374611, + 0.037271082401275635, + -0.02657049521803856, + 0.05901411175727844, + 0.01927550882101059, + 0.016223667189478874, + 0.016166068613529205, + -0.05623400956392288, + 0.01310694683343172, + -0.10516701638698578, + -0.05479121580719948, + -0.015248250216245651, + 0.0053838989697396755, + -0.02046903781592846, + 0.07061156630516052, + 0.057423245161771774, + 0.07197509706020355, + 0.006083223968744278, + -0.05638034641742706, + -0.07956670224666595, + 0.03524193912744522, + 0.05869004875421524, + -0.01918291673064232, + 0.019595062360167503, + 0.04000133275985718, + -0.013602444902062416, + 0.034899353981018066, + 0.06724784523248672, + 0.06343290209770203, + -0.03596850484609604, + 0.0012189392000436783, + -0.053810086101293564, + 0.07253456115722656, + 0.09896670281887054, + -0.09662356227636337, + -0.07373400777578354, + -0.05366010218858719, + -0.06369131058454514, + 0.009729236364364624, + -0.023127544671297073, + 0.027799593284726143, + 0.021347586065530777, + -0.0376795269548893, + -0.12406335771083832, + -0.09899730980396271, + 0.06215960904955864, + -0.048071980476379395, + 0.024179209023714066, + -0.0599585585296154, + 0.036651648581027985, + 0.09318123012781143, + 0.01891211047768593, + -0.00443354994058609, + -0.02552139014005661, + 0.02204076573252678, + -0.03201678395271301, + -0.00341423531062901, + 0.05311751738190651, + 0.032578807324171066, + -0.09171418845653534, + 0.010781090706586838, + -0.058642059564590454, + 0.07592502236366272, + -0.043430980294942856, + 0.14329004287719727, + 0.006454888731241226, + -0.06720374524593353, + -0.09921152144670486, + 0.002791309729218483, + 0.0005907490849494934, + 0.046496711671352386, + -0.010645516216754913, + 0.05001773312687874, + 0.01717197336256504, + -0.06269966810941696, + 0.0962488055229187, + 0.06484914571046829, + -0.03050391748547554, + -0.07122256606817245, + -0.061058107763528824, + -0.02213059365749359, + 0.03828231245279312, + -0.012656682170927525, + -0.047123540192842484, + -0.024648265913128853, + 0.010331484489142895, + 0.012792368419468403, + 0.08453378081321716, + 0.12315244227647781, + 0.05332903936505318, + -0.11324436217546463 + ] + }, + "p244_093.wav": { + "name": "p244", + "embedding": [ + 0.05074314773082733, + 0.090809166431427, + -0.013290628790855408, + 0.015098122879862785, + -0.03353681415319443, + 0.07280128449201584, + -0.16247853636741638, + 0.12200742959976196, + -0.038645461201667786, + 0.140935480594635, + -0.06970199942588806, + 0.10677939653396606, + -0.015908164903521538, + -0.19865746796131134, + -0.0289695393294096, + 0.057447899132966995, + -0.04007676616311073, + -0.0360996276140213, + 0.009147069416940212, + -0.003172045573592186, + 0.04778694361448288, + 0.03840216249227524, + -0.0015303976833820343, + -0.0033095041289925575, + 0.03224800154566765, + 0.05935615301132202, + 0.00954018160700798, + 0.04134117066860199, + -0.005329861771315336, + -0.02657070755958557, + -0.03769402205944061, + 0.11924472451210022, + -0.05533643439412117, + 0.006156974472105503, + 0.05714326351881027, + 0.010049121454358101, + -4.3819774873554707e-05, + -0.06700471043586731, + -0.0012456621043384075, + -0.0037426804192364216, + -0.0500551238656044, + 0.0754559114575386, + 0.04676090180873871, + 0.00682303961366415, + 0.016727151349186897, + 0.05280639976263046, + 0.007143775001168251, + -0.05887789651751518, + -0.0993725061416626, + 0.16611286997795105, + 0.04758661240339279, + 0.006035572849214077, + -0.05677713453769684, + -0.07110647857189178, + 0.09511614590883255, + 0.019881442189216614, + -0.08745481818914413, + -0.03761862590909004, + 0.09009537845849991, + 0.15992924571037292, + -0.028263116255402565, + -0.05992526561021805, + 0.02318868786096573, + 0.11784019321203232, + 0.03675505518913269, + 0.10231959819793701, + 0.06000570207834244, + 0.11065860092639923, + 0.009880606085062027, + -0.0056321825832128525, + 0.06433378159999847, + 0.06186582148075104, + 0.0557703897356987, + -0.03159122169017792, + 0.03314778581261635, + 0.0030629471875727177, + -0.027840513736009598, + 0.024595201015472412, + -0.01803481951355934, + -0.017497047781944275, + 0.005985913798213005, + -0.0021278513595461845, + 0.0140004251152277, + 0.03877772390842438, + -0.02312973514199257, + 0.03503366932272911, + 0.0379556380212307, + -0.005760233383625746, + 0.08118031919002533, + 0.02081253193318844, + 0.018608156591653824, + 0.06975807994604111, + -0.09668467938899994, + -0.08453261852264404, + 0.06258927285671234, + 0.01369533222168684, + 0.025164879858493805, + 0.08311672508716583, + 0.051353029906749725, + -0.026406943798065186, + 0.11544302850961685, + 0.02830936759710312, + 0.004805782809853554, + 0.035251013934612274, + -0.10384169220924377, + 0.13374894857406616, + 0.0701487809419632, + -0.03527000546455383, + 0.0386669896543026, + -0.06636445224285126, + 0.07947658002376556, + 0.08027878403663635, + -0.16000542044639587, + -0.07755297422409058, + 0.055938445031642914, + 0.03538131341338158, + -0.03299558162689209, + 0.14470471441745758, + -0.01536556240171194, + 0.011838282458484173, + 0.09792724251747131, + -0.09889156371355057, + -0.06377687305212021, + -0.028526391834020615, + 0.03751164674758911, + -0.09809593111276627, + 0.0531526580452919, + 0.04835750162601471, + -0.014352550730109215, + 0.0021915100514888763, + 0.07922118902206421, + -0.014146468602120876, + 0.00040054344572126865, + -0.006033643148839474, + -0.01888749934732914, + 0.038111671805381775, + -0.0358765684068203, + 0.016435174271464348, + 0.010315737687051296, + 0.020565688610076904, + 0.03732144832611084, + 0.011628430336713791, + -0.04108860343694687, + -0.13757212460041046, + 0.010281476192176342, + 0.05475397780537605, + 0.07942627370357513, + -0.018292147666215897, + -0.04738131910562515, + -0.047075577080249786, + -0.06998344510793686, + 0.018743351101875305, + -0.0010394174605607986, + 0.06967242062091827, + 0.016308948397636414, + -0.004125738050788641, + 0.09388042986392975, + 0.030768249183893204, + 0.002254853490740061, + -0.047350138425827026, + -0.04300922155380249, + 0.0307645034044981, + 0.03491809219121933, + -0.09616328775882721, + -0.06445501744747162, + -0.015645071864128113, + 0.02320963703095913, + -0.023742932826280594, + 0.03132423013448715, + 0.04512029141187668, + 0.03353787958621979, + 0.030718671157956123, + -0.07515047490596771, + 0.014204693958163261, + -0.11770935356616974, + -0.07615149021148682, + -0.019917674362659454, + -0.0024251937866210938, + -0.012518848292529583, + 0.0842566192150116, + -0.004955656360834837, + 0.04481224715709686, + -0.0415770560503006, + -0.04331125319004059, + -0.06461913883686066, + 0.0594070665538311, + 0.08434751629829407, + 0.0023477990180253983, + 0.04480049014091492, + 0.02785741537809372, + -0.026571273803710938, + 0.03960242494940758, + 0.05644042044878006, + 0.12907400727272034, + -0.022564353421330452, + 0.0271480493247509, + -0.049875058233737946, + 0.10417333245277405, + 0.07374027371406555, + -0.07385571300983429, + -0.07694696635007858, + -0.0014689902309328318, + -0.0646185502409935, + 0.0317489355802536, + -0.029963523149490356, + 0.007138731423765421, + -0.011343549937009811, + -0.008046459406614304, + -0.0948844850063324, + -0.08245319128036499, + 0.048624053597450256, + -0.06483778357505798, + -0.02410692349076271, + -0.10119737684726715, + 0.06962455809116364, + 0.09975449740886688, + 0.047382839024066925, + -0.03321690857410431, + -0.025760939344763756, + 0.03593400865793228, + -0.046623896807432175, + 0.0031484849750995636, + 0.04533783346414566, + 0.03373042866587639, + -0.11636415123939514, + 0.010867936536669731, + -0.07314219325780869, + 0.055471889674663544, + -0.07504880428314209, + 0.1612653136253357, + -0.004218073096126318, + -0.06314291059970856, + -0.07583891600370407, + 0.029648810625076294, + -0.0033663371577858925, + 0.03395656496286392, + 0.030652225017547607, + 0.050599485635757446, + 0.031894005835056305, + -0.06051668897271156, + 0.11911025643348694, + 0.03137093037366867, + -0.012358525767922401, + -0.05907273665070534, + -0.04374746233224869, + -0.03692643344402313, + 0.03913130238652229, + 0.002792461309581995, + -0.09477012604475021, + -0.02743423357605934, + 0.05291053652763367, + 0.011326944455504417, + 0.05075114592909813, + 0.137893944978714, + 0.03861163556575775, + -0.12447661906480789 + ] + }, + "p244_333.wav": { + "name": "p244", + "embedding": [ + 0.014325177296996117, + 0.11449761688709259, + 0.012907424010336399, + 0.02295769192278385, + -0.02159927971661091, + 0.08031825721263885, + -0.08673080801963806, + 0.089596226811409, + -0.08615908026695251, + 0.1452193558216095, + -0.12105554342269897, + 0.06368371844291687, + -0.061172179877758026, + -0.17030206322669983, + -0.059386245906353, + 0.05200222134590149, + -0.061178386211395264, + -0.0033570416271686554, + -0.04070690646767616, + -0.020595546811819077, + 0.036457717418670654, + 0.04992419108748436, + 0.030987495556473732, + 0.0071773407980799675, + 0.026273498311638832, + 0.046439576894044876, + -0.01594150811433792, + 0.042374029755592346, + 0.022514771670103073, + -0.043104641139507294, + -0.03561869263648987, + 0.14091166853904724, + -0.027828924357891083, + 0.0056991600431501865, + 0.02491716854274273, + 0.02859354019165039, + 0.026210512965917587, + -0.05052930861711502, + -0.013044025748968124, + 0.009513557888567448, + -0.06214935705065727, + 0.042675912380218506, + -0.002387512242421508, + 0.03468039259314537, + 0.055267397314310074, + -0.017738917842507362, + -0.03823193535208702, + -0.035165783017873764, + -0.07704415917396545, + 0.17336824536323547, + 0.085908904671669, + -0.014627894386649132, + -0.06946154683828354, + -0.09298597276210785, + 0.10219079256057739, + 0.0032926856074482203, + -0.14382252097129822, + -0.02091677486896515, + 0.08752000331878662, + 0.17398592829704285, + 0.007514073979109526, + -0.017070455476641655, + 0.006985836662352085, + 0.11117805540561676, + -0.005598222836852074, + 0.10442517697811127, + 0.045129984617233276, + 0.06134156882762909, + 0.027165057137608528, + 0.012549011036753654, + 0.06926406919956207, + 0.019101139158010483, + 0.015344534069299698, + -0.06840186566114426, + 0.018872717395424843, + 0.006669655907899141, + -0.05188501626253128, + 0.04140395671129227, + -0.004680470563471317, + -0.009352735243737698, + -0.012629471719264984, + -0.018779274076223373, + -0.04645264893770218, + -0.02054588496685028, + -0.027635712176561356, + 0.012356160208582878, + -0.009202951565384865, + 0.01766585186123848, + 0.10236281156539917, + 0.05875537171959877, + 0.006056458689272404, + 0.04346970096230507, + -0.021999120712280273, + -0.06923200190067291, + -0.006203395314514637, + 0.04469767212867737, + -0.03433457389473915, + 0.07388408482074738, + 0.021825894713401794, + -0.03577183932065964, + 0.10948977619409561, + 0.033876899629831314, + 0.022338975220918655, + 0.013979647308588028, + -0.14595705270767212, + 0.10110965371131897, + 0.08872570097446442, + -0.017452171072363853, + 0.03066416271030903, + 0.014129428192973137, + 0.08227038383483887, + 0.10475742816925049, + -0.15073342621326447, + -0.05055554583668709, + 0.03314922749996185, + 2.4902168661355972e-05, + 0.02677762880921364, + 0.06092622131109238, + 0.001700022374279797, + -0.029652591794729233, + 0.09441964328289032, + -0.08368164300918579, + -0.07247618585824966, + -0.04964471235871315, + 0.05269414186477661, + -0.07956992834806442, + 0.006856137420982122, + 0.05506017059087753, + -0.005718818865716457, + -0.025411920621991158, + 0.06056251376867294, + -0.010853514075279236, + 0.013400735333561897, + 0.025045031681656837, + -0.05244510993361473, + 0.038665324449539185, + -0.05577777326107025, + -0.0031976664904505014, + 0.05971081927418709, + 0.04759639501571655, + 0.046779509633779526, + -0.002805879805237055, + -0.04341663047671318, + -0.06454512476921082, + 0.001617221161723137, + 0.06299180537462234, + 0.014177510514855385, + -0.019614066928625107, + 0.00024880608543753624, + -0.05706607550382614, + -0.07140447199344635, + 0.0518784299492836, + -0.011081857606768608, + 0.10744550079107285, + 0.010400813072919846, + -0.02988320402801037, + 0.13033558428287506, + -0.0014120237901806831, + -0.020904697477817535, + -0.0692158043384552, + -0.0308064054697752, + 0.015778839588165283, + 0.024709677323698997, + -0.08348163962364197, + -0.07419822365045547, + 0.02880706638097763, + 0.007583524566143751, + 0.011873099021613598, + 0.01575925573706627, + 0.04312850162386894, + -0.010429495945572853, + 0.037689998745918274, + -0.07981939613819122, + 0.03625351935625076, + -0.09346616268157959, + -0.04569482058286667, + -0.014393470250070095, + -0.050761498510837555, + 0.02313956245779991, + 0.10098429024219513, + -0.0046724844723939896, + -0.03694465756416321, + 0.02082902565598488, + -0.11700962483882904, + -0.05665389448404312, + 0.09227119386196136, + 0.09701196849346161, + 0.016451703384518623, + 0.0752602219581604, + 0.06502072513103485, + -0.06645902246236801, + 0.05917561799287796, + 0.06014357879757881, + 0.1082269549369812, + -0.03990686684846878, + 0.02011851780116558, + -0.06517590582370758, + 0.039902880787849426, + 0.044074639678001404, + -0.1100197583436966, + -0.11120107769966125, + -0.04242481663823128, + -0.03375177085399628, + 0.07429786026477814, + -0.01551996823400259, + 0.004195597488433123, + 0.023307176306843758, + -0.06684321165084839, + -0.07075336575508118, + -0.09011738747358322, + 0.11423295736312866, + -0.008603518828749657, + -0.06628627330064774, + -0.059577569365501404, + 0.05242491513490677, + 0.04369697719812393, + 0.03867795690894127, + -0.02787746489048004, + 0.040127720683813095, + 0.03824784606695175, + -0.08688057214021683, + -0.05431417375802994, + 0.03451377898454666, + -0.01647210493683815, + -0.08394553512334824, + 0.01727335713803768, + -0.09145916998386383, + 0.14186407625675201, + -0.07816192507743835, + 0.13590964674949646, + -0.034235186874866486, + -0.0706147849559784, + -0.08537694811820984, + 0.06276419758796692, + -0.015496889129281044, + 0.019552160054445267, + 0.04243379831314087, + 0.04914851114153862, + 0.012894198298454285, + -0.026504509150981903, + 0.08944068849086761, + 0.000611976720392704, + -0.011331465095281601, + -0.0376971960067749, + -0.009449148550629616, + -0.04812125861644745, + -0.002982812002301216, + -0.010595280677080154, + -0.10758279263973236, + 0.025325309485197067, + -0.0011015544878318906, + -0.023155320435762405, + 0.06819279491901398, + 0.10175779461860657, + 0.06305922567844391, + -0.12680867314338684 + ] + }, + "p244_362.wav": { + "name": "p244", + "embedding": [ + 0.03714986890554428, + 0.11861540377140045, + -0.02694416418671608, + 0.018069982528686523, + -0.06029801815748215, + 0.06273024529218674, + -0.09477032721042633, + 0.13931161165237427, + -0.03693581372499466, + 0.13718795776367188, + -0.08105975389480591, + 0.11021724343299866, + -0.062452685087919235, + -0.1252080649137497, + -0.012359030544757843, + 0.03384510055184364, + -0.0191726703196764, + -0.0022099781781435013, + -0.061176497489213943, + -0.05286918208003044, + 0.020209483802318573, + 0.016866516321897507, + 0.006714319810271263, + -0.005302141886204481, + 0.016877098008990288, + 0.06890036165714264, + -0.016572443768382072, + 0.02256537787616253, + -0.005866106599569321, + -0.03498264029622078, + -0.04177607595920563, + 0.09079831838607788, + -0.043500836938619614, + 0.014600591734051704, + 0.044675786048173904, + -0.0011057229712605476, + -0.014213219285011292, + -0.029972242191433907, + -0.005092155653983355, + 0.0165712907910347, + -0.06285179406404495, + 0.05990879610180855, + 0.013404877856373787, + -0.02127569355070591, + 0.03938429802656174, + 0.017529966309666634, + 0.0025645866990089417, + -0.0315263532102108, + -0.0941479504108429, + 0.14149542152881622, + 0.07550904899835587, + -0.02064705826342106, + -0.06563283503055573, + -0.04693109542131424, + 0.10806945711374283, + -0.014377479441463947, + -0.10845473408699036, + -0.028144216164946556, + 0.06368552148342133, + 0.12150625884532928, + -0.04792851209640503, + -0.03814571350812912, + 0.01005981769412756, + 0.1209573745727539, + 0.045149363577365875, + 0.08341637253761292, + 0.073396697640419, + 0.1257757693529129, + -0.05149020254611969, + 0.0047470335848629475, + 0.06224173307418823, + 0.05636017024517059, + 0.08150970935821533, + -0.004099342506378889, + 0.009345509111881256, + -0.02637176774442196, + 0.0007333536632359028, + 0.0012962855398654938, + -0.0281669944524765, + -0.049601804465055466, + -0.019783865660429, + -0.006203534081578255, + -0.01857660338282585, + -0.002953978255391121, + -0.016848746687173843, + 0.06084948778152466, + 0.08057194203138351, + -0.02419147826731205, + 0.07164037227630615, + 0.053120002150535583, + -0.0002075880765914917, + 0.06655681878328323, + -0.0820050835609436, + -0.060152534395456314, + 0.014284870587289333, + -0.02120385505259037, + 0.04449407011270523, + 0.0728786438703537, + 0.03976330906152725, + 0.017309065908193588, + 0.11342354118824005, + 0.039738647639751434, + 0.012049498036503792, + 0.025491636246442795, + -0.07365502417087555, + 0.14513546228408813, + 0.0999944806098938, + -0.05388166755437851, + 0.02957596816122532, + -0.015162109397351742, + 0.054915815591812134, + 0.04895123094320297, + -0.10357514023780823, + -0.06921754032373428, + -0.0004478837363421917, + 0.024426940828561783, + -0.02955877222120762, + 0.08053833246231079, + -0.008099090307950974, + 0.017462952062487602, + 0.1267172396183014, + -0.07129847258329391, + -0.047261983156204224, + -0.03093167021870613, + 0.030397800728678703, + -0.0729895532131195, + 0.047438330948352814, + 0.07170914858579636, + 0.010131323710083961, + 0.02670990489423275, + 0.09648784250020981, + -0.00031225383281707764, + -0.004033057484775782, + 0.015619473531842232, + -0.043840061873197556, + 0.00024279503850266337, + -0.004729769192636013, + -0.0022626626305282116, + 0.047340791672468185, + 0.044742316007614136, + 0.07039082795381546, + -0.010655401274561882, + 0.0035246331244707108, + -0.09063299000263214, + 0.035034943372011185, + 0.05182880908250809, + 0.0462273508310318, + -0.022194791585206985, + -0.004890982992947102, + -0.03134872764348984, + -0.07135814428329468, + 0.015117624774575233, + -0.0014271652325987816, + 0.07455414533615112, + -0.05122922360897064, + -0.004802582785487175, + 0.14125652611255646, + 0.03219471871852875, + -0.0038775685243308544, + -0.06265702843666077, + -0.03045324981212616, + -0.0151737742125988, + 0.04008708521723747, + -0.11106640100479126, + -0.1059940829873085, + -0.022385109215974808, + 0.030467946082353592, + -0.00916038267314434, + 0.07014982402324677, + 0.03957320749759674, + -0.001113635953515768, + 0.03728679567575455, + -0.03269844502210617, + 0.023429932072758675, + -0.07356943935155869, + -0.045245274901390076, + -0.023619238287210464, + -0.05043447017669678, + -0.015969255939126015, + 0.0663817822933197, + -0.002460706979036331, + 0.03434757515788078, + 0.0013443343341350555, + -0.08223195374011993, + -0.07770854234695435, + 0.046657003462314606, + 0.047073714435100555, + -0.017923103645443916, + 0.03930729255080223, + 0.08944554626941681, + -0.0469549298286438, + 0.03953076899051666, + 0.07125431299209595, + 0.1110820472240448, + -0.03320571780204773, + 0.03872177377343178, + -0.07537054270505905, + 0.06179335340857506, + 0.07532834261655807, + -0.09486472606658936, + -0.10171042382717133, + -0.07866500318050385, + -0.028609924018383026, + 0.02569190412759781, + -0.046558927744627, + 0.003873845562338829, + 0.02945076674222946, + -0.013101544231176376, + -0.05669301375746727, + -0.09358786791563034, + 0.08399897813796997, + -0.04926712065935135, + 0.00591583177447319, + -0.08540445566177368, + 0.04149056226015091, + 0.05383109673857689, + 0.04541078209877014, + -0.04073396325111389, + 0.016913186758756638, + 0.06351201981306076, + -0.0194476917386055, + 0.024849308654665947, + 0.06731212139129639, + 0.03595453500747681, + -0.07395228743553162, + -0.018031014129519463, + -0.07708698511123657, + 0.07212372124195099, + -0.026801716536283493, + 0.1407599151134491, + 0.021320484578609467, + -0.045722898095846176, + -0.06706468015909195, + 0.04540078341960907, + -0.025644458830356598, + 0.04586338996887207, + 0.03935934603214264, + 0.05735268443822861, + 0.022805247455835342, + -0.04245341941714287, + 0.12603536248207092, + 0.023159151896834373, + -0.0430176705121994, + -0.05810045450925827, + -0.050544872879981995, + -0.06093861907720566, + 0.010261114686727524, + 0.033409520983695984, + -0.08241680264472961, + -0.022583546116948128, + -0.006148810498416424, + -0.008769982494413853, + 0.07730481028556824, + 0.12032492458820343, + 0.09402702748775482, + -0.09408625960350037 + ] + }, + "p244_402.wav": { + "name": "p244", + "embedding": [ + 0.0508735328912735, + 0.07379981130361557, + -0.0406593456864357, + 0.037621837109327316, + -0.036522991955280304, + 0.05845237895846367, + -0.1042163074016571, + 0.09248632192611694, + -0.0330301970243454, + 0.1548629105091095, + -0.06278659403324127, + 0.12126767635345459, + 0.00612430227920413, + -0.16300934553146362, + -0.025052737444639206, + 0.0379757396876812, + -0.03638918325304985, + -0.012205805629491806, + -0.048974018543958664, + -0.022220304235816002, + 0.05700377747416496, + 0.0723387822508812, + 0.032509442418813705, + -0.04959699138998985, + 0.02640809491276741, + 0.055027998983860016, + -0.02195710502564907, + 0.01272258348762989, + -0.008890101686120033, + -0.12577980756759644, + -0.06351986527442932, + 0.09425278753042221, + -0.03645401448011398, + 0.03239458054304123, + 0.01819569244980812, + 0.008899547159671783, + 0.010858158580958843, + -0.05905009061098099, + -0.0254974327981472, + 0.02161114476621151, + -0.03308264911174774, + 0.05033128708600998, + -0.0018922369927167892, + -0.04131113737821579, + 0.05364016443490982, + -0.016715360805392265, + -0.017162229865789413, + -0.02491765096783638, + -0.08130045980215073, + 0.1714319884777069, + 0.05640130490064621, + 0.013079941272735596, + -0.06929761916399002, + -0.08488892018795013, + 0.08526989072561264, + -0.009844035841524601, + -0.12087604403495789, + -3.451605880400166e-05, + 0.043561987578868866, + 0.14840668439865112, + -0.006341175641864538, + -0.051768358796834946, + 0.045168694108724594, + 0.08870804309844971, + 0.02943137288093567, + 0.06059722602367401, + 0.08375724405050278, + 0.07937578856945038, + 0.0016159487422555685, + 0.004422195255756378, + 0.031079735606908798, + 0.11223737895488739, + 0.10097592324018478, + -0.028863202780485153, + 0.029681768268346786, + 0.0026491829194128513, + -0.05049065500497818, + -0.025705374777317047, + -0.04260547086596489, + -0.025787746533751488, + 0.000731926120352, + -0.012470347806811333, + 0.03584346920251846, + 0.013764582574367523, + -0.04847987741231918, + 0.02870183251798153, + 0.0612388513982296, + -0.04680672287940979, + 0.03681580722332001, + 0.052709661424160004, + 0.04116778075695038, + 0.036362018436193466, + -0.08563335984945297, + -0.09518816322088242, + 0.04457642138004303, + 0.03660421073436737, + 0.00043100863695144653, + 0.06126052886247635, + 0.06995650380849838, + -0.03779887780547142, + 0.09688234329223633, + 0.017242174595594406, + 0.008235731162130833, + -0.010043280199170113, + -0.08334952592849731, + 0.08413618803024292, + 0.14761894941329956, + -0.014356866478919983, + 0.045407623052597046, + -0.056622978299856186, + 0.08711928129196167, + 0.07282703369855881, + -0.14034190773963928, + -0.07816387712955475, + 0.006479734554886818, + -0.026812221854925156, + 0.02828856185078621, + 0.1035076230764389, + 0.014560109935700893, + 0.04915304109454155, + 0.09340524673461914, + -0.11248641461133957, + -0.049020834267139435, + -0.045334458351135254, + 0.03757977485656738, + -0.09982053935527802, + 0.08366958796977997, + 0.03844127804040909, + -0.0037756150122731924, + -0.0020173736847937107, + 0.047444261610507965, + -0.03268556669354439, + 0.02319594845175743, + -0.032461978495121, + -0.045328907668590546, + -0.013971710577607155, + -0.044613298028707504, + -0.01694551669061184, + 0.05389242619276047, + 0.0199870802462101, + 0.051351398229599, + -0.022664040327072144, + -0.04059381037950516, + -0.12111130356788635, + 0.02624417096376419, + 0.03731387481093407, + 0.03083357959985733, + -0.016961323097348213, + -0.025061853229999542, + -0.029168304055929184, + -0.08020936697721481, + 0.06208762526512146, + -0.046974681317806244, + 0.0634661316871643, + 0.022950230166316032, + 0.007771766744554043, + 0.1115635484457016, + 0.010986441746354103, + -0.02087082341313362, + -0.022358935326337814, + -0.037896811962127686, + 0.008442696183919907, + 0.04136109724640846, + -0.0935450941324234, + -0.08827902376651764, + -0.018671076744794846, + -0.019474998116493225, + -0.011375385336577892, + 0.06158566474914551, + 0.05662206932902336, + 0.017474018037319183, + 0.024866504594683647, + -0.06552673876285553, + -0.021970730274915695, + -0.12603862583637238, + -0.07713282108306885, + -0.012118677608668804, + -0.07413344085216522, + -0.000942267186474055, + 0.10987742245197296, + 0.01569310389459133, + 0.0030647581443190575, + -0.07118270546197891, + -0.051316093653440475, + -0.07931159436702728, + 0.04717697948217392, + 0.03994818776845932, + 0.021829068660736084, + 0.008511672727763653, + 0.04116184636950493, + 0.011327322572469711, + 0.06375991553068161, + 0.06705322116613388, + 0.09342639893293381, + -0.0019416648428887129, + 0.03156933933496475, + -0.06465055793523788, + 0.1387975662946701, + 0.10464684665203094, + -0.023013398051261902, + -0.11047522723674774, + -0.04860864579677582, + -0.09196440875530243, + 0.05945059657096863, + -0.033380985260009766, + -0.006021165754646063, + 0.03114924393594265, + -0.006030192598700523, + -0.11608670651912689, + -0.08018843829631805, + 0.1011839359998703, + -0.019012505188584328, + -0.03212039917707443, + -0.08153139799833298, + 0.04545474797487259, + 0.07152257859706879, + 0.03886404260993004, + -0.03274347633123398, + 0.023190123960375786, + 0.06713353097438812, + -0.05542673170566559, + 0.011438285931944847, + 0.04052858054637909, + 0.019948141649365425, + -0.08865487575531006, + -0.00962294451892376, + -0.06575658917427063, + 0.043593283742666245, + -0.07244224846363068, + 0.12439824640750885, + 0.0002766617981251329, + -0.07151350378990173, + -0.07043205201625824, + 0.09591775387525558, + -0.0038696867413818836, + 0.03135880455374718, + 0.039293088018894196, + 0.06671574711799622, + 0.052934497594833374, + -0.12110096216201782, + 0.06568339467048645, + 0.05482257530093193, + -0.004840767942368984, + -0.06641611456871033, + -0.07954990863800049, + -0.020583869889378548, + 0.022653883323073387, + -0.007633887231349945, + -0.06359496712684631, + 0.0257723368704319, + 0.004820989444851875, + 0.037046290934085846, + 0.03749874234199524, + 0.11962032318115234, + 0.026607941836118698, + -0.11625548452138901 + ] + }, + "p244_361.wav": { + "name": "p244", + "embedding": [ + 0.011926394887268543, + 0.06210249662399292, + -0.017835557460784912, + -0.01735677197575569, + -0.020619401708245277, + 0.028118301182985306, + -0.13155071437358856, + 0.0676778256893158, + -0.03457015007734299, + 0.13890595734119415, + -0.011586526408791542, + 0.08402418345212936, + -0.02614414319396019, + -0.1015537828207016, + -0.00249448511749506, + 0.050869256258010864, + -0.07413353025913239, + -0.029104825109243393, + 0.011877566576004028, + -0.07702042907476425, + 0.014003106392920017, + 0.004240121692419052, + 0.030682045966386795, + -0.05778014659881592, + 0.010506515391170979, + 0.07814309000968933, + 0.005116107873618603, + -0.010419691912829876, + -0.008949613198637962, + -0.07176841795444489, + 0.006712498143315315, + 0.061862438917160034, + -0.02689170278608799, + -0.008617695420980453, + 0.020216556265950203, + -0.0031817900016903877, + -0.00239486969076097, + -0.024698350578546524, + 0.025762923061847687, + 0.05596732720732689, + -0.04905436187982559, + 0.08756843209266663, + 0.03150226175785065, + -0.001595320412889123, + 0.04404531791806221, + -0.054801687598228455, + -0.04728090018033981, + 0.037360504269599915, + -0.0491497702896595, + 0.1084604412317276, + 0.06694461405277252, + -0.012261574156582355, + -0.04498547315597534, + -0.006163235753774643, + 0.07266216725111008, + 0.026168860495090485, + -0.12393708527088165, + 0.000909857451915741, + 0.017232131212949753, + 0.10199634730815887, + -0.014873003587126732, + -0.052437350153923035, + 0.022934047505259514, + 0.09842145442962646, + 0.007212614640593529, + 0.0503145270049572, + 0.07597789168357849, + 0.06822536885738373, + 0.0014334091683849692, + -0.02090320736169815, + 0.05105771869421005, + 0.08020811527967453, + 0.02390703186392784, + -0.00915088877081871, + 0.048017989844083786, + -0.04172316938638687, + -0.012648390606045723, + -0.05305678769946098, + -0.0018478273414075375, + -0.07383989542722702, + -0.07785394042730331, + -0.025790760293602943, + 0.01661345735192299, + 0.06963403522968292, + 0.023828279227018356, + -0.014390707015991211, + 0.05120624229311943, + -0.043101049959659576, + 0.032904960215091705, + 0.0441870354115963, + 0.015095490962266922, + 0.012522710487246513, + -0.05493451654911041, + -0.03461775556206703, + 0.0038149338215589523, + -0.009417260996997356, + 0.08902069181203842, + 0.028932757675647736, + 0.03136727213859558, + 0.02723829448223114, + 0.0671997219324112, + 0.05518867075443268, + 0.0028429776430130005, + -0.037112124264240265, + -0.06971690058708191, + 0.08399337530136108, + 0.09831470251083374, + -0.04336649179458618, + 0.03436507657170296, + 0.003378668799996376, + 0.03170507028698921, + -0.015983428806066513, + -0.09478430449962616, + -0.026415903121232986, + -0.00772077776491642, + 0.06072218716144562, + 0.005304585210978985, + 0.12128622829914093, + 0.04068703576922417, + 0.044860366731882095, + 0.07096271216869354, + -0.024594897404313087, + -0.037789031863212585, + -0.07295336574316025, + 0.05428667366504669, + -0.08637398481369019, + 0.0680186003446579, + 0.05840304493904114, + 0.024261580780148506, + 0.0199790820479393, + 0.06717151403427124, + 0.028107551857829094, + 0.005176726263016462, + -0.04185377061367035, + -0.019797256216406822, + 0.028216931968927383, + 0.0006682863458991051, + 0.05167779326438904, + 0.07252205908298492, + -0.0023833205923438072, + 0.09705781936645508, + 0.02792045846581459, + 0.0002648690715432167, + -0.06792549043893814, + 0.017863335087895393, + 0.013883218169212341, + 0.020725630223751068, + -0.03879057615995407, + -0.04778476431965828, + 0.015979815274477005, + -0.0791681557893753, + -0.01946365088224411, + -0.02372746355831623, + 0.08049359917640686, + 0.008949203416705132, + -0.027766037732362747, + 0.09724756330251694, + 0.03667234256863594, + -0.01743493601679802, + 0.01892685703933239, + -0.033436112105846405, + -0.004656711593270302, + 0.06611120700836182, + -0.16065530478954315, + -0.06247282773256302, + -0.009763971902430058, + 0.04171407222747803, + 0.027861274778842926, + 0.02400818094611168, + 0.08764767646789551, + -0.00726656336337328, + 0.029627498239278793, + 0.02908611111342907, + 0.011773352511227131, + -0.0522930733859539, + -0.07493104040622711, + -0.03004358522593975, + -0.08556779474020004, + -0.06650198251008987, + 0.06261762231588364, + -0.03993543982505798, + 0.06129869818687439, + -0.026727210730314255, + -0.03586728498339653, + -0.03839658200740814, + 0.05009118467569351, + 0.012728995643556118, + -0.042257070541381836, + -0.0008904095739126205, + 0.08502168208360672, + 0.015666598454117775, + -0.020299626514315605, + 0.025418436154723167, + 0.09600627422332764, + -0.07311512529850006, + 0.004467342980206013, + -0.08632595837116241, + 0.06632199883460999, + 0.083644337952137, + -0.03791866451501846, + -0.03993052989244461, + -0.053744133561849594, + -0.051202625036239624, + 0.060480110347270966, + -0.06026186794042587, + -0.01937800645828247, + -0.00283963605761528, + -0.02168123982846737, + -0.07485203444957733, + -0.0799861028790474, + 0.06528396904468536, + -0.04957328736782074, + 0.0045782532542943954, + -0.041151441633701324, + 0.014797884039580822, + 0.02262934483587742, + 0.05956597626209259, + -0.06028364598751068, + 0.071349136531353, + 0.024354899302124977, + -0.02623426541686058, + 0.04037865996360779, + 0.026476269587874413, + 0.0479184091091156, + -0.040939413011074066, + -0.07319542020559311, + -0.08010071516036987, + 0.03327075392007828, + -0.04423072561621666, + 0.07101716846227646, + 0.023721270263195038, + -0.04136078432202339, + -0.03521153703331947, + -0.017769034951925278, + -0.03665494918823242, + 0.035116832703351974, + 0.07723022997379303, + 0.06804180145263672, + 0.03684590384364128, + -0.014876087196171284, + 0.0800434947013855, + 0.03677428141236305, + 0.033866897225379944, + -0.022375160828232765, + 0.02145783230662346, + -0.02475687302649021, + 0.035890039056539536, + 0.018056144937872887, + -0.07325161248445511, + 0.04230191931128502, + -0.009376225993037224, + 0.03160526230931282, + 0.04663422703742981, + 0.04431857913732529, + 0.04164893552660942, + -0.049721576273441315 + ] + }, + "p244_291.wav": { + "name": "p244", + "embedding": [ + 0.05653196573257446, + 0.05744553357362747, + -0.010101023130118847, + 0.03477645665407181, + 0.009010691195726395, + 0.03316812589764595, + -0.16285166144371033, + 0.08147744089365005, + -0.009365832433104515, + 0.13844230771064758, + -0.07716867327690125, + 0.07004237174987793, + -0.00985901802778244, + -0.17918479442596436, + -0.022741595283150673, + 0.06453901529312134, + -0.04945105314254761, + -0.029401374980807304, + -0.06174631416797638, + -0.00577281229197979, + 0.026523195207118988, + 0.06619623303413391, + 0.04189817234873772, + -0.02920486405491829, + 0.001042497344315052, + 0.05541340261697769, + -0.02161526493728161, + 0.044304490089416504, + -0.009373464621603489, + -0.04095196723937988, + -0.0032643554732203484, + 0.10909703373908997, + -0.009142058901488781, + -0.007068801671266556, + 0.019824158400297165, + 0.033456288278102875, + 0.01448397058993578, + -0.07869595289230347, + -0.01614023558795452, + -0.007305679377168417, + -0.04907343536615372, + 0.06283993273973465, + 0.011824797838926315, + -0.003527384717017412, + 0.06333991885185242, + -0.011748899705708027, + -0.042461931705474854, + -0.059883859008550644, + -0.12348918616771698, + 0.16513605415821075, + 0.07370646297931671, + 0.028700843453407288, + -0.0699508860707283, + -0.04859967529773712, + 0.07200693339109421, + -0.024003902450203896, + -0.08906427025794983, + -0.06390678137540817, + 0.07664825767278671, + 0.16959789395332336, + -0.01744137518107891, + -0.027310781180858612, + 0.06106606125831604, + 0.10061557590961456, + 0.04850436747074127, + 0.07381200790405273, + 0.07796597480773926, + 0.08826704323291779, + 0.009567253291606903, + -0.024113329127430916, + 0.031289830803871155, + 0.04872254282236099, + 0.04984084516763687, + -0.004073705989867449, + 0.02214059792459011, + 0.03283502534031868, + -0.054000403732061386, + -0.01370060071349144, + -0.03259289637207985, + -0.004622192122042179, + 0.01529073528945446, + -0.016702119261026382, + -0.005910279229283333, + 0.05146987736225128, + -0.04720882326364517, + 0.01871165633201599, + 0.04463500529527664, + -0.03925901651382446, + 0.06355088204145432, + 0.03098701313138008, + 0.029529860243201256, + 0.025433247908949852, + -0.043836772441864014, + -0.06708760559558868, + 0.018870966508984566, + 0.04181307926774025, + -0.040593285113573074, + 0.032822348177433014, + 0.031903281807899475, + -0.05954078957438469, + 0.11365513503551483, + -0.013360017910599709, + -0.02449231594800949, + 0.019175786525011063, + -0.08929558843374252, + 0.0828859731554985, + 0.10547081381082535, + -0.014093929901719093, + 0.023713380098342896, + -0.03266219049692154, + -0.0021490007638931274, + 0.07845509052276611, + -0.1201271265745163, + -0.06347402930259705, + 0.0733075886964798, + 0.011677144095301628, + 0.02490481361746788, + 0.11678928136825562, + 0.04689744859933853, + 0.031108636409044266, + 0.09833311289548874, + -0.08828514814376831, + -0.0675790011882782, + 0.0002295470330864191, + 0.06222303956747055, + -0.08815935254096985, + 0.044006749987602234, + 0.0561574324965477, + 0.009411957114934921, + -0.022000424563884735, + 0.06423250585794449, + -0.0007938900380395353, + 0.0011680489405989647, + -0.058905091136693954, + -0.025374790653586388, + 0.04440532624721527, + -0.05525900423526764, + -0.04058346897363663, + 0.027781018987298012, + 0.03461107611656189, + 0.025873281061649323, + -0.006481332238763571, + -0.06672745943069458, + -0.14000210165977478, + -0.003837387077510357, + 0.04243334382772446, + 0.06932566314935684, + -0.011297444812953472, + 0.0016276300884783268, + -0.0831928551197052, + -0.054975565522909164, + 0.03477539122104645, + -0.07214365154504776, + 0.07728385180234909, + -0.003395428415387869, + -0.02345716580748558, + 0.09611286967992783, + -0.055531494319438934, + 0.024228377267718315, + -0.015129270032048225, + -0.00016601057723164558, + 0.006085158325731754, + 0.01693904772400856, + -0.03595491126179695, + -0.06455264985561371, + 0.0006522396579384804, + 0.03174114599823952, + 0.00576036749407649, + 0.042818546295166016, + 0.03130481392145157, + 0.01311424095183611, + -0.010274097323417664, + -0.07109777629375458, + 0.0022865617647767067, + -0.08382311463356018, + -0.04510429874062538, + 0.02398776076734066, + -0.008675994351506233, + 0.004675428383052349, + 0.09344565868377686, + 0.034400805830955505, + 0.014322618022561073, + -0.0612013153731823, + -0.10590728372335434, + -0.09243351966142654, + 0.06331376731395721, + 0.09841512888669968, + -0.02659648284316063, + 0.027998030185699463, + 0.03496672213077545, + -0.003518480807542801, + 0.043661653995513916, + 0.0556676983833313, + 0.08575332164764404, + 0.007445987313985825, + -0.014939786866307259, + -0.07363130897283554, + 0.1023159995675087, + 0.09045994281768799, + -0.046829983592033386, + -0.05536901578307152, + 0.0099516985937953, + -0.08499684929847717, + 0.03546002507209778, + -0.011773918755352497, + 0.007577155716717243, + 0.06328392028808594, + -0.03762400150299072, + -0.12730145454406738, + -0.09601770341396332, + 0.05835698917508125, + -0.05064333230257034, + -0.025512665510177612, + -0.04877271503210068, + 0.043280553072690964, + 0.04968026280403137, + 0.04338892549276352, + -0.006041164975613356, + -0.010160963051021099, + 0.009188663214445114, + -0.06626776605844498, + -0.006650590803474188, + 0.03760852664709091, + 0.01120177935808897, + -0.12998977303504944, + 0.01460969913750887, + -0.07528911530971527, + 0.09206510335206985, + -0.05481262505054474, + 0.09221293032169342, + 0.022736545652151108, + -0.03006705641746521, + -0.09784440696239471, + 0.03020942211151123, + -0.021444763988256454, + 0.07392783463001251, + 0.017632948234677315, + 0.04561767354607582, + 0.062301427125930786, + -0.07722395658493042, + 0.06893503665924072, + 0.047920286655426025, + -0.005739230662584305, + -0.08970271050930023, + -0.060988862067461014, + -0.04112662374973297, + 0.028439588844776154, + -0.006277387961745262, + -0.057027190923690796, + 0.0037156955804675817, + 0.01790113002061844, + -0.024796364828944206, + 0.045733410865068436, + 0.10559581220149994, + 0.02144555002450943, + -0.13053618371486664 + ] + }, + "p244_017.wav": { + "name": "p244", + "embedding": [ + 0.04551132768392563, + 0.06415122002363205, + -0.017733527347445488, + 0.03264474496245384, + -0.07500273734331131, + 0.020579088479280472, + -0.1253458857536316, + 0.14299044013023376, + -0.00961694959551096, + 0.13035373389720917, + -0.07003148645162582, + 0.13815540075302124, + -0.02762509696185589, + -0.19022342562675476, + 0.004209984093904495, + 0.053910475224256516, + -0.017790915444493294, + -0.03436313569545746, + -0.021709471940994263, + -0.04708186909556389, + 0.0494837760925293, + 0.058601364493370056, + 0.04033002257347107, + -0.0033888574689626694, + 0.01651679538190365, + 0.08687520027160645, + -0.006717074662446976, + 0.03210324048995972, + -0.006902260240167379, + -0.0688478872179985, + -0.03937457501888275, + 0.08154523372650146, + -0.047710441052913666, + -0.0034445729106664658, + 0.022727204486727715, + -0.028142675757408142, + -0.01970871165394783, + -0.04205350577831268, + -0.024377483874559402, + 0.0020326629746705294, + -0.05211620032787323, + 0.06269744038581848, + 0.01649254932999611, + -0.02494468353688717, + 0.05550023913383484, + 0.01424156129360199, + -0.033675581216812134, + -0.039072006940841675, + -0.12252863496541977, + 0.15420544147491455, + 0.07669760286808014, + 0.009820655919611454, + -0.0753401592373848, + -0.05156977102160454, + 0.09463080018758774, + -0.019091788679361343, + -0.10122635215520859, + -0.03978918120265007, + 0.07927292585372925, + 0.1420087218284607, + -0.033467408269643784, + -0.04978711158037186, + 0.045224979519844055, + 0.09982176870107651, + 0.047859981656074524, + 0.07166547328233719, + 0.08884882926940918, + 0.10237070173025131, + -0.03612620383501053, + 0.01046236976981163, + 0.03317948430776596, + 0.08862706273794174, + 0.062111109495162964, + -0.003372638951987028, + 0.01489005982875824, + 0.0020809494890272617, + -0.010987769812345505, + -0.022202875465154648, + -0.03120948001742363, + -0.026399977505207062, + -0.0015130944084376097, + -8.469614840578288e-05, + 0.025568857789039612, + 0.0031969361007213593, + -0.025830646976828575, + 0.06517083197832108, + 0.061920296400785446, + -0.008120927959680557, + 0.06156442314386368, + 0.004203286953270435, + -0.0047052945010364056, + 0.07692272961139679, + -0.09793667495250702, + -0.0626755803823471, + 0.03350024297833443, + 0.007563699968159199, + 0.030076518654823303, + 0.07627351582050323, + 0.04246315360069275, + -0.021636895835399628, + 0.13168179988861084, + 0.037125565111637115, + -0.004069649614393711, + 0.0195348858833313, + -0.08348248898983002, + 0.1167168915271759, + 0.11068558692932129, + -0.030621081590652466, + 0.0626697838306427, + -0.0600992813706398, + 0.07373440265655518, + 0.044265203177928925, + -0.12565574049949646, + -0.05848854035139084, + -0.00881976168602705, + 0.0045157852582633495, + -0.023772848770022392, + 0.13803784549236298, + -0.009123890660703182, + 0.06756705045700073, + 0.13475897908210754, + -0.10733338445425034, + -0.058913104236125946, + -0.01531960442662239, + 0.04756344109773636, + -0.1066696047782898, + 0.07106006890535355, + 0.06615190207958221, + -0.01328849047422409, + 0.05136212706565857, + 0.06530500948429108, + -0.0272357240319252, + 0.010920132510364056, + 0.0036190941464155912, + -0.05993682146072388, + -0.01378500834107399, + -0.037842459976673126, + -0.0210232213139534, + 0.05585433542728424, + 0.03165086358785629, + 0.056189026683568954, + -0.012611661106348038, + -0.02951662801206112, + -0.13414493203163147, + 0.0244239941239357, + 0.024080296978354454, + 0.06328719109296799, + -0.009367435239255428, + -0.027340954169631004, + -0.03853777050971985, + -0.0716903805732727, + 0.012366360984742641, + -0.003340009367093444, + 0.052719950675964355, + -0.04044071584939957, + 0.010161965154111385, + 0.08515878766775131, + 0.05905775725841522, + -0.004965747706592083, + -0.055269382894039154, + -0.06255163997411728, + -0.005615612026304007, + 0.04623153805732727, + -0.09525196999311447, + -0.0752137154340744, + -0.03790876269340515, + 0.05037284642457962, + -0.036295101046562195, + 0.059920281171798706, + 0.052922483533620834, + 0.031520258635282516, + 0.009990028105676174, + -0.0676911398768425, + 0.022685334086418152, + -0.08050095289945602, + -0.09212951362133026, + 0.007913382723927498, + -0.008901170454919338, + -0.02691173180937767, + 0.06328042596578598, + 0.011979928240180016, + 0.05409592390060425, + -0.05048719048500061, + -0.04822889715433121, + -0.09685957431793213, + 0.034914687275886536, + 0.036640822887420654, + -0.009118038229644299, + 0.05351642891764641, + 0.0505867563188076, + -0.06257537007331848, + 0.0674782544374466, + 0.05028088018298149, + 0.11296842992305756, + -0.027889098972082138, + 0.03151630982756615, + -0.06035736948251724, + 0.08891995251178741, + 0.1049027144908905, + -0.05697165057063103, + -0.08397306501865387, + -0.05400363355875015, + -0.08573877811431885, + 0.06583724170923233, + -0.016489189118146896, + -0.011132235638797283, + 0.032532453536987305, + 0.01319345086812973, + -0.11198969930410385, + -0.07107928395271301, + 0.06660787761211395, + -0.040029145777225494, + -0.006766983773559332, + -0.09840899705886841, + 0.061110369861125946, + 0.09982843697071075, + 0.026168126612901688, + -0.02273973450064659, + -0.030583884567022324, + 0.03935161605477333, + -0.025035209953784943, + 0.02752809040248394, + 0.06146261841058731, + 0.06354182213544846, + -0.08621850609779358, + -0.02619505487382412, + -0.08017340302467346, + 0.02744808793067932, + -0.025768090039491653, + 0.13682353496551514, + 0.020675629377365112, + -0.03231636807322502, + -0.07989175617694855, + 0.05841931328177452, + 0.002659314312040806, + 0.06054389476776123, + 0.03865800052881241, + 0.054399751126766205, + 0.05783791095018387, + -0.08701840043067932, + 0.10963024944067001, + 0.04223506152629852, + -0.04994489252567291, + -0.059356510639190674, + -0.04454854130744934, + -0.043831657618284225, + 0.020010121166706085, + -0.0014113312354311347, + -0.09292681515216827, + -0.03428909555077553, + 0.021666087210178375, + 0.009830035269260406, + 0.05867670476436615, + 0.12548168003559113, + 0.03800232708454132, + -0.10345952957868576 + ] + }, + "p244_424.wav": { + "name": "p244", + "embedding": [ + 0.001892124768346548, + 0.0772138237953186, + -0.05105011910200119, + 0.08649444580078125, + -0.06884513050317764, + -0.0190134197473526, + -0.07367052882909775, + 0.017979174852371216, + 0.022998588159680367, + 0.08416342735290527, + -0.022213542833924294, + 0.07985962927341461, + -0.04986017569899559, + -0.11662525683641434, + -0.006861692760139704, + 0.010529093444347382, + 0.00916682742536068, + -0.004596509039402008, + -0.011971337720751762, + -0.03673101216554642, + -0.03320680186152458, + 0.009705863893032074, + -0.04170793294906616, + 0.005271383561193943, + -0.02524394355714321, + 0.02333664894104004, + -0.04947361722588539, + 0.011702897027134895, + -0.03431544452905655, + -0.041045695543289185, + -0.011258951388299465, + 0.030208313837647438, + -0.025297805666923523, + -0.014371076598763466, + -0.021888524293899536, + 0.0097556347027421, + 0.005079334601759911, + -0.018675310537219048, + -0.02694312483072281, + -0.025036359205842018, + -0.06483050435781479, + 0.011079924181103706, + 0.038781020790338516, + -0.05759361386299133, + 0.023310624063014984, + -0.001765955239534378, + -0.04806482791900635, + -0.017630165442824364, + -0.03928813710808754, + 0.10365454852581024, + 0.04273460432887077, + 0.06820251792669296, + -0.025177232921123505, + -0.02783232182264328, + 0.10823054611682892, + 0.03038344904780388, + -0.01864982396364212, + -0.04602112993597984, + -0.0005400218069553375, + 0.08031546324491501, + 0.02614920772612095, + 0.021776292473077774, + 0.03543626517057419, + 0.06318740546703339, + 0.01108668465167284, + 0.019740842282772064, + 0.041690222918987274, + 0.06949252635240555, + -0.017195500433444977, + 0.017991041764616966, + 0.07301604002714157, + 0.021120239049196243, + -0.006679270416498184, + 0.025009671226143837, + -0.004963694140315056, + 0.020498983561992645, + 0.013965277932584286, + 0.04474381357431412, + -0.034953176975250244, + -0.017981886863708496, + 0.00047330581583082676, + 0.013516085222363472, + 0.004257809836417437, + -0.047235190868377686, + -0.0456538125872612, + -0.03226173296570778, + 0.08474662899971008, + 0.007308783009648323, + 0.018003705888986588, + 0.02876271866261959, + 0.027806201949715614, + 0.004568150267004967, + -0.04330280050635338, + -0.02593892067670822, + 0.026001999154686928, + 0.003323769196867943, + 0.045396678149700165, + -0.0034433137625455856, + -0.001234445720911026, + -0.005669116508215666, + 0.046726785600185394, + -0.028828799724578857, + 0.037842635065317154, + -0.00912972167134285, + -0.04166071116924286, + -0.0012883618474006653, + 0.04236513748764992, + 0.0365850105881691, + 0.04079907387495041, + 0.02312416583299637, + 0.045103807002305984, + 0.07970334589481354, + -0.03381809592247009, + -0.027355695143342018, + 0.01703854650259018, + 0.03694966062903404, + -0.04440494626760483, + 0.08193200826644897, + 0.004134703427553177, + 0.03884819522500038, + 0.07160670310258865, + 0.00787758082151413, + -0.02921435236930847, + -0.018526839092373848, + -0.0002670101821422577, + -0.020455019548535347, + 0.03478541970252991, + 0.044058382511138916, + -0.02747879922389984, + -0.03507460653781891, + 0.042751893401145935, + -0.014009594917297363, + -0.019881609827280045, + 0.005095541477203369, + 0.012303829193115234, + -0.025181781500577927, + 0.07532091438770294, + -0.06336486339569092, + 0.043386999517679214, + 0.055714838206768036, + -0.01950147934257984, + -0.022999467328190804, + 0.012332761660218239, + -0.059406716376543045, + 0.03855019807815552, + 0.008160186000168324, + -0.0043372660875320435, + 0.07506471872329712, + -0.028780676424503326, + -0.09152845293283463, + -0.05286616086959839, + 0.046648021787405014, + -0.03389543294906616, + 0.08285452425479889, + 0.06334945559501648, + 0.006106425076723099, + 0.040543332695961, + -0.015038829296827316, + -0.004678965546190739, + 0.012173406779766083, + -0.10825236886739731, + 0.01270017959177494, + 0.003984680399298668, + -0.005302663892507553, + -0.011670955456793308, + 0.008671769872307777, + 0.010861430317163467, + -0.021331295371055603, + 0.0015154052525758743, + 0.03517214208841324, + 0.007879979908466339, + 0.03798873722553253, + -0.11924606561660767, + 0.006683839485049248, + -0.01857401430606842, + -0.027625910937786102, + 0.03697021305561066, + -0.04582538083195686, + -0.004122628830373287, + 0.029169471934437752, + 0.026857441291213036, + -0.036605942994356155, + -0.05907382816076279, + -0.05671650916337967, + 0.00041788816452026367, + 0.017625387758016586, + -0.005624011158943176, + -0.0006361128762364388, + -0.009943610057234764, + 0.00891917385160923, + 0.045022912323474884, + 0.007917322218418121, + 0.010795578360557556, + 0.06558217108249664, + -0.03762105107307434, + 0.003218233585357666, + 0.027659520506858826, + 0.1093207448720932, + 0.030215095728635788, + -0.0753413587808609, + -0.06082756817340851, + -0.009038607589900494, + -0.04680025205016136, + 0.03892268240451813, + -0.031270358711481094, + 0.028085455298423767, + 0.008766830898821354, + 0.013674145564436913, + 0.02871040254831314, + -0.1364755779504776, + 0.028236977756023407, + -0.012823724187910557, + -0.04241030663251877, + -0.002849690616130829, + -0.006056215614080429, + 0.030734006315469742, + 0.024353256449103355, + -0.04100526124238968, + -0.031241128221154213, + 0.025435829535126686, + 0.012575473636388779, + 0.034635163843631744, + 0.06672202050685883, + 0.034462615847587585, + -0.009500522166490555, + -0.01987200789153576, + -0.03887777402997017, + 0.023832570761442184, + 0.011506957933306694, + 0.03953535854816437, + 0.021431051194667816, + 0.003945156931877136, + -0.07682430744171143, + 0.06606461107730865, + -0.011586638167500496, + 0.06724752485752106, + -0.009915713220834732, + 0.010711012408137321, + 0.02962656319141388, + -0.021923230960965157, + 0.11724457144737244, + 0.049839720129966736, + -0.02063119038939476, + -0.02429637312889099, + 0.005326147191226482, + -0.031162194907665253, + 0.06698041409254074, + 0.05022807419300079, + -0.04585089161992073, + -0.0038546943105757236, + 0.06947977840900421, + 0.03226684778928757, + 0.08526334166526794, + 0.05644106864929199, + 0.08154194802045822, + 0.06088612973690033 + ] + }, + "p244_132.wav": { + "name": "p244", + "embedding": [ + 0.03260638937354088, + 0.09399698674678802, + -0.035386864095926285, + 0.05806262791156769, + -0.08149316161870956, + 0.043726928532123566, + -0.0940699651837349, + 0.134440615773201, + -0.05114878714084625, + 0.10476505756378174, + -0.08709513396024704, + 0.1573345810174942, + -0.051515739411115646, + -0.16643977165222168, + -0.04075360298156738, + 0.07093706727027893, + -0.01389460451900959, + -0.041025321930646896, + -0.0026325047947466373, + -0.025880133733153343, + 0.030740557238459587, + 0.03304968401789665, + 0.053043920546770096, + 0.04788118973374367, + 0.026182854548096657, + 0.09770189970731735, + -0.002955665113404393, + 0.04950987920165062, + 0.02381107024848461, + -0.04350738972425461, + -0.07612182945013046, + 0.08906009048223495, + -0.06307755410671234, + -0.013278120197355747, + 0.03531384468078613, + -0.007287627086043358, + 0.011101476848125458, + -0.03917499631643295, + -0.017185188829898834, + -0.011529114097356796, + -0.06620696932077408, + 0.06883741170167923, + -0.006378654856234789, + -0.03500991314649582, + 0.04777050018310547, + 0.007460827007889748, + -0.012459388934075832, + -0.013197670690715313, + -0.12156148999929428, + 0.12092535197734833, + 0.060598257929086685, + 0.0007129204459488392, + -0.0844765305519104, + -0.051393844187259674, + 0.11440671235322952, + -0.026712127029895782, + -0.09053613990545273, + -0.03214731067419052, + 0.06702802330255508, + 0.14992451667785645, + -0.019853565841913223, + -0.032586097717285156, + 0.02203180082142353, + 0.09293755143880844, + 0.08520234376192093, + 0.07199826836585999, + 0.07808248698711395, + 0.09867506474256516, + -0.032448358833789825, + 0.008202950470149517, + 0.06359554827213287, + 0.08268047869205475, + 0.061312563717365265, + -0.0198469590395689, + 0.004455184563994408, + 0.008482166565954685, + -0.018621699884533882, + 0.01714889518916607, + -0.0220473725348711, + -0.030542364344000816, + -0.03594156354665756, + -0.008346921764314175, + -0.011205275543034077, + -0.0067113363184034824, + -0.030816983431577682, + 0.08600862324237823, + 0.05690658092498779, + -0.018294651061296463, + 0.07089287787675858, + 0.0367298386991024, + -0.04338241368532181, + 0.07423049956560135, + -0.09959115087985992, + -0.05026960000395775, + 0.02022615820169449, + -0.005251947324723005, + 0.020974071696400642, + 0.08046488463878632, + 0.051035162061452866, + -0.00633549178019166, + 0.12704136967658997, + 0.06459269672632217, + 0.02370535209774971, + 0.03212760388851166, + -0.07726636528968811, + 0.1268271803855896, + 0.10775546729564667, + -0.03617163002490997, + 0.051975004374980927, + 5.0303096941206604e-05, + 0.058961864560842514, + 0.0694785863161087, + -0.11963710188865662, + -0.064275823533535, + 0.003734781639650464, + -0.0014558644033968449, + -0.00025247837766073644, + 0.0831163078546524, + -0.026175325736403465, + 0.04558470845222473, + 0.10177630931138992, + -0.08110617101192474, + -0.06506282836198807, + -0.028316976502537727, + 0.03614886477589607, + -0.07896237820386887, + 0.07235944271087646, + 0.058452311903238297, + 0.019652705639600754, + 0.005900269839912653, + 0.08191858232021332, + -0.016376137733459473, + -0.02049291506409645, + 0.04943307489156723, + -0.0644930750131607, + -0.012972029857337475, + -0.010747896507382393, + -0.014048404060304165, + 0.08476679027080536, + 0.027141321450471878, + 0.06009293720126152, + -0.004161167424172163, + 0.023482363671064377, + -0.12726831436157227, + 0.009498685598373413, + 0.06570904701948166, + 0.06216664984822273, + -0.006843872833997011, + -0.04708636552095413, + -0.05319267511367798, + -0.061546746641397476, + 0.02431337721645832, + 0.024048957973718643, + 0.0908319428563118, + -0.05391200631856918, + 0.013125956989824772, + 0.0983332172036171, + 0.028251992538571358, + -0.010638647712767124, + -0.057336390018463135, + -0.03091302141547203, + -0.004886920098215342, + 0.0541202686727047, + -0.06740494817495346, + -0.1109127402305603, + -0.02370842732489109, + 0.0466248020529747, + -0.015590556897222996, + 0.08520086854696274, + 0.06365678459405899, + 0.0039962646551430225, + 0.013784377835690975, + -0.05601000040769577, + 0.02084384858608246, + -0.08098699897527695, + -0.053172845393419266, + -0.03875025734305382, + -0.028264416381716728, + -0.030976612120866776, + 0.06523030251264572, + 0.044615738093853, + 0.06615976244211197, + -0.0029882071539759636, + -0.06888537108898163, + -0.09621395915746689, + 0.04152441769838333, + 0.04183657839894295, + 0.019423827528953552, + 0.06345868110656738, + 0.07092377543449402, + -0.042487408965826035, + 0.08566654473543167, + 0.07208713889122009, + 0.08675440400838852, + -0.0327550545334816, + 0.01740824058651924, + -0.050104349851608276, + 0.05790972709655762, + 0.09300605207681656, + -0.10995476692914963, + -0.09736377000808716, + -0.056880753487348557, + -0.06394055485725403, + 0.07422906160354614, + -0.029384411871433258, + 0.017187846824526787, + 0.04619833454489708, + -0.013021755963563919, + -0.09317721426486969, + -0.12109997868537903, + 0.10906024277210236, + -0.04892798140645027, + -0.005154452286660671, + -0.07026378810405731, + 0.030873756855726242, + 0.06785143911838531, + -0.0014085366856306791, + -0.02773134969174862, + 0.014761348254978657, + 0.046958766877651215, + -0.013604813255369663, + -0.0045954086817801, + 0.08245713263750076, + 0.03253864496946335, + -0.09620503336191177, + -0.015460392460227013, + -0.07779322564601898, + 0.09320205450057983, + -0.028716111555695534, + 0.1694604903459549, + -0.00520617701113224, + -0.025842033326625824, + -0.08260329067707062, + 0.06074840575456619, + -0.013271425850689411, + 0.053757015615701675, + 0.05105070397257805, + 0.06906425207853317, + 0.0011770090786740184, + -0.06531141698360443, + 0.1297733187675476, + 0.05122879892587662, + -0.07624483853578568, + -0.07589210569858551, + -0.05109146237373352, + -0.05203467234969139, + 0.02747061476111412, + 0.03636185824871063, + -0.0942639708518982, + -0.01957610249519348, + 0.0039090346544981, + -0.004059700295329094, + 0.06686082482337952, + 0.1402718722820282, + 0.0708284005522728, + -0.08142716437578201 + ] + }, + "p244_101.wav": { + "name": "p244", + "embedding": [ + 0.04393080621957779, + 0.07435603439807892, + -0.05854286253452301, + 0.032097429037094116, + -0.057750627398490906, + 0.05548716336488724, + -0.12118790298700333, + 0.12042001634836197, + -0.0008363872766494751, + 0.14400643110275269, + -0.023708384484052658, + 0.12623317539691925, + 0.0017389392014592886, + -0.14117203652858734, + -0.005656491965055466, + 0.025246016681194305, + -0.03841045871376991, + -0.03833971917629242, + -0.05910252407193184, + -0.0404319241642952, + 0.03692815825343132, + 0.05090132728219032, + 0.029159987345337868, + -0.03643464669585228, + 0.022817090153694153, + 0.07085692882537842, + -0.0162968747317791, + 0.025756381452083588, + 0.009590355679392815, + -0.12203177809715271, + -0.03894274681806564, + 0.06515449285507202, + -0.0720425397157669, + 0.024638934060931206, + 0.019399764016270638, + -0.048048362135887146, + 0.002327980473637581, + -0.048224203288555145, + -0.020821284502744675, + 0.0350300669670105, + -0.03278016671538353, + 0.09893735498189926, + 0.014127345755696297, + -0.012538513168692589, + 0.023425765335559845, + 0.005040713120251894, + -0.013049292378127575, + -0.03376048803329468, + -0.09110219776630402, + 0.1761135756969452, + 0.07616430521011353, + -0.027057670056819916, + -0.06762366741895676, + -0.04664966091513634, + 0.06678256392478943, + -0.014770272187888622, + -0.11345554888248444, + -0.04930358752608299, + 0.04347904771566391, + 0.10480742156505585, + -0.030313408002257347, + -0.04478244483470917, + 0.037645209580659866, + 0.11807277798652649, + 0.103485606610775, + 0.040309756994247437, + 0.09568393230438232, + 0.1371174156665802, + -0.03508085012435913, + 0.013373331166803837, + 0.022291868925094604, + 0.09891407191753387, + 0.07263055443763733, + 0.028245192021131516, + 0.023090720176696777, + -0.01891189068555832, + 0.007848791778087616, + -0.06283363699913025, + -0.037548258900642395, + -0.019962536171078682, + 0.026574475690722466, + 0.006854726932942867, + 0.029698016121983528, + 0.06273766607046127, + -0.025400731712579727, + 0.04461083933711052, + 0.0685114860534668, + -0.04776136204600334, + 0.044669076800346375, + 0.021701261401176453, + 0.03225504606962204, + 0.06272798776626587, + -0.12017607688903809, + -0.06843782216310501, + 0.048636823892593384, + 0.017193008214235306, + 0.020065564662218094, + 0.056193627417087555, + 0.049998946487903595, + -0.00976267084479332, + 0.1330414116382599, + 0.01617378182709217, + -0.04352360963821411, + -0.0023975172080099583, + -0.06166123226284981, + 0.14340612292289734, + 0.09357452392578125, + -0.0378553681075573, + 0.036752935498952866, + -0.06734546273946762, + 0.07444983720779419, + 0.019914958626031876, + -0.12749674916267395, + -0.08508291840553284, + 0.023080896586179733, + -0.008569952100515366, + -0.029328078031539917, + 0.1212901622056961, + 0.011001866310834885, + 0.07051713764667511, + 0.10095645487308502, + -0.07959383726119995, + -0.02739454060792923, + -0.015415861271321774, + 0.051321402192115784, + -0.09417974948883057, + 0.05687381699681282, + 0.03739936649799347, + -0.0036201062612235546, + 0.027840476483106613, + 0.09118669480085373, + -0.0037724217399954796, + 0.0061034816317260265, + 0.00661796610802412, + -0.027808792889118195, + 0.017984122037887573, + -0.00478682154789567, + -0.008896744810044765, + 0.02155323326587677, + 0.020121334120631218, + 0.08162852376699448, + -0.050899870693683624, + -0.022332090884447098, + -0.12257926166057587, + 0.041842021048069, + -0.0020697112195193768, + 0.06557897478342056, + -0.024463139474391937, + -0.0031010392121970654, + -0.03318736329674721, + -0.0735674500465393, + 0.008096644654870033, + -0.016462737694382668, + 0.05191255733370781, + -0.019359173253178596, + 0.0039686416275799274, + 0.11881740391254425, + 0.040744598954916, + 0.01764502003788948, + -0.027964893728494644, + -0.028498679399490356, + -0.003936432767659426, + 0.05654461681842804, + -0.0764678567647934, + -0.07045317441225052, + -0.01335081271827221, + 0.013610102236270905, + -0.013680093921720982, + 0.08456757664680481, + 0.05939373001456261, + 0.030316825956106186, + 0.020607996731996536, + -0.052867621183395386, + -0.025318045169115067, + -0.04939018189907074, + -0.05645453929901123, + -0.013354497030377388, + -0.018715478479862213, + -0.0613485649228096, + 0.08285346627235413, + 0.022038612514734268, + 0.07016417384147644, + -0.06262849271297455, + -0.04494304955005646, + -0.08057421445846558, + 0.03565920889377594, + 0.0308663509786129, + -0.038832079619169235, + 0.009409904479980469, + 0.06978203356266022, + -0.007524227257817984, + 0.015855573117733, + 0.06958257406949997, + 0.07760700583457947, + -0.03471839800477028, + 0.018965618684887886, + -0.06736879795789719, + 0.13152381777763367, + 0.08391255140304565, + -0.053618501871824265, + -0.06412506103515625, + -0.025526680052280426, + -0.09217415004968643, + 0.0057884398847818375, + -0.0467953160405159, + -0.007205738686025143, + 0.051461488008499146, + 0.006017627194523811, + -0.10712246596813202, + -0.08681885898113251, + 0.0851973295211792, + -0.08631724119186401, + -0.004221698734909296, + -0.10155054181814194, + 0.03763340413570404, + 0.09219184517860413, + 0.05993299186229706, + -0.042895130813121796, + -0.021885735914111137, + 0.06038403883576393, + 9.364041034132242e-06, + 0.06076393648982048, + 0.08356288820505142, + 0.06483960151672363, + -0.11414799839258194, + -0.02804030105471611, + -0.03811675310134888, + 0.00848240964114666, + -0.028482656925916672, + 0.10550107061862946, + 0.04504585638642311, + -0.035646818578243256, + -0.08085301518440247, + 0.06802998483181, + -0.025425676256418228, + 0.07374214380979538, + 0.019013788551092148, + 0.055566709488630295, + 0.08171863853931427, + -0.07945773005485535, + 0.1155330240726471, + 0.0620589442551136, + -0.04441720247268677, + -0.08999545872211456, + -0.0701604038476944, + -0.014728373847901821, + 0.06278650462627411, + 0.05661192163825035, + -0.08293735980987549, + -0.01895913854241371, + 0.02844253182411194, + -0.009349027648568153, + 0.06700235605239868, + 0.12397964298725128, + 0.08363264799118042, + -0.10710255801677704 + ] + }, + "p244_058.wav": { + "name": "p244", + "embedding": [ + 0.040095459669828415, + 0.08464542031288147, + -0.04939677566289902, + 0.014512901194393635, + -0.07138354331254959, + 0.04491971433162689, + -0.10891199856996536, + 0.1074625551700592, + -0.018529588356614113, + 0.14358967542648315, + -0.04172215983271599, + 0.10718019306659698, + -0.029614493250846863, + -0.1654200255870819, + -0.02470208704471588, + 0.033946696668863297, + -0.061574261635541916, + -0.039167966693639755, + -0.1046236976981163, + -0.057243213057518005, + 0.028788022696971893, + 0.041503019630908966, + 0.023259451612830162, + -0.05123131722211838, + 0.04018116742372513, + 0.07723955810070038, + -0.0037555000744760036, + 0.02745998650789261, + -0.009026124142110348, + -0.08279910683631897, + -0.02577996999025345, + 0.0779109001159668, + -0.07188583165407181, + 0.013400848954916, + 0.02771996334195137, + -0.021952811628580093, + 0.002271291334182024, + -0.02076265588402748, + 0.0015286747366189957, + 0.04080076515674591, + -0.02674764022231102, + 0.09794457256793976, + 0.026061145588755608, + -0.005648459307849407, + 0.024599438533186913, + 0.03318100795149803, + -0.012113397940993309, + -0.05698513612151146, + -0.06834378093481064, + 0.18212305009365082, + 0.06183427572250366, + -0.01667407713830471, + -0.06017722934484482, + -0.0626637190580368, + 0.0802101194858551, + -0.036388546228408813, + -0.12866735458374023, + -0.06929294764995575, + 0.06191838160157204, + 0.11942581832408905, + -0.04503461718559265, + -0.041215017437934875, + 0.01962238922715187, + 0.09320805966854095, + 0.07015824317932129, + 0.05225303769111633, + 0.08624694496393204, + 0.11506983637809753, + -0.020544448867440224, + 0.00987608078867197, + 0.06508006155490875, + 0.0620880052447319, + 0.07603543996810913, + 0.007600646466016769, + 0.034637436270713806, + -0.030395209789276123, + 0.013141512870788574, + -0.046201255172491074, + -0.03336643800139427, + -0.017351767048239708, + 0.0030971807427704334, + 0.01595836877822876, + 0.01205148734152317, + 0.013282045722007751, + -0.017725473269820213, + 0.04133062809705734, + 0.06863003224134445, + -0.03953195735812187, + 0.06554718315601349, + 0.048890337347984314, + 0.024386338889598846, + 0.06082901358604431, + -0.10012871026992798, + -0.047424085438251495, + 0.029217731207609177, + 0.008305085822939873, + 0.021794088184833527, + 0.025527501478791237, + 0.03165813535451889, + -0.013124652206897736, + 0.1059289425611496, + 0.041483789682388306, + -0.03520410507917404, + 0.008428756147623062, + -0.07794594019651413, + 0.15078213810920715, + 0.08974793553352356, + -0.024279996752738953, + 0.027033494785428047, + -0.03267820179462433, + 0.04069007560610771, + 0.03302048146724701, + -0.09919734299182892, + -0.10005587339401245, + 0.004104494582861662, + -0.013532605953514576, + -0.043864574283361435, + 0.09833259880542755, + 0.0065202871337533, + 0.03401154652237892, + 0.12143230438232422, + -0.08350333571434021, + -0.03641325235366821, + 0.0043602604418993, + 0.036070115864276886, + -0.09031931310892105, + 0.029859870672225952, + 0.0739813968539238, + -0.008123692125082016, + 0.0523805245757103, + 0.1155560165643692, + 0.007525917142629623, + 0.018350474536418915, + -0.010702775791287422, + -0.01918228156864643, + 0.022715440019965172, + 0.004538293462246656, + -0.02426518127322197, + 0.06786809116601944, + 0.042829547077417374, + 0.07436146587133408, + -0.02296571619808674, + -0.038298338651657104, + -0.11370620876550674, + 0.04181668907403946, + 0.018801283091306686, + 0.051418814808130264, + -0.03838001936674118, + 0.029144568368792534, + -0.033389121294021606, + -0.07871393859386444, + 0.03047719970345497, + -5.7707540690898895e-05, + 0.07840865850448608, + -0.028981033712625504, + -0.02751855179667473, + 0.16068927943706512, + 0.02838863432407379, + -0.00025691185146570206, + -0.04189702868461609, + -0.016339469701051712, + 0.005008699372410774, + 0.05224251747131348, + -0.08856847137212753, + -0.05894537270069122, + -0.01632559485733509, + 0.04332207143306732, + 0.006242827512323856, + 0.09948636591434479, + 0.08242589235305786, + -0.0016651973128318787, + 0.010041027329862118, + -0.035589877516031265, + 0.0014838525094091892, + -0.03982983157038689, + -0.04284268990159035, + 0.0014124466106295586, + -0.06503404676914215, + -0.05635921657085419, + 0.08021029084920883, + -0.0012482330203056335, + 0.0435648038983345, + -0.05897326022386551, + -0.0940689966082573, + -0.07942241430282593, + 0.04363465681672096, + 0.04206574335694313, + -0.043560825288295746, + 0.022975264117121696, + 0.06940773874521255, + -0.025889672338962555, + 0.037286754697561264, + 0.07076471298933029, + 0.11400671303272247, + -0.05141589790582657, + 0.020602580159902573, + -0.0713539570569992, + 0.09544692933559418, + 0.04542768746614456, + -0.06997442990541458, + -0.04869373142719269, + -0.04131823778152466, + -0.050733186304569244, + 0.016862383112311363, + -0.027418747544288635, + 0.02805482968688011, + 0.057703107595443726, + 0.018549412488937378, + -0.07145245373249054, + -0.10544666647911072, + 0.0726003348827362, + -0.07308027148246765, + 0.007214994169771671, + -0.07264198362827301, + 0.02439333312213421, + 0.06990259885787964, + 0.07494648545980453, + -0.017653556540608406, + 0.008677108213305473, + 0.028631966561079025, + -0.014501434750854969, + 0.033806782215833664, + 0.06531447917222977, + 0.04266134649515152, + -0.06118036061525345, + -0.030454672873020172, + -0.09307092428207397, + 0.03885189816355705, + -0.021546320989727974, + 0.13097772002220154, + 0.020692095160484314, + -0.03433218225836754, + -0.0835191160440445, + 0.04706661030650139, + -0.06663493812084198, + 0.08518781512975693, + 0.05078582465648651, + 0.06582995504140854, + 0.06733830273151398, + -0.04006108641624451, + 0.11541539430618286, + 0.05684829503297806, + -0.03704323619604111, + -0.07099970430135727, + -0.07046829909086227, + -0.04796279966831207, + 0.032388441264629364, + 0.031165868043899536, + -0.0913955569267273, + 0.01884661801159382, + 0.030615055933594704, + -0.02289772219955921, + 0.05372690409421921, + 0.1057821586728096, + 0.08194398880004883, + -0.0843496173620224 + ] + }, + "p244_024.wav": { + "name": "p244", + "embedding": [ + 0.04860005900263786, + 0.13365040719509125, + 0.005188239272683859, + -0.007631541229784489, + -0.06357205659151077, + 0.055444296449422836, + -0.11113158613443375, + 0.14507606625556946, + -0.06605346500873566, + 0.12376834452152252, + -0.09833568334579468, + 0.12805351614952087, + -0.046480391174554825, + -0.13841275870800018, + -0.06650926917791367, + 0.044916536659002304, + -0.04643157869577408, + -0.015450340695679188, + -0.03431691601872444, + -0.03474448248744011, + 0.032083820551633835, + 0.023633794859051704, + 0.04697386175394058, + 0.023828618228435516, + 0.03568379953503609, + 0.0631122812628746, + 0.026003241539001465, + 0.06289685517549515, + 0.04021076858043671, + -0.04751605540513992, + -0.03811714053153992, + 0.09202314168214798, + -0.034220077097415924, + 0.02479376830160618, + 0.05797666311264038, + -0.004366706591099501, + 0.027224576100707054, + -0.06366776674985886, + -0.02344970405101776, + 0.0027259918861091137, + -0.015660934150218964, + 0.07009530067443848, + 0.019623158499598503, + -0.021674981340765953, + 0.025135308504104614, + 0.041232265532016754, + 0.0028540731873363256, + -0.04730714112520218, + -0.10117337852716446, + 0.1489221751689911, + 0.04751132056117058, + -0.007243161555379629, + -0.07903963327407837, + -0.07444322109222412, + 0.1213841661810875, + -0.05554497241973877, + -0.09977951645851135, + -0.024243319407105446, + 0.06540544331073761, + 0.14674149453639984, + -0.03724440559744835, + -0.04374585300683975, + 0.01693914085626602, + 0.11825428158044815, + 0.03569081053137779, + 0.0753612145781517, + 0.08030637353658676, + 0.08412176370620728, + -0.0316772535443306, + 0.027474910020828247, + 0.04578263685107231, + 0.07438791543245316, + 0.018667394295334816, + -0.01057466585189104, + 0.015312567353248596, + -0.004980470519512892, + -0.017349613830447197, + 0.039941322058439255, + -0.030104318633675575, + -0.02378353476524353, + -0.05073578283190727, + 0.020296549424529076, + -0.021932750940322876, + -0.01929684914648533, + -0.02258743718266487, + 0.08814115822315216, + -0.012019251473248005, + -0.003507012501358986, + 0.07939010858535767, + 0.047040652483701706, + -0.003144817193970084, + 0.05297129973769188, + -0.05507722496986389, + -0.0809173434972763, + 0.00025035813450813293, + -0.011652662418782711, + 0.021493054926395416, + 0.07551927119493484, + 0.03094794787466526, + -0.014037019573152065, + 0.11400190740823746, + 0.07999470084905624, + 0.005635857582092285, + 0.015396341681480408, + -0.10169004648923874, + 0.12436876446008682, + 0.08504507690668106, + -0.026727071031928062, + 0.03709007427096367, + -0.027228647843003273, + 0.06766551733016968, + 0.06970846652984619, + -0.12298206239938736, + -0.0971146747469902, + 0.004526240285485983, + 0.02746000699698925, + 0.0027486197650432587, + 0.062490131705999374, + -0.03380702808499336, + 0.019239531829953194, + 0.09373849630355835, + -0.05814457684755325, + -0.05950869992375374, + -0.02160336822271347, + 0.03824774548411369, + -0.05608155205845833, + 0.04353508725762367, + 0.06766485422849655, + -0.003041743068024516, + 0.004225033801048994, + 0.08421509712934494, + 0.00017703957564663142, + -0.0010390699608251452, + 0.04705546796321869, + -0.06358326226472855, + 0.00034183525713160634, + -0.015891849994659424, + -0.002021754626184702, + 0.05134209617972374, + 0.08724097162485123, + 0.04011628031730652, + 0.019229834899306297, + -0.03025737963616848, + -0.08454438298940659, + 0.005993340630084276, + 0.04916848614811897, + 0.05402490124106407, + 0.00048129374044947326, + -0.03917890414595604, + -0.03408196195960045, + -0.03487294539809227, + -0.008320807479321957, + 0.021197954192757607, + 0.08605959266424179, + -0.04811973497271538, + 0.016008159145712852, + 0.10645530372858047, + 0.025218332186341286, + -0.017298437654972076, + -0.06314175575971603, + -0.008154580369591713, + 0.015691498294472694, + 0.03530903533101082, + -0.04360399395227432, + -0.09208467602729797, + 0.010146601125597954, + 0.03526558727025986, + -0.020250951871275902, + 0.06626804172992706, + 0.03982805833220482, + -0.006070274394005537, + 0.04938044771552086, + -0.05812805891036987, + 0.029701484367251396, + -0.10431033372879028, + -0.048345278948545456, + -0.016431819647550583, + -0.014630720019340515, + -0.02587161399424076, + 0.05953620746731758, + 0.030425986275076866, + 0.059347450733184814, + 0.03141079470515251, + -0.0968332439661026, + -0.07510203123092651, + 0.05774034187197685, + 0.07826472818851471, + 0.018633490428328514, + 0.05628128722310066, + 0.06899655610322952, + -0.02497268281877041, + 0.08149556070566177, + 0.07042711228132248, + 0.06955641508102417, + -0.028492186218500137, + 0.0019789652433246374, + -0.060929059982299805, + 0.03403991833329201, + 0.04915456846356392, + -0.13164399564266205, + -0.08483780920505524, + -0.05679689720273018, + -0.040560707449913025, + 0.03440957888960838, + 0.008089478127658367, + 0.02630826272070408, + 0.02569650113582611, + -0.010009543038904667, + -0.08766819536685944, + -0.08839675784111023, + 0.08809170871973038, + -0.062497496604919434, + 0.006235625594854355, + -0.038621556013822556, + 0.032127439975738525, + 0.09276729077100754, + 0.026825709268450737, + 0.0031276263762265444, + -0.006966277491301298, + 0.032421525567770004, + -0.05033433437347412, + -0.026408985257148743, + 0.02409588173031807, + 0.017501119524240494, + -0.06563516706228256, + 0.04499836638569832, + -0.08486517518758774, + 0.07676851749420166, + -0.037436340004205704, + 0.17410025000572205, + -0.008606033399701118, + -0.06391268223524094, + -0.09141229093074799, + 0.018358217552304268, + -0.0684792771935463, + 0.04056498035788536, + 0.03488364443182945, + 0.04328327998518944, + 0.0009061801247298717, + -0.0624275878071785, + 0.12078380584716797, + 0.037144459784030914, + -0.07165496051311493, + -0.07345613092184067, + -0.053707756102085114, + -0.04189889505505562, + 0.007667348720133305, + 0.01936129480600357, + -0.06773543357849121, + -0.029206300154328346, + -0.006783606018871069, + -0.030652347952127457, + 0.10359456390142441, + 0.13664346933364868, + 0.07869520038366318, + -0.10931243747472763 + ] + }, + "p244_365.wav": { + "name": "p244", + "embedding": [ + 0.04112584516406059, + 0.08726230263710022, + 0.00127321295440197, + 0.010671555995941162, + 0.0015711896121501923, + 0.0467485636472702, + -0.12623216211795807, + 0.10142230242490768, + -0.04352802783250809, + 0.13175086677074432, + -0.10391835868358612, + 0.076558917760849, + -0.04221866652369499, + -0.15657715499401093, + -0.05823620781302452, + 0.05103347450494766, + -0.062332674860954285, + -0.04096382483839989, + -0.01970863528549671, + -0.0045085689052939415, + 0.039077937602996826, + 0.03307407349348068, + 0.016010694205760956, + 0.011748049408197403, + 0.0069719599559903145, + 0.050648033618927, + 0.012161587364971638, + 0.04174281284213066, + 0.034639906138181686, + -0.005568390712141991, + 0.0030991919338703156, + 0.09042387455701828, + -0.021874770522117615, + -0.003955637104809284, + 0.039373524487018585, + 0.02128692716360092, + 0.010052254423499107, + -0.06381519883871078, + -0.004180500283837318, + 0.011333816684782505, + -0.0465678907930851, + 0.054415784776210785, + 0.026203203946352005, + -0.0018796678632497787, + 0.024655090644955635, + 0.01858300156891346, + -0.023569587618112564, + -0.04451902583241463, + -0.10099248588085175, + 0.15526244044303894, + 0.08120197057723999, + 0.028176836669445038, + -0.06371336430311203, + -0.04195840656757355, + 0.10417163372039795, + 0.01197050604969263, + -0.08476345986127853, + -0.04097287356853485, + 0.06222613528370857, + 0.16537320613861084, + -0.02098729833960533, + -0.032440803945064545, + 0.025616241618990898, + 0.11778637766838074, + 0.025889577344059944, + 0.07177326828241348, + 0.09140962362289429, + 0.08379519730806351, + 0.011768057942390442, + 0.01607573963701725, + 0.06931505352258682, + 0.04476068168878555, + 0.03727860748767853, + -0.03985612094402313, + 0.016967138275504112, + 0.0008534220978617668, + -0.030293578281998634, + 0.018324896693229675, + -0.023679357022047043, + -0.046116020530462265, + -0.009451212361454964, + 0.005411647260189056, + -0.012021057307720184, + 0.030059784650802612, + -0.014583633281290531, + 0.037205930799245834, + 0.009698644280433655, + -0.01826796494424343, + 0.07759881764650345, + 0.0224064439535141, + 0.002851322293281555, + 0.02503081224858761, + -0.05489741638302803, + -0.08285070955753326, + 0.014180326834321022, + 0.008382025174796581, + -0.002772320993244648, + 0.061474066227674484, + 0.05221863090991974, + -0.01393075566738844, + 0.10943654924631119, + 0.02581770345568657, + -0.00017723068594932556, + 0.007316095754504204, + -0.10933838039636612, + 0.10973824560642242, + 0.0835016518831253, + -0.03164515644311905, + 0.020785687491297722, + -0.02924453467130661, + 0.04409591853618622, + 0.0824899896979332, + -0.13250473141670227, + -0.05412771552801132, + 0.04982062429189682, + 0.031956009566783905, + 6.668455898761749e-05, + 0.09407924860715866, + -0.00658376095816493, + 0.0060056885704398155, + 0.10368411988019943, + -0.07001943141222, + -0.06153719499707222, + -0.04400152340531349, + 0.04230962693691254, + -0.05268959701061249, + 0.050423964858055115, + 0.04410075768828392, + 0.0024622040800750256, + -0.025723040103912354, + 0.06466230750083923, + -0.005422959104180336, + -0.009957254864275455, + -0.027571795508265495, + -0.012881789356470108, + 0.06236990541219711, + -0.0556793287396431, + -0.0014831596054136753, + 0.012708916328847408, + 0.04171910881996155, + 0.03606502339243889, + 0.030228327959775925, + -0.03435101360082626, + -0.07704522460699081, + 0.005444097798317671, + 0.039757706224918365, + 0.06681306660175323, + -0.006908778101205826, + -0.043528519570827484, + -0.04595840349793434, + -0.012746384367346764, + -0.0036422049161046743, + -0.02871209941804409, + 0.08052375167608261, + 0.015930969268083572, + 0.010621496476233006, + 0.09187150746583939, + -0.027965731918811798, + -6.091967225074768e-05, + -0.040724802762269974, + -0.017955511808395386, + 0.031000010669231415, + 0.022714396938681602, + -0.06409069150686264, + -0.07308612763881683, + 0.016763221472501755, + 0.010439878329634666, + -0.009144148789346218, + 0.022250358015298843, + 0.018423013389110565, + 0.007613107096403837, + 0.0018019573763012886, + -0.062012240290641785, + 0.01793850213289261, + -0.09877065569162369, + -0.051235560327768326, + -0.0012287469580769539, + -0.024206828325986862, + -0.003313561202958226, + 0.07147953659296036, + 0.008255045861005783, + 0.025920119136571884, + -0.009584838524460793, + -0.09076570719480515, + -0.060340553522109985, + 0.08660906553268433, + 0.08346366137266159, + 0.004642804153263569, + 0.03309104964137077, + 0.050737038254737854, + -0.005033697001636028, + 0.03554762527346611, + 0.030979547649621964, + 0.09034738689661026, + -0.031212197616696358, + -0.03361131250858307, + -0.043710581958293915, + 0.05813612416386604, + 0.06395599246025085, + -0.09340469539165497, + -0.060637347400188446, + -0.03221616521477699, + -0.06122324615716934, + 0.031303949654102325, + -0.021684149280190468, + 0.010560864582657814, + 0.018786268308758736, + -0.050503358244895935, + -0.10379624366760254, + -0.08728988468647003, + 0.057631514966487885, + -0.05874260142445564, + -0.02306721732020378, + -0.07183223962783813, + 0.04564748331904411, + 0.08136852085590363, + 0.012906410731375217, + -0.01273279171437025, + 0.005995762534439564, + 0.005747789517045021, + -0.05391283705830574, + -0.03464343398809433, + 0.012833112850785255, + 0.028973987326025963, + -0.09113708138465881, + 0.005296451970934868, + -0.07694781571626663, + 0.06952116638422012, + -0.0602588877081871, + 0.10060738027095795, + -0.008128389716148376, + -0.0403563529253006, + -0.09242768585681915, + 0.01637028530240059, + -0.00890114065259695, + 0.06383129954338074, + 0.031996216624975204, + 0.03165358304977417, + 0.02813158743083477, + -0.06673400849103928, + 0.12569426000118256, + 0.0421484038233757, + -0.018706554546952248, + -0.07676831632852554, + -0.028314810246229172, + -0.0475817546248436, + 0.005302261561155319, + -0.00678743002936244, + -0.05808396637439728, + -0.011384803801774979, + 0.004848166834563017, + -0.016317343339323997, + 0.06753429025411606, + 0.11009517312049866, + 0.03625589236617088, + -0.1056508868932724 + ] + }, + "p244_031.wav": { + "name": "p244", + "embedding": [ + -0.0031721927225589752, + 0.08524402976036072, + -0.03624449670314789, + 0.007653478533029556, + -0.07755075395107269, + 0.013027937151491642, + -0.07759065181016922, + 0.10879097133874893, + -0.06021568924188614, + 0.13402292132377625, + -0.03959908336400986, + 0.11754312366247177, + -0.05208691954612732, + -0.09908919781446457, + 0.006137712858617306, + 0.05045641213655472, + -0.013862957246601582, + -0.030133042484521866, + -0.021975351497530937, + -0.06501494348049164, + 0.03146013617515564, + 0.036248765885829926, + 0.03857751190662384, + -0.030518101528286934, + 0.015737639740109444, + 0.09964320063591003, + -0.014124457724392414, + -0.004658829420804977, + -0.03618874400854111, + -0.09830702841281891, + -0.0565132275223732, + 0.04885271191596985, + -0.04080817103385925, + -0.021246083080768585, + 0.011830486357212067, + -0.023814676329493523, + -0.008890162222087383, + -0.024142621085047722, + 0.0032822154462337494, + 0.0011559776030480862, + -0.06783229112625122, + 0.07031477987766266, + 0.008366720750927925, + -0.04857456684112549, + 0.037570614367723465, + -0.02686663344502449, + -0.022127103060483932, + 0.004770314320921898, + -0.05465042591094971, + 0.12126389145851135, + 0.07148054242134094, + 0.0013978746719658375, + -0.052000582218170166, + -0.038945917040109634, + 0.0877581313252449, + -0.0012853490188717842, + -0.1108427494764328, + -0.0606062151491642, + 0.018383409827947617, + 0.09237228333950043, + -0.01754496805369854, + -0.022982580587267876, + 0.04116424173116684, + 0.08166461437940598, + 0.021070770919322968, + 0.05902737379074097, + 0.06914369761943817, + 0.06157761067152023, + 0.0006750235334038734, + -0.005168559029698372, + 0.0316203273832798, + 0.08342833817005157, + 0.03138510510325432, + 0.0012933446560055017, + 0.01936165615916252, + -0.037838663905858994, + -0.024873023852705956, + -0.03308756649494171, + -0.021764367818832397, + -0.06759238988161087, + -0.05789382755756378, + 0.0017544161528348923, + 0.014489218592643738, + -0.027200797572731972, + -0.005004999227821827, + 0.040076881647109985, + 0.08280247449874878, + -0.03549404442310333, + 0.07287822663784027, + 0.028236713260412216, + 0.005485543981194496, + 0.037038326263427734, + -0.06721062958240509, + -0.01733156479895115, + -0.008239630609750748, + 0.013282595202326775, + 0.060987960547208786, + 0.07531580328941345, + 0.028587471693754196, + 0.01072730217128992, + 0.07777917385101318, + 0.04216352105140686, + 0.029492966830730438, + -0.013710791245102882, + -0.08731023967266083, + 0.09865622222423553, + 0.11385050415992737, + -0.028927259147167206, + 0.02764062210917473, + -0.017414452508091927, + 0.0449213832616806, + 0.01242845319211483, + -0.07170018553733826, + -0.07027943432331085, + -0.04182536154985428, + -0.015742875635623932, + -0.003213199321180582, + 0.09362383186817169, + 0.019830595701932907, + 0.023868106305599213, + 0.09431757032871246, + -0.09610351920127869, + -0.10151641815900803, + -0.04136377573013306, + 0.03665371984243393, + -0.08635959774255753, + 0.0752180740237236, + 0.09716824442148209, + -0.0036956556141376495, + 0.05878785252571106, + 0.06644292175769806, + 0.03405730798840523, + 0.04098832607269287, + 0.029591821134090424, + -0.06001533195376396, + -0.02920944057404995, + -0.008939823135733604, + 0.014368940144777298, + 0.08213324844837189, + 0.05014430731534958, + 0.08771958202123642, + -0.021660495549440384, + 0.034290019422769547, + -0.07653642445802689, + 0.01075804140418768, + 0.035639986395835876, + -0.006889358162879944, + -0.03735308349132538, + -0.034836456179618835, + 0.0062777139246463776, + -0.0801110491156578, + -0.03233237937092781, + -0.013735095970332623, + 0.0917508453130722, + -0.0327858105301857, + 0.01868968829512596, + 0.1274670660495758, + 0.05708180367946625, + -0.03218041732907295, + -0.04901830852031708, + -0.024625025689601898, + 0.0012115312274545431, + 0.04969457909464836, + -0.10093742609024048, + -0.08161555975675583, + -0.043133363127708435, + 0.033579617738723755, + 0.019424431025981903, + 0.06229546666145325, + 0.07398265600204468, + 0.015393667854368687, + 0.025826681405305862, + -0.03185419365763664, + 0.05849052220582962, + -0.03296176344156265, + -0.04562387615442276, + -0.0325213260948658, + -0.09356756508350372, + -0.04916716739535332, + 0.0909791886806488, + -0.001040048897266388, + 0.05649947375059128, + -0.0184773076325655, + -0.06064695864915848, + -0.08358320593833923, + 0.011102572083473206, + 0.02335767261683941, + -0.025431666523218155, + 0.030378557741642, + 0.04727745056152344, + -0.06678543984889984, + -0.004855260252952576, + 0.042953010648489, + 0.09259198606014252, + -0.04301677271723747, + -0.0035032983869314194, + -0.05748031288385391, + 0.06704645603895187, + 0.09279294312000275, + -0.08104707300662994, + -0.03734207525849342, + -0.10613393038511276, + -0.026010671630501747, + 0.03861268609762192, + -0.023124318569898605, + 0.005864271894097328, + -0.007030686363577843, + 0.011617453768849373, + -0.06166680157184601, + -0.0882810652256012, + 0.09725643694400787, + -0.03475767746567726, + 0.011090045794844627, + -0.06370721757411957, + 0.019157353788614273, + 0.019455373287200928, + 0.06488795578479767, + -0.039806053042411804, + 0.023175522685050964, + 0.04877842217683792, + -6.431154906749725e-05, + 0.06412075459957123, + 0.08830168098211288, + 0.0709967091679573, + 0.01203211024403572, + -0.035194747149944305, + -0.08956709504127502, + 0.04621568322181702, + -0.027156643569469452, + 0.12659144401550293, + 0.008517014794051647, + -0.03722283989191055, + -0.09492410719394684, + 0.03638170287013054, + -0.008441217243671417, + 0.0255669504404068, + 0.07092460989952087, + 0.06971216946840286, + 0.02679571323096752, + -0.053276143968105316, + 0.09300364553928375, + 0.05749564245343208, + -0.0035181809216737747, + -0.03821427375078201, + -0.03906550258398056, + -0.05522899329662323, + 0.017660778015851974, + 0.007254130207002163, + -0.0853128731250763, + 0.039259783923625946, + -0.005107475910335779, + 0.037499185651540756, + 0.09226663410663605, + 0.0829063355922699, + 0.06584793329238892, + -0.09056061506271362 + ] + }, + "p244_245.wav": { + "name": "p244", + "embedding": [ + 0.040469616651535034, + 0.06697149574756622, + -0.028536299243569374, + 0.03860078006982803, + -0.03649842366576195, + 0.08415406197309494, + -0.13170062005519867, + 0.1127922534942627, + -0.03434142842888832, + 0.13944363594055176, + -0.048680078238248825, + 0.10478870570659637, + 0.002407509833574295, + -0.1726829707622528, + -0.03935525566339493, + 0.0237045306712389, + -0.0475279837846756, + -0.009100881405174732, + -0.0736503005027771, + -0.02344600111246109, + 0.060068707913160324, + 0.03575403243303299, + 0.02900128997862339, + -0.04906942695379257, + -0.0032114554196596146, + 0.04482799023389816, + -0.012749578803777695, + 0.03877810016274452, + 0.01054377667605877, + -0.07627420872449875, + -0.02277340739965439, + 0.11499439179897308, + -0.048417653888463974, + 0.026249002665281296, + 0.040331415832042694, + -0.006751219276338816, + -0.017194421961903572, + -0.04119975119829178, + -0.014180649071931839, + 0.01706862263381481, + -0.02906564436852932, + 0.05582103133201599, + 0.020991722121834755, + -0.0034312624484300613, + 0.06332585960626602, + -0.015573405660688877, + -0.039775263518095016, + -0.024358276277780533, + -0.08939310908317566, + 0.157721146941185, + 0.06292953342199326, + -0.010863220319151878, + -0.07574648410081863, + -0.06337282061576843, + 0.09160132706165314, + -0.012078986503183842, + -0.13812774419784546, + -0.026275936514139175, + 0.07188798487186432, + 0.1630236804485321, + -0.023256924003362656, + -0.03001389466226101, + 0.03802190348505974, + 0.09937144815921783, + 0.05001205578446388, + 0.08253724873065948, + 0.09962158650159836, + 0.1048799455165863, + -0.007802274543792009, + 0.02256222814321518, + 0.027724727988243103, + 0.0760016068816185, + 0.06456547975540161, + -0.007335794623941183, + 0.04875495657324791, + -0.005384575575590134, + 0.004458636976778507, + -0.021884478628635406, + -0.04839785024523735, + -0.01384691521525383, + 0.01243191584944725, + 0.005546243861317635, + 0.032536011189222336, + 0.02778775244951248, + -0.05343516543507576, + 0.040348172187805176, + 0.03786475956439972, + -0.01819605566561222, + 0.04128112643957138, + 0.060705363750457764, + 0.035927243530750275, + 0.04794657230377197, + -0.07246753573417664, + -0.0977635383605957, + 0.021170837804675102, + 0.01245868019759655, + 0.01223048660904169, + 0.045533470809459686, + 0.028808288276195526, + -0.0068528070114552975, + 0.09040618687868118, + 0.037028685212135315, + -0.03731880709528923, + 0.024439087137579918, + -0.08863583207130432, + 0.11545675992965698, + 0.10208885371685028, + -0.011238603852689266, + 0.03215021640062332, + -0.06371717154979706, + 0.071348175406456, + 0.057960424572229385, + -0.1159331202507019, + -0.07033968716859818, + 0.0311172716319561, + 0.008666956797242165, + -0.00534119363874197, + 0.1311578005552292, + 0.013315784744918346, + 0.02748023346066475, + 0.09390349686145782, + -0.07587197422981262, + -0.033088281750679016, + -0.023208852857351303, + 0.04134207218885422, + -0.06593947857618332, + 0.04860245808959007, + 0.014203306287527084, + -0.00037322891876101494, + -0.003943283576518297, + 0.07663953304290771, + -0.020262496545910835, + 0.021513596177101135, + 0.007742593064904213, + -0.047884151339530945, + 0.033850912004709244, + -0.02896062284708023, + -2.3963861167430878e-05, + 0.042762577533721924, + 0.03897835686802864, + 0.063753642141819, + -0.02734399400651455, + -0.0418197363615036, + -0.10401983559131622, + 0.01063578762114048, + 0.02953163906931877, + 0.06402745097875595, + -0.014130592346191406, + 0.0007553929463028908, + -0.03305567055940628, + -0.07836858928203583, + 0.05484578758478165, + -0.04186864569783211, + 0.07789556682109833, + 0.0054706912487745285, + -0.011557930149137974, + 0.09604483097791672, + 0.0058167120441794395, + 0.0031894436106085777, + -0.039714790880680084, + -0.023130377754569054, + 0.00124570750631392, + 0.041653916239738464, + -0.08527734875679016, + -0.054195620119571686, + -0.006153625901788473, + 0.023451585322618484, + -0.016231298446655273, + 0.04577047750353813, + 0.0631980374455452, + 0.010974802076816559, + 0.02405364438891411, + -0.06229448318481445, + -0.0193592868745327, + -0.1025584489107132, + -0.06289488077163696, + -0.006051839794963598, + -0.047883838415145874, + -0.009523879736661911, + 0.08666342496871948, + 0.024977881461381912, + 0.01414379384368658, + -0.03422355651855469, + -0.06939958781003952, + -0.08586375415325165, + 0.05577857419848442, + 0.04572942480444908, + -0.006547700613737106, + 0.0334157794713974, + 0.05490213632583618, + -0.02856912463903427, + 0.06284814327955246, + 0.07645009458065033, + 0.08860714733600616, + -0.031002987176179886, + 0.009740835055708885, + -0.08953236043453217, + 0.1090899184346199, + 0.10271036624908447, + -0.05937965214252472, + -0.0976703017950058, + -0.009388644248247147, + -0.08970456570386887, + 0.027566464617848396, + -0.054483138024806976, + -0.015807637944817543, + 0.06063133478164673, + -0.006865249015390873, + -0.1236935406923294, + -0.08057098090648651, + 0.09565722942352295, + -0.07615500688552856, + -0.013083500787615776, + -0.07414872199296951, + 0.0373181477189064, + 0.08579879254102707, + 0.01893925666809082, + -0.04318736121058464, + 0.0015953457914292812, + 0.06155230849981308, + -0.05155723914504051, + 0.009965279139578342, + 0.03288400173187256, + 0.023278342559933662, + -0.10208860784769058, + -0.01829860359430313, + -0.06304147094488144, + 0.008918233215808868, + -0.05091467499732971, + 0.1172068864107132, + 0.010979154147207737, + -0.056741323322057724, + -0.05618629604578018, + 0.07545953243970871, + -0.022234296426177025, + 0.05180518701672554, + 0.04076996445655823, + 0.08367861807346344, + 0.04136915132403374, + -0.09157460927963257, + 0.10898593068122864, + 0.030023545026779175, + -0.030543768778443336, + -0.09345605224370956, + -0.03846116364002228, + -0.043233878910541534, + 0.02639087289571762, + 0.017378129065036774, + -0.0801430344581604, + -0.003115958534181118, + 0.0249668937176466, + -0.006593803409487009, + 0.04361836239695549, + 0.12243619561195374, + 0.046990104019641876, + -0.10784579813480377 + ] + }, + "p244_219.wav": { + "name": "p244", + "embedding": [ + 0.07222731411457062, + 0.020960157737135887, + -0.012612464837729931, + -0.010866774246096611, + -0.024798311293125153, + 0.041596509516239166, + -0.12056693434715271, + 0.1051354855298996, + -0.014153889380395412, + 0.07093960791826248, + -0.0833030492067337, + 0.09026588499546051, + -0.0006825346499681473, + -0.11566475033760071, + -0.04158276319503784, + 0.027302339673042297, + -0.015957005321979523, + -0.016128556802868843, + -0.06023886427283287, + -0.022953743115067482, + 0.013349421322345734, + 0.0479513481259346, + 0.01142415963113308, + -0.0032521607354283333, + 0.026839502155780792, + 0.0386260524392128, + -0.009299049153923988, + 0.010715622454881668, + 0.002526539145037532, + 0.016378700733184814, + 0.024460837244987488, + 0.07257473468780518, + -0.03677280619740486, + -0.0036418421659618616, + 0.041019268333911896, + 0.01662302576005459, + 0.009967396035790443, + -0.09088870882987976, + -0.026297269389033318, + 0.029302295297384262, + -0.05176599323749542, + 0.07723300158977509, + 0.06828534603118896, + -0.012409724295139313, + 0.010292649269104004, + 0.011088041588664055, + 0.0020930839236825705, + -0.05703490227460861, + -0.11804747581481934, + 0.16962739825248718, + -0.0030464492738246918, + 0.036971334367990494, + -0.12387686967849731, + -0.005087150260806084, + 0.0691189244389534, + -0.01608886942267418, + -0.04239609092473984, + -0.04493209347128868, + 0.03722387179732323, + 0.12413974851369858, + 0.00318712554872036, + -0.04723324626684189, + 0.018990851938724518, + 0.06539860367774963, + 0.04080486670136452, + 0.0038003958761692047, + 0.13416001200675964, + 0.10878852009773254, + -0.01956210285425186, + 0.028149627149105072, + 0.0668376013636589, + 0.03167200833559036, + 0.036696452647447586, + -0.014818298630416393, + 0.013944604434072971, + -0.02147645317018032, + -0.02467886172235012, + 0.011683049611747265, + -0.027359914034605026, + -0.03582581877708435, + 0.009972562082111835, + 0.011266171932220459, + 0.016464529559016228, + 0.07649891078472137, + -0.06265327334403992, + 0.05017147213220596, + 0.030588701367378235, + -0.0023483335971832275, + 0.06914664804935455, + 0.07247161120176315, + -0.005590131971985102, + 0.0004338361322879791, + -0.05602840334177017, + -0.08998550474643707, + -0.005046145990490913, + -0.00946731586009264, + 0.04419659078121185, + 0.02627626061439514, + 0.03161316365003586, + -0.0028024488128721714, + 0.09361158311367035, + 0.007027469575405121, + 0.004248812794685364, + -0.014038534834980965, + -0.06931654363870621, + 0.09949930012226105, + 0.1126985251903534, + -0.01706080138683319, + 0.015995021909475327, + -0.04667337238788605, + 0.007100168615579605, + 0.04082728177309036, + -0.07544156163930893, + -0.042587485164403915, + 0.05652504414319992, + 0.031760238111019135, + 0.06085653230547905, + 0.11034698784351349, + 0.01021426822990179, + 0.023538703098893166, + 0.05772740766406059, + -0.07498112320899963, + -0.025298113003373146, + 0.01985420659184456, + 0.014938198029994965, + -0.01102566346526146, + 0.01983753964304924, + 0.0340501107275486, + 0.030473582446575165, + -0.02773580327630043, + 0.06282347440719604, + 0.011202976107597351, + 0.0073677608743309975, + -0.05712639167904854, + 0.04998690262436867, + 0.09543541073799133, + 0.026846786960959435, + -0.02943497709929943, + 0.05854041129350662, + 0.08381514251232147, + 0.02618376538157463, + 0.055659547448158264, + -0.05341917276382446, + -0.10958400368690491, + -0.005204768851399422, + 0.049045201390981674, + 0.06588643789291382, + -0.05262218043208122, + -0.024723384529352188, + -0.06857429444789886, + -0.01420474611222744, + 0.005946789868175983, + 0.018610086292028427, + 0.06461013853549957, + 0.03411216288805008, + -0.013558970764279366, + 0.0823804959654808, + -0.02489832043647766, + 0.022905703634023666, + -0.017179548740386963, + 0.01042818184942007, + 0.009969260543584824, + 0.04411905258893967, + -0.011171195656061172, + -0.07573098689317703, + 0.0016736872494220734, + 0.0069807711988687515, + -0.01731184870004654, + 0.01400594413280487, + 0.032033585011959076, + -0.03228658437728882, + 0.003496539546176791, + -0.10312718152999878, + 0.031407810747623444, + -0.09921270608901978, + -0.004203546792268753, + 0.04617861658334732, + -0.030386850237846375, + -0.0023897187784314156, + 0.09489292651414871, + 0.022600259631872177, + 0.0468139722943306, + -0.025521378964185715, + -0.09814317524433136, + -0.01159774698317051, + 0.049467772245407104, + 0.061336699873209, + -0.04028693586587906, + 0.010425148531794548, + 0.024396009743213654, + 0.03187078982591629, + 0.03316335380077362, + 0.05949288606643677, + 0.050487831234931946, + -0.06617512553930283, + -0.05275246128439903, + -0.005630879662930965, + 0.11891871690750122, + 0.014252698980271816, + -0.062019020318984985, + -0.04791417717933655, + -0.009605512954294682, + -0.030403906479477882, + -0.012217089533805847, + -0.0018911436200141907, + 0.02707720547914505, + 0.05189976468682289, + -0.03051159903407097, + -0.1098608449101448, + -0.06041586399078369, + 0.00713726133108139, + -0.055069535970687866, + 0.014702294021844864, + -0.0674569383263588, + 0.017536701634526253, + 0.09175148606300354, + 0.007593287155032158, + 0.015194819308817387, + -0.022600969299674034, + -0.04721808433532715, + -0.06713007390499115, + -0.060297027230262756, + -0.011572282761335373, + 0.02616897039115429, + -0.0563252717256546, + -0.015114138834178448, + -0.052414096891880035, + 0.07349498569965363, + -0.023053035140037537, + 0.09905221313238144, + 0.026766197755932808, + -0.0525803379714489, + -0.06694452464580536, + -0.02237970568239689, + -0.030701957643032074, + 0.06547613441944122, + 0.05125664174556732, + 0.014116205275058746, + 0.0268840454518795, + -0.04486292600631714, + 0.08183442056179047, + 0.0683550089597702, + -0.054693207144737244, + -0.06583307683467865, + -0.02677665464580059, + 0.002136124297976494, + 0.025869105011224747, + 0.0006372611969709396, + -0.0019800327718257904, + 0.03802599385380745, + 0.015055319294333458, + -0.021273203194141388, + 0.04764735698699951, + 0.0814167708158493, + 0.06924223154783249, + -0.09193402528762817 + ] + }, + "p244_046.wav": { + "name": "p244", + "embedding": [ + 0.04791818931698799, + 0.08609864115715027, + -0.02030625194311142, + 0.019749164581298828, + -0.04697047173976898, + 0.06421241909265518, + -0.1733590066432953, + 0.14996123313903809, + -0.036069706082344055, + 0.14066368341445923, + -0.06150658428668976, + 0.0978202074766159, + -0.026696739718317986, + -0.18999455869197845, + 0.00092223787214607, + 0.058914393186569214, + -0.005148790776729584, + -0.037921808660030365, + -0.006316957529634237, + -0.015434525907039642, + 0.023458244279026985, + 0.021961109712719917, + -0.008580186404287815, + 0.013651471585035324, + 0.03340781107544899, + 0.05684586986899376, + -0.029509807005524635, + 0.003958610817790031, + -0.01880345493555069, + -0.00290899770334363, + -0.026967283338308334, + 0.1127498671412468, + -0.06037798523902893, + -0.00849539041519165, + 0.06841224431991577, + -0.007149490527808666, + -0.03532452508807182, + -0.06844106316566467, + -0.0024724407121539116, + -0.021227112039923668, + -0.07278308272361755, + 0.0775364339351654, + 0.041226793080568314, + -0.013608792796730995, + 0.039751432836055756, + 0.024538526311516762, + 0.008911735378205776, + -0.03718043863773346, + -0.0983007401227951, + 0.1237051710486412, + 0.06161168962717056, + -0.005780732724815607, + -0.07843081653118134, + -0.03526226058602333, + 0.09053707867860794, + 0.005079975351691246, + -0.09155043959617615, + -0.05482185259461403, + 0.09161026030778885, + 0.1439078152179718, + -0.03793584555387497, + -0.03414825350046158, + 0.023337747901678085, + 0.12157924473285675, + 0.05672366917133331, + 0.09753498435020447, + 0.05818276107311249, + 0.1317387819290161, + -0.021914232522249222, + 0.007747824303805828, + 0.05691039562225342, + 0.036855340003967285, + 0.04286675155162811, + -0.044416047632694244, + 0.014036049135029316, + -0.011720127426087856, + -0.022281821817159653, + -0.0031427089124917984, + -0.02866743877530098, + -0.02997453510761261, + -0.007567734457552433, + -0.01350860670208931, + -0.002449492923915386, + 0.04129207879304886, + -0.02476903423666954, + 0.02982398308813572, + 0.09159794449806213, + -0.0196663960814476, + 0.08686796575784683, + 0.04026409238576889, + 0.00786940474063158, + 0.06666909158229828, + -0.11174146831035614, + -0.05790012702345848, + 0.05675750970840454, + -0.007265503518283367, + 0.002614246681332588, + 0.07997490465641022, + 0.04901735484600067, + -0.009443875402212143, + 0.12860631942749023, + 0.022172836586833, + 0.006866768002510071, + 0.036836639046669006, + -0.09122829139232635, + 0.14913401007652283, + 0.05719463527202606, + -0.04908089339733124, + 0.04208863526582718, + -0.06420233845710754, + 0.04331347718834877, + 0.07234324514865875, + -0.13189789652824402, + -0.04517822712659836, + 0.054003894329071045, + 0.012185444124042988, + -0.04223601892590523, + 0.15393370389938354, + 0.008404126390814781, + 0.014087095856666565, + 0.10197106748819351, + -0.08806939423084259, + -0.07262252271175385, + -0.019862279295921326, + 0.04963568598031998, + -0.09022919833660126, + 0.0740722194314003, + 0.06498444825410843, + -0.004559494089335203, + 0.021265864372253418, + 0.07214614748954773, + -0.0029693455435335636, + -0.001893337583169341, + -0.009868279099464417, + -0.020660530775785446, + 0.03809455782175064, + -0.015640880912542343, + 0.01762366108596325, + 0.005972175393253565, + 0.005791465751826763, + 0.05788028985261917, + -0.004773234482854605, + 0.006649308372288942, + -0.10859546065330505, + 0.006629674695432186, + 0.04130848869681358, + 0.10004925727844238, + -0.01395219936966896, + -0.02369247004389763, + -0.04772362858057022, + -0.07501162588596344, + 0.0024065510369837284, + -0.02374560758471489, + 0.07877032458782196, + 0.005498568993061781, + 0.0076546743512153625, + 0.10204358398914337, + 0.04980762302875519, + 0.027168525382876396, + -0.06702670454978943, + -0.022298963740468025, + 0.008537614718079567, + 0.062157463282346725, + -0.09259136021137238, + -0.06668514013290405, + -0.021348848938941956, + 0.028708118945360184, + -0.027795374393463135, + 0.0534653477370739, + 0.04086209088563919, + 0.04209458455443382, + 0.012112114578485489, + -0.08924613893032074, + 0.02957664057612419, + -0.0890149474143982, + -0.06426816433668137, + -0.01918785274028778, + -0.0034944163635373116, + -0.02150624617934227, + 0.0808963030576706, + 0.014248626306653023, + 0.03842344135046005, + -0.03283168375492096, + -0.05696577578783035, + -0.07742127776145935, + 0.045184046030044556, + 0.059112273156642914, + -0.04070518910884857, + 0.02882145345211029, + 0.04365237057209015, + -0.04898493364453316, + 0.01126204151660204, + 0.06374762952327728, + 0.10832351446151733, + -0.029205352067947388, + 0.028193579986691475, + -0.05941461771726608, + 0.10252612829208374, + 0.0975145474076271, + -0.08362990617752075, + -0.08715152740478516, + -0.020395338535308838, + -0.04796089231967926, + 0.013318775221705437, + -0.03955643251538277, + -0.0023355367593467236, + 0.0001646681921556592, + -0.023714236915111542, + -0.09558136016130447, + -0.09607821702957153, + 0.06602247059345245, + -0.07804249227046967, + 0.004021617118269205, + -0.11487875133752823, + 0.05909181013703346, + 0.07432693243026733, + 0.03395532816648483, + -0.05898323655128479, + -0.03330725058913231, + 0.04996313899755478, + -0.017530035227537155, + 0.025102373212575912, + 0.06493964791297913, + 0.04012791067361832, + -0.1265983283519745, + -0.016959384083747864, + -0.05619068816304207, + 0.08316856622695923, + -0.04807935655117035, + 0.15506158769130707, + 0.024122335016727448, + -0.04619833081960678, + -0.07194448262453079, + 0.017747873440384865, + 0.024276399984955788, + 0.04009713977575302, + 0.019906984642148018, + 0.06824712455272675, + 0.04056765139102936, + -0.036776453256607056, + 0.10655753314495087, + 0.036514878273010254, + -0.009652627632021904, + -0.05594159662723541, + -0.04375306889414787, + -0.04857981204986572, + 0.030800441280007362, + 0.00521886209025979, + -0.12298768013715744, + -0.022811580449342728, + 0.046436429023742676, + 0.0037898181471973658, + 0.06626251339912415, + 0.13355503976345062, + 0.06465938687324524, + -0.12205636501312256 + ] + }, + "p244_300.wav": { + "name": "p244", + "embedding": [ + 0.049968041479587555, + 0.09801331162452698, + 0.01460002176463604, + -0.005377164110541344, + -0.0104905404150486, + 0.07790542393922806, + -0.1693437546491623, + 0.1378060132265091, + -0.05347730219364166, + 0.1628655195236206, + -0.0824340283870697, + 0.08920694887638092, + -0.012255407869815826, + -0.2125743329524994, + -0.04178578406572342, + 0.03335980325937271, + -0.04350697249174118, + 0.005362793803215027, + -0.042598895728588104, + -0.02142670378088951, + 0.03858514130115509, + 0.03654477000236511, + 0.0021675927564501762, + -0.00543582160025835, + 0.02252454124391079, + 0.04389685019850731, + -0.011978646740317345, + 0.029601523652672768, + -0.009745283983647823, + -0.042751483619213104, + -0.024842703714966774, + 0.13371127843856812, + -0.04272344708442688, + 0.02748459205031395, + 0.07552188634872437, + -0.002824552357196808, + -0.01807442493736744, + -0.043116770684719086, + -0.013014223426580429, + 0.014325144700706005, + -0.04472476989030838, + 0.05777670443058014, + 0.024044761434197426, + 0.017070749774575233, + 0.057123128324747086, + 0.039233241230249405, + 0.011941354721784592, + -0.04855477064847946, + -0.07187508046627045, + 0.14665763080120087, + 0.06575113534927368, + -0.007841753773391247, + -0.06874606758356094, + -0.0667777806520462, + 0.10466133803129196, + -0.021709300577640533, + -0.11968672275543213, + -0.015139508992433548, + 0.09630942344665527, + 0.1690642237663269, + -0.03314473479986191, + -0.04365881532430649, + 0.02511690929532051, + 0.11127861589193344, + 0.0002902494743466377, + 0.11083859205245972, + 0.07260331511497498, + 0.08234839141368866, + -0.005470833275467157, + 0.017871864140033722, + 0.03815460950136185, + 0.03642918914556503, + 0.06226321682333946, + -0.061770565807819366, + 0.027827410027384758, + 0.0015827817842364311, + -0.031456634402275085, + 0.010313575156033039, + -0.02652036026120186, + 2.4028937332332134e-05, + -0.01255882903933525, + -0.0021326979622244835, + -0.006473037879914045, + 0.006419507786631584, + -0.03508232906460762, + 0.015024224296212196, + 0.026230130344629288, + -0.012025833129882812, + 0.07365226745605469, + 0.06338165700435638, + 0.03642941638827324, + 0.053670480847358704, + -0.06668940931558609, + -0.08650785684585571, + 0.03812621161341667, + -0.002086791442707181, + -0.0179511196911335, + 0.0647687315940857, + 0.05084738880395889, + -0.010798136703670025, + 0.10493838787078857, + 0.04226839542388916, + 0.0013655535876750946, + 0.03332860767841339, + -0.12789404392242432, + 0.10738347470760345, + 0.07821457087993622, + -0.033362314105033875, + 0.054702404886484146, + -0.05284057557582855, + 0.07704795897006989, + 0.09062460064888, + -0.14442186057567596, + -0.06370437145233154, + 0.046465251594781876, + 0.024929773062467575, + -0.0005151897203177214, + 0.11791570484638214, + -0.00872720219194889, + -0.005677691660821438, + 0.0838419571518898, + -0.07578405737876892, + -0.05144283547997475, + -0.04001475125551224, + 0.05565605312585831, + -0.09013524651527405, + 0.06665147095918655, + 0.03782406076788902, + -0.0024431077763438225, + -0.004615898244082928, + 0.08816733956336975, + -0.016630027443170547, + -0.0006712350295856595, + -0.024540826678276062, + -0.005647690035402775, + 0.020359162241220474, + -0.03564242273569107, + 0.02166319079697132, + 0.0017500901594758034, + 0.037341468036174774, + 0.03697217255830765, + 0.024965092539787292, + -0.053579505532979965, + -0.0859847366809845, + -0.005547437816858292, + 0.04842324182391167, + 0.07005086541175842, + -0.009699261747300625, + -0.012924430891871452, + -0.04207606986165047, + -0.06437771022319794, + 0.033018600195646286, + -0.04126707464456558, + 0.08047182857990265, + 0.01330801472067833, + 0.007306352723389864, + 0.10757339000701904, + 0.02102476917207241, + -0.006282346323132515, + -0.0706862136721611, + -0.014108334667980671, + -0.003657124238088727, + 0.039428357034921646, + -0.09215399622917175, + -0.06160061061382294, + -0.006053785793483257, + 0.009721261449158192, + -0.007377368398010731, + 0.0491500049829483, + 0.04245437681674957, + 0.01808256283402443, + 0.0395950973033905, + -0.08897961676120758, + 0.005591139663010836, + -0.13117045164108276, + -0.07865756750106812, + -0.023884737864136696, + -0.03147459775209427, + 0.001926939468830824, + 0.09207874536514282, + 0.002940988866612315, + 0.00806216336786747, + -0.02848585695028305, + -0.07214745134115219, + -0.07034303992986679, + 0.0618055984377861, + 0.07659806311130524, + -0.01004987582564354, + 0.03028515726327896, + 0.03506414592266083, + -0.038056470453739166, + 0.07746073603630066, + 0.08469566702842712, + 0.11450894176959991, + -0.019682489335536957, + 0.052997857332229614, + -0.0664597749710083, + 0.08537492156028748, + 0.07700799405574799, + -0.06556370854377747, + -0.11971497535705566, + -0.014681736938655376, + -0.057039935141801834, + 0.02835647016763687, + -0.015776991844177246, + 0.005518275313079357, + 0.007290154695510864, + -0.019666224718093872, + -0.06684578210115433, + -0.0738009661436081, + 0.08203267306089401, + -0.054844025522470474, + -0.01612848788499832, + -0.07367096096277237, + 0.06959375739097595, + 0.07275247573852539, + 0.034886546432971954, + -0.037770915776491165, + -0.010585675947368145, + 0.04974190145730972, + -0.05061698704957962, + -0.010638154111802578, + 0.014809029176831245, + 0.008751391433179379, + -0.10545440763235092, + 0.019290614873170853, + -0.07960225641727448, + 0.08578118681907654, + -0.07007355988025665, + 0.13631197810173035, + -0.013089260086417198, + -0.08219916373491287, + -0.06222696602344513, + 0.031383223831653595, + -0.005087338387966156, + 0.024380620568990707, + 0.024639854207634926, + 0.07244230806827545, + 0.029566925019025803, + -0.051001351326704025, + 0.08489914238452911, + 0.01831376738846302, + -0.008295181207358837, + -0.05863580107688904, + -0.05338042974472046, + -0.031499359756708145, + 0.01197637990117073, + -0.011564143002033234, + -0.1041250228881836, + -0.011529695242643356, + 0.01753697171807289, + -0.002906979527324438, + 0.05715493857860565, + 0.1306975781917572, + 0.04335624724626541, + -0.1530175358057022 + ] + }, + "p244_359.wav": { + "name": "p244", + "embedding": [ + 0.030348509550094604, + 0.07768439501523972, + 0.008555657230317593, + 0.026563158258795738, + -0.003425696399062872, + 0.03968236595392227, + -0.14213767647743225, + 0.09931924939155579, + -0.03579817712306976, + 0.11898067593574524, + -0.1088065654039383, + 0.03258625045418739, + -0.05459073558449745, + -0.1744261384010315, + -0.03414885699748993, + 0.047865115106105804, + -0.059553518891334534, + -0.027496717870235443, + -0.018090086057782173, + 0.0011552581563591957, + 0.039432890713214874, + 0.02287905663251877, + -0.021516846492886543, + 0.022532237693667412, + 0.019280992448329926, + 0.036701351404190063, + 0.02423138916492462, + 0.0501369908452034, + 0.014246553182601929, + 0.024666864424943924, + 0.009850061498582363, + 0.1277129352092743, + -0.013467584736645222, + 0.008990117348730564, + 0.0611703135073185, + 0.04214859753847122, + -0.02114127390086651, + -0.043290071189403534, + -0.015811145305633545, + 0.0068585313856601715, + -0.0882788747549057, + 0.04824105650186539, + 0.053009338676929474, + 0.01199687086045742, + 0.029852204024791718, + 0.04430702328681946, + 0.007568409666419029, + -0.05850266292691231, + -0.09625974297523499, + 0.15484432876110077, + 0.07401220500469208, + -0.017841212451457977, + -0.050559982657432556, + -0.0809403508901596, + 0.08972951024770737, + 0.00837460346519947, + -0.09471327066421509, + -0.02482648566365242, + 0.11383843421936035, + 0.16216732561588287, + -0.03047655150294304, + -0.01958788000047207, + 0.003326050005853176, + 0.12937864661216736, + 0.03136890381574631, + 0.10415197163820267, + 0.03820474445819855, + 0.0994965136051178, + 0.014583373442292213, + 0.018332550302147865, + 0.09276241809129715, + 0.0392945222556591, + 0.03993486240506172, + -0.044743433594703674, + 0.016079897060990334, + 0.04637405276298523, + -0.044201891869306564, + 0.05792469531297684, + 0.003222801722586155, + -5.4017058573663235e-05, + 0.002703331410884857, + -0.018949167802929878, + -0.01241887267678976, + 0.00048419320955872536, + -0.010416262783110142, + 0.029480237513780594, + 0.023609528318047523, + -0.004579249769449234, + 0.0852782130241394, + 0.04276464879512787, + -0.0032359501346945763, + 0.06789330393075943, + -0.038316838443279266, + -0.09003821015357971, + -0.004708915017545223, + -0.019900182262063026, + 0.027956852689385414, + 0.06483131647109985, + 0.046050697565078735, + -0.010565008036792278, + 0.09901370108127594, + 0.011695018038153648, + 0.015961287543177605, + 0.037968698889017105, + -0.13788272440433502, + 0.10301129519939423, + 0.05034896731376648, + -0.034958381205797195, + 0.01763630285859108, + -0.023578613996505737, + 0.0717649757862091, + 0.10025953501462936, + -0.14547041058540344, + -0.0309885423630476, + 0.06549885123968124, + 0.028332870453596115, + -0.007599616423249245, + 0.11848878860473633, + -0.010113263502717018, + -0.056973766535520554, + 0.11067688465118408, + -0.08056318759918213, + -0.0626942366361618, + -0.04061775654554367, + 0.05491669476032257, + -0.08855116367340088, + 0.01893702708184719, + 0.04150834679603577, + -0.008965986780822277, + -0.03933119773864746, + 0.08321428298950195, + -0.018402911722660065, + -0.004150300286710262, + -0.02816198393702507, + -0.001608746126294136, + 0.08218800276517868, + -0.0534159317612648, + 0.03766867518424988, + 0.03371047601103783, + 0.0400828942656517, + 0.015166142955422401, + 0.04485899955034256, + -0.06117885187268257, + -0.09417816996574402, + 0.002391309477388859, + 0.07609342038631439, + 0.07274405658245087, + -0.019503481686115265, + -0.03525914251804352, + -0.05850470811128616, + -0.06206020712852478, + 0.05045386776328087, + -0.001446128822863102, + 0.07098669558763504, + 0.023719200864434242, + -0.04152993857860565, + 0.12781396508216858, + -0.024683237075805664, + 0.006563086993992329, + -0.07417108863592148, + -0.011478226631879807, + 0.01909732073545456, + 0.043920695781707764, + -0.08255484700202942, + -0.07366518676280975, + 0.012730870395898819, + 0.020668990910053253, + 0.012241153046488762, + -0.0249724630266428, + 0.00860169529914856, + 0.010125966742634773, + 0.021382739767432213, + -0.07976174354553223, + 0.012401029467582703, + -0.13077697157859802, + -0.06890575587749481, + -0.023223867639899254, + -0.005381791386753321, + 0.030310755595564842, + 0.0655221939086914, + -0.019187504425644875, + -0.010231351479887962, + 0.014959679916501045, + -0.09263556450605392, + -0.04564449563622475, + 0.09276473522186279, + 0.10907714068889618, + 0.012481685727834702, + 0.0659794807434082, + 0.04486147314310074, + -0.06362027674913406, + 0.019148707389831543, + 0.04368545487523079, + 0.14140041172504425, + -0.03712480515241623, + 0.007988227531313896, + -0.05061483383178711, + 0.08063691854476929, + 0.04381818324327469, + -0.09705153107643127, + -0.086191326379776, + -0.005536822602152824, + -0.03728656470775604, + 0.0372922383248806, + -0.02223260886967182, + 0.012410702183842659, + -0.020342914387583733, + -0.04747268930077553, + -0.06914907693862915, + -0.07041965425014496, + 0.045562516897916794, + -0.031698767095804214, + -0.029494337737560272, + -0.07949737459421158, + 0.06260428577661514, + 0.0687737762928009, + 0.05155980587005615, + -0.013788032345473766, + 0.006924600340425968, + 0.037457339465618134, + -0.08222178369760513, + -0.06086341291666031, + 0.007522867992520332, + -0.03559621796011925, + -0.10168305039405823, + -0.003255570773035288, + -0.07277602702379227, + 0.10974694788455963, + -0.07327708601951599, + 0.12061531841754913, + -0.03703213110566139, + -0.07921376824378967, + -0.06840967386960983, + -0.004409912042319775, + 0.00881499145179987, + 0.03542075678706169, + 0.04922432824969292, + 0.03733903169631958, + 0.007337949704378843, + -0.01376580074429512, + 0.1118457168340683, + 0.004669263958930969, + 0.0177265927195549, + -0.032833073288202286, + -0.02352018468081951, + -0.022904200479388237, + 0.00863576028496027, + -0.019273050129413605, + -0.09106748551130295, + -0.0032625719904899597, + 0.01978735812008381, + -0.04562909156084061, + 0.030306469649076462, + 0.11061010509729385, + 0.055528730154037476, + -0.11465846002101898 + ] + }, + "p244_102.wav": { + "name": "p244", + "embedding": [ + 0.0430225133895874, + 0.0539373978972435, + -0.03737715631723404, + 0.03839384764432907, + -0.07569047063589096, + 0.0445113405585289, + -0.13211029767990112, + 0.11113637685775757, + -0.041927166283130646, + 0.1266823709011078, + -0.05347640812397003, + 0.11221153289079666, + -0.01134815625846386, + -0.21096853911876678, + -0.01795266941189766, + 0.061899203807115555, + -0.06458897888660431, + -0.06837959587574005, + -0.053076136857271194, + -0.04615628719329834, + 0.03242522478103638, + 0.060048721730709076, + 0.018194379284977913, + 0.023188291117548943, + 0.019636016339063644, + 0.07649858295917511, + -0.020031925290822983, + 0.018023021519184113, + -0.002662018174305558, + -0.048287149518728256, + -0.059319376945495605, + 0.08876129984855652, + -0.05029842257499695, + -0.01397632248699665, + 0.03139262646436691, + -0.009115978144109249, + 0.004804037511348724, + -0.0705767571926117, + -0.05654650554060936, + 0.023940205574035645, + -0.07582558691501617, + 0.07638464868068695, + 0.049024228006601334, + -0.019833985716104507, + 0.05372598394751549, + -0.010075511410832405, + -0.03245002403855324, + -0.05059707164764404, + -0.11141987144947052, + 0.16354015469551086, + 0.09242982417345047, + -0.004909676034003496, + -0.04896428436040878, + -0.05694033205509186, + 0.11498412489891052, + -0.011041943915188313, + -0.13472098112106323, + -0.03895661234855652, + 0.07875931262969971, + 0.15260660648345947, + -0.03568674623966217, + -0.023113053292036057, + 0.036222200840711594, + 0.11538784205913544, + 0.06419387459754944, + 0.08427874743938446, + 0.07476839423179626, + 0.10366985201835632, + -0.021568220108747482, + -0.002773015294224024, + 0.10140321403741837, + 0.07675415277481079, + 0.04877643659710884, + -0.0250396691262722, + 0.024526633322238922, + 0.028665583580732346, + -0.031440041959285736, + -0.009204463101923466, + -0.009552412666380405, + 0.0131557397544384, + -0.004523593001067638, + -0.004756622016429901, + 0.016074756160378456, + 0.017824772745370865, + -0.027924057096242905, + 0.0570589043200016, + 0.05087224394083023, + -0.0014556339010596275, + 0.05766984075307846, + 0.03507053107023239, + -0.0019134795293211937, + 0.06863532215356827, + -0.06402253359556198, + -0.07259349524974823, + 0.02617669850587845, + 0.02047777734696865, + 0.008621025830507278, + 0.07255026698112488, + 0.045982763171195984, + -0.02597293257713318, + 0.12951169908046722, + 0.04235372692346573, + -0.008816368877887726, + 0.03464014083147049, + -0.09544213116168976, + 0.1047326922416687, + 0.09472894668579102, + -0.02723640203475952, + 0.04840164631605148, + -0.0429169200360775, + 0.09450362622737885, + 0.06854903697967529, + -0.14027078449726105, + -0.04946266859769821, + 0.04936899244785309, + 0.009163052774965763, + -0.010623672045767307, + 0.13939180970191956, + -0.004662188235670328, + 0.038035519421100616, + 0.11626236885786057, + -0.08133769035339355, + -0.044369108974933624, + -0.022429462522268295, + 0.05786089971661568, + -0.0917532816529274, + 0.0550692155957222, + 0.051606930792331696, + -0.014153923839330673, + 0.017764169722795486, + 0.07237815856933594, + -0.027876053005456924, + -0.01682601310312748, + -0.003176904283463955, + -0.03572098910808563, + 0.0347004309296608, + -0.014770491980016232, + -0.009532537311315536, + 0.08457052707672119, + 0.02287433296442032, + 0.02701174095273018, + -0.016597239300608635, + -0.030893463641405106, + -0.13113197684288025, + 0.035148635506629944, + 0.010990448296070099, + 0.09693142026662827, + -0.006166107952594757, + 0.0016965181566774845, + -0.05810495465993881, + -0.09464967250823975, + 0.023657631129026413, + -0.019306715577840805, + 0.08095501363277435, + -0.02825925499200821, + -0.009544768370687962, + 0.07593156397342682, + 0.03461727872490883, + -0.00948033481836319, + -0.035972680896520615, + -0.0491919219493866, + 0.01014435850083828, + 0.06618952006101608, + -0.08035778999328613, + -0.06676628440618515, + -0.005774345248937607, + 0.03371158987283707, + -0.01720990613102913, + 0.03451649844646454, + 0.03245050460100174, + 0.024616623297333717, + 0.02158227376639843, + -0.09568929672241211, + 0.03199521079659462, + -0.11019712686538696, + -0.06290261447429657, + -0.01081261970102787, + -0.018080558627843857, + -0.007430730387568474, + 0.08192767202854156, + 0.005604485981166363, + 0.02585793286561966, + -0.03650568053126335, + -0.08845193684101105, + -0.06960691511631012, + 0.06260506808757782, + 0.06530150771141052, + 0.0011411313898861408, + 0.04428445175290108, + 0.06581991910934448, + -0.03202700614929199, + 0.03726353496313095, + 0.04070156067609787, + 0.12071744352579117, + -0.01693282276391983, + 0.031210407614707947, + -0.04292115569114685, + 0.10087241977453232, + 0.060816869139671326, + -0.07864196598529816, + -0.06585988402366638, + -0.020686758682131767, + -0.05931799113750458, + 0.05354519188404083, + -0.022308506071567535, + 0.002782419789582491, + 0.011945844627916813, + 0.006805784069001675, + -0.10159777104854584, + -0.08181186020374298, + 0.08036187291145325, + -0.04692530632019043, + -0.01781248301267624, + -0.09689954668283463, + 0.0362117625772953, + 0.10981318354606628, + 0.03773040324449539, + -0.026323864236474037, + 0.00456186942756176, + 0.043397460132837296, + -0.028127577155828476, + 0.016535427421331406, + 0.06927508860826492, + 0.03388071805238724, + -0.12066423147916794, + -0.034208547323942184, + -0.07544130831956863, + 0.07587596774101257, + -0.04062763974070549, + 0.14039717614650726, + 0.015053401701152325, + -0.03591234236955643, + -0.07308107614517212, + 0.05595755949616432, + 0.0017035757191479206, + 0.06483720242977142, + 0.05129917711019516, + 0.0727454125881195, + 0.052974216639995575, + -0.04354061931371689, + 0.10226841270923615, + 0.04978279024362564, + -0.041273295879364014, + -0.043258845806121826, + -0.013074418529868126, + -0.030807897448539734, + 0.02389458194375038, + 0.022466275840997696, + -0.08973407000303268, + -0.0030692466534674168, + 0.02394942194223404, + -0.030545353889465332, + 0.05711883306503296, + 0.1369554102420807, + 0.07677972316741943, + -0.11180759966373444 + ] + }, + "p244_073.wav": { + "name": "p244", + "embedding": [ + 0.050025369971990585, + 0.09468891471624374, + -0.006306699477136135, + 0.025102226063609123, + -0.04868593439459801, + 0.07750745117664337, + -0.13614723086357117, + 0.1285698562860489, + -0.03822711482644081, + 0.14091086387634277, + -0.06929503381252289, + 0.12306427955627441, + -0.010437111370265484, + -0.18395625054836273, + -0.04701977223157883, + 0.04812866076827049, + -0.051997050642967224, + -0.02401163801550865, + -0.035993412137031555, + -0.020998410880565643, + 0.042366739362478256, + 0.035661038011312485, + 0.04340088367462158, + 0.008436123840510845, + 0.02057529240846634, + 0.061848919838666916, + 0.014651848934590816, + 0.06731360405683517, + 0.02986729145050049, + -0.05034512281417847, + -0.039283379912376404, + 0.115561842918396, + -0.04078389331698418, + 0.024425527080893517, + 0.04877111315727234, + -0.009167520329356194, + 0.007816383615136147, + -0.06248391419649124, + -0.012126735411584377, + 0.009464703500270844, + -0.030846383422613144, + 0.07554687559604645, + 0.03140247240662575, + 0.00025807012571021914, + 0.03240381181240082, + 0.023040732368826866, + -0.018590042367577553, + -0.045769866555929184, + -0.1027064248919487, + 0.16036877036094666, + 0.07553015649318695, + -0.003921149764209986, + -0.06191285699605942, + -0.06800320744514465, + 0.10461169481277466, + -0.014925338327884674, + -0.11423198878765106, + -0.02995961904525757, + 0.0834035575389862, + 0.16206830739974976, + -0.034719228744506836, + -0.036888182163238525, + 0.024924151599407196, + 0.1350749135017395, + 0.043276816606521606, + 0.09140702337026596, + 0.08970780670642853, + 0.11004974693059921, + -0.013502801768481731, + 0.02018960565328598, + 0.04397713392972946, + 0.07516889274120331, + 0.04350581392645836, + -0.0042374818585813046, + 0.028446203097701073, + -0.009860394522547722, + -0.007762949448078871, + 0.014648607932031155, + -0.034249454736709595, + -0.017816556617617607, + -0.014192802831530571, + 0.007740188390016556, + 0.0055510373786091805, + 0.020933568477630615, + -0.024694232270121574, + 0.058536797761917114, + 0.011033186689019203, + -0.007938012480735779, + 0.06242240592837334, + 0.03340506553649902, + 0.013554271310567856, + 0.061150263994932175, + -0.06900466978549957, + -0.09568478167057037, + 0.02689513936638832, + 0.004911785013973713, + 0.027743559330701828, + 0.07634192705154419, + 0.04007009416818619, + -0.013964062556624413, + 0.11124905198812485, + 0.055918898433446884, + -0.023619771003723145, + 0.03462102264165878, + -0.09409746527671814, + 0.1252983808517456, + 0.08816325664520264, + -0.018559778109192848, + 0.04702261835336685, + -0.060387998819351196, + 0.08684112876653671, + 0.06394079327583313, + -0.13587582111358643, + -0.07668689638376236, + 0.0288423802703619, + 0.024168789386749268, + -0.021931758150458336, + 0.10796979069709778, + -0.0223039910197258, + 0.032515764236450195, + 0.09685595333576202, + -0.06980850547552109, + -0.04726937413215637, + -0.027023321017622948, + 0.04679577052593231, + -0.07220196723937988, + 0.040553875267505646, + 0.03369423374533653, + -0.007609399035573006, + -0.00770993297919631, + 0.08336915820837021, + -0.010960239917039871, + -0.007674570195376873, + 0.029892727732658386, + -0.05243418738245964, + 0.02836260199546814, + -0.030233047902584076, + 0.011005209758877754, + 0.03724243491888046, + 0.04648425430059433, + 0.04421566054224968, + 0.0024422656279057264, + -0.038187094032764435, + -0.10685497522354126, + 0.00795949250459671, + 0.034948933869600296, + 0.07179580628871918, + -0.009818065911531448, + -0.03200843930244446, + -0.041476961225271225, + -0.05986769497394562, + 0.030073752626776695, + -0.012694183737039566, + 0.07140501588582993, + -0.0210605226457119, + -0.0019267270108684897, + 0.08836772292852402, + 0.014559405855834484, + -0.004175232257694006, + -0.05113280564546585, + -0.0276580061763525, + 0.01576733961701393, + 0.04091668874025345, + -0.08266079425811768, + -0.0626341849565506, + 0.0060415118932724, + 0.02659047767519951, + -0.03424331173300743, + 0.04230711981654167, + 0.04197145253419876, + 0.015760626643896103, + 0.03797220438718796, + -0.06182323396205902, + -0.0037741544656455517, + -0.11045217514038086, + -0.06344986706972122, + -0.012600040063261986, + -0.009686823934316635, + -0.014872429892420769, + 0.0753248929977417, + 0.021330304443836212, + 0.049755584448575974, + -0.009720422327518463, + -0.06223946809768677, + -0.07657334208488464, + 0.061113081872463226, + 0.07651621103286743, + 0.009165244176983833, + 0.059780895709991455, + 0.056060634553432465, + -0.024654731154441833, + 0.06656038016080856, + 0.06306269019842148, + 0.09853903949260712, + -0.027438243851065636, + 0.01570606417953968, + -0.07912309467792511, + 0.07436473667621613, + 0.08575873076915741, + -0.0932183489203453, + -0.09049467742443085, + -0.02201438508927822, + -0.07154171168804169, + 0.03490672633051872, + -0.029067521914839745, + -0.004530402831733227, + 0.03233179450035095, + -0.004893789999186993, + -0.10126271098852158, + -0.08511736243963242, + 0.08919872343540192, + -0.07849450409412384, + -0.010427067056298256, + -0.07118475437164307, + 0.05186426267027855, + 0.10312867164611816, + 0.030673181638121605, + -0.029781712219119072, + -0.008348381146788597, + 0.056848566979169846, + -0.04707678407430649, + -0.0067833526991307735, + 0.03531728312373161, + 0.024210384115576744, + -0.11635036766529083, + 0.013965512625873089, + -0.07389486581087112, + 0.04277389869093895, + -0.05636947974562645, + 0.15073639154434204, + 0.0035770591348409653, + -0.057158462703228, + -0.07108616083860397, + 0.04859982430934906, + -0.03221463784575462, + 0.04725079983472824, + 0.036441951990127563, + 0.05647174268960953, + 0.02352149784564972, + -0.0855683833360672, + 0.13024096190929413, + 0.03629671782255173, + -0.04844909906387329, + -0.08672253787517548, + -0.030435342341661453, + -0.029809799045324326, + 0.03421724960207939, + 0.019117143005132675, + -0.08216220140457153, + -0.03539983183145523, + 0.025588396936655045, + -0.0269588902592659, + 0.06715121865272522, + 0.1439489722251892, + 0.06829582154750824, + -0.11346214264631271 + ] + }, + "p244_380.wav": { + "name": "p244", + "embedding": [ + 0.013977156952023506, + 0.06790954619646072, + -0.04052652418613434, + 0.031308140605688095, + -0.06747622042894363, + 0.04213244467973709, + -0.11638307571411133, + 0.08593550324440002, + -0.05164726823568344, + 0.11586429178714752, + -0.057797424495220184, + 0.08693459630012512, + -0.05798383429646492, + -0.16135907173156738, + -0.004745818674564362, + 0.08203017711639404, + -0.029021086171269417, + -0.045582547783851624, + -0.045329272747039795, + -0.027362871915102005, + 0.021520139649510384, + 0.01095966063439846, + 0.036966145038604736, + -0.024295005947351456, + 0.029374420642852783, + 0.06388232111930847, + -0.015622885897755623, + 0.00853461492806673, + -0.020870843902230263, + 0.006142172962427139, + -0.02938772365450859, + 0.08799991011619568, + -0.0328793004155159, + -0.04465601593255997, + 0.03385099396109581, + 0.007239095866680145, + -0.010864785872399807, + -0.07567732036113739, + 0.020904667675495148, + -0.02299526333808899, + -0.05988239124417305, + 0.07587135583162308, + 0.019331030547618866, + -0.038673289120197296, + 0.03174209967255592, + -0.030125092715024948, + -0.037907037883996964, + -0.007095793262124062, + -0.11728226393461227, + 0.13979537785053253, + 0.05963439494371414, + 0.008984653279185295, + -0.084353506565094, + -0.052475836127996445, + 0.10475218296051025, + 0.018175670877099037, + -0.09120997786521912, + -0.08472849428653717, + 0.06579320132732391, + 0.14563682675361633, + -0.011699935421347618, + -0.013315165415406227, + 0.02523159421980381, + 0.08954809606075287, + 0.04779740795493126, + 0.07663659751415253, + 0.05395541340112686, + 0.09860788285732269, + 0.00479824049398303, + 0.020014436915516853, + 0.07727955281734467, + 0.03503269702196121, + 0.010948042385280132, + -0.02449103444814682, + 0.016600431874394417, + -0.030751654878258705, + -0.03424938768148422, + -0.0009031300432980061, + -0.023626547306776047, + -0.06795116513967514, + -0.02011554315686226, + -0.037875354290008545, + 0.014735216274857521, + 0.009382423013448715, + -0.021297704428434372, + 0.018951866775751114, + 0.07411405444145203, + -0.038430437445640564, + 0.08233015239238739, + 0.03920704126358032, + -0.028404532000422478, + 0.04277238994836807, + -0.07377149164676666, + -0.061056748032569885, + 0.025939863175153732, + 0.003056139685213566, + -0.005695072002708912, + 0.054062873125076294, + 0.037920013070106506, + -0.03033341094851494, + 0.10569413751363754, + 0.04000004008412361, + 0.02254459448158741, + 0.029939282685518265, + -0.08991887420415878, + 0.11167331039905548, + 0.0881820023059845, + -0.021342061460018158, + 0.020952347666025162, + -0.007511255331337452, + 0.0290372371673584, + 0.08119228482246399, + -0.1016245111823082, + -0.05910422280430794, + 0.005798760801553726, + -0.025263924151659012, + -0.01820685714483261, + 0.1013495922088623, + 0.020612603053450584, + 0.0031752996146678925, + 0.11809593439102173, + -0.1006234809756279, + -0.09614263474941254, + -0.022758638486266136, + 0.04308545961976051, + -0.06667616218328476, + 0.03673451021313667, + 0.09041289240121841, + 0.004973910748958588, + 0.0020864875987172127, + 0.05238916724920273, + 0.002670613117516041, + 0.013621492311358452, + 0.013434219174087048, + -0.0373506061732769, + 0.05703084543347359, + -0.031240394338965416, + -0.02986977808177471, + 0.07929966598749161, + 0.03415234014391899, + 0.05755551904439926, + -0.021560262888669968, + 0.03445431590080261, + -0.09477758407592773, + 0.007923225872218609, + 0.059557944536209106, + 0.047068119049072266, + -0.01991090178489685, + 0.006372484378516674, + -0.04884664714336395, + -0.09643448889255524, + 0.02145705185830593, + -0.016571827232837677, + 0.10778673738241196, + -0.012352574616670609, + -0.008642743341624737, + 0.11329932510852814, + 0.018727000802755356, + 0.0071049961261451244, + -0.03396013379096985, + -0.023094134405255318, + 0.048170171678066254, + 0.043377846479415894, + -0.08602429926395416, + -0.05497325584292412, + -0.0309092216193676, + 0.04159211367368698, + -0.005331383552402258, + 0.028301598504185677, + 0.05750802159309387, + 0.01612606830894947, + -0.0077966381795704365, + -0.07166031002998352, + 0.06478056311607361, + -0.04721618443727493, + -0.0059195272624492645, + -0.009956683032214642, + -0.06868822127580643, + -0.022694185376167297, + 0.08215251564979553, + 0.021549042314291, + 0.0036403872072696686, + -0.04225257411599159, + -0.0926898941397667, + -0.06481640785932541, + 0.03595063090324402, + 0.0550440177321434, + -0.03400982916355133, + 0.04179961606860161, + 0.05777309834957123, + -0.027368739247322083, + -0.010111319832503796, + 0.055434584617614746, + 0.09657125174999237, + -0.027499718591570854, + -0.03702538460493088, + -0.06309280544519424, + 0.08289249241352081, + 0.0918731838464737, + -0.09060847759246826, + -0.05475857853889465, + -0.056424424052238464, + -0.03783833608031273, + 0.03533169627189636, + -0.040616475045681, + 0.0018740375526249409, + 0.03135288879275322, + -0.0343964584171772, + -0.10193973779678345, + -0.13044196367263794, + 0.10127010196447372, + -0.04929221421480179, + -0.021886035799980164, + -0.06672253459692001, + 0.027334121987223625, + 0.030293557792901993, + 0.00800785981118679, + -0.04374115914106369, + 0.014034748077392578, + 0.0197441466152668, + -0.04227215796709061, + 0.0261215977370739, + 0.05880095809698105, + 0.015579446218907833, + -0.08835114538669586, + -0.02471441961824894, + -0.08328090608119965, + 0.11049963533878326, + -0.030021781101822853, + 0.14694847166538239, + -0.006484383717179298, + -0.0024389512836933136, + -0.08935835212469101, + 0.03483014926314354, + -0.006636002566665411, + 0.07277784496545792, + 0.06277797371149063, + 0.06766960769891739, + 0.017642345279455185, + -0.04242781922221184, + 0.1022244542837143, + 0.03702020272612572, + -0.02042987011373043, + -0.06337658315896988, + -0.0010861065238714218, + -0.06406739354133606, + 0.007201822474598885, + -0.006285202689468861, + -0.07866798341274261, + 0.021153774112462997, + 0.032188691198825836, + -0.007751215249300003, + 0.07644884288311005, + 0.0912589281797409, + 0.07644154131412506, + -0.06099837273359299 + ] + }, + "p244_366.wav": { + "name": "p244", + "embedding": [ + 0.05085409805178642, + 0.0670686736702919, + -0.017226673662662506, + 0.0293086227029562, + -0.044026538729667664, + -0.0011953134089708328, + -0.14928144216537476, + 0.13163118064403534, + 0.011134255677461624, + 0.13107284903526306, + -0.07640716433525085, + 0.11196180433034897, + -0.01359421294182539, + -0.20764228701591492, + -0.005072839558124542, + 0.052787747234106064, + -0.028041161596775055, + -0.04100683331489563, + -0.028515605255961418, + -0.03610483929514885, + 0.042826395481824875, + 0.06877894699573517, + 0.019374005496501923, + 0.012615036219358444, + 0.007909136824309826, + 0.0772084891796112, + -0.007314398419111967, + 0.029493529349565506, + 0.0008794280583970249, + -0.027700548991560936, + -0.017559165135025978, + 0.09173493832349777, + -0.0403544120490551, + -0.004228388424962759, + 0.0382133387029171, + -0.016267284750938416, + -0.01226496696472168, + -0.044029563665390015, + -0.025033926591277122, + 0.019150715321302414, + -0.0724925547838211, + 0.068132184445858, + 0.02039487473666668, + -0.019460193812847137, + 0.07364826649427414, + 0.028724944218993187, + -0.023469015955924988, + -0.05228933319449425, + -0.11072307825088501, + 0.15626144409179688, + 0.09449710696935654, + -0.000653789087664336, + -0.06498056650161743, + -0.046945542097091675, + 0.06887988746166229, + -0.017642518505454063, + -0.09521948546171188, + -0.048091333359479904, + 0.08075737953186035, + 0.12235631048679352, + -0.026006614789366722, + -0.04016610234975815, + 0.05044165998697281, + 0.12413829565048218, + 0.06748602539300919, + 0.06921380013227463, + 0.07931749522686005, + 0.10358836501836777, + -0.04982781410217285, + -0.0075846146792173386, + 0.056043967604637146, + 0.06321180611848831, + 0.06375768780708313, + -0.015242952853441238, + 0.01914917677640915, + 0.01893724501132965, + -0.01899206079542637, + -0.020946774631738663, + -0.015297727659344673, + 0.004510984756052494, + -0.004505652468651533, + 0.005002297926694155, + -0.020885147154331207, + 0.03709785267710686, + -0.032443128526210785, + 0.047464869916439056, + 0.07302549481391907, + -0.007000552024692297, + 0.06750082224607468, + 0.037738338112831116, + 0.020419891923666, + 0.0640973448753357, + -0.09228697419166565, + -0.0656832680106163, + 0.02940038964152336, + -0.004019502084702253, + 0.006502562668174505, + 0.07582731544971466, + 0.049078747630119324, + -0.025137916207313538, + 0.13060736656188965, + 0.031714390963315964, + -0.0243767611682415, + 0.025476818904280663, + -0.09873418509960175, + 0.11460059136152267, + 0.09725730121135712, + -0.04103093594312668, + 0.03775591775774956, + -0.04929732531309128, + 0.050757259130477905, + 0.05530647560954094, + -0.1175805851817131, + -0.04079030081629753, + 0.04339802265167236, + 0.013811683282256126, + -0.01518404483795166, + 0.13868063688278198, + 0.00020996108651161194, + 0.04843778535723686, + 0.11880333721637726, + -0.07298990339040756, + -0.06130088120698929, + -0.033031392842531204, + 0.057804226875305176, + -0.11218637228012085, + 0.06844715774059296, + 0.05549861118197441, + 0.0032898352947086096, + 0.01518731564283371, + 0.07789964973926544, + -0.011777608655393124, + 0.002540184184908867, + -0.04070531576871872, + -0.019211189821362495, + 0.029824092984199524, + -0.025816660374403, + -0.009925898164510727, + 0.02613704651594162, + 0.020925652235746384, + 0.03841459006071091, + 0.00516651663929224, + -0.030071567744016647, + -0.13356314599514008, + 0.03662843257188797, + 0.02257009968161583, + 0.08171272277832031, + -0.013699542731046677, + -0.02153829112648964, + -0.0628013163805008, + -0.06399285793304443, + 0.005680585280060768, + -0.018062133342027664, + 0.04864518344402313, + -0.029082879424095154, + -0.005540390498936176, + 0.10222171247005463, + 0.01824648678302765, + 0.02005079947412014, + -0.01191074587404728, + -0.04252376779913902, + -0.0077728345058858395, + 0.05392754077911377, + -0.08858421444892883, + -0.08242686092853546, + -0.024000003933906555, + 0.027447447180747986, + 0.0007757818093523383, + 0.0593448132276535, + 0.04908888041973114, + 0.007528652902692556, + 0.004842091351747513, + -0.10006989538669586, + 0.01182630192488432, + -0.09884762018918991, + -0.08765855431556702, + -0.01826735958456993, + -0.003998443018645048, + 0.0015570521354675293, + 0.07226147502660751, + -0.0009670673753134906, + 0.044813916087150574, + -0.037501826882362366, + -0.08301500976085663, + -0.0931137204170227, + 0.046649396419525146, + 0.08539436757564545, + -0.02161845564842224, + 0.04968719184398651, + 0.048751816153526306, + -0.05311344563961029, + 0.04359713941812515, + 0.04705842584371567, + 0.10929615795612335, + -0.024895353242754936, + 0.038282353430986404, + -0.060064613819122314, + 0.09248365461826324, + 0.08937928080558777, + -0.07307444512844086, + -0.07582604885101318, + -0.02635362558066845, + -0.07325046509504318, + 0.03173784911632538, + -0.009884057566523552, + 0.01593635231256485, + 0.036145277321338654, + 0.00439275149255991, + -0.08528005331754684, + -0.08604592084884644, + 0.05700783431529999, + -0.05143602937459946, + -0.0041984873823821545, + -0.09667955338954926, + 0.04341677948832512, + 0.09445275366306305, + 0.04271339997649193, + -0.03443188592791557, + -0.04000169038772583, + 0.027259886264801025, + -0.008615976199507713, + 0.004325446672737598, + 0.044155314564704895, + 0.04436783120036125, + -0.12072961032390594, + -0.021931877359747887, + -0.06812672317028046, + 0.07399549335241318, + -0.0575198195874691, + 0.10598163306713104, + 0.03043750487267971, + -0.04580631107091904, + -0.09369494765996933, + 0.03592119365930557, + 0.012223056517541409, + 0.06361805647611618, + 0.02238444611430168, + 0.05402231961488724, + 0.042594872415065765, + -0.06385616958141327, + 0.10012947767972946, + 0.0571836493909359, + -0.0303624477237463, + -0.05940689891576767, + -0.038931287825107574, + -0.025729596614837646, + 0.03405177593231201, + 0.03150327131152153, + -0.08148278295993805, + -0.02010997384786606, + 0.023361992090940475, + -0.0273139588534832, + 0.04828052222728729, + 0.13030493259429932, + 0.04777144640684128, + -0.13580790162086487 + ] + }, + "p244_372.wav": { + "name": "p244", + "embedding": [ + 0.05733104795217514, + 0.09035584330558777, + -0.0674799457192421, + 0.01678674854338169, + -0.02285352163016796, + 0.051871947944164276, + -0.14151254296302795, + 0.10145170241594315, + -0.04185459762811661, + 0.13366682827472687, + -0.03486177325248718, + 0.10930806398391724, + -0.0007387548685073853, + -0.12698563933372498, + -0.02672582119703293, + 0.043290864676237106, + 0.013508656993508339, + -0.00466608302667737, + -0.03365962207317352, + 0.000635968055576086, + 0.03677349537611008, + 0.017415087670087814, + 0.016871776431798935, + -0.052286166697740555, + 0.021442992612719536, + 0.04421444237232208, + 0.0150107741355896, + 0.010867506265640259, + 0.0008865110576152802, + 0.0034209704026579857, + 0.0069201430305838585, + 0.08041664958000183, + -0.04085970297455788, + -0.00730693805962801, + 0.05829421803355217, + 0.017184995114803314, + -0.03687230497598648, + -0.06707696616649628, + 0.00912418495863676, + 0.02171766757965088, + -0.04473855346441269, + 0.0750008076429367, + 0.03293878957629204, + -0.03214138746261597, + 0.05211421102285385, + -0.030220355838537216, + -0.0071022603660821915, + -0.013494142331182957, + -0.06668394058942795, + 0.13318251073360443, + 0.06431329250335693, + 0.017523903399705887, + -0.0957476869225502, + -0.009879414923489094, + 0.09297850728034973, + 0.011899620294570923, + -0.058020077645778656, + -0.07234961539506912, + 0.02504071407020092, + 0.129949152469635, + -0.007936263456940651, + -0.03676142916083336, + 0.030724268406629562, + 0.09560272842645645, + 0.04965270310640335, + 0.05461284890770912, + 0.08459322154521942, + 0.09206856787204742, + 0.004799109883606434, + 0.024314353242516518, + 0.036570191383361816, + 0.06704433262348175, + 0.009090223349630833, + -0.025997400283813477, + 0.029857806861400604, + -0.026604363694787025, + -0.031231887638568878, + -0.017487429082393646, + -0.020572379231452942, + -0.05050205439329147, + -0.025242380797863007, + 0.0005858428776264191, + 0.014840181916952133, + 0.0555109977722168, + -0.05065262317657471, + 0.021962732076644897, + 0.0536637008190155, + -0.061104051768779755, + 0.03855361044406891, + 0.0710848867893219, + 0.001259309588931501, + -0.0029928572475910187, + -0.061065398156642914, + -0.1031339019536972, + 0.033726662397384644, + -0.0077224550768733025, + -0.02910834550857544, + 0.06257793307304382, + 0.024022288620471954, + 0.02959100529551506, + 0.07827945053577423, + 0.04612663760781288, + -0.014843754470348358, + 0.00977691076695919, + -0.0459158793091774, + 0.12566959857940674, + 0.09223836660385132, + -0.018394213169813156, + 0.033365506678819656, + -0.04731784015893936, + -0.004409823566675186, + 0.041355542838573456, + -0.09878554940223694, + -0.07866127789020538, + 0.052483223378658295, + 0.030176879838109016, + 0.02491014637053013, + 0.11451079696416855, + 0.022274555638432503, + 0.008571521379053593, + 0.0778849720954895, + -0.04630091041326523, + -0.10109050571918488, + -0.05816987156867981, + 0.04357404261827469, + -0.0649087131023407, + 0.06832358241081238, + 0.04452177882194519, + 0.01403038576245308, + -0.024561025202274323, + 0.08152192831039429, + 0.01438787393271923, + 0.012281514704227448, + -0.011794395744800568, + 0.027140209451317787, + 0.05973951518535614, + -0.028061334043741226, + 0.02277158945798874, + 0.03398044779896736, + 0.021174680441617966, + 0.07734952121973038, + 0.013620274141430855, + 0.014688989147543907, + -0.09958376735448837, + -0.003773623611778021, + 0.0702660009264946, + 0.06208153814077377, + -0.042771726846694946, + -0.03063330054283142, + -0.013423687778413296, + -0.06739537417888641, + -0.017742808908224106, + -0.04598553851246834, + 0.09883978962898254, + 0.012268861755728722, + 0.025962816551327705, + 0.10167396068572998, + -0.03406553715467453, + 0.028727801516652107, + -0.018112368881702423, + 0.038294363766908646, + 0.015364090912044048, + 0.04440914839506149, + -0.07276734709739685, + -0.09709705412387848, + -0.033611685037612915, + 0.0015493594110012054, + 0.00544988177716732, + 0.02899564430117607, + 0.04482974112033844, + -0.027257267385721207, + 0.05124206840991974, + -0.08262453973293304, + 0.004344735760241747, + -0.10727809369564056, + -0.011226003058254719, + -0.05117690935730934, + -0.059016767889261246, + -0.01636984385550022, + 0.07590500265359879, + 0.025758033618330956, + 0.0504256896674633, + -0.013828850351274014, + -0.06937123090028763, + -0.06957569718360901, + 0.0428764633834362, + 0.07960563898086548, + -0.04210585728287697, + 0.012439573183655739, + 0.054749779403209686, + 0.026797067373991013, + 0.0030076801776885986, + 0.057123132050037384, + 0.03404882550239563, + -0.04285070300102234, + -0.03743429109454155, + -0.06306368112564087, + 0.08651576936244965, + 0.10523722320795059, + -0.09650164842605591, + -0.05970654636621475, + -0.05139657109975815, + -0.05676249414682388, + -0.02443491667509079, + -0.06439773738384247, + 0.02167343534529209, + 0.04126442223787308, + -0.04472264274954796, + -0.09704603254795074, + -0.12901823222637177, + 0.06351842731237411, + -0.07181698083877563, + 0.009529278613626957, + -0.03975483775138855, + 0.018235305324196815, + 0.05253224074840546, + 0.024941300973296165, + -0.0569583959877491, + -0.008068302646279335, + 0.00033845938742160797, + -0.03012045845389366, + -0.009283711202442646, + 0.019301997497677803, + 0.024861197918653488, + -0.10825774818658829, + 0.014226483181118965, + -0.03699026256799698, + 0.09965601563453674, + -0.07935299724340439, + 0.10811513662338257, + -0.005107831209897995, + -0.046056970953941345, + -0.09999237209558487, + 0.0037021860480308533, + 0.0023497771471738815, + 0.03718119487166405, + 0.027923423796892166, + 0.06295756995677948, + -0.010731782764196396, + -0.06636888533830643, + 0.09514481574296951, + 0.06648585200309753, + 0.007089182734489441, + -0.09984470158815384, + -0.02658105455338955, + -0.030848020687699318, + 0.0550755150616169, + 0.03441673889756203, + -0.05427945777773857, + 0.019471045583486557, + 0.024769499897956848, + -0.016197985038161278, + 0.05553022772073746, + 0.0916881263256073, + 0.05958426743745804, + -0.10344059765338898 + ] + }, + "p244_409.wav": { + "name": "p244", + "embedding": [ + 0.04685479402542114, + 0.08793620765209198, + -0.04375693202018738, + 0.02922828122973442, + -0.04073556512594223, + 0.048139847815036774, + -0.12432301044464111, + 0.10058197379112244, + -0.043299127370119095, + 0.14477354288101196, + -0.07895662635564804, + 0.10296115279197693, + -0.02315559796988964, + -0.13970181345939636, + -0.03226865455508232, + 0.04191824048757553, + -0.017668165266513824, + -0.026027221232652664, + -0.050915420055389404, + -0.026309136301279068, + 0.04001901298761368, + 0.04038793593645096, + 0.03480706736445427, + -0.01849052496254444, + -0.0022871121764183044, + 0.07005549967288971, + 0.004157315474003553, + 0.0292053185403347, + 0.006603945046663284, + -0.005187880247831345, + 0.0023290254175662994, + 0.09867174923419952, + -0.0269942507147789, + -0.01603705622255802, + 0.010927428491413593, + 0.011978043243288994, + -0.016052542254328728, + -0.05749648064374924, + 0.01834302395582199, + 0.010225404985249043, + -0.03608110174536705, + 0.06224112585186958, + 0.025711048394441605, + 0.004586122930049896, + 0.037158068269491196, + -0.0499148815870285, + -0.05249282717704773, + -0.027453351765871048, + -0.09517663717269897, + 0.16614505648612976, + 0.10721215605735779, + 0.007173639256507158, + -0.08721701800823212, + -0.020116083323955536, + 0.09986774623394012, + 0.00765939150005579, + -0.07520962506532669, + -0.07176291942596436, + 0.042786870151758194, + 0.14679358899593353, + -0.01359262503683567, + -0.04063251242041588, + 0.02059154585003853, + 0.127417653799057, + 0.01747730001807213, + 0.06593339890241623, + 0.09820875525474548, + 0.08636270463466644, + -0.017594821751117706, + 0.01667419821023941, + 0.03657269850373268, + 0.04605276510119438, + 0.03849438577890396, + -0.038436055183410645, + 0.03968048095703125, + -0.03194167837500572, + -0.0075933621264994144, + 0.0039037386886775494, + -0.028130915015935898, + -0.07411304116249084, + -0.02016177773475647, + -0.005383030045777559, + -0.00918504036962986, + 0.03807658702135086, + -0.05168043076992035, + 0.020047640427947044, + 0.04268265888094902, + -0.04129219800233841, + 0.058822210878133774, + 0.04602697864174843, + 0.016203677281737328, + 0.0070342086255550385, + -0.05871604382991791, + -0.07247129827737808, + 0.05148777365684509, + 0.005216647870838642, + 0.0015004808083176613, + 0.06330367177724838, + 0.028280191123485565, + -0.0035252743400633335, + 0.10147664695978165, + 0.03806959092617035, + -0.017253413796424866, + -0.012614872306585312, + -0.07122364640235901, + 0.11995884776115417, + 0.1300797164440155, + -0.021409673616290092, + 0.025097183883190155, + -0.023122824728488922, + 0.01762845367193222, + 0.04973446577787399, + -0.11322826147079468, + -0.05679073929786682, + 0.022512219846248627, + 0.03559865057468414, + 0.013029510155320168, + 0.0857982337474823, + 0.01186261884868145, + 0.010817972011864185, + 0.08849571645259857, + -0.05632779747247696, + -0.07177706807851791, + -0.06310583651065826, + 0.04269396513700485, + -0.08041463792324066, + 0.039707157760858536, + 0.06490860879421234, + 0.01983034797012806, + -0.031055090948939323, + 0.0718628317117691, + -0.00395666528493166, + -0.0010917802574113011, + -0.007577957585453987, + -0.006820116192102432, + 0.04068881645798683, + -0.03394937887787819, + -0.011689173057675362, + 0.010379351675510406, + 0.004798884503543377, + 0.06318500638008118, + 0.006048180628567934, + 0.03342343121767044, + -0.07824191451072693, + 0.02239268459379673, + 0.048955388367176056, + 0.03480323776602745, + -0.027532635256648064, + -0.03347981348633766, + -0.018102135509252548, + -0.05839384347200394, + 0.006764193996787071, + -0.042738210409879684, + 0.08275645971298218, + 0.004514245316386223, + 0.011263545602560043, + 0.10799264907836914, + -0.020866746082901955, + 0.0016718126134946942, + -0.02056361921131611, + 0.016043413430452347, + 0.023401670157909393, + 0.0368221290409565, + -0.07489927113056183, + -0.07478682696819305, + 0.0030160630121827126, + 0.030737020075321198, + 3.1249597668647766e-05, + 0.029846955090761185, + 0.05880098044872284, + -0.01874908246099949, + 0.017438052222132683, + -0.06023382395505905, + 0.0256100594997406, + -0.07969028502702713, + -0.025224952027201653, + -0.007644301746040583, + -0.06536135822534561, + 0.0027620792388916016, + 0.06685669720172882, + 0.02920559048652649, + 0.023602580651640892, + -0.035304196178913116, + -0.07948566973209381, + -0.07861854881048203, + 0.07067568600177765, + 0.09690631926059723, + -0.02623526006937027, + 0.028365906327962875, + 0.06704262644052505, + -0.00489993579685688, + 0.01765313744544983, + 0.056844357401132584, + 0.08495189994573593, + -0.03747512400150299, + -0.024069178849458694, + -0.07115550339221954, + 0.0529637336730957, + 0.09276048839092255, + -0.09650485217571259, + -0.0758967250585556, + -0.06013265252113342, + -0.06398917734622955, + 0.037336770445108414, + -0.04513486474752426, + 0.0010640843538567424, + 0.06461844593286514, + -0.038739580661058426, + -0.1080198734998703, + -0.10775075852870941, + 0.08864559233188629, + -0.044962890446186066, + -0.0010441341437399387, + -0.06791872531175613, + 0.04533177614212036, + 0.057183071970939636, + 0.02732718363404274, + -0.06489136815071106, + -0.006031383760273457, + 0.011503057554364204, + -0.03434861823916435, + -0.00504462793469429, + 0.005573205649852753, + 0.043108440935611725, + -0.11503780633211136, + 0.00022062845528125763, + -0.07902361452579498, + 0.09089290350675583, + -0.06943564116954803, + 0.09067340940237045, + 0.016049236059188843, + -0.021370848640799522, + -0.09845273196697235, + 0.04548756778240204, + -0.003312797285616398, + 0.0626494288444519, + 0.03883887827396393, + 0.037379782646894455, + 0.020783545449376106, + -0.08334361016750336, + 0.09147583693265915, + 0.06296940892934799, + -0.01402687281370163, + -0.09347584843635559, + 0.008111551403999329, + -0.04015237092971802, + 0.04742976650595665, + 0.020302262157201767, + -0.04552299156785011, + -0.009486149996519089, + 0.012873087078332901, + -0.027863290160894394, + 0.08127377927303314, + 0.08999764919281006, + 0.04994462803006172, + -0.09845499694347382 + ] + }, + "p244_383.wav": { + "name": "p244", + "embedding": [ + 0.051961928606033325, + 0.1003323644399643, + -0.017048493027687073, + 0.018067607656121254, + -0.07055257260799408, + 0.08750578761100769, + -0.12543126940727234, + 0.13217034935951233, + -0.07462392747402191, + 0.13187451660633087, + -0.056843094527721405, + 0.12461845576763153, + -0.023163778707385063, + -0.18079997599124908, + -0.0441136509180069, + 0.06553854793310165, + -0.06358849257230759, + -0.0434214249253273, + -0.044098399579524994, + -0.021019574254751205, + 0.029718656092882156, + 0.017701543867588043, + 0.029648669064044952, + 0.012301245704293251, + 0.040944695472717285, + 0.07280528545379639, + 0.00027831620536744595, + 0.04027874767780304, + 0.016047129407525063, + -0.05634850636124611, + -0.0489109642803669, + 0.09499888122081757, + -0.048477064818143845, + 0.008584467694163322, + 0.057903241366147995, + -0.01419786922633648, + 0.01219463162124157, + -0.07800684869289398, + -0.028425432741642, + 0.00809280201792717, + -0.03446090221405029, + 0.09030009061098099, + 0.04687321186065674, + -0.010356348939239979, + 0.016451876610517502, + 0.01680051162838936, + -0.008619408123195171, + -0.04263073578476906, + -0.10421565175056458, + 0.15752077102661133, + 0.056104473769664764, + -0.009202159941196442, + -0.06626339256763458, + -0.06975889205932617, + 0.12783098220825195, + -0.01600278913974762, + -0.12269507348537445, + -0.043098825961351395, + 0.07372093200683594, + 0.15820667147636414, + -0.033350471407175064, + -0.023331576958298683, + 0.013287276029586792, + 0.12921252846717834, + 0.05306554585695267, + 0.0991314947605133, + 0.06547370553016663, + 0.1119549348950386, + -0.0055655972100794315, + 0.03039177507162094, + 0.07324860990047455, + 0.06838526576757431, + 0.023079385980963707, + -0.021022500470280647, + 0.03220806270837784, + -0.0046750339679419994, + -0.025149229913949966, + 0.011302920058369637, + -0.023519933223724365, + -0.015441217459738255, + -0.023698799312114716, + 0.0074646794237196445, + 0.010292783379554749, + 0.014224608428776264, + -0.02153194695711136, + 0.06688288599252701, + 0.022209059447050095, + -0.006022770889103413, + 0.07282760739326477, + 0.044977832585573196, + 0.005059376358985901, + 0.06954288482666016, + -0.07200536131858826, + -0.09265932440757751, + 0.027055755257606506, + 0.008123675361275673, + 0.024042509496212006, + 0.07340489327907562, + 0.04390253126621246, + -0.012373756617307663, + 0.11459733545780182, + 0.0699889063835144, + 0.0016110099386423826, + 0.027886558324098587, + -0.09250708669424057, + 0.1322990208864212, + 0.07789024710655212, + -0.01871161162853241, + 0.045396819710731506, + -0.03997617959976196, + 0.09187410771846771, + 0.07895757257938385, + -0.14746510982513428, + -0.08441343903541565, + 0.03229851275682449, + 0.0033712172880768776, + -0.020488983020186424, + 0.11600017547607422, + -0.02533874660730362, + 0.023185715079307556, + 0.0937386229634285, + -0.07268008589744568, + -0.05123534053564072, + -0.01627180352807045, + 0.04241780936717987, + -0.07002796232700348, + 0.047854818403720856, + 0.05044017359614372, + -0.016877397894859314, + 0.009910564869642258, + 0.08756381273269653, + -0.011729761958122253, + -0.01523641124367714, + 0.04429970309138298, + -0.04510272666811943, + 0.037817202508449554, + -0.018301397562026978, + 0.014023780822753906, + 0.054726339876651764, + 0.04314921796321869, + 0.03982646018266678, + -0.012394670397043228, + -0.010857694782316685, + -0.10159504413604736, + 0.015221023932099342, + 0.03230646252632141, + 0.07798334956169128, + -0.0017948232125490904, + -0.019101493060588837, + -0.03811134397983551, + -0.07298411428928375, + 0.011663136072456837, + -0.009585989639163017, + 0.09579212963581085, + -0.01879912242293358, + 0.006130516063421965, + 0.09789858758449554, + 0.0342482291162014, + -0.0011248192749917507, + -0.05996484309434891, + -0.023943185806274414, + 0.02453167736530304, + 0.05605415627360344, + -0.07065753638744354, + -0.06291016936302185, + 0.009846445173025131, + 0.023003805428743362, + -0.027681700885295868, + 0.04410000145435333, + 0.03913647308945656, + 0.01910785399377346, + 0.04239189624786377, + -0.07289816439151764, + 0.034440405666828156, + -0.10424042493104935, + -0.04052029550075531, + -0.015168413519859314, + -0.028848329558968544, + -0.03157287836074829, + 0.0802823007106781, + 0.026244379580020905, + 0.04280152916908264, + -0.006335328333079815, + -0.0749741643667221, + -0.05914945900440216, + 0.06858363002538681, + 0.07021918892860413, + 0.000763176241889596, + 0.04322409629821777, + 0.06144925579428673, + -0.010214393958449364, + 0.04603702202439308, + 0.06312006711959839, + 0.0953521579504013, + -0.028142109513282776, + 0.010612444020807743, + -0.06260417401790619, + 0.08707071840763092, + 0.06325779110193253, + -0.11406780779361725, + -0.07898841798305511, + -0.021939242258667946, + -0.04755283147096634, + 0.037323251366615295, + -0.027789587154984474, + 0.0020862098317593336, + 0.015445382334291935, + -0.005642781034111977, + -0.0980280339717865, + -0.09309989213943481, + 0.09758290648460388, + -0.08088277280330658, + -0.005045594647526741, + -0.08008280396461487, + 0.041569650173187256, + 0.09665770828723907, + 0.040046967566013336, + -0.031826864928007126, + 0.006445502862334251, + 0.05165369063615799, + -0.034595124423503876, + 0.0036665690131485462, + 0.055092327296733856, + 0.02016792632639408, + -0.10122118890285492, + 0.005300299264490604, + -0.07198093086481094, + 0.0713411420583725, + -0.04767174273729324, + 0.17677190899848938, + -0.0032451448496431112, + -0.04714808613061905, + -0.07698563486337662, + 0.04146338999271393, + -0.03307162970304489, + 0.04928438365459442, + 0.0498884841799736, + 0.06690670549869537, + 0.031358830630779266, + -0.04890427365899086, + 0.1271275132894516, + 0.02913709171116352, + -0.04459039866924286, + -0.06731998920440674, + -0.027370931580662727, + -0.038073860108852386, + 0.03338006138801575, + 0.020839311182498932, + -0.09409113973379135, + -0.012980536557734013, + 0.02861589938402176, + -0.02328113466501236, + 0.08477555215358734, + 0.14055627584457397, + 0.08853550255298615, + -0.10171560943126678 + ] + }, + "p244_378.wav": { + "name": "p244", + "embedding": [ + 0.07356055825948715, + 0.05589265376329422, + -0.05945421755313873, + 0.03800595924258232, + -0.03501341491937637, + 0.02806919999420643, + -0.1278119683265686, + 0.09322462975978851, + 0.021685456857085228, + 0.1050618439912796, + -0.08123091608285904, + 0.0777692124247551, + -0.01877608150243759, + -0.09897693991661072, + 0.007780164014548063, + 0.0407402403652668, + -0.01226705964654684, + -0.019103296101093292, + -0.04354848712682724, + -0.007672389969229698, + 0.018578730523586273, + 0.03378306329250336, + 0.02888748236000538, + -0.040145620703697205, + 0.0014858078211545944, + 0.029446661472320557, + -0.013040252029895782, + -0.010183245874941349, + 0.01235133595764637, + 0.03054446540772915, + 0.022034214809536934, + 0.08431374281644821, + -0.03189873322844505, + 0.01479547843337059, + 0.04258693754673004, + 0.03870873153209686, + -0.034444473683834076, + -0.08442743122577667, + 0.006506294943392277, + -0.0027760425582528114, + -0.04542090743780136, + 0.07608649134635925, + 0.06165623292326927, + -0.06301800906658173, + 0.026480767875909805, + -0.00973721593618393, + -0.03223550692200661, + -0.02224026806652546, + -0.09143906831741333, + 0.16835880279541016, + 0.039792563766241074, + 0.020243171602487564, + -0.10544183850288391, + 0.0020604245364665985, + 0.06060638278722763, + 0.009718148969113827, + -0.04116726666688919, + -0.06553290784358978, + 0.025907723233103752, + 0.10810049623250961, + 0.004344447515904903, + -0.05155990272760391, + 0.016360482200980186, + 0.08970555663108826, + 0.04541507735848427, + 0.03530251979827881, + 0.07450313866138458, + 0.11716167628765106, + -0.024232065305113792, + 0.03948289155960083, + 0.07270722836256027, + 0.06019134819507599, + 0.04584244266152382, + 0.00047132931649684906, + 0.030714111402630806, + -0.026641711592674255, + -0.038248371332883835, + 0.01883004605770111, + -0.008875141851603985, + -0.06477877497673035, + -0.004779006354510784, + -0.0374729186296463, + 0.021545862779021263, + 0.06831329315900803, + -0.05458468198776245, + 0.00617500115185976, + 0.0787617638707161, + -0.0373375341296196, + 0.05991886556148529, + 0.0575408935546875, + 0.0020321765914559364, + 0.015993759036064148, + -0.0632714182138443, + -0.11278493702411652, + 0.009301645681262016, + -0.0337182953953743, + 0.06480618566274643, + 0.027052270248532295, + 0.039097510278224945, + 0.004699346609413624, + 0.07877302914857864, + 0.020960720255970955, + -0.006511107087135315, + 0.006062701344490051, + -0.060463957488536835, + 0.1382732391357422, + 0.12174190580844879, + -0.011481370776891708, + -0.0029270295053720474, + -0.043971166014671326, + 0.012903242371976376, + 0.045638203620910645, + -0.08375333249568939, + -0.03309832140803337, + 0.027462894096970558, + 0.03223282843828201, + 0.031752005219459534, + 0.12050914764404297, + 0.03856905922293663, + 0.022082416340708733, + 0.08624481409788132, + -0.08006644248962402, + -0.0688156932592392, + -0.00579611724242568, + 0.010021553374826908, + -0.058083657175302505, + 0.028511494398117065, + 0.057241059839725494, + 0.0008386839181184769, + -0.019197754561901093, + 0.06484843790531158, + 0.014739526435732841, + 0.024629533290863037, + -0.0394451878964901, + 0.02764122374355793, + 0.09091601520776749, + -0.005300463642925024, + 0.002080010250210762, + 0.07260888814926147, + 0.034074895083904266, + 0.06224292516708374, + 0.04912911355495453, + -0.0018699094653129578, + -0.11282136291265488, + 0.017588814720511436, + 0.08783174306154251, + 0.0471578873693943, + -0.05129261687397957, + -0.04582088440656662, + -0.02439703419804573, + -0.07250069826841354, + 0.04735745117068291, + -0.007515303790569305, + 0.05026981979608536, + 0.018632452934980392, + -0.02232292667031288, + 0.11856301128864288, + -0.03178063780069351, + 0.01418782863765955, + -0.02839784510433674, + 0.0079102274030447, + 0.025792010128498077, + 0.055774617940187454, + -0.08857817947864532, + -0.08377858996391296, + -0.0154368095099926, + 0.014051815494894981, + -0.015000306069850922, + -0.015888558700680733, + 0.06890768557786942, + -0.042123377323150635, + 0.032062508165836334, + -0.06658543646335602, + 0.014344142749905586, + -0.1122901663184166, + -0.037244632840156555, + -0.007160098757594824, + -0.039838001132011414, + 0.021749725565314293, + 0.08088943362236023, + -0.00023683346807956696, + 0.04669029638171196, + -0.030722428113222122, + -0.08501829206943512, + -0.0318550169467926, + 0.06577138602733612, + 0.05816980451345444, + -0.052318256348371506, + 0.02558310329914093, + 0.06252837926149368, + 0.02095206454396248, + -0.022422535344958305, + 0.0358896404504776, + 0.09545740485191345, + -0.0512487068772316, + -0.05405928194522858, + -0.06993772834539413, + 0.1120176613330841, + 0.09925265610218048, + -0.08723784238100052, + -0.05390038341283798, + -0.06408318132162094, + -0.028612671419978142, + -0.006222091615200043, + -0.05771072953939438, + -0.002332533011212945, + 0.04149501025676727, + -0.03364880383014679, + -0.10011672973632812, + -0.11556599289178848, + 0.028742685914039612, + -0.034020379185676575, + 0.019509855657815933, + -0.0727621465921402, + 0.01974644511938095, + 0.0215227622538805, + 0.027389343827962875, + -0.06032874435186386, + 0.019723227247595787, + -0.028119247406721115, + -0.061273664236068726, + -0.0449526384472847, + -0.01403660699725151, + 0.021733634173870087, + -0.08589866012334824, + -0.03290513530373573, + -0.05381286144256592, + 0.08086198568344116, + -0.04885432869195938, + 0.12307758629322052, + -0.007276137359440327, + -0.04249221086502075, + -0.07332247495651245, + -0.014989707618951797, + -0.026630859822034836, + 0.042871274054050446, + 0.07317540049552917, + 0.02236509695649147, + 0.0022440142929553986, + -0.06589357554912567, + 0.09296076744794846, + 0.062490496784448624, + 0.006272461730986834, + -0.06615958362817764, + -0.0058995019644498825, + -0.03407098352909088, + 0.039558045566082, + 0.00854878406971693, + -0.03187225013971329, + 0.047718171030282974, + 0.009061017073690891, + -0.02550385892391205, + 0.03765734285116196, + 0.06623832136392593, + 0.07305961102247238, + -0.08090965449810028 + ] + }, + "p244_316.wav": { + "name": "p244", + "embedding": [ + 0.052700091153383255, + 0.0929516851902008, + -0.023888561874628067, + 0.0279436893761158, + -0.06362634897232056, + 0.06653910875320435, + -0.1519125998020172, + 0.15338334441184998, + -0.03791432827711105, + 0.1356513798236847, + -0.05498111620545387, + 0.11340752243995667, + -0.02968265861272812, + -0.18666476011276245, + -0.009932130575180054, + 0.06142764165997505, + -0.02104286104440689, + -0.029441412538290024, + -0.027081826701760292, + -0.026479169726371765, + 0.023233771324157715, + 0.03504034876823425, + 0.012360403314232826, + 0.00651122909039259, + 0.041588641703128815, + 0.06240413337945938, + -0.022528182715177536, + 0.02042488567531109, + -0.011082634329795837, + -0.04184785485267639, + -0.04227110743522644, + 0.10580919682979584, + -0.06375288963317871, + 0.0057821571826934814, + 0.05385284870862961, + -0.012872878462076187, + -0.017697293311357498, + -0.06033528596162796, + -0.019461628049612045, + -0.001991869416087866, + -0.048481088131666183, + 0.07852614670991898, + 0.04392426088452339, + -0.007684227079153061, + 0.04456692934036255, + 0.017552457749843597, + -0.004163527395576239, + -0.043853141367435455, + -0.10957206040620804, + 0.15362334251403809, + 0.05158037692308426, + 0.0018751485040411353, + -0.08021630346775055, + -0.05423900485038757, + 0.10426251590251923, + -0.014155292883515358, + -0.10936152935028076, + -0.03749626874923706, + 0.08116064965724945, + 0.15562471747398376, + -0.030938956886529922, + -0.04333607852458954, + 0.023340702056884766, + 0.11511082202196121, + 0.059885162860155106, + 0.08908820152282715, + 0.07134212553501129, + 0.12082219123840332, + -0.022596009075641632, + 0.004966703709214926, + 0.058523282408714294, + 0.05392798036336899, + 0.05120730400085449, + -0.020771343261003494, + 0.017915882170200348, + -0.0011706710793077946, + -0.017064567655324936, + -0.0023517608642578125, + -0.024368327111005783, + -0.022327203303575516, + -0.01021807361394167, + 0.007941008545458317, + 0.010619237087666988, + 0.031403254717588425, + -0.0317842923104763, + 0.05075250566005707, + 0.0616997629404068, + -0.009904734790325165, + 0.08016122877597809, + 0.035082437098026276, + 0.0042455620132386684, + 0.0721815824508667, + -0.09732714295387268, + -0.06773847341537476, + 0.04387860745191574, + 9.427615441381931e-05, + 0.02445049025118351, + 0.06994818150997162, + 0.03845995292067528, + -0.012764198705554008, + 0.12626715004444122, + 0.04812723770737648, + 0.006713204551488161, + 0.03481718525290489, + -0.0925331637263298, + 0.13354972004890442, + 0.0752970352768898, + -0.026998694986104965, + 0.06647384911775589, + -0.05032973736524582, + 0.0625457763671875, + 0.06192457303404808, + -0.13637584447860718, + -0.06534100323915482, + 0.04106352850794792, + 0.02742895483970642, + -0.02337820641696453, + 0.1424683779478073, + 0.005762106738984585, + 0.04011613875627518, + 0.10318666696548462, + -0.10421924293041229, + -0.05735648050904274, + -0.007292265072464943, + 0.05085386335849762, + -0.08383700251579285, + 0.05903032049536705, + 0.07045300304889679, + -0.019930727779865265, + 0.02935514971613884, + 0.07605119794607162, + 0.001593107241205871, + 0.009753161109983921, + 0.009368106722831726, + -0.03470921516418457, + 0.016810979694128036, + -0.009193592704832554, + 0.0027433810755610466, + 0.0350138358771801, + 0.02556873857975006, + 0.05376753956079483, + -0.007857490330934525, + -0.01575278863310814, + -0.127521812915802, + 0.009785253554582596, + 0.04219074547290802, + 0.08773767203092575, + -0.01986626349389553, + -0.019652361050248146, + -0.040934719145298004, + -0.07552634179592133, + 0.012308219447731972, + -0.005414648912847042, + 0.08072786033153534, + -0.019961705431342125, + 0.0008645387133583426, + 0.1032775342464447, + 0.053825534880161285, + 0.002344182226806879, + -0.05937627702951431, + -0.03791382536292076, + 0.0008208039798773825, + 0.057626109570264816, + -0.09082728624343872, + -0.07520343363285065, + -0.01682969741523266, + 0.035550136119127274, + -0.027083538472652435, + 0.06699420511722565, + 0.04934248328208923, + 0.027304351329803467, + 0.02773827686905861, + -0.06642135977745056, + 0.02544267475605011, + -0.09791061282157898, + -0.06968384981155396, + -0.004751099739223719, + -0.005411320365965366, + -0.03227407857775688, + 0.08906125277280807, + 0.02509111911058426, + 0.05626029521226883, + -0.03150084614753723, + -0.05263696610927582, + -0.07094071060419083, + 0.054428473114967346, + 0.05072002485394478, + -0.02138522081077099, + 0.038732171058654785, + 0.05407753214240074, + -0.03880320116877556, + 0.04613623768091202, + 0.07538020610809326, + 0.10260307043790817, + -0.030366992577910423, + 0.03377996012568474, + -0.06664805114269257, + 0.09236228466033936, + 0.08922755718231201, + -0.08803154528141022, + -0.0937456339597702, + -0.02727394551038742, + -0.061081238090991974, + 0.02961682714521885, + -0.03202976658940315, + 0.009151730686426163, + 0.02037006802856922, + -0.007407433353364468, + -0.09795951843261719, + -0.09833365678787231, + 0.07409115135669708, + -0.06667649000883102, + 0.0068628969602286816, + -0.09085752069950104, + 0.053731128573417664, + 0.09055349230766296, + 0.034323737025260925, + -0.03714621812105179, + -0.023434627801179886, + 0.04656856507062912, + -0.02731327898800373, + 0.017679894343018532, + 0.06925743073225021, + 0.04674549773335457, + -0.10776910185813904, + -0.0018035814864560962, + -0.0635765790939331, + 0.07072868943214417, + -0.03822845220565796, + 0.16871008276939392, + 0.017064228653907776, + -0.04961357265710831, + -0.07662384957075119, + 0.036921948194503784, + -0.00830315425992012, + 0.04372786730527878, + 0.021670814603567123, + 0.07118090242147446, + 0.05179349333047867, + -0.042572442442178726, + 0.11008737981319427, + 0.03477926552295685, + -0.043584711849689484, + -0.054557688534259796, + -0.047779954969882965, + -0.04735986888408661, + 0.03721203655004501, + 0.0026129158213734627, + -0.10442133247852325, + -0.022919142618775368, + 0.03027445822954178, + 0.005656575318425894, + 0.06177434325218201, + 0.13987630605697632, + 0.06399593502283096, + -0.12579426169395447 + ] + }, + "p244_221.wav": { + "name": "p244", + "embedding": [ + 0.07544361799955368, + 0.04451741650700569, + -0.027681507170200348, + -0.004374104086309671, + -0.03241364285349846, + 0.03483644127845764, + -0.1356535702943802, + 0.12629100680351257, + -0.02857455611228943, + 0.08419238775968552, + -0.060268834233284, + 0.09003345668315887, + 0.008131748996675014, + -0.11563482880592346, + -0.033083476126194, + 0.025542940944433212, + 0.0027588587254285812, + -0.0035776710137724876, + -0.05997627601027489, + -0.022124825045466423, + 0.016603093594312668, + 0.0442960150539875, + 0.0009426684118807316, + -0.03988586738705635, + 0.03324153274297714, + 0.04289409518241882, + 0.010043145157396793, + 0.007975700311362743, + -0.005881816148757935, + 0.026675695553421974, + 0.009460016153752804, + 0.08440985530614853, + -0.05186442658305168, + -0.006030024960637093, + 0.059637054800987244, + 0.0069310637190938, + -0.015985246747732162, + -0.09521479904651642, + -0.016185719519853592, + 0.0013244310393929482, + -0.04903902858495712, + 0.08735046535730362, + 0.07502584159374237, + -0.02874191664159298, + 0.022333383560180664, + 0.026043782010674477, + 0.02701025828719139, + -0.06272056698799133, + -0.11332813650369644, + 0.16552746295928955, + -0.0015889890491962433, + 0.03540879487991333, + -0.12433241307735443, + -0.0137989092618227, + 0.08850128948688507, + -0.023125357925891876, + -0.0268558356910944, + -0.059244394302368164, + 0.02296876162290573, + 0.12654384970664978, + -0.01724345237016678, + -0.06185368075966835, + 0.02098693512380123, + 0.06467089056968689, + 0.05114338546991348, + 0.0362543947994709, + 0.11736927926540375, + 0.10611967742443085, + -0.026200182735919952, + 0.03454611822962761, + 0.04848644509911537, + 0.044430576264858246, + 0.013795167207717896, + -0.0289194006472826, + 0.027604494243860245, + -0.016849443316459656, + -0.03174396604299545, + 0.014437769539654255, + -0.02487555332481861, + -0.046981073915958405, + 0.010058768093585968, + 0.029266290366649628, + 0.03528539091348648, + 0.058564089238643646, + -0.08809112757444382, + 0.0531306117773056, + 0.046964868903160095, + -0.03604850545525551, + 0.07159565389156342, + 0.05380944535136223, + -0.0048292772844433784, + 0.0006522573530673981, + -0.07115405052900314, + -0.09153519570827484, + 0.019619170576334, + -0.014065293595194817, + 0.02214129827916622, + 0.04206022620201111, + 0.029126591980457306, + -0.00046254461631178856, + 0.09456859529018402, + 0.03324053809046745, + -0.0020092418417334557, + 0.00805889442563057, + -0.05740227550268173, + 0.11870633065700531, + 0.10924728214740753, + -0.010181987658143044, + 0.023776385933160782, + -0.0701700747013092, + 0.015464826487004757, + 0.049053654074668884, + -0.0961197093129158, + -0.07427269220352173, + 0.06160321831703186, + 0.032257817685604095, + 0.029683345928788185, + 0.1301005333662033, + -0.00784414354711771, + 0.013699506409466267, + 0.062298692762851715, + -0.08916642516851425, + -0.049913786351680756, + 0.008299124427139759, + 0.024506159126758575, + -0.03554802015423775, + 0.03293517231941223, + 0.05522609502077103, + -0.0003453441895544529, + -0.015393728390336037, + 0.06837913393974304, + 0.012430734932422638, + 0.010460647754371166, + -0.03049779310822487, + 0.04884966090321541, + 0.07646574079990387, + 0.02368527092039585, + -0.041405435651540756, + 0.028268422931432724, + 0.06265530735254288, + 0.046602096408605576, + 0.025626882910728455, + -0.013589153066277504, + -0.10694529116153717, + 0.002043513348326087, + 0.07029065489768982, + 0.06960459798574448, + -0.04823829233646393, + -0.037672240287065506, + -0.06410814076662064, + -0.04821501672267914, + -0.016810446977615356, + 0.0041579026728868484, + 0.0732460767030716, + 0.01337234303355217, + 0.01848025992512703, + 0.11203384399414062, + -0.00029760412871837616, + 0.028643043711781502, + -0.02242138981819153, + 0.021852931007742882, + 0.01564384438097477, + 0.0515604168176651, + -0.013542469590902328, + -0.08595363795757294, + -0.014480408281087875, + 0.012784597463905811, + -0.02818400040268898, + 0.00942278653383255, + 0.02582516148686409, + -0.00949062779545784, + 0.034442827105522156, + -0.12301231920719147, + 0.04304298385977745, + -0.12715674936771393, + 0.009744586423039436, + 0.006621603854000568, + -0.027041062712669373, + -0.008574966341257095, + 0.0894930437207222, + 0.025788266211748123, + 0.05943181738257408, + -0.01720021292567253, + -0.09868359565734863, + -0.028377655893564224, + 0.04999697208404541, + 0.08452276885509491, + -0.04848510026931763, + 0.004371732473373413, + 0.029633231461048126, + 0.03038657084107399, + 0.006165863946080208, + 0.07798436284065247, + 0.05496424436569214, + -0.030187522992491722, + -0.04236677289009094, + -0.020290227606892586, + 0.13149237632751465, + 0.03132545202970505, + -0.0879700630903244, + -0.05835426598787308, + -0.010684439912438393, + -0.04421423748135567, + -0.02981261909008026, + 0.002373363357037306, + 0.041454046964645386, + 0.03771060332655907, + -0.007370452396571636, + -0.11240511387586594, + -0.07204774022102356, + 0.019258588552474976, + -0.06044713780283928, + 0.014948980882763863, + -0.06785193085670471, + 0.023733096197247505, + 0.09173132479190826, + 0.026040010154247284, + -0.0038448739796876907, + -0.061807870864868164, + -0.03989121690392494, + -0.058476440608501434, + -0.03318732976913452, + -0.008631851524114609, + 0.034299299120903015, + -0.07333514094352722, + 0.025858450680971146, + -0.041163887828588486, + 0.08868387341499329, + -0.033839523792266846, + 0.12196126580238342, + 0.010845334269106388, + -0.07047492265701294, + -0.0878961831331253, + -0.010384556837379932, + -0.023336024954915047, + 0.0555521659553051, + 0.04085809737443924, + 0.018407411873340607, + 0.014211077243089676, + -0.06210947781801224, + 0.07970467209815979, + 0.0685562789440155, + -0.040377214550971985, + -0.06374724209308624, + -0.04796559363603592, + -0.015626423060894012, + 0.029782220721244812, + 0.015717513859272003, + -0.013266988098621368, + 0.014829211868345737, + 0.021852387115359306, + -0.03533736616373062, + 0.06431969255208969, + 0.0846015214920044, + 0.0581100769340992, + -0.10572266578674316 + ] + }, + "p244_187.wav": { + "name": "p244", + "embedding": [ + 0.012596029788255692, + 0.061141159385442734, + -0.05705878883600235, + 0.05083771422505379, + -0.07559505850076675, + 0.06834843754768372, + -0.12949217855930328, + 0.10235853493213654, + -0.04765508323907852, + 0.1339765042066574, + -0.03977084532380104, + 0.09403165429830551, + -0.04301803931593895, + -0.1925627440214157, + -0.010889668017625809, + 0.068511001765728, + -0.055938709527254105, + -0.07704132050275803, + -0.05660233274102211, + -0.022700419649481773, + 0.029209647327661514, + 0.04498206824064255, + -0.012401353567838669, + 0.010396387428045273, + 0.002286086091771722, + 0.08178050071001053, + -0.04011232405900955, + -0.006387907080352306, + -0.025729957967996597, + -0.031707413494586945, + -0.048216212540864944, + 0.10317922383546829, + -0.06678211688995361, + -0.010074969381093979, + 0.01823790743947029, + 0.00016468582907691598, + -0.0065436577424407005, + -0.0403321273624897, + 0.0036215484142303467, + 0.007762003690004349, + -0.07703083008527756, + 0.0746045932173729, + 0.029316946864128113, + 0.015015416778624058, + 0.05132196843624115, + -0.018086260184645653, + -0.04280591756105423, + -0.03409750387072563, + -0.10172679275274277, + 0.15774837136268616, + 0.09488138556480408, + -0.025287648662924767, + -0.042640987783670425, + -0.04880565032362938, + 0.09212595224380493, + 0.01593508943915367, + -0.14055019617080688, + -0.0841282308101654, + 0.08707362413406372, + 0.1419597566127777, + -0.017066320404410362, + -0.02310837060213089, + 0.018172737210989, + 0.11889756470918655, + 0.06390821188688278, + 0.08446422219276428, + 0.052047405391931534, + 0.11497338861227036, + -0.014206906780600548, + -0.025666479021310806, + 0.09210590273141861, + 0.04044613987207413, + 0.06135544553399086, + -0.01846320927143097, + 0.03767913207411766, + -0.012173598632216454, + -0.0037247275467962027, + -0.0049050841480493546, + -0.020324071869254112, + -0.02007388137280941, + -2.7015663363272324e-05, + -0.0033866402227431536, + -0.007547921501100063, + 0.035591065883636475, + -0.0162662323564291, + 0.03591470420360565, + 0.08923507481813431, + -0.020721787586808205, + 0.06747323274612427, + 0.05030103027820587, + -0.00071132299490273, + 0.07596778124570847, + -0.08439666032791138, + -0.044020406901836395, + 0.05147150158882141, + 0.015285339206457138, + 0.010167823173105717, + 0.05438341200351715, + 0.024745512753725052, + -0.01831781305372715, + 0.10467488318681717, + 0.004066504072397947, + -0.0061568450182676315, + 0.02328832820057869, + -0.10010657459497452, + 0.13986125588417053, + 0.08326171338558197, + -0.022993624210357666, + 0.01926986686885357, + -0.021677298471331596, + 0.05835209786891937, + 0.05689062923192978, + -0.11279657483100891, + -0.0498005636036396, + 0.045727308839559555, + 0.0048836832866072655, + -0.044865477830171585, + 0.14888601005077362, + 0.026633255183696747, + 0.027824513614177704, + 0.12680459022521973, + -0.10056325048208237, + -0.04986267909407616, + -0.013736365363001823, + 0.036769237369298935, + -0.08810079097747803, + 0.041473980993032455, + 0.07428628206253052, + -0.008025162853300571, + 0.03350050374865532, + 0.0784645527601242, + -0.00801876187324524, + 0.007479770574718714, + -4.6828266931697726e-05, + -0.04600667208433151, + 0.032336801290512085, + 0.0022146268747746944, + -0.007334074471145868, + 0.06355356425046921, + 0.0016760729486122727, + 0.058715928345918655, + -0.04301973432302475, + -0.00919408816844225, + -0.1290985494852066, + 0.028733201324939728, + 0.039158087223768234, + 0.06416044384241104, + -0.02491261437535286, + 0.012849229387938976, + -0.045506205409765244, + -0.0949413850903511, + 0.027799611911177635, + -0.027233976870775223, + 0.09099190682172775, + -0.033994294703006744, + -0.035373471677303314, + 0.09827195852994919, + 0.03844418004155159, + 9.681371011538431e-05, + -0.05182254686951637, + -0.049993935972452164, + 0.008803656324744225, + 0.061391640454530716, + -0.10460279881954193, + -0.055654119700193405, + -0.017895681783556938, + 0.05463574081659317, + 0.002846270566806197, + 0.05532701313495636, + 0.07213053852319717, + 0.02373330108821392, + 0.0012804149882867932, + -0.06415741890668869, + 0.0357990637421608, + -0.06807565689086914, + -0.05571776628494263, + -0.0122703080996871, + -0.04815077409148216, + -0.019920460879802704, + 0.09116028249263763, + 0.0012234277091920376, + 0.020913096144795418, + -0.055766765028238297, + -0.07920531183481216, + -0.06939610093832016, + 0.06947250664234161, + 0.06028511002659798, + -0.029401525855064392, + 0.04803619533777237, + 0.06251256167888641, + -0.04168091341853142, + 0.017523834481835365, + 0.052871666848659515, + 0.14806526899337769, + -0.04210107773542404, + 0.033903852105140686, + -0.06969629973173141, + 0.09020831435918808, + 0.07265383005142212, + -0.0707852691411972, + -0.05689510703086853, + -0.017131086438894272, + -0.04732293635606766, + 0.048709820955991745, + -0.06991229951381683, + 0.0026000456418842077, + 0.03500436618924141, + 0.005721741355955601, + -0.1188526526093483, + -0.10222496092319489, + 0.07778771966695786, + -0.06075313314795494, + 0.003890916472300887, + -0.10510808229446411, + 0.04672253131866455, + 0.065401092171669, + 0.047018345445394516, + -0.06819487363100052, + 0.018421677872538567, + 0.05455322191119194, + -0.012032059021294117, + 0.04431229457259178, + 0.0657096654176712, + 0.043636422604322433, + -0.11881764233112335, + -0.0529114231467247, + -0.08091261237859726, + 0.07293780148029327, + -0.03999851271510124, + 0.14216472208499908, + 0.01532393041998148, + -0.01431943941861391, + -0.07718434184789658, + 0.06583579629659653, + 0.006376232951879501, + 0.058955155313014984, + 0.038301605731248856, + 0.08492980152368546, + 0.057431332767009735, + -0.022452017292380333, + 0.11928348988294601, + 0.04299422726035118, + -0.024492546916007996, + -0.04528416320681572, + -0.012552957981824875, + -0.05504211038351059, + 0.04242349788546562, + 0.020605294033885002, + -0.1146371066570282, + -0.001904359902255237, + 0.04225528985261917, + 0.0016734092496335506, + 0.05993179231882095, + 0.12889130413532257, + 0.07609815895557404, + -0.09642072767019272 + ] + }, + "p244_244.wav": { + "name": "p244", + "embedding": [ + 0.015157620422542095, + 0.1280662566423416, + 0.012902977876365185, + 0.008541541174054146, + -0.023153753951191902, + 0.07905904203653336, + -0.10465726256370544, + 0.13588006794452667, + -0.09854014217853546, + 0.15237274765968323, + -0.11579623818397522, + 0.08611460775136948, + -0.05950622260570526, + -0.16523081064224243, + -0.061877913773059845, + 0.04828590527176857, + -0.05972617492079735, + 0.02642555721104145, + -0.05299194157123566, + 0.012029719538986683, + 0.056963786482810974, + 0.01583811081945896, + 0.01436976995319128, + -0.023658983409404755, + 0.023346658796072006, + 0.02925366349518299, + 0.034538548439741135, + 0.06582436710596085, + 0.05200430005788803, + -0.0500522181391716, + -0.019896874204277992, + 0.14044435322284698, + -0.015244483016431332, + 0.027770008891820908, + 0.08281218260526657, + 0.014411162585020065, + 0.009064699523150921, + -0.045264992862939835, + -0.001370408572256565, + 0.0006966405780985951, + -0.027426065877079964, + 0.03869946300983429, + 0.007182638626545668, + 0.02760354056954384, + 0.04760516434907913, + 0.04462026432156563, + -0.032199230045080185, + -0.0444796048104763, + -0.06649202108383179, + 0.16035136580467224, + 0.057884152978658676, + -0.016115663573145866, + -0.06668198108673096, + -0.10085226595401764, + 0.11680220067501068, + 0.003864242462441325, + -0.1287318915128708, + -0.03475351259112358, + 0.10727717727422714, + 0.18859662115573883, + -0.009541080333292484, + -0.008865938521921635, + -0.0021360195241868496, + 0.11548824608325958, + -0.02306295558810234, + 0.115117147564888, + 0.04356386139988899, + 0.05877058953046799, + 0.06309426575899124, + 0.06548969447612762, + 0.0502641424536705, + 0.03158501535654068, + -0.007655811496078968, + -0.04324665293097496, + 0.03878512233495712, + -0.021659985184669495, + -0.03017851710319519, + 0.05297819897532463, + -0.02193160355091095, + -0.024461058899760246, + -0.014537391252815723, + 0.02656308002769947, + -0.010496634989976883, + -0.02818768285214901, + -0.02320687659084797, + 0.05188872665166855, + -0.03935471922159195, + 0.006939942017197609, + 0.08570580929517746, + 0.04858342185616493, + 0.015884390100836754, + 0.030341383069753647, + -0.026812471449375153, + -0.13850785791873932, + -0.015858955681324005, + -0.003745785215869546, + -0.008354886434972286, + 0.05596143379807472, + 0.01924893818795681, + -0.021216878667473793, + 0.10027248412370682, + 0.061965975910425186, + 0.014054552651941776, + 0.03820875659584999, + -0.13620363175868988, + 0.10815736651420593, + 0.06344486773014069, + 0.005911736749112606, + 0.03330852836370468, + -0.02108769491314888, + 0.09143178910017014, + 0.09591739624738693, + -0.1506294161081314, + -0.08359047025442123, + 0.018436571583151817, + 0.002948738867416978, + 0.0035635745152831078, + 0.07334635406732559, + -0.010056732222437859, + -0.033189211040735245, + 0.09899751842021942, + -0.07976589351892471, + -0.07831475883722305, + -0.05339564010500908, + 0.049559157341718674, + -0.04860967397689819, + 0.04483095929026604, + 0.021273093298077583, + -0.02921343222260475, + -0.02183394506573677, + 0.07835209369659424, + -0.016324905678629875, + 0.025435157120227814, + 0.0355246365070343, + -0.051567915827035904, + 0.03772864490747452, + -0.07808506488800049, + 0.019515827298164368, + 0.03784070536494255, + 0.09629470109939575, + 0.04965567961335182, + 0.01230591256171465, + -0.06264735013246536, + -0.05170727148652077, + -0.019810933619737625, + 0.052450526505708694, + 0.026648562401533127, + 0.0005201101885177195, + -0.0082823121920228, + -0.028736691921949387, + -0.0499672070145607, + 0.014001957140862942, + -0.012483155354857445, + 0.11741535365581512, + 0.005480760242789984, + -0.0007769843796268106, + 0.10091301053762436, + -0.009140508249402046, + -0.011305494233965874, + -0.08737270534038544, + -0.02917810156941414, + 0.04699983447790146, + 0.00973961316049099, + -0.08278350532054901, + -0.04763023182749748, + 0.03154463320970535, + 0.0026425619143992662, + -0.018831267952919006, + 0.0025461509358137846, + 0.02188570238649845, + 0.007187790237367153, + 0.06341048330068588, + -0.055779047310352325, + 0.02527732029557228, + -0.11441327631473541, + -0.04378209263086319, + -0.0200076662003994, + -0.04527204856276512, + -0.018684620037674904, + 0.07624778151512146, + -0.0027864093426615, + -0.00929536484181881, + 0.04374432563781738, + -0.08929353207349777, + -0.048692017793655396, + 0.09048879891633987, + 0.0808616653084755, + 0.026113083586096764, + 0.07289928942918777, + 0.03635279834270477, + -0.03004615381360054, + 0.0690738782286644, + 0.07146404683589935, + 0.09707856178283691, + -0.0014301573392003775, + -0.02368122525513172, + -0.08191797137260437, + 0.05331761762499809, + 0.06625315546989441, + -0.11483199894428253, + -0.0994897335767746, + -0.0410405695438385, + -0.04697568342089653, + 0.052460819482803345, + -0.024758759886026382, + 0.007315436843782663, + 0.013924474827945232, + -0.03480202332139015, + -0.07345923036336899, + -0.06326351314783096, + 0.10047326982021332, + -0.06961528211832047, + -0.04817875847220421, + -0.03589896112680435, + 0.049925725907087326, + 0.08763585239648819, + 0.03277474641799927, + -0.02049325220286846, + 0.005890677683055401, + 0.059558264911174774, + -0.11488718539476395, + -0.04705577343702316, + -0.007321113720536232, + -0.017281435430049896, + -0.05174028128385544, + 0.06147269532084465, + -0.09238504618406296, + 0.07521699368953705, + -0.08781251311302185, + 0.16216593980789185, + -0.04535123333334923, + -0.07118268311023712, + -0.0862535834312439, + 0.04955045133829117, + -0.04490290582180023, + 0.013406594283878803, + 0.03827185928821564, + 0.06513432413339615, + 0.01425163447856903, + -0.06357578933238983, + 0.12632222473621368, + -0.014399769715964794, + -0.005276745185256004, + -0.04854385182261467, + -0.04046763479709625, + -0.06491805613040924, + -0.015935152769088745, + -0.015658725053071976, + -0.09553497284650803, + -0.009389840066432953, + 0.004181795287877321, + -0.013229004107415676, + 0.07735807448625565, + 0.11161790043115616, + 0.03208980709314346, + -0.09762602299451828 + ] + }, + "p244_158.wav": { + "name": "p244", + "embedding": [ + 0.03636794909834862, + 0.07408522069454193, + -0.029218478128314018, + 0.08177635073661804, + -0.06782162934541702, + 0.0618540421128273, + -0.09660547971725464, + 0.11868441104888916, + -0.03968634083867073, + 0.12036117911338806, + -0.06789775937795639, + 0.10166685283184052, + -0.053389035165309906, + -0.15586525201797485, + -0.010718374513089657, + 0.07490645349025726, + -0.04263267293572426, + -0.038016337901353836, + -0.07048040628433228, + -0.0015694987960159779, + 0.024698931723833084, + 0.028321029618382454, + 0.05222189426422119, + 0.005631127394735813, + -0.003852994879707694, + 0.05570049211382866, + -0.005814242176711559, + 0.0503392294049263, + 0.03300800174474716, + -0.059968627989292145, + -0.036748550832271576, + 0.10470617562532425, + -0.027219461277127266, + 0.013587514869868755, + 0.037255171686410904, + 0.011195352301001549, + -0.00705090444535017, + -0.057694315910339355, + -0.0158570297062397, + -0.029805712401866913, + -0.061803851276636124, + 0.06483978033065796, + 0.006504404824227095, + -0.02211831510066986, + 0.06239274889230728, + -0.023987803608179092, + -0.06901973485946655, + -0.0169401615858078, + -0.1138477474451065, + 0.14198577404022217, + 0.08901195973157883, + -0.005303285550326109, + -0.07042433321475983, + -0.0670144259929657, + 0.09023643285036087, + -0.018352758139371872, + -0.13455168902873993, + -0.06878501176834106, + 0.07643783092498779, + 0.16312626004219055, + 0.0027912412770092487, + 0.006091908551752567, + 0.01098263543099165, + 0.13018983602523804, + 0.08016090095043182, + 0.0921977311372757, + 0.06344588845968246, + 0.12187433242797852, + 0.0032693627290427685, + 0.03604263812303543, + 0.05848647654056549, + 0.05705815181136131, + 0.04459799826145172, + 0.024683550000190735, + 0.016520438715815544, + -0.011246333830058575, + -0.011799464002251625, + 0.0022719241678714752, + -0.03526310622692108, + -0.034555867314338684, + -0.0224318765103817, + -0.00931625533849001, + 0.00201701489277184, + 0.0015893243253231049, + -0.017011523246765137, + 0.05614441633224487, + 0.04730871319770813, + -0.028897108510136604, + 0.057838715612888336, + 0.03517724946141243, + -0.012876738794147968, + 0.054476045072078705, + -0.04793250933289528, + -0.07878871262073517, + -0.01127027627080679, + 0.012375024147331715, + 0.023755429312586784, + 0.044638101011514664, + 0.010993423871695995, + -0.014322813600301743, + 0.11365317553281784, + 0.027714502066373825, + -0.006206504534929991, + 0.04823929816484451, + -0.08984355628490448, + 0.12267597019672394, + 0.07083822786808014, + -0.0011475087376311421, + 0.036867767572402954, + -0.01526604499667883, + 0.06316839903593063, + 0.07226600497961044, + -0.10068142414093018, + -0.048931967467069626, + 0.007679302245378494, + -0.02346210926771164, + -0.02364109456539154, + 0.09442295134067535, + 0.031209997832775116, + 0.03442900627851486, + 0.11493868380784988, + -0.09506888687610626, + -0.05987504497170448, + 0.002745419042184949, + 0.053859613835811615, + -0.0700913816690445, + 0.046697113662958145, + 0.04093196988105774, + 0.0009490498341619968, + 0.00941290333867073, + 0.08174094557762146, + -0.006261578761041164, + 0.014371974393725395, + 0.03929998725652695, + -0.08935508131980896, + 0.03423840180039406, + -0.054238349199295044, + -0.014292575418949127, + 0.07969090342521667, + 0.030051421374082565, + 0.07168838381767273, + -0.042200855910778046, + 0.003494914388284087, + -0.0920737087726593, + -0.002001882530748844, + 0.046577922999858856, + 0.07320979237556458, + -0.0016381286550313234, + 0.002057683654129505, + -0.04588992893695831, + -0.06321508437395096, + 0.04935348033905029, + -0.03699737787246704, + 0.07722482085227966, + -0.042431462556123734, + -0.016282720491290092, + 0.10615359246730804, + -0.01031394861638546, + -0.009273335337638855, + -0.07583662867546082, + -0.03662590682506561, + 0.023021847009658813, + 0.05599135532975197, + -0.08044606447219849, + -0.05300554633140564, + 0.016175316646695137, + 0.0391780324280262, + -0.029483648017048836, + 0.040394652634859085, + 0.041059065610170364, + 0.013634743168950081, + 0.007760524749755859, + -0.0399499386548996, + 0.012870780192315578, + -0.07050175964832306, + -0.0517011433839798, + 0.004763354081660509, + -0.030512569472193718, + -0.014255639165639877, + 0.06707319617271423, + 0.03871876746416092, + 0.029323376715183258, + -0.0002216622233390808, + -0.09811811149120331, + -0.10160472244024277, + 0.07107927650213242, + 0.026411235332489014, + 0.0017819879576563835, + 0.07137942314147949, + 0.06284067779779434, + -0.05381152778863907, + 0.03594835847616196, + 0.04912285506725311, + 0.09870834648609161, + -0.026932405307888985, + -0.004567543510347605, + -0.11137527227401733, + 0.06321048736572266, + 0.122107595205307, + -0.09028545767068863, + -0.08155925571918488, + -0.03774857893586159, + -0.059436630457639694, + 0.056765250861644745, + -0.057279862463474274, + -0.021987317129969597, + 0.07938526570796967, + -0.03716309368610382, + -0.12952059507369995, + -0.10323606431484222, + 0.1277615875005722, + -0.08645600080490112, + -0.01288935262709856, + -0.06378473341464996, + 0.020325936377048492, + 0.048718489706516266, + 0.03205057233572006, + -0.05221455171704292, + 0.024769719690084457, + 0.07441788911819458, + -0.05886536091566086, + 0.010278910398483276, + 0.06928111612796783, + 0.013816374354064465, + -0.09825587272644043, + -0.016557861119508743, + -0.07341115921735764, + 0.049111366271972656, + -0.037480395287275314, + 0.1439986526966095, + -0.004929577466100454, + -0.02724667266011238, + -0.07297278940677643, + 0.0574522390961647, + -0.02209884487092495, + 0.06392282992601395, + 0.04267135262489319, + 0.06446905434131622, + 0.034349579364061356, + -0.06657631695270538, + 0.13590319454669952, + 0.034329745918512344, + -0.03836118057370186, + -0.05765734985470772, + -0.03171355649828911, + -0.0681348592042923, + 0.024496179074048996, + -0.003957423381507397, + -0.09631752967834473, + 0.0013710327912122011, + 0.009104754775762558, + -0.03447079658508301, + 0.06533177196979523, + 0.13263574242591858, + 0.08009309321641922, + -0.07407161593437195 + ] + }, + "p244_278.wav": { + "name": "p244", + "embedding": [ + 0.05478248745203018, + 0.0654914528131485, + -0.030155498534440994, + 0.05006328225135803, + -0.06119343638420105, + 0.035684555768966675, + -0.10848580300807953, + 0.1078013926744461, + -0.021831056103110313, + 0.13676849007606506, + -0.05876852571964264, + 0.11819253861904144, + -0.012822561897337437, + -0.16776534914970398, + -0.008926431648433208, + 0.05648058280348778, + -0.05177285149693489, + -0.035407066345214844, + -0.06169877201318741, + -0.02790026180446148, + 0.03653136268258095, + 0.06757098436355591, + 0.07132668793201447, + -0.023736946284770966, + 0.022700008004903793, + 0.06713889539241791, + -0.007135279942303896, + 0.04096405580639839, + 0.021322842687368393, + -0.10620146989822388, + -0.05070004612207413, + 0.08898956328630447, + -0.04560593143105507, + 0.016671057790517807, + 0.014638209715485573, + -0.01341228187084198, + 0.0010660383850336075, + -0.0646844357252121, + -0.056926026940345764, + 0.019003257155418396, + -0.053564853966236115, + 0.06721173226833344, + 0.01438442338258028, + -0.048880890011787415, + 0.053169410675764084, + -0.024588685482740402, + -0.048022232949733734, + -0.030644766986370087, + -0.10996608436107635, + 0.17169854044914246, + 0.07533164322376251, + 0.004216858185827732, + -0.06320375204086304, + -0.08148860186338425, + 0.09647262096405029, + -0.013156525790691376, + -0.13923096656799316, + -0.03373803198337555, + 0.06174682453274727, + 0.14544759690761566, + -0.016228679567575455, + -0.026643428951501846, + 0.05127153545618057, + 0.10532969236373901, + 0.0773783028125763, + 0.06499829143285751, + 0.08367543667554855, + 0.10377830266952515, + -0.015506149269640446, + 0.0350506454706192, + 0.04926124960184097, + 0.10120592266321182, + 0.05283767729997635, + 0.007985003292560577, + 0.01713675446808338, + 0.015566572546958923, + -0.032079484313726425, + -0.024455683305859566, + -0.015665283426642418, + -0.008391076698899269, + -0.006056316662579775, + -0.017124952748417854, + 0.017281435430049896, + 0.009548640809953213, + -0.033266644924879074, + 0.04581880569458008, + 0.04136952757835388, + -0.013271613977849483, + 0.056870944797992706, + 0.02831896021962166, + 0.011884119361639023, + 0.06806081533432007, + -0.059026796370744705, + -0.07520255446434021, + -0.007246255408972502, + 0.019319647923111916, + 0.021197669208049774, + 0.06681819260120392, + 0.04678625240921974, + -0.033802807331085205, + 0.1316288262605667, + 0.037030622363090515, + -0.005198957864195108, + 0.008820366114377975, + -0.07641861587762833, + 0.09652912616729736, + 0.10601826012134552, + -0.01883583888411522, + 0.05614205449819565, + -0.03866414725780487, + 0.08375433087348938, + 0.061983682215213776, + -0.12790998816490173, + -0.06512638181447983, + 0.012298696674406528, + -0.02458438277244568, + -0.001408421783708036, + 0.12263201177120209, + 0.013288180343806744, + 0.04702261835336685, + 0.11125840991735458, + -0.10991761088371277, + -0.05253775790333748, + -0.004227515310049057, + 0.05360811948776245, + -0.09626469761133194, + 0.06017468497157097, + 0.03829836845397949, + -0.02324896678328514, + 0.009931113570928574, + 0.07641367614269257, + -0.0294354110956192, + 0.02223369851708412, + 0.004720824770629406, + -0.06985270977020264, + 0.01434963196516037, + -0.0460321307182312, + -0.012183459475636482, + 0.08463872969150543, + 0.024527626112103462, + 0.05627722293138504, + -0.03708511218428612, + -0.04226204752922058, + -0.13128814101219177, + 0.03298772871494293, + 0.026217985898256302, + 0.06580395251512527, + -0.00681707076728344, + -0.009905772283673286, + -0.03391108289361, + -0.08708173036575317, + 0.05146803334355354, + -0.028685929253697395, + 0.07056191563606262, + -0.025998076424002647, + -0.007207034155726433, + 0.10676755011081696, + 0.02210184931755066, + -0.012761189602315426, + -0.0402388796210289, + -0.049234528094530106, + 0.005367421545088291, + 0.055032193660736084, + -0.08735334128141403, + -0.07822079956531525, + -0.008211322128772736, + 0.017171088606119156, + -0.006194661371409893, + 0.05070827156305313, + 0.0503276027739048, + 0.012079538777470589, + 0.019724011421203613, + -0.06969340890645981, + 0.0020727338269352913, + -0.0971924364566803, + -0.07336390763521194, + -0.007661875803023577, + -0.032338328659534454, + -0.010613098740577698, + 0.0916496217250824, + 0.012261785566806793, + 0.02863418683409691, + -0.03354836255311966, + -0.08079648017883301, + -0.09543775767087936, + 0.0639791339635849, + 0.037300340831279755, + 0.002587447641417384, + 0.043982330709695816, + 0.07693731784820557, + -0.03697185218334198, + 0.04250878095626831, + 0.03332526981830597, + 0.0956505760550499, + -0.025455493479967117, + 0.011223061010241508, + -0.07478432357311249, + 0.10043232142925262, + 0.0954500138759613, + -0.07794070243835449, + -0.07680858671665192, + -0.045787833631038666, + -0.08818846195936203, + 0.05907116085290909, + -0.016416313126683235, + -0.009622457437217236, + 0.04702538996934891, + -0.007945523597300053, + -0.11236733198165894, + -0.08484476059675217, + 0.11448071897029877, + -0.05408007279038429, + -0.023011289536952972, + -0.07300858944654465, + 0.026208505034446716, + 0.07481840252876282, + 0.057982541620731354, + -0.01708587259054184, + 0.02267123945057392, + 0.058120012283325195, + -0.046625152230262756, + 0.017153888940811157, + 0.08223636448383331, + 0.032293591648340225, + -0.08871110528707504, + -0.029793445020914078, + -0.07229975610971451, + 0.03841162472963333, + -0.051842860877513885, + 0.13208141922950745, + 0.0022065092343837023, + -0.057998765259981155, + -0.08510474860668182, + 0.06994156539440155, + -0.02224171906709671, + 0.05679536983370781, + 0.049887172877788544, + 0.06279656291007996, + 0.059543073177337646, + -0.098089300096035, + 0.1073068231344223, + 0.05193856731057167, + -0.03036480024456978, + -0.05680491030216217, + -0.044343676418066025, + -0.038341205567121506, + 0.029765717685222626, + 0.010471574030816555, + -0.07372936606407166, + 0.004315624013543129, + 0.009176323190331459, + -0.013452151790261269, + 0.053752653300762177, + 0.12671160697937012, + 0.06682229042053223, + -0.1108715832233429 + ] + }, + "p244_334.wav": { + "name": "p244", + "embedding": [ + 0.04873369261622429, + 0.10693557560443878, + -0.0036122030578553677, + 0.027499958872795105, + -0.03217095881700516, + 0.03909189999103546, + -0.07382022589445114, + 0.09170767664909363, + 0.03452327474951744, + 0.06702721118927002, + -0.07194428890943527, + 0.08427950739860535, + -0.02937258780002594, + -0.1347297728061676, + 0.016911733895540237, + 0.0387294664978981, + -0.020503666251897812, + 0.0031855504494160414, + -0.025329967960715294, + -0.021834973245859146, + -0.005436833016574383, + 0.015500199049711227, + 0.025590229779481888, + -0.017003227025270462, + 0.012133880518376827, + 0.024779539555311203, + -0.02642269991338253, + 0.016506386920809746, + -0.013045243918895721, + -0.044783830642700195, + -0.030460629612207413, + 0.06558965146541595, + -0.03640653192996979, + -0.0047957925125956535, + 0.009877799078822136, + -0.03595206141471863, + 0.0030451274942606688, + -0.06579308956861496, + -0.04624996334314346, + 0.02209617756307125, + -0.052699975669384, + 0.05233551189303398, + 0.03917326778173447, + -0.04705752432346344, + 0.04233626276254654, + 0.01647038199007511, + -0.0319753997027874, + -0.018268324434757233, + -0.09570550918579102, + 0.12502112984657288, + 0.032487884163856506, + 0.03818941116333008, + -0.06252004951238632, + -0.02137906849384308, + 0.08839713782072067, + 0.011459152214229107, + -0.0364052951335907, + -0.020795777440071106, + 0.033172428607940674, + 0.07304715365171432, + 0.030338570475578308, + -0.025331459939479828, + 0.033425796777009964, + 0.07909417152404785, + 0.044216569513082504, + 0.030128872022032738, + 0.07211612910032272, + 0.11590670794248581, + -0.024705886840820312, + 0.02309587225317955, + 0.03916897624731064, + 0.024899309501051903, + 0.02518191561102867, + -0.004878608509898186, + -0.0018378261011093855, + -0.0080089271068573, + -0.00011170034849783406, + -0.015379799529910088, + -0.017086666077375412, + -0.03629455342888832, + 0.03411717340350151, + 0.00014239922165870667, + 0.008746813982725143, + 0.018694989383220673, + -0.03848152980208397, + -0.004877845756709576, + 0.06771387904882431, + 0.038313619792461395, + 0.07434645295143127, + 0.023253921419382095, + 0.02067210152745247, + 0.05656753107905388, + -0.07962983101606369, + -0.07256370782852173, + 0.02649257332086563, + 0.0085770757868886, + 0.034118637442588806, + 0.04059663414955139, + 0.03565572202205658, + -0.022544417530298233, + 0.09793820977210999, + 0.006642095744609833, + 0.012323970906436443, + 0.0027670941781252623, + -0.05990158021450043, + 0.0496484600007534, + 0.05955754965543747, + -0.00415319949388504, + 0.06258679926395416, + 0.0010111108422279358, + 0.05643618851900101, + 0.058291252702474594, + -0.07653731107711792, + -0.014202798716723919, + -0.0010597892105579376, + 0.030780520290136337, + -0.005337671376764774, + 0.11156058311462402, + 0.010762704536318779, + 0.053148671984672546, + 0.09943026304244995, + -0.06494399905204773, + -0.018177129328250885, + 0.02894250676035881, + 0.006910689175128937, + -0.025696545839309692, + 0.04709519073367119, + 0.04810675233602524, + -0.019044259563088417, + -0.016387324780225754, + 0.0316070131957531, + 0.008910607546567917, + 0.016313519328832626, + -0.031074119731783867, + -0.003475576639175415, + -0.005818442907184362, + 0.006374956574290991, + -0.021304359659552574, + 0.018476711586117744, + 0.04271669685840607, + 0.009739421308040619, + 0.012309007346630096, + -0.030352434143424034, + -0.08430805057287216, + 0.023059625178575516, + -0.008350951597094536, + 0.0301833376288414, + 0.038034502416849136, + -0.0340069904923439, + -0.05100385472178459, + -0.028611307963728905, + 0.03031962178647518, + -0.020830025896430016, + 0.05372178182005882, + 0.052251748740673065, + -0.021049227565526962, + 0.061715610325336456, + 0.02695293352007866, + 0.026425324380397797, + -0.02373645454645157, + -0.09614600986242294, + 0.007587619125843048, + 0.02758411131799221, + -0.04478609561920166, + -0.048353008925914764, + -0.010006466880440712, + -0.030420511960983276, + -0.018697096034884453, + 0.015556196682155132, + 0.0558282844722271, + 0.0019114328315481544, + 0.0035986441653221846, + -0.0758344829082489, + 0.007346875965595245, + -0.03445557504892349, + -0.08681651204824448, + 0.04090768098831177, + 0.02839125506579876, + -0.0070141032338142395, + 0.07862793654203415, + 0.02051617205142975, + 0.018865486606955528, + -0.049923479557037354, + -0.028671864420175552, + -0.004431804176419973, + 0.028754226863384247, + 0.020658444613218307, + -0.004458627663552761, + 0.035873278975486755, + 0.03657901659607887, + -0.008428744040429592, + 0.023152269423007965, + 0.026673417538404465, + 0.061416976153850555, + -0.029842248186469078, + 0.004579775966703892, + -0.0046555399894714355, + 0.08981090039014816, + 0.0633201077580452, + -0.07316349446773529, + -0.07605834305286407, + -0.028967570513486862, + -0.048072449862957, + 0.015740511938929558, + -0.007654663175344467, + 0.019183872267603874, + 0.028416959568858147, + -0.009511109441518784, + -0.03297748044133186, + -0.11363355815410614, + 0.02397424541413784, + -0.029421448707580566, + -0.010374137200415134, + -0.046779390424489975, + 0.029495395720005035, + 0.058524906635284424, + 0.02355324476957321, + -0.031237466260790825, + -0.011365748941898346, + 0.02737213671207428, + 0.008947036229074001, + -0.0042488775216042995, + 0.038352008908987045, + 0.05719178542494774, + -0.04179975017905235, + -0.009760278277099133, + -0.05449621379375458, + 0.04594341665506363, + 0.014411951415240765, + 0.10113872587680817, + 0.04233062267303467, + -0.009858286008238792, + -0.08939790725708008, + 0.05329596623778343, + -0.008047381415963173, + 0.04138759523630142, + -0.02176138013601303, + 0.023307902738451958, + 0.058196406811475754, + -0.055288344621658325, + 0.08841335028409958, + 0.027476457878947258, + -0.03257935121655464, + -0.03810466080904007, + -0.007382941897958517, + -0.04656383395195007, + 0.030206400901079178, + 0.004072529263794422, + -0.05502880737185478, + -0.021597426384687424, + 0.038785599172115326, + 0.05064279958605766, + 0.051770783960819244, + 0.0858384221792221, + 0.03550642728805542, + -0.031274985522031784 + ] + }, + "p244_373.wav": { + "name": "p244", + "embedding": [ + 0.025988437235355377, + 0.09820541739463806, + -0.07655295729637146, + 0.019693441689014435, + 0.0015632472932338715, + 0.002512953244149685, + -0.13236570358276367, + 0.0769578069448471, + -0.019709181040525436, + 0.12228292971849442, + -0.04034237936139107, + 0.10550229251384735, + -0.06892996281385422, + -0.10437479615211487, + 0.011496221646666527, + 0.061133645474910736, + 0.003962080925703049, + -0.00980973057448864, + 0.00441686250269413, + -0.029012421146035194, + 0.057221878319978714, + 0.037220560014247894, + 0.024961143732070923, + -0.06629408895969391, + -0.021362772211432457, + 0.10583087056875229, + -0.016717858612537384, + -0.01013021357357502, + -0.03688303381204605, + -0.040557119995355606, + -0.015322180464863777, + 0.05310952663421631, + -0.0063266269862651825, + -0.006088280584663153, + 0.019386611878871918, + 0.026945384219288826, + -0.032562606036663055, + -0.02129427343606949, + 0.02387141063809395, + 0.014932794496417046, + -0.049344636499881744, + 0.04137878492474556, + 0.011501285247504711, + -0.04507818445563316, + 0.07293133437633514, + -0.05540666729211807, + -0.021381376311182976, + -0.009606706909835339, + -0.05594944953918457, + 0.11514291167259216, + 0.09847469627857208, + 0.01235372107475996, + -0.041726164519786835, + 0.006693335250020027, + 0.0688067227602005, + 0.033672209829092026, + -0.08874674141407013, + -0.045205000787973404, + 0.04132102057337761, + 0.11455559730529785, + -0.011413728818297386, + -0.02181203104555607, + 0.05688142031431198, + 0.07123453915119171, + 0.0074554383754730225, + 0.07296687364578247, + 0.0906069278717041, + 0.05650331825017929, + 0.012263098731637001, + -0.05245373770594597, + 0.005300190299749374, + 0.10092728585004807, + 0.04076027870178223, + -0.0005190724041312933, + 0.016314871609210968, + -0.029129959642887115, + -0.05042188987135887, + -0.025791462510824203, + -0.012380285188555717, + -0.09108548611402512, + -0.042661506682634354, + -0.01534661091864109, + 0.00789736956357956, + 0.02617065981030464, + 0.006602557376027107, + 0.018134452402591705, + 0.09590338170528412, + -0.0702386125922203, + 0.02530999667942524, + 0.004429425112903118, + 0.023549677804112434, + 0.008688906207680702, + -0.05143841728568077, + -0.06301959604024887, + 0.03597753122448921, + 0.039433401077985764, + 0.022894442081451416, + 0.0422198548913002, + 0.04887760058045387, + 0.030597684904932976, + 0.08671444654464722, + -0.0022908179089426994, + 0.009263802319765091, + -0.0226020235568285, + -0.03954731300473213, + 0.0862768143415451, + 0.11853201687335968, + -0.038837067782878876, + 0.04914525896310806, + -0.06082789599895477, + -0.023989427834749222, + 0.0034458301961421967, + -0.07507243007421494, + -0.03266632929444313, + 0.01374002918601036, + 0.02326524630188942, + 0.006310518831014633, + 0.10992632806301117, + 0.06194300949573517, + 0.036353904753923416, + 0.09295313060283661, + -0.0928887128829956, + -0.09954400360584259, + -0.08038656413555145, + 0.07480818778276443, + -0.06612022966146469, + 0.08799386024475098, + 0.09594659507274628, + 0.013327401131391525, + 0.029001597315073013, + 0.036311887204647064, + 0.027989590540528297, + 0.03874170035123825, + -0.03448348119854927, + -0.03784364089369774, + -0.01644155941903591, + -0.057676397264003754, + 0.011099273338913918, + 0.029926974326372147, + -0.002386469393968582, + 0.0668230950832367, + -0.01530742272734642, + 0.013561587780714035, + -0.10623090714216232, + -0.007145174778997898, + 0.0587586984038353, + 0.009654166176915169, + -0.03397119417786598, + -0.05040347948670387, + -0.0074806222692132, + -0.07279738038778305, + -0.05282333120703697, + -0.0766778513789177, + 0.08115430176258087, + -0.017442453652620316, + 0.025579238310456276, + 0.09499223530292511, + 0.011951069347560406, + -0.00854148156940937, + -0.034677669405937195, + -0.015701044350862503, + 0.004493666812777519, + 0.016761906445026398, + -0.10517837107181549, + -0.10933873057365417, + -0.05259307101368904, + 0.02531185746192932, + 0.016538385301828384, + 0.06609632074832916, + 0.04936101287603378, + 0.019311608746647835, + -0.0027266854885965586, + -0.011622831225395203, + 0.010196343064308167, + -0.07101771235466003, + -0.08215239644050598, + -0.01632404886186123, + -0.036348022520542145, + -0.02212928794324398, + 0.10357800871133804, + 0.00830297265201807, + 0.05375465750694275, + -0.0353054478764534, + -0.01025029644370079, + -0.08879391849040985, + 0.045894771814346313, + 0.047377828508615494, + -0.030138906091451645, + 0.015525770373642445, + 0.010622154921293259, + -0.02707100100815296, + -0.003325197845697403, + 0.04586614668369293, + 0.07359784096479416, + -0.016822580248117447, + -0.006815088912844658, + -0.08205129206180573, + 0.039483003318309784, + 0.13273406028747559, + -0.07597324997186661, + -0.03539995849132538, + -0.07370650768280029, + -0.08235020935535431, + 0.018575873225927353, + -0.07696881890296936, + 0.0021603491622954607, + -0.009484760463237762, + -0.0041832514107227325, + -0.12185937911272049, + -0.11209568381309509, + 0.04404143989086151, + -0.0019835233688354492, + 0.015067500062286854, + -0.05630561709403992, + 0.046252425760030746, + 0.04974498227238655, + 0.025762362405657768, + -0.05616918206214905, + 0.02369961515069008, + 0.03976144641637802, + -0.005783764645457268, + 0.05185233801603317, + 0.043437644839286804, + 0.10268016159534454, + -0.07472864538431168, + -0.014422083273530006, + -0.07585626095533371, + 0.04222417622804642, + -0.06329778581857681, + 0.09328177571296692, + 0.05219300091266632, + -0.02957436442375183, + -0.09310401976108551, + 0.05537908151745796, + 0.02255186066031456, + 0.03306068480014801, + -0.013540109619498253, + 0.0282684788107872, + 0.045438721776008606, + -0.09567025303840637, + 0.0685226321220398, + 0.03649486228823662, + 0.02875138819217682, + -0.07151172310113907, + -0.04839157685637474, + -0.04036583751440048, + 0.06036647409200668, + -0.00438026525080204, + -0.03908253088593483, + -0.02415274828672409, + -0.00627659447491169, + 0.07473570108413696, + 0.05670511722564697, + 0.07765699177980423, + 0.013433671556413174, + -0.078646719455719 + ] + }, + "p244_304.wav": { + "name": "p244", + "embedding": [ + 0.022711295634508133, + 0.07748173177242279, + 0.025834525004029274, + 0.008184421807527542, + -0.023033270612359047, + 0.08437056839466095, + -0.13064096868038177, + 0.08926959335803986, + -0.0762484073638916, + 0.14807948470115662, + -0.08903578668832779, + 0.051704198122024536, + -0.05598234012722969, + -0.19571346044540405, + -0.017107469961047173, + 0.06931046396493912, + -0.05810039862990379, + 0.0059250290505588055, + -0.08474580943584442, + -0.010211730375885963, + 0.014573503285646439, + 0.0010009087854996324, + 0.01747260056436062, + 0.020306620746850967, + 0.007357908878475428, + 0.055135417729616165, + -0.030081573873758316, + 0.027837570756673813, + -0.020328463986516, + -0.03754015266895294, + -0.01681126281619072, + 0.12032558768987656, + -0.03685387969017029, + 0.01620105281472206, + 0.08825662732124329, + 0.01890682615339756, + -0.03712807968258858, + -0.02135617844760418, + -0.005642293952405453, + -0.008479191921651363, + -0.07152386009693146, + 0.054391048848629, + -0.0012594076106324792, + 0.03424086794257164, + 0.07749515771865845, + 0.024106694385409355, + -0.016839729622006416, + -0.03357970342040062, + -0.07907180488109589, + 0.11650526523590088, + 0.08169906586408615, + -0.028337819501757622, + -0.026532793417572975, + -0.07965946942567825, + 0.08826316148042679, + -0.0355621762573719, + -0.15203070640563965, + -0.08715762197971344, + 0.10039637982845306, + 0.14046311378479004, + -0.046632762998342514, + -0.00476363068446517, + -0.006527372635900974, + 0.10522933304309845, + 0.011653348803520203, + 0.15772445499897003, + 0.006807137280702591, + 0.08539994060993195, + -0.000572943827137351, + 0.0258883535861969, + 0.07486965507268906, + 0.013907882384955883, + 0.06873930990695953, + -0.03511760011315346, + 0.039504941552877426, + 0.022473732009530067, + -0.0008677373407408595, + 0.026532527059316635, + 0.01022608857601881, + 0.014962945133447647, + -0.0024661002680659294, + -0.03310469165444374, + -0.03692680597305298, + -0.0394938588142395, + -0.0026312265545129776, + 0.019223330542445183, + 0.04809681326150894, + 0.0001370495738228783, + 0.06026380881667137, + 0.06940500438213348, + -0.016827460378408432, + 0.06810729950666428, + -0.021628154441714287, + -0.05956669896841049, + 0.010129084810614586, + 0.011063181795179844, + -0.028331128880381584, + 0.022709282115101814, + 0.010611528530716896, + 0.006038271356374025, + 0.07363495975732803, + 0.04817867651581764, + 0.00877306703478098, + 0.05714738741517067, + -0.12362018972635269, + 0.12945257127285004, + 0.038387883454561234, + -0.016903875395655632, + 0.04234904795885086, + -0.0001951254380401224, + 0.06232089176774025, + 0.110261470079422, + -0.11998284608125687, + -0.0339704193174839, + 0.0010467983083799481, + -0.053432803601026535, + -0.041706573218107224, + 0.0825280174612999, + 0.006255296058952808, + -0.05825299769639969, + 0.1329822689294815, + -0.08691225945949554, + -0.06604604423046112, + -0.008038188330829144, + 0.00900148507207632, + -0.13898621499538422, + 0.0192754827439785, + 0.04680553451180458, + 0.0102784913033247, + 0.00036384587292559445, + 0.15025316178798676, + -0.012897887267172337, + -0.0046776640228927135, + -0.008564743213355541, + -0.027394231408834457, + 0.02482428029179573, + -0.03371784836053848, + 0.03647928684949875, + 0.08281941711902618, + 0.015171117149293423, + 0.030740104615688324, + -0.017334870994091034, + -0.026558881625533104, + -0.08479554206132889, + -0.010086203925311565, + 0.05589460954070091, + 0.04483935981988907, + -0.008999710902571678, + 0.05178820714354515, + -0.03989846259355545, + -0.10083739459514618, + 0.06717672199010849, + -0.056261930614709854, + 0.09425389766693115, + 0.0036978188436478376, + -0.027439208701252937, + 0.12801530957221985, + -0.006857945583760738, + 0.006916288286447525, + -0.12446922063827515, + -0.00043053089757449925, + 0.03536829724907875, + 0.046749476343393326, + -0.10868663340806961, + -0.031571030616760254, + 0.02713542990386486, + 0.04419597610831261, + 0.02856263518333435, + 0.025127867236733437, + 0.04229838401079178, + 0.0008241615723818541, + 0.02129506878554821, + -0.04658876359462738, + 0.019512450322508812, + -0.06809564679861069, + -0.06443101912736893, + -0.023213515058159828, + -0.06891179084777832, + 0.007952879182994366, + 0.06904541701078415, + -0.04823429509997368, + -0.029340645298361778, + -0.014090826734900475, + -0.11455170810222626, + -0.09613367170095444, + 0.08904501795768738, + 0.07175253331661224, + -0.007502212654799223, + 0.04700871556997299, + 0.03642822057008743, + -0.08982168883085251, + 0.0499243326485157, + 0.042581163346767426, + 0.15260908007621765, + -0.052219536155462265, + 0.06762342154979706, + -0.08329164236783981, + 0.04724467918276787, + 0.0754045620560646, + -0.0763833075761795, + -0.08398013561964035, + 0.00939631462097168, + -0.012717029079794884, + 0.06586272269487381, + -0.055741336196660995, + -0.04147971048951149, + 0.04621530696749687, + -0.044215064495801926, + -0.04343722388148308, + -0.08591325581073761, + 0.10127062350511551, + -0.05069053918123245, + -0.01004981342703104, + -0.04669785127043724, + 0.046343009918928146, + -0.010672826319932938, + 0.07424084097146988, + -0.040462784469127655, + 0.041603416204452515, + 0.06315108388662338, + -0.05816970393061638, + -0.03648746758699417, + 0.04510973393917084, + -0.024843839928507805, + -0.06066644564270973, + -0.04027685523033142, + -0.11766115576028824, + 0.10020244121551514, + -0.049527671188116074, + 0.12818704545497894, + -0.05834294110536575, + -0.04999767988920212, + -0.031744468957185745, + -0.015066524967551231, + -0.010042618028819561, + 0.026611095294356346, + 0.06379668414592743, + 0.08535535633563995, + 0.03816480562090874, + 0.00819784589111805, + 0.10248463600873947, + -0.005560922436416149, + 0.038531430065631866, + -0.028577744960784912, + -0.017214465886354446, + -0.07231894880533218, + 0.0017309447284787893, + -0.016719846054911613, + -0.17118534445762634, + 0.043390046805143356, + 0.014364867471158504, + -0.04175948724150658, + 0.030008237808942795, + 0.11371616274118423, + 0.05733555927872658, + -0.10070354491472244 + ] + }, + "p244_115.wav": { + "name": "p244", + "embedding": [ + 0.043387725949287415, + 0.11231091618537903, + -0.003916000481694937, + 0.009882601909339428, + -0.054747194051742554, + 0.07636934518814087, + -0.12208505719900131, + 0.14207975566387177, + -0.05527171492576599, + 0.1381472498178482, + -0.06776908040046692, + 0.11894410848617554, + -0.03930240124464035, + -0.16356351971626282, + -0.05396844074130058, + 0.05102023482322693, + -0.0496596023440361, + -0.029463768005371094, + -0.04164385423064232, + -0.019953353330492973, + 0.022780798375606537, + 0.004782961681485176, + 0.02691066637635231, + 0.026409871876239777, + 0.03607138618826866, + 0.06601843982934952, + 0.008632799610495567, + 0.06571470201015472, + 0.028668176382780075, + -0.03407922387123108, + -0.03384008631110191, + 0.10132303088903427, + -0.054539501667022705, + 0.036883652210235596, + 0.07302998006343842, + -0.00542761106044054, + 0.0032011528965085745, + -0.047096531838178635, + -0.004907770082354546, + -0.0015979751478880644, + -0.039088062942028046, + 0.08952777832746506, + 0.02241676114499569, + 0.00442493474110961, + 0.02193446457386017, + 0.03968430683016777, + 0.0028938695322722197, + -0.04308926686644554, + -0.09924664348363876, + 0.14455197751522064, + 0.06625208258628845, + -0.01932726614177227, + -0.06858550012111664, + -0.07320526242256165, + 0.1061343252658844, + -0.037628136575222015, + -0.11545932292938232, + -0.04847247153520584, + 0.07793942838907242, + 0.1472417414188385, + -0.039471399039030075, + -0.03440989553928375, + -0.002847484080120921, + 0.1367272436618805, + 0.06090783327817917, + 0.09846580028533936, + 0.07505609095096588, + 0.1156468391418457, + -0.023791294544935226, + 0.0214972123503685, + 0.07073168456554413, + 0.05553985387086868, + 0.0449344739317894, + -0.005026431754231453, + 0.021073712036013603, + -0.0075178625993430614, + 0.003391070058569312, + 0.019270282238721848, + -0.025024106726050377, + -0.01593026891350746, + -0.0399935357272625, + 0.016689486801624298, + -0.01982315070927143, + 0.017254436388611794, + -0.0063963234424591064, + 0.06769010424613953, + 0.021447142586112022, + -0.01378849521279335, + 0.06907767802476883, + 0.06431375443935394, + -0.003343365853652358, + 0.06677393615245819, + -0.07856949418783188, + -0.07840704172849655, + 0.017980866134166718, + -0.013636510819196701, + 0.03128594905138016, + 0.07158458232879639, + 0.03643043339252472, + 0.004429791122674942, + 0.10795672982931137, + 0.06717909872531891, + -0.008991558104753494, + 0.028005464002490044, + -0.09401147067546844, + 0.1403331458568573, + 0.06828339397907257, + -0.03059801459312439, + 0.03733018785715103, + -0.025316689163446426, + 0.06774851679801941, + 0.07324408739805222, + -0.12855027616024017, + -0.08557166159152985, + 0.021088851615786552, + 0.00902944803237915, + -0.03106229566037655, + 0.08071941882371902, + -0.026057027280330658, + 0.019811101257801056, + 0.09252659976482391, + -0.0596553236246109, + -0.044678620994091034, + -0.019683992490172386, + 0.04097326844930649, + -0.06778547167778015, + 0.03849031776189804, + 0.04769861698150635, + 0.0038790679536759853, + 0.008564174175262451, + 0.10526256263256073, + 0.005555190145969391, + -0.013000641018152237, + 0.040261100977659225, + -0.045331161469221115, + 0.027491208165884018, + -0.010354146361351013, + 0.014817701652646065, + 0.044352225959300995, + 0.04833199828863144, + 0.053873978555202484, + 0.005366505589336157, + -0.0115616200491786, + -0.09530405700206757, + 0.0033737346529960632, + 0.055167488753795624, + 0.07145251333713531, + -0.02232576161623001, + -0.020091822370886803, + -0.028691880404949188, + -0.05672793090343475, + 0.010987645015120506, + 0.0018404526636004448, + 0.08758819103240967, + -0.03067968599498272, + -0.0027938554994761944, + 0.11813554167747498, + 0.014427493326365948, + -0.010303257033228874, + -0.06665486842393875, + -0.014806526713073254, + 0.004433467518538237, + 0.05507759377360344, + -0.08299261331558228, + -0.06513661891222, + 0.01767323911190033, + 0.03315040096640587, + -0.01806546561419964, + 0.07016691565513611, + 0.0455411896109581, + 0.006543578114360571, + 0.037425436079502106, + -0.0536341667175293, + 0.014983810484409332, + -0.08933089673519135, + -0.05407053232192993, + -0.028554178774356842, + -0.021868420764803886, + -0.02078847587108612, + 0.06556010246276855, + 0.02104736864566803, + 0.05847422406077385, + 0.013757916167378426, + -0.09379404038190842, + -0.07511549443006516, + 0.06460367143154144, + 0.06682710349559784, + -0.004587736912071705, + 0.04965873062610626, + 0.07594504207372665, + -0.039351027458906174, + 0.05320898815989494, + 0.07116397470235825, + 0.09496461600065231, + -0.04457472264766693, + 0.03189108520746231, + -0.07518292963504791, + 0.05866130813956261, + 0.06410959362983704, + -0.11716088652610779, + -0.0836414247751236, + -0.021253909915685654, + -0.03601228445768356, + 0.023579150438308716, + -0.030452851206064224, + 0.01744082383811474, + 0.03475135564804077, + -0.017504658550024033, + -0.07475198805332184, + -0.10161813348531723, + 0.09390457719564438, + -0.08480685204267502, + 0.004718102049082518, + -0.0679241269826889, + 0.04134657233953476, + 0.08306419849395752, + 0.04661604017019272, + -0.02856295369565487, + 0.01010741014033556, + 0.05332493036985397, + -0.026185041293501854, + -0.020032932981848717, + 0.04892241582274437, + 0.011737219989299774, + -0.09750422090291977, + 0.0054626609198749065, + -0.07203347980976105, + 0.07435194402933121, + -0.038043662905693054, + 0.16533881425857544, + -0.005695355590432882, + -0.05823620781302452, + -0.06599204242229462, + 0.009580838494002819, + -0.04067467898130417, + 0.04476385563611984, + 0.032868191599845886, + 0.06642282754182816, + 0.01357905101031065, + -0.032919712364673615, + 0.14244388043880463, + 0.03732621669769287, + -0.055055998265743256, + -0.07384319603443146, + -0.04408877342939377, + -0.04036155715584755, + 0.028797946870326996, + 0.02469916269183159, + -0.09745009243488312, + -0.010940195992588997, + 0.01534411683678627, + -0.04468837380409241, + 0.07173287123441696, + 0.14669269323349, + 0.09920390695333481, + -0.10882420837879181 + ] + }, + "p244_392.wav": { + "name": "p244", + "embedding": [ + 0.03167426958680153, + 0.10426194965839386, + -0.009920000098645687, + 0.05975175276398659, + -0.051560111343860626, + 0.002617916092276573, + -0.041866034269332886, + 0.044262245297431946, + 0.023521175608038902, + 0.07011357694864273, + -0.04536845535039902, + 0.0609307698905468, + -0.05406789854168892, + -0.09309213608503342, + -0.02389051765203476, + 0.007743997499346733, + -0.017074065282940865, + 0.02355622686445713, + -0.04101406782865524, + -0.014707939699292183, + -0.04180413484573364, + -0.0053919292986392975, + -0.014366772025823593, + 0.009368307888507843, + -0.05638735741376877, + 0.03238476812839508, + -0.018987352028489113, + 0.028417643159627914, + 0.00207655131816864, + -0.0936736986041069, + 0.009874638170003891, + 0.046511806547641754, + -0.010442698374390602, + -0.024606214836239815, + 0.011192393489181995, + -0.03466886281967163, + 0.0229241531342268, + -0.02251732163131237, + -0.052576255053281784, + -0.0013754535466432571, + -0.0446104034781456, + 0.011387551203370094, + 0.010763168334960938, + -0.07146912813186646, + 0.011566242203116417, + 0.01195025909692049, + -0.042745307087898254, + -0.02464255318045616, + -0.044301148504018784, + 0.11016646027565002, + 0.03779337555170059, + 0.0480181910097599, + -0.03398082032799721, + -0.04161173850297928, + 0.12668584287166595, + 0.013045506551861763, + -0.008224982768297195, + -0.0280438382178545, + -0.00505722314119339, + 0.07046718150377274, + 0.024526391178369522, + 0.019032027572393417, + 0.05669151246547699, + 0.07353459298610687, + 0.015029383823275566, + 0.03478962928056717, + 0.06489060819149017, + 0.07210944592952728, + -0.025110721588134766, + 0.033205196261405945, + 0.05080725997686386, + 0.01700931042432785, + 0.030414501205086708, + 0.04642302170395851, + -0.016246598213911057, + 0.01746777445077896, + 0.015920985490083694, + 0.032687414437532425, + -0.015234909020364285, + -0.029043670743703842, + 0.0059959497302770615, + 0.0030358266085386276, + -0.0024327002465724945, + -0.04927331954240799, + -0.051496781408786774, + -0.03316938132047653, + 0.04965706169605255, + 0.01234703604131937, + 0.041611090302467346, + -0.005302524194121361, + 0.07120639085769653, + 0.034922804683446884, + -0.01566764898598194, + -0.062077272683382034, + 0.015825804322957993, + -0.016143178567290306, + 0.051017627120018005, + 0.014940548688173294, + 0.002984323538839817, + 0.007143537979573011, + 0.05848165228962898, + -0.013863109052181244, + 0.03863525390625, + -0.00472786370664835, + -0.048347145318984985, + -0.012241236865520477, + 0.03483852371573448, + 0.02262440323829651, + 0.03246890380978584, + 0.05019484460353851, + 0.04098641127347946, + 0.08366838842630386, + -0.04658963531255722, + -0.04764125123620033, + 0.017100946977734566, + 0.052166521549224854, + -0.04593181982636452, + 0.07495757192373276, + -0.004719093907624483, + 0.0313219279050827, + 0.05603533983230591, + 0.006932998076081276, + -0.014059900306165218, + 0.00938648171722889, + 0.0014455020427703857, + -0.05241686478257179, + 0.050783656537532806, + 0.021564047783613205, + -0.044760480523109436, + -0.0585191547870636, + 0.07667779177427292, + -0.015426401048898697, + -0.024842334911227226, + -0.005533996503800154, + 0.007311370223760605, + -0.00817357562482357, + 0.04728040099143982, + -0.03528156131505966, + 0.019626516848802567, + 0.07099315524101257, + -0.015459954738616943, + -0.04206259176135063, + -0.012673921883106232, + -0.05273896083235741, + 0.03760179132223129, + 0.014722894877195358, + 0.0070520732551813126, + 0.07482288032770157, + -0.03879670798778534, + -0.05430058017373085, + -0.011570228263735771, + 0.04430118575692177, + -0.04889555647969246, + 0.08682427555322647, + 0.04381496459245682, + 0.020590102300047874, + 0.07151583582162857, + -0.04233044013381004, + 0.005601249635219574, + -0.011790143325924873, + -0.09783865511417389, + 0.010344371199607849, + 0.017214806750416756, + -0.001142384484410286, + -0.022605106234550476, + 0.00040830671787261963, + -0.006040768697857857, + -0.00026063359109684825, + 0.014820680022239685, + 0.025661464780569077, + -0.02437320537865162, + 0.05740160495042801, + -0.08502158522605896, + -0.004859911277890205, + -0.01352146826684475, + -0.03860706463456154, + 0.035165444016456604, + -0.012399137951433659, + -0.004625169560313225, + 0.023134753108024597, + 0.030916044488549232, + -0.030799563974142075, + -0.036819979548454285, + -0.08939138054847717, + 0.00655374675989151, + 0.028716757893562317, + 0.028335902839899063, + 0.003733353689312935, + -0.013399647548794746, + 0.042861200869083405, + 0.055462975054979324, + 0.020656302571296692, + 0.009753655642271042, + 0.06613370776176453, + -0.025952599942684174, + -0.022081241011619568, + 0.025753017514944077, + 0.08026733249425888, + 0.02579480968415737, + -0.08054385334253311, + -0.08532196283340454, + -0.03218194842338562, + -0.04993097484111786, + 0.049469754099845886, + -0.017412006855010986, + 0.03988263010978699, + 0.025414496660232544, + 0.005081942770630121, + 0.017681274563074112, + -0.13362669944763184, + 0.05527804419398308, + 0.00039356574416160583, + -0.031461045145988464, + -0.006021600216627121, + 0.0017837323248386383, + 0.019522959366440773, + 0.05130888521671295, + -0.020038940012454987, + -0.015512117184698582, + 0.021845843642950058, + -0.0066452473402023315, + 0.0017231928650289774, + 0.04843810573220253, + 0.034658752381801605, + -0.007764648646116257, + -0.006077399477362633, + -0.042845241725444794, + 0.016369037330150604, + 0.005373429507017136, + 0.034566015005111694, + 0.012757807038724422, + -0.016425279900431633, + -0.11399167776107788, + 0.07710530608892441, + -0.05213498696684837, + 0.07460986077785492, + -0.006902020424604416, + 0.017613302916288376, + 0.0500674769282341, + -0.02228529006242752, + 0.08610643446445465, + 0.029319485649466515, + -0.035165365785360336, + -0.04674747213721275, + -0.013413554057478905, + -0.0360177643597126, + 0.0384388342499733, + 0.0586557574570179, + -0.007834583520889282, + -0.02187827229499817, + 0.04739297926425934, + 0.009366696700453758, + 0.09909434616565704, + 0.06780128926038742, + 0.06554730981588364, + 0.026013102382421494 + ] + }, + "p244_172.wav": { + "name": "p244", + "embedding": [ + 0.05328046530485153, + 0.10069956630468369, + -0.015530981123447418, + 0.015568692237138748, + -0.03409476578235626, + 0.05483525991439819, + -0.13426366448402405, + 0.12839853763580322, + -0.05357379838824272, + 0.14794568717479706, + -0.0880264863371849, + 0.11787037551403046, + -0.021268021315336227, + -0.1846957802772522, + -0.039139121770858765, + 0.047906529158353806, + -0.05005773529410362, + -0.015305576846003532, + -0.05758603662252426, + -0.003040645271539688, + 0.04655206948518753, + 0.029886111617088318, + 0.017577793449163437, + -0.015141883864998817, + 0.016078172251582146, + 0.06496861577033997, + 0.006860947236418724, + 0.050126463174819946, + 0.01896042190492153, + -0.05026520416140556, + -0.03194788843393326, + 0.12021004408597946, + -0.04205349087715149, + 0.006707796361297369, + 0.06351794302463531, + -0.010104700922966003, + -0.008936571888625622, + -0.054179079830646515, + -0.009878999553620815, + 0.0009941949974745512, + -0.03997116535902023, + 0.06543129682540894, + 0.0131410276517272, + -0.0035837600007653236, + 0.05563399940729141, + 0.036036573350429535, + -0.014707996509969234, + -0.06272609531879425, + -0.09007234871387482, + 0.14857691526412964, + 0.06974101066589355, + 0.006612904369831085, + -0.06900987029075623, + -0.05858932435512543, + 0.0926736444234848, + -0.023383229970932007, + -0.10982576012611389, + -0.05123686045408249, + 0.07350354641675949, + 0.15843841433525085, + -0.03553340211510658, + -0.028127815574407578, + 0.03344814479351044, + 0.10828813910484314, + 0.05147753283381462, + 0.1048969253897667, + 0.07873382419347763, + 0.0800885334610939, + 0.0014799063792452216, + 0.03434686362743378, + 0.055983975529670715, + 0.05410975217819214, + 0.059437450021505356, + -0.0249684676527977, + 0.046496957540512085, + -0.00011265433568041772, + -0.02718399092555046, + -0.0018388144671916962, + -0.022165369242429733, + -0.0060430532321333885, + -0.004844858311116695, + 0.020409464836120605, + 0.005303974263370037, + 0.02365877293050289, + -0.04108075052499771, + 0.060492824763059616, + 0.02005637437105179, + -0.020773939788341522, + 0.0633162260055542, + 0.035031870007514954, + 0.02114015631377697, + 0.04657658189535141, + -0.07545431703329086, + -0.09998656809329987, + 0.031956739723682404, + 0.0006938837468624115, + -0.0056634037755429745, + 0.0512889139354229, + 0.03894150257110596, + -0.01717195473611355, + 0.1073397845029831, + 0.05296548828482628, + -0.009820147417485714, + 0.03681395947933197, + -0.09293647110462189, + 0.12162409722805023, + 0.08498598635196686, + -0.029003962874412537, + 0.04302334412932396, + -0.0393243134021759, + 0.0640905424952507, + 0.07003886252641678, + -0.13617388904094696, + -0.07703156024217606, + 0.04188472777605057, + -0.0027434974908828735, + -0.01546061784029007, + 0.1062188670039177, + -0.0072964271530508995, + 0.025952285155653954, + 0.09513642638921738, + -0.07974665611982346, + -0.05862666293978691, + -0.023430872708559036, + 0.04660612344741821, + -0.09293046593666077, + 0.0656660944223404, + 0.04869203269481659, + -0.009260022081434727, + -0.00439292099326849, + 0.10360374301671982, + -0.014487972483038902, + -0.0055283112451434135, + -0.0013810943346470594, + -0.03009209781885147, + 0.03186986222863197, + -0.03980226442217827, + -0.0073716845363378525, + 0.02353905700147152, + 0.03632710501551628, + 0.040201179683208466, + -0.0023763279896229506, + -0.03501234948635101, + -0.11208435148000717, + 0.009459732100367546, + 0.041710641235113144, + 0.06681032478809357, + -0.0059346770867705345, + -0.005967825651168823, + -0.04604911059141159, + -0.05021928995847702, + 0.004382844548672438, + -0.026179373264312744, + 0.07537036389112473, + -0.010914250276982784, + 0.006028651259839535, + 0.11042088270187378, + 0.000616279779933393, + 0.011490372940897942, + -0.050919823348522186, + -0.01174293365329504, + 0.030776500701904297, + 0.05170102417469025, + -0.06650855392217636, + -0.06819067150354385, + 0.00012394911027513444, + 0.026248008012771606, + -0.008239896968007088, + 0.04866882413625717, + 0.04761533439159393, + 0.010837987065315247, + 0.0285421684384346, + -0.07714320719242096, + 0.024356942623853683, + -0.11078554391860962, + -0.05829313024878502, + -0.02049107477068901, + -0.03182903304696083, + -0.023296533152461052, + 0.07409697026014328, + 0.012120941653847694, + 0.030805163085460663, + -0.018653515726327896, + -0.0897546038031578, + -0.08098743855953217, + 0.06678366661071777, + 0.0935417041182518, + -0.0020603658631443977, + 0.03990597277879715, + 0.03770091384649277, + -0.01316265668720007, + 0.05057818442583084, + 0.06646673381328583, + 0.10557480156421661, + -0.002194773405790329, + -0.0006860420107841492, + -0.06764396280050278, + 0.07547280192375183, + 0.07125060260295868, + -0.08722849935293198, + -0.07954218238592148, + -0.008046845905482769, + -0.0590706467628479, + 0.03370240703225136, + -0.017962973564863205, + 0.016899481415748596, + 0.04597979411482811, + -0.008341102860867977, + -0.09900788962841034, + -0.09048245847225189, + 0.0896284207701683, + -0.07918136566877365, + -0.0111524797976017, + -0.06500230729579926, + 0.04423707351088524, + 0.08531510829925537, + 0.02041160687804222, + -0.03175988793373108, + -0.013171052560210228, + 0.0306834913790226, + -0.05320463702082634, + -0.009222344495356083, + 0.023275045678019524, + 0.02134796231985092, + -0.10521458089351654, + 0.030978351831436157, + -0.08062485605478287, + 0.06755636632442474, + -0.06620991230010986, + 0.143857941031456, + -0.008605197072029114, + -0.05112457275390625, + -0.09345197677612305, + 0.04196741431951523, + -0.021997880190610886, + 0.04844974726438522, + 0.03618605434894562, + 0.06631191819906235, + 0.04038413614034653, + -0.08559726923704147, + 0.10513557493686676, + 0.02961728349328041, + -0.021717406809329987, + -0.07660029828548431, + -0.05497099086642265, + -0.053230129182338715, + 0.02041519619524479, + 0.018541604280471802, + -0.08590307086706161, + -0.011757295578718185, + 0.01535176020115614, + -0.021901747211813927, + 0.06670995056629181, + 0.1253884881734848, + 0.03364139422774315, + -0.12070481479167938 + ] + }, + "p244_143.wav": { + "name": "p244", + "embedding": [ + 0.04184994101524353, + 0.09428860992193222, + 0.010645839385688305, + 0.010888501070439816, + -0.029055725783109665, + 0.06402722001075745, + -0.15584418177604675, + 0.1271580457687378, + -0.06619051098823547, + 0.11769188940525055, + -0.08112804591655731, + 0.08851327747106552, + -0.02373885177075863, + -0.1908387839794159, + -0.06657776981592178, + 0.059456080198287964, + -0.04148675501346588, + -0.026541031897068024, + -0.008902423083782196, + -0.006662983447313309, + 0.036217715591192245, + 0.011808092705905437, + 0.021532896906137466, + 0.0334765799343586, + 0.022541530430316925, + 0.04832759499549866, + 0.013400953263044357, + 0.059601813554763794, + 0.014490913599729538, + -0.00476585328578949, + -0.011603492312133312, + 0.12306865304708481, + -0.03193487226963043, + -0.008044440299272537, + 0.07113578170537949, + 0.00410066545009613, + 0.00383190019056201, + -0.0649915337562561, + -0.004404890816658735, + -0.013429416343569756, + -0.05097422003746033, + 0.07641692459583282, + 0.02889288030564785, + 0.019557824358344078, + 0.04021153971552849, + 0.02833852916955948, + -0.00547438021749258, + -0.047851454466581345, + -0.10886617749929428, + 0.1315833032131195, + 0.05208972096443176, + 0.008821885101497173, + -0.08736114948987961, + -0.059351228177547455, + 0.11320991814136505, + -0.025807496160268784, + -0.09121562540531158, + -0.04701714962720871, + 0.08738429844379425, + 0.17206811904907227, + -0.03326084464788437, + -0.024036094546318054, + 0.024509388953447342, + 0.11141562461853027, + 0.0381050705909729, + 0.09966093301773071, + 0.06681782007217407, + 0.08818402141332626, + 0.001934309839271009, + 0.0152193708345294, + 0.06099681556224823, + 0.036837417632341385, + 0.016656646504998207, + -0.04221617430448532, + 0.026002466678619385, + 0.016049271449446678, + -0.02466241829097271, + 0.02905607782304287, + -0.018843408674001694, + -0.0032626772299408913, + -0.02033657394349575, + 0.006928074639290571, + -0.016060620546340942, + 0.015299877151846886, + -0.03568081185221672, + 0.04823293536901474, + 0.007566848304122686, + -0.004285029135644436, + 0.07963285595178604, + 0.05325556918978691, + 0.003978057764470577, + 0.04841625317931175, + -0.059608228504657745, + -0.08044113963842392, + 0.02077154442667961, + 0.0003820030833594501, + -0.016218222677707672, + 0.06474467366933823, + 0.02580983005464077, + -0.022742342203855515, + 0.09970265626907349, + 0.05864737555384636, + -0.0007104115793481469, + 0.03276856243610382, + -0.11037733405828476, + 0.11361926794052124, + 0.06760273873806, + -0.016312066465616226, + 0.04291301220655441, + -0.028618205338716507, + 0.04881608113646507, + 0.08824889361858368, + -0.13560786843299866, + -0.07566869258880615, + 0.05233592912554741, + 0.02483828365802765, + 0.002956368727609515, + 0.10989207029342651, + -0.015415707603096962, + -0.007515076547861099, + 0.08407189697027206, + -0.060011789202690125, + -0.07183945178985596, + -0.025250663980841637, + 0.04685008153319359, + -0.07184488326311111, + 0.04701438546180725, + 0.04618222266435623, + 0.01143421046435833, + -0.030484478920698166, + 0.0887065976858139, + -3.5829223634209484e-05, + -0.017796283587813377, + 0.005997110158205032, + -0.01966599002480507, + 0.05021780729293823, + -0.0293545201420784, + 0.0037592952139675617, + 0.031366609036922455, + 0.047960132360458374, + 0.031941745430231094, + 0.023489337414503098, + -0.028179382905364037, + -0.09630221128463745, + -0.023424675688147545, + 0.056784313172101974, + 0.07821419835090637, + -0.013793924823403358, + -0.025265701115131378, + -0.06158892437815666, + -0.045521851629018784, + 0.009584767743945122, + -0.008200234733521938, + 0.09907764196395874, + 0.008400815539062023, + 0.006592373829334974, + 0.09405991435050964, + -0.004040364176034927, + 0.013872742652893066, + -0.04959714412689209, + 0.0009657462942413986, + 0.02421344444155693, + 0.04896105080842972, + -0.057883404195308685, + -0.06314706057310104, + 0.003681553527712822, + 0.03518075495958328, + -0.012151641771197319, + 0.022868311032652855, + 0.03299618512392044, + 0.009383068419992924, + 0.025491898879408836, + -0.08730727434158325, + 0.04629608243703842, + -0.10041502118110657, + -0.04661624878644943, + -0.020765312016010284, + -0.010293352417647839, + -0.013416923582553864, + 0.07175701856613159, + 0.03053620271384716, + 0.028793223202228546, + 0.0034427910577505827, + -0.09598682820796967, + -0.06499901413917542, + 0.06358711421489716, + 0.09655596315860748, + 0.0029036931227892637, + 0.05007064342498779, + 0.039479102939367294, + -0.025728216394782066, + 0.060825273394584656, + 0.07051520049571991, + 0.08499304950237274, + -0.03300131857395172, + 0.0010429683607071638, + -0.04955942928791046, + 0.06396093964576721, + 0.05872654542326927, + -0.10223034024238586, + -0.08746303617954254, + 0.002991980640217662, + -0.041445694863796234, + 0.035602591931819916, + -0.014818340539932251, + 0.019820790737867355, + 0.025072623044252396, + -0.037108395248651505, + -0.09280560910701752, + -0.09614585340023041, + 0.0807623416185379, + -0.07481952011585236, + -0.015103710815310478, + -0.05831623822450638, + 0.041433896869421005, + 0.08630160987377167, + 0.015765566378831863, + -0.018387479707598686, + -0.020461130887269974, + 0.020097073167562485, + -0.05137387663125992, + -0.039864230901002884, + 0.024097442626953125, + -0.006324879825115204, + -0.10931193828582764, + 0.030139263719320297, + -0.0839049369096756, + 0.10349252074956894, + -0.054028645157814026, + 0.14437945187091827, + -0.016675271093845367, + -0.05906803905963898, + -0.08442769944667816, + -0.0025296476669609547, + -0.01479028444737196, + 0.04959484934806824, + 0.029672494158148766, + 0.06280151009559631, + 0.013846802525222301, + -0.03165620192885399, + 0.10608835518360138, + 0.03363058343529701, + -0.036029115319252014, + -0.07054778933525085, + -0.027592726051807404, + -0.04054246097803116, + 0.018527820706367493, + -0.0056319586001336575, + -0.09324796497821808, + -0.006910949945449829, + 0.02273549698293209, + -0.03458410128951073, + 0.0704135149717331, + 0.12127451598644257, + 0.04999300092458725, + -0.12125937640666962 + ] + } +} diff --git a/Indic-TTS/TTS/tests/data/dummy_speakers.pth b/Indic-TTS/TTS/tests/data/dummy_speakers.pth new file mode 100644 index 0000000000000000000000000000000000000000..bcb3e80ef73d1761e2aed2f0df8c0aab4042bb01 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/dummy_speakers.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d615cfb7f8244a21d506b8b69574cdb88f8b9559b4b8d504c3e472692ed25c9 +size 905903 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/f0_cache/pitch_stats.npy b/Indic-TTS/TTS/tests/data/ljspeech/f0_cache/pitch_stats.npy new file mode 100644 index 0000000000000000000000000000000000000000..7999a77f67b2d097ab79038325af5eab4b097e85 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/f0_cache/pitch_stats.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:879cadf29d887fb092d46d7bd37297a9fc61d3a599aa03d71b049fb93db95c7b +size 424 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/metadata.csv b/Indic-TTS/TTS/tests/data/ljspeech/metadata.csv new file mode 100644 index 0000000000000000000000000000000000000000..6c65ca0d80fb2133b57ed16fe2708953ce6595d6 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/metadata.csv @@ -0,0 +1,8 @@ +LJ001-0001|Printing, in the only sense with which we are at present concerned, differs from most if not from all the arts and crafts represented in the Exhibition|Printing, in the only sense with which we are at present concerned, differs from most if not from all the arts and crafts represented in the Exhibition +LJ001-0002|in being comparatively modern.|in being comparatively modern. +LJ001-0003|For although the Chinese took impressions from wood blocks engraved in relief for centuries before the woodcutters of the Netherlands, by a similar process|For although the Chinese took impressions from wood blocks engraved in relief for centuries before the woodcutters of the Netherlands, by a similar process +LJ001-0004|produced the block books, which were the immediate predecessors of the true printed book,|produced the block books, which were the immediate predecessors of the true printed book, +LJ001-0005|the invention of movable metal letters in the middle of the fifteenth century may justly be considered as the invention of the art of printing.|the invention of movable metal letters in the middle of the fifteenth century may justly be considered as the invention of the art of printing. +LJ001-0006|And it is worth mention in passing that, as an example of fine typography,|And it is worth mention in passing that, as an example of fine typography, +LJ001-0007|the earliest book printed with movable types, the Gutenberg, or "forty-two line Bible" of about 1455,|the earliest book printed with movable types, the Gutenberg, or "forty-two line Bible" of about fourteen fifty-five, +LJ001-0008|has never been surpassed.|has never been surpassed. diff --git a/Indic-TTS/TTS/tests/data/ljspeech/metadata_attn_mask.txt b/Indic-TTS/TTS/tests/data/ljspeech/metadata_attn_mask.txt new file mode 100644 index 0000000000000000000000000000000000000000..eef9a5f19e14b1cd67454f830121d292e21a7f51 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/metadata_attn_mask.txt @@ -0,0 +1,13100 @@ +tests/data/ljspeech/wavs/LJ022-0002.wav|tests/data/ljspeech/wavs/LJ022-0002.npy +tests/data/ljspeech/wavs/LJ001-0045.wav|tests/data/ljspeech/wavs/LJ001-0045.npy +tests/data/ljspeech/wavs/LJ039-0156.wav|tests/data/ljspeech/wavs/LJ039-0156.npy +tests/data/ljspeech/wavs/LJ047-0148.wav|tests/data/ljspeech/wavs/LJ047-0148.npy +tests/data/ljspeech/wavs/LJ035-0209.wav|tests/data/ljspeech/wavs/LJ035-0209.npy +tests/data/ljspeech/wavs/LJ019-0225.wav|tests/data/ljspeech/wavs/LJ019-0225.npy +tests/data/ljspeech/wavs/LJ049-0154.wav|tests/data/ljspeech/wavs/LJ049-0154.npy +tests/data/ljspeech/wavs/LJ013-0082.wav|tests/data/ljspeech/wavs/LJ013-0082.npy +tests/data/ljspeech/wavs/LJ018-0092.wav|tests/data/ljspeech/wavs/LJ018-0092.npy +tests/data/ljspeech/wavs/LJ045-0058.wav|tests/data/ljspeech/wavs/LJ045-0058.npy +tests/data/ljspeech/wavs/LJ028-0060.wav|tests/data/ljspeech/wavs/LJ028-0060.npy +tests/data/ljspeech/wavs/LJ018-0218.wav|tests/data/ljspeech/wavs/LJ018-0218.npy +tests/data/ljspeech/wavs/LJ029-0107.wav|tests/data/ljspeech/wavs/LJ029-0107.npy +tests/data/ljspeech/wavs/LJ009-0160.wav|tests/data/ljspeech/wavs/LJ009-0160.npy +tests/data/ljspeech/wavs/LJ002-0020.wav|tests/data/ljspeech/wavs/LJ002-0020.npy +tests/data/ljspeech/wavs/LJ032-0155.wav|tests/data/ljspeech/wavs/LJ032-0155.npy +tests/data/ljspeech/wavs/LJ033-0135.wav|tests/data/ljspeech/wavs/LJ033-0135.npy +tests/data/ljspeech/wavs/LJ031-0024.wav|tests/data/ljspeech/wavs/LJ031-0024.npy +tests/data/ljspeech/wavs/LJ032-0100.wav|tests/data/ljspeech/wavs/LJ032-0100.npy +tests/data/ljspeech/wavs/LJ037-0219.wav|tests/data/ljspeech/wavs/LJ037-0219.npy +tests/data/ljspeech/wavs/LJ009-0126.wav|tests/data/ljspeech/wavs/LJ009-0126.npy +tests/data/ljspeech/wavs/LJ009-0074.wav|tests/data/ljspeech/wavs/LJ009-0074.npy +tests/data/ljspeech/wavs/LJ028-0208.wav|tests/data/ljspeech/wavs/LJ028-0208.npy +tests/data/ljspeech/wavs/LJ038-0003.wav|tests/data/ljspeech/wavs/LJ038-0003.npy +tests/data/ljspeech/wavs/LJ009-0294.wav|tests/data/ljspeech/wavs/LJ009-0294.npy +tests/data/ljspeech/wavs/LJ012-0199.wav|tests/data/ljspeech/wavs/LJ012-0199.npy +tests/data/ljspeech/wavs/LJ011-0028.wav|tests/data/ljspeech/wavs/LJ011-0028.npy +tests/data/ljspeech/wavs/LJ006-0281.wav|tests/data/ljspeech/wavs/LJ006-0281.npy +tests/data/ljspeech/wavs/LJ010-0019.wav|tests/data/ljspeech/wavs/LJ010-0019.npy +tests/data/ljspeech/wavs/LJ040-0062.wav|tests/data/ljspeech/wavs/LJ040-0062.npy +tests/data/ljspeech/wavs/LJ037-0003.wav|tests/data/ljspeech/wavs/LJ037-0003.npy +tests/data/ljspeech/wavs/LJ043-0159.wav|tests/data/ljspeech/wavs/LJ043-0159.npy +tests/data/ljspeech/wavs/LJ039-0036.wav|tests/data/ljspeech/wavs/LJ039-0036.npy +tests/data/ljspeech/wavs/LJ028-0255.wav|tests/data/ljspeech/wavs/LJ028-0255.npy +tests/data/ljspeech/wavs/LJ032-0058.wav|tests/data/ljspeech/wavs/LJ032-0058.npy +tests/data/ljspeech/wavs/LJ038-0304.wav|tests/data/ljspeech/wavs/LJ038-0304.npy +tests/data/ljspeech/wavs/LJ032-0239.wav|tests/data/ljspeech/wavs/LJ032-0239.npy +tests/data/ljspeech/wavs/LJ032-0250.wav|tests/data/ljspeech/wavs/LJ032-0250.npy +tests/data/ljspeech/wavs/LJ047-0056.wav|tests/data/ljspeech/wavs/LJ047-0056.npy +tests/data/ljspeech/wavs/LJ038-0079.wav|tests/data/ljspeech/wavs/LJ038-0079.npy +tests/data/ljspeech/wavs/LJ050-0101.wav|tests/data/ljspeech/wavs/LJ050-0101.npy +tests/data/ljspeech/wavs/LJ008-0033.wav|tests/data/ljspeech/wavs/LJ008-0033.npy +tests/data/ljspeech/wavs/LJ037-0157.wav|tests/data/ljspeech/wavs/LJ037-0157.npy +tests/data/ljspeech/wavs/LJ038-0273.wav|tests/data/ljspeech/wavs/LJ038-0273.npy +tests/data/ljspeech/wavs/LJ043-0004.wav|tests/data/ljspeech/wavs/LJ043-0004.npy +tests/data/ljspeech/wavs/LJ002-0035.wav|tests/data/ljspeech/wavs/LJ002-0035.npy +tests/data/ljspeech/wavs/LJ007-0217.wav|tests/data/ljspeech/wavs/LJ007-0217.npy +tests/data/ljspeech/wavs/LJ039-0151.wav|tests/data/ljspeech/wavs/LJ039-0151.npy +tests/data/ljspeech/wavs/LJ039-0027.wav|tests/data/ljspeech/wavs/LJ039-0027.npy +tests/data/ljspeech/wavs/LJ016-0398.wav|tests/data/ljspeech/wavs/LJ016-0398.npy +tests/data/ljspeech/wavs/LJ028-0389.wav|tests/data/ljspeech/wavs/LJ028-0389.npy +tests/data/ljspeech/wavs/LJ034-0003.wav|tests/data/ljspeech/wavs/LJ034-0003.npy +tests/data/ljspeech/wavs/LJ044-0144.wav|tests/data/ljspeech/wavs/LJ044-0144.npy +tests/data/ljspeech/wavs/LJ036-0097.wav|tests/data/ljspeech/wavs/LJ036-0097.npy +tests/data/ljspeech/wavs/LJ020-0064.wav|tests/data/ljspeech/wavs/LJ020-0064.npy +tests/data/ljspeech/wavs/LJ045-0177.wav|tests/data/ljspeech/wavs/LJ045-0177.npy +tests/data/ljspeech/wavs/LJ017-0277.wav|tests/data/ljspeech/wavs/LJ017-0277.npy +tests/data/ljspeech/wavs/LJ021-0165.wav|tests/data/ljspeech/wavs/LJ021-0165.npy +tests/data/ljspeech/wavs/LJ030-0137.wav|tests/data/ljspeech/wavs/LJ030-0137.npy +tests/data/ljspeech/wavs/LJ045-0149.wav|tests/data/ljspeech/wavs/LJ045-0149.npy +tests/data/ljspeech/wavs/LJ049-0075.wav|tests/data/ljspeech/wavs/LJ049-0075.npy +tests/data/ljspeech/wavs/LJ040-0096.wav|tests/data/ljspeech/wavs/LJ040-0096.npy +tests/data/ljspeech/wavs/LJ036-0105.wav|tests/data/ljspeech/wavs/LJ036-0105.npy +tests/data/ljspeech/wavs/LJ037-0076.wav|tests/data/ljspeech/wavs/LJ037-0076.npy +tests/data/ljspeech/wavs/LJ047-0092.wav|tests/data/ljspeech/wavs/LJ047-0092.npy +tests/data/ljspeech/wavs/LJ021-0002.wav|tests/data/ljspeech/wavs/LJ021-0002.npy +tests/data/ljspeech/wavs/LJ040-0058.wav|tests/data/ljspeech/wavs/LJ040-0058.npy +tests/data/ljspeech/wavs/LJ033-0200.wav|tests/data/ljspeech/wavs/LJ033-0200.npy +tests/data/ljspeech/wavs/LJ041-0147.wav|tests/data/ljspeech/wavs/LJ041-0147.npy +tests/data/ljspeech/wavs/LJ033-0164.wav|tests/data/ljspeech/wavs/LJ033-0164.npy +tests/data/ljspeech/wavs/LJ034-0204.wav|tests/data/ljspeech/wavs/LJ034-0204.npy +tests/data/ljspeech/wavs/LJ045-0047.wav|tests/data/ljspeech/wavs/LJ045-0047.npy +tests/data/ljspeech/wavs/LJ024-0003.wav|tests/data/ljspeech/wavs/LJ024-0003.npy +tests/data/ljspeech/wavs/LJ013-0148.wav|tests/data/ljspeech/wavs/LJ013-0148.npy +tests/data/ljspeech/wavs/LJ012-0033.wav|tests/data/ljspeech/wavs/LJ012-0033.npy +tests/data/ljspeech/wavs/LJ044-0004.wav|tests/data/ljspeech/wavs/LJ044-0004.npy +tests/data/ljspeech/wavs/LJ005-0121.wav|tests/data/ljspeech/wavs/LJ005-0121.npy +tests/data/ljspeech/wavs/LJ014-0259.wav|tests/data/ljspeech/wavs/LJ014-0259.npy +tests/data/ljspeech/wavs/LJ041-0050.wav|tests/data/ljspeech/wavs/LJ041-0050.npy +tests/data/ljspeech/wavs/LJ041-0112.wav|tests/data/ljspeech/wavs/LJ041-0112.npy +tests/data/ljspeech/wavs/LJ034-0144.wav|tests/data/ljspeech/wavs/LJ034-0144.npy +tests/data/ljspeech/wavs/LJ010-0107.wav|tests/data/ljspeech/wavs/LJ010-0107.npy +tests/data/ljspeech/wavs/LJ019-0143.wav|tests/data/ljspeech/wavs/LJ019-0143.npy +tests/data/ljspeech/wavs/LJ034-0165.wav|tests/data/ljspeech/wavs/LJ034-0165.npy +tests/data/ljspeech/wavs/LJ016-0426.wav|tests/data/ljspeech/wavs/LJ016-0426.npy +tests/data/ljspeech/wavs/LJ010-0182.wav|tests/data/ljspeech/wavs/LJ010-0182.npy +tests/data/ljspeech/wavs/LJ015-0265.wav|tests/data/ljspeech/wavs/LJ015-0265.npy +tests/data/ljspeech/wavs/LJ029-0091.wav|tests/data/ljspeech/wavs/LJ029-0091.npy +tests/data/ljspeech/wavs/LJ017-0278.wav|tests/data/ljspeech/wavs/LJ017-0278.npy +tests/data/ljspeech/wavs/LJ009-0256.wav|tests/data/ljspeech/wavs/LJ009-0256.npy +tests/data/ljspeech/wavs/LJ014-0186.wav|tests/data/ljspeech/wavs/LJ014-0186.npy +tests/data/ljspeech/wavs/LJ023-0112.wav|tests/data/ljspeech/wavs/LJ023-0112.npy +tests/data/ljspeech/wavs/LJ016-0144.wav|tests/data/ljspeech/wavs/LJ016-0144.npy +tests/data/ljspeech/wavs/LJ016-0378.wav|tests/data/ljspeech/wavs/LJ016-0378.npy +tests/data/ljspeech/wavs/LJ007-0008.wav|tests/data/ljspeech/wavs/LJ007-0008.npy +tests/data/ljspeech/wavs/LJ011-0152.wav|tests/data/ljspeech/wavs/LJ011-0152.npy +tests/data/ljspeech/wavs/LJ032-0158.wav|tests/data/ljspeech/wavs/LJ032-0158.npy +tests/data/ljspeech/wavs/LJ039-0205.wav|tests/data/ljspeech/wavs/LJ039-0205.npy +tests/data/ljspeech/wavs/LJ029-0048.wav|tests/data/ljspeech/wavs/LJ029-0048.npy +tests/data/ljspeech/wavs/LJ009-0170.wav|tests/data/ljspeech/wavs/LJ009-0170.npy +tests/data/ljspeech/wavs/LJ033-0112.wav|tests/data/ljspeech/wavs/LJ033-0112.npy +tests/data/ljspeech/wavs/LJ010-0255.wav|tests/data/ljspeech/wavs/LJ010-0255.npy +tests/data/ljspeech/wavs/LJ036-0116.wav|tests/data/ljspeech/wavs/LJ036-0116.npy +tests/data/ljspeech/wavs/LJ048-0058.wav|tests/data/ljspeech/wavs/LJ048-0058.npy +tests/data/ljspeech/wavs/LJ037-0227.wav|tests/data/ljspeech/wavs/LJ037-0227.npy +tests/data/ljspeech/wavs/LJ004-0127.wav|tests/data/ljspeech/wavs/LJ004-0127.npy +tests/data/ljspeech/wavs/LJ041-0201.wav|tests/data/ljspeech/wavs/LJ041-0201.npy +tests/data/ljspeech/wavs/LJ048-0272.wav|tests/data/ljspeech/wavs/LJ048-0272.npy +tests/data/ljspeech/wavs/LJ050-0023.wav|tests/data/ljspeech/wavs/LJ050-0023.npy +tests/data/ljspeech/wavs/LJ031-0026.wav|tests/data/ljspeech/wavs/LJ031-0026.npy +tests/data/ljspeech/wavs/LJ033-0012.wav|tests/data/ljspeech/wavs/LJ033-0012.npy +tests/data/ljspeech/wavs/LJ038-0135.wav|tests/data/ljspeech/wavs/LJ038-0135.npy +tests/data/ljspeech/wavs/LJ024-0068.wav|tests/data/ljspeech/wavs/LJ024-0068.npy +tests/data/ljspeech/wavs/LJ047-0105.wav|tests/data/ljspeech/wavs/LJ047-0105.npy +tests/data/ljspeech/wavs/LJ030-0023.wav|tests/data/ljspeech/wavs/LJ030-0023.npy +tests/data/ljspeech/wavs/LJ021-0039.wav|tests/data/ljspeech/wavs/LJ021-0039.npy +tests/data/ljspeech/wavs/LJ022-0019.wav|tests/data/ljspeech/wavs/LJ022-0019.npy +tests/data/ljspeech/wavs/LJ018-0363.wav|tests/data/ljspeech/wavs/LJ018-0363.npy +tests/data/ljspeech/wavs/LJ011-0047.wav|tests/data/ljspeech/wavs/LJ011-0047.npy +tests/data/ljspeech/wavs/LJ048-0091.wav|tests/data/ljspeech/wavs/LJ048-0091.npy +tests/data/ljspeech/wavs/LJ010-0072.wav|tests/data/ljspeech/wavs/LJ010-0072.npy +tests/data/ljspeech/wavs/LJ040-0017.wav|tests/data/ljspeech/wavs/LJ040-0017.npy +tests/data/ljspeech/wavs/LJ037-0182.wav|tests/data/ljspeech/wavs/LJ037-0182.npy +tests/data/ljspeech/wavs/LJ007-0228.wav|tests/data/ljspeech/wavs/LJ007-0228.npy +tests/data/ljspeech/wavs/LJ035-0059.wav|tests/data/ljspeech/wavs/LJ035-0059.npy +tests/data/ljspeech/wavs/LJ009-0027.wav|tests/data/ljspeech/wavs/LJ009-0027.npy +tests/data/ljspeech/wavs/LJ016-0233.wav|tests/data/ljspeech/wavs/LJ016-0233.npy +tests/data/ljspeech/wavs/LJ036-0104.wav|tests/data/ljspeech/wavs/LJ036-0104.npy +tests/data/ljspeech/wavs/LJ037-0142.wav|tests/data/ljspeech/wavs/LJ037-0142.npy +tests/data/ljspeech/wavs/LJ012-0250.wav|tests/data/ljspeech/wavs/LJ012-0250.npy +tests/data/ljspeech/wavs/LJ047-0131.wav|tests/data/ljspeech/wavs/LJ047-0131.npy +tests/data/ljspeech/wavs/LJ043-0110.wav|tests/data/ljspeech/wavs/LJ043-0110.npy +tests/data/ljspeech/wavs/LJ036-0120.wav|tests/data/ljspeech/wavs/LJ036-0120.npy +tests/data/ljspeech/wavs/LJ040-0082.wav|tests/data/ljspeech/wavs/LJ040-0082.npy +tests/data/ljspeech/wavs/LJ011-0097.wav|tests/data/ljspeech/wavs/LJ011-0097.npy +tests/data/ljspeech/wavs/LJ023-0031.wav|tests/data/ljspeech/wavs/LJ023-0031.npy +tests/data/ljspeech/wavs/LJ027-0144.wav|tests/data/ljspeech/wavs/LJ027-0144.npy +tests/data/ljspeech/wavs/LJ048-0015.wav|tests/data/ljspeech/wavs/LJ048-0015.npy +tests/data/ljspeech/wavs/LJ030-0097.wav|tests/data/ljspeech/wavs/LJ030-0097.npy +tests/data/ljspeech/wavs/LJ028-0322.wav|tests/data/ljspeech/wavs/LJ028-0322.npy +tests/data/ljspeech/wavs/LJ029-0010.wav|tests/data/ljspeech/wavs/LJ029-0010.npy +tests/data/ljspeech/wavs/LJ029-0170.wav|tests/data/ljspeech/wavs/LJ029-0170.npy +tests/data/ljspeech/wavs/LJ039-0060.wav|tests/data/ljspeech/wavs/LJ039-0060.npy +tests/data/ljspeech/wavs/LJ030-0086.wav|tests/data/ljspeech/wavs/LJ030-0086.npy +tests/data/ljspeech/wavs/LJ050-0037.wav|tests/data/ljspeech/wavs/LJ050-0037.npy +tests/data/ljspeech/wavs/LJ031-0020.wav|tests/data/ljspeech/wavs/LJ031-0020.npy +tests/data/ljspeech/wavs/LJ028-0109.wav|tests/data/ljspeech/wavs/LJ028-0109.npy +tests/data/ljspeech/wavs/LJ039-0231.wav|tests/data/ljspeech/wavs/LJ039-0231.npy +tests/data/ljspeech/wavs/LJ009-0076.wav|tests/data/ljspeech/wavs/LJ009-0076.npy +tests/data/ljspeech/wavs/LJ036-0193.wav|tests/data/ljspeech/wavs/LJ036-0193.npy +tests/data/ljspeech/wavs/LJ050-0195.wav|tests/data/ljspeech/wavs/LJ050-0195.npy +tests/data/ljspeech/wavs/LJ011-0030.wav|tests/data/ljspeech/wavs/LJ011-0030.npy +tests/data/ljspeech/wavs/LJ038-0163.wav|tests/data/ljspeech/wavs/LJ038-0163.npy +tests/data/ljspeech/wavs/LJ021-0172.wav|tests/data/ljspeech/wavs/LJ021-0172.npy +tests/data/ljspeech/wavs/LJ045-0025.wav|tests/data/ljspeech/wavs/LJ045-0025.npy +tests/data/ljspeech/wavs/LJ003-0339.wav|tests/data/ljspeech/wavs/LJ003-0339.npy +tests/data/ljspeech/wavs/LJ005-0172.wav|tests/data/ljspeech/wavs/LJ005-0172.npy +tests/data/ljspeech/wavs/LJ030-0152.wav|tests/data/ljspeech/wavs/LJ030-0152.npy +tests/data/ljspeech/wavs/LJ030-0111.wav|tests/data/ljspeech/wavs/LJ030-0111.npy +tests/data/ljspeech/wavs/LJ048-0147.wav|tests/data/ljspeech/wavs/LJ048-0147.npy +tests/data/ljspeech/wavs/LJ028-0048.wav|tests/data/ljspeech/wavs/LJ028-0048.npy +tests/data/ljspeech/wavs/LJ015-0052.wav|tests/data/ljspeech/wavs/LJ015-0052.npy +tests/data/ljspeech/wavs/LJ023-0002.wav|tests/data/ljspeech/wavs/LJ023-0002.npy +tests/data/ljspeech/wavs/LJ047-0141.wav|tests/data/ljspeech/wavs/LJ047-0141.npy +tests/data/ljspeech/wavs/LJ018-0223.wav|tests/data/ljspeech/wavs/LJ018-0223.npy +tests/data/ljspeech/wavs/LJ038-0255.wav|tests/data/ljspeech/wavs/LJ038-0255.npy +tests/data/ljspeech/wavs/LJ026-0002.wav|tests/data/ljspeech/wavs/LJ026-0002.npy +tests/data/ljspeech/wavs/LJ038-0098.wav|tests/data/ljspeech/wavs/LJ038-0098.npy +tests/data/ljspeech/wavs/LJ050-0146.wav|tests/data/ljspeech/wavs/LJ050-0146.npy +tests/data/ljspeech/wavs/LJ032-0104.wav|tests/data/ljspeech/wavs/LJ032-0104.npy +tests/data/ljspeech/wavs/LJ017-0273.wav|tests/data/ljspeech/wavs/LJ017-0273.npy +tests/data/ljspeech/wavs/LJ030-0109.wav|tests/data/ljspeech/wavs/LJ030-0109.npy +tests/data/ljspeech/wavs/LJ046-0179.wav|tests/data/ljspeech/wavs/LJ046-0179.npy +tests/data/ljspeech/wavs/LJ043-0133.wav|tests/data/ljspeech/wavs/LJ043-0133.npy +tests/data/ljspeech/wavs/LJ007-0009.wav|tests/data/ljspeech/wavs/LJ007-0009.npy +tests/data/ljspeech/wavs/LJ047-0101.wav|tests/data/ljspeech/wavs/LJ047-0101.npy +tests/data/ljspeech/wavs/LJ003-0050.wav|tests/data/ljspeech/wavs/LJ003-0050.npy +tests/data/ljspeech/wavs/LJ045-0147.wav|tests/data/ljspeech/wavs/LJ045-0147.npy +tests/data/ljspeech/wavs/LJ039-0098.wav|tests/data/ljspeech/wavs/LJ039-0098.npy +tests/data/ljspeech/wavs/LJ028-0062.wav|tests/data/ljspeech/wavs/LJ028-0062.npy +tests/data/ljspeech/wavs/LJ037-0229.wav|tests/data/ljspeech/wavs/LJ037-0229.npy +tests/data/ljspeech/wavs/LJ038-0058.wav|tests/data/ljspeech/wavs/LJ038-0058.npy +tests/data/ljspeech/wavs/LJ036-0156.wav|tests/data/ljspeech/wavs/LJ036-0156.npy +tests/data/ljspeech/wavs/LJ009-0057.wav|tests/data/ljspeech/wavs/LJ009-0057.npy +tests/data/ljspeech/wavs/LJ045-0171.wav|tests/data/ljspeech/wavs/LJ045-0171.npy +tests/data/ljspeech/wavs/LJ008-0148.wav|tests/data/ljspeech/wavs/LJ008-0148.npy +tests/data/ljspeech/wavs/LJ045-0024.wav|tests/data/ljspeech/wavs/LJ045-0024.npy +tests/data/ljspeech/wavs/LJ017-0105.wav|tests/data/ljspeech/wavs/LJ017-0105.npy +tests/data/ljspeech/wavs/LJ039-0025.wav|tests/data/ljspeech/wavs/LJ039-0025.npy +tests/data/ljspeech/wavs/LJ049-0004.wav|tests/data/ljspeech/wavs/LJ049-0004.npy +tests/data/ljspeech/wavs/LJ016-0091.wav|tests/data/ljspeech/wavs/LJ016-0091.npy +tests/data/ljspeech/wavs/LJ001-0008.wav|tests/data/ljspeech/wavs/LJ001-0008.npy +tests/data/ljspeech/wavs/LJ032-0240.wav|tests/data/ljspeech/wavs/LJ032-0240.npy +tests/data/ljspeech/wavs/LJ048-0033.wav|tests/data/ljspeech/wavs/LJ048-0033.npy +tests/data/ljspeech/wavs/LJ032-0247.wav|tests/data/ljspeech/wavs/LJ032-0247.npy +tests/data/ljspeech/wavs/LJ025-0050.wav|tests/data/ljspeech/wavs/LJ025-0050.npy +tests/data/ljspeech/wavs/LJ029-0201.wav|tests/data/ljspeech/wavs/LJ029-0201.npy +tests/data/ljspeech/wavs/LJ047-0161.wav|tests/data/ljspeech/wavs/LJ047-0161.npy +tests/data/ljspeech/wavs/LJ031-0192.wav|tests/data/ljspeech/wavs/LJ031-0192.npy +tests/data/ljspeech/wavs/LJ018-0106.wav|tests/data/ljspeech/wavs/LJ018-0106.npy +tests/data/ljspeech/wavs/LJ041-0186.wav|tests/data/ljspeech/wavs/LJ041-0186.npy +tests/data/ljspeech/wavs/LJ021-0077.wav|tests/data/ljspeech/wavs/LJ021-0077.npy +tests/data/ljspeech/wavs/LJ039-0054.wav|tests/data/ljspeech/wavs/LJ039-0054.npy +tests/data/ljspeech/wavs/LJ045-0056.wav|tests/data/ljspeech/wavs/LJ045-0056.npy +tests/data/ljspeech/wavs/LJ015-0138.wav|tests/data/ljspeech/wavs/LJ015-0138.npy +tests/data/ljspeech/wavs/LJ039-0129.wav|tests/data/ljspeech/wavs/LJ039-0129.npy +tests/data/ljspeech/wavs/LJ025-0110.wav|tests/data/ljspeech/wavs/LJ025-0110.npy +tests/data/ljspeech/wavs/LJ048-0154.wav|tests/data/ljspeech/wavs/LJ048-0154.npy +tests/data/ljspeech/wavs/LJ021-0186.wav|tests/data/ljspeech/wavs/LJ021-0186.npy +tests/data/ljspeech/wavs/LJ039-0005.wav|tests/data/ljspeech/wavs/LJ039-0005.npy +tests/data/ljspeech/wavs/LJ011-0208.wav|tests/data/ljspeech/wavs/LJ011-0208.npy +tests/data/ljspeech/wavs/LJ028-0413.wav|tests/data/ljspeech/wavs/LJ028-0413.npy +tests/data/ljspeech/wavs/LJ029-0070.wav|tests/data/ljspeech/wavs/LJ029-0070.npy +tests/data/ljspeech/wavs/LJ042-0014.wav|tests/data/ljspeech/wavs/LJ042-0014.npy +tests/data/ljspeech/wavs/LJ045-0195.wav|tests/data/ljspeech/wavs/LJ045-0195.npy +tests/data/ljspeech/wavs/LJ028-0462.wav|tests/data/ljspeech/wavs/LJ028-0462.npy +tests/data/ljspeech/wavs/LJ033-0075.wav|tests/data/ljspeech/wavs/LJ033-0075.npy +tests/data/ljspeech/wavs/LJ046-0050.wav|tests/data/ljspeech/wavs/LJ046-0050.npy +tests/data/ljspeech/wavs/LJ046-0124.wav|tests/data/ljspeech/wavs/LJ046-0124.npy +tests/data/ljspeech/wavs/LJ016-0051.wav|tests/data/ljspeech/wavs/LJ016-0051.npy +tests/data/ljspeech/wavs/LJ014-0231.wav|tests/data/ljspeech/wavs/LJ014-0231.npy +tests/data/ljspeech/wavs/LJ022-0048.wav|tests/data/ljspeech/wavs/LJ022-0048.npy +tests/data/ljspeech/wavs/LJ033-0003.wav|tests/data/ljspeech/wavs/LJ033-0003.npy +tests/data/ljspeech/wavs/LJ018-0069.wav|tests/data/ljspeech/wavs/LJ018-0069.npy +tests/data/ljspeech/wavs/LJ046-0003.wav|tests/data/ljspeech/wavs/LJ046-0003.npy +tests/data/ljspeech/wavs/LJ008-0022.wav|tests/data/ljspeech/wavs/LJ008-0022.npy +tests/data/ljspeech/wavs/LJ029-0182.wav|tests/data/ljspeech/wavs/LJ029-0182.npy +tests/data/ljspeech/wavs/LJ032-0018.wav|tests/data/ljspeech/wavs/LJ032-0018.npy +tests/data/ljspeech/wavs/LJ024-0143.wav|tests/data/ljspeech/wavs/LJ024-0143.npy +tests/data/ljspeech/wavs/LJ044-0042.wav|tests/data/ljspeech/wavs/LJ044-0042.npy +tests/data/ljspeech/wavs/LJ033-0160.wav|tests/data/ljspeech/wavs/LJ033-0160.npy +tests/data/ljspeech/wavs/LJ004-0008.wav|tests/data/ljspeech/wavs/LJ004-0008.npy +tests/data/ljspeech/wavs/LJ009-0054.wav|tests/data/ljspeech/wavs/LJ009-0054.npy +tests/data/ljspeech/wavs/LJ024-0019.wav|tests/data/ljspeech/wavs/LJ024-0019.npy +tests/data/ljspeech/wavs/LJ034-0039.wav|tests/data/ljspeech/wavs/LJ034-0039.npy +tests/data/ljspeech/wavs/LJ015-0010.wav|tests/data/ljspeech/wavs/LJ015-0010.npy +tests/data/ljspeech/wavs/LJ039-0095.wav|tests/data/ljspeech/wavs/LJ039-0095.npy +tests/data/ljspeech/wavs/LJ047-0205.wav|tests/data/ljspeech/wavs/LJ047-0205.npy +tests/data/ljspeech/wavs/LJ030-0073.wav|tests/data/ljspeech/wavs/LJ030-0073.npy +tests/data/ljspeech/wavs/LJ025-0012.wav|tests/data/ljspeech/wavs/LJ025-0012.npy +tests/data/ljspeech/wavs/LJ007-0149.wav|tests/data/ljspeech/wavs/LJ007-0149.npy +tests/data/ljspeech/wavs/LJ047-0017.wav|tests/data/ljspeech/wavs/LJ047-0017.npy +tests/data/ljspeech/wavs/LJ009-0073.wav|tests/data/ljspeech/wavs/LJ009-0073.npy +tests/data/ljspeech/wavs/LJ017-0212.wav|tests/data/ljspeech/wavs/LJ017-0212.npy +tests/data/ljspeech/wavs/LJ018-0312.wav|tests/data/ljspeech/wavs/LJ018-0312.npy +tests/data/ljspeech/wavs/LJ044-0161.wav|tests/data/ljspeech/wavs/LJ044-0161.npy +tests/data/ljspeech/wavs/LJ016-0197.wav|tests/data/ljspeech/wavs/LJ016-0197.npy +tests/data/ljspeech/wavs/LJ023-0077.wav|tests/data/ljspeech/wavs/LJ023-0077.npy +tests/data/ljspeech/wavs/LJ030-0067.wav|tests/data/ljspeech/wavs/LJ030-0067.npy +tests/data/ljspeech/wavs/LJ034-0202.wav|tests/data/ljspeech/wavs/LJ034-0202.npy +tests/data/ljspeech/wavs/LJ030-0050.wav|tests/data/ljspeech/wavs/LJ030-0050.npy +tests/data/ljspeech/wavs/LJ049-0016.wav|tests/data/ljspeech/wavs/LJ049-0016.npy +tests/data/ljspeech/wavs/LJ035-0029.wav|tests/data/ljspeech/wavs/LJ035-0029.npy +tests/data/ljspeech/wavs/LJ048-0060.wav|tests/data/ljspeech/wavs/LJ048-0060.npy +tests/data/ljspeech/wavs/LJ037-0113.wav|tests/data/ljspeech/wavs/LJ037-0113.npy +tests/data/ljspeech/wavs/LJ016-0022.wav|tests/data/ljspeech/wavs/LJ016-0022.npy +tests/data/ljspeech/wavs/LJ032-0122.wav|tests/data/ljspeech/wavs/LJ032-0122.npy +tests/data/ljspeech/wavs/LJ032-0056.wav|tests/data/ljspeech/wavs/LJ032-0056.npy +tests/data/ljspeech/wavs/LJ025-0038.wav|tests/data/ljspeech/wavs/LJ025-0038.npy +tests/data/ljspeech/wavs/LJ046-0153.wav|tests/data/ljspeech/wavs/LJ046-0153.npy +tests/data/ljspeech/wavs/LJ035-0073.wav|tests/data/ljspeech/wavs/LJ035-0073.npy +tests/data/ljspeech/wavs/LJ021-0153.wav|tests/data/ljspeech/wavs/LJ021-0153.npy +tests/data/ljspeech/wavs/LJ050-0137.wav|tests/data/ljspeech/wavs/LJ050-0137.npy +tests/data/ljspeech/wavs/LJ042-0189.wav|tests/data/ljspeech/wavs/LJ042-0189.npy +tests/data/ljspeech/wavs/LJ022-0116.wav|tests/data/ljspeech/wavs/LJ022-0116.npy +tests/data/ljspeech/wavs/LJ018-0196.wav|tests/data/ljspeech/wavs/LJ018-0196.npy +tests/data/ljspeech/wavs/LJ037-0006.wav|tests/data/ljspeech/wavs/LJ037-0006.npy +tests/data/ljspeech/wavs/LJ030-0103.wav|tests/data/ljspeech/wavs/LJ030-0103.npy +tests/data/ljspeech/wavs/LJ047-0022.wav|tests/data/ljspeech/wavs/LJ047-0022.npy +tests/data/ljspeech/wavs/LJ022-0169.wav|tests/data/ljspeech/wavs/LJ022-0169.npy +tests/data/ljspeech/wavs/LJ013-0031.wav|tests/data/ljspeech/wavs/LJ013-0031.npy +tests/data/ljspeech/wavs/LJ021-0199.wav|tests/data/ljspeech/wavs/LJ021-0199.npy +tests/data/ljspeech/wavs/LJ009-0243.wav|tests/data/ljspeech/wavs/LJ009-0243.npy +tests/data/ljspeech/wavs/LJ033-0068.wav|tests/data/ljspeech/wavs/LJ033-0068.npy +tests/data/ljspeech/wavs/LJ011-0107.wav|tests/data/ljspeech/wavs/LJ011-0107.npy +tests/data/ljspeech/wavs/LJ008-0110.wav|tests/data/ljspeech/wavs/LJ008-0110.npy +tests/data/ljspeech/wavs/LJ043-0041.wav|tests/data/ljspeech/wavs/LJ043-0041.npy +tests/data/ljspeech/wavs/LJ020-0008.wav|tests/data/ljspeech/wavs/LJ020-0008.npy +tests/data/ljspeech/wavs/LJ030-0003.wav|tests/data/ljspeech/wavs/LJ030-0003.npy +tests/data/ljspeech/wavs/LJ043-0007.wav|tests/data/ljspeech/wavs/LJ043-0007.npy +tests/data/ljspeech/wavs/LJ009-0260.wav|tests/data/ljspeech/wavs/LJ009-0260.npy +tests/data/ljspeech/wavs/LJ030-0162.wav|tests/data/ljspeech/wavs/LJ030-0162.npy +tests/data/ljspeech/wavs/LJ027-0051.wav|tests/data/ljspeech/wavs/LJ027-0051.npy +tests/data/ljspeech/wavs/LJ024-0089.wav|tests/data/ljspeech/wavs/LJ024-0089.npy +tests/data/ljspeech/wavs/LJ024-0120.wav|tests/data/ljspeech/wavs/LJ024-0120.npy +tests/data/ljspeech/wavs/LJ008-0294.wav|tests/data/ljspeech/wavs/LJ008-0294.npy +tests/data/ljspeech/wavs/LJ038-0174.wav|tests/data/ljspeech/wavs/LJ038-0174.npy +tests/data/ljspeech/wavs/LJ008-0197.wav|tests/data/ljspeech/wavs/LJ008-0197.npy +tests/data/ljspeech/wavs/LJ045-0109.wav|tests/data/ljspeech/wavs/LJ045-0109.npy +tests/data/ljspeech/wavs/LJ018-0222.wav|tests/data/ljspeech/wavs/LJ018-0222.npy +tests/data/ljspeech/wavs/LJ043-0097.wav|tests/data/ljspeech/wavs/LJ043-0097.npy +tests/data/ljspeech/wavs/LJ002-0125.wav|tests/data/ljspeech/wavs/LJ002-0125.npy +tests/data/ljspeech/wavs/LJ049-0055.wav|tests/data/ljspeech/wavs/LJ049-0055.npy +tests/data/ljspeech/wavs/LJ012-0154.wav|tests/data/ljspeech/wavs/LJ012-0154.npy +tests/data/ljspeech/wavs/LJ042-0004.wav|tests/data/ljspeech/wavs/LJ042-0004.npy +tests/data/ljspeech/wavs/LJ043-0142.wav|tests/data/ljspeech/wavs/LJ043-0142.npy +tests/data/ljspeech/wavs/LJ020-0069.wav|tests/data/ljspeech/wavs/LJ020-0069.npy +tests/data/ljspeech/wavs/LJ030-0035.wav|tests/data/ljspeech/wavs/LJ030-0035.npy +tests/data/ljspeech/wavs/LJ009-0168.wav|tests/data/ljspeech/wavs/LJ009-0168.npy +tests/data/ljspeech/wavs/LJ020-0067.wav|tests/data/ljspeech/wavs/LJ020-0067.npy +tests/data/ljspeech/wavs/LJ015-0135.wav|tests/data/ljspeech/wavs/LJ015-0135.npy +tests/data/ljspeech/wavs/LJ028-0361.wav|tests/data/ljspeech/wavs/LJ028-0361.npy +tests/data/ljspeech/wavs/LJ001-0002.wav|tests/data/ljspeech/wavs/LJ001-0002.npy +tests/data/ljspeech/wavs/LJ002-0234.wav|tests/data/ljspeech/wavs/LJ002-0234.npy +tests/data/ljspeech/wavs/LJ019-0274.wav|tests/data/ljspeech/wavs/LJ019-0274.npy +tests/data/ljspeech/wavs/LJ049-0080.wav|tests/data/ljspeech/wavs/LJ049-0080.npy +tests/data/ljspeech/wavs/LJ015-0293.wav|tests/data/ljspeech/wavs/LJ015-0293.npy +tests/data/ljspeech/wavs/LJ030-0083.wav|tests/data/ljspeech/wavs/LJ030-0083.npy +tests/data/ljspeech/wavs/LJ049-0068.wav|tests/data/ljspeech/wavs/LJ049-0068.npy +tests/data/ljspeech/wavs/LJ032-0013.wav|tests/data/ljspeech/wavs/LJ032-0013.npy +tests/data/ljspeech/wavs/LJ015-0032.wav|tests/data/ljspeech/wavs/LJ015-0032.npy +tests/data/ljspeech/wavs/LJ035-0164.wav|tests/data/ljspeech/wavs/LJ035-0164.npy +tests/data/ljspeech/wavs/LJ014-0314.wav|tests/data/ljspeech/wavs/LJ014-0314.npy +tests/data/ljspeech/wavs/LJ050-0002.wav|tests/data/ljspeech/wavs/LJ050-0002.npy +tests/data/ljspeech/wavs/LJ033-0105.wav|tests/data/ljspeech/wavs/LJ033-0105.npy +tests/data/ljspeech/wavs/LJ020-0072.wav|tests/data/ljspeech/wavs/LJ020-0072.npy +tests/data/ljspeech/wavs/LJ016-0138.wav|tests/data/ljspeech/wavs/LJ016-0138.npy +tests/data/ljspeech/wavs/LJ023-0063.wav|tests/data/ljspeech/wavs/LJ023-0063.npy +tests/data/ljspeech/wavs/LJ005-0210.wav|tests/data/ljspeech/wavs/LJ005-0210.npy +tests/data/ljspeech/wavs/LJ010-0262.wav|tests/data/ljspeech/wavs/LJ010-0262.npy +tests/data/ljspeech/wavs/LJ039-0032.wav|tests/data/ljspeech/wavs/LJ039-0032.npy +tests/data/ljspeech/wavs/LJ019-0020.wav|tests/data/ljspeech/wavs/LJ019-0020.npy +tests/data/ljspeech/wavs/LJ039-0170.wav|tests/data/ljspeech/wavs/LJ039-0170.npy +tests/data/ljspeech/wavs/LJ016-0183.wav|tests/data/ljspeech/wavs/LJ016-0183.npy +tests/data/ljspeech/wavs/LJ038-0271.wav|tests/data/ljspeech/wavs/LJ038-0271.npy +tests/data/ljspeech/wavs/LJ037-0082.wav|tests/data/ljspeech/wavs/LJ037-0082.npy +tests/data/ljspeech/wavs/LJ047-0066.wav|tests/data/ljspeech/wavs/LJ047-0066.npy +tests/data/ljspeech/wavs/LJ044-0194.wav|tests/data/ljspeech/wavs/LJ044-0194.npy +tests/data/ljspeech/wavs/LJ032-0197.wav|tests/data/ljspeech/wavs/LJ032-0197.npy +tests/data/ljspeech/wavs/LJ028-0333.wav|tests/data/ljspeech/wavs/LJ028-0333.npy +tests/data/ljspeech/wavs/LJ015-0036.wav|tests/data/ljspeech/wavs/LJ015-0036.npy +tests/data/ljspeech/wavs/LJ044-0069.wav|tests/data/ljspeech/wavs/LJ044-0069.npy +tests/data/ljspeech/wavs/LJ001-0104.wav|tests/data/ljspeech/wavs/LJ001-0104.npy +tests/data/ljspeech/wavs/LJ016-0286.wav|tests/data/ljspeech/wavs/LJ016-0286.npy +tests/data/ljspeech/wavs/LJ031-0037.wav|tests/data/ljspeech/wavs/LJ031-0037.npy +tests/data/ljspeech/wavs/LJ014-0035.wav|tests/data/ljspeech/wavs/LJ014-0035.npy +tests/data/ljspeech/wavs/LJ001-0078.wav|tests/data/ljspeech/wavs/LJ001-0078.npy +tests/data/ljspeech/wavs/LJ014-0088.wav|tests/data/ljspeech/wavs/LJ014-0088.npy +tests/data/ljspeech/wavs/LJ002-0208.wav|tests/data/ljspeech/wavs/LJ002-0208.npy +tests/data/ljspeech/wavs/LJ028-0515.wav|tests/data/ljspeech/wavs/LJ028-0515.npy +tests/data/ljspeech/wavs/LJ035-0007.wav|tests/data/ljspeech/wavs/LJ035-0007.npy +tests/data/ljspeech/wavs/LJ048-0107.wav|tests/data/ljspeech/wavs/LJ048-0107.npy +tests/data/ljspeech/wavs/LJ022-0121.wav|tests/data/ljspeech/wavs/LJ022-0121.npy +tests/data/ljspeech/wavs/LJ014-0330.wav|tests/data/ljspeech/wavs/LJ014-0330.npy +tests/data/ljspeech/wavs/LJ013-0177.wav|tests/data/ljspeech/wavs/LJ013-0177.npy +tests/data/ljspeech/wavs/LJ050-0030.wav|tests/data/ljspeech/wavs/LJ050-0030.npy +tests/data/ljspeech/wavs/LJ024-0116.wav|tests/data/ljspeech/wavs/LJ024-0116.npy +tests/data/ljspeech/wavs/LJ031-0100.wav|tests/data/ljspeech/wavs/LJ031-0100.npy +tests/data/ljspeech/wavs/LJ001-0170.wav|tests/data/ljspeech/wavs/LJ001-0170.npy +tests/data/ljspeech/wavs/LJ050-0197.wav|tests/data/ljspeech/wavs/LJ050-0197.npy +tests/data/ljspeech/wavs/LJ050-0135.wav|tests/data/ljspeech/wavs/LJ050-0135.npy +tests/data/ljspeech/wavs/LJ011-0213.wav|tests/data/ljspeech/wavs/LJ011-0213.npy +tests/data/ljspeech/wavs/LJ037-0191.wav|tests/data/ljspeech/wavs/LJ037-0191.npy +tests/data/ljspeech/wavs/LJ047-0133.wav|tests/data/ljspeech/wavs/LJ047-0133.npy +tests/data/ljspeech/wavs/LJ034-0151.wav|tests/data/ljspeech/wavs/LJ034-0151.npy +tests/data/ljspeech/wavs/LJ036-0115.wav|tests/data/ljspeech/wavs/LJ036-0115.npy +tests/data/ljspeech/wavs/LJ036-0113.wav|tests/data/ljspeech/wavs/LJ036-0113.npy +tests/data/ljspeech/wavs/LJ037-0002.wav|tests/data/ljspeech/wavs/LJ037-0002.npy +tests/data/ljspeech/wavs/LJ023-0070.wav|tests/data/ljspeech/wavs/LJ023-0070.npy +tests/data/ljspeech/wavs/LJ032-0002.wav|tests/data/ljspeech/wavs/LJ032-0002.npy +tests/data/ljspeech/wavs/LJ023-0089.wav|tests/data/ljspeech/wavs/LJ023-0089.npy +tests/data/ljspeech/wavs/LJ032-0079.wav|tests/data/ljspeech/wavs/LJ032-0079.npy +tests/data/ljspeech/wavs/LJ039-0229.wav|tests/data/ljspeech/wavs/LJ039-0229.npy +tests/data/ljspeech/wavs/LJ003-0004.wav|tests/data/ljspeech/wavs/LJ003-0004.npy +tests/data/ljspeech/wavs/LJ037-0010.wav|tests/data/ljspeech/wavs/LJ037-0010.npy +tests/data/ljspeech/wavs/LJ048-0134.wav|tests/data/ljspeech/wavs/LJ048-0134.npy +tests/data/ljspeech/wavs/LJ003-0129.wav|tests/data/ljspeech/wavs/LJ003-0129.npy +tests/data/ljspeech/wavs/LJ037-0068.wav|tests/data/ljspeech/wavs/LJ037-0068.npy +tests/data/ljspeech/wavs/LJ017-0133.wav|tests/data/ljspeech/wavs/LJ017-0133.npy +tests/data/ljspeech/wavs/LJ028-0479.wav|tests/data/ljspeech/wavs/LJ028-0479.npy +tests/data/ljspeech/wavs/LJ021-0164.wav|tests/data/ljspeech/wavs/LJ021-0164.npy +tests/data/ljspeech/wavs/LJ031-0171.wav|tests/data/ljspeech/wavs/LJ031-0171.npy +tests/data/ljspeech/wavs/LJ048-0029.wav|tests/data/ljspeech/wavs/LJ048-0029.npy +tests/data/ljspeech/wavs/LJ050-0077.wav|tests/data/ljspeech/wavs/LJ050-0077.npy +tests/data/ljspeech/wavs/LJ047-0087.wav|tests/data/ljspeech/wavs/LJ047-0087.npy +tests/data/ljspeech/wavs/LJ009-0062.wav|tests/data/ljspeech/wavs/LJ009-0062.npy +tests/data/ljspeech/wavs/LJ004-0151.wav|tests/data/ljspeech/wavs/LJ004-0151.npy +tests/data/ljspeech/wavs/LJ030-0188.wav|tests/data/ljspeech/wavs/LJ030-0188.npy +tests/data/ljspeech/wavs/LJ028-0275.wav|tests/data/ljspeech/wavs/LJ028-0275.npy +tests/data/ljspeech/wavs/LJ010-0250.wav|tests/data/ljspeech/wavs/LJ010-0250.npy +tests/data/ljspeech/wavs/LJ012-0141.wav|tests/data/ljspeech/wavs/LJ012-0141.npy +tests/data/ljspeech/wavs/LJ028-0364.wav|tests/data/ljspeech/wavs/LJ028-0364.npy +tests/data/ljspeech/wavs/LJ019-0253.wav|tests/data/ljspeech/wavs/LJ019-0253.npy +tests/data/ljspeech/wavs/LJ037-0257.wav|tests/data/ljspeech/wavs/LJ037-0257.npy +tests/data/ljspeech/wavs/LJ005-0142.wav|tests/data/ljspeech/wavs/LJ005-0142.npy +tests/data/ljspeech/wavs/LJ042-0116.wav|tests/data/ljspeech/wavs/LJ042-0116.npy +tests/data/ljspeech/wavs/LJ003-0289.wav|tests/data/ljspeech/wavs/LJ003-0289.npy +tests/data/ljspeech/wavs/LJ038-0245.wav|tests/data/ljspeech/wavs/LJ038-0245.npy +tests/data/ljspeech/wavs/LJ036-0002.wav|tests/data/ljspeech/wavs/LJ036-0002.npy +tests/data/ljspeech/wavs/LJ033-0002.wav|tests/data/ljspeech/wavs/LJ033-0002.npy +tests/data/ljspeech/wavs/LJ039-0004.wav|tests/data/ljspeech/wavs/LJ039-0004.npy +tests/data/ljspeech/wavs/LJ047-0240.wav|tests/data/ljspeech/wavs/LJ047-0240.npy +tests/data/ljspeech/wavs/LJ044-0067.wav|tests/data/ljspeech/wavs/LJ044-0067.npy +tests/data/ljspeech/wavs/LJ034-0109.wav|tests/data/ljspeech/wavs/LJ034-0109.npy +tests/data/ljspeech/wavs/LJ003-0287.wav|tests/data/ljspeech/wavs/LJ003-0287.npy +tests/data/ljspeech/wavs/LJ030-0093.wav|tests/data/ljspeech/wavs/LJ030-0093.npy +tests/data/ljspeech/wavs/LJ038-0130.wav|tests/data/ljspeech/wavs/LJ038-0130.npy +tests/data/ljspeech/wavs/LJ020-0010.wav|tests/data/ljspeech/wavs/LJ020-0010.npy +tests/data/ljspeech/wavs/LJ019-0280.wav|tests/data/ljspeech/wavs/LJ019-0280.npy +tests/data/ljspeech/wavs/LJ019-0392.wav|tests/data/ljspeech/wavs/LJ019-0392.npy +tests/data/ljspeech/wavs/LJ037-0194.wav|tests/data/ljspeech/wavs/LJ037-0194.npy +tests/data/ljspeech/wavs/LJ025-0077.wav|tests/data/ljspeech/wavs/LJ025-0077.npy +tests/data/ljspeech/wavs/LJ030-0105.wav|tests/data/ljspeech/wavs/LJ030-0105.npy +tests/data/ljspeech/wavs/LJ018-0357.wav|tests/data/ljspeech/wavs/LJ018-0357.npy +tests/data/ljspeech/wavs/LJ038-0113.wav|tests/data/ljspeech/wavs/LJ038-0113.npy +tests/data/ljspeech/wavs/LJ032-0243.wav|tests/data/ljspeech/wavs/LJ032-0243.npy +tests/data/ljspeech/wavs/LJ031-0184.wav|tests/data/ljspeech/wavs/LJ031-0184.npy +tests/data/ljspeech/wavs/LJ022-0053.wav|tests/data/ljspeech/wavs/LJ022-0053.npy +tests/data/ljspeech/wavs/LJ008-0167.wav|tests/data/ljspeech/wavs/LJ008-0167.npy +tests/data/ljspeech/wavs/LJ020-0034.wav|tests/data/ljspeech/wavs/LJ020-0034.npy +tests/data/ljspeech/wavs/LJ026-0029.wav|tests/data/ljspeech/wavs/LJ026-0029.npy +tests/data/ljspeech/wavs/LJ045-0132.wav|tests/data/ljspeech/wavs/LJ045-0132.npy +tests/data/ljspeech/wavs/LJ011-0059.wav|tests/data/ljspeech/wavs/LJ011-0059.npy +tests/data/ljspeech/wavs/LJ048-0038.wav|tests/data/ljspeech/wavs/LJ048-0038.npy +tests/data/ljspeech/wavs/LJ048-0113.wav|tests/data/ljspeech/wavs/LJ048-0113.npy +tests/data/ljspeech/wavs/LJ013-0059.wav|tests/data/ljspeech/wavs/LJ013-0059.npy +tests/data/ljspeech/wavs/LJ005-0074.wav|tests/data/ljspeech/wavs/LJ005-0074.npy +tests/data/ljspeech/wavs/LJ037-0052.wav|tests/data/ljspeech/wavs/LJ037-0052.npy +tests/data/ljspeech/wavs/LJ033-0110.wav|tests/data/ljspeech/wavs/LJ033-0110.npy +tests/data/ljspeech/wavs/LJ022-0078.wav|tests/data/ljspeech/wavs/LJ022-0078.npy +tests/data/ljspeech/wavs/LJ043-0131.wav|tests/data/ljspeech/wavs/LJ043-0131.npy +tests/data/ljspeech/wavs/LJ021-0050.wav|tests/data/ljspeech/wavs/LJ021-0050.npy +tests/data/ljspeech/wavs/LJ008-0073.wav|tests/data/ljspeech/wavs/LJ008-0073.npy +tests/data/ljspeech/wavs/LJ016-0049.wav|tests/data/ljspeech/wavs/LJ016-0049.npy +tests/data/ljspeech/wavs/LJ049-0202.wav|tests/data/ljspeech/wavs/LJ049-0202.npy +tests/data/ljspeech/wavs/LJ012-0159.wav|tests/data/ljspeech/wavs/LJ012-0159.npy +tests/data/ljspeech/wavs/LJ014-0102.wav|tests/data/ljspeech/wavs/LJ014-0102.npy +tests/data/ljspeech/wavs/LJ033-0057.wav|tests/data/ljspeech/wavs/LJ033-0057.npy +tests/data/ljspeech/wavs/LJ024-0008.wav|tests/data/ljspeech/wavs/LJ024-0008.npy +tests/data/ljspeech/wavs/LJ049-0194.wav|tests/data/ljspeech/wavs/LJ049-0194.npy +tests/data/ljspeech/wavs/LJ024-0109.wav|tests/data/ljspeech/wavs/LJ024-0109.npy +tests/data/ljspeech/wavs/LJ043-0104.wav|tests/data/ljspeech/wavs/LJ043-0104.npy +tests/data/ljspeech/wavs/LJ024-0024.wav|tests/data/ljspeech/wavs/LJ024-0024.npy +tests/data/ljspeech/wavs/LJ003-0225.wav|tests/data/ljspeech/wavs/LJ003-0225.npy +tests/data/ljspeech/wavs/LJ012-0120.wav|tests/data/ljspeech/wavs/LJ012-0120.npy +tests/data/ljspeech/wavs/LJ016-0048.wav|tests/data/ljspeech/wavs/LJ016-0048.npy +tests/data/ljspeech/wavs/LJ014-0009.wav|tests/data/ljspeech/wavs/LJ014-0009.npy +tests/data/ljspeech/wavs/LJ021-0201.wav|tests/data/ljspeech/wavs/LJ021-0201.npy +tests/data/ljspeech/wavs/LJ008-0298.wav|tests/data/ljspeech/wavs/LJ008-0298.npy +tests/data/ljspeech/wavs/LJ016-0230.wav|tests/data/ljspeech/wavs/LJ016-0230.npy +tests/data/ljspeech/wavs/LJ017-0072.wav|tests/data/ljspeech/wavs/LJ017-0072.npy +tests/data/ljspeech/wavs/LJ037-0232.wav|tests/data/ljspeech/wavs/LJ037-0232.npy +tests/data/ljspeech/wavs/LJ017-0225.wav|tests/data/ljspeech/wavs/LJ017-0225.npy +tests/data/ljspeech/wavs/LJ016-0174.wav|tests/data/ljspeech/wavs/LJ016-0174.npy +tests/data/ljspeech/wavs/LJ038-0148.wav|tests/data/ljspeech/wavs/LJ038-0148.npy +tests/data/ljspeech/wavs/LJ009-0034.wav|tests/data/ljspeech/wavs/LJ009-0034.npy +tests/data/ljspeech/wavs/LJ032-0231.wav|tests/data/ljspeech/wavs/LJ032-0231.npy +tests/data/ljspeech/wavs/LJ002-0012.wav|tests/data/ljspeech/wavs/LJ002-0012.npy +tests/data/ljspeech/wavs/LJ004-0104.wav|tests/data/ljspeech/wavs/LJ004-0104.npy +tests/data/ljspeech/wavs/LJ024-0002.wav|tests/data/ljspeech/wavs/LJ024-0002.npy +tests/data/ljspeech/wavs/LJ037-0186.wav|tests/data/ljspeech/wavs/LJ037-0186.npy +tests/data/ljspeech/wavs/LJ032-0088.wav|tests/data/ljspeech/wavs/LJ032-0088.npy +tests/data/ljspeech/wavs/LJ018-0282.wav|tests/data/ljspeech/wavs/LJ018-0282.npy +tests/data/ljspeech/wavs/LJ034-0119.wav|tests/data/ljspeech/wavs/LJ034-0119.npy +tests/data/ljspeech/wavs/LJ017-0236.wav|tests/data/ljspeech/wavs/LJ017-0236.npy +tests/data/ljspeech/wavs/LJ042-0126.wav|tests/data/ljspeech/wavs/LJ042-0126.npy +tests/data/ljspeech/wavs/LJ011-0280.wav|tests/data/ljspeech/wavs/LJ011-0280.npy +tests/data/ljspeech/wavs/LJ031-0125.wav|tests/data/ljspeech/wavs/LJ031-0125.npy +tests/data/ljspeech/wavs/LJ032-0112.wav|tests/data/ljspeech/wavs/LJ032-0112.npy +tests/data/ljspeech/wavs/LJ033-0017.wav|tests/data/ljspeech/wavs/LJ033-0017.npy +tests/data/ljspeech/wavs/LJ030-0202.wav|tests/data/ljspeech/wavs/LJ030-0202.npy +tests/data/ljspeech/wavs/LJ040-0022.wav|tests/data/ljspeech/wavs/LJ040-0022.npy +tests/data/ljspeech/wavs/LJ027-0132.wav|tests/data/ljspeech/wavs/LJ027-0132.npy +tests/data/ljspeech/wavs/LJ041-0057.wav|tests/data/ljspeech/wavs/LJ041-0057.npy +tests/data/ljspeech/wavs/LJ033-0129.wav|tests/data/ljspeech/wavs/LJ033-0129.npy +tests/data/ljspeech/wavs/LJ028-0123.wav|tests/data/ljspeech/wavs/LJ028-0123.npy +tests/data/ljspeech/wavs/LJ011-0217.wav|tests/data/ljspeech/wavs/LJ011-0217.npy +tests/data/ljspeech/wavs/LJ008-0062.wav|tests/data/ljspeech/wavs/LJ008-0062.npy +tests/data/ljspeech/wavs/LJ002-0044.wav|tests/data/ljspeech/wavs/LJ002-0044.npy +tests/data/ljspeech/wavs/LJ007-0081.wav|tests/data/ljspeech/wavs/LJ007-0081.npy +tests/data/ljspeech/wavs/LJ016-0027.wav|tests/data/ljspeech/wavs/LJ016-0027.npy +tests/data/ljspeech/wavs/LJ048-0026.wav|tests/data/ljspeech/wavs/LJ048-0026.npy +tests/data/ljspeech/wavs/LJ014-0050.wav|tests/data/ljspeech/wavs/LJ014-0050.npy +tests/data/ljspeech/wavs/LJ035-0144.wav|tests/data/ljspeech/wavs/LJ035-0144.npy +tests/data/ljspeech/wavs/LJ009-0086.wav|tests/data/ljspeech/wavs/LJ009-0086.npy +tests/data/ljspeech/wavs/LJ009-0303.wav|tests/data/ljspeech/wavs/LJ009-0303.npy +tests/data/ljspeech/wavs/LJ016-0007.wav|tests/data/ljspeech/wavs/LJ016-0007.npy +tests/data/ljspeech/wavs/LJ049-0180.wav|tests/data/ljspeech/wavs/LJ049-0180.npy +tests/data/ljspeech/wavs/LJ022-0179.wav|tests/data/ljspeech/wavs/LJ022-0179.npy +tests/data/ljspeech/wavs/LJ013-0231.wav|tests/data/ljspeech/wavs/LJ013-0231.npy +tests/data/ljspeech/wavs/LJ046-0135.wav|tests/data/ljspeech/wavs/LJ046-0135.npy +tests/data/ljspeech/wavs/LJ036-0199.wav|tests/data/ljspeech/wavs/LJ036-0199.npy +tests/data/ljspeech/wavs/LJ008-0198.wav|tests/data/ljspeech/wavs/LJ008-0198.npy +tests/data/ljspeech/wavs/LJ031-0194.wav|tests/data/ljspeech/wavs/LJ031-0194.npy +tests/data/ljspeech/wavs/LJ036-0065.wav|tests/data/ljspeech/wavs/LJ036-0065.npy +tests/data/ljspeech/wavs/LJ050-0053.wav|tests/data/ljspeech/wavs/LJ050-0053.npy +tests/data/ljspeech/wavs/LJ019-0030.wav|tests/data/ljspeech/wavs/LJ019-0030.npy +tests/data/ljspeech/wavs/LJ014-0254.wav|tests/data/ljspeech/wavs/LJ014-0254.npy +tests/data/ljspeech/wavs/LJ018-0140.wav|tests/data/ljspeech/wavs/LJ018-0140.npy +tests/data/ljspeech/wavs/LJ045-0066.wav|tests/data/ljspeech/wavs/LJ045-0066.npy +tests/data/ljspeech/wavs/LJ027-0039.wav|tests/data/ljspeech/wavs/LJ027-0039.npy +tests/data/ljspeech/wavs/LJ011-0186.wav|tests/data/ljspeech/wavs/LJ011-0186.npy +tests/data/ljspeech/wavs/LJ048-0267.wav|tests/data/ljspeech/wavs/LJ048-0267.npy +tests/data/ljspeech/wavs/LJ022-0017.wav|tests/data/ljspeech/wavs/LJ022-0017.npy +tests/data/ljspeech/wavs/LJ034-0079.wav|tests/data/ljspeech/wavs/LJ034-0079.npy +tests/data/ljspeech/wavs/LJ003-0297.wav|tests/data/ljspeech/wavs/LJ003-0297.npy +tests/data/ljspeech/wavs/LJ019-0292.wav|tests/data/ljspeech/wavs/LJ019-0292.npy +tests/data/ljspeech/wavs/LJ018-0227.wav|tests/data/ljspeech/wavs/LJ018-0227.npy +tests/data/ljspeech/wavs/LJ041-0060.wav|tests/data/ljspeech/wavs/LJ041-0060.npy +tests/data/ljspeech/wavs/LJ045-0167.wav|tests/data/ljspeech/wavs/LJ045-0167.npy +tests/data/ljspeech/wavs/LJ022-0131.wav|tests/data/ljspeech/wavs/LJ022-0131.npy +tests/data/ljspeech/wavs/LJ033-0091.wav|tests/data/ljspeech/wavs/LJ033-0091.npy +tests/data/ljspeech/wavs/LJ008-0127.wav|tests/data/ljspeech/wavs/LJ008-0127.npy +tests/data/ljspeech/wavs/LJ021-0195.wav|tests/data/ljspeech/wavs/LJ021-0195.npy +tests/data/ljspeech/wavs/LJ019-0239.wav|tests/data/ljspeech/wavs/LJ019-0239.npy +tests/data/ljspeech/wavs/LJ028-0474.wav|tests/data/ljspeech/wavs/LJ028-0474.npy +tests/data/ljspeech/wavs/LJ018-0114.wav|tests/data/ljspeech/wavs/LJ018-0114.npy +tests/data/ljspeech/wavs/LJ006-0220.wav|tests/data/ljspeech/wavs/LJ006-0220.npy +tests/data/ljspeech/wavs/LJ039-0239.wav|tests/data/ljspeech/wavs/LJ039-0239.npy +tests/data/ljspeech/wavs/LJ018-0273.wav|tests/data/ljspeech/wavs/LJ018-0273.npy +tests/data/ljspeech/wavs/LJ038-0287.wav|tests/data/ljspeech/wavs/LJ038-0287.npy +tests/data/ljspeech/wavs/LJ050-0075.wav|tests/data/ljspeech/wavs/LJ050-0075.npy +tests/data/ljspeech/wavs/LJ033-0076.wav|tests/data/ljspeech/wavs/LJ033-0076.npy +tests/data/ljspeech/wavs/LJ036-0027.wav|tests/data/ljspeech/wavs/LJ036-0027.npy +tests/data/ljspeech/wavs/LJ044-0063.wav|tests/data/ljspeech/wavs/LJ044-0063.npy +tests/data/ljspeech/wavs/LJ046-0175.wav|tests/data/ljspeech/wavs/LJ046-0175.npy +tests/data/ljspeech/wavs/LJ007-0103.wav|tests/data/ljspeech/wavs/LJ007-0103.npy +tests/data/ljspeech/wavs/LJ037-0115.wav|tests/data/ljspeech/wavs/LJ037-0115.npy +tests/data/ljspeech/wavs/LJ015-0117.wav|tests/data/ljspeech/wavs/LJ015-0117.npy +tests/data/ljspeech/wavs/LJ021-0119.wav|tests/data/ljspeech/wavs/LJ021-0119.npy +tests/data/ljspeech/wavs/LJ020-0066.wav|tests/data/ljspeech/wavs/LJ020-0066.npy +tests/data/ljspeech/wavs/LJ031-0027.wav|tests/data/ljspeech/wavs/LJ031-0027.npy +tests/data/ljspeech/wavs/LJ046-0145.wav|tests/data/ljspeech/wavs/LJ046-0145.npy +tests/data/ljspeech/wavs/LJ038-0124.wav|tests/data/ljspeech/wavs/LJ038-0124.npy +tests/data/ljspeech/wavs/LJ048-0006.wav|tests/data/ljspeech/wavs/LJ048-0006.npy +tests/data/ljspeech/wavs/LJ038-0118.wav|tests/data/ljspeech/wavs/LJ038-0118.npy +tests/data/ljspeech/wavs/LJ009-0044.wav|tests/data/ljspeech/wavs/LJ009-0044.npy +tests/data/ljspeech/wavs/LJ028-0191.wav|tests/data/ljspeech/wavs/LJ028-0191.npy +tests/data/ljspeech/wavs/LJ008-0131.wav|tests/data/ljspeech/wavs/LJ008-0131.npy +tests/data/ljspeech/wavs/LJ018-0070.wav|tests/data/ljspeech/wavs/LJ018-0070.npy +tests/data/ljspeech/wavs/LJ028-0384.wav|tests/data/ljspeech/wavs/LJ028-0384.npy +tests/data/ljspeech/wavs/LJ043-0016.wav|tests/data/ljspeech/wavs/LJ043-0016.npy +tests/data/ljspeech/wavs/LJ032-0248.wav|tests/data/ljspeech/wavs/LJ032-0248.npy +tests/data/ljspeech/wavs/LJ040-0231.wav|tests/data/ljspeech/wavs/LJ040-0231.npy +tests/data/ljspeech/wavs/LJ027-0012.wav|tests/data/ljspeech/wavs/LJ027-0012.npy +tests/data/ljspeech/wavs/LJ032-0039.wav|tests/data/ljspeech/wavs/LJ032-0039.npy +tests/data/ljspeech/wavs/LJ014-0325.wav|tests/data/ljspeech/wavs/LJ014-0325.npy +tests/data/ljspeech/wavs/LJ047-0198.wav|tests/data/ljspeech/wavs/LJ047-0198.npy +tests/data/ljspeech/wavs/LJ023-0046.wav|tests/data/ljspeech/wavs/LJ023-0046.npy +tests/data/ljspeech/wavs/LJ018-0182.wav|tests/data/ljspeech/wavs/LJ018-0182.npy +tests/data/ljspeech/wavs/LJ049-0175.wav|tests/data/ljspeech/wavs/LJ049-0175.npy +tests/data/ljspeech/wavs/LJ025-0068.wav|tests/data/ljspeech/wavs/LJ025-0068.npy +tests/data/ljspeech/wavs/LJ016-0062.wav|tests/data/ljspeech/wavs/LJ016-0062.npy +tests/data/ljspeech/wavs/LJ014-0053.wav|tests/data/ljspeech/wavs/LJ014-0053.npy +tests/data/ljspeech/wavs/LJ044-0154.wav|tests/data/ljspeech/wavs/LJ044-0154.npy +tests/data/ljspeech/wavs/LJ033-0013.wav|tests/data/ljspeech/wavs/LJ033-0013.npy +tests/data/ljspeech/wavs/LJ029-0134.wav|tests/data/ljspeech/wavs/LJ029-0134.npy +tests/data/ljspeech/wavs/LJ039-0013.wav|tests/data/ljspeech/wavs/LJ039-0013.npy +tests/data/ljspeech/wavs/LJ038-0199.wav|tests/data/ljspeech/wavs/LJ038-0199.npy +tests/data/ljspeech/wavs/LJ034-0033.wav|tests/data/ljspeech/wavs/LJ034-0033.npy +tests/data/ljspeech/wavs/LJ040-0111.wav|tests/data/ljspeech/wavs/LJ040-0111.npy +tests/data/ljspeech/wavs/LJ024-0077.wav|tests/data/ljspeech/wavs/LJ024-0077.npy +tests/data/ljspeech/wavs/LJ015-0086.wav|tests/data/ljspeech/wavs/LJ015-0086.npy +tests/data/ljspeech/wavs/LJ018-0291.wav|tests/data/ljspeech/wavs/LJ018-0291.npy +tests/data/ljspeech/wavs/LJ026-0016.wav|tests/data/ljspeech/wavs/LJ026-0016.npy +tests/data/ljspeech/wavs/LJ046-0223.wav|tests/data/ljspeech/wavs/LJ046-0223.npy +tests/data/ljspeech/wavs/LJ040-0201.wav|tests/data/ljspeech/wavs/LJ040-0201.npy +tests/data/ljspeech/wavs/LJ018-0119.wav|tests/data/ljspeech/wavs/LJ018-0119.npy +tests/data/ljspeech/wavs/LJ049-0051.wav|tests/data/ljspeech/wavs/LJ049-0051.npy +tests/data/ljspeech/wavs/LJ016-0308.wav|tests/data/ljspeech/wavs/LJ016-0308.npy +tests/data/ljspeech/wavs/LJ040-0118.wav|tests/data/ljspeech/wavs/LJ040-0118.npy +tests/data/ljspeech/wavs/LJ028-0290.wav|tests/data/ljspeech/wavs/LJ028-0290.npy +tests/data/ljspeech/wavs/LJ034-0090.wav|tests/data/ljspeech/wavs/LJ034-0090.npy +tests/data/ljspeech/wavs/LJ014-0005.wav|tests/data/ljspeech/wavs/LJ014-0005.npy +tests/data/ljspeech/wavs/LJ039-0168.wav|tests/data/ljspeech/wavs/LJ039-0168.npy +tests/data/ljspeech/wavs/LJ048-0196.wav|tests/data/ljspeech/wavs/LJ048-0196.npy +tests/data/ljspeech/wavs/LJ040-0027.wav|tests/data/ljspeech/wavs/LJ040-0027.npy +tests/data/ljspeech/wavs/LJ028-0475.wav|tests/data/ljspeech/wavs/LJ028-0475.npy +tests/data/ljspeech/wavs/LJ049-0204.wav|tests/data/ljspeech/wavs/LJ049-0204.npy +tests/data/ljspeech/wavs/LJ035-0070.wav|tests/data/ljspeech/wavs/LJ035-0070.npy +tests/data/ljspeech/wavs/LJ028-0175.wav|tests/data/ljspeech/wavs/LJ028-0175.npy +tests/data/ljspeech/wavs/LJ003-0104.wav|tests/data/ljspeech/wavs/LJ003-0104.npy +tests/data/ljspeech/wavs/LJ014-0194.wav|tests/data/ljspeech/wavs/LJ014-0194.npy +tests/data/ljspeech/wavs/LJ014-0137.wav|tests/data/ljspeech/wavs/LJ014-0137.npy +tests/data/ljspeech/wavs/LJ050-0144.wav|tests/data/ljspeech/wavs/LJ050-0144.npy +tests/data/ljspeech/wavs/LJ016-0310.wav|tests/data/ljspeech/wavs/LJ016-0310.npy +tests/data/ljspeech/wavs/LJ036-0117.wav|tests/data/ljspeech/wavs/LJ036-0117.npy +tests/data/ljspeech/wavs/LJ044-0105.wav|tests/data/ljspeech/wavs/LJ044-0105.npy +tests/data/ljspeech/wavs/LJ035-0116.wav|tests/data/ljspeech/wavs/LJ035-0116.npy +tests/data/ljspeech/wavs/LJ043-0050.wav|tests/data/ljspeech/wavs/LJ043-0050.npy +tests/data/ljspeech/wavs/LJ048-0230.wav|tests/data/ljspeech/wavs/LJ048-0230.npy +tests/data/ljspeech/wavs/LJ022-0147.wav|tests/data/ljspeech/wavs/LJ022-0147.npy +tests/data/ljspeech/wavs/LJ036-0003.wav|tests/data/ljspeech/wavs/LJ036-0003.npy +tests/data/ljspeech/wavs/LJ044-0131.wav|tests/data/ljspeech/wavs/LJ044-0131.npy +tests/data/ljspeech/wavs/LJ029-0002.wav|tests/data/ljspeech/wavs/LJ029-0002.npy +tests/data/ljspeech/wavs/LJ030-0002.wav|tests/data/ljspeech/wavs/LJ030-0002.npy +tests/data/ljspeech/wavs/LJ047-0199.wav|tests/data/ljspeech/wavs/LJ047-0199.npy +tests/data/ljspeech/wavs/LJ024-0017.wav|tests/data/ljspeech/wavs/LJ024-0017.npy +tests/data/ljspeech/wavs/LJ033-0178.wav|tests/data/ljspeech/wavs/LJ033-0178.npy +tests/data/ljspeech/wavs/LJ043-0064.wav|tests/data/ljspeech/wavs/LJ043-0064.npy +tests/data/ljspeech/wavs/LJ006-0278.wav|tests/data/ljspeech/wavs/LJ006-0278.npy +tests/data/ljspeech/wavs/LJ002-0136.wav|tests/data/ljspeech/wavs/LJ002-0136.npy +tests/data/ljspeech/wavs/LJ038-0089.wav|tests/data/ljspeech/wavs/LJ038-0089.npy +tests/data/ljspeech/wavs/LJ048-0260.wav|tests/data/ljspeech/wavs/LJ048-0260.npy +tests/data/ljspeech/wavs/LJ034-0047.wav|tests/data/ljspeech/wavs/LJ034-0047.npy +tests/data/ljspeech/wavs/LJ019-0022.wav|tests/data/ljspeech/wavs/LJ019-0022.npy +tests/data/ljspeech/wavs/LJ018-0191.wav|tests/data/ljspeech/wavs/LJ018-0191.npy +tests/data/ljspeech/wavs/LJ006-0066.wav|tests/data/ljspeech/wavs/LJ006-0066.npy +tests/data/ljspeech/wavs/LJ030-0165.wav|tests/data/ljspeech/wavs/LJ030-0165.npy +tests/data/ljspeech/wavs/LJ023-0103.wav|tests/data/ljspeech/wavs/LJ023-0103.npy +tests/data/ljspeech/wavs/LJ033-0021.wav|tests/data/ljspeech/wavs/LJ033-0021.npy +tests/data/ljspeech/wavs/LJ003-0022.wav|tests/data/ljspeech/wavs/LJ003-0022.npy +tests/data/ljspeech/wavs/LJ019-0247.wav|tests/data/ljspeech/wavs/LJ019-0247.npy +tests/data/ljspeech/wavs/LJ031-0164.wav|tests/data/ljspeech/wavs/LJ031-0164.npy +tests/data/ljspeech/wavs/LJ043-0046.wav|tests/data/ljspeech/wavs/LJ043-0046.npy +tests/data/ljspeech/wavs/LJ041-0026.wav|tests/data/ljspeech/wavs/LJ041-0026.npy +tests/data/ljspeech/wavs/LJ008-0224.wav|tests/data/ljspeech/wavs/LJ008-0224.npy +tests/data/ljspeech/wavs/LJ016-0363.wav|tests/data/ljspeech/wavs/LJ016-0363.npy +tests/data/ljspeech/wavs/LJ038-0223.wav|tests/data/ljspeech/wavs/LJ038-0223.npy +tests/data/ljspeech/wavs/LJ034-0117.wav|tests/data/ljspeech/wavs/LJ034-0117.npy +tests/data/ljspeech/wavs/LJ013-0008.wav|tests/data/ljspeech/wavs/LJ013-0008.npy +tests/data/ljspeech/wavs/LJ045-0184.wav|tests/data/ljspeech/wavs/LJ045-0184.npy +tests/data/ljspeech/wavs/LJ026-0113.wav|tests/data/ljspeech/wavs/LJ026-0113.npy +tests/data/ljspeech/wavs/LJ032-0094.wav|tests/data/ljspeech/wavs/LJ032-0094.npy +tests/data/ljspeech/wavs/LJ017-0260.wav|tests/data/ljspeech/wavs/LJ017-0260.npy +tests/data/ljspeech/wavs/LJ042-0104.wav|tests/data/ljspeech/wavs/LJ042-0104.npy +tests/data/ljspeech/wavs/LJ036-0207.wav|tests/data/ljspeech/wavs/LJ036-0207.npy +tests/data/ljspeech/wavs/LJ029-0063.wav|tests/data/ljspeech/wavs/LJ029-0063.npy +tests/data/ljspeech/wavs/LJ020-0068.wav|tests/data/ljspeech/wavs/LJ020-0068.npy +tests/data/ljspeech/wavs/LJ010-0051.wav|tests/data/ljspeech/wavs/LJ010-0051.npy +tests/data/ljspeech/wavs/LJ003-0228.wav|tests/data/ljspeech/wavs/LJ003-0228.npy +tests/data/ljspeech/wavs/LJ009-0090.wav|tests/data/ljspeech/wavs/LJ009-0090.npy +tests/data/ljspeech/wavs/LJ037-0195.wav|tests/data/ljspeech/wavs/LJ037-0195.npy +tests/data/ljspeech/wavs/LJ030-0245.wav|tests/data/ljspeech/wavs/LJ030-0245.npy +tests/data/ljspeech/wavs/LJ015-0148.wav|tests/data/ljspeech/wavs/LJ015-0148.npy +tests/data/ljspeech/wavs/LJ038-0077.wav|tests/data/ljspeech/wavs/LJ038-0077.npy +tests/data/ljspeech/wavs/LJ039-0194.wav|tests/data/ljspeech/wavs/LJ039-0194.npy +tests/data/ljspeech/wavs/LJ031-0203.wav|tests/data/ljspeech/wavs/LJ031-0203.npy +tests/data/ljspeech/wavs/LJ048-0206.wav|tests/data/ljspeech/wavs/LJ048-0206.npy +tests/data/ljspeech/wavs/LJ014-0302.wav|tests/data/ljspeech/wavs/LJ014-0302.npy +tests/data/ljspeech/wavs/LJ043-0158.wav|tests/data/ljspeech/wavs/LJ043-0158.npy +tests/data/ljspeech/wavs/LJ050-0232.wav|tests/data/ljspeech/wavs/LJ050-0232.npy +tests/data/ljspeech/wavs/LJ037-0267.wav|tests/data/ljspeech/wavs/LJ037-0267.npy +tests/data/ljspeech/wavs/LJ009-0096.wav|tests/data/ljspeech/wavs/LJ009-0096.npy +tests/data/ljspeech/wavs/LJ018-0319.wav|tests/data/ljspeech/wavs/LJ018-0319.npy +tests/data/ljspeech/wavs/LJ002-0032.wav|tests/data/ljspeech/wavs/LJ002-0032.npy +tests/data/ljspeech/wavs/LJ003-0067.wav|tests/data/ljspeech/wavs/LJ003-0067.npy +tests/data/ljspeech/wavs/LJ016-0328.wav|tests/data/ljspeech/wavs/LJ016-0328.npy +tests/data/ljspeech/wavs/LJ050-0092.wav|tests/data/ljspeech/wavs/LJ050-0092.npy +tests/data/ljspeech/wavs/LJ011-0171.wav|tests/data/ljspeech/wavs/LJ011-0171.npy +tests/data/ljspeech/wavs/LJ017-0074.wav|tests/data/ljspeech/wavs/LJ017-0074.npy +tests/data/ljspeech/wavs/LJ002-0119.wav|tests/data/ljspeech/wavs/LJ002-0119.npy +tests/data/ljspeech/wavs/LJ010-0298.wav|tests/data/ljspeech/wavs/LJ010-0298.npy +tests/data/ljspeech/wavs/LJ048-0238.wav|tests/data/ljspeech/wavs/LJ048-0238.npy +tests/data/ljspeech/wavs/LJ031-0132.wav|tests/data/ljspeech/wavs/LJ031-0132.npy +tests/data/ljspeech/wavs/LJ021-0014.wav|tests/data/ljspeech/wavs/LJ021-0014.npy +tests/data/ljspeech/wavs/LJ021-0052.wav|tests/data/ljspeech/wavs/LJ021-0052.npy +tests/data/ljspeech/wavs/LJ014-0003.wav|tests/data/ljspeech/wavs/LJ014-0003.npy +tests/data/ljspeech/wavs/LJ045-0105.wav|tests/data/ljspeech/wavs/LJ045-0105.npy +tests/data/ljspeech/wavs/LJ048-0263.wav|tests/data/ljspeech/wavs/LJ048-0263.npy +tests/data/ljspeech/wavs/LJ004-0012.wav|tests/data/ljspeech/wavs/LJ004-0012.npy +tests/data/ljspeech/wavs/LJ047-0015.wav|tests/data/ljspeech/wavs/LJ047-0015.npy +tests/data/ljspeech/wavs/LJ014-0240.wav|tests/data/ljspeech/wavs/LJ014-0240.npy +tests/data/ljspeech/wavs/LJ050-0204.wav|tests/data/ljspeech/wavs/LJ050-0204.npy +tests/data/ljspeech/wavs/LJ001-0165.wav|tests/data/ljspeech/wavs/LJ001-0165.npy +tests/data/ljspeech/wavs/LJ018-0159.wav|tests/data/ljspeech/wavs/LJ018-0159.npy +tests/data/ljspeech/wavs/LJ002-0153.wav|tests/data/ljspeech/wavs/LJ002-0153.npy +tests/data/ljspeech/wavs/LJ020-0065.wav|tests/data/ljspeech/wavs/LJ020-0065.npy +tests/data/ljspeech/wavs/LJ014-0183.wav|tests/data/ljspeech/wavs/LJ014-0183.npy +tests/data/ljspeech/wavs/LJ013-0213.wav|tests/data/ljspeech/wavs/LJ013-0213.npy +tests/data/ljspeech/wavs/LJ021-0076.wav|tests/data/ljspeech/wavs/LJ021-0076.npy +tests/data/ljspeech/wavs/LJ021-0208.wav|tests/data/ljspeech/wavs/LJ021-0208.npy +tests/data/ljspeech/wavs/LJ016-0154.wav|tests/data/ljspeech/wavs/LJ016-0154.npy +tests/data/ljspeech/wavs/LJ043-0029.wav|tests/data/ljspeech/wavs/LJ043-0029.npy +tests/data/ljspeech/wavs/LJ050-0255.wav|tests/data/ljspeech/wavs/LJ050-0255.npy +tests/data/ljspeech/wavs/LJ018-0309.wav|tests/data/ljspeech/wavs/LJ018-0309.npy +tests/data/ljspeech/wavs/LJ037-0020.wav|tests/data/ljspeech/wavs/LJ037-0020.npy +tests/data/ljspeech/wavs/LJ032-0109.wav|tests/data/ljspeech/wavs/LJ032-0109.npy +tests/data/ljspeech/wavs/LJ032-0219.wav|tests/data/ljspeech/wavs/LJ032-0219.npy +tests/data/ljspeech/wavs/LJ014-0250.wav|tests/data/ljspeech/wavs/LJ014-0250.npy +tests/data/ljspeech/wavs/LJ018-0205.wav|tests/data/ljspeech/wavs/LJ018-0205.npy +tests/data/ljspeech/wavs/LJ021-0054.wav|tests/data/ljspeech/wavs/LJ021-0054.npy +tests/data/ljspeech/wavs/LJ050-0239.wav|tests/data/ljspeech/wavs/LJ050-0239.npy +tests/data/ljspeech/wavs/LJ039-0104.wav|tests/data/ljspeech/wavs/LJ039-0104.npy +tests/data/ljspeech/wavs/LJ036-0152.wav|tests/data/ljspeech/wavs/LJ036-0152.npy +tests/data/ljspeech/wavs/LJ043-0003.wav|tests/data/ljspeech/wavs/LJ043-0003.npy +tests/data/ljspeech/wavs/LJ034-0183.wav|tests/data/ljspeech/wavs/LJ034-0183.npy +tests/data/ljspeech/wavs/LJ038-0155.wav|tests/data/ljspeech/wavs/LJ038-0155.npy +tests/data/ljspeech/wavs/LJ005-0261.wav|tests/data/ljspeech/wavs/LJ005-0261.npy +tests/data/ljspeech/wavs/LJ045-0037.wav|tests/data/ljspeech/wavs/LJ045-0037.npy +tests/data/ljspeech/wavs/LJ027-0111.wav|tests/data/ljspeech/wavs/LJ027-0111.npy +tests/data/ljspeech/wavs/LJ025-0008.wav|tests/data/ljspeech/wavs/LJ025-0008.npy +tests/data/ljspeech/wavs/LJ024-0040.wav|tests/data/ljspeech/wavs/LJ024-0040.npy +tests/data/ljspeech/wavs/LJ019-0371.wav|tests/data/ljspeech/wavs/LJ019-0371.npy +tests/data/ljspeech/wavs/LJ023-0140.wav|tests/data/ljspeech/wavs/LJ023-0140.npy +tests/data/ljspeech/wavs/LJ025-0004.wav|tests/data/ljspeech/wavs/LJ025-0004.npy +tests/data/ljspeech/wavs/LJ006-0202.wav|tests/data/ljspeech/wavs/LJ006-0202.npy +tests/data/ljspeech/wavs/LJ032-0107.wav|tests/data/ljspeech/wavs/LJ032-0107.npy +tests/data/ljspeech/wavs/LJ006-0016.wav|tests/data/ljspeech/wavs/LJ006-0016.npy +tests/data/ljspeech/wavs/LJ027-0126.wav|tests/data/ljspeech/wavs/LJ027-0126.npy +tests/data/ljspeech/wavs/LJ041-0097.wav|tests/data/ljspeech/wavs/LJ041-0097.npy +tests/data/ljspeech/wavs/LJ036-0175.wav|tests/data/ljspeech/wavs/LJ036-0175.npy +tests/data/ljspeech/wavs/LJ017-0012.wav|tests/data/ljspeech/wavs/LJ017-0012.npy +tests/data/ljspeech/wavs/LJ047-0157.wav|tests/data/ljspeech/wavs/LJ047-0157.npy +tests/data/ljspeech/wavs/LJ023-0104.wav|tests/data/ljspeech/wavs/LJ023-0104.npy +tests/data/ljspeech/wavs/LJ023-0098.wav|tests/data/ljspeech/wavs/LJ023-0098.npy +tests/data/ljspeech/wavs/LJ004-0109.wav|tests/data/ljspeech/wavs/LJ004-0109.npy +tests/data/ljspeech/wavs/LJ027-0112.wav|tests/data/ljspeech/wavs/LJ027-0112.npy +tests/data/ljspeech/wavs/LJ031-0174.wav|tests/data/ljspeech/wavs/LJ031-0174.npy +tests/data/ljspeech/wavs/LJ013-0060.wav|tests/data/ljspeech/wavs/LJ013-0060.npy +tests/data/ljspeech/wavs/LJ029-0036.wav|tests/data/ljspeech/wavs/LJ029-0036.npy +tests/data/ljspeech/wavs/LJ002-0216.wav|tests/data/ljspeech/wavs/LJ002-0216.npy +tests/data/ljspeech/wavs/LJ024-0042.wav|tests/data/ljspeech/wavs/LJ024-0042.npy +tests/data/ljspeech/wavs/LJ004-0040.wav|tests/data/ljspeech/wavs/LJ004-0040.npy +tests/data/ljspeech/wavs/LJ046-0132.wav|tests/data/ljspeech/wavs/LJ046-0132.npy +tests/data/ljspeech/wavs/LJ034-0081.wav|tests/data/ljspeech/wavs/LJ034-0081.npy +tests/data/ljspeech/wavs/LJ023-0137.wav|tests/data/ljspeech/wavs/LJ023-0137.npy +tests/data/ljspeech/wavs/LJ042-0003.wav|tests/data/ljspeech/wavs/LJ042-0003.npy +tests/data/ljspeech/wavs/LJ017-0209.wav|tests/data/ljspeech/wavs/LJ017-0209.npy +tests/data/ljspeech/wavs/LJ025-0094.wav|tests/data/ljspeech/wavs/LJ025-0094.npy +tests/data/ljspeech/wavs/LJ024-0111.wav|tests/data/ljspeech/wavs/LJ024-0111.npy +tests/data/ljspeech/wavs/LJ006-0225.wav|tests/data/ljspeech/wavs/LJ006-0225.npy +tests/data/ljspeech/wavs/LJ015-0098.wav|tests/data/ljspeech/wavs/LJ015-0098.npy +tests/data/ljspeech/wavs/LJ036-0088.wav|tests/data/ljspeech/wavs/LJ036-0088.npy +tests/data/ljspeech/wavs/LJ038-0197.wav|tests/data/ljspeech/wavs/LJ038-0197.npy +tests/data/ljspeech/wavs/LJ045-0170.wav|tests/data/ljspeech/wavs/LJ045-0170.npy +tests/data/ljspeech/wavs/LJ022-0202.wav|tests/data/ljspeech/wavs/LJ022-0202.npy +tests/data/ljspeech/wavs/LJ044-0169.wav|tests/data/ljspeech/wavs/LJ044-0169.npy +tests/data/ljspeech/wavs/LJ032-0082.wav|tests/data/ljspeech/wavs/LJ032-0082.npy +tests/data/ljspeech/wavs/LJ023-0037.wav|tests/data/ljspeech/wavs/LJ023-0037.npy +tests/data/ljspeech/wavs/LJ049-0036.wav|tests/data/ljspeech/wavs/LJ049-0036.npy +tests/data/ljspeech/wavs/LJ018-0281.wav|tests/data/ljspeech/wavs/LJ018-0281.npy +tests/data/ljspeech/wavs/LJ018-0062.wav|tests/data/ljspeech/wavs/LJ018-0062.npy +tests/data/ljspeech/wavs/LJ010-0074.wav|tests/data/ljspeech/wavs/LJ010-0074.npy +tests/data/ljspeech/wavs/LJ020-0063.wav|tests/data/ljspeech/wavs/LJ020-0063.npy +tests/data/ljspeech/wavs/LJ038-0297.wav|tests/data/ljspeech/wavs/LJ038-0297.npy +tests/data/ljspeech/wavs/LJ009-0219.wav|tests/data/ljspeech/wavs/LJ009-0219.npy +tests/data/ljspeech/wavs/LJ008-0291.wav|tests/data/ljspeech/wavs/LJ008-0291.npy +tests/data/ljspeech/wavs/LJ006-0103.wav|tests/data/ljspeech/wavs/LJ006-0103.npy +tests/data/ljspeech/wavs/LJ026-0101.wav|tests/data/ljspeech/wavs/LJ026-0101.npy +tests/data/ljspeech/wavs/LJ023-0005.wav|tests/data/ljspeech/wavs/LJ023-0005.npy +tests/data/ljspeech/wavs/LJ046-0037.wav|tests/data/ljspeech/wavs/LJ046-0037.npy +tests/data/ljspeech/wavs/LJ012-0282.wav|tests/data/ljspeech/wavs/LJ012-0282.npy +tests/data/ljspeech/wavs/LJ010-0161.wav|tests/data/ljspeech/wavs/LJ010-0161.npy +tests/data/ljspeech/wavs/LJ040-0196.wav|tests/data/ljspeech/wavs/LJ040-0196.npy +tests/data/ljspeech/wavs/LJ013-0255.wav|tests/data/ljspeech/wavs/LJ013-0255.npy +tests/data/ljspeech/wavs/LJ002-0026.wav|tests/data/ljspeech/wavs/LJ002-0026.npy +tests/data/ljspeech/wavs/LJ008-0013.wav|tests/data/ljspeech/wavs/LJ008-0013.npy +tests/data/ljspeech/wavs/LJ047-0160.wav|tests/data/ljspeech/wavs/LJ047-0160.npy +tests/data/ljspeech/wavs/LJ031-0113.wav|tests/data/ljspeech/wavs/LJ031-0113.npy +tests/data/ljspeech/wavs/LJ035-0178.wav|tests/data/ljspeech/wavs/LJ035-0178.npy +tests/data/ljspeech/wavs/LJ002-0009.wav|tests/data/ljspeech/wavs/LJ002-0009.npy +tests/data/ljspeech/wavs/LJ049-0107.wav|tests/data/ljspeech/wavs/LJ049-0107.npy +tests/data/ljspeech/wavs/LJ028-0187.wav|tests/data/ljspeech/wavs/LJ028-0187.npy +tests/data/ljspeech/wavs/LJ031-0231.wav|tests/data/ljspeech/wavs/LJ031-0231.npy +tests/data/ljspeech/wavs/LJ010-0144.wav|tests/data/ljspeech/wavs/LJ010-0144.npy +tests/data/ljspeech/wavs/LJ003-0028.wav|tests/data/ljspeech/wavs/LJ003-0028.npy +tests/data/ljspeech/wavs/LJ013-0203.wav|tests/data/ljspeech/wavs/LJ013-0203.npy +tests/data/ljspeech/wavs/LJ018-0284.wav|tests/data/ljspeech/wavs/LJ018-0284.npy +tests/data/ljspeech/wavs/LJ050-0157.wav|tests/data/ljspeech/wavs/LJ050-0157.npy +tests/data/ljspeech/wavs/LJ028-0211.wav|tests/data/ljspeech/wavs/LJ028-0211.npy +tests/data/ljspeech/wavs/LJ004-0126.wav|tests/data/ljspeech/wavs/LJ004-0126.npy +tests/data/ljspeech/wavs/LJ039-0011.wav|tests/data/ljspeech/wavs/LJ039-0011.npy +tests/data/ljspeech/wavs/LJ040-0080.wav|tests/data/ljspeech/wavs/LJ040-0080.npy +tests/data/ljspeech/wavs/LJ013-0120.wav|tests/data/ljspeech/wavs/LJ013-0120.npy +tests/data/ljspeech/wavs/LJ002-0131.wav|tests/data/ljspeech/wavs/LJ002-0131.npy +tests/data/ljspeech/wavs/LJ039-0113.wav|tests/data/ljspeech/wavs/LJ039-0113.npy +tests/data/ljspeech/wavs/LJ024-0140.wav|tests/data/ljspeech/wavs/LJ024-0140.npy +tests/data/ljspeech/wavs/LJ021-0085.wav|tests/data/ljspeech/wavs/LJ021-0085.npy +tests/data/ljspeech/wavs/LJ034-0036.wav|tests/data/ljspeech/wavs/LJ034-0036.npy +tests/data/ljspeech/wavs/LJ040-0007.wav|tests/data/ljspeech/wavs/LJ040-0007.npy +tests/data/ljspeech/wavs/LJ011-0266.wav|tests/data/ljspeech/wavs/LJ011-0266.npy +tests/data/ljspeech/wavs/LJ023-0095.wav|tests/data/ljspeech/wavs/LJ023-0095.npy +tests/data/ljspeech/wavs/LJ010-0169.wav|tests/data/ljspeech/wavs/LJ010-0169.npy +tests/data/ljspeech/wavs/LJ013-0124.wav|tests/data/ljspeech/wavs/LJ013-0124.npy +tests/data/ljspeech/wavs/LJ030-0122.wav|tests/data/ljspeech/wavs/LJ030-0122.npy +tests/data/ljspeech/wavs/LJ023-0035.wav|tests/data/ljspeech/wavs/LJ023-0035.npy +tests/data/ljspeech/wavs/LJ018-0361.wav|tests/data/ljspeech/wavs/LJ018-0361.npy +tests/data/ljspeech/wavs/LJ037-0193.wav|tests/data/ljspeech/wavs/LJ037-0193.npy +tests/data/ljspeech/wavs/LJ039-0227.wav|tests/data/ljspeech/wavs/LJ039-0227.npy +tests/data/ljspeech/wavs/LJ035-0088.wav|tests/data/ljspeech/wavs/LJ035-0088.npy +tests/data/ljspeech/wavs/LJ029-0054.wav|tests/data/ljspeech/wavs/LJ029-0054.npy +tests/data/ljspeech/wavs/LJ002-0065.wav|tests/data/ljspeech/wavs/LJ002-0065.npy +tests/data/ljspeech/wavs/LJ022-0062.wav|tests/data/ljspeech/wavs/LJ022-0062.npy +tests/data/ljspeech/wavs/LJ009-0296.wav|tests/data/ljspeech/wavs/LJ009-0296.npy +tests/data/ljspeech/wavs/LJ021-0008.wav|tests/data/ljspeech/wavs/LJ021-0008.npy +tests/data/ljspeech/wavs/LJ032-0266.wav|tests/data/ljspeech/wavs/LJ032-0266.npy +tests/data/ljspeech/wavs/LJ006-0176.wav|tests/data/ljspeech/wavs/LJ006-0176.npy +tests/data/ljspeech/wavs/LJ042-0203.wav|tests/data/ljspeech/wavs/LJ042-0203.npy +tests/data/ljspeech/wavs/LJ014-0151.wav|tests/data/ljspeech/wavs/LJ014-0151.npy +tests/data/ljspeech/wavs/LJ032-0016.wav|tests/data/ljspeech/wavs/LJ032-0016.npy +tests/data/ljspeech/wavs/LJ015-0159.wav|tests/data/ljspeech/wavs/LJ015-0159.npy +tests/data/ljspeech/wavs/LJ010-0141.wav|tests/data/ljspeech/wavs/LJ010-0141.npy +tests/data/ljspeech/wavs/LJ025-0053.wav|tests/data/ljspeech/wavs/LJ025-0053.npy +tests/data/ljspeech/wavs/LJ043-0106.wav|tests/data/ljspeech/wavs/LJ043-0106.npy +tests/data/ljspeech/wavs/LJ009-0273.wav|tests/data/ljspeech/wavs/LJ009-0273.npy +tests/data/ljspeech/wavs/LJ027-0137.wav|tests/data/ljspeech/wavs/LJ027-0137.npy +tests/data/ljspeech/wavs/LJ050-0004.wav|tests/data/ljspeech/wavs/LJ050-0004.npy +tests/data/ljspeech/wavs/LJ045-0212.wav|tests/data/ljspeech/wavs/LJ045-0212.npy +tests/data/ljspeech/wavs/LJ014-0017.wav|tests/data/ljspeech/wavs/LJ014-0017.npy +tests/data/ljspeech/wavs/LJ033-0055.wav|tests/data/ljspeech/wavs/LJ033-0055.npy +tests/data/ljspeech/wavs/LJ037-0164.wav|tests/data/ljspeech/wavs/LJ037-0164.npy +tests/data/ljspeech/wavs/LJ035-0093.wav|tests/data/ljspeech/wavs/LJ035-0093.npy +tests/data/ljspeech/wavs/LJ020-0086.wav|tests/data/ljspeech/wavs/LJ020-0086.npy +tests/data/ljspeech/wavs/LJ046-0142.wav|tests/data/ljspeech/wavs/LJ046-0142.npy +tests/data/ljspeech/wavs/LJ026-0011.wav|tests/data/ljspeech/wavs/LJ026-0011.npy +tests/data/ljspeech/wavs/LJ002-0198.wav|tests/data/ljspeech/wavs/LJ002-0198.npy +tests/data/ljspeech/wavs/LJ010-0081.wav|tests/data/ljspeech/wavs/LJ010-0081.npy +tests/data/ljspeech/wavs/LJ016-0355.wav|tests/data/ljspeech/wavs/LJ016-0355.npy +tests/data/ljspeech/wavs/LJ009-0049.wav|tests/data/ljspeech/wavs/LJ009-0049.npy +tests/data/ljspeech/wavs/LJ009-0267.wav|tests/data/ljspeech/wavs/LJ009-0267.npy +tests/data/ljspeech/wavs/LJ044-0213.wav|tests/data/ljspeech/wavs/LJ044-0213.npy +tests/data/ljspeech/wavs/LJ039-0109.wav|tests/data/ljspeech/wavs/LJ039-0109.npy +tests/data/ljspeech/wavs/LJ002-0298.wav|tests/data/ljspeech/wavs/LJ002-0298.npy +tests/data/ljspeech/wavs/LJ010-0301.wav|tests/data/ljspeech/wavs/LJ010-0301.npy +tests/data/ljspeech/wavs/LJ049-0130.wav|tests/data/ljspeech/wavs/LJ049-0130.npy +tests/data/ljspeech/wavs/LJ024-0142.wav|tests/data/ljspeech/wavs/LJ024-0142.npy +tests/data/ljspeech/wavs/LJ028-0484.wav|tests/data/ljspeech/wavs/LJ028-0484.npy +tests/data/ljspeech/wavs/LJ046-0109.wav|tests/data/ljspeech/wavs/LJ046-0109.npy +tests/data/ljspeech/wavs/LJ016-0191.wav|tests/data/ljspeech/wavs/LJ016-0191.npy +tests/data/ljspeech/wavs/LJ027-0037.wav|tests/data/ljspeech/wavs/LJ027-0037.npy +tests/data/ljspeech/wavs/LJ004-0194.wav|tests/data/ljspeech/wavs/LJ004-0194.npy +tests/data/ljspeech/wavs/LJ005-0284.wav|tests/data/ljspeech/wavs/LJ005-0284.npy +tests/data/ljspeech/wavs/LJ016-0296.wav|tests/data/ljspeech/wavs/LJ016-0296.npy +tests/data/ljspeech/wavs/LJ044-0142.wav|tests/data/ljspeech/wavs/LJ044-0142.npy +tests/data/ljspeech/wavs/LJ013-0097.wav|tests/data/ljspeech/wavs/LJ013-0097.npy +tests/data/ljspeech/wavs/LJ021-0015.wav|tests/data/ljspeech/wavs/LJ021-0015.npy +tests/data/ljspeech/wavs/LJ045-0096.wav|tests/data/ljspeech/wavs/LJ045-0096.npy +tests/data/ljspeech/wavs/LJ038-0051.wav|tests/data/ljspeech/wavs/LJ038-0051.npy +tests/data/ljspeech/wavs/LJ026-0013.wav|tests/data/ljspeech/wavs/LJ026-0013.npy +tests/data/ljspeech/wavs/LJ012-0011.wav|tests/data/ljspeech/wavs/LJ012-0011.npy +tests/data/ljspeech/wavs/LJ019-0384.wav|tests/data/ljspeech/wavs/LJ019-0384.npy +tests/data/ljspeech/wavs/LJ013-0064.wav|tests/data/ljspeech/wavs/LJ013-0064.npy +tests/data/ljspeech/wavs/LJ017-0126.wav|tests/data/ljspeech/wavs/LJ017-0126.npy +tests/data/ljspeech/wavs/LJ046-0212.wav|tests/data/ljspeech/wavs/LJ046-0212.npy +tests/data/ljspeech/wavs/LJ029-0176.wav|tests/data/ljspeech/wavs/LJ029-0176.npy +tests/data/ljspeech/wavs/LJ012-0138.wav|tests/data/ljspeech/wavs/LJ012-0138.npy +tests/data/ljspeech/wavs/LJ029-0167.wav|tests/data/ljspeech/wavs/LJ029-0167.npy +tests/data/ljspeech/wavs/LJ028-0403.wav|tests/data/ljspeech/wavs/LJ028-0403.npy +tests/data/ljspeech/wavs/LJ023-0032.wav|tests/data/ljspeech/wavs/LJ023-0032.npy +tests/data/ljspeech/wavs/LJ028-0381.wav|tests/data/ljspeech/wavs/LJ028-0381.npy +tests/data/ljspeech/wavs/LJ013-0249.wav|tests/data/ljspeech/wavs/LJ013-0249.npy +tests/data/ljspeech/wavs/LJ028-0071.wav|tests/data/ljspeech/wavs/LJ028-0071.npy +tests/data/ljspeech/wavs/LJ036-0123.wav|tests/data/ljspeech/wavs/LJ036-0123.npy +tests/data/ljspeech/wavs/LJ037-0206.wav|tests/data/ljspeech/wavs/LJ037-0206.npy +tests/data/ljspeech/wavs/LJ030-0151.wav|tests/data/ljspeech/wavs/LJ030-0151.npy +tests/data/ljspeech/wavs/LJ029-0024.wav|tests/data/ljspeech/wavs/LJ029-0024.npy +tests/data/ljspeech/wavs/LJ050-0182.wav|tests/data/ljspeech/wavs/LJ050-0182.npy +tests/data/ljspeech/wavs/LJ034-0115.wav|tests/data/ljspeech/wavs/LJ034-0115.npy +tests/data/ljspeech/wavs/LJ026-0054.wav|tests/data/ljspeech/wavs/LJ026-0054.npy +tests/data/ljspeech/wavs/LJ039-0200.wav|tests/data/ljspeech/wavs/LJ039-0200.npy +tests/data/ljspeech/wavs/LJ015-0240.wav|tests/data/ljspeech/wavs/LJ015-0240.npy +tests/data/ljspeech/wavs/LJ020-0073.wav|tests/data/ljspeech/wavs/LJ020-0073.npy +tests/data/ljspeech/wavs/LJ039-0133.wav|tests/data/ljspeech/wavs/LJ039-0133.npy +tests/data/ljspeech/wavs/LJ035-0150.wav|tests/data/ljspeech/wavs/LJ035-0150.npy +tests/data/ljspeech/wavs/LJ038-0213.wav|tests/data/ljspeech/wavs/LJ038-0213.npy +tests/data/ljspeech/wavs/LJ016-0407.wav|tests/data/ljspeech/wavs/LJ016-0407.npy +tests/data/ljspeech/wavs/LJ038-0257.wav|tests/data/ljspeech/wavs/LJ038-0257.npy +tests/data/ljspeech/wavs/LJ029-0090.wav|tests/data/ljspeech/wavs/LJ029-0090.npy +tests/data/ljspeech/wavs/LJ035-0012.wav|tests/data/ljspeech/wavs/LJ035-0012.npy +tests/data/ljspeech/wavs/LJ041-0164.wav|tests/data/ljspeech/wavs/LJ041-0164.npy +tests/data/ljspeech/wavs/LJ005-0119.wav|tests/data/ljspeech/wavs/LJ005-0119.npy +tests/data/ljspeech/wavs/LJ024-0090.wav|tests/data/ljspeech/wavs/LJ024-0090.npy +tests/data/ljspeech/wavs/LJ002-0250.wav|tests/data/ljspeech/wavs/LJ002-0250.npy +tests/data/ljspeech/wavs/LJ013-0106.wav|tests/data/ljspeech/wavs/LJ013-0106.npy +tests/data/ljspeech/wavs/LJ033-0122.wav|tests/data/ljspeech/wavs/LJ033-0122.npy +tests/data/ljspeech/wavs/LJ050-0162.wav|tests/data/ljspeech/wavs/LJ050-0162.npy +tests/data/ljspeech/wavs/LJ007-0086.wav|tests/data/ljspeech/wavs/LJ007-0086.npy +tests/data/ljspeech/wavs/LJ013-0154.wav|tests/data/ljspeech/wavs/LJ013-0154.npy +tests/data/ljspeech/wavs/LJ045-0173.wav|tests/data/ljspeech/wavs/LJ045-0173.npy +tests/data/ljspeech/wavs/LJ014-0178.wav|tests/data/ljspeech/wavs/LJ014-0178.npy +tests/data/ljspeech/wavs/LJ005-0154.wav|tests/data/ljspeech/wavs/LJ005-0154.npy +tests/data/ljspeech/wavs/LJ021-0193.wav|tests/data/ljspeech/wavs/LJ021-0193.npy +tests/data/ljspeech/wavs/LJ033-0126.wav|tests/data/ljspeech/wavs/LJ033-0126.npy +tests/data/ljspeech/wavs/LJ043-0119.wav|tests/data/ljspeech/wavs/LJ043-0119.npy +tests/data/ljspeech/wavs/LJ034-0097.wav|tests/data/ljspeech/wavs/LJ034-0097.npy +tests/data/ljspeech/wavs/LJ037-0146.wav|tests/data/ljspeech/wavs/LJ037-0146.npy +tests/data/ljspeech/wavs/LJ011-0055.wav|tests/data/ljspeech/wavs/LJ011-0055.npy +tests/data/ljspeech/wavs/LJ042-0059.wav|tests/data/ljspeech/wavs/LJ042-0059.npy +tests/data/ljspeech/wavs/LJ010-0188.wav|tests/data/ljspeech/wavs/LJ010-0188.npy +tests/data/ljspeech/wavs/LJ044-0164.wav|tests/data/ljspeech/wavs/LJ044-0164.npy +tests/data/ljspeech/wavs/LJ013-0050.wav|tests/data/ljspeech/wavs/LJ013-0050.npy +tests/data/ljspeech/wavs/LJ006-0083.wav|tests/data/ljspeech/wavs/LJ006-0083.npy +tests/data/ljspeech/wavs/LJ040-0167.wav|tests/data/ljspeech/wavs/LJ040-0167.npy +tests/data/ljspeech/wavs/LJ021-0176.wav|tests/data/ljspeech/wavs/LJ021-0176.npy +tests/data/ljspeech/wavs/LJ026-0151.wav|tests/data/ljspeech/wavs/LJ026-0151.npy +tests/data/ljspeech/wavs/LJ046-0227.wav|tests/data/ljspeech/wavs/LJ046-0227.npy +tests/data/ljspeech/wavs/LJ008-0026.wav|tests/data/ljspeech/wavs/LJ008-0026.npy +tests/data/ljspeech/wavs/LJ013-0062.wav|tests/data/ljspeech/wavs/LJ013-0062.npy +tests/data/ljspeech/wavs/LJ026-0068.wav|tests/data/ljspeech/wavs/LJ026-0068.npy +tests/data/ljspeech/wavs/LJ031-0120.wav|tests/data/ljspeech/wavs/LJ031-0120.npy +tests/data/ljspeech/wavs/LJ009-0265.wav|tests/data/ljspeech/wavs/LJ009-0265.npy +tests/data/ljspeech/wavs/LJ018-0080.wav|tests/data/ljspeech/wavs/LJ018-0080.npy +tests/data/ljspeech/wavs/LJ002-0139.wav|tests/data/ljspeech/wavs/LJ002-0139.npy +tests/data/ljspeech/wavs/LJ011-0202.wav|tests/data/ljspeech/wavs/LJ011-0202.npy +tests/data/ljspeech/wavs/LJ024-0118.wav|tests/data/ljspeech/wavs/LJ024-0118.npy +tests/data/ljspeech/wavs/LJ009-0210.wav|tests/data/ljspeech/wavs/LJ009-0210.npy +tests/data/ljspeech/wavs/LJ001-0013.wav|tests/data/ljspeech/wavs/LJ001-0013.npy +tests/data/ljspeech/wavs/LJ039-0176.wav|tests/data/ljspeech/wavs/LJ039-0176.npy +tests/data/ljspeech/wavs/LJ045-0155.wav|tests/data/ljspeech/wavs/LJ045-0155.npy +tests/data/ljspeech/wavs/LJ028-0342.wav|tests/data/ljspeech/wavs/LJ028-0342.npy +tests/data/ljspeech/wavs/LJ006-0145.wav|tests/data/ljspeech/wavs/LJ006-0145.npy +tests/data/ljspeech/wavs/LJ014-0242.wav|tests/data/ljspeech/wavs/LJ014-0242.npy +tests/data/ljspeech/wavs/LJ002-0023.wav|tests/data/ljspeech/wavs/LJ002-0023.npy +tests/data/ljspeech/wavs/LJ031-0122.wav|tests/data/ljspeech/wavs/LJ031-0122.npy +tests/data/ljspeech/wavs/LJ028-0121.wav|tests/data/ljspeech/wavs/LJ028-0121.npy +tests/data/ljspeech/wavs/LJ036-0206.wav|tests/data/ljspeech/wavs/LJ036-0206.npy +tests/data/ljspeech/wavs/LJ050-0068.wav|tests/data/ljspeech/wavs/LJ050-0068.npy +tests/data/ljspeech/wavs/LJ043-0091.wav|tests/data/ljspeech/wavs/LJ043-0091.npy +tests/data/ljspeech/wavs/LJ011-0269.wav|tests/data/ljspeech/wavs/LJ011-0269.npy +tests/data/ljspeech/wavs/LJ016-0050.wav|tests/data/ljspeech/wavs/LJ016-0050.npy +tests/data/ljspeech/wavs/LJ029-0174.wav|tests/data/ljspeech/wavs/LJ029-0174.npy +tests/data/ljspeech/wavs/LJ008-0009.wav|tests/data/ljspeech/wavs/LJ008-0009.npy +tests/data/ljspeech/wavs/LJ048-0152.wav|tests/data/ljspeech/wavs/LJ048-0152.npy +tests/data/ljspeech/wavs/LJ047-0195.wav|tests/data/ljspeech/wavs/LJ047-0195.npy +tests/data/ljspeech/wavs/LJ010-0131.wav|tests/data/ljspeech/wavs/LJ010-0131.npy +tests/data/ljspeech/wavs/LJ005-0137.wav|tests/data/ljspeech/wavs/LJ005-0137.npy +tests/data/ljspeech/wavs/LJ049-0151.wav|tests/data/ljspeech/wavs/LJ049-0151.npy +tests/data/ljspeech/wavs/LJ048-0013.wav|tests/data/ljspeech/wavs/LJ048-0013.npy +tests/data/ljspeech/wavs/LJ016-0388.wav|tests/data/ljspeech/wavs/LJ016-0388.npy +tests/data/ljspeech/wavs/LJ006-0182.wav|tests/data/ljspeech/wavs/LJ006-0182.npy +tests/data/ljspeech/wavs/LJ018-0255.wav|tests/data/ljspeech/wavs/LJ018-0255.npy +tests/data/ljspeech/wavs/LJ047-0188.wav|tests/data/ljspeech/wavs/LJ047-0188.npy +tests/data/ljspeech/wavs/LJ028-0014.wav|tests/data/ljspeech/wavs/LJ028-0014.npy +tests/data/ljspeech/wavs/LJ037-0211.wav|tests/data/ljspeech/wavs/LJ037-0211.npy +tests/data/ljspeech/wavs/LJ038-0162.wav|tests/data/ljspeech/wavs/LJ038-0162.npy +tests/data/ljspeech/wavs/LJ018-0019.wav|tests/data/ljspeech/wavs/LJ018-0019.npy +tests/data/ljspeech/wavs/LJ035-0053.wav|tests/data/ljspeech/wavs/LJ035-0053.npy +tests/data/ljspeech/wavs/LJ008-0159.wav|tests/data/ljspeech/wavs/LJ008-0159.npy +tests/data/ljspeech/wavs/LJ037-0032.wav|tests/data/ljspeech/wavs/LJ037-0032.npy +tests/data/ljspeech/wavs/LJ028-0508.wav|tests/data/ljspeech/wavs/LJ028-0508.npy +tests/data/ljspeech/wavs/LJ015-0286.wav|tests/data/ljspeech/wavs/LJ015-0286.npy +tests/data/ljspeech/wavs/LJ048-0158.wav|tests/data/ljspeech/wavs/LJ048-0158.npy +tests/data/ljspeech/wavs/LJ002-0213.wav|tests/data/ljspeech/wavs/LJ002-0213.npy +tests/data/ljspeech/wavs/LJ028-0252.wav|tests/data/ljspeech/wavs/LJ028-0252.npy +tests/data/ljspeech/wavs/LJ011-0129.wav|tests/data/ljspeech/wavs/LJ011-0129.npy +tests/data/ljspeech/wavs/LJ018-0337.wav|tests/data/ljspeech/wavs/LJ018-0337.npy +tests/data/ljspeech/wavs/LJ046-0188.wav|tests/data/ljspeech/wavs/LJ046-0188.npy +tests/data/ljspeech/wavs/LJ043-0107.wav|tests/data/ljspeech/wavs/LJ043-0107.npy +tests/data/ljspeech/wavs/LJ032-0046.wav|tests/data/ljspeech/wavs/LJ032-0046.npy +tests/data/ljspeech/wavs/LJ046-0230.wav|tests/data/ljspeech/wavs/LJ046-0230.npy +tests/data/ljspeech/wavs/LJ040-0153.wav|tests/data/ljspeech/wavs/LJ040-0153.npy +tests/data/ljspeech/wavs/LJ002-0029.wav|tests/data/ljspeech/wavs/LJ002-0029.npy +tests/data/ljspeech/wavs/LJ002-0151.wav|tests/data/ljspeech/wavs/LJ002-0151.npy +tests/data/ljspeech/wavs/LJ050-0150.wav|tests/data/ljspeech/wavs/LJ050-0150.npy +tests/data/ljspeech/wavs/LJ038-0183.wav|tests/data/ljspeech/wavs/LJ038-0183.npy +tests/data/ljspeech/wavs/LJ033-0191.wav|tests/data/ljspeech/wavs/LJ033-0191.npy +tests/data/ljspeech/wavs/LJ020-0004.wav|tests/data/ljspeech/wavs/LJ020-0004.npy +tests/data/ljspeech/wavs/LJ023-0130.wav|tests/data/ljspeech/wavs/LJ023-0130.npy +tests/data/ljspeech/wavs/LJ022-0005.wav|tests/data/ljspeech/wavs/LJ022-0005.npy +tests/data/ljspeech/wavs/LJ015-0274.wav|tests/data/ljspeech/wavs/LJ015-0274.npy +tests/data/ljspeech/wavs/LJ046-0168.wav|tests/data/ljspeech/wavs/LJ046-0168.npy +tests/data/ljspeech/wavs/LJ028-0137.wav|tests/data/ljspeech/wavs/LJ028-0137.npy +tests/data/ljspeech/wavs/LJ016-0058.wav|tests/data/ljspeech/wavs/LJ016-0058.npy +tests/data/ljspeech/wavs/LJ004-0175.wav|tests/data/ljspeech/wavs/LJ004-0175.npy +tests/data/ljspeech/wavs/LJ024-0069.wav|tests/data/ljspeech/wavs/LJ024-0069.npy +tests/data/ljspeech/wavs/LJ037-0130.wav|tests/data/ljspeech/wavs/LJ037-0130.npy +tests/data/ljspeech/wavs/LJ023-0074.wav|tests/data/ljspeech/wavs/LJ023-0074.npy +tests/data/ljspeech/wavs/LJ022-0152.wav|tests/data/ljspeech/wavs/LJ022-0152.npy +tests/data/ljspeech/wavs/LJ001-0179.wav|tests/data/ljspeech/wavs/LJ001-0179.npy +tests/data/ljspeech/wavs/LJ023-0067.wav|tests/data/ljspeech/wavs/LJ023-0067.npy +tests/data/ljspeech/wavs/LJ024-0132.wav|tests/data/ljspeech/wavs/LJ024-0132.npy +tests/data/ljspeech/wavs/LJ015-0091.wav|tests/data/ljspeech/wavs/LJ015-0091.npy +tests/data/ljspeech/wavs/LJ009-0071.wav|tests/data/ljspeech/wavs/LJ009-0071.npy +tests/data/ljspeech/wavs/LJ024-0083.wav|tests/data/ljspeech/wavs/LJ024-0083.npy +tests/data/ljspeech/wavs/LJ002-0069.wav|tests/data/ljspeech/wavs/LJ002-0069.npy +tests/data/ljspeech/wavs/LJ028-0107.wav|tests/data/ljspeech/wavs/LJ028-0107.npy +tests/data/ljspeech/wavs/LJ006-0143.wav|tests/data/ljspeech/wavs/LJ006-0143.npy +tests/data/ljspeech/wavs/LJ038-0072.wav|tests/data/ljspeech/wavs/LJ038-0072.npy +tests/data/ljspeech/wavs/LJ001-0125.wav|tests/data/ljspeech/wavs/LJ001-0125.npy +tests/data/ljspeech/wavs/LJ031-0104.wav|tests/data/ljspeech/wavs/LJ031-0104.npy +tests/data/ljspeech/wavs/LJ007-0208.wav|tests/data/ljspeech/wavs/LJ007-0208.npy +tests/data/ljspeech/wavs/LJ027-0005.wav|tests/data/ljspeech/wavs/LJ027-0005.npy +tests/data/ljspeech/wavs/LJ042-0039.wav|tests/data/ljspeech/wavs/LJ042-0039.npy +tests/data/ljspeech/wavs/LJ048-0056.wav|tests/data/ljspeech/wavs/LJ048-0056.npy +tests/data/ljspeech/wavs/LJ014-0125.wav|tests/data/ljspeech/wavs/LJ014-0125.npy +tests/data/ljspeech/wavs/LJ011-0004.wav|tests/data/ljspeech/wavs/LJ011-0004.npy +tests/data/ljspeech/wavs/LJ007-0088.wav|tests/data/ljspeech/wavs/LJ007-0088.npy +tests/data/ljspeech/wavs/LJ018-0105.wav|tests/data/ljspeech/wavs/LJ018-0105.npy +tests/data/ljspeech/wavs/LJ036-0064.wav|tests/data/ljspeech/wavs/LJ036-0064.npy +tests/data/ljspeech/wavs/LJ002-0083.wav|tests/data/ljspeech/wavs/LJ002-0083.npy +tests/data/ljspeech/wavs/LJ013-0081.wav|tests/data/ljspeech/wavs/LJ013-0081.npy +tests/data/ljspeech/wavs/LJ048-0223.wav|tests/data/ljspeech/wavs/LJ048-0223.npy +tests/data/ljspeech/wavs/LJ041-0156.wav|tests/data/ljspeech/wavs/LJ041-0156.npy +tests/data/ljspeech/wavs/LJ039-0130.wav|tests/data/ljspeech/wavs/LJ039-0130.npy +tests/data/ljspeech/wavs/LJ006-0150.wav|tests/data/ljspeech/wavs/LJ006-0150.npy +tests/data/ljspeech/wavs/LJ013-0072.wav|tests/data/ljspeech/wavs/LJ013-0072.npy +tests/data/ljspeech/wavs/LJ017-0179.wav|tests/data/ljspeech/wavs/LJ017-0179.npy +tests/data/ljspeech/wavs/LJ002-0287.wav|tests/data/ljspeech/wavs/LJ002-0287.npy +tests/data/ljspeech/wavs/LJ007-0169.wav|tests/data/ljspeech/wavs/LJ007-0169.npy +tests/data/ljspeech/wavs/LJ006-0240.wav|tests/data/ljspeech/wavs/LJ006-0240.npy +tests/data/ljspeech/wavs/LJ005-0156.wav|tests/data/ljspeech/wavs/LJ005-0156.npy +tests/data/ljspeech/wavs/LJ020-0104.wav|tests/data/ljspeech/wavs/LJ020-0104.npy +tests/data/ljspeech/wavs/LJ036-0145.wav|tests/data/ljspeech/wavs/LJ036-0145.npy +tests/data/ljspeech/wavs/LJ031-0068.wav|tests/data/ljspeech/wavs/LJ031-0068.npy +tests/data/ljspeech/wavs/LJ017-0229.wav|tests/data/ljspeech/wavs/LJ017-0229.npy +tests/data/ljspeech/wavs/LJ035-0133.wav|tests/data/ljspeech/wavs/LJ035-0133.npy +tests/data/ljspeech/wavs/LJ017-0132.wav|tests/data/ljspeech/wavs/LJ017-0132.npy +tests/data/ljspeech/wavs/LJ037-0172.wav|tests/data/ljspeech/wavs/LJ037-0172.npy +tests/data/ljspeech/wavs/LJ034-0161.wav|tests/data/ljspeech/wavs/LJ034-0161.npy +tests/data/ljspeech/wavs/LJ002-0236.wav|tests/data/ljspeech/wavs/LJ002-0236.npy +tests/data/ljspeech/wavs/LJ034-0155.wav|tests/data/ljspeech/wavs/LJ034-0155.npy +tests/data/ljspeech/wavs/LJ050-0266.wav|tests/data/ljspeech/wavs/LJ050-0266.npy +tests/data/ljspeech/wavs/LJ044-0234.wav|tests/data/ljspeech/wavs/LJ044-0234.npy +tests/data/ljspeech/wavs/LJ039-0154.wav|tests/data/ljspeech/wavs/LJ039-0154.npy +tests/data/ljspeech/wavs/LJ015-0058.wav|tests/data/ljspeech/wavs/LJ015-0058.npy +tests/data/ljspeech/wavs/LJ002-0005.wav|tests/data/ljspeech/wavs/LJ002-0005.npy +tests/data/ljspeech/wavs/LJ021-0174.wav|tests/data/ljspeech/wavs/LJ021-0174.npy +tests/data/ljspeech/wavs/LJ034-0093.wav|tests/data/ljspeech/wavs/LJ034-0093.npy +tests/data/ljspeech/wavs/LJ049-0085.wav|tests/data/ljspeech/wavs/LJ049-0085.npy +tests/data/ljspeech/wavs/LJ011-0036.wav|tests/data/ljspeech/wavs/LJ011-0036.npy +tests/data/ljspeech/wavs/LJ017-0263.wav|tests/data/ljspeech/wavs/LJ017-0263.npy +tests/data/ljspeech/wavs/LJ030-0107.wav|tests/data/ljspeech/wavs/LJ030-0107.npy +tests/data/ljspeech/wavs/LJ028-0139.wav|tests/data/ljspeech/wavs/LJ028-0139.npy +tests/data/ljspeech/wavs/LJ042-0040.wav|tests/data/ljspeech/wavs/LJ042-0040.npy +tests/data/ljspeech/wavs/LJ016-0102.wav|tests/data/ljspeech/wavs/LJ016-0102.npy +tests/data/ljspeech/wavs/LJ025-0091.wav|tests/data/ljspeech/wavs/LJ025-0091.npy +tests/data/ljspeech/wavs/LJ011-0109.wav|tests/data/ljspeech/wavs/LJ011-0109.npy +tests/data/ljspeech/wavs/LJ006-0169.wav|tests/data/ljspeech/wavs/LJ006-0169.npy +tests/data/ljspeech/wavs/LJ008-0104.wav|tests/data/ljspeech/wavs/LJ008-0104.npy +tests/data/ljspeech/wavs/LJ034-0089.wav|tests/data/ljspeech/wavs/LJ034-0089.npy +tests/data/ljspeech/wavs/LJ013-0267.wav|tests/data/ljspeech/wavs/LJ013-0267.npy +tests/data/ljspeech/wavs/LJ050-0126.wav|tests/data/ljspeech/wavs/LJ050-0126.npy +tests/data/ljspeech/wavs/LJ014-0115.wav|tests/data/ljspeech/wavs/LJ014-0115.npy +tests/data/ljspeech/wavs/LJ046-0136.wav|tests/data/ljspeech/wavs/LJ046-0136.npy +tests/data/ljspeech/wavs/LJ041-0188.wav|tests/data/ljspeech/wavs/LJ041-0188.npy +tests/data/ljspeech/wavs/LJ036-0118.wav|tests/data/ljspeech/wavs/LJ036-0118.npy +tests/data/ljspeech/wavs/LJ009-0058.wav|tests/data/ljspeech/wavs/LJ009-0058.npy +tests/data/ljspeech/wavs/LJ013-0211.wav|tests/data/ljspeech/wavs/LJ013-0211.npy +tests/data/ljspeech/wavs/LJ028-0231.wav|tests/data/ljspeech/wavs/LJ028-0231.npy +tests/data/ljspeech/wavs/LJ017-0210.wav|tests/data/ljspeech/wavs/LJ017-0210.npy +tests/data/ljspeech/wavs/LJ013-0258.wav|tests/data/ljspeech/wavs/LJ013-0258.npy +tests/data/ljspeech/wavs/LJ017-0051.wav|tests/data/ljspeech/wavs/LJ017-0051.npy +tests/data/ljspeech/wavs/LJ006-0061.wav|tests/data/ljspeech/wavs/LJ006-0061.npy +tests/data/ljspeech/wavs/LJ018-0252.wav|tests/data/ljspeech/wavs/LJ018-0252.npy +tests/data/ljspeech/wavs/LJ045-0213.wav|tests/data/ljspeech/wavs/LJ045-0213.npy +tests/data/ljspeech/wavs/LJ043-0144.wav|tests/data/ljspeech/wavs/LJ043-0144.npy +tests/data/ljspeech/wavs/LJ040-0088.wav|tests/data/ljspeech/wavs/LJ040-0088.npy +tests/data/ljspeech/wavs/LJ025-0107.wav|tests/data/ljspeech/wavs/LJ025-0107.npy +tests/data/ljspeech/wavs/LJ032-0014.wav|tests/data/ljspeech/wavs/LJ032-0014.npy +tests/data/ljspeech/wavs/LJ031-0147.wav|tests/data/ljspeech/wavs/LJ031-0147.npy +tests/data/ljspeech/wavs/LJ038-0159.wav|tests/data/ljspeech/wavs/LJ038-0159.npy +tests/data/ljspeech/wavs/LJ026-0033.wav|tests/data/ljspeech/wavs/LJ026-0033.npy +tests/data/ljspeech/wavs/LJ011-0090.wav|tests/data/ljspeech/wavs/LJ011-0090.npy +tests/data/ljspeech/wavs/LJ035-0068.wav|tests/data/ljspeech/wavs/LJ035-0068.npy +tests/data/ljspeech/wavs/LJ022-0089.wav|tests/data/ljspeech/wavs/LJ022-0089.npy +tests/data/ljspeech/wavs/LJ004-0123.wav|tests/data/ljspeech/wavs/LJ004-0123.npy +tests/data/ljspeech/wavs/LJ028-0222.wav|tests/data/ljspeech/wavs/LJ028-0222.npy +tests/data/ljspeech/wavs/LJ028-0115.wav|tests/data/ljspeech/wavs/LJ028-0115.npy +tests/data/ljspeech/wavs/LJ004-0114.wav|tests/data/ljspeech/wavs/LJ004-0114.npy +tests/data/ljspeech/wavs/LJ019-0194.wav|tests/data/ljspeech/wavs/LJ019-0194.npy +tests/data/ljspeech/wavs/LJ028-0277.wav|tests/data/ljspeech/wavs/LJ028-0277.npy +tests/data/ljspeech/wavs/LJ011-0155.wav|tests/data/ljspeech/wavs/LJ011-0155.npy +tests/data/ljspeech/wavs/LJ038-0099.wav|tests/data/ljspeech/wavs/LJ038-0099.npy +tests/data/ljspeech/wavs/LJ019-0269.wav|tests/data/ljspeech/wavs/LJ019-0269.npy +tests/data/ljspeech/wavs/LJ002-0155.wav|tests/data/ljspeech/wavs/LJ002-0155.npy +tests/data/ljspeech/wavs/LJ044-0174.wav|tests/data/ljspeech/wavs/LJ044-0174.npy +tests/data/ljspeech/wavs/LJ041-0117.wav|tests/data/ljspeech/wavs/LJ041-0117.npy +tests/data/ljspeech/wavs/LJ018-0231.wav|tests/data/ljspeech/wavs/LJ018-0231.npy +tests/data/ljspeech/wavs/LJ003-0197.wav|tests/data/ljspeech/wavs/LJ003-0197.npy +tests/data/ljspeech/wavs/LJ010-0288.wav|tests/data/ljspeech/wavs/LJ010-0288.npy +tests/data/ljspeech/wavs/LJ030-0061.wav|tests/data/ljspeech/wavs/LJ030-0061.npy +tests/data/ljspeech/wavs/LJ039-0225.wav|tests/data/ljspeech/wavs/LJ039-0225.npy +tests/data/ljspeech/wavs/LJ014-0081.wav|tests/data/ljspeech/wavs/LJ014-0081.npy +tests/data/ljspeech/wavs/LJ042-0144.wav|tests/data/ljspeech/wavs/LJ042-0144.npy +tests/data/ljspeech/wavs/LJ028-0432.wav|tests/data/ljspeech/wavs/LJ028-0432.npy +tests/data/ljspeech/wavs/LJ018-0016.wav|tests/data/ljspeech/wavs/LJ018-0016.npy +tests/data/ljspeech/wavs/LJ030-0161.wav|tests/data/ljspeech/wavs/LJ030-0161.npy +tests/data/ljspeech/wavs/LJ025-0041.wav|tests/data/ljspeech/wavs/LJ025-0041.npy +tests/data/ljspeech/wavs/LJ005-0053.wav|tests/data/ljspeech/wavs/LJ005-0053.npy +tests/data/ljspeech/wavs/LJ007-0105.wav|tests/data/ljspeech/wavs/LJ007-0105.npy +tests/data/ljspeech/wavs/LJ017-0046.wav|tests/data/ljspeech/wavs/LJ017-0046.npy +tests/data/ljspeech/wavs/LJ050-0184.wav|tests/data/ljspeech/wavs/LJ050-0184.npy +tests/data/ljspeech/wavs/LJ023-0022.wav|tests/data/ljspeech/wavs/LJ023-0022.npy +tests/data/ljspeech/wavs/LJ013-0189.wav|tests/data/ljspeech/wavs/LJ013-0189.npy +tests/data/ljspeech/wavs/LJ048-0135.wav|tests/data/ljspeech/wavs/LJ048-0135.npy +tests/data/ljspeech/wavs/LJ019-0355.wav|tests/data/ljspeech/wavs/LJ019-0355.npy +tests/data/ljspeech/wavs/LJ036-0035.wav|tests/data/ljspeech/wavs/LJ036-0035.npy +tests/data/ljspeech/wavs/LJ017-0156.wav|tests/data/ljspeech/wavs/LJ017-0156.npy +tests/data/ljspeech/wavs/LJ017-0095.wav|tests/data/ljspeech/wavs/LJ017-0095.npy +tests/data/ljspeech/wavs/LJ023-0122.wav|tests/data/ljspeech/wavs/LJ023-0122.npy +tests/data/ljspeech/wavs/LJ028-0500.wav|tests/data/ljspeech/wavs/LJ028-0500.npy +tests/data/ljspeech/wavs/LJ042-0094.wav|tests/data/ljspeech/wavs/LJ042-0094.npy +tests/data/ljspeech/wavs/LJ013-0138.wav|tests/data/ljspeech/wavs/LJ013-0138.npy +tests/data/ljspeech/wavs/LJ002-0311.wav|tests/data/ljspeech/wavs/LJ002-0311.npy +tests/data/ljspeech/wavs/LJ028-0454.wav|tests/data/ljspeech/wavs/LJ028-0454.npy +tests/data/ljspeech/wavs/LJ035-0136.wav|tests/data/ljspeech/wavs/LJ035-0136.npy +tests/data/ljspeech/wavs/LJ007-0191.wav|tests/data/ljspeech/wavs/LJ007-0191.npy +tests/data/ljspeech/wavs/LJ018-0166.wav|tests/data/ljspeech/wavs/LJ018-0166.npy +tests/data/ljspeech/wavs/LJ017-0040.wav|tests/data/ljspeech/wavs/LJ017-0040.npy +tests/data/ljspeech/wavs/LJ018-0067.wav|tests/data/ljspeech/wavs/LJ018-0067.npy +tests/data/ljspeech/wavs/LJ007-0015.wav|tests/data/ljspeech/wavs/LJ007-0015.npy +tests/data/ljspeech/wavs/LJ017-0027.wav|tests/data/ljspeech/wavs/LJ017-0027.npy +tests/data/ljspeech/wavs/LJ047-0109.wav|tests/data/ljspeech/wavs/LJ047-0109.npy +tests/data/ljspeech/wavs/LJ034-0163.wav|tests/data/ljspeech/wavs/LJ034-0163.npy +tests/data/ljspeech/wavs/LJ028-0164.wav|tests/data/ljspeech/wavs/LJ028-0164.npy +tests/data/ljspeech/wavs/LJ023-0009.wav|tests/data/ljspeech/wavs/LJ023-0009.npy +tests/data/ljspeech/wavs/LJ034-0215.wav|tests/data/ljspeech/wavs/LJ034-0215.npy +tests/data/ljspeech/wavs/LJ015-0008.wav|tests/data/ljspeech/wavs/LJ015-0008.npy +tests/data/ljspeech/wavs/LJ044-0146.wav|tests/data/ljspeech/wavs/LJ044-0146.npy +tests/data/ljspeech/wavs/LJ032-0050.wav|tests/data/ljspeech/wavs/LJ032-0050.npy +tests/data/ljspeech/wavs/LJ045-0125.wav|tests/data/ljspeech/wavs/LJ045-0125.npy +tests/data/ljspeech/wavs/LJ037-0240.wav|tests/data/ljspeech/wavs/LJ037-0240.npy +tests/data/ljspeech/wavs/LJ016-0181.wav|tests/data/ljspeech/wavs/LJ016-0181.npy +tests/data/ljspeech/wavs/LJ021-0183.wav|tests/data/ljspeech/wavs/LJ021-0183.npy +tests/data/ljspeech/wavs/LJ025-0001.wav|tests/data/ljspeech/wavs/LJ025-0001.npy +tests/data/ljspeech/wavs/LJ032-0255.wav|tests/data/ljspeech/wavs/LJ032-0255.npy +tests/data/ljspeech/wavs/LJ031-0098.wav|tests/data/ljspeech/wavs/LJ031-0098.npy +tests/data/ljspeech/wavs/LJ029-0113.wav|tests/data/ljspeech/wavs/LJ029-0113.npy +tests/data/ljspeech/wavs/LJ005-0247.wav|tests/data/ljspeech/wavs/LJ005-0247.npy +tests/data/ljspeech/wavs/LJ014-0165.wav|tests/data/ljspeech/wavs/LJ014-0165.npy +tests/data/ljspeech/wavs/LJ024-0134.wav|tests/data/ljspeech/wavs/LJ024-0134.npy +tests/data/ljspeech/wavs/LJ038-0121.wav|tests/data/ljspeech/wavs/LJ038-0121.npy +tests/data/ljspeech/wavs/LJ006-0147.wav|tests/data/ljspeech/wavs/LJ006-0147.npy +tests/data/ljspeech/wavs/LJ031-0094.wav|tests/data/ljspeech/wavs/LJ031-0094.npy +tests/data/ljspeech/wavs/LJ015-0252.wav|tests/data/ljspeech/wavs/LJ015-0252.npy +tests/data/ljspeech/wavs/LJ021-0147.wav|tests/data/ljspeech/wavs/LJ021-0147.npy +tests/data/ljspeech/wavs/LJ010-0044.wav|tests/data/ljspeech/wavs/LJ010-0044.npy +tests/data/ljspeech/wavs/LJ045-0098.wav|tests/data/ljspeech/wavs/LJ045-0098.npy +tests/data/ljspeech/wavs/LJ016-0100.wav|tests/data/ljspeech/wavs/LJ016-0100.npy +tests/data/ljspeech/wavs/LJ015-0225.wav|tests/data/ljspeech/wavs/LJ015-0225.npy +tests/data/ljspeech/wavs/LJ004-0054.wav|tests/data/ljspeech/wavs/LJ004-0054.npy +tests/data/ljspeech/wavs/LJ004-0160.wav|tests/data/ljspeech/wavs/LJ004-0160.npy +tests/data/ljspeech/wavs/LJ018-0157.wav|tests/data/ljspeech/wavs/LJ018-0157.npy +tests/data/ljspeech/wavs/LJ010-0266.wav|tests/data/ljspeech/wavs/LJ010-0266.npy +tests/data/ljspeech/wavs/LJ027-0159.wav|tests/data/ljspeech/wavs/LJ027-0159.npy +tests/data/ljspeech/wavs/LJ034-0134.wav|tests/data/ljspeech/wavs/LJ034-0134.npy +tests/data/ljspeech/wavs/LJ010-0035.wav|tests/data/ljspeech/wavs/LJ010-0035.npy +tests/data/ljspeech/wavs/LJ014-0037.wav|tests/data/ljspeech/wavs/LJ014-0037.npy +tests/data/ljspeech/wavs/LJ024-0091.wav|tests/data/ljspeech/wavs/LJ024-0091.npy +tests/data/ljspeech/wavs/LJ002-0129.wav|tests/data/ljspeech/wavs/LJ002-0129.npy +tests/data/ljspeech/wavs/LJ040-0121.wav|tests/data/ljspeech/wavs/LJ040-0121.npy +tests/data/ljspeech/wavs/LJ048-0221.wav|tests/data/ljspeech/wavs/LJ048-0221.npy +tests/data/ljspeech/wavs/LJ005-0057.wav|tests/data/ljspeech/wavs/LJ005-0057.npy +tests/data/ljspeech/wavs/LJ029-0180.wav|tests/data/ljspeech/wavs/LJ029-0180.npy +tests/data/ljspeech/wavs/LJ048-0232.wav|tests/data/ljspeech/wavs/LJ048-0232.npy +tests/data/ljspeech/wavs/LJ030-0242.wav|tests/data/ljspeech/wavs/LJ030-0242.npy +tests/data/ljspeech/wavs/LJ021-0089.wav|tests/data/ljspeech/wavs/LJ021-0089.npy +tests/data/ljspeech/wavs/LJ039-0140.wav|tests/data/ljspeech/wavs/LJ039-0140.npy +tests/data/ljspeech/wavs/LJ038-0006.wav|tests/data/ljspeech/wavs/LJ038-0006.npy +tests/data/ljspeech/wavs/LJ003-0164.wav|tests/data/ljspeech/wavs/LJ003-0164.npy +tests/data/ljspeech/wavs/LJ009-0207.wav|tests/data/ljspeech/wavs/LJ009-0207.npy +tests/data/ljspeech/wavs/LJ006-0257.wav|tests/data/ljspeech/wavs/LJ006-0257.npy +tests/data/ljspeech/wavs/LJ028-0193.wav|tests/data/ljspeech/wavs/LJ028-0193.npy +tests/data/ljspeech/wavs/LJ033-0147.wav|tests/data/ljspeech/wavs/LJ033-0147.npy +tests/data/ljspeech/wavs/LJ028-0119.wav|tests/data/ljspeech/wavs/LJ028-0119.npy +tests/data/ljspeech/wavs/LJ045-0160.wav|tests/data/ljspeech/wavs/LJ045-0160.npy +tests/data/ljspeech/wavs/LJ008-0230.wav|tests/data/ljspeech/wavs/LJ008-0230.npy +tests/data/ljspeech/wavs/LJ007-0196.wav|tests/data/ljspeech/wavs/LJ007-0196.npy +tests/data/ljspeech/wavs/LJ015-0220.wav|tests/data/ljspeech/wavs/LJ015-0220.npy +tests/data/ljspeech/wavs/LJ036-0112.wav|tests/data/ljspeech/wavs/LJ036-0112.npy +tests/data/ljspeech/wavs/LJ016-0420.wav|tests/data/ljspeech/wavs/LJ016-0420.npy +tests/data/ljspeech/wavs/LJ027-0073.wav|tests/data/ljspeech/wavs/LJ027-0073.npy +tests/data/ljspeech/wavs/LJ043-0086.wav|tests/data/ljspeech/wavs/LJ043-0086.npy +tests/data/ljspeech/wavs/LJ050-0025.wav|tests/data/ljspeech/wavs/LJ050-0025.npy +tests/data/ljspeech/wavs/LJ010-0149.wav|tests/data/ljspeech/wavs/LJ010-0149.npy +tests/data/ljspeech/wavs/LJ020-0028.wav|tests/data/ljspeech/wavs/LJ020-0028.npy +tests/data/ljspeech/wavs/LJ018-0332.wav|tests/data/ljspeech/wavs/LJ018-0332.npy +tests/data/ljspeech/wavs/LJ011-0150.wav|tests/data/ljspeech/wavs/LJ011-0150.npy +tests/data/ljspeech/wavs/LJ028-0380.wav|tests/data/ljspeech/wavs/LJ028-0380.npy +tests/data/ljspeech/wavs/LJ033-0006.wav|tests/data/ljspeech/wavs/LJ033-0006.npy +tests/data/ljspeech/wavs/LJ030-0140.wav|tests/data/ljspeech/wavs/LJ030-0140.npy +tests/data/ljspeech/wavs/LJ036-0139.wav|tests/data/ljspeech/wavs/LJ036-0139.npy +tests/data/ljspeech/wavs/LJ046-0125.wav|tests/data/ljspeech/wavs/LJ046-0125.npy +tests/data/ljspeech/wavs/LJ009-0154.wav|tests/data/ljspeech/wavs/LJ009-0154.npy +tests/data/ljspeech/wavs/LJ005-0132.wav|tests/data/ljspeech/wavs/LJ005-0132.npy +tests/data/ljspeech/wavs/LJ039-0144.wav|tests/data/ljspeech/wavs/LJ039-0144.npy +tests/data/ljspeech/wavs/LJ014-0011.wav|tests/data/ljspeech/wavs/LJ014-0011.npy +tests/data/ljspeech/wavs/LJ012-0161.wav|tests/data/ljspeech/wavs/LJ012-0161.npy +tests/data/ljspeech/wavs/LJ041-0071.wav|tests/data/ljspeech/wavs/LJ041-0071.npy +tests/data/ljspeech/wavs/LJ003-0061.wav|tests/data/ljspeech/wavs/LJ003-0061.npy +tests/data/ljspeech/wavs/LJ010-0297.wav|tests/data/ljspeech/wavs/LJ010-0297.npy +tests/data/ljspeech/wavs/LJ033-0082.wav|tests/data/ljspeech/wavs/LJ033-0082.npy +tests/data/ljspeech/wavs/LJ015-0030.wav|tests/data/ljspeech/wavs/LJ015-0030.npy +tests/data/ljspeech/wavs/LJ024-0123.wav|tests/data/ljspeech/wavs/LJ024-0123.npy +tests/data/ljspeech/wavs/LJ039-0222.wav|tests/data/ljspeech/wavs/LJ039-0222.npy +tests/data/ljspeech/wavs/LJ025-0160.wav|tests/data/ljspeech/wavs/LJ025-0160.npy +tests/data/ljspeech/wavs/LJ020-0015.wav|tests/data/ljspeech/wavs/LJ020-0015.npy +tests/data/ljspeech/wavs/LJ011-0056.wav|tests/data/ljspeech/wavs/LJ011-0056.npy +tests/data/ljspeech/wavs/LJ013-0023.wav|tests/data/ljspeech/wavs/LJ013-0023.npy +tests/data/ljspeech/wavs/LJ050-0203.wav|tests/data/ljspeech/wavs/LJ050-0203.npy +tests/data/ljspeech/wavs/LJ022-0108.wav|tests/data/ljspeech/wavs/LJ022-0108.npy +tests/data/ljspeech/wavs/LJ029-0072.wav|tests/data/ljspeech/wavs/LJ029-0072.npy +tests/data/ljspeech/wavs/LJ002-0076.wav|tests/data/ljspeech/wavs/LJ002-0076.npy +tests/data/ljspeech/wavs/LJ004-0143.wav|tests/data/ljspeech/wavs/LJ004-0143.npy +tests/data/ljspeech/wavs/LJ005-0207.wav|tests/data/ljspeech/wavs/LJ005-0207.npy +tests/data/ljspeech/wavs/LJ019-0200.wav|tests/data/ljspeech/wavs/LJ019-0200.npy +tests/data/ljspeech/wavs/LJ017-0087.wav|tests/data/ljspeech/wavs/LJ017-0087.npy +tests/data/ljspeech/wavs/LJ010-0007.wav|tests/data/ljspeech/wavs/LJ010-0007.npy +tests/data/ljspeech/wavs/LJ037-0030.wav|tests/data/ljspeech/wavs/LJ037-0030.npy +tests/data/ljspeech/wavs/LJ022-0139.wav|tests/data/ljspeech/wavs/LJ022-0139.npy +tests/data/ljspeech/wavs/LJ017-0123.wav|tests/data/ljspeech/wavs/LJ017-0123.npy +tests/data/ljspeech/wavs/LJ003-0017.wav|tests/data/ljspeech/wavs/LJ003-0017.npy +tests/data/ljspeech/wavs/LJ032-0017.wav|tests/data/ljspeech/wavs/LJ032-0017.npy +tests/data/ljspeech/wavs/LJ010-0306.wav|tests/data/ljspeech/wavs/LJ010-0306.npy +tests/data/ljspeech/wavs/LJ046-0163.wav|tests/data/ljspeech/wavs/LJ046-0163.npy +tests/data/ljspeech/wavs/LJ023-0021.wav|tests/data/ljspeech/wavs/LJ023-0021.npy +tests/data/ljspeech/wavs/LJ036-0171.wav|tests/data/ljspeech/wavs/LJ036-0171.npy +tests/data/ljspeech/wavs/LJ004-0061.wav|tests/data/ljspeech/wavs/LJ004-0061.npy +tests/data/ljspeech/wavs/LJ031-0117.wav|tests/data/ljspeech/wavs/LJ031-0117.npy +tests/data/ljspeech/wavs/LJ047-0039.wav|tests/data/ljspeech/wavs/LJ047-0039.npy +tests/data/ljspeech/wavs/LJ019-0298.wav|tests/data/ljspeech/wavs/LJ019-0298.npy +tests/data/ljspeech/wavs/LJ013-0101.wav|tests/data/ljspeech/wavs/LJ013-0101.npy +tests/data/ljspeech/wavs/LJ021-0092.wav|tests/data/ljspeech/wavs/LJ021-0092.npy +tests/data/ljspeech/wavs/LJ026-0111.wav|tests/data/ljspeech/wavs/LJ026-0111.npy +tests/data/ljspeech/wavs/LJ019-0204.wav|tests/data/ljspeech/wavs/LJ019-0204.npy +tests/data/ljspeech/wavs/LJ027-0017.wav|tests/data/ljspeech/wavs/LJ027-0017.npy +tests/data/ljspeech/wavs/LJ017-0138.wav|tests/data/ljspeech/wavs/LJ017-0138.npy +tests/data/ljspeech/wavs/LJ031-0177.wav|tests/data/ljspeech/wavs/LJ031-0177.npy +tests/data/ljspeech/wavs/LJ047-0121.wav|tests/data/ljspeech/wavs/LJ047-0121.npy +tests/data/ljspeech/wavs/LJ043-0155.wav|tests/data/ljspeech/wavs/LJ043-0155.npy +tests/data/ljspeech/wavs/LJ019-0059.wav|tests/data/ljspeech/wavs/LJ019-0059.npy +tests/data/ljspeech/wavs/LJ014-0191.wav|tests/data/ljspeech/wavs/LJ014-0191.npy +tests/data/ljspeech/wavs/LJ016-0287.wav|tests/data/ljspeech/wavs/LJ016-0287.npy +tests/data/ljspeech/wavs/LJ016-0341.wav|tests/data/ljspeech/wavs/LJ016-0341.npy +tests/data/ljspeech/wavs/LJ037-0200.wav|tests/data/ljspeech/wavs/LJ037-0200.npy +tests/data/ljspeech/wavs/LJ021-0178.wav|tests/data/ljspeech/wavs/LJ021-0178.npy +tests/data/ljspeech/wavs/LJ036-0214.wav|tests/data/ljspeech/wavs/LJ036-0214.npy +tests/data/ljspeech/wavs/LJ018-0339.wav|tests/data/ljspeech/wavs/LJ018-0339.npy +tests/data/ljspeech/wavs/LJ037-0097.wav|tests/data/ljspeech/wavs/LJ037-0097.npy +tests/data/ljspeech/wavs/LJ036-0218.wav|tests/data/ljspeech/wavs/LJ036-0218.npy +tests/data/ljspeech/wavs/LJ023-0085.wav|tests/data/ljspeech/wavs/LJ023-0085.npy +tests/data/ljspeech/wavs/LJ049-0124.wav|tests/data/ljspeech/wavs/LJ049-0124.npy +tests/data/ljspeech/wavs/LJ035-0135.wav|tests/data/ljspeech/wavs/LJ035-0135.npy +tests/data/ljspeech/wavs/LJ029-0155.wav|tests/data/ljspeech/wavs/LJ029-0155.npy +tests/data/ljspeech/wavs/LJ001-0174.wav|tests/data/ljspeech/wavs/LJ001-0174.npy +tests/data/ljspeech/wavs/LJ028-0363.wav|tests/data/ljspeech/wavs/LJ028-0363.npy +tests/data/ljspeech/wavs/LJ046-0134.wav|tests/data/ljspeech/wavs/LJ046-0134.npy +tests/data/ljspeech/wavs/LJ015-0129.wav|tests/data/ljspeech/wavs/LJ015-0129.npy +tests/data/ljspeech/wavs/LJ046-0161.wav|tests/data/ljspeech/wavs/LJ046-0161.npy +tests/data/ljspeech/wavs/LJ042-0043.wav|tests/data/ljspeech/wavs/LJ042-0043.npy +tests/data/ljspeech/wavs/LJ020-0071.wav|tests/data/ljspeech/wavs/LJ020-0071.npy +tests/data/ljspeech/wavs/LJ020-0025.wav|tests/data/ljspeech/wavs/LJ020-0025.npy +tests/data/ljspeech/wavs/LJ043-0071.wav|tests/data/ljspeech/wavs/LJ043-0071.npy +tests/data/ljspeech/wavs/LJ021-0189.wav|tests/data/ljspeech/wavs/LJ021-0189.npy +tests/data/ljspeech/wavs/LJ022-0065.wav|tests/data/ljspeech/wavs/LJ022-0065.npy +tests/data/ljspeech/wavs/LJ015-0102.wav|tests/data/ljspeech/wavs/LJ015-0102.npy +tests/data/ljspeech/wavs/LJ048-0050.wav|tests/data/ljspeech/wavs/LJ048-0050.npy +tests/data/ljspeech/wavs/LJ012-0274.wav|tests/data/ljspeech/wavs/LJ012-0274.npy +tests/data/ljspeech/wavs/LJ013-0002.wav|tests/data/ljspeech/wavs/LJ013-0002.npy +tests/data/ljspeech/wavs/LJ006-0227.wav|tests/data/ljspeech/wavs/LJ006-0227.npy +tests/data/ljspeech/wavs/LJ039-0072.wav|tests/data/ljspeech/wavs/LJ039-0072.npy +tests/data/ljspeech/wavs/LJ008-0226.wav|tests/data/ljspeech/wavs/LJ008-0226.npy +tests/data/ljspeech/wavs/LJ039-0080.wav|tests/data/ljspeech/wavs/LJ039-0080.npy +tests/data/ljspeech/wavs/LJ003-0134.wav|tests/data/ljspeech/wavs/LJ003-0134.npy +tests/data/ljspeech/wavs/LJ048-0150.wav|tests/data/ljspeech/wavs/LJ048-0150.npy +tests/data/ljspeech/wavs/LJ002-0191.wav|tests/data/ljspeech/wavs/LJ002-0191.npy +tests/data/ljspeech/wavs/LJ045-0030.wav|tests/data/ljspeech/wavs/LJ045-0030.npy +tests/data/ljspeech/wavs/LJ021-0032.wav|tests/data/ljspeech/wavs/LJ021-0032.npy +tests/data/ljspeech/wavs/LJ010-0118.wav|tests/data/ljspeech/wavs/LJ010-0118.npy +tests/data/ljspeech/wavs/LJ024-0033.wav|tests/data/ljspeech/wavs/LJ024-0033.npy +tests/data/ljspeech/wavs/LJ012-0002.wav|tests/data/ljspeech/wavs/LJ012-0002.npy +tests/data/ljspeech/wavs/LJ046-0014.wav|tests/data/ljspeech/wavs/LJ046-0014.npy +tests/data/ljspeech/wavs/LJ028-0265.wav|tests/data/ljspeech/wavs/LJ028-0265.npy +tests/data/ljspeech/wavs/LJ007-0006.wav|tests/data/ljspeech/wavs/LJ007-0006.npy +tests/data/ljspeech/wavs/LJ006-0291.wav|tests/data/ljspeech/wavs/LJ006-0291.npy +tests/data/ljspeech/wavs/LJ008-0218.wav|tests/data/ljspeech/wavs/LJ008-0218.npy +tests/data/ljspeech/wavs/LJ008-0180.wav|tests/data/ljspeech/wavs/LJ008-0180.npy +tests/data/ljspeech/wavs/LJ016-0204.wav|tests/data/ljspeech/wavs/LJ016-0204.npy +tests/data/ljspeech/wavs/LJ018-0130.wav|tests/data/ljspeech/wavs/LJ018-0130.npy +tests/data/ljspeech/wavs/LJ036-0077.wav|tests/data/ljspeech/wavs/LJ036-0077.npy +tests/data/ljspeech/wavs/LJ028-0134.wav|tests/data/ljspeech/wavs/LJ028-0134.npy +tests/data/ljspeech/wavs/LJ046-0057.wav|tests/data/ljspeech/wavs/LJ046-0057.npy +tests/data/ljspeech/wavs/LJ045-0141.wav|tests/data/ljspeech/wavs/LJ045-0141.npy +tests/data/ljspeech/wavs/LJ041-0003.wav|tests/data/ljspeech/wavs/LJ041-0003.npy +tests/data/ljspeech/wavs/LJ029-0154.wav|tests/data/ljspeech/wavs/LJ029-0154.npy +tests/data/ljspeech/wavs/LJ046-0170.wav|tests/data/ljspeech/wavs/LJ046-0170.npy +tests/data/ljspeech/wavs/LJ023-0025.wav|tests/data/ljspeech/wavs/LJ023-0025.npy +tests/data/ljspeech/wavs/LJ038-0035.wav|tests/data/ljspeech/wavs/LJ038-0035.npy +tests/data/ljspeech/wavs/LJ037-0239.wav|tests/data/ljspeech/wavs/LJ037-0239.npy +tests/data/ljspeech/wavs/LJ004-0101.wav|tests/data/ljspeech/wavs/LJ004-0101.npy +tests/data/ljspeech/wavs/LJ015-0110.wav|tests/data/ljspeech/wavs/LJ015-0110.npy +tests/data/ljspeech/wavs/LJ036-0127.wav|tests/data/ljspeech/wavs/LJ036-0127.npy +tests/data/ljspeech/wavs/LJ044-0143.wav|tests/data/ljspeech/wavs/LJ044-0143.npy +tests/data/ljspeech/wavs/LJ024-0020.wav|tests/data/ljspeech/wavs/LJ024-0020.npy +tests/data/ljspeech/wavs/LJ014-0288.wav|tests/data/ljspeech/wavs/LJ014-0288.npy +tests/data/ljspeech/wavs/LJ028-0336.wav|tests/data/ljspeech/wavs/LJ028-0336.npy +tests/data/ljspeech/wavs/LJ041-0005.wav|tests/data/ljspeech/wavs/LJ041-0005.npy +tests/data/ljspeech/wavs/LJ003-0058.wav|tests/data/ljspeech/wavs/LJ003-0058.npy +tests/data/ljspeech/wavs/LJ014-0227.wav|tests/data/ljspeech/wavs/LJ014-0227.npy +tests/data/ljspeech/wavs/LJ015-0209.wav|tests/data/ljspeech/wavs/LJ015-0209.npy +tests/data/ljspeech/wavs/LJ045-0172.wav|tests/data/ljspeech/wavs/LJ045-0172.npy +tests/data/ljspeech/wavs/LJ038-0083.wav|tests/data/ljspeech/wavs/LJ038-0083.npy +tests/data/ljspeech/wavs/LJ016-0126.wav|tests/data/ljspeech/wavs/LJ016-0126.npy +tests/data/ljspeech/wavs/LJ004-0099.wav|tests/data/ljspeech/wavs/LJ004-0099.npy +tests/data/ljspeech/wavs/LJ050-0205.wav|tests/data/ljspeech/wavs/LJ050-0205.npy +tests/data/ljspeech/wavs/LJ050-0236.wav|tests/data/ljspeech/wavs/LJ050-0236.npy +tests/data/ljspeech/wavs/LJ038-0279.wav|tests/data/ljspeech/wavs/LJ038-0279.npy +tests/data/ljspeech/wavs/LJ019-0389.wav|tests/data/ljspeech/wavs/LJ019-0389.npy +tests/data/ljspeech/wavs/LJ032-0147.wav|tests/data/ljspeech/wavs/LJ032-0147.npy +tests/data/ljspeech/wavs/LJ004-0092.wav|tests/data/ljspeech/wavs/LJ004-0092.npy +tests/data/ljspeech/wavs/LJ047-0070.wav|tests/data/ljspeech/wavs/LJ047-0070.npy +tests/data/ljspeech/wavs/LJ013-0013.wav|tests/data/ljspeech/wavs/LJ013-0013.npy +tests/data/ljspeech/wavs/LJ047-0176.wav|tests/data/ljspeech/wavs/LJ047-0176.npy +tests/data/ljspeech/wavs/LJ048-0002.wav|tests/data/ljspeech/wavs/LJ048-0002.npy +tests/data/ljspeech/wavs/LJ049-0213.wav|tests/data/ljspeech/wavs/LJ049-0213.npy +tests/data/ljspeech/wavs/LJ039-0082.wav|tests/data/ljspeech/wavs/LJ039-0082.npy +tests/data/ljspeech/wavs/LJ031-0146.wav|tests/data/ljspeech/wavs/LJ031-0146.npy +tests/data/ljspeech/wavs/LJ016-0312.wav|tests/data/ljspeech/wavs/LJ016-0312.npy +tests/data/ljspeech/wavs/LJ008-0114.wav|tests/data/ljspeech/wavs/LJ008-0114.npy +tests/data/ljspeech/wavs/LJ023-0062.wav|tests/data/ljspeech/wavs/LJ023-0062.npy +tests/data/ljspeech/wavs/LJ011-0020.wav|tests/data/ljspeech/wavs/LJ011-0020.npy +tests/data/ljspeech/wavs/LJ024-0064.wav|tests/data/ljspeech/wavs/LJ024-0064.npy +tests/data/ljspeech/wavs/LJ005-0037.wav|tests/data/ljspeech/wavs/LJ005-0037.npy +tests/data/ljspeech/wavs/LJ043-0112.wav|tests/data/ljspeech/wavs/LJ043-0112.npy +tests/data/ljspeech/wavs/LJ024-0038.wav|tests/data/ljspeech/wavs/LJ024-0038.npy +tests/data/ljspeech/wavs/LJ023-0011.wav|tests/data/ljspeech/wavs/LJ023-0011.npy +tests/data/ljspeech/wavs/LJ006-0208.wav|tests/data/ljspeech/wavs/LJ006-0208.npy +tests/data/ljspeech/wavs/LJ025-0051.wav|tests/data/ljspeech/wavs/LJ025-0051.npy +tests/data/ljspeech/wavs/LJ035-0187.wav|tests/data/ljspeech/wavs/LJ035-0187.npy +tests/data/ljspeech/wavs/LJ028-0160.wav|tests/data/ljspeech/wavs/LJ028-0160.npy +tests/data/ljspeech/wavs/LJ041-0091.wav|tests/data/ljspeech/wavs/LJ041-0091.npy +tests/data/ljspeech/wavs/LJ008-0161.wav|tests/data/ljspeech/wavs/LJ008-0161.npy +tests/data/ljspeech/wavs/LJ017-0042.wav|tests/data/ljspeech/wavs/LJ017-0042.npy +tests/data/ljspeech/wavs/LJ036-0151.wav|tests/data/ljspeech/wavs/LJ036-0151.npy +tests/data/ljspeech/wavs/LJ032-0229.wav|tests/data/ljspeech/wavs/LJ032-0229.npy +tests/data/ljspeech/wavs/LJ008-0271.wav|tests/data/ljspeech/wavs/LJ008-0271.npy +tests/data/ljspeech/wavs/LJ047-0210.wav|tests/data/ljspeech/wavs/LJ047-0210.npy +tests/data/ljspeech/wavs/LJ028-0224.wav|tests/data/ljspeech/wavs/LJ028-0224.npy +tests/data/ljspeech/wavs/LJ024-0034.wav|tests/data/ljspeech/wavs/LJ024-0034.npy +tests/data/ljspeech/wavs/LJ009-0088.wav|tests/data/ljspeech/wavs/LJ009-0088.npy +tests/data/ljspeech/wavs/LJ031-0062.wav|tests/data/ljspeech/wavs/LJ031-0062.npy +tests/data/ljspeech/wavs/LJ037-0237.wav|tests/data/ljspeech/wavs/LJ037-0237.npy +tests/data/ljspeech/wavs/LJ040-0128.wav|tests/data/ljspeech/wavs/LJ040-0128.npy +tests/data/ljspeech/wavs/LJ032-0061.wav|tests/data/ljspeech/wavs/LJ032-0061.npy +tests/data/ljspeech/wavs/LJ050-0107.wav|tests/data/ljspeech/wavs/LJ050-0107.npy +tests/data/ljspeech/wavs/LJ007-0033.wav|tests/data/ljspeech/wavs/LJ007-0033.npy +tests/data/ljspeech/wavs/LJ037-0222.wav|tests/data/ljspeech/wavs/LJ037-0222.npy +tests/data/ljspeech/wavs/LJ016-0409.wav|tests/data/ljspeech/wavs/LJ016-0409.npy +tests/data/ljspeech/wavs/LJ015-0179.wav|tests/data/ljspeech/wavs/LJ015-0179.npy +tests/data/ljspeech/wavs/LJ016-0187.wav|tests/data/ljspeech/wavs/LJ016-0187.npy +tests/data/ljspeech/wavs/LJ007-0071.wav|tests/data/ljspeech/wavs/LJ007-0071.npy +tests/data/ljspeech/wavs/LJ022-0060.wav|tests/data/ljspeech/wavs/LJ022-0060.npy +tests/data/ljspeech/wavs/LJ047-0135.wav|tests/data/ljspeech/wavs/LJ047-0135.npy +tests/data/ljspeech/wavs/LJ040-0090.wav|tests/data/ljspeech/wavs/LJ040-0090.npy +tests/data/ljspeech/wavs/LJ011-0044.wav|tests/data/ljspeech/wavs/LJ011-0044.npy +tests/data/ljspeech/wavs/LJ015-0279.wav|tests/data/ljspeech/wavs/LJ015-0279.npy +tests/data/ljspeech/wavs/LJ014-0237.wav|tests/data/ljspeech/wavs/LJ014-0237.npy +tests/data/ljspeech/wavs/LJ014-0202.wav|tests/data/ljspeech/wavs/LJ014-0202.npy +tests/data/ljspeech/wavs/LJ028-0112.wav|tests/data/ljspeech/wavs/LJ028-0112.npy +tests/data/ljspeech/wavs/LJ010-0094.wav|tests/data/ljspeech/wavs/LJ010-0094.npy +tests/data/ljspeech/wavs/LJ015-0224.wav|tests/data/ljspeech/wavs/LJ015-0224.npy +tests/data/ljspeech/wavs/LJ009-0301.wav|tests/data/ljspeech/wavs/LJ009-0301.npy +tests/data/ljspeech/wavs/LJ012-0228.wav|tests/data/ljspeech/wavs/LJ012-0228.npy +tests/data/ljspeech/wavs/LJ047-0219.wav|tests/data/ljspeech/wavs/LJ047-0219.npy +tests/data/ljspeech/wavs/LJ025-0130.wav|tests/data/ljspeech/wavs/LJ025-0130.npy +tests/data/ljspeech/wavs/LJ038-0033.wav|tests/data/ljspeech/wavs/LJ038-0033.npy +tests/data/ljspeech/wavs/LJ037-0061.wav|tests/data/ljspeech/wavs/LJ037-0061.npy +tests/data/ljspeech/wavs/LJ025-0105.wav|tests/data/ljspeech/wavs/LJ025-0105.npy +tests/data/ljspeech/wavs/LJ027-0064.wav|tests/data/ljspeech/wavs/LJ027-0064.npy +tests/data/ljspeech/wavs/LJ021-0059.wav|tests/data/ljspeech/wavs/LJ021-0059.npy +tests/data/ljspeech/wavs/LJ011-0234.wav|tests/data/ljspeech/wavs/LJ011-0234.npy +tests/data/ljspeech/wavs/LJ009-0010.wav|tests/data/ljspeech/wavs/LJ009-0010.npy +tests/data/ljspeech/wavs/LJ015-0161.wav|tests/data/ljspeech/wavs/LJ015-0161.npy +tests/data/ljspeech/wavs/LJ012-0025.wav|tests/data/ljspeech/wavs/LJ012-0025.npy +tests/data/ljspeech/wavs/LJ032-0075.wav|tests/data/ljspeech/wavs/LJ032-0075.npy +tests/data/ljspeech/wavs/LJ029-0185.wav|tests/data/ljspeech/wavs/LJ029-0185.npy +tests/data/ljspeech/wavs/LJ046-0151.wav|tests/data/ljspeech/wavs/LJ046-0151.npy +tests/data/ljspeech/wavs/LJ044-0205.wav|tests/data/ljspeech/wavs/LJ044-0205.npy +tests/data/ljspeech/wavs/LJ023-0096.wav|tests/data/ljspeech/wavs/LJ023-0096.npy +tests/data/ljspeech/wavs/LJ043-0052.wav|tests/data/ljspeech/wavs/LJ043-0052.npy +tests/data/ljspeech/wavs/LJ049-0003.wav|tests/data/ljspeech/wavs/LJ049-0003.npy +tests/data/ljspeech/wavs/LJ048-0156.wav|tests/data/ljspeech/wavs/LJ048-0156.npy +tests/data/ljspeech/wavs/LJ019-0180.wav|tests/data/ljspeech/wavs/LJ019-0180.npy +tests/data/ljspeech/wavs/LJ047-0002.wav|tests/data/ljspeech/wavs/LJ047-0002.npy +tests/data/ljspeech/wavs/LJ042-0118.wav|tests/data/ljspeech/wavs/LJ042-0118.npy +tests/data/ljspeech/wavs/LJ034-0105.wav|tests/data/ljspeech/wavs/LJ034-0105.npy +tests/data/ljspeech/wavs/LJ005-0178.wav|tests/data/ljspeech/wavs/LJ005-0178.npy +tests/data/ljspeech/wavs/LJ004-0052.wav|tests/data/ljspeech/wavs/LJ004-0052.npy +tests/data/ljspeech/wavs/LJ003-0123.wav|tests/data/ljspeech/wavs/LJ003-0123.npy +tests/data/ljspeech/wavs/LJ026-0105.wav|tests/data/ljspeech/wavs/LJ026-0105.npy +tests/data/ljspeech/wavs/LJ019-0126.wav|tests/data/ljspeech/wavs/LJ019-0126.npy +tests/data/ljspeech/wavs/LJ030-0075.wav|tests/data/ljspeech/wavs/LJ030-0075.npy +tests/data/ljspeech/wavs/LJ017-0258.wav|tests/data/ljspeech/wavs/LJ017-0258.npy +tests/data/ljspeech/wavs/LJ035-0103.wav|tests/data/ljspeech/wavs/LJ035-0103.npy +tests/data/ljspeech/wavs/LJ045-0221.wav|tests/data/ljspeech/wavs/LJ045-0221.npy +tests/data/ljspeech/wavs/LJ018-0008.wav|tests/data/ljspeech/wavs/LJ018-0008.npy +tests/data/ljspeech/wavs/LJ011-0132.wav|tests/data/ljspeech/wavs/LJ011-0132.npy +tests/data/ljspeech/wavs/LJ049-0018.wav|tests/data/ljspeech/wavs/LJ049-0018.npy +tests/data/ljspeech/wavs/LJ003-0279.wav|tests/data/ljspeech/wavs/LJ003-0279.npy +tests/data/ljspeech/wavs/LJ049-0010.wav|tests/data/ljspeech/wavs/LJ049-0010.npy +tests/data/ljspeech/wavs/LJ036-0061.wav|tests/data/ljspeech/wavs/LJ036-0061.npy +tests/data/ljspeech/wavs/LJ045-0084.wav|tests/data/ljspeech/wavs/LJ045-0084.npy +tests/data/ljspeech/wavs/LJ027-0040.wav|tests/data/ljspeech/wavs/LJ027-0040.npy +tests/data/ljspeech/wavs/LJ008-0069.wav|tests/data/ljspeech/wavs/LJ008-0069.npy +tests/data/ljspeech/wavs/LJ030-0240.wav|tests/data/ljspeech/wavs/LJ030-0240.npy +tests/data/ljspeech/wavs/LJ042-0011.wav|tests/data/ljspeech/wavs/LJ042-0011.npy +tests/data/ljspeech/wavs/LJ043-0134.wav|tests/data/ljspeech/wavs/LJ043-0134.npy +tests/data/ljspeech/wavs/LJ032-0024.wav|tests/data/ljspeech/wavs/LJ032-0024.npy +tests/data/ljspeech/wavs/LJ033-0113.wav|tests/data/ljspeech/wavs/LJ033-0113.npy +tests/data/ljspeech/wavs/LJ031-0070.wav|tests/data/ljspeech/wavs/LJ031-0070.npy +tests/data/ljspeech/wavs/LJ036-0177.wav|tests/data/ljspeech/wavs/LJ036-0177.npy +tests/data/ljspeech/wavs/LJ034-0020.wav|tests/data/ljspeech/wavs/LJ034-0020.npy +tests/data/ljspeech/wavs/LJ026-0126.wav|tests/data/ljspeech/wavs/LJ026-0126.npy +tests/data/ljspeech/wavs/LJ032-0023.wav|tests/data/ljspeech/wavs/LJ032-0023.npy +tests/data/ljspeech/wavs/LJ050-0019.wav|tests/data/ljspeech/wavs/LJ050-0019.npy +tests/data/ljspeech/wavs/LJ043-0167.wav|tests/data/ljspeech/wavs/LJ043-0167.npy +tests/data/ljspeech/wavs/LJ004-0150.wav|tests/data/ljspeech/wavs/LJ004-0150.npy +tests/data/ljspeech/wavs/LJ036-0014.wav|tests/data/ljspeech/wavs/LJ036-0014.npy +tests/data/ljspeech/wavs/LJ005-0231.wav|tests/data/ljspeech/wavs/LJ005-0231.npy +tests/data/ljspeech/wavs/LJ049-0025.wav|tests/data/ljspeech/wavs/LJ049-0025.npy +tests/data/ljspeech/wavs/LJ035-0051.wav|tests/data/ljspeech/wavs/LJ035-0051.npy +tests/data/ljspeech/wavs/LJ049-0090.wav|tests/data/ljspeech/wavs/LJ049-0090.npy +tests/data/ljspeech/wavs/LJ022-0192.wav|tests/data/ljspeech/wavs/LJ022-0192.npy +tests/data/ljspeech/wavs/LJ038-0063.wav|tests/data/ljspeech/wavs/LJ038-0063.npy +tests/data/ljspeech/wavs/LJ016-0055.wav|tests/data/ljspeech/wavs/LJ016-0055.npy +tests/data/ljspeech/wavs/LJ035-0014.wav|tests/data/ljspeech/wavs/LJ035-0014.npy +tests/data/ljspeech/wavs/LJ011-0008.wav|tests/data/ljspeech/wavs/LJ011-0008.npy +tests/data/ljspeech/wavs/LJ028-0018.wav|tests/data/ljspeech/wavs/LJ028-0018.npy +tests/data/ljspeech/wavs/LJ041-0094.wav|tests/data/ljspeech/wavs/LJ041-0094.npy +tests/data/ljspeech/wavs/LJ001-0090.wav|tests/data/ljspeech/wavs/LJ001-0090.npy +tests/data/ljspeech/wavs/LJ010-0283.wav|tests/data/ljspeech/wavs/LJ010-0283.npy +tests/data/ljspeech/wavs/LJ036-0136.wav|tests/data/ljspeech/wavs/LJ036-0136.npy +tests/data/ljspeech/wavs/LJ010-0286.wav|tests/data/ljspeech/wavs/LJ010-0286.npy +tests/data/ljspeech/wavs/LJ002-0007.wav|tests/data/ljspeech/wavs/LJ002-0007.npy +tests/data/ljspeech/wavs/LJ004-0137.wav|tests/data/ljspeech/wavs/LJ004-0137.npy +tests/data/ljspeech/wavs/LJ035-0196.wav|tests/data/ljspeech/wavs/LJ035-0196.npy +tests/data/ljspeech/wavs/LJ030-0029.wav|tests/data/ljspeech/wavs/LJ030-0029.npy +tests/data/ljspeech/wavs/LJ034-0146.wav|tests/data/ljspeech/wavs/LJ034-0146.npy +tests/data/ljspeech/wavs/LJ036-0074.wav|tests/data/ljspeech/wavs/LJ036-0074.npy +tests/data/ljspeech/wavs/LJ038-0164.wav|tests/data/ljspeech/wavs/LJ038-0164.npy +tests/data/ljspeech/wavs/LJ034-0009.wav|tests/data/ljspeech/wavs/LJ034-0009.npy +tests/data/ljspeech/wavs/LJ031-0003.wav|tests/data/ljspeech/wavs/LJ031-0003.npy +tests/data/ljspeech/wavs/LJ003-0220.wav|tests/data/ljspeech/wavs/LJ003-0220.npy +tests/data/ljspeech/wavs/LJ017-0271.wav|tests/data/ljspeech/wavs/LJ017-0271.npy +tests/data/ljspeech/wavs/LJ046-0116.wav|tests/data/ljspeech/wavs/LJ046-0116.npy +tests/data/ljspeech/wavs/LJ041-0162.wav|tests/data/ljspeech/wavs/LJ041-0162.npy +tests/data/ljspeech/wavs/LJ039-0030.wav|tests/data/ljspeech/wavs/LJ039-0030.npy +tests/data/ljspeech/wavs/LJ002-0142.wav|tests/data/ljspeech/wavs/LJ002-0142.npy +tests/data/ljspeech/wavs/LJ024-0051.wav|tests/data/ljspeech/wavs/LJ024-0051.npy +tests/data/ljspeech/wavs/LJ009-0025.wav|tests/data/ljspeech/wavs/LJ009-0025.npy +tests/data/ljspeech/wavs/LJ028-0461.wav|tests/data/ljspeech/wavs/LJ028-0461.npy +tests/data/ljspeech/wavs/LJ005-0034.wav|tests/data/ljspeech/wavs/LJ005-0034.npy +tests/data/ljspeech/wavs/LJ002-0239.wav|tests/data/ljspeech/wavs/LJ002-0239.npy +tests/data/ljspeech/wavs/LJ046-0024.wav|tests/data/ljspeech/wavs/LJ046-0024.npy +tests/data/ljspeech/wavs/LJ016-0193.wav|tests/data/ljspeech/wavs/LJ016-0193.npy +tests/data/ljspeech/wavs/LJ039-0152.wav|tests/data/ljspeech/wavs/LJ039-0152.npy +tests/data/ljspeech/wavs/LJ010-0192.wav|tests/data/ljspeech/wavs/LJ010-0192.npy +tests/data/ljspeech/wavs/LJ040-0099.wav|tests/data/ljspeech/wavs/LJ040-0099.npy +tests/data/ljspeech/wavs/LJ010-0042.wav|tests/data/ljspeech/wavs/LJ010-0042.npy +tests/data/ljspeech/wavs/LJ013-0216.wav|tests/data/ljspeech/wavs/LJ013-0216.npy +tests/data/ljspeech/wavs/LJ008-0233.wav|tests/data/ljspeech/wavs/LJ008-0233.npy +tests/data/ljspeech/wavs/LJ014-0104.wav|tests/data/ljspeech/wavs/LJ014-0104.npy +tests/data/ljspeech/wavs/LJ014-0311.wav|tests/data/ljspeech/wavs/LJ014-0311.npy +tests/data/ljspeech/wavs/LJ001-0185.wav|tests/data/ljspeech/wavs/LJ001-0185.npy +tests/data/ljspeech/wavs/LJ031-0160.wav|tests/data/ljspeech/wavs/LJ031-0160.npy +tests/data/ljspeech/wavs/LJ023-0055.wav|tests/data/ljspeech/wavs/LJ023-0055.npy +tests/data/ljspeech/wavs/LJ017-0025.wav|tests/data/ljspeech/wavs/LJ017-0025.npy +tests/data/ljspeech/wavs/LJ029-0136.wav|tests/data/ljspeech/wavs/LJ029-0136.npy +tests/data/ljspeech/wavs/LJ012-0136.wav|tests/data/ljspeech/wavs/LJ012-0136.npy +tests/data/ljspeech/wavs/LJ042-0127.wav|tests/data/ljspeech/wavs/LJ042-0127.npy +tests/data/ljspeech/wavs/LJ034-0110.wav|tests/data/ljspeech/wavs/LJ034-0110.npy +tests/data/ljspeech/wavs/LJ032-0066.wav|tests/data/ljspeech/wavs/LJ032-0066.npy +tests/data/ljspeech/wavs/LJ006-0007.wav|tests/data/ljspeech/wavs/LJ006-0007.npy +tests/data/ljspeech/wavs/LJ035-0074.wav|tests/data/ljspeech/wavs/LJ035-0074.npy +tests/data/ljspeech/wavs/LJ047-0045.wav|tests/data/ljspeech/wavs/LJ047-0045.npy +tests/data/ljspeech/wavs/LJ007-0073.wav|tests/data/ljspeech/wavs/LJ007-0073.npy +tests/data/ljspeech/wavs/LJ022-0148.wav|tests/data/ljspeech/wavs/LJ022-0148.npy +tests/data/ljspeech/wavs/LJ017-0150.wav|tests/data/ljspeech/wavs/LJ017-0150.npy +tests/data/ljspeech/wavs/LJ019-0380.wav|tests/data/ljspeech/wavs/LJ019-0380.npy +tests/data/ljspeech/wavs/LJ028-0260.wav|tests/data/ljspeech/wavs/LJ028-0260.npy +tests/data/ljspeech/wavs/LJ030-0094.wav|tests/data/ljspeech/wavs/LJ030-0094.npy +tests/data/ljspeech/wavs/LJ029-0128.wav|tests/data/ljspeech/wavs/LJ029-0128.npy +tests/data/ljspeech/wavs/LJ015-0053.wav|tests/data/ljspeech/wavs/LJ015-0053.npy +tests/data/ljspeech/wavs/LJ027-0043.wav|tests/data/ljspeech/wavs/LJ027-0043.npy +tests/data/ljspeech/wavs/LJ050-0238.wav|tests/data/ljspeech/wavs/LJ050-0238.npy +tests/data/ljspeech/wavs/LJ013-0099.wav|tests/data/ljspeech/wavs/LJ013-0099.npy +tests/data/ljspeech/wavs/LJ020-0006.wav|tests/data/ljspeech/wavs/LJ020-0006.npy +tests/data/ljspeech/wavs/LJ024-0021.wav|tests/data/ljspeech/wavs/LJ024-0021.npy +tests/data/ljspeech/wavs/LJ019-0305.wav|tests/data/ljspeech/wavs/LJ019-0305.npy +tests/data/ljspeech/wavs/LJ033-0158.wav|tests/data/ljspeech/wavs/LJ033-0158.npy +tests/data/ljspeech/wavs/LJ016-0088.wav|tests/data/ljspeech/wavs/LJ016-0088.npy +tests/data/ljspeech/wavs/LJ014-0338.wav|tests/data/ljspeech/wavs/LJ014-0338.npy +tests/data/ljspeech/wavs/LJ019-0249.wav|tests/data/ljspeech/wavs/LJ019-0249.npy +tests/data/ljspeech/wavs/LJ003-0259.wav|tests/data/ljspeech/wavs/LJ003-0259.npy +tests/data/ljspeech/wavs/LJ035-0151.wav|tests/data/ljspeech/wavs/LJ035-0151.npy +tests/data/ljspeech/wavs/LJ004-0221.wav|tests/data/ljspeech/wavs/LJ004-0221.npy +tests/data/ljspeech/wavs/LJ035-0081.wav|tests/data/ljspeech/wavs/LJ035-0081.npy +tests/data/ljspeech/wavs/LJ038-0301.wav|tests/data/ljspeech/wavs/LJ038-0301.npy +tests/data/ljspeech/wavs/LJ012-0194.wav|tests/data/ljspeech/wavs/LJ012-0194.npy +tests/data/ljspeech/wavs/LJ003-0200.wav|tests/data/ljspeech/wavs/LJ003-0200.npy +tests/data/ljspeech/wavs/LJ018-0316.wav|tests/data/ljspeech/wavs/LJ018-0316.npy +tests/data/ljspeech/wavs/LJ048-0041.wav|tests/data/ljspeech/wavs/LJ048-0041.npy +tests/data/ljspeech/wavs/LJ046-0131.wav|tests/data/ljspeech/wavs/LJ046-0131.npy +tests/data/ljspeech/wavs/LJ014-0230.wav|tests/data/ljspeech/wavs/LJ014-0230.npy +tests/data/ljspeech/wavs/LJ016-0350.wav|tests/data/ljspeech/wavs/LJ016-0350.npy +tests/data/ljspeech/wavs/LJ042-0251.wav|tests/data/ljspeech/wavs/LJ042-0251.npy +tests/data/ljspeech/wavs/LJ014-0304.wav|tests/data/ljspeech/wavs/LJ014-0304.npy +tests/data/ljspeech/wavs/LJ009-0246.wav|tests/data/ljspeech/wavs/LJ009-0246.npy +tests/data/ljspeech/wavs/LJ024-0050.wav|tests/data/ljspeech/wavs/LJ024-0050.npy +tests/data/ljspeech/wavs/LJ036-0188.wav|tests/data/ljspeech/wavs/LJ036-0188.npy +tests/data/ljspeech/wavs/LJ001-0081.wav|tests/data/ljspeech/wavs/LJ001-0081.npy +tests/data/ljspeech/wavs/LJ045-0223.wav|tests/data/ljspeech/wavs/LJ045-0223.npy +tests/data/ljspeech/wavs/LJ022-0182.wav|tests/data/ljspeech/wavs/LJ022-0182.npy +tests/data/ljspeech/wavs/LJ027-0151.wav|tests/data/ljspeech/wavs/LJ027-0151.npy +tests/data/ljspeech/wavs/LJ014-0290.wav|tests/data/ljspeech/wavs/LJ014-0290.npy +tests/data/ljspeech/wavs/LJ008-0137.wav|tests/data/ljspeech/wavs/LJ008-0137.npy +tests/data/ljspeech/wavs/LJ037-0126.wav|tests/data/ljspeech/wavs/LJ037-0126.npy +tests/data/ljspeech/wavs/LJ050-0230.wav|tests/data/ljspeech/wavs/LJ050-0230.npy +tests/data/ljspeech/wavs/LJ027-0148.wav|tests/data/ljspeech/wavs/LJ027-0148.npy +tests/data/ljspeech/wavs/LJ028-0369.wav|tests/data/ljspeech/wavs/LJ028-0369.npy +tests/data/ljspeech/wavs/LJ015-0270.wav|tests/data/ljspeech/wavs/LJ015-0270.npy +tests/data/ljspeech/wavs/LJ040-0226.wav|tests/data/ljspeech/wavs/LJ040-0226.npy +tests/data/ljspeech/wavs/LJ012-0222.wav|tests/data/ljspeech/wavs/LJ012-0222.npy +tests/data/ljspeech/wavs/LJ003-0044.wav|tests/data/ljspeech/wavs/LJ003-0044.npy +tests/data/ljspeech/wavs/LJ017-0005.wav|tests/data/ljspeech/wavs/LJ017-0005.npy +tests/data/ljspeech/wavs/LJ016-0289.wav|tests/data/ljspeech/wavs/LJ016-0289.npy +tests/data/ljspeech/wavs/LJ027-0080.wav|tests/data/ljspeech/wavs/LJ027-0080.npy +tests/data/ljspeech/wavs/LJ043-0056.wav|tests/data/ljspeech/wavs/LJ043-0056.npy +tests/data/ljspeech/wavs/LJ008-0290.wav|tests/data/ljspeech/wavs/LJ008-0290.npy +tests/data/ljspeech/wavs/LJ021-0136.wav|tests/data/ljspeech/wavs/LJ021-0136.npy +tests/data/ljspeech/wavs/LJ005-0288.wav|tests/data/ljspeech/wavs/LJ005-0288.npy +tests/data/ljspeech/wavs/LJ023-0034.wav|tests/data/ljspeech/wavs/LJ023-0034.npy +tests/data/ljspeech/wavs/LJ027-0150.wav|tests/data/ljspeech/wavs/LJ027-0150.npy +tests/data/ljspeech/wavs/LJ018-0294.wav|tests/data/ljspeech/wavs/LJ018-0294.npy +tests/data/ljspeech/wavs/LJ031-0115.wav|tests/data/ljspeech/wavs/LJ031-0115.npy +tests/data/ljspeech/wavs/LJ038-0103.wav|tests/data/ljspeech/wavs/LJ038-0103.npy +tests/data/ljspeech/wavs/LJ046-0193.wav|tests/data/ljspeech/wavs/LJ046-0193.npy +tests/data/ljspeech/wavs/LJ030-0101.wav|tests/data/ljspeech/wavs/LJ030-0101.npy +tests/data/ljspeech/wavs/LJ019-0084.wav|tests/data/ljspeech/wavs/LJ019-0084.npy +tests/data/ljspeech/wavs/LJ014-0293.wav|tests/data/ljspeech/wavs/LJ014-0293.npy +tests/data/ljspeech/wavs/LJ005-0076.wav|tests/data/ljspeech/wavs/LJ005-0076.npy +tests/data/ljspeech/wavs/LJ036-0083.wav|tests/data/ljspeech/wavs/LJ036-0083.npy +tests/data/ljspeech/wavs/LJ036-0025.wav|tests/data/ljspeech/wavs/LJ036-0025.npy +tests/data/ljspeech/wavs/LJ038-0187.wav|tests/data/ljspeech/wavs/LJ038-0187.npy +tests/data/ljspeech/wavs/LJ018-0163.wav|tests/data/ljspeech/wavs/LJ018-0163.npy +tests/data/ljspeech/wavs/LJ036-0130.wav|tests/data/ljspeech/wavs/LJ036-0130.npy +tests/data/ljspeech/wavs/LJ028-0367.wav|tests/data/ljspeech/wavs/LJ028-0367.npy +tests/data/ljspeech/wavs/LJ028-0168.wav|tests/data/ljspeech/wavs/LJ028-0168.npy +tests/data/ljspeech/wavs/LJ014-0095.wav|tests/data/ljspeech/wavs/LJ014-0095.npy +tests/data/ljspeech/wavs/LJ018-0082.wav|tests/data/ljspeech/wavs/LJ018-0082.npy +tests/data/ljspeech/wavs/LJ030-0174.wav|tests/data/ljspeech/wavs/LJ030-0174.npy +tests/data/ljspeech/wavs/LJ038-0141.wav|tests/data/ljspeech/wavs/LJ038-0141.npy +tests/data/ljspeech/wavs/LJ017-0045.wav|tests/data/ljspeech/wavs/LJ017-0045.npy +tests/data/ljspeech/wavs/LJ039-0041.wav|tests/data/ljspeech/wavs/LJ039-0041.npy +tests/data/ljspeech/wavs/LJ012-0280.wav|tests/data/ljspeech/wavs/LJ012-0280.npy +tests/data/ljspeech/wavs/LJ006-0168.wav|tests/data/ljspeech/wavs/LJ006-0168.npy +tests/data/ljspeech/wavs/LJ018-0304.wav|tests/data/ljspeech/wavs/LJ018-0304.npy +tests/data/ljspeech/wavs/LJ015-0184.wav|tests/data/ljspeech/wavs/LJ015-0184.npy +tests/data/ljspeech/wavs/LJ046-0018.wav|tests/data/ljspeech/wavs/LJ046-0018.npy +tests/data/ljspeech/wavs/LJ015-0050.wav|tests/data/ljspeech/wavs/LJ015-0050.npy +tests/data/ljspeech/wavs/LJ017-0152.wav|tests/data/ljspeech/wavs/LJ017-0152.npy +tests/data/ljspeech/wavs/LJ028-0199.wav|tests/data/ljspeech/wavs/LJ028-0199.npy +tests/data/ljspeech/wavs/LJ017-0192.wav|tests/data/ljspeech/wavs/LJ017-0192.npy +tests/data/ljspeech/wavs/LJ038-0228.wav|tests/data/ljspeech/wavs/LJ038-0228.npy +tests/data/ljspeech/wavs/LJ012-0259.wav|tests/data/ljspeech/wavs/LJ012-0259.npy +tests/data/ljspeech/wavs/LJ034-0121.wav|tests/data/ljspeech/wavs/LJ034-0121.npy +tests/data/ljspeech/wavs/LJ046-0235.wav|tests/data/ljspeech/wavs/LJ046-0235.npy +tests/data/ljspeech/wavs/LJ047-0077.wav|tests/data/ljspeech/wavs/LJ047-0077.npy +tests/data/ljspeech/wavs/LJ006-0023.wav|tests/data/ljspeech/wavs/LJ006-0023.npy +tests/data/ljspeech/wavs/LJ011-0112.wav|tests/data/ljspeech/wavs/LJ011-0112.npy +tests/data/ljspeech/wavs/LJ020-0070.wav|tests/data/ljspeech/wavs/LJ020-0070.npy +tests/data/ljspeech/wavs/LJ042-0148.wav|tests/data/ljspeech/wavs/LJ042-0148.npy +tests/data/ljspeech/wavs/LJ007-0230.wav|tests/data/ljspeech/wavs/LJ007-0230.npy +tests/data/ljspeech/wavs/LJ025-0100.wav|tests/data/ljspeech/wavs/LJ025-0100.npy +tests/data/ljspeech/wavs/LJ048-0016.wav|tests/data/ljspeech/wavs/LJ048-0016.npy +tests/data/ljspeech/wavs/LJ010-0193.wav|tests/data/ljspeech/wavs/LJ010-0193.npy +tests/data/ljspeech/wavs/LJ042-0072.wav|tests/data/ljspeech/wavs/LJ042-0072.npy +tests/data/ljspeech/wavs/LJ021-0028.wav|tests/data/ljspeech/wavs/LJ021-0028.npy +tests/data/ljspeech/wavs/LJ042-0080.wav|tests/data/ljspeech/wavs/LJ042-0080.npy +tests/data/ljspeech/wavs/LJ050-0017.wav|tests/data/ljspeech/wavs/LJ050-0017.npy +tests/data/ljspeech/wavs/LJ049-0224.wav|tests/data/ljspeech/wavs/LJ049-0224.npy +tests/data/ljspeech/wavs/LJ004-0068.wav|tests/data/ljspeech/wavs/LJ004-0068.npy +tests/data/ljspeech/wavs/LJ010-0135.wav|tests/data/ljspeech/wavs/LJ010-0135.npy +tests/data/ljspeech/wavs/LJ021-0105.wav|tests/data/ljspeech/wavs/LJ021-0105.npy +tests/data/ljspeech/wavs/LJ021-0063.wav|tests/data/ljspeech/wavs/LJ021-0063.npy +tests/data/ljspeech/wavs/LJ012-0220.wav|tests/data/ljspeech/wavs/LJ012-0220.npy +tests/data/ljspeech/wavs/LJ042-0111.wav|tests/data/ljspeech/wavs/LJ042-0111.npy +tests/data/ljspeech/wavs/LJ047-0084.wav|tests/data/ljspeech/wavs/LJ047-0084.npy +tests/data/ljspeech/wavs/LJ001-0126.wav|tests/data/ljspeech/wavs/LJ001-0126.npy +tests/data/ljspeech/wavs/LJ022-0018.wav|tests/data/ljspeech/wavs/LJ022-0018.npy +tests/data/ljspeech/wavs/LJ023-0008.wav|tests/data/ljspeech/wavs/LJ023-0008.npy +tests/data/ljspeech/wavs/LJ005-0280.wav|tests/data/ljspeech/wavs/LJ005-0280.npy +tests/data/ljspeech/wavs/LJ004-0243.wav|tests/data/ljspeech/wavs/LJ004-0243.npy +tests/data/ljspeech/wavs/LJ008-0112.wav|tests/data/ljspeech/wavs/LJ008-0112.npy +tests/data/ljspeech/wavs/LJ009-0279.wav|tests/data/ljspeech/wavs/LJ009-0279.npy +tests/data/ljspeech/wavs/LJ046-0084.wav|tests/data/ljspeech/wavs/LJ046-0084.npy +tests/data/ljspeech/wavs/LJ008-0123.wav|tests/data/ljspeech/wavs/LJ008-0123.npy +tests/data/ljspeech/wavs/LJ032-0026.wav|tests/data/ljspeech/wavs/LJ032-0026.npy +tests/data/ljspeech/wavs/LJ044-0065.wav|tests/data/ljspeech/wavs/LJ044-0065.npy +tests/data/ljspeech/wavs/LJ032-0220.wav|tests/data/ljspeech/wavs/LJ032-0220.npy +tests/data/ljspeech/wavs/LJ042-0031.wav|tests/data/ljspeech/wavs/LJ042-0031.npy +tests/data/ljspeech/wavs/LJ025-0079.wav|tests/data/ljspeech/wavs/LJ025-0079.npy +tests/data/ljspeech/wavs/LJ028-0420.wav|tests/data/ljspeech/wavs/LJ028-0420.npy +tests/data/ljspeech/wavs/LJ045-0003.wav|tests/data/ljspeech/wavs/LJ045-0003.npy +tests/data/ljspeech/wavs/LJ009-0047.wav|tests/data/ljspeech/wavs/LJ009-0047.npy +tests/data/ljspeech/wavs/LJ001-0141.wav|tests/data/ljspeech/wavs/LJ001-0141.npy +tests/data/ljspeech/wavs/LJ008-0317.wav|tests/data/ljspeech/wavs/LJ008-0317.npy +tests/data/ljspeech/wavs/LJ005-0166.wav|tests/data/ljspeech/wavs/LJ005-0166.npy +tests/data/ljspeech/wavs/LJ005-0276.wav|tests/data/ljspeech/wavs/LJ005-0276.npy +tests/data/ljspeech/wavs/LJ002-0281.wav|tests/data/ljspeech/wavs/LJ002-0281.npy +tests/data/ljspeech/wavs/LJ015-0310.wav|tests/data/ljspeech/wavs/LJ015-0310.npy +tests/data/ljspeech/wavs/LJ021-0159.wav|tests/data/ljspeech/wavs/LJ021-0159.npy +tests/data/ljspeech/wavs/LJ008-0288.wav|tests/data/ljspeech/wavs/LJ008-0288.npy +tests/data/ljspeech/wavs/LJ017-0008.wav|tests/data/ljspeech/wavs/LJ017-0008.npy +tests/data/ljspeech/wavs/LJ009-0248.wav|tests/data/ljspeech/wavs/LJ009-0248.npy +tests/data/ljspeech/wavs/LJ025-0010.wav|tests/data/ljspeech/wavs/LJ025-0010.npy +tests/data/ljspeech/wavs/LJ034-0031.wav|tests/data/ljspeech/wavs/LJ034-0031.npy +tests/data/ljspeech/wavs/LJ024-0086.wav|tests/data/ljspeech/wavs/LJ024-0086.npy +tests/data/ljspeech/wavs/LJ045-0161.wav|tests/data/ljspeech/wavs/LJ045-0161.npy +tests/data/ljspeech/wavs/LJ016-0158.wav|tests/data/ljspeech/wavs/LJ016-0158.npy +tests/data/ljspeech/wavs/LJ048-0074.wav|tests/data/ljspeech/wavs/LJ048-0074.npy +tests/data/ljspeech/wavs/LJ048-0271.wav|tests/data/ljspeech/wavs/LJ048-0271.npy +tests/data/ljspeech/wavs/LJ032-0191.wav|tests/data/ljspeech/wavs/LJ032-0191.npy +tests/data/ljspeech/wavs/LJ021-0182.wav|tests/data/ljspeech/wavs/LJ021-0182.npy +tests/data/ljspeech/wavs/LJ044-0008.wav|tests/data/ljspeech/wavs/LJ044-0008.npy +tests/data/ljspeech/wavs/LJ009-0231.wav|tests/data/ljspeech/wavs/LJ009-0231.npy +tests/data/ljspeech/wavs/LJ027-0059.wav|tests/data/ljspeech/wavs/LJ027-0059.npy +tests/data/ljspeech/wavs/LJ021-0135.wav|tests/data/ljspeech/wavs/LJ021-0135.npy +tests/data/ljspeech/wavs/LJ008-0024.wav|tests/data/ljspeech/wavs/LJ008-0024.npy +tests/data/ljspeech/wavs/LJ002-0127.wav|tests/data/ljspeech/wavs/LJ002-0127.npy +tests/data/ljspeech/wavs/LJ033-0025.wav|tests/data/ljspeech/wavs/LJ033-0025.npy +tests/data/ljspeech/wavs/LJ003-0281.wav|tests/data/ljspeech/wavs/LJ003-0281.npy +tests/data/ljspeech/wavs/LJ022-0146.wav|tests/data/ljspeech/wavs/LJ022-0146.npy +tests/data/ljspeech/wavs/LJ006-0141.wav|tests/data/ljspeech/wavs/LJ006-0141.npy +tests/data/ljspeech/wavs/LJ031-0058.wav|tests/data/ljspeech/wavs/LJ031-0058.npy +tests/data/ljspeech/wavs/LJ014-0069.wav|tests/data/ljspeech/wavs/LJ014-0069.npy +tests/data/ljspeech/wavs/LJ014-0155.wav|tests/data/ljspeech/wavs/LJ014-0155.npy +tests/data/ljspeech/wavs/LJ006-0132.wav|tests/data/ljspeech/wavs/LJ006-0132.npy +tests/data/ljspeech/wavs/LJ013-0193.wav|tests/data/ljspeech/wavs/LJ013-0193.npy +tests/data/ljspeech/wavs/LJ050-0209.wav|tests/data/ljspeech/wavs/LJ050-0209.npy +tests/data/ljspeech/wavs/LJ028-0144.wav|tests/data/ljspeech/wavs/LJ028-0144.npy +tests/data/ljspeech/wavs/LJ045-0143.wav|tests/data/ljspeech/wavs/LJ045-0143.npy +tests/data/ljspeech/wavs/LJ017-0100.wav|tests/data/ljspeech/wavs/LJ017-0100.npy +tests/data/ljspeech/wavs/LJ020-0027.wav|tests/data/ljspeech/wavs/LJ020-0027.npy +tests/data/ljspeech/wavs/LJ026-0007.wav|tests/data/ljspeech/wavs/LJ026-0007.npy +tests/data/ljspeech/wavs/LJ034-0138.wav|tests/data/ljspeech/wavs/LJ034-0138.npy +tests/data/ljspeech/wavs/LJ002-0045.wav|tests/data/ljspeech/wavs/LJ002-0045.npy +tests/data/ljspeech/wavs/LJ018-0310.wav|tests/data/ljspeech/wavs/LJ018-0310.npy +tests/data/ljspeech/wavs/LJ001-0061.wav|tests/data/ljspeech/wavs/LJ001-0061.npy +tests/data/ljspeech/wavs/LJ009-0127.wav|tests/data/ljspeech/wavs/LJ009-0127.npy +tests/data/ljspeech/wavs/LJ012-0261.wav|tests/data/ljspeech/wavs/LJ012-0261.npy +tests/data/ljspeech/wavs/LJ019-0171.wav|tests/data/ljspeech/wavs/LJ019-0171.npy +tests/data/ljspeech/wavs/LJ028-0181.wav|tests/data/ljspeech/wavs/LJ028-0181.npy +tests/data/ljspeech/wavs/LJ027-0180.wav|tests/data/ljspeech/wavs/LJ027-0180.npy +tests/data/ljspeech/wavs/LJ004-0167.wav|tests/data/ljspeech/wavs/LJ004-0167.npy +tests/data/ljspeech/wavs/LJ005-0204.wav|tests/data/ljspeech/wavs/LJ005-0204.npy +tests/data/ljspeech/wavs/LJ013-0172.wav|tests/data/ljspeech/wavs/LJ013-0172.npy +tests/data/ljspeech/wavs/LJ028-0058.wav|tests/data/ljspeech/wavs/LJ028-0058.npy +tests/data/ljspeech/wavs/LJ035-0106.wav|tests/data/ljspeech/wavs/LJ035-0106.npy +tests/data/ljspeech/wavs/LJ018-0385.wav|tests/data/ljspeech/wavs/LJ018-0385.npy +tests/data/ljspeech/wavs/LJ050-0264.wav|tests/data/ljspeech/wavs/LJ050-0264.npy +tests/data/ljspeech/wavs/LJ040-0086.wav|tests/data/ljspeech/wavs/LJ040-0086.npy +tests/data/ljspeech/wavs/LJ010-0228.wav|tests/data/ljspeech/wavs/LJ010-0228.npy +tests/data/ljspeech/wavs/LJ038-0194.wav|tests/data/ljspeech/wavs/LJ038-0194.npy +tests/data/ljspeech/wavs/LJ015-0014.wav|tests/data/ljspeech/wavs/LJ015-0014.npy +tests/data/ljspeech/wavs/LJ008-0015.wav|tests/data/ljspeech/wavs/LJ008-0015.npy +tests/data/ljspeech/wavs/LJ010-0113.wav|tests/data/ljspeech/wavs/LJ010-0113.npy +tests/data/ljspeech/wavs/LJ009-0144.wav|tests/data/ljspeech/wavs/LJ009-0144.npy +tests/data/ljspeech/wavs/LJ011-0263.wav|tests/data/ljspeech/wavs/LJ011-0263.npy +tests/data/ljspeech/wavs/LJ012-0045.wav|tests/data/ljspeech/wavs/LJ012-0045.npy +tests/data/ljspeech/wavs/LJ039-0046.wav|tests/data/ljspeech/wavs/LJ039-0046.npy +tests/data/ljspeech/wavs/LJ005-0136.wav|tests/data/ljspeech/wavs/LJ005-0136.npy +tests/data/ljspeech/wavs/LJ028-0348.wav|tests/data/ljspeech/wavs/LJ028-0348.npy +tests/data/ljspeech/wavs/LJ018-0212.wav|tests/data/ljspeech/wavs/LJ018-0212.npy +tests/data/ljspeech/wavs/LJ039-0020.wav|tests/data/ljspeech/wavs/LJ039-0020.npy +tests/data/ljspeech/wavs/LJ013-0095.wav|tests/data/ljspeech/wavs/LJ013-0095.npy +tests/data/ljspeech/wavs/LJ005-0014.wav|tests/data/ljspeech/wavs/LJ005-0014.npy +tests/data/ljspeech/wavs/LJ012-0128.wav|tests/data/ljspeech/wavs/LJ012-0128.npy +tests/data/ljspeech/wavs/LJ028-0331.wav|tests/data/ljspeech/wavs/LJ028-0331.npy +tests/data/ljspeech/wavs/LJ010-0269.wav|tests/data/ljspeech/wavs/LJ010-0269.npy +tests/data/ljspeech/wavs/LJ011-0024.wav|tests/data/ljspeech/wavs/LJ011-0024.npy +tests/data/ljspeech/wavs/LJ045-0072.wav|tests/data/ljspeech/wavs/LJ045-0072.npy +tests/data/ljspeech/wavs/LJ028-0207.wav|tests/data/ljspeech/wavs/LJ028-0207.npy +tests/data/ljspeech/wavs/LJ008-0220.wav|tests/data/ljspeech/wavs/LJ008-0220.npy +tests/data/ljspeech/wavs/LJ042-0179.wav|tests/data/ljspeech/wavs/LJ042-0179.npy +tests/data/ljspeech/wavs/LJ012-0055.wav|tests/data/ljspeech/wavs/LJ012-0055.npy +tests/data/ljspeech/wavs/LJ015-0035.wav|tests/data/ljspeech/wavs/LJ015-0035.npy +tests/data/ljspeech/wavs/LJ007-0203.wav|tests/data/ljspeech/wavs/LJ007-0203.npy +tests/data/ljspeech/wavs/LJ008-0168.wav|tests/data/ljspeech/wavs/LJ008-0168.npy +tests/data/ljspeech/wavs/LJ012-0114.wav|tests/data/ljspeech/wavs/LJ012-0114.npy +tests/data/ljspeech/wavs/LJ012-0243.wav|tests/data/ljspeech/wavs/LJ012-0243.npy +tests/data/ljspeech/wavs/LJ012-0216.wav|tests/data/ljspeech/wavs/LJ012-0216.npy +tests/data/ljspeech/wavs/LJ018-0354.wav|tests/data/ljspeech/wavs/LJ018-0354.npy +tests/data/ljspeech/wavs/LJ032-0198.wav|tests/data/ljspeech/wavs/LJ032-0198.npy +tests/data/ljspeech/wavs/LJ034-0148.wav|tests/data/ljspeech/wavs/LJ034-0148.npy +tests/data/ljspeech/wavs/LJ047-0062.wav|tests/data/ljspeech/wavs/LJ047-0062.npy +tests/data/ljspeech/wavs/LJ038-0231.wav|tests/data/ljspeech/wavs/LJ038-0231.npy +tests/data/ljspeech/wavs/LJ036-0122.wav|tests/data/ljspeech/wavs/LJ036-0122.npy +tests/data/ljspeech/wavs/LJ002-0272.wav|tests/data/ljspeech/wavs/LJ002-0272.npy +tests/data/ljspeech/wavs/LJ017-0245.wav|tests/data/ljspeech/wavs/LJ017-0245.npy +tests/data/ljspeech/wavs/LJ030-0169.wav|tests/data/ljspeech/wavs/LJ030-0169.npy +tests/data/ljspeech/wavs/LJ048-0009.wav|tests/data/ljspeech/wavs/LJ048-0009.npy +tests/data/ljspeech/wavs/LJ022-0113.wav|tests/data/ljspeech/wavs/LJ022-0113.npy +tests/data/ljspeech/wavs/LJ003-0135.wav|tests/data/ljspeech/wavs/LJ003-0135.npy +tests/data/ljspeech/wavs/LJ029-0122.wav|tests/data/ljspeech/wavs/LJ029-0122.npy +tests/data/ljspeech/wavs/LJ018-0150.wav|tests/data/ljspeech/wavs/LJ018-0150.npy +tests/data/ljspeech/wavs/LJ004-0129.wav|tests/data/ljspeech/wavs/LJ004-0129.npy +tests/data/ljspeech/wavs/LJ002-0019.wav|tests/data/ljspeech/wavs/LJ002-0019.npy +tests/data/ljspeech/wavs/LJ021-0065.wav|tests/data/ljspeech/wavs/LJ021-0065.npy +tests/data/ljspeech/wavs/LJ028-0098.wav|tests/data/ljspeech/wavs/LJ028-0098.npy +tests/data/ljspeech/wavs/LJ036-0161.wav|tests/data/ljspeech/wavs/LJ036-0161.npy +tests/data/ljspeech/wavs/LJ022-0085.wav|tests/data/ljspeech/wavs/LJ022-0085.npy +tests/data/ljspeech/wavs/LJ030-0212.wav|tests/data/ljspeech/wavs/LJ030-0212.npy +tests/data/ljspeech/wavs/LJ020-0042.wav|tests/data/ljspeech/wavs/LJ020-0042.npy +tests/data/ljspeech/wavs/LJ022-0154.wav|tests/data/ljspeech/wavs/LJ022-0154.npy +tests/data/ljspeech/wavs/LJ017-0250.wav|tests/data/ljspeech/wavs/LJ017-0250.npy +tests/data/ljspeech/wavs/LJ015-0076.wav|tests/data/ljspeech/wavs/LJ015-0076.npy +tests/data/ljspeech/wavs/LJ021-0161.wav|tests/data/ljspeech/wavs/LJ021-0161.npy +tests/data/ljspeech/wavs/LJ029-0162.wav|tests/data/ljspeech/wavs/LJ029-0162.npy +tests/data/ljspeech/wavs/LJ011-0134.wav|tests/data/ljspeech/wavs/LJ011-0134.npy +tests/data/ljspeech/wavs/LJ044-0224.wav|tests/data/ljspeech/wavs/LJ044-0224.npy +tests/data/ljspeech/wavs/LJ016-0120.wav|tests/data/ljspeech/wavs/LJ016-0120.npy +tests/data/ljspeech/wavs/LJ045-0238.wav|tests/data/ljspeech/wavs/LJ045-0238.npy +tests/data/ljspeech/wavs/LJ034-0129.wav|tests/data/ljspeech/wavs/LJ034-0129.npy +tests/data/ljspeech/wavs/LJ011-0254.wav|tests/data/ljspeech/wavs/LJ011-0254.npy +tests/data/ljspeech/wavs/LJ046-0059.wav|tests/data/ljspeech/wavs/LJ046-0059.npy +tests/data/ljspeech/wavs/LJ027-0002.wav|tests/data/ljspeech/wavs/LJ027-0002.npy +tests/data/ljspeech/wavs/LJ033-0050.wav|tests/data/ljspeech/wavs/LJ033-0050.npy +tests/data/ljspeech/wavs/LJ048-0194.wav|tests/data/ljspeech/wavs/LJ048-0194.npy +tests/data/ljspeech/wavs/LJ046-0079.wav|tests/data/ljspeech/wavs/LJ046-0079.npy +tests/data/ljspeech/wavs/LJ023-0136.wav|tests/data/ljspeech/wavs/LJ023-0136.npy +tests/data/ljspeech/wavs/LJ012-0203.wav|tests/data/ljspeech/wavs/LJ012-0203.npy +tests/data/ljspeech/wavs/LJ027-0010.wav|tests/data/ljspeech/wavs/LJ027-0010.npy +tests/data/ljspeech/wavs/LJ010-0186.wav|tests/data/ljspeech/wavs/LJ010-0186.npy +tests/data/ljspeech/wavs/LJ040-0132.wav|tests/data/ljspeech/wavs/LJ040-0132.npy +tests/data/ljspeech/wavs/LJ019-0197.wav|tests/data/ljspeech/wavs/LJ019-0197.npy +tests/data/ljspeech/wavs/LJ021-0133.wav|tests/data/ljspeech/wavs/LJ021-0133.npy +tests/data/ljspeech/wavs/LJ039-0115.wav|tests/data/ljspeech/wavs/LJ039-0115.npy +tests/data/ljspeech/wavs/LJ045-0092.wav|tests/data/ljspeech/wavs/LJ045-0092.npy +tests/data/ljspeech/wavs/LJ019-0055.wav|tests/data/ljspeech/wavs/LJ019-0055.npy +tests/data/ljspeech/wavs/LJ039-0147.wav|tests/data/ljspeech/wavs/LJ039-0147.npy +tests/data/ljspeech/wavs/LJ006-0081.wav|tests/data/ljspeech/wavs/LJ006-0081.npy +tests/data/ljspeech/wavs/LJ001-0160.wav|tests/data/ljspeech/wavs/LJ001-0160.npy +tests/data/ljspeech/wavs/LJ026-0006.wav|tests/data/ljspeech/wavs/LJ026-0006.npy +tests/data/ljspeech/wavs/LJ037-0048.wav|tests/data/ljspeech/wavs/LJ037-0048.npy +tests/data/ljspeech/wavs/LJ014-0140.wav|tests/data/ljspeech/wavs/LJ014-0140.npy +tests/data/ljspeech/wavs/LJ018-0178.wav|tests/data/ljspeech/wavs/LJ018-0178.npy +tests/data/ljspeech/wavs/LJ019-0328.wav|tests/data/ljspeech/wavs/LJ019-0328.npy +tests/data/ljspeech/wavs/LJ010-0171.wav|tests/data/ljspeech/wavs/LJ010-0171.npy +tests/data/ljspeech/wavs/LJ005-0218.wav|tests/data/ljspeech/wavs/LJ005-0218.npy +tests/data/ljspeech/wavs/LJ021-0109.wav|tests/data/ljspeech/wavs/LJ021-0109.npy +tests/data/ljspeech/wavs/LJ035-0054.wav|tests/data/ljspeech/wavs/LJ035-0054.npy +tests/data/ljspeech/wavs/LJ002-0109.wav|tests/data/ljspeech/wavs/LJ002-0109.npy +tests/data/ljspeech/wavs/LJ003-0284.wav|tests/data/ljspeech/wavs/LJ003-0284.npy +tests/data/ljspeech/wavs/LJ021-0142.wav|tests/data/ljspeech/wavs/LJ021-0142.npy +tests/data/ljspeech/wavs/LJ028-0201.wav|tests/data/ljspeech/wavs/LJ028-0201.npy +tests/data/ljspeech/wavs/LJ007-0120.wav|tests/data/ljspeech/wavs/LJ007-0120.npy +tests/data/ljspeech/wavs/LJ021-0067.wav|tests/data/ljspeech/wavs/LJ021-0067.npy +tests/data/ljspeech/wavs/LJ031-0211.wav|tests/data/ljspeech/wavs/LJ031-0211.npy +tests/data/ljspeech/wavs/LJ038-0268.wav|tests/data/ljspeech/wavs/LJ038-0268.npy +tests/data/ljspeech/wavs/LJ006-0166.wav|tests/data/ljspeech/wavs/LJ006-0166.npy +tests/data/ljspeech/wavs/LJ024-0027.wav|tests/data/ljspeech/wavs/LJ024-0027.npy +tests/data/ljspeech/wavs/LJ031-0052.wav|tests/data/ljspeech/wavs/LJ031-0052.npy +tests/data/ljspeech/wavs/LJ049-0229.wav|tests/data/ljspeech/wavs/LJ049-0229.npy +tests/data/ljspeech/wavs/LJ044-0186.wav|tests/data/ljspeech/wavs/LJ044-0186.npy +tests/data/ljspeech/wavs/LJ028-0251.wav|tests/data/ljspeech/wavs/LJ028-0251.npy +tests/data/ljspeech/wavs/LJ021-0017.wav|tests/data/ljspeech/wavs/LJ021-0017.npy +tests/data/ljspeech/wavs/LJ012-0223.wav|tests/data/ljspeech/wavs/LJ012-0223.npy +tests/data/ljspeech/wavs/LJ005-0045.wav|tests/data/ljspeech/wavs/LJ005-0045.npy +tests/data/ljspeech/wavs/LJ040-0047.wav|tests/data/ljspeech/wavs/LJ040-0047.npy +tests/data/ljspeech/wavs/LJ005-0104.wav|tests/data/ljspeech/wavs/LJ005-0104.npy +tests/data/ljspeech/wavs/LJ028-0267.wav|tests/data/ljspeech/wavs/LJ028-0267.npy +tests/data/ljspeech/wavs/LJ023-0024.wav|tests/data/ljspeech/wavs/LJ023-0024.npy +tests/data/ljspeech/wavs/LJ023-0028.wav|tests/data/ljspeech/wavs/LJ023-0028.npy +tests/data/ljspeech/wavs/LJ040-0108.wav|tests/data/ljspeech/wavs/LJ040-0108.npy +tests/data/ljspeech/wavs/LJ031-0067.wav|tests/data/ljspeech/wavs/LJ031-0067.npy +tests/data/ljspeech/wavs/LJ035-0011.wav|tests/data/ljspeech/wavs/LJ035-0011.npy +tests/data/ljspeech/wavs/LJ003-0241.wav|tests/data/ljspeech/wavs/LJ003-0241.npy +tests/data/ljspeech/wavs/LJ013-0109.wav|tests/data/ljspeech/wavs/LJ013-0109.npy +tests/data/ljspeech/wavs/LJ033-0104.wav|tests/data/ljspeech/wavs/LJ033-0104.npy +tests/data/ljspeech/wavs/LJ028-0220.wav|tests/data/ljspeech/wavs/LJ028-0220.npy +tests/data/ljspeech/wavs/LJ015-0106.wav|tests/data/ljspeech/wavs/LJ015-0106.npy +tests/data/ljspeech/wavs/LJ043-0130.wav|tests/data/ljspeech/wavs/LJ043-0130.npy +tests/data/ljspeech/wavs/LJ048-0052.wav|tests/data/ljspeech/wavs/LJ048-0052.npy +tests/data/ljspeech/wavs/LJ012-0009.wav|tests/data/ljspeech/wavs/LJ012-0009.npy +tests/data/ljspeech/wavs/LJ042-0220.wav|tests/data/ljspeech/wavs/LJ042-0220.npy +tests/data/ljspeech/wavs/LJ033-0101.wav|tests/data/ljspeech/wavs/LJ033-0101.npy +tests/data/ljspeech/wavs/LJ002-0002.wav|tests/data/ljspeech/wavs/LJ002-0002.npy +tests/data/ljspeech/wavs/LJ002-0150.wav|tests/data/ljspeech/wavs/LJ002-0150.npy +tests/data/ljspeech/wavs/LJ017-0158.wav|tests/data/ljspeech/wavs/LJ017-0158.npy +tests/data/ljspeech/wavs/LJ045-0190.wav|tests/data/ljspeech/wavs/LJ045-0190.npy +tests/data/ljspeech/wavs/LJ045-0136.wav|tests/data/ljspeech/wavs/LJ045-0136.npy +tests/data/ljspeech/wavs/LJ041-0178.wav|tests/data/ljspeech/wavs/LJ041-0178.npy +tests/data/ljspeech/wavs/LJ005-0116.wav|tests/data/ljspeech/wavs/LJ005-0116.npy +tests/data/ljspeech/wavs/LJ017-0163.wav|tests/data/ljspeech/wavs/LJ017-0163.npy +tests/data/ljspeech/wavs/LJ033-0146.wav|tests/data/ljspeech/wavs/LJ033-0146.npy +tests/data/ljspeech/wavs/LJ010-0023.wav|tests/data/ljspeech/wavs/LJ010-0023.npy +tests/data/ljspeech/wavs/LJ006-0031.wav|tests/data/ljspeech/wavs/LJ006-0031.npy +tests/data/ljspeech/wavs/LJ027-0014.wav|tests/data/ljspeech/wavs/LJ027-0014.npy +tests/data/ljspeech/wavs/LJ046-0251.wav|tests/data/ljspeech/wavs/LJ046-0251.npy +tests/data/ljspeech/wavs/LJ028-0063.wav|tests/data/ljspeech/wavs/LJ028-0063.npy +tests/data/ljspeech/wavs/LJ042-0068.wav|tests/data/ljspeech/wavs/LJ042-0068.npy +tests/data/ljspeech/wavs/LJ022-0118.wav|tests/data/ljspeech/wavs/LJ022-0118.npy +tests/data/ljspeech/wavs/LJ046-0177.wav|tests/data/ljspeech/wavs/LJ046-0177.npy +tests/data/ljspeech/wavs/LJ015-0306.wav|tests/data/ljspeech/wavs/LJ015-0306.npy +tests/data/ljspeech/wavs/LJ037-0034.wav|tests/data/ljspeech/wavs/LJ037-0034.npy +tests/data/ljspeech/wavs/LJ024-0015.wav|tests/data/ljspeech/wavs/LJ024-0015.npy +tests/data/ljspeech/wavs/LJ023-0110.wav|tests/data/ljspeech/wavs/LJ023-0110.npy +tests/data/ljspeech/wavs/LJ044-0012.wav|tests/data/ljspeech/wavs/LJ044-0012.npy +tests/data/ljspeech/wavs/LJ047-0174.wav|tests/data/ljspeech/wavs/LJ047-0174.npy +tests/data/ljspeech/wavs/LJ030-0136.wav|tests/data/ljspeech/wavs/LJ030-0136.npy +tests/data/ljspeech/wavs/LJ009-0242.wav|tests/data/ljspeech/wavs/LJ009-0242.npy +tests/data/ljspeech/wavs/LJ022-0144.wav|tests/data/ljspeech/wavs/LJ022-0144.npy +tests/data/ljspeech/wavs/LJ028-0492.wav|tests/data/ljspeech/wavs/LJ028-0492.npy +tests/data/ljspeech/wavs/LJ017-0203.wav|tests/data/ljspeech/wavs/LJ017-0203.npy +tests/data/ljspeech/wavs/LJ017-0081.wav|tests/data/ljspeech/wavs/LJ017-0081.npy +tests/data/ljspeech/wavs/LJ015-0288.wav|tests/data/ljspeech/wavs/LJ015-0288.npy +tests/data/ljspeech/wavs/LJ001-0129.wav|tests/data/ljspeech/wavs/LJ001-0129.npy +tests/data/ljspeech/wavs/LJ022-0185.wav|tests/data/ljspeech/wavs/LJ022-0185.npy +tests/data/ljspeech/wavs/LJ016-0012.wav|tests/data/ljspeech/wavs/LJ016-0012.npy +tests/data/ljspeech/wavs/LJ008-0150.wav|tests/data/ljspeech/wavs/LJ008-0150.npy +tests/data/ljspeech/wavs/LJ044-0203.wav|tests/data/ljspeech/wavs/LJ044-0203.npy +tests/data/ljspeech/wavs/LJ030-0255.wav|tests/data/ljspeech/wavs/LJ030-0255.npy +tests/data/ljspeech/wavs/LJ005-0241.wav|tests/data/ljspeech/wavs/LJ005-0241.npy +tests/data/ljspeech/wavs/LJ033-0145.wav|tests/data/ljspeech/wavs/LJ033-0145.npy +tests/data/ljspeech/wavs/LJ044-0096.wav|tests/data/ljspeech/wavs/LJ044-0096.npy +tests/data/ljspeech/wavs/LJ046-0182.wav|tests/data/ljspeech/wavs/LJ046-0182.npy +tests/data/ljspeech/wavs/LJ041-0195.wav|tests/data/ljspeech/wavs/LJ041-0195.npy +tests/data/ljspeech/wavs/LJ040-0070.wav|tests/data/ljspeech/wavs/LJ040-0070.npy +tests/data/ljspeech/wavs/LJ010-0123.wav|tests/data/ljspeech/wavs/LJ010-0123.npy +tests/data/ljspeech/wavs/LJ023-0080.wav|tests/data/ljspeech/wavs/LJ023-0080.npy +tests/data/ljspeech/wavs/LJ008-0210.wav|tests/data/ljspeech/wavs/LJ008-0210.npy +tests/data/ljspeech/wavs/LJ033-0148.wav|tests/data/ljspeech/wavs/LJ033-0148.npy +tests/data/ljspeech/wavs/LJ021-0122.wav|tests/data/ljspeech/wavs/LJ021-0122.npy +tests/data/ljspeech/wavs/LJ016-0179.wav|tests/data/ljspeech/wavs/LJ016-0179.npy +tests/data/ljspeech/wavs/LJ006-0041.wav|tests/data/ljspeech/wavs/LJ006-0041.npy +tests/data/ljspeech/wavs/LJ023-0121.wav|tests/data/ljspeech/wavs/LJ023-0121.npy +tests/data/ljspeech/wavs/LJ019-0304.wav|tests/data/ljspeech/wavs/LJ019-0304.npy +tests/data/ljspeech/wavs/LJ025-0174.wav|tests/data/ljspeech/wavs/LJ025-0174.npy +tests/data/ljspeech/wavs/LJ009-0102.wav|tests/data/ljspeech/wavs/LJ009-0102.npy +tests/data/ljspeech/wavs/LJ022-0022.wav|tests/data/ljspeech/wavs/LJ022-0022.npy +tests/data/ljspeech/wavs/LJ011-0250.wav|tests/data/ljspeech/wavs/LJ011-0250.npy +tests/data/ljspeech/wavs/LJ022-0199.wav|tests/data/ljspeech/wavs/LJ022-0199.npy +tests/data/ljspeech/wavs/LJ001-0079.wav|tests/data/ljspeech/wavs/LJ001-0079.npy +tests/data/ljspeech/wavs/LJ004-0191.wav|tests/data/ljspeech/wavs/LJ004-0191.npy +tests/data/ljspeech/wavs/LJ020-0080.wav|tests/data/ljspeech/wavs/LJ020-0080.npy +tests/data/ljspeech/wavs/LJ028-0504.wav|tests/data/ljspeech/wavs/LJ028-0504.npy +tests/data/ljspeech/wavs/LJ009-0164.wav|tests/data/ljspeech/wavs/LJ009-0164.npy +tests/data/ljspeech/wavs/LJ028-0422.wav|tests/data/ljspeech/wavs/LJ028-0422.npy +tests/data/ljspeech/wavs/LJ019-0368.wav|tests/data/ljspeech/wavs/LJ019-0368.npy +tests/data/ljspeech/wavs/LJ008-0108.wav|tests/data/ljspeech/wavs/LJ008-0108.npy +tests/data/ljspeech/wavs/LJ010-0088.wav|tests/data/ljspeech/wavs/LJ010-0088.npy +tests/data/ljspeech/wavs/LJ005-0224.wav|tests/data/ljspeech/wavs/LJ005-0224.npy +tests/data/ljspeech/wavs/LJ042-0143.wav|tests/data/ljspeech/wavs/LJ042-0143.npy +tests/data/ljspeech/wavs/LJ045-0151.wav|tests/data/ljspeech/wavs/LJ045-0151.npy +tests/data/ljspeech/wavs/LJ036-0209.wav|tests/data/ljspeech/wavs/LJ036-0209.npy +tests/data/ljspeech/wavs/LJ049-0049.wav|tests/data/ljspeech/wavs/LJ049-0049.npy +tests/data/ljspeech/wavs/LJ014-0238.wav|tests/data/ljspeech/wavs/LJ014-0238.npy +tests/data/ljspeech/wavs/LJ023-0116.wav|tests/data/ljspeech/wavs/LJ023-0116.npy +tests/data/ljspeech/wavs/LJ008-0287.wav|tests/data/ljspeech/wavs/LJ008-0287.npy +tests/data/ljspeech/wavs/LJ028-0099.wav|tests/data/ljspeech/wavs/LJ028-0099.npy +tests/data/ljspeech/wavs/LJ026-0106.wav|tests/data/ljspeech/wavs/LJ026-0106.npy +tests/data/ljspeech/wavs/LJ005-0139.wav|tests/data/ljspeech/wavs/LJ005-0139.npy +tests/data/ljspeech/wavs/LJ027-0028.wav|tests/data/ljspeech/wavs/LJ027-0028.npy +tests/data/ljspeech/wavs/LJ003-0113.wav|tests/data/ljspeech/wavs/LJ003-0113.npy +tests/data/ljspeech/wavs/LJ014-0189.wav|tests/data/ljspeech/wavs/LJ014-0189.npy +tests/data/ljspeech/wavs/LJ045-0133.wav|tests/data/ljspeech/wavs/LJ045-0133.npy +tests/data/ljspeech/wavs/LJ050-0174.wav|tests/data/ljspeech/wavs/LJ050-0174.npy +tests/data/ljspeech/wavs/LJ038-0092.wav|tests/data/ljspeech/wavs/LJ038-0092.npy +tests/data/ljspeech/wavs/LJ046-0046.wav|tests/data/ljspeech/wavs/LJ046-0046.npy +tests/data/ljspeech/wavs/LJ038-0138.wav|tests/data/ljspeech/wavs/LJ038-0138.npy +tests/data/ljspeech/wavs/LJ039-0068.wav|tests/data/ljspeech/wavs/LJ039-0068.npy +tests/data/ljspeech/wavs/LJ015-0027.wav|tests/data/ljspeech/wavs/LJ015-0027.npy +tests/data/ljspeech/wavs/LJ030-0113.wav|tests/data/ljspeech/wavs/LJ030-0113.npy +tests/data/ljspeech/wavs/LJ011-0192.wav|tests/data/ljspeech/wavs/LJ011-0192.npy +tests/data/ljspeech/wavs/LJ036-0102.wav|tests/data/ljspeech/wavs/LJ036-0102.npy +tests/data/ljspeech/wavs/LJ045-0117.wav|tests/data/ljspeech/wavs/LJ045-0117.npy +tests/data/ljspeech/wavs/LJ017-0088.wav|tests/data/ljspeech/wavs/LJ017-0088.npy +tests/data/ljspeech/wavs/LJ038-0247.wav|tests/data/ljspeech/wavs/LJ038-0247.npy +tests/data/ljspeech/wavs/LJ042-0170.wav|tests/data/ljspeech/wavs/LJ042-0170.npy +tests/data/ljspeech/wavs/LJ028-0286.wav|tests/data/ljspeech/wavs/LJ028-0286.npy +tests/data/ljspeech/wavs/LJ018-0322.wav|tests/data/ljspeech/wavs/LJ018-0322.npy +tests/data/ljspeech/wavs/LJ038-0097.wav|tests/data/ljspeech/wavs/LJ038-0097.npy +tests/data/ljspeech/wavs/LJ036-0012.wav|tests/data/ljspeech/wavs/LJ036-0012.npy +tests/data/ljspeech/wavs/LJ017-0003.wav|tests/data/ljspeech/wavs/LJ017-0003.npy +tests/data/ljspeech/wavs/LJ003-0043.wav|tests/data/ljspeech/wavs/LJ003-0043.npy +tests/data/ljspeech/wavs/LJ033-0049.wav|tests/data/ljspeech/wavs/LJ033-0049.npy +tests/data/ljspeech/wavs/LJ045-0176.wav|tests/data/ljspeech/wavs/LJ045-0176.npy +tests/data/ljspeech/wavs/LJ017-0199.wav|tests/data/ljspeech/wavs/LJ017-0199.npy +tests/data/ljspeech/wavs/LJ004-0192.wav|tests/data/ljspeech/wavs/LJ004-0192.npy +tests/data/ljspeech/wavs/LJ007-0202.wav|tests/data/ljspeech/wavs/LJ007-0202.npy +tests/data/ljspeech/wavs/LJ018-0018.wav|tests/data/ljspeech/wavs/LJ018-0018.npy +tests/data/ljspeech/wavs/LJ043-0113.wav|tests/data/ljspeech/wavs/LJ043-0113.npy +tests/data/ljspeech/wavs/LJ050-0081.wav|tests/data/ljspeech/wavs/LJ050-0081.npy +tests/data/ljspeech/wavs/LJ013-0128.wav|tests/data/ljspeech/wavs/LJ013-0128.npy +tests/data/ljspeech/wavs/LJ002-0332.wav|tests/data/ljspeech/wavs/LJ002-0332.npy +tests/data/ljspeech/wavs/LJ035-0124.wav|tests/data/ljspeech/wavs/LJ035-0124.npy +tests/data/ljspeech/wavs/LJ002-0114.wav|tests/data/ljspeech/wavs/LJ002-0114.npy +tests/data/ljspeech/wavs/LJ017-0282.wav|tests/data/ljspeech/wavs/LJ017-0282.npy +tests/data/ljspeech/wavs/LJ019-0325.wav|tests/data/ljspeech/wavs/LJ019-0325.npy +tests/data/ljspeech/wavs/LJ014-0127.wav|tests/data/ljspeech/wavs/LJ014-0127.npy +tests/data/ljspeech/wavs/LJ018-0061.wav|tests/data/ljspeech/wavs/LJ018-0061.npy +tests/data/ljspeech/wavs/LJ004-0156.wav|tests/data/ljspeech/wavs/LJ004-0156.npy +tests/data/ljspeech/wavs/LJ010-0069.wav|tests/data/ljspeech/wavs/LJ010-0069.npy +tests/data/ljspeech/wavs/LJ005-0195.wav|tests/data/ljspeech/wavs/LJ005-0195.npy +tests/data/ljspeech/wavs/LJ017-0048.wav|tests/data/ljspeech/wavs/LJ017-0048.npy +tests/data/ljspeech/wavs/LJ004-0179.wav|tests/data/ljspeech/wavs/LJ004-0179.npy +tests/data/ljspeech/wavs/LJ026-0048.wav|tests/data/ljspeech/wavs/LJ026-0048.npy +tests/data/ljspeech/wavs/LJ019-0057.wav|tests/data/ljspeech/wavs/LJ019-0057.npy +tests/data/ljspeech/wavs/LJ019-0048.wav|tests/data/ljspeech/wavs/LJ019-0048.npy +tests/data/ljspeech/wavs/LJ012-0294.wav|tests/data/ljspeech/wavs/LJ012-0294.npy +tests/data/ljspeech/wavs/LJ045-0210.wav|tests/data/ljspeech/wavs/LJ045-0210.npy +tests/data/ljspeech/wavs/LJ029-0078.wav|tests/data/ljspeech/wavs/LJ029-0078.npy +tests/data/ljspeech/wavs/LJ015-0296.wav|tests/data/ljspeech/wavs/LJ015-0296.npy +tests/data/ljspeech/wavs/LJ003-0172.wav|tests/data/ljspeech/wavs/LJ003-0172.npy +tests/data/ljspeech/wavs/LJ014-0184.wav|tests/data/ljspeech/wavs/LJ014-0184.npy +tests/data/ljspeech/wavs/LJ007-0066.wav|tests/data/ljspeech/wavs/LJ007-0066.npy +tests/data/ljspeech/wavs/LJ041-0053.wav|tests/data/ljspeech/wavs/LJ041-0053.npy +tests/data/ljspeech/wavs/LJ047-0069.wav|tests/data/ljspeech/wavs/LJ047-0069.npy +tests/data/ljspeech/wavs/LJ042-0196.wav|tests/data/ljspeech/wavs/LJ042-0196.npy +tests/data/ljspeech/wavs/LJ022-0021.wav|tests/data/ljspeech/wavs/LJ022-0021.npy +tests/data/ljspeech/wavs/LJ044-0003.wav|tests/data/ljspeech/wavs/LJ044-0003.npy +tests/data/ljspeech/wavs/LJ038-0011.wav|tests/data/ljspeech/wavs/LJ038-0011.npy +tests/data/ljspeech/wavs/LJ015-0189.wav|tests/data/ljspeech/wavs/LJ015-0189.npy +tests/data/ljspeech/wavs/LJ030-0119.wav|tests/data/ljspeech/wavs/LJ030-0119.npy +tests/data/ljspeech/wavs/LJ022-0165.wav|tests/data/ljspeech/wavs/LJ022-0165.npy +tests/data/ljspeech/wavs/LJ022-0028.wav|tests/data/ljspeech/wavs/LJ022-0028.npy +tests/data/ljspeech/wavs/LJ046-0004.wav|tests/data/ljspeech/wavs/LJ046-0004.npy +tests/data/ljspeech/wavs/LJ004-0217.wav|tests/data/ljspeech/wavs/LJ004-0217.npy +tests/data/ljspeech/wavs/LJ025-0007.wav|tests/data/ljspeech/wavs/LJ025-0007.npy +tests/data/ljspeech/wavs/LJ039-0117.wav|tests/data/ljspeech/wavs/LJ039-0117.npy +tests/data/ljspeech/wavs/LJ027-0096.wav|tests/data/ljspeech/wavs/LJ027-0096.npy +tests/data/ljspeech/wavs/LJ033-0047.wav|tests/data/ljspeech/wavs/LJ033-0047.npy +tests/data/ljspeech/wavs/LJ035-0083.wav|tests/data/ljspeech/wavs/LJ035-0083.npy +tests/data/ljspeech/wavs/LJ028-0151.wav|tests/data/ljspeech/wavs/LJ028-0151.npy +tests/data/ljspeech/wavs/LJ022-0034.wav|tests/data/ljspeech/wavs/LJ022-0034.npy +tests/data/ljspeech/wavs/LJ005-0174.wav|tests/data/ljspeech/wavs/LJ005-0174.npy +tests/data/ljspeech/wavs/LJ022-0114.wav|tests/data/ljspeech/wavs/LJ022-0114.npy +tests/data/ljspeech/wavs/LJ023-0030.wav|tests/data/ljspeech/wavs/LJ023-0030.npy +tests/data/ljspeech/wavs/LJ030-0191.wav|tests/data/ljspeech/wavs/LJ030-0191.npy +tests/data/ljspeech/wavs/LJ006-0009.wav|tests/data/ljspeech/wavs/LJ006-0009.npy +tests/data/ljspeech/wavs/LJ050-0244.wav|tests/data/ljspeech/wavs/LJ050-0244.npy +tests/data/ljspeech/wavs/LJ007-0236.wav|tests/data/ljspeech/wavs/LJ007-0236.npy +tests/data/ljspeech/wavs/LJ002-0275.wav|tests/data/ljspeech/wavs/LJ002-0275.npy +tests/data/ljspeech/wavs/LJ037-0254.wav|tests/data/ljspeech/wavs/LJ037-0254.npy +tests/data/ljspeech/wavs/LJ031-0092.wav|tests/data/ljspeech/wavs/LJ031-0092.npy +tests/data/ljspeech/wavs/LJ028-0325.wav|tests/data/ljspeech/wavs/LJ028-0325.npy +tests/data/ljspeech/wavs/LJ038-0049.wav|tests/data/ljspeech/wavs/LJ038-0049.npy +tests/data/ljspeech/wavs/LJ008-0134.wav|tests/data/ljspeech/wavs/LJ008-0134.npy +tests/data/ljspeech/wavs/LJ039-0188.wav|tests/data/ljspeech/wavs/LJ039-0188.npy +tests/data/ljspeech/wavs/LJ004-0145.wav|tests/data/ljspeech/wavs/LJ004-0145.npy +tests/data/ljspeech/wavs/LJ029-0077.wav|tests/data/ljspeech/wavs/LJ029-0077.npy +tests/data/ljspeech/wavs/LJ028-0517.wav|tests/data/ljspeech/wavs/LJ028-0517.npy +tests/data/ljspeech/wavs/LJ019-0166.wav|tests/data/ljspeech/wavs/LJ019-0166.npy +tests/data/ljspeech/wavs/LJ029-0151.wav|tests/data/ljspeech/wavs/LJ029-0151.npy +tests/data/ljspeech/wavs/LJ029-0125.wav|tests/data/ljspeech/wavs/LJ029-0125.npy +tests/data/ljspeech/wavs/LJ005-0105.wav|tests/data/ljspeech/wavs/LJ005-0105.npy +tests/data/ljspeech/wavs/LJ046-0254.wav|tests/data/ljspeech/wavs/LJ046-0254.npy +tests/data/ljspeech/wavs/LJ002-0159.wav|tests/data/ljspeech/wavs/LJ002-0159.npy +tests/data/ljspeech/wavs/LJ020-0029.wav|tests/data/ljspeech/wavs/LJ020-0029.npy +tests/data/ljspeech/wavs/LJ021-0096.wav|tests/data/ljspeech/wavs/LJ021-0096.npy +tests/data/ljspeech/wavs/LJ044-0208.wav|tests/data/ljspeech/wavs/LJ044-0208.npy +tests/data/ljspeech/wavs/LJ047-0130.wav|tests/data/ljspeech/wavs/LJ047-0130.npy +tests/data/ljspeech/wavs/LJ031-0089.wav|tests/data/ljspeech/wavs/LJ031-0089.npy +tests/data/ljspeech/wavs/LJ038-0216.wav|tests/data/ljspeech/wavs/LJ038-0216.npy +tests/data/ljspeech/wavs/LJ006-0175.wav|tests/data/ljspeech/wavs/LJ006-0175.npy +tests/data/ljspeech/wavs/LJ027-0103.wav|tests/data/ljspeech/wavs/LJ027-0103.npy +tests/data/ljspeech/wavs/LJ005-0078.wav|tests/data/ljspeech/wavs/LJ005-0078.npy +tests/data/ljspeech/wavs/LJ044-0014.wav|tests/data/ljspeech/wavs/LJ044-0014.npy +tests/data/ljspeech/wavs/LJ043-0093.wav|tests/data/ljspeech/wavs/LJ043-0093.npy +tests/data/ljspeech/wavs/LJ021-0022.wav|tests/data/ljspeech/wavs/LJ021-0022.npy +tests/data/ljspeech/wavs/LJ018-0383.wav|tests/data/ljspeech/wavs/LJ018-0383.npy +tests/data/ljspeech/wavs/LJ010-0275.wav|tests/data/ljspeech/wavs/LJ010-0275.npy +tests/data/ljspeech/wavs/LJ007-0048.wav|tests/data/ljspeech/wavs/LJ007-0048.npy +tests/data/ljspeech/wavs/LJ005-0190.wav|tests/data/ljspeech/wavs/LJ005-0190.npy +tests/data/ljspeech/wavs/LJ001-0037.wav|tests/data/ljspeech/wavs/LJ001-0037.npy +tests/data/ljspeech/wavs/LJ012-0255.wav|tests/data/ljspeech/wavs/LJ012-0255.npy +tests/data/ljspeech/wavs/LJ033-0026.wav|tests/data/ljspeech/wavs/LJ033-0026.npy +tests/data/ljspeech/wavs/LJ029-0102.wav|tests/data/ljspeech/wavs/LJ029-0102.npy +tests/data/ljspeech/wavs/LJ049-0219.wav|tests/data/ljspeech/wavs/LJ049-0219.npy +tests/data/ljspeech/wavs/LJ016-0066.wav|tests/data/ljspeech/wavs/LJ016-0066.npy +tests/data/ljspeech/wavs/LJ042-0029.wav|tests/data/ljspeech/wavs/LJ042-0029.npy +tests/data/ljspeech/wavs/LJ035-0188.wav|tests/data/ljspeech/wavs/LJ035-0188.npy +tests/data/ljspeech/wavs/LJ018-0180.wav|tests/data/ljspeech/wavs/LJ018-0180.npy +tests/data/ljspeech/wavs/LJ044-0113.wav|tests/data/ljspeech/wavs/LJ044-0113.npy +tests/data/ljspeech/wavs/LJ034-0143.wav|tests/data/ljspeech/wavs/LJ034-0143.npy +tests/data/ljspeech/wavs/LJ035-0080.wav|tests/data/ljspeech/wavs/LJ035-0080.npy +tests/data/ljspeech/wavs/LJ047-0203.wav|tests/data/ljspeech/wavs/LJ047-0203.npy +tests/data/ljspeech/wavs/LJ010-0201.wav|tests/data/ljspeech/wavs/LJ010-0201.npy +tests/data/ljspeech/wavs/LJ035-0061.wav|tests/data/ljspeech/wavs/LJ035-0061.npy +tests/data/ljspeech/wavs/LJ002-0037.wav|tests/data/ljspeech/wavs/LJ002-0037.npy +tests/data/ljspeech/wavs/LJ037-0049.wav|tests/data/ljspeech/wavs/LJ037-0049.npy +tests/data/ljspeech/wavs/LJ030-0129.wav|tests/data/ljspeech/wavs/LJ030-0129.npy +tests/data/ljspeech/wavs/LJ033-0095.wav|tests/data/ljspeech/wavs/LJ033-0095.npy +tests/data/ljspeech/wavs/LJ028-0155.wav|tests/data/ljspeech/wavs/LJ028-0155.npy +tests/data/ljspeech/wavs/LJ050-0193.wav|tests/data/ljspeech/wavs/LJ050-0193.npy +tests/data/ljspeech/wavs/LJ016-0109.wav|tests/data/ljspeech/wavs/LJ016-0109.npy +tests/data/ljspeech/wavs/LJ011-0286.wav|tests/data/ljspeech/wavs/LJ011-0286.npy +tests/data/ljspeech/wavs/LJ035-0031.wav|tests/data/ljspeech/wavs/LJ035-0031.npy +tests/data/ljspeech/wavs/LJ014-0033.wav|tests/data/ljspeech/wavs/LJ014-0033.npy +tests/data/ljspeech/wavs/LJ004-0089.wav|tests/data/ljspeech/wavs/LJ004-0089.npy +tests/data/ljspeech/wavs/LJ011-0011.wav|tests/data/ljspeech/wavs/LJ011-0011.npy +tests/data/ljspeech/wavs/LJ002-0202.wav|tests/data/ljspeech/wavs/LJ002-0202.npy +tests/data/ljspeech/wavs/LJ046-0106.wav|tests/data/ljspeech/wavs/LJ046-0106.npy +tests/data/ljspeech/wavs/LJ015-0182.wav|tests/data/ljspeech/wavs/LJ015-0182.npy +tests/data/ljspeech/wavs/LJ030-0019.wav|tests/data/ljspeech/wavs/LJ030-0019.npy +tests/data/ljspeech/wavs/LJ016-0268.wav|tests/data/ljspeech/wavs/LJ016-0268.npy +tests/data/ljspeech/wavs/LJ028-0305.wav|tests/data/ljspeech/wavs/LJ028-0305.npy +tests/data/ljspeech/wavs/LJ037-0248.wav|tests/data/ljspeech/wavs/LJ037-0248.npy +tests/data/ljspeech/wavs/LJ016-0104.wav|tests/data/ljspeech/wavs/LJ016-0104.npy +tests/data/ljspeech/wavs/LJ028-0026.wav|tests/data/ljspeech/wavs/LJ028-0026.npy +tests/data/ljspeech/wavs/LJ049-0064.wav|tests/data/ljspeech/wavs/LJ049-0064.npy +tests/data/ljspeech/wavs/LJ035-0175.wav|tests/data/ljspeech/wavs/LJ035-0175.npy +tests/data/ljspeech/wavs/LJ047-0146.wav|tests/data/ljspeech/wavs/LJ047-0146.npy +tests/data/ljspeech/wavs/LJ048-0139.wav|tests/data/ljspeech/wavs/LJ048-0139.npy +tests/data/ljspeech/wavs/LJ003-0307.wav|tests/data/ljspeech/wavs/LJ003-0307.npy +tests/data/ljspeech/wavs/LJ050-0115.wav|tests/data/ljspeech/wavs/LJ050-0115.npy +tests/data/ljspeech/wavs/LJ022-0093.wav|tests/data/ljspeech/wavs/LJ022-0093.npy +tests/data/ljspeech/wavs/LJ015-0124.wav|tests/data/ljspeech/wavs/LJ015-0124.npy +tests/data/ljspeech/wavs/LJ016-0167.wav|tests/data/ljspeech/wavs/LJ016-0167.npy +tests/data/ljspeech/wavs/LJ007-0012.wav|tests/data/ljspeech/wavs/LJ007-0012.npy +tests/data/ljspeech/wavs/LJ033-0034.wav|tests/data/ljspeech/wavs/LJ033-0034.npy +tests/data/ljspeech/wavs/LJ002-0212.wav|tests/data/ljspeech/wavs/LJ002-0212.npy +tests/data/ljspeech/wavs/LJ017-0198.wav|tests/data/ljspeech/wavs/LJ017-0198.npy +tests/data/ljspeech/wavs/LJ019-0123.wav|tests/data/ljspeech/wavs/LJ019-0123.npy +tests/data/ljspeech/wavs/LJ019-0283.wav|tests/data/ljspeech/wavs/LJ019-0283.npy +tests/data/ljspeech/wavs/LJ014-0119.wav|tests/data/ljspeech/wavs/LJ014-0119.npy +tests/data/ljspeech/wavs/LJ002-0078.wav|tests/data/ljspeech/wavs/LJ002-0078.npy +tests/data/ljspeech/wavs/LJ001-0175.wav|tests/data/ljspeech/wavs/LJ001-0175.npy +tests/data/ljspeech/wavs/LJ018-0073.wav|tests/data/ljspeech/wavs/LJ018-0073.npy +tests/data/ljspeech/wavs/LJ032-0047.wav|tests/data/ljspeech/wavs/LJ032-0047.npy +tests/data/ljspeech/wavs/LJ025-0134.wav|tests/data/ljspeech/wavs/LJ025-0134.npy +tests/data/ljspeech/wavs/LJ012-0014.wav|tests/data/ljspeech/wavs/LJ012-0014.npy +tests/data/ljspeech/wavs/LJ013-0045.wav|tests/data/ljspeech/wavs/LJ013-0045.npy +tests/data/ljspeech/wavs/LJ034-0073.wav|tests/data/ljspeech/wavs/LJ034-0073.npy +tests/data/ljspeech/wavs/LJ009-0067.wav|tests/data/ljspeech/wavs/LJ009-0067.npy +tests/data/ljspeech/wavs/LJ004-0178.wav|tests/data/ljspeech/wavs/LJ004-0178.npy +tests/data/ljspeech/wavs/LJ001-0095.wav|tests/data/ljspeech/wavs/LJ001-0095.npy +tests/data/ljspeech/wavs/LJ009-0070.wav|tests/data/ljspeech/wavs/LJ009-0070.npy +tests/data/ljspeech/wavs/LJ043-0031.wav|tests/data/ljspeech/wavs/LJ043-0031.npy +tests/data/ljspeech/wavs/LJ026-0049.wav|tests/data/ljspeech/wavs/LJ026-0049.npy +tests/data/ljspeech/wavs/LJ042-0155.wav|tests/data/ljspeech/wavs/LJ042-0155.npy +tests/data/ljspeech/wavs/LJ007-0213.wav|tests/data/ljspeech/wavs/LJ007-0213.npy +tests/data/ljspeech/wavs/LJ043-0178.wav|tests/data/ljspeech/wavs/LJ043-0178.npy +tests/data/ljspeech/wavs/LJ014-0285.wav|tests/data/ljspeech/wavs/LJ014-0285.npy +tests/data/ljspeech/wavs/LJ032-0054.wav|tests/data/ljspeech/wavs/LJ032-0054.npy +tests/data/ljspeech/wavs/LJ050-0095.wav|tests/data/ljspeech/wavs/LJ050-0095.npy +tests/data/ljspeech/wavs/LJ040-0151.wav|tests/data/ljspeech/wavs/LJ040-0151.npy +tests/data/ljspeech/wavs/LJ035-0065.wav|tests/data/ljspeech/wavs/LJ035-0065.npy +tests/data/ljspeech/wavs/LJ011-0282.wav|tests/data/ljspeech/wavs/LJ011-0282.npy +tests/data/ljspeech/wavs/LJ006-0097.wav|tests/data/ljspeech/wavs/LJ006-0097.npy +tests/data/ljspeech/wavs/LJ005-0228.wav|tests/data/ljspeech/wavs/LJ005-0228.npy +tests/data/ljspeech/wavs/LJ028-0319.wav|tests/data/ljspeech/wavs/LJ028-0319.npy +tests/data/ljspeech/wavs/LJ043-0121.wav|tests/data/ljspeech/wavs/LJ043-0121.npy +tests/data/ljspeech/wavs/LJ042-0249.wav|tests/data/ljspeech/wavs/LJ042-0249.npy +tests/data/ljspeech/wavs/LJ044-0179.wav|tests/data/ljspeech/wavs/LJ044-0179.npy +tests/data/ljspeech/wavs/LJ016-0152.wav|tests/data/ljspeech/wavs/LJ016-0152.npy +tests/data/ljspeech/wavs/LJ013-0197.wav|tests/data/ljspeech/wavs/LJ013-0197.npy +tests/data/ljspeech/wavs/LJ011-0033.wav|tests/data/ljspeech/wavs/LJ011-0033.npy +tests/data/ljspeech/wavs/LJ012-0148.wav|tests/data/ljspeech/wavs/LJ012-0148.npy +tests/data/ljspeech/wavs/LJ008-0152.wav|tests/data/ljspeech/wavs/LJ008-0152.npy +tests/data/ljspeech/wavs/LJ013-0201.wav|tests/data/ljspeech/wavs/LJ013-0201.npy +tests/data/ljspeech/wavs/LJ037-0175.wav|tests/data/ljspeech/wavs/LJ037-0175.npy +tests/data/ljspeech/wavs/LJ006-0105.wav|tests/data/ljspeech/wavs/LJ006-0105.npy +tests/data/ljspeech/wavs/LJ015-0038.wav|tests/data/ljspeech/wavs/LJ015-0038.npy +tests/data/ljspeech/wavs/LJ029-0138.wav|tests/data/ljspeech/wavs/LJ029-0138.npy +tests/data/ljspeech/wavs/LJ044-0027.wav|tests/data/ljspeech/wavs/LJ044-0027.npy +tests/data/ljspeech/wavs/LJ029-0117.wav|tests/data/ljspeech/wavs/LJ029-0117.npy +tests/data/ljspeech/wavs/LJ014-0158.wav|tests/data/ljspeech/wavs/LJ014-0158.npy +tests/data/ljspeech/wavs/LJ037-0148.wav|tests/data/ljspeech/wavs/LJ037-0148.npy +tests/data/ljspeech/wavs/LJ006-0100.wav|tests/data/ljspeech/wavs/LJ006-0100.npy +tests/data/ljspeech/wavs/LJ007-0188.wav|tests/data/ljspeech/wavs/LJ007-0188.npy +tests/data/ljspeech/wavs/LJ011-0021.wav|tests/data/ljspeech/wavs/LJ011-0021.npy +tests/data/ljspeech/wavs/LJ032-0264.wav|tests/data/ljspeech/wavs/LJ032-0264.npy +tests/data/ljspeech/wavs/LJ013-0159.wav|tests/data/ljspeech/wavs/LJ013-0159.npy +tests/data/ljspeech/wavs/LJ016-0148.wav|tests/data/ljspeech/wavs/LJ016-0148.npy +tests/data/ljspeech/wavs/LJ002-0101.wav|tests/data/ljspeech/wavs/LJ002-0101.npy +tests/data/ljspeech/wavs/LJ039-0171.wav|tests/data/ljspeech/wavs/LJ039-0171.npy +tests/data/ljspeech/wavs/LJ008-0191.wav|tests/data/ljspeech/wavs/LJ008-0191.npy +tests/data/ljspeech/wavs/LJ008-0002.wav|tests/data/ljspeech/wavs/LJ008-0002.npy +tests/data/ljspeech/wavs/LJ026-0115.wav|tests/data/ljspeech/wavs/LJ026-0115.npy +tests/data/ljspeech/wavs/LJ001-0107.wav|tests/data/ljspeech/wavs/LJ001-0107.npy +tests/data/ljspeech/wavs/LJ026-0130.wav|tests/data/ljspeech/wavs/LJ026-0130.npy +tests/data/ljspeech/wavs/LJ022-0014.wav|tests/data/ljspeech/wavs/LJ022-0014.npy +tests/data/ljspeech/wavs/LJ014-0041.wav|tests/data/ljspeech/wavs/LJ014-0041.npy +tests/data/ljspeech/wavs/LJ021-0129.wav|tests/data/ljspeech/wavs/LJ021-0129.npy +tests/data/ljspeech/wavs/LJ047-0091.wav|tests/data/ljspeech/wavs/LJ047-0091.npy +tests/data/ljspeech/wavs/LJ028-0393.wav|tests/data/ljspeech/wavs/LJ028-0393.npy +tests/data/ljspeech/wavs/LJ036-0092.wav|tests/data/ljspeech/wavs/LJ036-0092.npy +tests/data/ljspeech/wavs/LJ033-0138.wav|tests/data/ljspeech/wavs/LJ033-0138.npy +tests/data/ljspeech/wavs/LJ015-0113.wav|tests/data/ljspeech/wavs/LJ015-0113.npy +tests/data/ljspeech/wavs/LJ026-0118.wav|tests/data/ljspeech/wavs/LJ026-0118.npy +tests/data/ljspeech/wavs/LJ008-0186.wav|tests/data/ljspeech/wavs/LJ008-0186.npy +tests/data/ljspeech/wavs/LJ030-0040.wav|tests/data/ljspeech/wavs/LJ030-0040.npy +tests/data/ljspeech/wavs/LJ004-0196.wav|tests/data/ljspeech/wavs/LJ004-0196.npy +tests/data/ljspeech/wavs/LJ006-0298.wav|tests/data/ljspeech/wavs/LJ006-0298.npy +tests/data/ljspeech/wavs/LJ002-0193.wav|tests/data/ljspeech/wavs/LJ002-0193.npy +tests/data/ljspeech/wavs/LJ037-0179.wav|tests/data/ljspeech/wavs/LJ037-0179.npy +tests/data/ljspeech/wavs/LJ018-0201.wav|tests/data/ljspeech/wavs/LJ018-0201.npy +tests/data/ljspeech/wavs/LJ003-0106.wav|tests/data/ljspeech/wavs/LJ003-0106.npy +tests/data/ljspeech/wavs/LJ009-0135.wav|tests/data/ljspeech/wavs/LJ009-0135.npy +tests/data/ljspeech/wavs/LJ030-0177.wav|tests/data/ljspeech/wavs/LJ030-0177.npy +tests/data/ljspeech/wavs/LJ015-0213.wav|tests/data/ljspeech/wavs/LJ015-0213.npy +tests/data/ljspeech/wavs/LJ001-0114.wav|tests/data/ljspeech/wavs/LJ001-0114.npy +tests/data/ljspeech/wavs/LJ040-0177.wav|tests/data/ljspeech/wavs/LJ040-0177.npy +tests/data/ljspeech/wavs/LJ004-0201.wav|tests/data/ljspeech/wavs/LJ004-0201.npy +tests/data/ljspeech/wavs/LJ036-0011.wav|tests/data/ljspeech/wavs/LJ036-0011.npy +tests/data/ljspeech/wavs/LJ002-0223.wav|tests/data/ljspeech/wavs/LJ002-0223.npy +tests/data/ljspeech/wavs/LJ003-0137.wav|tests/data/ljspeech/wavs/LJ003-0137.npy +tests/data/ljspeech/wavs/LJ032-0006.wav|tests/data/ljspeech/wavs/LJ032-0006.npy +tests/data/ljspeech/wavs/LJ048-0220.wav|tests/data/ljspeech/wavs/LJ048-0220.npy +tests/data/ljspeech/wavs/LJ036-0191.wav|tests/data/ljspeech/wavs/LJ036-0191.npy +tests/data/ljspeech/wavs/LJ033-0174.wav|tests/data/ljspeech/wavs/LJ033-0174.npy +tests/data/ljspeech/wavs/LJ002-0052.wav|tests/data/ljspeech/wavs/LJ002-0052.npy +tests/data/ljspeech/wavs/LJ024-0073.wav|tests/data/ljspeech/wavs/LJ024-0073.npy +tests/data/ljspeech/wavs/LJ036-0179.wav|tests/data/ljspeech/wavs/LJ036-0179.npy +tests/data/ljspeech/wavs/LJ027-0098.wav|tests/data/ljspeech/wavs/LJ027-0098.npy +tests/data/ljspeech/wavs/LJ042-0244.wav|tests/data/ljspeech/wavs/LJ042-0244.npy +tests/data/ljspeech/wavs/LJ042-0158.wav|tests/data/ljspeech/wavs/LJ042-0158.npy +tests/data/ljspeech/wavs/LJ016-0173.wav|tests/data/ljspeech/wavs/LJ016-0173.npy +tests/data/ljspeech/wavs/LJ004-0077.wav|tests/data/ljspeech/wavs/LJ004-0077.npy +tests/data/ljspeech/wavs/LJ044-0084.wav|tests/data/ljspeech/wavs/LJ044-0084.npy +tests/data/ljspeech/wavs/LJ009-0103.wav|tests/data/ljspeech/wavs/LJ009-0103.npy +tests/data/ljspeech/wavs/LJ024-0048.wav|tests/data/ljspeech/wavs/LJ024-0048.npy +tests/data/ljspeech/wavs/LJ031-0224.wav|tests/data/ljspeech/wavs/LJ031-0224.npy +tests/data/ljspeech/wavs/LJ008-0100.wav|tests/data/ljspeech/wavs/LJ008-0100.npy +tests/data/ljspeech/wavs/LJ003-0019.wav|tests/data/ljspeech/wavs/LJ003-0019.npy +tests/data/ljspeech/wavs/LJ001-0039.wav|tests/data/ljspeech/wavs/LJ001-0039.npy +tests/data/ljspeech/wavs/LJ034-0169.wav|tests/data/ljspeech/wavs/LJ034-0169.npy +tests/data/ljspeech/wavs/LJ019-0327.wav|tests/data/ljspeech/wavs/LJ019-0327.npy +tests/data/ljspeech/wavs/LJ008-0172.wav|tests/data/ljspeech/wavs/LJ008-0172.npy +tests/data/ljspeech/wavs/LJ016-0395.wav|tests/data/ljspeech/wavs/LJ016-0395.npy +tests/data/ljspeech/wavs/LJ017-0036.wav|tests/data/ljspeech/wavs/LJ017-0036.npy +tests/data/ljspeech/wavs/LJ007-0027.wav|tests/data/ljspeech/wavs/LJ007-0027.npy +tests/data/ljspeech/wavs/LJ020-0095.wav|tests/data/ljspeech/wavs/LJ020-0095.npy +tests/data/ljspeech/wavs/LJ034-0179.wav|tests/data/ljspeech/wavs/LJ034-0179.npy +tests/data/ljspeech/wavs/LJ007-0146.wav|tests/data/ljspeech/wavs/LJ007-0146.npy +tests/data/ljspeech/wavs/LJ016-0446.wav|tests/data/ljspeech/wavs/LJ016-0446.npy +tests/data/ljspeech/wavs/LJ024-0082.wav|tests/data/ljspeech/wavs/LJ024-0082.npy +tests/data/ljspeech/wavs/LJ008-0088.wav|tests/data/ljspeech/wavs/LJ008-0088.npy +tests/data/ljspeech/wavs/LJ020-0032.wav|tests/data/ljspeech/wavs/LJ020-0032.npy +tests/data/ljspeech/wavs/LJ008-0266.wav|tests/data/ljspeech/wavs/LJ008-0266.npy +tests/data/ljspeech/wavs/LJ046-0130.wav|tests/data/ljspeech/wavs/LJ046-0130.npy +tests/data/ljspeech/wavs/LJ038-0243.wav|tests/data/ljspeech/wavs/LJ038-0243.npy +tests/data/ljspeech/wavs/LJ043-0088.wav|tests/data/ljspeech/wavs/LJ043-0088.npy +tests/data/ljspeech/wavs/LJ050-0051.wav|tests/data/ljspeech/wavs/LJ050-0051.npy +tests/data/ljspeech/wavs/LJ029-0192.wav|tests/data/ljspeech/wavs/LJ029-0192.npy +tests/data/ljspeech/wavs/LJ011-0118.wav|tests/data/ljspeech/wavs/LJ011-0118.npy +tests/data/ljspeech/wavs/LJ042-0185.wav|tests/data/ljspeech/wavs/LJ042-0185.npy +tests/data/ljspeech/wavs/LJ022-0128.wav|tests/data/ljspeech/wavs/LJ022-0128.npy +tests/data/ljspeech/wavs/LJ045-0163.wav|tests/data/ljspeech/wavs/LJ045-0163.npy +tests/data/ljspeech/wavs/LJ018-0254.wav|tests/data/ljspeech/wavs/LJ018-0254.npy +tests/data/ljspeech/wavs/LJ035-0203.wav|tests/data/ljspeech/wavs/LJ035-0203.npy +tests/data/ljspeech/wavs/LJ036-0216.wav|tests/data/ljspeech/wavs/LJ036-0216.npy +tests/data/ljspeech/wavs/LJ010-0011.wav|tests/data/ljspeech/wavs/LJ010-0011.npy +tests/data/ljspeech/wavs/LJ043-0173.wav|tests/data/ljspeech/wavs/LJ043-0173.npy +tests/data/ljspeech/wavs/LJ032-0041.wav|tests/data/ljspeech/wavs/LJ032-0041.npy +tests/data/ljspeech/wavs/LJ043-0161.wav|tests/data/ljspeech/wavs/LJ043-0161.npy +tests/data/ljspeech/wavs/LJ037-0007.wav|tests/data/ljspeech/wavs/LJ037-0007.npy +tests/data/ljspeech/wavs/LJ038-0111.wav|tests/data/ljspeech/wavs/LJ038-0111.npy +tests/data/ljspeech/wavs/LJ015-0217.wav|tests/data/ljspeech/wavs/LJ015-0217.npy +tests/data/ljspeech/wavs/LJ010-0101.wav|tests/data/ljspeech/wavs/LJ010-0101.npy +tests/data/ljspeech/wavs/LJ012-0026.wav|tests/data/ljspeech/wavs/LJ012-0026.npy +tests/data/ljspeech/wavs/LJ008-0314.wav|tests/data/ljspeech/wavs/LJ008-0314.npy +tests/data/ljspeech/wavs/LJ008-0308.wav|tests/data/ljspeech/wavs/LJ008-0308.npy +tests/data/ljspeech/wavs/LJ012-0285.wav|tests/data/ljspeech/wavs/LJ012-0285.npy +tests/data/ljspeech/wavs/LJ010-0128.wav|tests/data/ljspeech/wavs/LJ010-0128.npy +tests/data/ljspeech/wavs/LJ013-0259.wav|tests/data/ljspeech/wavs/LJ013-0259.npy +tests/data/ljspeech/wavs/LJ019-0066.wav|tests/data/ljspeech/wavs/LJ019-0066.npy +tests/data/ljspeech/wavs/LJ008-0222.wav|tests/data/ljspeech/wavs/LJ008-0222.npy +tests/data/ljspeech/wavs/LJ018-0083.wav|tests/data/ljspeech/wavs/LJ018-0083.npy +tests/data/ljspeech/wavs/LJ045-0006.wav|tests/data/ljspeech/wavs/LJ045-0006.npy +tests/data/ljspeech/wavs/LJ018-0262.wav|tests/data/ljspeech/wavs/LJ018-0262.npy +tests/data/ljspeech/wavs/LJ038-0261.wav|tests/data/ljspeech/wavs/LJ038-0261.npy +tests/data/ljspeech/wavs/LJ002-0148.wav|tests/data/ljspeech/wavs/LJ002-0148.npy +tests/data/ljspeech/wavs/LJ038-0175.wav|tests/data/ljspeech/wavs/LJ038-0175.npy +tests/data/ljspeech/wavs/LJ002-0179.wav|tests/data/ljspeech/wavs/LJ002-0179.npy +tests/data/ljspeech/wavs/LJ028-0184.wav|tests/data/ljspeech/wavs/LJ028-0184.npy +tests/data/ljspeech/wavs/LJ039-0202.wav|tests/data/ljspeech/wavs/LJ039-0202.npy +tests/data/ljspeech/wavs/LJ029-0110.wav|tests/data/ljspeech/wavs/LJ029-0110.npy +tests/data/ljspeech/wavs/LJ028-0300.wav|tests/data/ljspeech/wavs/LJ028-0300.npy +tests/data/ljspeech/wavs/LJ018-0207.wav|tests/data/ljspeech/wavs/LJ018-0207.npy +tests/data/ljspeech/wavs/LJ010-0264.wav|tests/data/ljspeech/wavs/LJ010-0264.npy +tests/data/ljspeech/wavs/LJ016-0444.wav|tests/data/ljspeech/wavs/LJ016-0444.npy +tests/data/ljspeech/wavs/LJ033-0051.wav|tests/data/ljspeech/wavs/LJ033-0051.npy +tests/data/ljspeech/wavs/LJ042-0237.wav|tests/data/ljspeech/wavs/LJ042-0237.npy +tests/data/ljspeech/wavs/LJ022-0077.wav|tests/data/ljspeech/wavs/LJ022-0077.npy +tests/data/ljspeech/wavs/LJ034-0086.wav|tests/data/ljspeech/wavs/LJ034-0086.npy +tests/data/ljspeech/wavs/LJ042-0052.wav|tests/data/ljspeech/wavs/LJ042-0052.npy +tests/data/ljspeech/wavs/LJ011-0182.wav|tests/data/ljspeech/wavs/LJ011-0182.npy +tests/data/ljspeech/wavs/LJ039-0150.wav|tests/data/ljspeech/wavs/LJ039-0150.npy +tests/data/ljspeech/wavs/LJ039-0198.wav|tests/data/ljspeech/wavs/LJ039-0198.npy +tests/data/ljspeech/wavs/LJ040-0209.wav|tests/data/ljspeech/wavs/LJ040-0209.npy +tests/data/ljspeech/wavs/LJ018-0378.wav|tests/data/ljspeech/wavs/LJ018-0378.npy +tests/data/ljspeech/wavs/LJ017-0234.wav|tests/data/ljspeech/wavs/LJ017-0234.npy +tests/data/ljspeech/wavs/LJ039-0056.wav|tests/data/ljspeech/wavs/LJ039-0056.npy +tests/data/ljspeech/wavs/LJ019-0191.wav|tests/data/ljspeech/wavs/LJ019-0191.npy +tests/data/ljspeech/wavs/LJ005-0212.wav|tests/data/ljspeech/wavs/LJ005-0212.npy +tests/data/ljspeech/wavs/LJ007-0193.wav|tests/data/ljspeech/wavs/LJ007-0193.npy +tests/data/ljspeech/wavs/LJ024-0097.wav|tests/data/ljspeech/wavs/LJ024-0097.npy +tests/data/ljspeech/wavs/LJ018-0344.wav|tests/data/ljspeech/wavs/LJ018-0344.npy +tests/data/ljspeech/wavs/LJ003-0182.wav|tests/data/ljspeech/wavs/LJ003-0182.npy +tests/data/ljspeech/wavs/LJ042-0175.wav|tests/data/ljspeech/wavs/LJ042-0175.npy +tests/data/ljspeech/wavs/LJ032-0138.wav|tests/data/ljspeech/wavs/LJ032-0138.npy +tests/data/ljspeech/wavs/LJ009-0113.wav|tests/data/ljspeech/wavs/LJ009-0113.npy +tests/data/ljspeech/wavs/LJ041-0116.wav|tests/data/ljspeech/wavs/LJ041-0116.npy +tests/data/ljspeech/wavs/LJ022-0159.wav|tests/data/ljspeech/wavs/LJ022-0159.npy +tests/data/ljspeech/wavs/LJ004-0146.wav|tests/data/ljspeech/wavs/LJ004-0146.npy +tests/data/ljspeech/wavs/LJ023-0039.wav|tests/data/ljspeech/wavs/LJ023-0039.npy +tests/data/ljspeech/wavs/LJ019-0347.wav|tests/data/ljspeech/wavs/LJ019-0347.npy +tests/data/ljspeech/wavs/LJ044-0148.wav|tests/data/ljspeech/wavs/LJ044-0148.npy +tests/data/ljspeech/wavs/LJ022-0171.wav|tests/data/ljspeech/wavs/LJ022-0171.npy +tests/data/ljspeech/wavs/LJ035-0017.wav|tests/data/ljspeech/wavs/LJ035-0017.npy +tests/data/ljspeech/wavs/LJ011-0016.wav|tests/data/ljspeech/wavs/LJ011-0016.npy +tests/data/ljspeech/wavs/LJ005-0017.wav|tests/data/ljspeech/wavs/LJ005-0017.npy +tests/data/ljspeech/wavs/LJ050-0143.wav|tests/data/ljspeech/wavs/LJ050-0143.npy +tests/data/ljspeech/wavs/LJ045-0241.wav|tests/data/ljspeech/wavs/LJ045-0241.npy +tests/data/ljspeech/wavs/LJ004-0241.wav|tests/data/ljspeech/wavs/LJ004-0241.npy +tests/data/ljspeech/wavs/LJ002-0254.wav|tests/data/ljspeech/wavs/LJ002-0254.npy +tests/data/ljspeech/wavs/LJ011-0079.wav|tests/data/ljspeech/wavs/LJ011-0079.npy +tests/data/ljspeech/wavs/LJ040-0233.wav|tests/data/ljspeech/wavs/LJ040-0233.npy +tests/data/ljspeech/wavs/LJ028-0498.wav|tests/data/ljspeech/wavs/LJ028-0498.npy +tests/data/ljspeech/wavs/LJ028-0407.wav|tests/data/ljspeech/wavs/LJ028-0407.npy +tests/data/ljspeech/wavs/LJ009-0205.wav|tests/data/ljspeech/wavs/LJ009-0205.npy +tests/data/ljspeech/wavs/LJ028-0113.wav|tests/data/ljspeech/wavs/LJ028-0113.npy +tests/data/ljspeech/wavs/LJ017-0114.wav|tests/data/ljspeech/wavs/LJ017-0114.npy +tests/data/ljspeech/wavs/LJ015-0015.wav|tests/data/ljspeech/wavs/LJ015-0015.npy +tests/data/ljspeech/wavs/LJ013-0020.wav|tests/data/ljspeech/wavs/LJ013-0020.npy +tests/data/ljspeech/wavs/LJ021-0131.wav|tests/data/ljspeech/wavs/LJ021-0131.npy +tests/data/ljspeech/wavs/LJ048-0021.wav|tests/data/ljspeech/wavs/LJ048-0021.npy +tests/data/ljspeech/wavs/LJ043-0156.wav|tests/data/ljspeech/wavs/LJ043-0156.npy +tests/data/ljspeech/wavs/LJ013-0024.wav|tests/data/ljspeech/wavs/LJ013-0024.npy +tests/data/ljspeech/wavs/LJ042-0160.wav|tests/data/ljspeech/wavs/LJ042-0160.npy +tests/data/ljspeech/wavs/LJ009-0262.wav|tests/data/ljspeech/wavs/LJ009-0262.npy +tests/data/ljspeech/wavs/LJ044-0117.wav|tests/data/ljspeech/wavs/LJ044-0117.npy +tests/data/ljspeech/wavs/LJ040-0084.wav|tests/data/ljspeech/wavs/LJ040-0084.npy +tests/data/ljspeech/wavs/LJ003-0142.wav|tests/data/ljspeech/wavs/LJ003-0142.npy +tests/data/ljspeech/wavs/LJ034-0113.wav|tests/data/ljspeech/wavs/LJ034-0113.npy +tests/data/ljspeech/wavs/LJ043-0135.wav|tests/data/ljspeech/wavs/LJ043-0135.npy +tests/data/ljspeech/wavs/LJ035-0006.wav|tests/data/ljspeech/wavs/LJ035-0006.npy +tests/data/ljspeech/wavs/LJ046-0118.wav|tests/data/ljspeech/wavs/LJ046-0118.npy +tests/data/ljspeech/wavs/LJ045-0145.wav|tests/data/ljspeech/wavs/LJ045-0145.npy +tests/data/ljspeech/wavs/LJ015-0077.wav|tests/data/ljspeech/wavs/LJ015-0077.npy +tests/data/ljspeech/wavs/LJ020-0007.wav|tests/data/ljspeech/wavs/LJ020-0007.npy +tests/data/ljspeech/wavs/LJ038-0128.wav|tests/data/ljspeech/wavs/LJ038-0128.npy +tests/data/ljspeech/wavs/LJ033-0028.wav|tests/data/ljspeech/wavs/LJ033-0028.npy +tests/data/ljspeech/wavs/LJ007-0221.wav|tests/data/ljspeech/wavs/LJ007-0221.npy +tests/data/ljspeech/wavs/LJ004-0027.wav|tests/data/ljspeech/wavs/LJ004-0027.npy +tests/data/ljspeech/wavs/LJ005-0094.wav|tests/data/ljspeech/wavs/LJ005-0094.npy +tests/data/ljspeech/wavs/LJ003-0232.wav|tests/data/ljspeech/wavs/LJ003-0232.npy +tests/data/ljspeech/wavs/LJ038-0068.wav|tests/data/ljspeech/wavs/LJ038-0068.npy +tests/data/ljspeech/wavs/LJ009-0121.wav|tests/data/ljspeech/wavs/LJ009-0121.npy +tests/data/ljspeech/wavs/LJ004-0010.wav|tests/data/ljspeech/wavs/LJ004-0010.npy +tests/data/ljspeech/wavs/LJ021-0033.wav|tests/data/ljspeech/wavs/LJ021-0033.npy +tests/data/ljspeech/wavs/LJ006-0089.wav|tests/data/ljspeech/wavs/LJ006-0089.npy +tests/data/ljspeech/wavs/LJ028-0436.wav|tests/data/ljspeech/wavs/LJ028-0436.npy +tests/data/ljspeech/wavs/LJ019-0316.wav|tests/data/ljspeech/wavs/LJ019-0316.npy +tests/data/ljspeech/wavs/LJ021-0048.wav|tests/data/ljspeech/wavs/LJ021-0048.npy +tests/data/ljspeech/wavs/LJ008-0285.wav|tests/data/ljspeech/wavs/LJ008-0285.npy +tests/data/ljspeech/wavs/LJ019-0338.wav|tests/data/ljspeech/wavs/LJ019-0338.npy +tests/data/ljspeech/wavs/LJ014-0147.wav|tests/data/ljspeech/wavs/LJ014-0147.npy +tests/data/ljspeech/wavs/LJ003-0149.wav|tests/data/ljspeech/wavs/LJ003-0149.npy +tests/data/ljspeech/wavs/LJ004-0206.wav|tests/data/ljspeech/wavs/LJ004-0206.npy +tests/data/ljspeech/wavs/LJ015-0172.wav|tests/data/ljspeech/wavs/LJ015-0172.npy +tests/data/ljspeech/wavs/LJ009-0236.wav|tests/data/ljspeech/wavs/LJ009-0236.npy +tests/data/ljspeech/wavs/LJ038-0144.wav|tests/data/ljspeech/wavs/LJ038-0144.npy +tests/data/ljspeech/wavs/LJ021-0102.wav|tests/data/ljspeech/wavs/LJ021-0102.npy +tests/data/ljspeech/wavs/LJ028-0433.wav|tests/data/ljspeech/wavs/LJ028-0433.npy +tests/data/ljspeech/wavs/LJ028-0087.wav|tests/data/ljspeech/wavs/LJ028-0087.npy +tests/data/ljspeech/wavs/LJ037-0197.wav|tests/data/ljspeech/wavs/LJ037-0197.npy +tests/data/ljspeech/wavs/LJ030-0159.wav|tests/data/ljspeech/wavs/LJ030-0159.npy +tests/data/ljspeech/wavs/LJ025-0013.wav|tests/data/ljspeech/wavs/LJ025-0013.npy +tests/data/ljspeech/wavs/LJ016-0276.wav|tests/data/ljspeech/wavs/LJ016-0276.npy +tests/data/ljspeech/wavs/LJ019-0206.wav|tests/data/ljspeech/wavs/LJ019-0206.npy +tests/data/ljspeech/wavs/LJ005-0158.wav|tests/data/ljspeech/wavs/LJ005-0158.npy +tests/data/ljspeech/wavs/LJ027-0162.wav|tests/data/ljspeech/wavs/LJ027-0162.npy +tests/data/ljspeech/wavs/LJ043-0183.wav|tests/data/ljspeech/wavs/LJ043-0183.npy +tests/data/ljspeech/wavs/LJ024-0104.wav|tests/data/ljspeech/wavs/LJ024-0104.npy +tests/data/ljspeech/wavs/LJ050-0164.wav|tests/data/ljspeech/wavs/LJ050-0164.npy +tests/data/ljspeech/wavs/LJ011-0233.wav|tests/data/ljspeech/wavs/LJ011-0233.npy +tests/data/ljspeech/wavs/LJ023-0065.wav|tests/data/ljspeech/wavs/LJ023-0065.npy +tests/data/ljspeech/wavs/LJ046-0032.wav|tests/data/ljspeech/wavs/LJ046-0032.npy +tests/data/ljspeech/wavs/LJ016-0347.wav|tests/data/ljspeech/wavs/LJ016-0347.npy +tests/data/ljspeech/wavs/LJ005-0182.wav|tests/data/ljspeech/wavs/LJ005-0182.npy +tests/data/ljspeech/wavs/LJ011-0237.wav|tests/data/ljspeech/wavs/LJ011-0237.npy +tests/data/ljspeech/wavs/LJ027-0168.wav|tests/data/ljspeech/wavs/LJ027-0168.npy +tests/data/ljspeech/wavs/LJ017-0167.wav|tests/data/ljspeech/wavs/LJ017-0167.npy +tests/data/ljspeech/wavs/LJ037-0086.wav|tests/data/ljspeech/wavs/LJ037-0086.npy +tests/data/ljspeech/wavs/LJ045-0250.wav|tests/data/ljspeech/wavs/LJ045-0250.npy +tests/data/ljspeech/wavs/LJ010-0251.wav|tests/data/ljspeech/wavs/LJ010-0251.npy +tests/data/ljspeech/wavs/LJ036-0068.wav|tests/data/ljspeech/wavs/LJ036-0068.npy +tests/data/ljspeech/wavs/LJ019-0282.wav|tests/data/ljspeech/wavs/LJ019-0282.npy +tests/data/ljspeech/wavs/LJ028-0141.wav|tests/data/ljspeech/wavs/LJ028-0141.npy +tests/data/ljspeech/wavs/LJ016-0281.wav|tests/data/ljspeech/wavs/LJ016-0281.npy +tests/data/ljspeech/wavs/LJ023-0102.wav|tests/data/ljspeech/wavs/LJ023-0102.npy +tests/data/ljspeech/wavs/LJ018-0056.wav|tests/data/ljspeech/wavs/LJ018-0056.npy +tests/data/ljspeech/wavs/LJ007-0171.wav|tests/data/ljspeech/wavs/LJ007-0171.npy +tests/data/ljspeech/wavs/LJ016-0393.wav|tests/data/ljspeech/wavs/LJ016-0393.npy +tests/data/ljspeech/wavs/LJ010-0213.wav|tests/data/ljspeech/wavs/LJ010-0213.npy +tests/data/ljspeech/wavs/LJ005-0297.wav|tests/data/ljspeech/wavs/LJ005-0297.npy +tests/data/ljspeech/wavs/LJ008-0122.wav|tests/data/ljspeech/wavs/LJ008-0122.npy +tests/data/ljspeech/wavs/LJ011-0074.wav|tests/data/ljspeech/wavs/LJ011-0074.npy +tests/data/ljspeech/wavs/LJ036-0185.wav|tests/data/ljspeech/wavs/LJ036-0185.npy +tests/data/ljspeech/wavs/LJ037-0095.wav|tests/data/ljspeech/wavs/LJ037-0095.npy +tests/data/ljspeech/wavs/LJ033-0124.wav|tests/data/ljspeech/wavs/LJ033-0124.npy +tests/data/ljspeech/wavs/LJ033-0069.wav|tests/data/ljspeech/wavs/LJ033-0069.npy +tests/data/ljspeech/wavs/LJ027-0125.wav|tests/data/ljspeech/wavs/LJ027-0125.npy +tests/data/ljspeech/wavs/LJ038-0290.wav|tests/data/ljspeech/wavs/LJ038-0290.npy +tests/data/ljspeech/wavs/LJ016-0232.wav|tests/data/ljspeech/wavs/LJ016-0232.npy +tests/data/ljspeech/wavs/LJ040-0179.wav|tests/data/ljspeech/wavs/LJ040-0179.npy +tests/data/ljspeech/wavs/LJ042-0137.wav|tests/data/ljspeech/wavs/LJ042-0137.npy +tests/data/ljspeech/wavs/LJ023-0048.wav|tests/data/ljspeech/wavs/LJ023-0048.npy +tests/data/ljspeech/wavs/LJ042-0070.wav|tests/data/ljspeech/wavs/LJ042-0070.npy +tests/data/ljspeech/wavs/LJ004-0117.wav|tests/data/ljspeech/wavs/LJ004-0117.npy +tests/data/ljspeech/wavs/LJ008-0237.wav|tests/data/ljspeech/wavs/LJ008-0237.npy +tests/data/ljspeech/wavs/LJ019-0336.wav|tests/data/ljspeech/wavs/LJ019-0336.npy +tests/data/ljspeech/wavs/LJ019-0334.wav|tests/data/ljspeech/wavs/LJ019-0334.npy +tests/data/ljspeech/wavs/LJ016-0177.wav|tests/data/ljspeech/wavs/LJ016-0177.npy +tests/data/ljspeech/wavs/LJ050-0251.wav|tests/data/ljspeech/wavs/LJ050-0251.npy +tests/data/ljspeech/wavs/LJ023-0052.wav|tests/data/ljspeech/wavs/LJ023-0052.npy +tests/data/ljspeech/wavs/LJ005-0279.wav|tests/data/ljspeech/wavs/LJ005-0279.npy +tests/data/ljspeech/wavs/LJ037-0063.wav|tests/data/ljspeech/wavs/LJ037-0063.npy +tests/data/ljspeech/wavs/LJ024-0028.wav|tests/data/ljspeech/wavs/LJ024-0028.npy +tests/data/ljspeech/wavs/LJ011-0231.wav|tests/data/ljspeech/wavs/LJ011-0231.npy +tests/data/ljspeech/wavs/LJ037-0129.wav|tests/data/ljspeech/wavs/LJ037-0129.npy +tests/data/ljspeech/wavs/LJ002-0309.wav|tests/data/ljspeech/wavs/LJ002-0309.npy +tests/data/ljspeech/wavs/LJ016-0176.wav|tests/data/ljspeech/wavs/LJ016-0176.npy +tests/data/ljspeech/wavs/LJ002-0096.wav|tests/data/ljspeech/wavs/LJ002-0096.npy +tests/data/ljspeech/wavs/LJ002-0252.wav|tests/data/ljspeech/wavs/LJ002-0252.npy +tests/data/ljspeech/wavs/LJ040-0158.wav|tests/data/ljspeech/wavs/LJ040-0158.npy +tests/data/ljspeech/wavs/LJ001-0043.wav|tests/data/ljspeech/wavs/LJ001-0043.npy +tests/data/ljspeech/wavs/LJ030-0197.wav|tests/data/ljspeech/wavs/LJ030-0197.npy +tests/data/ljspeech/wavs/LJ014-0130.wav|tests/data/ljspeech/wavs/LJ014-0130.npy +tests/data/ljspeech/wavs/LJ014-0272.wav|tests/data/ljspeech/wavs/LJ014-0272.npy +tests/data/ljspeech/wavs/LJ039-0169.wav|tests/data/ljspeech/wavs/LJ039-0169.npy +tests/data/ljspeech/wavs/LJ039-0093.wav|tests/data/ljspeech/wavs/LJ039-0093.npy +tests/data/ljspeech/wavs/LJ045-0134.wav|tests/data/ljspeech/wavs/LJ045-0134.npy +tests/data/ljspeech/wavs/LJ032-0092.wav|tests/data/ljspeech/wavs/LJ032-0092.npy +tests/data/ljspeech/wavs/LJ032-0040.wav|tests/data/ljspeech/wavs/LJ032-0040.npy +tests/data/ljspeech/wavs/LJ040-0048.wav|tests/data/ljspeech/wavs/LJ040-0048.npy +tests/data/ljspeech/wavs/LJ022-0109.wav|tests/data/ljspeech/wavs/LJ022-0109.npy +tests/data/ljspeech/wavs/LJ033-0197.wav|tests/data/ljspeech/wavs/LJ033-0197.npy +tests/data/ljspeech/wavs/LJ022-0051.wav|tests/data/ljspeech/wavs/LJ022-0051.npy +tests/data/ljspeech/wavs/LJ045-0079.wav|tests/data/ljspeech/wavs/LJ045-0079.npy +tests/data/ljspeech/wavs/LJ012-0268.wav|tests/data/ljspeech/wavs/LJ012-0268.npy +tests/data/ljspeech/wavs/LJ031-0106.wav|tests/data/ljspeech/wavs/LJ031-0106.npy +tests/data/ljspeech/wavs/LJ045-0119.wav|tests/data/ljspeech/wavs/LJ045-0119.npy +tests/data/ljspeech/wavs/LJ042-0231.wav|tests/data/ljspeech/wavs/LJ042-0231.npy +tests/data/ljspeech/wavs/LJ024-0062.wav|tests/data/ljspeech/wavs/LJ024-0062.npy +tests/data/ljspeech/wavs/LJ040-0203.wav|tests/data/ljspeech/wavs/LJ040-0203.npy +tests/data/ljspeech/wavs/LJ002-0070.wav|tests/data/ljspeech/wavs/LJ002-0070.npy +tests/data/ljspeech/wavs/LJ020-0091.wav|tests/data/ljspeech/wavs/LJ020-0091.npy +tests/data/ljspeech/wavs/LJ015-0005.wav|tests/data/ljspeech/wavs/LJ015-0005.npy +tests/data/ljspeech/wavs/LJ027-0084.wav|tests/data/ljspeech/wavs/LJ027-0084.npy +tests/data/ljspeech/wavs/LJ018-0206.wav|tests/data/ljspeech/wavs/LJ018-0206.npy +tests/data/ljspeech/wavs/LJ023-0094.wav|tests/data/ljspeech/wavs/LJ023-0094.npy +tests/data/ljspeech/wavs/LJ011-0162.wav|tests/data/ljspeech/wavs/LJ011-0162.npy +tests/data/ljspeech/wavs/LJ024-0006.wav|tests/data/ljspeech/wavs/LJ024-0006.npy +tests/data/ljspeech/wavs/LJ028-0043.wav|tests/data/ljspeech/wavs/LJ028-0043.npy +tests/data/ljspeech/wavs/LJ038-0205.wav|tests/data/ljspeech/wavs/LJ038-0205.npy +tests/data/ljspeech/wavs/LJ028-0080.wav|tests/data/ljspeech/wavs/LJ028-0080.npy +tests/data/ljspeech/wavs/LJ015-0222.wav|tests/data/ljspeech/wavs/LJ015-0222.npy +tests/data/ljspeech/wavs/LJ039-0166.wav|tests/data/ljspeech/wavs/LJ039-0166.npy +tests/data/ljspeech/wavs/LJ004-0239.wav|tests/data/ljspeech/wavs/LJ004-0239.npy +tests/data/ljspeech/wavs/LJ001-0123.wav|tests/data/ljspeech/wavs/LJ001-0123.npy +tests/data/ljspeech/wavs/LJ028-0065.wav|tests/data/ljspeech/wavs/LJ028-0065.npy +tests/data/ljspeech/wavs/LJ026-0045.wav|tests/data/ljspeech/wavs/LJ026-0045.npy +tests/data/ljspeech/wavs/LJ036-0005.wav|tests/data/ljspeech/wavs/LJ036-0005.npy +tests/data/ljspeech/wavs/LJ043-0080.wav|tests/data/ljspeech/wavs/LJ043-0080.npy +tests/data/ljspeech/wavs/LJ048-0247.wav|tests/data/ljspeech/wavs/LJ048-0247.npy +tests/data/ljspeech/wavs/LJ022-0203.wav|tests/data/ljspeech/wavs/LJ022-0203.npy +tests/data/ljspeech/wavs/LJ042-0016.wav|tests/data/ljspeech/wavs/LJ042-0016.npy +tests/data/ljspeech/wavs/LJ028-0443.wav|tests/data/ljspeech/wavs/LJ028-0443.npy +tests/data/ljspeech/wavs/LJ040-0227.wav|tests/data/ljspeech/wavs/LJ040-0227.npy +tests/data/ljspeech/wavs/LJ002-0118.wav|tests/data/ljspeech/wavs/LJ002-0118.npy +tests/data/ljspeech/wavs/LJ004-0042.wav|tests/data/ljspeech/wavs/LJ004-0042.npy +tests/data/ljspeech/wavs/LJ010-0230.wav|tests/data/ljspeech/wavs/LJ010-0230.npy +tests/data/ljspeech/wavs/LJ018-0285.wav|tests/data/ljspeech/wavs/LJ018-0285.npy +tests/data/ljspeech/wavs/LJ013-0243.wav|tests/data/ljspeech/wavs/LJ013-0243.npy +tests/data/ljspeech/wavs/LJ014-0030.wav|tests/data/ljspeech/wavs/LJ014-0030.npy +tests/data/ljspeech/wavs/LJ008-0251.wav|tests/data/ljspeech/wavs/LJ008-0251.npy +tests/data/ljspeech/wavs/LJ016-0315.wav|tests/data/ljspeech/wavs/LJ016-0315.npy +tests/data/ljspeech/wavs/LJ019-0119.wav|tests/data/ljspeech/wavs/LJ019-0119.npy +tests/data/ljspeech/wavs/LJ016-0333.wav|tests/data/ljspeech/wavs/LJ016-0333.npy +tests/data/ljspeech/wavs/LJ014-0072.wav|tests/data/ljspeech/wavs/LJ014-0072.npy +tests/data/ljspeech/wavs/LJ016-0321.wav|tests/data/ljspeech/wavs/LJ016-0321.npy +tests/data/ljspeech/wavs/LJ042-0234.wav|tests/data/ljspeech/wavs/LJ042-0234.npy +tests/data/ljspeech/wavs/LJ043-0074.wav|tests/data/ljspeech/wavs/LJ043-0074.npy +tests/data/ljspeech/wavs/LJ001-0094.wav|tests/data/ljspeech/wavs/LJ001-0094.npy +tests/data/ljspeech/wavs/LJ019-0105.wav|tests/data/ljspeech/wavs/LJ019-0105.npy +tests/data/ljspeech/wavs/LJ036-0081.wav|tests/data/ljspeech/wavs/LJ036-0081.npy +tests/data/ljspeech/wavs/LJ016-0279.wav|tests/data/ljspeech/wavs/LJ016-0279.npy +tests/data/ljspeech/wavs/LJ006-0178.wav|tests/data/ljspeech/wavs/LJ006-0178.npy +tests/data/ljspeech/wavs/LJ019-0073.wav|tests/data/ljspeech/wavs/LJ019-0073.npy +tests/data/ljspeech/wavs/LJ038-0026.wav|tests/data/ljspeech/wavs/LJ038-0026.npy +tests/data/ljspeech/wavs/LJ003-0140.wav|tests/data/ljspeech/wavs/LJ003-0140.npy +tests/data/ljspeech/wavs/LJ046-0012.wav|tests/data/ljspeech/wavs/LJ046-0012.npy +tests/data/ljspeech/wavs/LJ016-0275.wav|tests/data/ljspeech/wavs/LJ016-0275.npy +tests/data/ljspeech/wavs/LJ046-0192.wav|tests/data/ljspeech/wavs/LJ046-0192.npy +tests/data/ljspeech/wavs/LJ030-0147.wav|tests/data/ljspeech/wavs/LJ030-0147.npy +tests/data/ljspeech/wavs/LJ004-0024.wav|tests/data/ljspeech/wavs/LJ004-0024.npy +tests/data/ljspeech/wavs/LJ016-0169.wav|tests/data/ljspeech/wavs/LJ016-0169.npy +tests/data/ljspeech/wavs/LJ030-0058.wav|tests/data/ljspeech/wavs/LJ030-0058.npy +tests/data/ljspeech/wavs/LJ027-0120.wav|tests/data/ljspeech/wavs/LJ027-0120.npy +tests/data/ljspeech/wavs/LJ012-0153.wav|tests/data/ljspeech/wavs/LJ012-0153.npy +tests/data/ljspeech/wavs/LJ043-0040.wav|tests/data/ljspeech/wavs/LJ043-0040.npy +tests/data/ljspeech/wavs/LJ018-0142.wav|tests/data/ljspeech/wavs/LJ018-0142.npy +tests/data/ljspeech/wavs/LJ030-0185.wav|tests/data/ljspeech/wavs/LJ030-0185.npy +tests/data/ljspeech/wavs/LJ030-0041.wav|tests/data/ljspeech/wavs/LJ030-0041.npy +tests/data/ljspeech/wavs/LJ034-0217.wav|tests/data/ljspeech/wavs/LJ034-0217.npy +tests/data/ljspeech/wavs/LJ018-0220.wav|tests/data/ljspeech/wavs/LJ018-0220.npy +tests/data/ljspeech/wavs/LJ040-0224.wav|tests/data/ljspeech/wavs/LJ040-0224.npy +tests/data/ljspeech/wavs/LJ018-0287.wav|tests/data/ljspeech/wavs/LJ018-0287.npy +tests/data/ljspeech/wavs/LJ015-0056.wav|tests/data/ljspeech/wavs/LJ015-0056.npy +tests/data/ljspeech/wavs/LJ018-0393.wav|tests/data/ljspeech/wavs/LJ018-0393.npy +tests/data/ljspeech/wavs/LJ010-0115.wav|tests/data/ljspeech/wavs/LJ010-0115.npy +tests/data/ljspeech/wavs/LJ015-0108.wav|tests/data/ljspeech/wavs/LJ015-0108.npy +tests/data/ljspeech/wavs/LJ002-0182.wav|tests/data/ljspeech/wavs/LJ002-0182.npy +tests/data/ljspeech/wavs/LJ019-0079.wav|tests/data/ljspeech/wavs/LJ019-0079.npy +tests/data/ljspeech/wavs/LJ015-0165.wav|tests/data/ljspeech/wavs/LJ015-0165.npy +tests/data/ljspeech/wavs/LJ037-0118.wav|tests/data/ljspeech/wavs/LJ037-0118.npy +tests/data/ljspeech/wavs/LJ028-0313.wav|tests/data/ljspeech/wavs/LJ028-0313.npy +tests/data/ljspeech/wavs/LJ018-0049.wav|tests/data/ljspeech/wavs/LJ018-0049.npy +tests/data/ljspeech/wavs/LJ012-0186.wav|tests/data/ljspeech/wavs/LJ012-0186.npy +tests/data/ljspeech/wavs/LJ009-0148.wav|tests/data/ljspeech/wavs/LJ009-0148.npy +tests/data/ljspeech/wavs/LJ003-0120.wav|tests/data/ljspeech/wavs/LJ003-0120.npy +tests/data/ljspeech/wavs/LJ009-0156.wav|tests/data/ljspeech/wavs/LJ009-0156.npy +tests/data/ljspeech/wavs/LJ040-0115.wav|tests/data/ljspeech/wavs/LJ040-0115.npy +tests/data/ljspeech/wavs/LJ010-0065.wav|tests/data/ljspeech/wavs/LJ010-0065.npy +tests/data/ljspeech/wavs/LJ050-0216.wav|tests/data/ljspeech/wavs/LJ050-0216.npy +tests/data/ljspeech/wavs/LJ032-0118.wav|tests/data/ljspeech/wavs/LJ032-0118.npy +tests/data/ljspeech/wavs/LJ036-0169.wav|tests/data/ljspeech/wavs/LJ036-0169.npy +tests/data/ljspeech/wavs/LJ003-0071.wav|tests/data/ljspeech/wavs/LJ003-0071.npy +tests/data/ljspeech/wavs/LJ040-0029.wav|tests/data/ljspeech/wavs/LJ040-0029.npy +tests/data/ljspeech/wavs/LJ048-0045.wav|tests/data/ljspeech/wavs/LJ048-0045.npy +tests/data/ljspeech/wavs/LJ025-0120.wav|tests/data/ljspeech/wavs/LJ025-0120.npy +tests/data/ljspeech/wavs/LJ032-0223.wav|tests/data/ljspeech/wavs/LJ032-0223.npy +tests/data/ljspeech/wavs/LJ012-0208.wav|tests/data/ljspeech/wavs/LJ012-0208.npy +tests/data/ljspeech/wavs/LJ001-0054.wav|tests/data/ljspeech/wavs/LJ001-0054.npy +tests/data/ljspeech/wavs/LJ038-0226.wav|tests/data/ljspeech/wavs/LJ038-0226.npy +tests/data/ljspeech/wavs/LJ008-0086.wav|tests/data/ljspeech/wavs/LJ008-0086.npy +tests/data/ljspeech/wavs/LJ002-0111.wav|tests/data/ljspeech/wavs/LJ002-0111.npy +tests/data/ljspeech/wavs/LJ025-0063.wav|tests/data/ljspeech/wavs/LJ025-0063.npy +tests/data/ljspeech/wavs/LJ021-0011.wav|tests/data/ljspeech/wavs/LJ021-0011.npy +tests/data/ljspeech/wavs/LJ006-0210.wav|tests/data/ljspeech/wavs/LJ006-0210.npy +tests/data/ljspeech/wavs/LJ035-0056.wav|tests/data/ljspeech/wavs/LJ035-0056.npy +tests/data/ljspeech/wavs/LJ042-0053.wav|tests/data/ljspeech/wavs/LJ042-0053.npy +tests/data/ljspeech/wavs/LJ013-0141.wav|tests/data/ljspeech/wavs/LJ013-0141.npy +tests/data/ljspeech/wavs/LJ011-0257.wav|tests/data/ljspeech/wavs/LJ011-0257.npy +tests/data/ljspeech/wavs/LJ005-0244.wav|tests/data/ljspeech/wavs/LJ005-0244.npy +tests/data/ljspeech/wavs/LJ030-0052.wav|tests/data/ljspeech/wavs/LJ030-0052.npy +tests/data/ljspeech/wavs/LJ038-0061.wav|tests/data/ljspeech/wavs/LJ038-0061.npy +tests/data/ljspeech/wavs/LJ050-0089.wav|tests/data/ljspeech/wavs/LJ050-0089.npy +tests/data/ljspeech/wavs/LJ009-0132.wav|tests/data/ljspeech/wavs/LJ009-0132.npy +tests/data/ljspeech/wavs/LJ019-0130.wav|tests/data/ljspeech/wavs/LJ019-0130.npy +tests/data/ljspeech/wavs/LJ008-0310.wav|tests/data/ljspeech/wavs/LJ008-0310.npy +tests/data/ljspeech/wavs/LJ022-0201.wav|tests/data/ljspeech/wavs/LJ022-0201.npy +tests/data/ljspeech/wavs/LJ021-0042.wav|tests/data/ljspeech/wavs/LJ021-0042.npy +tests/data/ljspeech/wavs/LJ011-0167.wav|tests/data/ljspeech/wavs/LJ011-0167.npy +tests/data/ljspeech/wavs/LJ033-0117.wav|tests/data/ljspeech/wavs/LJ033-0117.npy +tests/data/ljspeech/wavs/LJ028-0410.wav|tests/data/ljspeech/wavs/LJ028-0410.npy +tests/data/ljspeech/wavs/LJ005-0135.wav|tests/data/ljspeech/wavs/LJ005-0135.npy +tests/data/ljspeech/wavs/LJ044-0156.wav|tests/data/ljspeech/wavs/LJ044-0156.npy +tests/data/ljspeech/wavs/LJ019-0076.wav|tests/data/ljspeech/wavs/LJ019-0076.npy +tests/data/ljspeech/wavs/LJ025-0028.wav|tests/data/ljspeech/wavs/LJ025-0028.npy +tests/data/ljspeech/wavs/LJ048-0200.wav|tests/data/ljspeech/wavs/LJ048-0200.npy +tests/data/ljspeech/wavs/LJ041-0039.wav|tests/data/ljspeech/wavs/LJ041-0039.npy +tests/data/ljspeech/wavs/LJ017-0090.wav|tests/data/ljspeech/wavs/LJ017-0090.npy +tests/data/ljspeech/wavs/LJ027-0146.wav|tests/data/ljspeech/wavs/LJ027-0146.npy +tests/data/ljspeech/wavs/LJ023-0040.wav|tests/data/ljspeech/wavs/LJ023-0040.npy +tests/data/ljspeech/wavs/LJ009-0015.wav|tests/data/ljspeech/wavs/LJ009-0015.npy +tests/data/ljspeech/wavs/LJ047-0113.wav|tests/data/ljspeech/wavs/LJ047-0113.npy +tests/data/ljspeech/wavs/LJ049-0031.wav|tests/data/ljspeech/wavs/LJ049-0031.npy +tests/data/ljspeech/wavs/LJ043-0150.wav|tests/data/ljspeech/wavs/LJ043-0150.npy +tests/data/ljspeech/wavs/LJ016-0059.wav|tests/data/ljspeech/wavs/LJ016-0059.npy +tests/data/ljspeech/wavs/LJ030-0228.wav|tests/data/ljspeech/wavs/LJ030-0228.npy +tests/data/ljspeech/wavs/LJ019-0265.wav|tests/data/ljspeech/wavs/LJ019-0265.npy +tests/data/ljspeech/wavs/LJ028-0206.wav|tests/data/ljspeech/wavs/LJ028-0206.npy +tests/data/ljspeech/wavs/LJ021-0117.wav|tests/data/ljspeech/wavs/LJ021-0117.npy +tests/data/ljspeech/wavs/LJ008-0215.wav|tests/data/ljspeech/wavs/LJ008-0215.npy +tests/data/ljspeech/wavs/LJ010-0234.wav|tests/data/ljspeech/wavs/LJ010-0234.npy +tests/data/ljspeech/wavs/LJ023-0051.wav|tests/data/ljspeech/wavs/LJ023-0051.npy +tests/data/ljspeech/wavs/LJ012-0249.wav|tests/data/ljspeech/wavs/LJ012-0249.npy +tests/data/ljspeech/wavs/LJ050-0274.wav|tests/data/ljspeech/wavs/LJ050-0274.npy +tests/data/ljspeech/wavs/LJ034-0195.wav|tests/data/ljspeech/wavs/LJ034-0195.npy +tests/data/ljspeech/wavs/LJ005-0282.wav|tests/data/ljspeech/wavs/LJ005-0282.npy +tests/data/ljspeech/wavs/LJ001-0020.wav|tests/data/ljspeech/wavs/LJ001-0020.npy +tests/data/ljspeech/wavs/LJ028-0398.wav|tests/data/ljspeech/wavs/LJ028-0398.npy +tests/data/ljspeech/wavs/LJ030-0047.wav|tests/data/ljspeech/wavs/LJ030-0047.npy +tests/data/ljspeech/wavs/LJ013-0215.wav|tests/data/ljspeech/wavs/LJ013-0215.npy +tests/data/ljspeech/wavs/LJ028-0428.wav|tests/data/ljspeech/wavs/LJ028-0428.npy +tests/data/ljspeech/wavs/LJ012-0240.wav|tests/data/ljspeech/wavs/LJ012-0240.npy +tests/data/ljspeech/wavs/LJ005-0269.wav|tests/data/ljspeech/wavs/LJ005-0269.npy +tests/data/ljspeech/wavs/LJ032-0142.wav|tests/data/ljspeech/wavs/LJ032-0142.npy +tests/data/ljspeech/wavs/LJ018-0117.wav|tests/data/ljspeech/wavs/LJ018-0117.npy +tests/data/ljspeech/wavs/LJ040-0077.wav|tests/data/ljspeech/wavs/LJ040-0077.npy +tests/data/ljspeech/wavs/LJ046-0011.wav|tests/data/ljspeech/wavs/LJ046-0011.npy +tests/data/ljspeech/wavs/LJ037-0153.wav|tests/data/ljspeech/wavs/LJ037-0153.npy +tests/data/ljspeech/wavs/LJ040-0074.wav|tests/data/ljspeech/wavs/LJ040-0074.npy +tests/data/ljspeech/wavs/LJ019-0109.wav|tests/data/ljspeech/wavs/LJ019-0109.npy +tests/data/ljspeech/wavs/LJ003-0153.wav|tests/data/ljspeech/wavs/LJ003-0153.npy +tests/data/ljspeech/wavs/LJ021-0149.wav|tests/data/ljspeech/wavs/LJ021-0149.npy +tests/data/ljspeech/wavs/LJ016-0441.wav|tests/data/ljspeech/wavs/LJ016-0441.npy +tests/data/ljspeech/wavs/LJ034-0021.wav|tests/data/ljspeech/wavs/LJ034-0021.npy +tests/data/ljspeech/wavs/LJ005-0103.wav|tests/data/ljspeech/wavs/LJ005-0103.npy +tests/data/ljspeech/wavs/LJ002-0049.wav|tests/data/ljspeech/wavs/LJ002-0049.npy +tests/data/ljspeech/wavs/LJ028-0166.wav|tests/data/ljspeech/wavs/LJ028-0166.npy +tests/data/ljspeech/wavs/LJ015-0046.wav|tests/data/ljspeech/wavs/LJ015-0046.npy +tests/data/ljspeech/wavs/LJ003-0273.wav|tests/data/ljspeech/wavs/LJ003-0273.npy +tests/data/ljspeech/wavs/LJ032-0143.wav|tests/data/ljspeech/wavs/LJ032-0143.npy +tests/data/ljspeech/wavs/LJ016-0069.wav|tests/data/ljspeech/wavs/LJ016-0069.npy +tests/data/ljspeech/wavs/LJ050-0088.wav|tests/data/ljspeech/wavs/LJ050-0088.npy +tests/data/ljspeech/wavs/LJ026-0076.wav|tests/data/ljspeech/wavs/LJ026-0076.npy +tests/data/ljspeech/wavs/LJ010-0240.wav|tests/data/ljspeech/wavs/LJ010-0240.npy +tests/data/ljspeech/wavs/LJ022-0029.wav|tests/data/ljspeech/wavs/LJ022-0029.npy +tests/data/ljspeech/wavs/LJ002-0261.wav|tests/data/ljspeech/wavs/LJ002-0261.npy +tests/data/ljspeech/wavs/LJ043-0146.wav|tests/data/ljspeech/wavs/LJ043-0146.npy +tests/data/ljspeech/wavs/LJ032-0188.wav|tests/data/ljspeech/wavs/LJ032-0188.npy +tests/data/ljspeech/wavs/LJ017-0220.wav|tests/data/ljspeech/wavs/LJ017-0220.npy +tests/data/ljspeech/wavs/LJ028-0229.wav|tests/data/ljspeech/wavs/LJ028-0229.npy +tests/data/ljspeech/wavs/LJ007-0069.wav|tests/data/ljspeech/wavs/LJ007-0069.npy +tests/data/ljspeech/wavs/LJ017-0173.wav|tests/data/ljspeech/wavs/LJ017-0173.npy +tests/data/ljspeech/wavs/LJ049-0117.wav|tests/data/ljspeech/wavs/LJ049-0117.npy +tests/data/ljspeech/wavs/LJ046-0113.wav|tests/data/ljspeech/wavs/LJ046-0113.npy +tests/data/ljspeech/wavs/LJ041-0136.wav|tests/data/ljspeech/wavs/LJ041-0136.npy +tests/data/ljspeech/wavs/LJ038-0221.wav|tests/data/ljspeech/wavs/LJ038-0221.npy +tests/data/ljspeech/wavs/LJ044-0190.wav|tests/data/ljspeech/wavs/LJ044-0190.npy +tests/data/ljspeech/wavs/LJ050-0035.wav|tests/data/ljspeech/wavs/LJ050-0035.npy +tests/data/ljspeech/wavs/LJ028-0032.wav|tests/data/ljspeech/wavs/LJ028-0032.npy +tests/data/ljspeech/wavs/LJ028-0294.wav|tests/data/ljspeech/wavs/LJ028-0294.npy +tests/data/ljspeech/wavs/LJ042-0065.wav|tests/data/ljspeech/wavs/LJ042-0065.npy +tests/data/ljspeech/wavs/LJ008-0006.wav|tests/data/ljspeech/wavs/LJ008-0006.npy +tests/data/ljspeech/wavs/LJ040-0025.wav|tests/data/ljspeech/wavs/LJ040-0025.npy +tests/data/ljspeech/wavs/LJ026-0127.wav|tests/data/ljspeech/wavs/LJ026-0127.npy +tests/data/ljspeech/wavs/LJ005-0110.wav|tests/data/ljspeech/wavs/LJ005-0110.npy +tests/data/ljspeech/wavs/LJ022-0084.wav|tests/data/ljspeech/wavs/LJ022-0084.npy +tests/data/ljspeech/wavs/LJ020-0090.wav|tests/data/ljspeech/wavs/LJ020-0090.npy +tests/data/ljspeech/wavs/LJ012-0049.wav|tests/data/ljspeech/wavs/LJ012-0049.npy +tests/data/ljspeech/wavs/LJ011-0103.wav|tests/data/ljspeech/wavs/LJ011-0103.npy +tests/data/ljspeech/wavs/LJ004-0248.wav|tests/data/ljspeech/wavs/LJ004-0248.npy +tests/data/ljspeech/wavs/LJ016-0200.wav|tests/data/ljspeech/wavs/LJ016-0200.npy +tests/data/ljspeech/wavs/LJ021-0192.wav|tests/data/ljspeech/wavs/LJ021-0192.npy +tests/data/ljspeech/wavs/LJ018-0280.wav|tests/data/ljspeech/wavs/LJ018-0280.npy +tests/data/ljspeech/wavs/LJ024-0071.wav|tests/data/ljspeech/wavs/LJ024-0071.npy +tests/data/ljspeech/wavs/LJ027-0058.wav|tests/data/ljspeech/wavs/LJ027-0058.npy +tests/data/ljspeech/wavs/LJ016-0273.wav|tests/data/ljspeech/wavs/LJ016-0273.npy +tests/data/ljspeech/wavs/LJ010-0179.wav|tests/data/ljspeech/wavs/LJ010-0179.npy +tests/data/ljspeech/wavs/LJ008-0262.wav|tests/data/ljspeech/wavs/LJ008-0262.npy +tests/data/ljspeech/wavs/LJ003-0188.wav|tests/data/ljspeech/wavs/LJ003-0188.npy +tests/data/ljspeech/wavs/LJ028-0250.wav|tests/data/ljspeech/wavs/LJ028-0250.npy +tests/data/ljspeech/wavs/LJ028-0506.wav|tests/data/ljspeech/wavs/LJ028-0506.npy +tests/data/ljspeech/wavs/LJ022-0008.wav|tests/data/ljspeech/wavs/LJ022-0008.npy +tests/data/ljspeech/wavs/LJ018-0245.wav|tests/data/ljspeech/wavs/LJ018-0245.npy +tests/data/ljspeech/wavs/LJ020-0050.wav|tests/data/ljspeech/wavs/LJ020-0050.npy +tests/data/ljspeech/wavs/LJ008-0077.wav|tests/data/ljspeech/wavs/LJ008-0077.npy +tests/data/ljspeech/wavs/LJ024-0072.wav|tests/data/ljspeech/wavs/LJ024-0072.npy +tests/data/ljspeech/wavs/LJ037-0259.wav|tests/data/ljspeech/wavs/LJ037-0259.npy +tests/data/ljspeech/wavs/LJ038-0220.wav|tests/data/ljspeech/wavs/LJ038-0220.npy +tests/data/ljspeech/wavs/LJ046-0129.wav|tests/data/ljspeech/wavs/LJ046-0129.npy +tests/data/ljspeech/wavs/LJ048-0032.wav|tests/data/ljspeech/wavs/LJ048-0032.npy +tests/data/ljspeech/wavs/LJ044-0111.wav|tests/data/ljspeech/wavs/LJ044-0111.npy +tests/data/ljspeech/wavs/LJ002-0164.wav|tests/data/ljspeech/wavs/LJ002-0164.npy +tests/data/ljspeech/wavs/LJ036-0059.wav|tests/data/ljspeech/wavs/LJ036-0059.npy +tests/data/ljspeech/wavs/LJ028-0385.wav|tests/data/ljspeech/wavs/LJ028-0385.npy +tests/data/ljspeech/wavs/LJ024-0102.wav|tests/data/ljspeech/wavs/LJ024-0102.npy +tests/data/ljspeech/wavs/LJ026-0065.wav|tests/data/ljspeech/wavs/LJ026-0065.npy +tests/data/ljspeech/wavs/LJ018-0156.wav|tests/data/ljspeech/wavs/LJ018-0156.npy +tests/data/ljspeech/wavs/LJ029-0127.wav|tests/data/ljspeech/wavs/LJ029-0127.npy +tests/data/ljspeech/wavs/LJ019-0113.wav|tests/data/ljspeech/wavs/LJ019-0113.npy +tests/data/ljspeech/wavs/LJ028-0038.wav|tests/data/ljspeech/wavs/LJ028-0038.npy +tests/data/ljspeech/wavs/LJ031-0173.wav|tests/data/ljspeech/wavs/LJ031-0173.npy +tests/data/ljspeech/wavs/LJ040-0159.wav|tests/data/ljspeech/wavs/LJ040-0159.npy +tests/data/ljspeech/wavs/LJ003-0252.wav|tests/data/ljspeech/wavs/LJ003-0252.npy +tests/data/ljspeech/wavs/LJ002-0166.wav|tests/data/ljspeech/wavs/LJ002-0166.npy +tests/data/ljspeech/wavs/LJ004-0172.wav|tests/data/ljspeech/wavs/LJ004-0172.npy +tests/data/ljspeech/wavs/LJ038-0207.wav|tests/data/ljspeech/wavs/LJ038-0207.npy +tests/data/ljspeech/wavs/LJ030-0184.wav|tests/data/ljspeech/wavs/LJ030-0184.npy +tests/data/ljspeech/wavs/LJ028-0339.wav|tests/data/ljspeech/wavs/LJ028-0339.npy +tests/data/ljspeech/wavs/LJ020-0039.wav|tests/data/ljspeech/wavs/LJ020-0039.npy +tests/data/ljspeech/wavs/LJ018-0145.wav|tests/data/ljspeech/wavs/LJ018-0145.npy +tests/data/ljspeech/wavs/LJ002-0204.wav|tests/data/ljspeech/wavs/LJ002-0204.npy +tests/data/ljspeech/wavs/LJ016-0298.wav|tests/data/ljspeech/wavs/LJ016-0298.npy +tests/data/ljspeech/wavs/LJ012-0062.wav|tests/data/ljspeech/wavs/LJ012-0062.npy +tests/data/ljspeech/wavs/LJ018-0202.wav|tests/data/ljspeech/wavs/LJ018-0202.npy +tests/data/ljspeech/wavs/LJ006-0123.wav|tests/data/ljspeech/wavs/LJ006-0123.npy +tests/data/ljspeech/wavs/LJ010-0138.wav|tests/data/ljspeech/wavs/LJ010-0138.npy +tests/data/ljspeech/wavs/LJ013-0090.wav|tests/data/ljspeech/wavs/LJ013-0090.npy +tests/data/ljspeech/wavs/LJ017-0272.wav|tests/data/ljspeech/wavs/LJ017-0272.npy +tests/data/ljspeech/wavs/LJ049-0024.wav|tests/data/ljspeech/wavs/LJ049-0024.npy +tests/data/ljspeech/wavs/LJ032-0036.wav|tests/data/ljspeech/wavs/LJ032-0036.npy +tests/data/ljspeech/wavs/LJ014-0280.wav|tests/data/ljspeech/wavs/LJ014-0280.npy +tests/data/ljspeech/wavs/LJ046-0138.wav|tests/data/ljspeech/wavs/LJ046-0138.npy +tests/data/ljspeech/wavs/LJ015-0143.wav|tests/data/ljspeech/wavs/LJ015-0143.npy +tests/data/ljspeech/wavs/LJ013-0003.wav|tests/data/ljspeech/wavs/LJ013-0003.npy +tests/data/ljspeech/wavs/LJ022-0180.wav|tests/data/ljspeech/wavs/LJ022-0180.npy +tests/data/ljspeech/wavs/LJ048-0046.wav|tests/data/ljspeech/wavs/LJ048-0046.npy +tests/data/ljspeech/wavs/LJ049-0212.wav|tests/data/ljspeech/wavs/LJ049-0212.npy +tests/data/ljspeech/wavs/LJ010-0021.wav|tests/data/ljspeech/wavs/LJ010-0021.npy +tests/data/ljspeech/wavs/LJ037-0090.wav|tests/data/ljspeech/wavs/LJ037-0090.npy +tests/data/ljspeech/wavs/LJ005-0024.wav|tests/data/ljspeech/wavs/LJ005-0024.npy +tests/data/ljspeech/wavs/LJ015-0152.wav|tests/data/ljspeech/wavs/LJ015-0152.npy +tests/data/ljspeech/wavs/LJ009-0092.wav|tests/data/ljspeech/wavs/LJ009-0092.npy +tests/data/ljspeech/wavs/LJ038-0028.wav|tests/data/ljspeech/wavs/LJ038-0028.npy +tests/data/ljspeech/wavs/LJ002-0302.wav|tests/data/ljspeech/wavs/LJ002-0302.npy +tests/data/ljspeech/wavs/LJ003-0108.wav|tests/data/ljspeech/wavs/LJ003-0108.npy +tests/data/ljspeech/wavs/LJ040-0106.wav|tests/data/ljspeech/wavs/LJ040-0106.npy +tests/data/ljspeech/wavs/LJ008-0315.wav|tests/data/ljspeech/wavs/LJ008-0315.npy +tests/data/ljspeech/wavs/LJ018-0237.wav|tests/data/ljspeech/wavs/LJ018-0237.npy +tests/data/ljspeech/wavs/LJ008-0244.wav|tests/data/ljspeech/wavs/LJ008-0244.npy +tests/data/ljspeech/wavs/LJ002-0039.wav|tests/data/ljspeech/wavs/LJ002-0039.npy +tests/data/ljspeech/wavs/LJ009-0271.wav|tests/data/ljspeech/wavs/LJ009-0271.npy +tests/data/ljspeech/wavs/LJ016-0006.wav|tests/data/ljspeech/wavs/LJ016-0006.npy +tests/data/ljspeech/wavs/LJ018-0064.wav|tests/data/ljspeech/wavs/LJ018-0064.npy +tests/data/ljspeech/wavs/LJ040-0229.wav|tests/data/ljspeech/wavs/LJ040-0229.npy +tests/data/ljspeech/wavs/LJ013-0250.wav|tests/data/ljspeech/wavs/LJ013-0250.npy +tests/data/ljspeech/wavs/LJ011-0073.wav|tests/data/ljspeech/wavs/LJ011-0073.npy +tests/data/ljspeech/wavs/LJ010-0037.wav|tests/data/ljspeech/wavs/LJ010-0037.npy +tests/data/ljspeech/wavs/LJ012-0112.wav|tests/data/ljspeech/wavs/LJ012-0112.npy +tests/data/ljspeech/wavs/LJ050-0170.wav|tests/data/ljspeech/wavs/LJ050-0170.npy +tests/data/ljspeech/wavs/LJ016-0438.wav|tests/data/ljspeech/wavs/LJ016-0438.npy +tests/data/ljspeech/wavs/LJ006-0229.wav|tests/data/ljspeech/wavs/LJ006-0229.npy +tests/data/ljspeech/wavs/LJ002-0010.wav|tests/data/ljspeech/wavs/LJ002-0010.npy +tests/data/ljspeech/wavs/LJ045-0216.wav|tests/data/ljspeech/wavs/LJ045-0216.npy +tests/data/ljspeech/wavs/LJ032-0074.wav|tests/data/ljspeech/wavs/LJ032-0074.npy +tests/data/ljspeech/wavs/LJ047-0177.wav|tests/data/ljspeech/wavs/LJ047-0177.npy +tests/data/ljspeech/wavs/LJ037-0054.wav|tests/data/ljspeech/wavs/LJ037-0054.npy +tests/data/ljspeech/wavs/LJ014-0226.wav|tests/data/ljspeech/wavs/LJ014-0226.npy +tests/data/ljspeech/wavs/LJ024-0004.wav|tests/data/ljspeech/wavs/LJ024-0004.npy +tests/data/ljspeech/wavs/LJ011-0116.wav|tests/data/ljspeech/wavs/LJ011-0116.npy +tests/data/ljspeech/wavs/LJ009-0108.wav|tests/data/ljspeech/wavs/LJ009-0108.npy +tests/data/ljspeech/wavs/LJ039-0018.wav|tests/data/ljspeech/wavs/LJ039-0018.npy +tests/data/ljspeech/wavs/LJ002-0080.wav|tests/data/ljspeech/wavs/LJ002-0080.npy +tests/data/ljspeech/wavs/LJ042-0241.wav|tests/data/ljspeech/wavs/LJ042-0241.npy +tests/data/ljspeech/wavs/LJ020-0038.wav|tests/data/ljspeech/wavs/LJ020-0038.npy +tests/data/ljspeech/wavs/LJ038-0131.wav|tests/data/ljspeech/wavs/LJ038-0131.npy +tests/data/ljspeech/wavs/LJ012-0152.wav|tests/data/ljspeech/wavs/LJ012-0152.npy +tests/data/ljspeech/wavs/LJ033-0107.wav|tests/data/ljspeech/wavs/LJ033-0107.npy +tests/data/ljspeech/wavs/LJ019-0360.wav|tests/data/ljspeech/wavs/LJ019-0360.npy +tests/data/ljspeech/wavs/LJ046-0244.wav|tests/data/ljspeech/wavs/LJ046-0244.npy +tests/data/ljspeech/wavs/LJ047-0060.wav|tests/data/ljspeech/wavs/LJ047-0060.npy +tests/data/ljspeech/wavs/LJ033-0171.wav|tests/data/ljspeech/wavs/LJ033-0171.npy +tests/data/ljspeech/wavs/LJ009-0138.wav|tests/data/ljspeech/wavs/LJ009-0138.npy +tests/data/ljspeech/wavs/LJ006-0018.wav|tests/data/ljspeech/wavs/LJ006-0018.npy +tests/data/ljspeech/wavs/LJ004-0081.wav|tests/data/ljspeech/wavs/LJ004-0081.npy +tests/data/ljspeech/wavs/LJ028-0097.wav|tests/data/ljspeech/wavs/LJ028-0097.npy +tests/data/ljspeech/wavs/LJ048-0274.wav|tests/data/ljspeech/wavs/LJ048-0274.npy +tests/data/ljspeech/wavs/LJ030-0203.wav|tests/data/ljspeech/wavs/LJ030-0203.npy +tests/data/ljspeech/wavs/LJ048-0086.wav|tests/data/ljspeech/wavs/LJ048-0086.npy +tests/data/ljspeech/wavs/LJ028-0455.wav|tests/data/ljspeech/wavs/LJ028-0455.npy +tests/data/ljspeech/wavs/LJ011-0015.wav|tests/data/ljspeech/wavs/LJ011-0015.npy +tests/data/ljspeech/wavs/LJ003-0271.wav|tests/data/ljspeech/wavs/LJ003-0271.npy +tests/data/ljspeech/wavs/LJ037-0124.wav|tests/data/ljspeech/wavs/LJ037-0124.npy +tests/data/ljspeech/wavs/LJ013-0173.wav|tests/data/ljspeech/wavs/LJ013-0173.npy +tests/data/ljspeech/wavs/LJ039-0201.wav|tests/data/ljspeech/wavs/LJ039-0201.npy +tests/data/ljspeech/wavs/LJ044-0017.wav|tests/data/ljspeech/wavs/LJ044-0017.npy +tests/data/ljspeech/wavs/LJ039-0014.wav|tests/data/ljspeech/wavs/LJ039-0014.npy +tests/data/ljspeech/wavs/LJ016-0252.wav|tests/data/ljspeech/wavs/LJ016-0252.npy +tests/data/ljspeech/wavs/LJ029-0096.wav|tests/data/ljspeech/wavs/LJ029-0096.npy +tests/data/ljspeech/wavs/LJ013-0052.wav|tests/data/ljspeech/wavs/LJ013-0052.npy +tests/data/ljspeech/wavs/LJ039-0116.wav|tests/data/ljspeech/wavs/LJ039-0116.npy +tests/data/ljspeech/wavs/LJ044-0078.wav|tests/data/ljspeech/wavs/LJ044-0078.npy +tests/data/ljspeech/wavs/LJ016-0348.wav|tests/data/ljspeech/wavs/LJ016-0348.npy +tests/data/ljspeech/wavs/LJ033-0060.wav|tests/data/ljspeech/wavs/LJ033-0060.npy +tests/data/ljspeech/wavs/LJ030-0179.wav|tests/data/ljspeech/wavs/LJ030-0179.npy +tests/data/ljspeech/wavs/LJ050-0148.wav|tests/data/ljspeech/wavs/LJ050-0148.npy +tests/data/ljspeech/wavs/LJ008-0143.wav|tests/data/ljspeech/wavs/LJ008-0143.npy +tests/data/ljspeech/wavs/LJ027-0031.wav|tests/data/ljspeech/wavs/LJ027-0031.npy +tests/data/ljspeech/wavs/LJ028-0261.wav|tests/data/ljspeech/wavs/LJ028-0261.npy +tests/data/ljspeech/wavs/LJ040-0012.wav|tests/data/ljspeech/wavs/LJ040-0012.npy +tests/data/ljspeech/wavs/LJ008-0068.wav|tests/data/ljspeech/wavs/LJ008-0068.npy +tests/data/ljspeech/wavs/LJ009-0264.wav|tests/data/ljspeech/wavs/LJ009-0264.npy +tests/data/ljspeech/wavs/LJ017-0224.wav|tests/data/ljspeech/wavs/LJ017-0224.npy +tests/data/ljspeech/wavs/LJ002-0116.wav|tests/data/ljspeech/wavs/LJ002-0116.npy +tests/data/ljspeech/wavs/LJ027-0038.wav|tests/data/ljspeech/wavs/LJ027-0038.npy +tests/data/ljspeech/wavs/LJ016-0081.wav|tests/data/ljspeech/wavs/LJ016-0081.npy +tests/data/ljspeech/wavs/LJ022-0031.wav|tests/data/ljspeech/wavs/LJ022-0031.npy +tests/data/ljspeech/wavs/LJ017-0195.wav|tests/data/ljspeech/wavs/LJ017-0195.npy +tests/data/ljspeech/wavs/LJ002-0237.wav|tests/data/ljspeech/wavs/LJ002-0237.npy +tests/data/ljspeech/wavs/LJ016-0082.wav|tests/data/ljspeech/wavs/LJ016-0082.npy +tests/data/ljspeech/wavs/LJ013-0093.wav|tests/data/ljspeech/wavs/LJ013-0093.npy +tests/data/ljspeech/wavs/LJ002-0245.wav|tests/data/ljspeech/wavs/LJ002-0245.npy +tests/data/ljspeech/wavs/LJ028-0496.wav|tests/data/ljspeech/wavs/LJ028-0496.npy +tests/data/ljspeech/wavs/LJ004-0125.wav|tests/data/ljspeech/wavs/LJ004-0125.npy +tests/data/ljspeech/wavs/LJ005-0176.wav|tests/data/ljspeech/wavs/LJ005-0176.npy +tests/data/ljspeech/wavs/LJ007-0035.wav|tests/data/ljspeech/wavs/LJ007-0035.npy +tests/data/ljspeech/wavs/LJ037-0203.wav|tests/data/ljspeech/wavs/LJ037-0203.npy +tests/data/ljspeech/wavs/LJ029-0013.wav|tests/data/ljspeech/wavs/LJ029-0013.npy +tests/data/ljspeech/wavs/LJ022-0155.wav|tests/data/ljspeech/wavs/LJ022-0155.npy +tests/data/ljspeech/wavs/LJ042-0056.wav|tests/data/ljspeech/wavs/LJ042-0056.npy +tests/data/ljspeech/wavs/LJ047-0025.wav|tests/data/ljspeech/wavs/LJ047-0025.npy +tests/data/ljspeech/wavs/LJ048-0080.wav|tests/data/ljspeech/wavs/LJ048-0080.npy +tests/data/ljspeech/wavs/LJ040-0068.wav|tests/data/ljspeech/wavs/LJ040-0068.npy +tests/data/ljspeech/wavs/LJ038-0280.wav|tests/data/ljspeech/wavs/LJ038-0280.npy +tests/data/ljspeech/wavs/LJ011-0247.wav|tests/data/ljspeech/wavs/LJ011-0247.npy +tests/data/ljspeech/wavs/LJ033-0192.wav|tests/data/ljspeech/wavs/LJ033-0192.npy +tests/data/ljspeech/wavs/LJ012-0039.wav|tests/data/ljspeech/wavs/LJ012-0039.npy +tests/data/ljspeech/wavs/LJ003-0086.wav|tests/data/ljspeech/wavs/LJ003-0086.npy +tests/data/ljspeech/wavs/LJ017-0170.wav|tests/data/ljspeech/wavs/LJ017-0170.npy +tests/data/ljspeech/wavs/LJ044-0215.wav|tests/data/ljspeech/wavs/LJ044-0215.npy +tests/data/ljspeech/wavs/LJ037-0008.wav|tests/data/ljspeech/wavs/LJ037-0008.npy +tests/data/ljspeech/wavs/LJ028-0258.wav|tests/data/ljspeech/wavs/LJ028-0258.npy +tests/data/ljspeech/wavs/LJ028-0350.wav|tests/data/ljspeech/wavs/LJ028-0350.npy +tests/data/ljspeech/wavs/LJ045-0204.wav|tests/data/ljspeech/wavs/LJ045-0204.npy +tests/data/ljspeech/wavs/LJ002-0180.wav|tests/data/ljspeech/wavs/LJ002-0180.npy +tests/data/ljspeech/wavs/LJ008-0213.wav|tests/data/ljspeech/wavs/LJ008-0213.npy +tests/data/ljspeech/wavs/LJ023-0131.wav|tests/data/ljspeech/wavs/LJ023-0131.npy +tests/data/ljspeech/wavs/LJ017-0102.wav|tests/data/ljspeech/wavs/LJ017-0102.npy +tests/data/ljspeech/wavs/LJ010-0226.wav|tests/data/ljspeech/wavs/LJ010-0226.npy +tests/data/ljspeech/wavs/LJ047-0183.wav|tests/data/ljspeech/wavs/LJ047-0183.npy +tests/data/ljspeech/wavs/LJ032-0259.wav|tests/data/ljspeech/wavs/LJ032-0259.npy +tests/data/ljspeech/wavs/LJ008-0256.wav|tests/data/ljspeech/wavs/LJ008-0256.npy +tests/data/ljspeech/wavs/LJ010-0258.wav|tests/data/ljspeech/wavs/LJ010-0258.npy +tests/data/ljspeech/wavs/LJ013-0183.wav|tests/data/ljspeech/wavs/LJ013-0183.npy +tests/data/ljspeech/wavs/LJ036-0149.wav|tests/data/ljspeech/wavs/LJ036-0149.npy +tests/data/ljspeech/wavs/LJ039-0224.wav|tests/data/ljspeech/wavs/LJ039-0224.npy +tests/data/ljspeech/wavs/LJ015-0281.wav|tests/data/ljspeech/wavs/LJ015-0281.npy +tests/data/ljspeech/wavs/LJ018-0278.wav|tests/data/ljspeech/wavs/LJ018-0278.npy +tests/data/ljspeech/wavs/LJ044-0075.wav|tests/data/ljspeech/wavs/LJ044-0075.npy +tests/data/ljspeech/wavs/LJ002-0033.wav|tests/data/ljspeech/wavs/LJ002-0033.npy +tests/data/ljspeech/wavs/LJ044-0052.wav|tests/data/ljspeech/wavs/LJ044-0052.npy +tests/data/ljspeech/wavs/LJ025-0117.wav|tests/data/ljspeech/wavs/LJ025-0117.npy +tests/data/ljspeech/wavs/LJ033-0084.wav|tests/data/ljspeech/wavs/LJ033-0084.npy +tests/data/ljspeech/wavs/LJ032-0091.wav|tests/data/ljspeech/wavs/LJ032-0091.npy +tests/data/ljspeech/wavs/LJ003-0115.wav|tests/data/ljspeech/wavs/LJ003-0115.npy +tests/data/ljspeech/wavs/LJ005-0215.wav|tests/data/ljspeech/wavs/LJ005-0215.npy +tests/data/ljspeech/wavs/LJ017-0060.wav|tests/data/ljspeech/wavs/LJ017-0060.npy +tests/data/ljspeech/wavs/LJ049-0142.wav|tests/data/ljspeech/wavs/LJ049-0142.npy +tests/data/ljspeech/wavs/LJ019-0321.wav|tests/data/ljspeech/wavs/LJ019-0321.npy +tests/data/ljspeech/wavs/LJ020-0092.wav|tests/data/ljspeech/wavs/LJ020-0092.npy +tests/data/ljspeech/wavs/LJ048-0095.wav|tests/data/ljspeech/wavs/LJ048-0095.npy +tests/data/ljspeech/wavs/LJ019-0276.wav|tests/data/ljspeech/wavs/LJ019-0276.npy +tests/data/ljspeech/wavs/LJ005-0260.wav|tests/data/ljspeech/wavs/LJ005-0260.npy +tests/data/ljspeech/wavs/LJ041-0069.wav|tests/data/ljspeech/wavs/LJ041-0069.npy +tests/data/ljspeech/wavs/LJ005-0185.wav|tests/data/ljspeech/wavs/LJ005-0185.npy +tests/data/ljspeech/wavs/LJ031-0012.wav|tests/data/ljspeech/wavs/LJ031-0012.npy +tests/data/ljspeech/wavs/LJ003-0034.wav|tests/data/ljspeech/wavs/LJ003-0034.npy +tests/data/ljspeech/wavs/LJ046-0093.wav|tests/data/ljspeech/wavs/LJ046-0093.npy +tests/data/ljspeech/wavs/LJ024-0022.wav|tests/data/ljspeech/wavs/LJ024-0022.npy +tests/data/ljspeech/wavs/LJ003-0320.wav|tests/data/ljspeech/wavs/LJ003-0320.npy +tests/data/ljspeech/wavs/LJ015-0155.wav|tests/data/ljspeech/wavs/LJ015-0155.npy +tests/data/ljspeech/wavs/LJ036-0142.wav|tests/data/ljspeech/wavs/LJ036-0142.npy +tests/data/ljspeech/wavs/LJ050-0005.wav|tests/data/ljspeech/wavs/LJ050-0005.npy +tests/data/ljspeech/wavs/LJ047-0193.wav|tests/data/ljspeech/wavs/LJ047-0193.npy +tests/data/ljspeech/wavs/LJ010-0017.wav|tests/data/ljspeech/wavs/LJ010-0017.npy +tests/data/ljspeech/wavs/LJ001-0112.wav|tests/data/ljspeech/wavs/LJ001-0112.npy +tests/data/ljspeech/wavs/LJ038-0236.wav|tests/data/ljspeech/wavs/LJ038-0236.npy +tests/data/ljspeech/wavs/LJ039-0215.wav|tests/data/ljspeech/wavs/LJ039-0215.npy +tests/data/ljspeech/wavs/LJ009-0234.wav|tests/data/ljspeech/wavs/LJ009-0234.npy +tests/data/ljspeech/wavs/LJ028-0212.wav|tests/data/ljspeech/wavs/LJ028-0212.npy +tests/data/ljspeech/wavs/LJ002-0130.wav|tests/data/ljspeech/wavs/LJ002-0130.npy +tests/data/ljspeech/wavs/LJ032-0053.wav|tests/data/ljspeech/wavs/LJ032-0053.npy +tests/data/ljspeech/wavs/LJ040-0060.wav|tests/data/ljspeech/wavs/LJ040-0060.npy +tests/data/ljspeech/wavs/LJ039-0110.wav|tests/data/ljspeech/wavs/LJ039-0110.npy +tests/data/ljspeech/wavs/LJ007-0224.wav|tests/data/ljspeech/wavs/LJ007-0224.npy +tests/data/ljspeech/wavs/LJ047-0020.wav|tests/data/ljspeech/wavs/LJ047-0020.npy +tests/data/ljspeech/wavs/LJ020-0030.wav|tests/data/ljspeech/wavs/LJ020-0030.npy +tests/data/ljspeech/wavs/LJ047-0223.wav|tests/data/ljspeech/wavs/LJ047-0223.npy +tests/data/ljspeech/wavs/LJ004-0205.wav|tests/data/ljspeech/wavs/LJ004-0205.npy +tests/data/ljspeech/wavs/LJ012-0254.wav|tests/data/ljspeech/wavs/LJ012-0254.npy +tests/data/ljspeech/wavs/LJ042-0008.wav|tests/data/ljspeech/wavs/LJ042-0008.npy +tests/data/ljspeech/wavs/LJ038-0013.wav|tests/data/ljspeech/wavs/LJ038-0013.npy +tests/data/ljspeech/wavs/LJ018-0335.wav|tests/data/ljspeech/wavs/LJ018-0335.npy +tests/data/ljspeech/wavs/LJ038-0209.wav|tests/data/ljspeech/wavs/LJ038-0209.npy +tests/data/ljspeech/wavs/LJ009-0194.wav|tests/data/ljspeech/wavs/LJ009-0194.npy +tests/data/ljspeech/wavs/LJ009-0099.wav|tests/data/ljspeech/wavs/LJ009-0099.npy +tests/data/ljspeech/wavs/LJ019-0312.wav|tests/data/ljspeech/wavs/LJ019-0312.npy +tests/data/ljspeech/wavs/LJ048-0104.wav|tests/data/ljspeech/wavs/LJ048-0104.npy +tests/data/ljspeech/wavs/LJ010-0238.wav|tests/data/ljspeech/wavs/LJ010-0238.npy +tests/data/ljspeech/wavs/LJ014-0298.wav|tests/data/ljspeech/wavs/LJ014-0298.npy +tests/data/ljspeech/wavs/LJ019-0326.wav|tests/data/ljspeech/wavs/LJ019-0326.npy +tests/data/ljspeech/wavs/LJ031-0214.wav|tests/data/ljspeech/wavs/LJ031-0214.npy +tests/data/ljspeech/wavs/LJ009-0216.wav|tests/data/ljspeech/wavs/LJ009-0216.npy +tests/data/ljspeech/wavs/LJ003-0138.wav|tests/data/ljspeech/wavs/LJ003-0138.npy +tests/data/ljspeech/wavs/LJ001-0181.wav|tests/data/ljspeech/wavs/LJ001-0181.npy +tests/data/ljspeech/wavs/LJ028-0372.wav|tests/data/ljspeech/wavs/LJ028-0372.npy +tests/data/ljspeech/wavs/LJ014-0256.wav|tests/data/ljspeech/wavs/LJ014-0256.npy +tests/data/ljspeech/wavs/LJ005-0129.wav|tests/data/ljspeech/wavs/LJ005-0129.npy +tests/data/ljspeech/wavs/LJ035-0165.wav|tests/data/ljspeech/wavs/LJ035-0165.npy +tests/data/ljspeech/wavs/LJ034-0141.wav|tests/data/ljspeech/wavs/LJ034-0141.npy +tests/data/ljspeech/wavs/LJ028-0386.wav|tests/data/ljspeech/wavs/LJ028-0386.npy +tests/data/ljspeech/wavs/LJ005-0004.wav|tests/data/ljspeech/wavs/LJ005-0004.npy +tests/data/ljspeech/wavs/LJ044-0072.wav|tests/data/ljspeech/wavs/LJ044-0072.npy +tests/data/ljspeech/wavs/LJ031-0064.wav|tests/data/ljspeech/wavs/LJ031-0064.npy +tests/data/ljspeech/wavs/LJ028-0069.wav|tests/data/ljspeech/wavs/LJ028-0069.npy +tests/data/ljspeech/wavs/LJ010-0285.wav|tests/data/ljspeech/wavs/LJ010-0285.npy +tests/data/ljspeech/wavs/LJ012-0144.wav|tests/data/ljspeech/wavs/LJ012-0144.npy +tests/data/ljspeech/wavs/LJ031-0005.wav|tests/data/ljspeech/wavs/LJ031-0005.npy +tests/data/ljspeech/wavs/LJ019-0209.wav|tests/data/ljspeech/wavs/LJ019-0209.npy +tests/data/ljspeech/wavs/LJ032-0257.wav|tests/data/ljspeech/wavs/LJ032-0257.npy +tests/data/ljspeech/wavs/LJ009-0281.wav|tests/data/ljspeech/wavs/LJ009-0281.npy +tests/data/ljspeech/wavs/LJ028-0418.wav|tests/data/ljspeech/wavs/LJ028-0418.npy +tests/data/ljspeech/wavs/LJ036-0095.wav|tests/data/ljspeech/wavs/LJ036-0095.npy +tests/data/ljspeech/wavs/LJ046-0115.wav|tests/data/ljspeech/wavs/LJ046-0115.npy +tests/data/ljspeech/wavs/LJ042-0119.wav|tests/data/ljspeech/wavs/LJ042-0119.npy +tests/data/ljspeech/wavs/LJ027-0131.wav|tests/data/ljspeech/wavs/LJ027-0131.npy +tests/data/ljspeech/wavs/LJ038-0188.wav|tests/data/ljspeech/wavs/LJ038-0188.npy +tests/data/ljspeech/wavs/LJ017-0160.wav|tests/data/ljspeech/wavs/LJ017-0160.npy +tests/data/ljspeech/wavs/LJ007-0040.wav|tests/data/ljspeech/wavs/LJ007-0040.npy +tests/data/ljspeech/wavs/LJ047-0003.wav|tests/data/ljspeech/wavs/LJ047-0003.npy +tests/data/ljspeech/wavs/LJ038-0177.wav|tests/data/ljspeech/wavs/LJ038-0177.npy +tests/data/ljspeech/wavs/LJ035-0097.wav|tests/data/ljspeech/wavs/LJ035-0097.npy +tests/data/ljspeech/wavs/LJ019-0146.wav|tests/data/ljspeech/wavs/LJ019-0146.npy +tests/data/ljspeech/wavs/LJ032-0156.wav|tests/data/ljspeech/wavs/LJ032-0156.npy +tests/data/ljspeech/wavs/LJ013-0055.wav|tests/data/ljspeech/wavs/LJ013-0055.npy +tests/data/ljspeech/wavs/LJ009-0028.wav|tests/data/ljspeech/wavs/LJ009-0028.npy +tests/data/ljspeech/wavs/LJ012-0235.wav|tests/data/ljspeech/wavs/LJ012-0235.npy +tests/data/ljspeech/wavs/LJ015-0004.wav|tests/data/ljspeech/wavs/LJ015-0004.npy +tests/data/ljspeech/wavs/LJ005-0277.wav|tests/data/ljspeech/wavs/LJ005-0277.npy +tests/data/ljspeech/wavs/LJ015-0060.wav|tests/data/ljspeech/wavs/LJ015-0060.npy +tests/data/ljspeech/wavs/LJ009-0282.wav|tests/data/ljspeech/wavs/LJ009-0282.npy +tests/data/ljspeech/wavs/LJ019-0213.wav|tests/data/ljspeech/wavs/LJ019-0213.npy +tests/data/ljspeech/wavs/LJ010-0110.wav|tests/data/ljspeech/wavs/LJ010-0110.npy +tests/data/ljspeech/wavs/LJ047-0196.wav|tests/data/ljspeech/wavs/LJ047-0196.npy +tests/data/ljspeech/wavs/LJ050-0219.wav|tests/data/ljspeech/wavs/LJ050-0219.npy +tests/data/ljspeech/wavs/LJ039-0165.wav|tests/data/ljspeech/wavs/LJ039-0165.npy +tests/data/ljspeech/wavs/LJ033-0183.wav|tests/data/ljspeech/wavs/LJ033-0183.npy +tests/data/ljspeech/wavs/LJ039-0001.wav|tests/data/ljspeech/wavs/LJ039-0001.npy +tests/data/ljspeech/wavs/LJ018-0369.wav|tests/data/ljspeech/wavs/LJ018-0369.npy +tests/data/ljspeech/wavs/LJ020-0018.wav|tests/data/ljspeech/wavs/LJ020-0018.npy +tests/data/ljspeech/wavs/LJ021-0005.wav|tests/data/ljspeech/wavs/LJ021-0005.npy +tests/data/ljspeech/wavs/LJ045-0124.wav|tests/data/ljspeech/wavs/LJ045-0124.npy +tests/data/ljspeech/wavs/LJ010-0157.wav|tests/data/ljspeech/wavs/LJ010-0157.npy +tests/data/ljspeech/wavs/LJ003-0010.wav|tests/data/ljspeech/wavs/LJ003-0010.npy +tests/data/ljspeech/wavs/LJ022-0064.wav|tests/data/ljspeech/wavs/LJ022-0064.npy +tests/data/ljspeech/wavs/LJ024-0075.wav|tests/data/ljspeech/wavs/LJ024-0075.npy +tests/data/ljspeech/wavs/LJ028-0446.wav|tests/data/ljspeech/wavs/LJ028-0446.npy +tests/data/ljspeech/wavs/LJ048-0240.wav|tests/data/ljspeech/wavs/LJ048-0240.npy +tests/data/ljspeech/wavs/LJ014-0207.wav|tests/data/ljspeech/wavs/LJ014-0207.npy +tests/data/ljspeech/wavs/LJ038-0132.wav|tests/data/ljspeech/wavs/LJ038-0132.npy +tests/data/ljspeech/wavs/LJ005-0096.wav|tests/data/ljspeech/wavs/LJ005-0096.npy +tests/data/ljspeech/wavs/LJ042-0102.wav|tests/data/ljspeech/wavs/LJ042-0102.npy +tests/data/ljspeech/wavs/LJ004-0034.wav|tests/data/ljspeech/wavs/LJ004-0034.npy +tests/data/ljspeech/wavs/LJ001-0028.wav|tests/data/ljspeech/wavs/LJ001-0028.npy +tests/data/ljspeech/wavs/LJ014-0235.wav|tests/data/ljspeech/wavs/LJ014-0235.npy +tests/data/ljspeech/wavs/LJ018-0209.wav|tests/data/ljspeech/wavs/LJ018-0209.npy +tests/data/ljspeech/wavs/LJ008-0058.wav|tests/data/ljspeech/wavs/LJ008-0058.npy +tests/data/ljspeech/wavs/LJ029-0158.wav|tests/data/ljspeech/wavs/LJ029-0158.npy +tests/data/ljspeech/wavs/LJ040-0208.wav|tests/data/ljspeech/wavs/LJ040-0208.npy +tests/data/ljspeech/wavs/LJ012-0129.wav|tests/data/ljspeech/wavs/LJ012-0129.npy +tests/data/ljspeech/wavs/LJ028-0013.wav|tests/data/ljspeech/wavs/LJ028-0013.npy +tests/data/ljspeech/wavs/LJ034-0101.wav|tests/data/ljspeech/wavs/LJ034-0101.npy +tests/data/ljspeech/wavs/LJ007-0136.wav|tests/data/ljspeech/wavs/LJ007-0136.npy +tests/data/ljspeech/wavs/LJ027-0091.wav|tests/data/ljspeech/wavs/LJ027-0091.npy +tests/data/ljspeech/wavs/LJ002-0141.wav|tests/data/ljspeech/wavs/LJ002-0141.npy +tests/data/ljspeech/wavs/LJ001-0157.wav|tests/data/ljspeech/wavs/LJ001-0157.npy +tests/data/ljspeech/wavs/LJ039-0007.wav|tests/data/ljspeech/wavs/LJ039-0007.npy +tests/data/ljspeech/wavs/LJ013-0142.wav|tests/data/ljspeech/wavs/LJ013-0142.npy +tests/data/ljspeech/wavs/LJ028-0052.wav|tests/data/ljspeech/wavs/LJ028-0052.npy +tests/data/ljspeech/wavs/LJ047-0172.wav|tests/data/ljspeech/wavs/LJ047-0172.npy +tests/data/ljspeech/wavs/LJ044-0038.wav|tests/data/ljspeech/wavs/LJ044-0038.npy +tests/data/ljspeech/wavs/LJ031-0072.wav|tests/data/ljspeech/wavs/LJ031-0072.npy +tests/data/ljspeech/wavs/LJ050-0027.wav|tests/data/ljspeech/wavs/LJ050-0027.npy +tests/data/ljspeech/wavs/LJ049-0097.wav|tests/data/ljspeech/wavs/LJ049-0097.npy +tests/data/ljspeech/wavs/LJ008-0052.wav|tests/data/ljspeech/wavs/LJ008-0052.npy +tests/data/ljspeech/wavs/LJ050-0029.wav|tests/data/ljspeech/wavs/LJ050-0029.npy +tests/data/ljspeech/wavs/LJ048-0100.wav|tests/data/ljspeech/wavs/LJ048-0100.npy +tests/data/ljspeech/wavs/LJ022-0102.wav|tests/data/ljspeech/wavs/LJ022-0102.npy +tests/data/ljspeech/wavs/LJ029-0169.wav|tests/data/ljspeech/wavs/LJ029-0169.npy +tests/data/ljspeech/wavs/LJ016-0292.wav|tests/data/ljspeech/wavs/LJ016-0292.npy +tests/data/ljspeech/wavs/LJ038-0046.wav|tests/data/ljspeech/wavs/LJ038-0046.npy +tests/data/ljspeech/wavs/LJ015-0173.wav|tests/data/ljspeech/wavs/LJ015-0173.npy +tests/data/ljspeech/wavs/LJ012-0207.wav|tests/data/ljspeech/wavs/LJ012-0207.npy +tests/data/ljspeech/wavs/LJ024-0100.wav|tests/data/ljspeech/wavs/LJ024-0100.npy +tests/data/ljspeech/wavs/LJ011-0146.wav|tests/data/ljspeech/wavs/LJ011-0146.npy +tests/data/ljspeech/wavs/LJ043-0068.wav|tests/data/ljspeech/wavs/LJ043-0068.npy +tests/data/ljspeech/wavs/LJ037-0103.wav|tests/data/ljspeech/wavs/LJ037-0103.npy +tests/data/ljspeech/wavs/LJ002-0163.wav|tests/data/ljspeech/wavs/LJ002-0163.npy +tests/data/ljspeech/wavs/LJ018-0261.wav|tests/data/ljspeech/wavs/LJ018-0261.npy +tests/data/ljspeech/wavs/LJ008-0259.wav|tests/data/ljspeech/wavs/LJ008-0259.npy +tests/data/ljspeech/wavs/LJ034-0048.wav|tests/data/ljspeech/wavs/LJ034-0048.npy +tests/data/ljspeech/wavs/LJ001-0144.wav|tests/data/ljspeech/wavs/LJ001-0144.npy +tests/data/ljspeech/wavs/LJ016-0362.wav|tests/data/ljspeech/wavs/LJ016-0362.npy +tests/data/ljspeech/wavs/LJ018-0375.wav|tests/data/ljspeech/wavs/LJ018-0375.npy +tests/data/ljspeech/wavs/LJ004-0208.wav|tests/data/ljspeech/wavs/LJ004-0208.npy +tests/data/ljspeech/wavs/LJ017-0171.wav|tests/data/ljspeech/wavs/LJ017-0171.npy +tests/data/ljspeech/wavs/LJ050-0011.wav|tests/data/ljspeech/wavs/LJ050-0011.npy +tests/data/ljspeech/wavs/LJ006-0079.wav|tests/data/ljspeech/wavs/LJ006-0079.npy +tests/data/ljspeech/wavs/LJ044-0011.wav|tests/data/ljspeech/wavs/LJ044-0011.npy +tests/data/ljspeech/wavs/LJ023-0139.wav|tests/data/ljspeech/wavs/LJ023-0139.npy +tests/data/ljspeech/wavs/LJ040-0002.wav|tests/data/ljspeech/wavs/LJ040-0002.npy +tests/data/ljspeech/wavs/LJ032-0204.wav|tests/data/ljspeech/wavs/LJ032-0204.npy +tests/data/ljspeech/wavs/LJ046-0200.wav|tests/data/ljspeech/wavs/LJ046-0200.npy +tests/data/ljspeech/wavs/LJ039-0022.wav|tests/data/ljspeech/wavs/LJ039-0022.npy +tests/data/ljspeech/wavs/LJ031-0034.wav|tests/data/ljspeech/wavs/LJ031-0034.npy +tests/data/ljspeech/wavs/LJ048-0068.wav|tests/data/ljspeech/wavs/LJ048-0068.npy +tests/data/ljspeech/wavs/LJ045-0061.wav|tests/data/ljspeech/wavs/LJ045-0061.npy +tests/data/ljspeech/wavs/LJ044-0122.wav|tests/data/ljspeech/wavs/LJ044-0122.npy +tests/data/ljspeech/wavs/LJ019-0290.wav|tests/data/ljspeech/wavs/LJ019-0290.npy +tests/data/ljspeech/wavs/LJ016-0366.wav|tests/data/ljspeech/wavs/LJ016-0366.npy +tests/data/ljspeech/wavs/LJ014-0160.wav|tests/data/ljspeech/wavs/LJ014-0160.npy +tests/data/ljspeech/wavs/LJ003-0288.wav|tests/data/ljspeech/wavs/LJ003-0288.npy +tests/data/ljspeech/wavs/LJ044-0074.wav|tests/data/ljspeech/wavs/LJ044-0074.npy +tests/data/ljspeech/wavs/LJ014-0253.wav|tests/data/ljspeech/wavs/LJ014-0253.npy +tests/data/ljspeech/wavs/LJ021-0074.wav|tests/data/ljspeech/wavs/LJ021-0074.npy +tests/data/ljspeech/wavs/LJ048-0119.wav|tests/data/ljspeech/wavs/LJ048-0119.npy +tests/data/ljspeech/wavs/LJ019-0243.wav|tests/data/ljspeech/wavs/LJ019-0243.npy +tests/data/ljspeech/wavs/LJ037-0078.wav|tests/data/ljspeech/wavs/LJ037-0078.npy +tests/data/ljspeech/wavs/LJ023-0134.wav|tests/data/ljspeech/wavs/LJ023-0134.npy +tests/data/ljspeech/wavs/LJ047-0168.wav|tests/data/ljspeech/wavs/LJ047-0168.npy +tests/data/ljspeech/wavs/LJ006-0092.wav|tests/data/ljspeech/wavs/LJ006-0092.npy +tests/data/ljspeech/wavs/LJ005-0213.wav|tests/data/ljspeech/wavs/LJ005-0213.npy +tests/data/ljspeech/wavs/LJ016-0127.wav|tests/data/ljspeech/wavs/LJ016-0127.npy +tests/data/ljspeech/wavs/LJ034-0171.wav|tests/data/ljspeech/wavs/LJ034-0171.npy +tests/data/ljspeech/wavs/LJ009-0098.wav|tests/data/ljspeech/wavs/LJ009-0098.npy +tests/data/ljspeech/wavs/LJ028-0085.wav|tests/data/ljspeech/wavs/LJ028-0085.npy +tests/data/ljspeech/wavs/LJ048-0069.wav|tests/data/ljspeech/wavs/LJ048-0069.npy +tests/data/ljspeech/wavs/LJ038-0286.wav|tests/data/ljspeech/wavs/LJ038-0286.npy +tests/data/ljspeech/wavs/LJ029-0099.wav|tests/data/ljspeech/wavs/LJ029-0099.npy +tests/data/ljspeech/wavs/LJ031-0074.wav|tests/data/ljspeech/wavs/LJ031-0074.npy +tests/data/ljspeech/wavs/LJ044-0237.wav|tests/data/ljspeech/wavs/LJ044-0237.npy +tests/data/ljspeech/wavs/LJ047-0194.wav|tests/data/ljspeech/wavs/LJ047-0194.npy +tests/data/ljspeech/wavs/LJ034-0084.wav|tests/data/ljspeech/wavs/LJ034-0084.npy +tests/data/ljspeech/wavs/LJ014-0051.wav|tests/data/ljspeech/wavs/LJ014-0051.npy +tests/data/ljspeech/wavs/LJ041-0167.wav|tests/data/ljspeech/wavs/LJ041-0167.npy +tests/data/ljspeech/wavs/LJ033-0121.wav|tests/data/ljspeech/wavs/LJ033-0121.npy +tests/data/ljspeech/wavs/LJ026-0047.wav|tests/data/ljspeech/wavs/LJ026-0047.npy +tests/data/ljspeech/wavs/LJ003-0321.wav|tests/data/ljspeech/wavs/LJ003-0321.npy +tests/data/ljspeech/wavs/LJ022-0142.wav|tests/data/ljspeech/wavs/LJ022-0142.npy +tests/data/ljspeech/wavs/LJ042-0218.wav|tests/data/ljspeech/wavs/LJ042-0218.npy +tests/data/ljspeech/wavs/LJ043-0023.wav|tests/data/ljspeech/wavs/LJ043-0023.npy +tests/data/ljspeech/wavs/LJ042-0209.wav|tests/data/ljspeech/wavs/LJ042-0209.npy +tests/data/ljspeech/wavs/LJ005-0300.wav|tests/data/ljspeech/wavs/LJ005-0300.npy +tests/data/ljspeech/wavs/LJ046-0127.wav|tests/data/ljspeech/wavs/LJ046-0127.npy +tests/data/ljspeech/wavs/LJ042-0010.wav|tests/data/ljspeech/wavs/LJ042-0010.npy +tests/data/ljspeech/wavs/LJ002-0178.wav|tests/data/ljspeech/wavs/LJ002-0178.npy +tests/data/ljspeech/wavs/LJ018-0256.wav|tests/data/ljspeech/wavs/LJ018-0256.npy +tests/data/ljspeech/wavs/LJ028-0024.wav|tests/data/ljspeech/wavs/LJ028-0024.npy +tests/data/ljspeech/wavs/LJ004-0132.wav|tests/data/ljspeech/wavs/LJ004-0132.npy +tests/data/ljspeech/wavs/LJ022-0191.wav|tests/data/ljspeech/wavs/LJ022-0191.npy +tests/data/ljspeech/wavs/LJ025-0070.wav|tests/data/ljspeech/wavs/LJ025-0070.npy +tests/data/ljspeech/wavs/LJ028-0344.wav|tests/data/ljspeech/wavs/LJ028-0344.npy +tests/data/ljspeech/wavs/LJ032-0037.wav|tests/data/ljspeech/wavs/LJ032-0037.npy +tests/data/ljspeech/wavs/LJ022-0039.wav|tests/data/ljspeech/wavs/LJ022-0039.npy +tests/data/ljspeech/wavs/LJ008-0318.wav|tests/data/ljspeech/wavs/LJ008-0318.npy +tests/data/ljspeech/wavs/LJ028-0158.wav|tests/data/ljspeech/wavs/LJ028-0158.npy +tests/data/ljspeech/wavs/LJ010-0041.wav|tests/data/ljspeech/wavs/LJ010-0041.npy +tests/data/ljspeech/wavs/LJ015-0257.wav|tests/data/ljspeech/wavs/LJ015-0257.npy +tests/data/ljspeech/wavs/LJ005-0099.wav|tests/data/ljspeech/wavs/LJ005-0099.npy +tests/data/ljspeech/wavs/LJ049-0185.wav|tests/data/ljspeech/wavs/LJ049-0185.npy +tests/data/ljspeech/wavs/LJ003-0110.wav|tests/data/ljspeech/wavs/LJ003-0110.npy +tests/data/ljspeech/wavs/LJ044-0099.wav|tests/data/ljspeech/wavs/LJ044-0099.npy +tests/data/ljspeech/wavs/LJ018-0392.wav|tests/data/ljspeech/wavs/LJ018-0392.npy +tests/data/ljspeech/wavs/LJ045-0008.wav|tests/data/ljspeech/wavs/LJ045-0008.npy +tests/data/ljspeech/wavs/LJ002-0246.wav|tests/data/ljspeech/wavs/LJ002-0246.npy +tests/data/ljspeech/wavs/LJ045-0002.wav|tests/data/ljspeech/wavs/LJ045-0002.npy +tests/data/ljspeech/wavs/LJ041-0002.wav|tests/data/ljspeech/wavs/LJ041-0002.npy +tests/data/ljspeech/wavs/LJ042-0210.wav|tests/data/ljspeech/wavs/LJ042-0210.npy +tests/data/ljspeech/wavs/LJ025-0072.wav|tests/data/ljspeech/wavs/LJ025-0072.npy +tests/data/ljspeech/wavs/LJ025-0074.wav|tests/data/ljspeech/wavs/LJ025-0074.npy +tests/data/ljspeech/wavs/LJ048-0089.wav|tests/data/ljspeech/wavs/LJ048-0089.npy +tests/data/ljspeech/wavs/LJ016-0412.wav|tests/data/ljspeech/wavs/LJ016-0412.npy +tests/data/ljspeech/wavs/LJ044-0048.wav|tests/data/ljspeech/wavs/LJ044-0048.npy +tests/data/ljspeech/wavs/LJ038-0292.wav|tests/data/ljspeech/wavs/LJ038-0292.npy +tests/data/ljspeech/wavs/LJ010-0202.wav|tests/data/ljspeech/wavs/LJ010-0202.npy +tests/data/ljspeech/wavs/LJ008-0004.wav|tests/data/ljspeech/wavs/LJ008-0004.npy +tests/data/ljspeech/wavs/LJ007-0042.wav|tests/data/ljspeech/wavs/LJ007-0042.npy +tests/data/ljspeech/wavs/LJ023-0014.wav|tests/data/ljspeech/wavs/LJ023-0014.npy +tests/data/ljspeech/wavs/LJ030-0222.wav|tests/data/ljspeech/wavs/LJ030-0222.npy +tests/data/ljspeech/wavs/LJ010-0256.wav|tests/data/ljspeech/wavs/LJ010-0256.npy +tests/data/ljspeech/wavs/LJ008-0296.wav|tests/data/ljspeech/wavs/LJ008-0296.npy +tests/data/ljspeech/wavs/LJ035-0114.wav|tests/data/ljspeech/wavs/LJ035-0114.npy +tests/data/ljspeech/wavs/LJ023-0017.wav|tests/data/ljspeech/wavs/LJ023-0017.npy +tests/data/ljspeech/wavs/LJ014-0028.wav|tests/data/ljspeech/wavs/LJ014-0028.npy +tests/data/ljspeech/wavs/LJ020-0093.wav|tests/data/ljspeech/wavs/LJ020-0093.npy +tests/data/ljspeech/wavs/LJ018-0373.wav|tests/data/ljspeech/wavs/LJ018-0373.npy +tests/data/ljspeech/wavs/LJ006-0186.wav|tests/data/ljspeech/wavs/LJ006-0186.npy +tests/data/ljspeech/wavs/LJ045-0081.wav|tests/data/ljspeech/wavs/LJ045-0081.npy +tests/data/ljspeech/wavs/LJ032-0005.wav|tests/data/ljspeech/wavs/LJ032-0005.npy +tests/data/ljspeech/wavs/LJ026-0037.wav|tests/data/ljspeech/wavs/LJ026-0037.npy +tests/data/ljspeech/wavs/LJ014-0056.wav|tests/data/ljspeech/wavs/LJ014-0056.npy +tests/data/ljspeech/wavs/LJ022-0072.wav|tests/data/ljspeech/wavs/LJ022-0072.npy +tests/data/ljspeech/wavs/LJ049-0040.wav|tests/data/ljspeech/wavs/LJ049-0040.npy +tests/data/ljspeech/wavs/LJ008-0253.wav|tests/data/ljspeech/wavs/LJ008-0253.npy +tests/data/ljspeech/wavs/LJ013-0074.wav|tests/data/ljspeech/wavs/LJ013-0074.npy +tests/data/ljspeech/wavs/LJ044-0021.wav|tests/data/ljspeech/wavs/LJ044-0021.npy +tests/data/ljspeech/wavs/LJ048-0040.wav|tests/data/ljspeech/wavs/LJ048-0040.npy +tests/data/ljspeech/wavs/LJ022-0042.wav|tests/data/ljspeech/wavs/LJ022-0042.npy +tests/data/ljspeech/wavs/LJ030-0011.wav|tests/data/ljspeech/wavs/LJ030-0011.npy +tests/data/ljspeech/wavs/LJ039-0035.wav|tests/data/ljspeech/wavs/LJ039-0035.npy +tests/data/ljspeech/wavs/LJ024-0076.wav|tests/data/ljspeech/wavs/LJ024-0076.npy +tests/data/ljspeech/wavs/LJ043-0014.wav|tests/data/ljspeech/wavs/LJ043-0014.npy +tests/data/ljspeech/wavs/LJ041-0190.wav|tests/data/ljspeech/wavs/LJ041-0190.npy +tests/data/ljspeech/wavs/LJ030-0099.wav|tests/data/ljspeech/wavs/LJ030-0099.npy +tests/data/ljspeech/wavs/LJ048-0280.wav|tests/data/ljspeech/wavs/LJ048-0280.npy +tests/data/ljspeech/wavs/LJ007-0241.wav|tests/data/ljspeech/wavs/LJ007-0241.npy +tests/data/ljspeech/wavs/LJ045-0153.wav|tests/data/ljspeech/wavs/LJ045-0153.npy +tests/data/ljspeech/wavs/LJ049-0062.wav|tests/data/ljspeech/wavs/LJ049-0062.npy +tests/data/ljspeech/wavs/LJ039-0048.wav|tests/data/ljspeech/wavs/LJ039-0048.npy +tests/data/ljspeech/wavs/LJ021-0045.wav|tests/data/ljspeech/wavs/LJ021-0045.npy +tests/data/ljspeech/wavs/LJ011-0275.wav|tests/data/ljspeech/wavs/LJ011-0275.npy +tests/data/ljspeech/wavs/LJ008-0059.wav|tests/data/ljspeech/wavs/LJ008-0059.npy +tests/data/ljspeech/wavs/LJ015-0242.wav|tests/data/ljspeech/wavs/LJ015-0242.npy +tests/data/ljspeech/wavs/LJ017-0183.wav|tests/data/ljspeech/wavs/LJ017-0183.npy +tests/data/ljspeech/wavs/LJ010-0277.wav|tests/data/ljspeech/wavs/LJ010-0277.npy +tests/data/ljspeech/wavs/LJ020-0089.wav|tests/data/ljspeech/wavs/LJ020-0089.npy +tests/data/ljspeech/wavs/LJ018-0242.wav|tests/data/ljspeech/wavs/LJ018-0242.npy +tests/data/ljspeech/wavs/LJ046-0030.wav|tests/data/ljspeech/wavs/LJ046-0030.npy +tests/data/ljspeech/wavs/LJ048-0241.wav|tests/data/ljspeech/wavs/LJ048-0241.npy +tests/data/ljspeech/wavs/LJ015-0097.wav|tests/data/ljspeech/wavs/LJ015-0097.npy +tests/data/ljspeech/wavs/LJ024-0045.wav|tests/data/ljspeech/wavs/LJ024-0045.npy +tests/data/ljspeech/wavs/LJ009-0036.wav|tests/data/ljspeech/wavs/LJ009-0036.npy +tests/data/ljspeech/wavs/LJ013-0076.wav|tests/data/ljspeech/wavs/LJ013-0076.npy +tests/data/ljspeech/wavs/LJ006-0069.wav|tests/data/ljspeech/wavs/LJ006-0069.npy +tests/data/ljspeech/wavs/LJ027-0079.wav|tests/data/ljspeech/wavs/LJ027-0079.npy +tests/data/ljspeech/wavs/LJ005-0252.wav|tests/data/ljspeech/wavs/LJ005-0252.npy +tests/data/ljspeech/wavs/LJ043-0115.wav|tests/data/ljspeech/wavs/LJ043-0115.npy +tests/data/ljspeech/wavs/LJ043-0032.wav|tests/data/ljspeech/wavs/LJ043-0032.npy +tests/data/ljspeech/wavs/LJ019-0062.wav|tests/data/ljspeech/wavs/LJ019-0062.npy +tests/data/ljspeech/wavs/LJ021-0023.wav|tests/data/ljspeech/wavs/LJ021-0023.npy +tests/data/ljspeech/wavs/LJ050-0186.wav|tests/data/ljspeech/wavs/LJ050-0186.npy +tests/data/ljspeech/wavs/LJ011-0136.wav|tests/data/ljspeech/wavs/LJ011-0136.npy +tests/data/ljspeech/wavs/LJ003-0318.wav|tests/data/ljspeech/wavs/LJ003-0318.npy +tests/data/ljspeech/wavs/LJ019-0216.wav|tests/data/ljspeech/wavs/LJ019-0216.npy +tests/data/ljspeech/wavs/LJ006-0267.wav|tests/data/ljspeech/wavs/LJ006-0267.npy +tests/data/ljspeech/wavs/LJ029-0116.wav|tests/data/ljspeech/wavs/LJ029-0116.npy +tests/data/ljspeech/wavs/LJ021-0026.wav|tests/data/ljspeech/wavs/LJ021-0026.npy +tests/data/ljspeech/wavs/LJ013-0202.wav|tests/data/ljspeech/wavs/LJ013-0202.npy +tests/data/ljspeech/wavs/LJ023-0123.wav|tests/data/ljspeech/wavs/LJ023-0123.npy +tests/data/ljspeech/wavs/LJ004-0119.wav|tests/data/ljspeech/wavs/LJ004-0119.npy +tests/data/ljspeech/wavs/LJ040-0015.wav|tests/data/ljspeech/wavs/LJ040-0015.npy +tests/data/ljspeech/wavs/LJ008-0312.wav|tests/data/ljspeech/wavs/LJ008-0312.npy +tests/data/ljspeech/wavs/LJ034-0018.wav|tests/data/ljspeech/wavs/LJ034-0018.npy +tests/data/ljspeech/wavs/LJ012-0263.wav|tests/data/ljspeech/wavs/LJ012-0263.npy +tests/data/ljspeech/wavs/LJ023-0133.wav|tests/data/ljspeech/wavs/LJ023-0133.npy +tests/data/ljspeech/wavs/LJ028-0047.wav|tests/data/ljspeech/wavs/LJ028-0047.npy +tests/data/ljspeech/wavs/LJ028-0501.wav|tests/data/ljspeech/wavs/LJ028-0501.npy +tests/data/ljspeech/wavs/LJ008-0231.wav|tests/data/ljspeech/wavs/LJ008-0231.npy +tests/data/ljspeech/wavs/LJ048-0212.wav|tests/data/ljspeech/wavs/LJ048-0212.npy +tests/data/ljspeech/wavs/LJ013-0187.wav|tests/data/ljspeech/wavs/LJ013-0187.npy +tests/data/ljspeech/wavs/LJ030-0065.wav|tests/data/ljspeech/wavs/LJ030-0065.npy +tests/data/ljspeech/wavs/LJ037-0177.wav|tests/data/ljspeech/wavs/LJ037-0177.npy +tests/data/ljspeech/wavs/LJ008-0092.wav|tests/data/ljspeech/wavs/LJ008-0092.npy +tests/data/ljspeech/wavs/LJ006-0253.wav|tests/data/ljspeech/wavs/LJ006-0253.npy +tests/data/ljspeech/wavs/LJ003-0003.wav|tests/data/ljspeech/wavs/LJ003-0003.npy +tests/data/ljspeech/wavs/LJ015-0232.wav|tests/data/ljspeech/wavs/LJ015-0232.npy +tests/data/ljspeech/wavs/LJ015-0070.wav|tests/data/ljspeech/wavs/LJ015-0070.npy +tests/data/ljspeech/wavs/LJ015-0234.wav|tests/data/ljspeech/wavs/LJ015-0234.npy +tests/data/ljspeech/wavs/LJ038-0122.wav|tests/data/ljspeech/wavs/LJ038-0122.npy +tests/data/ljspeech/wavs/LJ041-0173.wav|tests/data/ljspeech/wavs/LJ041-0173.npy +tests/data/ljspeech/wavs/LJ040-0044.wav|tests/data/ljspeech/wavs/LJ040-0044.npy +tests/data/ljspeech/wavs/LJ037-0241.wav|tests/data/ljspeech/wavs/LJ037-0241.npy +tests/data/ljspeech/wavs/LJ050-0048.wav|tests/data/ljspeech/wavs/LJ050-0048.npy +tests/data/ljspeech/wavs/LJ050-0208.wav|tests/data/ljspeech/wavs/LJ050-0208.npy +tests/data/ljspeech/wavs/LJ012-0047.wav|tests/data/ljspeech/wavs/LJ012-0047.npy +tests/data/ljspeech/wavs/LJ030-0168.wav|tests/data/ljspeech/wavs/LJ030-0168.npy +tests/data/ljspeech/wavs/LJ019-0045.wav|tests/data/ljspeech/wavs/LJ019-0045.npy +tests/data/ljspeech/wavs/LJ045-0234.wav|tests/data/ljspeech/wavs/LJ045-0234.npy +tests/data/ljspeech/wavs/LJ019-0110.wav|tests/data/ljspeech/wavs/LJ019-0110.npy +tests/data/ljspeech/wavs/LJ049-0115.wav|tests/data/ljspeech/wavs/LJ049-0115.npy +tests/data/ljspeech/wavs/LJ019-0315.wav|tests/data/ljspeech/wavs/LJ019-0315.npy +tests/data/ljspeech/wavs/LJ028-0315.wav|tests/data/ljspeech/wavs/LJ028-0315.npy +tests/data/ljspeech/wavs/LJ028-0010.wav|tests/data/ljspeech/wavs/LJ028-0010.npy +tests/data/ljspeech/wavs/LJ007-0108.wav|tests/data/ljspeech/wavs/LJ007-0108.npy +tests/data/ljspeech/wavs/LJ012-0019.wav|tests/data/ljspeech/wavs/LJ012-0019.npy +tests/data/ljspeech/wavs/LJ048-0117.wav|tests/data/ljspeech/wavs/LJ048-0117.npy +tests/data/ljspeech/wavs/LJ010-0260.wav|tests/data/ljspeech/wavs/LJ010-0260.npy +tests/data/ljspeech/wavs/LJ039-0138.wav|tests/data/ljspeech/wavs/LJ039-0138.npy +tests/data/ljspeech/wavs/LJ014-0101.wav|tests/data/ljspeech/wavs/LJ014-0101.npy +tests/data/ljspeech/wavs/LJ047-0103.wav|tests/data/ljspeech/wavs/LJ047-0103.npy +tests/data/ljspeech/wavs/LJ026-0155.wav|tests/data/ljspeech/wavs/LJ026-0155.npy +tests/data/ljspeech/wavs/LJ023-0088.wav|tests/data/ljspeech/wavs/LJ023-0088.npy +tests/data/ljspeech/wavs/LJ012-0093.wav|tests/data/ljspeech/wavs/LJ012-0093.npy +tests/data/ljspeech/wavs/LJ026-0092.wav|tests/data/ljspeech/wavs/LJ026-0092.npy +tests/data/ljspeech/wavs/LJ005-0169.wav|tests/data/ljspeech/wavs/LJ005-0169.npy +tests/data/ljspeech/wavs/LJ028-0270.wav|tests/data/ljspeech/wavs/LJ028-0270.npy +tests/data/ljspeech/wavs/LJ005-0020.wav|tests/data/ljspeech/wavs/LJ005-0020.npy +tests/data/ljspeech/wavs/LJ028-0477.wav|tests/data/ljspeech/wavs/LJ028-0477.npy +tests/data/ljspeech/wavs/LJ040-0130.wav|tests/data/ljspeech/wavs/LJ040-0130.npy +tests/data/ljspeech/wavs/LJ002-0088.wav|tests/data/ljspeech/wavs/LJ002-0088.npy +tests/data/ljspeech/wavs/LJ049-0128.wav|tests/data/ljspeech/wavs/LJ049-0128.npy +tests/data/ljspeech/wavs/LJ016-0211.wav|tests/data/ljspeech/wavs/LJ016-0211.npy +tests/data/ljspeech/wavs/LJ014-0117.wav|tests/data/ljspeech/wavs/LJ014-0117.npy +tests/data/ljspeech/wavs/LJ038-0024.wav|tests/data/ljspeech/wavs/LJ038-0024.npy +tests/data/ljspeech/wavs/LJ049-0190.wav|tests/data/ljspeech/wavs/LJ049-0190.npy +tests/data/ljspeech/wavs/LJ016-0085.wav|tests/data/ljspeech/wavs/LJ016-0085.npy +tests/data/ljspeech/wavs/LJ038-0179.wav|tests/data/ljspeech/wavs/LJ038-0179.npy +tests/data/ljspeech/wavs/LJ003-0203.wav|tests/data/ljspeech/wavs/LJ003-0203.npy +tests/data/ljspeech/wavs/LJ031-0176.wav|tests/data/ljspeech/wavs/LJ031-0176.npy +tests/data/ljspeech/wavs/LJ037-0055.wav|tests/data/ljspeech/wavs/LJ037-0055.npy +tests/data/ljspeech/wavs/LJ014-0265.wav|tests/data/ljspeech/wavs/LJ014-0265.npy +tests/data/ljspeech/wavs/LJ049-0198.wav|tests/data/ljspeech/wavs/LJ049-0198.npy +tests/data/ljspeech/wavs/LJ037-0236.wav|tests/data/ljspeech/wavs/LJ037-0236.npy +tests/data/ljspeech/wavs/LJ045-0027.wav|tests/data/ljspeech/wavs/LJ045-0027.npy +tests/data/ljspeech/wavs/LJ013-0108.wav|tests/data/ljspeech/wavs/LJ013-0108.npy +tests/data/ljspeech/wavs/LJ028-0076.wav|tests/data/ljspeech/wavs/LJ028-0076.npy +tests/data/ljspeech/wavs/LJ014-0277.wav|tests/data/ljspeech/wavs/LJ014-0277.npy +tests/data/ljspeech/wavs/LJ027-0157.wav|tests/data/ljspeech/wavs/LJ027-0157.npy +tests/data/ljspeech/wavs/LJ015-0290.wav|tests/data/ljspeech/wavs/LJ015-0290.npy +tests/data/ljspeech/wavs/LJ007-0130.wav|tests/data/ljspeech/wavs/LJ007-0130.npy +tests/data/ljspeech/wavs/LJ013-0026.wav|tests/data/ljspeech/wavs/LJ013-0026.npy +tests/data/ljspeech/wavs/LJ045-0192.wav|tests/data/ljspeech/wavs/LJ045-0192.npy +tests/data/ljspeech/wavs/LJ038-0284.wav|tests/data/ljspeech/wavs/LJ038-0284.npy +tests/data/ljspeech/wavs/LJ047-0027.wav|tests/data/ljspeech/wavs/LJ047-0027.npy +tests/data/ljspeech/wavs/LJ003-0348.wav|tests/data/ljspeech/wavs/LJ003-0348.npy +tests/data/ljspeech/wavs/LJ003-0178.wav|tests/data/ljspeech/wavs/LJ003-0178.npy +tests/data/ljspeech/wavs/LJ028-0023.wav|tests/data/ljspeech/wavs/LJ028-0023.npy +tests/data/ljspeech/wavs/LJ013-0226.wav|tests/data/ljspeech/wavs/LJ013-0226.npy +tests/data/ljspeech/wavs/LJ012-0174.wav|tests/data/ljspeech/wavs/LJ012-0174.npy +tests/data/ljspeech/wavs/LJ032-0154.wav|tests/data/ljspeech/wavs/LJ032-0154.npy +tests/data/ljspeech/wavs/LJ028-0200.wav|tests/data/ljspeech/wavs/LJ028-0200.npy +tests/data/ljspeech/wavs/LJ039-0228.wav|tests/data/ljspeech/wavs/LJ039-0228.npy +tests/data/ljspeech/wavs/LJ036-0121.wav|tests/data/ljspeech/wavs/LJ036-0121.npy +tests/data/ljspeech/wavs/LJ040-0186.wav|tests/data/ljspeech/wavs/LJ040-0186.npy +tests/data/ljspeech/wavs/LJ041-0118.wav|tests/data/ljspeech/wavs/LJ041-0118.npy +tests/data/ljspeech/wavs/LJ002-0267.wav|tests/data/ljspeech/wavs/LJ002-0267.npy +tests/data/ljspeech/wavs/LJ002-0124.wav|tests/data/ljspeech/wavs/LJ002-0124.npy +tests/data/ljspeech/wavs/LJ033-0150.wav|tests/data/ljspeech/wavs/LJ033-0150.npy +tests/data/ljspeech/wavs/LJ036-0147.wav|tests/data/ljspeech/wavs/LJ036-0147.npy +tests/data/ljspeech/wavs/LJ044-0033.wav|tests/data/ljspeech/wavs/LJ044-0033.npy +tests/data/ljspeech/wavs/LJ040-0197.wav|tests/data/ljspeech/wavs/LJ040-0197.npy +tests/data/ljspeech/wavs/LJ018-0079.wav|tests/data/ljspeech/wavs/LJ018-0079.npy +tests/data/ljspeech/wavs/LJ017-0266.wav|tests/data/ljspeech/wavs/LJ017-0266.npy +tests/data/ljspeech/wavs/LJ029-0129.wav|tests/data/ljspeech/wavs/LJ029-0129.npy +tests/data/ljspeech/wavs/LJ044-0158.wav|tests/data/ljspeech/wavs/LJ044-0158.npy +tests/data/ljspeech/wavs/LJ002-0004.wav|tests/data/ljspeech/wavs/LJ002-0004.npy +tests/data/ljspeech/wavs/LJ008-0261.wav|tests/data/ljspeech/wavs/LJ008-0261.npy +tests/data/ljspeech/wavs/LJ019-0176.wav|tests/data/ljspeech/wavs/LJ019-0176.npy +tests/data/ljspeech/wavs/LJ018-0226.wav|tests/data/ljspeech/wavs/LJ018-0226.npy +tests/data/ljspeech/wavs/LJ011-0012.wav|tests/data/ljspeech/wavs/LJ011-0012.npy +tests/data/ljspeech/wavs/LJ005-0193.wav|tests/data/ljspeech/wavs/LJ005-0193.npy +tests/data/ljspeech/wavs/LJ018-0003.wav|tests/data/ljspeech/wavs/LJ018-0003.npy +tests/data/ljspeech/wavs/LJ027-0047.wav|tests/data/ljspeech/wavs/LJ027-0047.npy +tests/data/ljspeech/wavs/LJ023-0118.wav|tests/data/ljspeech/wavs/LJ023-0118.npy +tests/data/ljspeech/wavs/LJ009-0051.wav|tests/data/ljspeech/wavs/LJ009-0051.npy +tests/data/ljspeech/wavs/LJ046-0053.wav|tests/data/ljspeech/wavs/LJ046-0053.npy +tests/data/ljspeech/wavs/LJ009-0033.wav|tests/data/ljspeech/wavs/LJ009-0033.npy +tests/data/ljspeech/wavs/LJ028-0375.wav|tests/data/ljspeech/wavs/LJ028-0375.npy +tests/data/ljspeech/wavs/LJ032-0136.wav|tests/data/ljspeech/wavs/LJ032-0136.npy +tests/data/ljspeech/wavs/LJ010-0015.wav|tests/data/ljspeech/wavs/LJ010-0015.npy +tests/data/ljspeech/wavs/LJ005-0089.wav|tests/data/ljspeech/wavs/LJ005-0089.npy +tests/data/ljspeech/wavs/LJ010-0206.wav|tests/data/ljspeech/wavs/LJ010-0206.npy +tests/data/ljspeech/wavs/LJ032-0261.wav|tests/data/ljspeech/wavs/LJ032-0261.npy +tests/data/ljspeech/wavs/LJ001-0084.wav|tests/data/ljspeech/wavs/LJ001-0084.npy +tests/data/ljspeech/wavs/LJ047-0023.wav|tests/data/ljspeech/wavs/LJ047-0023.npy +tests/data/ljspeech/wavs/LJ004-0120.wav|tests/data/ljspeech/wavs/LJ004-0120.npy +tests/data/ljspeech/wavs/LJ050-0062.wav|tests/data/ljspeech/wavs/LJ050-0062.npy +tests/data/ljspeech/wavs/LJ019-0101.wav|tests/data/ljspeech/wavs/LJ019-0101.npy +tests/data/ljspeech/wavs/LJ041-0080.wav|tests/data/ljspeech/wavs/LJ041-0080.npy +tests/data/ljspeech/wavs/LJ011-0098.wav|tests/data/ljspeech/wavs/LJ011-0098.npy +tests/data/ljspeech/wavs/LJ021-0158.wav|tests/data/ljspeech/wavs/LJ021-0158.npy +tests/data/ljspeech/wavs/LJ035-0024.wav|tests/data/ljspeech/wavs/LJ035-0024.npy +tests/data/ljspeech/wavs/LJ030-0149.wav|tests/data/ljspeech/wavs/LJ030-0149.npy +tests/data/ljspeech/wavs/LJ048-0012.wav|tests/data/ljspeech/wavs/LJ048-0012.npy +tests/data/ljspeech/wavs/LJ028-0510.wav|tests/data/ljspeech/wavs/LJ028-0510.npy +tests/data/ljspeech/wavs/LJ019-0009.wav|tests/data/ljspeech/wavs/LJ019-0009.npy +tests/data/ljspeech/wavs/LJ037-0038.wav|tests/data/ljspeech/wavs/LJ037-0038.npy +tests/data/ljspeech/wavs/LJ031-0128.wav|tests/data/ljspeech/wavs/LJ031-0128.npy +tests/data/ljspeech/wavs/LJ041-0066.wav|tests/data/ljspeech/wavs/LJ041-0066.npy +tests/data/ljspeech/wavs/LJ049-0069.wav|tests/data/ljspeech/wavs/LJ049-0069.npy +tests/data/ljspeech/wavs/LJ033-0008.wav|tests/data/ljspeech/wavs/LJ033-0008.npy +tests/data/ljspeech/wavs/LJ044-0184.wav|tests/data/ljspeech/wavs/LJ044-0184.npy +tests/data/ljspeech/wavs/LJ004-0157.wav|tests/data/ljspeech/wavs/LJ004-0157.npy +tests/data/ljspeech/wavs/LJ018-0184.wav|tests/data/ljspeech/wavs/LJ018-0184.npy +tests/data/ljspeech/wavs/LJ022-0070.wav|tests/data/ljspeech/wavs/LJ022-0070.npy +tests/data/ljspeech/wavs/LJ001-0053.wav|tests/data/ljspeech/wavs/LJ001-0053.npy +tests/data/ljspeech/wavs/LJ009-0223.wav|tests/data/ljspeech/wavs/LJ009-0223.npy +tests/data/ljspeech/wavs/LJ036-0086.wav|tests/data/ljspeech/wavs/LJ036-0086.npy +tests/data/ljspeech/wavs/LJ018-0225.wav|tests/data/ljspeech/wavs/LJ018-0225.npy +tests/data/ljspeech/wavs/LJ018-0124.wav|tests/data/ljspeech/wavs/LJ018-0124.npy +tests/data/ljspeech/wavs/LJ021-0177.wav|tests/data/ljspeech/wavs/LJ021-0177.npy +tests/data/ljspeech/wavs/LJ048-0136.wav|tests/data/ljspeech/wavs/LJ048-0136.npy +tests/data/ljspeech/wavs/LJ030-0192.wav|tests/data/ljspeech/wavs/LJ030-0192.npy +tests/data/ljspeech/wavs/LJ017-0146.wav|tests/data/ljspeech/wavs/LJ017-0146.npy +tests/data/ljspeech/wavs/LJ016-0352.wav|tests/data/ljspeech/wavs/LJ016-0352.npy +tests/data/ljspeech/wavs/LJ017-0222.wav|tests/data/ljspeech/wavs/LJ017-0222.npy +tests/data/ljspeech/wavs/LJ039-0247.wav|tests/data/ljspeech/wavs/LJ039-0247.npy +tests/data/ljspeech/wavs/LJ036-0194.wav|tests/data/ljspeech/wavs/LJ036-0194.npy +tests/data/ljspeech/wavs/LJ037-0231.wav|tests/data/ljspeech/wavs/LJ037-0231.npy +tests/data/ljspeech/wavs/LJ006-0122.wav|tests/data/ljspeech/wavs/LJ006-0122.npy +tests/data/ljspeech/wavs/LJ009-0175.wav|tests/data/ljspeech/wavs/LJ009-0175.npy +tests/data/ljspeech/wavs/LJ036-0192.wav|tests/data/ljspeech/wavs/LJ036-0192.npy +tests/data/ljspeech/wavs/LJ008-0030.wav|tests/data/ljspeech/wavs/LJ008-0030.npy +tests/data/ljspeech/wavs/LJ045-0129.wav|tests/data/ljspeech/wavs/LJ045-0129.npy +tests/data/ljspeech/wavs/LJ036-0072.wav|tests/data/ljspeech/wavs/LJ036-0072.npy +tests/data/ljspeech/wavs/LJ024-0001.wav|tests/data/ljspeech/wavs/LJ024-0001.npy +tests/data/ljspeech/wavs/LJ028-0090.wav|tests/data/ljspeech/wavs/LJ028-0090.npy +tests/data/ljspeech/wavs/LJ048-0215.wav|tests/data/ljspeech/wavs/LJ048-0215.npy +tests/data/ljspeech/wavs/LJ008-0276.wav|tests/data/ljspeech/wavs/LJ008-0276.npy +tests/data/ljspeech/wavs/LJ018-0077.wav|tests/data/ljspeech/wavs/LJ018-0077.npy +tests/data/ljspeech/wavs/LJ044-0030.wav|tests/data/ljspeech/wavs/LJ044-0030.npy +tests/data/ljspeech/wavs/LJ046-0076.wav|tests/data/ljspeech/wavs/LJ046-0076.npy +tests/data/ljspeech/wavs/LJ001-0151.wav|tests/data/ljspeech/wavs/LJ001-0151.npy +tests/data/ljspeech/wavs/LJ021-0170.wav|tests/data/ljspeech/wavs/LJ021-0170.npy +tests/data/ljspeech/wavs/LJ019-0342.wav|tests/data/ljspeech/wavs/LJ019-0342.npy +tests/data/ljspeech/wavs/LJ025-0171.wav|tests/data/ljspeech/wavs/LJ025-0171.npy +tests/data/ljspeech/wavs/LJ008-0281.wav|tests/data/ljspeech/wavs/LJ008-0281.npy +tests/data/ljspeech/wavs/LJ049-0126.wav|tests/data/ljspeech/wavs/LJ049-0126.npy +tests/data/ljspeech/wavs/LJ008-0070.wav|tests/data/ljspeech/wavs/LJ008-0070.npy +tests/data/ljspeech/wavs/LJ002-0092.wav|tests/data/ljspeech/wavs/LJ002-0092.npy +tests/data/ljspeech/wavs/LJ048-0243.wav|tests/data/ljspeech/wavs/LJ048-0243.npy +tests/data/ljspeech/wavs/LJ019-0319.wav|tests/data/ljspeech/wavs/LJ019-0319.npy +tests/data/ljspeech/wavs/LJ028-0005.wav|tests/data/ljspeech/wavs/LJ028-0005.npy +tests/data/ljspeech/wavs/LJ019-0232.wav|tests/data/ljspeech/wavs/LJ019-0232.npy +tests/data/ljspeech/wavs/LJ030-0220.wav|tests/data/ljspeech/wavs/LJ030-0220.npy +tests/data/ljspeech/wavs/LJ024-0057.wav|tests/data/ljspeech/wavs/LJ024-0057.npy +tests/data/ljspeech/wavs/LJ019-0132.wav|tests/data/ljspeech/wavs/LJ019-0132.npy +tests/data/ljspeech/wavs/LJ006-0232.wav|tests/data/ljspeech/wavs/LJ006-0232.npy +tests/data/ljspeech/wavs/LJ029-0187.wav|tests/data/ljspeech/wavs/LJ029-0187.npy +tests/data/ljspeech/wavs/LJ010-0152.wav|tests/data/ljspeech/wavs/LJ010-0152.npy +tests/data/ljspeech/wavs/LJ050-0079.wav|tests/data/ljspeech/wavs/LJ050-0079.npy +tests/data/ljspeech/wavs/LJ005-0019.wav|tests/data/ljspeech/wavs/LJ005-0019.npy +tests/data/ljspeech/wavs/LJ028-0447.wav|tests/data/ljspeech/wavs/LJ028-0447.npy +tests/data/ljspeech/wavs/LJ012-0231.wav|tests/data/ljspeech/wavs/LJ012-0231.npy +tests/data/ljspeech/wavs/LJ041-0142.wav|tests/data/ljspeech/wavs/LJ041-0142.npy +tests/data/ljspeech/wavs/LJ004-0207.wav|tests/data/ljspeech/wavs/LJ004-0207.npy +tests/data/ljspeech/wavs/LJ001-0167.wav|tests/data/ljspeech/wavs/LJ001-0167.npy +tests/data/ljspeech/wavs/LJ044-0107.wav|tests/data/ljspeech/wavs/LJ044-0107.npy +tests/data/ljspeech/wavs/LJ015-0157.wav|tests/data/ljspeech/wavs/LJ015-0157.npy +tests/data/ljspeech/wavs/LJ040-0237.wav|tests/data/ljspeech/wavs/LJ040-0237.npy +tests/data/ljspeech/wavs/LJ006-0107.wav|tests/data/ljspeech/wavs/LJ006-0107.npy +tests/data/ljspeech/wavs/LJ010-0031.wav|tests/data/ljspeech/wavs/LJ010-0031.npy +tests/data/ljspeech/wavs/LJ028-0050.wav|tests/data/ljspeech/wavs/LJ028-0050.npy +tests/data/ljspeech/wavs/LJ019-0214.wav|tests/data/ljspeech/wavs/LJ019-0214.npy +tests/data/ljspeech/wavs/LJ001-0161.wav|tests/data/ljspeech/wavs/LJ001-0161.npy +tests/data/ljspeech/wavs/LJ030-0211.wav|tests/data/ljspeech/wavs/LJ030-0211.npy +tests/data/ljspeech/wavs/LJ033-0079.wav|tests/data/ljspeech/wavs/LJ033-0079.npy +tests/data/ljspeech/wavs/LJ009-0269.wav|tests/data/ljspeech/wavs/LJ009-0269.npy +tests/data/ljspeech/wavs/LJ043-0084.wav|tests/data/ljspeech/wavs/LJ043-0084.npy +tests/data/ljspeech/wavs/LJ004-0017.wav|tests/data/ljspeech/wavs/LJ004-0017.npy +tests/data/ljspeech/wavs/LJ046-0247.wav|tests/data/ljspeech/wavs/LJ046-0247.npy +tests/data/ljspeech/wavs/LJ005-0114.wav|tests/data/ljspeech/wavs/LJ005-0114.npy +tests/data/ljspeech/wavs/LJ015-0066.wav|tests/data/ljspeech/wavs/LJ015-0066.npy +tests/data/ljspeech/wavs/LJ009-0299.wav|tests/data/ljspeech/wavs/LJ009-0299.npy +tests/data/ljspeech/wavs/LJ007-0004.wav|tests/data/ljspeech/wavs/LJ007-0004.npy +tests/data/ljspeech/wavs/LJ006-0045.wav|tests/data/ljspeech/wavs/LJ006-0045.npy +tests/data/ljspeech/wavs/LJ019-0395.wav|tests/data/ljspeech/wavs/LJ019-0395.npy +tests/data/ljspeech/wavs/LJ031-0162.wav|tests/data/ljspeech/wavs/LJ031-0162.npy +tests/data/ljspeech/wavs/LJ046-0249.wav|tests/data/ljspeech/wavs/LJ046-0249.npy +tests/data/ljspeech/wavs/LJ034-0132.wav|tests/data/ljspeech/wavs/LJ034-0132.npy +tests/data/ljspeech/wavs/LJ013-0073.wav|tests/data/ljspeech/wavs/LJ013-0073.npy +tests/data/ljspeech/wavs/LJ011-0279.wav|tests/data/ljspeech/wavs/LJ011-0279.npy +tests/data/ljspeech/wavs/LJ030-0158.wav|tests/data/ljspeech/wavs/LJ030-0158.npy +tests/data/ljspeech/wavs/LJ048-0127.wav|tests/data/ljspeech/wavs/LJ048-0127.npy +tests/data/ljspeech/wavs/LJ036-0210.wav|tests/data/ljspeech/wavs/LJ036-0210.npy +tests/data/ljspeech/wavs/LJ029-0193.wav|tests/data/ljspeech/wavs/LJ029-0193.npy +tests/data/ljspeech/wavs/LJ016-0151.wav|tests/data/ljspeech/wavs/LJ016-0151.npy +tests/data/ljspeech/wavs/LJ033-0153.wav|tests/data/ljspeech/wavs/LJ033-0153.npy +tests/data/ljspeech/wavs/LJ042-0009.wav|tests/data/ljspeech/wavs/LJ042-0009.npy +tests/data/ljspeech/wavs/LJ050-0085.wav|tests/data/ljspeech/wavs/LJ050-0085.npy +tests/data/ljspeech/wavs/LJ025-0034.wav|tests/data/ljspeech/wavs/LJ025-0034.npy +tests/data/ljspeech/wavs/LJ048-0235.wav|tests/data/ljspeech/wavs/LJ048-0235.npy +tests/data/ljspeech/wavs/LJ001-0041.wav|tests/data/ljspeech/wavs/LJ001-0041.npy +tests/data/ljspeech/wavs/LJ002-0288.wav|tests/data/ljspeech/wavs/LJ002-0288.npy +tests/data/ljspeech/wavs/LJ022-0074.wav|tests/data/ljspeech/wavs/LJ022-0074.npy +tests/data/ljspeech/wavs/LJ017-0217.wav|tests/data/ljspeech/wavs/LJ017-0217.npy +tests/data/ljspeech/wavs/LJ011-0100.wav|tests/data/ljspeech/wavs/LJ011-0100.npy +tests/data/ljspeech/wavs/LJ017-0280.wav|tests/data/ljspeech/wavs/LJ017-0280.npy +tests/data/ljspeech/wavs/LJ028-0298.wav|tests/data/ljspeech/wavs/LJ028-0298.npy +tests/data/ljspeech/wavs/LJ023-0069.wav|tests/data/ljspeech/wavs/LJ023-0069.npy +tests/data/ljspeech/wavs/LJ031-0119.wav|tests/data/ljspeech/wavs/LJ031-0119.npy +tests/data/ljspeech/wavs/LJ011-0091.wav|tests/data/ljspeech/wavs/LJ011-0091.npy +tests/data/ljspeech/wavs/LJ003-0266.wav|tests/data/ljspeech/wavs/LJ003-0266.npy +tests/data/ljspeech/wavs/LJ016-0141.wav|tests/data/ljspeech/wavs/LJ016-0141.npy +tests/data/ljspeech/wavs/LJ011-0194.wav|tests/data/ljspeech/wavs/LJ011-0194.npy +tests/data/ljspeech/wavs/LJ029-0194.wav|tests/data/ljspeech/wavs/LJ029-0194.npy +tests/data/ljspeech/wavs/LJ045-0198.wav|tests/data/ljspeech/wavs/LJ045-0198.npy +tests/data/ljspeech/wavs/LJ011-0138.wav|tests/data/ljspeech/wavs/LJ011-0138.npy +tests/data/ljspeech/wavs/LJ042-0027.wav|tests/data/ljspeech/wavs/LJ042-0027.npy +tests/data/ljspeech/wavs/LJ037-0135.wav|tests/data/ljspeech/wavs/LJ037-0135.npy +tests/data/ljspeech/wavs/LJ033-0142.wav|tests/data/ljspeech/wavs/LJ033-0142.npy +tests/data/ljspeech/wavs/LJ038-0088.wav|tests/data/ljspeech/wavs/LJ038-0088.npy +tests/data/ljspeech/wavs/LJ002-0225.wav|tests/data/ljspeech/wavs/LJ002-0225.npy +tests/data/ljspeech/wavs/LJ030-0160.wav|tests/data/ljspeech/wavs/LJ030-0160.npy +tests/data/ljspeech/wavs/LJ036-0176.wav|tests/data/ljspeech/wavs/LJ036-0176.npy +tests/data/ljspeech/wavs/LJ002-0034.wav|tests/data/ljspeech/wavs/LJ002-0034.npy +tests/data/ljspeech/wavs/LJ004-0028.wav|tests/data/ljspeech/wavs/LJ004-0028.npy +tests/data/ljspeech/wavs/LJ010-0018.wav|tests/data/ljspeech/wavs/LJ010-0018.npy +tests/data/ljspeech/wavs/LJ038-0074.wav|tests/data/ljspeech/wavs/LJ038-0074.npy +tests/data/ljspeech/wavs/LJ038-0015.wav|tests/data/ljspeech/wavs/LJ038-0015.npy +tests/data/ljspeech/wavs/LJ044-0040.wav|tests/data/ljspeech/wavs/LJ044-0040.npy +tests/data/ljspeech/wavs/LJ050-0045.wav|tests/data/ljspeech/wavs/LJ050-0045.npy +tests/data/ljspeech/wavs/LJ035-0137.wav|tests/data/ljspeech/wavs/LJ035-0137.npy +tests/data/ljspeech/wavs/LJ003-0309.wav|tests/data/ljspeech/wavs/LJ003-0309.npy +tests/data/ljspeech/wavs/LJ027-0056.wav|tests/data/ljspeech/wavs/LJ027-0056.npy +tests/data/ljspeech/wavs/LJ001-0006.wav|tests/data/ljspeech/wavs/LJ001-0006.npy +tests/data/ljspeech/wavs/LJ028-0132.wav|tests/data/ljspeech/wavs/LJ028-0132.npy +tests/data/ljspeech/wavs/LJ003-0161.wav|tests/data/ljspeech/wavs/LJ003-0161.npy +tests/data/ljspeech/wavs/LJ035-0154.wav|tests/data/ljspeech/wavs/LJ035-0154.npy +tests/data/ljspeech/wavs/LJ024-0126.wav|tests/data/ljspeech/wavs/LJ024-0126.npy +tests/data/ljspeech/wavs/LJ038-0127.wav|tests/data/ljspeech/wavs/LJ038-0127.npy +tests/data/ljspeech/wavs/LJ014-0047.wav|tests/data/ljspeech/wavs/LJ014-0047.npy +tests/data/ljspeech/wavs/LJ008-0170.wav|tests/data/ljspeech/wavs/LJ008-0170.npy +tests/data/ljspeech/wavs/LJ008-0146.wav|tests/data/ljspeech/wavs/LJ008-0146.npy +tests/data/ljspeech/wavs/LJ041-0055.wav|tests/data/ljspeech/wavs/LJ041-0055.npy +tests/data/ljspeech/wavs/LJ006-0307.wav|tests/data/ljspeech/wavs/LJ006-0307.npy +tests/data/ljspeech/wavs/LJ029-0156.wav|tests/data/ljspeech/wavs/LJ029-0156.npy +tests/data/ljspeech/wavs/LJ033-0214.wav|tests/data/ljspeech/wavs/LJ033-0214.npy +tests/data/ljspeech/wavs/LJ016-0304.wav|tests/data/ljspeech/wavs/LJ016-0304.npy +tests/data/ljspeech/wavs/LJ013-0186.wav|tests/data/ljspeech/wavs/LJ013-0186.npy +tests/data/ljspeech/wavs/LJ038-0151.wav|tests/data/ljspeech/wavs/LJ038-0151.npy +tests/data/ljspeech/wavs/LJ013-0208.wav|tests/data/ljspeech/wavs/LJ013-0208.npy +tests/data/ljspeech/wavs/LJ001-0011.wav|tests/data/ljspeech/wavs/LJ001-0011.npy +tests/data/ljspeech/wavs/LJ050-0102.wav|tests/data/ljspeech/wavs/LJ050-0102.npy +tests/data/ljspeech/wavs/LJ046-0061.wav|tests/data/ljspeech/wavs/LJ046-0061.npy +tests/data/ljspeech/wavs/LJ030-0051.wav|tests/data/ljspeech/wavs/LJ030-0051.npy +tests/data/ljspeech/wavs/LJ007-0100.wav|tests/data/ljspeech/wavs/LJ007-0100.npy +tests/data/ljspeech/wavs/LJ007-0099.wav|tests/data/ljspeech/wavs/LJ007-0099.npy +tests/data/ljspeech/wavs/LJ033-0186.wav|tests/data/ljspeech/wavs/LJ033-0186.npy +tests/data/ljspeech/wavs/LJ024-0023.wav|tests/data/ljspeech/wavs/LJ024-0023.npy +tests/data/ljspeech/wavs/LJ035-0079.wav|tests/data/ljspeech/wavs/LJ035-0079.npy +tests/data/ljspeech/wavs/LJ046-0005.wav|tests/data/ljspeech/wavs/LJ046-0005.npy +tests/data/ljspeech/wavs/LJ038-0235.wav|tests/data/ljspeech/wavs/LJ038-0235.npy +tests/data/ljspeech/wavs/LJ046-0208.wav|tests/data/ljspeech/wavs/LJ046-0208.npy +tests/data/ljspeech/wavs/LJ006-0109.wav|tests/data/ljspeech/wavs/LJ006-0109.npy +tests/data/ljspeech/wavs/LJ034-0062.wav|tests/data/ljspeech/wavs/LJ034-0062.npy +tests/data/ljspeech/wavs/LJ020-0044.wav|tests/data/ljspeech/wavs/LJ020-0044.npy +tests/data/ljspeech/wavs/LJ019-0117.wav|tests/data/ljspeech/wavs/LJ019-0117.npy +tests/data/ljspeech/wavs/LJ007-0142.wav|tests/data/ljspeech/wavs/LJ007-0142.npy +tests/data/ljspeech/wavs/LJ005-0036.wav|tests/data/ljspeech/wavs/LJ005-0036.npy +tests/data/ljspeech/wavs/LJ028-0066.wav|tests/data/ljspeech/wavs/LJ028-0066.npy +tests/data/ljspeech/wavs/LJ040-0037.wav|tests/data/ljspeech/wavs/LJ040-0037.npy +tests/data/ljspeech/wavs/LJ021-0180.wav|tests/data/ljspeech/wavs/LJ021-0180.npy +tests/data/ljspeech/wavs/LJ028-0301.wav|tests/data/ljspeech/wavs/LJ028-0301.npy +tests/data/ljspeech/wavs/LJ004-0188.wav|tests/data/ljspeech/wavs/LJ004-0188.npy +tests/data/ljspeech/wavs/LJ035-0125.wav|tests/data/ljspeech/wavs/LJ035-0125.npy +tests/data/ljspeech/wavs/LJ047-0111.wav|tests/data/ljspeech/wavs/LJ047-0111.npy +tests/data/ljspeech/wavs/LJ014-0188.wav|tests/data/ljspeech/wavs/LJ014-0188.npy +tests/data/ljspeech/wavs/LJ025-0137.wav|tests/data/ljspeech/wavs/LJ025-0137.npy +tests/data/ljspeech/wavs/LJ020-0001.wav|tests/data/ljspeech/wavs/LJ020-0001.npy +tests/data/ljspeech/wavs/LJ028-0209.wav|tests/data/ljspeech/wavs/LJ028-0209.npy +tests/data/ljspeech/wavs/LJ008-0236.wav|tests/data/ljspeech/wavs/LJ008-0236.npy +tests/data/ljspeech/wavs/LJ002-0093.wav|tests/data/ljspeech/wavs/LJ002-0093.npy +tests/data/ljspeech/wavs/LJ019-0148.wav|tests/data/ljspeech/wavs/LJ019-0148.npy +tests/data/ljspeech/wavs/LJ025-0124.wav|tests/data/ljspeech/wavs/LJ025-0124.npy +tests/data/ljspeech/wavs/LJ035-0108.wav|tests/data/ljspeech/wavs/LJ035-0108.npy +tests/data/ljspeech/wavs/LJ039-0063.wav|tests/data/ljspeech/wavs/LJ039-0063.npy +tests/data/ljspeech/wavs/LJ005-0134.wav|tests/data/ljspeech/wavs/LJ005-0134.npy +tests/data/ljspeech/wavs/LJ021-0029.wav|tests/data/ljspeech/wavs/LJ021-0029.npy +tests/data/ljspeech/wavs/LJ018-0121.wav|tests/data/ljspeech/wavs/LJ018-0121.npy +tests/data/ljspeech/wavs/LJ046-0139.wav|tests/data/ljspeech/wavs/LJ046-0139.npy +tests/data/ljspeech/wavs/LJ046-0112.wav|tests/data/ljspeech/wavs/LJ046-0112.npy +tests/data/ljspeech/wavs/LJ021-0091.wav|tests/data/ljspeech/wavs/LJ021-0091.npy +tests/data/ljspeech/wavs/LJ018-0390.wav|tests/data/ljspeech/wavs/LJ018-0390.npy +tests/data/ljspeech/wavs/LJ040-0194.wav|tests/data/ljspeech/wavs/LJ040-0194.npy +tests/data/ljspeech/wavs/LJ001-0135.wav|tests/data/ljspeech/wavs/LJ001-0135.npy +tests/data/ljspeech/wavs/LJ013-0225.wav|tests/data/ljspeech/wavs/LJ013-0225.npy +tests/data/ljspeech/wavs/LJ009-0107.wav|tests/data/ljspeech/wavs/LJ009-0107.npy +tests/data/ljspeech/wavs/LJ017-0097.wav|tests/data/ljspeech/wavs/LJ017-0097.npy +tests/data/ljspeech/wavs/LJ037-0158.wav|tests/data/ljspeech/wavs/LJ037-0158.npy +tests/data/ljspeech/wavs/LJ012-0291.wav|tests/data/ljspeech/wavs/LJ012-0291.npy +tests/data/ljspeech/wavs/LJ036-0173.wav|tests/data/ljspeech/wavs/LJ036-0173.npy +tests/data/ljspeech/wavs/LJ039-0052.wav|tests/data/ljspeech/wavs/LJ039-0052.npy +tests/data/ljspeech/wavs/LJ022-0044.wav|tests/data/ljspeech/wavs/LJ022-0044.npy +tests/data/ljspeech/wavs/LJ022-0132.wav|tests/data/ljspeech/wavs/LJ022-0132.npy +tests/data/ljspeech/wavs/LJ002-0226.wav|tests/data/ljspeech/wavs/LJ002-0226.npy +tests/data/ljspeech/wavs/LJ021-0145.wav|tests/data/ljspeech/wavs/LJ021-0145.npy +tests/data/ljspeech/wavs/LJ018-0379.wav|tests/data/ljspeech/wavs/LJ018-0379.npy +tests/data/ljspeech/wavs/LJ047-0239.wav|tests/data/ljspeech/wavs/LJ047-0239.npy +tests/data/ljspeech/wavs/LJ002-0057.wav|tests/data/ljspeech/wavs/LJ002-0057.npy +tests/data/ljspeech/wavs/LJ001-0083.wav|tests/data/ljspeech/wavs/LJ001-0083.npy +tests/data/ljspeech/wavs/LJ018-0072.wav|tests/data/ljspeech/wavs/LJ018-0072.npy +tests/data/ljspeech/wavs/LJ032-0169.wav|tests/data/ljspeech/wavs/LJ032-0169.npy +tests/data/ljspeech/wavs/LJ002-0282.wav|tests/data/ljspeech/wavs/LJ002-0282.npy +tests/data/ljspeech/wavs/LJ018-0388.wav|tests/data/ljspeech/wavs/LJ018-0388.npy +tests/data/ljspeech/wavs/LJ005-0101.wav|tests/data/ljspeech/wavs/LJ005-0101.npy +tests/data/ljspeech/wavs/LJ012-0021.wav|tests/data/ljspeech/wavs/LJ012-0021.npy +tests/data/ljspeech/wavs/LJ048-0249.wav|tests/data/ljspeech/wavs/LJ048-0249.npy +tests/data/ljspeech/wavs/LJ005-0075.wav|tests/data/ljspeech/wavs/LJ005-0075.npy +tests/data/ljspeech/wavs/LJ003-0295.wav|tests/data/ljspeech/wavs/LJ003-0295.npy +tests/data/ljspeech/wavs/LJ031-0191.wav|tests/data/ljspeech/wavs/LJ031-0191.npy +tests/data/ljspeech/wavs/LJ008-0313.wav|tests/data/ljspeech/wavs/LJ008-0313.npy +tests/data/ljspeech/wavs/LJ047-0041.wav|tests/data/ljspeech/wavs/LJ047-0041.npy +tests/data/ljspeech/wavs/LJ024-0066.wav|tests/data/ljspeech/wavs/LJ024-0066.npy +tests/data/ljspeech/wavs/LJ009-0060.wav|tests/data/ljspeech/wavs/LJ009-0060.npy +tests/data/ljspeech/wavs/LJ024-0055.wav|tests/data/ljspeech/wavs/LJ024-0055.npy +tests/data/ljspeech/wavs/LJ007-0233.wav|tests/data/ljspeech/wavs/LJ007-0233.npy +tests/data/ljspeech/wavs/LJ007-0055.wav|tests/data/ljspeech/wavs/LJ007-0055.npy +tests/data/ljspeech/wavs/LJ025-0085.wav|tests/data/ljspeech/wavs/LJ025-0085.npy +tests/data/ljspeech/wavs/LJ024-0029.wav|tests/data/ljspeech/wavs/LJ024-0029.npy +tests/data/ljspeech/wavs/LJ021-0046.wav|tests/data/ljspeech/wavs/LJ021-0046.npy +tests/data/ljspeech/wavs/LJ043-0169.wav|tests/data/ljspeech/wavs/LJ043-0169.npy +tests/data/ljspeech/wavs/LJ013-0175.wav|tests/data/ljspeech/wavs/LJ013-0175.npy +tests/data/ljspeech/wavs/LJ039-0064.wav|tests/data/ljspeech/wavs/LJ039-0064.npy +tests/data/ljspeech/wavs/LJ003-0213.wav|tests/data/ljspeech/wavs/LJ003-0213.npy +tests/data/ljspeech/wavs/LJ002-0053.wav|tests/data/ljspeech/wavs/LJ002-0053.npy +tests/data/ljspeech/wavs/LJ014-0248.wav|tests/data/ljspeech/wavs/LJ014-0248.npy +tests/data/ljspeech/wavs/LJ033-0088.wav|tests/data/ljspeech/wavs/LJ033-0088.npy +tests/data/ljspeech/wavs/LJ001-0137.wav|tests/data/ljspeech/wavs/LJ001-0137.npy +tests/data/ljspeech/wavs/LJ001-0029.wav|tests/data/ljspeech/wavs/LJ001-0029.npy +tests/data/ljspeech/wavs/LJ042-0091.wav|tests/data/ljspeech/wavs/LJ042-0091.npy +tests/data/ljspeech/wavs/LJ032-0009.wav|tests/data/ljspeech/wavs/LJ032-0009.npy +tests/data/ljspeech/wavs/LJ001-0155.wav|tests/data/ljspeech/wavs/LJ001-0155.npy +tests/data/ljspeech/wavs/LJ014-0197.wav|tests/data/ljspeech/wavs/LJ014-0197.npy +tests/data/ljspeech/wavs/LJ028-0147.wav|tests/data/ljspeech/wavs/LJ028-0147.npy +tests/data/ljspeech/wavs/LJ019-0396.wav|tests/data/ljspeech/wavs/LJ019-0396.npy +tests/data/ljspeech/wavs/LJ008-0141.wav|tests/data/ljspeech/wavs/LJ008-0141.npy +tests/data/ljspeech/wavs/LJ020-0105.wav|tests/data/ljspeech/wavs/LJ020-0105.npy +tests/data/ljspeech/wavs/LJ003-0323.wav|tests/data/ljspeech/wavs/LJ003-0323.npy +tests/data/ljspeech/wavs/LJ022-0123.wav|tests/data/ljspeech/wavs/LJ022-0123.npy +tests/data/ljspeech/wavs/LJ032-0093.wav|tests/data/ljspeech/wavs/LJ032-0093.npy +tests/data/ljspeech/wavs/LJ028-0126.wav|tests/data/ljspeech/wavs/LJ028-0126.npy +tests/data/ljspeech/wavs/LJ002-0248.wav|tests/data/ljspeech/wavs/LJ002-0248.npy +tests/data/ljspeech/wavs/LJ045-0215.wav|tests/data/ljspeech/wavs/LJ045-0215.npy +tests/data/ljspeech/wavs/LJ040-0211.wav|tests/data/ljspeech/wavs/LJ040-0211.npy +tests/data/ljspeech/wavs/LJ018-0066.wav|tests/data/ljspeech/wavs/LJ018-0066.npy +tests/data/ljspeech/wavs/LJ037-0168.wav|tests/data/ljspeech/wavs/LJ037-0168.npy +tests/data/ljspeech/wavs/LJ018-0328.wav|tests/data/ljspeech/wavs/LJ018-0328.npy +tests/data/ljspeech/wavs/LJ031-0045.wav|tests/data/ljspeech/wavs/LJ031-0045.npy +tests/data/ljspeech/wavs/LJ030-0183.wav|tests/data/ljspeech/wavs/LJ030-0183.npy +tests/data/ljspeech/wavs/LJ044-0071.wav|tests/data/ljspeech/wavs/LJ044-0071.npy +tests/data/ljspeech/wavs/LJ015-0186.wav|tests/data/ljspeech/wavs/LJ015-0186.npy +tests/data/ljspeech/wavs/LJ039-0244.wav|tests/data/ljspeech/wavs/LJ039-0244.npy +tests/data/ljspeech/wavs/LJ032-0166.wav|tests/data/ljspeech/wavs/LJ032-0166.npy +tests/data/ljspeech/wavs/LJ040-0138.wav|tests/data/ljspeech/wavs/LJ040-0138.npy +tests/data/ljspeech/wavs/LJ004-0078.wav|tests/data/ljspeech/wavs/LJ004-0078.npy +tests/data/ljspeech/wavs/LJ027-0022.wav|tests/data/ljspeech/wavs/LJ027-0022.npy +tests/data/ljspeech/wavs/LJ039-0237.wav|tests/data/ljspeech/wavs/LJ039-0237.npy +tests/data/ljspeech/wavs/LJ012-0006.wav|tests/data/ljspeech/wavs/LJ012-0006.npy +tests/data/ljspeech/wavs/LJ010-0129.wav|tests/data/ljspeech/wavs/LJ010-0129.npy +tests/data/ljspeech/wavs/LJ014-0039.wav|tests/data/ljspeech/wavs/LJ014-0039.npy +tests/data/ljspeech/wavs/LJ040-0155.wav|tests/data/ljspeech/wavs/LJ040-0155.npy +tests/data/ljspeech/wavs/LJ012-0077.wav|tests/data/ljspeech/wavs/LJ012-0077.npy +tests/data/ljspeech/wavs/LJ018-0133.wav|tests/data/ljspeech/wavs/LJ018-0133.npy +tests/data/ljspeech/wavs/LJ018-0300.wav|tests/data/ljspeech/wavs/LJ018-0300.npy +tests/data/ljspeech/wavs/LJ028-0055.wav|tests/data/ljspeech/wavs/LJ028-0055.npy +tests/data/ljspeech/wavs/LJ037-0250.wav|tests/data/ljspeech/wavs/LJ037-0250.npy +tests/data/ljspeech/wavs/LJ011-0160.wav|tests/data/ljspeech/wavs/LJ011-0160.npy +tests/data/ljspeech/wavs/LJ006-0159.wav|tests/data/ljspeech/wavs/LJ006-0159.npy +tests/data/ljspeech/wavs/LJ010-0080.wav|tests/data/ljspeech/wavs/LJ010-0080.npy +tests/data/ljspeech/wavs/LJ004-0169.wav|tests/data/ljspeech/wavs/LJ004-0169.npy +tests/data/ljspeech/wavs/LJ012-0227.wav|tests/data/ljspeech/wavs/LJ012-0227.npy +tests/data/ljspeech/wavs/LJ030-0091.wav|tests/data/ljspeech/wavs/LJ030-0091.npy +tests/data/ljspeech/wavs/LJ011-0018.wav|tests/data/ljspeech/wavs/LJ011-0018.npy +tests/data/ljspeech/wavs/LJ046-0237.wav|tests/data/ljspeech/wavs/LJ046-0237.npy +tests/data/ljspeech/wavs/LJ031-0033.wav|tests/data/ljspeech/wavs/LJ031-0033.npy +tests/data/ljspeech/wavs/LJ046-0242.wav|tests/data/ljspeech/wavs/LJ046-0242.npy +tests/data/ljspeech/wavs/LJ003-0047.wav|tests/data/ljspeech/wavs/LJ003-0047.npy +tests/data/ljspeech/wavs/LJ039-0111.wav|tests/data/ljspeech/wavs/LJ039-0111.npy +tests/data/ljspeech/wavs/LJ036-0168.wav|tests/data/ljspeech/wavs/LJ036-0168.npy +tests/data/ljspeech/wavs/LJ037-0152.wav|tests/data/ljspeech/wavs/LJ037-0152.npy +tests/data/ljspeech/wavs/LJ027-0081.wav|tests/data/ljspeech/wavs/LJ027-0081.npy +tests/data/ljspeech/wavs/LJ027-0020.wav|tests/data/ljspeech/wavs/LJ027-0020.npy +tests/data/ljspeech/wavs/LJ019-0028.wav|tests/data/ljspeech/wavs/LJ019-0028.npy +tests/data/ljspeech/wavs/LJ035-0033.wav|tests/data/ljspeech/wavs/LJ035-0033.npy +tests/data/ljspeech/wavs/LJ047-0201.wav|tests/data/ljspeech/wavs/LJ047-0201.npy +tests/data/ljspeech/wavs/LJ017-0168.wav|tests/data/ljspeech/wavs/LJ017-0168.npy +tests/data/ljspeech/wavs/LJ022-0176.wav|tests/data/ljspeech/wavs/LJ022-0176.npy +tests/data/ljspeech/wavs/LJ034-0014.wav|tests/data/ljspeech/wavs/LJ034-0014.npy +tests/data/ljspeech/wavs/LJ011-0082.wav|tests/data/ljspeech/wavs/LJ011-0082.npy +tests/data/ljspeech/wavs/LJ037-0127.wav|tests/data/ljspeech/wavs/LJ037-0127.npy +tests/data/ljspeech/wavs/LJ015-0085.wav|tests/data/ljspeech/wavs/LJ015-0085.npy +tests/data/ljspeech/wavs/LJ009-0199.wav|tests/data/ljspeech/wavs/LJ009-0199.npy +tests/data/ljspeech/wavs/LJ031-0187.wav|tests/data/ljspeech/wavs/LJ031-0187.npy +tests/data/ljspeech/wavs/LJ002-0317.wav|tests/data/ljspeech/wavs/LJ002-0317.npy +tests/data/ljspeech/wavs/LJ016-0160.wav|tests/data/ljspeech/wavs/LJ016-0160.npy +tests/data/ljspeech/wavs/LJ040-0236.wav|tests/data/ljspeech/wavs/LJ040-0236.npy +tests/data/ljspeech/wavs/LJ014-0335.wav|tests/data/ljspeech/wavs/LJ014-0335.npy +tests/data/ljspeech/wavs/LJ025-0046.wav|tests/data/ljspeech/wavs/LJ025-0046.npy +tests/data/ljspeech/wavs/LJ016-0115.wav|tests/data/ljspeech/wavs/LJ016-0115.npy +tests/data/ljspeech/wavs/LJ002-0260.wav|tests/data/ljspeech/wavs/LJ002-0260.npy +tests/data/ljspeech/wavs/LJ009-0293.wav|tests/data/ljspeech/wavs/LJ009-0293.npy +tests/data/ljspeech/wavs/LJ016-0291.wav|tests/data/ljspeech/wavs/LJ016-0291.npy +tests/data/ljspeech/wavs/LJ046-0231.wav|tests/data/ljspeech/wavs/LJ046-0231.npy +tests/data/ljspeech/wavs/LJ028-0188.wav|tests/data/ljspeech/wavs/LJ028-0188.npy +tests/data/ljspeech/wavs/LJ050-0249.wav|tests/data/ljspeech/wavs/LJ050-0249.npy +tests/data/ljspeech/wavs/LJ042-0017.wav|tests/data/ljspeech/wavs/LJ042-0017.npy +tests/data/ljspeech/wavs/LJ025-0045.wav|tests/data/ljspeech/wavs/LJ025-0045.npy +tests/data/ljspeech/wavs/LJ004-0002.wav|tests/data/ljspeech/wavs/LJ004-0002.npy +tests/data/ljspeech/wavs/LJ036-0172.wav|tests/data/ljspeech/wavs/LJ036-0172.npy +tests/data/ljspeech/wavs/LJ013-0011.wav|tests/data/ljspeech/wavs/LJ013-0011.npy +tests/data/ljspeech/wavs/LJ031-0102.wav|tests/data/ljspeech/wavs/LJ031-0102.npy +tests/data/ljspeech/wavs/LJ049-0135.wav|tests/data/ljspeech/wavs/LJ049-0135.npy +tests/data/ljspeech/wavs/LJ049-0218.wav|tests/data/ljspeech/wavs/LJ049-0218.npy +tests/data/ljspeech/wavs/LJ023-0041.wav|tests/data/ljspeech/wavs/LJ023-0041.npy +tests/data/ljspeech/wavs/LJ001-0103.wav|tests/data/ljspeech/wavs/LJ001-0103.npy +tests/data/ljspeech/wavs/LJ001-0110.wav|tests/data/ljspeech/wavs/LJ001-0110.npy +tests/data/ljspeech/wavs/LJ031-0175.wav|tests/data/ljspeech/wavs/LJ031-0175.npy +tests/data/ljspeech/wavs/LJ035-0025.wav|tests/data/ljspeech/wavs/LJ035-0025.npy +tests/data/ljspeech/wavs/LJ046-0233.wav|tests/data/ljspeech/wavs/LJ046-0233.npy +tests/data/ljspeech/wavs/LJ004-0229.wav|tests/data/ljspeech/wavs/LJ004-0229.npy +tests/data/ljspeech/wavs/LJ047-0047.wav|tests/data/ljspeech/wavs/LJ047-0047.npy +tests/data/ljspeech/wavs/LJ050-0054.wav|tests/data/ljspeech/wavs/LJ050-0054.npy +tests/data/ljspeech/wavs/LJ019-0050.wav|tests/data/ljspeech/wavs/LJ019-0050.npy +tests/data/ljspeech/wavs/LJ013-0122.wav|tests/data/ljspeech/wavs/LJ013-0122.npy +tests/data/ljspeech/wavs/LJ027-0006.wav|tests/data/ljspeech/wavs/LJ027-0006.npy +tests/data/ljspeech/wavs/LJ030-0133.wav|tests/data/ljspeech/wavs/LJ030-0133.npy +tests/data/ljspeech/wavs/LJ019-0155.wav|tests/data/ljspeech/wavs/LJ019-0155.npy +tests/data/ljspeech/wavs/LJ009-0151.wav|tests/data/ljspeech/wavs/LJ009-0151.npy +tests/data/ljspeech/wavs/LJ016-0301.wav|tests/data/ljspeech/wavs/LJ016-0301.npy +tests/data/ljspeech/wavs/LJ012-0167.wav|tests/data/ljspeech/wavs/LJ012-0167.npy +tests/data/ljspeech/wavs/LJ017-0101.wav|tests/data/ljspeech/wavs/LJ017-0101.npy +tests/data/ljspeech/wavs/LJ011-0039.wav|tests/data/ljspeech/wavs/LJ011-0039.npy +tests/data/ljspeech/wavs/LJ002-0293.wav|tests/data/ljspeech/wavs/LJ002-0293.npy +tests/data/ljspeech/wavs/LJ003-0322.wav|tests/data/ljspeech/wavs/LJ003-0322.npy +tests/data/ljspeech/wavs/LJ007-0002.wav|tests/data/ljspeech/wavs/LJ007-0002.npy +tests/data/ljspeech/wavs/LJ036-0181.wav|tests/data/ljspeech/wavs/LJ036-0181.npy +tests/data/ljspeech/wavs/LJ039-0031.wav|tests/data/ljspeech/wavs/LJ039-0031.npy +tests/data/ljspeech/wavs/LJ029-0084.wav|tests/data/ljspeech/wavs/LJ029-0084.npy +tests/data/ljspeech/wavs/LJ038-0296.wav|tests/data/ljspeech/wavs/LJ038-0296.npy +tests/data/ljspeech/wavs/LJ024-0044.wav|tests/data/ljspeech/wavs/LJ024-0044.npy +tests/data/ljspeech/wavs/LJ040-0039.wav|tests/data/ljspeech/wavs/LJ040-0039.npy +tests/data/ljspeech/wavs/LJ012-0020.wav|tests/data/ljspeech/wavs/LJ012-0020.npy +tests/data/ljspeech/wavs/LJ008-0120.wav|tests/data/ljspeech/wavs/LJ008-0120.npy +tests/data/ljspeech/wavs/LJ006-0106.wav|tests/data/ljspeech/wavs/LJ006-0106.npy +tests/data/ljspeech/wavs/LJ050-0178.wav|tests/data/ljspeech/wavs/LJ050-0178.npy +tests/data/ljspeech/wavs/LJ036-0053.wav|tests/data/ljspeech/wavs/LJ036-0053.npy +tests/data/ljspeech/wavs/LJ025-0164.wav|tests/data/ljspeech/wavs/LJ025-0164.npy +tests/data/ljspeech/wavs/LJ023-0066.wav|tests/data/ljspeech/wavs/LJ023-0066.npy +tests/data/ljspeech/wavs/LJ002-0183.wav|tests/data/ljspeech/wavs/LJ002-0183.npy +tests/data/ljspeech/wavs/LJ027-0061.wav|tests/data/ljspeech/wavs/LJ027-0061.npy +tests/data/ljspeech/wavs/LJ011-0188.wav|tests/data/ljspeech/wavs/LJ011-0188.npy +tests/data/ljspeech/wavs/LJ048-0257.wav|tests/data/ljspeech/wavs/LJ048-0257.npy +tests/data/ljspeech/wavs/LJ046-0238.wav|tests/data/ljspeech/wavs/LJ046-0238.npy +tests/data/ljspeech/wavs/LJ036-0031.wav|tests/data/ljspeech/wavs/LJ036-0031.npy +tests/data/ljspeech/wavs/LJ006-0236.wav|tests/data/ljspeech/wavs/LJ006-0236.npy +tests/data/ljspeech/wavs/LJ030-0230.wav|tests/data/ljspeech/wavs/LJ030-0230.npy +tests/data/ljspeech/wavs/LJ025-0030.wav|tests/data/ljspeech/wavs/LJ025-0030.npy +tests/data/ljspeech/wavs/LJ040-0038.wav|tests/data/ljspeech/wavs/LJ040-0038.npy +tests/data/ljspeech/wavs/LJ016-0389.wav|tests/data/ljspeech/wavs/LJ016-0389.npy +tests/data/ljspeech/wavs/LJ010-0237.wav|tests/data/ljspeech/wavs/LJ010-0237.npy +tests/data/ljspeech/wavs/LJ008-0111.wav|tests/data/ljspeech/wavs/LJ008-0111.npy +tests/data/ljspeech/wavs/LJ036-0182.wav|tests/data/ljspeech/wavs/LJ036-0182.npy +tests/data/ljspeech/wavs/LJ013-0043.wav|tests/data/ljspeech/wavs/LJ013-0043.npy +tests/data/ljspeech/wavs/LJ011-0126.wav|tests/data/ljspeech/wavs/LJ011-0126.npy +tests/data/ljspeech/wavs/LJ006-0251.wav|tests/data/ljspeech/wavs/LJ006-0251.npy +tests/data/ljspeech/wavs/LJ003-0192.wav|tests/data/ljspeech/wavs/LJ003-0192.npy +tests/data/ljspeech/wavs/LJ008-0118.wav|tests/data/ljspeech/wavs/LJ008-0118.npy +tests/data/ljspeech/wavs/LJ002-0008.wav|tests/data/ljspeech/wavs/LJ002-0008.npy +tests/data/ljspeech/wavs/LJ032-0051.wav|tests/data/ljspeech/wavs/LJ032-0051.npy +tests/data/ljspeech/wavs/LJ039-0009.wav|tests/data/ljspeech/wavs/LJ039-0009.npy +tests/data/ljspeech/wavs/LJ046-0191.wav|tests/data/ljspeech/wavs/LJ046-0191.npy +tests/data/ljspeech/wavs/LJ044-0125.wav|tests/data/ljspeech/wavs/LJ044-0125.npy +tests/data/ljspeech/wavs/LJ009-0020.wav|tests/data/ljspeech/wavs/LJ009-0020.npy +tests/data/ljspeech/wavs/LJ010-0165.wav|tests/data/ljspeech/wavs/LJ010-0165.npy +tests/data/ljspeech/wavs/LJ012-0214.wav|tests/data/ljspeech/wavs/LJ012-0214.npy +tests/data/ljspeech/wavs/LJ039-0081.wav|tests/data/ljspeech/wavs/LJ039-0081.npy +tests/data/ljspeech/wavs/LJ050-0124.wav|tests/data/ljspeech/wavs/LJ050-0124.npy +tests/data/ljspeech/wavs/LJ002-0036.wav|tests/data/ljspeech/wavs/LJ002-0036.npy +tests/data/ljspeech/wavs/LJ018-0217.wav|tests/data/ljspeech/wavs/LJ018-0217.npy +tests/data/ljspeech/wavs/LJ034-0147.wav|tests/data/ljspeech/wavs/LJ034-0147.npy +tests/data/ljspeech/wavs/LJ036-0021.wav|tests/data/ljspeech/wavs/LJ036-0021.npy +tests/data/ljspeech/wavs/LJ016-0003.wav|tests/data/ljspeech/wavs/LJ016-0003.npy +tests/data/ljspeech/wavs/LJ028-0002.wav|tests/data/ljspeech/wavs/LJ028-0002.npy +tests/data/ljspeech/wavs/LJ040-0149.wav|tests/data/ljspeech/wavs/LJ040-0149.npy +tests/data/ljspeech/wavs/LJ018-0250.wav|tests/data/ljspeech/wavs/LJ018-0250.npy +tests/data/ljspeech/wavs/LJ012-0098.wav|tests/data/ljspeech/wavs/LJ012-0098.npy +tests/data/ljspeech/wavs/LJ006-0129.wav|tests/data/ljspeech/wavs/LJ006-0129.npy +tests/data/ljspeech/wavs/LJ040-0213.wav|tests/data/ljspeech/wavs/LJ040-0213.npy +tests/data/ljspeech/wavs/LJ006-0302.wav|tests/data/ljspeech/wavs/LJ006-0302.npy +tests/data/ljspeech/wavs/LJ009-0110.wav|tests/data/ljspeech/wavs/LJ009-0110.npy +tests/data/ljspeech/wavs/LJ047-0051.wav|tests/data/ljspeech/wavs/LJ047-0051.npy +tests/data/ljspeech/wavs/LJ025-0138.wav|tests/data/ljspeech/wavs/LJ025-0138.npy +tests/data/ljspeech/wavs/LJ028-0103.wav|tests/data/ljspeech/wavs/LJ028-0103.npy +tests/data/ljspeech/wavs/LJ012-0201.wav|tests/data/ljspeech/wavs/LJ012-0201.npy +tests/data/ljspeech/wavs/LJ010-0091.wav|tests/data/ljspeech/wavs/LJ010-0091.npy +tests/data/ljspeech/wavs/LJ036-0029.wav|tests/data/ljspeech/wavs/LJ036-0029.npy +tests/data/ljspeech/wavs/LJ041-0122.wav|tests/data/ljspeech/wavs/LJ041-0122.npy +tests/data/ljspeech/wavs/LJ015-0214.wav|tests/data/ljspeech/wavs/LJ015-0214.npy +tests/data/ljspeech/wavs/LJ018-0353.wav|tests/data/ljspeech/wavs/LJ018-0353.npy +tests/data/ljspeech/wavs/LJ002-0015.wav|tests/data/ljspeech/wavs/LJ002-0015.npy +tests/data/ljspeech/wavs/LJ019-0010.wav|tests/data/ljspeech/wavs/LJ019-0010.npy +tests/data/ljspeech/wavs/LJ013-0125.wav|tests/data/ljspeech/wavs/LJ013-0125.npy +tests/data/ljspeech/wavs/LJ019-0352.wav|tests/data/ljspeech/wavs/LJ019-0352.npy +tests/data/ljspeech/wavs/LJ043-0111.wav|tests/data/ljspeech/wavs/LJ043-0111.npy +tests/data/ljspeech/wavs/LJ044-0013.wav|tests/data/ljspeech/wavs/LJ044-0013.npy +tests/data/ljspeech/wavs/LJ018-0055.wav|tests/data/ljspeech/wavs/LJ018-0055.npy +tests/data/ljspeech/wavs/LJ023-0127.wav|tests/data/ljspeech/wavs/LJ023-0127.npy +tests/data/ljspeech/wavs/LJ048-0067.wav|tests/data/ljspeech/wavs/LJ048-0067.npy +tests/data/ljspeech/wavs/LJ038-0154.wav|tests/data/ljspeech/wavs/LJ038-0154.npy +tests/data/ljspeech/wavs/LJ006-0152.wav|tests/data/ljspeech/wavs/LJ006-0152.npy +tests/data/ljspeech/wavs/LJ038-0076.wav|tests/data/ljspeech/wavs/LJ038-0076.npy +tests/data/ljspeech/wavs/LJ037-0014.wav|tests/data/ljspeech/wavs/LJ037-0014.npy +tests/data/ljspeech/wavs/LJ016-0424.wav|tests/data/ljspeech/wavs/LJ016-0424.npy +tests/data/ljspeech/wavs/LJ035-0200.wav|tests/data/ljspeech/wavs/LJ035-0200.npy +tests/data/ljspeech/wavs/LJ037-0264.wav|tests/data/ljspeech/wavs/LJ037-0264.npy +tests/data/ljspeech/wavs/LJ045-0225.wav|tests/data/ljspeech/wavs/LJ045-0225.npy +tests/data/ljspeech/wavs/LJ035-0171.wav|tests/data/ljspeech/wavs/LJ035-0171.npy +tests/data/ljspeech/wavs/LJ025-0083.wav|tests/data/ljspeech/wavs/LJ025-0083.npy +tests/data/ljspeech/wavs/LJ016-0323.wav|tests/data/ljspeech/wavs/LJ016-0323.npy +tests/data/ljspeech/wavs/LJ020-0075.wav|tests/data/ljspeech/wavs/LJ020-0075.npy +tests/data/ljspeech/wavs/LJ021-0047.wav|tests/data/ljspeech/wavs/LJ021-0047.npy +tests/data/ljspeech/wavs/LJ001-0051.wav|tests/data/ljspeech/wavs/LJ001-0051.npy +tests/data/ljspeech/wavs/LJ030-0218.wav|tests/data/ljspeech/wavs/LJ030-0218.npy +tests/data/ljspeech/wavs/LJ037-0027.wav|tests/data/ljspeech/wavs/LJ037-0027.npy +tests/data/ljspeech/wavs/LJ015-0101.wav|tests/data/ljspeech/wavs/LJ015-0101.npy +tests/data/ljspeech/wavs/LJ016-0376.wav|tests/data/ljspeech/wavs/LJ016-0376.npy +tests/data/ljspeech/wavs/LJ002-0090.wav|tests/data/ljspeech/wavs/LJ002-0090.npy +tests/data/ljspeech/wavs/LJ037-0210.wav|tests/data/ljspeech/wavs/LJ037-0210.npy +tests/data/ljspeech/wavs/LJ021-0037.wav|tests/data/ljspeech/wavs/LJ021-0037.npy +tests/data/ljspeech/wavs/LJ015-0271.wav|tests/data/ljspeech/wavs/LJ015-0271.npy +tests/data/ljspeech/wavs/LJ016-0280.wav|tests/data/ljspeech/wavs/LJ016-0280.npy +tests/data/ljspeech/wavs/LJ015-0029.wav|tests/data/ljspeech/wavs/LJ015-0029.npy +tests/data/ljspeech/wavs/LJ034-0061.wav|tests/data/ljspeech/wavs/LJ034-0061.npy +tests/data/ljspeech/wavs/LJ006-0108.wav|tests/data/ljspeech/wavs/LJ006-0108.npy +tests/data/ljspeech/wavs/LJ017-0256.wav|tests/data/ljspeech/wavs/LJ017-0256.npy +tests/data/ljspeech/wavs/LJ050-0225.wav|tests/data/ljspeech/wavs/LJ050-0225.npy +tests/data/ljspeech/wavs/LJ002-0094.wav|tests/data/ljspeech/wavs/LJ002-0094.npy +tests/data/ljspeech/wavs/LJ003-0030.wav|tests/data/ljspeech/wavs/LJ003-0030.npy +tests/data/ljspeech/wavs/LJ048-0284.wav|tests/data/ljspeech/wavs/LJ048-0284.npy +tests/data/ljspeech/wavs/LJ018-0048.wav|tests/data/ljspeech/wavs/LJ018-0048.npy +tests/data/ljspeech/wavs/LJ016-0032.wav|tests/data/ljspeech/wavs/LJ016-0032.npy +tests/data/ljspeech/wavs/LJ032-0201.wav|tests/data/ljspeech/wavs/LJ032-0201.npy +tests/data/ljspeech/wavs/LJ027-0068.wav|tests/data/ljspeech/wavs/LJ027-0068.npy +tests/data/ljspeech/wavs/LJ016-0195.wav|tests/data/ljspeech/wavs/LJ016-0195.npy +tests/data/ljspeech/wavs/LJ017-0034.wav|tests/data/ljspeech/wavs/LJ017-0034.npy +tests/data/ljspeech/wavs/LJ046-0221.wav|tests/data/ljspeech/wavs/LJ046-0221.npy +tests/data/ljspeech/wavs/LJ002-0203.wav|tests/data/ljspeech/wavs/LJ002-0203.npy +tests/data/ljspeech/wavs/LJ022-0087.wav|tests/data/ljspeech/wavs/LJ022-0087.npy +tests/data/ljspeech/wavs/LJ006-0164.wav|tests/data/ljspeech/wavs/LJ006-0164.npy +tests/data/ljspeech/wavs/LJ015-0062.wav|tests/data/ljspeech/wavs/LJ015-0062.npy +tests/data/ljspeech/wavs/LJ003-0139.wav|tests/data/ljspeech/wavs/LJ003-0139.npy +tests/data/ljspeech/wavs/LJ046-0007.wav|tests/data/ljspeech/wavs/LJ046-0007.npy +tests/data/ljspeech/wavs/LJ018-0101.wav|tests/data/ljspeech/wavs/LJ018-0101.npy +tests/data/ljspeech/wavs/LJ021-0083.wav|tests/data/ljspeech/wavs/LJ021-0083.npy +tests/data/ljspeech/wavs/LJ017-0142.wav|tests/data/ljspeech/wavs/LJ017-0142.npy +tests/data/ljspeech/wavs/LJ038-0110.wav|tests/data/ljspeech/wavs/LJ038-0110.npy +tests/data/ljspeech/wavs/LJ022-0151.wav|tests/data/ljspeech/wavs/LJ022-0151.npy +tests/data/ljspeech/wavs/LJ003-0264.wav|tests/data/ljspeech/wavs/LJ003-0264.npy +tests/data/ljspeech/wavs/LJ035-0118.wav|tests/data/ljspeech/wavs/LJ035-0118.npy +tests/data/ljspeech/wavs/LJ030-0141.wav|tests/data/ljspeech/wavs/LJ030-0141.npy +tests/data/ljspeech/wavs/LJ022-0033.wav|tests/data/ljspeech/wavs/LJ022-0033.npy +tests/data/ljspeech/wavs/LJ034-0102.wav|tests/data/ljspeech/wavs/LJ034-0102.npy +tests/data/ljspeech/wavs/LJ036-0103.wav|tests/data/ljspeech/wavs/LJ036-0103.npy +tests/data/ljspeech/wavs/LJ012-0139.wav|tests/data/ljspeech/wavs/LJ012-0139.npy +tests/data/ljspeech/wavs/LJ009-0249.wav|tests/data/ljspeech/wavs/LJ009-0249.npy +tests/data/ljspeech/wavs/LJ012-0097.wav|tests/data/ljspeech/wavs/LJ012-0097.npy +tests/data/ljspeech/wavs/LJ040-0173.wav|tests/data/ljspeech/wavs/LJ040-0173.npy +tests/data/ljspeech/wavs/LJ029-0031.wav|tests/data/ljspeech/wavs/LJ029-0031.npy +tests/data/ljspeech/wavs/LJ031-0155.wav|tests/data/ljspeech/wavs/LJ031-0155.npy +tests/data/ljspeech/wavs/LJ044-0239.wav|tests/data/ljspeech/wavs/LJ044-0239.npy +tests/data/ljspeech/wavs/LJ029-0196.wav|tests/data/ljspeech/wavs/LJ029-0196.npy +tests/data/ljspeech/wavs/LJ050-0049.wav|tests/data/ljspeech/wavs/LJ050-0049.npy +tests/data/ljspeech/wavs/LJ004-0199.wav|tests/data/ljspeech/wavs/LJ004-0199.npy +tests/data/ljspeech/wavs/LJ009-0003.wav|tests/data/ljspeech/wavs/LJ009-0003.npy +tests/data/ljspeech/wavs/LJ028-0272.wav|tests/data/ljspeech/wavs/LJ028-0272.npy +tests/data/ljspeech/wavs/LJ034-0025.wav|tests/data/ljspeech/wavs/LJ034-0025.npy +tests/data/ljspeech/wavs/LJ042-0168.wav|tests/data/ljspeech/wavs/LJ042-0168.npy +tests/data/ljspeech/wavs/LJ014-0093.wav|tests/data/ljspeech/wavs/LJ014-0093.npy +tests/data/ljspeech/wavs/LJ028-0373.wav|tests/data/ljspeech/wavs/LJ028-0373.npy +tests/data/ljspeech/wavs/LJ005-0087.wav|tests/data/ljspeech/wavs/LJ005-0087.npy +tests/data/ljspeech/wavs/LJ012-0015.wav|tests/data/ljspeech/wavs/LJ012-0015.npy +tests/data/ljspeech/wavs/LJ001-0069.wav|tests/data/ljspeech/wavs/LJ001-0069.npy +tests/data/ljspeech/wavs/LJ048-0064.wav|tests/data/ljspeech/wavs/LJ048-0064.npy +tests/data/ljspeech/wavs/LJ012-0171.wav|tests/data/ljspeech/wavs/LJ012-0171.npy +tests/data/ljspeech/wavs/LJ009-0250.wav|tests/data/ljspeech/wavs/LJ009-0250.npy +tests/data/ljspeech/wavs/LJ013-0212.wav|tests/data/ljspeech/wavs/LJ013-0212.npy +tests/data/ljspeech/wavs/LJ011-0052.wav|tests/data/ljspeech/wavs/LJ011-0052.npy +tests/data/ljspeech/wavs/LJ042-0191.wav|tests/data/ljspeech/wavs/LJ042-0191.npy +tests/data/ljspeech/wavs/LJ004-0211.wav|tests/data/ljspeech/wavs/LJ004-0211.npy +tests/data/ljspeech/wavs/LJ028-0439.wav|tests/data/ljspeech/wavs/LJ028-0439.npy +tests/data/ljspeech/wavs/LJ002-0290.wav|tests/data/ljspeech/wavs/LJ002-0290.npy +tests/data/ljspeech/wavs/LJ006-0285.wav|tests/data/ljspeech/wavs/LJ006-0285.npy +tests/data/ljspeech/wavs/LJ011-0225.wav|tests/data/ljspeech/wavs/LJ011-0225.npy +tests/data/ljspeech/wavs/LJ008-0035.wav|tests/data/ljspeech/wavs/LJ008-0035.npy +tests/data/ljspeech/wavs/LJ038-0259.wav|tests/data/ljspeech/wavs/LJ038-0259.npy +tests/data/ljspeech/wavs/LJ039-0192.wav|tests/data/ljspeech/wavs/LJ039-0192.npy +tests/data/ljspeech/wavs/LJ009-0284.wav|tests/data/ljspeech/wavs/LJ009-0284.npy +tests/data/ljspeech/wavs/LJ004-0249.wav|tests/data/ljspeech/wavs/LJ004-0249.npy +tests/data/ljspeech/wavs/LJ025-0113.wav|tests/data/ljspeech/wavs/LJ025-0113.npy +tests/data/ljspeech/wavs/LJ044-0061.wav|tests/data/ljspeech/wavs/LJ044-0061.npy +tests/data/ljspeech/wavs/LJ046-0085.wav|tests/data/ljspeech/wavs/LJ046-0085.npy +tests/data/ljspeech/wavs/LJ023-0083.wav|tests/data/ljspeech/wavs/LJ023-0083.npy +tests/data/ljspeech/wavs/LJ038-0041.wav|tests/data/ljspeech/wavs/LJ038-0041.npy +tests/data/ljspeech/wavs/LJ009-0077.wav|tests/data/ljspeech/wavs/LJ009-0077.npy +tests/data/ljspeech/wavs/LJ003-0127.wav|tests/data/ljspeech/wavs/LJ003-0127.npy +tests/data/ljspeech/wavs/LJ042-0145.wav|tests/data/ljspeech/wavs/LJ042-0145.npy +tests/data/ljspeech/wavs/LJ046-0091.wav|tests/data/ljspeech/wavs/LJ046-0091.npy +tests/data/ljspeech/wavs/LJ009-0288.wav|tests/data/ljspeech/wavs/LJ009-0288.npy +tests/data/ljspeech/wavs/LJ040-0098.wav|tests/data/ljspeech/wavs/LJ040-0098.npy +tests/data/ljspeech/wavs/LJ026-0041.wav|tests/data/ljspeech/wavs/LJ026-0041.npy +tests/data/ljspeech/wavs/LJ048-0180.wav|tests/data/ljspeech/wavs/LJ048-0180.npy +tests/data/ljspeech/wavs/LJ030-0232.wav|tests/data/ljspeech/wavs/LJ030-0232.npy +tests/data/ljspeech/wavs/LJ038-0044.wav|tests/data/ljspeech/wavs/LJ038-0044.npy +tests/data/ljspeech/wavs/LJ026-0031.wav|tests/data/ljspeech/wavs/LJ026-0031.npy +tests/data/ljspeech/wavs/LJ028-0074.wav|tests/data/ljspeech/wavs/LJ028-0074.npy +tests/data/ljspeech/wavs/LJ041-0104.wav|tests/data/ljspeech/wavs/LJ041-0104.npy +tests/data/ljspeech/wavs/LJ028-0246.wav|tests/data/ljspeech/wavs/LJ028-0246.npy +tests/data/ljspeech/wavs/LJ004-0219.wav|tests/data/ljspeech/wavs/LJ004-0219.npy +tests/data/ljspeech/wavs/LJ015-0174.wav|tests/data/ljspeech/wavs/LJ015-0174.npy +tests/data/ljspeech/wavs/LJ002-0117.wav|tests/data/ljspeech/wavs/LJ002-0117.npy +tests/data/ljspeech/wavs/LJ008-0246.wav|tests/data/ljspeech/wavs/LJ008-0246.npy +tests/data/ljspeech/wavs/LJ025-0033.wav|tests/data/ljspeech/wavs/LJ025-0033.npy +tests/data/ljspeech/wavs/LJ003-0327.wav|tests/data/ljspeech/wavs/LJ003-0327.npy +tests/data/ljspeech/wavs/LJ015-0099.wav|tests/data/ljspeech/wavs/LJ015-0099.npy +tests/data/ljspeech/wavs/LJ029-0041.wav|tests/data/ljspeech/wavs/LJ029-0041.npy +tests/data/ljspeech/wavs/LJ028-0031.wav|tests/data/ljspeech/wavs/LJ028-0031.npy +tests/data/ljspeech/wavs/LJ015-0175.wav|tests/data/ljspeech/wavs/LJ015-0175.npy +tests/data/ljspeech/wavs/LJ042-0071.wav|tests/data/ljspeech/wavs/LJ042-0071.npy +tests/data/ljspeech/wavs/LJ044-0036.wav|tests/data/ljspeech/wavs/LJ044-0036.npy +tests/data/ljspeech/wavs/LJ024-0058.wav|tests/data/ljspeech/wavs/LJ024-0058.npy +tests/data/ljspeech/wavs/LJ038-0192.wav|tests/data/ljspeech/wavs/LJ038-0192.npy +tests/data/ljspeech/wavs/LJ014-0244.wav|tests/data/ljspeech/wavs/LJ014-0244.npy +tests/data/ljspeech/wavs/LJ038-0055.wav|tests/data/ljspeech/wavs/LJ038-0055.npy +tests/data/ljspeech/wavs/LJ030-0022.wav|tests/data/ljspeech/wavs/LJ030-0022.npy +tests/data/ljspeech/wavs/LJ028-0215.wav|tests/data/ljspeech/wavs/LJ028-0215.npy +tests/data/ljspeech/wavs/LJ028-0077.wav|tests/data/ljspeech/wavs/LJ028-0077.npy +tests/data/ljspeech/wavs/LJ028-0460.wav|tests/data/ljspeech/wavs/LJ028-0460.npy +tests/data/ljspeech/wavs/LJ012-0042.wav|tests/data/ljspeech/wavs/LJ012-0042.npy +tests/data/ljspeech/wavs/LJ001-0035.wav|tests/data/ljspeech/wavs/LJ001-0035.npy +tests/data/ljspeech/wavs/LJ021-0040.wav|tests/data/ljspeech/wavs/LJ021-0040.npy +tests/data/ljspeech/wavs/LJ034-0083.wav|tests/data/ljspeech/wavs/LJ034-0083.npy +tests/data/ljspeech/wavs/LJ037-0215.wav|tests/data/ljspeech/wavs/LJ037-0215.npy +tests/data/ljspeech/wavs/LJ014-0216.wav|tests/data/ljspeech/wavs/LJ014-0216.npy +tests/data/ljspeech/wavs/LJ014-0116.wav|tests/data/ljspeech/wavs/LJ014-0116.npy +tests/data/ljspeech/wavs/LJ038-0145.wav|tests/data/ljspeech/wavs/LJ038-0145.npy +tests/data/ljspeech/wavs/LJ028-0125.wav|tests/data/ljspeech/wavs/LJ028-0125.npy +tests/data/ljspeech/wavs/LJ008-0107.wav|tests/data/ljspeech/wavs/LJ008-0107.npy +tests/data/ljspeech/wavs/LJ003-0191.wav|tests/data/ljspeech/wavs/LJ003-0191.npy +tests/data/ljspeech/wavs/LJ012-0177.wav|tests/data/ljspeech/wavs/LJ012-0177.npy +tests/data/ljspeech/wavs/LJ033-0189.wav|tests/data/ljspeech/wavs/LJ033-0189.npy +tests/data/ljspeech/wavs/LJ012-0210.wav|tests/data/ljspeech/wavs/LJ012-0210.npy +tests/data/ljspeech/wavs/LJ022-0106.wav|tests/data/ljspeech/wavs/LJ022-0106.npy +tests/data/ljspeech/wavs/LJ021-0058.wav|tests/data/ljspeech/wavs/LJ021-0058.npy +tests/data/ljspeech/wavs/LJ006-0102.wav|tests/data/ljspeech/wavs/LJ006-0102.npy +tests/data/ljspeech/wavs/LJ033-0032.wav|tests/data/ljspeech/wavs/LJ033-0032.npy +tests/data/ljspeech/wavs/LJ002-0200.wav|tests/data/ljspeech/wavs/LJ002-0200.npy +tests/data/ljspeech/wavs/LJ033-0185.wav|tests/data/ljspeech/wavs/LJ033-0185.npy +tests/data/ljspeech/wavs/LJ036-0057.wav|tests/data/ljspeech/wavs/LJ036-0057.npy +tests/data/ljspeech/wavs/LJ035-0066.wav|tests/data/ljspeech/wavs/LJ035-0066.npy +tests/data/ljspeech/wavs/LJ028-0257.wav|tests/data/ljspeech/wavs/LJ028-0257.npy +tests/data/ljspeech/wavs/LJ040-0064.wav|tests/data/ljspeech/wavs/LJ040-0064.npy +tests/data/ljspeech/wavs/LJ032-0052.wav|tests/data/ljspeech/wavs/LJ032-0052.npy +tests/data/ljspeech/wavs/LJ047-0036.wav|tests/data/ljspeech/wavs/LJ047-0036.npy +tests/data/ljspeech/wavs/LJ032-0059.wav|tests/data/ljspeech/wavs/LJ032-0059.npy +tests/data/ljspeech/wavs/LJ006-0179.wav|tests/data/ljspeech/wavs/LJ006-0179.npy +tests/data/ljspeech/wavs/LJ034-0063.wav|tests/data/ljspeech/wavs/LJ034-0063.npy +tests/data/ljspeech/wavs/LJ010-0252.wav|tests/data/ljspeech/wavs/LJ010-0252.npy +tests/data/ljspeech/wavs/LJ040-0076.wav|tests/data/ljspeech/wavs/LJ040-0076.npy +tests/data/ljspeech/wavs/LJ004-0039.wav|tests/data/ljspeech/wavs/LJ004-0039.npy +tests/data/ljspeech/wavs/LJ047-0049.wav|tests/data/ljspeech/wavs/LJ047-0049.npy +tests/data/ljspeech/wavs/LJ018-0132.wav|tests/data/ljspeech/wavs/LJ018-0132.npy +tests/data/ljspeech/wavs/LJ017-0182.wav|tests/data/ljspeech/wavs/LJ017-0182.npy +tests/data/ljspeech/wavs/LJ016-0368.wav|tests/data/ljspeech/wavs/LJ016-0368.npy +tests/data/ljspeech/wavs/LJ017-0185.wav|tests/data/ljspeech/wavs/LJ017-0185.npy +tests/data/ljspeech/wavs/LJ017-0227.wav|tests/data/ljspeech/wavs/LJ017-0227.npy +tests/data/ljspeech/wavs/LJ030-0170.wav|tests/data/ljspeech/wavs/LJ030-0170.npy +tests/data/ljspeech/wavs/LJ001-0177.wav|tests/data/ljspeech/wavs/LJ001-0177.npy +tests/data/ljspeech/wavs/LJ040-0105.wav|tests/data/ljspeech/wavs/LJ040-0105.npy +tests/data/ljspeech/wavs/LJ002-0286.wav|tests/data/ljspeech/wavs/LJ002-0286.npy +tests/data/ljspeech/wavs/LJ008-0241.wav|tests/data/ljspeech/wavs/LJ008-0241.npy +tests/data/ljspeech/wavs/LJ017-0086.wav|tests/data/ljspeech/wavs/LJ017-0086.npy +tests/data/ljspeech/wavs/LJ031-0097.wav|tests/data/ljspeech/wavs/LJ031-0097.npy +tests/data/ljspeech/wavs/LJ028-0346.wav|tests/data/ljspeech/wavs/LJ028-0346.npy +tests/data/ljspeech/wavs/LJ017-0255.wav|tests/data/ljspeech/wavs/LJ017-0255.npy +tests/data/ljspeech/wavs/LJ002-0273.wav|tests/data/ljspeech/wavs/LJ002-0273.npy +tests/data/ljspeech/wavs/LJ019-0017.wav|tests/data/ljspeech/wavs/LJ019-0017.npy +tests/data/ljspeech/wavs/LJ032-0232.wav|tests/data/ljspeech/wavs/LJ032-0232.npy +tests/data/ljspeech/wavs/LJ022-0076.wav|tests/data/ljspeech/wavs/LJ022-0076.npy +tests/data/ljspeech/wavs/LJ018-0053.wav|tests/data/ljspeech/wavs/LJ018-0053.npy +tests/data/ljspeech/wavs/LJ029-0006.wav|tests/data/ljspeech/wavs/LJ029-0006.npy +tests/data/ljspeech/wavs/LJ018-0010.wav|tests/data/ljspeech/wavs/LJ018-0010.npy +tests/data/ljspeech/wavs/LJ016-0182.wav|tests/data/ljspeech/wavs/LJ016-0182.npy +tests/data/ljspeech/wavs/LJ016-0095.wav|tests/data/ljspeech/wavs/LJ016-0095.npy +tests/data/ljspeech/wavs/LJ042-0201.wav|tests/data/ljspeech/wavs/LJ042-0201.npy +tests/data/ljspeech/wavs/LJ002-0232.wav|tests/data/ljspeech/wavs/LJ002-0232.npy +tests/data/ljspeech/wavs/LJ048-0217.wav|tests/data/ljspeech/wavs/LJ048-0217.npy +tests/data/ljspeech/wavs/LJ016-0140.wav|tests/data/ljspeech/wavs/LJ016-0140.npy +tests/data/ljspeech/wavs/LJ011-0229.wav|tests/data/ljspeech/wavs/LJ011-0229.npy +tests/data/ljspeech/wavs/LJ002-0172.wav|tests/data/ljspeech/wavs/LJ002-0172.npy +tests/data/ljspeech/wavs/LJ025-0097.wav|tests/data/ljspeech/wavs/LJ025-0097.npy +tests/data/ljspeech/wavs/LJ020-0056.wav|tests/data/ljspeech/wavs/LJ020-0056.npy +tests/data/ljspeech/wavs/LJ029-0032.wav|tests/data/ljspeech/wavs/LJ029-0032.npy +tests/data/ljspeech/wavs/LJ027-0100.wav|tests/data/ljspeech/wavs/LJ027-0100.npy +tests/data/ljspeech/wavs/LJ018-0321.wav|tests/data/ljspeech/wavs/LJ018-0321.npy +tests/data/ljspeech/wavs/LJ022-0196.wav|tests/data/ljspeech/wavs/LJ022-0196.npy +tests/data/ljspeech/wavs/LJ016-0098.wav|tests/data/ljspeech/wavs/LJ016-0098.npy +tests/data/ljspeech/wavs/LJ010-0108.wav|tests/data/ljspeech/wavs/LJ010-0108.npy +tests/data/ljspeech/wavs/LJ044-0039.wav|tests/data/ljspeech/wavs/LJ044-0039.npy +tests/data/ljspeech/wavs/LJ013-0129.wav|tests/data/ljspeech/wavs/LJ013-0129.npy +tests/data/ljspeech/wavs/LJ016-0317.wav|tests/data/ljspeech/wavs/LJ016-0317.npy +tests/data/ljspeech/wavs/LJ002-0050.wav|tests/data/ljspeech/wavs/LJ002-0050.npy +tests/data/ljspeech/wavs/LJ008-0190.wav|tests/data/ljspeech/wavs/LJ008-0190.npy +tests/data/ljspeech/wavs/LJ002-0173.wav|tests/data/ljspeech/wavs/LJ002-0173.npy +tests/data/ljspeech/wavs/LJ050-0201.wav|tests/data/ljspeech/wavs/LJ050-0201.npy +tests/data/ljspeech/wavs/LJ002-0038.wav|tests/data/ljspeech/wavs/LJ002-0038.npy +tests/data/ljspeech/wavs/LJ020-0012.wav|tests/data/ljspeech/wavs/LJ020-0012.npy +tests/data/ljspeech/wavs/LJ013-0079.wav|tests/data/ljspeech/wavs/LJ013-0079.npy +tests/data/ljspeech/wavs/LJ002-0336.wav|tests/data/ljspeech/wavs/LJ002-0336.npy +tests/data/ljspeech/wavs/LJ018-0193.wav|tests/data/ljspeech/wavs/LJ018-0193.npy +tests/data/ljspeech/wavs/LJ049-0077.wav|tests/data/ljspeech/wavs/LJ049-0077.npy +tests/data/ljspeech/wavs/LJ028-0374.wav|tests/data/ljspeech/wavs/LJ028-0374.npy +tests/data/ljspeech/wavs/LJ002-0143.wav|tests/data/ljspeech/wavs/LJ002-0143.npy +tests/data/ljspeech/wavs/LJ028-0378.wav|tests/data/ljspeech/wavs/LJ028-0378.npy +tests/data/ljspeech/wavs/LJ044-0016.wav|tests/data/ljspeech/wavs/LJ044-0016.npy +tests/data/ljspeech/wavs/LJ038-0260.wav|tests/data/ljspeech/wavs/LJ038-0260.npy +tests/data/ljspeech/wavs/LJ028-0180.wav|tests/data/ljspeech/wavs/LJ028-0180.npy +tests/data/ljspeech/wavs/LJ029-0021.wav|tests/data/ljspeech/wavs/LJ029-0021.npy +tests/data/ljspeech/wavs/LJ011-0228.wav|tests/data/ljspeech/wavs/LJ011-0228.npy +tests/data/ljspeech/wavs/LJ026-0096.wav|tests/data/ljspeech/wavs/LJ026-0096.npy +tests/data/ljspeech/wavs/LJ003-0039.wav|tests/data/ljspeech/wavs/LJ003-0039.npy +tests/data/ljspeech/wavs/LJ014-0317.wav|tests/data/ljspeech/wavs/LJ014-0317.npy +tests/data/ljspeech/wavs/LJ010-0217.wav|tests/data/ljspeech/wavs/LJ010-0217.npy +tests/data/ljspeech/wavs/LJ023-0128.wav|tests/data/ljspeech/wavs/LJ023-0128.npy +tests/data/ljspeech/wavs/LJ026-0136.wav|tests/data/ljspeech/wavs/LJ026-0136.npy +tests/data/ljspeech/wavs/LJ049-0167.wav|tests/data/ljspeech/wavs/LJ049-0167.npy +tests/data/ljspeech/wavs/LJ027-0141.wav|tests/data/ljspeech/wavs/LJ027-0141.npy +tests/data/ljspeech/wavs/LJ002-0187.wav|tests/data/ljspeech/wavs/LJ002-0187.npy +tests/data/ljspeech/wavs/LJ012-0191.wav|tests/data/ljspeech/wavs/LJ012-0191.npy +tests/data/ljspeech/wavs/LJ013-0158.wav|tests/data/ljspeech/wavs/LJ013-0158.npy +tests/data/ljspeech/wavs/LJ032-0128.wav|tests/data/ljspeech/wavs/LJ032-0128.npy +tests/data/ljspeech/wavs/LJ001-0052.wav|tests/data/ljspeech/wavs/LJ001-0052.npy +tests/data/ljspeech/wavs/LJ012-0253.wav|tests/data/ljspeech/wavs/LJ012-0253.npy +tests/data/ljspeech/wavs/LJ026-0137.wav|tests/data/ljspeech/wavs/LJ026-0137.npy +tests/data/ljspeech/wavs/LJ013-0033.wav|tests/data/ljspeech/wavs/LJ013-0033.npy +tests/data/ljspeech/wavs/LJ036-0106.wav|tests/data/ljspeech/wavs/LJ036-0106.npy +tests/data/ljspeech/wavs/LJ026-0097.wav|tests/data/ljspeech/wavs/LJ026-0097.npy +tests/data/ljspeech/wavs/LJ034-0185.wav|tests/data/ljspeech/wavs/LJ034-0185.npy +tests/data/ljspeech/wavs/LJ013-0191.wav|tests/data/ljspeech/wavs/LJ013-0191.npy +tests/data/ljspeech/wavs/LJ028-0441.wav|tests/data/ljspeech/wavs/LJ028-0441.npy +tests/data/ljspeech/wavs/LJ033-0199.wav|tests/data/ljspeech/wavs/LJ033-0199.npy +tests/data/ljspeech/wavs/LJ044-0001.wav|tests/data/ljspeech/wavs/LJ044-0001.npy +tests/data/ljspeech/wavs/LJ043-0001.wav|tests/data/ljspeech/wavs/LJ043-0001.npy +tests/data/ljspeech/wavs/LJ042-0001.wav|tests/data/ljspeech/wavs/LJ042-0001.npy +tests/data/ljspeech/wavs/LJ034-0001.wav|tests/data/ljspeech/wavs/LJ034-0001.npy +tests/data/ljspeech/wavs/LJ013-0163.wav|tests/data/ljspeech/wavs/LJ013-0163.npy +tests/data/ljspeech/wavs/LJ016-0330.wav|tests/data/ljspeech/wavs/LJ016-0330.npy +tests/data/ljspeech/wavs/LJ036-0178.wav|tests/data/ljspeech/wavs/LJ036-0178.npy +tests/data/ljspeech/wavs/LJ039-0102.wav|tests/data/ljspeech/wavs/LJ039-0102.npy +tests/data/ljspeech/wavs/LJ036-0180.wav|tests/data/ljspeech/wavs/LJ036-0180.npy +tests/data/ljspeech/wavs/LJ001-0122.wav|tests/data/ljspeech/wavs/LJ001-0122.npy +tests/data/ljspeech/wavs/LJ003-0177.wav|tests/data/ljspeech/wavs/LJ003-0177.npy +tests/data/ljspeech/wavs/LJ002-0100.wav|tests/data/ljspeech/wavs/LJ002-0100.npy +tests/data/ljspeech/wavs/LJ003-0122.wav|tests/data/ljspeech/wavs/LJ003-0122.npy +tests/data/ljspeech/wavs/LJ040-0217.wav|tests/data/ljspeech/wavs/LJ040-0217.npy +tests/data/ljspeech/wavs/LJ024-0129.wav|tests/data/ljspeech/wavs/LJ024-0129.npy +tests/data/ljspeech/wavs/LJ011-0207.wav|tests/data/ljspeech/wavs/LJ011-0207.npy +tests/data/ljspeech/wavs/LJ011-0165.wav|tests/data/ljspeech/wavs/LJ011-0165.npy +tests/data/ljspeech/wavs/LJ015-0176.wav|tests/data/ljspeech/wavs/LJ015-0176.npy +tests/data/ljspeech/wavs/LJ008-0018.wav|tests/data/ljspeech/wavs/LJ008-0018.npy +tests/data/ljspeech/wavs/LJ044-0166.wav|tests/data/ljspeech/wavs/LJ044-0166.npy +tests/data/ljspeech/wavs/LJ007-0141.wav|tests/data/ljspeech/wavs/LJ007-0141.npy +tests/data/ljspeech/wavs/LJ006-0005.wav|tests/data/ljspeech/wavs/LJ006-0005.npy +tests/data/ljspeech/wavs/LJ011-0086.wav|tests/data/ljspeech/wavs/LJ011-0086.npy +tests/data/ljspeech/wavs/LJ037-0043.wav|tests/data/ljspeech/wavs/LJ037-0043.npy +tests/data/ljspeech/wavs/LJ014-0148.wav|tests/data/ljspeech/wavs/LJ014-0148.npy +tests/data/ljspeech/wavs/LJ017-0261.wav|tests/data/ljspeech/wavs/LJ017-0261.npy +tests/data/ljspeech/wavs/LJ009-0115.wav|tests/data/ljspeech/wavs/LJ009-0115.npy +tests/data/ljspeech/wavs/LJ038-0105.wav|tests/data/ljspeech/wavs/LJ038-0105.npy +tests/data/ljspeech/wavs/LJ009-0162.wav|tests/data/ljspeech/wavs/LJ009-0162.npy +tests/data/ljspeech/wavs/LJ008-0096.wav|tests/data/ljspeech/wavs/LJ008-0096.npy +tests/data/ljspeech/wavs/LJ030-0172.wav|tests/data/ljspeech/wavs/LJ030-0172.npy +tests/data/ljspeech/wavs/LJ013-0018.wav|tests/data/ljspeech/wavs/LJ013-0018.npy +tests/data/ljspeech/wavs/LJ012-0245.wav|tests/data/ljspeech/wavs/LJ012-0245.npy +tests/data/ljspeech/wavs/LJ001-0016.wav|tests/data/ljspeech/wavs/LJ001-0016.npy +tests/data/ljspeech/wavs/LJ008-0099.wav|tests/data/ljspeech/wavs/LJ008-0099.npy +tests/data/ljspeech/wavs/LJ031-0001.wav|tests/data/ljspeech/wavs/LJ031-0001.npy +tests/data/ljspeech/wavs/LJ016-0284.wav|tests/data/ljspeech/wavs/LJ016-0284.npy +tests/data/ljspeech/wavs/LJ016-0242.wav|tests/data/ljspeech/wavs/LJ016-0242.npy +tests/data/ljspeech/wavs/LJ033-0176.wav|tests/data/ljspeech/wavs/LJ033-0176.npy +tests/data/ljspeech/wavs/LJ018-0165.wav|tests/data/ljspeech/wavs/LJ018-0165.npy +tests/data/ljspeech/wavs/LJ029-0183.wav|tests/data/ljspeech/wavs/LJ029-0183.npy +tests/data/ljspeech/wavs/LJ046-0185.wav|tests/data/ljspeech/wavs/LJ046-0185.npy +tests/data/ljspeech/wavs/LJ027-0165.wav|tests/data/ljspeech/wavs/LJ027-0165.npy +tests/data/ljspeech/wavs/LJ027-0001.wav|tests/data/ljspeech/wavs/LJ027-0001.npy +tests/data/ljspeech/wavs/LJ022-0101.wav|tests/data/ljspeech/wavs/LJ022-0101.npy +tests/data/ljspeech/wavs/LJ048-0191.wav|tests/data/ljspeech/wavs/LJ048-0191.npy +tests/data/ljspeech/wavs/LJ029-0092.wav|tests/data/ljspeech/wavs/LJ029-0092.npy +tests/data/ljspeech/wavs/LJ013-0169.wav|tests/data/ljspeech/wavs/LJ013-0169.npy +tests/data/ljspeech/wavs/LJ018-0088.wav|tests/data/ljspeech/wavs/LJ018-0088.npy +tests/data/ljspeech/wavs/LJ022-0117.wav|tests/data/ljspeech/wavs/LJ022-0117.npy +tests/data/ljspeech/wavs/LJ036-0204.wav|tests/data/ljspeech/wavs/LJ036-0204.npy +tests/data/ljspeech/wavs/LJ017-0065.wav|tests/data/ljspeech/wavs/LJ017-0065.npy +tests/data/ljspeech/wavs/LJ045-0076.wav|tests/data/ljspeech/wavs/LJ045-0076.npy +tests/data/ljspeech/wavs/LJ019-0295.wav|tests/data/ljspeech/wavs/LJ019-0295.npy +tests/data/ljspeech/wavs/LJ044-0089.wav|tests/data/ljspeech/wavs/LJ044-0089.npy +tests/data/ljspeech/wavs/LJ016-0060.wav|tests/data/ljspeech/wavs/LJ016-0060.npy +tests/data/ljspeech/wavs/LJ019-0257.wav|tests/data/ljspeech/wavs/LJ019-0257.npy +tests/data/ljspeech/wavs/LJ035-0180.wav|tests/data/ljspeech/wavs/LJ035-0180.npy +tests/data/ljspeech/wavs/LJ043-0037.wav|tests/data/ljspeech/wavs/LJ043-0037.npy +tests/data/ljspeech/wavs/LJ019-0261.wav|tests/data/ljspeech/wavs/LJ019-0261.npy +tests/data/ljspeech/wavs/LJ004-0095.wav|tests/data/ljspeech/wavs/LJ004-0095.npy +tests/data/ljspeech/wavs/LJ036-0070.wav|tests/data/ljspeech/wavs/LJ036-0070.npy +tests/data/ljspeech/wavs/LJ010-0210.wav|tests/data/ljspeech/wavs/LJ010-0210.npy +tests/data/ljspeech/wavs/LJ028-0280.wav|tests/data/ljspeech/wavs/LJ028-0280.npy +tests/data/ljspeech/wavs/LJ003-0065.wav|tests/data/ljspeech/wavs/LJ003-0065.npy +tests/data/ljspeech/wavs/LJ028-0202.wav|tests/data/ljspeech/wavs/LJ028-0202.npy +tests/data/ljspeech/wavs/LJ049-0001.wav|tests/data/ljspeech/wavs/LJ049-0001.npy +tests/data/ljspeech/wavs/LJ027-0172.wav|tests/data/ljspeech/wavs/LJ027-0172.npy +tests/data/ljspeech/wavs/LJ024-0133.wav|tests/data/ljspeech/wavs/LJ024-0133.npy +tests/data/ljspeech/wavs/LJ039-0193.wav|tests/data/ljspeech/wavs/LJ039-0193.npy +tests/data/ljspeech/wavs/LJ040-0239.wav|tests/data/ljspeech/wavs/LJ040-0239.npy +tests/data/ljspeech/wavs/LJ036-0047.wav|tests/data/ljspeech/wavs/LJ036-0047.npy +tests/data/ljspeech/wavs/LJ039-0044.wav|tests/data/ljspeech/wavs/LJ039-0044.npy +tests/data/ljspeech/wavs/LJ021-0068.wav|tests/data/ljspeech/wavs/LJ021-0068.npy +tests/data/ljspeech/wavs/LJ033-0203.wav|tests/data/ljspeech/wavs/LJ033-0203.npy +tests/data/ljspeech/wavs/LJ022-0195.wav|tests/data/ljspeech/wavs/LJ022-0195.npy +tests/data/ljspeech/wavs/LJ041-0024.wav|tests/data/ljspeech/wavs/LJ041-0024.npy +tests/data/ljspeech/wavs/LJ032-0130.wav|tests/data/ljspeech/wavs/LJ032-0130.npy +tests/data/ljspeech/wavs/LJ005-0112.wav|tests/data/ljspeech/wavs/LJ005-0112.npy +tests/data/ljspeech/wavs/LJ039-0120.wav|tests/data/ljspeech/wavs/LJ039-0120.npy +tests/data/ljspeech/wavs/LJ008-0157.wav|tests/data/ljspeech/wavs/LJ008-0157.npy +tests/data/ljspeech/wavs/LJ047-0185.wav|tests/data/ljspeech/wavs/LJ047-0185.npy +tests/data/ljspeech/wavs/LJ028-0029.wav|tests/data/ljspeech/wavs/LJ028-0029.npy +tests/data/ljspeech/wavs/LJ003-0131.wav|tests/data/ljspeech/wavs/LJ003-0131.npy +tests/data/ljspeech/wavs/LJ018-0021.wav|tests/data/ljspeech/wavs/LJ018-0021.npy +tests/data/ljspeech/wavs/LJ016-0431.wav|tests/data/ljspeech/wavs/LJ016-0431.npy +tests/data/ljspeech/wavs/LJ042-0228.wav|tests/data/ljspeech/wavs/LJ042-0228.npy +tests/data/ljspeech/wavs/LJ040-0135.wav|tests/data/ljspeech/wavs/LJ040-0135.npy +tests/data/ljspeech/wavs/LJ027-0007.wav|tests/data/ljspeech/wavs/LJ027-0007.npy +tests/data/ljspeech/wavs/LJ013-0220.wav|tests/data/ljspeech/wavs/LJ013-0220.npy +tests/data/ljspeech/wavs/LJ048-0190.wav|tests/data/ljspeech/wavs/LJ048-0190.npy +tests/data/ljspeech/wavs/LJ042-0193.wav|tests/data/ljspeech/wavs/LJ042-0193.npy +tests/data/ljspeech/wavs/LJ002-0244.wav|tests/data/ljspeech/wavs/LJ002-0244.npy +tests/data/ljspeech/wavs/LJ013-0014.wav|tests/data/ljspeech/wavs/LJ013-0014.npy +tests/data/ljspeech/wavs/LJ003-0240.wav|tests/data/ljspeech/wavs/LJ003-0240.npy +tests/data/ljspeech/wavs/LJ013-0235.wav|tests/data/ljspeech/wavs/LJ013-0235.npy +tests/data/ljspeech/wavs/LJ014-0025.wav|tests/data/ljspeech/wavs/LJ014-0025.npy +tests/data/ljspeech/wavs/LJ039-0002.wav|tests/data/ljspeech/wavs/LJ039-0002.npy +tests/data/ljspeech/wavs/LJ038-0001.wav|tests/data/ljspeech/wavs/LJ038-0001.npy +tests/data/ljspeech/wavs/LJ013-0162.wav|tests/data/ljspeech/wavs/LJ013-0162.npy +tests/data/ljspeech/wavs/LJ016-0434.wav|tests/data/ljspeech/wavs/LJ016-0434.npy +tests/data/ljspeech/wavs/LJ044-0070.wav|tests/data/ljspeech/wavs/LJ044-0070.npy +tests/data/ljspeech/wavs/LJ042-0163.wav|tests/data/ljspeech/wavs/LJ042-0163.npy +tests/data/ljspeech/wavs/LJ036-0045.wav|tests/data/ljspeech/wavs/LJ036-0045.npy +tests/data/ljspeech/wavs/LJ035-0063.wav|tests/data/ljspeech/wavs/LJ035-0063.npy +tests/data/ljspeech/wavs/LJ015-0194.wav|tests/data/ljspeech/wavs/LJ015-0194.npy +tests/data/ljspeech/wavs/LJ015-0071.wav|tests/data/ljspeech/wavs/LJ015-0071.npy +tests/data/ljspeech/wavs/LJ023-0108.wav|tests/data/ljspeech/wavs/LJ023-0108.npy +tests/data/ljspeech/wavs/LJ018-0330.wav|tests/data/ljspeech/wavs/LJ018-0330.npy +tests/data/ljspeech/wavs/LJ021-0162.wav|tests/data/ljspeech/wavs/LJ021-0162.npy +tests/data/ljspeech/wavs/LJ005-0267.wav|tests/data/ljspeech/wavs/LJ005-0267.npy +tests/data/ljspeech/wavs/LJ018-0232.wav|tests/data/ljspeech/wavs/LJ018-0232.npy +tests/data/ljspeech/wavs/LJ012-0213.wav|tests/data/ljspeech/wavs/LJ012-0213.npy +tests/data/ljspeech/wavs/LJ042-0107.wav|tests/data/ljspeech/wavs/LJ042-0107.npy +tests/data/ljspeech/wavs/LJ025-0018.wav|tests/data/ljspeech/wavs/LJ025-0018.npy +tests/data/ljspeech/wavs/LJ028-0499.wav|tests/data/ljspeech/wavs/LJ028-0499.npy +tests/data/ljspeech/wavs/LJ018-0160.wav|tests/data/ljspeech/wavs/LJ018-0160.npy +tests/data/ljspeech/wavs/LJ028-0040.wav|tests/data/ljspeech/wavs/LJ028-0040.npy +tests/data/ljspeech/wavs/LJ028-0486.wav|tests/data/ljspeech/wavs/LJ028-0486.npy +tests/data/ljspeech/wavs/LJ013-0190.wav|tests/data/ljspeech/wavs/LJ013-0190.npy +tests/data/ljspeech/wavs/LJ019-0083.wav|tests/data/ljspeech/wavs/LJ019-0083.npy +tests/data/ljspeech/wavs/LJ040-0190.wav|tests/data/ljspeech/wavs/LJ040-0190.npy +tests/data/ljspeech/wavs/LJ013-0161.wav|tests/data/ljspeech/wavs/LJ013-0161.npy +tests/data/ljspeech/wavs/LJ016-0387.wav|tests/data/ljspeech/wavs/LJ016-0387.npy +tests/data/ljspeech/wavs/LJ035-0085.wav|tests/data/ljspeech/wavs/LJ035-0085.npy +tests/data/ljspeech/wavs/LJ012-0292.wav|tests/data/ljspeech/wavs/LJ012-0292.npy +tests/data/ljspeech/wavs/LJ042-0066.wav|tests/data/ljspeech/wavs/LJ042-0066.npy +tests/data/ljspeech/wavs/LJ025-0093.wav|tests/data/ljspeech/wavs/LJ025-0093.npy +tests/data/ljspeech/wavs/LJ018-0168.wav|tests/data/ljspeech/wavs/LJ018-0168.npy +tests/data/ljspeech/wavs/LJ036-0034.wav|tests/data/ljspeech/wavs/LJ036-0034.npy +tests/data/ljspeech/wavs/LJ016-0092.wav|tests/data/ljspeech/wavs/LJ016-0092.npy +tests/data/ljspeech/wavs/LJ037-0018.wav|tests/data/ljspeech/wavs/LJ037-0018.npy +tests/data/ljspeech/wavs/LJ016-0034.wav|tests/data/ljspeech/wavs/LJ016-0034.npy +tests/data/ljspeech/wavs/LJ047-0147.wav|tests/data/ljspeech/wavs/LJ047-0147.npy +tests/data/ljspeech/wavs/LJ040-0156.wav|tests/data/ljspeech/wavs/LJ040-0156.npy +tests/data/ljspeech/wavs/LJ044-0032.wav|tests/data/ljspeech/wavs/LJ044-0032.npy +tests/data/ljspeech/wavs/LJ016-0004.wav|tests/data/ljspeech/wavs/LJ016-0004.npy +tests/data/ljspeech/wavs/LJ037-0138.wav|tests/data/ljspeech/wavs/LJ037-0138.npy +tests/data/ljspeech/wavs/LJ033-0063.wav|tests/data/ljspeech/wavs/LJ033-0063.npy +tests/data/ljspeech/wavs/LJ048-0279.wav|tests/data/ljspeech/wavs/LJ048-0279.npy +tests/data/ljspeech/wavs/LJ037-0133.wav|tests/data/ljspeech/wavs/LJ037-0133.npy +tests/data/ljspeech/wavs/LJ023-0141.wav|tests/data/ljspeech/wavs/LJ023-0141.npy +tests/data/ljspeech/wavs/LJ034-0016.wav|tests/data/ljspeech/wavs/LJ034-0016.npy +tests/data/ljspeech/wavs/LJ028-0008.wav|tests/data/ljspeech/wavs/LJ028-0008.npy +tests/data/ljspeech/wavs/LJ034-0010.wav|tests/data/ljspeech/wavs/LJ034-0010.npy +tests/data/ljspeech/wavs/LJ028-0406.wav|tests/data/ljspeech/wavs/LJ028-0406.npy +tests/data/ljspeech/wavs/LJ016-0192.wav|tests/data/ljspeech/wavs/LJ016-0192.npy +tests/data/ljspeech/wavs/LJ006-0051.wav|tests/data/ljspeech/wavs/LJ006-0051.npy +tests/data/ljspeech/wavs/LJ019-0035.wav|tests/data/ljspeech/wavs/LJ019-0035.npy +tests/data/ljspeech/wavs/LJ015-0146.wav|tests/data/ljspeech/wavs/LJ015-0146.npy +tests/data/ljspeech/wavs/LJ009-0258.wav|tests/data/ljspeech/wavs/LJ009-0258.npy +tests/data/ljspeech/wavs/LJ002-0174.wav|tests/data/ljspeech/wavs/LJ002-0174.npy +tests/data/ljspeech/wavs/LJ047-0086.wav|tests/data/ljspeech/wavs/LJ047-0086.npy +tests/data/ljspeech/wavs/LJ024-0119.wav|tests/data/ljspeech/wavs/LJ024-0119.npy +tests/data/ljspeech/wavs/LJ007-0198.wav|tests/data/ljspeech/wavs/LJ007-0198.npy +tests/data/ljspeech/wavs/LJ033-0064.wav|tests/data/ljspeech/wavs/LJ033-0064.npy +tests/data/ljspeech/wavs/LJ005-0008.wav|tests/data/ljspeech/wavs/LJ005-0008.npy +tests/data/ljspeech/wavs/LJ013-0168.wav|tests/data/ljspeech/wavs/LJ013-0168.npy +tests/data/ljspeech/wavs/LJ021-0100.wav|tests/data/ljspeech/wavs/LJ021-0100.npy +tests/data/ljspeech/wavs/LJ034-0015.wav|tests/data/ljspeech/wavs/LJ034-0015.npy +tests/data/ljspeech/wavs/LJ028-0497.wav|tests/data/ljspeech/wavs/LJ028-0497.npy +tests/data/ljspeech/wavs/LJ021-0079.wav|tests/data/ljspeech/wavs/LJ021-0079.npy +tests/data/ljspeech/wavs/LJ049-0100.wav|tests/data/ljspeech/wavs/LJ049-0100.npy +tests/data/ljspeech/wavs/LJ011-0252.wav|tests/data/ljspeech/wavs/LJ011-0252.npy +tests/data/ljspeech/wavs/LJ001-0098.wav|tests/data/ljspeech/wavs/LJ001-0098.npy +tests/data/ljspeech/wavs/LJ046-0189.wav|tests/data/ljspeech/wavs/LJ046-0189.npy +tests/data/ljspeech/wavs/LJ028-0182.wav|tests/data/ljspeech/wavs/LJ028-0182.npy +tests/data/ljspeech/wavs/LJ042-0199.wav|tests/data/ljspeech/wavs/LJ042-0199.npy +tests/data/ljspeech/wavs/LJ025-0002.wav|tests/data/ljspeech/wavs/LJ025-0002.npy +tests/data/ljspeech/wavs/LJ027-0062.wav|tests/data/ljspeech/wavs/LJ027-0062.npy +tests/data/ljspeech/wavs/LJ026-0152.wav|tests/data/ljspeech/wavs/LJ026-0152.npy +tests/data/ljspeech/wavs/LJ036-0190.wav|tests/data/ljspeech/wavs/LJ036-0190.npy +tests/data/ljspeech/wavs/LJ034-0050.wav|tests/data/ljspeech/wavs/LJ034-0050.npy +tests/data/ljspeech/wavs/LJ050-0248.wav|tests/data/ljspeech/wavs/LJ050-0248.npy +tests/data/ljspeech/wavs/LJ049-0014.wav|tests/data/ljspeech/wavs/LJ049-0014.npy +tests/data/ljspeech/wavs/LJ006-0198.wav|tests/data/ljspeech/wavs/LJ006-0198.npy +tests/data/ljspeech/wavs/LJ038-0056.wav|tests/data/ljspeech/wavs/LJ038-0056.npy +tests/data/ljspeech/wavs/LJ010-0233.wav|tests/data/ljspeech/wavs/LJ010-0233.npy +tests/data/ljspeech/wavs/LJ015-0012.wav|tests/data/ljspeech/wavs/LJ015-0012.npy +tests/data/ljspeech/wavs/LJ013-0040.wav|tests/data/ljspeech/wavs/LJ013-0040.npy +tests/data/ljspeech/wavs/LJ012-0288.wav|tests/data/ljspeech/wavs/LJ012-0288.npy +tests/data/ljspeech/wavs/LJ028-0128.wav|tests/data/ljspeech/wavs/LJ028-0128.npy +tests/data/ljspeech/wavs/LJ022-0137.wav|tests/data/ljspeech/wavs/LJ022-0137.npy +tests/data/ljspeech/wavs/LJ024-0074.wav|tests/data/ljspeech/wavs/LJ024-0074.npy +tests/data/ljspeech/wavs/LJ014-0112.wav|tests/data/ljspeech/wavs/LJ014-0112.npy +tests/data/ljspeech/wavs/LJ017-0194.wav|tests/data/ljspeech/wavs/LJ017-0194.npy +tests/data/ljspeech/wavs/LJ042-0069.wav|tests/data/ljspeech/wavs/LJ042-0069.npy +tests/data/ljspeech/wavs/LJ022-0103.wav|tests/data/ljspeech/wavs/LJ022-0103.npy +tests/data/ljspeech/wavs/LJ028-0072.wav|tests/data/ljspeech/wavs/LJ028-0072.npy +tests/data/ljspeech/wavs/LJ006-0265.wav|tests/data/ljspeech/wavs/LJ006-0265.npy +tests/data/ljspeech/wavs/LJ022-0091.wav|tests/data/ljspeech/wavs/LJ022-0091.npy +tests/data/ljspeech/wavs/LJ014-0032.wav|tests/data/ljspeech/wavs/LJ014-0032.npy +tests/data/ljspeech/wavs/LJ008-0221.wav|tests/data/ljspeech/wavs/LJ008-0221.npy +tests/data/ljspeech/wavs/LJ039-0207.wav|tests/data/ljspeech/wavs/LJ039-0207.npy +tests/data/ljspeech/wavs/LJ018-0012.wav|tests/data/ljspeech/wavs/LJ018-0012.npy +tests/data/ljspeech/wavs/LJ028-0084.wav|tests/data/ljspeech/wavs/LJ028-0084.npy +tests/data/ljspeech/wavs/LJ014-0022.wav|tests/data/ljspeech/wavs/LJ014-0022.npy +tests/data/ljspeech/wavs/LJ039-0164.wav|tests/data/ljspeech/wavs/LJ039-0164.npy +tests/data/ljspeech/wavs/LJ003-0036.wav|tests/data/ljspeech/wavs/LJ003-0036.npy +tests/data/ljspeech/wavs/LJ019-0387.wav|tests/data/ljspeech/wavs/LJ019-0387.npy +tests/data/ljspeech/wavs/LJ037-0096.wav|tests/data/ljspeech/wavs/LJ037-0096.npy +tests/data/ljspeech/wavs/LJ005-0031.wav|tests/data/ljspeech/wavs/LJ005-0031.npy +tests/data/ljspeech/wavs/LJ038-0193.wav|tests/data/ljspeech/wavs/LJ038-0193.npy +tests/data/ljspeech/wavs/LJ031-0198.wav|tests/data/ljspeech/wavs/LJ031-0198.npy +tests/data/ljspeech/wavs/LJ047-0097.wav|tests/data/ljspeech/wavs/LJ047-0097.npy +tests/data/ljspeech/wavs/LJ028-0274.wav|tests/data/ljspeech/wavs/LJ028-0274.npy +tests/data/ljspeech/wavs/LJ045-0045.wav|tests/data/ljspeech/wavs/LJ045-0045.npy +tests/data/ljspeech/wavs/LJ045-0071.wav|tests/data/ljspeech/wavs/LJ045-0071.npy +tests/data/ljspeech/wavs/LJ004-0154.wav|tests/data/ljspeech/wavs/LJ004-0154.npy +tests/data/ljspeech/wavs/LJ022-0181.wav|tests/data/ljspeech/wavs/LJ022-0181.npy +tests/data/ljspeech/wavs/LJ016-0146.wav|tests/data/ljspeech/wavs/LJ016-0146.npy +tests/data/ljspeech/wavs/LJ026-0161.wav|tests/data/ljspeech/wavs/LJ026-0161.npy +tests/data/ljspeech/wavs/LJ010-0315.wav|tests/data/ljspeech/wavs/LJ010-0315.npy +tests/data/ljspeech/wavs/LJ005-0059.wav|tests/data/ljspeech/wavs/LJ005-0059.npy +tests/data/ljspeech/wavs/LJ013-0222.wav|tests/data/ljspeech/wavs/LJ013-0222.npy +tests/data/ljspeech/wavs/LJ024-0078.wav|tests/data/ljspeech/wavs/LJ024-0078.npy +tests/data/ljspeech/wavs/LJ031-0086.wav|tests/data/ljspeech/wavs/LJ031-0086.npy +tests/data/ljspeech/wavs/LJ017-0094.wav|tests/data/ljspeech/wavs/LJ017-0094.npy +tests/data/ljspeech/wavs/LJ030-0143.wav|tests/data/ljspeech/wavs/LJ030-0143.npy +tests/data/ljspeech/wavs/LJ038-0146.wav|tests/data/ljspeech/wavs/LJ038-0146.npy +tests/data/ljspeech/wavs/LJ017-0252.wav|tests/data/ljspeech/wavs/LJ017-0252.npy +tests/data/ljspeech/wavs/LJ010-0263.wav|tests/data/ljspeech/wavs/LJ010-0263.npy +tests/data/ljspeech/wavs/LJ042-0090.wav|tests/data/ljspeech/wavs/LJ042-0090.npy +tests/data/ljspeech/wavs/LJ040-0065.wav|tests/data/ljspeech/wavs/LJ040-0065.npy +tests/data/ljspeech/wavs/LJ028-0249.wav|tests/data/ljspeech/wavs/LJ028-0249.npy +tests/data/ljspeech/wavs/LJ015-0204.wav|tests/data/ljspeech/wavs/LJ015-0204.npy +tests/data/ljspeech/wavs/LJ009-0005.wav|tests/data/ljspeech/wavs/LJ009-0005.npy +tests/data/ljspeech/wavs/LJ008-0274.wav|tests/data/ljspeech/wavs/LJ008-0274.npy +tests/data/ljspeech/wavs/LJ009-0013.wav|tests/data/ljspeech/wavs/LJ009-0013.npy +tests/data/ljspeech/wavs/LJ050-0210.wav|tests/data/ljspeech/wavs/LJ050-0210.npy +tests/data/ljspeech/wavs/LJ035-0199.wav|tests/data/ljspeech/wavs/LJ035-0199.npy +tests/data/ljspeech/wavs/LJ046-0156.wav|tests/data/ljspeech/wavs/LJ046-0156.npy +tests/data/ljspeech/wavs/LJ026-0103.wav|tests/data/ljspeech/wavs/LJ026-0103.npy +tests/data/ljspeech/wavs/LJ049-0048.wav|tests/data/ljspeech/wavs/LJ049-0048.npy +tests/data/ljspeech/wavs/LJ026-0159.wav|tests/data/ljspeech/wavs/LJ026-0159.npy +tests/data/ljspeech/wavs/LJ005-0145.wav|tests/data/ljspeech/wavs/LJ005-0145.npy +tests/data/ljspeech/wavs/LJ028-0045.wav|tests/data/ljspeech/wavs/LJ028-0045.npy +tests/data/ljspeech/wavs/LJ023-0090.wav|tests/data/ljspeech/wavs/LJ023-0090.npy +tests/data/ljspeech/wavs/LJ047-0118.wav|tests/data/ljspeech/wavs/LJ047-0118.npy +tests/data/ljspeech/wavs/LJ013-0087.wav|tests/data/ljspeech/wavs/LJ013-0087.npy +tests/data/ljspeech/wavs/LJ037-0112.wav|tests/data/ljspeech/wavs/LJ037-0112.npy +tests/data/ljspeech/wavs/LJ016-0033.wav|tests/data/ljspeech/wavs/LJ016-0033.npy +tests/data/ljspeech/wavs/LJ022-0075.wav|tests/data/ljspeech/wavs/LJ022-0075.npy +tests/data/ljspeech/wavs/LJ005-0153.wav|tests/data/ljspeech/wavs/LJ005-0153.npy +tests/data/ljspeech/wavs/LJ001-0134.wav|tests/data/ljspeech/wavs/LJ001-0134.npy +tests/data/ljspeech/wavs/LJ046-0205.wav|tests/data/ljspeech/wavs/LJ046-0205.npy +tests/data/ljspeech/wavs/LJ043-0021.wav|tests/data/ljspeech/wavs/LJ043-0021.npy +tests/data/ljspeech/wavs/LJ035-0018.wav|tests/data/ljspeech/wavs/LJ035-0018.npy +tests/data/ljspeech/wavs/LJ003-0066.wav|tests/data/ljspeech/wavs/LJ003-0066.npy +tests/data/ljspeech/wavs/LJ029-0178.wav|tests/data/ljspeech/wavs/LJ029-0178.npy +tests/data/ljspeech/wavs/LJ045-0180.wav|tests/data/ljspeech/wavs/LJ045-0180.npy +tests/data/ljspeech/wavs/LJ043-0125.wav|tests/data/ljspeech/wavs/LJ043-0125.npy +tests/data/ljspeech/wavs/LJ034-0030.wav|tests/data/ljspeech/wavs/LJ034-0030.npy +tests/data/ljspeech/wavs/LJ043-0164.wav|tests/data/ljspeech/wavs/LJ043-0164.npy +tests/data/ljspeech/wavs/LJ029-0065.wav|tests/data/ljspeech/wavs/LJ029-0065.npy +tests/data/ljspeech/wavs/LJ017-0107.wav|tests/data/ljspeech/wavs/LJ017-0107.npy +tests/data/ljspeech/wavs/LJ028-0465.wav|tests/data/ljspeech/wavs/LJ028-0465.npy +tests/data/ljspeech/wavs/LJ004-0203.wav|tests/data/ljspeech/wavs/LJ004-0203.npy +tests/data/ljspeech/wavs/LJ016-0162.wav|tests/data/ljspeech/wavs/LJ016-0162.npy +tests/data/ljspeech/wavs/LJ030-0208.wav|tests/data/ljspeech/wavs/LJ030-0208.npy +tests/data/ljspeech/wavs/LJ015-0122.wav|tests/data/ljspeech/wavs/LJ015-0122.npy +tests/data/ljspeech/wavs/LJ002-0126.wav|tests/data/ljspeech/wavs/LJ002-0126.npy +tests/data/ljspeech/wavs/LJ031-0208.wav|tests/data/ljspeech/wavs/LJ031-0208.npy +tests/data/ljspeech/wavs/LJ026-0134.wav|tests/data/ljspeech/wavs/LJ026-0134.npy +tests/data/ljspeech/wavs/LJ048-0228.wav|tests/data/ljspeech/wavs/LJ048-0228.npy +tests/data/ljspeech/wavs/LJ022-0100.wav|tests/data/ljspeech/wavs/LJ022-0100.npy +tests/data/ljspeech/wavs/LJ020-0033.wav|tests/data/ljspeech/wavs/LJ020-0033.npy +tests/data/ljspeech/wavs/LJ018-0358.wav|tests/data/ljspeech/wavs/LJ018-0358.npy +tests/data/ljspeech/wavs/LJ019-0061.wav|tests/data/ljspeech/wavs/LJ019-0061.npy +tests/data/ljspeech/wavs/LJ019-0090.wav|tests/data/ljspeech/wavs/LJ019-0090.npy +tests/data/ljspeech/wavs/LJ018-0350.wav|tests/data/ljspeech/wavs/LJ018-0350.npy +tests/data/ljspeech/wavs/LJ017-0193.wav|tests/data/ljspeech/wavs/LJ017-0193.npy +tests/data/ljspeech/wavs/LJ048-0226.wav|tests/data/ljspeech/wavs/LJ048-0226.npy +tests/data/ljspeech/wavs/LJ022-0050.wav|tests/data/ljspeech/wavs/LJ022-0050.npy +tests/data/ljspeech/wavs/LJ003-0296.wav|tests/data/ljspeech/wavs/LJ003-0296.npy +tests/data/ljspeech/wavs/LJ014-0043.wav|tests/data/ljspeech/wavs/LJ014-0043.npy +tests/data/ljspeech/wavs/LJ041-0153.wav|tests/data/ljspeech/wavs/LJ041-0153.npy +tests/data/ljspeech/wavs/LJ028-0171.wav|tests/data/ljspeech/wavs/LJ028-0171.npy +tests/data/ljspeech/wavs/LJ040-0078.wav|tests/data/ljspeech/wavs/LJ040-0078.npy +tests/data/ljspeech/wavs/LJ048-0044.wav|tests/data/ljspeech/wavs/LJ048-0044.npy +tests/data/ljspeech/wavs/LJ048-0145.wav|tests/data/ljspeech/wavs/LJ048-0145.npy +tests/data/ljspeech/wavs/LJ001-0063.wav|tests/data/ljspeech/wavs/LJ001-0063.npy +tests/data/ljspeech/wavs/LJ012-0184.wav|tests/data/ljspeech/wavs/LJ012-0184.npy +tests/data/ljspeech/wavs/LJ003-0249.wav|tests/data/ljspeech/wavs/LJ003-0249.npy +tests/data/ljspeech/wavs/LJ012-0185.wav|tests/data/ljspeech/wavs/LJ012-0185.npy +tests/data/ljspeech/wavs/LJ039-0134.wav|tests/data/ljspeech/wavs/LJ039-0134.npy +tests/data/ljspeech/wavs/LJ033-0213.wav|tests/data/ljspeech/wavs/LJ033-0213.npy +tests/data/ljspeech/wavs/LJ039-0175.wav|tests/data/ljspeech/wavs/LJ039-0175.npy +tests/data/ljspeech/wavs/LJ045-0018.wav|tests/data/ljspeech/wavs/LJ045-0018.npy +tests/data/ljspeech/wavs/LJ006-0201.wav|tests/data/ljspeech/wavs/LJ006-0201.npy +tests/data/ljspeech/wavs/LJ028-0016.wav|tests/data/ljspeech/wavs/LJ028-0016.npy +tests/data/ljspeech/wavs/LJ040-0220.wav|tests/data/ljspeech/wavs/LJ040-0220.npy +tests/data/ljspeech/wavs/LJ017-0021.wav|tests/data/ljspeech/wavs/LJ017-0021.npy +tests/data/ljspeech/wavs/LJ002-0194.wav|tests/data/ljspeech/wavs/LJ002-0194.npy +tests/data/ljspeech/wavs/LJ043-0141.wav|tests/data/ljspeech/wavs/LJ043-0141.npy +tests/data/ljspeech/wavs/LJ038-0157.wav|tests/data/ljspeech/wavs/LJ038-0157.npy +tests/data/ljspeech/wavs/LJ002-0048.wav|tests/data/ljspeech/wavs/LJ002-0048.npy +tests/data/ljspeech/wavs/LJ047-0137.wav|tests/data/ljspeech/wavs/LJ047-0137.npy +tests/data/ljspeech/wavs/LJ048-0261.wav|tests/data/ljspeech/wavs/LJ048-0261.npy +tests/data/ljspeech/wavs/LJ044-0045.wav|tests/data/ljspeech/wavs/LJ044-0045.npy +tests/data/ljspeech/wavs/LJ037-0057.wav|tests/data/ljspeech/wavs/LJ037-0057.npy +tests/data/ljspeech/wavs/LJ006-0288.wav|tests/data/ljspeech/wavs/LJ006-0288.npy +tests/data/ljspeech/wavs/LJ011-0120.wav|tests/data/ljspeech/wavs/LJ011-0120.npy +tests/data/ljspeech/wavs/LJ014-0143.wav|tests/data/ljspeech/wavs/LJ014-0143.npy +tests/data/ljspeech/wavs/LJ040-0147.wav|tests/data/ljspeech/wavs/LJ040-0147.npy +tests/data/ljspeech/wavs/LJ001-0156.wav|tests/data/ljspeech/wavs/LJ001-0156.npy +tests/data/ljspeech/wavs/LJ028-0089.wav|tests/data/ljspeech/wavs/LJ028-0089.npy +tests/data/ljspeech/wavs/LJ030-0194.wav|tests/data/ljspeech/wavs/LJ030-0194.npy +tests/data/ljspeech/wavs/LJ017-0054.wav|tests/data/ljspeech/wavs/LJ017-0054.npy +tests/data/ljspeech/wavs/LJ050-0246.wav|tests/data/ljspeech/wavs/LJ050-0246.npy +tests/data/ljspeech/wavs/LJ023-0073.wav|tests/data/ljspeech/wavs/LJ023-0073.npy +tests/data/ljspeech/wavs/LJ023-0071.wav|tests/data/ljspeech/wavs/LJ023-0071.npy +tests/data/ljspeech/wavs/LJ007-0111.wav|tests/data/ljspeech/wavs/LJ007-0111.npy +tests/data/ljspeech/wavs/LJ010-0132.wav|tests/data/ljspeech/wavs/LJ010-0132.npy +tests/data/ljspeech/wavs/LJ005-0106.wav|tests/data/ljspeech/wavs/LJ005-0106.npy +tests/data/ljspeech/wavs/LJ029-0208.wav|tests/data/ljspeech/wavs/LJ029-0208.npy +tests/data/ljspeech/wavs/LJ030-0127.wav|tests/data/ljspeech/wavs/LJ030-0127.npy +tests/data/ljspeech/wavs/LJ039-0246.wav|tests/data/ljspeech/wavs/LJ039-0246.npy +tests/data/ljspeech/wavs/LJ035-0048.wav|tests/data/ljspeech/wavs/LJ035-0048.npy +tests/data/ljspeech/wavs/LJ007-0179.wav|tests/data/ljspeech/wavs/LJ007-0179.npy +tests/data/ljspeech/wavs/LJ018-0198.wav|tests/data/ljspeech/wavs/LJ018-0198.npy +tests/data/ljspeech/wavs/LJ007-0186.wav|tests/data/ljspeech/wavs/LJ007-0186.npy +tests/data/ljspeech/wavs/LJ014-0163.wav|tests/data/ljspeech/wavs/LJ014-0163.npy +tests/data/ljspeech/wavs/LJ001-0139.wav|tests/data/ljspeech/wavs/LJ001-0139.npy +tests/data/ljspeech/wavs/LJ009-0139.wav|tests/data/ljspeech/wavs/LJ009-0139.npy +tests/data/ljspeech/wavs/LJ044-0020.wav|tests/data/ljspeech/wavs/LJ044-0020.npy +tests/data/ljspeech/wavs/LJ044-0055.wav|tests/data/ljspeech/wavs/LJ044-0055.npy +tests/data/ljspeech/wavs/LJ009-0174.wav|tests/data/ljspeech/wavs/LJ009-0174.npy +tests/data/ljspeech/wavs/LJ003-0070.wav|tests/data/ljspeech/wavs/LJ003-0070.npy +tests/data/ljspeech/wavs/LJ049-0095.wav|tests/data/ljspeech/wavs/LJ049-0095.npy +tests/data/ljspeech/wavs/LJ040-0129.wav|tests/data/ljspeech/wavs/LJ040-0129.npy +tests/data/ljspeech/wavs/LJ042-0110.wav|tests/data/ljspeech/wavs/LJ042-0110.npy +tests/data/ljspeech/wavs/LJ008-0199.wav|tests/data/ljspeech/wavs/LJ008-0199.npy +tests/data/ljspeech/wavs/LJ042-0051.wav|tests/data/ljspeech/wavs/LJ042-0051.npy +tests/data/ljspeech/wavs/LJ003-0190.wav|tests/data/ljspeech/wavs/LJ003-0190.npy +tests/data/ljspeech/wavs/LJ014-0087.wav|tests/data/ljspeech/wavs/LJ014-0087.npy +tests/data/ljspeech/wavs/LJ021-0049.wav|tests/data/ljspeech/wavs/LJ021-0049.npy +tests/data/ljspeech/wavs/LJ026-0022.wav|tests/data/ljspeech/wavs/LJ026-0022.npy +tests/data/ljspeech/wavs/LJ017-0058.wav|tests/data/ljspeech/wavs/LJ017-0058.npy +tests/data/ljspeech/wavs/LJ036-0170.wav|tests/data/ljspeech/wavs/LJ036-0170.npy +tests/data/ljspeech/wavs/LJ017-0226.wav|tests/data/ljspeech/wavs/LJ017-0226.npy +tests/data/ljspeech/wavs/LJ032-0146.wav|tests/data/ljspeech/wavs/LJ032-0146.npy +tests/data/ljspeech/wavs/LJ016-0429.wav|tests/data/ljspeech/wavs/LJ016-0429.npy +tests/data/ljspeech/wavs/LJ019-0267.wav|tests/data/ljspeech/wavs/LJ019-0267.npy +tests/data/ljspeech/wavs/LJ010-0276.wav|tests/data/ljspeech/wavs/LJ010-0276.npy +tests/data/ljspeech/wavs/LJ007-0170.wav|tests/data/ljspeech/wavs/LJ007-0170.npy +tests/data/ljspeech/wavs/LJ008-0085.wav|tests/data/ljspeech/wavs/LJ008-0085.npy +tests/data/ljspeech/wavs/LJ002-0040.wav|tests/data/ljspeech/wavs/LJ002-0040.npy +tests/data/ljspeech/wavs/LJ026-0109.wav|tests/data/ljspeech/wavs/LJ026-0109.npy +tests/data/ljspeech/wavs/LJ010-0203.wav|tests/data/ljspeech/wavs/LJ010-0203.npy +tests/data/ljspeech/wavs/LJ034-0068.wav|tests/data/ljspeech/wavs/LJ034-0068.npy +tests/data/ljspeech/wavs/LJ030-0244.wav|tests/data/ljspeech/wavs/LJ030-0244.npy +tests/data/ljspeech/wavs/LJ050-0073.wav|tests/data/ljspeech/wavs/LJ050-0073.npy +tests/data/ljspeech/wavs/LJ001-0056.wav|tests/data/ljspeech/wavs/LJ001-0056.npy +tests/data/ljspeech/wavs/LJ028-0086.wav|tests/data/ljspeech/wavs/LJ028-0086.npy +tests/data/ljspeech/wavs/LJ047-0208.wav|tests/data/ljspeech/wavs/LJ047-0208.npy +tests/data/ljspeech/wavs/LJ050-0041.wav|tests/data/ljspeech/wavs/LJ050-0041.npy +tests/data/ljspeech/wavs/LJ037-0208.wav|tests/data/ljspeech/wavs/LJ037-0208.npy +tests/data/ljspeech/wavs/LJ043-0073.wav|tests/data/ljspeech/wavs/LJ043-0073.npy +tests/data/ljspeech/wavs/LJ019-0302.wav|tests/data/ljspeech/wavs/LJ019-0302.npy +tests/data/ljspeech/wavs/LJ049-0209.wav|tests/data/ljspeech/wavs/LJ049-0209.npy +tests/data/ljspeech/wavs/LJ041-0074.wav|tests/data/ljspeech/wavs/LJ041-0074.npy +tests/data/ljspeech/wavs/LJ001-0062.wav|tests/data/ljspeech/wavs/LJ001-0062.npy +tests/data/ljspeech/wavs/LJ044-0091.wav|tests/data/ljspeech/wavs/LJ044-0091.npy +tests/data/ljspeech/wavs/LJ013-0240.wav|tests/data/ljspeech/wavs/LJ013-0240.npy +tests/data/ljspeech/wavs/LJ035-0002.wav|tests/data/ljspeech/wavs/LJ035-0002.npy +tests/data/ljspeech/wavs/LJ009-0141.wav|tests/data/ljspeech/wavs/LJ009-0141.npy +tests/data/ljspeech/wavs/LJ003-0231.wav|tests/data/ljspeech/wavs/LJ003-0231.npy +tests/data/ljspeech/wavs/LJ020-0096.wav|tests/data/ljspeech/wavs/LJ020-0096.npy +tests/data/ljspeech/wavs/LJ003-0080.wav|tests/data/ljspeech/wavs/LJ003-0080.npy +tests/data/ljspeech/wavs/LJ008-0136.wav|tests/data/ljspeech/wavs/LJ008-0136.npy +tests/data/ljspeech/wavs/LJ003-0126.wav|tests/data/ljspeech/wavs/LJ003-0126.npy +tests/data/ljspeech/wavs/LJ039-0040.wav|tests/data/ljspeech/wavs/LJ039-0040.npy +tests/data/ljspeech/wavs/LJ050-0166.wav|tests/data/ljspeech/wavs/LJ050-0166.npy +tests/data/ljspeech/wavs/LJ009-0041.wav|tests/data/ljspeech/wavs/LJ009-0041.npy +tests/data/ljspeech/wavs/LJ049-0206.wav|tests/data/ljspeech/wavs/LJ049-0206.npy +tests/data/ljspeech/wavs/LJ044-0115.wav|tests/data/ljspeech/wavs/LJ044-0115.npy +tests/data/ljspeech/wavs/LJ035-0005.wav|tests/data/ljspeech/wavs/LJ035-0005.npy +tests/data/ljspeech/wavs/LJ009-0221.wav|tests/data/ljspeech/wavs/LJ009-0221.npy +tests/data/ljspeech/wavs/LJ032-0081.wav|tests/data/ljspeech/wavs/LJ032-0081.npy +tests/data/ljspeech/wavs/LJ030-0057.wav|tests/data/ljspeech/wavs/LJ030-0057.npy +tests/data/ljspeech/wavs/LJ008-0071.wav|tests/data/ljspeech/wavs/LJ008-0071.npy +tests/data/ljspeech/wavs/LJ005-0133.wav|tests/data/ljspeech/wavs/LJ005-0133.npy +tests/data/ljspeech/wavs/LJ016-0416.wav|tests/data/ljspeech/wavs/LJ016-0416.npy +tests/data/ljspeech/wavs/LJ021-0041.wav|tests/data/ljspeech/wavs/LJ021-0041.npy +tests/data/ljspeech/wavs/LJ046-0006.wav|tests/data/ljspeech/wavs/LJ046-0006.npy +tests/data/ljspeech/wavs/LJ005-0025.wav|tests/data/ljspeech/wavs/LJ005-0025.npy +tests/data/ljspeech/wavs/LJ030-0171.wav|tests/data/ljspeech/wavs/LJ030-0171.npy +tests/data/ljspeech/wavs/LJ016-0381.wav|tests/data/ljspeech/wavs/LJ016-0381.npy +tests/data/ljspeech/wavs/LJ045-0137.wav|tests/data/ljspeech/wavs/LJ045-0137.npy +tests/data/ljspeech/wavs/LJ034-0067.wav|tests/data/ljspeech/wavs/LJ034-0067.npy +tests/data/ljspeech/wavs/LJ033-0188.wav|tests/data/ljspeech/wavs/LJ033-0188.npy +tests/data/ljspeech/wavs/LJ047-0085.wav|tests/data/ljspeech/wavs/LJ047-0085.npy +tests/data/ljspeech/wavs/LJ038-0043.wav|tests/data/ljspeech/wavs/LJ038-0043.npy +tests/data/ljspeech/wavs/LJ002-0162.wav|tests/data/ljspeech/wavs/LJ002-0162.npy +tests/data/ljspeech/wavs/LJ022-0164.wav|tests/data/ljspeech/wavs/LJ022-0164.npy +tests/data/ljspeech/wavs/LJ040-0109.wav|tests/data/ljspeech/wavs/LJ040-0109.npy +tests/data/ljspeech/wavs/LJ034-0057.wav|tests/data/ljspeech/wavs/LJ034-0057.npy +tests/data/ljspeech/wavs/LJ018-0043.wav|tests/data/ljspeech/wavs/LJ018-0043.npy +tests/data/ljspeech/wavs/LJ002-0274.wav|tests/data/ljspeech/wavs/LJ002-0274.npy +tests/data/ljspeech/wavs/LJ030-0231.wav|tests/data/ljspeech/wavs/LJ030-0231.npy +tests/data/ljspeech/wavs/LJ018-0301.wav|tests/data/ljspeech/wavs/LJ018-0301.npy +tests/data/ljspeech/wavs/LJ013-0113.wav|tests/data/ljspeech/wavs/LJ013-0113.npy +tests/data/ljspeech/wavs/LJ033-0011.wav|tests/data/ljspeech/wavs/LJ033-0011.npy +tests/data/ljspeech/wavs/LJ019-0036.wav|tests/data/ljspeech/wavs/LJ019-0036.npy +tests/data/ljspeech/wavs/LJ009-0095.wav|tests/data/ljspeech/wavs/LJ009-0095.npy +tests/data/ljspeech/wavs/LJ034-0042.wav|tests/data/ljspeech/wavs/LJ034-0042.npy +tests/data/ljspeech/wavs/LJ002-0123.wav|tests/data/ljspeech/wavs/LJ002-0123.npy +tests/data/ljspeech/wavs/LJ044-0082.wav|tests/data/ljspeech/wavs/LJ044-0082.npy +tests/data/ljspeech/wavs/LJ006-0261.wav|tests/data/ljspeech/wavs/LJ006-0261.npy +tests/data/ljspeech/wavs/LJ041-0111.wav|tests/data/ljspeech/wavs/LJ041-0111.npy +tests/data/ljspeech/wavs/LJ011-0236.wav|tests/data/ljspeech/wavs/LJ011-0236.npy +tests/data/ljspeech/wavs/LJ026-0124.wav|tests/data/ljspeech/wavs/LJ026-0124.npy +tests/data/ljspeech/wavs/LJ021-0057.wav|tests/data/ljspeech/wavs/LJ021-0057.npy +tests/data/ljspeech/wavs/LJ010-0121.wav|tests/data/ljspeech/wavs/LJ010-0121.npy +tests/data/ljspeech/wavs/LJ049-0007.wav|tests/data/ljspeech/wavs/LJ049-0007.npy +tests/data/ljspeech/wavs/LJ003-0041.wav|tests/data/ljspeech/wavs/LJ003-0041.npy +tests/data/ljspeech/wavs/LJ043-0018.wav|tests/data/ljspeech/wavs/LJ043-0018.npy +tests/data/ljspeech/wavs/LJ031-0181.wav|tests/data/ljspeech/wavs/LJ031-0181.npy +tests/data/ljspeech/wavs/LJ017-0283.wav|tests/data/ljspeech/wavs/LJ017-0283.npy +tests/data/ljspeech/wavs/LJ030-0056.wav|tests/data/ljspeech/wavs/LJ030-0056.npy +tests/data/ljspeech/wavs/LJ046-0023.wav|tests/data/ljspeech/wavs/LJ046-0023.npy +tests/data/ljspeech/wavs/LJ041-0137.wav|tests/data/ljspeech/wavs/LJ041-0137.npy +tests/data/ljspeech/wavs/LJ032-0031.wav|tests/data/ljspeech/wavs/LJ032-0031.npy +tests/data/ljspeech/wavs/LJ033-0149.wav|tests/data/ljspeech/wavs/LJ033-0149.npy +tests/data/ljspeech/wavs/LJ008-0195.wav|tests/data/ljspeech/wavs/LJ008-0195.npy +tests/data/ljspeech/wavs/LJ032-0210.wav|tests/data/ljspeech/wavs/LJ032-0210.npy +tests/data/ljspeech/wavs/LJ002-0091.wav|tests/data/ljspeech/wavs/LJ002-0091.npy +tests/data/ljspeech/wavs/LJ018-0346.wav|tests/data/ljspeech/wavs/LJ018-0346.npy +tests/data/ljspeech/wavs/LJ050-0046.wav|tests/data/ljspeech/wavs/LJ050-0046.npy +tests/data/ljspeech/wavs/LJ010-0216.wav|tests/data/ljspeech/wavs/LJ010-0216.npy +tests/data/ljspeech/wavs/LJ028-0400.wav|tests/data/ljspeech/wavs/LJ028-0400.npy +tests/data/ljspeech/wavs/LJ030-0182.wav|tests/data/ljspeech/wavs/LJ030-0182.npy +tests/data/ljspeech/wavs/LJ036-0129.wav|tests/data/ljspeech/wavs/LJ036-0129.npy +tests/data/ljspeech/wavs/LJ011-0173.wav|tests/data/ljspeech/wavs/LJ011-0173.npy +tests/data/ljspeech/wavs/LJ041-0099.wav|tests/data/ljspeech/wavs/LJ041-0099.npy +tests/data/ljspeech/wavs/LJ049-0006.wav|tests/data/ljspeech/wavs/LJ049-0006.npy +tests/data/ljspeech/wavs/LJ006-0024.wav|tests/data/ljspeech/wavs/LJ006-0024.npy +tests/data/ljspeech/wavs/LJ019-0078.wav|tests/data/ljspeech/wavs/LJ019-0078.npy +tests/data/ljspeech/wavs/LJ028-0481.wav|tests/data/ljspeech/wavs/LJ028-0481.npy +tests/data/ljspeech/wavs/LJ002-0051.wav|tests/data/ljspeech/wavs/LJ002-0051.npy +tests/data/ljspeech/wavs/LJ016-0125.wav|tests/data/ljspeech/wavs/LJ016-0125.npy +tests/data/ljspeech/wavs/LJ015-0061.wav|tests/data/ljspeech/wavs/LJ015-0061.npy +tests/data/ljspeech/wavs/LJ024-0012.wav|tests/data/ljspeech/wavs/LJ024-0012.npy +tests/data/ljspeech/wavs/LJ036-0008.wav|tests/data/ljspeech/wavs/LJ036-0008.npy +tests/data/ljspeech/wavs/LJ004-0079.wav|tests/data/ljspeech/wavs/LJ004-0079.npy +tests/data/ljspeech/wavs/LJ009-0035.wav|tests/data/ljspeech/wavs/LJ009-0035.npy +tests/data/ljspeech/wavs/LJ018-0094.wav|tests/data/ljspeech/wavs/LJ018-0094.npy +tests/data/ljspeech/wavs/LJ047-0206.wav|tests/data/ljspeech/wavs/LJ047-0206.npy +tests/data/ljspeech/wavs/LJ003-0038.wav|tests/data/ljspeech/wavs/LJ003-0038.npy +tests/data/ljspeech/wavs/LJ016-0337.wav|tests/data/ljspeech/wavs/LJ016-0337.npy +tests/data/ljspeech/wavs/LJ015-0278.wav|tests/data/ljspeech/wavs/LJ015-0278.npy +tests/data/ljspeech/wavs/LJ035-0148.wav|tests/data/ljspeech/wavs/LJ035-0148.npy +tests/data/ljspeech/wavs/LJ015-0254.wav|tests/data/ljspeech/wavs/LJ015-0254.npy +tests/data/ljspeech/wavs/LJ017-0015.wav|tests/data/ljspeech/wavs/LJ017-0015.npy +tests/data/ljspeech/wavs/LJ037-0238.wav|tests/data/ljspeech/wavs/LJ037-0238.npy +tests/data/ljspeech/wavs/LJ046-0159.wav|tests/data/ljspeech/wavs/LJ046-0159.npy +tests/data/ljspeech/wavs/LJ019-0054.wav|tests/data/ljspeech/wavs/LJ019-0054.npy +tests/data/ljspeech/wavs/LJ017-0092.wav|tests/data/ljspeech/wavs/LJ017-0092.npy +tests/data/ljspeech/wavs/LJ026-0150.wav|tests/data/ljspeech/wavs/LJ026-0150.npy +tests/data/ljspeech/wavs/LJ026-0119.wav|tests/data/ljspeech/wavs/LJ026-0119.npy +tests/data/ljspeech/wavs/LJ036-0038.wav|tests/data/ljspeech/wavs/LJ036-0038.npy +tests/data/ljspeech/wavs/LJ006-0074.wav|tests/data/ljspeech/wavs/LJ006-0074.npy +tests/data/ljspeech/wavs/LJ012-0038.wav|tests/data/ljspeech/wavs/LJ012-0038.npy +tests/data/ljspeech/wavs/LJ002-0128.wav|tests/data/ljspeech/wavs/LJ002-0128.npy +tests/data/ljspeech/wavs/LJ017-0104.wav|tests/data/ljspeech/wavs/LJ017-0104.npy +tests/data/ljspeech/wavs/LJ009-0100.wav|tests/data/ljspeech/wavs/LJ009-0100.npy +tests/data/ljspeech/wavs/LJ037-0023.wav|tests/data/ljspeech/wavs/LJ037-0023.npy +tests/data/ljspeech/wavs/LJ044-0101.wav|tests/data/ljspeech/wavs/LJ044-0101.npy +tests/data/ljspeech/wavs/LJ050-0269.wav|tests/data/ljspeech/wavs/LJ050-0269.npy +tests/data/ljspeech/wavs/LJ047-0246.wav|tests/data/ljspeech/wavs/LJ047-0246.npy +tests/data/ljspeech/wavs/LJ017-0175.wav|tests/data/ljspeech/wavs/LJ017-0175.npy +tests/data/ljspeech/wavs/LJ042-0151.wav|tests/data/ljspeech/wavs/LJ042-0151.npy +tests/data/ljspeech/wavs/LJ016-0354.wav|tests/data/ljspeech/wavs/LJ016-0354.npy +tests/data/ljspeech/wavs/LJ017-0022.wav|tests/data/ljspeech/wavs/LJ017-0022.npy +tests/data/ljspeech/wavs/LJ003-0310.wav|tests/data/ljspeech/wavs/LJ003-0310.npy +tests/data/ljspeech/wavs/LJ018-0210.wav|tests/data/ljspeech/wavs/LJ018-0210.npy +tests/data/ljspeech/wavs/LJ015-0300.wav|tests/data/ljspeech/wavs/LJ015-0300.npy +tests/data/ljspeech/wavs/LJ018-0097.wav|tests/data/ljspeech/wavs/LJ018-0097.npy +tests/data/ljspeech/wavs/LJ012-0037.wav|tests/data/ljspeech/wavs/LJ012-0037.npy +tests/data/ljspeech/wavs/LJ008-0208.wav|tests/data/ljspeech/wavs/LJ008-0208.npy +tests/data/ljspeech/wavs/LJ017-0178.wav|tests/data/ljspeech/wavs/LJ017-0178.npy +tests/data/ljspeech/wavs/LJ045-0236.wav|tests/data/ljspeech/wavs/LJ045-0236.npy +tests/data/ljspeech/wavs/LJ032-0038.wav|tests/data/ljspeech/wavs/LJ032-0038.npy +tests/data/ljspeech/wavs/LJ010-0034.wav|tests/data/ljspeech/wavs/LJ010-0034.npy +tests/data/ljspeech/wavs/LJ048-0237.wav|tests/data/ljspeech/wavs/LJ048-0237.npy +tests/data/ljspeech/wavs/LJ016-0205.wav|tests/data/ljspeech/wavs/LJ016-0205.npy +tests/data/ljspeech/wavs/LJ047-0035.wav|tests/data/ljspeech/wavs/LJ047-0035.npy +tests/data/ljspeech/wavs/LJ018-0238.wav|tests/data/ljspeech/wavs/LJ018-0238.npy +tests/data/ljspeech/wavs/LJ016-0001.wav|tests/data/ljspeech/wavs/LJ016-0001.npy +tests/data/ljspeech/wavs/LJ016-0135.wav|tests/data/ljspeech/wavs/LJ016-0135.npy +tests/data/ljspeech/wavs/LJ042-0096.wav|tests/data/ljspeech/wavs/LJ042-0096.npy +tests/data/ljspeech/wavs/LJ013-0146.wav|tests/data/ljspeech/wavs/LJ013-0146.npy +tests/data/ljspeech/wavs/LJ002-0205.wav|tests/data/ljspeech/wavs/LJ002-0205.npy +tests/data/ljspeech/wavs/LJ010-0071.wav|tests/data/ljspeech/wavs/LJ010-0071.npy +tests/data/ljspeech/wavs/LJ006-0194.wav|tests/data/ljspeech/wavs/LJ006-0194.npy +tests/data/ljspeech/wavs/LJ046-0041.wav|tests/data/ljspeech/wavs/LJ046-0041.npy +tests/data/ljspeech/wavs/LJ015-0312.wav|tests/data/ljspeech/wavs/LJ015-0312.npy +tests/data/ljspeech/wavs/LJ006-0156.wav|tests/data/ljspeech/wavs/LJ006-0156.npy +tests/data/ljspeech/wavs/LJ009-0004.wav|tests/data/ljspeech/wavs/LJ009-0004.npy +tests/data/ljspeech/wavs/LJ028-0183.wav|tests/data/ljspeech/wavs/LJ028-0183.npy +tests/data/ljspeech/wavs/LJ010-0295.wav|tests/data/ljspeech/wavs/LJ010-0295.npy +tests/data/ljspeech/wavs/LJ037-0100.wav|tests/data/ljspeech/wavs/LJ037-0100.npy +tests/data/ljspeech/wavs/LJ019-0008.wav|tests/data/ljspeech/wavs/LJ019-0008.npy +tests/data/ljspeech/wavs/LJ011-0174.wav|tests/data/ljspeech/wavs/LJ011-0174.npy +tests/data/ljspeech/wavs/LJ006-0266.wav|tests/data/ljspeech/wavs/LJ006-0266.npy +tests/data/ljspeech/wavs/LJ015-0313.wav|tests/data/ljspeech/wavs/LJ015-0313.npy +tests/data/ljspeech/wavs/LJ026-0110.wav|tests/data/ljspeech/wavs/LJ026-0110.npy +tests/data/ljspeech/wavs/LJ008-0252.wav|tests/data/ljspeech/wavs/LJ008-0252.npy +tests/data/ljspeech/wavs/LJ037-0093.wav|tests/data/ljspeech/wavs/LJ037-0093.npy +tests/data/ljspeech/wavs/LJ016-0122.wav|tests/data/ljspeech/wavs/LJ016-0122.npy +tests/data/ljspeech/wavs/LJ037-0181.wav|tests/data/ljspeech/wavs/LJ037-0181.npy +tests/data/ljspeech/wavs/LJ017-0228.wav|tests/data/ljspeech/wavs/LJ017-0228.npy +tests/data/ljspeech/wavs/LJ030-0017.wav|tests/data/ljspeech/wavs/LJ030-0017.npy +tests/data/ljspeech/wavs/LJ016-0030.wav|tests/data/ljspeech/wavs/LJ016-0030.npy +tests/data/ljspeech/wavs/LJ027-0161.wav|tests/data/ljspeech/wavs/LJ027-0161.npy +tests/data/ljspeech/wavs/LJ011-0246.wav|tests/data/ljspeech/wavs/LJ011-0246.npy +tests/data/ljspeech/wavs/LJ044-0083.wav|tests/data/ljspeech/wavs/LJ044-0083.npy +tests/data/ljspeech/wavs/LJ050-0240.wav|tests/data/ljspeech/wavs/LJ050-0240.npy +tests/data/ljspeech/wavs/LJ032-0116.wav|tests/data/ljspeech/wavs/LJ032-0116.npy +tests/data/ljspeech/wavs/LJ014-0209.wav|tests/data/ljspeech/wavs/LJ014-0209.npy +tests/data/ljspeech/wavs/LJ030-0025.wav|tests/data/ljspeech/wavs/LJ030-0025.npy +tests/data/ljspeech/wavs/LJ012-0149.wav|tests/data/ljspeech/wavs/LJ012-0149.npy +tests/data/ljspeech/wavs/LJ011-0242.wav|tests/data/ljspeech/wavs/LJ011-0242.npy +tests/data/ljspeech/wavs/LJ028-0051.wav|tests/data/ljspeech/wavs/LJ028-0051.npy +tests/data/ljspeech/wavs/LJ024-0106.wav|tests/data/ljspeech/wavs/LJ024-0106.npy +tests/data/ljspeech/wavs/LJ014-0172.wav|tests/data/ljspeech/wavs/LJ014-0172.npy +tests/data/ljspeech/wavs/LJ023-0092.wav|tests/data/ljspeech/wavs/LJ023-0092.npy +tests/data/ljspeech/wavs/LJ015-0083.wav|tests/data/ljspeech/wavs/LJ015-0083.npy +tests/data/ljspeech/wavs/LJ030-0253.wav|tests/data/ljspeech/wavs/LJ030-0253.npy +tests/data/ljspeech/wavs/LJ014-0236.wav|tests/data/ljspeech/wavs/LJ014-0236.npy +tests/data/ljspeech/wavs/LJ016-0245.wav|tests/data/ljspeech/wavs/LJ016-0245.npy +tests/data/ljspeech/wavs/LJ009-0222.wav|tests/data/ljspeech/wavs/LJ009-0222.npy +tests/data/ljspeech/wavs/LJ015-0024.wav|tests/data/ljspeech/wavs/LJ015-0024.npy +tests/data/ljspeech/wavs/LJ002-0075.wav|tests/data/ljspeech/wavs/LJ002-0075.npy +tests/data/ljspeech/wavs/LJ046-0224.wav|tests/data/ljspeech/wavs/LJ046-0224.npy +tests/data/ljspeech/wavs/LJ032-0030.wav|tests/data/ljspeech/wavs/LJ032-0030.npy +tests/data/ljspeech/wavs/LJ015-0075.wav|tests/data/ljspeech/wavs/LJ015-0075.npy +tests/data/ljspeech/wavs/LJ014-0221.wav|tests/data/ljspeech/wavs/LJ014-0221.npy +tests/data/ljspeech/wavs/LJ035-0036.wav|tests/data/ljspeech/wavs/LJ035-0036.npy +tests/data/ljspeech/wavs/LJ015-0256.wav|tests/data/ljspeech/wavs/LJ015-0256.npy +tests/data/ljspeech/wavs/LJ044-0081.wav|tests/data/ljspeech/wavs/LJ044-0081.npy +tests/data/ljspeech/wavs/LJ045-0011.wav|tests/data/ljspeech/wavs/LJ045-0011.npy +tests/data/ljspeech/wavs/LJ048-0128.wav|tests/data/ljspeech/wavs/LJ048-0128.npy +tests/data/ljspeech/wavs/LJ009-0198.wav|tests/data/ljspeech/wavs/LJ009-0198.npy +tests/data/ljspeech/wavs/LJ038-0147.wav|tests/data/ljspeech/wavs/LJ038-0147.npy +tests/data/ljspeech/wavs/LJ018-0249.wav|tests/data/ljspeech/wavs/LJ018-0249.npy +tests/data/ljspeech/wavs/LJ033-0072.wav|tests/data/ljspeech/wavs/LJ033-0072.npy +tests/data/ljspeech/wavs/LJ006-0304.wav|tests/data/ljspeech/wavs/LJ006-0304.npy +tests/data/ljspeech/wavs/LJ050-0056.wav|tests/data/ljspeech/wavs/LJ050-0056.npy +tests/data/ljspeech/wavs/LJ002-0022.wav|tests/data/ljspeech/wavs/LJ002-0022.npy +tests/data/ljspeech/wavs/LJ032-0028.wav|tests/data/ljspeech/wavs/LJ032-0028.npy +tests/data/ljspeech/wavs/LJ041-0081.wav|tests/data/ljspeech/wavs/LJ041-0081.npy +tests/data/ljspeech/wavs/LJ039-0071.wav|tests/data/ljspeech/wavs/LJ039-0071.npy +tests/data/ljspeech/wavs/LJ009-0189.wav|tests/data/ljspeech/wavs/LJ009-0189.npy +tests/data/ljspeech/wavs/LJ039-0050.wav|tests/data/ljspeech/wavs/LJ039-0050.npy +tests/data/ljspeech/wavs/LJ005-0072.wav|tests/data/ljspeech/wavs/LJ005-0072.npy +tests/data/ljspeech/wavs/LJ029-0143.wav|tests/data/ljspeech/wavs/LJ029-0143.npy +tests/data/ljspeech/wavs/LJ019-0173.wav|tests/data/ljspeech/wavs/LJ019-0173.npy +tests/data/ljspeech/wavs/LJ006-0262.wav|tests/data/ljspeech/wavs/LJ006-0262.npy +tests/data/ljspeech/wavs/LJ030-0207.wav|tests/data/ljspeech/wavs/LJ030-0207.npy +tests/data/ljspeech/wavs/LJ042-0093.wav|tests/data/ljspeech/wavs/LJ042-0093.npy +tests/data/ljspeech/wavs/LJ019-0182.wav|tests/data/ljspeech/wavs/LJ019-0182.npy +tests/data/ljspeech/wavs/LJ005-0196.wav|tests/data/ljspeech/wavs/LJ005-0196.npy +tests/data/ljspeech/wavs/LJ014-0225.wav|tests/data/ljspeech/wavs/LJ014-0225.npy +tests/data/ljspeech/wavs/LJ049-0112.wav|tests/data/ljspeech/wavs/LJ049-0112.npy +tests/data/ljspeech/wavs/LJ042-0215.wav|tests/data/ljspeech/wavs/LJ042-0215.npy +tests/data/ljspeech/wavs/LJ038-0185.wav|tests/data/ljspeech/wavs/LJ038-0185.npy +tests/data/ljspeech/wavs/LJ042-0229.wav|tests/data/ljspeech/wavs/LJ042-0229.npy +tests/data/ljspeech/wavs/LJ015-0128.wav|tests/data/ljspeech/wavs/LJ015-0128.npy +tests/data/ljspeech/wavs/LJ026-0042.wav|tests/data/ljspeech/wavs/LJ026-0042.npy +tests/data/ljspeech/wavs/LJ014-0310.wav|tests/data/ljspeech/wavs/LJ014-0310.npy +tests/data/ljspeech/wavs/LJ009-0200.wav|tests/data/ljspeech/wavs/LJ009-0200.npy +tests/data/ljspeech/wavs/LJ025-0021.wav|tests/data/ljspeech/wavs/LJ025-0021.npy +tests/data/ljspeech/wavs/LJ028-0456.wav|tests/data/ljspeech/wavs/LJ028-0456.npy +tests/data/ljspeech/wavs/LJ028-0117.wav|tests/data/ljspeech/wavs/LJ028-0117.npy +tests/data/ljspeech/wavs/LJ028-0163.wav|tests/data/ljspeech/wavs/LJ028-0163.npy +tests/data/ljspeech/wavs/LJ004-0213.wav|tests/data/ljspeech/wavs/LJ004-0213.npy +tests/data/ljspeech/wavs/LJ012-0126.wav|tests/data/ljspeech/wavs/LJ012-0126.npy +tests/data/ljspeech/wavs/LJ024-0095.wav|tests/data/ljspeech/wavs/LJ024-0095.npy +tests/data/ljspeech/wavs/LJ015-0048.wav|tests/data/ljspeech/wavs/LJ015-0048.npy +tests/data/ljspeech/wavs/LJ010-0153.wav|tests/data/ljspeech/wavs/LJ010-0153.npy +tests/data/ljspeech/wavs/LJ001-0031.wav|tests/data/ljspeech/wavs/LJ001-0031.npy +tests/data/ljspeech/wavs/LJ005-0191.wav|tests/data/ljspeech/wavs/LJ005-0191.npy +tests/data/ljspeech/wavs/LJ038-0042.wav|tests/data/ljspeech/wavs/LJ038-0042.npy +tests/data/ljspeech/wavs/LJ041-0176.wav|tests/data/ljspeech/wavs/LJ041-0176.npy +tests/data/ljspeech/wavs/LJ007-0164.wav|tests/data/ljspeech/wavs/LJ007-0164.npy +tests/data/ljspeech/wavs/LJ027-0030.wav|tests/data/ljspeech/wavs/LJ027-0030.npy +tests/data/ljspeech/wavs/LJ027-0164.wav|tests/data/ljspeech/wavs/LJ027-0164.npy +tests/data/ljspeech/wavs/LJ016-0346.wav|tests/data/ljspeech/wavs/LJ016-0346.npy +tests/data/ljspeech/wavs/LJ021-0157.wav|tests/data/ljspeech/wavs/LJ021-0157.npy +tests/data/ljspeech/wavs/LJ007-0159.wav|tests/data/ljspeech/wavs/LJ007-0159.npy +tests/data/ljspeech/wavs/LJ019-0296.wav|tests/data/ljspeech/wavs/LJ019-0296.npy +tests/data/ljspeech/wavs/LJ019-0220.wav|tests/data/ljspeech/wavs/LJ019-0220.npy +tests/data/ljspeech/wavs/LJ002-0324.wav|tests/data/ljspeech/wavs/LJ002-0324.npy +tests/data/ljspeech/wavs/LJ026-0156.wav|tests/data/ljspeech/wavs/LJ026-0156.npy +tests/data/ljspeech/wavs/LJ050-0130.wav|tests/data/ljspeech/wavs/LJ050-0130.npy +tests/data/ljspeech/wavs/LJ037-0047.wav|tests/data/ljspeech/wavs/LJ037-0047.npy +tests/data/ljspeech/wavs/LJ031-0138.wav|tests/data/ljspeech/wavs/LJ031-0138.npy +tests/data/ljspeech/wavs/LJ019-0252.wav|tests/data/ljspeech/wavs/LJ019-0252.npy +tests/data/ljspeech/wavs/LJ050-0117.wav|tests/data/ljspeech/wavs/LJ050-0117.npy +tests/data/ljspeech/wavs/LJ028-0172.wav|tests/data/ljspeech/wavs/LJ028-0172.npy +tests/data/ljspeech/wavs/LJ033-0211.wav|tests/data/ljspeech/wavs/LJ033-0211.npy +tests/data/ljspeech/wavs/LJ013-0200.wav|tests/data/ljspeech/wavs/LJ013-0200.npy +tests/data/ljspeech/wavs/LJ010-0092.wav|tests/data/ljspeech/wavs/LJ010-0092.npy +tests/data/ljspeech/wavs/LJ010-0105.wav|tests/data/ljspeech/wavs/LJ010-0105.npy +tests/data/ljspeech/wavs/LJ014-0223.wav|tests/data/ljspeech/wavs/LJ014-0223.npy +tests/data/ljspeech/wavs/LJ015-0016.wav|tests/data/ljspeech/wavs/LJ015-0016.npy +tests/data/ljspeech/wavs/LJ034-0130.wav|tests/data/ljspeech/wavs/LJ034-0130.npy +tests/data/ljspeech/wavs/LJ012-0176.wav|tests/data/ljspeech/wavs/LJ012-0176.npy +tests/data/ljspeech/wavs/LJ006-0059.wav|tests/data/ljspeech/wavs/LJ006-0059.npy +tests/data/ljspeech/wavs/LJ035-0142.wav|tests/data/ljspeech/wavs/LJ035-0142.npy +tests/data/ljspeech/wavs/LJ014-0264.wav|tests/data/ljspeech/wavs/LJ014-0264.npy +tests/data/ljspeech/wavs/LJ043-0036.wav|tests/data/ljspeech/wavs/LJ043-0036.npy +tests/data/ljspeech/wavs/LJ044-0120.wav|tests/data/ljspeech/wavs/LJ044-0120.npy +tests/data/ljspeech/wavs/LJ014-0301.wav|tests/data/ljspeech/wavs/LJ014-0301.npy +tests/data/ljspeech/wavs/LJ021-0001.wav|tests/data/ljspeech/wavs/LJ021-0001.npy +tests/data/ljspeech/wavs/LJ023-0001.wav|tests/data/ljspeech/wavs/LJ023-0001.npy +tests/data/ljspeech/wavs/LJ022-0145.wav|tests/data/ljspeech/wavs/LJ022-0145.npy +tests/data/ljspeech/wavs/LJ023-0115.wav|tests/data/ljspeech/wavs/LJ023-0115.npy +tests/data/ljspeech/wavs/LJ025-0048.wav|tests/data/ljspeech/wavs/LJ025-0048.npy +tests/data/ljspeech/wavs/LJ023-0042.wav|tests/data/ljspeech/wavs/LJ023-0042.npy +tests/data/ljspeech/wavs/LJ049-0046.wav|tests/data/ljspeech/wavs/LJ049-0046.npy +tests/data/ljspeech/wavs/LJ050-0112.wav|tests/data/ljspeech/wavs/LJ050-0112.npy +tests/data/ljspeech/wavs/LJ036-0016.wav|tests/data/ljspeech/wavs/LJ036-0016.npy +tests/data/ljspeech/wavs/LJ033-0209.wav|tests/data/ljspeech/wavs/LJ033-0209.npy +tests/data/ljspeech/wavs/LJ010-0155.wav|tests/data/ljspeech/wavs/LJ010-0155.npy +tests/data/ljspeech/wavs/LJ007-0218.wav|tests/data/ljspeech/wavs/LJ007-0218.npy +tests/data/ljspeech/wavs/LJ035-0197.wav|tests/data/ljspeech/wavs/LJ035-0197.npy +tests/data/ljspeech/wavs/LJ011-0175.wav|tests/data/ljspeech/wavs/LJ011-0175.npy +tests/data/ljspeech/wavs/LJ038-0123.wav|tests/data/ljspeech/wavs/LJ038-0123.npy +tests/data/ljspeech/wavs/LJ040-0079.wav|tests/data/ljspeech/wavs/LJ040-0079.npy +tests/data/ljspeech/wavs/LJ014-0322.wav|tests/data/ljspeech/wavs/LJ014-0322.npy +tests/data/ljspeech/wavs/LJ035-0027.wav|tests/data/ljspeech/wavs/LJ035-0027.npy +tests/data/ljspeech/wavs/LJ013-0132.wav|tests/data/ljspeech/wavs/LJ013-0132.npy +tests/data/ljspeech/wavs/LJ035-0181.wav|tests/data/ljspeech/wavs/LJ035-0181.npy +tests/data/ljspeech/wavs/LJ010-0221.wav|tests/data/ljspeech/wavs/LJ010-0221.npy +tests/data/ljspeech/wavs/LJ050-0133.wav|tests/data/ljspeech/wavs/LJ050-0133.npy +tests/data/ljspeech/wavs/LJ012-0105.wav|tests/data/ljspeech/wavs/LJ012-0105.npy +tests/data/ljspeech/wavs/LJ028-0204.wav|tests/data/ljspeech/wavs/LJ028-0204.npy +tests/data/ljspeech/wavs/LJ003-0147.wav|tests/data/ljspeech/wavs/LJ003-0147.npy +tests/data/ljspeech/wavs/LJ031-0081.wav|tests/data/ljspeech/wavs/LJ031-0081.npy +tests/data/ljspeech/wavs/LJ008-0147.wav|tests/data/ljspeech/wavs/LJ008-0147.npy +tests/data/ljspeech/wavs/LJ011-0273.wav|tests/data/ljspeech/wavs/LJ011-0273.npy +tests/data/ljspeech/wavs/LJ015-0163.wav|tests/data/ljspeech/wavs/LJ015-0163.npy +tests/data/ljspeech/wavs/LJ042-0073.wav|tests/data/ljspeech/wavs/LJ042-0073.npy +tests/data/ljspeech/wavs/LJ026-0145.wav|tests/data/ljspeech/wavs/LJ026-0145.npy +tests/data/ljspeech/wavs/LJ040-0030.wav|tests/data/ljspeech/wavs/LJ040-0030.npy +tests/data/ljspeech/wavs/LJ023-0043.wav|tests/data/ljspeech/wavs/LJ023-0043.npy +tests/data/ljspeech/wavs/LJ022-0069.wav|tests/data/ljspeech/wavs/LJ022-0069.npy +tests/data/ljspeech/wavs/LJ025-0040.wav|tests/data/ljspeech/wavs/LJ025-0040.npy +tests/data/ljspeech/wavs/LJ035-0050.wav|tests/data/ljspeech/wavs/LJ035-0050.npy +tests/data/ljspeech/wavs/LJ039-0161.wav|tests/data/ljspeech/wavs/LJ039-0161.npy +tests/data/ljspeech/wavs/LJ047-0119.wav|tests/data/ljspeech/wavs/LJ047-0119.npy +tests/data/ljspeech/wavs/LJ042-0167.wav|tests/data/ljspeech/wavs/LJ042-0167.npy +tests/data/ljspeech/wavs/LJ013-0089.wav|tests/data/ljspeech/wavs/LJ013-0089.npy +tests/data/ljspeech/wavs/LJ005-0151.wav|tests/data/ljspeech/wavs/LJ005-0151.npy +tests/data/ljspeech/wavs/LJ023-0056.wav|tests/data/ljspeech/wavs/LJ023-0056.npy +tests/data/ljspeech/wavs/LJ035-0095.wav|tests/data/ljspeech/wavs/LJ035-0095.npy +tests/data/ljspeech/wavs/LJ015-0144.wav|tests/data/ljspeech/wavs/LJ015-0144.npy +tests/data/ljspeech/wavs/LJ049-0157.wav|tests/data/ljspeech/wavs/LJ049-0157.npy +tests/data/ljspeech/wavs/LJ019-0032.wav|tests/data/ljspeech/wavs/LJ019-0032.npy +tests/data/ljspeech/wavs/LJ025-0141.wav|tests/data/ljspeech/wavs/LJ025-0141.npy +tests/data/ljspeech/wavs/LJ047-0033.wav|tests/data/ljspeech/wavs/LJ047-0033.npy +tests/data/ljspeech/wavs/LJ016-0236.wav|tests/data/ljspeech/wavs/LJ016-0236.npy +tests/data/ljspeech/wavs/LJ050-0080.wav|tests/data/ljspeech/wavs/LJ050-0080.npy +tests/data/ljspeech/wavs/LJ015-0169.wav|tests/data/ljspeech/wavs/LJ015-0169.npy +tests/data/ljspeech/wavs/LJ016-0219.wav|tests/data/ljspeech/wavs/LJ016-0219.npy +tests/data/ljspeech/wavs/LJ028-0429.wav|tests/data/ljspeech/wavs/LJ028-0429.npy +tests/data/ljspeech/wavs/LJ048-0203.wav|tests/data/ljspeech/wavs/LJ048-0203.npy +tests/data/ljspeech/wavs/LJ024-0124.wav|tests/data/ljspeech/wavs/LJ024-0124.npy +tests/data/ljspeech/wavs/LJ016-0166.wav|tests/data/ljspeech/wavs/LJ016-0166.npy +tests/data/ljspeech/wavs/LJ019-0175.wav|tests/data/ljspeech/wavs/LJ019-0175.npy +tests/data/ljspeech/wavs/LJ009-0146.wav|tests/data/ljspeech/wavs/LJ009-0146.npy +tests/data/ljspeech/wavs/LJ008-0007.wav|tests/data/ljspeech/wavs/LJ008-0007.npy +tests/data/ljspeech/wavs/LJ017-0020.wav|tests/data/ljspeech/wavs/LJ017-0020.npy +tests/data/ljspeech/wavs/LJ028-0241.wav|tests/data/ljspeech/wavs/LJ028-0241.npy +tests/data/ljspeech/wavs/LJ037-0204.wav|tests/data/ljspeech/wavs/LJ037-0204.npy +tests/data/ljspeech/wavs/LJ018-0315.wav|tests/data/ljspeech/wavs/LJ018-0315.npy +tests/data/ljspeech/wavs/LJ038-0305.wav|tests/data/ljspeech/wavs/LJ038-0305.npy +tests/data/ljspeech/wavs/LJ036-0098.wav|tests/data/ljspeech/wavs/LJ036-0098.npy +tests/data/ljspeech/wavs/LJ022-0001.wav|tests/data/ljspeech/wavs/LJ022-0001.npy +tests/data/ljspeech/wavs/LJ017-0083.wav|tests/data/ljspeech/wavs/LJ017-0083.npy +tests/data/ljspeech/wavs/LJ016-0254.wav|tests/data/ljspeech/wavs/LJ016-0254.npy +tests/data/ljspeech/wavs/LJ006-0213.wav|tests/data/ljspeech/wavs/LJ006-0213.npy +tests/data/ljspeech/wavs/LJ025-0086.wav|tests/data/ljspeech/wavs/LJ025-0086.npy +tests/data/ljspeech/wavs/LJ031-0087.wav|tests/data/ljspeech/wavs/LJ031-0087.npy +tests/data/ljspeech/wavs/LJ044-0178.wav|tests/data/ljspeech/wavs/LJ044-0178.npy +tests/data/ljspeech/wavs/LJ043-0083.wav|tests/data/ljspeech/wavs/LJ043-0083.npy +tests/data/ljspeech/wavs/LJ048-0024.wav|tests/data/ljspeech/wavs/LJ048-0024.npy +tests/data/ljspeech/wavs/LJ043-0148.wav|tests/data/ljspeech/wavs/LJ043-0148.npy +tests/data/ljspeech/wavs/LJ019-0161.wav|tests/data/ljspeech/wavs/LJ019-0161.npy +tests/data/ljspeech/wavs/LJ029-0131.wav|tests/data/ljspeech/wavs/LJ029-0131.npy +tests/data/ljspeech/wavs/LJ045-0152.wav|tests/data/ljspeech/wavs/LJ045-0152.npy +tests/data/ljspeech/wavs/LJ028-0007.wav|tests/data/ljspeech/wavs/LJ028-0007.npy +tests/data/ljspeech/wavs/LJ018-0006.wav|tests/data/ljspeech/wavs/LJ018-0006.npy +tests/data/ljspeech/wavs/LJ008-0065.wav|tests/data/ljspeech/wavs/LJ008-0065.npy +tests/data/ljspeech/wavs/LJ018-0136.wav|tests/data/ljspeech/wavs/LJ018-0136.npy +tests/data/ljspeech/wavs/LJ033-0133.wav|tests/data/ljspeech/wavs/LJ033-0133.npy +tests/data/ljspeech/wavs/LJ037-0117.wav|tests/data/ljspeech/wavs/LJ037-0117.npy +tests/data/ljspeech/wavs/LJ040-0214.wav|tests/data/ljspeech/wavs/LJ040-0214.npy +tests/data/ljspeech/wavs/LJ022-0067.wav|tests/data/ljspeech/wavs/LJ022-0067.npy +tests/data/ljspeech/wavs/LJ023-0124.wav|tests/data/ljspeech/wavs/LJ023-0124.npy +tests/data/ljspeech/wavs/LJ011-0196.wav|tests/data/ljspeech/wavs/LJ011-0196.npy +tests/data/ljspeech/wavs/LJ017-0136.wav|tests/data/ljspeech/wavs/LJ017-0136.npy +tests/data/ljspeech/wavs/LJ022-0010.wav|tests/data/ljspeech/wavs/LJ022-0010.npy +tests/data/ljspeech/wavs/LJ004-0210.wav|tests/data/ljspeech/wavs/LJ004-0210.npy +tests/data/ljspeech/wavs/LJ021-0027.wav|tests/data/ljspeech/wavs/LJ021-0027.npy +tests/data/ljspeech/wavs/LJ035-0166.wav|tests/data/ljspeech/wavs/LJ035-0166.npy +tests/data/ljspeech/wavs/LJ032-0089.wav|tests/data/ljspeech/wavs/LJ032-0089.npy +tests/data/ljspeech/wavs/LJ031-0023.wav|tests/data/ljspeech/wavs/LJ031-0023.npy +tests/data/ljspeech/wavs/LJ019-0307.wav|tests/data/ljspeech/wavs/LJ019-0307.npy +tests/data/ljspeech/wavs/LJ032-0086.wav|tests/data/ljspeech/wavs/LJ032-0086.npy +tests/data/ljspeech/wavs/LJ036-0160.wav|tests/data/ljspeech/wavs/LJ036-0160.npy +tests/data/ljspeech/wavs/LJ032-0087.wav|tests/data/ljspeech/wavs/LJ032-0087.npy +tests/data/ljspeech/wavs/LJ030-0063.wav|tests/data/ljspeech/wavs/LJ030-0063.npy +tests/data/ljspeech/wavs/LJ028-0273.wav|tests/data/ljspeech/wavs/LJ028-0273.npy +tests/data/ljspeech/wavs/LJ022-0061.wav|tests/data/ljspeech/wavs/LJ022-0061.npy +tests/data/ljspeech/wavs/LJ036-0075.wav|tests/data/ljspeech/wavs/LJ036-0075.npy +tests/data/ljspeech/wavs/LJ028-0034.wav|tests/data/ljspeech/wavs/LJ028-0034.npy +tests/data/ljspeech/wavs/LJ042-0082.wav|tests/data/ljspeech/wavs/LJ042-0082.npy +tests/data/ljspeech/wavs/LJ018-0295.wav|tests/data/ljspeech/wavs/LJ018-0295.npy +tests/data/ljspeech/wavs/LJ028-0371.wav|tests/data/ljspeech/wavs/LJ028-0371.npy +tests/data/ljspeech/wavs/LJ004-0176.wav|tests/data/ljspeech/wavs/LJ004-0176.npy +tests/data/ljspeech/wavs/LJ048-0282.wav|tests/data/ljspeech/wavs/LJ048-0282.npy +tests/data/ljspeech/wavs/LJ014-0262.wav|tests/data/ljspeech/wavs/LJ014-0262.npy +tests/data/ljspeech/wavs/LJ031-0083.wav|tests/data/ljspeech/wavs/LJ031-0083.npy +tests/data/ljspeech/wavs/LJ050-0014.wav|tests/data/ljspeech/wavs/LJ050-0014.npy +tests/data/ljspeech/wavs/LJ035-0112.wav|tests/data/ljspeech/wavs/LJ035-0112.npy +tests/data/ljspeech/wavs/LJ020-0014.wav|tests/data/ljspeech/wavs/LJ020-0014.npy +tests/data/ljspeech/wavs/LJ019-0330.wav|tests/data/ljspeech/wavs/LJ019-0330.npy +tests/data/ljspeech/wavs/LJ011-0179.wav|tests/data/ljspeech/wavs/LJ011-0179.npy +tests/data/ljspeech/wavs/LJ028-0468.wav|tests/data/ljspeech/wavs/LJ028-0468.npy +tests/data/ljspeech/wavs/LJ050-0007.wav|tests/data/ljspeech/wavs/LJ050-0007.npy +tests/data/ljspeech/wavs/LJ005-0183.wav|tests/data/ljspeech/wavs/LJ005-0183.npy +tests/data/ljspeech/wavs/LJ020-0051.wav|tests/data/ljspeech/wavs/LJ020-0051.npy +tests/data/ljspeech/wavs/LJ025-0116.wav|tests/data/ljspeech/wavs/LJ025-0116.npy +tests/data/ljspeech/wavs/LJ010-0163.wav|tests/data/ljspeech/wavs/LJ010-0163.npy +tests/data/ljspeech/wavs/LJ010-0309.wav|tests/data/ljspeech/wavs/LJ010-0309.npy +tests/data/ljspeech/wavs/LJ016-0201.wav|tests/data/ljspeech/wavs/LJ016-0201.npy +tests/data/ljspeech/wavs/LJ030-0181.wav|tests/data/ljspeech/wavs/LJ030-0181.npy +tests/data/ljspeech/wavs/LJ031-0009.wav|tests/data/ljspeech/wavs/LJ031-0009.npy +tests/data/ljspeech/wavs/LJ046-0183.wav|tests/data/ljspeech/wavs/LJ046-0183.npy +tests/data/ljspeech/wavs/LJ010-0047.wav|tests/data/ljspeech/wavs/LJ010-0047.npy +tests/data/ljspeech/wavs/LJ027-0071.wav|tests/data/ljspeech/wavs/LJ027-0071.npy +tests/data/ljspeech/wavs/LJ018-0051.wav|tests/data/ljspeech/wavs/LJ018-0051.npy +tests/data/ljspeech/wavs/LJ036-0050.wav|tests/data/ljspeech/wavs/LJ036-0050.npy +tests/data/ljspeech/wavs/LJ040-0207.wav|tests/data/ljspeech/wavs/LJ040-0207.npy +tests/data/ljspeech/wavs/LJ019-0006.wav|tests/data/ljspeech/wavs/LJ019-0006.npy +tests/data/ljspeech/wavs/LJ014-0176.wav|tests/data/ljspeech/wavs/LJ014-0176.npy +tests/data/ljspeech/wavs/LJ047-0235.wav|tests/data/ljspeech/wavs/LJ047-0235.npy +tests/data/ljspeech/wavs/LJ006-0187.wav|tests/data/ljspeech/wavs/LJ006-0187.npy +tests/data/ljspeech/wavs/LJ035-0009.wav|tests/data/ljspeech/wavs/LJ035-0009.npy +tests/data/ljspeech/wavs/LJ036-0213.wav|tests/data/ljspeech/wavs/LJ036-0213.npy +tests/data/ljspeech/wavs/LJ043-0114.wav|tests/data/ljspeech/wavs/LJ043-0114.npy +tests/data/ljspeech/wavs/LJ008-0080.wav|tests/data/ljspeech/wavs/LJ008-0080.npy +tests/data/ljspeech/wavs/LJ016-0383.wav|tests/data/ljspeech/wavs/LJ016-0383.npy +tests/data/ljspeech/wavs/LJ017-0214.wav|tests/data/ljspeech/wavs/LJ017-0214.npy +tests/data/ljspeech/wavs/LJ028-0317.wav|tests/data/ljspeech/wavs/LJ028-0317.npy +tests/data/ljspeech/wavs/LJ028-0297.wav|tests/data/ljspeech/wavs/LJ028-0297.npy +tests/data/ljspeech/wavs/LJ014-0107.wav|tests/data/ljspeech/wavs/LJ014-0107.npy +tests/data/ljspeech/wavs/LJ032-0010.wav|tests/data/ljspeech/wavs/LJ032-0010.npy +tests/data/ljspeech/wavs/LJ022-0125.wav|tests/data/ljspeech/wavs/LJ022-0125.npy +tests/data/ljspeech/wavs/LJ006-0078.wav|tests/data/ljspeech/wavs/LJ006-0078.npy +tests/data/ljspeech/wavs/LJ003-0216.wav|tests/data/ljspeech/wavs/LJ003-0216.npy +tests/data/ljspeech/wavs/LJ007-0127.wav|tests/data/ljspeech/wavs/LJ007-0127.npy +tests/data/ljspeech/wavs/LJ030-0224.wav|tests/data/ljspeech/wavs/LJ030-0224.npy +tests/data/ljspeech/wavs/LJ028-0142.wav|tests/data/ljspeech/wavs/LJ028-0142.npy +tests/data/ljspeech/wavs/LJ033-0048.wav|tests/data/ljspeech/wavs/LJ033-0048.npy +tests/data/ljspeech/wavs/LJ003-0345.wav|tests/data/ljspeech/wavs/LJ003-0345.npy +tests/data/ljspeech/wavs/LJ019-0100.wav|tests/data/ljspeech/wavs/LJ019-0100.npy +tests/data/ljspeech/wavs/LJ016-0400.wav|tests/data/ljspeech/wavs/LJ016-0400.npy +tests/data/ljspeech/wavs/LJ028-0004.wav|tests/data/ljspeech/wavs/LJ028-0004.npy +tests/data/ljspeech/wavs/LJ044-0175.wav|tests/data/ljspeech/wavs/LJ044-0175.npy +tests/data/ljspeech/wavs/LJ046-0021.wav|tests/data/ljspeech/wavs/LJ046-0021.npy +tests/data/ljspeech/wavs/LJ037-0185.wav|tests/data/ljspeech/wavs/LJ037-0185.npy +tests/data/ljspeech/wavs/LJ034-0055.wav|tests/data/ljspeech/wavs/LJ034-0055.npy +tests/data/ljspeech/wavs/LJ044-0073.wav|tests/data/ljspeech/wavs/LJ044-0073.npy +tests/data/ljspeech/wavs/LJ027-0075.wav|tests/data/ljspeech/wavs/LJ027-0075.npy +tests/data/ljspeech/wavs/LJ019-0071.wav|tests/data/ljspeech/wavs/LJ019-0071.npy +tests/data/ljspeech/wavs/LJ025-0173.wav|tests/data/ljspeech/wavs/LJ025-0173.npy +tests/data/ljspeech/wavs/LJ035-0156.wav|tests/data/ljspeech/wavs/LJ035-0156.npy +tests/data/ljspeech/wavs/LJ019-0115.wav|tests/data/ljspeech/wavs/LJ019-0115.npy +tests/data/ljspeech/wavs/LJ032-0237.wav|tests/data/ljspeech/wavs/LJ032-0237.npy +tests/data/ljspeech/wavs/LJ021-0084.wav|tests/data/ljspeech/wavs/LJ021-0084.npy +tests/data/ljspeech/wavs/LJ032-0020.wav|tests/data/ljspeech/wavs/LJ032-0020.npy +tests/data/ljspeech/wavs/LJ043-0129.wav|tests/data/ljspeech/wavs/LJ043-0129.npy +tests/data/ljspeech/wavs/LJ010-0014.wav|tests/data/ljspeech/wavs/LJ010-0014.npy +tests/data/ljspeech/wavs/LJ015-0137.wav|tests/data/ljspeech/wavs/LJ015-0137.npy +tests/data/ljspeech/wavs/LJ019-0286.wav|tests/data/ljspeech/wavs/LJ019-0286.npy +tests/data/ljspeech/wavs/LJ003-0324.wav|tests/data/ljspeech/wavs/LJ003-0324.npy +tests/data/ljspeech/wavs/LJ030-0237.wav|tests/data/ljspeech/wavs/LJ030-0237.npy +tests/data/ljspeech/wavs/LJ046-0010.wav|tests/data/ljspeech/wavs/LJ046-0010.npy +tests/data/ljspeech/wavs/LJ002-0300.wav|tests/data/ljspeech/wavs/LJ002-0300.npy +tests/data/ljspeech/wavs/LJ013-0182.wav|tests/data/ljspeech/wavs/LJ013-0182.npy +tests/data/ljspeech/wavs/LJ006-0055.wav|tests/data/ljspeech/wavs/LJ006-0055.npy +tests/data/ljspeech/wavs/LJ015-0188.wav|tests/data/ljspeech/wavs/LJ015-0188.npy +tests/data/ljspeech/wavs/LJ049-0161.wav|tests/data/ljspeech/wavs/LJ049-0161.npy +tests/data/ljspeech/wavs/LJ017-0276.wav|tests/data/ljspeech/wavs/LJ017-0276.npy +tests/data/ljspeech/wavs/LJ001-0113.wav|tests/data/ljspeech/wavs/LJ001-0113.npy +tests/data/ljspeech/wavs/LJ044-0150.wav|tests/data/ljspeech/wavs/LJ044-0150.npy +tests/data/ljspeech/wavs/LJ014-0099.wav|tests/data/ljspeech/wavs/LJ014-0099.npy +tests/data/ljspeech/wavs/LJ028-0514.wav|tests/data/ljspeech/wavs/LJ028-0514.npy +tests/data/ljspeech/wavs/LJ028-0104.wav|tests/data/ljspeech/wavs/LJ028-0104.npy +tests/data/ljspeech/wavs/LJ003-0064.wav|tests/data/ljspeech/wavs/LJ003-0064.npy +tests/data/ljspeech/wavs/LJ002-0013.wav|tests/data/ljspeech/wavs/LJ002-0013.npy +tests/data/ljspeech/wavs/LJ040-0235.wav|tests/data/ljspeech/wavs/LJ040-0235.npy +tests/data/ljspeech/wavs/LJ039-0135.wav|tests/data/ljspeech/wavs/LJ039-0135.npy +tests/data/ljspeech/wavs/LJ014-0233.wav|tests/data/ljspeech/wavs/LJ014-0233.npy +tests/data/ljspeech/wavs/LJ048-0073.wav|tests/data/ljspeech/wavs/LJ048-0073.npy +tests/data/ljspeech/wavs/LJ036-0196.wav|tests/data/ljspeech/wavs/LJ036-0196.npy +tests/data/ljspeech/wavs/LJ047-0028.wav|tests/data/ljspeech/wavs/LJ047-0028.npy +tests/data/ljspeech/wavs/LJ031-0035.wav|tests/data/ljspeech/wavs/LJ031-0035.npy +tests/data/ljspeech/wavs/LJ046-0126.wav|tests/data/ljspeech/wavs/LJ046-0126.npy +tests/data/ljspeech/wavs/LJ018-0125.wav|tests/data/ljspeech/wavs/LJ018-0125.npy +tests/data/ljspeech/wavs/LJ026-0083.wav|tests/data/ljspeech/wavs/LJ026-0083.npy +tests/data/ljspeech/wavs/LJ018-0349.wav|tests/data/ljspeech/wavs/LJ018-0349.npy +tests/data/ljspeech/wavs/LJ042-0240.wav|tests/data/ljspeech/wavs/LJ042-0240.npy +tests/data/ljspeech/wavs/LJ022-0120.wav|tests/data/ljspeech/wavs/LJ022-0120.npy +tests/data/ljspeech/wavs/LJ030-0088.wav|tests/data/ljspeech/wavs/LJ030-0088.npy +tests/data/ljspeech/wavs/LJ047-0042.wav|tests/data/ljspeech/wavs/LJ047-0042.npy +tests/data/ljspeech/wavs/LJ039-0039.wav|tests/data/ljspeech/wavs/LJ039-0039.npy +tests/data/ljspeech/wavs/LJ042-0121.wav|tests/data/ljspeech/wavs/LJ042-0121.npy +tests/data/ljspeech/wavs/LJ011-0168.wav|tests/data/ljspeech/wavs/LJ011-0168.npy +tests/data/ljspeech/wavs/LJ028-0356.wav|tests/data/ljspeech/wavs/LJ028-0356.npy +tests/data/ljspeech/wavs/LJ028-0178.wav|tests/data/ljspeech/wavs/LJ028-0178.npy +tests/data/ljspeech/wavs/LJ018-0200.wav|tests/data/ljspeech/wavs/LJ018-0200.npy +tests/data/ljspeech/wavs/LJ016-0331.wav|tests/data/ljspeech/wavs/LJ016-0331.npy +tests/data/ljspeech/wavs/LJ019-0227.wav|tests/data/ljspeech/wavs/LJ019-0227.npy +tests/data/ljspeech/wavs/LJ007-0181.wav|tests/data/ljspeech/wavs/LJ007-0181.npy +tests/data/ljspeech/wavs/LJ034-0193.wav|tests/data/ljspeech/wavs/LJ034-0193.npy +tests/data/ljspeech/wavs/LJ026-0030.wav|tests/data/ljspeech/wavs/LJ026-0030.npy +tests/data/ljspeech/wavs/LJ018-0187.wav|tests/data/ljspeech/wavs/LJ018-0187.npy +tests/data/ljspeech/wavs/LJ041-0172.wav|tests/data/ljspeech/wavs/LJ041-0172.npy +tests/data/ljspeech/wavs/LJ003-0343.wav|tests/data/ljspeech/wavs/LJ003-0343.npy +tests/data/ljspeech/wavs/LJ009-0228.wav|tests/data/ljspeech/wavs/LJ009-0228.npy +tests/data/ljspeech/wavs/LJ001-0046.wav|tests/data/ljspeech/wavs/LJ001-0046.npy +tests/data/ljspeech/wavs/LJ030-0196.wav|tests/data/ljspeech/wavs/LJ030-0196.npy +tests/data/ljspeech/wavs/LJ036-0017.wav|tests/data/ljspeech/wavs/LJ036-0017.npy +tests/data/ljspeech/wavs/LJ034-0196.wav|tests/data/ljspeech/wavs/LJ034-0196.npy +tests/data/ljspeech/wavs/LJ026-0120.wav|tests/data/ljspeech/wavs/LJ026-0120.npy +tests/data/ljspeech/wavs/LJ002-0081.wav|tests/data/ljspeech/wavs/LJ002-0081.npy +tests/data/ljspeech/wavs/LJ037-0009.wav|tests/data/ljspeech/wavs/LJ037-0009.npy +tests/data/ljspeech/wavs/LJ014-0078.wav|tests/data/ljspeech/wavs/LJ014-0078.npy +tests/data/ljspeech/wavs/LJ026-0020.wav|tests/data/ljspeech/wavs/LJ026-0020.npy +tests/data/ljspeech/wavs/LJ033-0154.wav|tests/data/ljspeech/wavs/LJ033-0154.npy +tests/data/ljspeech/wavs/LJ016-0403.wav|tests/data/ljspeech/wavs/LJ016-0403.npy +tests/data/ljspeech/wavs/LJ011-0141.wav|tests/data/ljspeech/wavs/LJ011-0141.npy +tests/data/ljspeech/wavs/LJ010-0184.wav|tests/data/ljspeech/wavs/LJ010-0184.npy +tests/data/ljspeech/wavs/LJ011-0104.wav|tests/data/ljspeech/wavs/LJ011-0104.npy +tests/data/ljspeech/wavs/LJ001-0146.wav|tests/data/ljspeech/wavs/LJ001-0146.npy +tests/data/ljspeech/wavs/LJ010-0204.wav|tests/data/ljspeech/wavs/LJ010-0204.npy +tests/data/ljspeech/wavs/LJ036-0073.wav|tests/data/ljspeech/wavs/LJ036-0073.npy +tests/data/ljspeech/wavs/LJ018-0162.wav|tests/data/ljspeech/wavs/LJ018-0162.npy +tests/data/ljspeech/wavs/LJ034-0107.wav|tests/data/ljspeech/wavs/LJ034-0107.npy +tests/data/ljspeech/wavs/LJ045-0217.wav|tests/data/ljspeech/wavs/LJ045-0217.npy +tests/data/ljspeech/wavs/LJ008-0311.wav|tests/data/ljspeech/wavs/LJ008-0311.npy +tests/data/ljspeech/wavs/LJ032-0085.wav|tests/data/ljspeech/wavs/LJ032-0085.npy +tests/data/ljspeech/wavs/LJ012-0192.wav|tests/data/ljspeech/wavs/LJ012-0192.npy +tests/data/ljspeech/wavs/LJ035-0052.wav|tests/data/ljspeech/wavs/LJ035-0052.npy +tests/data/ljspeech/wavs/LJ014-0074.wav|tests/data/ljspeech/wavs/LJ014-0074.npy +tests/data/ljspeech/wavs/LJ041-0028.wav|tests/data/ljspeech/wavs/LJ041-0028.npy +tests/data/ljspeech/wavs/LJ005-0069.wav|tests/data/ljspeech/wavs/LJ005-0069.npy +tests/data/ljspeech/wavs/LJ007-0068.wav|tests/data/ljspeech/wavs/LJ007-0068.npy +tests/data/ljspeech/wavs/LJ016-0385.wav|tests/data/ljspeech/wavs/LJ016-0385.npy +tests/data/ljspeech/wavs/LJ028-0285.wav|tests/data/ljspeech/wavs/LJ028-0285.npy +tests/data/ljspeech/wavs/LJ013-0025.wav|tests/data/ljspeech/wavs/LJ013-0025.npy +tests/data/ljspeech/wavs/LJ018-0075.wav|tests/data/ljspeech/wavs/LJ018-0075.npy +tests/data/ljspeech/wavs/LJ003-0009.wav|tests/data/ljspeech/wavs/LJ003-0009.npy +tests/data/ljspeech/wavs/LJ010-0307.wav|tests/data/ljspeech/wavs/LJ010-0307.npy +tests/data/ljspeech/wavs/LJ039-0204.wav|tests/data/ljspeech/wavs/LJ039-0204.npy +tests/data/ljspeech/wavs/LJ041-0150.wav|tests/data/ljspeech/wavs/LJ041-0150.npy +tests/data/ljspeech/wavs/LJ039-0206.wav|tests/data/ljspeech/wavs/LJ039-0206.npy +tests/data/ljspeech/wavs/LJ043-0186.wav|tests/data/ljspeech/wavs/LJ043-0186.npy +tests/data/ljspeech/wavs/LJ050-0038.wav|tests/data/ljspeech/wavs/LJ050-0038.npy +tests/data/ljspeech/wavs/LJ047-0221.wav|tests/data/ljspeech/wavs/LJ047-0221.npy +tests/data/ljspeech/wavs/LJ023-0099.wav|tests/data/ljspeech/wavs/LJ023-0099.npy +tests/data/ljspeech/wavs/LJ030-0252.wav|tests/data/ljspeech/wavs/LJ030-0252.npy +tests/data/ljspeech/wavs/LJ025-0122.wav|tests/data/ljspeech/wavs/LJ025-0122.npy +tests/data/ljspeech/wavs/LJ048-0285.wav|tests/data/ljspeech/wavs/LJ048-0285.npy +tests/data/ljspeech/wavs/LJ035-0189.wav|tests/data/ljspeech/wavs/LJ035-0189.npy +tests/data/ljspeech/wavs/LJ045-0032.wav|tests/data/ljspeech/wavs/LJ045-0032.npy +tests/data/ljspeech/wavs/LJ024-0013.wav|tests/data/ljspeech/wavs/LJ024-0013.npy +tests/data/ljspeech/wavs/LJ005-0188.wav|tests/data/ljspeech/wavs/LJ005-0188.npy +tests/data/ljspeech/wavs/LJ009-0283.wav|tests/data/ljspeech/wavs/LJ009-0283.npy +tests/data/ljspeech/wavs/LJ046-0133.wav|tests/data/ljspeech/wavs/LJ046-0133.npy +tests/data/ljspeech/wavs/LJ042-0028.wav|tests/data/ljspeech/wavs/LJ042-0028.npy +tests/data/ljspeech/wavs/LJ015-0040.wav|tests/data/ljspeech/wavs/LJ015-0040.npy +tests/data/ljspeech/wavs/LJ043-0013.wav|tests/data/ljspeech/wavs/LJ043-0013.npy +tests/data/ljspeech/wavs/LJ003-0098.wav|tests/data/ljspeech/wavs/LJ003-0098.npy +tests/data/ljspeech/wavs/LJ028-0518.wav|tests/data/ljspeech/wavs/LJ028-0518.npy +tests/data/ljspeech/wavs/LJ016-0020.wav|tests/data/ljspeech/wavs/LJ016-0020.npy +tests/data/ljspeech/wavs/LJ025-0144.wav|tests/data/ljspeech/wavs/LJ025-0144.npy +tests/data/ljspeech/wavs/LJ017-0115.wav|tests/data/ljspeech/wavs/LJ017-0115.npy +tests/data/ljspeech/wavs/LJ022-0036.wav|tests/data/ljspeech/wavs/LJ022-0036.npy +tests/data/ljspeech/wavs/LJ006-0056.wav|tests/data/ljspeech/wavs/LJ006-0056.npy +tests/data/ljspeech/wavs/LJ039-0173.wav|tests/data/ljspeech/wavs/LJ039-0173.npy +tests/data/ljspeech/wavs/LJ008-0028.wav|tests/data/ljspeech/wavs/LJ008-0028.npy +tests/data/ljspeech/wavs/LJ049-0008.wav|tests/data/ljspeech/wavs/LJ049-0008.npy +tests/data/ljspeech/wavs/LJ003-0118.wav|tests/data/ljspeech/wavs/LJ003-0118.npy +tests/data/ljspeech/wavs/LJ013-0053.wav|tests/data/ljspeech/wavs/LJ013-0053.npy +tests/data/ljspeech/wavs/LJ037-0196.wav|tests/data/ljspeech/wavs/LJ037-0196.npy +tests/data/ljspeech/wavs/LJ033-0037.wav|tests/data/ljspeech/wavs/LJ033-0037.npy +tests/data/ljspeech/wavs/LJ010-0302.wav|tests/data/ljspeech/wavs/LJ010-0302.npy +tests/data/ljspeech/wavs/LJ041-0149.wav|tests/data/ljspeech/wavs/LJ041-0149.npy +tests/data/ljspeech/wavs/LJ004-0045.wav|tests/data/ljspeech/wavs/LJ004-0045.npy +tests/data/ljspeech/wavs/LJ004-0021.wav|tests/data/ljspeech/wavs/LJ004-0021.npy +tests/data/ljspeech/wavs/LJ039-0148.wav|tests/data/ljspeech/wavs/LJ039-0148.npy +tests/data/ljspeech/wavs/LJ023-0019.wav|tests/data/ljspeech/wavs/LJ023-0019.npy +tests/data/ljspeech/wavs/LJ003-0247.wav|tests/data/ljspeech/wavs/LJ003-0247.npy +tests/data/ljspeech/wavs/LJ019-0164.wav|tests/data/ljspeech/wavs/LJ019-0164.npy +tests/data/ljspeech/wavs/LJ029-0204.wav|tests/data/ljspeech/wavs/LJ029-0204.npy +tests/data/ljspeech/wavs/LJ013-0171.wav|tests/data/ljspeech/wavs/LJ013-0171.npy +tests/data/ljspeech/wavs/LJ010-0259.wav|tests/data/ljspeech/wavs/LJ010-0259.npy +tests/data/ljspeech/wavs/LJ034-0149.wav|tests/data/ljspeech/wavs/LJ034-0149.npy +tests/data/ljspeech/wavs/LJ024-0114.wav|tests/data/ljspeech/wavs/LJ024-0114.npy +tests/data/ljspeech/wavs/LJ027-0067.wav|tests/data/ljspeech/wavs/LJ027-0067.npy +tests/data/ljspeech/wavs/LJ015-0203.wav|tests/data/ljspeech/wavs/LJ015-0203.npy +tests/data/ljspeech/wavs/LJ028-0156.wav|tests/data/ljspeech/wavs/LJ028-0156.npy +tests/data/ljspeech/wavs/LJ035-0104.wav|tests/data/ljspeech/wavs/LJ035-0104.npy +tests/data/ljspeech/wavs/LJ030-0241.wav|tests/data/ljspeech/wavs/LJ030-0241.npy +tests/data/ljspeech/wavs/LJ050-0134.wav|tests/data/ljspeech/wavs/LJ050-0134.npy +tests/data/ljspeech/wavs/LJ028-0228.wav|tests/data/ljspeech/wavs/LJ028-0228.npy +tests/data/ljspeech/wavs/LJ019-0111.wav|tests/data/ljspeech/wavs/LJ019-0111.npy +tests/data/ljspeech/wavs/LJ004-0057.wav|tests/data/ljspeech/wavs/LJ004-0057.npy +tests/data/ljspeech/wavs/LJ017-0148.wav|tests/data/ljspeech/wavs/LJ017-0148.npy +tests/data/ljspeech/wavs/LJ050-0033.wav|tests/data/ljspeech/wavs/LJ050-0033.npy +tests/data/ljspeech/wavs/LJ019-0063.wav|tests/data/ljspeech/wavs/LJ019-0063.npy +tests/data/ljspeech/wavs/LJ020-0017.wav|tests/data/ljspeech/wavs/LJ020-0017.npy +tests/data/ljspeech/wavs/LJ035-0182.wav|tests/data/ljspeech/wavs/LJ035-0182.npy +tests/data/ljspeech/wavs/LJ006-0121.wav|tests/data/ljspeech/wavs/LJ006-0121.npy +tests/data/ljspeech/wavs/LJ028-0154.wav|tests/data/ljspeech/wavs/LJ028-0154.npy +tests/data/ljspeech/wavs/LJ015-0291.wav|tests/data/ljspeech/wavs/LJ015-0291.npy +tests/data/ljspeech/wavs/LJ002-0160.wav|tests/data/ljspeech/wavs/LJ002-0160.npy +tests/data/ljspeech/wavs/LJ008-0025.wav|tests/data/ljspeech/wavs/LJ008-0025.npy +tests/data/ljspeech/wavs/LJ016-0202.wav|tests/data/ljspeech/wavs/LJ016-0202.npy +tests/data/ljspeech/wavs/LJ004-0134.wav|tests/data/ljspeech/wavs/LJ004-0134.npy +tests/data/ljspeech/wavs/LJ018-0391.wav|tests/data/ljspeech/wavs/LJ018-0391.npy +tests/data/ljspeech/wavs/LJ042-0173.wav|tests/data/ljspeech/wavs/LJ042-0173.npy +tests/data/ljspeech/wavs/LJ016-0002.wav|tests/data/ljspeech/wavs/LJ016-0002.npy +tests/data/ljspeech/wavs/LJ019-0174.wav|tests/data/ljspeech/wavs/LJ019-0174.npy +tests/data/ljspeech/wavs/LJ050-0207.wav|tests/data/ljspeech/wavs/LJ050-0207.npy +tests/data/ljspeech/wavs/LJ038-0067.wav|tests/data/ljspeech/wavs/LJ038-0067.npy +tests/data/ljspeech/wavs/LJ048-0007.wav|tests/data/ljspeech/wavs/LJ048-0007.npy +tests/data/ljspeech/wavs/LJ005-0060.wav|tests/data/ljspeech/wavs/LJ005-0060.npy +tests/data/ljspeech/wavs/LJ001-0140.wav|tests/data/ljspeech/wavs/LJ001-0140.npy +tests/data/ljspeech/wavs/LJ012-0059.wav|tests/data/ljspeech/wavs/LJ012-0059.npy +tests/data/ljspeech/wavs/LJ015-0191.wav|tests/data/ljspeech/wavs/LJ015-0191.npy +tests/data/ljspeech/wavs/LJ017-0030.wav|tests/data/ljspeech/wavs/LJ017-0030.npy +tests/data/ljspeech/wavs/LJ021-0103.wav|tests/data/ljspeech/wavs/LJ021-0103.npy +tests/data/ljspeech/wavs/LJ017-0141.wav|tests/data/ljspeech/wavs/LJ017-0141.npy +tests/data/ljspeech/wavs/LJ007-0124.wav|tests/data/ljspeech/wavs/LJ007-0124.npy +tests/data/ljspeech/wavs/LJ017-0119.wav|tests/data/ljspeech/wavs/LJ017-0119.npy +tests/data/ljspeech/wavs/LJ038-0252.wav|tests/data/ljspeech/wavs/LJ038-0252.npy +tests/data/ljspeech/wavs/LJ012-0134.wav|tests/data/ljspeech/wavs/LJ012-0134.npy +tests/data/ljspeech/wavs/LJ001-0026.wav|tests/data/ljspeech/wavs/LJ001-0026.npy +tests/data/ljspeech/wavs/LJ016-0213.wav|tests/data/ljspeech/wavs/LJ016-0213.npy +tests/data/ljspeech/wavs/LJ004-0094.wav|tests/data/ljspeech/wavs/LJ004-0094.npy +tests/data/ljspeech/wavs/LJ028-0039.wav|tests/data/ljspeech/wavs/LJ028-0039.npy +tests/data/ljspeech/wavs/LJ028-0042.wav|tests/data/ljspeech/wavs/LJ028-0042.npy +tests/data/ljspeech/wavs/LJ050-0058.wav|tests/data/ljspeech/wavs/LJ050-0058.npy +tests/data/ljspeech/wavs/LJ014-0108.wav|tests/data/ljspeech/wavs/LJ014-0108.npy +tests/data/ljspeech/wavs/LJ015-0164.wav|tests/data/ljspeech/wavs/LJ015-0164.npy +tests/data/ljspeech/wavs/LJ040-0101.wav|tests/data/ljspeech/wavs/LJ040-0101.npy +tests/data/ljspeech/wavs/LJ009-0080.wav|tests/data/ljspeech/wavs/LJ009-0080.npy +tests/data/ljspeech/wavs/LJ039-0158.wav|tests/data/ljspeech/wavs/LJ039-0158.npy +tests/data/ljspeech/wavs/LJ035-0162.wav|tests/data/ljspeech/wavs/LJ035-0162.npy +tests/data/ljspeech/wavs/LJ019-0001.wav|tests/data/ljspeech/wavs/LJ019-0001.npy +tests/data/ljspeech/wavs/LJ030-0205.wav|tests/data/ljspeech/wavs/LJ030-0205.npy +tests/data/ljspeech/wavs/LJ039-0069.wav|tests/data/ljspeech/wavs/LJ039-0069.npy +tests/data/ljspeech/wavs/LJ037-0190.wav|tests/data/ljspeech/wavs/LJ037-0190.npy +tests/data/ljspeech/wavs/LJ002-0206.wav|tests/data/ljspeech/wavs/LJ002-0206.npy +tests/data/ljspeech/wavs/LJ042-0041.wav|tests/data/ljspeech/wavs/LJ042-0041.npy +tests/data/ljspeech/wavs/LJ032-0161.wav|tests/data/ljspeech/wavs/LJ032-0161.npy +tests/data/ljspeech/wavs/LJ024-0052.wav|tests/data/ljspeech/wavs/LJ024-0052.npy +tests/data/ljspeech/wavs/LJ027-0077.wav|tests/data/ljspeech/wavs/LJ027-0077.npy +tests/data/ljspeech/wavs/LJ010-0013.wav|tests/data/ljspeech/wavs/LJ010-0013.npy +tests/data/ljspeech/wavs/LJ013-0219.wav|tests/data/ljspeech/wavs/LJ013-0219.npy +tests/data/ljspeech/wavs/LJ047-0229.wav|tests/data/ljspeech/wavs/LJ047-0229.npy +tests/data/ljspeech/wavs/LJ015-0158.wav|tests/data/ljspeech/wavs/LJ015-0158.npy +tests/data/ljspeech/wavs/LJ022-0096.wav|tests/data/ljspeech/wavs/LJ022-0096.npy +tests/data/ljspeech/wavs/LJ006-0188.wav|tests/data/ljspeech/wavs/LJ006-0188.npy +tests/data/ljspeech/wavs/LJ014-0139.wav|tests/data/ljspeech/wavs/LJ014-0139.npy +tests/data/ljspeech/wavs/LJ015-0140.wav|tests/data/ljspeech/wavs/LJ015-0140.npy +tests/data/ljspeech/wavs/LJ003-0077.wav|tests/data/ljspeech/wavs/LJ003-0077.npy +tests/data/ljspeech/wavs/LJ020-0036.wav|tests/data/ljspeech/wavs/LJ020-0036.npy +tests/data/ljspeech/wavs/LJ042-0182.wav|tests/data/ljspeech/wavs/LJ042-0182.npy +tests/data/ljspeech/wavs/LJ013-0178.wav|tests/data/ljspeech/wavs/LJ013-0178.npy +tests/data/ljspeech/wavs/LJ009-0109.wav|tests/data/ljspeech/wavs/LJ009-0109.npy +tests/data/ljspeech/wavs/LJ019-0390.wav|tests/data/ljspeech/wavs/LJ019-0390.npy +tests/data/ljspeech/wavs/LJ046-0034.wav|tests/data/ljspeech/wavs/LJ046-0034.npy +tests/data/ljspeech/wavs/LJ029-0213.wav|tests/data/ljspeech/wavs/LJ029-0213.npy +tests/data/ljspeech/wavs/LJ040-0020.wav|tests/data/ljspeech/wavs/LJ040-0020.npy +tests/data/ljspeech/wavs/LJ002-0247.wav|tests/data/ljspeech/wavs/LJ002-0247.npy +tests/data/ljspeech/wavs/LJ008-0255.wav|tests/data/ljspeech/wavs/LJ008-0255.npy +tests/data/ljspeech/wavs/LJ028-0316.wav|tests/data/ljspeech/wavs/LJ028-0316.npy +tests/data/ljspeech/wavs/LJ010-0270.wav|tests/data/ljspeech/wavs/LJ010-0270.npy +tests/data/ljspeech/wavs/LJ037-0188.wav|tests/data/ljspeech/wavs/LJ037-0188.npy +tests/data/ljspeech/wavs/LJ038-0300.wav|tests/data/ljspeech/wavs/LJ038-0300.npy +tests/data/ljspeech/wavs/LJ049-0216.wav|tests/data/ljspeech/wavs/LJ049-0216.npy +tests/data/ljspeech/wavs/LJ031-0127.wav|tests/data/ljspeech/wavs/LJ031-0127.npy +tests/data/ljspeech/wavs/LJ041-0029.wav|tests/data/ljspeech/wavs/LJ041-0029.npy +tests/data/ljspeech/wavs/LJ005-0049.wav|tests/data/ljspeech/wavs/LJ005-0049.npy +tests/data/ljspeech/wavs/LJ036-0084.wav|tests/data/ljspeech/wavs/LJ036-0084.npy +tests/data/ljspeech/wavs/LJ041-0067.wav|tests/data/ljspeech/wavs/LJ041-0067.npy +tests/data/ljspeech/wavs/LJ023-0114.wav|tests/data/ljspeech/wavs/LJ023-0114.npy +tests/data/ljspeech/wavs/LJ010-0095.wav|tests/data/ljspeech/wavs/LJ010-0095.npy +tests/data/ljspeech/wavs/LJ011-0027.wav|tests/data/ljspeech/wavs/LJ011-0027.npy +tests/data/ljspeech/wavs/LJ028-0328.wav|tests/data/ljspeech/wavs/LJ028-0328.npy +tests/data/ljspeech/wavs/LJ004-0158.wav|tests/data/ljspeech/wavs/LJ004-0158.npy +tests/data/ljspeech/wavs/LJ045-0108.wav|tests/data/ljspeech/wavs/LJ045-0108.npy +tests/data/ljspeech/wavs/LJ047-0112.wav|tests/data/ljspeech/wavs/LJ047-0112.npy +tests/data/ljspeech/wavs/LJ022-0187.wav|tests/data/ljspeech/wavs/LJ022-0187.npy +tests/data/ljspeech/wavs/LJ003-0087.wav|tests/data/ljspeech/wavs/LJ003-0087.npy +tests/data/ljspeech/wavs/LJ047-0099.wav|tests/data/ljspeech/wavs/LJ047-0099.npy +tests/data/ljspeech/wavs/LJ024-0010.wav|tests/data/ljspeech/wavs/LJ024-0010.npy +tests/data/ljspeech/wavs/LJ049-0081.wav|tests/data/ljspeech/wavs/LJ049-0081.npy +tests/data/ljspeech/wavs/LJ014-0082.wav|tests/data/ljspeech/wavs/LJ014-0082.npy +tests/data/ljspeech/wavs/LJ017-0165.wav|tests/data/ljspeech/wavs/LJ017-0165.npy +tests/data/ljspeech/wavs/LJ028-0469.wav|tests/data/ljspeech/wavs/LJ028-0469.npy +tests/data/ljspeech/wavs/LJ010-0079.wav|tests/data/ljspeech/wavs/LJ010-0079.npy +tests/data/ljspeech/wavs/LJ012-0202.wav|tests/data/ljspeech/wavs/LJ012-0202.npy +tests/data/ljspeech/wavs/LJ040-0085.wav|tests/data/ljspeech/wavs/LJ040-0085.npy +tests/data/ljspeech/wavs/LJ008-0223.wav|tests/data/ljspeech/wavs/LJ008-0223.npy +tests/data/ljspeech/wavs/LJ014-0083.wav|tests/data/ljspeech/wavs/LJ014-0083.npy +tests/data/ljspeech/wavs/LJ023-0058.wav|tests/data/ljspeech/wavs/LJ023-0058.npy +tests/data/ljspeech/wavs/LJ032-0171.wav|tests/data/ljspeech/wavs/LJ032-0171.npy +tests/data/ljspeech/wavs/LJ031-0142.wav|tests/data/ljspeech/wavs/LJ031-0142.npy +tests/data/ljspeech/wavs/LJ048-0170.wav|tests/data/ljspeech/wavs/LJ048-0170.npy +tests/data/ljspeech/wavs/LJ049-0047.wav|tests/data/ljspeech/wavs/LJ049-0047.npy +tests/data/ljspeech/wavs/LJ037-0050.wav|tests/data/ljspeech/wavs/LJ037-0050.npy +tests/data/ljspeech/wavs/LJ004-0011.wav|tests/data/ljspeech/wavs/LJ004-0011.npy +tests/data/ljspeech/wavs/LJ050-0034.wav|tests/data/ljspeech/wavs/LJ050-0034.npy +tests/data/ljspeech/wavs/LJ017-0200.wav|tests/data/ljspeech/wavs/LJ017-0200.npy +tests/data/ljspeech/wavs/LJ011-0243.wav|tests/data/ljspeech/wavs/LJ011-0243.npy +tests/data/ljspeech/wavs/LJ038-0084.wav|tests/data/ljspeech/wavs/LJ038-0084.npy +tests/data/ljspeech/wavs/LJ035-0140.wav|tests/data/ljspeech/wavs/LJ035-0140.npy +tests/data/ljspeech/wavs/LJ002-0215.wav|tests/data/ljspeech/wavs/LJ002-0215.npy +tests/data/ljspeech/wavs/LJ039-0061.wav|tests/data/ljspeech/wavs/LJ039-0061.npy +tests/data/ljspeech/wavs/LJ050-0241.wav|tests/data/ljspeech/wavs/LJ050-0241.npy +tests/data/ljspeech/wavs/LJ039-0047.wav|tests/data/ljspeech/wavs/LJ039-0047.npy +tests/data/ljspeech/wavs/LJ021-0127.wav|tests/data/ljspeech/wavs/LJ021-0127.npy +tests/data/ljspeech/wavs/LJ050-0114.wav|tests/data/ljspeech/wavs/LJ050-0114.npy +tests/data/ljspeech/wavs/LJ010-0158.wav|tests/data/ljspeech/wavs/LJ010-0158.npy +tests/data/ljspeech/wavs/LJ040-0181.wav|tests/data/ljspeech/wavs/LJ040-0181.npy +tests/data/ljspeech/wavs/LJ017-0109.wav|tests/data/ljspeech/wavs/LJ017-0109.npy +tests/data/ljspeech/wavs/LJ010-0222.wav|tests/data/ljspeech/wavs/LJ010-0222.npy +tests/data/ljspeech/wavs/LJ024-0007.wav|tests/data/ljspeech/wavs/LJ024-0007.npy +tests/data/ljspeech/wavs/LJ003-0334.wav|tests/data/ljspeech/wavs/LJ003-0334.npy +tests/data/ljspeech/wavs/LJ005-0160.wav|tests/data/ljspeech/wavs/LJ005-0160.npy +tests/data/ljspeech/wavs/LJ050-0116.wav|tests/data/ljspeech/wavs/LJ050-0116.npy +tests/data/ljspeech/wavs/LJ017-0197.wav|tests/data/ljspeech/wavs/LJ017-0197.npy +tests/data/ljspeech/wavs/LJ016-0046.wav|tests/data/ljspeech/wavs/LJ016-0046.npy +tests/data/ljspeech/wavs/LJ006-0036.wav|tests/data/ljspeech/wavs/LJ006-0036.npy +tests/data/ljspeech/wavs/LJ016-0159.wav|tests/data/ljspeech/wavs/LJ016-0159.npy +tests/data/ljspeech/wavs/LJ011-0191.wav|tests/data/ljspeech/wavs/LJ011-0191.npy +tests/data/ljspeech/wavs/LJ024-0065.wav|tests/data/ljspeech/wavs/LJ024-0065.npy +tests/data/ljspeech/wavs/LJ019-0196.wav|tests/data/ljspeech/wavs/LJ019-0196.npy +tests/data/ljspeech/wavs/LJ014-0061.wav|tests/data/ljspeech/wavs/LJ014-0061.npy +tests/data/ljspeech/wavs/LJ034-0017.wav|tests/data/ljspeech/wavs/LJ034-0017.npy +tests/data/ljspeech/wavs/LJ008-0125.wav|tests/data/ljspeech/wavs/LJ008-0125.npy +tests/data/ljspeech/wavs/LJ005-0085.wav|tests/data/ljspeech/wavs/LJ005-0085.npy +tests/data/ljspeech/wavs/LJ046-0195.wav|tests/data/ljspeech/wavs/LJ046-0195.npy +tests/data/ljspeech/wavs/LJ036-0134.wav|tests/data/ljspeech/wavs/LJ036-0134.npy +tests/data/ljspeech/wavs/LJ033-0015.wav|tests/data/ljspeech/wavs/LJ033-0015.npy +tests/data/ljspeech/wavs/LJ010-0294.wav|tests/data/ljspeech/wavs/LJ010-0294.npy +tests/data/ljspeech/wavs/LJ041-0103.wav|tests/data/ljspeech/wavs/LJ041-0103.npy +tests/data/ljspeech/wavs/LJ004-0177.wav|tests/data/ljspeech/wavs/LJ004-0177.npy +tests/data/ljspeech/wavs/LJ018-0024.wav|tests/data/ljspeech/wavs/LJ018-0024.npy +tests/data/ljspeech/wavs/LJ043-0077.wav|tests/data/ljspeech/wavs/LJ043-0077.npy +tests/data/ljspeech/wavs/LJ022-0095.wav|tests/data/ljspeech/wavs/LJ022-0095.npy +tests/data/ljspeech/wavs/LJ010-0231.wav|tests/data/ljspeech/wavs/LJ010-0231.npy +tests/data/ljspeech/wavs/LJ021-0121.wav|tests/data/ljspeech/wavs/LJ021-0121.npy +tests/data/ljspeech/wavs/LJ018-0086.wav|tests/data/ljspeech/wavs/LJ018-0086.npy +tests/data/ljspeech/wavs/LJ017-0186.wav|tests/data/ljspeech/wavs/LJ017-0186.npy +tests/data/ljspeech/wavs/LJ003-0184.wav|tests/data/ljspeech/wavs/LJ003-0184.npy +tests/data/ljspeech/wavs/LJ006-0012.wav|tests/data/ljspeech/wavs/LJ006-0012.npy +tests/data/ljspeech/wavs/LJ016-0086.wav|tests/data/ljspeech/wavs/LJ016-0086.npy +tests/data/ljspeech/wavs/LJ026-0085.wav|tests/data/ljspeech/wavs/LJ026-0085.npy +tests/data/ljspeech/wavs/LJ032-0157.wav|tests/data/ljspeech/wavs/LJ032-0157.npy +tests/data/ljspeech/wavs/LJ045-0021.wav|tests/data/ljspeech/wavs/LJ045-0021.npy +tests/data/ljspeech/wavs/LJ050-0152.wav|tests/data/ljspeech/wavs/LJ050-0152.npy +tests/data/ljspeech/wavs/LJ001-0130.wav|tests/data/ljspeech/wavs/LJ001-0130.npy +tests/data/ljspeech/wavs/LJ041-0102.wav|tests/data/ljspeech/wavs/LJ041-0102.npy +tests/data/ljspeech/wavs/LJ003-0326.wav|tests/data/ljspeech/wavs/LJ003-0326.npy +tests/data/ljspeech/wavs/LJ030-0223.wav|tests/data/ljspeech/wavs/LJ030-0223.npy +tests/data/ljspeech/wavs/LJ012-0248.wav|tests/data/ljspeech/wavs/LJ012-0248.npy +tests/data/ljspeech/wavs/LJ030-0009.wav|tests/data/ljspeech/wavs/LJ030-0009.npy +tests/data/ljspeech/wavs/LJ006-0211.wav|tests/data/ljspeech/wavs/LJ006-0211.npy +tests/data/ljspeech/wavs/LJ039-0191.wav|tests/data/ljspeech/wavs/LJ039-0191.npy +tests/data/ljspeech/wavs/LJ036-0090.wav|tests/data/ljspeech/wavs/LJ036-0090.npy +tests/data/ljspeech/wavs/LJ028-0502.wav|tests/data/ljspeech/wavs/LJ028-0502.npy +tests/data/ljspeech/wavs/LJ028-0081.wav|tests/data/ljspeech/wavs/LJ028-0081.npy +tests/data/ljspeech/wavs/LJ044-0060.wav|tests/data/ljspeech/wavs/LJ044-0060.npy +tests/data/ljspeech/wavs/LJ050-0067.wav|tests/data/ljspeech/wavs/LJ050-0067.npy +tests/data/ljspeech/wavs/LJ008-0151.wav|tests/data/ljspeech/wavs/LJ008-0151.npy +tests/data/ljspeech/wavs/LJ033-0182.wav|tests/data/ljspeech/wavs/LJ033-0182.npy +tests/data/ljspeech/wavs/LJ019-0131.wav|tests/data/ljspeech/wavs/LJ019-0131.npy +tests/data/ljspeech/wavs/LJ004-0112.wav|tests/data/ljspeech/wavs/LJ004-0112.npy +tests/data/ljspeech/wavs/LJ030-0248.wav|tests/data/ljspeech/wavs/LJ030-0248.npy +tests/data/ljspeech/wavs/LJ048-0141.wav|tests/data/ljspeech/wavs/LJ048-0141.npy +tests/data/ljspeech/wavs/LJ031-0183.wav|tests/data/ljspeech/wavs/LJ031-0183.npy +tests/data/ljspeech/wavs/LJ019-0314.wav|tests/data/ljspeech/wavs/LJ019-0314.npy +tests/data/ljspeech/wavs/LJ022-0097.wav|tests/data/ljspeech/wavs/LJ022-0097.npy +tests/data/ljspeech/wavs/LJ046-0103.wav|tests/data/ljspeech/wavs/LJ046-0103.npy +tests/data/ljspeech/wavs/LJ012-0246.wav|tests/data/ljspeech/wavs/LJ012-0246.npy +tests/data/ljspeech/wavs/LJ013-0156.wav|tests/data/ljspeech/wavs/LJ013-0156.npy +tests/data/ljspeech/wavs/LJ028-0440.wav|tests/data/ljspeech/wavs/LJ028-0440.npy +tests/data/ljspeech/wavs/LJ003-0037.wav|tests/data/ljspeech/wavs/LJ003-0037.npy +tests/data/ljspeech/wavs/LJ002-0241.wav|tests/data/ljspeech/wavs/LJ002-0241.npy +tests/data/ljspeech/wavs/LJ040-0040.wav|tests/data/ljspeech/wavs/LJ040-0040.npy +tests/data/ljspeech/wavs/LJ018-0268.wav|tests/data/ljspeech/wavs/LJ018-0268.npy +tests/data/ljspeech/wavs/LJ019-0344.wav|tests/data/ljspeech/wavs/LJ019-0344.npy +tests/data/ljspeech/wavs/LJ013-0042.wav|tests/data/ljspeech/wavs/LJ013-0042.npy +tests/data/ljspeech/wavs/LJ026-0095.wav|tests/data/ljspeech/wavs/LJ026-0095.npy +tests/data/ljspeech/wavs/LJ010-0303.wav|tests/data/ljspeech/wavs/LJ010-0303.npy +tests/data/ljspeech/wavs/LJ019-0160.wav|tests/data/ljspeech/wavs/LJ019-0160.npy +tests/data/ljspeech/wavs/LJ017-0089.wav|tests/data/ljspeech/wavs/LJ017-0089.npy +tests/data/ljspeech/wavs/LJ046-0060.wav|tests/data/ljspeech/wavs/LJ046-0060.npy +tests/data/ljspeech/wavs/LJ005-0184.wav|tests/data/ljspeech/wavs/LJ005-0184.npy +tests/data/ljspeech/wavs/LJ042-0114.wav|tests/data/ljspeech/wavs/LJ042-0114.npy +tests/data/ljspeech/wavs/LJ034-0173.wav|tests/data/ljspeech/wavs/LJ034-0173.npy +tests/data/ljspeech/wavs/LJ018-0004.wav|tests/data/ljspeech/wavs/LJ018-0004.npy +tests/data/ljspeech/wavs/LJ012-0281.wav|tests/data/ljspeech/wavs/LJ012-0281.npy +tests/data/ljspeech/wavs/LJ040-0175.wav|tests/data/ljspeech/wavs/LJ040-0175.npy +tests/data/ljspeech/wavs/LJ002-0122.wav|tests/data/ljspeech/wavs/LJ002-0122.npy +tests/data/ljspeech/wavs/LJ044-0152.wav|tests/data/ljspeech/wavs/LJ044-0152.npy +tests/data/ljspeech/wavs/LJ037-0251.wav|tests/data/ljspeech/wavs/LJ037-0251.npy +tests/data/ljspeech/wavs/LJ031-0222.wav|tests/data/ljspeech/wavs/LJ031-0222.npy +tests/data/ljspeech/wavs/LJ030-0227.wav|tests/data/ljspeech/wavs/LJ030-0227.npy +tests/data/ljspeech/wavs/LJ032-0186.wav|tests/data/ljspeech/wavs/LJ032-0186.npy +tests/data/ljspeech/wavs/LJ033-0210.wav|tests/data/ljspeech/wavs/LJ033-0210.npy +tests/data/ljspeech/wavs/LJ035-0167.wav|tests/data/ljspeech/wavs/LJ035-0167.npy +tests/data/ljspeech/wavs/LJ047-0142.wav|tests/data/ljspeech/wavs/LJ047-0142.npy +tests/data/ljspeech/wavs/LJ009-0124.wav|tests/data/ljspeech/wavs/LJ009-0124.npy +tests/data/ljspeech/wavs/LJ038-0266.wav|tests/data/ljspeech/wavs/LJ038-0266.npy +tests/data/ljspeech/wavs/LJ046-0063.wav|tests/data/ljspeech/wavs/LJ046-0063.npy +tests/data/ljspeech/wavs/LJ034-0131.wav|tests/data/ljspeech/wavs/LJ034-0131.npy +tests/data/ljspeech/wavs/LJ008-0139.wav|tests/data/ljspeech/wavs/LJ008-0139.npy +tests/data/ljspeech/wavs/LJ010-0016.wav|tests/data/ljspeech/wavs/LJ010-0016.npy +tests/data/ljspeech/wavs/LJ045-0209.wav|tests/data/ljspeech/wavs/LJ045-0209.npy +tests/data/ljspeech/wavs/LJ047-0236.wav|tests/data/ljspeech/wavs/LJ047-0236.npy +tests/data/ljspeech/wavs/LJ001-0074.wav|tests/data/ljspeech/wavs/LJ001-0074.npy +tests/data/ljspeech/wavs/LJ015-0200.wav|tests/data/ljspeech/wavs/LJ015-0200.npy +tests/data/ljspeech/wavs/LJ050-0200.wav|tests/data/ljspeech/wavs/LJ050-0200.npy +tests/data/ljspeech/wavs/LJ011-0289.wav|tests/data/ljspeech/wavs/LJ011-0289.npy +tests/data/ljspeech/wavs/LJ033-0031.wav|tests/data/ljspeech/wavs/LJ033-0031.npy +tests/data/ljspeech/wavs/LJ015-0258.wav|tests/data/ljspeech/wavs/LJ015-0258.npy +tests/data/ljspeech/wavs/LJ019-0091.wav|tests/data/ljspeech/wavs/LJ019-0091.npy +tests/data/ljspeech/wavs/LJ027-0113.wav|tests/data/ljspeech/wavs/LJ027-0113.npy +tests/data/ljspeech/wavs/LJ022-0160.wav|tests/data/ljspeech/wavs/LJ022-0160.npy +tests/data/ljspeech/wavs/LJ029-0190.wav|tests/data/ljspeech/wavs/LJ029-0190.npy +tests/data/ljspeech/wavs/LJ015-0133.wav|tests/data/ljspeech/wavs/LJ015-0133.npy +tests/data/ljspeech/wavs/LJ034-0206.wav|tests/data/ljspeech/wavs/LJ034-0206.npy +tests/data/ljspeech/wavs/LJ016-0257.wav|tests/data/ljspeech/wavs/LJ016-0257.npy +tests/data/ljspeech/wavs/LJ003-0012.wav|tests/data/ljspeech/wavs/LJ003-0012.npy +tests/data/ljspeech/wavs/LJ008-0162.wav|tests/data/ljspeech/wavs/LJ008-0162.npy +tests/data/ljspeech/wavs/LJ002-0199.wav|tests/data/ljspeech/wavs/LJ002-0199.npy +tests/data/ljspeech/wavs/LJ038-0165.wav|tests/data/ljspeech/wavs/LJ038-0165.npy +tests/data/ljspeech/wavs/LJ032-0029.wav|tests/data/ljspeech/wavs/LJ032-0029.npy +tests/data/ljspeech/wavs/LJ009-0217.wav|tests/data/ljspeech/wavs/LJ009-0217.npy +tests/data/ljspeech/wavs/LJ007-0182.wav|tests/data/ljspeech/wavs/LJ007-0182.npy +tests/data/ljspeech/wavs/LJ022-0134.wav|tests/data/ljspeech/wavs/LJ022-0134.npy +tests/data/ljspeech/wavs/LJ044-0202.wav|tests/data/ljspeech/wavs/LJ044-0202.npy +tests/data/ljspeech/wavs/LJ039-0118.wav|tests/data/ljspeech/wavs/LJ039-0118.npy +tests/data/ljspeech/wavs/LJ048-0048.wav|tests/data/ljspeech/wavs/LJ048-0048.npy +tests/data/ljspeech/wavs/LJ031-0200.wav|tests/data/ljspeech/wavs/LJ031-0200.npy +tests/data/ljspeech/wavs/LJ017-0009.wav|tests/data/ljspeech/wavs/LJ017-0009.npy +tests/data/ljspeech/wavs/LJ034-0052.wav|tests/data/ljspeech/wavs/LJ034-0052.npy +tests/data/ljspeech/wavs/LJ005-0232.wav|tests/data/ljspeech/wavs/LJ005-0232.npy +tests/data/ljspeech/wavs/LJ012-0295.wav|tests/data/ljspeech/wavs/LJ012-0295.npy +tests/data/ljspeech/wavs/LJ018-0374.wav|tests/data/ljspeech/wavs/LJ018-0374.npy +tests/data/ljspeech/wavs/LJ013-0027.wav|tests/data/ljspeech/wavs/LJ013-0027.npy +tests/data/ljspeech/wavs/LJ005-0115.wav|tests/data/ljspeech/wavs/LJ005-0115.npy +tests/data/ljspeech/wavs/LJ042-0186.wav|tests/data/ljspeech/wavs/LJ042-0186.npy +tests/data/ljspeech/wavs/LJ025-0064.wav|tests/data/ljspeech/wavs/LJ025-0064.npy +tests/data/ljspeech/wavs/LJ032-0179.wav|tests/data/ljspeech/wavs/LJ032-0179.npy +tests/data/ljspeech/wavs/LJ049-0178.wav|tests/data/ljspeech/wavs/LJ049-0178.npy +tests/data/ljspeech/wavs/LJ027-0087.wav|tests/data/ljspeech/wavs/LJ027-0087.npy +tests/data/ljspeech/wavs/LJ031-0232.wav|tests/data/ljspeech/wavs/LJ031-0232.npy +tests/data/ljspeech/wavs/LJ035-0021.wav|tests/data/ljspeech/wavs/LJ035-0021.npy +tests/data/ljspeech/wavs/LJ029-0026.wav|tests/data/ljspeech/wavs/LJ029-0026.npy +tests/data/ljspeech/wavs/LJ029-0004.wav|tests/data/ljspeech/wavs/LJ029-0004.npy +tests/data/ljspeech/wavs/LJ008-0206.wav|tests/data/ljspeech/wavs/LJ008-0206.npy +tests/data/ljspeech/wavs/LJ039-0242.wav|tests/data/ljspeech/wavs/LJ039-0242.npy +tests/data/ljspeech/wavs/LJ013-0137.wav|tests/data/ljspeech/wavs/LJ013-0137.npy +tests/data/ljspeech/wavs/LJ016-0318.wav|tests/data/ljspeech/wavs/LJ016-0318.npy +tests/data/ljspeech/wavs/LJ014-0134.wav|tests/data/ljspeech/wavs/LJ014-0134.npy +tests/data/ljspeech/wavs/LJ003-0194.wav|tests/data/ljspeech/wavs/LJ003-0194.npy +tests/data/ljspeech/wavs/LJ011-0267.wav|tests/data/ljspeech/wavs/LJ011-0267.npy +tests/data/ljspeech/wavs/LJ002-0156.wav|tests/data/ljspeech/wavs/LJ002-0156.npy +tests/data/ljspeech/wavs/LJ050-0155.wav|tests/data/ljspeech/wavs/LJ050-0155.npy +tests/data/ljspeech/wavs/LJ046-0164.wav|tests/data/ljspeech/wavs/LJ046-0164.npy +tests/data/ljspeech/wavs/LJ015-0111.wav|tests/data/ljspeech/wavs/LJ015-0111.npy +tests/data/ljspeech/wavs/LJ037-0213.wav|tests/data/ljspeech/wavs/LJ037-0213.npy +tests/data/ljspeech/wavs/LJ049-0172.wav|tests/data/ljspeech/wavs/LJ049-0172.npy +tests/data/ljspeech/wavs/LJ013-0044.wav|tests/data/ljspeech/wavs/LJ013-0044.npy +tests/data/ljspeech/wavs/LJ042-0074.wav|tests/data/ljspeech/wavs/LJ042-0074.npy +tests/data/ljspeech/wavs/LJ018-0110.wav|tests/data/ljspeech/wavs/LJ018-0110.npy +tests/data/ljspeech/wavs/LJ027-0032.wav|tests/data/ljspeech/wavs/LJ027-0032.npy +tests/data/ljspeech/wavs/LJ027-0158.wav|tests/data/ljspeech/wavs/LJ027-0158.npy +tests/data/ljspeech/wavs/LJ019-0258.wav|tests/data/ljspeech/wavs/LJ019-0258.npy +tests/data/ljspeech/wavs/LJ034-0019.wav|tests/data/ljspeech/wavs/LJ034-0019.npy +tests/data/ljspeech/wavs/LJ040-0215.wav|tests/data/ljspeech/wavs/LJ040-0215.npy +tests/data/ljspeech/wavs/LJ014-0038.wav|tests/data/ljspeech/wavs/LJ014-0038.npy +tests/data/ljspeech/wavs/LJ016-0063.wav|tests/data/ljspeech/wavs/LJ016-0063.npy +tests/data/ljspeech/wavs/LJ046-0108.wav|tests/data/ljspeech/wavs/LJ046-0108.npy +tests/data/ljspeech/wavs/LJ010-0039.wav|tests/data/ljspeech/wavs/LJ010-0039.npy +tests/data/ljspeech/wavs/LJ028-0021.wav|tests/data/ljspeech/wavs/LJ028-0021.npy +tests/data/ljspeech/wavs/LJ008-0135.wav|tests/data/ljspeech/wavs/LJ008-0135.npy +tests/data/ljspeech/wavs/LJ021-0062.wav|tests/data/ljspeech/wavs/LJ021-0062.npy +tests/data/ljspeech/wavs/LJ017-0053.wav|tests/data/ljspeech/wavs/LJ017-0053.npy +tests/data/ljspeech/wavs/LJ015-0068.wav|tests/data/ljspeech/wavs/LJ015-0068.npy +tests/data/ljspeech/wavs/LJ016-0064.wav|tests/data/ljspeech/wavs/LJ016-0064.npy +tests/data/ljspeech/wavs/LJ015-0243.wav|tests/data/ljspeech/wavs/LJ015-0243.npy +tests/data/ljspeech/wavs/LJ048-0146.wav|tests/data/ljspeech/wavs/LJ048-0146.npy +tests/data/ljspeech/wavs/LJ002-0043.wav|tests/data/ljspeech/wavs/LJ002-0043.npy +tests/data/ljspeech/wavs/LJ039-0241.wav|tests/data/ljspeech/wavs/LJ039-0241.npy +tests/data/ljspeech/wavs/LJ022-0037.wav|tests/data/ljspeech/wavs/LJ022-0037.npy +tests/data/ljspeech/wavs/LJ001-0004.wav|tests/data/ljspeech/wavs/LJ001-0004.npy +tests/data/ljspeech/wavs/LJ019-0039.wav|tests/data/ljspeech/wavs/LJ019-0039.npy +tests/data/ljspeech/wavs/LJ039-0029.wav|tests/data/ljspeech/wavs/LJ039-0029.npy +tests/data/ljspeech/wavs/LJ028-0053.wav|tests/data/ljspeech/wavs/LJ028-0053.npy +tests/data/ljspeech/wavs/LJ013-0006.wav|tests/data/ljspeech/wavs/LJ013-0006.npy +tests/data/ljspeech/wavs/LJ026-0021.wav|tests/data/ljspeech/wavs/LJ026-0021.npy +tests/data/ljspeech/wavs/LJ047-0052.wav|tests/data/ljspeech/wavs/LJ047-0052.npy +tests/data/ljspeech/wavs/LJ044-0031.wav|tests/data/ljspeech/wavs/LJ044-0031.npy +tests/data/ljspeech/wavs/LJ044-0051.wav|tests/data/ljspeech/wavs/LJ044-0051.npy +tests/data/ljspeech/wavs/LJ030-0210.wav|tests/data/ljspeech/wavs/LJ030-0210.npy +tests/data/ljspeech/wavs/LJ040-0083.wav|tests/data/ljspeech/wavs/LJ040-0083.npy +tests/data/ljspeech/wavs/LJ010-0027.wav|tests/data/ljspeech/wavs/LJ010-0027.npy +tests/data/ljspeech/wavs/LJ010-0278.wav|tests/data/ljspeech/wavs/LJ010-0278.npy +tests/data/ljspeech/wavs/LJ015-0307.wav|tests/data/ljspeech/wavs/LJ015-0307.npy +tests/data/ljspeech/wavs/LJ013-0005.wav|tests/data/ljspeech/wavs/LJ013-0005.npy +tests/data/ljspeech/wavs/LJ018-0108.wav|tests/data/ljspeech/wavs/LJ018-0108.npy +tests/data/ljspeech/wavs/LJ032-0172.wav|tests/data/ljspeech/wavs/LJ032-0172.npy +tests/data/ljspeech/wavs/LJ003-0305.wav|tests/data/ljspeech/wavs/LJ003-0305.npy +tests/data/ljspeech/wavs/LJ015-0190.wav|tests/data/ljspeech/wavs/LJ015-0190.npy +tests/data/ljspeech/wavs/LJ009-0128.wav|tests/data/ljspeech/wavs/LJ009-0128.npy +tests/data/ljspeech/wavs/LJ011-0227.wav|tests/data/ljspeech/wavs/LJ011-0227.npy +tests/data/ljspeech/wavs/LJ005-0028.wav|tests/data/ljspeech/wavs/LJ005-0028.npy +tests/data/ljspeech/wavs/LJ010-0268.wav|tests/data/ljspeech/wavs/LJ010-0268.npy +tests/data/ljspeech/wavs/LJ008-0260.wav|tests/data/ljspeech/wavs/LJ008-0260.npy +tests/data/ljspeech/wavs/LJ013-0134.wav|tests/data/ljspeech/wavs/LJ013-0134.npy +tests/data/ljspeech/wavs/LJ015-0294.wav|tests/data/ljspeech/wavs/LJ015-0294.npy +tests/data/ljspeech/wavs/LJ022-0110.wav|tests/data/ljspeech/wavs/LJ022-0110.npy +tests/data/ljspeech/wavs/LJ001-0102.wav|tests/data/ljspeech/wavs/LJ001-0102.npy +tests/data/ljspeech/wavs/LJ005-0148.wav|tests/data/ljspeech/wavs/LJ005-0148.npy +tests/data/ljspeech/wavs/LJ026-0148.wav|tests/data/ljspeech/wavs/LJ026-0148.npy +tests/data/ljspeech/wavs/LJ012-0178.wav|tests/data/ljspeech/wavs/LJ012-0178.npy +tests/data/ljspeech/wavs/LJ050-0214.wav|tests/data/ljspeech/wavs/LJ050-0214.npy +tests/data/ljspeech/wavs/LJ003-0205.wav|tests/data/ljspeech/wavs/LJ003-0205.npy +tests/data/ljspeech/wavs/LJ018-0386.wav|tests/data/ljspeech/wavs/LJ018-0386.npy +tests/data/ljspeech/wavs/LJ018-0290.wav|tests/data/ljspeech/wavs/LJ018-0290.npy +tests/data/ljspeech/wavs/LJ042-0020.wav|tests/data/ljspeech/wavs/LJ042-0020.npy +tests/data/ljspeech/wavs/LJ045-0196.wav|tests/data/ljspeech/wavs/LJ045-0196.npy +tests/data/ljspeech/wavs/LJ046-0166.wav|tests/data/ljspeech/wavs/LJ046-0166.npy +tests/data/ljspeech/wavs/LJ010-0167.wav|tests/data/ljspeech/wavs/LJ010-0167.npy +tests/data/ljspeech/wavs/LJ037-0065.wav|tests/data/ljspeech/wavs/LJ037-0065.npy +tests/data/ljspeech/wavs/LJ046-0190.wav|tests/data/ljspeech/wavs/LJ046-0190.npy +tests/data/ljspeech/wavs/LJ011-0205.wav|tests/data/ljspeech/wavs/LJ011-0205.npy +tests/data/ljspeech/wavs/LJ041-0044.wav|tests/data/ljspeech/wavs/LJ041-0044.npy +tests/data/ljspeech/wavs/LJ016-0334.wav|tests/data/ljspeech/wavs/LJ016-0334.npy +tests/data/ljspeech/wavs/LJ043-0082.wav|tests/data/ljspeech/wavs/LJ043-0082.npy +tests/data/ljspeech/wavs/LJ040-0142.wav|tests/data/ljspeech/wavs/LJ040-0142.npy +tests/data/ljspeech/wavs/LJ028-0503.wav|tests/data/ljspeech/wavs/LJ028-0503.npy +tests/data/ljspeech/wavs/LJ049-0028.wav|tests/data/ljspeech/wavs/LJ049-0028.npy +tests/data/ljspeech/wavs/LJ035-0098.wav|tests/data/ljspeech/wavs/LJ035-0098.npy +tests/data/ljspeech/wavs/LJ006-0163.wav|tests/data/ljspeech/wavs/LJ006-0163.npy +tests/data/ljspeech/wavs/LJ035-0102.wav|tests/data/ljspeech/wavs/LJ035-0102.npy +tests/data/ljspeech/wavs/LJ014-0297.wav|tests/data/ljspeech/wavs/LJ014-0297.npy +tests/data/ljspeech/wavs/LJ003-0268.wav|tests/data/ljspeech/wavs/LJ003-0268.npy +tests/data/ljspeech/wavs/LJ011-0014.wav|tests/data/ljspeech/wavs/LJ011-0014.npy +tests/data/ljspeech/wavs/LJ001-0119.wav|tests/data/ljspeech/wavs/LJ001-0119.npy +tests/data/ljspeech/wavs/LJ006-0111.wav|tests/data/ljspeech/wavs/LJ006-0111.npy +tests/data/ljspeech/wavs/LJ019-0231.wav|tests/data/ljspeech/wavs/LJ019-0231.npy +tests/data/ljspeech/wavs/LJ014-0332.wav|tests/data/ljspeech/wavs/LJ014-0332.npy +tests/data/ljspeech/wavs/LJ002-0161.wav|tests/data/ljspeech/wavs/LJ002-0161.npy +tests/data/ljspeech/wavs/LJ014-0299.wav|tests/data/ljspeech/wavs/LJ014-0299.npy +tests/data/ljspeech/wavs/LJ031-0213.wav|tests/data/ljspeech/wavs/LJ031-0213.npy +tests/data/ljspeech/wavs/LJ019-0317.wav|tests/data/ljspeech/wavs/LJ019-0317.npy +tests/data/ljspeech/wavs/LJ050-0215.wav|tests/data/ljspeech/wavs/LJ050-0215.npy +tests/data/ljspeech/wavs/LJ034-0200.wav|tests/data/ljspeech/wavs/LJ034-0200.npy +tests/data/ljspeech/wavs/LJ016-0293.wav|tests/data/ljspeech/wavs/LJ016-0293.npy +tests/data/ljspeech/wavs/LJ006-0034.wav|tests/data/ljspeech/wavs/LJ006-0034.npy +tests/data/ljspeech/wavs/LJ035-0087.wav|tests/data/ljspeech/wavs/LJ035-0087.npy +tests/data/ljspeech/wavs/LJ036-0167.wav|tests/data/ljspeech/wavs/LJ036-0167.npy +tests/data/ljspeech/wavs/LJ017-0159.wav|tests/data/ljspeech/wavs/LJ017-0159.npy +tests/data/ljspeech/wavs/LJ035-0010.wav|tests/data/ljspeech/wavs/LJ035-0010.npy +tests/data/ljspeech/wavs/LJ025-0140.wav|tests/data/ljspeech/wavs/LJ025-0140.npy +tests/data/ljspeech/wavs/LJ018-0228.wav|tests/data/ljspeech/wavs/LJ018-0228.npy +tests/data/ljspeech/wavs/LJ017-0145.wav|tests/data/ljspeech/wavs/LJ017-0145.npy +tests/data/ljspeech/wavs/LJ017-0284.wav|tests/data/ljspeech/wavs/LJ017-0284.npy +tests/data/ljspeech/wavs/LJ002-0184.wav|tests/data/ljspeech/wavs/LJ002-0184.npy +tests/data/ljspeech/wavs/LJ019-0064.wav|tests/data/ljspeech/wavs/LJ019-0064.npy +tests/data/ljspeech/wavs/LJ025-0132.wav|tests/data/ljspeech/wavs/LJ025-0132.npy +tests/data/ljspeech/wavs/LJ041-0064.wav|tests/data/ljspeech/wavs/LJ041-0064.npy +tests/data/ljspeech/wavs/LJ042-0226.wav|tests/data/ljspeech/wavs/LJ042-0226.npy +tests/data/ljspeech/wavs/LJ003-0222.wav|tests/data/ljspeech/wavs/LJ003-0222.npy +tests/data/ljspeech/wavs/LJ004-0189.wav|tests/data/ljspeech/wavs/LJ004-0189.npy +tests/data/ljspeech/wavs/LJ022-0186.wav|tests/data/ljspeech/wavs/LJ022-0186.npy +tests/data/ljspeech/wavs/LJ009-0278.wav|tests/data/ljspeech/wavs/LJ009-0278.npy +tests/data/ljspeech/wavs/LJ002-0087.wav|tests/data/ljspeech/wavs/LJ002-0087.npy +tests/data/ljspeech/wavs/LJ016-0153.wav|tests/data/ljspeech/wavs/LJ016-0153.npy +tests/data/ljspeech/wavs/LJ028-0415.wav|tests/data/ljspeech/wavs/LJ028-0415.npy +tests/data/ljspeech/wavs/LJ018-0213.wav|tests/data/ljspeech/wavs/LJ018-0213.npy +tests/data/ljspeech/wavs/LJ009-0235.wav|tests/data/ljspeech/wavs/LJ009-0235.npy +tests/data/ljspeech/wavs/LJ001-0136.wav|tests/data/ljspeech/wavs/LJ001-0136.npy +tests/data/ljspeech/wavs/LJ009-0204.wav|tests/data/ljspeech/wavs/LJ009-0204.npy +tests/data/ljspeech/wavs/LJ040-0148.wav|tests/data/ljspeech/wavs/LJ040-0148.npy +tests/data/ljspeech/wavs/LJ043-0157.wav|tests/data/ljspeech/wavs/LJ043-0157.npy +tests/data/ljspeech/wavs/LJ025-0145.wav|tests/data/ljspeech/wavs/LJ025-0145.npy +tests/data/ljspeech/wavs/LJ010-0196.wav|tests/data/ljspeech/wavs/LJ010-0196.npy +tests/data/ljspeech/wavs/LJ019-0308.wav|tests/data/ljspeech/wavs/LJ019-0308.npy +tests/data/ljspeech/wavs/LJ018-0153.wav|tests/data/ljspeech/wavs/LJ018-0153.npy +tests/data/ljspeech/wavs/LJ026-0072.wav|tests/data/ljspeech/wavs/LJ026-0072.npy +tests/data/ljspeech/wavs/LJ035-0121.wav|tests/data/ljspeech/wavs/LJ035-0121.npy +tests/data/ljspeech/wavs/LJ002-0001.wav|tests/data/ljspeech/wavs/LJ002-0001.npy +tests/data/ljspeech/wavs/LJ018-0173.wav|tests/data/ljspeech/wavs/LJ018-0173.npy +tests/data/ljspeech/wavs/LJ047-0038.wav|tests/data/ljspeech/wavs/LJ047-0038.npy +tests/data/ljspeech/wavs/LJ002-0113.wav|tests/data/ljspeech/wavs/LJ002-0113.npy +tests/data/ljspeech/wavs/LJ005-0202.wav|tests/data/ljspeech/wavs/LJ005-0202.npy +tests/data/ljspeech/wavs/LJ020-0013.wav|tests/data/ljspeech/wavs/LJ020-0013.npy +tests/data/ljspeech/wavs/LJ026-0140.wav|tests/data/ljspeech/wavs/LJ026-0140.npy +tests/data/ljspeech/wavs/LJ019-0145.wav|tests/data/ljspeech/wavs/LJ019-0145.npy +tests/data/ljspeech/wavs/LJ047-0082.wav|tests/data/ljspeech/wavs/LJ047-0082.npy +tests/data/ljspeech/wavs/LJ019-0135.wav|tests/data/ljspeech/wavs/LJ019-0135.npy +tests/data/ljspeech/wavs/LJ046-0122.wav|tests/data/ljspeech/wavs/LJ046-0122.npy +tests/data/ljspeech/wavs/LJ034-0153.wav|tests/data/ljspeech/wavs/LJ034-0153.npy +tests/data/ljspeech/wavs/LJ036-0082.wav|tests/data/ljspeech/wavs/LJ036-0082.npy +tests/data/ljspeech/wavs/LJ049-0021.wav|tests/data/ljspeech/wavs/LJ049-0021.npy +tests/data/ljspeech/wavs/LJ035-0058.wav|tests/data/ljspeech/wavs/LJ035-0058.npy +tests/data/ljspeech/wavs/LJ010-0089.wav|tests/data/ljspeech/wavs/LJ010-0089.npy +tests/data/ljspeech/wavs/LJ025-0148.wav|tests/data/ljspeech/wavs/LJ025-0148.npy +tests/data/ljspeech/wavs/LJ047-0216.wav|tests/data/ljspeech/wavs/LJ047-0216.npy +tests/data/ljspeech/wavs/LJ010-0130.wav|tests/data/ljspeech/wavs/LJ010-0130.npy +tests/data/ljspeech/wavs/LJ019-0331.wav|tests/data/ljspeech/wavs/LJ019-0331.npy +tests/data/ljspeech/wavs/LJ008-0278.wav|tests/data/ljspeech/wavs/LJ008-0278.npy +tests/data/ljspeech/wavs/LJ048-0096.wav|tests/data/ljspeech/wavs/LJ048-0096.npy +tests/data/ljspeech/wavs/LJ008-0307.wav|tests/data/ljspeech/wavs/LJ008-0307.npy +tests/data/ljspeech/wavs/LJ021-0097.wav|tests/data/ljspeech/wavs/LJ021-0097.npy +tests/data/ljspeech/wavs/LJ043-0096.wav|tests/data/ljspeech/wavs/LJ043-0096.npy +tests/data/ljspeech/wavs/LJ028-0343.wav|tests/data/ljspeech/wavs/LJ028-0343.npy +tests/data/ljspeech/wavs/LJ046-0099.wav|tests/data/ljspeech/wavs/LJ046-0099.npy +tests/data/ljspeech/wavs/LJ009-0017.wav|tests/data/ljspeech/wavs/LJ009-0017.npy +tests/data/ljspeech/wavs/LJ002-0061.wav|tests/data/ljspeech/wavs/LJ002-0061.npy +tests/data/ljspeech/wavs/LJ028-0476.wav|tests/data/ljspeech/wavs/LJ028-0476.npy +tests/data/ljspeech/wavs/LJ008-0283.wav|tests/data/ljspeech/wavs/LJ008-0283.npy +tests/data/ljspeech/wavs/LJ034-0080.wav|tests/data/ljspeech/wavs/LJ034-0080.npy +tests/data/ljspeech/wavs/LJ012-0089.wav|tests/data/ljspeech/wavs/LJ012-0089.npy +tests/data/ljspeech/wavs/LJ042-0250.wav|tests/data/ljspeech/wavs/LJ042-0250.npy +tests/data/ljspeech/wavs/LJ036-0166.wav|tests/data/ljspeech/wavs/LJ036-0166.npy +tests/data/ljspeech/wavs/LJ043-0010.wav|tests/data/ljspeech/wavs/LJ043-0010.npy +tests/data/ljspeech/wavs/LJ015-0065.wav|tests/data/ljspeech/wavs/LJ015-0065.npy +tests/data/ljspeech/wavs/LJ037-0026.wav|tests/data/ljspeech/wavs/LJ037-0026.npy +tests/data/ljspeech/wavs/LJ003-0176.wav|tests/data/ljspeech/wavs/LJ003-0176.npy +tests/data/ljspeech/wavs/LJ015-0167.wav|tests/data/ljspeech/wavs/LJ015-0167.npy +tests/data/ljspeech/wavs/LJ014-0281.wav|tests/data/ljspeech/wavs/LJ014-0281.npy +tests/data/ljspeech/wavs/LJ003-0109.wav|tests/data/ljspeech/wavs/LJ003-0109.npy +tests/data/ljspeech/wavs/LJ014-0279.wav|tests/data/ljspeech/wavs/LJ014-0279.npy +tests/data/ljspeech/wavs/LJ049-0171.wav|tests/data/ljspeech/wavs/LJ049-0171.npy +tests/data/ljspeech/wavs/LJ015-0131.wav|tests/data/ljspeech/wavs/LJ015-0131.npy +tests/data/ljspeech/wavs/LJ040-0013.wav|tests/data/ljspeech/wavs/LJ040-0013.npy +tests/data/ljspeech/wavs/LJ028-0091.wav|tests/data/ljspeech/wavs/LJ028-0091.npy +tests/data/ljspeech/wavs/LJ015-0211.wav|tests/data/ljspeech/wavs/LJ015-0211.npy +tests/data/ljspeech/wavs/LJ045-0245.wav|tests/data/ljspeech/wavs/LJ045-0245.npy +tests/data/ljspeech/wavs/LJ050-0213.wav|tests/data/ljspeech/wavs/LJ050-0213.npy +tests/data/ljspeech/wavs/LJ043-0012.wav|tests/data/ljspeech/wavs/LJ043-0012.npy +tests/data/ljspeech/wavs/LJ005-0275.wav|tests/data/ljspeech/wavs/LJ005-0275.npy +tests/data/ljspeech/wavs/LJ015-0202.wav|tests/data/ljspeech/wavs/LJ015-0202.npy +tests/data/ljspeech/wavs/LJ044-0026.wav|tests/data/ljspeech/wavs/LJ044-0026.npy +tests/data/ljspeech/wavs/LJ012-0131.wav|tests/data/ljspeech/wavs/LJ012-0131.npy +tests/data/ljspeech/wavs/LJ036-0165.wav|tests/data/ljspeech/wavs/LJ036-0165.npy +tests/data/ljspeech/wavs/LJ044-0006.wav|tests/data/ljspeech/wavs/LJ044-0006.npy +tests/data/ljspeech/wavs/LJ015-0026.wav|tests/data/ljspeech/wavs/LJ015-0026.npy +tests/data/ljspeech/wavs/LJ005-0149.wav|tests/data/ljspeech/wavs/LJ005-0149.npy +tests/data/ljspeech/wavs/LJ039-0149.wav|tests/data/ljspeech/wavs/LJ039-0149.npy +tests/data/ljspeech/wavs/LJ030-0012.wav|tests/data/ljspeech/wavs/LJ030-0012.npy +tests/data/ljspeech/wavs/LJ034-0054.wav|tests/data/ljspeech/wavs/LJ034-0054.npy +tests/data/ljspeech/wavs/LJ030-0069.wav|tests/data/ljspeech/wavs/LJ030-0069.npy +tests/data/ljspeech/wavs/LJ015-0044.wav|tests/data/ljspeech/wavs/LJ015-0044.npy +tests/data/ljspeech/wavs/LJ038-0129.wav|tests/data/ljspeech/wavs/LJ038-0129.npy +tests/data/ljspeech/wavs/LJ044-0050.wav|tests/data/ljspeech/wavs/LJ044-0050.npy +tests/data/ljspeech/wavs/LJ016-0024.wav|tests/data/ljspeech/wavs/LJ016-0024.npy +tests/data/ljspeech/wavs/LJ044-0094.wav|tests/data/ljspeech/wavs/LJ044-0094.npy +tests/data/ljspeech/wavs/LJ037-0149.wav|tests/data/ljspeech/wavs/LJ037-0149.npy +tests/data/ljspeech/wavs/LJ011-0137.wav|tests/data/ljspeech/wavs/LJ011-0137.npy +tests/data/ljspeech/wavs/LJ027-0093.wav|tests/data/ljspeech/wavs/LJ027-0093.npy +tests/data/ljspeech/wavs/LJ049-0210.wav|tests/data/ljspeech/wavs/LJ049-0210.npy +tests/data/ljspeech/wavs/LJ015-0261.wav|tests/data/ljspeech/wavs/LJ015-0261.npy +tests/data/ljspeech/wavs/LJ047-0250.wav|tests/data/ljspeech/wavs/LJ047-0250.npy +tests/data/ljspeech/wavs/LJ008-0067.wav|tests/data/ljspeech/wavs/LJ008-0067.npy +tests/data/ljspeech/wavs/LJ032-0199.wav|tests/data/ljspeech/wavs/LJ032-0199.npy +tests/data/ljspeech/wavs/LJ039-0174.wav|tests/data/ljspeech/wavs/LJ039-0174.npy +tests/data/ljspeech/wavs/LJ027-0179.wav|tests/data/ljspeech/wavs/LJ027-0179.npy +tests/data/ljspeech/wavs/LJ048-0094.wav|tests/data/ljspeech/wavs/LJ048-0094.npy +tests/data/ljspeech/wavs/LJ032-0207.wav|tests/data/ljspeech/wavs/LJ032-0207.npy +tests/data/ljspeech/wavs/LJ017-0068.wav|tests/data/ljspeech/wavs/LJ017-0068.npy +tests/data/ljspeech/wavs/LJ039-0187.wav|tests/data/ljspeech/wavs/LJ039-0187.npy +tests/data/ljspeech/wavs/LJ003-0075.wav|tests/data/ljspeech/wavs/LJ003-0075.npy +tests/data/ljspeech/wavs/LJ032-0115.wav|tests/data/ljspeech/wavs/LJ032-0115.npy +tests/data/ljspeech/wavs/LJ048-0054.wav|tests/data/ljspeech/wavs/LJ048-0054.npy +tests/data/ljspeech/wavs/LJ016-0297.wav|tests/data/ljspeech/wavs/LJ016-0297.npy +tests/data/ljspeech/wavs/LJ003-0002.wav|tests/data/ljspeech/wavs/LJ003-0002.npy +tests/data/ljspeech/wavs/LJ008-0188.wav|tests/data/ljspeech/wavs/LJ008-0188.npy +tests/data/ljspeech/wavs/LJ011-0113.wav|tests/data/ljspeech/wavs/LJ011-0113.npy +tests/data/ljspeech/wavs/LJ016-0229.wav|tests/data/ljspeech/wavs/LJ016-0229.npy +tests/data/ljspeech/wavs/LJ028-0493.wav|tests/data/ljspeech/wavs/LJ028-0493.npy +tests/data/ljspeech/wavs/LJ015-0297.wav|tests/data/ljspeech/wavs/LJ015-0297.npy +tests/data/ljspeech/wavs/LJ031-0229.wav|tests/data/ljspeech/wavs/LJ031-0229.npy +tests/data/ljspeech/wavs/LJ034-0043.wav|tests/data/ljspeech/wavs/LJ034-0043.npy +tests/data/ljspeech/wavs/LJ028-0291.wav|tests/data/ljspeech/wavs/LJ028-0291.npy +tests/data/ljspeech/wavs/LJ028-0127.wav|tests/data/ljspeech/wavs/LJ028-0127.npy +tests/data/ljspeech/wavs/LJ009-0001.wav|tests/data/ljspeech/wavs/LJ009-0001.npy +tests/data/ljspeech/wavs/LJ026-0116.wav|tests/data/ljspeech/wavs/LJ026-0116.npy +tests/data/ljspeech/wavs/LJ014-0181.wav|tests/data/ljspeech/wavs/LJ014-0181.npy +tests/data/ljspeech/wavs/LJ013-0112.wav|tests/data/ljspeech/wavs/LJ013-0112.npy +tests/data/ljspeech/wavs/LJ013-0007.wav|tests/data/ljspeech/wavs/LJ013-0007.npy +tests/data/ljspeech/wavs/LJ038-0269.wav|tests/data/ljspeech/wavs/LJ038-0269.npy +tests/data/ljspeech/wavs/LJ049-0078.wav|tests/data/ljspeech/wavs/LJ049-0078.npy +tests/data/ljspeech/wavs/LJ027-0026.wav|tests/data/ljspeech/wavs/LJ027-0026.npy +tests/data/ljspeech/wavs/LJ010-0316.wav|tests/data/ljspeech/wavs/LJ010-0316.npy +tests/data/ljspeech/wavs/LJ002-0249.wav|tests/data/ljspeech/wavs/LJ002-0249.npy +tests/data/ljspeech/wavs/LJ025-0006.wav|tests/data/ljspeech/wavs/LJ025-0006.npy +tests/data/ljspeech/wavs/LJ045-0035.wav|tests/data/ljspeech/wavs/LJ045-0035.npy +tests/data/ljspeech/wavs/LJ016-0133.wav|tests/data/ljspeech/wavs/LJ016-0133.npy +tests/data/ljspeech/wavs/LJ014-0159.wav|tests/data/ljspeech/wavs/LJ014-0159.npy +tests/data/ljspeech/wavs/LJ028-0190.wav|tests/data/ljspeech/wavs/LJ028-0190.npy +tests/data/ljspeech/wavs/LJ037-0028.wav|tests/data/ljspeech/wavs/LJ037-0028.npy +tests/data/ljspeech/wavs/LJ005-0292.wav|tests/data/ljspeech/wavs/LJ005-0292.npy +tests/data/ljspeech/wavs/LJ013-0198.wav|tests/data/ljspeech/wavs/LJ013-0198.npy +tests/data/ljspeech/wavs/LJ003-0254.wav|tests/data/ljspeech/wavs/LJ003-0254.npy +tests/data/ljspeech/wavs/LJ008-0046.wav|tests/data/ljspeech/wavs/LJ008-0046.npy +tests/data/ljspeech/wavs/LJ039-0088.wav|tests/data/ljspeech/wavs/LJ039-0088.npy +tests/data/ljspeech/wavs/LJ013-0224.wav|tests/data/ljspeech/wavs/LJ013-0224.npy +tests/data/ljspeech/wavs/LJ024-0121.wav|tests/data/ljspeech/wavs/LJ024-0121.npy +tests/data/ljspeech/wavs/LJ049-0139.wav|tests/data/ljspeech/wavs/LJ049-0139.npy +tests/data/ljspeech/wavs/LJ013-0241.wav|tests/data/ljspeech/wavs/LJ013-0241.npy +tests/data/ljspeech/wavs/LJ028-0162.wav|tests/data/ljspeech/wavs/LJ028-0162.npy +tests/data/ljspeech/wavs/LJ003-0242.wav|tests/data/ljspeech/wavs/LJ003-0242.npy +tests/data/ljspeech/wavs/LJ003-0198.wav|tests/data/ljspeech/wavs/LJ003-0198.npy +tests/data/ljspeech/wavs/LJ032-0145.wav|tests/data/ljspeech/wavs/LJ032-0145.npy +tests/data/ljspeech/wavs/LJ007-0095.wav|tests/data/ljspeech/wavs/LJ007-0095.npy +tests/data/ljspeech/wavs/LJ012-0289.wav|tests/data/ljspeech/wavs/LJ012-0289.npy +tests/data/ljspeech/wavs/LJ028-0167.wav|tests/data/ljspeech/wavs/LJ028-0167.npy +tests/data/ljspeech/wavs/LJ032-0045.wav|tests/data/ljspeech/wavs/LJ032-0045.npy +tests/data/ljspeech/wavs/LJ034-0112.wav|tests/data/ljspeech/wavs/LJ034-0112.npy +tests/data/ljspeech/wavs/LJ047-0127.wav|tests/data/ljspeech/wavs/LJ047-0127.npy +tests/data/ljspeech/wavs/LJ033-0030.wav|tests/data/ljspeech/wavs/LJ033-0030.npy +tests/data/ljspeech/wavs/LJ008-0001.wav|tests/data/ljspeech/wavs/LJ008-0001.npy +tests/data/ljspeech/wavs/LJ037-0051.wav|tests/data/ljspeech/wavs/LJ037-0051.npy +tests/data/ljspeech/wavs/LJ001-0153.wav|tests/data/ljspeech/wavs/LJ001-0153.npy +tests/data/ljspeech/wavs/LJ036-0030.wav|tests/data/ljspeech/wavs/LJ036-0030.npy +tests/data/ljspeech/wavs/LJ031-0082.wav|tests/data/ljspeech/wavs/LJ031-0082.npy +tests/data/ljspeech/wavs/LJ022-0140.wav|tests/data/ljspeech/wavs/LJ022-0140.npy +tests/data/ljspeech/wavs/LJ007-0064.wav|tests/data/ljspeech/wavs/LJ007-0064.npy +tests/data/ljspeech/wavs/LJ021-0140.wav|tests/data/ljspeech/wavs/LJ021-0140.npy +tests/data/ljspeech/wavs/LJ050-0072.wav|tests/data/ljspeech/wavs/LJ050-0072.npy +tests/data/ljspeech/wavs/LJ025-0096.wav|tests/data/ljspeech/wavs/LJ025-0096.npy +tests/data/ljspeech/wavs/LJ048-0159.wav|tests/data/ljspeech/wavs/LJ048-0159.npy +tests/data/ljspeech/wavs/LJ025-0056.wav|tests/data/ljspeech/wavs/LJ025-0056.npy +tests/data/ljspeech/wavs/LJ006-0161.wav|tests/data/ljspeech/wavs/LJ006-0161.npy +tests/data/ljspeech/wavs/LJ013-0046.wav|tests/data/ljspeech/wavs/LJ013-0046.npy +tests/data/ljspeech/wavs/LJ004-0067.wav|tests/data/ljspeech/wavs/LJ004-0067.npy +tests/data/ljspeech/wavs/LJ050-0159.wav|tests/data/ljspeech/wavs/LJ050-0159.npy +tests/data/ljspeech/wavs/LJ027-0129.wav|tests/data/ljspeech/wavs/LJ027-0129.npy +tests/data/ljspeech/wavs/LJ013-0245.wav|tests/data/ljspeech/wavs/LJ013-0245.npy +tests/data/ljspeech/wavs/LJ010-0134.wav|tests/data/ljspeech/wavs/LJ010-0134.npy +tests/data/ljspeech/wavs/LJ046-0097.wav|tests/data/ljspeech/wavs/LJ046-0097.npy +tests/data/ljspeech/wavs/LJ008-0003.wav|tests/data/ljspeech/wavs/LJ008-0003.npy +tests/data/ljspeech/wavs/LJ048-0053.wav|tests/data/ljspeech/wavs/LJ048-0053.npy +tests/data/ljspeech/wavs/LJ016-0071.wav|tests/data/ljspeech/wavs/LJ016-0071.npy +tests/data/ljspeech/wavs/LJ049-0133.wav|tests/data/ljspeech/wavs/LJ049-0133.npy +tests/data/ljspeech/wavs/LJ004-0075.wav|tests/data/ljspeech/wavs/LJ004-0075.npy +tests/data/ljspeech/wavs/LJ047-0226.wav|tests/data/ljspeech/wavs/LJ047-0226.npy +tests/data/ljspeech/wavs/LJ016-0044.wav|tests/data/ljspeech/wavs/LJ016-0044.npy +tests/data/ljspeech/wavs/LJ027-0117.wav|tests/data/ljspeech/wavs/LJ027-0117.npy +tests/data/ljspeech/wavs/LJ047-0040.wav|tests/data/ljspeech/wavs/LJ047-0040.npy +tests/data/ljspeech/wavs/LJ032-0149.wav|tests/data/ljspeech/wavs/LJ032-0149.npy +tests/data/ljspeech/wavs/LJ003-0035.wav|tests/data/ljspeech/wavs/LJ003-0035.npy +tests/data/ljspeech/wavs/LJ008-0192.wav|tests/data/ljspeech/wavs/LJ008-0192.npy +tests/data/ljspeech/wavs/LJ007-0242.wav|tests/data/ljspeech/wavs/LJ007-0242.npy +tests/data/ljspeech/wavs/LJ040-0172.wav|tests/data/ljspeech/wavs/LJ040-0172.npy +tests/data/ljspeech/wavs/LJ028-0001.wav|tests/data/ljspeech/wavs/LJ028-0001.npy +tests/data/ljspeech/wavs/LJ049-0120.wav|tests/data/ljspeech/wavs/LJ049-0120.npy +tests/data/ljspeech/wavs/LJ042-0239.wav|tests/data/ljspeech/wavs/LJ042-0239.npy +tests/data/ljspeech/wavs/LJ014-0174.wav|tests/data/ljspeech/wavs/LJ014-0174.npy +tests/data/ljspeech/wavs/LJ025-0031.wav|tests/data/ljspeech/wavs/LJ025-0031.npy +tests/data/ljspeech/wavs/LJ009-0287.wav|tests/data/ljspeech/wavs/LJ009-0287.npy +tests/data/ljspeech/wavs/LJ027-0136.wav|tests/data/ljspeech/wavs/LJ027-0136.npy +tests/data/ljspeech/wavs/LJ021-0025.wav|tests/data/ljspeech/wavs/LJ021-0025.npy +tests/data/ljspeech/wavs/LJ030-0118.wav|tests/data/ljspeech/wavs/LJ030-0118.npy +tests/data/ljspeech/wavs/LJ009-0302.wav|tests/data/ljspeech/wavs/LJ009-0302.npy +tests/data/ljspeech/wavs/LJ019-0310.wav|tests/data/ljspeech/wavs/LJ019-0310.npy +tests/data/ljspeech/wavs/LJ041-0138.wav|tests/data/ljspeech/wavs/LJ041-0138.npy +tests/data/ljspeech/wavs/LJ048-0281.wav|tests/data/ljspeech/wavs/LJ048-0281.npy +tests/data/ljspeech/wavs/LJ008-0115.wav|tests/data/ljspeech/wavs/LJ008-0115.npy +tests/data/ljspeech/wavs/LJ030-0235.wav|tests/data/ljspeech/wavs/LJ030-0235.npy +tests/data/ljspeech/wavs/LJ046-0216.wav|tests/data/ljspeech/wavs/LJ046-0216.npy +tests/data/ljspeech/wavs/LJ014-0295.wav|tests/data/ljspeech/wavs/LJ014-0295.npy +tests/data/ljspeech/wavs/LJ034-0029.wav|tests/data/ljspeech/wavs/LJ034-0029.npy +tests/data/ljspeech/wavs/LJ015-0034.wav|tests/data/ljspeech/wavs/LJ015-0034.npy +tests/data/ljspeech/wavs/LJ035-0044.wav|tests/data/ljspeech/wavs/LJ035-0044.npy +tests/data/ljspeech/wavs/LJ011-0221.wav|tests/data/ljspeech/wavs/LJ011-0221.npy +tests/data/ljspeech/wavs/LJ009-0268.wav|tests/data/ljspeech/wavs/LJ009-0268.npy +tests/data/ljspeech/wavs/LJ046-0186.wav|tests/data/ljspeech/wavs/LJ046-0186.npy +tests/data/ljspeech/wavs/LJ019-0294.wav|tests/data/ljspeech/wavs/LJ019-0294.npy +tests/data/ljspeech/wavs/LJ036-0007.wav|tests/data/ljspeech/wavs/LJ036-0007.npy +tests/data/ljspeech/wavs/LJ003-0141.wav|tests/data/ljspeech/wavs/LJ003-0141.npy +tests/data/ljspeech/wavs/LJ019-0038.wav|tests/data/ljspeech/wavs/LJ019-0038.npy +tests/data/ljspeech/wavs/LJ033-0184.wav|tests/data/ljspeech/wavs/LJ033-0184.npy +tests/data/ljspeech/wavs/LJ032-0132.wav|tests/data/ljspeech/wavs/LJ032-0132.npy +tests/data/ljspeech/wavs/LJ037-0209.wav|tests/data/ljspeech/wavs/LJ037-0209.npy +tests/data/ljspeech/wavs/LJ010-0057.wav|tests/data/ljspeech/wavs/LJ010-0057.npy +tests/data/ljspeech/wavs/LJ003-0083.wav|tests/data/ljspeech/wavs/LJ003-0083.npy +tests/data/ljspeech/wavs/LJ003-0183.wav|tests/data/ljspeech/wavs/LJ003-0183.npy +tests/data/ljspeech/wavs/LJ023-0054.wav|tests/data/ljspeech/wavs/LJ023-0054.npy +tests/data/ljspeech/wavs/LJ003-0114.wav|tests/data/ljspeech/wavs/LJ003-0114.npy +tests/data/ljspeech/wavs/LJ001-0080.wav|tests/data/ljspeech/wavs/LJ001-0080.npy +tests/data/ljspeech/wavs/LJ028-0030.wav|tests/data/ljspeech/wavs/LJ028-0030.npy +tests/data/ljspeech/wavs/LJ006-0303.wav|tests/data/ljspeech/wavs/LJ006-0303.npy +tests/data/ljspeech/wavs/LJ035-0071.wav|tests/data/ljspeech/wavs/LJ035-0071.npy +tests/data/ljspeech/wavs/LJ025-0163.wav|tests/data/ljspeech/wavs/LJ025-0163.npy +tests/data/ljspeech/wavs/LJ037-0214.wav|tests/data/ljspeech/wavs/LJ037-0214.npy +tests/data/ljspeech/wavs/LJ048-0225.wav|tests/data/ljspeech/wavs/LJ048-0225.npy +tests/data/ljspeech/wavs/LJ014-0247.wav|tests/data/ljspeech/wavs/LJ014-0247.npy +tests/data/ljspeech/wavs/LJ009-0032.wav|tests/data/ljspeech/wavs/LJ009-0032.npy +tests/data/ljspeech/wavs/LJ019-0245.wav|tests/data/ljspeech/wavs/LJ019-0245.npy +tests/data/ljspeech/wavs/LJ009-0182.wav|tests/data/ljspeech/wavs/LJ009-0182.npy +tests/data/ljspeech/wavs/LJ009-0085.wav|tests/data/ljspeech/wavs/LJ009-0085.npy +tests/data/ljspeech/wavs/LJ019-0067.wav|tests/data/ljspeech/wavs/LJ019-0067.npy +tests/data/ljspeech/wavs/LJ033-0039.wav|tests/data/ljspeech/wavs/LJ033-0039.npy +tests/data/ljspeech/wavs/LJ015-0215.wav|tests/data/ljspeech/wavs/LJ015-0215.npy +tests/data/ljspeech/wavs/LJ008-0061.wav|tests/data/ljspeech/wavs/LJ008-0061.npy +tests/data/ljspeech/wavs/LJ015-0151.wav|tests/data/ljspeech/wavs/LJ015-0151.npy +tests/data/ljspeech/wavs/LJ015-0231.wav|tests/data/ljspeech/wavs/LJ015-0231.npy +tests/data/ljspeech/wavs/LJ009-0191.wav|tests/data/ljspeech/wavs/LJ009-0191.npy +tests/data/ljspeech/wavs/LJ021-0034.wav|tests/data/ljspeech/wavs/LJ021-0034.npy +tests/data/ljspeech/wavs/LJ003-0092.wav|tests/data/ljspeech/wavs/LJ003-0092.npy +tests/data/ljspeech/wavs/LJ014-0063.wav|tests/data/ljspeech/wavs/LJ014-0063.npy +tests/data/ljspeech/wavs/LJ015-0183.wav|tests/data/ljspeech/wavs/LJ015-0183.npy +tests/data/ljspeech/wavs/LJ011-0022.wav|tests/data/ljspeech/wavs/LJ011-0022.npy +tests/data/ljspeech/wavs/LJ043-0070.wav|tests/data/ljspeech/wavs/LJ043-0070.npy +tests/data/ljspeech/wavs/LJ046-0056.wav|tests/data/ljspeech/wavs/LJ046-0056.npy +tests/data/ljspeech/wavs/LJ044-0188.wav|tests/data/ljspeech/wavs/LJ044-0188.npy +tests/data/ljspeech/wavs/LJ042-0005.wav|tests/data/ljspeech/wavs/LJ042-0005.npy +tests/data/ljspeech/wavs/LJ050-0059.wav|tests/data/ljspeech/wavs/LJ050-0059.npy +tests/data/ljspeech/wavs/LJ047-0104.wav|tests/data/ljspeech/wavs/LJ047-0104.npy +tests/data/ljspeech/wavs/LJ027-0063.wav|tests/data/ljspeech/wavs/LJ027-0063.npy +tests/data/ljspeech/wavs/LJ010-0292.wav|tests/data/ljspeech/wavs/LJ010-0292.npy +tests/data/ljspeech/wavs/LJ033-0018.wav|tests/data/ljspeech/wavs/LJ033-0018.npy +tests/data/ljspeech/wavs/LJ031-0060.wav|tests/data/ljspeech/wavs/LJ031-0060.npy +tests/data/ljspeech/wavs/LJ006-0214.wav|tests/data/ljspeech/wavs/LJ006-0214.npy +tests/data/ljspeech/wavs/LJ027-0085.wav|tests/data/ljspeech/wavs/LJ027-0085.npy +tests/data/ljspeech/wavs/LJ036-0052.wav|tests/data/ljspeech/wavs/LJ036-0052.npy +tests/data/ljspeech/wavs/LJ008-0234.wav|tests/data/ljspeech/wavs/LJ008-0234.npy +tests/data/ljspeech/wavs/LJ032-0263.wav|tests/data/ljspeech/wavs/LJ032-0263.npy +tests/data/ljspeech/wavs/LJ046-0157.wav|tests/data/ljspeech/wavs/LJ046-0157.npy +tests/data/ljspeech/wavs/LJ006-0241.wav|tests/data/ljspeech/wavs/LJ006-0241.npy +tests/data/ljspeech/wavs/LJ049-0050.wav|tests/data/ljspeech/wavs/LJ049-0050.npy +tests/data/ljspeech/wavs/LJ009-0039.wav|tests/data/ljspeech/wavs/LJ009-0039.npy +tests/data/ljspeech/wavs/LJ040-0136.wav|tests/data/ljspeech/wavs/LJ040-0136.npy +tests/data/ljspeech/wavs/LJ040-0045.wav|tests/data/ljspeech/wavs/LJ040-0045.npy +tests/data/ljspeech/wavs/LJ016-0369.wav|tests/data/ljspeech/wavs/LJ016-0369.npy +tests/data/ljspeech/wavs/LJ035-0039.wav|tests/data/ljspeech/wavs/LJ035-0039.npy +tests/data/ljspeech/wavs/LJ017-0061.wav|tests/data/ljspeech/wavs/LJ017-0061.npy +tests/data/ljspeech/wavs/LJ049-0039.wav|tests/data/ljspeech/wavs/LJ049-0039.npy +tests/data/ljspeech/wavs/LJ027-0044.wav|tests/data/ljspeech/wavs/LJ027-0044.npy +tests/data/ljspeech/wavs/LJ019-0349.wav|tests/data/ljspeech/wavs/LJ019-0349.npy +tests/data/ljspeech/wavs/LJ028-0338.wav|tests/data/ljspeech/wavs/LJ028-0338.npy +tests/data/ljspeech/wavs/LJ028-0430.wav|tests/data/ljspeech/wavs/LJ028-0430.npy +tests/data/ljspeech/wavs/LJ011-0220.wav|tests/data/ljspeech/wavs/LJ011-0220.npy +tests/data/ljspeech/wavs/LJ018-0167.wav|tests/data/ljspeech/wavs/LJ018-0167.npy +tests/data/ljspeech/wavs/LJ013-0012.wav|tests/data/ljspeech/wavs/LJ013-0012.npy +tests/data/ljspeech/wavs/LJ001-0091.wav|tests/data/ljspeech/wavs/LJ001-0091.npy +tests/data/ljspeech/wavs/LJ026-0019.wav|tests/data/ljspeech/wavs/LJ026-0019.npy +tests/data/ljspeech/wavs/LJ022-0184.wav|tests/data/ljspeech/wavs/LJ022-0184.npy +tests/data/ljspeech/wavs/LJ017-0153.wav|tests/data/ljspeech/wavs/LJ017-0153.npy +tests/data/ljspeech/wavs/LJ016-0068.wav|tests/data/ljspeech/wavs/LJ016-0068.npy +tests/data/ljspeech/wavs/LJ015-0295.wav|tests/data/ljspeech/wavs/LJ015-0295.npy +tests/data/ljspeech/wavs/LJ050-0154.wav|tests/data/ljspeech/wavs/LJ050-0154.npy +tests/data/ljspeech/wavs/LJ006-0112.wav|tests/data/ljspeech/wavs/LJ006-0112.npy +tests/data/ljspeech/wavs/LJ041-0022.wav|tests/data/ljspeech/wavs/LJ041-0022.npy +tests/data/ljspeech/wavs/LJ046-0082.wav|tests/data/ljspeech/wavs/LJ046-0082.npy +tests/data/ljspeech/wavs/LJ006-0259.wav|tests/data/ljspeech/wavs/LJ006-0259.npy +tests/data/ljspeech/wavs/LJ034-0076.wav|tests/data/ljspeech/wavs/LJ034-0076.npy +tests/data/ljspeech/wavs/LJ039-0214.wav|tests/data/ljspeech/wavs/LJ039-0214.npy +tests/data/ljspeech/wavs/LJ007-0091.wav|tests/data/ljspeech/wavs/LJ007-0091.npy +tests/data/ljspeech/wavs/LJ030-0066.wav|tests/data/ljspeech/wavs/LJ030-0066.npy +tests/data/ljspeech/wavs/LJ041-0056.wav|tests/data/ljspeech/wavs/LJ041-0056.npy +tests/data/ljspeech/wavs/LJ003-0042.wav|tests/data/ljspeech/wavs/LJ003-0042.npy +tests/data/ljspeech/wavs/LJ001-0138.wav|tests/data/ljspeech/wavs/LJ001-0138.npy +tests/data/ljspeech/wavs/LJ020-0097.wav|tests/data/ljspeech/wavs/LJ020-0097.npy +tests/data/ljspeech/wavs/LJ039-0217.wav|tests/data/ljspeech/wavs/LJ039-0217.npy +tests/data/ljspeech/wavs/LJ017-0218.wav|tests/data/ljspeech/wavs/LJ017-0218.npy +tests/data/ljspeech/wavs/LJ032-0042.wav|tests/data/ljspeech/wavs/LJ032-0042.npy +tests/data/ljspeech/wavs/LJ011-0284.wav|tests/data/ljspeech/wavs/LJ011-0284.npy +tests/data/ljspeech/wavs/LJ002-0315.wav|tests/data/ljspeech/wavs/LJ002-0315.npy +tests/data/ljspeech/wavs/LJ049-0132.wav|tests/data/ljspeech/wavs/LJ049-0132.npy +tests/data/ljspeech/wavs/LJ009-0038.wav|tests/data/ljspeech/wavs/LJ009-0038.npy +tests/data/ljspeech/wavs/LJ003-0049.wav|tests/data/ljspeech/wavs/LJ003-0049.npy +tests/data/ljspeech/wavs/LJ028-0146.wav|tests/data/ljspeech/wavs/LJ028-0146.npy +tests/data/ljspeech/wavs/LJ005-0044.wav|tests/data/ljspeech/wavs/LJ005-0044.npy +tests/data/ljspeech/wavs/LJ007-0025.wav|tests/data/ljspeech/wavs/LJ007-0025.npy +tests/data/ljspeech/wavs/LJ043-0180.wav|tests/data/ljspeech/wavs/LJ043-0180.npy +tests/data/ljspeech/wavs/LJ037-0144.wav|tests/data/ljspeech/wavs/LJ037-0144.npy +tests/data/ljspeech/wavs/LJ041-0203.wav|tests/data/ljspeech/wavs/LJ041-0203.npy +tests/data/ljspeech/wavs/LJ019-0270.wav|tests/data/ljspeech/wavs/LJ019-0270.npy +tests/data/ljspeech/wavs/LJ026-0165.wav|tests/data/ljspeech/wavs/LJ026-0165.npy +tests/data/ljspeech/wavs/LJ044-0023.wav|tests/data/ljspeech/wavs/LJ044-0023.npy +tests/data/ljspeech/wavs/LJ048-0075.wav|tests/data/ljspeech/wavs/LJ048-0075.npy +tests/data/ljspeech/wavs/LJ025-0026.wav|tests/data/ljspeech/wavs/LJ025-0026.npy +tests/data/ljspeech/wavs/LJ028-0483.wav|tests/data/ljspeech/wavs/LJ028-0483.npy +tests/data/ljspeech/wavs/LJ001-0047.wav|tests/data/ljspeech/wavs/LJ001-0047.npy +tests/data/ljspeech/wavs/LJ025-0025.wav|tests/data/ljspeech/wavs/LJ025-0025.npy +tests/data/ljspeech/wavs/LJ026-0057.wav|tests/data/ljspeech/wavs/LJ026-0057.npy +tests/data/ljspeech/wavs/LJ021-0098.wav|tests/data/ljspeech/wavs/LJ021-0098.npy +tests/data/ljspeech/wavs/LJ019-0343.wav|tests/data/ljspeech/wavs/LJ019-0343.npy +tests/data/ljspeech/wavs/LJ004-0097.wav|tests/data/ljspeech/wavs/LJ004-0097.npy +tests/data/ljspeech/wavs/LJ006-0263.wav|tests/data/ljspeech/wavs/LJ006-0263.npy +tests/data/ljspeech/wavs/LJ006-0039.wav|tests/data/ljspeech/wavs/LJ006-0039.npy +tests/data/ljspeech/wavs/LJ014-0229.wav|tests/data/ljspeech/wavs/LJ014-0229.npy +tests/data/ljspeech/wavs/LJ015-0259.wav|tests/data/ljspeech/wavs/LJ015-0259.npy +tests/data/ljspeech/wavs/LJ042-0152.wav|tests/data/ljspeech/wavs/LJ042-0152.npy +tests/data/ljspeech/wavs/LJ031-0043.wav|tests/data/ljspeech/wavs/LJ031-0043.npy +tests/data/ljspeech/wavs/LJ041-0154.wav|tests/data/ljspeech/wavs/LJ041-0154.npy +tests/data/ljspeech/wavs/LJ029-0051.wav|tests/data/ljspeech/wavs/LJ029-0051.npy +tests/data/ljspeech/wavs/LJ018-0126.wav|tests/data/ljspeech/wavs/LJ018-0126.npy +tests/data/ljspeech/wavs/LJ004-0148.wav|tests/data/ljspeech/wavs/LJ004-0148.npy +tests/data/ljspeech/wavs/LJ005-0084.wav|tests/data/ljspeech/wavs/LJ005-0084.npy +tests/data/ljspeech/wavs/LJ021-0128.wav|tests/data/ljspeech/wavs/LJ021-0128.npy +tests/data/ljspeech/wavs/LJ047-0075.wav|tests/data/ljspeech/wavs/LJ047-0075.npy +tests/data/ljspeech/wavs/LJ035-0078.wav|tests/data/ljspeech/wavs/LJ035-0078.npy +tests/data/ljspeech/wavs/LJ018-0334.wav|tests/data/ljspeech/wavs/LJ018-0334.npy +tests/data/ljspeech/wavs/LJ012-0212.wav|tests/data/ljspeech/wavs/LJ012-0212.npy +tests/data/ljspeech/wavs/LJ011-0256.wav|tests/data/ljspeech/wavs/LJ011-0256.npy +tests/data/ljspeech/wavs/LJ016-0212.wav|tests/data/ljspeech/wavs/LJ016-0212.npy +tests/data/ljspeech/wavs/LJ044-0222.wav|tests/data/ljspeech/wavs/LJ044-0222.npy +tests/data/ljspeech/wavs/LJ032-0027.wav|tests/data/ljspeech/wavs/LJ032-0027.npy +tests/data/ljspeech/wavs/LJ050-0177.wav|tests/data/ljspeech/wavs/LJ050-0177.npy +tests/data/ljspeech/wavs/LJ039-0137.wav|tests/data/ljspeech/wavs/LJ039-0137.npy +tests/data/ljspeech/wavs/LJ012-0092.wav|tests/data/ljspeech/wavs/LJ012-0092.npy +tests/data/ljspeech/wavs/LJ037-0012.wav|tests/data/ljspeech/wavs/LJ037-0012.npy +tests/data/ljspeech/wavs/LJ034-0188.wav|tests/data/ljspeech/wavs/LJ034-0188.npy +tests/data/ljspeech/wavs/LJ004-0111.wav|tests/data/ljspeech/wavs/LJ004-0111.npy +tests/data/ljspeech/wavs/LJ002-0331.wav|tests/data/ljspeech/wavs/LJ002-0331.npy +tests/data/ljspeech/wavs/LJ049-0052.wav|tests/data/ljspeech/wavs/LJ049-0052.npy +tests/data/ljspeech/wavs/LJ013-0126.wav|tests/data/ljspeech/wavs/LJ013-0126.npy +tests/data/ljspeech/wavs/LJ001-0118.wav|tests/data/ljspeech/wavs/LJ001-0118.npy +tests/data/ljspeech/wavs/LJ033-0168.wav|tests/data/ljspeech/wavs/LJ033-0168.npy +tests/data/ljspeech/wavs/LJ008-0273.wav|tests/data/ljspeech/wavs/LJ008-0273.npy +tests/data/ljspeech/wavs/LJ008-0138.wav|tests/data/ljspeech/wavs/LJ008-0138.npy +tests/data/ljspeech/wavs/LJ031-0130.wav|tests/data/ljspeech/wavs/LJ031-0130.npy +tests/data/ljspeech/wavs/LJ008-0017.wav|tests/data/ljspeech/wavs/LJ008-0017.npy +tests/data/ljspeech/wavs/LJ015-0107.wav|tests/data/ljspeech/wavs/LJ015-0107.npy +tests/data/ljspeech/wavs/LJ048-0082.wav|tests/data/ljspeech/wavs/LJ048-0082.npy +tests/data/ljspeech/wavs/LJ039-0019.wav|tests/data/ljspeech/wavs/LJ039-0019.npy +tests/data/ljspeech/wavs/LJ029-0100.wav|tests/data/ljspeech/wavs/LJ029-0100.npy +tests/data/ljspeech/wavs/LJ028-0359.wav|tests/data/ljspeech/wavs/LJ028-0359.npy +tests/data/ljspeech/wavs/LJ015-0021.wav|tests/data/ljspeech/wavs/LJ015-0021.npy +tests/data/ljspeech/wavs/LJ028-0067.wav|tests/data/ljspeech/wavs/LJ028-0067.npy +tests/data/ljspeech/wavs/LJ047-0054.wav|tests/data/ljspeech/wavs/LJ047-0054.npy +tests/data/ljspeech/wavs/LJ006-0029.wav|tests/data/ljspeech/wavs/LJ006-0029.npy +tests/data/ljspeech/wavs/LJ010-0178.wav|tests/data/ljspeech/wavs/LJ010-0178.npy +tests/data/ljspeech/wavs/LJ016-0290.wav|tests/data/ljspeech/wavs/LJ016-0290.npy +tests/data/ljspeech/wavs/LJ019-0108.wav|tests/data/ljspeech/wavs/LJ019-0108.npy +tests/data/ljspeech/wavs/LJ001-0108.wav|tests/data/ljspeech/wavs/LJ001-0108.npy +tests/data/ljspeech/wavs/LJ003-0311.wav|tests/data/ljspeech/wavs/LJ003-0311.npy +tests/data/ljspeech/wavs/LJ028-0478.wav|tests/data/ljspeech/wavs/LJ028-0478.npy +tests/data/ljspeech/wavs/LJ032-0035.wav|tests/data/ljspeech/wavs/LJ032-0035.npy +tests/data/ljspeech/wavs/LJ044-0010.wav|tests/data/ljspeech/wavs/LJ044-0010.npy +tests/data/ljspeech/wavs/LJ039-0105.wav|tests/data/ljspeech/wavs/LJ039-0105.npy +tests/data/ljspeech/wavs/LJ028-0425.wav|tests/data/ljspeech/wavs/LJ028-0425.npy +tests/data/ljspeech/wavs/LJ034-0041.wav|tests/data/ljspeech/wavs/LJ034-0041.npy +tests/data/ljspeech/wavs/LJ012-0069.wav|tests/data/ljspeech/wavs/LJ012-0069.npy +tests/data/ljspeech/wavs/LJ045-0242.wav|tests/data/ljspeech/wavs/LJ045-0242.npy +tests/data/ljspeech/wavs/LJ030-0039.wav|tests/data/ljspeech/wavs/LJ030-0039.npy +tests/data/ljspeech/wavs/LJ021-0204.wav|tests/data/ljspeech/wavs/LJ021-0204.npy +tests/data/ljspeech/wavs/LJ050-0123.wav|tests/data/ljspeech/wavs/LJ050-0123.npy +tests/data/ljspeech/wavs/LJ025-0087.wav|tests/data/ljspeech/wavs/LJ025-0087.npy +tests/data/ljspeech/wavs/LJ044-0134.wav|tests/data/ljspeech/wavs/LJ044-0134.npy +tests/data/ljspeech/wavs/LJ046-0016.wav|tests/data/ljspeech/wavs/LJ046-0016.npy +tests/data/ljspeech/wavs/LJ015-0301.wav|tests/data/ljspeech/wavs/LJ015-0301.npy +tests/data/ljspeech/wavs/LJ041-0018.wav|tests/data/ljspeech/wavs/LJ041-0018.npy +tests/data/ljspeech/wavs/LJ030-0070.wav|tests/data/ljspeech/wavs/LJ030-0070.npy +tests/data/ljspeech/wavs/LJ010-0267.wav|tests/data/ljspeech/wavs/LJ010-0267.npy +tests/data/ljspeech/wavs/LJ008-0227.wav|tests/data/ljspeech/wavs/LJ008-0227.npy +tests/data/ljspeech/wavs/LJ042-0032.wav|tests/data/ljspeech/wavs/LJ042-0032.npy +tests/data/ljspeech/wavs/LJ036-0015.wav|tests/data/ljspeech/wavs/LJ036-0015.npy +tests/data/ljspeech/wavs/LJ034-0082.wav|tests/data/ljspeech/wavs/LJ034-0082.npy +tests/data/ljspeech/wavs/LJ024-0113.wav|tests/data/ljspeech/wavs/LJ024-0113.npy +tests/data/ljspeech/wavs/LJ004-0063.wav|tests/data/ljspeech/wavs/LJ004-0063.npy +tests/data/ljspeech/wavs/LJ036-0100.wav|tests/data/ljspeech/wavs/LJ036-0100.npy +tests/data/ljspeech/wavs/LJ022-0035.wav|tests/data/ljspeech/wavs/LJ022-0035.npy +tests/data/ljspeech/wavs/LJ003-0014.wav|tests/data/ljspeech/wavs/LJ003-0014.npy +tests/data/ljspeech/wavs/LJ013-0232.wav|tests/data/ljspeech/wavs/LJ013-0232.npy +tests/data/ljspeech/wavs/LJ013-0195.wav|tests/data/ljspeech/wavs/LJ013-0195.npy +tests/data/ljspeech/wavs/LJ045-0206.wav|tests/data/ljspeech/wavs/LJ045-0206.npy +tests/data/ljspeech/wavs/LJ008-0102.wav|tests/data/ljspeech/wavs/LJ008-0102.npy +tests/data/ljspeech/wavs/LJ007-0123.wav|tests/data/ljspeech/wavs/LJ007-0123.npy +tests/data/ljspeech/wavs/LJ003-0165.wav|tests/data/ljspeech/wavs/LJ003-0165.npy +tests/data/ljspeech/wavs/LJ023-0023.wav|tests/data/ljspeech/wavs/LJ023-0023.npy +tests/data/ljspeech/wavs/LJ040-0066.wav|tests/data/ljspeech/wavs/LJ040-0066.npy +tests/data/ljspeech/wavs/LJ035-0161.wav|tests/data/ljspeech/wavs/LJ035-0161.npy +tests/data/ljspeech/wavs/LJ038-0010.wav|tests/data/ljspeech/wavs/LJ038-0010.npy +tests/data/ljspeech/wavs/LJ015-0311.wav|tests/data/ljspeech/wavs/LJ015-0311.npy +tests/data/ljspeech/wavs/LJ003-0093.wav|tests/data/ljspeech/wavs/LJ003-0093.npy +tests/data/ljspeech/wavs/LJ001-0048.wav|tests/data/ljspeech/wavs/LJ001-0048.npy +tests/data/ljspeech/wavs/LJ021-0051.wav|tests/data/ljspeech/wavs/LJ021-0051.npy +tests/data/ljspeech/wavs/LJ014-0261.wav|tests/data/ljspeech/wavs/LJ014-0261.npy +tests/data/ljspeech/wavs/LJ027-0069.wav|tests/data/ljspeech/wavs/LJ027-0069.npy +tests/data/ljspeech/wavs/LJ031-0048.wav|tests/data/ljspeech/wavs/LJ031-0048.npy +tests/data/ljspeech/wavs/LJ023-0049.wav|tests/data/ljspeech/wavs/LJ023-0049.npy +tests/data/ljspeech/wavs/LJ038-0009.wav|tests/data/ljspeech/wavs/LJ038-0009.npy +tests/data/ljspeech/wavs/LJ028-0240.wav|tests/data/ljspeech/wavs/LJ028-0240.npy +tests/data/ljspeech/wavs/LJ015-0305.wav|tests/data/ljspeech/wavs/LJ015-0305.npy +tests/data/ljspeech/wavs/LJ049-0169.wav|tests/data/ljspeech/wavs/LJ049-0169.npy +tests/data/ljspeech/wavs/LJ004-0214.wav|tests/data/ljspeech/wavs/LJ004-0214.npy +tests/data/ljspeech/wavs/LJ036-0189.wav|tests/data/ljspeech/wavs/LJ036-0189.npy +tests/data/ljspeech/wavs/LJ050-0110.wav|tests/data/ljspeech/wavs/LJ050-0110.npy +tests/data/ljspeech/wavs/LJ001-0064.wav|tests/data/ljspeech/wavs/LJ001-0064.npy +tests/data/ljspeech/wavs/LJ045-0158.wav|tests/data/ljspeech/wavs/LJ045-0158.npy +tests/data/ljspeech/wavs/LJ044-0159.wav|tests/data/ljspeech/wavs/LJ044-0159.npy +tests/data/ljspeech/wavs/LJ015-0003.wav|tests/data/ljspeech/wavs/LJ015-0003.npy +tests/data/ljspeech/wavs/LJ021-0106.wav|tests/data/ljspeech/wavs/LJ021-0106.npy +tests/data/ljspeech/wavs/LJ040-0069.wav|tests/data/ljspeech/wavs/LJ040-0069.npy +tests/data/ljspeech/wavs/LJ005-0198.wav|tests/data/ljspeech/wavs/LJ005-0198.npy +tests/data/ljspeech/wavs/LJ014-0286.wav|tests/data/ljspeech/wavs/LJ014-0286.npy +tests/data/ljspeech/wavs/LJ039-0178.wav|tests/data/ljspeech/wavs/LJ039-0178.npy +tests/data/ljspeech/wavs/LJ004-0212.wav|tests/data/ljspeech/wavs/LJ004-0212.npy +tests/data/ljspeech/wavs/LJ003-0157.wav|tests/data/ljspeech/wavs/LJ003-0157.npy +tests/data/ljspeech/wavs/LJ022-0011.wav|tests/data/ljspeech/wavs/LJ022-0011.npy +tests/data/ljspeech/wavs/LJ009-0069.wav|tests/data/ljspeech/wavs/LJ009-0069.npy +tests/data/ljspeech/wavs/LJ011-0040.wav|tests/data/ljspeech/wavs/LJ011-0040.npy +tests/data/ljspeech/wavs/LJ034-0022.wav|tests/data/ljspeech/wavs/LJ034-0022.npy +tests/data/ljspeech/wavs/LJ011-0063.wav|tests/data/ljspeech/wavs/LJ011-0063.npy +tests/data/ljspeech/wavs/LJ046-0067.wav|tests/data/ljspeech/wavs/LJ046-0067.npy +tests/data/ljspeech/wavs/LJ002-0177.wav|tests/data/ljspeech/wavs/LJ002-0177.npy +tests/data/ljspeech/wavs/LJ046-0198.wav|tests/data/ljspeech/wavs/LJ046-0198.npy +tests/data/ljspeech/wavs/LJ022-0082.wav|tests/data/ljspeech/wavs/LJ022-0082.npy +tests/data/ljspeech/wavs/LJ009-0184.wav|tests/data/ljspeech/wavs/LJ009-0184.npy +tests/data/ljspeech/wavs/LJ050-0147.wav|tests/data/ljspeech/wavs/LJ050-0147.npy +tests/data/ljspeech/wavs/LJ005-0144.wav|tests/data/ljspeech/wavs/LJ005-0144.npy +tests/data/ljspeech/wavs/LJ003-0166.wav|tests/data/ljspeech/wavs/LJ003-0166.npy +tests/data/ljspeech/wavs/LJ011-0102.wav|tests/data/ljspeech/wavs/LJ011-0102.npy +tests/data/ljspeech/wavs/LJ010-0046.wav|tests/data/ljspeech/wavs/LJ010-0046.npy +tests/data/ljspeech/wavs/LJ025-0023.wav|tests/data/ljspeech/wavs/LJ025-0023.npy +tests/data/ljspeech/wavs/LJ025-0044.wav|tests/data/ljspeech/wavs/LJ025-0044.npy +tests/data/ljspeech/wavs/LJ010-0257.wav|tests/data/ljspeech/wavs/LJ010-0257.npy +tests/data/ljspeech/wavs/LJ027-0054.wav|tests/data/ljspeech/wavs/LJ027-0054.npy +tests/data/ljspeech/wavs/LJ041-0052.wav|tests/data/ljspeech/wavs/LJ041-0052.npy +tests/data/ljspeech/wavs/LJ006-0250.wav|tests/data/ljspeech/wavs/LJ006-0250.npy +tests/data/ljspeech/wavs/LJ028-0488.wav|tests/data/ljspeech/wavs/LJ028-0488.npy +tests/data/ljspeech/wavs/LJ030-0064.wav|tests/data/ljspeech/wavs/LJ030-0064.npy +tests/data/ljspeech/wavs/LJ015-0141.wav|tests/data/ljspeech/wavs/LJ015-0141.npy +tests/data/ljspeech/wavs/LJ029-0118.wav|tests/data/ljspeech/wavs/LJ029-0118.npy +tests/data/ljspeech/wavs/LJ039-0051.wav|tests/data/ljspeech/wavs/LJ039-0051.npy +tests/data/ljspeech/wavs/LJ016-0116.wav|tests/data/ljspeech/wavs/LJ016-0116.npy +tests/data/ljspeech/wavs/LJ015-0079.wav|tests/data/ljspeech/wavs/LJ015-0079.npy +tests/data/ljspeech/wavs/LJ003-0089.wav|tests/data/ljspeech/wavs/LJ003-0089.npy +tests/data/ljspeech/wavs/LJ016-0413.wav|tests/data/ljspeech/wavs/LJ016-0413.npy +tests/data/ljspeech/wavs/LJ036-0096.wav|tests/data/ljspeech/wavs/LJ036-0096.npy +tests/data/ljspeech/wavs/LJ012-0172.wav|tests/data/ljspeech/wavs/LJ012-0172.npy +tests/data/ljspeech/wavs/LJ016-0078.wav|tests/data/ljspeech/wavs/LJ016-0078.npy +tests/data/ljspeech/wavs/LJ014-0040.wav|tests/data/ljspeech/wavs/LJ014-0040.npy +tests/data/ljspeech/wavs/LJ033-0139.wav|tests/data/ljspeech/wavs/LJ033-0139.npy +tests/data/ljspeech/wavs/LJ047-0009.wav|tests/data/ljspeech/wavs/LJ047-0009.npy +tests/data/ljspeech/wavs/LJ047-0116.wav|tests/data/ljspeech/wavs/LJ047-0116.npy +tests/data/ljspeech/wavs/LJ032-0217.wav|tests/data/ljspeech/wavs/LJ032-0217.npy +tests/data/ljspeech/wavs/LJ001-0093.wav|tests/data/ljspeech/wavs/LJ001-0093.npy +tests/data/ljspeech/wavs/LJ027-0155.wav|tests/data/ljspeech/wavs/LJ027-0155.npy +tests/data/ljspeech/wavs/LJ025-0143.wav|tests/data/ljspeech/wavs/LJ025-0143.npy +tests/data/ljspeech/wavs/LJ018-0258.wav|tests/data/ljspeech/wavs/LJ018-0258.npy +tests/data/ljspeech/wavs/LJ045-0193.wav|tests/data/ljspeech/wavs/LJ045-0193.npy +tests/data/ljspeech/wavs/LJ013-0032.wav|tests/data/ljspeech/wavs/LJ013-0032.npy +tests/data/ljspeech/wavs/LJ018-0248.wav|tests/data/ljspeech/wavs/LJ018-0248.npy +tests/data/ljspeech/wavs/LJ017-0172.wav|tests/data/ljspeech/wavs/LJ017-0172.npy +tests/data/ljspeech/wavs/LJ016-0209.wav|tests/data/ljspeech/wavs/LJ016-0209.npy +tests/data/ljspeech/wavs/LJ013-0034.wav|tests/data/ljspeech/wavs/LJ013-0034.npy +tests/data/ljspeech/wavs/LJ047-0244.wav|tests/data/ljspeech/wavs/LJ047-0244.npy +tests/data/ljspeech/wavs/LJ017-0243.wav|tests/data/ljspeech/wavs/LJ017-0243.npy +tests/data/ljspeech/wavs/LJ043-0035.wav|tests/data/ljspeech/wavs/LJ043-0035.npy +tests/data/ljspeech/wavs/LJ030-0004.wav|tests/data/ljspeech/wavs/LJ030-0004.npy +tests/data/ljspeech/wavs/LJ047-0098.wav|tests/data/ljspeech/wavs/LJ047-0098.npy +tests/data/ljspeech/wavs/LJ028-0197.wav|tests/data/ljspeech/wavs/LJ028-0197.npy +tests/data/ljspeech/wavs/LJ044-0226.wav|tests/data/ljspeech/wavs/LJ044-0226.npy +tests/data/ljspeech/wavs/LJ005-0123.wav|tests/data/ljspeech/wavs/LJ005-0123.npy +tests/data/ljspeech/wavs/LJ013-0015.wav|tests/data/ljspeech/wavs/LJ013-0015.npy +tests/data/ljspeech/wavs/LJ018-0293.wav|tests/data/ljspeech/wavs/LJ018-0293.npy +tests/data/ljspeech/wavs/LJ039-0233.wav|tests/data/ljspeech/wavs/LJ039-0233.npy +tests/data/ljspeech/wavs/LJ018-0368.wav|tests/data/ljspeech/wavs/LJ018-0368.npy +tests/data/ljspeech/wavs/LJ036-0217.wav|tests/data/ljspeech/wavs/LJ036-0217.npy +tests/data/ljspeech/wavs/LJ009-0165.wav|tests/data/ljspeech/wavs/LJ009-0165.npy +tests/data/ljspeech/wavs/LJ013-0237.wav|tests/data/ljspeech/wavs/LJ013-0237.npy +tests/data/ljspeech/wavs/LJ005-0209.wav|tests/data/ljspeech/wavs/LJ005-0209.npy +tests/data/ljspeech/wavs/LJ019-0363.wav|tests/data/ljspeech/wavs/LJ019-0363.npy +tests/data/ljspeech/wavs/LJ018-0216.wav|tests/data/ljspeech/wavs/LJ018-0216.npy +tests/data/ljspeech/wavs/LJ045-0179.wav|tests/data/ljspeech/wavs/LJ045-0179.npy +tests/data/ljspeech/wavs/LJ017-0211.wav|tests/data/ljspeech/wavs/LJ017-0211.npy +tests/data/ljspeech/wavs/LJ013-0078.wav|tests/data/ljspeech/wavs/LJ013-0078.npy +tests/data/ljspeech/wavs/LJ016-0326.wav|tests/data/ljspeech/wavs/LJ016-0326.npy +tests/data/ljspeech/wavs/LJ042-0095.wav|tests/data/ljspeech/wavs/LJ042-0095.npy +tests/data/ljspeech/wavs/LJ038-0302.wav|tests/data/ljspeech/wavs/LJ038-0302.npy +tests/data/ljspeech/wavs/LJ026-0004.wav|tests/data/ljspeech/wavs/LJ026-0004.npy +tests/data/ljspeech/wavs/LJ031-0044.wav|tests/data/ljspeech/wavs/LJ031-0044.npy +tests/data/ljspeech/wavs/LJ046-0202.wav|tests/data/ljspeech/wavs/LJ046-0202.npy +tests/data/ljspeech/wavs/LJ044-0102.wav|tests/data/ljspeech/wavs/LJ044-0102.npy +tests/data/ljspeech/wavs/LJ027-0023.wav|tests/data/ljspeech/wavs/LJ027-0023.npy +tests/data/ljspeech/wavs/LJ039-0062.wav|tests/data/ljspeech/wavs/LJ039-0062.npy +tests/data/ljspeech/wavs/LJ013-0160.wav|tests/data/ljspeech/wavs/LJ013-0160.npy +tests/data/ljspeech/wavs/LJ024-0135.wav|tests/data/ljspeech/wavs/LJ024-0135.npy +tests/data/ljspeech/wavs/LJ003-0154.wav|tests/data/ljspeech/wavs/LJ003-0154.npy +tests/data/ljspeech/wavs/LJ047-0155.wav|tests/data/ljspeech/wavs/LJ047-0155.npy +tests/data/ljspeech/wavs/LJ011-0264.wav|tests/data/ljspeech/wavs/LJ011-0264.npy +tests/data/ljspeech/wavs/LJ006-0234.wav|tests/data/ljspeech/wavs/LJ006-0234.npy +tests/data/ljspeech/wavs/LJ012-0271.wav|tests/data/ljspeech/wavs/LJ012-0271.npy +tests/data/ljspeech/wavs/LJ014-0065.wav|tests/data/ljspeech/wavs/LJ014-0065.npy +tests/data/ljspeech/wavs/LJ028-0082.wav|tests/data/ljspeech/wavs/LJ028-0082.npy +tests/data/ljspeech/wavs/LJ013-0180.wav|tests/data/ljspeech/wavs/LJ013-0180.npy +tests/data/ljspeech/wavs/LJ038-0039.wav|tests/data/ljspeech/wavs/LJ038-0039.npy +tests/data/ljspeech/wavs/LJ049-0037.wav|tests/data/ljspeech/wavs/LJ049-0037.npy +tests/data/ljspeech/wavs/LJ048-0061.wav|tests/data/ljspeech/wavs/LJ048-0061.npy +tests/data/ljspeech/wavs/LJ016-0367.wav|tests/data/ljspeech/wavs/LJ016-0367.npy +tests/data/ljspeech/wavs/LJ047-0064.wav|tests/data/ljspeech/wavs/LJ047-0064.npy +tests/data/ljspeech/wavs/LJ028-0263.wav|tests/data/ljspeech/wavs/LJ028-0263.npy +tests/data/ljspeech/wavs/LJ003-0208.wav|tests/data/ljspeech/wavs/LJ003-0208.npy +tests/data/ljspeech/wavs/LJ015-0049.wav|tests/data/ljspeech/wavs/LJ015-0049.npy +tests/data/ljspeech/wavs/LJ029-0007.wav|tests/data/ljspeech/wavs/LJ029-0007.npy +tests/data/ljspeech/wavs/LJ002-0073.wav|tests/data/ljspeech/wavs/LJ002-0073.npy +tests/data/ljspeech/wavs/LJ039-0028.wav|tests/data/ljspeech/wavs/LJ039-0028.npy +tests/data/ljspeech/wavs/LJ013-0051.wav|tests/data/ljspeech/wavs/LJ013-0051.npy +tests/data/ljspeech/wavs/LJ046-0197.wav|tests/data/ljspeech/wavs/LJ046-0197.npy +tests/data/ljspeech/wavs/LJ012-0264.wav|tests/data/ljspeech/wavs/LJ012-0264.npy +tests/data/ljspeech/wavs/LJ041-0045.wav|tests/data/ljspeech/wavs/LJ041-0045.npy +tests/data/ljspeech/wavs/LJ021-0056.wav|tests/data/ljspeech/wavs/LJ021-0056.npy +tests/data/ljspeech/wavs/LJ008-0132.wav|tests/data/ljspeech/wavs/LJ008-0132.npy +tests/data/ljspeech/wavs/LJ028-0225.wav|tests/data/ljspeech/wavs/LJ028-0225.npy +tests/data/ljspeech/wavs/LJ028-0094.wav|tests/data/ljspeech/wavs/LJ028-0094.npy +tests/data/ljspeech/wavs/LJ009-0245.wav|tests/data/ljspeech/wavs/LJ009-0245.npy +tests/data/ljspeech/wavs/LJ044-0126.wav|tests/data/ljspeech/wavs/LJ044-0126.npy +tests/data/ljspeech/wavs/LJ028-0337.wav|tests/data/ljspeech/wavs/LJ028-0337.npy +tests/data/ljspeech/wavs/LJ009-0134.wav|tests/data/ljspeech/wavs/LJ009-0134.npy +tests/data/ljspeech/wavs/LJ032-0119.wav|tests/data/ljspeech/wavs/LJ032-0119.npy +tests/data/ljspeech/wavs/LJ004-0116.wav|tests/data/ljspeech/wavs/LJ004-0116.npy +tests/data/ljspeech/wavs/LJ007-0112.wav|tests/data/ljspeech/wavs/LJ007-0112.npy +tests/data/ljspeech/wavs/LJ003-0152.wav|tests/data/ljspeech/wavs/LJ003-0152.npy +tests/data/ljspeech/wavs/LJ035-0100.wav|tests/data/ljspeech/wavs/LJ035-0100.npy +tests/data/ljspeech/wavs/LJ010-0223.wav|tests/data/ljspeech/wavs/LJ010-0223.npy +tests/data/ljspeech/wavs/LJ014-0135.wav|tests/data/ljspeech/wavs/LJ014-0135.npy +tests/data/ljspeech/wavs/LJ019-0157.wav|tests/data/ljspeech/wavs/LJ019-0157.npy +tests/data/ljspeech/wavs/LJ020-0055.wav|tests/data/ljspeech/wavs/LJ020-0055.npy +tests/data/ljspeech/wavs/LJ030-0199.wav|tests/data/ljspeech/wavs/LJ030-0199.npy +tests/data/ljspeech/wavs/LJ028-0327.wav|tests/data/ljspeech/wavs/LJ028-0327.npy +tests/data/ljspeech/wavs/LJ033-0067.wav|tests/data/ljspeech/wavs/LJ033-0067.npy +tests/data/ljspeech/wavs/LJ013-0185.wav|tests/data/ljspeech/wavs/LJ013-0185.npy +tests/data/ljspeech/wavs/LJ019-0318.wav|tests/data/ljspeech/wavs/LJ019-0318.npy +tests/data/ljspeech/wavs/LJ012-0130.wav|tests/data/ljspeech/wavs/LJ012-0130.npy +tests/data/ljspeech/wavs/LJ012-0219.wav|tests/data/ljspeech/wavs/LJ012-0219.npy +tests/data/ljspeech/wavs/LJ012-0236.wav|tests/data/ljspeech/wavs/LJ012-0236.npy +tests/data/ljspeech/wavs/LJ038-0178.wav|tests/data/ljspeech/wavs/LJ038-0178.npy +tests/data/ljspeech/wavs/LJ048-0242.wav|tests/data/ljspeech/wavs/LJ048-0242.npy +tests/data/ljspeech/wavs/LJ041-0133.wav|tests/data/ljspeech/wavs/LJ041-0133.npy +tests/data/ljspeech/wavs/LJ017-0125.wav|tests/data/ljspeech/wavs/LJ017-0125.npy +tests/data/ljspeech/wavs/LJ033-0080.wav|tests/data/ljspeech/wavs/LJ033-0080.npy +tests/data/ljspeech/wavs/LJ044-0062.wav|tests/data/ljspeech/wavs/LJ044-0062.npy +tests/data/ljspeech/wavs/LJ028-0088.wav|tests/data/ljspeech/wavs/LJ028-0088.npy +tests/data/ljspeech/wavs/LJ022-0041.wav|tests/data/ljspeech/wavs/LJ022-0041.npy +tests/data/ljspeech/wavs/LJ038-0218.wav|tests/data/ljspeech/wavs/LJ038-0218.npy +tests/data/ljspeech/wavs/LJ033-0162.wav|tests/data/ljspeech/wavs/LJ033-0162.npy +tests/data/ljspeech/wavs/LJ048-0097.wav|tests/data/ljspeech/wavs/LJ048-0097.npy +tests/data/ljspeech/wavs/LJ029-0207.wav|tests/data/ljspeech/wavs/LJ029-0207.npy +tests/data/ljspeech/wavs/LJ025-0123.wav|tests/data/ljspeech/wavs/LJ025-0123.npy +tests/data/ljspeech/wavs/LJ012-0221.wav|tests/data/ljspeech/wavs/LJ012-0221.npy +tests/data/ljspeech/wavs/LJ028-0340.wav|tests/data/ljspeech/wavs/LJ028-0340.npy +tests/data/ljspeech/wavs/LJ013-0017.wav|tests/data/ljspeech/wavs/LJ013-0017.npy +tests/data/ljspeech/wavs/LJ005-0102.wav|tests/data/ljspeech/wavs/LJ005-0102.npy +tests/data/ljspeech/wavs/LJ012-0218.wav|tests/data/ljspeech/wavs/LJ012-0218.npy +tests/data/ljspeech/wavs/LJ013-0266.wav|tests/data/ljspeech/wavs/LJ013-0266.npy +tests/data/ljspeech/wavs/LJ046-0068.wav|tests/data/ljspeech/wavs/LJ046-0068.npy +tests/data/ljspeech/wavs/LJ020-0102.wav|tests/data/ljspeech/wavs/LJ020-0102.npy +tests/data/ljspeech/wavs/LJ038-0241.wav|tests/data/ljspeech/wavs/LJ038-0241.npy +tests/data/ljspeech/wavs/LJ003-0209.wav|tests/data/ljspeech/wavs/LJ003-0209.npy +tests/data/ljspeech/wavs/LJ043-0139.wav|tests/data/ljspeech/wavs/LJ043-0139.npy +tests/data/ljspeech/wavs/LJ014-0031.wav|tests/data/ljspeech/wavs/LJ014-0031.npy +tests/data/ljspeech/wavs/LJ032-0111.wav|tests/data/ljspeech/wavs/LJ032-0111.npy +tests/data/ljspeech/wavs/LJ019-0288.wav|tests/data/ljspeech/wavs/LJ019-0288.npy +tests/data/ljspeech/wavs/LJ020-0108.wav|tests/data/ljspeech/wavs/LJ020-0108.npy +tests/data/ljspeech/wavs/LJ018-0037.wav|tests/data/ljspeech/wavs/LJ018-0037.npy +tests/data/ljspeech/wavs/LJ003-0248.wav|tests/data/ljspeech/wavs/LJ003-0248.npy +tests/data/ljspeech/wavs/LJ035-0089.wav|tests/data/ljspeech/wavs/LJ035-0089.npy +tests/data/ljspeech/wavs/LJ001-0131.wav|tests/data/ljspeech/wavs/LJ001-0131.npy +tests/data/ljspeech/wavs/LJ005-0068.wav|tests/data/ljspeech/wavs/LJ005-0068.npy +tests/data/ljspeech/wavs/LJ038-0212.wav|tests/data/ljspeech/wavs/LJ038-0212.npy +tests/data/ljspeech/wavs/LJ032-0043.wav|tests/data/ljspeech/wavs/LJ032-0043.npy +tests/data/ljspeech/wavs/LJ044-0172.wav|tests/data/ljspeech/wavs/LJ044-0172.npy +tests/data/ljspeech/wavs/LJ016-0097.wav|tests/data/ljspeech/wavs/LJ016-0097.npy +tests/data/ljspeech/wavs/LJ050-0118.wav|tests/data/ljspeech/wavs/LJ050-0118.npy +tests/data/ljspeech/wavs/LJ022-0098.wav|tests/data/ljspeech/wavs/LJ022-0098.npy +tests/data/ljspeech/wavs/LJ029-0005.wav|tests/data/ljspeech/wavs/LJ029-0005.npy +tests/data/ljspeech/wavs/LJ049-0065.wav|tests/data/ljspeech/wavs/LJ049-0065.npy +tests/data/ljspeech/wavs/LJ022-0099.wav|tests/data/ljspeech/wavs/LJ022-0099.npy +tests/data/ljspeech/wavs/LJ018-0366.wav|tests/data/ljspeech/wavs/LJ018-0366.npy +tests/data/ljspeech/wavs/LJ038-0032.wav|tests/data/ljspeech/wavs/LJ038-0032.npy +tests/data/ljspeech/wavs/LJ018-0365.wav|tests/data/ljspeech/wavs/LJ018-0365.npy +tests/data/ljspeech/wavs/LJ015-0210.wav|tests/data/ljspeech/wavs/LJ015-0210.npy +tests/data/ljspeech/wavs/LJ047-0010.wav|tests/data/ljspeech/wavs/LJ047-0010.npy +tests/data/ljspeech/wavs/LJ032-0097.wav|tests/data/ljspeech/wavs/LJ032-0097.npy +tests/data/ljspeech/wavs/LJ006-0053.wav|tests/data/ljspeech/wavs/LJ006-0053.npy +tests/data/ljspeech/wavs/LJ022-0149.wav|tests/data/ljspeech/wavs/LJ022-0149.npy +tests/data/ljspeech/wavs/LJ045-0010.wav|tests/data/ljspeech/wavs/LJ045-0010.npy +tests/data/ljspeech/wavs/LJ007-0205.wav|tests/data/ljspeech/wavs/LJ007-0205.npy +tests/data/ljspeech/wavs/LJ008-0228.wav|tests/data/ljspeech/wavs/LJ008-0228.npy +tests/data/ljspeech/wavs/LJ008-0306.wav|tests/data/ljspeech/wavs/LJ008-0306.npy +tests/data/ljspeech/wavs/LJ022-0168.wav|tests/data/ljspeech/wavs/LJ022-0168.npy +tests/data/ljspeech/wavs/LJ008-0304.wav|tests/data/ljspeech/wavs/LJ008-0304.npy +tests/data/ljspeech/wavs/LJ003-0073.wav|tests/data/ljspeech/wavs/LJ003-0073.npy +tests/data/ljspeech/wavs/LJ005-0107.wav|tests/data/ljspeech/wavs/LJ005-0107.npy +tests/data/ljspeech/wavs/LJ028-0494.wav|tests/data/ljspeech/wavs/LJ028-0494.npy +tests/data/ljspeech/wavs/LJ004-0165.wav|tests/data/ljspeech/wavs/LJ004-0165.npy +tests/data/ljspeech/wavs/LJ049-0088.wav|tests/data/ljspeech/wavs/LJ049-0088.npy +tests/data/ljspeech/wavs/LJ030-0071.wav|tests/data/ljspeech/wavs/LJ030-0071.npy +tests/data/ljspeech/wavs/LJ015-0275.wav|tests/data/ljspeech/wavs/LJ015-0275.npy +tests/data/ljspeech/wavs/LJ008-0203.wav|tests/data/ljspeech/wavs/LJ008-0203.npy +tests/data/ljspeech/wavs/LJ034-0127.wav|tests/data/ljspeech/wavs/LJ034-0127.npy +tests/data/ljspeech/wavs/LJ005-0221.wav|tests/data/ljspeech/wavs/LJ005-0221.npy +tests/data/ljspeech/wavs/LJ003-0195.wav|tests/data/ljspeech/wavs/LJ003-0195.npy +tests/data/ljspeech/wavs/LJ035-0198.wav|tests/data/ljspeech/wavs/LJ035-0198.npy +tests/data/ljspeech/wavs/LJ026-0125.wav|tests/data/ljspeech/wavs/LJ026-0125.npy +tests/data/ljspeech/wavs/LJ033-0151.wav|tests/data/ljspeech/wavs/LJ033-0151.npy +tests/data/ljspeech/wavs/LJ016-0155.wav|tests/data/ljspeech/wavs/LJ016-0155.npy +tests/data/ljspeech/wavs/LJ019-0273.wav|tests/data/ljspeech/wavs/LJ019-0273.npy +tests/data/ljspeech/wavs/LJ022-0112.wav|tests/data/ljspeech/wavs/LJ022-0112.npy +tests/data/ljspeech/wavs/LJ006-0153.wav|tests/data/ljspeech/wavs/LJ006-0153.npy +tests/data/ljspeech/wavs/LJ005-0200.wav|tests/data/ljspeech/wavs/LJ005-0200.npy +tests/data/ljspeech/wavs/LJ010-0120.wav|tests/data/ljspeech/wavs/LJ010-0120.npy +tests/data/ljspeech/wavs/LJ004-0023.wav|tests/data/ljspeech/wavs/LJ004-0023.npy +tests/data/ljspeech/wavs/LJ025-0067.wav|tests/data/ljspeech/wavs/LJ025-0067.npy +tests/data/ljspeech/wavs/LJ016-0327.wav|tests/data/ljspeech/wavs/LJ016-0327.npy +tests/data/ljspeech/wavs/LJ011-0197.wav|tests/data/ljspeech/wavs/LJ011-0197.npy +tests/data/ljspeech/wavs/LJ010-0064.wav|tests/data/ljspeech/wavs/LJ010-0064.npy +tests/data/ljspeech/wavs/LJ016-0336.wav|tests/data/ljspeech/wavs/LJ016-0336.npy +tests/data/ljspeech/wavs/LJ033-0023.wav|tests/data/ljspeech/wavs/LJ033-0023.npy +tests/data/ljspeech/wavs/LJ036-0049.wav|tests/data/ljspeech/wavs/LJ036-0049.npy +tests/data/ljspeech/wavs/LJ031-0170.wav|tests/data/ljspeech/wavs/LJ031-0170.npy +tests/data/ljspeech/wavs/LJ037-0108.wav|tests/data/ljspeech/wavs/LJ037-0108.npy +tests/data/ljspeech/wavs/LJ016-0161.wav|tests/data/ljspeech/wavs/LJ016-0161.npy +tests/data/ljspeech/wavs/LJ048-0288.wav|tests/data/ljspeech/wavs/LJ048-0288.npy +tests/data/ljspeech/wavs/LJ043-0149.wav|tests/data/ljspeech/wavs/LJ043-0149.npy +tests/data/ljspeech/wavs/LJ004-0113.wav|tests/data/ljspeech/wavs/LJ004-0113.npy +tests/data/ljspeech/wavs/LJ004-0044.wav|tests/data/ljspeech/wavs/LJ004-0044.npy +tests/data/ljspeech/wavs/LJ005-0071.wav|tests/data/ljspeech/wavs/LJ005-0071.npy +tests/data/ljspeech/wavs/LJ039-0182.wav|tests/data/ljspeech/wavs/LJ039-0182.npy +tests/data/ljspeech/wavs/LJ039-0075.wav|tests/data/ljspeech/wavs/LJ039-0075.npy +tests/data/ljspeech/wavs/LJ010-0116.wav|tests/data/ljspeech/wavs/LJ010-0116.npy +tests/data/ljspeech/wavs/LJ018-0116.wav|tests/data/ljspeech/wavs/LJ018-0116.npy +tests/data/ljspeech/wavs/LJ016-0005.wav|tests/data/ljspeech/wavs/LJ016-0005.npy +tests/data/ljspeech/wavs/LJ006-0133.wav|tests/data/ljspeech/wavs/LJ006-0133.npy +tests/data/ljspeech/wavs/LJ002-0025.wav|tests/data/ljspeech/wavs/LJ002-0025.npy +tests/data/ljspeech/wavs/LJ040-0103.wav|tests/data/ljspeech/wavs/LJ040-0103.npy +tests/data/ljspeech/wavs/LJ026-0104.wav|tests/data/ljspeech/wavs/LJ026-0104.npy +tests/data/ljspeech/wavs/LJ047-0078.wav|tests/data/ljspeech/wavs/LJ047-0078.npy +tests/data/ljspeech/wavs/LJ021-0187.wav|tests/data/ljspeech/wavs/LJ021-0187.npy +tests/data/ljspeech/wavs/LJ050-0202.wav|tests/data/ljspeech/wavs/LJ050-0202.npy +tests/data/ljspeech/wavs/LJ019-0271.wav|tests/data/ljspeech/wavs/LJ019-0271.npy +tests/data/ljspeech/wavs/LJ011-0123.wav|tests/data/ljspeech/wavs/LJ011-0123.npy +tests/data/ljspeech/wavs/LJ004-0091.wav|tests/data/ljspeech/wavs/LJ004-0091.npy +tests/data/ljspeech/wavs/LJ029-0080.wav|tests/data/ljspeech/wavs/LJ029-0080.npy +tests/data/ljspeech/wavs/LJ047-0089.wav|tests/data/ljspeech/wavs/LJ047-0089.npy +tests/data/ljspeech/wavs/LJ016-0039.wav|tests/data/ljspeech/wavs/LJ016-0039.npy +tests/data/ljspeech/wavs/LJ032-0267.wav|tests/data/ljspeech/wavs/LJ032-0267.npy +tests/data/ljspeech/wavs/LJ014-0166.wav|tests/data/ljspeech/wavs/LJ014-0166.npy +tests/data/ljspeech/wavs/LJ037-0094.wav|tests/data/ljspeech/wavs/LJ037-0094.npy +tests/data/ljspeech/wavs/LJ042-0086.wav|tests/data/ljspeech/wavs/LJ042-0086.npy +tests/data/ljspeech/wavs/LJ021-0010.wav|tests/data/ljspeech/wavs/LJ021-0010.npy +tests/data/ljspeech/wavs/LJ018-0144.wav|tests/data/ljspeech/wavs/LJ018-0144.npy +tests/data/ljspeech/wavs/LJ035-0177.wav|tests/data/ljspeech/wavs/LJ035-0177.npy +tests/data/ljspeech/wavs/LJ003-0246.wav|tests/data/ljspeech/wavs/LJ003-0246.npy +tests/data/ljspeech/wavs/LJ020-0106.wav|tests/data/ljspeech/wavs/LJ020-0106.npy +tests/data/ljspeech/wavs/LJ018-0015.wav|tests/data/ljspeech/wavs/LJ018-0015.npy +tests/data/ljspeech/wavs/LJ026-0102.wav|tests/data/ljspeech/wavs/LJ026-0102.npy +tests/data/ljspeech/wavs/LJ006-0260.wav|tests/data/ljspeech/wavs/LJ006-0260.npy +tests/data/ljspeech/wavs/LJ046-0040.wav|tests/data/ljspeech/wavs/LJ046-0040.npy +tests/data/ljspeech/wavs/LJ031-0006.wav|tests/data/ljspeech/wavs/LJ031-0006.npy +tests/data/ljspeech/wavs/LJ039-0184.wav|tests/data/ljspeech/wavs/LJ039-0184.npy +tests/data/ljspeech/wavs/LJ025-0049.wav|tests/data/ljspeech/wavs/LJ025-0049.npy +tests/data/ljspeech/wavs/LJ030-0180.wav|tests/data/ljspeech/wavs/LJ030-0180.npy +tests/data/ljspeech/wavs/LJ016-0186.wav|tests/data/ljspeech/wavs/LJ016-0186.npy +tests/data/ljspeech/wavs/LJ010-0084.wav|tests/data/ljspeech/wavs/LJ010-0084.npy +tests/data/ljspeech/wavs/LJ033-0161.wav|tests/data/ljspeech/wavs/LJ033-0161.npy +tests/data/ljspeech/wavs/LJ047-0058.wav|tests/data/ljspeech/wavs/LJ047-0058.npy +tests/data/ljspeech/wavs/LJ044-0217.wav|tests/data/ljspeech/wavs/LJ044-0217.npy +tests/data/ljspeech/wavs/LJ011-0265.wav|tests/data/ljspeech/wavs/LJ011-0265.npy +tests/data/ljspeech/wavs/LJ038-0181.wav|tests/data/ljspeech/wavs/LJ038-0181.npy +tests/data/ljspeech/wavs/LJ030-0077.wav|tests/data/ljspeech/wavs/LJ030-0077.npy +tests/data/ljspeech/wavs/LJ011-0271.wav|tests/data/ljspeech/wavs/LJ011-0271.npy +tests/data/ljspeech/wavs/LJ040-0067.wav|tests/data/ljspeech/wavs/LJ040-0067.npy +tests/data/ljspeech/wavs/LJ032-0011.wav|tests/data/ljspeech/wavs/LJ032-0011.npy +tests/data/ljspeech/wavs/LJ016-0087.wav|tests/data/ljspeech/wavs/LJ016-0087.npy +tests/data/ljspeech/wavs/LJ013-0263.wav|tests/data/ljspeech/wavs/LJ013-0263.npy +tests/data/ljspeech/wavs/LJ017-0187.wav|tests/data/ljspeech/wavs/LJ017-0187.npy +tests/data/ljspeech/wavs/LJ013-0170.wav|tests/data/ljspeech/wavs/LJ013-0170.npy +tests/data/ljspeech/wavs/LJ001-0030.wav|tests/data/ljspeech/wavs/LJ001-0030.npy +tests/data/ljspeech/wavs/LJ018-0269.wav|tests/data/ljspeech/wavs/LJ018-0269.npy +tests/data/ljspeech/wavs/LJ008-0005.wav|tests/data/ljspeech/wavs/LJ008-0005.npy +tests/data/ljspeech/wavs/LJ039-0084.wav|tests/data/ljspeech/wavs/LJ039-0084.npy +tests/data/ljspeech/wavs/LJ023-0079.wav|tests/data/ljspeech/wavs/LJ023-0079.npy +tests/data/ljspeech/wavs/LJ018-0128.wav|tests/data/ljspeech/wavs/LJ018-0128.npy +tests/data/ljspeech/wavs/LJ014-0110.wav|tests/data/ljspeech/wavs/LJ014-0110.npy +tests/data/ljspeech/wavs/LJ013-0206.wav|tests/data/ljspeech/wavs/LJ013-0206.npy +tests/data/ljspeech/wavs/LJ028-0046.wav|tests/data/ljspeech/wavs/LJ028-0046.npy +tests/data/ljspeech/wavs/LJ029-0141.wav|tests/data/ljspeech/wavs/LJ029-0141.npy +tests/data/ljspeech/wavs/LJ032-0099.wav|tests/data/ljspeech/wavs/LJ032-0099.npy +tests/data/ljspeech/wavs/LJ012-0057.wav|tests/data/ljspeech/wavs/LJ012-0057.npy +tests/data/ljspeech/wavs/LJ018-0151.wav|tests/data/ljspeech/wavs/LJ018-0151.npy +tests/data/ljspeech/wavs/LJ030-0080.wav|tests/data/ljspeech/wavs/LJ030-0080.npy +tests/data/ljspeech/wavs/LJ009-0081.wav|tests/data/ljspeech/wavs/LJ009-0081.npy +tests/data/ljspeech/wavs/LJ015-0142.wav|tests/data/ljspeech/wavs/LJ015-0142.npy +tests/data/ljspeech/wavs/LJ050-0199.wav|tests/data/ljspeech/wavs/LJ050-0199.npy +tests/data/ljspeech/wavs/LJ002-0323.wav|tests/data/ljspeech/wavs/LJ002-0323.npy +tests/data/ljspeech/wavs/LJ021-0003.wav|tests/data/ljspeech/wavs/LJ021-0003.npy +tests/data/ljspeech/wavs/LJ009-0201.wav|tests/data/ljspeech/wavs/LJ009-0201.npy +tests/data/ljspeech/wavs/LJ046-0009.wav|tests/data/ljspeech/wavs/LJ046-0009.npy +tests/data/ljspeech/wavs/LJ043-0143.wav|tests/data/ljspeech/wavs/LJ043-0143.npy +tests/data/ljspeech/wavs/LJ012-0162.wav|tests/data/ljspeech/wavs/LJ012-0162.npy +tests/data/ljspeech/wavs/LJ043-0054.wav|tests/data/ljspeech/wavs/LJ043-0054.npy +tests/data/ljspeech/wavs/LJ031-0121.wav|tests/data/ljspeech/wavs/LJ031-0121.npy +tests/data/ljspeech/wavs/LJ033-0054.wav|tests/data/ljspeech/wavs/LJ033-0054.npy +tests/data/ljspeech/wavs/LJ008-0144.wav|tests/data/ljspeech/wavs/LJ008-0144.npy +tests/data/ljspeech/wavs/LJ021-0064.wav|tests/data/ljspeech/wavs/LJ021-0064.npy +tests/data/ljspeech/wavs/LJ015-0198.wav|tests/data/ljspeech/wavs/LJ015-0198.npy +tests/data/ljspeech/wavs/LJ032-0273.wav|tests/data/ljspeech/wavs/LJ032-0273.npy +tests/data/ljspeech/wavs/LJ032-0224.wav|tests/data/ljspeech/wavs/LJ032-0224.npy +tests/data/ljspeech/wavs/LJ039-0145.wav|tests/data/ljspeech/wavs/LJ039-0145.npy +tests/data/ljspeech/wavs/LJ034-0108.wav|tests/data/ljspeech/wavs/LJ034-0108.npy +tests/data/ljspeech/wavs/LJ018-0011.wav|tests/data/ljspeech/wavs/LJ018-0011.npy +tests/data/ljspeech/wavs/LJ030-0116.wav|tests/data/ljspeech/wavs/LJ030-0116.npy +tests/data/ljspeech/wavs/LJ031-0186.wav|tests/data/ljspeech/wavs/LJ031-0186.npy +tests/data/ljspeech/wavs/LJ004-0237.wav|tests/data/ljspeech/wavs/LJ004-0237.npy +tests/data/ljspeech/wavs/LJ042-0174.wav|tests/data/ljspeech/wavs/LJ042-0174.npy +tests/data/ljspeech/wavs/LJ023-0086.wav|tests/data/ljspeech/wavs/LJ023-0086.npy +tests/data/ljspeech/wavs/LJ015-0273.wav|tests/data/ljspeech/wavs/LJ015-0273.npy +tests/data/ljspeech/wavs/LJ022-0026.wav|tests/data/ljspeech/wavs/LJ022-0026.npy +tests/data/ljspeech/wavs/LJ049-0099.wav|tests/data/ljspeech/wavs/LJ049-0099.npy +tests/data/ljspeech/wavs/LJ025-0089.wav|tests/data/ljspeech/wavs/LJ025-0089.npy +tests/data/ljspeech/wavs/LJ022-0071.wav|tests/data/ljspeech/wavs/LJ022-0071.npy +tests/data/ljspeech/wavs/LJ016-0339.wav|tests/data/ljspeech/wavs/LJ016-0339.npy +tests/data/ljspeech/wavs/LJ015-0212.wav|tests/data/ljspeech/wavs/LJ015-0212.npy +tests/data/ljspeech/wavs/LJ025-0133.wav|tests/data/ljspeech/wavs/LJ025-0133.npy +tests/data/ljspeech/wavs/LJ020-0087.wav|tests/data/ljspeech/wavs/LJ020-0087.npy +tests/data/ljspeech/wavs/LJ039-0248.wav|tests/data/ljspeech/wavs/LJ039-0248.npy +tests/data/ljspeech/wavs/LJ034-0159.wav|tests/data/ljspeech/wavs/LJ034-0159.npy +tests/data/ljspeech/wavs/LJ002-0231.wav|tests/data/ljspeech/wavs/LJ002-0231.npy +tests/data/ljspeech/wavs/LJ032-0226.wav|tests/data/ljspeech/wavs/LJ032-0226.npy +tests/data/ljspeech/wavs/LJ033-0007.wav|tests/data/ljspeech/wavs/LJ033-0007.npy +tests/data/ljspeech/wavs/LJ002-0264.wav|tests/data/ljspeech/wavs/LJ002-0264.npy +tests/data/ljspeech/wavs/LJ008-0019.wav|tests/data/ljspeech/wavs/LJ008-0019.npy +tests/data/ljspeech/wavs/LJ036-0114.wav|tests/data/ljspeech/wavs/LJ036-0114.npy +tests/data/ljspeech/wavs/LJ007-0057.wav|tests/data/ljspeech/wavs/LJ007-0057.npy +tests/data/ljspeech/wavs/LJ014-0241.wav|tests/data/ljspeech/wavs/LJ014-0241.npy +tests/data/ljspeech/wavs/LJ003-0084.wav|tests/data/ljspeech/wavs/LJ003-0084.npy +tests/data/ljspeech/wavs/LJ016-0342.wav|tests/data/ljspeech/wavs/LJ016-0342.npy +tests/data/ljspeech/wavs/LJ011-0226.wav|tests/data/ljspeech/wavs/LJ011-0226.npy +tests/data/ljspeech/wavs/LJ027-0102.wav|tests/data/ljspeech/wavs/LJ027-0102.npy +tests/data/ljspeech/wavs/LJ042-0006.wav|tests/data/ljspeech/wavs/LJ042-0006.npy +tests/data/ljspeech/wavs/LJ037-0114.wav|tests/data/ljspeech/wavs/LJ037-0114.npy +tests/data/ljspeech/wavs/LJ018-0174.wav|tests/data/ljspeech/wavs/LJ018-0174.npy +tests/data/ljspeech/wavs/LJ044-0076.wav|tests/data/ljspeech/wavs/LJ044-0076.npy +tests/data/ljspeech/wavs/LJ015-0298.wav|tests/data/ljspeech/wavs/LJ015-0298.npy +tests/data/ljspeech/wavs/LJ015-0262.wav|tests/data/ljspeech/wavs/LJ015-0262.npy +tests/data/ljspeech/wavs/LJ027-0109.wav|tests/data/ljspeech/wavs/LJ027-0109.npy +tests/data/ljspeech/wavs/LJ045-0120.wav|tests/data/ljspeech/wavs/LJ045-0120.npy +tests/data/ljspeech/wavs/LJ008-0201.wav|tests/data/ljspeech/wavs/LJ008-0201.npy +tests/data/ljspeech/wavs/LJ003-0090.wav|tests/data/ljspeech/wavs/LJ003-0090.npy +tests/data/ljspeech/wavs/LJ041-0007.wav|tests/data/ljspeech/wavs/LJ041-0007.npy +tests/data/ljspeech/wavs/LJ029-0046.wav|tests/data/ljspeech/wavs/LJ029-0046.npy +tests/data/ljspeech/wavs/LJ039-0243.wav|tests/data/ljspeech/wavs/LJ039-0243.npy +tests/data/ljspeech/wavs/LJ010-0281.wav|tests/data/ljspeech/wavs/LJ010-0281.npy +tests/data/ljspeech/wavs/LJ038-0277.wav|tests/data/ljspeech/wavs/LJ038-0277.npy +tests/data/ljspeech/wavs/LJ028-0019.wav|tests/data/ljspeech/wavs/LJ028-0019.npy +tests/data/ljspeech/wavs/LJ020-0009.wav|tests/data/ljspeech/wavs/LJ020-0009.npy +tests/data/ljspeech/wavs/LJ012-0175.wav|tests/data/ljspeech/wavs/LJ012-0175.npy +tests/data/ljspeech/wavs/LJ006-0238.wav|tests/data/ljspeech/wavs/LJ006-0238.npy +tests/data/ljspeech/wavs/LJ043-0176.wav|tests/data/ljspeech/wavs/LJ043-0176.npy +tests/data/ljspeech/wavs/LJ002-0047.wav|tests/data/ljspeech/wavs/LJ002-0047.npy +tests/data/ljspeech/wavs/LJ018-0240.wav|tests/data/ljspeech/wavs/LJ018-0240.npy +tests/data/ljspeech/wavs/LJ039-0236.wav|tests/data/ljspeech/wavs/LJ039-0236.npy +tests/data/ljspeech/wavs/LJ034-0071.wav|tests/data/ljspeech/wavs/LJ034-0071.npy +tests/data/ljspeech/wavs/LJ044-0058.wav|tests/data/ljspeech/wavs/LJ044-0058.npy +tests/data/ljspeech/wavs/LJ033-0086.wav|tests/data/ljspeech/wavs/LJ033-0086.npy +tests/data/ljspeech/wavs/LJ034-0205.wav|tests/data/ljspeech/wavs/LJ034-0205.npy +tests/data/ljspeech/wavs/LJ013-0268.wav|tests/data/ljspeech/wavs/LJ013-0268.npy +tests/data/ljspeech/wavs/LJ031-0215.wav|tests/data/ljspeech/wavs/LJ031-0215.npy +tests/data/ljspeech/wavs/LJ047-0117.wav|tests/data/ljspeech/wavs/LJ047-0117.npy +tests/data/ljspeech/wavs/LJ013-0069.wav|tests/data/ljspeech/wavs/LJ013-0069.npy +tests/data/ljspeech/wavs/LJ018-0233.wav|tests/data/ljspeech/wavs/LJ018-0233.npy +tests/data/ljspeech/wavs/LJ021-0179.wav|tests/data/ljspeech/wavs/LJ021-0179.npy +tests/data/ljspeech/wavs/LJ046-0092.wav|tests/data/ljspeech/wavs/LJ046-0092.npy +tests/data/ljspeech/wavs/LJ028-0138.wav|tests/data/ljspeech/wavs/LJ028-0138.npy +tests/data/ljspeech/wavs/LJ036-0010.wav|tests/data/ljspeech/wavs/LJ036-0010.npy +tests/data/ljspeech/wavs/LJ006-0189.wav|tests/data/ljspeech/wavs/LJ006-0189.npy +tests/data/ljspeech/wavs/LJ050-0262.wav|tests/data/ljspeech/wavs/LJ050-0262.npy +tests/data/ljspeech/wavs/LJ024-0130.wav|tests/data/ljspeech/wavs/LJ024-0130.npy +tests/data/ljspeech/wavs/LJ029-0066.wav|tests/data/ljspeech/wavs/LJ029-0066.npy +tests/data/ljspeech/wavs/LJ041-0085.wav|tests/data/ljspeech/wavs/LJ041-0085.npy +tests/data/ljspeech/wavs/LJ028-0152.wav|tests/data/ljspeech/wavs/LJ028-0152.npy +tests/data/ljspeech/wavs/LJ032-0120.wav|tests/data/ljspeech/wavs/LJ032-0120.npy +tests/data/ljspeech/wavs/LJ003-0261.wav|tests/data/ljspeech/wavs/LJ003-0261.npy +tests/data/ljspeech/wavs/LJ002-0319.wav|tests/data/ljspeech/wavs/LJ002-0319.npy +tests/data/ljspeech/wavs/LJ030-0226.wav|tests/data/ljspeech/wavs/LJ030-0226.npy +tests/data/ljspeech/wavs/LJ008-0038.wav|tests/data/ljspeech/wavs/LJ008-0038.npy +tests/data/ljspeech/wavs/LJ010-0140.wav|tests/data/ljspeech/wavs/LJ010-0140.npy +tests/data/ljspeech/wavs/LJ050-0220.wav|tests/data/ljspeech/wavs/LJ050-0220.npy +tests/data/ljspeech/wavs/LJ009-0106.wav|tests/data/ljspeech/wavs/LJ009-0106.npy +tests/data/ljspeech/wavs/LJ005-0086.wav|tests/data/ljspeech/wavs/LJ005-0086.npy +tests/data/ljspeech/wavs/LJ010-0124.wav|tests/data/ljspeech/wavs/LJ010-0124.npy +tests/data/ljspeech/wavs/LJ038-0289.wav|tests/data/ljspeech/wavs/LJ038-0289.npy +tests/data/ljspeech/wavs/LJ013-0181.wav|tests/data/ljspeech/wavs/LJ013-0181.npy +tests/data/ljspeech/wavs/LJ011-0005.wav|tests/data/ljspeech/wavs/LJ011-0005.npy +tests/data/ljspeech/wavs/LJ017-0111.wav|tests/data/ljspeech/wavs/LJ017-0111.npy +tests/data/ljspeech/wavs/LJ040-0049.wav|tests/data/ljspeech/wavs/LJ040-0049.npy +tests/data/ljspeech/wavs/LJ047-0094.wav|tests/data/ljspeech/wavs/LJ047-0094.npy +tests/data/ljspeech/wavs/LJ039-0097.wav|tests/data/ljspeech/wavs/LJ039-0097.npy +tests/data/ljspeech/wavs/LJ010-0038.wav|tests/data/ljspeech/wavs/LJ010-0038.npy +tests/data/ljspeech/wavs/LJ007-0176.wav|tests/data/ljspeech/wavs/LJ007-0176.npy +tests/data/ljspeech/wavs/LJ018-0103.wav|tests/data/ljspeech/wavs/LJ018-0103.npy +tests/data/ljspeech/wavs/LJ042-0062.wav|tests/data/ljspeech/wavs/LJ042-0062.npy +tests/data/ljspeech/wavs/LJ026-0058.wav|tests/data/ljspeech/wavs/LJ026-0058.npy +tests/data/ljspeech/wavs/LJ003-0174.wav|tests/data/ljspeech/wavs/LJ003-0174.npy +tests/data/ljspeech/wavs/LJ023-0060.wav|tests/data/ljspeech/wavs/LJ023-0060.npy +tests/data/ljspeech/wavs/LJ048-0078.wav|tests/data/ljspeech/wavs/LJ048-0078.npy +tests/data/ljspeech/wavs/LJ047-0166.wav|tests/data/ljspeech/wavs/LJ047-0166.npy +tests/data/ljspeech/wavs/LJ024-0026.wav|tests/data/ljspeech/wavs/LJ024-0026.npy +tests/data/ljspeech/wavs/LJ042-0120.wav|tests/data/ljspeech/wavs/LJ042-0120.npy +tests/data/ljspeech/wavs/LJ006-0174.wav|tests/data/ljspeech/wavs/LJ006-0174.npy +tests/data/ljspeech/wavs/LJ027-0066.wav|tests/data/ljspeech/wavs/LJ027-0066.npy +tests/data/ljspeech/wavs/LJ012-0036.wav|tests/data/ljspeech/wavs/LJ012-0036.npy +tests/data/ljspeech/wavs/LJ019-0233.wav|tests/data/ljspeech/wavs/LJ019-0233.npy +tests/data/ljspeech/wavs/LJ017-0113.wav|tests/data/ljspeech/wavs/LJ017-0113.npy +tests/data/ljspeech/wavs/LJ026-0046.wav|tests/data/ljspeech/wavs/LJ026-0046.npy +tests/data/ljspeech/wavs/LJ040-0033.wav|tests/data/ljspeech/wavs/LJ040-0033.npy +tests/data/ljspeech/wavs/LJ036-0186.wav|tests/data/ljspeech/wavs/LJ036-0186.npy +tests/data/ljspeech/wavs/LJ011-0157.wav|tests/data/ljspeech/wavs/LJ011-0157.npy +tests/data/ljspeech/wavs/LJ003-0282.wav|tests/data/ljspeech/wavs/LJ003-0282.npy +tests/data/ljspeech/wavs/LJ045-0249.wav|tests/data/ljspeech/wavs/LJ045-0249.npy +tests/data/ljspeech/wavs/LJ035-0173.wav|tests/data/ljspeech/wavs/LJ035-0173.npy +tests/data/ljspeech/wavs/LJ017-0006.wav|tests/data/ljspeech/wavs/LJ017-0006.npy +tests/data/ljspeech/wavs/LJ048-0093.wav|tests/data/ljspeech/wavs/LJ048-0093.npy +tests/data/ljspeech/wavs/LJ045-0073.wav|tests/data/ljspeech/wavs/LJ045-0073.npy +tests/data/ljspeech/wavs/LJ012-0166.wav|tests/data/ljspeech/wavs/LJ012-0166.npy +tests/data/ljspeech/wavs/LJ047-0139.wav|tests/data/ljspeech/wavs/LJ047-0139.npy +tests/data/ljspeech/wavs/LJ003-0121.wav|tests/data/ljspeech/wavs/LJ003-0121.npy +tests/data/ljspeech/wavs/LJ026-0034.wav|tests/data/ljspeech/wavs/LJ026-0034.npy +tests/data/ljspeech/wavs/LJ039-0142.wav|tests/data/ljspeech/wavs/LJ039-0142.npy +tests/data/ljspeech/wavs/LJ026-0153.wav|tests/data/ljspeech/wavs/LJ026-0153.npy +tests/data/ljspeech/wavs/LJ006-0295.wav|tests/data/ljspeech/wavs/LJ006-0295.npy +tests/data/ljspeech/wavs/LJ014-0193.wav|tests/data/ljspeech/wavs/LJ014-0193.npy +tests/data/ljspeech/wavs/LJ003-0162.wav|tests/data/ljspeech/wavs/LJ003-0162.npy +tests/data/ljspeech/wavs/LJ015-0022.wav|tests/data/ljspeech/wavs/LJ015-0022.npy +tests/data/ljspeech/wavs/LJ050-0106.wav|tests/data/ljspeech/wavs/LJ050-0106.npy +tests/data/ljspeech/wavs/LJ034-0077.wav|tests/data/ljspeech/wavs/LJ034-0077.npy +tests/data/ljspeech/wavs/LJ015-0150.wav|tests/data/ljspeech/wavs/LJ015-0150.npy +tests/data/ljspeech/wavs/LJ017-0062.wav|tests/data/ljspeech/wavs/LJ017-0062.npy +tests/data/ljspeech/wavs/LJ044-0086.wav|tests/data/ljspeech/wavs/LJ044-0086.npy +tests/data/ljspeech/wavs/LJ005-0150.wav|tests/data/ljspeech/wavs/LJ005-0150.npy +tests/data/ljspeech/wavs/LJ004-0025.wav|tests/data/ljspeech/wavs/LJ004-0025.npy +tests/data/ljspeech/wavs/LJ015-0069.wav|tests/data/ljspeech/wavs/LJ015-0069.npy +tests/data/ljspeech/wavs/LJ021-0060.wav|tests/data/ljspeech/wavs/LJ021-0060.npy +tests/data/ljspeech/wavs/LJ010-0008.wav|tests/data/ljspeech/wavs/LJ010-0008.npy +tests/data/ljspeech/wavs/LJ021-0070.wav|tests/data/ljspeech/wavs/LJ021-0070.npy +tests/data/ljspeech/wavs/LJ016-0072.wav|tests/data/ljspeech/wavs/LJ016-0072.npy +tests/data/ljspeech/wavs/LJ017-0190.wav|tests/data/ljspeech/wavs/LJ017-0190.npy +tests/data/ljspeech/wavs/LJ022-0135.wav|tests/data/ljspeech/wavs/LJ022-0135.npy +tests/data/ljspeech/wavs/LJ028-0059.wav|tests/data/ljspeech/wavs/LJ028-0059.npy +tests/data/ljspeech/wavs/LJ035-0129.wav|tests/data/ljspeech/wavs/LJ035-0129.npy +tests/data/ljspeech/wavs/LJ002-0105.wav|tests/data/ljspeech/wavs/LJ002-0105.npy +tests/data/ljspeech/wavs/LJ021-0210.wav|tests/data/ljspeech/wavs/LJ021-0210.npy +tests/data/ljspeech/wavs/LJ019-0303.wav|tests/data/ljspeech/wavs/LJ019-0303.npy +tests/data/ljspeech/wavs/LJ048-0098.wav|tests/data/ljspeech/wavs/LJ048-0098.npy +tests/data/ljspeech/wavs/LJ025-0108.wav|tests/data/ljspeech/wavs/LJ025-0108.npy +tests/data/ljspeech/wavs/LJ009-0285.wav|tests/data/ljspeech/wavs/LJ009-0285.npy +tests/data/ljspeech/wavs/LJ033-0201.wav|tests/data/ljspeech/wavs/LJ033-0201.npy +tests/data/ljspeech/wavs/LJ050-0224.wav|tests/data/ljspeech/wavs/LJ050-0224.npy +tests/data/ljspeech/wavs/LJ039-0199.wav|tests/data/ljspeech/wavs/LJ039-0199.npy +tests/data/ljspeech/wavs/LJ003-0079.wav|tests/data/ljspeech/wavs/LJ003-0079.npy +tests/data/ljspeech/wavs/LJ037-0141.wav|tests/data/ljspeech/wavs/LJ037-0141.npy +tests/data/ljspeech/wavs/LJ036-0197.wav|tests/data/ljspeech/wavs/LJ036-0197.npy +tests/data/ljspeech/wavs/LJ045-0115.wav|tests/data/ljspeech/wavs/LJ045-0115.npy +tests/data/ljspeech/wavs/LJ031-0218.wav|tests/data/ljspeech/wavs/LJ031-0218.npy +tests/data/ljspeech/wavs/LJ019-0309.wav|tests/data/ljspeech/wavs/LJ019-0309.npy +tests/data/ljspeech/wavs/LJ014-0122.wav|tests/data/ljspeech/wavs/LJ014-0122.npy +tests/data/ljspeech/wavs/LJ036-0132.wav|tests/data/ljspeech/wavs/LJ036-0132.npy +tests/data/ljspeech/wavs/LJ036-0203.wav|tests/data/ljspeech/wavs/LJ036-0203.npy +tests/data/ljspeech/wavs/LJ048-0076.wav|tests/data/ljspeech/wavs/LJ048-0076.npy +tests/data/ljspeech/wavs/LJ021-0111.wav|tests/data/ljspeech/wavs/LJ021-0111.npy +tests/data/ljspeech/wavs/LJ046-0028.wav|tests/data/ljspeech/wavs/LJ046-0028.npy +tests/data/ljspeech/wavs/LJ006-0268.wav|tests/data/ljspeech/wavs/LJ006-0268.npy +tests/data/ljspeech/wavs/LJ002-0306.wav|tests/data/ljspeech/wavs/LJ002-0306.npy +tests/data/ljspeech/wavs/LJ006-0206.wav|tests/data/ljspeech/wavs/LJ006-0206.npy +tests/data/ljspeech/wavs/LJ035-0028.wav|tests/data/ljspeech/wavs/LJ035-0028.npy +tests/data/ljspeech/wavs/LJ028-0131.wav|tests/data/ljspeech/wavs/LJ028-0131.npy +tests/data/ljspeech/wavs/LJ018-0323.wav|tests/data/ljspeech/wavs/LJ018-0323.npy +tests/data/ljspeech/wavs/LJ019-0320.wav|tests/data/ljspeech/wavs/LJ019-0320.npy +tests/data/ljspeech/wavs/LJ041-0043.wav|tests/data/ljspeech/wavs/LJ041-0043.npy +tests/data/ljspeech/wavs/LJ025-0121.wav|tests/data/ljspeech/wavs/LJ025-0121.npy +tests/data/ljspeech/wavs/LJ014-0071.wav|tests/data/ljspeech/wavs/LJ014-0071.npy +tests/data/ljspeech/wavs/LJ050-0257.wav|tests/data/ljspeech/wavs/LJ050-0257.npy +tests/data/ljspeech/wavs/LJ005-0249.wav|tests/data/ljspeech/wavs/LJ005-0249.npy +tests/data/ljspeech/wavs/LJ048-0258.wav|tests/data/ljspeech/wavs/LJ048-0258.npy +tests/data/ljspeech/wavs/LJ037-0132.wav|tests/data/ljspeech/wavs/LJ037-0132.npy +tests/data/ljspeech/wavs/LJ010-0063.wav|tests/data/ljspeech/wavs/LJ010-0063.npy +tests/data/ljspeech/wavs/LJ002-0263.wav|tests/data/ljspeech/wavs/LJ002-0263.npy +tests/data/ljspeech/wavs/LJ035-0205.wav|tests/data/ljspeech/wavs/LJ035-0205.npy +tests/data/ljspeech/wavs/LJ019-0277.wav|tests/data/ljspeech/wavs/LJ019-0277.npy +tests/data/ljspeech/wavs/LJ039-0186.wav|tests/data/ljspeech/wavs/LJ039-0186.npy +tests/data/ljspeech/wavs/LJ005-0250.wav|tests/data/ljspeech/wavs/LJ005-0250.npy +tests/data/ljspeech/wavs/LJ045-0014.wav|tests/data/ljspeech/wavs/LJ045-0014.npy +tests/data/ljspeech/wavs/LJ023-0007.wav|tests/data/ljspeech/wavs/LJ023-0007.npy +tests/data/ljspeech/wavs/LJ031-0055.wav|tests/data/ljspeech/wavs/LJ031-0055.npy +tests/data/ljspeech/wavs/LJ003-0302.wav|tests/data/ljspeech/wavs/LJ003-0302.npy +tests/data/ljspeech/wavs/LJ029-0019.wav|tests/data/ljspeech/wavs/LJ029-0019.npy +tests/data/ljspeech/wavs/LJ024-0084.wav|tests/data/ljspeech/wavs/LJ024-0084.npy +tests/data/ljspeech/wavs/LJ005-0226.wav|tests/data/ljspeech/wavs/LJ005-0226.npy +tests/data/ljspeech/wavs/LJ041-0132.wav|tests/data/ljspeech/wavs/LJ041-0132.npy +tests/data/ljspeech/wavs/LJ001-0036.wav|tests/data/ljspeech/wavs/LJ001-0036.npy +tests/data/ljspeech/wavs/LJ029-0148.wav|tests/data/ljspeech/wavs/LJ029-0148.npy +tests/data/ljspeech/wavs/LJ025-0014.wav|tests/data/ljspeech/wavs/LJ025-0014.npy +tests/data/ljspeech/wavs/LJ005-0258.wav|tests/data/ljspeech/wavs/LJ005-0258.npy +tests/data/ljspeech/wavs/LJ014-0142.wav|tests/data/ljspeech/wavs/LJ014-0142.npy +tests/data/ljspeech/wavs/LJ001-0163.wav|tests/data/ljspeech/wavs/LJ001-0163.npy +tests/data/ljspeech/wavs/LJ041-0184.wav|tests/data/ljspeech/wavs/LJ041-0184.npy +tests/data/ljspeech/wavs/LJ010-0052.wav|tests/data/ljspeech/wavs/LJ010-0052.npy +tests/data/ljspeech/wavs/LJ012-0122.wav|tests/data/ljspeech/wavs/LJ012-0122.npy +tests/data/ljspeech/wavs/LJ037-0111.wav|tests/data/ljspeech/wavs/LJ037-0111.npy +tests/data/ljspeech/wavs/LJ006-0075.wav|tests/data/ljspeech/wavs/LJ006-0075.npy +tests/data/ljspeech/wavs/LJ016-0025.wav|tests/data/ljspeech/wavs/LJ016-0025.npy +tests/data/ljspeech/wavs/LJ011-0288.wav|tests/data/ljspeech/wavs/LJ011-0288.npy +tests/data/ljspeech/wavs/LJ021-0139.wav|tests/data/ljspeech/wavs/LJ021-0139.npy +tests/data/ljspeech/wavs/LJ006-0014.wav|tests/data/ljspeech/wavs/LJ006-0014.npy +tests/data/ljspeech/wavs/LJ030-0036.wav|tests/data/ljspeech/wavs/LJ030-0036.npy +tests/data/ljspeech/wavs/LJ008-0254.wav|tests/data/ljspeech/wavs/LJ008-0254.npy +tests/data/ljspeech/wavs/LJ014-0136.wav|tests/data/ljspeech/wavs/LJ014-0136.npy +tests/data/ljspeech/wavs/LJ021-0071.wav|tests/data/ljspeech/wavs/LJ021-0071.npy +tests/data/ljspeech/wavs/LJ050-0026.wav|tests/data/ljspeech/wavs/LJ050-0026.npy +tests/data/ljspeech/wavs/LJ031-0126.wav|tests/data/ljspeech/wavs/LJ031-0126.npy +tests/data/ljspeech/wavs/LJ031-0046.wav|tests/data/ljspeech/wavs/LJ031-0046.npy +tests/data/ljspeech/wavs/LJ036-0076.wav|tests/data/ljspeech/wavs/LJ036-0076.npy +tests/data/ljspeech/wavs/LJ045-0131.wav|tests/data/ljspeech/wavs/LJ045-0131.npy +tests/data/ljspeech/wavs/LJ031-0210.wav|tests/data/ljspeech/wavs/LJ031-0210.npy +tests/data/ljspeech/wavs/LJ045-0181.wav|tests/data/ljspeech/wavs/LJ045-0181.npy +tests/data/ljspeech/wavs/LJ012-0001.wav|tests/data/ljspeech/wavs/LJ012-0001.npy +tests/data/ljspeech/wavs/LJ047-0154.wav|tests/data/ljspeech/wavs/LJ047-0154.npy +tests/data/ljspeech/wavs/LJ016-0207.wav|tests/data/ljspeech/wavs/LJ016-0207.npy +tests/data/ljspeech/wavs/LJ003-0201.wav|tests/data/ljspeech/wavs/LJ003-0201.npy +tests/data/ljspeech/wavs/LJ006-0162.wav|tests/data/ljspeech/wavs/LJ006-0162.npy +tests/data/ljspeech/wavs/LJ039-0067.wav|tests/data/ljspeech/wavs/LJ039-0067.npy +tests/data/ljspeech/wavs/LJ031-0059.wav|tests/data/ljspeech/wavs/LJ031-0059.npy +tests/data/ljspeech/wavs/LJ014-0215.wav|tests/data/ljspeech/wavs/LJ014-0215.npy +tests/data/ljspeech/wavs/LJ004-0032.wav|tests/data/ljspeech/wavs/LJ004-0032.npy +tests/data/ljspeech/wavs/LJ011-0049.wav|tests/data/ljspeech/wavs/LJ011-0049.npy +tests/data/ljspeech/wavs/LJ003-0196.wav|tests/data/ljspeech/wavs/LJ003-0196.npy +tests/data/ljspeech/wavs/LJ004-0195.wav|tests/data/ljspeech/wavs/LJ004-0195.npy +tests/data/ljspeech/wavs/LJ005-0162.wav|tests/data/ljspeech/wavs/LJ005-0162.npy +tests/data/ljspeech/wavs/LJ003-0024.wav|tests/data/ljspeech/wavs/LJ003-0024.npy +tests/data/ljspeech/wavs/LJ038-0094.wav|tests/data/ljspeech/wavs/LJ038-0094.npy +tests/data/ljspeech/wavs/LJ048-0047.wav|tests/data/ljspeech/wavs/LJ048-0047.npy +tests/data/ljspeech/wavs/LJ040-0164.wav|tests/data/ljspeech/wavs/LJ040-0164.npy +tests/data/ljspeech/wavs/LJ046-0017.wav|tests/data/ljspeech/wavs/LJ046-0017.npy +tests/data/ljspeech/wavs/LJ050-0108.wav|tests/data/ljspeech/wavs/LJ050-0108.npy +tests/data/ljspeech/wavs/LJ037-0154.wav|tests/data/ljspeech/wavs/LJ037-0154.npy +tests/data/ljspeech/wavs/LJ012-0118.wav|tests/data/ljspeech/wavs/LJ012-0118.npy +tests/data/ljspeech/wavs/LJ003-0344.wav|tests/data/ljspeech/wavs/LJ003-0344.npy +tests/data/ljspeech/wavs/LJ018-0149.wav|tests/data/ljspeech/wavs/LJ018-0149.npy +tests/data/ljspeech/wavs/LJ030-0037.wav|tests/data/ljspeech/wavs/LJ030-0037.npy +tests/data/ljspeech/wavs/LJ014-0274.wav|tests/data/ljspeech/wavs/LJ014-0274.npy +tests/data/ljspeech/wavs/LJ035-0115.wav|tests/data/ljspeech/wavs/LJ035-0115.npy +tests/data/ljspeech/wavs/LJ037-0143.wav|tests/data/ljspeech/wavs/LJ037-0143.npy +tests/data/ljspeech/wavs/LJ007-0021.wav|tests/data/ljspeech/wavs/LJ007-0021.npy +tests/data/ljspeech/wavs/LJ037-0255.wav|tests/data/ljspeech/wavs/LJ037-0255.npy +tests/data/ljspeech/wavs/LJ002-0147.wav|tests/data/ljspeech/wavs/LJ002-0147.npy +tests/data/ljspeech/wavs/LJ036-0020.wav|tests/data/ljspeech/wavs/LJ036-0020.npy +tests/data/ljspeech/wavs/LJ036-0036.wav|tests/data/ljspeech/wavs/LJ036-0036.npy +tests/data/ljspeech/wavs/LJ032-0098.wav|tests/data/ljspeech/wavs/LJ032-0098.npy +tests/data/ljspeech/wavs/LJ029-0039.wav|tests/data/ljspeech/wavs/LJ029-0039.npy +tests/data/ljspeech/wavs/LJ033-0024.wav|tests/data/ljspeech/wavs/LJ033-0024.npy +tests/data/ljspeech/wavs/LJ019-0188.wav|tests/data/ljspeech/wavs/LJ019-0188.npy +tests/data/ljspeech/wavs/LJ012-0024.wav|tests/data/ljspeech/wavs/LJ012-0024.npy +tests/data/ljspeech/wavs/LJ010-0170.wav|tests/data/ljspeech/wavs/LJ010-0170.npy +tests/data/ljspeech/wavs/LJ040-0206.wav|tests/data/ljspeech/wavs/LJ040-0206.npy +tests/data/ljspeech/wavs/LJ044-0170.wav|tests/data/ljspeech/wavs/LJ044-0170.npy +tests/data/ljspeech/wavs/LJ015-0105.wav|tests/data/ljspeech/wavs/LJ015-0105.npy +tests/data/ljspeech/wavs/LJ012-0252.wav|tests/data/ljspeech/wavs/LJ012-0252.npy +tests/data/ljspeech/wavs/LJ037-0220.wav|tests/data/ljspeech/wavs/LJ037-0220.npy +tests/data/ljspeech/wavs/LJ012-0053.wav|tests/data/ljspeech/wavs/LJ012-0053.npy +tests/data/ljspeech/wavs/LJ012-0075.wav|tests/data/ljspeech/wavs/LJ012-0075.npy +tests/data/ljspeech/wavs/LJ015-0119.wav|tests/data/ljspeech/wavs/LJ015-0119.npy +tests/data/ljspeech/wavs/LJ050-0181.wav|tests/data/ljspeech/wavs/LJ050-0181.npy +tests/data/ljspeech/wavs/LJ015-0100.wav|tests/data/ljspeech/wavs/LJ015-0100.npy +tests/data/ljspeech/wavs/LJ044-0236.wav|tests/data/ljspeech/wavs/LJ044-0236.npy +tests/data/ljspeech/wavs/LJ036-0042.wav|tests/data/ljspeech/wavs/LJ036-0042.npy +tests/data/ljspeech/wavs/LJ049-0184.wav|tests/data/ljspeech/wavs/LJ049-0184.npy +tests/data/ljspeech/wavs/LJ015-0114.wav|tests/data/ljspeech/wavs/LJ015-0114.npy +tests/data/ljspeech/wavs/LJ010-0164.wav|tests/data/ljspeech/wavs/LJ010-0164.npy +tests/data/ljspeech/wavs/LJ002-0327.wav|tests/data/ljspeech/wavs/LJ002-0327.npy +tests/data/ljspeech/wavs/LJ032-0214.wav|tests/data/ljspeech/wavs/LJ032-0214.npy +tests/data/ljspeech/wavs/LJ028-0025.wav|tests/data/ljspeech/wavs/LJ028-0025.npy +tests/data/ljspeech/wavs/LJ045-0175.wav|tests/data/ljspeech/wavs/LJ045-0175.npy +tests/data/ljspeech/wavs/LJ006-0305.wav|tests/data/ljspeech/wavs/LJ006-0305.npy +tests/data/ljspeech/wavs/LJ036-0033.wav|tests/data/ljspeech/wavs/LJ036-0033.npy +tests/data/ljspeech/wavs/LJ035-0030.wav|tests/data/ljspeech/wavs/LJ035-0030.npy +tests/data/ljspeech/wavs/LJ032-0213.wav|tests/data/ljspeech/wavs/LJ032-0213.npy +tests/data/ljspeech/wavs/LJ011-0001.wav|tests/data/ljspeech/wavs/LJ011-0001.npy +tests/data/ljspeech/wavs/LJ036-0202.wav|tests/data/ljspeech/wavs/LJ036-0202.npy +tests/data/ljspeech/wavs/LJ046-0088.wav|tests/data/ljspeech/wavs/LJ046-0088.npy +tests/data/ljspeech/wavs/LJ004-0115.wav|tests/data/ljspeech/wavs/LJ004-0115.npy +tests/data/ljspeech/wavs/LJ041-0047.wav|tests/data/ljspeech/wavs/LJ041-0047.npy +tests/data/ljspeech/wavs/LJ044-0176.wav|tests/data/ljspeech/wavs/LJ044-0176.npy +tests/data/ljspeech/wavs/LJ047-0217.wav|tests/data/ljspeech/wavs/LJ047-0217.npy +tests/data/ljspeech/wavs/LJ044-0187.wav|tests/data/ljspeech/wavs/LJ044-0187.npy +tests/data/ljspeech/wavs/LJ034-0201.wav|tests/data/ljspeech/wavs/LJ034-0201.npy +tests/data/ljspeech/wavs/LJ003-0306.wav|tests/data/ljspeech/wavs/LJ003-0306.npy +tests/data/ljspeech/wavs/LJ013-0253.wav|tests/data/ljspeech/wavs/LJ013-0253.npy +tests/data/ljspeech/wavs/LJ002-0279.wav|tests/data/ljspeech/wavs/LJ002-0279.npy +tests/data/ljspeech/wavs/LJ011-0110.wav|tests/data/ljspeech/wavs/LJ011-0110.npy +tests/data/ljspeech/wavs/LJ041-0063.wav|tests/data/ljspeech/wavs/LJ041-0063.npy +tests/data/ljspeech/wavs/LJ028-0310.wav|tests/data/ljspeech/wavs/LJ028-0310.npy +tests/data/ljspeech/wavs/LJ009-0185.wav|tests/data/ljspeech/wavs/LJ009-0185.npy +tests/data/ljspeech/wavs/LJ050-0122.wav|tests/data/ljspeech/wavs/LJ050-0122.npy +tests/data/ljspeech/wavs/LJ032-0260.wav|tests/data/ljspeech/wavs/LJ032-0260.npy +tests/data/ljspeech/wavs/LJ014-0062.wav|tests/data/ljspeech/wavs/LJ014-0062.npy +tests/data/ljspeech/wavs/LJ006-0230.wav|tests/data/ljspeech/wavs/LJ006-0230.npy +tests/data/ljspeech/wavs/LJ029-0115.wav|tests/data/ljspeech/wavs/LJ029-0115.npy +tests/data/ljspeech/wavs/LJ031-0185.wav|tests/data/ljspeech/wavs/LJ031-0185.npy +tests/data/ljspeech/wavs/LJ037-0066.wav|tests/data/ljspeech/wavs/LJ037-0066.npy +tests/data/ljspeech/wavs/LJ019-0366.wav|tests/data/ljspeech/wavs/LJ019-0366.npy +tests/data/ljspeech/wavs/LJ032-0069.wav|tests/data/ljspeech/wavs/LJ032-0069.npy +tests/data/ljspeech/wavs/LJ016-0428.wav|tests/data/ljspeech/wavs/LJ016-0428.npy +tests/data/ljspeech/wavs/LJ031-0065.wav|tests/data/ljspeech/wavs/LJ031-0065.npy +tests/data/ljspeech/wavs/LJ005-0175.wav|tests/data/ljspeech/wavs/LJ005-0175.npy +tests/data/ljspeech/wavs/LJ030-0032.wav|tests/data/ljspeech/wavs/LJ030-0032.npy +tests/data/ljspeech/wavs/LJ039-0034.wav|tests/data/ljspeech/wavs/LJ039-0034.npy +tests/data/ljspeech/wavs/LJ002-0238.wav|tests/data/ljspeech/wavs/LJ002-0238.npy +tests/data/ljspeech/wavs/LJ032-0044.wav|tests/data/ljspeech/wavs/LJ032-0044.npy +tests/data/ljspeech/wavs/LJ036-0024.wav|tests/data/ljspeech/wavs/LJ036-0024.npy +tests/data/ljspeech/wavs/LJ023-0026.wav|tests/data/ljspeech/wavs/LJ023-0026.npy +tests/data/ljspeech/wavs/LJ017-0001.wav|tests/data/ljspeech/wavs/LJ017-0001.npy +tests/data/ljspeech/wavs/LJ050-0069.wav|tests/data/ljspeech/wavs/LJ050-0069.npy +tests/data/ljspeech/wavs/LJ010-0148.wav|tests/data/ljspeech/wavs/LJ010-0148.npy +tests/data/ljspeech/wavs/LJ049-0187.wav|tests/data/ljspeech/wavs/LJ049-0187.npy +tests/data/ljspeech/wavs/LJ018-0063.wav|tests/data/ljspeech/wavs/LJ018-0063.npy +tests/data/ljspeech/wavs/LJ003-0223.wav|tests/data/ljspeech/wavs/LJ003-0223.npy +tests/data/ljspeech/wavs/LJ047-0095.wav|tests/data/ljspeech/wavs/LJ047-0095.npy +tests/data/ljspeech/wavs/LJ036-0146.wav|tests/data/ljspeech/wavs/LJ036-0146.npy +tests/data/ljspeech/wavs/LJ027-0052.wav|tests/data/ljspeech/wavs/LJ027-0052.npy +tests/data/ljspeech/wavs/LJ045-0159.wav|tests/data/ljspeech/wavs/LJ045-0159.npy +tests/data/ljspeech/wavs/LJ011-0075.wav|tests/data/ljspeech/wavs/LJ011-0075.npy +tests/data/ljspeech/wavs/LJ017-0124.wav|tests/data/ljspeech/wavs/LJ017-0124.npy +tests/data/ljspeech/wavs/LJ016-0392.wav|tests/data/ljspeech/wavs/LJ016-0392.npy +tests/data/ljspeech/wavs/LJ027-0048.wav|tests/data/ljspeech/wavs/LJ027-0048.npy +tests/data/ljspeech/wavs/LJ037-0202.wav|tests/data/ljspeech/wavs/LJ037-0202.npy +tests/data/ljspeech/wavs/LJ030-0126.wav|tests/data/ljspeech/wavs/LJ030-0126.npy +tests/data/ljspeech/wavs/LJ012-0027.wav|tests/data/ljspeech/wavs/LJ012-0027.npy +tests/data/ljspeech/wavs/LJ006-0280.wav|tests/data/ljspeech/wavs/LJ006-0280.npy +tests/data/ljspeech/wavs/LJ017-0130.wav|tests/data/ljspeech/wavs/LJ017-0130.npy +tests/data/ljspeech/wavs/LJ011-0038.wav|tests/data/ljspeech/wavs/LJ011-0038.npy +tests/data/ljspeech/wavs/LJ044-0225.wav|tests/data/ljspeech/wavs/LJ044-0225.npy +tests/data/ljspeech/wavs/LJ034-0051.wav|tests/data/ljspeech/wavs/LJ034-0051.npy +tests/data/ljspeech/wavs/LJ034-0008.wav|tests/data/ljspeech/wavs/LJ034-0008.npy +tests/data/ljspeech/wavs/LJ001-0111.wav|tests/data/ljspeech/wavs/LJ001-0111.npy +tests/data/ljspeech/wavs/LJ036-0155.wav|tests/data/ljspeech/wavs/LJ036-0155.npy +tests/data/ljspeech/wavs/LJ016-0256.wav|tests/data/ljspeech/wavs/LJ016-0256.npy +tests/data/ljspeech/wavs/LJ002-0171.wav|tests/data/ljspeech/wavs/LJ002-0171.npy +tests/data/ljspeech/wavs/LJ010-0219.wav|tests/data/ljspeech/wavs/LJ010-0219.npy +tests/data/ljspeech/wavs/LJ046-0035.wav|tests/data/ljspeech/wavs/LJ046-0035.npy +tests/data/ljspeech/wavs/LJ031-0025.wav|tests/data/ljspeech/wavs/LJ031-0025.npy +tests/data/ljspeech/wavs/LJ003-0001.wav|tests/data/ljspeech/wavs/LJ003-0001.npy +tests/data/ljspeech/wavs/LJ018-0001.wav|tests/data/ljspeech/wavs/LJ018-0001.npy +tests/data/ljspeech/wavs/LJ018-0138.wav|tests/data/ljspeech/wavs/LJ018-0138.npy +tests/data/ljspeech/wavs/LJ026-0133.wav|tests/data/ljspeech/wavs/LJ026-0133.npy +tests/data/ljspeech/wavs/LJ006-0021.wav|tests/data/ljspeech/wavs/LJ006-0021.npy +tests/data/ljspeech/wavs/LJ028-0480.wav|tests/data/ljspeech/wavs/LJ028-0480.npy +tests/data/ljspeech/wavs/LJ006-0173.wav|tests/data/ljspeech/wavs/LJ006-0173.npy +tests/data/ljspeech/wavs/LJ018-0023.wav|tests/data/ljspeech/wavs/LJ018-0023.npy +tests/data/ljspeech/wavs/LJ011-0176.wav|tests/data/ljspeech/wavs/LJ011-0176.npy +tests/data/ljspeech/wavs/LJ016-0150.wav|tests/data/ljspeech/wavs/LJ016-0150.npy +tests/data/ljspeech/wavs/LJ018-0113.wav|tests/data/ljspeech/wavs/LJ018-0113.npy +tests/data/ljspeech/wavs/LJ017-0253.wav|tests/data/ljspeech/wavs/LJ017-0253.npy +tests/data/ljspeech/wavs/LJ011-0261.wav|tests/data/ljspeech/wavs/LJ011-0261.npy +tests/data/ljspeech/wavs/LJ039-0230.wav|tests/data/ljspeech/wavs/LJ039-0230.npy +tests/data/ljspeech/wavs/LJ041-0110.wav|tests/data/ljspeech/wavs/LJ041-0110.npy +tests/data/ljspeech/wavs/LJ008-0193.wav|tests/data/ljspeech/wavs/LJ008-0193.npy +tests/data/ljspeech/wavs/LJ022-0030.wav|tests/data/ljspeech/wavs/LJ022-0030.npy +tests/data/ljspeech/wavs/LJ044-0229.wav|tests/data/ljspeech/wavs/LJ044-0229.npy +tests/data/ljspeech/wavs/LJ046-0148.wav|tests/data/ljspeech/wavs/LJ046-0148.npy +tests/data/ljspeech/wavs/LJ008-0247.wav|tests/data/ljspeech/wavs/LJ008-0247.npy +tests/data/ljspeech/wavs/LJ018-0109.wav|tests/data/ljspeech/wavs/LJ018-0109.npy +tests/data/ljspeech/wavs/LJ016-0274.wav|tests/data/ljspeech/wavs/LJ016-0274.npy +tests/data/ljspeech/wavs/LJ037-0071.wav|tests/data/ljspeech/wavs/LJ037-0071.npy +tests/data/ljspeech/wavs/LJ037-0106.wav|tests/data/ljspeech/wavs/LJ037-0106.npy +tests/data/ljspeech/wavs/LJ016-0267.wav|tests/data/ljspeech/wavs/LJ016-0267.npy +tests/data/ljspeech/wavs/LJ028-0259.wav|tests/data/ljspeech/wavs/LJ028-0259.npy +tests/data/ljspeech/wavs/LJ036-0079.wav|tests/data/ljspeech/wavs/LJ036-0079.npy +tests/data/ljspeech/wavs/LJ008-0189.wav|tests/data/ljspeech/wavs/LJ008-0189.npy +tests/data/ljspeech/wavs/LJ018-0042.wav|tests/data/ljspeech/wavs/LJ018-0042.npy +tests/data/ljspeech/wavs/LJ002-0253.wav|tests/data/ljspeech/wavs/LJ002-0253.npy +tests/data/ljspeech/wavs/LJ042-0134.wav|tests/data/ljspeech/wavs/LJ042-0134.npy +tests/data/ljspeech/wavs/LJ038-0198.wav|tests/data/ljspeech/wavs/LJ038-0198.npy +tests/data/ljspeech/wavs/LJ010-0001.wav|tests/data/ljspeech/wavs/LJ010-0001.npy +tests/data/ljspeech/wavs/LJ046-0155.wav|tests/data/ljspeech/wavs/LJ046-0155.npy +tests/data/ljspeech/wavs/LJ019-0118.wav|tests/data/ljspeech/wavs/LJ019-0118.npy +tests/data/ljspeech/wavs/LJ048-0166.wav|tests/data/ljspeech/wavs/LJ048-0166.npy +tests/data/ljspeech/wavs/LJ002-0089.wav|tests/data/ljspeech/wavs/LJ002-0089.npy +tests/data/ljspeech/wavs/LJ001-0044.wav|tests/data/ljspeech/wavs/LJ001-0044.npy +tests/data/ljspeech/wavs/LJ019-0198.wav|tests/data/ljspeech/wavs/LJ019-0198.npy +tests/data/ljspeech/wavs/LJ010-0199.wav|tests/data/ljspeech/wavs/LJ010-0199.npy +tests/data/ljspeech/wavs/LJ021-0141.wav|tests/data/ljspeech/wavs/LJ021-0141.npy +tests/data/ljspeech/wavs/LJ039-0099.wav|tests/data/ljspeech/wavs/LJ039-0099.npy +tests/data/ljspeech/wavs/LJ030-0102.wav|tests/data/ljspeech/wavs/LJ030-0102.npy +tests/data/ljspeech/wavs/LJ024-0056.wav|tests/data/ljspeech/wavs/LJ024-0056.npy +tests/data/ljspeech/wavs/LJ019-0103.wav|tests/data/ljspeech/wavs/LJ019-0103.npy +tests/data/ljspeech/wavs/LJ009-0040.wav|tests/data/ljspeech/wavs/LJ009-0040.npy +tests/data/ljspeech/wavs/LJ001-0182.wav|tests/data/ljspeech/wavs/LJ001-0182.npy +tests/data/ljspeech/wavs/LJ035-0119.wav|tests/data/ljspeech/wavs/LJ035-0119.npy +tests/data/ljspeech/wavs/LJ001-0033.wav|tests/data/ljspeech/wavs/LJ001-0033.npy +tests/data/ljspeech/wavs/LJ031-0136.wav|tests/data/ljspeech/wavs/LJ031-0136.npy +tests/data/ljspeech/wavs/LJ010-0207.wav|tests/data/ljspeech/wavs/LJ010-0207.npy +tests/data/ljspeech/wavs/LJ014-0251.wav|tests/data/ljspeech/wavs/LJ014-0251.npy +tests/data/ljspeech/wavs/LJ012-0168.wav|tests/data/ljspeech/wavs/LJ012-0168.npy +tests/data/ljspeech/wavs/LJ003-0207.wav|tests/data/ljspeech/wavs/LJ003-0207.npy +tests/data/ljspeech/wavs/LJ025-0082.wav|tests/data/ljspeech/wavs/LJ025-0082.npy +tests/data/ljspeech/wavs/LJ046-0104.wav|tests/data/ljspeech/wavs/LJ046-0104.npy +tests/data/ljspeech/wavs/LJ010-0205.wav|tests/data/ljspeech/wavs/LJ010-0205.npy +tests/data/ljspeech/wavs/LJ012-0190.wav|tests/data/ljspeech/wavs/LJ012-0190.npy +tests/data/ljspeech/wavs/LJ014-0214.wav|tests/data/ljspeech/wavs/LJ014-0214.npy +tests/data/ljspeech/wavs/LJ008-0008.wav|tests/data/ljspeech/wavs/LJ008-0008.npy +tests/data/ljspeech/wavs/LJ009-0254.wav|tests/data/ljspeech/wavs/LJ009-0254.npy +tests/data/ljspeech/wavs/LJ030-0148.wav|tests/data/ljspeech/wavs/LJ030-0148.npy +tests/data/ljspeech/wavs/LJ002-0102.wav|tests/data/ljspeech/wavs/LJ002-0102.npy +tests/data/ljspeech/wavs/LJ002-0011.wav|tests/data/ljspeech/wavs/LJ002-0011.npy +tests/data/ljspeech/wavs/LJ004-0223.wav|tests/data/ljspeech/wavs/LJ004-0223.npy +tests/data/ljspeech/wavs/LJ004-0228.wav|tests/data/ljspeech/wavs/LJ004-0228.npy +tests/data/ljspeech/wavs/LJ046-0073.wav|tests/data/ljspeech/wavs/LJ046-0073.npy +tests/data/ljspeech/wavs/LJ010-0078.wav|tests/data/ljspeech/wavs/LJ010-0078.npy +tests/data/ljspeech/wavs/LJ031-0051.wav|tests/data/ljspeech/wavs/LJ031-0051.npy +tests/data/ljspeech/wavs/LJ009-0224.wav|tests/data/ljspeech/wavs/LJ009-0224.npy +tests/data/ljspeech/wavs/LJ033-0097.wav|tests/data/ljspeech/wavs/LJ033-0097.npy +tests/data/ljspeech/wavs/LJ038-0283.wav|tests/data/ljspeech/wavs/LJ038-0283.npy +tests/data/ljspeech/wavs/LJ025-0175.wav|tests/data/ljspeech/wavs/LJ025-0175.npy +tests/data/ljspeech/wavs/LJ035-0149.wav|tests/data/ljspeech/wavs/LJ035-0149.npy +tests/data/ljspeech/wavs/LJ042-0115.wav|tests/data/ljspeech/wavs/LJ042-0115.npy +tests/data/ljspeech/wavs/LJ050-0047.wav|tests/data/ljspeech/wavs/LJ050-0047.npy +tests/data/ljspeech/wavs/LJ047-0222.wav|tests/data/ljspeech/wavs/LJ047-0222.npy +tests/data/ljspeech/wavs/LJ026-0009.wav|tests/data/ljspeech/wavs/LJ026-0009.npy +tests/data/ljspeech/wavs/LJ044-0129.wav|tests/data/ljspeech/wavs/LJ044-0129.npy +tests/data/ljspeech/wavs/LJ040-0200.wav|tests/data/ljspeech/wavs/LJ040-0200.npy +tests/data/ljspeech/wavs/LJ003-0342.wav|tests/data/ljspeech/wavs/LJ003-0342.npy +tests/data/ljspeech/wavs/LJ047-0115.wav|tests/data/ljspeech/wavs/LJ047-0115.npy +tests/data/ljspeech/wavs/LJ041-0065.wav|tests/data/ljspeech/wavs/LJ041-0065.npy +tests/data/ljspeech/wavs/LJ007-0053.wav|tests/data/ljspeech/wavs/LJ007-0053.npy +tests/data/ljspeech/wavs/LJ048-0161.wav|tests/data/ljspeech/wavs/LJ048-0161.npy +tests/data/ljspeech/wavs/LJ024-0099.wav|tests/data/ljspeech/wavs/LJ024-0099.npy +tests/data/ljspeech/wavs/LJ024-0085.wav|tests/data/ljspeech/wavs/LJ024-0085.npy +tests/data/ljspeech/wavs/LJ029-0025.wav|tests/data/ljspeech/wavs/LJ029-0025.npy +tests/data/ljspeech/wavs/LJ035-0003.wav|tests/data/ljspeech/wavs/LJ035-0003.npy +tests/data/ljspeech/wavs/LJ024-0108.wav|tests/data/ljspeech/wavs/LJ024-0108.npy +tests/data/ljspeech/wavs/LJ028-0170.wav|tests/data/ljspeech/wavs/LJ028-0170.npy +tests/data/ljspeech/wavs/LJ048-0049.wav|tests/data/ljspeech/wavs/LJ048-0049.npy +tests/data/ljspeech/wavs/LJ006-0042.wav|tests/data/ljspeech/wavs/LJ006-0042.npy +tests/data/ljspeech/wavs/LJ005-0208.wav|tests/data/ljspeech/wavs/LJ005-0208.npy +tests/data/ljspeech/wavs/LJ015-0154.wav|tests/data/ljspeech/wavs/LJ015-0154.npy +tests/data/ljspeech/wavs/LJ033-0020.wav|tests/data/ljspeech/wavs/LJ033-0020.npy +tests/data/ljspeech/wavs/LJ036-0208.wav|tests/data/ljspeech/wavs/LJ036-0208.npy +tests/data/ljspeech/wavs/LJ033-0177.wav|tests/data/ljspeech/wavs/LJ033-0177.npy +tests/data/ljspeech/wavs/LJ046-0137.wav|tests/data/ljspeech/wavs/LJ046-0137.npy +tests/data/ljspeech/wavs/LJ039-0141.wav|tests/data/ljspeech/wavs/LJ039-0141.npy +tests/data/ljspeech/wavs/LJ026-0070.wav|tests/data/ljspeech/wavs/LJ026-0070.npy +tests/data/ljspeech/wavs/LJ002-0157.wav|tests/data/ljspeech/wavs/LJ002-0157.npy +tests/data/ljspeech/wavs/LJ008-0216.wav|tests/data/ljspeech/wavs/LJ008-0216.npy +tests/data/ljspeech/wavs/LJ015-0233.wav|tests/data/ljspeech/wavs/LJ015-0233.npy +tests/data/ljspeech/wavs/LJ037-0015.wav|tests/data/ljspeech/wavs/LJ037-0015.npy +tests/data/ljspeech/wavs/LJ021-0118.wav|tests/data/ljspeech/wavs/LJ021-0118.npy +tests/data/ljspeech/wavs/LJ037-0265.wav|tests/data/ljspeech/wavs/LJ037-0265.npy +tests/data/ljspeech/wavs/LJ030-0216.wav|tests/data/ljspeech/wavs/LJ030-0216.npy +tests/data/ljspeech/wavs/LJ031-0156.wav|tests/data/ljspeech/wavs/LJ031-0156.npy +tests/data/ljspeech/wavs/LJ031-0190.wav|tests/data/ljspeech/wavs/LJ031-0190.npy +tests/data/ljspeech/wavs/LJ026-0050.wav|tests/data/ljspeech/wavs/LJ026-0050.npy +tests/data/ljspeech/wavs/LJ015-0136.wav|tests/data/ljspeech/wavs/LJ015-0136.npy +tests/data/ljspeech/wavs/LJ047-0126.wav|tests/data/ljspeech/wavs/LJ047-0126.npy +tests/data/ljspeech/wavs/LJ005-0016.wav|tests/data/ljspeech/wavs/LJ005-0016.npy +tests/data/ljspeech/wavs/LJ012-0090.wav|tests/data/ljspeech/wavs/LJ012-0090.npy +tests/data/ljspeech/wavs/LJ035-0174.wav|tests/data/ljspeech/wavs/LJ035-0174.npy +tests/data/ljspeech/wavs/LJ031-0193.wav|tests/data/ljspeech/wavs/LJ031-0193.npy +tests/data/ljspeech/wavs/LJ004-0080.wav|tests/data/ljspeech/wavs/LJ004-0080.npy +tests/data/ljspeech/wavs/LJ021-0088.wav|tests/data/ljspeech/wavs/LJ021-0088.npy +tests/data/ljspeech/wavs/LJ004-0186.wav|tests/data/ljspeech/wavs/LJ004-0186.npy +tests/data/ljspeech/wavs/LJ011-0158.wav|tests/data/ljspeech/wavs/LJ011-0158.npy +tests/data/ljspeech/wavs/LJ004-0033.wav|tests/data/ljspeech/wavs/LJ004-0033.npy +tests/data/ljspeech/wavs/LJ012-0096.wav|tests/data/ljspeech/wavs/LJ012-0096.npy +tests/data/ljspeech/wavs/LJ004-0031.wav|tests/data/ljspeech/wavs/LJ004-0031.npy +tests/data/ljspeech/wavs/LJ007-0115.wav|tests/data/ljspeech/wavs/LJ007-0115.npy +tests/data/ljspeech/wavs/LJ030-0229.wav|tests/data/ljspeech/wavs/LJ030-0229.npy +tests/data/ljspeech/wavs/LJ026-0066.wav|tests/data/ljspeech/wavs/LJ026-0066.npy +tests/data/ljspeech/wavs/LJ039-0092.wav|tests/data/ljspeech/wavs/LJ039-0092.npy +tests/data/ljspeech/wavs/LJ039-0086.wav|tests/data/ljspeech/wavs/LJ039-0086.npy +tests/data/ljspeech/wavs/LJ004-0103.wav|tests/data/ljspeech/wavs/LJ004-0103.npy +tests/data/ljspeech/wavs/LJ037-0226.wav|tests/data/ljspeech/wavs/LJ037-0226.npy +tests/data/ljspeech/wavs/LJ002-0338.wav|tests/data/ljspeech/wavs/LJ002-0338.npy +tests/data/ljspeech/wavs/LJ036-0184.wav|tests/data/ljspeech/wavs/LJ036-0184.npy +tests/data/ljspeech/wavs/LJ036-0195.wav|tests/data/ljspeech/wavs/LJ036-0195.npy +tests/data/ljspeech/wavs/LJ024-0098.wav|tests/data/ljspeech/wavs/LJ024-0098.npy +tests/data/ljspeech/wavs/LJ022-0115.wav|tests/data/ljspeech/wavs/LJ022-0115.npy +tests/data/ljspeech/wavs/LJ013-0140.wav|tests/data/ljspeech/wavs/LJ013-0140.npy +tests/data/ljspeech/wavs/LJ028-0185.wav|tests/data/ljspeech/wavs/LJ028-0185.npy +tests/data/ljspeech/wavs/LJ025-0022.wav|tests/data/ljspeech/wavs/LJ025-0022.npy +tests/data/ljspeech/wavs/LJ013-0205.wav|tests/data/ljspeech/wavs/LJ013-0205.npy +tests/data/ljspeech/wavs/LJ038-0085.wav|tests/data/ljspeech/wavs/LJ038-0085.npy +tests/data/ljspeech/wavs/LJ024-0141.wav|tests/data/ljspeech/wavs/LJ024-0141.npy +tests/data/ljspeech/wavs/LJ027-0076.wav|tests/data/ljspeech/wavs/LJ027-0076.npy +tests/data/ljspeech/wavs/LJ024-0122.wav|tests/data/ljspeech/wavs/LJ024-0122.npy +tests/data/ljspeech/wavs/LJ049-0057.wav|tests/data/ljspeech/wavs/LJ049-0057.npy +tests/data/ljspeech/wavs/LJ003-0107.wav|tests/data/ljspeech/wavs/LJ003-0107.npy +tests/data/ljspeech/wavs/LJ013-0035.wav|tests/data/ljspeech/wavs/LJ013-0035.npy +tests/data/ljspeech/wavs/LJ017-0033.wav|tests/data/ljspeech/wavs/LJ017-0033.npy +tests/data/ljspeech/wavs/LJ028-0177.wav|tests/data/ljspeech/wavs/LJ028-0177.npy +tests/data/ljspeech/wavs/LJ023-0084.wav|tests/data/ljspeech/wavs/LJ023-0084.npy +tests/data/ljspeech/wavs/LJ004-0035.wav|tests/data/ljspeech/wavs/LJ004-0035.npy +tests/data/ljspeech/wavs/LJ012-0111.wav|tests/data/ljspeech/wavs/LJ012-0111.npy +tests/data/ljspeech/wavs/LJ013-0102.wav|tests/data/ljspeech/wavs/LJ013-0102.npy +tests/data/ljspeech/wavs/LJ003-0280.wav|tests/data/ljspeech/wavs/LJ003-0280.npy +tests/data/ljspeech/wavs/LJ013-0130.wav|tests/data/ljspeech/wavs/LJ013-0130.npy +tests/data/ljspeech/wavs/LJ017-0018.wav|tests/data/ljspeech/wavs/LJ017-0018.npy +tests/data/ljspeech/wavs/LJ003-0032.wav|tests/data/ljspeech/wavs/LJ003-0032.npy +tests/data/ljspeech/wavs/LJ050-0273.wav|tests/data/ljspeech/wavs/LJ050-0273.npy +tests/data/ljspeech/wavs/LJ011-0223.wav|tests/data/ljspeech/wavs/LJ011-0223.npy +tests/data/ljspeech/wavs/LJ050-0211.wav|tests/data/ljspeech/wavs/LJ050-0211.npy +tests/data/ljspeech/wavs/LJ023-0016.wav|tests/data/ljspeech/wavs/LJ023-0016.npy +tests/data/ljspeech/wavs/LJ022-0194.wav|tests/data/ljspeech/wavs/LJ022-0194.npy +tests/data/ljspeech/wavs/LJ046-0158.wav|tests/data/ljspeech/wavs/LJ046-0158.npy +tests/data/ljspeech/wavs/LJ047-0129.wav|tests/data/ljspeech/wavs/LJ047-0129.npy +tests/data/ljspeech/wavs/LJ004-0020.wav|tests/data/ljspeech/wavs/LJ004-0020.npy +tests/data/ljspeech/wavs/LJ023-0125.wav|tests/data/ljspeech/wavs/LJ023-0125.npy +tests/data/ljspeech/wavs/LJ014-0228.wav|tests/data/ljspeech/wavs/LJ014-0228.npy +tests/data/ljspeech/wavs/LJ012-0251.wav|tests/data/ljspeech/wavs/LJ012-0251.npy +tests/data/ljspeech/wavs/LJ023-0101.wav|tests/data/ljspeech/wavs/LJ023-0101.npy +tests/data/ljspeech/wavs/LJ025-0047.wav|tests/data/ljspeech/wavs/LJ025-0047.npy +tests/data/ljspeech/wavs/LJ042-0208.wav|tests/data/ljspeech/wavs/LJ042-0208.npy +tests/data/ljspeech/wavs/LJ039-0058.wav|tests/data/ljspeech/wavs/LJ039-0058.npy +tests/data/ljspeech/wavs/LJ042-0037.wav|tests/data/ljspeech/wavs/LJ042-0037.npy +tests/data/ljspeech/wavs/LJ008-0060.wav|tests/data/ljspeech/wavs/LJ008-0060.npy +tests/data/ljspeech/wavs/LJ001-0082.wav|tests/data/ljspeech/wavs/LJ001-0082.npy +tests/data/ljspeech/wavs/LJ028-0075.wav|tests/data/ljspeech/wavs/LJ028-0075.npy +tests/data/ljspeech/wavs/LJ001-0073.wav|tests/data/ljspeech/wavs/LJ001-0073.npy +tests/data/ljspeech/wavs/LJ016-0110.wav|tests/data/ljspeech/wavs/LJ016-0110.npy +tests/data/ljspeech/wavs/LJ028-0509.wav|tests/data/ljspeech/wavs/LJ028-0509.npy +tests/data/ljspeech/wavs/LJ003-0256.wav|tests/data/ljspeech/wavs/LJ003-0256.npy +tests/data/ljspeech/wavs/LJ015-0192.wav|tests/data/ljspeech/wavs/LJ015-0192.npy +tests/data/ljspeech/wavs/LJ011-0183.wav|tests/data/ljspeech/wavs/LJ011-0183.npy +tests/data/ljspeech/wavs/LJ007-0139.wav|tests/data/ljspeech/wavs/LJ007-0139.npy +tests/data/ljspeech/wavs/LJ028-0213.wav|tests/data/ljspeech/wavs/LJ028-0213.npy +tests/data/ljspeech/wavs/LJ045-0189.wav|tests/data/ljspeech/wavs/LJ045-0189.npy +tests/data/ljspeech/wavs/LJ029-0074.wav|tests/data/ljspeech/wavs/LJ029-0074.npy +tests/data/ljspeech/wavs/LJ049-0162.wav|tests/data/ljspeech/wavs/LJ049-0162.npy +tests/data/ljspeech/wavs/LJ038-0203.wav|tests/data/ljspeech/wavs/LJ038-0203.npy +tests/data/ljspeech/wavs/LJ028-0256.wav|tests/data/ljspeech/wavs/LJ028-0256.npy +tests/data/ljspeech/wavs/LJ033-0205.wav|tests/data/ljspeech/wavs/LJ033-0205.npy +tests/data/ljspeech/wavs/LJ023-0106.wav|tests/data/ljspeech/wavs/LJ023-0106.npy +tests/data/ljspeech/wavs/LJ018-0115.wav|tests/data/ljspeech/wavs/LJ018-0115.npy +tests/data/ljspeech/wavs/LJ015-0084.wav|tests/data/ljspeech/wavs/LJ015-0084.npy +tests/data/ljspeech/wavs/LJ047-0046.wav|tests/data/ljspeech/wavs/LJ047-0046.npy +tests/data/ljspeech/wavs/LJ019-0098.wav|tests/data/ljspeech/wavs/LJ019-0098.npy +tests/data/ljspeech/wavs/LJ025-0059.wav|tests/data/ljspeech/wavs/LJ025-0059.npy +tests/data/ljspeech/wavs/LJ047-0081.wav|tests/data/ljspeech/wavs/LJ047-0081.npy +tests/data/ljspeech/wavs/LJ002-0240.wav|tests/data/ljspeech/wavs/LJ002-0240.npy +tests/data/ljspeech/wavs/LJ042-0117.wav|tests/data/ljspeech/wavs/LJ042-0117.npy +tests/data/ljspeech/wavs/LJ047-0061.wav|tests/data/ljspeech/wavs/LJ047-0061.npy +tests/data/ljspeech/wavs/LJ030-0046.wav|tests/data/ljspeech/wavs/LJ030-0046.npy +tests/data/ljspeech/wavs/LJ041-0198.wav|tests/data/ljspeech/wavs/LJ041-0198.npy +tests/data/ljspeech/wavs/LJ017-0259.wav|tests/data/ljspeech/wavs/LJ017-0259.npy +tests/data/ljspeech/wavs/LJ004-0096.wav|tests/data/ljspeech/wavs/LJ004-0096.npy +tests/data/ljspeech/wavs/LJ004-0202.wav|tests/data/ljspeech/wavs/LJ004-0202.npy +tests/data/ljspeech/wavs/LJ040-0094.wav|tests/data/ljspeech/wavs/LJ040-0094.npy +tests/data/ljspeech/wavs/LJ042-0141.wav|tests/data/ljspeech/wavs/LJ042-0141.npy +tests/data/ljspeech/wavs/LJ022-0090.wav|tests/data/ljspeech/wavs/LJ022-0090.npy +tests/data/ljspeech/wavs/LJ048-0173.wav|tests/data/ljspeech/wavs/LJ048-0173.npy +tests/data/ljspeech/wavs/LJ009-0289.wav|tests/data/ljspeech/wavs/LJ009-0289.npy +tests/data/ljspeech/wavs/LJ049-0156.wav|tests/data/ljspeech/wavs/LJ049-0156.npy +tests/data/ljspeech/wavs/LJ014-0098.wav|tests/data/ljspeech/wavs/LJ014-0098.npy +tests/data/ljspeech/wavs/LJ018-0040.wav|tests/data/ljspeech/wavs/LJ018-0040.npy +tests/data/ljspeech/wavs/LJ010-0208.wav|tests/data/ljspeech/wavs/LJ010-0208.npy +tests/data/ljspeech/wavs/LJ027-0124.wav|tests/data/ljspeech/wavs/LJ027-0124.npy +tests/data/ljspeech/wavs/LJ022-0016.wav|tests/data/ljspeech/wavs/LJ022-0016.npy +tests/data/ljspeech/wavs/LJ019-0081.wav|tests/data/ljspeech/wavs/LJ019-0081.npy +tests/data/ljspeech/wavs/LJ009-0065.wav|tests/data/ljspeech/wavs/LJ009-0065.npy +tests/data/ljspeech/wavs/LJ009-0261.wav|tests/data/ljspeech/wavs/LJ009-0261.npy +tests/data/ljspeech/wavs/LJ029-0135.wav|tests/data/ljspeech/wavs/LJ029-0135.npy +tests/data/ljspeech/wavs/LJ039-0153.wav|tests/data/ljspeech/wavs/LJ039-0153.npy +tests/data/ljspeech/wavs/LJ003-0340.wav|tests/data/ljspeech/wavs/LJ003-0340.npy +tests/data/ljspeech/wavs/LJ028-0401.wav|tests/data/ljspeech/wavs/LJ028-0401.npy +tests/data/ljspeech/wavs/LJ047-0190.wav|tests/data/ljspeech/wavs/LJ047-0190.npy +tests/data/ljspeech/wavs/LJ019-0015.wav|tests/data/ljspeech/wavs/LJ019-0015.npy +tests/data/ljspeech/wavs/LJ043-0085.wav|tests/data/ljspeech/wavs/LJ043-0085.npy +tests/data/ljspeech/wavs/LJ043-0100.wav|tests/data/ljspeech/wavs/LJ043-0100.npy +tests/data/ljspeech/wavs/LJ031-0166.wav|tests/data/ljspeech/wavs/LJ031-0166.npy +tests/data/ljspeech/wavs/LJ033-0040.wav|tests/data/ljspeech/wavs/LJ033-0040.npy +tests/data/ljspeech/wavs/LJ036-0144.wav|tests/data/ljspeech/wavs/LJ036-0144.npy +tests/data/ljspeech/wavs/LJ044-0163.wav|tests/data/ljspeech/wavs/LJ044-0163.npy +tests/data/ljspeech/wavs/LJ018-0384.wav|tests/data/ljspeech/wavs/LJ018-0384.npy +tests/data/ljspeech/wavs/LJ018-0271.wav|tests/data/ljspeech/wavs/LJ018-0271.npy +tests/data/ljspeech/wavs/LJ018-0263.wav|tests/data/ljspeech/wavs/LJ018-0263.npy +tests/data/ljspeech/wavs/LJ050-0258.wav|tests/data/ljspeech/wavs/LJ050-0258.npy +tests/data/ljspeech/wavs/LJ018-0359.wav|tests/data/ljspeech/wavs/LJ018-0359.npy +tests/data/ljspeech/wavs/LJ034-0219.wav|tests/data/ljspeech/wavs/LJ034-0219.npy +tests/data/ljspeech/wavs/LJ047-0247.wav|tests/data/ljspeech/wavs/LJ047-0247.npy +tests/data/ljspeech/wavs/LJ018-0195.wav|tests/data/ljspeech/wavs/LJ018-0195.npy +tests/data/ljspeech/wavs/LJ048-0253.wav|tests/data/ljspeech/wavs/LJ048-0253.npy +tests/data/ljspeech/wavs/LJ019-0012.wav|tests/data/ljspeech/wavs/LJ019-0012.npy +tests/data/ljspeech/wavs/LJ011-0057.wav|tests/data/ljspeech/wavs/LJ011-0057.npy +tests/data/ljspeech/wavs/LJ010-0162.wav|tests/data/ljspeech/wavs/LJ010-0162.npy +tests/data/ljspeech/wavs/LJ030-0053.wav|tests/data/ljspeech/wavs/LJ030-0053.npy +tests/data/ljspeech/wavs/LJ010-0191.wav|tests/data/ljspeech/wavs/LJ010-0191.npy +tests/data/ljspeech/wavs/LJ021-0181.wav|tests/data/ljspeech/wavs/LJ021-0181.npy +tests/data/ljspeech/wavs/LJ018-0351.wav|tests/data/ljspeech/wavs/LJ018-0351.npy +tests/data/ljspeech/wavs/LJ018-0189.wav|tests/data/ljspeech/wavs/LJ018-0189.npy +tests/data/ljspeech/wavs/LJ017-0066.wav|tests/data/ljspeech/wavs/LJ017-0066.npy +tests/data/ljspeech/wavs/LJ033-0099.wav|tests/data/ljspeech/wavs/LJ033-0099.npy +tests/data/ljspeech/wavs/LJ018-0314.wav|tests/data/ljspeech/wavs/LJ018-0314.npy +tests/data/ljspeech/wavs/LJ028-0467.wav|tests/data/ljspeech/wavs/LJ028-0467.npy +tests/data/ljspeech/wavs/LJ031-0124.wav|tests/data/ljspeech/wavs/LJ031-0124.npy +tests/data/ljspeech/wavs/LJ009-0105.wav|tests/data/ljspeech/wavs/LJ009-0105.npy +tests/data/ljspeech/wavs/LJ030-0187.wav|tests/data/ljspeech/wavs/LJ030-0187.npy +tests/data/ljspeech/wavs/LJ011-0003.wav|tests/data/ljspeech/wavs/LJ011-0003.npy +tests/data/ljspeech/wavs/LJ048-0248.wav|tests/data/ljspeech/wavs/LJ048-0248.npy +tests/data/ljspeech/wavs/LJ026-0001.wav|tests/data/ljspeech/wavs/LJ026-0001.npy +tests/data/ljspeech/wavs/LJ019-0014.wav|tests/data/ljspeech/wavs/LJ019-0014.npy +tests/data/ljspeech/wavs/LJ024-0112.wav|tests/data/ljspeech/wavs/LJ024-0112.npy +tests/data/ljspeech/wavs/LJ002-0266.wav|tests/data/ljspeech/wavs/LJ002-0266.npy +tests/data/ljspeech/wavs/LJ050-0142.wav|tests/data/ljspeech/wavs/LJ050-0142.npy +tests/data/ljspeech/wavs/LJ031-0010.wav|tests/data/ljspeech/wavs/LJ031-0010.npy +tests/data/ljspeech/wavs/LJ027-0049.wav|tests/data/ljspeech/wavs/LJ027-0049.npy +tests/data/ljspeech/wavs/LJ006-0047.wav|tests/data/ljspeech/wavs/LJ006-0047.npy +tests/data/ljspeech/wavs/LJ041-0119.wav|tests/data/ljspeech/wavs/LJ041-0119.npy +tests/data/ljspeech/wavs/LJ030-0166.wav|tests/data/ljspeech/wavs/LJ030-0166.npy +tests/data/ljspeech/wavs/LJ009-0177.wav|tests/data/ljspeech/wavs/LJ009-0177.npy +tests/data/ljspeech/wavs/LJ018-0395.wav|tests/data/ljspeech/wavs/LJ018-0395.npy +tests/data/ljspeech/wavs/LJ049-0101.wav|tests/data/ljspeech/wavs/LJ049-0101.npy +tests/data/ljspeech/wavs/LJ019-0002.wav|tests/data/ljspeech/wavs/LJ019-0002.npy +tests/data/ljspeech/wavs/LJ032-0106.wav|tests/data/ljspeech/wavs/LJ032-0106.npy +tests/data/ljspeech/wavs/LJ010-0172.wav|tests/data/ljspeech/wavs/LJ010-0172.npy +tests/data/ljspeech/wavs/LJ048-0218.wav|tests/data/ljspeech/wavs/LJ048-0218.npy +tests/data/ljspeech/wavs/LJ003-0300.wav|tests/data/ljspeech/wavs/LJ003-0300.npy +tests/data/ljspeech/wavs/LJ002-0165.wav|tests/data/ljspeech/wavs/LJ002-0165.npy +tests/data/ljspeech/wavs/LJ046-0101.wav|tests/data/ljspeech/wavs/LJ046-0101.npy +tests/data/ljspeech/wavs/LJ042-0147.wav|tests/data/ljspeech/wavs/LJ042-0147.npy +tests/data/ljspeech/wavs/LJ019-0394.wav|tests/data/ljspeech/wavs/LJ019-0394.npy +tests/data/ljspeech/wavs/LJ028-0449.wav|tests/data/ljspeech/wavs/LJ028-0449.npy +tests/data/ljspeech/wavs/LJ017-0116.wav|tests/data/ljspeech/wavs/LJ017-0116.npy +tests/data/ljspeech/wavs/LJ038-0065.wav|tests/data/ljspeech/wavs/LJ038-0065.npy +tests/data/ljspeech/wavs/LJ006-0207.wav|tests/data/ljspeech/wavs/LJ006-0207.npy +tests/data/ljspeech/wavs/LJ009-0123.wav|tests/data/ljspeech/wavs/LJ009-0123.npy +tests/data/ljspeech/wavs/LJ018-0203.wav|tests/data/ljspeech/wavs/LJ018-0203.npy +tests/data/ljspeech/wavs/LJ039-0125.wav|tests/data/ljspeech/wavs/LJ039-0125.npy +tests/data/ljspeech/wavs/LJ034-0133.wav|tests/data/ljspeech/wavs/LJ034-0133.npy +tests/data/ljspeech/wavs/LJ008-0074.wav|tests/data/ljspeech/wavs/LJ008-0074.npy +tests/data/ljspeech/wavs/LJ030-0246.wav|tests/data/ljspeech/wavs/LJ030-0246.npy +tests/data/ljspeech/wavs/LJ045-0019.wav|tests/data/ljspeech/wavs/LJ045-0019.npy +tests/data/ljspeech/wavs/LJ039-0016.wav|tests/data/ljspeech/wavs/LJ039-0016.npy +tests/data/ljspeech/wavs/LJ019-0341.wav|tests/data/ljspeech/wavs/LJ019-0341.npy +tests/data/ljspeech/wavs/LJ033-0102.wav|tests/data/ljspeech/wavs/LJ033-0102.npy +tests/data/ljspeech/wavs/LJ033-0090.wav|tests/data/ljspeech/wavs/LJ033-0090.npy +tests/data/ljspeech/wavs/LJ008-0142.wav|tests/data/ljspeech/wavs/LJ008-0142.npy +tests/data/ljspeech/wavs/LJ038-0184.wav|tests/data/ljspeech/wavs/LJ038-0184.npy +tests/data/ljspeech/wavs/LJ006-0080.wav|tests/data/ljspeech/wavs/LJ006-0080.npy +tests/data/ljspeech/wavs/LJ013-0239.wav|tests/data/ljspeech/wavs/LJ013-0239.npy +tests/data/ljspeech/wavs/LJ015-0149.wav|tests/data/ljspeech/wavs/LJ015-0149.npy +tests/data/ljspeech/wavs/LJ007-0047.wav|tests/data/ljspeech/wavs/LJ007-0047.npy +tests/data/ljspeech/wavs/LJ028-0457.wav|tests/data/ljspeech/wavs/LJ028-0457.npy +tests/data/ljspeech/wavs/LJ012-0079.wav|tests/data/ljspeech/wavs/LJ012-0079.npy +tests/data/ljspeech/wavs/LJ050-0052.wav|tests/data/ljspeech/wavs/LJ050-0052.npy +tests/data/ljspeech/wavs/LJ018-0360.wav|tests/data/ljspeech/wavs/LJ018-0360.npy +tests/data/ljspeech/wavs/LJ014-0111.wav|tests/data/ljspeech/wavs/LJ014-0111.npy +tests/data/ljspeech/wavs/LJ019-0210.wav|tests/data/ljspeech/wavs/LJ019-0210.npy +tests/data/ljspeech/wavs/LJ012-0081.wav|tests/data/ljspeech/wavs/LJ012-0081.npy +tests/data/ljspeech/wavs/LJ035-0159.wav|tests/data/ljspeech/wavs/LJ035-0159.npy +tests/data/ljspeech/wavs/LJ050-0109.wav|tests/data/ljspeech/wavs/LJ050-0109.npy +tests/data/ljspeech/wavs/LJ004-0182.wav|tests/data/ljspeech/wavs/LJ004-0182.npy +tests/data/ljspeech/wavs/LJ010-0085.wav|tests/data/ljspeech/wavs/LJ010-0085.npy +tests/data/ljspeech/wavs/LJ003-0276.wav|tests/data/ljspeech/wavs/LJ003-0276.npy +tests/data/ljspeech/wavs/LJ021-0086.wav|tests/data/ljspeech/wavs/LJ021-0086.npy +tests/data/ljspeech/wavs/LJ020-0083.wav|tests/data/ljspeech/wavs/LJ020-0083.npy +tests/data/ljspeech/wavs/LJ003-0332.wav|tests/data/ljspeech/wavs/LJ003-0332.npy +tests/data/ljspeech/wavs/LJ018-0340.wav|tests/data/ljspeech/wavs/LJ018-0340.npy +tests/data/ljspeech/wavs/LJ001-0067.wav|tests/data/ljspeech/wavs/LJ001-0067.npy +tests/data/ljspeech/wavs/LJ004-0181.wav|tests/data/ljspeech/wavs/LJ004-0181.npy +tests/data/ljspeech/wavs/LJ013-0247.wav|tests/data/ljspeech/wavs/LJ013-0247.npy +tests/data/ljspeech/wavs/LJ039-0073.wav|tests/data/ljspeech/wavs/LJ039-0073.npy +tests/data/ljspeech/wavs/LJ045-0029.wav|tests/data/ljspeech/wavs/LJ045-0029.npy +tests/data/ljspeech/wavs/LJ038-0136.wav|tests/data/ljspeech/wavs/LJ038-0136.npy +tests/data/ljspeech/wavs/LJ009-0197.wav|tests/data/ljspeech/wavs/LJ009-0197.npy +tests/data/ljspeech/wavs/LJ039-0103.wav|tests/data/ljspeech/wavs/LJ039-0103.npy +tests/data/ljspeech/wavs/LJ038-0201.wav|tests/data/ljspeech/wavs/LJ038-0201.npy +tests/data/ljspeech/wavs/LJ009-0272.wav|tests/data/ljspeech/wavs/LJ009-0272.npy +tests/data/ljspeech/wavs/LJ038-0134.wav|tests/data/ljspeech/wavs/LJ038-0134.npy +tests/data/ljspeech/wavs/LJ014-0234.wav|tests/data/ljspeech/wavs/LJ014-0234.npy +tests/data/ljspeech/wavs/LJ047-0074.wav|tests/data/ljspeech/wavs/LJ047-0074.npy +tests/data/ljspeech/wavs/LJ024-0005.wav|tests/data/ljspeech/wavs/LJ024-0005.npy +tests/data/ljspeech/wavs/LJ042-0242.wav|tests/data/ljspeech/wavs/LJ042-0242.npy +tests/data/ljspeech/wavs/LJ045-0034.wav|tests/data/ljspeech/wavs/LJ045-0034.npy +tests/data/ljspeech/wavs/LJ012-0193.wav|tests/data/ljspeech/wavs/LJ012-0193.npy +tests/data/ljspeech/wavs/LJ033-0156.wav|tests/data/ljspeech/wavs/LJ033-0156.npy +tests/data/ljspeech/wavs/LJ019-0141.wav|tests/data/ljspeech/wavs/LJ019-0141.npy +tests/data/ljspeech/wavs/LJ007-0024.wav|tests/data/ljspeech/wavs/LJ007-0024.npy +tests/data/ljspeech/wavs/LJ009-0192.wav|tests/data/ljspeech/wavs/LJ009-0192.npy +tests/data/ljspeech/wavs/LJ013-0210.wav|tests/data/ljspeech/wavs/LJ013-0210.npy +tests/data/ljspeech/wavs/LJ012-0163.wav|tests/data/ljspeech/wavs/LJ012-0163.npy +tests/data/ljspeech/wavs/LJ042-0075.wav|tests/data/ljspeech/wavs/LJ042-0075.npy +tests/data/ljspeech/wavs/LJ031-0096.wav|tests/data/ljspeech/wavs/LJ031-0096.npy +tests/data/ljspeech/wavs/LJ014-0068.wav|tests/data/ljspeech/wavs/LJ014-0068.npy +tests/data/ljspeech/wavs/LJ014-0263.wav|tests/data/ljspeech/wavs/LJ014-0263.npy +tests/data/ljspeech/wavs/LJ014-0144.wav|tests/data/ljspeech/wavs/LJ014-0144.npy +tests/data/ljspeech/wavs/LJ004-0218.wav|tests/data/ljspeech/wavs/LJ004-0218.npy +tests/data/ljspeech/wavs/LJ028-0095.wav|tests/data/ljspeech/wavs/LJ028-0095.npy +tests/data/ljspeech/wavs/LJ045-0015.wav|tests/data/ljspeech/wavs/LJ045-0015.npy +tests/data/ljspeech/wavs/LJ031-0153.wav|tests/data/ljspeech/wavs/LJ031-0153.npy +tests/data/ljspeech/wavs/LJ014-0177.wav|tests/data/ljspeech/wavs/LJ014-0177.npy +tests/data/ljspeech/wavs/LJ012-0269.wav|tests/data/ljspeech/wavs/LJ012-0269.npy +tests/data/ljspeech/wavs/LJ001-0050.wav|tests/data/ljspeech/wavs/LJ001-0050.npy +tests/data/ljspeech/wavs/LJ042-0033.wav|tests/data/ljspeech/wavs/LJ042-0033.npy +tests/data/ljspeech/wavs/LJ037-0022.wav|tests/data/ljspeech/wavs/LJ037-0022.npy +tests/data/ljspeech/wavs/LJ016-0325.wav|tests/data/ljspeech/wavs/LJ016-0325.npy +tests/data/ljspeech/wavs/LJ031-0206.wav|tests/data/ljspeech/wavs/LJ031-0206.npy +tests/data/ljspeech/wavs/LJ036-0067.wav|tests/data/ljspeech/wavs/LJ036-0067.npy +tests/data/ljspeech/wavs/LJ042-0132.wav|tests/data/ljspeech/wavs/LJ042-0132.npy +tests/data/ljspeech/wavs/LJ042-0101.wav|tests/data/ljspeech/wavs/LJ042-0101.npy +tests/data/ljspeech/wavs/LJ011-0253.wav|tests/data/ljspeech/wavs/LJ011-0253.npy +tests/data/ljspeech/wavs/LJ042-0036.wav|tests/data/ljspeech/wavs/LJ042-0036.npy +tests/data/ljspeech/wavs/LJ032-0144.wav|tests/data/ljspeech/wavs/LJ032-0144.npy +tests/data/ljspeech/wavs/LJ018-0134.wav|tests/data/ljspeech/wavs/LJ018-0134.npy +tests/data/ljspeech/wavs/LJ026-0144.wav|tests/data/ljspeech/wavs/LJ026-0144.npy +tests/data/ljspeech/wavs/LJ005-0035.wav|tests/data/ljspeech/wavs/LJ005-0035.npy +tests/data/ljspeech/wavs/LJ043-0081.wav|tests/data/ljspeech/wavs/LJ043-0081.npy +tests/data/ljspeech/wavs/LJ023-0050.wav|tests/data/ljspeech/wavs/LJ023-0050.npy +tests/data/ljspeech/wavs/LJ005-0179.wav|tests/data/ljspeech/wavs/LJ005-0179.npy +tests/data/ljspeech/wavs/LJ008-0084.wav|tests/data/ljspeech/wavs/LJ008-0084.npy +tests/data/ljspeech/wavs/LJ018-0355.wav|tests/data/ljspeech/wavs/LJ018-0355.npy +tests/data/ljspeech/wavs/LJ040-0131.wav|tests/data/ljspeech/wavs/LJ040-0131.npy +tests/data/ljspeech/wavs/LJ008-0175.wav|tests/data/ljspeech/wavs/LJ008-0175.npy +tests/data/ljspeech/wavs/LJ017-0215.wav|tests/data/ljspeech/wavs/LJ017-0215.npy +tests/data/ljspeech/wavs/LJ039-0179.wav|tests/data/ljspeech/wavs/LJ039-0179.npy +tests/data/ljspeech/wavs/LJ011-0148.wav|tests/data/ljspeech/wavs/LJ011-0148.npy +tests/data/ljspeech/wavs/LJ017-0177.wav|tests/data/ljspeech/wavs/LJ017-0177.npy +tests/data/ljspeech/wavs/LJ027-0090.wav|tests/data/ljspeech/wavs/LJ027-0090.npy +tests/data/ljspeech/wavs/LJ012-0237.wav|tests/data/ljspeech/wavs/LJ012-0237.npy +tests/data/ljspeech/wavs/LJ027-0036.wav|tests/data/ljspeech/wavs/LJ027-0036.npy +tests/data/ljspeech/wavs/LJ049-0226.wav|tests/data/ljspeech/wavs/LJ049-0226.npy +tests/data/ljspeech/wavs/LJ046-0062.wav|tests/data/ljspeech/wavs/LJ046-0062.npy +tests/data/ljspeech/wavs/LJ016-0358.wav|tests/data/ljspeech/wavs/LJ016-0358.npy +tests/data/ljspeech/wavs/LJ002-0228.wav|tests/data/ljspeech/wavs/LJ002-0228.npy +tests/data/ljspeech/wavs/LJ028-0299.wav|tests/data/ljspeech/wavs/LJ028-0299.npy +tests/data/ljspeech/wavs/LJ004-0107.wav|tests/data/ljspeech/wavs/LJ004-0107.npy +tests/data/ljspeech/wavs/LJ017-0073.wav|tests/data/ljspeech/wavs/LJ017-0073.npy +tests/data/ljspeech/wavs/LJ011-0140.wav|tests/data/ljspeech/wavs/LJ011-0140.npy +tests/data/ljspeech/wavs/LJ046-0128.wav|tests/data/ljspeech/wavs/LJ046-0128.npy +tests/data/ljspeech/wavs/LJ021-0168.wav|tests/data/ljspeech/wavs/LJ021-0168.npy +tests/data/ljspeech/wavs/LJ022-0086.wav|tests/data/ljspeech/wavs/LJ022-0086.npy +tests/data/ljspeech/wavs/LJ016-0129.wav|tests/data/ljspeech/wavs/LJ016-0129.npy +tests/data/ljspeech/wavs/LJ022-0073.wav|tests/data/ljspeech/wavs/LJ022-0073.npy +tests/data/ljspeech/wavs/LJ011-0190.wav|tests/data/ljspeech/wavs/LJ011-0190.npy +tests/data/ljspeech/wavs/LJ003-0063.wav|tests/data/ljspeech/wavs/LJ003-0063.npy +tests/data/ljspeech/wavs/LJ021-0167.wav|tests/data/ljspeech/wavs/LJ021-0167.npy +tests/data/ljspeech/wavs/LJ018-0188.wav|tests/data/ljspeech/wavs/LJ018-0188.npy +tests/data/ljspeech/wavs/LJ001-0143.wav|tests/data/ljspeech/wavs/LJ001-0143.npy +tests/data/ljspeech/wavs/LJ042-0133.wav|tests/data/ljspeech/wavs/LJ042-0133.npy +tests/data/ljspeech/wavs/LJ037-0089.wav|tests/data/ljspeech/wavs/LJ037-0089.npy +tests/data/ljspeech/wavs/LJ018-0175.wav|tests/data/ljspeech/wavs/LJ018-0175.npy +tests/data/ljspeech/wavs/LJ017-0239.wav|tests/data/ljspeech/wavs/LJ017-0239.npy +tests/data/ljspeech/wavs/LJ011-0259.wav|tests/data/ljspeech/wavs/LJ011-0259.npy +tests/data/ljspeech/wavs/LJ017-0017.wav|tests/data/ljspeech/wavs/LJ017-0017.npy +tests/data/ljspeech/wavs/LJ016-0222.wav|tests/data/ljspeech/wavs/LJ016-0222.npy +tests/data/ljspeech/wavs/LJ001-0072.wav|tests/data/ljspeech/wavs/LJ001-0072.npy +tests/data/ljspeech/wavs/LJ010-0224.wav|tests/data/ljspeech/wavs/LJ010-0224.npy +tests/data/ljspeech/wavs/LJ011-0214.wav|tests/data/ljspeech/wavs/LJ011-0214.npy +tests/data/ljspeech/wavs/LJ006-0272.wav|tests/data/ljspeech/wavs/LJ006-0272.npy +tests/data/ljspeech/wavs/LJ032-0167.wav|tests/data/ljspeech/wavs/LJ032-0167.npy +tests/data/ljspeech/wavs/LJ017-0281.wav|tests/data/ljspeech/wavs/LJ017-0281.npy +tests/data/ljspeech/wavs/LJ032-0233.wav|tests/data/ljspeech/wavs/LJ032-0233.npy +tests/data/ljspeech/wavs/LJ006-0222.wav|tests/data/ljspeech/wavs/LJ006-0222.npy +tests/data/ljspeech/wavs/LJ017-0254.wav|tests/data/ljspeech/wavs/LJ017-0254.npy +tests/data/ljspeech/wavs/LJ030-0173.wav|tests/data/ljspeech/wavs/LJ030-0173.npy +tests/data/ljspeech/wavs/LJ015-0285.wav|tests/data/ljspeech/wavs/LJ015-0285.npy +tests/data/ljspeech/wavs/LJ017-0251.wav|tests/data/ljspeech/wavs/LJ017-0251.npy +tests/data/ljspeech/wavs/LJ019-0184.wav|tests/data/ljspeech/wavs/LJ019-0184.npy +tests/data/ljspeech/wavs/LJ013-0048.wav|tests/data/ljspeech/wavs/LJ013-0048.npy +tests/data/ljspeech/wavs/LJ001-0007.wav|tests/data/ljspeech/wavs/LJ001-0007.npy +tests/data/ljspeech/wavs/LJ008-0036.wav|tests/data/ljspeech/wavs/LJ008-0036.npy +tests/data/ljspeech/wavs/LJ026-0023.wav|tests/data/ljspeech/wavs/LJ026-0023.npy +tests/data/ljspeech/wavs/LJ030-0020.wav|tests/data/ljspeech/wavs/LJ030-0020.npy +tests/data/ljspeech/wavs/LJ016-0203.wav|tests/data/ljspeech/wavs/LJ016-0203.npy +tests/data/ljspeech/wavs/LJ034-0160.wav|tests/data/ljspeech/wavs/LJ034-0160.npy +tests/data/ljspeech/wavs/LJ005-0001.wav|tests/data/ljspeech/wavs/LJ005-0001.npy +tests/data/ljspeech/wavs/LJ031-0042.wav|tests/data/ljspeech/wavs/LJ031-0042.npy +tests/data/ljspeech/wavs/LJ008-0014.wav|tests/data/ljspeech/wavs/LJ008-0014.npy +tests/data/ljspeech/wavs/LJ042-0012.wav|tests/data/ljspeech/wavs/LJ042-0012.npy +tests/data/ljspeech/wavs/LJ022-0156.wav|tests/data/ljspeech/wavs/LJ022-0156.npy +tests/data/ljspeech/wavs/LJ024-0063.wav|tests/data/ljspeech/wavs/LJ024-0063.npy +tests/data/ljspeech/wavs/LJ026-0166.wav|tests/data/ljspeech/wavs/LJ026-0166.npy +tests/data/ljspeech/wavs/LJ037-0221.wav|tests/data/ljspeech/wavs/LJ037-0221.npy +tests/data/ljspeech/wavs/LJ036-0080.wav|tests/data/ljspeech/wavs/LJ036-0080.npy +tests/data/ljspeech/wavs/LJ022-0006.wav|tests/data/ljspeech/wavs/LJ022-0006.npy +tests/data/ljspeech/wavs/LJ045-0111.wav|tests/data/ljspeech/wavs/LJ045-0111.npy +tests/data/ljspeech/wavs/LJ044-0227.wav|tests/data/ljspeech/wavs/LJ044-0227.npy +tests/data/ljspeech/wavs/LJ038-0170.wav|tests/data/ljspeech/wavs/LJ038-0170.npy +tests/data/ljspeech/wavs/LJ014-0153.wav|tests/data/ljspeech/wavs/LJ014-0153.npy +tests/data/ljspeech/wavs/LJ021-0044.wav|tests/data/ljspeech/wavs/LJ021-0044.npy +tests/data/ljspeech/wavs/LJ039-0078.wav|tests/data/ljspeech/wavs/LJ039-0078.npy +tests/data/ljspeech/wavs/LJ048-0193.wav|tests/data/ljspeech/wavs/LJ048-0193.npy +tests/data/ljspeech/wavs/LJ039-0245.wav|tests/data/ljspeech/wavs/LJ039-0245.npy +tests/data/ljspeech/wavs/LJ039-0085.wav|tests/data/ljspeech/wavs/LJ039-0085.npy +tests/data/ljspeech/wavs/LJ014-0131.wav|tests/data/ljspeech/wavs/LJ014-0131.npy +tests/data/ljspeech/wavs/LJ025-0019.wav|tests/data/ljspeech/wavs/LJ025-0019.npy +tests/data/ljspeech/wavs/LJ009-0275.wav|tests/data/ljspeech/wavs/LJ009-0275.npy +tests/data/ljspeech/wavs/LJ045-0060.wav|tests/data/ljspeech/wavs/LJ045-0060.npy +tests/data/ljspeech/wavs/LJ002-0289.wav|tests/data/ljspeech/wavs/LJ002-0289.npy +tests/data/ljspeech/wavs/LJ042-0064.wav|tests/data/ljspeech/wavs/LJ042-0064.npy +tests/data/ljspeech/wavs/LJ019-0218.wav|tests/data/ljspeech/wavs/LJ019-0218.npy +tests/data/ljspeech/wavs/LJ041-0041.wav|tests/data/ljspeech/wavs/LJ041-0041.npy +tests/data/ljspeech/wavs/LJ031-0216.wav|tests/data/ljspeech/wavs/LJ031-0216.npy +tests/data/ljspeech/wavs/LJ047-0096.wav|tests/data/ljspeech/wavs/LJ047-0096.npy +tests/data/ljspeech/wavs/LJ019-0149.wav|tests/data/ljspeech/wavs/LJ019-0149.npy +tests/data/ljspeech/wavs/LJ030-0225.wav|tests/data/ljspeech/wavs/LJ030-0225.npy +tests/data/ljspeech/wavs/LJ022-0054.wav|tests/data/ljspeech/wavs/LJ022-0054.npy +tests/data/ljspeech/wavs/LJ007-0215.wav|tests/data/ljspeech/wavs/LJ007-0215.npy +tests/data/ljspeech/wavs/LJ010-0293.wav|tests/data/ljspeech/wavs/LJ010-0293.npy +tests/data/ljspeech/wavs/LJ005-0120.wav|tests/data/ljspeech/wavs/LJ005-0120.npy +tests/data/ljspeech/wavs/LJ027-0121.wav|tests/data/ljspeech/wavs/LJ027-0121.npy +tests/data/ljspeech/wavs/LJ003-0236.wav|tests/data/ljspeech/wavs/LJ003-0236.npy +tests/data/ljspeech/wavs/LJ029-0103.wav|tests/data/ljspeech/wavs/LJ029-0103.npy +tests/data/ljspeech/wavs/LJ024-0128.wav|tests/data/ljspeech/wavs/LJ024-0128.npy +tests/data/ljspeech/wavs/LJ008-0055.wav|tests/data/ljspeech/wavs/LJ008-0055.npy +tests/data/ljspeech/wavs/LJ011-0069.wav|tests/data/ljspeech/wavs/LJ011-0069.npy +tests/data/ljspeech/wavs/LJ003-0299.wav|tests/data/ljspeech/wavs/LJ003-0299.npy +tests/data/ljspeech/wavs/LJ043-0128.wav|tests/data/ljspeech/wavs/LJ043-0128.npy +tests/data/ljspeech/wavs/LJ011-0068.wav|tests/data/ljspeech/wavs/LJ011-0068.npy +tests/data/ljspeech/wavs/LJ037-0120.wav|tests/data/ljspeech/wavs/LJ037-0120.npy +tests/data/ljspeech/wavs/LJ028-0434.wav|tests/data/ljspeech/wavs/LJ028-0434.npy +tests/data/ljspeech/wavs/LJ019-0311.wav|tests/data/ljspeech/wavs/LJ019-0311.npy +tests/data/ljspeech/wavs/LJ040-0061.wav|tests/data/ljspeech/wavs/LJ040-0061.npy +tests/data/ljspeech/wavs/LJ004-0131.wav|tests/data/ljspeech/wavs/LJ004-0131.npy +tests/data/ljspeech/wavs/LJ002-0303.wav|tests/data/ljspeech/wavs/LJ002-0303.npy +tests/data/ljspeech/wavs/LJ044-0138.wav|tests/data/ljspeech/wavs/LJ044-0138.npy +tests/data/ljspeech/wavs/LJ049-0071.wav|tests/data/ljspeech/wavs/LJ049-0071.npy +tests/data/ljspeech/wavs/LJ008-0207.wav|tests/data/ljspeech/wavs/LJ008-0207.npy +tests/data/ljspeech/wavs/LJ025-0161.wav|tests/data/ljspeech/wavs/LJ025-0161.npy +tests/data/ljspeech/wavs/LJ045-0232.wav|tests/data/ljspeech/wavs/LJ045-0232.npy +tests/data/ljspeech/wavs/LJ009-0211.wav|tests/data/ljspeech/wavs/LJ009-0211.npy +tests/data/ljspeech/wavs/LJ039-0091.wav|tests/data/ljspeech/wavs/LJ039-0091.npy +tests/data/ljspeech/wavs/LJ018-0253.wav|tests/data/ljspeech/wavs/LJ018-0253.npy +tests/data/ljspeech/wavs/LJ015-0253.wav|tests/data/ljspeech/wavs/LJ015-0253.npy +tests/data/ljspeech/wavs/LJ005-0220.wav|tests/data/ljspeech/wavs/LJ005-0220.npy +tests/data/ljspeech/wavs/LJ010-0147.wav|tests/data/ljspeech/wavs/LJ010-0147.npy +tests/data/ljspeech/wavs/LJ018-0122.wav|tests/data/ljspeech/wavs/LJ018-0122.npy +tests/data/ljspeech/wavs/LJ019-0005.wav|tests/data/ljspeech/wavs/LJ019-0005.npy +tests/data/ljspeech/wavs/LJ018-0154.wav|tests/data/ljspeech/wavs/LJ018-0154.npy +tests/data/ljspeech/wavs/LJ028-0234.wav|tests/data/ljspeech/wavs/LJ028-0234.npy +tests/data/ljspeech/wavs/LJ031-0131.wav|tests/data/ljspeech/wavs/LJ031-0131.npy +tests/data/ljspeech/wavs/LJ010-0166.wav|tests/data/ljspeech/wavs/LJ010-0166.npy +tests/data/ljspeech/wavs/LJ021-0095.wav|tests/data/ljspeech/wavs/LJ021-0095.npy +tests/data/ljspeech/wavs/LJ016-0009.wav|tests/data/ljspeech/wavs/LJ016-0009.npy +tests/data/ljspeech/wavs/LJ014-0205.wav|tests/data/ljspeech/wavs/LJ014-0205.npy +tests/data/ljspeech/wavs/LJ028-0020.wav|tests/data/ljspeech/wavs/LJ028-0020.npy +tests/data/ljspeech/wavs/LJ012-0073.wav|tests/data/ljspeech/wavs/LJ012-0073.npy +tests/data/ljspeech/wavs/LJ015-0228.wav|tests/data/ljspeech/wavs/LJ015-0228.npy +tests/data/ljspeech/wavs/LJ023-0029.wav|tests/data/ljspeech/wavs/LJ023-0029.npy +tests/data/ljspeech/wavs/LJ015-0303.wav|tests/data/ljspeech/wavs/LJ015-0303.npy +tests/data/ljspeech/wavs/LJ027-0176.wav|tests/data/ljspeech/wavs/LJ027-0176.npy +tests/data/ljspeech/wavs/LJ037-0178.wav|tests/data/ljspeech/wavs/LJ037-0178.npy +tests/data/ljspeech/wavs/LJ049-0183.wav|tests/data/ljspeech/wavs/LJ049-0183.npy +tests/data/ljspeech/wavs/LJ023-0053.wav|tests/data/ljspeech/wavs/LJ023-0053.npy +tests/data/ljspeech/wavs/LJ023-0097.wav|tests/data/ljspeech/wavs/LJ023-0097.npy +tests/data/ljspeech/wavs/LJ005-0155.wav|tests/data/ljspeech/wavs/LJ005-0155.npy +tests/data/ljspeech/wavs/LJ018-0327.wav|tests/data/ljspeech/wavs/LJ018-0327.npy +tests/data/ljspeech/wavs/LJ006-0286.wav|tests/data/ljspeech/wavs/LJ006-0286.npy +tests/data/ljspeech/wavs/LJ018-0329.wav|tests/data/ljspeech/wavs/LJ018-0329.npy +tests/data/ljspeech/wavs/LJ028-0464.wav|tests/data/ljspeech/wavs/LJ028-0464.npy +tests/data/ljspeech/wavs/LJ021-0108.wav|tests/data/ljspeech/wavs/LJ021-0108.npy +tests/data/ljspeech/wavs/LJ026-0075.wav|tests/data/ljspeech/wavs/LJ026-0075.npy +tests/data/ljspeech/wavs/LJ018-0129.wav|tests/data/ljspeech/wavs/LJ018-0129.npy +tests/data/ljspeech/wavs/LJ030-0005.wav|tests/data/ljspeech/wavs/LJ030-0005.npy +tests/data/ljspeech/wavs/LJ034-0011.wav|tests/data/ljspeech/wavs/LJ034-0011.npy +tests/data/ljspeech/wavs/LJ004-0001.wav|tests/data/ljspeech/wavs/LJ004-0001.npy +tests/data/ljspeech/wavs/LJ034-0116.wav|tests/data/ljspeech/wavs/LJ034-0116.npy +tests/data/ljspeech/wavs/LJ003-0170.wav|tests/data/ljspeech/wavs/LJ003-0170.npy +tests/data/ljspeech/wavs/LJ044-0112.wav|tests/data/ljspeech/wavs/LJ044-0112.npy +tests/data/ljspeech/wavs/LJ046-0038.wav|tests/data/ljspeech/wavs/LJ046-0038.npy +tests/data/ljspeech/wavs/LJ035-0157.wav|tests/data/ljspeech/wavs/LJ035-0157.npy +tests/data/ljspeech/wavs/LJ003-0091.wav|tests/data/ljspeech/wavs/LJ003-0091.npy +tests/data/ljspeech/wavs/LJ021-0134.wav|tests/data/ljspeech/wavs/LJ021-0134.npy +tests/data/ljspeech/wavs/LJ035-0143.wav|tests/data/ljspeech/wavs/LJ035-0143.npy +tests/data/ljspeech/wavs/LJ038-0031.wav|tests/data/ljspeech/wavs/LJ038-0031.npy +tests/data/ljspeech/wavs/LJ029-0008.wav|tests/data/ljspeech/wavs/LJ029-0008.npy +tests/data/ljspeech/wavs/LJ014-0224.wav|tests/data/ljspeech/wavs/LJ014-0224.npy +tests/data/ljspeech/wavs/LJ046-0114.wav|tests/data/ljspeech/wavs/LJ046-0114.npy +tests/data/ljspeech/wavs/LJ019-0095.wav|tests/data/ljspeech/wavs/LJ019-0095.npy +tests/data/ljspeech/wavs/LJ022-0197.wav|tests/data/ljspeech/wavs/LJ022-0197.npy +tests/data/ljspeech/wavs/LJ038-0045.wav|tests/data/ljspeech/wavs/LJ038-0045.npy +tests/data/ljspeech/wavs/LJ031-0105.wav|tests/data/ljspeech/wavs/LJ031-0105.npy +tests/data/ljspeech/wavs/LJ043-0187.wav|tests/data/ljspeech/wavs/LJ043-0187.npy +tests/data/ljspeech/wavs/LJ006-0127.wav|tests/data/ljspeech/wavs/LJ006-0127.npy +tests/data/ljspeech/wavs/LJ018-0318.wav|tests/data/ljspeech/wavs/LJ018-0318.npy +tests/data/ljspeech/wavs/LJ028-0044.wav|tests/data/ljspeech/wavs/LJ028-0044.npy +tests/data/ljspeech/wavs/LJ011-0251.wav|tests/data/ljspeech/wavs/LJ011-0251.npy +tests/data/ljspeech/wavs/LJ046-0152.wav|tests/data/ljspeech/wavs/LJ046-0152.npy +tests/data/ljspeech/wavs/LJ010-0004.wav|tests/data/ljspeech/wavs/LJ010-0004.npy +tests/data/ljspeech/wavs/LJ040-0234.wav|tests/data/ljspeech/wavs/LJ040-0234.npy +tests/data/ljspeech/wavs/LJ019-0080.wav|tests/data/ljspeech/wavs/LJ019-0080.npy +tests/data/ljspeech/wavs/LJ015-0177.wav|tests/data/ljspeech/wavs/LJ015-0177.npy +tests/data/ljspeech/wavs/LJ019-0124.wav|tests/data/ljspeech/wavs/LJ019-0124.npy +tests/data/ljspeech/wavs/LJ033-0196.wav|tests/data/ljspeech/wavs/LJ033-0196.npy +tests/data/ljspeech/wavs/LJ021-0171.wav|tests/data/ljspeech/wavs/LJ021-0171.npy +tests/data/ljspeech/wavs/LJ038-0069.wav|tests/data/ljspeech/wavs/LJ038-0069.npy +tests/data/ljspeech/wavs/LJ025-0101.wav|tests/data/ljspeech/wavs/LJ025-0101.npy +tests/data/ljspeech/wavs/LJ031-0209.wav|tests/data/ljspeech/wavs/LJ031-0209.npy +tests/data/ljspeech/wavs/LJ030-0074.wav|tests/data/ljspeech/wavs/LJ030-0074.npy +tests/data/ljspeech/wavs/LJ016-0149.wav|tests/data/ljspeech/wavs/LJ016-0149.npy +tests/data/ljspeech/wavs/LJ027-0029.wav|tests/data/ljspeech/wavs/LJ027-0029.npy +tests/data/ljspeech/wavs/LJ031-0196.wav|tests/data/ljspeech/wavs/LJ031-0196.npy +tests/data/ljspeech/wavs/LJ032-0090.wav|tests/data/ljspeech/wavs/LJ032-0090.npy +tests/data/ljspeech/wavs/LJ029-0163.wav|tests/data/ljspeech/wavs/LJ029-0163.npy +tests/data/ljspeech/wavs/LJ007-0209.wav|tests/data/ljspeech/wavs/LJ007-0209.npy +tests/data/ljspeech/wavs/LJ032-0268.wav|tests/data/ljspeech/wavs/LJ032-0268.npy +tests/data/ljspeech/wavs/LJ032-0269.wav|tests/data/ljspeech/wavs/LJ032-0269.npy +tests/data/ljspeech/wavs/LJ028-0118.wav|tests/data/ljspeech/wavs/LJ028-0118.npy +tests/data/ljspeech/wavs/LJ032-0195.wav|tests/data/ljspeech/wavs/LJ032-0195.npy +tests/data/ljspeech/wavs/LJ033-0065.wav|tests/data/ljspeech/wavs/LJ033-0065.npy +tests/data/ljspeech/wavs/LJ027-0166.wav|tests/data/ljspeech/wavs/LJ027-0166.npy +tests/data/ljspeech/wavs/LJ028-0438.wav|tests/data/ljspeech/wavs/LJ028-0438.npy +tests/data/ljspeech/wavs/LJ014-0316.wav|tests/data/ljspeech/wavs/LJ014-0316.npy +tests/data/ljspeech/wavs/LJ004-0149.wav|tests/data/ljspeech/wavs/LJ004-0149.npy +tests/data/ljspeech/wavs/LJ029-0132.wav|tests/data/ljspeech/wavs/LJ029-0132.npy +tests/data/ljspeech/wavs/LJ029-0053.wav|tests/data/ljspeech/wavs/LJ029-0053.npy +tests/data/ljspeech/wavs/LJ032-0270.wav|tests/data/ljspeech/wavs/LJ032-0270.npy +tests/data/ljspeech/wavs/LJ032-0194.wav|tests/data/ljspeech/wavs/LJ032-0194.npy +tests/data/ljspeech/wavs/LJ032-0096.wav|tests/data/ljspeech/wavs/LJ032-0096.npy +tests/data/ljspeech/wavs/LJ028-0078.wav|tests/data/ljspeech/wavs/LJ028-0078.npy +tests/data/ljspeech/wavs/LJ047-0234.wav|tests/data/ljspeech/wavs/LJ047-0234.npy +tests/data/ljspeech/wavs/LJ028-0176.wav|tests/data/ljspeech/wavs/LJ028-0176.npy +tests/data/ljspeech/wavs/LJ028-0205.wav|tests/data/ljspeech/wavs/LJ028-0205.npy +tests/data/ljspeech/wavs/LJ037-0151.wav|tests/data/ljspeech/wavs/LJ037-0151.npy +tests/data/ljspeech/wavs/LJ028-0512.wav|tests/data/ljspeech/wavs/LJ028-0512.npy +tests/data/ljspeech/wavs/LJ042-0100.wav|tests/data/ljspeech/wavs/LJ042-0100.npy +tests/data/ljspeech/wavs/LJ049-0111.wav|tests/data/ljspeech/wavs/LJ049-0111.npy +tests/data/ljspeech/wavs/LJ015-0019.wav|tests/data/ljspeech/wavs/LJ015-0019.npy +tests/data/ljspeech/wavs/LJ032-0057.wav|tests/data/ljspeech/wavs/LJ032-0057.npy +tests/data/ljspeech/wavs/LJ050-0078.wav|tests/data/ljspeech/wavs/LJ050-0078.npy +tests/data/ljspeech/wavs/LJ026-0122.wav|tests/data/ljspeech/wavs/LJ026-0122.npy +tests/data/ljspeech/wavs/LJ026-0164.wav|tests/data/ljspeech/wavs/LJ026-0164.npy +tests/data/ljspeech/wavs/LJ028-0054.wav|tests/data/ljspeech/wavs/LJ028-0054.npy +tests/data/ljspeech/wavs/LJ043-0020.wav|tests/data/ljspeech/wavs/LJ043-0020.npy +tests/data/ljspeech/wavs/LJ036-0212.wav|tests/data/ljspeech/wavs/LJ036-0212.npy +tests/data/ljspeech/wavs/LJ028-0221.wav|tests/data/ljspeech/wavs/LJ028-0221.npy +tests/data/ljspeech/wavs/LJ021-0036.wav|tests/data/ljspeech/wavs/LJ021-0036.npy +tests/data/ljspeech/wavs/LJ019-0378.wav|tests/data/ljspeech/wavs/LJ019-0378.npy +tests/data/ljspeech/wavs/LJ042-0198.wav|tests/data/ljspeech/wavs/LJ042-0198.npy +tests/data/ljspeech/wavs/LJ021-0016.wav|tests/data/ljspeech/wavs/LJ021-0016.npy +tests/data/ljspeech/wavs/LJ007-0122.wav|tests/data/ljspeech/wavs/LJ007-0122.npy +tests/data/ljspeech/wavs/LJ027-0003.wav|tests/data/ljspeech/wavs/LJ027-0003.npy +tests/data/ljspeech/wavs/LJ028-0472.wav|tests/data/ljspeech/wavs/LJ028-0472.npy +tests/data/ljspeech/wavs/LJ030-0150.wav|tests/data/ljspeech/wavs/LJ030-0150.npy +tests/data/ljspeech/wavs/LJ043-0043.wav|tests/data/ljspeech/wavs/LJ043-0043.npy +tests/data/ljspeech/wavs/LJ033-0166.wav|tests/data/ljspeech/wavs/LJ033-0166.npy +tests/data/ljspeech/wavs/LJ007-0156.wav|tests/data/ljspeech/wavs/LJ007-0156.npy +tests/data/ljspeech/wavs/LJ021-0019.wav|tests/data/ljspeech/wavs/LJ021-0019.npy +tests/data/ljspeech/wavs/LJ050-0097.wav|tests/data/ljspeech/wavs/LJ050-0097.npy +tests/data/ljspeech/wavs/LJ021-0030.wav|tests/data/ljspeech/wavs/LJ021-0030.npy +tests/data/ljspeech/wavs/LJ018-0171.wav|tests/data/ljspeech/wavs/LJ018-0171.npy +tests/data/ljspeech/wavs/LJ042-0165.wav|tests/data/ljspeech/wavs/LJ042-0165.npy +tests/data/ljspeech/wavs/LJ050-0131.wav|tests/data/ljspeech/wavs/LJ050-0131.npy +tests/data/ljspeech/wavs/LJ018-0058.wav|tests/data/ljspeech/wavs/LJ018-0058.npy +tests/data/ljspeech/wavs/LJ005-0290.wav|tests/data/ljspeech/wavs/LJ005-0290.npy +tests/data/ljspeech/wavs/LJ042-0124.wav|tests/data/ljspeech/wavs/LJ042-0124.npy +tests/data/ljspeech/wavs/LJ032-0190.wav|tests/data/ljspeech/wavs/LJ032-0190.npy +tests/data/ljspeech/wavs/LJ028-0495.wav|tests/data/ljspeech/wavs/LJ028-0495.npy +tests/data/ljspeech/wavs/LJ033-0036.wav|tests/data/ljspeech/wavs/LJ033-0036.npy +tests/data/ljspeech/wavs/LJ049-0059.wav|tests/data/ljspeech/wavs/LJ049-0059.npy +tests/data/ljspeech/wavs/LJ014-0324.wav|tests/data/ljspeech/wavs/LJ014-0324.npy +tests/data/ljspeech/wavs/LJ044-0015.wav|tests/data/ljspeech/wavs/LJ044-0015.npy +tests/data/ljspeech/wavs/LJ005-0217.wav|tests/data/ljspeech/wavs/LJ005-0217.npy +tests/data/ljspeech/wavs/LJ039-0159.wav|tests/data/ljspeech/wavs/LJ039-0159.npy +tests/data/ljspeech/wavs/LJ021-0114.wav|tests/data/ljspeech/wavs/LJ021-0114.npy +tests/data/ljspeech/wavs/LJ036-0048.wav|tests/data/ljspeech/wavs/LJ036-0048.npy +tests/data/ljspeech/wavs/LJ044-0053.wav|tests/data/ljspeech/wavs/LJ044-0053.npy +tests/data/ljspeech/wavs/LJ021-0184.wav|tests/data/ljspeech/wavs/LJ021-0184.npy +tests/data/ljspeech/wavs/LJ021-0154.wav|tests/data/ljspeech/wavs/LJ021-0154.npy +tests/data/ljspeech/wavs/LJ049-0012.wav|tests/data/ljspeech/wavs/LJ049-0012.npy +tests/data/ljspeech/wavs/LJ034-0104.wav|tests/data/ljspeech/wavs/LJ034-0104.npy +tests/data/ljspeech/wavs/LJ017-0038.wav|tests/data/ljspeech/wavs/LJ017-0038.npy +tests/data/ljspeech/wavs/LJ012-0266.wav|tests/data/ljspeech/wavs/LJ012-0266.npy +tests/data/ljspeech/wavs/LJ016-0262.wav|tests/data/ljspeech/wavs/LJ016-0262.npy +tests/data/ljspeech/wavs/LJ012-0068.wav|tests/data/ljspeech/wavs/LJ012-0068.npy +tests/data/ljspeech/wavs/LJ038-0250.wav|tests/data/ljspeech/wavs/LJ038-0250.npy +tests/data/ljspeech/wavs/LJ005-0077.wav|tests/data/ljspeech/wavs/LJ005-0077.npy +tests/data/ljspeech/wavs/LJ018-0148.wav|tests/data/ljspeech/wavs/LJ018-0148.npy +tests/data/ljspeech/wavs/LJ013-0164.wav|tests/data/ljspeech/wavs/LJ013-0164.npy +tests/data/ljspeech/wavs/LJ019-0339.wav|tests/data/ljspeech/wavs/LJ019-0339.npy +tests/data/ljspeech/wavs/LJ016-0422.wav|tests/data/ljspeech/wavs/LJ016-0422.npy +tests/data/ljspeech/wavs/LJ005-0147.wav|tests/data/ljspeech/wavs/LJ005-0147.npy +tests/data/ljspeech/wavs/LJ008-0217.wav|tests/data/ljspeech/wavs/LJ008-0217.npy +tests/data/ljspeech/wavs/LJ014-0036.wav|tests/data/ljspeech/wavs/LJ014-0036.npy +tests/data/ljspeech/wavs/LJ015-0067.wav|tests/data/ljspeech/wavs/LJ015-0067.npy +tests/data/ljspeech/wavs/LJ012-0087.wav|tests/data/ljspeech/wavs/LJ012-0087.npy +tests/data/ljspeech/wavs/LJ049-0002.wav|tests/data/ljspeech/wavs/LJ049-0002.npy +tests/data/ljspeech/wavs/LJ039-0003.wav|tests/data/ljspeech/wavs/LJ039-0003.npy +tests/data/ljspeech/wavs/LJ004-0173.wav|tests/data/ljspeech/wavs/LJ004-0173.npy +tests/data/ljspeech/wavs/LJ004-0168.wav|tests/data/ljspeech/wavs/LJ004-0168.npy +tests/data/ljspeech/wavs/LJ018-0377.wav|tests/data/ljspeech/wavs/LJ018-0377.npy +tests/data/ljspeech/wavs/LJ015-0134.wav|tests/data/ljspeech/wavs/LJ015-0134.npy +tests/data/ljspeech/wavs/LJ037-0252.wav|tests/data/ljspeech/wavs/LJ037-0252.npy +tests/data/ljspeech/wavs/LJ016-0180.wav|tests/data/ljspeech/wavs/LJ016-0180.npy +tests/data/ljspeech/wavs/LJ011-0124.wav|tests/data/ljspeech/wavs/LJ011-0124.npy +tests/data/ljspeech/wavs/LJ042-0007.wav|tests/data/ljspeech/wavs/LJ042-0007.npy +tests/data/ljspeech/wavs/LJ045-0107.wav|tests/data/ljspeech/wavs/LJ045-0107.npy +tests/data/ljspeech/wavs/LJ040-0052.wav|tests/data/ljspeech/wavs/LJ040-0052.npy +tests/data/ljspeech/wavs/LJ010-0235.wav|tests/data/ljspeech/wavs/LJ010-0235.npy +tests/data/ljspeech/wavs/LJ015-0282.wav|tests/data/ljspeech/wavs/LJ015-0282.npy +tests/data/ljspeech/wavs/LJ022-0200.wav|tests/data/ljspeech/wavs/LJ022-0200.npy +tests/data/ljspeech/wavs/LJ016-0018.wav|tests/data/ljspeech/wavs/LJ016-0018.npy +tests/data/ljspeech/wavs/LJ047-0248.wav|tests/data/ljspeech/wavs/LJ047-0248.npy +tests/data/ljspeech/wavs/LJ014-0213.wav|tests/data/ljspeech/wavs/LJ014-0213.npy +tests/data/ljspeech/wavs/LJ003-0187.wav|tests/data/ljspeech/wavs/LJ003-0187.npy +tests/data/ljspeech/wavs/LJ041-0089.wav|tests/data/ljspeech/wavs/LJ041-0089.npy +tests/data/ljspeech/wavs/LJ017-0056.wav|tests/data/ljspeech/wavs/LJ017-0056.npy +tests/data/ljspeech/wavs/LJ017-0149.wav|tests/data/ljspeech/wavs/LJ017-0149.npy +tests/data/ljspeech/wavs/LJ010-0143.wav|tests/data/ljspeech/wavs/LJ010-0143.npy +tests/data/ljspeech/wavs/LJ019-0306.wav|tests/data/ljspeech/wavs/LJ019-0306.npy +tests/data/ljspeech/wavs/LJ036-0043.wav|tests/data/ljspeech/wavs/LJ036-0043.npy +tests/data/ljspeech/wavs/LJ050-0006.wav|tests/data/ljspeech/wavs/LJ050-0006.npy +tests/data/ljspeech/wavs/LJ037-0253.wav|tests/data/ljspeech/wavs/LJ037-0253.npy +tests/data/ljspeech/wavs/LJ045-0186.wav|tests/data/ljspeech/wavs/LJ045-0186.npy +tests/data/ljspeech/wavs/LJ045-0188.wav|tests/data/ljspeech/wavs/LJ045-0188.npy +tests/data/ljspeech/wavs/LJ023-0107.wav|tests/data/ljspeech/wavs/LJ023-0107.npy +tests/data/ljspeech/wavs/LJ003-0292.wav|tests/data/ljspeech/wavs/LJ003-0292.npy +tests/data/ljspeech/wavs/LJ039-0219.wav|tests/data/ljspeech/wavs/LJ039-0219.npy +tests/data/ljspeech/wavs/LJ013-0150.wav|tests/data/ljspeech/wavs/LJ013-0150.npy +tests/data/ljspeech/wavs/LJ019-0129.wav|tests/data/ljspeech/wavs/LJ019-0129.npy +tests/data/ljspeech/wavs/LJ015-0308.wav|tests/data/ljspeech/wavs/LJ015-0308.npy +tests/data/ljspeech/wavs/LJ011-0211.wav|tests/data/ljspeech/wavs/LJ011-0211.npy +tests/data/ljspeech/wavs/LJ016-0238.wav|tests/data/ljspeech/wavs/LJ016-0238.npy +tests/data/ljspeech/wavs/LJ044-0233.wav|tests/data/ljspeech/wavs/LJ044-0233.npy +tests/data/ljspeech/wavs/LJ017-0174.wav|tests/data/ljspeech/wavs/LJ017-0174.npy +tests/data/ljspeech/wavs/LJ046-0121.wav|tests/data/ljspeech/wavs/LJ046-0121.npy +tests/data/ljspeech/wavs/LJ024-0030.wav|tests/data/ljspeech/wavs/LJ024-0030.npy +tests/data/ljspeech/wavs/LJ046-0071.wav|tests/data/ljspeech/wavs/LJ046-0071.npy +tests/data/ljspeech/wavs/LJ010-0159.wav|tests/data/ljspeech/wavs/LJ010-0159.npy +tests/data/ljspeech/wavs/LJ004-0065.wav|tests/data/ljspeech/wavs/LJ004-0065.npy +tests/data/ljspeech/wavs/LJ002-0314.wav|tests/data/ljspeech/wavs/LJ002-0314.npy +tests/data/ljspeech/wavs/LJ030-0026.wav|tests/data/ljspeech/wavs/LJ030-0026.npy +tests/data/ljspeech/wavs/LJ049-0044.wav|tests/data/ljspeech/wavs/LJ049-0044.npy +tests/data/ljspeech/wavs/LJ002-0227.wav|tests/data/ljspeech/wavs/LJ002-0227.npy +tests/data/ljspeech/wavs/LJ002-0167.wav|tests/data/ljspeech/wavs/LJ002-0167.npy +tests/data/ljspeech/wavs/LJ002-0316.wav|tests/data/ljspeech/wavs/LJ002-0316.npy +tests/data/ljspeech/wavs/LJ040-0034.wav|tests/data/ljspeech/wavs/LJ040-0034.npy +tests/data/ljspeech/wavs/LJ033-0193.wav|tests/data/ljspeech/wavs/LJ033-0193.npy +tests/data/ljspeech/wavs/LJ024-0070.wav|tests/data/ljspeech/wavs/LJ024-0070.npy +tests/data/ljspeech/wavs/LJ004-0064.wav|tests/data/ljspeech/wavs/LJ004-0064.npy +tests/data/ljspeech/wavs/LJ001-0120.wav|tests/data/ljspeech/wavs/LJ001-0120.npy +tests/data/ljspeech/wavs/LJ015-0246.wav|tests/data/ljspeech/wavs/LJ015-0246.npy +tests/data/ljspeech/wavs/LJ044-0128.wav|tests/data/ljspeech/wavs/LJ044-0128.npy +tests/data/ljspeech/wavs/LJ003-0335.wav|tests/data/ljspeech/wavs/LJ003-0335.npy +tests/data/ljspeech/wavs/LJ004-0133.wav|tests/data/ljspeech/wavs/LJ004-0133.npy +tests/data/ljspeech/wavs/LJ024-0036.wav|tests/data/ljspeech/wavs/LJ024-0036.npy +tests/data/ljspeech/wavs/LJ024-0035.wav|tests/data/ljspeech/wavs/LJ024-0035.npy +tests/data/ljspeech/wavs/LJ001-0058.wav|tests/data/ljspeech/wavs/LJ001-0058.npy +tests/data/ljspeech/wavs/LJ022-0136.wav|tests/data/ljspeech/wavs/LJ022-0136.npy +tests/data/ljspeech/wavs/LJ010-0271.wav|tests/data/ljspeech/wavs/LJ010-0271.npy +tests/data/ljspeech/wavs/LJ028-0341.wav|tests/data/ljspeech/wavs/LJ028-0341.npy +tests/data/ljspeech/wavs/LJ010-0168.wav|tests/data/ljspeech/wavs/LJ010-0168.npy +tests/data/ljspeech/wavs/LJ002-0106.wav|tests/data/ljspeech/wavs/LJ002-0106.npy +tests/data/ljspeech/wavs/LJ010-0154.wav|tests/data/ljspeech/wavs/LJ010-0154.npy +tests/data/ljspeech/wavs/LJ001-0147.wav|tests/data/ljspeech/wavs/LJ001-0147.npy +tests/data/ljspeech/wavs/LJ002-0176.wav|tests/data/ljspeech/wavs/LJ002-0176.npy +tests/data/ljspeech/wavs/LJ019-0279.wav|tests/data/ljspeech/wavs/LJ019-0279.npy +tests/data/ljspeech/wavs/LJ041-0040.wav|tests/data/ljspeech/wavs/LJ041-0040.npy +tests/data/ljspeech/wavs/LJ021-0163.wav|tests/data/ljspeech/wavs/LJ021-0163.npy +tests/data/ljspeech/wavs/LJ022-0066.wav|tests/data/ljspeech/wavs/LJ022-0066.npy +tests/data/ljspeech/wavs/LJ038-0291.wav|tests/data/ljspeech/wavs/LJ038-0291.npy +tests/data/ljspeech/wavs/LJ002-0146.wav|tests/data/ljspeech/wavs/LJ002-0146.npy +tests/data/ljspeech/wavs/LJ009-0252.wav|tests/data/ljspeech/wavs/LJ009-0252.npy +tests/data/ljspeech/wavs/LJ015-0127.wav|tests/data/ljspeech/wavs/LJ015-0127.npy +tests/data/ljspeech/wavs/LJ048-0195.wav|tests/data/ljspeech/wavs/LJ048-0195.npy +tests/data/ljspeech/wavs/LJ041-0082.wav|tests/data/ljspeech/wavs/LJ041-0082.npy +tests/data/ljspeech/wavs/LJ022-0059.wav|tests/data/ljspeech/wavs/LJ022-0059.npy +tests/data/ljspeech/wavs/LJ019-0004.wav|tests/data/ljspeech/wavs/LJ019-0004.npy +tests/data/ljspeech/wavs/LJ019-0272.wav|tests/data/ljspeech/wavs/LJ019-0272.npy +tests/data/ljspeech/wavs/LJ037-0163.wav|tests/data/ljspeech/wavs/LJ037-0163.npy +tests/data/ljspeech/wavs/LJ040-0169.wav|tests/data/ljspeech/wavs/LJ040-0169.npy +tests/data/ljspeech/wavs/LJ010-0139.wav|tests/data/ljspeech/wavs/LJ010-0139.npy +tests/data/ljspeech/wavs/LJ032-0129.wav|tests/data/ljspeech/wavs/LJ032-0129.npy +tests/data/ljspeech/wavs/LJ016-0026.wav|tests/data/ljspeech/wavs/LJ016-0026.npy +tests/data/ljspeech/wavs/LJ041-0020.wav|tests/data/ljspeech/wavs/LJ041-0020.npy +tests/data/ljspeech/wavs/LJ017-0029.wav|tests/data/ljspeech/wavs/LJ017-0029.npy +tests/data/ljspeech/wavs/LJ022-0046.wav|tests/data/ljspeech/wavs/LJ022-0046.npy +tests/data/ljspeech/wavs/LJ002-0152.wav|tests/data/ljspeech/wavs/LJ002-0152.npy +tests/data/ljspeech/wavs/LJ010-0036.wav|tests/data/ljspeech/wavs/LJ010-0036.npy +tests/data/ljspeech/wavs/LJ037-0105.wav|tests/data/ljspeech/wavs/LJ037-0105.npy +tests/data/ljspeech/wavs/LJ013-0251.wav|tests/data/ljspeech/wavs/LJ013-0251.npy +tests/data/ljspeech/wavs/LJ010-0096.wav|tests/data/ljspeech/wavs/LJ010-0096.npy +tests/data/ljspeech/wavs/LJ002-0175.wav|tests/data/ljspeech/wavs/LJ002-0175.npy +tests/data/ljspeech/wavs/LJ011-0244.wav|tests/data/ljspeech/wavs/LJ011-0244.npy +tests/data/ljspeech/wavs/LJ010-0098.wav|tests/data/ljspeech/wavs/LJ010-0098.npy +tests/data/ljspeech/wavs/LJ002-0242.wav|tests/data/ljspeech/wavs/LJ002-0242.npy +tests/data/ljspeech/wavs/LJ001-0086.wav|tests/data/ljspeech/wavs/LJ001-0086.npy +tests/data/ljspeech/wavs/LJ012-0085.wav|tests/data/ljspeech/wavs/LJ012-0085.npy +tests/data/ljspeech/wavs/LJ038-0190.wav|tests/data/ljspeech/wavs/LJ038-0190.npy +tests/data/ljspeech/wavs/LJ004-0215.wav|tests/data/ljspeech/wavs/LJ004-0215.npy +tests/data/ljspeech/wavs/LJ049-0019.wav|tests/data/ljspeech/wavs/LJ049-0019.npy +tests/data/ljspeech/wavs/LJ012-0041.wav|tests/data/ljspeech/wavs/LJ012-0041.npy +tests/data/ljspeech/wavs/LJ041-0054.wav|tests/data/ljspeech/wavs/LJ041-0054.npy +tests/data/ljspeech/wavs/LJ036-0087.wav|tests/data/ljspeech/wavs/LJ036-0087.npy +tests/data/ljspeech/wavs/LJ001-0148.wav|tests/data/ljspeech/wavs/LJ001-0148.npy +tests/data/ljspeech/wavs/LJ011-0285.wav|tests/data/ljspeech/wavs/LJ011-0285.npy +tests/data/ljspeech/wavs/LJ030-0028.wav|tests/data/ljspeech/wavs/LJ030-0028.npy +tests/data/ljspeech/wavs/LJ014-0146.wav|tests/data/ljspeech/wavs/LJ014-0146.npy +tests/data/ljspeech/wavs/LJ014-0190.wav|tests/data/ljspeech/wavs/LJ014-0190.npy +tests/data/ljspeech/wavs/LJ048-0199.wav|tests/data/ljspeech/wavs/LJ048-0199.npy +tests/data/ljspeech/wavs/LJ024-0088.wav|tests/data/ljspeech/wavs/LJ024-0088.npy +tests/data/ljspeech/wavs/LJ038-0017.wav|tests/data/ljspeech/wavs/LJ038-0017.npy +tests/data/ljspeech/wavs/LJ004-0180.wav|tests/data/ljspeech/wavs/LJ004-0180.npy +tests/data/ljspeech/wavs/LJ015-0123.wav|tests/data/ljspeech/wavs/LJ015-0123.npy +tests/data/ljspeech/wavs/LJ036-0066.wav|tests/data/ljspeech/wavs/LJ036-0066.npy +tests/data/ljspeech/wavs/LJ024-0093.wav|tests/data/ljspeech/wavs/LJ024-0093.npy +tests/data/ljspeech/wavs/LJ028-0049.wav|tests/data/ljspeech/wavs/LJ028-0049.npy +tests/data/ljspeech/wavs/LJ047-0128.wav|tests/data/ljspeech/wavs/LJ047-0128.npy +tests/data/ljspeech/wavs/LJ013-0110.wav|tests/data/ljspeech/wavs/LJ013-0110.npy +tests/data/ljspeech/wavs/LJ014-0154.wav|tests/data/ljspeech/wavs/LJ014-0154.npy +tests/data/ljspeech/wavs/LJ038-0027.wav|tests/data/ljspeech/wavs/LJ038-0027.npy +tests/data/ljspeech/wavs/LJ041-0128.wav|tests/data/ljspeech/wavs/LJ041-0128.npy +tests/data/ljspeech/wavs/LJ046-0096.wav|tests/data/ljspeech/wavs/LJ046-0096.npy +tests/data/ljspeech/wavs/LJ018-0098.wav|tests/data/ljspeech/wavs/LJ018-0098.npy +tests/data/ljspeech/wavs/LJ019-0037.wav|tests/data/ljspeech/wavs/LJ019-0037.npy +tests/data/ljspeech/wavs/LJ002-0042.wav|tests/data/ljspeech/wavs/LJ002-0042.npy +tests/data/ljspeech/wavs/LJ039-0065.wav|tests/data/ljspeech/wavs/LJ039-0065.npy +tests/data/ljspeech/wavs/LJ032-0139.wav|tests/data/ljspeech/wavs/LJ032-0139.npy +tests/data/ljspeech/wavs/LJ049-0015.wav|tests/data/ljspeech/wavs/LJ049-0015.npy +tests/data/ljspeech/wavs/LJ030-0112.wav|tests/data/ljspeech/wavs/LJ030-0112.npy +tests/data/ljspeech/wavs/LJ025-0058.wav|tests/data/ljspeech/wavs/LJ025-0058.npy +tests/data/ljspeech/wavs/LJ025-0057.wav|tests/data/ljspeech/wavs/LJ025-0057.npy +tests/data/ljspeech/wavs/LJ036-0211.wav|tests/data/ljspeech/wavs/LJ036-0211.npy +tests/data/ljspeech/wavs/LJ044-0035.wav|tests/data/ljspeech/wavs/LJ044-0035.npy +tests/data/ljspeech/wavs/LJ004-0056.wav|tests/data/ljspeech/wavs/LJ004-0056.npy +tests/data/ljspeech/wavs/LJ044-0019.wav|tests/data/ljspeech/wavs/LJ044-0019.npy +tests/data/ljspeech/wavs/LJ042-0232.wav|tests/data/ljspeech/wavs/LJ042-0232.npy +tests/data/ljspeech/wavs/LJ021-0146.wav|tests/data/ljspeech/wavs/LJ021-0146.npy +tests/data/ljspeech/wavs/LJ021-0152.wav|tests/data/ljspeech/wavs/LJ021-0152.npy +tests/data/ljspeech/wavs/LJ003-0349.wav|tests/data/ljspeech/wavs/LJ003-0349.npy +tests/data/ljspeech/wavs/LJ018-0336.wav|tests/data/ljspeech/wavs/LJ018-0336.npy +tests/data/ljspeech/wavs/LJ031-0172.wav|tests/data/ljspeech/wavs/LJ031-0172.npy +tests/data/ljspeech/wavs/LJ047-0030.wav|tests/data/ljspeech/wavs/LJ047-0030.npy +tests/data/ljspeech/wavs/LJ027-0046.wav|tests/data/ljspeech/wavs/LJ027-0046.npy +tests/data/ljspeech/wavs/LJ016-0314.wav|tests/data/ljspeech/wavs/LJ016-0314.npy +tests/data/ljspeech/wavs/LJ003-0275.wav|tests/data/ljspeech/wavs/LJ003-0275.npy +tests/data/ljspeech/wavs/LJ004-0004.wav|tests/data/ljspeech/wavs/LJ004-0004.npy +tests/data/ljspeech/wavs/LJ006-0142.wav|tests/data/ljspeech/wavs/LJ006-0142.npy +tests/data/ljspeech/wavs/LJ044-0232.wav|tests/data/ljspeech/wavs/LJ044-0232.npy +tests/data/ljspeech/wavs/LJ021-0112.wav|tests/data/ljspeech/wavs/LJ021-0112.npy +tests/data/ljspeech/wavs/LJ018-0111.wav|tests/data/ljspeech/wavs/LJ018-0111.npy +tests/data/ljspeech/wavs/LJ003-0160.wav|tests/data/ljspeech/wavs/LJ003-0160.npy +tests/data/ljspeech/wavs/LJ046-0215.wav|tests/data/ljspeech/wavs/LJ046-0215.npy +tests/data/ljspeech/wavs/LJ029-0088.wav|tests/data/ljspeech/wavs/LJ029-0088.npy +tests/data/ljspeech/wavs/LJ006-0242.wav|tests/data/ljspeech/wavs/LJ006-0242.npy +tests/data/ljspeech/wavs/LJ034-0006.wav|tests/data/ljspeech/wavs/LJ034-0006.npy +tests/data/ljspeech/wavs/LJ020-0103.wav|tests/data/ljspeech/wavs/LJ020-0103.npy +tests/data/ljspeech/wavs/LJ006-0273.wav|tests/data/ljspeech/wavs/LJ006-0273.npy +tests/data/ljspeech/wavs/LJ023-0013.wav|tests/data/ljspeech/wavs/LJ023-0013.npy +tests/data/ljspeech/wavs/LJ006-0114.wav|tests/data/ljspeech/wavs/LJ006-0114.npy +tests/data/ljspeech/wavs/LJ023-0044.wav|tests/data/ljspeech/wavs/LJ023-0044.npy +tests/data/ljspeech/wavs/LJ029-0018.wav|tests/data/ljspeech/wavs/LJ029-0018.npy +tests/data/ljspeech/wavs/LJ031-0230.wav|tests/data/ljspeech/wavs/LJ031-0230.npy +tests/data/ljspeech/wavs/LJ037-0069.wav|tests/data/ljspeech/wavs/LJ037-0069.npy +tests/data/ljspeech/wavs/LJ007-0165.wav|tests/data/ljspeech/wavs/LJ007-0165.npy +tests/data/ljspeech/wavs/LJ036-0078.wav|tests/data/ljspeech/wavs/LJ036-0078.npy +tests/data/ljspeech/wavs/LJ041-0155.wav|tests/data/ljspeech/wavs/LJ041-0155.npy +tests/data/ljspeech/wavs/LJ005-0038.wav|tests/data/ljspeech/wavs/LJ005-0038.npy +tests/data/ljspeech/wavs/LJ035-0038.wav|tests/data/ljspeech/wavs/LJ035-0038.npy +tests/data/ljspeech/wavs/LJ005-0040.wav|tests/data/ljspeech/wavs/LJ005-0040.npy +tests/data/ljspeech/wavs/LJ007-0144.wav|tests/data/ljspeech/wavs/LJ007-0144.npy +tests/data/ljspeech/wavs/LJ027-0114.wav|tests/data/ljspeech/wavs/LJ027-0114.npy +tests/data/ljspeech/wavs/LJ027-0042.wav|tests/data/ljspeech/wavs/LJ027-0042.npy +tests/data/ljspeech/wavs/LJ031-0150.wav|tests/data/ljspeech/wavs/LJ031-0150.npy +tests/data/ljspeech/wavs/LJ017-0117.wav|tests/data/ljspeech/wavs/LJ017-0117.npy +tests/data/ljspeech/wavs/LJ027-0107.wav|tests/data/ljspeech/wavs/LJ027-0107.npy +tests/data/ljspeech/wavs/LJ007-0075.wav|tests/data/ljspeech/wavs/LJ007-0075.npy +tests/data/ljspeech/wavs/LJ008-0103.wav|tests/data/ljspeech/wavs/LJ008-0103.npy +tests/data/ljspeech/wavs/LJ008-0292.wav|tests/data/ljspeech/wavs/LJ008-0292.npy +tests/data/ljspeech/wavs/LJ008-0053.wav|tests/data/ljspeech/wavs/LJ008-0053.npy +tests/data/ljspeech/wavs/LJ038-0115.wav|tests/data/ljspeech/wavs/LJ038-0115.npy +tests/data/ljspeech/wavs/LJ008-0250.wav|tests/data/ljspeech/wavs/LJ008-0250.npy +tests/data/ljspeech/wavs/LJ003-0081.wav|tests/data/ljspeech/wavs/LJ003-0081.npy +tests/data/ljspeech/wavs/LJ016-0264.wav|tests/data/ljspeech/wavs/LJ016-0264.npy +tests/data/ljspeech/wavs/LJ034-0122.wav|tests/data/ljspeech/wavs/LJ034-0122.npy +tests/data/ljspeech/wavs/LJ005-0043.wav|tests/data/ljspeech/wavs/LJ005-0043.npy +tests/data/ljspeech/wavs/LJ023-0061.wav|tests/data/ljspeech/wavs/LJ023-0061.npy +tests/data/ljspeech/wavs/LJ006-0110.wav|tests/data/ljspeech/wavs/LJ006-0110.npy +tests/data/ljspeech/wavs/LJ034-0213.wav|tests/data/ljspeech/wavs/LJ034-0213.npy +tests/data/ljspeech/wavs/LJ006-0020.wav|tests/data/ljspeech/wavs/LJ006-0020.npy +tests/data/ljspeech/wavs/LJ022-0024.wav|tests/data/ljspeech/wavs/LJ022-0024.npy +tests/data/ljspeech/wavs/LJ008-0275.wav|tests/data/ljspeech/wavs/LJ008-0275.npy +tests/data/ljspeech/wavs/LJ032-0008.wav|tests/data/ljspeech/wavs/LJ032-0008.npy +tests/data/ljspeech/wavs/LJ032-0203.wav|tests/data/ljspeech/wavs/LJ032-0203.npy +tests/data/ljspeech/wavs/LJ015-0006.wav|tests/data/ljspeech/wavs/LJ015-0006.npy +tests/data/ljspeech/wavs/LJ015-0001.wav|tests/data/ljspeech/wavs/LJ015-0001.npy +tests/data/ljspeech/wavs/LJ005-0203.wav|tests/data/ljspeech/wavs/LJ005-0203.npy +tests/data/ljspeech/wavs/LJ048-0035.wav|tests/data/ljspeech/wavs/LJ048-0035.npy +tests/data/ljspeech/wavs/LJ005-0187.wav|tests/data/ljspeech/wavs/LJ005-0187.npy +tests/data/ljspeech/wavs/LJ044-0043.wav|tests/data/ljspeech/wavs/LJ044-0043.npy +tests/data/ljspeech/wavs/LJ016-0251.wav|tests/data/ljspeech/wavs/LJ016-0251.npy +tests/data/ljspeech/wavs/LJ015-0255.wav|tests/data/ljspeech/wavs/LJ015-0255.npy +tests/data/ljspeech/wavs/LJ047-0004.wav|tests/data/ljspeech/wavs/LJ047-0004.npy +tests/data/ljspeech/wavs/LJ037-0056.wav|tests/data/ljspeech/wavs/LJ037-0056.npy +tests/data/ljspeech/wavs/LJ049-0089.wav|tests/data/ljspeech/wavs/LJ049-0089.npy +tests/data/ljspeech/wavs/LJ023-0076.wav|tests/data/ljspeech/wavs/LJ023-0076.npy +tests/data/ljspeech/wavs/LJ014-0105.wav|tests/data/ljspeech/wavs/LJ014-0105.npy +tests/data/ljspeech/wavs/LJ017-0223.wav|tests/data/ljspeech/wavs/LJ017-0223.npy +tests/data/ljspeech/wavs/LJ016-0250.wav|tests/data/ljspeech/wavs/LJ016-0250.npy +tests/data/ljspeech/wavs/LJ024-0137.wav|tests/data/ljspeech/wavs/LJ024-0137.npy +tests/data/ljspeech/wavs/LJ017-0274.wav|tests/data/ljspeech/wavs/LJ017-0274.npy +tests/data/ljspeech/wavs/LJ015-0013.wav|tests/data/ljspeech/wavs/LJ015-0013.npy +tests/data/ljspeech/wavs/LJ036-0093.wav|tests/data/ljspeech/wavs/LJ036-0093.npy +tests/data/ljspeech/wavs/LJ036-0215.wav|tests/data/ljspeech/wavs/LJ036-0215.npy +tests/data/ljspeech/wavs/LJ017-0135.wav|tests/data/ljspeech/wavs/LJ017-0135.npy +tests/data/ljspeech/wavs/LJ016-0164.wav|tests/data/ljspeech/wavs/LJ016-0164.npy +tests/data/ljspeech/wavs/LJ048-0213.wav|tests/data/ljspeech/wavs/LJ048-0213.npy +tests/data/ljspeech/wavs/LJ036-0183.wav|tests/data/ljspeech/wavs/LJ036-0183.npy +tests/data/ljspeech/wavs/LJ045-0187.wav|tests/data/ljspeech/wavs/LJ045-0187.npy +tests/data/ljspeech/wavs/LJ007-0240.wav|tests/data/ljspeech/wavs/LJ007-0240.npy +tests/data/ljspeech/wavs/LJ015-0289.wav|tests/data/ljspeech/wavs/LJ015-0289.npy +tests/data/ljspeech/wavs/LJ005-0117.wav|tests/data/ljspeech/wavs/LJ005-0117.npy +tests/data/ljspeech/wavs/LJ016-0131.wav|tests/data/ljspeech/wavs/LJ016-0131.npy +tests/data/ljspeech/wavs/LJ017-0043.wav|tests/data/ljspeech/wavs/LJ017-0043.npy +tests/data/ljspeech/wavs/LJ037-0044.wav|tests/data/ljspeech/wavs/LJ037-0044.npy +tests/data/ljspeech/wavs/LJ044-0018.wav|tests/data/ljspeech/wavs/LJ044-0018.npy +tests/data/ljspeech/wavs/LJ030-0027.wav|tests/data/ljspeech/wavs/LJ030-0027.npy +tests/data/ljspeech/wavs/LJ031-0022.wav|tests/data/ljspeech/wavs/LJ031-0022.npy +tests/data/ljspeech/wavs/LJ001-0040.wav|tests/data/ljspeech/wavs/LJ001-0040.npy +tests/data/ljspeech/wavs/LJ045-0247.wav|tests/data/ljspeech/wavs/LJ045-0247.npy +tests/data/ljspeech/wavs/LJ045-0205.wav|tests/data/ljspeech/wavs/LJ045-0205.npy +tests/data/ljspeech/wavs/LJ007-0174.wav|tests/data/ljspeech/wavs/LJ007-0174.npy +tests/data/ljspeech/wavs/LJ043-0015.wav|tests/data/ljspeech/wavs/LJ043-0015.npy +tests/data/ljspeech/wavs/LJ030-0068.wav|tests/data/ljspeech/wavs/LJ030-0068.npy +tests/data/ljspeech/wavs/LJ001-0009.wav|tests/data/ljspeech/wavs/LJ001-0009.npy +tests/data/ljspeech/wavs/LJ001-0117.wav|tests/data/ljspeech/wavs/LJ001-0117.npy +tests/data/ljspeech/wavs/LJ014-0220.wav|tests/data/ljspeech/wavs/LJ014-0220.npy +tests/data/ljspeech/wavs/LJ006-0120.wav|tests/data/ljspeech/wavs/LJ006-0120.npy +tests/data/ljspeech/wavs/LJ004-0141.wav|tests/data/ljspeech/wavs/LJ004-0141.npy +tests/data/ljspeech/wavs/LJ031-0007.wav|tests/data/ljspeech/wavs/LJ031-0007.npy +tests/data/ljspeech/wavs/LJ003-0175.wav|tests/data/ljspeech/wavs/LJ003-0175.npy +tests/data/ljspeech/wavs/LJ044-0228.wav|tests/data/ljspeech/wavs/LJ044-0228.npy +tests/data/ljspeech/wavs/LJ030-0233.wav|tests/data/ljspeech/wavs/LJ030-0233.npy +tests/data/ljspeech/wavs/LJ042-0099.wav|tests/data/ljspeech/wavs/LJ042-0099.npy +tests/data/ljspeech/wavs/LJ045-0233.wav|tests/data/ljspeech/wavs/LJ045-0233.npy +tests/data/ljspeech/wavs/LJ010-0305.wav|tests/data/ljspeech/wavs/LJ010-0305.npy +tests/data/ljspeech/wavs/LJ050-0039.wav|tests/data/ljspeech/wavs/LJ050-0039.npy +tests/data/ljspeech/wavs/LJ003-0238.wav|tests/data/ljspeech/wavs/LJ003-0238.npy +tests/data/ljspeech/wavs/LJ007-0039.wav|tests/data/ljspeech/wavs/LJ007-0039.npy +tests/data/ljspeech/wavs/LJ005-0257.wav|tests/data/ljspeech/wavs/LJ005-0257.npy +tests/data/ljspeech/wavs/LJ006-0160.wav|tests/data/ljspeech/wavs/LJ006-0160.npy +tests/data/ljspeech/wavs/LJ007-0200.wav|tests/data/ljspeech/wavs/LJ007-0200.npy +tests/data/ljspeech/wavs/LJ003-0029.wav|tests/data/ljspeech/wavs/LJ003-0029.npy +tests/data/ljspeech/wavs/LJ003-0346.wav|tests/data/ljspeech/wavs/LJ003-0346.npy +tests/data/ljspeech/wavs/LJ007-0121.wav|tests/data/ljspeech/wavs/LJ007-0121.npy +tests/data/ljspeech/wavs/LJ004-0060.wav|tests/data/ljspeech/wavs/LJ004-0060.npy +tests/data/ljspeech/wavs/LJ031-0223.wav|tests/data/ljspeech/wavs/LJ031-0223.npy +tests/data/ljspeech/wavs/LJ009-0300.wav|tests/data/ljspeech/wavs/LJ009-0300.npy +tests/data/ljspeech/wavs/LJ012-0078.wav|tests/data/ljspeech/wavs/LJ012-0078.npy +tests/data/ljspeech/wavs/LJ028-0424.wav|tests/data/ljspeech/wavs/LJ028-0424.npy +tests/data/ljspeech/wavs/LJ041-0008.wav|tests/data/ljspeech/wavs/LJ041-0008.npy +tests/data/ljspeech/wavs/LJ028-0417.wav|tests/data/ljspeech/wavs/LJ028-0417.npy +tests/data/ljspeech/wavs/LJ010-0287.wav|tests/data/ljspeech/wavs/LJ010-0287.npy +tests/data/ljspeech/wavs/LJ040-0123.wav|tests/data/ljspeech/wavs/LJ040-0123.npy +tests/data/ljspeech/wavs/LJ028-0303.wav|tests/data/ljspeech/wavs/LJ028-0303.npy +tests/data/ljspeech/wavs/LJ009-0119.wav|tests/data/ljspeech/wavs/LJ009-0119.npy +tests/data/ljspeech/wavs/LJ042-0025.wav|tests/data/ljspeech/wavs/LJ042-0025.npy +tests/data/ljspeech/wavs/LJ042-0097.wav|tests/data/ljspeech/wavs/LJ042-0097.npy +tests/data/ljspeech/wavs/LJ028-0143.wav|tests/data/ljspeech/wavs/LJ028-0143.npy +tests/data/ljspeech/wavs/LJ028-0288.wav|tests/data/ljspeech/wavs/LJ028-0288.npy +tests/data/ljspeech/wavs/LJ010-0058.wav|tests/data/ljspeech/wavs/LJ010-0058.npy +tests/data/ljspeech/wavs/LJ009-0037.wav|tests/data/ljspeech/wavs/LJ009-0037.npy +tests/data/ljspeech/wavs/LJ038-0254.wav|tests/data/ljspeech/wavs/LJ038-0254.npy +tests/data/ljspeech/wavs/LJ028-0189.wav|tests/data/ljspeech/wavs/LJ028-0189.npy +tests/data/ljspeech/wavs/LJ028-0306.wav|tests/data/ljspeech/wavs/LJ028-0306.npy +tests/data/ljspeech/wavs/LJ028-0471.wav|tests/data/ljspeech/wavs/LJ028-0471.npy +tests/data/ljspeech/wavs/LJ013-0004.wav|tests/data/ljspeech/wavs/LJ013-0004.npy +tests/data/ljspeech/wavs/LJ008-0248.wav|tests/data/ljspeech/wavs/LJ008-0248.npy +tests/data/ljspeech/wavs/LJ010-0086.wav|tests/data/ljspeech/wavs/LJ010-0086.npy +tests/data/ljspeech/wavs/LJ040-0240.wav|tests/data/ljspeech/wavs/LJ040-0240.npy +tests/data/ljspeech/wavs/LJ011-0145.wav|tests/data/ljspeech/wavs/LJ011-0145.npy +tests/data/ljspeech/wavs/LJ013-0010.wav|tests/data/ljspeech/wavs/LJ013-0010.npy +tests/data/ljspeech/wavs/LJ028-0237.wav|tests/data/ljspeech/wavs/LJ028-0237.npy +tests/data/ljspeech/wavs/LJ013-0114.wav|tests/data/ljspeech/wavs/LJ013-0114.npy +tests/data/ljspeech/wavs/LJ009-0043.wav|tests/data/ljspeech/wavs/LJ009-0043.npy +tests/data/ljspeech/wavs/LJ041-0121.wav|tests/data/ljspeech/wavs/LJ041-0121.npy +tests/data/ljspeech/wavs/LJ009-0280.wav|tests/data/ljspeech/wavs/LJ009-0280.npy +tests/data/ljspeech/wavs/LJ013-0075.wav|tests/data/ljspeech/wavs/LJ013-0075.npy +tests/data/ljspeech/wavs/LJ028-0451.wav|tests/data/ljspeech/wavs/LJ028-0451.npy +tests/data/ljspeech/wavs/LJ025-0042.wav|tests/data/ljspeech/wavs/LJ025-0042.npy +tests/data/ljspeech/wavs/LJ021-0007.wav|tests/data/ljspeech/wavs/LJ021-0007.npy +tests/data/ljspeech/wavs/LJ024-0067.wav|tests/data/ljspeech/wavs/LJ024-0067.npy +tests/data/ljspeech/wavs/LJ026-0123.wav|tests/data/ljspeech/wavs/LJ026-0123.npy +tests/data/ljspeech/wavs/LJ024-0107.wav|tests/data/ljspeech/wavs/LJ024-0107.npy +tests/data/ljspeech/wavs/LJ023-0003.wav|tests/data/ljspeech/wavs/LJ023-0003.npy +tests/data/ljspeech/wavs/LJ036-0060.wav|tests/data/ljspeech/wavs/LJ036-0060.npy +tests/data/ljspeech/wavs/LJ019-0088.wav|tests/data/ljspeech/wavs/LJ019-0088.npy +tests/data/ljspeech/wavs/LJ025-0154.wav|tests/data/ljspeech/wavs/LJ025-0154.npy +tests/data/ljspeech/wavs/LJ035-0045.wav|tests/data/ljspeech/wavs/LJ035-0045.npy +tests/data/ljspeech/wavs/LJ024-0092.wav|tests/data/ljspeech/wavs/LJ024-0092.npy +tests/data/ljspeech/wavs/LJ023-0091.wav|tests/data/ljspeech/wavs/LJ023-0091.npy +tests/data/ljspeech/wavs/LJ022-0167.wav|tests/data/ljspeech/wavs/LJ022-0167.npy +tests/data/ljspeech/wavs/LJ022-0025.wav|tests/data/ljspeech/wavs/LJ022-0025.npy +tests/data/ljspeech/wavs/LJ018-0230.wav|tests/data/ljspeech/wavs/LJ018-0230.npy +tests/data/ljspeech/wavs/LJ033-0046.wav|tests/data/ljspeech/wavs/LJ033-0046.npy +tests/data/ljspeech/wavs/LJ022-0153.wav|tests/data/ljspeech/wavs/LJ022-0153.npy +tests/data/ljspeech/wavs/LJ018-0076.wav|tests/data/ljspeech/wavs/LJ018-0076.npy +tests/data/ljspeech/wavs/LJ019-0291.wav|tests/data/ljspeech/wavs/LJ019-0291.npy +tests/data/ljspeech/wavs/LJ022-0129.wav|tests/data/ljspeech/wavs/LJ022-0129.npy +tests/data/ljspeech/wavs/LJ033-0041.wav|tests/data/ljspeech/wavs/LJ033-0041.npy +tests/data/ljspeech/wavs/LJ021-0038.wav|tests/data/ljspeech/wavs/LJ021-0038.npy +tests/data/ljspeech/wavs/LJ019-0202.wav|tests/data/ljspeech/wavs/LJ019-0202.npy +tests/data/ljspeech/wavs/LJ009-0014.wav|tests/data/ljspeech/wavs/LJ009-0014.npy +tests/data/ljspeech/wavs/LJ018-0147.wav|tests/data/ljspeech/wavs/LJ018-0147.npy +tests/data/ljspeech/wavs/LJ019-0033.wav|tests/data/ljspeech/wavs/LJ019-0033.npy +tests/data/ljspeech/wavs/LJ018-0135.wav|tests/data/ljspeech/wavs/LJ018-0135.npy +tests/data/ljspeech/wavs/LJ025-0036.wav|tests/data/ljspeech/wavs/LJ025-0036.npy +tests/data/ljspeech/wavs/LJ012-0109.wav|tests/data/ljspeech/wavs/LJ012-0109.npy +tests/data/ljspeech/wavs/LJ035-0169.wav|tests/data/ljspeech/wavs/LJ035-0169.npy +tests/data/ljspeech/wavs/LJ033-0120.wav|tests/data/ljspeech/wavs/LJ033-0120.npy +tests/data/ljspeech/wavs/LJ019-0357.wav|tests/data/ljspeech/wavs/LJ019-0357.npy +tests/data/ljspeech/wavs/LJ046-0008.wav|tests/data/ljspeech/wavs/LJ046-0008.npy +tests/data/ljspeech/wavs/LJ048-0275.wav|tests/data/ljspeech/wavs/LJ048-0275.npy +tests/data/ljspeech/wavs/LJ026-0117.wav|tests/data/ljspeech/wavs/LJ026-0117.npy +tests/data/ljspeech/wavs/LJ019-0195.wav|tests/data/ljspeech/wavs/LJ019-0195.npy +tests/data/ljspeech/wavs/LJ034-0137.wav|tests/data/ljspeech/wavs/LJ034-0137.npy +tests/data/ljspeech/wavs/LJ039-0006.wav|tests/data/ljspeech/wavs/LJ039-0006.npy +tests/data/ljspeech/wavs/LJ043-0055.wav|tests/data/ljspeech/wavs/LJ043-0055.npy +tests/data/ljspeech/wavs/LJ040-0116.wav|tests/data/ljspeech/wavs/LJ040-0116.npy +tests/data/ljspeech/wavs/LJ015-0103.wav|tests/data/ljspeech/wavs/LJ015-0103.npy +tests/data/ljspeech/wavs/LJ009-0290.wav|tests/data/ljspeech/wavs/LJ009-0290.npy +tests/data/ljspeech/wavs/LJ018-0286.wav|tests/data/ljspeech/wavs/LJ018-0286.npy +tests/data/ljspeech/wavs/LJ004-0161.wav|tests/data/ljspeech/wavs/LJ004-0161.npy +tests/data/ljspeech/wavs/LJ028-0041.wav|tests/data/ljspeech/wavs/LJ028-0041.npy +tests/data/ljspeech/wavs/LJ008-0176.wav|tests/data/ljspeech/wavs/LJ008-0176.npy +tests/data/ljspeech/wavs/LJ026-0154.wav|tests/data/ljspeech/wavs/LJ026-0154.npy +tests/data/ljspeech/wavs/LJ015-0089.wav|tests/data/ljspeech/wavs/LJ015-0089.npy +tests/data/ljspeech/wavs/LJ039-0010.wav|tests/data/ljspeech/wavs/LJ039-0010.npy +tests/data/ljspeech/wavs/LJ013-0228.wav|tests/data/ljspeech/wavs/LJ013-0228.npy +tests/data/ljspeech/wavs/LJ008-0202.wav|tests/data/ljspeech/wavs/LJ008-0202.npy +tests/data/ljspeech/wavs/LJ019-0093.wav|tests/data/ljspeech/wavs/LJ019-0093.npy +tests/data/ljspeech/wavs/LJ030-0048.wav|tests/data/ljspeech/wavs/LJ030-0048.npy +tests/data/ljspeech/wavs/LJ031-0047.wav|tests/data/ljspeech/wavs/LJ031-0047.npy +tests/data/ljspeech/wavs/LJ009-0142.wav|tests/data/ljspeech/wavs/LJ009-0142.npy +tests/data/ljspeech/wavs/LJ006-0215.wav|tests/data/ljspeech/wavs/LJ006-0215.npy +tests/data/ljspeech/wavs/LJ016-0227.wav|tests/data/ljspeech/wavs/LJ016-0227.npy +tests/data/ljspeech/wavs/LJ002-0233.wav|tests/data/ljspeech/wavs/LJ002-0233.npy +tests/data/ljspeech/wavs/LJ008-0205.wav|tests/data/ljspeech/wavs/LJ008-0205.npy +tests/data/ljspeech/wavs/LJ008-0037.wav|tests/data/ljspeech/wavs/LJ008-0037.npy +tests/data/ljspeech/wavs/LJ004-0138.wav|tests/data/ljspeech/wavs/LJ004-0138.npy +tests/data/ljspeech/wavs/LJ013-0234.wav|tests/data/ljspeech/wavs/LJ013-0234.npy +tests/data/ljspeech/wavs/LJ013-0227.wav|tests/data/ljspeech/wavs/LJ013-0227.npy +tests/data/ljspeech/wavs/LJ033-0058.wav|tests/data/ljspeech/wavs/LJ033-0058.npy +tests/data/ljspeech/wavs/LJ003-0074.wav|tests/data/ljspeech/wavs/LJ003-0074.npy +tests/data/ljspeech/wavs/LJ028-0357.wav|tests/data/ljspeech/wavs/LJ028-0357.npy +tests/data/ljspeech/wavs/LJ043-0038.wav|tests/data/ljspeech/wavs/LJ043-0038.npy +tests/data/ljspeech/wavs/LJ033-0038.wav|tests/data/ljspeech/wavs/LJ033-0038.npy +tests/data/ljspeech/wavs/LJ026-0018.wav|tests/data/ljspeech/wavs/LJ026-0018.npy +tests/data/ljspeech/wavs/LJ003-0018.wav|tests/data/ljspeech/wavs/LJ003-0018.npy +tests/data/ljspeech/wavs/LJ030-0106.wav|tests/data/ljspeech/wavs/LJ030-0106.npy +tests/data/ljspeech/wavs/LJ043-0051.wav|tests/data/ljspeech/wavs/LJ043-0051.npy +tests/data/ljspeech/wavs/LJ028-0169.wav|tests/data/ljspeech/wavs/LJ028-0169.npy +tests/data/ljspeech/wavs/LJ047-0005.wav|tests/data/ljspeech/wavs/LJ047-0005.npy +tests/data/ljspeech/wavs/LJ008-0091.wav|tests/data/ljspeech/wavs/LJ008-0091.npy +tests/data/ljspeech/wavs/LJ014-0157.wav|tests/data/ljspeech/wavs/LJ014-0157.npy +tests/data/ljspeech/wavs/LJ007-0201.wav|tests/data/ljspeech/wavs/LJ007-0201.npy +tests/data/ljspeech/wavs/LJ038-0278.wav|tests/data/ljspeech/wavs/LJ038-0278.npy +tests/data/ljspeech/wavs/LJ015-0156.wav|tests/data/ljspeech/wavs/LJ015-0156.npy +tests/data/ljspeech/wavs/LJ024-0025.wav|tests/data/ljspeech/wavs/LJ024-0025.npy +tests/data/ljspeech/wavs/LJ015-0284.wav|tests/data/ljspeech/wavs/LJ015-0284.npy +tests/data/ljspeech/wavs/LJ045-0118.wav|tests/data/ljspeech/wavs/LJ045-0118.npy +tests/data/ljspeech/wavs/LJ048-0111.wav|tests/data/ljspeech/wavs/LJ048-0111.npy +tests/data/ljspeech/wavs/LJ016-0128.wav|tests/data/ljspeech/wavs/LJ016-0128.npy +tests/data/ljspeech/wavs/LJ008-0105.wav|tests/data/ljspeech/wavs/LJ008-0105.npy +tests/data/ljspeech/wavs/LJ028-0022.wav|tests/data/ljspeech/wavs/LJ028-0022.npy +tests/data/ljspeech/wavs/LJ018-0298.wav|tests/data/ljspeech/wavs/LJ018-0298.npy +tests/data/ljspeech/wavs/LJ035-0185.wav|tests/data/ljspeech/wavs/LJ035-0185.npy +tests/data/ljspeech/wavs/LJ014-0015.wav|tests/data/ljspeech/wavs/LJ014-0015.npy +tests/data/ljspeech/wavs/LJ023-0087.wav|tests/data/ljspeech/wavs/LJ023-0087.npy +tests/data/ljspeech/wavs/LJ036-0013.wav|tests/data/ljspeech/wavs/LJ036-0013.npy +tests/data/ljspeech/wavs/LJ016-0108.wav|tests/data/ljspeech/wavs/LJ016-0108.npy +tests/data/ljspeech/wavs/LJ006-0308.wav|tests/data/ljspeech/wavs/LJ006-0308.npy +tests/data/ljspeech/wavs/LJ015-0041.wav|tests/data/ljspeech/wavs/LJ015-0041.npy +tests/data/ljspeech/wavs/LJ004-0015.wav|tests/data/ljspeech/wavs/LJ004-0015.npy +tests/data/ljspeech/wavs/LJ045-0100.wav|tests/data/ljspeech/wavs/LJ045-0100.npy +tests/data/ljspeech/wavs/LJ042-0246.wav|tests/data/ljspeech/wavs/LJ042-0246.npy +tests/data/ljspeech/wavs/LJ039-0232.wav|tests/data/ljspeech/wavs/LJ039-0232.npy +tests/data/ljspeech/wavs/LJ047-0149.wav|tests/data/ljspeech/wavs/LJ047-0149.npy +tests/data/ljspeech/wavs/LJ038-0186.wav|tests/data/ljspeech/wavs/LJ038-0186.npy +tests/data/ljspeech/wavs/LJ011-0204.wav|tests/data/ljspeech/wavs/LJ011-0204.npy +tests/data/ljspeech/wavs/LJ017-0064.wav|tests/data/ljspeech/wavs/LJ017-0064.npy +tests/data/ljspeech/wavs/LJ016-0070.wav|tests/data/ljspeech/wavs/LJ016-0070.npy +tests/data/ljspeech/wavs/LJ010-0195.wav|tests/data/ljspeech/wavs/LJ010-0195.npy +tests/data/ljspeech/wavs/LJ019-0122.wav|tests/data/ljspeech/wavs/LJ019-0122.npy +tests/data/ljspeech/wavs/LJ005-0088.wav|tests/data/ljspeech/wavs/LJ005-0088.npy +tests/data/ljspeech/wavs/LJ003-0347.wav|tests/data/ljspeech/wavs/LJ003-0347.npy +tests/data/ljspeech/wavs/LJ001-0032.wav|tests/data/ljspeech/wavs/LJ001-0032.npy +tests/data/ljspeech/wavs/LJ035-0057.wav|tests/data/ljspeech/wavs/LJ035-0057.npy +tests/data/ljspeech/wavs/LJ030-0044.wav|tests/data/ljspeech/wavs/LJ030-0044.npy +tests/data/ljspeech/wavs/LJ038-0019.wav|tests/data/ljspeech/wavs/LJ038-0019.npy +tests/data/ljspeech/wavs/LJ003-0214.wav|tests/data/ljspeech/wavs/LJ003-0214.npy +tests/data/ljspeech/wavs/LJ029-0003.wav|tests/data/ljspeech/wavs/LJ029-0003.npy +tests/data/ljspeech/wavs/LJ004-0247.wav|tests/data/ljspeech/wavs/LJ004-0247.npy +tests/data/ljspeech/wavs/LJ041-0021.wav|tests/data/ljspeech/wavs/LJ041-0021.npy +tests/data/ljspeech/wavs/LJ027-0057.wav|tests/data/ljspeech/wavs/LJ027-0057.npy +tests/data/ljspeech/wavs/LJ005-0002.wav|tests/data/ljspeech/wavs/LJ005-0002.npy +tests/data/ljspeech/wavs/LJ045-0146.wav|tests/data/ljspeech/wavs/LJ045-0146.npy +tests/data/ljspeech/wavs/LJ050-0012.wav|tests/data/ljspeech/wavs/LJ050-0012.npy +tests/data/ljspeech/wavs/LJ031-0202.wav|tests/data/ljspeech/wavs/LJ031-0202.npy +tests/data/ljspeech/wavs/LJ019-0092.wav|tests/data/ljspeech/wavs/LJ019-0092.npy +tests/data/ljspeech/wavs/LJ035-0092.wav|tests/data/ljspeech/wavs/LJ035-0092.npy +tests/data/ljspeech/wavs/LJ005-0010.wav|tests/data/ljspeech/wavs/LJ005-0010.npy +tests/data/ljspeech/wavs/LJ039-0157.wav|tests/data/ljspeech/wavs/LJ039-0157.npy +tests/data/ljspeech/wavs/LJ010-0290.wav|tests/data/ljspeech/wavs/LJ010-0290.npy +tests/data/ljspeech/wavs/LJ025-0162.wav|tests/data/ljspeech/wavs/LJ025-0162.npy +tests/data/ljspeech/wavs/LJ002-0330.wav|tests/data/ljspeech/wavs/LJ002-0330.npy +tests/data/ljspeech/wavs/LJ011-0184.wav|tests/data/ljspeech/wavs/LJ011-0184.npy +tests/data/ljspeech/wavs/LJ039-0180.wav|tests/data/ljspeech/wavs/LJ039-0180.npy +tests/data/ljspeech/wavs/LJ001-0024.wav|tests/data/ljspeech/wavs/LJ001-0024.npy +tests/data/ljspeech/wavs/LJ031-0014.wav|tests/data/ljspeech/wavs/LJ031-0014.npy +tests/data/ljspeech/wavs/LJ039-0196.wav|tests/data/ljspeech/wavs/LJ039-0196.npy +tests/data/ljspeech/wavs/LJ028-0216.wav|tests/data/ljspeech/wavs/LJ028-0216.npy +tests/data/ljspeech/wavs/LJ025-0092.wav|tests/data/ljspeech/wavs/LJ025-0092.npy +tests/data/ljspeech/wavs/LJ026-0128.wav|tests/data/ljspeech/wavs/LJ026-0128.npy +tests/data/ljspeech/wavs/LJ029-0210.wav|tests/data/ljspeech/wavs/LJ029-0210.npy +tests/data/ljspeech/wavs/LJ033-0074.wav|tests/data/ljspeech/wavs/LJ033-0074.npy +tests/data/ljspeech/wavs/LJ028-0278.wav|tests/data/ljspeech/wavs/LJ028-0278.npy +tests/data/ljspeech/wavs/LJ012-0283.wav|tests/data/ljspeech/wavs/LJ012-0283.npy +tests/data/ljspeech/wavs/LJ009-0052.wav|tests/data/ljspeech/wavs/LJ009-0052.npy +tests/data/ljspeech/wavs/LJ050-0036.wav|tests/data/ljspeech/wavs/LJ050-0036.npy +tests/data/ljspeech/wavs/LJ041-0011.wav|tests/data/ljspeech/wavs/LJ041-0011.npy +tests/data/ljspeech/wavs/LJ017-0238.wav|tests/data/ljspeech/wavs/LJ017-0238.npy +tests/data/ljspeech/wavs/LJ016-0335.wav|tests/data/ljspeech/wavs/LJ016-0335.npy +tests/data/ljspeech/wavs/LJ011-0255.wav|tests/data/ljspeech/wavs/LJ011-0255.npy +tests/data/ljspeech/wavs/LJ022-0009.wav|tests/data/ljspeech/wavs/LJ022-0009.npy +tests/data/ljspeech/wavs/LJ012-0217.wav|tests/data/ljspeech/wavs/LJ012-0217.npy +tests/data/ljspeech/wavs/LJ012-0165.wav|tests/data/ljspeech/wavs/LJ012-0165.npy +tests/data/ljspeech/wavs/LJ028-0485.wav|tests/data/ljspeech/wavs/LJ028-0485.npy +tests/data/ljspeech/wavs/LJ033-0108.wav|tests/data/ljspeech/wavs/LJ033-0108.npy +tests/data/ljspeech/wavs/LJ005-0029.wav|tests/data/ljspeech/wavs/LJ005-0029.npy +tests/data/ljspeech/wavs/LJ024-0136.wav|tests/data/ljspeech/wavs/LJ024-0136.npy +tests/data/ljspeech/wavs/LJ011-0013.wav|tests/data/ljspeech/wavs/LJ011-0013.npy +tests/data/ljspeech/wavs/LJ050-0074.wav|tests/data/ljspeech/wavs/LJ050-0074.npy +tests/data/ljspeech/wavs/LJ002-0077.wav|tests/data/ljspeech/wavs/LJ002-0077.npy +tests/data/ljspeech/wavs/LJ017-0121.wav|tests/data/ljspeech/wavs/LJ017-0121.npy +tests/data/ljspeech/wavs/LJ019-0102.wav|tests/data/ljspeech/wavs/LJ019-0102.npy +tests/data/ljspeech/wavs/LJ035-0141.wav|tests/data/ljspeech/wavs/LJ035-0141.npy +tests/data/ljspeech/wavs/LJ020-0057.wav|tests/data/ljspeech/wavs/LJ020-0057.npy +tests/data/ljspeech/wavs/LJ028-0196.wav|tests/data/ljspeech/wavs/LJ028-0196.npy +tests/data/ljspeech/wavs/LJ039-0015.wav|tests/data/ljspeech/wavs/LJ039-0015.npy +tests/data/ljspeech/wavs/LJ018-0158.wav|tests/data/ljspeech/wavs/LJ018-0158.npy +tests/data/ljspeech/wavs/LJ045-0069.wav|tests/data/ljspeech/wavs/LJ045-0069.npy +tests/data/ljspeech/wavs/LJ038-0106.wav|tests/data/ljspeech/wavs/LJ038-0106.npy +tests/data/ljspeech/wavs/LJ034-0012.wav|tests/data/ljspeech/wavs/LJ034-0012.npy +tests/data/ljspeech/wavs/LJ026-0084.wav|tests/data/ljspeech/wavs/LJ026-0084.npy +tests/data/ljspeech/wavs/LJ038-0104.wav|tests/data/ljspeech/wavs/LJ038-0104.npy +tests/data/ljspeech/wavs/LJ021-0148.wav|tests/data/ljspeech/wavs/LJ021-0148.npy +tests/data/ljspeech/wavs/LJ039-0123.wav|tests/data/ljspeech/wavs/LJ039-0123.npy +tests/data/ljspeech/wavs/LJ010-0272.wav|tests/data/ljspeech/wavs/LJ010-0272.npy +tests/data/ljspeech/wavs/LJ040-0019.wav|tests/data/ljspeech/wavs/LJ040-0019.npy +tests/data/ljspeech/wavs/LJ008-0082.wav|tests/data/ljspeech/wavs/LJ008-0082.npy +tests/data/ljspeech/wavs/LJ016-0415.wav|tests/data/ljspeech/wavs/LJ016-0415.npy +tests/data/ljspeech/wavs/LJ047-0100.wav|tests/data/ljspeech/wavs/LJ047-0100.npy +tests/data/ljspeech/wavs/LJ040-0041.wav|tests/data/ljspeech/wavs/LJ040-0041.npy +tests/data/ljspeech/wavs/LJ038-0062.wav|tests/data/ljspeech/wavs/LJ038-0062.npy +tests/data/ljspeech/wavs/LJ020-0026.wav|tests/data/ljspeech/wavs/LJ020-0026.npy +tests/data/ljspeech/wavs/LJ049-0208.wav|tests/data/ljspeech/wavs/LJ049-0208.npy +tests/data/ljspeech/wavs/LJ003-0285.wav|tests/data/ljspeech/wavs/LJ003-0285.npy +tests/data/ljspeech/wavs/LJ019-0369.wav|tests/data/ljspeech/wavs/LJ019-0369.npy +tests/data/ljspeech/wavs/LJ005-0236.wav|tests/data/ljspeech/wavs/LJ005-0236.npy +tests/data/ljspeech/wavs/LJ014-0210.wav|tests/data/ljspeech/wavs/LJ014-0210.npy +tests/data/ljspeech/wavs/LJ044-0056.wav|tests/data/ljspeech/wavs/LJ044-0056.npy +tests/data/ljspeech/wavs/LJ034-0058.wav|tests/data/ljspeech/wavs/LJ034-0058.npy +tests/data/ljspeech/wavs/LJ011-0114.wav|tests/data/ljspeech/wavs/LJ011-0114.npy +tests/data/ljspeech/wavs/LJ019-0185.wav|tests/data/ljspeech/wavs/LJ019-0185.npy +tests/data/ljspeech/wavs/LJ011-0193.wav|tests/data/ljspeech/wavs/LJ011-0193.npy +tests/data/ljspeech/wavs/LJ039-0240.wav|tests/data/ljspeech/wavs/LJ039-0240.npy +tests/data/ljspeech/wavs/LJ038-0029.wav|tests/data/ljspeech/wavs/LJ038-0029.npy +tests/data/ljspeech/wavs/LJ038-0091.wav|tests/data/ljspeech/wavs/LJ038-0091.npy +tests/data/ljspeech/wavs/LJ043-0094.wav|tests/data/ljspeech/wavs/LJ043-0094.npy +tests/data/ljspeech/wavs/LJ011-0085.wav|tests/data/ljspeech/wavs/LJ011-0085.npy +tests/data/ljspeech/wavs/LJ039-0185.wav|tests/data/ljspeech/wavs/LJ039-0185.npy +tests/data/ljspeech/wavs/LJ022-0081.wav|tests/data/ljspeech/wavs/LJ022-0081.npy +tests/data/ljspeech/wavs/LJ030-0010.wav|tests/data/ljspeech/wavs/LJ030-0010.npy +tests/data/ljspeech/wavs/LJ039-0023.wav|tests/data/ljspeech/wavs/LJ039-0023.npy +tests/data/ljspeech/wavs/LJ032-0124.wav|tests/data/ljspeech/wavs/LJ032-0124.npy +tests/data/ljspeech/wavs/LJ013-0261.wav|tests/data/ljspeech/wavs/LJ013-0261.npy +tests/data/ljspeech/wavs/LJ004-0073.wav|tests/data/ljspeech/wavs/LJ004-0073.npy +tests/data/ljspeech/wavs/LJ028-0323.wav|tests/data/ljspeech/wavs/LJ028-0323.npy +tests/data/ljspeech/wavs/LJ028-0153.wav|tests/data/ljspeech/wavs/LJ028-0153.npy +tests/data/ljspeech/wavs/LJ028-0473.wav|tests/data/ljspeech/wavs/LJ028-0473.npy +tests/data/ljspeech/wavs/LJ050-0171.wav|tests/data/ljspeech/wavs/LJ050-0171.npy +tests/data/ljspeech/wavs/LJ039-0131.wav|tests/data/ljspeech/wavs/LJ039-0131.npy +tests/data/ljspeech/wavs/LJ012-0031.wav|tests/data/ljspeech/wavs/LJ012-0031.npy +tests/data/ljspeech/wavs/LJ004-0216.wav|tests/data/ljspeech/wavs/LJ004-0216.npy +tests/data/ljspeech/wavs/LJ049-0013.wav|tests/data/ljspeech/wavs/LJ049-0013.npy +tests/data/ljspeech/wavs/LJ018-0367.wav|tests/data/ljspeech/wavs/LJ018-0367.npy +tests/data/ljspeech/wavs/LJ022-0055.wav|tests/data/ljspeech/wavs/LJ022-0055.npy +tests/data/ljspeech/wavs/LJ004-0135.wav|tests/data/ljspeech/wavs/LJ004-0135.npy +tests/data/ljspeech/wavs/LJ004-0074.wav|tests/data/ljspeech/wavs/LJ004-0074.npy +tests/data/ljspeech/wavs/LJ042-0200.wav|tests/data/ljspeech/wavs/LJ042-0200.npy +tests/data/ljspeech/wavs/LJ005-0170.wav|tests/data/ljspeech/wavs/LJ005-0170.npy +tests/data/ljspeech/wavs/LJ019-0046.wav|tests/data/ljspeech/wavs/LJ019-0046.npy +tests/data/ljspeech/wavs/LJ012-0158.wav|tests/data/ljspeech/wavs/LJ012-0158.npy +tests/data/ljspeech/wavs/LJ028-0334.wav|tests/data/ljspeech/wavs/LJ028-0334.npy +tests/data/ljspeech/wavs/LJ019-0089.wav|tests/data/ljspeech/wavs/LJ019-0089.npy +tests/data/ljspeech/wavs/LJ014-0204.wav|tests/data/ljspeech/wavs/LJ014-0204.npy +tests/data/ljspeech/wavs/LJ013-0104.wav|tests/data/ljspeech/wavs/LJ013-0104.npy +tests/data/ljspeech/wavs/LJ005-0157.wav|tests/data/ljspeech/wavs/LJ005-0157.npy +tests/data/ljspeech/wavs/LJ038-0239.wav|tests/data/ljspeech/wavs/LJ038-0239.npy +tests/data/ljspeech/wavs/LJ050-0172.wav|tests/data/ljspeech/wavs/LJ050-0172.npy +tests/data/ljspeech/wavs/LJ025-0153.wav|tests/data/ljspeech/wavs/LJ025-0153.npy +tests/data/ljspeech/wavs/LJ028-0491.wav|tests/data/ljspeech/wavs/LJ028-0491.npy +tests/data/ljspeech/wavs/LJ039-0160.wav|tests/data/ljspeech/wavs/LJ039-0160.npy +tests/data/ljspeech/wavs/LJ002-0016.wav|tests/data/ljspeech/wavs/LJ002-0016.npy +tests/data/ljspeech/wavs/LJ035-0179.wav|tests/data/ljspeech/wavs/LJ035-0179.npy +tests/data/ljspeech/wavs/LJ029-0160.wav|tests/data/ljspeech/wavs/LJ029-0160.npy +tests/data/ljspeech/wavs/LJ001-0186.wav|tests/data/ljspeech/wavs/LJ001-0186.npy +tests/data/ljspeech/wavs/LJ005-0018.wav|tests/data/ljspeech/wavs/LJ005-0018.npy +tests/data/ljspeech/wavs/LJ036-0051.wav|tests/data/ljspeech/wavs/LJ036-0051.npy +tests/data/ljspeech/wavs/LJ042-0156.wav|tests/data/ljspeech/wavs/LJ042-0156.npy +tests/data/ljspeech/wavs/LJ029-0030.wav|tests/data/ljspeech/wavs/LJ029-0030.npy +tests/data/ljspeech/wavs/LJ010-0028.wav|tests/data/ljspeech/wavs/LJ010-0028.npy +tests/data/ljspeech/wavs/LJ048-0120.wav|tests/data/ljspeech/wavs/LJ048-0120.npy +tests/data/ljspeech/wavs/LJ047-0249.wav|tests/data/ljspeech/wavs/LJ047-0249.npy +tests/data/ljspeech/wavs/LJ007-0087.wav|tests/data/ljspeech/wavs/LJ007-0087.npy +tests/data/ljspeech/wavs/LJ014-0054.wav|tests/data/ljspeech/wavs/LJ014-0054.npy +tests/data/ljspeech/wavs/LJ046-0201.wav|tests/data/ljspeech/wavs/LJ046-0201.npy +tests/data/ljspeech/wavs/LJ012-0103.wav|tests/data/ljspeech/wavs/LJ012-0103.npy +tests/data/ljspeech/wavs/LJ044-0057.wav|tests/data/ljspeech/wavs/LJ044-0057.npy +tests/data/ljspeech/wavs/LJ010-0049.wav|tests/data/ljspeech/wavs/LJ010-0049.npy +tests/data/ljspeech/wavs/LJ010-0048.wav|tests/data/ljspeech/wavs/LJ010-0048.npy +tests/data/ljspeech/wavs/LJ035-0077.wav|tests/data/ljspeech/wavs/LJ035-0077.npy +tests/data/ljspeech/wavs/LJ036-0062.wav|tests/data/ljspeech/wavs/LJ036-0062.npy +tests/data/ljspeech/wavs/LJ002-0297.wav|tests/data/ljspeech/wavs/LJ002-0297.npy +tests/data/ljspeech/wavs/LJ001-0176.wav|tests/data/ljspeech/wavs/LJ001-0176.npy +tests/data/ljspeech/wavs/LJ008-0119.wav|tests/data/ljspeech/wavs/LJ008-0119.npy +tests/data/ljspeech/wavs/LJ006-0072.wav|tests/data/ljspeech/wavs/LJ006-0072.npy +tests/data/ljspeech/wavs/LJ033-0143.wav|tests/data/ljspeech/wavs/LJ033-0143.npy +tests/data/ljspeech/wavs/LJ014-0075.wav|tests/data/ljspeech/wavs/LJ014-0075.npy +tests/data/ljspeech/wavs/LJ018-0243.wav|tests/data/ljspeech/wavs/LJ018-0243.npy +tests/data/ljspeech/wavs/LJ035-0210.wav|tests/data/ljspeech/wavs/LJ035-0210.npy +tests/data/ljspeech/wavs/LJ049-0087.wav|tests/data/ljspeech/wavs/LJ049-0087.npy +tests/data/ljspeech/wavs/LJ045-0219.wav|tests/data/ljspeech/wavs/LJ045-0219.npy +tests/data/ljspeech/wavs/LJ003-0006.wav|tests/data/ljspeech/wavs/LJ003-0006.npy +tests/data/ljspeech/wavs/LJ034-0004.wav|tests/data/ljspeech/wavs/LJ034-0004.npy +tests/data/ljspeech/wavs/LJ034-0181.wav|tests/data/ljspeech/wavs/LJ034-0181.npy +tests/data/ljspeech/wavs/LJ033-0009.wav|tests/data/ljspeech/wavs/LJ033-0009.npy +tests/data/ljspeech/wavs/LJ042-0131.wav|tests/data/ljspeech/wavs/LJ042-0131.npy +tests/data/ljspeech/wavs/LJ042-0130.wav|tests/data/ljspeech/wavs/LJ042-0130.npy +tests/data/ljspeech/wavs/LJ016-0185.wav|tests/data/ljspeech/wavs/LJ016-0185.npy +tests/data/ljspeech/wavs/LJ034-0152.wav|tests/data/ljspeech/wavs/LJ034-0152.npy +tests/data/ljspeech/wavs/LJ047-0167.wav|tests/data/ljspeech/wavs/LJ047-0167.npy +tests/data/ljspeech/wavs/LJ025-0111.wav|tests/data/ljspeech/wavs/LJ025-0111.npy +tests/data/ljspeech/wavs/LJ009-0120.wav|tests/data/ljspeech/wavs/LJ009-0120.npy +tests/data/ljspeech/wavs/LJ037-0072.wav|tests/data/ljspeech/wavs/LJ037-0072.npy +tests/data/ljspeech/wavs/LJ009-0276.wav|tests/data/ljspeech/wavs/LJ009-0276.npy +tests/data/ljspeech/wavs/LJ002-0269.wav|tests/data/ljspeech/wavs/LJ002-0269.npy +tests/data/ljspeech/wavs/LJ009-0266.wav|tests/data/ljspeech/wavs/LJ009-0266.npy +tests/data/ljspeech/wavs/LJ043-0153.wav|tests/data/ljspeech/wavs/LJ043-0153.npy +tests/data/ljspeech/wavs/LJ016-0411.wav|tests/data/ljspeech/wavs/LJ016-0411.npy +tests/data/ljspeech/wavs/LJ018-0229.wav|tests/data/ljspeech/wavs/LJ018-0229.npy +tests/data/ljspeech/wavs/LJ016-0171.wav|tests/data/ljspeech/wavs/LJ016-0171.npy +tests/data/ljspeech/wavs/LJ029-0035.wav|tests/data/ljspeech/wavs/LJ029-0035.npy +tests/data/ljspeech/wavs/LJ016-0054.wav|tests/data/ljspeech/wavs/LJ016-0054.npy +tests/data/ljspeech/wavs/LJ025-0003.wav|tests/data/ljspeech/wavs/LJ025-0003.npy +tests/data/ljspeech/wavs/LJ024-0046.wav|tests/data/ljspeech/wavs/LJ024-0046.npy +tests/data/ljspeech/wavs/LJ020-0084.wav|tests/data/ljspeech/wavs/LJ020-0084.npy +tests/data/ljspeech/wavs/LJ034-0211.wav|tests/data/ljspeech/wavs/LJ034-0211.npy +tests/data/ljspeech/wavs/LJ046-0049.wav|tests/data/ljspeech/wavs/LJ046-0049.npy +tests/data/ljspeech/wavs/LJ036-0143.wav|tests/data/ljspeech/wavs/LJ036-0143.npy +tests/data/ljspeech/wavs/LJ003-0027.wav|tests/data/ljspeech/wavs/LJ003-0027.npy +tests/data/ljspeech/wavs/LJ018-0161.wav|tests/data/ljspeech/wavs/LJ018-0161.npy +tests/data/ljspeech/wavs/LJ017-0010.wav|tests/data/ljspeech/wavs/LJ017-0010.npy +tests/data/ljspeech/wavs/LJ016-0430.wav|tests/data/ljspeech/wavs/LJ016-0430.npy +tests/data/ljspeech/wavs/LJ002-0134.wav|tests/data/ljspeech/wavs/LJ002-0134.npy +tests/data/ljspeech/wavs/LJ018-0194.wav|tests/data/ljspeech/wavs/LJ018-0194.npy +tests/data/ljspeech/wavs/LJ045-0197.wav|tests/data/ljspeech/wavs/LJ045-0197.npy +tests/data/ljspeech/wavs/LJ009-0172.wav|tests/data/ljspeech/wavs/LJ009-0172.npy +tests/data/ljspeech/wavs/LJ018-0170.wav|tests/data/ljspeech/wavs/LJ018-0170.npy +tests/data/ljspeech/wavs/LJ018-0085.wav|tests/data/ljspeech/wavs/LJ018-0085.npy +tests/data/ljspeech/wavs/LJ035-0019.wav|tests/data/ljspeech/wavs/LJ035-0019.npy +tests/data/ljspeech/wavs/LJ024-0115.wav|tests/data/ljspeech/wavs/LJ024-0115.npy +tests/data/ljspeech/wavs/LJ012-0277.wav|tests/data/ljspeech/wavs/LJ012-0277.npy +tests/data/ljspeech/wavs/LJ042-0205.wav|tests/data/ljspeech/wavs/LJ042-0205.npy +tests/data/ljspeech/wavs/LJ035-0128.wav|tests/data/ljspeech/wavs/LJ035-0128.npy +tests/data/ljspeech/wavs/LJ026-0099.wav|tests/data/ljspeech/wavs/LJ026-0099.npy +tests/data/ljspeech/wavs/LJ018-0041.wav|tests/data/ljspeech/wavs/LJ018-0041.npy +tests/data/ljspeech/wavs/LJ008-0245.wav|tests/data/ljspeech/wavs/LJ008-0245.npy +tests/data/ljspeech/wavs/LJ003-0130.wav|tests/data/ljspeech/wavs/LJ003-0130.npy +tests/data/ljspeech/wavs/LJ015-0171.wav|tests/data/ljspeech/wavs/LJ015-0171.npy +tests/data/ljspeech/wavs/LJ020-0047.wav|tests/data/ljspeech/wavs/LJ020-0047.npy +tests/data/ljspeech/wavs/LJ018-0078.wav|tests/data/ljspeech/wavs/LJ018-0078.npy +tests/data/ljspeech/wavs/LJ018-0266.wav|tests/data/ljspeech/wavs/LJ018-0266.npy +tests/data/ljspeech/wavs/LJ032-0165.wav|tests/data/ljspeech/wavs/LJ032-0165.npy +tests/data/ljspeech/wavs/LJ015-0272.wav|tests/data/ljspeech/wavs/LJ015-0272.npy +tests/data/ljspeech/wavs/LJ004-0238.wav|tests/data/ljspeech/wavs/LJ004-0238.npy +tests/data/ljspeech/wavs/LJ032-0004.wav|tests/data/ljspeech/wavs/LJ032-0004.npy +tests/data/ljspeech/wavs/LJ018-0038.wav|tests/data/ljspeech/wavs/LJ018-0038.npy +tests/data/ljspeech/wavs/LJ015-0160.wav|tests/data/ljspeech/wavs/LJ015-0160.npy +tests/data/ljspeech/wavs/LJ036-0091.wav|tests/data/ljspeech/wavs/LJ036-0091.npy +tests/data/ljspeech/wavs/LJ010-0093.wav|tests/data/ljspeech/wavs/LJ010-0093.npy +tests/data/ljspeech/wavs/LJ017-0221.wav|tests/data/ljspeech/wavs/LJ017-0221.npy +tests/data/ljspeech/wavs/LJ031-0217.wav|tests/data/ljspeech/wavs/LJ031-0217.npy +tests/data/ljspeech/wavs/LJ003-0150.wav|tests/data/ljspeech/wavs/LJ003-0150.npy +tests/data/ljspeech/wavs/LJ029-0068.wav|tests/data/ljspeech/wavs/LJ029-0068.npy +tests/data/ljspeech/wavs/LJ049-0094.wav|tests/data/ljspeech/wavs/LJ049-0094.npy +tests/data/ljspeech/wavs/LJ016-0282.wav|tests/data/ljspeech/wavs/LJ016-0282.npy +tests/data/ljspeech/wavs/LJ001-0075.wav|tests/data/ljspeech/wavs/LJ001-0075.npy +tests/data/ljspeech/wavs/LJ046-0058.wav|tests/data/ljspeech/wavs/LJ046-0058.npy +tests/data/ljspeech/wavs/LJ044-0080.wav|tests/data/ljspeech/wavs/LJ044-0080.npy +tests/data/ljspeech/wavs/LJ039-0021.wav|tests/data/ljspeech/wavs/LJ039-0021.npy +tests/data/ljspeech/wavs/LJ012-0065.wav|tests/data/ljspeech/wavs/LJ012-0065.npy +tests/data/ljspeech/wavs/LJ016-0443.wav|tests/data/ljspeech/wavs/LJ016-0443.npy +tests/data/ljspeech/wavs/LJ006-0118.wav|tests/data/ljspeech/wavs/LJ006-0118.npy +tests/data/ljspeech/wavs/LJ016-0316.wav|tests/data/ljspeech/wavs/LJ016-0316.npy +tests/data/ljspeech/wavs/LJ029-0144.wav|tests/data/ljspeech/wavs/LJ029-0144.npy +tests/data/ljspeech/wavs/LJ039-0218.wav|tests/data/ljspeech/wavs/LJ039-0218.npy +tests/data/ljspeech/wavs/LJ019-0097.wav|tests/data/ljspeech/wavs/LJ019-0097.npy +tests/data/ljspeech/wavs/LJ046-0248.wav|tests/data/ljspeech/wavs/LJ046-0248.npy +tests/data/ljspeech/wavs/LJ050-0194.wav|tests/data/ljspeech/wavs/LJ050-0194.npy +tests/data/ljspeech/wavs/LJ017-0059.wav|tests/data/ljspeech/wavs/LJ017-0059.npy +tests/data/ljspeech/wavs/LJ017-0166.wav|tests/data/ljspeech/wavs/LJ017-0166.npy +tests/data/ljspeech/wavs/LJ017-0270.wav|tests/data/ljspeech/wavs/LJ017-0270.npy +tests/data/ljspeech/wavs/LJ034-0053.wav|tests/data/ljspeech/wavs/LJ034-0053.npy +tests/data/ljspeech/wavs/LJ031-0161.wav|tests/data/ljspeech/wavs/LJ031-0161.npy +tests/data/ljspeech/wavs/LJ001-0168.wav|tests/data/ljspeech/wavs/LJ001-0168.npy +tests/data/ljspeech/wavs/LJ007-0166.wav|tests/data/ljspeech/wavs/LJ007-0166.npy +tests/data/ljspeech/wavs/LJ048-0214.wav|tests/data/ljspeech/wavs/LJ048-0214.npy +tests/data/ljspeech/wavs/LJ020-0052.wav|tests/data/ljspeech/wavs/LJ020-0052.npy +tests/data/ljspeech/wavs/LJ005-0095.wav|tests/data/ljspeech/wavs/LJ005-0095.npy +tests/data/ljspeech/wavs/LJ022-0007.wav|tests/data/ljspeech/wavs/LJ022-0007.npy +tests/data/ljspeech/wavs/LJ024-0049.wav|tests/data/ljspeech/wavs/LJ024-0049.npy +tests/data/ljspeech/wavs/LJ001-0121.wav|tests/data/ljspeech/wavs/LJ001-0121.npy +tests/data/ljspeech/wavs/LJ012-0044.wav|tests/data/ljspeech/wavs/LJ012-0044.npy +tests/data/ljspeech/wavs/LJ025-0158.wav|tests/data/ljspeech/wavs/LJ025-0158.npy +tests/data/ljspeech/wavs/LJ035-0146.wav|tests/data/ljspeech/wavs/LJ035-0146.npy +tests/data/ljspeech/wavs/LJ001-0065.wav|tests/data/ljspeech/wavs/LJ001-0065.npy +tests/data/ljspeech/wavs/LJ017-0075.wav|tests/data/ljspeech/wavs/LJ017-0075.npy +tests/data/ljspeech/wavs/LJ009-0023.wav|tests/data/ljspeech/wavs/LJ009-0023.npy +tests/data/ljspeech/wavs/LJ009-0195.wav|tests/data/ljspeech/wavs/LJ009-0195.npy +tests/data/ljspeech/wavs/LJ012-0043.wav|tests/data/ljspeech/wavs/LJ012-0043.npy +tests/data/ljspeech/wavs/LJ018-0143.wav|tests/data/ljspeech/wavs/LJ018-0143.npy +tests/data/ljspeech/wavs/LJ043-0022.wav|tests/data/ljspeech/wavs/LJ043-0022.npy +tests/data/ljspeech/wavs/LJ016-0008.wav|tests/data/ljspeech/wavs/LJ016-0008.npy +tests/data/ljspeech/wavs/LJ018-0141.wav|tests/data/ljspeech/wavs/LJ018-0141.npy +tests/data/ljspeech/wavs/LJ008-0010.wav|tests/data/ljspeech/wavs/LJ008-0010.npy +tests/data/ljspeech/wavs/LJ001-0049.wav|tests/data/ljspeech/wavs/LJ001-0049.npy +tests/data/ljspeech/wavs/LJ050-0260.wav|tests/data/ljspeech/wavs/LJ050-0260.npy +tests/data/ljspeech/wavs/LJ049-0054.wav|tests/data/ljspeech/wavs/LJ049-0054.npy +tests/data/ljspeech/wavs/LJ046-0169.wav|tests/data/ljspeech/wavs/LJ046-0169.npy +tests/data/ljspeech/wavs/LJ018-0179.wav|tests/data/ljspeech/wavs/LJ018-0179.npy +tests/data/ljspeech/wavs/LJ011-0224.wav|tests/data/ljspeech/wavs/LJ011-0224.npy +tests/data/ljspeech/wavs/LJ014-0252.wav|tests/data/ljspeech/wavs/LJ014-0252.npy +tests/data/ljspeech/wavs/LJ019-0052.wav|tests/data/ljspeech/wavs/LJ019-0052.npy +tests/data/ljspeech/wavs/LJ028-0287.wav|tests/data/ljspeech/wavs/LJ028-0287.npy +tests/data/ljspeech/wavs/LJ017-0231.wav|tests/data/ljspeech/wavs/LJ017-0231.npy +tests/data/ljspeech/wavs/LJ003-0051.wav|tests/data/ljspeech/wavs/LJ003-0051.npy +tests/data/ljspeech/wavs/LJ036-0158.wav|tests/data/ljspeech/wavs/LJ036-0158.npy +tests/data/ljspeech/wavs/LJ006-0180.wav|tests/data/ljspeech/wavs/LJ006-0180.npy +tests/data/ljspeech/wavs/LJ019-0287.wav|tests/data/ljspeech/wavs/LJ019-0287.npy +tests/data/ljspeech/wavs/LJ024-0105.wav|tests/data/ljspeech/wavs/LJ024-0105.npy +tests/data/ljspeech/wavs/LJ009-0157.wav|tests/data/ljspeech/wavs/LJ009-0157.npy +tests/data/ljspeech/wavs/LJ028-0409.wav|tests/data/ljspeech/wavs/LJ028-0409.npy +tests/data/ljspeech/wavs/LJ035-0132.wav|tests/data/ljspeech/wavs/LJ035-0132.npy +tests/data/ljspeech/wavs/LJ028-0435.wav|tests/data/ljspeech/wavs/LJ028-0435.npy +tests/data/ljspeech/wavs/LJ011-0032.wav|tests/data/ljspeech/wavs/LJ011-0032.npy +tests/data/ljspeech/wavs/LJ047-0215.wav|tests/data/ljspeech/wavs/LJ047-0215.npy +tests/data/ljspeech/wavs/LJ016-0016.wav|tests/data/ljspeech/wavs/LJ016-0016.npy +tests/data/ljspeech/wavs/LJ019-0060.wav|tests/data/ljspeech/wavs/LJ019-0060.npy +tests/data/ljspeech/wavs/LJ028-0293.wav|tests/data/ljspeech/wavs/LJ028-0293.npy +tests/data/ljspeech/wavs/LJ023-0105.wav|tests/data/ljspeech/wavs/LJ023-0105.npy +tests/data/ljspeech/wavs/LJ028-0513.wav|tests/data/ljspeech/wavs/LJ028-0513.npy +tests/data/ljspeech/wavs/LJ023-0072.wav|tests/data/ljspeech/wavs/LJ023-0072.npy +tests/data/ljspeech/wavs/LJ026-0003.wav|tests/data/ljspeech/wavs/LJ026-0003.npy +tests/data/ljspeech/wavs/LJ040-0189.wav|tests/data/ljspeech/wavs/LJ040-0189.npy +tests/data/ljspeech/wavs/LJ008-0101.wav|tests/data/ljspeech/wavs/LJ008-0101.npy +tests/data/ljspeech/wavs/LJ015-0147.wav|tests/data/ljspeech/wavs/LJ015-0147.npy +tests/data/ljspeech/wavs/LJ008-0032.wav|tests/data/ljspeech/wavs/LJ008-0032.npy +tests/data/ljspeech/wavs/LJ015-0033.wav|tests/data/ljspeech/wavs/LJ015-0033.npy +tests/data/ljspeech/wavs/LJ023-0117.wav|tests/data/ljspeech/wavs/LJ023-0117.npy +tests/data/ljspeech/wavs/LJ046-0210.wav|tests/data/ljspeech/wavs/LJ046-0210.npy +tests/data/ljspeech/wavs/LJ006-0136.wav|tests/data/ljspeech/wavs/LJ006-0136.npy +tests/data/ljspeech/wavs/LJ044-0167.wav|tests/data/ljspeech/wavs/LJ044-0167.npy +tests/data/ljspeech/wavs/LJ027-0154.wav|tests/data/ljspeech/wavs/LJ027-0154.npy +tests/data/ljspeech/wavs/LJ015-0025.wav|tests/data/ljspeech/wavs/LJ015-0025.npy +tests/data/ljspeech/wavs/LJ038-0052.wav|tests/data/ljspeech/wavs/LJ038-0052.npy +tests/data/ljspeech/wavs/LJ003-0199.wav|tests/data/ljspeech/wavs/LJ003-0199.npy +tests/data/ljspeech/wavs/LJ008-0027.wav|tests/data/ljspeech/wavs/LJ008-0027.npy +tests/data/ljspeech/wavs/LJ045-0222.wav|tests/data/ljspeech/wavs/LJ045-0222.npy +tests/data/ljspeech/wavs/LJ006-0255.wav|tests/data/ljspeech/wavs/LJ006-0255.npy +tests/data/ljspeech/wavs/LJ037-0217.wav|tests/data/ljspeech/wavs/LJ037-0217.npy +tests/data/ljspeech/wavs/LJ014-0076.wav|tests/data/ljspeech/wavs/LJ014-0076.npy +tests/data/ljspeech/wavs/LJ009-0125.wav|tests/data/ljspeech/wavs/LJ009-0125.npy +tests/data/ljspeech/wavs/LJ015-0187.wav|tests/data/ljspeech/wavs/LJ015-0187.npy +tests/data/ljspeech/wavs/LJ006-0239.wav|tests/data/ljspeech/wavs/LJ006-0239.npy +tests/data/ljspeech/wavs/LJ028-0068.wav|tests/data/ljspeech/wavs/LJ028-0068.npy +tests/data/ljspeech/wavs/LJ010-0180.wav|tests/data/ljspeech/wavs/LJ010-0180.npy +tests/data/ljspeech/wavs/LJ006-0003.wav|tests/data/ljspeech/wavs/LJ006-0003.npy +tests/data/ljspeech/wavs/LJ049-0109.wav|tests/data/ljspeech/wavs/LJ049-0109.npy +tests/data/ljspeech/wavs/LJ006-0283.wav|tests/data/ljspeech/wavs/LJ006-0283.npy +tests/data/ljspeech/wavs/LJ015-0237.wav|tests/data/ljspeech/wavs/LJ015-0237.npy +tests/data/ljspeech/wavs/LJ010-0100.wav|tests/data/ljspeech/wavs/LJ010-0100.npy +tests/data/ljspeech/wavs/LJ032-0180.wav|tests/data/ljspeech/wavs/LJ032-0180.npy +tests/data/ljspeech/wavs/LJ002-0320.wav|tests/data/ljspeech/wavs/LJ002-0320.npy +tests/data/ljspeech/wavs/LJ044-0171.wav|tests/data/ljspeech/wavs/LJ044-0171.npy +tests/data/ljspeech/wavs/LJ031-0154.wav|tests/data/ljspeech/wavs/LJ031-0154.npy +tests/data/ljspeech/wavs/LJ006-0008.wav|tests/data/ljspeech/wavs/LJ006-0008.npy +tests/data/ljspeech/wavs/LJ044-0207.wav|tests/data/ljspeech/wavs/LJ044-0207.npy +tests/data/ljspeech/wavs/LJ031-0180.wav|tests/data/ljspeech/wavs/LJ031-0180.npy +tests/data/ljspeech/wavs/LJ019-0003.wav|tests/data/ljspeech/wavs/LJ019-0003.npy +tests/data/ljspeech/wavs/LJ048-0176.wav|tests/data/ljspeech/wavs/LJ048-0176.npy +tests/data/ljspeech/wavs/LJ020-0020.wav|tests/data/ljspeech/wavs/LJ020-0020.npy +tests/data/ljspeech/wavs/LJ020-0011.wav|tests/data/ljspeech/wavs/LJ020-0011.npy +tests/data/ljspeech/wavs/LJ042-0129.wav|tests/data/ljspeech/wavs/LJ042-0129.npy +tests/data/ljspeech/wavs/LJ033-0022.wav|tests/data/ljspeech/wavs/LJ033-0022.npy +tests/data/ljspeech/wavs/LJ037-0058.wav|tests/data/ljspeech/wavs/LJ037-0058.npy +tests/data/ljspeech/wavs/LJ026-0064.wav|tests/data/ljspeech/wavs/LJ026-0064.npy +tests/data/ljspeech/wavs/LJ040-0238.wav|tests/data/ljspeech/wavs/LJ040-0238.npy +tests/data/ljspeech/wavs/LJ037-0073.wav|tests/data/ljspeech/wavs/LJ037-0073.npy +tests/data/ljspeech/wavs/LJ002-0154.wav|tests/data/ljspeech/wavs/LJ002-0154.npy +tests/data/ljspeech/wavs/LJ003-0171.wav|tests/data/ljspeech/wavs/LJ003-0171.npy +tests/data/ljspeech/wavs/LJ026-0112.wav|tests/data/ljspeech/wavs/LJ026-0112.npy +tests/data/ljspeech/wavs/LJ004-0140.wav|tests/data/ljspeech/wavs/LJ004-0140.npy +tests/data/ljspeech/wavs/LJ046-0226.wav|tests/data/ljspeech/wavs/LJ046-0226.npy +tests/data/ljspeech/wavs/LJ002-0219.wav|tests/data/ljspeech/wavs/LJ002-0219.npy +tests/data/ljspeech/wavs/LJ005-0194.wav|tests/data/ljspeech/wavs/LJ005-0194.npy +tests/data/ljspeech/wavs/LJ027-0105.wav|tests/data/ljspeech/wavs/LJ027-0105.npy +tests/data/ljspeech/wavs/LJ014-0329.wav|tests/data/ljspeech/wavs/LJ014-0329.npy +tests/data/ljspeech/wavs/LJ035-0110.wav|tests/data/ljspeech/wavs/LJ035-0110.npy +tests/data/ljspeech/wavs/LJ016-0258.wav|tests/data/ljspeech/wavs/LJ016-0258.npy +tests/data/ljspeech/wavs/LJ018-0060.wav|tests/data/ljspeech/wavs/LJ018-0060.npy +tests/data/ljspeech/wavs/LJ013-0107.wav|tests/data/ljspeech/wavs/LJ013-0107.npy +tests/data/ljspeech/wavs/LJ032-0211.wav|tests/data/ljspeech/wavs/LJ032-0211.npy +tests/data/ljspeech/wavs/LJ036-0009.wav|tests/data/ljspeech/wavs/LJ036-0009.npy +tests/data/ljspeech/wavs/LJ030-0054.wav|tests/data/ljspeech/wavs/LJ030-0054.npy +tests/data/ljspeech/wavs/LJ028-0159.wav|tests/data/ljspeech/wavs/LJ028-0159.npy +tests/data/ljspeech/wavs/LJ010-0313.wav|tests/data/ljspeech/wavs/LJ010-0313.npy +tests/data/ljspeech/wavs/LJ047-0063.wav|tests/data/ljspeech/wavs/LJ047-0063.npy +tests/data/ljspeech/wavs/LJ019-0281.wav|tests/data/ljspeech/wavs/LJ019-0281.npy +tests/data/ljspeech/wavs/LJ029-0171.wav|tests/data/ljspeech/wavs/LJ029-0171.npy +tests/data/ljspeech/wavs/LJ047-0233.wav|tests/data/ljspeech/wavs/LJ047-0233.npy +tests/data/ljspeech/wavs/LJ022-0158.wav|tests/data/ljspeech/wavs/LJ022-0158.npy +tests/data/ljspeech/wavs/LJ043-0127.wav|tests/data/ljspeech/wavs/LJ043-0127.npy +tests/data/ljspeech/wavs/LJ040-0046.wav|tests/data/ljspeech/wavs/LJ040-0046.npy +tests/data/ljspeech/wavs/LJ045-0244.wav|tests/data/ljspeech/wavs/LJ045-0244.npy +tests/data/ljspeech/wavs/LJ040-0137.wav|tests/data/ljspeech/wavs/LJ040-0137.npy +tests/data/ljspeech/wavs/LJ040-0218.wav|tests/data/ljspeech/wavs/LJ040-0218.npy +tests/data/ljspeech/wavs/LJ021-0205.wav|tests/data/ljspeech/wavs/LJ021-0205.npy +tests/data/ljspeech/wavs/LJ010-0102.wav|tests/data/ljspeech/wavs/LJ010-0102.npy +tests/data/ljspeech/wavs/LJ019-0313.wav|tests/data/ljspeech/wavs/LJ019-0313.npy +tests/data/ljspeech/wavs/LJ050-0129.wav|tests/data/ljspeech/wavs/LJ050-0129.npy +tests/data/ljspeech/wavs/LJ028-0140.wav|tests/data/ljspeech/wavs/LJ028-0140.npy +tests/data/ljspeech/wavs/LJ029-0146.wav|tests/data/ljspeech/wavs/LJ029-0146.npy +tests/data/ljspeech/wavs/LJ022-0141.wav|tests/data/ljspeech/wavs/LJ022-0141.npy +tests/data/ljspeech/wavs/LJ005-0163.wav|tests/data/ljspeech/wavs/LJ005-0163.npy +tests/data/ljspeech/wavs/LJ010-0197.wav|tests/data/ljspeech/wavs/LJ010-0197.npy +tests/data/ljspeech/wavs/LJ021-0125.wav|tests/data/ljspeech/wavs/LJ021-0125.npy +tests/data/ljspeech/wavs/LJ006-0218.wav|tests/data/ljspeech/wavs/LJ006-0218.npy +tests/data/ljspeech/wavs/LJ013-0252.wav|tests/data/ljspeech/wavs/LJ013-0252.npy +tests/data/ljspeech/wavs/LJ006-0052.wav|tests/data/ljspeech/wavs/LJ006-0052.npy +tests/data/ljspeech/wavs/LJ043-0181.wav|tests/data/ljspeech/wavs/LJ043-0181.npy +tests/data/ljspeech/wavs/LJ005-0180.wav|tests/data/ljspeech/wavs/LJ005-0180.npy +tests/data/ljspeech/wavs/LJ009-0163.wav|tests/data/ljspeech/wavs/LJ009-0163.npy +tests/data/ljspeech/wavs/LJ050-0020.wav|tests/data/ljspeech/wavs/LJ050-0020.npy +tests/data/ljspeech/wavs/LJ028-0150.wav|tests/data/ljspeech/wavs/LJ028-0150.npy +tests/data/ljspeech/wavs/LJ002-0145.wav|tests/data/ljspeech/wavs/LJ002-0145.npy +tests/data/ljspeech/wavs/LJ028-0421.wav|tests/data/ljspeech/wavs/LJ028-0421.npy +tests/data/ljspeech/wavs/LJ009-0277.wav|tests/data/ljspeech/wavs/LJ009-0277.npy +tests/data/ljspeech/wavs/LJ018-0236.wav|tests/data/ljspeech/wavs/LJ018-0236.npy +tests/data/ljspeech/wavs/LJ011-0019.wav|tests/data/ljspeech/wavs/LJ011-0019.npy +tests/data/ljspeech/wavs/LJ029-0195.wav|tests/data/ljspeech/wavs/LJ029-0195.npy +tests/data/ljspeech/wavs/LJ040-0192.wav|tests/data/ljspeech/wavs/LJ040-0192.npy +tests/data/ljspeech/wavs/LJ047-0014.wav|tests/data/ljspeech/wavs/LJ047-0014.npy +tests/data/ljspeech/wavs/LJ042-0054.wav|tests/data/ljspeech/wavs/LJ042-0054.npy +tests/data/ljspeech/wavs/LJ023-0138.wav|tests/data/ljspeech/wavs/LJ023-0138.npy +tests/data/ljspeech/wavs/LJ043-0160.wav|tests/data/ljspeech/wavs/LJ043-0160.npy +tests/data/ljspeech/wavs/LJ046-0048.wav|tests/data/ljspeech/wavs/LJ046-0048.npy +tests/data/ljspeech/wavs/LJ002-0265.wav|tests/data/ljspeech/wavs/LJ002-0265.npy +tests/data/ljspeech/wavs/LJ045-0208.wav|tests/data/ljspeech/wavs/LJ045-0208.npy +tests/data/ljspeech/wavs/LJ024-0009.wav|tests/data/ljspeech/wavs/LJ024-0009.npy +tests/data/ljspeech/wavs/LJ021-0150.wav|tests/data/ljspeech/wavs/LJ021-0150.npy +tests/data/ljspeech/wavs/LJ011-0117.wav|tests/data/ljspeech/wavs/LJ011-0117.npy +tests/data/ljspeech/wavs/LJ006-0124.wav|tests/data/ljspeech/wavs/LJ006-0124.npy +tests/data/ljspeech/wavs/LJ033-0194.wav|tests/data/ljspeech/wavs/LJ033-0194.npy +tests/data/ljspeech/wavs/LJ010-0022.wav|tests/data/ljspeech/wavs/LJ010-0022.npy +tests/data/ljspeech/wavs/LJ009-0093.wav|tests/data/ljspeech/wavs/LJ009-0093.npy +tests/data/ljspeech/wavs/LJ028-0379.wav|tests/data/ljspeech/wavs/LJ028-0379.npy +tests/data/ljspeech/wavs/LJ005-0270.wav|tests/data/ljspeech/wavs/LJ005-0270.npy +tests/data/ljspeech/wavs/LJ016-0084.wav|tests/data/ljspeech/wavs/LJ016-0084.npy +tests/data/ljspeech/wavs/LJ007-0211.wav|tests/data/ljspeech/wavs/LJ007-0211.npy +tests/data/ljspeech/wavs/LJ024-0014.wav|tests/data/ljspeech/wavs/LJ024-0014.npy +tests/data/ljspeech/wavs/LJ005-0238.wav|tests/data/ljspeech/wavs/LJ005-0238.npy +tests/data/ljspeech/wavs/LJ037-0128.wav|tests/data/ljspeech/wavs/LJ037-0128.npy +tests/data/ljspeech/wavs/LJ007-0023.wav|tests/data/ljspeech/wavs/LJ007-0023.npy +tests/data/ljspeech/wavs/LJ035-0120.wav|tests/data/ljspeech/wavs/LJ035-0120.npy +tests/data/ljspeech/wavs/LJ010-0308.wav|tests/data/ljspeech/wavs/LJ010-0308.npy +tests/data/ljspeech/wavs/LJ047-0207.wav|tests/data/ljspeech/wavs/LJ047-0207.npy +tests/data/ljspeech/wavs/LJ009-0094.wav|tests/data/ljspeech/wavs/LJ009-0094.npy +tests/data/ljspeech/wavs/LJ010-0189.wav|tests/data/ljspeech/wavs/LJ010-0189.npy +tests/data/ljspeech/wavs/LJ002-0326.wav|tests/data/ljspeech/wavs/LJ002-0326.npy +tests/data/ljspeech/wavs/LJ046-0187.wav|tests/data/ljspeech/wavs/LJ046-0187.npy +tests/data/ljspeech/wavs/LJ018-0087.wav|tests/data/ljspeech/wavs/LJ018-0087.npy +tests/data/ljspeech/wavs/LJ008-0016.wav|tests/data/ljspeech/wavs/LJ008-0016.npy +tests/data/ljspeech/wavs/LJ047-0031.wav|tests/data/ljspeech/wavs/LJ047-0031.npy +tests/data/ljspeech/wavs/LJ042-0159.wav|tests/data/ljspeech/wavs/LJ042-0159.npy +tests/data/ljspeech/wavs/LJ025-0011.wav|tests/data/ljspeech/wavs/LJ025-0011.npy +tests/data/ljspeech/wavs/LJ026-0139.wav|tests/data/ljspeech/wavs/LJ026-0139.npy +tests/data/ljspeech/wavs/LJ050-0070.wav|tests/data/ljspeech/wavs/LJ050-0070.npy +tests/data/ljspeech/wavs/LJ049-0042.wav|tests/data/ljspeech/wavs/LJ049-0042.npy +tests/data/ljspeech/wavs/LJ032-0072.wav|tests/data/ljspeech/wavs/LJ032-0072.npy +tests/data/ljspeech/wavs/LJ018-0118.wav|tests/data/ljspeech/wavs/LJ018-0118.npy +tests/data/ljspeech/wavs/LJ042-0187.wav|tests/data/ljspeech/wavs/LJ042-0187.npy +tests/data/ljspeech/wavs/LJ028-0057.wav|tests/data/ljspeech/wavs/LJ028-0057.npy +tests/data/ljspeech/wavs/LJ042-0181.wav|tests/data/ljspeech/wavs/LJ042-0181.npy +tests/data/ljspeech/wavs/LJ034-0184.wav|tests/data/ljspeech/wavs/LJ034-0184.npy +tests/data/ljspeech/wavs/LJ008-0043.wav|tests/data/ljspeech/wavs/LJ008-0043.npy +tests/data/ljspeech/wavs/LJ017-0176.wav|tests/data/ljspeech/wavs/LJ017-0176.npy +tests/data/ljspeech/wavs/LJ015-0121.wav|tests/data/ljspeech/wavs/LJ015-0121.npy +tests/data/ljspeech/wavs/LJ001-0012.wav|tests/data/ljspeech/wavs/LJ001-0012.npy +tests/data/ljspeech/wavs/LJ030-0209.wav|tests/data/ljspeech/wavs/LJ030-0209.npy +tests/data/ljspeech/wavs/LJ007-0143.wav|tests/data/ljspeech/wavs/LJ007-0143.npy +tests/data/ljspeech/wavs/LJ033-0103.wav|tests/data/ljspeech/wavs/LJ033-0103.npy +tests/data/ljspeech/wavs/LJ048-0239.wav|tests/data/ljspeech/wavs/LJ048-0239.npy +tests/data/ljspeech/wavs/LJ028-0036.wav|tests/data/ljspeech/wavs/LJ028-0036.npy +tests/data/ljspeech/wavs/LJ049-0034.wav|tests/data/ljspeech/wavs/LJ049-0034.npy +tests/data/ljspeech/wavs/LJ024-0041.wav|tests/data/ljspeech/wavs/LJ024-0041.npy +tests/data/ljspeech/wavs/LJ018-0035.wav|tests/data/ljspeech/wavs/LJ018-0035.npy +tests/data/ljspeech/wavs/LJ017-0026.wav|tests/data/ljspeech/wavs/LJ017-0026.npy +tests/data/ljspeech/wavs/LJ016-0266.wav|tests/data/ljspeech/wavs/LJ016-0266.npy +tests/data/ljspeech/wavs/LJ015-0244.wav|tests/data/ljspeech/wavs/LJ015-0244.npy +tests/data/ljspeech/wavs/LJ037-0225.wav|tests/data/ljspeech/wavs/LJ037-0225.npy +tests/data/ljspeech/wavs/LJ003-0099.wav|tests/data/ljspeech/wavs/LJ003-0099.npy +tests/data/ljspeech/wavs/LJ009-0173.wav|tests/data/ljspeech/wavs/LJ009-0173.npy +tests/data/ljspeech/wavs/LJ036-0201.wav|tests/data/ljspeech/wavs/LJ036-0201.npy +tests/data/ljspeech/wavs/LJ014-0001.wav|tests/data/ljspeech/wavs/LJ014-0001.npy +tests/data/ljspeech/wavs/LJ013-0001.wav|tests/data/ljspeech/wavs/LJ013-0001.npy +tests/data/ljspeech/wavs/LJ037-0242.wav|tests/data/ljspeech/wavs/LJ037-0242.npy +tests/data/ljspeech/wavs/LJ044-0185.wav|tests/data/ljspeech/wavs/LJ044-0185.npy +tests/data/ljspeech/wavs/LJ039-0112.wav|tests/data/ljspeech/wavs/LJ039-0112.npy +tests/data/ljspeech/wavs/LJ008-0149.wav|tests/data/ljspeech/wavs/LJ008-0149.npy +tests/data/ljspeech/wavs/LJ042-0045.wav|tests/data/ljspeech/wavs/LJ042-0045.npy +tests/data/ljspeech/wavs/LJ019-0333.wav|tests/data/ljspeech/wavs/LJ019-0333.npy +tests/data/ljspeech/wavs/LJ026-0093.wav|tests/data/ljspeech/wavs/LJ026-0093.npy +tests/data/ljspeech/wavs/LJ031-0011.wav|tests/data/ljspeech/wavs/LJ031-0011.npy +tests/data/ljspeech/wavs/LJ019-0007.wav|tests/data/ljspeech/wavs/LJ019-0007.npy +tests/data/ljspeech/wavs/LJ044-0090.wav|tests/data/ljspeech/wavs/LJ044-0090.npy +tests/data/ljspeech/wavs/LJ006-0270.wav|tests/data/ljspeech/wavs/LJ006-0270.npy +tests/data/ljspeech/wavs/LJ039-0114.wav|tests/data/ljspeech/wavs/LJ039-0114.npy +tests/data/ljspeech/wavs/LJ012-0262.wav|tests/data/ljspeech/wavs/LJ012-0262.npy +tests/data/ljspeech/wavs/LJ012-0061.wav|tests/data/ljspeech/wavs/LJ012-0061.npy +tests/data/ljspeech/wavs/LJ008-0267.wav|tests/data/ljspeech/wavs/LJ008-0267.npy +tests/data/ljspeech/wavs/LJ016-0382.wav|tests/data/ljspeech/wavs/LJ016-0382.npy +tests/data/ljspeech/wavs/LJ019-0367.wav|tests/data/ljspeech/wavs/LJ019-0367.npy +tests/data/ljspeech/wavs/LJ012-0004.wav|tests/data/ljspeech/wavs/LJ012-0004.npy +tests/data/ljspeech/wavs/LJ005-0064.wav|tests/data/ljspeech/wavs/LJ005-0064.npy +tests/data/ljspeech/wavs/LJ012-0180.wav|tests/data/ljspeech/wavs/LJ012-0180.npy +tests/data/ljspeech/wavs/LJ037-0017.wav|tests/data/ljspeech/wavs/LJ037-0017.npy +tests/data/ljspeech/wavs/LJ011-0198.wav|tests/data/ljspeech/wavs/LJ011-0198.npy +tests/data/ljspeech/wavs/LJ027-0086.wav|tests/data/ljspeech/wavs/LJ027-0086.npy +tests/data/ljspeech/wavs/LJ035-0155.wav|tests/data/ljspeech/wavs/LJ035-0155.npy +tests/data/ljspeech/wavs/LJ012-0102.wav|tests/data/ljspeech/wavs/LJ012-0102.npy +tests/data/ljspeech/wavs/LJ006-0155.wav|tests/data/ljspeech/wavs/LJ006-0155.npy +tests/data/ljspeech/wavs/LJ046-0095.wav|tests/data/ljspeech/wavs/LJ046-0095.npy +tests/data/ljspeech/wavs/LJ049-0138.wav|tests/data/ljspeech/wavs/LJ049-0138.npy +tests/data/ljspeech/wavs/LJ034-0210.wav|tests/data/ljspeech/wavs/LJ034-0210.npy +tests/data/ljspeech/wavs/LJ042-0089.wav|tests/data/ljspeech/wavs/LJ042-0089.npy +tests/data/ljspeech/wavs/LJ007-0092.wav|tests/data/ljspeech/wavs/LJ007-0092.npy +tests/data/ljspeech/wavs/LJ047-0134.wav|tests/data/ljspeech/wavs/LJ047-0134.npy +tests/data/ljspeech/wavs/LJ041-0105.wav|tests/data/ljspeech/wavs/LJ041-0105.npy +tests/data/ljspeech/wavs/LJ008-0106.wav|tests/data/ljspeech/wavs/LJ008-0106.npy +tests/data/ljspeech/wavs/LJ022-0172.wav|tests/data/ljspeech/wavs/LJ022-0172.npy +tests/data/ljspeech/wavs/LJ014-0150.wav|tests/data/ljspeech/wavs/LJ014-0150.npy +tests/data/ljspeech/wavs/LJ022-0188.wav|tests/data/ljspeech/wavs/LJ022-0188.npy +tests/data/ljspeech/wavs/LJ008-0083.wav|tests/data/ljspeech/wavs/LJ008-0083.npy +tests/data/ljspeech/wavs/LJ048-0144.wav|tests/data/ljspeech/wavs/LJ048-0144.npy +tests/data/ljspeech/wavs/LJ045-0040.wav|tests/data/ljspeech/wavs/LJ045-0040.npy +tests/data/ljspeech/wavs/LJ006-0289.wav|tests/data/ljspeech/wavs/LJ006-0289.npy +tests/data/ljspeech/wavs/LJ030-0087.wav|tests/data/ljspeech/wavs/LJ030-0087.npy +tests/data/ljspeech/wavs/LJ033-0089.wav|tests/data/ljspeech/wavs/LJ033-0089.npy +tests/data/ljspeech/wavs/LJ006-0258.wav|tests/data/ljspeech/wavs/LJ006-0258.npy +tests/data/ljspeech/wavs/LJ050-0091.wav|tests/data/ljspeech/wavs/LJ050-0091.npy +tests/data/ljspeech/wavs/LJ043-0099.wav|tests/data/ljspeech/wavs/LJ043-0099.npy +tests/data/ljspeech/wavs/LJ038-0171.wav|tests/data/ljspeech/wavs/LJ038-0171.npy +tests/data/ljspeech/wavs/LJ028-0289.wav|tests/data/ljspeech/wavs/LJ028-0289.npy +tests/data/ljspeech/wavs/LJ008-0300.wav|tests/data/ljspeech/wavs/LJ008-0300.npy +tests/data/ljspeech/wavs/LJ019-0399.wav|tests/data/ljspeech/wavs/LJ019-0399.npy +tests/data/ljspeech/wavs/LJ034-0166.wav|tests/data/ljspeech/wavs/LJ034-0166.npy +tests/data/ljspeech/wavs/LJ026-0040.wav|tests/data/ljspeech/wavs/LJ026-0040.npy +tests/data/ljspeech/wavs/LJ028-0111.wav|tests/data/ljspeech/wavs/LJ028-0111.npy +tests/data/ljspeech/wavs/LJ014-0268.wav|tests/data/ljspeech/wavs/LJ014-0268.npy +tests/data/ljspeech/wavs/LJ003-0260.wav|tests/data/ljspeech/wavs/LJ003-0260.npy +tests/data/ljspeech/wavs/LJ032-0133.wav|tests/data/ljspeech/wavs/LJ032-0133.npy +tests/data/ljspeech/wavs/LJ009-0063.wav|tests/data/ljspeech/wavs/LJ009-0063.npy +tests/data/ljspeech/wavs/LJ047-0212.wav|tests/data/ljspeech/wavs/LJ047-0212.npy +tests/data/ljspeech/wavs/LJ011-0180.wav|tests/data/ljspeech/wavs/LJ011-0180.npy +tests/data/ljspeech/wavs/LJ011-0142.wav|tests/data/ljspeech/wavs/LJ011-0142.npy +tests/data/ljspeech/wavs/LJ037-0205.wav|tests/data/ljspeech/wavs/LJ037-0205.npy +tests/data/ljspeech/wavs/LJ037-0201.wav|tests/data/ljspeech/wavs/LJ037-0201.npy +tests/data/ljspeech/wavs/LJ049-0113.wav|tests/data/ljspeech/wavs/LJ049-0113.npy +tests/data/ljspeech/wavs/LJ050-0055.wav|tests/data/ljspeech/wavs/LJ050-0055.npy +tests/data/ljspeech/wavs/LJ038-0139.wav|tests/data/ljspeech/wavs/LJ038-0139.npy +tests/data/ljspeech/wavs/LJ050-0028.wav|tests/data/ljspeech/wavs/LJ050-0028.npy +tests/data/ljspeech/wavs/LJ015-0241.wav|tests/data/ljspeech/wavs/LJ015-0241.npy +tests/data/ljspeech/wavs/LJ048-0208.wav|tests/data/ljspeech/wavs/LJ048-0208.npy +tests/data/ljspeech/wavs/LJ015-0059.wav|tests/data/ljspeech/wavs/LJ015-0059.npy +tests/data/ljspeech/wavs/LJ018-0356.wav|tests/data/ljspeech/wavs/LJ018-0356.npy +tests/data/ljspeech/wavs/LJ015-0112.wav|tests/data/ljspeech/wavs/LJ015-0112.npy +tests/data/ljspeech/wavs/LJ035-0202.wav|tests/data/ljspeech/wavs/LJ035-0202.npy +tests/data/ljspeech/wavs/LJ030-0108.wav|tests/data/ljspeech/wavs/LJ030-0108.npy +tests/data/ljspeech/wavs/LJ008-0240.wav|tests/data/ljspeech/wavs/LJ008-0240.npy +tests/data/ljspeech/wavs/LJ015-0118.wav|tests/data/ljspeech/wavs/LJ015-0118.npy +tests/data/ljspeech/wavs/LJ003-0105.wav|tests/data/ljspeech/wavs/LJ003-0105.npy +tests/data/ljspeech/wavs/LJ033-0098.wav|tests/data/ljspeech/wavs/LJ033-0098.npy +tests/data/ljspeech/wavs/LJ014-0328.wav|tests/data/ljspeech/wavs/LJ014-0328.npy +tests/data/ljspeech/wavs/LJ045-0051.wav|tests/data/ljspeech/wavs/LJ045-0051.npy +tests/data/ljspeech/wavs/LJ006-0190.wav|tests/data/ljspeech/wavs/LJ006-0190.npy +tests/data/ljspeech/wavs/LJ014-0170.wav|tests/data/ljspeech/wavs/LJ014-0170.npy +tests/data/ljspeech/wavs/LJ003-0179.wav|tests/data/ljspeech/wavs/LJ003-0179.npy +tests/data/ljspeech/wavs/LJ041-0083.wav|tests/data/ljspeech/wavs/LJ041-0083.npy +tests/data/ljspeech/wavs/LJ045-0101.wav|tests/data/ljspeech/wavs/LJ045-0101.npy +tests/data/ljspeech/wavs/LJ006-0217.wav|tests/data/ljspeech/wavs/LJ006-0217.npy +tests/data/ljspeech/wavs/LJ020-0019.wav|tests/data/ljspeech/wavs/LJ020-0019.npy +tests/data/ljspeech/wavs/LJ029-0027.wav|tests/data/ljspeech/wavs/LJ029-0027.npy +tests/data/ljspeech/wavs/LJ007-0219.wav|tests/data/ljspeech/wavs/LJ007-0219.npy +tests/data/ljspeech/wavs/LJ035-0184.wav|tests/data/ljspeech/wavs/LJ035-0184.npy +tests/data/ljspeech/wavs/LJ015-0207.wav|tests/data/ljspeech/wavs/LJ015-0207.npy +tests/data/ljspeech/wavs/LJ006-0172.wav|tests/data/ljspeech/wavs/LJ006-0172.npy +tests/data/ljspeech/wavs/LJ018-0054.wav|tests/data/ljspeech/wavs/LJ018-0054.npy +tests/data/ljspeech/wavs/LJ032-0245.wav|tests/data/ljspeech/wavs/LJ032-0245.npy +tests/data/ljspeech/wavs/LJ037-0187.wav|tests/data/ljspeech/wavs/LJ037-0187.npy +tests/data/ljspeech/wavs/LJ035-0183.wav|tests/data/ljspeech/wavs/LJ035-0183.npy +tests/data/ljspeech/wavs/LJ045-0016.wav|tests/data/ljspeech/wavs/LJ045-0016.npy +tests/data/ljspeech/wavs/LJ038-0180.wav|tests/data/ljspeech/wavs/LJ038-0180.npy +tests/data/ljspeech/wavs/LJ046-0173.wav|tests/data/ljspeech/wavs/LJ046-0173.npy +tests/data/ljspeech/wavs/LJ024-0054.wav|tests/data/ljspeech/wavs/LJ024-0054.npy +tests/data/ljspeech/wavs/LJ016-0351.wav|tests/data/ljspeech/wavs/LJ016-0351.npy +tests/data/ljspeech/wavs/LJ017-0184.wav|tests/data/ljspeech/wavs/LJ017-0184.npy +tests/data/ljspeech/wavs/LJ028-0116.wav|tests/data/ljspeech/wavs/LJ028-0116.npy +tests/data/ljspeech/wavs/LJ018-0137.wav|tests/data/ljspeech/wavs/LJ018-0137.npy +tests/data/ljspeech/wavs/LJ027-0115.wav|tests/data/ljspeech/wavs/LJ027-0115.npy +tests/data/ljspeech/wavs/LJ032-0176.wav|tests/data/ljspeech/wavs/LJ032-0176.npy +tests/data/ljspeech/wavs/LJ031-0036.wav|tests/data/ljspeech/wavs/LJ031-0036.npy +tests/data/ljspeech/wavs/LJ017-0041.wav|tests/data/ljspeech/wavs/LJ017-0041.npy +tests/data/ljspeech/wavs/LJ017-0188.wav|tests/data/ljspeech/wavs/LJ017-0188.npy +tests/data/ljspeech/wavs/LJ032-0215.wav|tests/data/ljspeech/wavs/LJ032-0215.npy +tests/data/ljspeech/wavs/LJ017-0047.wav|tests/data/ljspeech/wavs/LJ017-0047.npy +tests/data/ljspeech/wavs/LJ037-0102.wav|tests/data/ljspeech/wavs/LJ037-0102.npy +tests/data/ljspeech/wavs/LJ032-0208.wav|tests/data/ljspeech/wavs/LJ032-0208.npy +tests/data/ljspeech/wavs/LJ017-0196.wav|tests/data/ljspeech/wavs/LJ017-0196.npy +tests/data/ljspeech/wavs/LJ018-0050.wav|tests/data/ljspeech/wavs/LJ018-0050.npy +tests/data/ljspeech/wavs/LJ003-0023.wav|tests/data/ljspeech/wavs/LJ003-0023.npy +tests/data/ljspeech/wavs/LJ014-0091.wav|tests/data/ljspeech/wavs/LJ014-0091.npy +tests/data/ljspeech/wavs/LJ014-0152.wav|tests/data/ljspeech/wavs/LJ014-0152.npy +tests/data/ljspeech/wavs/LJ017-0162.wav|tests/data/ljspeech/wavs/LJ017-0162.npy +tests/data/ljspeech/wavs/LJ018-0096.wav|tests/data/ljspeech/wavs/LJ018-0096.npy +tests/data/ljspeech/wavs/LJ030-0200.wav|tests/data/ljspeech/wavs/LJ030-0200.npy +tests/data/ljspeech/wavs/LJ004-0029.wav|tests/data/ljspeech/wavs/LJ004-0029.npy +tests/data/ljspeech/wavs/LJ018-0185.wav|tests/data/ljspeech/wavs/LJ018-0185.npy +tests/data/ljspeech/wavs/LJ009-0213.wav|tests/data/ljspeech/wavs/LJ009-0213.npy +tests/data/ljspeech/wavs/LJ014-0023.wav|tests/data/ljspeech/wavs/LJ014-0023.npy +tests/data/ljspeech/wavs/LJ044-0022.wav|tests/data/ljspeech/wavs/LJ044-0022.npy +tests/data/ljspeech/wavs/LJ016-0206.wav|tests/data/ljspeech/wavs/LJ016-0206.npy +tests/data/ljspeech/wavs/LJ047-0006.wav|tests/data/ljspeech/wavs/LJ047-0006.npy +tests/data/ljspeech/wavs/LJ005-0287.wav|tests/data/ljspeech/wavs/LJ005-0287.npy +tests/data/ljspeech/wavs/LJ027-0135.wav|tests/data/ljspeech/wavs/LJ027-0135.npy +tests/data/ljspeech/wavs/LJ012-0046.wav|tests/data/ljspeech/wavs/LJ012-0046.npy +tests/data/ljspeech/wavs/LJ040-0232.wav|tests/data/ljspeech/wavs/LJ040-0232.npy +tests/data/ljspeech/wavs/LJ002-0307.wav|tests/data/ljspeech/wavs/LJ002-0307.npy +tests/data/ljspeech/wavs/LJ012-0070.wav|tests/data/ljspeech/wavs/LJ012-0070.npy +tests/data/ljspeech/wavs/LJ039-0045.wav|tests/data/ljspeech/wavs/LJ039-0045.npy +tests/data/ljspeech/wavs/LJ047-0007.wav|tests/data/ljspeech/wavs/LJ047-0007.npy +tests/data/ljspeech/wavs/LJ019-0077.wav|tests/data/ljspeech/wavs/LJ019-0077.npy +tests/data/ljspeech/wavs/LJ005-0021.wav|tests/data/ljspeech/wavs/LJ005-0021.npy +tests/data/ljspeech/wavs/LJ011-0268.wav|tests/data/ljspeech/wavs/LJ011-0268.npy +tests/data/ljspeech/wavs/LJ034-0075.wav|tests/data/ljspeech/wavs/LJ034-0075.npy +tests/data/ljspeech/wavs/LJ014-0013.wav|tests/data/ljspeech/wavs/LJ014-0013.npy +tests/data/ljspeech/wavs/LJ031-0112.wav|tests/data/ljspeech/wavs/LJ031-0112.npy +tests/data/ljspeech/wavs/LJ010-0029.wav|tests/data/ljspeech/wavs/LJ010-0029.npy +tests/data/ljspeech/wavs/LJ047-0171.wav|tests/data/ljspeech/wavs/LJ047-0171.npy +tests/data/ljspeech/wavs/LJ012-0029.wav|tests/data/ljspeech/wavs/LJ012-0029.npy +tests/data/ljspeech/wavs/LJ049-0197.wav|tests/data/ljspeech/wavs/LJ049-0197.npy +tests/data/ljspeech/wavs/LJ016-0061.wav|tests/data/ljspeech/wavs/LJ016-0061.npy +tests/data/ljspeech/wavs/LJ021-0104.wav|tests/data/ljspeech/wavs/LJ021-0104.npy +tests/data/ljspeech/wavs/LJ030-0167.wav|tests/data/ljspeech/wavs/LJ030-0167.npy +tests/data/ljspeech/wavs/LJ030-0015.wav|tests/data/ljspeech/wavs/LJ030-0015.npy +tests/data/ljspeech/wavs/LJ012-0080.wav|tests/data/ljspeech/wavs/LJ012-0080.npy +tests/data/ljspeech/wavs/LJ028-0383.wav|tests/data/ljspeech/wavs/LJ028-0383.npy +tests/data/ljspeech/wavs/LJ047-0159.wav|tests/data/ljspeech/wavs/LJ047-0159.npy +tests/data/ljspeech/wavs/LJ039-0211.wav|tests/data/ljspeech/wavs/LJ039-0211.npy +tests/data/ljspeech/wavs/LJ016-0124.wav|tests/data/ljspeech/wavs/LJ016-0124.npy +tests/data/ljspeech/wavs/LJ027-0130.wav|tests/data/ljspeech/wavs/LJ027-0130.npy +tests/data/ljspeech/wavs/LJ038-0229.wav|tests/data/ljspeech/wavs/LJ038-0229.npy +tests/data/ljspeech/wavs/LJ032-0021.wav|tests/data/ljspeech/wavs/LJ032-0021.npy +tests/data/ljspeech/wavs/LJ032-0049.wav|tests/data/ljspeech/wavs/LJ032-0049.npy +tests/data/ljspeech/wavs/LJ031-0137.wav|tests/data/ljspeech/wavs/LJ031-0137.npy +tests/data/ljspeech/wavs/LJ046-0117.wav|tests/data/ljspeech/wavs/LJ046-0117.npy +tests/data/ljspeech/wavs/LJ021-0175.wav|tests/data/ljspeech/wavs/LJ021-0175.npy +tests/data/ljspeech/wavs/LJ035-0160.wav|tests/data/ljspeech/wavs/LJ035-0160.npy +tests/data/ljspeech/wavs/LJ044-0165.wav|tests/data/ljspeech/wavs/LJ044-0165.npy +tests/data/ljspeech/wavs/LJ012-0150.wav|tests/data/ljspeech/wavs/LJ012-0150.npy +tests/data/ljspeech/wavs/LJ044-0182.wav|tests/data/ljspeech/wavs/LJ044-0182.npy +tests/data/ljspeech/wavs/LJ011-0067.wav|tests/data/ljspeech/wavs/LJ011-0067.npy +tests/data/ljspeech/wavs/LJ022-0079.wav|tests/data/ljspeech/wavs/LJ022-0079.npy +tests/data/ljspeech/wavs/LJ013-0155.wav|tests/data/ljspeech/wavs/LJ013-0155.npy +tests/data/ljspeech/wavs/LJ039-0090.wav|tests/data/ljspeech/wavs/LJ039-0090.npy +tests/data/ljspeech/wavs/LJ046-0172.wav|tests/data/ljspeech/wavs/LJ046-0172.npy +tests/data/ljspeech/wavs/LJ048-0181.wav|tests/data/ljspeech/wavs/LJ048-0181.npy +tests/data/ljspeech/wavs/LJ014-0004.wav|tests/data/ljspeech/wavs/LJ014-0004.npy +tests/data/ljspeech/wavs/LJ001-0025.wav|tests/data/ljspeech/wavs/LJ001-0025.npy +tests/data/ljspeech/wavs/LJ039-0037.wav|tests/data/ljspeech/wavs/LJ039-0037.npy +tests/data/ljspeech/wavs/LJ012-0169.wav|tests/data/ljspeech/wavs/LJ012-0169.npy +tests/data/ljspeech/wavs/LJ012-0206.wav|tests/data/ljspeech/wavs/LJ012-0206.npy +tests/data/ljspeech/wavs/LJ012-0257.wav|tests/data/ljspeech/wavs/LJ012-0257.npy +tests/data/ljspeech/wavs/LJ028-0226.wav|tests/data/ljspeech/wavs/LJ028-0226.npy +tests/data/ljspeech/wavs/LJ018-0394.wav|tests/data/ljspeech/wavs/LJ018-0394.npy +tests/data/ljspeech/wavs/LJ048-0115.wav|tests/data/ljspeech/wavs/LJ048-0115.npy +tests/data/ljspeech/wavs/LJ029-0150.wav|tests/data/ljspeech/wavs/LJ029-0150.npy +tests/data/ljspeech/wavs/LJ038-0258.wav|tests/data/ljspeech/wavs/LJ038-0258.npy +tests/data/ljspeech/wavs/LJ010-0314.wav|tests/data/ljspeech/wavs/LJ010-0314.npy +tests/data/ljspeech/wavs/LJ024-0138.wav|tests/data/ljspeech/wavs/LJ024-0138.npy +tests/data/ljspeech/wavs/LJ049-0222.wav|tests/data/ljspeech/wavs/LJ049-0222.npy +tests/data/ljspeech/wavs/LJ004-0230.wav|tests/data/ljspeech/wavs/LJ004-0230.npy +tests/data/ljspeech/wavs/LJ009-0244.wav|tests/data/ljspeech/wavs/LJ009-0244.npy +tests/data/ljspeech/wavs/LJ011-0084.wav|tests/data/ljspeech/wavs/LJ011-0084.npy +tests/data/ljspeech/wavs/LJ043-0124.wav|tests/data/ljspeech/wavs/LJ043-0124.npy +tests/data/ljspeech/wavs/LJ002-0270.wav|tests/data/ljspeech/wavs/LJ002-0270.npy +tests/data/ljspeech/wavs/LJ029-0089.wav|tests/data/ljspeech/wavs/LJ029-0089.npy +tests/data/ljspeech/wavs/LJ001-0092.wav|tests/data/ljspeech/wavs/LJ001-0092.npy +tests/data/ljspeech/wavs/LJ030-0154.wav|tests/data/ljspeech/wavs/LJ030-0154.npy +tests/data/ljspeech/wavs/LJ005-0039.wav|tests/data/ljspeech/wavs/LJ005-0039.npy +tests/data/ljspeech/wavs/LJ004-0030.wav|tests/data/ljspeech/wavs/LJ004-0030.npy +tests/data/ljspeech/wavs/LJ044-0079.wav|tests/data/ljspeech/wavs/LJ044-0079.npy +tests/data/ljspeech/wavs/LJ029-0093.wav|tests/data/ljspeech/wavs/LJ029-0093.npy +tests/data/ljspeech/wavs/LJ043-0045.wav|tests/data/ljspeech/wavs/LJ043-0045.npy +tests/data/ljspeech/wavs/LJ046-0055.wav|tests/data/ljspeech/wavs/LJ046-0055.npy +tests/data/ljspeech/wavs/LJ003-0319.wav|tests/data/ljspeech/wavs/LJ003-0319.npy +tests/data/ljspeech/wavs/LJ003-0143.wav|tests/data/ljspeech/wavs/LJ003-0143.npy +tests/data/ljspeech/wavs/LJ022-0143.wav|tests/data/ljspeech/wavs/LJ022-0143.npy +tests/data/ljspeech/wavs/LJ030-0079.wav|tests/data/ljspeech/wavs/LJ030-0079.npy +tests/data/ljspeech/wavs/LJ044-0059.wav|tests/data/ljspeech/wavs/LJ044-0059.npy +tests/data/ljspeech/wavs/LJ003-0226.wav|tests/data/ljspeech/wavs/LJ003-0226.npy +tests/data/ljspeech/wavs/LJ005-0161.wav|tests/data/ljspeech/wavs/LJ005-0161.npy +tests/data/ljspeech/wavs/LJ022-0173.wav|tests/data/ljspeech/wavs/LJ022-0173.npy +tests/data/ljspeech/wavs/LJ048-0008.wav|tests/data/ljspeech/wavs/LJ048-0008.npy +tests/data/ljspeech/wavs/LJ006-0049.wav|tests/data/ljspeech/wavs/LJ006-0049.npy +tests/data/ljspeech/wavs/LJ001-0055.wav|tests/data/ljspeech/wavs/LJ001-0055.npy +tests/data/ljspeech/wavs/LJ006-0275.wav|tests/data/ljspeech/wavs/LJ006-0275.npy +tests/data/ljspeech/wavs/LJ043-0025.wav|tests/data/ljspeech/wavs/LJ043-0025.npy +tests/data/ljspeech/wavs/LJ023-0038.wav|tests/data/ljspeech/wavs/LJ023-0038.npy +tests/data/ljspeech/wavs/LJ006-0131.wav|tests/data/ljspeech/wavs/LJ006-0131.npy +tests/data/ljspeech/wavs/LJ022-0027.wav|tests/data/ljspeech/wavs/LJ022-0027.npy +tests/data/ljspeech/wavs/LJ005-0222.wav|tests/data/ljspeech/wavs/LJ005-0222.npy +tests/data/ljspeech/wavs/LJ001-0060.wav|tests/data/ljspeech/wavs/LJ001-0060.npy +tests/data/ljspeech/wavs/LJ006-0196.wav|tests/data/ljspeech/wavs/LJ006-0196.npy +tests/data/ljspeech/wavs/LJ029-0184.wav|tests/data/ljspeech/wavs/LJ029-0184.npy +tests/data/ljspeech/wavs/LJ002-0310.wav|tests/data/ljspeech/wavs/LJ002-0310.npy +tests/data/ljspeech/wavs/LJ018-0224.wav|tests/data/ljspeech/wavs/LJ018-0224.npy +tests/data/ljspeech/wavs/LJ032-0025.wav|tests/data/ljspeech/wavs/LJ032-0025.npy +tests/data/ljspeech/wavs/LJ040-0171.wav|tests/data/ljspeech/wavs/LJ040-0171.npy +tests/data/ljspeech/wavs/LJ049-0058.wav|tests/data/ljspeech/wavs/LJ049-0058.npy +tests/data/ljspeech/wavs/LJ010-0185.wav|tests/data/ljspeech/wavs/LJ010-0185.npy +tests/data/ljspeech/wavs/LJ026-0131.wav|tests/data/ljspeech/wavs/LJ026-0131.npy +tests/data/ljspeech/wavs/LJ019-0215.wav|tests/data/ljspeech/wavs/LJ019-0215.npy +tests/data/ljspeech/wavs/LJ035-0091.wav|tests/data/ljspeech/wavs/LJ035-0091.npy +tests/data/ljspeech/wavs/LJ028-0402.wav|tests/data/ljspeech/wavs/LJ028-0402.npy +tests/data/ljspeech/wavs/LJ037-0074.wav|tests/data/ljspeech/wavs/LJ037-0074.npy +tests/data/ljspeech/wavs/LJ018-0190.wav|tests/data/ljspeech/wavs/LJ018-0190.npy +tests/data/ljspeech/wavs/LJ036-0028.wav|tests/data/ljspeech/wavs/LJ036-0028.npy +tests/data/ljspeech/wavs/LJ015-0180.wav|tests/data/ljspeech/wavs/LJ015-0180.npy +tests/data/ljspeech/wavs/LJ019-0228.wav|tests/data/ljspeech/wavs/LJ019-0228.npy +tests/data/ljspeech/wavs/LJ018-0183.wav|tests/data/ljspeech/wavs/LJ018-0183.npy +tests/data/ljspeech/wavs/LJ017-0050.wav|tests/data/ljspeech/wavs/LJ017-0050.npy +tests/data/ljspeech/wavs/LJ049-0073.wav|tests/data/ljspeech/wavs/LJ049-0073.npy +tests/data/ljspeech/wavs/LJ011-0133.wav|tests/data/ljspeech/wavs/LJ011-0133.npy +tests/data/ljspeech/wavs/LJ041-0010.wav|tests/data/ljspeech/wavs/LJ041-0010.npy +tests/data/ljspeech/wavs/LJ030-0250.wav|tests/data/ljspeech/wavs/LJ030-0250.npy +tests/data/ljspeech/wavs/LJ028-0377.wav|tests/data/ljspeech/wavs/LJ028-0377.npy +tests/data/ljspeech/wavs/LJ040-0051.wav|tests/data/ljspeech/wavs/LJ040-0051.npy +tests/data/ljspeech/wavs/LJ011-0169.wav|tests/data/ljspeech/wavs/LJ011-0169.npy +tests/data/ljspeech/wavs/LJ011-0203.wav|tests/data/ljspeech/wavs/LJ011-0203.npy +tests/data/ljspeech/wavs/LJ026-0005.wav|tests/data/ljspeech/wavs/LJ026-0005.npy +tests/data/ljspeech/wavs/LJ018-0172.wav|tests/data/ljspeech/wavs/LJ018-0172.npy +tests/data/ljspeech/wavs/LJ009-0263.wav|tests/data/ljspeech/wavs/LJ009-0263.npy +tests/data/ljspeech/wavs/LJ028-0411.wav|tests/data/ljspeech/wavs/LJ028-0411.npy +tests/data/ljspeech/wavs/LJ016-0285.wav|tests/data/ljspeech/wavs/LJ016-0285.npy +tests/data/ljspeech/wavs/LJ036-0174.wav|tests/data/ljspeech/wavs/LJ036-0174.npy +tests/data/ljspeech/wavs/LJ039-0181.wav|tests/data/ljspeech/wavs/LJ039-0181.npy +tests/data/ljspeech/wavs/LJ028-0382.wav|tests/data/ljspeech/wavs/LJ028-0382.npy +tests/data/ljspeech/wavs/LJ038-0120.wav|tests/data/ljspeech/wavs/LJ038-0120.npy +tests/data/ljspeech/wavs/LJ047-0153.wav|tests/data/ljspeech/wavs/LJ047-0153.npy +tests/data/ljspeech/wavs/LJ015-0223.wav|tests/data/ljspeech/wavs/LJ015-0223.npy +tests/data/ljspeech/wavs/LJ016-0079.wav|tests/data/ljspeech/wavs/LJ016-0079.npy +tests/data/ljspeech/wavs/LJ028-0124.wav|tests/data/ljspeech/wavs/LJ028-0124.npy +tests/data/ljspeech/wavs/LJ018-0104.wav|tests/data/ljspeech/wavs/LJ018-0104.npy +tests/data/ljspeech/wavs/LJ038-0246.wav|tests/data/ljspeech/wavs/LJ038-0246.npy +tests/data/ljspeech/wavs/LJ013-0030.wav|tests/data/ljspeech/wavs/LJ013-0030.npy +tests/data/ljspeech/wavs/LJ015-0206.wav|tests/data/ljspeech/wavs/LJ015-0206.npy +tests/data/ljspeech/wavs/LJ015-0078.wav|tests/data/ljspeech/wavs/LJ015-0078.npy +tests/data/ljspeech/wavs/LJ012-0279.wav|tests/data/ljspeech/wavs/LJ012-0279.npy +tests/data/ljspeech/wavs/LJ027-0163.wav|tests/data/ljspeech/wavs/LJ027-0163.npy +tests/data/ljspeech/wavs/LJ037-0192.wav|tests/data/ljspeech/wavs/LJ037-0192.npy +tests/data/ljspeech/wavs/LJ038-0210.wav|tests/data/ljspeech/wavs/LJ038-0210.npy +tests/data/ljspeech/wavs/LJ038-0087.wav|tests/data/ljspeech/wavs/LJ038-0087.npy +tests/data/ljspeech/wavs/LJ016-0106.wav|tests/data/ljspeech/wavs/LJ016-0106.npy +tests/data/ljspeech/wavs/LJ016-0036.wav|tests/data/ljspeech/wavs/LJ016-0036.npy +tests/data/ljspeech/wavs/LJ032-0126.wav|tests/data/ljspeech/wavs/LJ032-0126.npy +tests/data/ljspeech/wavs/LJ027-0147.wav|tests/data/ljspeech/wavs/LJ027-0147.npy +tests/data/ljspeech/wavs/LJ035-0191.wav|tests/data/ljspeech/wavs/LJ035-0191.npy +tests/data/ljspeech/wavs/LJ016-0170.wav|tests/data/ljspeech/wavs/LJ016-0170.npy +tests/data/ljspeech/wavs/LJ018-0347.wav|tests/data/ljspeech/wavs/LJ018-0347.npy +tests/data/ljspeech/wavs/LJ032-0173.wav|tests/data/ljspeech/wavs/LJ032-0173.npy +tests/data/ljspeech/wavs/LJ015-0072.wav|tests/data/ljspeech/wavs/LJ015-0072.npy +tests/data/ljspeech/wavs/LJ014-0090.wav|tests/data/ljspeech/wavs/LJ014-0090.npy +tests/data/ljspeech/wavs/LJ014-0092.wav|tests/data/ljspeech/wavs/LJ014-0092.npy +tests/data/ljspeech/wavs/LJ013-0165.wav|tests/data/ljspeech/wavs/LJ013-0165.npy +tests/data/ljspeech/wavs/LJ015-0250.wav|tests/data/ljspeech/wavs/LJ015-0250.npy +tests/data/ljspeech/wavs/LJ013-0179.wav|tests/data/ljspeech/wavs/LJ013-0179.npy +tests/data/ljspeech/wavs/LJ028-0017.wav|tests/data/ljspeech/wavs/LJ028-0017.npy +tests/data/ljspeech/wavs/LJ028-0093.wav|tests/data/ljspeech/wavs/LJ028-0093.npy +tests/data/ljspeech/wavs/LJ026-0063.wav|tests/data/ljspeech/wavs/LJ026-0063.npy +tests/data/ljspeech/wavs/LJ019-0021.wav|tests/data/ljspeech/wavs/LJ019-0021.npy +tests/data/ljspeech/wavs/LJ019-0388.wav|tests/data/ljspeech/wavs/LJ019-0388.npy +tests/data/ljspeech/wavs/LJ008-0020.wav|tests/data/ljspeech/wavs/LJ008-0020.npy +tests/data/ljspeech/wavs/LJ027-0013.wav|tests/data/ljspeech/wavs/LJ027-0013.npy +tests/data/ljspeech/wavs/LJ018-0276.wav|tests/data/ljspeech/wavs/LJ018-0276.npy +tests/data/ljspeech/wavs/LJ009-0140.wav|tests/data/ljspeech/wavs/LJ009-0140.npy +tests/data/ljspeech/wavs/LJ042-0192.wav|tests/data/ljspeech/wavs/LJ042-0192.npy +tests/data/ljspeech/wavs/LJ042-0128.wav|tests/data/ljspeech/wavs/LJ042-0128.npy +tests/data/ljspeech/wavs/LJ048-0034.wav|tests/data/ljspeech/wavs/LJ048-0034.npy +tests/data/ljspeech/wavs/LJ019-0329.wav|tests/data/ljspeech/wavs/LJ019-0329.npy +tests/data/ljspeech/wavs/LJ029-0033.wav|tests/data/ljspeech/wavs/LJ029-0033.npy +tests/data/ljspeech/wavs/LJ013-0127.wav|tests/data/ljspeech/wavs/LJ013-0127.npy +tests/data/ljspeech/wavs/LJ008-0047.wav|tests/data/ljspeech/wavs/LJ008-0047.npy +tests/data/ljspeech/wavs/LJ012-0290.wav|tests/data/ljspeech/wavs/LJ012-0290.npy +tests/data/ljspeech/wavs/LJ008-0021.wav|tests/data/ljspeech/wavs/LJ008-0021.npy +tests/data/ljspeech/wavs/LJ009-0066.wav|tests/data/ljspeech/wavs/LJ009-0066.npy +tests/data/ljspeech/wavs/LJ014-0070.wav|tests/data/ljspeech/wavs/LJ014-0070.npy +tests/data/ljspeech/wavs/LJ018-0007.wav|tests/data/ljspeech/wavs/LJ018-0007.npy +tests/data/ljspeech/wavs/LJ035-0193.wav|tests/data/ljspeech/wavs/LJ035-0193.npy +tests/data/ljspeech/wavs/LJ041-0192.wav|tests/data/ljspeech/wavs/LJ041-0192.npy +tests/data/ljspeech/wavs/LJ004-0136.wav|tests/data/ljspeech/wavs/LJ004-0136.npy +tests/data/ljspeech/wavs/LJ019-0128.wav|tests/data/ljspeech/wavs/LJ019-0128.npy +tests/data/ljspeech/wavs/LJ047-0059.wav|tests/data/ljspeech/wavs/LJ047-0059.npy +tests/data/ljspeech/wavs/LJ050-0060.wav|tests/data/ljspeech/wavs/LJ050-0060.npy +tests/data/ljspeech/wavs/LJ008-0214.wav|tests/data/ljspeech/wavs/LJ008-0214.npy +tests/data/ljspeech/wavs/LJ035-0172.wav|tests/data/ljspeech/wavs/LJ035-0172.npy +tests/data/ljspeech/wavs/LJ018-0289.wav|tests/data/ljspeech/wavs/LJ018-0289.npy +tests/data/ljspeech/wavs/LJ017-0242.wav|tests/data/ljspeech/wavs/LJ017-0242.npy +tests/data/ljspeech/wavs/LJ017-0257.wav|tests/data/ljspeech/wavs/LJ017-0257.npy +tests/data/ljspeech/wavs/LJ035-0034.wav|tests/data/ljspeech/wavs/LJ035-0034.npy +tests/data/ljspeech/wavs/LJ018-0296.wav|tests/data/ljspeech/wavs/LJ018-0296.npy +tests/data/ljspeech/wavs/LJ004-0163.wav|tests/data/ljspeech/wavs/LJ004-0163.npy +tests/data/ljspeech/wavs/LJ039-0012.wav|tests/data/ljspeech/wavs/LJ039-0012.npy +tests/data/ljspeech/wavs/LJ048-0079.wav|tests/data/ljspeech/wavs/LJ048-0079.npy +tests/data/ljspeech/wavs/LJ025-0065.wav|tests/data/ljspeech/wavs/LJ025-0065.npy +tests/data/ljspeech/wavs/LJ034-0170.wav|tests/data/ljspeech/wavs/LJ034-0170.npy +tests/data/ljspeech/wavs/LJ045-0157.wav|tests/data/ljspeech/wavs/LJ045-0157.npy +tests/data/ljspeech/wavs/LJ022-0094.wav|tests/data/ljspeech/wavs/LJ022-0094.npy +tests/data/ljspeech/wavs/LJ013-0049.wav|tests/data/ljspeech/wavs/LJ013-0049.npy +tests/data/ljspeech/wavs/LJ007-0150.wav|tests/data/ljspeech/wavs/LJ007-0150.npy +tests/data/ljspeech/wavs/LJ042-0112.wav|tests/data/ljspeech/wavs/LJ042-0112.npy +tests/data/ljspeech/wavs/LJ045-0062.wav|tests/data/ljspeech/wavs/LJ045-0062.npy +tests/data/ljspeech/wavs/LJ035-0152.wav|tests/data/ljspeech/wavs/LJ035-0152.npy +tests/data/ljspeech/wavs/LJ031-0225.wav|tests/data/ljspeech/wavs/LJ031-0225.npy +tests/data/ljspeech/wavs/LJ013-0246.wav|tests/data/ljspeech/wavs/LJ013-0246.npy +tests/data/ljspeech/wavs/LJ009-0078.wav|tests/data/ljspeech/wavs/LJ009-0078.npy +tests/data/ljspeech/wavs/LJ016-0075.wav|tests/data/ljspeech/wavs/LJ016-0075.npy +tests/data/ljspeech/wavs/LJ037-0121.wav|tests/data/ljspeech/wavs/LJ037-0121.npy +tests/data/ljspeech/wavs/LJ047-0228.wav|tests/data/ljspeech/wavs/LJ047-0228.npy +tests/data/ljspeech/wavs/LJ008-0057.wav|tests/data/ljspeech/wavs/LJ008-0057.npy +tests/data/ljspeech/wavs/LJ012-0017.wav|tests/data/ljspeech/wavs/LJ012-0017.npy +tests/data/ljspeech/wavs/LJ026-0056.wav|tests/data/ljspeech/wavs/LJ026-0056.npy +tests/data/ljspeech/wavs/LJ033-0083.wav|tests/data/ljspeech/wavs/LJ033-0083.npy +tests/data/ljspeech/wavs/LJ023-0132.wav|tests/data/ljspeech/wavs/LJ023-0132.npy +tests/data/ljspeech/wavs/LJ016-0136.wav|tests/data/ljspeech/wavs/LJ016-0136.npy +tests/data/ljspeech/wavs/LJ012-0035.wav|tests/data/ljspeech/wavs/LJ012-0035.npy +tests/data/ljspeech/wavs/LJ012-0267.wav|tests/data/ljspeech/wavs/LJ012-0267.npy +tests/data/ljspeech/wavs/LJ016-0038.wav|tests/data/ljspeech/wavs/LJ016-0038.npy +tests/data/ljspeech/wavs/LJ003-0270.wav|tests/data/ljspeech/wavs/LJ003-0270.npy +tests/data/ljspeech/wavs/LJ042-0214.wav|tests/data/ljspeech/wavs/LJ042-0214.npy +tests/data/ljspeech/wavs/LJ004-0240.wav|tests/data/ljspeech/wavs/LJ004-0240.npy +tests/data/ljspeech/wavs/LJ039-0162.wav|tests/data/ljspeech/wavs/LJ039-0162.npy +tests/data/ljspeech/wavs/LJ033-0043.wav|tests/data/ljspeech/wavs/LJ033-0043.npy +tests/data/ljspeech/wavs/LJ012-0181.wav|tests/data/ljspeech/wavs/LJ012-0181.npy +tests/data/ljspeech/wavs/LJ014-0315.wav|tests/data/ljspeech/wavs/LJ014-0315.npy +tests/data/ljspeech/wavs/LJ038-0078.wav|tests/data/ljspeech/wavs/LJ038-0078.npy +tests/data/ljspeech/wavs/LJ038-0222.wav|tests/data/ljspeech/wavs/LJ038-0222.npy +tests/data/ljspeech/wavs/LJ018-0002.wav|tests/data/ljspeech/wavs/LJ018-0002.npy +tests/data/ljspeech/wavs/LJ037-0216.wav|tests/data/ljspeech/wavs/LJ037-0216.npy +tests/data/ljspeech/wavs/LJ042-0162.wav|tests/data/ljspeech/wavs/LJ042-0162.npy +tests/data/ljspeech/wavs/LJ018-0014.wav|tests/data/ljspeech/wavs/LJ018-0014.npy +tests/data/ljspeech/wavs/LJ026-0074.wav|tests/data/ljspeech/wavs/LJ026-0074.npy +tests/data/ljspeech/wavs/LJ014-0203.wav|tests/data/ljspeech/wavs/LJ014-0203.npy +tests/data/ljspeech/wavs/LJ007-0225.wav|tests/data/ljspeech/wavs/LJ007-0225.npy +tests/data/ljspeech/wavs/LJ016-0037.wav|tests/data/ljspeech/wavs/LJ016-0037.npy +tests/data/ljspeech/wavs/LJ015-0199.wav|tests/data/ljspeech/wavs/LJ015-0199.npy +tests/data/ljspeech/wavs/LJ038-0053.wav|tests/data/ljspeech/wavs/LJ038-0053.npy +tests/data/ljspeech/wavs/LJ047-0037.wav|tests/data/ljspeech/wavs/LJ047-0037.npy +tests/data/ljspeech/wavs/LJ016-0178.wav|tests/data/ljspeech/wavs/LJ016-0178.npy +tests/data/ljspeech/wavs/LJ003-0253.wav|tests/data/ljspeech/wavs/LJ003-0253.npy +tests/data/ljspeech/wavs/LJ003-0258.wav|tests/data/ljspeech/wavs/LJ003-0258.npy +tests/data/ljspeech/wavs/LJ015-0314.wav|tests/data/ljspeech/wavs/LJ015-0314.npy +tests/data/ljspeech/wavs/LJ007-0043.wav|tests/data/ljspeech/wavs/LJ007-0043.npy +tests/data/ljspeech/wavs/LJ014-0161.wav|tests/data/ljspeech/wavs/LJ014-0161.npy +tests/data/ljspeech/wavs/LJ018-0259.wav|tests/data/ljspeech/wavs/LJ018-0259.npy +tests/data/ljspeech/wavs/LJ042-0169.wav|tests/data/ljspeech/wavs/LJ042-0169.npy +tests/data/ljspeech/wavs/LJ003-0257.wav|tests/data/ljspeech/wavs/LJ003-0257.npy +tests/data/ljspeech/wavs/LJ018-0257.wav|tests/data/ljspeech/wavs/LJ018-0257.npy +tests/data/ljspeech/wavs/LJ003-0206.wav|tests/data/ljspeech/wavs/LJ003-0206.npy +tests/data/ljspeech/wavs/LJ018-0036.wav|tests/data/ljspeech/wavs/LJ018-0036.npy +tests/data/ljspeech/wavs/LJ029-0059.wav|tests/data/ljspeech/wavs/LJ029-0059.npy +tests/data/ljspeech/wavs/LJ038-0038.wav|tests/data/ljspeech/wavs/LJ038-0038.npy +tests/data/ljspeech/wavs/LJ026-0073.wav|tests/data/ljspeech/wavs/LJ026-0073.npy +tests/data/ljspeech/wavs/LJ034-0187.wav|tests/data/ljspeech/wavs/LJ034-0187.npy +tests/data/ljspeech/wavs/LJ018-0270.wav|tests/data/ljspeech/wavs/LJ018-0270.npy +tests/data/ljspeech/wavs/LJ003-0304.wav|tests/data/ljspeech/wavs/LJ003-0304.npy +tests/data/ljspeech/wavs/LJ034-0111.wav|tests/data/ljspeech/wavs/LJ034-0111.npy +tests/data/ljspeech/wavs/LJ010-0068.wav|tests/data/ljspeech/wavs/LJ010-0068.npy +tests/data/ljspeech/wavs/LJ005-0201.wav|tests/data/ljspeech/wavs/LJ005-0201.npy +tests/data/ljspeech/wavs/LJ029-0181.wav|tests/data/ljspeech/wavs/LJ029-0181.npy +tests/data/ljspeech/wavs/LJ010-0173.wav|tests/data/ljspeech/wavs/LJ010-0173.npy +tests/data/ljspeech/wavs/LJ043-0117.wav|tests/data/ljspeech/wavs/LJ043-0117.npy +tests/data/ljspeech/wavs/LJ044-0037.wav|tests/data/ljspeech/wavs/LJ044-0037.npy +tests/data/ljspeech/wavs/LJ017-0216.wav|tests/data/ljspeech/wavs/LJ017-0216.npy +tests/data/ljspeech/wavs/LJ024-0080.wav|tests/data/ljspeech/wavs/LJ024-0080.npy +tests/data/ljspeech/wavs/LJ002-0112.wav|tests/data/ljspeech/wavs/LJ002-0112.npy +tests/data/ljspeech/wavs/LJ010-0220.wav|tests/data/ljspeech/wavs/LJ010-0220.npy +tests/data/ljspeech/wavs/LJ006-0184.wav|tests/data/ljspeech/wavs/LJ006-0184.npy +tests/data/ljspeech/wavs/LJ016-0440.wav|tests/data/ljspeech/wavs/LJ016-0440.npy +tests/data/ljspeech/wavs/LJ017-0024.wav|tests/data/ljspeech/wavs/LJ017-0024.npy +tests/data/ljspeech/wavs/LJ017-0219.wav|tests/data/ljspeech/wavs/LJ017-0219.npy +tests/data/ljspeech/wavs/LJ005-0230.wav|tests/data/ljspeech/wavs/LJ005-0230.npy +tests/data/ljspeech/wavs/LJ041-0033.wav|tests/data/ljspeech/wavs/LJ041-0033.npy +tests/data/ljspeech/wavs/LJ033-0071.wav|tests/data/ljspeech/wavs/LJ033-0071.npy +tests/data/ljspeech/wavs/LJ010-0077.wav|tests/data/ljspeech/wavs/LJ010-0077.npy +tests/data/ljspeech/wavs/LJ016-0332.wav|tests/data/ljspeech/wavs/LJ016-0332.npy +tests/data/ljspeech/wavs/LJ010-0209.wav|tests/data/ljspeech/wavs/LJ010-0209.npy +tests/data/ljspeech/wavs/LJ041-0193.wav|tests/data/ljspeech/wavs/LJ041-0193.npy +tests/data/ljspeech/wavs/LJ010-0103.wav|tests/data/ljspeech/wavs/LJ010-0103.npy +tests/data/ljspeech/wavs/LJ008-0293.wav|tests/data/ljspeech/wavs/LJ008-0293.npy +tests/data/ljspeech/wavs/LJ009-0082.wav|tests/data/ljspeech/wavs/LJ009-0082.npy +tests/data/ljspeech/wavs/LJ017-0106.wav|tests/data/ljspeech/wavs/LJ017-0106.npy +tests/data/ljspeech/wavs/LJ003-0020.wav|tests/data/ljspeech/wavs/LJ003-0020.npy +tests/data/ljspeech/wavs/LJ001-0145.wav|tests/data/ljspeech/wavs/LJ001-0145.npy +tests/data/ljspeech/wavs/LJ006-0205.wav|tests/data/ljspeech/wavs/LJ006-0205.npy +tests/data/ljspeech/wavs/LJ001-0149.wav|tests/data/ljspeech/wavs/LJ001-0149.npy +tests/data/ljspeech/wavs/LJ002-0067.wav|tests/data/ljspeech/wavs/LJ002-0067.npy +tests/data/ljspeech/wavs/LJ019-0178.wav|tests/data/ljspeech/wavs/LJ019-0178.npy +tests/data/ljspeech/wavs/LJ002-0120.wav|tests/data/ljspeech/wavs/LJ002-0120.npy +tests/data/ljspeech/wavs/LJ042-0050.wav|tests/data/ljspeech/wavs/LJ042-0050.npy +tests/data/ljspeech/wavs/LJ011-0099.wav|tests/data/ljspeech/wavs/LJ011-0099.npy +tests/data/ljspeech/wavs/LJ037-0045.wav|tests/data/ljspeech/wavs/LJ037-0045.npy +tests/data/ljspeech/wavs/LJ031-0116.wav|tests/data/ljspeech/wavs/LJ031-0116.npy +tests/data/ljspeech/wavs/LJ011-0081.wav|tests/data/ljspeech/wavs/LJ011-0081.npy +tests/data/ljspeech/wavs/LJ050-0040.wav|tests/data/ljspeech/wavs/LJ050-0040.npy +tests/data/ljspeech/wavs/LJ025-0095.wav|tests/data/ljspeech/wavs/LJ025-0095.npy +tests/data/ljspeech/wavs/LJ040-0212.wav|tests/data/ljspeech/wavs/LJ040-0212.npy +tests/data/ljspeech/wavs/LJ046-0165.wav|tests/data/ljspeech/wavs/LJ046-0165.npy +tests/data/ljspeech/wavs/LJ008-0309.wav|tests/data/ljspeech/wavs/LJ008-0309.npy +tests/data/ljspeech/wavs/LJ002-0262.wav|tests/data/ljspeech/wavs/LJ002-0262.npy +tests/data/ljspeech/wavs/LJ011-0144.wav|tests/data/ljspeech/wavs/LJ011-0144.npy +tests/data/ljspeech/wavs/LJ010-0274.wav|tests/data/ljspeech/wavs/LJ010-0274.npy +tests/data/ljspeech/wavs/LJ016-0260.wav|tests/data/ljspeech/wavs/LJ016-0260.npy +tests/data/ljspeech/wavs/LJ047-0164.wav|tests/data/ljspeech/wavs/LJ047-0164.npy +tests/data/ljspeech/wavs/LJ009-0270.wav|tests/data/ljspeech/wavs/LJ009-0270.npy +tests/data/ljspeech/wavs/LJ002-0224.wav|tests/data/ljspeech/wavs/LJ002-0224.npy +tests/data/ljspeech/wavs/LJ034-0168.wav|tests/data/ljspeech/wavs/LJ034-0168.npy +tests/data/ljspeech/wavs/LJ049-0191.wav|tests/data/ljspeech/wavs/LJ049-0191.npy +tests/data/ljspeech/wavs/LJ048-0251.wav|tests/data/ljspeech/wavs/LJ048-0251.npy +tests/data/ljspeech/wavs/LJ040-0223.wav|tests/data/ljspeech/wavs/LJ040-0223.npy +tests/data/ljspeech/wavs/LJ019-0134.wav|tests/data/ljspeech/wavs/LJ019-0134.npy +tests/data/ljspeech/wavs/LJ024-0037.wav|tests/data/ljspeech/wavs/LJ024-0037.npy +tests/data/ljspeech/wavs/LJ010-0239.wav|tests/data/ljspeech/wavs/LJ010-0239.npy +tests/data/ljspeech/wavs/LJ021-0012.wav|tests/data/ljspeech/wavs/LJ021-0012.npy +tests/data/ljspeech/wavs/LJ021-0009.wav|tests/data/ljspeech/wavs/LJ021-0009.npy +tests/data/ljspeech/wavs/LJ028-0268.wav|tests/data/ljspeech/wavs/LJ028-0268.npy +tests/data/ljspeech/wavs/LJ010-0033.wav|tests/data/ljspeech/wavs/LJ010-0033.npy +tests/data/ljspeech/wavs/LJ041-0166.wav|tests/data/ljspeech/wavs/LJ041-0166.npy +tests/data/ljspeech/wavs/LJ032-0274.wav|tests/data/ljspeech/wavs/LJ032-0274.npy +tests/data/ljspeech/wavs/LJ017-0035.wav|tests/data/ljspeech/wavs/LJ017-0035.npy +tests/data/ljspeech/wavs/LJ047-0179.wav|tests/data/ljspeech/wavs/LJ047-0179.npy +tests/data/ljspeech/wavs/LJ032-0241.wav|tests/data/ljspeech/wavs/LJ032-0241.npy +tests/data/ljspeech/wavs/LJ037-0125.wav|tests/data/ljspeech/wavs/LJ037-0125.npy +tests/data/ljspeech/wavs/LJ027-0175.wav|tests/data/ljspeech/wavs/LJ027-0175.npy +tests/data/ljspeech/wavs/LJ048-0036.wav|tests/data/ljspeech/wavs/LJ048-0036.npy +tests/data/ljspeech/wavs/LJ017-0112.wav|tests/data/ljspeech/wavs/LJ017-0112.npy +tests/data/ljspeech/wavs/LJ047-0182.wav|tests/data/ljspeech/wavs/LJ047-0182.npy +tests/data/ljspeech/wavs/LJ017-0181.wav|tests/data/ljspeech/wavs/LJ017-0181.npy +tests/data/ljspeech/wavs/LJ033-0173.wav|tests/data/ljspeech/wavs/LJ033-0173.npy +tests/data/ljspeech/wavs/LJ033-0172.wav|tests/data/ljspeech/wavs/LJ033-0172.npy +tests/data/ljspeech/wavs/LJ049-0043.wav|tests/data/ljspeech/wavs/LJ049-0043.npy +tests/data/ljspeech/wavs/LJ024-0018.wav|tests/data/ljspeech/wavs/LJ024-0018.npy +tests/data/ljspeech/wavs/LJ016-0217.wav|tests/data/ljspeech/wavs/LJ016-0217.npy +tests/data/ljspeech/wavs/LJ016-0139.wav|tests/data/ljspeech/wavs/LJ016-0139.npy +tests/data/ljspeech/wavs/LJ017-0204.wav|tests/data/ljspeech/wavs/LJ017-0204.npy +tests/data/ljspeech/wavs/LJ046-0051.wav|tests/data/ljspeech/wavs/LJ046-0051.npy +tests/data/ljspeech/wavs/LJ033-0187.wav|tests/data/ljspeech/wavs/LJ033-0187.npy +tests/data/ljspeech/wavs/LJ017-0157.wav|tests/data/ljspeech/wavs/LJ017-0157.npy +tests/data/ljspeech/wavs/LJ015-0280.wav|tests/data/ljspeech/wavs/LJ015-0280.npy +tests/data/ljspeech/wavs/LJ017-0207.wav|tests/data/ljspeech/wavs/LJ017-0207.npy +tests/data/ljspeech/wavs/LJ017-0205.wav|tests/data/ljspeech/wavs/LJ017-0205.npy +tests/data/ljspeech/wavs/LJ001-0178.wav|tests/data/ljspeech/wavs/LJ001-0178.npy +tests/data/ljspeech/wavs/LJ046-0171.wav|tests/data/ljspeech/wavs/LJ046-0171.npy +tests/data/ljspeech/wavs/LJ030-0214.wav|tests/data/ljspeech/wavs/LJ030-0214.npy +tests/data/ljspeech/wavs/LJ046-0001.wav|tests/data/ljspeech/wavs/LJ046-0001.npy +tests/data/ljspeech/wavs/LJ016-0096.wav|tests/data/ljspeech/wavs/LJ016-0096.npy +tests/data/ljspeech/wavs/LJ010-0304.wav|tests/data/ljspeech/wavs/LJ010-0304.npy +tests/data/ljspeech/wavs/LJ001-0022.wav|tests/data/ljspeech/wavs/LJ001-0022.npy +tests/data/ljspeech/wavs/LJ015-0221.wav|tests/data/ljspeech/wavs/LJ015-0221.npy +tests/data/ljspeech/wavs/LJ027-0152.wav|tests/data/ljspeech/wavs/LJ027-0152.npy +tests/data/ljspeech/wavs/LJ030-0142.wav|tests/data/ljspeech/wavs/LJ030-0142.npy +tests/data/ljspeech/wavs/LJ032-0160.wav|tests/data/ljspeech/wavs/LJ032-0160.npy +tests/data/ljspeech/wavs/LJ028-0370.wav|tests/data/ljspeech/wavs/LJ028-0370.npy +tests/data/ljspeech/wavs/LJ047-0032.wav|tests/data/ljspeech/wavs/LJ047-0032.npy +tests/data/ljspeech/wavs/LJ019-0240.wav|tests/data/ljspeech/wavs/LJ019-0240.npy +tests/data/ljspeech/wavs/LJ032-0185.wav|tests/data/ljspeech/wavs/LJ032-0185.npy +tests/data/ljspeech/wavs/LJ050-0167.wav|tests/data/ljspeech/wavs/LJ050-0167.npy +tests/data/ljspeech/wavs/LJ049-0063.wav|tests/data/ljspeech/wavs/LJ049-0063.npy +tests/data/ljspeech/wavs/LJ031-0040.wav|tests/data/ljspeech/wavs/LJ031-0040.npy +tests/data/ljspeech/wavs/LJ036-0026.wav|tests/data/ljspeech/wavs/LJ036-0026.npy +tests/data/ljspeech/wavs/LJ050-0271.wav|tests/data/ljspeech/wavs/LJ050-0271.npy +tests/data/ljspeech/wavs/LJ032-0174.wav|tests/data/ljspeech/wavs/LJ032-0174.npy +tests/data/ljspeech/wavs/LJ005-0206.wav|tests/data/ljspeech/wavs/LJ005-0206.npy +tests/data/ljspeech/wavs/LJ015-0283.wav|tests/data/ljspeech/wavs/LJ015-0283.npy +tests/data/ljspeech/wavs/LJ043-0166.wav|tests/data/ljspeech/wavs/LJ043-0166.npy +tests/data/ljspeech/wavs/LJ037-0016.wav|tests/data/ljspeech/wavs/LJ037-0016.npy +tests/data/ljspeech/wavs/LJ032-0236.wav|tests/data/ljspeech/wavs/LJ032-0236.npy +tests/data/ljspeech/wavs/LJ024-0039.wav|tests/data/ljspeech/wavs/LJ024-0039.npy +tests/data/ljspeech/wavs/LJ005-0259.wav|tests/data/ljspeech/wavs/LJ005-0259.npy +tests/data/ljspeech/wavs/LJ010-0248.wav|tests/data/ljspeech/wavs/LJ010-0248.npy +tests/data/ljspeech/wavs/LJ041-0006.wav|tests/data/ljspeech/wavs/LJ041-0006.npy +tests/data/ljspeech/wavs/LJ043-0165.wav|tests/data/ljspeech/wavs/LJ043-0165.npy +tests/data/ljspeech/wavs/LJ019-0192.wav|tests/data/ljspeech/wavs/LJ019-0192.npy +tests/data/ljspeech/wavs/LJ002-0284.wav|tests/data/ljspeech/wavs/LJ002-0284.npy +tests/data/ljspeech/wavs/LJ019-0152.wav|tests/data/ljspeech/wavs/LJ019-0152.npy +tests/data/ljspeech/wavs/LJ027-0171.wav|tests/data/ljspeech/wavs/LJ027-0171.npy +tests/data/ljspeech/wavs/LJ028-0396.wav|tests/data/ljspeech/wavs/LJ028-0396.npy +tests/data/ljspeech/wavs/LJ023-0047.wav|tests/data/ljspeech/wavs/LJ023-0047.npy +tests/data/ljspeech/wavs/LJ035-0107.wav|tests/data/ljspeech/wavs/LJ035-0107.npy +tests/data/ljspeech/wavs/LJ033-0118.wav|tests/data/ljspeech/wavs/LJ033-0118.npy +tests/data/ljspeech/wavs/LJ033-0005.wav|tests/data/ljspeech/wavs/LJ033-0005.npy +tests/data/ljspeech/wavs/LJ040-0110.wav|tests/data/ljspeech/wavs/LJ040-0110.npy +tests/data/ljspeech/wavs/LJ001-0019.wav|tests/data/ljspeech/wavs/LJ001-0019.npy +tests/data/ljspeech/wavs/LJ003-0046.wav|tests/data/ljspeech/wavs/LJ003-0046.npy +tests/data/ljspeech/wavs/LJ036-0006.wav|tests/data/ljspeech/wavs/LJ036-0006.npy +tests/data/ljspeech/wavs/LJ031-0109.wav|tests/data/ljspeech/wavs/LJ031-0109.npy +tests/data/ljspeech/wavs/LJ042-0083.wav|tests/data/ljspeech/wavs/LJ042-0083.npy +tests/data/ljspeech/wavs/LJ028-0423.wav|tests/data/ljspeech/wavs/LJ028-0423.npy +tests/data/ljspeech/wavs/LJ048-0140.wav|tests/data/ljspeech/wavs/LJ048-0140.npy +tests/data/ljspeech/wavs/LJ008-0029.wav|tests/data/ljspeech/wavs/LJ008-0029.npy +tests/data/ljspeech/wavs/LJ006-0244.wav|tests/data/ljspeech/wavs/LJ006-0244.npy +tests/data/ljspeech/wavs/LJ010-0273.wav|tests/data/ljspeech/wavs/LJ010-0273.npy +tests/data/ljspeech/wavs/LJ019-0382.wav|tests/data/ljspeech/wavs/LJ019-0382.npy +tests/data/ljspeech/wavs/LJ042-0042.wav|tests/data/ljspeech/wavs/LJ042-0042.npy +tests/data/ljspeech/wavs/LJ019-0262.wav|tests/data/ljspeech/wavs/LJ019-0262.npy +tests/data/ljspeech/wavs/LJ048-0171.wav|tests/data/ljspeech/wavs/LJ048-0171.npy +tests/data/ljspeech/wavs/LJ043-0116.wav|tests/data/ljspeech/wavs/LJ043-0116.npy +tests/data/ljspeech/wavs/LJ010-0312.wav|tests/data/ljspeech/wavs/LJ010-0312.npy +tests/data/ljspeech/wavs/LJ008-0129.wav|tests/data/ljspeech/wavs/LJ008-0129.npy +tests/data/ljspeech/wavs/LJ042-0067.wav|tests/data/ljspeech/wavs/LJ042-0067.npy +tests/data/ljspeech/wavs/LJ007-0206.wav|tests/data/ljspeech/wavs/LJ007-0206.npy +tests/data/ljspeech/wavs/LJ028-0307.wav|tests/data/ljspeech/wavs/LJ028-0307.npy +tests/data/ljspeech/wavs/LJ031-0219.wav|tests/data/ljspeech/wavs/LJ031-0219.npy +tests/data/ljspeech/wavs/LJ048-0252.wav|tests/data/ljspeech/wavs/LJ048-0252.npy +tests/data/ljspeech/wavs/LJ008-0109.wav|tests/data/ljspeech/wavs/LJ008-0109.npy +tests/data/ljspeech/wavs/LJ048-0138.wav|tests/data/ljspeech/wavs/LJ048-0138.npy +tests/data/ljspeech/wavs/LJ050-0168.wav|tests/data/ljspeech/wavs/LJ050-0168.npy +tests/data/ljspeech/wavs/LJ019-0251.wav|tests/data/ljspeech/wavs/LJ019-0251.npy +tests/data/ljspeech/wavs/LJ028-0431.wav|tests/data/ljspeech/wavs/LJ028-0431.npy +tests/data/ljspeech/wavs/LJ028-0308.wav|tests/data/ljspeech/wavs/LJ028-0308.npy +tests/data/ljspeech/wavs/LJ011-0017.wav|tests/data/ljspeech/wavs/LJ011-0017.npy +tests/data/ljspeech/wavs/LJ008-0164.wav|tests/data/ljspeech/wavs/LJ008-0164.npy +tests/data/ljspeech/wavs/LJ007-0041.wav|tests/data/ljspeech/wavs/LJ007-0041.npy +tests/data/ljspeech/wavs/LJ025-0112.wav|tests/data/ljspeech/wavs/LJ025-0112.npy +tests/data/ljspeech/wavs/LJ020-0076.wav|tests/data/ljspeech/wavs/LJ020-0076.npy +tests/data/ljspeech/wavs/LJ043-0101.wav|tests/data/ljspeech/wavs/LJ043-0101.npy +tests/data/ljspeech/wavs/LJ031-0061.wav|tests/data/ljspeech/wavs/LJ031-0061.npy +tests/data/ljspeech/wavs/LJ015-0073.wav|tests/data/ljspeech/wavs/LJ015-0073.npy +tests/data/ljspeech/wavs/LJ039-0203.wav|tests/data/ljspeech/wavs/LJ039-0203.npy +tests/data/ljspeech/wavs/LJ038-0225.wav|tests/data/ljspeech/wavs/LJ038-0225.npy +tests/data/ljspeech/wavs/LJ022-0150.wav|tests/data/ljspeech/wavs/LJ022-0150.npy +tests/data/ljspeech/wavs/LJ045-0089.wav|tests/data/ljspeech/wavs/LJ045-0089.npy +tests/data/ljspeech/wavs/LJ030-0095.wav|tests/data/ljspeech/wavs/LJ030-0095.npy +tests/data/ljspeech/wavs/LJ019-0087.wav|tests/data/ljspeech/wavs/LJ019-0087.npy +tests/data/ljspeech/wavs/LJ003-0235.wav|tests/data/ljspeech/wavs/LJ003-0235.npy +tests/data/ljspeech/wavs/LJ044-0198.wav|tests/data/ljspeech/wavs/LJ044-0198.npy +tests/data/ljspeech/wavs/LJ035-0194.wav|tests/data/ljspeech/wavs/LJ035-0194.npy +tests/data/ljspeech/wavs/LJ022-0166.wav|tests/data/ljspeech/wavs/LJ022-0166.npy +tests/data/ljspeech/wavs/LJ018-0382.wav|tests/data/ljspeech/wavs/LJ018-0382.npy +tests/data/ljspeech/wavs/LJ011-0219.wav|tests/data/ljspeech/wavs/LJ011-0219.npy +tests/data/ljspeech/wavs/LJ045-0116.wav|tests/data/ljspeech/wavs/LJ045-0116.npy +tests/data/ljspeech/wavs/LJ043-0120.wav|tests/data/ljspeech/wavs/LJ043-0120.npy +tests/data/ljspeech/wavs/LJ013-0157.wav|tests/data/ljspeech/wavs/LJ013-0157.npy +tests/data/ljspeech/wavs/LJ015-0095.wav|tests/data/ljspeech/wavs/LJ015-0095.npy +tests/data/ljspeech/wavs/LJ022-0133.wav|tests/data/ljspeech/wavs/LJ022-0133.npy +tests/data/ljspeech/wavs/LJ045-0053.wav|tests/data/ljspeech/wavs/LJ045-0053.npy +tests/data/ljspeech/wavs/LJ048-0183.wav|tests/data/ljspeech/wavs/LJ048-0183.npy +tests/data/ljspeech/wavs/LJ045-0054.wav|tests/data/ljspeech/wavs/LJ045-0054.npy +tests/data/ljspeech/wavs/LJ014-0269.wav|tests/data/ljspeech/wavs/LJ014-0269.npy +tests/data/ljspeech/wavs/LJ018-0397.wav|tests/data/ljspeech/wavs/LJ018-0397.npy +tests/data/ljspeech/wavs/LJ003-0245.wav|tests/data/ljspeech/wavs/LJ003-0245.npy +tests/data/ljspeech/wavs/LJ014-0273.wav|tests/data/ljspeech/wavs/LJ014-0273.npy +tests/data/ljspeech/wavs/LJ037-0269.wav|tests/data/ljspeech/wavs/LJ037-0269.npy +tests/data/ljspeech/wavs/LJ014-0126.wav|tests/data/ljspeech/wavs/LJ014-0126.npy +tests/data/ljspeech/wavs/LJ018-0387.wav|tests/data/ljspeech/wavs/LJ018-0387.npy +tests/data/ljspeech/wavs/LJ006-0088.wav|tests/data/ljspeech/wavs/LJ006-0088.npy +tests/data/ljspeech/wavs/LJ014-0042.wav|tests/data/ljspeech/wavs/LJ014-0042.npy +tests/data/ljspeech/wavs/LJ014-0007.wav|tests/data/ljspeech/wavs/LJ014-0007.npy +tests/data/ljspeech/wavs/LJ043-0072.wav|tests/data/ljspeech/wavs/LJ043-0072.npy +tests/data/ljspeech/wavs/LJ042-0247.wav|tests/data/ljspeech/wavs/LJ042-0247.npy +tests/data/ljspeech/wavs/LJ044-0145.wav|tests/data/ljspeech/wavs/LJ044-0145.npy +tests/data/ljspeech/wavs/LJ012-0151.wav|tests/data/ljspeech/wavs/LJ012-0151.npy +tests/data/ljspeech/wavs/LJ036-0124.wav|tests/data/ljspeech/wavs/LJ036-0124.npy +tests/data/ljspeech/wavs/LJ035-0008.wav|tests/data/ljspeech/wavs/LJ035-0008.npy +tests/data/ljspeech/wavs/LJ022-0043.wav|tests/data/ljspeech/wavs/LJ022-0043.npy +tests/data/ljspeech/wavs/LJ036-0119.wav|tests/data/ljspeech/wavs/LJ036-0119.npy +tests/data/ljspeech/wavs/LJ026-0051.wav|tests/data/ljspeech/wavs/LJ026-0051.npy +tests/data/ljspeech/wavs/LJ048-0065.wav|tests/data/ljspeech/wavs/LJ048-0065.npy +tests/data/ljspeech/wavs/LJ040-0072.wav|tests/data/ljspeech/wavs/LJ040-0072.npy +tests/data/ljspeech/wavs/LJ013-0123.wav|tests/data/ljspeech/wavs/LJ013-0123.npy +tests/data/ljspeech/wavs/LJ005-0032.wav|tests/data/ljspeech/wavs/LJ005-0032.npy +tests/data/ljspeech/wavs/LJ036-0019.wav|tests/data/ljspeech/wavs/LJ036-0019.npy +tests/data/ljspeech/wavs/LJ038-0073.wav|tests/data/ljspeech/wavs/LJ038-0073.npy +tests/data/ljspeech/wavs/LJ042-0188.wav|tests/data/ljspeech/wavs/LJ042-0188.npy +tests/data/ljspeech/wavs/LJ041-0004.wav|tests/data/ljspeech/wavs/LJ041-0004.npy +tests/data/ljspeech/wavs/LJ038-0270.wav|tests/data/ljspeech/wavs/LJ038-0270.npy +tests/data/ljspeech/wavs/LJ012-0226.wav|tests/data/ljspeech/wavs/LJ012-0226.npy +tests/data/ljspeech/wavs/LJ044-0002.wav|tests/data/ljspeech/wavs/LJ044-0002.npy +tests/data/ljspeech/wavs/LJ028-0242.wav|tests/data/ljspeech/wavs/LJ028-0242.npy +tests/data/ljspeech/wavs/LJ034-0013.wav|tests/data/ljspeech/wavs/LJ034-0013.npy +tests/data/ljspeech/wavs/LJ005-0022.wav|tests/data/ljspeech/wavs/LJ005-0022.npy +tests/data/ljspeech/wavs/LJ028-0245.wav|tests/data/ljspeech/wavs/LJ028-0245.npy +tests/data/ljspeech/wavs/LJ046-0105.wav|tests/data/ljspeech/wavs/LJ046-0105.npy +tests/data/ljspeech/wavs/LJ040-0021.wav|tests/data/ljspeech/wavs/LJ040-0021.npy +tests/data/ljspeech/wavs/LJ039-0221.wav|tests/data/ljspeech/wavs/LJ039-0221.npy +tests/data/ljspeech/wavs/LJ028-0247.wav|tests/data/ljspeech/wavs/LJ028-0247.npy +tests/data/ljspeech/wavs/LJ034-0180.wav|tests/data/ljspeech/wavs/LJ034-0180.npy +tests/data/ljspeech/wavs/LJ022-0124.wav|tests/data/ljspeech/wavs/LJ022-0124.npy +tests/data/ljspeech/wavs/LJ012-0108.wav|tests/data/ljspeech/wavs/LJ012-0108.npy +tests/data/ljspeech/wavs/LJ032-0196.wav|tests/data/ljspeech/wavs/LJ032-0196.npy +tests/data/ljspeech/wavs/LJ047-0016.wav|tests/data/ljspeech/wavs/LJ047-0016.npy +tests/data/ljspeech/wavs/LJ032-0123.wav|tests/data/ljspeech/wavs/LJ032-0123.npy +tests/data/ljspeech/wavs/LJ050-0094.wav|tests/data/ljspeech/wavs/LJ050-0094.npy +tests/data/ljspeech/wavs/LJ048-0057.wav|tests/data/ljspeech/wavs/LJ048-0057.npy +tests/data/ljspeech/wavs/LJ026-0028.wav|tests/data/ljspeech/wavs/LJ026-0028.npy +tests/data/ljspeech/wavs/LJ026-0081.wav|tests/data/ljspeech/wavs/LJ026-0081.npy +tests/data/ljspeech/wavs/LJ040-0180.wav|tests/data/ljspeech/wavs/LJ040-0180.npy +tests/data/ljspeech/wavs/LJ047-0245.wav|tests/data/ljspeech/wavs/LJ047-0245.npy +tests/data/ljspeech/wavs/LJ017-0191.wav|tests/data/ljspeech/wavs/LJ017-0191.npy +tests/data/ljspeech/wavs/LJ046-0087.wav|tests/data/ljspeech/wavs/LJ046-0087.npy +tests/data/ljspeech/wavs/LJ037-0046.wav|tests/data/ljspeech/wavs/LJ037-0046.npy +tests/data/ljspeech/wavs/LJ031-0004.wav|tests/data/ljspeech/wavs/LJ031-0004.npy +tests/data/ljspeech/wavs/LJ021-0169.wav|tests/data/ljspeech/wavs/LJ021-0169.npy +tests/data/ljspeech/wavs/LJ016-0414.wav|tests/data/ljspeech/wavs/LJ016-0414.npy +tests/data/ljspeech/wavs/LJ003-0341.wav|tests/data/ljspeech/wavs/LJ003-0341.npy +tests/data/ljspeech/wavs/LJ018-0059.wav|tests/data/ljspeech/wavs/LJ018-0059.npy +tests/data/ljspeech/wavs/LJ026-0107.wav|tests/data/ljspeech/wavs/LJ026-0107.npy +tests/data/ljspeech/wavs/LJ016-0040.wav|tests/data/ljspeech/wavs/LJ016-0040.npy +tests/data/ljspeech/wavs/LJ001-0164.wav|tests/data/ljspeech/wavs/LJ001-0164.npy +tests/data/ljspeech/wavs/LJ038-0249.wav|tests/data/ljspeech/wavs/LJ038-0249.npy +tests/data/ljspeech/wavs/LJ033-0141.wav|tests/data/ljspeech/wavs/LJ033-0141.npy +tests/data/ljspeech/wavs/LJ020-0059.wav|tests/data/ljspeech/wavs/LJ020-0059.npy +tests/data/ljspeech/wavs/LJ001-0071.wav|tests/data/ljspeech/wavs/LJ001-0071.npy +tests/data/ljspeech/wavs/LJ041-0140.wav|tests/data/ljspeech/wavs/LJ041-0140.npy +tests/data/ljspeech/wavs/LJ029-0097.wav|tests/data/ljspeech/wavs/LJ029-0097.npy +tests/data/ljspeech/wavs/LJ038-0227.wav|tests/data/ljspeech/wavs/LJ038-0227.npy +tests/data/ljspeech/wavs/LJ048-0245.wav|tests/data/ljspeech/wavs/LJ048-0245.npy +tests/data/ljspeech/wavs/LJ040-0100.wav|tests/data/ljspeech/wavs/LJ040-0100.npy +tests/data/ljspeech/wavs/LJ046-0239.wav|tests/data/ljspeech/wavs/LJ046-0239.npy +tests/data/ljspeech/wavs/LJ046-0119.wav|tests/data/ljspeech/wavs/LJ046-0119.npy +tests/data/ljspeech/wavs/LJ033-0127.wav|tests/data/ljspeech/wavs/LJ033-0127.npy +tests/data/ljspeech/wavs/LJ010-0111.wav|tests/data/ljspeech/wavs/LJ010-0111.npy +tests/data/ljspeech/wavs/LJ008-0187.wav|tests/data/ljspeech/wavs/LJ008-0187.npy +tests/data/ljspeech/wavs/LJ049-0174.wav|tests/data/ljspeech/wavs/LJ049-0174.npy +tests/data/ljspeech/wavs/LJ026-0008.wav|tests/data/ljspeech/wavs/LJ026-0008.npy +tests/data/ljspeech/wavs/LJ006-0144.wav|tests/data/ljspeech/wavs/LJ006-0144.npy +tests/data/ljspeech/wavs/LJ017-0262.wav|tests/data/ljspeech/wavs/LJ017-0262.npy +tests/data/ljspeech/wavs/LJ012-0296.wav|tests/data/ljspeech/wavs/LJ012-0296.npy +tests/data/ljspeech/wavs/LJ027-0021.wav|tests/data/ljspeech/wavs/LJ027-0021.npy +tests/data/ljspeech/wavs/LJ016-0103.wav|tests/data/ljspeech/wavs/LJ016-0103.npy +tests/data/ljspeech/wavs/LJ004-0083.wav|tests/data/ljspeech/wavs/LJ004-0083.npy +tests/data/ljspeech/wavs/LJ005-0091.wav|tests/data/ljspeech/wavs/LJ005-0091.npy +tests/data/ljspeech/wavs/LJ022-0040.wav|tests/data/ljspeech/wavs/LJ022-0040.npy +tests/data/ljspeech/wavs/LJ011-0206.wav|tests/data/ljspeech/wavs/LJ011-0206.npy +tests/data/ljspeech/wavs/LJ027-0033.wav|tests/data/ljspeech/wavs/LJ027-0033.npy +tests/data/ljspeech/wavs/LJ028-0266.wav|tests/data/ljspeech/wavs/LJ028-0266.npy +tests/data/ljspeech/wavs/LJ019-0248.wav|tests/data/ljspeech/wavs/LJ019-0248.npy +tests/data/ljspeech/wavs/LJ027-0045.wav|tests/data/ljspeech/wavs/LJ027-0045.npy +tests/data/ljspeech/wavs/LJ049-0017.wav|tests/data/ljspeech/wavs/LJ049-0017.npy +tests/data/ljspeech/wavs/LJ008-0163.wav|tests/data/ljspeech/wavs/LJ008-0163.npy +tests/data/ljspeech/wavs/LJ013-0065.wav|tests/data/ljspeech/wavs/LJ013-0065.npy +tests/data/ljspeech/wavs/LJ022-0013.wav|tests/data/ljspeech/wavs/LJ022-0013.npy +tests/data/ljspeech/wavs/LJ002-0169.wav|tests/data/ljspeech/wavs/LJ002-0169.npy +tests/data/ljspeech/wavs/LJ015-0009.wav|tests/data/ljspeech/wavs/LJ015-0009.npy +tests/data/ljspeech/wavs/LJ030-0078.wav|tests/data/ljspeech/wavs/LJ030-0078.npy +tests/data/ljspeech/wavs/LJ010-0006.wav|tests/data/ljspeech/wavs/LJ010-0006.npy +tests/data/ljspeech/wavs/LJ003-0224.wav|tests/data/ljspeech/wavs/LJ003-0224.npy +tests/data/ljspeech/wavs/LJ019-0168.wav|tests/data/ljspeech/wavs/LJ019-0168.npy +tests/data/ljspeech/wavs/LJ028-0276.wav|tests/data/ljspeech/wavs/LJ028-0276.npy +tests/data/ljspeech/wavs/LJ021-0203.wav|tests/data/ljspeech/wavs/LJ021-0203.npy +tests/data/ljspeech/wavs/LJ028-0279.wav|tests/data/ljspeech/wavs/LJ028-0279.npy +tests/data/ljspeech/wavs/LJ021-0073.wav|tests/data/ljspeech/wavs/LJ021-0073.npy +tests/data/ljspeech/wavs/LJ029-0206.wav|tests/data/ljspeech/wavs/LJ029-0206.npy +tests/data/ljspeech/wavs/LJ020-0060.wav|tests/data/ljspeech/wavs/LJ020-0060.npy +tests/data/ljspeech/wavs/LJ028-0064.wav|tests/data/ljspeech/wavs/LJ028-0064.npy +tests/data/ljspeech/wavs/LJ011-0216.wav|tests/data/ljspeech/wavs/LJ011-0216.npy +tests/data/ljspeech/wavs/LJ028-0037.wav|tests/data/ljspeech/wavs/LJ028-0037.npy +tests/data/ljspeech/wavs/LJ009-0031.wav|tests/data/ljspeech/wavs/LJ009-0031.npy +tests/data/ljspeech/wavs/LJ019-0362.wav|tests/data/ljspeech/wavs/LJ019-0362.npy +tests/data/ljspeech/wavs/LJ025-0090.wav|tests/data/ljspeech/wavs/LJ025-0090.npy +tests/data/ljspeech/wavs/LJ050-0064.wav|tests/data/ljspeech/wavs/LJ050-0064.npy +tests/data/ljspeech/wavs/LJ050-0083.wav|tests/data/ljspeech/wavs/LJ050-0083.npy +tests/data/ljspeech/wavs/LJ007-0163.wav|tests/data/ljspeech/wavs/LJ007-0163.npy +tests/data/ljspeech/wavs/LJ012-0084.wav|tests/data/ljspeech/wavs/LJ012-0084.npy +tests/data/ljspeech/wavs/LJ027-0025.wav|tests/data/ljspeech/wavs/LJ027-0025.npy +tests/data/ljspeech/wavs/LJ014-0305.wav|tests/data/ljspeech/wavs/LJ014-0305.npy +tests/data/ljspeech/wavs/LJ011-0147.wav|tests/data/ljspeech/wavs/LJ011-0147.npy +tests/data/ljspeech/wavs/LJ050-0090.wav|tests/data/ljspeech/wavs/LJ050-0090.npy +tests/data/ljspeech/wavs/LJ030-0213.wav|tests/data/ljspeech/wavs/LJ030-0213.npy +tests/data/ljspeech/wavs/LJ028-0347.wav|tests/data/ljspeech/wavs/LJ028-0347.npy +tests/data/ljspeech/wavs/LJ002-0098.wav|tests/data/ljspeech/wavs/LJ002-0098.npy +tests/data/ljspeech/wavs/LJ006-0064.wav|tests/data/ljspeech/wavs/LJ006-0064.npy +tests/data/ljspeech/wavs/LJ009-0091.wav|tests/data/ljspeech/wavs/LJ009-0091.npy +tests/data/ljspeech/wavs/LJ048-0172.wav|tests/data/ljspeech/wavs/LJ048-0172.npy +tests/data/ljspeech/wavs/LJ023-0129.wav|tests/data/ljspeech/wavs/LJ023-0129.npy +tests/data/ljspeech/wavs/LJ023-0082.wav|tests/data/ljspeech/wavs/LJ023-0082.npy +tests/data/ljspeech/wavs/LJ014-0182.wav|tests/data/ljspeech/wavs/LJ014-0182.npy +tests/data/ljspeech/wavs/LJ009-0046.wav|tests/data/ljspeech/wavs/LJ009-0046.npy +tests/data/ljspeech/wavs/LJ004-0088.wav|tests/data/ljspeech/wavs/LJ004-0088.npy +tests/data/ljspeech/wavs/LJ018-0297.wav|tests/data/ljspeech/wavs/LJ018-0297.npy +tests/data/ljspeech/wavs/LJ016-0265.wav|tests/data/ljspeech/wavs/LJ016-0265.npy +tests/data/ljspeech/wavs/LJ028-0335.wav|tests/data/ljspeech/wavs/LJ028-0335.npy +tests/data/ljspeech/wavs/LJ019-0381.wav|tests/data/ljspeech/wavs/LJ019-0381.npy +tests/data/ljspeech/wavs/LJ012-0076.wav|tests/data/ljspeech/wavs/LJ012-0076.npy +tests/data/ljspeech/wavs/LJ013-0242.wav|tests/data/ljspeech/wavs/LJ013-0242.npy +tests/data/ljspeech/wavs/LJ014-0245.wav|tests/data/ljspeech/wavs/LJ014-0245.npy +tests/data/ljspeech/wavs/LJ029-0067.wav|tests/data/ljspeech/wavs/LJ029-0067.npy +tests/data/ljspeech/wavs/LJ019-0345.wav|tests/data/ljspeech/wavs/LJ019-0345.npy +tests/data/ljspeech/wavs/LJ016-0241.wav|tests/data/ljspeech/wavs/LJ016-0241.npy +tests/data/ljspeech/wavs/LJ019-0278.wav|tests/data/ljspeech/wavs/LJ019-0278.npy +tests/data/ljspeech/wavs/LJ043-0047.wav|tests/data/ljspeech/wavs/LJ043-0047.npy +tests/data/ljspeech/wavs/LJ015-0120.wav|tests/data/ljspeech/wavs/LJ015-0120.npy +tests/data/ljspeech/wavs/LJ050-0272.wav|tests/data/ljspeech/wavs/LJ050-0272.npy +tests/data/ljspeech/wavs/LJ043-0109.wav|tests/data/ljspeech/wavs/LJ043-0109.npy +tests/data/ljspeech/wavs/LJ019-0297.wav|tests/data/ljspeech/wavs/LJ019-0297.npy +tests/data/ljspeech/wavs/LJ019-0266.wav|tests/data/ljspeech/wavs/LJ019-0266.npy +tests/data/ljspeech/wavs/LJ020-0005.wav|tests/data/ljspeech/wavs/LJ020-0005.npy +tests/data/ljspeech/wavs/LJ035-0037.wav|tests/data/ljspeech/wavs/LJ035-0037.npy +tests/data/ljspeech/wavs/LJ010-0190.wav|tests/data/ljspeech/wavs/LJ010-0190.npy +tests/data/ljspeech/wavs/LJ025-0128.wav|tests/data/ljspeech/wavs/LJ025-0128.npy +tests/data/ljspeech/wavs/LJ015-0247.wav|tests/data/ljspeech/wavs/LJ015-0247.npy +tests/data/ljspeech/wavs/LJ005-0181.wav|tests/data/ljspeech/wavs/LJ005-0181.npy +tests/data/ljspeech/wavs/LJ020-0021.wav|tests/data/ljspeech/wavs/LJ020-0021.npy +tests/data/ljspeech/wavs/LJ013-0028.wav|tests/data/ljspeech/wavs/LJ013-0028.npy +tests/data/ljspeech/wavs/LJ002-0221.wav|tests/data/ljspeech/wavs/LJ002-0221.npy +tests/data/ljspeech/wavs/LJ014-0291.wav|tests/data/ljspeech/wavs/LJ014-0291.npy +tests/data/ljspeech/wavs/LJ028-0136.wav|tests/data/ljspeech/wavs/LJ028-0136.npy +tests/data/ljspeech/wavs/LJ009-0133.wav|tests/data/ljspeech/wavs/LJ009-0133.npy +tests/data/ljspeech/wavs/LJ011-0276.wav|tests/data/ljspeech/wavs/LJ011-0276.npy +tests/data/ljspeech/wavs/LJ025-0131.wav|tests/data/ljspeech/wavs/LJ025-0131.npy +tests/data/ljspeech/wavs/LJ001-0042.wav|tests/data/ljspeech/wavs/LJ001-0042.npy +tests/data/ljspeech/wavs/LJ028-0186.wav|tests/data/ljspeech/wavs/LJ028-0186.npy +tests/data/ljspeech/wavs/LJ018-0389.wav|tests/data/ljspeech/wavs/LJ018-0389.npy +tests/data/ljspeech/wavs/LJ008-0140.wav|tests/data/ljspeech/wavs/LJ008-0140.npy +tests/data/ljspeech/wavs/LJ014-0167.wav|tests/data/ljspeech/wavs/LJ014-0167.npy +tests/data/ljspeech/wavs/LJ009-0215.wav|tests/data/ljspeech/wavs/LJ009-0215.npy +tests/data/ljspeech/wavs/LJ012-0232.wav|tests/data/ljspeech/wavs/LJ012-0232.npy +tests/data/ljspeech/wavs/LJ049-0228.wav|tests/data/ljspeech/wavs/LJ049-0228.npy +tests/data/ljspeech/wavs/LJ002-0024.wav|tests/data/ljspeech/wavs/LJ002-0024.npy +tests/data/ljspeech/wavs/LJ004-0090.wav|tests/data/ljspeech/wavs/LJ004-0090.npy +tests/data/ljspeech/wavs/LJ040-0104.wav|tests/data/ljspeech/wavs/LJ040-0104.npy +tests/data/ljspeech/wavs/LJ010-0174.wav|tests/data/ljspeech/wavs/LJ010-0174.npy +tests/data/ljspeech/wavs/LJ046-0086.wav|tests/data/ljspeech/wavs/LJ046-0086.npy +tests/data/ljspeech/wavs/LJ042-0149.wav|tests/data/ljspeech/wavs/LJ042-0149.npy +tests/data/ljspeech/wavs/LJ016-0235.wav|tests/data/ljspeech/wavs/LJ016-0235.npy +tests/data/ljspeech/wavs/LJ016-0224.wav|tests/data/ljspeech/wavs/LJ016-0224.npy +tests/data/ljspeech/wavs/LJ007-0157.wav|tests/data/ljspeech/wavs/LJ007-0157.npy +tests/data/ljspeech/wavs/LJ014-0266.wav|tests/data/ljspeech/wavs/LJ014-0266.npy +tests/data/ljspeech/wavs/LJ048-0270.wav|tests/data/ljspeech/wavs/LJ048-0270.npy +tests/data/ljspeech/wavs/LJ008-0045.wav|tests/data/ljspeech/wavs/LJ008-0045.npy +tests/data/ljspeech/wavs/LJ044-0200.wav|tests/data/ljspeech/wavs/LJ044-0200.npy +tests/data/ljspeech/wavs/LJ044-0103.wav|tests/data/ljspeech/wavs/LJ044-0103.npy +tests/data/ljspeech/wavs/LJ037-0064.wav|tests/data/ljspeech/wavs/LJ037-0064.npy +tests/data/ljspeech/wavs/LJ006-0140.wav|tests/data/ljspeech/wavs/LJ006-0140.npy +tests/data/ljspeech/wavs/LJ038-0101.wav|tests/data/ljspeech/wavs/LJ038-0101.npy +tests/data/ljspeech/wavs/LJ040-0160.wav|tests/data/ljspeech/wavs/LJ040-0160.npy +tests/data/ljspeech/wavs/LJ010-0177.wav|tests/data/ljspeech/wavs/LJ010-0177.npy +tests/data/ljspeech/wavs/LJ038-0137.wav|tests/data/ljspeech/wavs/LJ038-0137.npy +tests/data/ljspeech/wavs/LJ047-0138.wav|tests/data/ljspeech/wavs/LJ047-0138.npy +tests/data/ljspeech/wavs/LJ046-0080.wav|tests/data/ljspeech/wavs/LJ046-0080.npy +tests/data/ljspeech/wavs/LJ005-0168.wav|tests/data/ljspeech/wavs/LJ005-0168.npy +tests/data/ljspeech/wavs/LJ048-0277.wav|tests/data/ljspeech/wavs/LJ048-0277.npy +tests/data/ljspeech/wavs/LJ014-0192.wav|tests/data/ljspeech/wavs/LJ014-0192.npy +tests/data/ljspeech/wavs/LJ008-0076.wav|tests/data/ljspeech/wavs/LJ008-0076.npy +tests/data/ljspeech/wavs/LJ028-0399.wav|tests/data/ljspeech/wavs/LJ028-0399.npy +tests/data/ljspeech/wavs/LJ032-0121.wav|tests/data/ljspeech/wavs/LJ032-0121.npy +tests/data/ljspeech/wavs/LJ002-0071.wav|tests/data/ljspeech/wavs/LJ002-0071.npy +tests/data/ljspeech/wavs/LJ010-0133.wav|tests/data/ljspeech/wavs/LJ010-0133.npy +tests/data/ljspeech/wavs/LJ013-0070.wav|tests/data/ljspeech/wavs/LJ013-0070.npy +tests/data/ljspeech/wavs/LJ031-0221.wav|tests/data/ljspeech/wavs/LJ031-0221.npy +tests/data/ljspeech/wavs/LJ033-0077.wav|tests/data/ljspeech/wavs/LJ033-0077.npy +tests/data/ljspeech/wavs/LJ006-0001.wav|tests/data/ljspeech/wavs/LJ006-0001.npy +tests/data/ljspeech/wavs/LJ023-0078.wav|tests/data/ljspeech/wavs/LJ023-0078.npy +tests/data/ljspeech/wavs/LJ048-0028.wav|tests/data/ljspeech/wavs/LJ048-0028.npy +tests/data/ljspeech/wavs/LJ025-0104.wav|tests/data/ljspeech/wavs/LJ025-0104.npy +tests/data/ljspeech/wavs/LJ022-0198.wav|tests/data/ljspeech/wavs/LJ022-0198.npy +tests/data/ljspeech/wavs/LJ009-0202.wav|tests/data/ljspeech/wavs/LJ009-0202.npy +tests/data/ljspeech/wavs/LJ015-0092.wav|tests/data/ljspeech/wavs/LJ015-0092.npy +tests/data/ljspeech/wavs/LJ009-0136.wav|tests/data/ljspeech/wavs/LJ009-0136.npy +tests/data/ljspeech/wavs/LJ027-0134.wav|tests/data/ljspeech/wavs/LJ027-0134.npy +tests/data/ljspeech/wavs/LJ022-0088.wav|tests/data/ljspeech/wavs/LJ022-0088.npy +tests/data/ljspeech/wavs/LJ022-0177.wav|tests/data/ljspeech/wavs/LJ022-0177.npy +tests/data/ljspeech/wavs/LJ037-0268.wav|tests/data/ljspeech/wavs/LJ037-0268.npy +tests/data/ljspeech/wavs/LJ023-0126.wav|tests/data/ljspeech/wavs/LJ023-0126.npy +tests/data/ljspeech/wavs/LJ009-0101.wav|tests/data/ljspeech/wavs/LJ009-0101.npy +tests/data/ljspeech/wavs/LJ025-0172.wav|tests/data/ljspeech/wavs/LJ025-0172.npy +tests/data/ljspeech/wavs/LJ037-0258.wav|tests/data/ljspeech/wavs/LJ037-0258.npy +tests/data/ljspeech/wavs/LJ025-0073.wav|tests/data/ljspeech/wavs/LJ025-0073.npy +tests/data/ljspeech/wavs/LJ015-0239.wav|tests/data/ljspeech/wavs/LJ015-0239.npy +tests/data/ljspeech/wavs/LJ023-0064.wav|tests/data/ljspeech/wavs/LJ023-0064.npy +tests/data/ljspeech/wavs/LJ025-0142.wav|tests/data/ljspeech/wavs/LJ025-0142.npy +tests/data/ljspeech/wavs/LJ037-0234.wav|tests/data/ljspeech/wavs/LJ037-0234.npy +tests/data/ljspeech/wavs/LJ038-0005.wav|tests/data/ljspeech/wavs/LJ038-0005.npy +tests/data/ljspeech/wavs/LJ009-0072.wav|tests/data/ljspeech/wavs/LJ009-0072.npy +tests/data/ljspeech/wavs/LJ028-0101.wav|tests/data/ljspeech/wavs/LJ028-0101.npy +tests/data/ljspeech/wavs/LJ015-0197.wav|tests/data/ljspeech/wavs/LJ015-0197.npy +tests/data/ljspeech/wavs/LJ025-0149.wav|tests/data/ljspeech/wavs/LJ025-0149.npy +tests/data/ljspeech/wavs/LJ025-0029.wav|tests/data/ljspeech/wavs/LJ025-0029.npy +tests/data/ljspeech/wavs/LJ044-0235.wav|tests/data/ljspeech/wavs/LJ044-0235.npy +tests/data/ljspeech/wavs/LJ002-0278.wav|tests/data/ljspeech/wavs/LJ002-0278.npy +tests/data/ljspeech/wavs/LJ004-0043.wav|tests/data/ljspeech/wavs/LJ004-0043.npy +tests/data/ljspeech/wavs/LJ033-0109.wav|tests/data/ljspeech/wavs/LJ033-0109.npy +tests/data/ljspeech/wavs/LJ026-0114.wav|tests/data/ljspeech/wavs/LJ026-0114.npy +tests/data/ljspeech/wavs/LJ008-0196.wav|tests/data/ljspeech/wavs/LJ008-0196.npy +tests/data/ljspeech/wavs/LJ002-0137.wav|tests/data/ljspeech/wavs/LJ002-0137.npy +tests/data/ljspeech/wavs/LJ032-0192.wav|tests/data/ljspeech/wavs/LJ032-0192.npy +tests/data/ljspeech/wavs/LJ045-0017.wav|tests/data/ljspeech/wavs/LJ045-0017.npy +tests/data/ljspeech/wavs/LJ021-0190.wav|tests/data/ljspeech/wavs/LJ021-0190.npy +tests/data/ljspeech/wavs/LJ037-0189.wav|tests/data/ljspeech/wavs/LJ037-0189.npy +tests/data/ljspeech/wavs/LJ025-0080.wav|tests/data/ljspeech/wavs/LJ025-0080.npy +tests/data/ljspeech/wavs/LJ021-0137.wav|tests/data/ljspeech/wavs/LJ021-0137.npy +tests/data/ljspeech/wavs/LJ034-0214.wav|tests/data/ljspeech/wavs/LJ034-0214.npy +tests/data/ljspeech/wavs/LJ028-0110.wav|tests/data/ljspeech/wavs/LJ028-0110.npy +tests/data/ljspeech/wavs/LJ048-0210.wav|tests/data/ljspeech/wavs/LJ048-0210.npy +tests/data/ljspeech/wavs/LJ010-0050.wav|tests/data/ljspeech/wavs/LJ010-0050.npy +tests/data/ljspeech/wavs/LJ009-0087.wav|tests/data/ljspeech/wavs/LJ009-0087.npy +tests/data/ljspeech/wavs/LJ046-0029.wav|tests/data/ljspeech/wavs/LJ046-0029.npy +tests/data/ljspeech/wavs/LJ048-0020.wav|tests/data/ljspeech/wavs/LJ048-0020.npy +tests/data/ljspeech/wavs/LJ008-0305.wav|tests/data/ljspeech/wavs/LJ008-0305.npy +tests/data/ljspeech/wavs/LJ020-0045.wav|tests/data/ljspeech/wavs/LJ020-0045.npy +tests/data/ljspeech/wavs/LJ004-0003.wav|tests/data/ljspeech/wavs/LJ004-0003.npy +tests/data/ljspeech/wavs/LJ038-0057.wav|tests/data/ljspeech/wavs/LJ038-0057.npy +tests/data/ljspeech/wavs/LJ008-0145.wav|tests/data/ljspeech/wavs/LJ008-0145.npy +tests/data/ljspeech/wavs/LJ010-0066.wav|tests/data/ljspeech/wavs/LJ010-0066.npy +tests/data/ljspeech/wavs/LJ032-0152.wav|tests/data/ljspeech/wavs/LJ032-0152.npy +tests/data/ljspeech/wavs/LJ046-0203.wav|tests/data/ljspeech/wavs/LJ046-0203.npy +tests/data/ljspeech/wavs/LJ012-0088.wav|tests/data/ljspeech/wavs/LJ012-0088.npy +tests/data/ljspeech/wavs/LJ003-0060.wav|tests/data/ljspeech/wavs/LJ003-0060.npy +tests/data/ljspeech/wavs/LJ014-0339.wav|tests/data/ljspeech/wavs/LJ014-0339.npy +tests/data/ljspeech/wavs/LJ006-0062.wav|tests/data/ljspeech/wavs/LJ006-0062.npy +tests/data/ljspeech/wavs/LJ003-0059.wav|tests/data/ljspeech/wavs/LJ003-0059.npy +tests/data/ljspeech/wavs/LJ034-0218.wav|tests/data/ljspeech/wavs/LJ034-0218.npy +tests/data/ljspeech/wavs/LJ034-0190.wav|tests/data/ljspeech/wavs/LJ034-0190.npy +tests/data/ljspeech/wavs/LJ038-0030.wav|tests/data/ljspeech/wavs/LJ038-0030.npy +tests/data/ljspeech/wavs/LJ044-0140.wav|tests/data/ljspeech/wavs/LJ044-0140.npy +tests/data/ljspeech/wavs/LJ032-0246.wav|tests/data/ljspeech/wavs/LJ032-0246.npy +tests/data/ljspeech/wavs/LJ036-0154.wav|tests/data/ljspeech/wavs/LJ036-0154.npy +tests/data/ljspeech/wavs/LJ038-0281.wav|tests/data/ljspeech/wavs/LJ038-0281.npy +tests/data/ljspeech/wavs/LJ011-0245.wav|tests/data/ljspeech/wavs/LJ011-0245.npy +tests/data/ljspeech/wavs/LJ037-0029.wav|tests/data/ljspeech/wavs/LJ037-0029.npy +tests/data/ljspeech/wavs/LJ027-0016.wav|tests/data/ljspeech/wavs/LJ027-0016.npy +tests/data/ljspeech/wavs/LJ047-0029.wav|tests/data/ljspeech/wavs/LJ047-0029.npy +tests/data/ljspeech/wavs/LJ006-0193.wav|tests/data/ljspeech/wavs/LJ006-0193.npy +tests/data/ljspeech/wavs/LJ014-0080.wav|tests/data/ljspeech/wavs/LJ014-0080.npy +tests/data/ljspeech/wavs/LJ005-0263.wav|tests/data/ljspeech/wavs/LJ005-0263.npy +tests/data/ljspeech/wavs/LJ038-0037.wav|tests/data/ljspeech/wavs/LJ038-0037.npy +tests/data/ljspeech/wavs/LJ030-0033.wav|tests/data/ljspeech/wavs/LJ030-0033.npy +tests/data/ljspeech/wavs/LJ005-0109.wav|tests/data/ljspeech/wavs/LJ005-0109.npy +tests/data/ljspeech/wavs/LJ021-0078.wav|tests/data/ljspeech/wavs/LJ021-0078.npy +tests/data/ljspeech/wavs/LJ048-0162.wav|tests/data/ljspeech/wavs/LJ048-0162.npy +tests/data/ljspeech/wavs/LJ018-0057.wav|tests/data/ljspeech/wavs/LJ018-0057.npy +tests/data/ljspeech/wavs/LJ021-0087.wav|tests/data/ljspeech/wavs/LJ021-0087.npy +tests/data/ljspeech/wavs/LJ042-0221.wav|tests/data/ljspeech/wavs/LJ042-0221.npy +tests/data/ljspeech/wavs/LJ048-0121.wav|tests/data/ljspeech/wavs/LJ048-0121.npy +tests/data/ljspeech/wavs/LJ030-0128.wav|tests/data/ljspeech/wavs/LJ030-0128.npy +tests/data/ljspeech/wavs/LJ014-0121.wav|tests/data/ljspeech/wavs/LJ014-0121.npy +tests/data/ljspeech/wavs/LJ011-0051.wav|tests/data/ljspeech/wavs/LJ011-0051.npy +tests/data/ljspeech/wavs/LJ040-0219.wav|tests/data/ljspeech/wavs/LJ040-0219.npy +tests/data/ljspeech/wavs/LJ033-0053.wav|tests/data/ljspeech/wavs/LJ033-0053.npy +tests/data/ljspeech/wavs/LJ038-0272.wav|tests/data/ljspeech/wavs/LJ038-0272.npy +tests/data/ljspeech/wavs/LJ014-0128.wav|tests/data/ljspeech/wavs/LJ014-0128.npy +tests/data/ljspeech/wavs/LJ018-0204.wav|tests/data/ljspeech/wavs/LJ018-0204.npy +tests/data/ljspeech/wavs/LJ003-0158.wav|tests/data/ljspeech/wavs/LJ003-0158.npy +tests/data/ljspeech/wavs/LJ028-0230.wav|tests/data/ljspeech/wavs/LJ028-0230.npy +tests/data/ljspeech/wavs/LJ016-0320.wav|tests/data/ljspeech/wavs/LJ016-0320.npy +tests/data/ljspeech/wavs/LJ017-0147.wav|tests/data/ljspeech/wavs/LJ017-0147.npy +tests/data/ljspeech/wavs/LJ043-0079.wav|tests/data/ljspeech/wavs/LJ043-0079.npy +tests/data/ljspeech/wavs/LJ044-0066.wav|tests/data/ljspeech/wavs/LJ044-0066.npy +tests/data/ljspeech/wavs/LJ011-0241.wav|tests/data/ljspeech/wavs/LJ011-0241.npy +tests/data/ljspeech/wavs/LJ030-0206.wav|tests/data/ljspeech/wavs/LJ030-0206.npy +tests/data/ljspeech/wavs/LJ046-0147.wav|tests/data/ljspeech/wavs/LJ046-0147.npy +tests/data/ljspeech/wavs/LJ043-0039.wav|tests/data/ljspeech/wavs/LJ043-0039.npy +tests/data/ljspeech/wavs/LJ036-0089.wav|tests/data/ljspeech/wavs/LJ036-0089.npy +tests/data/ljspeech/wavs/LJ049-0060.wav|tests/data/ljspeech/wavs/LJ049-0060.npy +tests/data/ljspeech/wavs/LJ014-0337.wav|tests/data/ljspeech/wavs/LJ014-0337.npy +tests/data/ljspeech/wavs/LJ016-0077.wav|tests/data/ljspeech/wavs/LJ016-0077.npy +tests/data/ljspeech/wavs/LJ036-0085.wav|tests/data/ljspeech/wavs/LJ036-0085.npy +tests/data/ljspeech/wavs/LJ004-0153.wav|tests/data/ljspeech/wavs/LJ004-0153.npy +tests/data/ljspeech/wavs/LJ032-0222.wav|tests/data/ljspeech/wavs/LJ032-0222.npy +tests/data/ljspeech/wavs/LJ008-0212.wav|tests/data/ljspeech/wavs/LJ008-0212.npy +tests/data/ljspeech/wavs/LJ016-0442.wav|tests/data/ljspeech/wavs/LJ016-0442.npy +tests/data/ljspeech/wavs/LJ006-0158.wav|tests/data/ljspeech/wavs/LJ006-0158.npy +tests/data/ljspeech/wavs/LJ013-0257.wav|tests/data/ljspeech/wavs/LJ013-0257.npy +tests/data/ljspeech/wavs/LJ044-0077.wav|tests/data/ljspeech/wavs/LJ044-0077.npy +tests/data/ljspeech/wavs/LJ003-0314.wav|tests/data/ljspeech/wavs/LJ003-0314.npy +tests/data/ljspeech/wavs/LJ013-0066.wav|tests/data/ljspeech/wavs/LJ013-0066.npy +tests/data/ljspeech/wavs/LJ017-0108.wav|tests/data/ljspeech/wavs/LJ017-0108.npy +tests/data/ljspeech/wavs/LJ044-0092.wav|tests/data/ljspeech/wavs/LJ044-0092.npy +tests/data/ljspeech/wavs/LJ011-0037.wav|tests/data/ljspeech/wavs/LJ011-0037.npy +tests/data/ljspeech/wavs/LJ029-0045.wav|tests/data/ljspeech/wavs/LJ029-0045.npy +tests/data/ljspeech/wavs/LJ010-0054.wav|tests/data/ljspeech/wavs/LJ010-0054.npy +tests/data/ljspeech/wavs/LJ011-0009.wav|tests/data/ljspeech/wavs/LJ011-0009.npy +tests/data/ljspeech/wavs/LJ005-0079.wav|tests/data/ljspeech/wavs/LJ005-0079.npy +tests/data/ljspeech/wavs/LJ004-0170.wav|tests/data/ljspeech/wavs/LJ004-0170.npy +tests/data/ljspeech/wavs/LJ005-0108.wav|tests/data/ljspeech/wavs/LJ005-0108.npy +tests/data/ljspeech/wavs/LJ038-0234.wav|tests/data/ljspeech/wavs/LJ038-0234.npy +tests/data/ljspeech/wavs/LJ038-0299.wav|tests/data/ljspeech/wavs/LJ038-0299.npy +tests/data/ljspeech/wavs/LJ001-0180.wav|tests/data/ljspeech/wavs/LJ001-0180.npy +tests/data/ljspeech/wavs/LJ038-0166.wav|tests/data/ljspeech/wavs/LJ038-0166.npy +tests/data/ljspeech/wavs/LJ040-0193.wav|tests/data/ljspeech/wavs/LJ040-0193.npy +tests/data/ljspeech/wavs/LJ050-0227.wav|tests/data/ljspeech/wavs/LJ050-0227.npy +tests/data/ljspeech/wavs/LJ038-0082.wav|tests/data/ljspeech/wavs/LJ038-0082.npy +tests/data/ljspeech/wavs/LJ017-0122.wav|tests/data/ljspeech/wavs/LJ017-0122.npy +tests/data/ljspeech/wavs/LJ007-0001.wav|tests/data/ljspeech/wavs/LJ007-0001.npy +tests/data/ljspeech/wavs/LJ032-0200.wav|tests/data/ljspeech/wavs/LJ032-0200.npy +tests/data/ljspeech/wavs/LJ012-0143.wav|tests/data/ljspeech/wavs/LJ012-0143.npy +tests/data/ljspeech/wavs/LJ027-0169.wav|tests/data/ljspeech/wavs/LJ027-0169.npy +tests/data/ljspeech/wavs/LJ049-0227.wav|tests/data/ljspeech/wavs/LJ049-0227.npy +tests/data/ljspeech/wavs/LJ002-0229.wav|tests/data/ljspeech/wavs/LJ002-0229.npy +tests/data/ljspeech/wavs/LJ007-0077.wav|tests/data/ljspeech/wavs/LJ007-0077.npy +tests/data/ljspeech/wavs/LJ028-0056.wav|tests/data/ljspeech/wavs/LJ028-0056.npy +tests/data/ljspeech/wavs/LJ005-0130.wav|tests/data/ljspeech/wavs/LJ005-0130.npy +tests/data/ljspeech/wavs/LJ040-0036.wav|tests/data/ljspeech/wavs/LJ040-0036.npy +tests/data/ljspeech/wavs/LJ047-0008.wav|tests/data/ljspeech/wavs/LJ047-0008.npy +tests/data/ljspeech/wavs/LJ001-0101.wav|tests/data/ljspeech/wavs/LJ001-0101.npy +tests/data/ljspeech/wavs/LJ014-0336.wav|tests/data/ljspeech/wavs/LJ014-0336.npy +tests/data/ljspeech/wavs/LJ013-0057.wav|tests/data/ljspeech/wavs/LJ013-0057.npy +tests/data/ljspeech/wavs/LJ028-0015.wav|tests/data/ljspeech/wavs/LJ028-0015.npy +tests/data/ljspeech/wavs/LJ019-0351.wav|tests/data/ljspeech/wavs/LJ019-0351.npy +tests/data/ljspeech/wavs/LJ011-0072.wav|tests/data/ljspeech/wavs/LJ011-0072.npy +tests/data/ljspeech/wavs/LJ006-0185.wav|tests/data/ljspeech/wavs/LJ006-0185.npy +tests/data/ljspeech/wavs/LJ022-0068.wav|tests/data/ljspeech/wavs/LJ022-0068.npy +tests/data/ljspeech/wavs/LJ011-0010.wav|tests/data/ljspeech/wavs/LJ011-0010.npy +tests/data/ljspeech/wavs/LJ018-0071.wav|tests/data/ljspeech/wavs/LJ018-0071.npy +tests/data/ljspeech/wavs/LJ028-0194.wav|tests/data/ljspeech/wavs/LJ028-0194.npy +tests/data/ljspeech/wavs/LJ004-0108.wav|tests/data/ljspeech/wavs/LJ004-0108.npy +tests/data/ljspeech/wavs/LJ046-0111.wav|tests/data/ljspeech/wavs/LJ046-0111.npy +tests/data/ljspeech/wavs/LJ003-0255.wav|tests/data/ljspeech/wavs/LJ003-0255.npy +tests/data/ljspeech/wavs/LJ009-0214.wav|tests/data/ljspeech/wavs/LJ009-0214.npy +tests/data/ljspeech/wavs/LJ049-0230.wav|tests/data/ljspeech/wavs/LJ049-0230.npy +tests/data/ljspeech/wavs/LJ037-0005.wav|tests/data/ljspeech/wavs/LJ037-0005.npy +tests/data/ljspeech/wavs/LJ026-0143.wav|tests/data/ljspeech/wavs/LJ026-0143.npy +tests/data/ljspeech/wavs/LJ025-0066.wav|tests/data/ljspeech/wavs/LJ025-0066.npy +tests/data/ljspeech/wavs/LJ023-0135.wav|tests/data/ljspeech/wavs/LJ023-0135.npy +tests/data/ljspeech/wavs/LJ017-0019.wav|tests/data/ljspeech/wavs/LJ017-0019.npy +tests/data/ljspeech/wavs/LJ014-0055.wav|tests/data/ljspeech/wavs/LJ014-0055.npy +tests/data/ljspeech/wavs/LJ047-0083.wav|tests/data/ljspeech/wavs/LJ047-0083.npy +tests/data/ljspeech/wavs/LJ016-0157.wav|tests/data/ljspeech/wavs/LJ016-0157.npy +tests/data/ljspeech/wavs/LJ024-0043.wav|tests/data/ljspeech/wavs/LJ024-0043.npy +tests/data/ljspeech/wavs/LJ030-0247.wav|tests/data/ljspeech/wavs/LJ030-0247.npy +tests/data/ljspeech/wavs/LJ041-0191.wav|tests/data/ljspeech/wavs/LJ041-0191.npy +tests/data/ljspeech/wavs/LJ014-0064.wav|tests/data/ljspeech/wavs/LJ014-0064.npy +tests/data/ljspeech/wavs/LJ024-0079.wav|tests/data/ljspeech/wavs/LJ024-0079.npy +tests/data/ljspeech/wavs/LJ041-0062.wav|tests/data/ljspeech/wavs/LJ041-0062.npy +tests/data/ljspeech/wavs/LJ030-0060.wav|tests/data/ljspeech/wavs/LJ030-0060.npy +tests/data/ljspeech/wavs/LJ022-0032.wav|tests/data/ljspeech/wavs/LJ022-0032.npy +tests/data/ljspeech/wavs/LJ002-0214.wav|tests/data/ljspeech/wavs/LJ002-0214.npy +tests/data/ljspeech/wavs/LJ002-0258.wav|tests/data/ljspeech/wavs/LJ002-0258.npy +tests/data/ljspeech/wavs/LJ023-0100.wav|tests/data/ljspeech/wavs/LJ023-0100.npy +tests/data/ljspeech/wavs/LJ032-0271.wav|tests/data/ljspeech/wavs/LJ032-0271.npy +tests/data/ljspeech/wavs/LJ032-0272.wav|tests/data/ljspeech/wavs/LJ032-0272.npy +tests/data/ljspeech/wavs/LJ013-0229.wav|tests/data/ljspeech/wavs/LJ013-0229.npy +tests/data/ljspeech/wavs/LJ032-0242.wav|tests/data/ljspeech/wavs/LJ032-0242.npy +tests/data/ljspeech/wavs/LJ012-0215.wav|tests/data/ljspeech/wavs/LJ012-0215.npy +tests/data/ljspeech/wavs/LJ022-0015.wav|tests/data/ljspeech/wavs/LJ022-0015.npy +tests/data/ljspeech/wavs/LJ006-0237.wav|tests/data/ljspeech/wavs/LJ006-0237.npy +tests/data/ljspeech/wavs/LJ017-0240.wav|tests/data/ljspeech/wavs/LJ017-0240.npy +tests/data/ljspeech/wavs/LJ017-0055.wav|tests/data/ljspeech/wavs/LJ017-0055.npy +tests/data/ljspeech/wavs/LJ050-0010.wav|tests/data/ljspeech/wavs/LJ050-0010.npy +tests/data/ljspeech/wavs/LJ039-0055.wav|tests/data/ljspeech/wavs/LJ039-0055.npy +tests/data/ljspeech/wavs/LJ015-0227.wav|tests/data/ljspeech/wavs/LJ015-0227.npy +tests/data/ljspeech/wavs/LJ007-0031.wav|tests/data/ljspeech/wavs/LJ007-0031.npy +tests/data/ljspeech/wavs/LJ050-0141.wav|tests/data/ljspeech/wavs/LJ050-0141.npy +tests/data/ljspeech/wavs/LJ018-0317.wav|tests/data/ljspeech/wavs/LJ018-0317.npy +tests/data/ljspeech/wavs/LJ019-0230.wav|tests/data/ljspeech/wavs/LJ019-0230.npy +tests/data/ljspeech/wavs/LJ047-0192.wav|tests/data/ljspeech/wavs/LJ047-0192.npy +tests/data/ljspeech/wavs/LJ016-0313.wav|tests/data/ljspeech/wavs/LJ016-0313.npy +tests/data/ljspeech/wavs/LJ039-0155.wav|tests/data/ljspeech/wavs/LJ039-0155.npy +tests/data/ljspeech/wavs/LJ043-0132.wav|tests/data/ljspeech/wavs/LJ043-0132.npy +tests/data/ljspeech/wavs/LJ021-0143.wav|tests/data/ljspeech/wavs/LJ021-0143.npy +tests/data/ljspeech/wavs/LJ047-0090.wav|tests/data/ljspeech/wavs/LJ047-0090.npy +tests/data/ljspeech/wavs/LJ010-0215.wav|tests/data/ljspeech/wavs/LJ010-0215.npy +tests/data/ljspeech/wavs/LJ033-0027.wav|tests/data/ljspeech/wavs/LJ033-0027.npy +tests/data/ljspeech/wavs/LJ045-0064.wav|tests/data/ljspeech/wavs/LJ045-0064.npy +tests/data/ljspeech/wavs/LJ004-0069.wav|tests/data/ljspeech/wavs/LJ004-0069.npy +tests/data/ljspeech/wavs/LJ018-0246.wav|tests/data/ljspeech/wavs/LJ018-0246.npy +tests/data/ljspeech/wavs/LJ050-0105.wav|tests/data/ljspeech/wavs/LJ050-0105.npy +tests/data/ljspeech/wavs/LJ002-0018.wav|tests/data/ljspeech/wavs/LJ002-0018.npy +tests/data/ljspeech/wavs/LJ045-0138.wav|tests/data/ljspeech/wavs/LJ045-0138.npy +tests/data/ljspeech/wavs/LJ042-0113.wav|tests/data/ljspeech/wavs/LJ042-0113.npy +tests/data/ljspeech/wavs/LJ014-0206.wav|tests/data/ljspeech/wavs/LJ014-0206.npy +tests/data/ljspeech/wavs/LJ010-0194.wav|tests/data/ljspeech/wavs/LJ010-0194.npy +tests/data/ljspeech/wavs/LJ030-0117.wav|tests/data/ljspeech/wavs/LJ030-0117.npy +tests/data/ljspeech/wavs/LJ030-0092.wav|tests/data/ljspeech/wavs/LJ030-0092.npy +tests/data/ljspeech/wavs/LJ039-0057.wav|tests/data/ljspeech/wavs/LJ039-0057.npy +tests/data/ljspeech/wavs/LJ018-0305.wav|tests/data/ljspeech/wavs/LJ018-0305.npy +tests/data/ljspeech/wavs/LJ003-0125.wav|tests/data/ljspeech/wavs/LJ003-0125.npy +tests/data/ljspeech/wavs/LJ035-0126.wav|tests/data/ljspeech/wavs/LJ035-0126.npy +tests/data/ljspeech/wavs/LJ046-0100.wav|tests/data/ljspeech/wavs/LJ046-0100.npy +tests/data/ljspeech/wavs/LJ005-0090.wav|tests/data/ljspeech/wavs/LJ005-0090.npy +tests/data/ljspeech/wavs/LJ049-0023.wav|tests/data/ljspeech/wavs/LJ049-0023.npy +tests/data/ljspeech/wavs/LJ009-0238.wav|tests/data/ljspeech/wavs/LJ009-0238.npy +tests/data/ljspeech/wavs/LJ034-0136.wav|tests/data/ljspeech/wavs/LJ034-0136.npy +tests/data/ljspeech/wavs/LJ046-0229.wav|tests/data/ljspeech/wavs/LJ046-0229.npy +tests/data/ljspeech/wavs/LJ032-0073.wav|tests/data/ljspeech/wavs/LJ032-0073.npy +tests/data/ljspeech/wavs/LJ010-0296.wav|tests/data/ljspeech/wavs/LJ010-0296.npy +tests/data/ljspeech/wavs/LJ037-0246.wav|tests/data/ljspeech/wavs/LJ037-0246.npy +tests/data/ljspeech/wavs/LJ027-0050.wav|tests/data/ljspeech/wavs/LJ027-0050.npy +tests/data/ljspeech/wavs/LJ040-0222.wav|tests/data/ljspeech/wavs/LJ040-0222.npy +tests/data/ljspeech/wavs/LJ045-0156.wav|tests/data/ljspeech/wavs/LJ045-0156.npy +tests/data/ljspeech/wavs/LJ003-0148.wav|tests/data/ljspeech/wavs/LJ003-0148.npy +tests/data/ljspeech/wavs/LJ027-0035.wav|tests/data/ljspeech/wavs/LJ027-0035.npy +tests/data/ljspeech/wavs/LJ038-0119.wav|tests/data/ljspeech/wavs/LJ038-0119.npy +tests/data/ljspeech/wavs/LJ050-0018.wav|tests/data/ljspeech/wavs/LJ050-0018.npy +tests/data/ljspeech/wavs/LJ046-0120.wav|tests/data/ljspeech/wavs/LJ046-0120.npy +tests/data/ljspeech/wavs/LJ010-0245.wav|tests/data/ljspeech/wavs/LJ010-0245.npy +tests/data/ljspeech/wavs/LJ010-0025.wav|tests/data/ljspeech/wavs/LJ010-0025.npy +tests/data/ljspeech/wavs/LJ020-0094.wav|tests/data/ljspeech/wavs/LJ020-0094.npy +tests/data/ljspeech/wavs/LJ005-0177.wav|tests/data/ljspeech/wavs/LJ005-0177.npy +tests/data/ljspeech/wavs/LJ042-0164.wav|tests/data/ljspeech/wavs/LJ042-0164.npy +tests/data/ljspeech/wavs/LJ007-0175.wav|tests/data/ljspeech/wavs/LJ007-0175.npy +tests/data/ljspeech/wavs/LJ015-0018.wav|tests/data/ljspeech/wavs/LJ015-0018.npy +tests/data/ljspeech/wavs/LJ003-0303.wav|tests/data/ljspeech/wavs/LJ003-0303.npy +tests/data/ljspeech/wavs/LJ034-0176.wav|tests/data/ljspeech/wavs/LJ034-0176.npy +tests/data/ljspeech/wavs/LJ018-0264.wav|tests/data/ljspeech/wavs/LJ018-0264.npy +tests/data/ljspeech/wavs/LJ011-0258.wav|tests/data/ljspeech/wavs/LJ011-0258.npy +tests/data/ljspeech/wavs/LJ016-0417.wav|tests/data/ljspeech/wavs/LJ016-0417.npy +tests/data/ljspeech/wavs/LJ021-0066.wav|tests/data/ljspeech/wavs/LJ021-0066.npy +tests/data/ljspeech/wavs/LJ007-0138.wav|tests/data/ljspeech/wavs/LJ007-0138.npy +tests/data/ljspeech/wavs/LJ017-0093.wav|tests/data/ljspeech/wavs/LJ017-0093.npy +tests/data/ljspeech/wavs/LJ029-0060.wav|tests/data/ljspeech/wavs/LJ029-0060.npy +tests/data/ljspeech/wavs/LJ012-0287.wav|tests/data/ljspeech/wavs/LJ012-0287.npy +tests/data/ljspeech/wavs/LJ001-0097.wav|tests/data/ljspeech/wavs/LJ001-0097.npy +tests/data/ljspeech/wavs/LJ007-0187.wav|tests/data/ljspeech/wavs/LJ007-0187.npy +tests/data/ljspeech/wavs/LJ032-0003.wav|tests/data/ljspeech/wavs/LJ032-0003.npy +tests/data/ljspeech/wavs/LJ038-0153.wav|tests/data/ljspeech/wavs/LJ038-0153.npy +tests/data/ljspeech/wavs/LJ043-0005.wav|tests/data/ljspeech/wavs/LJ043-0005.npy +tests/data/ljspeech/wavs/LJ037-0184.wav|tests/data/ljspeech/wavs/LJ037-0184.npy +tests/data/ljspeech/wavs/LJ050-0065.wav|tests/data/ljspeech/wavs/LJ050-0065.npy +tests/data/ljspeech/wavs/LJ012-0247.wav|tests/data/ljspeech/wavs/LJ012-0247.npy +tests/data/ljspeech/wavs/LJ033-0029.wav|tests/data/ljspeech/wavs/LJ033-0029.npy +tests/data/ljspeech/wavs/LJ010-0232.wav|tests/data/ljspeech/wavs/LJ010-0232.npy +tests/data/ljspeech/wavs/LJ011-0115.wav|tests/data/ljspeech/wavs/LJ011-0115.npy +tests/data/ljspeech/wavs/LJ015-0007.wav|tests/data/ljspeech/wavs/LJ015-0007.npy +tests/data/ljspeech/wavs/LJ040-0009.wav|tests/data/ljspeech/wavs/LJ040-0009.npy +tests/data/ljspeech/wavs/LJ031-0201.wav|tests/data/ljspeech/wavs/LJ031-0201.npy +tests/data/ljspeech/wavs/LJ040-0140.wav|tests/data/ljspeech/wavs/LJ040-0140.npy +tests/data/ljspeech/wavs/LJ033-0035.wav|tests/data/ljspeech/wavs/LJ033-0035.npy +tests/data/ljspeech/wavs/LJ015-0011.wav|tests/data/ljspeech/wavs/LJ015-0011.npy +tests/data/ljspeech/wavs/LJ049-0091.wav|tests/data/ljspeech/wavs/LJ049-0091.npy +tests/data/ljspeech/wavs/LJ016-0041.wav|tests/data/ljspeech/wavs/LJ016-0041.npy +tests/data/ljspeech/wavs/LJ010-0002.wav|tests/data/ljspeech/wavs/LJ010-0002.npy +tests/data/ljspeech/wavs/LJ016-0379.wav|tests/data/ljspeech/wavs/LJ016-0379.npy +tests/data/ljspeech/wavs/LJ050-0138.wav|tests/data/ljspeech/wavs/LJ050-0138.npy +tests/data/ljspeech/wavs/LJ050-0022.wav|tests/data/ljspeech/wavs/LJ050-0022.npy +tests/data/ljspeech/wavs/LJ003-0336.wav|tests/data/ljspeech/wavs/LJ003-0336.npy +tests/data/ljspeech/wavs/LJ047-0055.wav|tests/data/ljspeech/wavs/LJ047-0055.npy +tests/data/ljspeech/wavs/LJ034-0024.wav|tests/data/ljspeech/wavs/LJ034-0024.npy +tests/data/ljspeech/wavs/LJ050-0191.wav|tests/data/ljspeech/wavs/LJ050-0191.npy +tests/data/ljspeech/wavs/LJ027-0082.wav|tests/data/ljspeech/wavs/LJ027-0082.npy +tests/data/ljspeech/wavs/LJ002-0054.wav|tests/data/ljspeech/wavs/LJ002-0054.npy +tests/data/ljspeech/wavs/LJ039-0190.wav|tests/data/ljspeech/wavs/LJ039-0190.npy +tests/data/ljspeech/wavs/LJ003-0136.wav|tests/data/ljspeech/wavs/LJ003-0136.npy +tests/data/ljspeech/wavs/LJ011-0185.wav|tests/data/ljspeech/wavs/LJ011-0185.npy +tests/data/ljspeech/wavs/LJ017-0237.wav|tests/data/ljspeech/wavs/LJ017-0237.npy +tests/data/ljspeech/wavs/LJ007-0177.wav|tests/data/ljspeech/wavs/LJ007-0177.npy +tests/data/ljspeech/wavs/LJ039-0053.wav|tests/data/ljspeech/wavs/LJ039-0053.npy +tests/data/ljspeech/wavs/LJ027-0097.wav|tests/data/ljspeech/wavs/LJ027-0097.npy +tests/data/ljspeech/wavs/LJ039-0107.wav|tests/data/ljspeech/wavs/LJ039-0107.npy +tests/data/ljspeech/wavs/LJ040-0091.wav|tests/data/ljspeech/wavs/LJ040-0091.npy +tests/data/ljspeech/wavs/LJ045-0130.wav|tests/data/ljspeech/wavs/LJ045-0130.npy +tests/data/ljspeech/wavs/LJ031-0157.wav|tests/data/ljspeech/wavs/LJ031-0157.npy +tests/data/ljspeech/wavs/LJ017-0070.wav|tests/data/ljspeech/wavs/LJ017-0070.npy +tests/data/ljspeech/wavs/LJ012-0034.wav|tests/data/ljspeech/wavs/LJ012-0034.npy +tests/data/ljspeech/wavs/LJ045-0082.wav|tests/data/ljspeech/wavs/LJ045-0082.npy +tests/data/ljspeech/wavs/LJ038-0036.wav|tests/data/ljspeech/wavs/LJ038-0036.npy +tests/data/ljspeech/wavs/LJ025-0037.wav|tests/data/ljspeech/wavs/LJ025-0037.npy +tests/data/ljspeech/wavs/LJ048-0188.wav|tests/data/ljspeech/wavs/LJ048-0188.npy +tests/data/ljspeech/wavs/LJ012-0189.wav|tests/data/ljspeech/wavs/LJ012-0189.npy +tests/data/ljspeech/wavs/LJ041-0177.wav|tests/data/ljspeech/wavs/LJ041-0177.npy +tests/data/ljspeech/wavs/LJ004-0246.wav|tests/data/ljspeech/wavs/LJ004-0246.npy +tests/data/ljspeech/wavs/LJ017-0131.wav|tests/data/ljspeech/wavs/LJ017-0131.npy +tests/data/ljspeech/wavs/LJ049-0186.wav|tests/data/ljspeech/wavs/LJ049-0186.npy +tests/data/ljspeech/wavs/LJ025-0169.wav|tests/data/ljspeech/wavs/LJ025-0169.npy +tests/data/ljspeech/wavs/LJ006-0181.wav|tests/data/ljspeech/wavs/LJ006-0181.npy +tests/data/ljspeech/wavs/LJ029-0172.wav|tests/data/ljspeech/wavs/LJ029-0172.npy +tests/data/ljspeech/wavs/LJ049-0199.wav|tests/data/ljspeech/wavs/LJ049-0199.npy +tests/data/ljspeech/wavs/LJ006-0200.wav|tests/data/ljspeech/wavs/LJ006-0200.npy +tests/data/ljspeech/wavs/LJ023-0093.wav|tests/data/ljspeech/wavs/LJ023-0093.npy +tests/data/ljspeech/wavs/LJ003-0025.wav|tests/data/ljspeech/wavs/LJ003-0025.npy +tests/data/ljspeech/wavs/LJ037-0171.wav|tests/data/ljspeech/wavs/LJ037-0171.npy +tests/data/ljspeech/wavs/LJ009-0147.wav|tests/data/ljspeech/wavs/LJ009-0147.npy +tests/data/ljspeech/wavs/LJ018-0192.wav|tests/data/ljspeech/wavs/LJ018-0192.npy +tests/data/ljspeech/wavs/LJ028-0387.wav|tests/data/ljspeech/wavs/LJ028-0387.npy +tests/data/ljspeech/wavs/LJ011-0161.wav|tests/data/ljspeech/wavs/LJ011-0161.npy +tests/data/ljspeech/wavs/LJ036-0111.wav|tests/data/ljspeech/wavs/LJ036-0111.npy +tests/data/ljspeech/wavs/LJ017-0044.wav|tests/data/ljspeech/wavs/LJ017-0044.npy +tests/data/ljspeech/wavs/LJ029-0020.wav|tests/data/ljspeech/wavs/LJ029-0020.npy +tests/data/ljspeech/wavs/LJ026-0108.wav|tests/data/ljspeech/wavs/LJ026-0108.npy +tests/data/ljspeech/wavs/LJ004-0098.wav|tests/data/ljspeech/wavs/LJ004-0098.npy +tests/data/ljspeech/wavs/LJ048-0099.wav|tests/data/ljspeech/wavs/LJ048-0099.npy +tests/data/ljspeech/wavs/LJ041-0113.wav|tests/data/ljspeech/wavs/LJ041-0113.npy +tests/data/ljspeech/wavs/LJ019-0275.wav|tests/data/ljspeech/wavs/LJ019-0275.npy +tests/data/ljspeech/wavs/LJ014-0271.wav|tests/data/ljspeech/wavs/LJ014-0271.npy +tests/data/ljspeech/wavs/LJ011-0041.wav|tests/data/ljspeech/wavs/LJ011-0041.npy +tests/data/ljspeech/wavs/LJ018-0068.wav|tests/data/ljspeech/wavs/LJ018-0068.npy +tests/data/ljspeech/wavs/LJ018-0164.wav|tests/data/ljspeech/wavs/LJ018-0164.npy +tests/data/ljspeech/wavs/LJ010-0317.wav|tests/data/ljspeech/wavs/LJ010-0317.npy +tests/data/ljspeech/wavs/LJ045-0033.wav|tests/data/ljspeech/wavs/LJ045-0033.npy +tests/data/ljspeech/wavs/LJ029-0140.wav|tests/data/ljspeech/wavs/LJ029-0140.npy +tests/data/ljspeech/wavs/LJ001-0010.wav|tests/data/ljspeech/wavs/LJ001-0010.npy +tests/data/ljspeech/wavs/LJ015-0178.wav|tests/data/ljspeech/wavs/LJ015-0178.npy +tests/data/ljspeech/wavs/LJ042-0207.wav|tests/data/ljspeech/wavs/LJ042-0207.npy +tests/data/ljspeech/wavs/LJ043-0105.wav|tests/data/ljspeech/wavs/LJ043-0105.npy +tests/data/ljspeech/wavs/LJ023-0057.wav|tests/data/ljspeech/wavs/LJ023-0057.npy +tests/data/ljspeech/wavs/LJ045-0039.wav|tests/data/ljspeech/wavs/LJ045-0039.npy +tests/data/ljspeech/wavs/LJ016-0093.wav|tests/data/ljspeech/wavs/LJ016-0093.npy +tests/data/ljspeech/wavs/LJ013-0254.wav|tests/data/ljspeech/wavs/LJ013-0254.npy +tests/data/ljspeech/wavs/LJ017-0039.wav|tests/data/ljspeech/wavs/LJ017-0039.npy +tests/data/ljspeech/wavs/LJ046-0078.wav|tests/data/ljspeech/wavs/LJ046-0078.npy +tests/data/ljspeech/wavs/LJ023-0111.wav|tests/data/ljspeech/wavs/LJ023-0111.npy +tests/data/ljspeech/wavs/LJ028-0006.wav|tests/data/ljspeech/wavs/LJ028-0006.npy +tests/data/ljspeech/wavs/LJ042-0202.wav|tests/data/ljspeech/wavs/LJ042-0202.npy +tests/data/ljspeech/wavs/LJ007-0237.wav|tests/data/ljspeech/wavs/LJ007-0237.npy +tests/data/ljspeech/wavs/LJ019-0374.wav|tests/data/ljspeech/wavs/LJ019-0374.npy +tests/data/ljspeech/wavs/LJ031-0139.wav|tests/data/ljspeech/wavs/LJ031-0139.npy +tests/data/ljspeech/wavs/LJ010-0299.wav|tests/data/ljspeech/wavs/LJ010-0299.npy +tests/data/ljspeech/wavs/LJ003-0062.wav|tests/data/ljspeech/wavs/LJ003-0062.npy +tests/data/ljspeech/wavs/LJ029-0121.wav|tests/data/ljspeech/wavs/LJ029-0121.npy +tests/data/ljspeech/wavs/LJ003-0328.wav|tests/data/ljspeech/wavs/LJ003-0328.npy +tests/data/ljspeech/wavs/LJ006-0117.wav|tests/data/ljspeech/wavs/LJ006-0117.npy +tests/data/ljspeech/wavs/LJ028-0244.wav|tests/data/ljspeech/wavs/LJ028-0244.npy +tests/data/ljspeech/wavs/LJ016-0188.wav|tests/data/ljspeech/wavs/LJ016-0188.npy +tests/data/ljspeech/wavs/LJ031-0195.wav|tests/data/ljspeech/wavs/LJ031-0195.npy +tests/data/ljspeech/wavs/LJ044-0132.wav|tests/data/ljspeech/wavs/LJ044-0132.npy +tests/data/ljspeech/wavs/LJ045-0087.wav|tests/data/ljspeech/wavs/LJ045-0087.npy +tests/data/ljspeech/wavs/LJ044-0199.wav|tests/data/ljspeech/wavs/LJ044-0199.npy +tests/data/ljspeech/wavs/LJ046-0162.wav|tests/data/ljspeech/wavs/LJ046-0162.npy +tests/data/ljspeech/wavs/LJ042-0035.wav|tests/data/ljspeech/wavs/LJ042-0035.npy +tests/data/ljspeech/wavs/LJ037-0101.wav|tests/data/ljspeech/wavs/LJ037-0101.npy +tests/data/ljspeech/wavs/LJ048-0244.wav|tests/data/ljspeech/wavs/LJ048-0244.npy +tests/data/ljspeech/wavs/LJ048-0010.wav|tests/data/ljspeech/wavs/LJ048-0010.npy +tests/data/ljspeech/wavs/LJ005-0033.wav|tests/data/ljspeech/wavs/LJ005-0033.npy +tests/data/ljspeech/wavs/LJ025-0078.wav|tests/data/ljspeech/wavs/LJ025-0078.npy +tests/data/ljspeech/wavs/LJ027-0123.wav|tests/data/ljspeech/wavs/LJ027-0123.npy +tests/data/ljspeech/wavs/LJ047-0224.wav|tests/data/ljspeech/wavs/LJ047-0224.npy +tests/data/ljspeech/wavs/LJ023-0075.wav|tests/data/ljspeech/wavs/LJ023-0075.npy +tests/data/ljspeech/wavs/LJ048-0268.wav|tests/data/ljspeech/wavs/LJ048-0268.npy +tests/data/ljspeech/wavs/LJ028-0309.wav|tests/data/ljspeech/wavs/LJ028-0309.npy +tests/data/ljspeech/wavs/LJ006-0084.wav|tests/data/ljspeech/wavs/LJ006-0084.npy +tests/data/ljspeech/wavs/LJ011-0201.wav|tests/data/ljspeech/wavs/LJ011-0201.npy +tests/data/ljspeech/wavs/LJ007-0212.wav|tests/data/ljspeech/wavs/LJ007-0212.npy +tests/data/ljspeech/wavs/LJ020-0031.wav|tests/data/ljspeech/wavs/LJ020-0031.npy +tests/data/ljspeech/wavs/LJ041-0015.wav|tests/data/ljspeech/wavs/LJ041-0015.npy +tests/data/ljspeech/wavs/LJ014-0014.wav|tests/data/ljspeech/wavs/LJ014-0014.npy +tests/data/ljspeech/wavs/LJ049-0160.wav|tests/data/ljspeech/wavs/LJ049-0160.npy +tests/data/ljspeech/wavs/LJ045-0078.wav|tests/data/ljspeech/wavs/LJ045-0078.npy +tests/data/ljspeech/wavs/LJ016-0277.wav|tests/data/ljspeech/wavs/LJ016-0277.npy +tests/data/ljspeech/wavs/LJ004-0225.wav|tests/data/ljspeech/wavs/LJ004-0225.npy +tests/data/ljspeech/wavs/LJ031-0159.wav|tests/data/ljspeech/wavs/LJ031-0159.npy +tests/data/ljspeech/wavs/LJ020-0043.wav|tests/data/ljspeech/wavs/LJ020-0043.npy +tests/data/ljspeech/wavs/LJ005-0152.wav|tests/data/ljspeech/wavs/LJ005-0152.npy +tests/data/ljspeech/wavs/LJ035-0139.wav|tests/data/ljspeech/wavs/LJ035-0139.npy +tests/data/ljspeech/wavs/LJ011-0293.wav|tests/data/ljspeech/wavs/LJ011-0293.npy +tests/data/ljspeech/wavs/LJ043-0089.wav|tests/data/ljspeech/wavs/LJ043-0089.npy +tests/data/ljspeech/wavs/LJ030-0156.wav|tests/data/ljspeech/wavs/LJ030-0156.npy +tests/data/ljspeech/wavs/LJ023-0119.wav|tests/data/ljspeech/wavs/LJ023-0119.npy +tests/data/ljspeech/wavs/LJ041-0061.wav|tests/data/ljspeech/wavs/LJ041-0061.npy +tests/data/ljspeech/wavs/LJ023-0120.wav|tests/data/ljspeech/wavs/LJ023-0120.npy +tests/data/ljspeech/wavs/LJ040-0008.wav|tests/data/ljspeech/wavs/LJ040-0008.npy +tests/data/ljspeech/wavs/LJ024-0131.wav|tests/data/ljspeech/wavs/LJ024-0131.npy +tests/data/ljspeech/wavs/LJ011-0128.wav|tests/data/ljspeech/wavs/LJ011-0128.npy +tests/data/ljspeech/wavs/LJ009-0059.wav|tests/data/ljspeech/wavs/LJ009-0059.npy +tests/data/ljspeech/wavs/LJ007-0134.wav|tests/data/ljspeech/wavs/LJ007-0134.npy +tests/data/ljspeech/wavs/LJ041-0035.wav|tests/data/ljspeech/wavs/LJ041-0035.npy +tests/data/ljspeech/wavs/LJ036-0198.wav|tests/data/ljspeech/wavs/LJ036-0198.npy +tests/data/ljspeech/wavs/LJ017-0067.wav|tests/data/ljspeech/wavs/LJ017-0067.npy +tests/data/ljspeech/wavs/LJ004-0174.wav|tests/data/ljspeech/wavs/LJ004-0174.npy +tests/data/ljspeech/wavs/LJ043-0090.wav|tests/data/ljspeech/wavs/LJ043-0090.npy +tests/data/ljspeech/wavs/LJ019-0013.wav|tests/data/ljspeech/wavs/LJ019-0013.npy +tests/data/ljspeech/wavs/LJ038-0240.wav|tests/data/ljspeech/wavs/LJ038-0240.npy +tests/data/ljspeech/wavs/LJ025-0043.wav|tests/data/ljspeech/wavs/LJ025-0043.npy +tests/data/ljspeech/wavs/LJ009-0068.wav|tests/data/ljspeech/wavs/LJ009-0068.npy +tests/data/ljspeech/wavs/LJ017-0161.wav|tests/data/ljspeech/wavs/LJ017-0161.npy +tests/data/ljspeech/wavs/LJ017-0023.wav|tests/data/ljspeech/wavs/LJ017-0023.npy +tests/data/ljspeech/wavs/LJ007-0119.wav|tests/data/ljspeech/wavs/LJ007-0119.npy +tests/data/ljspeech/wavs/LJ002-0271.wav|tests/data/ljspeech/wavs/LJ002-0271.npy +tests/data/ljspeech/wavs/LJ038-0251.wav|tests/data/ljspeech/wavs/LJ038-0251.npy +tests/data/ljspeech/wavs/LJ015-0139.wav|tests/data/ljspeech/wavs/LJ015-0139.npy +tests/data/ljspeech/wavs/LJ028-0516.wav|tests/data/ljspeech/wavs/LJ028-0516.npy +tests/data/ljspeech/wavs/LJ016-0300.wav|tests/data/ljspeech/wavs/LJ016-0300.npy +tests/data/ljspeech/wavs/LJ005-0159.wav|tests/data/ljspeech/wavs/LJ005-0159.npy +tests/data/ljspeech/wavs/LJ009-0212.wav|tests/data/ljspeech/wavs/LJ009-0212.npy +tests/data/ljspeech/wavs/LJ037-0207.wav|tests/data/ljspeech/wavs/LJ037-0207.npy +tests/data/ljspeech/wavs/LJ004-0162.wav|tests/data/ljspeech/wavs/LJ004-0162.npy +tests/data/ljspeech/wavs/LJ034-0044.wav|tests/data/ljspeech/wavs/LJ034-0044.npy +tests/data/ljspeech/wavs/LJ042-0077.wav|tests/data/ljspeech/wavs/LJ042-0077.npy +tests/data/ljspeech/wavs/LJ032-0163.wav|tests/data/ljspeech/wavs/LJ032-0163.npy +tests/data/ljspeech/wavs/LJ004-0110.wav|tests/data/ljspeech/wavs/LJ004-0110.npy +tests/data/ljspeech/wavs/LJ029-0188.wav|tests/data/ljspeech/wavs/LJ029-0188.npy +tests/data/ljspeech/wavs/LJ006-0167.wav|tests/data/ljspeech/wavs/LJ006-0167.npy +tests/data/ljspeech/wavs/LJ003-0052.wav|tests/data/ljspeech/wavs/LJ003-0052.npy +tests/data/ljspeech/wavs/LJ019-0358.wav|tests/data/ljspeech/wavs/LJ019-0358.npy +tests/data/ljspeech/wavs/LJ019-0221.wav|tests/data/ljspeech/wavs/LJ019-0221.npy +tests/data/ljspeech/wavs/LJ016-0401.wav|tests/data/ljspeech/wavs/LJ016-0401.npy +tests/data/ljspeech/wavs/LJ031-0168.wav|tests/data/ljspeech/wavs/LJ031-0168.npy +tests/data/ljspeech/wavs/LJ013-0084.wav|tests/data/ljspeech/wavs/LJ013-0084.npy +tests/data/ljspeech/wavs/LJ021-0018.wav|tests/data/ljspeech/wavs/LJ021-0018.npy +tests/data/ljspeech/wavs/LJ047-0140.wav|tests/data/ljspeech/wavs/LJ047-0140.npy +tests/data/ljspeech/wavs/LJ019-0254.wav|tests/data/ljspeech/wavs/LJ019-0254.npy +tests/data/ljspeech/wavs/LJ010-0211.wav|tests/data/ljspeech/wavs/LJ010-0211.npy +tests/data/ljspeech/wavs/LJ013-0085.wav|tests/data/ljspeech/wavs/LJ013-0085.npy +tests/data/ljspeech/wavs/LJ020-0100.wav|tests/data/ljspeech/wavs/LJ020-0100.npy +tests/data/ljspeech/wavs/LJ003-0094.wav|tests/data/ljspeech/wavs/LJ003-0094.npy +tests/data/ljspeech/wavs/LJ014-0222.wav|tests/data/ljspeech/wavs/LJ014-0222.npy +tests/data/ljspeech/wavs/LJ002-0334.wav|tests/data/ljspeech/wavs/LJ002-0334.npy +tests/data/ljspeech/wavs/LJ029-0079.wav|tests/data/ljspeech/wavs/LJ029-0079.npy +tests/data/ljspeech/wavs/LJ036-0063.wav|tests/data/ljspeech/wavs/LJ036-0063.npy +tests/data/ljspeech/wavs/LJ011-0054.wav|tests/data/ljspeech/wavs/LJ011-0054.npy +tests/data/ljspeech/wavs/LJ031-0227.wav|tests/data/ljspeech/wavs/LJ031-0227.npy +tests/data/ljspeech/wavs/LJ018-0033.wav|tests/data/ljspeech/wavs/LJ018-0033.npy +tests/data/ljspeech/wavs/LJ034-0174.wav|tests/data/ljspeech/wavs/LJ034-0174.npy +tests/data/ljspeech/wavs/LJ021-0107.wav|tests/data/ljspeech/wavs/LJ021-0107.npy +tests/data/ljspeech/wavs/LJ007-0049.wav|tests/data/ljspeech/wavs/LJ007-0049.npy +tests/data/ljspeech/wavs/LJ035-0096.wav|tests/data/ljspeech/wavs/LJ035-0096.npy +tests/data/ljspeech/wavs/LJ047-0151.wav|tests/data/ljspeech/wavs/LJ047-0151.npy +tests/data/ljspeech/wavs/LJ020-0079.wav|tests/data/ljspeech/wavs/LJ020-0079.npy +tests/data/ljspeech/wavs/LJ016-0019.wav|tests/data/ljspeech/wavs/LJ016-0019.npy +tests/data/ljspeech/wavs/LJ008-0050.wav|tests/data/ljspeech/wavs/LJ008-0050.npy +tests/data/ljspeech/wavs/LJ040-0071.wav|tests/data/ljspeech/wavs/LJ040-0071.npy +tests/data/ljspeech/wavs/LJ050-0093.wav|tests/data/ljspeech/wavs/LJ050-0093.npy +tests/data/ljspeech/wavs/LJ040-0075.wav|tests/data/ljspeech/wavs/LJ040-0075.npy +tests/data/ljspeech/wavs/LJ042-0235.wav|tests/data/ljspeech/wavs/LJ042-0235.npy +tests/data/ljspeech/wavs/LJ009-0304.wav|tests/data/ljspeech/wavs/LJ009-0304.npy +tests/data/ljspeech/wavs/LJ031-0069.wav|tests/data/ljspeech/wavs/LJ031-0069.npy +tests/data/ljspeech/wavs/LJ042-0195.wav|tests/data/ljspeech/wavs/LJ042-0195.npy +tests/data/ljspeech/wavs/LJ004-0105.wav|tests/data/ljspeech/wavs/LJ004-0105.npy +tests/data/ljspeech/wavs/LJ012-0273.wav|tests/data/ljspeech/wavs/LJ012-0273.npy +tests/data/ljspeech/wavs/LJ011-0023.wav|tests/data/ljspeech/wavs/LJ011-0023.npy +tests/data/ljspeech/wavs/LJ021-0188.wav|tests/data/ljspeech/wavs/LJ021-0188.npy +tests/data/ljspeech/wavs/LJ036-0125.wav|tests/data/ljspeech/wavs/LJ036-0125.npy +tests/data/ljspeech/wavs/LJ011-0172.wav|tests/data/ljspeech/wavs/LJ011-0172.npy +tests/data/ljspeech/wavs/LJ012-0119.wav|tests/data/ljspeech/wavs/LJ012-0119.npy +tests/data/ljspeech/wavs/LJ042-0023.wav|tests/data/ljspeech/wavs/LJ042-0023.npy +tests/data/ljspeech/wavs/LJ021-0132.wav|tests/data/ljspeech/wavs/LJ021-0132.npy +tests/data/ljspeech/wavs/LJ026-0091.wav|tests/data/ljspeech/wavs/LJ026-0091.npy +tests/data/ljspeech/wavs/LJ028-0217.wav|tests/data/ljspeech/wavs/LJ028-0217.npy +tests/data/ljspeech/wavs/LJ050-0103.wav|tests/data/ljspeech/wavs/LJ050-0103.npy +tests/data/ljspeech/wavs/LJ041-0158.wav|tests/data/ljspeech/wavs/LJ041-0158.npy +tests/data/ljspeech/wavs/LJ008-0049.wav|tests/data/ljspeech/wavs/LJ008-0049.npy +tests/data/ljspeech/wavs/LJ002-0058.wav|tests/data/ljspeech/wavs/LJ002-0058.npy +tests/data/ljspeech/wavs/LJ014-0289.wav|tests/data/ljspeech/wavs/LJ014-0289.npy +tests/data/ljspeech/wavs/LJ009-0007.wav|tests/data/ljspeech/wavs/LJ009-0007.npy +tests/data/ljspeech/wavs/LJ037-0183.wav|tests/data/ljspeech/wavs/LJ037-0183.npy +tests/data/ljspeech/wavs/LJ006-0126.wav|tests/data/ljspeech/wavs/LJ006-0126.npy +tests/data/ljspeech/wavs/LJ009-0019.wav|tests/data/ljspeech/wavs/LJ009-0019.npy +tests/data/ljspeech/wavs/LJ035-0064.wav|tests/data/ljspeech/wavs/LJ035-0064.npy +tests/data/ljspeech/wavs/LJ008-0023.wav|tests/data/ljspeech/wavs/LJ008-0023.npy +tests/data/ljspeech/wavs/LJ028-0165.wav|tests/data/ljspeech/wavs/LJ028-0165.npy +tests/data/ljspeech/wavs/LJ013-0009.wav|tests/data/ljspeech/wavs/LJ013-0009.npy +tests/data/ljspeech/wavs/LJ036-0200.wav|tests/data/ljspeech/wavs/LJ036-0200.npy +tests/data/ljspeech/wavs/LJ009-0167.wav|tests/data/ljspeech/wavs/LJ009-0167.npy +tests/data/ljspeech/wavs/LJ011-0064.wav|tests/data/ljspeech/wavs/LJ011-0064.npy +tests/data/ljspeech/wavs/LJ047-0237.wav|tests/data/ljspeech/wavs/LJ047-0237.npy +tests/data/ljspeech/wavs/LJ024-0081.wav|tests/data/ljspeech/wavs/LJ024-0081.npy +tests/data/ljspeech/wavs/LJ048-0254.wav|tests/data/ljspeech/wavs/LJ048-0254.npy +tests/data/ljspeech/wavs/LJ017-0235.wav|tests/data/ljspeech/wavs/LJ017-0235.npy +tests/data/ljspeech/wavs/LJ016-0107.wav|tests/data/ljspeech/wavs/LJ016-0107.npy +tests/data/ljspeech/wavs/LJ038-0034.wav|tests/data/ljspeech/wavs/LJ038-0034.npy +tests/data/ljspeech/wavs/LJ035-0153.wav|tests/data/ljspeech/wavs/LJ035-0153.npy +tests/data/ljspeech/wavs/LJ021-0126.wav|tests/data/ljspeech/wavs/LJ021-0126.npy +tests/data/ljspeech/wavs/LJ015-0219.wav|tests/data/ljspeech/wavs/LJ015-0219.npy +tests/data/ljspeech/wavs/LJ010-0242.wav|tests/data/ljspeech/wavs/LJ010-0242.npy +tests/data/ljspeech/wavs/LJ034-0124.wav|tests/data/ljspeech/wavs/LJ034-0124.npy +tests/data/ljspeech/wavs/LJ018-0219.wav|tests/data/ljspeech/wavs/LJ018-0219.npy +tests/data/ljspeech/wavs/LJ011-0287.wav|tests/data/ljspeech/wavs/LJ011-0287.npy +tests/data/ljspeech/wavs/LJ044-0064.wav|tests/data/ljspeech/wavs/LJ044-0064.npy +tests/data/ljspeech/wavs/LJ011-0045.wav|tests/data/ljspeech/wavs/LJ011-0045.npy +tests/data/ljspeech/wavs/LJ010-0087.wav|tests/data/ljspeech/wavs/LJ010-0087.npy +tests/data/ljspeech/wavs/LJ018-0241.wav|tests/data/ljspeech/wavs/LJ018-0241.npy +tests/data/ljspeech/wavs/LJ045-0199.wav|tests/data/ljspeech/wavs/LJ045-0199.npy +tests/data/ljspeech/wavs/LJ034-0126.wav|tests/data/ljspeech/wavs/LJ034-0126.npy +tests/data/ljspeech/wavs/LJ039-0216.wav|tests/data/ljspeech/wavs/LJ039-0216.npy +tests/data/ljspeech/wavs/LJ017-0151.wav|tests/data/ljspeech/wavs/LJ017-0151.npy +tests/data/ljspeech/wavs/LJ018-0177.wav|tests/data/ljspeech/wavs/LJ018-0177.npy +tests/data/ljspeech/wavs/LJ010-0083.wav|tests/data/ljspeech/wavs/LJ010-0083.npy +tests/data/ljspeech/wavs/LJ018-0208.wav|tests/data/ljspeech/wavs/LJ018-0208.npy +tests/data/ljspeech/wavs/LJ015-0226.wav|tests/data/ljspeech/wavs/LJ015-0226.npy +tests/data/ljspeech/wavs/LJ016-0165.wav|tests/data/ljspeech/wavs/LJ016-0165.npy +tests/data/ljspeech/wavs/LJ012-0113.wav|tests/data/ljspeech/wavs/LJ012-0113.npy +tests/data/ljspeech/wavs/LJ032-0103.wav|tests/data/ljspeech/wavs/LJ032-0103.npy +tests/data/ljspeech/wavs/LJ033-0206.wav|tests/data/ljspeech/wavs/LJ033-0206.npy +tests/data/ljspeech/wavs/LJ005-0256.wav|tests/data/ljspeech/wavs/LJ005-0256.npy +tests/data/ljspeech/wavs/LJ045-0022.wav|tests/data/ljspeech/wavs/LJ045-0022.npy +tests/data/ljspeech/wavs/LJ044-0108.wav|tests/data/ljspeech/wavs/LJ044-0108.npy +tests/data/ljspeech/wavs/LJ012-0040.wav|tests/data/ljspeech/wavs/LJ012-0040.npy +tests/data/ljspeech/wavs/LJ021-0144.wav|tests/data/ljspeech/wavs/LJ021-0144.npy +tests/data/ljspeech/wavs/LJ033-0175.wav|tests/data/ljspeech/wavs/LJ033-0175.npy +tests/data/ljspeech/wavs/LJ018-0308.wav|tests/data/ljspeech/wavs/LJ018-0308.npy +tests/data/ljspeech/wavs/LJ022-0161.wav|tests/data/ljspeech/wavs/LJ022-0161.npy +tests/data/ljspeech/wavs/LJ016-0221.wav|tests/data/ljspeech/wavs/LJ016-0221.npy +tests/data/ljspeech/wavs/LJ005-0005.wav|tests/data/ljspeech/wavs/LJ005-0005.npy +tests/data/ljspeech/wavs/LJ011-0077.wav|tests/data/ljspeech/wavs/LJ011-0077.npy +tests/data/ljspeech/wavs/LJ005-0278.wav|tests/data/ljspeech/wavs/LJ005-0278.npy +tests/data/ljspeech/wavs/LJ022-0003.wav|tests/data/ljspeech/wavs/LJ022-0003.npy +tests/data/ljspeech/wavs/LJ017-0063.wav|tests/data/ljspeech/wavs/LJ017-0063.npy +tests/data/ljspeech/wavs/LJ021-0110.wav|tests/data/ljspeech/wavs/LJ021-0110.npy +tests/data/ljspeech/wavs/LJ017-0264.wav|tests/data/ljspeech/wavs/LJ017-0264.npy +tests/data/ljspeech/wavs/LJ018-0277.wav|tests/data/ljspeech/wavs/LJ018-0277.npy +tests/data/ljspeech/wavs/LJ022-0130.wav|tests/data/ljspeech/wavs/LJ022-0130.npy +tests/data/ljspeech/wavs/LJ050-0221.wav|tests/data/ljspeech/wavs/LJ050-0221.npy +tests/data/ljspeech/wavs/LJ021-0075.wav|tests/data/ljspeech/wavs/LJ021-0075.npy +tests/data/ljspeech/wavs/LJ010-0218.wav|tests/data/ljspeech/wavs/LJ010-0218.npy +tests/data/ljspeech/wavs/LJ040-0146.wav|tests/data/ljspeech/wavs/LJ040-0146.npy +tests/data/ljspeech/wavs/LJ003-0155.wav|tests/data/ljspeech/wavs/LJ003-0155.npy +tests/data/ljspeech/wavs/LJ020-0048.wav|tests/data/ljspeech/wavs/LJ020-0048.npy +tests/data/ljspeech/wavs/LJ033-0159.wav|tests/data/ljspeech/wavs/LJ033-0159.npy +tests/data/ljspeech/wavs/LJ035-0109.wav|tests/data/ljspeech/wavs/LJ035-0109.npy +tests/data/ljspeech/wavs/LJ023-0027.wav|tests/data/ljspeech/wavs/LJ023-0027.npy +tests/data/ljspeech/wavs/LJ002-0333.wav|tests/data/ljspeech/wavs/LJ002-0333.npy +tests/data/ljspeech/wavs/LJ034-0135.wav|tests/data/ljspeech/wavs/LJ034-0135.npy +tests/data/ljspeech/wavs/LJ011-0111.wav|tests/data/ljspeech/wavs/LJ011-0111.npy +tests/data/ljspeech/wavs/LJ018-0020.wav|tests/data/ljspeech/wavs/LJ018-0020.npy +tests/data/ljspeech/wavs/LJ020-0101.wav|tests/data/ljspeech/wavs/LJ020-0101.npy +tests/data/ljspeech/wavs/LJ047-0057.wav|tests/data/ljspeech/wavs/LJ047-0057.npy +tests/data/ljspeech/wavs/LJ029-0011.wav|tests/data/ljspeech/wavs/LJ029-0011.npy +tests/data/ljspeech/wavs/LJ032-0189.wav|tests/data/ljspeech/wavs/LJ032-0189.npy +tests/data/ljspeech/wavs/LJ046-0110.wav|tests/data/ljspeech/wavs/LJ046-0110.npy +tests/data/ljspeech/wavs/LJ025-0109.wav|tests/data/ljspeech/wavs/LJ025-0109.npy +tests/data/ljspeech/wavs/LJ042-0172.wav|tests/data/ljspeech/wavs/LJ042-0172.npy +tests/data/ljspeech/wavs/LJ007-0126.wav|tests/data/ljspeech/wavs/LJ007-0126.npy +tests/data/ljspeech/wavs/LJ043-0095.wav|tests/data/ljspeech/wavs/LJ043-0095.npy +tests/data/ljspeech/wavs/LJ007-0197.wav|tests/data/ljspeech/wavs/LJ007-0197.npy +tests/data/ljspeech/wavs/LJ002-0197.wav|tests/data/ljspeech/wavs/LJ002-0197.npy +tests/data/ljspeech/wavs/LJ050-0125.wav|tests/data/ljspeech/wavs/LJ050-0125.npy +tests/data/ljspeech/wavs/LJ029-0104.wav|tests/data/ljspeech/wavs/LJ029-0104.npy +tests/data/ljspeech/wavs/LJ028-0352.wav|tests/data/ljspeech/wavs/LJ028-0352.npy +tests/data/ljspeech/wavs/LJ036-0187.wav|tests/data/ljspeech/wavs/LJ036-0187.npy +tests/data/ljspeech/wavs/LJ029-0152.wav|tests/data/ljspeech/wavs/LJ029-0152.npy +tests/data/ljspeech/wavs/LJ048-0042.wav|tests/data/ljspeech/wavs/LJ048-0042.npy +tests/data/ljspeech/wavs/LJ028-0442.wav|tests/data/ljspeech/wavs/LJ028-0442.npy +tests/data/ljspeech/wavs/LJ046-0019.wav|tests/data/ljspeech/wavs/LJ046-0019.npy +tests/data/ljspeech/wavs/LJ025-0156.wav|tests/data/ljspeech/wavs/LJ025-0156.npy +tests/data/ljspeech/wavs/LJ033-0100.wav|tests/data/ljspeech/wavs/LJ033-0100.npy +tests/data/ljspeech/wavs/LJ014-0164.wav|tests/data/ljspeech/wavs/LJ014-0164.npy +tests/data/ljspeech/wavs/LJ002-0170.wav|tests/data/ljspeech/wavs/LJ002-0170.npy +tests/data/ljspeech/wavs/LJ014-0321.wav|tests/data/ljspeech/wavs/LJ014-0321.npy +tests/data/ljspeech/wavs/LJ033-0010.wav|tests/data/ljspeech/wavs/LJ033-0010.npy +tests/data/ljspeech/wavs/LJ007-0222.wav|tests/data/ljspeech/wavs/LJ007-0222.npy +tests/data/ljspeech/wavs/LJ013-0091.wav|tests/data/ljspeech/wavs/LJ013-0091.npy +tests/data/ljspeech/wavs/LJ008-0270.wav|tests/data/ljspeech/wavs/LJ008-0270.npy +tests/data/ljspeech/wavs/LJ002-0255.wav|tests/data/ljspeech/wavs/LJ002-0255.npy +tests/data/ljspeech/wavs/LJ014-0249.wav|tests/data/ljspeech/wavs/LJ014-0249.npy +tests/data/ljspeech/wavs/LJ007-0098.wav|tests/data/ljspeech/wavs/LJ007-0098.npy +tests/data/ljspeech/wavs/LJ025-0139.wav|tests/data/ljspeech/wavs/LJ025-0139.npy +tests/data/ljspeech/wavs/LJ002-0149.wav|tests/data/ljspeech/wavs/LJ002-0149.npy +tests/data/ljspeech/wavs/LJ048-0077.wav|tests/data/ljspeech/wavs/LJ048-0077.npy +tests/data/ljspeech/wavs/LJ049-0153.wav|tests/data/ljspeech/wavs/LJ049-0153.npy +tests/data/ljspeech/wavs/LJ038-0071.wav|tests/data/ljspeech/wavs/LJ038-0071.npy +tests/data/ljspeech/wavs/LJ014-0312.wav|tests/data/ljspeech/wavs/LJ014-0312.npy +tests/data/ljspeech/wavs/LJ009-0021.wav|tests/data/ljspeech/wavs/LJ009-0021.npy +tests/data/ljspeech/wavs/LJ009-0097.wav|tests/data/ljspeech/wavs/LJ009-0097.npy +tests/data/ljspeech/wavs/LJ009-0006.wav|tests/data/ljspeech/wavs/LJ009-0006.npy +tests/data/ljspeech/wavs/LJ015-0193.wav|tests/data/ljspeech/wavs/LJ015-0193.npy +tests/data/ljspeech/wavs/LJ046-0154.wav|tests/data/ljspeech/wavs/LJ046-0154.npy +tests/data/ljspeech/wavs/LJ026-0052.wav|tests/data/ljspeech/wavs/LJ026-0052.npy +tests/data/ljspeech/wavs/LJ030-0146.wav|tests/data/ljspeech/wavs/LJ030-0146.npy +tests/data/ljspeech/wavs/LJ004-0124.wav|tests/data/ljspeech/wavs/LJ004-0124.npy +tests/data/ljspeech/wavs/LJ014-0283.wav|tests/data/ljspeech/wavs/LJ014-0283.npy +tests/data/ljspeech/wavs/LJ048-0083.wav|tests/data/ljspeech/wavs/LJ048-0083.npy +tests/data/ljspeech/wavs/LJ006-0087.wav|tests/data/ljspeech/wavs/LJ006-0087.npy +tests/data/ljspeech/wavs/LJ033-0137.wav|tests/data/ljspeech/wavs/LJ033-0137.npy +tests/data/ljspeech/wavs/LJ041-0141.wav|tests/data/ljspeech/wavs/LJ041-0141.npy +tests/data/ljspeech/wavs/LJ044-0180.wav|tests/data/ljspeech/wavs/LJ044-0180.npy +tests/data/ljspeech/wavs/LJ006-0099.wav|tests/data/ljspeech/wavs/LJ006-0099.npy +tests/data/ljspeech/wavs/LJ006-0246.wav|tests/data/ljspeech/wavs/LJ006-0246.npy +tests/data/ljspeech/wavs/LJ006-0264.wav|tests/data/ljspeech/wavs/LJ006-0264.npy +tests/data/ljspeech/wavs/LJ028-0092.wav|tests/data/ljspeech/wavs/LJ028-0092.npy +tests/data/ljspeech/wavs/LJ028-0009.wav|tests/data/ljspeech/wavs/LJ028-0009.npy +tests/data/ljspeech/wavs/LJ050-0270.wav|tests/data/ljspeech/wavs/LJ050-0270.npy +tests/data/ljspeech/wavs/LJ030-0043.wav|tests/data/ljspeech/wavs/LJ030-0043.npy +tests/data/ljspeech/wavs/LJ026-0087.wav|tests/data/ljspeech/wavs/LJ026-0087.npy +tests/data/ljspeech/wavs/LJ043-0152.wav|tests/data/ljspeech/wavs/LJ043-0152.npy +tests/data/ljspeech/wavs/LJ046-0075.wav|tests/data/ljspeech/wavs/LJ046-0075.npy +tests/data/ljspeech/wavs/LJ014-0300.wav|tests/data/ljspeech/wavs/LJ014-0300.npy +tests/data/ljspeech/wavs/LJ041-0106.wav|tests/data/ljspeech/wavs/LJ041-0106.npy +tests/data/ljspeech/wavs/LJ048-0101.wav|tests/data/ljspeech/wavs/LJ048-0101.npy +tests/data/ljspeech/wavs/LJ033-0170.wav|tests/data/ljspeech/wavs/LJ033-0170.npy +tests/data/ljspeech/wavs/LJ032-0253.wav|tests/data/ljspeech/wavs/LJ032-0253.npy +tests/data/ljspeech/wavs/LJ038-0102.wav|tests/data/ljspeech/wavs/LJ038-0102.npy +tests/data/ljspeech/wavs/LJ006-0113.wav|tests/data/ljspeech/wavs/LJ006-0113.npy +tests/data/ljspeech/wavs/LJ004-0026.wav|tests/data/ljspeech/wavs/LJ004-0026.npy +tests/data/ljspeech/wavs/LJ013-0047.wav|tests/data/ljspeech/wavs/LJ013-0047.npy +tests/data/ljspeech/wavs/LJ005-0041.wav|tests/data/ljspeech/wavs/LJ005-0041.npy +tests/data/ljspeech/wavs/LJ006-0065.wav|tests/data/ljspeech/wavs/LJ006-0065.npy +tests/data/ljspeech/wavs/LJ016-0142.wav|tests/data/ljspeech/wavs/LJ016-0142.npy +tests/data/ljspeech/wavs/LJ016-0163.wav|tests/data/ljspeech/wavs/LJ016-0163.npy +tests/data/ljspeech/wavs/LJ041-0197.wav|tests/data/ljspeech/wavs/LJ041-0197.npy +tests/data/ljspeech/wavs/LJ043-0062.wav|tests/data/ljspeech/wavs/LJ043-0062.npy +tests/data/ljspeech/wavs/LJ047-0132.wav|tests/data/ljspeech/wavs/LJ047-0132.npy +tests/data/ljspeech/wavs/LJ028-0096.wav|tests/data/ljspeech/wavs/LJ028-0096.npy +tests/data/ljspeech/wavs/LJ030-0193.wav|tests/data/ljspeech/wavs/LJ030-0193.npy +tests/data/ljspeech/wavs/LJ016-0111.wav|tests/data/ljspeech/wavs/LJ016-0111.npy +tests/data/ljspeech/wavs/LJ035-0043.wav|tests/data/ljspeech/wavs/LJ035-0043.npy +tests/data/ljspeech/wavs/LJ013-0230.wav|tests/data/ljspeech/wavs/LJ013-0230.npy +tests/data/ljspeech/wavs/LJ032-0134.wav|tests/data/ljspeech/wavs/LJ032-0134.npy +tests/data/ljspeech/wavs/LJ006-0301.wav|tests/data/ljspeech/wavs/LJ006-0301.npy +tests/data/ljspeech/wavs/LJ035-0055.wav|tests/data/ljspeech/wavs/LJ035-0055.npy +tests/data/ljspeech/wavs/LJ011-0164.wav|tests/data/ljspeech/wavs/LJ011-0164.npy +tests/data/ljspeech/wavs/LJ019-0365.wav|tests/data/ljspeech/wavs/LJ019-0365.npy +tests/data/ljspeech/wavs/LJ017-0164.wav|tests/data/ljspeech/wavs/LJ017-0164.npy +tests/data/ljspeech/wavs/LJ045-0094.wav|tests/data/ljspeech/wavs/LJ045-0094.npy +tests/data/ljspeech/wavs/LJ036-0148.wav|tests/data/ljspeech/wavs/LJ036-0148.npy +tests/data/ljspeech/wavs/LJ007-0026.wav|tests/data/ljspeech/wavs/LJ007-0026.npy +tests/data/ljspeech/wavs/LJ035-0041.wav|tests/data/ljspeech/wavs/LJ035-0041.npy +tests/data/ljspeech/wavs/LJ040-0162.wav|tests/data/ljspeech/wavs/LJ040-0162.npy +tests/data/ljspeech/wavs/LJ048-0103.wav|tests/data/ljspeech/wavs/LJ048-0103.npy +tests/data/ljspeech/wavs/LJ017-0118.wav|tests/data/ljspeech/wavs/LJ017-0118.npy +tests/data/ljspeech/wavs/LJ034-0216.wav|tests/data/ljspeech/wavs/LJ034-0216.npy +tests/data/ljspeech/wavs/LJ037-0122.wav|tests/data/ljspeech/wavs/LJ037-0122.npy +tests/data/ljspeech/wavs/LJ018-0279.wav|tests/data/ljspeech/wavs/LJ018-0279.npy +tests/data/ljspeech/wavs/LJ032-0206.wav|tests/data/ljspeech/wavs/LJ032-0206.npy +tests/data/ljspeech/wavs/LJ004-0187.wav|tests/data/ljspeech/wavs/LJ004-0187.npy +tests/data/ljspeech/wavs/LJ014-0048.wav|tests/data/ljspeech/wavs/LJ014-0048.npy +tests/data/ljspeech/wavs/LJ010-0146.wav|tests/data/ljspeech/wavs/LJ010-0146.npy +tests/data/ljspeech/wavs/LJ039-0042.wav|tests/data/ljspeech/wavs/LJ039-0042.npy +tests/data/ljspeech/wavs/LJ016-0168.wav|tests/data/ljspeech/wavs/LJ016-0168.npy +tests/data/ljspeech/wavs/LJ027-0099.wav|tests/data/ljspeech/wavs/LJ027-0099.npy +tests/data/ljspeech/wavs/LJ042-0057.wav|tests/data/ljspeech/wavs/LJ042-0057.npy +tests/data/ljspeech/wavs/LJ047-0024.wav|tests/data/ljspeech/wavs/LJ047-0024.npy +tests/data/ljspeech/wavs/LJ036-0099.wav|tests/data/ljspeech/wavs/LJ036-0099.npy +tests/data/ljspeech/wavs/LJ049-0200.wav|tests/data/ljspeech/wavs/LJ049-0200.npy +tests/data/ljspeech/wavs/LJ008-0200.wav|tests/data/ljspeech/wavs/LJ008-0200.npy +tests/data/ljspeech/wavs/LJ021-0020.wav|tests/data/ljspeech/wavs/LJ021-0020.npy +tests/data/ljspeech/wavs/LJ017-0080.wav|tests/data/ljspeech/wavs/LJ017-0080.npy +tests/data/ljspeech/wavs/LJ048-0189.wav|tests/data/ljspeech/wavs/LJ048-0189.npy +tests/data/ljspeech/wavs/LJ047-0143.wav|tests/data/ljspeech/wavs/LJ047-0143.npy +tests/data/ljspeech/wavs/LJ045-0031.wav|tests/data/ljspeech/wavs/LJ045-0031.npy +tests/data/ljspeech/wavs/LJ043-0049.wav|tests/data/ljspeech/wavs/LJ043-0049.npy +tests/data/ljspeech/wavs/LJ001-0172.wav|tests/data/ljspeech/wavs/LJ001-0172.npy +tests/data/ljspeech/wavs/LJ017-0127.wav|tests/data/ljspeech/wavs/LJ017-0127.npy +tests/data/ljspeech/wavs/LJ037-0165.wav|tests/data/ljspeech/wavs/LJ037-0165.npy +tests/data/ljspeech/wavs/LJ032-0080.wav|tests/data/ljspeech/wavs/LJ032-0080.npy +tests/data/ljspeech/wavs/LJ012-0106.wav|tests/data/ljspeech/wavs/LJ012-0106.npy +tests/data/ljspeech/wavs/LJ003-0329.wav|tests/data/ljspeech/wavs/LJ003-0329.npy +tests/data/ljspeech/wavs/LJ029-0071.wav|tests/data/ljspeech/wavs/LJ029-0071.npy +tests/data/ljspeech/wavs/LJ008-0194.wav|tests/data/ljspeech/wavs/LJ008-0194.npy +tests/data/ljspeech/wavs/LJ027-0167.wav|tests/data/ljspeech/wavs/LJ027-0167.npy +tests/data/ljspeech/wavs/LJ034-0167.wav|tests/data/ljspeech/wavs/LJ034-0167.npy +tests/data/ljspeech/wavs/LJ010-0032.wav|tests/data/ljspeech/wavs/LJ010-0032.npy +tests/data/ljspeech/wavs/LJ042-0019.wav|tests/data/ljspeech/wavs/LJ042-0019.npy +tests/data/ljspeech/wavs/LJ010-0070.wav|tests/data/ljspeech/wavs/LJ010-0070.npy +tests/data/ljspeech/wavs/LJ046-0146.wav|tests/data/ljspeech/wavs/LJ046-0146.npy +tests/data/ljspeech/wavs/LJ043-0103.wav|tests/data/ljspeech/wavs/LJ043-0103.npy +tests/data/ljspeech/wavs/LJ040-0057.wav|tests/data/ljspeech/wavs/LJ040-0057.npy +tests/data/ljspeech/wavs/LJ011-0249.wav|tests/data/ljspeech/wavs/LJ011-0249.npy +tests/data/ljspeech/wavs/LJ018-0221.wav|tests/data/ljspeech/wavs/LJ018-0221.npy +tests/data/ljspeech/wavs/LJ048-0160.wav|tests/data/ljspeech/wavs/LJ048-0160.npy +tests/data/ljspeech/wavs/LJ029-0133.wav|tests/data/ljspeech/wavs/LJ029-0133.npy +tests/data/ljspeech/wavs/LJ003-0193.wav|tests/data/ljspeech/wavs/LJ003-0193.npy +tests/data/ljspeech/wavs/LJ018-0131.wav|tests/data/ljspeech/wavs/LJ018-0131.npy +tests/data/ljspeech/wavs/LJ042-0223.wav|tests/data/ljspeech/wavs/LJ042-0223.npy +tests/data/ljspeech/wavs/LJ050-0096.wav|tests/data/ljspeech/wavs/LJ050-0096.npy +tests/data/ljspeech/wavs/LJ018-0146.wav|tests/data/ljspeech/wavs/LJ018-0146.npy +tests/data/ljspeech/wavs/LJ046-0209.wav|tests/data/ljspeech/wavs/LJ046-0209.npy +tests/data/ljspeech/wavs/LJ007-0003.wav|tests/data/ljspeech/wavs/LJ007-0003.npy +tests/data/ljspeech/wavs/LJ031-0140.wav|tests/data/ljspeech/wavs/LJ031-0140.npy +tests/data/ljspeech/wavs/LJ048-0122.wav|tests/data/ljspeech/wavs/LJ048-0122.npy +tests/data/ljspeech/wavs/LJ003-0096.wav|tests/data/ljspeech/wavs/LJ003-0096.npy +tests/data/ljspeech/wavs/LJ018-0029.wav|tests/data/ljspeech/wavs/LJ018-0029.npy +tests/data/ljspeech/wavs/LJ018-0152.wav|tests/data/ljspeech/wavs/LJ018-0152.npy +tests/data/ljspeech/wavs/LJ014-0138.wav|tests/data/ljspeech/wavs/LJ014-0138.npy +tests/data/ljspeech/wavs/LJ048-0070.wav|tests/data/ljspeech/wavs/LJ048-0070.npy +tests/data/ljspeech/wavs/LJ018-0345.wav|tests/data/ljspeech/wavs/LJ018-0345.npy +tests/data/ljspeech/wavs/LJ011-0071.wav|tests/data/ljspeech/wavs/LJ011-0071.npy +tests/data/ljspeech/wavs/LJ003-0185.wav|tests/data/ljspeech/wavs/LJ003-0185.npy +tests/data/ljspeech/wavs/LJ040-0043.wav|tests/data/ljspeech/wavs/LJ040-0043.npy +tests/data/ljspeech/wavs/LJ018-0026.wav|tests/data/ljspeech/wavs/LJ018-0026.npy +tests/data/ljspeech/wavs/LJ001-0115.wav|tests/data/ljspeech/wavs/LJ001-0115.npy +tests/data/ljspeech/wavs/LJ050-0189.wav|tests/data/ljspeech/wavs/LJ050-0189.npy +tests/data/ljspeech/wavs/LJ038-0173.wav|tests/data/ljspeech/wavs/LJ038-0173.npy +tests/data/ljspeech/wavs/LJ038-0172.wav|tests/data/ljspeech/wavs/LJ038-0172.npy +tests/data/ljspeech/wavs/LJ016-0194.wav|tests/data/ljspeech/wavs/LJ016-0194.npy +tests/data/ljspeech/wavs/LJ016-0324.wav|tests/data/ljspeech/wavs/LJ016-0324.npy +tests/data/ljspeech/wavs/LJ042-0157.wav|tests/data/ljspeech/wavs/LJ042-0157.npy +tests/data/ljspeech/wavs/LJ044-0160.wav|tests/data/ljspeech/wavs/LJ044-0160.npy +tests/data/ljspeech/wavs/LJ003-0293.wav|tests/data/ljspeech/wavs/LJ003-0293.npy +tests/data/ljspeech/wavs/LJ021-0156.wav|tests/data/ljspeech/wavs/LJ021-0156.npy +tests/data/ljspeech/wavs/LJ041-0129.wav|tests/data/ljspeech/wavs/LJ041-0129.npy +tests/data/ljspeech/wavs/LJ002-0189.wav|tests/data/ljspeech/wavs/LJ002-0189.npy +tests/data/ljspeech/wavs/LJ034-0045.wav|tests/data/ljspeech/wavs/LJ034-0045.npy +tests/data/ljspeech/wavs/LJ024-0110.wav|tests/data/ljspeech/wavs/LJ024-0110.npy +tests/data/ljspeech/wavs/LJ044-0044.wav|tests/data/ljspeech/wavs/LJ044-0044.npy +tests/data/ljspeech/wavs/LJ023-0015.wav|tests/data/ljspeech/wavs/LJ023-0015.npy +tests/data/ljspeech/wavs/LJ025-0027.wav|tests/data/ljspeech/wavs/LJ025-0027.npy +tests/data/ljspeech/wavs/LJ048-0174.wav|tests/data/ljspeech/wavs/LJ048-0174.npy +tests/data/ljspeech/wavs/LJ028-0358.wav|tests/data/ljspeech/wavs/LJ028-0358.npy +tests/data/ljspeech/wavs/LJ050-0261.wav|tests/data/ljspeech/wavs/LJ050-0261.npy +tests/data/ljspeech/wavs/LJ007-0180.wav|tests/data/ljspeech/wavs/LJ007-0180.npy +tests/data/ljspeech/wavs/LJ004-0200.wav|tests/data/ljspeech/wavs/LJ004-0200.npy +tests/data/ljspeech/wavs/LJ021-0120.wav|tests/data/ljspeech/wavs/LJ021-0120.npy +tests/data/ljspeech/wavs/LJ046-0160.wav|tests/data/ljspeech/wavs/LJ046-0160.npy +tests/data/ljspeech/wavs/LJ024-0117.wav|tests/data/ljspeech/wavs/LJ024-0117.npy +tests/data/ljspeech/wavs/LJ016-0231.wav|tests/data/ljspeech/wavs/LJ016-0231.npy +tests/data/ljspeech/wavs/LJ003-0251.wav|tests/data/ljspeech/wavs/LJ003-0251.npy +tests/data/ljspeech/wavs/LJ005-0266.wav|tests/data/ljspeech/wavs/LJ005-0266.npy +tests/data/ljspeech/wavs/LJ019-0018.wav|tests/data/ljspeech/wavs/LJ019-0018.npy +tests/data/ljspeech/wavs/LJ031-0233.wav|tests/data/ljspeech/wavs/LJ031-0233.npy +tests/data/ljspeech/wavs/LJ046-0094.wav|tests/data/ljspeech/wavs/LJ046-0094.npy +tests/data/ljspeech/wavs/LJ050-0066.wav|tests/data/ljspeech/wavs/LJ050-0066.npy +tests/data/ljspeech/wavs/LJ018-0362.wav|tests/data/ljspeech/wavs/LJ018-0362.npy +tests/data/ljspeech/wavs/LJ007-0013.wav|tests/data/ljspeech/wavs/LJ007-0013.npy +tests/data/ljspeech/wavs/LJ016-0237.wav|tests/data/ljspeech/wavs/LJ016-0237.npy +tests/data/ljspeech/wavs/LJ007-0028.wav|tests/data/ljspeech/wavs/LJ007-0028.npy +tests/data/ljspeech/wavs/LJ028-0351.wav|tests/data/ljspeech/wavs/LJ028-0351.npy +tests/data/ljspeech/wavs/LJ019-0150.wav|tests/data/ljspeech/wavs/LJ019-0150.npy +tests/data/ljspeech/wavs/LJ038-0025.wav|tests/data/ljspeech/wavs/LJ038-0025.npy +tests/data/ljspeech/wavs/LJ026-0121.wav|tests/data/ljspeech/wavs/LJ026-0121.npy +tests/data/ljspeech/wavs/LJ025-0081.wav|tests/data/ljspeech/wavs/LJ025-0081.npy +tests/data/ljspeech/wavs/LJ009-0178.wav|tests/data/ljspeech/wavs/LJ009-0178.npy +tests/data/ljspeech/wavs/LJ044-0212.wav|tests/data/ljspeech/wavs/LJ044-0212.npy +tests/data/ljspeech/wavs/LJ002-0296.wav|tests/data/ljspeech/wavs/LJ002-0296.npy +tests/data/ljspeech/wavs/LJ012-0211.wav|tests/data/ljspeech/wavs/LJ012-0211.npy +tests/data/ljspeech/wavs/LJ026-0015.wav|tests/data/ljspeech/wavs/LJ026-0015.npy +tests/data/ljspeech/wavs/LJ023-0006.wav|tests/data/ljspeech/wavs/LJ023-0006.npy +tests/data/ljspeech/wavs/LJ025-0076.wav|tests/data/ljspeech/wavs/LJ025-0076.npy +tests/data/ljspeech/wavs/LJ025-0150.wav|tests/data/ljspeech/wavs/LJ025-0150.npy +tests/data/ljspeech/wavs/LJ039-0066.wav|tests/data/ljspeech/wavs/LJ039-0066.npy +tests/data/ljspeech/wavs/LJ025-0075.wav|tests/data/ljspeech/wavs/LJ025-0075.npy +tests/data/ljspeech/wavs/LJ021-0191.wav|tests/data/ljspeech/wavs/LJ021-0191.npy +tests/data/ljspeech/wavs/LJ012-0230.wav|tests/data/ljspeech/wavs/LJ012-0230.npy +tests/data/ljspeech/wavs/LJ012-0260.wav|tests/data/ljspeech/wavs/LJ012-0260.npy +tests/data/ljspeech/wavs/LJ041-0009.wav|tests/data/ljspeech/wavs/LJ041-0009.npy +tests/data/ljspeech/wavs/LJ045-0230.wav|tests/data/ljspeech/wavs/LJ045-0230.npy +tests/data/ljspeech/wavs/LJ049-0168.wav|tests/data/ljspeech/wavs/LJ049-0168.npy +tests/data/ljspeech/wavs/LJ015-0277.wav|tests/data/ljspeech/wavs/LJ015-0277.npy +tests/data/ljspeech/wavs/LJ030-0100.wav|tests/data/ljspeech/wavs/LJ030-0100.npy +tests/data/ljspeech/wavs/LJ018-0274.wav|tests/data/ljspeech/wavs/LJ018-0274.npy +tests/data/ljspeech/wavs/LJ006-0035.wav|tests/data/ljspeech/wavs/LJ006-0035.npy +tests/data/ljspeech/wavs/LJ009-0084.wav|tests/data/ljspeech/wavs/LJ009-0084.npy +tests/data/ljspeech/wavs/LJ009-0297.wav|tests/data/ljspeech/wavs/LJ009-0297.npy +tests/data/ljspeech/wavs/LJ045-0240.wav|tests/data/ljspeech/wavs/LJ045-0240.npy +tests/data/ljspeech/wavs/LJ014-0260.wav|tests/data/ljspeech/wavs/LJ014-0260.npy +tests/data/ljspeech/wavs/LJ009-0118.wav|tests/data/ljspeech/wavs/LJ009-0118.npy +tests/data/ljspeech/wavs/LJ022-0012.wav|tests/data/ljspeech/wavs/LJ022-0012.npy +tests/data/ljspeech/wavs/LJ045-0220.wav|tests/data/ljspeech/wavs/LJ045-0220.npy +tests/data/ljspeech/wavs/LJ022-0047.wav|tests/data/ljspeech/wavs/LJ022-0047.npy +tests/data/ljspeech/wavs/LJ008-0279.wav|tests/data/ljspeech/wavs/LJ008-0279.npy +tests/data/ljspeech/wavs/LJ005-0141.wav|tests/data/ljspeech/wavs/LJ005-0141.npy +tests/data/ljspeech/wavs/LJ035-0163.wav|tests/data/ljspeech/wavs/LJ035-0163.npy +tests/data/ljspeech/wavs/LJ030-0110.wav|tests/data/ljspeech/wavs/LJ030-0110.npy +tests/data/ljspeech/wavs/LJ015-0094.wav|tests/data/ljspeech/wavs/LJ015-0094.npy +tests/data/ljspeech/wavs/LJ034-0087.wav|tests/data/ljspeech/wavs/LJ034-0087.npy +tests/data/ljspeech/wavs/LJ002-0063.wav|tests/data/ljspeech/wavs/LJ002-0063.npy +tests/data/ljspeech/wavs/LJ028-0281.wav|tests/data/ljspeech/wavs/LJ028-0281.npy +tests/data/ljspeech/wavs/LJ047-0187.wav|tests/data/ljspeech/wavs/LJ047-0187.npy +tests/data/ljspeech/wavs/LJ002-0230.wav|tests/data/ljspeech/wavs/LJ002-0230.npy +tests/data/ljspeech/wavs/LJ019-0219.wav|tests/data/ljspeech/wavs/LJ019-0219.npy +tests/data/ljspeech/wavs/LJ014-0168.wav|tests/data/ljspeech/wavs/LJ014-0168.npy +tests/data/ljspeech/wavs/LJ010-0142.wav|tests/data/ljspeech/wavs/LJ010-0142.npy +tests/data/ljspeech/wavs/LJ019-0181.wav|tests/data/ljspeech/wavs/LJ019-0181.npy +tests/data/ljspeech/wavs/LJ011-0122.wav|tests/data/ljspeech/wavs/LJ011-0122.npy +tests/data/ljspeech/wavs/LJ007-0239.wav|tests/data/ljspeech/wavs/LJ007-0239.npy +tests/data/ljspeech/wavs/LJ029-0086.wav|tests/data/ljspeech/wavs/LJ029-0086.npy +tests/data/ljspeech/wavs/LJ028-0262.wav|tests/data/ljspeech/wavs/LJ028-0262.npy +tests/data/ljspeech/wavs/LJ019-0246.wav|tests/data/ljspeech/wavs/LJ019-0246.npy +tests/data/ljspeech/wavs/LJ021-0200.wav|tests/data/ljspeech/wavs/LJ021-0200.npy +tests/data/ljspeech/wavs/LJ010-0156.wav|tests/data/ljspeech/wavs/LJ010-0156.npy +tests/data/ljspeech/wavs/LJ016-0184.wav|tests/data/ljspeech/wavs/LJ016-0184.npy +tests/data/ljspeech/wavs/LJ038-0021.wav|tests/data/ljspeech/wavs/LJ038-0021.npy +tests/data/ljspeech/wavs/LJ003-0211.wav|tests/data/ljspeech/wavs/LJ003-0211.npy +tests/data/ljspeech/wavs/LJ050-0243.wav|tests/data/ljspeech/wavs/LJ050-0243.npy +tests/data/ljspeech/wavs/LJ019-0222.wav|tests/data/ljspeech/wavs/LJ019-0222.npy +tests/data/ljspeech/wavs/LJ016-0190.wav|tests/data/ljspeech/wavs/LJ016-0190.npy +tests/data/ljspeech/wavs/LJ003-0101.wav|tests/data/ljspeech/wavs/LJ003-0101.npy +tests/data/ljspeech/wavs/LJ008-0011.wav|tests/data/ljspeech/wavs/LJ008-0011.npy +tests/data/ljspeech/wavs/LJ019-0208.wav|tests/data/ljspeech/wavs/LJ019-0208.npy +tests/data/ljspeech/wavs/LJ007-0232.wav|tests/data/ljspeech/wavs/LJ007-0232.npy +tests/data/ljspeech/wavs/LJ034-0092.wav|tests/data/ljspeech/wavs/LJ034-0092.npy +tests/data/ljspeech/wavs/LJ028-0295.wav|tests/data/ljspeech/wavs/LJ028-0295.npy +tests/data/ljspeech/wavs/LJ032-0022.wav|tests/data/ljspeech/wavs/LJ032-0022.npy +tests/data/ljspeech/wavs/LJ010-0284.wav|tests/data/ljspeech/wavs/LJ010-0284.npy +tests/data/ljspeech/wavs/LJ041-0032.wav|tests/data/ljspeech/wavs/LJ041-0032.npy +tests/data/ljspeech/wavs/LJ010-0241.wav|tests/data/ljspeech/wavs/LJ010-0241.npy +tests/data/ljspeech/wavs/LJ016-0397.wav|tests/data/ljspeech/wavs/LJ016-0397.npy +tests/data/ljspeech/wavs/LJ042-0139.wav|tests/data/ljspeech/wavs/LJ042-0139.npy +tests/data/ljspeech/wavs/LJ043-0175.wav|tests/data/ljspeech/wavs/LJ043-0175.npy +tests/data/ljspeech/wavs/LJ007-0189.wav|tests/data/ljspeech/wavs/LJ007-0189.npy +tests/data/ljspeech/wavs/LJ034-0046.wav|tests/data/ljspeech/wavs/LJ034-0046.npy +tests/data/ljspeech/wavs/LJ042-0146.wav|tests/data/ljspeech/wavs/LJ042-0146.npy +tests/data/ljspeech/wavs/LJ043-0092.wav|tests/data/ljspeech/wavs/LJ043-0092.npy +tests/data/ljspeech/wavs/LJ037-0036.wav|tests/data/ljspeech/wavs/LJ037-0036.npy +tests/data/ljspeech/wavs/LJ005-0140.wav|tests/data/ljspeech/wavs/LJ005-0140.npy +tests/data/ljspeech/wavs/LJ037-0060.wav|tests/data/ljspeech/wavs/LJ037-0060.npy +tests/data/ljspeech/wavs/LJ036-0108.wav|tests/data/ljspeech/wavs/LJ036-0108.npy +tests/data/ljspeech/wavs/LJ022-0080.wav|tests/data/ljspeech/wavs/LJ022-0080.npy +tests/data/ljspeech/wavs/LJ016-0011.wav|tests/data/ljspeech/wavs/LJ016-0011.npy +tests/data/ljspeech/wavs/LJ032-0256.wav|tests/data/ljspeech/wavs/LJ032-0256.npy +tests/data/ljspeech/wavs/LJ011-0076.wav|tests/data/ljspeech/wavs/LJ011-0076.npy +tests/data/ljspeech/wavs/LJ003-0278.wav|tests/data/ljspeech/wavs/LJ003-0278.npy +tests/data/ljspeech/wavs/LJ002-0041.wav|tests/data/ljspeech/wavs/LJ002-0041.npy +tests/data/ljspeech/wavs/LJ037-0092.wav|tests/data/ljspeech/wavs/LJ037-0092.npy +tests/data/ljspeech/wavs/LJ041-0108.wav|tests/data/ljspeech/wavs/LJ041-0108.npy +tests/data/ljspeech/wavs/LJ037-0042.wav|tests/data/ljspeech/wavs/LJ037-0042.npy +tests/data/ljspeech/wavs/LJ049-0093.wav|tests/data/ljspeech/wavs/LJ049-0093.npy +tests/data/ljspeech/wavs/LJ003-0144.wav|tests/data/ljspeech/wavs/LJ003-0144.npy +tests/data/ljspeech/wavs/LJ006-0154.wav|tests/data/ljspeech/wavs/LJ006-0154.npy +tests/data/ljspeech/wavs/LJ010-0176.wav|tests/data/ljspeech/wavs/LJ010-0176.npy +tests/data/ljspeech/wavs/LJ007-0162.wav|tests/data/ljspeech/wavs/LJ007-0162.npy +tests/data/ljspeech/wavs/LJ048-0169.wav|tests/data/ljspeech/wavs/LJ048-0169.npy +tests/data/ljspeech/wavs/LJ012-0241.wav|tests/data/ljspeech/wavs/LJ012-0241.npy +tests/data/ljspeech/wavs/LJ018-0371.wav|tests/data/ljspeech/wavs/LJ018-0371.npy +tests/data/ljspeech/wavs/LJ010-0280.wav|tests/data/ljspeech/wavs/LJ010-0280.npy +tests/data/ljspeech/wavs/LJ005-0073.wav|tests/data/ljspeech/wavs/LJ005-0073.npy +tests/data/ljspeech/wavs/LJ050-0222.wav|tests/data/ljspeech/wavs/LJ050-0222.npy +tests/data/ljspeech/wavs/LJ042-0224.wav|tests/data/ljspeech/wavs/LJ042-0224.npy +tests/data/ljspeech/wavs/LJ027-0004.wav|tests/data/ljspeech/wavs/LJ027-0004.npy +tests/data/ljspeech/wavs/LJ028-0390.wav|tests/data/ljspeech/wavs/LJ028-0390.npy +tests/data/ljspeech/wavs/LJ050-0063.wav|tests/data/ljspeech/wavs/LJ050-0063.npy +tests/data/ljspeech/wavs/LJ046-0176.wav|tests/data/ljspeech/wavs/LJ046-0176.npy +tests/data/ljspeech/wavs/LJ028-0365.wav|tests/data/ljspeech/wavs/LJ028-0365.npy +tests/data/ljspeech/wavs/LJ016-0010.wav|tests/data/ljspeech/wavs/LJ016-0010.npy +tests/data/ljspeech/wavs/LJ018-0398.wav|tests/data/ljspeech/wavs/LJ018-0398.npy +tests/data/ljspeech/wavs/LJ022-0049.wav|tests/data/ljspeech/wavs/LJ022-0049.npy +tests/data/ljspeech/wavs/LJ008-0295.wav|tests/data/ljspeech/wavs/LJ008-0295.npy +tests/data/ljspeech/wavs/LJ019-0268.wav|tests/data/ljspeech/wavs/LJ019-0268.npy +tests/data/ljspeech/wavs/LJ001-0087.wav|tests/data/ljspeech/wavs/LJ001-0087.npy +tests/data/ljspeech/wavs/LJ007-0083.wav|tests/data/ljspeech/wavs/LJ007-0083.npy +tests/data/ljspeech/wavs/LJ012-0007.wav|tests/data/ljspeech/wavs/LJ012-0007.npy +tests/data/ljspeech/wavs/LJ029-0094.wav|tests/data/ljspeech/wavs/LJ029-0094.npy +tests/data/ljspeech/wavs/LJ011-0166.wav|tests/data/ljspeech/wavs/LJ011-0166.npy +tests/data/ljspeech/wavs/LJ039-0177.wav|tests/data/ljspeech/wavs/LJ039-0177.npy +tests/data/ljspeech/wavs/LJ004-0084.wav|tests/data/ljspeech/wavs/LJ004-0084.npy +tests/data/ljspeech/wavs/LJ021-0031.wav|tests/data/ljspeech/wavs/LJ021-0031.npy +tests/data/ljspeech/wavs/LJ017-0232.wav|tests/data/ljspeech/wavs/LJ017-0232.npy +tests/data/ljspeech/wavs/LJ001-0105.wav|tests/data/ljspeech/wavs/LJ001-0105.npy +tests/data/ljspeech/wavs/LJ013-0022.wav|tests/data/ljspeech/wavs/LJ013-0022.npy +tests/data/ljspeech/wavs/LJ001-0183.wav|tests/data/ljspeech/wavs/LJ001-0183.npy +tests/data/ljspeech/wavs/LJ048-0132.wav|tests/data/ljspeech/wavs/LJ048-0132.npy +tests/data/ljspeech/wavs/LJ010-0040.wav|tests/data/ljspeech/wavs/LJ010-0040.npy +tests/data/ljspeech/wavs/LJ008-0155.wav|tests/data/ljspeech/wavs/LJ008-0155.npy +tests/data/ljspeech/wavs/LJ005-0281.wav|tests/data/ljspeech/wavs/LJ005-0281.npy +tests/data/ljspeech/wavs/LJ013-0143.wav|tests/data/ljspeech/wavs/LJ013-0143.npy +tests/data/ljspeech/wavs/LJ018-0311.wav|tests/data/ljspeech/wavs/LJ018-0311.npy +tests/data/ljspeech/wavs/LJ032-0234.wav|tests/data/ljspeech/wavs/LJ032-0234.npy +tests/data/ljspeech/wavs/LJ043-0034.wav|tests/data/ljspeech/wavs/LJ043-0034.npy +tests/data/ljspeech/wavs/LJ031-0038.wav|tests/data/ljspeech/wavs/LJ031-0038.npy +tests/data/ljspeech/wavs/LJ010-0045.wav|tests/data/ljspeech/wavs/LJ010-0045.npy +tests/data/ljspeech/wavs/LJ025-0005.wav|tests/data/ljspeech/wavs/LJ025-0005.npy +tests/data/ljspeech/wavs/LJ043-0140.wav|tests/data/ljspeech/wavs/LJ043-0140.npy +tests/data/ljspeech/wavs/LJ010-0003.wav|tests/data/ljspeech/wavs/LJ010-0003.npy +tests/data/ljspeech/wavs/LJ022-0178.wav|tests/data/ljspeech/wavs/LJ022-0178.npy +tests/data/ljspeech/wavs/LJ018-0197.wav|tests/data/ljspeech/wavs/LJ018-0197.npy +tests/data/ljspeech/wavs/LJ026-0129.wav|tests/data/ljspeech/wavs/LJ026-0129.npy +tests/data/ljspeech/wavs/LJ002-0138.wav|tests/data/ljspeech/wavs/LJ002-0138.npy +tests/data/ljspeech/wavs/LJ049-0105.wav|tests/data/ljspeech/wavs/LJ049-0105.npy +tests/data/ljspeech/wavs/LJ006-0249.wav|tests/data/ljspeech/wavs/LJ006-0249.npy +tests/data/ljspeech/wavs/LJ037-0161.wav|tests/data/ljspeech/wavs/LJ037-0161.npy +tests/data/ljspeech/wavs/LJ027-0101.wav|tests/data/ljspeech/wavs/LJ027-0101.npy +tests/data/ljspeech/wavs/LJ003-0267.wav|tests/data/ljspeech/wavs/LJ003-0267.npy +tests/data/ljspeech/wavs/LJ033-0016.wav|tests/data/ljspeech/wavs/LJ033-0016.npy +tests/data/ljspeech/wavs/LJ049-0214.wav|tests/data/ljspeech/wavs/LJ049-0214.npy +tests/data/ljspeech/wavs/LJ027-0122.wav|tests/data/ljspeech/wavs/LJ027-0122.npy +tests/data/ljspeech/wavs/LJ005-0262.wav|tests/data/ljspeech/wavs/LJ005-0262.npy +tests/data/ljspeech/wavs/LJ042-0024.wav|tests/data/ljspeech/wavs/LJ042-0024.npy +tests/data/ljspeech/wavs/LJ007-0085.wav|tests/data/ljspeech/wavs/LJ007-0085.npy +tests/data/ljspeech/wavs/LJ015-0031.wav|tests/data/ljspeech/wavs/LJ015-0031.npy +tests/data/ljspeech/wavs/LJ029-0137.wav|tests/data/ljspeech/wavs/LJ029-0137.npy +tests/data/ljspeech/wavs/LJ032-0193.wav|tests/data/ljspeech/wavs/LJ032-0193.npy +tests/data/ljspeech/wavs/LJ019-0340.wav|tests/data/ljspeech/wavs/LJ019-0340.npy +tests/data/ljspeech/wavs/LJ025-0099.wav|tests/data/ljspeech/wavs/LJ025-0099.npy +tests/data/ljspeech/wavs/LJ018-0095.wav|tests/data/ljspeech/wavs/LJ018-0095.npy +tests/data/ljspeech/wavs/LJ008-0319.wav|tests/data/ljspeech/wavs/LJ008-0319.npy +tests/data/ljspeech/wavs/LJ010-0060.wav|tests/data/ljspeech/wavs/LJ010-0060.npy +tests/data/ljspeech/wavs/LJ015-0238.wav|tests/data/ljspeech/wavs/LJ015-0238.npy +tests/data/ljspeech/wavs/LJ016-0112.wav|tests/data/ljspeech/wavs/LJ016-0112.npy +tests/data/ljspeech/wavs/LJ044-0139.wav|tests/data/ljspeech/wavs/LJ044-0139.npy +tests/data/ljspeech/wavs/LJ008-0093.wav|tests/data/ljspeech/wavs/LJ008-0093.npy +tests/data/ljspeech/wavs/LJ010-0020.wav|tests/data/ljspeech/wavs/LJ010-0020.npy +tests/data/ljspeech/wavs/LJ041-0181.wav|tests/data/ljspeech/wavs/LJ041-0181.npy +tests/data/ljspeech/wavs/LJ036-0032.wav|tests/data/ljspeech/wavs/LJ036-0032.npy +tests/data/ljspeech/wavs/LJ001-0099.wav|tests/data/ljspeech/wavs/LJ001-0099.npy +tests/data/ljspeech/wavs/LJ008-0268.wav|tests/data/ljspeech/wavs/LJ008-0268.npy +tests/data/ljspeech/wavs/LJ045-0126.wav|tests/data/ljspeech/wavs/LJ045-0126.npy +tests/data/ljspeech/wavs/LJ006-0293.wav|tests/data/ljspeech/wavs/LJ006-0293.npy +tests/data/ljspeech/wavs/LJ045-0123.wav|tests/data/ljspeech/wavs/LJ045-0123.npy +tests/data/ljspeech/wavs/LJ012-0278.wav|tests/data/ljspeech/wavs/LJ012-0278.npy +tests/data/ljspeech/wavs/LJ005-0274.wav|tests/data/ljspeech/wavs/LJ005-0274.npy +tests/data/ljspeech/wavs/LJ045-0127.wav|tests/data/ljspeech/wavs/LJ045-0127.npy +tests/data/ljspeech/wavs/LJ009-0137.wav|tests/data/ljspeech/wavs/LJ009-0137.npy +tests/data/ljspeech/wavs/LJ019-0324.wav|tests/data/ljspeech/wavs/LJ019-0324.npy +tests/data/ljspeech/wavs/LJ003-0230.wav|tests/data/ljspeech/wavs/LJ003-0230.npy +tests/data/ljspeech/wavs/LJ041-0073.wav|tests/data/ljspeech/wavs/LJ041-0073.npy +tests/data/ljspeech/wavs/LJ014-0156.wav|tests/data/ljspeech/wavs/LJ014-0156.npy +tests/data/ljspeech/wavs/LJ037-0218.wav|tests/data/ljspeech/wavs/LJ037-0218.npy +tests/data/ljspeech/wavs/LJ008-0081.wav|tests/data/ljspeech/wavs/LJ008-0081.npy +tests/data/ljspeech/wavs/LJ038-0008.wav|tests/data/ljspeech/wavs/LJ038-0008.npy +tests/data/ljspeech/wavs/LJ033-0165.wav|tests/data/ljspeech/wavs/LJ033-0165.npy +tests/data/ljspeech/wavs/LJ010-0104.wav|tests/data/ljspeech/wavs/LJ010-0104.npy +tests/data/ljspeech/wavs/LJ031-0158.wav|tests/data/ljspeech/wavs/LJ031-0158.npy +tests/data/ljspeech/wavs/LJ030-0131.wav|tests/data/ljspeech/wavs/LJ030-0131.npy +tests/data/ljspeech/wavs/LJ008-0113.wav|tests/data/ljspeech/wavs/LJ008-0113.npy +tests/data/ljspeech/wavs/LJ011-0060.wav|tests/data/ljspeech/wavs/LJ011-0060.npy +tests/data/ljspeech/wavs/LJ017-0155.wav|tests/data/ljspeech/wavs/LJ017-0155.npy +tests/data/ljspeech/wavs/LJ006-0054.wav|tests/data/ljspeech/wavs/LJ006-0054.npy +tests/data/ljspeech/wavs/LJ046-0020.wav|tests/data/ljspeech/wavs/LJ046-0020.npy +tests/data/ljspeech/wavs/LJ015-0109.wav|tests/data/ljspeech/wavs/LJ015-0109.npy +tests/data/ljspeech/wavs/LJ013-0166.wav|tests/data/ljspeech/wavs/LJ013-0166.npy +tests/data/ljspeech/wavs/LJ011-0238.wav|tests/data/ljspeech/wavs/LJ011-0238.npy +tests/data/ljspeech/wavs/LJ048-0123.wav|tests/data/ljspeech/wavs/LJ048-0123.npy +tests/data/ljspeech/wavs/LJ029-0085.wav|tests/data/ljspeech/wavs/LJ029-0085.npy +tests/data/ljspeech/wavs/LJ022-0107.wav|tests/data/ljspeech/wavs/LJ022-0107.npy +tests/data/ljspeech/wavs/LJ042-0177.wav|tests/data/ljspeech/wavs/LJ042-0177.npy +tests/data/ljspeech/wavs/LJ002-0235.wav|tests/data/ljspeech/wavs/LJ002-0235.npy +tests/data/ljspeech/wavs/LJ039-0106.wav|tests/data/ljspeech/wavs/LJ039-0106.npy +tests/data/ljspeech/wavs/LJ029-0177.wav|tests/data/ljspeech/wavs/LJ029-0177.npy +tests/data/ljspeech/wavs/LJ016-0359.wav|tests/data/ljspeech/wavs/LJ016-0359.npy +tests/data/ljspeech/wavs/LJ010-0311.wav|tests/data/ljspeech/wavs/LJ010-0311.npy +tests/data/ljspeech/wavs/LJ044-0189.wav|tests/data/ljspeech/wavs/LJ044-0189.npy +tests/data/ljspeech/wavs/LJ005-0164.wav|tests/data/ljspeech/wavs/LJ005-0164.npy +tests/data/ljspeech/wavs/LJ003-0202.wav|tests/data/ljspeech/wavs/LJ003-0202.npy +tests/data/ljspeech/wavs/LJ001-0159.wav|tests/data/ljspeech/wavs/LJ001-0159.npy +tests/data/ljspeech/wavs/LJ018-0396.wav|tests/data/ljspeech/wavs/LJ018-0396.npy +tests/data/ljspeech/wavs/LJ021-0094.wav|tests/data/ljspeech/wavs/LJ021-0094.npy +tests/data/ljspeech/wavs/LJ036-0023.wav|tests/data/ljspeech/wavs/LJ036-0023.npy +tests/data/ljspeech/wavs/LJ038-0167.wav|tests/data/ljspeech/wavs/LJ038-0167.npy +tests/data/ljspeech/wavs/LJ046-0022.wav|tests/data/ljspeech/wavs/LJ046-0022.npy +tests/data/ljspeech/wavs/LJ046-0002.wav|tests/data/ljspeech/wavs/LJ046-0002.npy +tests/data/ljspeech/wavs/LJ018-0247.wav|tests/data/ljspeech/wavs/LJ018-0247.npy +tests/data/ljspeech/wavs/LJ025-0088.wav|tests/data/ljspeech/wavs/LJ025-0088.npy +tests/data/ljspeech/wavs/LJ049-0217.wav|tests/data/ljspeech/wavs/LJ049-0217.npy +tests/data/ljspeech/wavs/LJ046-0243.wav|tests/data/ljspeech/wavs/LJ046-0243.npy +tests/data/ljspeech/wavs/LJ015-0116.wav|tests/data/ljspeech/wavs/LJ015-0116.npy +tests/data/ljspeech/wavs/LJ009-0045.wav|tests/data/ljspeech/wavs/LJ009-0045.npy +tests/data/ljspeech/wavs/LJ044-0085.wav|tests/data/ljspeech/wavs/LJ044-0085.npy +tests/data/ljspeech/wavs/LJ009-0209.wav|tests/data/ljspeech/wavs/LJ009-0209.npy +tests/data/ljspeech/wavs/LJ046-0232.wav|tests/data/ljspeech/wavs/LJ046-0232.npy +tests/data/ljspeech/wavs/LJ008-0079.wav|tests/data/ljspeech/wavs/LJ008-0079.npy +tests/data/ljspeech/wavs/LJ011-0050.wav|tests/data/ljspeech/wavs/LJ011-0050.npy +tests/data/ljspeech/wavs/LJ022-0163.wav|tests/data/ljspeech/wavs/LJ022-0163.npy +tests/data/ljspeech/wavs/LJ041-0163.wav|tests/data/ljspeech/wavs/LJ041-0163.npy +tests/data/ljspeech/wavs/LJ013-0088.wav|tests/data/ljspeech/wavs/LJ013-0088.npy +tests/data/ljspeech/wavs/LJ029-0062.wav|tests/data/ljspeech/wavs/LJ029-0062.npy +tests/data/ljspeech/wavs/LJ026-0067.wav|tests/data/ljspeech/wavs/LJ026-0067.npy +tests/data/ljspeech/wavs/LJ042-0225.wav|tests/data/ljspeech/wavs/LJ042-0225.npy +tests/data/ljspeech/wavs/LJ044-0049.wav|tests/data/ljspeech/wavs/LJ044-0049.npy +tests/data/ljspeech/wavs/LJ009-0274.wav|tests/data/ljspeech/wavs/LJ009-0274.npy +tests/data/ljspeech/wavs/LJ022-0189.wav|tests/data/ljspeech/wavs/LJ022-0189.npy +tests/data/ljspeech/wavs/LJ042-0060.wav|tests/data/ljspeech/wavs/LJ042-0060.npy +tests/data/ljspeech/wavs/LJ050-0253.wav|tests/data/ljspeech/wavs/LJ050-0253.npy +tests/data/ljspeech/wavs/LJ007-0052.wav|tests/data/ljspeech/wavs/LJ007-0052.npy +tests/data/ljspeech/wavs/LJ040-0176.wav|tests/data/ljspeech/wavs/LJ040-0176.npy +tests/data/ljspeech/wavs/LJ041-0048.wav|tests/data/ljspeech/wavs/LJ041-0048.npy +tests/data/ljspeech/wavs/LJ016-0349.wav|tests/data/ljspeech/wavs/LJ016-0349.npy +tests/data/ljspeech/wavs/LJ043-0061.wav|tests/data/ljspeech/wavs/LJ043-0061.npy +tests/data/ljspeech/wavs/LJ049-0032.wav|tests/data/ljspeech/wavs/LJ049-0032.npy +tests/data/ljspeech/wavs/LJ042-0055.wav|tests/data/ljspeech/wavs/LJ042-0055.npy +tests/data/ljspeech/wavs/LJ019-0356.wav|tests/data/ljspeech/wavs/LJ019-0356.npy +tests/data/ljspeech/wavs/LJ032-0168.wav|tests/data/ljspeech/wavs/LJ032-0168.npy +tests/data/ljspeech/wavs/LJ004-0198.wav|tests/data/ljspeech/wavs/LJ004-0198.npy +tests/data/ljspeech/wavs/LJ040-0063.wav|tests/data/ljspeech/wavs/LJ040-0063.npy +tests/data/ljspeech/wavs/LJ019-0353.wav|tests/data/ljspeech/wavs/LJ019-0353.npy +tests/data/ljspeech/wavs/LJ005-0294.wav|tests/data/ljspeech/wavs/LJ005-0294.npy +tests/data/ljspeech/wavs/LJ005-0234.wav|tests/data/ljspeech/wavs/LJ005-0234.npy +tests/data/ljspeech/wavs/LJ025-0061.wav|tests/data/ljspeech/wavs/LJ025-0061.npy +tests/data/ljspeech/wavs/LJ042-0171.wav|tests/data/ljspeech/wavs/LJ042-0171.npy +tests/data/ljspeech/wavs/LJ048-0207.wav|tests/data/ljspeech/wavs/LJ048-0207.npy +tests/data/ljspeech/wavs/LJ024-0032.wav|tests/data/ljspeech/wavs/LJ024-0032.npy +tests/data/ljspeech/wavs/LJ026-0069.wav|tests/data/ljspeech/wavs/LJ026-0069.npy +tests/data/ljspeech/wavs/LJ031-0207.wav|tests/data/ljspeech/wavs/LJ031-0207.npy +tests/data/ljspeech/wavs/LJ038-0168.wav|tests/data/ljspeech/wavs/LJ038-0168.npy +tests/data/ljspeech/wavs/LJ004-0190.wav|tests/data/ljspeech/wavs/LJ004-0190.npy +tests/data/ljspeech/wavs/LJ005-0216.wav|tests/data/ljspeech/wavs/LJ005-0216.npy +tests/data/ljspeech/wavs/LJ016-0017.wav|tests/data/ljspeech/wavs/LJ016-0017.npy +tests/data/ljspeech/wavs/LJ036-0162.wav|tests/data/ljspeech/wavs/LJ036-0162.npy +tests/data/ljspeech/wavs/LJ031-0021.wav|tests/data/ljspeech/wavs/LJ031-0021.npy +tests/data/ljspeech/wavs/LJ021-0116.wav|tests/data/ljspeech/wavs/LJ021-0116.npy +tests/data/ljspeech/wavs/LJ026-0039.wav|tests/data/ljspeech/wavs/LJ026-0039.npy +tests/data/ljspeech/wavs/LJ017-0071.wav|tests/data/ljspeech/wavs/LJ017-0071.npy +tests/data/ljspeech/wavs/LJ021-0035.wav|tests/data/ljspeech/wavs/LJ021-0035.npy +tests/data/ljspeech/wavs/LJ017-0103.wav|tests/data/ljspeech/wavs/LJ017-0103.npy +tests/data/ljspeech/wavs/LJ010-0119.wav|tests/data/ljspeech/wavs/LJ010-0119.npy +tests/data/ljspeech/wavs/LJ026-0094.wav|tests/data/ljspeech/wavs/LJ026-0094.npy +tests/data/ljspeech/wavs/LJ003-0056.wav|tests/data/ljspeech/wavs/LJ003-0056.npy +tests/data/ljspeech/wavs/LJ013-0016.wav|tests/data/ljspeech/wavs/LJ013-0016.npy +tests/data/ljspeech/wavs/LJ020-0054.wav|tests/data/ljspeech/wavs/LJ020-0054.npy +tests/data/ljspeech/wavs/LJ049-0056.wav|tests/data/ljspeech/wavs/LJ049-0056.npy +tests/data/ljspeech/wavs/LJ043-0028.wav|tests/data/ljspeech/wavs/LJ043-0028.npy +tests/data/ljspeech/wavs/LJ045-0091.wav|tests/data/ljspeech/wavs/LJ045-0091.npy +tests/data/ljspeech/wavs/LJ015-0020.wav|tests/data/ljspeech/wavs/LJ015-0020.npy +tests/data/ljspeech/wavs/LJ021-0069.wav|tests/data/ljspeech/wavs/LJ021-0069.npy +tests/data/ljspeech/wavs/LJ013-0068.wav|tests/data/ljspeech/wavs/LJ013-0068.npy +tests/data/ljspeech/wavs/LJ038-0096.wav|tests/data/ljspeech/wavs/LJ038-0096.npy +tests/data/ljspeech/wavs/LJ046-0245.wav|tests/data/ljspeech/wavs/LJ046-0245.npy +tests/data/ljspeech/wavs/LJ012-0071.wav|tests/data/ljspeech/wavs/LJ012-0071.npy +tests/data/ljspeech/wavs/LJ032-0181.wav|tests/data/ljspeech/wavs/LJ032-0181.npy +tests/data/ljspeech/wavs/LJ024-0125.wav|tests/data/ljspeech/wavs/LJ024-0125.npy +tests/data/ljspeech/wavs/LJ028-0003.wav|tests/data/ljspeech/wavs/LJ028-0003.npy +tests/data/ljspeech/wavs/LJ004-0164.wav|tests/data/ljspeech/wavs/LJ004-0164.npy +tests/data/ljspeech/wavs/LJ034-0208.wav|tests/data/ljspeech/wavs/LJ034-0208.npy +tests/data/ljspeech/wavs/LJ031-0031.wav|tests/data/ljspeech/wavs/LJ031-0031.npy +tests/data/ljspeech/wavs/LJ002-0294.wav|tests/data/ljspeech/wavs/LJ002-0294.npy +tests/data/ljspeech/wavs/LJ014-0294.wav|tests/data/ljspeech/wavs/LJ014-0294.npy +tests/data/ljspeech/wavs/LJ002-0108.wav|tests/data/ljspeech/wavs/LJ002-0108.npy +tests/data/ljspeech/wavs/LJ047-0150.wav|tests/data/ljspeech/wavs/LJ047-0150.npy +tests/data/ljspeech/wavs/LJ011-0278.wav|tests/data/ljspeech/wavs/LJ011-0278.npy +tests/data/ljspeech/wavs/LJ040-0154.wav|tests/data/ljspeech/wavs/LJ040-0154.npy +tests/data/ljspeech/wavs/LJ028-0392.wav|tests/data/ljspeech/wavs/LJ028-0392.npy +tests/data/ljspeech/wavs/LJ032-0108.wav|tests/data/ljspeech/wavs/LJ032-0108.npy +tests/data/ljspeech/wavs/LJ047-0186.wav|tests/data/ljspeech/wavs/LJ047-0186.npy +tests/data/ljspeech/wavs/LJ040-0031.wav|tests/data/ljspeech/wavs/LJ040-0031.npy +tests/data/ljspeech/wavs/LJ038-0112.wav|tests/data/ljspeech/wavs/LJ038-0112.npy +tests/data/ljspeech/wavs/LJ048-0092.wav|tests/data/ljspeech/wavs/LJ048-0092.npy +tests/data/ljspeech/wavs/LJ042-0092.wav|tests/data/ljspeech/wavs/LJ042-0092.npy +tests/data/ljspeech/wavs/LJ028-0395.wav|tests/data/ljspeech/wavs/LJ028-0395.npy +tests/data/ljspeech/wavs/LJ045-0154.wav|tests/data/ljspeech/wavs/LJ045-0154.npy +tests/data/ljspeech/wavs/LJ016-0247.wav|tests/data/ljspeech/wavs/LJ016-0247.npy +tests/data/ljspeech/wavs/LJ045-0049.wav|tests/data/ljspeech/wavs/LJ045-0049.npy +tests/data/ljspeech/wavs/LJ022-0045.wav|tests/data/ljspeech/wavs/LJ022-0045.npy +tests/data/ljspeech/wavs/LJ038-0267.wav|tests/data/ljspeech/wavs/LJ038-0267.npy +tests/data/ljspeech/wavs/LJ029-0191.wav|tests/data/ljspeech/wavs/LJ029-0191.npy +tests/data/ljspeech/wavs/LJ007-0161.wav|tests/data/ljspeech/wavs/LJ007-0161.npy +tests/data/ljspeech/wavs/LJ046-0206.wav|tests/data/ljspeech/wavs/LJ046-0206.npy +tests/data/ljspeech/wavs/LJ039-0094.wav|tests/data/ljspeech/wavs/LJ039-0094.npy +tests/data/ljspeech/wavs/LJ046-0070.wav|tests/data/ljspeech/wavs/LJ046-0070.npy +tests/data/ljspeech/wavs/LJ048-0179.wav|tests/data/ljspeech/wavs/LJ048-0179.npy +tests/data/ljspeech/wavs/LJ004-0051.wav|tests/data/ljspeech/wavs/LJ004-0051.npy +tests/data/ljspeech/wavs/LJ002-0283.wav|tests/data/ljspeech/wavs/LJ002-0283.npy +tests/data/ljspeech/wavs/LJ016-0239.wav|tests/data/ljspeech/wavs/LJ016-0239.npy +tests/data/ljspeech/wavs/LJ041-0013.wav|tests/data/ljspeech/wavs/LJ041-0013.npy +tests/data/ljspeech/wavs/LJ012-0137.wav|tests/data/ljspeech/wavs/LJ012-0137.npy +tests/data/ljspeech/wavs/LJ005-0197.wav|tests/data/ljspeech/wavs/LJ005-0197.npy +tests/data/ljspeech/wavs/LJ002-0220.wav|tests/data/ljspeech/wavs/LJ002-0220.npy +tests/data/ljspeech/wavs/LJ005-0186.wav|tests/data/ljspeech/wavs/LJ005-0186.npy +tests/data/ljspeech/wavs/LJ019-0147.wav|tests/data/ljspeech/wavs/LJ019-0147.npy +tests/data/ljspeech/wavs/LJ041-0101.wav|tests/data/ljspeech/wavs/LJ041-0101.npy +tests/data/ljspeech/wavs/LJ037-0244.wav|tests/data/ljspeech/wavs/LJ037-0244.npy +tests/data/ljspeech/wavs/LJ001-0034.wav|tests/data/ljspeech/wavs/LJ001-0034.npy +tests/data/ljspeech/wavs/LJ023-0020.wav|tests/data/ljspeech/wavs/LJ023-0020.npy +tests/data/ljspeech/wavs/LJ013-0184.wav|tests/data/ljspeech/wavs/LJ013-0184.npy +tests/data/ljspeech/wavs/LJ048-0112.wav|tests/data/ljspeech/wavs/LJ048-0112.npy +tests/data/ljspeech/wavs/LJ030-0049.wav|tests/data/ljspeech/wavs/LJ030-0049.npy +tests/data/ljspeech/wavs/LJ016-0172.wav|tests/data/ljspeech/wavs/LJ016-0172.npy +tests/data/ljspeech/wavs/LJ043-0053.wav|tests/data/ljspeech/wavs/LJ043-0053.npy +tests/data/ljspeech/wavs/LJ005-0070.wav|tests/data/ljspeech/wavs/LJ005-0070.npy +tests/data/ljspeech/wavs/LJ013-0152.wav|tests/data/ljspeech/wavs/LJ013-0152.npy +tests/data/ljspeech/wavs/LJ006-0022.wav|tests/data/ljspeech/wavs/LJ006-0022.npy +tests/data/ljspeech/wavs/LJ024-0059.wav|tests/data/ljspeech/wavs/LJ024-0059.npy +tests/data/ljspeech/wavs/LJ045-0041.wav|tests/data/ljspeech/wavs/LJ045-0041.npy +tests/data/ljspeech/wavs/LJ016-0396.wav|tests/data/ljspeech/wavs/LJ016-0396.npy +tests/data/ljspeech/wavs/LJ006-0010.wav|tests/data/ljspeech/wavs/LJ006-0010.npy +tests/data/ljspeech/wavs/LJ045-0005.wav|tests/data/ljspeech/wavs/LJ045-0005.npy +tests/data/ljspeech/wavs/LJ023-0113.wav|tests/data/ljspeech/wavs/LJ023-0113.npy +tests/data/ljspeech/wavs/LJ030-0084.wav|tests/data/ljspeech/wavs/LJ030-0084.npy +tests/data/ljspeech/wavs/LJ048-0124.wav|tests/data/ljspeech/wavs/LJ048-0124.npy +tests/data/ljspeech/wavs/LJ033-0062.wav|tests/data/ljspeech/wavs/LJ033-0062.npy +tests/data/ljspeech/wavs/LJ012-0198.wav|tests/data/ljspeech/wavs/LJ012-0198.npy +tests/data/ljspeech/wavs/LJ028-0296.wav|tests/data/ljspeech/wavs/LJ028-0296.npy +tests/data/ljspeech/wavs/LJ006-0292.wav|tests/data/ljspeech/wavs/LJ006-0292.npy +tests/data/ljspeech/wavs/LJ043-0067.wav|tests/data/ljspeech/wavs/LJ043-0067.npy +tests/data/ljspeech/wavs/LJ005-0065.wav|tests/data/ljspeech/wavs/LJ005-0065.npy +tests/data/ljspeech/wavs/LJ006-0025.wav|tests/data/ljspeech/wavs/LJ006-0025.npy +tests/data/ljspeech/wavs/LJ006-0038.wav|tests/data/ljspeech/wavs/LJ006-0038.npy +tests/data/ljspeech/wavs/LJ017-0037.wav|tests/data/ljspeech/wavs/LJ017-0037.npy +tests/data/ljspeech/wavs/LJ030-0059.wav|tests/data/ljspeech/wavs/LJ030-0059.npy +tests/data/ljspeech/wavs/LJ015-0205.wav|tests/data/ljspeech/wavs/LJ015-0205.npy +tests/data/ljspeech/wavs/LJ004-0147.wav|tests/data/ljspeech/wavs/LJ004-0147.npy +tests/data/ljspeech/wavs/LJ017-0230.wav|tests/data/ljspeech/wavs/LJ017-0230.npy +tests/data/ljspeech/wavs/LJ045-0178.wav|tests/data/ljspeech/wavs/LJ045-0178.npy +tests/data/ljspeech/wavs/LJ038-0086.wav|tests/data/ljspeech/wavs/LJ038-0086.npy +tests/data/ljspeech/wavs/LJ028-0355.wav|tests/data/ljspeech/wavs/LJ028-0355.npy +tests/data/ljspeech/wavs/LJ003-0048.wav|tests/data/ljspeech/wavs/LJ003-0048.npy +tests/data/ljspeech/wavs/LJ009-0002.wav|tests/data/ljspeech/wavs/LJ009-0002.npy +tests/data/ljspeech/wavs/LJ019-0189.wav|tests/data/ljspeech/wavs/LJ019-0189.npy +tests/data/ljspeech/wavs/LJ040-0183.wav|tests/data/ljspeech/wavs/LJ040-0183.npy +tests/data/ljspeech/wavs/LJ050-0206.wav|tests/data/ljspeech/wavs/LJ050-0206.npy +tests/data/ljspeech/wavs/LJ021-0209.wav|tests/data/ljspeech/wavs/LJ021-0209.npy +tests/data/ljspeech/wavs/LJ035-0072.wav|tests/data/ljspeech/wavs/LJ035-0072.npy +tests/data/ljspeech/wavs/LJ004-0059.wav|tests/data/ljspeech/wavs/LJ004-0059.npy +tests/data/ljspeech/wavs/LJ022-0038.wav|tests/data/ljspeech/wavs/LJ022-0038.npy +tests/data/ljspeech/wavs/LJ010-0056.wav|tests/data/ljspeech/wavs/LJ010-0056.npy +tests/data/ljspeech/wavs/LJ034-0078.wav|tests/data/ljspeech/wavs/LJ034-0078.npy +tests/data/ljspeech/wavs/LJ008-0153.wav|tests/data/ljspeech/wavs/LJ008-0153.npy +tests/data/ljspeech/wavs/LJ016-0220.wav|tests/data/ljspeech/wavs/LJ016-0220.npy +tests/data/ljspeech/wavs/LJ028-0061.wav|tests/data/ljspeech/wavs/LJ028-0061.npy +tests/data/ljspeech/wavs/LJ042-0088.wav|tests/data/ljspeech/wavs/LJ042-0088.npy +tests/data/ljspeech/wavs/LJ021-0151.wav|tests/data/ljspeech/wavs/LJ021-0151.npy +tests/data/ljspeech/wavs/LJ026-0062.wav|tests/data/ljspeech/wavs/LJ026-0062.npy +tests/data/ljspeech/wavs/LJ048-0055.wav|tests/data/ljspeech/wavs/LJ048-0055.npy +tests/data/ljspeech/wavs/LJ040-0120.wav|tests/data/ljspeech/wavs/LJ040-0120.npy +tests/data/ljspeech/wavs/LJ027-0177.wav|tests/data/ljspeech/wavs/LJ027-0177.npy +tests/data/ljspeech/wavs/LJ012-0258.wav|tests/data/ljspeech/wavs/LJ012-0258.npy +tests/data/ljspeech/wavs/LJ046-0054.wav|tests/data/ljspeech/wavs/LJ046-0054.npy +tests/data/ljspeech/wavs/LJ004-0072.wav|tests/data/ljspeech/wavs/LJ004-0072.npy +tests/data/ljspeech/wavs/LJ010-0175.wav|tests/data/ljspeech/wavs/LJ010-0175.npy +tests/data/ljspeech/wavs/LJ048-0192.wav|tests/data/ljspeech/wavs/LJ048-0192.npy +tests/data/ljspeech/wavs/LJ035-0023.wav|tests/data/ljspeech/wavs/LJ035-0023.npy +tests/data/ljspeech/wavs/LJ019-0370.wav|tests/data/ljspeech/wavs/LJ019-0370.npy +tests/data/ljspeech/wavs/LJ042-0123.wav|tests/data/ljspeech/wavs/LJ042-0123.npy +tests/data/ljspeech/wavs/LJ002-0325.wav|tests/data/ljspeech/wavs/LJ002-0325.npy +tests/data/ljspeech/wavs/LJ032-0015.wav|tests/data/ljspeech/wavs/LJ032-0015.npy +tests/data/ljspeech/wavs/LJ041-0202.wav|tests/data/ljspeech/wavs/LJ041-0202.npy +tests/data/ljspeech/wavs/LJ032-0221.wav|tests/data/ljspeech/wavs/LJ032-0221.npy +tests/data/ljspeech/wavs/LJ015-0002.wav|tests/data/ljspeech/wavs/LJ015-0002.npy +tests/data/ljspeech/wavs/LJ041-0130.wav|tests/data/ljspeech/wavs/LJ041-0130.npy +tests/data/ljspeech/wavs/LJ020-0085.wav|tests/data/ljspeech/wavs/LJ020-0085.npy +tests/data/ljspeech/wavs/LJ019-0074.wav|tests/data/ljspeech/wavs/LJ019-0074.npy +tests/data/ljspeech/wavs/LJ009-0012.wav|tests/data/ljspeech/wavs/LJ009-0012.npy +tests/data/ljspeech/wavs/LJ026-0132.wav|tests/data/ljspeech/wavs/LJ026-0132.npy +tests/data/ljspeech/wavs/LJ002-0222.wav|tests/data/ljspeech/wavs/LJ002-0222.npy +tests/data/ljspeech/wavs/LJ025-0115.wav|tests/data/ljspeech/wavs/LJ025-0115.npy +tests/data/ljspeech/wavs/LJ041-0023.wav|tests/data/ljspeech/wavs/LJ041-0023.npy +tests/data/ljspeech/wavs/LJ008-0219.wav|tests/data/ljspeech/wavs/LJ008-0219.npy +tests/data/ljspeech/wavs/LJ034-0157.wav|tests/data/ljspeech/wavs/LJ034-0157.npy +tests/data/ljspeech/wavs/LJ007-0096.wav|tests/data/ljspeech/wavs/LJ007-0096.npy +tests/data/ljspeech/wavs/LJ049-0119.wav|tests/data/ljspeech/wavs/LJ049-0119.npy +tests/data/ljspeech/wavs/LJ012-0173.wav|tests/data/ljspeech/wavs/LJ012-0173.npy +tests/data/ljspeech/wavs/LJ043-0076.wav|tests/data/ljspeech/wavs/LJ043-0076.npy +tests/data/ljspeech/wavs/LJ019-0040.wav|tests/data/ljspeech/wavs/LJ019-0040.npy +tests/data/ljspeech/wavs/LJ028-0452.wav|tests/data/ljspeech/wavs/LJ028-0452.npy +tests/data/ljspeech/wavs/LJ049-0026.wav|tests/data/ljspeech/wavs/LJ049-0026.npy +tests/data/ljspeech/wavs/LJ010-0279.wav|tests/data/ljspeech/wavs/LJ010-0279.npy +tests/data/ljspeech/wavs/LJ049-0092.wav|tests/data/ljspeech/wavs/LJ049-0092.npy +tests/data/ljspeech/wavs/LJ015-0042.wav|tests/data/ljspeech/wavs/LJ015-0042.npy +tests/data/ljspeech/wavs/LJ037-0166.wav|tests/data/ljspeech/wavs/LJ037-0166.npy +tests/data/ljspeech/wavs/LJ028-0445.wav|tests/data/ljspeech/wavs/LJ028-0445.npy +tests/data/ljspeech/wavs/LJ010-0024.wav|tests/data/ljspeech/wavs/LJ010-0024.npy +tests/data/ljspeech/wavs/LJ015-0043.wav|tests/data/ljspeech/wavs/LJ015-0043.npy +tests/data/ljspeech/wavs/LJ018-0081.wav|tests/data/ljspeech/wavs/LJ018-0081.npy +tests/data/ljspeech/wavs/LJ001-0132.wav|tests/data/ljspeech/wavs/LJ001-0132.npy +tests/data/ljspeech/wavs/LJ014-0199.wav|tests/data/ljspeech/wavs/LJ014-0199.npy +tests/data/ljspeech/wavs/LJ016-0014.wav|tests/data/ljspeech/wavs/LJ016-0014.npy +tests/data/ljspeech/wavs/LJ044-0220.wav|tests/data/ljspeech/wavs/LJ044-0220.npy +tests/data/ljspeech/wavs/LJ044-0106.wav|tests/data/ljspeech/wavs/LJ044-0106.npy +tests/data/ljspeech/wavs/LJ012-0197.wav|tests/data/ljspeech/wavs/LJ012-0197.npy +tests/data/ljspeech/wavs/LJ037-0230.wav|tests/data/ljspeech/wavs/LJ037-0230.npy +tests/data/ljspeech/wavs/LJ038-0156.wav|tests/data/ljspeech/wavs/LJ038-0156.npy +tests/data/ljspeech/wavs/LJ012-0239.wav|tests/data/ljspeech/wavs/LJ012-0239.npy +tests/data/ljspeech/wavs/LJ037-0070.wav|tests/data/ljspeech/wavs/LJ037-0070.npy +tests/data/ljspeech/wavs/LJ013-0115.wav|tests/data/ljspeech/wavs/LJ013-0115.npy +tests/data/ljspeech/wavs/LJ016-0305.wav|tests/data/ljspeech/wavs/LJ016-0305.npy +tests/data/ljspeech/wavs/LJ010-0253.wav|tests/data/ljspeech/wavs/LJ010-0253.npy +tests/data/ljspeech/wavs/LJ044-0109.wav|tests/data/ljspeech/wavs/LJ044-0109.npy +tests/data/ljspeech/wavs/LJ044-0121.wav|tests/data/ljspeech/wavs/LJ044-0121.npy +tests/data/ljspeech/wavs/LJ013-0135.wav|tests/data/ljspeech/wavs/LJ013-0135.npy +tests/data/ljspeech/wavs/LJ017-0014.wav|tests/data/ljspeech/wavs/LJ017-0014.npy +tests/data/ljspeech/wavs/LJ010-0265.wav|tests/data/ljspeech/wavs/LJ010-0265.npy +tests/data/ljspeech/wavs/LJ004-0009.wav|tests/data/ljspeech/wavs/LJ004-0009.npy +tests/data/ljspeech/wavs/LJ039-0212.wav|tests/data/ljspeech/wavs/LJ039-0212.npy +tests/data/ljspeech/wavs/LJ015-0047.wav|tests/data/ljspeech/wavs/LJ015-0047.npy +tests/data/ljspeech/wavs/LJ049-0143.wav|tests/data/ljspeech/wavs/LJ049-0143.npy +tests/data/ljspeech/wavs/LJ012-0204.wav|tests/data/ljspeech/wavs/LJ012-0204.npy +tests/data/ljspeech/wavs/LJ014-0024.wav|tests/data/ljspeech/wavs/LJ014-0024.npy +tests/data/ljspeech/wavs/LJ040-0185.wav|tests/data/ljspeech/wavs/LJ040-0185.npy +tests/data/ljspeech/wavs/LJ016-0386.wav|tests/data/ljspeech/wavs/LJ016-0386.npy +tests/data/ljspeech/wavs/LJ004-0197.wav|tests/data/ljspeech/wavs/LJ004-0197.npy +tests/data/ljspeech/wavs/LJ016-0113.wav|tests/data/ljspeech/wavs/LJ016-0113.npy +tests/data/ljspeech/wavs/LJ039-0197.wav|tests/data/ljspeech/wavs/LJ039-0197.npy +tests/data/ljspeech/wavs/LJ003-0330.wav|tests/data/ljspeech/wavs/LJ003-0330.npy +tests/data/ljspeech/wavs/LJ019-0034.wav|tests/data/ljspeech/wavs/LJ019-0034.npy +tests/data/ljspeech/wavs/LJ039-0220.wav|tests/data/ljspeech/wavs/LJ039-0220.npy +tests/data/ljspeech/wavs/LJ039-0195.wav|tests/data/ljspeech/wavs/LJ039-0195.npy +tests/data/ljspeech/wavs/LJ015-0229.wav|tests/data/ljspeech/wavs/LJ015-0229.npy +tests/data/ljspeech/wavs/LJ016-0361.wav|tests/data/ljspeech/wavs/LJ016-0361.npy +tests/data/ljspeech/wavs/LJ032-0212.wav|tests/data/ljspeech/wavs/LJ032-0212.npy +tests/data/ljspeech/wavs/LJ037-0134.wav|tests/data/ljspeech/wavs/LJ037-0134.npy +tests/data/ljspeech/wavs/LJ038-0206.wav|tests/data/ljspeech/wavs/LJ038-0206.npy +tests/data/ljspeech/wavs/LJ033-0093.wav|tests/data/ljspeech/wavs/LJ033-0093.npy +tests/data/ljspeech/wavs/LJ047-0026.wav|tests/data/ljspeech/wavs/LJ047-0026.npy +tests/data/ljspeech/wavs/LJ046-0253.wav|tests/data/ljspeech/wavs/LJ046-0253.npy +tests/data/ljspeech/wavs/LJ026-0035.wav|tests/data/ljspeech/wavs/LJ026-0035.npy +tests/data/ljspeech/wavs/LJ027-0011.wav|tests/data/ljspeech/wavs/LJ027-0011.npy +tests/data/ljspeech/wavs/LJ040-0191.wav|tests/data/ljspeech/wavs/LJ040-0191.npy +tests/data/ljspeech/wavs/LJ003-0133.wav|tests/data/ljspeech/wavs/LJ003-0133.npy +tests/data/ljspeech/wavs/LJ013-0098.wav|tests/data/ljspeech/wavs/LJ013-0098.npy +tests/data/ljspeech/wavs/LJ019-0140.wav|tests/data/ljspeech/wavs/LJ019-0140.npy +tests/data/ljspeech/wavs/LJ027-0019.wav|tests/data/ljspeech/wavs/LJ027-0019.npy +tests/data/ljspeech/wavs/LJ040-0114.wav|tests/data/ljspeech/wavs/LJ040-0114.npy +tests/data/ljspeech/wavs/LJ013-0103.wav|tests/data/ljspeech/wavs/LJ013-0103.npy +tests/data/ljspeech/wavs/LJ040-0202.wav|tests/data/ljspeech/wavs/LJ040-0202.npy +tests/data/ljspeech/wavs/LJ027-0078.wav|tests/data/ljspeech/wavs/LJ027-0078.npy +tests/data/ljspeech/wavs/LJ043-0136.wav|tests/data/ljspeech/wavs/LJ043-0136.npy +tests/data/ljspeech/wavs/LJ047-0048.wav|tests/data/ljspeech/wavs/LJ047-0048.npy +tests/data/ljspeech/wavs/LJ016-0143.wav|tests/data/ljspeech/wavs/LJ016-0143.npy +tests/data/ljspeech/wavs/LJ012-0063.wav|tests/data/ljspeech/wavs/LJ012-0063.npy +tests/data/ljspeech/wavs/LJ006-0050.wav|tests/data/ljspeech/wavs/LJ006-0050.npy +tests/data/ljspeech/wavs/LJ033-0014.wav|tests/data/ljspeech/wavs/LJ033-0014.npy +tests/data/ljspeech/wavs/LJ045-0235.wav|tests/data/ljspeech/wavs/LJ045-0235.npy +tests/data/ljspeech/wavs/LJ049-0148.wav|tests/data/ljspeech/wavs/LJ049-0148.npy +tests/data/ljspeech/wavs/LJ046-0036.wav|tests/data/ljspeech/wavs/LJ046-0036.npy +tests/data/ljspeech/wavs/LJ016-0370.wav|tests/data/ljspeech/wavs/LJ016-0370.npy +tests/data/ljspeech/wavs/LJ045-0080.wav|tests/data/ljspeech/wavs/LJ045-0080.npy +tests/data/ljspeech/wavs/LJ016-0419.wav|tests/data/ljspeech/wavs/LJ016-0419.npy +tests/data/ljspeech/wavs/LJ012-0016.wav|tests/data/ljspeech/wavs/LJ012-0016.npy +tests/data/ljspeech/wavs/LJ005-0015.wav|tests/data/ljspeech/wavs/LJ005-0015.npy +tests/data/ljspeech/wavs/LJ002-0195.wav|tests/data/ljspeech/wavs/LJ002-0195.npy +tests/data/ljspeech/wavs/LJ050-0237.wav|tests/data/ljspeech/wavs/LJ050-0237.npy +tests/data/ljspeech/wavs/LJ032-0159.wav|tests/data/ljspeech/wavs/LJ032-0159.npy +tests/data/ljspeech/wavs/LJ035-0168.wav|tests/data/ljspeech/wavs/LJ035-0168.npy +tests/data/ljspeech/wavs/LJ023-0010.wav|tests/data/ljspeech/wavs/LJ023-0010.npy +tests/data/ljspeech/wavs/LJ044-0034.wav|tests/data/ljspeech/wavs/LJ044-0034.npy +tests/data/ljspeech/wavs/LJ028-0239.wav|tests/data/ljspeech/wavs/LJ028-0239.npy +tests/data/ljspeech/wavs/LJ050-0233.wav|tests/data/ljspeech/wavs/LJ050-0233.npy +tests/data/ljspeech/wavs/LJ022-0056.wav|tests/data/ljspeech/wavs/LJ022-0056.npy +tests/data/ljspeech/wavs/LJ002-0097.wav|tests/data/ljspeech/wavs/LJ002-0097.npy +tests/data/ljspeech/wavs/LJ003-0112.wav|tests/data/ljspeech/wavs/LJ003-0112.npy +tests/data/ljspeech/wavs/LJ005-0283.wav|tests/data/ljspeech/wavs/LJ005-0283.npy +tests/data/ljspeech/wavs/LJ047-0243.wav|tests/data/ljspeech/wavs/LJ047-0243.npy +tests/data/ljspeech/wavs/LJ032-0127.wav|tests/data/ljspeech/wavs/LJ032-0127.npy +tests/data/ljspeech/wavs/LJ018-0343.wav|tests/data/ljspeech/wavs/LJ018-0343.npy +tests/data/ljspeech/wavs/LJ040-0174.wav|tests/data/ljspeech/wavs/LJ040-0174.npy +tests/data/ljspeech/wavs/LJ050-0136.wav|tests/data/ljspeech/wavs/LJ050-0136.npy +tests/data/ljspeech/wavs/LJ010-0261.wav|tests/data/ljspeech/wavs/LJ010-0261.npy +tests/data/ljspeech/wavs/LJ028-0349.wav|tests/data/ljspeech/wavs/LJ028-0349.npy +tests/data/ljspeech/wavs/LJ010-0030.wav|tests/data/ljspeech/wavs/LJ010-0030.npy +tests/data/ljspeech/wavs/LJ028-0102.wav|tests/data/ljspeech/wavs/LJ028-0102.npy +tests/data/ljspeech/wavs/LJ041-0036.wav|tests/data/ljspeech/wavs/LJ041-0036.npy +tests/data/ljspeech/wavs/LJ009-0050.wav|tests/data/ljspeech/wavs/LJ009-0050.npy +tests/data/ljspeech/wavs/LJ040-0182.wav|tests/data/ljspeech/wavs/LJ040-0182.npy +tests/data/ljspeech/wavs/LJ019-0153.wav|tests/data/ljspeech/wavs/LJ019-0153.npy +tests/data/ljspeech/wavs/LJ032-0060.wav|tests/data/ljspeech/wavs/LJ032-0060.npy +tests/data/ljspeech/wavs/LJ041-0014.wav|tests/data/ljspeech/wavs/LJ041-0014.npy +tests/data/ljspeech/wavs/LJ009-0206.wav|tests/data/ljspeech/wavs/LJ009-0206.npy +tests/data/ljspeech/wavs/LJ028-0282.wav|tests/data/ljspeech/wavs/LJ028-0282.npy +tests/data/ljspeech/wavs/LJ005-0273.wav|tests/data/ljspeech/wavs/LJ005-0273.npy +tests/data/ljspeech/wavs/LJ009-0239.wav|tests/data/ljspeech/wavs/LJ009-0239.npy +tests/data/ljspeech/wavs/LJ005-0286.wav|tests/data/ljspeech/wavs/LJ005-0286.npy +tests/data/ljspeech/wavs/LJ035-0105.wav|tests/data/ljspeech/wavs/LJ035-0105.npy +tests/data/ljspeech/wavs/LJ028-0360.wav|tests/data/ljspeech/wavs/LJ028-0360.npy +tests/data/ljspeech/wavs/LJ029-0057.wav|tests/data/ljspeech/wavs/LJ029-0057.npy +tests/data/ljspeech/wavs/LJ050-0149.wav|tests/data/ljspeech/wavs/LJ050-0149.npy +tests/data/ljspeech/wavs/LJ019-0179.wav|tests/data/ljspeech/wavs/LJ019-0179.npy +tests/data/ljspeech/wavs/LJ023-0059.wav|tests/data/ljspeech/wavs/LJ023-0059.npy +tests/data/ljspeech/wavs/LJ010-0136.wav|tests/data/ljspeech/wavs/LJ010-0136.npy +tests/data/ljspeech/wavs/LJ024-0011.wav|tests/data/ljspeech/wavs/LJ024-0011.npy +tests/data/ljspeech/wavs/LJ007-0065.wav|tests/data/ljspeech/wavs/LJ007-0065.npy +tests/data/ljspeech/wavs/LJ047-0225.wav|tests/data/ljspeech/wavs/LJ047-0225.npy +tests/data/ljspeech/wavs/LJ017-0265.wav|tests/data/ljspeech/wavs/LJ017-0265.npy +tests/data/ljspeech/wavs/LJ024-0096.wav|tests/data/ljspeech/wavs/LJ024-0096.npy +tests/data/ljspeech/wavs/LJ036-0150.wav|tests/data/ljspeech/wavs/LJ036-0150.npy +tests/data/ljspeech/wavs/LJ009-0171.wav|tests/data/ljspeech/wavs/LJ009-0171.npy +tests/data/ljspeech/wavs/LJ006-0171.wav|tests/data/ljspeech/wavs/LJ006-0171.npy +tests/data/ljspeech/wavs/LJ003-0204.wav|tests/data/ljspeech/wavs/LJ003-0204.npy +tests/data/ljspeech/wavs/LJ040-0028.wav|tests/data/ljspeech/wavs/LJ040-0028.npy +tests/data/ljspeech/wavs/LJ017-0247.wav|tests/data/ljspeech/wavs/LJ017-0247.npy +tests/data/ljspeech/wavs/LJ046-0140.wav|tests/data/ljspeech/wavs/LJ046-0140.npy +tests/data/ljspeech/wavs/LJ002-0259.wav|tests/data/ljspeech/wavs/LJ002-0259.npy +tests/data/ljspeech/wavs/LJ010-0151.wav|tests/data/ljspeech/wavs/LJ010-0151.npy +tests/data/ljspeech/wavs/LJ041-0076.wav|tests/data/ljspeech/wavs/LJ041-0076.npy +tests/data/ljspeech/wavs/LJ042-0176.wav|tests/data/ljspeech/wavs/LJ042-0176.npy +tests/data/ljspeech/wavs/LJ029-0159.wav|tests/data/ljspeech/wavs/LJ029-0159.npy +tests/data/ljspeech/wavs/LJ005-0083.wav|tests/data/ljspeech/wavs/LJ005-0083.npy +tests/data/ljspeech/wavs/LJ050-0180.wav|tests/data/ljspeech/wavs/LJ050-0180.npy +tests/data/ljspeech/wavs/LJ009-0122.wav|tests/data/ljspeech/wavs/LJ009-0122.npy +tests/data/ljspeech/wavs/LJ011-0058.wav|tests/data/ljspeech/wavs/LJ011-0058.npy +tests/data/ljspeech/wavs/LJ006-0277.wav|tests/data/ljspeech/wavs/LJ006-0277.npy +tests/data/ljspeech/wavs/LJ040-0016.wav|tests/data/ljspeech/wavs/LJ040-0016.npy +tests/data/ljspeech/wavs/LJ018-0046.wav|tests/data/ljspeech/wavs/LJ018-0046.npy +tests/data/ljspeech/wavs/LJ048-0278.wav|tests/data/ljspeech/wavs/LJ048-0278.npy +tests/data/ljspeech/wavs/LJ017-0248.wav|tests/data/ljspeech/wavs/LJ017-0248.npy +tests/data/ljspeech/wavs/LJ030-0144.wav|tests/data/ljspeech/wavs/LJ030-0144.npy +tests/data/ljspeech/wavs/LJ029-0038.wav|tests/data/ljspeech/wavs/LJ029-0038.npy +tests/data/ljspeech/wavs/LJ037-0228.wav|tests/data/ljspeech/wavs/LJ037-0228.npy +tests/data/ljspeech/wavs/LJ045-0201.wav|tests/data/ljspeech/wavs/LJ045-0201.npy +tests/data/ljspeech/wavs/LJ013-0217.wav|tests/data/ljspeech/wavs/LJ013-0217.npy +tests/data/ljspeech/wavs/LJ002-0062.wav|tests/data/ljspeech/wavs/LJ002-0062.npy +tests/data/ljspeech/wavs/LJ038-0248.wav|tests/data/ljspeech/wavs/LJ038-0248.npy +tests/data/ljspeech/wavs/LJ047-0068.wav|tests/data/ljspeech/wavs/LJ047-0068.npy +tests/data/ljspeech/wavs/LJ030-0238.wav|tests/data/ljspeech/wavs/LJ030-0238.npy +tests/data/ljspeech/wavs/LJ016-0080.wav|tests/data/ljspeech/wavs/LJ016-0080.npy +tests/data/ljspeech/wavs/LJ024-0061.wav|tests/data/ljspeech/wavs/LJ024-0061.npy +tests/data/ljspeech/wavs/LJ044-0177.wav|tests/data/ljspeech/wavs/LJ044-0177.npy +tests/data/ljspeech/wavs/LJ031-0008.wav|tests/data/ljspeech/wavs/LJ031-0008.npy +tests/data/ljspeech/wavs/LJ028-0470.wav|tests/data/ljspeech/wavs/LJ028-0470.npy +tests/data/ljspeech/wavs/LJ005-0285.wav|tests/data/ljspeech/wavs/LJ005-0285.npy +tests/data/ljspeech/wavs/LJ021-0004.wav|tests/data/ljspeech/wavs/LJ021-0004.npy +tests/data/ljspeech/wavs/LJ030-0008.wav|tests/data/ljspeech/wavs/LJ030-0008.npy +tests/data/ljspeech/wavs/LJ030-0121.wav|tests/data/ljspeech/wavs/LJ030-0121.npy +tests/data/ljspeech/wavs/LJ006-0006.wav|tests/data/ljspeech/wavs/LJ006-0006.npy +tests/data/ljspeech/wavs/LJ025-0009.wav|tests/data/ljspeech/wavs/LJ025-0009.npy +tests/data/ljspeech/wavs/LJ030-0219.wav|tests/data/ljspeech/wavs/LJ030-0219.npy +tests/data/ljspeech/wavs/LJ006-0235.wav|tests/data/ljspeech/wavs/LJ006-0235.npy +tests/data/ljspeech/wavs/LJ010-0055.wav|tests/data/ljspeech/wavs/LJ010-0055.npy +tests/data/ljspeech/wavs/LJ015-0196.wav|tests/data/ljspeech/wavs/LJ015-0196.npy +tests/data/ljspeech/wavs/LJ003-0234.wav|tests/data/ljspeech/wavs/LJ003-0234.npy +tests/data/ljspeech/wavs/LJ011-0156.wav|tests/data/ljspeech/wavs/LJ011-0156.npy +tests/data/ljspeech/wavs/LJ004-0233.wav|tests/data/ljspeech/wavs/LJ004-0233.npy +tests/data/ljspeech/wavs/LJ001-0018.wav|tests/data/ljspeech/wavs/LJ001-0018.npy +tests/data/ljspeech/wavs/LJ031-0077.wav|tests/data/ljspeech/wavs/LJ031-0077.npy +tests/data/ljspeech/wavs/LJ005-0093.wav|tests/data/ljspeech/wavs/LJ005-0093.npy +tests/data/ljspeech/wavs/LJ004-0139.wav|tests/data/ljspeech/wavs/LJ004-0139.npy +tests/data/ljspeech/wavs/LJ017-0129.wav|tests/data/ljspeech/wavs/LJ017-0129.npy +tests/data/ljspeech/wavs/LJ015-0292.wav|tests/data/ljspeech/wavs/LJ015-0292.npy +tests/data/ljspeech/wavs/LJ047-0076.wav|tests/data/ljspeech/wavs/LJ047-0076.npy +tests/data/ljspeech/wavs/LJ043-0057.wav|tests/data/ljspeech/wavs/LJ043-0057.npy +tests/data/ljspeech/wavs/LJ037-0224.wav|tests/data/ljspeech/wavs/LJ037-0224.npy +tests/data/ljspeech/wavs/LJ038-0149.wav|tests/data/ljspeech/wavs/LJ038-0149.npy +tests/data/ljspeech/wavs/LJ008-0156.wav|tests/data/ljspeech/wavs/LJ008-0156.npy +tests/data/ljspeech/wavs/LJ044-0168.wav|tests/data/ljspeech/wavs/LJ044-0168.npy +tests/data/ljspeech/wavs/LJ029-0037.wav|tests/data/ljspeech/wavs/LJ029-0037.npy +tests/data/ljspeech/wavs/LJ031-0212.wav|tests/data/ljspeech/wavs/LJ031-0212.npy +tests/data/ljspeech/wavs/LJ021-0072.wav|tests/data/ljspeech/wavs/LJ021-0072.npy +tests/data/ljspeech/wavs/LJ021-0207.wav|tests/data/ljspeech/wavs/LJ021-0207.npy +tests/data/ljspeech/wavs/LJ002-0095.wav|tests/data/ljspeech/wavs/LJ002-0095.npy +tests/data/ljspeech/wavs/LJ006-0086.wav|tests/data/ljspeech/wavs/LJ006-0086.npy +tests/data/ljspeech/wavs/LJ012-0164.wav|tests/data/ljspeech/wavs/LJ012-0164.npy +tests/data/ljspeech/wavs/LJ038-0264.wav|tests/data/ljspeech/wavs/LJ038-0264.npy +tests/data/ljspeech/wavs/LJ050-0003.wav|tests/data/ljspeech/wavs/LJ050-0003.npy +tests/data/ljspeech/wavs/LJ028-0368.wav|tests/data/ljspeech/wavs/LJ028-0368.npy +tests/data/ljspeech/wavs/LJ032-0175.wav|tests/data/ljspeech/wavs/LJ032-0175.npy +tests/data/ljspeech/wavs/LJ028-0519.wav|tests/data/ljspeech/wavs/LJ028-0519.npy +tests/data/ljspeech/wavs/LJ006-0191.wav|tests/data/ljspeech/wavs/LJ006-0191.npy +tests/data/ljspeech/wavs/LJ013-0262.wav|tests/data/ljspeech/wavs/LJ013-0262.npy +tests/data/ljspeech/wavs/LJ027-0104.wav|tests/data/ljspeech/wavs/LJ027-0104.npy +tests/data/ljspeech/wavs/LJ013-0037.wav|tests/data/ljspeech/wavs/LJ013-0037.npy +tests/data/ljspeech/wavs/LJ042-0076.wav|tests/data/ljspeech/wavs/LJ042-0076.npy +tests/data/ljspeech/wavs/LJ031-0226.wav|tests/data/ljspeech/wavs/LJ031-0226.npy +tests/data/ljspeech/wavs/LJ027-0142.wav|tests/data/ljspeech/wavs/LJ027-0142.npy +tests/data/ljspeech/wavs/LJ027-0178.wav|tests/data/ljspeech/wavs/LJ027-0178.npy +tests/data/ljspeech/wavs/LJ030-0195.wav|tests/data/ljspeech/wavs/LJ030-0195.npy +tests/data/ljspeech/wavs/LJ013-0248.wav|tests/data/ljspeech/wavs/LJ013-0248.npy +tests/data/ljspeech/wavs/LJ023-0004.wav|tests/data/ljspeech/wavs/LJ023-0004.npy +tests/data/ljspeech/wavs/LJ009-0218.wav|tests/data/ljspeech/wavs/LJ009-0218.npy +tests/data/ljspeech/wavs/LJ002-0335.wav|tests/data/ljspeech/wavs/LJ002-0335.npy +tests/data/ljspeech/wavs/LJ004-0049.wav|tests/data/ljspeech/wavs/LJ004-0049.npy +tests/data/ljspeech/wavs/LJ042-0190.wav|tests/data/ljspeech/wavs/LJ042-0190.npy +tests/data/ljspeech/wavs/LJ002-0186.wav|tests/data/ljspeech/wavs/LJ002-0186.npy +tests/data/ljspeech/wavs/LJ031-0134.wav|tests/data/ljspeech/wavs/LJ031-0134.npy +tests/data/ljspeech/wavs/LJ008-0041.wav|tests/data/ljspeech/wavs/LJ008-0041.npy +tests/data/ljspeech/wavs/LJ014-0243.wav|tests/data/ljspeech/wavs/LJ014-0243.npy +tests/data/ljspeech/wavs/LJ026-0017.wav|tests/data/ljspeech/wavs/LJ026-0017.npy +tests/data/ljspeech/wavs/LJ047-0120.wav|tests/data/ljspeech/wavs/LJ047-0120.npy +tests/data/ljspeech/wavs/LJ009-0048.wav|tests/data/ljspeech/wavs/LJ009-0048.npy +tests/data/ljspeech/wavs/LJ026-0142.wav|tests/data/ljspeech/wavs/LJ026-0142.npy +tests/data/ljspeech/wavs/LJ028-0362.wav|tests/data/ljspeech/wavs/LJ028-0362.npy +tests/data/ljspeech/wavs/LJ038-0133.wav|tests/data/ljspeech/wavs/LJ038-0133.npy +tests/data/ljspeech/wavs/LJ026-0078.wav|tests/data/ljspeech/wavs/LJ026-0078.npy +tests/data/ljspeech/wavs/LJ015-0093.wav|tests/data/ljspeech/wavs/LJ015-0093.npy +tests/data/ljspeech/wavs/LJ002-0056.wav|tests/data/ljspeech/wavs/LJ002-0056.npy +tests/data/ljspeech/wavs/LJ041-0131.wav|tests/data/ljspeech/wavs/LJ041-0131.npy +tests/data/ljspeech/wavs/LJ042-0138.wav|tests/data/ljspeech/wavs/LJ042-0138.npy +tests/data/ljspeech/wavs/LJ025-0155.wav|tests/data/ljspeech/wavs/LJ025-0155.npy +tests/data/ljspeech/wavs/LJ047-0065.wav|tests/data/ljspeech/wavs/LJ047-0065.npy +tests/data/ljspeech/wavs/LJ046-0123.wav|tests/data/ljspeech/wavs/LJ046-0123.npy +tests/data/ljspeech/wavs/LJ013-0105.wav|tests/data/ljspeech/wavs/LJ013-0105.npy +tests/data/ljspeech/wavs/LJ009-0024.wav|tests/data/ljspeech/wavs/LJ009-0024.npy +tests/data/ljspeech/wavs/LJ008-0211.wav|tests/data/ljspeech/wavs/LJ008-0211.npy +tests/data/ljspeech/wavs/LJ029-0198.wav|tests/data/ljspeech/wavs/LJ029-0198.npy +tests/data/ljspeech/wavs/LJ027-0094.wav|tests/data/ljspeech/wavs/LJ027-0094.npy +tests/data/ljspeech/wavs/LJ041-0143.wav|tests/data/ljspeech/wavs/LJ041-0143.npy +tests/data/ljspeech/wavs/LJ026-0079.wav|tests/data/ljspeech/wavs/LJ026-0079.npy +tests/data/ljspeech/wavs/LJ007-0089.wav|tests/data/ljspeech/wavs/LJ007-0089.npy +tests/data/ljspeech/wavs/LJ031-0152.wav|tests/data/ljspeech/wavs/LJ031-0152.npy +tests/data/ljspeech/wavs/LJ028-0320.wav|tests/data/ljspeech/wavs/LJ028-0320.npy +tests/data/ljspeech/wavs/LJ032-0265.wav|tests/data/ljspeech/wavs/LJ032-0265.npy +tests/data/ljspeech/wavs/LJ043-0154.wav|tests/data/ljspeech/wavs/LJ043-0154.npy +tests/data/ljspeech/wavs/LJ019-0016.wav|tests/data/ljspeech/wavs/LJ019-0016.npy +tests/data/ljspeech/wavs/LJ036-0022.wav|tests/data/ljspeech/wavs/LJ036-0022.npy +tests/data/ljspeech/wavs/LJ048-0287.wav|tests/data/ljspeech/wavs/LJ048-0287.npy +tests/data/ljspeech/wavs/LJ035-0204.wav|tests/data/ljspeech/wavs/LJ035-0204.npy +tests/data/ljspeech/wavs/LJ010-0114.wav|tests/data/ljspeech/wavs/LJ010-0114.npy +tests/data/ljspeech/wavs/LJ026-0024.wav|tests/data/ljspeech/wavs/LJ026-0024.npy +tests/data/ljspeech/wavs/LJ003-0055.wav|tests/data/ljspeech/wavs/LJ003-0055.npy +tests/data/ljspeech/wavs/LJ049-0189.wav|tests/data/ljspeech/wavs/LJ049-0189.npy +tests/data/ljspeech/wavs/LJ019-0051.wav|tests/data/ljspeech/wavs/LJ019-0051.npy +tests/data/ljspeech/wavs/LJ019-0289.wav|tests/data/ljspeech/wavs/LJ019-0289.npy +tests/data/ljspeech/wavs/LJ037-0109.wav|tests/data/ljspeech/wavs/LJ037-0109.npy +tests/data/ljspeech/wavs/LJ040-0073.wav|tests/data/ljspeech/wavs/LJ040-0073.npy +tests/data/ljspeech/wavs/LJ045-0067.wav|tests/data/ljspeech/wavs/LJ045-0067.npy +tests/data/ljspeech/wavs/LJ011-0061.wav|tests/data/ljspeech/wavs/LJ011-0061.npy +tests/data/ljspeech/wavs/LJ003-0078.wav|tests/data/ljspeech/wavs/LJ003-0078.npy +tests/data/ljspeech/wavs/LJ008-0269.wav|tests/data/ljspeech/wavs/LJ008-0269.npy +tests/data/ljspeech/wavs/LJ013-0265.wav|tests/data/ljspeech/wavs/LJ013-0265.npy +tests/data/ljspeech/wavs/LJ016-0208.wav|tests/data/ljspeech/wavs/LJ016-0208.npy +tests/data/ljspeech/wavs/LJ035-0060.wav|tests/data/ljspeech/wavs/LJ035-0060.npy +tests/data/ljspeech/wavs/LJ005-0058.wav|tests/data/ljspeech/wavs/LJ005-0058.npy +tests/data/ljspeech/wavs/LJ016-0099.wav|tests/data/ljspeech/wavs/LJ016-0099.npy +tests/data/ljspeech/wavs/LJ032-0218.wav|tests/data/ljspeech/wavs/LJ032-0218.npy +tests/data/ljspeech/wavs/LJ011-0274.wav|tests/data/ljspeech/wavs/LJ011-0274.npy +tests/data/ljspeech/wavs/LJ047-0163.wav|tests/data/ljspeech/wavs/LJ047-0163.npy +tests/data/ljspeech/wavs/LJ012-0054.wav|tests/data/ljspeech/wavs/LJ012-0054.npy +tests/data/ljspeech/wavs/LJ010-0310.wav|tests/data/ljspeech/wavs/LJ010-0310.npy +tests/data/ljspeech/wavs/LJ018-0025.wav|tests/data/ljspeech/wavs/LJ018-0025.npy +tests/data/ljspeech/wavs/LJ003-0180.wav|tests/data/ljspeech/wavs/LJ003-0180.npy +tests/data/ljspeech/wavs/LJ016-0283.wav|tests/data/ljspeech/wavs/LJ016-0283.npy +tests/data/ljspeech/wavs/LJ045-0168.wav|tests/data/ljspeech/wavs/LJ045-0168.npy +tests/data/ljspeech/wavs/LJ018-0181.wav|tests/data/ljspeech/wavs/LJ018-0181.npy +tests/data/ljspeech/wavs/LJ019-0323.wav|tests/data/ljspeech/wavs/LJ019-0323.npy +tests/data/ljspeech/wavs/LJ042-0079.wav|tests/data/ljspeech/wavs/LJ042-0079.npy +tests/data/ljspeech/wavs/LJ011-0095.wav|tests/data/ljspeech/wavs/LJ011-0095.npy +tests/data/ljspeech/wavs/LJ026-0055.wav|tests/data/ljspeech/wavs/LJ026-0055.npy +tests/data/ljspeech/wavs/LJ016-0375.wav|tests/data/ljspeech/wavs/LJ016-0375.npy +tests/data/ljspeech/wavs/LJ012-0022.wav|tests/data/ljspeech/wavs/LJ012-0022.npy +tests/data/ljspeech/wavs/LJ045-0050.wav|tests/data/ljspeech/wavs/LJ045-0050.npy +tests/data/ljspeech/wavs/LJ018-0381.wav|tests/data/ljspeech/wavs/LJ018-0381.npy +tests/data/ljspeech/wavs/LJ008-0117.wav|tests/data/ljspeech/wavs/LJ008-0117.npy +tests/data/ljspeech/wavs/LJ019-0142.wav|tests/data/ljspeech/wavs/LJ019-0142.npy +tests/data/ljspeech/wavs/LJ036-0137.wav|tests/data/ljspeech/wavs/LJ036-0137.npy +tests/data/ljspeech/wavs/LJ011-0290.wav|tests/data/ljspeech/wavs/LJ011-0290.npy +tests/data/ljspeech/wavs/LJ026-0071.wav|tests/data/ljspeech/wavs/LJ026-0071.npy +tests/data/ljspeech/wavs/LJ003-0243.wav|tests/data/ljspeech/wavs/LJ003-0243.npy +tests/data/ljspeech/wavs/LJ038-0090.wav|tests/data/ljspeech/wavs/LJ038-0090.npy +tests/data/ljspeech/wavs/LJ019-0116.wav|tests/data/ljspeech/wavs/LJ019-0116.npy +tests/data/ljspeech/wavs/LJ032-0135.wav|tests/data/ljspeech/wavs/LJ032-0135.npy +tests/data/ljspeech/wavs/LJ049-0223.wav|tests/data/ljspeech/wavs/LJ049-0223.npy +tests/data/ljspeech/wavs/LJ018-0352.wav|tests/data/ljspeech/wavs/LJ018-0352.npy +tests/data/ljspeech/wavs/LJ015-0063.wav|tests/data/ljspeech/wavs/LJ015-0063.npy +tests/data/ljspeech/wavs/LJ011-0121.wav|tests/data/ljspeech/wavs/LJ011-0121.npy +tests/data/ljspeech/wavs/LJ005-0092.wav|tests/data/ljspeech/wavs/LJ005-0092.npy +tests/data/ljspeech/wavs/LJ048-0283.wav|tests/data/ljspeech/wavs/LJ048-0283.npy +tests/data/ljspeech/wavs/LJ011-0181.wav|tests/data/ljspeech/wavs/LJ011-0181.npy +tests/data/ljspeech/wavs/LJ005-0254.wav|tests/data/ljspeech/wavs/LJ005-0254.npy +tests/data/ljspeech/wavs/LJ016-0418.wav|tests/data/ljspeech/wavs/LJ016-0418.npy +tests/data/ljspeech/wavs/LJ005-0189.wav|tests/data/ljspeech/wavs/LJ005-0189.npy +tests/data/ljspeech/wavs/LJ019-0107.wav|tests/data/ljspeech/wavs/LJ019-0107.npy +tests/data/ljspeech/wavs/LJ008-0116.wav|tests/data/ljspeech/wavs/LJ008-0116.npy +tests/data/ljspeech/wavs/LJ017-0110.wav|tests/data/ljspeech/wavs/LJ017-0110.npy +tests/data/ljspeech/wavs/LJ037-0081.wav|tests/data/ljspeech/wavs/LJ037-0081.npy +tests/data/ljspeech/wavs/LJ003-0227.wav|tests/data/ljspeech/wavs/LJ003-0227.npy +tests/data/ljspeech/wavs/LJ028-0028.wav|tests/data/ljspeech/wavs/LJ028-0028.npy +tests/data/ljspeech/wavs/LJ043-0122.wav|tests/data/ljspeech/wavs/LJ043-0122.npy +tests/data/ljspeech/wavs/LJ045-0102.wav|tests/data/ljspeech/wavs/LJ045-0102.npy +tests/data/ljspeech/wavs/LJ001-0077.wav|tests/data/ljspeech/wavs/LJ001-0077.npy +tests/data/ljspeech/wavs/LJ043-0063.wav|tests/data/ljspeech/wavs/LJ043-0063.npy +tests/data/ljspeech/wavs/LJ004-0220.wav|tests/data/ljspeech/wavs/LJ004-0220.npy +tests/data/ljspeech/wavs/LJ019-0058.wav|tests/data/ljspeech/wavs/LJ019-0058.npy +tests/data/ljspeech/wavs/LJ018-0283.wav|tests/data/ljspeech/wavs/LJ018-0283.npy +tests/data/ljspeech/wavs/LJ027-0119.wav|tests/data/ljspeech/wavs/LJ027-0119.npy +tests/data/ljspeech/wavs/LJ028-0157.wav|tests/data/ljspeech/wavs/LJ028-0157.npy +tests/data/ljspeech/wavs/LJ043-0017.wav|tests/data/ljspeech/wavs/LJ043-0017.npy +tests/data/ljspeech/wavs/LJ015-0037.wav|tests/data/ljspeech/wavs/LJ015-0037.npy +tests/data/ljspeech/wavs/LJ003-0145.wav|tests/data/ljspeech/wavs/LJ003-0145.npy +tests/data/ljspeech/wavs/LJ049-0061.wav|tests/data/ljspeech/wavs/LJ049-0061.npy +tests/data/ljspeech/wavs/LJ010-0236.wav|tests/data/ljspeech/wavs/LJ010-0236.npy +tests/data/ljspeech/wavs/LJ042-0103.wav|tests/data/ljspeech/wavs/LJ042-0103.npy +tests/data/ljspeech/wavs/LJ019-0096.wav|tests/data/ljspeech/wavs/LJ019-0096.npy +tests/data/ljspeech/wavs/LJ008-0235.wav|tests/data/ljspeech/wavs/LJ008-0235.npy +tests/data/ljspeech/wavs/LJ038-0202.wav|tests/data/ljspeech/wavs/LJ038-0202.npy +tests/data/ljspeech/wavs/LJ037-0075.wav|tests/data/ljspeech/wavs/LJ037-0075.npy +tests/data/ljspeech/wavs/LJ013-0218.wav|tests/data/ljspeech/wavs/LJ013-0218.npy +tests/data/ljspeech/wavs/LJ013-0194.wav|tests/data/ljspeech/wavs/LJ013-0194.npy +tests/data/ljspeech/wavs/LJ048-0216.wav|tests/data/ljspeech/wavs/LJ048-0216.npy +tests/data/ljspeech/wavs/LJ019-0106.wav|tests/data/ljspeech/wavs/LJ019-0106.npy +tests/data/ljspeech/wavs/LJ014-0118.wav|tests/data/ljspeech/wavs/LJ014-0118.npy +tests/data/ljspeech/wavs/LJ008-0289.wav|tests/data/ljspeech/wavs/LJ008-0289.npy +tests/data/ljspeech/wavs/LJ027-0055.wav|tests/data/ljspeech/wavs/LJ027-0055.npy +tests/data/ljspeech/wavs/LJ004-0070.wav|tests/data/ljspeech/wavs/LJ004-0070.npy +tests/data/ljspeech/wavs/LJ012-0275.wav|tests/data/ljspeech/wavs/LJ012-0275.npy +tests/data/ljspeech/wavs/LJ008-0166.wav|tests/data/ljspeech/wavs/LJ008-0166.npy +tests/data/ljspeech/wavs/LJ007-0005.wav|tests/data/ljspeech/wavs/LJ007-0005.npy +tests/data/ljspeech/wavs/LJ016-0253.wav|tests/data/ljspeech/wavs/LJ016-0253.npy +tests/data/ljspeech/wavs/LJ003-0151.wav|tests/data/ljspeech/wavs/LJ003-0151.npy +tests/data/ljspeech/wavs/LJ017-0076.wav|tests/data/ljspeech/wavs/LJ017-0076.npy +tests/data/ljspeech/wavs/LJ018-0267.wav|tests/data/ljspeech/wavs/LJ018-0267.npy +tests/data/ljspeech/wavs/LJ032-0062.wav|tests/data/ljspeech/wavs/LJ032-0062.npy +tests/data/ljspeech/wavs/LJ047-0136.wav|tests/data/ljspeech/wavs/LJ047-0136.npy +tests/data/ljspeech/wavs/LJ046-0217.wav|tests/data/ljspeech/wavs/LJ046-0217.npy +tests/data/ljspeech/wavs/LJ017-0011.wav|tests/data/ljspeech/wavs/LJ017-0011.npy +tests/data/ljspeech/wavs/LJ014-0049.wav|tests/data/ljspeech/wavs/LJ014-0049.npy +tests/data/ljspeech/wavs/LJ014-0180.wav|tests/data/ljspeech/wavs/LJ014-0180.npy +tests/data/ljspeech/wavs/LJ038-0114.wav|tests/data/ljspeech/wavs/LJ038-0114.npy +tests/data/ljspeech/wavs/LJ017-0052.wav|tests/data/ljspeech/wavs/LJ017-0052.npy +tests/data/ljspeech/wavs/LJ011-0093.wav|tests/data/ljspeech/wavs/LJ011-0093.npy +tests/data/ljspeech/wavs/LJ007-0238.wav|tests/data/ljspeech/wavs/LJ007-0238.npy +tests/data/ljspeech/wavs/LJ018-0299.wav|tests/data/ljspeech/wavs/LJ018-0299.npy +tests/data/ljspeech/wavs/LJ046-0098.wav|tests/data/ljspeech/wavs/LJ046-0098.npy +tests/data/ljspeech/wavs/LJ014-0200.wav|tests/data/ljspeech/wavs/LJ014-0200.npy +tests/data/ljspeech/wavs/LJ011-0135.wav|tests/data/ljspeech/wavs/LJ011-0135.npy +tests/data/ljspeech/wavs/LJ011-0240.wav|tests/data/ljspeech/wavs/LJ011-0240.npy +tests/data/ljspeech/wavs/LJ006-0233.wav|tests/data/ljspeech/wavs/LJ006-0233.npy +tests/data/ljspeech/wavs/LJ040-0092.wav|tests/data/ljspeech/wavs/LJ040-0092.npy +tests/data/ljspeech/wavs/LJ006-0226.wav|tests/data/ljspeech/wavs/LJ006-0226.npy +tests/data/ljspeech/wavs/LJ050-0057.wav|tests/data/ljspeech/wavs/LJ050-0057.npy +tests/data/ljspeech/wavs/LJ043-0024.wav|tests/data/ljspeech/wavs/LJ043-0024.npy +tests/data/ljspeech/wavs/LJ028-0366.wav|tests/data/ljspeech/wavs/LJ028-0366.npy +tests/data/ljspeech/wavs/LJ011-0139.wav|tests/data/ljspeech/wavs/LJ011-0139.npy +tests/data/ljspeech/wavs/LJ032-0117.wav|tests/data/ljspeech/wavs/LJ032-0117.npy +tests/data/ljspeech/wavs/LJ048-0066.wav|tests/data/ljspeech/wavs/LJ048-0066.npy +tests/data/ljspeech/wavs/LJ011-0119.wav|tests/data/ljspeech/wavs/LJ011-0119.npy +tests/data/ljspeech/wavs/LJ003-0212.wav|tests/data/ljspeech/wavs/LJ003-0212.npy +tests/data/ljspeech/wavs/LJ014-0012.wav|tests/data/ljspeech/wavs/LJ014-0012.npy +tests/data/ljspeech/wavs/LJ028-0264.wav|tests/data/ljspeech/wavs/LJ028-0264.npy +tests/data/ljspeech/wavs/LJ038-0224.wav|tests/data/ljspeech/wavs/LJ038-0224.npy +tests/data/ljspeech/wavs/LJ018-0022.wav|tests/data/ljspeech/wavs/LJ018-0022.npy +tests/data/ljspeech/wavs/LJ029-0056.wav|tests/data/ljspeech/wavs/LJ029-0056.npy +tests/data/ljspeech/wavs/LJ031-0169.wav|tests/data/ljspeech/wavs/LJ031-0169.npy +tests/data/ljspeech/wavs/LJ040-0163.wav|tests/data/ljspeech/wavs/LJ040-0163.npy +tests/data/ljspeech/wavs/LJ037-0137.wav|tests/data/ljspeech/wavs/LJ037-0137.npy +tests/data/ljspeech/wavs/LJ040-0107.wav|tests/data/ljspeech/wavs/LJ040-0107.npy +tests/data/ljspeech/wavs/LJ024-0060.wav|tests/data/ljspeech/wavs/LJ024-0060.npy +tests/data/ljspeech/wavs/LJ040-0127.wav|tests/data/ljspeech/wavs/LJ040-0127.npy +tests/data/ljspeech/wavs/LJ019-0235.wav|tests/data/ljspeech/wavs/LJ019-0235.npy +tests/data/ljspeech/wavs/LJ024-0103.wav|tests/data/ljspeech/wavs/LJ024-0103.npy +tests/data/ljspeech/wavs/LJ015-0267.wav|tests/data/ljspeech/wavs/LJ015-0267.npy +tests/data/ljspeech/wavs/LJ010-0150.wav|tests/data/ljspeech/wavs/LJ010-0150.npy +tests/data/ljspeech/wavs/LJ037-0235.wav|tests/data/ljspeech/wavs/LJ037-0235.npy +tests/data/ljspeech/wavs/LJ034-0070.wav|tests/data/ljspeech/wavs/LJ034-0070.npy +tests/data/ljspeech/wavs/LJ015-0260.wav|tests/data/ljspeech/wavs/LJ015-0260.npy +tests/data/ljspeech/wavs/LJ015-0251.wav|tests/data/ljspeech/wavs/LJ015-0251.npy +tests/data/ljspeech/wavs/LJ045-0224.wav|tests/data/ljspeech/wavs/LJ045-0224.npy +tests/data/ljspeech/wavs/LJ034-0065.wav|tests/data/ljspeech/wavs/LJ034-0065.npy +tests/data/ljspeech/wavs/LJ019-0376.wav|tests/data/ljspeech/wavs/LJ019-0376.npy +tests/data/ljspeech/wavs/LJ036-0069.wav|tests/data/ljspeech/wavs/LJ036-0069.npy +tests/data/ljspeech/wavs/LJ043-0179.wav|tests/data/ljspeech/wavs/LJ043-0179.npy +tests/data/ljspeech/wavs/LJ033-0180.wav|tests/data/ljspeech/wavs/LJ033-0180.npy +tests/data/ljspeech/wavs/LJ005-0007.wav|tests/data/ljspeech/wavs/LJ005-0007.npy +tests/data/ljspeech/wavs/LJ039-0089.wav|tests/data/ljspeech/wavs/LJ039-0089.npy +tests/data/ljspeech/wavs/LJ044-0196.wav|tests/data/ljspeech/wavs/LJ044-0196.npy +tests/data/ljspeech/wavs/LJ036-0058.wav|tests/data/ljspeech/wavs/LJ036-0058.npy +tests/data/ljspeech/wavs/LJ019-0301.wav|tests/data/ljspeech/wavs/LJ019-0301.npy +tests/data/ljspeech/wavs/LJ029-0064.wav|tests/data/ljspeech/wavs/LJ029-0064.npy +tests/data/ljspeech/wavs/LJ024-0139.wav|tests/data/ljspeech/wavs/LJ024-0139.npy +tests/data/ljspeech/wavs/LJ031-0197.wav|tests/data/ljspeech/wavs/LJ031-0197.npy +tests/data/ljspeech/wavs/LJ003-0100.wav|tests/data/ljspeech/wavs/LJ003-0100.npy +tests/data/ljspeech/wavs/LJ007-0107.wav|tests/data/ljspeech/wavs/LJ007-0107.npy +tests/data/ljspeech/wavs/LJ018-0013.wav|tests/data/ljspeech/wavs/LJ018-0013.npy +tests/data/ljspeech/wavs/LJ040-0210.wav|tests/data/ljspeech/wavs/LJ040-0210.npy +tests/data/ljspeech/wavs/LJ040-0216.wav|tests/data/ljspeech/wavs/LJ040-0216.npy +tests/data/ljspeech/wavs/LJ049-0098.wav|tests/data/ljspeech/wavs/LJ049-0098.npy +tests/data/ljspeech/wavs/LJ015-0088.wav|tests/data/ljspeech/wavs/LJ015-0088.npy +tests/data/ljspeech/wavs/LJ039-0076.wav|tests/data/ljspeech/wavs/LJ039-0076.npy +tests/data/ljspeech/wavs/LJ047-0158.wav|tests/data/ljspeech/wavs/LJ047-0158.npy +tests/data/ljspeech/wavs/LJ010-0097.wav|tests/data/ljspeech/wavs/LJ010-0097.npy +tests/data/ljspeech/wavs/LJ015-0125.wav|tests/data/ljspeech/wavs/LJ015-0125.npy +tests/data/ljspeech/wavs/LJ025-0168.wav|tests/data/ljspeech/wavs/LJ025-0168.npy +tests/data/ljspeech/wavs/LJ045-0020.wav|tests/data/ljspeech/wavs/LJ045-0020.npy +tests/data/ljspeech/wavs/LJ034-0164.wav|tests/data/ljspeech/wavs/LJ034-0164.npy +tests/data/ljspeech/wavs/LJ003-0111.wav|tests/data/ljspeech/wavs/LJ003-0111.npy +tests/data/ljspeech/wavs/LJ015-0153.wav|tests/data/ljspeech/wavs/LJ015-0153.npy +tests/data/ljspeech/wavs/LJ019-0159.wav|tests/data/ljspeech/wavs/LJ019-0159.npy +tests/data/ljspeech/wavs/LJ016-0089.wav|tests/data/ljspeech/wavs/LJ016-0089.npy +tests/data/ljspeech/wavs/LJ041-0096.wav|tests/data/ljspeech/wavs/LJ041-0096.npy +tests/data/ljspeech/wavs/LJ002-0291.wav|tests/data/ljspeech/wavs/LJ002-0291.npy +tests/data/ljspeech/wavs/LJ016-0074.wav|tests/data/ljspeech/wavs/LJ016-0074.npy +tests/data/ljspeech/wavs/LJ045-0004.wav|tests/data/ljspeech/wavs/LJ045-0004.npy +tests/data/ljspeech/wavs/LJ019-0385.wav|tests/data/ljspeech/wavs/LJ019-0385.npy +tests/data/ljspeech/wavs/LJ016-0225.wav|tests/data/ljspeech/wavs/LJ016-0225.npy +tests/data/ljspeech/wavs/LJ019-0177.wav|tests/data/ljspeech/wavs/LJ019-0177.npy +tests/data/ljspeech/wavs/LJ012-0012.wav|tests/data/ljspeech/wavs/LJ012-0012.npy +tests/data/ljspeech/wavs/LJ014-0008.wav|tests/data/ljspeech/wavs/LJ014-0008.npy +tests/data/ljspeech/wavs/LJ009-0292.wav|tests/data/ljspeech/wavs/LJ009-0292.npy +tests/data/ljspeech/wavs/LJ017-0016.wav|tests/data/ljspeech/wavs/LJ017-0016.npy +tests/data/ljspeech/wavs/LJ034-0128.wav|tests/data/ljspeech/wavs/LJ034-0128.npy +tests/data/ljspeech/wavs/LJ021-0080.wav|tests/data/ljspeech/wavs/LJ021-0080.npy +tests/data/ljspeech/wavs/LJ016-0118.wav|tests/data/ljspeech/wavs/LJ016-0118.npy +tests/data/ljspeech/wavs/LJ003-0015.wav|tests/data/ljspeech/wavs/LJ003-0015.npy +tests/data/ljspeech/wavs/LJ048-0246.wav|tests/data/ljspeech/wavs/LJ048-0246.npy +tests/data/ljspeech/wavs/LJ035-0004.wav|tests/data/ljspeech/wavs/LJ035-0004.npy +tests/data/ljspeech/wavs/LJ031-0189.wav|tests/data/ljspeech/wavs/LJ031-0189.npy +tests/data/ljspeech/wavs/LJ029-0124.wav|tests/data/ljspeech/wavs/LJ029-0124.npy +tests/data/ljspeech/wavs/LJ047-0080.wav|tests/data/ljspeech/wavs/LJ047-0080.npy +tests/data/ljspeech/wavs/LJ029-0083.wav|tests/data/ljspeech/wavs/LJ029-0083.npy +tests/data/ljspeech/wavs/LJ049-0122.wav|tests/data/ljspeech/wavs/LJ049-0122.npy +tests/data/ljspeech/wavs/LJ021-0196.wav|tests/data/ljspeech/wavs/LJ021-0196.npy +tests/data/ljspeech/wavs/LJ045-0112.wav|tests/data/ljspeech/wavs/LJ045-0112.npy +tests/data/ljspeech/wavs/LJ014-0173.wav|tests/data/ljspeech/wavs/LJ014-0173.npy +tests/data/ljspeech/wavs/LJ044-0151.wav|tests/data/ljspeech/wavs/LJ044-0151.npy +tests/data/ljspeech/wavs/LJ026-0141.wav|tests/data/ljspeech/wavs/LJ026-0141.npy +tests/data/ljspeech/wavs/LJ044-0007.wav|tests/data/ljspeech/wavs/LJ044-0007.npy +tests/data/ljspeech/wavs/LJ018-0045.wav|tests/data/ljspeech/wavs/LJ018-0045.npy +tests/data/ljspeech/wavs/LJ016-0132.wav|tests/data/ljspeech/wavs/LJ016-0132.npy +tests/data/ljspeech/wavs/LJ005-0012.wav|tests/data/ljspeech/wavs/LJ005-0012.npy +tests/data/ljspeech/wavs/LJ021-0194.wav|tests/data/ljspeech/wavs/LJ021-0194.npy +tests/data/ljspeech/wavs/LJ030-0045.wav|tests/data/ljspeech/wavs/LJ030-0045.npy +tests/data/ljspeech/wavs/LJ046-0143.wav|tests/data/ljspeech/wavs/LJ046-0143.npy +tests/data/ljspeech/wavs/LJ007-0080.wav|tests/data/ljspeech/wavs/LJ007-0080.npy +tests/data/ljspeech/wavs/LJ039-0124.wav|tests/data/ljspeech/wavs/LJ039-0124.npy +tests/data/ljspeech/wavs/LJ002-0257.wav|tests/data/ljspeech/wavs/LJ002-0257.npy +tests/data/ljspeech/wavs/LJ029-0209.wav|tests/data/ljspeech/wavs/LJ029-0209.npy +tests/data/ljspeech/wavs/LJ007-0059.wav|tests/data/ljspeech/wavs/LJ007-0059.npy +tests/data/ljspeech/wavs/LJ049-0170.wav|tests/data/ljspeech/wavs/LJ049-0170.npy +tests/data/ljspeech/wavs/LJ029-0145.wav|tests/data/ljspeech/wavs/LJ029-0145.npy +tests/data/ljspeech/wavs/LJ025-0118.wav|tests/data/ljspeech/wavs/LJ025-0118.npy +tests/data/ljspeech/wavs/LJ019-0186.wav|tests/data/ljspeech/wavs/LJ019-0186.npy +tests/data/ljspeech/wavs/LJ012-0083.wav|tests/data/ljspeech/wavs/LJ012-0083.npy +tests/data/ljspeech/wavs/LJ004-0193.wav|tests/data/ljspeech/wavs/LJ004-0193.npy +tests/data/ljspeech/wavs/LJ036-0107.wav|tests/data/ljspeech/wavs/LJ036-0107.npy +tests/data/ljspeech/wavs/LJ004-0231.wav|tests/data/ljspeech/wavs/LJ004-0231.npy +tests/data/ljspeech/wavs/LJ014-0123.wav|tests/data/ljspeech/wavs/LJ014-0123.npy +tests/data/ljspeech/wavs/LJ029-0211.wav|tests/data/ljspeech/wavs/LJ029-0211.npy +tests/data/ljspeech/wavs/LJ047-0079.wav|tests/data/ljspeech/wavs/LJ047-0079.npy +tests/data/ljspeech/wavs/LJ031-0013.wav|tests/data/ljspeech/wavs/LJ031-0013.npy +tests/data/ljspeech/wavs/LJ012-0018.wav|tests/data/ljspeech/wavs/LJ012-0018.npy +tests/data/ljspeech/wavs/LJ045-0026.wav|tests/data/ljspeech/wavs/LJ045-0026.npy +tests/data/ljspeech/wavs/LJ050-0250.wav|tests/data/ljspeech/wavs/LJ050-0250.npy +tests/data/ljspeech/wavs/LJ003-0005.wav|tests/data/ljspeech/wavs/LJ003-0005.npy +tests/data/ljspeech/wavs/LJ020-0003.wav|tests/data/ljspeech/wavs/LJ020-0003.npy +tests/data/ljspeech/wavs/LJ025-0159.wav|tests/data/ljspeech/wavs/LJ025-0159.npy +tests/data/ljspeech/wavs/LJ021-0081.wav|tests/data/ljspeech/wavs/LJ021-0081.npy +tests/data/ljspeech/wavs/LJ001-0021.wav|tests/data/ljspeech/wavs/LJ001-0021.npy +tests/data/ljspeech/wavs/LJ043-0030.wav|tests/data/ljspeech/wavs/LJ043-0030.npy +tests/data/ljspeech/wavs/LJ045-0202.wav|tests/data/ljspeech/wavs/LJ045-0202.npy +tests/data/ljspeech/wavs/LJ014-0045.wav|tests/data/ljspeech/wavs/LJ014-0045.npy +tests/data/ljspeech/wavs/LJ016-0076.wav|tests/data/ljspeech/wavs/LJ016-0076.npy +tests/data/ljspeech/wavs/LJ013-0256.wav|tests/data/ljspeech/wavs/LJ013-0256.npy +tests/data/ljspeech/wavs/LJ007-0030.wav|tests/data/ljspeech/wavs/LJ007-0030.npy +tests/data/ljspeech/wavs/LJ004-0130.wav|tests/data/ljspeech/wavs/LJ004-0130.npy +tests/data/ljspeech/wavs/LJ021-0082.wav|tests/data/ljspeech/wavs/LJ021-0082.npy +tests/data/ljspeech/wavs/LJ021-0160.wav|tests/data/ljspeech/wavs/LJ021-0160.npy +tests/data/ljspeech/wavs/LJ038-0022.wav|tests/data/ljspeech/wavs/LJ038-0022.npy +tests/data/ljspeech/wavs/LJ021-0155.wav|tests/data/ljspeech/wavs/LJ021-0155.npy +tests/data/ljspeech/wavs/LJ026-0080.wav|tests/data/ljspeech/wavs/LJ026-0080.npy +tests/data/ljspeech/wavs/LJ026-0025.wav|tests/data/ljspeech/wavs/LJ026-0025.npy +tests/data/ljspeech/wavs/LJ016-0117.wav|tests/data/ljspeech/wavs/LJ016-0117.npy +tests/data/ljspeech/wavs/LJ007-0032.wav|tests/data/ljspeech/wavs/LJ007-0032.npy +tests/data/ljspeech/wavs/LJ005-0013.wav|tests/data/ljspeech/wavs/LJ005-0013.npy +tests/data/ljspeech/wavs/LJ016-0243.wav|tests/data/ljspeech/wavs/LJ016-0243.npy +tests/data/ljspeech/wavs/LJ013-0244.wav|tests/data/ljspeech/wavs/LJ013-0244.npy +tests/data/ljspeech/wavs/LJ014-0084.wav|tests/data/ljspeech/wavs/LJ014-0084.npy +tests/data/ljspeech/wavs/LJ037-0169.wav|tests/data/ljspeech/wavs/LJ037-0169.npy +tests/data/ljspeech/wavs/LJ031-0088.wav|tests/data/ljspeech/wavs/LJ031-0088.npy +tests/data/ljspeech/wavs/LJ009-0286.wav|tests/data/ljspeech/wavs/LJ009-0286.npy +tests/data/ljspeech/wavs/LJ041-0135.wav|tests/data/ljspeech/wavs/LJ041-0135.npy +tests/data/ljspeech/wavs/LJ019-0229.wav|tests/data/ljspeech/wavs/LJ019-0229.npy +tests/data/ljspeech/wavs/LJ016-0306.wav|tests/data/ljspeech/wavs/LJ016-0306.npy +tests/data/ljspeech/wavs/LJ040-0093.wav|tests/data/ljspeech/wavs/LJ040-0093.npy +tests/data/ljspeech/wavs/LJ038-0100.wav|tests/data/ljspeech/wavs/LJ038-0100.npy +tests/data/ljspeech/wavs/LJ011-0262.wav|tests/data/ljspeech/wavs/LJ011-0262.npy +tests/data/ljspeech/wavs/LJ023-0081.wav|tests/data/ljspeech/wavs/LJ023-0081.npy +tests/data/ljspeech/wavs/LJ035-0190.wav|tests/data/ljspeech/wavs/LJ035-0190.npy +tests/data/ljspeech/wavs/LJ024-0087.wav|tests/data/ljspeech/wavs/LJ024-0087.npy +tests/data/ljspeech/wavs/LJ045-0043.wav|tests/data/ljspeech/wavs/LJ045-0043.npy +tests/data/ljspeech/wavs/LJ041-0200.wav|tests/data/ljspeech/wavs/LJ041-0200.npy +tests/data/ljspeech/wavs/LJ041-0087.wav|tests/data/ljspeech/wavs/LJ041-0087.npy +tests/data/ljspeech/wavs/LJ016-0303.wav|tests/data/ljspeech/wavs/LJ016-0303.npy +tests/data/ljspeech/wavs/LJ039-0163.wav|tests/data/ljspeech/wavs/LJ039-0163.npy +tests/data/ljspeech/wavs/LJ046-0149.wav|tests/data/ljspeech/wavs/LJ046-0149.npy +tests/data/ljspeech/wavs/LJ019-0011.wav|tests/data/ljspeech/wavs/LJ019-0011.npy +tests/data/ljspeech/wavs/LJ032-0105.wav|tests/data/ljspeech/wavs/LJ032-0105.npy +tests/data/ljspeech/wavs/LJ043-0087.wav|tests/data/ljspeech/wavs/LJ043-0087.npy +tests/data/ljspeech/wavs/LJ023-0068.wav|tests/data/ljspeech/wavs/LJ023-0068.npy +tests/data/ljspeech/wavs/LJ028-0195.wav|tests/data/ljspeech/wavs/LJ028-0195.npy +tests/data/ljspeech/wavs/LJ028-0304.wav|tests/data/ljspeech/wavs/LJ028-0304.npy +tests/data/ljspeech/wavs/LJ011-0291.wav|tests/data/ljspeech/wavs/LJ011-0291.npy +tests/data/ljspeech/wavs/LJ014-0257.wav|tests/data/ljspeech/wavs/LJ014-0257.npy +tests/data/ljspeech/wavs/LJ037-0262.wav|tests/data/ljspeech/wavs/LJ037-0262.npy +tests/data/ljspeech/wavs/LJ032-0084.wav|tests/data/ljspeech/wavs/LJ032-0084.npy +tests/data/ljspeech/wavs/LJ016-0302.wav|tests/data/ljspeech/wavs/LJ016-0302.npy +tests/data/ljspeech/wavs/LJ014-0318.wav|tests/data/ljspeech/wavs/LJ014-0318.npy +tests/data/ljspeech/wavs/LJ045-0121.wav|tests/data/ljspeech/wavs/LJ045-0121.npy +tests/data/ljspeech/wavs/LJ034-0007.wav|tests/data/ljspeech/wavs/LJ034-0007.npy +tests/data/ljspeech/wavs/LJ035-0127.wav|tests/data/ljspeech/wavs/LJ035-0127.npy +tests/data/ljspeech/wavs/LJ019-0293.wav|tests/data/ljspeech/wavs/LJ019-0293.npy +tests/data/ljspeech/wavs/LJ038-0054.wav|tests/data/ljspeech/wavs/LJ038-0054.npy +tests/data/ljspeech/wavs/LJ002-0158.wav|tests/data/ljspeech/wavs/LJ002-0158.npy +tests/data/ljspeech/wavs/LJ015-0181.wav|tests/data/ljspeech/wavs/LJ015-0181.npy +tests/data/ljspeech/wavs/LJ050-0235.wav|tests/data/ljspeech/wavs/LJ050-0235.npy +tests/data/ljspeech/wavs/LJ037-0053.wav|tests/data/ljspeech/wavs/LJ037-0053.npy +tests/data/ljspeech/wavs/LJ022-0157.wav|tests/data/ljspeech/wavs/LJ022-0157.npy +tests/data/ljspeech/wavs/LJ013-0111.wav|tests/data/ljspeech/wavs/LJ013-0111.npy +tests/data/ljspeech/wavs/LJ037-0260.wav|tests/data/ljspeech/wavs/LJ037-0260.npy +tests/data/ljspeech/wavs/LJ050-0231.wav|tests/data/ljspeech/wavs/LJ050-0231.npy +tests/data/ljspeech/wavs/LJ011-0232.wav|tests/data/ljspeech/wavs/LJ011-0232.npy +tests/data/ljspeech/wavs/LJ002-0103.wav|tests/data/ljspeech/wavs/LJ002-0103.npy +tests/data/ljspeech/wavs/LJ005-0171.wav|tests/data/ljspeech/wavs/LJ005-0171.npy +tests/data/ljspeech/wavs/LJ019-0234.wav|tests/data/ljspeech/wavs/LJ019-0234.npy +tests/data/ljspeech/wavs/LJ028-0353.wav|tests/data/ljspeech/wavs/LJ028-0353.npy +tests/data/ljspeech/wavs/LJ005-0289.wav|tests/data/ljspeech/wavs/LJ005-0289.npy +tests/data/ljspeech/wavs/LJ008-0177.wav|tests/data/ljspeech/wavs/LJ008-0177.npy +tests/data/ljspeech/wavs/LJ014-0303.wav|tests/data/ljspeech/wavs/LJ014-0303.npy +tests/data/ljspeech/wavs/LJ009-0193.wav|tests/data/ljspeech/wavs/LJ009-0193.npy +tests/data/ljspeech/wavs/LJ006-0096.wav|tests/data/ljspeech/wavs/LJ006-0096.npy +tests/data/ljspeech/wavs/LJ005-0054.wav|tests/data/ljspeech/wavs/LJ005-0054.npy +tests/data/ljspeech/wavs/LJ015-0185.wav|tests/data/ljspeech/wavs/LJ015-0185.npy +tests/data/ljspeech/wavs/LJ041-0098.wav|tests/data/ljspeech/wavs/LJ041-0098.npy +tests/data/ljspeech/wavs/LJ013-0019.wav|tests/data/ljspeech/wavs/LJ013-0019.npy +tests/data/ljspeech/wavs/LJ005-0042.wav|tests/data/ljspeech/wavs/LJ005-0042.npy +tests/data/ljspeech/wavs/LJ028-0463.wav|tests/data/ljspeech/wavs/LJ028-0463.npy +tests/data/ljspeech/wavs/LJ027-0118.wav|tests/data/ljspeech/wavs/LJ027-0118.npy +tests/data/ljspeech/wavs/LJ018-0331.wav|tests/data/ljspeech/wavs/LJ018-0331.npy +tests/data/ljspeech/wavs/LJ015-0263.wav|tests/data/ljspeech/wavs/LJ015-0263.npy +tests/data/ljspeech/wavs/LJ019-0104.wav|tests/data/ljspeech/wavs/LJ019-0104.npy +tests/data/ljspeech/wavs/LJ009-0112.wav|tests/data/ljspeech/wavs/LJ009-0112.npy +tests/data/ljspeech/wavs/LJ048-0233.wav|tests/data/ljspeech/wavs/LJ048-0233.npy +tests/data/ljspeech/wavs/LJ012-0242.wav|tests/data/ljspeech/wavs/LJ012-0242.npy +tests/data/ljspeech/wavs/LJ038-0238.wav|tests/data/ljspeech/wavs/LJ038-0238.npy +tests/data/ljspeech/wavs/LJ011-0177.wav|tests/data/ljspeech/wavs/LJ011-0177.npy +tests/data/ljspeech/wavs/LJ012-0008.wav|tests/data/ljspeech/wavs/LJ012-0008.npy +tests/data/ljspeech/wavs/LJ011-0283.wav|tests/data/ljspeech/wavs/LJ011-0283.npy +tests/data/ljspeech/wavs/LJ007-0210.wav|tests/data/ljspeech/wavs/LJ007-0210.npy +tests/data/ljspeech/wavs/LJ041-0148.wav|tests/data/ljspeech/wavs/LJ041-0148.npy +tests/data/ljspeech/wavs/LJ011-0230.wav|tests/data/ljspeech/wavs/LJ011-0230.npy +tests/data/ljspeech/wavs/LJ013-0094.wav|tests/data/ljspeech/wavs/LJ013-0094.npy +tests/data/ljspeech/wavs/LJ012-0058.wav|tests/data/ljspeech/wavs/LJ012-0058.npy +tests/data/ljspeech/wavs/LJ050-0185.wav|tests/data/ljspeech/wavs/LJ050-0185.npy +tests/data/ljspeech/wavs/LJ009-0208.wav|tests/data/ljspeech/wavs/LJ009-0208.npy +tests/data/ljspeech/wavs/LJ010-0160.wav|tests/data/ljspeech/wavs/LJ010-0160.npy +tests/data/ljspeech/wavs/LJ010-0127.wav|tests/data/ljspeech/wavs/LJ010-0127.npy +tests/data/ljspeech/wavs/LJ013-0264.wav|tests/data/ljspeech/wavs/LJ013-0264.npy +tests/data/ljspeech/wavs/LJ013-0080.wav|tests/data/ljspeech/wavs/LJ013-0080.npy +tests/data/ljspeech/wavs/LJ012-0157.wav|tests/data/ljspeech/wavs/LJ012-0157.npy +tests/data/ljspeech/wavs/LJ050-0128.wav|tests/data/ljspeech/wavs/LJ050-0128.npy +tests/data/ljspeech/wavs/LJ013-0054.wav|tests/data/ljspeech/wavs/LJ013-0054.npy +tests/data/ljspeech/wavs/LJ006-0248.wav|tests/data/ljspeech/wavs/LJ006-0248.npy +tests/data/ljspeech/wavs/LJ049-0179.wav|tests/data/ljspeech/wavs/LJ049-0179.npy +tests/data/ljspeech/wavs/LJ011-0048.wav|tests/data/ljspeech/wavs/LJ011-0048.npy +tests/data/ljspeech/wavs/LJ007-0167.wav|tests/data/ljspeech/wavs/LJ007-0167.npy +tests/data/ljspeech/wavs/LJ010-0225.wav|tests/data/ljspeech/wavs/LJ010-0225.npy +tests/data/ljspeech/wavs/LJ011-0159.wav|tests/data/ljspeech/wavs/LJ011-0159.npy +tests/data/ljspeech/wavs/LJ012-0276.wav|tests/data/ljspeech/wavs/LJ012-0276.npy +tests/data/ljspeech/wavs/LJ008-0066.wav|tests/data/ljspeech/wavs/LJ008-0066.npy +tests/data/ljspeech/wavs/LJ012-0156.wav|tests/data/ljspeech/wavs/LJ012-0156.npy +tests/data/ljspeech/wavs/LJ042-0180.wav|tests/data/ljspeech/wavs/LJ042-0180.npy +tests/data/ljspeech/wavs/LJ009-0190.wav|tests/data/ljspeech/wavs/LJ009-0190.npy +tests/data/ljspeech/wavs/LJ009-0064.wav|tests/data/ljspeech/wavs/LJ009-0064.npy +tests/data/ljspeech/wavs/LJ049-0182.wav|tests/data/ljspeech/wavs/LJ049-0182.npy +tests/data/ljspeech/wavs/LJ008-0054.wav|tests/data/ljspeech/wavs/LJ008-0054.npy +tests/data/ljspeech/wavs/LJ013-0116.wav|tests/data/ljspeech/wavs/LJ013-0116.npy +tests/data/ljspeech/wavs/LJ002-0014.wav|tests/data/ljspeech/wavs/LJ002-0014.npy +tests/data/ljspeech/wavs/LJ035-0192.wav|tests/data/ljspeech/wavs/LJ035-0192.npy +tests/data/ljspeech/wavs/LJ001-0038.wav|tests/data/ljspeech/wavs/LJ001-0038.npy +tests/data/ljspeech/wavs/LJ005-0146.wav|tests/data/ljspeech/wavs/LJ005-0146.npy +tests/data/ljspeech/wavs/LJ034-0088.wav|tests/data/ljspeech/wavs/LJ034-0088.npy +tests/data/ljspeech/wavs/LJ003-0054.wav|tests/data/ljspeech/wavs/LJ003-0054.npy +tests/data/ljspeech/wavs/LJ014-0196.wav|tests/data/ljspeech/wavs/LJ014-0196.npy +tests/data/ljspeech/wavs/LJ019-0199.wav|tests/data/ljspeech/wavs/LJ019-0199.npy +tests/data/ljspeech/wavs/LJ019-0138.wav|tests/data/ljspeech/wavs/LJ019-0138.npy +tests/data/ljspeech/wavs/LJ029-0111.wav|tests/data/ljspeech/wavs/LJ029-0111.npy +tests/data/ljspeech/wavs/LJ031-0041.wav|tests/data/ljspeech/wavs/LJ031-0041.npy +tests/data/ljspeech/wavs/LJ016-0223.wav|tests/data/ljspeech/wavs/LJ016-0223.npy +tests/data/ljspeech/wavs/LJ029-0050.wav|tests/data/ljspeech/wavs/LJ029-0050.npy +tests/data/ljspeech/wavs/LJ012-0056.wav|tests/data/ljspeech/wavs/LJ012-0056.npy +tests/data/ljspeech/wavs/LJ021-0021.wav|tests/data/ljspeech/wavs/LJ021-0021.npy +tests/data/ljspeech/wavs/LJ041-0169.wav|tests/data/ljspeech/wavs/LJ041-0169.npy +tests/data/ljspeech/wavs/LJ019-0029.wav|tests/data/ljspeech/wavs/LJ019-0029.npy +tests/data/ljspeech/wavs/LJ019-0285.wav|tests/data/ljspeech/wavs/LJ019-0285.npy +tests/data/ljspeech/wavs/LJ018-0370.wav|tests/data/ljspeech/wavs/LJ018-0370.npy +tests/data/ljspeech/wavs/LJ021-0093.wav|tests/data/ljspeech/wavs/LJ021-0093.npy +tests/data/ljspeech/wavs/LJ003-0146.wav|tests/data/ljspeech/wavs/LJ003-0146.npy +tests/data/ljspeech/wavs/LJ019-0386.wav|tests/data/ljspeech/wavs/LJ019-0386.npy +tests/data/ljspeech/wavs/LJ022-0105.wav|tests/data/ljspeech/wavs/LJ022-0105.npy +tests/data/ljspeech/wavs/LJ002-0006.wav|tests/data/ljspeech/wavs/LJ002-0006.npy +tests/data/ljspeech/wavs/LJ034-0189.wav|tests/data/ljspeech/wavs/LJ034-0189.npy +tests/data/ljspeech/wavs/LJ018-0342.wav|tests/data/ljspeech/wavs/LJ018-0342.npy +tests/data/ljspeech/wavs/LJ019-0127.wav|tests/data/ljspeech/wavs/LJ019-0127.npy +tests/data/ljspeech/wavs/LJ002-0017.wav|tests/data/ljspeech/wavs/LJ002-0017.npy +tests/data/ljspeech/wavs/LJ048-0137.wav|tests/data/ljspeech/wavs/LJ048-0137.npy +tests/data/ljspeech/wavs/LJ028-0453.wav|tests/data/ljspeech/wavs/LJ028-0453.npy +tests/data/ljspeech/wavs/LJ019-0260.wav|tests/data/ljspeech/wavs/LJ019-0260.npy +tests/data/ljspeech/wavs/LJ007-0046.wav|tests/data/ljspeech/wavs/LJ007-0046.npy +tests/data/ljspeech/wavs/LJ017-0201.wav|tests/data/ljspeech/wavs/LJ017-0201.npy +tests/data/ljspeech/wavs/LJ019-0335.wav|tests/data/ljspeech/wavs/LJ019-0335.npy +tests/data/ljspeech/wavs/LJ045-0007.wav|tests/data/ljspeech/wavs/LJ045-0007.npy +tests/data/ljspeech/wavs/LJ037-0162.wav|tests/data/ljspeech/wavs/LJ037-0162.npy +tests/data/ljspeech/wavs/LJ015-0023.wav|tests/data/ljspeech/wavs/LJ015-0023.npy +tests/data/ljspeech/wavs/LJ045-0074.wav|tests/data/ljspeech/wavs/LJ045-0074.npy +tests/data/ljspeech/wavs/LJ049-0053.wav|tests/data/ljspeech/wavs/LJ049-0053.npy +tests/data/ljspeech/wavs/LJ029-0165.wav|tests/data/ljspeech/wavs/LJ029-0165.npy +tests/data/ljspeech/wavs/LJ016-0156.wav|tests/data/ljspeech/wavs/LJ016-0156.npy +tests/data/ljspeech/wavs/LJ015-0248.wav|tests/data/ljspeech/wavs/LJ015-0248.npy +tests/data/ljspeech/wavs/LJ018-0211.wav|tests/data/ljspeech/wavs/LJ018-0211.npy +tests/data/ljspeech/wavs/LJ030-0042.wav|tests/data/ljspeech/wavs/LJ030-0042.npy +tests/data/ljspeech/wavs/LJ016-0147.wav|tests/data/ljspeech/wavs/LJ016-0147.npy +tests/data/ljspeech/wavs/LJ037-0035.wav|tests/data/ljspeech/wavs/LJ037-0035.npy +tests/data/ljspeech/wavs/LJ015-0195.wav|tests/data/ljspeech/wavs/LJ015-0195.npy +tests/data/ljspeech/wavs/LJ017-0267.wav|tests/data/ljspeech/wavs/LJ017-0267.npy +tests/data/ljspeech/wavs/LJ049-0035.wav|tests/data/ljspeech/wavs/LJ049-0035.npy +tests/data/ljspeech/wavs/LJ037-0136.wav|tests/data/ljspeech/wavs/LJ037-0136.npy +tests/data/ljspeech/wavs/LJ018-0034.wav|tests/data/ljspeech/wavs/LJ018-0034.npy +tests/data/ljspeech/wavs/LJ003-0218.wav|tests/data/ljspeech/wavs/LJ003-0218.npy +tests/data/ljspeech/wavs/LJ016-0210.wav|tests/data/ljspeech/wavs/LJ016-0210.npy +tests/data/ljspeech/wavs/LJ016-0427.wav|tests/data/ljspeech/wavs/LJ016-0427.npy +tests/data/ljspeech/wavs/LJ016-0340.wav|tests/data/ljspeech/wavs/LJ016-0340.npy +tests/data/ljspeech/wavs/LJ016-0121.wav|tests/data/ljspeech/wavs/LJ016-0121.npy +tests/data/ljspeech/wavs/LJ045-0077.wav|tests/data/ljspeech/wavs/LJ045-0077.npy +tests/data/ljspeech/wavs/LJ016-0053.wav|tests/data/ljspeech/wavs/LJ016-0053.npy +tests/data/ljspeech/wavs/LJ031-0143.wav|tests/data/ljspeech/wavs/LJ031-0143.npy +tests/data/ljspeech/wavs/LJ036-0054.wav|tests/data/ljspeech/wavs/LJ036-0054.npy +tests/data/ljspeech/wavs/LJ003-0210.wav|tests/data/ljspeech/wavs/LJ003-0210.npy +tests/data/ljspeech/wavs/LJ022-0122.wav|tests/data/ljspeech/wavs/LJ022-0122.npy +tests/data/ljspeech/wavs/LJ001-0106.wav|tests/data/ljspeech/wavs/LJ001-0106.npy +tests/data/ljspeech/wavs/LJ003-0244.wav|tests/data/ljspeech/wavs/LJ003-0244.npy +tests/data/ljspeech/wavs/LJ033-0119.wav|tests/data/ljspeech/wavs/LJ033-0119.npy +tests/data/ljspeech/wavs/LJ024-0053.wav|tests/data/ljspeech/wavs/LJ024-0053.npy +tests/data/ljspeech/wavs/LJ032-0033.wav|tests/data/ljspeech/wavs/LJ032-0033.npy +tests/data/ljspeech/wavs/LJ044-0195.wav|tests/data/ljspeech/wavs/LJ044-0195.npy +tests/data/ljspeech/wavs/LJ002-0201.wav|tests/data/ljspeech/wavs/LJ002-0201.npy +tests/data/ljspeech/wavs/LJ002-0188.wav|tests/data/ljspeech/wavs/LJ002-0188.npy +tests/data/ljspeech/wavs/LJ025-0054.wav|tests/data/ljspeech/wavs/LJ025-0054.npy +tests/data/ljspeech/wavs/LJ026-0163.wav|tests/data/ljspeech/wavs/LJ026-0163.npy +tests/data/ljspeech/wavs/LJ025-0126.wav|tests/data/ljspeech/wavs/LJ025-0126.npy +tests/data/ljspeech/wavs/LJ048-0231.wav|tests/data/ljspeech/wavs/LJ048-0231.npy +tests/data/ljspeech/wavs/LJ002-0304.wav|tests/data/ljspeech/wavs/LJ002-0304.npy +tests/data/ljspeech/wavs/LJ026-0146.wav|tests/data/ljspeech/wavs/LJ026-0146.npy +tests/data/ljspeech/wavs/LJ045-0237.wav|tests/data/ljspeech/wavs/LJ045-0237.npy +tests/data/ljspeech/wavs/LJ002-0256.wav|tests/data/ljspeech/wavs/LJ002-0256.npy +tests/data/ljspeech/wavs/LJ028-0210.wav|tests/data/ljspeech/wavs/LJ028-0210.npy +tests/data/ljspeech/wavs/LJ025-0069.wav|tests/data/ljspeech/wavs/LJ025-0069.npy +tests/data/ljspeech/wavs/LJ016-0021.wav|tests/data/ljspeech/wavs/LJ016-0021.npy +tests/data/ljspeech/wavs/LJ023-0109.wav|tests/data/ljspeech/wavs/LJ023-0109.npy +tests/data/ljspeech/wavs/LJ027-0015.wav|tests/data/ljspeech/wavs/LJ027-0015.npy +tests/data/ljspeech/wavs/LJ002-0144.wav|tests/data/ljspeech/wavs/LJ002-0144.npy +tests/data/ljspeech/wavs/LJ033-0207.wav|tests/data/ljspeech/wavs/LJ033-0207.npy +tests/data/ljspeech/wavs/LJ028-0083.wav|tests/data/ljspeech/wavs/LJ028-0083.npy +tests/data/ljspeech/wavs/LJ002-0121.wav|tests/data/ljspeech/wavs/LJ002-0121.npy +tests/data/ljspeech/wavs/LJ004-0118.wav|tests/data/ljspeech/wavs/LJ004-0118.npy +tests/data/ljspeech/wavs/LJ028-0391.wav|tests/data/ljspeech/wavs/LJ028-0391.npy +tests/data/ljspeech/wavs/LJ050-0254.wav|tests/data/ljspeech/wavs/LJ050-0254.npy +tests/data/ljspeech/wavs/LJ014-0067.wav|tests/data/ljspeech/wavs/LJ014-0067.npy +tests/data/ljspeech/wavs/LJ028-0248.wav|tests/data/ljspeech/wavs/LJ028-0248.npy +tests/data/ljspeech/wavs/LJ022-0193.wav|tests/data/ljspeech/wavs/LJ022-0193.npy +tests/data/ljspeech/wavs/LJ026-0027.wav|tests/data/ljspeech/wavs/LJ026-0027.npy +tests/data/ljspeech/wavs/LJ002-0099.wav|tests/data/ljspeech/wavs/LJ002-0099.npy +tests/data/ljspeech/wavs/LJ014-0034.wav|tests/data/ljspeech/wavs/LJ014-0034.npy +tests/data/ljspeech/wavs/LJ030-0006.wav|tests/data/ljspeech/wavs/LJ030-0006.npy +tests/data/ljspeech/wavs/LJ037-0085.wav|tests/data/ljspeech/wavs/LJ037-0085.npy +tests/data/ljspeech/wavs/LJ030-0062.wav|tests/data/ljspeech/wavs/LJ030-0062.npy +tests/data/ljspeech/wavs/LJ042-0063.wav|tests/data/ljspeech/wavs/LJ042-0063.npy +tests/data/ljspeech/wavs/LJ027-0173.wav|tests/data/ljspeech/wavs/LJ027-0173.npy +tests/data/ljspeech/wavs/LJ046-0144.wav|tests/data/ljspeech/wavs/LJ046-0144.npy +tests/data/ljspeech/wavs/LJ049-0038.wav|tests/data/ljspeech/wavs/LJ049-0038.npy +tests/data/ljspeech/wavs/LJ012-0048.wav|tests/data/ljspeech/wavs/LJ012-0048.npy +tests/data/ljspeech/wavs/LJ027-0156.wav|tests/data/ljspeech/wavs/LJ027-0156.npy +tests/data/ljspeech/wavs/LJ017-0082.wav|tests/data/ljspeech/wavs/LJ017-0082.npy +tests/data/ljspeech/wavs/LJ039-0139.wav|tests/data/ljspeech/wavs/LJ039-0139.npy +tests/data/ljspeech/wavs/LJ016-0073.wav|tests/data/ljspeech/wavs/LJ016-0073.npy +tests/data/ljspeech/wavs/LJ032-0077.wav|tests/data/ljspeech/wavs/LJ032-0077.npy +tests/data/ljspeech/wavs/LJ016-0189.wav|tests/data/ljspeech/wavs/LJ016-0189.npy +tests/data/ljspeech/wavs/LJ016-0261.wav|tests/data/ljspeech/wavs/LJ016-0261.npy +tests/data/ljspeech/wavs/LJ042-0108.wav|tests/data/ljspeech/wavs/LJ042-0108.npy +tests/data/ljspeech/wavs/LJ029-0203.wav|tests/data/ljspeech/wavs/LJ029-0203.npy +tests/data/ljspeech/wavs/LJ046-0077.wav|tests/data/ljspeech/wavs/LJ046-0077.npy +tests/data/ljspeech/wavs/LJ011-0153.wav|tests/data/ljspeech/wavs/LJ011-0153.npy +tests/data/ljspeech/wavs/LJ032-0252.wav|tests/data/ljspeech/wavs/LJ032-0252.npy +tests/data/ljspeech/wavs/LJ008-0133.wav|tests/data/ljspeech/wavs/LJ008-0133.npy +tests/data/ljspeech/wavs/LJ028-0149.wav|tests/data/ljspeech/wavs/LJ028-0149.npy +tests/data/ljspeech/wavs/LJ017-0241.wav|tests/data/ljspeech/wavs/LJ017-0241.npy +tests/data/ljspeech/wavs/LJ031-0073.wav|tests/data/ljspeech/wavs/LJ031-0073.npy +tests/data/ljspeech/wavs/LJ005-0097.wav|tests/data/ljspeech/wavs/LJ005-0097.npy +tests/data/ljspeech/wavs/LJ003-0229.wav|tests/data/ljspeech/wavs/LJ003-0229.npy +tests/data/ljspeech/wavs/LJ006-0094.wav|tests/data/ljspeech/wavs/LJ006-0094.npy +tests/data/ljspeech/wavs/LJ031-0110.wav|tests/data/ljspeech/wavs/LJ031-0110.npy +tests/data/ljspeech/wavs/LJ022-0183.wav|tests/data/ljspeech/wavs/LJ022-0183.npy +tests/data/ljspeech/wavs/LJ016-0405.wav|tests/data/ljspeech/wavs/LJ016-0405.npy +tests/data/ljspeech/wavs/LJ003-0308.wav|tests/data/ljspeech/wavs/LJ003-0308.npy +tests/data/ljspeech/wavs/LJ044-0095.wav|tests/data/ljspeech/wavs/LJ044-0095.npy +tests/data/ljspeech/wavs/LJ022-0083.wav|tests/data/ljspeech/wavs/LJ022-0083.npy +tests/data/ljspeech/wavs/LJ034-0038.wav|tests/data/ljspeech/wavs/LJ034-0038.npy +tests/data/ljspeech/wavs/LJ043-0138.wav|tests/data/ljspeech/wavs/LJ043-0138.npy +tests/data/ljspeech/wavs/LJ005-0243.wav|tests/data/ljspeech/wavs/LJ005-0243.npy +tests/data/ljspeech/wavs/LJ050-0179.wav|tests/data/ljspeech/wavs/LJ050-0179.npy +tests/data/ljspeech/wavs/LJ028-0321.wav|tests/data/ljspeech/wavs/LJ028-0321.npy +tests/data/ljspeech/wavs/LJ020-0016.wav|tests/data/ljspeech/wavs/LJ020-0016.npy +tests/data/ljspeech/wavs/LJ045-0065.wav|tests/data/ljspeech/wavs/LJ045-0065.npy +tests/data/ljspeech/wavs/LJ023-0033.wav|tests/data/ljspeech/wavs/LJ023-0033.npy +tests/data/ljspeech/wavs/LJ033-0163.wav|tests/data/ljspeech/wavs/LJ033-0163.npy +tests/data/ljspeech/wavs/LJ011-0210.wav|tests/data/ljspeech/wavs/LJ011-0210.npy +tests/data/ljspeech/wavs/LJ050-0263.wav|tests/data/ljspeech/wavs/LJ050-0263.npy +tests/data/ljspeech/wavs/LJ021-0099.wav|tests/data/ljspeech/wavs/LJ021-0099.npy +tests/data/ljspeech/wavs/LJ034-0096.wav|tests/data/ljspeech/wavs/LJ034-0096.npy +tests/data/ljspeech/wavs/LJ016-0218.wav|tests/data/ljspeech/wavs/LJ016-0218.npy +tests/data/ljspeech/wavs/LJ023-0036.wav|tests/data/ljspeech/wavs/LJ023-0036.npy +tests/data/ljspeech/wavs/LJ037-0176.wav|tests/data/ljspeech/wavs/LJ037-0176.npy +tests/data/ljspeech/wavs/LJ022-0138.wav|tests/data/ljspeech/wavs/LJ022-0138.npy +tests/data/ljspeech/wavs/LJ039-0223.wav|tests/data/ljspeech/wavs/LJ039-0223.npy +tests/data/ljspeech/wavs/LJ021-0055.wav|tests/data/ljspeech/wavs/LJ021-0055.npy +tests/data/ljspeech/wavs/LJ018-0239.wav|tests/data/ljspeech/wavs/LJ018-0239.npy +tests/data/ljspeech/wavs/LJ003-0076.wav|tests/data/ljspeech/wavs/LJ003-0076.npy +tests/data/ljspeech/wavs/LJ040-0228.wav|tests/data/ljspeech/wavs/LJ040-0228.npy +tests/data/ljspeech/wavs/LJ034-0066.wav|tests/data/ljspeech/wavs/LJ034-0066.npy +tests/data/ljspeech/wavs/LJ034-0037.wav|tests/data/ljspeech/wavs/LJ034-0037.npy +tests/data/ljspeech/wavs/LJ018-0074.wav|tests/data/ljspeech/wavs/LJ018-0074.npy +tests/data/ljspeech/wavs/LJ010-0099.wav|tests/data/ljspeech/wavs/LJ010-0099.npy +tests/data/ljspeech/wavs/LJ022-0052.wav|tests/data/ljspeech/wavs/LJ022-0052.npy +tests/data/ljspeech/wavs/LJ016-0374.wav|tests/data/ljspeech/wavs/LJ016-0374.npy +tests/data/ljspeech/wavs/LJ008-0040.wav|tests/data/ljspeech/wavs/LJ008-0040.npy +tests/data/ljspeech/wavs/LJ010-0061.wav|tests/data/ljspeech/wavs/LJ010-0061.npy +tests/data/ljspeech/wavs/LJ028-0198.wav|tests/data/ljspeech/wavs/LJ028-0198.npy +tests/data/ljspeech/wavs/LJ033-0004.wav|tests/data/ljspeech/wavs/LJ033-0004.npy +tests/data/ljspeech/wavs/LJ040-0112.wav|tests/data/ljspeech/wavs/LJ040-0112.npy +tests/data/ljspeech/wavs/LJ026-0088.wav|tests/data/ljspeech/wavs/LJ026-0088.npy +tests/data/ljspeech/wavs/LJ035-0069.wav|tests/data/ljspeech/wavs/LJ035-0069.npy +tests/data/ljspeech/wavs/LJ026-0053.wav|tests/data/ljspeech/wavs/LJ026-0053.npy +tests/data/ljspeech/wavs/LJ019-0236.wav|tests/data/ljspeech/wavs/LJ019-0236.npy +tests/data/ljspeech/wavs/LJ023-0012.wav|tests/data/ljspeech/wavs/LJ023-0012.npy +tests/data/ljspeech/wavs/LJ046-0196.wav|tests/data/ljspeech/wavs/LJ046-0196.npy +tests/data/ljspeech/wavs/LJ045-0114.wav|tests/data/ljspeech/wavs/LJ045-0114.npy +tests/data/ljspeech/wavs/LJ049-0146.wav|tests/data/ljspeech/wavs/LJ049-0146.npy +tests/data/ljspeech/wavs/LJ001-0166.wav|tests/data/ljspeech/wavs/LJ001-0166.npy +tests/data/ljspeech/wavs/LJ019-0332.wav|tests/data/ljspeech/wavs/LJ019-0332.npy +tests/data/ljspeech/wavs/LJ002-0210.wav|tests/data/ljspeech/wavs/LJ002-0210.npy +tests/data/ljspeech/wavs/LJ003-0102.wav|tests/data/ljspeech/wavs/LJ003-0102.npy +tests/data/ljspeech/wavs/LJ006-0060.wav|tests/data/ljspeech/wavs/LJ006-0060.npy +tests/data/ljspeech/wavs/LJ003-0013.wav|tests/data/ljspeech/wavs/LJ003-0013.npy +tests/data/ljspeech/wavs/LJ047-0202.wav|tests/data/ljspeech/wavs/LJ047-0202.npy +tests/data/ljspeech/wavs/LJ033-0019.wav|tests/data/ljspeech/wavs/LJ033-0019.npy +tests/data/ljspeech/wavs/LJ006-0046.wav|tests/data/ljspeech/wavs/LJ006-0046.npy +tests/data/ljspeech/wavs/LJ018-0244.wav|tests/data/ljspeech/wavs/LJ018-0244.npy +tests/data/ljspeech/wavs/LJ003-0103.wav|tests/data/ljspeech/wavs/LJ003-0103.npy +tests/data/ljspeech/wavs/LJ018-0123.wav|tests/data/ljspeech/wavs/LJ018-0123.npy +tests/data/ljspeech/wavs/LJ031-0151.wav|tests/data/ljspeech/wavs/LJ031-0151.npy +tests/data/ljspeech/wavs/LJ025-0017.wav|tests/data/ljspeech/wavs/LJ025-0017.npy +tests/data/ljspeech/wavs/LJ019-0094.wav|tests/data/ljspeech/wavs/LJ019-0094.npy +tests/data/ljspeech/wavs/LJ033-0116.wav|tests/data/ljspeech/wavs/LJ033-0116.npy +tests/data/ljspeech/wavs/LJ048-0014.wav|tests/data/ljspeech/wavs/LJ048-0014.npy +tests/data/ljspeech/wavs/LJ049-0029.wav|tests/data/ljspeech/wavs/LJ049-0029.npy +tests/data/ljspeech/wavs/LJ007-0129.wav|tests/data/ljspeech/wavs/LJ007-0129.npy +tests/data/ljspeech/wavs/LJ018-0155.wav|tests/data/ljspeech/wavs/LJ018-0155.npy +tests/data/ljspeech/wavs/LJ028-0129.wav|tests/data/ljspeech/wavs/LJ028-0129.npy +tests/data/ljspeech/wavs/LJ002-0217.wav|tests/data/ljspeech/wavs/LJ002-0217.npy +tests/data/ljspeech/wavs/LJ037-0247.wav|tests/data/ljspeech/wavs/LJ037-0247.npy +tests/data/ljspeech/wavs/LJ025-0106.wav|tests/data/ljspeech/wavs/LJ025-0106.npy +tests/data/ljspeech/wavs/LJ038-0152.wav|tests/data/ljspeech/wavs/LJ038-0152.npy +tests/data/ljspeech/wavs/LJ009-0061.wav|tests/data/ljspeech/wavs/LJ009-0061.npy +tests/data/ljspeech/wavs/LJ038-0276.wav|tests/data/ljspeech/wavs/LJ038-0276.npy +tests/data/ljspeech/wavs/LJ014-0086.wav|tests/data/ljspeech/wavs/LJ014-0086.npy +tests/data/ljspeech/wavs/LJ041-0100.wav|tests/data/ljspeech/wavs/LJ041-0100.npy +tests/data/ljspeech/wavs/LJ016-0404.wav|tests/data/ljspeech/wavs/LJ016-0404.npy +tests/data/ljspeech/wavs/LJ020-0023.wav|tests/data/ljspeech/wavs/LJ020-0023.npy +tests/data/ljspeech/wavs/LJ030-0123.wav|tests/data/ljspeech/wavs/LJ030-0123.npy +tests/data/ljspeech/wavs/LJ044-0201.wav|tests/data/ljspeech/wavs/LJ044-0201.npy +tests/data/ljspeech/wavs/LJ030-0155.wav|tests/data/ljspeech/wavs/LJ030-0155.npy +tests/data/ljspeech/wavs/LJ045-0063.wav|tests/data/ljspeech/wavs/LJ045-0063.npy +tests/data/ljspeech/wavs/LJ030-0215.wav|tests/data/ljspeech/wavs/LJ030-0215.npy +tests/data/ljspeech/wavs/LJ006-0221.wav|tests/data/ljspeech/wavs/LJ006-0221.npy +tests/data/ljspeech/wavs/LJ048-0114.wav|tests/data/ljspeech/wavs/LJ048-0114.npy +tests/data/ljspeech/wavs/LJ038-0020.wav|tests/data/ljspeech/wavs/LJ038-0020.npy +tests/data/ljspeech/wavs/LJ024-0094.wav|tests/data/ljspeech/wavs/LJ024-0094.npy +tests/data/ljspeech/wavs/LJ049-0127.wav|tests/data/ljspeech/wavs/LJ049-0127.npy +tests/data/ljspeech/wavs/LJ013-0144.wav|tests/data/ljspeech/wavs/LJ013-0144.npy +tests/data/ljspeech/wavs/LJ015-0276.wav|tests/data/ljspeech/wavs/LJ015-0276.npy +tests/data/ljspeech/wavs/LJ004-0007.wav|tests/data/ljspeech/wavs/LJ004-0007.npy +tests/data/ljspeech/wavs/LJ038-0064.wav|tests/data/ljspeech/wavs/LJ038-0064.npy +tests/data/ljspeech/wavs/LJ012-0188.wav|tests/data/ljspeech/wavs/LJ012-0188.npy +tests/data/ljspeech/wavs/LJ030-0124.wav|tests/data/ljspeech/wavs/LJ030-0124.npy +tests/data/ljspeech/wavs/LJ037-0004.wav|tests/data/ljspeech/wavs/LJ037-0004.npy +tests/data/ljspeech/wavs/LJ012-0293.wav|tests/data/ljspeech/wavs/LJ012-0293.npy +tests/data/ljspeech/wavs/LJ039-0108.wav|tests/data/ljspeech/wavs/LJ039-0108.npy +tests/data/ljspeech/wavs/LJ015-0028.wav|tests/data/ljspeech/wavs/LJ015-0028.npy +tests/data/ljspeech/wavs/LJ012-0135.wav|tests/data/ljspeech/wavs/LJ012-0135.npy +tests/data/ljspeech/wavs/LJ014-0021.wav|tests/data/ljspeech/wavs/LJ014-0021.npy +tests/data/ljspeech/wavs/LJ014-0185.wav|tests/data/ljspeech/wavs/LJ014-0185.npy +tests/data/ljspeech/wavs/LJ038-0126.wav|tests/data/ljspeech/wavs/LJ038-0126.npy +tests/data/ljspeech/wavs/LJ034-0114.wav|tests/data/ljspeech/wavs/LJ034-0114.npy +tests/data/ljspeech/wavs/LJ038-0303.wav|tests/data/ljspeech/wavs/LJ038-0303.npy +tests/data/ljspeech/wavs/LJ047-0218.wav|tests/data/ljspeech/wavs/LJ047-0218.npy +tests/data/ljspeech/wavs/LJ036-0126.wav|tests/data/ljspeech/wavs/LJ036-0126.npy +tests/data/ljspeech/wavs/LJ040-0032.wav|tests/data/ljspeech/wavs/LJ040-0032.npy +tests/data/ljspeech/wavs/LJ004-0055.wav|tests/data/ljspeech/wavs/LJ004-0055.npy +tests/data/ljspeech/wavs/LJ037-0021.wav|tests/data/ljspeech/wavs/LJ037-0021.npy +tests/data/ljspeech/wavs/LJ014-0187.wav|tests/data/ljspeech/wavs/LJ014-0187.npy +tests/data/ljspeech/wavs/LJ001-0068.wav|tests/data/ljspeech/wavs/LJ001-0068.npy +tests/data/ljspeech/wavs/LJ040-0024.wav|tests/data/ljspeech/wavs/LJ040-0024.npy +tests/data/ljspeech/wavs/LJ045-0083.wav|tests/data/ljspeech/wavs/LJ045-0083.npy +tests/data/ljspeech/wavs/LJ034-0049.wav|tests/data/ljspeech/wavs/LJ034-0049.npy +tests/data/ljspeech/wavs/LJ042-0213.wav|tests/data/ljspeech/wavs/LJ042-0213.npy +tests/data/ljspeech/wavs/LJ015-0162.wav|tests/data/ljspeech/wavs/LJ015-0162.npy +tests/data/ljspeech/wavs/LJ007-0158.wav|tests/data/ljspeech/wavs/LJ007-0158.npy +tests/data/ljspeech/wavs/LJ011-0105.wav|tests/data/ljspeech/wavs/LJ011-0105.npy +tests/data/ljspeech/wavs/LJ003-0068.wav|tests/data/ljspeech/wavs/LJ003-0068.npy +tests/data/ljspeech/wavs/LJ003-0057.wav|tests/data/ljspeech/wavs/LJ003-0057.npy +tests/data/ljspeech/wavs/LJ037-0031.wav|tests/data/ljspeech/wavs/LJ037-0031.npy +tests/data/ljspeech/wavs/LJ003-0016.wav|tests/data/ljspeech/wavs/LJ003-0016.npy +tests/data/ljspeech/wavs/LJ032-0067.wav|tests/data/ljspeech/wavs/LJ032-0067.npy +tests/data/ljspeech/wavs/LJ047-0211.wav|tests/data/ljspeech/wavs/LJ047-0211.npy +tests/data/ljspeech/wavs/LJ041-0025.wav|tests/data/ljspeech/wavs/LJ041-0025.npy +tests/data/ljspeech/wavs/LJ016-0343.wav|tests/data/ljspeech/wavs/LJ016-0343.npy +tests/data/ljspeech/wavs/LJ011-0235.wav|tests/data/ljspeech/wavs/LJ011-0235.npy +tests/data/ljspeech/wavs/LJ022-0111.wav|tests/data/ljspeech/wavs/LJ022-0111.npy +tests/data/ljspeech/wavs/LJ003-0269.wav|tests/data/ljspeech/wavs/LJ003-0269.npy +tests/data/ljspeech/wavs/LJ034-0091.wav|tests/data/ljspeech/wavs/LJ034-0091.npy +tests/data/ljspeech/wavs/LJ025-0055.wav|tests/data/ljspeech/wavs/LJ025-0055.npy +tests/data/ljspeech/wavs/LJ014-0278.wav|tests/data/ljspeech/wavs/LJ014-0278.npy +tests/data/ljspeech/wavs/LJ038-0282.wav|tests/data/ljspeech/wavs/LJ038-0282.npy +tests/data/ljspeech/wavs/LJ013-0083.wav|tests/data/ljspeech/wavs/LJ013-0083.npy +tests/data/ljspeech/wavs/LJ037-0261.wav|tests/data/ljspeech/wavs/LJ037-0261.npy +tests/data/ljspeech/wavs/LJ020-0041.wav|tests/data/ljspeech/wavs/LJ020-0041.npy +tests/data/ljspeech/wavs/LJ010-0200.wav|tests/data/ljspeech/wavs/LJ010-0200.npy +tests/data/ljspeech/wavs/LJ006-0269.wav|tests/data/ljspeech/wavs/LJ006-0269.npy +tests/data/ljspeech/wavs/LJ017-0154.wav|tests/data/ljspeech/wavs/LJ017-0154.npy +tests/data/ljspeech/wavs/LJ036-0164.wav|tests/data/ljspeech/wavs/LJ036-0164.npy +tests/data/ljspeech/wavs/LJ002-0140.wav|tests/data/ljspeech/wavs/LJ002-0140.npy +tests/data/ljspeech/wavs/LJ015-0264.wav|tests/data/ljspeech/wavs/LJ015-0264.npy +tests/data/ljspeech/wavs/LJ003-0313.wav|tests/data/ljspeech/wavs/LJ003-0313.npy +tests/data/ljspeech/wavs/LJ048-0039.wav|tests/data/ljspeech/wavs/LJ048-0039.npy +tests/data/ljspeech/wavs/LJ039-0008.wav|tests/data/ljspeech/wavs/LJ039-0008.npy +tests/data/ljspeech/wavs/LJ047-0232.wav|tests/data/ljspeech/wavs/LJ047-0232.npy +tests/data/ljspeech/wavs/LJ032-0244.wav|tests/data/ljspeech/wavs/LJ032-0244.npy +tests/data/ljspeech/wavs/LJ030-0098.wav|tests/data/ljspeech/wavs/LJ030-0098.npy +tests/data/ljspeech/wavs/LJ049-0159.wav|tests/data/ljspeech/wavs/LJ049-0159.npy +tests/data/ljspeech/wavs/LJ008-0031.wav|tests/data/ljspeech/wavs/LJ008-0031.npy +tests/data/ljspeech/wavs/LJ017-0091.wav|tests/data/ljspeech/wavs/LJ017-0091.npy +tests/data/ljspeech/wavs/LJ009-0181.wav|tests/data/ljspeech/wavs/LJ009-0181.npy +tests/data/ljspeech/wavs/LJ045-0191.wav|tests/data/ljspeech/wavs/LJ045-0191.npy +tests/data/ljspeech/wavs/LJ030-0139.wav|tests/data/ljspeech/wavs/LJ030-0139.npy +tests/data/ljspeech/wavs/LJ050-0071.wav|tests/data/ljspeech/wavs/LJ050-0071.npy +tests/data/ljspeech/wavs/LJ039-0238.wav|tests/data/ljspeech/wavs/LJ039-0238.npy +tests/data/ljspeech/wavs/LJ048-0265.wav|tests/data/ljspeech/wavs/LJ048-0265.npy +tests/data/ljspeech/wavs/LJ020-0078.wav|tests/data/ljspeech/wavs/LJ020-0078.npy +tests/data/ljspeech/wavs/LJ034-0035.wav|tests/data/ljspeech/wavs/LJ034-0035.npy +tests/data/ljspeech/wavs/LJ043-0019.wav|tests/data/ljspeech/wavs/LJ043-0019.npy +tests/data/ljspeech/wavs/LJ031-0029.wav|tests/data/ljspeech/wavs/LJ031-0029.npy +tests/data/ljspeech/wavs/LJ043-0171.wav|tests/data/ljspeech/wavs/LJ043-0171.npy +tests/data/ljspeech/wavs/LJ012-0123.wav|tests/data/ljspeech/wavs/LJ012-0123.npy +tests/data/ljspeech/wavs/LJ013-0121.wav|tests/data/ljspeech/wavs/LJ013-0121.npy +tests/data/ljspeech/wavs/LJ042-0015.wav|tests/data/ljspeech/wavs/LJ042-0015.npy +tests/data/ljspeech/wavs/LJ038-0219.wav|tests/data/ljspeech/wavs/LJ038-0219.npy +tests/data/ljspeech/wavs/LJ003-0277.wav|tests/data/ljspeech/wavs/LJ003-0277.npy +tests/data/ljspeech/wavs/LJ048-0031.wav|tests/data/ljspeech/wavs/LJ048-0031.npy +tests/data/ljspeech/wavs/LJ006-0203.wav|tests/data/ljspeech/wavs/LJ006-0203.npy +tests/data/ljspeech/wavs/LJ042-0047.wav|tests/data/ljspeech/wavs/LJ042-0047.npy +tests/data/ljspeech/wavs/LJ042-0061.wav|tests/data/ljspeech/wavs/LJ042-0061.npy +tests/data/ljspeech/wavs/LJ039-0143.wav|tests/data/ljspeech/wavs/LJ039-0143.npy +tests/data/ljspeech/wavs/LJ048-0209.wav|tests/data/ljspeech/wavs/LJ048-0209.npy +tests/data/ljspeech/wavs/LJ033-0094.wav|tests/data/ljspeech/wavs/LJ033-0094.npy +tests/data/ljspeech/wavs/LJ025-0157.wav|tests/data/ljspeech/wavs/LJ025-0157.npy +tests/data/ljspeech/wavs/LJ001-0116.wav|tests/data/ljspeech/wavs/LJ001-0116.npy +tests/data/ljspeech/wavs/LJ028-0179.wav|tests/data/ljspeech/wavs/LJ028-0179.npy +tests/data/ljspeech/wavs/LJ033-0073.wav|tests/data/ljspeech/wavs/LJ033-0073.npy +tests/data/ljspeech/wavs/LJ008-0126.wav|tests/data/ljspeech/wavs/LJ008-0126.npy +tests/data/ljspeech/wavs/LJ008-0174.wav|tests/data/ljspeech/wavs/LJ008-0174.npy +tests/data/ljspeech/wavs/LJ038-0060.wav|tests/data/ljspeech/wavs/LJ038-0060.npy +tests/data/ljspeech/wavs/LJ028-0011.wav|tests/data/ljspeech/wavs/LJ028-0011.npy +tests/data/ljspeech/wavs/LJ048-0085.wav|tests/data/ljspeech/wavs/LJ048-0085.npy +tests/data/ljspeech/wavs/LJ015-0287.wav|tests/data/ljspeech/wavs/LJ015-0287.npy +tests/data/ljspeech/wavs/LJ014-0010.wav|tests/data/ljspeech/wavs/LJ014-0010.npy +tests/data/ljspeech/wavs/LJ005-0009.wav|tests/data/ljspeech/wavs/LJ005-0009.npy +tests/data/ljspeech/wavs/LJ028-0120.wav|tests/data/ljspeech/wavs/LJ028-0120.npy +tests/data/ljspeech/wavs/LJ002-0211.wav|tests/data/ljspeech/wavs/LJ002-0211.npy +tests/data/ljspeech/wavs/LJ014-0026.wav|tests/data/ljspeech/wavs/LJ014-0026.npy +tests/data/ljspeech/wavs/LJ039-0119.wav|tests/data/ljspeech/wavs/LJ039-0119.npy +tests/data/ljspeech/wavs/LJ037-0159.wav|tests/data/ljspeech/wavs/LJ037-0159.npy +tests/data/ljspeech/wavs/LJ027-0018.wav|tests/data/ljspeech/wavs/LJ027-0018.npy +tests/data/ljspeech/wavs/LJ040-0102.wav|tests/data/ljspeech/wavs/LJ040-0102.npy +tests/data/ljspeech/wavs/LJ040-0124.wav|tests/data/ljspeech/wavs/LJ040-0124.npy +tests/data/ljspeech/wavs/LJ006-0300.wav|tests/data/ljspeech/wavs/LJ006-0300.npy +tests/data/ljspeech/wavs/LJ031-0188.wav|tests/data/ljspeech/wavs/LJ031-0188.npy +tests/data/ljspeech/wavs/LJ048-0143.wav|tests/data/ljspeech/wavs/LJ048-0143.npy +tests/data/ljspeech/wavs/LJ046-0178.wav|tests/data/ljspeech/wavs/LJ046-0178.npy +tests/data/ljspeech/wavs/LJ029-0112.wav|tests/data/ljspeech/wavs/LJ029-0112.npy +tests/data/ljspeech/wavs/LJ042-0161.wav|tests/data/ljspeech/wavs/LJ042-0161.npy +tests/data/ljspeech/wavs/LJ046-0083.wav|tests/data/ljspeech/wavs/LJ046-0083.npy +tests/data/ljspeech/wavs/LJ042-0230.wav|tests/data/ljspeech/wavs/LJ042-0230.npy +tests/data/ljspeech/wavs/LJ026-0089.wav|tests/data/ljspeech/wavs/LJ026-0089.npy +tests/data/ljspeech/wavs/LJ043-0075.wav|tests/data/ljspeech/wavs/LJ043-0075.npy +tests/data/ljspeech/wavs/LJ040-0165.wav|tests/data/ljspeech/wavs/LJ040-0165.npy +tests/data/ljspeech/wavs/LJ038-0117.wav|tests/data/ljspeech/wavs/LJ038-0117.npy +tests/data/ljspeech/wavs/LJ046-0174.wav|tests/data/ljspeech/wavs/LJ046-0174.npy +tests/data/ljspeech/wavs/LJ039-0033.wav|tests/data/ljspeech/wavs/LJ039-0033.npy +tests/data/ljspeech/wavs/LJ038-0191.wav|tests/data/ljspeech/wavs/LJ038-0191.npy +tests/data/ljspeech/wavs/LJ009-0291.wav|tests/data/ljspeech/wavs/LJ009-0291.npy +tests/data/ljspeech/wavs/LJ048-0142.wav|tests/data/ljspeech/wavs/LJ048-0142.npy +tests/data/ljspeech/wavs/LJ050-0156.wav|tests/data/ljspeech/wavs/LJ050-0156.npy +tests/data/ljspeech/wavs/LJ001-0158.wav|tests/data/ljspeech/wavs/LJ001-0158.npy +tests/data/ljspeech/wavs/LJ037-0087.wav|tests/data/ljspeech/wavs/LJ037-0087.npy +tests/data/ljspeech/wavs/LJ050-0100.wav|tests/data/ljspeech/wavs/LJ050-0100.npy +tests/data/ljspeech/wavs/LJ028-0254.wav|tests/data/ljspeech/wavs/LJ028-0254.npy +tests/data/ljspeech/wavs/LJ003-0117.wav|tests/data/ljspeech/wavs/LJ003-0117.npy +tests/data/ljspeech/wavs/LJ030-0164.wav|tests/data/ljspeech/wavs/LJ030-0164.npy +tests/data/ljspeech/wavs/LJ019-0151.wav|tests/data/ljspeech/wavs/LJ019-0151.npy +tests/data/ljspeech/wavs/LJ043-0060.wav|tests/data/ljspeech/wavs/LJ043-0060.npy +tests/data/ljspeech/wavs/LJ018-0214.wav|tests/data/ljspeech/wavs/LJ018-0214.npy +tests/data/ljspeech/wavs/LJ044-0221.wav|tests/data/ljspeech/wavs/LJ044-0221.npy +tests/data/ljspeech/wavs/LJ014-0306.wav|tests/data/ljspeech/wavs/LJ014-0306.npy +tests/data/ljspeech/wavs/LJ020-0098.wav|tests/data/ljspeech/wavs/LJ020-0098.npy +tests/data/ljspeech/wavs/LJ040-0166.wav|tests/data/ljspeech/wavs/LJ040-0166.npy +tests/data/ljspeech/wavs/LJ002-0192.wav|tests/data/ljspeech/wavs/LJ002-0192.npy +tests/data/ljspeech/wavs/LJ047-0053.wav|tests/data/ljspeech/wavs/LJ047-0053.npy +tests/data/ljspeech/wavs/LJ007-0082.wav|tests/data/ljspeech/wavs/LJ007-0082.npy +tests/data/ljspeech/wavs/LJ003-0053.wav|tests/data/ljspeech/wavs/LJ003-0053.npy +tests/data/ljspeech/wavs/LJ038-0262.wav|tests/data/ljspeech/wavs/LJ038-0262.npy +tests/data/ljspeech/wavs/LJ026-0082.wav|tests/data/ljspeech/wavs/LJ026-0082.npy +tests/data/ljspeech/wavs/LJ008-0182.wav|tests/data/ljspeech/wavs/LJ008-0182.npy +tests/data/ljspeech/wavs/LJ030-0243.wav|tests/data/ljspeech/wavs/LJ030-0243.npy +tests/data/ljspeech/wavs/LJ006-0077.wav|tests/data/ljspeech/wavs/LJ006-0077.npy +tests/data/ljspeech/wavs/LJ027-0074.wav|tests/data/ljspeech/wavs/LJ027-0074.npy +tests/data/ljspeech/wavs/LJ034-0156.wav|tests/data/ljspeech/wavs/LJ034-0156.npy +tests/data/ljspeech/wavs/LJ027-0053.wav|tests/data/ljspeech/wavs/LJ027-0053.npy +tests/data/ljspeech/wavs/LJ008-0087.wav|tests/data/ljspeech/wavs/LJ008-0087.npy +tests/data/ljspeech/wavs/LJ033-0066.wav|tests/data/ljspeech/wavs/LJ033-0066.npy +tests/data/ljspeech/wavs/LJ029-0130.wav|tests/data/ljspeech/wavs/LJ029-0130.npy +tests/data/ljspeech/wavs/LJ014-0020.wav|tests/data/ljspeech/wavs/LJ014-0020.npy +tests/data/ljspeech/wavs/LJ042-0022.wav|tests/data/ljspeech/wavs/LJ042-0022.npy +tests/data/ljspeech/wavs/LJ041-0157.wav|tests/data/ljspeech/wavs/LJ041-0157.npy +tests/data/ljspeech/wavs/LJ010-0026.wav|tests/data/ljspeech/wavs/LJ010-0026.npy +tests/data/ljspeech/wavs/LJ014-0029.wav|tests/data/ljspeech/wavs/LJ014-0029.npy +tests/data/ljspeech/wavs/LJ008-0239.wav|tests/data/ljspeech/wavs/LJ008-0239.npy +tests/data/ljspeech/wavs/LJ010-0076.wav|tests/data/ljspeech/wavs/LJ010-0076.npy +tests/data/ljspeech/wavs/LJ026-0032.wav|tests/data/ljspeech/wavs/LJ026-0032.npy +tests/data/ljspeech/wavs/LJ002-0135.wav|tests/data/ljspeech/wavs/LJ002-0135.npy +tests/data/ljspeech/wavs/LJ041-0012.wav|tests/data/ljspeech/wavs/LJ041-0012.npy +tests/data/ljspeech/wavs/LJ013-0207.wav|tests/data/ljspeech/wavs/LJ013-0207.npy +tests/data/ljspeech/wavs/LJ042-0048.wav|tests/data/ljspeech/wavs/LJ042-0048.npy +tests/data/ljspeech/wavs/LJ048-0227.wav|tests/data/ljspeech/wavs/LJ048-0227.npy +tests/data/ljspeech/wavs/LJ050-0032.wav|tests/data/ljspeech/wavs/LJ050-0032.npy +tests/data/ljspeech/wavs/LJ028-0218.wav|tests/data/ljspeech/wavs/LJ028-0218.npy +tests/data/ljspeech/wavs/LJ007-0194.wav|tests/data/ljspeech/wavs/LJ007-0194.npy +tests/data/ljspeech/wavs/LJ046-0181.wav|tests/data/ljspeech/wavs/LJ046-0181.npy +tests/data/ljspeech/wavs/LJ007-0214.wav|tests/data/ljspeech/wavs/LJ007-0214.npy +tests/data/ljspeech/wavs/LJ008-0154.wav|tests/data/ljspeech/wavs/LJ008-0154.npy +tests/data/ljspeech/wavs/LJ003-0128.wav|tests/data/ljspeech/wavs/LJ003-0128.npy +tests/data/ljspeech/wavs/LJ004-0185.wav|tests/data/ljspeech/wavs/LJ004-0185.npy +tests/data/ljspeech/wavs/LJ009-0169.wav|tests/data/ljspeech/wavs/LJ009-0169.npy +tests/data/ljspeech/wavs/LJ044-0192.wav|tests/data/ljspeech/wavs/LJ044-0192.npy +tests/data/ljspeech/wavs/LJ013-0188.wav|tests/data/ljspeech/wavs/LJ013-0188.npy +tests/data/ljspeech/wavs/LJ002-0313.wav|tests/data/ljspeech/wavs/LJ002-0313.npy +tests/data/ljspeech/wavs/LJ022-0092.wav|tests/data/ljspeech/wavs/LJ022-0092.npy +tests/data/ljspeech/wavs/LJ009-0089.wav|tests/data/ljspeech/wavs/LJ009-0089.npy +tests/data/ljspeech/wavs/LJ038-0295.wav|tests/data/ljspeech/wavs/LJ038-0295.npy +tests/data/ljspeech/wavs/LJ023-0018.wav|tests/data/ljspeech/wavs/LJ023-0018.npy +tests/data/ljspeech/wavs/LJ038-0143.wav|tests/data/ljspeech/wavs/LJ038-0143.npy +tests/data/ljspeech/wavs/LJ048-0004.wav|tests/data/ljspeech/wavs/LJ048-0004.npy +tests/data/ljspeech/wavs/LJ038-0182.wav|tests/data/ljspeech/wavs/LJ038-0182.npy +tests/data/ljspeech/wavs/LJ002-0276.wav|tests/data/ljspeech/wavs/LJ002-0276.npy +tests/data/ljspeech/wavs/LJ025-0024.wav|tests/data/ljspeech/wavs/LJ025-0024.npy +tests/data/ljspeech/wavs/LJ038-0169.wav|tests/data/ljspeech/wavs/LJ038-0169.npy +tests/data/ljspeech/wavs/LJ028-0354.wav|tests/data/ljspeech/wavs/LJ028-0354.npy +tests/data/ljspeech/wavs/LJ033-0106.wav|tests/data/ljspeech/wavs/LJ033-0106.npy +tests/data/ljspeech/wavs/LJ042-0125.wav|tests/data/ljspeech/wavs/LJ042-0125.npy +tests/data/ljspeech/wavs/LJ025-0135.wav|tests/data/ljspeech/wavs/LJ025-0135.npy +tests/data/ljspeech/wavs/LJ030-0190.wav|tests/data/ljspeech/wavs/LJ030-0190.npy +tests/data/ljspeech/wavs/LJ005-0291.wav|tests/data/ljspeech/wavs/LJ005-0291.npy +tests/data/ljspeech/wavs/LJ009-0158.wav|tests/data/ljspeech/wavs/LJ009-0158.npy +tests/data/ljspeech/wavs/LJ032-0110.wav|tests/data/ljspeech/wavs/LJ032-0110.npy +tests/data/ljspeech/wavs/LJ047-0071.wav|tests/data/ljspeech/wavs/LJ047-0071.npy +tests/data/ljspeech/wavs/LJ041-0093.wav|tests/data/ljspeech/wavs/LJ041-0093.npy +tests/data/ljspeech/wavs/LJ041-0095.wav|tests/data/ljspeech/wavs/LJ041-0095.npy +tests/data/ljspeech/wavs/LJ034-0027.wav|tests/data/ljspeech/wavs/LJ034-0027.npy +tests/data/ljspeech/wavs/LJ044-0197.wav|tests/data/ljspeech/wavs/LJ044-0197.npy +tests/data/ljspeech/wavs/LJ030-0186.wav|tests/data/ljspeech/wavs/LJ030-0186.npy +tests/data/ljspeech/wavs/LJ028-0148.wav|tests/data/ljspeech/wavs/LJ028-0148.npy +tests/data/ljspeech/wavs/LJ049-0118.wav|tests/data/ljspeech/wavs/LJ049-0118.npy +tests/data/ljspeech/wavs/LJ006-0033.wav|tests/data/ljspeech/wavs/LJ006-0033.npy +tests/data/ljspeech/wavs/LJ009-0111.wav|tests/data/ljspeech/wavs/LJ009-0111.npy +tests/data/ljspeech/wavs/LJ045-0012.wav|tests/data/ljspeech/wavs/LJ045-0012.npy +tests/data/ljspeech/wavs/LJ044-0130.wav|tests/data/ljspeech/wavs/LJ044-0130.npy +tests/data/ljspeech/wavs/LJ037-0104.wav|tests/data/ljspeech/wavs/LJ037-0104.npy +tests/data/ljspeech/wavs/LJ050-0217.wav|tests/data/ljspeech/wavs/LJ050-0217.npy +tests/data/ljspeech/wavs/LJ005-0138.wav|tests/data/ljspeech/wavs/LJ005-0138.npy +tests/data/ljspeech/wavs/LJ016-0249.wav|tests/data/ljspeech/wavs/LJ016-0249.npy +tests/data/ljspeech/wavs/LJ016-0052.wav|tests/data/ljspeech/wavs/LJ016-0052.npy +tests/data/ljspeech/wavs/LJ018-0127.wav|tests/data/ljspeech/wavs/LJ018-0127.npy +tests/data/ljspeech/wavs/LJ035-0170.wav|tests/data/ljspeech/wavs/LJ035-0170.npy +tests/data/ljspeech/wavs/LJ004-0014.wav|tests/data/ljspeech/wavs/LJ004-0014.npy +tests/data/ljspeech/wavs/LJ011-0281.wav|tests/data/ljspeech/wavs/LJ011-0281.npy +tests/data/ljspeech/wavs/LJ018-0120.wav|tests/data/ljspeech/wavs/LJ018-0120.npy +tests/data/ljspeech/wavs/LJ012-0003.wav|tests/data/ljspeech/wavs/LJ012-0003.npy +tests/data/ljspeech/wavs/LJ037-0256.wav|tests/data/ljspeech/wavs/LJ037-0256.npy +tests/data/ljspeech/wavs/LJ011-0026.wav|tests/data/ljspeech/wavs/LJ011-0026.npy +tests/data/ljspeech/wavs/LJ034-0095.wav|tests/data/ljspeech/wavs/LJ034-0095.npy +tests/data/ljspeech/wavs/LJ012-0265.wav|tests/data/ljspeech/wavs/LJ012-0265.npy +tests/data/ljspeech/wavs/LJ001-0109.wav|tests/data/ljspeech/wavs/LJ001-0109.npy +tests/data/ljspeech/wavs/LJ015-0054.wav|tests/data/ljspeech/wavs/LJ015-0054.npy +tests/data/ljspeech/wavs/LJ012-0229.wav|tests/data/ljspeech/wavs/LJ012-0229.npy +tests/data/ljspeech/wavs/LJ011-0270.wav|tests/data/ljspeech/wavs/LJ011-0270.npy +tests/data/ljspeech/wavs/LJ016-0380.wav|tests/data/ljspeech/wavs/LJ016-0380.npy +tests/data/ljspeech/wavs/LJ047-0189.wav|tests/data/ljspeech/wavs/LJ047-0189.npy +tests/data/ljspeech/wavs/LJ018-0265.wav|tests/data/ljspeech/wavs/LJ018-0265.npy +tests/data/ljspeech/wavs/LJ015-0218.wav|tests/data/ljspeech/wavs/LJ015-0218.npy +tests/data/ljspeech/wavs/LJ040-0011.wav|tests/data/ljspeech/wavs/LJ040-0011.npy +tests/data/ljspeech/wavs/LJ017-0189.wav|tests/data/ljspeech/wavs/LJ017-0189.npy +tests/data/ljspeech/wavs/LJ018-0288.wav|tests/data/ljspeech/wavs/LJ018-0288.npy +tests/data/ljspeech/wavs/LJ039-0209.wav|tests/data/ljspeech/wavs/LJ039-0209.npy +tests/data/ljspeech/wavs/LJ005-0082.wav|tests/data/ljspeech/wavs/LJ005-0082.npy +tests/data/ljspeech/wavs/LJ031-0107.wav|tests/data/ljspeech/wavs/LJ031-0107.npy +tests/data/ljspeech/wavs/LJ004-0166.wav|tests/data/ljspeech/wavs/LJ004-0166.npy +tests/data/ljspeech/wavs/LJ002-0055.wav|tests/data/ljspeech/wavs/LJ002-0055.npy +tests/data/ljspeech/wavs/LJ036-0094.wav|tests/data/ljspeech/wavs/LJ036-0094.npy +tests/data/ljspeech/wavs/LJ009-0161.wav|tests/data/ljspeech/wavs/LJ009-0161.npy +tests/data/ljspeech/wavs/LJ049-0067.wav|tests/data/ljspeech/wavs/LJ049-0067.npy +tests/data/ljspeech/wavs/LJ007-0199.wav|tests/data/ljspeech/wavs/LJ007-0199.npy +tests/data/ljspeech/wavs/LJ040-0050.wav|tests/data/ljspeech/wavs/LJ040-0050.npy +tests/data/ljspeech/wavs/LJ009-0150.wav|tests/data/ljspeech/wavs/LJ009-0150.npy +tests/data/ljspeech/wavs/LJ003-0156.wav|tests/data/ljspeech/wavs/LJ003-0156.npy +tests/data/ljspeech/wavs/LJ037-0155.wav|tests/data/ljspeech/wavs/LJ037-0155.npy +tests/data/ljspeech/wavs/LJ029-0199.wav|tests/data/ljspeech/wavs/LJ029-0199.npy +tests/data/ljspeech/wavs/LJ050-0121.wav|tests/data/ljspeech/wavs/LJ050-0121.npy +tests/data/ljspeech/wavs/LJ011-0087.wav|tests/data/ljspeech/wavs/LJ011-0087.npy +tests/data/ljspeech/wavs/LJ015-0145.wav|tests/data/ljspeech/wavs/LJ015-0145.npy +tests/data/ljspeech/wavs/LJ012-0052.wav|tests/data/ljspeech/wavs/LJ012-0052.npy +tests/data/ljspeech/wavs/LJ042-0212.wav|tests/data/ljspeech/wavs/LJ042-0212.npy +tests/data/ljspeech/wavs/LJ045-0103.wav|tests/data/ljspeech/wavs/LJ045-0103.npy +tests/data/ljspeech/wavs/LJ041-0070.wav|tests/data/ljspeech/wavs/LJ041-0070.npy +tests/data/ljspeech/wavs/LJ014-0201.wav|tests/data/ljspeech/wavs/LJ014-0201.npy +tests/data/ljspeech/wavs/LJ045-0068.wav|tests/data/ljspeech/wavs/LJ045-0068.npy +tests/data/ljspeech/wavs/LJ048-0236.wav|tests/data/ljspeech/wavs/LJ048-0236.npy +tests/data/ljspeech/wavs/LJ005-0264.wav|tests/data/ljspeech/wavs/LJ005-0264.npy +tests/data/ljspeech/wavs/LJ047-0011.wav|tests/data/ljspeech/wavs/LJ047-0011.npy +tests/data/ljspeech/wavs/LJ017-0202.wav|tests/data/ljspeech/wavs/LJ017-0202.npy +tests/data/ljspeech/wavs/LJ033-0125.wav|tests/data/ljspeech/wavs/LJ033-0125.npy +tests/data/ljspeech/wavs/LJ044-0047.wav|tests/data/ljspeech/wavs/LJ044-0047.npy +tests/data/ljspeech/wavs/LJ028-0330.wav|tests/data/ljspeech/wavs/LJ028-0330.npy +tests/data/ljspeech/wavs/LJ018-0031.wav|tests/data/ljspeech/wavs/LJ018-0031.npy +tests/data/ljspeech/wavs/LJ012-0142.wav|tests/data/ljspeech/wavs/LJ012-0142.npy +tests/data/ljspeech/wavs/LJ001-0070.wav|tests/data/ljspeech/wavs/LJ001-0070.npy +tests/data/ljspeech/wavs/LJ039-0070.wav|tests/data/ljspeech/wavs/LJ039-0070.npy +tests/data/ljspeech/wavs/LJ012-0233.wav|tests/data/ljspeech/wavs/LJ012-0233.npy +tests/data/ljspeech/wavs/LJ037-0110.wav|tests/data/ljspeech/wavs/LJ037-0110.npy +tests/data/ljspeech/wavs/LJ049-0158.wav|tests/data/ljspeech/wavs/LJ049-0158.npy +tests/data/ljspeech/wavs/LJ039-0079.wav|tests/data/ljspeech/wavs/LJ039-0079.npy +tests/data/ljspeech/wavs/LJ023-0045.wav|tests/data/ljspeech/wavs/LJ023-0045.npy +tests/data/ljspeech/wavs/LJ048-0234.wav|tests/data/ljspeech/wavs/LJ048-0234.npy +tests/data/ljspeech/wavs/LJ042-0085.wav|tests/data/ljspeech/wavs/LJ042-0085.npy +tests/data/ljspeech/wavs/LJ027-0089.wav|tests/data/ljspeech/wavs/LJ027-0089.npy +tests/data/ljspeech/wavs/LJ009-0079.wav|tests/data/ljspeech/wavs/LJ009-0079.npy +tests/data/ljspeech/wavs/LJ042-0142.wav|tests/data/ljspeech/wavs/LJ042-0142.npy +tests/data/ljspeech/wavs/LJ042-0058.wav|tests/data/ljspeech/wavs/LJ042-0058.npy +tests/data/ljspeech/wavs/LJ027-0065.wav|tests/data/ljspeech/wavs/LJ027-0065.npy +tests/data/ljspeech/wavs/LJ028-0012.wav|tests/data/ljspeech/wavs/LJ028-0012.npy +tests/data/ljspeech/wavs/LJ042-0021.wav|tests/data/ljspeech/wavs/LJ042-0021.npy +tests/data/ljspeech/wavs/LJ050-0212.wav|tests/data/ljspeech/wavs/LJ050-0212.npy +tests/data/ljspeech/wavs/LJ002-0104.wav|tests/data/ljspeech/wavs/LJ002-0104.npy +tests/data/ljspeech/wavs/LJ006-0085.wav|tests/data/ljspeech/wavs/LJ006-0085.npy +tests/data/ljspeech/wavs/LJ032-0164.wav|tests/data/ljspeech/wavs/LJ032-0164.npy +tests/data/ljspeech/wavs/LJ028-0070.wav|tests/data/ljspeech/wavs/LJ028-0070.npy +tests/data/ljspeech/wavs/LJ015-0126.wav|tests/data/ljspeech/wavs/LJ015-0126.npy +tests/data/ljspeech/wavs/LJ030-0090.wav|tests/data/ljspeech/wavs/LJ030-0090.npy +tests/data/ljspeech/wavs/LJ027-0108.wav|tests/data/ljspeech/wavs/LJ027-0108.npy +tests/data/ljspeech/wavs/LJ005-0295.wav|tests/data/ljspeech/wavs/LJ005-0295.npy +tests/data/ljspeech/wavs/LJ012-0082.wav|tests/data/ljspeech/wavs/LJ012-0082.npy +tests/data/ljspeech/wavs/LJ006-0070.wav|tests/data/ljspeech/wavs/LJ006-0070.npy +tests/data/ljspeech/wavs/LJ008-0128.wav|tests/data/ljspeech/wavs/LJ008-0128.npy +tests/data/ljspeech/wavs/LJ016-0029.wav|tests/data/ljspeech/wavs/LJ016-0029.npy +tests/data/ljspeech/wavs/LJ007-0022.wav|tests/data/ljspeech/wavs/LJ007-0022.npy +tests/data/ljspeech/wavs/LJ022-0126.wav|tests/data/ljspeech/wavs/LJ022-0126.npy +tests/data/ljspeech/wavs/LJ005-0298.wav|tests/data/ljspeech/wavs/LJ005-0298.npy +tests/data/ljspeech/wavs/LJ033-0212.wav|tests/data/ljspeech/wavs/LJ033-0212.npy +tests/data/ljspeech/wavs/LJ016-0101.wav|tests/data/ljspeech/wavs/LJ016-0101.npy +tests/data/ljspeech/wavs/LJ022-0023.wav|tests/data/ljspeech/wavs/LJ022-0023.npy +tests/data/ljspeech/wavs/LJ017-0032.wav|tests/data/ljspeech/wavs/LJ017-0032.npy +tests/data/ljspeech/wavs/LJ046-0107.wav|tests/data/ljspeech/wavs/LJ046-0107.npy +tests/data/ljspeech/wavs/LJ037-0077.wav|tests/data/ljspeech/wavs/LJ037-0077.npy +tests/data/ljspeech/wavs/LJ039-0172.wav|tests/data/ljspeech/wavs/LJ039-0172.npy +tests/data/ljspeech/wavs/LJ014-0219.wav|tests/data/ljspeech/wavs/LJ014-0219.npy +tests/data/ljspeech/wavs/LJ037-0039.wav|tests/data/ljspeech/wavs/LJ037-0039.npy +tests/data/ljspeech/wavs/LJ028-0114.wav|tests/data/ljspeech/wavs/LJ028-0114.npy +tests/data/ljspeech/wavs/LJ015-0309.wav|tests/data/ljspeech/wavs/LJ015-0309.npy +tests/data/ljspeech/wavs/LJ039-0167.wav|tests/data/ljspeech/wavs/LJ039-0167.npy +tests/data/ljspeech/wavs/LJ030-0236.wav|tests/data/ljspeech/wavs/LJ030-0236.npy +tests/data/ljspeech/wavs/LJ011-0239.wav|tests/data/ljspeech/wavs/LJ011-0239.npy +tests/data/ljspeech/wavs/LJ031-0066.wav|tests/data/ljspeech/wavs/LJ031-0066.npy +tests/data/ljspeech/wavs/LJ002-0072.wav|tests/data/ljspeech/wavs/LJ002-0072.npy +tests/data/ljspeech/wavs/LJ048-0023.wav|tests/data/ljspeech/wavs/LJ048-0023.npy +tests/data/ljspeech/wavs/LJ012-0013.wav|tests/data/ljspeech/wavs/LJ012-0013.npy +tests/data/ljspeech/wavs/LJ008-0265.wav|tests/data/ljspeech/wavs/LJ008-0265.npy +tests/data/ljspeech/wavs/LJ007-0014.wav|tests/data/ljspeech/wavs/LJ007-0014.npy +tests/data/ljspeech/wavs/LJ002-0190.wav|tests/data/ljspeech/wavs/LJ002-0190.npy +tests/data/ljspeech/wavs/LJ016-0294.wav|tests/data/ljspeech/wavs/LJ016-0294.npy +tests/data/ljspeech/wavs/LJ001-0089.wav|tests/data/ljspeech/wavs/LJ001-0089.npy +tests/data/ljspeech/wavs/LJ014-0073.wav|tests/data/ljspeech/wavs/LJ014-0073.npy +tests/data/ljspeech/wavs/LJ026-0026.wav|tests/data/ljspeech/wavs/LJ026-0026.npy +tests/data/ljspeech/wavs/LJ037-0040.wav|tests/data/ljspeech/wavs/LJ037-0040.npy +tests/data/ljspeech/wavs/LJ012-0010.wav|tests/data/ljspeech/wavs/LJ012-0010.npy +tests/data/ljspeech/wavs/LJ028-0238.wav|tests/data/ljspeech/wavs/LJ028-0238.npy +tests/data/ljspeech/wavs/LJ050-0192.wav|tests/data/ljspeech/wavs/LJ050-0192.npy +tests/data/ljspeech/wavs/LJ048-0022.wav|tests/data/ljspeech/wavs/LJ048-0022.npy +tests/data/ljspeech/wavs/LJ006-0138.wav|tests/data/ljspeech/wavs/LJ006-0138.npy +tests/data/ljspeech/wavs/LJ005-0199.wav|tests/data/ljspeech/wavs/LJ005-0199.npy +tests/data/ljspeech/wavs/LJ050-0218.wav|tests/data/ljspeech/wavs/LJ050-0218.npy +tests/data/ljspeech/wavs/LJ002-0064.wav|tests/data/ljspeech/wavs/LJ002-0064.npy +tests/data/ljspeech/wavs/LJ008-0249.wav|tests/data/ljspeech/wavs/LJ008-0249.npy +tests/data/ljspeech/wavs/LJ004-0184.wav|tests/data/ljspeech/wavs/LJ004-0184.npy +tests/data/ljspeech/wavs/LJ036-0004.wav|tests/data/ljspeech/wavs/LJ036-0004.npy +tests/data/ljspeech/wavs/LJ036-0044.wav|tests/data/ljspeech/wavs/LJ036-0044.npy +tests/data/ljspeech/wavs/LJ047-0144.wav|tests/data/ljspeech/wavs/LJ047-0144.npy +tests/data/ljspeech/wavs/LJ042-0197.wav|tests/data/ljspeech/wavs/LJ042-0197.npy +tests/data/ljspeech/wavs/LJ049-0225.wav|tests/data/ljspeech/wavs/LJ049-0225.npy +tests/data/ljspeech/wavs/LJ003-0159.wav|tests/data/ljspeech/wavs/LJ003-0159.npy +tests/data/ljspeech/wavs/LJ050-0119.wav|tests/data/ljspeech/wavs/LJ050-0119.npy +tests/data/ljspeech/wavs/LJ038-0108.wav|tests/data/ljspeech/wavs/LJ038-0108.npy +tests/data/ljspeech/wavs/LJ040-0139.wav|tests/data/ljspeech/wavs/LJ040-0139.npy +tests/data/ljspeech/wavs/LJ048-0157.wav|tests/data/ljspeech/wavs/LJ048-0157.npy +tests/data/ljspeech/wavs/LJ014-0275.wav|tests/data/ljspeech/wavs/LJ014-0275.npy +tests/data/ljspeech/wavs/LJ009-0018.wav|tests/data/ljspeech/wavs/LJ009-0018.npy +tests/data/ljspeech/wavs/LJ010-0137.wav|tests/data/ljspeech/wavs/LJ010-0137.npy +tests/data/ljspeech/wavs/LJ018-0099.wav|tests/data/ljspeech/wavs/LJ018-0099.npy +tests/data/ljspeech/wavs/LJ040-0119.wav|tests/data/ljspeech/wavs/LJ040-0119.npy +tests/data/ljspeech/wavs/LJ019-0322.wav|tests/data/ljspeech/wavs/LJ019-0322.npy +tests/data/ljspeech/wavs/LJ019-0065.wav|tests/data/ljspeech/wavs/LJ019-0065.npy +tests/data/ljspeech/wavs/LJ007-0113.wav|tests/data/ljspeech/wavs/LJ007-0113.npy +tests/data/ljspeech/wavs/LJ006-0044.wav|tests/data/ljspeech/wavs/LJ006-0044.npy +tests/data/ljspeech/wavs/LJ014-0307.wav|tests/data/ljspeech/wavs/LJ014-0307.npy +tests/data/ljspeech/wavs/LJ001-0150.wav|tests/data/ljspeech/wavs/LJ001-0150.npy +tests/data/ljspeech/wavs/LJ029-0047.wav|tests/data/ljspeech/wavs/LJ029-0047.npy +tests/data/ljspeech/wavs/LJ019-0397.wav|tests/data/ljspeech/wavs/LJ019-0397.npy +tests/data/ljspeech/wavs/LJ040-0054.wav|tests/data/ljspeech/wavs/LJ040-0054.npy +tests/data/ljspeech/wavs/LJ020-0088.wav|tests/data/ljspeech/wavs/LJ020-0088.npy +tests/data/ljspeech/wavs/LJ036-0056.wav|tests/data/ljspeech/wavs/LJ036-0056.npy +tests/data/ljspeech/wavs/LJ030-0178.wav|tests/data/ljspeech/wavs/LJ030-0178.npy +tests/data/ljspeech/wavs/LJ048-0264.wav|tests/data/ljspeech/wavs/LJ048-0264.npy +tests/data/ljspeech/wavs/LJ031-0182.wav|tests/data/ljspeech/wavs/LJ031-0182.npy +tests/data/ljspeech/wavs/LJ010-0249.wav|tests/data/ljspeech/wavs/LJ010-0249.npy +tests/data/ljspeech/wavs/LJ006-0183.wav|tests/data/ljspeech/wavs/LJ006-0183.npy +tests/data/ljspeech/wavs/LJ038-0237.wav|tests/data/ljspeech/wavs/LJ038-0237.npy +tests/data/ljspeech/wavs/LJ033-0042.wav|tests/data/ljspeech/wavs/LJ033-0042.npy +tests/data/ljspeech/wavs/LJ011-0035.wav|tests/data/ljspeech/wavs/LJ011-0035.npy +tests/data/ljspeech/wavs/LJ025-0098.wav|tests/data/ljspeech/wavs/LJ025-0098.npy +tests/data/ljspeech/wavs/LJ043-0151.wav|tests/data/ljspeech/wavs/LJ043-0151.npy +tests/data/ljspeech/wavs/LJ028-0311.wav|tests/data/ljspeech/wavs/LJ028-0311.npy +tests/data/ljspeech/wavs/LJ048-0224.wav|tests/data/ljspeech/wavs/LJ048-0224.npy +tests/data/ljspeech/wavs/LJ043-0006.wav|tests/data/ljspeech/wavs/LJ043-0006.npy +tests/data/ljspeech/wavs/LJ044-0181.wav|tests/data/ljspeech/wavs/LJ044-0181.npy +tests/data/ljspeech/wavs/LJ011-0034.wav|tests/data/ljspeech/wavs/LJ011-0034.npy +tests/data/ljspeech/wavs/LJ004-0122.wav|tests/data/ljspeech/wavs/LJ004-0122.npy +tests/data/ljspeech/wavs/LJ028-0314.wav|tests/data/ljspeech/wavs/LJ028-0314.npy +tests/data/ljspeech/wavs/LJ004-0018.wav|tests/data/ljspeech/wavs/LJ004-0018.npy +tests/data/ljspeech/wavs/LJ008-0297.wav|tests/data/ljspeech/wavs/LJ008-0297.npy +tests/data/ljspeech/wavs/LJ050-0127.wav|tests/data/ljspeech/wavs/LJ050-0127.npy +tests/data/ljspeech/wavs/LJ004-0076.wav|tests/data/ljspeech/wavs/LJ004-0076.npy +tests/data/ljspeech/wavs/LJ014-0239.wav|tests/data/ljspeech/wavs/LJ014-0239.npy +tests/data/ljspeech/wavs/LJ014-0292.wav|tests/data/ljspeech/wavs/LJ014-0292.npy +tests/data/ljspeech/wavs/LJ014-0046.wav|tests/data/ljspeech/wavs/LJ014-0046.npy +tests/data/ljspeech/wavs/LJ006-0197.wav|tests/data/ljspeech/wavs/LJ006-0197.npy +tests/data/ljspeech/wavs/LJ030-0134.wav|tests/data/ljspeech/wavs/LJ030-0134.npy +tests/data/ljspeech/wavs/LJ044-0157.wav|tests/data/ljspeech/wavs/LJ044-0157.npy +tests/data/ljspeech/wavs/LJ037-0062.wav|tests/data/ljspeech/wavs/LJ037-0062.npy +tests/data/ljspeech/wavs/LJ014-0094.wav|tests/data/ljspeech/wavs/LJ014-0094.npy +tests/data/ljspeech/wavs/LJ016-0319.wav|tests/data/ljspeech/wavs/LJ016-0319.npy +tests/data/ljspeech/wavs/LJ043-0098.wav|tests/data/ljspeech/wavs/LJ043-0098.npy +tests/data/ljspeech/wavs/LJ009-0116.wav|tests/data/ljspeech/wavs/LJ009-0116.npy +tests/data/ljspeech/wavs/LJ031-0084.wav|tests/data/ljspeech/wavs/LJ031-0084.npy +tests/data/ljspeech/wavs/LJ016-0338.wav|tests/data/ljspeech/wavs/LJ016-0338.npy +tests/data/ljspeech/wavs/LJ011-0218.wav|tests/data/ljspeech/wavs/LJ011-0218.npy +tests/data/ljspeech/wavs/LJ016-0263.wav|tests/data/ljspeech/wavs/LJ016-0263.npy +tests/data/ljspeech/wavs/LJ012-0196.wav|tests/data/ljspeech/wavs/LJ012-0196.npy +tests/data/ljspeech/wavs/LJ050-0145.wav|tests/data/ljspeech/wavs/LJ050-0145.npy +tests/data/ljspeech/wavs/LJ015-0051.wav|tests/data/ljspeech/wavs/LJ015-0051.npy +tests/data/ljspeech/wavs/LJ019-0133.wav|tests/data/ljspeech/wavs/LJ019-0133.npy +tests/data/ljspeech/wavs/LJ040-0145.wav|tests/data/ljspeech/wavs/LJ040-0145.npy +tests/data/ljspeech/wavs/LJ026-0098.wav|tests/data/ljspeech/wavs/LJ026-0098.npy +tests/data/ljspeech/wavs/LJ041-0183.wav|tests/data/ljspeech/wavs/LJ041-0183.npy +tests/data/ljspeech/wavs/LJ027-0092.wav|tests/data/ljspeech/wavs/LJ027-0092.npy +tests/data/ljspeech/wavs/LJ041-0174.wav|tests/data/ljspeech/wavs/LJ041-0174.npy +tests/data/ljspeech/wavs/LJ037-0091.wav|tests/data/ljspeech/wavs/LJ037-0091.npy +tests/data/ljspeech/wavs/LJ018-0326.wav|tests/data/ljspeech/wavs/LJ018-0326.npy +tests/data/ljspeech/wavs/LJ013-0041.wav|tests/data/ljspeech/wavs/LJ013-0041.npy +tests/data/ljspeech/wavs/LJ049-0176.wav|tests/data/ljspeech/wavs/LJ049-0176.npy +tests/data/ljspeech/wavs/LJ042-0038.wav|tests/data/ljspeech/wavs/LJ042-0038.npy +tests/data/ljspeech/wavs/LJ013-0260.wav|tests/data/ljspeech/wavs/LJ013-0260.npy +tests/data/ljspeech/wavs/LJ043-0002.wav|tests/data/ljspeech/wavs/LJ043-0002.npy +tests/data/ljspeech/wavs/LJ019-0112.wav|tests/data/ljspeech/wavs/LJ019-0112.npy +tests/data/ljspeech/wavs/LJ019-0031.wav|tests/data/ljspeech/wavs/LJ019-0031.npy +tests/data/ljspeech/wavs/LJ002-0086.wav|tests/data/ljspeech/wavs/LJ002-0086.npy +tests/data/ljspeech/wavs/LJ012-0060.wav|tests/data/ljspeech/wavs/LJ012-0060.npy +tests/data/ljspeech/wavs/LJ012-0146.wav|tests/data/ljspeech/wavs/LJ012-0146.npy +tests/data/ljspeech/wavs/LJ049-0134.wav|tests/data/ljspeech/wavs/LJ049-0134.npy +tests/data/ljspeech/wavs/LJ012-0104.wav|tests/data/ljspeech/wavs/LJ012-0104.npy +tests/data/ljspeech/wavs/LJ008-0064.wav|tests/data/ljspeech/wavs/LJ008-0064.npy +tests/data/ljspeech/wavs/LJ027-0160.wav|tests/data/ljspeech/wavs/LJ027-0160.npy +tests/data/ljspeech/wavs/LJ008-0072.wav|tests/data/ljspeech/wavs/LJ008-0072.npy +tests/data/ljspeech/wavs/LJ016-0240.wav|tests/data/ljspeech/wavs/LJ016-0240.npy +tests/data/ljspeech/wavs/LJ043-0163.wav|tests/data/ljspeech/wavs/LJ043-0163.npy +tests/data/ljspeech/wavs/LJ047-0197.wav|tests/data/ljspeech/wavs/LJ047-0197.npy +tests/data/ljspeech/wavs/LJ037-0145.wav|tests/data/ljspeech/wavs/LJ037-0145.npy +tests/data/ljspeech/wavs/LJ006-0128.wav|tests/data/ljspeech/wavs/LJ006-0128.npy +tests/data/ljspeech/wavs/LJ003-0312.wav|tests/data/ljspeech/wavs/LJ003-0312.npy +tests/data/ljspeech/wavs/LJ032-0162.wav|tests/data/ljspeech/wavs/LJ032-0162.npy +tests/data/ljspeech/wavs/LJ014-0334.wav|tests/data/ljspeech/wavs/LJ014-0334.npy +tests/data/ljspeech/wavs/LJ034-0106.wav|tests/data/ljspeech/wavs/LJ034-0106.npy +tests/data/ljspeech/wavs/LJ038-0158.wav|tests/data/ljspeech/wavs/LJ038-0158.npy +tests/data/ljspeech/wavs/LJ048-0131.wav|tests/data/ljspeech/wavs/LJ048-0131.npy +tests/data/ljspeech/wavs/LJ045-0214.wav|tests/data/ljspeech/wavs/LJ045-0214.npy +tests/data/ljspeech/wavs/LJ045-0095.wav|tests/data/ljspeech/wavs/LJ045-0095.npy +tests/data/ljspeech/wavs/LJ044-0223.wav|tests/data/ljspeech/wavs/LJ044-0223.npy +tests/data/ljspeech/wavs/LJ046-0141.wav|tests/data/ljspeech/wavs/LJ046-0141.npy +tests/data/ljspeech/wavs/LJ031-0103.wav|tests/data/ljspeech/wavs/LJ031-0103.npy +tests/data/ljspeech/wavs/LJ001-0023.wav|tests/data/ljspeech/wavs/LJ001-0023.npy +tests/data/ljspeech/wavs/LJ048-0102.wav|tests/data/ljspeech/wavs/LJ048-0102.npy +tests/data/ljspeech/wavs/LJ004-0244.wav|tests/data/ljspeech/wavs/LJ004-0244.npy +tests/data/ljspeech/wavs/LJ004-0209.wav|tests/data/ljspeech/wavs/LJ004-0209.npy +tests/data/ljspeech/wavs/LJ019-0377.wav|tests/data/ljspeech/wavs/LJ019-0377.npy +tests/data/ljspeech/wavs/LJ042-0002.wav|tests/data/ljspeech/wavs/LJ042-0002.npy +tests/data/ljspeech/wavs/LJ038-0095.wav|tests/data/ljspeech/wavs/LJ038-0095.npy +tests/data/ljspeech/wavs/LJ040-0134.wav|tests/data/ljspeech/wavs/LJ040-0134.npy +tests/data/ljspeech/wavs/LJ018-0028.wav|tests/data/ljspeech/wavs/LJ018-0028.npy +tests/data/ljspeech/wavs/LJ028-0404.wav|tests/data/ljspeech/wavs/LJ028-0404.npy +tests/data/ljspeech/wavs/LJ006-0212.wav|tests/data/ljspeech/wavs/LJ006-0212.npy +tests/data/ljspeech/wavs/LJ030-0163.wav|tests/data/ljspeech/wavs/LJ030-0163.npy +tests/data/ljspeech/wavs/LJ017-0031.wav|tests/data/ljspeech/wavs/LJ017-0031.npy +tests/data/ljspeech/wavs/LJ049-0103.wav|tests/data/ljspeech/wavs/LJ049-0103.npy +tests/data/ljspeech/wavs/LJ031-0049.wav|tests/data/ljspeech/wavs/LJ031-0049.npy +tests/data/ljspeech/wavs/LJ032-0258.wav|tests/data/ljspeech/wavs/LJ032-0258.npy +tests/data/ljspeech/wavs/LJ003-0215.wav|tests/data/ljspeech/wavs/LJ003-0215.npy +tests/data/ljspeech/wavs/LJ018-0017.wav|tests/data/ljspeech/wavs/LJ018-0017.npy +tests/data/ljspeech/wavs/LJ009-0241.wav|tests/data/ljspeech/wavs/LJ009-0241.npy +tests/data/ljspeech/wavs/LJ045-0106.wav|tests/data/ljspeech/wavs/LJ045-0106.npy +tests/data/ljspeech/wavs/LJ027-0041.wav|tests/data/ljspeech/wavs/LJ027-0041.npy +tests/data/ljspeech/wavs/LJ027-0083.wav|tests/data/ljspeech/wavs/LJ027-0083.npy +tests/data/ljspeech/wavs/LJ050-0198.wav|tests/data/ljspeech/wavs/LJ050-0198.npy +tests/data/ljspeech/wavs/LJ004-0087.wav|tests/data/ljspeech/wavs/LJ004-0087.npy +tests/data/ljspeech/wavs/LJ029-0157.wav|tests/data/ljspeech/wavs/LJ029-0157.npy +tests/data/ljspeech/wavs/LJ002-0107.wav|tests/data/ljspeech/wavs/LJ002-0107.npy +tests/data/ljspeech/wavs/LJ040-0205.wav|tests/data/ljspeech/wavs/LJ040-0205.npy +tests/data/ljspeech/wavs/LJ027-0072.wav|tests/data/ljspeech/wavs/LJ027-0072.npy +tests/data/ljspeech/wavs/LJ019-0361.wav|tests/data/ljspeech/wavs/LJ019-0361.npy +tests/data/ljspeech/wavs/LJ040-0126.wav|tests/data/ljspeech/wavs/LJ040-0126.npy +tests/data/ljspeech/wavs/LJ041-0017.wav|tests/data/ljspeech/wavs/LJ041-0017.npy +tests/data/ljspeech/wavs/LJ050-0120.wav|tests/data/ljspeech/wavs/LJ050-0120.npy +tests/data/ljspeech/wavs/LJ034-0198.wav|tests/data/ljspeech/wavs/LJ034-0198.npy +tests/data/ljspeech/wavs/LJ013-0092.wav|tests/data/ljspeech/wavs/LJ013-0092.npy +tests/data/ljspeech/wavs/LJ045-0203.wav|tests/data/ljspeech/wavs/LJ045-0203.npy +tests/data/ljspeech/wavs/LJ040-0010.wav|tests/data/ljspeech/wavs/LJ040-0010.npy +tests/data/ljspeech/wavs/LJ006-0019.wav|tests/data/ljspeech/wavs/LJ006-0019.npy +tests/data/ljspeech/wavs/LJ028-0466.wav|tests/data/ljspeech/wavs/LJ028-0466.npy +tests/data/ljspeech/wavs/LJ004-0227.wav|tests/data/ljspeech/wavs/LJ004-0227.npy +tests/data/ljspeech/wavs/LJ002-0085.wav|tests/data/ljspeech/wavs/LJ002-0085.npy +tests/data/ljspeech/wavs/LJ028-0426.wav|tests/data/ljspeech/wavs/LJ028-0426.npy +tests/data/ljspeech/wavs/LJ018-0260.wav|tests/data/ljspeech/wavs/LJ018-0260.npy +tests/data/ljspeech/wavs/LJ006-0204.wav|tests/data/ljspeech/wavs/LJ006-0204.npy +tests/data/ljspeech/wavs/LJ011-0170.wav|tests/data/ljspeech/wavs/LJ011-0170.npy +tests/data/ljspeech/wavs/LJ021-0138.wav|tests/data/ljspeech/wavs/LJ021-0138.npy +tests/data/ljspeech/wavs/LJ043-0172.wav|tests/data/ljspeech/wavs/LJ043-0172.npy +tests/data/ljspeech/wavs/LJ044-0136.wav|tests/data/ljspeech/wavs/LJ044-0136.npy +tests/data/ljspeech/wavs/LJ001-0100.wav|tests/data/ljspeech/wavs/LJ001-0100.npy +tests/data/ljspeech/wavs/LJ037-0173.wav|tests/data/ljspeech/wavs/LJ037-0173.npy +tests/data/ljspeech/wavs/LJ032-0007.wav|tests/data/ljspeech/wavs/LJ032-0007.npy +tests/data/ljspeech/wavs/LJ013-0119.wav|tests/data/ljspeech/wavs/LJ013-0119.npy +tests/data/ljspeech/wavs/LJ008-0238.wav|tests/data/ljspeech/wavs/LJ008-0238.npy +tests/data/ljspeech/wavs/LJ017-0206.wav|tests/data/ljspeech/wavs/LJ017-0206.npy +tests/data/ljspeech/wavs/LJ013-0117.wav|tests/data/ljspeech/wavs/LJ013-0117.npy +tests/data/ljspeech/wavs/LJ009-0237.wav|tests/data/ljspeech/wavs/LJ009-0237.npy +tests/data/ljspeech/wavs/LJ038-0012.wav|tests/data/ljspeech/wavs/LJ038-0012.npy +tests/data/ljspeech/wavs/LJ030-0138.wav|tests/data/ljspeech/wavs/LJ030-0138.npy +tests/data/ljspeech/wavs/LJ042-0150.wav|tests/data/ljspeech/wavs/LJ042-0150.npy +tests/data/ljspeech/wavs/LJ032-0141.wav|tests/data/ljspeech/wavs/LJ032-0141.npy +tests/data/ljspeech/wavs/LJ038-0215.wav|tests/data/ljspeech/wavs/LJ038-0215.npy +tests/data/ljspeech/wavs/LJ012-0127.wav|tests/data/ljspeech/wavs/LJ012-0127.npy +tests/data/ljspeech/wavs/LJ038-0244.wav|tests/data/ljspeech/wavs/LJ038-0244.npy +tests/data/ljspeech/wavs/LJ042-0084.wav|tests/data/ljspeech/wavs/LJ042-0084.npy +tests/data/ljspeech/wavs/LJ018-0039.wav|tests/data/ljspeech/wavs/LJ018-0039.npy +tests/data/ljspeech/wavs/LJ027-0149.wav|tests/data/ljspeech/wavs/LJ027-0149.npy +tests/data/ljspeech/wavs/LJ015-0269.wav|tests/data/ljspeech/wavs/LJ015-0269.npy +tests/data/ljspeech/wavs/LJ018-0338.wav|tests/data/ljspeech/wavs/LJ018-0338.npy +tests/data/ljspeech/wavs/LJ007-0155.wav|tests/data/ljspeech/wavs/LJ007-0155.npy +tests/data/ljspeech/wavs/LJ049-0086.wav|tests/data/ljspeech/wavs/LJ049-0086.npy +tests/data/ljspeech/wavs/LJ031-0163.wav|tests/data/ljspeech/wavs/LJ031-0163.npy +tests/data/ljspeech/wavs/LJ013-0096.wav|tests/data/ljspeech/wavs/LJ013-0096.npy +tests/data/ljspeech/wavs/LJ019-0072.wav|tests/data/ljspeech/wavs/LJ019-0072.npy +tests/data/ljspeech/wavs/LJ010-0059.wav|tests/data/ljspeech/wavs/LJ010-0059.npy +tests/data/ljspeech/wavs/LJ018-0089.wav|tests/data/ljspeech/wavs/LJ018-0089.npy +tests/data/ljspeech/wavs/LJ018-0333.wav|tests/data/ljspeech/wavs/LJ018-0333.npy +tests/data/ljspeech/wavs/LJ018-0372.wav|tests/data/ljspeech/wavs/LJ018-0372.npy +tests/data/ljspeech/wavs/LJ019-0156.wav|tests/data/ljspeech/wavs/LJ019-0156.npy +tests/data/ljspeech/wavs/LJ019-0114.wav|tests/data/ljspeech/wavs/LJ019-0114.npy +tests/data/ljspeech/wavs/LJ009-0232.wav|tests/data/ljspeech/wavs/LJ009-0232.npy +tests/data/ljspeech/wavs/LJ003-0315.wav|tests/data/ljspeech/wavs/LJ003-0315.npy +tests/data/ljspeech/wavs/LJ008-0282.wav|tests/data/ljspeech/wavs/LJ008-0282.npy +tests/data/ljspeech/wavs/LJ008-0124.wav|tests/data/ljspeech/wavs/LJ008-0124.npy +tests/data/ljspeech/wavs/LJ015-0080.wav|tests/data/ljspeech/wavs/LJ015-0080.npy +tests/data/ljspeech/wavs/LJ040-0113.wav|tests/data/ljspeech/wavs/LJ040-0113.npy +tests/data/ljspeech/wavs/LJ004-0171.wav|tests/data/ljspeech/wavs/LJ004-0171.npy +tests/data/ljspeech/wavs/LJ009-0230.wav|tests/data/ljspeech/wavs/LJ009-0230.npy +tests/data/ljspeech/wavs/LJ038-0306.wav|tests/data/ljspeech/wavs/LJ038-0306.npy +tests/data/ljspeech/wavs/LJ016-0226.wav|tests/data/ljspeech/wavs/LJ016-0226.npy +tests/data/ljspeech/wavs/LJ009-0179.wav|tests/data/ljspeech/wavs/LJ009-0179.npy +tests/data/ljspeech/wavs/LJ002-0268.wav|tests/data/ljspeech/wavs/LJ002-0268.npy +tests/data/ljspeech/wavs/LJ005-0225.wav|tests/data/ljspeech/wavs/LJ005-0225.npy +tests/data/ljspeech/wavs/LJ009-0176.wav|tests/data/ljspeech/wavs/LJ009-0176.npy +tests/data/ljspeech/wavs/LJ025-0166.wav|tests/data/ljspeech/wavs/LJ025-0166.npy +tests/data/ljspeech/wavs/LJ031-0018.wav|tests/data/ljspeech/wavs/LJ031-0018.npy +tests/data/ljspeech/wavs/LJ019-0121.wav|tests/data/ljspeech/wavs/LJ019-0121.npy +tests/data/ljspeech/wavs/LJ031-0017.wav|tests/data/ljspeech/wavs/LJ031-0017.npy +tests/data/ljspeech/wavs/LJ016-0445.wav|tests/data/ljspeech/wavs/LJ016-0445.npy +tests/data/ljspeech/wavs/LJ004-0155.wav|tests/data/ljspeech/wavs/LJ004-0155.npy +tests/data/ljspeech/wavs/LJ045-0185.wav|tests/data/ljspeech/wavs/LJ045-0185.npy +tests/data/ljspeech/wavs/LJ028-0507.wav|tests/data/ljspeech/wavs/LJ028-0507.npy +tests/data/ljspeech/wavs/LJ031-0145.wav|tests/data/ljspeech/wavs/LJ031-0145.npy +tests/data/ljspeech/wavs/LJ005-0113.wav|tests/data/ljspeech/wavs/LJ005-0113.npy +tests/data/ljspeech/wavs/LJ007-0054.wav|tests/data/ljspeech/wavs/LJ007-0054.npy +tests/data/ljspeech/wavs/LJ048-0229.wav|tests/data/ljspeech/wavs/LJ048-0229.npy +tests/data/ljspeech/wavs/LJ018-0090.wav|tests/data/ljspeech/wavs/LJ018-0090.npy +tests/data/ljspeech/wavs/LJ003-0274.wav|tests/data/ljspeech/wavs/LJ003-0274.npy +tests/data/ljspeech/wavs/LJ009-0257.wav|tests/data/ljspeech/wavs/LJ009-0257.npy +tests/data/ljspeech/wavs/LJ007-0116.wav|tests/data/ljspeech/wavs/LJ007-0116.npy +tests/data/ljspeech/wavs/LJ013-0061.wav|tests/data/ljspeech/wavs/LJ013-0061.npy +tests/data/ljspeech/wavs/LJ025-0015.wav|tests/data/ljspeech/wavs/LJ025-0015.npy +tests/data/ljspeech/wavs/LJ004-0102.wav|tests/data/ljspeech/wavs/LJ004-0102.npy +tests/data/ljspeech/wavs/LJ048-0130.wav|tests/data/ljspeech/wavs/LJ048-0130.npy +tests/data/ljspeech/wavs/LJ042-0206.wav|tests/data/ljspeech/wavs/LJ042-0206.npy +tests/data/ljspeech/wavs/LJ033-0114.wav|tests/data/ljspeech/wavs/LJ033-0114.npy +tests/data/ljspeech/wavs/LJ034-0099.wav|tests/data/ljspeech/wavs/LJ034-0099.npy +tests/data/ljspeech/wavs/LJ001-0066.wav|tests/data/ljspeech/wavs/LJ001-0066.npy +tests/data/ljspeech/wavs/LJ004-0183.wav|tests/data/ljspeech/wavs/LJ004-0183.npy +tests/data/ljspeech/wavs/LJ034-0177.wav|tests/data/ljspeech/wavs/LJ034-0177.npy +tests/data/ljspeech/wavs/LJ038-0293.wav|tests/data/ljspeech/wavs/LJ038-0293.npy +tests/data/ljspeech/wavs/LJ021-0123.wav|tests/data/ljspeech/wavs/LJ021-0123.npy +tests/data/ljspeech/wavs/LJ032-0064.wav|tests/data/ljspeech/wavs/LJ032-0064.npy +tests/data/ljspeech/wavs/LJ047-0184.wav|tests/data/ljspeech/wavs/LJ047-0184.npy +tests/data/ljspeech/wavs/LJ006-0165.wav|tests/data/ljspeech/wavs/LJ006-0165.npy +tests/data/ljspeech/wavs/LJ005-0051.wav|tests/data/ljspeech/wavs/LJ005-0051.npy +tests/data/ljspeech/wavs/LJ037-0245.wav|tests/data/ljspeech/wavs/LJ037-0245.npy +tests/data/ljspeech/wavs/LJ013-0153.wav|tests/data/ljspeech/wavs/LJ013-0153.npy +tests/data/ljspeech/wavs/LJ049-0066.wav|tests/data/ljspeech/wavs/LJ049-0066.npy +tests/data/ljspeech/wavs/LJ012-0005.wav|tests/data/ljspeech/wavs/LJ012-0005.npy +tests/data/ljspeech/wavs/LJ025-0032.wav|tests/data/ljspeech/wavs/LJ025-0032.npy +tests/data/ljspeech/wavs/LJ029-0015.wav|tests/data/ljspeech/wavs/LJ029-0015.npy +tests/data/ljspeech/wavs/LJ039-0017.wav|tests/data/ljspeech/wavs/LJ039-0017.npy +tests/data/ljspeech/wavs/LJ045-0164.wav|tests/data/ljspeech/wavs/LJ045-0164.npy +tests/data/ljspeech/wavs/LJ016-0402.wav|tests/data/ljspeech/wavs/LJ016-0402.npy +tests/data/ljspeech/wavs/LJ010-0112.wav|tests/data/ljspeech/wavs/LJ010-0112.npy +tests/data/ljspeech/wavs/LJ049-0125.wav|tests/data/ljspeech/wavs/LJ049-0125.npy +tests/data/ljspeech/wavs/LJ046-0220.wav|tests/data/ljspeech/wavs/LJ046-0220.npy +tests/data/ljspeech/wavs/LJ010-0145.wav|tests/data/ljspeech/wavs/LJ010-0145.npy +tests/data/ljspeech/wavs/LJ042-0217.wav|tests/data/ljspeech/wavs/LJ042-0217.npy +tests/data/ljspeech/wavs/LJ039-0059.wav|tests/data/ljspeech/wavs/LJ039-0059.npy +tests/data/ljspeech/wavs/LJ019-0348.wav|tests/data/ljspeech/wavs/LJ019-0348.npy +tests/data/ljspeech/wavs/LJ018-0380.wav|tests/data/ljspeech/wavs/LJ018-0380.npy +tests/data/ljspeech/wavs/LJ031-0093.wav|tests/data/ljspeech/wavs/LJ031-0093.npy +tests/data/ljspeech/wavs/LJ012-0182.wav|tests/data/ljspeech/wavs/LJ012-0182.npy +tests/data/ljspeech/wavs/LJ045-0246.wav|tests/data/ljspeech/wavs/LJ045-0246.npy +tests/data/ljspeech/wavs/LJ012-0183.wav|tests/data/ljspeech/wavs/LJ012-0183.npy +tests/data/ljspeech/wavs/LJ039-0234.wav|tests/data/ljspeech/wavs/LJ039-0234.npy +tests/data/ljspeech/wavs/LJ006-0032.wav|tests/data/ljspeech/wavs/LJ006-0032.npy +tests/data/ljspeech/wavs/LJ041-0161.wav|tests/data/ljspeech/wavs/LJ041-0161.npy +tests/data/ljspeech/wavs/LJ019-0346.wav|tests/data/ljspeech/wavs/LJ019-0346.npy +tests/data/ljspeech/wavs/LJ049-0096.wav|tests/data/ljspeech/wavs/LJ049-0096.npy +tests/data/ljspeech/wavs/LJ012-0209.wav|tests/data/ljspeech/wavs/LJ012-0209.npy +tests/data/ljspeech/wavs/LJ033-0169.wav|tests/data/ljspeech/wavs/LJ033-0169.npy +tests/data/ljspeech/wavs/LJ038-0023.wav|tests/data/ljspeech/wavs/LJ038-0023.npy +tests/data/ljspeech/wavs/LJ002-0030.wav|tests/data/ljspeech/wavs/LJ002-0030.npy +tests/data/ljspeech/wavs/LJ043-0026.wav|tests/data/ljspeech/wavs/LJ043-0026.npy +tests/data/ljspeech/wavs/LJ031-0123.wav|tests/data/ljspeech/wavs/LJ031-0123.npy +tests/data/ljspeech/wavs/LJ002-0031.wav|tests/data/ljspeech/wavs/LJ002-0031.npy +tests/data/ljspeech/wavs/LJ033-0045.wav|tests/data/ljspeech/wavs/LJ033-0045.npy +tests/data/ljspeech/wavs/LJ002-0028.wav|tests/data/ljspeech/wavs/LJ002-0028.npy +tests/data/ljspeech/wavs/LJ043-0011.wav|tests/data/ljspeech/wavs/LJ043-0011.npy +tests/data/ljspeech/wavs/LJ046-0069.wav|tests/data/ljspeech/wavs/LJ046-0069.npy +tests/data/ljspeech/wavs/LJ018-0176.wav|tests/data/ljspeech/wavs/LJ018-0176.npy +tests/data/ljspeech/wavs/LJ050-0099.wav|tests/data/ljspeech/wavs/LJ050-0099.npy +tests/data/ljspeech/wavs/LJ046-0081.wav|tests/data/ljspeech/wavs/LJ046-0081.npy +tests/data/ljspeech/wavs/LJ001-0162.wav|tests/data/ljspeech/wavs/LJ001-0162.npy +tests/data/ljspeech/wavs/LJ043-0008.wav|tests/data/ljspeech/wavs/LJ043-0008.npy +tests/data/ljspeech/wavs/LJ032-0137.wav|tests/data/ljspeech/wavs/LJ032-0137.npy +tests/data/ljspeech/wavs/LJ009-0022.wav|tests/data/ljspeech/wavs/LJ009-0022.npy +tests/data/ljspeech/wavs/LJ028-0192.wav|tests/data/ljspeech/wavs/LJ028-0192.npy +tests/data/ljspeech/wavs/LJ001-0184.wav|tests/data/ljspeech/wavs/LJ001-0184.npy +tests/data/ljspeech/wavs/LJ008-0044.wav|tests/data/ljspeech/wavs/LJ008-0044.npy +tests/data/ljspeech/wavs/LJ026-0036.wav|tests/data/ljspeech/wavs/LJ026-0036.npy +tests/data/ljspeech/wavs/LJ050-0104.wav|tests/data/ljspeech/wavs/LJ050-0104.npy +tests/data/ljspeech/wavs/LJ006-0148.wav|tests/data/ljspeech/wavs/LJ006-0148.npy +tests/data/ljspeech/wavs/LJ007-0019.wav|tests/data/ljspeech/wavs/LJ007-0019.npy +tests/data/ljspeech/wavs/LJ028-0419.wav|tests/data/ljspeech/wavs/LJ028-0419.npy +tests/data/ljspeech/wavs/LJ007-0135.wav|tests/data/ljspeech/wavs/LJ007-0135.npy +tests/data/ljspeech/wavs/LJ048-0163.wav|tests/data/ljspeech/wavs/LJ048-0163.npy +tests/data/ljspeech/wavs/LJ001-0133.wav|tests/data/ljspeech/wavs/LJ001-0133.npy +tests/data/ljspeech/wavs/LJ049-0121.wav|tests/data/ljspeech/wavs/LJ049-0121.npy +tests/data/ljspeech/wavs/LJ028-0302.wav|tests/data/ljspeech/wavs/LJ028-0302.npy +tests/data/ljspeech/wavs/LJ028-0312.wav|tests/data/ljspeech/wavs/LJ028-0312.npy +tests/data/ljspeech/wavs/LJ028-0437.wav|tests/data/ljspeech/wavs/LJ028-0437.npy +tests/data/ljspeech/wavs/LJ010-0067.wav|tests/data/ljspeech/wavs/LJ010-0067.npy +tests/data/ljspeech/wavs/LJ029-0012.wav|tests/data/ljspeech/wavs/LJ029-0012.npy +tests/data/ljspeech/wavs/LJ022-0170.wav|tests/data/ljspeech/wavs/LJ022-0170.npy +tests/data/ljspeech/wavs/LJ003-0031.wav|tests/data/ljspeech/wavs/LJ003-0031.npy +tests/data/ljspeech/wavs/LJ045-0211.wav|tests/data/ljspeech/wavs/LJ045-0211.npy +tests/data/ljspeech/wavs/LJ021-0061.wav|tests/data/ljspeech/wavs/LJ021-0061.npy +tests/data/ljspeech/wavs/LJ040-0221.wav|tests/data/ljspeech/wavs/LJ040-0221.npy +tests/data/ljspeech/wavs/LJ015-0302.wav|tests/data/ljspeech/wavs/LJ015-0302.npy +tests/data/ljspeech/wavs/LJ047-0238.wav|tests/data/ljspeech/wavs/LJ047-0238.npy +tests/data/ljspeech/wavs/LJ050-0042.wav|tests/data/ljspeech/wavs/LJ050-0042.npy +tests/data/ljspeech/wavs/LJ038-0007.wav|tests/data/ljspeech/wavs/LJ038-0007.npy +tests/data/ljspeech/wavs/LJ022-0190.wav|tests/data/ljspeech/wavs/LJ022-0190.npy +tests/data/ljspeech/wavs/LJ020-0081.wav|tests/data/ljspeech/wavs/LJ020-0081.npy +tests/data/ljspeech/wavs/LJ043-0182.wav|tests/data/ljspeech/wavs/LJ043-0182.npy +tests/data/ljspeech/wavs/LJ028-0235.wav|tests/data/ljspeech/wavs/LJ028-0235.npy +tests/data/ljspeech/wavs/LJ048-0151.wav|tests/data/ljspeech/wavs/LJ048-0151.npy +tests/data/ljspeech/wavs/LJ035-0013.wav|tests/data/ljspeech/wavs/LJ035-0013.npy +tests/data/ljspeech/wavs/LJ005-0237.wav|tests/data/ljspeech/wavs/LJ005-0237.npy +tests/data/ljspeech/wavs/LJ010-0062.wav|tests/data/ljspeech/wavs/LJ010-0062.npy +tests/data/ljspeech/wavs/LJ021-0206.wav|tests/data/ljspeech/wavs/LJ021-0206.npy +tests/data/ljspeech/wavs/LJ028-0173.wav|tests/data/ljspeech/wavs/LJ028-0173.npy +tests/data/ljspeech/wavs/LJ039-0126.wav|tests/data/ljspeech/wavs/LJ039-0126.npy +tests/data/ljspeech/wavs/LJ002-0305.wav|tests/data/ljspeech/wavs/LJ002-0305.npy +tests/data/ljspeech/wavs/LJ028-0329.wav|tests/data/ljspeech/wavs/LJ028-0329.npy +tests/data/ljspeech/wavs/LJ029-0044.wav|tests/data/ljspeech/wavs/LJ029-0044.npy +tests/data/ljspeech/wavs/LJ036-0109.wav|tests/data/ljspeech/wavs/LJ036-0109.npy +tests/data/ljspeech/wavs/LJ040-0184.wav|tests/data/ljspeech/wavs/LJ040-0184.npy +tests/data/ljspeech/wavs/LJ006-0219.wav|tests/data/ljspeech/wavs/LJ006-0219.npy +tests/data/ljspeech/wavs/LJ028-0482.wav|tests/data/ljspeech/wavs/LJ028-0482.npy +tests/data/ljspeech/wavs/LJ002-0329.wav|tests/data/ljspeech/wavs/LJ002-0329.npy +tests/data/ljspeech/wavs/LJ034-0186.wav|tests/data/ljspeech/wavs/LJ034-0186.npy +tests/data/ljspeech/wavs/LJ040-0195.wav|tests/data/ljspeech/wavs/LJ040-0195.npy +tests/data/ljspeech/wavs/LJ034-0209.wav|tests/data/ljspeech/wavs/LJ034-0209.npy +tests/data/ljspeech/wavs/LJ040-0042.wav|tests/data/ljspeech/wavs/LJ040-0042.npy +tests/data/ljspeech/wavs/LJ035-0186.wav|tests/data/ljspeech/wavs/LJ035-0186.npy +tests/data/ljspeech/wavs/LJ045-0128.wav|tests/data/ljspeech/wavs/LJ045-0128.npy +tests/data/ljspeech/wavs/LJ036-0040.wav|tests/data/ljspeech/wavs/LJ036-0040.npy +tests/data/ljspeech/wavs/LJ045-0046.wav|tests/data/ljspeech/wavs/LJ045-0046.npy +tests/data/ljspeech/wavs/LJ018-0169.wav|tests/data/ljspeech/wavs/LJ018-0169.npy +tests/data/ljspeech/wavs/LJ022-0058.wav|tests/data/ljspeech/wavs/LJ022-0058.npy +tests/data/ljspeech/wavs/LJ044-0141.wav|tests/data/ljspeech/wavs/LJ044-0141.npy +tests/data/ljspeech/wavs/LJ036-0037.wav|tests/data/ljspeech/wavs/LJ036-0037.npy +tests/data/ljspeech/wavs/LJ049-0203.wav|tests/data/ljspeech/wavs/LJ049-0203.npy +tests/data/ljspeech/wavs/LJ036-0055.wav|tests/data/ljspeech/wavs/LJ036-0055.npy +tests/data/ljspeech/wavs/LJ049-0005.wav|tests/data/ljspeech/wavs/LJ049-0005.npy +tests/data/ljspeech/wavs/LJ019-0187.wav|tests/data/ljspeech/wavs/LJ019-0187.npy +tests/data/ljspeech/wavs/LJ012-0284.wav|tests/data/ljspeech/wavs/LJ012-0284.npy +tests/data/ljspeech/wavs/LJ016-0234.wav|tests/data/ljspeech/wavs/LJ016-0234.npy +tests/data/ljspeech/wavs/LJ016-0216.wav|tests/data/ljspeech/wavs/LJ016-0216.npy +tests/data/ljspeech/wavs/LJ049-0070.wav|tests/data/ljspeech/wavs/LJ049-0070.npy +tests/data/ljspeech/wavs/LJ044-0116.wav|tests/data/ljspeech/wavs/LJ044-0116.npy +tests/data/ljspeech/wavs/LJ040-0004.wav|tests/data/ljspeech/wavs/LJ040-0004.npy +tests/data/ljspeech/wavs/LJ016-0373.wav|tests/data/ljspeech/wavs/LJ016-0373.npy +tests/data/ljspeech/wavs/LJ037-0131.wav|tests/data/ljspeech/wavs/LJ037-0131.npy +tests/data/ljspeech/wavs/LJ019-0226.wav|tests/data/ljspeech/wavs/LJ019-0226.npy +tests/data/ljspeech/wavs/LJ036-0128.wav|tests/data/ljspeech/wavs/LJ036-0128.npy +tests/data/ljspeech/wavs/LJ009-0166.wav|tests/data/ljspeech/wavs/LJ009-0166.npy +tests/data/ljspeech/wavs/LJ018-0341.wav|tests/data/ljspeech/wavs/LJ018-0341.npy +tests/data/ljspeech/wavs/LJ036-0101.wav|tests/data/ljspeech/wavs/LJ036-0101.npy +tests/data/ljspeech/wavs/LJ019-0211.wav|tests/data/ljspeech/wavs/LJ019-0211.npy +tests/data/ljspeech/wavs/LJ049-0020.wav|tests/data/ljspeech/wavs/LJ049-0020.npy +tests/data/ljspeech/wavs/LJ016-0311.wav|tests/data/ljspeech/wavs/LJ016-0311.npy +tests/data/ljspeech/wavs/LJ040-0141.wav|tests/data/ljspeech/wavs/LJ040-0141.npy +tests/data/ljspeech/wavs/LJ049-0082.wav|tests/data/ljspeech/wavs/LJ049-0082.npy +tests/data/ljspeech/wavs/LJ037-0167.wav|tests/data/ljspeech/wavs/LJ037-0167.npy +tests/data/ljspeech/wavs/LJ004-0152.wav|tests/data/ljspeech/wavs/LJ004-0152.npy +tests/data/ljspeech/wavs/LJ027-0027.wav|tests/data/ljspeech/wavs/LJ027-0027.npy +tests/data/ljspeech/wavs/LJ044-0214.wav|tests/data/ljspeech/wavs/LJ044-0214.npy +tests/data/ljspeech/wavs/LJ002-0285.wav|tests/data/ljspeech/wavs/LJ002-0285.npy +tests/data/ljspeech/wavs/LJ041-0180.wav|tests/data/ljspeech/wavs/LJ041-0180.npy +tests/data/ljspeech/wavs/LJ043-0137.wav|tests/data/ljspeech/wavs/LJ043-0137.npy +tests/data/ljspeech/wavs/LJ046-0240.wav|tests/data/ljspeech/wavs/LJ046-0240.npy +tests/data/ljspeech/wavs/LJ048-0043.wav|tests/data/ljspeech/wavs/LJ048-0043.npy +tests/data/ljspeech/wavs/LJ033-0140.wav|tests/data/ljspeech/wavs/LJ033-0140.npy +tests/data/ljspeech/wavs/LJ026-0157.wav|tests/data/ljspeech/wavs/LJ026-0157.npy +tests/data/ljspeech/wavs/LJ008-0280.wav|tests/data/ljspeech/wavs/LJ008-0280.npy +tests/data/ljspeech/wavs/LJ014-0323.wav|tests/data/ljspeech/wavs/LJ014-0323.npy +tests/data/ljspeech/wavs/LJ009-0042.wav|tests/data/ljspeech/wavs/LJ009-0042.npy +tests/data/ljspeech/wavs/LJ013-0131.wav|tests/data/ljspeech/wavs/LJ013-0131.npy +tests/data/ljspeech/wavs/LJ046-0013.wav|tests/data/ljspeech/wavs/LJ046-0013.npy +tests/data/ljspeech/wavs/LJ028-0035.wav|tests/data/ljspeech/wavs/LJ028-0035.npy +tests/data/ljspeech/wavs/LJ008-0181.wav|tests/data/ljspeech/wavs/LJ008-0181.npy +tests/data/ljspeech/wavs/LJ025-0125.wav|tests/data/ljspeech/wavs/LJ025-0125.npy +tests/data/ljspeech/wavs/LJ004-0106.wav|tests/data/ljspeech/wavs/LJ004-0106.npy +tests/data/ljspeech/wavs/LJ004-0086.wav|tests/data/ljspeech/wavs/LJ004-0086.npy +tests/data/ljspeech/wavs/LJ026-0086.wav|tests/data/ljspeech/wavs/LJ026-0086.npy +tests/data/ljspeech/wavs/LJ050-0016.wav|tests/data/ljspeech/wavs/LJ050-0016.npy +tests/data/ljspeech/wavs/LJ008-0090.wav|tests/data/ljspeech/wavs/LJ008-0090.npy +tests/data/ljspeech/wavs/LJ013-0058.wav|tests/data/ljspeech/wavs/LJ013-0058.npy +tests/data/ljspeech/wavs/LJ027-0174.wav|tests/data/ljspeech/wavs/LJ027-0174.npy +tests/data/ljspeech/wavs/LJ049-0145.wav|tests/data/ljspeech/wavs/LJ049-0145.npy +tests/data/ljspeech/wavs/LJ014-0018.wav|tests/data/ljspeech/wavs/LJ014-0018.npy +tests/data/ljspeech/wavs/LJ033-0152.wav|tests/data/ljspeech/wavs/LJ033-0152.npy +tests/data/ljspeech/wavs/LJ008-0165.wav|tests/data/ljspeech/wavs/LJ008-0165.npy +tests/data/ljspeech/wavs/LJ008-0225.wav|tests/data/ljspeech/wavs/LJ008-0225.npy +tests/data/ljspeech/wavs/LJ032-0262.wav|tests/data/ljspeech/wavs/LJ032-0262.npy +tests/data/ljspeech/wavs/LJ024-0031.wav|tests/data/ljspeech/wavs/LJ024-0031.npy +tests/data/ljspeech/wavs/LJ014-0313.wav|tests/data/ljspeech/wavs/LJ014-0313.npy +tests/data/ljspeech/wavs/LJ013-0147.wav|tests/data/ljspeech/wavs/LJ013-0147.npy +tests/data/ljspeech/wavs/LJ016-0278.wav|tests/data/ljspeech/wavs/LJ016-0278.npy +tests/data/ljspeech/wavs/LJ013-0056.wav|tests/data/ljspeech/wavs/LJ013-0056.npy +tests/data/ljspeech/wavs/LJ040-0014.wav|tests/data/ljspeech/wavs/LJ040-0014.npy +tests/data/ljspeech/wavs/LJ015-0055.wav|tests/data/ljspeech/wavs/LJ015-0055.npy +tests/data/ljspeech/wavs/LJ038-0070.wav|tests/data/ljspeech/wavs/LJ038-0070.npy +tests/data/ljspeech/wavs/LJ038-0274.wav|tests/data/ljspeech/wavs/LJ038-0274.npy +tests/data/ljspeech/wavs/LJ015-0090.wav|tests/data/ljspeech/wavs/LJ015-0090.npy +tests/data/ljspeech/wavs/LJ013-0223.wav|tests/data/ljspeech/wavs/LJ013-0223.npy +tests/data/ljspeech/wavs/LJ015-0074.wav|tests/data/ljspeech/wavs/LJ015-0074.npy +tests/data/ljspeech/wavs/LJ014-0309.wav|tests/data/ljspeech/wavs/LJ014-0309.npy +tests/data/ljspeech/wavs/LJ017-0180.wav|tests/data/ljspeech/wavs/LJ017-0180.npy +tests/data/ljspeech/wavs/LJ017-0049.wav|tests/data/ljspeech/wavs/LJ017-0049.npy +tests/data/ljspeech/wavs/LJ027-0106.wav|tests/data/ljspeech/wavs/LJ027-0106.npy +tests/data/ljspeech/wavs/LJ003-0298.wav|tests/data/ljspeech/wavs/LJ003-0298.npy +tests/data/ljspeech/wavs/LJ014-0109.wav|tests/data/ljspeech/wavs/LJ014-0109.npy +tests/data/ljspeech/wavs/LJ014-0057.wav|tests/data/ljspeech/wavs/LJ014-0057.npy +tests/data/ljspeech/wavs/LJ038-0059.wav|tests/data/ljspeech/wavs/LJ038-0059.npy +tests/data/ljspeech/wavs/LJ004-0071.wav|tests/data/ljspeech/wavs/LJ004-0071.npy +tests/data/ljspeech/wavs/LJ015-0017.wav|tests/data/ljspeech/wavs/LJ015-0017.npy +tests/data/ljspeech/wavs/LJ037-0079.wav|tests/data/ljspeech/wavs/LJ037-0079.npy +tests/data/ljspeech/wavs/LJ008-0243.wav|tests/data/ljspeech/wavs/LJ008-0243.npy +tests/data/ljspeech/wavs/LJ030-0189.wav|tests/data/ljspeech/wavs/LJ030-0189.npy +tests/data/ljspeech/wavs/LJ004-0159.wav|tests/data/ljspeech/wavs/LJ004-0159.npy +tests/data/ljspeech/wavs/LJ037-0099.wav|tests/data/ljspeech/wavs/LJ037-0099.npy +tests/data/ljspeech/wavs/LJ038-0265.wav|tests/data/ljspeech/wavs/LJ038-0265.npy +tests/data/ljspeech/wavs/LJ011-0187.wav|tests/data/ljspeech/wavs/LJ011-0187.npy +tests/data/ljspeech/wavs/LJ030-0076.wav|tests/data/ljspeech/wavs/LJ030-0076.npy +tests/data/ljspeech/wavs/LJ013-0039.wav|tests/data/ljspeech/wavs/LJ013-0039.npy +tests/data/ljspeech/wavs/LJ045-0239.wav|tests/data/ljspeech/wavs/LJ045-0239.npy +tests/data/ljspeech/wavs/LJ013-0233.wav|tests/data/ljspeech/wavs/LJ013-0233.npy +tests/data/ljspeech/wavs/LJ014-0282.wav|tests/data/ljspeech/wavs/LJ014-0282.npy +tests/data/ljspeech/wavs/LJ041-0079.wav|tests/data/ljspeech/wavs/LJ041-0079.npy +tests/data/ljspeech/wavs/LJ047-0021.wav|tests/data/ljspeech/wavs/LJ047-0021.npy +tests/data/ljspeech/wavs/LJ032-0019.wav|tests/data/ljspeech/wavs/LJ032-0019.npy +tests/data/ljspeech/wavs/LJ047-0073.wav|tests/data/ljspeech/wavs/LJ047-0073.npy +tests/data/ljspeech/wavs/LJ009-0149.wav|tests/data/ljspeech/wavs/LJ009-0149.npy +tests/data/ljspeech/wavs/LJ042-0248.wav|tests/data/ljspeech/wavs/LJ042-0248.npy +tests/data/ljspeech/wavs/LJ042-0236.wav|tests/data/ljspeech/wavs/LJ042-0236.npy +tests/data/ljspeech/wavs/LJ049-0173.wav|tests/data/ljspeech/wavs/LJ049-0173.npy +tests/data/ljspeech/wavs/LJ015-0208.wav|tests/data/ljspeech/wavs/LJ015-0208.npy +tests/data/ljspeech/wavs/LJ048-0088.wav|tests/data/ljspeech/wavs/LJ048-0088.npy +tests/data/ljspeech/wavs/LJ009-0159.wav|tests/data/ljspeech/wavs/LJ009-0159.npy +tests/data/ljspeech/wavs/LJ014-0267.wav|tests/data/ljspeech/wavs/LJ014-0267.npy +tests/data/ljspeech/wavs/LJ046-0234.wav|tests/data/ljspeech/wavs/LJ046-0234.npy +tests/data/ljspeech/wavs/LJ012-0205.wav|tests/data/ljspeech/wavs/LJ012-0205.npy +tests/data/ljspeech/wavs/LJ017-0249.wav|tests/data/ljspeech/wavs/LJ017-0249.npy +tests/data/ljspeech/wavs/LJ015-0304.wav|tests/data/ljspeech/wavs/LJ015-0304.npy +tests/data/ljspeech/wavs/LJ004-0019.wav|tests/data/ljspeech/wavs/LJ004-0019.npy +tests/data/ljspeech/wavs/LJ038-0002.wav|tests/data/ljspeech/wavs/LJ038-0002.npy +tests/data/ljspeech/wavs/LJ007-0018.wav|tests/data/ljspeech/wavs/LJ007-0018.npy +tests/data/ljspeech/wavs/LJ016-0031.wav|tests/data/ljspeech/wavs/LJ016-0031.npy +tests/data/ljspeech/wavs/LJ002-0299.wav|tests/data/ljspeech/wavs/LJ002-0299.npy +tests/data/ljspeech/wavs/LJ050-0247.wav|tests/data/ljspeech/wavs/LJ050-0247.npy +tests/data/ljspeech/wavs/LJ034-0002.wav|tests/data/ljspeech/wavs/LJ034-0002.npy +tests/data/ljspeech/wavs/LJ014-0276.wav|tests/data/ljspeech/wavs/LJ014-0276.npy +tests/data/ljspeech/wavs/LJ003-0021.wav|tests/data/ljspeech/wavs/LJ003-0021.npy +tests/data/ljspeech/wavs/LJ009-0229.wav|tests/data/ljspeech/wavs/LJ009-0229.npy +tests/data/ljspeech/wavs/LJ021-0198.wav|tests/data/ljspeech/wavs/LJ021-0198.npy +tests/data/ljspeech/wavs/LJ012-0086.wav|tests/data/ljspeech/wavs/LJ012-0086.npy +tests/data/ljspeech/wavs/LJ030-0120.wav|tests/data/ljspeech/wavs/LJ030-0120.npy +tests/data/ljspeech/wavs/LJ006-0192.wav|tests/data/ljspeech/wavs/LJ006-0192.npy +tests/data/ljspeech/wavs/LJ050-0008.wav|tests/data/ljspeech/wavs/LJ050-0008.npy +tests/data/ljspeech/wavs/LJ045-0150.wav|tests/data/ljspeech/wavs/LJ045-0150.npy +tests/data/ljspeech/wavs/LJ042-0049.wav|tests/data/ljspeech/wavs/LJ042-0049.npy +tests/data/ljspeech/wavs/LJ021-0166.wav|tests/data/ljspeech/wavs/LJ021-0166.npy +tests/data/ljspeech/wavs/LJ042-0013.wav|tests/data/ljspeech/wavs/LJ042-0013.npy +tests/data/ljspeech/wavs/LJ026-0061.wav|tests/data/ljspeech/wavs/LJ026-0061.npy +tests/data/ljspeech/wavs/LJ027-0170.wav|tests/data/ljspeech/wavs/LJ027-0170.npy +tests/data/ljspeech/wavs/LJ045-0110.wav|tests/data/ljspeech/wavs/LJ045-0110.npy +tests/data/ljspeech/wavs/LJ005-0126.wav|tests/data/ljspeech/wavs/LJ005-0126.npy +tests/data/ljspeech/wavs/LJ024-0101.wav|tests/data/ljspeech/wavs/LJ024-0101.npy +tests/data/ljspeech/wavs/LJ027-0095.wav|tests/data/ljspeech/wavs/LJ027-0095.npy +tests/data/ljspeech/wavs/LJ009-0026.wav|tests/data/ljspeech/wavs/LJ009-0026.npy +tests/data/ljspeech/wavs/LJ048-0182.wav|tests/data/ljspeech/wavs/LJ048-0182.npy +tests/data/ljspeech/wavs/LJ021-0006.wav|tests/data/ljspeech/wavs/LJ021-0006.npy +tests/data/ljspeech/wavs/LJ050-0256.wav|tests/data/ljspeech/wavs/LJ050-0256.npy +tests/data/ljspeech/wavs/LJ025-0039.wav|tests/data/ljspeech/wavs/LJ025-0039.npy +tests/data/ljspeech/wavs/LJ040-0117.wav|tests/data/ljspeech/wavs/LJ040-0117.npy +tests/data/ljspeech/wavs/LJ050-0013.wav|tests/data/ljspeech/wavs/LJ050-0013.npy +tests/data/ljspeech/wavs/LJ050-0175.wav|tests/data/ljspeech/wavs/LJ050-0175.npy +tests/data/ljspeech/wavs/LJ050-0043.wav|tests/data/ljspeech/wavs/LJ050-0043.npy +tests/data/ljspeech/wavs/LJ007-0133.wav|tests/data/ljspeech/wavs/LJ007-0133.npy +tests/data/ljspeech/wavs/LJ035-0138.wav|tests/data/ljspeech/wavs/LJ035-0138.npy +tests/data/ljspeech/wavs/LJ006-0068.wav|tests/data/ljspeech/wavs/LJ006-0068.npy +tests/data/ljspeech/wavs/LJ021-0024.wav|tests/data/ljspeech/wavs/LJ021-0024.npy +tests/data/ljspeech/wavs/LJ028-0223.wav|tests/data/ljspeech/wavs/LJ028-0223.npy +tests/data/ljspeech/wavs/LJ028-0100.wav|tests/data/ljspeech/wavs/LJ028-0100.npy +tests/data/ljspeech/wavs/LJ046-0065.wav|tests/data/ljspeech/wavs/LJ046-0065.npy +tests/data/ljspeech/wavs/LJ030-0249.wav|tests/data/ljspeech/wavs/LJ030-0249.npy +tests/data/ljspeech/wavs/LJ042-0109.wav|tests/data/ljspeech/wavs/LJ042-0109.npy +tests/data/ljspeech/wavs/LJ010-0243.wav|tests/data/ljspeech/wavs/LJ010-0243.npy +tests/data/ljspeech/wavs/LJ002-0312.wav|tests/data/ljspeech/wavs/LJ002-0312.npy +tests/data/ljspeech/wavs/LJ042-0098.wav|tests/data/ljspeech/wavs/LJ042-0098.npy +tests/data/ljspeech/wavs/LJ008-0185.wav|tests/data/ljspeech/wavs/LJ008-0185.npy +tests/data/ljspeech/wavs/LJ019-0383.wav|tests/data/ljspeech/wavs/LJ019-0383.npy +tests/data/ljspeech/wavs/LJ029-0052.wav|tests/data/ljspeech/wavs/LJ029-0052.npy +tests/data/ljspeech/wavs/LJ019-0244.wav|tests/data/ljspeech/wavs/LJ019-0244.npy +tests/data/ljspeech/wavs/LJ040-0161.wav|tests/data/ljspeech/wavs/LJ040-0161.npy +tests/data/ljspeech/wavs/LJ047-0019.wav|tests/data/ljspeech/wavs/LJ047-0019.npy +tests/data/ljspeech/wavs/LJ044-0024.wav|tests/data/ljspeech/wavs/LJ044-0024.npy +tests/data/ljspeech/wavs/LJ006-0073.wav|tests/data/ljspeech/wavs/LJ006-0073.npy +tests/data/ljspeech/wavs/LJ048-0286.wav|tests/data/ljspeech/wavs/LJ048-0286.npy +tests/data/ljspeech/wavs/LJ006-0082.wav|tests/data/ljspeech/wavs/LJ006-0082.npy +tests/data/ljspeech/wavs/LJ004-0016.wav|tests/data/ljspeech/wavs/LJ004-0016.npy +tests/data/ljspeech/wavs/LJ050-0132.wav|tests/data/ljspeech/wavs/LJ050-0132.npy +tests/data/ljspeech/wavs/LJ045-0139.wav|tests/data/ljspeech/wavs/LJ045-0139.npy +tests/data/ljspeech/wavs/LJ003-0097.wav|tests/data/ljspeech/wavs/LJ003-0097.npy +tests/data/ljspeech/wavs/LJ045-0142.wav|tests/data/ljspeech/wavs/LJ045-0142.npy +tests/data/ljspeech/wavs/LJ003-0186.wav|tests/data/ljspeech/wavs/LJ003-0186.npy +tests/data/ljspeech/wavs/LJ005-0211.wav|tests/data/ljspeech/wavs/LJ005-0211.npy +tests/data/ljspeech/wavs/LJ005-0100.wav|tests/data/ljspeech/wavs/LJ005-0100.npy +tests/data/ljspeech/wavs/LJ007-0079.wav|tests/data/ljspeech/wavs/LJ007-0079.npy +tests/data/ljspeech/wavs/LJ043-0065.wav|tests/data/ljspeech/wavs/LJ043-0065.npy +tests/data/ljspeech/wavs/LJ004-0222.wav|tests/data/ljspeech/wavs/LJ004-0222.npy +tests/data/ljspeech/wavs/LJ019-0144.wav|tests/data/ljspeech/wavs/LJ019-0144.npy +tests/data/ljspeech/wavs/LJ019-0190.wav|tests/data/ljspeech/wavs/LJ019-0190.npy +tests/data/ljspeech/wavs/LJ003-0283.wav|tests/data/ljspeech/wavs/LJ003-0283.npy +tests/data/ljspeech/wavs/LJ002-0132.wav|tests/data/ljspeech/wavs/LJ002-0132.npy +tests/data/ljspeech/wavs/LJ003-0132.wav|tests/data/ljspeech/wavs/LJ003-0132.npy +tests/data/ljspeech/wavs/LJ045-0055.wav|tests/data/ljspeech/wavs/LJ045-0055.npy +tests/data/ljspeech/wavs/LJ040-0157.wav|tests/data/ljspeech/wavs/LJ040-0157.npy +tests/data/ljspeech/wavs/LJ046-0033.wav|tests/data/ljspeech/wavs/LJ046-0033.npy +tests/data/ljspeech/wavs/LJ010-0214.wav|tests/data/ljspeech/wavs/LJ010-0214.npy +tests/data/ljspeech/wavs/LJ019-0120.wav|tests/data/ljspeech/wavs/LJ019-0120.npy +tests/data/ljspeech/wavs/LJ045-0075.wav|tests/data/ljspeech/wavs/LJ045-0075.npy +tests/data/ljspeech/wavs/LJ007-0114.wav|tests/data/ljspeech/wavs/LJ007-0114.npy +tests/data/ljspeech/wavs/LJ029-0164.wav|tests/data/ljspeech/wavs/LJ029-0164.npy +tests/data/ljspeech/wavs/LJ014-0308.wav|tests/data/ljspeech/wavs/LJ014-0308.npy +tests/data/ljspeech/wavs/LJ047-0072.wav|tests/data/ljspeech/wavs/LJ047-0072.npy +tests/data/ljspeech/wavs/LJ048-0133.wav|tests/data/ljspeech/wavs/LJ048-0133.npy +tests/data/ljspeech/wavs/LJ022-0057.wav|tests/data/ljspeech/wavs/LJ022-0057.npy +tests/data/ljspeech/wavs/LJ015-0266.wav|tests/data/ljspeech/wavs/LJ015-0266.npy +tests/data/ljspeech/wavs/LJ005-0067.wav|tests/data/ljspeech/wavs/LJ005-0067.npy +tests/data/ljspeech/wavs/LJ041-0086.wav|tests/data/ljspeech/wavs/LJ041-0086.npy +tests/data/ljspeech/wavs/LJ033-0131.wav|tests/data/ljspeech/wavs/LJ033-0131.npy +tests/data/ljspeech/wavs/LJ029-0042.wav|tests/data/ljspeech/wavs/LJ029-0042.npy +tests/data/ljspeech/wavs/LJ002-0060.wav|tests/data/ljspeech/wavs/LJ002-0060.npy +tests/data/ljspeech/wavs/LJ009-0259.wav|tests/data/ljspeech/wavs/LJ009-0259.npy +tests/data/ljspeech/wavs/LJ027-0145.wav|tests/data/ljspeech/wavs/LJ027-0145.npy +tests/data/ljspeech/wavs/LJ038-0233.wav|tests/data/ljspeech/wavs/LJ038-0233.npy +tests/data/ljspeech/wavs/LJ041-0046.wav|tests/data/ljspeech/wavs/LJ041-0046.npy +tests/data/ljspeech/wavs/LJ048-0167.wav|tests/data/ljspeech/wavs/LJ048-0167.npy +tests/data/ljspeech/wavs/LJ041-0168.wav|tests/data/ljspeech/wavs/LJ041-0168.npy +tests/data/ljspeech/wavs/LJ034-0072.wav|tests/data/ljspeech/wavs/LJ034-0072.npy +tests/data/ljspeech/wavs/LJ040-0198.wav|tests/data/ljspeech/wavs/LJ040-0198.npy +tests/data/ljspeech/wavs/LJ015-0115.wav|tests/data/ljspeech/wavs/LJ015-0115.npy +tests/data/ljspeech/wavs/LJ008-0258.wav|tests/data/ljspeech/wavs/LJ008-0258.npy +tests/data/ljspeech/wavs/LJ050-0163.wav|tests/data/ljspeech/wavs/LJ050-0163.npy +tests/data/ljspeech/wavs/LJ008-0257.wav|tests/data/ljspeech/wavs/LJ008-0257.npy +tests/data/ljspeech/wavs/LJ041-0016.wav|tests/data/ljspeech/wavs/LJ041-0016.npy +tests/data/ljspeech/wavs/LJ043-0044.wav|tests/data/ljspeech/wavs/LJ043-0044.npy +tests/data/ljspeech/wavs/LJ029-0139.wav|tests/data/ljspeech/wavs/LJ029-0139.npy +tests/data/ljspeech/wavs/LJ006-0040.wav|tests/data/ljspeech/wavs/LJ006-0040.npy +tests/data/ljspeech/wavs/LJ025-0035.wav|tests/data/ljspeech/wavs/LJ025-0035.npy +tests/data/ljspeech/wavs/LJ028-0490.wav|tests/data/ljspeech/wavs/LJ028-0490.npy +tests/data/ljspeech/wavs/LJ009-0187.wav|tests/data/ljspeech/wavs/LJ009-0187.npy +tests/data/ljspeech/wavs/LJ003-0119.wav|tests/data/ljspeech/wavs/LJ003-0119.npy +tests/data/ljspeech/wavs/LJ038-0048.wav|tests/data/ljspeech/wavs/LJ038-0048.npy +tests/data/ljspeech/wavs/LJ039-0146.wav|tests/data/ljspeech/wavs/LJ039-0146.npy +tests/data/ljspeech/wavs/LJ049-0163.wav|tests/data/ljspeech/wavs/LJ049-0163.npy +tests/data/ljspeech/wavs/LJ027-0110.wav|tests/data/ljspeech/wavs/LJ027-0110.npy +tests/data/ljspeech/wavs/LJ031-0133.wav|tests/data/ljspeech/wavs/LJ031-0133.npy +tests/data/ljspeech/wavs/LJ048-0211.wav|tests/data/ljspeech/wavs/LJ048-0211.npy +tests/data/ljspeech/wavs/LJ040-0178.wav|tests/data/ljspeech/wavs/LJ040-0178.npy +tests/data/ljspeech/wavs/LJ013-0149.wav|tests/data/ljspeech/wavs/LJ013-0149.npy +tests/data/ljspeech/wavs/LJ024-0016.wav|tests/data/ljspeech/wavs/LJ024-0016.npy +tests/data/ljspeech/wavs/LJ013-0136.wav|tests/data/ljspeech/wavs/LJ013-0136.npy +tests/data/ljspeech/wavs/LJ049-0144.wav|tests/data/ljspeech/wavs/LJ049-0144.npy +tests/data/ljspeech/wavs/LJ030-0007.wav|tests/data/ljspeech/wavs/LJ030-0007.npy +tests/data/ljspeech/wavs/LJ013-0192.wav|tests/data/ljspeech/wavs/LJ013-0192.npy +tests/data/ljspeech/wavs/LJ027-0088.wav|tests/data/ljspeech/wavs/LJ027-0088.npy +tests/data/ljspeech/wavs/LJ012-0030.wav|tests/data/ljspeech/wavs/LJ012-0030.npy +tests/data/ljspeech/wavs/LJ029-0153.wav|tests/data/ljspeech/wavs/LJ029-0153.npy +tests/data/ljspeech/wavs/LJ033-0059.wav|tests/data/ljspeech/wavs/LJ033-0059.npy +tests/data/ljspeech/wavs/LJ016-0248.wav|tests/data/ljspeech/wavs/LJ016-0248.npy +tests/data/ljspeech/wavs/LJ027-0128.wav|tests/data/ljspeech/wavs/LJ027-0128.npy +tests/data/ljspeech/wavs/LJ027-0024.wav|tests/data/ljspeech/wavs/LJ027-0024.npy +tests/data/ljspeech/wavs/LJ033-0061.wav|tests/data/ljspeech/wavs/LJ033-0061.npy +tests/data/ljspeech/wavs/LJ040-0005.wav|tests/data/ljspeech/wavs/LJ040-0005.npy +tests/data/ljspeech/wavs/LJ028-0450.wav|tests/data/ljspeech/wavs/LJ028-0450.npy +tests/data/ljspeech/wavs/LJ047-0107.wav|tests/data/ljspeech/wavs/LJ047-0107.npy +tests/data/ljspeech/wavs/LJ028-0233.wav|tests/data/ljspeech/wavs/LJ028-0233.npy +tests/data/ljspeech/wavs/LJ016-0246.wav|tests/data/ljspeech/wavs/LJ016-0246.npy +tests/data/ljspeech/wavs/LJ014-0060.wav|tests/data/ljspeech/wavs/LJ014-0060.npy +tests/data/ljspeech/wavs/LJ010-0125.wav|tests/data/ljspeech/wavs/LJ010-0125.npy +tests/data/ljspeech/wavs/LJ012-0132.wav|tests/data/ljspeech/wavs/LJ012-0132.npy +tests/data/ljspeech/wavs/LJ037-0098.wav|tests/data/ljspeech/wavs/LJ037-0098.npy +tests/data/ljspeech/wavs/LJ016-0288.wav|tests/data/ljspeech/wavs/LJ016-0288.npy +tests/data/ljspeech/wavs/LJ013-0036.wav|tests/data/ljspeech/wavs/LJ013-0036.npy +tests/data/ljspeech/wavs/LJ009-0075.wav|tests/data/ljspeech/wavs/LJ009-0075.npy +tests/data/ljspeech/wavs/LJ033-0052.wav|tests/data/ljspeech/wavs/LJ033-0052.npy +tests/data/ljspeech/wavs/LJ042-0184.wav|tests/data/ljspeech/wavs/LJ042-0184.npy +tests/data/ljspeech/wavs/LJ031-0080.wav|tests/data/ljspeech/wavs/LJ031-0080.npy +tests/data/ljspeech/wavs/LJ026-0162.wav|tests/data/ljspeech/wavs/LJ026-0162.npy +tests/data/ljspeech/wavs/LJ042-0087.wav|tests/data/ljspeech/wavs/LJ042-0087.npy +tests/data/ljspeech/wavs/LJ042-0245.wav|tests/data/ljspeech/wavs/LJ042-0245.npy +tests/data/ljspeech/wavs/LJ040-0089.wav|tests/data/ljspeech/wavs/LJ040-0089.npy +tests/data/ljspeech/wavs/LJ048-0116.wav|tests/data/ljspeech/wavs/LJ048-0116.npy +tests/data/ljspeech/wavs/LJ050-0098.wav|tests/data/ljspeech/wavs/LJ050-0098.npy +tests/data/ljspeech/wavs/LJ019-0158.wav|tests/data/ljspeech/wavs/LJ019-0158.npy +tests/data/ljspeech/wavs/LJ014-0208.wav|tests/data/ljspeech/wavs/LJ014-0208.npy +tests/data/ljspeech/wavs/LJ010-0229.wav|tests/data/ljspeech/wavs/LJ010-0229.npy +tests/data/ljspeech/wavs/LJ038-0150.wav|tests/data/ljspeech/wavs/LJ038-0150.npy +tests/data/ljspeech/wavs/LJ028-0394.wav|tests/data/ljspeech/wavs/LJ028-0394.npy +tests/data/ljspeech/wavs/LJ014-0195.wav|tests/data/ljspeech/wavs/LJ014-0195.npy +tests/data/ljspeech/wavs/LJ007-0204.wav|tests/data/ljspeech/wavs/LJ007-0204.npy +tests/data/ljspeech/wavs/LJ018-0100.wav|tests/data/ljspeech/wavs/LJ018-0100.npy +tests/data/ljspeech/wavs/LJ017-0213.wav|tests/data/ljspeech/wavs/LJ017-0213.npy +tests/data/ljspeech/wavs/LJ026-0138.wav|tests/data/ljspeech/wavs/LJ026-0138.npy +tests/data/ljspeech/wavs/LJ014-0114.wav|tests/data/ljspeech/wavs/LJ014-0114.npy +tests/data/ljspeech/wavs/LJ049-0221.wav|tests/data/ljspeech/wavs/LJ049-0221.npy +tests/data/ljspeech/wavs/LJ038-0160.wav|tests/data/ljspeech/wavs/LJ038-0160.npy +tests/data/ljspeech/wavs/LJ037-0180.wav|tests/data/ljspeech/wavs/LJ037-0180.npy +tests/data/ljspeech/wavs/LJ034-0197.wav|tests/data/ljspeech/wavs/LJ034-0197.npy +tests/data/ljspeech/wavs/LJ014-0085.wav|tests/data/ljspeech/wavs/LJ014-0085.npy +tests/data/ljspeech/wavs/LJ040-0087.wav|tests/data/ljspeech/wavs/LJ040-0087.npy +tests/data/ljspeech/wavs/LJ017-0169.wav|tests/data/ljspeech/wavs/LJ017-0169.npy +tests/data/ljspeech/wavs/LJ031-0079.wav|tests/data/ljspeech/wavs/LJ031-0079.npy +tests/data/ljspeech/wavs/LJ006-0306.wav|tests/data/ljspeech/wavs/LJ006-0306.npy +tests/data/ljspeech/wavs/LJ014-0212.wav|tests/data/ljspeech/wavs/LJ014-0212.npy +tests/data/ljspeech/wavs/LJ018-0009.wav|tests/data/ljspeech/wavs/LJ018-0009.npy +tests/data/ljspeech/wavs/LJ048-0289.wav|tests/data/ljspeech/wavs/LJ048-0289.npy +tests/data/ljspeech/wavs/LJ046-0204.wav|tests/data/ljspeech/wavs/LJ046-0204.npy +tests/data/ljspeech/wavs/LJ026-0059.wav|tests/data/ljspeech/wavs/LJ026-0059.npy +tests/data/ljspeech/wavs/LJ011-0002.wav|tests/data/ljspeech/wavs/LJ011-0002.npy +tests/data/ljspeech/wavs/LJ004-0082.wav|tests/data/ljspeech/wavs/LJ004-0082.npy +tests/data/ljspeech/wavs/LJ036-0153.wav|tests/data/ljspeech/wavs/LJ036-0153.npy +tests/data/ljspeech/wavs/LJ050-0050.wav|tests/data/ljspeech/wavs/LJ050-0050.npy +tests/data/ljspeech/wavs/LJ007-0147.wav|tests/data/ljspeech/wavs/LJ007-0147.npy +tests/data/ljspeech/wavs/LJ044-0209.wav|tests/data/ljspeech/wavs/LJ044-0209.npy +tests/data/ljspeech/wavs/LJ047-0227.wav|tests/data/ljspeech/wavs/LJ047-0227.npy +tests/data/ljspeech/wavs/LJ006-0296.wav|tests/data/ljspeech/wavs/LJ006-0296.npy +tests/data/ljspeech/wavs/LJ038-0142.wav|tests/data/ljspeech/wavs/LJ038-0142.npy +tests/data/ljspeech/wavs/LJ028-0397.wav|tests/data/ljspeech/wavs/LJ028-0397.npy +tests/data/ljspeech/wavs/LJ047-0191.wav|tests/data/ljspeech/wavs/LJ047-0191.npy +tests/data/ljspeech/wavs/LJ042-0140.wav|tests/data/ljspeech/wavs/LJ042-0140.npy +tests/data/ljspeech/wavs/LJ021-0053.wav|tests/data/ljspeech/wavs/LJ021-0053.npy +tests/data/ljspeech/wavs/LJ028-0414.wav|tests/data/ljspeech/wavs/LJ028-0414.npy +tests/data/ljspeech/wavs/LJ017-0069.wav|tests/data/ljspeech/wavs/LJ017-0069.npy +tests/data/ljspeech/wavs/LJ019-0049.wav|tests/data/ljspeech/wavs/LJ019-0049.npy +tests/data/ljspeech/wavs/LJ010-0198.wav|tests/data/ljspeech/wavs/LJ010-0198.npy +tests/data/ljspeech/wavs/LJ020-0053.wav|tests/data/ljspeech/wavs/LJ020-0053.npy +tests/data/ljspeech/wavs/LJ014-0179.wav|tests/data/ljspeech/wavs/LJ014-0179.npy +tests/data/ljspeech/wavs/LJ030-0114.wav|tests/data/ljspeech/wavs/LJ030-0114.npy +tests/data/ljspeech/wavs/LJ006-0276.wav|tests/data/ljspeech/wavs/LJ006-0276.npy +tests/data/ljspeech/wavs/LJ014-0217.wav|tests/data/ljspeech/wavs/LJ014-0217.npy +tests/data/ljspeech/wavs/LJ007-0106.wav|tests/data/ljspeech/wavs/LJ007-0106.npy +tests/data/ljspeech/wavs/LJ034-0175.wav|tests/data/ljspeech/wavs/LJ034-0175.npy +tests/data/ljspeech/wavs/LJ017-0096.wav|tests/data/ljspeech/wavs/LJ017-0096.npy +tests/data/ljspeech/wavs/LJ036-0018.wav|tests/data/ljspeech/wavs/LJ036-0018.npy +tests/data/ljspeech/wavs/LJ033-0033.wav|tests/data/ljspeech/wavs/LJ033-0033.npy +tests/data/ljspeech/wavs/LJ014-0113.wav|tests/data/ljspeech/wavs/LJ014-0113.npy +tests/data/ljspeech/wavs/LJ035-0134.wav|tests/data/ljspeech/wavs/LJ035-0134.npy +tests/data/ljspeech/wavs/LJ016-0432.wav|tests/data/ljspeech/wavs/LJ016-0432.npy +tests/data/ljspeech/wavs/LJ032-0216.wav|tests/data/ljspeech/wavs/LJ032-0216.npy +tests/data/ljspeech/wavs/LJ011-0130.wav|tests/data/ljspeech/wavs/LJ011-0130.npy +tests/data/ljspeech/wavs/LJ036-0205.wav|tests/data/ljspeech/wavs/LJ036-0205.npy +tests/data/ljspeech/wavs/LJ012-0032.wav|tests/data/ljspeech/wavs/LJ012-0032.npy +tests/data/ljspeech/wavs/LJ019-0137.wav|tests/data/ljspeech/wavs/LJ019-0137.npy +tests/data/ljspeech/wavs/LJ032-0140.wav|tests/data/ljspeech/wavs/LJ032-0140.npy +tests/data/ljspeech/wavs/LJ020-0037.wav|tests/data/ljspeech/wavs/LJ020-0037.npy +tests/data/ljspeech/wavs/LJ013-0238.wav|tests/data/ljspeech/wavs/LJ013-0238.npy +tests/data/ljspeech/wavs/LJ011-0125.wav|tests/data/ljspeech/wavs/LJ011-0125.npy +tests/data/ljspeech/wavs/LJ027-0060.wav|tests/data/ljspeech/wavs/LJ027-0060.npy +tests/data/ljspeech/wavs/LJ019-0217.wav|tests/data/ljspeech/wavs/LJ019-0217.npy +tests/data/ljspeech/wavs/LJ048-0051.wav|tests/data/ljspeech/wavs/LJ048-0051.npy +tests/data/ljspeech/wavs/LJ046-0052.wav|tests/data/ljspeech/wavs/LJ046-0052.npy +tests/data/ljspeech/wavs/LJ028-0161.wav|tests/data/ljspeech/wavs/LJ028-0161.npy +tests/data/ljspeech/wavs/LJ039-0121.wav|tests/data/ljspeech/wavs/LJ039-0121.npy +tests/data/ljspeech/wavs/LJ006-0287.wav|tests/data/ljspeech/wavs/LJ006-0287.npy +tests/data/ljspeech/wavs/LJ015-0081.wav|tests/data/ljspeech/wavs/LJ015-0081.npy +tests/data/ljspeech/wavs/LJ011-0209.wav|tests/data/ljspeech/wavs/LJ011-0209.npy +tests/data/ljspeech/wavs/LJ004-0144.wav|tests/data/ljspeech/wavs/LJ004-0144.npy +tests/data/ljspeech/wavs/LJ003-0072.wav|tests/data/ljspeech/wavs/LJ003-0072.npy +tests/data/ljspeech/wavs/LJ030-0201.wav|tests/data/ljspeech/wavs/LJ030-0201.npy +tests/data/ljspeech/wavs/LJ012-0179.wav|tests/data/ljspeech/wavs/LJ012-0179.npy +tests/data/ljspeech/wavs/LJ006-0209.wav|tests/data/ljspeech/wavs/LJ006-0209.npy +tests/data/ljspeech/wavs/LJ002-0082.wav|tests/data/ljspeech/wavs/LJ002-0082.npy +tests/data/ljspeech/wavs/LJ050-0113.wav|tests/data/ljspeech/wavs/LJ050-0113.npy +tests/data/ljspeech/wavs/LJ019-0263.wav|tests/data/ljspeech/wavs/LJ019-0263.npy +tests/data/ljspeech/wavs/LJ002-0084.wav|tests/data/ljspeech/wavs/LJ002-0084.npy +tests/data/ljspeech/wavs/LJ011-0062.wav|tests/data/ljspeech/wavs/LJ011-0062.npy +tests/data/ljspeech/wavs/LJ014-0052.wav|tests/data/ljspeech/wavs/LJ014-0052.npy +tests/data/ljspeech/wavs/LJ032-0254.wav|tests/data/ljspeech/wavs/LJ032-0254.npy +tests/data/ljspeech/wavs/LJ020-0049.wav|tests/data/ljspeech/wavs/LJ020-0049.npy +tests/data/ljspeech/wavs/LJ001-0017.wav|tests/data/ljspeech/wavs/LJ001-0017.npy +tests/data/ljspeech/wavs/LJ016-0090.wav|tests/data/ljspeech/wavs/LJ016-0090.npy +tests/data/ljspeech/wavs/LJ048-0109.wav|tests/data/ljspeech/wavs/LJ048-0109.npy +tests/data/ljspeech/wavs/LJ012-0124.wav|tests/data/ljspeech/wavs/LJ012-0124.npy +tests/data/ljspeech/wavs/LJ018-0084.wav|tests/data/ljspeech/wavs/LJ018-0084.npy +tests/data/ljspeech/wavs/LJ041-0145.wav|tests/data/ljspeech/wavs/LJ041-0145.npy +tests/data/ljspeech/wavs/LJ003-0237.wav|tests/data/ljspeech/wavs/LJ003-0237.npy +tests/data/ljspeech/wavs/LJ006-0125.wav|tests/data/ljspeech/wavs/LJ006-0125.npy +tests/data/ljspeech/wavs/LJ033-0204.wav|tests/data/ljspeech/wavs/LJ033-0204.npy +tests/data/ljspeech/wavs/LJ011-0083.wav|tests/data/ljspeech/wavs/LJ011-0083.npy +tests/data/ljspeech/wavs/LJ016-0114.wav|tests/data/ljspeech/wavs/LJ016-0114.npy +tests/data/ljspeech/wavs/LJ006-0116.wav|tests/data/ljspeech/wavs/LJ006-0116.npy +tests/data/ljspeech/wavs/LJ041-0120.wav|tests/data/ljspeech/wavs/LJ041-0120.npy +tests/data/ljspeech/wavs/LJ018-0027.wav|tests/data/ljspeech/wavs/LJ018-0027.npy +tests/data/ljspeech/wavs/LJ045-0097.wav|tests/data/ljspeech/wavs/LJ045-0097.npy +tests/data/ljspeech/wavs/LJ050-0140.wav|tests/data/ljspeech/wavs/LJ050-0140.npy +tests/data/ljspeech/wavs/LJ009-0183.wav|tests/data/ljspeech/wavs/LJ009-0183.npy +tests/data/ljspeech/wavs/LJ029-0123.wav|tests/data/ljspeech/wavs/LJ029-0123.npy +tests/data/ljspeech/wavs/LJ019-0162.wav|tests/data/ljspeech/wavs/LJ019-0162.npy +tests/data/ljspeech/wavs/LJ008-0232.wav|tests/data/ljspeech/wavs/LJ008-0232.npy +tests/data/ljspeech/wavs/LJ036-0163.wav|tests/data/ljspeech/wavs/LJ036-0163.npy +tests/data/ljspeech/wavs/LJ018-0093.wav|tests/data/ljspeech/wavs/LJ018-0093.npy +tests/data/ljspeech/wavs/LJ021-0202.wav|tests/data/ljspeech/wavs/LJ021-0202.npy +tests/data/ljspeech/wavs/LJ050-0021.wav|tests/data/ljspeech/wavs/LJ050-0021.npy +tests/data/ljspeech/wavs/LJ045-0231.wav|tests/data/ljspeech/wavs/LJ045-0231.npy +tests/data/ljspeech/wavs/LJ006-0104.wav|tests/data/ljspeech/wavs/LJ006-0104.npy +tests/data/ljspeech/wavs/LJ009-0104.wav|tests/data/ljspeech/wavs/LJ009-0104.npy +tests/data/ljspeech/wavs/LJ016-0035.wav|tests/data/ljspeech/wavs/LJ016-0035.npy +tests/data/ljspeech/wavs/LJ008-0097.wav|tests/data/ljspeech/wavs/LJ008-0097.npy +tests/data/ljspeech/wavs/LJ016-0045.wav|tests/data/ljspeech/wavs/LJ016-0045.npy +tests/data/ljspeech/wavs/LJ009-0196.wav|tests/data/ljspeech/wavs/LJ009-0196.npy +tests/data/ljspeech/wavs/LJ006-0228.wav|tests/data/ljspeech/wavs/LJ006-0228.npy +tests/data/ljspeech/wavs/LJ003-0265.wav|tests/data/ljspeech/wavs/LJ003-0265.npy +tests/data/ljspeech/wavs/LJ032-0205.wav|tests/data/ljspeech/wavs/LJ032-0205.npy +tests/data/ljspeech/wavs/LJ044-0124.wav|tests/data/ljspeech/wavs/LJ044-0124.npy +tests/data/ljspeech/wavs/LJ027-0133.wav|tests/data/ljspeech/wavs/LJ027-0133.npy +tests/data/ljspeech/wavs/LJ037-0019.wav|tests/data/ljspeech/wavs/LJ037-0019.npy +tests/data/ljspeech/wavs/LJ037-0198.wav|tests/data/ljspeech/wavs/LJ037-0198.npy +tests/data/ljspeech/wavs/LJ012-0140.wav|tests/data/ljspeech/wavs/LJ012-0140.npy +tests/data/ljspeech/wavs/LJ047-0170.wav|tests/data/ljspeech/wavs/LJ047-0170.npy +tests/data/ljspeech/wavs/LJ003-0082.wav|tests/data/ljspeech/wavs/LJ003-0082.npy +tests/data/ljspeech/wavs/LJ019-0372.wav|tests/data/ljspeech/wavs/LJ019-0372.npy +tests/data/ljspeech/wavs/LJ025-0084.wav|tests/data/ljspeech/wavs/LJ025-0084.npy +tests/data/ljspeech/wavs/LJ021-0185.wav|tests/data/ljspeech/wavs/LJ021-0185.npy +tests/data/ljspeech/wavs/LJ016-0410.wav|tests/data/ljspeech/wavs/LJ016-0410.npy +tests/data/ljspeech/wavs/LJ021-0197.wav|tests/data/ljspeech/wavs/LJ021-0197.npy +tests/data/ljspeech/wavs/LJ004-0204.wav|tests/data/ljspeech/wavs/LJ004-0204.npy +tests/data/ljspeech/wavs/LJ013-0021.wav|tests/data/ljspeech/wavs/LJ013-0021.npy +tests/data/ljspeech/wavs/LJ037-0212.wav|tests/data/ljspeech/wavs/LJ037-0212.npy +tests/data/ljspeech/wavs/LJ049-0074.wav|tests/data/ljspeech/wavs/LJ049-0074.npy +tests/data/ljspeech/wavs/LJ010-0009.wav|tests/data/ljspeech/wavs/LJ010-0009.npy +tests/data/ljspeech/wavs/LJ025-0062.wav|tests/data/ljspeech/wavs/LJ025-0062.npy +tests/data/ljspeech/wavs/LJ015-0216.wav|tests/data/ljspeech/wavs/LJ015-0216.npy +tests/data/ljspeech/wavs/LJ036-0039.wav|tests/data/ljspeech/wavs/LJ036-0039.npy +tests/data/ljspeech/wavs/LJ039-0100.wav|tests/data/ljspeech/wavs/LJ039-0100.npy +tests/data/ljspeech/wavs/LJ045-0207.wav|tests/data/ljspeech/wavs/LJ045-0207.npy +tests/data/ljspeech/wavs/LJ006-0146.wav|tests/data/ljspeech/wavs/LJ006-0146.npy +tests/data/ljspeech/wavs/LJ038-0016.wav|tests/data/ljspeech/wavs/LJ038-0016.npy +tests/data/ljspeech/wavs/LJ007-0168.wav|tests/data/ljspeech/wavs/LJ007-0168.npy +tests/data/ljspeech/wavs/LJ035-0082.wav|tests/data/ljspeech/wavs/LJ035-0082.npy +tests/data/ljspeech/wavs/LJ045-0009.wav|tests/data/ljspeech/wavs/LJ045-0009.npy +tests/data/ljspeech/wavs/LJ008-0173.wav|tests/data/ljspeech/wavs/LJ008-0173.npy +tests/data/ljspeech/wavs/LJ033-0087.wav|tests/data/ljspeech/wavs/LJ033-0087.npy +tests/data/ljspeech/wavs/LJ001-0173.wav|tests/data/ljspeech/wavs/LJ001-0173.npy +tests/data/ljspeech/wavs/LJ016-0433.wav|tests/data/ljspeech/wavs/LJ016-0433.npy +tests/data/ljspeech/wavs/LJ044-0230.wav|tests/data/ljspeech/wavs/LJ044-0230.npy +tests/data/ljspeech/wavs/LJ003-0301.wav|tests/data/ljspeech/wavs/LJ003-0301.npy +tests/data/ljspeech/wavs/LJ037-0116.wav|tests/data/ljspeech/wavs/LJ037-0116.npy +tests/data/ljspeech/wavs/LJ049-0165.wav|tests/data/ljspeech/wavs/LJ049-0165.npy +tests/data/ljspeech/wavs/LJ024-0127.wav|tests/data/ljspeech/wavs/LJ024-0127.npy +tests/data/ljspeech/wavs/LJ025-0170.wav|tests/data/ljspeech/wavs/LJ025-0170.npy +tests/data/ljspeech/wavs/LJ021-0090.wav|tests/data/ljspeech/wavs/LJ021-0090.npy +tests/data/ljspeech/wavs/LJ015-0130.wav|tests/data/ljspeech/wavs/LJ015-0130.npy +tests/data/ljspeech/wavs/LJ019-0068.wav|tests/data/ljspeech/wavs/LJ019-0068.npy +tests/data/ljspeech/wavs/LJ044-0231.wav|tests/data/ljspeech/wavs/LJ044-0231.npy +tests/data/ljspeech/wavs/LJ016-0198.wav|tests/data/ljspeech/wavs/LJ016-0198.npy +tests/data/ljspeech/wavs/LJ021-0130.wav|tests/data/ljspeech/wavs/LJ021-0130.npy +tests/data/ljspeech/wavs/LJ033-0130.wav|tests/data/ljspeech/wavs/LJ033-0130.npy +tests/data/ljspeech/wavs/LJ004-0006.wav|tests/data/ljspeech/wavs/LJ004-0006.npy +tests/data/ljspeech/wavs/LJ039-0087.wav|tests/data/ljspeech/wavs/LJ039-0087.npy +tests/data/ljspeech/wavs/LJ013-0204.wav|tests/data/ljspeech/wavs/LJ013-0204.npy +tests/data/ljspeech/wavs/LJ021-0043.wav|tests/data/ljspeech/wavs/LJ021-0043.npy +tests/data/ljspeech/wavs/LJ038-0116.wav|tests/data/ljspeech/wavs/LJ038-0116.npy +tests/data/ljspeech/wavs/LJ002-0277.wav|tests/data/ljspeech/wavs/LJ002-0277.npy +tests/data/ljspeech/wavs/LJ018-0199.wav|tests/data/ljspeech/wavs/LJ018-0199.npy +tests/data/ljspeech/wavs/LJ039-0074.wav|tests/data/ljspeech/wavs/LJ039-0074.npy +tests/data/ljspeech/wavs/LJ015-0230.wav|tests/data/ljspeech/wavs/LJ015-0230.npy +tests/data/ljspeech/wavs/LJ014-0141.wav|tests/data/ljspeech/wavs/LJ014-0141.npy +tests/data/ljspeech/wavs/LJ003-0325.wav|tests/data/ljspeech/wavs/LJ003-0325.npy +tests/data/ljspeech/wavs/LJ025-0136.wav|tests/data/ljspeech/wavs/LJ025-0136.npy +tests/data/ljspeech/wavs/LJ046-0194.wav|tests/data/ljspeech/wavs/LJ046-0194.npy +tests/data/ljspeech/wavs/LJ035-0206.wav|tests/data/ljspeech/wavs/LJ035-0206.npy +tests/data/ljspeech/wavs/LJ016-0215.wav|tests/data/ljspeech/wavs/LJ016-0215.npy +tests/data/ljspeech/wavs/LJ019-0056.wav|tests/data/ljspeech/wavs/LJ019-0056.npy +tests/data/ljspeech/wavs/LJ017-0144.wav|tests/data/ljspeech/wavs/LJ017-0144.npy +tests/data/ljspeech/wavs/LJ030-0251.wav|tests/data/ljspeech/wavs/LJ030-0251.npy +tests/data/ljspeech/wavs/LJ004-0142.wav|tests/data/ljspeech/wavs/LJ004-0142.npy +tests/data/ljspeech/wavs/LJ029-0175.wav|tests/data/ljspeech/wavs/LJ029-0175.npy +tests/data/ljspeech/wavs/LJ005-0167.wav|tests/data/ljspeech/wavs/LJ005-0167.npy +tests/data/ljspeech/wavs/LJ046-0167.wav|tests/data/ljspeech/wavs/LJ046-0167.npy +tests/data/ljspeech/wavs/LJ006-0139.wav|tests/data/ljspeech/wavs/LJ006-0139.npy +tests/data/ljspeech/wavs/LJ030-0016.wav|tests/data/ljspeech/wavs/LJ030-0016.npy +tests/data/ljspeech/wavs/LJ044-0028.wav|tests/data/ljspeech/wavs/LJ044-0028.npy +tests/data/ljspeech/wavs/LJ016-0255.wav|tests/data/ljspeech/wavs/LJ016-0255.npy +tests/data/ljspeech/wavs/LJ038-0093.wav|tests/data/ljspeech/wavs/LJ038-0093.npy +tests/data/ljspeech/wavs/LJ010-0106.wav|tests/data/ljspeech/wavs/LJ010-0106.npy +tests/data/ljspeech/wavs/LJ041-0109.wav|tests/data/ljspeech/wavs/LJ041-0109.npy +tests/data/ljspeech/wavs/LJ040-0097.wav|tests/data/ljspeech/wavs/LJ040-0097.npy +tests/data/ljspeech/wavs/LJ010-0246.wav|tests/data/ljspeech/wavs/LJ010-0246.npy +tests/data/ljspeech/wavs/LJ011-0053.wav|tests/data/ljspeech/wavs/LJ011-0053.npy +tests/data/ljspeech/wavs/LJ030-0081.wav|tests/data/ljspeech/wavs/LJ030-0081.npy +tests/data/ljspeech/wavs/LJ001-0128.wav|tests/data/ljspeech/wavs/LJ001-0128.npy +tests/data/ljspeech/wavs/LJ030-0135.wav|tests/data/ljspeech/wavs/LJ030-0135.npy +tests/data/ljspeech/wavs/LJ005-0235.wav|tests/data/ljspeech/wavs/LJ005-0235.npy +tests/data/ljspeech/wavs/LJ031-0075.wav|tests/data/ljspeech/wavs/LJ031-0075.npy +tests/data/ljspeech/wavs/LJ046-0043.wav|tests/data/ljspeech/wavs/LJ046-0043.npy +tests/data/ljspeech/wavs/LJ010-0282.wav|tests/data/ljspeech/wavs/LJ010-0282.npy +tests/data/ljspeech/wavs/LJ019-0259.wav|tests/data/ljspeech/wavs/LJ019-0259.npy +tests/data/ljspeech/wavs/LJ008-0169.wav|tests/data/ljspeech/wavs/LJ008-0169.npy +tests/data/ljspeech/wavs/LJ024-0047.wav|tests/data/ljspeech/wavs/LJ024-0047.npy +tests/data/ljspeech/wavs/LJ041-0075.wav|tests/data/ljspeech/wavs/LJ041-0075.npy +tests/data/ljspeech/wavs/LJ038-0253.wav|tests/data/ljspeech/wavs/LJ038-0253.npy +tests/data/ljspeech/wavs/LJ001-0124.wav|tests/data/ljspeech/wavs/LJ001-0124.npy +tests/data/ljspeech/wavs/LJ007-0220.wav|tests/data/ljspeech/wavs/LJ007-0220.npy +tests/data/ljspeech/wavs/LJ028-0271.wav|tests/data/ljspeech/wavs/LJ028-0271.npy +tests/data/ljspeech/wavs/LJ001-0085.wav|tests/data/ljspeech/wavs/LJ001-0085.npy +tests/data/ljspeech/wavs/LJ001-0088.wav|tests/data/ljspeech/wavs/LJ001-0088.npy +tests/data/ljspeech/wavs/LJ028-0376.wav|tests/data/ljspeech/wavs/LJ028-0376.npy +tests/data/ljspeech/wavs/LJ014-0124.wav|tests/data/ljspeech/wavs/LJ014-0124.npy +tests/data/ljspeech/wavs/LJ046-0180.wav|tests/data/ljspeech/wavs/LJ046-0180.npy +tests/data/ljspeech/wavs/LJ042-0081.wav|tests/data/ljspeech/wavs/LJ042-0081.npy +tests/data/ljspeech/wavs/LJ030-0153.wav|tests/data/ljspeech/wavs/LJ030-0153.npy +tests/data/ljspeech/wavs/LJ029-0049.wav|tests/data/ljspeech/wavs/LJ029-0049.npy +tests/data/ljspeech/wavs/LJ043-0108.wav|tests/data/ljspeech/wavs/LJ043-0108.npy +tests/data/ljspeech/wavs/LJ029-0076.wav|tests/data/ljspeech/wavs/LJ029-0076.npy +tests/data/ljspeech/wavs/LJ008-0095.wav|tests/data/ljspeech/wavs/LJ008-0095.npy +tests/data/ljspeech/wavs/LJ027-0153.wav|tests/data/ljspeech/wavs/LJ027-0153.npy +tests/data/ljspeech/wavs/LJ040-0081.wav|tests/data/ljspeech/wavs/LJ040-0081.npy +tests/data/ljspeech/wavs/LJ049-0188.wav|tests/data/ljspeech/wavs/LJ049-0188.npy +tests/data/ljspeech/wavs/LJ005-0248.wav|tests/data/ljspeech/wavs/LJ005-0248.npy +tests/data/ljspeech/wavs/LJ032-0151.wav|tests/data/ljspeech/wavs/LJ032-0151.npy +tests/data/ljspeech/wavs/LJ010-0075.wav|tests/data/ljspeech/wavs/LJ010-0075.npy +tests/data/ljspeech/wavs/LJ008-0089.wav|tests/data/ljspeech/wavs/LJ008-0089.npy +tests/data/ljspeech/wavs/LJ005-0056.wav|tests/data/ljspeech/wavs/LJ005-0056.npy +tests/data/ljspeech/wavs/LJ039-0213.wav|tests/data/ljspeech/wavs/LJ039-0213.npy +tests/data/ljspeech/wavs/LJ005-0245.wav|tests/data/ljspeech/wavs/LJ005-0245.npy +tests/data/ljspeech/wavs/LJ048-0165.wav|tests/data/ljspeech/wavs/LJ048-0165.npy +tests/data/ljspeech/wavs/LJ010-0289.wav|tests/data/ljspeech/wavs/LJ010-0289.npy +tests/data/ljspeech/wavs/LJ050-0084.wav|tests/data/ljspeech/wavs/LJ050-0084.npy +tests/data/ljspeech/wavs/LJ008-0075.wav|tests/data/ljspeech/wavs/LJ008-0075.npy +tests/data/ljspeech/wavs/LJ028-0458.wav|tests/data/ljspeech/wavs/LJ028-0458.npy +tests/data/ljspeech/wavs/LJ030-0176.wav|tests/data/ljspeech/wavs/LJ030-0176.npy +tests/data/ljspeech/wavs/LJ030-0204.wav|tests/data/ljspeech/wavs/LJ030-0204.npy +tests/data/ljspeech/wavs/LJ042-0222.wav|tests/data/ljspeech/wavs/LJ042-0222.npy +tests/data/ljspeech/wavs/LJ028-0227.wav|tests/data/ljspeech/wavs/LJ028-0227.npy +tests/data/ljspeech/wavs/LJ006-0216.wav|tests/data/ljspeech/wavs/LJ006-0216.npy +tests/data/ljspeech/wavs/LJ032-0113.wav|tests/data/ljspeech/wavs/LJ032-0113.npy +tests/data/ljspeech/wavs/LJ040-0122.wav|tests/data/ljspeech/wavs/LJ040-0122.npy +tests/data/ljspeech/wavs/LJ011-0215.wav|tests/data/ljspeech/wavs/LJ011-0215.npy +tests/data/ljspeech/wavs/LJ032-0153.wav|tests/data/ljspeech/wavs/LJ032-0153.npy +tests/data/ljspeech/wavs/LJ032-0177.wav|tests/data/ljspeech/wavs/LJ032-0177.npy +tests/data/ljspeech/wavs/LJ034-0056.wav|tests/data/ljspeech/wavs/LJ034-0056.npy +tests/data/ljspeech/wavs/LJ009-0011.wav|tests/data/ljspeech/wavs/LJ009-0011.npy +tests/data/ljspeech/wavs/LJ041-0084.wav|tests/data/ljspeech/wavs/LJ041-0084.npy +tests/data/ljspeech/wavs/LJ045-0042.wav|tests/data/ljspeech/wavs/LJ045-0042.npy +tests/data/ljspeech/wavs/LJ045-0140.wav|tests/data/ljspeech/wavs/LJ045-0140.npy +tests/data/ljspeech/wavs/LJ045-0028.wav|tests/data/ljspeech/wavs/LJ045-0028.npy +tests/data/ljspeech/wavs/LJ025-0052.wav|tests/data/ljspeech/wavs/LJ025-0052.npy +tests/data/ljspeech/wavs/LJ033-0155.wav|tests/data/ljspeech/wavs/LJ033-0155.npy +tests/data/ljspeech/wavs/LJ041-0160.wav|tests/data/ljspeech/wavs/LJ041-0160.npy +tests/data/ljspeech/wavs/LJ009-0180.wav|tests/data/ljspeech/wavs/LJ009-0180.npy +tests/data/ljspeech/wavs/LJ041-0125.wav|tests/data/ljspeech/wavs/LJ041-0125.npy +tests/data/ljspeech/wavs/LJ031-0149.wav|tests/data/ljspeech/wavs/LJ031-0149.npy +tests/data/ljspeech/wavs/LJ001-0027.wav|tests/data/ljspeech/wavs/LJ001-0027.npy +tests/data/ljspeech/wavs/LJ033-0144.wav|tests/data/ljspeech/wavs/LJ033-0144.npy +tests/data/ljspeech/wavs/LJ029-0105.wav|tests/data/ljspeech/wavs/LJ029-0105.npy +tests/data/ljspeech/wavs/LJ030-0038.wav|tests/data/ljspeech/wavs/LJ030-0038.npy +tests/data/ljspeech/wavs/LJ029-0149.wav|tests/data/ljspeech/wavs/LJ029-0149.npy +tests/data/ljspeech/wavs/LJ003-0294.wav|tests/data/ljspeech/wavs/LJ003-0294.npy +tests/data/ljspeech/wavs/LJ050-0024.wav|tests/data/ljspeech/wavs/LJ050-0024.npy +tests/data/ljspeech/wavs/LJ017-0143.wav|tests/data/ljspeech/wavs/LJ017-0143.npy +tests/data/ljspeech/wavs/LJ031-0118.wav|tests/data/ljspeech/wavs/LJ031-0118.npy +tests/data/ljspeech/wavs/LJ016-0043.wav|tests/data/ljspeech/wavs/LJ016-0043.npy +tests/data/ljspeech/wavs/LJ001-0142.wav|tests/data/ljspeech/wavs/LJ001-0142.npy +tests/data/ljspeech/wavs/LJ016-0425.wav|tests/data/ljspeech/wavs/LJ016-0425.npy +tests/data/ljspeech/wavs/LJ016-0047.wav|tests/data/ljspeech/wavs/LJ016-0047.npy +tests/data/ljspeech/wavs/LJ009-0130.wav|tests/data/ljspeech/wavs/LJ009-0130.npy +tests/data/ljspeech/wavs/LJ002-0292.wav|tests/data/ljspeech/wavs/LJ002-0292.npy +tests/data/ljspeech/wavs/LJ050-0009.wav|tests/data/ljspeech/wavs/LJ050-0009.npy +tests/data/ljspeech/wavs/LJ034-0192.wav|tests/data/ljspeech/wavs/LJ034-0192.npy +tests/data/ljspeech/wavs/LJ007-0090.wav|tests/data/ljspeech/wavs/LJ007-0090.npy +tests/data/ljspeech/wavs/LJ030-0175.wav|tests/data/ljspeech/wavs/LJ030-0175.npy +tests/data/ljspeech/wavs/LJ009-0227.wav|tests/data/ljspeech/wavs/LJ009-0227.npy +tests/data/ljspeech/wavs/LJ030-0145.wav|tests/data/ljspeech/wavs/LJ030-0145.npy +tests/data/ljspeech/wavs/LJ034-0150.wav|tests/data/ljspeech/wavs/LJ034-0150.npy +tests/data/ljspeech/wavs/LJ042-0238.wav|tests/data/ljspeech/wavs/LJ042-0238.npy +tests/data/ljspeech/wavs/LJ019-0205.wav|tests/data/ljspeech/wavs/LJ019-0205.npy +tests/data/ljspeech/wavs/LJ031-0039.wav|tests/data/ljspeech/wavs/LJ031-0039.npy +tests/data/ljspeech/wavs/LJ050-0087.wav|tests/data/ljspeech/wavs/LJ050-0087.npy +tests/data/ljspeech/wavs/LJ047-0214.wav|tests/data/ljspeech/wavs/LJ047-0214.npy +tests/data/ljspeech/wavs/LJ015-0235.wav|tests/data/ljspeech/wavs/LJ015-0235.npy +tests/data/ljspeech/wavs/LJ049-0045.wav|tests/data/ljspeech/wavs/LJ049-0045.npy +tests/data/ljspeech/wavs/LJ031-0015.wav|tests/data/ljspeech/wavs/LJ031-0015.npy +tests/data/ljspeech/wavs/LJ019-0075.wav|tests/data/ljspeech/wavs/LJ019-0075.npy +tests/data/ljspeech/wavs/LJ048-0259.wav|tests/data/ljspeech/wavs/LJ048-0259.npy +tests/data/ljspeech/wavs/LJ046-0150.wav|tests/data/ljspeech/wavs/LJ046-0150.npy +tests/data/ljspeech/wavs/LJ046-0211.wav|tests/data/ljspeech/wavs/LJ046-0211.npy +tests/data/ljspeech/wavs/LJ043-0009.wav|tests/data/ljspeech/wavs/LJ043-0009.npy +tests/data/ljspeech/wavs/LJ017-0140.wav|tests/data/ljspeech/wavs/LJ017-0140.npy +tests/data/ljspeech/wavs/LJ018-0047.wav|tests/data/ljspeech/wavs/LJ018-0047.npy +tests/data/ljspeech/wavs/LJ018-0065.wav|tests/data/ljspeech/wavs/LJ018-0065.npy +tests/data/ljspeech/wavs/LJ003-0116.wav|tests/data/ljspeech/wavs/LJ003-0116.npy +tests/data/ljspeech/wavs/LJ017-0004.wav|tests/data/ljspeech/wavs/LJ017-0004.npy +tests/data/ljspeech/wavs/LJ034-0120.wav|tests/data/ljspeech/wavs/LJ034-0120.npy +tests/data/ljspeech/wavs/LJ018-0102.wav|tests/data/ljspeech/wavs/LJ018-0102.npy +tests/data/ljspeech/wavs/LJ017-0269.wav|tests/data/ljspeech/wavs/LJ017-0269.npy +tests/data/ljspeech/wavs/LJ019-0223.wav|tests/data/ljspeech/wavs/LJ019-0223.npy +tests/data/ljspeech/wavs/LJ021-0173.wav|tests/data/ljspeech/wavs/LJ021-0173.npy +tests/data/ljspeech/wavs/LJ003-0250.wav|tests/data/ljspeech/wavs/LJ003-0250.npy +tests/data/ljspeech/wavs/LJ050-0242.wav|tests/data/ljspeech/wavs/LJ050-0242.npy +tests/data/ljspeech/wavs/LJ021-0113.wav|tests/data/ljspeech/wavs/LJ021-0113.npy +tests/data/ljspeech/wavs/LJ006-0101.wav|tests/data/ljspeech/wavs/LJ006-0101.npy +tests/data/ljspeech/wavs/LJ017-0268.wav|tests/data/ljspeech/wavs/LJ017-0268.npy +tests/data/ljspeech/wavs/LJ007-0038.wav|tests/data/ljspeech/wavs/LJ007-0038.npy +tests/data/ljspeech/wavs/LJ031-0090.wav|tests/data/ljspeech/wavs/LJ031-0090.npy +tests/data/ljspeech/wavs/LJ044-0183.wav|tests/data/ljspeech/wavs/LJ044-0183.npy +tests/data/ljspeech/wavs/LJ038-0211.wav|tests/data/ljspeech/wavs/LJ038-0211.npy +tests/data/ljspeech/wavs/LJ026-0090.wav|tests/data/ljspeech/wavs/LJ026-0090.npy +tests/data/ljspeech/wavs/LJ040-0144.wav|tests/data/ljspeech/wavs/LJ040-0144.npy +tests/data/ljspeech/wavs/LJ011-0070.wav|tests/data/ljspeech/wavs/LJ011-0070.npy +tests/data/ljspeech/wavs/LJ008-0048.wav|tests/data/ljspeech/wavs/LJ008-0048.npy +tests/data/ljspeech/wavs/LJ050-0169.wav|tests/data/ljspeech/wavs/LJ050-0169.npy +tests/data/ljspeech/wavs/LJ046-0102.wav|tests/data/ljspeech/wavs/LJ046-0102.npy +tests/data/ljspeech/wavs/LJ032-0078.wav|tests/data/ljspeech/wavs/LJ032-0078.npy +tests/data/ljspeech/wavs/LJ046-0089.wav|tests/data/ljspeech/wavs/LJ046-0089.npy +tests/data/ljspeech/wavs/LJ044-0137.wav|tests/data/ljspeech/wavs/LJ044-0137.npy +tests/data/ljspeech/wavs/LJ049-0155.wav|tests/data/ljspeech/wavs/LJ049-0155.npy +tests/data/ljspeech/wavs/LJ049-0104.wav|tests/data/ljspeech/wavs/LJ049-0104.npy +tests/data/ljspeech/wavs/LJ050-0259.wav|tests/data/ljspeech/wavs/LJ050-0259.npy +tests/data/ljspeech/wavs/LJ003-0181.wav|tests/data/ljspeech/wavs/LJ003-0181.npy +tests/data/ljspeech/wavs/LJ014-0162.wav|tests/data/ljspeech/wavs/LJ014-0162.npy +tests/data/ljspeech/wavs/LJ032-0071.wav|tests/data/ljspeech/wavs/LJ032-0071.npy +tests/data/ljspeech/wavs/LJ015-0057.wav|tests/data/ljspeech/wavs/LJ015-0057.npy +tests/data/ljspeech/wavs/LJ010-0244.wav|tests/data/ljspeech/wavs/LJ010-0244.npy +tests/data/ljspeech/wavs/LJ011-0199.wav|tests/data/ljspeech/wavs/LJ011-0199.npy +tests/data/ljspeech/wavs/LJ010-0082.wav|tests/data/ljspeech/wavs/LJ010-0082.npy +tests/data/ljspeech/wavs/LJ013-0071.wav|tests/data/ljspeech/wavs/LJ013-0071.npy +tests/data/ljspeech/wavs/LJ005-0219.wav|tests/data/ljspeech/wavs/LJ005-0219.npy +tests/data/ljspeech/wavs/LJ031-0228.wav|tests/data/ljspeech/wavs/LJ031-0228.npy +tests/data/ljspeech/wavs/LJ010-0212.wav|tests/data/ljspeech/wavs/LJ010-0212.npy +tests/data/ljspeech/wavs/LJ011-0195.wav|tests/data/ljspeech/wavs/LJ011-0195.npy +tests/data/ljspeech/wavs/LJ028-0459.wav|tests/data/ljspeech/wavs/LJ028-0459.npy +tests/data/ljspeech/wavs/LJ021-0124.wav|tests/data/ljspeech/wavs/LJ021-0124.npy +tests/data/ljspeech/wavs/LJ049-0195.wav|tests/data/ljspeech/wavs/LJ049-0195.npy +tests/data/ljspeech/wavs/LJ047-0200.wav|tests/data/ljspeech/wavs/LJ047-0200.npy +tests/data/ljspeech/wavs/LJ009-0255.wav|tests/data/ljspeech/wavs/LJ009-0255.npy +tests/data/ljspeech/wavs/LJ012-0256.wav|tests/data/ljspeech/wavs/LJ012-0256.npy +tests/data/ljspeech/wavs/LJ032-0063.wav|tests/data/ljspeech/wavs/LJ032-0063.npy +tests/data/ljspeech/wavs/LJ032-0238.wav|tests/data/ljspeech/wavs/LJ032-0238.npy +tests/data/ljspeech/wavs/LJ007-0231.wav|tests/data/ljspeech/wavs/LJ007-0231.npy +tests/data/ljspeech/wavs/LJ026-0149.wav|tests/data/ljspeech/wavs/LJ026-0149.npy +tests/data/ljspeech/wavs/LJ027-0139.wav|tests/data/ljspeech/wavs/LJ027-0139.npy +tests/data/ljspeech/wavs/LJ044-0238.wav|tests/data/ljspeech/wavs/LJ044-0238.npy +tests/data/ljspeech/wavs/LJ011-0078.wav|tests/data/ljspeech/wavs/LJ011-0078.npy +tests/data/ljspeech/wavs/LJ005-0003.wav|tests/data/ljspeech/wavs/LJ005-0003.npy +tests/data/ljspeech/wavs/LJ044-0110.wav|tests/data/ljspeech/wavs/LJ044-0110.npy +tests/data/ljspeech/wavs/LJ005-0048.wav|tests/data/ljspeech/wavs/LJ005-0048.npy +tests/data/ljspeech/wavs/LJ007-0195.wav|tests/data/ljspeech/wavs/LJ007-0195.npy +tests/data/ljspeech/wavs/LJ005-0030.wav|tests/data/ljspeech/wavs/LJ005-0030.npy +tests/data/ljspeech/wavs/LJ004-0250.wav|tests/data/ljspeech/wavs/LJ004-0250.npy +tests/data/ljspeech/wavs/LJ017-0208.wav|tests/data/ljspeech/wavs/LJ017-0208.npy +tests/data/ljspeech/wavs/LJ049-0166.wav|tests/data/ljspeech/wavs/LJ049-0166.npy +tests/data/ljspeech/wavs/LJ048-0059.wav|tests/data/ljspeech/wavs/LJ048-0059.npy +tests/data/ljspeech/wavs/LJ029-0034.wav|tests/data/ljspeech/wavs/LJ029-0034.npy +tests/data/ljspeech/wavs/LJ014-0059.wav|tests/data/ljspeech/wavs/LJ014-0059.npy +tests/data/ljspeech/wavs/LJ026-0147.wav|tests/data/ljspeech/wavs/LJ026-0147.npy +tests/data/ljspeech/wavs/LJ028-0130.wav|tests/data/ljspeech/wavs/LJ028-0130.npy +tests/data/ljspeech/wavs/LJ038-0176.wav|tests/data/ljspeech/wavs/LJ038-0176.npy +tests/data/ljspeech/wavs/LJ025-0151.wav|tests/data/ljspeech/wavs/LJ025-0151.npy +tests/data/ljspeech/wavs/LJ011-0106.wav|tests/data/ljspeech/wavs/LJ011-0106.npy +tests/data/ljspeech/wavs/LJ036-0141.wav|tests/data/ljspeech/wavs/LJ036-0141.npy +tests/data/ljspeech/wavs/LJ034-0123.wav|tests/data/ljspeech/wavs/LJ034-0123.npy +tests/data/ljspeech/wavs/LJ050-0158.wav|tests/data/ljspeech/wavs/LJ050-0158.npy +tests/data/ljspeech/wavs/LJ033-0085.wav|tests/data/ljspeech/wavs/LJ033-0085.npy +tests/data/ljspeech/wavs/LJ005-0272.wav|tests/data/ljspeech/wavs/LJ005-0272.npy +tests/data/ljspeech/wavs/LJ011-0046.wav|tests/data/ljspeech/wavs/LJ011-0046.npy +tests/data/ljspeech/wavs/LJ014-0120.wav|tests/data/ljspeech/wavs/LJ014-0120.npy +tests/data/ljspeech/wavs/LJ018-0030.wav|tests/data/ljspeech/wavs/LJ018-0030.npy +tests/data/ljspeech/wavs/LJ012-0099.wav|tests/data/ljspeech/wavs/LJ012-0099.npy +tests/data/ljspeech/wavs/LJ044-0147.wav|tests/data/ljspeech/wavs/LJ044-0147.npy +tests/data/ljspeech/wavs/LJ035-0158.wav|tests/data/ljspeech/wavs/LJ035-0158.npy +tests/data/ljspeech/wavs/LJ019-0026.wav|tests/data/ljspeech/wavs/LJ019-0026.npy +tests/data/ljspeech/wavs/LJ039-0083.wav|tests/data/ljspeech/wavs/LJ039-0083.npy +tests/data/ljspeech/wavs/LJ019-0053.wav|tests/data/ljspeech/wavs/LJ019-0053.npy +tests/data/ljspeech/wavs/LJ047-0123.wav|tests/data/ljspeech/wavs/LJ047-0123.npy +tests/data/ljspeech/wavs/LJ018-0325.wav|tests/data/ljspeech/wavs/LJ018-0325.npy +tests/data/ljspeech/wavs/LJ028-0292.wav|tests/data/ljspeech/wavs/LJ028-0292.npy +tests/data/ljspeech/wavs/LJ048-0084.wav|tests/data/ljspeech/wavs/LJ048-0084.npy +tests/data/ljspeech/wavs/LJ048-0198.wav|tests/data/ljspeech/wavs/LJ048-0198.npy +tests/data/ljspeech/wavs/LJ028-0408.wav|tests/data/ljspeech/wavs/LJ028-0408.npy +tests/data/ljspeech/wavs/LJ045-0144.wav|tests/data/ljspeech/wavs/LJ045-0144.npy +tests/data/ljspeech/wavs/LJ013-0221.wav|tests/data/ljspeech/wavs/LJ013-0221.npy +tests/data/ljspeech/wavs/LJ012-0286.wav|tests/data/ljspeech/wavs/LJ012-0286.npy +tests/data/ljspeech/wavs/LJ039-0043.wav|tests/data/ljspeech/wavs/LJ039-0043.npy +tests/data/ljspeech/wavs/LJ032-0170.wav|tests/data/ljspeech/wavs/LJ032-0170.npy +tests/data/ljspeech/wavs/LJ035-0130.wav|tests/data/ljspeech/wavs/LJ035-0130.npy +tests/data/ljspeech/wavs/LJ046-0047.wav|tests/data/ljspeech/wavs/LJ046-0047.npy +tests/data/ljspeech/wavs/LJ019-0224.wav|tests/data/ljspeech/wavs/LJ019-0224.npy +tests/data/ljspeech/wavs/LJ031-0002.wav|tests/data/ljspeech/wavs/LJ031-0002.npy +tests/data/ljspeech/wavs/LJ005-0080.wav|tests/data/ljspeech/wavs/LJ005-0080.npy +tests/data/ljspeech/wavs/LJ042-0211.wav|tests/data/ljspeech/wavs/LJ042-0211.npy +tests/data/ljspeech/wavs/LJ047-0122.wav|tests/data/ljspeech/wavs/LJ047-0122.npy +tests/data/ljspeech/wavs/LJ020-0082.wav|tests/data/ljspeech/wavs/LJ020-0082.npy +tests/data/ljspeech/wavs/LJ020-0099.wav|tests/data/ljspeech/wavs/LJ020-0099.npy +tests/data/ljspeech/wavs/LJ007-0132.wav|tests/data/ljspeech/wavs/LJ007-0132.npy +tests/data/ljspeech/wavs/LJ035-0113.wav|tests/data/ljspeech/wavs/LJ035-0113.npy +tests/data/ljspeech/wavs/LJ019-0393.wav|tests/data/ljspeech/wavs/LJ019-0393.npy +tests/data/ljspeech/wavs/LJ007-0056.wav|tests/data/ljspeech/wavs/LJ007-0056.npy +tests/data/ljspeech/wavs/LJ039-0210.wav|tests/data/ljspeech/wavs/LJ039-0210.npy +tests/data/ljspeech/wavs/LJ007-0137.wav|tests/data/ljspeech/wavs/LJ007-0137.npy +tests/data/ljspeech/wavs/LJ006-0223.wav|tests/data/ljspeech/wavs/LJ006-0223.npy +tests/data/ljspeech/wavs/LJ033-0096.wav|tests/data/ljspeech/wavs/LJ033-0096.npy +tests/data/ljspeech/wavs/LJ003-0337.wav|tests/data/ljspeech/wavs/LJ003-0337.npy +tests/data/ljspeech/wavs/LJ025-0016.wav|tests/data/ljspeech/wavs/LJ025-0016.npy +tests/data/ljspeech/wavs/LJ009-0117.wav|tests/data/ljspeech/wavs/LJ009-0117.npy +tests/data/ljspeech/wavs/LJ004-0128.wav|tests/data/ljspeech/wavs/LJ004-0128.npy +tests/data/ljspeech/wavs/LJ037-0233.wav|tests/data/ljspeech/wavs/LJ037-0233.npy +tests/data/ljspeech/wavs/LJ040-0187.wav|tests/data/ljspeech/wavs/LJ040-0187.npy +tests/data/ljspeech/wavs/LJ029-0101.wav|tests/data/ljspeech/wavs/LJ029-0101.npy +tests/data/ljspeech/wavs/LJ015-0268.wav|tests/data/ljspeech/wavs/LJ015-0268.npy +tests/data/ljspeech/wavs/LJ029-0055.wav|tests/data/ljspeech/wavs/LJ029-0055.npy +tests/data/ljspeech/wavs/LJ025-0102.wav|tests/data/ljspeech/wavs/LJ025-0102.npy +tests/data/ljspeech/wavs/LJ025-0060.wav|tests/data/ljspeech/wavs/LJ025-0060.npy +tests/data/ljspeech/wavs/LJ006-0028.wav|tests/data/ljspeech/wavs/LJ006-0028.npy +tests/data/ljspeech/wavs/LJ037-0067.wav|tests/data/ljspeech/wavs/LJ037-0067.npy +tests/data/ljspeech/wavs/LJ037-0223.wav|tests/data/ljspeech/wavs/LJ037-0223.npy +tests/data/ljspeech/wavs/LJ015-0045.wav|tests/data/ljspeech/wavs/LJ015-0045.npy +tests/data/ljspeech/wavs/LJ016-0013.wav|tests/data/ljspeech/wavs/LJ016-0013.npy +tests/data/ljspeech/wavs/LJ010-0012.wav|tests/data/ljspeech/wavs/LJ010-0012.npy +tests/data/ljspeech/wavs/LJ014-0296.wav|tests/data/ljspeech/wavs/LJ014-0296.npy +tests/data/ljspeech/wavs/LJ029-0161.wav|tests/data/ljspeech/wavs/LJ029-0161.npy +tests/data/ljspeech/wavs/LJ016-0175.wav|tests/data/ljspeech/wavs/LJ016-0175.npy +tests/data/ljspeech/wavs/LJ026-0012.wav|tests/data/ljspeech/wavs/LJ026-0012.npy +tests/data/ljspeech/wavs/LJ005-0239.wav|tests/data/ljspeech/wavs/LJ005-0239.npy +tests/data/ljspeech/wavs/LJ046-0026.wav|tests/data/ljspeech/wavs/LJ046-0026.npy +tests/data/ljspeech/wavs/LJ044-0218.wav|tests/data/ljspeech/wavs/LJ044-0218.npy +tests/data/ljspeech/wavs/LJ009-0233.wav|tests/data/ljspeech/wavs/LJ009-0233.npy +tests/data/ljspeech/wavs/LJ002-0133.wav|tests/data/ljspeech/wavs/LJ002-0133.npy +tests/data/ljspeech/wavs/LJ025-0020.wav|tests/data/ljspeech/wavs/LJ025-0020.npy +tests/data/ljspeech/wavs/LJ004-0058.wav|tests/data/ljspeech/wavs/LJ004-0058.npy +tests/data/ljspeech/wavs/LJ009-0253.wav|tests/data/ljspeech/wavs/LJ009-0253.npy +tests/data/ljspeech/wavs/LJ009-0143.wav|tests/data/ljspeech/wavs/LJ009-0143.npy +tests/data/ljspeech/wavs/LJ050-0015.wav|tests/data/ljspeech/wavs/LJ050-0015.npy +tests/data/ljspeech/wavs/LJ034-0103.wav|tests/data/ljspeech/wavs/LJ034-0103.npy +tests/data/ljspeech/wavs/LJ028-0412.wav|tests/data/ljspeech/wavs/LJ028-0412.npy +tests/data/ljspeech/wavs/LJ045-0088.wav|tests/data/ljspeech/wavs/LJ045-0088.npy +tests/data/ljspeech/wavs/LJ044-0204.wav|tests/data/ljspeech/wavs/LJ044-0204.npy +tests/data/ljspeech/wavs/LJ044-0119.wav|tests/data/ljspeech/wavs/LJ044-0119.npy +tests/data/ljspeech/wavs/LJ017-0013.wav|tests/data/ljspeech/wavs/LJ017-0013.npy +tests/data/ljspeech/wavs/LJ008-0098.wav|tests/data/ljspeech/wavs/LJ008-0098.npy +tests/data/ljspeech/wavs/LJ042-0044.wav|tests/data/ljspeech/wavs/LJ042-0044.npy +tests/data/ljspeech/wavs/LJ029-0016.wav|tests/data/ljspeech/wavs/LJ029-0016.npy +tests/data/ljspeech/wavs/LJ049-0116.wav|tests/data/ljspeech/wavs/LJ049-0116.npy +tests/data/ljspeech/wavs/LJ002-0046.wav|tests/data/ljspeech/wavs/LJ002-0046.npy +tests/data/ljspeech/wavs/LJ016-0421.wav|tests/data/ljspeech/wavs/LJ016-0421.npy +tests/data/ljspeech/wavs/LJ025-0129.wav|tests/data/ljspeech/wavs/LJ025-0129.npy +tests/data/ljspeech/wavs/LJ037-0011.wav|tests/data/ljspeech/wavs/LJ037-0011.npy +tests/data/ljspeech/wavs/LJ026-0044.wav|tests/data/ljspeech/wavs/LJ026-0044.npy +tests/data/ljspeech/wavs/LJ014-0232.wav|tests/data/ljspeech/wavs/LJ014-0232.npy +tests/data/ljspeech/wavs/LJ033-0190.wav|tests/data/ljspeech/wavs/LJ033-0190.npy +tests/data/ljspeech/wavs/LJ008-0316.wav|tests/data/ljspeech/wavs/LJ008-0316.npy +tests/data/ljspeech/wavs/LJ037-0025.wav|tests/data/ljspeech/wavs/LJ037-0025.npy +tests/data/ljspeech/wavs/LJ037-0059.wav|tests/data/ljspeech/wavs/LJ037-0059.npy +tests/data/ljspeech/wavs/LJ041-0170.wav|tests/data/ljspeech/wavs/LJ041-0170.npy +tests/data/ljspeech/wavs/LJ032-0034.wav|tests/data/ljspeech/wavs/LJ032-0034.npy +tests/data/ljspeech/wavs/LJ016-0259.wav|tests/data/ljspeech/wavs/LJ016-0259.npy +tests/data/ljspeech/wavs/LJ006-0071.wav|tests/data/ljspeech/wavs/LJ006-0071.npy +tests/data/ljspeech/wavs/LJ033-0195.wav|tests/data/ljspeech/wavs/LJ033-0195.npy +tests/data/ljspeech/wavs/LJ008-0183.wav|tests/data/ljspeech/wavs/LJ008-0183.npy +tests/data/ljspeech/wavs/LJ008-0160.wav|tests/data/ljspeech/wavs/LJ008-0160.npy +tests/data/ljspeech/wavs/LJ029-0212.wav|tests/data/ljspeech/wavs/LJ029-0212.npy +tests/data/ljspeech/wavs/LJ048-0062.wav|tests/data/ljspeech/wavs/LJ048-0062.npy +tests/data/ljspeech/wavs/LJ014-0169.wav|tests/data/ljspeech/wavs/LJ014-0169.npy +tests/data/ljspeech/wavs/LJ033-0078.wav|tests/data/ljspeech/wavs/LJ033-0078.npy +tests/data/ljspeech/wavs/LJ048-0222.wav|tests/data/ljspeech/wavs/LJ048-0222.npy +tests/data/ljspeech/wavs/LJ011-0094.wav|tests/data/ljspeech/wavs/LJ011-0094.npy +tests/data/ljspeech/wavs/LJ004-0038.wav|tests/data/ljspeech/wavs/LJ004-0038.npy +tests/data/ljspeech/wavs/LJ045-0052.wav|tests/data/ljspeech/wavs/LJ045-0052.npy +tests/data/ljspeech/wavs/LJ045-0057.wav|tests/data/ljspeech/wavs/LJ045-0057.npy +tests/data/ljspeech/wavs/LJ041-0114.wav|tests/data/ljspeech/wavs/LJ041-0114.npy +tests/data/ljspeech/wavs/LJ025-0152.wav|tests/data/ljspeech/wavs/LJ025-0152.npy +tests/data/ljspeech/wavs/LJ020-0061.wav|tests/data/ljspeech/wavs/LJ020-0061.npy +tests/data/ljspeech/wavs/LJ047-0110.wav|tests/data/ljspeech/wavs/LJ047-0110.npy +tests/data/ljspeech/wavs/LJ032-0076.wav|tests/data/ljspeech/wavs/LJ032-0076.npy +tests/data/ljspeech/wavs/LJ037-0174.wav|tests/data/ljspeech/wavs/LJ037-0174.npy +tests/data/ljspeech/wavs/LJ048-0256.wav|tests/data/ljspeech/wavs/LJ048-0256.npy +tests/data/ljspeech/wavs/LJ022-0104.wav|tests/data/ljspeech/wavs/LJ022-0104.npy +tests/data/ljspeech/wavs/LJ030-0198.wav|tests/data/ljspeech/wavs/LJ030-0198.npy +tests/data/ljspeech/wavs/LJ041-0078.wav|tests/data/ljspeech/wavs/LJ041-0078.npy +tests/data/ljspeech/wavs/LJ011-0272.wav|tests/data/ljspeech/wavs/LJ011-0272.npy +tests/data/ljspeech/wavs/LJ006-0004.wav|tests/data/ljspeech/wavs/LJ006-0004.npy +tests/data/ljspeech/wavs/LJ005-0293.wav|tests/data/ljspeech/wavs/LJ005-0293.npy +tests/data/ljspeech/wavs/LJ032-0101.wav|tests/data/ljspeech/wavs/LJ032-0101.npy +tests/data/ljspeech/wavs/LJ008-0303.wav|tests/data/ljspeech/wavs/LJ008-0303.npy +tests/data/ljspeech/wavs/LJ008-0302.wav|tests/data/ljspeech/wavs/LJ008-0302.npy +tests/data/ljspeech/wavs/LJ009-0226.wav|tests/data/ljspeech/wavs/LJ009-0226.npy +tests/data/ljspeech/wavs/LJ001-0127.wav|tests/data/ljspeech/wavs/LJ001-0127.npy +tests/data/ljspeech/wavs/LJ009-0220.wav|tests/data/ljspeech/wavs/LJ009-0220.npy +tests/data/ljspeech/wavs/LJ003-0262.wav|tests/data/ljspeech/wavs/LJ003-0262.npy +tests/data/ljspeech/wavs/LJ016-0299.wav|tests/data/ljspeech/wavs/LJ016-0299.npy +tests/data/ljspeech/wavs/LJ028-0145.wav|tests/data/ljspeech/wavs/LJ028-0145.npy +tests/data/ljspeech/wavs/LJ028-0332.wav|tests/data/ljspeech/wavs/LJ028-0332.npy +tests/data/ljspeech/wavs/LJ022-0162.wav|tests/data/ljspeech/wavs/LJ022-0162.npy +tests/data/ljspeech/wavs/LJ048-0164.wav|tests/data/ljspeech/wavs/LJ048-0164.npy +tests/data/ljspeech/wavs/LJ038-0140.wav|tests/data/ljspeech/wavs/LJ038-0140.npy +tests/data/ljspeech/wavs/LJ016-0295.wav|tests/data/ljspeech/wavs/LJ016-0295.npy +tests/data/ljspeech/wavs/LJ001-0076.wav|tests/data/ljspeech/wavs/LJ001-0076.npy +tests/data/ljspeech/wavs/LJ007-0243.wav|tests/data/ljspeech/wavs/LJ007-0243.npy +tests/data/ljspeech/wavs/LJ044-0029.wav|tests/data/ljspeech/wavs/LJ044-0029.npy +tests/data/ljspeech/wavs/LJ044-0054.wav|tests/data/ljspeech/wavs/LJ044-0054.npy +tests/data/ljspeech/wavs/LJ011-0006.wav|tests/data/ljspeech/wavs/LJ011-0006.npy +tests/data/ljspeech/wavs/LJ006-0299.wav|tests/data/ljspeech/wavs/LJ006-0299.npy +tests/data/ljspeech/wavs/LJ046-0214.wav|tests/data/ljspeech/wavs/LJ046-0214.npy +tests/data/ljspeech/wavs/LJ018-0005.wav|tests/data/ljspeech/wavs/LJ018-0005.npy +tests/data/ljspeech/wavs/LJ050-0188.wav|tests/data/ljspeech/wavs/LJ050-0188.npy +tests/data/ljspeech/wavs/LJ036-0110.wav|tests/data/ljspeech/wavs/LJ036-0110.npy +tests/data/ljspeech/wavs/LJ018-0275.wav|tests/data/ljspeech/wavs/LJ018-0275.npy +tests/data/ljspeech/wavs/LJ005-0124.wav|tests/data/ljspeech/wavs/LJ005-0124.npy +tests/data/ljspeech/wavs/LJ016-0119.wav|tests/data/ljspeech/wavs/LJ016-0119.npy +tests/data/ljspeech/wavs/LJ003-0168.wav|tests/data/ljspeech/wavs/LJ003-0168.npy +tests/data/ljspeech/wavs/LJ045-0036.wav|tests/data/ljspeech/wavs/LJ045-0036.npy +tests/data/ljspeech/wavs/LJ019-0024.wav|tests/data/ljspeech/wavs/LJ019-0024.npy +tests/data/ljspeech/wavs/LJ007-0011.wav|tests/data/ljspeech/wavs/LJ007-0011.npy +tests/data/ljspeech/wavs/LJ040-0095.wav|tests/data/ljspeech/wavs/LJ040-0095.npy +tests/data/ljspeech/wavs/LJ039-0136.wav|tests/data/ljspeech/wavs/LJ039-0136.npy +tests/data/ljspeech/wavs/LJ010-0122.wav|tests/data/ljspeech/wavs/LJ010-0122.npy +tests/data/ljspeech/wavs/LJ011-0088.wav|tests/data/ljspeech/wavs/LJ011-0088.npy +tests/data/ljspeech/wavs/LJ037-0263.wav|tests/data/ljspeech/wavs/LJ037-0263.npy +tests/data/ljspeech/wavs/LJ014-0019.wav|tests/data/ljspeech/wavs/LJ014-0019.npy +tests/data/ljspeech/wavs/LJ007-0184.wav|tests/data/ljspeech/wavs/LJ007-0184.npy +tests/data/ljspeech/wavs/LJ005-0255.wav|tests/data/ljspeech/wavs/LJ005-0255.npy +tests/data/ljspeech/wavs/LJ007-0093.wav|tests/data/ljspeech/wavs/LJ007-0093.npy +tests/data/ljspeech/wavs/LJ035-0201.wav|tests/data/ljspeech/wavs/LJ035-0201.npy +tests/data/ljspeech/wavs/LJ015-0082.wav|tests/data/ljspeech/wavs/LJ015-0082.npy +tests/data/ljspeech/wavs/LJ010-0126.wav|tests/data/ljspeech/wavs/LJ010-0126.npy +tests/data/ljspeech/wavs/LJ005-0246.wav|tests/data/ljspeech/wavs/LJ005-0246.npy +tests/data/ljspeech/wavs/LJ037-0243.wav|tests/data/ljspeech/wavs/LJ037-0243.npy +tests/data/ljspeech/wavs/LJ015-0168.wav|tests/data/ljspeech/wavs/LJ015-0168.npy +tests/data/ljspeech/wavs/LJ007-0017.wav|tests/data/ljspeech/wavs/LJ007-0017.npy +tests/data/ljspeech/wavs/LJ044-0068.wav|tests/data/ljspeech/wavs/LJ044-0068.npy +tests/data/ljspeech/wavs/LJ011-0080.wav|tests/data/ljspeech/wavs/LJ011-0080.npy +tests/data/ljspeech/wavs/LJ005-0027.wav|tests/data/ljspeech/wavs/LJ005-0027.npy +tests/data/ljspeech/wavs/LJ044-0100.wav|tests/data/ljspeech/wavs/LJ044-0100.npy +tests/data/ljspeech/wavs/LJ012-0051.wav|tests/data/ljspeech/wavs/LJ012-0051.npy +tests/data/ljspeech/wavs/LJ046-0250.wav|tests/data/ljspeech/wavs/LJ046-0250.npy +tests/data/ljspeech/wavs/LJ011-0066.wav|tests/data/ljspeech/wavs/LJ011-0066.npy +tests/data/ljspeech/wavs/LJ049-0181.wav|tests/data/ljspeech/wavs/LJ049-0181.npy +tests/data/ljspeech/wavs/LJ011-0248.wav|tests/data/ljspeech/wavs/LJ011-0248.npy +tests/data/ljspeech/wavs/LJ012-0050.wav|tests/data/ljspeech/wavs/LJ012-0050.npy +tests/data/ljspeech/wavs/LJ050-0183.wav|tests/data/ljspeech/wavs/LJ050-0183.npy +tests/data/ljspeech/wavs/LJ007-0101.wav|tests/data/ljspeech/wavs/LJ007-0101.npy +tests/data/ljspeech/wavs/LJ032-0095.wav|tests/data/ljspeech/wavs/LJ032-0095.npy +tests/data/ljspeech/wavs/LJ018-0139.wav|tests/data/ljspeech/wavs/LJ018-0139.npy +tests/data/ljspeech/wavs/LJ046-0072.wav|tests/data/ljspeech/wavs/LJ046-0072.npy +tests/data/ljspeech/wavs/LJ019-0242.wav|tests/data/ljspeech/wavs/LJ019-0242.npy +tests/data/ljspeech/wavs/LJ005-0023.wav|tests/data/ljspeech/wavs/LJ005-0023.npy +tests/data/ljspeech/wavs/LJ049-0215.wav|tests/data/ljspeech/wavs/LJ049-0215.npy +tests/data/ljspeech/wavs/LJ004-0236.wav|tests/data/ljspeech/wavs/LJ004-0236.npy +tests/data/ljspeech/wavs/LJ040-0003.wav|tests/data/ljspeech/wavs/LJ040-0003.npy +tests/data/ljspeech/wavs/LJ014-0044.wav|tests/data/ljspeech/wavs/LJ014-0044.npy +tests/data/ljspeech/wavs/LJ042-0078.wav|tests/data/ljspeech/wavs/LJ042-0078.npy +tests/data/ljspeech/wavs/LJ039-0132.wav|tests/data/ljspeech/wavs/LJ039-0132.npy +tests/data/ljspeech/wavs/LJ039-0101.wav|tests/data/ljspeech/wavs/LJ039-0101.npy +tests/data/ljspeech/wavs/LJ011-0151.wav|tests/data/ljspeech/wavs/LJ011-0151.npy +tests/data/ljspeech/wavs/LJ035-0090.wav|tests/data/ljspeech/wavs/LJ035-0090.npy +tests/data/ljspeech/wavs/LJ012-0244.wav|tests/data/ljspeech/wavs/LJ012-0244.npy +tests/data/ljspeech/wavs/LJ028-0236.wav|tests/data/ljspeech/wavs/LJ028-0236.npy +tests/data/ljspeech/wavs/LJ006-0115.wav|tests/data/ljspeech/wavs/LJ006-0115.npy +tests/data/ljspeech/wavs/LJ032-0178.wav|tests/data/ljspeech/wavs/LJ032-0178.npy +tests/data/ljspeech/wavs/LJ002-0059.wav|tests/data/ljspeech/wavs/LJ002-0059.npy +tests/data/ljspeech/wavs/LJ013-0196.wav|tests/data/ljspeech/wavs/LJ013-0196.npy +tests/data/ljspeech/wavs/LJ005-0251.wav|tests/data/ljspeech/wavs/LJ005-0251.npy +tests/data/ljspeech/wavs/LJ031-0167.wav|tests/data/ljspeech/wavs/LJ031-0167.npy +tests/data/ljspeech/wavs/LJ006-0157.wav|tests/data/ljspeech/wavs/LJ006-0157.npy +tests/data/ljspeech/wavs/LJ029-0023.wav|tests/data/ljspeech/wavs/LJ029-0023.npy +tests/data/ljspeech/wavs/LJ047-0012.wav|tests/data/ljspeech/wavs/LJ047-0012.npy +tests/data/ljspeech/wavs/LJ047-0088.wav|tests/data/ljspeech/wavs/LJ047-0088.npy +tests/data/ljspeech/wavs/LJ043-0042.wav|tests/data/ljspeech/wavs/LJ043-0042.npy +tests/data/ljspeech/wavs/LJ011-0031.wav|tests/data/ljspeech/wavs/LJ011-0031.npy +tests/data/ljspeech/wavs/LJ007-0117.wav|tests/data/ljspeech/wavs/LJ007-0117.npy +tests/data/ljspeech/wavs/LJ007-0109.wav|tests/data/ljspeech/wavs/LJ007-0109.npy +tests/data/ljspeech/wavs/LJ040-0204.wav|tests/data/ljspeech/wavs/LJ040-0204.npy +tests/data/ljspeech/wavs/LJ050-0176.wav|tests/data/ljspeech/wavs/LJ050-0176.npy +tests/data/ljspeech/wavs/LJ031-0032.wav|tests/data/ljspeech/wavs/LJ031-0032.npy +tests/data/ljspeech/wavs/LJ013-0100.wav|tests/data/ljspeech/wavs/LJ013-0100.npy +tests/data/ljspeech/wavs/LJ028-0444.wav|tests/data/ljspeech/wavs/LJ028-0444.npy +tests/data/ljspeech/wavs/LJ043-0033.wav|tests/data/ljspeech/wavs/LJ043-0033.npy +tests/data/ljspeech/wavs/LJ048-0081.wav|tests/data/ljspeech/wavs/LJ048-0081.npy +tests/data/ljspeech/wavs/LJ008-0284.wav|tests/data/ljspeech/wavs/LJ008-0284.npy +tests/data/ljspeech/wavs/LJ006-0149.wav|tests/data/ljspeech/wavs/LJ006-0149.npy +tests/data/ljspeech/wavs/LJ040-0168.wav|tests/data/ljspeech/wavs/LJ040-0168.npy +tests/data/ljspeech/wavs/LJ006-0279.wav|tests/data/ljspeech/wavs/LJ006-0279.npy +tests/data/ljspeech/wavs/LJ042-0153.wav|tests/data/ljspeech/wavs/LJ042-0153.npy +tests/data/ljspeech/wavs/LJ008-0171.wav|tests/data/ljspeech/wavs/LJ008-0171.npy +tests/data/ljspeech/wavs/LJ010-0010.wav|tests/data/ljspeech/wavs/LJ010-0010.npy +tests/data/ljspeech/wavs/LJ030-0125.wav|tests/data/ljspeech/wavs/LJ030-0125.npy +tests/data/ljspeech/wavs/LJ030-0013.wav|tests/data/ljspeech/wavs/LJ030-0013.npy +tests/data/ljspeech/wavs/LJ008-0121.wav|tests/data/ljspeech/wavs/LJ008-0121.npy +tests/data/ljspeech/wavs/LJ008-0056.wav|tests/data/ljspeech/wavs/LJ008-0056.npy +tests/data/ljspeech/wavs/LJ007-0234.wav|tests/data/ljspeech/wavs/LJ007-0234.npy +tests/data/ljspeech/wavs/LJ050-0276.wav|tests/data/ljspeech/wavs/LJ050-0276.npy +tests/data/ljspeech/wavs/LJ043-0027.wav|tests/data/ljspeech/wavs/LJ043-0027.npy +tests/data/ljspeech/wavs/LJ010-0254.wav|tests/data/ljspeech/wavs/LJ010-0254.npy +tests/data/ljspeech/wavs/LJ014-0320.wav|tests/data/ljspeech/wavs/LJ014-0320.npy +tests/data/ljspeech/wavs/LJ043-0145.wav|tests/data/ljspeech/wavs/LJ043-0145.npy +tests/data/ljspeech/wavs/LJ045-0122.wav|tests/data/ljspeech/wavs/LJ045-0122.npy +tests/data/ljspeech/wavs/LJ016-0244.wav|tests/data/ljspeech/wavs/LJ016-0244.npy +tests/data/ljspeech/wavs/LJ033-0179.wav|tests/data/ljspeech/wavs/LJ033-0179.npy +tests/data/ljspeech/wavs/LJ004-0022.wav|tests/data/ljspeech/wavs/LJ004-0022.npy +tests/data/ljspeech/wavs/LJ041-0092.wav|tests/data/ljspeech/wavs/LJ041-0092.npy +tests/data/ljspeech/wavs/LJ041-0107.wav|tests/data/ljspeech/wavs/LJ041-0107.npy +tests/data/ljspeech/wavs/LJ004-0048.wav|tests/data/ljspeech/wavs/LJ004-0048.npy +tests/data/ljspeech/wavs/LJ041-0179.wav|tests/data/ljspeech/wavs/LJ041-0179.npy +tests/data/ljspeech/wavs/LJ018-0324.wav|tests/data/ljspeech/wavs/LJ018-0324.npy +tests/data/ljspeech/wavs/LJ025-0147.wav|tests/data/ljspeech/wavs/LJ025-0147.npy +tests/data/ljspeech/wavs/LJ004-0041.wav|tests/data/ljspeech/wavs/LJ004-0041.npy +tests/data/ljspeech/wavs/LJ046-0184.wav|tests/data/ljspeech/wavs/LJ046-0184.npy +tests/data/ljspeech/wavs/LJ016-0309.wav|tests/data/ljspeech/wavs/LJ016-0309.npy +tests/data/ljspeech/wavs/LJ027-0116.wav|tests/data/ljspeech/wavs/LJ027-0116.npy +tests/data/ljspeech/wavs/LJ031-0144.wav|tests/data/ljspeech/wavs/LJ031-0144.npy +tests/data/ljspeech/wavs/LJ014-0255.wav|tests/data/ljspeech/wavs/LJ014-0255.npy +tests/data/ljspeech/wavs/LJ016-0196.wav|tests/data/ljspeech/wavs/LJ016-0196.npy +tests/data/ljspeech/wavs/LJ036-0041.wav|tests/data/ljspeech/wavs/LJ036-0041.npy +tests/data/ljspeech/wavs/LJ016-0271.wav|tests/data/ljspeech/wavs/LJ016-0271.npy +tests/data/ljspeech/wavs/LJ038-0004.wav|tests/data/ljspeech/wavs/LJ038-0004.npy +tests/data/ljspeech/wavs/LJ015-0249.wav|tests/data/ljspeech/wavs/LJ015-0249.npy +tests/data/ljspeech/wavs/LJ003-0338.wav|tests/data/ljspeech/wavs/LJ003-0338.npy +tests/data/ljspeech/wavs/LJ041-0146.wav|tests/data/ljspeech/wavs/LJ041-0146.npy +tests/data/ljspeech/wavs/LJ002-0218.wav|tests/data/ljspeech/wavs/LJ002-0218.npy +tests/data/ljspeech/wavs/LJ003-0163.wav|tests/data/ljspeech/wavs/LJ003-0163.npy +tests/data/ljspeech/wavs/LJ003-0333.wav|tests/data/ljspeech/wavs/LJ003-0333.npy +tests/data/ljspeech/wavs/LJ045-0070.wav|tests/data/ljspeech/wavs/LJ045-0070.npy +tests/data/ljspeech/wavs/LJ047-0067.wav|tests/data/ljspeech/wavs/LJ047-0067.npy +tests/data/ljspeech/wavs/LJ016-0123.wav|tests/data/ljspeech/wavs/LJ016-0123.npy +tests/data/ljspeech/wavs/LJ016-0322.wav|tests/data/ljspeech/wavs/LJ016-0322.npy +tests/data/ljspeech/wavs/LJ035-0084.wav|tests/data/ljspeech/wavs/LJ035-0084.npy +tests/data/ljspeech/wavs/LJ026-0077.wav|tests/data/ljspeech/wavs/LJ026-0077.npy +tests/data/ljspeech/wavs/LJ002-0308.wav|tests/data/ljspeech/wavs/LJ002-0308.npy +tests/data/ljspeech/wavs/LJ035-0145.wav|tests/data/ljspeech/wavs/LJ035-0145.npy +tests/data/ljspeech/wavs/LJ044-0193.wav|tests/data/ljspeech/wavs/LJ044-0193.npy +tests/data/ljspeech/wavs/LJ014-0211.wav|tests/data/ljspeech/wavs/LJ014-0211.npy +tests/data/ljspeech/wavs/LJ003-0026.wav|tests/data/ljspeech/wavs/LJ003-0026.npy +tests/data/ljspeech/wavs/LJ046-0045.wav|tests/data/ljspeech/wavs/LJ046-0045.npy +tests/data/ljspeech/wavs/LJ019-0391.wav|tests/data/ljspeech/wavs/LJ019-0391.npy +tests/data/ljspeech/wavs/LJ027-0008.wav|tests/data/ljspeech/wavs/LJ027-0008.npy +tests/data/ljspeech/wavs/LJ042-0018.wav|tests/data/ljspeech/wavs/LJ042-0018.npy +tests/data/ljspeech/wavs/LJ027-0070.wav|tests/data/ljspeech/wavs/LJ027-0070.npy +tests/data/ljspeech/wavs/LJ016-0391.wav|tests/data/ljspeech/wavs/LJ016-0391.npy +tests/data/ljspeech/wavs/LJ034-0069.wav|tests/data/ljspeech/wavs/LJ034-0069.npy +tests/data/ljspeech/wavs/LJ019-0398.wav|tests/data/ljspeech/wavs/LJ019-0398.npy +tests/data/ljspeech/wavs/LJ002-0168.wav|tests/data/ljspeech/wavs/LJ002-0168.npy +tests/data/ljspeech/wavs/LJ016-0344.wav|tests/data/ljspeech/wavs/LJ016-0344.npy +tests/data/ljspeech/wavs/LJ049-0140.wav|tests/data/ljspeech/wavs/LJ049-0140.npy +tests/data/ljspeech/wavs/LJ003-0239.wav|tests/data/ljspeech/wavs/LJ003-0239.npy +tests/data/ljspeech/wavs/LJ014-0171.wav|tests/data/ljspeech/wavs/LJ014-0171.npy +tests/data/ljspeech/wavs/LJ035-0122.wav|tests/data/ljspeech/wavs/LJ035-0122.npy +tests/data/ljspeech/wavs/LJ038-0242.wav|tests/data/ljspeech/wavs/LJ038-0242.npy +tests/data/ljspeech/wavs/LJ035-0111.wav|tests/data/ljspeech/wavs/LJ035-0111.npy +tests/data/ljspeech/wavs/LJ014-0016.wav|tests/data/ljspeech/wavs/LJ014-0016.npy +tests/data/ljspeech/wavs/LJ016-0408.wav|tests/data/ljspeech/wavs/LJ016-0408.npy +tests/data/ljspeech/wavs/LJ019-0163.wav|tests/data/ljspeech/wavs/LJ019-0163.npy +tests/data/ljspeech/wavs/LJ013-0214.wav|tests/data/ljspeech/wavs/LJ013-0214.npy +tests/data/ljspeech/wavs/LJ014-0246.wav|tests/data/ljspeech/wavs/LJ014-0246.npy +tests/data/ljspeech/wavs/LJ014-0106.wav|tests/data/ljspeech/wavs/LJ014-0106.npy +tests/data/ljspeech/wavs/LJ002-0185.wav|tests/data/ljspeech/wavs/LJ002-0185.npy +tests/data/ljspeech/wavs/LJ017-0085.wav|tests/data/ljspeech/wavs/LJ017-0085.npy +tests/data/ljspeech/wavs/LJ035-0123.wav|tests/data/ljspeech/wavs/LJ035-0123.npy +tests/data/ljspeech/wavs/LJ042-0135.wav|tests/data/ljspeech/wavs/LJ042-0135.npy +tests/data/ljspeech/wavs/LJ035-0086.wav|tests/data/ljspeech/wavs/LJ035-0086.npy +tests/data/ljspeech/wavs/LJ031-0078.wav|tests/data/ljspeech/wavs/LJ031-0078.npy +tests/data/ljspeech/wavs/LJ045-0183.wav|tests/data/ljspeech/wavs/LJ045-0183.npy +tests/data/ljspeech/wavs/LJ015-0132.wav|tests/data/ljspeech/wavs/LJ015-0132.npy +tests/data/ljspeech/wavs/LJ035-0207.wav|tests/data/ljspeech/wavs/LJ035-0207.npy +tests/data/ljspeech/wavs/LJ003-0069.wav|tests/data/ljspeech/wavs/LJ003-0069.npy +tests/data/ljspeech/wavs/LJ047-0145.wav|tests/data/ljspeech/wavs/LJ047-0145.npy +tests/data/ljspeech/wavs/LJ019-0170.wav|tests/data/ljspeech/wavs/LJ019-0170.npy +tests/data/ljspeech/wavs/LJ034-0162.wav|tests/data/ljspeech/wavs/LJ034-0162.npy +tests/data/ljspeech/wavs/LJ047-0242.wav|tests/data/ljspeech/wavs/LJ047-0242.npy +tests/data/ljspeech/wavs/LJ018-0235.wav|tests/data/ljspeech/wavs/LJ018-0235.npy +tests/data/ljspeech/wavs/LJ006-0130.wav|tests/data/ljspeech/wavs/LJ006-0130.npy +tests/data/ljspeech/wavs/LJ041-0088.wav|tests/data/ljspeech/wavs/LJ041-0088.npy +tests/data/ljspeech/wavs/LJ048-0118.wav|tests/data/ljspeech/wavs/LJ048-0118.npy +tests/data/ljspeech/wavs/LJ008-0184.wav|tests/data/ljspeech/wavs/LJ008-0184.npy +tests/data/ljspeech/wavs/LJ019-0086.wav|tests/data/ljspeech/wavs/LJ019-0086.npy +tests/data/ljspeech/wavs/LJ048-0126.wav|tests/data/ljspeech/wavs/LJ048-0126.npy +tests/data/ljspeech/wavs/LJ041-0124.wav|tests/data/ljspeech/wavs/LJ041-0124.npy +tests/data/ljspeech/wavs/LJ020-0077.wav|tests/data/ljspeech/wavs/LJ020-0077.npy +tests/data/ljspeech/wavs/LJ047-0034.wav|tests/data/ljspeech/wavs/LJ047-0034.npy +tests/data/ljspeech/wavs/LJ003-0169.wav|tests/data/ljspeech/wavs/LJ003-0169.npy +tests/data/ljspeech/wavs/LJ013-0139.wav|tests/data/ljspeech/wavs/LJ013-0139.npy +tests/data/ljspeech/wavs/LJ007-0084.wav|tests/data/ljspeech/wavs/LJ007-0084.npy +tests/data/ljspeech/wavs/LJ030-0096.wav|tests/data/ljspeech/wavs/LJ030-0096.npy +tests/data/ljspeech/wavs/LJ018-0234.wav|tests/data/ljspeech/wavs/LJ018-0234.npy +tests/data/ljspeech/wavs/LJ001-0005.wav|tests/data/ljspeech/wavs/LJ001-0005.npy +tests/data/ljspeech/wavs/LJ030-0217.wav|tests/data/ljspeech/wavs/LJ030-0217.npy +tests/data/ljspeech/wavs/LJ048-0153.wav|tests/data/ljspeech/wavs/LJ048-0153.npy +tests/data/ljspeech/wavs/LJ016-0371.wav|tests/data/ljspeech/wavs/LJ016-0371.npy +tests/data/ljspeech/wavs/LJ022-0020.wav|tests/data/ljspeech/wavs/LJ022-0020.npy +tests/data/ljspeech/wavs/LJ006-0274.wav|tests/data/ljspeech/wavs/LJ006-0274.npy +tests/data/ljspeech/wavs/LJ045-0227.wav|tests/data/ljspeech/wavs/LJ045-0227.npy +tests/data/ljspeech/wavs/LJ040-0053.wav|tests/data/ljspeech/wavs/LJ040-0053.npy +tests/data/ljspeech/wavs/LJ016-0329.wav|tests/data/ljspeech/wavs/LJ016-0329.npy +tests/data/ljspeech/wavs/LJ044-0162.wav|tests/data/ljspeech/wavs/LJ044-0162.npy +tests/data/ljspeech/wavs/LJ044-0088.wav|tests/data/ljspeech/wavs/LJ044-0088.npy +tests/data/ljspeech/wavs/LJ011-0096.wav|tests/data/ljspeech/wavs/LJ011-0096.npy +tests/data/ljspeech/wavs/LJ039-0226.wav|tests/data/ljspeech/wavs/LJ039-0226.npy +tests/data/ljspeech/wavs/LJ001-0171.wav|tests/data/ljspeech/wavs/LJ001-0171.npy +tests/data/ljspeech/wavs/LJ002-0181.wav|tests/data/ljspeech/wavs/LJ002-0181.npy +tests/data/ljspeech/wavs/LJ012-0115.wav|tests/data/ljspeech/wavs/LJ012-0115.npy +tests/data/ljspeech/wavs/LJ005-0046.wav|tests/data/ljspeech/wavs/LJ005-0046.npy +tests/data/ljspeech/wavs/LJ004-0085.wav|tests/data/ljspeech/wavs/LJ004-0085.npy +tests/data/ljspeech/wavs/LJ004-0093.wav|tests/data/ljspeech/wavs/LJ004-0093.npy +tests/data/ljspeech/wavs/LJ022-0127.wav|tests/data/ljspeech/wavs/LJ022-0127.npy +tests/data/ljspeech/wavs/LJ009-0155.wav|tests/data/ljspeech/wavs/LJ009-0155.npy +tests/data/ljspeech/wavs/LJ032-0184.wav|tests/data/ljspeech/wavs/LJ032-0184.npy +tests/data/ljspeech/wavs/LJ038-0214.wav|tests/data/ljspeech/wavs/LJ038-0214.npy +tests/data/ljspeech/wavs/LJ049-0147.wav|tests/data/ljspeech/wavs/LJ049-0147.npy +tests/data/ljspeech/wavs/LJ048-0018.wav|tests/data/ljspeech/wavs/LJ048-0018.npy +tests/data/ljspeech/wavs/LJ006-0015.wav|tests/data/ljspeech/wavs/LJ006-0015.npy +tests/data/ljspeech/wavs/LJ004-0037.wav|tests/data/ljspeech/wavs/LJ004-0037.npy +tests/data/ljspeech/wavs/LJ012-0066.wav|tests/data/ljspeech/wavs/LJ012-0066.npy +tests/data/ljspeech/wavs/LJ025-0119.wav|tests/data/ljspeech/wavs/LJ025-0119.npy +tests/data/ljspeech/wavs/LJ031-0178.wav|tests/data/ljspeech/wavs/LJ031-0178.npy +tests/data/ljspeech/wavs/LJ013-0145.wav|tests/data/ljspeech/wavs/LJ013-0145.npy +tests/data/ljspeech/wavs/LJ014-0103.wav|tests/data/ljspeech/wavs/LJ014-0103.npy +tests/data/ljspeech/wavs/LJ014-0326.wav|tests/data/ljspeech/wavs/LJ014-0326.npy +tests/data/ljspeech/wavs/LJ026-0100.wav|tests/data/ljspeech/wavs/LJ026-0100.npy +tests/data/ljspeech/wavs/LJ014-0149.wav|tests/data/ljspeech/wavs/LJ014-0149.npy +tests/data/ljspeech/wavs/LJ016-0356.wav|tests/data/ljspeech/wavs/LJ016-0356.npy +tests/data/ljspeech/wavs/LJ025-0071.wav|tests/data/ljspeech/wavs/LJ025-0071.npy +tests/data/ljspeech/wavs/LJ002-0318.wav|tests/data/ljspeech/wavs/LJ002-0318.npy +tests/data/ljspeech/wavs/LJ049-0129.wav|tests/data/ljspeech/wavs/LJ049-0129.npy +tests/data/ljspeech/wavs/LJ041-0019.wav|tests/data/ljspeech/wavs/LJ041-0019.npy +tests/data/ljspeech/wavs/LJ044-0005.wav|tests/data/ljspeech/wavs/LJ044-0005.npy +tests/data/ljspeech/wavs/LJ040-0056.wav|tests/data/ljspeech/wavs/LJ040-0056.npy +tests/data/ljspeech/wavs/LJ046-0207.wav|tests/data/ljspeech/wavs/LJ046-0207.npy +tests/data/ljspeech/wavs/LJ047-0044.wav|tests/data/ljspeech/wavs/LJ047-0044.npy +tests/data/ljspeech/wavs/LJ017-0078.wav|tests/data/ljspeech/wavs/LJ017-0078.npy +tests/data/ljspeech/wavs/LJ050-0082.wav|tests/data/ljspeech/wavs/LJ050-0082.npy +tests/data/ljspeech/wavs/LJ019-0207.wav|tests/data/ljspeech/wavs/LJ019-0207.npy +tests/data/ljspeech/wavs/LJ016-0137.wav|tests/data/ljspeech/wavs/LJ016-0137.npy +tests/data/ljspeech/wavs/LJ007-0183.wav|tests/data/ljspeech/wavs/LJ007-0183.npy +tests/data/ljspeech/wavs/LJ016-0094.wav|tests/data/ljspeech/wavs/LJ016-0094.npy +tests/data/ljspeech/wavs/LJ009-0298.wav|tests/data/ljspeech/wavs/LJ009-0298.npy +tests/data/ljspeech/wavs/LJ049-0123.wav|tests/data/ljspeech/wavs/LJ049-0123.npy +tests/data/ljspeech/wavs/LJ016-0199.wav|tests/data/ljspeech/wavs/LJ016-0199.npy +tests/data/ljspeech/wavs/LJ009-0186.wav|tests/data/ljspeech/wavs/LJ009-0186.npy +tests/data/ljspeech/wavs/LJ030-0018.wav|tests/data/ljspeech/wavs/LJ030-0018.npy +tests/data/ljspeech/wavs/LJ041-0059.wav|tests/data/ljspeech/wavs/LJ041-0059.npy +tests/data/ljspeech/wavs/LJ047-0013.wav|tests/data/ljspeech/wavs/LJ047-0013.npy +tests/data/ljspeech/wavs/LJ025-0103.wav|tests/data/ljspeech/wavs/LJ025-0103.npy +tests/data/ljspeech/wavs/LJ016-0360.wav|tests/data/ljspeech/wavs/LJ016-0360.npy +tests/data/ljspeech/wavs/LJ016-0057.wav|tests/data/ljspeech/wavs/LJ016-0057.npy +tests/data/ljspeech/wavs/LJ010-0043.wav|tests/data/ljspeech/wavs/LJ010-0043.npy +tests/data/ljspeech/wavs/LJ040-0055.wav|tests/data/ljspeech/wavs/LJ040-0055.npy +tests/data/ljspeech/wavs/LJ028-0448.wav|tests/data/ljspeech/wavs/LJ028-0448.npy +tests/data/ljspeech/wavs/LJ007-0074.wav|tests/data/ljspeech/wavs/LJ007-0074.npy +tests/data/ljspeech/wavs/LJ003-0095.wav|tests/data/ljspeech/wavs/LJ003-0095.npy +tests/data/ljspeech/wavs/LJ050-0278.wav|tests/data/ljspeech/wavs/LJ050-0278.npy +tests/data/ljspeech/wavs/LJ028-0505.wav|tests/data/ljspeech/wavs/LJ028-0505.npy +tests/data/ljspeech/wavs/LJ032-0228.wav|tests/data/ljspeech/wavs/LJ032-0228.npy +tests/data/ljspeech/wavs/LJ022-0174.wav|tests/data/ljspeech/wavs/LJ022-0174.npy +tests/data/ljspeech/wavs/LJ049-0030.wav|tests/data/ljspeech/wavs/LJ049-0030.npy +tests/data/ljspeech/wavs/LJ042-0166.wav|tests/data/ljspeech/wavs/LJ042-0166.npy +tests/data/ljspeech/wavs/LJ044-0025.wav|tests/data/ljspeech/wavs/LJ044-0025.npy +tests/data/ljspeech/wavs/LJ034-0098.wav|tests/data/ljspeech/wavs/LJ034-0098.npy +tests/data/ljspeech/wavs/LJ035-0147.wav|tests/data/ljspeech/wavs/LJ035-0147.npy +tests/data/ljspeech/wavs/LJ018-0251.wav|tests/data/ljspeech/wavs/LJ018-0251.npy +tests/data/ljspeech/wavs/LJ028-0326.wav|tests/data/ljspeech/wavs/LJ028-0326.npy +tests/data/ljspeech/wavs/LJ043-0123.wav|tests/data/ljspeech/wavs/LJ043-0123.npy +tests/data/ljspeech/wavs/LJ035-0046.wav|tests/data/ljspeech/wavs/LJ035-0046.npy +tests/data/ljspeech/wavs/LJ030-0072.wav|tests/data/ljspeech/wavs/LJ030-0072.npy +tests/data/ljspeech/wavs/LJ014-0066.wav|tests/data/ljspeech/wavs/LJ014-0066.npy +tests/data/ljspeech/wavs/LJ004-0226.wav|tests/data/ljspeech/wavs/LJ004-0226.npy +tests/data/ljspeech/wavs/LJ043-0059.wav|tests/data/ljspeech/wavs/LJ043-0059.npy +tests/data/ljspeech/wavs/LJ026-0060.wav|tests/data/ljspeech/wavs/LJ026-0060.npy +tests/data/ljspeech/wavs/LJ030-0024.wav|tests/data/ljspeech/wavs/LJ030-0024.npy +tests/data/ljspeech/wavs/LJ035-0195.wav|tests/data/ljspeech/wavs/LJ035-0195.npy +tests/data/ljspeech/wavs/LJ012-0028.wav|tests/data/ljspeech/wavs/LJ012-0028.npy +tests/data/ljspeech/wavs/LJ033-0202.wav|tests/data/ljspeech/wavs/LJ033-0202.npy +tests/data/ljspeech/wavs/LJ028-0427.wav|tests/data/ljspeech/wavs/LJ028-0427.npy +tests/data/ljspeech/wavs/LJ007-0190.wav|tests/data/ljspeech/wavs/LJ007-0190.npy +tests/data/ljspeech/wavs/LJ041-0171.wav|tests/data/ljspeech/wavs/LJ041-0171.npy +tests/data/ljspeech/wavs/LJ042-0216.wav|tests/data/ljspeech/wavs/LJ042-0216.npy +tests/data/ljspeech/wavs/LJ017-0134.wav|tests/data/ljspeech/wavs/LJ017-0134.npy +tests/data/ljspeech/wavs/LJ012-0107.wav|tests/data/ljspeech/wavs/LJ012-0107.npy +tests/data/ljspeech/wavs/LJ007-0216.wav|tests/data/ljspeech/wavs/LJ007-0216.npy +tests/data/ljspeech/wavs/LJ013-0151.wav|tests/data/ljspeech/wavs/LJ013-0151.npy +tests/data/ljspeech/wavs/LJ034-0064.wav|tests/data/ljspeech/wavs/LJ034-0064.npy +tests/data/ljspeech/wavs/LJ020-0035.wav|tests/data/ljspeech/wavs/LJ020-0035.npy +tests/data/ljspeech/wavs/LJ006-0013.wav|tests/data/ljspeech/wavs/LJ006-0013.npy +tests/data/ljspeech/wavs/LJ011-0277.wav|tests/data/ljspeech/wavs/LJ011-0277.npy +tests/data/ljspeech/wavs/LJ020-0022.wav|tests/data/ljspeech/wavs/LJ020-0022.npy +tests/data/ljspeech/wavs/LJ013-0176.wav|tests/data/ljspeech/wavs/LJ013-0176.npy +tests/data/ljspeech/wavs/LJ039-0038.wav|tests/data/ljspeech/wavs/LJ039-0038.npy +tests/data/ljspeech/wavs/LJ050-0223.wav|tests/data/ljspeech/wavs/LJ050-0223.npy +tests/data/ljspeech/wavs/LJ019-0284.wav|tests/data/ljspeech/wavs/LJ019-0284.npy +tests/data/ljspeech/wavs/LJ044-0135.wav|tests/data/ljspeech/wavs/LJ044-0135.npy +tests/data/ljspeech/wavs/LJ019-0099.wav|tests/data/ljspeech/wavs/LJ019-0099.npy +tests/data/ljspeech/wavs/LJ038-0075.wav|tests/data/ljspeech/wavs/LJ038-0075.npy +tests/data/ljspeech/wavs/LJ028-0269.wav|tests/data/ljspeech/wavs/LJ028-0269.npy +tests/data/ljspeech/wavs/LJ044-0133.wav|tests/data/ljspeech/wavs/LJ044-0133.npy +tests/data/ljspeech/wavs/LJ003-0173.wav|tests/data/ljspeech/wavs/LJ003-0173.npy +tests/data/ljspeech/wavs/LJ008-0178.wav|tests/data/ljspeech/wavs/LJ008-0178.npy +tests/data/ljspeech/wavs/LJ048-0030.wav|tests/data/ljspeech/wavs/LJ048-0030.npy +tests/data/ljspeech/wavs/LJ033-0070.wav|tests/data/ljspeech/wavs/LJ033-0070.npy +tests/data/ljspeech/wavs/LJ010-0187.wav|tests/data/ljspeech/wavs/LJ010-0187.npy +tests/data/ljspeech/wavs/LJ025-0176.wav|tests/data/ljspeech/wavs/LJ025-0176.npy +tests/data/ljspeech/wavs/LJ032-0055.wav|tests/data/ljspeech/wavs/LJ032-0055.npy +tests/data/ljspeech/wavs/LJ033-0056.wav|tests/data/ljspeech/wavs/LJ033-0056.npy +tests/data/ljspeech/wavs/LJ028-0079.wav|tests/data/ljspeech/wavs/LJ028-0079.npy +tests/data/ljspeech/wavs/LJ045-0099.wav|tests/data/ljspeech/wavs/LJ045-0099.npy +tests/data/ljspeech/wavs/LJ003-0045.wav|tests/data/ljspeech/wavs/LJ003-0045.npy +tests/data/ljspeech/wavs/LJ010-0181.wav|tests/data/ljspeech/wavs/LJ010-0181.npy +tests/data/ljspeech/wavs/LJ001-0057.wav|tests/data/ljspeech/wavs/LJ001-0057.npy +tests/data/ljspeech/wavs/LJ003-0331.wav|tests/data/ljspeech/wavs/LJ003-0331.npy +tests/data/ljspeech/wavs/LJ028-0232.wav|tests/data/ljspeech/wavs/LJ028-0232.npy +tests/data/ljspeech/wavs/LJ029-0197.wav|tests/data/ljspeech/wavs/LJ029-0197.npy +tests/data/ljspeech/wavs/LJ003-0088.wav|tests/data/ljspeech/wavs/LJ003-0088.npy +tests/data/ljspeech/wavs/LJ038-0256.wav|tests/data/ljspeech/wavs/LJ038-0256.npy +tests/data/ljspeech/wavs/LJ008-0229.wav|tests/data/ljspeech/wavs/LJ008-0229.npy +tests/data/ljspeech/wavs/LJ010-0090.wav|tests/data/ljspeech/wavs/LJ010-0090.npy +tests/data/ljspeech/wavs/LJ029-0120.wav|tests/data/ljspeech/wavs/LJ029-0120.npy +tests/data/ljspeech/wavs/LJ041-0123.wav|tests/data/ljspeech/wavs/LJ041-0123.npy +tests/data/ljspeech/wavs/LJ045-0228.wav|tests/data/ljspeech/wavs/LJ045-0228.npy +tests/data/ljspeech/wavs/LJ037-0266.wav|tests/data/ljspeech/wavs/LJ037-0266.npy +tests/data/ljspeech/wavs/LJ009-0203.wav|tests/data/ljspeech/wavs/LJ009-0203.npy +tests/data/ljspeech/wavs/LJ007-0078.wav|tests/data/ljspeech/wavs/LJ007-0078.npy +tests/data/ljspeech/wavs/LJ036-0159.wav|tests/data/ljspeech/wavs/LJ036-0159.npy +tests/data/ljspeech/wavs/LJ014-0132.wav|tests/data/ljspeech/wavs/LJ014-0132.npy +tests/data/ljspeech/wavs/LJ028-0416.wav|tests/data/ljspeech/wavs/LJ028-0416.npy +tests/data/ljspeech/wavs/LJ025-0127.wav|tests/data/ljspeech/wavs/LJ025-0127.npy +tests/data/ljspeech/wavs/LJ005-0240.wav|tests/data/ljspeech/wavs/LJ005-0240.npy +tests/data/ljspeech/wavs/LJ012-0133.wav|tests/data/ljspeech/wavs/LJ012-0133.npy +tests/data/ljspeech/wavs/LJ049-0079.wav|tests/data/ljspeech/wavs/LJ049-0079.npy +tests/data/ljspeech/wavs/LJ029-0205.wav|tests/data/ljspeech/wavs/LJ029-0205.npy +tests/data/ljspeech/wavs/LJ005-0253.wav|tests/data/ljspeech/wavs/LJ005-0253.npy +tests/data/ljspeech/wavs/LJ022-0063.wav|tests/data/ljspeech/wavs/LJ022-0063.npy +tests/data/ljspeech/wavs/LJ035-0131.wav|tests/data/ljspeech/wavs/LJ035-0131.npy +tests/data/ljspeech/wavs/LJ002-0321.wav|tests/data/ljspeech/wavs/LJ002-0321.npy +tests/data/ljspeech/wavs/LJ014-0218.wav|tests/data/ljspeech/wavs/LJ014-0218.npy +tests/data/ljspeech/wavs/LJ019-0154.wav|tests/data/ljspeech/wavs/LJ019-0154.npy +tests/data/ljspeech/wavs/LJ049-0193.wav|tests/data/ljspeech/wavs/LJ049-0193.npy +tests/data/ljspeech/wavs/LJ028-0122.wav|tests/data/ljspeech/wavs/LJ028-0122.npy +tests/data/ljspeech/wavs/LJ014-0175.wav|tests/data/ljspeech/wavs/LJ014-0175.npy +tests/data/ljspeech/wavs/LJ002-0301.wav|tests/data/ljspeech/wavs/LJ002-0301.npy +tests/data/ljspeech/wavs/LJ002-0003.wav|tests/data/ljspeech/wavs/LJ002-0003.npy +tests/data/ljspeech/wavs/LJ003-0217.wav|tests/data/ljspeech/wavs/LJ003-0217.npy +tests/data/ljspeech/wavs/LJ006-0134.wav|tests/data/ljspeech/wavs/LJ006-0134.npy +tests/data/ljspeech/wavs/LJ029-0200.wav|tests/data/ljspeech/wavs/LJ029-0200.npy +tests/data/ljspeech/wavs/LJ032-0187.wav|tests/data/ljspeech/wavs/LJ032-0187.npy +tests/data/ljspeech/wavs/LJ040-0143.wav|tests/data/ljspeech/wavs/LJ040-0143.npy +tests/data/ljspeech/wavs/LJ019-0069.wav|tests/data/ljspeech/wavs/LJ019-0069.npy +tests/data/ljspeech/wavs/LJ038-0285.wav|tests/data/ljspeech/wavs/LJ038-0285.npy +tests/data/ljspeech/wavs/LJ028-0487.wav|tests/data/ljspeech/wavs/LJ028-0487.npy +tests/data/ljspeech/wavs/LJ029-0082.wav|tests/data/ljspeech/wavs/LJ029-0082.npy +tests/data/ljspeech/wavs/LJ014-0327.wav|tests/data/ljspeech/wavs/LJ014-0327.npy +tests/data/ljspeech/wavs/LJ028-0405.wav|tests/data/ljspeech/wavs/LJ028-0405.npy +tests/data/ljspeech/wavs/LJ019-0043.wav|tests/data/ljspeech/wavs/LJ019-0043.npy +tests/data/ljspeech/wavs/LJ002-0243.wav|tests/data/ljspeech/wavs/LJ002-0243.npy +tests/data/ljspeech/wavs/LJ026-0158.wav|tests/data/ljspeech/wavs/LJ026-0158.npy +tests/data/ljspeech/wavs/LJ043-0078.wav|tests/data/ljspeech/wavs/LJ043-0078.npy +tests/data/ljspeech/wavs/LJ026-0135.wav|tests/data/ljspeech/wavs/LJ026-0135.npy +tests/data/ljspeech/wavs/LJ048-0003.wav|tests/data/ljspeech/wavs/LJ048-0003.npy +tests/data/ljspeech/wavs/LJ018-0302.wav|tests/data/ljspeech/wavs/LJ018-0302.npy +tests/data/ljspeech/wavs/LJ018-0376.wav|tests/data/ljspeech/wavs/LJ018-0376.npy +tests/data/ljspeech/wavs/LJ005-0061.wav|tests/data/ljspeech/wavs/LJ005-0061.npy +tests/data/ljspeech/wavs/LJ040-0018.wav|tests/data/ljspeech/wavs/LJ040-0018.npy +tests/data/ljspeech/wavs/LJ019-0264.wav|tests/data/ljspeech/wavs/LJ019-0264.npy +tests/data/ljspeech/wavs/LJ048-0148.wav|tests/data/ljspeech/wavs/LJ048-0148.npy +tests/data/ljspeech/wavs/LJ030-0254.wav|tests/data/ljspeech/wavs/LJ030-0254.npy +tests/data/ljspeech/wavs/LJ042-0106.wav|tests/data/ljspeech/wavs/LJ042-0106.npy +tests/data/ljspeech/wavs/LJ043-0126.wav|tests/data/ljspeech/wavs/LJ043-0126.npy +tests/data/ljspeech/wavs/LJ017-0244.wav|tests/data/ljspeech/wavs/LJ017-0244.npy +tests/data/ljspeech/wavs/LJ004-0100.wav|tests/data/ljspeech/wavs/LJ004-0100.npy +tests/data/ljspeech/wavs/LJ013-0199.wav|tests/data/ljspeech/wavs/LJ013-0199.npy +tests/data/ljspeech/wavs/LJ044-0087.wav|tests/data/ljspeech/wavs/LJ044-0087.npy +tests/data/ljspeech/wavs/LJ010-0300.wav|tests/data/ljspeech/wavs/LJ010-0300.npy +tests/data/ljspeech/wavs/LJ021-0115.wav|tests/data/ljspeech/wavs/LJ021-0115.npy +tests/data/ljspeech/wavs/LJ005-0143.wav|tests/data/ljspeech/wavs/LJ005-0143.npy +tests/data/ljspeech/wavs/LJ030-0239.wav|tests/data/ljspeech/wavs/LJ030-0239.npy +tests/data/ljspeech/wavs/LJ005-0125.wav|tests/data/ljspeech/wavs/LJ005-0125.npy +tests/data/ljspeech/wavs/LJ008-0272.wav|tests/data/ljspeech/wavs/LJ008-0272.npy +tests/data/ljspeech/wavs/LJ011-0178.wav|tests/data/ljspeech/wavs/LJ011-0178.npy +tests/data/ljspeech/wavs/LJ018-0320.wav|tests/data/ljspeech/wavs/LJ018-0320.npy +tests/data/ljspeech/wavs/LJ045-0038.wav|tests/data/ljspeech/wavs/LJ045-0038.npy +tests/data/ljspeech/wavs/LJ011-0143.wav|tests/data/ljspeech/wavs/LJ011-0143.npy +tests/data/ljspeech/wavs/LJ018-0348.wav|tests/data/ljspeech/wavs/LJ018-0348.npy +tests/data/ljspeech/wavs/LJ050-0187.wav|tests/data/ljspeech/wavs/LJ050-0187.npy +tests/data/ljspeech/wavs/LJ018-0215.wav|tests/data/ljspeech/wavs/LJ018-0215.npy +tests/data/ljspeech/wavs/LJ009-0153.wav|tests/data/ljspeech/wavs/LJ009-0153.npy +tests/data/ljspeech/wavs/LJ038-0208.wav|tests/data/ljspeech/wavs/LJ038-0208.npy +tests/data/ljspeech/wavs/LJ041-0199.wav|tests/data/ljspeech/wavs/LJ041-0199.npy +tests/data/ljspeech/wavs/LJ002-0021.wav|tests/data/ljspeech/wavs/LJ002-0021.npy +tests/data/ljspeech/wavs/LJ029-0186.wav|tests/data/ljspeech/wavs/LJ029-0186.npy +tests/data/ljspeech/wavs/LJ010-0073.wav|tests/data/ljspeech/wavs/LJ010-0073.npy +tests/data/ljspeech/wavs/LJ046-0042.wav|tests/data/ljspeech/wavs/LJ046-0042.npy +tests/data/ljspeech/wavs/LJ007-0226.wav|tests/data/ljspeech/wavs/LJ007-0226.npy +tests/data/ljspeech/wavs/LJ010-0227.wav|tests/data/ljspeech/wavs/LJ010-0227.npy +tests/data/ljspeech/wavs/LJ045-0090.wav|tests/data/ljspeech/wavs/LJ045-0090.npy +tests/data/ljspeech/wavs/LJ048-0266.wav|tests/data/ljspeech/wavs/LJ048-0266.npy +tests/data/ljspeech/wavs/LJ016-0307.wav|tests/data/ljspeech/wavs/LJ016-0307.npy +tests/data/ljspeech/wavs/LJ042-0204.wav|tests/data/ljspeech/wavs/LJ042-0204.npy +tests/data/ljspeech/wavs/LJ033-0181.wav|tests/data/ljspeech/wavs/LJ033-0181.npy +tests/data/ljspeech/wavs/LJ047-0165.wav|tests/data/ljspeech/wavs/LJ047-0165.npy +tests/data/ljspeech/wavs/LJ039-0122.wav|tests/data/ljspeech/wavs/LJ039-0122.npy +tests/data/ljspeech/wavs/LJ044-0210.wav|tests/data/ljspeech/wavs/LJ044-0210.npy +tests/data/ljspeech/wavs/LJ016-0145.wav|tests/data/ljspeech/wavs/LJ016-0145.npy +tests/data/ljspeech/wavs/LJ046-0213.wav|tests/data/ljspeech/wavs/LJ046-0213.npy +tests/data/ljspeech/wavs/LJ008-0299.wav|tests/data/ljspeech/wavs/LJ008-0299.npy +tests/data/ljspeech/wavs/LJ049-0110.wav|tests/data/ljspeech/wavs/LJ049-0110.npy +tests/data/ljspeech/wavs/LJ011-0163.wav|tests/data/ljspeech/wavs/LJ011-0163.npy +tests/data/ljspeech/wavs/LJ042-0194.wav|tests/data/ljspeech/wavs/LJ042-0194.npy +tests/data/ljspeech/wavs/LJ048-0106.wav|tests/data/ljspeech/wavs/LJ048-0106.npy +tests/data/ljspeech/wavs/LJ035-0049.wav|tests/data/ljspeech/wavs/LJ035-0049.npy +tests/data/ljspeech/wavs/LJ008-0204.wav|tests/data/ljspeech/wavs/LJ008-0204.npy +tests/data/ljspeech/wavs/LJ005-0118.wav|tests/data/ljspeech/wavs/LJ005-0118.npy +tests/data/ljspeech/wavs/LJ014-0340.wav|tests/data/ljspeech/wavs/LJ014-0340.npy +tests/data/ljspeech/wavs/LJ015-0236.wav|tests/data/ljspeech/wavs/LJ015-0236.npy +tests/data/ljspeech/wavs/LJ049-0201.wav|tests/data/ljspeech/wavs/LJ049-0201.npy +tests/data/ljspeech/wavs/LJ048-0071.wav|tests/data/ljspeech/wavs/LJ048-0071.npy +tests/data/ljspeech/wavs/LJ028-0105.wav|tests/data/ljspeech/wavs/LJ028-0105.npy +tests/data/ljspeech/wavs/LJ033-0128.wav|tests/data/ljspeech/wavs/LJ033-0128.npy +tests/data/ljspeech/wavs/LJ029-0014.wav|tests/data/ljspeech/wavs/LJ029-0014.npy +tests/data/ljspeech/wavs/LJ044-0127.wav|tests/data/ljspeech/wavs/LJ044-0127.npy +tests/data/ljspeech/wavs/LJ046-0236.wav|tests/data/ljspeech/wavs/LJ046-0236.npy +tests/data/ljspeech/wavs/LJ012-0072.wav|tests/data/ljspeech/wavs/LJ012-0072.npy +tests/data/ljspeech/wavs/LJ029-0166.wav|tests/data/ljspeech/wavs/LJ029-0166.npy +tests/data/ljspeech/wavs/LJ034-0142.wav|tests/data/ljspeech/wavs/LJ034-0142.npy +tests/data/ljspeech/wavs/LJ019-0379.wav|tests/data/ljspeech/wavs/LJ019-0379.npy +tests/data/ljspeech/wavs/LJ027-0009.wav|tests/data/ljspeech/wavs/LJ027-0009.npy +tests/data/ljspeech/wavs/LJ040-0152.wav|tests/data/ljspeech/wavs/LJ040-0152.npy +tests/data/ljspeech/wavs/LJ040-0188.wav|tests/data/ljspeech/wavs/LJ040-0188.npy +tests/data/ljspeech/wavs/LJ047-0241.wav|tests/data/ljspeech/wavs/LJ047-0241.npy +tests/data/ljspeech/wavs/LJ029-0108.wav|tests/data/ljspeech/wavs/LJ029-0108.npy +tests/data/ljspeech/wavs/LJ050-0190.wav|tests/data/ljspeech/wavs/LJ050-0190.npy +tests/data/ljspeech/wavs/LJ012-0067.wav|tests/data/ljspeech/wavs/LJ012-0067.npy +tests/data/ljspeech/wavs/LJ016-0365.wav|tests/data/ljspeech/wavs/LJ016-0365.npy +tests/data/ljspeech/wavs/LJ040-0059.wav|tests/data/ljspeech/wavs/LJ040-0059.npy +tests/data/ljspeech/wavs/LJ014-0198.wav|tests/data/ljspeech/wavs/LJ014-0198.npy +tests/data/ljspeech/wavs/LJ020-0058.wav|tests/data/ljspeech/wavs/LJ020-0058.npy +tests/data/ljspeech/wavs/LJ003-0291.wav|tests/data/ljspeech/wavs/LJ003-0291.npy +tests/data/ljspeech/wavs/LJ031-0129.wav|tests/data/ljspeech/wavs/LJ031-0129.npy +tests/data/ljspeech/wavs/LJ012-0145.wav|tests/data/ljspeech/wavs/LJ012-0145.npy +tests/data/ljspeech/wavs/LJ046-0044.wav|tests/data/ljspeech/wavs/LJ046-0044.npy +tests/data/ljspeech/wavs/LJ045-0059.wav|tests/data/ljspeech/wavs/LJ045-0059.npy +tests/data/ljspeech/wavs/LJ043-0058.wav|tests/data/ljspeech/wavs/LJ043-0058.npy +tests/data/ljspeech/wavs/LJ028-0108.wav|tests/data/ljspeech/wavs/LJ028-0108.npy +tests/data/ljspeech/wavs/LJ047-0204.wav|tests/data/ljspeech/wavs/LJ047-0204.npy +tests/data/ljspeech/wavs/LJ044-0219.wav|tests/data/ljspeech/wavs/LJ044-0219.npy +tests/data/ljspeech/wavs/LJ042-0183.wav|tests/data/ljspeech/wavs/LJ042-0183.npy +tests/data/ljspeech/wavs/LJ019-0375.wav|tests/data/ljspeech/wavs/LJ019-0375.npy +tests/data/ljspeech/wavs/LJ004-0046.wav|tests/data/ljspeech/wavs/LJ004-0046.npy +tests/data/ljspeech/wavs/LJ013-0029.wav|tests/data/ljspeech/wavs/LJ013-0029.npy +tests/data/ljspeech/wavs/LJ013-0063.wav|tests/data/ljspeech/wavs/LJ013-0063.npy +tests/data/ljspeech/wavs/LJ006-0063.wav|tests/data/ljspeech/wavs/LJ006-0063.npy +tests/data/ljspeech/wavs/LJ025-0146.wav|tests/data/ljspeech/wavs/LJ025-0146.npy +tests/data/ljspeech/wavs/LJ045-0248.wav|tests/data/ljspeech/wavs/LJ045-0248.npy +tests/data/ljspeech/wavs/LJ017-0057.wav|tests/data/ljspeech/wavs/LJ017-0057.npy +tests/data/ljspeech/wavs/LJ031-0053.wav|tests/data/ljspeech/wavs/LJ031-0053.npy +tests/data/ljspeech/wavs/LJ003-0317.wav|tests/data/ljspeech/wavs/LJ003-0317.npy +tests/data/ljspeech/wavs/LJ049-0152.wav|tests/data/ljspeech/wavs/LJ049-0152.npy +tests/data/ljspeech/wavs/LJ019-0085.wav|tests/data/ljspeech/wavs/LJ019-0085.npy +tests/data/ljspeech/wavs/LJ014-0027.wav|tests/data/ljspeech/wavs/LJ014-0027.npy +tests/data/ljspeech/wavs/LJ025-0165.wav|tests/data/ljspeech/wavs/LJ025-0165.npy +tests/data/ljspeech/wavs/LJ019-0070.wav|tests/data/ljspeech/wavs/LJ019-0070.npy +tests/data/ljspeech/wavs/LJ002-0066.wav|tests/data/ljspeech/wavs/LJ002-0066.npy +tests/data/ljspeech/wavs/LJ041-0049.wav|tests/data/ljspeech/wavs/LJ041-0049.npy +tests/data/ljspeech/wavs/LJ015-0064.wav|tests/data/ljspeech/wavs/LJ015-0064.npy +tests/data/ljspeech/wavs/LJ006-0294.wav|tests/data/ljspeech/wavs/LJ006-0294.npy +tests/data/ljspeech/wavs/LJ046-0228.wav|tests/data/ljspeech/wavs/LJ046-0228.npy +tests/data/ljspeech/wavs/LJ005-0268.wav|tests/data/ljspeech/wavs/LJ005-0268.npy +tests/data/ljspeech/wavs/LJ030-0030.wav|tests/data/ljspeech/wavs/LJ030-0030.npy +tests/data/ljspeech/wavs/LJ006-0254.wav|tests/data/ljspeech/wavs/LJ006-0254.npy +tests/data/ljspeech/wavs/LJ011-0200.wav|tests/data/ljspeech/wavs/LJ011-0200.npy +tests/data/ljspeech/wavs/LJ029-0114.wav|tests/data/ljspeech/wavs/LJ029-0114.npy +tests/data/ljspeech/wavs/LJ010-0291.wav|tests/data/ljspeech/wavs/LJ010-0291.npy +tests/data/ljspeech/wavs/LJ041-0152.wav|tests/data/ljspeech/wavs/LJ041-0152.npy +tests/data/ljspeech/wavs/LJ035-0026.wav|tests/data/ljspeech/wavs/LJ035-0026.npy +tests/data/ljspeech/wavs/LJ012-0170.wav|tests/data/ljspeech/wavs/LJ012-0170.npy +tests/data/ljspeech/wavs/LJ011-0222.wav|tests/data/ljspeech/wavs/LJ011-0222.npy +tests/data/ljspeech/wavs/LJ034-0182.wav|tests/data/ljspeech/wavs/LJ034-0182.npy +tests/data/ljspeech/wavs/LJ003-0219.wav|tests/data/ljspeech/wavs/LJ003-0219.npy +tests/data/ljspeech/wavs/LJ006-0090.wav|tests/data/ljspeech/wavs/LJ006-0090.npy +tests/data/ljspeech/wavs/LJ035-0117.wav|tests/data/ljspeech/wavs/LJ035-0117.npy +tests/data/ljspeech/wavs/LJ013-0167.wav|tests/data/ljspeech/wavs/LJ013-0167.npy +tests/data/ljspeech/wavs/LJ033-0208.wav|tests/data/ljspeech/wavs/LJ033-0208.npy +tests/data/ljspeech/wavs/LJ026-0160.wav|tests/data/ljspeech/wavs/LJ026-0160.npy +tests/data/ljspeech/wavs/LJ045-0135.wav|tests/data/ljspeech/wavs/LJ045-0135.npy +tests/data/ljspeech/wavs/LJ044-0173.wav|tests/data/ljspeech/wavs/LJ044-0173.npy +tests/data/ljspeech/wavs/LJ038-0161.wav|tests/data/ljspeech/wavs/LJ038-0161.npy +tests/data/ljspeech/wavs/LJ048-0269.wav|tests/data/ljspeech/wavs/LJ048-0269.npy +tests/data/ljspeech/wavs/LJ047-0043.wav|tests/data/ljspeech/wavs/LJ047-0043.npy +tests/data/ljspeech/wavs/LJ030-0055.wav|tests/data/ljspeech/wavs/LJ030-0055.npy +tests/data/ljspeech/wavs/LJ043-0048.wav|tests/data/ljspeech/wavs/LJ043-0048.npy +tests/data/ljspeech/wavs/LJ008-0209.wav|tests/data/ljspeech/wavs/LJ008-0209.npy +tests/data/ljspeech/wavs/LJ031-0220.wav|tests/data/ljspeech/wavs/LJ031-0220.npy +tests/data/ljspeech/wavs/LJ016-0023.wav|tests/data/ljspeech/wavs/LJ016-0023.npy +tests/data/ljspeech/wavs/LJ003-0290.wav|tests/data/ljspeech/wavs/LJ003-0290.npy +tests/data/ljspeech/wavs/LJ018-0303.wav|tests/data/ljspeech/wavs/LJ018-0303.npy +tests/data/ljspeech/wavs/LJ042-0026.wav|tests/data/ljspeech/wavs/LJ042-0026.npy +tests/data/ljspeech/wavs/LJ042-0105.wav|tests/data/ljspeech/wavs/LJ042-0105.npy +tests/data/ljspeech/wavs/LJ009-0247.wav|tests/data/ljspeech/wavs/LJ009-0247.npy +tests/data/ljspeech/wavs/LJ017-0137.wav|tests/data/ljspeech/wavs/LJ017-0137.npy +tests/data/ljspeech/wavs/LJ015-0299.wav|tests/data/ljspeech/wavs/LJ015-0299.npy +tests/data/ljspeech/wavs/LJ030-0104.wav|tests/data/ljspeech/wavs/LJ030-0104.npy +tests/data/ljspeech/wavs/LJ048-0250.wav|tests/data/ljspeech/wavs/LJ048-0250.npy +tests/data/ljspeech/wavs/LJ022-0175.wav|tests/data/ljspeech/wavs/LJ022-0175.npy +tests/data/ljspeech/wavs/LJ009-0016.wav|tests/data/ljspeech/wavs/LJ009-0016.npy +tests/data/ljspeech/wavs/LJ004-0245.wav|tests/data/ljspeech/wavs/LJ004-0245.npy +tests/data/ljspeech/wavs/LJ017-0098.wav|tests/data/ljspeech/wavs/LJ017-0098.npy +tests/data/ljspeech/wavs/LJ050-0245.wav|tests/data/ljspeech/wavs/LJ050-0245.npy +tests/data/ljspeech/wavs/LJ002-0207.wav|tests/data/ljspeech/wavs/LJ002-0207.npy +tests/data/ljspeech/wavs/LJ043-0066.wav|tests/data/ljspeech/wavs/LJ043-0066.npy +tests/data/ljspeech/wavs/LJ018-0186.wav|tests/data/ljspeech/wavs/LJ018-0186.npy +tests/data/ljspeech/wavs/LJ015-0245.wav|tests/data/ljspeech/wavs/LJ015-0245.npy +tests/data/ljspeech/wavs/LJ019-0041.wav|tests/data/ljspeech/wavs/LJ019-0041.npy +tests/data/ljspeech/wavs/LJ018-0307.wav|tests/data/ljspeech/wavs/LJ018-0307.npy +tests/data/ljspeech/wavs/LJ021-0101.wav|tests/data/ljspeech/wavs/LJ021-0101.npy +tests/data/ljspeech/wavs/LJ031-0204.wav|tests/data/ljspeech/wavs/LJ031-0204.npy +tests/data/ljspeech/wavs/LJ031-0057.wav|tests/data/ljspeech/wavs/LJ031-0057.npy +tests/data/ljspeech/wavs/LJ032-0083.wav|tests/data/ljspeech/wavs/LJ032-0083.npy +tests/data/ljspeech/wavs/LJ028-0174.wav|tests/data/ljspeech/wavs/LJ028-0174.npy +tests/data/ljspeech/wavs/LJ019-0167.wav|tests/data/ljspeech/wavs/LJ019-0167.npy +tests/data/ljspeech/wavs/LJ019-0019.wav|tests/data/ljspeech/wavs/LJ019-0019.npy +tests/data/ljspeech/wavs/LJ034-0100.wav|tests/data/ljspeech/wavs/LJ034-0100.npy +tests/data/ljspeech/wavs/LJ019-0025.wav|tests/data/ljspeech/wavs/LJ019-0025.npy +tests/data/ljspeech/wavs/LJ030-0034.wav|tests/data/ljspeech/wavs/LJ030-0034.npy +tests/data/ljspeech/wavs/LJ034-0085.wav|tests/data/ljspeech/wavs/LJ034-0085.npy +tests/data/ljspeech/wavs/LJ050-0061.wav|tests/data/ljspeech/wavs/LJ050-0061.npy +tests/data/ljspeech/wavs/LJ019-0201.wav|tests/data/ljspeech/wavs/LJ019-0201.npy +tests/data/ljspeech/wavs/LJ014-0331.wav|tests/data/ljspeech/wavs/LJ014-0331.npy +tests/data/ljspeech/wavs/LJ017-0079.wav|tests/data/ljspeech/wavs/LJ017-0079.npy +tests/data/ljspeech/wavs/LJ014-0006.wav|tests/data/ljspeech/wavs/LJ014-0006.npy +tests/data/ljspeech/wavs/LJ019-0027.wav|tests/data/ljspeech/wavs/LJ019-0027.npy +tests/data/ljspeech/wavs/LJ046-0218.wav|tests/data/ljspeech/wavs/LJ046-0218.npy +tests/data/ljspeech/wavs/LJ030-0021.wav|tests/data/ljspeech/wavs/LJ030-0021.npy +tests/data/ljspeech/wavs/LJ040-0026.wav|tests/data/ljspeech/wavs/LJ040-0026.npy +tests/data/ljspeech/wavs/LJ033-0136.wav|tests/data/ljspeech/wavs/LJ033-0136.npy +tests/data/ljspeech/wavs/LJ032-0249.wav|tests/data/ljspeech/wavs/LJ032-0249.npy +tests/data/ljspeech/wavs/LJ015-0087.wav|tests/data/ljspeech/wavs/LJ015-0087.npy +tests/data/ljspeech/wavs/LJ038-0204.wav|tests/data/ljspeech/wavs/LJ038-0204.npy +tests/data/ljspeech/wavs/LJ016-0406.wav|tests/data/ljspeech/wavs/LJ016-0406.npy +tests/data/ljspeech/wavs/LJ019-0350.wav|tests/data/ljspeech/wavs/LJ019-0350.npy +tests/data/ljspeech/wavs/LJ009-0145.wav|tests/data/ljspeech/wavs/LJ009-0145.npy +tests/data/ljspeech/wavs/LJ022-0119.wav|tests/data/ljspeech/wavs/LJ022-0119.npy +tests/data/ljspeech/wavs/LJ019-0125.wav|tests/data/ljspeech/wavs/LJ019-0125.npy +tests/data/ljspeech/wavs/LJ007-0118.wav|tests/data/ljspeech/wavs/LJ007-0118.npy +tests/data/ljspeech/wavs/LJ048-0105.wav|tests/data/ljspeech/wavs/LJ048-0105.npy +tests/data/ljspeech/wavs/LJ015-0096.wav|tests/data/ljspeech/wavs/LJ015-0096.npy +tests/data/ljspeech/wavs/LJ034-0032.wav|tests/data/ljspeech/wavs/LJ034-0032.npy +tests/data/ljspeech/wavs/LJ005-0011.wav|tests/data/ljspeech/wavs/LJ005-0011.npy +tests/data/ljspeech/wavs/LJ041-0031.wav|tests/data/ljspeech/wavs/LJ041-0031.npy +tests/data/ljspeech/wavs/LJ046-0090.wav|tests/data/ljspeech/wavs/LJ046-0090.npy +tests/data/ljspeech/wavs/LJ026-0014.wav|tests/data/ljspeech/wavs/LJ026-0014.npy +tests/data/ljspeech/wavs/LJ012-0023.wav|tests/data/ljspeech/wavs/LJ012-0023.npy +tests/data/ljspeech/wavs/LJ007-0034.wav|tests/data/ljspeech/wavs/LJ007-0034.npy +tests/data/ljspeech/wavs/LJ044-0009.wav|tests/data/ljspeech/wavs/LJ044-0009.npy +tests/data/ljspeech/wavs/LJ022-0004.wav|tests/data/ljspeech/wavs/LJ022-0004.npy +tests/data/ljspeech/wavs/LJ049-0136.wav|tests/data/ljspeech/wavs/LJ049-0136.npy +tests/data/ljspeech/wavs/LJ050-0151.wav|tests/data/ljspeech/wavs/LJ050-0151.npy +tests/data/ljspeech/wavs/LJ003-0316.wav|tests/data/ljspeech/wavs/LJ003-0316.npy +tests/data/ljspeech/wavs/LJ042-0227.wav|tests/data/ljspeech/wavs/LJ042-0227.npy +tests/data/ljspeech/wavs/LJ050-0139.wav|tests/data/ljspeech/wavs/LJ050-0139.npy +tests/data/ljspeech/wavs/LJ006-0057.wav|tests/data/ljspeech/wavs/LJ006-0057.npy +tests/data/ljspeech/wavs/LJ042-0046.wav|tests/data/ljspeech/wavs/LJ042-0046.npy +tests/data/ljspeech/wavs/LJ004-0013.wav|tests/data/ljspeech/wavs/LJ004-0013.npy +tests/data/ljspeech/wavs/LJ007-0050.wav|tests/data/ljspeech/wavs/LJ007-0050.npy +tests/data/ljspeech/wavs/LJ007-0094.wav|tests/data/ljspeech/wavs/LJ007-0094.npy +tests/data/ljspeech/wavs/LJ039-0077.wav|tests/data/ljspeech/wavs/LJ039-0077.npy +tests/data/ljspeech/wavs/LJ009-0225.wav|tests/data/ljspeech/wavs/LJ009-0225.npy +tests/data/ljspeech/wavs/LJ042-0122.wav|tests/data/ljspeech/wavs/LJ042-0122.npy +tests/data/ljspeech/wavs/LJ048-0175.wav|tests/data/ljspeech/wavs/LJ048-0175.npy +tests/data/ljspeech/wavs/LJ006-0252.wav|tests/data/ljspeech/wavs/LJ006-0252.npy +tests/data/ljspeech/wavs/LJ006-0224.wav|tests/data/ljspeech/wavs/LJ006-0224.npy +tests/data/ljspeech/wavs/LJ039-0235.wav|tests/data/ljspeech/wavs/LJ039-0235.npy +tests/data/ljspeech/wavs/LJ028-0388.wav|tests/data/ljspeech/wavs/LJ028-0388.npy +tests/data/ljspeech/wavs/LJ020-0074.wav|tests/data/ljspeech/wavs/LJ020-0074.npy +tests/data/ljspeech/wavs/LJ002-0209.wav|tests/data/ljspeech/wavs/LJ002-0209.npy +tests/data/ljspeech/wavs/LJ007-0029.wav|tests/data/ljspeech/wavs/LJ007-0029.npy +tests/data/ljspeech/wavs/LJ047-0108.wav|tests/data/ljspeech/wavs/LJ047-0108.npy +tests/data/ljspeech/wavs/LJ008-0051.wav|tests/data/ljspeech/wavs/LJ008-0051.npy +tests/data/ljspeech/wavs/LJ029-0028.wav|tests/data/ljspeech/wavs/LJ029-0028.npy +tests/data/ljspeech/wavs/LJ046-0199.wav|tests/data/ljspeech/wavs/LJ046-0199.npy +tests/data/ljspeech/wavs/LJ041-0196.wav|tests/data/ljspeech/wavs/LJ041-0196.npy +tests/data/ljspeech/wavs/LJ044-0149.wav|tests/data/ljspeech/wavs/LJ044-0149.npy +tests/data/ljspeech/wavs/LJ035-0047.wav|tests/data/ljspeech/wavs/LJ035-0047.npy +tests/data/ljspeech/wavs/LJ012-0074.wav|tests/data/ljspeech/wavs/LJ012-0074.npy +tests/data/ljspeech/wavs/LJ002-0074.wav|tests/data/ljspeech/wavs/LJ002-0074.npy +tests/data/ljspeech/wavs/LJ045-0023.wav|tests/data/ljspeech/wavs/LJ045-0023.npy +tests/data/ljspeech/wavs/LJ002-0079.wav|tests/data/ljspeech/wavs/LJ002-0079.npy +tests/data/ljspeech/wavs/LJ011-0131.wav|tests/data/ljspeech/wavs/LJ011-0131.npy +tests/data/ljspeech/wavs/LJ020-0024.wav|tests/data/ljspeech/wavs/LJ020-0024.npy +tests/data/ljspeech/wavs/LJ036-0131.wav|tests/data/ljspeech/wavs/LJ036-0131.npy +tests/data/ljspeech/wavs/LJ046-0039.wav|tests/data/ljspeech/wavs/LJ046-0039.npy +tests/data/ljspeech/wavs/LJ001-0169.wav|tests/data/ljspeech/wavs/LJ001-0169.npy +tests/data/ljspeech/wavs/LJ003-0167.wav|tests/data/ljspeech/wavs/LJ003-0167.npy +tests/data/ljspeech/wavs/LJ028-0219.wav|tests/data/ljspeech/wavs/LJ028-0219.npy +tests/data/ljspeech/wavs/LJ050-0252.wav|tests/data/ljspeech/wavs/LJ050-0252.npy +tests/data/ljspeech/wavs/LJ044-0097.wav|tests/data/ljspeech/wavs/LJ044-0097.npy +tests/data/ljspeech/wavs/LJ049-0033.wav|tests/data/ljspeech/wavs/LJ049-0033.npy +tests/data/ljspeech/wavs/LJ044-0206.wav|tests/data/ljspeech/wavs/LJ044-0206.npy +tests/data/ljspeech/wavs/LJ035-0016.wav|tests/data/ljspeech/wavs/LJ035-0016.npy +tests/data/ljspeech/wavs/LJ017-0246.wav|tests/data/ljspeech/wavs/LJ017-0246.npy +tests/data/ljspeech/wavs/LJ034-0207.wav|tests/data/ljspeech/wavs/LJ034-0207.npy +tests/data/ljspeech/wavs/LJ027-0034.wav|tests/data/ljspeech/wavs/LJ027-0034.npy +tests/data/ljspeech/wavs/LJ047-0178.wav|tests/data/ljspeech/wavs/LJ047-0178.npy +tests/data/ljspeech/wavs/LJ044-0104.wav|tests/data/ljspeech/wavs/LJ044-0104.npy +tests/data/ljspeech/wavs/LJ010-0109.wav|tests/data/ljspeech/wavs/LJ010-0109.npy +tests/data/ljspeech/wavs/LJ012-0200.wav|tests/data/ljspeech/wavs/LJ012-0200.npy +tests/data/ljspeech/wavs/LJ048-0184.wav|tests/data/ljspeech/wavs/LJ048-0184.npy +tests/data/ljspeech/wavs/LJ001-0154.wav|tests/data/ljspeech/wavs/LJ001-0154.npy +tests/data/ljspeech/wavs/LJ011-0212.wav|tests/data/ljspeech/wavs/LJ011-0212.npy +tests/data/ljspeech/wavs/LJ019-0139.wav|tests/data/ljspeech/wavs/LJ019-0139.npy +tests/data/ljspeech/wavs/LJ017-0099.wav|tests/data/ljspeech/wavs/LJ017-0099.npy +tests/data/ljspeech/wavs/LJ037-0084.wav|tests/data/ljspeech/wavs/LJ037-0084.npy +tests/data/ljspeech/wavs/LJ048-0017.wav|tests/data/ljspeech/wavs/LJ048-0017.npy +tests/data/ljspeech/wavs/LJ004-0066.wav|tests/data/ljspeech/wavs/LJ004-0066.npy +tests/data/ljspeech/wavs/LJ034-0023.wav|tests/data/ljspeech/wavs/LJ034-0023.npy +tests/data/ljspeech/wavs/LJ027-0143.wav|tests/data/ljspeech/wavs/LJ027-0143.npy +tests/data/ljspeech/wavs/LJ050-0001.wav|tests/data/ljspeech/wavs/LJ050-0001.npy +tests/data/ljspeech/wavs/LJ005-0098.wav|tests/data/ljspeech/wavs/LJ005-0098.npy +tests/data/ljspeech/wavs/LJ009-0295.wav|tests/data/ljspeech/wavs/LJ009-0295.npy +tests/data/ljspeech/wavs/LJ013-0133.wav|tests/data/ljspeech/wavs/LJ013-0133.npy +tests/data/ljspeech/wavs/LJ037-0147.wav|tests/data/ljspeech/wavs/LJ037-0147.npy +tests/data/ljspeech/wavs/LJ028-0324.wav|tests/data/ljspeech/wavs/LJ028-0324.npy +tests/data/ljspeech/wavs/LJ047-0152.wav|tests/data/ljspeech/wavs/LJ047-0152.npy +tests/data/ljspeech/wavs/LJ048-0186.wav|tests/data/ljspeech/wavs/LJ048-0186.npy +tests/data/ljspeech/wavs/LJ049-0022.wav|tests/data/ljspeech/wavs/LJ049-0022.npy +tests/data/ljspeech/wavs/LJ005-0006.wav|tests/data/ljspeech/wavs/LJ005-0006.npy +tests/data/ljspeech/wavs/LJ012-0100.wav|tests/data/ljspeech/wavs/LJ012-0100.npy +tests/data/ljspeech/wavs/LJ014-0129.wav|tests/data/ljspeech/wavs/LJ014-0129.npy +tests/data/ljspeech/wavs/LJ012-0270.wav|tests/data/ljspeech/wavs/LJ012-0270.npy +tests/data/ljspeech/wavs/LJ018-0112.wav|tests/data/ljspeech/wavs/LJ018-0112.npy +tests/data/ljspeech/wavs/LJ012-0238.wav|tests/data/ljspeech/wavs/LJ012-0238.npy +tests/data/ljspeech/wavs/LJ018-0107.wav|tests/data/ljspeech/wavs/LJ018-0107.npy +tests/data/ljspeech/wavs/LJ005-0052.wav|tests/data/ljspeech/wavs/LJ005-0052.npy +tests/data/ljspeech/wavs/LJ013-0086.wav|tests/data/ljspeech/wavs/LJ013-0086.npy +tests/data/ljspeech/wavs/LJ015-0039.wav|tests/data/ljspeech/wavs/LJ015-0039.npy +tests/data/ljspeech/wavs/LJ003-0085.wav|tests/data/ljspeech/wavs/LJ003-0085.npy +tests/data/ljspeech/wavs/LJ020-0046.wav|tests/data/ljspeech/wavs/LJ020-0046.npy +tests/data/ljspeech/wavs/LJ037-0107.wav|tests/data/ljspeech/wavs/LJ037-0107.npy +tests/data/ljspeech/wavs/LJ006-0093.wav|tests/data/ljspeech/wavs/LJ006-0093.npy +tests/data/ljspeech/wavs/LJ049-0108.wav|tests/data/ljspeech/wavs/LJ049-0108.npy +tests/data/ljspeech/wavs/LJ010-0247.wav|tests/data/ljspeech/wavs/LJ010-0247.npy +tests/data/ljspeech/wavs/LJ049-0150.wav|tests/data/ljspeech/wavs/LJ049-0150.npy +tests/data/ljspeech/wavs/LJ043-0168.wav|tests/data/ljspeech/wavs/LJ043-0168.npy +tests/data/ljspeech/wavs/LJ033-0111.wav|tests/data/ljspeech/wavs/LJ033-0111.npy +tests/data/ljspeech/wavs/LJ029-0126.wav|tests/data/ljspeech/wavs/LJ029-0126.npy +tests/data/ljspeech/wavs/LJ040-0150.wav|tests/data/ljspeech/wavs/LJ040-0150.npy +tests/data/ljspeech/wavs/LJ011-0108.wav|tests/data/ljspeech/wavs/LJ011-0108.npy +tests/data/ljspeech/wavs/LJ029-0022.wav|tests/data/ljspeech/wavs/LJ029-0022.npy +tests/data/ljspeech/wavs/LJ038-0081.wav|tests/data/ljspeech/wavs/LJ038-0081.npy +tests/data/ljspeech/wavs/LJ038-0288.wav|tests/data/ljspeech/wavs/LJ038-0288.npy +tests/data/ljspeech/wavs/LJ029-0069.wav|tests/data/ljspeech/wavs/LJ029-0069.npy +tests/data/ljspeech/wavs/LJ019-0241.wav|tests/data/ljspeech/wavs/LJ019-0241.npy +tests/data/ljspeech/wavs/LJ047-0181.wav|tests/data/ljspeech/wavs/LJ047-0181.npy +tests/data/ljspeech/wavs/LJ047-0050.wav|tests/data/ljspeech/wavs/LJ047-0050.npy +tests/data/ljspeech/wavs/LJ012-0064.wav|tests/data/ljspeech/wavs/LJ012-0064.npy +tests/data/ljspeech/wavs/LJ016-0353.wav|tests/data/ljspeech/wavs/LJ016-0353.npy +tests/data/ljspeech/wavs/LJ048-0155.wav|tests/data/ljspeech/wavs/LJ048-0155.npy +tests/data/ljspeech/wavs/LJ007-0104.wav|tests/data/ljspeech/wavs/LJ007-0104.npy +tests/data/ljspeech/wavs/LJ015-0104.wav|tests/data/ljspeech/wavs/LJ015-0104.npy +tests/data/ljspeech/wavs/LJ040-0035.wav|tests/data/ljspeech/wavs/LJ040-0035.npy +tests/data/ljspeech/wavs/LJ008-0094.wav|tests/data/ljspeech/wavs/LJ008-0094.npy +tests/data/ljspeech/wavs/LJ006-0095.wav|tests/data/ljspeech/wavs/LJ006-0095.npy +tests/data/ljspeech/wavs/LJ015-0166.wav|tests/data/ljspeech/wavs/LJ015-0166.npy +tests/data/ljspeech/wavs/LJ007-0072.wav|tests/data/ljspeech/wavs/LJ007-0072.npy +tests/data/ljspeech/wavs/LJ013-0118.wav|tests/data/ljspeech/wavs/LJ013-0118.npy +tests/data/ljspeech/wavs/LJ030-0031.wav|tests/data/ljspeech/wavs/LJ030-0031.npy +tests/data/ljspeech/wavs/LJ016-0357.wav|tests/data/ljspeech/wavs/LJ016-0357.npy +tests/data/ljspeech/wavs/LJ030-0234.wav|tests/data/ljspeech/wavs/LJ030-0234.npy +tests/data/ljspeech/wavs/LJ050-0086.wav|tests/data/ljspeech/wavs/LJ050-0086.npy +tests/data/ljspeech/wavs/LJ008-0286.wav|tests/data/ljspeech/wavs/LJ008-0286.npy +tests/data/ljspeech/wavs/LJ008-0158.wav|tests/data/ljspeech/wavs/LJ008-0158.npy +tests/data/ljspeech/wavs/LJ016-0214.wav|tests/data/ljspeech/wavs/LJ016-0214.npy +tests/data/ljspeech/wavs/LJ007-0010.wav|tests/data/ljspeech/wavs/LJ007-0010.npy +tests/data/ljspeech/wavs/LJ006-0282.wav|tests/data/ljspeech/wavs/LJ006-0282.npy +tests/data/ljspeech/wavs/LJ047-0156.wav|tests/data/ljspeech/wavs/LJ047-0156.npy +tests/data/ljspeech/wavs/LJ030-0157.wav|tests/data/ljspeech/wavs/LJ030-0157.npy +tests/data/ljspeech/wavs/LJ044-0211.wav|tests/data/ljspeech/wavs/LJ044-0211.npy +tests/data/ljspeech/wavs/LJ041-0051.wav|tests/data/ljspeech/wavs/LJ041-0051.npy +tests/data/ljspeech/wavs/LJ007-0140.wav|tests/data/ljspeech/wavs/LJ007-0140.npy +tests/data/ljspeech/wavs/LJ042-0233.wav|tests/data/ljspeech/wavs/LJ042-0233.npy +tests/data/ljspeech/wavs/LJ042-0136.wav|tests/data/ljspeech/wavs/LJ042-0136.npy +tests/data/ljspeech/wavs/LJ041-0115.wav|tests/data/ljspeech/wavs/LJ041-0115.npy +tests/data/ljspeech/wavs/LJ009-0114.wav|tests/data/ljspeech/wavs/LJ009-0114.npy +tests/data/ljspeech/wavs/LJ007-0185.wav|tests/data/ljspeech/wavs/LJ007-0185.npy +tests/data/ljspeech/wavs/LJ005-0242.wav|tests/data/ljspeech/wavs/LJ005-0242.npy +tests/data/ljspeech/wavs/LJ005-0214.wav|tests/data/ljspeech/wavs/LJ005-0214.npy +tests/data/ljspeech/wavs/LJ004-0235.wav|tests/data/ljspeech/wavs/LJ004-0235.npy +tests/data/ljspeech/wavs/LJ008-0039.wav|tests/data/ljspeech/wavs/LJ008-0039.npy +tests/data/ljspeech/wavs/LJ047-0018.wav|tests/data/ljspeech/wavs/LJ047-0018.npy +tests/data/ljspeech/wavs/LJ003-0040.wav|tests/data/ljspeech/wavs/LJ003-0040.npy +tests/data/ljspeech/wavs/LJ046-0219.wav|tests/data/ljspeech/wavs/LJ046-0219.npy +tests/data/ljspeech/wavs/LJ050-0275.wav|tests/data/ljspeech/wavs/LJ050-0275.npy +tests/data/ljspeech/wavs/LJ006-0017.wav|tests/data/ljspeech/wavs/LJ006-0017.npy +tests/data/ljspeech/wavs/LJ006-0027.wav|tests/data/ljspeech/wavs/LJ006-0027.npy +tests/data/ljspeech/wavs/LJ007-0235.wav|tests/data/ljspeech/wavs/LJ007-0235.npy +tests/data/ljspeech/wavs/LJ005-0233.wav|tests/data/ljspeech/wavs/LJ005-0233.npy +tests/data/ljspeech/wavs/LJ004-0121.wav|tests/data/ljspeech/wavs/LJ004-0121.npy +tests/data/ljspeech/wavs/LJ005-0063.wav|tests/data/ljspeech/wavs/LJ005-0063.npy +tests/data/ljspeech/wavs/LJ035-0067.wav|tests/data/ljspeech/wavs/LJ035-0067.npy +tests/data/ljspeech/wavs/LJ007-0045.wav|tests/data/ljspeech/wavs/LJ007-0045.npy +tests/data/ljspeech/wavs/LJ012-0117.wav|tests/data/ljspeech/wavs/LJ012-0117.npy +tests/data/ljspeech/wavs/LJ042-0178.wav|tests/data/ljspeech/wavs/LJ042-0178.npy +tests/data/ljspeech/wavs/LJ005-0192.wav|tests/data/ljspeech/wavs/LJ005-0192.npy +tests/data/ljspeech/wavs/LJ008-0264.wav|tests/data/ljspeech/wavs/LJ008-0264.npy +tests/data/ljspeech/wavs/LJ003-0233.wav|tests/data/ljspeech/wavs/LJ003-0233.npy +tests/data/ljspeech/wavs/LJ004-0036.wav|tests/data/ljspeech/wavs/LJ004-0036.npy +tests/data/ljspeech/wavs/LJ009-0131.wav|tests/data/ljspeech/wavs/LJ009-0131.npy +tests/data/ljspeech/wavs/LJ050-0226.wav|tests/data/ljspeech/wavs/LJ050-0226.npy +tests/data/ljspeech/wavs/LJ002-0196.wav|tests/data/ljspeech/wavs/LJ002-0196.npy +tests/data/ljspeech/wavs/LJ001-0096.wav|tests/data/ljspeech/wavs/LJ001-0096.npy +tests/data/ljspeech/wavs/LJ016-0436.wav|tests/data/ljspeech/wavs/LJ016-0436.npy +tests/data/ljspeech/wavs/LJ004-0005.wav|tests/data/ljspeech/wavs/LJ004-0005.npy +tests/data/ljspeech/wavs/LJ016-0228.wav|tests/data/ljspeech/wavs/LJ016-0228.npy +tests/data/ljspeech/wavs/LJ049-0011.wav|tests/data/ljspeech/wavs/LJ049-0011.npy +tests/data/ljspeech/wavs/LJ031-0016.wav|tests/data/ljspeech/wavs/LJ031-0016.npy +tests/data/ljspeech/wavs/LJ018-0032.wav|tests/data/ljspeech/wavs/LJ018-0032.npy +tests/data/ljspeech/wavs/LJ031-0063.wav|tests/data/ljspeech/wavs/LJ031-0063.npy +tests/data/ljspeech/wavs/LJ016-0377.wav|tests/data/ljspeech/wavs/LJ016-0377.npy +tests/data/ljspeech/wavs/LJ016-0134.wav|tests/data/ljspeech/wavs/LJ016-0134.npy +tests/data/ljspeech/wavs/LJ014-0058.wav|tests/data/ljspeech/wavs/LJ014-0058.npy +tests/data/ljspeech/wavs/LJ001-0059.wav|tests/data/ljspeech/wavs/LJ001-0059.npy +tests/data/ljspeech/wavs/LJ016-0399.wav|tests/data/ljspeech/wavs/LJ016-0399.npy +tests/data/ljspeech/wavs/LJ032-0125.wav|tests/data/ljspeech/wavs/LJ032-0125.npy +tests/data/ljspeech/wavs/LJ032-0065.wav|tests/data/ljspeech/wavs/LJ032-0065.npy +tests/data/ljspeech/wavs/LJ013-0038.wav|tests/data/ljspeech/wavs/LJ013-0038.npy +tests/data/ljspeech/wavs/LJ002-0328.wav|tests/data/ljspeech/wavs/LJ002-0328.npy +tests/data/ljspeech/wavs/LJ017-0084.wav|tests/data/ljspeech/wavs/LJ017-0084.npy +tests/data/ljspeech/wavs/LJ016-0272.wav|tests/data/ljspeech/wavs/LJ016-0272.npy +tests/data/ljspeech/wavs/LJ047-0231.wav|tests/data/ljspeech/wavs/LJ047-0231.npy +tests/data/ljspeech/wavs/LJ014-0287.wav|tests/data/ljspeech/wavs/LJ014-0287.npy +tests/data/ljspeech/wavs/LJ049-0149.wav|tests/data/ljspeech/wavs/LJ049-0149.npy +tests/data/ljspeech/wavs/LJ016-0384.wav|tests/data/ljspeech/wavs/LJ016-0384.npy +tests/data/ljspeech/wavs/LJ012-0195.wav|tests/data/ljspeech/wavs/LJ012-0195.npy +tests/data/ljspeech/wavs/LJ014-0089.wav|tests/data/ljspeech/wavs/LJ014-0089.npy +tests/data/ljspeech/wavs/LJ016-0028.wav|tests/data/ljspeech/wavs/LJ016-0028.npy +tests/data/ljspeech/wavs/LJ031-0108.wav|tests/data/ljspeech/wavs/LJ031-0108.npy +tests/data/ljspeech/wavs/LJ017-0233.wav|tests/data/ljspeech/wavs/LJ017-0233.npy +tests/data/ljspeech/wavs/LJ013-0067.wav|tests/data/ljspeech/wavs/LJ013-0067.npy +tests/data/ljspeech/wavs/LJ014-0100.wav|tests/data/ljspeech/wavs/LJ014-0100.npy +tests/data/ljspeech/wavs/LJ042-0154.wav|tests/data/ljspeech/wavs/LJ042-0154.npy +tests/data/ljspeech/wavs/LJ011-0260.wav|tests/data/ljspeech/wavs/LJ011-0260.npy +tests/data/ljspeech/wavs/LJ011-0065.wav|tests/data/ljspeech/wavs/LJ011-0065.npy +tests/data/ljspeech/wavs/LJ045-0166.wav|tests/data/ljspeech/wavs/LJ045-0166.npy +tests/data/ljspeech/wavs/LJ006-0284.wav|tests/data/ljspeech/wavs/LJ006-0284.npy +tests/data/ljspeech/wavs/LJ037-0080.wav|tests/data/ljspeech/wavs/LJ037-0080.npy +tests/data/ljspeech/wavs/LJ019-0354.wav|tests/data/ljspeech/wavs/LJ019-0354.npy +tests/data/ljspeech/wavs/LJ007-0145.wav|tests/data/ljspeech/wavs/LJ007-0145.npy +tests/data/ljspeech/wavs/LJ034-0199.wav|tests/data/ljspeech/wavs/LJ034-0199.npy +tests/data/ljspeech/wavs/LJ038-0294.wav|tests/data/ljspeech/wavs/LJ038-0294.npy +tests/data/ljspeech/wavs/LJ015-0170.wav|tests/data/ljspeech/wavs/LJ015-0170.npy +tests/data/ljspeech/wavs/LJ001-0001.wav|tests/data/ljspeech/wavs/LJ001-0001.npy +tests/data/ljspeech/wavs/LJ041-0194.wav|tests/data/ljspeech/wavs/LJ041-0194.npy +tests/data/ljspeech/wavs/LJ007-0062.wav|tests/data/ljspeech/wavs/LJ007-0062.npy +tests/data/ljspeech/wavs/LJ029-0043.wav|tests/data/ljspeech/wavs/LJ029-0043.npy +tests/data/ljspeech/wavs/LJ043-0102.wav|tests/data/ljspeech/wavs/LJ043-0102.npy +tests/data/ljspeech/wavs/LJ033-0198.wav|tests/data/ljspeech/wavs/LJ033-0198.npy +tests/data/ljspeech/wavs/LJ006-0271.wav|tests/data/ljspeech/wavs/LJ006-0271.npy +tests/data/ljspeech/wavs/LJ046-0074.wav|tests/data/ljspeech/wavs/LJ046-0074.npy +tests/data/ljspeech/wavs/LJ019-0256.wav|tests/data/ljspeech/wavs/LJ019-0256.npy +tests/data/ljspeech/wavs/LJ019-0364.wav|tests/data/ljspeech/wavs/LJ019-0364.npy +tests/data/ljspeech/wavs/LJ014-0079.wav|tests/data/ljspeech/wavs/LJ014-0079.npy +tests/data/ljspeech/wavs/LJ029-0189.wav|tests/data/ljspeech/wavs/LJ029-0189.npy +tests/data/ljspeech/wavs/LJ034-0140.wav|tests/data/ljspeech/wavs/LJ034-0140.npy +tests/data/ljspeech/wavs/LJ009-0055.wav|tests/data/ljspeech/wavs/LJ009-0055.npy +tests/data/ljspeech/wavs/LJ008-0012.wav|tests/data/ljspeech/wavs/LJ008-0012.npy +tests/data/ljspeech/wavs/LJ016-0015.wav|tests/data/ljspeech/wavs/LJ016-0015.npy +tests/data/ljspeech/wavs/LJ014-0002.wav|tests/data/ljspeech/wavs/LJ014-0002.npy +tests/data/ljspeech/wavs/LJ009-0240.wav|tests/data/ljspeech/wavs/LJ009-0240.npy +tests/data/ljspeech/wavs/LJ010-0183.wav|tests/data/ljspeech/wavs/LJ010-0183.npy +tests/data/ljspeech/wavs/LJ020-0107.wav|tests/data/ljspeech/wavs/LJ020-0107.npy +tests/data/ljspeech/wavs/LJ007-0016.wav|tests/data/ljspeech/wavs/LJ007-0016.npy +tests/data/ljspeech/wavs/LJ045-0086.wav|tests/data/ljspeech/wavs/LJ045-0086.npy +tests/data/ljspeech/wavs/LJ031-0199.wav|tests/data/ljspeech/wavs/LJ031-0199.npy +tests/data/ljspeech/wavs/LJ041-0189.wav|tests/data/ljspeech/wavs/LJ041-0189.npy +tests/data/ljspeech/wavs/LJ046-0246.wav|tests/data/ljspeech/wavs/LJ046-0246.npy +tests/data/ljspeech/wavs/LJ018-0091.wav|tests/data/ljspeech/wavs/LJ018-0091.npy +tests/data/ljspeech/wavs/LJ017-0002.wav|tests/data/ljspeech/wavs/LJ017-0002.npy +tests/data/ljspeech/wavs/LJ035-0176.wav|tests/data/ljspeech/wavs/LJ035-0176.npy +tests/data/ljspeech/wavs/LJ044-0155.wav|tests/data/ljspeech/wavs/LJ044-0155.npy +tests/data/ljspeech/wavs/LJ046-0252.wav|tests/data/ljspeech/wavs/LJ046-0252.npy +tests/data/ljspeech/wavs/LJ016-0065.wav|tests/data/ljspeech/wavs/LJ016-0065.npy +tests/data/ljspeech/wavs/LJ016-0067.wav|tests/data/ljspeech/wavs/LJ016-0067.npy +tests/data/ljspeech/wavs/LJ041-0165.wav|tests/data/ljspeech/wavs/LJ041-0165.npy +tests/data/ljspeech/wavs/LJ038-0232.wav|tests/data/ljspeech/wavs/LJ038-0232.npy +tests/data/ljspeech/wavs/LJ006-0151.wav|tests/data/ljspeech/wavs/LJ006-0151.npy +tests/data/ljspeech/wavs/LJ017-0139.wav|tests/data/ljspeech/wavs/LJ017-0139.npy +tests/data/ljspeech/wavs/LJ008-0130.wav|tests/data/ljspeech/wavs/LJ008-0130.npy +tests/data/ljspeech/wavs/LJ029-0147.wav|tests/data/ljspeech/wavs/LJ029-0147.npy +tests/data/ljspeech/wavs/LJ014-0097.wav|tests/data/ljspeech/wavs/LJ014-0097.npy +tests/data/ljspeech/wavs/LJ032-0131.wav|tests/data/ljspeech/wavs/LJ032-0131.npy +tests/data/ljspeech/wavs/LJ038-0080.wav|tests/data/ljspeech/wavs/LJ038-0080.npy +tests/data/ljspeech/wavs/LJ041-0144.wav|tests/data/ljspeech/wavs/LJ041-0144.npy +tests/data/ljspeech/wavs/LJ040-0133.wav|tests/data/ljspeech/wavs/LJ040-0133.npy +tests/data/ljspeech/wavs/LJ035-0094.wav|tests/data/ljspeech/wavs/LJ035-0094.npy +tests/data/ljspeech/wavs/LJ019-0237.wav|tests/data/ljspeech/wavs/LJ019-0237.npy +tests/data/ljspeech/wavs/LJ032-0275.wav|tests/data/ljspeech/wavs/LJ032-0275.npy +tests/data/ljspeech/wavs/LJ048-0255.wav|tests/data/ljspeech/wavs/LJ048-0255.npy +tests/data/ljspeech/wavs/LJ006-0256.wav|tests/data/ljspeech/wavs/LJ006-0256.npy +tests/data/ljspeech/wavs/LJ040-0170.wav|tests/data/ljspeech/wavs/LJ040-0170.npy +tests/data/ljspeech/wavs/LJ029-0106.wav|tests/data/ljspeech/wavs/LJ029-0106.npy +tests/data/ljspeech/wavs/LJ016-0423.wav|tests/data/ljspeech/wavs/LJ016-0423.npy +tests/data/ljspeech/wavs/LJ005-0227.wav|tests/data/ljspeech/wavs/LJ005-0227.npy +tests/data/ljspeech/wavs/LJ038-0018.wav|tests/data/ljspeech/wavs/LJ038-0018.npy +tests/data/ljspeech/wavs/LJ035-0040.wav|tests/data/ljspeech/wavs/LJ035-0040.npy +tests/data/ljspeech/wavs/LJ028-0133.wav|tests/data/ljspeech/wavs/LJ028-0133.npy +tests/data/ljspeech/wavs/LJ029-0040.wav|tests/data/ljspeech/wavs/LJ029-0040.npy +tests/data/ljspeech/wavs/LJ028-0214.wav|tests/data/ljspeech/wavs/LJ028-0214.npy +tests/data/ljspeech/wavs/LJ007-0172.wav|tests/data/ljspeech/wavs/LJ007-0172.npy +tests/data/ljspeech/wavs/LJ012-0116.wav|tests/data/ljspeech/wavs/LJ012-0116.npy +tests/data/ljspeech/wavs/LJ035-0075.wav|tests/data/ljspeech/wavs/LJ035-0075.npy +tests/data/ljspeech/wavs/LJ047-0173.wav|tests/data/ljspeech/wavs/LJ047-0173.npy +tests/data/ljspeech/wavs/LJ041-0126.wav|tests/data/ljspeech/wavs/LJ041-0126.npy +tests/data/ljspeech/wavs/LJ019-0044.wav|tests/data/ljspeech/wavs/LJ019-0044.npy +tests/data/ljspeech/wavs/LJ050-0111.wav|tests/data/ljspeech/wavs/LJ050-0111.npy +tests/data/ljspeech/wavs/LJ050-0267.wav|tests/data/ljspeech/wavs/LJ050-0267.npy +tests/data/ljspeech/wavs/LJ005-0127.wav|tests/data/ljspeech/wavs/LJ005-0127.npy +tests/data/ljspeech/wavs/LJ011-0007.wav|tests/data/ljspeech/wavs/LJ011-0007.npy +tests/data/ljspeech/wavs/LJ016-0394.wav|tests/data/ljspeech/wavs/LJ016-0394.npy +tests/data/ljspeech/wavs/LJ033-0081.wav|tests/data/ljspeech/wavs/LJ033-0081.npy +tests/data/ljspeech/wavs/LJ011-0025.wav|tests/data/ljspeech/wavs/LJ011-0025.npy +tests/data/ljspeech/wavs/LJ049-0207.wav|tests/data/ljspeech/wavs/LJ049-0207.npy +tests/data/ljspeech/wavs/LJ031-0101.wav|tests/data/ljspeech/wavs/LJ031-0101.npy +tests/data/ljspeech/wavs/LJ002-0295.wav|tests/data/ljspeech/wavs/LJ002-0295.npy +tests/data/ljspeech/wavs/LJ009-0056.wav|tests/data/ljspeech/wavs/LJ009-0056.npy +tests/data/ljspeech/wavs/LJ045-0243.wav|tests/data/ljspeech/wavs/LJ045-0243.npy +tests/data/ljspeech/wavs/LJ005-0165.wav|tests/data/ljspeech/wavs/LJ005-0165.npy +tests/data/ljspeech/wavs/LJ012-0225.wav|tests/data/ljspeech/wavs/LJ012-0225.npy +tests/data/ljspeech/wavs/LJ028-0345.wav|tests/data/ljspeech/wavs/LJ028-0345.npy +tests/data/ljspeech/wavs/LJ003-0221.wav|tests/data/ljspeech/wavs/LJ003-0221.npy +tests/data/ljspeech/wavs/LJ015-0201.wav|tests/data/ljspeech/wavs/LJ015-0201.npy +tests/data/ljspeech/wavs/LJ029-0119.wav|tests/data/ljspeech/wavs/LJ029-0119.npy +tests/data/ljspeech/wavs/LJ012-0094.wav|tests/data/ljspeech/wavs/LJ012-0094.npy +tests/data/ljspeech/wavs/LJ008-0034.wav|tests/data/ljspeech/wavs/LJ008-0034.npy +tests/data/ljspeech/wavs/LJ011-0292.wav|tests/data/ljspeech/wavs/LJ011-0292.npy +tests/data/ljspeech/wavs/LJ041-0134.wav|tests/data/ljspeech/wavs/LJ041-0134.npy +tests/data/ljspeech/wavs/LJ041-0185.wav|tests/data/ljspeech/wavs/LJ041-0185.npy +tests/data/ljspeech/wavs/LJ041-0182.wav|tests/data/ljspeech/wavs/LJ041-0182.npy +tests/data/ljspeech/wavs/LJ006-0177.wav|tests/data/ljspeech/wavs/LJ006-0177.npy +tests/data/ljspeech/wavs/LJ018-0272.wav|tests/data/ljspeech/wavs/LJ018-0272.npy +tests/data/ljspeech/wavs/LJ043-0118.wav|tests/data/ljspeech/wavs/LJ043-0118.npy +tests/data/ljspeech/wavs/LJ045-0226.wav|tests/data/ljspeech/wavs/LJ045-0226.npy +tests/data/ljspeech/wavs/LJ036-0071.wav|tests/data/ljspeech/wavs/LJ036-0071.npy +tests/data/ljspeech/wavs/LJ046-0064.wav|tests/data/ljspeech/wavs/LJ046-0064.npy +tests/data/ljspeech/wavs/LJ029-0081.wav|tests/data/ljspeech/wavs/LJ029-0081.npy +tests/data/ljspeech/wavs/LJ045-0048.wav|tests/data/ljspeech/wavs/LJ045-0048.npy +tests/data/ljspeech/wavs/LJ028-0203.wav|tests/data/ljspeech/wavs/LJ028-0203.npy +tests/data/ljspeech/wavs/LJ007-0153.wav|tests/data/ljspeech/wavs/LJ007-0153.npy +tests/data/ljspeech/wavs/LJ036-0135.wav|tests/data/ljspeech/wavs/LJ036-0135.npy +tests/data/ljspeech/wavs/LJ009-0029.wav|tests/data/ljspeech/wavs/LJ009-0029.npy +tests/data/ljspeech/wavs/LJ028-0253.wav|tests/data/ljspeech/wavs/LJ028-0253.npy +tests/data/ljspeech/wavs/LJ031-0165.wav|tests/data/ljspeech/wavs/LJ031-0165.npy +tests/data/ljspeech/wavs/LJ032-0070.wav|tests/data/ljspeech/wavs/LJ032-0070.npy +tests/data/ljspeech/wavs/LJ049-0220.wav|tests/data/ljspeech/wavs/LJ049-0220.npy +tests/data/ljspeech/wavs/LJ038-0040.wav|tests/data/ljspeech/wavs/LJ038-0040.npy +tests/data/ljspeech/wavs/LJ049-0072.wav|tests/data/ljspeech/wavs/LJ049-0072.npy +tests/data/ljspeech/wavs/LJ006-0011.wav|tests/data/ljspeech/wavs/LJ006-0011.npy +tests/data/ljspeech/wavs/LJ038-0107.wav|tests/data/ljspeech/wavs/LJ038-0107.npy +tests/data/ljspeech/wavs/LJ048-0201.wav|tests/data/ljspeech/wavs/LJ048-0201.npy +tests/data/ljspeech/wavs/LJ028-0033.wav|tests/data/ljspeech/wavs/LJ028-0033.npy +tests/data/ljspeech/wavs/LJ003-0124.wav|tests/data/ljspeech/wavs/LJ003-0124.npy +tests/data/ljspeech/wavs/LJ032-0227.wav|tests/data/ljspeech/wavs/LJ032-0227.npy +tests/data/ljspeech/wavs/LJ049-0196.wav|tests/data/ljspeech/wavs/LJ049-0196.npy +tests/data/ljspeech/wavs/LJ006-0135.wav|tests/data/ljspeech/wavs/LJ006-0135.npy +tests/data/ljspeech/wavs/LJ012-0121.wav|tests/data/ljspeech/wavs/LJ012-0121.npy +tests/data/ljspeech/wavs/LJ028-0073.wav|tests/data/ljspeech/wavs/LJ028-0073.npy +tests/data/ljspeech/wavs/LJ017-0028.wav|tests/data/ljspeech/wavs/LJ017-0028.npy +tests/data/ljspeech/wavs/LJ048-0090.wav|tests/data/ljspeech/wavs/LJ048-0090.npy +tests/data/ljspeech/wavs/LJ026-0038.wav|tests/data/ljspeech/wavs/LJ026-0038.npy +tests/data/ljspeech/wavs/LJ032-0251.wav|tests/data/ljspeech/wavs/LJ032-0251.npy +tests/data/ljspeech/wavs/LJ034-0172.wav|tests/data/ljspeech/wavs/LJ034-0172.npy +tests/data/ljspeech/wavs/LJ007-0067.wav|tests/data/ljspeech/wavs/LJ007-0067.npy +tests/data/ljspeech/wavs/LJ002-0337.wav|tests/data/ljspeech/wavs/LJ002-0337.npy +tests/data/ljspeech/wavs/LJ011-0089.wav|tests/data/ljspeech/wavs/LJ011-0089.npy +tests/data/ljspeech/wavs/LJ012-0160.wav|tests/data/ljspeech/wavs/LJ012-0160.npy +tests/data/ljspeech/wavs/LJ037-0013.wav|tests/data/ljspeech/wavs/LJ037-0013.npy +tests/data/ljspeech/wavs/LJ048-0037.wav|tests/data/ljspeech/wavs/LJ048-0037.npy +tests/data/ljspeech/wavs/LJ029-0095.wav|tests/data/ljspeech/wavs/LJ029-0095.npy +tests/data/ljspeech/wavs/LJ019-0169.wav|tests/data/ljspeech/wavs/LJ019-0169.npy +tests/data/ljspeech/wavs/LJ008-0078.wav|tests/data/ljspeech/wavs/LJ008-0078.npy +tests/data/ljspeech/wavs/LJ047-0102.wav|tests/data/ljspeech/wavs/LJ047-0102.npy +tests/data/ljspeech/wavs/LJ037-0249.wav|tests/data/ljspeech/wavs/LJ037-0249.npy +tests/data/ljspeech/wavs/LJ040-0230.wav|tests/data/ljspeech/wavs/LJ040-0230.npy +tests/data/ljspeech/wavs/LJ008-0063.wav|tests/data/ljspeech/wavs/LJ008-0063.npy +tests/data/ljspeech/wavs/LJ007-0227.wav|tests/data/ljspeech/wavs/LJ007-0227.npy +tests/data/ljspeech/wavs/LJ014-0258.wav|tests/data/ljspeech/wavs/LJ014-0258.npy +tests/data/ljspeech/wavs/LJ034-0034.wav|tests/data/ljspeech/wavs/LJ034-0034.npy +tests/data/ljspeech/wavs/LJ020-0040.wav|tests/data/ljspeech/wavs/LJ020-0040.npy +tests/data/ljspeech/wavs/LJ047-0175.wav|tests/data/ljspeech/wavs/LJ047-0175.npy +tests/data/ljspeech/wavs/LJ046-0225.wav|tests/data/ljspeech/wavs/LJ046-0225.npy +tests/data/ljspeech/wavs/LJ038-0066.wav|tests/data/ljspeech/wavs/LJ038-0066.npy +tests/data/ljspeech/wavs/LJ038-0047.wav|tests/data/ljspeech/wavs/LJ038-0047.npy +tests/data/ljspeech/wavs/LJ037-0170.wav|tests/data/ljspeech/wavs/LJ037-0170.npy +tests/data/ljspeech/wavs/LJ048-0005.wav|tests/data/ljspeech/wavs/LJ048-0005.npy +tests/data/ljspeech/wavs/LJ038-0298.wav|tests/data/ljspeech/wavs/LJ038-0298.npy +tests/data/ljspeech/wavs/LJ008-0242.wav|tests/data/ljspeech/wavs/LJ008-0242.npy +tests/data/ljspeech/wavs/LJ029-0087.wav|tests/data/ljspeech/wavs/LJ029-0087.npy +tests/data/ljspeech/wavs/LJ034-0194.wav|tests/data/ljspeech/wavs/LJ034-0194.npy +tests/data/ljspeech/wavs/LJ008-0277.wav|tests/data/ljspeech/wavs/LJ008-0277.npy +tests/data/ljspeech/wavs/LJ012-0110.wav|tests/data/ljspeech/wavs/LJ012-0110.npy +tests/data/ljspeech/wavs/LJ030-0014.wav|tests/data/ljspeech/wavs/LJ030-0014.npy +tests/data/ljspeech/wavs/LJ048-0178.wav|tests/data/ljspeech/wavs/LJ048-0178.npy +tests/data/ljspeech/wavs/LJ041-0151.wav|tests/data/ljspeech/wavs/LJ041-0151.npy +tests/data/ljspeech/wavs/LJ045-0104.wav|tests/data/ljspeech/wavs/LJ045-0104.npy +tests/data/ljspeech/wavs/LJ036-0046.wav|tests/data/ljspeech/wavs/LJ036-0046.npy +tests/data/ljspeech/wavs/LJ044-0153.wav|tests/data/ljspeech/wavs/LJ044-0153.npy +tests/data/ljspeech/wavs/LJ043-0147.wav|tests/data/ljspeech/wavs/LJ043-0147.npy +tests/data/ljspeech/wavs/LJ043-0177.wav|tests/data/ljspeech/wavs/LJ043-0177.npy +tests/data/ljspeech/wavs/LJ004-0242.wav|tests/data/ljspeech/wavs/LJ004-0242.npy +tests/data/ljspeech/wavs/LJ029-0142.wav|tests/data/ljspeech/wavs/LJ029-0142.npy +tests/data/ljspeech/wavs/LJ003-0011.wav|tests/data/ljspeech/wavs/LJ003-0011.npy +tests/data/ljspeech/wavs/LJ005-0047.wav|tests/data/ljspeech/wavs/LJ005-0047.npy +tests/data/ljspeech/wavs/LJ048-0168.wav|tests/data/ljspeech/wavs/LJ048-0168.npy +tests/data/ljspeech/wavs/LJ044-0041.wav|tests/data/ljspeech/wavs/LJ044-0041.npy +tests/data/ljspeech/wavs/LJ048-0273.wav|tests/data/ljspeech/wavs/LJ048-0273.npy +tests/data/ljspeech/wavs/LJ048-0187.wav|tests/data/ljspeech/wavs/LJ048-0187.npy +tests/data/ljspeech/wavs/LJ005-0128.wav|tests/data/ljspeech/wavs/LJ005-0128.npy +tests/data/ljspeech/wavs/LJ048-0063.wav|tests/data/ljspeech/wavs/LJ048-0063.npy +tests/data/ljspeech/wavs/LJ019-0373.wav|tests/data/ljspeech/wavs/LJ019-0373.npy +tests/data/ljspeech/wavs/LJ037-0139.wav|tests/data/ljspeech/wavs/LJ037-0139.npy +tests/data/ljspeech/wavs/LJ005-0055.wav|tests/data/ljspeech/wavs/LJ005-0055.npy +tests/data/ljspeech/wavs/LJ031-0019.wav|tests/data/ljspeech/wavs/LJ031-0019.npy +tests/data/ljspeech/wavs/LJ050-0229.wav|tests/data/ljspeech/wavs/LJ050-0229.npy +tests/data/ljspeech/wavs/LJ048-0110.wav|tests/data/ljspeech/wavs/LJ048-0110.npy +tests/data/ljspeech/wavs/LJ042-0030.wav|tests/data/ljspeech/wavs/LJ042-0030.npy +tests/data/ljspeech/wavs/LJ002-0322.wav|tests/data/ljspeech/wavs/LJ002-0322.npy +tests/data/ljspeech/wavs/LJ019-0255.wav|tests/data/ljspeech/wavs/LJ019-0255.npy +tests/data/ljspeech/wavs/LJ046-0066.wav|tests/data/ljspeech/wavs/LJ046-0066.npy +tests/data/ljspeech/wavs/LJ018-0313.wav|tests/data/ljspeech/wavs/LJ018-0313.npy +tests/data/ljspeech/wavs/LJ041-0058.wav|tests/data/ljspeech/wavs/LJ041-0058.npy +tests/data/ljspeech/wavs/LJ028-0243.wav|tests/data/ljspeech/wavs/LJ028-0243.npy +tests/data/ljspeech/wavs/LJ028-0489.wav|tests/data/ljspeech/wavs/LJ028-0489.npy +tests/data/ljspeech/wavs/LJ029-0061.wav|tests/data/ljspeech/wavs/LJ029-0061.npy +tests/data/ljspeech/wavs/LJ003-0008.wav|tests/data/ljspeech/wavs/LJ003-0008.npy +tests/data/ljspeech/wavs/LJ050-0234.wav|tests/data/ljspeech/wavs/LJ050-0234.npy +tests/data/ljspeech/wavs/LJ026-0043.wav|tests/data/ljspeech/wavs/LJ026-0043.npy +tests/data/ljspeech/wavs/LJ016-0390.wav|tests/data/ljspeech/wavs/LJ016-0390.npy +tests/data/ljspeech/wavs/LJ034-0074.wav|tests/data/ljspeech/wavs/LJ034-0074.npy +tests/data/ljspeech/wavs/LJ031-0205.wav|tests/data/ljspeech/wavs/LJ031-0205.npy +tests/data/ljspeech/wavs/LJ046-0222.wav|tests/data/ljspeech/wavs/LJ046-0222.npy +tests/data/ljspeech/wavs/LJ044-0118.wav|tests/data/ljspeech/wavs/LJ044-0118.npy +tests/data/ljspeech/wavs/LJ016-0435.wav|tests/data/ljspeech/wavs/LJ016-0435.npy +tests/data/ljspeech/wavs/LJ041-0072.wav|tests/data/ljspeech/wavs/LJ041-0072.npy +tests/data/ljspeech/wavs/LJ035-0076.wav|tests/data/ljspeech/wavs/LJ035-0076.npy +tests/data/ljspeech/wavs/LJ006-0048.wav|tests/data/ljspeech/wavs/LJ006-0048.npy +tests/data/ljspeech/wavs/LJ014-0096.wav|tests/data/ljspeech/wavs/LJ014-0096.npy +tests/data/ljspeech/wavs/LJ012-0101.wav|tests/data/ljspeech/wavs/LJ012-0101.npy +tests/data/ljspeech/wavs/LJ028-0027.wav|tests/data/ljspeech/wavs/LJ028-0027.npy +tests/data/ljspeech/wavs/LJ006-0058.wav|tests/data/ljspeech/wavs/LJ006-0058.npy +tests/data/ljspeech/wavs/LJ035-0020.wav|tests/data/ljspeech/wavs/LJ035-0020.npy +tests/data/ljspeech/wavs/LJ034-0059.wav|tests/data/ljspeech/wavs/LJ034-0059.npy +tests/data/ljspeech/wavs/LJ001-0003.wav|tests/data/ljspeech/wavs/LJ001-0003.npy +tests/data/ljspeech/wavs/LJ040-0199.wav|tests/data/ljspeech/wavs/LJ040-0199.npy +tests/data/ljspeech/wavs/LJ011-0043.wav|tests/data/ljspeech/wavs/LJ011-0043.npy +tests/data/ljspeech/wavs/LJ004-0224.wav|tests/data/ljspeech/wavs/LJ004-0224.npy +tests/data/ljspeech/wavs/LJ049-0205.wav|tests/data/ljspeech/wavs/LJ049-0205.npy +tests/data/ljspeech/wavs/LJ006-0231.wav|tests/data/ljspeech/wavs/LJ006-0231.npy +tests/data/ljspeech/wavs/LJ045-0148.wav|tests/data/ljspeech/wavs/LJ045-0148.npy +tests/data/ljspeech/wavs/LJ012-0091.wav|tests/data/ljspeech/wavs/LJ012-0091.npy +tests/data/ljspeech/wavs/LJ002-0027.wav|tests/data/ljspeech/wavs/LJ002-0027.npy +tests/data/ljspeech/wavs/LJ048-0072.wav|tests/data/ljspeech/wavs/LJ048-0072.npy +tests/data/ljspeech/wavs/LJ006-0199.wav|tests/data/ljspeech/wavs/LJ006-0199.npy +tests/data/ljspeech/wavs/LJ019-0300.wav|tests/data/ljspeech/wavs/LJ019-0300.npy +tests/data/ljspeech/wavs/LJ018-0044.wav|tests/data/ljspeech/wavs/LJ018-0044.npy +tests/data/ljspeech/wavs/LJ047-0106.wav|tests/data/ljspeech/wavs/LJ047-0106.npy +tests/data/ljspeech/wavs/LJ045-0182.wav|tests/data/ljspeech/wavs/LJ045-0182.npy +tests/data/ljspeech/wavs/LJ012-0095.wav|tests/data/ljspeech/wavs/LJ012-0095.npy +tests/data/ljspeech/wavs/LJ031-0056.wav|tests/data/ljspeech/wavs/LJ031-0056.npy +tests/data/ljspeech/wavs/LJ007-0063.wav|tests/data/ljspeech/wavs/LJ007-0063.npy +tests/data/ljspeech/wavs/LJ048-0011.wav|tests/data/ljspeech/wavs/LJ048-0011.npy +tests/data/ljspeech/wavs/LJ028-0284.wav|tests/data/ljspeech/wavs/LJ028-0284.npy +tests/data/ljspeech/wavs/LJ004-0234.wav|tests/data/ljspeech/wavs/LJ004-0234.npy +tests/data/ljspeech/wavs/LJ041-0030.wav|tests/data/ljspeech/wavs/LJ041-0030.npy +tests/data/ljspeech/wavs/LJ039-0127.wav|tests/data/ljspeech/wavs/LJ039-0127.npy +tests/data/ljspeech/wavs/LJ039-0096.wav|tests/data/ljspeech/wavs/LJ039-0096.npy +tests/data/ljspeech/wavs/LJ032-0032.wav|tests/data/ljspeech/wavs/LJ032-0032.npy +tests/data/ljspeech/wavs/LJ012-0234.wav|tests/data/ljspeech/wavs/LJ012-0234.npy +tests/data/ljspeech/wavs/LJ016-0105.wav|tests/data/ljspeech/wavs/LJ016-0105.npy +tests/data/ljspeech/wavs/LJ031-0071.wav|tests/data/ljspeech/wavs/LJ031-0071.npy +tests/data/ljspeech/wavs/LJ007-0125.wav|tests/data/ljspeech/wavs/LJ007-0125.npy +tests/data/ljspeech/wavs/LJ017-0120.wav|tests/data/ljspeech/wavs/LJ017-0120.npy +tests/data/ljspeech/wavs/LJ050-0277.wav|tests/data/ljspeech/wavs/LJ050-0277.npy +tests/data/ljspeech/wavs/LJ012-0187.wav|tests/data/ljspeech/wavs/LJ012-0187.npy +tests/data/ljspeech/wavs/LJ038-0275.wav|tests/data/ljspeech/wavs/LJ038-0275.npy +tests/data/ljspeech/wavs/LJ018-0292.wav|tests/data/ljspeech/wavs/LJ018-0292.npy +tests/data/ljspeech/wavs/LJ016-0042.wav|tests/data/ljspeech/wavs/LJ016-0042.npy +tests/data/ljspeech/wavs/LJ008-0042.wav|tests/data/ljspeech/wavs/LJ008-0042.npy +tests/data/ljspeech/wavs/LJ040-0023.wav|tests/data/ljspeech/wavs/LJ040-0023.npy +tests/data/ljspeech/wavs/LJ033-0134.wav|tests/data/ljspeech/wavs/LJ033-0134.npy +tests/data/ljspeech/wavs/LJ033-0044.wav|tests/data/ljspeech/wavs/LJ033-0044.npy +tests/data/ljspeech/wavs/LJ019-0172.wav|tests/data/ljspeech/wavs/LJ019-0172.npy +tests/data/ljspeech/wavs/LJ047-0125.wav|tests/data/ljspeech/wavs/LJ047-0125.npy +tests/data/ljspeech/wavs/LJ003-0286.wav|tests/data/ljspeech/wavs/LJ003-0286.npy +tests/data/ljspeech/wavs/LJ038-0109.wav|tests/data/ljspeech/wavs/LJ038-0109.npy +tests/data/ljspeech/wavs/LJ003-0033.wav|tests/data/ljspeech/wavs/LJ003-0033.npy +tests/data/ljspeech/wavs/LJ012-0272.wav|tests/data/ljspeech/wavs/LJ012-0272.npy +tests/data/ljspeech/wavs/LJ029-0058.wav|tests/data/ljspeech/wavs/LJ029-0058.npy +tests/data/ljspeech/wavs/LJ028-0283.wav|tests/data/ljspeech/wavs/LJ028-0283.npy +tests/data/ljspeech/wavs/LJ041-0037.wav|tests/data/ljspeech/wavs/LJ041-0037.npy +tests/data/ljspeech/wavs/LJ039-0024.wav|tests/data/ljspeech/wavs/LJ039-0024.npy +tests/data/ljspeech/wavs/LJ038-0125.wav|tests/data/ljspeech/wavs/LJ038-0125.npy +tests/data/ljspeech/wavs/LJ033-0157.wav|tests/data/ljspeech/wavs/LJ033-0157.npy +tests/data/ljspeech/wavs/LJ043-0188.wav|tests/data/ljspeech/wavs/LJ043-0188.npy +tests/data/ljspeech/wavs/LJ043-0185.wav|tests/data/ljspeech/wavs/LJ043-0185.npy +tests/data/ljspeech/wavs/LJ040-0125.wav|tests/data/ljspeech/wavs/LJ040-0125.npy +tests/data/ljspeech/wavs/LJ037-0119.wav|tests/data/ljspeech/wavs/LJ037-0119.npy +tests/data/ljspeech/wavs/LJ041-0090.wav|tests/data/ljspeech/wavs/LJ041-0090.npy +tests/data/ljspeech/wavs/LJ036-0133.wav|tests/data/ljspeech/wavs/LJ036-0133.npy +tests/data/ljspeech/wavs/LJ007-0152.wav|tests/data/ljspeech/wavs/LJ007-0152.npy +tests/data/ljspeech/wavs/LJ037-0123.wav|tests/data/ljspeech/wavs/LJ037-0123.npy +tests/data/ljspeech/wavs/LJ044-0191.wav|tests/data/ljspeech/wavs/LJ044-0191.npy +tests/data/ljspeech/wavs/LJ009-0009.wav|tests/data/ljspeech/wavs/LJ009-0009.npy +tests/data/ljspeech/wavs/LJ044-0093.wav|tests/data/ljspeech/wavs/LJ044-0093.npy +tests/data/ljspeech/wavs/LJ007-0058.wav|tests/data/ljspeech/wavs/LJ007-0058.npy +tests/data/ljspeech/wavs/LJ011-0189.wav|tests/data/ljspeech/wavs/LJ011-0189.npy +tests/data/ljspeech/wavs/LJ004-0062.wav|tests/data/ljspeech/wavs/LJ004-0062.npy +tests/data/ljspeech/wavs/LJ032-0225.wav|tests/data/ljspeech/wavs/LJ032-0225.npy +tests/data/ljspeech/wavs/LJ001-0152.wav|tests/data/ljspeech/wavs/LJ001-0152.npy +tests/data/ljspeech/wavs/LJ006-0243.wav|tests/data/ljspeech/wavs/LJ006-0243.npy +tests/data/ljspeech/wavs/LJ013-0077.wav|tests/data/ljspeech/wavs/LJ013-0077.npy +tests/data/ljspeech/wavs/LJ041-0139.wav|tests/data/ljspeech/wavs/LJ041-0139.npy +tests/data/ljspeech/wavs/LJ010-0053.wav|tests/data/ljspeech/wavs/LJ010-0053.npy +tests/data/ljspeech/wavs/LJ005-0205.wav|tests/data/ljspeech/wavs/LJ005-0205.npy +tests/data/ljspeech/wavs/LJ014-0333.wav|tests/data/ljspeech/wavs/LJ014-0333.npy +tests/data/ljspeech/wavs/LJ038-0230.wav|tests/data/ljspeech/wavs/LJ038-0230.npy +tests/data/ljspeech/wavs/LJ003-0263.wav|tests/data/ljspeech/wavs/LJ003-0263.npy +tests/data/ljspeech/wavs/LJ011-0149.wav|tests/data/ljspeech/wavs/LJ011-0149.npy +tests/data/ljspeech/wavs/LJ009-0030.wav|tests/data/ljspeech/wavs/LJ009-0030.npy +tests/data/ljspeech/wavs/LJ019-0183.wav|tests/data/ljspeech/wavs/LJ019-0183.npy +tests/data/ljspeech/wavs/LJ031-0054.wav|tests/data/ljspeech/wavs/LJ031-0054.npy +tests/data/ljspeech/wavs/LJ019-0136.wav|tests/data/ljspeech/wavs/LJ019-0136.npy +tests/data/ljspeech/wavs/LJ025-0114.wav|tests/data/ljspeech/wavs/LJ025-0114.npy +tests/data/ljspeech/wavs/LJ005-0122.wav|tests/data/ljspeech/wavs/LJ005-0122.npy +tests/data/ljspeech/wavs/LJ033-0123.wav|tests/data/ljspeech/wavs/LJ033-0123.npy +tests/data/ljspeech/wavs/LJ029-0009.wav|tests/data/ljspeech/wavs/LJ029-0009.npy +tests/data/ljspeech/wavs/LJ029-0109.wav|tests/data/ljspeech/wavs/LJ029-0109.npy +tests/data/ljspeech/wavs/LJ037-0041.wav|tests/data/ljspeech/wavs/LJ037-0041.npy +tests/data/ljspeech/wavs/LJ031-0148.wav|tests/data/ljspeech/wavs/LJ031-0148.npy +tests/data/ljspeech/wavs/LJ049-0177.wav|tests/data/ljspeech/wavs/LJ049-0177.npy +tests/data/ljspeech/wavs/LJ040-0006.wav|tests/data/ljspeech/wavs/LJ040-0006.npy +tests/data/ljspeech/wavs/LJ049-0041.wav|tests/data/ljspeech/wavs/LJ049-0041.npy +tests/data/ljspeech/wavs/LJ049-0102.wav|tests/data/ljspeech/wavs/LJ049-0102.npy +tests/data/ljspeech/wavs/LJ012-0125.wav|tests/data/ljspeech/wavs/LJ012-0125.npy +tests/data/ljspeech/wavs/LJ047-0162.wav|tests/data/ljspeech/wavs/LJ047-0162.npy +tests/data/ljspeech/wavs/LJ007-0207.wav|tests/data/ljspeech/wavs/LJ007-0207.npy +tests/data/ljspeech/wavs/LJ033-0115.wav|tests/data/ljspeech/wavs/LJ033-0115.npy +tests/data/ljspeech/wavs/LJ041-0187.wav|tests/data/ljspeech/wavs/LJ041-0187.npy +tests/data/ljspeech/wavs/LJ011-0092.wav|tests/data/ljspeech/wavs/LJ011-0092.npy +tests/data/ljspeech/wavs/LJ034-0145.wav|tests/data/ljspeech/wavs/LJ034-0145.npy +tests/data/ljspeech/wavs/LJ031-0028.wav|tests/data/ljspeech/wavs/LJ031-0028.npy +tests/data/ljspeech/wavs/LJ030-0089.wav|tests/data/ljspeech/wavs/LJ030-0089.npy +tests/data/ljspeech/wavs/LJ019-0047.wav|tests/data/ljspeech/wavs/LJ019-0047.npy +tests/data/ljspeech/wavs/LJ019-0023.wav|tests/data/ljspeech/wavs/LJ019-0023.npy +tests/data/ljspeech/wavs/LJ028-0106.wav|tests/data/ljspeech/wavs/LJ028-0106.npy +tests/data/ljspeech/wavs/LJ028-0511.wav|tests/data/ljspeech/wavs/LJ028-0511.npy +tests/data/ljspeech/wavs/LJ035-0015.wav|tests/data/ljspeech/wavs/LJ035-0015.npy +tests/data/ljspeech/wavs/LJ017-0077.wav|tests/data/ljspeech/wavs/LJ017-0077.npy +tests/data/ljspeech/wavs/LJ032-0182.wav|tests/data/ljspeech/wavs/LJ032-0182.npy +tests/data/ljspeech/wavs/LJ031-0091.wav|tests/data/ljspeech/wavs/LJ031-0091.npy +tests/data/ljspeech/wavs/LJ049-0211.wav|tests/data/ljspeech/wavs/LJ049-0211.npy +tests/data/ljspeech/wavs/LJ029-0173.wav|tests/data/ljspeech/wavs/LJ029-0173.npy +tests/data/ljspeech/wavs/LJ045-0162.wav|tests/data/ljspeech/wavs/LJ045-0162.npy +tests/data/ljspeech/wavs/LJ043-0162.wav|tests/data/ljspeech/wavs/LJ043-0162.npy +tests/data/ljspeech/wavs/LJ048-0219.wav|tests/data/ljspeech/wavs/LJ048-0219.npy +tests/data/ljspeech/wavs/LJ017-0128.wav|tests/data/ljspeech/wavs/LJ017-0128.npy +tests/data/ljspeech/wavs/LJ031-0076.wav|tests/data/ljspeech/wavs/LJ031-0076.npy +tests/data/ljspeech/wavs/LJ009-0008.wav|tests/data/ljspeech/wavs/LJ009-0008.npy +tests/data/ljspeech/wavs/LJ045-0200.wav|tests/data/ljspeech/wavs/LJ045-0200.npy +tests/data/ljspeech/wavs/LJ006-0091.wav|tests/data/ljspeech/wavs/LJ006-0091.npy +tests/data/ljspeech/wavs/LJ037-0088.wav|tests/data/ljspeech/wavs/LJ037-0088.npy +tests/data/ljspeech/wavs/LJ045-0229.wav|tests/data/ljspeech/wavs/LJ045-0229.npy +tests/data/ljspeech/wavs/LJ007-0037.wav|tests/data/ljspeech/wavs/LJ007-0037.npy +tests/data/ljspeech/wavs/LJ009-0152.wav|tests/data/ljspeech/wavs/LJ009-0152.npy +tests/data/ljspeech/wavs/LJ037-0199.wav|tests/data/ljspeech/wavs/LJ037-0199.npy +tests/data/ljspeech/wavs/LJ049-0106.wav|tests/data/ljspeech/wavs/LJ049-0106.npy +tests/data/ljspeech/wavs/LJ041-0068.wav|tests/data/ljspeech/wavs/LJ041-0068.npy +tests/data/ljspeech/wavs/LJ034-0203.wav|tests/data/ljspeech/wavs/LJ034-0203.npy +tests/data/ljspeech/wavs/LJ002-0068.wav|tests/data/ljspeech/wavs/LJ002-0068.npy +tests/data/ljspeech/wavs/LJ005-0271.wav|tests/data/ljspeech/wavs/LJ005-0271.npy +tests/data/ljspeech/wavs/LJ010-0005.wav|tests/data/ljspeech/wavs/LJ010-0005.npy +tests/data/ljspeech/wavs/LJ005-0131.wav|tests/data/ljspeech/wavs/LJ005-0131.npy +tests/data/ljspeech/wavs/LJ036-0140.wav|tests/data/ljspeech/wavs/LJ036-0140.npy +tests/data/ljspeech/wavs/LJ035-0022.wav|tests/data/ljspeech/wavs/LJ035-0022.npy +tests/data/ljspeech/wavs/LJ014-0077.wav|tests/data/ljspeech/wavs/LJ014-0077.npy +tests/data/ljspeech/wavs/LJ050-0031.wav|tests/data/ljspeech/wavs/LJ050-0031.npy +tests/data/ljspeech/wavs/LJ013-0236.wav|tests/data/ljspeech/wavs/LJ013-0236.npy +tests/data/ljspeech/wavs/LJ034-0094.wav|tests/data/ljspeech/wavs/LJ034-0094.npy +tests/data/ljspeech/wavs/LJ002-0251.wav|tests/data/ljspeech/wavs/LJ002-0251.npy +tests/data/ljspeech/wavs/LJ005-0229.wav|tests/data/ljspeech/wavs/LJ005-0229.npy +tests/data/ljspeech/wavs/LJ005-0066.wav|tests/data/ljspeech/wavs/LJ005-0066.npy +tests/data/ljspeech/wavs/LJ005-0062.wav|tests/data/ljspeech/wavs/LJ005-0062.npy +tests/data/ljspeech/wavs/LJ049-0137.wav|tests/data/ljspeech/wavs/LJ049-0137.npy +tests/data/ljspeech/wavs/LJ007-0131.wav|tests/data/ljspeech/wavs/LJ007-0131.npy +tests/data/ljspeech/wavs/LJ039-0049.wav|tests/data/ljspeech/wavs/LJ039-0049.npy +tests/data/ljspeech/wavs/LJ037-0033.wav|tests/data/ljspeech/wavs/LJ037-0033.npy +tests/data/ljspeech/wavs/LJ004-0047.wav|tests/data/ljspeech/wavs/LJ004-0047.npy +tests/data/ljspeech/wavs/LJ007-0007.wav|tests/data/ljspeech/wavs/LJ007-0007.npy +tests/data/ljspeech/wavs/LJ043-0069.wav|tests/data/ljspeech/wavs/LJ043-0069.npy +tests/data/ljspeech/wavs/LJ005-0296.wav|tests/data/ljspeech/wavs/LJ005-0296.npy +tests/data/ljspeech/wavs/LJ016-0056.wav|tests/data/ljspeech/wavs/LJ016-0056.npy +tests/data/ljspeech/wavs/LJ019-0165.wav|tests/data/ljspeech/wavs/LJ019-0165.npy +tests/data/ljspeech/wavs/LJ016-0439.wav|tests/data/ljspeech/wavs/LJ016-0439.npy +tests/data/ljspeech/wavs/LJ045-0218.wav|tests/data/ljspeech/wavs/LJ045-0218.npy +tests/data/ljspeech/wavs/LJ032-0114.wav|tests/data/ljspeech/wavs/LJ032-0114.npy +tests/data/ljspeech/wavs/LJ048-0087.wav|tests/data/ljspeech/wavs/LJ048-0087.npy +tests/data/ljspeech/wavs/LJ041-0042.wav|tests/data/ljspeech/wavs/LJ041-0042.npy +tests/data/ljspeech/wavs/LJ032-0150.wav|tests/data/ljspeech/wavs/LJ032-0150.npy +tests/data/ljspeech/wavs/LJ048-0204.wav|tests/data/ljspeech/wavs/LJ048-0204.npy +tests/data/ljspeech/wavs/LJ049-0164.wav|tests/data/ljspeech/wavs/LJ049-0164.npy +tests/data/ljspeech/wavs/LJ006-0076.wav|tests/data/ljspeech/wavs/LJ006-0076.npy +tests/data/ljspeech/wavs/LJ050-0268.wav|tests/data/ljspeech/wavs/LJ050-0268.npy +tests/data/ljspeech/wavs/LJ048-0276.wav|tests/data/ljspeech/wavs/LJ048-0276.npy +tests/data/ljspeech/wavs/LJ019-0359.wav|tests/data/ljspeech/wavs/LJ019-0359.npy +tests/data/ljspeech/wavs/LJ035-0099.wav|tests/data/ljspeech/wavs/LJ035-0099.npy +tests/data/ljspeech/wavs/LJ006-0297.wav|tests/data/ljspeech/wavs/LJ006-0297.npy +tests/data/ljspeech/wavs/LJ013-0209.wav|tests/data/ljspeech/wavs/LJ013-0209.npy +tests/data/ljspeech/wavs/LJ045-0013.wav|tests/data/ljspeech/wavs/LJ045-0013.npy +tests/data/ljspeech/wavs/LJ009-0188.wav|tests/data/ljspeech/wavs/LJ009-0188.npy +tests/data/ljspeech/wavs/LJ045-0174.wav|tests/data/ljspeech/wavs/LJ045-0174.npy +tests/data/ljspeech/wavs/LJ003-0189.wav|tests/data/ljspeech/wavs/LJ003-0189.npy +tests/data/ljspeech/wavs/LJ031-0085.wav|tests/data/ljspeech/wavs/LJ031-0085.npy +tests/data/ljspeech/wavs/LJ031-0030.wav|tests/data/ljspeech/wavs/LJ031-0030.npy +tests/data/ljspeech/wavs/LJ032-0183.wav|tests/data/ljspeech/wavs/LJ032-0183.npy +tests/data/ljspeech/wavs/LJ034-0118.wav|tests/data/ljspeech/wavs/LJ034-0118.npy +tests/data/ljspeech/wavs/LJ006-0119.wav|tests/data/ljspeech/wavs/LJ006-0119.npy +tests/data/ljspeech/wavs/LJ031-0179.wav|tests/data/ljspeech/wavs/LJ031-0179.npy +tests/data/ljspeech/wavs/LJ004-0050.wav|tests/data/ljspeech/wavs/LJ004-0050.npy +tests/data/ljspeech/wavs/LJ011-0127.wav|tests/data/ljspeech/wavs/LJ011-0127.npy +tests/data/ljspeech/wavs/LJ047-0180.wav|tests/data/ljspeech/wavs/LJ047-0180.npy +tests/data/ljspeech/wavs/LJ005-0050.wav|tests/data/ljspeech/wavs/LJ005-0050.npy +tests/data/ljspeech/wavs/LJ019-0212.wav|tests/data/ljspeech/wavs/LJ019-0212.npy +tests/data/ljspeech/wavs/LJ018-0364.wav|tests/data/ljspeech/wavs/LJ018-0364.npy +tests/data/ljspeech/wavs/LJ047-0124.wav|tests/data/ljspeech/wavs/LJ047-0124.npy +tests/data/ljspeech/wavs/LJ049-0114.wav|tests/data/ljspeech/wavs/LJ049-0114.npy +tests/data/ljspeech/wavs/LJ013-0174.wav|tests/data/ljspeech/wavs/LJ013-0174.npy +tests/data/ljspeech/wavs/LJ048-0197.wav|tests/data/ljspeech/wavs/LJ048-0197.npy +tests/data/ljspeech/wavs/LJ039-0183.wav|tests/data/ljspeech/wavs/LJ039-0183.npy +tests/data/ljspeech/wavs/LJ005-0026.wav|tests/data/ljspeech/wavs/LJ005-0026.npy +tests/data/ljspeech/wavs/LJ030-0115.wav|tests/data/ljspeech/wavs/LJ030-0115.npy +tests/data/ljspeech/wavs/LJ032-0068.wav|tests/data/ljspeech/wavs/LJ032-0068.npy +tests/data/ljspeech/wavs/LJ032-0048.wav|tests/data/ljspeech/wavs/LJ032-0048.npy +tests/data/ljspeech/wavs/LJ006-0245.wav|tests/data/ljspeech/wavs/LJ006-0245.npy +tests/data/ljspeech/wavs/LJ019-0042.wav|tests/data/ljspeech/wavs/LJ019-0042.npy +tests/data/ljspeech/wavs/LJ006-0137.wav|tests/data/ljspeech/wavs/LJ006-0137.npy +tests/data/ljspeech/wavs/LJ034-0060.wav|tests/data/ljspeech/wavs/LJ034-0060.npy +tests/data/ljspeech/wavs/LJ016-0364.wav|tests/data/ljspeech/wavs/LJ016-0364.npy +tests/data/ljspeech/wavs/LJ041-0175.wav|tests/data/ljspeech/wavs/LJ041-0175.npy +tests/data/ljspeech/wavs/LJ019-0238.wav|tests/data/ljspeech/wavs/LJ019-0238.npy +tests/data/ljspeech/wavs/LJ049-0027.wav|tests/data/ljspeech/wavs/LJ049-0027.npy +tests/data/ljspeech/wavs/LJ019-0082.wav|tests/data/ljspeech/wavs/LJ019-0082.npy +tests/data/ljspeech/wavs/LJ049-0084.wav|tests/data/ljspeech/wavs/LJ049-0084.npy +tests/data/ljspeech/wavs/LJ043-0184.wav|tests/data/ljspeech/wavs/LJ043-0184.npy +tests/data/ljspeech/wavs/LJ019-0299.wav|tests/data/ljspeech/wavs/LJ019-0299.npy +tests/data/ljspeech/wavs/LJ043-0174.wav|tests/data/ljspeech/wavs/LJ043-0174.npy +tests/data/ljspeech/wavs/LJ035-0208.wav|tests/data/ljspeech/wavs/LJ035-0208.npy +tests/data/ljspeech/wavs/LJ006-0098.wav|tests/data/ljspeech/wavs/LJ006-0098.npy +tests/data/ljspeech/wavs/LJ026-0010.wav|tests/data/ljspeech/wavs/LJ026-0010.npy +tests/data/ljspeech/wavs/LJ050-0173.wav|tests/data/ljspeech/wavs/LJ050-0173.npy +tests/data/ljspeech/wavs/LJ050-0153.wav|tests/data/ljspeech/wavs/LJ050-0153.npy +tests/data/ljspeech/wavs/LJ031-0050.wav|tests/data/ljspeech/wavs/LJ031-0050.npy +tests/data/ljspeech/wavs/LJ048-0125.wav|tests/data/ljspeech/wavs/LJ048-0125.npy +tests/data/ljspeech/wavs/LJ017-0007.wav|tests/data/ljspeech/wavs/LJ017-0007.npy +tests/data/ljspeech/wavs/LJ037-0083.wav|tests/data/ljspeech/wavs/LJ037-0083.npy +tests/data/ljspeech/wavs/LJ031-0095.wav|tests/data/ljspeech/wavs/LJ031-0095.npy +tests/data/ljspeech/wavs/LJ037-0156.wav|tests/data/ljspeech/wavs/LJ037-0156.npy +tests/data/ljspeech/wavs/LJ047-0213.wav|tests/data/ljspeech/wavs/LJ047-0213.npy +tests/data/ljspeech/wavs/LJ043-0170.wav|tests/data/ljspeech/wavs/LJ043-0170.npy +tests/data/ljspeech/wavs/LJ048-0185.wav|tests/data/ljspeech/wavs/LJ048-0185.npy +tests/data/ljspeech/wavs/LJ049-0192.wav|tests/data/ljspeech/wavs/LJ049-0192.npy +tests/data/ljspeech/wavs/LJ009-0251.wav|tests/data/ljspeech/wavs/LJ009-0251.npy +tests/data/ljspeech/wavs/LJ006-0195.wav|tests/data/ljspeech/wavs/LJ006-0195.npy +tests/data/ljspeech/wavs/LJ006-0067.wav|tests/data/ljspeech/wavs/LJ006-0067.npy +tests/data/ljspeech/wavs/LJ048-0262.wav|tests/data/ljspeech/wavs/LJ048-0262.npy +tests/data/ljspeech/wavs/LJ034-0040.wav|tests/data/ljspeech/wavs/LJ034-0040.npy +tests/data/ljspeech/wavs/LJ019-0250.wav|tests/data/ljspeech/wavs/LJ019-0250.npy +tests/data/ljspeech/wavs/LJ014-0133.wav|tests/data/ljspeech/wavs/LJ014-0133.npy +tests/data/ljspeech/wavs/LJ006-0043.wav|tests/data/ljspeech/wavs/LJ006-0043.npy +tests/data/ljspeech/wavs/LJ029-0168.wav|tests/data/ljspeech/wavs/LJ029-0168.npy +tests/data/ljspeech/wavs/LJ039-0026.wav|tests/data/ljspeech/wavs/LJ039-0026.npy +tests/data/ljspeech/wavs/LJ045-0194.wav|tests/data/ljspeech/wavs/LJ045-0194.npy +tests/data/ljspeech/wavs/LJ038-0263.wav|tests/data/ljspeech/wavs/LJ038-0263.npy +tests/data/ljspeech/wavs/LJ034-0005.wav|tests/data/ljspeech/wavs/LJ034-0005.npy +tests/data/ljspeech/wavs/LJ030-0221.wav|tests/data/ljspeech/wavs/LJ030-0221.npy +tests/data/ljspeech/wavs/LJ032-0102.wav|tests/data/ljspeech/wavs/LJ032-0102.npy +tests/data/ljspeech/wavs/LJ033-0167.wav|tests/data/ljspeech/wavs/LJ033-0167.npy +tests/data/ljspeech/wavs/LJ031-0111.wav|tests/data/ljspeech/wavs/LJ031-0111.npy +tests/data/ljspeech/wavs/LJ029-0073.wav|tests/data/ljspeech/wavs/LJ029-0073.npy +tests/data/ljspeech/wavs/LJ008-0301.wav|tests/data/ljspeech/wavs/LJ008-0301.npy +tests/data/ljspeech/wavs/LJ041-0034.wav|tests/data/ljspeech/wavs/LJ041-0034.npy +tests/data/ljspeech/wavs/LJ045-0165.wav|tests/data/ljspeech/wavs/LJ045-0165.npy +tests/data/ljspeech/wavs/LJ032-0148.wav|tests/data/ljspeech/wavs/LJ032-0148.npy +tests/data/ljspeech/wavs/LJ029-0098.wav|tests/data/ljspeech/wavs/LJ029-0098.npy +tests/data/ljspeech/wavs/LJ050-0265.wav|tests/data/ljspeech/wavs/LJ050-0265.npy +tests/data/ljspeech/wavs/LJ048-0149.wav|tests/data/ljspeech/wavs/LJ048-0149.npy +tests/data/ljspeech/wavs/LJ005-0111.wav|tests/data/ljspeech/wavs/LJ005-0111.npy +tests/data/ljspeech/wavs/LJ007-0192.wav|tests/data/ljspeech/wavs/LJ007-0192.npy +tests/data/ljspeech/wavs/LJ006-0290.wav|tests/data/ljspeech/wavs/LJ006-0290.npy +tests/data/ljspeech/wavs/LJ039-0208.wav|tests/data/ljspeech/wavs/LJ039-0208.npy +tests/data/ljspeech/wavs/LJ037-0024.wav|tests/data/ljspeech/wavs/LJ037-0024.npy +tests/data/ljspeech/wavs/LJ006-0170.wav|tests/data/ljspeech/wavs/LJ006-0170.npy +tests/data/ljspeech/wavs/LJ012-0155.wav|tests/data/ljspeech/wavs/LJ012-0155.npy +tests/data/ljspeech/wavs/LJ030-0132.wav|tests/data/ljspeech/wavs/LJ030-0132.npy +tests/data/ljspeech/wavs/LJ040-0225.wav|tests/data/ljspeech/wavs/LJ040-0225.npy +tests/data/ljspeech/wavs/LJ011-0101.wav|tests/data/ljspeech/wavs/LJ011-0101.npy +tests/data/ljspeech/wavs/LJ047-0169.wav|tests/data/ljspeech/wavs/LJ047-0169.npy +tests/data/ljspeech/wavs/LJ007-0102.wav|tests/data/ljspeech/wavs/LJ007-0102.npy +tests/data/ljspeech/wavs/LJ048-0202.wav|tests/data/ljspeech/wavs/LJ048-0202.npy +tests/data/ljspeech/wavs/LJ009-0053.wav|tests/data/ljspeech/wavs/LJ009-0053.npy +tests/data/ljspeech/wavs/LJ016-0130.wav|tests/data/ljspeech/wavs/LJ016-0130.npy +tests/data/ljspeech/wavs/LJ046-0031.wav|tests/data/ljspeech/wavs/LJ046-0031.npy +tests/data/ljspeech/wavs/LJ035-0032.wav|tests/data/ljspeech/wavs/LJ035-0032.npy +tests/data/ljspeech/wavs/LJ048-0177.wav|tests/data/ljspeech/wavs/LJ048-0177.npy +tests/data/ljspeech/wavs/LJ029-0029.wav|tests/data/ljspeech/wavs/LJ029-0029.npy +tests/data/ljspeech/wavs/LJ005-0265.wav|tests/data/ljspeech/wavs/LJ005-0265.npy +tests/data/ljspeech/wavs/LJ046-0025.wav|tests/data/ljspeech/wavs/LJ046-0025.npy +tests/data/ljspeech/wavs/LJ007-0036.wav|tests/data/ljspeech/wavs/LJ007-0036.npy +tests/data/ljspeech/wavs/LJ050-0196.wav|tests/data/ljspeech/wavs/LJ050-0196.npy +tests/data/ljspeech/wavs/LJ012-0224.wav|tests/data/ljspeech/wavs/LJ012-0224.npy +tests/data/ljspeech/wavs/LJ035-0101.wav|tests/data/ljspeech/wavs/LJ035-0101.npy +tests/data/ljspeech/wavs/LJ039-0189.wav|tests/data/ljspeech/wavs/LJ039-0189.npy +tests/data/ljspeech/wavs/LJ036-0138.wav|tests/data/ljspeech/wavs/LJ036-0138.npy +tests/data/ljspeech/wavs/LJ034-0191.wav|tests/data/ljspeech/wavs/LJ034-0191.npy +tests/data/ljspeech/wavs/LJ048-0019.wav|tests/data/ljspeech/wavs/LJ048-0019.npy +tests/data/ljspeech/wavs/LJ011-0042.wav|tests/data/ljspeech/wavs/LJ011-0042.npy +tests/data/ljspeech/wavs/LJ034-0154.wav|tests/data/ljspeech/wavs/LJ034-0154.npy +tests/data/ljspeech/wavs/LJ007-0160.wav|tests/data/ljspeech/wavs/LJ007-0160.npy +tests/data/ljspeech/wavs/LJ047-0093.wav|tests/data/ljspeech/wavs/LJ047-0093.npy +tests/data/ljspeech/wavs/LJ045-0093.wav|tests/data/ljspeech/wavs/LJ045-0093.npy +tests/data/ljspeech/wavs/LJ027-0138.wav|tests/data/ljspeech/wavs/LJ027-0138.npy +tests/data/ljspeech/wavs/LJ037-0140.wav|tests/data/ljspeech/wavs/LJ037-0140.npy +tests/data/ljspeech/wavs/LJ046-0015.wav|tests/data/ljspeech/wavs/LJ046-0015.npy +tests/data/ljspeech/wavs/LJ045-0085.wav|tests/data/ljspeech/wavs/LJ045-0085.npy +tests/data/ljspeech/wavs/LJ050-0165.wav|tests/data/ljspeech/wavs/LJ050-0165.npy +tests/data/ljspeech/wavs/LJ019-0337.wav|tests/data/ljspeech/wavs/LJ019-0337.npy +tests/data/ljspeech/wavs/LJ050-0161.wav|tests/data/ljspeech/wavs/LJ050-0161.npy +tests/data/ljspeech/wavs/LJ006-0030.wav|tests/data/ljspeech/wavs/LJ006-0030.npy +tests/data/ljspeech/wavs/LJ050-0076.wav|tests/data/ljspeech/wavs/LJ050-0076.npy +tests/data/ljspeech/wavs/LJ011-0029.wav|tests/data/ljspeech/wavs/LJ011-0029.npy +tests/data/ljspeech/wavs/LJ007-0061.wav|tests/data/ljspeech/wavs/LJ007-0061.npy +tests/data/ljspeech/wavs/LJ041-0027.wav|tests/data/ljspeech/wavs/LJ041-0027.npy +tests/data/ljspeech/wavs/LJ030-0130.wav|tests/data/ljspeech/wavs/LJ030-0130.npy +tests/data/ljspeech/wavs/LJ029-0202.wav|tests/data/ljspeech/wavs/LJ029-0202.npy +tests/data/ljspeech/wavs/LJ050-0044.wav|tests/data/ljspeech/wavs/LJ050-0044.npy +tests/data/ljspeech/wavs/LJ032-0012.wav|tests/data/ljspeech/wavs/LJ032-0012.npy +tests/data/ljspeech/wavs/LJ036-0157.wav|tests/data/ljspeech/wavs/LJ036-0157.npy +tests/data/ljspeech/wavs/LJ008-0263.wav|tests/data/ljspeech/wavs/LJ008-0263.npy +tests/data/ljspeech/wavs/LJ009-0083.wav|tests/data/ljspeech/wavs/LJ009-0083.npy +tests/data/ljspeech/wavs/LJ019-0203.wav|tests/data/ljspeech/wavs/LJ019-0203.npy +tests/data/ljspeech/wavs/LJ028-0318.wav|tests/data/ljspeech/wavs/LJ028-0318.npy +tests/data/ljspeech/wavs/LJ005-0223.wav|tests/data/ljspeech/wavs/LJ005-0223.npy +tests/data/ljspeech/wavs/LJ004-0232.wav|tests/data/ljspeech/wavs/LJ004-0232.npy +tests/data/ljspeech/wavs/LJ012-0147.wav|tests/data/ljspeech/wavs/LJ012-0147.npy +tests/data/ljspeech/wavs/LJ006-0026.wav|tests/data/ljspeech/wavs/LJ006-0026.npy +tests/data/ljspeech/wavs/LJ049-0083.wav|tests/data/ljspeech/wavs/LJ049-0083.npy +tests/data/ljspeech/wavs/LJ042-0219.wav|tests/data/ljspeech/wavs/LJ042-0219.npy +tests/data/ljspeech/wavs/LJ044-0123.wav|tests/data/ljspeech/wavs/LJ044-0123.npy +tests/data/ljspeech/wavs/LJ006-0247.wav|tests/data/ljspeech/wavs/LJ006-0247.npy +tests/data/ljspeech/wavs/LJ047-0209.wav|tests/data/ljspeech/wavs/LJ047-0209.npy +tests/data/ljspeech/wavs/LJ037-0037.wav|tests/data/ljspeech/wavs/LJ037-0037.npy +tests/data/ljspeech/wavs/LJ020-0002.wav|tests/data/ljspeech/wavs/LJ020-0002.npy +tests/data/ljspeech/wavs/LJ048-0027.wav|tests/data/ljspeech/wavs/LJ048-0027.npy +tests/data/ljspeech/wavs/LJ007-0151.wav|tests/data/ljspeech/wavs/LJ007-0151.npy +tests/data/ljspeech/wavs/LJ044-0098.wav|tests/data/ljspeech/wavs/LJ044-0098.npy +tests/data/ljspeech/wavs/LJ047-0230.wav|tests/data/ljspeech/wavs/LJ047-0230.npy +tests/data/ljspeech/wavs/LJ029-0075.wav|tests/data/ljspeech/wavs/LJ029-0075.npy +tests/data/ljspeech/wavs/LJ039-0128.wav|tests/data/ljspeech/wavs/LJ039-0128.npy +tests/data/ljspeech/wavs/LJ047-0114.wav|tests/data/ljspeech/wavs/LJ047-0114.npy +tests/data/ljspeech/wavs/LJ031-0114.wav|tests/data/ljspeech/wavs/LJ031-0114.npy +tests/data/ljspeech/wavs/LJ027-0127.wav|tests/data/ljspeech/wavs/LJ027-0127.npy +tests/data/ljspeech/wavs/LJ011-0154.wav|tests/data/ljspeech/wavs/LJ011-0154.npy +tests/data/ljspeech/wavs/LJ005-0299.wav|tests/data/ljspeech/wavs/LJ005-0299.npy +tests/data/ljspeech/wavs/LJ031-0099.wav|tests/data/ljspeech/wavs/LJ031-0099.npy +tests/data/ljspeech/wavs/LJ002-0110.wav|tests/data/ljspeech/wavs/LJ002-0110.npy +tests/data/ljspeech/wavs/LJ007-0060.wav|tests/data/ljspeech/wavs/LJ007-0060.npy +tests/data/ljspeech/wavs/LJ031-0141.wav|tests/data/ljspeech/wavs/LJ031-0141.npy +tests/data/ljspeech/wavs/LJ001-0014.wav|tests/data/ljspeech/wavs/LJ001-0014.npy +tests/data/ljspeech/wavs/LJ035-0035.wav|tests/data/ljspeech/wavs/LJ035-0035.npy +tests/data/ljspeech/wavs/LJ034-0125.wav|tests/data/ljspeech/wavs/LJ034-0125.npy +tests/data/ljspeech/wavs/LJ032-0235.wav|tests/data/ljspeech/wavs/LJ032-0235.npy +tests/data/ljspeech/wavs/LJ018-0306.wav|tests/data/ljspeech/wavs/LJ018-0306.npy +tests/data/ljspeech/wavs/LJ009-0129.wav|tests/data/ljspeech/wavs/LJ009-0129.npy +tests/data/ljspeech/wavs/LJ001-0015.wav|tests/data/ljspeech/wavs/LJ001-0015.npy +tests/data/ljspeech/wavs/LJ007-0128.wav|tests/data/ljspeech/wavs/LJ007-0128.npy +tests/data/ljspeech/wavs/LJ038-0200.wav|tests/data/ljspeech/wavs/LJ038-0200.npy +tests/data/ljspeech/wavs/LJ032-0209.wav|tests/data/ljspeech/wavs/LJ032-0209.npy +tests/data/ljspeech/wavs/LJ041-0038.wav|tests/data/ljspeech/wavs/LJ041-0038.npy +tests/data/ljspeech/wavs/LJ046-0241.wav|tests/data/ljspeech/wavs/LJ046-0241.npy +tests/data/ljspeech/wavs/LJ047-0220.wav|tests/data/ljspeech/wavs/LJ047-0220.npy +tests/data/ljspeech/wavs/LJ034-0158.wav|tests/data/ljspeech/wavs/LJ034-0158.npy +tests/data/ljspeech/wavs/LJ045-0044.wav|tests/data/ljspeech/wavs/LJ045-0044.npy +tests/data/ljspeech/wavs/LJ045-0169.wav|tests/data/ljspeech/wavs/LJ045-0169.npy +tests/data/ljspeech/wavs/LJ007-0154.wav|tests/data/ljspeech/wavs/LJ007-0154.npy +tests/data/ljspeech/wavs/LJ044-0114.wav|tests/data/ljspeech/wavs/LJ044-0114.npy +tests/data/ljspeech/wavs/LJ030-0085.wav|tests/data/ljspeech/wavs/LJ030-0085.npy +tests/data/ljspeech/wavs/LJ048-0129.wav|tests/data/ljspeech/wavs/LJ048-0129.npy +tests/data/ljspeech/wavs/LJ041-0077.wav|tests/data/ljspeech/wavs/LJ041-0077.npy +tests/data/ljspeech/wavs/LJ045-0113.wav|tests/data/ljspeech/wavs/LJ045-0113.npy +tests/data/ljspeech/wavs/LJ049-0009.wav|tests/data/ljspeech/wavs/LJ049-0009.npy +tests/data/ljspeech/wavs/LJ007-0148.wav|tests/data/ljspeech/wavs/LJ007-0148.npy +tests/data/ljspeech/wavs/LJ033-0132.wav|tests/data/ljspeech/wavs/LJ033-0132.npy +tests/data/ljspeech/wavs/LJ049-0076.wav|tests/data/ljspeech/wavs/LJ049-0076.npy +tests/data/ljspeech/wavs/LJ041-0127.wav|tests/data/ljspeech/wavs/LJ041-0127.npy +tests/data/ljspeech/wavs/LJ019-0193.wav|tests/data/ljspeech/wavs/LJ019-0193.npy +tests/data/ljspeech/wavs/LJ007-0173.wav|tests/data/ljspeech/wavs/LJ007-0173.npy +tests/data/ljspeech/wavs/LJ038-0014.wav|tests/data/ljspeech/wavs/LJ038-0014.npy +tests/data/ljspeech/wavs/LJ049-0141.wav|tests/data/ljspeech/wavs/LJ049-0141.npy +tests/data/ljspeech/wavs/LJ003-0007.wav|tests/data/ljspeech/wavs/LJ003-0007.npy +tests/data/ljspeech/wavs/LJ002-0280.wav|tests/data/ljspeech/wavs/LJ002-0280.npy +tests/data/ljspeech/wavs/LJ032-0230.wav|tests/data/ljspeech/wavs/LJ032-0230.npy +tests/data/ljspeech/wavs/LJ007-0110.wav|tests/data/ljspeech/wavs/LJ007-0110.npy +tests/data/ljspeech/wavs/LJ046-0027.wav|tests/data/ljspeech/wavs/LJ046-0027.npy +tests/data/ljspeech/wavs/LJ007-0020.wav|tests/data/ljspeech/wavs/LJ007-0020.npy +tests/data/ljspeech/wavs/LJ048-0205.wav|tests/data/ljspeech/wavs/LJ048-0205.npy +tests/data/ljspeech/wavs/LJ007-0044.wav|tests/data/ljspeech/wavs/LJ007-0044.npy +tests/data/ljspeech/wavs/LJ010-0117.wav|tests/data/ljspeech/wavs/LJ010-0117.npy +tests/data/ljspeech/wavs/LJ038-0217.wav|tests/data/ljspeech/wavs/LJ038-0217.npy +tests/data/ljspeech/wavs/LJ031-0135.wav|tests/data/ljspeech/wavs/LJ031-0135.npy +tests/data/ljspeech/wavs/LJ007-0178.wav|tests/data/ljspeech/wavs/LJ007-0178.npy +tests/data/ljspeech/wavs/LJ035-0042.wav|tests/data/ljspeech/wavs/LJ035-0042.npy +tests/data/ljspeech/wavs/LJ033-0092.wav|tests/data/ljspeech/wavs/LJ033-0092.npy +tests/data/ljspeech/wavs/LJ041-0159.wav|tests/data/ljspeech/wavs/LJ041-0159.npy +tests/data/ljspeech/wavs/LJ035-0062.wav|tests/data/ljspeech/wavs/LJ035-0062.npy +tests/data/ljspeech/wavs/LJ034-0028.wav|tests/data/ljspeech/wavs/LJ034-0028.npy +tests/data/ljspeech/wavs/LJ034-0178.wav|tests/data/ljspeech/wavs/LJ034-0178.npy +tests/data/ljspeech/wavs/LJ029-0017.wav|tests/data/ljspeech/wavs/LJ029-0017.npy +tests/data/ljspeech/wavs/LJ005-0173.wav|tests/data/ljspeech/wavs/LJ005-0173.npy +tests/data/ljspeech/wavs/LJ007-0229.wav|tests/data/ljspeech/wavs/LJ007-0229.npy +tests/data/ljspeech/wavs/LJ020-0062.wav|tests/data/ljspeech/wavs/LJ020-0062.npy +tests/data/ljspeech/wavs/LJ030-0082.wav|tests/data/ljspeech/wavs/LJ030-0082.npy +tests/data/ljspeech/wavs/LJ036-0001.wav|tests/data/ljspeech/wavs/LJ036-0001.npy +tests/data/ljspeech/wavs/LJ045-0001.wav|tests/data/ljspeech/wavs/LJ045-0001.npy +tests/data/ljspeech/wavs/LJ006-0002.wav|tests/data/ljspeech/wavs/LJ006-0002.npy +tests/data/ljspeech/wavs/LJ048-0001.wav|tests/data/ljspeech/wavs/LJ048-0001.npy +tests/data/ljspeech/wavs/LJ034-0212.wav|tests/data/ljspeech/wavs/LJ034-0212.npy +tests/data/ljspeech/wavs/LJ029-0179.wav|tests/data/ljspeech/wavs/LJ029-0179.npy +tests/data/ljspeech/wavs/LJ034-0026.wav|tests/data/ljspeech/wavs/LJ034-0026.npy +tests/data/ljspeech/wavs/LJ007-0097.wav|tests/data/ljspeech/wavs/LJ007-0097.npy +tests/data/ljspeech/wavs/LJ025-0167.wav|tests/data/ljspeech/wavs/LJ025-0167.npy +tests/data/ljspeech/wavs/LJ007-0076.wav|tests/data/ljspeech/wavs/LJ007-0076.npy +tests/data/ljspeech/wavs/LJ018-0052.wav|tests/data/ljspeech/wavs/LJ018-0052.npy +tests/data/ljspeech/wavs/LJ032-0202.wav|tests/data/ljspeech/wavs/LJ032-0202.npy +tests/data/ljspeech/wavs/LJ050-0160.wav|tests/data/ljspeech/wavs/LJ050-0160.npy +tests/data/ljspeech/wavs/LJ037-0150.wav|tests/data/ljspeech/wavs/LJ037-0150.npy +tests/data/ljspeech/wavs/LJ007-0223.wav|tests/data/ljspeech/wavs/LJ007-0223.npy +tests/data/ljspeech/wavs/LJ007-0051.wav|tests/data/ljspeech/wavs/LJ007-0051.npy +tests/data/ljspeech/wavs/LJ050-0228.wav|tests/data/ljspeech/wavs/LJ050-0228.npy +tests/data/ljspeech/wavs/LJ038-0189.wav|tests/data/ljspeech/wavs/LJ038-0189.npy +tests/data/ljspeech/wavs/LJ037-0160.wav|tests/data/ljspeech/wavs/LJ037-0160.npy +tests/data/ljspeech/wavs/LJ048-0025.wav|tests/data/ljspeech/wavs/LJ048-0025.npy +tests/data/ljspeech/wavs/LJ007-0070.wav|tests/data/ljspeech/wavs/LJ007-0070.npy +tests/data/ljspeech/wavs/LJ038-0050.wav|tests/data/ljspeech/wavs/LJ038-0050.npy +tests/data/ljspeech/wavs/LJ032-0001.wav|tests/data/ljspeech/wavs/LJ032-0001.npy +tests/data/ljspeech/wavs/LJ037-0001.wav|tests/data/ljspeech/wavs/LJ037-0001.npy +tests/data/ljspeech/wavs/LJ041-0001.wav|tests/data/ljspeech/wavs/LJ041-0001.npy +tests/data/ljspeech/wavs/LJ030-0001.wav|tests/data/ljspeech/wavs/LJ030-0001.npy +tests/data/ljspeech/wavs/LJ029-0001.wav|tests/data/ljspeech/wavs/LJ029-0001.npy +tests/data/ljspeech/wavs/LJ047-0001.wav|tests/data/ljspeech/wavs/LJ047-0001.npy +tests/data/ljspeech/wavs/LJ033-0001.wav|tests/data/ljspeech/wavs/LJ033-0001.npy +tests/data/ljspeech/wavs/LJ035-0001.wav|tests/data/ljspeech/wavs/LJ035-0001.npy +tests/data/ljspeech/wavs/LJ040-0001.wav|tests/data/ljspeech/wavs/LJ040-0001.npy diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0001_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0001_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..664dd84a97f8d444426db7de7a36de31d75f55ba --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0001_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59e53d13587aea24189ba694e280a16b53e66d0167b9c0677c308eb29e750715 +size 700 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0002_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0002_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..53a5dd8d5299769610d4810213f45246b18b3d27 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0002_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2e88bec343c16d59da8b49561ecfd8d5a6f6039c107b18c21c143c3322a44ec +size 244 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0003_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0003_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..57b1483a1a35593b57b8d188bc30105f3639f99e --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0003_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e64f5e80c0d544ada18e6c8c051019bbecde342b82d309277b52e182e1e20144 +size 704 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0004_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0004_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..548b687f4dfcbb238802ed3a88465d92a7c18e40 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0004_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69ea3c43f74a4cc36f191fa6326343e035f1052c48f11bc0c988c266bf783a4a +size 440 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0005_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0005_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..5c71ff72d3d350ca66706a756202315b4a8ceab5 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0005_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d761faf59606b31b031584f2f93fb31509a9c416a6d9835c55d7b91eccbd3bd +size 652 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0006_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0006_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..e41c26e468c10c6bab028c9d2e609b2df53e9988 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0006_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3983b9ac41ab073a70c7006d831df5fe0599beabf9155b3c6772c2de0f9e710 +size 412 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0007_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0007_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..f2d7243a3f1ab0122a32ba05124b265944a39be8 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0007_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b6132fb8eb756cb397c8c788c37851ab60be017051161752865649911d7e483 +size 588 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0008_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0008_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..dfe43d26b32644c593e8e584bcec9a5588182ee0 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0008_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80ca29e86fbcec52119e64468e035a828250dd5d1fc968322bba299dfad9e877 +size 208 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0009_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0009_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..7a3a870e0fd1cc3f54b8fbdf6dc763403f189e40 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0009_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:913cdf96515e325b443a818a8816f16b3d2d2724363c550199a361b4f6f897b9 +size 536 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0010_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0010_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..8477e70812e07b559fb9544fbca733ba383517d0 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0010_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6544997a7a7a2be2e8f8ca9ab74553e1723cb2fd89e74e40aacf8b47e6b1eab8 +size 576 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0011_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0011_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..e93bad11ff2e22717d4d1a38f996db10e41604c9 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0011_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f0ed6798f629d4fdc7909eb4e95a8f6db22353fff0e3ef064dee67a3c5bae9d +size 396 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0012_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0012_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..f71b4a6fa39ee9ec6afa520a2b8706e70e0d13bc --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0012_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e4d93e29eccb8cb891006d946e206db46ccb923bb5e8f6df642cda3c4ae2820 +size 532 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0013_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0013_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..313cfee0a7089489f1e73dc6de55290a8fd4d0ef --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0013_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:595c63764a02124a8f48232e405fd1c130f36dbb0b6b71e8869b5de35db98896 +size 288 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0014_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0014_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..19470c52d9025b5ead9f4220bcd22dcbe3bf9714 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0014_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d5d50f545d7636e042158fb94e4daf70e3f878614d8c8f76a5127d3afc0078a +size 736 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0015_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0015_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..d6f65e654b4cd89c849229e2e41d8c9dabc1df18 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0015_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9272386fc312f06f986582b7de176d0a33bcd0d4de61758525533f6462b91a9 +size 716 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0016_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0016_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..945a77e6a4d596a4b070acfd2d62df8f8b6a7ff6 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0016_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a523eabfb0417c458bafe6b6e06747d54200ab011dab8bf67f584894ed313c0 +size 416 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0017_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0017_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..6778a423e17e5ac7368a091e617e3c55a6966b2e --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0017_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12325b72e2622f9d9ddc0d78dd356fa33942c7fea8c6fcf3f928c040533d1161 +size 604 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0018_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0018_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..5814938f8a063700d773129342aa050cd38b9249 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0018_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc367a99a84a8fb5b048210f1fcd5cbf0690ee7f3c6a3f45c3c391612986679c +size 584 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0019_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0019_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..63cb3418fef865b5e68831fa3a0b61c413835c92 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0019_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c40009a0804de5c5c4c706ea3631137c53ddb48117b82b8b74e9e7d3552fff0 +size 524 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0020_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0020_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..e047d814bf741d5843232e6283d43e136e7e2d8c --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0020_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4428d778010efe1e97af98a83f7d083ff8d3a912a2ff8832fdd424435ba80487 +size 364 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0021_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0021_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..5fdd3cf59c159ed32c305597a13330730d80df03 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0021_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4c2e87fc1ae2f8e95c9f8c64aed9c554279ca0aa81dba5207fc6150c43c89ad +size 616 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0022_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0022_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..0d13953444a019a252410e053347abfb5f908a52 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0022_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b95db809cef8f4937db186ca0836bd1767bb86643b7176cbcdb2cda8771e54b6 +size 528 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0023_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0023_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..07616ec73bd4e33d13b5614fa15034120754479d --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0023_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa32ced82512db03fa8feab1e7be680986afc795cbee4684f901d5ecb30906c1 +size 640 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0024_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0024_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..f39877ab6f248492aff2fa219a6a8a48ccd98b42 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0024_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c55c986340728a10e53863040ea2b2382786e0108276c038d0f18584293db673 +size 600 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0025_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0025_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..82b14333ce9be709a2563d26f26b898b204fab65 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0025_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec7ad1361c6ac0373e4c48a7f711c96648ae903fc79234c6c6cbab84c3bdcfd0 +size 544 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0026_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0026_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..b3f53a78a57bbd026277ff3f6223fc92bc879c3a --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0026_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9501db98dcad59c8320542fe1955433d275c5538a058679353e2036439939485 +size 444 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0027_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0027_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..83859365736d6151adfe6f9177c9ac4272720ba4 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0027_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14c2e75b210e3245ea44dac63de82e7e3a6e081146f5180958f4466d4b181c82 +size 664 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0028_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0028_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..74287302e91f649b75c57664c9c56ceb506e30b1 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0028_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cae69efdaf80b38dc6eaf185d9f02f9ef5f425a18939b3d154567b059f59be1a +size 392 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0029_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0029_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..550166c14ead8bd1e6a550130c0a385e3db98031 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0029_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb31cc14a228bda161553969bb1ce0c45766d73bb81552db678231fc7f1f43fb +size 400 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0030_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0030_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..009915bb2c2326360313c4e95d08424f501e05bf --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0030_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b0bf4acda075d2912a77bdb187ff80aee844a5ce2835a4b12afbad4bab64e2c +size 504 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0031_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0031_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..63b368132e966fd76d1a949606642c7038a598a0 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0031_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f574f3b2f9c14eb0f02557db77d8ff014618e87bf077122dfce1d5214d281bd +size 524 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0032_phoneme.npy b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0032_phoneme.npy new file mode 100644 index 0000000000000000000000000000000000000000..64a985bc0854bc5156cd45770e23f56cd9a51bea --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/phoneme_cache/LJ001-0032_phoneme.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbb2f30380632c8607f5c10eb4e073b8eb80d0b18d7ff8e9a71c98b066132470 +size 536 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/speakers.json b/Indic-TTS/TTS/tests/data/ljspeech/speakers.json new file mode 100644 index 0000000000000000000000000000000000000000..915cff73603c18934f6f3d3da1959596180833d3 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/speakers.json @@ -0,0 +1,2612 @@ +{ + "LJ001-0001.wav": { + "name": "ljspeech-0", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + }, + "LJ001-0002.wav": { + "name": "ljspeech-1", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + }, + "LJ001-0003.wav": { + "name": "ljspeech-2", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + }, + "LJ001-0004.wav": { + "name": "ljspeech-3", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + }, + "LJ001-0005.wav": { + "name": "ljspeech-4", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + }, + "LJ001-0006.wav": { + "name": "ljspeech-5", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + }, + "LJ001-0007.wav": { + "name": "ljspeech-6", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + }, + "LJ001-0008.wav": { + "name": "ljspeech-7", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + }, + "LJ001-0009.wav": { + "name": "ljspeech-8", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + }, + "LJ001-0010.wav": { + "name": "ljspeech-9", + "embedding": [ + 0.05539746582508087, + 0.08493061363697052, + -0.010013150051236153, + 0.04369359463453293, + -0.05871078372001648, + 0.07792330533266068, + -0.12001194059848785, + 0.09205509722232819, + -0.053687505424022675, + 0.13110113143920898, + -0.0672345906496048, + 0.09076011180877686, + -0.012022187933325768, + -0.1773194968700409, + -0.03690509498119354, + 0.052139587700366974, + -0.06511855870485306, + -0.014169753529131413, + -0.0788075178861618, + -0.022713735699653625, + 0.026002388447523117, + 0.04142642393708229, + 0.06633599102497101, + -0.040966324508190155, + 0.05216488242149353, + 0.043708473443984985, + 0.008947450667619705, + 0.043884553015232086, + 0.015242422930896282, + -0.07271697372198105, + -0.03943272680044174, + 0.11445401608943939, + -0.01976911909878254, + -0.001584329642355442, + 0.03226276487112045, + -0.002877067308872938, + 0.006218053866177797, + -0.09210439026355743, + -0.023884698748588562, + 0.019102394580841064, + -0.023189997300505638, + 0.07678322494029999, + 0.04511963576078415, + -0.028598245233297348, + 0.02654365450143814, + -0.026303084567189217, + -0.036059144884347916, + -0.04994352161884308, + -0.10899694263935089, + 0.16808779537677765, + 0.0568464957177639, + 0.017774248495697975, + -0.0766686350107193, + -0.08056356757879257, + 0.11318203061819077, + -0.0009237118065357208, + -0.11983267217874527, + -0.04011853411793709, + 0.06481920927762985, + 0.18528658151626587, + -0.020618144422769547, + 0.0030966848134994507, + 0.030582068488001823, + 0.11048240959644318, + 0.026203282177448273, + 0.08886025100946426, + 0.0776662528514862, + 0.08468905836343765, + 0.02009391225874424, + 0.053141623735427856, + 0.04102938249707222, + 0.059041380882263184, + -0.006237464025616646, + -0.018360337242484093, + 0.015418153256177902, + -0.03559226542711258, + -0.05805520713329315, + -0.00861218199133873, + -0.021234268322587013, + -0.025556275621056557, + -0.012332704849541187, + -0.009777471423149109, + 0.03721384331583977, + 0.010376224294304848, + -0.05210898444056511, + 0.035450324416160583, + 0.0026437342166900635, + -0.03329150378704071, + 0.07028764486312866, + 0.03101171739399433, + 0.003101848065853119, + 0.029428653419017792, + -0.03445912152528763, + -0.11992329359054565, + -0.006469260435551405, + 0.02472860924899578, + -0.0021879260893911123, + 0.06576769798994064, + 0.04159736633300781, + -0.044104330241680145, + 0.10868340730667114, + 0.06065361574292183, + -0.00814537052065134, + 0.029497724026441574, + -0.0820949599146843, + 0.09694784879684448, + 0.10299994796514511, + 0.007466038689017296, + 0.0573151595890522, + -0.04003140702843666, + 0.0748046338558197, + 0.07954449951648712, + -0.14061805605888367, + -0.07225356996059418, + 0.030713198706507683, + -0.01169175747781992, + 0.015277700498700142, + 0.101996049284935, + 0.0023796744644641876, + 0.013835912570357323, + 0.08836984634399414, + -0.08798637241125107, + -0.053786784410476685, + -0.025867177173495293, + 0.07090725004673004, + -0.05228910967707634, + 0.024839768186211586, + 0.0543626993894577, + -0.048099253326654434, + -0.01027676835656166, + 0.04654526337981224, + -0.0034045036882162094, + 0.003895972855389118, + 0.04250902682542801, + -0.05232023075222969, + 0.06287448853254318, + -0.04146592691540718, + -0.0022073618602007627, + 0.07169511169195175, + 0.057035692036151886, + 0.04202979430556297, + -0.01752091944217682, + -0.03615778684616089, + -0.07597745209932327, + 0.0076013305224478245, + 0.03388708084821701, + 0.06191568076610565, + -0.01607775315642357, + 0.004401837941259146, + -0.06070601940155029, + -0.07674850523471832, + 0.059249889105558395, + -0.02222420647740364, + 0.10215721279382706, + -0.000883960397914052, + 0.010600706562399864, + 0.09869417548179626, + 0.011313805356621742, + -0.01187396701425314, + -0.04851905256509781, + -0.020747501403093338, + 0.043711841106414795, + 0.04022590070962906, + -0.06653523445129395, + -0.04014153778553009, + 0.012923783622682095, + 0.0024894566740840673, + -0.03801071271300316, + 0.017412755638360977, + 0.03090047463774681, + 0.021060986444354057, + 0.04588426649570465, + -0.061013057827949524, + 0.022323710843920708, + -0.0921829417347908, + -0.009262383915483952, + -0.0024641728959977627, + -0.04311069846153259, + -0.02953970432281494, + 0.11183556914329529, + 0.041883185505867004, + 0.01362229697406292, + -0.009713159874081612, + -0.07398185133934021, + -0.03448636084794998, + 0.06774093955755234, + 0.06281304359436035, + 0.005423923954367638, + 0.04070146754384041, + 0.04723779857158661, + 0.0025808606296777725, + 0.04067641496658325, + 0.0840836763381958, + 0.0662192553281784, + 6.253225728869438e-05, + -0.03287994861602783, + -0.07941965758800507, + 0.09294897317886353, + 0.08651109039783478, + -0.09662938117980957, + -0.08838298916816711, + -0.05120178312063217, + -0.06626439094543457, + 0.04893879592418671, + -0.017820902168750763, + -0.007398976478725672, + 0.02896031364798546, + -0.025766948238015175, + -0.10214102268218994, + -0.10014186799526215, + 0.1211889386177063, + -0.0510331466794014, + -0.02461140602827072, + -0.06880723685026169, + 0.02751768007874489, + 0.07350686937570572, + 0.038249749690294266, + -0.009252945892512798, + 0.013650302775204182, + 0.04884907230734825, + -0.08785197138786316, + 0.003136417828500271, + 0.05015810579061508, + -0.00904669426381588, + -0.10715165734291077, + 0.026881497353315353, + -0.07288249582052231, + 0.08610662072896957, + -0.06228051334619522, + 0.1673828363418579, + 0.006395484320819378, + -0.0426831915974617, + -0.08067314326763153, + 0.06747708469629288, + -0.049200400710105896, + 0.0475490465760231, + 0.05716557055711746, + 0.060844384133815765, + 0.04086177423596382, + -0.08346255123615265, + 0.0869344025850296, + 0.019769223406910896, + -0.020300764590501785, + -0.0708683505654335, + -0.030514180660247803, + -0.027429744601249695, + 0.021853724494576454, + -0.012019682675600052, + -0.0613793209195137, + 0.009929075837135315, + 0.0261012464761734, + -0.018161576241254807, + 0.07936893403530121, + 0.12791746854782104, + 0.08958099782466888, + -0.09469571709632874 + ] + } +} diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0001.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0001.npy new file mode 100644 index 0000000000000000000000000000000000000000..e86cb27855486e9467134f05ea21efb427ad222d --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0001.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:070a2e370e4338b331fffee561cc236adecf077869c6bde9acd69ef8bfef7986 +size 474888 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0001.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0001.wav new file mode 100644 index 0000000000000000000000000000000000000000..a274be89422809113adc336e624afeb255cdc67a Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0001.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0002.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0002.npy new file mode 100644 index 0000000000000000000000000000000000000000..8fd8829d3d7894e5b1a529364bcf3c87295c3611 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0002.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42c36e568a8b57b77289cd157a9e7ae2c27cf955dd6a7da64ba3478c9c0d2334 +size 18920 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0002.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0002.wav new file mode 100644 index 0000000000000000000000000000000000000000..b1a0ed110ab9763dab7428f6273d696fecb4205d Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0002.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0003.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0003.npy new file mode 100644 index 0000000000000000000000000000000000000000..52dc61f37288196aad89f404017d2b2827ffe961 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0003.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3629fc7aa5e0933858240fde841d61874cb601f5c2a6e756eaad03d5ded44083 +size 475460 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0003.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0003.wav new file mode 100644 index 0000000000000000000000000000000000000000..3329ddb448ed3bfff911bb90110defcc72e14bc2 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0003.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0004.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0004.npy new file mode 100644 index 0000000000000000000000000000000000000000..e96bc5d66be61a705d28aafd3a587c91f8e004f2 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0004.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b59336c125906c331b7a319ee5b57f95f0bfefe13aed330b1d399766b3927f2 +size 137720 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0004.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0004.wav new file mode 100644 index 0000000000000000000000000000000000000000..ead8a0e3a6e7b05c116d910e5875b900a2050f9f Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0004.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0005.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0005.npy new file mode 100644 index 0000000000000000000000000000000000000000..3a3244a3bfa0f20d2be183aed5bc656be8fc7ad1 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0005.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0dc904c41f7e9a357d538d8d3a453d8890255f37c4c433828e57439cc7130f6 +size 365356 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0005.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0005.wav new file mode 100644 index 0000000000000000000000000000000000000000..640f708c13ffd653794455aa0730ed6c143f2fc9 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0005.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0006.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0006.npy new file mode 100644 index 0000000000000000000000000000000000000000..d8066965966018d3678cb1ec47d584cc5cfb9ee3 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0006.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9877b39550773704dcbe20ba0b3c3b227ec0cbbfdcd66202d1821cace4ac2d30 +size 138720 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0006.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0006.wav new file mode 100644 index 0000000000000000000000000000000000000000..15cffd544f2203ba85040fa21710f42d33187547 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0006.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0007.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0007.npy new file mode 100644 index 0000000000000000000000000000000000000000..256c011e7b5706f9f9cd08acfcd7f4b1545891f8 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0007.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61511787cf80a867fca160cb26b1ed604d7a49f19e9d0242e896d1794fe2d7e5 +size 331788 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0007.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0007.wav new file mode 100644 index 0000000000000000000000000000000000000000..0d33e4501e5e8d3479c4900f7fddae2ceacebb45 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0007.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0008.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0008.npy new file mode 100644 index 0000000000000000000000000000000000000000..ce66ce70d757498ec0509bb008e87cb361c6bfce --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0008.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da63312469c7aee26a2f30bf6d51e55091d4291954ef63a0bef1c800dfd1aee0 +size 12288 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0008.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0008.wav new file mode 100644 index 0000000000000000000000000000000000000000..a1871dd8f907a04939949573d79a8312639f942c Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0008.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0009.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0009.npy new file mode 100644 index 0000000000000000000000000000000000000000..f03e9f46e1a1b2b789bd45e3a8f6e345ca7be054 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0009.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c642cc9208a5491ac34fd1a35fcc5ab8acccfe264667ee2e265b87420701ec65 +size 264920 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0009.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0009.wav new file mode 100644 index 0000000000000000000000000000000000000000..b534f1b9db8b3baa4958ee39e445a7a1ed24f008 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0009.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0010.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0010.npy new file mode 100644 index 0000000000000000000000000000000000000000..914a8eef226b5b6ba32237fc27a3a7d1865d7da9 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0010.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:960003ef32931ea6f6d854a9a0ef7c7f3feae8676f1125cb7c2f820283e4cadd +size 339712 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0010.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0010.wav new file mode 100644 index 0000000000000000000000000000000000000000..01a2e68829a506063f8ed8b090a4516a02107a62 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0010.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0011.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0011.npy new file mode 100644 index 0000000000000000000000000000000000000000..9d7f6accf4f577192f1bc2f9acba4097e23335c0 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0011.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d42639bca71945249b78b9a8c90803c52f764205b2495214f8f6d725e1cc5f0 +size 103844 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0011.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0011.wav new file mode 100644 index 0000000000000000000000000000000000000000..5ec8ce7e59694563b85fa34c590acd421008cff0 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0011.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0012.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0012.npy new file mode 100644 index 0000000000000000000000000000000000000000..23951b397e170fa7d9d90edbaf3f2d4b941b2787 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0012.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e6f6630d850f0a249f345f628649f0b0226becbe3cfa5f76fa67b531a628840 +size 286160 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0012.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0012.wav new file mode 100644 index 0000000000000000000000000000000000000000..6262db4bbfeb15ba298184ab0b7c7bf323f472df Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0012.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0013.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0013.npy new file mode 100644 index 0000000000000000000000000000000000000000..9942e121f74ec271b79a5a52a2edb7e8ae9647bf --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0013.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5665c5702bf7df27fb5030310d3cf13461fc62d1affc0c08950bc7198975e204 +size 35488 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0013.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0013.wav new file mode 100644 index 0000000000000000000000000000000000000000..72eca1af1a396821c0814e3ff39e9d5752ba5b59 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0013.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0014.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0014.npy new file mode 100644 index 0000000000000000000000000000000000000000..74611b8f947b694f740cfe6de2dc33ec043cd77d --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0014.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcec0d3679393290fc1a350a96e4876840fe6be81784c60b5a488447e0dbb67c +size 519968 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0014.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0014.wav new file mode 100644 index 0000000000000000000000000000000000000000..997d31d58c24547de8b78efdfdf503cae0a7e6b7 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0014.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0015.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0015.npy new file mode 100644 index 0000000000000000000000000000000000000000..5b0583ab0be3ab4acd3c875d75af025bdb369ef6 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0015.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd175d2fd5b75c5982ab2302fe936746660be9eb0634e08444fe166b345a8182 +size 470176 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0015.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0015.wav new file mode 100644 index 0000000000000000000000000000000000000000..c63eb5347a06ef49c39b42911d38bec5cfd58d57 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0015.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0016.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0016.npy new file mode 100644 index 0000000000000000000000000000000000000000..b1e6cb23c766bae5fe72f8c1c0e0c0019c6255d4 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0016.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7846187988bcdd4802df2f41a86f5fd9b4db7aa5f72c6728856afb930813640 +size 130304 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0016.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0016.wav new file mode 100644 index 0000000000000000000000000000000000000000..639b70c1bae56e32cb06db7c196af533108ffa39 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0016.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0017.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0017.npy new file mode 100644 index 0000000000000000000000000000000000000000..0a65672ef7f448dcf8ebb55b9155356700f9dc29 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0017.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26601b716c26c2e10762cfd5354bfa6e105bece2db368ac811bcc2b2f3d730a7 +size 287156 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0017.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0017.wav new file mode 100644 index 0000000000000000000000000000000000000000..3a347aa4af624fb942e8ce1a438c76b278604b08 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0017.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0018.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0018.npy new file mode 100644 index 0000000000000000000000000000000000000000..25d103f9396a63d5d50be59c1b29a8c37aa23cb1 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0018.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:322ef39a44dd8b4a1e4cf817862b46741b3eca20d0122966648a395c5a02fb8d +size 290764 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0018.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0018.wav new file mode 100644 index 0000000000000000000000000000000000000000..911158a08c2b1a38142fe3f8c4b7b75fec2ec726 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0018.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0019.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0019.npy new file mode 100644 index 0000000000000000000000000000000000000000..54cae852154923d3c368c48b88dcea0cb0965cce --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0019.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51b631a97817dc8b2381eecd7b1e3d576b810013e6d13c1b483f4e987fff33de +size 222732 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0019.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0019.wav new file mode 100644 index 0000000000000000000000000000000000000000..cfd8c7e2337acd245168161b846f62a515bfd023 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0019.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0020.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0020.npy new file mode 100644 index 0000000000000000000000000000000000000000..7297d03f85aa3f2d09beaca84824b617de924c02 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0020.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c0f2b346e4f5f638f67f412ee749aa7251b97037f7b994cce9a28f36ccab987 +size 94764 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0020.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0020.wav new file mode 100644 index 0000000000000000000000000000000000000000..f342d46ba30826f43c02c1b9e25d57950446a970 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0020.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0021.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0021.npy new file mode 100644 index 0000000000000000000000000000000000000000..db08db9353011f12291eabae31f80420bff14157 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0021.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:751163d61e2760691c516f3e6ccb403d93113090f26300b3bcceb37bb0cc4cd3 +size 361248 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0021.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0021.wav new file mode 100644 index 0000000000000000000000000000000000000000..066b71c6bfd30186c1aabe5561f0d4b7c4a8b648 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0021.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0022.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0022.npy new file mode 100644 index 0000000000000000000000000000000000000000..0a4bbb0b6bfa6b62d44062ea6f478c588c4095c2 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0022.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f0ab17a10dddf31f65aa1ee32295aa24ba5ed5a84846876caab05fd355bf2a3 +size 242528 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0022.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0022.wav new file mode 100644 index 0000000000000000000000000000000000000000..c00a587af8a1073c19de3c1a4d6f7b8bd6fde74a Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0022.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0023.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0023.npy new file mode 100644 index 0000000000000000000000000000000000000000..93b443ad19f429e4e2e643098a2b46783f8644e1 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0023.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bee5c39b0a7b4bdeb92dd66966f412e5f0a74c1b61e7aed26c1338d50eccc61 +size 374744 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0023.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0023.wav new file mode 100644 index 0000000000000000000000000000000000000000..aaa274d0ef33befe007ace594e080ea7c02b3da2 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0023.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0024.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0024.npy new file mode 100644 index 0000000000000000000000000000000000000000..6cb7c8236573e7dcf677ae94fd2f33735e54c03b --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0024.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:560f6e537f98a3693aaea3130fe9b7cba4d7f838784b4a23863872dd959cf02c +size 318728 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0024.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0024.wav new file mode 100644 index 0000000000000000000000000000000000000000..14e7a3c137dd4e5b778ac45fd897f29b3adc73fa Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0024.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0025.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0025.npy new file mode 100644 index 0000000000000000000000000000000000000000..7c47b76ccc00371f832d3c05d8700aa0e47e2da3 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0025.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddc56be2af40ee99df08060acc9389bdce6c18aa9dd510676a858ee7b7865236 +size 317120 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0025.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0025.wav new file mode 100644 index 0000000000000000000000000000000000000000..6e11513ab18d8909ac12ede4006af32765321fe3 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0025.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0026.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0026.npy new file mode 100644 index 0000000000000000000000000000000000000000..33e1e4cf0e0961d3fd91a4d56d8d28b56c9a3139 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0026.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac908660dbc8bd14af7072a7e6d3461427b130651e8676ffd930533f99d7d204 +size 167488 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0026.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0026.wav new file mode 100644 index 0000000000000000000000000000000000000000..7efbb2988af2e1af142e0dbb98dda68851acb96c Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0026.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0027.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0027.npy new file mode 100644 index 0000000000000000000000000000000000000000..9a166a83c897e72375a437dfb613144c0d325a71 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0027.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4c6efe1cbac8a01c903cb714729f3f84e211fdc4d7933b67bc37e27b890e72a +size 441156 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0027.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0027.wav new file mode 100644 index 0000000000000000000000000000000000000000..5d86776a4dd406fee2cfb07f87ddf09431f075a0 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0027.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0028.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0028.npy new file mode 100644 index 0000000000000000000000000000000000000000..29c4fd32f1dbd37f1f7f260e281307cdfc9ad80a --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0028.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:594d24a53ccbeb23e17c094b5014b6071662bb5e9b686a8dfb30e907615f0d30 +size 134504 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0028.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0028.wav new file mode 100644 index 0000000000000000000000000000000000000000..fbd0d7783ca74b384c0ee06cbd2c28a5c8e0e34d Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0028.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0029.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0029.npy new file mode 100644 index 0000000000000000000000000000000000000000..1914016e6028d46dc43c66b081cacf4dc77a78a8 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0029.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1ac5a26fb9f8fbebc4d5e1e74f06180ce38df0945705bfc1f0d907fdef9c621 +size 126260 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0029.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0029.wav new file mode 100644 index 0000000000000000000000000000000000000000..d23c35c918aba1d0c9b59d837edb6168a8550706 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0029.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0030.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0030.npy new file mode 100644 index 0000000000000000000000000000000000000000..a5ce595e205827d678cda715502a6e44545be871 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0030.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80a0175cb17055f79df005cf5cb019c96697d861aebe33982ebac5942b5aa909 +size 223472 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0030.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0030.wav new file mode 100644 index 0000000000000000000000000000000000000000..44b15c5ad554fabfa240f74557f4064b998e6840 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0030.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0031.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0031.npy new file mode 100644 index 0000000000000000000000000000000000000000..6bdfd096f6a3ea24c9dce52958c00539c8b39349 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0031.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7980886675c20b776c5032b7c482def93da5c07cf5c5e0159fd4ccc72aebfcba +size 267428 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0031.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0031.wav new file mode 100644 index 0000000000000000000000000000000000000000..c342b1a5259fe0e2a03dda763df7855d5b1ce86b Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0031.wav differ diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0032.npy b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0032.npy new file mode 100644 index 0000000000000000000000000000000000000000..6038ab27d26075d875ff675c7afaa0224fbd41f7 --- /dev/null +++ b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0032.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acfb037e68528ad69761f00a0a199830a54b4b96b156b7e6b86fdda0ee14a748 +size 248192 diff --git a/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0032.wav b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0032.wav new file mode 100644 index 0000000000000000000000000000000000000000..41dfbe14e96347f90b942a4d2612e199a8ae8467 Binary files /dev/null and b/Indic-TTS/TTS/tests/data/ljspeech/wavs/LJ001-0032.wav differ diff --git a/Indic-TTS/TTS/tests/data_tests/__init__.py b/Indic-TTS/TTS/tests/data_tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/tests/data_tests/test_dataset_formatters.py b/Indic-TTS/TTS/tests/data_tests/test_dataset_formatters.py new file mode 100644 index 0000000000000000000000000000000000000000..30fb79a8e4f64fbefbd6c19427f38d3003409733 --- /dev/null +++ b/Indic-TTS/TTS/tests/data_tests/test_dataset_formatters.py @@ -0,0 +1,17 @@ +import os +import unittest + +from tests import get_tests_input_path +from TTS.tts.datasets.formatters import common_voice + + +class TestTTSFormatters(unittest.TestCase): + def test_common_voice_preprocessor(self): # pylint: disable=no-self-use + root_path = get_tests_input_path() + meta_file = "common_voice.tsv" + items = common_voice(root_path, meta_file) + assert items[0]["text"] == "The applicants are invited for coffee and visa is given immediately." + assert items[0]["audio_file"] == os.path.join(get_tests_input_path(), "clips", "common_voice_en_20005954.wav") + + assert items[-1]["text"] == "Competition for limited resources has also resulted in some local conflicts." + assert items[-1]["audio_file"] == os.path.join(get_tests_input_path(), "clips", "common_voice_en_19737074.wav") diff --git a/Indic-TTS/TTS/tests/data_tests/test_loader.py b/Indic-TTS/TTS/tests/data_tests/test_loader.py new file mode 100644 index 0000000000000000000000000000000000000000..6790fd5470f63eb5a50dba1f697625504d65df3e --- /dev/null +++ b/Indic-TTS/TTS/tests/data_tests/test_loader.py @@ -0,0 +1,243 @@ +import os +import shutil +import unittest + +import numpy as np +import torch +from torch.utils.data import DataLoader + +from tests import get_tests_data_path, get_tests_output_path +from TTS.tts.configs.shared_configs import BaseDatasetConfig, BaseTTSConfig +from TTS.tts.datasets import TTSDataset, load_tts_samples +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor + +# pylint: disable=unused-variable + +OUTPATH = os.path.join(get_tests_output_path(), "loader_tests/") +os.makedirs(OUTPATH, exist_ok=True) + +# create a dummy config for testing data loaders. +c = BaseTTSConfig(text_cleaner="english_cleaners", num_loader_workers=0, batch_size=2, use_noise_augment=False) +c.r = 5 +c.data_path = os.path.join(get_tests_data_path(), "ljspeech/") +ok_ljspeech = os.path.exists(c.data_path) + +dataset_config = BaseDatasetConfig( + name="ljspeech_test", # ljspeech_test to multi-speaker + meta_file_train="metadata.csv", + meta_file_val=None, + path=c.data_path, + language="en", +) + +DATA_EXIST = True +if not os.path.exists(c.data_path): + DATA_EXIST = False + +print(" > Dynamic data loader test: {}".format(DATA_EXIST)) + + +class TestTTSDataset(unittest.TestCase): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.max_loader_iter = 4 + self.ap = AudioProcessor(**c.audio) + + def _create_dataloader(self, batch_size, r, bgs, start_by_longest=False): + + # load dataset + meta_data_train, meta_data_eval = load_tts_samples(dataset_config, eval_split=True, eval_split_size=0.2) + items = meta_data_train + meta_data_eval + + tokenizer, _ = TTSTokenizer.init_from_config(c) + dataset = TTSDataset( + outputs_per_step=r, + compute_linear_spec=True, + return_wav=True, + tokenizer=tokenizer, + ap=self.ap, + samples=items, + batch_group_size=bgs, + min_text_len=c.min_text_len, + max_text_len=c.max_text_len, + min_audio_len=c.min_audio_len, + max_audio_len=c.max_audio_len, + start_by_longest=start_by_longest, + ) + dataloader = DataLoader( + dataset, + batch_size=batch_size, + shuffle=False, + collate_fn=dataset.collate_fn, + drop_last=True, + num_workers=c.num_loader_workers, + ) + return dataloader, dataset + + def test_loader(self): + if ok_ljspeech: + dataloader, dataset = self._create_dataloader(1, 1, 0) + + for i, data in enumerate(dataloader): + if i == self.max_loader_iter: + break + text_input = data["token_id"] + _ = data["token_id_lengths"] + speaker_name = data["speaker_names"] + linear_input = data["linear"] + mel_input = data["mel"] + mel_lengths = data["mel_lengths"] + _ = data["stop_targets"] + _ = data["item_idxs"] + wavs = data["waveform"] + + neg_values = text_input[text_input < 0] + check_count = len(neg_values) + + # check basic conditions + self.assertEqual(check_count, 0) + self.assertEqual(linear_input.shape[0], mel_input.shape[0], c.batch_size) + self.assertEqual(linear_input.shape[2], self.ap.fft_size // 2 + 1) + self.assertEqual(mel_input.shape[2], c.audio["num_mels"]) + self.assertEqual(wavs.shape[1], mel_input.shape[1] * c.audio.hop_length) + self.assertIsInstance(speaker_name[0], str) + + # make sure that the computed mels and the waveform match and correctly computed + mel_new = self.ap.melspectrogram(wavs[0].squeeze().numpy()) + # remove padding in mel-spectrogram + mel_dataloader = mel_input[0].T.numpy()[:, : mel_lengths[0]] + # guarantee that both mel-spectrograms have the same size and that we will remove waveform padding + mel_new = mel_new[:, : mel_lengths[0]] + ignore_seg = -(1 + c.audio.win_length // c.audio.hop_length) + mel_diff = (mel_new[:, : mel_input.shape[1]] - mel_input[0].T.numpy())[:, 0:ignore_seg] + self.assertLess(abs(mel_diff.sum()), 1e-5) + + # check normalization ranges + if self.ap.symmetric_norm: + self.assertLessEqual(mel_input.max(), self.ap.max_norm) + self.assertGreaterEqual( + mel_input.min(), -self.ap.max_norm # pylint: disable=invalid-unary-operand-type + ) + self.assertLess(mel_input.min(), 0) + else: + self.assertLessEqual(mel_input.max(), self.ap.max_norm) + self.assertGreaterEqual(mel_input.min(), 0) + + def test_batch_group_shuffle(self): + if ok_ljspeech: + dataloader, dataset = self._create_dataloader(2, c.r, 16) + last_length = 0 + frames = dataset.samples + for i, data in enumerate(dataloader): + if i == self.max_loader_iter: + break + mel_lengths = data["mel_lengths"] + avg_length = mel_lengths.numpy().mean() + dataloader.dataset.preprocess_samples() + is_items_reordered = False + for idx, item in enumerate(dataloader.dataset.samples): + if item != frames[idx]: + is_items_reordered = True + break + self.assertGreaterEqual(avg_length, last_length) + self.assertTrue(is_items_reordered) + + def test_start_by_longest(self): + """Test start_by_longest option. + + Ther first item of the fist batch must be longer than all the other items. + """ + if ok_ljspeech: + dataloader, _ = self._create_dataloader(2, c.r, 0, True) + dataloader.dataset.preprocess_samples() + for i, data in enumerate(dataloader): + if i == self.max_loader_iter: + break + mel_lengths = data["mel_lengths"] + if i == 0: + max_len = mel_lengths[0] + print(mel_lengths) + self.assertTrue(all(max_len >= mel_lengths)) + + def test_padding_and_spectrograms(self): + def check_conditions(idx, linear_input, mel_input, stop_target, mel_lengths): + self.assertNotEqual(linear_input[idx, -1].sum(), 0) # check padding + self.assertNotEqual(linear_input[idx, -2].sum(), 0) + self.assertNotEqual(mel_input[idx, -1].sum(), 0) + self.assertNotEqual(mel_input[idx, -2].sum(), 0) + self.assertEqual(stop_target[idx, -1], 1) + self.assertEqual(stop_target[idx, -2], 0) + self.assertEqual(stop_target[idx].sum(), 1) + self.assertEqual(len(mel_lengths.shape), 1) + self.assertEqual(mel_lengths[idx], linear_input[idx].shape[0]) + self.assertEqual(mel_lengths[idx], mel_input[idx].shape[0]) + + if ok_ljspeech: + dataloader, _ = self._create_dataloader(1, 1, 0) + + for i, data in enumerate(dataloader): + if i == self.max_loader_iter: + break + linear_input = data["linear"] + mel_input = data["mel"] + mel_lengths = data["mel_lengths"] + stop_target = data["stop_targets"] + item_idx = data["item_idxs"] + + # check mel_spec consistency + wav = np.asarray(self.ap.load_wav(item_idx[0]), dtype=np.float32) + mel = self.ap.melspectrogram(wav).astype("float32") + mel = torch.FloatTensor(mel).contiguous() + mel_dl = mel_input[0] + # NOTE: Below needs to check == 0 but due to an unknown reason + # there is a slight difference between two matrices. + # TODO: Check this assert cond more in detail. + self.assertLess(abs(mel.T - mel_dl).max(), 1e-5) + + # check mel-spec correctness + mel_spec = mel_input[0].cpu().numpy() + wav = self.ap.inv_melspectrogram(mel_spec.T) + self.ap.save_wav(wav, OUTPATH + "/mel_inv_dataloader.wav") + shutil.copy(item_idx[0], OUTPATH + "/mel_target_dataloader.wav") + + # check linear-spec + linear_spec = linear_input[0].cpu().numpy() + wav = self.ap.inv_spectrogram(linear_spec.T) + self.ap.save_wav(wav, OUTPATH + "/linear_inv_dataloader.wav") + shutil.copy(item_idx[0], OUTPATH + "/linear_target_dataloader.wav") + + # check the outputs + check_conditions(0, linear_input, mel_input, stop_target, mel_lengths) + + # Test for batch size 2 + dataloader, _ = self._create_dataloader(2, 1, 0) + + for i, data in enumerate(dataloader): + if i == self.max_loader_iter: + break + linear_input = data["linear"] + mel_input = data["mel"] + mel_lengths = data["mel_lengths"] + stop_target = data["stop_targets"] + item_idx = data["item_idxs"] + + # set id to the longest sequence in the batch + if mel_lengths[0] > mel_lengths[1]: + idx = 0 + else: + idx = 1 + + # check the longer item in the batch + check_conditions(idx, linear_input, mel_input, stop_target, mel_lengths) + + # check the other item in the batch + self.assertEqual(linear_input[1 - idx, -1].sum(), 0) + self.assertEqual(mel_input[1 - idx, -1].sum(), 0) + self.assertEqual(stop_target[1, mel_lengths[1] - 1], 1) + self.assertEqual(stop_target[1, mel_lengths[1] :].sum(), stop_target.shape[1] - mel_lengths[1]) + self.assertEqual(len(mel_lengths.shape), 1) + + # check batch zero-frame conditions (zero-frame disabled) + # assert (linear_input * stop_target.unsqueeze(2)).sum() == 0 + # assert (mel_input * stop_target.unsqueeze(2)).sum() == 0 diff --git a/Indic-TTS/TTS/tests/data_tests/test_samplers.py b/Indic-TTS/TTS/tests/data_tests/test_samplers.py new file mode 100644 index 0000000000000000000000000000000000000000..b85e0ec4b32973cd5c7acaf26122dc895cb09525 --- /dev/null +++ b/Indic-TTS/TTS/tests/data_tests/test_samplers.py @@ -0,0 +1,165 @@ +import functools +import random +import unittest + +import torch + +from TTS.config.shared_configs import BaseDatasetConfig +from TTS.encoder.utils.samplers import PerfectBatchSampler +from TTS.tts.datasets import load_tts_samples +from TTS.tts.utils.data import get_length_balancer_weights +from TTS.tts.utils.languages import get_language_balancer_weights +from TTS.tts.utils.speakers import get_speaker_balancer_weights + +# Fixing random state to avoid random fails +torch.manual_seed(0) + +dataset_config_en = BaseDatasetConfig( + name="ljspeech", + meta_file_train="metadata.csv", + meta_file_val="metadata.csv", + path="tests/data/ljspeech", + language="en", +) + +dataset_config_pt = BaseDatasetConfig( + name="ljspeech", + meta_file_train="metadata.csv", + meta_file_val="metadata.csv", + path="tests/data/ljspeech", + language="pt-br", +) + +# Adding the EN samples twice to create a language unbalanced dataset +train_samples, eval_samples = load_tts_samples( + [dataset_config_en, dataset_config_en, dataset_config_pt], eval_split=True +) + +# gerenate a speaker unbalanced dataset +for i, sample in enumerate(train_samples): + if i < 5: + sample["speaker_name"] = "ljspeech-0" + else: + sample["speaker_name"] = "ljspeech-1" + + +def is_balanced(lang_1, lang_2): + return 0.85 < lang_1 / lang_2 < 1.2 + + +class TestSamplers(unittest.TestCase): + def test_language_random_sampler(self): # pylint: disable=no-self-use + random_sampler = torch.utils.data.RandomSampler(train_samples) + ids = functools.reduce(lambda a, b: a + b, [list(random_sampler) for i in range(100)]) + en, pt = 0, 0 + for index in ids: + if train_samples[index]["language"] == "en": + en += 1 + else: + pt += 1 + + assert not is_balanced(en, pt), "Random sampler is supposed to be unbalanced" + + def test_language_weighted_random_sampler(self): # pylint: disable=no-self-use + weighted_sampler = torch.utils.data.sampler.WeightedRandomSampler( + get_language_balancer_weights(train_samples), len(train_samples) + ) + ids = functools.reduce(lambda a, b: a + b, [list(weighted_sampler) for i in range(100)]) + en, pt = 0, 0 + for index in ids: + if train_samples[index]["language"] == "en": + en += 1 + else: + pt += 1 + + assert is_balanced(en, pt), "Language Weighted sampler is supposed to be balanced" + + def test_speaker_weighted_random_sampler(self): # pylint: disable=no-self-use + + weighted_sampler = torch.utils.data.sampler.WeightedRandomSampler( + get_speaker_balancer_weights(train_samples), len(train_samples) + ) + ids = functools.reduce(lambda a, b: a + b, [list(weighted_sampler) for i in range(100)]) + spk1, spk2 = 0, 0 + for index in ids: + if train_samples[index]["speaker_name"] == "ljspeech-0": + spk1 += 1 + else: + spk2 += 1 + + assert is_balanced(spk1, spk2), "Speaker Weighted sampler is supposed to be balanced" + + def test_perfect_sampler(self): # pylint: disable=no-self-use + classes = set() + for item in train_samples: + classes.add(item["speaker_name"]) + + sampler = PerfectBatchSampler( + train_samples, + classes, + batch_size=2 * 3, # total batch size + num_classes_in_batch=2, + label_key="speaker_name", + shuffle=False, + drop_last=True, + ) + batchs = functools.reduce(lambda a, b: a + b, [list(sampler) for i in range(100)]) + for batch in batchs: + spk1, spk2 = 0, 0 + # for in each batch + for index in batch: + if train_samples[index]["speaker_name"] == "ljspeech-0": + spk1 += 1 + else: + spk2 += 1 + assert spk1 == spk2, "PerfectBatchSampler is supposed to be perfectly balanced" + + def test_perfect_sampler_shuffle(self): # pylint: disable=no-self-use + classes = set() + for item in train_samples: + classes.add(item["speaker_name"]) + + sampler = PerfectBatchSampler( + train_samples, + classes, + batch_size=2 * 3, # total batch size + num_classes_in_batch=2, + label_key="speaker_name", + shuffle=True, + drop_last=False, + ) + batchs = functools.reduce(lambda a, b: a + b, [list(sampler) for i in range(100)]) + for batch in batchs: + spk1, spk2 = 0, 0 + # for in each batch + for index in batch: + if train_samples[index]["speaker_name"] == "ljspeech-0": + spk1 += 1 + else: + spk2 += 1 + assert spk1 == spk2, "PerfectBatchSampler is supposed to be perfectly balanced" + + def test_length_weighted_random_sampler(self): # pylint: disable=no-self-use + for _ in range(1000): + # gerenate a lenght unbalanced dataset with random max/min audio lenght + min_audio = random.randrange(1, 22050) + max_audio = random.randrange(44100, 220500) + for idx, item in enumerate(train_samples): + # increase the diversity of durations + random_increase = random.randrange(100, 1000) + if idx < 5: + item["audio_length"] = min_audio + random_increase + else: + item["audio_length"] = max_audio + random_increase + + weighted_sampler = torch.utils.data.sampler.WeightedRandomSampler( + get_length_balancer_weights(train_samples, num_buckets=2), len(train_samples) + ) + ids = functools.reduce(lambda a, b: a + b, [list(weighted_sampler) for i in range(100)]) + len1, len2 = 0, 0 + for index in ids: + if train_samples[index]["audio_length"] < max_audio: + len1 += 1 + else: + len2 += 1 + assert is_balanced(len1, len2), "Length Weighted sampler is supposed to be balanced" diff --git a/Indic-TTS/TTS/tests/inference_tests/__init__.py b/Indic-TTS/TTS/tests/inference_tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/tests/inference_tests/test_synthesize.py b/Indic-TTS/TTS/tests/inference_tests/test_synthesize.py new file mode 100644 index 0000000000000000000000000000000000000000..42b7717281617eec96291ea4a093b9dff031ef47 --- /dev/null +++ b/Indic-TTS/TTS/tests/inference_tests/test_synthesize.py @@ -0,0 +1,27 @@ +import os + +from tests import get_tests_output_path, run_cli + + +def test_synthesize(): + """Test synthesize.py with diffent arguments.""" + output_path = os.path.join(get_tests_output_path(), "output.wav") + run_cli("tts --list_models") + + # single speaker model + run_cli(f'tts --text "This is an example." --out_path "{output_path}"') + run_cli( + "tts --model_name tts_models/en/ljspeech/glow-tts " f'--text "This is an example." --out_path "{output_path}"' + ) + run_cli( + "tts --model_name tts_models/en/ljspeech/glow-tts " + "--vocoder_name vocoder_models/en/ljspeech/multiband-melgan " + f'--text "This is an example." --out_path "{output_path}"' + ) + + # multi-speaker SC-Glow model + # run_cli("tts --model_name tts_models/en/vctk/sc-glow-tts --list_speaker_idxs") + # run_cli( + # f'tts --model_name tts_models/en/vctk/sc-glow-tts --speaker_idx "p304" ' + # f'--text "This is an example." --out_path "{output_path}"' + # ) diff --git a/Indic-TTS/TTS/tests/inference_tests/test_synthesizer.py b/Indic-TTS/TTS/tests/inference_tests/test_synthesizer.py new file mode 100644 index 0000000000000000000000000000000000000000..b5350b0f8496985ea43db640e770780d372ca4d9 --- /dev/null +++ b/Indic-TTS/TTS/tests/inference_tests/test_synthesizer.py @@ -0,0 +1,78 @@ +import os +import unittest + +from tests import get_tests_output_path +from TTS.config import load_config +from TTS.tts.models import setup_model +from TTS.utils.io import save_checkpoint +from TTS.utils.synthesizer import Synthesizer + + +class SynthesizerTest(unittest.TestCase): + # pylint: disable=R0201 + def _create_random_model(self): + # pylint: disable=global-statement + config = load_config(os.path.join(get_tests_output_path(), "dummy_model_config.json")) + model = setup_model(config) + output_path = os.path.join(get_tests_output_path()) + save_checkpoint(config, model, None, None, 10, 1, output_path) + + def test_in_out(self): + self._create_random_model() + tts_root_path = get_tests_output_path() + tts_checkpoint = os.path.join(tts_root_path, "checkpoint_10.pth") + tts_config = os.path.join(tts_root_path, "dummy_model_config.json") + synthesizer = Synthesizer(tts_checkpoint, tts_config, None, None) + synthesizer.tts("Better this test works!!") + + def test_split_into_sentences(self): + """Check demo server sentences split as expected""" + print("\n > Testing demo server sentence splitting") + # pylint: disable=attribute-defined-outside-init, protected-access + self.seg = Synthesizer._get_segmenter("en") + sis = Synthesizer.split_into_sentences + assert sis(self, "Hello. Two sentences") == ["Hello.", "Two sentences"] + assert sis(self, "He went to meet the adviser from Scott, Waltman & Co. next morning.") == [ + "He went to meet the adviser from Scott, Waltman & Co. next morning." + ] + assert sis(self, "Let's run it past Sarah and co. They'll want to see this.") == [ + "Let's run it past Sarah and co.", + "They'll want to see this.", + ] + assert sis(self, "Where is Bobby Jr.'s rabbit?") == ["Where is Bobby Jr.'s rabbit?"] + assert sis(self, "Please inform the U.K. authorities right away.") == [ + "Please inform the U.K. authorities right away." + ] + assert sis(self, "Were David and co. at the event?") == ["Were David and co. at the event?"] + assert sis(self, "paging dr. green, please come to theatre four immediately.") == [ + "paging dr. green, please come to theatre four immediately." + ] + assert sis(self, "The email format is Firstname.Lastname@example.com. I think you reversed them.") == [ + "The email format is Firstname.Lastname@example.com.", + "I think you reversed them.", + ] + assert sis( + self, + "The demo site is: https://top100.example.com/subsection/latestnews.html. Please send us your feedback.", + ) == [ + "The demo site is: https://top100.example.com/subsection/latestnews.html.", + "Please send us your feedback.", + ] + assert sis(self, "Scowling at him, 'You are not done yet!' she yelled.") == [ + "Scowling at him, 'You are not done yet!' she yelled." + ] # with the final lowercase "she" we see it's all one sentence + assert sis(self, "Hey!! So good to see you.") == ["Hey!!", "So good to see you."] + assert sis(self, "He went to Yahoo! but I don't know the division.") == [ + "He went to Yahoo! but I don't know the division." + ] + assert sis(self, "If you can't remember a quote, โ€œat least make up a memorable one that's plausible...\"") == [ + "If you can't remember a quote, โ€œat least make up a memorable one that's plausible...\"" + ] + assert sis(self, "The address is not google.com.") == ["The address is not google.com."] + assert sis(self, "1.) The first item 2.) The second item") == ["1.) The first item", "2.) The second item"] + assert sis(self, "1) The first item 2) The second item") == ["1) The first item", "2) The second item"] + assert sis(self, "a. The first item b. The second item c. The third list item") == [ + "a. The first item", + "b. The second item", + "c. The third list item", + ] diff --git a/Indic-TTS/TTS/tests/inputs/common_voice.tsv b/Indic-TTS/TTS/tests/inputs/common_voice.tsv new file mode 100644 index 0000000000000000000000000000000000000000..39fc4190acff0267c220895db29c49eb2a2903a3 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/common_voice.tsv @@ -0,0 +1,6 @@ +client_id path sentence up_votes down_votes age gender accent locale segment +95324d489b122a800b840e0b0d068f7363a1a6c2cd2e7365672cc7033e38deaa794bd59edcf8196aa35c9791652b9085ac3839a98bb50ebab4a1e8538a94846b common_voice_en_20005954.mp3 The applicants are invited for coffee and visa is given immediately. 3 0 en +95324d489b122a800b840e0b0d068f7363a1a6c2cd2e7365672cc7033e38deaa794bd59edcf8196aa35c9791652b9085ac3839a98bb50ebab4a1e8538a94846b common_voice_en_20005955.mp3 Developmental robotics is related to, but differs from, evolutionary robotics. 2 0 en +95324d489b122a800b840e0b0d068f7363a1a6c2cd2e7365672cc7033e38deaa794bd59edcf8196aa35c9791652b9085ac3839a98bb50ebab4a1e8538a94846b common_voice_en_20005956.mp3 The musical was originally directed and choreographed by Alan Lund. 2 0 en +954a4181ae9fba89d1b1570f2ae148b3ee18ee2311de978e698f598db859f830d93d35574596d713518e8c96cdae01fce7a08c60c2e0a22bcf01e020924440a6 common_voice_en_19737073.mp3 He graduated from Columbia High School, in Brown County, South Dakota. 2 0 en +954a4181ae9fba89d1b1570f2ae148b3ee18ee2311de978e698f598db859f830d93d35574596d713518e8c96cdae01fce7a08c60c2e0a22bcf01e020924440a6 common_voice_en_19737074.mp3 Competition for limited resources has also resulted in some local conflicts. 2 0 en diff --git a/Indic-TTS/TTS/tests/inputs/example_1.wav b/Indic-TTS/TTS/tests/inputs/example_1.wav new file mode 100644 index 0000000000000000000000000000000000000000..b1a0ed110ab9763dab7428f6273d696fecb4205d Binary files /dev/null and b/Indic-TTS/TTS/tests/inputs/example_1.wav differ diff --git a/Indic-TTS/TTS/tests/inputs/language_ids.json b/Indic-TTS/TTS/tests/inputs/language_ids.json new file mode 100644 index 0000000000000000000000000000000000000000..27bb15206f1b06db9f2f14451caa7f5f43bdb7f1 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/language_ids.json @@ -0,0 +1,5 @@ +{ + "en": 0, + "fr-fr": 1, + "pt-br": 2 +} \ No newline at end of file diff --git a/Indic-TTS/TTS/tests/inputs/scale_stats.npy b/Indic-TTS/TTS/tests/inputs/scale_stats.npy new file mode 100644 index 0000000000000000000000000000000000000000..74be37553ee6204095a6f791ebe10f8f10140fba --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/scale_stats.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66e84c8c947d3cdead90cc37710c7b426562e2520e59500bc8e53c435152506c +size 10479 diff --git a/Indic-TTS/TTS/tests/inputs/server_config.json b/Indic-TTS/TTS/tests/inputs/server_config.json new file mode 100644 index 0000000000000000000000000000000000000000..f0a922836adbebc2b488c218f0969c707bb7d4ed --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/server_config.json @@ -0,0 +1,14 @@ +{ + "tts_checkpoint":"checkpoint_10.pth", // tts checkpoint file + "tts_config":"dummy_model_config.json", // tts config.json file + "tts_speakers": null, // json file listing speaker ids. null if no speaker embedding. + "wavernn_lib_path": null, // Rootpath to wavernn project folder to be imported. If this is null, model uses GL for speech synthesis. + "wavernn_file": null, // wavernn checkpoint file name + "wavernn_config": null, // wavernn config file + "vocoder_config":null, + "vocoder_checkpoint": null, + "is_wavernn_batched":true, + "port": 5002, + "use_cuda": false, + "debug": true +} diff --git a/Indic-TTS/TTS/tests/inputs/test_align_tts.json b/Indic-TTS/TTS/tests/inputs/test_align_tts.json new file mode 100644 index 0000000000000000000000000000000000000000..a0d677ad1acdfc939bdbd9f4d78271d28da71c92 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_align_tts.json @@ -0,0 +1,158 @@ +{ + "model": "align_tts", + "run_name": "test_sample_dataset_run", + "run_description": "sample dataset test run", + + // AUDIO PARAMETERS + "audio":{ + // stft parameters + "fft_size": 1024, // number of stft frequency levels. Size of the linear spectogram frame. + "win_length": 1024, // stft window length in ms. + "hop_length": 256, // stft window hop-lengh in ms. + "frame_length_ms": null, // stft window length in ms.If null, 'win_length' is used. + "frame_shift_ms": null, // stft window hop-lengh in ms. If null, 'hop_length' is used. + + // Audio processing parameters + "sample_rate": 22050, // DATASET-RELATED: wav sample-rate. + "preemphasis": 0.0, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "ref_level_db": 20, // reference level db, theoretically 20db is the sound of air. + + // Silence trimming + "do_trim_silence": true,// enable trimming of slience of audio as you load it. LJspeech (true), TWEB (false), Nancy (true) + "trim_db": 60, // threshold for timming silence. Set this according to your dataset. + + // Griffin-Lim + "power": 1.5, // value to sharpen wav signals after GL algorithm. + "griffin_lim_iters": 60,// #griffin-lim iterations. 30-60 is a good range. Larger the value, slower the generation. + + // MelSpectrogram parameters + "num_mels": 80, // size of the mel spec frame. + "mel_fmin": 50.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 7600.0, // maximum freq level for mel-spec. Tune for dataset!! + "spec_gain": 1, + + // Normalization parameters + "signal_norm": true, // normalize spec values. Mean-Var normalization if 'stats_path' is defined otherwise range normalization defined by the other params. + "min_level_db": -100, // lower bound for normalization + "symmetric_norm": true, // move normalization to range [-1, 1] + "max_norm": 4.0, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "stats_path": null // DO NOT USE WITH MULTI_SPEAKER MODEL. scaler stats file computed by 'compute_statistics.py'. If it is defined, mean-std based notmalization is used and other normalization params are ignored + }, + + // VOCABULARY PARAMETERS + // if custom character set is not defined, + // default set in symbols.py is used + // "characters":{ + // "pad": "_", + // "eos": "&", + // "bos": "*", + // "characters": "ABCDEFGHIJKLMNOPQRSTUVWXYZร‡รƒร€รร‚รŠร‰รร“ร”ร•รšร›abcdefghijklmnopqrstuvwxyzรงรฃร รกรขรชรฉรญรณรดรตรบรป!(),-.:;? ", + // "punctuations":"!'(),-.:;? ", + // "phonemes":"iyษจส‰ษฏuษชสสŠeรธษ˜ษ™ษตษคoษ›ล“ษœษžสŒษ”รฆษaษถษ‘ษ’แตปส˜ษ“ว€ษ—วƒส„ว‚ษ วส›pbtdสˆษ–cษŸkษกqษขส”ษดล‹ษฒษณnษฑmส™rส€โฑฑษพษฝษธฮฒfvฮธรฐszสƒส’ส‚สรงสxษฃฯ‡สฤงส•hษฆษฌษฎส‹ษนษปjษฐlษญสŽสŸหˆหŒหห‘สwษฅสœสขสกษ•ส‘ษบษงษšหžษซ'ฬƒ' " + // }, + + "add_blank": false, // if true add a new token after each token of the sentence. This increases the size of the input sequence, but has considerably improved the prosody of the GlowTTS model. + + // DISTRIBUTED TRAINING + "distributed":{ + "backend": "nccl", + "url": "tcp:\/\/localhost:54321" + }, + + "reinit_layers": [], // give a list of layer names to restore from the given checkpoint. If not defined, it reloads all heuristically matching layers. + + // MODEL PARAMETERS + "positional_encoding": true, + "hidden_channels": 256, + "hidden_channels_dp": 256, + "encoder_type": "fftransformer", + "encoder_params":{ + "hidden_channels_ffn": 1024 , + "num_heads": 2, + "num_layers": 6, + "dropout_p": 0.1 + }, + "decoder_type": "fftransformer", + "decoder_params":{ + "hidden_channels_ffn": 1024 , + "num_heads": 2, + "num_layers": 6, + "dropout_p": 0.1 + }, + + + // TRAINING + "batch_size":2, // Batch size for training. Lower values than 32 might cause hard to learn attention. It is overwritten by 'gradual_training'. + "eval_batch_size":1, + "r": 1, // Number of decoder frames to predict per iteration. Set the initial values if gradual training is enabled. + "loss_masking": true, // enable / disable loss masking against the sequence padding. + "phase_start_steps": null, + + + // LOSS PARAMETERS + "ssim_alpha": 1, + "spec_loss_alpha": 1, + "dur_loss_alpha": 1, + "mdn_alpha": 1, + + // VALIDATION + "run_eval": true, + "test_delay_epochs": -1, //Until attention is aligned, testing only wastes computation time. + "test_sentences_file": null, // set a file to load sentences to be used for testing. If it is null then we use default english sentences. + + // OPTIMIZER + "noam_schedule": true, // use noam warmup and lr schedule. + "grad_clip": 1.0, // upper limit for gradients for clipping. + "epochs": 1, // total number of epochs to train. + "lr": 0.002, // Initial learning rate. If Noam decay is active, maximum learning rate. + "warmup_steps": 4000, // Noam decay steps to increase the learning rate from 0 to "lr" + + // TENSORBOARD and LOGGING + "print_step": 1, // Number of steps to log training on console. + "tb_plot_step": 100, // Number of steps to plot TB training figures. + "print_eval": false, // If True, it prints intermediate loss values in evalulation. + "save_step": 5000, // Number of training steps expected to save traninpg stats and checkpoints. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "keep_all_best": true, // If true, keeps all best_models after keep_after steps + "keep_after": 10000, // Global step after which to keep best models if keep_all_best is true + "tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging.:set n + "mixed_precision": false, + + // DATA LOADING + "text_cleaner": "english_cleaners", + "enable_eos_bos_chars": false, // enable/disable beginning of sentence and end of sentence chars. + "num_loader_workers": 0, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "num_eval_loader_workers": 0, // number of evaluation data loader processes. + "batch_group_size": 0, //Number of batches to shuffle after bucketing. + "min_seq_len": 2, // DATASET-RELATED: minimum text length to use in training + "max_seq_len": 300, // DATASET-RELATED: maximum text length + "compute_f0": false, // compute f0 values in data-loader + "compute_input_seq_cache": false, // if true, text sequences are computed before starting training. If phonemes are enabled, they are also computed at this stage. + + // PATHS + "output_path": "tests/train_outputs/", + + // PHONEMES + "phoneme_cache_path": "tests/train_outputs/phoneme_cache/", // phoneme computation is slow, therefore, it caches results in the given folder. + "use_phonemes": false, // use phonemes instead of raw characters. It is suggested for better pronoun[ciation. + "phoneme_language": "en-us", // depending on your target language, pick one from https://github.com/bootphon/phonemizer#languages + + // MULTI-SPEAKER and GST + "use_speaker_embedding": false, // use speaker embedding to enable multi-speaker learning. + "use_d_vector_file": false, // if true, forces the model to use external embedding per sample instead of nn.embeddings, that is, it supports external embeddings such as those used at: https://arxiv.org/abs /1806.04558 + "d_vector_file": "/home/erogol/Data/libritts/speakers.json", // if not null and use_d_vector_file is true, it is used to load a specific embedding file and thus uses these embeddings instead of nn.embeddings, that is, it supports external embeddings such as those used at: https://arxiv.org/abs /1806.04558 + + + // DATASETS + "datasets": // List of datasets. They all merged and they get different speaker_ids. + [ + { + "name": "ljspeech", + "path": "tests/data/ljspeech/", + "meta_file_train": "metadata.csv", + "meta_file_val": "metadata.csv", + "meta_file_attn_mask": null + } + ] +} \ No newline at end of file diff --git a/Indic-TTS/TTS/tests/inputs/test_config.json b/Indic-TTS/TTS/tests/inputs/test_config.json new file mode 100644 index 0000000000000000000000000000000000000000..8f8810d17f1a3871c50fa5cd0ba093096a9b4d04 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_config.json @@ -0,0 +1,69 @@ + { + "audio":{ + "audio_processor": "audio", + "num_mels": 80, + "fft_size": 1024, + "sample_rate": 22050, + "frame_length_ms": null, + "frame_shift_ms": null, + "hop_length": 256, + "win_length": 1024, + "preemphasis": 0.97, + "min_level_db": -100, + "ref_level_db": 20, + "power": 1.5, + "griffin_lim_iters": 30, + "signal_norm": true, + "symmetric_norm": true, + "clip_norm": true, + "max_norm": 4, + "mel_fmin": 0, + "mel_fmax": 8000, + "do_trim_silence": false, + "spec_gain": 20 + }, + + "characters":{ + "pad": "_", + "eos": "~", + "bos": "^", + "characters": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!'(),-.:;? ", + "punctuations":"!'(),-.:;? ", + "phonemes":"iyษจส‰ษฏuษชสสŠeรธษ˜ษ™ษตษคoษ›ล“ษœษžสŒษ”รฆษaษถษ‘ษ’แตปส˜ษ“ว€ษ—วƒส„ว‚ษ วส›pbtdสˆษ–cษŸkษกqษขส”ษดล‹ษฒษณnษฑmส™rส€โฑฑษพษฝษธฮฒfvฮธรฐszสƒส’ส‚สรงสxษฃฯ‡สฤงส•hษฆษฌษฎส‹ษนษปjษฐlษญสŽสŸหˆหŒหห‘สwษฅสœสขสกษ•ส‘ษบษงษšหžษซสฒ" + }, + + "hidden_size": 128, + "embedding_size": 256, + "text_cleaner": "english_cleaners", + + "epochs": 2000, + "lr": 0.003, + "lr_patience": 5, + "lr_decay": 0.5, + "batch_size": 2, + "r": 5, + "mk": 1.0, + "num_loader_workers": 0, + "memory_size": 5, + + "save_step": 200, + "data_path": "tests/data/ljspeech/", + "output_path": "result", + "min_seq_len": 0, + "max_seq_len": 300, + "log_dir": "tests/outputs/", + + + "use_speaker_embedding": false, + "use_gst": true, + "gst": { + "gst_style_input": null, + + + + "gst_use_speaker_embedding": true, + "gst_embedding_dim": 512, + "gst_num_heads": 4, + "gst_num_style_tokens": 10 + } +} diff --git a/Indic-TTS/TTS/tests/inputs/test_glow_tts.json b/Indic-TTS/TTS/tests/inputs/test_glow_tts.json new file mode 100644 index 0000000000000000000000000000000000000000..64b0982879e117135e363334943bc304b487a338 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_glow_tts.json @@ -0,0 +1,151 @@ +{ + "model": "glow_tts", + "run_name": "glow-tts-gatedconv", + "run_description": "glow-tts model training with gated conv.", + + // AUDIO PARAMETERS + "audio":{ + "fft_size": 1024, // number of stft frequency levels. Size of the linear spectogram frame. + "win_length": 1024, // stft window length in ms. + "hop_length": 256, // stft window hop-lengh in ms. + "frame_length_ms": null, // stft window length in ms.If null, 'win_length' is used. + "frame_shift_ms": null, // stft window hop-lengh in ms. If null, 'hop_length' is used. + + // Audio processing parameters + "sample_rate": 22050, // DATASET-RELATED: wav sample-rate. If different than the original data, it is resampled. + "preemphasis": 0.0, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "ref_level_db": 0, // reference level db, theoretically 20db is the sound of air. + + // Griffin-Lim + "power": 1.1, // value to sharpen wav signals after GL algorithm. + "griffin_lim_iters": 60,// #griffin-lim iterations. 30-60 is a good range. Larger the value, slower the generation. + + // Silence trimming + "do_trim_silence": true,// enable trimming of slience of audio as you load it. LJspeech (false), TWEB (false), Nancy (true) + "trim_db": 60, // threshold for timming silence. Set this according to your dataset. + + // MelSpectrogram parameters + "num_mels": 80, // size of the mel spec frame. + "mel_fmin": 50.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 7600.0, // maximum freq level for mel-spec. Tune for dataset!! + "spec_gain": 1.0, // scaler value appplied after log transform of spectrogram. + + // Normalization parameters + "signal_norm": true, // normalize spec values. Mean-Var normalization if 'stats_path' is defined otherwise range normalization defined by the other params. + "min_level_db": -100, // lower bound for normalization + "symmetric_norm": true, // move normalization to range [-1, 1] + "max_norm": 1.0, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "stats_path": null // DO NOT USE WITH MULTI_SPEAKER MODEL. scaler stats file computed by 'compute_statistics.py'. If it is defined, mean-std based notmalization is used and other normalization params are ignored + }, + + // VOCABULARY PARAMETERS + // if custom character set is not defined, + // default set in symbols.py is used + // "characters":{ + // "pad": "_", + // "eos": "~", + // "bos": "^", + // "characters": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!'(),-.:;? ", + // "punctuations":"!'(),-.:;? ", + // "phonemes":"iyษจส‰ษฏuษชสสŠeรธษ˜ษ™ษตษคoษ›ล“ษœษžสŒษ”รฆษaษถษ‘ษ’แตปส˜ษ“ว€ษ—วƒส„ว‚ษ วส›pbtdสˆษ–cษŸkษกqษขส”ษดล‹ษฒษณnษฑmส™rส€โฑฑษพษฝษธฮฒfvฮธรฐszสƒส’ส‚สรงสxษฃฯ‡สฤงส•hษฆษฌษฎส‹ษนษปjษฐlษญสŽสŸหˆหŒหห‘สwษฅสœสขสกษ•ส‘ษบษงษšหžษซ" + // }, + + "add_blank": false, // if true add a new token after each token of the sentence. This increases the size of the input sequence, but has considerably improved the prosody of the GlowTTS model. + + // DISTRIBUTED TRAINING + "mixed_precision": false, + "distributed":{ + "backend": "nccl", + "url": "tcp:\/\/localhost:54323" + }, + + "reinit_layers": [], // give a list of layer names to restore from the given checkpoint. If not defined, it reloads all heuristically matching layers. + + // MODEL PARAMETERS + "use_mas": false, // use Monotonic Alignment Search if true. Otherwise use pre-computed attention alignments. + + // TRAINING + "batch_size": 8, // Batch size for training. Lower values than 32 might cause hard to learn attention. It is overwritten by 'gradual_training'. + "eval_batch_size": 8, + "r": 1, // Number of decoder frames to predict per iteration. Set the initial values if gradual training is enabled. + "loss_masking": true, // enable / disable loss masking against the sequence padding. + "data_dep_init_iter": 1, + + // VALIDATION + "run_eval": true, + "test_delay_epochs": 0, //Until attention is aligned, testing only wastes computation time. + "test_sentences_file": null, // set a file to load sentences to be used for testing. If it is null then we use default english sentences. + + // OPTIMIZER + "noam_schedule": true, // use noam warmup and lr schedule. + "grad_clip": 5.0, // upper limit for gradients for clipping. + "epochs": 1, // total number of epochs to train. + "lr": 1e-3, // Initial learning rate. If Noam decay is active, maximum learning rate. + "wd": 0.000001, // Weight decay weight. + "warmup_steps": 4000, // Noam decay steps to increase the learning rate from 0 to "lr" + "seq_len_norm": false, // Normalize eash sample loss with its length to alleviate imbalanced datasets. Use it if your dataset is small or has skewed distribution of sequence lengths. + + "hidden_channels_encoder": 192, + "hidden_channels_decoder": 192, + "hidden_channels_duration_predictor": 256, + "use_encoder_prenet": true, + "encoder_type": "rel_pos_transformer", + "encoder_params": { + "kernel_size":3, + "dropout_p": 0.1, + "num_layers": 6, + "num_heads": 2, + "hidden_channels_ffn": 768, + "input_length": null + }, + + // TENSORBOARD and LOGGING + "print_step": 25, // Number of steps to log training on console. + "tb_plot_step": 100, // Number of steps to plot TB training figures. + "print_eval": false, // If True, it prints intermediate loss values in evalulation. + "save_step": 5000, // Number of training steps expected to save traninpg stats and checkpoints. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "keep_all_best": true, // If true, keeps all best_models after keep_after steps + "keep_after": 10000, // Global step after which to keep best models if keep_all_best is true + "tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging. + "apex_amp_level": null, + + // DATA LOADING + "text_cleaner": "phoneme_cleaners", + "enable_eos_bos_chars": false, // enable/disable beginning of sentence and end of sentence chars. + "num_loader_workers": 0, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "num_eval_loader_workers": 0, // number of evaluation data loader processes. + "batch_group_size": 0, //Number of batches to shuffle after bucketing. + "min_seq_len": 3, // DATASET-RELATED: minimum text length to use in training + "max_seq_len": 500, // DATASET-RELATED: maximum text length + "compute_f0": false, // compute f0 values in data-loader + "compute_input_seq_cache": true, + "use_noise_augment": true, + + // PATHS + "output_path": "tests/train_outputs/", + + // PHONEMES + "phoneme_cache_path": "tests/outputs/phoneme_cache/", // phoneme computation is slow, therefore, it caches results in the given folder. + "use_phonemes": false, // use phonemes instead of raw characters. It is suggested for better pronounciation. + "phoneme_language": "en-us", // depending on your target language, pick one from https://github.com/bootphon/phonemizer#languages + + // MULTI-SPEAKER and GST + "use_d_vector_file": false, + "d_vector_file": null, + "use_speaker_embedding": false, // use speaker embedding to enable multi-speaker learning. + + // DATASETS + "datasets": // List of datasets. They all merged and they get different speaker_ids. + [ + { + "name": "ljspeech", + "path": "tests/data/ljspeech/", + "meta_file_train": "metadata.csv", + "meta_file_val": "metadata.csv" + } + ] +} + + diff --git a/Indic-TTS/TTS/tests/inputs/test_speaker_encoder_config.json b/Indic-TTS/TTS/tests/inputs/test_speaker_encoder_config.json new file mode 100644 index 0000000000000000000000000000000000000000..bfcc17ab0e6390bdd00830f2a8c0ffc7e6f14032 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_speaker_encoder_config.json @@ -0,0 +1,61 @@ + +{ + "model": "speaker_encoder", + "run_name": "test_speaker_encoder", + "run_description": "test speaker encoder.", + "audio":{ + // Audio processing parameters + "num_mels": 40, // size of the mel spec frame. + "fft_size": 400, // number of stft frequency levels. Size of the linear spectogram frame. + "sample_rate": 16000, // DATASET-RELATED: wav sample-rate. If different than the original data, it is resampled. + "win_length": 400, // stft window length in ms. + "hop_length": 160, // stft window hop-lengh in ms. + "frame_length_ms": null, // stft window length in ms.If null, 'win_length' is used. + "frame_shift_ms": null, // stft window hop-lengh in ms. If null, 'hop_length' is used. + "preemphasis": 0.98, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "min_level_db": -100, // normalization range + "ref_level_db": 20, // reference level db, theoretically 20db is the sound of air. + "power": 1.5, // value to sharpen wav signals after GL algorithm. + "griffin_lim_iters": 60,// #griffin-lim iterations. 30-60 is a good range. Larger the value, slower the generation. + // Normalization parameters + "signal_norm": true, // normalize the spec values in range [0, 1] + "symmetric_norm": true, // move normalization to range [-1, 1] + "max_norm": 4.0, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "mel_fmin": 0.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 8000.0, // maximum freq level for mel-spec. Tune for dataset!! + "do_trim_silence": true, // enable trimming of slience of audio as you load it. LJspeech (false), TWEB (false), Nancy (true) + "trim_db": 60 // threshold for timming silence. Set this according to your dataset. + }, + "reinit_layers": [], + "loss": "angleproto", // "ge2e" to use Generalized End-to-End loss and "angleproto" to use Angular Prototypical loss (new SOTA) + "grad_clip": 3.0, // upper limit for gradients for clipping. + "epochs": 1000, // total number of epochs to train. + "lr": 0.0001, // Initial learning rate. If Noam decay is active, maximum learning rate. + "lr_decay": false, // if true, Noam learning rate decaying is applied through training. + "warmup_steps": 4000, // Noam decay steps to increase the learning rate from 0 to "lr" + "tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging. + "steps_plot_stats": 10, // number of steps to plot embeddings. + "num_classes_in_batch": 64, // Batch size for training. Lower values than 32 might cause hard to learn attention. It is overwritten by 'gradual_training'. + "num_utter_per_class": 10, // + "num_loader_workers": 8, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "wd": 0.000001, // Weight decay weight. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "save_step": 1000, // Number of training steps expected to save traning stats and checkpoints. + "print_step": 20, // Number of steps to log traning on console. + "batch_size": 32, + "output_path": "", // DATASET-RELATED: output path for all training outputs. + "model_params": { + "model_name": "lstm", + "input_dim": 40, + "proj_dim": 256, + "lstm_dim": 768, + "num_lstm_layers": 3, + "use_lstm_with_projection": true + }, + "storage": { + "sample_from_storage_p": 0.66, // the probability with which we'll sample from the DataSet in-memory storage + "storage_size": 15 // the size of the in-memory storage with respect to a single batch + }, + "datasets":null +} \ No newline at end of file diff --git a/Indic-TTS/TTS/tests/inputs/test_speedy_speech.json b/Indic-TTS/TTS/tests/inputs/test_speedy_speech.json new file mode 100644 index 0000000000000000000000000000000000000000..02783d213f3c93370bf8c53b4374b4e11da28ea7 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_speedy_speech.json @@ -0,0 +1,155 @@ +{ + "model": "speedy_speech", + "run_name": "test_sample_dataset_run", + "run_description": "sample dataset test run", + + // AUDIO PARAMETERS + "audio":{ + // stft parameters + "fft_size": 1024, // number of stft frequency levels. Size of the linear spectogram frame. + "win_length": 1024, // stft window length in ms. + "hop_length": 256, // stft window hop-lengh in ms. + "frame_length_ms": null, // stft window length in ms.If null, 'win_length' is used. + "frame_shift_ms": null, // stft window hop-lengh in ms. If null, 'hop_length' is used. + + // Audio processing parameters + "sample_rate": 22050, // DATASET-RELATED: wav sample-rate. + "preemphasis": 0.0, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "ref_level_db": 20, // reference level db, theoretically 20db is the sound of air. + + // Silence trimming + "do_trim_silence": true,// enable trimming of slience of audio as you load it. LJspeech (true), TWEB (false), Nancy (true) + "trim_db": 60, // threshold for timming silence. Set this according to your dataset. + + // Griffin-Lim + "power": 1.5, // value to sharpen wav signals after GL algorithm. + "griffin_lim_iters": 60,// #griffin-lim iterations. 30-60 is a good range. Larger the value, slower the generation. + + // MelSpectrogram parameters + "num_mels": 80, // size of the mel spec frame. + "mel_fmin": 50.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 7600.0, // maximum freq level for mel-spec. Tune for dataset!! + "spec_gain": 1, + + // Normalization parameters + "signal_norm": true, // normalize spec values. Mean-Var normalization if 'stats_path' is defined otherwise range normalization defined by the other params. + "min_level_db": -100, // lower bound for normalization + "symmetric_norm": true, // move normalization to range [-1, 1] + "max_norm": 4.0, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "stats_path": null // DO NOT USE WITH MULTI_SPEAKER MODEL. scaler stats file computed by 'compute_statistics.py'. If it is defined, mean-std based notmalization is used and other normalization params are ignored + }, + + // VOCABULARY PARAMETERS + // if custom character set is not defined, + // default set in symbols.py is used + // "characters":{ + // "pad": "_", + // "eos": "&", + // "bos": "*", + // "characters": "ABCDEFGHIJKLMNOPQRSTUVWXYZร‡รƒร€รร‚รŠร‰รร“ร”ร•รšร›abcdefghijklmnopqrstuvwxyzรงรฃร รกรขรชรฉรญรณรดรตรบรป!(),-.:;? ", + // "punctuations":"!'(),-.:;? ", + // "phonemes":"iyษจส‰ษฏuษชสสŠeรธษ˜ษ™ษตษคoษ›ล“ษœษžสŒษ”รฆษaษถษ‘ษ’แตปส˜ษ“ว€ษ—วƒส„ว‚ษ วส›pbtdสˆษ–cษŸkษกqษขส”ษดล‹ษฒษณnษฑmส™rส€โฑฑษพษฝษธฮฒfvฮธรฐszสƒส’ส‚สรงสxษฃฯ‡สฤงส•hษฆษฌษฎส‹ษนษปjษฐlษญสŽสŸหˆหŒหห‘สwษฅสœสขสกษ•ส‘ษบษงษšหžษซ'ฬƒ' " + // }, + + "add_blank": false, // if true add a new token after each token of the sentence. This increases the size of the input sequence, but has considerably improved the prosody of the GlowTTS model. + + // DISTRIBUTED TRAINING + "distributed":{ + "backend": "nccl", + "url": "tcp:\/\/localhost:54321" + }, + + "reinit_layers": [], // give a list of layer names to restore from the given checkpoint. If not defined, it reloads all heuristically matching layers. + + // MODEL PARAMETERS + "positional_encoding": true, + "hidden_channels": 128, + "encoder_type": "residual_conv_bn", + "encoder_type": "residual_conv_bn", + "encoder_params":{ + "kernel_size": 4, + "dilations": [1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1], + "num_conv_blocks": 2, + "num_res_blocks": 13 + }, + "decoder_type": "residual_conv_bn", + "decoder_params":{ + "kernel_size": 4, + "dilations": [1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1], + "num_conv_blocks": 2, + "num_res_blocks": 17 + }, + + + // TRAINING + "batch_size":64, // Batch size for training. Lower values than 32 might cause hard to learn attention. It is overwritten by 'gradual_training'. + "eval_batch_size":32, + "r": 1, // Number of decoder frames to predict per iteration. Set the initial values if gradual training is enabled. + "loss_masking": true, // enable / disable loss masking against the sequence padding. + + // LOSS PARAMETERS + "ssim_alpha": 1, + "l1_alpha": 1, + "huber_alpha": 1, + + // VALIDATION + "run_eval": true, + "test_delay_epochs": -1, //Until attention is aligned, testing only wastes computation time. + "test_sentences_file": null, // set a file to load sentences to be used for testing. If it is null then we use default english sentences. + + // OPTIMIZER + "noam_schedule": true, // use noam warmup and lr schedule. + "grad_clip": 1.0, // upper limit for gradients for clipping. + "epochs": 1, // total number of epochs to train. + "lr": 0.002, // Initial learning rate. If Noam decay is active, maximum learning rate. + "warmup_steps": 4000, // Noam decay steps to increase the learning rate from 0 to "lr" + + // TENSORBOARD and LOGGING + "print_step": 1, // Number of steps to log training on console. + "tb_plot_step": 100, // Number of steps to plot TB training figures. + "print_eval": false, // If True, it prints intermediate loss values in evalulation. + "save_step": 5000, // Number of training steps expected to save traninpg stats and checkpoints. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "keep_all_best": true, // If true, keeps all best_models after keep_after steps + "keep_after": 10000, // Global step after which to keep best models if keep_all_best is true + "tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging.:set n + "mixed_precision": false, + + // DATA LOADING + "text_cleaner": "english_cleaners", + "enable_eos_bos_chars": false, // enable/disable beginning of sentence and end of sentence chars. + "num_loader_workers": 0, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "num_eval_loader_workers": 0, // number of evaluation data loader processes. + "batch_group_size": 0, //Number of batches to shuffle after bucketing. + "min_seq_len": 2, // DATASET-RELATED: minimum text length to use in training + "max_seq_len": 300, // DATASET-RELATED: maximum text length + "compute_f0": false, // compute f0 values in data-loader + "compute_input_seq_cache": false, // if true, text sequences are computed before starting training. If phonemes are enabled, they are also computed at this stage. + + // PATHS + "output_path": "tests/train_outputs/", + + // PHONEMES + "phoneme_cache_path": "tests/train_outputs/phoneme_cache/", // phoneme computation is slow, therefore, it caches results in the given folder. + "use_phonemes": false, // use phonemes instead of raw characters. It is suggested for better pronoun[ciation. + "phoneme_language": "en-us", // depending on your target language, pick one from https://github.com/bootphon/phonemizer#languages + + // MULTI-SPEAKER and GST + "use_speaker_embedding": false, // use speaker embedding to enable multi-speaker learning. + "use_d_vector_file": false, // if true, forces the model to use external embedding per sample instead of nn.embeddings, that is, it supports external embeddings such as those used at: https://arxiv.org/abs /1806.04558 + "d_vector_file": "/home/erogol/Data/libritts/speakers.json", // if not null and use_d_vector_file is true, it is used to load a specific embedding file and thus uses these embeddings instead of nn.embeddings, that is, it supports external embeddings such as those used at: https://arxiv.org/abs /1806.04558 + + + // DATASETS + "datasets": // List of datasets. They all merged and they get different speaker_ids. + [ + { + "name": "ljspeech", + "path": "tests/data/ljspeech/", + "meta_file_train": "metadata.csv", + "meta_file_val": "metadata.csv", + "meta_file_attn_mask": "tests/data/ljspeech/metadata_attn_mask.txt" + } + ] +} \ No newline at end of file diff --git a/Indic-TTS/TTS/tests/inputs/test_tacotron2_config.json b/Indic-TTS/TTS/tests/inputs/test_tacotron2_config.json new file mode 100644 index 0000000000000000000000000000000000000000..69b235609cea91bf252ede5d7aa9c19fdba94a4d --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_tacotron2_config.json @@ -0,0 +1,177 @@ +{ + "model": "Tacotron2", + "run_name": "test_sample_dataset_run", + "run_description": "sample dataset test run", + + // AUDIO PARAMETERS + "audio":{ + // stft parameters + "fft_size": 1024, // number of stft frequency levels. Size of the linear spectogram frame. + "win_length": 1024, // stft window length in ms. + "hop_length": 256, // stft window hop-lengh in ms. + "frame_length_ms": null, // stft window length in ms.If null, 'win_length' is used. + "frame_shift_ms": null, // stft window hop-lengh in ms. If null, 'hop_length' is used. + + // Audio processing parameters + "sample_rate": 22050, // DATASET-RELATED: wav sample-rate. + "preemphasis": 0.0, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "ref_level_db": 20, // reference level db, theoretically 20db is the sound of air. + + // Silence trimming + "do_trim_silence": true,// enable trimming of slience of audio as you load it. LJspeech (true), TWEB (false), Nancy (true) + "trim_db": 60, // threshold for timming silence. Set this according to your dataset. + + // Griffin-Lim + "power": 1.5, // value to sharpen wav signals after GL algorithm. + "griffin_lim_iters": 60,// #griffin-lim iterations. 30-60 is a good range. Larger the value, slower the generation. + + // MelSpectrogram parameters + "num_mels": 80, // size of the mel spec frame. + "mel_fmin": 0.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 8000.0, // maximum freq level for mel-spec. Tune for dataset!! + "spec_gain": 20.0, + + // Normalization parameters + "signal_norm": true, // normalize spec values. Mean-Var normalization if 'stats_path' is defined otherwise range normalization defined by the other params. + "min_level_db": -100, // lower bound for normalization + "symmetric_norm": true, // move normalization to range [-1, 1] + "max_norm": 4.0, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "stats_path": null // DO NOT USE WITH MULTI_SPEAKER MODEL. scaler stats file computed by 'compute_statistics.py'. If it is defined, mean-std based notmalization is used and other normalization params are ignored + }, + + // VOCABULARY PARAMETERS + // if custom character set is not defined, + // default set in symbols.py is used + // "characters":{ + // "pad": "_", + // "eos": "~", + // "bos": "^", + // "characters": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!'(),-.:;? ", + // "punctuations":"!'(),-.:;? ", + // "phonemes":"iyษจส‰ษฏuษชสสŠeรธษ˜ษ™ษตษคoษ›ล“ษœษžสŒษ”รฆษaษถษ‘ษ’แตปส˜ษ“ว€ษ—วƒส„ว‚ษ วส›pbtdสˆษ–cษŸkษกqษขส”ษดล‹ษฒษณnษฑmส™rส€โฑฑษพษฝษธฮฒfvฮธรฐszสƒส’ส‚สรงสxษฃฯ‡สฤงส•hษฆษฌษฎส‹ษนษปjษฐlษญสŽสŸหˆหŒหห‘สwษฅสœสขสกษ•ส‘ษบษงษšหžษซ" + // }, + + // DISTRIBUTED TRAINING + "distributed":{ + "backend": "nccl", + "url": "tcp:\/\/localhost:54321" + }, + + "reinit_layers": [], // give a list of layer names to restore from the given checkpoint. If not defined, it reloads all heuristically matching layers. + + // TRAINING + "batch_size": 8, // Batch size for training. Lower values than 32 might cause hard to learn attention. It is overwritten by 'gradual_training'. + "eval_batch_size": 8, + "r": 7, // Number of decoder frames to predict per iteration. Set the initial values if gradual training is enabled. + "gradual_training": [[0, 7, 4], [1, 5, 2]], //set gradual training steps [first_step, r, batch_size]. If it is null, gradual training is disabled. For Tacotron, you might need to reduce the 'batch_size' as you proceeed. + "loss_masking": true, // enable / disable loss masking against the sequence padding. + "ga_alpha": 10.0, // weight for guided attention loss. If > 0, guided attention is enabled. + "mixed_precision": false, + + // VALIDATION + "run_eval": true, + "test_delay_epochs": 0, //Until attention is aligned, testing only wastes computation time. + "test_sentences_file": null, // set a file to load sentences to be used for testing. If it is null then we use default english sentences. + + // LOSS SETTINGS + "loss_masking": true, // enable / disable loss masking against the sequence padding. + "decoder_loss_alpha": 0.5, // original decoder loss weight. If > 0, it is enabled + "postnet_loss_alpha": 0.25, // original postnet loss weight. If > 0, it is enabled + "postnet_diff_spec_alpha": 0.25, // differential spectral loss weight. If > 0, it is enabled + "decoder_diff_spec_alpha": 0.25, // differential spectral loss weight. If > 0, it is enabled + "decoder_ssim_alpha": 0.5, // decoder ssim loss weight. If > 0, it is enabled + "postnet_ssim_alpha": 0.25, // postnet ssim loss weight. If > 0, it is enabled + "ga_alpha": 5.0, // weight for guided attention loss. If > 0, guided attention is enabled. + "stopnet_pos_weight": 15.0, // pos class weight for stopnet loss since there are way more negative samples than positive samples. + + // OPTIMIZER + "noam_schedule": false, // use noam warmup and lr schedule. + "grad_clip": 1.0, // upper limit for gradients for clipping. + "epochs": 1, // total number of epochs to train. + "lr": 0.0001, // Initial learning rate. If Noam decay is active, maximum learning rate. + "wd": 0.000001, // Weight decay weight. + "warmup_steps": 4000, // Noam decay steps to increase the learning rate from 0 to "lr" + "seq_len_norm": false, // Normalize eash sample loss with its length to alleviate imbalanced datasets. Use it if your dataset is small or has skewed distribution of sequence lengths. + + // TACOTRON PRENET + "memory_size": -1, // ONLY TACOTRON - size of the memory queue used fro storing last decoder predictions for auto-regression. If < 0, memory queue is disabled and decoder only uses the last prediction frame. + "prenet_type": "bn", // "original" or "bn". + "prenet_dropout": false, // enable/disable dropout at prenet. + + // TACOTRON ATTENTION + "attention_type": "original", // 'original' , 'graves', 'dynamic_convolution' + "attention_heads": 4, // number of attention heads (only for 'graves') + "attention_norm": "sigmoid", // softmax or sigmoid. + "windowing": false, // Enables attention windowing. Used only in eval mode. + "use_forward_attn": false, // if it uses forward attention. In general, it aligns faster. + "forward_attn_mask": false, // Additional masking forcing monotonicity only in eval mode. + "transition_agent": false, // enable/disable transition agent of forward attention. + "location_attn": true, // enable_disable location sensitive attention. It is enabled for TACOTRON by default. + "bidirectional_decoder": false, // use https://arxiv.org/abs/1907.09006. Use it, if attention does not work well with your dataset. + "double_decoder_consistency": true, // use DDC explained here https://erogol.com/solving-attention-problems-of-tts-models-with-double-decoder-consistency-draft/ + "ddc_r": 7, // reduction rate for coarse decoder. + + // STOPNET + "stopnet": true, // Train stopnet predicting the end of synthesis. + "separate_stopnet": true, // Train stopnet seperately if 'stopnet==true'. It prevents stopnet loss to influence the rest of the model. It causes a better model, but it trains SLOWER. + + // TENSORBOARD and LOGGING + "print_step": 1, // Number of steps to log training on console. + "tb_plot_step": 100, // Number of steps to plot TB training figures. + "print_eval": false, // If True, it prints intermediate loss values in evalulation. + "save_step": 10000, // Number of training steps expected to save traninpg stats and checkpoints. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "keep_all_best": true, // If true, keeps all best_models after keep_after steps + "keep_after": 10000, // Global step after which to keep best models if keep_all_best is true + "tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging. + + // DATA LOADING + "text_cleaner": "phoneme_cleaners", + "enable_eos_bos_chars": false, // enable/disable beginning of sentence and end of sentence chars. + "num_loader_workers": 0, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "num_eval_loader_workers": 0, // number of evaluation data loader processes. + "batch_group_size": 0, //Number of batches to shuffle after bucketing. + "min_seq_len": 6, // DATASET-RELATED: minimum text length to use in training + "max_seq_len": 153, // DATASET-RELATED: maximum text length + "compute_input_seq_cache": true, + + // PATHS + "output_path": "tests/train_outputs/", + + // PHONEMES + "phoneme_cache_path": "tests/train_outputs/phoneme_cache/", // phoneme computation is slow, therefore, it caches results in the given folder. + "use_phonemes": false, // use phonemes instead of raw characters. It is suggested for better pronounciation. + "phoneme_language": "en-us", // depending on your target language, pick one from https://github.com/bootphon/phonemizer#languages + + // MULTI-SPEAKER and GST + "use_d_vector_file": false, + "d_vector_file": null, + "use_speaker_embedding": false, // use speaker embedding to enable multi-speaker learning. + "use_gst": true, // use global style tokens + "gst": { // gst parameter if gst is enabled + "gst_style_input": null, // Condition the style input either on a + // -> wave file [path to wave] or + // -> dictionary using the style tokens {'token1': 'value', 'token2': 'value'} example {"0": 0.15, "1": 0.15, "5": -0.15} + // with the dictionary being len(dict) == len(gst_num_style_tokens). + "gst_use_speaker_embedding": true, // if true pass speaker embedding in attention input GST. + "gst_embedding_dim": 512, + "gst_num_heads": 4, + "gst_num_style_tokens": 10 + }, + + // DATASETS + "train_portion": 0.1, // dataset portion used for training. It is mainly for internal experiments. + "eval_portion": 0.1, // dataset portion used for training. It is mainly for internal experiments. + "datasets": // List of datasets. They all merged and they get different speaker_ids. + [ + { + "name": "ljspeech", + "path": "tests/data/ljspeech/", + "meta_file_train": "metadata.csv", + "meta_file_val": "metadata.csv" + } + ] + +} + diff --git a/Indic-TTS/TTS/tests/inputs/test_tacotron_bd_config.json b/Indic-TTS/TTS/tests/inputs/test_tacotron_bd_config.json new file mode 100644 index 0000000000000000000000000000000000000000..fbf3c001ac2d2ded312aa4fd5cd93afcd66f8157 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_tacotron_bd_config.json @@ -0,0 +1,177 @@ +{ + "model": "Tacotron", + "run_name": "test_sample_dataset_run", + "run_description": "sample dataset test run", + + // AUDIO PARAMETERS + "audio":{ + // stft parameters + "fft_size": 1024, // number of stft frequency levels. Size of the linear spectogram frame. + "win_length": 1024, // stft window length in ms. + "hop_length": 256, // stft window hop-lengh in ms. + "frame_length_ms": null, // stft window length in ms.If null, 'win_length' is used. + "frame_shift_ms": null, // stft window hop-lengh in ms. If null, 'hop_length' is used. + + // Audio processing parameters + "sample_rate": 22050, // DATASET-RELATED: wav sample-rate. + "preemphasis": 0.0, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "ref_level_db": 20, // reference level db, theoretically 20db is the sound of air. + + // Silence trimming + "do_trim_silence": true,// enable trimming of slience of audio as you load it. LJspeech (true), TWEB (false), Nancy (true) + "trim_db": 60, // threshold for timming silence. Set this according to your dataset. + + // Griffin-Lim + "power": 1.5, // value to sharpen wav signals after GL algorithm. + "griffin_lim_iters": 60,// #griffin-lim iterations. 30-60 is a good range. Larger the value, slower the generation. + + // MelSpectrogram parameters + "num_mels": 80, // size of the mel spec frame. + "mel_fmin": 0.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 8000.0, // maximum freq level for mel-spec. Tune for dataset!! + "spec_gain": 20.0, + + // Normalization parameters + "signal_norm": true, // normalize spec values. Mean-Var normalization if 'stats_path' is defined otherwise range normalization defined by the other params. + "min_level_db": -100, // lower bound for normalization + "symmetric_norm": true, // move normalization to range [-1, 1] + "max_norm": 4.0, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "stats_path": null // DO NOT USE WITH MULTI_SPEAKER MODEL. scaler stats file computed by 'compute_statistics.py'. If it is defined, mean-std based notmalization is used and other normalization params are ignored + }, + + // VOCABULARY PARAMETERS + // if custom character set is not defined, + // default set in symbols.py is used + // "characters":{ + // "pad": "_", + // "eos": "~", + // "bos": "^", + // "characters": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!'(),-.:;? ", + // "punctuations":"!'(),-.:;? ", + // "phonemes":"iyษจส‰ษฏuษชสสŠeรธษ˜ษ™ษตษคoษ›ล“ษœษžสŒษ”รฆษaษถษ‘ษ’แตปส˜ษ“ว€ษ—วƒส„ว‚ษ วส›pbtdสˆษ–cษŸkษกqษขส”ษดล‹ษฒษณnษฑmส™rส€โฑฑษพษฝษธฮฒfvฮธรฐszสƒส’ส‚สรงสxษฃฯ‡สฤงส•hษฆษฌษฎส‹ษนษปjษฐlษญสŽสŸหˆหŒหห‘สwษฅสœสขสกษ•ส‘ษบษงษšหžษซ" + // }, + + // DISTRIBUTED TRAINING + "distributed":{ + "backend": "nccl", + "url": "tcp:\/\/localhost:54321" + }, + + "reinit_layers": [], // give a list of layer names to restore from the given checkpoint. If not defined, it reloads all heuristically matching layers. + + // TRAINING + "batch_size": 1, // Batch size for training. Lower values than 32 might cause hard to learn attention. It is overwritten by 'gradual_training'. + "eval_batch_size":1, + "r": 7, // Number of decoder frames to predict per iteration. Set the initial values if gradual training is enabled. + "gradual_training": [[0, 7, 4]], //set gradual training steps [first_step, r, batch_size]. If it is null, gradual training is disabled. For Tacotron, you might need to reduce the 'batch_size' as you proceeed. + "loss_masking": true, // enable / disable loss masking against the sequence padding. + "ga_alpha": 10.0, // weight for guided attention loss. If > 0, guided attention is enabled. + "mixed_precision": false, + + // VALIDATION + "run_eval": true, + "test_delay_epochs": 0, //Until attention is aligned, testing only wastes computation time. + "test_sentences_file": null, // set a file to load sentences to be used for testing. If it is null then we use default english sentences. + + // LOSS SETTINGS + "loss_masking": true, // enable / disable loss masking against the sequence padding. + "decoder_loss_alpha": 0.5, // original decoder loss weight. If > 0, it is enabled + "postnet_loss_alpha": 0.25, // original postnet loss weight. If > 0, it is enabled + "postnet_diff_spec_alpha": 0.25, // differential spectral loss weight. If > 0, it is enabled + "decoder_diff_spec_alpha": 0.25, // differential spectral loss weight. If > 0, it is enabled + "decoder_ssim_alpha": 0.5, // decoder ssim loss weight. If > 0, it is enabled + "postnet_ssim_alpha": 0.25, // postnet ssim loss weight. If > 0, it is enabled + "ga_alpha": 5.0, // weight for guided attention loss. If > 0, guided attention is enabled. + "stopnet_pos_weight": 15.0, // pos class weight for stopnet loss since there are way more negative samples than positive samples. + + // OPTIMIZER + "noam_schedule": false, // use noam warmup and lr schedule. + "grad_clip": 1.0, // upper limit for gradients for clipping. + "epochs": 1, // total number of epochs to train. + "lr": 0.0001, // Initial learning rate. If Noam decay is active, maximum learning rate. + "wd": 0.000001, // Weight decay weight. + "warmup_steps": 4000, // Noam decay steps to increase the learning rate from 0 to "lr" + "seq_len_norm": false, // Normalize eash sample loss with its length to alleviate imbalanced datasets. Use it if your dataset is small or has skewed distribution of sequence lengths. + + // TACOTRON PRENET + "memory_size": -1, // ONLY TACOTRON - size of the memory queue used fro storing last decoder predictions for auto-regression. If < 0, memory queue is disabled and decoder only uses the last prediction frame. + "prenet_type": "bn", // "original" or "bn". + "prenet_dropout": false, // enable/disable dropout at prenet. + + // TACOTRON ATTENTION + "attention_type": "original", // 'original' , 'graves', 'dynamic_convolution' + "attention_heads": 4, // number of attention heads (only for 'graves') + "attention_norm": "sigmoid", // softmax or sigmoid. + "windowing": false, // Enables attention windowing. Used only in eval mode. + "use_forward_attn": false, // if it uses forward attention. In general, it aligns faster. + "forward_attn_mask": false, // Additional masking forcing monotonicity only in eval mode. + "transition_agent": false, // enable/disable transition agent of forward attention. + "location_attn": true, // enable_disable location sensitive attention. It is enabled for TACOTRON by default. + "bidirectional_decoder": true, // use https://arxiv.org/abs/1907.09006. Use it, if attention does not work well with your dataset. + "double_decoder_consistency": false, // use DDC explained here https://erogol.com/solving-attention-problems-of-tts-models-with-double-decoder-consistency-draft/ + "ddc_r": 7, // reduction rate for coarse decoder. + + // STOPNET + "stopnet": true, // Train stopnet predicting the end of synthesis. + "separate_stopnet": true, // Train stopnet seperately if 'stopnet==true'. It prevents stopnet loss to influence the rest of the model. It causes a better model, but it trains SLOWER. + + // TENSORBOARD and LOGGING + "print_step": 1, // Number of steps to log training on console. + "tb_plot_step": 100, // Number of steps to plot TB training figures. + "print_eval": false, // If True, it prints intermediate loss values in evalulation. + "save_step": 10000, // Number of training steps expected to save traninpg stats and checkpoints. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "keep_all_best": true, // If true, keeps all best_models after keep_after steps + "keep_after": 10000, // Global step after which to keep best models if keep_all_best is true + "tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging. + + // DATA LOADING + "text_cleaner": "phoneme_cleaners", + "enable_eos_bos_chars": false, // enable/disable beginning of sentence and end of sentence chars. + "num_loader_workers": 0, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "num_eval_loader_workers": 0, // number of evaluation data loader processes. + "batch_group_size": 0, //Number of batches to shuffle after bucketing. + "min_seq_len": 6, // DATASET-RELATED: minimum text length to use in training + "max_seq_len": 153, // DATASET-RELATED: maximum text length + "compute_input_seq_cache": true, + + // PATHS + "output_path": "tests/train_outputs/", + + // PHONEMES + "phoneme_cache_path": "tests/train_outputs/phoneme_cache/", // phoneme computation is slow, therefore, it caches results in the given folder. + "use_phonemes": false, // use phonemes instead of raw characters. It is suggested for better pronounciation. + "phoneme_language": "en-us", // depending on your target language, pick one from https://github.com/bootphon/phonemizer#languages + + // MULTI-SPEAKER and GST + "use_d_vector_file": false, + "d_vector_file": null, + "use_speaker_embedding": false, // use speaker embedding to enable multi-speaker learning. + "use_gst": true, // use global style tokens + "gst": { // gst parameter if gst is enabled + "gst_style_input": null, // Condition the style input either on a + // -> wave file [path to wave] or + // -> dictionary using the style tokens {'token1': 'value', 'token2': 'value'} example {"0": 0.15, "1": 0.15, "5": -0.15} + // with the dictionary being len(dict) == len(gst_style_tokens). + "gst_use_speaker_embedding": true, // if true pass speaker embedding in attention input GST. + "gst_embedding_dim": 512, + "gst_num_heads": 4, + "gst_style_tokens": 10 + }, + + // DATASETS + "train_portion": 0.1, // dataset portion used for training. It is mainly for internal experiments. + "eval_portion": 0.1, // dataset portion used for training. It is mainly for internal experiments. + "datasets": // List of datasets. They all merged and they get different speaker_ids. + [ + { + "name": "ljspeech", + "path": "tests/data/ljspeech/", + "meta_file_train": "metadata.csv", + "meta_file_val": "metadata.csv" + } + ] + +} + diff --git a/Indic-TTS/TTS/tests/inputs/test_tacotron_config.json b/Indic-TTS/TTS/tests/inputs/test_tacotron_config.json new file mode 100644 index 0000000000000000000000000000000000000000..90e07fc7c92a1baefd6b02e06d5891a6d96349f7 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_tacotron_config.json @@ -0,0 +1,177 @@ +{ + "model": "Tacotron", + "run_name": "test_sample_dataset_run", + "run_description": "sample dataset test run", + + // AUDIO PARAMETERS + "audio":{ + // stft parameters + "fft_size": 1024, // number of stft frequency levels. Size of the linear spectogram frame. + "win_length": 1024, // stft window length in ms. + "hop_length": 256, // stft window hop-lengh in ms. + "frame_length_ms": null, // stft window length in ms.If null, 'win_length' is used. + "frame_shift_ms": null, // stft window hop-lengh in ms. If null, 'hop_length' is used. + + // Audio processing parameters + "sample_rate": 22050, // DATASET-RELATED: wav sample-rate. + "preemphasis": 0.0, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "ref_level_db": 20, // reference level db, theoretically 20db is the sound of air. + + // Silence trimming + "do_trim_silence": true,// enable trimming of slience of audio as you load it. LJspeech (true), TWEB (false), Nancy (true) + "trim_db": 60, // threshold for timming silence. Set this according to your dataset. + + // Griffin-Lim + "power": 1.5, // value to sharpen wav signals after GL algorithm. + "griffin_lim_iters": 60,// #griffin-lim iterations. 30-60 is a good range. Larger the value, slower the generation. + + // MelSpectrogram parameters + "num_mels": 80, // size of the mel spec frame. + "mel_fmin": 0.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 8000.0, // maximum freq level for mel-spec. Tune for dataset!! + "spec_gain": 20.0, + + // Normalization parameters + "signal_norm": true, // normalize spec values. Mean-Var normalization if 'stats_path' is defined otherwise range normalization defined by the other params. + "min_level_db": -100, // lower bound for normalization + "symmetric_norm": true, // move normalization to range [-1, 1] + "max_norm": 4.0, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "stats_path": null // DO NOT USE WITH MULTI_SPEAKER MODEL. scaler stats file computed by 'compute_statistics.py'. If it is defined, mean-std based notmalization is used and other normalization params are ignored + }, + + // VOCABULARY PARAMETERS + // if custom character set is not defined, + // default set in symbols.py is used + // "characters":{ + // "pad": "_", + // "eos": "~", + // "bos": "^", + // "characters": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!'(),-.:;? ", + // "punctuations":"!'(),-.:;? ", + // "phonemes":"iyษจส‰ษฏuษชสสŠeรธษ˜ษ™ษตษคoษ›ล“ษœษžสŒษ”รฆษaษถษ‘ษ’แตปส˜ษ“ว€ษ—วƒส„ว‚ษ วส›pbtdสˆษ–cษŸkษกqษขส”ษดล‹ษฒษณnษฑmส™rส€โฑฑษพษฝษธฮฒfvฮธรฐszสƒส’ส‚สรงสxษฃฯ‡สฤงส•hษฆษฌษฎส‹ษนษปjษฐlษญสŽสŸหˆหŒหห‘สwษฅสœสขสกษ•ส‘ษบษงษšหžษซ" + // }, + + // DISTRIBUTED TRAINING + "distributed":{ + "backend": "nccl", + "url": "tcp:\/\/localhost:54321" + }, + + "reinit_layers": [], // give a list of layer names to restore from the given checkpoint. If not defined, it reloads all heuristically matching layers. + + // TRAINING + "batch_size": 8, // Batch size for training. Lower values than 32 might cause hard to learn attention. It is overwritten by 'gradual_training'. + "eval_batch_size": 8, + "r": 7, // Number of decoder frames to predict per iteration. Set the initial values if gradual training is enabled. + "gradual_training": [[0, 7, 4], [1, 5, 2]], //set gradual training steps [first_step, r, batch_size]. If it is null, gradual training is disabled. For Tacotron, you might need to reduce the 'batch_size' as you proceeed. + "loss_masking": true, // enable / disable loss masking against the sequence padding. + "ga_alpha": 10.0, // weight for guided attention loss. If > 0, guided attention is enabled. + "mixed_precision": false, + + // VALIDATION + "run_eval": true, + "test_delay_epochs": 0, //Until attention is aligned, testing only wastes computation time. + "test_sentences_file": null, // set a file to load sentences to be used for testing. If it is null then we use default english sentences. + + // LOSS SETTINGS + "loss_masking": true, // enable / disable loss masking against the sequence padding. + "decoder_loss_alpha": 0.5, // original decoder loss weight. If > 0, it is enabled + "postnet_loss_alpha": 0.25, // original postnet loss weight. If > 0, it is enabled + "postnet_diff_spec_alpha": 0.25, // differential spectral loss weight. If > 0, it is enabled + "decoder_diff_spec_alpha": 0.25, // differential spectral loss weight. If > 0, it is enabled + "decoder_ssim_alpha": 0.5, // decoder ssim loss weight. If > 0, it is enabled + "postnet_ssim_alpha": 0.25, // postnet ssim loss weight. If > 0, it is enabled + "ga_alpha": 5.0, // weight for guided attention loss. If > 0, guided attention is enabled. + "stopnet_pos_weight": 15.0, // pos class weight for stopnet loss since there are way more negative samples than positive samples. + + // OPTIMIZER + "noam_schedule": false, // use noam warmup and lr schedule. + "grad_clip": 1.0, // upper limit for gradients for clipping. + "epochs": 1, // total number of epochs to train. + "lr": 0.0001, // Initial learning rate. If Noam decay is active, maximum learning rate. + "wd": 0.000001, // Weight decay weight. + "warmup_steps": 4000, // Noam decay steps to increase the learning rate from 0 to "lr" + "seq_len_norm": false, // Normalize eash sample loss with its length to alleviate imbalanced datasets. Use it if your dataset is small or has skewed distribution of sequence lengths. + + // TACOTRON PRENET + "memory_size": -1, // ONLY TACOTRON - size of the memory queue used fro storing last decoder predictions for auto-regression. If < 0, memory queue is disabled and decoder only uses the last prediction frame. + "prenet_type": "bn", // "original" or "bn". + "prenet_dropout": false, // enable/disable dropout at prenet. + + // TACOTRON ATTENTION + "attention_type": "original", // 'original' , 'graves', 'dynamic_convolution' + "attention_heads": 4, // number of attention heads (only for 'graves') + "attention_norm": "sigmoid", // softmax or sigmoid. + "windowing": false, // Enables attention windowing. Used only in eval mode. + "use_forward_attn": false, // if it uses forward attention. In general, it aligns faster. + "forward_attn_mask": false, // Additional masking forcing monotonicity only in eval mode. + "transition_agent": false, // enable/disable transition agent of forward attention. + "location_attn": true, // enable_disable location sensitive attention. It is enabled for TACOTRON by default. + "bidirectional_decoder": false, // use https://arxiv.org/abs/1907.09006. Use it, if attention does not work well with your dataset. + "double_decoder_consistency": true, // use DDC explained here https://erogol.com/solving-attention-problems-of-tts-models-with-double-decoder-consistency-draft/ + "ddc_r": 7, // reduction rate for coarse decoder. + + // STOPNET + "stopnet": true, // Train stopnet predicting the end of synthesis. + "separate_stopnet": true, // Train stopnet seperately if 'stopnet==true'. It prevents stopnet loss to influence the rest of the model. It causes a better model, but it trains SLOWER. + + // TENSORBOARD and LOGGING + "print_step": 1, // Number of steps to log training on console. + "tb_plot_step": 100, // Number of steps to plot TB training figures. + "print_eval": false, // If True, it prints intermediate loss values in evalulation. + "save_step": 10000, // Number of training steps expected to save traninpg stats and checkpoints. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "keep_all_best": true, // If true, keeps all best_models after keep_after steps + "keep_after": 10000, // Global step after which to keep best models if keep_all_best is true + "tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging. + + // DATA LOADING + "text_cleaner": "phoneme_cleaners", + "enable_eos_bos_chars": false, // enable/disable beginning of sentence and end of sentence chars. + "num_loader_workers": 0, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "num_eval_loader_workers": 0, // number of evaluation data loader processes. + "batch_group_size": 0, //Number of batches to shuffle after bucketing. + "min_seq_len": 6, // DATASET-RELATED: minimum text length to use in training + "max_seq_len": 153, // DATASET-RELATED: maximum text length + "compute_input_seq_cache": true, + + // PATHS + "output_path": "tests/train_outputs/", + + // PHONEMES + "phoneme_cache_path": "tests/train_outputs/phoneme_cache/", // phoneme computation is slow, therefore, it caches results in the given folder. + "use_phonemes": false, // use phonemes instead of raw characters. It is suggested for better pronounciation. + "phoneme_language": "en-us", // depending on your target language, pick one from https://github.com/bootphon/phonemizer#languages + + // MULTI-SPEAKER and GST + "use_d_vector_file": false, + "d_vector_file": null, + "use_speaker_embedding": false, // use speaker embedding to enable multi-speaker learning. + "use_gst": true, // use global style tokens + "gst": { // gst parameter if gst is enabled + "gst_style_input": null, // Condition the style input either on a + // -> wave file [path to wave] or + // -> dictionary using the style tokens {'token1': 'value', 'token2': 'value'} example {"0": 0.15, "1": 0.15, "5": -0.15} + // with the dictionary being len(dict) == len(gst_style_tokens). + "gst_use_speaker_embedding": true, // if true pass speaker embedding in attention input GST. + "gst_embedding_dim": 512, + "gst_num_heads": 4, + "gst_style_tokens": 10 + }, + + // DATASETS + "train_portion": 0.1, // dataset portion used for training. It is mainly for internal experiments. + "eval_portion": 0.1, // dataset portion used for training. It is mainly for internal experiments. + "datasets": // List of datasets. They all merged and they get different speaker_ids. + [ + { + "name": "ljspeech", + "path": "tests/data/ljspeech/", + "meta_file_train": "metadata.csv", + "meta_file_val": "metadata.csv" + } + ] + +} + diff --git a/Indic-TTS/TTS/tests/inputs/test_vocoder_audio_config.json b/Indic-TTS/TTS/tests/inputs/test_vocoder_audio_config.json new file mode 100644 index 0000000000000000000000000000000000000000..08acc48cd34296c4549931ce440fda8d1882ba66 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_vocoder_audio_config.json @@ -0,0 +1,24 @@ +{ + "audio":{ + "num_mels": 80, // size of the mel spec frame. + "num_freq": 513, // number of stft frequency levels. Size of the linear spectogram frame. + "sample_rate": 22050, // wav sample-rate. If different than the original data, it is resampled. + "frame_length_ms": null, // stft window length in ms. + "frame_shift_ms": null, // stft window hop-lengh in ms. + "hop_length": 256, + "win_length": 1024, + "preemphasis": 0.97, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "min_level_db": -100, // normalization range + "ref_level_db": 20, // reference level db, theoretically 20db is the sound of air. + "power": 1.5, // value to sharpen wav signals after GL algorithm. + "griffin_lim_iters": 30,// #griffin-lim iterations. 30-60 is a good range. Larger the value, slower the generation. + "signal_norm": true, // normalize the spec values in range [0, 1] + "symmetric_norm": true, // move normalization to range [-1, 1] + "clip_norm": true, // clip normalized values into the range. + "max_norm": 4, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "mel_fmin": 0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 8000, // maximum freq level for mel-spec. Tune for dataset!! + "do_trim_silence": false + } +} + diff --git a/Indic-TTS/TTS/tests/inputs/test_vocoder_multiband_melgan_config.json b/Indic-TTS/TTS/tests/inputs/test_vocoder_multiband_melgan_config.json new file mode 100644 index 0000000000000000000000000000000000000000..82afc977271c20d46b3a4d5e67cca52a21b98d7e --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_vocoder_multiband_melgan_config.json @@ -0,0 +1,166 @@ +{ + "run_name": "multiband-melgan", + "run_description": "multiband melgan mean-var scaling", + + // AUDIO PARAMETERS + "audio":{ + "fft_size": 1024, // number of stft frequency levels. Size of the linear spectogram frame. + "win_length": 1024, // stft window length in ms. + "hop_length": 256, // stft window hop-lengh in ms. + "frame_length_ms": null, // stft window length in ms.If null, 'win_length' is used. + "frame_shift_ms": null, // stft window hop-lengh in ms. If null, 'hop_length' is used. + + // Audio processing parameters + "sample_rate": 22050, // DATASET-RELATED: wav sample-rate. If different than the original data, it is resampled. + "preemphasis": 0.0, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "ref_level_db": 20, // reference level db, theoretically 20db is the sound of air. + "log_func": "np.log10", + "do_sound_norm": true, + + // Silence trimming + "do_trim_silence": false,// enable trimming of slience of audio as you load it. LJspeech (false), TWEB (false), Nancy (true) + "trim_db": 60, // threshold for timming silence. Set this according to your dataset. + + // MelSpectrogram parameters + "num_mels": 80, // size of the mel spec frame. + "mel_fmin": 50.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 7600.0, // maximum freq level for mel-spec. Tune for dataset!! + "spec_gain": 1.0, // scaler value appplied after log transform of spectrogram. + + // Normalization parameters + "signal_norm": true, // normalize spec values. Mean-Var normalization if 'stats_path' is defined otherwise range normalization defined by the other params. + "min_level_db": -100, // lower bound for normalization + "symmetric_norm": true, // move normalization to range [-1, 1] + "max_norm": 4.0, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "stats_path": null + }, + + // DISTRIBUTED TRAINING + // "distributed":{ + // "backend": "nccl", + // "url": "tcp:\/\/localhost:54321" + // }, + + // MODEL PARAMETERS + "use_pqmf": true, + + // LOSS PARAMETERS + "use_stft_loss": true, + "use_subband_stft_loss": true, + "use_mse_gan_loss": true, + "use_hinge_gan_loss": false, + "use_feat_match_loss": false, // use only with melgan discriminators + "use_l1_spec_loss": true, + + // loss weights + "stft_loss_weight": 0.5, + "subband_stft_loss_weight": 0.5, + "mse_G_loss_weight": 2.5, + "hinge_G_loss_weight": 2.5, + "feat_match_loss_weight": 25, + "l1_spec_loss_weight": 2.5, + + // multiscale stft loss parameters + "stft_loss_params": { + "n_ffts": [1024, 2048, 512], + "hop_lengths": [120, 240, 50], + "win_lengths": [600, 1200, 240] + }, + + // subband multiscale stft loss parameters + "subband_stft_loss_params":{ + "n_ffts": [384, 683, 171], + "hop_lengths": [30, 60, 10], + "win_lengths": [150, 300, 60] + }, + + "l1_spec_loss_params": { + "use_mel": true, + "sample_rate": 22050, + "n_fft": 1024, + "hop_length": 256, + "win_length": 1024, + "n_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": null + }, + + "target_loss": "G_avg_loss", // loss value to pick the best model to save after each epoch + + // DISCRIMINATOR + "discriminator_model": "melgan_multiscale_discriminator", + "discriminator_model_params":{ + "base_channels": 16, + "max_channels":512, + "downsample_factors":[4, 4, 4] + }, + "steps_to_start_discriminator": 200000, // steps required to start GAN trainining.1 + + // GENERATOR + "generator_model": "multiband_melgan_generator", + "generator_model_params": { + "upsample_factors":[8, 4, 2], + "num_res_blocks": 4 + }, + + // DATASET + "data_path": "tests/data/ljspeech/wavs/", + "feature_path": null, + "seq_len": 16384, + "pad_short": 2000, + "conv_pad": 0, + "use_noise_augment": false, + "use_cache": true, + + "reinit_layers": [], // give a list of layer names to restore from the given checkpoint. If not defined, it reloads all heuristically matching layers. + + // TRAINING + "batch_size": 4, // Batch size for training. Lower values than 32 might cause hard to learn attention. It is overwritten by 'gradual_training'. + + // VALIDATION + "run_eval": true, + "test_delay_epochs": 10, //Until attention is aligned, testing only wastes computation time. + "test_sentences_file": null, // set a file to load sentences to be used for testing. If it is null then we use default english sentences. + + // OPTIMIZER + "epochs": 1, // total number of epochs to train. + "wd": 0.0, // Weight decay weight. + "gen_clip_grad": -1, // Generator gradient clipping threshold. Apply gradient clipping if > 0 + "disc_clip_grad": -1, // Discriminator gradient clipping threshold. + "optimizer": "AdamW", + "optimizer_params":{ + "betas": [0.8, 0.99], + "weight_decay": 0.0 + }, + "lr_scheduler_gen": "MultiStepLR", // one of the schedulers from https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate + "lr_scheduler_gen_params": { + "gamma": 0.5, + "milestones": [100000, 200000, 300000, 400000, 500000, 600000] + }, + "lr_scheduler_disc": "MultiStepLR", // one of the schedulers from https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate + "lr_scheduler_disc_params": { + "gamma": 0.5, + "milestones": [100000, 200000, 300000, 400000, 500000, 600000] + }, + "lr_gen": 1e-4, // Initial learning rate. If Noam decay is active, maximum learning rate. + "lr_disc": 1e-4, + + // TENSORBOARD and LOGGING + "print_step": 1, // Number of steps to log traning on console. + "print_eval": false, // If True, it prints loss values for each step in eval run. + "save_step": 25000, // Number of training steps expected to plot training stats on TB and save model checkpoints. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "keep_all_best": true, // If true, keeps all best_models after keep_after steps + "keep_after": 10000, // Global step after which to keep best models if keep_all_best is true + "tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging. + + // DATA LOADING + "num_loader_workers": 0, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "num_eval_loader_workers": 0, // number of evaluation data loader processes. + "eval_split_size": 10, + + // PATHS + "output_path": "tests/train_outputs/" +} + diff --git a/Indic-TTS/TTS/tests/inputs/test_vocoder_wavegrad.json b/Indic-TTS/TTS/tests/inputs/test_vocoder_wavegrad.json new file mode 100644 index 0000000000000000000000000000000000000000..6378c07a6dee8d9d52e0f1341b0105b3ed119abe --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_vocoder_wavegrad.json @@ -0,0 +1,116 @@ +{ + "run_name": "wavegrad-ljspeech", + "run_description": "wavegrad ljspeech", + + "audio":{ + "fft_size": 1024, // number of stft frequency levels. Size of the linear spectogram frame. + "win_length": 1024, // stft window length in ms. + "hop_length": 256, // stft window hop-lengh in ms. + "frame_length_ms": null, // stft window length in ms.If null, 'win_length' is used. + "frame_shift_ms": null, // stft window hop-lengh in ms. If null, 'hop_length' is used. + + // Audio processing parameters + "sample_rate": 22050, // DATASET-RELATED: wav sample-rate. If different than the original data, it is resampled. + "preemphasis": 0.0, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "ref_level_db": 0, // reference level db, theoretically 20db is the sound of air. + + // Silence trimming + "do_trim_silence": true,// enable trimming of slience of audio as you load it. LJspeech (false), TWEB (false), Nancy (true) + "trim_db": 60, // threshold for timming silence. Set this according to your dataset. + + // MelSpectrogram parameters + "num_mels": 80, // size of the mel spec frame. + "mel_fmin": 50.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 7600.0, // maximum freq level for mel-spec. Tune for dataset!! + "spec_gain": 1.0, // scaler value appplied after log transform of spectrogram. + + // Normalization parameters + "signal_norm": true, // normalize spec values. Mean-Var normalization if 'stats_path' is defined otherwise range normalization defined by the other params. + "min_level_db": -100, // lower bound for normalization + "symmetric_norm": true, // move normalization to range [-1, 1] + "max_norm": 4.0, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "stats_path": null // DO NOT USE WITH MULTI_SPEAKER MODEL. scaler stats file computed by 'compute_statistics.py'. If it is defined, mean-std based notmalization is used and other normalization params are ignored + }, + + // DISTRIBUTED TRAINING + "mixed_precision": false, + "distributed":{ + "backend": "nccl", + "url": "tcp:\/\/localhost:54322" + }, + + "target_loss": "avg_wavegrad_loss", // loss value to pick the best model to save after each epoch + + // MODEL PARAMETERS + "generator_model": "wavegrad", + "model_params":{ + "y_conv_channels":32, + "x_conv_channels":768, + "ublock_out_channels": [512, 512, 256, 128, 128], + "dblock_out_channels": [128, 128, 256, 512], + "upsample_factors": [4, 4, 4, 2, 2], + "upsample_dilations": [ + [1, 2, 1, 2], + [1, 2, 1, 2], + [1, 2, 4, 8], + [1, 2, 4, 8], + [1, 2, 4, 8]], + "use_weight_norm": true + }, + + // DATASET + "data_path": "tests/data/ljspeech/wavs/", // root data path. It finds all wav files recursively from there. + "feature_path": null, // if you use precomputed features + "seq_len": 6144, // 24 * hop_length + "pad_short": 0, // additional padding for short wavs + "conv_pad": 0, // additional padding against convolutions applied to spectrograms + "use_noise_augment": false, // add noise to the audio signal for augmentation + "use_cache": true, // use in memory cache to keep the computed features. This might cause OOM. + + "reinit_layers": [], // give a list of layer names to restore from the given checkpoint. If not defined, it reloads all heuristically matching layers. + + // TRAINING + "batch_size": 1, // Batch size for training. + "train_noise_schedule":{ + "min_val": 1e-6, + "max_val": 1e-2, + "num_steps": 1000 + }, + "test_noise_schedule":{ + "min_val": 1e-6, + "max_val": 1e-2, + "num_steps": 2 + }, + + // VALIDATION + "run_eval": true, // enable/disable evaluation run + + // OPTIMIZER + "epochs": 1, // total number of epochs to train. + "grad_clip": 1.0, // Generator gradient clipping threshold. Apply gradient clipping if > 0 + "lr_scheduler": "MultiStepLR", // one of the schedulers from https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate + "lr_scheduler_params": { + "gamma": 0.5, + "milestones": [100000, 200000, 300000, 400000, 500000, 600000] + }, + "lr": 1e-4, // Initial learning rate. If Noam decay is active, maximum learning rate. + + // TENSORBOARD and LOGGING + "print_step": 250, // Number of steps to log traning on console. + "print_eval": false, // If True, it prints loss values for each step in eval run. + "save_step": 10000, // Number of training steps expected to plot training stats on TB and save model checkpoints. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "keep_all_best": true, // If true, keeps all best_models after keep_after steps + "keep_after": 10000, // Global step after which to keep best models if keep_all_best is true + "tb_model_param_stats": true, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging. + + // DATA LOADING + "num_loader_workers": 0, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "num_eval_loader_workers": 0, // number of evaluation data loader processes. + "eval_split_size": 4, + + // PATHS + "output_path": "tests/train_outputs/" +} + diff --git a/Indic-TTS/TTS/tests/inputs/test_vocoder_wavernn_config.json b/Indic-TTS/TTS/tests/inputs/test_vocoder_wavernn_config.json new file mode 100644 index 0000000000000000000000000000000000000000..ee4e5f8e42b3f07e0a6ab3b131988a0d6cd15475 --- /dev/null +++ b/Indic-TTS/TTS/tests/inputs/test_vocoder_wavernn_config.json @@ -0,0 +1,112 @@ +{ + "run_name": "wavernn_test", + "run_description": "wavernn_test training", + + // AUDIO PARAMETERS + "audio":{ + "fft_size": 1024, // number of stft frequency levels. Size of the linear spectogram frame. + "win_length": 1024, // stft window length in ms. + "hop_length": 256, // stft window hop-lengh in ms. + "frame_length_ms": null, // stft window length in ms.If null, 'win_length' is used. + "frame_shift_ms": null, // stft window hop-lengh in ms. If null, 'hop_length' is used. + + // Audio processing parameters + "sample_rate": 22050, // DATASET-RELATED: wav sample-rate. If different than the original data, it is resampled. + "preemphasis": 0.0, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "ref_level_db": 0, // reference level db, theoretically 20db is the sound of air. + + // Silence trimming + "do_trim_silence": true,// enable trimming of slience of audio as you load it. LJspeech (false), TWEB (false), Nancy (true) + "trim_db": 60, // threshold for timming silence. Set this according to your dataset. + + // MelSpectrogram parameters + "num_mels": 80, // size of the mel spec frame. + "mel_fmin": 0.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 8000.0, // maximum freq level for mel-spec. Tune for dataset!! + "spec_gain": 20.0, // scaler value appplied after log transform of spectrogram. + + // Normalization parameters + "signal_norm": true, // normalize spec values. Mean-Var normalization if 'stats_path' is defined otherwise range normalization defined by the other params. + "min_level_db": -100, // lower bound for normalization + "symmetric_norm": true, // move normalization to range [-1, 1] + "max_norm": 4.0, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "stats_path": null // DO NOT USE WITH MULTI_SPEAKER MODEL. scaler stats file computed by 'compute_statistics.py'. If it is defined, mean-std based notmalization is used and other normalization params are ignored + }, + + // Generating / Synthesizing + "batched": true, + "target_samples": 11000, // target number of samples to be generated in each batch entry + "overlap_samples": 550, // number of samples for crossfading between batches + + // DISTRIBUTED TRAINING + // "distributed":{ + // "backend": "nccl", + // "url": "tcp:\/\/localhost:54321" + // }, + + // MODEL PARAMETERS + "use_aux_net": true, + "use_upsample_net": true, + "upsample_factors": [4, 8, 8], // this needs to correctly factorise hop_length + "seq_len": 1280, // has to be devideable by hop_length + "mode": "mold", // mold [string], gauss [string], bits [int] + "mulaw": false, // apply mulaw if mode is bits + "padding": 2, // pad the input for resnet to see wider input length + + // GENERATOR - for backward compatibility + "generator_model": "Wavernn", + + // DATASET + //"use_gta": true, // use computed gta features from the tts model + "data_path": "tests/data/ljspeech/wavs/", // path containing training wav files + "feature_path": null, // path containing computed features from wav files if null compute them + + // MODEL PARAMETERS + "wavernn_model_params": { + "rnn_dims": 512, + "fc_dims": 512, + "compute_dims": 128, + "res_out_dims": 128, + "num_res_blocks": 10, + "use_aux_net": true, + "use_upsample_net": true, + "upsample_factors": [4, 8, 8] // this needs to correctly factorise hop_length + }, + "mixed_precision": false, + + // TRAINING + "batch_size": 4, // Batch size for training. Lower values than 32 might cause hard to learn attention. + "epochs": 1, // total number of epochs to train. + + // VALIDATION + "run_eval": true, + "test_every_epochs": 10, // Test after set number of epochs (Test every 20 epochs for example) + + // OPTIMIZER + "grad_clip": 4, // apply gradient clipping if > 0 + "lr_scheduler": "MultiStepLR", // one of the schedulers from https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate + "lr_scheduler_params": { + "gamma": 0.5, + "milestones": [200000, 400000, 600000] + }, + "lr": 1e-4, // initial learning rate + + // TENSORBOARD and LOGGING + "print_step": 25, // Number of steps to log traning on console. + "print_eval": false, // If True, it prints loss values for each step in eval run. + "save_step": 25000, // Number of training steps expected to plot training stats on TB and save model checkpoints. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "keep_all_best": true, // If true, keeps all best_models after keep_after steps + "keep_after": 10000, // Global step after which to keep best models if keep_all_best is true + "tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging. + + // DATA LOADING + "num_loader_workers": 0, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "num_eval_loader_workers": 0, // number of evaluation data loader processes. + "eval_split_size": 10, // number of samples for testing + + // PATHS + "output_path": "tests/train_outputs/" +} + diff --git a/Indic-TTS/TTS/tests/outputs/dummy_model_config.json b/Indic-TTS/TTS/tests/outputs/dummy_model_config.json new file mode 100644 index 0000000000000000000000000000000000000000..b51bb3a8713cbfeca239052fc88cbd0ce6353fda --- /dev/null +++ b/Indic-TTS/TTS/tests/outputs/dummy_model_config.json @@ -0,0 +1,102 @@ +{ + "run_name": "mozilla-no-loc-fattn-stopnet-sigmoid-loss_masking", + "run_description": "using forward attention, with original prenet, loss masking,separate stopnet, sigmoid. Compare this with 4817. Pytorch DPP", + + "audio":{ + // Audio processing parameters + "num_mels": 80, // size of the mel spec frame. + "fft_size": 1024, // number of stft frequency levels. Size of the linear spectogram frame. + "sample_rate": 22050, // DATASET-RELATED: wav sample-rate. If different than the original data, it is resampled. + "hop_length": 256, + "win_length": 1024, + "preemphasis": 0.98, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis. + "min_level_db": -100, // normalization range + "ref_level_db": 20, // reference level db, theoretically 20db is the sound of air. + "power": 1.5, // value to sharpen wav signals after GL algorithm. + "griffin_lim_iters": 60,// #griffin-lim iterations. 30-60 is a good range. Larger the value, slower the generation. + // Normalization parameters + "signal_norm": true, // normalize the spec values in range [0, 1] + "symmetric_norm": false, // move normalization to range [-1, 1] + "max_norm": 1, // scale normalization to range [-max_norm, max_norm] or [0, max_norm] + "clip_norm": true, // clip normalized values into the range. + "mel_fmin": 0.0, // minimum freq level for mel-spec. ~50 for male and ~95 for female voices. Tune for dataset!! + "mel_fmax": 8000.0, // maximum freq level for mel-spec. Tune for dataset!! + "do_trim_silence": true // enable trimming of slience of audio as you load it. LJspeech (false), TWEB (false), Nancy (true) + }, + + "distributed":{ + "backend": "nccl", + "url": "tcp:\/\/localhost:54321" + }, + + "reinit_layers": [], + + "model": "Tacotron2", // one of the model in models/ + "grad_clip": 1, // upper limit for gradients for clipping. + "epochs": 1000, // total number of epochs to train. + "lr": 0.0001, // Initial learning rate. If Noam decay is active, maximum learning rate. + "lr_decay": false, // if true, Noam learning rate decaying is applied through training. + "warmup_steps": 4000, // Noam decay steps to increase the learning rate from 0 to "lr" + "windowing": false, // Enables attention windowing. Used only in eval mode. + "memory_size": 5, // ONLY TACOTRON - memory queue size used to queue network predictions to feed autoregressive connection. Useful if r < 5. + "attention_norm": "sigmoid", // softmax or sigmoid. Suggested to use softmax for Tacotron2 and sigmoid for Tacotron. + "prenet_type": "original", // ONLY TACOTRON2 - "original" or "bn". + "prenet_dropout": true, // ONLY TACOTRON2 - enable/disable dropout at prenet. + "use_forward_attn": true, // ONLY TACOTRON2 - if it uses forward attention. In general, it aligns faster. + "forward_attn_mask": false, + "attention_type": "original", + "attention_heads": 5, + "bidirectional_decoder": false, + "transition_agent": false, // ONLY TACOTRON2 - enable/disable transition agent of forward attention. + "location_attn": false, // ONLY TACOTRON2 - enable_disable location sensitive attention. It is enabled for TACOTRON by default. + "loss_masking": true, // enable / disable loss masking against the sequence padding. + "enable_eos_bos_chars": false, // enable/disable beginning of sentence and end of sentence chars. + "stopnet": true, // Train stopnet predicting the end of synthesis. + "separate_stopnet": true, // Train stopnet seperately if 'stopnet==true'. It prevents stopnet loss to influence the rest of the model. It causes a better model, but it trains SLOWER. + "tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging. + "use_gst": false, + "double_decoder_consistency": true, // use DDC explained here https://erogol.com/solving-attention-problems-of-tts-models-with-double-decoder-consistency-draft/ + "ddc_r": 7, // reduction rate for coarse decoder. + + "batch_size": 32, // Batch size for training. Lower values than 32 might cause hard to learn attention. + "eval_batch_size":16, + "r": 1, // Number of frames to predict for step. + "wd": 0.000001, // Weight decay weight. + "checkpoint": true, // If true, it saves checkpoints per "save_step" + "save_step": 1000, // Number of training steps expected to save traning stats and checkpoints. + "print_step": 10, // Number of steps to log traning on console. + "batch_group_size": 0, //Number of batches to shuffle after bucketing. + + "run_eval": true, + "test_delay_epochs": 5, //Until attention is aligned, testing only wastes computation time. + "test_sentences_file": null, // set a file to load sentences to be used for testing. If it is null then we use default english sentences. + "data_path": "/media/erogol/data_ssd/Data/Mozilla/", // DATASET-RELATED: can overwritten from command argument + "meta_file_train": "metadata_train.txt", // DATASET-RELATED: metafile for training dataloader. + "meta_file_val": "metadata_val.txt", // DATASET-RELATED: metafile for evaluation dataloader. + "dataset": "mozilla", // DATASET-RELATED: one of mozilla_voice_tts.dataset.preprocessors depending on your target dataset. Use "tts_cache" for pre-computed dataset by extract_features.py + "min_seq_len": 0, // DATASET-RELATED: minimum text length to use in training + "max_seq_len": 150, // DATASET-RELATED: maximum text length + "output_path": "../keep/", // DATASET-RELATED: output path for all training outputs. + "num_loader_workers": 4, // number of training data loader processes. Don't set it too big. 4-8 are good values. + "num_val_loader_workers": 4, // number of evaluation data loader processes. + "phoneme_cache_path": "mozilla_us_phonemes", // phoneme computation is slow, therefore, it caches results in the given folder. + "use_phonemes": false, // use phonemes instead of raw characters. It is suggested for better pronounciation. + "phoneme_language": "en-us", // depending on your target language, pick one from https://github.com/bootphon/phonemizer#languages + "text_cleaner": "phoneme_cleaners", + "use_speaker_embedding": false, // whether to use additional embeddings for separate speakers + + // MULTI-SPEAKER and GST + "use_speaker_embedding": false, // use speaker embedding to enable multi-speaker learning. + "gst": { // gst parameter if gst is enabled + "gst_style_input": null, // Condition the style input either on a + // -> wave file [path to wave] or + // -> dictionary using the style tokens {'token1': 'value', 'token2': 'value'} example {"0": 0.15, "1": 0.15, "5": -0.15} + // with the dictionary being len(dict) <= len(gst_style_tokens). + "gst_use_speaker_embedding": true, // if true pass speaker embedding in attention input GST. + "gst_embedding_dim": 512, + "gst_num_heads": 4, + "gst_style_tokens": 10 + } +} + + diff --git a/Indic-TTS/TTS/tests/text_tests/__init__.py b/Indic-TTS/TTS/tests/text_tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/tests/text_tests/test_characters.py b/Indic-TTS/TTS/tests/text_tests/test_characters.py new file mode 100644 index 0000000000000000000000000000000000000000..8f40656ad7ae0c862835e00c627224bab7b5d35c --- /dev/null +++ b/Indic-TTS/TTS/tests/text_tests/test_characters.py @@ -0,0 +1,174 @@ +import unittest + +from TTS.tts.utils.text.characters import BaseCharacters, BaseVocabulary, Graphemes, IPAPhonemes + +# pylint: disable=protected-access + + +class BaseVocabularyTest(unittest.TestCase): + def setUp(self): + self.phonemes = IPAPhonemes() + self.base_vocab = BaseVocabulary( + vocab=self.phonemes._vocab, + pad=self.phonemes.pad, + blank=self.phonemes.blank, + bos=self.phonemes.bos, + eos=self.phonemes.eos, + ) + self.empty_vocab = BaseVocabulary({}) + + def test_pad_id(self): + self.assertEqual(self.empty_vocab.pad_id, 0) + self.assertEqual(self.base_vocab.pad_id, self.phonemes.pad_id) + + def test_blank_id(self): + self.assertEqual(self.empty_vocab.blank_id, 0) + self.assertEqual(self.base_vocab.blank_id, self.phonemes.blank_id) + + def test_vocab(self): + self.assertEqual(self.empty_vocab.vocab, {}) + self.assertEqual(self.base_vocab.vocab, self.phonemes._vocab) + + # def test_init_from_config(self): + # ... + + def test_num_chars(self): + self.assertEqual(self.empty_vocab.num_chars, 0) + self.assertEqual(self.base_vocab.num_chars, self.phonemes.num_chars) + + def test_char_to_id(self): + try: + self.empty_vocab.char_to_id("a") + raise Exception("Should have raised KeyError") + except: + pass + for k in self.phonemes.vocab: + self.assertEqual(self.base_vocab.char_to_id(k), self.phonemes.char_to_id(k)) + + def test_id_to_char(self): + try: + self.empty_vocab.id_to_char(0) + raise Exception("Should have raised KeyError") + except: + pass + for k in self.phonemes.vocab: + v = self.phonemes.char_to_id(k) + self.assertEqual(self.base_vocab.id_to_char(v), self.phonemes.id_to_char(v)) + + +class BaseCharacterTest(unittest.TestCase): + def setUp(self): + self.characters_empty = BaseCharacters("", "", pad="", eos="", bos="", blank="", is_unique=True, is_sorted=True) + + def test_default_character_sets(self): # pylint: disable=no-self-use + """Test initiation of default character sets""" + _ = IPAPhonemes() + _ = Graphemes() + + def test_unique(self): + """Test if the unique option works""" + self.characters_empty.characters = "abcc" + self.characters_empty.punctuations = ".,;:!? " + self.characters_empty.pad = "[PAD]" + self.characters_empty.eos = "[EOS]" + self.characters_empty.bos = "[BOS]" + self.characters_empty.blank = "[BLANK]" + + self.assertEqual( + self.characters_empty.num_chars, + len(["[PAD]", "[EOS]", "[BOS]", "[BLANK]", "a", "b", "c", ".", ",", ";", ":", "!", "?", " "]), + ) + + def test_unique_sorted(self): + """Test if the unique and sorted option works""" + self.characters_empty.characters = "cba" + self.characters_empty.punctuations = ".,;:!? " + self.characters_empty.pad = "[PAD]" + self.characters_empty.eos = "[EOS]" + self.characters_empty.bos = "[BOS]" + self.characters_empty.blank = "[BLANK]" + + self.assertEqual( + self.characters_empty.num_chars, + len(["[PAD]", "[EOS]", "[BOS]", "[BLANK]", "a", "b", "c", ".", ",", ";", ":", "!", "?", " "]), + ) + + def test_setters_getters(self): + """Test the class setters behaves as expected""" + self.characters_empty.characters = "abc" + self.assertEqual(self.characters_empty._characters, "abc") + self.assertEqual(self.characters_empty.vocab, ["a", "b", "c"]) + + self.characters_empty.punctuations = ".,;:!? " + self.assertEqual(self.characters_empty._punctuations, ".,;:!? ") + self.assertEqual(self.characters_empty.vocab, ["a", "b", "c", ".", ",", ";", ":", "!", "?", " "]) + + self.characters_empty.pad = "[PAD]" + self.assertEqual(self.characters_empty._pad, "[PAD]") + self.assertEqual(self.characters_empty.vocab, ["[PAD]", "a", "b", "c", ".", ",", ";", ":", "!", "?", " "]) + + self.characters_empty.eos = "[EOS]" + self.assertEqual(self.characters_empty._eos, "[EOS]") + self.assertEqual( + self.characters_empty.vocab, ["[PAD]", "[EOS]", "a", "b", "c", ".", ",", ";", ":", "!", "?", " "] + ) + + self.characters_empty.bos = "[BOS]" + self.assertEqual(self.characters_empty._bos, "[BOS]") + self.assertEqual( + self.characters_empty.vocab, ["[PAD]", "[EOS]", "[BOS]", "a", "b", "c", ".", ",", ";", ":", "!", "?", " "] + ) + + self.characters_empty.blank = "[BLANK]" + self.assertEqual(self.characters_empty._blank, "[BLANK]") + self.assertEqual( + self.characters_empty.vocab, + ["[PAD]", "[EOS]", "[BOS]", "[BLANK]", "a", "b", "c", ".", ",", ";", ":", "!", "?", " "], + ) + self.assertEqual( + self.characters_empty.num_chars, + len(["[PAD]", "[EOS]", "[BOS]", "[BLANK]", "a", "b", "c", ".", ",", ";", ":", "!", "?", " "]), + ) + + self.characters_empty.print_log() + + def test_char_lookup(self): + """Test char to ID and ID to char conversion""" + self.characters_empty.characters = "abc" + self.characters_empty.punctuations = ".,;:!? " + self.characters_empty.pad = "[PAD]" + self.characters_empty.eos = "[EOS]" + self.characters_empty.bos = "[BOS]" + self.characters_empty.blank = "[BLANK]" + + # char to ID + self.assertEqual(self.characters_empty.char_to_id("[PAD]"), 0) + self.assertEqual(self.characters_empty.char_to_id("[EOS]"), 1) + self.assertEqual(self.characters_empty.char_to_id("[BOS]"), 2) + self.assertEqual(self.characters_empty.char_to_id("[BLANK]"), 3) + self.assertEqual(self.characters_empty.char_to_id("a"), 4) + self.assertEqual(self.characters_empty.char_to_id("b"), 5) + self.assertEqual(self.characters_empty.char_to_id("c"), 6) + self.assertEqual(self.characters_empty.char_to_id("."), 7) + self.assertEqual(self.characters_empty.char_to_id(","), 8) + self.assertEqual(self.characters_empty.char_to_id(";"), 9) + self.assertEqual(self.characters_empty.char_to_id(":"), 10) + self.assertEqual(self.characters_empty.char_to_id("!"), 11) + self.assertEqual(self.characters_empty.char_to_id("?"), 12) + self.assertEqual(self.characters_empty.char_to_id(" "), 13) + + # ID to char + self.assertEqual(self.characters_empty.id_to_char(0), "[PAD]") + self.assertEqual(self.characters_empty.id_to_char(1), "[EOS]") + self.assertEqual(self.characters_empty.id_to_char(2), "[BOS]") + self.assertEqual(self.characters_empty.id_to_char(3), "[BLANK]") + self.assertEqual(self.characters_empty.id_to_char(4), "a") + self.assertEqual(self.characters_empty.id_to_char(5), "b") + self.assertEqual(self.characters_empty.id_to_char(6), "c") + self.assertEqual(self.characters_empty.id_to_char(7), ".") + self.assertEqual(self.characters_empty.id_to_char(8), ",") + self.assertEqual(self.characters_empty.id_to_char(9), ";") + self.assertEqual(self.characters_empty.id_to_char(10), ":") + self.assertEqual(self.characters_empty.id_to_char(11), "!") + self.assertEqual(self.characters_empty.id_to_char(12), "?") + self.assertEqual(self.characters_empty.id_to_char(13), " ") diff --git a/Indic-TTS/TTS/tests/text_tests/test_japanese_phonemizer.py b/Indic-TTS/TTS/tests/text_tests/test_japanese_phonemizer.py new file mode 100644 index 0000000000000000000000000000000000000000..423b79b9ce5d5d7e7ddb20317b48fa711fad8f92 --- /dev/null +++ b/Indic-TTS/TTS/tests/text_tests/test_japanese_phonemizer.py @@ -0,0 +1,26 @@ +import unittest + +from TTS.tts.utils.text.japanese.phonemizer import japanese_text_to_phonemes + +_TEST_CASES = """ +ใฉใกใ‚‰ใซ่กŒใใพใ™ใ‹๏ผŸ/dochiraniikimasuka? +ไปŠๆ—ฅใฏๆธฉๆณ‰ใซใ€่กŒใใพใ™ใ€‚/kyo:waoNseNni,ikimasu. +ใ€ŒAใ€ใ‹ใ‚‰ใ€ŒZใ€ใพใงใงใ™ใ€‚/e:karazeqtomadedesu. +ใใ†ใงใ™ใญ๏ผ/so:desune! +ใ‚ฏใ‚ธใƒฉใฏๅ“บไนณ้กžใงใ™ใ€‚/kujirawahonyu:ruidesu. +ใƒดใ‚ฃใƒ‡ใ‚ฃใ‚ชใ‚’่ฆ‹ใพใ™ใ€‚/bidioomimasu. +ไปŠๆ—ฅใฏ๏ผ˜ๆœˆ22ๆ—ฅใงใ™/kyo:wahachigatsuniju:ninichidesu +xyzใจฮฑฮฒฮณ/eqkusuwaizeqtotoarufabe:tagaNma +ๅ€คๆฎตใฏ$12.34ใงใ™/nedaNwaju:niteNsaNyoNdorudesu +""" + + +class TestText(unittest.TestCase): + def test_japanese_text_to_phonemes(self): + for line in _TEST_CASES.strip().split("\n"): + text, phone = line.split("/") + self.assertEqual(japanese_text_to_phonemes(text), phone) + + +if __name__ == "__main__": + unittest.main() diff --git a/Indic-TTS/TTS/tests/text_tests/test_phonemizer.py b/Indic-TTS/TTS/tests/text_tests/test_phonemizer.py new file mode 100644 index 0000000000000000000000000000000000000000..9b619f6ea7ec111557887f708a060bf1f2ccaa64 --- /dev/null +++ b/Indic-TTS/TTS/tests/text_tests/test_phonemizer.py @@ -0,0 +1,208 @@ +import unittest + +from TTS.tts.utils.text.phonemizers import ESpeak, Gruut, JA_JP_Phonemizer, ZH_CN_Phonemizer + +EXAMPLE_TEXTs = [ + "Recent research at Harvard has shown meditating", + "for as little as 8 weeks can actually increase, the grey matter", + "in the parts of the brain responsible", + "for emotional regulation and learning!", +] + + +EXPECTED_ESPEAK_PHONEMES = [ + "ษน|หˆiห|s|ษ™|n|t ษน|ษช|s|หˆษœห|tสƒ รฆ|t h|หˆษ‘หษน|v|ษš|d h|ษ|z สƒ|หˆoสŠ|n m|หˆษ›|d|ษช|t|หŒeษช|ษพ|ษช|ล‹", + "f|ษ”ห|ษน รฆ|z l|หˆษช|ษพ|ษ™l รฆ|z หˆeษช|t w|หˆiห|k|s k|รฆ|n หˆรฆ|k|tสƒ|uห|ษ™l|i| หˆษช|n|k|ษน|iห|s, รฐ|ษ™ ษก|ษน|หˆeษช m|หˆรฆ|ษพ|ษš", + "ษช|n|รฐ|ษ™ p|หˆษ‘หษน|t|s สŒ|v|รฐ|ษ™ b|ษน|หˆeษช|n ษน|ษช|s|p|หˆษ‘ห|n|s|ษ™|b|ษ™l", + "f|ษ”ห|ษน ษช|m|หˆoสŠ|สƒ|ษ™|n|ษ™l ษน|หŒษ›|ษก|j|uห|l|หˆeษช|สƒ|ษ™|n|| รฆ|n|d l|หˆษœห|n|ษช|ล‹!", +] + + +EXPECTED_ESPEAKNG_PHONEMES = [ + "ษน|หˆiห|s|ษ™|n|t ษน|แตป|s|หˆษœห|tสƒ รฆ|t h|หˆษ‘หษน|v|ษš|d h|ษ|z สƒ|หˆoสŠ|n m|หˆษ›|d|แตป|t|หŒeษช|ษพ|ษช|ล‹", + "f|ษ”ห|ษน รฆ|z l|หˆษช|ษพ|ษ™l รฆ|z หˆeษช|t w|หˆiห|k|s k|รฆ|n หˆรฆ|k|tสƒ|uห|ษ™l|i| หˆษช|ล‹|k|ษน|iห|s, รฐ|ษ™ ษก|ษน|หˆeษช m|หˆรฆ|ษพ|ษš", + "ษช|n|รฐ|ษ™ p|หˆษ‘หษน|t|s สŒ|v|รฐ|ษ™ b|ษน|หˆeษช|n ษน|แตป|s|p|หˆษ‘ห|n|s|แตป|b|ษ™l", + "f|ษ”ห|ษน ษช|m|หˆoสŠ|สƒ|ษ™|n|ษ™l ษน|หŒษ›|ษก|j|สŠ|l|หˆeษช|สƒ|ษ™|n|| รฆ|n|d l|หˆษœห|n|ษช|ล‹!", +] + + +class TestEspeakPhonemizer(unittest.TestCase): + def setUp(self): + self.phonemizer = ESpeak(language="en-us", backend="espeak") + + for text, ph in zip(EXAMPLE_TEXTs, EXPECTED_ESPEAK_PHONEMES): + phonemes = self.phonemizer.phonemize(text) + self.assertEqual(phonemes, ph) + + # multiple punctuations + text = "Be a voice, not an! echo?" + gt = "biห ษ vหˆษ”ษชs, nหˆษ‘หt ษn! หˆษ›koสŠ?" + output = self.phonemizer.phonemize(text, separator="|") + output = output.replace("|", "") + self.assertEqual(output, gt) + + # not ending with punctuation + text = "Be a voice, not an! echo" + gt = "biห ษ vหˆษ”ษชs, nหˆษ‘หt ษn! หˆษ›koสŠ" + output = self.phonemizer.phonemize(text, separator="") + self.assertEqual(output, gt) + + # extra space after the sentence + text = "Be a voice, not an! echo. " + gt = "biห ษ vหˆษ”ษชs, nหˆษ‘หt ษn! หˆษ›koสŠ." + output = self.phonemizer.phonemize(text, separator="") + self.assertEqual(output, gt) + + def test_name(self): + self.assertEqual(self.phonemizer.name(), "espeak") + + def test_get_supported_languages(self): + self.assertIsInstance(self.phonemizer.supported_languages(), dict) + + def test_get_version(self): + self.assertIsInstance(self.phonemizer.version(), str) + + def test_is_available(self): + self.assertTrue(self.phonemizer.is_available()) + + +class TestEspeakNgPhonemizer(unittest.TestCase): + def setUp(self): + self.phonemizer = ESpeak(language="en-us", backend="espeak-ng") + + for text, ph in zip(EXAMPLE_TEXTs, EXPECTED_ESPEAKNG_PHONEMES): + phonemes = self.phonemizer.phonemize(text) + self.assertEqual(phonemes, ph) + + # multiple punctuations + text = "Be a voice, not an! echo?" + gt = "biห ษ vหˆษ”ษชs, nหˆษ‘หt รฆn! หˆษ›koสŠ?" + output = self.phonemizer.phonemize(text, separator="|") + output = output.replace("|", "") + self.assertEqual(output, gt) + + # not ending with punctuation + text = "Be a voice, not an! echo" + gt = "biห ษ vหˆษ”ษชs, nหˆษ‘หt รฆn! หˆษ›koสŠ" + output = self.phonemizer.phonemize(text, separator="") + self.assertEqual(output, gt) + + # extra space after the sentence + text = "Be a voice, not an! echo. " + gt = "biห ษ vหˆษ”ษชs, nหˆษ‘หt รฆn! หˆษ›koสŠ." + output = self.phonemizer.phonemize(text, separator="") + self.assertEqual(output, gt) + + def test_name(self): + self.assertEqual(self.phonemizer.name(), "espeak") + + def test_get_supported_languages(self): + self.assertIsInstance(self.phonemizer.supported_languages(), dict) + + def test_get_version(self): + self.assertIsInstance(self.phonemizer.version(), str) + + def test_is_available(self): + self.assertTrue(self.phonemizer.is_available()) + + +class TestGruutPhonemizer(unittest.TestCase): + def setUp(self): + self.phonemizer = Gruut(language="en-us", use_espeak_phonemes=True, keep_stress=False) + self.EXPECTED_PHONEMES = [ + "ษน|i|ห|s|ษ™|n|t| ษน|แตป|s|ษœ|ห|t|สƒ| รฆ|ษพ| h|ษ‘|ห|ษน|v|ษš|d| h|ษ|z| สƒ|o|สŠ|n| m|ษ›|d|แตป|t|e|ษช|ษพ|ษช|ล‹", + "f|ษ”|ห|ษน| รฆ|z| l|ษช|ษพ|ษ™|l| รฆ|z| e|ษช|t| w|i|ห|k|s| k|รฆ|ล‹| รฆ|k|t|สƒ|u|ห|ษ™|l|i| ษช|ล‹|k|ษน|i|ห|s, รฐ|ษ™| ษก|ษน|e|ษช| m|รฆ|ษพ|ษš", + "ษช|n| รฐ|ษ™| p|ษ‘|ห|ษน|t|s| สŒ|v| รฐ|ษ™| b|ษน|e|ษช|n| ษน|แตป|s|p|ษ‘|ห|n|s|แตป|b|ษ™|l", + "f|ษ”|ห|ษน| ษช|m|o|สŠ|สƒ|ษ™|n|ษ™|l| ษน|ษ›|ษก|j|สŠ|l|e|ษช|สƒ|ษ™|n| รฆ|n|d| l|ษœ|ห|n|ษช|ล‹!", + ] + + def test_phonemize(self): + for text, ph in zip(EXAMPLE_TEXTs, self.EXPECTED_PHONEMES): + phonemes = self.phonemizer.phonemize(text, separator="|") + self.assertEqual(phonemes, ph) + + # multiple punctuations + text = "Be a voice, not an! echo?" + gt = "biห ษ vษ”ษชs, nษ‘หt ษn! ษ›koสŠ?" + output = self.phonemizer.phonemize(text, separator="|") + output = output.replace("|", "") + self.assertEqual(output, gt) + + # not ending with punctuation + text = "Be a voice, not an! echo" + gt = "biห ษ vษ”ษชs, nษ‘หt ษn! ษ›koสŠ" + output = self.phonemizer.phonemize(text, separator="") + self.assertEqual(output, gt) + + # extra space after the sentence + text = "Be a voice, not an! echo. " + gt = "biห ษ vษ”ษชs, nษ‘หt ษn! ษ›koสŠ." + output = self.phonemizer.phonemize(text, separator="") + self.assertEqual(output, gt) + + def test_name(self): + self.assertEqual(self.phonemizer.name(), "gruut") + + def test_get_supported_languages(self): + self.assertIsInstance(self.phonemizer.supported_languages(), list) + + def test_get_version(self): + self.assertIsInstance(self.phonemizer.version(), str) + + def test_is_available(self): + self.assertTrue(self.phonemizer.is_available()) + + +class TestJA_JPPhonemizer(unittest.TestCase): + def setUp(self): + self.phonemizer = JA_JP_Phonemizer() + self._TEST_CASES = """ + ใฉใกใ‚‰ใซ่กŒใใพใ™ใ‹๏ผŸ/dochiraniikimasuka? + ไปŠๆ—ฅใฏๆธฉๆณ‰ใซใ€่กŒใใพใ™ใ€‚/kyo:waoNseNni,ikimasu. + ใ€ŒAใ€ใ‹ใ‚‰ใ€ŒZใ€ใพใงใงใ™ใ€‚/e:karazeqtomadedesu. + ใใ†ใงใ™ใญ๏ผ/so:desune! + ใ‚ฏใ‚ธใƒฉใฏๅ“บไนณ้กžใงใ™ใ€‚/kujirawahonyu:ruidesu. + ใƒดใ‚ฃใƒ‡ใ‚ฃใ‚ชใ‚’่ฆ‹ใพใ™ใ€‚/bidioomimasu. + ไปŠๆ—ฅใฏ๏ผ˜ๆœˆ22ๆ—ฅใงใ™/kyo:wahachigatsuniju:ninichidesu + xyzใจฮฑฮฒฮณ/eqkusuwaizeqtotoarufabe:tagaNma + ๅ€คๆฎตใฏ$12.34ใงใ™/nedaNwaju:niteNsaNyoNdorudesu + """ + + def test_phonemize(self): + for line in self._TEST_CASES.strip().split("\n"): + text, phone = line.split("/") + self.assertEqual(self.phonemizer.phonemize(text, separator=""), phone) + + def test_name(self): + self.assertEqual(self.phonemizer.name(), "ja_jp_phonemizer") + + def test_get_supported_languages(self): + self.assertIsInstance(self.phonemizer.supported_languages(), dict) + + def test_get_version(self): + self.assertIsInstance(self.phonemizer.version(), str) + + def test_is_available(self): + self.assertTrue(self.phonemizer.is_available()) + + +class TestZH_CN_Phonemizer(unittest.TestCase): + def setUp(self): + self.phonemizer = ZH_CN_Phonemizer() + self._TEST_CASES = "" + + def test_phonemize(self): + # TODO: implement ZH phonemizer tests + pass + + def test_name(self): + self.assertEqual(self.phonemizer.name(), "zh_cn_phonemizer") + + def test_get_supported_languages(self): + self.assertIsInstance(self.phonemizer.supported_languages(), dict) + + def test_get_version(self): + self.assertIsInstance(self.phonemizer.version(), str) + + def test_is_available(self): + self.assertTrue(self.phonemizer.is_available()) diff --git a/Indic-TTS/TTS/tests/text_tests/test_punctuation.py b/Indic-TTS/TTS/tests/text_tests/test_punctuation.py new file mode 100644 index 0000000000000000000000000000000000000000..141c10e48f814b3843bea25d7456189716647ce0 --- /dev/null +++ b/Indic-TTS/TTS/tests/text_tests/test_punctuation.py @@ -0,0 +1,33 @@ +import unittest + +from TTS.tts.utils.text.punctuation import _DEF_PUNCS, Punctuation + + +class PunctuationTest(unittest.TestCase): + def setUp(self): + self.punctuation = Punctuation() + self.test_texts = [ + ("This, is my text ... to be striped !! from text?", "This is my text to be striped from text"), + ("This, is my text ... to be striped !! from text", "This is my text to be striped from text"), + ("This, is my text ... to be striped from text?", "This is my text to be striped from text"), + ("This, is my text to be striped from text", "This is my text to be striped from text"), + ] + + def test_get_set_puncs(self): + self.punctuation.puncs = "-=" + self.assertEqual(self.punctuation.puncs, "-=") + + self.punctuation.puncs = _DEF_PUNCS + self.assertEqual(self.punctuation.puncs, _DEF_PUNCS) + + def test_strip_punc(self): + for text, gt in self.test_texts: + text_striped = self.punctuation.strip(text) + self.assertEqual(text_striped, gt) + + def test_strip_restore(self): + for text, gt in self.test_texts: + text_striped, puncs_map = self.punctuation.strip_to_restore(text) + text_restored = self.punctuation.restore(text_striped, puncs_map) + self.assertEqual(" ".join(text_striped), gt) + self.assertEqual(text_restored[0], text) diff --git a/Indic-TTS/TTS/tests/text_tests/test_text_cleaners.py b/Indic-TTS/TTS/tests/text_tests/test_text_cleaners.py new file mode 100644 index 0000000000000000000000000000000000000000..fcfa71e77dde8daa6002aa71a56e4f8ca96a51a7 --- /dev/null +++ b/Indic-TTS/TTS/tests/text_tests/test_text_cleaners.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 + +from TTS.tts.utils.text.cleaners import english_cleaners, phoneme_cleaners + + +def test_time() -> None: + assert english_cleaners("It's 11:00") == "it's eleven a m" + assert english_cleaners("It's 9:01") == "it's nine oh one a m" + assert english_cleaners("It's 16:00") == "it's four p m" + assert english_cleaners("It's 00:00 am") == "it's twelve a m" + + +def test_currency() -> None: + assert phoneme_cleaners("It's $10.50") == "It's ten dollars fifty cents" + assert phoneme_cleaners("ยฃ1.1") == "one pound sterling one penny" + assert phoneme_cleaners("ยฅ1") == "one yen" + + +def test_expand_numbers() -> None: + assert phoneme_cleaners("-1") == "minus one" + assert phoneme_cleaners("1") == "one" diff --git a/Indic-TTS/TTS/tests/text_tests/test_tokenizer.py b/Indic-TTS/TTS/tests/text_tests/test_tokenizer.py new file mode 100644 index 0000000000000000000000000000000000000000..908952ea20e27b7d34c119fd7cff5c6ac841b461 --- /dev/null +++ b/Indic-TTS/TTS/tests/text_tests/test_tokenizer.py @@ -0,0 +1,94 @@ +import unittest +from dataclasses import dataclass + +from coqpit import Coqpit + +from TTS.tts.utils.text.characters import Graphemes, IPAPhonemes, _blank, _bos, _eos, _pad, _phonemes, _punctuations +from TTS.tts.utils.text.phonemizers import ESpeak +from TTS.tts.utils.text.tokenizer import TTSTokenizer + + +class TestTTSTokenizer(unittest.TestCase): + def setUp(self): + self.tokenizer = TTSTokenizer(use_phonemes=False, characters=Graphemes()) + + self.ph = ESpeak("tr", backend="espeak") + self.tokenizer_ph = TTSTokenizer(use_phonemes=True, characters=IPAPhonemes(), phonemizer=self.ph) + + def test_encode_decode_graphemes(self): + text = "This is, a test." + ids = self.tokenizer.encode(text) + test_hat = self.tokenizer.decode(ids) + self.assertEqual(text, test_hat) + self.assertEqual(len(ids), len(text)) + + def test_text_to_ids_phonemes(self): + # TODO: note sure how to extend to cover all the languages and phonemizer. + text = "Bu bir ร–rnek." + text_ph = self.ph.phonemize(text, separator="") + ids = self.tokenizer_ph.text_to_ids(text) + test_hat = self.tokenizer_ph.ids_to_text(ids) + self.assertEqual(text_ph, test_hat) + + def test_text_to_ids_phonemes_with_eos_bos(self): + text = "Bu bir ร–rnek." + self.tokenizer_ph.use_eos_bos = True + text_ph = IPAPhonemes().bos + self.ph.phonemize(text, separator="") + IPAPhonemes().eos + ids = self.tokenizer_ph.text_to_ids(text) + test_hat = self.tokenizer_ph.ids_to_text(ids) + self.assertEqual(text_ph, test_hat) + + def test_text_to_ids_phonemes_with_eos_bos_and_blank(self): + text = "Bu bir ร–rnek." + self.tokenizer_ph.use_eos_bos = True + self.tokenizer_ph.add_blank = True + text_ph = "bสŠ bษชr ล“rnหˆษ›c." + ids = self.tokenizer_ph.text_to_ids(text) + text_hat = self.tokenizer_ph.ids_to_text(ids) + self.assertEqual(text_ph, text_hat) + + def test_print_logs(self): + self.tokenizer.print_logs() + self.tokenizer_ph.print_logs() + + def test_not_found_characters(self): + self.ph = ESpeak("en-us") + tokenizer_local = TTSTokenizer(use_phonemes=True, characters=IPAPhonemes(), phonemizer=self.ph) + self.assertEqual(len(self.tokenizer.not_found_characters), 0) + text = "Yolk of one egg beaten light" + ids = tokenizer_local.text_to_ids(text) + text_hat = tokenizer_local.ids_to_text(ids) + self.assertEqual(tokenizer_local.not_found_characters, ["ฬฉ"]) + self.assertEqual(text_hat, "jหˆoสŠk สŒv wหˆสŒn หˆษ›ษก bหˆiหส”n lหˆaษชt") + + def test_init_from_config(self): + @dataclass + class Characters(Coqpit): + characters_class: str = None + characters: str = _phonemes + punctuations: str = _punctuations + pad: str = _pad + eos: str = _eos + bos: str = _bos + blank: str = _blank + is_unique: bool = True + is_sorted: bool = True + + @dataclass + class TokenizerConfig(Coqpit): + enable_eos_bos_chars: bool = True + use_phonemes: bool = True + add_blank: bool = False + characters: str = Characters() + phonemizer: str = "espeak" + phoneme_language: str = "tr" + text_cleaner: str = "phoneme_cleaners" + characters = Characters() + + tokenizer_ph, _ = TTSTokenizer.init_from_config(TokenizerConfig()) + tokenizer_ph.phonemizer.backend = "espeak" + text = "Bu bir ร–rnek." + text_ph = "" + self.ph.phonemize(text, separator="") + "" + ids = tokenizer_ph.text_to_ids(text) + test_hat = tokenizer_ph.ids_to_text(ids) + self.assertEqual(text_ph, test_hat) diff --git a/Indic-TTS/TTS/tests/tts_tests/__init__.py b/Indic-TTS/TTS/tests/tts_tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/tests/tts_tests/test_align_tts_train.py b/Indic-TTS/TTS/tests/tts_tests/test_align_tts_train.py new file mode 100644 index 0000000000000000000000000000000000000000..75c5643c178630d0d9fff3385dee77496a345b15 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_align_tts_train.py @@ -0,0 +1,72 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.align_tts_config import AlignTTSConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = AlignTTSConfig( + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=False, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(get_tests_output_path(), "train_outputs/phoneme_cache/"), + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + "Be a voice, not an echo.", + ], +) + +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.test_delay_epochs 0 " +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_fast_pitch_speaker_emb_train.py b/Indic-TTS/TTS/tests/tts_tests/test_fast_pitch_speaker_emb_train.py new file mode 100644 index 0000000000000000000000000000000000000000..9553d7451fb6d76e9a17a0964a21a1448ca072c8 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_fast_pitch_speaker_emb_train.py @@ -0,0 +1,92 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.fast_pitch_config import FastPitchConfig + +config_path = os.path.join(get_tests_output_path(), "fast_pitch_speaker_emb_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=60.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = FastPitchConfig( + audio=audio_config, + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + f0_cache_path="tests/data/ljspeech/f0_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + use_speaker_embedding=True, + test_sentences=[ + "Be a voice, not an echo.", + ], +) +config.audio.do_trim_silence = True +config.use_speaker_embedding = True +config.model_args.use_speaker_embedding = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech_test " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.datasets.0.meta_file_attn_mask tests/data/ljspeech/metadata_attn_mask.txt " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") +speaker_id = "ljspeech-1" +continue_speakers_path = os.path.join(continue_path, "speakers.json") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --speaker_idx {speaker_id} --speakers_file_path {continue_speakers_path} --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_fast_pitch_train.py b/Indic-TTS/TTS/tests/tts_tests/test_fast_pitch_train.py new file mode 100644 index 0000000000000000000000000000000000000000..134cd4bab915136a949b40dacf8fef72c59c5fa3 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_fast_pitch_train.py @@ -0,0 +1,91 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.config.shared_configs import BaseAudioConfig +from TTS.tts.configs.fast_pitch_config import FastPitchConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +audio_config = BaseAudioConfig( + sample_rate=22050, + do_trim_silence=True, + trim_db=60.0, + signal_norm=False, + mel_fmin=0.0, + mel_fmax=8000, + spec_gain=1.0, + log_func="np.log", + ref_level_db=20, + preemphasis=0.0, +) + +config = FastPitchConfig( + audio=audio_config, + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + f0_cache_path="tests/data/ljspeech/f0_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + "Be a voice, not an echo.", + ], + use_speaker_embedding=False, +) +config.audio.do_trim_silence = True +config.use_speaker_embedding = False +config.model_args.use_speaker_embedding = False +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.datasets.0.meta_file_attn_mask tests/data/ljspeech/metadata_attn_mask.txt " + "--coqpit.test_delay_epochs 0" +) + +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_feed_forward_layers.py b/Indic-TTS/TTS/tests/tts_tests/test_feed_forward_layers.py new file mode 100644 index 0000000000000000000000000000000000000000..6b26b88f382a1876fd197b632c9bd2b4aca1e06f --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_feed_forward_layers.py @@ -0,0 +1,107 @@ +import torch + +from TTS.tts.layers.feed_forward.decoder import Decoder +from TTS.tts.layers.feed_forward.encoder import Encoder +from TTS.tts.utils.helpers import sequence_mask + +device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + + +def test_encoder(): + input_dummy = torch.rand(8, 14, 37).to(device) + input_lengths = torch.randint(31, 37, (8,)).long().to(device) + input_lengths[-1] = 37 + input_mask = torch.unsqueeze(sequence_mask(input_lengths, input_dummy.size(2)), 1).to(device) + # relative positional transformer encoder + layer = Encoder( + out_channels=11, + in_hidden_channels=14, + encoder_type="relative_position_transformer", + encoder_params={ + "hidden_channels_ffn": 768, + "num_heads": 2, + "kernel_size": 3, + "dropout_p": 0.1, + "num_layers": 6, + "rel_attn_window_size": 4, + "input_length": None, + }, + ).to(device) + output = layer(input_dummy, input_mask) + assert list(output.shape) == [8, 11, 37] + # residual conv bn encoder + layer = Encoder( + out_channels=11, + in_hidden_channels=14, + encoder_type="residual_conv_bn", + encoder_params={"kernel_size": 4, "dilations": 4 * [1, 2, 4] + [1], "num_conv_blocks": 2, "num_res_blocks": 13}, + ).to(device) + output = layer(input_dummy, input_mask) + assert list(output.shape) == [8, 11, 37] + # FFTransformer encoder + layer = Encoder( + out_channels=14, + in_hidden_channels=14, + encoder_type="fftransformer", + encoder_params={"hidden_channels_ffn": 31, "num_heads": 2, "num_layers": 2, "dropout_p": 0.1}, + ).to(device) + output = layer(input_dummy, input_mask) + assert list(output.shape) == [8, 14, 37] + + +def test_decoder(): + input_dummy = torch.rand(8, 128, 37).to(device) + input_lengths = torch.randint(31, 37, (8,)).long().to(device) + input_lengths[-1] = 37 + + input_mask = torch.unsqueeze(sequence_mask(input_lengths, input_dummy.size(2)), 1).to(device) + # residual bn conv decoder + layer = Decoder(out_channels=11, in_hidden_channels=128).to(device) + output = layer(input_dummy, input_mask) + assert list(output.shape) == [8, 11, 37] + # transformer decoder + layer = Decoder( + out_channels=11, + in_hidden_channels=128, + decoder_type="relative_position_transformer", + decoder_params={ + "hidden_channels_ffn": 128, + "num_heads": 2, + "kernel_size": 3, + "dropout_p": 0.1, + "num_layers": 8, + "rel_attn_window_size": 4, + "input_length": None, + }, + ).to(device) + output = layer(input_dummy, input_mask) + assert list(output.shape) == [8, 11, 37] + # wavenet decoder + layer = Decoder( + out_channels=11, + in_hidden_channels=128, + decoder_type="wavenet", + decoder_params={ + "num_blocks": 12, + "hidden_channels": 192, + "kernel_size": 5, + "dilation_rate": 1, + "num_layers": 4, + "dropout_p": 0.05, + }, + ).to(device) + output = layer(input_dummy, input_mask) + # FFTransformer decoder + layer = Decoder( + out_channels=11, + in_hidden_channels=128, + decoder_type="fftransformer", + decoder_params={ + "hidden_channels_ffn": 31, + "num_heads": 2, + "dropout_p": 0.1, + "num_layers": 2, + }, + ).to(device) + output = layer(input_dummy, input_mask) + assert list(output.shape) == [8, 11, 37] diff --git a/Indic-TTS/TTS/tests/tts_tests/test_forward_tts.py b/Indic-TTS/TTS/tests/tts_tests/test_forward_tts.py new file mode 100644 index 0000000000000000000000000000000000000000..cec0f211c85c70b17f289e37368638911b911742 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_forward_tts.py @@ -0,0 +1,147 @@ +import torch as T + +from TTS.tts.models.forward_tts import ForwardTTS, ForwardTTSArgs +from TTS.tts.utils.helpers import sequence_mask + +# pylint: disable=unused-variable + + +def expand_encoder_outputs_test(): + model = ForwardTTS(ForwardTTSArgs(num_chars=10)) + + inputs = T.rand(2, 5, 57) + durations = T.randint(1, 4, (2, 57)) + + x_mask = T.ones(2, 1, 57) + y_mask = T.ones(2, 1, durations.sum(1).max()) + + expanded, _ = model.expand_encoder_outputs(inputs, durations, x_mask, y_mask) + + for b in range(durations.shape[0]): + index = 0 + for idx, dur in enumerate(durations[b]): + diff = ( + expanded[b, :, index : index + dur.item()] + - inputs[b, :, idx].repeat(dur.item()).view(expanded[b, :, index : index + dur.item()].shape) + ).sum() + assert abs(diff) < 1e-6, diff + index += dur + + +def model_input_output_test(): + """Assert the output shapes of the model in different modes""" + + # VANILLA MODEL + model = ForwardTTS(ForwardTTSArgs(num_chars=10, use_pitch=False, use_aligner=False)) + + x = T.randint(0, 10, (2, 21)) + x_lengths = T.randint(10, 22, (2,)) + x_lengths[-1] = 21 + x_mask = sequence_mask(x_lengths).unsqueeze(1).long() + durations = T.randint(1, 4, (2, 21)) + durations = durations * x_mask.squeeze(1) + y_lengths = durations.sum(1) + y_mask = sequence_mask(y_lengths).unsqueeze(1).long() + + outputs = model.forward(x, x_lengths, y_lengths, dr=durations) + + assert outputs["model_outputs"].shape == (2, durations.sum(1).max(), 80) + assert outputs["durations_log"].shape == (2, 21) + assert outputs["durations"].shape == (2, 21) + assert outputs["alignments"].shape == (2, durations.sum(1).max(), 21) + assert (outputs["x_mask"] - x_mask).sum() == 0.0 + assert (outputs["y_mask"] - y_mask).sum() == 0.0 + + assert outputs["alignment_soft"] is None + assert outputs["alignment_mas"] is None + assert outputs["alignment_logprob"] is None + assert outputs["o_alignment_dur"] is None + assert outputs["pitch_avg"] is None + assert outputs["pitch_avg_gt"] is None + + # USE PITCH + model = ForwardTTS(ForwardTTSArgs(num_chars=10, use_pitch=True, use_aligner=False)) + + x = T.randint(0, 10, (2, 21)) + x_lengths = T.randint(10, 22, (2,)) + x_lengths[-1] = 21 + x_mask = sequence_mask(x_lengths).unsqueeze(1).long() + durations = T.randint(1, 4, (2, 21)) + durations = durations * x_mask.squeeze(1) + y_lengths = durations.sum(1) + y_mask = sequence_mask(y_lengths).unsqueeze(1).long() + pitch = T.rand(2, 1, y_lengths.max()) + + outputs = model.forward(x, x_lengths, y_lengths, dr=durations, pitch=pitch) + + assert outputs["model_outputs"].shape == (2, durations.sum(1).max(), 80) + assert outputs["durations_log"].shape == (2, 21) + assert outputs["durations"].shape == (2, 21) + assert outputs["alignments"].shape == (2, durations.sum(1).max(), 21) + assert (outputs["x_mask"] - x_mask).sum() == 0.0 + assert (outputs["y_mask"] - y_mask).sum() == 0.0 + assert outputs["pitch_avg"].shape == (2, 1, 21) + assert outputs["pitch_avg_gt"].shape == (2, 1, 21) + + assert outputs["alignment_soft"] is None + assert outputs["alignment_mas"] is None + assert outputs["alignment_logprob"] is None + assert outputs["o_alignment_dur"] is None + + # USE ALIGNER NETWORK + model = ForwardTTS(ForwardTTSArgs(num_chars=10, use_pitch=False, use_aligner=True)) + + x = T.randint(0, 10, (2, 21)) + x_lengths = T.randint(10, 22, (2,)) + x_lengths[-1] = 21 + x_mask = sequence_mask(x_lengths).unsqueeze(1).long() + durations = T.randint(1, 4, (2, 21)) + durations = durations * x_mask.squeeze(1) + y_lengths = durations.sum(1) + y_mask = sequence_mask(y_lengths).unsqueeze(1).long() + y = T.rand(2, y_lengths.max(), 80) + + outputs = model.forward(x, x_lengths, y_lengths, dr=durations, y=y) + + assert outputs["model_outputs"].shape == (2, durations.sum(1).max(), 80) + assert outputs["durations_log"].shape == (2, 21) + assert outputs["durations"].shape == (2, 21) + assert outputs["alignments"].shape == (2, durations.sum(1).max(), 21) + assert (outputs["x_mask"] - x_mask).sum() == 0.0 + assert (outputs["y_mask"] - y_mask).sum() == 0.0 + assert outputs["alignment_soft"].shape == (2, durations.sum(1).max(), 21) + assert outputs["alignment_mas"].shape == (2, durations.sum(1).max(), 21) + assert outputs["alignment_logprob"].shape == (2, 1, durations.sum(1).max(), 21) + assert outputs["o_alignment_dur"].shape == (2, 21) + + assert outputs["pitch_avg"] is None + assert outputs["pitch_avg_gt"] is None + + # USE ALIGNER NETWORK AND PITCH + model = ForwardTTS(ForwardTTSArgs(num_chars=10, use_pitch=True, use_aligner=True)) + + x = T.randint(0, 10, (2, 21)) + x_lengths = T.randint(10, 22, (2,)) + x_lengths[-1] = 21 + x_mask = sequence_mask(x_lengths).unsqueeze(1).long() + durations = T.randint(1, 4, (2, 21)) + durations = durations * x_mask.squeeze(1) + y_lengths = durations.sum(1) + y_mask = sequence_mask(y_lengths).unsqueeze(1).long() + y = T.rand(2, y_lengths.max(), 80) + pitch = T.rand(2, 1, y_lengths.max()) + + outputs = model.forward(x, x_lengths, y_lengths, dr=durations, pitch=pitch, y=y) + + assert outputs["model_outputs"].shape == (2, durations.sum(1).max(), 80) + assert outputs["durations_log"].shape == (2, 21) + assert outputs["durations"].shape == (2, 21) + assert outputs["alignments"].shape == (2, durations.sum(1).max(), 21) + assert (outputs["x_mask"] - x_mask).sum() == 0.0 + assert (outputs["y_mask"] - y_mask).sum() == 0.0 + assert outputs["alignment_soft"].shape == (2, durations.sum(1).max(), 21) + assert outputs["alignment_mas"].shape == (2, durations.sum(1).max(), 21) + assert outputs["alignment_logprob"].shape == (2, 1, durations.sum(1).max(), 21) + assert outputs["o_alignment_dur"].shape == (2, 21) + assert outputs["pitch_avg"].shape == (2, 1, 21) + assert outputs["pitch_avg_gt"].shape == (2, 1, 21) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_glow_tts.py b/Indic-TTS/TTS/tests/tts_tests/test_glow_tts.py new file mode 100644 index 0000000000000000000000000000000000000000..2a723f105f56e25fee096831719f78155180ee89 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_glow_tts.py @@ -0,0 +1,378 @@ +import copy +import os +import unittest + +import torch +from torch import optim +from trainer.logging.tensorboard_logger import TensorboardLogger + +from tests import get_tests_data_path, get_tests_input_path, get_tests_output_path +from TTS.tts.configs.glow_tts_config import GlowTTSConfig +from TTS.tts.layers.losses import GlowTTSLoss +from TTS.tts.models.glow_tts import GlowTTS +from TTS.tts.utils.speakers import SpeakerManager +from TTS.utils.audio import AudioProcessor + +# pylint: disable=unused-variable + +torch.manual_seed(1) +use_cuda = torch.cuda.is_available() +device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + +c = GlowTTSConfig() + +ap = AudioProcessor(**c.audio) +WAV_FILE = os.path.join(get_tests_input_path(), "example_1.wav") +BATCH_SIZE = 3 + + +def count_parameters(model): + r"""Count number of trainable parameters in a network""" + return sum(p.numel() for p in model.parameters() if p.requires_grad) + + +class TestGlowTTS(unittest.TestCase): + @staticmethod + def _create_inputs(batch_size=8): + input_dummy = torch.randint(0, 24, (batch_size, 128)).long().to(device) + input_lengths = torch.randint(100, 129, (batch_size,)).long().to(device) + input_lengths[-1] = 128 + mel_spec = torch.rand(batch_size, 30, c.audio["num_mels"]).to(device) + mel_lengths = torch.randint(20, 30, (batch_size,)).long().to(device) + speaker_ids = torch.randint(0, 5, (batch_size,)).long().to(device) + return input_dummy, input_lengths, mel_spec, mel_lengths, speaker_ids + + @staticmethod + def _check_parameter_changes(model, model_ref): + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 + + def test_init_multispeaker(self): + config = GlowTTSConfig(num_chars=32) + model = GlowTTS(config) + # speaker embedding with default speaker_embedding_dim + config.use_speaker_embedding = True + config.num_speakers = 5 + config.d_vector_dim = None + model.init_multispeaker(config) + self.assertEqual(model.c_in_channels, model.hidden_channels_enc) + # use external speaker embeddings with speaker_embedding_dim = 301 + config = GlowTTSConfig(num_chars=32) + config.use_d_vector_file = True + config.d_vector_dim = 301 + model = GlowTTS(config) + model.init_multispeaker(config) + self.assertEqual(model.c_in_channels, 301) + # use speaker embedddings by the provided speaker_manager + config = GlowTTSConfig(num_chars=32) + config.use_speaker_embedding = True + config.speakers_file = os.path.join(get_tests_data_path(), "ljspeech", "speakers.json") + speaker_manager = SpeakerManager.init_from_config(config) + model = GlowTTS(config) + model.speaker_manager = speaker_manager + model.init_multispeaker(config) + self.assertEqual(model.c_in_channels, model.hidden_channels_enc) + self.assertEqual(model.num_speakers, speaker_manager.num_speakers) + # use external speaker embeddings by the provided speaker_manager + config = GlowTTSConfig(num_chars=32) + config.use_d_vector_file = True + config.d_vector_dim = 256 + config.d_vector_file = os.path.join(get_tests_data_path(), "dummy_speakers.json") + speaker_manager = SpeakerManager.init_from_config(config) + model = GlowTTS(config) + model.speaker_manager = speaker_manager + model.init_multispeaker(config) + self.assertEqual(model.c_in_channels, speaker_manager.embedding_dim) + self.assertEqual(model.num_speakers, speaker_manager.num_speakers) + + def test_unlock_act_norm_layers(self): + config = GlowTTSConfig(num_chars=32) + model = GlowTTS(config).to(device) + model.unlock_act_norm_layers() + for f in model.decoder.flows: + if getattr(f, "set_ddi", False): + self.assertFalse(f.initialized) + + def test_lock_act_norm_layers(self): + config = GlowTTSConfig(num_chars=32) + model = GlowTTS(config).to(device) + model.lock_act_norm_layers() + for f in model.decoder.flows: + if getattr(f, "set_ddi", False): + self.assertTrue(f.initialized) + + def _test_forward(self, batch_size): + input_dummy, input_lengths, mel_spec, mel_lengths, speaker_ids = self._create_inputs(batch_size) + # create model + config = GlowTTSConfig(num_chars=32) + model = GlowTTS(config).to(device) + model.train() + print(" > Num parameters for GlowTTS model:%s" % (count_parameters(model))) + # inference encoder and decoder with MAS + y = model.forward(input_dummy, input_lengths, mel_spec, mel_lengths) + self.assertEqual(y["z"].shape, mel_spec.shape) + self.assertEqual(y["logdet"].shape, torch.Size([batch_size])) + self.assertEqual(y["y_mean"].shape, mel_spec.shape) + self.assertEqual(y["y_log_scale"].shape, mel_spec.shape) + self.assertEqual(y["alignments"].shape, mel_spec.shape[:2] + (input_dummy.shape[1],)) + self.assertEqual(y["durations_log"].shape, input_dummy.shape + (1,)) + self.assertEqual(y["total_durations_log"].shape, input_dummy.shape + (1,)) + + def test_forward(self): + self._test_forward(1) + self._test_forward(3) + + def _test_forward_with_d_vector(self, batch_size): + input_dummy, input_lengths, mel_spec, mel_lengths, speaker_ids = self._create_inputs(batch_size) + d_vector = torch.rand(batch_size, 256).to(device) + # create model + config = GlowTTSConfig( + num_chars=32, + use_d_vector_file=True, + d_vector_dim=256, + d_vector_file=os.path.join(get_tests_data_path(), "dummy_speakers.json"), + ) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + model.train() + print(" > Num parameters for GlowTTS model:%s" % (count_parameters(model))) + # inference encoder and decoder with MAS + y = model.forward(input_dummy, input_lengths, mel_spec, mel_lengths, {"d_vectors": d_vector}) + self.assertEqual(y["z"].shape, mel_spec.shape) + self.assertEqual(y["logdet"].shape, torch.Size([batch_size])) + self.assertEqual(y["y_mean"].shape, mel_spec.shape) + self.assertEqual(y["y_log_scale"].shape, mel_spec.shape) + self.assertEqual(y["alignments"].shape, mel_spec.shape[:2] + (input_dummy.shape[1],)) + self.assertEqual(y["durations_log"].shape, input_dummy.shape + (1,)) + self.assertEqual(y["total_durations_log"].shape, input_dummy.shape + (1,)) + + def test_forward_with_d_vector(self): + self._test_forward_with_d_vector(1) + self._test_forward_with_d_vector(3) + + def _test_forward_with_speaker_id(self, batch_size): + input_dummy, input_lengths, mel_spec, mel_lengths, speaker_ids = self._create_inputs(batch_size) + speaker_ids = torch.randint(0, 24, (batch_size,)).long().to(device) + # create model + config = GlowTTSConfig( + num_chars=32, + use_speaker_embedding=True, + num_speakers=24, + ) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + model.train() + print(" > Num parameters for GlowTTS model:%s" % (count_parameters(model))) + # inference encoder and decoder with MAS + y = model.forward(input_dummy, input_lengths, mel_spec, mel_lengths, {"speaker_ids": speaker_ids}) + self.assertEqual(y["z"].shape, mel_spec.shape) + self.assertEqual(y["logdet"].shape, torch.Size([batch_size])) + self.assertEqual(y["y_mean"].shape, mel_spec.shape) + self.assertEqual(y["y_log_scale"].shape, mel_spec.shape) + self.assertEqual(y["alignments"].shape, mel_spec.shape[:2] + (input_dummy.shape[1],)) + self.assertEqual(y["durations_log"].shape, input_dummy.shape + (1,)) + self.assertEqual(y["total_durations_log"].shape, input_dummy.shape + (1,)) + + def test_forward_with_speaker_id(self): + self._test_forward_with_speaker_id(1) + self._test_forward_with_speaker_id(3) + + def _assert_inference_outputs(self, outputs, input_dummy, mel_spec): + output_shape = outputs["model_outputs"].shape + self.assertEqual(outputs["model_outputs"].shape[::2], mel_spec.shape[::2]) + self.assertEqual(outputs["logdet"], None) + self.assertEqual(outputs["y_mean"].shape, output_shape) + self.assertEqual(outputs["y_log_scale"].shape, output_shape) + self.assertEqual(outputs["alignments"].shape, output_shape[:2] + (input_dummy.shape[1],)) + self.assertEqual(outputs["durations_log"].shape, input_dummy.shape + (1,)) + self.assertEqual(outputs["total_durations_log"].shape, input_dummy.shape + (1,)) + + def _test_inference(self, batch_size): + input_dummy, input_lengths, mel_spec, mel_lengths, speaker_ids = self._create_inputs(batch_size) + config = GlowTTSConfig(num_chars=32) + model = GlowTTS(config).to(device) + model.eval() + outputs = model.inference(input_dummy, {"x_lengths": input_lengths}) + self._assert_inference_outputs(outputs, input_dummy, mel_spec) + + def test_inference(self): + self._test_inference(1) + self._test_inference(3) + + def _test_inference_with_d_vector(self, batch_size): + input_dummy, input_lengths, mel_spec, mel_lengths, speaker_ids = self._create_inputs(batch_size) + d_vector = torch.rand(batch_size, 256).to(device) + config = GlowTTSConfig( + num_chars=32, + use_d_vector_file=True, + d_vector_dim=256, + d_vector_file=os.path.join(get_tests_data_path(), "dummy_speakers.json"), + ) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + model.eval() + outputs = model.inference(input_dummy, {"x_lengths": input_lengths, "d_vectors": d_vector}) + self._assert_inference_outputs(outputs, input_dummy, mel_spec) + + def test_inference_with_d_vector(self): + self._test_inference_with_d_vector(1) + self._test_inference_with_d_vector(3) + + def _test_inference_with_speaker_ids(self, batch_size): + input_dummy, input_lengths, mel_spec, mel_lengths, speaker_ids = self._create_inputs(batch_size) + speaker_ids = torch.randint(0, 24, (batch_size,)).long().to(device) + # create model + config = GlowTTSConfig( + num_chars=32, + use_speaker_embedding=True, + num_speakers=24, + ) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + outputs = model.inference(input_dummy, {"x_lengths": input_lengths, "speaker_ids": speaker_ids}) + self._assert_inference_outputs(outputs, input_dummy, mel_spec) + + def test_inference_with_speaker_ids(self): + self._test_inference_with_speaker_ids(1) + self._test_inference_with_speaker_ids(3) + + def _test_inference_with_MAS(self, batch_size): + input_dummy, input_lengths, mel_spec, mel_lengths, speaker_ids = self._create_inputs(batch_size) + # create model + config = GlowTTSConfig(num_chars=32) + model = GlowTTS(config).to(device) + model.eval() + # inference encoder and decoder with MAS + y = model.inference_with_MAS(input_dummy, input_lengths, mel_spec, mel_lengths) + y2 = model.decoder_inference(mel_spec, mel_lengths) + assert ( + y2["model_outputs"].shape == y["model_outputs"].shape + ), "Difference between the shapes of the glowTTS inference with MAS ({}) and the inference using only the decoder ({}) !!".format( + y["model_outputs"].shape, y2["model_outputs"].shape + ) + + def test_inference_with_MAS(self): + self._test_inference_with_MAS(1) + self._test_inference_with_MAS(3) + + def test_train_step(self): + batch_size = BATCH_SIZE + input_dummy, input_lengths, mel_spec, mel_lengths, speaker_ids = self._create_inputs(batch_size) + criterion = GlowTTSLoss() + # model to train + config = GlowTTSConfig(num_chars=32) + model = GlowTTS(config).to(device) + # reference model to compare model weights + model_ref = GlowTTS(config).to(device) + model.train() + print(" > Num parameters for GlowTTS model:%s" % (count_parameters(model))) + # pass the state to ref model + model_ref.load_state_dict(copy.deepcopy(model.state_dict())) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=0.001) + for _ in range(5): + optimizer.zero_grad() + outputs = model.forward(input_dummy, input_lengths, mel_spec, mel_lengths, None) + loss_dict = criterion( + outputs["z"], + outputs["y_mean"], + outputs["y_log_scale"], + outputs["logdet"], + mel_lengths, + outputs["durations_log"], + outputs["total_durations_log"], + input_lengths, + ) + loss = loss_dict["loss"] + loss.backward() + optimizer.step() + # check parameter changes + self._check_parameter_changes(model, model_ref) + + def test_train_eval_log(self): + batch_size = BATCH_SIZE + input_dummy, input_lengths, mel_spec, mel_lengths, _ = self._create_inputs(batch_size) + batch = {} + batch["text_input"] = input_dummy + batch["text_lengths"] = input_lengths + batch["mel_lengths"] = mel_lengths + batch["mel_input"] = mel_spec + batch["d_vectors"] = None + batch["speaker_ids"] = None + config = GlowTTSConfig(num_chars=32) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + model.run_data_dep_init = False + model.train() + logger = TensorboardLogger( + log_dir=os.path.join(get_tests_output_path(), "dummy_glow_tts_logs"), model_name="glow_tts_test_train_log" + ) + criterion = model.get_criterion() + outputs, _ = model.train_step(batch, criterion) + model.train_log(batch, outputs, logger, None, 1) + model.eval_log(batch, outputs, logger, None, 1) + logger.finish() + + def test_test_run(self): + config = GlowTTSConfig(num_chars=32) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + model.run_data_dep_init = False + model.eval() + test_figures, test_audios = model.test_run(None) + self.assertTrue(test_figures is not None) + self.assertTrue(test_audios is not None) + + def test_load_checkpoint(self): + chkp_path = os.path.join(get_tests_output_path(), "dummy_glow_tts_checkpoint.pth") + config = GlowTTSConfig(num_chars=32) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + chkp = {} + chkp["model"] = model.state_dict() + torch.save(chkp, chkp_path) + model.load_checkpoint(config, chkp_path) + self.assertTrue(model.training) + model.load_checkpoint(config, chkp_path, eval=True) + self.assertFalse(model.training) + + def test_get_criterion(self): + config = GlowTTSConfig(num_chars=32) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + criterion = model.get_criterion() + self.assertTrue(criterion is not None) + + def test_init_from_config(self): + config = GlowTTSConfig(num_chars=32) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + + config = GlowTTSConfig(num_chars=32, num_speakers=2) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + self.assertTrue(model.num_speakers == 2) + self.assertTrue(not hasattr(model, "emb_g")) + + config = GlowTTSConfig(num_chars=32, num_speakers=2, use_speaker_embedding=True) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + self.assertTrue(model.num_speakers == 2) + self.assertTrue(hasattr(model, "emb_g")) + + config = GlowTTSConfig( + num_chars=32, + num_speakers=2, + use_speaker_embedding=True, + speakers_file=os.path.join(get_tests_data_path(), "ljspeech", "speakers.json"), + ) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + self.assertTrue(model.num_speakers == 10) + self.assertTrue(hasattr(model, "emb_g")) + + config = GlowTTSConfig( + num_chars=32, + use_d_vector_file=True, + d_vector_dim=256, + d_vector_file=os.path.join(get_tests_data_path(), "dummy_speakers.json"), + ) + model = GlowTTS.init_from_config(config, verbose=False).to(device) + self.assertTrue(model.num_speakers == 1) + self.assertTrue(not hasattr(model, "emb_g")) + self.assertTrue(model.c_in_channels == config.d_vector_dim) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_glow_tts_d-vectors_train.py b/Indic-TTS/TTS/tests/tts_tests/test_glow_tts_d-vectors_train.py new file mode 100644 index 0000000000000000000000000000000000000000..3a9c8fccfbc139db8430b058a2b80423b88c94c7 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_glow_tts_d-vectors_train.py @@ -0,0 +1,79 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.glow_tts_config import GlowTTSConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = GlowTTSConfig( + batch_size=2, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + "Be a voice, not an echo.", + ], + data_dep_init_steps=1.0, + use_speaker_embedding=False, + use_d_vector_file=True, + d_vector_file="tests/data/ljspeech/speakers.json", + d_vector_dim=256, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech_test " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.datasets.0.meta_file_attn_mask tests/data/ljspeech/metadata_attn_mask.txt " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") +speaker_id = "ljspeech-1" +continue_speakers_path = config.d_vector_file + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --speaker_idx {speaker_id} --speakers_file_path {continue_speakers_path} --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_glow_tts_speaker_emb_train.py b/Indic-TTS/TTS/tests/tts_tests/test_glow_tts_speaker_emb_train.py new file mode 100644 index 0000000000000000000000000000000000000000..322b506e18de6a7e0d8ed5cf6dca92de75109a0f --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_glow_tts_speaker_emb_train.py @@ -0,0 +1,76 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.glow_tts_config import GlowTTSConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = GlowTTSConfig( + batch_size=2, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + "Be a voice, not an echo.", + ], + data_dep_init_steps=1.0, + use_speaker_embedding=True, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech_test " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.datasets.0.meta_file_attn_mask tests/data/ljspeech/metadata_attn_mask.txt " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") +speaker_id = "ljspeech-1" +continue_speakers_path = os.path.join(continue_path, "speakers.json") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --speaker_idx {speaker_id} --speakers_file_path {continue_speakers_path} --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_glow_tts_train.py b/Indic-TTS/TTS/tests/tts_tests/test_glow_tts_train.py new file mode 100644 index 0000000000000000000000000000000000000000..cf9a04f481ecf8a4166d4cbbe8d8d8f08bc7d9e0 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_glow_tts_train.py @@ -0,0 +1,73 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.glow_tts_config import GlowTTSConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = GlowTTSConfig( + batch_size=2, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + "Be a voice, not an echo.", + ], + data_dep_init_steps=1.0, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.datasets.0.meta_file_attn_mask tests/data/ljspeech/metadata_attn_mask.txt " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_helpers.py b/Indic-TTS/TTS/tests/tts_tests/test_helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..23bb440a0af77b443e847b1c80620887bef485bb --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_helpers.py @@ -0,0 +1,88 @@ +import torch as T + +from TTS.tts.utils.helpers import average_over_durations, generate_path, rand_segments, segment, sequence_mask + + +def average_over_durations_test(): # pylint: disable=no-self-use + pitch = T.rand(1, 1, 128) + + durations = T.randint(1, 5, (1, 21)) + coeff = 128.0 / durations.sum() + durations = T.floor(durations * coeff) + diff = 128.0 - durations.sum() + durations[0, -1] += diff + durations = durations.long() + + pitch_avg = average_over_durations(pitch, durations) + + index = 0 + for idx, dur in enumerate(durations[0]): + assert abs(pitch_avg[0, 0, idx] - pitch[0, 0, index : index + dur.item()].mean()) < 1e-5 + index += dur + + +def seqeunce_mask_test(): + lengths = T.randint(10, 15, (8,)) + mask = sequence_mask(lengths) + for i in range(8): + l = lengths[i].item() + assert mask[i, :l].sum() == l + assert mask[i, l:].sum() == 0 + + +def segment_test(): + x = T.range(0, 11) + x = x.repeat(8, 1).unsqueeze(1) + segment_ids = T.randint(0, 7, (8,)) + + segments = segment(x, segment_ids, segment_size=4) + for idx, start_indx in enumerate(segment_ids): + assert x[idx, :, start_indx : start_indx + 4].sum() == segments[idx, :, :].sum() + + try: + segments = segment(x, segment_ids, segment_size=10) + raise Exception("Should have failed") + except: + pass + + segments = segment(x, segment_ids, segment_size=10, pad_short=True) + for idx, start_indx in enumerate(segment_ids): + assert x[idx, :, start_indx : start_indx + 10].sum() == segments[idx, :, :].sum() + + +def rand_segments_test(): + x = T.rand(2, 3, 4) + x_lens = T.randint(3, 4, (2,)) + segments, seg_idxs = rand_segments(x, x_lens, segment_size=3) + assert segments.shape == (2, 3, 3) + assert all(seg_idxs >= 0), seg_idxs + try: + segments, _ = rand_segments(x, x_lens, segment_size=5) + raise Exception("Should have failed") + except: + pass + x_lens_back = x_lens.clone() + segments, seg_idxs = rand_segments(x, x_lens.clone(), segment_size=5, pad_short=True, let_short_samples=True) + assert segments.shape == (2, 3, 5) + assert all(seg_idxs >= 0), seg_idxs + assert all(x_lens_back == x_lens) + + +def generate_path_test(): + durations = T.randint(1, 4, (10, 21)) + x_length = T.randint(18, 22, (10,)) + x_mask = sequence_mask(x_length).unsqueeze(1).long() + durations = durations * x_mask.squeeze(1) + y_length = durations.sum(1) + y_mask = sequence_mask(y_length).unsqueeze(1).long() + attn_mask = (T.unsqueeze(x_mask, -1) * T.unsqueeze(y_mask, 2)).squeeze(1).long() + print(attn_mask.shape) + path = generate_path(durations, attn_mask) + assert path.shape == (10, 21, durations.sum(1).max().item()) + for b in range(durations.shape[0]): + current_idx = 0 + for t in range(durations.shape[1]): + assert all(path[b, t, current_idx : current_idx + durations[b, t].item()] == 1.0) + assert all(path[b, t, :current_idx] == 0.0) + assert all(path[b, t, current_idx + durations[b, t].item() :] == 0.0) + current_idx += durations[b, t].item() diff --git a/Indic-TTS/TTS/tests/tts_tests/test_speedy_speech_train.py b/Indic-TTS/TTS/tests/tts_tests/test_speedy_speech_train.py new file mode 100644 index 0000000000000000000000000000000000000000..c4adcee3c0910ea9396eecf12bc2c55db5b5de29 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_speedy_speech_train.py @@ -0,0 +1,72 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.speedy_speech_config import SpeedySpeechConfig + +config_path = os.path.join(get_tests_output_path(), "test_speedy_speech_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = SpeedySpeechConfig( + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + "Be a voice, not an echo.", + ], +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.datasets.0.meta_file_attn_mask tests/data/ljspeech/metadata_attn_mask.txt " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example for it.' --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_d-vectors_train.py b/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_d-vectors_train.py new file mode 100644 index 0000000000000000000000000000000000000000..0d02fa98083a3ff239edc1cd36d5e4eeb22c6ba1 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_d-vectors_train.py @@ -0,0 +1,79 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.tacotron2_config import Tacotron2Config + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +config = Tacotron2Config( + r=5, + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=False, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(get_tests_output_path(), "train_outputs/phoneme_cache/"), + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + use_speaker_embedding=False, + use_d_vector_file=True, + test_sentences=[ + "Be a voice, not an echo.", + ], + d_vector_file="tests/data/ljspeech/speakers.json", + d_vector_dim=256, + max_decoder_steps=50, +) + +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech_test " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.test_delay_epochs 0 " +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") +speaker_id = "ljspeech-1" +continue_speakers_path = config.d_vector_file + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --speaker_idx {speaker_id} --speakers_file_path {continue_speakers_path} --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_model.py b/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_model.py new file mode 100644 index 0000000000000000000000000000000000000000..77c291f7b5179e411985d896d8b630be1ddcf498 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_model.py @@ -0,0 +1,391 @@ +import copy +import os +import unittest + +import torch +from torch import nn, optim + +from tests import get_tests_input_path +from TTS.tts.configs.shared_configs import CapacitronVAEConfig, GSTConfig +from TTS.tts.configs.tacotron2_config import Tacotron2Config +from TTS.tts.layers.losses import MSELossMasked +from TTS.tts.models.tacotron2 import Tacotron2 +from TTS.utils.audio import AudioProcessor + +# pylint: disable=unused-variable + +torch.manual_seed(1) +use_cuda = torch.cuda.is_available() +device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + +config_global = Tacotron2Config(num_chars=32, num_speakers=5, out_channels=80, decoder_output_dim=80) + +ap = AudioProcessor(**config_global.audio) +WAV_FILE = os.path.join(get_tests_input_path(), "example_1.wav") + + +class TacotronTrainTest(unittest.TestCase): + """Test vanilla Tacotron2 model.""" + + def test_train_step(self): # pylint: disable=no-self-use + config = config_global.copy() + config.use_speaker_embedding = False + config.num_speakers = 1 + + input_dummy = torch.randint(0, 24, (8, 128)).long().to(device) + input_lengths = torch.randint(100, 128, (8,)).long().to(device) + input_lengths = torch.sort(input_lengths, descending=True)[0] + mel_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + mel_postnet_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + mel_lengths = torch.randint(20, 30, (8,)).long().to(device) + mel_lengths[0] = 30 + stop_targets = torch.zeros(8, 30, 1).float().to(device) + + for idx in mel_lengths: + stop_targets[:, int(idx.item()) :, 0] = 1.0 + + stop_targets = stop_targets.view(input_dummy.shape[0], stop_targets.size(1) // config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze() + + criterion = MSELossMasked(seq_len_norm=False).to(device) + criterion_st = nn.BCEWithLogitsLoss().to(device) + model = Tacotron2(config).to(device) + model.train() + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=config.lr) + for i in range(5): + outputs = model.forward(input_dummy, input_lengths, mel_spec, mel_lengths) + assert torch.sigmoid(outputs["stop_tokens"]).data.max() <= 1.0 + assert torch.sigmoid(outputs["stop_tokens"]).data.min() >= 0.0 + optimizer.zero_grad() + loss = criterion(outputs["decoder_outputs"], mel_spec, mel_lengths) + stop_loss = criterion_st(outputs["stop_tokens"], stop_targets) + loss = loss + criterion(outputs["model_outputs"], mel_postnet_spec, mel_lengths) + stop_loss + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + # if count not in [145, 59]: + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 + + +class MultiSpeakerTacotronTrainTest(unittest.TestCase): + """Test multi-speaker Tacotron2 with speaker embedding layer""" + + @staticmethod + def test_train_step(): + config = config_global.copy() + config.use_speaker_embedding = True + config.num_speakers = 5 + + input_dummy = torch.randint(0, 24, (8, 128)).long().to(device) + input_lengths = torch.randint(100, 128, (8,)).long().to(device) + input_lengths = torch.sort(input_lengths, descending=True)[0] + mel_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + mel_postnet_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + mel_lengths = torch.randint(20, 30, (8,)).long().to(device) + mel_lengths[0] = 30 + stop_targets = torch.zeros(8, 30, 1).float().to(device) + speaker_ids = torch.randint(0, 5, (8,)).long().to(device) + + for idx in mel_lengths: + stop_targets[:, int(idx.item()) :, 0] = 1.0 + + stop_targets = stop_targets.view(input_dummy.shape[0], stop_targets.size(1) // config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze() + + criterion = MSELossMasked(seq_len_norm=False).to(device) + criterion_st = nn.BCEWithLogitsLoss().to(device) + config.d_vector_dim = 55 + model = Tacotron2(config).to(device) + model.train() + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=config.lr) + for _ in range(5): + outputs = model.forward( + input_dummy, input_lengths, mel_spec, mel_lengths, aux_input={"speaker_ids": speaker_ids} + ) + assert torch.sigmoid(outputs["stop_tokens"]).data.max() <= 1.0 + assert torch.sigmoid(outputs["stop_tokens"]).data.min() >= 0.0 + optimizer.zero_grad() + loss = criterion(outputs["decoder_outputs"], mel_spec, mel_lengths) + stop_loss = criterion_st(outputs["stop_tokens"], stop_targets) + loss = loss + criterion(outputs["model_outputs"], mel_postnet_spec, mel_lengths) + stop_loss + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + # if count not in [145, 59]: + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 + + +class TacotronGSTTrainTest(unittest.TestCase): + """Test multi-speaker Tacotron2 with Global Style Token and Speaker Embedding""" + + # pylint: disable=no-self-use + def test_train_step(self): + # with random gst mel style + config = config_global.copy() + config.use_speaker_embedding = True + config.num_speakers = 10 + config.use_gst = True + config.gst = GSTConfig() + + input_dummy = torch.randint(0, 24, (8, 128)).long().to(device) + input_lengths = torch.randint(100, 128, (8,)).long().to(device) + input_lengths = torch.sort(input_lengths, descending=True)[0] + mel_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + mel_postnet_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + mel_lengths = torch.randint(20, 30, (8,)).long().to(device) + mel_lengths[0] = 30 + stop_targets = torch.zeros(8, 30, 1).float().to(device) + speaker_ids = torch.randint(0, 5, (8,)).long().to(device) + + for idx in mel_lengths: + stop_targets[:, int(idx.item()) :, 0] = 1.0 + + stop_targets = stop_targets.view(input_dummy.shape[0], stop_targets.size(1) // config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze() + + criterion = MSELossMasked(seq_len_norm=False).to(device) + criterion_st = nn.BCEWithLogitsLoss().to(device) + config.use_gst = True + config.gst = GSTConfig() + model = Tacotron2(config).to(device) + model.train() + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=config.lr) + for i in range(10): + outputs = model.forward( + input_dummy, input_lengths, mel_spec, mel_lengths, aux_input={"speaker_ids": speaker_ids} + ) + assert torch.sigmoid(outputs["stop_tokens"]).data.max() <= 1.0 + assert torch.sigmoid(outputs["stop_tokens"]).data.min() >= 0.0 + optimizer.zero_grad() + loss = criterion(outputs["decoder_outputs"], mel_spec, mel_lengths) + stop_loss = criterion_st(outputs["stop_tokens"], stop_targets) + loss = loss + criterion(outputs["model_outputs"], mel_postnet_spec, mel_lengths) + stop_loss + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for name_param, param_ref in zip(model.named_parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + # if count not in [145, 59]: + name, param = name_param + if name == "gst_layer.encoder.recurrence.weight_hh_l0": + # print(param.grad) + continue + assert (param != param_ref).any(), "param {} {} with shape {} not updated!! \n{}\n{}".format( + name, count, param.shape, param, param_ref + ) + count += 1 + + # with file gst style + mel_spec = ( + torch.FloatTensor(ap.melspectrogram(ap.load_wav(WAV_FILE)))[:, :30].unsqueeze(0).transpose(1, 2).to(device) + ) + mel_spec = mel_spec.repeat(8, 1, 1) + input_dummy = torch.randint(0, 24, (8, 128)).long().to(device) + input_lengths = torch.randint(100, 128, (8,)).long().to(device) + input_lengths = torch.sort(input_lengths, descending=True)[0] + mel_postnet_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + mel_lengths = torch.randint(20, 30, (8,)).long().to(device) + mel_lengths[0] = 30 + stop_targets = torch.zeros(8, 30, 1).float().to(device) + speaker_ids = torch.randint(0, 5, (8,)).long().to(device) + + for idx in mel_lengths: + stop_targets[:, int(idx.item()) :, 0] = 1.0 + + stop_targets = stop_targets.view(input_dummy.shape[0], stop_targets.size(1) // config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze() + + criterion = MSELossMasked(seq_len_norm=False).to(device) + criterion_st = nn.BCEWithLogitsLoss().to(device) + model = Tacotron2(config).to(device) + model.train() + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=config.lr) + for i in range(10): + outputs = model.forward( + input_dummy, input_lengths, mel_spec, mel_lengths, aux_input={"speaker_ids": speaker_ids} + ) + assert torch.sigmoid(outputs["stop_tokens"]).data.max() <= 1.0 + assert torch.sigmoid(outputs["stop_tokens"]).data.min() >= 0.0 + optimizer.zero_grad() + loss = criterion(outputs["decoder_outputs"], mel_spec, mel_lengths) + stop_loss = criterion_st(outputs["stop_tokens"], stop_targets) + loss = loss + criterion(outputs["model_outputs"], mel_postnet_spec, mel_lengths) + stop_loss + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for name_param, param_ref in zip(model.named_parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + # if count not in [145, 59]: + name, param = name_param + if name == "gst_layer.encoder.recurrence.weight_hh_l0": + # print(param.grad) + continue + assert (param != param_ref).any(), "param {} {} with shape {} not updated!! \n{}\n{}".format( + name, count, param.shape, param, param_ref + ) + count += 1 + + +class TacotronCapacitronTrainTest(unittest.TestCase): + @staticmethod + def test_train_step(): + config = Tacotron2Config( + num_chars=32, + num_speakers=10, + use_speaker_embedding=True, + out_channels=80, + decoder_output_dim=80, + use_capacitron_vae=True, + capacitron_vae=CapacitronVAEConfig(), + optimizer="CapacitronOptimizer", + optimizer_params={ + "RAdam": {"betas": [0.9, 0.998], "weight_decay": 1e-6}, + "SGD": {"lr": 1e-5, "momentum": 0.9}, + }, + ) + + batch = dict({}) + batch["text_input"] = torch.randint(0, 24, (8, 128)).long().to(device) + batch["text_lengths"] = torch.randint(100, 129, (8,)).long().to(device) + batch["text_lengths"] = torch.sort(batch["text_lengths"], descending=True)[0] + batch["text_lengths"][0] = 128 + batch["mel_input"] = torch.rand(8, 120, config.audio["num_mels"]).to(device) + batch["mel_lengths"] = torch.randint(20, 120, (8,)).long().to(device) + batch["mel_lengths"] = torch.sort(batch["mel_lengths"], descending=True)[0] + batch["mel_lengths"][0] = 120 + batch["stop_targets"] = torch.zeros(8, 120, 1).float().to(device) + batch["stop_target_lengths"] = torch.randint(0, 120, (8,)).to(device) + batch["speaker_ids"] = torch.randint(0, 5, (8,)).long().to(device) + batch["d_vectors"] = None + + for idx in batch["mel_lengths"]: + batch["stop_targets"][:, int(idx.item()) :, 0] = 1.0 + + batch["stop_targets"] = batch["stop_targets"].view( + batch["text_input"].shape[0], batch["stop_targets"].size(1) // config.r, -1 + ) + batch["stop_targets"] = (batch["stop_targets"].sum(2) > 0.0).unsqueeze(2).float().squeeze() + + model = Tacotron2(config).to(device) + criterion = model.get_criterion() + optimizer = model.get_optimizer() + + model.train() + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + for _ in range(10): + _, loss_dict = model.train_step(batch, criterion) + optimizer.zero_grad() + loss_dict["capacitron_vae_beta_loss"].backward() + optimizer.first_step() + loss_dict["loss"].backward() + optimizer.step() + # check parameter changes + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 + + +class SCGSTMultiSpeakeTacotronTrainTest(unittest.TestCase): + """Test multi-speaker Tacotron2 with Global Style Tokens and d-vector inputs.""" + + @staticmethod + def test_train_step(): + + config = config_global.copy() + config.use_d_vector_file = True + + config.use_gst = True + config.gst = GSTConfig() + + input_dummy = torch.randint(0, 24, (8, 128)).long().to(device) + input_lengths = torch.randint(100, 128, (8,)).long().to(device) + input_lengths = torch.sort(input_lengths, descending=True)[0] + mel_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + mel_postnet_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + mel_lengths = torch.randint(20, 30, (8,)).long().to(device) + mel_lengths[0] = 30 + stop_targets = torch.zeros(8, 30, 1).float().to(device) + speaker_embeddings = torch.rand(8, 55).to(device) + + for idx in mel_lengths: + stop_targets[:, int(idx.item()) :, 0] = 1.0 + + stop_targets = stop_targets.view(input_dummy.shape[0], stop_targets.size(1) // config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze() + criterion = MSELossMasked(seq_len_norm=False).to(device) + criterion_st = nn.BCEWithLogitsLoss().to(device) + config.d_vector_dim = 55 + model = Tacotron2(config).to(device) + model.train() + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=config.lr) + for i in range(5): + outputs = model.forward( + input_dummy, input_lengths, mel_spec, mel_lengths, aux_input={"d_vectors": speaker_embeddings} + ) + assert torch.sigmoid(outputs["stop_tokens"]).data.max() <= 1.0 + assert torch.sigmoid(outputs["stop_tokens"]).data.min() >= 0.0 + optimizer.zero_grad() + loss = criterion(outputs["decoder_outputs"], mel_spec, mel_lengths) + stop_loss = criterion_st(outputs["stop_tokens"], stop_targets) + loss = loss + criterion(outputs["model_outputs"], mel_postnet_spec, mel_lengths) + stop_loss + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for name_param, param_ref in zip(model.named_parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + # if count not in [145, 59]: + name, param = name_param + if name == "gst_layer.encoder.recurrence.weight_hh_l0": + continue + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 diff --git a/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_speaker_emb_train.py b/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_speaker_emb_train.py new file mode 100644 index 0000000000000000000000000000000000000000..2e812d90c036bf2ccb88291711691228b1c4d81c --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_speaker_emb_train.py @@ -0,0 +1,77 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.tacotron2_config import Tacotron2Config + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +config = Tacotron2Config( + r=5, + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=False, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(get_tests_output_path(), "train_outputs/phoneme_cache/"), + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + "Be a voice, not an echo.", + ], + use_speaker_embedding=True, + num_speakers=4, + max_decoder_steps=50, +) + +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech_test " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.test_delay_epochs 0 " +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") +speaker_id = "ljspeech-1" +continue_speakers_path = os.path.join(continue_path, "speakers.json") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --speaker_idx {speaker_id} --speakers_file_path {continue_speakers_path} --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_train.py b/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_train.py new file mode 100644 index 0000000000000000000000000000000000000000..d1941022dfe389989abfe8b5e88b0232211dffba --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_tacotron2_train.py @@ -0,0 +1,72 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.tacotron2_config import Tacotron2Config + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +config = Tacotron2Config( + r=5, + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=False, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(get_tests_output_path(), "train_outputs/phoneme_cache/"), + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + test_sentences=[ + "Be a voice, not an echo.", + ], + print_eval=True, + max_decoder_steps=50, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.test_delay_epochs 0 " +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_tacotron_layers.py b/Indic-TTS/TTS/tests/tts_tests/test_tacotron_layers.py new file mode 100644 index 0000000000000000000000000000000000000000..fdce75ddc7686de00306113b035c552cd85bd29b --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_tacotron_layers.py @@ -0,0 +1,215 @@ +import unittest + +import torch as T + +from TTS.tts.layers.losses import L1LossMasked, SSIMLoss +from TTS.tts.layers.tacotron.tacotron import CBHG, Decoder, Encoder, Prenet +from TTS.tts.utils.helpers import sequence_mask + +# pylint: disable=unused-variable + + +class PrenetTests(unittest.TestCase): + def test_in_out(self): # pylint: disable=no-self-use + layer = Prenet(128, out_features=[256, 128]) + dummy_input = T.rand(4, 128) + + print(layer) + output = layer(dummy_input) + assert output.shape[0] == 4 + assert output.shape[1] == 128 + + +class CBHGTests(unittest.TestCase): + def test_in_out(self): + # pylint: disable=attribute-defined-outside-init + layer = self.cbhg = CBHG( + 128, + K=8, + conv_bank_features=80, + conv_projections=[160, 128], + highway_features=80, + gru_features=80, + num_highways=4, + ) + # B x D x T + dummy_input = T.rand(4, 128, 8) + + print(layer) + output = layer(dummy_input) + assert output.shape[0] == 4 + assert output.shape[1] == 8 + assert output.shape[2] == 160 + + +class DecoderTests(unittest.TestCase): + @staticmethod + def test_in_out(): + layer = Decoder( + in_channels=256, + frame_channels=80, + r=2, + memory_size=4, + attn_windowing=False, + attn_norm="sigmoid", + attn_K=5, + attn_type="original", + prenet_type="original", + prenet_dropout=True, + forward_attn=True, + trans_agent=True, + forward_attn_mask=True, + location_attn=True, + separate_stopnet=True, + max_decoder_steps=50, + ) + dummy_input = T.rand(4, 8, 256) + dummy_memory = T.rand(4, 2, 80) + + output, alignment, stop_tokens = layer(dummy_input, dummy_memory, mask=None) + + assert output.shape[0] == 4 + assert output.shape[1] == 80, "size not {}".format(output.shape[1]) + assert output.shape[2] == 2, "size not {}".format(output.shape[2]) + assert stop_tokens.shape[0] == 4 + + +class EncoderTests(unittest.TestCase): + def test_in_out(self): # pylint: disable=no-self-use + layer = Encoder(128) + dummy_input = T.rand(4, 8, 128) + + print(layer) + output = layer(dummy_input) + print(output.shape) + assert output.shape[0] == 4 + assert output.shape[1] == 8 + assert output.shape[2] == 256 # 128 * 2 BiRNN + + +class L1LossMaskedTests(unittest.TestCase): + def test_in_out(self): # pylint: disable=no-self-use + # test input == target + layer = L1LossMasked(seq_len_norm=False) + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.ones(4, 8, 128).float() + dummy_length = (T.ones(4) * 8).long() + output = layer(dummy_input, dummy_target, dummy_length) + assert output.item() == 0.0 + + # test input != target + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.zeros(4, 8, 128).float() + dummy_length = (T.ones(4) * 8).long() + output = layer(dummy_input, dummy_target, dummy_length) + assert output.item() == 1.0, "1.0 vs {}".format(output.item()) + + # test if padded values of input makes any difference + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.zeros(4, 8, 128).float() + dummy_length = (T.arange(5, 9)).long() + mask = ((sequence_mask(dummy_length).float() - 1.0) * 100.0).unsqueeze(2) + output = layer(dummy_input + mask, dummy_target, dummy_length) + assert output.item() == 1.0, "1.0 vs {}".format(output.item()) + + dummy_input = T.rand(4, 8, 128).float() + dummy_target = dummy_input.detach() + dummy_length = (T.arange(5, 9)).long() + mask = ((sequence_mask(dummy_length).float() - 1.0) * 100.0).unsqueeze(2) + output = layer(dummy_input + mask, dummy_target, dummy_length) + assert output.item() == 0, "0 vs {}".format(output.item()) + + # seq_len_norm = True + # test input == target + layer = L1LossMasked(seq_len_norm=True) + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.ones(4, 8, 128).float() + dummy_length = (T.ones(4) * 8).long() + output = layer(dummy_input, dummy_target, dummy_length) + assert output.item() == 0.0 + + # test input != target + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.zeros(4, 8, 128).float() + dummy_length = (T.ones(4) * 8).long() + output = layer(dummy_input, dummy_target, dummy_length) + assert output.item() == 1.0, "1.0 vs {}".format(output.item()) + + # test if padded values of input makes any difference + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.zeros(4, 8, 128).float() + dummy_length = (T.arange(5, 9)).long() + mask = ((sequence_mask(dummy_length).float() - 1.0) * 100.0).unsqueeze(2) + output = layer(dummy_input + mask, dummy_target, dummy_length) + assert abs(output.item() - 1.0) < 1e-5, "1.0 vs {}".format(output.item()) + + dummy_input = T.rand(4, 8, 128).float() + dummy_target = dummy_input.detach() + dummy_length = (T.arange(5, 9)).long() + mask = ((sequence_mask(dummy_length).float() - 1.0) * 100.0).unsqueeze(2) + output = layer(dummy_input + mask, dummy_target, dummy_length) + assert output.item() == 0, "0 vs {}".format(output.item()) + + +class SSIMLossTests(unittest.TestCase): + def test_in_out(self): # pylint: disable=no-self-use + # test input == target + layer = SSIMLoss() + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.ones(4, 8, 128).float() + dummy_length = (T.ones(4) * 8).long() + output = layer(dummy_input, dummy_target, dummy_length) + assert output.item() == 0.0 + + # test input != target + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.zeros(4, 8, 128).float() + dummy_length = (T.ones(4) * 8).long() + output = layer(dummy_input, dummy_target, dummy_length) + assert abs(output.item() - 1.0) < 1e-4, "1.0 vs {}".format(output.item()) + + # test if padded values of input makes any difference + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.zeros(4, 8, 128).float() + dummy_length = (T.arange(5, 9)).long() + mask = ((sequence_mask(dummy_length).float() - 1.0) * 100.0).unsqueeze(2) + output = layer(dummy_input + mask, dummy_target, dummy_length) + assert abs(output.item() - 1.0) < 1e-4, "1.0 vs {}".format(output.item()) + + dummy_input = T.rand(4, 8, 128).float() + dummy_target = dummy_input.detach() + dummy_length = (T.arange(5, 9)).long() + mask = ((sequence_mask(dummy_length).float() - 1.0) * 100.0).unsqueeze(2) + output = layer(dummy_input + mask, dummy_target, dummy_length) + assert output.item() == 0, "0 vs {}".format(output.item()) + + # seq_len_norm = True + # test input == target + layer = L1LossMasked(seq_len_norm=True) + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.ones(4, 8, 128).float() + dummy_length = (T.ones(4) * 8).long() + output = layer(dummy_input, dummy_target, dummy_length) + assert output.item() == 0.0 + + # test input != target + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.zeros(4, 8, 128).float() + dummy_length = (T.ones(4) * 8).long() + output = layer(dummy_input, dummy_target, dummy_length) + assert output.item() == 1.0, "1.0 vs {}".format(output.item()) + + # test if padded values of input makes any difference + dummy_input = T.ones(4, 8, 128).float() + dummy_target = T.zeros(4, 8, 128).float() + dummy_length = (T.arange(5, 9)).long() + mask = ((sequence_mask(dummy_length).float() - 1.0) * 100.0).unsqueeze(2) + output = layer(dummy_input + mask, dummy_target, dummy_length) + assert abs(output.item() - 1.0) < 1e-5, "1.0 vs {}".format(output.item()) + + dummy_input = T.rand(4, 8, 128).float() + dummy_target = dummy_input.detach() + dummy_length = (T.arange(5, 9)).long() + mask = ((sequence_mask(dummy_length).float() - 1.0) * 100.0).unsqueeze(2) + output = layer(dummy_input + mask, dummy_target, dummy_length) + assert output.item() == 0, "0 vs {}".format(output.item()) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_tacotron_model.py b/Indic-TTS/TTS/tests/tts_tests/test_tacotron_model.py new file mode 100644 index 0000000000000000000000000000000000000000..07351a6ae0fa730c07c99acf7bae272c2aca27be --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_tacotron_model.py @@ -0,0 +1,377 @@ +import copy +import os +import unittest + +import torch +from torch import nn, optim + +from tests import get_tests_input_path +from TTS.tts.configs.shared_configs import CapacitronVAEConfig, GSTConfig +from TTS.tts.configs.tacotron_config import TacotronConfig +from TTS.tts.layers.losses import L1LossMasked +from TTS.tts.models.tacotron import Tacotron +from TTS.utils.audio import AudioProcessor + +# pylint: disable=unused-variable + +torch.manual_seed(1) +use_cuda = torch.cuda.is_available() +device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + +config_global = TacotronConfig(num_chars=32, num_speakers=5, out_channels=513, decoder_output_dim=80) + +ap = AudioProcessor(**config_global.audio) +WAV_FILE = os.path.join(get_tests_input_path(), "example_1.wav") + + +def count_parameters(model): + r"""Count number of trainable parameters in a network""" + return sum(p.numel() for p in model.parameters() if p.requires_grad) + + +class TacotronTrainTest(unittest.TestCase): + @staticmethod + def test_train_step(): + config = config_global.copy() + config.use_speaker_embedding = False + config.num_speakers = 1 + + input_dummy = torch.randint(0, 24, (8, 128)).long().to(device) + input_lengths = torch.randint(100, 129, (8,)).long().to(device) + input_lengths[-1] = 128 + mel_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + linear_spec = torch.rand(8, 30, config.audio["fft_size"] // 2 + 1).to(device) + mel_lengths = torch.randint(20, 30, (8,)).long().to(device) + mel_lengths[-1] = mel_spec.size(1) + stop_targets = torch.zeros(8, 30, 1).float().to(device) + + for idx in mel_lengths: + stop_targets[:, int(idx.item()) :, 0] = 1.0 + + stop_targets = stop_targets.view(input_dummy.shape[0], stop_targets.size(1) // config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze() + + criterion = L1LossMasked(seq_len_norm=False).to(device) + criterion_st = nn.BCEWithLogitsLoss().to(device) + model = Tacotron(config).to(device) # FIXME: missing num_speakers parameter to Tacotron ctor + model.train() + print(" > Num parameters for Tacotron model:%s" % (count_parameters(model))) + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=config.lr) + for _ in range(5): + outputs = model.forward(input_dummy, input_lengths, mel_spec, mel_lengths) + optimizer.zero_grad() + loss = criterion(outputs["decoder_outputs"], mel_spec, mel_lengths) + stop_loss = criterion_st(outputs["stop_tokens"], stop_targets) + loss = loss + criterion(outputs["model_outputs"], linear_spec, mel_lengths) + stop_loss + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + # if count not in [145, 59]: + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 + + +class MultiSpeakeTacotronTrainTest(unittest.TestCase): + @staticmethod + def test_train_step(): + config = config_global.copy() + config.use_speaker_embedding = True + config.num_speakers = 5 + + input_dummy = torch.randint(0, 24, (8, 128)).long().to(device) + input_lengths = torch.randint(100, 129, (8,)).long().to(device) + input_lengths[-1] = 128 + mel_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + linear_spec = torch.rand(8, 30, config.audio["fft_size"] // 2 + 1).to(device) + mel_lengths = torch.randint(20, 30, (8,)).long().to(device) + mel_lengths[-1] = mel_spec.size(1) + stop_targets = torch.zeros(8, 30, 1).float().to(device) + speaker_ids = torch.randint(0, 5, (8,)).long().to(device) + + for idx in mel_lengths: + stop_targets[:, int(idx.item()) :, 0] = 1.0 + + stop_targets = stop_targets.view(input_dummy.shape[0], stop_targets.size(1) // config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze() + + criterion = L1LossMasked(seq_len_norm=False).to(device) + criterion_st = nn.BCEWithLogitsLoss().to(device) + config.d_vector_dim = 55 + model = Tacotron(config).to(device) # FIXME: missing num_speakers parameter to Tacotron ctor + model.train() + print(" > Num parameters for Tacotron model:%s" % (count_parameters(model))) + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=config.lr) + for _ in range(5): + outputs = model.forward( + input_dummy, input_lengths, mel_spec, mel_lengths, aux_input={"speaker_ids": speaker_ids} + ) + optimizer.zero_grad() + loss = criterion(outputs["decoder_outputs"], mel_spec, mel_lengths) + stop_loss = criterion_st(outputs["stop_tokens"], stop_targets) + loss = loss + criterion(outputs["model_outputs"], linear_spec, mel_lengths) + stop_loss + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + # if count not in [145, 59]: + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 + + +class TacotronGSTTrainTest(unittest.TestCase): + @staticmethod + def test_train_step(): + config = config_global.copy() + config.use_speaker_embedding = True + config.num_speakers = 10 + config.use_gst = True + config.gst = GSTConfig() + # with random gst mel style + input_dummy = torch.randint(0, 24, (8, 128)).long().to(device) + input_lengths = torch.randint(100, 129, (8,)).long().to(device) + input_lengths[-1] = 128 + mel_spec = torch.rand(8, 120, config.audio["num_mels"]).to(device) + linear_spec = torch.rand(8, 120, config.audio["fft_size"] // 2 + 1).to(device) + mel_lengths = torch.randint(20, 120, (8,)).long().to(device) + mel_lengths[-1] = 120 + stop_targets = torch.zeros(8, 120, 1).float().to(device) + speaker_ids = torch.randint(0, 5, (8,)).long().to(device) + + for idx in mel_lengths: + stop_targets[:, int(idx.item()) :, 0] = 1.0 + + stop_targets = stop_targets.view(input_dummy.shape[0], stop_targets.size(1) // config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze() + + criterion = L1LossMasked(seq_len_norm=False).to(device) + criterion_st = nn.BCEWithLogitsLoss().to(device) + config.use_gst = True + config.gst = GSTConfig() + model = Tacotron(config).to(device) # FIXME: missing num_speakers parameter to Tacotron ctor + model.train() + # print(model) + print(" > Num parameters for Tacotron GST model:%s" % (count_parameters(model))) + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=config.lr) + for _ in range(10): + outputs = model.forward( + input_dummy, input_lengths, mel_spec, mel_lengths, aux_input={"speaker_ids": speaker_ids} + ) + optimizer.zero_grad() + loss = criterion(outputs["decoder_outputs"], mel_spec, mel_lengths) + stop_loss = criterion_st(outputs["stop_tokens"], stop_targets) + loss = loss + criterion(outputs["model_outputs"], linear_spec, mel_lengths) + stop_loss + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 + + # with file gst style + mel_spec = ( + torch.FloatTensor(ap.melspectrogram(ap.load_wav(WAV_FILE)))[:, :120].unsqueeze(0).transpose(1, 2).to(device) + ) + mel_spec = mel_spec.repeat(8, 1, 1) + + input_dummy = torch.randint(0, 24, (8, 128)).long().to(device) + input_lengths = torch.randint(100, 129, (8,)).long().to(device) + input_lengths[-1] = 128 + linear_spec = torch.rand(8, mel_spec.size(1), config.audio["fft_size"] // 2 + 1).to(device) + mel_lengths = torch.randint(20, mel_spec.size(1), (8,)).long().to(device) + mel_lengths[-1] = mel_spec.size(1) + stop_targets = torch.zeros(8, mel_spec.size(1), 1).float().to(device) + speaker_ids = torch.randint(0, 5, (8,)).long().to(device) + + for idx in mel_lengths: + stop_targets[:, int(idx.item()) :, 0] = 1.0 + + stop_targets = stop_targets.view(input_dummy.shape[0], stop_targets.size(1) // config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze() + + criterion = L1LossMasked(seq_len_norm=False).to(device) + criterion_st = nn.BCEWithLogitsLoss().to(device) + model = Tacotron(config).to(device) # FIXME: missing num_speakers parameter to Tacotron ctor + model.train() + # print(model) + print(" > Num parameters for Tacotron GST model:%s" % (count_parameters(model))) + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=config.lr) + for _ in range(10): + outputs = model.forward( + input_dummy, input_lengths, mel_spec, mel_lengths, aux_input={"speaker_ids": speaker_ids} + ) + optimizer.zero_grad() + loss = criterion(outputs["decoder_outputs"], mel_spec, mel_lengths) + stop_loss = criterion_st(outputs["stop_tokens"], stop_targets) + loss = loss + criterion(outputs["model_outputs"], linear_spec, mel_lengths) + stop_loss + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 + + +class TacotronCapacitronTrainTest(unittest.TestCase): + @staticmethod + def test_train_step(): + config = TacotronConfig( + num_chars=32, + num_speakers=10, + use_speaker_embedding=True, + out_channels=513, + decoder_output_dim=80, + use_capacitron_vae=True, + capacitron_vae=CapacitronVAEConfig(), + optimizer="CapacitronOptimizer", + optimizer_params={ + "RAdam": {"betas": [0.9, 0.998], "weight_decay": 1e-6}, + "SGD": {"lr": 1e-5, "momentum": 0.9}, + }, + ) + + batch = dict({}) + batch["text_input"] = torch.randint(0, 24, (8, 128)).long().to(device) + batch["text_lengths"] = torch.randint(100, 129, (8,)).long().to(device) + batch["text_lengths"] = torch.sort(batch["text_lengths"], descending=True)[0] + batch["text_lengths"][0] = 128 + batch["linear_input"] = torch.rand(8, 120, config.audio["fft_size"] // 2 + 1).to(device) + batch["mel_input"] = torch.rand(8, 120, config.audio["num_mels"]).to(device) + batch["mel_lengths"] = torch.randint(20, 120, (8,)).long().to(device) + batch["mel_lengths"] = torch.sort(batch["mel_lengths"], descending=True)[0] + batch["mel_lengths"][0] = 120 + batch["stop_targets"] = torch.zeros(8, 120, 1).float().to(device) + batch["stop_target_lengths"] = torch.randint(0, 120, (8,)).to(device) + batch["speaker_ids"] = torch.randint(0, 5, (8,)).long().to(device) + batch["d_vectors"] = None + + for idx in batch["mel_lengths"]: + batch["stop_targets"][:, int(idx.item()) :, 0] = 1.0 + + batch["stop_targets"] = batch["stop_targets"].view( + batch["text_input"].shape[0], batch["stop_targets"].size(1) // config.r, -1 + ) + batch["stop_targets"] = (batch["stop_targets"].sum(2) > 0.0).unsqueeze(2).float().squeeze() + + model = Tacotron(config).to(device) + criterion = model.get_criterion() + optimizer = model.get_optimizer() + model.train() + print(" > Num parameters for Tacotron with Capacitron VAE model:%s" % (count_parameters(model))) + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + for _ in range(10): + _, loss_dict = model.train_step(batch, criterion) + optimizer.zero_grad() + loss_dict["capacitron_vae_beta_loss"].backward() + optimizer.first_step() + loss_dict["loss"].backward() + optimizer.step() + # check parameter changes + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 + + +class SCGSTMultiSpeakeTacotronTrainTest(unittest.TestCase): + @staticmethod + def test_train_step(): + config = config_global.copy() + config.use_d_vector_file = True + + config.use_gst = True + config.gst = GSTConfig() + + input_dummy = torch.randint(0, 24, (8, 128)).long().to(device) + input_lengths = torch.randint(100, 129, (8,)).long().to(device) + input_lengths[-1] = 128 + mel_spec = torch.rand(8, 30, config.audio["num_mels"]).to(device) + linear_spec = torch.rand(8, 30, config.audio["fft_size"] // 2 + 1).to(device) + mel_lengths = torch.randint(20, 30, (8,)).long().to(device) + mel_lengths[-1] = mel_spec.size(1) + stop_targets = torch.zeros(8, 30, 1).float().to(device) + speaker_embeddings = torch.rand(8, 55).to(device) + + for idx in mel_lengths: + stop_targets[:, int(idx.item()) :, 0] = 1.0 + + stop_targets = stop_targets.view(input_dummy.shape[0], stop_targets.size(1) // config.r, -1) + stop_targets = (stop_targets.sum(2) > 0.0).unsqueeze(2).float().squeeze() + + criterion = L1LossMasked(seq_len_norm=False).to(device) + criterion_st = nn.BCEWithLogitsLoss().to(device) + config.d_vector_dim = 55 + model = Tacotron(config).to(device) # FIXME: missing num_speakers parameter to Tacotron ctor + model.train() + print(" > Num parameters for Tacotron model:%s" % (count_parameters(model))) + model_ref = copy.deepcopy(model) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=config.lr) + for _ in range(5): + outputs = model.forward( + input_dummy, input_lengths, mel_spec, mel_lengths, aux_input={"d_vectors": speaker_embeddings} + ) + optimizer.zero_grad() + loss = criterion(outputs["decoder_outputs"], mel_spec, mel_lengths) + stop_loss = criterion_st(outputs["stop_tokens"], stop_targets) + loss = loss + criterion(outputs["model_outputs"], linear_spec, mel_lengths) + stop_loss + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for name_param, param_ref in zip(model.named_parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + # if count not in [145, 59]: + name, param = name_param + if name == "gst_layer.encoder.recurrence.weight_hh_l0": + continue + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 diff --git a/Indic-TTS/TTS/tests/tts_tests/test_tacotron_train.py b/Indic-TTS/TTS/tests/tts_tests/test_tacotron_train.py new file mode 100644 index 0000000000000000000000000000000000000000..40cd2d3d726d98f206e8ed092c58d791cf8a3bea --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_tacotron_train.py @@ -0,0 +1,64 @@ +import glob +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.tacotron_config import TacotronConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = TacotronConfig( + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=False, + phoneme_language="en-us", + phoneme_cache_path=os.path.join(get_tests_output_path(), "train_outputs/phoneme_cache/"), + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + test_sentences=[ + "Be a voice, not an echo.", + ], + print_eval=True, + r=5, + max_decoder_steps=50, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") + +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_vits.py b/Indic-TTS/TTS/tests/tts_tests/test_vits.py new file mode 100644 index 0000000000000000000000000000000000000000..b9cebb5a650de9d95716a5e61fb7b5ed03b9e9e1 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_vits.py @@ -0,0 +1,576 @@ +import copy +import os +import unittest + +import torch +from trainer.logging.tensorboard_logger import TensorboardLogger + +from tests import assertHasAttr, assertHasNotAttr, get_tests_data_path, get_tests_input_path, get_tests_output_path +from TTS.config import load_config +from TTS.encoder.utils.generic_utils import setup_encoder_model +from TTS.tts.configs.vits_config import VitsConfig +from TTS.tts.models.vits import Vits, VitsArgs, amp_to_db, db_to_amp, load_audio, spec_to_mel, wav_to_mel, wav_to_spec +from TTS.tts.utils.speakers import SpeakerManager + +LANG_FILE = os.path.join(get_tests_input_path(), "language_ids.json") +SPEAKER_ENCODER_CONFIG = os.path.join(get_tests_input_path(), "test_speaker_encoder_config.json") +WAV_FILE = os.path.join(get_tests_input_path(), "example_1.wav") + + +torch.manual_seed(1) +use_cuda = torch.cuda.is_available() +device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + + +# pylint: disable=no-self-use +class TestVits(unittest.TestCase): + def test_load_audio(self): + wav, sr = load_audio(WAV_FILE) + self.assertEqual(wav.shape, (1, 41885)) + self.assertEqual(sr, 22050) + + spec = wav_to_spec(wav, n_fft=1024, hop_length=512, win_length=1024, center=False) + mel = wav_to_mel( + wav, + n_fft=1024, + num_mels=80, + sample_rate=sr, + hop_length=512, + win_length=1024, + fmin=0, + fmax=8000, + center=False, + ) + mel2 = spec_to_mel(spec, n_fft=1024, num_mels=80, sample_rate=sr, fmin=0, fmax=8000) + + self.assertEqual((mel - mel2).abs().max(), 0) + self.assertEqual(spec.shape[0], mel.shape[0]) + self.assertEqual(spec.shape[2], mel.shape[2]) + + spec_db = amp_to_db(spec) + spec_amp = db_to_amp(spec_db) + + self.assertAlmostEqual((spec - spec_amp).abs().max(), 0, delta=1e-4) + + def test_dataset(self): + """TODO:""" + ... + + def test_init_multispeaker(self): + num_speakers = 10 + args = VitsArgs(num_speakers=num_speakers, use_speaker_embedding=True) + model = Vits(args) + assertHasAttr(self, model, "emb_g") + + args = VitsArgs(num_speakers=0, use_speaker_embedding=True) + model = Vits(args) + assertHasNotAttr(self, model, "emb_g") + + args = VitsArgs(num_speakers=10, use_speaker_embedding=False) + model = Vits(args) + assertHasNotAttr(self, model, "emb_g") + + args = VitsArgs(d_vector_dim=101, use_d_vector_file=True) + model = Vits(args) + self.assertEqual(model.embedded_speaker_dim, 101) + + def test_init_multilingual(self): + args = VitsArgs(language_ids_file=None, use_language_embedding=False) + model = Vits(args) + self.assertEqual(model.language_manager, None) + self.assertEqual(model.embedded_language_dim, 0) + assertHasNotAttr(self, model, "emb_l") + + args = VitsArgs(language_ids_file=LANG_FILE) + model = Vits(args) + self.assertNotEqual(model.language_manager, None) + self.assertEqual(model.embedded_language_dim, 0) + assertHasNotAttr(self, model, "emb_l") + + args = VitsArgs(language_ids_file=LANG_FILE, use_language_embedding=True) + model = Vits(args) + self.assertNotEqual(model.language_manager, None) + self.assertEqual(model.embedded_language_dim, args.embedded_language_dim) + assertHasAttr(self, model, "emb_l") + + args = VitsArgs(language_ids_file=LANG_FILE, use_language_embedding=True, embedded_language_dim=102) + model = Vits(args) + self.assertNotEqual(model.language_manager, None) + self.assertEqual(model.embedded_language_dim, args.embedded_language_dim) + assertHasAttr(self, model, "emb_l") + + def test_get_aux_input(self): + aux_input = {"speaker_ids": None, "style_wav": None, "d_vectors": None, "language_ids": None} + args = VitsArgs() + model = Vits(args) + aux_out = model.get_aux_input(aux_input) + + speaker_id = torch.randint(10, (1,)) + language_id = torch.randint(10, (1,)) + d_vector = torch.rand(1, 128) + aux_input = {"speaker_ids": speaker_id, "style_wav": None, "d_vectors": d_vector, "language_ids": language_id} + aux_out = model.get_aux_input(aux_input) + self.assertEqual(aux_out["speaker_ids"].shape, speaker_id.shape) + self.assertEqual(aux_out["language_ids"].shape, language_id.shape) + self.assertEqual(aux_out["d_vectors"].shape, d_vector.unsqueeze(0).transpose(2, 1).shape) + + def test_voice_conversion(self): + num_speakers = 10 + spec_len = 101 + spec_effective_len = 50 + + args = VitsArgs(num_speakers=num_speakers, use_speaker_embedding=True) + model = Vits(args) + + ref_inp = torch.randn(1, 513, spec_len) + ref_inp_len = torch.randint(1, spec_effective_len, (1,)) + ref_spk_id = torch.randint(1, num_speakers, (1,)) + tgt_spk_id = torch.randint(1, num_speakers, (1,)) + o_hat, y_mask, (z, z_p, z_hat) = model.voice_conversion(ref_inp, ref_inp_len, ref_spk_id, tgt_spk_id) + + self.assertEqual(o_hat.shape, (1, 1, spec_len * 256)) + self.assertEqual(y_mask.shape, (1, 1, spec_len)) + self.assertEqual(y_mask.sum(), ref_inp_len[0]) + self.assertEqual(z.shape, (1, args.hidden_channels, spec_len)) + self.assertEqual(z_p.shape, (1, args.hidden_channels, spec_len)) + self.assertEqual(z_hat.shape, (1, args.hidden_channels, spec_len)) + + def _create_inputs(self, config, batch_size=2): + input_dummy = torch.randint(0, 24, (batch_size, 128)).long().to(device) + input_lengths = torch.randint(100, 129, (batch_size,)).long().to(device) + input_lengths[-1] = 128 + spec = torch.rand(batch_size, config.audio["fft_size"] // 2 + 1, 30).to(device) + mel = torch.rand(batch_size, config.audio["num_mels"], 30).to(device) + spec_lengths = torch.randint(20, 30, (batch_size,)).long().to(device) + spec_lengths[-1] = spec.size(2) + waveform = torch.rand(batch_size, 1, spec.size(2) * config.audio["hop_length"]).to(device) + return input_dummy, input_lengths, mel, spec, spec_lengths, waveform + + def _check_forward_outputs(self, config, output_dict, encoder_config=None, batch_size=2): + self.assertEqual( + output_dict["model_outputs"].shape[2], config.model_args.spec_segment_size * config.audio["hop_length"] + ) + self.assertEqual(output_dict["alignments"].shape, (batch_size, 128, 30)) + self.assertEqual(output_dict["alignments"].max(), 1) + self.assertEqual(output_dict["alignments"].min(), 0) + self.assertEqual(output_dict["z"].shape, (batch_size, config.model_args.hidden_channels, 30)) + self.assertEqual(output_dict["z_p"].shape, (batch_size, config.model_args.hidden_channels, 30)) + self.assertEqual(output_dict["m_p"].shape, (batch_size, config.model_args.hidden_channels, 30)) + self.assertEqual(output_dict["logs_p"].shape, (batch_size, config.model_args.hidden_channels, 30)) + self.assertEqual(output_dict["m_q"].shape, (batch_size, config.model_args.hidden_channels, 30)) + self.assertEqual(output_dict["logs_q"].shape, (batch_size, config.model_args.hidden_channels, 30)) + self.assertEqual( + output_dict["waveform_seg"].shape[2], config.model_args.spec_segment_size * config.audio["hop_length"] + ) + if encoder_config: + self.assertEqual(output_dict["gt_spk_emb"].shape, (batch_size, encoder_config.model_params["proj_dim"])) + self.assertEqual(output_dict["syn_spk_emb"].shape, (batch_size, encoder_config.model_params["proj_dim"])) + else: + self.assertEqual(output_dict["gt_spk_emb"], None) + self.assertEqual(output_dict["syn_spk_emb"], None) + + def test_forward(self): + num_speakers = 0 + config = VitsConfig(num_speakers=num_speakers, use_speaker_embedding=True) + config.model_args.spec_segment_size = 10 + input_dummy, input_lengths, _, spec, spec_lengths, waveform = self._create_inputs(config) + model = Vits(config).to(device) + output_dict = model.forward(input_dummy, input_lengths, spec, spec_lengths, waveform) + self._check_forward_outputs(config, output_dict) + + def test_multispeaker_forward(self): + num_speakers = 10 + + config = VitsConfig(num_speakers=num_speakers, use_speaker_embedding=True) + config.model_args.spec_segment_size = 10 + + input_dummy, input_lengths, _, spec, spec_lengths, waveform = self._create_inputs(config) + speaker_ids = torch.randint(0, num_speakers, (8,)).long().to(device) + + model = Vits(config).to(device) + output_dict = model.forward( + input_dummy, input_lengths, spec, spec_lengths, waveform, aux_input={"speaker_ids": speaker_ids} + ) + self._check_forward_outputs(config, output_dict) + + def test_d_vector_forward(self): + batch_size = 2 + args = VitsArgs( + spec_segment_size=10, + num_chars=32, + use_d_vector_file=True, + d_vector_dim=256, + d_vector_file=os.path.join(get_tests_data_path(), "dummy_speakers.json"), + ) + config = VitsConfig(model_args=args) + model = Vits.init_from_config(config, verbose=False).to(device) + model.train() + input_dummy, input_lengths, _, spec, spec_lengths, waveform = self._create_inputs(config, batch_size=batch_size) + d_vectors = torch.randn(batch_size, 256).to(device) + output_dict = model.forward( + input_dummy, input_lengths, spec, spec_lengths, waveform, aux_input={"d_vectors": d_vectors} + ) + self._check_forward_outputs(config, output_dict) + + def test_multilingual_forward(self): + num_speakers = 10 + num_langs = 3 + batch_size = 2 + + args = VitsArgs(language_ids_file=LANG_FILE, use_language_embedding=True, spec_segment_size=10) + config = VitsConfig(num_speakers=num_speakers, use_speaker_embedding=True, model_args=args) + + input_dummy, input_lengths, _, spec, spec_lengths, waveform = self._create_inputs(config, batch_size=batch_size) + speaker_ids = torch.randint(0, num_speakers, (batch_size,)).long().to(device) + lang_ids = torch.randint(0, num_langs, (batch_size,)).long().to(device) + + model = Vits(config).to(device) + output_dict = model.forward( + input_dummy, + input_lengths, + spec, + spec_lengths, + waveform, + aux_input={"speaker_ids": speaker_ids, "language_ids": lang_ids}, + ) + self._check_forward_outputs(config, output_dict) + + def test_secl_forward(self): + num_speakers = 10 + num_langs = 3 + batch_size = 2 + + speaker_encoder_config = load_config(SPEAKER_ENCODER_CONFIG) + speaker_encoder_config.model_params["use_torch_spec"] = True + speaker_encoder = setup_encoder_model(speaker_encoder_config).to(device) + speaker_manager = SpeakerManager() + speaker_manager.encoder = speaker_encoder + + args = VitsArgs( + language_ids_file=LANG_FILE, + use_language_embedding=True, + spec_segment_size=10, + use_speaker_encoder_as_loss=True, + ) + config = VitsConfig(num_speakers=num_speakers, use_speaker_embedding=True, model_args=args) + config.audio.sample_rate = 16000 + + input_dummy, input_lengths, _, spec, spec_lengths, waveform = self._create_inputs(config, batch_size=batch_size) + speaker_ids = torch.randint(0, num_speakers, (batch_size,)).long().to(device) + lang_ids = torch.randint(0, num_langs, (batch_size,)).long().to(device) + + model = Vits(config, speaker_manager=speaker_manager).to(device) + output_dict = model.forward( + input_dummy, + input_lengths, + spec, + spec_lengths, + waveform, + aux_input={"speaker_ids": speaker_ids, "language_ids": lang_ids}, + ) + self._check_forward_outputs(config, output_dict, speaker_encoder_config) + + def _check_inference_outputs(self, config, outputs, input_dummy, batch_size=1): + feat_len = outputs["z"].shape[2] + self.assertEqual(outputs["model_outputs"].shape[:2], (batch_size, 1)) # we don't know the channel dimension + self.assertEqual(outputs["alignments"].shape, (batch_size, input_dummy.shape[1], feat_len)) + self.assertEqual(outputs["z"].shape, (batch_size, config.model_args.hidden_channels, feat_len)) + self.assertEqual(outputs["z_p"].shape, (batch_size, config.model_args.hidden_channels, feat_len)) + self.assertEqual(outputs["m_p"].shape, (batch_size, config.model_args.hidden_channels, feat_len)) + self.assertEqual(outputs["logs_p"].shape, (batch_size, config.model_args.hidden_channels, feat_len)) + + def test_inference(self): + num_speakers = 0 + config = VitsConfig(num_speakers=num_speakers, use_speaker_embedding=True) + model = Vits(config).to(device) + + batch_size = 1 + input_dummy, *_ = self._create_inputs(config, batch_size=batch_size) + outputs = model.inference(input_dummy) + self._check_inference_outputs(config, outputs, input_dummy, batch_size=batch_size) + + batch_size = 2 + input_dummy, input_lengths, *_ = self._create_inputs(config, batch_size=batch_size) + outputs = model.inference(input_dummy, aux_input={"x_lengths": input_lengths}) + self._check_inference_outputs(config, outputs, input_dummy, batch_size=batch_size) + + def test_multispeaker_inference(self): + num_speakers = 10 + config = VitsConfig(num_speakers=num_speakers, use_speaker_embedding=True) + model = Vits(config).to(device) + + batch_size = 1 + input_dummy, *_ = self._create_inputs(config, batch_size=batch_size) + speaker_ids = torch.randint(0, num_speakers, (batch_size,)).long().to(device) + outputs = model.inference(input_dummy, {"speaker_ids": speaker_ids}) + self._check_inference_outputs(config, outputs, input_dummy, batch_size=batch_size) + + batch_size = 2 + input_dummy, input_lengths, *_ = self._create_inputs(config, batch_size=batch_size) + speaker_ids = torch.randint(0, num_speakers, (batch_size,)).long().to(device) + outputs = model.inference(input_dummy, {"x_lengths": input_lengths, "speaker_ids": speaker_ids}) + self._check_inference_outputs(config, outputs, input_dummy, batch_size=batch_size) + + def test_multilingual_inference(self): + num_speakers = 10 + num_langs = 3 + args = VitsArgs(language_ids_file=LANG_FILE, use_language_embedding=True, spec_segment_size=10) + config = VitsConfig(num_speakers=num_speakers, use_speaker_embedding=True, model_args=args) + model = Vits(config).to(device) + + input_dummy = torch.randint(0, 24, (1, 128)).long().to(device) + speaker_ids = torch.randint(0, num_speakers, (1,)).long().to(device) + lang_ids = torch.randint(0, num_langs, (1,)).long().to(device) + _ = model.inference(input_dummy, {"speaker_ids": speaker_ids, "language_ids": lang_ids}) + + batch_size = 1 + input_dummy, *_ = self._create_inputs(config, batch_size=batch_size) + speaker_ids = torch.randint(0, num_speakers, (batch_size,)).long().to(device) + lang_ids = torch.randint(0, num_langs, (batch_size,)).long().to(device) + outputs = model.inference(input_dummy, {"speaker_ids": speaker_ids, "language_ids": lang_ids}) + self._check_inference_outputs(config, outputs, input_dummy, batch_size=batch_size) + + batch_size = 2 + input_dummy, input_lengths, *_ = self._create_inputs(config, batch_size=batch_size) + speaker_ids = torch.randint(0, num_speakers, (batch_size,)).long().to(device) + lang_ids = torch.randint(0, num_langs, (batch_size,)).long().to(device) + outputs = model.inference( + input_dummy, {"x_lengths": input_lengths, "speaker_ids": speaker_ids, "language_ids": lang_ids} + ) + self._check_inference_outputs(config, outputs, input_dummy, batch_size=batch_size) + + def test_d_vector_inference(self): + args = VitsArgs( + spec_segment_size=10, + num_chars=32, + use_d_vector_file=True, + d_vector_dim=256, + d_vector_file=os.path.join(get_tests_data_path(), "dummy_speakers.json"), + ) + config = VitsConfig(model_args=args) + model = Vits.init_from_config(config, verbose=False).to(device) + model.eval() + # batch size = 1 + input_dummy = torch.randint(0, 24, (1, 128)).long().to(device) + d_vectors = torch.randn(1, 256).to(device) + outputs = model.inference(input_dummy, aux_input={"d_vectors": d_vectors}) + self._check_inference_outputs(config, outputs, input_dummy) + # batch size = 2 + input_dummy, input_lengths, *_ = self._create_inputs(config) + d_vectors = torch.randn(2, 256).to(device) + outputs = model.inference(input_dummy, aux_input={"x_lengths": input_lengths, "d_vectors": d_vectors}) + self._check_inference_outputs(config, outputs, input_dummy, batch_size=2) + + @staticmethod + def _check_parameter_changes(model, model_ref): + count = 0 + for item1, item2 in zip(model.named_parameters(), model_ref.named_parameters()): + name = item1[0] + param = item1[1] + param_ref = item2[1] + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + name, param.shape, param, param_ref + ) + count = count + 1 + + def _create_batch(self, config, batch_size): + input_dummy, input_lengths, mel, spec, mel_lengths, _ = self._create_inputs(config, batch_size) + batch = {} + batch["tokens"] = input_dummy + batch["token_lens"] = input_lengths + batch["spec_lens"] = mel_lengths + batch["mel_lens"] = mel_lengths + batch["spec"] = spec + batch["mel"] = mel + batch["waveform"] = torch.rand(batch_size, 1, config.audio["sample_rate"] * 10).to(device) + batch["d_vectors"] = None + batch["speaker_ids"] = None + batch["language_ids"] = None + return batch + + def test_train_step(self): + # setup the model + with torch.autograd.set_detect_anomaly(True): + + config = VitsConfig(model_args=VitsArgs(num_chars=32, spec_segment_size=10)) + model = Vits(config).to(device) + model.train() + # model to train + optimizers = model.get_optimizer() + criterions = model.get_criterion() + criterions = [criterions[0].to(device), criterions[1].to(device)] + # reference model to compare model weights + model_ref = Vits(config).to(device) + # # pass the state to ref model + model_ref.load_state_dict(copy.deepcopy(model.state_dict())) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count = count + 1 + for _ in range(5): + batch = self._create_batch(config, 2) + for idx in [0, 1]: + outputs, loss_dict = model.train_step(batch, criterions, idx) + self.assertFalse(not outputs) + self.assertFalse(not loss_dict) + loss_dict["loss"].backward() + optimizers[idx].step() + optimizers[idx].zero_grad() + + # check parameter changes + self._check_parameter_changes(model, model_ref) + + def test_train_step_upsampling(self): + # setup the model + with torch.autograd.set_detect_anomaly(True): + model_args = VitsArgs( + num_chars=32, + spec_segment_size=10, + encoder_sample_rate=11025, + interpolate_z=False, + upsample_rates_decoder=[8, 8, 4, 2], + ) + config = VitsConfig(model_args=model_args) + model = Vits(config).to(device) + model.train() + # model to train + optimizers = model.get_optimizer() + criterions = model.get_criterion() + criterions = [criterions[0].to(device), criterions[1].to(device)] + # reference model to compare model weights + model_ref = Vits(config).to(device) + # # pass the state to ref model + model_ref.load_state_dict(copy.deepcopy(model.state_dict())) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count = count + 1 + for _ in range(5): + batch = self._create_batch(config, 2) + for idx in [0, 1]: + outputs, loss_dict = model.train_step(batch, criterions, idx) + self.assertFalse(not outputs) + self.assertFalse(not loss_dict) + loss_dict["loss"].backward() + optimizers[idx].step() + optimizers[idx].zero_grad() + + # check parameter changes + self._check_parameter_changes(model, model_ref) + + def test_train_step_upsampling_interpolation(self): + # setup the model + with torch.autograd.set_detect_anomaly(True): + model_args = VitsArgs(num_chars=32, spec_segment_size=10, encoder_sample_rate=11025, interpolate_z=True) + config = VitsConfig(model_args=model_args) + model = Vits(config).to(device) + model.train() + # model to train + optimizers = model.get_optimizer() + criterions = model.get_criterion() + criterions = [criterions[0].to(device), criterions[1].to(device)] + # reference model to compare model weights + model_ref = Vits(config).to(device) + # # pass the state to ref model + model_ref.load_state_dict(copy.deepcopy(model.state_dict())) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count = count + 1 + for _ in range(5): + batch = self._create_batch(config, 2) + for idx in [0, 1]: + outputs, loss_dict = model.train_step(batch, criterions, idx) + self.assertFalse(not outputs) + self.assertFalse(not loss_dict) + loss_dict["loss"].backward() + optimizers[idx].step() + optimizers[idx].zero_grad() + + # check parameter changes + self._check_parameter_changes(model, model_ref) + + def test_train_eval_log(self): + batch_size = 2 + config = VitsConfig(model_args=VitsArgs(num_chars=32, spec_segment_size=10)) + model = Vits.init_from_config(config, verbose=False).to(device) + model.run_data_dep_init = False + model.train() + batch = self._create_batch(config, batch_size) + logger = TensorboardLogger( + log_dir=os.path.join(get_tests_output_path(), "dummy_vits_logs"), model_name="vits_test_train_log" + ) + criterion = model.get_criterion() + criterion = [criterion[0].to(device), criterion[1].to(device)] + outputs = [None] * 2 + outputs[0], _ = model.train_step(batch, criterion, 0) + outputs[1], _ = model.train_step(batch, criterion, 1) + model.train_log(batch, outputs, logger, None, 1) + + model.eval_log(batch, outputs, logger, None, 1) + logger.finish() + + def test_test_run(self): + config = VitsConfig(model_args=VitsArgs(num_chars=32)) + model = Vits.init_from_config(config, verbose=False).to(device) + model.run_data_dep_init = False + model.eval() + test_figures, test_audios = model.test_run(None) + self.assertTrue(test_figures is not None) + self.assertTrue(test_audios is not None) + + def test_load_checkpoint(self): + chkp_path = os.path.join(get_tests_output_path(), "dummy_glow_tts_checkpoint.pth") + config = VitsConfig(VitsArgs(num_chars=32)) + model = Vits.init_from_config(config, verbose=False).to(device) + chkp = {} + chkp["model"] = model.state_dict() + torch.save(chkp, chkp_path) + model.load_checkpoint(config, chkp_path) + self.assertTrue(model.training) + model.load_checkpoint(config, chkp_path, eval=True) + self.assertFalse(model.training) + + def test_get_criterion(self): + config = VitsConfig(VitsArgs(num_chars=32)) + model = Vits.init_from_config(config, verbose=False).to(device) + criterion = model.get_criterion() + self.assertTrue(criterion is not None) + + def test_init_from_config(self): + config = VitsConfig(model_args=VitsArgs(num_chars=32)) + model = Vits.init_from_config(config, verbose=False).to(device) + + config = VitsConfig(model_args=VitsArgs(num_chars=32, num_speakers=2)) + model = Vits.init_from_config(config, verbose=False).to(device) + self.assertTrue(not hasattr(model, "emb_g")) + + config = VitsConfig(model_args=VitsArgs(num_chars=32, num_speakers=2, use_speaker_embedding=True)) + model = Vits.init_from_config(config, verbose=False).to(device) + self.assertEqual(model.num_speakers, 2) + self.assertTrue(hasattr(model, "emb_g")) + + config = VitsConfig( + model_args=VitsArgs( + num_chars=32, + num_speakers=2, + use_speaker_embedding=True, + speakers_file=os.path.join(get_tests_data_path(), "ljspeech", "speakers.json"), + ) + ) + model = Vits.init_from_config(config, verbose=False).to(device) + self.assertEqual(model.num_speakers, 10) + self.assertTrue(hasattr(model, "emb_g")) + + config = VitsConfig( + model_args=VitsArgs( + num_chars=32, + use_d_vector_file=True, + d_vector_dim=256, + d_vector_file=os.path.join(get_tests_data_path(), "dummy_speakers.json"), + ) + ) + model = Vits.init_from_config(config, verbose=False).to(device) + self.assertTrue(model.num_speakers == 1) + self.assertTrue(not hasattr(model, "emb_g")) + self.assertTrue(model.embedded_speaker_dim == config.d_vector_dim) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_vits_d-vectors_train.py b/Indic-TTS/TTS/tests/tts_tests/test_vits_d-vectors_train.py new file mode 100644 index 0000000000000000000000000000000000000000..5fd9cbc1bdc3cbcb834c1ef0b7ec0cc29cd9c92d --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_vits_d-vectors_train.py @@ -0,0 +1,61 @@ +import glob +import os +import shutil + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.vits_config import VitsConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = VitsConfig( + batch_size=2, + eval_batch_size=2, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + ["Be a voice, not an echo.", "ljspeech-0"], + ], +) +# set audio config +config.audio.do_trim_silence = True +config.audio.trim_db = 60 + +# active multispeaker d-vec mode +config.model_args.use_d_vector_file = True +config.model_args.d_vector_file = "tests/data/ljspeech/speakers.json" +config.model_args.d_vector_dim = 256 + + +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.datasets.0.meta_file_attn_mask tests/data/ljspeech/metadata_attn_mask.txt " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_vits_multilingual_speaker_emb_train.py b/Indic-TTS/TTS/tests/tts_tests/test_vits_multilingual_speaker_emb_train.py new file mode 100644 index 0000000000000000000000000000000000000000..683bb0a7ff716688a5796b699eab2e2876080886 --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_vits_multilingual_speaker_emb_train.py @@ -0,0 +1,110 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.config.shared_configs import BaseDatasetConfig +from TTS.tts.configs.vits_config import VitsConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +dataset_config_en = BaseDatasetConfig( + name="ljspeech", + meta_file_train="metadata.csv", + meta_file_val="metadata.csv", + path="tests/data/ljspeech", + language="en", +) + +dataset_config_pt = BaseDatasetConfig( + name="ljspeech", + meta_file_train="metadata.csv", + meta_file_val="metadata.csv", + path="tests/data/ljspeech", + language="pt-br", +) + +config = VitsConfig( + batch_size=2, + eval_batch_size=2, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + ["Be a voice, not an echo.", "ljspeech", None, "en"], + ["Be a voice, not an echo.", "ljspeech", None, "pt-br"], + ], + datasets=[dataset_config_en, dataset_config_pt], +) +# set audio config +config.audio.do_trim_silence = True +config.audio.trim_db = 60 + +# active multilingual mode +config.model_args.use_language_embedding = True +config.use_language_embedding = True +# active multispeaker mode +config.model_args.use_speaker_embedding = True +config.use_speaker_embedding = True + +# deactivate multispeaker d-vec mode +config.model_args.use_d_vector_file = False +config.use_d_vector_file = False + +# duration predictor +config.model_args.use_sdp = False +config.use_sdp = False + +# active language sampler +config.use_language_weighted_sampler = True + +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") +speaker_id = "ljspeech" +languae_id = "en" +continue_speakers_path = os.path.join(continue_path, "speakers.json") +continue_languages_path = os.path.join(continue_path, "language_ids.json") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --speaker_idx {speaker_id} --speakers_file_path {continue_speakers_path} --language_ids_file_path {continue_languages_path} --language_idx {languae_id} --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_vits_multilingual_train-d_vectors.py b/Indic-TTS/TTS/tests/tts_tests/test_vits_multilingual_train-d_vectors.py new file mode 100644 index 0000000000000000000000000000000000000000..e4a82cdddcde25474918cff151a05ca26920bf8b --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_vits_multilingual_train-d_vectors.py @@ -0,0 +1,117 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.config.shared_configs import BaseDatasetConfig +from TTS.tts.configs.vits_config import VitsConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +dataset_config_en = BaseDatasetConfig( + name="ljspeech_test", + meta_file_train="metadata.csv", + meta_file_val="metadata.csv", + path="tests/data/ljspeech", + language="en", +) + +dataset_config_pt = BaseDatasetConfig( + name="ljspeech_test", + meta_file_train="metadata.csv", + meta_file_val="metadata.csv", + path="tests/data/ljspeech", + language="pt-br", +) + +config = VitsConfig( + batch_size=2, + eval_batch_size=2, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="multilingual_cleaners", + use_phonemes=False, + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + ["Be a voice, not an echo.", "ljspeech-0", None, "en"], + ["Be a voice, not an echo.", "ljspeech-1", None, "pt-br"], + ], + datasets=[dataset_config_en, dataset_config_en, dataset_config_en, dataset_config_pt], +) +# set audio config +config.audio.do_trim_silence = True +config.audio.trim_db = 60 + +# active multilingual mode +config.model_args.use_language_embedding = True +config.use_language_embedding = True + +# deactivate multispeaker mode +config.model_args.use_speaker_embedding = False +config.use_speaker_embedding = False + +# active multispeaker d-vec mode +config.model_args.use_d_vector_file = True +config.use_d_vector_file = True +config.model_args.d_vector_file = "tests/data/ljspeech/speakers.json" +config.d_vector_file = "tests/data/ljspeech/speakers.json" +config.model_args.d_vector_dim = 256 +config.d_vector_dim = 256 + +# duration predictor +config.model_args.use_sdp = True +config.use_sdp = True + +# activate language and speaker samplers +config.use_language_weighted_sampler = True +config.language_weighted_sampler_alpha = 10 +config.use_speaker_weighted_sampler = True +config.speaker_weighted_sampler_alpha = 5 + +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") +speaker_id = "ljspeech-1" +languae_id = "en" +continue_speakers_path = config.d_vector_file +continue_languages_path = os.path.join(continue_path, "language_ids.json") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --speaker_idx {speaker_id} --speakers_file_path {continue_speakers_path} --language_ids_file_path {continue_languages_path} --language_idx {languae_id} --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_vits_speaker_emb_train.py b/Indic-TTS/TTS/tests/tts_tests/test_vits_speaker_emb_train.py new file mode 100644 index 0000000000000000000000000000000000000000..48597241c82a94f402593d89f91acbb69dabf7be --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_vits_speaker_emb_train.py @@ -0,0 +1,83 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.vits_config import VitsConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = VitsConfig( + batch_size=2, + eval_batch_size=2, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + ["Be a voice, not an echo.", "ljspeech-1"], + ], +) +# set audio config +config.audio.do_trim_silence = True +config.audio.trim_db = 60 + +# active multispeaker d-vec mode +config.model_args.use_speaker_embedding = True +config.model_args.use_d_vector_file = False +config.model_args.d_vector_file = None +config.model_args.d_vector_dim = 256 + + +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech_test " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.datasets.0.meta_file_attn_mask tests/data/ljspeech/metadata_attn_mask.txt " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") +speaker_id = "ljspeech-1" +continue_speakers_path = os.path.join(continue_path, "speakers.json") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --speaker_idx {speaker_id} --speakers_file_path {continue_speakers_path} --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/tts_tests/test_vits_train.py b/Indic-TTS/TTS/tests/tts_tests/test_vits_train.py new file mode 100644 index 0000000000000000000000000000000000000000..64ff63f344132fde32799aa742e9a8c7a51353aa --- /dev/null +++ b/Indic-TTS/TTS/tests/tts_tests/test_vits_train.py @@ -0,0 +1,72 @@ +import glob +import json +import os +import shutil + +from trainer import get_last_checkpoint + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.tts.configs.vits_config import VitsConfig + +config_path = os.path.join(get_tests_output_path(), "test_model_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = VitsConfig( + batch_size=2, + eval_batch_size=2, + num_loader_workers=0, + num_eval_loader_workers=0, + text_cleaner="english_cleaners", + use_phonemes=True, + phoneme_language="en-us", + phoneme_cache_path="tests/data/ljspeech/phoneme_cache/", + run_eval=True, + test_delay_epochs=-1, + epochs=1, + print_step=1, + print_eval=True, + test_sentences=[ + ["Be a voice, not an echo."], + ], +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --config_path {config_path} " + f"--coqpit.output_path {output_path} " + "--coqpit.datasets.0.name ljspeech " + "--coqpit.datasets.0.meta_file_train metadata.csv " + "--coqpit.datasets.0.meta_file_val metadata.csv " + "--coqpit.datasets.0.path tests/data/ljspeech " + "--coqpit.datasets.0.meta_file_attn_mask tests/data/ljspeech/metadata_attn_mask.txt " + "--coqpit.test_delay_epochs 0" +) +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# Inference using TTS API +continue_config_path = os.path.join(continue_path, "config.json") +continue_restore_path, _ = get_last_checkpoint(continue_path) +out_wav_path = os.path.join(get_tests_output_path(), "output.wav") + +# Check integrity of the config +with open(continue_config_path, "r", encoding="utf-8") as f: + config_loaded = json.load(f) +assert config_loaded["characters"] is not None +assert config_loaded["output_path"] in continue_path +assert config_loaded["test_delay_epochs"] == 0 + +# Load the model and run inference +inference_command = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' tts --text 'This is an example.' --config_path {continue_config_path} --model_path {continue_restore_path} --out_path {out_wav_path}" +run_cli(inference_command) + +# restore the model and continue training for one more epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_tts.py --continue_path {continue_path} " +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/__init__.py b/Indic-TTS/TTS/tests/vocoder_tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_fullband_melgan_train.py b/Indic-TTS/TTS/tests/vocoder_tests/test_fullband_melgan_train.py new file mode 100644 index 0000000000000000000000000000000000000000..9d4e193382eb5b1638e70a53fa17a33796870339 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_fullband_melgan_train.py @@ -0,0 +1,43 @@ +import glob +import os +import shutil + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.vocoder.configs import FullbandMelganConfig + +config_path = os.path.join(get_tests_output_path(), "test_vocoder_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +config = FullbandMelganConfig( + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + run_eval=True, + test_delay_epochs=-1, + epochs=1, + seq_len=8192, + eval_split_size=1, + print_step=1, + print_eval=True, + data_path="tests/data/ljspeech", + discriminator_model_params={"base_channels": 16, "max_channels": 64, "downsample_factors": [4, 4, 4]}, + output_path=output_path, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --config_path {config_path} " +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# restore the model and continue training for one more epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --continue_path {continue_path} " +) +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_hifigan_train.py b/Indic-TTS/TTS/tests/vocoder_tests/test_hifigan_train.py new file mode 100644 index 0000000000000000000000000000000000000000..c506fb48dca4dd71eb439489e0af5275b565a8a1 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_hifigan_train.py @@ -0,0 +1,43 @@ +import glob +import os +import shutil + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.vocoder.configs import HifiganConfig + +config_path = os.path.join(get_tests_output_path(), "test_vocoder_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = HifiganConfig( + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + run_eval=True, + test_delay_epochs=-1, + epochs=1, + seq_len=1024, + eval_split_size=1, + print_step=1, + print_eval=True, + data_path="tests/data/ljspeech", + output_path=output_path, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --config_path {config_path} " +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# restore the model and continue training for one more epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --continue_path {continue_path} " +) +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_melgan_train.py b/Indic-TTS/TTS/tests/vocoder_tests/test_melgan_train.py new file mode 100644 index 0000000000000000000000000000000000000000..6ef9cd495b022f8d01d4c2ed6cd2667e1b1894ce --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_melgan_train.py @@ -0,0 +1,43 @@ +import glob +import os +import shutil + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.vocoder.configs import MelganConfig + +config_path = os.path.join(get_tests_output_path(), "test_vocoder_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +config = MelganConfig( + batch_size=4, + eval_batch_size=4, + num_loader_workers=0, + num_eval_loader_workers=0, + run_eval=True, + test_delay_epochs=-1, + epochs=1, + seq_len=2048, + eval_split_size=1, + print_step=1, + discriminator_model_params={"base_channels": 16, "max_channels": 64, "downsample_factors": [4, 4, 4]}, + print_eval=True, + data_path="tests/data/ljspeech", + output_path=output_path, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --config_path {config_path} " +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# restore the model and continue training for one more epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --continue_path {continue_path} " +) +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_multiband_melgan_train.py b/Indic-TTS/TTS/tests/vocoder_tests/test_multiband_melgan_train.py new file mode 100644 index 0000000000000000000000000000000000000000..8002760706d1687fb7cb5e33107cc84add71a51a --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_multiband_melgan_train.py @@ -0,0 +1,44 @@ +import glob +import os +import shutil + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.vocoder.configs import MultibandMelganConfig + +config_path = os.path.join(get_tests_output_path(), "test_vocoder_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +config = MultibandMelganConfig( + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + run_eval=True, + test_delay_epochs=-1, + epochs=1, + seq_len=8192, + eval_split_size=1, + print_step=1, + print_eval=True, + steps_to_start_discriminator=1, + data_path="tests/data/ljspeech", + discriminator_model_params={"base_channels": 16, "max_channels": 64, "downsample_factors": [4, 4, 4]}, + output_path=output_path, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --config_path {config_path} " +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# restore the model and continue training for one more epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --continue_path {continue_path} " +) +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_parallel_wavegan_train.py b/Indic-TTS/TTS/tests/vocoder_tests/test_parallel_wavegan_train.py new file mode 100644 index 0000000000000000000000000000000000000000..a126befe2e24cb67500bc6ee5b7450acfee5369b --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_parallel_wavegan_train.py @@ -0,0 +1,42 @@ +import glob +import os +import shutil + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.vocoder.configs import ParallelWaveganConfig + +config_path = os.path.join(get_tests_output_path(), "test_vocoder_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +config = ParallelWaveganConfig( + batch_size=4, + eval_batch_size=4, + num_loader_workers=0, + num_eval_loader_workers=0, + run_eval=True, + test_delay_epochs=-1, + epochs=1, + seq_len=2048, + eval_split_size=1, + print_step=1, + print_eval=True, + data_path="tests/data/ljspeech", + output_path=output_path, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --config_path {config_path} " +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# restore the model and continue training for one more epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --continue_path {continue_path} " +) +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_gan_datasets.py b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_gan_datasets.py new file mode 100644 index 0000000000000000000000000000000000000000..c39d70e94c5b9f55f6261c3987db38df65ea136f --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_gan_datasets.py @@ -0,0 +1,109 @@ +import os + +import numpy as np +from torch.utils.data import DataLoader + +from tests import get_tests_output_path, get_tests_path +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.configs import BaseGANVocoderConfig +from TTS.vocoder.datasets.gan_dataset import GANDataset +from TTS.vocoder.datasets.preprocess import load_wav_data + +file_path = os.path.dirname(os.path.realpath(__file__)) +OUTPATH = os.path.join(get_tests_output_path(), "loader_tests/") +os.makedirs(OUTPATH, exist_ok=True) + +C = BaseGANVocoderConfig() + +test_data_path = os.path.join(get_tests_path(), "data/ljspeech/") +ok_ljspeech = os.path.exists(test_data_path) + + +def gan_dataset_case( + batch_size, seq_len, hop_len, conv_pad, return_pairs, return_segments, use_noise_augment, use_cache, num_workers +): + """Run dataloader with given parameters and check conditions""" + ap = AudioProcessor(**C.audio) + _, train_items = load_wav_data(test_data_path, 10) + dataset = GANDataset( + ap, + train_items, + seq_len=seq_len, + hop_len=hop_len, + pad_short=2000, + conv_pad=conv_pad, + return_pairs=return_pairs, + return_segments=return_segments, + use_noise_augment=use_noise_augment, + use_cache=use_cache, + ) + loader = DataLoader( + dataset=dataset, batch_size=batch_size, shuffle=True, num_workers=num_workers, pin_memory=True, drop_last=True + ) + + max_iter = 10 + count_iter = 0 + + def check_item(feat, wav): + """Pass a single pair of features and waveform""" + feat = feat.numpy() + wav = wav.numpy() + expected_feat_shape = (batch_size, ap.num_mels, seq_len // hop_len + conv_pad * 2) + + # check shapes + assert np.all(feat.shape == expected_feat_shape), f" [!] {feat.shape} vs {expected_feat_shape}" + assert (feat.shape[2] - conv_pad * 2) * hop_len == wav.shape[2] + + # check feature vs audio match + if not use_noise_augment: + for idx in range(batch_size): + audio = wav[idx].squeeze() + feat = feat[idx] + mel = ap.melspectrogram(audio) + # the first 2 and the last 2 frames are skipped due to the padding + # differences in stft + max_diff = abs((feat - mel[:, : feat.shape[-1]])[:, 2:-2]).max() + assert max_diff <= 1e-6, f" [!] {max_diff}" + + # return random segments or return the whole audio + if return_segments: + if return_pairs: + for item1, item2 in loader: + feat1, wav1 = item1 + feat2, wav2 = item2 + check_item(feat1, wav1) + check_item(feat2, wav2) + count_iter += 1 + else: + for item1 in loader: + feat1, wav1 = item1 + check_item(feat1, wav1) + count_iter += 1 + else: + for item in loader: + feat, wav = item + expected_feat_shape = (batch_size, ap.num_mels, (wav.shape[-1] // hop_len) + (conv_pad * 2)) + assert np.all(feat.shape == expected_feat_shape), f" [!] {feat.shape} vs {expected_feat_shape}" + assert (feat.shape[2] - conv_pad * 2) * hop_len == wav.shape[2] + count_iter += 1 + if count_iter == max_iter: + break + + +def test_parametrized_gan_dataset(): + """test dataloader with different parameters""" + params = [ + [32, C.audio["hop_length"] * 10, C.audio["hop_length"], 0, True, True, False, True, 0], + [32, C.audio["hop_length"] * 10, C.audio["hop_length"], 0, True, True, False, True, 4], + [1, C.audio["hop_length"] * 10, C.audio["hop_length"], 0, True, True, True, True, 0], + [1, C.audio["hop_length"], C.audio["hop_length"], 0, True, True, True, True, 0], + [1, C.audio["hop_length"] * 10, C.audio["hop_length"], 2, True, True, True, True, 0], + [1, C.audio["hop_length"] * 10, C.audio["hop_length"], 0, True, False, True, True, 0], + [1, C.audio["hop_length"] * 10, C.audio["hop_length"], 0, True, True, False, True, 0], + [1, C.audio["hop_length"] * 10, C.audio["hop_length"], 0, False, True, True, False, 0], + [1, C.audio["hop_length"] * 10, C.audio["hop_length"], 0, True, False, False, False, 0], + [1, C.audio["hop_length"] * 10, C.audio["hop_length"], 0, True, False, False, False, 0], + ] + for param in params: + print(param) + gan_dataset_case(*param) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_losses.py b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_losses.py new file mode 100644 index 0000000000000000000000000000000000000000..2a35aa2e3717ee7332e1a3926736971c3c97a090 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_losses.py @@ -0,0 +1,92 @@ +import os + +import torch + +from tests import get_tests_input_path, get_tests_output_path, get_tests_path +from TTS.config import BaseAudioConfig +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.layers.losses import MelganFeatureLoss, MultiScaleSTFTLoss, STFTLoss, TorchSTFT + +TESTS_PATH = get_tests_path() + +OUT_PATH = os.path.join(get_tests_output_path(), "audio_tests") +os.makedirs(OUT_PATH, exist_ok=True) + +WAV_FILE = os.path.join(get_tests_input_path(), "example_1.wav") + +ap = AudioProcessor(**BaseAudioConfig().to_dict()) + + +def test_torch_stft(): + torch_stft = TorchSTFT(ap.fft_size, ap.hop_length, ap.win_length) + # librosa stft + wav = ap.load_wav(WAV_FILE) + M_librosa = abs(ap._stft(wav)) # pylint: disable=protected-access + # torch stft + wav = torch.from_numpy(wav[None, :]).float() + M_torch = torch_stft(wav) + # check the difference b/w librosa and torch outputs + assert (M_librosa - M_torch[0].data.numpy()).max() < 1e-5 + + +def test_stft_loss(): + stft_loss = STFTLoss(ap.fft_size, ap.hop_length, ap.win_length) + wav = ap.load_wav(WAV_FILE) + wav = torch.from_numpy(wav[None, :]).float() + loss_m, loss_sc = stft_loss(wav, wav) + assert loss_m + loss_sc == 0 + loss_m, loss_sc = stft_loss(wav, torch.rand_like(wav)) + assert loss_sc < 1.0 + assert loss_m + loss_sc > 0 + + +def test_multiscale_stft_loss(): + stft_loss = MultiScaleSTFTLoss( + [ap.fft_size // 2, ap.fft_size, ap.fft_size * 2], + [ap.hop_length // 2, ap.hop_length, ap.hop_length * 2], + [ap.win_length // 2, ap.win_length, ap.win_length * 2], + ) + wav = ap.load_wav(WAV_FILE) + wav = torch.from_numpy(wav[None, :]).float() + loss_m, loss_sc = stft_loss(wav, wav) + assert loss_m + loss_sc == 0 + loss_m, loss_sc = stft_loss(wav, torch.rand_like(wav)) + assert loss_sc < 1.0 + assert loss_m + loss_sc > 0 + + +def test_melgan_feature_loss(): + feats_real = [] + feats_fake = [] + + # if all the features are different. + for _ in range(5): # different scales + scale_feats_real = [] + scale_feats_fake = [] + for _ in range(4): # different layers + scale_feats_real.append(torch.rand([3, 5, 7])) + scale_feats_fake.append(torch.rand([3, 5, 7])) + feats_real.append(scale_feats_real) + feats_fake.append(scale_feats_fake) + + loss_func = MelganFeatureLoss() + loss = loss_func(feats_fake, feats_real) + assert loss.item() <= 1.0 + + feats_real = [] + feats_fake = [] + + # if all the features are the same + for _ in range(5): # different scales + scale_feats_real = [] + scale_feats_fake = [] + for _ in range(4): # different layers + tensor = torch.rand([3, 5, 7]) + scale_feats_real.append(tensor) + scale_feats_fake.append(tensor) + feats_real.append(scale_feats_real) + feats_fake.append(scale_feats_fake) + + loss_func = MelganFeatureLoss() + loss = loss_func(feats_fake, feats_real) + assert loss.item() == 0 diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_melgan_discriminator.py b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_melgan_discriminator.py new file mode 100644 index 0000000000000000000000000000000000000000..a4564b5654255ff9cab6ee082b9c74e38d20b2c3 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_melgan_discriminator.py @@ -0,0 +1,26 @@ +import numpy as np +import torch + +from TTS.vocoder.models.melgan_discriminator import MelganDiscriminator +from TTS.vocoder.models.melgan_multiscale_discriminator import MelganMultiscaleDiscriminator + + +def test_melgan_discriminator(): + model = MelganDiscriminator() + print(model) + dummy_input = torch.rand((4, 1, 256 * 10)) + output, _ = model(dummy_input) + assert np.all(output.shape == (4, 1, 10)) + + +def test_melgan_multi_scale_discriminator(): + model = MelganMultiscaleDiscriminator() + print(model) + dummy_input = torch.rand((4, 1, 256 * 16)) + scores, feats = model(dummy_input) + assert len(scores) == 3 + assert len(scores) == len(feats) + assert np.all(scores[0].shape == (4, 1, 64)) + assert np.all(feats[0][0].shape == (4, 16, 4096)) + assert np.all(feats[0][1].shape == (4, 64, 1024)) + assert np.all(feats[0][2].shape == (4, 256, 256)) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_melgan_generator.py b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_melgan_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..f4958de427ece20296adbcec54441455de997518 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_melgan_generator.py @@ -0,0 +1,14 @@ +import numpy as np +import torch + +from TTS.vocoder.models.melgan_generator import MelganGenerator + + +def test_melgan_generator(): + model = MelganGenerator() + print(model) + dummy_input = torch.rand((4, 80, 64)) + output = model(dummy_input) + assert np.all(output.shape == (4, 1, 64 * 256)) + output = model.inference(dummy_input) + assert np.all(output.shape == (4, 1, (64 + 4) * 256)) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_parallel_wavegan_discriminator.py b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_parallel_wavegan_discriminator.py new file mode 100644 index 0000000000000000000000000000000000000000..d4eca0d1374fb5cabf111cb52cf249969392bad4 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_parallel_wavegan_discriminator.py @@ -0,0 +1,46 @@ +import numpy as np +import torch + +from TTS.vocoder.models.parallel_wavegan_discriminator import ( + ParallelWaveganDiscriminator, + ResidualParallelWaveganDiscriminator, +) + + +def test_pwgan_disciminator(): + model = ParallelWaveganDiscriminator( + in_channels=1, + out_channels=1, + kernel_size=3, + num_layers=10, + conv_channels=64, + dilation_factor=1, + nonlinear_activation="LeakyReLU", + nonlinear_activation_params={"negative_slope": 0.2}, + bias=True, + ) + dummy_x = torch.rand((4, 1, 64 * 256)) + output = model(dummy_x) + assert np.all(output.shape == (4, 1, 64 * 256)) + model.remove_weight_norm() + + +def test_redisual_pwgan_disciminator(): + model = ResidualParallelWaveganDiscriminator( + in_channels=1, + out_channels=1, + kernel_size=3, + num_layers=30, + stacks=3, + res_channels=64, + gate_channels=128, + skip_channels=64, + dropout=0.0, + bias=True, + nonlinear_activation="LeakyReLU", + nonlinear_activation_params={"negative_slope": 0.2}, + ) + dummy_x = torch.rand((4, 1, 64 * 256)) + output = model(dummy_x) + assert np.all(output.shape == (4, 1, 64 * 256)) + model.remove_weight_norm() diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_parallel_wavegan_generator.py b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_parallel_wavegan_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..21f6f08fd6b10e5ad9fe36e452f46d488cad3503 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_parallel_wavegan_generator.py @@ -0,0 +1,28 @@ +import numpy as np +import torch + +from TTS.vocoder.models.parallel_wavegan_generator import ParallelWaveganGenerator + + +def test_pwgan_generator(): + model = ParallelWaveganGenerator( + in_channels=1, + out_channels=1, + kernel_size=3, + num_res_blocks=30, + stacks=3, + res_channels=64, + gate_channels=128, + skip_channels=64, + aux_channels=80, + dropout=0.0, + bias=True, + use_weight_norm=True, + upsample_factors=[4, 4, 4, 4], + ) + dummy_c = torch.rand((2, 80, 5)) + output = model(dummy_c) + assert np.all(output.shape == (2, 1, 5 * 256)), output.shape + model.remove_weight_norm() + output = model.inference(dummy_c) + assert np.all(output.shape == (2, 1, (5 + 4) * 256)) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_pqmf.py b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_pqmf.py new file mode 100644 index 0000000000000000000000000000000000000000..afe8d1dc8f8bf462cb3f030d3d8f113ed547c7d9 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_pqmf.py @@ -0,0 +1,26 @@ +import os + +import soundfile as sf +import torch +from librosa.core import load + +from tests import get_tests_input_path, get_tests_output_path, get_tests_path +from TTS.vocoder.layers.pqmf import PQMF + +TESTS_PATH = get_tests_path() +WAV_FILE = os.path.join(get_tests_input_path(), "example_1.wav") + + +def test_pqmf(): + w, sr = load(WAV_FILE) + + layer = PQMF(N=4, taps=62, cutoff=0.15, beta=9.0) + w, sr = load(WAV_FILE) + w2 = torch.from_numpy(w[None, None, :]) + b2 = layer.analysis(w2) + w2_ = layer.synthesis(b2) + + print(w2_.max()) + print(w2_.min()) + print(w2_.mean()) + sf.write(os.path.join(get_tests_output_path(), "pqmf_output.wav"), w2_.flatten().detach(), sr) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_rwd.py b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_rwd.py new file mode 100644 index 0000000000000000000000000000000000000000..371ad9e41e584c41564dbcd7b9ff9548c61aac75 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_rwd.py @@ -0,0 +1,19 @@ +import numpy as np +import torch + +from TTS.vocoder.models.random_window_discriminator import RandomWindowDiscriminator + + +def test_rwd(): + layer = RandomWindowDiscriminator( + cond_channels=80, + window_sizes=(512, 1024, 2048, 4096, 8192), + cond_disc_downsample_factors=[(8, 4, 2, 2, 2), (8, 4, 2, 2), (8, 4, 2), (8, 4), (4, 2, 2)], + hop_length=256, + ) + x = torch.rand([4, 1, 22050]) + c = torch.rand([4, 80, 22050 // 256]) + + scores, _ = layer(x, c) + assert len(scores) == 10 + assert np.all(scores[0].shape == (4, 1, 1)) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_wavernn.py b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_wavernn.py new file mode 100644 index 0000000000000000000000000000000000000000..966ea3dd00c1f745afbde4f26e9097f355e651a2 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_wavernn.py @@ -0,0 +1,51 @@ +import random + +import numpy as np +import torch + +from TTS.vocoder.configs import WavernnConfig +from TTS.vocoder.models.wavernn import Wavernn, WavernnArgs + + +def test_wavernn(): + config = WavernnConfig() + config.model_args = WavernnArgs( + rnn_dims=512, + fc_dims=512, + mode="mold", + mulaw=False, + pad=2, + use_aux_net=True, + use_upsample_net=True, + upsample_factors=[4, 8, 8], + feat_dims=80, + compute_dims=128, + res_out_dims=128, + num_res_blocks=10, + ) + config.audio.hop_length = 256 + config.audio.sample_rate = 2048 + + dummy_x = torch.rand((2, 1280)) + dummy_m = torch.rand((2, 80, 9)) + y_size = random.randrange(20, 60) + dummy_y = torch.rand((80, y_size)) + + # mode: mold + model = Wavernn(config) + output = model(dummy_x, dummy_m) + assert np.all(output.shape == (2, 1280, 30)), output.shape + + # mode: gauss + config.model_args.mode = "gauss" + model = Wavernn(config) + output = model(dummy_x, dummy_m) + assert np.all(output.shape == (2, 1280, 2)), output.shape + + # mode: quantized + config.model_args.mode = 4 + model = Wavernn(config) + output = model(dummy_x, dummy_m) + assert np.all(output.shape == (2, 1280, 2**4)), output.shape + output = model.inference(dummy_y, True, 5500, 550) + assert np.all(output.shape == (256 * (y_size - 1),)) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_wavernn_datasets.py b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_wavernn_datasets.py new file mode 100644 index 0000000000000000000000000000000000000000..503b4e2483b447a01b0cb4abb02bc6cf34c80b90 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_vocoder_wavernn_datasets.py @@ -0,0 +1,84 @@ +import os +import shutil + +import numpy as np +from torch.utils.data import DataLoader + +from tests import get_tests_output_path, get_tests_path +from TTS.utils.audio import AudioProcessor +from TTS.vocoder.configs import WavernnConfig +from TTS.vocoder.datasets.preprocess import load_wav_feat_data, preprocess_wav_files +from TTS.vocoder.datasets.wavernn_dataset import WaveRNNDataset + +file_path = os.path.dirname(os.path.realpath(__file__)) +OUTPATH = os.path.join(get_tests_output_path(), "loader_tests/") +os.makedirs(OUTPATH, exist_ok=True) + +C = WavernnConfig() + +test_data_path = os.path.join(get_tests_path(), "data/ljspeech/") +test_mel_feat_path = os.path.join(test_data_path, "mel") +test_quant_feat_path = os.path.join(test_data_path, "quant") +ok_ljspeech = os.path.exists(test_data_path) + + +def wavernn_dataset_case(batch_size, seq_len, hop_len, pad, mode, mulaw, num_workers): + """run dataloader with given parameters and check conditions""" + ap = AudioProcessor(**C.audio) + + C.batch_size = batch_size + C.mode = mode + C.seq_len = seq_len + C.data_path = test_data_path + + preprocess_wav_files(test_data_path, C, ap) + _, train_items = load_wav_feat_data(test_data_path, test_mel_feat_path, 5) + + dataset = WaveRNNDataset( + ap=ap, items=train_items, seq_len=seq_len, hop_len=hop_len, pad=pad, mode=mode, mulaw=mulaw + ) + # sampler = DistributedSampler(dataset) if num_gpus > 1 else None + loader = DataLoader( + dataset, + shuffle=True, + collate_fn=dataset.collate, + batch_size=batch_size, + num_workers=num_workers, + pin_memory=True, + ) + + max_iter = 10 + count_iter = 0 + + try: + for data in loader: + x_input, mels, _ = data + expected_feat_shape = (ap.num_mels, (x_input.shape[-1] // hop_len) + (pad * 2)) + assert np.all(mels.shape[1:] == expected_feat_shape), f" [!] {mels.shape} vs {expected_feat_shape}" + + assert (mels.shape[2] - pad * 2) * hop_len == x_input.shape[1] + count_iter += 1 + if count_iter == max_iter: + break + # except AssertionError: + # shutil.rmtree(test_mel_feat_path) + # shutil.rmtree(test_quant_feat_path) + finally: + shutil.rmtree(test_mel_feat_path) + shutil.rmtree(test_quant_feat_path) + + +def test_parametrized_wavernn_dataset(): + """test dataloader with different parameters""" + params = [ + [16, C.audio["hop_length"] * 10, C.audio["hop_length"], 2, 10, True, 0], + [16, C.audio["hop_length"] * 10, C.audio["hop_length"], 2, "mold", False, 4], + [1, C.audio["hop_length"] * 10, C.audio["hop_length"], 2, 9, False, 0], + [1, C.audio["hop_length"], C.audio["hop_length"], 2, 10, True, 0], + [1, C.audio["hop_length"], C.audio["hop_length"], 2, "mold", False, 0], + [1, C.audio["hop_length"] * 5, C.audio["hop_length"], 4, 10, False, 2], + [1, C.audio["hop_length"] * 5, C.audio["hop_length"], 2, "mold", False, 0], + ] + for param in params: + print(param) + wavernn_dataset_case(*param) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_wavegrad.py b/Indic-TTS/TTS/tests/vocoder_tests/test_wavegrad.py new file mode 100644 index 0000000000000000000000000000000000000000..43b5f08042f1139e536aae2d57cd85675dce49e7 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_wavegrad.py @@ -0,0 +1,59 @@ +import unittest + +import numpy as np +import torch +from torch import optim + +from TTS.vocoder.configs import WavegradConfig +from TTS.vocoder.models.wavegrad import Wavegrad, WavegradArgs + +# pylint: disable=unused-variable + +torch.manual_seed(1) +use_cuda = torch.cuda.is_available() +device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + + +class WavegradTrainTest(unittest.TestCase): + def test_train_step(self): # pylint: disable=no-self-use + """Test if all layers are updated in a basic training cycle""" + input_dummy = torch.rand(8, 1, 20 * 300).to(device) + mel_spec = torch.rand(8, 80, 20).to(device) + + criterion = torch.nn.L1Loss().to(device) + args = WavegradArgs( + in_channels=80, + out_channels=1, + upsample_factors=[5, 5, 3, 2, 2], + upsample_dilations=[[1, 2, 1, 2], [1, 2, 1, 2], [1, 2, 4, 8], [1, 2, 4, 8], [1, 2, 4, 8]], + ) + config = WavegradConfig(model_params=args) + model = Wavegrad(config) + + model_ref = Wavegrad(config) + model.train() + model.to(device) + betas = np.linspace(1e-6, 1e-2, 1000) + model.compute_noise_level(betas) + model_ref.load_state_dict(model.state_dict()) + model_ref.to(device) + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + assert (param - param_ref).sum() == 0, param + count += 1 + optimizer = optim.Adam(model.parameters(), lr=0.001) + for i in range(5): + y_hat = model.forward(input_dummy, mel_spec, torch.rand(8).to(device)) + optimizer.zero_grad() + loss = criterion(y_hat, input_dummy) + loss.backward() + optimizer.step() + # check parameter changes + count = 0 + for param, param_ref in zip(model.parameters(), model_ref.parameters()): + # ignore pre-higway layer since it works conditional + # if count not in [145, 59]: + assert (param != param_ref).any(), "param {} with shape {} not updated!! \n{}\n{}".format( + count, param.shape, param, param_ref + ) + count += 1 diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_wavegrad_layers.py b/Indic-TTS/TTS/tests/vocoder_tests/test_wavegrad_layers.py new file mode 100644 index 0000000000000000000000000000000000000000..a0b021dcf649bddd9aad940cb399cac1ca884e58 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_wavegrad_layers.py @@ -0,0 +1,95 @@ +import torch + +from TTS.vocoder.configs import WavegradConfig +from TTS.vocoder.layers.wavegrad import DBlock, FiLM, PositionalEncoding, UBlock +from TTS.vocoder.models.wavegrad import Wavegrad, WavegradArgs + + +def test_positional_encoding(): + layer = PositionalEncoding(50) + inp = torch.rand(32, 50, 100) + nl = torch.rand(32) + o = layer(inp, nl) + + assert o.shape[0] == 32 + assert o.shape[1] == 50 + assert o.shape[2] == 100 + assert isinstance(o, torch.FloatTensor) + + +def test_film(): + layer = FiLM(50, 76) + inp = torch.rand(32, 50, 100) + nl = torch.rand(32) + shift, scale = layer(inp, nl) + + assert shift.shape[0] == 32 + assert shift.shape[1] == 76 + assert shift.shape[2] == 100 + assert isinstance(shift, torch.FloatTensor) + + assert scale.shape[0] == 32 + assert scale.shape[1] == 76 + assert scale.shape[2] == 100 + assert isinstance(scale, torch.FloatTensor) + + layer.apply_weight_norm() + layer.remove_weight_norm() + + +def test_ublock(): + inp1 = torch.rand(32, 50, 100) + inp2 = torch.rand(32, 50, 50) + nl = torch.rand(32) + + layer_film = FiLM(50, 100) + layer = UBlock(50, 100, 2, [1, 2, 4, 8]) + + scale, shift = layer_film(inp1, nl) + o = layer(inp2, shift, scale) + + assert o.shape[0] == 32 + assert o.shape[1] == 100 + assert o.shape[2] == 100 + assert isinstance(o, torch.FloatTensor) + + layer.apply_weight_norm() + layer.remove_weight_norm() + + +def test_dblock(): + inp = torch.rand(32, 50, 130) + layer = DBlock(50, 100, 2) + o = layer(inp) + + assert o.shape[0] == 32 + assert o.shape[1] == 100 + assert o.shape[2] == 65 + assert isinstance(o, torch.FloatTensor) + + layer.apply_weight_norm() + layer.remove_weight_norm() + + +def test_wavegrad_forward(): + x = torch.rand(32, 1, 20 * 300) + c = torch.rand(32, 80, 20) + noise_scale = torch.rand(32) + + args = WavegradArgs( + in_channels=80, + out_channels=1, + upsample_factors=[5, 5, 3, 2, 2], + upsample_dilations=[[1, 2, 1, 2], [1, 2, 1, 2], [1, 2, 4, 8], [1, 2, 4, 8], [1, 2, 4, 8]], + ) + config = WavegradConfig(model_params=args) + model = Wavegrad(config) + o = model.forward(x, c, noise_scale) + + assert o.shape[0] == 32 + assert o.shape[1] == 1 + assert o.shape[2] == 20 * 300 + assert isinstance(o, torch.FloatTensor) + + model.apply_weight_norm() + model.remove_weight_norm() diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_wavegrad_train.py b/Indic-TTS/TTS/tests/vocoder_tests/test_wavegrad_train.py new file mode 100644 index 0000000000000000000000000000000000000000..fe56ee783f36b89879af78e58316b19ff0e23f54 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_wavegrad_train.py @@ -0,0 +1,43 @@ +import glob +import os +import shutil + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.vocoder.configs import WavegradConfig + +config_path = os.path.join(get_tests_output_path(), "test_vocoder_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + +config = WavegradConfig( + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + run_eval=True, + test_delay_epochs=-1, + epochs=1, + seq_len=8192, + eval_split_size=1, + print_step=1, + print_eval=True, + data_path="tests/data/ljspeech", + output_path=output_path, + test_noise_schedule={"min_val": 1e-6, "max_val": 1e-2, "num_steps": 2}, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --config_path {config_path} " +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# restore the model and continue training for one more epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --continue_path {continue_path} " +) +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/vocoder_tests/test_wavernn_train.py b/Indic-TTS/TTS/tests/vocoder_tests/test_wavernn_train.py new file mode 100644 index 0000000000000000000000000000000000000000..337e24259f0ffa39d4d77b57749988b64763c2f1 --- /dev/null +++ b/Indic-TTS/TTS/tests/vocoder_tests/test_wavernn_train.py @@ -0,0 +1,45 @@ +import glob +import os +import shutil + +from tests import get_device_id, get_tests_output_path, run_cli +from TTS.vocoder.configs import WavernnConfig +from TTS.vocoder.models.wavernn import WavernnArgs + +config_path = os.path.join(get_tests_output_path(), "test_vocoder_config.json") +output_path = os.path.join(get_tests_output_path(), "train_outputs") + + +config = WavernnConfig( + model_args=WavernnArgs(), + batch_size=8, + eval_batch_size=8, + num_loader_workers=0, + num_eval_loader_workers=0, + run_eval=True, + test_delay_epochs=-1, + epochs=1, + seq_len=256, # for shorter test time + eval_split_size=1, + print_step=1, + print_eval=True, + data_path="tests/data/ljspeech", + output_path=output_path, +) +config.audio.do_trim_silence = True +config.audio.trim_db = 60 +config.save_json(config_path) + +# train the model for one epoch +command_train = f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --config_path {config_path} " +run_cli(command_train) + +# Find latest folder +continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + +# restore the model and continue training for one more epoch +command_train = ( + f"CUDA_VISIBLE_DEVICES='{get_device_id()}' python TTS/bin/train_vocoder.py --continue_path {continue_path} " +) +run_cli(command_train) +shutil.rmtree(continue_path) diff --git a/Indic-TTS/TTS/tests/zoo_tests/__init__.py b/Indic-TTS/TTS/tests/zoo_tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/TTS/tests/zoo_tests/test_models.py b/Indic-TTS/TTS/tests/zoo_tests/test_models.py new file mode 100644 index 0000000000000000000000000000000000000000..8c32895f335ad943956866beb01efa72f8b59a43 --- /dev/null +++ b/Indic-TTS/TTS/tests/zoo_tests/test_models.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3` +import glob +import os +import shutil + +from tests import get_tests_data_path, get_tests_output_path, run_cli +from TTS.tts.utils.languages import LanguageManager +from TTS.tts.utils.speakers import SpeakerManager +from TTS.utils.generic_utils import get_user_data_dir +from TTS.utils.manage import ModelManager + + +def test_run_all_models(): + """Check if all the models are downloadable and tts models run correctly.""" + print(" > Run synthesizer with all the models.") + download_dir = get_user_data_dir("tts") + output_path = os.path.join(get_tests_output_path(), "output.wav") + manager = ModelManager(output_prefix=get_tests_output_path()) + model_names = manager.list_models() + for model_name in model_names: + print(f"\n > Run - {model_name}") + model_path, _, _ = manager.download_model(model_name) + if "tts_models" in model_name: + local_download_dir = os.path.dirname(model_path) + # download and run the model + speaker_files = glob.glob(local_download_dir + "/speaker*") + language_files = glob.glob(local_download_dir + "/language*") + language_id = "" + if len(speaker_files) > 0: + # multi-speaker model + if "speaker_ids" in speaker_files[0]: + speaker_manager = SpeakerManager(speaker_id_file_path=speaker_files[0]) + elif "speakers" in speaker_files[0]: + speaker_manager = SpeakerManager(d_vectors_file_path=speaker_files[0]) + + # multi-lingual model - Assuming multi-lingual models are also multi-speaker + if len(language_files) > 0 and "language_ids" in language_files[0]: + language_manager = LanguageManager(language_ids_file_path=language_files[0]) + language_id = language_manager.language_names[0] + + speaker_id = list(speaker_manager.ids.keys())[0] + run_cli( + f"tts --model_name {model_name} " + f'--text "This is an example." --out_path "{output_path}" --speaker_idx "{speaker_id}" --language_idx "{language_id}" ' + ) + else: + # single-speaker model + run_cli(f"tts --model_name {model_name} " f'--text "This is an example." --out_path "{output_path}"') + # remove downloaded models + shutil.rmtree(download_dir) + else: + # only download the model + manager.download_model(model_name) + print(f" | > OK: {model_name}") + + folders = glob.glob(os.path.join(manager.output_prefix, "*")) + assert len(folders) == len(model_names) + shutil.rmtree(manager.output_prefix) + + +def test_voice_conversion(): + print(" > Run voice conversion inference using YourTTS model.") + model_name = "tts_models/multilingual/multi-dataset/your_tts" + language_id = "en" + speaker_wav = os.path.join(get_tests_data_path(), "ljspeech", "wavs", "LJ001-0001.wav") + reference_wav = os.path.join(get_tests_data_path(), "ljspeech", "wavs", "LJ001-0032.wav") + output_path = os.path.join(get_tests_output_path(), "output.wav") + run_cli( + f"tts --model_name {model_name}" + f" --out_path {output_path} --speaker_wav {speaker_wav} --reference_wav {reference_wav} --language_idx {language_id} " + ) diff --git a/Indic-TTS/Trainer/.github/ISSUE_TEMPLATE/bug_report.yaml b/Indic-TTS/Trainer/.github/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c51668f33279f4a31da8d0138a45d35c5b70b852 --- /dev/null +++ b/Indic-TTS/Trainer/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,85 @@ +name: "๐Ÿ› Bug report" +description: Create a bug report to help ๐Ÿ‘Ÿ improve +title: '[Bug] ' +labels: [ "bug" ] +body: + - type: markdown + attributes: + value: | + Welcome to the ๐Ÿ‘Ÿ! Thanks for taking the time to fill out this bug report! + + - type: textarea + id: bug-description + attributes: + label: Describe the bug + description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description. Thanks! + placeholder: Bug description + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: To Reproduce + description: | + Please share your code to reproduce the error. + + Issues are fixed faster if you can provide a working example. + + The best place for sharing code is colab. https://colab.research.google.com/ + So we can directly run your code and reproduce the issue. + + In the worse case, provide steps to reproduce the behavior. + + 1. Run the following command '...' + 2. ... + 3. See error + placeholder: Reproduction + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected behavior + description: "Write down what the expected behaviour" + + - type: textarea + id: logs + attributes: + label: Logs + description: "Please include the relevant logs if you can." + render: shell + + - type: textarea + id: system-info + attributes: + label: Environment + description: | + You can either run `trainer/bin/collect_env_info.py` + + ```bash + wget https://raw.githubusercontent.com/coqui-ai/Trainer/main/bin/collect_env_info.py + python collect_env_info.py + ``` + + or fill in the fields below manually. + render: shell + placeholder: | + - ๐Ÿ‘Ÿ Version (e.g., 1.3.0): + - PyTorch Version (e.g., 1.8) + - Python version: + - OS (e.g., Linux): + - CUDA/cuDNN version: + - GPU models and configuration: + - How you installed PyTorch (`conda`, `pip`, source): + - Any other relevant information: + validations: + required: true + - type: textarea + id: context + attributes: + label: Additional context + description: Add any other context about the problem here. + validations: + required: false diff --git a/Indic-TTS/Trainer/.github/ISSUE_TEMPLATE/config.yml b/Indic-TTS/Trainer/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000000000000000000000000000000000..5c3bd27e676ccaf6178bcd5b71dfe7e1ce9c8ccd --- /dev/null +++ b/Indic-TTS/Trainer/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: ๐Ÿ‘Ÿ GitHub Discussions + url: https://github.com/coqui-ai/Trainer/discussions + about: Please ask and answer questions here. + - name: Coqui Security issue disclosure + url: mailto:info@coqui.ai + about: Please report security vulnerabilities here. diff --git a/Indic-TTS/Trainer/.github/ISSUE_TEMPLATE/feature_request.md b/Indic-TTS/Trainer/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000000000000000000000000000000000..ac27194d1b441ac9a69df563c62c34d16d57ff59 --- /dev/null +++ b/Indic-TTS/Trainer/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,25 @@ +--- +name: ๐Ÿš€ Feature request +about: Suggest a feature or an idea for this project +title: '[Feature request] ' +labels: feature request +assignees: '' + +--- + +**๐Ÿš€ Feature Description** + + + +**Solution** + + + +**Alternative Solutions** + + + +**Additional context** + + diff --git a/Indic-TTS/Trainer/.github/workflows/pypi-release.yml b/Indic-TTS/Trainer/.github/workflows/pypi-release.yml new file mode 100644 index 0000000000000000000000000000000000000000..efecfe9fe685113de8f1f0021371a182670d3677 --- /dev/null +++ b/Indic-TTS/Trainer/.github/workflows/pypi-release.yml @@ -0,0 +1,100 @@ +name: Publish Python ๐Ÿ distributions ๐Ÿ“ฆ to PyPI +on: + release: + types: [published] +defaults: + run: + shell: + bash +jobs: + build-sdist: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - name: Verify tag matches version + run: | + set -ex + version=$(cat trainer/VERSION) + tag="${GITHUB_REF/refs\/tags\/}" + if [[ "$version" != "$tag" ]]; then + exit 1 + fi + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - run: | + python -m pip install -U pip setuptools wheel build + - run: | + python -m build + - run: | + pip install dist/*.tar.gz + - uses: actions/upload-artifact@v2 + with: + name: sdist + path: dist/*.tar.gz + build-wheels: + runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - run: | + python -m pip install -U pip setuptools wheel build + - run: | + python -m build + - run: | + python -m pip install dist/*.whl + - uses: actions/upload-artifact@v2 + with: + name: wheel-${{ matrix.python-version }} + path: dist/*.whl + publish-artifacts: + runs-on: ubuntu-20.04 + needs: [build-sdist, build-wheels] + steps: + - run: | + mkdir dist + - uses: actions/download-artifact@v2 + with: + name: "sdist" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.6" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.7" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.8" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.9" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.10" + path: "dist/" + - run: | + ls -lh dist/ + - name: Setup PyPI config + run: | + cat << EOF > ~/.pypirc + [pypi] + username=__token__ + password=${{ secrets.PYPI_TOKEN }} + EOF + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - run: | + python -m pip install twine + - run: | + twine upload --repository pypi dist/* diff --git a/Indic-TTS/Trainer/.github/workflows/style_check.yml b/Indic-TTS/Trainer/.github/workflows/style_check.yml new file mode 100644 index 0000000000000000000000000000000000000000..3e057adad4afbb7ed2e196f268a4191155f65501 --- /dev/null +++ b/Indic-TTS/Trainer/.github/workflows/style_check.yml @@ -0,0 +1,47 @@ +name: style-check + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + check_skip: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[ci skip]')" + steps: + - run: echo "${{ github.event.head_commit.message }}" + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.9] + experimental: [false] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: coqui-ai/setup-python@pip-cache-key-py-ver + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + cache: 'pip' + cache-dependency-path: 'requirements*' + - name: check OS + run: cat /etc/os-release + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y git make gcc + make system-deps + - name: Install/upgrade Python setup deps + run: python3 -m pip install --upgrade pip setuptools wheel + - name: Install Trainer + run: | + python3 -m pip install .[all] + python3 setup.py egg_info + - name: Lint check + run: | + make lint \ No newline at end of file diff --git a/Indic-TTS/Trainer/.github/workflows/tests.yml b/Indic-TTS/Trainer/.github/workflows/tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..51f0a3f82bd8e04d8f03472c8e63fc4072caee69 --- /dev/null +++ b/Indic-TTS/Trainer/.github/workflows/tests.yml @@ -0,0 +1,46 @@ +name: tests + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + check_skip: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[ci skip]')" + steps: + - run: echo "${{ github.event.head_commit.message }}" + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.6, 3.7, 3.8, 3.9, "3.10"] + experimental: [false] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: coqui-ai/setup-python@pip-cache-key-py-ver + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + cache: 'pip' + cache-dependency-path: 'requirements*' + - name: check OS + run: cat /etc/os-release + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends git make gcc + make system-deps + - name: Install/upgrade Python setup deps + run: python3 -m pip install --upgrade pip setuptools wheel + - name: Install Trainer + run: | + python3 -m pip install .[all] + python3 setup.py egg_info + - name: Unit tests + run: make test_all diff --git a/Indic-TTS/Trainer/.gitignore b/Indic-TTS/Trainer/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..e17302b6b9668f252d316119e954cdb514f60b32 --- /dev/null +++ b/Indic-TTS/Trainer/.gitignore @@ -0,0 +1,144 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.noseids +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# custom list +MNIST/ +tests_local/ +output/ diff --git a/Indic-TTS/Trainer/.pylintrc b/Indic-TTS/Trainer/.pylintrc new file mode 100644 index 0000000000000000000000000000000000000000..6e9f953edd19b306f9b5218a97eed78d32a73428 --- /dev/null +++ b/Indic-TTS/Trainer/.pylintrc @@ -0,0 +1,596 @@ +[MASTER] + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code. +extension-pkg-whitelist= + +# Add files or directories to the blacklist. They should be base names, not +# paths. +ignore=CVS + +# Add files or directories matching the regex patterns to the blacklist. The +# regex matches against base names, not paths. +ignore-patterns= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the +# number of processors available to use. +jobs=1 + +# Control the amount of potential inferred values when inferring a single +# object. This can help the performance when dealing with large functions or +# complex, nested conditions. +limit-inference-results=100 + +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + +# Pickle collected data for later comparisons. +persistent=yes + +# Specify a configuration file. +#rcfile= + +# When enabled, pylint would attempt to guess common misconfiguration and emit +# user-friendly hints instead of false-positive error messages. +suggestion-mode=yes + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. +confidence= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once). You can also use "--disable=all" to +# disable everything first and then reenable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use "--disable=all --enable=classes +# --disable=W". +disable=missing-docstring, + too-many-public-methods, + too-many-lines, + bare-except, + ## for avoiding weird p3.6 CI linter error + ## TODO: see later if we can remove this + assigning-non-slot, + unsupported-assignment-operation, + ## end + line-too-long, + fixme, + wrong-import-order, + ungrouped-imports, + wrong-import-position, + import-error, + invalid-name, + too-many-instance-attributes, + arguments-differ, + arguments-renamed, + no-name-in-module, + no-member, + unsubscriptable-object, + print-statement, + parameter-unpacking, + unpacking-in-except, + old-raise-syntax, + backtick, + long-suffix, + old-ne-operator, + old-octal-literal, + import-star-module-level, + non-ascii-bytes-literal, + raw-checker-failed, + bad-inline-option, + locally-disabled, + file-ignored, + suppressed-message, + useless-suppression, + deprecated-pragma, + use-symbolic-message-instead, + useless-object-inheritance, + too-few-public-methods, + too-many-branches, + too-many-arguments, + too-many-locals, + too-many-statements, + apply-builtin, + basestring-builtin, + buffer-builtin, + cmp-builtin, + coerce-builtin, + execfile-builtin, + file-builtin, + long-builtin, + raw_input-builtin, + reduce-builtin, + standarderror-builtin, + unicode-builtin, + xrange-builtin, + coerce-method, + delslice-method, + getslice-method, + setslice-method, + no-absolute-import, + old-division, + dict-iter-method, + dict-view-method, + next-method-called, + metaclass-assignment, + indexing-exception, + raising-string, + reload-builtin, + oct-method, + hex-method, + nonzero-method, + cmp-method, + input-builtin, + round-builtin, + intern-builtin, + unichr-builtin, + map-builtin-not-iterating, + zip-builtin-not-iterating, + range-builtin-not-iterating, + filter-builtin-not-iterating, + using-cmp-argument, + eq-without-hash, + div-method, + idiv-method, + rdiv-method, + exception-message-attribute, + invalid-str-codec, + sys-max-int, + bad-python3-import, + deprecated-string-function, + deprecated-str-translate-call, + deprecated-itertools-function, + deprecated-types-field, + next-method-defined, + dict-items-not-iterating, + dict-keys-not-iterating, + dict-values-not-iterating, + deprecated-operator-function, + deprecated-urllib-function, + xreadlines-attribute, + deprecated-sys-function, + exception-escape, + comprehension-escape, + duplicate-code, + not-callable + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +enable=c-extension-no-member + + +[REPORTS] + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details. +#msg-template= + +# Set the output format. Available formats are text, parseable, colorized, json +# and msvs (visual studio). You can also give a reporter class, e.g. +# mypackage.mymodule.MyReporterClass. +output-format=text + +# Tells whether to display a full report or only the messages. +reports=no + +# Activate the evaluation score. +score=yes + + +[REFACTORING] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + +# Complete name of functions that never returns. When checking for +# inconsistent-return-statements if a never returning function is called then +# it will be considered as an explicit return statement and no message will be +# printed. +never-returning-functions=sys.exit + + +[LOGGING] + +# Format style used to check logging format string. `old` means using % +# formatting, while `new` is for `{}` formatting. +logging-format-style=old + +# Logging modules to check that the string format arguments are in logging +# function parameter format. +logging-modules=logging + + +[SPELLING] + +# Limits count of emitted suggestions for spelling mistakes. +max-spelling-suggestions=4 + +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package.. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME, + XXX, + TODO + + +[TYPECHECK] + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members=numpy.*,torch.* + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# Tells whether to warn about missing members when the owner of the attribute +# is inferred to be None. +ignore-none=yes + +# This flag controls whether pylint should warn about no-member and similar +# checks whenever an opaque object is returned when inferring. The inference +# can return multiple potential results while evaluating a Python object, but +# some branches might not be evaluated, which results in partial inference. In +# that case, it might be useful to still emit no-member and other checks for +# the rest of the inferred objects. +ignore-on-opaque-inference=yes + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis. It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= + +# Show a hint with possible names when a member name was not found. The aspect +# of finding the hint is based on edit distance. +missing-member-hint=yes + +# The minimum edit distance a name should have in order to be considered a +# similar match for a missing member name. +missing-member-hint-distance=1 + +# The total number of similar names that should be taken in consideration when +# showing a hint for a missing member. +missing-member-max-choices=1 + + +[VARIABLES] + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid defining new builtins when possible. +additional-builtins= + +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_, + _cb + +# A regular expression matching the name of dummy variables (i.e. expected to +# not be used). +dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore. +ignored-argument-names=_.*|^ignored_|^unused_ + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io + + +[FORMAT] + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )??$ + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + +# Maximum number of characters on a single line. +max-line-length=120 + +# Maximum number of lines in a module. +max-module-lines=1000 + +# List of optional constructs for which whitespace checking is disabled. `dict- +# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. +# `trailing-comma` allows a space between comma and closing bracket: (a, ). +# `empty-line` allows space-only lines. +no-space-check=trailing-comma, + dict-separator + +# Allow the body of a class to be on the same line as the declaration if body +# contains single statement. +single-line-class-stmt=no + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + + +[SIMILARITIES] + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=no + +# Minimum lines number of a similarity. +min-similarity-lines=4 + + +[BASIC] + +# Naming style matching correct argument names. +argument-naming-style=snake_case + +# Regular expression matching correct argument names. Overrides argument- +# naming-style. +argument-rgx=[a-z_][a-z0-9_]{0,30}$ + +# Naming style matching correct attribute names. +attr-naming-style=snake_case + +# Regular expression matching correct attribute names. Overrides attr-naming- +# style. +#attr-rgx= + +# Bad variable names which should always be refused, separated by a comma. +bad-names= + +# Naming style matching correct class attribute names. +class-attribute-naming-style=any + +# Regular expression matching correct class attribute names. Overrides class- +# attribute-naming-style. +#class-attribute-rgx= + +# Naming style matching correct class names. +class-naming-style=PascalCase + +# Regular expression matching correct class names. Overrides class-naming- +# style. +#class-rgx= + +# Naming style matching correct constant names. +const-naming-style=UPPER_CASE + +# Regular expression matching correct constant names. Overrides const-naming- +# style. +#const-rgx= + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=-1 + +# Naming style matching correct function names. +function-naming-style=snake_case + +# Regular expression matching correct function names. Overrides function- +# naming-style. +#function-rgx= + +# Good variable names which should always be accepted, separated by a comma. +good-names=i, + j, + k, + x, + ex, + Run, + _ + +# Include a hint for the correct naming format with invalid-name. +include-naming-hint=no + +# Naming style matching correct inline iteration names. +inlinevar-naming-style=any + +# Regular expression matching correct inline iteration names. Overrides +# inlinevar-naming-style. +#inlinevar-rgx= + +# Naming style matching correct method names. +method-naming-style=snake_case + +# Regular expression matching correct method names. Overrides method-naming- +# style. +#method-rgx= + +# Naming style matching correct module names. +module-naming-style=snake_case + +# Regular expression matching correct module names. Overrides module-naming- +# style. +#module-rgx= + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ + +# List of decorators that produce properties, such as abc.abstractproperty. Add +# to this list to register other decorators that produce valid properties. +# These decorators are taken in consideration only for invalid-name. +property-classes=abc.abstractproperty + +# Naming style matching correct variable names. +variable-naming-style=snake_case + +# Regular expression matching correct variable names. Overrides variable- +# naming-style. +variable-rgx=[a-z_][a-z0-9_]{0,30}$ + + +[STRING] + +# This flag controls whether the implicit-str-concat-in-sequence should +# generate a warning on implicit string concatenation in sequences defined over +# several lines. +check-str-concat-over-line-jumps=no + + +[IMPORTS] + +# Allow wildcard imports from modules that define __all__. +allow-wildcard-with-all=no + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + +# Deprecated modules which should not be used, separated by a comma. +deprecated-modules=optparse,tkinter.tix + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled). +ext-import-graph= + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled). +import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled). +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__, + __new__, + setUp + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict, + _fields, + _replace, + _source, + _make + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=cls + + +[DESIGN] + +# Maximum number of arguments for function / method. +max-args=5 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Maximum number of boolean expressions in an if statement. +max-bool-expr=5 + +# Maximum number of branch for function / method body. +max-branches=12 + +# Maximum number of locals for function / method body. +max-locals=15 + +# Maximum number of parents for a class (see R0901). +max-parents=15 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of return / yield for function / method body. +max-returns=6 + +# Maximum number of statements in function / method body. +max-statements=50 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when being caught. Defaults to +# "BaseException, Exception". +overgeneral-exceptions=BaseException, + Exception diff --git a/Indic-TTS/Trainer/CODE_OF_CONDUCT.md b/Indic-TTS/Trainer/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000000000000000000000000000000000..b80639d63c29e902c547de347806651bcc9ad3b2 --- /dev/null +++ b/Indic-TTS/Trainer/CODE_OF_CONDUCT.md @@ -0,0 +1,133 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +coc-report@coqui.ai. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available +at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/Indic-TTS/Trainer/CONTRIBUTING.md b/Indic-TTS/Trainer/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..8b0052cf187f9278b996f5bda05926bbb3ee1c0d --- /dev/null +++ b/Indic-TTS/Trainer/CONTRIBUTING.md @@ -0,0 +1,120 @@ +# Contribution guidelines + +Welcome to the ๐Ÿ‘Ÿ! + +This repository is governed by [the Contributor Covenant Code of Conduct](https://github.com/coqui-ai/Trainer/blob/main/CODE_OF_CONDUCT.md). + +## Where to start. +We welcome everyone who likes to contribute to ๐Ÿ‘Ÿ. + +You can contribute not only with code but with bug reports, comments, questions, answers, or just a simple tweet to spread the word. + +If you like to contribute code, squash a bug but if you don't know where to start, here are some pointers. + +- [Github Issues Tracker](https://github.com/coqui-ai/Trainer/issues) + + This is a place to find feature requests, bugs. + + Issues with the ```good first issue``` tag are good place for beginners to take on. + +- โœจ**PR**โœจ [pages](https://github.com/coqui-ai/Trainer/pulls) with the ```๐Ÿš€new version``` tag. + + We list all the target improvements for the next version. You can pick one of them and start contributing. + +- Also feel free to suggest new features. We're always open for new things. + +## Sending a โœจ**PR**โœจ + +If you have a new feature or a bug to squash, go ahead and send a โœจ**PR**โœจ. +Please use the following steps for a โœจ**PR**โœจ. +Let us know if you encounter a problem along the way. + +The following steps are tested on an Ubuntu system. + +1. Fork ๐Ÿ‘Ÿ[https://github.com/coqui-ai/Trainer] by clicking the fork button at the top right corner of the project page. + +2. Clone ๐Ÿ‘Ÿ and add the main repo as a new remote named ```upsteam```. + + ```bash + $ git clone git@github.com:/Trainer.git + $ cd Trainer + $ git remote add upstream https://github.com/coqui-ai/Trainer.git + ``` + +3. Install ๐Ÿ‘Ÿ for development. + + ```bash + $ make install + ``` + +4. Create a new branch with an informative name for your goal. + + ```bash + $ git checkout -b an_informative_name_for_my_branch + ``` + +5. Implement your changes on your new branch. + +6. Explain your code using [Google Style](https://google.github.io/styleguide/pyguide.html#381-docstrings) docstrings. + +7. Add your tests to our test suite under ```tests``` folder. It is important to show that your code works, edge cases are considered, and inform others about the intended use. + +8. Run the tests to see how your updates work with the rest of the project. You can repeat this step multiple times as you implement your changes to make sure you are on the right direction. + + ```bash + $ make test # stop at the first error + $ make test_all # run all the tests, report all the errors + ``` + +9. Format your code. We use ```black``` for code and ```isort``` for ```import``` formatting. + + ```bash + $ make style + ``` + +10. Run the linter and correct the issues raised. We use ```pylint``` for linting. It helps to enforce a coding standard, offers simple refactoring suggestions. + + ```bash + $ make lint + ``` + +11. When things are good, add new files and commit your changes. + + ```bash + $ git add my_file1.py my_file2.py ... + $ git commit + ``` + + It's a good practice to regularly sync your local copy of the project with the upstream code to keep up with the recent updates. + + ```bash + $ git fetch upstream + $ git rebase upstream/master + # or for the development version + $ git rebase upstream/dev + ``` + +12. Send a PR to ```dev``` branch. + + Push your branch to your fork. + + ```bash + $ git push -u origin an_informative_name_for_my_branch + ``` + + Then go to your fork's Github page and click on 'Pull request' to send your โœจ**PR**โœจ. + + Please set โœจ**PR**โœจ's target branch to ```dev``` as we use ```dev``` to work on the next version. + +13. Let's discuss until it is perfect. ๐Ÿ’ช + + We might ask you for certain changes that would appear in the โœจ**PR**โœจ's page under ๐Ÿ‘Ÿ[https://github.com/coqui-ai/Trainer/pulls]. + +14. Once things look perfect, We merge it to the ```dev``` branch and make it ready for the next version. + +Feel free to ping us at any step you need help using our communication channels. + +If you are new to Github or open-source contribution, These are good resources. + +- [Github Docs](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests) +- [First-Contribution](https://github.com/firstcontributions/first-contributions) diff --git a/Indic-TTS/Trainer/MANIFEST.in b/Indic-TTS/Trainer/MANIFEST.in new file mode 100644 index 0000000000000000000000000000000000000000..793877437fc672ad0f29dd092db1c6200c47618d --- /dev/null +++ b/Indic-TTS/Trainer/MANIFEST.in @@ -0,0 +1,13 @@ +include README.md +include LICENSE.txt +include requirements.*.txt +include requirements.txt +include trainer/VERSION +recursive-include trainer *.json +recursive-include trainer *.html +recursive-include trainer *.png +recursive-include trainer *.md +recursive-include trainer *.py +recursive-include trainer *.pyx +recursive-include images *.png + diff --git a/Indic-TTS/Trainer/Makefile b/Indic-TTS/Trainer/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..c56cf33d0963e9b2f9b8a1fb6716d436d5248943 --- /dev/null +++ b/Indic-TTS/Trainer/Makefile @@ -0,0 +1,41 @@ +.DEFAULT_GOAL := help +.PHONY: test system-deps dev-deps deps style lint install help docs + +help: + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +target_dirs := tests trainer + +test_all: ## run tests and don't stop on an error. + coverage run -m pytest trainer tests + +test: ## run tests. + coverage run -m pytest -x trainer tests + +test_failed: ## only run tests failed the last time. + coverage run -m pytest --ff trainer tests + +style: ## update code style. + black ${target_dirs} + isort ${target_dirs} + +lint: ## run pylint linter. + pylint ${target_dirs} + +dev-deps: ## install development deps + pip install -r requirements.dev.txt + +doc-deps: ## install docs dependencies + pip install -r docs/requirements.txt + +build-docs: ## build the docs + cd docs && make clean && make build + +deps: ## install ๐Ÿธ requirements. + pip install -r requirements.txt + +install: ## install ๐Ÿธ Trainer for development. + pip install -e .[all] + +docs: ## build the docs + $(MAKE) -C docs clean && $(MAKE) -C docs html diff --git a/Indic-TTS/Trainer/README.md b/Indic-TTS/Trainer/README.md new file mode 100644 index 0000000000000000000000000000000000000000..18c11f765c67f9065732550892a17d701a453ea3 --- /dev/null +++ b/Indic-TTS/Trainer/README.md @@ -0,0 +1,75 @@ +

+ +# ๐Ÿ‘Ÿ Trainer +An opinionated general purpose model trainer on PyTorch with a simple code base. + +## Installation + +From Github: + +```console +git clone https://github.com/coqui-ai/Trainer +cd Trainer +make install +``` + +From PyPI: + +```console +pip install trainer +``` + +Prefer installing from Github as it is more stable. + +## Implementing a model +Subclass and overload the functions in the [```TrainerModel()```](trainer/model.py) + +## Training a model +See the test script [here](tests/test_train_mnist.py) training a basic MNIST model. + +## Training with DDP + +```console +$ python -m trainer.distribute --script path/to/your/train.py --gpus "0,1" +``` + +We don't use ```.spawn()``` to initiate multi-gpu training since it causes certain limitations. + +- Everything must the pickable. +- ```.spawn()``` trains the model in subprocesses and the model in the main process is not updated. +- DataLoader with N processes gets really slow when the N is large. + +## Profiling example + +- Create the torch profiler as you like and pass it to the trainer. + ```python + import torch + profiler = torch.profiler.profile( + activities=[ + torch.profiler.ProfilerActivity.CPU, + torch.profiler.ProfilerActivity.CUDA, + ], + schedule=torch.profiler.schedule(wait=1, warmup=1, active=3, repeat=2), + on_trace_ready=torch.profiler.tensorboard_trace_handler("./profiler/"), + record_shapes=True, + profile_memory=True, + with_stack=True, + ) + prof = trainer.profile_fit(profiler, epochs=1, small_run=64) + then run Tensorboard + ``` +- Run the tensorboard. + ```console + tensorboard --logdir="./profiler/" + ``` + +## Supported Experiment Loggers +- [Tensorboard](https://www.tensorflow.org/tensorboard) - actively maintained +- [ClearML](https://clear.ml/) - actively maintained +- [MLFlow](https://mlflow.org/) +- [Aim](https://aimstack.io/) +- [WandDB](https://wandb.ai/) + +To add a new logger, you must subclass [BaseDashboardLogger](trainer/logging/base_dash_logger.py) and overload its functions. + + diff --git a/Indic-TTS/Trainer/bin/collect_env_info.py b/Indic-TTS/Trainer/bin/collect_env_info.py new file mode 100644 index 0000000000000000000000000000000000000000..da39c91dd288168296b70f789dc5e74dd657859b --- /dev/null +++ b/Indic-TTS/Trainer/bin/collect_env_info.py @@ -0,0 +1,48 @@ +"""Get detailed info about the working environment.""" +import os +import platform +import sys + +import numpy +import torch + +sys.path += [os.path.abspath(".."), os.path.abspath(".")] +import json + +import trainer + + +def system_info(): + return { + "OS": platform.system(), + "architecture": platform.architecture(), + "version": platform.version(), + "processor": platform.processor(), + "python": platform.python_version(), + } + + +def cuda_info(): + return { + "GPU": [torch.cuda.get_device_name(i) for i in range(torch.cuda.device_count())], + "available": torch.cuda.is_available(), + "version": torch.version.cuda, + } + + +def package_info(): + return { + "numpy": numpy.__version__, + "PyTorch_version": torch.__version__, + "PyTorch_debug": torch.version.debug, + "Trainer": trainer.__version__, + } + + +def main(): + details = {"System": system_info(), "CUDA": cuda_info(), "Packages": package_info()} + print(json.dumps(details, indent=4, sort_keys=True)) + + +if __name__ == "__main__": + main() diff --git a/Indic-TTS/Trainer/pyproject.toml b/Indic-TTS/Trainer/pyproject.toml new file mode 100644 index 0000000000000000000000000000000000000000..7ceeaaa81405994403e1b958f0b49dbc8fc6227a --- /dev/null +++ b/Indic-TTS/Trainer/pyproject.toml @@ -0,0 +1,32 @@ +[build-system] +requires = ["setuptools", "wheel"] + +[flake8] +max-line-length=120 + +[tool.black] +line-length = 120 +target-version = ['py38'] +exclude = ''' + +( + /( + \.eggs # exclude a few common directories in the + | \.git # root of the project + | \.hg + | \.mypy_cache + | \.tox + | \.venv + | _build + | buck-out + | build + | dist + )/ + | foo.py # also separately exclude a file named foo.py in + # the root of the project +) +''' + +[tool.isort] +profile = "black" +multi_line_output = 3 \ No newline at end of file diff --git a/Indic-TTS/Trainer/requirements.dev.txt b/Indic-TTS/Trainer/requirements.dev.txt new file mode 100644 index 0000000000000000000000000000000000000000..d25bbcb254c51c45e34ee5038a4d327f5fbb5de8 --- /dev/null +++ b/Indic-TTS/Trainer/requirements.dev.txt @@ -0,0 +1,5 @@ +black +coverage +isort +pytest +pylint==2.10.2 diff --git a/Indic-TTS/Trainer/requirements.test.txt b/Indic-TTS/Trainer/requirements.test.txt new file mode 100644 index 0000000000000000000000000000000000000000..abf50367e9cea0cb83dfb23f0fde16c7b4fac7df --- /dev/null +++ b/Indic-TTS/Trainer/requirements.test.txt @@ -0,0 +1 @@ +torchvision \ No newline at end of file diff --git a/Indic-TTS/Trainer/requirements.txt b/Indic-TTS/Trainer/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..f9d5fb6a967d32764561728ee262d255d7d4eff6 --- /dev/null +++ b/Indic-TTS/Trainer/requirements.txt @@ -0,0 +1,6 @@ +torch>=1.7 +coqpit +fsspec +tensorboardX +soundfile +protobuf >= 3.9.2, < 3.20 #https://github.com/PyTorchLightning/pytorch-lightning/issues/13159 \ No newline at end of file diff --git a/Indic-TTS/Trainer/setup.cfg b/Indic-TTS/Trainer/setup.cfg new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/Trainer/setup.py b/Indic-TTS/Trainer/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..a733f8f4a2ac44aafa5477cc827d16122f5d9792 --- /dev/null +++ b/Indic-TTS/Trainer/setup.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python +# ,*++++++*, ,*++++++*, +# *++. .+++ *++. .++* +# *+* ,++++* *+* *+* ,++++, *+* +# ,+, .++++++++++* ,++,,,,*+, ,++++++++++. *+, +# *+. .++++++++++++..++ *+.,++++++++++++. .+* +# .+* ++++++++++++.*+, .+*.++++++++++++ *+, +# .++ *++++++++* ++, .++.*++++++++* ++, +# ,+++*. . .*++, ,++*. .*+++* +# *+, .,*++**. .**++**. ,+* +# .+* *+, +# *+. Coqui .+* +# *+* +++ Trainer +++ *+* +# .+++*. . . *+++. +# ,+* *+++*... ...*+++* *+, +# .++. .""""+++++++****+++++++"""". ++. +# ,++. **** .++, +# .++* *++. +# *+++, ,+++* +# .,*++++::::::++++*,. +# + + +import os +import subprocess +import sys +from distutils.version import LooseVersion + +import setuptools.command.build_py +import setuptools.command.develop +from setuptools import find_packages, setup + +if LooseVersion(sys.version) < LooseVersion("3.6") or LooseVersion( + sys.version +) > LooseVersion("3.11"): + raise RuntimeError( + "Trainer requires python >= 3.6 and <=3.11 " + "but your Python version is {}".format(sys.version) + ) + + +cwd = os.path.dirname(os.path.abspath(__file__)) + +cwd = os.path.dirname(os.path.abspath(__file__)) +with open(os.path.join(cwd, "trainer", "VERSION")) as fin: + version = fin.read().strip() + + +class build_py( + setuptools.command.build_py.build_py +): # pylint: disable=too-many-ancestors + def run(self): + setuptools.command.build_py.build_py.run(self) + + +class develop(setuptools.command.develop.develop): + def run(self): + setuptools.command.develop.develop.run(self) + + +def pip_install(package_name): + subprocess.call([sys.executable, "-m", "pip", "install", package_name]) + +requirements = open(os.path.join(cwd, "requirements.txt"), "r").readlines() +with open(os.path.join(cwd, "requirements.dev.txt"), "r") as f: + requirements_dev = f.readlines() +with open(os.path.join(cwd, "requirements.test.txt"), "r") as f: + requirements_test = f.readlines() +requirements_all = requirements + requirements_dev + requirements_test + +with open("README.md", "r", encoding="utf-8") as readme_file: + README = readme_file.read() + +setup( + name="trainer", + version=version, + url="https://github.com/coqui-ai/Trainer", + author="Eren Gรถlge", + author_email="egolge@coqui.ai", + description="General purpose model trainer for PyTorch that is more flexible than it should be, by ๐ŸธCoqui.", + long_description=README, + long_description_content_type="text/markdown", + license="Apache2", + # package + include_package_data=True, + packages=find_packages(include=["trainer*"]), + package_data={ + "trainer": [ + "VERSION", + ] + }, + project_urls={ + "Documentation": "https://github.com/coqui-ai/Trainer/", + "Tracker": "https://github.com/coqui-ai/Trainer/issues", + "Repository": "https://github.com/coqui-ai/Trainer", + "Discussions": "https://github.com/coqui-ai/Trainer/discussions", + }, + cmdclass={ + "build_py": build_py, + "develop": develop, + }, + install_requires=requirements, + extras_require={ + "dev": requirements_dev, + "test": requirements_test, + "all": requirements_all + }, + python_requires=">=3.6.0, <3.11", + classifiers=[ + "Environment :: Console", + "Natural Language :: English", + # How mature is this project? Common values are + # 3 - Alpha, 4 - Beta, 5 - Production/Stable + "Development Status :: 3 - Alpha", + # Indicate who your project is intended for + "Intended Audience :: Developers", + # Pick your license as you wish + "License :: OSI Approved :: Apache Software License", + "Operating System :: OS Independent", + # Specify the Python versions you support here. In particular, ensure + # that you indicate whether you support Python 2, Python 3 or both. + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + ], + zip_safe=False, +) diff --git a/Indic-TTS/Trainer/tests/__init__.py b/Indic-TTS/Trainer/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f41ab7cd846971a7f499f04967c90b9836407540 --- /dev/null +++ b/Indic-TTS/Trainer/tests/__init__.py @@ -0,0 +1,6 @@ +import os + + +def run_cli(command): + exit_status = os.system(command) + assert exit_status == 0, f" [!] command `{command}` failed." diff --git a/Indic-TTS/Trainer/tests/test_continue_train.py b/Indic-TTS/Trainer/tests/test_continue_train.py new file mode 100644 index 0000000000000000000000000000000000000000..6bd158fb4df3eba36183b314f694f5271a7429cf --- /dev/null +++ b/Indic-TTS/Trainer/tests/test_continue_train.py @@ -0,0 +1,21 @@ +import glob +import os +import shutil + +from tests import run_cli + + +def test_continue_train(): + output_path = "output/" + + command_train = "python tests/utils/train_mnist.py" + run_cli(command_train) + + continue_path = max(glob.glob(os.path.join(output_path, "*/")), key=os.path.getmtime) + number_of_checkpoints = len(glob.glob(os.path.join(continue_path, "*.pth"))) + + command_continue = f"python tests/utils/train_mnist.py --continue_path {continue_path}" + run_cli(command_continue) + + assert number_of_checkpoints < len(glob.glob(os.path.join(continue_path, "*.pth"))) + shutil.rmtree(continue_path) diff --git a/Indic-TTS/Trainer/tests/test_lr_schedulers.py b/Indic-TTS/Trainer/tests/test_lr_schedulers.py new file mode 100644 index 0000000000000000000000000000000000000000..6ebfaa2aeb6c66c1c24badaf521de3fb8bdd65eb --- /dev/null +++ b/Indic-TTS/Trainer/tests/test_lr_schedulers.py @@ -0,0 +1,41 @@ +import os +import time + +import torch + +from tests.utils.mnist import MnistModel, MnistModelConfig +from trainer import Trainer, TrainerArgs +from trainer.generic_utils import KeepAverage + +is_cuda = torch.cuda.is_available() + + +def test_train_mnist(): + model = MnistModel() + # Test StepwiseGradualLR + config = MnistModelConfig( + lr_scheduler="StepwiseGradualLR", + lr_scheduler_params={ + "gradual_learning_rates": [ + [0, 1e-3], + [2, 1e-4], + ] + }, + scheduler_after_epoch=False, + ) + trainer = Trainer(TrainerArgs(), config, model=model, output_path=os.getcwd(), gpu=0 if is_cuda else None) + trainer.train_loader = trainer.get_train_dataloader( + trainer.training_assets, + trainer.train_samples, + verbose=True, + ) + trainer.keep_avg_train = KeepAverage() + + lr_0 = trainer.scheduler.get_lr() + trainer.train_step(next(iter(trainer.train_loader)), len(trainer.train_loader), 0, time.time()) + lr_1 = trainer.scheduler.get_lr() + trainer.train_step(next(iter(trainer.train_loader)), len(trainer.train_loader), 1, time.time()) + lr_2 = trainer.scheduler.get_lr() + assert lr_0 == 1e-3 + assert lr_1 == 1e-3 + assert lr_2 == 1e-4 diff --git a/Indic-TTS/Trainer/tests/test_num_gpus.py b/Indic-TTS/Trainer/tests/test_num_gpus.py new file mode 100644 index 0000000000000000000000000000000000000000..eb6185d56487bfdb552e90792c00d38218bfaf87 --- /dev/null +++ b/Indic-TTS/Trainer/tests/test_num_gpus.py @@ -0,0 +1,58 @@ +import os +import unittest +from argparse import Namespace +from unittest import TestCase, mock + +from trainer import TrainerArgs +from trainer.distribute import get_gpus + + +class TestGpusStringParsingMethods(TestCase): + @mock.patch.dict(os.environ, {"CUDA_VISIBLE_DEVICES": "0"}) + def test_parse_gpus_set_in_env_var_and_args(self): + args = Namespace(gpus="0,1") + gpus = get_gpus(args) + expected_value = ["0"] + self.assertEqual(expected_value, gpus, msg_for_test_failure(expected_value)) + + @mock.patch.dict(os.environ, {}) + def test_parse_gpus_set_in_args(self): + args = Namespace(gpus="0,1") + gpus = get_gpus(args) + expected_value = ["0", "1"] + self.assertEqual(expected_value, gpus, msg_for_test_failure(expected_value)) + + @mock.patch.dict(os.environ, {"CUDA_VISIBLE_DEVICES": "0,1"}) + def test_parse_gpus_set_in_env_var(self): + args = Namespace() + gpus = get_gpus(args) + expected_value = ["0", "1"] + self.assertEqual(expected_value, gpus, msg_for_test_failure(expected_value)) + + @mock.patch.dict(os.environ, {"CUDA_VISIBLE_DEVICES": "0, 1 "}) + def test_parse_gpus_set_in_env_var_with_spaces(self): + args = Namespace() + gpus = get_gpus(args) + expected_value = ["0", "1"] + self.assertEqual(expected_value, gpus, msg_for_test_failure(expected_value)) + + @mock.patch.dict(os.environ, {}) + def test_parse_gpus_set_in_args_with_spaces(self): + args = Namespace(gpus="0, 1, 2, 3 ") + gpus = get_gpus(args) + expected_value = ["0", "1", "2", "3"] + self.assertEqual(expected_value, gpus, msg_for_test_failure(expected_value)) + + +def msg_for_test_failure(expected_value): + return "GPU Values are expected to be " + str(expected_value) + + +def create_args_parser(): + parser = TrainerArgs().init_argparse(arg_prefix="") + parser.add_argument("--gpus", type=str) + return parser + + +if __name__ == "__main__": + unittest.main() diff --git a/Indic-TTS/Trainer/tests/test_train_mnist.py b/Indic-TTS/Trainer/tests/test_train_mnist.py new file mode 100644 index 0000000000000000000000000000000000000000..6deea75ffd45064d8ea86d701770cc1bdc26107b --- /dev/null +++ b/Indic-TTS/Trainer/tests/test_train_mnist.py @@ -0,0 +1,23 @@ +import os + +import torch + +from tests.utils.mnist import MnistModel, MnistModelConfig +from trainer import Trainer, TrainerArgs + +is_cuda = torch.cuda.is_available() + + +def test_train_mnist(): + model = MnistModel() + trainer = Trainer( + TrainerArgs(), MnistModelConfig(), model=model, output_path=os.getcwd(), gpu=0 if is_cuda else None + ) + + trainer.fit() + loss1 = trainer.keep_avg_train["avg_loss"] + + trainer.fit() + loss2 = trainer.keep_avg_train["avg_loss"] + + assert loss1 > loss2 diff --git a/Indic-TTS/Trainer/tests/utils/mnist.py b/Indic-TTS/Trainer/tests/utils/mnist.py new file mode 100644 index 0000000000000000000000000000000000000000..d9c8150493565a5250cfa52033f5a96c1fa4efcb --- /dev/null +++ b/Indic-TTS/Trainer/tests/utils/mnist.py @@ -0,0 +1,72 @@ +import os +from dataclasses import dataclass + +import torch +from torch import nn +from torch.nn import functional as F +from torch.utils.data import DataLoader +from torchvision import transforms +from torchvision.datasets import MNIST + +from trainer import TrainerConfig, TrainerModel + + +@dataclass +class MnistModelConfig(TrainerConfig): + optimizer: str = "Adam" + lr: float = 0.001 + epochs: int = 1 + print_step: int = 1 + save_step: int = 5 + plot_step: int = 5 + dashboard_logger: str = "tensorboard" + + +class MnistModel(TrainerModel): + def __init__(self): + super().__init__() + + # mnist images are (1, 28, 28) (channels, height, width) + self.layer_1 = nn.Linear(28 * 28, 128) + self.layer_2 = nn.Linear(128, 256) + self.layer_3 = nn.Linear(256, 10) + + def forward(self, x): + batch_size, _, _, _ = x.size() + + # (b, 1, 28, 28) -> (b, 1*28*28) + x = x.view(batch_size, -1) + x = self.layer_1(x) + x = F.relu(x) + x = self.layer_2(x) + x = F.relu(x) + x = self.layer_3(x) + + x = F.log_softmax(x, dim=1) + return x + + def train_step(self, batch, criterion): + x, y = batch + logits = self(x) + loss = criterion(logits, y) + return {"model_outputs": logits}, {"loss": loss} + + def eval_step(self, batch, criterion): + x, y = batch + logits = self(x) + loss = criterion(logits, y) + return {"model_outputs": logits}, {"loss": loss} + + @staticmethod + def get_criterion(): + return torch.nn.NLLLoss() + + def get_data_loader( + self, config, assets, is_eval, samples, verbose, num_gpus, rank=0 + ): # pylint: disable=unused-argument + transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]) + dataset = MNIST(os.getcwd(), train=not is_eval, download=True, transform=transform) + dataset.data = dataset.data[:256] + dataset.targets = dataset.targets[:256] + dataloader = DataLoader(dataset, batch_size=config.batch_size) + return dataloader diff --git a/Indic-TTS/Trainer/tests/utils/train_mnist.py b/Indic-TTS/Trainer/tests/utils/train_mnist.py new file mode 100644 index 0000000000000000000000000000000000000000..e4ec66fa8f54af27dc5aa4e612ec1c5eda9f82c2 --- /dev/null +++ b/Indic-TTS/Trainer/tests/utils/train_mnist.py @@ -0,0 +1,31 @@ +from distutils.command.config import config + +from mnist import MnistModel, MnistModelConfig + +from trainer import Trainer, TrainerArgs + + +def main(): + """Run `MNIST` model training from scratch or from previous checkpoint.""" + # init args and config + train_args = TrainerArgs() + config = MnistModelConfig() + + # init the model from config + model = MnistModel() + + # init the trainer and ๐Ÿš€ + trainer = Trainer( + train_args, + config, + config.output_path, + model=model, + train_samples=model.get_data_loader(config, None, False, None, None, None), + eval_samples=model.get_data_loader(config, None, True, None, None, None), + parse_command_line_args=True, + ) + trainer.fit() + + +if __name__ == "__main__": + main() diff --git a/Indic-TTS/Trainer/trainer.egg-info/PKG-INFO b/Indic-TTS/Trainer/trainer.egg-info/PKG-INFO new file mode 100644 index 0000000000000000000000000000000000000000..ba4a7eca914a0169640a0b12515b0562ad9a917a --- /dev/null +++ b/Indic-TTS/Trainer/trainer.egg-info/PKG-INFO @@ -0,0 +1,104 @@ +Metadata-Version: 2.1 +Name: trainer +Version: 0.0.12 +Summary: General purpose model trainer for PyTorch that is more flexible than it should be, by ๐ŸธCoqui. +Home-page: https://github.com/coqui-ai/Trainer +Author: Eren Gรถlge +Author-email: egolge@coqui.ai +License: Apache2 +Project-URL: Documentation, https://github.com/coqui-ai/Trainer/ +Project-URL: Tracker, https://github.com/coqui-ai/Trainer/issues +Project-URL: Repository, https://github.com/coqui-ai/Trainer +Project-URL: Discussions, https://github.com/coqui-ai/Trainer/discussions +Classifier: Environment :: Console +Classifier: Natural Language :: English +Classifier: Development Status :: 3 - Alpha +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Requires-Python: >=3.6.0, <3.11 +Description-Content-Type: text/markdown +Provides-Extra: dev +Provides-Extra: test +Provides-Extra: all + +

+ +# ๐Ÿ‘Ÿ Trainer +An opinionated general purpose model trainer on PyTorch with a simple code base. + +## Installation + +From Github: + +```console +git clone https://github.com/coqui-ai/Trainer +cd Trainer +make install +``` + +From PyPI: + +```console +pip install trainer +``` + +Prefer installing from Github as it is more stable. + +## Implementing a model +Subclass and overload the functions in the [```TrainerModel()```](trainer/model.py) + +## Training a model +See the test script [here](tests/test_train_mnist.py) training a basic MNIST model. + +## Training with DDP + +```console +$ python -m trainer.distribute --script path/to/your/train.py --gpus "0,1" +``` + +We don't use ```.spawn()``` to initiate multi-gpu training since it causes certain limitations. + +- Everything must the pickable. +- ```.spawn()``` trains the model in subprocesses and the model in the main process is not updated. +- DataLoader with N processes gets really slow when the N is large. + +## Profiling example + +- Create the torch profiler as you like and pass it to the trainer. + ```python + import torch + profiler = torch.profiler.profile( + activities=[ + torch.profiler.ProfilerActivity.CPU, + torch.profiler.ProfilerActivity.CUDA, + ], + schedule=torch.profiler.schedule(wait=1, warmup=1, active=3, repeat=2), + on_trace_ready=torch.profiler.tensorboard_trace_handler("./profiler/"), + record_shapes=True, + profile_memory=True, + with_stack=True, + ) + prof = trainer.profile_fit(profiler, epochs=1, small_run=64) + then run Tensorboard + ``` +- Run the tensorboard. + ```console + tensorboard --logdir="./profiler/" + ``` + +## Supported Experiment Loggers +- [Tensorboard](https://www.tensorflow.org/tensorboard) - actively maintained +- [ClearML](https://clear.ml/) - actively maintained +- [MLFlow](https://mlflow.org/) +- [Aim](https://aimstack.io/) +- [WandDB](https://wandb.ai/) + +To add a new logger, you must subclass [BaseDashboardLogger](trainer/logging/base_dash_logger.py) and overload its functions. + + diff --git a/Indic-TTS/Trainer/trainer.egg-info/SOURCES.txt b/Indic-TTS/Trainer/trainer.egg-info/SOURCES.txt new file mode 100644 index 0000000000000000000000000000000000000000..874520edcbecec0cabe8b7a81ffce8f04dbfd159 --- /dev/null +++ b/Indic-TTS/Trainer/trainer.egg-info/SOURCES.txt @@ -0,0 +1,41 @@ +MANIFEST.in +README.md +pyproject.toml +requirements.dev.txt +requirements.test.txt +requirements.txt +setup.cfg +setup.py +tests/test_continue_train.py +tests/test_lr_schedulers.py +tests/test_num_gpus.py +tests/test_train_mnist.py +trainer/README.md +trainer/VERSION +trainer/__init__.py +trainer/callbacks.py +trainer/distribute.py +trainer/generic_utils.py +trainer/io.py +trainer/logger.py +trainer/model.py +trainer/torch.py +trainer/trainer.py +trainer/trainer_utils.py +trainer.egg-info/PKG-INFO +trainer.egg-info/SOURCES.txt +trainer.egg-info/dependency_links.txt +trainer.egg-info/not-zip-safe +trainer.egg-info/requires.txt +trainer.egg-info/top_level.txt +trainer/logging/__init__.py +trainer/logging/aim_logger.py +trainer/logging/base_dash_logger.py +trainer/logging/clearml_logger.py +trainer/logging/console_logger.py +trainer/logging/dummy_logger.py +trainer/logging/mlflow_logger.py +trainer/logging/tensorboard_logger.py +trainer/logging/wandb_logger.py +trainer/utils/__init__.py +trainer/utils/distributed.py \ No newline at end of file diff --git a/Indic-TTS/Trainer/trainer.egg-info/dependency_links.txt b/Indic-TTS/Trainer/trainer.egg-info/dependency_links.txt new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/Indic-TTS/Trainer/trainer.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/Indic-TTS/Trainer/trainer.egg-info/not-zip-safe b/Indic-TTS/Trainer/trainer.egg-info/not-zip-safe new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/Indic-TTS/Trainer/trainer.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/Indic-TTS/Trainer/trainer.egg-info/requires.txt b/Indic-TTS/Trainer/trainer.egg-info/requires.txt new file mode 100644 index 0000000000000000000000000000000000000000..2aadacf85211eeb8d042d671eda1958557c9b18c --- /dev/null +++ b/Indic-TTS/Trainer/trainer.egg-info/requires.txt @@ -0,0 +1,30 @@ +torch>=1.7 +coqpit +fsspec +tensorboardX +soundfile +protobuf<3.20,>=3.9.2 + +[all] +torch>=1.7 +coqpit +fsspec +tensorboardX +soundfile +protobuf<3.20,>=3.9.2 +black +coverage +isort +pytest +pylint==2.10.2 +torchvision + +[dev] +black +coverage +isort +pytest +pylint==2.10.2 + +[test] +torchvision diff --git a/Indic-TTS/Trainer/trainer.egg-info/top_level.txt b/Indic-TTS/Trainer/trainer.egg-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..ed31ec6f08691694aaf51b646ce0cdacb7e17d22 --- /dev/null +++ b/Indic-TTS/Trainer/trainer.egg-info/top_level.txt @@ -0,0 +1 @@ +trainer diff --git a/Indic-TTS/Trainer/trainer/README.md b/Indic-TTS/Trainer/trainer/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0a48b8909d44bfbbc8c4f09d88e1878418f42a88 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/README.md @@ -0,0 +1,4 @@ +# ๐Ÿ‘Ÿ Coqui Trainer +โ—Warning: Unstable Prototype + +This trainer will embrace ๐ŸธCoqui STT/TTS libraries and become the back-bone of ๐ŸธCoqui models. \ No newline at end of file diff --git a/Indic-TTS/Trainer/trainer/TODO.txt b/Indic-TTS/Trainer/trainer/TODO.txt new file mode 100644 index 0000000000000000000000000000000000000000..d3401feba799efe7da640eca602f04cc917cffb1 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/TODO.txt @@ -0,0 +1,14 @@ ++ Accumulate gradients b/w batches. ++ Abstract DashLogger ++ MLFlow logger +- Wrap model for not calling .module in DDP. +- Profiler integration. +- Overfitting to a batch. +- TPU training +- NOTE: Consider moving `training_assets` to the model implementation. +- BaseTrainingConfig +- Add Checkpoint manager +- Use `logging` instead of `print` +- Auto scaling the batch size and find the largest batch size for training. +- Stochastic weight averaging +- Deepspeed integration diff --git a/Indic-TTS/Trainer/trainer/VERSION b/Indic-TTS/Trainer/trainer/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..f252462193ffd25355269cc3fbdfa2b418dae6fa --- /dev/null +++ b/Indic-TTS/Trainer/trainer/VERSION @@ -0,0 +1 @@ +v0.0.12 diff --git a/Indic-TTS/Trainer/trainer/__init__.py b/Indic-TTS/Trainer/trainer/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..45e4c327eb2521ed3bf4955305d24c6da711fac3 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/__init__.py @@ -0,0 +1,9 @@ +import os + +from trainer.model import * +from trainer.trainer import * + +with open(os.path.join(os.path.dirname(__file__), "VERSION"), "r", encoding="utf-8") as f: + version = f.read().strip() + +__version__ = version diff --git a/Indic-TTS/Trainer/trainer/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/Trainer/trainer/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ab78f2e4c5e49c5f14d826c11ff04c22e74fb3cd Binary files /dev/null and b/Indic-TTS/Trainer/trainer/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/__pycache__/callbacks.cpython-37.pyc b/Indic-TTS/Trainer/trainer/__pycache__/callbacks.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..83cf8fc69c95a90bc795da00b795c58ddee7f2a1 Binary files /dev/null and b/Indic-TTS/Trainer/trainer/__pycache__/callbacks.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/__pycache__/generic_utils.cpython-37.pyc b/Indic-TTS/Trainer/trainer/__pycache__/generic_utils.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e5ff7de56b930ce2c15cdf2fdf55cbd9455108c Binary files /dev/null and b/Indic-TTS/Trainer/trainer/__pycache__/generic_utils.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/__pycache__/io.cpython-37.pyc b/Indic-TTS/Trainer/trainer/__pycache__/io.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..478834cfbde71231719aad4fd3094ec8e609042c Binary files /dev/null and b/Indic-TTS/Trainer/trainer/__pycache__/io.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/__pycache__/logger.cpython-37.pyc b/Indic-TTS/Trainer/trainer/__pycache__/logger.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4608e74dcdc93148ebfb3a8672af1a26f0acee7d Binary files /dev/null and b/Indic-TTS/Trainer/trainer/__pycache__/logger.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/__pycache__/model.cpython-37.pyc b/Indic-TTS/Trainer/trainer/__pycache__/model.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a159544e63fcbeff7b523129171ada55e7c129d7 Binary files /dev/null and b/Indic-TTS/Trainer/trainer/__pycache__/model.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/__pycache__/torch.cpython-37.pyc b/Indic-TTS/Trainer/trainer/__pycache__/torch.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..70984dae10c137bfb045a65ab8d7a154643f7b87 Binary files /dev/null and b/Indic-TTS/Trainer/trainer/__pycache__/torch.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/__pycache__/trainer.cpython-37.pyc b/Indic-TTS/Trainer/trainer/__pycache__/trainer.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..809f277e879a6e1df83351ac9c7e02b590e42ed2 Binary files /dev/null and b/Indic-TTS/Trainer/trainer/__pycache__/trainer.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/__pycache__/trainer_utils.cpython-37.pyc b/Indic-TTS/Trainer/trainer/__pycache__/trainer_utils.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..839d30c7a203f7e498eea4f81b9b88a4101058b2 Binary files /dev/null and b/Indic-TTS/Trainer/trainer/__pycache__/trainer_utils.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/callbacks.py b/Indic-TTS/Trainer/trainer/callbacks.py new file mode 100644 index 0000000000000000000000000000000000000000..88c408b7bbfdb7313145022eb794d8fe055ade95 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/callbacks.py @@ -0,0 +1,153 @@ +class TrainerCallback: + def __init__(self) -> None: + self.callbacks_on_init_start = [] + self.callbacks_on_init_end = [] + self.callbacks_on_epoch_start = [] + self.callbacks_on_epoch_end = [] + self.callbacks_on_train_step_start = [] + self.callbacks_on_train_step_end = [] + self.callbacks_on_keyboard_interrupt = [] + + def on_init_start(self, trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_init_start"): + trainer.model.module.on_init_start(trainer) + else: + if hasattr(trainer.model, "on_init_start"): + trainer.model.on_init_start(trainer) + + if hasattr(trainer.criterion, "on_init_start"): + trainer.criterion.on_init_start(trainer) + + if hasattr(trainer.optimizer, "on_init_start"): + trainer.optimizer.on_init_start(trainer) + + if self.callbacks_on_init_start: + for callback in self.callbacks_on_init_start: + callback(trainer) + + def on_init_end(self, trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_init_end"): + trainer.model.module.on_init_end(trainer) + else: + if hasattr(trainer.model, "on_init_end"): + trainer.model.on_init_end(trainer) + + if hasattr(trainer.criterion, "on_init_end"): + trainer.criterion.on_init_end(trainer) + + if hasattr(trainer.optimizer, "on_init_end"): + trainer.optimizer.on_init_end(trainer) + + if self.callbacks_on_init_end: + for callback in self.callbacks_on_init_start: + callback(trainer) + + def on_epoch_start(self, trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_epoch_start"): + trainer.model.module.on_epoch_start(trainer) + else: + if hasattr(trainer.model, "on_epoch_start"): + trainer.model.on_epoch_start(trainer) + + if hasattr(trainer.criterion, "on_epoch_start"): + trainer.criterion.on_epoch_start(trainer) + + if hasattr(trainer.optimizer, "on_epoch_start"): + trainer.optimizer.on_epoch_start(trainer) + + if self.callbacks_on_epoch_start: + for callback in self.callbacks_on_epoch_start: + callback(trainer) + + def on_epoch_end(self, trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_epoch_end"): + trainer.model.module.on_epoch_end(trainer) + else: + if hasattr(trainer.model, "on_epoch_end"): + trainer.model.on_epoch_end(trainer) + + if hasattr(trainer.criterion, "on_epoch_end"): + trainer.criterion.on_epoch_end(trainer) + + if hasattr(trainer.optimizer, "on_epoch_end"): + trainer.optimizer.on_epoch_end(trainer) + + if self.callbacks_on_epoch_end: + for callback in self.callbacks_on_epoch_end: + callback(trainer) + + @staticmethod + def before_backward_pass(trainer, loss_dict) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "before_backward_pass"): + trainer.model.module.before_backward_pass(loss_dict, trainer.optimizer) + else: + if hasattr(trainer.model, "before_backward_pass"): + trainer.model.before_backward_pass(loss_dict, trainer.optimizer) + + @staticmethod + def before_gradient_clipping(trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "before_gradient_clipping"): + trainer.model.module.before_gradient_clipping() + else: + if hasattr(trainer.model, "before_gradient_clipping"): + trainer.model.before_gradient_clipping() + + def on_train_step_start(self, trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_train_step_start"): + trainer.model.module.on_train_step_start(trainer) + else: + if hasattr(trainer.model, "on_train_step_start"): + trainer.model.on_train_step_start(trainer) + + if hasattr(trainer.criterion, "on_train_step_start"): + trainer.criterion.on_train_step_start(trainer) + + if hasattr(trainer.optimizer, "on_train_step_start"): + trainer.optimizer.on_train_step_start(trainer) + + if self.callbacks_on_train_step_start: + for callback in self.callbacks_on_train_step_start: + callback(trainer) + + def on_train_step_end(self, trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_train_step_end"): + trainer.model.module.on_train_step_end(trainer) + else: + if hasattr(trainer.model, "on_train_step_end"): + trainer.model.on_train_step_end(trainer) + + if hasattr(trainer.criterion, "on_train_step_end"): + trainer.criterion.on_train_step_end(trainer) + + if hasattr(trainer.optimizer, "on_train_step_end"): + trainer.optimizer.on_train_step_end(trainer) + + if self.callbacks_on_train_step_end: + for callback in self.callbacks_on_train_step_end: + callback(trainer) + + def on_keyboard_interrupt(self, trainer) -> None: + if hasattr(trainer.model, "module"): + if hasattr(trainer.model.module, "on_keyboard_interrupt"): + trainer.model.module.on_keyboard_interrupt(trainer) + else: + if hasattr(trainer.model, "on_keyboard_interrupt"): + trainer.model.on_keyboard_interrupt(trainer) + + if hasattr(trainer.criterion, "on_keyboard_interrupt"): + trainer.criterion.on_keyboard_interrupt(trainer) + + if hasattr(trainer.optimizer, "on_keyboard_interrupt"): + trainer.optimizer.on_keyboard_interrupt(trainer) + + if self.callbacks_on_keyboard_interrupt: + for callback in self.callbacks_on_keyboard_interrupt: + callback(trainer) diff --git a/Indic-TTS/Trainer/trainer/distribute.py b/Indic-TTS/Trainer/trainer/distribute.py new file mode 100644 index 0000000000000000000000000000000000000000..173c09656f3f56e6dc8d579f7254f225953498b7 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/distribute.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import pathlib +import subprocess +import time + +from trainer import TrainerArgs, logger + + +def distribute(): + """ + Call ๐Ÿ‘ŸTrainer training script in DDP mode. + """ + parser = TrainerArgs().init_argparse(arg_prefix="") + parser.add_argument("--script", type=str, help="Target training script to distibute.") + parser.add_argument( + "--gpus", + type=str, + help='GPU IDs to be used for distributed training in the format ```"0,1"```. Used if ```CUDA_VISIBLE_DEVICES``` is not set.', + ) + args, unargs = parser.parse_known_args() + + gpus = get_gpus(args) + + group_id = time.strftime("%Y_%m_%d-%H%M%S") + + # set arguments for train.py + folder_path = pathlib.Path(__file__).parent.absolute() + if os.path.exists(os.path.join(folder_path, args.script)): + command = [os.path.join(folder_path, args.script)] + else: + command = [args.script] + + # Pass all the TrainerArgs fields + command.append(f"--continue_path={args.continue_path}") + command.append(f"--restore_path={args.restore_path}") + command.append(f"--group_id=group_{group_id}") + command.append("--use_ddp=true") + command += unargs + command.append("") + + # run processes + gpus = [str(gpu) for gpu in gpus] + processes = [] + for rank, local_gpu_id in enumerate(gpus): + my_env = os.environ.copy() + my_env["PYTHON_EGG_CACHE"] = f"/tmp/tmp{local_gpu_id}" + my_env["RANK"] = f"{local_gpu_id}" + my_env["CUDA_VISIBLE_DEVICES"] = f"{','.join(gpus)}" + command[-1] = f"--rank={rank}" + # prevent stdout for processes with rank != 0 + stdout = None + p = subprocess.Popen(["python3"] + command, stdout=stdout, env=my_env) # pylint: disable=consider-using-with + processes.append(p) + logger.info(command) + + for p in processes: + p.wait() + + +def get_gpus(args): + # set active gpus from CUDA_VISIBLE_DEVICES or --gpus + if "CUDA_VISIBLE_DEVICES" in os.environ: + gpus = os.environ["CUDA_VISIBLE_DEVICES"] + else: + gpus = args.gpus + gpus = list(map(str.strip, gpus.split(","))) + return gpus + + +if __name__ == "__main__": + distribute() diff --git a/Indic-TTS/Trainer/trainer/generic_utils.py b/Indic-TTS/Trainer/trainer/generic_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..065dad96aaaf277f6c7dc94632d3fe6e71a59f75 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/generic_utils.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- +import datetime +import os +import subprocess + +import fsspec +import torch + +from trainer.logger import logger + + +def to_cuda(x: torch.Tensor) -> torch.Tensor: + if x is None: + return None + if torch.is_tensor(x): + x = x.contiguous() + if torch.cuda.is_available(): + x = x.cuda(non_blocking=True) + return x + + +def get_cuda(): + use_cuda = torch.cuda.is_available() + device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + return use_cuda, device + + +def get_git_branch(): + try: + out = subprocess.check_output(["git", "branch"]).decode("utf8") + current = next(line for line in out.split("\n") if line.startswith("*")) + current.replace("* ", "") + except subprocess.CalledProcessError: + current = "inside_docker" + except FileNotFoundError: + current = "unknown" + return current + + +def get_commit_hash(): + """https://stackoverflow.com/questions/14989858/get-the-current-git-hash-in-a-python-script""" + try: + commit = subprocess.check_output(["git", "rev-parse", "--short", "HEAD"]).decode().strip() + # Not copying .git folder into docker container + except (subprocess.CalledProcessError, FileNotFoundError): + commit = "0000000" + return commit + + +def get_experiment_folder_path(root_path, model_name): + """Get an experiment folder path with the current date and time""" + date_str = datetime.datetime.now().strftime("%B-%d-%Y_%I+%M%p") + commit_hash = get_commit_hash() + output_folder = os.path.join(root_path, model_name + "-" + date_str + "-" + commit_hash) + return output_folder + + +def remove_experiment_folder(experiment_path): + """Check folder if there is a checkpoint, otherwise remove the folder""" + fs = fsspec.get_mapper(experiment_path).fs + checkpoint_files = fs.glob(experiment_path + "/*.pth") + if not checkpoint_files: + if fs.exists(experiment_path): + fs.rm(experiment_path, recursive=True) + logger.info(" ! Run is removed from %s", experiment_path) + else: + logger.info(" ! Run is kept in %s", experiment_path) + + +def count_parameters(model): + r"""Count number of trainable parameters in a network""" + return sum(p.numel() for p in model.parameters() if p.requires_grad) + + +def set_partial_state_dict(model_dict, checkpoint_state, c): + # Partial initialization: if there is a mismatch with new and old layer, it is skipped. + for k, v in checkpoint_state.items(): + if k not in model_dict: + logger.info(" | > Layer missing in the model definition: %s", k) + # 1. filter out unnecessary keys + pretrained_dict = {k: v for k, v in checkpoint_state.items() if k in model_dict} + # 2. filter out different size layers + pretrained_dict = {k: v for k, v in pretrained_dict.items() if v.numel() == model_dict[k].numel()} + # 3. skip reinit layers + if c.has("reinit_layers") and c.reinit_layers is not None: + for reinit_layer_name in c.reinit_layers: + pretrained_dict = {k: v for k, v in pretrained_dict.items() if reinit_layer_name not in k} + # 4. overwrite entries in the existing state dict + model_dict.update(pretrained_dict) + logger.info(" | > %i / %i layers are restored.", len(pretrained_dict), len(model_dict)) + return model_dict + + +class KeepAverage: + def __init__(self): + self.avg_values = {} + self.iters = {} + + def __getitem__(self, key): + return self.avg_values[key] + + def items(self): + return self.avg_values.items() + + def add_value(self, name, init_val=0, init_iter=0): + self.avg_values[name] = init_val + self.iters[name] = init_iter + + def update_value(self, name, value, weighted_avg=False): + if name not in self.avg_values: + # add value if not exist before + self.add_value(name, init_val=value) + else: + # else update existing value + if weighted_avg: + self.avg_values[name] = 0.99 * self.avg_values[name] + 0.01 * value + self.iters[name] += 1 + else: + self.avg_values[name] = self.avg_values[name] * self.iters[name] + value + self.iters[name] += 1 + self.avg_values[name] /= self.iters[name] + + def add_values(self, name_dict): + for key, value in name_dict.items(): + self.add_value(key, init_val=value) + + def update_values(self, value_dict): + for key, value in value_dict.items(): + self.update_value(key, value) diff --git a/Indic-TTS/Trainer/trainer/io.py b/Indic-TTS/Trainer/trainer/io.py new file mode 100644 index 0000000000000000000000000000000000000000..0e48f4cc57346bd8ecae69152ab2373d73b6904a --- /dev/null +++ b/Indic-TTS/Trainer/trainer/io.py @@ -0,0 +1,290 @@ +import datetime +import json +import os +import re +from pathlib import Path +from typing import Any, Callable, Dict, List, Tuple, Union +from urllib.parse import urlparse + +import fsspec +import torch +from coqpit import Coqpit + +from trainer.logger import logger + + +def copy_model_files(config: Coqpit, out_path, new_fields): + """Copy config.json and other model files to training folder and add + new fields. + + Args: + config (Coqpit): Coqpit config defining the training run. + out_path (str): output path to copy the file. + new_fields (dict): new fileds to be added or edited + in the config file. + """ + copy_config_path = os.path.join(out_path, "config.json") + # add extra information fields + new_config = {**config.to_dict(), **new_fields} + # TODO: Revert to config.save_json() once Coqpit supports arbitrary paths. + with fsspec.open(copy_config_path, "w", encoding="utf8") as f: + json.dump(new_config, f, indent=4) + + +def load_fsspec( + path: str, + map_location: Union[ + str, + Callable, + torch.device, + Dict[Union[str, torch.device], Union[str, torch.device]], + ] = None, + **kwargs, +) -> Any: + """Like torch.load but can load from other locations (e.g. s3:// , gs://). + + Args: + path: Any path or url supported by fsspec. + map_location: torch.device or str. + **kwargs: Keyword arguments forwarded to torch.load. + + Returns: + Object stored in path. + """ + with fsspec.open(path, "rb") as f: + return torch.load(f, map_location=map_location, **kwargs) + + +def load_checkpoint(model, checkpoint_path, use_cuda=False, eval=False): # pylint: disable=redefined-builtin + state = load_fsspec(checkpoint_path, map_location=torch.device("cpu")) + model.load_state_dict(state["model"]) + if use_cuda: + model.cuda() + if eval: + model.eval() + return model, state + + +def save_fsspec(state: Any, path: str, **kwargs): + """Like torch.save but can save to other locations (e.g. s3:// , gs://). + + Args: + state: State object to save + path: Any path or url supported by fsspec. + **kwargs: Keyword arguments forwarded to torch.save. + """ + with fsspec.open(path, "wb") as f: + torch.save(state, f, **kwargs) + + +def save_model(config, model, optimizer, scaler, current_step, epoch, output_path, save_func, **kwargs): + if hasattr(model, "module"): + model_state = model.module.state_dict() + else: + model_state = model.state_dict() + if isinstance(optimizer, list): + optimizer_state = [optim.state_dict() for optim in optimizer] + else: + optimizer_state = optimizer.state_dict() if optimizer is not None else None + + if isinstance(scaler, list): + scaler_state = [s.state_dict() for s in scaler] + else: + scaler_state = scaler.state_dict() if scaler is not None else None + + if isinstance(config, Coqpit): + config = config.to_dict() + + state = { + "config": config, + "model": model_state, + "optimizer": optimizer_state, + "scaler": scaler_state, + "step": current_step, + "epoch": epoch, + "date": datetime.date.today().strftime("%B %d, %Y"), + } + state.update(kwargs) + if save_func: + save_func(state, output_path) + else: + save_fsspec(state, output_path) + + +def save_checkpoint( + config, + model, + optimizer, + scaler, + current_step, + epoch, + output_folder, + save_n_checkpoints=None, + save_func=None, + **kwargs, +): + file_name = f"checkpoint_{current_step}.pth" + checkpoint_path = os.path.join(output_folder, file_name) + + logger.info("\n > CHECKPOINT : %s", checkpoint_path) + save_model( + config, + model, + optimizer, + scaler, + current_step, + epoch, + checkpoint_path, + save_func=save_func, + **kwargs, + ) + if save_n_checkpoints is not None: + keep_n_checkpoints(output_folder, save_n_checkpoints) + + +def save_best_model( + current_loss, + best_loss, + config, + model, + optimizer, + scaler, + current_step, + epoch, + out_path, + keep_all_best=False, + keep_after=10000, + save_func=None, + **kwargs, +): + if current_loss < best_loss: + best_model_name = f"best_model_{current_step}.pth" + checkpoint_path = os.path.join(out_path, best_model_name) + logger.info(" > BEST MODEL : %s", checkpoint_path) + save_model( + config, + model, + optimizer, + scaler, + current_step, + epoch, + checkpoint_path, + model_loss=current_loss, + save_func=save_func, + **kwargs, + ) + fs = fsspec.get_mapper(out_path).fs + # only delete previous if current is saved successfully + if not keep_all_best or (current_step < keep_after): + model_names = fs.glob(os.path.join(out_path, "best_model*.pth")) + for model_name in model_names: + if os.path.basename(model_name) != best_model_name: + fs.rm(model_name) + # create a shortcut which always points to the currently best model + shortcut_name = "best_model.pth" + shortcut_path = os.path.join(out_path, shortcut_name) + fs.copy(checkpoint_path, shortcut_path) + best_loss = current_loss + return best_loss + + +def get_last_checkpoint(path: str) -> Tuple[str, str]: + """Get latest checkpoint or/and best model in path. + + It is based on globbing for `*.pth` and the RegEx + `(checkpoint|best_model)_([0-9]+)`. + + Args: + path: Path to files to be compared. + + Raises: + ValueError: If no checkpoint or best_model files are found. + + Returns: + Path to the last checkpoint + Path to best checkpoint + """ + fs = fsspec.get_mapper(path).fs + file_names = fs.glob(os.path.join(path, "*.pth")) + scheme = urlparse(path).scheme + if scheme: # scheme is not preserved in fs.glob, add it back + file_names = [scheme + "://" + file_name for file_name in file_names] + last_models = {} + last_model_nums = {} + for key in ["checkpoint", "best_model"]: + last_model_num = None + last_model = None + # pass all the checkpoint files and find + # the one with the largest model number suffix. + for file_name in file_names: + match = re.search(f"{key}_([0-9]+)", file_name) + if match is not None: + model_num = int(match.groups()[0]) + if last_model_num is None or model_num > last_model_num: + last_model_num = model_num + last_model = file_name + + # if there is no checkpoint found above + # find the checkpoint with the latest + # modification date. + key_file_names = [fn for fn in file_names if key in fn] + if last_model is None and len(key_file_names) > 0: + last_model = max(key_file_names, key=os.path.getctime) + last_model_num = load_fsspec(last_model)["step"] + + if last_model is not None: + last_models[key] = last_model + last_model_nums[key] = last_model_num + + # check what models were found + if not last_models: + raise ValueError(f"No models found in continue path {path}!") + if "checkpoint" not in last_models: # no checkpoint just best model + last_models["checkpoint"] = last_models["best_model"] + elif "best_model" not in last_models: # no best model + # this shouldn't happen, but let's handle it just in case + last_models["best_model"] = last_models["checkpoint"] + # finally check if last best model is more recent than checkpoint + elif last_model_nums["best_model"] > last_model_nums["checkpoint"]: + last_models["checkpoint"] = last_models["best_model"] + + return last_models["checkpoint"], last_models["best_model"] + + +def keep_n_checkpoints(path: str, n: int) -> None: + """Keep only the last n checkpoints in path. + + Args: + path: Path to files to be compared. + n: Number of checkpoints to keep. + """ + fs = fsspec.get_mapper(path).fs + file_names = sort_checkpoints(path, "checkpoint") + if len(file_names) > n: + for file_name in file_names[:-n]: + fs.rm(file_name) + + +def sort_checkpoints(output_path: str, checkpoint_prefix: str, use_mtime: bool = False) -> List[str]: + """Sort checkpoint paths based on the checkpoint step number. + + Args: + output_path (str): Path to directory containing checkpoints. + checkpoint_prefix (str): Prefix of the checkpoint files. + use_mtime (bool): If True, use modification dates to determine checkpoint order. + """ + ordering_and_checkpoint_path = [] + + glob_checkpoints = [str(x) for x in Path(output_path).glob(f"{checkpoint_prefix}_*")] + + for path in glob_checkpoints: + if use_mtime: + ordering_and_checkpoint_path.append((os.path.getmtime(path), path)) + else: + regex_match = re.match(f".*{checkpoint_prefix}_([0-9]+)", path) + if regex_match is not None and regex_match.groups() is not None: + ordering_and_checkpoint_path.append((int(regex_match.groups()[0]), path)) + + checkpoints_sorted = sorted(ordering_and_checkpoint_path) + checkpoints_sorted = [checkpoint[1] for checkpoint in checkpoints_sorted] + return checkpoints_sorted diff --git a/Indic-TTS/Trainer/trainer/logger.py b/Indic-TTS/Trainer/trainer/logger.py new file mode 100644 index 0000000000000000000000000000000000000000..ad30d380a98b475456e2e211770305d29eb9ee7f --- /dev/null +++ b/Indic-TTS/Trainer/trainer/logger.py @@ -0,0 +1,8 @@ +import logging + +handler = logging.StreamHandler() +handler.setFormatter(logging.Formatter("")) +logger = logging.getLogger("trainer") +logger.addHandler(handler) +logger.setLevel(logging.INFO) +logger.propagate = False diff --git a/Indic-TTS/Trainer/trainer/logging/__init__.py b/Indic-TTS/Trainer/trainer/logging/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..62327851e819d8ba22e55e9e027f4aea34b353fc --- /dev/null +++ b/Indic-TTS/Trainer/trainer/logging/__init__.py @@ -0,0 +1,62 @@ +import os + +from trainer.logging.console_logger import ConsoleLogger +from trainer.logging.dummy_logger import DummyLogger + +# pylint: disable=import-outside-toplevel + + +def get_mlflow_tracking_url(): + if "MLFLOW_TRACKING_URI" in os.environ: + return os.environ["MLFLOW_TRACKING_URI"] + return None + + +def get_ai_repo_url(): + if "AIM_TRACKING_URI" in os.environ: + return os.environ["AIM_TRACKING_URI"] + return None + + +def logger_factory(config, output_path): + run_name = config.run_name + project_name = config.project_name + log_uri = config.logger_uri if config.logger_uri else output_path + + if config.dashboard_logger == "tensorboard": + from trainer.logging.tensorboard_logger import TensorboardLogger + + model_name = f"{project_name}@{run_name}" if project_name else run_name + dashboard_logger = TensorboardLogger(log_uri, model_name=model_name) + + elif config.dashboard_logger == "wandb": + from trainer.logging.wandb_logger import WandbLogger + + dashboard_logger = WandbLogger( # pylint: disable=abstract-class-instantiated + project=project_name, + name=run_name, + config=config, + entity=config.wandb_entity, + ) + + elif config.dashboard_logger == "mlflow": + from trainer.logging.mlflow_logger import MLFlowLogger + + dashboard_logger = MLFlowLogger(log_uri=log_uri, model_name=project_name) + + elif config.dashboard_logger == "aim": + from trainer.logging.aim_logger import AimLogger + + dashboard_logger = AimLogger(repo=log_uri, model_name=project_name) + + elif config.dashboard_logger == "clearml": + from trainer.logging.clearml_logger import ClearMLLogger + + dashboard_logger = ClearMLLogger( + output_uri=log_uri, local_path=output_path, project_name=project_name, task_name=run_name + ) + + else: + raise ValueError(f"Unknown dashboard logger: {config.dashboard_logger}") + + return dashboard_logger diff --git a/Indic-TTS/Trainer/trainer/logging/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/Trainer/trainer/logging/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bf939ca63072f9e0ae3a17b5b17c0df115691090 Binary files /dev/null and b/Indic-TTS/Trainer/trainer/logging/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/logging/__pycache__/base_dash_logger.cpython-37.pyc b/Indic-TTS/Trainer/trainer/logging/__pycache__/base_dash_logger.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f4f486fd09f31daabd7ca82ad820ae2df3e53317 Binary files /dev/null and b/Indic-TTS/Trainer/trainer/logging/__pycache__/base_dash_logger.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/logging/__pycache__/console_logger.cpython-37.pyc b/Indic-TTS/Trainer/trainer/logging/__pycache__/console_logger.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..638679a2527d0ac6cfc0fd3724417cdac3063f5b Binary files /dev/null and b/Indic-TTS/Trainer/trainer/logging/__pycache__/console_logger.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/logging/__pycache__/dummy_logger.cpython-37.pyc b/Indic-TTS/Trainer/trainer/logging/__pycache__/dummy_logger.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9269303119ef85663107f68857e3bdce78fb3f01 Binary files /dev/null and b/Indic-TTS/Trainer/trainer/logging/__pycache__/dummy_logger.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/logging/aim_logger.py b/Indic-TTS/Trainer/trainer/logging/aim_logger.py new file mode 100644 index 0000000000000000000000000000000000000000..30e24183a8c1cbc37f4f87d419715ed0efa89a11 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/logging/aim_logger.py @@ -0,0 +1,166 @@ +import torch + +from trainer.logging.base_dash_logger import BaseDashboardLogger +from trainer.trainer_utils import is_aim_available +from trainer.utils.distributed import rank_zero_only + +if is_aim_available(): + # import PIL + from aim import Audio, Image, Repo, Text + from aim.sdk.run import Run + + +class AimLogger(BaseDashboardLogger): + def __init__( + self, + repo: str, + model_name: str, + tags: str = None, + ): + self._context = None + self.model_name = model_name + self.run = Run(repo=repo, experiment=model_name) + self.repo = Repo(repo) + + # query = f"runs.name == '{model_name}'" + # runs = self.repo.query_runs(query=query) + + if tags: + for tag in tags.split(","): + self.run.add_tag(tag) + + # @staticmethod + # def __fig_to_pil(image): + # """Convert Matplotlib figure to PIL image.""" + # return PIL.Image.frombytes("RGB", image.canvas.get_width_height(), image.canvas.tostring_rgb()) + + @property + def context(self): + return self._context + + @context.setter + def context(self, context): + self._context = context + + def model_weights(self, model, step): + layer_num = 1 + for name, param in model.named_parameters(): + if param.numel() == 1: + self.run.log_metric("layer{}-{}/value".format(layer_num, name), param.max(), step) + else: + self.run.log_metric("layer{}-{}/max".format(layer_num, name), param.max(), step) + self.run.log_metric("layer{}-{}/min".format(layer_num, name), param.min(), step) + self.run.log_metric("layer{}-{}/mean".format(layer_num, name), param.mean(), step) + self.run.log_metric("layer{}-{}/std".format(layer_num, name), param.std(), step) + # MlFlow does not support histograms + # self.client.addรฅ_histogram("layer{}-{}/param".format(layer_num, name), param, step) + # self.client.add_histogram("layer{}-{}/grad".format(layer_num, name), param.grad, step) + layer_num += 1 + + def add_config(self, config): + """TODO: Add config to AIM""" + # self.run['hparams'] = config.to_dict() + self.add_text("model-config", f"
{config.to_json()}
", 0) + + def add_scalar(self, title, value, step): + self.run.track(value, name=title, step=step, context=self.context) + + def add_text(self, title, text, step): + self.run.track( + Text(text), # Pass a string you want to track + name=title, # The name of distributions + step=step, # Step index (optional) + context=self.context, + ) + + def add_figure(self, title, figure, step): + self.run.track( + Image(figure, title), # Pass image data and/or caption + name=title, # The name of image set + step=step, # Step index (optional) + context=self.context, + ) + + def add_artifact(self, file_or_dir, name, artifact_type, aliases=None): # pylint: disable=W0613, R0201 + # AIM does not support artifacts + ... + + def add_audio(self, title, audio, step, sample_rate): + self.run.track( + Audio(audio), # Pass audio file or numpy array + name=title, # The name of distributions + step=step, # Step index (optional) + context=self.context, + ) + + @rank_zero_only + def add_scalars(self, scope_name, stats, step): + for key, value in stats.items(): + if torch.is_tensor(value): + value = value.item() + self.run.track(value, name="{}-{}".format(scope_name, key), step=step, context=self.context) + + @rank_zero_only + def add_figures(self, scope_name, figures, step): + for key, value in figures.items(): + title = "{}/{}/{}.png".format(scope_name, key, step) + self.run.track( + Image(value, title), # Pass image data and/or caption + name=title, # The name of image set + step=step, # Step index (optional) + context=self.context, + ) + + @rank_zero_only + def add_audios(self, scope_name, audios, step, sample_rate): + for key, value in audios.items(): + title = "{}/{}/{}.wav".format(scope_name, key, step) + self.run.track( + Audio(value), # Pass audio file or numpy array + name=title, # The name of distributions + step=step, # Step index (optional) + context=self.context, + ) + + def train_step_stats(self, step, stats): + self.context = {"subset": "train"} + super().train_step_stats(step, stats) + + def train_epoch_stats(self, step, stats): + self.context = {"subset": "train"} + super().train_epoch_stats(step, stats) + + def train_figures(self, step, figures): + self.context = {"subset": "train"} + super().train_figures(step, figures) + + def train_audios(self, step, audios, sample_rate): + self.context = {"subset": "train"} + super().train_audios(step, audios, sample_rate) + + def eval_stats(self, step, stats): + self.context = {"subset": "eval"} + super().eval_stats(step, stats) + + def eval_figures(self, step, figures): + self.context = {"subset": "eval"} + super().eval_figures(step, figures) + + def eval_audios(self, step, audios, sample_rate): + self.context = {"subset": "eval"} + super().eval_audios(step, audios, sample_rate) + + def test_audios(self, step, audios, sample_rate): + self.context = {"subset": "test"} + super().test_audios(step, audios, sample_rate) + + def test_figures(self, step, figures): + self.context = {"subset": "test"} + super().test_figures(step, figures) + + def flush(self): + pass + + @rank_zero_only + def finish(self): + super().close() diff --git a/Indic-TTS/Trainer/trainer/logging/base_dash_logger.py b/Indic-TTS/Trainer/trainer/logging/base_dash_logger.py new file mode 100644 index 0000000000000000000000000000000000000000..11377eb4cadf8a3d930a229ab07c4e8cca8d4d1e --- /dev/null +++ b/Indic-TTS/Trainer/trainer/logging/base_dash_logger.py @@ -0,0 +1,88 @@ +from abc import ABC, abstractmethod +from typing import Dict, Union + +from trainer.io import save_fsspec +from trainer.utils.distributed import rank_zero_only + + +class BaseDashboardLogger(ABC): + @abstractmethod + def add_scalar(self, title: str, value: float, step: int) -> None: + pass + + @abstractmethod + def add_figure( + self, + title: str, + figure: Union["matplotlib.figure.Figure", "plotly.graph_objects.Figure"], + step: int, + ) -> None: + pass + + @abstractmethod + def add_config(self, config): + pass + + @abstractmethod + def add_audio(self, title: str, audio: "np.ndarray", step: int, sample_rate: int) -> None: + pass + + @abstractmethod + def add_text(self, title: str, text: str, step: int) -> None: + pass + + @abstractmethod + def add_artifact(self, file_or_dir: str, name: str, artifact_type: str, aliases=None): + pass + + @abstractmethod + def add_scalars(self, scope_name: str, scalars: Dict, step: int): + pass + + @abstractmethod + def add_figures(self, scope_name: str, figures: Dict, step: int): + pass + + @abstractmethod + def add_audios(self, scope_name: str, audios: Dict, step: int, sample_rate: int): + pass + + @abstractmethod + def flush(self): + pass + + @abstractmethod + def finish(self): + pass + + @staticmethod + @rank_zero_only + def save_model(state: Dict, path: str): + save_fsspec(state, path) + + def train_step_stats(self, step, stats): + self.add_scalars(scope_name="TrainIterStats", scalars=stats, step=step) + + def train_epoch_stats(self, step, stats): + self.add_scalars(scope_name="TrainEpochStats", scalars=stats, step=step) + + def train_figures(self, step, figures): + self.add_figures(scope_name="TrainFigures", figures=figures, step=step) + + def train_audios(self, step, audios, sample_rate): + self.add_audios(scope_name="TrainAudios", audios=audios, step=step, sample_rate=sample_rate) + + def eval_stats(self, step, stats): + self.add_scalars(scope_name="EvalStats", scalars=stats, step=step) + + def eval_figures(self, step, figures): + self.add_figures(scope_name="EvalFigures", figures=figures, step=step) + + def eval_audios(self, step, audios, sample_rate): + self.add_audios(scope_name="EvalAudios", audios=audios, step=step, sample_rate=sample_rate) + + def test_audios(self, step, audios, sample_rate): + self.add_audios(scope_name="TestAudios", audios=audios, step=step, sample_rate=sample_rate) + + def test_figures(self, step, figures): + self.add_figures(scope_name="TestFigures", figures=figures, step=step) diff --git a/Indic-TTS/Trainer/trainer/logging/clearml_logger.py b/Indic-TTS/Trainer/trainer/logging/clearml_logger.py new file mode 100644 index 0000000000000000000000000000000000000000..660b56f38e631c5202feba070f6ee5aac5bd76f8 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/logging/clearml_logger.py @@ -0,0 +1,64 @@ +import os +from typing import Any + +import torch + +from trainer.logging.tensorboard_logger import TensorboardLogger +from trainer.trainer_utils import is_clearml_available +from trainer.utils.distributed import rank_zero_only + +if is_clearml_available(): + from clearml import Task +else: + raise ImportError("ClearML is not installed. Please install it with `pip install clearml`") + + +class ClearMLLogger(TensorboardLogger): + """ClearML Logger using TensorBoard in the background. + + TODO: + - Add hyperparameter handling + - Use ClearML logger for plots + - Handle continuing training + + Args: + output_uri (str): URI of the ClearML repository. + local_path (str): Path to the local directory where the model is saved. + project_name (str): Name of the ClearML project. + task_name (str): Name of the ClearML task. + tags (str): Comma separated list of tags to add to the ClearML task. + """ + + def __init__( + self, + output_uri: str, + local_path: str, + project_name: str, + task_name: str, + tags: str = None, + ): + self._context = None + self.local_path = local_path + self.task_name = task_name + self.tags = tags.split(",") if tags else [] + self.run = Task.init(project_name=project_name, task_name=task_name, tags=self.tags, output_uri=output_uri) + + if tags: + for tag in tags.split(","): + self.run.add_tag(tag) + + super().__init__("run", None) + + @rank_zero_only + def add_config(self, config): + """Upload config file(s) to ClearML.""" + self.add_text("run_config", f"{config.to_json()}", 0) + self.run.connect_configuration(name="model_config", configuration=config.to_dict()) + self.run.set_comment(config.run_description) + self.run.upload_artifact("model_config", config.to_dict()) + self.run.upload_artifact("configs", artifact_object=os.path.join(self.local_path, "*.json")) + + @staticmethod + @rank_zero_only + def save_model(state: Any, path: str): + torch.save(state, path) diff --git a/Indic-TTS/Trainer/trainer/logging/console_logger.py b/Indic-TTS/Trainer/trainer/logging/console_logger.py new file mode 100644 index 0000000000000000000000000000000000000000..94ad2d26c6883a3cf4ee820783b6b38cf36b1990 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/logging/console_logger.py @@ -0,0 +1,106 @@ +import datetime +import logging +from dataclasses import dataclass + +logger = logging.getLogger("trainer") + + +@dataclass(frozen=True) +class tcolors: + OKBLUE: str = "\033[94m" + HEADER: str = "\033[95m" + OKGREEN: str = "\033[92m" + WARNING: str = "\033[93m" + FAIL: str = "\033[91m" + ENDC: str = "\033[0m" + BOLD: str = "\033[1m" + UNDERLINE: str = "\033[4m" + + +class ConsoleLogger: + def __init__(self): + # TODO: color code for value changes + # use these to compare values between iterations + self.old_train_loss_dict = None + self.old_epoch_loss_dict = None + self.old_eval_loss_dict = None + + @staticmethod + def log_with_flush(msg: str): + if logger is not None: + logger.info(msg) + for handler in logger.handlers: + handler.flush() + else: + print(msg, flush=True) + + # pylint: disable=no-self-use + def get_time(self): + now = datetime.datetime.now() + return now.strftime("%Y-%m-%d %H:%M:%S") + + def print_epoch_start(self, epoch, max_epoch, output_path=None): + self.log_with_flush( + "\n{}{} > EPOCH: {}/{}{}".format(tcolors.UNDERLINE, tcolors.BOLD, epoch, max_epoch, tcolors.ENDC), + ) + if output_path is not None: + self.log_with_flush(f" --> {output_path}") + + def print_train_start(self): + self.log_with_flush(f"\n{tcolors.BOLD} > TRAINING ({self.get_time()}) {tcolors.ENDC}") + + def print_train_step(self, batch_steps, step, global_step, loss_dict, avg_loss_dict): + indent = " | > " + self.log_with_flush("") + log_text = "{} --> STEP: {}/{} -- GLOBAL_STEP: {}{}\n".format( + tcolors.BOLD, step, batch_steps, global_step, tcolors.ENDC + ) + for key, value in loss_dict.items(): + # print the avg value if given + if f"avg_{key}" in avg_loss_dict.keys(): + log_text += "{}{}: {:.5f} ({:.5f})\n".format(indent, key, value, avg_loss_dict[f"avg_{key}"]) + else: + log_text += "{}{}: {:.5f} \n".format(indent, key, value) + self.log_with_flush(log_text) + + # pylint: disable=unused-argument + def print_train_epoch_end(self, global_step, epoch, epoch_time, print_dict): + indent = " | > " + log_text = f"\n{tcolors.BOLD} --> TRAIN PERFORMACE -- EPOCH TIME: {epoch_time:.2f} sec -- GLOBAL_STEP: {global_step}{tcolors.ENDC}\n" + for key, value in print_dict.items(): + log_text += "{}{}: {:.5f}\n".format(indent, key, value) + self.log_with_flush(log_text) + + def print_eval_start(self): + self.log_with_flush(f"\n{tcolors.BOLD} > EVALUATION {tcolors.ENDC}\n") + + def print_eval_step(self, step, loss_dict, avg_loss_dict): + indent = " | > " + log_text = f"{tcolors.BOLD} --> STEP: {step}{tcolors.ENDC}\n" + for key, value in loss_dict.items(): + # print the avg value if given + if f"avg_{key}" in avg_loss_dict.keys(): + log_text += "{}{}: {:.5f} ({:.5f})\n".format(indent, key, value, avg_loss_dict[f"avg_{key}"]) + else: + log_text += "{}{}: {:.5f} \n".format(indent, key, value) + self.log_with_flush(log_text) + + def print_epoch_end(self, epoch, avg_loss_dict): + indent = " | > " + log_text = "\n {}--> EVAL PERFORMANCE{}\n".format(tcolors.BOLD, tcolors.ENDC) + for key, value in avg_loss_dict.items(): + # print the avg value if given + color = "" + sign = "+" + diff = 0 + if self.old_eval_loss_dict is not None and key in self.old_eval_loss_dict: + diff = value - self.old_eval_loss_dict[key] + if diff < 0: + color = tcolors.OKGREEN + sign = "" + elif diff > 0: + color = tcolors.FAIL + sign = "+" + log_text += "{}{}:{} {:.5f} {}({}{:.5f})\n".format(indent, key, color, value, tcolors.ENDC, sign, diff) + self.old_eval_loss_dict = avg_loss_dict + self.log_with_flush(log_text) diff --git a/Indic-TTS/Trainer/trainer/logging/dummy_logger.py b/Indic-TTS/Trainer/trainer/logging/dummy_logger.py new file mode 100644 index 0000000000000000000000000000000000000000..ec7b37b2309a905ad41a705dd0c2f2989a611c58 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/logging/dummy_logger.py @@ -0,0 +1,72 @@ +from typing import Dict, Union + +from trainer.logging.base_dash_logger import BaseDashboardLogger + + +class DummyLogger(BaseDashboardLogger): + """DummyLogger that implements the API but does nothing""" + + def add_scalar(self, title: str, value: float, step: int) -> None: + pass + + def add_figure( + self, + title: str, + figure: Union["matplotlib.figure.Figure", "plotly.graph_objects.Figure"], + step: int, + ) -> None: + pass + + def add_config(self, config): + pass + + def add_audio(self, title: str, audio: "np.ndarray", step: int, sample_rate: int) -> None: + pass + + def add_text(self, title: str, text: str, step: int) -> None: + pass + + def add_artifact(self, file_or_dir: str, name: str, artifact_type: str, aliases=None): + pass + + def add_scalars(self, scope_name: str, scalars: Dict, step: int): + pass + + def add_figures(self, scope_name: str, figures: Dict, step: int): + pass + + def add_audios(self, scope_name: str, audios: Dict, step: int, sample_rate: int): + pass + + def flush(self): + pass + + def finish(self): + pass + + def train_step_stats(self, step, stats): + self.add_scalars(scope_name="TrainIterStats", scalars=stats, step=step) + + def train_epoch_stats(self, step, stats): + self.add_scalars(scope_name="TrainEpochStats", scalars=stats, step=step) + + def train_figures(self, step, figures): + self.add_figures(scope_name="TrainFigures", figures=figures, step=step) + + def train_audios(self, step, audios, sample_rate): + self.add_audios(scope_name="TrainAudios", audios=audios, step=step, sample_rate=sample_rate) + + def eval_stats(self, step, stats): + self.add_scalars(scope_name="EvalStats", scalars=stats, step=step) + + def eval_figures(self, step, figures): + self.add_figures(scope_name="EvalFigures", figures=figures, step=step) + + def eval_audios(self, step, audios, sample_rate): + self.add_audios(scope_name="EvalAudios", audios=audios, step=step, sample_rate=sample_rate) + + def test_audios(self, step, audios, sample_rate): + self.add_audios(scope_name="TestAudios", audios=audios, step=step, sample_rate=sample_rate) + + def test_figures(self, step, figures): + self.add_figures(scope_name="TestFigures", figures=figures, step=step) diff --git a/Indic-TTS/Trainer/trainer/logging/mlflow_logger.py b/Indic-TTS/Trainer/trainer/logging/mlflow_logger.py new file mode 100644 index 0000000000000000000000000000000000000000..51379f722961c0e4ee5a6e24a98b83c9a9b69aa6 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/logging/mlflow_logger.py @@ -0,0 +1,148 @@ +import os +import shutil +import tempfile +import traceback + +import soundfile as sf +import torch + +from trainer.logging.base_dash_logger import BaseDashboardLogger +from trainer.trainer_utils import is_mlflow_available +from trainer.utils.distributed import rank_zero_only + +if is_mlflow_available(): + from mlflow.tracking import MlflowClient + from mlflow.tracking.context.registry import resolve_tags + from mlflow.utils.mlflow_tags import MLFLOW_RUN_NAME + +# pylint: skip-file + + +class MLFlowLogger(BaseDashboardLogger): + def __init__( + self, + log_uri: str, + model_name: str, + tags: str = None, + ): + self.model_name = model_name + self.client = MlflowClient(tracking_uri=os.path.join(log_uri)) + + experiment = self.client.get_experiment_by_name(model_name) + if experiment is None: + self.experiment_id = self.client.create_experiment(name=model_name) + else: + self.experiment_id = experiment.experiment_id + + if tags is not None: + self.client.set_experiment_tag(self.experiment_id, MLFLOW_RUN_NAME, tags) + run = self.client.create_run(experiment_id=self.experiment_id, tags=resolve_tags(tags)) + self.run_id = run.info.run_id + + def model_weights(self, model, step): + layer_num = 1 + for name, param in model.named_parameters(): + if param.numel() == 1: + self.client.log_metric("layer{}-{}/value".format(layer_num, name), param.max(), step) + else: + self.client.log_metric("layer{}-{}/max".format(layer_num, name), param.max(), step) + self.client.log_metric("layer{}-{}/min".format(layer_num, name), param.min(), step) + self.client.log_metric("layer{}-{}/mean".format(layer_num, name), param.mean(), step) + self.client.log_metric("layer{}-{}/std".format(layer_num, name), param.std(), step) + # MlFlow does not support histograms + # self.client.add_histogram("layer{}-{}/param".format(layer_num, name), param, step) + # self.client.add_histogram("layer{}-{}/grad".format(layer_num, name), param.grad, step) + layer_num += 1 + + def add_config(self, config): + self.add_text("model-config", f"
{config.to_json()}
", 0) + + def add_scalar(self, title, value, step): + self.client.log_metric(self.run_id, title, value, step) + + def add_text(self, title, text, step): + self.client.log_text(self.run_id, text, "{}/{}.txt".format(title, step)) + + def add_figure(self, title, figure, step): + self.client.log_figure(figure, "{}/{}.png".format(title, step)) + + def add_artifact(self, file_or_dir, name, artifact_type, aliases=None): # pylint: disable=W0613, R0201 + self.client.log_artifacts(self.run_id, file_or_dir) + + def add_audio(self, title, audio, step, sample_rate): + self.client.log_audio(self.run_id, audio, "{}/{}.wav".format(title, step), sample_rate) + + @rank_zero_only + def add_scalars(self, scope_name, stats, step): + for key, value in stats.items(): + if torch.is_tensor(value): + value = value.item() + self.client.log_metric(self.run_id, "{}-{}".format(scope_name, key), value, step) + + @rank_zero_only + def add_figures(self, scope_name, figures, step): + for key, value in figures.items(): + self.client.log_figure(self.run_id, value, "{}/{}/{}.png".format(scope_name, key, step)) + + @rank_zero_only + def add_audios(self, scope_name, audios, step, sample_rate): + for key, value in audios.items(): + if value.dtype == "float16": + value = value.astype("float32") + try: + tmp_audio_path = tempfile.NamedTemporaryFile(suffix=".wav") + sf.write(tmp_audio_path, value, sample_rate) + self.client.log_artifact( + self.run_id, + tmp_audio_path, + "{}/{}/{}.wav".format(scope_name, key, step), + ) + shutil.rmtree(tmp_audio_path) + except RuntimeError: + traceback.print_exc() + + def train_step_stats(self, step, stats): + self.client.set_tag(self.run_id, "Mode", "training") + super().train_step_stats(step, stats) + + def train_epoch_stats(self, step, stats): + self.client.set_tag(self.run_id, "Mode", "training") + super().train_epoch_stats(step, stats) + + def train_figures(self, step, figures): + self.client.set_tag(self.run_id, "Mode", "training") + super().train_figures(step, figures) + + def train_audios(self, step, audios, sample_rate): + self.client.set_tag(self.run_id, "Mode", "training") + super().train_audios(step, audios, sample_rate) + + def eval_stats(self, step, stats): + self.client.set_tag(self.run_id, "Mode", "evaluation") + super().eval_stats(step, stats) + + def eval_figures(self, step, figures): + self.client.set_tag(self.run_id, "Mode", "evaluation") + super().eval_figures(step, figures) + + def eval_audios(self, step, audios, sample_rate): + self.client.set_tag(self.run_id, "Mode", "evaluation") + super().eval_audios(step, audios, sample_rate) + + def test_audios(self, step, audios, sample_rate): + self.client.set_tag(self.run_id, "Mode", "test") + super().test_audios(step, audios, sample_rate) + + def test_figures(self, step, figures): + self.client.set_tag(self.run_id, "Mode", "test") + super().test_figures(step, figures) + + def flush(self): + pass + + @rank_zero_only + def finish(self): + super().finalize(status) + status = "FINISHED" if status == "success" else status + if self.client.get_run(self.run_id): + self.client.set_terminated(self.run_id, status) diff --git a/Indic-TTS/Trainer/trainer/logging/tensorboard_logger.py b/Indic-TTS/Trainer/trainer/logging/tensorboard_logger.py new file mode 100644 index 0000000000000000000000000000000000000000..5efe4d8cdfd88e88291e44da177429e751c2dcd8 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/logging/tensorboard_logger.py @@ -0,0 +1,71 @@ +import traceback + +from tensorboardX import SummaryWriter + +from trainer.logging.base_dash_logger import BaseDashboardLogger + + +class TensorboardLogger(BaseDashboardLogger): + def __init__(self, log_dir, model_name): + self.model_name = model_name + self.writer = SummaryWriter(log_dir) + + def model_weights(self, model, step): + layer_num = 1 + for name, param in model.named_parameters(): + if param.numel() == 1: + self.writer.add_scalar("layer{}-{}/value".format(layer_num, name), param.max(), step) + else: + self.writer.add_scalar("layer{}-{}/max".format(layer_num, name), param.max(), step) + self.writer.add_scalar("layer{}-{}/min".format(layer_num, name), param.min(), step) + self.writer.add_scalar("layer{}-{}/mean".format(layer_num, name), param.mean(), step) + self.writer.add_scalar("layer{}-{}/std".format(layer_num, name), param.std(), step) + self.writer.add_histogram("layer{}-{}/param".format(layer_num, name), param, step) + self.writer.add_histogram("layer{}-{}/grad".format(layer_num, name), param.grad, step) + layer_num += 1 + + def add_config(self, config): + self.add_text("model-config", f"
{config.to_json()}
", 0) + + def add_scalar(self, title: str, value: float, step: int) -> None: + self.writer.add_scalar(title, value, step) + + def add_audio(self, title, audio, step, sample_rate): + self.writer.add_audio(title, audio, step, sample_rate=sample_rate) + + def add_text(self, title, text, step): + self.writer.add_text(title, text, step) + + def add_figure(self, title, figure, step): + self.writer.add_figure(title, figure, step) + + def add_artifact(self, file_or_dir, name, artifact_type, aliases=None): # pylint: disable=W0613, R0201 + yield + + def add_scalars(self, scope_name, scalars, step): + for key, value in scalars.items(): + self.add_scalar("{}/{}".format(scope_name, key), value, step) + + def add_figures(self, scope_name, figures, step): + for key, value in figures.items(): + self.writer.add_figure("{}/{}".format(scope_name, key), value, step) + + def add_audios(self, scope_name, audios, step, sample_rate): + for key, value in audios.items(): + if value.dtype == "float16": + value = value.astype("float32") + try: + self.add_audio( + "{}/{}".format(scope_name, key), + value, + step, + sample_rate=sample_rate, + ) + except RuntimeError: + traceback.print_exc() + + def flush(self, step=None): + self.writer.flush() + + def finish(self): + self.writer.close() diff --git a/Indic-TTS/Trainer/trainer/logging/wandb_logger.py b/Indic-TTS/Trainer/trainer/logging/wandb_logger.py new file mode 100644 index 0000000000000000000000000000000000000000..1883add70a6b507e1b576f4d6581c1816c8a4f18 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/logging/wandb_logger.py @@ -0,0 +1,107 @@ +# pylint: disable=W0613 + +import traceback +from pathlib import Path +from typing import Dict, Union + +from trainer.logging.base_dash_logger import BaseDashboardLogger +from trainer.trainer_utils import is_wandb_available +from trainer.utils.distributed import rank_zero_only + +if is_wandb_available(): + import wandb + + +class WandbLogger(BaseDashboardLogger): + def __init__(self, **kwargs): + + if not wandb: + raise Exception("install wandb using `pip install wandb` to use WandbLogger") + + self.run = None + self.run = wandb.init(**kwargs) if not wandb.run else wandb.run + self.model_name = self.run.config.model + self.log_dict = {} + + def model_weights(self, model): + layer_num = 1 + for name, param in model.named_parameters(): + if param.numel() == 1: + self.add_scalars("weights", {"layer{}-{}/value".format(layer_num, name): param.max()}) + else: + self.add_scalars("weights", {"layer{}-{}/max".format(layer_num, name): param.max()}) + self.add_scalars("weights", {"layer{}-{}/min".format(layer_num, name): param.min()}) + self.add_scalars("weights", {"layer{}-{}/mean".format(layer_num, name): param.mean()}) + self.add_scalars("weights", {"layer{}-{}/std".format(layer_num, name): param.std()}) + self.log_dict["weights/layer{}-{}/param".format(layer_num, name)] = wandb.Histogram(param) + self.log_dict["weights/layer{}-{}/grad".format(layer_num, name)] = wandb.Histogram(param.grad) + layer_num += 1 + + def add_scalars(self, scope_name, scalars, step): + for key, value in scalars.items(): + self.log_dict["{}/{}".format(scope_name, key)] = value + self.log_dict["trainer/global_step"] = step + + def add_figures(self, scope_name, figures, step): + for key, value in figures.items(): + self.log_dict["{}/{}".format(scope_name, key)] = wandb.Image(value) + self.log_dict["trainer/global_step"] = step + + def add_audios(self, scope_name, audios, step, sample_rate): + for key, value in audios.items(): + if value.dtype == "float16": + value = value.astype("float32") + try: + self.log_dict["{}/{}".format(scope_name, key)] = wandb.Audio(value, sample_rate=sample_rate) + except RuntimeError: + traceback.print_exc() + self.log_dict["trainer/global_step"] = step + + def log(self, log_dict, prefix="", flush=False): + for key, value in log_dict.items(): + self.log_dict[prefix + key] = value + if flush: # for cases where you don't want to accumulate data + self.flush() + + def add_text(self, title, text, step): + pass + + @rank_zero_only + def add_config(self, config): + pass + + def flush(self, step=None): + if self.run: + wandb.log(self.log_dict) + self.log_dict = {} + + def finish(self): + if self.run: + self.run.finish() + + def add_artifact(self, file_or_dir, name, artifact_type, aliases=None): + if not self.run: + return + name = "_".join([self.run.id, name]) + artifact = wandb.Artifact(name, type=artifact_type) + data_path = Path(file_or_dir) + if data_path.is_dir(): + artifact.add_dir(str(data_path)) + elif data_path.is_file(): + artifact.add_file(str(data_path)) + + self.run.log_artifact(artifact, aliases=aliases) + + def add_scalar(self, title: str, value: float, step: int) -> None: + pass + + def add_figure( + self, + title: str, + figure: Union["matplotlib.figure.Figure", "plotly.graph_objects.Figure"], + step: int, + ) -> None: + pass + + def add_audio(self, title: str, audio: "np.ndarray", step: int, sample_rate: int) -> None: + pass \ No newline at end of file diff --git a/Indic-TTS/Trainer/trainer/model.py b/Indic-TTS/Trainer/trainer/model.py new file mode 100644 index 0000000000000000000000000000000000000000..cb3dcbed528c122fc3e698dc2293b8ea68ea3d09 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/model.py @@ -0,0 +1,127 @@ +from abc import ABC, abstractmethod +from typing import Dict, List, Tuple + +import torch +from coqpit import Coqpit +from torch import nn + +# pylint: skip-file + + +class TrainerModel(ABC, nn.Module): + """Abstract ๐ŸธTTS class. Every new ๐ŸธTTS model must inherit this.""" + + @abstractmethod + def forward(self, input: torch.Tensor, *args, aux_input={}, **kwargs) -> Dict: + """Forward ... for the model mainly used in training. + + You can be flexible here and use different number of arguments and argument names since it is intended to be + used by `train_step()` without exposing it out of the model. + + Args: + input (torch.Tensor): Input tensor. + aux_input (Dict): Auxiliary model inputs like embeddings, durations or any other sorts of inputs. + + Returns: + Dict: Model outputs. Main model output must be named as "model_outputs". + """ + outputs_dict = {"model_outputs": None} + ... + return outputs_dict + + def format_batch(self, batch: Dict) -> Dict: + """Format batch returned by the data loader before sending it to the model. + + If not implemented, model uses the batch as is. + Can be used for data augmentation, feature ectraction, etc. + """ + return batch + + def format_batch_on_device(self, batch: Dict) -> Dict: + """Format batch on device before sending it to the model. + + If not implemented, model uses the batch as is. + Can be used for data augmentation, feature ectraction, etc. + """ + return batch + + @abstractmethod + def train_step(self, batch: Dict, criterion: nn.Module) -> Tuple[Dict, Dict]: + """Perform a single training step. Run the model forward ... and compute losses. + + Args: + batch (Dict): Input tensors. + criterion (nn.Module): Loss layer designed for the model. + + Returns: + Tuple[Dict, Dict]: Model ouputs and computed losses. + """ + outputs_dict = {} + loss_dict = {} # this returns from the criterion + ... + return outputs_dict, loss_dict + + def train_log(self, batch: Dict, outputs: Dict, logger: "Logger", assets: Dict, steps: int) -> None: + """Create visualizations and waveform examples for training. + + For example, here you can plot spectrograms and generate sample sample waveforms from these spectrograms to + be projected onto Tensorboard. + + Args: + ap (AudioProcessor): audio processor used at training. + batch (Dict): Model inputs used at the previous training step. + outputs (Dict): Model outputs generated at the previoud training step. + + Returns: + Tuple[Dict, np.ndarray]: training plots and output waveform. + """ + ... + + @abstractmethod + def eval_step(self, batch: Dict, criterion: nn.Module) -> Tuple[Dict, Dict]: + """Perform a single evaluation step. Run the model forward ... and compute losses. In most cases, you can + call `train_step()` with no changes. + + Args: + batch (Dict): Input tensors. + criterion (nn.Module): Loss layer designed for the model. + + Returns: + Tuple[Dict, Dict]: Model ouputs and computed losses. + """ + outputs_dict = {} + loss_dict = {} # this returns from the criterion + ... + return outputs_dict, loss_dict + + def eval_log(self, batch: Dict, outputs: Dict, logger: "Logger", assets: Dict, steps: int) -> None: + """The same as `train_log()`""" + ... + + @abstractmethod + def get_data_loader( + self, config: Coqpit, assets: Dict, is_eval: True, data_items: List, verbose: bool, num_gpus: int + ): + ... + + def init_for_training(self) -> None: + """Initialize model for training.""" + ... + + # def get_optimizer(self) -> Union["Optimizer", List["Optimizer"]]: + # """Setup an return optimizer or optimizers.""" + # ... + + # def get_lr(self) -> Union[float, List[float]]: + # """Return learning rate(s). + + # Returns: + # Union[float, List[float]]: Model's initial learning rates. + # """ + # ... + + # def get_scheduler(self, optimizer: torch.optim.Optimizer): + # ... + + # def get_criterion(self): + # ... diff --git a/Indic-TTS/Trainer/trainer/torch.py b/Indic-TTS/Trainer/trainer/torch.py new file mode 100644 index 0000000000000000000000000000000000000000..4ea107fda801bce5a480d528bd4ad2a3a0671c69 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/torch.py @@ -0,0 +1,147 @@ +import numpy as np +import torch +from torch.utils.data.distributed import DistributedSampler + + +class DistributedSamplerWrapper(DistributedSampler): + """Wrapper over Sampler for distributed training. It allows you to use any sampler in distributed mode. + It is especially useful in conjunction with torch.nn.parallel.DistributedDataParallel. In such a case, each + process can pass a torch.utils.data.DistributedSampler instance as a torch.utils.data.DataLoader sampler, + and load a subset of the original dataset that is exclusive to it. + + .. note: + Dataset is assumed to be of constant size. + + Args: + sampler: Sampler used for subsampling. + num_replicas (int, optional): Number of processes participating in distributed training. By default, + world_size is retrieved from the current distributed group. + rank (int, optional): Rank of the current process within num_replicas. By default, rank is retrieved + from the current distributed group. + shuffle (bool, optional): If True, sampler will shuffle the indices. Default: True. + seed (int, optional): random seed used to shuffle the sampler if shuffle=True. This number should be + identical across all processes in the distributed group. Default: 0. + + Reference: https://github.com/pytorch/pytorch/issues/23430 + + """ + + def __init__( + self, + sampler, + num_replicas: int = None, + rank: int = None, + shuffle: bool = True, + seed: int = 0, + ): + super().__init__( + sampler, + num_replicas=num_replicas, + rank=rank, + shuffle=shuffle, + seed=seed, + ) + + def __iter__(self): + indices = list(self.dataset)[: self.total_size] + + # Add extra samples to make it evenly divisible + indices += indices[: (self.total_size - len(indices))] + assert len(indices) == self.total_size, f"{len(indices)} != {self.total_size}" + + # Subsample + offset = self.num_samples * self.rank + indices = indices[offset : offset + self.num_samples] + assert len(indices) == self.num_samples, f"{len(indices)} != {self.num_samples}" + + return iter(indices) + + def set_epoch(self, epoch): + super().set_epoch(epoch) + if hasattr(self.dataset, "set_epoch"): + self.dataset.set_epoch(epoch) + elif hasattr(self.dataset, "generator"): + self.dataset.generator = torch.Generator().manual_seed(self.seed + epoch) + + def state_dict(self): + return self.dataset.state_dict() + + def load_state_dict(self, state_dict): + self.dataset.load_state_dict(state_dict) + + +# pylint: disable=protected-access +class NoamLR(torch.optim.lr_scheduler._LRScheduler): + def __init__(self, optimizer, warmup_steps=0.1, last_epoch=-1): + self.warmup_steps = float(warmup_steps) + super().__init__(optimizer, last_epoch) + + def get_lr(self): + step = max(self.last_epoch, 1) + return [ + base_lr * self.warmup_steps**0.5 * min(step * self.warmup_steps**-1.5, step**-0.5) + for base_lr in self.base_lrs + ] + + +class NoamLRStepConstant(torch.optim.lr_scheduler._LRScheduler): + def __init__(self, optimizer, warmup_steps=0.1, last_epoch=-1, threshold_step=100): + self.warmup_steps = float(warmup_steps) + self.threshold_step = threshold_step + super().__init__(optimizer, last_epoch) + + def get_lr(self): + step = min(max(self.last_epoch, 1), self.threshold_step) + return [ + base_lr * self.warmup_steps**0.5 * min(step * self.warmup_steps**-1.5, step**-0.5) + for base_lr in self.base_lrs + ] + + +class NoamLRStepDecay(torch.optim.lr_scheduler._LRScheduler): + def __init__(self, optimizer, warmup_steps=0.1, last_epoch=-1, threshold_step=100): + self.warmup_steps = float(warmup_steps) + self.threshold_step = threshold_step + super().__init__(optimizer, last_epoch) + + def get_lr(self): + step = max(self.last_epoch, 1) + if step >= self.threshold_step: + self.threshold_step -= 1 + step = max(self.threshold_step, 1) + return [ + base_lr * self.warmup_steps**0.5 * min(step * self.warmup_steps**-1.5, step**-0.5) + for base_lr in self.base_lrs + ] + +# pylint: disable=protected-access +class StepwiseGradualLR(torch.optim.lr_scheduler._LRScheduler): + """Hardcoded step-wise learning rate scheduling. + Necessary for CapacitronVAE""" + + def __init__(self, optimizer, gradual_learning_rates, last_epoch=-1): + self.gradual_learning_rates = gradual_learning_rates + super().__init__(optimizer, last_epoch) + + def get_lr(self): + step = max(self.last_epoch, 1) + step_thresholds = [] + rates = [] + for values in self.gradual_learning_rates: + step_thresholds.append(values[0]) + rates.append(values[1]) + + boolean_indeces = np.less_equal(step_thresholds, step) + try: + last_true = np.where(boolean_indeces == True)[0][-1] # pylint: disable=singleton-comparison + except IndexError: + # For the steps larger than the last step in the list + pass + lr = rates[np.max(last_true, 0)] + + # Return last lr if step is above the set threshold + lr = rates[-1] if step > step_thresholds[-1] else lr + # Return first lr if step is below the second threshold - first is initial lr + lr = rates[0] if step < step_thresholds[1] else lr + + return np.tile(lr, len(self.base_lrs)) # hack? diff --git a/Indic-TTS/Trainer/trainer/trainer.py b/Indic-TTS/Trainer/trainer/trainer.py new file mode 100644 index 0000000000000000000000000000000000000000..e11b696a370e6ffdd70d8858450e8550cf8fc402 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/trainer.py @@ -0,0 +1,1768 @@ +# -*- coding: utf-8 -*- + +import importlib +import logging +import os +import platform +import sys +import time +import traceback +from dataclasses import dataclass, field +from inspect import signature +from typing import Callable, Dict, List, Tuple, Union + +import torch +import torch.distributed as dist +from coqpit import Coqpit +from torch import nn +from torch.nn.parallel import DistributedDataParallel as DDP_th +from torch.utils.data import DataLoader + +from trainer.callbacks import TrainerCallback +from trainer.generic_utils import ( + KeepAverage, + count_parameters, + get_experiment_folder_path, + get_git_branch, + remove_experiment_folder, + set_partial_state_dict, + to_cuda, +) +from trainer.io import ( + copy_model_files, + get_last_checkpoint, + load_fsspec, + save_best_model, + save_checkpoint, +) +from trainer.logging import ConsoleLogger, DummyLogger, logger_factory +from trainer.trainer_utils import ( + get_optimizer, + get_scheduler, + is_apex_available, + setup_torch_training_env, +) +from trainer.utils.distributed import init_distributed + +logger = logging.getLogger("trainer") + +if is_apex_available(): + from apex import amp + + +@dataclass +class TrainerConfig(Coqpit): + """Config fields tweaking the Trainer for a model. + A ````ModelConfig```, by inheriting ```TrainerConfig``` must be defined for using ๐Ÿ‘Ÿ. + Inherit this by a new model config and override the fields as needed. + All the fields can be overridden from comman-line as ```--coqpit.arg_name=value```. + + Example:: + + Run the training code by overriding the ```lr``` and ```plot_step``` fields. + + >>> python train.py --coqpit.plot_step=22 --coqpit.lr=0.001 + + Defining a model using ```TrainerConfig```. + + >>> from trainer import TrainerConfig + >>> class MyModelConfig(TrainerConfig): + ... optimizer: str = "Adam" + ... lr: float = 0.001 + ... epochs: int = 1 + ... ... + >>> class MyModel(nn.module): + ... def __init__(self, config): + ... ... + >>> model = MyModel(MyModelConfig()) + + """ + + # Fields for the run + output_path: str = field(default="output") + logger_uri: str = field( + default=None, + metadata={ + "help": "URI to save training artifacts by the logger. If not set, logs will be saved in the output_path. Defaults to None" + }, + ) + run_name: str = field(default="run", metadata={"help": "Name of the run. Defaults to 'run'"}) + project_name: str = field(default=None, metadata={"help": "Name of the project. Defaults to None"}) + run_description: str = field( + default="๐ŸธCoqui trainer run.", + metadata={"help": "Notes and description about the run. Defaults to '๐ŸธCoqui trainer run.'"}, + ) + # Fields for logging + print_step: int = field( + default=25, metadata={"help": "Print training stats on the terminal every print_step steps. Defaults to 25"} + ) + plot_step: int = field( + default=100, metadata={"help": "Plot training stats on the logger every plot_step steps. Defaults to 100"} + ) + model_param_stats: bool = field( + default=False, metadata={"help": "Log model parameters stats on the logger dashboard. Defaults to False"} + ) + wandb_entity: str = field(default=None, metadata={"help": "Wandb entity to log the run. Defaults to None"}) + dashboard_logger: str = field( + default="tensorboard", metadata={"help": "Logger to use for the tracking dashboard. Defaults to 'tensorboard'"} + ) + # Fields for checkpointing + log_model_step: int = field( + default=None, + metadata={ + "help": "Save checkpoint to the logger every log_model_step steps. If not defined `save_step == log_model_step`." + }, + ) + save_step: int = field( + default=10000, metadata={"help": "Save local checkpoint every save_step steps. Defaults to 10000"} + ) + save_n_checkpoints: int = field(default=5, metadata={"help": "Keep n local checkpoints. Defaults to 5"}) + save_checkpoints: bool = field(default=True, metadata={"help": "Save checkpoints locally. Defaults to True"}) + save_all_best: bool = field( + default=False, metadata={"help": "Save all best checkpoints and keep the older ones. Defaults to False"} + ) + save_best_after: int = field( + default=10000, metadata={"help": "Wait N steps to save best checkpoints. Defaults to 10000"} + ) + target_loss: str = field( + default=None, metadata={"help": "Target loss name to select the best model. Defaults to None"} + ) + # Fields for eval and test run + print_eval: bool = field(default=False, metadata={"help": "Print eval steps on the terminal. Defaults to False"}) + test_delay_epochs: int = field(default=0, metadata={"help": "Wait N epochs before running the test. Defaults to 0"}) + run_eval: bool = field( + default=True, metadata={"help": "Run evalulation epoch after training epoch. Defaults to True"} + ) + # Fields for distributed training + distributed_backend: str = field( + default="nccl", metadata={"help": "Distributed backend to use. Defaults to 'nccl'"} + ) + distributed_url: str = field( + default="tcp://localhost:54321", + metadata={"help": "Distributed url to use. Defaults to 'tcp://localhost:54321'"}, + ) + # Fields for training specs + mixed_precision: bool = field(default=False, metadata={"help": "Use mixed precision training. Defaults to False"}) + epochs: int = field(default=1000, metadata={"help": "Number of epochs to train. Defaults to 1000"}) + batch_size: int = field(default=32, metadata={"help": "Batch size to use. Defaults to 32"}) + eval_batch_size: int = field(default=16, metadata={"help": "Batch size to use for eval. Defaults to 16"}) + grad_clip: float = field( + default=0.0, metadata={"help": "Gradient clipping value. Disabled if <= 0. Defaults to 0.0"} + ) + scheduler_after_epoch: bool = field( + default=True, + metadata={"help": "Step the scheduler after each epoch else step after each iteration. Defaults to True"}, + ) + # Fields for optimzation + lr: Union[float, List[float]] = field( + default=0.001, metadata={"help": "Learning rate for each optimizer. Defaults to 0.001"} + ) + optimizer: Union[str, List[str]] = field(default=None, metadata={"help": "Optimizer(s) to use. Defaults to None"}) + optimizer_params: Union[Dict, List[Dict]] = field( + default_factory=dict, metadata={"help": "Optimizer(s) arguments. Defaults to {}"} + ) + lr_scheduler: Union[str, List[str]] = field( + default=None, metadata={"help": "Learning rate scheduler(s) to use. Defaults to None"} + ) + lr_scheduler_params: Dict = field( + default_factory=dict, metadata={"help": "Learning rate scheduler(s) arguments. Defaults to {}"} + ) + lr_scheduler_aligner: Union[str, List[str]] = field( + default=None, metadata={"help": "Learning rate scheduler(s) to use. Defaults to None"} + ) + lr_scheduler_aligner_params: Dict = field( + default_factory=dict, metadata={"help": "Learning rate scheduler(s) arguments. Defaults to {}"} + ) + use_grad_scaler: bool = field( + default=False, + metadata={ + "help": "Enable/disable gradient scaler explicitly. It is enabled by default with AMP training. Defaults to False" + }, + ) + cudnn_enable: bool = field(default=True, metadata={"help": "Enable/disable cudnn explicitly. Defaults to True"}) + cudnn_deterministic: bool = field( + default=False, + metadata={ + "help": "Enable/disable deterministic cudnn operations. Set this True for reproducibility but it slows down training significantly. Defaults to False." + }, + ) + cudnn_benchmark: bool = field( + default=False, + metadata={ + "help": "Enable/disable cudnn benchmark explicitly. Set this False if your input size change constantly. Defaults to False" + }, + ) + training_seed: int = field( + default=54321, + metadata={"help": "Global seed for torch, random and numpy random number generator. Defaults to 54321"}, + ) + + +@dataclass +class TrainerArgs(Coqpit): + """Trainer arguments that can be accessed from the command line. + + Examples:: + >>> python train.py --restore_path /path/to/checkpoint.pth + """ + + continue_path: str = field( + default="", + metadata={ + "help": "Path to a training folder to continue training. Restore the model from the last checkpoint and continue training under the same folder." + }, + ) + restore_path: str = field( + default="", + metadata={ + "help": "Path to a model checkpoit. Restore the model with the given checkpoint and start a new training." + }, + ) + best_path: str = field( + default="", + metadata={ + "help": "Best model file to be used for extracting the best loss. If not specified, the latest best model in continue path is used" + }, + ) + use_ddp: bool = field( + default=False, + metadata={"help": "Use DDP in distributed training. It is to set in `distribute.py`. Do not set manually."}, + ) + grad_accum_steps: int = field( + default=1, + metadata={ + "help": "Number of gradient accumulation steps. It is used to accumulate gradients over multiple batches." + }, + ) + overfit_batch: bool = field(default=False, metadata={"help": "Overfit a single batch for debugging."}) + skip_train_epoch: bool = field( + default=False, + metadata={"help": "Skip training and only run evaluation and test."}, + ) + small_run: int = field( + default=None, + metadata={ + "help": "Only use a subset of the samples for debugging. Set the number of samples to use. Defaults to None. " + }, + ) + gpu: int = field( + default=None, metadata={"help": "GPU ID to use if ```CUDA_VISIBLE_DEVICES``` is not set. Defaults to None."} + ) + # only for DDP + rank: int = field(default=0, metadata={"help": "Process rank in a distributed training. Don't set manually."}) + group_id: str = field( + default="", metadata={"help": "Process group id in a distributed training. Don't set manually."} + ) + + +class Trainer: + def __init__( # pylint: disable=dangerous-default-value + self, + args: TrainerArgs, + config: Coqpit, + output_path: str, + c_logger: ConsoleLogger = None, + dashboard_logger: "Logger" = None, + model: nn.Module = None, + get_model: Callable = None, + get_data_samples: Callable = None, + train_samples: List = None, + eval_samples: List = None, + test_samples: List = None, + training_assets: Dict = {}, + parse_command_line_args: bool = True, + gpu: int = None, + ) -> None: + """Simple yet powerful ๐Ÿธ๐Ÿ’ฌ TTS trainer for PyTorch. It can train all the available `tts` and `vocoder` models + or easily be customized. + + Notes: + + Supports Automatic Mixed Precision training. If `Apex` is availabe, it automatically picks that, else + it uses PyTorch's native `amp` module. `Apex` may provide more stable training in some cases. + + Args: + + args (Union[Coqpit, Namespace]): Training arguments parsed either from console by `argparse` or `TrainerArgs` + config object. + + config (Coqpit): Model config object. It includes all the values necessary for initializing, training, evaluating + and testing the model. + + output_path (str): Path to the output training folder. All the files are saved under thi path. + + c_logger (ConsoleLogger, optional): Console logger for printing training status. If not provided, the default + console logger is used. Defaults to None. + + dashboard_logger Union[TensorboardLogger, WandbLogger]: Dashboard logger. If not provided, the tensorboard logger is used. + Defaults to None. + + model (nn.Module, optional): Initialized and ready-to-train model. If it is not defined, `Trainer` + initializes a model from the provided config. Defaults to None. + + get_model (Callable): + A function that returns a model. It is used to initialize the model when `model` is not provided. + It either takes the config as the only argument or does not take any argument. + Defaults to None + + get_data_samples (Callable): + A function that returns a list of training and evaluation samples. Used if `train_samples` and + `eval_samples` are None. Defaults to None. + + train_samples (List): + A list of training samples used by the model's `get_train_data_loader` to init the `dataset` and the + `data_loader`. Defaults to None. + + eval_samples (List): + A list of evaluation samples used by the model's `get_eval_data_loader` to init the `dataset` and the + `data_loader`. Defaults to None. + + test_samples (List): + A list of test samples used by the model's `get_test_data_loader` to init the `dataset` and the + `data_loader`. If None, the ```model.test_run()``` is expected to load the data. Defaults to None. + + training_assets (Dict): + A dictionary of assets to be used at training and passed to the model's ```train_log(), eval_log(), get_data_loader()``` + during training. It can include `AudioProcessor` or/and `Tokenizer`. Defaults to {}. + + parse_command_line_args (bool): + If true, parse command-line arguments and update `TrainerArgs` and model `config` values. Set it + to false if you parse the arguments yourself. Defaults to True. + + gpu (int): + GPU ID to use for training If "CUDA_VISIBLE_DEVICES" is not set. Defaults to None. + + Example:: + + Running trainer with a model. + + >>> args = TrainerArgs(...) + >>> config = ModelConfig(...) + >>> model = Model(config) + >>> trainer = Trainer(args, config, output_path, model=model) + >>> trainer.fit() + + TODO: + - Wrap model for not calling .module in DDP. + - Deepspeed integration + - Profiler integration. + - Overfitting to a batch. + - TPU training + """ + if parse_command_line_args: + # parse command-line arguments to override TrainerArgs() + args, coqpit_overrides = self.parse_argv(args) + + # get ready for training and parse command-line arguments to override the model config + config, new_fields = self.init_training(args, coqpit_overrides, config) + elif args.continue_path or args.restore_path: + config, new_fields = self.init_training(args, {}, config) + else: + new_fields = {} + + # set the output path + if args.continue_path: + # use the same path as the continuing run + output_path = args.continue_path + else: + # override the output path if it is provided + output_path = config.output_path if output_path is None else output_path + # create a new output folder name + output_path = get_experiment_folder_path(config.output_path, config.run_name) + os.makedirs(output_path, exist_ok=True) + + # copy training assets to the output folder + copy_model_files(config, output_path, new_fields) + + # init class members + self.args = args + self.config = config + self.output_path = output_path + self.training_assets = training_assets + self.grad_accum_steps = args.grad_accum_steps + self.overfit_batch = args.overfit_batch + self.skip_train_epoch = args.skip_train_epoch + + assert self.grad_accum_steps > 0, " [!] grad_accum_steps must be greater than 0." + + # setup logging + log_file = os.path.join(self.output_path, f"trainer_{args.rank}_log.txt") + self._setup_logger_config(log_file) + + # setup training environment + self.use_cuda, self.num_gpus = self.setup_training_environment(args=args, config=config, gpu=gpu) + + # init loggers + self.dashboard_logger, self.c_logger = self.init_loggers( + self.args, self.config, output_path, dashboard_logger, c_logger + ) + # self.c_logger.logger = logger + + if not self.config.log_model_step: + self.config.log_model_step = self.config.save_step + + self.total_steps_done = 0 + self.epochs_done = 0 + self.restore_step = 0 + self.restore_epoch = 0 + self.best_loss = float("inf") + self.train_loader = None + self.test_loader = None + self.eval_loader = None + + self.keep_avg_train = None + self.keep_avg_eval = None + + self.use_apex = self._is_apex_available() + self.use_amp_scaler = self.use_cuda if self.config.mixed_precision else self.config.use_grad_scaler + + if train_samples is not None: + # use the provided samples + self.train_samples = train_samples + self.eval_samples = eval_samples + self.test_samples = test_samples + elif get_data_samples is not None: + # run `get_data_samples` to init the data samples + ( # pylint: disable=unbalanced-tuple-unpacking + self.train_samples, + self.eval_samples, + self.test_samples, + ) = self.run_get_data_samples(config, get_data_samples) + else: + # expecting to load the samples in `model.get_data_loader()` + self.train_samples = None + self.eval_samples = None + self.test_samples = None + + # only use a subset of the samples if small_run is set + if args.small_run is not None: + print(f"[!] Small Run, only using {args.small_run} samples.") + self.train_samples = None if self.train_samples is None else self.train_samples[: args.small_run] + self.eval_samples = None if self.eval_samples is None else self.eval_samples[: args.small_run] + self.test_samples = None if self.test_samples is None else self.test_samples[: args.small_run] + + # init the model + if model is None and get_model is None: + raise ValueError("[!] `model` and `get_model` cannot both be None.") + if model is not None: + self.model = model + else: + self.run_get_model(self.config, get_model) + + # init model's training assets + if hasattr(self.model, "init_for_training"): + self.model.init_for_training() + + # setup criterion + self.criterion = self.get_criterion(self.model) + + # DISTRUBUTED + if self.num_gpus > 1: + init_distributed( + args.rank, + self.num_gpus, + args.group_id, + self.config.distributed_backend, + self.config.distributed_url, + ) + + if self.use_cuda: + self.model.cuda() + if isinstance(self.criterion, list): + for criterion in self.criterion: + if isinstance(criterion, torch.nn.Module): + criterion.cuda() + else: + if isinstance(self.criterion, torch.nn.Module): + self.criterion.cuda() + + # setup optimizer + self.optimizer = self.get_optimizer(self.model, self.config) + + # CALLBACK + self.callbacks = TrainerCallback() + self.callbacks.on_init_start(self) + + # init AMP + if self.use_amp_scaler: + if self.use_apex: + self.scaler = None + self.model, self.optimizer = amp.initialize(self.model, self.optimizer, opt_level="O1") + self.scaler = torch.cuda.amp.GradScaler() + else: + self.scaler = None + + if self.args.restore_path: + (self.model, self.optimizer, self.scaler, self.restore_step, self.restore_epoch) = self.restore_model( + self.config, args.restore_path, self.model, self.optimizer, self.scaler + ) + self.scaler = torch.cuda.amp.GradScaler() + + # setup scheduler + self.scheduler = self.get_scheduler(self.model, self.config, self.optimizer) + self.scheduler = self.restore_scheduler( + self.scheduler, self.args, self.config, self.restore_epoch, self.restore_step + ) + + # DISTRIBUTED + if self.num_gpus > 1: + self.model = DDP_th(self.model, device_ids=[args.rank], output_device=args.rank) + + # count model size + num_params = count_parameters(self.model) + logger.info("\n > Model has %i parameters", num_params) + + self.callbacks.on_init_end(self) + self.dashboard_logger.add_config(config) + + @staticmethod + def parse_argv(args: Union[Coqpit, List]): + """Parse command line arguments to init or override `TrainerArgs()`.""" + if isinstance(args, Coqpit): + parser = args.init_argparse(arg_prefix="") + else: + train_config = TrainerArgs() + parser = train_config.init_argparse(arg_prefix="") + training_args, coqpit_overrides = parser.parse_known_args() + args.parse_args(training_args) + return args, coqpit_overrides + + @staticmethod + def init_loggers(args: "Coqpit", config: "Coqpit", output_path: str, dashboard_logger=None, c_logger=None): + """Init console and dashboard loggers. + Use the given logger if passed externally else use config values to pick the right logger. + Return a dashboard logger only for the rank 0 process in DDP + Define a console logger for each process in DDP + + Args: + args (argparse.Namespace or Coqpit): Parsed trainer arguments. + config (Coqpit): Model config. + output_path (str): Output path to save the training artifacts. + dashboard_logger (DashboardLogger): Object passed to the trainer from outside. + c_logger (ConsoleLogger): Object passed to the trained from outside. + + Returns: + Initialized dashboard_logger and console_logger objects. + """ + c_logger = ConsoleLogger() if c_logger is None else c_logger + + # only allow dashboard logging for the main process in DDP mode + if args.rank: + return DummyLogger(), c_logger + if dashboard_logger is None: + dashboard_logger = logger_factory(config, output_path) + return dashboard_logger, c_logger + + def init_training( + self, args: TrainerArgs, coqpit_overrides: Dict, config: Coqpit = None + ): # pylint: disable=no-self-use + """Initialize training and update model configs from command line arguments. + + Args: + args (argparse.Namespace or dict like): Parsed trainer arguments. + config_overrides (argparse.Namespace or dict like): Parsed config overriding arguments. + config (Coqpit): Model config. If none, it is generated from `args`. Defaults to None. + + Returns: + config (Coqpit): Config paramaters. + """ + # set arguments for continuing training + if args.continue_path: + args.config_path = os.path.join(args.continue_path, "config.json") + args.restore_path, best_model = get_last_checkpoint(args.continue_path) + if not args.best_path: + args.best_path = best_model + # use the same config + if config: + config.load_json(args.config_path) + else: + coqpit = Coqpit() + coqpit.load_json(args.config_path) + + # override config values from command-line args + # TODO: Maybe it is better to do it outside + if len(coqpit_overrides) > 0: + config.parse_known_args(coqpit_overrides, relaxed_parser=True) + + # update the config.json fields and copy it to the output folder + new_fields = {} + if args.rank == 0: + if args.restore_path: + new_fields["restore_path"] = args.restore_path + new_fields["github_branch"] = get_git_branch() + return config, new_fields + + @staticmethod + def setup_training_environment(args, config, gpu): + if platform.system() != "Windows": + # https://github.com/pytorch/pytorch/issues/973 + import resource # pylint: disable=import-outside-toplevel + + rlimit = resource.getrlimit(resource.RLIMIT_NOFILE) + resource.setrlimit(resource.RLIMIT_NOFILE, (4096, rlimit[1])) + + # set and initialize Pytorch runtime + use_cuda, num_gpus = setup_torch_training_env( + cudnn_enable=config.cudnn_enable, + cudnn_deterministic=config.cudnn_deterministic, + cudnn_benchmark=config.cudnn_benchmark, + use_ddp=args.use_ddp, + training_seed=config.training_seed, + gpu=gpu if args.gpu is None else args.gpu, + ) + return use_cuda, num_gpus + + @staticmethod + def run_get_model(config: Coqpit, get_model: Callable) -> nn.Module: + """Run the `get_model` function and return the model. + + Args: + config (Coqpit): Model config. + + Returns: + nn.Module: initialized model. + """ + if len(signature(get_model).sig.parameters) == 1: + model = get_model(config) + else: + model = get_model() + return model + + @staticmethod + def run_get_data_samples(config: Coqpit, get_data_samples: Callable) -> nn.Module: + if callable(get_data_samples): + if len(signature(get_data_samples).sig.parameters) == 1: + train_samples, eval_samples = get_data_samples(config) + else: + train_samples, eval_samples = get_data_samples() + return train_samples, eval_samples + return None, None + + def restore_model( + self, + config: Coqpit, + restore_path: str, + model: nn.Module, + optimizer: torch.optim.Optimizer, + scaler: torch.cuda.amp.GradScaler = None, + ) -> Tuple[nn.Module, torch.optim.Optimizer, torch.cuda.amp.GradScaler, int]: + """Restore training from an old run. It restores model, optimizer, AMP scaler and training stats. + + Args: + config (Coqpit): Model config. + restore_path (str): Path to the restored training run. + model (nn.Module): Model to restored. + optimizer (torch.optim.Optimizer): Optimizer to restore. + scaler (torch.cuda.amp.GradScaler, optional): AMP scaler to restore. Defaults to None. + + Returns: + Tuple[nn.Module, torch.optim.Optimizer, torch.cuda.amp.GradScaler, int]: [description] + """ + + def _restore_list_objs(states, obj): + if isinstance(obj, list): + for idx, state in enumerate(states): + obj[idx].load_state_dict(state) + else: + obj.load_state_dict(states) + return obj + + logger.info(" > Restoring from %s ...", os.path.basename(restore_path)) + checkpoint = load_fsspec(restore_path, map_location="cpu") + try: + logger.info(" > Restoring Model...") + model.load_state_dict(checkpoint["model"]) + logger.info(" > Restoring Optimizer...") + optimizer = _restore_list_objs(checkpoint["optimizer"], optimizer) + if "scaler" in checkpoint and self.use_amp_scaler and checkpoint["scaler"]: + logger.info(" > Restoring Scaler...") + scaler = _restore_list_objs(checkpoint["scaler"], scaler) + except (KeyError, RuntimeError, ValueError): + logger.info(" > Partial model initialization...") + model_dict = model.state_dict() + model_dict = set_partial_state_dict(model_dict, checkpoint["model"], config) + model.load_state_dict(model_dict) + del model_dict + + optimizer = self.restore_lr(config, self.args, model, optimizer) + + logger.info(" > Model restored from step %i", checkpoint["step"]) + restore_step = checkpoint["step"] + 1 # +1 not to immediately checkpoint if the model is restored + restore_epoch = checkpoint["epoch"] + torch.cuda.empty_cache() + return model, optimizer, scaler, restore_step, restore_epoch + + def restore_lr(self, config, args, model, optimizer): + # use the same lr if continue training + if not args.continue_path: + if isinstance(optimizer, list): + for idx, optim in enumerate(optimizer): + for group in optim.param_groups: + group["lr"] = self.get_lr(model, config)[idx] + else: + for group in optimizer.param_groups: + group["lr"] = self.get_lr(model, config) + return optimizer + + ######################### + # DATA LOADING FUNCTIONS + ######################### + + def _get_loader( + self, + model: nn.Module, + config: Coqpit, + assets: Dict, + is_eval: str, + samples: List, + verbose: bool, + num_gpus: int, + ) -> DataLoader: + if num_gpus > 1: + if hasattr(model.module, "get_data_loader"): + loader = model.module.get_data_loader( + config, + assets, + is_eval, + samples, + verbose, + num_gpus, + self.args.rank, + ) + else: + if hasattr(model, "get_data_loader"): + loader = model.get_data_loader( + config=config, assets=assets, is_eval=is_eval, samples=samples, verbose=verbose, num_gpus=num_gpus + ) + return loader + + def get_train_dataloader(self, training_assets: Dict, samples: List, verbose: bool) -> DataLoader: + """Initialize and return a training data loader. + Call ```model.get_train_data_loader``` if it is implemented, else call ```model.get_data_loader``` + and set ```is_eval=False```. + + Args: + ap (AudioProcessor): Audio processor. + samples (List): Data samples used for training. + verbose (bool): enable/disable printing loader stats at initialization. + + Returns: + DataLoader: Initialized training data loader. + """ + if self.num_gpus > 1: + if hasattr(self.model.module, "get_train_data_loader"): + loader = self.model.module.get_train_data_loader( + self.config, + self.training_assets, + samples, + verbose, + self.num_gpus, + self.args.rank, + ) + return loader + else: + if hasattr(self.model, "get_train_data_loader"): + loader = self.model.get_train_data_loader( + self.config, self.training_assets, samples, verbose, self.num_gpus + ) + return loader + + return self._get_loader( + self.model, + self.config, + training_assets, + False, + samples, + verbose, + self.num_gpus, + ) + + def get_eval_dataloader(self, training_assets: Dict, samples: List, verbose: bool) -> DataLoader: + """Initialize and return a evaluation data loader. + Call ```model.get_eval_data_loader``` if it is implemented, else call ```model.get_data_loader``` + and set ```is_eval=True```. + + Args: + ap (AudioProcessor): Audio processor. + samples (List): Data samples used for training. + verbose (bool): enable/disable printing loader stats at initialization. + + Returns: + DataLoader: Initialized training data loader. + """ + if self.num_gpus > 1: + if hasattr(self.model.module, "get_eval_data_loader"): + loader = self.model.module.get_eval_data_loader( + self.config, + self.training_assets, + samples, + verbose, + self.num_gpus, + self.args.rank, + ) + return loader + else: + if hasattr(self.model, "get_eval_data_loader"): + loader = self.model.get_eval_data_loader( + self.config, self.training_assets, samples, verbose, self.num_gpus + ) + return loader + + return self._get_loader( + self.model, + self.config, + training_assets, + True, + samples, + verbose, + self.num_gpus, + ) + + def get_test_dataloader(self, training_assets: Dict, samples: List, verbose: bool) -> DataLoader: + """Initialize and return a evaluation data loader. + Call ```model.get_test_data_loader``` if it is implemented, else call ```model.get_data_loader``` + and set ```is_eval=True```. + + Args: + ap (AudioProcessor): Audio processor. + samples (List): Data samples used for training. + verbose (bool): enable/disable printing loader stats at initialization. + + Returns: + DataLoader: Initialized training data loader. + """ + if self.num_gpus > 1: + if hasattr(self.model.module, "get_test_data_loader"): + loader = self.model.module.get_test_data_loader( + self.config, + self.training_assets, + samples, + verbose, + self.num_gpus, + self.args.rank, + ) + return loader + else: + if hasattr(self.model, "get_test_data_loader"): + loader = self.model.get_test_data_loader( + self.config, self.training_assets, samples, verbose, self.num_gpus + ) + return loader + + return self._get_loader( + self.model, + self.config, + training_assets, + True, + samples, + verbose, + self.num_gpus, + ) + + def format_batch(self, batch: List) -> Dict: + """Format the dataloader output and return a batch. + + 1. Call ```model.format_batch```. + 2. Pass the batch to the Device. + 3. Call ```model.format_batch_on_device```. + + Args: + batch (List): Batch returned by the dataloader. + + Returns: + Dict: Formatted batch. + """ + try: + if self.num_gpus > 1: + batch = self.model.module.format_batch(batch) + else: + batch = self.model.format_batch(batch) + except NotImplementedError: + pass + + if isinstance(batch, dict): + for k, v in batch.items(): + batch[k] = to_cuda(v) + elif isinstance(batch, list): + batch = [to_cuda(v) for v in batch] + + try: + if self.num_gpus > 1: + batch = self.model.module.format_batch_on_device(batch) + else: + batch = self.model.format_batch_on_device(batch) + except NotImplementedError: + pass + return batch + + ###################### + # TRAIN FUNCTIONS + ###################### + + @staticmethod + def master_params(optimizer: torch.optim.Optimizer): + """Generator over parameters owned by the optimizer. + + Used to select parameters used by the optimizer for gradient clipping. + + Args: + optimizer: Target optimizer. + """ + for group in optimizer.param_groups: + for p in group["params"]: + yield p + + @staticmethod + def _model_train_step( + batch: Dict, model: nn.Module, criterion: nn.Module, optimizer_idx: int = None + ) -> Tuple[Dict, Dict]: + """ + Perform a trainig forward step. Compute model outputs and losses. + + Args: + batch (Dict): [description] + model (nn.Module): [description] + criterion (nn.Module): [description] + optimizer_idx (int, optional): [description]. Defaults to None. + + Returns: + Tuple[Dict, Dict]: [description] + """ + input_args = [batch, criterion] + if optimizer_idx is not None: + input_args.append(optimizer_idx) + # unwrap model in DDP training + if hasattr(model, "module"): + return model.module.train_step(*input_args) + return model.train_step(*input_args) + + def _optimize( + self, + batch: Dict, + model: nn.Module, + optimizer: torch.optim.Optimizer, + scaler: "AMPScaler", + criterion: nn.Module, + scheduler: Union[torch.optim.lr_scheduler._LRScheduler, List], # pylint: disable=protected-access + config: Coqpit, + optimizer_idx: int = None, + step_optimizer: bool = True, + num_optimizers: int = 1, + ) -> Tuple[Dict, Dict, int]: + """Perform a forward - backward pass and run the optimizer. + + Args: + batch (Dict): Input batch. If + model (nn.Module): Model for training. Defaults to None. + optimizer (Union[nn.optim.Optimizer, List]): Model's optimizer. If it is a list then, `optimizer_idx` must be defined to indicate the optimizer in use. + scaler (AMPScaler): AMP scaler. + criterion (nn.Module): Model's criterion. + scheduler (torch.optim.lr_scheduler._LRScheduler): LR scheduler used by the optimizer. + config (Coqpit): Model config. + optimizer_idx (int, optional): Target optimizer being used. Defaults to None. + step_optimizer (bool, optional): Whether step the optimizer. If False, gradients are accumulated but + but model parameters are not updated. Defaults to True. + num_optimizers (int, optional): Number of optimizers. Defaults to 1. + + Raises: + RuntimeError: When the loss is NaN. + + Returns: + Tuple[Dict, Dict, int, torch.Tensor]: model outputs, losses, step time and gradient norm. + """ + + step_start_time = time.time() + + # forward pass and loss computation + with torch.cuda.amp.autocast(enabled=config.mixed_precision): + if optimizer_idx is not None: + outputs, loss_dict = self._model_train_step(batch, model, criterion, optimizer_idx=optimizer_idx) + else: + outputs, loss_dict = self._model_train_step(batch, model, criterion) + + # skip the rest + if not outputs: + if loss_dict: + raise RuntimeError(" [!] Model must return outputs when losses are computed.") + step_time = time.time() - step_start_time + return None, {}, step_time + + # accumulated gradients adjustment + loss_dict["loss"] = loss_dict["loss"] / float(self.grad_accum_steps) + + # set gradient clipping threshold + if "grad_clip" in config and config.grad_clip is not None: + if optimizer_idx is not None and isinstance(config.grad_clip, list): + grad_clip = config.grad_clip[optimizer_idx] + else: + grad_clip = config.grad_clip + else: + grad_clip = 0.0 # meaning no gradient clipping + + # optimizer step + grad_norm = 0 + update_lr_scheduler = True + if self.use_amp_scaler: + if self.use_apex: + # TODO: verify AMP use for GAN training in TTS + # https://nvidia.github.io/apex/advanced.html?highlight=accumulate#backward-passes-with-multiple-optimizers + with amp.scale_loss(loss_dict["loss"], optimizer) as scaled_loss: + scaled_loss.backward() + grad_norm = torch.nn.utils.clip_grad_norm_(amp.master_params(optimizer), grad_clip) + else: + # model optimizer step in mixed precision mode + scaler.scale(loss_dict["loss"]).backward() + # gradient accumulation + if step_optimizer: + if grad_clip > 0: + scaler.unscale_(optimizer) + grad_norm = torch.nn.utils.clip_grad_norm_(self.master_params(optimizer), grad_clip) + scale_prev = scaler.get_scale() + scaler.step(optimizer) + # update the scaler at the end of all the optimizer steps + if optimizer_idx is None or (optimizer_idx + 1 == num_optimizers): + scaler.update() + loss_dict["amp_scaler"] = scaler.get_scale() # for logging + update_lr_scheduler = scale_prev <= scaler.get_scale() + else: + self.callbacks.before_backward_pass(self, loss_dict) + # main model optimizer step + loss_dict["loss"].backward() + # gradient accumulation + if step_optimizer: + self.callbacks.before_gradient_clipping(self) + if grad_clip > 0: + grad_norm = torch.nn.utils.clip_grad_norm_(self.master_params(optimizer), grad_clip) + optimizer.step() + + # pytorch skips the step when the norm is 0. So ignore the norm value when it is NaN + if isinstance(grad_norm, torch.Tensor) and (torch.isnan(grad_norm) or torch.isinf(grad_norm)): + grad_norm = 0 + + step_time = time.time() - step_start_time + + # setup lr + if scheduler is not None and update_lr_scheduler and not self.config.scheduler_after_epoch and step_optimizer: + scheduler.step() + + # detach losses for logging + loss_dict_detached = self._detach_loss_dict(loss_dict) + loss_dict_detached["loss"] = loss_dict_detached["loss"] * float(self.grad_accum_steps) + + if optimizer_idx is not None: + loss_dict_detached[f"loss_{optimizer_idx}"] = loss_dict_detached.pop("loss") + if step_optimizer: + loss_dict_detached[f"grad_norm_{optimizer_idx}"] = grad_norm + else: + if step_optimizer: + loss_dict_detached["grad_norm"] = grad_norm + + # zero-out optimizer + if step_optimizer: + optimizer.zero_grad() + return outputs, loss_dict_detached, step_time + + def train_step(self, batch: Dict, batch_n_steps: int, step: int, loader_start_time: float) -> Tuple[Dict, Dict]: + """Perform a training step on a batch of inputs and log the process. + + Args: + batch (Dict): Input batch. + batch_n_steps (int): Number of steps needed to complete an epoch. Needed for logging. + step (int): Current step number in this epoch. + loader_start_time (float): The time when the data loading is started. Needed for logging. + + Returns: + Tuple[Dict, Dict]: Model outputs and losses. + """ + self.callbacks.on_train_step_start(self) + # format data + batch = self.format_batch(batch) + loader_time = time.time() - loader_start_time + + # conteainers to hold model outputs and losses for each optimizer. + outputs_per_optimizer = None + loss_dict = {} + + # gradient accumulation + # TODO: grad accumulation for each optimizer + step_optimizer = True + if ((step + 1) % self.grad_accum_steps != 0) and (step + 1 != batch_n_steps): + step_optimizer = False + + if not isinstance(self.optimizer, list): + # training with a single optimizer + outputs, loss_dict_new, step_time = self._optimize( + batch, + self.model, + self.optimizer, + self.scaler, + self.criterion, + self.scheduler, + self.config, + step_optimizer=step_optimizer, + num_optimizers=len(self.optimizer) if isinstance(self.optimizer, list) else 1, + ) + loss_dict.update(loss_dict_new) + else: + # training with multiple optimizers (e.g. GAN) + outputs_per_optimizer = [None] * len(self.optimizer) + total_step_time = 0 + for idx, optimizer in enumerate(self.optimizer): + criterion = self.criterion + # scaler = self.scaler[idx] if self.use_amp_scaler else None + scaler = self.scaler + scheduler = self.scheduler[idx] + outputs, loss_dict_new, step_time = self._optimize( + batch, + self.model, + optimizer, + scaler, + criterion, + scheduler, + self.config, + idx, + step_optimizer=step_optimizer, + ) + # skip the rest if the model returns None + total_step_time += step_time + outputs_per_optimizer[idx] = outputs + # merge loss_dicts from each optimizer + # rename duplicates with the optimizer idx + # if None, model skipped this optimizer + if loss_dict_new is not None: + for k, v in loss_dict_new.items(): + if k in loss_dict: + loss_dict[f"{k}-{idx}"] = v + else: + loss_dict[k] = v + step_time = total_step_time + outputs = outputs_per_optimizer + + # clear any pesky gradients after gradient accumulation + if step_optimizer: + self.model.zero_grad() + + # update avg runtime stats + keep_avg_update = {} + keep_avg_update["avg_loader_time"] = loader_time + keep_avg_update["avg_step_time"] = step_time + self.keep_avg_train.update_values(keep_avg_update) + + # update avg loss stats + update_eval_values = {} + for key, value in loss_dict.items(): + update_eval_values["avg_" + key] = value + self.keep_avg_train.update_values(update_eval_values) + + # print training progress + if self.total_steps_done % self.config.print_step == 0: + # log learning rates + lrs = {} + if isinstance(self.optimizer, list): + for idx, optimizer in enumerate(self.optimizer): + current_lr = self.optimizer[idx].param_groups[0]["lr"] + lrs.update({f"current_lr_{idx}": current_lr}) + else: + current_lr = self.optimizer.param_groups[0]["lr"] + lrs = {"current_lr": current_lr} + + # log run-time stats + loss_dict.update(lrs) + loss_dict.update( + { + "step_time": round(step_time, 4), + "loader_time": round(loader_time, 4), + } + ) + self.c_logger.print_train_step( + batch_n_steps, + step, + self.total_steps_done, + loss_dict, + self.keep_avg_train.avg_values, + ) + + if self.args.rank == 0: + # Plot Training Iter Stats + # reduce TB load and don't log every step + if self.total_steps_done % self.config.plot_step == 0: + self.dashboard_logger.train_step_stats(self.total_steps_done, loss_dict) + if self.total_steps_done % self.config.save_step == 0 and self.total_steps_done != 0: + if self.config.save_checkpoints: + # checkpoint the model + target_avg_loss = self._pick_target_avg_loss(self.keep_avg_train) + save_checkpoint( + self.config, + self.model, + self.optimizer, + self.scaler if self.use_amp_scaler else None, + self.total_steps_done, + self.epochs_done, + self.output_path, + model_loss=target_avg_loss, + save_n_checkpoints=self.config.save_n_checkpoints, + save_func=self.dashboard_logger.save_model, + ) + + if self.total_steps_done % self.config.log_model_step == 0: + # log checkpoint as artifact + aliases = [ + f"epoch-{self.epochs_done}", + f"step-{self.total_steps_done}", + ] + self.dashboard_logger.add_artifact( + file_or_dir=self.output_path, name="checkpoint", artifact_type="model", aliases=aliases + ) + + # training visualizations + if hasattr(self.model, "module") and hasattr(self.model.module, "train_log"): + self.model.module.train_log( + batch, + outputs, + self.dashboard_logger, + self.training_assets, + self.total_steps_done, + ) + elif hasattr(self.model, "train_log"): + self.model.train_log( + batch, + outputs, + self.dashboard_logger, + self.training_assets, + self.total_steps_done, + ) + + self.dashboard_logger.flush(step=step) + + self.total_steps_done += 1 + self.callbacks.on_train_step_end(self) + return outputs, loss_dict + + def train_epoch(self, epoch) -> None: + """Main entry point for the training loop. Run training on the all training samples.""" + # initialize the data loader + self.train_loader = self.get_train_dataloader( + self.training_assets, + self.train_samples, + verbose=True, + ) + # set model to training mode + if self.num_gpus > 1: + self.model.module.train() + else: + self.model.train() + epoch_start_time = time.time() + + self.c_logger.print_train_start() + loader_start_time = time.time() + # TRAINING EPOCH -> iterate over the training samples + batch_num_steps = len(self.train_loader) + for cur_step, batch in enumerate(self.train_loader): + _, _ = self.train_step(batch, batch_num_steps, cur_step, loader_start_time) + loader_start_time = time.time() + epoch_time = time.time() - epoch_start_time + # scheduler step + if self.scheduler is not None and self.config.scheduler_after_epoch: + if isinstance(self.scheduler, list): + for scheduler in self.scheduler: + if scheduler is not None: + scheduler.step() + else: + self.scheduler.step() + # plot self.epochs_done Stats + if self.args.rank == 0: + epoch_stats = {"epoch_time": epoch_time, "epoch":epoch} + epoch_stats.update(self.keep_avg_train.avg_values) + self.dashboard_logger.train_epoch_stats(self.total_steps_done, epoch_stats) + if self.config.model_param_stats: + self.dashboard_logger.model_weights(self.model, self.total_steps_done) + + ####################### + # EVAL FUNCTIONS + ####################### + + @staticmethod + def _model_eval_step( + batch: Dict, model: nn.Module, criterion: nn.Module, optimizer_idx: int = None + ) -> Tuple[Dict, Dict]: + """ + Perform a evaluation forward pass. Compute model outputs and losses with no gradients. + + Args: + batch (Dict): IBatch of inputs. + model (nn.Module): Model to call evaluation. + criterion (nn.Module): Model criterion. + optimizer_idx (int, optional): Optimizer ID to define the closure in multi-optimizer training. Defaults to None. + + Returns: + Tuple[Dict, Dict]: model outputs and losses. + """ + input_args = [batch, criterion] + if optimizer_idx is not None: + input_args.append(optimizer_idx) + if hasattr(model, "module"): + return model.module.eval_step(*input_args) + return model.eval_step(*input_args) + + def eval_step(self, batch: Dict, step: int) -> Tuple[Dict, Dict]: + """Perform a evaluation step on a batch of inputs and log the process. + + Args: + batch (Dict): Input batch. + step (int): Current step number in this epoch. + + Returns: + Tuple[Dict, Dict]: Model outputs and losses. + """ + with torch.no_grad(): + outputs = [] + loss_dict = {} + if not isinstance(self.optimizer, list): + outputs, loss_dict = self._model_eval_step(batch, self.model, self.criterion) + else: + outputs = [None] * len(self.optimizer) + for idx, _ in enumerate(self.optimizer): + criterion = self.criterion + outputs_, loss_dict_new = self._model_eval_step(batch, self.model, criterion, idx) + outputs[idx] = outputs_ + + if loss_dict_new: + loss_dict_new[f"loss_{idx}"] = loss_dict_new.pop("loss") + loss_dict.update(loss_dict_new) + + loss_dict = self._detach_loss_dict(loss_dict) + + # update avg stats + update_eval_values = {} + for key, value in loss_dict.items(): + update_eval_values["avg_" + key] = value + self.keep_avg_eval.update_values(update_eval_values) + + if self.config.print_eval: + self.c_logger.print_eval_step(step, loss_dict, self.keep_avg_eval.avg_values) + return outputs, loss_dict + + def eval_epoch(self) -> None: + """Main entry point for the evaluation loop. Run evaluation on the all validation samples.""" + self.eval_loader = ( + self.get_eval_dataloader( + self.training_assets, + self.eval_samples, + verbose=True, + ) + if self.config.run_eval + else None + ) + + self.model.eval() + self.c_logger.print_eval_start() + loader_start_time = time.time() + batch = None + for cur_step, batch in enumerate(self.eval_loader): + # format data + batch = self.format_batch(batch) + loader_time = time.time() - loader_start_time + self.keep_avg_eval.update_values({"avg_loader_time": loader_time}) + outputs, _ = self.eval_step(batch, cur_step) + loader_start_time = time.time() + # plot epoch stats, artifacts and figures + if self.args.rank == 0: + if hasattr(self.model, "module") and hasattr(self.model.module, "eval_log"): + self.model.module.eval_log( + batch, + outputs, + self.dashboard_logger, + self.training_assets, + self.total_steps_done, + ) + elif hasattr(self.model, "eval_log"): + self.model.eval_log( + batch, + outputs, + self.dashboard_logger, + self.training_assets, + self.total_steps_done, + ) + self.dashboard_logger.eval_stats(self.total_steps_done, self.keep_avg_eval.avg_values) + + ################################## + # TESTING + ################################## + def test_run(self) -> None: + """Run model test. + + Test run is expected to pass over test samples and produce logging artifacts. + + If ```model.test_run()``` is defined, it will be called and it is expected to set and execute everything + in the model. + + Else if ```mode.test()``` is defined, it will be called and it takes an test data loader as an argument + and iterate over it. + """ + self.model.eval() + test_outputs = None + if hasattr(self.model, "test_run") or (self.num_gpus > 1 and hasattr(self.model.module, "test_run")): + # handle everything in ```model.test_run()` + if self.num_gpus > 1: + test_outputs = self.model.module.test_run(self.training_assets) + else: + test_outputs = self.model.test_run(self.training_assets) + elif hasattr(self.model, "test") or (self.num_gpus > 1 and hasattr(self.model.module, "test")): + self.test_loader = self.get_test_dataloader( + self.training_assets, + self.test_samples if self.test_samples else self.eval_samples, + verbose=True, + ) + # use test_loader to load test samples + if self.num_gpus > 1: + test_outputs = self.model.module.test(self.training_assets, self.test_loader, None) + else: + test_outputs = self.model.test(self.training_assets, self.test_loader, None) + if hasattr(self.model, "test_log"): + self.model.test_log(test_outputs, self.dashboard_logger, self.training_assets, self.total_steps_done) + elif (self.num_gpus > 1 and hasattr(self.model.module, "test_log")): + self.model.module.test_log(test_outputs, self.dashboard_logger, self.training_assets, self.total_steps_done) + + def _restore_best_loss(self): + """Restore the best loss from the args.best_path if provided else + from the model (`args.restore_path` or `args.continue_path`) used for resuming the training""" + if self.restore_step != 0 or self.args.best_path: + logger.info(" > Restoring best loss from %s ...", os.path.basename(self.args.best_path)) + ch = load_fsspec(self.args.restore_path, map_location="cpu") + if "model_loss" in ch: + self.best_loss = ch["model_loss"] + logger.info(" > Starting with loaded last best loss %f", self.best_loss) + + def test(self, model=None, test_samples=None) -> None: + """Run evaluation steps on the test data split. You can either provide the model and the test samples + explicitly or the trainer use values from the initialization. + + Args: + model (nn.Module, optional): Model to use for testing. If None, use the model given in the initialization. + Defaults to None. + + test_samples (List[str], optional): List of test samples to use for testing. If None, use the test samples + given in the initialization. Defaults to None. + """ + + logger.info(" > USING TEST SET...") + self.keep_avg_eval = KeepAverage() + + if model is not None: + self.model = model + + eval_samples_cache = self.eval_samples + if test_samples is not None: + self.eval_samples = test_samples + else: + self.eval_samples = self.test_samples + + self.eval_epoch() + self.c_logger.print_epoch_end(self.epochs_done, self.keep_avg_eval.avg_values) + self.eval_samples = eval_samples_cache + + ################################### + # FIT FUNCTIONS + ################################### + + def _fit(self) -> None: + """๐Ÿƒ train -> evaluate -> test for the number of epochs.""" + self._restore_best_loss() + + self.total_steps_done = self.restore_step + + for epoch in range(0, self.config.epochs): + if self.num_gpus > 1: + # let all processes sync up before starting with a new epoch of training + dist.barrier() + self.callbacks.on_epoch_start(self) + self.keep_avg_train = KeepAverage() + self.keep_avg_eval = KeepAverage() if self.config.run_eval else None + self.epochs_done = epoch + self.c_logger.print_epoch_start(epoch, self.config.epochs, self.output_path) + if not self.skip_train_epoch: + self.train_epoch(epoch) + if self.config.run_eval: + self.eval_epoch() + if epoch >= self.config.test_delay_epochs and self.args.rank <= 0: + self.test_run() + self.c_logger.print_epoch_end( + epoch, + self.keep_avg_eval.avg_values if self.config.run_eval else self.keep_avg_train.avg_values, + ) + if self.args.rank in [None, 0]: + self.save_best_model() + self.callbacks.on_epoch_end(self) + + def fit(self) -> None: + """Where the โœจ๏ธmagicโœจ๏ธ happens...""" + try: + self._fit() + if self.args.rank == 0: + self.dashboard_logger.finish() + except KeyboardInterrupt: + self.callbacks.on_keyboard_interrupt(self) + # if the output folder is empty remove the run. + remove_experiment_folder(self.output_path) + # clear the DDP processes + if self.num_gpus > 1: + dist.destroy_process_group() + # finish the wandb run and sync data + if self.args.rank == 0: + self.dashboard_logger.finish() + # stop without error signal + try: + sys.exit(0) + except SystemExit: + os._exit(0) # pylint: disable=protected-access + except BaseException: # pylint: disable=broad-except + remove_experiment_folder(self.output_path) + traceback.print_exc() + sys.exit(1) + + def profile_fit(self, torch_profiler, epochs=None, small_run=None): + """Run training under the torch profiler. + + Example:: + Run torch profiler to profile CPU, GPU and memory usage with Tensorboard logging. + + >>> import torch + >>> profiler = torch.profiler.profile( + >>> activities=[ + >>> torch.profiler.ProfilerActivity.CPU, + >>> torch.profiler.ProfilerActivity.CUDA, + >>> ], + >>> schedule=torch.profiler.schedule(wait=1, warmup=1, active=3, repeat=2), + >>> on_trace_ready=torch.profiler.tensorboard_trace_handler("./profiler/"), + >>> record_shapes=True, + >>> profile_memory=True, + >>> with_stack=True, + >>> ) + >>> prof = trainer.profile_fit(profiler, epochs=1, small_run=64) + """ + self.dashboard_logger = DummyLogger() + # train the model for a custom number of epochs + if epochs: + self.config.epocshs = epochs + # use a smaller set of training samples for profiling + if small_run: + self.config.small_run = small_run + # run profiler + self.config.run_eval = False + self.config.test_delay_epochs = 9999999 + self.config.epochs = epochs + # set a callback to progress the profiler + self.callbacks_on_train_step_end = [lambda trainer: trainer.torch_profiler.step()] # pylint: disable=attribute-defined-outside-init + # set the profiler to access in the Trainer + self.torch_profiler = torch_profiler # pylint: disable=attribute-defined-outside-init + # set logger output for Tensorboard + # self.torch_profiler.on_trace_ready = torch.profiler.tensorboard_trace_handler(self.output_path) + self.torch_profiler.start() + self.fit() + self.torch_profiler.stop() + return self.torch_profiler + + def save_best_model(self) -> None: + """Save the best model. It only saves if the current target loss is smaller then the previous.""" + + # set the target loss to choose the best model + target_loss_dict = self._pick_target_avg_loss(self.keep_avg_eval if self.keep_avg_eval else self.keep_avg_train) + + # save the model and update the best_loss + self.best_loss = save_best_model( + target_loss_dict, + self.best_loss, + self.config, + self.model, + self.optimizer, + self.scaler if self.use_amp_scaler else None, + self.total_steps_done, + self.epochs_done, + self.output_path, + keep_all_best=self.config.save_all_best, + keep_after=self.config.save_best_after, + save_func=self.dashboard_logger.save_model, + ) + + ##################### + # GET FUNCTIONS + ##################### + + @staticmethod + def get_optimizer(model: nn.Module, config: Coqpit) -> Union[torch.optim.Optimizer, List]: + """Receive the optimizer from the model if model implements `get_optimizer()` else + check the optimizer parameters in the config and try initiating the optimizer. + + Args: + model (nn.Module): Training model. + config (Coqpit): Training configuration. + + Returns: + Union[torch.optim.Optimizer, List]: A optimizer or a list of optimizers. GAN models define a list. + """ + optimizer = None + if hasattr(model, "get_optimizer"): + try: + optimizer = model.get_optimizer() + except NotImplementedError: + optimizer = None + if optimizer is None: + optimizer_name = config.optimizer + optimizer_params = {} if config.optimizer_params is None else config.optimizer_params + return get_optimizer(optimizer_name, optimizer_params, config.lr, model) + return optimizer + + @staticmethod + def get_lr(model: nn.Module, config: Coqpit) -> Union[float, List[float]]: + """Set the initial learning rate by the model if model implements `get_lr()` else try setting the learning rate + fromthe config. + + Args: + model (nn.Module): Training model. + config (Coqpit): Training configuration. + + Returns: + Union[float, List[float]]: A single learning rate or a list of learning rates, one for each optimzier. + """ + lr = None + if hasattr(model, "get_lr"): + try: + lr = model.get_lr() + except NotImplementedError: + lr = None + if lr is None: + lr = config.lr + return lr + + @staticmethod + def get_scheduler( + model: nn.Module, config: Coqpit, optimizer: Union[torch.optim.Optimizer, List] + ) -> Union[torch.optim.lr_scheduler._LRScheduler, List]: # pylint: disable=protected-access + """Receive the scheduler from the model if model implements `get_scheduler()` else + check the config and try initiating the scheduler. + + Args: + model (nn.Module): Training model. + config (Coqpit): Training configuration. + + Returns: + Union[torch.optim.Optimizer, List]: A scheduler or a list of schedulers, one for each optimizer. + """ + scheduler = None + if hasattr(model, "get_scheduler"): + try: + scheduler = model.get_scheduler(optimizer) + except NotImplementedError: + scheduler = None + if scheduler is None: + if isinstance(optimizer, list): + lr_schedulers = [] + for idx, opt in enumerate(optimizer): + if config.lr_scheduler_aligner: + if idx == 1: + lr_scheduler = get_scheduler(config.lr_scheduler_aligner, config.lr_scheduler_aligner_params, opt) + lr_schedulers.append(lr_scheduler) + else: + lr_scheduler = get_scheduler(config.lr_scheduler, config.lr_scheduler_params, opt) + lr_schedulers.append(lr_scheduler) + else: + raise ValueError() + return lr_schedulers + else: + lr_scheduler = config.lr_scheduler + lr_scheduler_params = config.lr_scheduler_params + return get_scheduler(lr_scheduler, lr_scheduler_params, optimizer) + return scheduler + + @staticmethod + def restore_scheduler( + scheduler: Union["Scheduler", List], args: Coqpit, config: Coqpit, restore_epoch: int, restore_step: int + ) -> Union["Scheduler", List]: + """Restore scheduler wrt restored model.""" + if scheduler is not None: # pylint: disable=too-many-nested-blocks + if args.continue_path: + if isinstance(scheduler, list): + for s in scheduler: + if s is not None: + if config.scheduler_after_epoch: + s.last_epoch = restore_epoch + else: + s.last_epoch = restore_step + else: + if config.scheduler_after_epoch: + scheduler.last_epoch = restore_epoch + else: + scheduler.last_epoch = restore_step + return scheduler + + @staticmethod + def get_criterion(model: nn.Module) -> nn.Module: + """Receive the criterion from the model. Model must implement `get_criterion()`. + + Args: + model (nn.Module): Training model. + + Returns: + nn.Module: Criterion layer. + """ + criterion = None + criterion = model.get_criterion() + return criterion + + #################### + # HELPER FUNCTIONS + #################### + + @staticmethod + def _detach_loss_dict(loss_dict: Dict) -> Dict: + """Detach loss values from autograp. + + Args: + loss_dict (Dict): losses. + + Returns: + Dict: losses detached from autograph. + """ + loss_dict_detached = {} + for key, value in loss_dict.items(): + if isinstance(value, (int, float)): + loss_dict_detached[key] = value + else: + loss_dict_detached[key] = value.detach().clone() + return loss_dict_detached + + def _pick_target_avg_loss(self, keep_avg_target: KeepAverage) -> Dict: + """Pick the target loss to compare models""" + target_avg_loss = None + + # return if target loss defined in the model config + if "target_loss" in self.config and self.config.target_loss: + return keep_avg_target[f"avg_{self.config.target_loss}"] + + # take the average of loss_{optimizer_idx} as the target loss when there are multiple optimizers + if isinstance(self.optimizer, list): + target_avg_loss = 0 + for idx in range(len(self.optimizer)): + target_avg_loss += keep_avg_target[f"avg_loss_{idx}"] + target_avg_loss /= len(self.optimizer) + else: + target_avg_loss = keep_avg_target["avg_loss"] + return target_avg_loss + + def _setup_logger_config(self, log_file: str) -> None: + """Set up the logger based on the process rank in DDP.""" + + logger_new = logging.getLogger("trainer") + handler = logging.FileHandler(log_file, mode="a") + fmt = logging.Formatter("") + handler.setFormatter(fmt) + logger_new.addHandler(handler) + + # only log to a file if rank > 0 in DDP + if self.args.rank > 0: + logger_new.handlers = [h for h in logger_new.handlers if not isinstance(h, logging.StreamHandler)] + + @staticmethod + def _is_apex_available() -> bool: + """Check if Nvidia's APEX is available.""" + return importlib.util.find_spec("apex") is not None diff --git a/Indic-TTS/Trainer/trainer/trainer_utils.py b/Indic-TTS/Trainer/trainer/trainer_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..932a98f4bef93f4844a1b7349af146f4418ac8b5 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/trainer_utils.py @@ -0,0 +1,141 @@ +import importlib +import os +import random +from typing import Dict, List, Tuple + +import numpy as np +import torch + +from trainer.logger import logger +from trainer.torch import NoamLR, StepwiseGradualLR, NoamLRStepConstant, NoamLRStepDecay +from trainer.utils.distributed import rank_zero_logger_info + + +def is_apex_available(): + return importlib.util.find_spec("apex") is not None + + +def is_mlflow_available(): + return importlib.util.find_spec("mlflow") is not None + + +def is_aim_available(): + return importlib.util.find_spec("aim") is not None + + +def is_wandb_available(): + return importlib.util.find_spec("wandb") is not None + + +def is_clearml_available(): + return importlib.util.find_spec("clearml") is not None + + +def setup_torch_training_env( + cudnn_enable: bool, + cudnn_benchmark: bool, + cudnn_deterministic: bool, + use_ddp: bool = False, + training_seed=54321, + gpu=None, +) -> Tuple[bool, int]: + """Setup PyTorch environment for training. + + Args: + cudnn_enable (bool): Enable/disable CUDNN. + cudnn_benchmark (bool): Enable/disable CUDNN benchmarking. Better to set to False if input sequence length is + variable between batches. + cudnn_deterministic (bool): Enable/disable CUDNN deterministic mode. + use_ddp (bool): DDP flag. True if DDP is enabled, False otherwise. + torch_seed (int): Seed for torch random number generator. + + Returns: + Tuple[bool, int]: is cuda on or off and number of GPUs in the environment. + """ + # clear cache before training + torch.cuda.empty_cache() + + # set_nvidia_flags + # set the correct cuda visible devices (using pci order) + os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" + if "CUDA_VISIBLE_DEVICES" not in os.environ and gpu is not None: + torch.cuda.set_device(int(gpu)) + num_gpus = 1 + else: + num_gpus = torch.cuda.device_count() + + if num_gpus > 1 and not use_ddp: + raise RuntimeError( + f" [!] {num_gpus} active GPUs. Define the target GPU by `CUDA_VISIBLE_DEVICES`. For multi-gpu training use `TTS/bin/distribute.py`." + ) + + random.seed(training_seed) + os.environ["PYTHONHASHSEED"] = str(training_seed) + np.random.seed(training_seed) + torch.manual_seed(training_seed) + torch.cuda.manual_seed(training_seed) + + torch.backends.cudnn.deterministic = cudnn_deterministic + torch.backends.cudnn.enabled = cudnn_enable + torch.backends.cudnn.benchmark = cudnn_benchmark + + use_cuda = torch.cuda.is_available() + rank_zero_logger_info(f" > Using CUDA: {use_cuda}", logger) + rank_zero_logger_info(f" > Number of GPUs: {num_gpus}", logger) + return use_cuda, num_gpus + + +def get_scheduler( + lr_scheduler: str, lr_scheduler_params: Dict, optimizer: torch.optim.Optimizer +) -> torch.optim.lr_scheduler._LRScheduler: # pylint: disable=protected-access + """Find, initialize and return a Torch scheduler. + + Args: + lr_scheduler (str): Scheduler name. + lr_scheduler_params (Dict): Scheduler parameters. + optimizer (torch.optim.Optimizer): Optimizer to pass to the scheduler. + + Returns: + torch.optim.lr_scheduler._LRScheduler: Functional scheduler. + """ + if lr_scheduler is None: + return None + if lr_scheduler.lower() == "noamlr": + scheduler = NoamLR + elif lr_scheduler.lower() == "noamlrstepconstant": + scheduler = NoamLRStepConstant + elif lr_scheduler.lower() == "noamlrstepdecay": + scheduler = NoamLRStepDecay + elif lr_scheduler.lower() == "stepwisegraduallr": + scheduler = StepwiseGradualLR + else: + scheduler = getattr(torch.optim.lr_scheduler, lr_scheduler) + return scheduler(optimizer, **lr_scheduler_params) + + +def get_optimizer( + optimizer_name: str, + optimizer_params: dict, + lr: float, + model: torch.nn.Module = None, + parameters: List = None, +) -> torch.optim.Optimizer: + """Find, initialize and return a Torch optimizer. + + Args: + optimizer_name (str): Optimizer name. + optimizer_params (dict): Optimizer parameters. + lr (float): Initial learning rate. + model (torch.nn.Module): Model to pass to the optimizer. + + Returns: + torch.optim.Optimizer: Functional optimizer. + """ + if optimizer_name.lower() == "radam": + module = importlib.import_module("TTS.utils.radam") + optimizer = getattr(module, "RAdam") + else: + optimizer = getattr(torch.optim, optimizer_name) + if model is not None: + parameters = model.parameters() + return optimizer(parameters, lr=lr, **optimizer_params) diff --git a/Indic-TTS/Trainer/trainer/utils/__init__.py b/Indic-TTS/Trainer/trainer/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/Trainer/trainer/utils/__pycache__/__init__.cpython-37.pyc b/Indic-TTS/Trainer/trainer/utils/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1b403881777bc56cee62b169e459fdd18477b2a2 Binary files /dev/null and b/Indic-TTS/Trainer/trainer/utils/__pycache__/__init__.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/utils/__pycache__/distributed.cpython-37.pyc b/Indic-TTS/Trainer/trainer/utils/__pycache__/distributed.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b9e49406886750b465c9ecab98c20f8cc514e5fa Binary files /dev/null and b/Indic-TTS/Trainer/trainer/utils/__pycache__/distributed.cpython-37.pyc differ diff --git a/Indic-TTS/Trainer/trainer/utils/distributed.py b/Indic-TTS/Trainer/trainer/utils/distributed.py new file mode 100644 index 0000000000000000000000000000000000000000..a99973cd92cac7046e77fbeeb87dfeb7b2c01f55 --- /dev/null +++ b/Indic-TTS/Trainer/trainer/utils/distributed.py @@ -0,0 +1,63 @@ +# edited from https://github.com/fastai/imagenet-fast/blob/master/imagenet_nv/distributed.py +import os +from functools import wraps +from typing import Any, Callable, Optional + +import torch +import torch.distributed as dist + + +def get_rank() -> int: + rank_keys = ("RANK", "SLURM_PROCID", "LOCAL_RANK") + for key in rank_keys: + rank = os.environ.get(key) + if rank is not None: + return int(rank) + + return 0 + + +def rank_zero_only(fn: Callable) -> Callable: + @wraps(fn) + def wrapped_fn(*args: Any, **kwargs: Any) -> Optional[Any]: + if rank_zero_only.rank == 0: + return fn(*args, **kwargs) + return None + + return wrapped_fn + + +rank_zero_only.rank = getattr(rank_zero_only, "rank", get_rank()) + + +@rank_zero_only +def rank_zero_print(message: str, *args, **kwargs) -> None: # pylint: disable=unused-argument + print(message) + + +@rank_zero_only +def rank_zero_logger_info(message: str, logger: "Logger", *args, **kwargs) -> None: # pylint: disable=unused-argument + logger.info(message) + + +def reduce_tensor(tensor, num_gpus): + rt = tensor.clone() + dist.all_reduce(rt, op=dist.reduce_op.SUM) + rt /= num_gpus + return rt + + +def init_distributed(rank, num_gpus, group_name, dist_backend, dist_url): + assert torch.cuda.is_available(), "Distributed mode requires CUDA." + + # Set cuda device so everything is done on the right GPU. + torch.cuda.set_device(rank % torch.cuda.device_count()) + + # Initialize distributed communication + dist.init_process_group( + dist_backend, + init_method=dist_url, + world_size=num_gpus, + rank=rank, + group_name=group_name, + ) diff --git a/Indic-TTS/configs/test_fastpitch.sh b/Indic-TTS/configs/test_fastpitch.sh new file mode 100644 index 0000000000000000000000000000000000000000..280f587b3c068e38c5b753c48c41c35a668b23b0 --- /dev/null +++ b/Indic-TTS/configs/test_fastpitch.sh @@ -0,0 +1,14 @@ +python3 -m TTS.bin.synthesize --text "../../datasets/indictts/ta/samples.csv" \ + --model_path output/store/ta/fastpitch/best_model.pth \ + --config_path output/store/ta/fastpitch/config.json \ + --vocoder_path output_vocoder/store/ta/hifigan/best_model.pth \ + --vocoder_config_path output_vocoder/store/ta/hifigan/config.json \ + --out_path output_wavs/samples + +python3 scripts/evaluate_mcd.py \ + output_wavs/samples/ \ + data_dir/indictts/ta/wavs-22k + +python3 scripts/evaluate_f0.py \ + output_wavs/samples/ \ + /data_dir/indictts/ta/wavs-22k diff --git a/Indic-TTS/configs/train_fastpitch.sh b/Indic-TTS/configs/train_fastpitch.sh new file mode 100644 index 0000000000000000000000000000000000000000..f686df3f9e2388bef068927027c16df005da5af6 --- /dev/null +++ b/Indic-TTS/configs/train_fastpitch.sh @@ -0,0 +1,30 @@ +python3 main.py --dataset_name indictts \ + --language ta \ + --speaker all \ + --max_audio_len 441000 \ + --max_text_len 400 \ + --audio_config without_norm \ + --model fastpitch \ + --hidden_channels 512 \ + --use_speaker_embedding t \ + --use_d_vector_file f \ + --use_speaker_encoder_as_loss f \ + --use_ssim_loss f \ + --use_aligner t \ + --use_separate_optimizers f \ + --use_pre_computed_alignments f \ + --batch_size 32 \ + --batch_size_eval 32 \ + --batch_group_size 0 \ + --epochs 2500 \ + --aligner_epochs 2500 \ + --lr 0.0001 \ + --lr_scheduler NoamLR \ + --lr_scheduler_warmup_steps 4000 \ + --lr_scheduler_step_size 500 \ + --lr_scheduler_gamma 0.1 \ + --lr_scheduler_threshold_step 500 \ + --num_workers 0 \ + --num_workers_eval 0 \ + --output_path output/ta \ + --mixed_precision t diff --git a/Indic-TTS/configs/train_hifigan.sh b/Indic-TTS/configs/train_hifigan.sh new file mode 100644 index 0000000000000000000000000000000000000000..93e7822b71334bd407c589d26020c38e2f147cd2 --- /dev/null +++ b/Indic-TTS/configs/train_hifigan.sh @@ -0,0 +1,8 @@ +CUDA_VISIBLE_DEVICES='0' python3 vocoder.py --dataset_name indictts \ + --language mr \ + --speaker male \ + --batch_size 32 \ + --batch_size_eval 32 \ + --epochs 5000 \ + --port 10004 \ + --mixed_precision t \ No newline at end of file diff --git a/Indic-TTS/images/architecture.png b/Indic-TTS/images/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..6df01ce53f8453c2f6a9d97e3326b37b2f8fe9bb Binary files /dev/null and b/Indic-TTS/images/architecture.png differ diff --git a/Indic-TTS/images/evaluation.png b/Indic-TTS/images/evaluation.png new file mode 100644 index 0000000000000000000000000000000000000000..bdaeaa8a1aedac19911c8af2a3ab4e4f31ea088f Binary files /dev/null and b/Indic-TTS/images/evaluation.png differ diff --git a/Indic-TTS/inference/.dockerignore b/Indic-TTS/inference/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..bfea04a0772ac170c6f5299688b9b9df233c2f33 --- /dev/null +++ b/Indic-TTS/inference/.dockerignore @@ -0,0 +1 @@ +checkpoints diff --git a/Indic-TTS/inference/Caddyfile b/Indic-TTS/inference/Caddyfile new file mode 100644 index 0000000000000000000000000000000000000000..1a5c095424648df3c6251768b420b524173c492d --- /dev/null +++ b/Indic-TTS/inference/Caddyfile @@ -0,0 +1,3 @@ +tts-api.ai4bharat.org { + reverse_proxy 127.0.0.1:5050 +} diff --git a/Indic-TTS/inference/README.md b/Indic-TTS/inference/README.md new file mode 100644 index 0000000000000000000000000000000000000000..de668b32ceb5a7aeedc6ffa37e652da1c938d63c --- /dev/null +++ b/Indic-TTS/inference/README.md @@ -0,0 +1,57 @@ +# AI4Bharat-TTS Inference + +Text-to-Speech models trained by [AI4Bhฤrat](https://ai4bharat.iitm.ac.in) for 15 major languages spoken in the Indian Republic, supporting both male and female speakers. + +## Details + +### Dataset + +The models were trained using [the TTS dataset built by IIT-M's SMT Lab](https://www.iitm.ac.in/donlab/tts/database.php). + +### Languages + +The list of 15 languages include Indian-English, 2 Tibeto-Burman languages (Bodo & Meitei from northeast) and 12 Indic languages (4 Dravidian from South-India and 8 Indo-Aryan from Northern-India). + +| **Language** | **Code** | **Speakers** | **Script** | **Family** | **Native Region** | +|--------------|----------|--------------|------------------------|---------------|---------------------------| +| Assamese | as | male, female | Eastern-Nagari | Indo-Aryan | Assam | +| Bangla | bn | male, female | Eastern-Nagari | Indo-Aryan | West-Bengal, Bangladesh | +| Boro | brx | female | DevaNagari | Tibeto-Burman | Bodoland Territory | +| English | en | male, female | Roman | European | -- Lingua franca -- | +| Hinglish | en+hi | male, female | Code-mixed | Indo-European | | +| Gujarati | gu | male, female | Gujrati | Indo-Aryan | Gujarat | +| Hindi | hi | male, female | DevaNagari | Indo-Aryan | Hindi Belt | +| Kannada | kn | male, female | Kannada | Dravidian | Karnataka | +| Malayalam | ml | male, female | Malayalam | Dravidian | Kerala | +| Manipuri | mni | male, female | Meetei, Eastern-Nagari | Tibeto-Burman | Imphal valley (Manipur) | +| Marathi | mr | male, female | DevaNagari | Indo-Aryan | Maharashtra | +| Oriya | or | male, female | Odia | Indo-Aryan | Odisha | +| Panjabi | pa | male, female | Gurumukhi | Indo-Aryan | Eastern-Punjab | +| Rajasthani | raj | male, female | DevaNagari | Indo-Aryan | Rajasthan | +| Tamil | ta | male, female | Tamil | Dravidian | Tamil Nadu | +| Telugu | te | male, female | Telugu | Dravidian | Andhra Pradesh, Telangana | + +## Usage + +### Pre-requisites + +1. Python 3.9+ +2. If Linux, install the following dependencies: +``` +cd inference +sudo apt-get install libsndfile1-dev ffmpeg enchant +``` +(For any other OS, we wish you best of luck) +3. `pip install -r requirements-ml.txt requirements-utils.txt` +4. [Download the models from here](https://github.com/AI4Bharat/Indic-TTS/releases), place them inside a new folder named `checkpoints` and unzip them. + +### Running inference + +Check `sample.py` for usage. + +### Hosting REST API server + +``` +pip install -r requirements-server.txt +uvicorn server:api +``` diff --git a/Indic-TTS/inference/examples/pos_tag.py b/Indic-TTS/inference/examples/pos_tag.py new file mode 100644 index 0000000000000000000000000000000000000000..9c218fac4fcc8e484e0df7ef931de2cc5ad92b34 --- /dev/null +++ b/Indic-TTS/inference/examples/pos_tag.py @@ -0,0 +1,7 @@ +import nltk +nltk.download('averaged_perceptron_tagger') + +INPUT_SENTENCE = "Hello my name is Gokul and I am from Madras" +print("Input:", INPUT_SENTENCE) +pos_tags = nltk.tag.pos_tag(INPUT_SENTENCE.split()) +print(pos_tags) diff --git a/Indic-TTS/inference/examples/xlit.py b/Indic-TTS/inference/examples/xlit.py new file mode 100644 index 0000000000000000000000000000000000000000..06e379f64a4a3912ad3c60f8e133158e549d0e69 --- /dev/null +++ b/Indic-TTS/inference/examples/xlit.py @@ -0,0 +1,13 @@ +from ai4bharat.transliteration import XlitEngine + +INPUT_WORD = "namaste" +print("Input word:", INPUT_WORD) + +# xlit_engine = XlitEngine() +# for lang_code in xlit_engine.all_supported_langs: +# res = xlit_engine.translit_word(INPUT_WORD, lang_code) +# print(res) + +xlit_engine = XlitEngine("hi") +res = xlit_engine.translit_word(INPUT_WORD) +print("Hindi output:", res) diff --git a/Indic-TTS/inference/requirements-ml.txt b/Indic-TTS/inference/requirements-ml.txt new file mode 100644 index 0000000000000000000000000000000000000000..bf34029c4e4fb11ae0e5960059f24a62af18b0d3 --- /dev/null +++ b/Indic-TTS/inference/requirements-ml.txt @@ -0,0 +1,11 @@ +# constraints for fairseq, works with TTS as well +numba==0.56.2 +numpy>=1.23.0 +protobuf==3.20 + +TTS +# onnxruntime +# TTS @ git+https://github.com/ashwin-014/TTS@deployment + +ai4bharat-transliteration +asteroid diff --git a/Indic-TTS/inference/requirements-server.txt b/Indic-TTS/inference/requirements-server.txt new file mode 100644 index 0000000000000000000000000000000000000000..97d56860d87b24fba977cc3dc73c04c3a990df08 --- /dev/null +++ b/Indic-TTS/inference/requirements-server.txt @@ -0,0 +1,3 @@ +fastapi +gunicorn +uvicorn diff --git a/Indic-TTS/inference/requirements-utils.txt b/Indic-TTS/inference/requirements-utils.txt new file mode 100644 index 0000000000000000000000000000000000000000..db23129ffb8c04784a144e562a4f84c815d8271e --- /dev/null +++ b/Indic-TTS/inference/requirements-utils.txt @@ -0,0 +1,12 @@ +aksharamukha==1.9.7 +translators +num2words +indic-numtowords +nemo-text-processing +pyenchant +nltk +regex + +ffmpeg-python +librosa +soundfile diff --git a/Indic-TTS/inference/sample.py b/Indic-TTS/inference/sample.py new file mode 100644 index 0000000000000000000000000000000000000000..002ef923979023e406e003138ba66d6dfe82023d --- /dev/null +++ b/Indic-TTS/inference/sample.py @@ -0,0 +1,70 @@ +import io + +from TTS.utils.synthesizer import Synthesizer +from src.inference import TextToSpeechEngine + +# Initialize Hindi model + +lang = "hi" +hi_model = Synthesizer( + tts_checkpoint=f'checkpoints/{lang}/fastpitch/best_model.pth', + tts_config_path=f'checkpoints/{lang}/fastpitch/config.json', + tts_speakers_file=f'checkpoints/{lang}/fastpitch/speakers.pth', + # tts_speakers_file=None, + tts_languages_file=None, + vocoder_checkpoint=f'checkpoints/{lang}/hifigan/best_model.pth', + vocoder_config=f'checkpoints/{lang}/hifigan/config.json', + encoder_checkpoint="", + encoder_config="", + use_cuda=True, +) + +# Initialize Tamil model + +lang = "ta" +ta_model = Synthesizer( + tts_checkpoint=f'checkpoints/{lang}/fastpitch/best_model.pth', + tts_config_path=f'checkpoints/{lang}/fastpitch/config.json', + tts_speakers_file=f'checkpoints/{lang}/fastpitch/speakers.pth', + # tts_speakers_file=None, + tts_languages_file=None, + vocoder_checkpoint=f'checkpoints/{lang}/hifigan/best_model.pth', + vocoder_config=f'checkpoints/{lang}/hifigan/config.json', + encoder_checkpoint="", + encoder_config="", + use_cuda=True, +) + +# Setup TTS Engine + +models = { + "hi": hi_model, + "ta": ta_model, +} +engine = TextToSpeechEngine(models) + +# Hindi TTS inference + +hindi_raw_audio = engine.infer_from_text( + input_text="เคธเคฒเคพเคฎ เคฆเฅเคจเคฟเคฏเคพ", + lang="hi", + speaker_name="male" +) +byte_io = io.BytesIO() +scipy_wav_write(byte_io, DEFAULT_SAMPLING_RATE, hindi_raw_audio) + +with open("hindi_audio.wav", "wb") as f: + f.write(byte_io.read()) + +# Tamil TTS inference + +tamil_raw_audio = engine.infer_from_text( + input_text="เฎตเฎฃเฎ•เฏเฎ•เฎฎเฏโ€Œ เฎ‰เฎฒเฎ•เฎฎเฏโ€Œ", + lang="ta", + speaker_name="female" +) +byte_io = io.BytesIO() +scipy_wav_write(byte_io, DEFAULT_SAMPLING_RATE, tamil_raw_audio) + +with open("tamil_audio.wav", "wb") as f: + f.write(byte_io.read()) diff --git a/Indic-TTS/inference/server.py b/Indic-TTS/inference/server.py new file mode 100644 index 0000000000000000000000000000000000000000..ac87805588758c793510a7382e462d5c6f338432 --- /dev/null +++ b/Indic-TTS/inference/server.py @@ -0,0 +1,72 @@ +import uvicorn +from fastapi import FastAPI +from fastapi.responses import Response +from fastapi.middleware.cors import CORSMiddleware +from TTS.utils.synthesizer import Synthesizer + +from src.inference import TextToSpeechEngine +from src.models.request import TTSRequest + +SUPPORTED_LANGUAGES = { + 'as' : "Assamese - เฆ…เฆธเฆฎเง€เฆฏเฆผเฆพ", + 'bn' : "Bangla - เฆฌเฆพเฆ‚เฆฒเฆพ", + 'brx': "Boro - เคฌเคกเคผเฅ‹", + 'en' : "English (Indian accent)", + 'en+hi': "English+Hindi (Hinglish code-mixed)", + 'gu' : "Gujarati - เช—เซเชœเชฐเชพเชคเซ€", + 'hi' : "Hindi - เคนเคฟเค‚เคฆเฅ€", + 'kn' : "Kannada - เฒ•เฒจเณเฒจเฒก", + 'ml' : "Malayalam - เดฎเดฒเดฏเดพเดณเด‚", + 'mni': "Manipuri - เฆฎเฆฟเฆคเงˆเฆฒเง‹เฆจ", + 'mr' : "Marathi - เคฎเคฐเคพเค เฅ€", + 'or' : "Oriya - เฌ“เฌกเฌผเฌฟเฌ†", + 'pa' : "Panjabi - เจชเฉฐเจœเจพเจฌเฉ€", + 'raj': "Rajasthani - เคฐเคพเคœเคธเฅเคฅเคพเคจเฅ€", + 'ta' : "Tamil - เฎคเฎฎเฎฟเฎดเฏ", + 'te' : "Telugu - เฐคเฑ†เฐฒเฑเฐ—เฑ", +} + +models = {} +for lang in SUPPORTED_LANGUAGES: + models[lang] = Synthesizer( + tts_checkpoint=f'checkpoints/{lang}/fastpitch/best_model.pth', + tts_config_path=f'checkpoints/{lang}/fastpitch/config.json', + tts_speakers_file=f'checkpoints/{lang}/fastpitch/speakers.pth', + # tts_speakers_file=None, + tts_languages_file=None, + vocoder_checkpoint=f'checkpoints/{lang}/hifigan/best_model.pth', + vocoder_config=f'checkpoints/{lang}/hifigan/config.json', + encoder_checkpoint="", + encoder_config="", + use_cuda=True, + ) + print(f"Synthesizer loaded for {lang}.") + print("*"*100) + +engine = TextToSpeechEngine(models) + +api = FastAPI() + +api.add_middleware( + CORSMiddleware, + allow_origins=["*"], + # allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +@api.get("/supported_languages") +def get_supported_languages(): + return SUPPORTED_LANGUAGES + +@api.get("/") +def homepage(): + return "AI4Bharat Text-To-Speech API" + +@api.post("/") +async def batch_tts(request: TTSRequest, response: Response): + return engine.infer_from_request(request) + +if __name__ == "__main__": + # uvicorn server:api --host 0.0.0.0 --port 5050 --log-level info + uvicorn.run("server:api", host="0.0.0.0", port=5050, log_level="info") diff --git a/Indic-TTS/inference/socket_proxy/front_end/index.html b/Indic-TTS/inference/socket_proxy/front_end/index.html new file mode 100644 index 0000000000000000000000000000000000000000..cd4efff9087e6b6ef7de1c195661dac8c138541b --- /dev/null +++ b/Indic-TTS/inference/socket_proxy/front_end/index.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + +
+ + + +
+
+

+ AI4Bharat Text to Speech Beta +

+

+ TTS for Indian Languages! +

+
+
+ +
+
+ +
+ 15% +
+ +
+ +

Input

+ + + + + +

+ + + +

+ +
+ +
+ +

+ +

Output

+ + + +
+
+ + +
+ + + + + + + + + + + \ No newline at end of file diff --git a/Indic-TTS/inference/socket_proxy/front_end/main.js b/Indic-TTS/inference/socket_proxy/front_end/main.js new file mode 100644 index 0000000000000000000000000000000000000000..c62a72f4826433dbce7ff64beddd2990dc75cfe6 --- /dev/null +++ b/Indic-TTS/inference/socket_proxy/front_end/main.js @@ -0,0 +1,35 @@ +/* Audio recording and streaming demo by Miguel Grinberg. + + Adapted from https://webaudiodemos.appspot.com/AudioRecorder + Copyright 2013 Chris Wilson + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + + +// const SOCKET_URL = 'ws://0.0.0.0:5001/tts' +// const SOCKET_URL = 'ws://216.48.183.5:5001/tts' +const SOCKET_URL = 'wss://tts-api.ai4bharat.org/tts' +var socket_tts= io(SOCKET_URL, { + 'path': '/tts_socket.io', + 'transport': ['websocket'], + 'upgrade':false + }); +// var socket_tts= io('ws://127.0.0.1:5000/text',transport=['websocket'],upgrade=false,path='/tts_socket.io'); + +socket_tts.once("connect", (x) => { + console.log(x) + console.log(socket_tts.id); // "G5p5..." +}); + +window.AudioContext = window.AudioContext || window.webkitAudioContext; diff --git a/Indic-TTS/inference/socket_proxy/front_end/package.json b/Indic-TTS/inference/socket_proxy/front_end/package.json new file mode 100644 index 0000000000000000000000000000000000000000..a0a8ff02bfe20ee6c59b99a7768de7581c29da40 --- /dev/null +++ b/Indic-TTS/inference/socket_proxy/front_end/package.json @@ -0,0 +1,9 @@ +{ + "dependencies": { + "http-server": "^14.1.1", + "socket.io": "^4.5.2" + }, + "scripts": { + "start": "http-server ." + } +} diff --git a/Indic-TTS/inference/socket_proxy/front_end/styles.css b/Indic-TTS/inference/socket_proxy/front_end/styles.css new file mode 100644 index 0000000000000000000000000000000000000000..05cd8d63c08bae44440a101f9863d08cf4c6c1b8 --- /dev/null +++ b/Indic-TTS/inference/socket_proxy/front_end/styles.css @@ -0,0 +1,77 @@ +/* html { overflow: hidden; } */ +/* body { + font: 14pt Arial, sans-serif; + background: lightgrey; + display: flex; + flex-direction: column; + height: 100vh; + width: 100%; + margin: 0 0; +} */ +/* p { + margin: 2px; +} */ +#analyser { + display: inline-block; + background: #202020; + width: 95%; + height: 45%; + box-shadow: 0px 0px 10px blue; +} +#wavedisplay { + display: inline-block; + background: #ffffff; + overflow-y: scroll; + width: 95%; + height: 45%; + box-shadow: 0px 0px 10px blue; +} +/* #controls { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-around; + height: 20%; + width: 100%; +} */ +/* #record { height: 15vh; } */ +/* #record.recording { + background: red; + background: -webkit-radial-gradient(center, ellipse cover, #ff0000 0%,lightgrey 75%,lightgrey 100%,#7db9e8 100%); + background: -moz-radial-gradient(center, ellipse cover, #ff0000 0%,lightgrey 75%,lightgrey 100%,#7db9e8 100%); + background: radial-gradient(center, ellipse cover, #ff0000 0%,lightgrey 75%,lightgrey 100%,#7db9e8 100%); +} */ + +/* #record.recording { + background: red; + background: -webkit-radial-gradient(center, ellipse cover, #ff0000 0%,white 75%,white 100%,#7db9e8 100%); + background: -moz-radial-gradient(center, ellipse cover, #ff0000 0%,white 75%,white 100%,#7db9e8 100%); + background: radial-gradient(center, ellipse cover, #ff0000 0%,white 75%,white 100%,#7db9e8 100%); +} */ + +.orange-color{ + color: #dc4419; + font-weight: bold; +} + +.is-orange{ + background-color: #dc4419; + color: white !important; +} + +#save, #save img { height: 10vh; } +#save { opacity: 0.25;} +#save[download] { opacity: 1;} +#viz { + height: 80%; + width: 100%; + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; +} +@media (orientation: landscape) { + body { flex-direction: row;} + #controls { flex-direction: column; height: 100%; width: 10%;} + #viz { height: 100%; width: 90%;} +} diff --git a/Indic-TTS/inference/socket_proxy/requirements.txt b/Indic-TTS/inference/socket_proxy/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..1a2939622381e66e41d38a00e3fce76e6dd8bc0c --- /dev/null +++ b/Indic-TTS/inference/socket_proxy/requirements.txt @@ -0,0 +1,4 @@ +fastapi +gunicorn +uvicorn +TTS \ No newline at end of file diff --git a/Indic-TTS/inference/socket_proxy/te_endpoint.py b/Indic-TTS/inference/socket_proxy/te_endpoint.py new file mode 100644 index 0000000000000000000000000000000000000000..00ac7e4f71da72c7607ecc13419ef9acd30e1b15 --- /dev/null +++ b/Indic-TTS/inference/socket_proxy/te_endpoint.py @@ -0,0 +1,24 @@ +import io +import requests + +from flask import Flask +from flask_socketio import SocketIO,emit + + +app = Flask(__name__) +socketio = SocketIO(app, async_mode='eventlet', cors_allowed_origins="*", path='tts_socket.io', async_handlers=True, pingTimeout=60000) +api_url = "http://localhost:5050" +# api_url = "https://tts-api.ai4bharat.org/" + +@socketio.on('connect',namespace='/tts') +def connection(x): + emit('connect','Connected tts') + return 'connected' + +@socketio.on('infer', namespace='/tts') +def infer(request_body): + return requests.post(api_url, json=request_body).json() + + +if __name__ == '__main__': + socketio.run(app, host="0.0.0.0", port=5001, debug=True) diff --git a/Indic-TTS/inference/src/inference.py b/Indic-TTS/inference/src/inference.py new file mode 100644 index 0000000000000000000000000000000000000000..231181a9717a731abfcae4e10c0f2fa5f8bf4aad --- /dev/null +++ b/Indic-TTS/inference/src/inference.py @@ -0,0 +1,233 @@ +import io +import re +import base64 +import numpy as np +import traceback +from typing import Union + +from TTS.utils.synthesizer import Synthesizer +from aksharamukha.transliterate import process as aksharamukha_xlit +from scipy.io.wavfile import write as scipy_wav_write + +import nltk +import pysbd + +from .models.common import Language +from .models.request import TTSRequest +from .models.response import AudioFile, AudioConfig, TTSResponse, TTSFailureResponse +from .utils.text import TextNormalizer +from .utils.paragraph_handler import ParagraphHandler +from src.postprocessor import PostProcessor + +class TextToSpeechEngine: + def __init__( + self, + models: dict, + allow_transliteration: bool = True, + enable_denoiser: bool = True, + ): + self.models = models + # TODO: Ability to instantiate models by accepting standard paths or auto-downloading + + code_mixed_found = False + if allow_transliteration: + # Initialize Indic-Xlit models for the languages corresponding to TTS models + from ai4bharat.transliteration import XlitEngine + xlit_langs = set() + + for lang in list(models): + if lang == 'en': + continue # No need of any Indic-transliteration for English + + if '+' in lang: + # If it's a code-mixed model like Hinglish, we need Hindi Xlit for non-English words + # TODO: Make it mandatory irrespective of `allow_transliteration` boolean + lang = lang.split('+')[1] + code_mixed_found = True + xlit_langs.add(lang) + + self.xlit_engine = XlitEngine(xlit_langs, beam_width=6) + else: + self.xlit_engine = None + + self.text_normalizer = TextNormalizer() + self.paragraph_handler = ParagraphHandler() + self.sent_seg = pysbd.Segmenter(language="en", clean=True) + + self.orig_sr = 22050 # model.output_sample_rate + self.enable_denoiser = enable_denoiser + if enable_denoiser: + from src.postprocessor import Denoiser + self.target_sr = 16000 + self.denoiser = Denoiser(self.orig_sr, self.target_sr) + else: + self.target_sr = self.orig_sr + + self.post_processor = PostProcessor(self.target_sr) + + if code_mixed_found: + # Dictionary of English words + import enchant + from enchant.tokenize import get_tokenizer + + self.enchant_dicts = { + "en_US": enchant.Dict("en_US"), + "en_GB": enchant.Dict("en_GB"), + } + self.enchant_tokenizer = get_tokenizer("en") + + def concatenate_chunks(self, wav: np.ndarray, wav_chunk: np.ndarray): + # TODO: Move to utils + if type(wav_chunk) != np.ndarray: + wav_chunk = np.array(wav_chunk) + if wav is None: + return wav_chunk + return np.concatenate([wav, wav_chunk]) + + def infer_from_request( + self, + request: TTSRequest, + transliterate_roman_to_native: bool = True + ) -> TTSResponse: + + config = request.config + lang = config.language.sourceLanguage + gender = config.gender + + # If there's no separate English model, use the Hinglish one + if lang == "en" and lang not in self.models and "en+hi" in self.models: + lang = "en+hi" + + if lang not in self.models: + return TTSFailureResponse(status_text="Unsupported language!") + + if lang == "brx" and gender == "male": + return TTSFailureResponse(status_text="Sorry, `male` speaker not supported for this language!") + + output_list = [] + + for sentence in request.input: + raw_audio = self.infer_from_text(sentence.source, lang, gender, transliterate_roman_to_native=transliterate_roman_to_native) + # Convert PCM to WAV + byte_io = io.BytesIO() + scipy_wav_write(byte_io, self.target_sr, raw_audio) + # Encode WAV fileobject as base64 for transmission via JSON + encoded_bytes = base64.b64encode(byte_io.read()) + encoded_string = encoded_bytes.decode() + speech_response = AudioFile(audioContent=encoded_string) + + output_list.append(speech_response) + + audio_config = AudioConfig(language=Language(sourceLanguage=lang)) + return TTSResponse(audio=output_list, config=audio_config) + + def infer_from_text( + self, + input_text: str, + lang: str, + speaker_name: str, + transliterate_roman_to_native: bool = True + ) -> np.ndarray: + + # If there's no separate English model, use the Hinglish one + if lang == "en" and lang not in self.models and "en+hi" in self.models: + lang = "en+hi" + + input_text, primary_lang, secondary_lang = self.parse_langs_normalise_text(input_text, lang) + + wav = None + paragraphs = self.paragraph_handler.split_text(input_text) + + for paragraph in paragraphs: + paragraph = self.handle_transliteration(paragraph, primary_lang, transliterate_roman_to_native) + paras = [] + for sent in self.sent_seg.segment(paragraph): + if sent.strip() and not re.match(r'^[_\W]+$', sent.strip()): + paras.append(sent.strip()) + paragraph = " ".join(paras) + + # Run Inference. TODO: Support for batch inference + wav_chunk = self.models[lang].tts(paragraph, speaker_name=speaker_name, style_wav="") + + wav_chunk = self.postprocess_audio(wav_chunk, primary_lang, speaker_name) + # Concatenate current chunk with previous audio outputs + wav = self.concatenate_chunks(wav, wav_chunk) + return wav + + def parse_langs_normalise_text(self, input_text: str, lang: str) -> Union[str, str, str]: + # If there's no separate English model, use the Hinglish one if present + if lang == "en" and lang not in self.models and "en+hi" in self.models: + lang = "en+hi" + + if lang == "en+hi": # Hinglish (English+Hindi code-mixed) + primary_lang, secondary_lang = lang.split('+') + else: + primary_lang = lang + secondary_lang = None + + input_text = self.text_normalizer.normalize_text(input_text, primary_lang) + if secondary_lang: + # TODO: Write a proper `transliterate_native_words_using_eng_dictionary` + input_text = self.transliterate_native_words_using_spell_checker(input_text, secondary_lang) + + return input_text, primary_lang, secondary_lang + + def handle_transliteration(self, input_text: str, primary_lang: str, transliterate_roman_to_native: bool) -> str: + if transliterate_roman_to_native and primary_lang != 'en': + input_text = self.transliterate_sentence(input_text, primary_lang) + + # Manipuri was trained using the Central-govt's Bangla script + # So convert the words in native state-govt script to Eastern-Nagari + if primary_lang == "mni": + # TODO: Delete explicit-schwa + input_text = aksharamukha_xlit("MeeteiMayek", "Bengali", input_text) + return input_text + + def preprocess_text( + self, + input_text: str, + lang: str, + # speaker_name: str, + transliterate_roman_to_native: bool = True + ) -> np.ndarray: + + input_text, primary_lang, secondary_lang = self.parse_langs_normalise_text(input_text, lang) + input_text = self.handle_transliteration(input_text, primary_lang, transliterate_roman_to_native) + return input_text + + def postprocess_audio(self, wav_chunk, primary_lang, speaker_name): + if self.enable_denoiser: + wav_chunk = self.denoiser.denoise(wav_chunk) + wav_chunk = self.post_processor.process(wav_chunk, primary_lang, speaker_name) + return wav_chunk + + def transliterate_native_words_using_spell_checker(self, input_text, lang): + tokens = [result[0] for result in self.enchant_tokenizer(input_text)] + pos_tags = [result[1] for result in nltk.tag.pos_tag(tokens)] + + # Transliterate non-English Roman words to Indic + for word, pos_tag in zip(tokens, pos_tags): + if pos_tag == "NNP" or pos_tag == "NNPS": + # Enchant has many proper-nouns as well in its dictionary, don't know why. + # So if it's a proper-noun, always nativize + # FIXME: But NLTK's `averaged_perceptron_tagger` does not seem to be 100% accurate, it has false positives ๐Ÿคฆโ€โ™‚๏ธ + pass + elif self.enchant_dicts["en_US"].check(word) or self.enchant_dicts["en_GB"].check(word): + # TODO: Merge British and American dicts into 1 somehow + continue + + # Convert "Ram's" -> "Ram". TODO: Think what are the failure cases + word = word.split("'")[0] + + transliterated_word = self.transliterate_sentence(word, lang) + input_text = input_text.replace(word, transliterated_word, 1) + return input_text + + def transliterate_sentence(self, input_text, lang): + if not self.xlit_engine: + return input_text + + if lang == "raj": + lang = "hi" # Approximate + + return self.xlit_engine.translit_sentence(input_text, lang) diff --git a/Indic-TTS/inference/src/models/__init__.py b/Indic-TTS/inference/src/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Indic-TTS/inference/src/models/common.py b/Indic-TTS/inference/src/models/common.py new file mode 100644 index 0000000000000000000000000000000000000000..a27bc9f9ab0611b20b7403f9de11eba2c4892784 --- /dev/null +++ b/Indic-TTS/inference/src/models/common.py @@ -0,0 +1,11 @@ +from pydantic import BaseModel, validator + + +class Language(BaseModel): + sourceLanguage: str + + # @validator('sourceLanguage', pre=True) + # def blank_string_in_language(cls, value, field): + # if value == "": + # raise ValueError('sourceLanguage cannot be empty') + # return value diff --git a/Indic-TTS/inference/src/models/request.py b/Indic-TTS/inference/src/models/request.py new file mode 100644 index 0000000000000000000000000000000000000000..4670e3a854e08bfa44a778f256d87377258c024f --- /dev/null +++ b/Indic-TTS/inference/src/models/request.py @@ -0,0 +1,41 @@ +from typing import List + +from pydantic import BaseModel, validator + +from .common import Language + +SUPPORTED_GENDERS = {'male', 'female'} + + +class Sentence(BaseModel): + source: str + + # @validator('source', pre=True) + # def blank_string_in_source(cls, value, field): + # if value == "": + # raise ValueError('source cannot be empty') + # return value + + +class TTSConfig(BaseModel): + language: Language + gender: str + + # @validator('gender', pre=True) + # def blank_string_in_gender(cls, value, field): + # if value == "": + # raise ValueError('gender cannot be empty') + # if value not in SUPPORTED_GENDERS: + # raise ValueError('Unsupported gender value') + # return value + + +class TTSRequest(BaseModel): + input: List[Sentence] + config: TTSConfig + + # @validator('input', pre=True) + # def input_cannot_be_empty(cls, value, field): + # if len(value) < 1: + # raise ValueError('input cannot be empty') + # return value diff --git a/Indic-TTS/inference/src/models/response.py b/Indic-TTS/inference/src/models/response.py new file mode 100644 index 0000000000000000000000000000000000000000..c81e7f82c51b4dfcbc0a4c4d7d0b7dff5edfc3c0 --- /dev/null +++ b/Indic-TTS/inference/src/models/response.py @@ -0,0 +1,26 @@ +from typing import List + +from pydantic import BaseModel + +from .common import Language + + +class AudioFile(BaseModel): + audioContent: str + + +class AudioConfig(BaseModel): + language: Language + audioFormat: str = 'wav' + encoding: str = 'base64' + samplingRate: int = 22050 + + +class TTSResponse(BaseModel): + audio: List[AudioFile] + config: AudioConfig + + +class TTSFailureResponse(BaseModel): + status: str = 'ERROR' + status_text: str diff --git a/Indic-TTS/inference/src/postprocessor/__init__.py b/Indic-TTS/inference/src/postprocessor/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6c83e2780a978ed5de44183a3aa91dad4ba07740 --- /dev/null +++ b/Indic-TTS/inference/src/postprocessor/__init__.py @@ -0,0 +1,3 @@ +from .postprocessor import PostProcessor +from .denoiser import Denoiser +from .vad import VoiceActivityDetection diff --git a/Indic-TTS/inference/src/postprocessor/denoiser.py b/Indic-TTS/inference/src/postprocessor/denoiser.py new file mode 100644 index 0000000000000000000000000000000000000000..e4bcc4de4fbb5f32d76ab53bec88dbce5a340cdb --- /dev/null +++ b/Indic-TTS/inference/src/postprocessor/denoiser.py @@ -0,0 +1,24 @@ +import torch +import librosa +import numpy as np + +class Denoiser: + + def __init__(self, orig_sr:int, target_sr:int): + self.orig_sr = orig_sr + self.target_sr = target_sr + self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') + + from asteroid.models import BaseModel as AsteroidBaseModel + self.model = AsteroidBaseModel.from_pretrained("JorisCos/DCCRNet_Libri1Mix_enhsingle_16k").to(self.device) + + def denoise(self, wav): + if type(wav) != np.ndarray: + wav = np.array(wav) + + if len(wav.shape) > 1: + wav = np.mean(wav, axis=1) + wav = librosa.resample(wav, orig_sr=self.orig_sr, target_sr=self.target_sr) + wav = torch.Tensor(wav.reshape(1, 1, wav.shape[0])).float().to(self.device) + wav = self.model.separate(wav)[0][0] #(batch, channels, time) -> (time) + return wav.cpu().detach().numpy() diff --git a/Indic-TTS/inference/src/postprocessor/postprocessor.py b/Indic-TTS/inference/src/postprocessor/postprocessor.py new file mode 100644 index 0000000000000000000000000000000000000000..b3483711da73b327a455dff9a7236069b3843035 --- /dev/null +++ b/Indic-TTS/inference/src/postprocessor/postprocessor.py @@ -0,0 +1,46 @@ +import os +import ffmpeg +import librosa +import numpy as np +import soundfile as sf +import tempfile + +from .vad import VoiceActivityDetection + + +class PostProcessor: + + def __init__(self, target_sr:int): + self.target_sr = target_sr + self.vad = VoiceActivityDetection() + + def set_tempo(self, wav:np.ndarray, atempo:str ='1'): + with tempfile.TemporaryDirectory() as tmpdirname: + inpath = os.path.join(tmpdirname, 'input.wav') + outpath = inpath.replace('input.wav', 'output.wav') + sf.write(inpath, wav, self.target_sr) + in_stream = ffmpeg.input(inpath) + audio_stream = ffmpeg.filter_(in_stream, 'atempo', atempo) + audio_stream = audio_stream.output(outpath) + ffmpeg.run(audio_stream, overwrite_output=True) + wav, _ = librosa.load(outpath, sr=self.target_sr) + return wav + + def trim_silence(self, wav:np.ndarray): + return self.vad.process(wav, sc_threshold=40) + + def process(self, wav, lang:str, gender:str): + if type(wav) != np.ndarray: + wav = np.array(wav) + + if (lang == "te") and (gender=='female'): # Telugu female speaker slow down + wav = self.set_tempo(wav, '0.85') + wav = self.trim_silence(wav) + elif (lang == 'mr') and (gender=='female'): # Marathi female speaker speed up + wav = self.trim_silence(wav) + wav = self.set_tempo(wav, '1.15') + elif (lang == 'gu'): # Gujarati speaker speed up + # wav = trim_silence(wav) + wav = self.set_tempo(wav, '1.20') + + return wav diff --git a/Indic-TTS/inference/src/postprocessor/vad.py b/Indic-TTS/inference/src/postprocessor/vad.py new file mode 100644 index 0000000000000000000000000000000000000000..5efca5a0de088baf9c39fae899d7b4d20e66a32b --- /dev/null +++ b/Indic-TTS/inference/src/postprocessor/vad.py @@ -0,0 +1,87 @@ +#! /usr/bin/env python +# encoding: utf-8 +''' +MIT License + +Copyright (c) 2018 Mauricio + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Adapted from https://github.com/mauriciovander/silence-removal/blob/master/vad.py +''' +import numpy + +class VoiceActivityDetection: + + def __init__(self): + self.__step = 160 + self.__buffer_size = 160 + self.__buffer = numpy.array([],dtype=numpy.int16) + self.__out_buffer = numpy.array([],dtype=numpy.int16) + self.__n = 0 + self.__VADthd = 0. + self.__VADn = 0. + self.__silence_counter = 0 + + # Voice Activity Detection + # Adaptive threshold + def vad(self, _frame, sc_threshold=20): + frame = numpy.array(_frame) ** 2. + result = True + threshold = 0.2 + thd = numpy.min(frame) + numpy.ptp(frame) * threshold + self.__VADthd = (self.__VADn * self.__VADthd + thd) / float(self.__VADn + 1.) + self.__VADn += 1. + + if numpy.mean(frame) <= self.__VADthd: + self.__silence_counter += 1 + else: + self.__silence_counter = 0 + if self.__silence_counter > sc_threshold: + result = False + return result + + # Push new audio samples into the buffer. + def add_samples(self, data): + self.__buffer = numpy.append(self.__buffer, data) + result = len(self.__buffer) >= self.__buffer_size + # print('__buffer size %i'%self.__buffer.size) + return result + + # Pull a portion of the buffer to process + # (pulled samples are deleted after being + # processed + def get_frame(self): + window = self.__buffer[:self.__buffer_size] + self.__buffer = self.__buffer[self.__step:] + # print('__buffer size %i'%self.__buffer.size) + return window + + # Adds new audio samples to the internal + # buffer and process them + def process(self, data, sc_threshold): + self.__buffer = numpy.array([],dtype=numpy.int16) + self.__out_buffer = numpy.array([],dtype=numpy.int16) + if self.add_samples(data): + while len(self.__buffer) >= self.__buffer_size: + # Framing + window = self.get_frame() + if self.vad(window, sc_threshold): # speech frame + self.__out_buffer = numpy.append(self.__out_buffer, window) + return self.__out_buffer diff --git a/Indic-TTS/inference/src/utils/alphabet2phone.json b/Indic-TTS/inference/src/utils/alphabet2phone.json new file mode 100644 index 0000000000000000000000000000000000000000..57a9fa2c615dac481fd0843a3c634ff723ce97d6 --- /dev/null +++ b/Indic-TTS/inference/src/utils/alphabet2phone.json @@ -0,0 +1 @@ +{"a": "aey", "b": "bee", "c": "see", "d": "dee", "e": "eee", "f": "eff", "g": "jee", "h": "ech", "i": "aai", "j": "jay", "k": "kay", "l": "ell", "m": "em", "n": "en", "o": "oh", "p": "pee", "q": "kyuu", "r": "aar", "s": "es", "t": "tea", "u": "you", "v": "vee", "w": "doubleu", "x": "ex", "y": "why", "z": "zedd"} \ No newline at end of file diff --git a/Indic-TTS/inference/src/utils/paragraph_handler.py b/Indic-TTS/inference/src/utils/paragraph_handler.py new file mode 100644 index 0000000000000000000000000000000000000000..e9a765e448865a11e48803965b867b2909355d5e --- /dev/null +++ b/Indic-TTS/inference/src/utils/paragraph_handler.py @@ -0,0 +1,43 @@ +#! /usr/bin/env python +# encoding: utf-8 + +import re + +non_chars_regex = re.compile(r'[^\w]') + +class ParagraphHandler(): + + def __init__(self, max_text_len=512): + self.L = max_text_len + + def split_text(self, text:str, delimiter='.'): + '''Splits text at delimiter into paragraphs of max. length self.L''' + delimiter = ' ' if delimiter not in text else delimiter + if delimiter not in text: + return [text] + + paragraphs = [] + l_pos, r_pos = 0, 0 + while r_pos < len(text): + r_pos = l_pos + self.L + if r_pos >= len(text): # append last paragraph. + paragraphs.append(text[l_pos:len(text)]) + break + while delimiter is not None and text[r_pos] != delimiter and r_pos > l_pos and r_pos > 0: # find nearest delimiter < r_pos to split paragraph at. + r_pos -= 1 + extracted_paragraph = text[l_pos:r_pos+1] + extracted_paragraph_without_special_chars = non_chars_regex.sub('', extracted_paragraph) + if extracted_paragraph_without_special_chars: + paragraphs.append(extracted_paragraph) + l_pos = r_pos + 1 # handle next paragraph + return paragraphs + + +if __name__ == '__main__': + text = "The following are quotes from A.P.J. Abdul Kalam. To succeed in your mission, you must have single-minded devotion to your goal. Look at the sky. We are not alone. The whole universe is friendly to us and conspires only to give the best to those who dream and work. The youth need to be enabled to become job generators from job seekers. If four things are followed - having a great aim, acquiring knowledge, hard work, and perseverance - then anything can be achieved. Where there is righteousness in the heart, there is beauty in the character. When there is beauty in the character, there is harmony in the home. When there is harmony in the home, there is order in the nation. When there is order in the nation, there is peace in the world. Great teachers emanate out of knowledge, passion and compassion. Let me define a leader. He must have vision and passion and not be afraid of any problem. Instead, he should know how to defeat it. Most importantly, he must work with integrity." + print('LENGTH: ', len(text)) # 988 + + paragraph_handler = ParagraphHandler() + paragraphs = paragraph_handler.split_text(text) + for p in paragraphs: + print(len(p), p) diff --git a/Indic-TTS/inference/src/utils/symbols.json b/Indic-TTS/inference/src/utils/symbols.json new file mode 100644 index 0000000000000000000000000000000000000000..b83e00af2ca061db05ab0d40c9fd1c3f2fb408fe --- /dev/null +++ b/Indic-TTS/inference/src/utils/symbols.json @@ -0,0 +1,155 @@ +{ + "โ‚น": { + "as": "Rupees", + "bn": "เฆฐเงเฆชเฆฟ", + "brx": "Rupees", + "en": "Rupees", + "gu": "เชฐเซ‚เชชเชฟเชฏเชพ", + "hi": "เคฐเฅเคชเคฏเฅ‡", + "kn": "เฒฐเณ‚เฒชเฒพเฒฏเฒฟ", + "ml": "เดฐเต‚เดช", + "mni": "Rupees", + "mr": "เคฐเฅเคชเคฏเฅ‡", + "or": "เฌŸเฌ™เญเฌ•เฅค", + "pa": "เจฐเฉเจชเจ", + "raj": "เคฐเฅ€เคชเฅเคฏเคพ", + "ta": "เฎฐเฏ‚เฎชเฎพเฎฏเฏ", + "te": "เฐฐเฑ‚เฐชเฐพเฐฏเฐฒเฑ" + }, + "@": { + "as": "เฆ†เฆ เฆŸ", + "bn": "เฆ†เฆŸ", + "brx": "at", + "en": "at", + "gu": "เช†เชคเซโ€Œ", + "hi": "เค†เคŸ", + "kn": "เฒ…เฒŸเณโ€Œ", + "ml": "เด†เดฑเตเดฑเตโ€Œ", + "mni": "๊ฏ‘๊ฏŠ", + "mr": "เค†เคŸ", + "or": "เฌ†เฌŸ", + "pa": "เจ†เจค", + "raj": "เค†เคŸ", + "ta": "เฎ†เฎŸเฏโ€Œ", + "te": "เฐ† เฐŸ" + }, + ".": { + "as": "เฆกเง‹เฆŸ", + "bn": "เฆกเง‹เฆŸ", + "brx": "dot", + "en": "dot", + "gu": "เชกเซ‹เชŸ", + "hi": "เคกเฅ‹เคŸ", + "kn": "dot", + "ml": "เดกเต‹เดŸเตเดŸเตโ€Œ", + "mni": "๊ฏ—๊ฏฃ๊ฏ‡", + "mr": "เคกเฅ‰เคŸ", + "or": "เฌกเญ‹เฌŸเญโ€Œ", + "pa": "เจกเฉ‹เจŸ", + "raj": "เคกเฅ‰เคŸ", + "ta": "เฎŸเฎพเฎŸเฏโ€Œ", + "te": "เฐกเฐพเฐŸเฑโ€Œ" + }, + "/": { + "as": "เฆถเงเฆฒเฆพเฆš", + "bn": "เฆธเงเฆฒเฆพเฆถ", + "brx": "เคธเฅเคฒเคพเคถ", + "en": "slash", + "gu": "เชธเซเชฒเซ‡เชถ", + "hi": "เคธเคฒเคพเคถ", + "kn": "เฒธเณเฒฒเฒพเฒถเณโ€Œ", + "ml": "เดธเตเดฒเดพเดทเตโ€Œ", + "mni": "๊ฏ๊ฏญ๊ฏ‚๊ฏฆ๊ฏ", + "mr": "เคธเคฒเคพเคถ", + "or": "เฌธเญเฌฒเฌพเฌถเญโ€Œ", + "pa": "slash", + "raj": "เคธเฅเคฒเคพเคถ", + "ta": "เฎธเฏเฎฒเฎพเฎทเฏโ€Œ", + "te": "เฐธเฑเฐฒเฐพเฐทเฑโ€Œ" + }, + ":": { + "as": "เฆ•เง‹เฆฒเฆจ", + "bn": "เฆ•เง‹เฆฒเฆจ", + "brx": "เค•เฅ‹เคฒเคจ", + "en": "colon", + "gu": "เช•เซ‹เชฒเชจ", + "hi": "เค•เฅ‹เคฒเคจ", + "kn": "เฒ•เณ‹เฒฒเฒจเณโ€Œ", + "ml": "เด•เต‹เดณเตป", + "mni": "๊ฏ€๊ฏฃ๊ฏ‚๊ฏฆ๊ฏŸ", + "mr": "เค•เฅ‹เคฒเคจ", + "or": "เฌ•เญ‹เฌฒเญ‹เฌจ", + "pa": "เจ•เฉŒเจฒเฉ‹เจจ", + "raj": "เค•เฅ‹เคฒเคจ", + "ta": "เฎ•เฏ‹เฎฒเฎฉเฏโ€Œ", + "te": "เฐ•เฑ‹เฐฒเฐจเฑโ€Œ" + }, + "+": { + "as": "เฆชเงเฆฒเฆพเฆš", + "bn": "เฆชเงเฆฒเฆพเฆธ", + "brx": "เคชเฅเคฒเคธ", + "en": "plus", + "gu": "เชชเซเชฒเชธ", + "hi": "เคชเฅเคฒเคธ", + "kn": "เฒชเณเฒฒเฒธเณโ€Œ", + "ml": "เดชเตเดฒเดธเตโ€Œ", + "mni": "๊ฏ„๊ฏญ๊ฏ‚๊ฏ", + "mr": "เคชเฅเคฒเฅ…เคธ", + "or": "เฌชเญเฌฒเฌธเญโ€Œ", + "pa": "เจชเจฒเฉฑเจธ", + "raj": "เคชเฅเคฒเคธ", + "ta": "เฎชเฎฟเฎณเฎธเฏโ€Œ", + "te": "เฐชเฑเฐฒเฐธเฑโ€Œ" + }, + "-": { + "as": "เฆกเฆพเฆ›", + "bn": "เฆกเฆพเฆ›", + "brx": "เคฆเคพเคถ", + "en": "dash", + "gu": "เชกเชพเชถ", + "hi": "เคฆเคพเคถ", + "kn": "เฒฆเฒพเฒถเณ", + "ml": "เดฆเดพเดถ", + "mni": "๊ฏ—๊ฏฅ๊ฏ", + "mr": "เคฆเคพเคถ", + "or": "เฌฆเฌพเฌถ", + "pa": "เจฎเจพเจˆเจจเจ‰เจธ", + "raj": "เคฆเคพเคถ", + "ta": "เฎŸเฎพเฎทเฏโ€Œ", + "te": "เฐกเฐพเฐทเฑโ€Œ" + }, + "www": { + "as": "เฆกเฆพเฆฌเงเฆฒเฆฟเฆ…เฆกเฆพเฆฌเงเฆฒเฆฟเฆ“เฆกเฆพเฆฌเงเฆฒเฆฟเฆ“", + "bn": "เฆกเฆพเฆฌเงเฆฒเฆฟเฆ‰เฆกเฆพเฆฌเงเฆฒเฆฟเฆ‰เฆกเฆพเฆฌเงเฆฒเฆฟเฆ‰", + "brx": "เคกเคฌเคฒเคฏเฅ เคกเคฌเคฒเคฏเฅ เคกเคฌเคฒเคฏเฅ", + "en": "doubleyou doubleyou doubleyou", + "gu": "เชกเชฌเชฒเซเชฏเซเช‚ เชกเชฌเชฒเซเชฏเซเช‚ เชกเชฌเชฒเซเชฏเซเช‚", + "hi": "เคกเคฌเคฒเฅเคฏเฅ‚ เคกเคฌเคฒเฅเคฏเฅ‚ เคกเคฌเคฒเฅเคฏเฅ‚", + "kn": "เฒกเณเฒฌเณเฒฒเณเฒฏเณเฒกเณเฒฌเณเฒฒเณเฒฏเณเฒกเณเฒฌเณเฒฒเณเฒฏเณ ", + "ml": "เดกเดฌเตเดฒเดฟเดฏเต‚ เดกเดฌเตเดฒเดฟเดฏเต‚ เดกเดฌเตเดฒเดฟเดฏเต‚", + "mni": "๊ฏ—๊ฏ•๊ฏœ๊ฏŒ๊ฏจ๊ฏ—๊ฏ•๊ฏœ๊ฏŒ๊ฏจ๊ฏ—๊ฏ•๊ฏœ๊ฏŒ๊ฏจ", + "mr": "เคกเคฌเฅเคฒเฅเคฏเฅ‚ เคกเคฌเฅเคฒเฅเคฏเฅ‚ เคกเคฌเฅเคฒเฅเคฏเฅ‚", + "or": "เฌกเฌฌเญเฌฒเฌฟเญŸเญเฌกเฌฌเญเฌฒเฌฟเญŸเญเฌกเฌฌเญเฌฒเฌฟเญŸเญ", + "pa": "เจกเจฌเจฒเจฟเจŠ เจกเจฌเจฒเจฟเจŠ เจกเจฌเจฒเจฟเจŠ", + "raj": "เคกเคฌเฅเคฒเฅเคฏเฅ‚ เคกเคฌเฅเคฒเฅเคฏเฅ‚ เคกเคฌเฅเคฒเฅเคฏเฅ‚", + "ta": "เฎŸเฎชเฎฟเฎณเฎฟเฎฏเฏ‚ เฎŸเฎชเฎฟเฎณเฎฟเฎฏเฏ‚ เฎŸเฎชเฎฟเฎณเฎฟเฎฏเฏ‚", + "te": "เฐกเฐฌเฑเฐฒเฑเฐฏเฑ‚เฐกเฐฌเฑเฐฒเฑเฐฏเฑ‚เฐกเฐฌเฑเฐฒเฑเฐฏเฑ‚" + }, + "%": { + "as": "เฆถเฆคเฆพเฆ‚เฆถ", + "bn": "เฆถเฆคเฆพเฆ‚เฆถ", + "brx": "percent", + "en": "percent", + "gu": "เชŸเช•เชพ", + "hi": "เคชเฅเคฐเคคเคฟเคถเคค", + "kn": "เฒถเณ†เณ•เฒ•เฒกเฒพ", + "ml": "เดถเดคเดฎเดพเดจเด‚", + "mni": "๊ฏ†๊ฏฅ๊ฏ—๊ฏฅ ๊ฏ†๊ฏฅ๊ฏ—๊ฏฅ ๊ฏด", + "mr": "เคŸเค•เฅเค•เฅ‡", + "or": "เฌถเฌคเฌ•เฌกเฌพ", + "pa": "เจชเฉเจฐเจคเฉ€เจธเจผเจค", + "raj": "percent", + "ta": "เฎšเฎคเฎตเฏ€เฎคเฎฎเฏ", + "te": "เฐถเฐพเฐคเฐ‚" + } +} \ No newline at end of file diff --git a/Indic-TTS/inference/src/utils/text.py b/Indic-TTS/inference/src/utils/text.py new file mode 100644 index 0000000000000000000000000000000000000000..fe278d94e25dd9b697c7826305cd26a06de6ca7d --- /dev/null +++ b/Indic-TTS/inference/src/utils/text.py @@ -0,0 +1,212 @@ +import os +PWD = os.path.dirname(__file__) +import re +import regex +import json +import traceback + +from nemo_text_processing.text_normalization.normalize import Normalizer +from indic_numtowords import num2words, supported_langs +from .translator import GoogleTranslator + +indic_acronym_matcher = regex.compile(r"([\p{L}\p{M}]+\.\s*){2,}") + +# short_form_regex = re.compile(r'\b[A-Z\.]{2,}s?\b') +# def get_shortforms_from_string(text): +# return short_form_regex.findall(text) + +short_form_regex = re.compile(r"\b([A-Z][\.\s]+)+([A-Z])?\b") +eng_consonants_regex = re.compile(r"\b[BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz]+\b") +def get_shortforms_from_string(text): + dotted_shortforms = [m.group() for m in re.finditer(short_form_regex, text)] + non_dotted_shortforms = [m.group() for m in re.finditer(eng_consonants_regex, text)] + return dotted_shortforms + non_dotted_shortforms + +decimal_str_regex = re.compile("\d{1,3}(?:(?:,\d{2,3}){1,3}|(?:\d{1,7}))?(?:\.\d+)") +def get_all_decimals_from_string(text): + return decimal_str_regex.findall(text) + +num_str_regex = re.compile("\d{1,3}(?:(?:,\d{2,3}){1,3}|(?:\d{1,7}))?(?:\.\d+)?") +def get_all_numbers_from_string(text): + return num_str_regex.findall(text) + +multiple_stops_regex = r'\.\.+' +def replace_multiple_stops(text): + return re.sub(multiple_stops_regex, '.', text) + +date_generic_match_regex = re.compile("(?:[^0-9]\d*[./-]\d*[./-]\d*)") +date_str_regex = re.compile("(?:\d{1,2}[./-]\d{1,2}[./-]\d{2,4})|(?:\d{2,4}[./-]\d{1,2}[./-]\d{1,2})") # match like dd/mm/yyyy or dd-mm-yy or yyyy.mm.dd or yy/mm/dd +def get_all_dates_from_string(text): + candidates = date_generic_match_regex.findall(text) + candidates = [c.replace(' ', '') for c in candidates] + candidates = [c for c in candidates if len(c) <= 10] # Prune invalid dates + candidates = ' '.join(candidates) + return date_str_regex.findall(candidates) + +def get_decimal_substitution(decimal): + decimal_parts = decimal.split('.') + l_part = decimal_parts[0] + r_part = "" + for part in decimal_parts[1:]: + r_part += ' '.join(list(part)) # space between every digit after decimal point + decimal_sub = l_part + " point " + r_part + decimal_sub = decimal_sub.strip() + return decimal_sub + +email_regex = r'[\w.+-]+@[\w-]+\.[\w.-]+' +url_regex = r'((?:\w+://)?\w+\.\w+\.\w+/?[\w\.\?=#]*)|(\w*.com/?[\w\.\?=#]*)' +currency_regex = r"\โ‚น\ ?[+-]?[0-9]{1,3}(?:,?[0-9])*(?:\.[0-9]{1,2})?" +phone_regex = r'\+?\d[ \d-]{6,12}\d' + + + +class TextNormalizer: + def __init__(self): + self.translator = GoogleTranslator() + self.normalizer = Normalizer(input_case='cased', lang='en') + self.symbols2lang2word = json.load(open(os.path.join(PWD, "symbols.json"), encoding="utf-8")) + self.alphabet2phone = json.load(open(os.path.join(PWD, "alphabet2phone.json"), encoding="utf-8")) + + def normalize_text(self, text, lang): + text = text.replace("เฅค", ".").replace("|", ".").replace("๊ฏซ", ".").strip() + text = self.expand_shortforms(text, lang) + text = self.normalize_decimals(text, lang) + text = self.replace_punctutations(text, lang) + text = self.convert_dates_to_words(text, lang) + text = self.convert_symbols_to_words(text, lang) + text = self.convert_numbers_to_words(text, lang) + return text + + def normalize_decimals(self, text, lang): + decimal_strs = get_all_decimals_from_string(text) + if not decimal_strs: + return text + decimals = [str(decimal_str.replace(',', '')) for decimal_str in decimal_strs] + decimal_substitutions = [get_decimal_substitution(decimal) for decimal in decimals] + for decimal_str, decimal_sub in zip(decimal_strs, decimal_substitutions): + text = text.replace(decimal_str, decimal_sub) + return text + + def replace_punctutations(self, text, lang): + text = replace_multiple_stops(text) + if lang not in ['brx', 'or']: + text = text.replace('เฅค', '.') + if text[-1] not in ['.', '!', '?', ',', ':', ';']: + text = text + ' .' + else: + text = text.replace('.', 'เฅค') + text = text.replace('|', '.') + for bracket in ['(', ')', '{', '}', '[', ']']: + text = text.replace(bracket, ',') + # text = text.replace(':', ',').replace(';',',') + text = text.replace(';',',') + return text + + def convert_numbers_to_words(self, text, lang): + num_strs = get_all_numbers_from_string(text) + if not num_strs: + return text + + # TODO: If it is a large integer without commas (say >5 digits), spell it out numeral by numeral + # NOTE: partially handled by phones + numbers = [int(num_str.replace(',', '')) for num_str in num_strs] + + if lang in supported_langs: + # print(lang, numbers) + num_words = [num2words(num, lang=lang) for num in numbers] + else: # Fallback, converting to Indian-English, followed by NMT + try: + num_words = [num2words(num, lang="en") for num in numbers] + translated_num_words = [self.translator(text=num_word, from_lang="en", to_lang=lang) for num_word in num_words] + # TODO: Cache the results? + num_words = translated_num_words + except: + traceback.print_exc() + + for num_str, num_word in zip(num_strs, num_words): + text = text.replace(num_str, ' '+num_word+' ', 1) + return text.replace(" ", ' ') + + def convert_dates_to_words(self, text, lang): + date_strs = get_all_dates_from_string(text) + if not date_strs: + return text + for date_str in date_strs: + normalized_str = self.normalizer.normalize(date_str, verbose=False, punct_post_process=True) + if lang in ['brx', 'en']: # no translate + translated_str = normalized_str + else: + translated_str = self.translator(text=normalized_str, from_lang="en", to_lang=lang) + text = text.replace(date_str, translated_str) + return text + + def expand_phones(self, item): + return ' '.join(list(item)) + + def find_valid(self, regex_str, text): + items = re.findall(regex_str, text) + return_items = [] + for item in items: + if isinstance(item, tuple): + for subitem in item: + if len(subitem) > 0: + return_items.append(subitem) + break # choose first valid sub item + elif len(item) > 0: + return_items.append(item) + return return_items + + def convert_symbols_to_words(self, text, lang): + symbols = self.symbols2lang2word.keys() + emails = self.find_valid(email_regex, text) + # urls = re.findall(r'(?:\w+://)?\w+\.\w+\.\w+/?[\w\.\?=#]*', text) + urls = self.find_valid(url_regex, text) + # print('URLS', urls) + for item in emails + urls: + item_norm = item + for symbol in symbols: + item_norm = item_norm.replace(symbol, f' {self.symbols2lang2word[symbol][lang]} ') + text = text.replace(item, item_norm) + + currencies = self.find_valid(currency_regex, text) + for item in currencies: + item_norm = item.replace('โ‚น','') + 'โ‚น' # Pronounce after numerals + for symbol in symbols: + item_norm = item_norm.replace(symbol, f' {self.symbols2lang2word[symbol][lang]} ') + text = text.replace(item, item_norm) + + phones = self.find_valid(phone_regex, text) + for item in phones: + item_norm = item.replace('-', ' ') + for symbol in symbols: + item_norm = item_norm.replace(symbol, f' {self.symbols2lang2word[symbol][lang]} ') + item_norm = self.expand_phones(item_norm) + text = text.replace(item, item_norm) + + # percentage + text = text.replace('%', self.symbols2lang2word['%'][lang]) + + return text + + def convert_char2phone(self, char): + return self.alphabet2phone[char.lower()] if char.lower() in self.alphabet2phone else '' + + def expand_shortforms(self, text, lang): + if lang!='en': + # Remove dots, as it speaks out like each letter is separate sentence + # Example: เค…เคˆ. เค…เคˆ. เคŸเฅ€. -> เค…เคˆ เค…เคˆ เคŸเฅ€ + for match in regex.finditer(indic_acronym_matcher, text): + match = match.group() + match_without_dot = match.replace('.', ' ') + text = text.replace(match, match_without_dot) + return text + + shortforms = get_shortforms_from_string(text) + for shortform in shortforms: + shortform = shortform.strip() + if shortform == 'I' or shortform == "A": + # Skip if valid English words + continue + expanded = ' '.join([self.convert_char2phone(char) for char in shortform]) + text = text.replace(shortform, expanded, 1) + return text diff --git a/Indic-TTS/inference/src/utils/translator.py b/Indic-TTS/inference/src/utils/translator.py new file mode 100644 index 0000000000000000000000000000000000000000..7e156fb15dd11bbc87837e11377a6ad6b4be0abf --- /dev/null +++ b/Indic-TTS/inference/src/utils/translator.py @@ -0,0 +1,27 @@ +class GoogleTranslator: + def __init__(self): + from translators.server import google, _google + self._translate = google + + google("Testing...") + self.supported_languages = set(_google.language_map['en']) + self.custom_lang_map = { + "mni": "mni-Mtei", + "raj": "hi", + } + + def translate(self, text, from_lang, to_lang): + if from_lang in self.custom_lang_map: + from_lang = self.custom_lang_map[from_lang] + elif from_lang not in self.supported_languages: + return text + + if to_lang in self.custom_lang_map: + to_lang = self.custom_lang_map[to_lang] + elif to_lang not in self.supported_languages: + return text + + return self._translate(text, from_language=from_lang, to_language=to_lang) + + def __call__(self, **kwargs): + return self.translate(**kwargs) diff --git a/Indic-TTS/inference/triton_server/Dockerfile b/Indic-TTS/inference/triton_server/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..ad658dbee6a0fb6ab50c2281e577aba51c0f763e --- /dev/null +++ b/Indic-TTS/inference/triton_server/Dockerfile @@ -0,0 +1,32 @@ +ARG BASE_IMAGE=nvcr.io/nvidia/tritonserver:22.12-py3 +FROM ${BASE_IMAGE} + +# Ensure apt-get won't prompt for selecting options +ENV DEBIAN_FRONTEND=noninteractive +ENV PYTHONIOENCODING=utf8 + +RUN apt-get update && apt-get install --fix-missing -y libsndfile1-dev ffmpeg enchant + +WORKDIR /home/app + +COPY requirements-server.txt . +RUN pip install --use-deprecated=legacy-resolver -r requirements-server.txt +COPY requirements-ml.txt . +RUN pip install --use-deprecated=legacy-resolver -r requirements-ml.txt +COPY requirements-utils.txt . +RUN pip install --use-deprecated=legacy-resolver -r requirements-utils.txt + +# Download depedencies +COPY examples ./examples +RUN python3 examples/xlit.py +RUN python3 examples/pos_tag.py + +COPY src ./src + +WORKDIR /home +COPY triton_server/triton_repo ./triton_repo + +CMD ["tritonserver", "--model-repository=/home/triton_repo", "--log-verbose=2", "--strict-model-config=false", "--http-port=8000", "--grpc-port=8001", "--metrics-port=8002"] +EXPOSE 8000 +EXPOSE 8001 +EXPOSE 8002 diff --git a/Indic-TTS/inference/triton_server/README.md b/Indic-TTS/inference/triton_server/README.md new file mode 100644 index 0000000000000000000000000000000000000000..05cbe5a799dc53357c73d5e02a1029d5c10380de --- /dev/null +++ b/Indic-TTS/inference/triton_server/README.md @@ -0,0 +1,20 @@ +# Triton server + +## Building the image + +``` +cd inference/ +docker build -f triton_server/Dockerfile -t tts_triton . +``` + +## Running the container + +Then start the server by: +``` +docker run --shm-size=256m --gpus=1 --rm -v ${PWD}/checkpoints/:/models/checkpoints -p 8000:8000 -t tts_triton +``` + +## Sample client + +- Do `pip install tritonclient gevent` first. +- Then `python3 triton_server/client.py`, which will generate `audio.wav` diff --git a/Indic-TTS/inference/triton_server/azure_ml/README.md b/Indic-TTS/inference/triton_server/azure_ml/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ecd239e893f429f2bf0b8f56a6b97a28458637a4 --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/README.md @@ -0,0 +1,76 @@ +# Serving using Azure Machine Learning + +## Pre-requisites + +``` +cd inference/triton_server +``` + +### Setting AML environment + +Set the environment for AML: +``` +export RESOURCE_GROUP=Dhruva-prod +export WORKSPACE_NAME=dhruva--central-india +export DOCKER_REGISTRY=dhruvaprod +``` + +Also remember to edit the `yml` files accordingly. + +### Pushing the docker image to Container Registry + +``` +az acr login --name $DOCKER_REGISTRY +docker tag tts_triton $DOCKER_REGISTRY.azurecr.io/tts/triton-tts-coqui:latest +docker push $DOCKER_REGISTRY.azurecr.io/tts/triton-tts-coqui:latest +``` + +### Creating the execution environment + +``` +az ml environment create -f azure_ml/environment.yml -g $RESOURCE_GROUP -w $WORKSPACE_NAME +``` + +## Deployment + +Since we have different models for different languages, to reduce the no. of deployments, we recommend that some of the models be grouped and deployed together, based on how much we can fit into the GPU RAM we're deploying on. + +In our case, we group it as follows: +- [North-Indian languages](https://en.wikipedia.org/wiki/Indo-Aryan_languages) + - Indo-Aryan languages: `as`, `bn`, `gu`, `hi`, `mr`, `or`, `pa`, `raj` + - Language wise folders should be placed in `inference/checkpoints/indo-aryan/checkpoints` +- [South-Indian languages](https://en.wikipedia.org/wiki/Dravidian_languages) + - Dravidian languages: `kn`, `ml`, `ta`, `te` + - Language wise folders should be placed in `inference/checkpoints/dravidian/checkpoints` +- Remaining languages + - Miscellaneous languages: `en`, `brx`, `mni` + - (Combination of Indian-English and [Tibeto-Burman languages](https://en.wikipedia.org/wiki/Tibeto-Burman_languages)) + - Language wise folders should be placed in `inference/checkpoints/misc/checkpoints` + +In this tutorial, we show example on how to perform a deployment for North-Indian languages, the config files for which are available in the directory: `azure_ml/indo-aryan`. (For other groups, follow similarly) + +### Registering the model + +``` +az ml model create --file azure_ml/indo-aryan/model.yml --resource-group $RESOURCE_GROUP --workspace-name $WORKSPACE_NAME +``` + +### Publishing the endpoint for online inference + +``` +az ml online-endpoint create -f azure_ml/indo-aryan/endpoint.yml -g $RESOURCE_GROUP -w $WORKSPACE_NAME +``` + +Now from the Azure Portal, open the Container Registry, and grant ACR_PULL permission for the above endpoint, so that it is allowed to download the docker image. + +### Attaching a deployment + +``` +az ml online-deployment create -f azure_ml/indo-aryan/deployment.yml --all-traffic -g $RESOURCE_GROUP -w $WORKSPACE_NAME +``` + +### Testing if inference works + +1. From Azure ML Studio, go to the "Consume" tab, and get the endpoint domain (without `https://` or trailing `/`) and an authentication key. +2. In `client.py`, enable `ENABLE_SSL = True`, and then set the `ENDPOINT_URL` variable as well as `Authorization` value inside `HTTP_HEADERS`. +3. Run `python3 client.py` diff --git a/Indic-TTS/inference/triton_server/azure_ml/dravidian/deployment.yml b/Indic-TTS/inference/triton_server/azure_ml/dravidian/deployment.yml new file mode 100644 index 0000000000000000000000000000000000000000..60ad80eb8b23c582b485de012f1f9ad9d52ae9ef --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/dravidian/deployment.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json +name: ai4bharat-dravidian-tts--t4-gpu +endpoint_name: ai4bharat-dravidian-tts--t4 +model: azureml:indic-tts--coqui-models--dravidian:1 +model_mount_path: /models +environment: azureml:triton-coqui-tts-env:1 +instance_type: Standard_NC4as_T4_v3 +instance_count: 1 +request_settings: + request_timeout_ms: 90000 + max_concurrent_requests_per_instance: 50 + max_queue_wait_ms: 1000 +app_insights_enabled: true diff --git a/Indic-TTS/inference/triton_server/azure_ml/dravidian/endpoint.yml b/Indic-TTS/inference/triton_server/azure_ml/dravidian/endpoint.yml new file mode 100644 index 0000000000000000000000000000000000000000..ed6d440a06613ebb334f5fe5cd6573a3a8c5c603 --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/dravidian/endpoint.yml @@ -0,0 +1,3 @@ +$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json +name: ai4bharat-dravidian-tts--t4 +auth_mode: key diff --git a/Indic-TTS/inference/triton_server/azure_ml/dravidian/model.yml b/Indic-TTS/inference/triton_server/azure_ml/dravidian/model.yml new file mode 100644 index 0000000000000000000000000000000000000000..a28b298862a72ff2f382c17f3f303fae71dc2ac2 --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/dravidian/model.yml @@ -0,0 +1,5 @@ +$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json +name: indic-tts--coqui-models--dravidian +version: 1 +path: ../../../models/dravidian/checkpoints +type: triton_model diff --git a/Indic-TTS/inference/triton_server/azure_ml/environment.yml b/Indic-TTS/inference/triton_server/azure_ml/environment.yml new file mode 100644 index 0000000000000000000000000000000000000000..062f753d6cdb2c601b8aacac0027176140e70942 --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/environment.yml @@ -0,0 +1,14 @@ +$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json +name: triton-coqui-tts-env +image: dhruvaprod.azurecr.io/tts/triton-tts-coqui:latest +version: 1 +inference_config: + liveness_route: + path: /v2/health/live + port: 8000 + readiness_route: + path: /v2/health/ready + port: 8000 + scoring_route: + path: / + port: 8000 diff --git a/Indic-TTS/inference/triton_server/azure_ml/indo-aryan/deployment.yml b/Indic-TTS/inference/triton_server/azure_ml/indo-aryan/deployment.yml new file mode 100644 index 0000000000000000000000000000000000000000..51a8ba4505c69b2e363b21e520bb7982d50b1e98 --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/indo-aryan/deployment.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json +name: ai4bharat-indo-aryan-tts--t4-gpu +endpoint_name: ai4bharat-indo-aryan-tts--t4 +model: azureml:indic-tts--coqui-models--indo-aryan:1 +model_mount_path: /models +environment: azureml:triton-coqui-tts-env:1 +instance_type: Standard_NC4as_T4_v3 +instance_count: 1 +request_settings: + request_timeout_ms: 90000 + max_concurrent_requests_per_instance: 50 + max_queue_wait_ms: 1000 +app_insights_enabled: true diff --git a/Indic-TTS/inference/triton_server/azure_ml/indo-aryan/endpoint.yml b/Indic-TTS/inference/triton_server/azure_ml/indo-aryan/endpoint.yml new file mode 100644 index 0000000000000000000000000000000000000000..eca7262002bde775290cef59daa322d9bbb59f85 --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/indo-aryan/endpoint.yml @@ -0,0 +1,3 @@ +$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json +name: ai4bharat-indo-aryan-tts--t4 +auth_mode: key diff --git a/Indic-TTS/inference/triton_server/azure_ml/indo-aryan/model.yml b/Indic-TTS/inference/triton_server/azure_ml/indo-aryan/model.yml new file mode 100644 index 0000000000000000000000000000000000000000..3340b30e274647159011e70454a25617f6cb4ef9 --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/indo-aryan/model.yml @@ -0,0 +1,5 @@ +$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json +name: indic-tts--coqui-models--indo-aryan +version: 1 +path: ../../../checkpoints/indo-aryan/checkpoints +type: triton_model diff --git a/Indic-TTS/inference/triton_server/azure_ml/misc/deployment.yml b/Indic-TTS/inference/triton_server/azure_ml/misc/deployment.yml new file mode 100644 index 0000000000000000000000000000000000000000..6a611cde9d98ab3779eb883f81f7e647dc54cbdd --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/misc/deployment.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json +name: ai4bharat-misc-tts--t4-gpu +endpoint_name: ai4bharat-misc-tts--t4 +model: azureml:indic-tts--coqui-models--misc:1 +model_mount_path: /models +environment: azureml:triton-coqui-tts-env:1 +instance_type: Standard_NC4as_T4_v3 +instance_count: 1 +request_settings: + request_timeout_ms: 90000 + max_concurrent_requests_per_instance: 50 + max_queue_wait_ms: 1000 +app_insights_enabled: true diff --git a/Indic-TTS/inference/triton_server/azure_ml/misc/endpoint.yml b/Indic-TTS/inference/triton_server/azure_ml/misc/endpoint.yml new file mode 100644 index 0000000000000000000000000000000000000000..1e5f6dfc51707f39feab148b89037382faf9810c --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/misc/endpoint.yml @@ -0,0 +1,3 @@ +$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json +name: ai4bharat-misc-tts--t4 +auth_mode: key diff --git a/Indic-TTS/inference/triton_server/azure_ml/misc/model.yml b/Indic-TTS/inference/triton_server/azure_ml/misc/model.yml new file mode 100644 index 0000000000000000000000000000000000000000..0dcaccc3355cc77326b541843f560483cf738a67 --- /dev/null +++ b/Indic-TTS/inference/triton_server/azure_ml/misc/model.yml @@ -0,0 +1,5 @@ +$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json +name: indic-tts--coqui-models--misc +version: 1 +path: ../../../models/misc/checkpoints +type: triton_model diff --git a/Indic-TTS/inference/triton_server/client.py b/Indic-TTS/inference/triton_server/client.py new file mode 100644 index 0000000000000000000000000000000000000000..42620998a7565850ec8958bb34881cb5be5f8999 --- /dev/null +++ b/Indic-TTS/inference/triton_server/client.py @@ -0,0 +1,74 @@ +import tritonclient.http as http_client +from tritonclient.utils import * + +DEFAULT_SAMPLING_RATE = 22050 + +ENABLE_SSL = False +ENDPOINT_URL = 'localhost:8000' +HTTP_HEADERS = {"Authorization": "Bearer __PASTE_KEY_HERE__"} + +# Connect to the server +if ENABLE_SSL: + import gevent.ssl + triton_http_client = http_client.InferenceServerClient( + url=ENDPOINT_URL, verbose=False, + ssl=True, ssl_context_factory=gevent.ssl._create_default_https_context, + ) +else: + triton_http_client = http_client.InferenceServerClient( + url=ENDPOINT_URL, verbose=False, + ) + +print("Is server ready - {}".format( + triton_http_client.is_server_ready(headers=HTTP_HEADERS) +)) + +import io +from scipy.io.wavfile import write as scipy_wav_write +import numpy as np + +def get_string_tensor(string_value, tensor_name): + string_obj = np.array([string_value], dtype="object") + input_obj = http_client.InferInput(tensor_name, string_obj.shape, np_to_triton_dtype(string_obj.dtype)) + input_obj.set_data_from_numpy(string_obj) + return input_obj + +# Uncomment based on the language you want to test + +## North-Indian languages +# inputs = [get_string_tensor("เฆจเฆฎเฆธเงเฆคเง‡", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("as", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เฆจเฆฎเฆธเงเฆคเง‡", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("bn", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เชจเชฎเชธเซเชคเซ‡", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("gu", "INPUT_LANGUAGE_ID")] +inputs = [get_string_tensor("เคธเคฒเคพเคฎ", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("hi", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เคจเคฎเคธเฅเคคเฅ‡", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("mr", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เฌจเฌฎเฌธเญเฌคเญ‡", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("or", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เจจเจฎเจธเจคเฉ‡", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("pa", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เคธเคฒเคพเคฎ", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("raj", "INPUT_LANGUAGE_ID")] + +## South-Indian languages +# inputs = [get_string_tensor("เฒจเฒฎเฒธเณเฒ•เฒพเฒฐเฒ‚", "INPUT_TEXT"), get_string_tensor("male", "INPUT_SPEAKER_ID"), get_string_tensor("kn", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เดจเดฎเดธเตเด•เดพเดฐเด‚", "INPUT_TEXT"), get_string_tensor("male", "INPUT_SPEAKER_ID"), get_string_tensor("ml", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เฎตเฎฃเฎ•เฏเฎ•เฎฎเฏโ€Œ", "INPUT_TEXT"), get_string_tensor("male", "INPUT_SPEAKER_ID"), get_string_tensor("ta", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เฐจเฐฎเฐธเฑเฐ•เฐพเฐฐเฐ‚", "INPUT_TEXT"), get_string_tensor("male", "INPUT_SPEAKER_ID"), get_string_tensor("te", "INPUT_LANGUAGE_ID")] + +## Misc languages +# inputs = [get_string_tensor("Greetings", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("en", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เคจเคฎเคธเฅเคคเฅ‡", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("brx", "INPUT_LANGUAGE_ID")] +# inputs = [get_string_tensor("เฆจเฆฎเฆธเงเฆคเง‡", "INPUT_TEXT"), get_string_tensor("female", "INPUT_SPEAKER_ID"), get_string_tensor("mni", "INPUT_LANGUAGE_ID")] + +output0 = http_client.InferRequestedOutput("OUTPUT_GENERATED_AUDIO") + +response = triton_http_client.infer( + "tts", + model_version='1', + inputs=inputs, + outputs=[output0], + headers=HTTP_HEADERS, +)#.get_response() + +raw_audio = response.as_numpy("OUTPUT_GENERATED_AUDIO")[0] +byte_io = io.BytesIO() +scipy_wav_write(byte_io, DEFAULT_SAMPLING_RATE, raw_audio) + +with open("audio.wav", "wb") as f: + f.write(byte_io.read()) diff --git a/Indic-TTS/inference/triton_server/triton_repo/tts/1/model.py b/Indic-TTS/inference/triton_server/triton_repo/tts/1/model.py new file mode 100644 index 0000000000000000000000000000000000000000..2af71c09f21d002c707eefa6e198c1ea9fe8e53d --- /dev/null +++ b/Indic-TTS/inference/triton_server/triton_repo/tts/1/model.py @@ -0,0 +1,118 @@ +import os +import sys +import io +import json +import tempfile + +from TTS.utils.synthesizer import Synthesizer +import numpy as np + +import triton_python_backend_utils as pb_utils + +ENABLE_XLIT = True +INFERENCE_MODULE_DIR = "/home/app" +sys.path.insert(0, INFERENCE_MODULE_DIR) +from src.inference import TextToSpeechEngine + +PWD = os.path.dirname(__file__) + +class TritonPythonModel: + + def initialize(self, args): + """`initialize` is called only once when the model is being loaded. + Implementing `initialize` function is optional. This function allows + the model to intialize any state associated with this model. + Parameters + ---------- + args : dict + Both keys and values are strings. The dictionary keys and values are: + * model_config: A JSON string containing the model configuration + * model_instance_kind: A string containing model instance kind + * model_instance_device_id: A string containing model instance device ID + * model_repository: Model repository path + * model_version: Model version + * model_name: Model name + """ + + # You must parse model_config. JSON string is not parsed here + self.model_config = model_config = json.loads(args['model_config']) + + self.model_instance_device_id = json.loads(args['model_instance_device_id']) + + # checkpoints_root_dir = os.path.join(PWD, "checkpoints") + checkpoints_root_dir = "/models/checkpoints" + checkpoint_folders = [ f.path for f in os.scandir(checkpoints_root_dir) if f.is_dir() ] + # The assumption is that, each folder name is language code + + self.supported_speaker_ids = {"male", "female"} + self.supported_lang_codes = set() + self.models = {} + + for checkpoint_folder in checkpoint_folders: + lang_code = os.path.basename(checkpoint_folder) + + # Replace a few hardcoded paths in the config + tts_config_path = os.path.join(checkpoint_folder, "fastpitch/config.json") + tts_config = json.load(open(tts_config_path)) + speakers_file = tts_config_path.replace("config.json", "speakers.pth") + tts_config["model_args"]["speakers_file"] = speakers_file + tts_config["speakers_file"] = speakers_file + + # Write the config file to a temporary path so that we can pass it to the Synthesizer class + patched_tts_config_file = tempfile.NamedTemporaryFile(suffix=".json", mode='w', encoding='utf-8', delete=False) + patched_tts_config_file.write(json.dumps(tts_config)) + patched_tts_config_file.close() + + self.models[lang_code] = Synthesizer( + tts_checkpoint=os.path.join(checkpoint_folder, "fastpitch/best_model.pth"), + tts_config_path=patched_tts_config_file.name, + vocoder_checkpoint=os.path.join(checkpoint_folder, "hifigan/best_model.pth"), + vocoder_config=os.path.join(checkpoint_folder, "hifigan/config.json"), + use_cuda=True, + ) + self.supported_lang_codes.add(lang_code) + os.unlink(patched_tts_config_file.name) + + if "en+hi" in self.supported_lang_codes and "en" not in self.supported_lang_codes: + self.supported_lang_codes.add("en") + + self.engine = TextToSpeechEngine( + self.models, + allow_transliteration=ENABLE_XLIT, + enable_denoiser=False, + ) + + def execute(self, requests): + responses = [] + + for request in requests: + + input_texts = pb_utils.get_input_tensor_by_name(request, "INPUT_TEXT").as_numpy() + speaker_ids = pb_utils.get_input_tensor_by_name(request, "INPUT_SPEAKER_ID").as_numpy() + lang_ids = pb_utils.get_input_tensor_by_name(request, "INPUT_LANGUAGE_ID").as_numpy() + + input_texts = [input_text.decode("utf-8", "ignore") for input_text in input_texts] + speaker_ids = [speaker_id.decode("utf-8", "ignore") for speaker_id in speaker_ids] + lang_ids = [lang_id.decode("utf-8", "ignore") for lang_id in lang_ids] + + generated_audios = [] + + for input_text, speaker_id, lang_id in zip(input_texts, speaker_ids, lang_ids): + if lang_id in self.supported_lang_codes and speaker_id in self.supported_speaker_ids: + # generated_audio = self.engine.models[lang_id].tts(input_text, speaker_id) + generated_audio = self.engine.infer_from_text(input_text, lang=lang_id, speaker_name=speaker_id, transliterate_roman_to_native=ENABLE_XLIT) + else: + raise NotImplementedError("Language not supported") + # generated_audio = [0] + + generated_audios.append(generated_audio) + + out_tensor_0 = pb_utils.Tensor("OUTPUT_GENERATED_AUDIO", + np.array(generated_audios, dtype=np.float32)) + + + inference_response = pb_utils.InferenceResponse( + output_tensors=[out_tensor_0]) + responses.append(inference_response) + + return responses diff --git a/Indic-TTS/inference/triton_server/triton_repo/tts/config.pbtxt b/Indic-TTS/inference/triton_server/triton_repo/tts/config.pbtxt new file mode 100644 index 0000000000000000000000000000000000000000..2c88e279a6ae590d103efaf5d8018003df2b2198 --- /dev/null +++ b/Indic-TTS/inference/triton_server/triton_repo/tts/config.pbtxt @@ -0,0 +1,29 @@ +name: "tts" +backend: "python" +input [{ + name: "INPUT_TEXT" + data_type: TYPE_STRING + dims: 1 +}, +{ + name: "INPUT_SPEAKER_ID" + data_type: TYPE_STRING + dims: 1 +}, +{ + name: "INPUT_LANGUAGE_ID" + data_type: TYPE_STRING + dims: 1 +}] + +output { + name: "OUTPUT_GENERATED_AUDIO" + data_type: TYPE_FP32 + dims: -1 +} + + +instance_group { + count: 1 + kind: KIND_GPU +} diff --git a/Indic-TTS/inference/triton_server/ulca_models/dravidian.json b/Indic-TTS/inference/triton_server/ulca_models/dravidian.json new file mode 100644 index 0000000000000000000000000000000000000000..8282b7305513d66f493e78386e66a4248b501dd0 --- /dev/null +++ b/Indic-TTS/inference/triton_server/ulca_models/dravidian.json @@ -0,0 +1,79 @@ +{ + "modelId": "ai4bharat/indic-tts-coqui-dravidian-gpu", + "version": "v1", + "submittedOn": 1678985381000, + "updatedOn": 1678985381000, + "name": "AI4Bharat Indic-TTS for Dravidian languages", + "description": "Text-to-speech models trained using FastPitch and HiFi-GAN vocoder, separately for each language. Supports both 'female' and 'male' voices. All the models were trained using the IndicTTS dataset from SMT Lab, IITM.", + "refUrl": "https://github.com/AI4Bharat/Indic-TTS", + "task": { + "type": "tts" + }, + "languages": [ + { + "sourceLanguage": "kn" + }, + { + "sourceLanguage": "ml" + }, + { + "sourceLanguage": "ta" + }, + { + "sourceLanguage": "te" + } + ], + "license": "mit", + "domain": [ + "general" + ], + "inferenceEndPoint": { + "schema": { + "modelProcessingType": { + "type": "batch" + }, + "request": { + "input": [ + { + "source": "เดจเดฎเดธเตเด•เดพเดฐเด‚" + } + ], + "config": { + "language": { + "sourceLanguage": "ml" + }, + "gender": "male" + } + }, + "response": { + "audio": [ + { + "audioContent": "UklGRkRYAQBXQVZFZm10IBAAAAABAAEAIlYAAESsAAACABAAZGF0YSBYAQABAAAABQAAAAUA/f8DAAEAAgAAAAUAAAAEAAAAAwD+/wUA//..." + } + ] + } + } + }, + "submitter": { + "name": "AI4Bharat", + "aboutMe": "A non-profit, open-source community of engineers, domain experts, policy makers, and academicians collaborating to build AI solutions to solve Indiaโ€™s problems", + "team": [ + { + "name": "Praveen SV", + "aboutMe": "IIT-Madras, AI4Bharat" + }, + { + "name": "Gokul Karthik K", + "aboutMe": "Microsoft Research Intern, AI4Bharat" + }, + { + "name": "Pratyush Kumar", + "aboutMe": "Microsoft Research, AI4Bharat" + }, + { + "name": "Mitesh Khapra", + "aboutMe": "IIT-Madras, AI4Bharat" + } + ] + } +} \ No newline at end of file diff --git a/Indic-TTS/inference/triton_server/ulca_models/indo-aryan.json b/Indic-TTS/inference/triton_server/ulca_models/indo-aryan.json new file mode 100644 index 0000000000000000000000000000000000000000..8b4cdf745a7b597e5cbe5a4b3600d1b203f302bc --- /dev/null +++ b/Indic-TTS/inference/triton_server/ulca_models/indo-aryan.json @@ -0,0 +1,91 @@ +{ + "modelId": "ai4bharat/indic-tts-coqui-indo_aryan-gpu", + "version": "v1", + "submittedOn": 1678985381000, + "updatedOn": 1678985381000, + "name": "AI4Bharat Indic-TTS for Indo-Aryan languages", + "description": "Text-to-speech models trained using FastPitch and HiFi-GAN vocoder, separately for each language. Supports both 'female' and 'male' voices. All the models were trained using the IndicTTS dataset from SMT Lab, IITM.", + "refUrl": "https://github.com/AI4Bharat/Indic-TTS", + "task": { + "type": "tts" + }, + "languages": [ + { + "sourceLanguage": "as" + }, + { + "sourceLanguage": "bn" + }, + { + "sourceLanguage": "gu" + }, + { + "sourceLanguage": "hi" + }, + { + "sourceLanguage": "mr" + }, + { + "sourceLanguage": "or" + }, + { + "sourceLanguage": "pa" + }, + { + "sourceLanguage": "raj" + } + ], + "license": "mit", + "domain": [ + "general" + ], + "inferenceEndPoint": { + "schema": { + "modelProcessingType": { + "type": "batch" + }, + "request": { + "input": [ + { + "source": "เคธเคพเคฐเฅ‡ เคœเคนเคพเค เคธเฅ‡ เค…เคšเฅเค›เคพ, เคนเคฟเค‚เคฆเฅ‹เคธเฅเคคเคพเคจ เคนเคฎเคพเคฐเคพ" + } + ], + "config": { + "language": { + "sourceLanguage": "hi" + }, + "gender": "male" + } + }, + "response": { + "audio": [ + { + "audioContent": "UklGRkRYAQBXQVZFZm10IBAAAAABAAEAIlYAAESsAAACABAAZGF0YSBYAQABAAAABQAAAAUA/f8DAAEAAgAAAAUAAAAEAAAAAwD+/wUA//..." + } + ] + } + } + }, + "submitter": { + "name": "AI4Bharat", + "aboutMe": "A non-profit, open-source community of engineers, domain experts, policy makers, and academicians collaborating to build AI solutions to solve Indiaโ€™s problems", + "team": [ + { + "name": "Praveen SV", + "aboutMe": "IIT-Madras, AI4Bharat" + }, + { + "name": "Gokul Karthik K", + "aboutMe": "Microsoft Research Intern, AI4Bharat" + }, + { + "name": "Pratyush Kumar", + "aboutMe": "Microsoft Research, AI4Bharat" + }, + { + "name": "Mitesh Khapra", + "aboutMe": "IIT-Madras, AI4Bharat" + } + ] + } +} \ No newline at end of file diff --git a/Indic-TTS/inference/triton_server/ulca_models/misc.json b/Indic-TTS/inference/triton_server/ulca_models/misc.json new file mode 100644 index 0000000000000000000000000000000000000000..67b2cfec7fcd96417c454049cf5f1a9de45ff73a --- /dev/null +++ b/Indic-TTS/inference/triton_server/ulca_models/misc.json @@ -0,0 +1,76 @@ +{ + "modelId": "ai4bharat/indic-tts-coqui-misc-gpu", + "version": "v1", + "submittedOn": 1678985381000, + "updatedOn": 1678985381000, + "name": "AI4Bharat TTS for English, Boro, and Manipuri.", + "description": "Text-to-speech models trained using FastPitch and HiFi-GAN vocoder, separately for each language. Supports both 'female' and 'male' voices. All the models were trained using the IndicTTS dataset from SMT Lab, IITM.", + "refUrl": "https://github.com/AI4Bharat/Indic-TTS", + "task": { + "type": "tts" + }, + "languages": [ + { + "sourceLanguage": "en" + }, + { + "sourceLanguage": "brx" + }, + { + "sourceLanguage": "mni" + } + ], + "license": "mit", + "domain": [ + "general" + ], + "inferenceEndPoint": { + "schema": { + "modelProcessingType": { + "type": "batch" + }, + "request": { + "input": [ + { + "source": "Hello world from India!" + } + ], + "config": { + "language": { + "sourceLanguage": "en" + }, + "gender": "male" + } + }, + "response": { + "audio": [ + { + "audioContent": "UklGRkRYAQBXQVZFZm10IBAAAAABAAEAIlYAAESsAAACABAAZGF0YSBYAQABAAAABQAAAAUA/f8DAAEAAgAAAAUAAAAEAAAAAwD+/wUA//..." + } + ] + } + } + }, + "submitter": { + "name": "AI4Bharat", + "aboutMe": "A non-profit, open-source community of engineers, domain experts, policy makers, and academicians collaborating to build AI solutions to solve Indiaโ€™s problems", + "team": [ + { + "name": "Praveen SV", + "aboutMe": "IIT-Madras, AI4Bharat" + }, + { + "name": "Gokul Karthik K", + "aboutMe": "Microsoft Research Intern, AI4Bharat" + }, + { + "name": "Pratyush Kumar", + "aboutMe": "Microsoft Research, AI4Bharat" + }, + { + "name": "Mitesh Khapra", + "aboutMe": "IIT-Madras, AI4Bharat" + } + ] + } +} \ No newline at end of file diff --git a/Indic-TTS/main.py b/Indic-TTS/main.py new file mode 100644 index 0000000000000000000000000000000000000000..107e567491f13e44df85a518277caae7e2e253be --- /dev/null +++ b/Indic-TTS/main.py @@ -0,0 +1,743 @@ +import argparse +import os +import string + +import numpy as np +import pandas as pd +import torch + +from argparse import Namespace +from torch.utils.data import DataLoader +from trainer import Trainer, TrainerArgs +from TTS.config import load_config +from TTS.tts.configs.align_tts_config import AlignTTSConfig +from TTS.tts.configs.fast_pitch_config import FastPitchConfig +from TTS.tts.configs.glow_tts_config import GlowTTSConfig +from TTS.tts.configs.shared_configs import BaseAudioConfig, BaseDatasetConfig, CharactersConfig +from TTS.tts.configs.tacotron2_config import Tacotron2Config +from TTS.tts.configs.vits_config import VitsConfig +from TTS.tts.datasets import TTSDataset, load_tts_samples +from TTS.tts.models import setup_model +from TTS.tts.models.align_tts import AlignTTS +from TTS.tts.models.forward_tts import ForwardTTS, ForwardTTSArgs +from TTS.tts.models.glow_tts import GlowTTS +from TTS.tts.models.tacotron2 import Tacotron2 +from TTS.tts.models.vits import Vits, VitsArgs +from TTS.tts.utils.speakers import SpeakerManager +from TTS.tts.utils.text.tokenizer import TTSTokenizer +from TTS.utils.audio import AudioProcessor +from TTS.utils.io import load_checkpoint +from tqdm.auto import tqdm + +from utils import str2bool + + +def get_arg_parser(): + parser = argparse.ArgumentParser(description='Traning and evaluation script for acoustic / e2e TTS model ') + + # dataset parameters + parser.add_argument('--dataset_name', default='indictts', choices=['ljspeech', 'indictts', 'googletts']) + parser.add_argument('--language', default='ta', choices=['en', 'ta', 'te', 'kn', 'ml', 'hi', 'mr', 'bn', 'gu', 'or', 'as', 'raj', 'mni', 'brx', 'all']) + parser.add_argument('--dataset_path', default='/nlsasfs/home/ai4bharat/praveens/ttsteam/datasets/{}/{}', type=str) # dataset_name, language #CHANGE + parser.add_argument('--speaker', default='all') # eg. all, male, female, ... + parser.add_argument('--use_phonemes', default=False, type=str2bool) + parser.add_argument('--phoneme_language', default='en-us', choices=['en-us']) + parser.add_argument('--add_blank', default=False, type=str2bool) + parser.add_argument('--text_cleaner', default='multilingual_cleaners', choices=['multilingual_cleaners']) + parser.add_argument('--eval_split_size', default=0.01) + parser.add_argument('--min_audio_len', default=1) + parser.add_argument('--max_audio_len', default=float("inf")) # 20*22050 + parser.add_argument('--min_text_len', default=1) + parser.add_argument('--max_text_len', default=float("inf")) # 400 + parser.add_argument('--audio_config', default='without_norm', choices=['without_norm', 'with_norm']) + + # model parameters + parser.add_argument('--model', default='glowtts', choices=['glowtts', 'vits', 'fastpitch', 'tacotron2', 'aligntts']) + parser.add_argument('--hidden_channels', default=512, type=int) + parser.add_argument('--use_speaker_embedding', default=True, type=str2bool) + parser.add_argument('--use_d_vector_file', default=False, type=str2bool) + parser.add_argument('--d_vector_file', default="", type=str) + parser.add_argument('--d_vector_dim', default=512, type=int) + parser.add_argument('--speaker_encoder_model_path', default='', type=str) + parser.add_argument('--speaker_encoder_config_path', default='', type=str) + parser.add_argument('--use_speaker_encoder_as_loss', default=False, type=str2bool) # only supported in vits, fastpitch + parser.add_argument('--use_ssim_loss', default=False, type=str2bool) # only supported in fastpitch + parser.add_argument('--vocoder_path', default=None, type=str) # external vocoder for speaker encoder loss in fastpitch + parser.add_argument('--vocoder_config_path', default=None, type=str) # external vocoder for speaker encoder loss in fastpitch + parser.add_argument('--use_style_encoder', default=False, type=str2bool) + parser.add_argument('--use_aligner', default=True, type=str2bool) # for fastspeech, fastpitch + parser.add_argument('--use_separate_optimizers', default=False, type=str2bool) # for aligner in fastspeech, fastpitch + parser.add_argument('--use_pre_computed_alignments', default=False, type=str2bool) # for fastspeech, fastpitch + parser.add_argument('--pretrained_checkpoint_path', default=None, type=str) # to load pretrained weights + parser.add_argument('--attention_mask_model_path', default='output/store/ta/fastpitch/best_model.pth', type=str) # set if use_aligner==False and use_pre_computed_alignments==False #CHANGE + parser.add_argument('--attention_mask_config_path', default='output/store/ta/fastpitch/config.json', type=str) # set if use_aligner==False and use_pre_computed_alignments==False #CHANGE + parser.add_argument('--attention_mask_meta_file_name', default='meta_file_attn_mask.txt', type=str) # dataset_name, language # set if use_aligner==False #CHANGE + + # training parameters + parser.add_argument('--epochs', default=1000, type=int) + parser.add_argument('--aligner_epochs', default=1000, type=int) # For FastPitch + parser.add_argument('--batch_size', default=8, type=int) + parser.add_argument('--batch_size_eval', default=8, type=int) + parser.add_argument('--batch_group_size', default=0, type=int) + parser.add_argument('--num_workers', default=8, type=int) + parser.add_argument('--num_workers_eval', default=8, type=int) + parser.add_argument('--mixed_precision', default=False, type=str2bool) + parser.add_argument('--compute_input_seq_cache', default=False, type=str2bool) + parser.add_argument('--lr', default=0.001, type=float) + parser.add_argument('--lr_scheduler', default='NoamLR', choices=['NoamLR', 'StepLR', 'LinearLR', 'CyclicLR', 'NoamLRStepConstant', 'NoamLRStepDecay']) + parser.add_argument('--lr_scheduler_warmup_steps', default=4000, type=int) # NoamLR + parser.add_argument('--lr_scheduler_step_size', default=500, type=int) # StepLR + parser.add_argument('--lr_scheduler_threshold_step', default=500, type=int) # NoamLRStep+ + parser.add_argument('--lr_scheduler_aligner', default='NoamLR', choices=['NoamLR', 'StepLR', 'LinearLR', 'CyclicLR', 'NoamLRStepConstant', 'NoamLRStepDecay']) + parser.add_argument('--lr_scheduler_gamma', default=0.1, type=float) # StepLR, LinearLR, CyclicLR + + # training - logging parameters + parser.add_argument('--run_description', default='None', type=str) + parser.add_argument('--output_path', default='output', type=str) + parser.add_argument('--test_delay_epochs', default=0, type=int) + parser.add_argument('--print_step', default=100, type=int) + parser.add_argument('--plot_step', default=100, type=int) + parser.add_argument('--save_step', default=10000, type=int) + parser.add_argument('--save_n_checkpoints', default=1, type=int) + parser.add_argument('--save_best_after', default=10000, type=int) + parser.add_argument('--target_loss', default=None) + parser.add_argument('--print_eval', default=False, type=str2bool) + parser.add_argument('--run_eval', default=True, type=str2bool) + + # distributed training parameters + parser.add_argument('--port', default=54321, type=int) + parser.add_argument('--continue_path', default="", type=str) + parser.add_argument('--restore_path', default="", type=str) + parser.add_argument('--group_id', default="", type=str) + parser.add_argument('--use_ddp', default=True, type=bool) + parser.add_argument('--rank', default=0, type=int) + #parser.add_argument('--gpus', default='0', type=str) + + # vits + parser.add_argument('--use_sdp', default=True, type=str2bool) + + return parser + + +def formatter_indictts(root_path, meta_file, **kwargs): # pylint: disable=unused-argument + txt_file = os.path.join(root_path, meta_file) + items = [] + with open(txt_file, "r", encoding="utf-8") as ttf: + for line in ttf: + cols = line.split("|") + wav_file = os.path.join(root_path, "wavs-22k", cols[0] + ".wav") + text = cols[1].strip() + speaker_name = cols[2].strip() + items.append({"text": text, "audio_file": wav_file, "speaker_name": speaker_name}) + return items + + +def filter_speaker(samples, speaker): + if speaker == 'all': + return samples + samples = [sample for sample in samples if sample['speaker_name']==speaker] + return samples + + +def get_lang_chars(language): + if language == 'ta': + lang_chars_df = pd.read_csv('chars/Characters-Tamil.csv') + lang_chars = sorted(list(set(list("".join(lang_chars_df['Character'].values.tolist()))))) + print(lang_chars, len(lang_chars)) + print("".join(lang_chars)) + lang_chars_extra = ['เฏ—', 'เฎน', 'เฎœ', 'เฎธ', 'เฎท'] + lang_chars_extra = sorted(list(set(list("".join(lang_chars_extra))))) + print(lang_chars_extra, len(lang_chars_extra)) + print("".join(lang_chars_extra)) + lang_chars = lang_chars + lang_chars_extra + + elif language == 'hi': + lang_chars_df = pd.read_csv('chars/Characters-Hindi.csv') + lang_chars = sorted(list(set(list("".join(lang_chars_df['Character'].values.tolist()))))) + print(lang_chars, len(lang_chars)) + print("".join(lang_chars)) + lang_chars_extra = [] + lang_chars_extra = sorted(list(set(list("".join(lang_chars_extra))))) + print(lang_chars_extra, len(lang_chars_extra)) + print("".join(lang_chars_extra)) + lang_chars = lang_chars + lang_chars_extra + + elif language == 'en': + lang_chars = string.ascii_lowercase + + return lang_chars + + +def get_test_sentences(language): + if language == 'ta': + test_sentences = [ + "เฎจเฏ‡เฎทเฎฉเฎฒเฏ เฎนเฏ†เฎฐเฎพเฎฒเฏเฎŸเฏ เฎŠเฎดเฎฒเฏ เฎ•เฏเฎฑเฏเฎฑเฎšเฏเฎšเฎพเฎŸเฏเฎŸเฏ เฎคเฏŠเฎŸเฎฐเฏเฎชเฎพเฎ•, เฎ•เฎพเฎ™เฏเฎ•เฎฟเฎฐเฎธเฏ เฎจเฎพเฎŸเฎพเฎณเฏเฎฎเฎฉเฏเฎฑ เฎ‰เฎฑเฏเฎชเฏเฎชเฎฟเฎฉเฎฐเฏ เฎฐเฎพเฎ•เฏเฎฒเฏ เฎ•เฎพเฎจเฏเฎคเฎฟเฎฏเฎฟเฎŸเฎฎเฏ, เฎ…เฎฎเฎฒเฎพเฎ•เฏเฎ•เฎคเฏเฎคเฏเฎฑเฏˆ, เฎคเฎฟเฎ™เฏเฎ•เฎณเฏ เฎ•เฎฟเฎดเฎฎเฏˆเฎฏเฎฉเฏเฎฑเฏ เฎชเฎคเฏเฎคเฏ เฎฎเฎฃเฎฟ เฎจเฏ‡เฎฐเฎคเฏเฎคเฎฟเฎฑเฏเฎ•เฏเฎฎเฏ เฎฎเฏ‡เฎฒเฎพเฎ• เฎตเฎฟเฎšเฎพเฎฐเฎฃเฏˆ เฎจเฎŸเฎคเฏเฎคเฎฟเฎฏ เฎจเฎฟเฎฒเฏˆเฎฏเฎฟเฎฒเฏ, เฎšเฏ†เฎตเฏเฎตเฎพเฎฏเฏเฎ•เฏเฎ•เฎฟเฎดเฎฎเฏˆ เฎฎเฏ€เฎฃเฏเฎŸเฏเฎฎเฏ เฎตเฎฟเฎšเฎพเฎฐเฎฃเฏˆเฎ•เฏเฎ•เฏ เฎ†เฎœเฎฐเฎพเฎ•เฎฟเฎฑเฎพเฎฐเฏ.", + "เฎ’เฎฐเฏ เฎตเฎฟเฎžเฏเฎžเฎพเฎฉเฎฟ เฎคเฎฎเฏ เฎ†เฎฐเฎพเฎฏเฏเฎšเฏเฎšเฎฟเฎ•เฎณเฏˆ เฎŽเฎตเฏเฎตเฎณเฎตเฏ‹ เฎ•เฎฃเฎ•เฏเฎ•เฎพเฎ•เฎตเฏเฎฎเฏ เฎฎเฏเฎฉเฏ เฎฏเฏ‹เฎšเฎฉเฏˆเฎฏเฎฟเฎฉเฏ เฎชเฏ‡เฎฐเฎฟเฎฒเฏเฎฎเฏ เฎจเฏเฎŸเฏเฎชเฎฎเฎพเฎ•เฎตเฏเฎฎเฏ เฎจเฎŸเฎคเฏเฎคเฏเฎ•เฎฟเฎฑเฎพเฎฐเฏ.", + ] + + elif language == 'en': + test_sentences = [ + "Brazilian police say a suspect has confessed to burying the bodies of missing British journalist Dom Phillips and indigenous expert Bruno Pereira.", + "Protests have erupted in India over a new reform scheme to hire soldiers for a fixed term for the armed forces", + ] + + elif language == 'mr': + test_sentences = [ + "เคฎเคตเคฟเค† เคธเคฐเค•เคพเคฐ เค…เคฒเฅเคชเคฎเคคเคพเคค เค†เคฒเฅเคฏเคพเคจเค‚เคคเคฐ เค…เคจเฅ‡เค• เคจเคฟเคฐเฅเคฃเคฏ เค˜เฅ‡เคคเคฒเฅ‡: เคฎเฅเค–เฅเคฏเคฎเค‚เคคเฅเคฐเฅ€ เคเค•เคจเคพเคฅ เคถเคฟเค‚เคฆเฅ‡ เคฏเคพเค‚เคšเคพ เค†เคฐเฅ‹เคช.", + "เคตเคฐเฅเคงเฅเคฏเคพเคค เคญเคฆเคพเคกเฅ€ เคจเคฆเฅ€เคšเฅเคฏเคพ เคชเฅเคฒเคพเคตเคฐ เค•เคพเคฐ เคกเคฟเคตเฅเคนเคพเคฏเคกเคฐเคฒเคพ เคงเคกเค•เฅ‚เคจ เคญเฅ€เคทเคฃ เค…เคชเค˜เคพเคค, เคฆเฅ‹เค˜เฅ‡ เค—เค‚เคญเฅ€เคฐ เคœเค–เคฎเฅ€.", + ] + + elif language == 'as': + test_sentences = [ + "เฆฆเง‡เฆ‰เฆคเฆพเฆ‡ เฆ‰เฆ‡เฆฒเฆค เฆธเงเฆชเฆทเงเฆŸเฆ•เงˆ เฆธเง‡เฆ‡เฆ–เฆฟเฆจเฆฟ เฆฎเง‹เงฐ เฆจเฆพเฆฎเฆค เฆฒเฆฟเฆ–เฆฟ เฆฆเฆฟ เฆ—เงˆเฆ›เง‡", + "เฆ—เฆคเฆฟเฆ•เง‡ เฆถเฆฟเฆ•เงเฆทเฆพเงฐ เฆฌเฆพเฆฌเง‡เฆ“ เฆเฆจเง‡ เฆเฆ• เฆชเง‚เงฐเงเฆฌ เฆชเงเงฐเฆธเงเฆคเงเฆค เฆชเงฐเฆฟโ€Œเงฑเง‡เฆถ เฆเฆŸเฆพเฆค", + ] + + elif language == 'bn': + test_sentences = [ + "เฆฒเง‹เฆกเฆถเง‡เฆกเฆฟเฆ‚เงŸเง‡เฆฐ เฆ•เฆฒเงเฆฏเฆพเฆฃเง‡ เฆชเงเฆœเง‹เฆฐ เฆฆเงเฆธเฆชเงเฆคเฆพเฆน เฆ†เฆ—เง‡ เฆ•เง‡เฆจเฆพเฆ•เฆพเฆŸเฆพเฆฐ เฆฎเฆพเฆนเง‡เฆจเงเฆฆเงเฆฐเฆ•เงเฆทเฆฃเง‡, เฆฆเง‹เฆ•เฆพเฆจเง‡ เฆถเง‹เฆญเฆพ เฆชเฆพเฆšเงเฆ›เง‡, เฆฎเง‹เฆฎเฆฌเฆพเฆคเฆฟ", + "เฆเฆ• เฆšเฆจเงเฆฆเฆฐเฆพ เฆจเฆฟเฆฐเงเฆฆเง‹เฆท เฆนเฆ‡เงŸเฆพเฆ“, เฆ†เฆ‡เฆจเง‡เฆฐ เฆ†เฆชเฆพเฆค เฆจเฆฟเฆถเงเฆ›เฆฟเฆฆเงเฆฐ เฆœเฆพเฆฒเง‡ เฆชเงœเฆฟเงŸเฆพ เฆชเงเฆฐเฆพเฆฃ เฆฆเฆฟเงŸเฆพเฆ›เฆฟเฆฒ", + ] + + elif language == 'brx': + test_sentences = [ + "เค—เคพเคตเคจเคฟ เค—เฅ‹เคœเคพเคฎ เค—เคพเคฎเคฟ เคจเคตเคฅเคฟเค–เฅŒ เคนเคฐเค–เคพเคฌ เคจเคพเค—เคพเคฐเคจเคพเคจเฅˆ เค—เฅ‹เคฆเคพเคจ เคนเคพเคฆเคพเคจเคพเคต เค—เคพเคตเค–เฅŒ เคฆเคฟเคฆเฅ‹เคฎเฅˆ เคซเคธเค‚เคฅเคพ เคซเคฟเคคเฅเคฐเคพเคฏ เคนเคพเคฌเคพเคฏเคพ เคœเฅ‹เคฌเฅ‹เคฆ เค—เฅ‹เคฌเฅเคฐเคพเคฌ เคœเคพเคฏเฅ‹เคฒเฅˆ เค—เฅ‹เคฎเคœเฅ‹เคฐ", + "เคธเคพเคจเคนเคพเคฌเคฆเฅ‹เค‚ เค†เค‚ เคฎเฅ‹เคฅเฅ‡ เคฎเฅ‹เคฅเฅ‹", + ] + + elif language == 'gu': + test_sentences = [ + "เช“เช—เชฃเซ€เชธเซ‹ เช›เชคเซเชฐเซ€เชธ เชฎเชพเช‚, เชชเซเชฐเชฅเชฎเชตเชพเชฐ, เชเช•เซเชฐเซ‡เชฒเซ€เช• เชธเซ‡เชซเชŸเซ€ เช—เซเชฒเชพเชธเชจเซเช‚, เช‰เชคเซเชชเชพเชฆเชจ, เชถเชฐเซ เชฅเชˆ เช—เชฏเซเช‚.", + "เชตเซเชฏเชพเชฏเชพเชฎ เชชเช›เซ€ เชชเซเชฐเซ‹เชŸเซ€เชจ เชฒเซ‡เชตเชพเชฅเซ€, เชธเซเชจเชพเชฏเซเชจเซ€ เชœเซ‡ เชชเซ‡เชถเซ€เชฏเซ‹เชจเซ‡ เชนเชพเชจเชฟ เชชเซเชนเซ‹เช‚เชšเซ€ เชนเซ‹เชฏ เช›เซ‡.", + ] + + elif language == 'hi': + test_sentences = [ + "เคฌเคฟเคนเคพเคฐ, เคฐเคพเคœเคธเฅเคฅเคพเคจ เค”เคฐ เค‰เคคเฅเคคเคฐ เคชเฅเคฐเคฆเฅ‡เคถ เคธเฅ‡ เคฒเฅ‡เค•เคฐ เคนเคฐเคฟเคฏเคพเคฃเคพ, เคฎเคงเฅเคฏ เคชเฅเคฐเคฆเฅ‡เคถ เคเคตเค‚ เค‰เคคเฅเคคเคฐเคพเค–เค‚เคก เคฎเฅ‡เค‚ เคธเฅ‡เคจเคพ เคฎเฅ‡เค‚ เคญเคฐเฅเคคเฅ€ เคธเฅ‡ เคœเฅเคกเคผเฅ€ 'เค…เค—เฅเคจเคฟเคชเคฅ เคธเฅเค•เฅ€เคฎ' เค•เคพ เคตเคฟเคฐเฅ‹เคง เคœเคพเคฐเฅ€ เคนเฅˆ.", + "เคธเค‚เคฏเฅเค•เฅเคค เค…เคฐเคฌ เค…เคฎเฅ€เคฐเคพเคค เคฏเคพเคจเฅ€ เคฏเฅ‚เคเคˆ เคจเฅ‡ เคฌเฅเคงเคตเคพเคฐ เค•เฅ‹ เคเค• เคซเคผเฅˆเคธเคฒเคพ เคฒเคฟเคฏเคพ เค•เคฟ เค…เค—เคฒเฅ‡ เคšเคพเคฐ เคฎเคนเฅ€เคจเฅ‹เค‚ เคคเค• เคตเฅ‹ เคญเคพเคฐเคค เคธเฅ‡ เค–เคผเคฐเฅ€เคฆเคพ เคนเฅเค† เค—เฅ‡เคนเฅ‚เค เค•เฅ‹ เค•เคฟเคธเฅ€ เค”เคฐ เค•เฅ‹ เคจเคนเฅ€เค‚ เคฌเฅ‡เคšเฅ‡เค—เคพ.", + ] + + elif language == 'kn': + test_sentences = [ + "เฒฏเฒพเฒตเณเฒฆเณ เฒจเฒฟเฒœ เฒฏเฒพเฒตเณเฒฆเณ เฒธเณเฒณเณเฒณเณ เฒŽเฒจเณเฒจเณเฒต เฒฌเฒ—เณเฒ—เณ† เฒšเฒฟเฒ‚เฒคเฒฟเฒธเฒฟ.", + "เฒถเฒ•เณเฒคเฒฟ เฒ‡เฒฆเณเฒฆเฒฐเณ†เฒจเณเฒจเณŠเฒกเฒจเณ† เฒœเฒ—เฒณเฒ•เณเฒ•เณ† เฒฌเฒพ", + ] + + + elif language == 'ml': + test_sentences = [ + "เดถเดฟเดฒเดพเดฏเตเด—เด•เดพเดฒเด‚ เดฎเตเดคเตฝ เดฎเดจเตเดทเตเดฏเตผ เดœเตเดฏเดพเดฎเดฟเดคเต€เดฏ เดฐเต‚เดชเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเดตเดฐเตเดจเตเดจเต", + "เดตเดพเดนเดจเดพเดชเด•เดŸเดคเตเดคเดฟเตฝ เดชเดฐเตเด•เตเด•เต‡เดฑเตเดฑ เด…เดงเตเดฏเดพเดชเดฟเด• เดฎเดฐเดฟเดšเตเดšเต", + ] + + elif language == 'mni': + test_sentences = [ + "เฆฎเฆฅเฆ‚ เฆฎเฆฅเฆ‚, เฆ…เฆธเงเฆฎ เฆ•เฆพเฆ–เฆฟเฆฌเฆจเฆพ.", + "เฆฅเง‡เฆฌเฆจเฆพ เฆ™เฆพเฆถเฆฟเฆ‚เฆฆเง เฆ…เฆฎเฆฎเฆฎเงเฆคเฆพ เฆ‡เฆฒเงเฆฒเง‡.", + ] + + elif language == 'mr': + test_sentences = [ + "เคฎเฅเคนเคฃเฅเคจเคš เคฎเคนเคพเคฐเคพเคš เคฌเคฟเคฐเฅเคฆ เคฎเฅ€ เคฎเคพเคจเคพเคจ เคตเคพเค—เคตเคฒ", + "เค˜เฅ‹เคกเคฏเคพเคตเคฐเฅ‚เคจ เค–เคพเคฒเฅ€ เค‰เคคเคฐเคคเคพเคจเคพ เค˜เฅ‹เคกเฅ‡เคธเฅเคตเคพเคฐ เคตเฅƒเคงเฅเคฆเคพเคฒเคพ เคฎเฅเคนเคฃเคพเคฒเคพ, เคฌเคพเคฌเคพ เคเคตเคขเคฏเคพ เค•เคกเคพเค•เฅเคฏเคพเคšเฅเคฏเคพ เคฅเค‚เคกเฅ€เคค เคจเคฆเฅ€ เค•เคกเฅ‡เคฒเคพ เคคเฅเคฎเฅเคนเฅ€ เค•เคฟเคคเฅ€ เคตเฅ‡เคณ เคฌเคธเคฒเคพ เคนเฅ‹เคคเคพเคค.", + ] + + elif language == 'or': + test_sentences = [ + "เฌธเฌพเฌฎเฌพเฌจเญเญŸ เฌ—เญ‹เฌŸเฌฟเฌ เฌฌเฌพเฌณเฌ•, เฌธเญ‡ เฌ•โ€™เฌฃ เฌฎเฌนเฌพเฌญเฌพเฌฐเฌค เฌฏเญเฌฆเญเฌงเฌฐเญ‡ เฌฒเญเฌฟเฌฌ ", + "เฌ เฌ˜เฌŸเฌฃเฌพ เฌฆเญ‡เฌ–เฌฟเฌฌเฌพเฌ•เญ เฌถเฌน เฌถเฌน เฌฒเญ‹เฌ• เฌงเฌพเฌ‡เฌเฌฒเญ‡ ", + ] + + elif language == 'raj': + test_sentences = [ + "เค•เคจเฅเคนเฅˆเคฏเคพเคฒเคพเคฒ เคธเฅ‡เค เคฟเคฏเคพ เค‡เคคเฅเคฏเคพเคฆ เค…เคจเฅเคชเคฎ เค•เคพเคตเฅเคฏ เค•เฅƒเคคเคฟเคฏเคพเค‚ เคนเฅˆ, เค‡เค‚เคฏเคพ เคˆ, เคชเฅเคฐเค•เคคเคฟ เค•เคพเคตเฅเคฏ เคฐเฅ€ เคฆเฅ€เค  เคธเฅ‚เค‚, เคฌเคพเคฆเคณเฅ€, เคฒเฅ‚", + "เคจเคˆ เคฌเฅ€เคจเคฃเคฟเคฏเคพเค‚ เคฐเฅ‹ เค˜เฅ‚เค‚เค˜เคŸเฅ‹ เคจเคพเค• เคฐเฅ‡ เคŠเคชเคฐ เคŠเคชเคฐ เคชเคกเคผเคฏเฅ‹ เคธเคพเคตเฅ‡ เคนเฅˆ", + ] + + elif language == 'te': + test_sentences = [ + "เฐธเฐฟเฐ‚เฐนเฐ‚ เฐ…เฐกเฑเฐกเฑเฐตเฐšเฑเฐšเฐฟ, เฐคเฐชเฑเฐชเฑเฐ•เฑ‹ เฐถเฐฟเฐ•เฑเฐท เฐตเฐฟเฐงเฐฟเฐ‚เฐšเฐตเฐฒเฐธเฐฟเฐ‚เฐฆเฐฟ เฐจเฑ‡เฐจเฑ เฐ…เฐจเฐฟ เฐ•เฑ‹เฐคเฐฟเฐจเฐฟ เฐ…เฐ™เฑเฐžเฐพเฐชเฐฟเฐ‚เฐšเฐฟเฐ‚เฐฆเฐฟ เฐจเฐ•เฑเฐ•เฐ•เฑ‡เฐธเฐฟ เฐคเฐฟเฐฐเฐฟเฐ—เฐฟ เฐฎเฐ‚เฐคเฑเฐฐเฐฟ เฐชเฑเฐ‚เฐ—เฐตเฐพ เฐˆ เฐฎเฑ‚เฐทเฐฟเฐ•เฐพเฐงเฐฎเฑเฐกเฑ เฐšเฑ‹เฐฐเฑเฐกเฑ เฐ…เฐจเฐฟ เฐจเฑ€เฐ•เฑ เฐŽเฐฒเฐพ เฐคเฑ†เฐฒเฐฟเฐธเฐฟเฐ‚เฐฆเฐฟ เฐ…เฐจเฐฟ เฐ…เฐกเฐฟเฐ—เฐฟเฐ‚เฐฆเฐฟ.", + "เฐˆ เฐฎเฐพเฐŸเฐฒเฑ เฐตเฐฟเฐ‚เฐŸเฑ‚เฐจเฑ‡ เฐ—เฐพเฐฒเฐตเฑเฐกเฑ, เฐ•เฑเฐตเฐฒเฐฏเฐพเฐถเฑเฐตเฐพเฐจเฑเฐจเฐฟ เฐŽเฐ•เฑเฐ•เฐฟ, เฐถเฐคเฑเฐฐเฑเฐœเฐฟเฐคเฑเฐคเฑเฐตเฐฆเฑเฐฆเฐ•เฑ เฐตเฑ†เฐณเฑเฐฒเฐฟ, เฐ‹เฐคเฑเฐงเฑเฐตเฐœเฑเฐฃเฑเฐฃเฐฟ เฐชเฐ‚เฐชเฐฎเฐจเฐฟ เฐ•เฑ‹เฐฐเฐพเฐกเฑ, เฐ‹เฐคเฑเฐงเฑเฐตเฐœเฑเฐกเฑ, เฐ•เฑเฐตเฐฒเฐฏเฐพเฐถเฑเฐตเฐพเฐจเฑเฐจเฐฟ เฐŽเฐ•เฑเฐ•เฐฟ, เฐ—เฐพเฐฒเฐตเฑเฐกเฐฟ เฐตเฑ†เฐ‚เฐŸ, เฐ†เฐฏเฐจ เฐ†เฐถเฑเฐฐเฐฎเฐพเฐจเฐฟเฐ•เฐฟ เฐตเฑ†เฐณเฑเฐณเฐพเฐกเฑ.", + ] + + elif language == 'all': + test_sentences = [ + "เฎ’เฎฐเฏ เฎตเฎฟเฎžเฏเฎžเฎพเฎฉเฎฟ เฎคเฎฎเฏ เฎ†เฎฐเฎพเฎฏเฏเฎšเฏเฎšเฎฟเฎ•เฎณเฏˆ เฎŽเฎตเฏเฎตเฎณเฎตเฏ‹ เฎ•เฎฃเฎ•เฏเฎ•เฎพเฎ•เฎตเฏเฎฎเฏ เฎฎเฏเฎฉเฏ เฎฏเฏ‹เฎšเฎฉเฏˆเฎฏเฎฟเฎฉเฏ เฎชเฏ‡เฎฐเฎฟเฎฒเฏเฎฎเฏ เฎจเฏเฎŸเฏเฎชเฎฎเฎพเฎ•เฎตเฏเฎฎเฏ เฎจเฎŸเฎคเฏเฎคเฏเฎ•เฎฟเฎฑเฎพเฎฐเฏ.", + "เฐ‡เฐ• เฐฌเฐฟเฐจเฑ เฐฒเฐพเฐกเฑ†เฐจเฑ เฐคเฐฐเฑเฐตเฐพเฐคเฐฟ เฐ…เฐ—เฑเฐฐ เฐจเฐพเฐฏเฐ•เฑเฐฒเฑ เฐ…เฐฏเฑโ€Œเฐฎเฐจเฑ เฐ…เฐฒเฑ เฐœเฐตเฐนเฐฐเฐฟ เฐคเฐฆเฐฟเฐคเฐฐ เฐฎเฑเฐ–เฑเฐฏเฑเฐฒ 'เฐคเฐฒเฐฒเฑ เฐจเฐฐเฐฟเฐ•เฐฟ เฐˆเฐŸเฑ†เฐฒเฐ•เฑ เฐ—เฑเฐšเฑเฐšเฐ‚เฐกเฐฟ' เฐ…เฐจเฑ‡เฐตเฐฟ เฐ‡เฐคเฐฐ เฐ†เฐฆเฑ‡เฐถเฐพเฐฒเฑ.", + "เฒ•เณ†เฒฒ เฒฆเฒฟเฒจเฒ—เฒณเฒฟเฒ‚เฒฆ เฒฎเฒณเณ† เฒ•เฒกเฒฟเฒฎเณ†เฒฏเฒพเฒฆเฒ‚เฒคเณ† เฒคเณ‹เฒฐเฒฟเฒฆเณเฒฆเฒฐเณ‚ เฒ•เฒณเณ†เฒฆ เฒŽเฒฐเฒกเณ เฒฆเฒฟเฒจเฒ—เฒณเฒฒเณเฒฒเฒฟ เฒฐเฒพเฒœเณเฒฏเฒฆ เฒนเฒฒเฒตเณ†เฒกเณ† เฒฎเฒคเณเฒคเณ† เฒฎเฒณเณ† เฒธเณเฒฐเฒฟเฒฆเฒฟเฒฆเณเฒฆเณ เฒ‡เฒฆเฒฐ เฒชเฒฐเฒฟเฒฃเฒพเฒฎเฒฆเฒฟเฒ‚เฒฆเฒพเฒ—เฒฟ เฒฎเฒคเณเฒคเณ† เฒจเณ€เฒฐเฒฟเฒจ เฒนเฒฐเฒฟเฒตเณ เฒเฒฐเณเฒต เฒชเฒฅเฒฆเฒฒเณเฒฒเฒฟเฒฆเณ†.", + "เด•เต‹เดฎเดฃเตโ€เดตเต†เดฒเตโ€เดคเตเดคเต เด—เต†เดฏเดฟเด‚เดธเต เดตเดจเดฟเดคเดพ เด•เตเดฐเดฟเด•เตเด•เดฑเตเดฑเต เดธเต†เดฎเดฟ เดซเตˆเดจเดฒเดฟเดฒเตโ€ เด‡เด‚เด—เตเดฒเดฃเตเดŸเดฟเดจเต† เด†เดตเต‡เดถเดชเตเดชเต‹เดฐเดฟเดฒเตโ€ เดตเต€เดดเตเดคเตเดคเดฟ เด‡เดจเตเดคเตเดฏ เดซเตˆเดจเดฒเดฟเดฒเต†เดคเตเดคเดฟ." + ] + + else: + raise ValueError("test_sentences are not defined") + + return test_sentences + + +def compute_attention_masks(model_path, config_path, meta_save_path, data_path, dataset_metafile, args, use_cuda=True): + dataset_name = args.dataset_name + language = args.language + batch_size = 16 + meta_save_path = meta_save_path.format(dataset_name, language) + + C = load_config(config_path) + ap = AudioProcessor(**C.audio) + + # load the model + model = setup_model(C) + model, _ = load_checkpoint(model, model_path, use_cuda, True) + + # data loader + dataset_config = BaseDatasetConfig( + name=dataset_name, + meta_file_train=dataset_metafile, + path=data_path, + language=language + ) + samples, _ = load_tts_samples( + dataset_config, + eval_split=False, + formatter=formatter_indictts + ) + + dataset = TTSDataset( + outputs_per_step=model.decoder.r if "r" in vars(model.decoder) else 1, + compute_linear_spec=False, + ap=ap, + samples=samples, + tokenizer=model.tokenizer, + phoneme_cache_path=C.phoneme_cache_path, + ) + + loader = DataLoader( + dataset, + batch_size=batch_size, + num_workers=4, + collate_fn=dataset.collate_fn, + shuffle=False, + drop_last=False, + ) + + # compute attentions + file_paths = [] + with torch.no_grad(): + for data in tqdm(loader): + # setup input data + text_input = data["token_id"] + text_lengths = data["token_id_lengths"] + #linear_input = data[3] + mel_input = data["mel"] + mel_lengths = data["mel_lengths"] + #stop_targets = data[6] + item_idxs = data["item_idxs"] + + # dispatch data to GPU + if use_cuda: + text_input = text_input.cuda() + text_lengths = text_lengths.cuda() + mel_input = mel_input.cuda() + mel_lengths = mel_lengths.cuda() + + if C.model == 'glowtts': + model_outputs = model.forward(text_input, text_lengths, mel_input, mel_lengths) + #model_outputs = model.inference(text_input, text_lengths, mel_input, mel_lengths) + elif C.model == 'fast_pitch': + model_outputs = model.inference2(text_input, text_lengths) + else: + raise ValueError + + alignments = model_outputs["alignments"].detach() + for idx, alignment in enumerate(alignments): + item_idx = item_idxs[idx] + # interpolate if r > 1 + alignment = ( + torch.nn.functional.interpolate( + alignment.transpose(0, 1).unsqueeze(0), + size=None, + scale_factor=model.decoder.r if "r" in vars(model.decoder) else 1, + mode="nearest", + align_corners=None, + recompute_scale_factor=None, + ) + .squeeze(0) + .transpose(0, 1) + ) + # remove paddings + alignment = alignment[: mel_lengths[idx], : text_lengths[idx]].cpu().numpy() + # set file paths + wav_file_name = os.path.basename(item_idx) + align_file_name = os.path.splitext(wav_file_name)[0] + "_attn.npy" + file_path = item_idx.replace(wav_file_name, align_file_name) + # save output + wav_file_abs_path = os.path.abspath(item_idx) + file_abs_path = os.path.abspath(file_path) + file_paths.append([wav_file_abs_path, file_abs_path]) + np.save(file_path, alignment) + + # output metafile + with open(meta_save_path, "w", encoding="utf-8") as f: + for p in file_paths: + f.write(f"{p[0]}|{p[1]}\n") + print(f" >> Metafile created: {meta_save_path}") + + return True + + +def main(args): + + if args.speaker == 'all': + meta_file_train="metadata_train.csv" + meta_file_val="metadata_test.csv" + else: + meta_file_train=f"metadata_train_{args.speaker}.csv" + meta_file_val=f"metadata_test_{args.speaker}.csv" + + # set dataset config + dataset_config = BaseDatasetConfig( + name=args.dataset_name, + meta_file_train=meta_file_train, + meta_file_val=meta_file_val, + path=args.dataset_path.format(args.dataset_name, args.language), + language=args.language + ) + + #lang_chars = get_lang_chars(args.language) + samples, _ = load_tts_samples( + dataset_config, + eval_split=False, + formatter=formatter_indictts) + samples = filter_speaker(samples, args.speaker) + texts = "".join(item["text"] for item in samples) + lang_chars = sorted(list(set(texts))) + print(lang_chars, len(lang_chars)) + del samples, texts + + # set audio config + audio_config = BaseAudioConfig( + trim_db=60.0, # default: 45 + #mel_fmin=0.0, # default: 0 + mel_fmax=8000, # default: None + log_func="np.log", # default: np.log10 + spec_gain=1.0, # default: 20 + signal_norm=False, # default: True + ) + + audio_configs = { + "without_norm": BaseAudioConfig( + trim_db=60.0, # default: 45 + #mel_fmin=0.0, # default: 0 + mel_fmax=8000, # default: None + log_func="np.log", # default: np.log10 + spec_gain=1.0, # default: 20 + signal_norm=False, # default: True + ), + "with_norm": BaseAudioConfig( + trim_db=60.0, # default: 45 + #mel_fmin=0.0, # default: 0 + mel_fmax=8000, # default: None + log_func="np.log10", # default: np.log10 + spec_gain=20, # default: 20 + signal_norm=True, # default: True + ), + } + audio_config = audio_configs[args.audio_config] + + # set characters config + characters_config = CharactersConfig( + characters_class="TTS.tts.models.vits.VitsCharacters", + pad="", + eos="", + bos="", + blank="", + #characters="!ยก'(),-.:;ยฟ?$%&โ€˜โ€™โ€šโ€œ`โ€โ€ž" + "".join(lang_chars), + characters="".join(lang_chars), + punctuations="!ยก'(),-.:;ยฟ? ", + phonemes=None + ) + + if args.lr_scheduler == 'NoamLR': + lr_scheduler_params = { + "warmup_steps": args.lr_scheduler_warmup_steps + } + elif args.lr_scheduler == 'StepLR': + lr_scheduler_params = { + "step_size": args.lr_scheduler_step_size, + "gamma": args.lr_scheduler_gamma + } + elif args.lr_scheduler == 'LinearLR': + lr_scheduler_params = { + "start_factor": args.lr_scheduler_gamma, + "total_iters": args.lr_scheduler_warmup_steps + } + elif args.lr_scheduler == 'CyclicLR': + lr_scheduler_params = { + "base_lr": args.lr * args.lr_scheduler_gamma, + "max_lr": args.lr, + "cycle_momentum": False + } + elif args.lr_scheduler in ['NoamLRStepConstant', 'NoamLRStepDecay'] : + lr_scheduler_params = { + "warmup_steps": args.lr_scheduler_warmup_steps, + "threshold_step": args.lr_scheduler_threshold_step + } + else: + raise NotImplementedError() + + if args.lr_scheduler_aligner == 'NoamLR': + lr_scheduler_aligner_params = { + "warmup_steps": args.lr_scheduler_warmup_steps + } + elif args.lr_scheduler_aligner == 'StepLR': + lr_scheduler_aligner_params = { + "step_size": args.lr_scheduler_step_size + } + elif args.lr_scheduler_aligner in ['NoamLRStepConstant', 'NoamLRStepDecay'] : + lr_scheduler_aligner_params = { + "warmup_steps": args.lr_scheduler_warmup_steps, + "threshold_step": args.lr_scheduler_threshold_step + } + else: + raise NotImplementedError() + + + # set base tts config + base_tts_config = Namespace( + # input representation + audio=audio_config, + use_phonemes=args.use_phonemes, + phoneme_language=args.phoneme_language, + compute_input_seq_cache=args.compute_input_seq_cache, + text_cleaner=args.text_cleaner, + phoneme_cache_path=os.path.join(args.output_path, "phoneme_cache"), + characters=characters_config, + add_blank=args.add_blank, + # dataset + datasets=[dataset_config], + min_audio_len=args.min_audio_len, + max_audio_len=args.max_audio_len, + min_text_len=args.min_text_len, + max_text_len=args.max_text_len, + # data loading + num_loader_workers=args.num_workers, + num_eval_loader_workers=args.num_workers_eval, + # model + use_d_vector_file=args.use_d_vector_file, + d_vector_file=args.d_vector_file, + d_vector_dim=args.d_vector_dim, + # trainer - run + output_path=args.output_path, + project_name='indic-tts-acoustic', + run_name=f'{args.language}_{args.model}_{args.dataset_name}_{args.speaker}_{args.run_description}', + run_description=args.run_description, + # trainer - loggging + print_step=args.print_step, + plot_step=args.plot_step, + dashboard_logger='wandb', + wandb_entity='indic-asr', + # trainer - checkpointing + save_step=args.save_step, + save_n_checkpoints=args.save_n_checkpoints, + save_best_after=args.save_best_after, + # trainer - eval + print_eval=args.print_eval, + run_eval=args.run_eval, + # trainer - test + test_delay_epochs=args.test_delay_epochs, + # trainer - distibuted training + distributed_url=f'tcp://localhost:{args.port}', + # trainer - training + mixed_precision=args.mixed_precision, + epochs=args.epochs, + batch_size=args.batch_size, + eval_batch_size=args.batch_size_eval, + batch_group_size=args.batch_group_size, + lr=args.lr, + lr_scheduler=args.lr_scheduler, + lr_scheduler_params = lr_scheduler_params, + # test + #test_sentences_file=f'test_sentences/{args.language}.txt', + test_sentences=get_test_sentences(args.language), + eval_split_size=args.eval_split_size, + ) + base_tts_config = vars(base_tts_config) + + # set model config + if args.model == 'glowtts': + config = GlowTTSConfig( + **base_tts_config, + use_speaker_embedding=args.use_speaker_embedding, + ) + elif args.model == "vits": + vitsArgs = VitsArgs( + use_speaker_embedding=args.use_speaker_embedding, + use_sdp=args.use_sdp, + use_speaker_encoder_as_loss=args.use_speaker_encoder_as_loss, + speaker_encoder_config_path=args.speaker_encoder_config_path, + speaker_encoder_model_path=args.speaker_encoder_model_path, + ) + config = VitsConfig( + **base_tts_config, + model_args=vitsArgs, + use_speaker_embedding=args.use_speaker_embedding, + ) + elif args.model == "fastpitch": + + if args.use_speaker_encoder_as_loss: + return_wav = True + compute_linear_spec = True + assert args.vocoder_path is not None + assert args.vocoder_config_path is not None + else: + return_wav = False + compute_linear_spec = False + args.vocoder_path = None + args.vocoder_config_path = None + + config = FastPitchConfig( + **base_tts_config, + model_args = ForwardTTSArgs( + use_aligner=args.use_aligner, + use_separate_optimizers=args.use_separate_optimizers, + hidden_channels=args.hidden_channels, + use_speaker_encoder_as_loss=args.use_speaker_encoder_as_loss, + speaker_encoder_config_path=args.speaker_encoder_config_path, + speaker_encoder_model_path=args.speaker_encoder_model_path, + vocoder_path=args.vocoder_path, + vocoder_config_path=args.vocoder_config_path + ), + use_speaker_embedding=args.use_speaker_embedding, + use_ssim_loss = args.use_ssim_loss, + compute_f0=True, + f0_cache_path=os.path.join(args.output_path, "f0_cache"), + sort_by_audio_len=True, + max_seq_len=500000, + return_wav= return_wav, + compute_linear_spec=compute_linear_spec, + aligner_epochs=args.aligner_epochs, + lr_scheduler_aligner=args.lr_scheduler_aligner, + lr_scheduler_aligner_params = lr_scheduler_aligner_params + ) + + if not config.model_args.use_aligner: + metafile = 'metadata.csv' + attention_mask_meta_save_path = f'{args.dataset_path}/{args.attention_mask_meta_file_name}' + if not args.use_pre_computed_alignments: + print("[START] Computing attention masks...") + compute_attention_masks(args.attention_mask_model_path, args.attention_mask_config_path, attention_mask_meta_save_path, args.dataset_path, metafile, args) + print("[END] Computing attention masks") + dataset_config.meta_file_attn_mask = attention_mask_meta_save_path + + elif args.model == "tacotron2": + config = Tacotron2Config( + **base_tts_config, + use_speaker_embedding=args.use_speaker_embedding, + ga_alpha=0.0, + decoder_loss_alpha=0.25, + postnet_loss_alpha=0.25, + postnet_diff_spec_alpha=0, + decoder_diff_spec_alpha=0, + decoder_ssim_alpha=0, + postnet_ssim_alpha=0, + r=2, + attention_type="dynamic_convolution", + double_decoder_consistency=False, + ) + elif args.model == "aligntts": + config = AlignTTSConfig( + **base_tts_config, + ) + + # set preprocessors + ap = AudioProcessor.init_from_config(config) + tokenizer, config = TTSTokenizer.init_from_config(config) + + # load data + train_samples, eval_samples = load_tts_samples( + dataset_config, + eval_split=True, + #eval_split_size=config.eval_split_size, + formatter=formatter_indictts + ) + train_samples = filter_speaker(train_samples, args.speaker) + eval_samples = filter_speaker(eval_samples, args.speaker) + print("Train Samples: ", len(train_samples)) + print("Eval Samples: ", len(eval_samples)) + + # set speaker manager + if args.use_speaker_embedding: + speaker_manager = SpeakerManager() + speaker_manager.set_ids_from_data(train_samples + eval_samples, parse_key="speaker_name") + elif args.use_d_vector_file: + speaker_manager = SpeakerManager( + d_vectors_file_path=args.d_vector_file, + encoder_model_path=args.speaker_encoder_model_path, + encoder_config_path=args.speaker_encoder_config_path, + use_cuda=True) + else: + speaker_manager = None + + + # load model + if args.model == 'glowtts': + model = GlowTTS(config, ap, tokenizer, speaker_manager=speaker_manager) + elif args.model == 'vits': + model = Vits(config, ap, tokenizer, speaker_manager=speaker_manager) + elif args.model == 'fastpitch': + model = ForwardTTS(config, ap, tokenizer, speaker_manager=speaker_manager) + elif args.model == 'tacotron2': + model = Tacotron2(config, ap, tokenizer, speaker_manager=speaker_manager) + elif args.model == 'aligntts': + model = AlignTTS(config, ap, tokenizer, speaker_manager=speaker_manager) + if args.speaker == 'all': + config.num_speakers = speaker_manager.num_speakers + if hasattr(config, 'model_args') and hasattr(config.model_args, 'num_speakers'): + config.model_args.num_speakers = speaker_manager.num_speakers + else: + config.num_speakers = 1 + if args.pretrained_checkpoint_path: + checkpoint_state = torch.load(args.pretrained_checkpoint_path)['model'] + print(" > Partial model initialization...") + model_dict = model.state_dict() + for k, v in checkpoint_state.items(): + if k not in model_dict: + print(" | > Layer missing in the model definition: {}".format(k)) + # 1. filter out unnecessary keys + pretrained_dict = {k: v for k, v in checkpoint_state.items() if k in model_dict} + # 2. filter out different size layers + pretrained_dict = {k: v for k, v in pretrained_dict.items() if v.numel() == model_dict[k].numel()} + # 3. overwrite entries in the existing state dict + model_dict.update(pretrained_dict) + model.load_state_dict(model_dict) + print(" | > {} / {} layers are restored.".format(len(pretrained_dict), len(model_dict))) + missed_keys = set(model_dict.keys())-set(pretrained_dict.keys()) + print(" | > Missed Keys:", missed_keys) + + # set trainer + trainer = Trainer( + TrainerArgs(continue_path=args.continue_path, restore_path=args.restore_path, use_ddp=args.use_ddp, rank=args.rank, group_id=args.group_id), + config, + args.output_path, + model=model, + train_samples=train_samples, + eval_samples=eval_samples + ) + + # run training + trainer.fit() + + +if __name__ == '__main__': + os.environ['CUDA_VISIBLE_DEVICES'] = '0' + + parser = get_arg_parser() + args = parser.parse_args() + + args.dataset_path = args.dataset_path.format(args.dataset_name ,args.language) + + if args.use_style_encoder: + assert args.use_speaker_embedding + + if not os.path.exists(args.output_path): + os.makedirs(args.output_path) + + main(args) diff --git a/Indic-TTS/models/v1/hi/fastpitch/best_model.pth b/Indic-TTS/models/v1/hi/fastpitch/best_model.pth new file mode 100644 index 0000000000000000000000000000000000000000..0b6724dd3b9fa0a1f7ff0b501fee274eb92eab94 --- /dev/null +++ b/Indic-TTS/models/v1/hi/fastpitch/best_model.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0f8f98e3d9eaf1cf842821087de31889df67635e77dd74e4a967fd5b3ada8cd +size 637455449 diff --git a/Indic-TTS/models/v1/hi/fastpitch/config.json b/Indic-TTS/models/v1/hi/fastpitch/config.json new file mode 100644 index 0000000000000000000000000000000000000000..db9b25510a09a69de8d87e0b6c90f6fd12fa142e --- /dev/null +++ b/Indic-TTS/models/v1/hi/fastpitch/config.json @@ -0,0 +1,215 @@ +{ + "output_path": "output_indic_fastpitch/hi", + "logger_uri": null, + "run_name": "hi_fastpitch_indictts_all_align_off", + "project_name": "indic-fastpitch-stage2", + "run_description": "align_off", + "print_step": 100, + "plot_step": 100, + "model_param_stats": false, + "wandb_entity": "indic-asr", + "dashboard_logger": "wandb", + "log_model_step": 10000, + "save_step": 10000, + "save_n_checkpoints": 1, + "save_checkpoints": true, + "save_all_best": false, + "save_best_after": 10000, + "target_loss": null, + "print_eval": false, + "test_delay_epochs": 0, + "run_eval": true, + "distributed_backend": "nccl", + "distributed_url": "tcp://localhost:54321", + "mixed_precision": true, + "epochs": 1000, + "batch_size": 32, + "eval_batch_size": 32, + "grad_clip": 5.0, + "scheduler_after_epoch": true, + "lr": 0.0001, + "optimizer": "Adam", + "optimizer_params": { + "betas": [ + 0.9, + 0.998 + ], + "weight_decay": 1e-06 + }, + "lr_scheduler": "NoamLR", + "lr_scheduler_params": { + "warmup_steps": 4000 + }, + "lr_scheduler_aligner": "NoamLR", + "lr_scheduler_aligner_params": { + "warmup_steps": 4000 + }, + "use_grad_scaler": false, + "cudnn_enable": true, + "cudnn_deterministic": false, + "cudnn_benchmark": false, + "training_seed": 54321, + "model": "fast_pitch", + "num_loader_workers": 0, + "num_eval_loader_workers": 0, + "use_noise_augment": false, + "audio": { + "fft_size": 1024, + "win_length": 1024, + "hop_length": 256, + "frame_shift_ms": null, + "frame_length_ms": null, + "stft_pad_mode": "reflect", + "sample_rate": 22050, + "resample": false, + "preemphasis": 0.0, + "ref_level_db": 20, + "do_sound_norm": false, + "log_func": "np.log", + "do_trim_silence": true, + "trim_db": 60.0, + "do_rms_norm": false, + "db_level": null, + "power": 1.5, + "griffin_lim_iters": 60, + "num_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": 8000, + "spec_gain": 1.0, + "do_amp_to_db_linear": true, + "do_amp_to_db_mel": true, + "pitch_fmax": 640.0, + "pitch_fmin": 0.0, + "signal_norm": false, + "min_level_db": -100, + "symmetric_norm": true, + "max_norm": 4.0, + "clip_norm": true, + "stats_path": null + }, + "use_phonemes": false, + "phonemizer": null, + "phoneme_language": "en-us", + "compute_input_seq_cache": false, + "text_cleaner": "multilingual_cleaners", + "enable_eos_bos_chars": false, + "test_sentences_file": "", + "phoneme_cache_path": "output_indic_fastpitch/hi/phoneme_cache", + "characters": { + "characters_class": "TTS.tts.models.vits.VitsCharacters", + "vocab_dict": null, + "pad": "", + "eos": "", + "bos": "", + "blank": "", + "characters": " !,-.28:;?\u00a0\u0901\u0902\u0903\u0905\u0906\u0907\u0908\u0909\u090a\u090b\u090f\u0910\u0911\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091a\u091b\u091c\u091d\u091e\u091f\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u092a\u092b\u092c\u092d\u092e\u092f\u0930\u0931\u0932\u0933\u0935\u0936\u0937\u0938\u0939\u093c\u093e\u093f\u0940\u0941\u0942\u0943\u0945\u0947\u0948\u0949\u094b\u094c\u094d\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u0960\u200d\u200e\u2013", + "punctuations": "!\u00a1'(),-.:;\u00bf? ", + "phonemes": null, + "is_unique": true, + "is_sorted": true + }, + "add_blank": false, + "batch_group_size": 0, + "loss_masking": null, + "sort_by_audio_len": true, + "min_audio_len": 1, + "max_audio_len": 441000, + "min_text_len": 1, + "max_text_len": 400, + "compute_f0": true, + "compute_linear_spec": false, + "precompute_num_workers": 0, + "start_by_longest": false, + "datasets": [ + { + "name": "indictts", + "path": "/home/ttsteam/datasets/indictts/hi", + "meta_file_train": "metadata_train.csv", + "ignored_speakers": null, + "language": "hi", + "meta_file_val": "metadata_test.csv", + "meta_file_attn_mask": "" + } + ], + "test_sentences": [ + "\u092c\u093f\u0939\u093e\u0930, \u0930\u093e\u091c\u0938\u094d\u0925\u093e\u0928 \u0914\u0930 \u0909\u0924\u094d\u0924\u0930 \u092a\u094d\u0930\u0926\u0947\u0936 \u0938\u0947 \u0932\u0947\u0915\u0930 \u0939\u0930\u093f\u092f\u093e\u0923\u093e, \u092e\u0927\u094d\u092f \u092a\u094d\u0930\u0926\u0947\u0936 \u090f\u0935\u0902 \u0909\u0924\u094d\u0924\u0930\u093e\u0916\u0902\u0921 \u092e\u0947\u0902 \u0938\u0947\u0928\u093e \u092e\u0947\u0902 \u092d\u0930\u094d\u0924\u0940 \u0938\u0947 \u091c\u0941\u0921\u093c\u0940 '\u0905\u0917\u094d\u0928\u093f\u092a\u0925 \u0938\u094d\u0915\u0940\u092e' \u0915\u093e \u0935\u093f\u0930\u094b\u0927 \u091c\u093e\u0930\u0940 \u0939\u0948.", + "\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0905\u0930\u092c \u0905\u092e\u0940\u0930\u093e\u0924 \u092f\u093e\u0928\u0940 \u092f\u0942\u090f\u0908 \u0928\u0947 \u092c\u0941\u0927\u0935\u093e\u0930 \u0915\u094b \u090f\u0915 \u092b\u093c\u0948\u0938\u0932\u093e \u0932\u093f\u092f\u093e \u0915\u093f \u0905\u0917\u0932\u0947 \u091a\u093e\u0930 \u092e\u0939\u0940\u0928\u094b\u0902 \u0924\u0915 \u0935\u094b \u092d\u093e\u0930\u0924 \u0938\u0947 \u0916\u093c\u0930\u0940\u0926\u093e \u0939\u0941\u0906 \u0917\u0947\u0939\u0942\u0901 \u0915\u094b \u0915\u093f\u0938\u0940 \u0914\u0930 \u0915\u094b \u0928\u0939\u0940\u0902 \u092c\u0947\u091a\u0947\u0917\u093e." + ], + "eval_split_max_size": null, + "eval_split_size": 0.01, + "use_speaker_weighted_sampler": false, + "speaker_weighted_sampler_alpha": 1.0, + "use_language_weighted_sampler": false, + "language_weighted_sampler_alpha": 1.0, + "use_length_weighted_sampler": false, + "length_weighted_sampler_alpha": 1.0, + "base_model": "forward_tts", + "model_args": { + "num_chars": 101, + "out_channels": 80, + "hidden_channels": 512, + "use_aligner": true, + "use_pitch": true, + "pitch_predictor_hidden_channels": 256, + "pitch_predictor_kernel_size": 3, + "pitch_predictor_dropout_p": 0.1, + "pitch_embedding_kernel_size": 3, + "duration_predictor_hidden_channels": 256, + "duration_predictor_kernel_size": 3, + "duration_predictor_dropout_p": 0.1, + "positional_encoding": true, + "poisitonal_encoding_use_scale": true, + "length_scale": 1, + "encoder_type": "fftransformer", + "encoder_params": { + "hidden_channels_ffn": 1024, + "num_heads": 1, + "num_layers": 6, + "dropout_p": 0.1 + }, + "decoder_type": "fftransformer", + "decoder_params": { + "hidden_channels_ffn": 1024, + "num_heads": 1, + "num_layers": 6, + "dropout_p": 0.1 + }, + "detach_duration_predictor": false, + "max_duration": 75, + "num_speakers": 2, + "use_speaker_embedding": true, + "speakers_file": "models/v1/hi/fastpitch/speakers.pth", + "use_d_vector_file": false, + "d_vector_dim": 512, + "d_vector_file": null, + "use_speaker_encoder_as_loss": false, + "speaker_encoder_config_path": "", + "speaker_encoder_model_path": "", + "vocoder_path": null, + "vocoder_config_path": null, + "use_separate_optimizers": false + }, + "return_wav": false, + "num_speakers": 2, + "speakers_file": "models/v1/hi/fastpitch/speakers.pth", + "use_speaker_embedding": true, + "use_d_vector_file": false, + "d_vector_file": "", + "d_vector_dim": 512, + "spec_loss_type": "mse", + "duration_loss_type": "mse", + "use_ssim_loss": false, + "ssim_loss_alpha": 1.0, + "spec_loss_alpha": 1.0, + "aligner_loss_alpha": 1.0, + "pitch_loss_alpha": 0.1, + "dur_loss_alpha": 0.1, + "binary_align_loss_alpha": 0.1, + "spk_encoder_loss_alpha": 0.1, + "binary_loss_warmup_epochs": 150, + "aligner_epochs": 0, + "min_seq_len": 13, + "max_seq_len": 500000, + "r": 1, + "f0_cache_path": "output_indic_fastpitch/hi/f0_cache" +} \ No newline at end of file diff --git a/Indic-TTS/models/v1/hi/fastpitch/speakers.pth b/Indic-TTS/models/v1/hi/fastpitch/speakers.pth new file mode 100644 index 0000000000000000000000000000000000000000..48fc86aa6d740a68f675990d99111a7e3513df10 --- /dev/null +++ b/Indic-TTS/models/v1/hi/fastpitch/speakers.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f665e358b34b232fb27f7c8cd3968fcd47784a7be065ae127f611c33ee809bea +size 431 diff --git a/Indic-TTS/models/v1/hi/hifigan/best_model.pth b/Indic-TTS/models/v1/hi/hifigan/best_model.pth new file mode 100644 index 0000000000000000000000000000000000000000..8e47da16934703c78414c55452d76d81a2e88d1f --- /dev/null +++ b/Indic-TTS/models/v1/hi/hifigan/best_model.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66c11563f376ba9ff247d873f0f26acb9886ba8db8f0db8c20e4ee4770b3cb46 +size 1016383548 diff --git a/Indic-TTS/models/v1/hi/hifigan/config.json b/Indic-TTS/models/v1/hi/hifigan/config.json new file mode 100644 index 0000000000000000000000000000000000000000..5b2e3b3c23177a32ebf9a35370d16174d2656fa3 --- /dev/null +++ b/Indic-TTS/models/v1/hi/hifigan/config.json @@ -0,0 +1,189 @@ +{ + "output_path": "indic_vocoders", + "logger_uri": null, + "run_name": "hi_hifigan_all", + "project_name": "indic-vocoders", + "run_description": "None", + "print_step": 100, + "plot_step": 100, + "model_param_stats": false, + "wandb_entity": "indic-asr", + "dashboard_logger": "wandb", + "log_model_step": null, + "save_step": 10000, + "save_n_checkpoints": 1, + "save_checkpoints": true, + "save_all_best": false, + "save_best_after": 10000, + "target_loss": "loss_1", + "print_eval": false, + "test_delay_epochs": 0, + "run_eval": true, + "distributed_backend": "nccl", + "distributed_url": "tcp://localhost:10007", + "mixed_precision": true, + "epochs": 5000, + "batch_size": 32, + "eval_batch_size": 32, + "grad_clip": [ + 5, + 5 + ], + "scheduler_after_epoch": true, + "lr": 0.0001, + "optimizer": "AdamW", + "optimizer_params": { + "betas": [ + 0.8, + 0.99 + ], + "weight_decay": 0.0 + }, + "lr_scheduler": null, + "lr_scheduler_params": null, + "use_grad_scaler": false, + "cudnn_enable": true, + "cudnn_deterministic": false, + "cudnn_benchmark": false, + "training_seed": 54321, + "model": "hifigan", + "num_loader_workers": 8, + "num_eval_loader_workers": 8, + "use_noise_augment": true, + "audio": { + "fft_size": 1024, + "win_length": 1024, + "hop_length": 256, + "frame_shift_ms": null, + "frame_length_ms": null, + "stft_pad_mode": "reflect", + "sample_rate": 22050, + "resample": false, + "preemphasis": 0.0, + "ref_level_db": 20, + "do_sound_norm": false, + "log_func": "np.log", + "do_trim_silence": true, + "trim_db": 60.0, + "do_rms_norm": false, + "db_level": null, + "power": 1.5, + "griffin_lim_iters": 60, + "num_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": 8000, + "spec_gain": 1.0, + "do_amp_to_db_linear": true, + "do_amp_to_db_mel": true, + "pitch_fmax": 640.0, + "pitch_fmin": 0.0, + "signal_norm": false, + "min_level_db": -100, + "symmetric_norm": true, + "max_norm": 4.0, + "clip_norm": true, + "stats_path": null + }, + "eval_split_size": 10, + "data_path": "../../datasets/indictts/hi", + "feature_path": null, + "seq_len": 8192, + "pad_short": 2000, + "conv_pad": 0, + "use_cache": false, + "wd": 1e-06, + "use_stft_loss": false, + "use_subband_stft_loss": false, + "use_mse_gan_loss": true, + "use_hinge_gan_loss": false, + "use_feat_match_loss": true, + "use_l1_spec_loss": true, + "stft_loss_weight": 0, + "subband_stft_loss_weight": 0, + "mse_G_loss_weight": 1, + "hinge_G_loss_weight": 0, + "feat_match_loss_weight": 108, + "l1_spec_loss_weight": 45, + "stft_loss_params": { + "n_ffts": [ + 1024, + 2048, + 512 + ], + "hop_lengths": [ + 120, + 240, + 50 + ], + "win_lengths": [ + 600, + 1200, + 240 + ] + }, + "l1_spec_loss_params": { + "use_mel": true, + "sample_rate": 22050, + "n_fft": 1024, + "hop_length": 256, + "win_length": 1024, + "n_mels": 80, + "mel_fmin": 0.0, + "mel_fmax": null + }, + "lr_gen": 0.0001, + "lr_disc": 0.0001, + "lr_scheduler_gen": "ExponentialLR", + "lr_scheduler_gen_params": { + "gamma": 0.999, + "last_epoch": -1 + }, + "lr_scheduler_disc": "ExponentialLR", + "lr_scheduler_disc_params": { + "gamma": 0.999, + "last_epoch": -1 + }, + "use_pqmf": false, + "diff_samples_for_G_and_D": false, + "discriminator_model": "hifigan_discriminator", + "generator_model": "hifigan_generator", + "generator_model_params": { + "upsample_factors": [ + 8, + 8, + 2, + 2 + ], + "upsample_kernel_sizes": [ + 16, + 16, + 4, + 4 + ], + "upsample_initial_channel": 512, + "resblock_kernel_sizes": [ + 3, + 7, + 11 + ], + "resblock_dilation_sizes": [ + [ + 1, + 3, + 5 + ], + [ + 1, + 3, + 5 + ], + [ + 1, + 3, + 5 + ] + ], + "resblock_type": "1" + }, + "github_branch": "* main" +} \ No newline at end of file diff --git a/Indic-TTS/preprocessing/AnalyzeDataset-IndicTTS.ipynb b/Indic-TTS/preprocessing/AnalyzeDataset-IndicTTS.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..4d66074ab66ec72fc2c78f4e1550ca70830c3ca7 --- /dev/null +++ b/Indic-TTS/preprocessing/AnalyzeDataset-IndicTTS.ipynb @@ -0,0 +1,960 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "import librosa\n", + "import numpy as np\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "from scipy.stats import norm\n", + "from tqdm import tqdm_notebook as tqdm\n", + "from multiprocessing import Pool\n", + "from matplotlib import pylab as plt\n", + "from collections import Counter\n", + "from TTS.config.shared_configs import BaseDatasetConfig\n", + "from TTS.tts.datasets import load_tts_samples\n", + "from TTS.tts.datasets.formatters import *\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "NUM_PROC = 8\n", + "DATASET_CONFIG = BaseDatasetConfig(\n", + " name=\"ai4b\", meta_file_train=\"metadata.csv\", path=\"/home/gokulkarthikk/datasets/indictts/ta\",\n", + " language='ta'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def formatter_ai4b(root_path, meta_file, **kwargs): # pylint: disable=unused-argument\n", + " txt_file = os.path.join(root_path, meta_file)\n", + " items = []\n", + " with open(txt_file, \"r\", encoding=\"utf-8\") as ttf:\n", + " for line in ttf:\n", + " cols = line.split(\"|\")\n", + " wav_file = os.path.join(root_path, \"wavs\", cols[0] + \".wav\")\n", + " text = cols[1].strip()\n", + " speaker_name = cols[2].strip()\n", + " items.append({\"text\": text, \"audio_file\": wav_file, \"speaker_name\": speaker_name})\n", + " return items" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " | > Found 6960 files in /home/gokulkarthikk/datasets/indictts/ta\n", + " > Number of audio files: 6960\n", + "{'text': 'เฎŠเฎฐเฏเฎตเฎฒเฎคเฏเฎคเฎฟเฎฉเฏ เฎฎเฏเฎฉเฏเฎฉเฎฃเฎฟเฎฏเฎฟเฎฒเฏ เฎ’เฎฐเฏ เฎฏเฎพเฎฉเฏˆ เฎคเฎฉเฏ เฎคเฏเฎฎเฏเฎชเฎฟเฎ•เฏเฎ•เฏˆเฎฏเฎฟเฎฒเฏ เฎฎเฎพเฎฒเฏˆ เฎเฎจเฏเฎคเฎฟ เฎจเฎŸเฎจเฏเฎคเฏ เฎตเฎจเฏเฎคเฏ เฎ•เฏŠเฎฃเฏเฎŸเฎฟเฎฐเฏเฎจเฏเฎคเฎคเฏ.', 'audio_file': '/home/gokulkarthikk/datasets/indictts/ta/wavs/train_tamilmale_02356.wav', 'speaker_name': 'male', 'language': 'ta'}\n" + ] + } + ], + "source": [ + "# use your own preprocessor at this stage - TTS/datasets/proprocess.py\n", + "train_samples, eval_samples = load_tts_samples(DATASET_CONFIG, eval_split=True, formatter=formatter_ai4b)\n", + "items = train_samples + eval_samples\n", + "print(\" > Number of audio files: {}\".format(len(items)))\n", + "print(items[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6891 69\n" + ] + } + ], + "source": [ + "print(len(train_samples), len(eval_samples))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# check wavs if exist\n", + "wav_files = []\n", + "for item in items:\n", + " wav_file = item['audio_file'].strip()\n", + " wav_files.append(wav_file)\n", + " if not os.path.exists(wav_file):\n", + " print(wav_file)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n" + ] + } + ], + "source": [ + "# show duplicate items\n", + "c = Counter(wav_files)\n", + "print([item for item, count in c.items() if count > 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'text': 'เฎšเฏเฎจเฏเฎคเฎฐ เฎšเฏ‹เฎดเฎฐเฏเฎ•เฏเฎ•เฏ เฎฎเฏเฎฉเฏเฎฉเฎพเฎฒเฏ, เฎ…เฎฐเฎšเฏ เฎชเฏเฎฐเฎฟเฎจเฏเฎค เฎ•เฎฃเฏเฎŸเฎฐเฎพเฎคเฎฟเฎคเฏเฎคเฎฐเฏ, เฎšเฎฟเฎตเฎชเฎ•เฏเฎคเฎฟเฎฏเฎฟเฎฒเฏ เฎคเฎฟเฎณเฏˆเฎคเฏเฎคเฏ, เฎšเฎฟเฎตเฎžเฎพเฎฉ เฎ•เฎฃเฏเฎŸเฎฐเฎพเฎคเฎฟเฎคเฏเฎคเฎฐเฏ เฎŽเฎฉเฏเฎฑเฏ เฎชเฏเฎ•เฎดเฏ เฎชเฏ†เฎฑเฏเฎฑเฎตเฎฐเฏ.',\n", + " 'audio_file': '/home/gokulkarthikk/datasets/indictts/ta/wavs/train_tamilfemale_01045.wav',\n", + " 'speaker_name': 'female',\n", + " 'language': 'ta'}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "item" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 6960/6960 [02:58<00:00, 39.04it/s]\n" + ] + } + ], + "source": [ + "def load_item(item):\n", + " text = item['text'].strip()\n", + " file_name = item['audio_file'].strip()\n", + " audio, sr = librosa.load(file_name, sr=None)\n", + " audio_len = len(audio) / sr\n", + " text_len = len(text)\n", + " return file_name, text, text_len, audio, audio_len\n", + "\n", + "# This will take a while depending on size of dataset\n", + "if NUM_PROC == 1:\n", + " data = []\n", + " for m in tqdm(items):\n", + " data += [load_item(m)]\n", + "else:\n", + " with Pool(8) as p:\n", + " data = list(tqdm(p.imap(load_item, items), total=len(items)))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('/home/gokulkarthikk/datasets/indictts/ta/wavs/train_tamilmale_03163.wav',\n", + " 'เฎชเฎฟเฎฒเฏเฎฒเฎฟเฎฏเฎฉเฏ เฎฎเฎ•เฏเฎ•เฎณเฏˆ เฎคเฎฉเฏเฎฉเฎ•เฎคเฏเฎคเฏ‡ เฎ•เฏŠเฎฃเฏเฎŸ เฎšเฎพเฎคเฎฟเฎฏ เฎšเฎฎเฏเฎคเฎพเฎฏ เฎ…เฎฎเฏˆเฎชเฏเฎชเฏเฎ•เฎณเฎฟเฎฉเฏ เฎฎเฎฐเฏเฎชเฎฃเฏ เฎ‡เฎฏเฎฑเฏเฎ•เฏˆเฎฏเฏˆ เฎ…เฎฑเฎฟเฎฏ เฎฎเฎพเฎคเฎฟเฎฐเฎฟเฎ•เฎณเฏˆเฎ•เฏ เฎ•เฏŠเฎฃเฏเฎŸ เฎ’เฎฐเฏ เฎ†เฎฏเฏเฎตเฏ เฎŽเฎตเฏเฎตเฎณเฎตเฏ เฎ‰เฎคเฎต เฎฎเฏเฎŸเฎฟเฎฏเฏเฎฎเฏ เฎšเฎฟเฎฒ เฎšเฎพเฎคเฎฟ เฎชเฎฟเฎฐเฎฟเฎตเฏเฎ•เฎณเฎฟเฎฉเฏ เฎฎเฎพเฎคเฎฟเฎฐเฎฟ เฎ…เฎณเฎตเฏ เฎตเฏ†เฎฑเฏเฎฎเฏ เฎ‡เฎจเฏเฎคเฎฟเฎฏ เฎชเฏเฎณเฏเฎณเฎฟเฎฏเฎฟเฎฏเฎฒเฏ เฎจเฎฟเฎฑเฏเฎตเฎฉเฎคเฏเฎคเฏˆเฎšเฏ เฎšเฎพเฎฐเฏเฎจเฏเฎค เฎฎเฎœเฏเฎฎเฏเฎคเฎพเฎฐเฏ เฎ‡เฎตเฏเฎตเฎพเฎฐเฎพเฎฏเฏเฎตเฎฟเฎฉเฏ เฎ‡เฎคเฏเฎคเฎ•เฏˆเฎฏ เฎชเฎฒ เฎคเฎตเฎฑเฎพเฎฉ เฎชเฏ‹เฎ•เฏเฎ•เฏเฎ•เฎณเฏˆ เฎšเฏเฎŸเฏเฎŸเฎฟเฎ•เฏเฎ•เฎพเฎŸเฏเฎŸเฎฟเฎฏเฏเฎณเฏเฎณเฎพเฎฐเฏ.',\n", + " 283,\n", + " array([-3.0517578e-05, 0.0000000e+00, 0.0000000e+00, ...,\n", + " 0.0000000e+00, 6.1035156e-05, -1.2207031e-04], dtype=float32),\n", + " 20.5855625)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20.590784531250023\n" + ] + } + ], + "source": [ + "durs = [item[-1] for item in data]\n", + "print(sum(durs)/(60*60))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 6960/6960 [00:00<00:00, 171093.74it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " > Number of words: 37080\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# count words in the dataset\n", + "w_count = Counter()\n", + "for item in tqdm(data):\n", + " text = item[1].lower().strip()\n", + " for word in text.split():\n", + " w_count[word] += 1\n", + "print(\" > Number of words: {}\".format(len(w_count)))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 6960/6960 [00:00<00:00, 613800.59it/s]\n" + ] + } + ], + "source": [ + "text_vs_durs = {} # text length vs audio duration\n", + "text_len_counter = Counter() # number of sentences with the keyed length\n", + "for item in tqdm(data):\n", + " text = item[1].lower().strip()\n", + " text_len = len(text)\n", + " text_len_counter[text_len] += 1\n", + " audio_len = item[-1]\n", + " try:\n", + " text_vs_durs[text_len] += [audio_len]\n", + " except:\n", + " text_vs_durs[text_len] = [audio_len]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "# text_len vs avg_audio_len, median_audio_len, std_audio_len\n", + "text_vs_avg = {}\n", + "text_vs_median = {}\n", + "text_vs_std = {}\n", + "for key, durs in text_vs_durs.items():\n", + " text_vs_avg[key] = np.mean(durs)\n", + " text_vs_median[key] = np.median(durs)\n", + " text_vs_std[key] = np.std(durs)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### Avg audio length per char" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "for item in data:\n", + " if item[-1] <= 1:\n", + " print(item)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "sec_per_chars = []\n", + "for item in data:\n", + " text = item[1]\n", + " dur = item[-1]\n", + " sec_per_char = dur / len(text)\n", + " sec_per_chars.append(sec_per_char)\n", + "# sec_per_char /= len(data)\n", + "# print(sec_per_char)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.08241033481853367\n", + "0.011320645779761917\n" + ] + } + ], + "source": [ + "mean = np.mean(sec_per_chars)\n", + "std = np.std(sec_per_chars)\n", + "print(mean)\n", + "print(std)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "dist = norm(mean, std)\n", + "\n", + "# find irregular instances long or short voice durations\n", + "for item in data:\n", + " text = item[1]\n", + " dur = item[-1]\n", + " sec_per_char = dur / len(text)\n", + " pdf =norm.pdf(sec_per_char)\n", + " if pdf < 0.39:\n", + " #print(item)\n", + " pass" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### Plot Dataset Statistics" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEICAYAAABLdt/UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de5hcdZ3n8fe3O0XoBKQDZJikoQ1eNqyKJNKDuHEcLioICFlALgszccTJM7NzEdRomGEFZpklTlRwnnV14pURhCCXBlEnwxJ4ZmUEJ7ETQoQM1wBFQqLQKKRjOsl3/zinOtXVdapOVZ1Tdar683qefroup8/5dnX19/zq+/ud38/cHRER6RxdrQ5ARESSpcQuItJhlNhFRDqMEruISIdRYhcR6TBK7CIiHUaJvcOY2Qlm9kKLjn2Vmd3YimN3MjObY2ZuZlPC+z82s0UJ7dvN7C1J7Cvm8RKLXaIpsTeBmT1rZu/P2r4ajKNlJ5DJzt0/5O43tDqOasqd6Nsl9nanxC4iNSt8epBsUmJPmZl9F+gHfmBmr5nZZ8LHjzezfzOzYTNbb2YnhI//FzP7pZkdEd4/xsxeMbOjovZV5fizzex2M9tuZs+Y2V8VPXeVmd1qZv9kZr8xs41mNlD0/LvMbCh87vtmttLMrjGz6cCPgdlhHK+Z2ezwx/aL2l9JXF81sy+UPHaXmX0yvP1ZM8uH+9lkZidH7Oc7ZvZ/wo/4r5nZg2b2u2Z2ffi6PW5m82O+HseZ2U/Dv8kWM/vfZrZf0fNuZn9qZk+E23zFzCwirsh9lZZWwsceMLOPh7e7zewL4fvgaeD0kn0Xb9tlZleY2WYz2xa+9geViyncfkkYz4tm9rGo/Yb3P2pmPyn5/f/czJ4Anggf+7KZPW9mvzaztWb2++HjpwJ/DZwf/l3W1xJ70Wu0yMyeC1+Lv4n6vaSEu+sr5S/gWeD9Rff7gF8BpxGcXD8Q3p8ZPv93wGqgB9gA/EXUvsoc6wTghfB2F7AW+BywH/Am4GnglPD5q4CdYRzdwLXAQ+Fz+wGbgU8AOeBsYBdwTelxio4dub8ycb4PeB6w8P4MYASYDcwNn5sdPjcHeHPEfr4D/BI4Ftg/fN2eAf4ojOEa4P6Yr8exwPHAlPCYjwGXFh3LgXuAXoIT7Hbg1Ii4IvcV3ndgStH2DwAfD2//KfA4cARwMHB/8fYl234MeDL8XQ4A7gC+GxHTqcBLwDuA6cD3wv2+pXS/4f2PAj8p+f3vDWPqCR+7GDgk/D0/BWwF9i96P9xYEkOs2Iteo68T/B8cA/wW+M+t/n9uhy+12FvjYuBH7v4jd9/r7vcCawgSIgT/EAcBPwPywFfqPM7vEZws/tbdd7n70wT/KBcUbfOTMI49wHcJ/oFgX1L6B3cfdfc7wniqidpfqf9H8I/7++H9c4GfuvuLwB5gKvA2M8u5+7Pu/lSFY97p7mvdfSdwJ7DT3f8pjGElUGixV3w9wn085O673f1Z4B+BPyg51jJ3H3b35wgS7rxyAcXcV5TzgOvd/Xl3f5ngBBnlIuBL7v60u78GXA5cYOVLJecB33b3R939dYL3Wa2udfeX3X0EwN1vdPdfhb/nFwn+bnNj7itO7Fe7+4i7rwfWE/1+kiJK7K3xRuAj4cf0YTMbBt4LzAJw91GClug7gC962ISp8zizS47z18BhRdtsLbq9A9g//MeaDeRLjv18jGNG7W+ccL+3ABeGD/034KbwuSeBSwkSzzYzu6Wo1FPOS0W3R8rcPyC8XfH1MLP/ZGb3mNlWM/s18L+AQ6v8fgdQRsx9RZnN+Nd6c5Vti5/fTHBCPixi27j7jTLuPWBmnzazx8zs1fD1PIjafs9qscd6vWU8JfbmKE3MzxN85Owt+pru7ssAzKwPuBL4NvBFM5taYV+VPA88U3KcA939tKo/CVuAvpIa8hF1xhHlZuBcM3sj8G7g9rGdu3/P3d9LkIwd+HwCx6v2enyVoATyVnd/A0HSL1tDj6HSvl4Pv08r2v53i25vYfxr3V/hOC8SvEbF2+5m/Mkt7n5frxBTwdjfPaynf4bgk8AMd+8FXmXf71ntPVJL7FIDJfbmeImgjlhwI/BhMzsl7Cjb34Lhg4eHifQ7wDeBSwj+Gf9nhX1V8jPgNxZ0RPaEx3qHmf1ejJ/9KUFJ5C/MbIqZnQUcVxLHIZU66qpx9yGC+vg3gFXuPgxgZnPN7KTwhLaToNW9t97jFKn2ehwI/Bp4zcyOAv6sgWNF7svdtxOU2C4OY/gY8Oain70V+Kvw/TADWFrhODcDl5nZkWZ2AMEng5XuvrvMtrcCHzWzt5nZNILGQ7F1wNlmNs2Cse2XxPgddxP0NUwxs88Bbyh6/iVgjplF5ZlaYpcaKLE3x7XAFeHH/0+7+/PAWQStuO0ELcklBH+PvwJ+B/gfYbnij4E/Low2KN1XpYOGNeYzCOrAz7AviVZNxu6+i6DD9BJgmKBf4B6CDizc/XGCf8ynw1gqlUoq+R7w/vB7wVRgWRjvVoLX4/I69z8mxuvxaYKS0G8Iau8rGzhctX39CcHf/FfA24F/K3ru68Aqgpryzwk6FaN8i6Av418JfqedwF+W29DdfwxcT9DB/GT4vdh1BB3kLwE3EJbGKlgF/DPwHwRllJ2ML9V8P/z+KzP7eSOxS20KIxJEqjKzh4Gvufu3Wx2LiERTi10imdkfWDAmfIoFl4G/k6CFJiIZpqvHpJK5BHXZ6QTjvc919y2tDUlEqlEpRkSkw6gUIyLSYZpaijn00EN9zpw5zTykiEjbW7t27S/dfWbc7Zua2OfMmcOaNWuaeUgRkbZnZjVdJaxSjIhIh1FiFxHpMErsIiIdRoldRKTDKLGLiHQYXXkqIgIMDuVZvmoTLw6PMLu3hyWnzGXh/L5Wh1UXJXYRmfQGh/JcfscGRkb3AJAfHuHyOzYAtGVyVylGRCa95as2jSX1gpHRPSxftalFETVGiV1EJr0Xh0dqejzrYiV2M+s1s9vM7PFwfcP3mNnBZnavmT0Rfp+RdrAiImmY3dtT0+NZF7fF/mXgn939KIJVwh8jWK7rPnd/K3AflZfvEhHJrCWnzKUn1z3usZ5cN0tOmduiiBpTNbGHa1q+j2ANTtx9V7g25VkEy2cRfl+YVpAiImlaOL+Pa88+mr7eHgzo6+3h2rOPbsuOU4gxH7uZzQNWAL8gaK2vBT4B5MNVyQkXYH6lcL/k5xcDiwH6+/uP3by5prlsREQmPTNb6+4DcbePU4qZArwL+Kq7zwdep6TsEi66XPYM4e4r3H3A3Qdmzow966SIiNQpTmJ/AXjB3R8O799GkOhfMrNZAOH3bemEKCIitaia2N19K/C8mRV6EU4mKMvcDSwKH1sE3JVKhCIiUpO4V57+JXCTme1HsKjxHxOcFG41s0uAzcB56YQoItJc7T69QKzE7u7rgHKF+5OTDUdEpLU6YXoBzRUjIlKk0vQCtSb2VrX8ldhFRIokNb1AK1v+mitGRKRIUtMLtHJiMSV2EZEiSU0v0MqJxZTYRUSKJDW9QCsnFlONXUSkxML5fbESeaXO0SWnzB1XY4fmTSymxC4iUodqnaOFBK9RMSIiMbX6IqI4wyLjtvyTpsQuIm0nCxcRZXnVJXWeikjbycIapVledUmJXUTaThZay1ledUmlGBGpW6vq3LN7e8iXSeLNbC23snO0GiV2EalLM+vcpSeQE4+aye1r8y0ZSlisVZ2j1agUIyJ1aVadu3ACyQ+P4AQnkNvX5jnn2L6OWaM0aWqxi0hdmlXnjjqB3P/4dh5celKix+oUarGLSF2aNSokCx2l7UaJXUTq0qxRIVkeVphVSuwiUpekJsuqJsvDCrNKNXYRqVszRoVkeVhhVimxi0jmZXVYYVapFCMi0mGU2EVEOoxKMSLS9lo9hW/WKLGLSFvLwhS+WROrFGNmz5rZBjNbZ2ZrwscONrN7zeyJ8PuMdEMVEZkoC1P4Zk0tNfYT3X2euw+E95cC97n7W4H7wvsiEtPgUJ4Fy1Zz5NIfsmDZagaH8q0OqS3pytSJGinFnAWcEN6+AXgA+GyD8YhMCiof1K+0nt47LccrO0YnbDeZr0yNm9gd+Bczc+Af3X0FcJi7bwmf3wocVu4HzWwxsBigv7+/wXBFOkOc9TLrlUZHYlY6J8udEHNdRq7bGN3jY9tN9itT4yb297p73sx+B7jXzB4vftLdPUz6E4QngRUAAwMDZbcRmWzSKh+k8UkgS58uyp0QR/c6vT05pk+d0vITT1bESuzung+/bzOzO4HjgJfMbJa7bzGzWcC2FOMU6ShprQCUxieBND9d1CrqxPfqyCjrrvxgU2PJsqqdp2Y23cwOLNwGPgg8CtwNLAo3WwTclVaQIp0mrYmt0vgkkKXOSc30GE+cFvthwJ1mVtj+e+7+z2b278CtZnYJsBk4L70wRTpLoxNbRdW8k/okULz/LjP2+MQqaiuS6ZJT5o4rC4Hq6eVUTezu/jRwTJnHfwWcnEZQIpNBvRNbVap5J5H4SvdfLqk3I5lW6rDNQkdulunKU5E2U6nmXVgqrpHEV27/AN1m7HVvSjKt1mGrRF6ZErtIm6lW82408UXtf687zyw7ve79VlLaOt+xa3dmOmzbkWZ3FGkzaXcgNruDstA6zw+P4ASt83IXHMHkvpq0FkrsIm2m3IgaA048amZq+0+zph5V+ilHo1/iUWIXaTML5/dxzrF9WNFjDty+Np/IfDPNWsu0IG4rXKNf4lONXaQN3f/4dkrHqiRZg25mB2XUEE1dTVo/JXaRNpSli4YaFTVE86oz365EXicldpE2VMuFSFmZwCuKxqYnT4ldpA3FvRDpisEN3PTQc2Nlm6xOD6yx6clSYhdJUVqt5Tit3MGh/LikXtBoLT7rnwBEiV0kNWlPd1utlbt81aYJSb2g3lp8lqbwlWga7iiSgsGhPJ+6dX3ia3HWspxepeRd73hwrS/aHpTYRRJWaNWWmzwLGm8tF1+hefkdGyKTe1TyNqh7PHgnjcbpZErsIgmrdiVls1rLUVeoXnR8f91lE82H3h6U2CUzaikzZFml1muuy9ixa3ddv2PUfvPDI5H7mzpl37/4jGk5rjt/HtcsPDr2MUs1e7oBqY86TyUTOqlTLmqMuRlgjE1wVe53rDTiJGq/wLjSTEHpcMido3tjxV8pBo05bw/mEXXANAwMDPiaNWuadjxpHwuWrS6btPp6e8bmGG8XpScpCFq1U6d0MTwycdbCwu8Y9XOFeVrKPV9Od8SKR8XHqjX2NOeKkerMbK27D8TdXqUYyYRO6pSLmkTr1TJJHfb9jtVq6KX7jRKV1IuPFUWjXjqDErtkQqd1yi2c38eDS0/iuvPnAXDZynV0Wfl0XPgd45zcCvt9Ztnp9NXx2lR7PTvpBDuZKbFLJnRip1zp8MRqa4dGJd0us7Kdo+Ves0rivJ6ddoKdrJTYJROaPQd4M1RaO7TwO55zbB/LV23iyKU/ZMeu3eS6Jrbq97iXHbdebl72SopHyETpxBPsZKRRMZIZnTYRVLW1Q0s7Kl/ZMUp3mcRerHSel3LzskcZHhmtOtIojVEvmlum+ZTYRVJSbWrdci36PXurp+n88MhYsowa/hglzgRgSZ5gO2kYaztRKUYkJdXKGo10SC75/vqak3pBMztCNcqmNWK32M2sG1gD5N39DDM7ErgFOARYC/yhu+9KJ0yR9lOtrFHpgqNqRiu07I3ggqWo8ezVOkKTLJ1olE1r1FKK+QTwGPCG8P7ngevc/RYz+xpwCfDVhOMTaWvlyhrFZZRCEi7IdRt45cRdSV9RIo662KhSR2jSpZNaVnqS5MQqxZjZ4cDpwDfC+wacBNwWbnIDsDCNAEU6SfEQSAiSeqG7tK+3h+XnHsPyjxwzNjqoO2LsezmFq0qLL/+vdaRR3NJJ3Hl9NMqmNeK22K8HPgMcGN4/BBh2993h/ReAsu8WM1sMLAbo7++vP1KRjKmnZFEucToTL/UvnjumtNVdrlUflSxr7QiNUzqppVWvuWVao2piN7MzgG3uvtbMTqj1AO6+AlgBwVwxNUcokkH1lixqrTlHJcaoxxYsW91QAo1TOqnUqi93vE4bxtoO4rTYFwBnmtlpwP4ENfYvA71mNiVstR8OtOccqyJ1qDW5FdRTc45KjKXrmyZRG4+zSLY6RLOvao3d3S9398PdfQ5wAbDa3S8C7gfODTdbBNyVWpQiGVNvckur5tzosMJCzfyyleuYOqWLGdNykXV5TTuQfY2MY/8s8Ekze5Kg5v7NZEISyb56k1taUyc00ooundNmeGSUnaN7ue78eeM6YwvUIZp9NV156u4PAA+Et58Gjks+JJF4WnmpepySRZQ0as6NDCusp2Ze+Dl1iGaTphSQttTqS9WzltwaOdHU09pXh2i2KbFLW6q387IRpZ8Q5hzSw9ZXd+LA1ld3smbzy1WPndanjNITzUE9OcyCeeCXr9pU8Ti6iKjzKLFLW6rUykwjeZb7hFCcDPe4c+NDzwFELhad9qeMQiu61uM00tqXbNIkYNKWolqTB/XkxnUEls5hXq+oudVL3fzw8zXtI40JsWo9TifOhT/ZqcUubSmqlWlGKiWauGO097gzOJQve6xmjf9WzVyU2KUtRXVeXrZyXdntC3OY15u8apmJ8dKV6/jrOx5haq6b4R2jY7E1q5Yd5zha/KKzKbFL2yrXyqy0+ES5OnO1BFdpJsZKdozuZcfoXmBfOeicY/u4fW0+9Vp2tZp5q0cUSfrMy8zXnJaBgQFfs2ZN044nk0+5SbOKFU+2FbVtb0+OM46ZxT3rtzA8Mhq5nzmH9PDgUy/XFN+MaTnc4dWRoCV/4lEzuf/x7Ym3nCudsBYsW1325Fc6EZlkh5mtdfeBuNurxS4doTiR9U7LRSb24jpzVIfo8Mjo2AiXKIVRMV0GtUyd/sqOUXpy3Vx3/jyA1FrOlWrmmuul8ymxS9srtyh0lOI6cxKJrJ71MIpHqDR7LD5o3PpkoOGO0vbiDkU0GFfPTjKRxV8OI/Di8EjLWs6a66XzKbFL24ubCJ3xJY5yCa4R158/b2ws+LRcF5UWP5rd29OyWRI1br3zqRQjbS/uUMS+koRZSGRX/2BjxfJN3BhKr/yMGpdQ3Dpu1RWfGrfe2ZTYpe2Ujvg48aiZE4YRlqq2dNzgUJ6r7t5YdhRMT66L/XPdkck/123j9l2pNNRXZuSLxpNL0pTYpa2UG4N9+9o85xzbN27YYJxhhKUniKvOfDtQOdGWngBmTMtx5YffPm6bqNKQwYThhGo5SxqU2KWtRM2Dcv/j22sagx11kc61Zx9dcT9xErFGnUirqfNU2kqtI0kKS74dufSHLFi2emwysKgTxKUr143brh4adSKtpha7tJVaWsOVLp2vNJImPzzCZSvXsWbzy5FT8FaStUU4ZPLRlAKSWeUui4fyI0muPTtIwMXb79i1u2yHZ29Pjt/s3M2eGO/968+fV3dC1kRbkpRapxRQYpdMKjePS1QCj0r4SSh0jpY7XrVO1qj4ldylVkrs0hFqnagqavsk9OS6xyXoXJeBweie8f87xSNkNNGWJEmTgElHiKqB54dHWLBs9YSWcpqX4Zd+ChiNmCDmlR2jXH7HBtZsfjnyJJNUnCrzSCVK7JJJUZ2kBmOPF3eGRm5vcND+ubFpcqPq7kkZGd3DTRVmhkxiyKPmU5dqNNxRMqnckMFyC10UZkOMmvfFHX67ey/XnT+vacMNo4qbSQ15bNbaqdK+qrbYzWx/4F+BqeH2t7n7lWZ2JHALcAiwFvhDd9+VZrAyeZQbMhhV3igMT+ydlmPn7j0T5mgZGd3D5Xc8Alhinau5bptQY68mqY5Tzacu1cRpsf8WOMndjwHmAaea2fHA54Hr3P0twCvAJemFKZPRwvl9PLj0JJ5ZdjoPLj1pwiRexZygxh01FmBkdG9iSb23J8fyc4+htyc34bmoCR37wknCktCqWSGlfVRN7B54LbybC78cOAm4LXz8BmBhKhGKhJKeZrceBlx1ZjDyZd2VHxw3VW9fbw8XHd+f+lWnurJVqonVeWpm3QTllrcAXwGeAobdfXe4yQtA2eaImS0GFgP09/c3Gq9MMoND+XHT6uZa3CvUk+vispXrxur65eaOGXjjwamOWNGVrVJNrMTu7nuAeWbWC9wJHBX3AO6+AlgBwTj2eoKUyemKwQ0T1h4d3duaWGZMy/Hazt3sCANo9UgUzQopldTU/nH3YeB+4D1Ar5kVTgyHA/XPmiRSZHAoz7yr/6XqgtJJ6sl1M2PaxJo5BCWWaftNmTB+vdxIlMJQxPzwCM6+E0Ajk4qJ1KpqYjezmWFLHTPrAT4APEaQ4M8NN1sE3JVWkDJ5FBJjuQUv0tLbk+Pas4/m9HfOmtD5WahdxxmJMjiU51O3rtdQRGm5OKWYWcANYZ29C7jV3e8xs18At5jZNcAQ8M0U45QOVXoF5eu/3Z34fC9RilczGhzKc/va/Lgx6Aacc2xQ8li+alPFWSULJ6SoicU0FFGaqWpid/dHgPllHn8aOC6NoGRyKHcFZauUu+jHgfsf3w4EI1EqrU9aaTk80FBEaS5NKSBNUW5uk2rJMG1x5mfPD4+M1cf3z3WNxdvbkxsb9ljp50FDEaX5lNgldVFzm7QyqRcU6t+Vrmxdctt68PGTf/129/jhOVE/322mqXql6TRXjKQuam6Tbou6TjOexn56nxeHRype/DS6x6uOiIm6aOiL5x2jpC5Np8QuqYsqU8RZwahUIZkXrvKsltxnTMuNXR0aZXZ4uX9hEY+4in+vws8XX4Wqlrq0ikoxkrpKZY5aHdST44xjZnHP+i2xxrkP7xgdu5gnalWjQv270uiXcko7RHXRkGSFWuySuiTneBkeGeXGh56LPc69OPnGaVWXizXXbcGqSUXUISpZpha7JKLSij6F71fdvTHVC49K52svl3yrtaqj5mEp95ha55JVSuzSsHKjXpbctp6r7t44tnLRklPm0mBfaVVOMAyxcPLYv84Zw6KSvxK5tAsldmlYuVEvo3t8LMHmh0e4dOW61OPo7cmNG4ZYWIMUlJRlclGNXRqWhcvlc92G2cSFpzVPi0xGSuzSsFZfLj9jWrCi0XDEItVZOPGINJMSuzTsxKNmtuzYPblurvxwcGm/lowTCSixS0WDQ3kWLFvNkUt/yIJlq8vOK16YKKsVikstWjJOJKDOU4kUNcdLQWH4X6uXxSqUWrRknEhAiV0iRc3xcvUPNrJzdG8mJvGCiRchKZHLZKdSjESK6nR8ZcdoU5J6T66bi4/vr3jVqkotIhMpsUukVnc6Xnv20Vyz8Ohx0wDMmJajtyenibZEKlApRiItOWUun1y5jr3VN61bt1nZWR77whkXQeUVkVqpxS4VpZnUAS589xEaySKSMCV2iZT2FZszpuUmlFpUXhFpnEoxEinNKzYNuPLDbwdUahFJmlrsEimtzlMDLjq+X8lcJCVqscs4hXnV88Mjia0pCvs6Sft00ZBI6pTYJ6lyC2MALPn++rGFm5O6ovTi4/u5ZmFt64mKSP2qJnYzOwL4J+Awgv/1Fe7+ZTM7GFgJzAGeBc5z91fSC1WSEjVVgOFjST0J3WZc+O4jlNRFmixOi3038Cl3/7mZHQisNbN7gY8C97n7MjNbCiwFPpteqJKUqKkCkvTsstMT3Z+IxFe189Tdt7j7z8PbvwEeA/qAs4Abws1uABamFaQkK+35yQ3KzgIpIs1R06gYM5sDzAceBg5z9y3hU1sJSjXlfmaxma0xszXbt7duelfZJ+2pApz0x8CLSLTYid3MDgBuBy51918XP+fuTkRfm7uvcPcBdx+YObN1CzJIYHAoz45du1M/jlYtEmmdWKNizCxHkNRvcvc7wodfMrNZ7r7FzGYB29IKUuo3OJTn6h9s5JWIZePS0uoJxEQms6otdjMz4JvAY+7+paKn7gYWhbcXAXclH540YnAoz5Lb1jc9qQOa60WkheKUYhYAfwicZGbrwq/TgGXAB8zsCeD94X3JkOWrNjG6J/n1jYxgbHpfRKt8xrScLkASaaGqpRh3/wlEXoR4crLhSJLSqHObwXXnzWPh/L4J4+Fh3+LSItI6miumgyVd585121hSh2DyLs3MKJI9mlKgg5ROEzDnkB7yDbbau83Y6x65MLRmZhTJHiX2DjA4lOequzcyPLKvkzQ/PNJwUgfY684zuopUpK0osbe5i77+Ux586uXU9q9hiyLtRzX2NnbF4IZUk7qWqBNpT0rsbWpwKM+NDz2X2P6m79fN9efPU0eoSAdQKabNpHElaa7b+Lv/erQ6QkU6hBJ7Gyk3brxRvT05rjrz7UroIh1Eib1NDA7l+dSt69njyVxJqiXqRDqXEnsbuGJwQ2L1dC1TJ9L5lNgzLqlO0p5ctzpDRSYJJfaMKlxFmsRFRt1mSuoik4gSewZdMbiBmx56rvzKJTVSS11k8lFiz5hG6+nT9+sm193FqyOjkfO7iEhnU2LPkA986QGe2PZ63T9//fnzlMRFRIm91YKx6Y8wMrq3of309fYoqYsIoMTeUkkNY9ScLiJSTIm9RQaH8tzUYFI3UB1dRCZQYm+BJFrqfb09PLj0pIQiEpFOosTeRINDeT79/fXs3tvYQEaVXkSkEiX2Jkmqnq45XkSkGiX2lCR55Wiuy1j+kWOUzEUkFiX2FCQ5va6m1RWRWimxp+CquzfWndT36zb+/ly1zkWkflUTu5l9CzgD2Obu7wgfOxhYCcwBngXOc/dX0guzPQwO5fns7Y/w2931XWz01t+Zzr2fPCHZoERk0omz5ul3gFNLHlsK3OfubwXuC+9PalcMbuDSlevqTuoL3nywkrqIJKJqi93d/9XM5pQ8fBZwQnj7BuAB4LMJxtU2Gh3tohq6iCSt3hr7Ye6+Jby9FTgsakMzWwwsBujv76/zcNnUyKRdPbkurj37nUroIpK4hjtP3d3NLPKKG3dfAawAGBgYSGbBzgxoJKlrFkYRSVO9if0lM5vl7lvMbBawLcmgsqzR0ouSuoikrd7EfjewCFgWfr8rsYgyanAoz6Ur19X98wZcdHy/krqIpGnMp7AAAAfGSURBVC7OcMebCTpKDzWzF4ArCRL6rWZ2CbAZOC/NIFvtoq//lAefernun9c0ACLSTHFGxVwY8dTJCceSSfUm9alTuvj8OeocFZHm05WnEeqtpRdKLtcsPDr5oEREYlBiLzE4lOeyleuodfiOAdepY1REMkCJvUi9ZZcFbz6Ym/7kPSlEJCJSOyV26l8AQ3O7iEgWTfrEXm8t/WLV0UUkoyZtYh8cyvPJleuoZ8ouJXURybJJmdjrnQ5AQxhFpB1MqsReb9lFtXQRaSeTIrHX2zkKKruISPvp+MRe7xDGLuBLGpcuIm2oIxN7ozMwaly6iLSzjkvsjcyT3m3wxfPUSheR9tZRif2ir/9Ui1+IyKTX9ol9cCjP5Xc8wsho/YtIq+wiIp2kbRP74FCeq3+wkVd2jNb18+ocFZFO1ZaJvdHOUQ1hFJFO1laJfXAoz2duW8+uPfWtia2ELiKTQdsk9kZa6eoYFZHJJPOJfXAoz9/cuYHXd+2p6+cv1gLSIjLJZDqxDw7lWXLbekbrKL3kumD5R9RSF5HJJ9OJffmqTXUldZVeRGQy62p1AJXkh0dq/hmVXkRksst0Yu82i72toVEvIiKQ8VLMHo9Xhunr7WHJKXPVUhcRocHEbmanAl8GuoFvuPuyRKIK9fX2RJZjenLdXHv20UrmIiIl6i7FmFk38BXgQ8DbgAvN7G1JBQaw5JS59OS6Jzw+Y1pOSV1EJEIjLfbjgCfd/WkAM7sFOAv4RRKBAWOJe/mqTbw4PMJslVxERKpqJLH3Ac8X3X8BeHfpRma2GFgM0N/fX/NBFs7vUyIXEalB6qNi3H2Fuw+4+8DMmTPTPpyIyKTXSGLPA0cU3T88fExERFqokcT+78BbzexIM9sPuAC4O5mwRESkXnXX2N19t5n9BbCKYLjjt9x9Y2KRiYhIXRoax+7uPwJ+lFAsIiKSAPOYV3cmcjCz7cDmGJseCvwy5XAaofgao/gal/UYFV9jSuN7o7vHHn3S1MQel5mtcfeBVscRRfE1RvE1LusxKr7GNBpfpicBExGR2imxi4h0mKwm9hWtDqAKxdcYxde4rMeo+BrTUHyZrLGLiEj9stpiFxGROimxi4h0mEwldjM71cw2mdmTZra0hXF8y8y2mdmjRY8dbGb3mtkT4fcZ4eNmZv8QxvyImb0r5diOMLP7zewXZrbRzD6RpfjCY+5vZj8zs/VhjFeHjx9pZg+HsawMp6LAzKaG958Mn5/ThBi7zWzIzO7JWmzhcZ81sw1mts7M1oSPZelv3Gtmt5nZ42b2mJm9Jyvxmdnc8HUrfP3azC7NSnzhMS8L/zceNbObw/+Z5N6D7p6JL4JpCZ4C3gTsB6wH3taiWN4HvAt4tOixvweWhreXAp8Pb58G/Jhg2dXjgYdTjm0W8K7w9oHAfxAsdJKJ+MJjGnBAeDsHPBwe+1bggvDxrwF/Ft7+78DXwtsXACubEOMnge8B94T3MxNbeKxngUNLHsvS3/gG4OPh7f2A3izFVxRnN7AVeGNW4iOY8vwZoKfovffRJN+DTXlxY/6y7wFWFd2/HLi8hfHMYXxi3wTMCm/PAjaFt/8RuLDcdk2K8y7gAxmObxrwc4K5+n8JTCn9exPMN/Se8PaUcDtLMabDgfuAk4B7wn/oTMRWFOOzTEzsmfgbAweFicmyGF9JTB8EHsxSfOxby+Lg8D11D3BKku/BLJViyi3ckaUVNg5z9y3h7a3AYeHtlsUdfiSbT9AizlR8YaljHbANuJfg09iwu+8uE8dYjOHzrwKHpBje9cBngL3h/UMyFFuBA/9iZmstWKwGsvM3PhLYDnw7LGd9w8ymZyi+YhcAN4e3MxGfu+eBLwDPAVsI3lNrSfA9mKXE3jY8OHW2dJyomR0A3A5c6u6/Ln4uC/G5+x53n0fQOj4OOKqV8RSY2RnANndf2+pYqnivu7+LYE3hPzez9xU/2eK/8RSCUuVX3X0+8DpBaWNMFt6DYY36TOD7pc+1Mr6wtn8WwQlyNjAdODXJY2QpsWd94Y6XzGwWQPh9W/h40+M2sxxBUr/J3e/IWnzF3H0YuJ/go2WvmRVmFC2OYyzG8PmDgF+lFNIC4Ewzexa4haAc8+WMxDYmbNXh7tuAOwlOjln5G78AvODuD4f3byNI9FmJr+BDwM/d/aXwflbiez/wjLtvd/dR4A6C92Vi78EsJfasL9xxN7AovL2IoLZdePyPwp7144FXiz7uJc7MDPgm8Ji7fylr8YUxzjSz3vB2D0EfwGMECf7ciBgLsZ8LrA5bVIlz98vd/XB3n0PwHlvt7hdlIbYCM5tuZgcWbhPUiR8lI39jd98KPG9mc8OHTiZYxD4T8RW5kH1lmEIcWYjvOeB4M5sW/j8XXr/k3oPN6MCooVPhNIJRHk8Bf9PCOG4mqH2NErROLiGoad0HPAH8X+DgcFsDvhLGvAEYSDm29xJ8hHwEWBd+nZaV+MJjvhMYCmN8FPhc+PibgJ8BTxJ8PJ4aPr5/eP/J8Pk3NenvfAL7RsVkJrYwlvXh18bC/0LG/sbzgDXh33gQmJGx+KYTtGoPKnosS/FdDTwe/n98F5ia5HtQUwqIiHSYLJViREQkAUrsIiIdRoldRKTDKLGLiHQYJXYRkQ6jxC4i0mGU2EVEOsz/B5e1M3mRxVJnAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.title(\"text length vs mean audio duration\")\n", + "plt.scatter(list(text_vs_avg.keys()), list(text_vs_avg.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEICAYAAABLdt/UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3df5xcdX3v8ddnN5NkEiibQEqThTWI3nChSCIpxmItBjUULeTymwttbGnzaG9/CGo0KLdAi4KNAvZxvdq0/qCKkABhQdRGLoRHK1Vs4m4ISFJ+BhgCicAGIRsz2XzuH+fMMjs7Z36emTkz+34+HvvYmTNnz/ns7OxnvvP5fs/3a+6OiIh0jq5WByAiIvFSYhcR6TBK7CIiHUaJXUSkwyixi4h0GCV2EZEOo8TepszsFDN7vkXnvsrMvt2KczdC4XNpZo+a2SktDKksM5trZm5mk8L7PzCzZTEd283sbXEcq8LzxRa7BJTYY2Rmz5jZ+5N2rDrjaNkbSKu4+3Hu/kCr46iGu/+eu9/U6jjKKdYoaJfY24kSu4jEIvfpQVpPiT0mZvYtoA/4rpm9bmafDLcvMrP/MLMhM9uc+4hvZr9tZr8wsyPD+yeY2atmdkzUscqcf46Z3WFmu8zsaTP767zHrjKztWb2L2b2y7DUsDDv8Xea2UD42G1mtsbMrjGz6cAPgDlhHK+b2ZzwxyZHHa8grq+Y2RcKtt1lZh8Lb3/KzDLhcbaZ2akRx/mmmf3f8GP762b2oJn9hpndGD5vW81sQYXPRzo83qtm9nPgtwrONfppycxOMrMfh3+/HWb2f8xsct6+bmZ/ZmaPh/t82cws4neIPFZhaSXc9oCZ/Ul4u9vMvhC+Zp4CPlRw7Px9u8zsCjPbbmY7w7/TIcViCvdfEcbzgpn9cdRxw/sfMbMfFfz+f2FmjwOPh9u+ZGbPmdlrZrbJzH4n3H4a8Gng/PBvuLma2POeo2Vm9mz4XHwm6vea0NxdXzF9Ac8A78+73wu8DJxO8Cb6gfD+rPDxzwL3A2lgC/CXUccqcq5TgOfD213AJuBvgMnAW4GngCXh41cBe8M4uoFrgZ+Ej00GtgMfBVLAWcA+4JrC8+SdO/J4ReJ8L/AcYOH9GcAwMAeYFz42J3xsLnB0xHG+CfwCOBGYGj5vTwN/GMZwDbChwufjOuDfgZnAkcAj+b9j/nMfnm8RMCmM7zHg0rx9HbgH6CF4M94FnBbxO0QeK7zvwKS8/R8A/iS8/WfA1jDemcCG/P0L9v1j4Inw9z4IWAd8KyKm04CXgN8EpgPfCY/7tsLjhvc/Avyo4Pe/N4wpHW67GDg0/D0/DrwITM177Xy7IIaKYs97jv6J4H/mBOBXwH9v9f9+0r7UYm+si4Hvu/v33f2Au98LbCRIiBC8yA8BfgpkgC/XeJ7fIniz+Ft33+fuTxG8+C/I2+dHYRwjwLcI/ingzUTzD+6edfd1YTzlRB2v0L8T/DP+Tnj/HODH7v4CMAJMAY41s5S7P+PuT5Y4553uvsnd9wJ3Anvd/V/CGNYAuRZ7uefjPOCz7v6Kuz8H/EPUCcPz/cTd97v7M8A/Ar9bsNt17j7k7s8SJNz5dRwrynnAje7+nLu/QvBmGuUi4Hp3f8rdXwcuBy6w4qWS84BvuPsj7v4GwWuyWteGz+UwgLt/291fDn/PLxL8jedVeKxKYr/a3YfdfTOwmejX3oSlxN5YbwHODT96D5nZEPAeYDaAu2cJWqK/CXzRw2ZJjeeZU3CeTwOH5+3zYt7tPcDU8J9lDpApOPdzFZwz6nhjhMe9Fbgw3PQ/gZvDx54ALiVIJjvN7Na8Uk8xL+XdHi5y/6DwdrnnYw5jf8ftUSc0s/9mZveY2Ytm9hrwOeCwgt0Kn4uDKKLCY0WpOOZw3/zHtxO8eR8esW+lx40y5vViZp8ws8fMbHf43B9Cdb9nudgrer4nMiX2eBUm5ucIPkb25H1Nd/frAMysF7gS+AbwRTObUuJYpTwHPF1wnoPd/fSyPwk7gN6CuvCRNcYR5RbgHDN7C/Au4I7Rg7t/x93fQ5CMHfh8DOcr93zsYOzv2FfiWF8hKIG83d1/jeANomgNvQKljvVG+H1a3v6/kXe7mphfIHg+8/fdz9g3wkqP+0aJmHJGXyNhPf2TBJ8EZrh7D7CbN3/Pcq+namKXCErs8XqJoDaY823g981sSdj5NdWC4YNHhIn0m8DXgEsI/sH+rsSxSvkp8EsLOiLT4bl+08x+q+xPwo8JSiJ/aWaTzOxM4KSCOA4t1flWjrsPENTH/xlY7+5DAGY2z8wWh29oewla3QdqPU+ecs/HWuByM5thZkcAf1XiWAcDrwGvm9kxwJ/XEVfksdx9F0E57uIw3j8Gjs772bXAX4evnRnAyhLnuQW4zMyOMrODCD4ZrHH3/UX2XQt8xMyONbNpBA2NfIPAWWY2zYKx7ZdU8DvuJ+hrmGRmfwP8Wt7jLwFzzSwq91QTu0RQYo/XtcAV4cf/T4T12zMJWma7CFqSKwie978Gfh3432G54o+AP8qNICg8VqmThjXmDxPUdp/mzSRaNhm7+z6CDtNLgCGCfoF7CDqlcPetBP9sT4WxlCqVlPId4P3h95wpBB2ZvyD4eP3rBDXVulTwfFxN8BH/aeCHBH0EUT5BUD76JUGdfk0doZU71p8SvD5eBo4D/iPvsX8C1hPUlH9G0KkY5esEv9O/EfyOe4l483L3HwA3EnRGPxF+z3cDQWf6S8BNhGW0EtYD/wr8F8FzvJexpZrbwu8vm9nP6oldouVGKoiMMrOHgK+6+zdaHYuIVE8tdsHMfteCMeGTLLi0+x0ErS4RaUO6UkwgGIq2lmAc81PAOe6+o7UhiUitVIoREekwKsWIiHSYppZiDjvsMJ87d24zTyki0vY2bdr0C3efVen+TU3sc+fOZePGjc08pYhI2zOzqq4IVilGRKTDKLGLiHQYJXYRkQ6jxC4i0mGU2EVEOoyuPBURAfoHMqxav40XhoaZ05NmxZJ5LF3Q2+qwaqLELiITXv9AhsvXbWE4OwJAZmiYy9dtAWjL5K5SjIhMeKvWbxtN6jnD2RFWrd/Woojqo8QuIhPeC0PDVW1PuooSu5n1mNntZrY1XMvw3WY208zuNbPHw+8zGh2siEgjzOlJV7U96SptsX8J+Fd3P4ZgRfDHCJbmus/d3w7cR+mlukREEmvFknmkU91jtqVT3axYMq9FEdWnbGIP17p8L8HanLj7vnDNyjMJlsoi/L60UUGKiDTS0gW9XHvW8fT2pDGgtyfNtWcd35Ydp1DBfOxmNh9YDfycoLW+CfgokAlXICdcmPnV3P2Cn18OLAfo6+s7cfv2quayERGZ8Mxsk7svrHT/Skoxk4B3Al9x9wXAGxSUXcLFmIu+Q7j7andf6O4LZ82qeNZJERGpUSWJ/XngeXd/KLx/O0Gif8nMZgOE33c2JkQREalG2cTu7i8Cz5lZrhfhVIKyzN3AsnDbMuCuhkQoIiJVqfTK078CbjazyQSLHf8RwZvCWjO7BNgOnNeYEEVEmqvdpxeoKLG7+yBQrHB/arzhiIi0VidML6C5YkRE8pSaXqDaxN6qlr8Su4hInrimF2hly19zxYiI5IlreoFWTiymxC4ikieu6QVaObGYEruISJ64phdo5cRiqrGLiBRYuqC3okReqnN0xZJ5Y2rs0LyJxZTYRURqUK5zNJfgNSpGRKRCrb6IqJJhkZW2/OOmxC4ibScJFxEledUldZ6KSNtJwhqlSV51SYldRNpOElrLSV51SaUYEalZq+rcc3rSZIok8Wa2llvZOVqOEruI1KSZde7CN5D3HTOLOzZlWjKUMF+rOkfLUSlGRGrSrDp37g0kMzSME7yB3LEpw9kn9nbMGqVxU4tdRGrSrDp31BvIhq27eHDl4ljP1SnUYheRmjRrVEgSOkrbjRK7iNSkWaNCkjysMKmU2EWkJnFNllVOkocVJpVq7CJSs2aMCknysMKkUmIXkcRL6rDCpFIpRkSkwyixi4h0GJViRKTttXoK36RRYheRtpaEKXyTpqJSjJk9Y2ZbzGzQzDaG22aa2b1m9nj4fUZjQxURGS8JU/gmTTU19ve5+3x3XxjeXwnc5+5vB+4L74tIhfoHMpx83f0ctfJ7nHzd/fQPZFodUlvSlanj1VOKORM4Jbx9E/AA8Kk64xGZEFQ+qF1hPb1nWopX92TH7TeRr0ytNLE78EMzc+Af3X01cLi77wgffxE4vNgPmtlyYDlAX19fneGKdIZK1susVSM6EpPSOVnsDTHVZaS6jeyIj+430a9MrTSxv8fdM2b268C9ZrY1/0F39zDpjxO+CawGWLhwYdF9RCaaRpUPGvFJIEmfLoq9IWYPOD3pFNOnTGr5G09SVJTY3T0Tft9pZncCJwEvmdlsd99hZrOBnQ2MU6SjNGoFoEZ8Emjkp4tqRb3x7R7OMnjlB5saS5KV7Tw1s+lmdnDuNvBB4BHgbmBZuNsy4K5GBSnSaRo1sVUjPgkkqXNSMz1WppIW++HAnWaW2/877v6vZvafwFozuwTYDpzXuDBFOku9E1tF1bzj+iSQf/wuM0Z8fBW1Fcl0xZJ5Y8pCoHp6MWUTu7s/BZxQZPvLwKmNCEpkIqh1YqtSNe84El/h8Ysl9WYk01IdtknoyE0yXXkq0mZK1bxzS8XVk/iKHR+g24wD7k1JpuU6bJXIS1NiF2kz5Wre9Sa+qOMfcOfp6z5U83FLKWyd79m3PzEdtu1IszuKtJlGdyA2u4My1zrPDA3jBK3zYhccwcS+mrQaSuwibabYiBoD3nfMrIYdv5E19ajSTzEa/VIZJXaRNrN0QS9nn9iL5W1z4I5NmVjmm2nWWqY5lbbCNfqlcqqxi7ShDVt3UThWJc4adDM7KKOGaOpq0topsYu0oSRdNFSvqCGaV51xnBJ5jZTYRdpQNRciJWUCrygamx4/JXaRNlTphUhX9G/h5p88O1q2Ser0wBqbHi8ldpEGalRruZJWbv9AZkxSz6m3Fp/0TwCixC7SMI2e7rZcK3fV+m3jknpOrbX4JE3hK9E03FGkAfoHMnx87ebY1+KsZjm9Usm71vHgWl+0PSixi8Qs16otNnkW1N9azr9C8/J1WyKTe1TyNqh5PHgnjcbpZErsIjErdyVls1rLUVeoXrSor+ayieZDbw9K7CIxK9V6TXUZe/btr6iUUulxM0PDkcebMunNf/EZ01LccP58rll6fMXnLNTs6QakNuo8FYlZ1BhzM8AYneCqWMdjqREnUccFxpRmcgqHQ+7NHqgo/lIxaMx5ezCPqAM2wsKFC33jxo1NO59IKxSOHIGgVTtlUhdDw+NnLeztSfPgysWRP5ebp6XY48V0R6x4lH+uamNv5FwxUp6ZbXL3hZXur1KMSMyiJtHaXSSpw5sllnI19MLjRolK6vnniqJRL51BpRiRBsiNMc+VNS5bM1h27dBKRpzkj10/+br7I0szUcp1cmrUS2dQi12kQQqHJ5ZbOzQq6XaZFe0cLdaRWUolnZwa9dIZlNhFGqTU2qG5Es3ZJ/ayav02jlr5Pfbs20+qa3yRZcS96Lj1YvOyl5I/QiaKRr10BpViRBqk3NqhhR2Vr+7J0l0ksecrnOel2LzsUYaGs2Uv/2/EqBfNLdN8SuwiDVJuat1iLfqRA+XTdGZoeDRZVltjr2QCsDhnWtTcMq2hUoxIg5Qra9TTIbnits1VJ/WcZnaEapRNa1TcYjezbmAjkHH3D5vZUcCtwKHAJuAP3H1fY8IUaT/lyhqlLjgqJ1uiZW8EFyxFjWcv1xEaZ+lEo2xao5pSzEeBx4BfC+9/HrjB3W81s68ClwBfiTk+kbZWrKyRX0bJJeGcVLeBl07cpfTmJeKoi41KdYTGXTqpZqUniU9FpRgzOwL4EPDP4X0DFgO3h7vcBCxtRIAinSR/CCQEST3XXdrbk2bVOSew6twTRi9C6rZKx7y8eVVp/uX/xS6UKjeHeyWlk0qnD9Yom9aotMV+I/BJ4ODw/qHAkLvvD+8/DxR9tZjZcmA5QF9fX+2RiiRMLSWLYonTGX+pf/7cMYWt7mKt+qhkWW1HaCWlk2pa9ZpbpjXKJnYz+zCw0903mdkp1Z7A3VcDqyGYK6bqCEUSqNaSRVRNPSqhRiXGqG0nX3d/XQm0ktJJqVZ9sfNpPdPmq6TFfjJwhpmdDkwlqLF/Cegxs0lhq/0IoPL5R0XaXLXJDYI3g8Kaek6pmnNUYixc3zSO2ngli2SrQzT5ytbY3f1ydz/C3ecCFwD3u/tFwAbgnHC3ZcBdDYtSJGFqSW5Ra5DWs6JR/rHrGVaYq5lftmaQKZO6mDEtFVmX17QDyVfPOPZPAR8zsycIau5fiyckkeSrJblFJX2n/ot16mlFF85pMzScZW/2ADecP39MZ2yOOkSTr6rE7u4PuPuHw9tPuftJ7v42dz/X3X/VmBBFiqtmYee41ZLcopJ+bwwt3Xpa0dW29msZbSPNpSkFpC21+lL1WkZ7VFK/rlU9x66lta8O0WRTYpe2VEvnZb0KhzfOPTTNi7v34sCLu/eycfsrZedgycUe99C/wmMfkk5hBpetGWTV+m0lz6OLiDqPlsaTtnTUyu9FdkTecP782JNnpcvSXbyor67FouNQ7fJ2Wg4v+bQ0nkwIUa3JQ9KpMR2BhXOY1ypqbvVCtzz0XF3niYNq5qJSjLSlqJqyGQ0p0VQ6RnvEnf6BTEuTomrmosQubSmqXn3ZmsGi++fmMK81eVUzE+Olawb59LqHmZLqZmhPtumX0VdSM9fiF51NiV3aVrFWZqnFJ4qNmimX4ErNxFjKnuwB9mQPAM0fsVNuhEyrRxRJ46nzVDpKuU7O/Mm2ovbtSaf48AmzuWfzDoaGs5HHmXtomgeffKWq+HoL3jwa1XIuddyTr7u/6Jtf4URkkhzVdp6qxS4dIT+R9UxLRSb2/DpzVIfo0HCWb//k2ZLnywwNkxkapsugmqnT81vHQMNazqVq5prrpfMpsUvbK7YodJT8OnMciayW9TDyR6g0eyw+aNz6RKDhjtL2Kh2KWDjZVpyJrPLlMAIvDA23rOWsuV46nxK7tL1KE2HhZFvFElw9bjx//uhY8GmpLkotfjSnJ92yWRI1br3zqRQjba/SoYiFk23lEtnV3320ZPmm0hhyde1caShqXEJ+67hRc8eUo3HrnU2JXdpO4YiP9x0zizs2ZUqWY8otHdc/kOGqux8tOgomnepiaqo7Mvmnum3MsUuVhgpHxeT213hyiZMSu7SVYmOw79iU4ewTe9mwddeYZJ9/v1jCLHyDuOqM44DSibbwDWDGtBRX/v5xY/aJKg0ZjBtOqJazNIISu7SVqHlQNmzdVdUY7KiLdK496/iSx6kkEWvUibSaOk+lrVQ7kiRqMY6oN4hL1wzWvWiHRp1Iq6nFLm2lmtZwqUvnS42kyQwNc9maQTZuf6WmKXgbOe+6SCU0pYAkVrHL4qH4SJJrzwoScP7+e/btL9rh2ZNO8cu9+xmp4LV/4/nza07ImmhL4qIpBaQjRLW2zz6xlymTuka35zovYfzl+VGi5n8p5urvPgqMb30X21bYyaqJtqRV1GKXRIqaqKpwhsVca73UrI71Sqe6x3xCSHUZGGRHxv7v5I+Q0URbEie12KUjRNXAC5shublVGnkZfmEnazZigphX92S5fN0WNm5/JfJNJq44VeaRUjQqRhKpmqGBueRWTE86NebS+RnTUjFFWNxwdoSbS8wMGceQx1yZJ+7l/6RzKLFLIlUzj0uuxVpsiOFVZxzHgysX8/R1H2racMOo4mZcQx6rXdNUJp6ypRgzmwr8GzAl3P92d7/SzI4CbgUOBTYBf+Du+xoZrEwchUMGD0mneG1vdtw0ud1dxhu/2s9lawbpmZZiyqQudg9nOSSdwgwuWzPIqvXbmHtomv948pWKV0AqJ9Vt42rs5cQ10ZbmU5dyKmmx/wpY7O4nAPOB08xsEfB54AZ3fxvwKnBJ48KUiSa/hhyV1AFGDjhDw1mcoMa9ezjLbx89k1/tP8Cre7KjpYoHY0zqPekUq845gZ70+LJO1ISOveEkYXFo1ayQ0j7KJnYPvB7eTYVfDiwGbg+33wQsbUiEMuEU1pCHhosn9WIcePDJVyqan70WqS7jqjOCkS+DV35wzFS9vT1pLlrU1/CrTnVlq5RT0agYM+smKLe8Dfgy8CQw5O77w12eB4o2R8xsObAcoK+vr954ZQKodOGMVhhxHy3v5EaiFLbEF75lZkNHrOjKVimnosTu7iPAfDPrAe4Ejqn0BO6+GlgNwTj2WoKUiSXJteLcJ4dWX3CkWSGllKpGxbj7ELABeDfQY2a5N4YjAI21krrkJuxqxbt/OtVd9VDIYiNRNBRRkqBsYjezWWFLHTNLAx8AHiNI8OeEuy0D7mpUkNL58hNis/WkU1x71vF86B2za1q7NKd/IMPH127WUERpuUpKMbOBm8I6exew1t3vMbOfA7ea2TXAAPC1BsYpHSo3+qUVCT1/NaP+gQx3bMqM+7QwfXI3e/aN0GVWdNKw3EiU3BtT1MRiSS4vSecpm9jd/WFgQZHtTwEnNSIomRgKJ8qqhBEsVbcneyDWWKI6bHumTebRv11cNNb8kSjlOnw1FFGaSVeeSsvUMvrlt4+eyefOekfVJZNi8uvfUS3qzNDwaH18aurNf5dc+SbXgVmqRa6hiNJsSuzSMrWUJ3727G4ALloUz9DZXP27VIt6xe2bWXHb5jFzu/9q/9hPDFE/320W2xWnIpVSYpemyI14mbvyexx9+feZu/J7dFn17e5cIr5m6fFFr/ysxQtDwyXnpsmO+LgZHQs7RKMuGvrieScoqUvTKbFLwxWOeMl1MFayglExuZb+VWccV3aisC6Dixf10VuiRT4nvNw/twpTtXEAoz+ffxWqWurSKpqPXRou7itJ06ku5l/9w9GVkMwg6j3CndF1S8t1gC5d0FvVCJ3C8osuGpKkUItdGi7uoX57sgfGLG9XquGfn3wraVUXK6mkui1YNSmPOkQlydRil1iUWtFnTk+6JePUiyXfcq3qqHlYim1T61ySSmueSt2KlThS3cb0yZPYPZylZ1qK1/fuj1xSrlHy1yAVaWfVrnmqUozUrVgNPTsydp50LKiNN1NuDVLN0yITjRK71K2SGnp2xBmO+WrRSmieFpmIVGOXkqJq5/nbo+ZRSQrN0yITjRK7RCqsnecuwd+4/RXu2JQZ3d7KpJ5OdXP2ib1s2LorsoNW87TIRKNSjEQqVjsfzo5wy0PPJWaFo+HsCBu27uLBlYu58fz5WjJOBLXYpYSoEkbSyi65OLVknEhAiV0iRY0/N2jJKkdRCi9CUiKXiU6lGIm0Ysm8cVdcAnR1jb8Ss1VUahEZT4ldIi1d0MtBU8d/qBs54Ox3Z8a0VCzzopeT6jZ60sG5ZkxLjd7WRFsixakUIyUN5c1Bns8d9mYPcMP587nq7kfHzN1SKSOYVz1/hA1Aqss4aOokhvZkVScXqYESuxSVG6deqpY+nB3h0jWDNbfaHdiwdRfXnnW8OjxFYqTELuNUuxZpPR2pLwwNq8NTJGZK7BNUqdkY454/vRRdPCQSPyX2CSjqilIIOkybdQm+RrSINIZGxUxAUVeU5ibLOiSmtUQhWJouN4Ilt0SdRrSINJZa7BNQVIv8haFh+gcyvLFvf2zn6jZjlRZ0FmmqsondzI4E/gU4nKCfbLW7f8nMZgJrgLnAM8B57v5q40KVWhXW0w9Jp4oOT+wy4zN3biE7Et91pdkDzqr125TYRZqoklLMfuDj7n4ssAj4CzM7FlgJ3OfubwfuC+9LwlzRv4XL1gySGRrGCerpb+zbX/TK0RF33tgXf6epps0Vaa6yid3dd7j7z8LbvwQeA3qBM4Gbwt1uApY2KkipTf9Ahpt/8uy44YjZEeegqZOwJs0KoJEvIs1VVeepmc0FFgAPAYe7+47woRcJSjXFfma5mW00s427du2qI1SpVqkLjF7dk6UZkzRq5ItI81Wc2M3sIOAO4FJ3fy3/MQ9WxC6aJtx9tbsvdPeFs2bNqitYqU6rSyAa+SLSGhWNijGzFEFSv9nd14WbXzKz2e6+w8xmAzsbFaTUJmra3UYz4Ibz5yuhi7RI2Ra7mRnwNeAxd78+76G7gWXh7WXAXfGHJ/VYsWTeuBWFmsFBSV2khSopxZwM/AGw2MwGw6/TgeuAD5jZ48D7w/uSIEsX9HL2ib0Nm1o36ri96iwVaamypRh3/xHR/8OnxhuOxG3D1l0NWe3o5KNncu7CvnGThamzVKT1dOVph2tEB+qNBfVzTbkrkixK7B0o/0rTLrNYF5/u7UmPSdyaclckeZTYO0QumReOgokzqavMItIelNjb3BX9W4peXRqXbjMOuKvMItJGlNjb2BX9W/j2T55t2PHTqW5dYCTShpTY21T/QKYhSb07rMn3qoUu0raU2NtM/0CGq7/7KK/uGT/tbj160ikGr/xgrMcUkdZQYm8j/QMZVty2meyBeCvqqS7jqjOOi/WYItI6Suxton8gw2VrBmPvJO02Y9W5WuFIpJMosbeBRnWSqnNUpDMpsSdcozpJ1Tkq0rmU2BMq6oKjeqmVLtL5lNgTKM6Ljrq7jIOnTGL3cFYXGYlMEErsCXJF/xa+89Cz1DPo5eSjZ/LMy8OalEtkAlNiT4iL/unHPPjkK3Ud4+JFfVyz9PiYIhKRdlXVYtbSGFf0b6k7qXebKamLCKAWe0v1D2T49LqH2ZM9UPexLnzXkTFEJCKdQIm9RfoHMqy4fTPZkfq6SLvNuPBdR6q1LiKjlNhboH8gw2VrB6lnqvTenjQPrlwcX1Ai0jGU2JuofyDDZ+7cwhv7RsrvXEYjlrwTkc6gxN4k/QMZPrZ2sK6hjPnm9KTjOZCIdBwl9gZrxDS7WqJOREpRYm+AuKYDyM3nAowuTq2LjkSkHCX2mPUPZLh83RaGs7XX0YtdaKRELiKVKnuBkpl93cx2mtkjedtmmtm9ZvZ4+H1GY8NsH5+5s/akPrnbuPH8+Rq6KCJ1qeTK028CpxVsWwnc5+5vB+4L7094H7j+gZpHvBgHesoAAAihSURBVFy8qI//+uzpapmLSN3KlmLc/d/MbG7B5jOBU8LbNwEPAJ+KMa62Ue/EXT3pFFedcZwSuojEptYa++HuviO8/SJweNSOZrYcWA7Q19dX4+mSqZ6VjVJd8PjnPhRzRCIiMUwC5u4O0VOHu/tqd1/o7gtnzZpV7+kSo56VjbqAVefOjzcgEZFQrS32l8xstrvvMLPZwM44g0qyetcfnZbq4nNnvUOlFxFpmFoT+93AMuC68PtdsUWUUP0DGT62ZpBa52E04CLNly4iTVA2sZvZLQQdpYeZ2fPAlQQJfa2ZXQJsB85rZJCtVm8rXQtHi0gzVTIq5sKIh06NOZZEqmdlI61oJCKtoCtPI9TTSk+nurhWdXQRaREl9gL9Axk+cdtm9tcwML3L4Prz5iuhi0hLKbHnqaeVrtEuIpIUSuyhWmvpM6aluPL3deWoiCSHEjvBHC+P73yj6p9T56iIJNGETuy1ttLVOSoiSTbhEnv/QIZPr3uYPdnqLzXqAq4/X52jIpJsEyqx9w9kuHTNYE0/q1kYRaRdTIjE3j+Q4TN3bqlprvQpk7r4/Nkqu4hI++j4xF7PEEZ1jopIO+rYxF7v/C43qpYuIm2q4xJ7PXO7gEa8iEj766jEXut4dNCIFxHpHG2f2PsHMly+7mGGaxi+mKMRLyLSSdo6sdczfBHg5KNncvOfvjvGiEREWq9tE3s9naNK6CLSydoqsddz1SjA5G7j7885QSUXEelobZPY62mhT5/czWf/x/FK6CIyISQ+sfcPZLj6u4/y6p5sTT+v8egiMtEkOrEHI162MJytfiqAVBesOldJXUQmnkQn9lXrt9WU1Ht70jy4cnEDIhIRSb6uVgdQSmZouOqfSae6WbFkXgOiERFpD4lusXebMeKVLyrd25NmxZJ5Kr+IyISW6MReLql3GVx/nuroIiL56irFmNlpZrbNzJ4ws5VxBZXT25OOfCzVbUrqIiJF1JzYzawb+DLwe8CxwIVmdmxcgQGsWDKPdKp73Pbpk7tZpQuNRESKqqcUcxLwhLs/BWBmtwJnAj+PIzBgNHGvWr+NF4aGmaMauohIWfUk9l7gubz7zwPvKtzJzJYDywH6+vqqPsnSBb1K5CIiVWj4cEd3X+3uC9194axZsxp9OhGRCa+exJ4Bjsy7f0S4TUREWqiexP6fwNvN7CgzmwxcANwdT1giIlKrmmvs7r7fzP4SWA90A19390dji0xERGpS1wVK7v594PsxxSIiIjEwr+KS/bpPZrYL2F7BrocBv2hwOPVQfPVRfPVLeoyKrz6F8b3F3SsefdLUxF4pM9vo7gtbHUcUxVcfxVe/pMeo+OpTb3yJnt1RRESqp8QuItJhkprYV7c6gDIUX30UX/2SHqPiq09d8SWyxi4iIrVLaotdRERqpMQuItJhEpXYG71wRxVxfN3MdprZI3nbZprZvWb2ePh9RrjdzOwfwpgfNrN3Nji2I81sg5n93MweNbOPJim+8JxTzeynZrY5jPHqcPtRZvZQGMuacCoKzGxKeP+J8PG5TYix28wGzOyepMUWnvcZM9tiZoNmtjHclqS/cY+Z3W5mW83sMTN7d1LiM7N54fOW+3rNzC5NSnzhOS8L/zceMbNbwv+Z+F6D7p6IL4JpCZ4E3gpMBjYDx7YolvcC7wQeydv298DK8PZK4PPh7dOBHwAGLAIeanBss4F3hrcPBv6LYKGTRMQXntOAg8LbKeCh8NxrgQvC7V8F/jy8/b+Ar4a3LwDWNCHGjwHfAe4J7ycmtvBczwCHFWxL0t/4JuBPwtuTgZ4kxZcXZzfwIvCWpMRHMOX500A677X3kThfg015civ8Zd8NrM+7fzlweQvjmcvYxL4NmB3eng1sC2//I3Bhsf2aFOddwAcSHN804GcEc/X/AphU+PcmmG/o3eHtSeF+1sCYjgDuAxYD94T/0ImILS/GZxif2BPxNwYOCROTJTG+gpg+CDyYpPh4cy2LmeFr6h5gSZyvwSSVYoot3JGkFTYOd/cd4e0XgcPD2y2LO/xItoCgRZyo+MJSxyCwE7iX4NPYkLvvLxLHaIzh47uBQxsY3o3AJ4ED4f1DExRbjgM/NLNNFixWA8n5Gx8F7AK+EZaz/tnMpicovnwXALeEtxMRn7tngC8AzwI7CF5Tm4jxNZikxN42PHjrbOk4UTM7CLgDuNTdX8t/LAnxufuIu88naB2fBBzTynhyzOzDwE5339TqWMp4j7u/k2BN4b8ws/fmP9jiv/EkglLlV9x9AfAGQWljVBJeg2GN+gzgtsLHWhlfWNs/k+ANcg4wHTgtznMkKbEnfeGOl8xsNkD4fWe4velxm1mKIKnf7O7rkhZfPncfAjYQfLTsMbPcjKL5cYzGGD5+CPByg0I6GTjDzJ4BbiUox3wpIbGNClt1uPtO4E6CN8ek/I2fB55394fC+7cTJPqkxJfze8DP3P2l8H5S4ns/8LS773L3LLCO4HUZ22swSYk96Qt33A0sC28vI6ht57b/YdizvgjYnfdxL3ZmZsDXgMfc/fqkxRfGOMvMesLbaYI+gMcIEvw5ETHmYj8HuD9sUcXO3S939yPcfS7Ba+x+d78oCbHlmNl0Mzs4d5ugTvwICfkbu/uLwHNmNi/cdCrBIvaJiC/PhbxZhsnFkYT4ngUWmdm08P859/zF9xpsRgdGFZ0KpxOM8ngS+EwL47iFoPaVJWidXEJQ07oPeBz4f8DMcF8DvhzGvAVY2ODY3kPwEfJhYDD8Oj0p8YXnfAcwEMb4CPA34fa3Aj8FniD4eDwl3D41vP9E+Phbm/R3PoU3R8UkJrYwls3h16O5/4WE/Y3nAxvDv3E/MCNh8U0naNUekrctSfFdDWwN/z++BUyJ8zWoKQVERDpMkkoxIiISAyV2EZEOo8QuItJhlNhFRDqMEruISIdRYhcR6TBK7CIiHeb/A49EWkVubbBPAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.title(\"text length vs median audio duration\")\n", + "plt.scatter(list(text_vs_median.keys()), list(text_vs_median.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEICAYAAABLdt/UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdeklEQVR4nO3dfZAc5XXv8e/Z1QhWgstKsJcrLSBhl0sUBJBgDThgBzC2MDigAI6Rk1ySIkUqsSuGOEokJ7FF4gQRbMdJ3ZR9iV8gfsECIwsMODIBXI6JAa+8EuJNlxcJxCLQYlgbiwVW0rl/dM9qdtQ90/Pe++j3qdramZ6e7jM7s6efOc/TT5u7IyIi4ejqdAAiItJcSuwiIoFRYhcRCYwSu4hIYJTYRUQCo8QuIhIYJXbJLTM708ye79C+V5rZNzqxb5FGKbFLTcxsq5mdk7dtNRhHxw4gZXEcYWa3mtnLZvYLM3vEzH7fzN5tZr+Kf3aamZfc/5WZHWVmPzSzN8zsNTP7pZmtN7PlZnZAp1+XtJ8Su0h+fB3YBswDDgV+D3jJ3f/L3Q9y94OA4+J1e4vL3P25eNnH3P1gYA7wCeBS4C4zs/a+DOk0JXbJzMy+DhwFfC9uKf5FvPw0M/tvMxs1s41mdma8/Nfj1ueR8f0TzexVMzsmbVtV9j83btGOmNkWM/vTksdWmtnNZvbvcav1UTMbKHn8JDMbih+7xcxWm9lnzGwm8H1gbkkLeG78tOlp2yuL64tm9tmyZbeZ2Z/Ft//SzIbj7Ww2s/emvMR3Aje4+0533+XuQ+7+/Wp/l3Lx838IXAC8Czi/1m3IFOfu+tFP5h9gK3BOyf1+4OfAeUQNhffF9/vix/8euBfoATYRtSoTt5WwrzOB5+PbXcB64FPAdOBtwDPA4vjxlcAbcRzdwDXAA/Fj04FngY8DBeAi4C3gM+X7Kdl36vYS4nwPUUvb4vuzgDFgLrAgfmxu/Nh84O0p2/lP4H6ilvZRKevMBxyYVrb8h8AfJqz/I+DaTn9u9NPeH7XYpVG/C9zl7ne5+x53vxsYJEqIECXIQ4CHgGHgX+vczzuJDhZ/6+5vufszwL8RJcGiH8dx7CYqa5wYLz8NmAb8i7uPu/uaOJ5q0rZX7r+Iku274/uXAD9x9xeA3cABwLFmVnD3re7+dMp2PhRv62+ALWa2wczemSHOSl4AZje4DZlilNilUfOAD8VlmFEzGwXOIKrz4u7jwA3ArwGfc/d6Z52bR1QuKd3PJ4HDS9Z5seT268CBZjaNqOU8XLbvbRn2mba9SeLtfhtYGi/6CPDN+LGngCuJDnA7zOzbJaWe8u286u7L3f24+HVtANY2WCPvB15p4PkyBSmxS63KE/M24Ovu3lvyM9PdVwGYWT/waeBrwOfKRmnUkuS3AVvK9nOwu59X9ZmwHegvS5BH1hlHmpuAS8xsHnAqcOvExt2/5e5nEB2cHLi22sbc/WXgs0QHpbpa3HHfxslE3wJkP6LELrV6iai+XfQN4DfNbLGZdZvZgfHwwSPiRHoD8BXgcqIE+3cVtlXJQ8BrcUdkT7yvX8tYqvgJUUnkY2Y2zcwuBE4pi+NQMzskYyz7cPch4GXgy8A6dx8FMLMFZnZ2fEB7g6j2vidpG2Z2bfyappnZwcAfA0+5+89ricXMZpjZbwC3Ef3d7qr3dcnUpMQutboG+Ou4HPLn7r4NuJCoLDJC1LJeRvTZ+lPgfwJ/E5cr/gD4AzN7d9K2Ku00rnN/EFgIbGFvEq2ajN39LaIO08uBUaJ+gTuAN+PHnyBqcT8Tx5JYKsngW8A58e+iA4BVcbwvEv09VqQ8fwbw3TjGZ4ha+BfUsP//Y2avER2ovkD0reFcd088kEi4zOsueYpMXWb2IPAld/9ap2MRaTa12GW/YGa/YWb/Ky5zXAacAPxHp+MSaYV9evhFArUAuBmYSVTmuMTdt3c2JJHWUClGRCQwKsWIiASmraWYww47zOfPn9/OXYqITHnr169/2d37sq7f1sQ+f/58BgcH27lLEZEpz8yerWV9lWJERAKjxC4iEhgldhGRwCixi4gERoldRCQwOvNUcmPt0DDXrdvMC6NjzO3tYdniBSxZ1N/psESmHCV2yYW1Q8OsWLOJsfHdAAyPjrFizSYAJXeRGqkUI7lw3brNE0m9aGx8N9et29yhiESmLiV2yYUXRsdqWi4i6ZTYJRfm9vbUtFxE0imxSy4sW7yAnkL3pGU9hW6WLV7QoYhEpi51nkouFDtINSpGpHFK7JIbSxb1K5GLNIFKMSIigVFiFxEJjBK7iEhglNhFRAKjxC4iEhgldhGRwCixi4gERoldRCQwSuwiIoFRYhcRCYwSu4hIYJTYRUQCo8QuIhIYJXYRkcAosYuIBEaJXUQkMErsIiKBUWIXEQmMEruISGCU2EVEAlM1sZvZkWZ2n5k9ZmaPmtnH4+WzzexuM3sy/j2r9eGKiEg1WVrsu4BPuPuxwGnAR83sWGA5cI+7vwO4J74vIiIdVjWxu/t2d/9ZfPs14HGgH7gQuDFe7UZgSauCFBGR7GqqsZvZfGAR8CBwuLtvjx96ETg85TlXmNmgmQ2OjIw0EKqIiGSRObGb2UHArcCV7v7L0sfc3QFPep67X+/uA+4+0NfX11CwIiJSXabEbmYFoqT+TXdfEy9+yczmxI/PAXa0JkQREalFllExBnwFeNzdP1/y0O3AZfHty4Dbmh+eiIjUalqGdU4Hfg/YZGYb4mWfBFYBN5vZ5cCzwG+3JkQREalF1cTu7j8GLOXh9zY3HBERaZTOPBURCYwSu4hIYJTYRUQCo8QuIhIYJXYRkcAosYuIBEaJXUQkMErsIiKBUWIXEQmMEruISGCU2EVEAqPELiISGCV2EZHAKLGLiARGiV1EJDBK7CIigVFiFxEJjBK7iEhglNhFRAKjxC4iEhgldhGRwCixi4gERoldRCQwSuwiIoFRYhcRCYwSu4hIYJTYRUQCo8QuIhIYJXYRkcAosYuIBEaJXUQkMErsIiKBUWIXEQmMEruISGCqJnYz+6qZ7TCzR0qWrTSzYTPbEP+c19owRUQkqywt9huAcxOW/5O7L4x/7mpuWCIiUq+qid3dfwS80oZYRESkCRqpsX/MzB6OSzWz0lYysyvMbNDMBkdGRhrYnYiIZFFvYv8i8HZgIbAd+Fzaiu5+vbsPuPtAX19fnbsTEZGs6krs7v6Su+929z3AvwGnNDcsERGpV12J3czmlNz9LeCRtHVFRKS9plVbwcxuAs4EDjOz54FPA2ea2ULAga3AH7UwRhERqUHVxO7uSxMWf6UFsYiISBPozFMRkcAosYuIBEaJXUQkMErsIiKBUWIXEQmMEruISGCU2EVEAqPELiISGCV2EZHAKLGLiARGiV1EJDBK7CIigVFiFxEJjBK7iEhglNhFRAKjxC4iEhgldhGRwCixi4gERoldRCQwSuwiIoFRYhcRCYwSu4hIYJTYRUQCo8QuIhIYJXYRkcAosYuIBEaJXUQkMErsIiKBUWIXEQmMEruISGCU2EVEAqPELiISGCV2EZHAVE3sZvZVM9thZo+ULJttZneb2ZPx71mtDVNERLLK0mK/ATi3bNly4B53fwdwT3xfRERyoGpid/cfAa+ULb4QuDG+fSOwpMlxiYhIneqtsR/u7tvj2y8Ch6etaGZXmNmgmQ2OjIzUuTsREcmq4c5Td3fAKzx+vbsPuPtAX19fo7sTEZEq6k3sL5nZHID4947mhSQiIo2oN7HfDlwW374MuK054YiISKOyDHe8CfgJsMDMnjezy4FVwPvM7EngnPi+iIjkwLRqK7j70pSH3tvkWEREpAl05qmISGCU2EVEAqPELiISGCV2EZHAKLGLiARGiV1EJDBK7CIigVFiFxEJjBK7iEhglNhFRAKjxC4iEhgldhGRwCixi4gERoldRCQwSuwiIoFRYhcRCYwSu4hIYJTYRUQCo8QuIhIYJXYRkcAosYuIBEaJXUQkMErsIiKBUWIXEQmMEruISGCmdToAkXJrh4a5bt1mXhgdY25vD8sWL2DJov5OhyUyZSixS66sHRpmxZpNjI3vBmB4dIwVazYBKLmLZKRSjOTKdes2TyT1orHx3Vy3bnOHIhKZetRil1x5YXSspuWd1K6SkUpTUisldsmVub09DCck8bm9PR2IJl27SkYqTUk9VIqRXFm2eAE9he5Jy3oK3SxbvKBDESVrV8lIpSmph1rskivFVmjeSw/tKhlNpdKU5IcSu+TOkkX9mRJ5J2vP7SoZTZXSlORLQ6UYM9tqZpvMbIOZDTYrKJFqirXn4dExnL2157VDw23Zf7tKRlOlNCX50owW+1nu/nITtiOSWaXacz2t9lpb/+0qGU2V0pTki0oxMiU1s/Zc78iTrCWjRrVrPxKORkfFOPADM1tvZlckrWBmV5jZoJkNjoyMNLg7kUhajbme2nNa6/8TN29sW2lHpJkaTexnuPtJwAeAj5rZe8pXcPfr3X3A3Qf6+voa3J1IpJm157RW/m73ttbtRZqlocTu7sPx7x3Ad4FTmhGUhGnt0DCnr7qXo5ffyemr7m0oYS5Z1M81Fx1Pf28PBvT39nDNRcfXVbKo1MrXmHGZiuqusZvZTKDL3V+Lb78f+NumRSYd0aohhK04g7JZtedlixdMiq2cxozLVNNIi/1w4MdmthF4CLjT3f+jOWFJJ7RyCGGez6Astv67zRIf15hxmWrqbrG7+zPAiU2MRTqs2UMIS+X9DMri6ytvuWvMuExFmitGJrQy+TZzFEurNLNuL9JJGscuE1p5+npSHbtZreFiv8Dw6BjdZux2p7/O/gGNGZcQqMUuE1p5+nqrWsNrh4ZZdsvGiQPSbncg6h+4cvUGFl79Aw1XlP2OWuwyodWnr7eiNbzy9kcZ3+Opj4+OjWcafaOLWUhIlNhlknaWIpKSKaQfWJLWHx0br7qfah3AupiFhMbc01s7zTYwMOCDg5oEUvZNpgCFLgOD8d17P5M9hW6uueh4IHnEStrY83IGbFl1fuJjp6+6N7Fvob+3h/uXn51p+yKtZGbr3X0g6/pqse8H8lhmSBpamVRSKR3rnjQU0wyytE0qdQDnfSimSK2U2AOX1zJDLUmz0rruUOi2Sa38ctU6gFs1GqjWUpNIsyixB+7q7z1a8YzPepPM2qFhrv7eo7z6elTj7u0psPKC4zJf+agrHpaYRTHBppVLli1eMOl1nHVMH/c9MZL5dbViKGbSAXXZdzaC7/1mkpeDrIRHiT0AaaWWtUPDE4m3XDGp1NKSLx0vXm50bJxlt2ys+PziNlas2ZQ5qQPsfHMXHzxxDreuH94n+Z51TN+kA8zON3cxMG82n1lyfObtVxoNVG8ZK7HUlPCtolln9oqUUudpmzW73p3UCVnscExLwsDEiTzl0joMk/aTpPz55a9355u7Mo1kKVfoMgrdxuvjewCYNaPA+SfMYfVPt+2TMAtdxnUfOrHhKykd0lNg51u7Ejtzq2376OV3kvU/q1LHrgio8zTXWlHvrjS/S6XadFqLufw5lVrp1Z6f9HorqTTKZXyPT+pcfWN8D3ds3J7YCh7f43W1gsvjTToAZW1hp9Xt09YVaSadedpGzZjhsHxO87TkUWwhJ+ntKdCfYe6W0tkes5rb2zMR45WrN2Qejlg8EzVthsVyY+O7K7b86xnRkvT+1LvtpLN4C90WDeksoUnGpBWU2Nuo0WF1SdPqpqXBYpknaYqAlRccx1nH9O3z3GLNunjguOrm7IkZohLI/EN7uHL1hpoOBsXktmRRP3uaVBqspxWc9X3Isu2kKRSuu+RErvvQiZpkTFpOpZg2anRYXVKLMikNlrYCDyx0TTynOHJl8NlX+OYDz016rgEnHXXI5A7KGnKsGZxy9Czuf/qV7E8iqvVffPLes11rKWGkKXRZXa3gLPs2yLzttLN4lcil1ZTYWySpk7TWYXXl28ia8C4+OXlu8V+MjXPL4HP899Ov7JOzHWpOypOe7/U9f7c7t64fZmDebJYs6k+9mlGXQen5S0bycceMxI7TLJ3W1a6kRLxPJWbJO42KaYFKI1Ug29jxpG2kJbMQlI6myXJiT9pBLmmESaX3I+0AkLZ9TTMgnVDrqBgl9hZoxtwjadsIPblnHQZay9+4nvejloOBSKtpuGMO1NtJunZomJW3P1pxtIezNwGGluCLyXd4dIyrVm/gytUbJh7rNmPpqUdOnHh01jF9+/QTpJW16nk/Wj2FsUgrKbE3KKlsUE8nafGCEZXmFgeYOb274uOhKP8r7HbnGw88x5aRX/HY9tf2OaPWYFInbKl6O611NSWZqjTcsQFJww9XrNnEWcf01XQlorVDw3zi5upJHWDnW7sn9rc/uv/pVxKnSXDgvidGEp+TNqZ855u7Js4H0FWWJCSqsdcg6+nxpRNTDY+OTZpatlgjLx/lIY2rdGp+6XvXO6PAr97YNelA2mj9vHwqAjMYfX1cJRxpCnWetkjWuVKkc7J2TjfSuZ02YqfSZ0OdrtIodZ62SNbTzaUzajk1v5HO7aS5fkpPAkuiGRyl3VRjz6jRsyGldXoKXTW1iNM6Tat1pqbN9ZM2NXIpXY1J2kkt9gTlF5Eo6PCXc9kmDiuq98IajSRnzeAo7bRfJfbSswqL85H3906+qMIn1zw8Med3UdndKSXkE5qKSksdWaYOqHeMetqwyd6eAm/u2lOxxq4ZHKWdpnTnaS0XrdgfOz9nzShkKhOEwIB/+vDCiu9xLZfvS5J1qgiNipFm229GxVT7J6t2BmfIDPid045iYN5srlq9YUq22I3aZ3pMuypUqS6Dz//2wqYMa1TSlnbZbxJ72pC1mdO72flWeK3yGYUuxnbtodrbVVpaqnQhjnJdFiXGLCdJtUPxdbTiwDRrRoGhT72/yVsVaZ2ghzv+9dpN3PTgtoqtsqmU1IvJq/Tbxczp3by1a88+J8/8Q8moj6wTVGXt7DOiViwkf9PJcg3VZjvrmD6WLOpPnDu+0GUcdOC0ustM+0t5SvZfUyKxp3VqTmWlVw2qde7wrJ1/WUsZpXOMV+qAvKpkUq4sCt026ZqkhW5j5vRpmUpkxekBipN+FQ/o3WZ8+JRoMrBaLhjdTirXSKflPrGvHRpm2Xc2Jl60OE+Ko0/KR9mUnsbuHl3soto/e5bJp7Ksk+XCEcQxZ9l2LTXvGYUu/uGiExIT3Pzld1Z9fvHbxtqhYW5dPzzxLW23O6sf2sadD29PTerVau29PYVMr6EerbhguUitcp/YP7nm4dwk9QOmdXHtxScA2YbKdXp2wPKWfdocKVmH4p11TB/feOC5fZYnzXtTfM+STtHvz3CAKI77TjopaHyPp5ZTSjvQ/+q7m/YpzRW6jJUXHAdUH/5auk7Se530WKULliuxS7s01HlqZucC/wx0A19291WV1q+183Tt0PCkObnbodC1d9x6MWGV/7NPZY2UCWq9+Efa3Ctrh4Yrdor2FLq5+OR+7ti4vaaRTaWTreXVAdO66DIYSygrGvDrb589aVri3p4CHzxxDvc9MTLpm1+9I766DD5yajRiKu0qVeXv8czp3fzWSf0TMRzSU2B8956Jg2bSt9VSWT5zaeskHXx7S4aTFoeWvvr6eOrBOat6JnJr5LXVom2jYsysG/h/wPuA54GfAkvd/bG059Sa2GsZ1VGvYskghKTdarXWtCvNtlipHHP622fz0JZXczNCJ0RdQOmhpdBlYDT87bi8Ez9LR3/aOhef3D/54uoNxFFNtfNckrbXyGurdVK4do6KOQV4yt2fiXf8beBCIDWx16rR+TW6gP/RU8hU15bq0mrsaTXtSqfRVyrHPPDMq1XHo0tjyr8vNOsgWl52ylKaSlun2gi4WuKoptokf0nba+S1tbo010hi7we2ldx/Hji1fCUzuwK4AuCoo46qaQe1nqACYZVN8iZtjpWkllW12v2yxQtSy2xK6lNbaYMsy0yaaes0+jmopWGYZd3ydRp5ba2eFK7l01u5+/XuPuDuA319fTU9N+nKN+VmFLr4wocXsnXV+WxddT73Lz9bSb1Flizq55qLjqe/twcjOohec9HxfGbJ8YnLK70PSxb1p45O6bbaJvWSfCn9ppZlJs20dRr9HNQy8VqWdcvXaeS1tXpSuEYS+zBwZMn9I+JlTVOeSGbNKEQdJ0TJ4wsfXshjf/cBJfI2WrKon/uXn82WsoNo2vJKVl5wXOIlBJeeemRU861Bd43r7+/K//ELXUahu/G/Yfk3taTGWdZ1lp56ZNWGXdY4qqnWiEzaXiOvrdWTwjVSivkp8A4zO5oooV8KfKQpUZXo9JBBaZ1KJ1oNzJudeBbsjEIXzt5RJbNmFPj0bx43sZ1aS3eFLjjowAKjr4/TU+hKPAmui2jUR5bCQLXZNPe3UTFZTqar9jlox6iY8hiyjIpp9LW1UqPDHc8DvkA03PGr7v73ldafypfGExHplLbOFePudwF3NbINERFpLl0bSEQkMErsIiKBUWIXEQmMEruISGDaegUlMxsBns2w6mHAyy0OpxGKrzF5jw/yH6Pia8xUi2+eu2c+w7OtiT0rMxusZWhPuym+xuQ9Psh/jIqvMaHHp1KMiEhglNhFRAKT18R+facDqELxNSbv8UH+Y1R8jQk6vlzW2EVEpH55bbGLiEidlNhFRAKTq8RuZuea2WYze8rMlncwjq+a2Q4ze6Rk2Wwzu9vMnox/z4qXm5n9Sxzzw2Z2UhviO9LM7jOzx8zsUTP7eJ5iNLMDzewhM9sYx3d1vPxoM3swjmO1mU2Plx8Q338qfnx+K+MribPbzIbM7I68xWdmW81sk5ltMLPBeFku3t94n71m9h0ze8LMHjezd+UlPjNbEP/dij+/NLMr8xJfvM+r4v+NR8zspvh/pnmfP3fPxQ/R1L9PA28DpgMbgWM7FMt7gJOAR0qW/SOwPL69HLg2vn0e8H2iaalPAx5sQ3xzgJPi2wcTXVT82LzEGO/noPh2AXgw3u/NwKXx8i8Bfxzf/hPgS/HtS4HVbXqf/wz4FnBHfD838QFbgcPKluXi/Y33eSPwh/Ht6UBvnuIribMbeBGYl5f4iC4rugXoKfnc/X4zP39t+eNmfLHvAtaV3F8BrOhgPPOZnNg3A3Pi23OAzfHt/wssTVqvjbHeBrwvjzECM4CfEV0P92VgWvn7DawD3hXfnhavZy2O6wjgHuBs4I74nzpP8W1l38Sei/cXOCROTJbH+Mpiej9wf57iY+/1omfHn6c7gMXN/PzlqRSTdHHsPF066XB33x7ffhE4PL7d0bjjr2WLiFrFuYkxLnNsAHYAdxN9Gxt1910JMUzEFz/+C+DQVsZHdIGYvwCKlzI6NGfxOfADM1tv0QXhIT/v79HACPC1uJT1ZTObmaP4Sl0K3BTfzkV87j4MfBZ4DthO9HlaTxM/f3lK7FOGR4fOjo8TNbODgFuBK939l6WPdTpGd9/t7guJWsanAMd0KpZyZvZBYIe7r+90LBWc4e4nAR8APmpm7yl9sMPv7zSiUuUX3X0RsJOotDGh058/gLhGfQFwS/ljnYwvru1fSHSAnAvMBM5t5j7ylNhbfnHsBr1kZnMA4t874uUdidvMCkRJ/ZvuviaPMQK4+yhwH9FXy14zK161qzSGifjixw8Bft7CsE4HLjCzrcC3icox/5yj+IqtOtx9B/BdooNjXt7f54Hn3f3B+P53iBJ9XuIr+gDwM3d/Kb6fl/jOAba4+4i7jwNriD6TTfv85SmxT1wcOz7SXgrc3uGYSt0OXBbfvoyorl1c/r/jnvXTgF+UfN1rCTMz4CvA4+7++bzFaGZ9ZtYb3+4hqv8/TpTgL0mJrxj3JcC9cYuqJdx9hbsf4e7ziT5n97r77+QlPjObaWYHF28T1YkfISfvr7u/CGwzswXxovcCj+UlvhJL2VuGKcaRh/ieA04zsxnx/3Lx79e8z187OjBq6FQ4j2iEx9PAX3UwjpuIal/jRK2Ty4lqWvcATwL/CcyO1zXgX+OYNwEDbYjvDKKvkQ8DG+Kf8/ISI3ACMBTH9wjwqXj524CHgKeIvh4fEC8/ML7/VPz429r4Xp/J3lExuYgvjmNj/PNo8X8hL+9vvM+FwGD8Hq8FZuUsvplErdpDSpblKb6rgSfi/4+vAwc08/OnKQVERAKTp1KMiIg0gRK7iEhglNhFRAKjxC4iEhgldhGRwCixi4gERoldRCQw/x8mLPTa5BtZRQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.title(\"text length vs STD\")\n", + "plt.scatter(list(text_vs_std.keys()), list(text_vs_std.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEICAYAAABLdt/UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3df5xcdX3v8ddnNxOYBJtNMKVk+RG03ERthMBWsFgr+COKVrb8ULniRR94eVxbW7E2NWm59Ufpg9i0/ujj0Ue9VGu5ohEEXFBsIxewvXJLdOMmBoQU5VdYfq2aRSULTHY/949zzmZ29pwzZ2bnx5mZ9/PxyGPnx5k535nZfPbM53y+n6+5OyIi0j362j0AERFpLAV2EZEuo8AuItJlFNhFRLqMAruISJdRYBcR6TIK7FI3M3uNmT3apn1/1Myuace+a2Vm/2JmF7d7HNI7FNi7jJk9ZGavy9tzLXAcbfsDksTM/trMLg0vP2Rmy5K2dfc3ufvVC9zfu83sOwt5DukdCuwi9TkVGDWzlUDJ3Z9u94BEIgrsXcTMvggcB3zdzH5pZn8a3n66mf0/M5s0s91m9prw9t8ys5+Y2bHh9ZPMbL+ZrU16rir7X2VmN5jZhJk9aGZ/VHbfR83sOjP732b2CzO7x8yGyu4/xczGwvu+ambXmtkVZrYU+BdgVTiOX5rZqvBhi5Oer2Jc/2Bmf1Nx201m9sfh5Q+b2Xj4PHvN7LVVXqcBLwPuBoaAsSrbf9vM3htefreZfcfM/iZ8rx80szeVbftuM3sgHMuDZvZOM3sJ8FngleHrnwy3fXP4nv3czPaZ2UfLnme1mbmZXWxmj4Sf85+X3d9vZn9mZj8O97Wz7PdgrZndamY/C9+Pt5U97mwz+2H4mHEz+5O01y5t4u7610X/gIeA15VdHwR+CpxN8If89eH1leH9fwXcDhSBPcD7k54rZl+vAR4NL/cBO4G/ABYDLwIeADaE938UeDYcRz9wJXBXeN9i4GHgA0ABOBd4Hriicj9l+058vphxvhrYB1h4fTkwBawC1oT3rQrvWw28OOF5TgQmgZ8DB8PLz4bPNQm8K+Fx3wbeG15+N1AC/ns47vcBjwEGLA2fe0247dHAy8oe952Y939d+N6/HHgSGC57HQ78Y/jZngQ8B7wkvH9j+HmvCfd9EnBkOIZ9wHuARcB64CfAS8PHPQ78dtn7eEq7f+f1b/4/HbF3v4uAb7r7N919xt1vBUYJAiIEAXIZ8F1gHPj7OvfzmwR/LD7u7s+7+wMEQeUdZdt8JxzHNPBFgmACcDpBEPk7dy+5+43heKpJer5K/5cgyP12eP184D/c/TFgGjgMeKmZFdz9IXf/cdyTuPv97j4A/B3wIYLA9p/Ar7v7gLt/McOYAR52938Mx301QQA/KrxvBvgNMyu6++Pufk/Sk7j7t919T/i5/gDYBvxOxWYfc/cpd98N7ObQe/Re4HJ33+uB3e7+U+AtwEPu/gV3P+juY8ANwAXh40rhe/Ur7r7f3b+f8TVLCymwd7/jgQvCNMxk+DX+VQTBBHcvAf8M/Abwt+5eb1e44wnSJeX7+TMOBSyAJ8ouHwAON7NFBEfO4xX73pdhn0nPN0f4vF8BLgxv+q/Al8L7fgRcRvAH7ikz+0pZqmeOKJ0FbAY+TnB0/RLgHjO7PsN4543b3Q+EF49w92eAtwP/A3jczG4xs7VJT2Jmp5nZHWHq6+nwcS9M2hfBe3REePlYIO4P2PHAaRWf4zuBXwvvP4/goOBhM/s3M3tllhcsraXA3n0qA/M+4IvhEWX0b6m7bwEws0HgI8AXgL81s8NSnivNPuDBiv28wN3PrvrI4Ov9YJi7jhxb5ziSbAPON7PjgdMIjkKDJ3f/sru/iiCoOfCJuCdw998C1gL3u/sy4HLgE+FrPb8BY8Tdt7v76wn+8N5H8K0H4t+DLwM3A8eG4/ksQVoli33AixNu/7eKz/EId39fOL7vufs5wK8CI8B1WV+btI4Ce/d5kiC/HbkG+F0z2xCeMDvcgvLBY8JA+s/A54FLCALsX6Y8V5rvAr8IT0QWw339hpn9ZobH/gdBSuT9ZrbIzM4BXlExjiMtpaSwmjCl8BPgc8B2d49OQK4xs7PCP2hRvnwm5alO5dDJ0lMI0loNYWZHmdk54Qnj54Bflo3lSeAYM1tc9pAXAD9z92fN7BUE30Sy+hzwl2Z2ogVebmZHAt8A/ouZvcvMCuG/3zSzl5jZ4vBk7rLwm97PSX+vpE0U2LvPlcDl4dfoP3H3fcA5BGmRCYIjso0En/0fERx5/c8wXfEe4D1m9ttxz5W20zBf/BbgZOBBDgXRqsHY3Z8nOGF6CcFJyIsIAsxz4f33ERxxPxCOJTZVksGXgdeFPyOHAVvC8T5B8H5sTnmOU4Eor3wKwQnjRukD/pjgZOrPCPLl7wvvux24B3jCzH4S3vb7wMfN7BcEJ61rOXr+ZLj9twgC9OeBorv/AngDwbmRxwjek08QvE8A7wIeMrOfE6R+3ln7y5Rmi6oERHLFzHYAn3X3L7R7LCKdRkfskgtm9jtm9mthKuZigvK9f233uEQ60bwKApE2WUOQGlhKUP9+vrs/3t4hiXQmpWJERLqMUjEiIl2mpamYF77whb569epW7lJEpOPt3LnzJ+6+Muv2LQ3sq1evZnS0YWW/IiI9wcwermV7pWJERLqMAruISJdRYBcR6TIK7CIiXUaBXUSky2jmKTAyNs7W7Xt5bHKKVQNFNm5Yw/D6wXYPS0SkLj0f2EfGxtl84x6mStMAjE9OsfnGPQAK7iLSkXo+FbN1+97ZoB6ZKk2zdfveNo1IRGRhev6I/bHJqdTbK9M0Z65dyR33TShtIyK51fOBfdVAkfGY4L5qoBibprnmrkdmt1HaRkTyqOdTMRs3rKFY6J9zW7HQz8YNa2LTNJWUthGRvOn5wD68fpArz13H4EARAwYHilx57jqG1w8mpmkqZd1ORKQVej4VA0Fwj0ulLCsWmJwqVX38smKhGcMSEalLzx+xpzFr7HYiIq2gwJ5i8kD1o/VathMRaQWlYspUljYOLCmwP0PQXjVQbMHoRESyUWAPxZU2FvqMPoOZlGVhowoaEZG8UGAPxZU2lmY8NX8+qAlKIpJDCuyhuElKAJ5wtG7AnZvOat6ARETqpJOnBGmYWgtblFcXkbxSYCdIw6Sk0edRXl1E8ixTYDezATO73szuM7N7zeyVZrbCzG41s/vDn8ubPdhmqXXmaDQzVUQkj7IesX8G+Fd3XwucBNwLbAJuc/cTgdvC6x2plpmjgwNFBXURybWqgd3MlgGvBj4P4O7Pu/skcA5wdbjZ1cBwswbZbFlnjioFIyKdIMsR+wnABPAFMxszs8+Z2VLgKHd/PNzmCeCouAeb2aVmNmpmoxMTE40ZdYOlzRyNaw4mIpJnWcodFwGnAH/o7jvM7DNUpF3c3c0s9vyju18FXAUwNDRUyznKlknqyT44UFRJo4h0nCxH7I8Cj7r7jvD69QSB/kkzOxog/PlUc4bYfGk92UVEOk3VwO7uTwD7zCyKcq8FfgjcDFwc3nYxcFNTRtgCaT3ZRUQ6TdaZp38IfMnMFgMPAO8h+KNwnZldAjwMvK05Q2yNpJ7sIiKdJlNgd/ddwFDMXa9t7HBERGSh1Csmg8p2vlHuvfI2HfGLSB4osFcR18534/W7wYPuj9Ftm2/cA6DgLiJtp14xVcS285322aAemSpNs3X73lYOTUQklo7Yy0Qpl/HJKfrNmE7q2Zug1p4zIiLNoMAeqky51BrUQa18RSQflIoJxaVckhT6jULf3AYzmtAkInmhwB7KkkaJJi9tPf8ktl5w0uyEpoFigcMLfXzw2l2cseV2RsbGmz5eEZEkSsWEkvrFRAz41NtPnlP1Mrx+MLZqRhUyItJOOmIPxfWLKecQW/USl8JRhYyItJMCe6i8X0yS8ckpTth0y5x0S1IKJ25bEZFWUGAvM7x+kDs3nZUa3J1D6ZaRsfHUSpjKbUVEWkGBPUa1tAwcSrfUsq2ISCvo5GmM6KRn1AsmqaL9scmpmrYVEWkFBfYE5W18z9hye2zFTJSGqWVbEZFmUyomg1pWWNJqTCLSbj19xB7Xjre89rz8/oElBcCZKs0A8NzBaS67dtdsnj16XGVqRi19RaTVejawV5tYVHn//gOlOY+PmjvGTUjSakwi0k49m4qpNrGolt4xqnoRkTzp2cCeNrFoZGy85iqW8ckp1n/8W6pXF5G269nAnlalsvnGPSwrFmp+zv0HSmy8freCu4i0Vc8G9rSJRVOlacyoOvEoTmnalZYRkbbKFNjN7CEz22Nmu8xsNLxthZndamb3hz+XN3eojRX1hkkyeaA02zsmatd70enHpbYbiGgykoi0Uy1VMWe6+0/Krm8CbnP3LWa2Kbz+4YaOrknKyxiTlsDrs2AhjTs3nTV72+Uje3ji6WerPn9SmqdaeaWISCMspNzxHOA14eWrgW/TAYE96xJ40+5zyhgvH9nDNXc9UvX5+4zYyUjq2y4irZI1x+7At8xsp5ldGt52lLs/Hl5+Ajiq4aNrgnrLGLft2JfpMe7xgVp920WkVbIG9le5+ynAm4A/MLNXl9/p7g7x/a/M7FIzGzWz0YmJiYWNtgFqzX8/FpY/Zl3c2iG2B3vSfpWPF5FGyxTY3X08/PkU8DXgFcCTZnY0QPjzqYTHXuXuQ+4+tHLlysaMegGS8t/9ZrG3DywpzKZMsorrwZ60XzUHE5FGqxrYzWypmb0gugy8AbgbuBm4ONzsYuCmZg2ykZKadF142rGxt7uTOXVTrjLNouZgItIqWU6eHgV8zYIj2kXAl939X83se8B1ZnYJ8DDwtuYNs3HSmnQNHb9i3u0fvHZX4nOd+KtLeWDiQGKaZnxyijO23D77fOedOsgd902oKkZEmso8Y+64EYaGhnx0dLRl+2uEpP7qBnzq7ScD8MFrdyUusFGuWOjnynPXKZiLSE3MbKe7D2Xdvmdnnma1ccMa4rLvTnDUv3X73kxBHVQFIyKt0ZOBfWRsnDO23M4Jm26JrWApN7x+MHW5u3qahYmINFPPBfZootB4uD5pXAVLpaQ2AqsGijVXtVg4BhGRZum5wF7PRKG0ipa0ZmJxohSOiEiz9NwKStUmCqX1cym//cy1K+csm3fYoj4mp0qzvWcGB4qJaRdNShKRZuq5wL4qIeCuGihW7ecSBfi4ZfOKhX4+/faT51S8JFXUaFKSiDRTz6Vi0tIqWdM0WbfTpCQRaYeeOGKP0ivjZW16o58DxQJm6bXo0USjKC2TNcWSNhlKRKRZuj6wJ7XpnXan0G8889xBSjPVK9GjtMzowz/DiO94FpdiKU/hiIi0QtcH9rQ2vaXp2mbdTpWm2bZjX2xQN+L7sIuItFrXB/ZGV6Ak9YVxgqPz8qqaZWGaZ/JAac5lpWREpJm6PrAnVcGkiSYkxT0uaSm9wZiqmsmp0uz95Ze1epKINFPXV8WkTSAq9BuFvrmdYNImHqW1902qqkmivjEi0ixdf8QeHRF/9OZ75hw1L19S4M0vP5obdj46e/K0z+C8U+ee7KzW3ndgSYFnS9NcltLeN4kmKolIM3R9YI88d3BmzvVfPneQL9/1COW3zjhc+719DB2/YraaJS5VEt0+MjbOxq/uzlRVE0cTlUSkGbo+FQPxlTGlaWcmZtvStGdOkWzdvrfuoK6JSiLSLD1xxF5Pa93ylY+SKliyPq+BqmJEpGV6IrDXWhljHKqISatgyfK80UpLCuIi0io9kYpJWgUpSWVyJamCZeOGNfOqauKeS9UvItJKPRHY01ZBKrd8SSHxvri0y/D6QbZecBIDxeTHQXDUv3rTLaz/+LfmLbJRy2pOIiJZ9ERgh+RVkCLFQj8f+d2Xpa6WFGd4/SC7PvIGHtry5qr72H+gxMbrd88G73pWcxIRqaZnAnu1lY6idMtCWu1mWU2pvOqmntWcRESqyRzYzazfzMbM7Bvh9RPMbIeZ/cjMrjWzxc0b5sINrx/kynPXpR5Vj09O8bGv30Nllv2wRdnepiz7iPZT/rOSJi6JyELUcsT+AeDesuufAD7l7r8O7AcuaeTAmmF4/SB3bjorNfDuP1BiqjS3wn1yqpQ5RZJlHwZcPrIn8YSuJi6JyEJkCuxmdgzwZuBz4XUDzgKuDze5GhhuxgCbodYFqKH2FElaxYyD2v+KSNNkPWL/NPCnMDtZ80hg0t0PhtcfBWILtc3sUjMbNbPRiYmJBQ22UbKmTCrVkiKJKmaSVGv/KyJSr6qB3czeAjzl7jvr2YG7X+XuQ+4+tHLlynqeouHKe6b3W/YK91pSJJeP7OFD1+1OvD9pt7X+sRERqZRl5ukZwFvN7GzgcOBXgM8AA2a2KDxqPwboiBq9pKXyqin0W+YUyeUje7jmrkdSn2t6xuelYgp92fchIpKk6hG7u29292PcfTXwDuB2d38ncAdwfrjZxcBNTRtlAyX1TO83w0g+kl66eFHmFMm2HfsS7xscKLJ08SLieocdcXj2fYiIJFlIr5gPA18xsyuAMeDzjRlSY42Mjc/rxR5n2p1Pv/1kPpjQV/3psseXp3LiGnqlfQt4LJyMFGfyQPoYRUSyqCmwu/u3gW+Hlx8AXtH4ITVOrf3SN9+4h2XFQuwfgSi/XpnKiWsSlrR8HszvQxO3DxGRhejqmae19kufKk1jRurM0yyzRS887diax6r+7CLSKF0d2OuZwTl5oDRbCmkEOfErz103ezSe9Jzltw8dv4Kli7PXyS9fUpizDxGRhejqfuy19mGPHpO0JF7acyalaiCYdJT2veHZUtxaTiIi9enqI/Ys/dLLZUmHVGsSFpeqcUjtB6/GXyLSSF0d2LP2S4fs6ZDyWau1pGqqZfqj5fjUsldEFqqrUzHAnLTKizd/M7FapZZ0SFqqJqmqJou0ZfhERLLq6iP2SmnVKo1Kh9TQoaCp4xCR3tX1R+zlrhheB5A43X8hfdCjSUv7GzDJSP3YRWQheuqIHYLgXuvyd9WUL3HXCJqoJCIL0XOBHapXttQqqf9MPTRRSUQWqmdSMZX9Xc47dZA77ptI7PdSi7TUyeBAkTPXrkzt9li+7ULGISICPRLY4/q73LBzvGGzPZMmLUWrIQ2vH+SWHzyemn8fHChy56azFjwWEZGeSMVk6e+yEBs3rImdgOThvgHS2r4r/SIijdT1gX1kbDzxpGajqk+G1w8mTkCK9vF0Sm37eacm18WLiNSqqwN7lIJJ0sjqk2qVNmn7umHnuGacikjDdHVgT6tWaXT6o1qlTdz9EU1KEpFG6uqTp2l15Y1ukxs9V9LKStHPyxJWaHpscqrqykwiIll0bWAfGRtPbJc7GLbmbbS0HjLR/Vu37439g7OsWKi6MpOISBZdm4rZun1vbFCPShDbJSllY0ZTK3dEpHd07RF7ve1zmyHL5KikRbTVN0ZEatW1gT1t9aRWpjiyTo5KStGob4yI1KprUzF5qULJOjmq0f1rRKR3VT1iN7PDgX8HDgu3v97dP2JmJwBfAY4EdgLvcvfnmznYLC4f2cOXdjySOtMTWpfiSNpPtGJSVPkSHb1/7Ov3zLYeOGxR1/7dFZEmyhI5ngPOcveTgJOBN5rZ6cAngE+5+68D+4FLmjfMbC4f2cM1d1UP6tC6FEfafqLKl/LJSeUrOU1OlebdLyJSTdXA7oFfhlcL4T8HzgKuD2+/GhhuyghrsG3HvkzbtTLFkZYSgrlpmWb3tBGR3pDpu76Z9ZvZLuAp4Fbgx8Ckux8MN3kUiD0TaWaXmtmomY1OTEw0YsyJktYzLVe5+HSzlS9+nSRK1ySlbVQZIyK1yBTY3X3a3U8GjgFeAazNugN3v8rdh9x9aOXKlXUOM5v+KguOlrfRbaXh9YPcuemsuvvJqDJGRGpR09k5d58E7gBeCQyYWXTy9Rig7YngtMWqYW4b3Xaop5+MKmNEpFZVA7uZrTSzgfByEXg9cC9BgD8/3Oxi4KZmDTKrK4bXcdHpx5F24N7OtEZ5WsaYnxaqdr+ISBbmVfLSZvZygpOj/QR/CK5z94+b2YsIyh1XAGPARe7+XNpzDQ0N+ejoaEMGXs0ZW26PnfCTp5WKqjX9Ghkb58+/todnng9OqBrwztOP44rhdW0asYi0g5ntdPehrNtXrWN39x8A62Nuf4Ag355LGzesmTPjE/KV1oibkVo+I3ZkbJwPfXU30zOH/vA6zK6dquAuIkm6dgZM3tMa1Uobt27fOyeol8ta1ikivanresWkpTdGxsY5Y8vtueh3ntTHZnxyihM235I6ySpLWaeI9K6uCuxp6Q0gN/3O03rFQ/rC11C9rFNEeltXBfZq6Y2k+1od2JN6xWdVraxTRHpbVwX2tIZbSce4rS5/HBkbT12yr5olhT6Gjl/RwBGJSLfpqpOnSTM0jWDpuVoe0wxRqmghDpRm1BhMRFJ1VWDfuGFN7JG5A2a0fVZnXKqoHmoMJiJpuiqwQ/IJyckDpbaXP9aS9ilU+WTUGExEknRNjr1ammPVQHHOghbtkLZcX6XpKmdX1RhMRJJ0zRF7WpojLzNOq/VmL5cwNwnIz+sRkXzqmsCelpp47uA0ow//rIWjiRc3G7ZWeZtBKyL50zWpmLQ0x4znp8dKZTroxZu/mXkm6UCxkJsGZiKSX11zxJ4lzZHHHiu1TDbShFMRyaJrjtijo+Ct2/cmHrnnscfKFcPreHDil9z54+qpov0HSvN64Zy5diV33DeRi/43IpIPXXPEDoeWoEvqpZLHHisjY+N8/5GnM2+/8au7GZ+cwglm1F5z1yNzrmvykoh0VWCPJKU38thjpdZJS6W0chk0eUlEuiQVE6Unxien6Ddj2p1ioY/nDs4w48GR+oWnHdv2E6eVFto3JokmL4n0to4P7JWteqM8+lRphmKhP7elgY3oG5NEk5dEelvHp2LSUhl5TkvU0zem0G8U+tLPE2jykoh0fGCvlnbIa1qinnGVpp2DZTn25UsKXHT6cbld/k9E2qPjUzHV+q/kNS1RS9+YcuWnTp8tzTB0/IrcnTsQkfbq+CP2tIlJeU5LxI27WpqlUp5TTSLSPlUDu5kda2Z3mNkPzeweM/tAePsKM7vVzO4Pfy5v/nDnG14/yHmnDs6rUc97WiKub8zWC06q+XnKUzrRYt0nbLqFM7bcrnp2kR6VJRVzEPiQu3/fzF4A7DSzW4F3A7e5+xYz2wRsAj7cvKHGGxkb54ad43NmlUZH6nkN6pG4NsJpM2fjRKmmtIW88/4+iEhjVT1id/fH3f374eVfAPcCg8A5wNXhZlcDw80aZJpqC1h3mlpa+5anmrrtfRCR+tWUYzez1cB6YAdwlLs/Ht71BHBUwmMuNbNRMxudmJhYwFDjpS1g3YmiFE0Wh5cts5T0PuS1KkhEmidzYDezI4AbgMvc/efl97m7k7Aqnbtf5e5D7j60cuXKBQ02TtoC1p2aYx5eP5ipV/v+A6XZ3jBJ70Neq4JEpHkyBXYzKxAE9S+5+43hzU+a2dHh/UcDTzVniOnSFrDu5DRE1pRMlG6J2z7PVUEi0jxZqmIM+Dxwr7t/suyum4GLw8sXAzc1fnjZJLXF6uQ0RHnVTDXjk1Ns3b6X804dnFNlc96pg2zdvldVMiI9JssR+xnAu4CzzGxX+O9sYAvwejO7H3hdeL2lsixg3cmiNsRZg/sNO8fZuGEND255Mxs3rOGGneNq6SvSg7JUxXzH3c3dX+7uJ4f/vunuP3X317r7ie7+Ondv+aKinbCAdSPUmpYBVcmI9LKObimQlmrJ8+SkJJWrI0W1+MPrBxl9+Gds27Gv6ipQ45NTjIyNq0pGpId1dGBP6rcyOFDsyKCeNMEImDcJK83mG/ewrFhgcqo0775OT0+JSHUd3SummypB0lIntbb4nSpNY0bXvDciUpuODuxx/VY6MQUD6ROM6kmfTB4odc17IyK16ehUTDdJSitFqZNaZ9IOLCnE9qIRke7X0UfsUV66G0r60tJKGzesqbml79NTpY58H0Rk4To6sHdTSV9aWml4/SBHHF7bl6sZ7+yZtyJSv45OxXRbSV9a6mTywPwKl2o69X0QkYXp6CP2ZcVCTbd3snrKFFXaKNKbOjqwW0LaOen2TlZLn3aAQr+ptFGkR3V0KiYpPbH/QHDisJsqQqLX8rGv38P+DGmZ0rRz2bW7uOzaXUCQs++EVaVEZOE6+og9LdXQqdUx1TxbmplzvVjo59NvP5mHtryZi04/LvFxnVwxJCK16ejAnpae6NTqmDTVqoC27diX+vhufE9EZL6OTsVEaYUo3VCpW6pCouZgSZOUHgsbf2XpJRO9J0kNx0Sk83X0ETsEwX2gi6tjyidhJRlYUkjtS19u1UCxqyZ2ich8HR/YoburY6o1ACsW+nEnU5MwI0hfddPELhGZrysCe1J1TD2TevImLZ00UCxweKEvtj1vHCf4hpP0nOOTU1pGT6QLdEVgT6qO6YYJOkmvYaBY4LmDM5lKHyPREntp74tSMyKdrysCezf1Za+U9NrMsqVfyh8TvR9ZJjspNSPSuTq2KqayquO8Uwe5476JrqvyiF5DZQVLUiVQOSM4Ah8cKHLm2pVs3b6XD167a977lVRL0y1VRSK9piMDe9wycjfsHO/ahSQqm4ONjI3PBu00DhT6jDPXruSGneOJ79f6j38rNqUzsKTzq4pEelFHpmJ6vapj6/a9VYN6pDTjbNuxL/X9Sip/z7jEqojkTNXAbmb/ZGZPmdndZbetMLNbzez+8Ofy5g5zrrSqjl5Qa4okaeLS+OQUqzfdklhVM6nFOkQ6UpYj9n8G3lhx2ybgNnc/EbgtvN4ySVUdBj0RiFpZ7aPqGJHOUzWwu/u/Az+ruPkc4Orw8tXAcIPHlWrjhjXEzT1yemPVoFpb+C5EL6W4RLpFvTn2o9z98fDyE8BRSRua2aVmNmpmoxMTE3Xu7pCoGqaXKznKl9ED6A+n2DZrou142ItGRDrDgqti3N3NLPE0m7tfBVwFMDQ0tKDTcZXVMHG6YVJSFmnL6EXO2HJ7w847bLx+9+x+RSTf6j1if9LMjgYIfz7VuGukiqIAAAwiSURBVCEly9I3pRsmJTVKI1M2pWlXSkakQ9R7xH4zcDGwJfx5U8NGlCItzaIVgua6fGQP23bsy9TKN6uoigaClgYffevL5tXXl0+kOnPtysyTxtRGWKRxqgZ2M9sGvAZ4oZk9CnyEIKBfZ2aXAA8Db2vmICOrBoqxqYWoa6ECQeDykT1cc9cjTd3H5FSJjV89lJ6JmzRWPoao/0y0fbm4xyZtKyLVZamKudDdj3b3grsf4+6fd/efuvtr3f1Ed3+du1dWzTRFr1fDZFVtJaVGKc0cSs9US5NBcoVNr084E2m0jpp5Orx+sKerYbJqZPqlmvHJKU7+2Lcyn6SN2y7ps9NnKlKfjgrscKj1bKVeqYbJor/FK4xk7QcP8ZPIurntskg7dFxg7+YWvY1y4WnHtnsIieLSZvpMRRqrI7s7Hl7om83JxlVn9LorhtcBNP0Ear0q0zFJrYn1mYrUp6MCe9wEpecOzrRxRPl1xfA67rhvInPuO0sb4EYaGRufE7izTLgSkWw6KhWj6ona1JLKaHWHXn1mIs3TUYFd1RO1qecIeOni1jQX02cm0jwdlYpZVizEVmA4QV8U5WUD5bM4+81qKn985vnp2Vm8EBxZZ03n1LKvJSl/QDQLVWRhOuaIfWRsnGeeP5h4fzRbsde7EEbnIcbDtUzrqWkfn5xi41d3s/H63dmDep9x4WnHUujLVmr5zPPTXD6yZ97tlePX5ypSu44J7Fu376U0nR6klG9PngFaXtqeJfSWZrzq+13uBYct4orhdWy94CSyltHHzZDVeRSRhct9Kib6Wp71yLHXc7eJr9/hoS1vnnPTCZtuadhJ08mpUs3PN+3O6k23YMA7Tz+OK4bX6TyKSAPkOrBn6b9eqddnKyY1Sot7XwaWFNh/IPus0Wrq/SPhHKq5r2X8IhIv16mYLI2lykVdHntZLbM4W9hSJpNtO/ZpFqpIA+T6iL3Wr9+O2rzWMovz6Rp6vLTCtDuXXbtr3u1TpWkuu3bXvPuWLu6n0N/H5FRptiJnoFjg+YPTHCgFE9f6DGYcli8p4B685qyVNs2ozlHFj7RCrgN70tfyJMuXFJo4ms6RdRZnre9v3jzz/DQQfKOLqn8qy2Fnwm8l5SmnLP3em9EjXn3npVVynYpJ6r+eJG+phbyr9f3tJtUqbZpRnaOKH2kV8xZGw6GhIR8dHa3pMdFSbFkY8GBF5Yekq+X9lcDgQJHHJqcoFvqYOjgz54BicKDI6iOL3PXA/jlzCAZTvh1V+71V+kbMbKe7D2XdPtepmJGx8ZqaU6lyonZpAUfiRe9XlMevvC/u/RyfnEr8XU77vVX6RuqR61TM1u17Mwd1VU7UJ64KRZrDmT85rNrvrdI3Uo9cp2KyTHgx0NfTBar8qn/m2pXccd8Ej01OMbCkwLOlaaZijk6lsQz4rRev4IeP/6Kh8wvKLV3cz1/9XtCvP+kzLxb65nwbWbq4n987ZXD2/mXFAqXpmfDk9aGWz4MJ/w+zpJLitikf40BZVdOyYgGz4IR4VA1VT9VTpfIxRPuYPJD+fNVeW6PSaLWmYnId2M/YcntqmqDfjB9feXYjhiYZVPs8KlV+PrU+Xpqjz4LPpjTT+P/7xUI/V567bjZ4xU0yzLJNoc/AqKmtRdo4qqk2GTLu+aq9tiyvPataA3uuUzHV0gR5XgKuG9Watqn8fJT2yYcZpylBHeanibKkkuK2qbVXUbVxVFNtMmTc81V7be1Moy0osJvZG81sr5n9yMw2NWpQkeH1g1x57rp5C1j3m3FR2FtEWqf88zCCr94XnX5c5s8n6fOU7lI+sTBL759m9QGq5XmzbFu5TbXX1s6+R3VXxZhZP/D3wOuBR4HvmdnN7v7DRg0OtGRa3iz08yh/fFJqptYe8pIv5VU+WXr/NGuiXC1VclnGUPl81V5bO/seLeSI/RXAj9z9AXd/HvgKcE5jhiW9IKkvTC193SHMGdewfa/rM2p6f2tRWeWTpfdP3DaFPqPQX/8Ya62Sq5YmjHu+aq+tnX2PFhLYB4HyhtqPhrfNYWaXmtmomY1OTEwsYHfSbeJSO1eeu262r/tAcX6LiCWFPoqFQ7+2y5cU+OTbTuZvLziprpYShb7gOSy8HKePbD3sC31U7UV/2KK54y9nwBkvXjHndRQLfbPjS0p91WLp4n4++baT2XrBSbEpNSN4jysfU37/QLEwZwnF6CVHn1/lIuVxn3G1bbZecBJbzz80xuVLCgwUC7P7j96j/vANL78/bh/VVI4h2kfa81V7bVlee7PUXRVjZucDb3T394bX3wWc5u7vT3pMPTNPRUR6XSurYsaB8rKHY8LbRESkjRYS2L8HnGhmJ5jZYuAdwM2NGZaIiNSr7qoYdz9oZu8HtgP9wD+5+z0NG5mIiNRlQU3A3P2bwDcbNBYREWmAXM88FRGR2rW0V4yZTQAPZ9j0hcBPmjychdD4FkbjW7i8j1HjW5jK8R3v7iuzPrilgT0rMxutpbSn1TS+hdH4Fi7vY9T4Fmah41MqRkSkyyiwi4h0mbwG9qvaPYAqNL6F0fgWLu9j1PgWZkHjy2WOXURE6pfXI3YREamTAruISJfJVWBv9opMNYzjn8zsKTO7u+y2FWZ2q5ndH/5cHt5uZvZ34Zh/YGanNHlsx5rZHWb2QzO7x8w+kKfxhfs83My+a2a7wzF+LLz9BDPbEY7l2rDHEGZ2WHj9R+H9q1swxn4zGzOzb+RtbOF+HzKzPWa2y8xGw9vy9BkPmNn1Znafmd1rZq/My/jMbE34vkX/fm5ml+VlfOE+Pxj+37jbzLaF/2ca9zvo7rn4R9Bv5sfAi4DFwG7gpW0ay6uBU4C7y277a2BTeHkT8Inw8tnAvxC0pT4d2NHksR0NnBJefgHwn8BL8zK+cJ8GHBFeLgA7wn1fB7wjvP2zwPvCy78PfDa8/A7g2haM8Y+BLwPfCK/nZmzhvh4CXlhxW54+46uB94aXFwMDeRpf2Tj7gSeA4/MyPoJ1Kx4EimW/e+9u5O9gS97cjC/2lcD2suubgc1tHM9q5gb2vcDR4eWjgb3h5f8FXBi3XYvGeRPB8oR5Hd8S4PvAaQQz6RZVft4EjeReGV5eFG5nTRzTMcBtwFnAN8L/0LkYW9kYH2J+YM/FZwwsCwOT5XF8FWN6A3BnnsbHoUWKVoS/U98ANjTydzBPqZhMKzK10VHu/nh4+QngqPBy28YdfiVbT3BEnKvxhamOXcBTwK0E38Ym3f1gzDhmxxje/zRwZBOH92ngT4GZ8PqRORpbxIFvmdlOM7s0vC0vn/EJwATwhTCd9TkzW5qj8ZV7B7AtvJyL8bn7OPA3wCPA4wS/Uztp4O9gngJ7x/DgT2db60TN7AjgBuAyd/95+X15GJ+7T7v7yQRHx68A1rZzPBEzewvwlLvvbPdYqniVu58CvAn4AzN7dfmdbf6MFxGkKv/B3dcDzxCkNmbl4XcwzFG/Ffhq5X3tHF+Y2z+H4A/kKmAp8MZG7iNPgT3vKzI9aWZHA4Q/nwpvb/m4zaxAENS/5O435m185dx9EriD4KvlgJlFraLLxzE7xvD+ZcBPmzSkM4C3mtlDBAuwnwV8JidjmxUe1eHuTwFfI/jjmJfP+FHgUXffEV6/niDQ52V8kTcB33f3J8PreRnf64AH3X3C3UvAjQS/lw37HcxTYM/7ikw3AxeHly8myG1Ht/+38Mz66cDTZV/3Gs7MDPg8cK+7fzJv4wvHuNLMBsLLRYJzAPcSBPjzE8YYjf184PbwiKrh3H2zux/j7qsJfsdud/d35mFsETNbamYviC4T5InvJiefsbs/AewzszXhTa8FfpiX8ZW5kENpmGgceRjfI8DpZrYk/P8cvX+N+x1sxQmMGk4qnE1Q5fFj4M/bOI5tBLmvEsHRySUEOa3bgPuB/wOsCLc14O/DMe8Bhpo8tlcRfIX8AbAr/Hd2XsYX7vPlwFg4xruBvwhvfxHwXeBHBF+PDwtvPzy8/qPw/he16HN+DYeqYnIztnAsu8N/90T/F3L2GZ8MjIaf8QiwPGfjW0pwVLus7LY8je9jwH3h/48vAoc18ndQLQVERLpMnlIxIiLSAArsIiJdRoFdRKTLKLCLiHQZBXYRkS6jwC4i0mUU2EVEusz/B7r6khWtwOqEAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.title(\"text length vs # instances\")\n", + "plt.scatter(list(text_len_counter.keys()), list(text_len_counter.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 6960/6960 [00:00<00:00, 1778070.16it/s]\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'audio length distribution')" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAFwCAYAAACGt6HXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdNElEQVR4nO3de5ScdZ3n8fc3gXRukIakc4EQmyysyjgKLiqOjseBmd14GdE9yOhyJLpRZhdmV47uIFlnxsvojnpmx8s4uINExfUC4uiArBMHAXWdUZwYAbkMY2ShKQJ0CEm4JFFJf/ePeioUlU53JenqX3XX+3VOnX5u9dS3q7o+/atfPc/zi8xEkjT5ZpQuQJJ6lQEsSYUYwJJUiAEsSYUYwJJUiAEsSYUYwDooEfHeiPhCNb0iIh6PiJkHsZ/PRcQHJr7Cth77noj47YO872BEZEQcVs3/XUSsnqC6fjMi7pqIOvez/9sj4uUTtT8dvMNKF6CpLzOHgPml6xhLRHwOqGXmH3Vi/5n5ijbrSODEzNw0xr7+L/DMiahrtN87M39tIvatQ2cLWOoijRa1eoMB3EMi4uKI+HlEPBYRd0TE65rW7e1SqOZbP2IfHxHfre57HbBojG2PiYhrIuKRiNgUEW87gBpfHRE3R8T2iPjHiHhu07p7IuK/RcStEbEjIq6MiNlN6y+KiAciYnNEvLWq6YSIOA84B7io6ir5RtNDnry//bXUNTMi/jwiHo6Iu4FXtaz/TkS8tZo+oXqudlTbX1kt/161+S1VHb8XES+PiFpEvCsiHgQ+21jWUsILqtdsW0R8tlFnRLw5Ir7fUsuYv3dzl0ZE9EXEx6rnbHM13Veta9T2zogYrp7bt7TxMqpNBnBv+Tnwm8AC4H3AFyJiWZv3/RLwY+rB+6fAWP2dVwA14BjgLOB/RMTp4z1ARJwCfAb4fWAh8NfANY1AqJwNrAKOB54LvLm67yrgHcBvAycAL2/cITMvBb4IfCQz52fm7463v1G8DXg1cApwavV77c+fAn8PHAUsB/6yquNl1frnVXVcWc0vBY4GngGct599ngP8O+BfAf8aGLcrZZzfu+HdwGnAycDzgBe27Hsp9b+XY4E1wF9FxFHjPbbaYwD3kMy8KjM3Z+ZI9eb/GfU33JgiYgXwAuCPM/MXmfk94Bv72fY44CXAuzJzd2beDFwGnNtGiecBf52ZN2Xmnsy8HPgF9YBo+ET1OzxS1XBytfxs4LOZeXtm7gTe28bjjbW/VmcDH8vM+6pt/2yMff6KepgeUz0H3x9jW4AR4D3Vc7trP9t8sumxPwi8cZx9tusc4P2ZOZyZW6j/Y35T0/pfVet/lZnfBB5ngvqnZQD3lIg4t+nj/XbgOTR1JYzhGGBbZj7RtOzeMbZ9JDMfa9n22DYe5xnAOxv1VTUeV+2z4cGm6Z089eXfMcB9Teuap8eyv/21at3//n5/gIuAAH5UHXHwH8epYUtm7h5nm9bHPmZ/Gx6gY3j679K6762Z+WTT/FjPkQ6QHf49IiKeAXwaOAP4QWbuiYibqQcFwBPA3Ka7LG2afgA4KiLmNYXwCmC0S+ltBo6OiCOaQngFcH8bZd4HfDAzP9jWL/V0D1D/uN9wXMv6Q73s3wMt+1yxvw0z80HqXRZExEuBb0fE98Y48qGd2lofe3M1/bTXLSKaX7d29r2Z+j++20fZtzrMFnDvmEf9zbgFoPoy5TlN628GXhb1Y3oXAGsbKzLzXmAD8L6ImFWFymj9iWTmfcA/An8WEbOrL9HWAF8YbfsWnwb+U0S8KOrmRcSrIuKINu77FeAtEfHsiJgL/HHL+oeAlW3sZ6z9/9eIWF71gV68vw0j4vUR0fhnsI368z5yiHVcUD320dT7bRv9x7cAvxYRJ1dfzL235X7jPd6XgT+KiIGIWAT8Ce29VpoABnCPyMw7gP8J/ID6m/LXgX9oWn8d9Tf1rdS/bLu2ZRf/AXgR8AjwHuDzYzzcG4FB6i2pr1Pv3/x2GzVuoN5y/CT14NrE/r8Ua73v3wGfAG6s7vfDatUvqp/rgJOqro2/bWefLT4NfIt64G0EvjbGti8AboqIx4FrgLdn5t3VuvcCl1d1nH0Aj/8l6l/s3U39y9QPAGTmvwDvB75NvU+/tb95vN/7A9T/ud4K/LT63YqcGNOLwguyazqKiGcDtwF9LX2YUtewBaxpIyJeVx3XehTwYeAbhq+6mQGs6eT3gWHqH9H3AP+5bDnS2OyCkKRCbAFLUiFT+jjgVatW5fr160uXIUnjidEWTukW8MMPP1y6BEk6aFM6gCVpKjOAJakQA1iSCjGAJakQA1iSCjGAJakQA1iSCjGAJakQA1iSCjGAJakQA1iSCjGAJakQA1iSCpnSl6PsJiMjIwwNDTEyUh/8dsaM+v+2FStW7J2WpGYG8AQZGhpizSXr2bVjKzNnH0H/kuXs3D7MuvNXMTg4WLo8SV3IAD4EjVYvQK1WY+6CxZAwc+4C5i1aVrg6Sd3OAD4EjVbv3P7FbL33TuYvXVm6JElTiJ2Th2hu/2LmLVrGnCMXli5F0hRjAEtSIQawJBViAEtSIQawJBViAEtSIQawJBViAEtSIQawJBViAEtSIQawJBViAEtSIQawJBViAEtSIQawJBViAEtSIV6QvYNyZIRarQY4NpykfZkIHbRrx8OsvWojay5Zv3foIklqsAXcYXP6B+jr6ytdhqQuZAtYkgqxBdym5hGQod6nK0mHwgBuU/MIyE9se5D3n/nc+oosW5ekqcsAPgCNEZB3bhtm7VUb2bP7MeYvXcm80oVJmpIM4IM0p3+APTtnlS5D0hTml3CSVIgBLEmFdDyAI2JmRPwkIq6t5o+PiJsiYlNEXBkRs6rlfdX8pmr9YKdrk6SSJqMF/Hbgzqb5DwMfzcwTgG3Ammr5GmBbtfyj1XaSNG11NIAjYjnwKuCyaj6A04GvVptcDry2mj6zmqdaf0a1vSRNS51uAX8MuAgYqeYXAtsz88lqvgYcW00fC9wHUK3fUW0vSdNSxwI4Il4NDGfmjyd4v+dFxIaI2LBly5aJ3LUkTapOtoBfArwmIu4BrqDe9fBxoD8iGscfLwfur6bvB44DqNYvALa27jQzL83MUzPz1IGBgQ6WL0md1bEAzsy1mbk8MweBNwA3ZOY5wI3AWdVmq4Grq+lrqnmq9Tdkpif6Spq2ShwH/C7gHRGxiXof77pq+TpgYbX8HcDFBWqTpEkzKaciZ+Z3gO9U03cDLxxlm93A6yejHknqBl4LYhKNdklLhymSepcBPImaL2m5c/sw685fxeDgYOmyJBViAE+yxiUtJcnPv5JUiAEsSYUYwJJUiAEsSYUYwJJUiAEsSYUYwJJUiAEsSYUYwJJUiAEsSYUYwJJUiAEsSYUYwJJUiFdDmwQ5MkKtVqtmytYiqXsYwJNg146HWXvVZvbsfoz5S1cyr3RBkrqCATxJ5vQPsGfnrNJlSOoi9gFLUiEGsCQVYgBLUiEGsCQVYgBLUiEGsCQVYgBLUiEGsCQVYgBLUiEGsCQVYgBLUiEGsCQVYgBLUiEGsCQVYgBLUiEGsCQVYgBLUiEGsCQVYgBLUiEGsCQVYgBLUiEGsCQVYgBLUiEGsCQVcljpArrdyMgIQ0ND1Go1yNLVSJpODOBxDA0NseaS9ezasZX5S1cyr3RBkqYNA7gNc/sX2/qVNOHsA5akQgxgSSrEAJakQgxgSSrEAJakQgxgSSrEAJakQgxgSSrEAJakQgxgSSrEAJakQgxgSSrEAJakQgxgSSqkYwEcEbMj4kcRcUtE3B4R76uWHx8RN0XEpoi4MiJmVcv7qvlN1frBTtUmSd2gky3gXwCnZ+bzgJOBVRFxGvBh4KOZeQKwDVhTbb8G2FYt/2i1nSRNWx0L4Kx7vJo9vLolcDrw1Wr55cBrq+kzq3mq9WdERHSqvtJyZIRarcY999zDyMhI6XIkFdDRPuCImBkRNwPDwHXAz4HtmflktUkNOLaaPha4D6BavwNYOMo+z4uIDRGxYcuWLZ0sv6N27XiYtVdtZM0l6xkaGipdjqQCOhrAmbknM08GlgMvBJ41Afu8NDNPzcxTBwYGDrnGkub0D9SHO5LUkyblKIjM3A7cCLwY6I+Ixlh0y4H7q+n7geMAqvULgK2TUZ8kldDJoyAGIqK/mp4D/A5wJ/UgPqvabDVwdTV9TTVPtf6GzHQoTEnTVidHRV4GXB4RM6kH/Vcy89qIuAO4IiI+APwEWFdtvw743xGxCXgEeEMHa5Ok4joWwJl5K3DKKMvvpt4f3Lp8N/D6TtUjSd3GM+EkqRADWJIKMYAlqRADWJIKMYAlqRADWJIKMYAlqRADWJIKMYAlqZBOnoqsNjSuC9ywYsUKZszw/6LUCwzgwurXBd5M/5Jhdm4fZt35qxgcHCxdlqRJYAB3gTn9A8xbtKx0GZImmZ91JakQA1iSCjGAJakQA1iSCjGAJakQj4IYxcjIyN6h4mu1GjgynaQOMIBHMTQ0xJpL1jO3fzFb772T+UtXli5J0jRkF8R+zO1fzLxFy5hz5MLSpUiapgxgSSrEAJakQgxgSSrEAJakQgxgSSrEAJakQtoK4Ih4STvLJEnta7cF/JdtLpMktWnMM+Ei4sXAbwADEfGOplVHAjM7WVgvah6eyKGJpOlvvHf4LGA+9aA+oun2KHBWZ0vrPfXhiTay5pL1e69FIWn6GrMFnJnfBb4bEZ/LzHsnqaaeNqd/gL6+vtJlSJoE7V6Mpy8iLgUGm++Tmad3oihJ6gXtBvBVwP8CLgP2dK4cSeod7Qbwk5n5qY5WIkk9pt2v2b8REedHxLKIOLpx62hlkjTNtdsCXl39/MOmZQl4pfIOaD4cDTwkTZqu2grgzDy+04XoKfXD0TbTv2SYnduHWXf+KgYHB0uXJWmCtRXAEXHuaMsz8/MTW44a5vQPMG/RstJlSOqgdrsgXtA0PRs4A9gIGMCSdJDa7YL4L83zEdEPXNGRiiSpRxzsNztPAPYLS9IhaLcP+BvUj3qA+kV4ng18pVNFSVIvaLcP+M+bpp8E7s3M2v42liSNr60uiOqiPP9M/UpoRwG/7GRRktQL2h0R42zgR8DrgbOBmyLCy1FK0iFotwvi3cALMnMYICIGgG8DX+1UYZI03bV7FMSMRvhWth7AfSVJo2i3Bbw+Ir4FfLma/z3gm50pSZJ6w3hjwp0ALMnMP4yIfw+8tFr1A+CLnS5Okqaz8VrAHwPWAmTm14CvAUTEr1frfrej1UnSNDZeP+6SzPxp68Jq2WBHKpKkHjFeAPePsW7ORBYiSb1mvADeEBFva10YEW8FftyZkiSpN4zXB3wh8PWIOIenAvdUYBbwuk4WJknT3ZgBnJkPAb8REb8FPKda/H8y84aOVyZJ01y71wO+Ebixw7VIUk/xbDZJKsQAlqRCDGBJKqRjARwRx0XEjRFxR0TcHhFvr5YfHRHXRcTPqp9HVcsjIj4REZsi4taIeH6napOkbtDJFvCTwDsz8yTgNOCCiDgJuBi4PjNPBK6v5gFeAZxY3c4DPtXB2iSpuI4FcGY+kJkbq+nHgDuBY4EzgcurzS4HXltNnwl8Put+CPRHxLJO1SdJpU1KH3BEDAKnADdRv77EA9WqB4El1fSxwH1Nd6tVy1r3dV5EbIiIDVu2bOlYzZLUaR0P4IiYD/wNcGFmPtq8LjOTp0ZbbktmXpqZp2bmqQMDAxNYqSRNro4GcEQcTj18v1hdzhLgoUbXQvWzMdLG/cBxTXdfXi2TpGmpk0dBBLAOuDMz/6Jp1TXA6mp6NXB10/Jzq6MhTgN2NHVVSNK00+6QRAfjJcCbgJ9GxM3Vsv8OfAj4SkSsAe6lPsoy1Ic4eiWwCdgJvKWDtUlScR0L4Mz8PhD7WX3GKNsncEGn6pGkbuOZcJJUiAEsSYUYwJJUiAEsSYV08igITYAcGaFWqwGwYsUKZszwf6Y0Xfhu7nK7djzM2qs2suaS9QwNDZUuR9IEsgU8BczpH6Cvr690GZImmC1gSSrEAJakQgxgSSrEPuAmIyMjDA0N1Y86OKCLZErSgTOAmwwNDbHmkvXs2rGV+UtXMq90QZKmNQO4xdz+xbZ+JU0K+4AlqRADWJIKMYAlqRADWJIKMYAlqRCPgpgimq+KBl4ZTZoODOApon5VtM30Lxlm5/Zh1p2/isHBwdJlSToEBvAUMqd/gHmLlpUuQ9IE8TOsJBViAEtSIQawJBViAEtSIQawJBViAEtSIQawJBViAEtSIQawJBViAEtSIQawJBViAEtSIQawJBViAEtSIQawJBXi9YCnsJGREYaGhgBHyJCmIgN4CmoMT1Sr1XjP1bdB4AgZ0hRkAE9BjeGJ9ux+jPlLV9LX11e6JEkHwQCeoub0D7Bn56zSZUg6BHYaSlIhBrAkFWIAS1IhBrAkFWIAS1IhBrAkFWIAS1IhBrAkFWIAS1IhBrAkFWIAS1IhBrAkFWIAS1IhBrAkFWIAS1IhBrAkFWIAS1IhBrAkFWIAS1IhHRsTLiI+A7waGM7M51TLjgauBAaBe4CzM3NbRATwceCVwE7gzZm5sVO1TTeNUZKhPlQ9wIwZMxyqXupynRyU83PAJ4HPNy27GLg+Mz8UERdX8+8CXgGcWN1eBHyq+qk2NEZJ7l8yzNZ772Tm7COY1TfLoeqlLtex5lFmfg94pGXxmcDl1fTlwGubln8+634I9EfEsk7VNh3N6R9g3qJlzDlyIXP6B5jbv7h0SZLGMdmfT5dk5gPV9IPAkmr6WOC+pu1q1bJ9RMR5EbEhIjZs2bKlc5VKUocV6yDMzATyIO53aWaempmnDgwMdKAySZockx3ADzW6Fqqfw9Xy+4HjmrZbXi2TpGlrsgP4GmB1Nb0auLpp+blRdxqwo6mrQpKmpU4ehvZl4OXAooioAe8BPgR8JSLWAPcCZ1ebf5P6IWibqB+G9pZO1SVJ3aJjAZyZb9zPqjNG2TaBCzpVy3hGRkYYGhqqH0t7wL3SknRwOnkc8JQxNDTEmkvWs2vHVuYvXVm6HEk9wgCuzO1fbOtX0qTyPFVJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKsQz4XpA41oXgOPESV3Ed2IPaFzrYs0l6/cGsaTybAH3CMeIk7qPATxNNQ9Vv/cym1G2JklPZwBPU61D1c9fupK+vr7SZUlqYh/wNNY8VL2k7mMAS1IhBrAkFWIfcA9p/mIOPCZYKs0A7iHNX8zt3D7MuvNXMTg4WLosqWcZwD2m8cVcc2vYlrBUhu+6HlVvDW/07DipIFvAPWxO/4DHBksF2QKWpEIMYEkqxACWpEIMYEkqxACWpEIMYEkqxMPQelzzCRkjIyMAzJgxw5MzpElgAPe41usGz5x9BLP6ZnmasjQJejaAmweq3DtiRI9qnJ68c9swM+cu8OQMaZL0bAA3Bqqc279474gRkjSZejaAoT5QZaPlp301f0oAL9ojTbSeDmCNrflTgpevlCaeAawxNT4lSJp4fp6UpEIMYEkqxC4I7eNpY8e1HJ7nF3PSxDGAtY/GyRl7dj/G/KUrmde0brQv5lasWGEoSwfBANao5vQPsGfnrFHXtX4x59ES0sExgNWWsbolwKMlpINhAKsto3VLjBfKksZmAKttrd0S44WyfcHS2Hx36JDM6R9gzpEL98473L3UPlvAmnAOdy+1xxawJBViAEtSIXZBqOOaz57ziznpKQawOqL5aIharcZ7rr6NZIT3n/lcli9fbhBLGMDqkNax5uYvXcmenTtYe9VGZvXd5tlyEgawOqh5rLnmZbMOP7ytkZibuy4csVnTkQGsSdfuSMyt4/Y5YrOmGwNYRbSOxDxaq3jz5s3MXbDYEZs1bRnA6gqjtYpHuxxmuzzyQlNBzwVw441Zq9W8gEyXaW0V7+9ymO1odF8Adlmoa/VcADfemLt2bD3o1pXKedoV2Bi7dTu3f/FklSUdlJ4LYKjemLZ+p6Tmroontj14QMcVj9UtMdpQS8A+29u1oYnUkwGsqa25q2K844pHOyGE2LdbYrRRPYB9ujFG69pohHLzoXJgQGt8XRXAEbEK+DgwE7gsMz9UuCR1uebjipsDsNHHP9oJIeMdcdEc2nMXLIZ4+mPO7V88arDvenQrM2cfQf+S5Xtb58ccc8zemuDpoTxeq3u0ZQd7PLSDqXanrgngiJgJ/BXwO0AN+KeIuCYz7yhbmbrdUxeG/+7eAGyELex7Qsh4R1y0Xmi+ObDHCvY5wMy5C57WOm+uqbXLpLnV3VgH8J6rb2PuUfu2xJuPhz581mF79wXjB+p4g6mOFuyjtewPtKunndq6XSe7nbomgIEXApsy826AiLgCOBOY8ADeuX243lr55S95oq9v7/Se3Y897edo6w5lmfvt4H5nH7HP67xr+5YD3n7vdtX6Xdu38Pjux7jwsls4cuFStt+/iXlLjt9nH6M+Vstj7H50Gxde9i1mHX44H1l9+qjrRnY/zrwlxzO3Wt78heNo2x+5cCm7H93KR1afvjeMR9O6n1qtRq1W46LLb2D2kQvZfv8mZsyev7e25cuX712/+7Ft+6wbS/N+26mt2zV+H4AvvfvcCT2iJjK749uoiDgLWJWZb63m3wS8KDP/oGW784DzqtlnAne1sftFwMMTWO6h6rZ6oPtqsp6xdVs90H01dVM9D2fmqtaF3dQCbktmXgpceiD3iYgNmXlqh0o6YN1WD3RfTdYztm6rB7qvpm6rZzTd1DFzP3Bc0/zyapkkTUvdFMD/BJwYEcdHxCzgDcA1hWuSpI7pmi6IzHwyIv4A+Bb1w9A+k5m3T9DuD6jLYhJ0Wz3QfTVZz9i6rR7ovpq6rZ59dM2XcJLUa7qpC0KSeooBLEmFTOsAjohVEXFXRGyKiIsL1fCZiBiOiNualh0dEddFxM+qn0dNYj3HRcSNEXFHRNweEW8vWVNEzI6IH0XELVU976uWHx8RN1Wv3ZXVF7OTJiJmRsRPIuLaLqnnnoj4aUTcHBEbqmUl/476I+KrEfHPEXFnRLy44N/QM6vnpXF7NCIuLPn8tGvaBnDTqc2vAE4C3hgRJxUo5XNA6wHYFwPXZ+aJwPXV/GR5EnhnZp4EnAZcUD0vpWr6BXB6Zj4POBlYFRGnAR8GPpqZJwDbgDWTVE/D24E7m+ZL1wPwW5l5ctOxrSX/jj4OrM/MZwHPo/5cFaknM++qnpeTgX8D7AS+XqqeA5KZ0/IGvBj4VtP8WmBtoVoGgdua5u8CllXTy4C7Cj5PV1O//kbxmoC5wEbgRdTPYDpstNdyEupYTv0NezpwLfXL8RSrp3rMe4BFLcuKvGbAAuD/UX2JX7qelhr+LfAP3VLPeLdp2wIGjgXua5qvVcu6wZLMfKCafhBYUqKIiBgETgFuKllT9XH/ZmAYuA74ObA9M5+sNpns1+5jwEXASDW/sHA9UL+C9d9HxI+r0/Gh3Gt2PLAF+GzVTXNZRMwrWE+zNwBfrqa7oZ4xTecAnhKy/u950o8FjIj5wN8AF2bmoyVrysw9Wf/4uJz6RZmeNVmP3SoiXg0MZ+aPS9WwHy/NzOdT71K7ICJe1rxykl+zw4DnA5/KzFOAJ2j5eF/i77rql38NcFXrulLvs/FM5wDu5lObH4qIZQDVz+HJfPCIOJx6+H4xM7/WDTUBZOZ24EbqH/H7I6JxotBkvnYvAV4TEfcAV1Dvhvh4wXoAyMz7q5/D1Ps3X0i516wG1DLzpmr+q9QDufTf0CuAjZn5UDVfup5xTecA7uZTm68BVlfTq6n3w06KiAhgHXBnZv5F6ZoiYiAi+qvpOdT7o++kHsRnTXY9mbk2M5dn5iD1v5kbMvOcUvUARMS8iDiiMU29n/M2Cr1mmfkgcF9EPLNadAb1y8YW+7uuvJGnuh/ognrGV7oTusMd8q8E/oV6n+K7C9XwZeAB4FfUWw5rqPcpXg/8DPg2cPQk1vNS6h/FbgVurm6vLFUT8FzgJ1U9twF/Ui1fCfwI2ET9I2Vfgdfu5cC1peupHvuW6nZ742+58N/RycCG6nX7W+CowvXMA7YCC5qWFaun3ZunIktSIdO5C0KSupoBLEmFGMCSVIgBLEmFGMCSVIgBLEmFGMCSVMj/B24VB8OU5jJfAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "audio_lens = []\n", + "for item in tqdm(data):\n", + " audio_len = item[-1]\n", + " audio_lens.append(audio_len)\n", + "\n", + "sns.displot(audio_lens)\n", + "plt.title(\"audio length distribution\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### Check words frequencies" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "w_count_df = pd.DataFrame.from_dict(w_count, orient='index')\n", + "w_count_df.sort_values(0, ascending=False, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "Collapsed": "false", + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0
เฎŽเฎฉเฏเฎฑเฏ1068
เฎ’เฎฐเฏ906
เฎจเฎพเฎฉเฏ449
เฎ…เฎจเฏเฎค397
เฎ‡เฎจเฏเฎค381
......
เฎŠเฎฑเฏเฎฑเฏเฎ•เฎณเฎฟเฎฒเฏ,1
เฎ…เฎฎเฏเฎฎเฎฎเฏเฎฎเฎพ1
เฎชเฎฏเฎ™เฏเฎ•เฎฐเฎชเฏเฎชเฎŸเฏเฎคเฏเฎคเฎฟเฎฏเฎคเฏ1
เฎ•เฎŸเฎ•เฎŸเฎพ,1
เฎคเฎฟเฎณเฏˆเฎคเฏเฎคเฏ,1
\n", + "

37080 rows ร— 1 columns

\n", + "
" + ], + "text/plain": [ + " 0\n", + "เฎŽเฎฉเฏเฎฑเฏ 1068\n", + "เฎ’เฎฐเฏ 906\n", + "เฎจเฎพเฎฉเฏ 449\n", + "เฎ…เฎจเฏเฎค 397\n", + "เฎ‡เฎจเฏเฎค 381\n", + "... ...\n", + "เฎŠเฎฑเฏเฎฑเฏเฎ•เฎณเฎฟเฎฒเฏ, 1\n", + "เฎ…เฎฎเฏเฎฎเฎฎเฏเฎฎเฎพ 1\n", + "เฎชเฎฏเฎ™เฏเฎ•เฎฐเฎชเฏเฎชเฎŸเฏเฎคเฏเฎคเฎฟเฎฏเฎคเฏ 1\n", + "เฎ•เฎŸเฎ•เฎŸเฎพ, 1\n", + "เฎคเฎฟเฎณเฏˆเฎคเฏเฎคเฏ, 1\n", + "\n", + "[37080 rows x 1 columns]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "w_count_df" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "449" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# check a certain word\n", + "w_count_df.at['เฎจเฎพเฎฉเฏ', 0]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3oAAAEvCAYAAAATj7MVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdyUlEQVR4nO3da7BdZ3kf8P+DLIigTWTHqseW7dpJFGegpHZyhrhDkyE3bEgGK0yGmDbFJRQnkzANvbi12w/OpZnQOgkJ09QZJziYDsFQ4hinIVUcw5R+gfgocnwBHAsHig7GVjGCTtGALD/9cNYx2+JIOpctbWmd329mz1n7Wetd6906a5b013rXu6u7AwAAwHg8Z9YdAAAAYLoEPQAAgJER9AAAAEZG0AMAABgZQQ8AAGBkBD0AAICROWPWHVirs88+uy+66KJZdwMAAGAmdu/e/X+6e9ty607boHfRRRdlfn5+1t0AAACYiar69NHWGboJAAAwMoIeAADAyAh6AAAAIyPoAQAAjIygBwAAMDKCHgAAwMgIegAAACNz3KBXVbdW1RNV9eBE7T1Vdd/w+lRV3TfUL6qqgxPrfmeizXdX1QNVtbeq3lZVNdTPqqq7q+qR4eeZJ+KDnmh37lnIS9/ywVx8/Z/kpW/5YO7cszDrLgEAABvUSu7ovSPJlZOF7v6J7r60uy9N8odJ7phY/cmldd39MxP1m5O8McmO4bW0z+uT3NPdO5LcM7w/rdy5ZyE33PFAFg4cTCdZOHAwN9zxgLAHAADMxHGDXnd/OMmTy60b7sq9Jsm7j7WPqjo3yTd290e6u5O8M8nOYfVVSW4blm+bqJ82btr1cA4eOvys2sFDh3PTrodn1CMAAGAjW+8zet+b5PHufmSidnFV7amq/1lV3zvUtifZN7HNvqGWJOd092PD8ueSnHO0g1XVtVU1X1Xz+/fvX2fXp+ezBw6uqg4AAHAirTfovTbPvpv3WJILu/uyJP8yyR9U1TeudGfD3b4+xvpbunuuu+e2bdu21j5P3Xlbt6yqDgAAcCKtOehV1RlJXp3kPUu17v5Kd39+WN6d5JNJvj3JQpLzJ5qfP9SS5PFhaOfSEM8n1tqnWbnuikuyZfOmZ9W2bN6U6664ZEY9AgAANrL13NH7oSSf6O5nhmRW1baq2jQsf0sWJ115dBia+aWqunx4ru91Sd4/NLsryTXD8jUT9dPGzsu251df/eJs37ollWT71i351Ve/ODsv237ctgAAANN2xvE2qKp3J3lZkrOral+SG7v77UmuztdPwvJ9SX6pqg4leTrJz3T30kQuP5vFGTy3JPnT4ZUkb0ny3qp6Q5JPZ3Fyl9POzsu2C3YAAMApoRYfizv9zM3N9fz8/Ky7AQAAMBNVtbu755Zbt97JWAAAADjFCHoAAAAjI+gBAACMjKAHAAAwMoIeAADAyAh6AAAAIyPoAQAAjIygBwAAMDKCHgAAwMgIegAAACMj6AEAAIyMoAcAADAygh4AAMDICHoAAAAjI+gBAACMjKAHAAAwMoIeAADAyAh6AAAAIyPoAQAAjIygBwAAMDKCHgAAwMgIegAAACMj6AEAAIyMoAcAADAygh4AAMDICHoAAAAjc9ygV1W3VtUTVfXgRO0Xqmqhqu4bXq+cWHdDVe2tqoer6oqJ+pVDbW9VXT9Rv7iqPjrU31NVz53mBwQAANhoVnJH7x1Jrlym/tbuvnR4fSBJquqFSa5O8qKhzX+pqk1VtSnJbyd5RZIXJnntsG2S/MdhX9+W5AtJ3rCeDwQAALDRHTfodfeHkzy5wv1dleT27v5Kd/9Nkr1JXjK89nb3o9391SS3J7mqqirJDyR539D+tiQ7V/kZAAAAmLCeZ/TeVFX3D0M7zxxq25N8ZmKbfUPtaPVvTnKgu586og4AAMAarTXo3ZzkW5NcmuSxJL8+tR4dQ1VdW1XzVTW/f//+k3FIAACA086agl53P97dh7v76SS/m8WhmUmykOSCiU3PH2pHq38+ydaqOuOI+tGOe0t3z3X33LZt29bSdQAAgNFbU9CrqnMn3v5YkqUZOe9KcnVVPa+qLk6yI8lfJLk3yY5hhs3nZnHClru6u5N8KMmPD+2vSfL+tfQJAACARWccb4OqeneSlyU5u6r2Jbkxycuq6tIkneRTSX46Sbr7oap6b5KPJXkqyc919+FhP29KsivJpiS3dvdDwyH+bZLbq+o/JNmT5O1T+3QAAAAbUC3eVDv9zM3N9fz8/Ky7AQAAMBNVtbu755Zbt55ZNwEAADgFCXoAAAAjI+gBAACMjKAHAAAwMoIeAADAyAh6AAAAIyPoAQAAjIygBwAAMDKCHgAAwMgIegAAACMj6AEAAIyMoAcAADAygh4AAMDICHoAAAAjI+gBAACMjKAHAAAwMmfMugNjcueehdy06+F89sDBnLd1S6674pLsvGz7rLsFAABsMILelNy5ZyE33PFADh46nCRZOHAwN9zxQJIIewAAwEll6OaU3LTr4WdC3pKDhw7npl0Pz6hHAADARiXoTclnDxxcVR0AAOBEEfSm5LytW1ZVBwAAOFEEvSm57opLsmXzpmfVtmzelOuuuGRGPQIAADYqk7FMydKEK2bdBAAAZk3Qm6Kdl20X7AAAgJkzdBMAAGBkBD0AAICROW7Qq6pbq+qJqnpwonZTVX2iqu6vqj+qqq1D/aKqOlhV9w2v35lo891V9UBV7a2qt1VVDfWzquruqnpk+HnmifigAAAAG8VK7ui9I8mVR9TuTvL3uvs7k/x1khsm1n2yuy8dXj8zUb85yRuT7BheS/u8Psk93b0jyT3DewAAANbouEGvuz+c5Mkjan/W3U8Nbz+S5Pxj7aOqzk3yjd39ke7uJO9MsnNYfVWS24bl2ybqAAAArME0ntH7qSR/OvH+4qraU1X/s6q+d6htT7JvYpt9Qy1Jzunux4blzyU5Zwp9AgAA2LDW9fUKVfXvkzyV5F1D6bEkF3b356vqu5PcWVUvWun+ururqo9xvGuTXJskF1544do7DgAAMGJrvqNXVf80yY8m+cfDcMx091e6+/PD8u4kn0zy7UkW8uzhnecPtSR5fBjauTTE84mjHbO7b+nuue6e27Zt21q7DgAAMGprCnpVdWWSf5PkVd395Yn6tqraNCx/SxYnXXl0GJr5paq6fJht83VJ3j80uyvJNcPyNRN1AAAA1uC4Qzer6t1JXpbk7Kral+TGLM6y+bwkdw/fkvCRYYbN70vyS1V1KMnTSX6mu5cmcvnZLM7guSWLz/QtPdf3liTvrao3JPl0ktdM5ZMBAABsUDWMujztzM3N9fz8/Ky7AQAAMBNVtbu755ZbN41ZNwEAADiFCHoAAAAjI+gBAACMjKAHAAAwMoIeAADAyAh6AAAAIyPoAQAAjIygBwAAMDKCHgAAwMgIegAAACMj6AEAAIyMoAcAADAygh4AAMDICHoAAAAjI+gBAACMjKAHAAAwMoIeAADAyAh6AAAAIyPoAQAAjIygBwAAMDKCHgAAwMgIegAAACMj6AEAAIyMoAcAADAygh4AAMDICHoAAAAjs6KgV1W3VtUTVfXgRO2sqrq7qh4Zfp451Kuq3lZVe6vq/qr6rok21wzbP1JV10zUv7uqHhjavK2qapofEgAAYCNZ6R29dyS58oja9Unu6e4dSe4Z3ifJK5LsGF7XJrk5WQyGSW5M8j1JXpLkxqVwOGzzxol2Rx4LAACAFVpR0OvuDyd58ojyVUluG5ZvS7Jzov7OXvSRJFur6twkVyS5u7uf7O4vJLk7yZXDum/s7o90dyd558S+AAAAWKX1PKN3Tnc/Nix/Lsk5w/L2JJ+Z2G7fUDtWfd8ydQAAANZgKpOxDHfiehr7Opaquraq5qtqfv/+/Sf6cAAAAKel9QS9x4dhlxl+PjHUF5JcMLHd+UPtWPXzl6l/ne6+pbvnuntu27Zt6+g6AADAeK0n6N2VZGnmzGuSvH+i/rph9s3Lk3xxGOK5K8nLq+rMYRKWlyfZNaz7UlVdPsy2+bqJfQEAALBKZ6xko6p6d5KXJTm7qvZlcfbMtyR5b1W9Icmnk7xm2PwDSV6ZZG+SLyd5fZJ095NV9ctJ7h22+6XuXprg5WezOLPnliR/OrwAAABYg1p8vO70Mzc31/Pz87PuBgAAwExU1e7unltu3VQmYwEAAODUIegBAACMjKAHAAAwMoIeAADAyAh6AAAAIyPoAQAAjIygBwAAMDKCHgAAwMgIegAAACMj6AEAAIyMoAcAADAygh4AAMDICHoAAAAjI+gBAACMjKAHAAAwMoIeAADAyAh6AAAAIyPoAQAAjIygBwAAMDKCHgAAwMgIegAAACMj6AEAAIyMoAcAADAygh4AAMDICHoAAAAjI+gBAACMjKAHAAAwMmsOelV1SVXdN/H6UlW9uap+oaoWJuqvnGhzQ1XtraqHq+qKifqVQ21vVV2/3g8FAACwkZ2x1obd/XCSS5OkqjYlWUjyR0len+St3f1rk9tX1QuTXJ3kRUnOS/LnVfXtw+rfTvLDSfYlubeq7uruj621bwAAABvZmoPeEX4wySe7+9NVdbRtrkpye3d/JcnfVNXeJC8Z1u3t7keTpKpuH7YV9AAAANZgWs/oXZ3k3RPv31RV91fVrVV15lDbnuQzE9vsG2pHqwMAALAG6w56VfXcJK9K8t+G0s1JvjWLwzofS/Lr6z3GxLGurar5qprfv3//tHYLAAAwKtO4o/eKJH/Z3Y8nSXc/3t2Hu/vpJL+brw3PXEhywUS784fa0epfp7tv6e657p7btm3bFLoOAAAwPtMIeq/NxLDNqjp3Yt2PJXlwWL4rydVV9byqujjJjiR/keTeJDuq6uLh7uDVw7YAAACswbomY6mqF2Rxtsyfnij/p6q6NEkn+dTSuu5+qKrem8VJVp5K8nPdfXjYz5uS7EqyKcmt3f3QevoFAACwkVV3z7oPazI3N9fz8/Oz7gYAAMBMVNXu7p5bbt20Zt0EAADgFCHoAQAAjIygBwAAMDKCHgAAwMgIegAAACMj6AEAAIyMoAcAADAygh4AAMDICHoAAAAjI+gBAACMjKAHAAAwMoIeAADAyAh6AAAAIyPoAQAAjIygBwAAMDKCHgAAwMgIegAAACMj6AEAAIyMoAcAADAygh4AAMDICHoAAAAjI+gBAACMjKAHAAAwMoIeAADAyAh6AAAAIyPoAQAAjMy6g15VfaqqHqiq+6pqfqidVVV3V9Ujw88zh3pV1duqam9V3V9V3zWxn2uG7R+pqmvW2y8AAICNalp39L6/uy/t7rnh/fVJ7unuHUnuGd4nySuS7Bhe1ya5OVkMhkluTPI9SV6S5MalcAgAAMDqnKihm1cluW1Yvi3Jzon6O3vRR5Jsrapzk1yR5O7ufrK7v5Dk7iRXnqC+AQAAjNo0gl4n+bOq2l1V1w61c7r7sWH5c0nOGZa3J/nMRNt9Q+1odQAAAFbpjCns4x9290JV/Z0kd1fVJyZXdndXVU/hOBmC5LVJcuGFF05jlwAAAKOz7jt63b0w/HwiyR9l8Rm7x4chmRl+PjFsvpDkgonm5w+1o9WPPNYt3T3X3XPbtm1bb9cBAABGaV1Br6peUFV/e2k5ycuTPJjkriRLM2dek+T9w/JdSV43zL55eZIvDkM8dyV5eVWdOUzC8vKhBgAAwCqtd+jmOUn+qKqW9vUH3f0/qureJO+tqjck+XSS1wzbfyDJK5PsTfLlJK9Pku5+sqp+Ocm9w3a/1N1PrrNvAAAAG1J1T+XxuZNubm6u5+fnZ90NAACAmaiq3RNfcfcsJ+rrFQAAAJgRQQ8AAGBkBD0AAICREfQAAABGRtADAAAYGUEPAABgZAQ9AACAkRH0AAAARkbQAwAAGBlBDwAAYGQEPQAAgJER9AAAAEZG0AMAABgZQQ8AAGBkBD0AAICREfQAAABGRtADAAAYGUEPAABgZAQ9AACAkRH0AAAARkbQAwAAGBlBDwAAYGQEPQAAgJER9AAAAEZG0AMAABgZQQ8AAGBk1hz0quqCqvpQVX2sqh6qqp8f6r9QVQtVdd/weuVEmxuqam9VPVxVV0zUrxxqe6vq+vV9JAAAgI3tjHW0fSrJv+ruv6yqv51kd1XdPax7a3f/2uTGVfXCJFcneVGS85L8eVV9+7D6t5P8cJJ9Se6tqru6+2Pr6BsAAMCGteag192PJXlsWP6/VfXxJNuP0eSqJLd391eS/E1V7U3ykmHd3u5+NEmq6vZhW0EPAABgDabyjF5VXZTksiQfHUpvqqr7q+rWqjpzqG1P8pmJZvuG2tHqAAAArMG6g15V/a0kf5jkzd39pSQ3J/nWJJdm8Y7fr6/3GBPHuraq5qtqfv/+/dPaLQAAwKisK+hV1eYshrx3dfcdSdLdj3f34e5+Osnv5mvDMxeSXDDR/PyhdrT61+nuW7p7rrvntm3btp6uAwAAjNZ6Zt2sJG9P8vHu/o2J+rkTm/1YkgeH5buSXF1Vz6uqi5PsSPIXSe5NsqOqLq6q52Zxwpa71tovAACAjW49s26+NMk/SfJAVd031P5dktdW1aVJOsmnkvx0knT3Q1X13ixOsvJUkp/r7sNJUlVvSrIryaYkt3b3Q+voFwAAwIZW3T3rPqzJ3Nxcz8/Pz7obAAAAM1FVu7t7brl1U5l1EwAAgFOHoAcAADAygh4AAMDIrGcyFpZx556F3LTr4Xz2wMGct3VLrrvikuy8zPe/AwAAJ4+gN0V37lnIDXc8kIOHDidJFg4czA13PJAkwh4AAHDSGLo5RTfteviZkLfk4KHDuWnXwzPqEQAAsBEJelO0cODgsvXPHqUOAABwIgh6U3LnnoXUUdadt3XLSe0LAACwsQl6U3LTroez3FfPV5LrrrjkZHcHAADYwAS9KTna8MyOiVgAAICTS9CbkqMNz9xu2CYAAHCSCXpTct0Vl2TL5k3Pqm3ZvMmwTQAA4KTzPXpTsjQ805elAwAAsyboTdHOy7YLdgAAwMwZugkAADAygh4AAMDICHoAAAAjI+gBAACMjKAHAAAwMmbdPAHu3LPgaxYAAICZEfSm7M49C7nufX+VQ4c7SbJw4GCue99fJYmwBwAAnBSGbk7ZL/7xQ8+EvCWHDnd+8Y8fmlGPAACAjUbQm7IvfPnQquoAAADTJuidRHfuWZh1FwAAgA1A0JuyrVs2H3XdDXc8IOwBAAAnnKA3Zb/wqhcd9Q/14KHDueGO+09qfwAAgI1H0JuynZdtzzc9/+h39Q4eejoXXf8nufQX/8zdPQAA4IQ4Zb5eoaquTPJbSTYl+b3ufsuMu7RmB1Yw8cqBg4fy5vfclze/576T0KMTp5L0MvUXPHdTNm96Tr548FC2Pn9zvnLocL586OljtlnyvDOek68+9fSzttk+fB9hkmd9R+H3f8e2/Mn9jz1rspszn785P/Kd5+ZDn9i/4u8yXO67D4881pH7WGqzcOBgNlXlcPcz/TzeV2kcebzv/45tz/R36/M3pzv54sFDK+7LSq32Ox6n8Z2Q693HStvP+vsr13r81bSb9Wc8XfoEMEuui+NyOv8+q/tY/+Q+SZ2o2pTkr5P8cJJ9Se5N8tru/tjR2szNzfX8/PxJ6uHqvPQtH8zCgYOz7sbobH5OJZWv+/qKldiyeVN+9dUvPmpAuOGOB3Lw0OGvHWtTJZ0cerqX3cdybVZyrKMd71iO15eVWu64q/1zWe1x17uPlbafRl/XY63HX027WX/G5ZyKfQKYJdfFcTkdfp9Vtbu755Zbd6oM3XxJkr3d/Wh3fzXJ7UmumnGf1uy6Ky7Jls2bZt2N0Tn0dK8p5CWLz0fetOvhZdfdtOvhrwtdhw73s4LVkftYrs1KjnW8tss5Xl9WarnjrvbPZbXHXe8+Vtp+Gn1dj7UefzXtZv0Zl3Mq9glgllwXx+V0/32eKkFve5LPTLzfN9Sepaqurar5qprfv3//Sevcau28bHt+9dUvzpbNp8ofL0ny2aPcZT1a/VjbHq/Nsdav5nhrPcZqtp9W/UTsY6Xtp9HX9Vjr8VfTbtafcTXHnmWfAGbJdXFcTvff52mVRLr7lu6e6+65bdu2zbo7x7Tzsu35+C+/Ii/91rNm3RUG523dsqr6sbY9XptjrV/N8dZ6jNVsP636idjHSttPo6/rsdbjr6bdrD/jao49yz4BzJLr4ric7r/PUyXoLSS5YOL9+UPttPeuN/6D/OTlF866G6Ow+Tm1+LzaGmzZvOmZSU2OtNxQ282bavGZwKPs41jDc491rOO1Xc7x+rJSyx13tX8uqz3uevex0vbT6Ot6rPX4q2k368+4nFOxTwCz5Lo4Lqf77/NUmXXz3iQ7quriLAa8q5P8o9l2aXr+w84XZ+7vnvXMDI1jMoZZN5fqq5l1c7LNamfdXO54J2PWzaN9ztX+uazmuOvdx0rbT6Ov67HW46+m3aw/43JOxT4BzJLr4ric7r/PU2LWzSSpqlcm+c0sfr3Crd39K8fa/lSedRMAAOBEO9asm6fKHb109weSfGDW/QAAADjdnSrP6AEAADAlgh4AAMDICHoAAAAjI+gBAACMjKAHAAAwMoIeAADAyAh6AAAAI3PKfGH6alXV/iSfnnU/jnB2kv8z605wWnLusBbOG9bKucNaOXdYC+fNifN3u3vbcitO26B3Kqqq+aN9Mz0ci3OHtXDesFbOHdbKucNaOG9mw9BNAACAkRH0AAAARkbQm65bZt0BTlvOHdbCecNaOXdYK+cOa+G8mQHP6AEAAIyMO3oAAAAjI+hNSVVdWVUPV9Xeqrp+1v3h1FFVF1TVh6rqY1X1UFX9/FA/q6rurqpHhp9nDvWqqrcN59L9VfVds/0EzFJVbaqqPVX134f3F1fVR4fz4z1V9dyh/rzh/d5h/UWz7DezVVVbq+p9VfWJqvp4Vf0D1xxWoqr+xfB31YNV9e6q+gbXHZZTVbdW1RNV9eBEbdXXmaq6Ztj+kaq6ZhafZawEvSmoqk1JfjvJK5K8MMlrq+qFs+0Vp5Cnkvyr7n5hksuT/Nxwflyf5J7u3pHknuF9snge7Rhe1ya5+eR3mVPIzyf5+MT7/5jkrd39bUm+kOQNQ/0NSb4w1N86bMfG9VtJ/kd3f0eSv5/Fc8g1h2Oqqu1J/nmSue7+e0k2Jbk6rjss7x1JrjyitqrrTFWdleTGJN+T5CVJblwKh6yfoDcdL0myt7sf7e6vJrk9yVUz7hOniO5+rLv/clj+v1n8B9f2LJ4jtw2b3ZZk57B8VZJ39qKPJNlaVeee5G5zCqiq85P8SJLfG95Xkh9I8r5hkyPPm6Xz6X1JfnDYng2mqr4pyfcleXuSdPdXu/tAXHNYmTOSbKmqM5I8P8ljcd1hGd394SRPHlFe7XXmiiR3d/eT3f2FJHfn68MjayToTcf2JJ+ZeL9vqMGzDMNaLkvy0STndPdjw6rPJTlnWHY+seQ3k/ybJE8P7785yYHufmp4P3luPHPeDOu/OGzPxnNxkv1Jfn8Y9vt7VfWCuOZwHN29kOTXkvzvLAa8LybZHdcdVm611xnXnxNI0IOTpKr+VpI/TPLm7v7S5LpenP7WFLg8o6p+NMkT3b171n3htHNGku9KcnN3X5bk/+Vrw6eSuOawvGHI3FVZ/M+C85K8IO6usEauM7Mn6E3HQpILJt6fP9QgSVJVm7MY8t7V3XcM5ceXhkcNP58Y6s4nkuSlSV5VVZ/K4nDwH8jic1dbhyFVybPPjWfOm2H9NyX5/MnsMKeMfUn2dfdHh/fvy2Lwc83heH4oyd909/7uPpTkjixei1x3WKnVXmdcf04gQW867k2yY5iV6rlZfHD5rhn3iVPE8LzC25N8vLt/Y2LVXUmWZpe6Jsn7J+qvG2aoujzJFyeGQbBBdPcN3X1+d1+UxWvKB7v7Hyf5UJIfHzY78rxZOp9+fNje/6RuQN39uSSfqapLhtIPJvlYXHM4vv+d5PKqev7wd9fSueO6w0qt9jqzK8nLq+rM4Y7yy4caU+AL06ekql6ZxedpNiW5tbt/ZcZd4hRRVf8wyf9K8kC+9qzVv8vic3rvTXJhkk8neU13Pzn85fqfszhc5stJXt/d8ye945wyquplSf51d/9oVX1LFu/wnZVkT5Kf7O6vVNU3JPmvWXwG9MkkV3f3o7PqM7NVVZdmcRKf5yZ5NMnrs/ifu645HFNV/WKSn8jijNF7kvyzLD4z5brDs1TVu5O8LMnZSR7P4uyZd2aV15mq+qks/rsoSX6lu3//ZH6OMRP0AAAARsbQTQAAgJER9AAAAEZG0AMAABgZQQ8AAGBkBD0AAICREfQAAABGRtADAAAYGUEPAABgZP4/kpWJd9LsUJYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "w_count_counter = Counter(w_count.values())\n", + "plt.figure(figsize=(15,5))\n", + "plt.scatter(list(w_count_counter.keys()), list(w_count_counter.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3QAAAGOCAYAAADfBkHtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3db6xl11UY8LXJ2LhQmgRn4qYzVsfIVqpQqSJy/iDUqsKUJE6xQwUoVQUWuPIX00JTqZh+aNT2S5BQUxBVKoukNRIioBRqU0KQG0BVPyTgEP4mRbESgsfKn8EJoSpyk7i7H+YOGTvz3j3v3f32W+vc30+y/P6sOWffs/c596171l239d4DAACAer7itAcAAADA8UjoAAAAipLQAQAAFCWhAwAAKEpCBwAAUJSEDgAAoKgzpz2Aw7zoRS/qFy5cOO1hAAAAnIoPfOADf9J7P3vQ71MndBcuXIjHHnvstIcBAABwKlprHz/s90ouAQAAipLQAQAAFCWhAwAAKCr1e+gAAAB29YUvfCEuXrwYTz/99GkP5UA33HBDnD9/Pq677roj/TsJHQAAsGoXL16Mr/mar4kLFy5Ea+20h/Nleu/x1FNPxcWLF+OWW2450r9VcgkAAKza008/HTfeeGPKZC4iorUWN95447HuIEroAACA1cuazF1x3PFJ6AAAACZ4z3veEy996Uvj1ltvjbe85S1Dtuk9dAAAwF658MAvDd3eH73l9Vtjnnnmmbj//vvj0UcfjfPnz8crXvGKuOuuu+JlL3vZTvt2hw4AAOCE/cZv/Ebceuut8XVf93Vx/fXXxxvf+MZ4+OGHd96uhA4AAOCEPfnkk3HzzTf/xffnz5+PJ598cuftlim5fO5t0SW3NQEAANbMHToAAIATdu7cuXjiiSf+4vuLFy/GuXPndt6uhA4AAOCEveIVr4iPfOQj8bGPfSw+//nPxzvf+c646667dt5umZJLAACAqs6cORM/8RM/Ea95zWvimWeeie/7vu+Lr//6r999uwPGBgAAUMZp9eO4884748477xy6TSWXAAAARUnoAAAAipLQAQAAFCWhAwAAVq/3ftpDONRxxyehAwAAVu2GG26Ip556Km1S13uPp556Km644YYj/1tdLgEAgFU7f/58XLx4MS5dunTaQznQDTfcEOfPnz/yv5PQAQAAq3bdddfFLbfcctrDOBFKLgEAAIramtC11t7RWvt0a+33r/rZ17bWHm2tfWTz/xduft5aaz/eWnu8tfa7rbWXX/Vv7tnEf6S1ds/JPBwAAID9seQO3X+OiNc+52cPRMR7e++3RcR7N99HRLwuIm7b/HdfRLwt4nICGBFvjohXRcQrI+LNV5JAAAAAjmdrQtd7/x8R8Znn/PjuiHho8/VDEfGGq37+U/2y90XEC1prL4mI10TEo733z/TePxsRj8aXJ4kAAAAcwXHfQ3dT7/0Tm68/GRE3bb4+FxFPXBV3cfOzg37+ZVpr97XWHmutPZa5Cw0AAMBp27kpSr/8YQ7DPtCh9/5g7/323vvtZ8+eHbVZAACA1TluQvepTSllbP7/6c3Pn4yIm6+KO7/52UE/BwAA4JiOm9A9EhFXOlXeExEPX/Xz79l0u3x1RHxuU5r5KxHxra21F26aoXzr5mcAAAAc09YPFm+t/UxE/N2IeFFr7WJc7lb5loj4udbavRHx8Yj4rk34uyPizoh4PCL+PCK+NyKi9/6Z1tq/jYjf3MT9m977cxutAAAAcARbE7re+z884Fd3XCO2R8T9B2znHRHxjiONDgAAgAPt3BQFAACA0yGhAwAAKEpCBwAAUJSEDgAAoCgJHQAAQFESOgAAgKIkdAAAAEVJ6AAAAIqS0AEAABQloQMAAChKQgcAAFCUhA4AAKAoCR0AAEBREjoAAICiJHQAAABFSegAAACKktABAAAUJaEDAAAoSkIHAABQlIQOAACgKAkdAABAURI6AACAoiR0AAAARUnoAAAAipLQAQAAFCWhAwAAKEpCBwAAUJSEDgAAoCgJHQAAQFESOgAAgKIkdAAAAEVJ6AAAAIqS0AEAABQloQMAAChKQgcAAFCUhA4AAKAoCR0AAEBREjoAAICiJHQAAABF7ZTQtdb+WWvtD1prv99a+5nW2g2ttVtaa+9vrT3eWvvZ1tr1m9iv3Hz/+Ob3F0Y8AAAAgH117ISutXYuIv5pRNzee/+bEfG8iHhjRPxIRLy1935rRHw2Iu7d/JN7I+Kzm5+/dRMHAADAMe1acnkmIv5Sa+1MRHxVRHwiIr45It61+f1DEfGGzdd3b76Pze/vaK21HfcPAACwt46d0PXen4yIH42IP47LidznIuIDEfGnvfcvbsIuRsS5zdfnIuKJzb/94ib+xuPuHwAAYN/tUnL5wrh81+2WiPhrEfHVEfHaXQfUWruvtfZYa+2xS5cu7bo5AACA1dql5PJbIuJjvfdLvfcvRMTPR8Q3RcQLNiWYERHnI+LJzddPRsTNERGb3z8/Ip567kZ77w/23m/vvd9+9uzZHYYHAACwbrskdH8cEa9urX3V5r1wd0TEhyLi1yLiOzYx90TEw5uvH9l8H5vf/2rvve+wfwAAgL22y3vo3h+Xm5v8VkT83mZbD0bED0XEm1prj8fl98i9ffNP3h4RN25+/qaIeGCHcQMAAOy9M9tDDtZ7f3NEvPk5P/5oRLzyGrFPR8R37rI/AAAAvmTXjy0AAADglEjoAAAAipLQAQAAFCWhAwAAKEpCBwAAUJSEDgAAoCgJHQAAQFESOgAAgKIkdAAAAEVJ6AAAAIqS0AEAABQloQMAAChKQgcAAFCUhA4AAKAoCR0AAEBREjoAAICiJHQAAABFSegAAACKktABAAAUJaEDAAAoSkIHAABQlIQOAACgKAkdAABAURI6AACAoiR0AAAARUnoAAAAipLQAQAAFCWhAwAAKEpCBwAAUJSEDgAAoCgJHQAAQFESOgAAgKIkdAAAAEVJ6AAAAIqS0AEAABQloQMAAChKQgcAAFCUhA4AAKAoCR0AAEBREjoAAICidkroWmsvaK29q7X2v1prH26tfWNr7Wtba4+21j6y+f8LN7GttfbjrbXHW2u/21p7+ZiHAAAAsJ92vUP3YxHxnt7734iIvxURH46IByLivb332yLivZvvIyJeFxG3bf67LyLetuO+AQAA9tqxE7rW2vMj4u9ExNsjInrvn++9/2lE3B0RD23CHoqIN2y+vjsifqpf9r6IeEFr7SXHHjkAAMCe2+UO3S0RcSki/lNr7YOttZ9srX11RNzUe//EJuaTEXHT5utzEfHEVf/+4uZnz9Jau6+19lhr7bFLly7tMDwAAIB12yWhOxMRL4+It/XevyEi/k98qbwyIiJ67z0i+lE22nt/sPd+e+/99rNnz+4wPAAAgHXbJaG7GBEXe+/v33z/rric4H3qSinl5v+f3vz+yYi4+ap/f37zMwAAAI7h2Ald7/2TEfFEa+2lmx/dEREfiohHIuKezc/uiYiHN18/EhHfs+l2+eqI+NxVpZkAAAAc0Zkd//0/iYifbq1dHxEfjYjvjctJ4s+11u6NiI9HxHdtYt8dEXdGxOMR8eebWAAAAI5pp4Su9/7bEXH7NX51xzVie0Tcv8v+AAAA+JJdP4cOAACAUyKhAwAAKEpCBwAAUJSEDgAAoCgJHQAAQFESOgAAgKIkdAAAAEVJ6AAAAIqS0AEAABQloQMAAChKQgcAAFCUhA4AAKAoCR0AAEBREjoAAICiJHQAAABFSegAAACKktABAAAUJaEDAAAoSkIHAABQlIQOAACgKAkdAABAURI6AACAoiR0AAAARUnoAAAAipLQAQAAFCWhAwAAKEpCBwAAUJSEDgAAoCgJHQAAQFESOgAAgKIkdAAAAEVJ6AAAAIqS0AEAABQloQMAAChKQgcAAFCUhA4AAKAoCR0AAEBREjoAAICiJHQAAABF7ZzQtdae11r7YGvtv22+v6W19v7W2uOttZ9trV2/+flXbr5/fPP7C7vuGwAAYJ+NuEP3AxHx4au+/5GIeGvv/daI+GxE3Lv5+b0R8dnNz9+6iQMAAOCYdkroWmvnI+L1EfGTm+9bRHxzRLxrE/JQRLxh8/Xdm+9j8/s7NvEAAAAcw6536P59RPyLiPh/m+9vjIg/7b1/cfP9xYg4t/n6XEQ8ERGx+f3nNvEAAAAcw7ETutba34+IT/fePzBwPNFau6+19lhr7bFLly6N3DQAAMCq7HKH7psi4q7W2h9FxDvjcqnlj0XEC1prZzYx5yPiyc3XT0bEzRERm98/PyKeeu5Ge+8P9t5v773ffvbs2R2GBwAAsG7HTuh67z/cez/fe78QEW+MiF/tvf+jiPi1iPiOTdg9EfHw5utHNt/H5ve/2nvvx90/AADAvjuJz6H7oYh4U2vt8bj8Hrm3b37+9oi4cfPzN0XEAyewbwAAgL1xZnvIdr33X4+IX998/dGIeOU1Yp6OiO8csT8AAABO5g4dAAAAE0joAAAAipLQAQAAFCWhAwAAKEpCBwAAUJSEDgAAoCgJHQAAQFESOgAAgKIkdAAAAEVJ6AAAAIqS0AEAABQloQMAAChKQgcAAFCUhA4AAKAoCR0AAEBREjoAAICiJHQAAABFSegAAACKktABAAAUJaEDAAAoSkIHAABQlIQOAACgKAkdAABAURI6AACAoiR0AAAARUnoAAAAipLQAQAAFCWhAwAAKEpCBwAAUJSEDgAAoCgJHQAAQFESOgAAgKIkdAAAAEVJ6AAAAIqS0AEAABQloQMAAChKQgcAAFCUhA4AAKAoCR0AAEBREjoAAICijp3QtdZubq39WmvtQ621P2it/cDm51/bWnu0tfaRzf9fuPl5a639eGvt8dba77bWXj7qQQAAAOyjXe7QfTEi/nnv/WUR8eqIuL+19rKIeCAi3tt7vy0i3rv5PiLidRFx2+a/+yLibTvsGwAAYO8dO6HrvX+i9/5bm6//d0R8OCLORcTdEfHQJuyhiHjD5uu7I+Kn+mXvi4gXtNZecuyRAwAA7Lkh76FrrV2IiG+IiPdHxE29909sfvXJiLhp8/W5iHjiqn92cfOz527rvtbaY621xy5dujRieAAAAKu0c0LXWvvLEfFfIuIHe+9/dvXveu89IvpRttd7f7D3fnvv/fazZ8/uOjwAAIDV2imha61dF5eTuZ/uvf/85sefulJKufn/pzc/fzIibr7qn5/f/AwAAIBj2KXLZYuIt0fEh3vv/+6qXz0SEfdsvr4nIh6+6uffs+l2+eqI+NxVpZkAAAAc0Zkd/u03RcR3R8TvtdZ+e/OzfxkRb4mIn2ut3RsRH4+I79r87t0RcWdEPB4Rfx4R37vDvgEAAPbesRO63vv/jIh2wK/vuEZ8j4j7j7s/AAAAnm1Il0sAAADmk9ABAAAUJaEDAAAoSkIHAABQlIQOAACgKAkdAABAURI6AACAoiR0AAAARUnoAAAAipLQAQAAFCWhAwAAKEpCBwAAUJSEDgAAoCgJHQAAQFESOgAAgKIkdAAAAEVJ6AAAAIqS0AEAABQloQMAAChKQgcAAFCUhA4AAKAoCR0AAEBREjoAAICiJHQAAABFSegAAACKktABAAAUJaEDAAAoSkIHAABQlIQOAACgKAkdAABAURI6AACAoiR0AAAARUnoAAAAipLQAQAAFCWhAwAAKEpCBwAAUJSEDgAAoKgzpz2AkS488EvP+v6P3vL6UxoJAADAyXOHDgAAoKjpCV1r7bWttT9srT3eWntg9v4BAADWYmrJZWvteRHxHyLi70XExYj4zdbaI733D80aw5KyTKWbAABABbPfQ/fKiHi89/7RiIjW2jsj4u6ImJbQjTIqMZRgAgAAxzU7oTsXEU9c9f3FiHjV5DGsUrYEU4wYMWLEiBEjRowYMWNjrqX13hcFjtBa+46IeG3v/R9vvv/uiHhV7/37r4q5LyLu23z70oj4w+ds5kUR8SdbdiVGjBgxYsSIESNGjBgxa4j56733swdG996n/RcR3xgRv3LV9z8cET98xG08JkaMGDFixIgRI0aMGDH7GnP1f7O7XP5mRNzWWrultXZ9RLwxIh6ZPAYAAIBVmPoeut77F1tr3x8RvxIRz4uId/Te/2DmGAAAANZidlOU6L2/OyLevcMmHhQjRowYMWLEiBEjRoyYPY75C1ObogAAADDO7PfQAQAAMIiEDgAAoCgJHQAAQFHTm6IcVWvtX20J+XREvHhbTO/9Px6w/b/ae//kyH2J2T3mWvPVWntJRHym9/5/N9+f2Np47r6u5aTGs9aYUefgPp/LSx77Qfbh+CyJOe1ry2b7h87XGq4/o45ztuvzzPHMPIYz52JmzMx5rzgXM68b2dZPtjW/y98/ETH3g8WP819c7oj5VyLi+Qf891+XxByy/V8avS8xJzNfEfHfI+JjEfGjJ702nruvmeNZa8yoc3Cfz+Ulj32fj89xj2FMvLYsma/njqfi9WfUmLMdn5njqbidbDEV13O2dTjzGGZbGxXGc+W/9HfoIuKZ3vufHfTL1lpfGHNNvffXn8C+xOwe82V679/SWmsR8bLNj2bua+Z41hpzTcc4B0dtp2LMNT3nsS+Jyfa49ubastnfofO1kuvPqDEv2c6ofWUbT8XtZIupuJ6zrcNs586omGxjPvZzSkSBksuIOPQBbH6/NWbhbeUh+xKze8y2+Wqt/e3J+zq0nGDkeNYaM+oc3OdzeeFjX1Iek+pxzYzJdG2JBfNV9foz6jhnuz7PHM/kYzjzsc+MqbieU63DUTEJ10+2MS85zgeqkNBd11r7Kwf8rkXE8xbGvDoi3rj5/loeGrgvMbvHzJyvJfu6fuJ41hozak73+Vy2VnePqXhtqTinM8/3mcdn5niyXTNnruds58Va5yLbNSHb2sh2DT9Q+g8Wb629OQ7PSj8dETctiHl97/3bDtnPL0TEbw/al5jdY2bO15J9nbF+do4ZNaf7fC5bq7vHVLy2VJzTmef7zOMzczzZrpkz13O282KtczHzupFt/WRb81vH0w9pilLhDl3EwRntUWKW3socsS8xu8fMnK9RJQejxrPWmFHHcJ/nwlrdPabitaXinM483yvO6ah9ZdtOtpiIeut51HayXTcqro1s4zlQhYTuVTHvVuaofYmpNV+jygmsnzlzus9zYa3mWYfZypmyzenM873inM681mWbi4rnxVrnYuZ1o+LayDae0nfoRnXXeV9E/OAh+/nluHxrNVOXsH2OmTlfS/Z108TxrDVm1Jzu87lsre4eU/HaUnFOZ57vM4/PzPFku2bOXM/Zzou1zsXM60a29ZNtzS8Zz4EqJHRrvbUq5vCYiHnztWRfM8ez1piIMcdw1HYqxkRYq7vGRNS7tiyJWetxXrKdUfvKNp6K28kWU3E9Z1uH2c6dUTHZxrx0PNdUIaFb661VMYfHVCw5yHYMs8VULEfJFmOt7h5T8dpScU6zlU9nm9NsxzDbes52Xqx1LrJdE7KtjWzX8APpcvml/WTsEnZYTIuITyUaz+iYip3oKq2f04jJ1iUs2/GxVufEVLy2VJzTtXbz0+Xy8O3ocplnO9muG9nWT7Y1r8vlwphst1aXxCx5ZeCDE8czM6ZiycGo8aw1pmI5SrYYa3X3mIrXlopzutby130u4Zu5nivOe7btZLtuVFwb2cZzoAoJXbbyhpm3g5e8yTTbmCveCl9rOUG2mIrlKNlirNU861A5U57zveKcVizhy1bWm23eK85FtpLCbGsj23hK36HL1nFrZpewJRl9tg5yFeerYreoijHZuoRlOz7W6pyYiteWinO61m5+ulwevp2ZXQqzzXvFudDl8gBJr+EHqpDQrfXW6pKYJRl9tjFXnK8l+5o5nrXGRIw5hqO2UzEmwlrdNSai3rVlScxaj/OS7YzaV7bxVNxOtpiK6znbOsx27oyKyTbmpeO5pgoJ3VpvrS6JufLKwEFjfk9E3JVszBXnK1spzlpjKpajZIuxVnePqXhtqTin2cqns81ptmOYbT1nOy/WOhfZrgnZ1ka2a/iBdLn80n7SdQk7rJvNFQOPz2ExLbZ31BwdU7ETXar1kzAmW5ewbMfHWp0TU/HaUnFO19rNT5fLw7ejy2We7WS7bmRbP9nWvC6XC2Oy3VpdGrPEiH1le+WkYsnBqPGsNaZiOUq2GGt195iK15aKc7rW8td9LuGbuZ4rznu27WS7blRcG9nGc6AKCV228oaZSc3WO3QxbszZGhdULDnItn6yxVQsR8kWY63mWYfKmfKc7xXntGIJX7ay3mzzXnEuspUUZlsb2cZT+g5dto5bM5OaJWZ21JwZU7ETXbb1ky0mW5ewbMdnxlptse7jk+254LB9XZmLXTukZZ3TtXbz0+Xy8O3ocplnO9n+bsmyfo5yzdTlcqC13lpdOuZtRu0r2ysnV77eNu5tv89WkrHPMRFjjuGo7VSMidj+2Je8ypftcWU7hqP2tWQuPrhgPBXnNGLe+T5qX9nGU3E72WIqruds6zDbubMkZtQ1c9R4lsTslBdUSOjWemt1p242V5nZUfPFE2O+LeqVHGRbP9liKpajZItZ8thHlTSvNWbm+lkyF2ud02zl0xWfL7JdM7OV9Wab92zbyfZ3y8z1k+2tPbpctsO7OLbY3jUxomhnvJldLpfsa6bW2i8m616VrVtUlpjTOAfLncsDY5Y89uf13u86JObnI+J3Jo45W8zM9XPngrm4bqVzutZufrpcHr4dXS7zbCfb3y0z18+oa6YulwONKlnJdmt1acwSM/c1S8WSg1HjyRaT7Rzc57lY8thHlTSvNWbm+lkyF2ud02zlr0v2lW08FbeTLSai3noetZ1sz5Uz5z3bW3tGzsU1VUjoRpWsZLu1mq3LZao7dFGz5CDb+plZurDWcpRsMaPKp5eUNGd77Nm6Ly7Z15K5uGulc5qt/LXi80XF7WSL2ecS2WzPlTPnfdQ1M9taLX2HbklWm62zWcUul9lk6UR3ZV/ZukXNjMl2DlY8l2d0CWsR8csLS7XvTPa4shzDiIHrp/f+rw/Zz5W4K+8pPnA8Red0rd38dLk8fDu6XObZTra/W6atn4HXTF0uBxpVsnIlfkncYb+ffft1m5n7mm3WfC3Z18zxZIvJdg6O2k7FmJ1ewXvOtkaMp2JMxNxryxJLrj/brPU4L9nOqH1lG0/F7WSLqbies63DbOfO0phtso15p+eUCgndqJKViuUES8zc10wVSw6yrZ+ZpQszz8GK5/LMrolLZHtc2cpaZl5XRyXpaz3O2a7P+1zCV7GUveJ6zrYOs507o95GlG3M6+5yuURb1umxXGc8XS5Tda/K1i2q0jpscbkTZrYuYamO88KYrV0Te+//4JBtXIkbct0oGjNt/Sw8d7Ze63rv375gO9nmdG3d/I5yHdPlMk+MLpe776tcl8uB10xdLk9BplvYI2OWmLmvWSqWHIwaT8aYbZa8ilWxHCVbzMi77Zke18yY2etnm9mlm9WO88zr86jrWLZrXba5qFjmt9a5WLKvUTGz532JbGM+9nPKWhK6bLewdbncXcWSg2zrZ+Y6nPkhnvs8F0vKX5dY6/HJ1uVyVNnPEtnmNFv565J9zfwA94olfNnKerP9nVBxLrKVFGYrd8+2Vld/hy5VZ7OBMUvocnmAIzz2it2isq3DJa8+be3QGLpc7tw1caFUj2tyzMz1s8SS82KJtR7nmdfnXa9jo8ez1s6KulzO2U62v1tmrp8lso159V0ul8h2C3vmLePZt6dnmjVfS/Y1czzZYpYY9erTWs/lbOdptseVraxl5nyttXNpxJjjvGQ7o/Y18wPcsx3DmXMxM6bies52XmT7W2tpzDbZxrzTc8paErpst7B1udxdxZKDbOtn5tpYUgq45DNf1nouZztPsz2ubGUtM+drrZ1Ls5VPz/ww4rWW8GUr6832lops28n2d4sul7vPxYH2octli7Ed9ip1F1yyrxYRn9Llsly3qCXd2KatwyVaa49s69AYEb+zbTyx+7m85PiMOoZZ52LX68aSmKGPfWDMjPUTsfwavvW8KNa5dPRz7ozr8+LnwYXPTbpc5onR5XL3felyOWHMoctlRMwt5Zods8S27Ywq6ZmpYsnBqPEsiVkypx8cOJ4RRpUzLZmLUa+qLTmGFedi6b6yPfZZ5/vIx7VNxc6lFcuns5W2xiFjOcq+sm0nW0zEvOtGtu1k+7tl9rwvkW3Mx35OWUtCN7PDXrbugqM6d2VTseRg5vpZMqfZOqCOKmca9QHco45hxbkYNZ6Zj31mWcuox7Vkvip2Ls3W1XbUnC6xzyV82cp6s/2dUHEuspUU6nJ5zOeUtSR0SzLfip3xlliynZGvZsySpctli+0diq7EzFw/S+Y0VQfUJR0aW2tL3me3ZL7u3DacGHcMy83FwPHMfOwzO60tWT9D5qto59KZz7mjuswtmdMldLk8fDszOlgueV6+sp197HJ5GscnW8fIJbKNWZfLmFvKle2W8ZLtVGyKEjFvvka9QjVzbSyZ09mlCyOMmq9Rr5itdS4qrsOZZS2jHtdM2a4/V77etq0lv9+2nSUx2UpbRz32bNsZFTOq7HnmdWPmdrIdn2zrZ4lsY97pOWUtCd3MUq5st4xHde7KJlspzswPnB01p3dNXIejjJqvJcfnxQtilhzDinNRcR3OLGsZ9bhmynb9GfWcO+oFt2ylrRVL+LKV9WYrTZy5nWzHJ9v60eVyrdqcroktJne0awu69GTrYLnEpPm6EnPngu6LZwZ1aByyfgasjSX7ajG5A+qS9RwL5mtJV8BR46nYjXbA2oiY99iXxBzl2ru1a9mADmlZz52Zz02jruFDuswtmdMlFj6uLF0ur5wX2TorLol53oLn3Ov2uMvlkr9bZh6fUZ1vdbk8ICS2PKes5Q7dEqNurWbsaDdqO5lkK8UZVWI0s3tetkYcS42Yr5njGbWdmd1oZ67DWLidWefOqFLJjN2DRz3vjJj3meVnFcuVI8Y89oodR2eWc1+J32bUdWPWdrIdn1HrcPb5nmnNa4qy0Khbq9k62mX8o2KEbKU4S8rzlpQYzeyel60RxxKjyuFmjqdiNxV5cUEAAArbSURBVNqZ6zBbR81sHwg+ylrLmWa+hWGJbCV8FTuOziznXmuJbLbjk+1tKUtkW/M7PafsU0K3pCPQkg4zS7LsbF0uK5rW5XJUl7m2rEPjqPWzRLZXtpeYNl+jxjNwO9nuMsx87DM7ai55Llii3LkzMGaJUc+5o7oQj5Kty+WS7p3lulwuLOu98kLrYftaZZfLhV2jZx6fJdfDUZ05K3W5PMrj2qkT7z4ldKNuB2fraJftj4qR1liKM7N7XrZXtpfItp5nnqfZ7jLMfOwzz51Rdx4rnjszr5mjnnMzlo5nKuGr2HF0acwSM/9OmHUMK5YUjrrzOPMtS6Pma9Tj2uk5ZZ8SulG3g7N1tMv2R8Uoay3Fmdk9b1Qp6UzZ1vNau9HOXIfZSrBG34GqdO7MvGaOes7NVjqerYSvYsfRmW85yVYiO7MsfObxWbIOl1QxzXwBJ9tbsXZ6TtmnhG7X28ERY8sARt0yXnI7uKKZHwg+ysz1s9Xk0sRRRpXDjTLq/BqyNkYZWK6zxJAyrYHnzpAPmE54fmX70N4hz7mxbL5m3tmf+SHLo0rvlvwhPe1tDgtjlpj5wdBZPjT8ynaWmHZ8Fl6fX7clpGpZ+JC3A+z6nLJPCd2osoSlMpUcVLTmUpyZ26kmY5OffZ7TNV4Ps90FHilTOdyo59xslRgZS/i2mTmejG85GbHms5VlLjG7jHabbG9ZyvZWrJ3sU0I3qixhZlc3XS6vrXIpzj7P6RLZmvzs85xm63I5al/ZSiVHyVYON+o5N1vpeLYSviUqdrlcYmaZaLayzJklhTOvCTPfspTtrVg72ZuEbmBZwhLZSg4qWmspzsztVJStKco+z2m2LpdD9pWwVHKUVF0uRz3nJpyvLCV8RylBL9fl8pDfXW1mmWiqLpeH/PurzTw+Ww0s9R/1Vppsb8Xayd4kdAvNLAOYXXJQ0RpLcWZup6Js5XD7PKeuh7VkK4dboup8zSrhG3lnf2YpYKYS64wlsrNKbUfta/Z5um3MszsVl3jbhYTu2WaWAehyebhRpVPZSnFmbqeibOVw+zynroe1ZCuHW6LifM0s4Rt153pmKaAul3O2s0TFbuGjukouke2tWDu97UJC92wzyxt0uTxcxdKpmetnlYrNacSYOT3K2pjJ9bCWbOVwS1Q8L2Z2uRzSkXXAeK7MhS6Xx9/XUY5hli6XV8Y885ow6kPMt0r4VqydSOiebWZ5w9KYUfuqpmIpzuz1wxwj5mKfm6LEIds4asyofa1VtnK4bSqeFzNL+EbdGRlV3pmtrHdmmejMY7hkPEuMGvPSD/seYVRXyZnjmbmdA0nonm1meYMul4erWIozc/1UnNOKRs3FPjdFcT2cI1s53BIVz4uZJXyjStBHlXdmK+vN1uVy1DGc+R6xUR+KPeqaMKqr5Chl3g4goXu2URl0tpKDiiqW4sxcP8wxai4q3nF2PawlVZfLhSqeF9NK+AaWoI8q79z1sY8u4cvS5fLK49r1GB6lLHOJUfM+85owpKvkQDPeejDkb1oJ3bPNLG8ocxv3lFR8pX3m+mGOUXNR8Y6z62Et2crhlqh4XkTMK+EbaVR557btzC7hG3GcR5Umjrr7NrPLZYoPxb7GfrMo81m0Erpnm1neUOY27imp+Er7zPXDHKPmIlv3ziVcD2vJVg63RMXzYmYJ3yijyjuXdPybWcI3s4vjUe7iHXYMlzTZmNnlMsWHYl8l24v5ZapHJHRXmVzeoKvb4cq90j5p/WQtN12rIXORsHvnVq6H5ZTrclnxvIi5XS5HGdI1emHHvyXP3Vm6XB6lBHRraeLCY/i6bduJiV0uB37Y9yjZXswvUz0ioTs5I0oyRu6rmn1+pT3bK1T7zFyM4Xo4x6jjvM/HcJuZXS5HmflH6cwSvpldHGdXEYxYGzNLN0fJ9mJ+meoRCd3J0NVtdxVLcUbJ9grVPjMXu3M9nKNil8uKZna5nNk5cNR2ZpbwzeziOOpvkpkfZj2zdDPbWh1l5rzvREJ3MnR121HRUpxRsr1Ctc/Mxe5cD+eo2OWyolElfKM6GS4xqoRvSAfCgSV8ozpPDilNXGLyh1nP/IDyUVKVzc+c911J6E6Grm7sItsrVPvMXOzO9XCOil0uKxpVwle1c2Cm7YxqipJtzWcrlay6VveKhO5k6OrGLva53DQbc7E718M5Kna5rGhUCV+2LpczS5pHbWdU58mZXRyXyFYqWXGt7h0J3cnI0tVNR8SC9rzcNBVzMcSoErVd93WU7VRUrstlUaO6OM587s5W0jxqO1vnImEXxyWylUqm6sg6cF+rIqE7ObM6iXk1A8gs2wcNr5kulydvVAnfzOfubCXNo7Yz8s5RtjWfrVRyX7tcliGhOxkzu7p5NQPILNsHDa/1BS5dLucYVcI387k7W0nzqO2MKonPdt3IViq5z10uy5DQnYyZncS8mgFklu2DhtdKl8sJBpTwHaX74ijTulzO3M7Akvhsa35GqeRRynr3tstlJRK6kzGzk5hXM4DMsn3Q8FrpcplHtqYoV7a5xu2MkG3NjxrPqDtrulwWIKE7GTM7ienCB2SW7YOG10qXyzxGdV8cJVtJc7YSx2xrftR4Rt1Z0+WyAAndydi1q9viW+G68AGZTe4yt8/lOrt2uRzdcXSfDem+OFC2kuZsJY7ZuoWPuo6NurNWsSPr3pHQnYyZTVEA1mCNpVyzbXvsszuO7qtsd3yylTRnK3HMeFdoxDlYsSlKtrVRhoTuZHjjOcByay3lmmnJY5/ZcXSfZXsrRLbulNkS3mx/j406B0etw4odWfeOhO5keOM5wHJrLeWaacljn9lxdG8lfCvEqJK5VF0uB8r299iQc3DgOpx5fLKtjTIkdCfDG88BlltrKddMSx77zI6j5DHyrusaS6Oz/T2W7Rys2pF1r0joTsaS29wvXhADsA/WWso105LHPrPjKHmMuuu61tLotZbIjlKxI+vekdCdgITlFgCZrbWUa6atZXW9961/CA3sOEoeo+74rLI0OuHfbKm6bhbtyLp3JHQAZLDGUq6ZMpbVkcOoOz5Ko+fY57tU1sYxSegAOG1rLeWaKVtZHXmMKplTGj3HPt+lsjaOSUIHwGlbZSnXZNnK6khiYMncjNLo0/gg72z2+S6VtXFMEjoATptSrt1lK6tjnUaU47oLfLh9vktlbRyThA6A06aUa3fZyupYn1F/bLsLfLhsXTdnsjaOSUIHwGmb8cHHqy7XmVRWt+pjyFaj/th2F/gQCbtuzmRtHJOEDoDTpilKHo4hBxn1x7a7wBzE2jgmCR0Ap01TlDwcQw4y6o/tfS4p5HDWxjFJ6AA4bZqi5OEYcpAhXS73vKSQQ1gbxyehA+C0aYqSh2PIYXzoPCQkoQPgtI0qs1GuszvHkIN4fyUk1XpXPQEAwMFaa7/Ye/+2Q37/C733b585JuCyrzjtAQAAkJ73V0JSSi4BANjG+yshKQkdAADbDOlyCYwnoQMAYAldLiEhCR0AANvocglJSegAANjmmd77nx30y9aapihwSnS5BABgG10uISl36AAA2EaXS0hKQgcAwDaHdblsocslnBoJHQAA22iKAklJ6AAA2EZTFEhKUxQAALbRFAWScocOAIBtNEWBpCR0AABsc6UpykHvoXvPxLEAV2m9u0MOAABQkffQAQAAFCWhAwAAKEpCBwAAUJSEDgAAoCgJHQAAQFH/H3COaWSnpjZnAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# fequency bar plot - samples\n", + "import matplotlib as mpl\n", + "plt.figure()\n", + "#plt.rcParams.update({'font.family': 'Vijaya'}) \n", + "mpl.rcParams['font.sans-serif'] = ['Source Han Sans TW',\n", + " 'sans-serif',\n", + " \"Arial Unicode MS\" # fc-list :lang=hi family\n", + " ]\n", + "#plt.rc('font', family='Vijaya')\n", + "ax = w_count_df.iloc[::400].plot.bar(figsize=(15,5))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/gokul_kumar/.local/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 2962 missing from current font.\n", + " font.set_text(s, 0.0, flags=flags)\n", + "/home/gokul_kumar/.local/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 2959 missing from current font.\n", + " font.set_text(s, 0.0, flags=flags)\n", + "/home/gokul_kumar/.local/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 3010 missing from current font.\n", + " font.set_text(s, 0.0, flags=flags)\n", + "/home/gokul_kumar/.local/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 2962 missing from current font.\n", + " font.set_text(s, 0, flags=flags)\n", + "/home/gokul_kumar/.local/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 2959 missing from current font.\n", + " font.set_text(s, 0, flags=flags)\n", + "/home/gokul_kumar/.local/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 3010 missing from current font.\n", + " font.set_text(s, 0, flags=flags)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3QAAAFbCAYAAACd9cxxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3dfawm110f8O+J18kWCiQ4rkl3ne5Su6lMVQRahyDUChFEErvYaQmpEQIXUlmopi1Nq2L6R6PSf4xUNQRRpbJI2o2ECCgE2W3SIDeAqv6RBAcQbyGNlRe8VhIbOwlVkZuXnv5xZ/F643tn9s65c+fM8/lIq73PM/Oc35kzb/d3Z+b3lFprAAAA6M9zjrsDAAAAHI6EDgAAoFMSOgAAgE5J6AAAADoloQMAAOiUhA4AAKBTJ467Awd54QtfWM+cOXPc3QAAADgWH/zgB/+k1nrtftNXndCdOXMmDz300HF3AwAA4FiUUj5x0HS3XAIAAHRKQgcAANApCR0AAECnVv0MHQAAwFxf+MIXcuHChTz11FPH3ZV9nTx5MqdPn87VV199RZ+T0AEAAJt24cKFfNVXfVXOnDmTUspxd+fL1FrzxBNP5MKFCzl79uwVfdYtlwAAwKY99dRTueaaa1aZzCVJKSXXXHPNoa4gSugAAIDNW2syd9Fh+yehAwAAWMB73vOevOQlL8kNN9yQe++9t0mbnqEDAAB2ypl73tW0vY/fe+voPF/60pdy991358EHH8zp06dz880357bbbstNN900K7YrdAAAAEfsAx/4QG644YZ8/dd/fZ773OfmjjvuyP333z+7XQkdAADAEXv00Udz/fXX//nr06dP59FHH53dbhe3XD7bJdEplzUBAAC2zBU6AACAI3bq1Kk88sgjf/76woULOXXq1Ox2JXQAAABH7Oabb85HPvKRfOxjH8vnP//5vP3tb89tt902u90ubrkEAADo2YkTJ/KzP/uzecUrXpEvfelL+eEf/uF8wzd8w/x2G/QNAACgG8dVj+OWW27JLbfc0rRNt1wCAAB0SkIHAADQKQkdAABApyR0AADA5tVaj7sLBzps/yR0AADApp08eTJPPPHEapO6WmueeOKJnDx58oo/q8olAACwaadPn86FCxfy+OOPH3dX9nXy5MmcPn36ij8noQMAADbt6quvztmzZ4+7G0fCLZcAAACdGk3oSilvLaU8Vkr5/Uve+9pSyoOllI8M/79geL+UUn6mlPJwKeV3SynffMln7hzm/0gp5c6jWRwAAIDdMeUK3X9O8srL3rsnyXtrrTcmee/wOkleleTG4d9dSd6c7CWASd6Q5FuSvDTJGy4mgQAAABzOaEJXa/0fSZ687O3bk5wffj6f5NWXvP+2uud9SZ5fSnlRklckebDW+mSt9TNJHsyXJ4kAAABcgcM+Q3ddrfWTw8+fSnLd8POpJI9cMt+F4b393v8ypZS7SikPlVIeWnMVGgAAgOM2uyhK3fsyh2Zf6FBrva/Weq7Weu7aa69t1SwAAMDmHDah+/RwK2WG/x8b3n80yfWXzHd6eG+/9wEAADikwyZ0DyS5WKnyziT3X/L+Dw7VLl+W5HPDrZm/muS7SikvGIqhfNfwHgAAAIc0+sXipZRfSPLtSV5YSrmQvWqV9yb5pVLK65J8Islrh9nfneSWJA8n+bMkP5QktdYnSyn/NslvDvP9ZK318kIrAAAAXIHRhK7W+n37THr5s8xbk9y9TztvTfLWK+odAAAA+5pdFAUAAIDjIaEDAADolIQOAACgUxI6AACATknoAAAAOiWhAwAA6JSEDgAAoFMSOgAAgE5J6AAAADoloQMAAOiUhA4AAKBTEjoAAIBOSegAAAA6JaEDAADolIQOAACgUxI6AACATknoAAAAOnXiuDvQypl73vWM1x+/99Zj6gkAAMAyXKEDAADolIQOAACgUxI6AACATknoAAAAOiWhAwAA6JSEDgAAoFMSOgAAgE5J6AAAADoloQMAAOiUhA4AAKBTEjoAAIBOSegAAAA6JaEDAADolIQOAACgUxI6AACATknoAAAAOiWhAwAA6JSEDgAAoFMSOgAAgE5J6AAAADoloQMAAOjUrISulPLPSil/UEr5/VLKL5RSTpZSzpZS3l9KebiU8oullOcO8z5veP3wMP1MiwUAAADYVYdO6Eopp5L8kyTnaq1/I8lVSe5I8lNJ3lhrvSHJZ5K8bvjI65J8Znj/jcN8AAAAHNLcWy5PJPkLpZQTSb4iySeTfEeSdwzTzyd59fDz7cPrDNNfXkopM+MDAADsrEMndLXWR5P8uyR/nL1E7nNJPpjks7XWLw6zXUhyavj5VJJHhs9+cZj/msPGBwAA2HVzbrl8Qfauup1N8peTfGWSV87tUCnlrlLKQ6WUhx5//PG5zQEAAGzWnFsuvzPJx2qtj9dav5DknUm+Lcnzh1swk+R0kkeHnx9Ncn2SDNO/JskTlzdaa72v1nqu1nru2muvndE9AACAbZuT0P1xkpeVUr5ieBbu5Un+MMmvJ3nNMM+dSe4ffn5geJ1h+q/VWuuM+AAAADttzjN0789ecZPfSvJ7Q1v3JfnxJK8vpTycvWfk3jJ85C1Jrhnef32Se2b0GwAAYOedGJ9lf7XWNyR5w2VvfzTJS59l3qeSfO+ceAAAADxt7tcWAAAAcEwkdAAAAJ2S0AEAAHRKQgcAANApCR0AAECnJHQAAACdktABAAB0SkIHAADQKQkdAABApyR0AAAAnZLQAQAAdEpCBwAA0CkJHQAAQKckdAAAAJ2S0AEAAHRKQgcAANApCR0AAECnJHQAAACdktABAAB0SkIHAADQKQkdAABApyR0AAAAnZLQAQAAdEpCBwAA0CkJHQAAQKckdAAAAJ2S0AEAAHRKQgcAANApCR0AAECnJHQAAACdktABAAB0SkIHAADQKQkdAABApyR0AAAAnZLQAQAAdEpCBwAA0CkJHQAAQKckdAAAAJ2S0AEAAHRKQgcAANCpWQldKeX5pZR3lFL+qJTyoVLKt5ZSvraU8mAp5SPD/y8Y5i2llJ8ppTxcSvndUso3t1kEAACA3TT3Ct2bkryn1vrXk3xjkg8luSfJe2utNyZ57/A6SV6V5Mbh311J3jwzNgAAwE47dEJXSvmaJH87yVuSpNb6+VrrZ5PcnuT8MNv5JK8efr49ydvqnvcleX4p5UWH7jkAAMCOm3OF7mySx5P8p1LKb5dSfq6U8pVJrqu1fnKY51NJrht+PpXkkUs+f2F47xlKKXeVUh4qpTz0+OOPz+geAADAts1J6E4k+eYkb661flOS/5Onb69MktRaa5J6JY3WWu+rtZ6rtZ679tprZ3QPAABg2+YkdBeSXKi1vn94/Y7sJXifvngr5fD/Y8P0R5Ncf8nnTw/vAQAAcAiHTuhqrZ9K8kgp5SXDWy9P8odJHkhy5/DenUnuH35+IMkPDtUuX5bkc5fcmgkAAMAVOjHz8/84yc+XUp6b5KNJfih7SeIvlVJel+QTSV47zPvuJLckeTjJnw3zAgAAcEizErpa6+8kOfcsk17+LPPWJHfPiQcAAMDT5n4PHQAAAMdEQgcAANApCR0AAECnJHQAAACdktABAAB0SkIHAADQKQkdAABApyR0AAAAnZLQAQAAdEpCBwAA0CkJHQAAQKckdAAAAJ2S0AEAAHRKQgcAANApCR0AAECnJHQAAACdktABAAB0SkIHAADQKQkdAABApyR0AAAAnZLQAQAAdEpCBwAA0CkJHQAAQKckdAAAAJ2S0AEAAHRKQgcAANApCR0AAECnJHQAAACdktABAAB0SkIHAADQKQkdAABAp04cdweWcuaedz3j9cfvvfWYegIAANCGK3QAAACdktABAAB0SkIHAADQKQkdAABApyR0AAAAnZLQAQAAdEpCBwAA0KnZCV0p5apSym+XUv7r8PpsKeX9pZSHSym/WEp57vD+84bXDw/Tz8yNDQAAsMtaXKH7p0k+dMnrn0ryxlrrDUk+k+R1w/uvS/KZ4f03DvMBAABwSLMSulLK6SS3Jvm54XVJ8h1J3jHMcj7Jq4efbx9eZ5j+8mF+AAAADmHuFbqfTvIvk/y/4fU1ST5ba/3i8PpCklPDz6eSPJIkw/TPDfMDAABwCIdO6EopfyfJY7XWDzbsT0opd5VSHiqlPPT444+3bBoAAGBTTsz47Lclua2UckuSk0m+Osmbkjy/lHJiuAp3Osmjw/yPJrk+yYVSyokkX5PkicsbrbXel+S+JDl37lyd0b8rduaedz3j9cfvvXXJ8AAAAFfk0Ffoaq0/UWs9XWs9k+SOJL9Wa/3+JL+e5DXDbHcmuX/4+YHhdYbpv1ZrXTRhAwAA2JKj+B66H0/y+lLKw9l7Ru4tw/tvSXLN8P7rk9xzBLEBAAB2xpxbLv9crfU3kvzG8PNHk7z0WeZ5Ksn3toh3XNySCQAArMlRXKEDAABgARI6AACATknoAAAAOiWhAwAA6FSToijsUTQFAABYkit0AAAAnZLQAQAAdEpCBwAA0CkJHQAAQKckdAAAAJ2S0AEAAHRKQgcAANApCR0AAECnJHQAAACdktABAAB06sRxd2DXnLnnXc94/fF7bz2mngAAAL1zhQ4AAKBTEjoAAIBOueVyZdySCQAATOUKHQAAQKckdAAAAJ2S0AEAAHRKQgcAANApCR0AAECnVLnszOVVMBOVMAEAYFe5QgcAANApCR0AAECnJHQAAACdktABAAB0SkIHAADQKVUuN+jySpiqYAIAwDa5QgcAANApCR0AAECnJHQAAACd8gzdDvKMHQAAbIMrdAAAAJ2S0AEAAHRKQgcAANApCR0AAECnJHQAAACdOnSVy1LK9UneluS6JDXJfbXWN5VSvjbJLyY5k+TjSV5ba/1MKaUkeVOSW5L8WZJ/UGv9rXnd5yhcXgUzUQkTAADWaM4Vui8m+ee11puSvCzJ3aWUm5Lck+S9tdYbk7x3eJ0kr0py4/DvriRvnhEbAABg5x36Cl2t9ZNJPjn8/L9LKR9KcirJ7Um+fZjtfJLfSPLjw/tvq7XWJO8rpTy/lPKioR0647vsAADg+DX5YvFSypkk35Tk/UmuuyRJ+1T2bslM9pK9Ry752IXhvWckdKWUu7J3BS8vfvGLW3SPYyDhAwCAozc7oSul/MUkv5zkx2qtf7r3qNyeWmstpdQraa/Wel+S+5Lk3LlzV/RZ+iLpAwCAeWZVuSylXJ29ZO7na63vHN7+dCnlRcP0FyV5bHj/0STXX/Lx08N7AAAAHMKhE7qhauVbknyo1vrvL5n0QJI7h5/vTHL/Je//YNnzsiSf8/wcAADA4c255fLbkvxAkt8rpfzO8N6/SnJvkl8qpbwuySeSvHaY9u7sfWXBw9n72oIfmhEbAABg582pcvk/k5R9Jr/8WeavSe4+bDx2j2fsAADgYE2qXMJx8AXoAADsullFUQAAADg+EjoAAIBOueWSTfMcHgAAW+YKHQAAQKdcoWOnuYIHAEDPXKEDAADolIQOAACgUxI6AACATnmGDg4w5cvLx57D85weAABHRUIHKyApBADgMCR0sAESPgCA3SShgx0h6QMA2B4JHZBEwgcA0CMJHTBJiwIxAAC0JaEDFiPhAwBoS0IHrMrcip9TkkZVRQGArZDQAVwh308IAKyFhA5ghSSNAMAUzznuDgAAAHA4rtAB7DBX8QCgbxI6APZ1pbd1Tpln7vSjiDF1HgBYGwkdAEzgmUUA1khCBwAL6eVqJQD9kNABAM/Qw/dBTkluAXaBhA4A2KReroi6qgrMIaEDAOjYLhUnWmOM/eLAUiR0AADQkKSRJUnoAACgM71crewhxlH0c8kEXEIHAABwxI4qKXzOvG4BAABwXCR0AAAAnZLQAQAAdEpCBwAA0CkJHQAAQKckdAAAAJ2S0AEAAHRKQgcAANApCR0AAECnFk/oSimvLKV8uJTycCnlnqXjAwAAbMWiCV0p5aok/yHJq5LclOT7Sik3LdkHAACArVj6Ct1Lkzxca/1orfXzSd6e5PaF+wAAALAJSyd0p5I8csnrC8N7AAAAXKFSa10uWCmvSfLKWus/HF7/QJJvqbX+6CXz3JXkruHlS5J8+LJmXpjkTw4IM3e6GG3b2EqMFm1sJUaLNsRYto2txGjRhhjLtrGVGC3a2EqMFm2IsWwbW4nRoo1eY/yVWuu1+85da13sX5JvTfKrl7z+iSQ/cYVtPHSU08Xor5/GwlhsOUYv/TQW24vRSz+NhbHYcoxe+mkslh+LS/8tfcvlbya5sZRytpTy3CR3JHlg4T4AAABswoklg9Vav1hK+dEkv5rkqiRvrbX+wZJ9AAAA2IpFE7okqbW+O8m7ZzRx3xFPF6NtG1uJ0aKNrcRo0YYYy7axlRgt2hBj2Ta2EqNFG1uJ0aINMZZtYysxWrSxlRjPsGhRFAAAANpZ+hk6AAAAGpHQAQAAdEpCBwAA0KnFi6JcqVLKvx6Z5VyShw6Y/liSvzSzja3E6KWfW4nRSz93aSweq7X+x8vfLKV8Xa31UxOON1sai12J0Us/jcWyMXrp51Zi7HfsfVGSJ2ut/7eX3/caLMex9TO5ovNdL/vhly3rpevjoIbXNhaHXY6kg6IopZR3Z+/76so+s3w4yV87YPr5JBe/8+6wbWwlRi/93EqMXvq5S2Nxvtb66svfLKW8q9Z664TjzZbGYldi9NJPY7FsjF76uZUY+x17/3uSv5rkl5PcNDdGg34usRzH1s+hr1PPd73sh1+2rJeuj1rrv9jnc6sbi8MuR9LBFbokX6q1/ul+E0spdWx6iza2EqOXfm4lRi/93KWxeLb3a623Dj9O+fxmxmJXYvTST2OxbIxe+rmVGM/2fq31O0spJXtJ0L1r6OcSy3Fc/Rz6Ovl818t+ePl7l62Pfa1wLC7v36TlSPpI6OZeQqwN2thKjF76uZUYvfRziRhr6edLRm6teHGDGGPWMha7EqOXfi4Ro5d+LhGjl35uJUadcFvb2PF3NEYWGIsGy9FLP0djZB374YHn9VLK38r47ZBrGIvR5aj73Eab9JHQXV1K+ep9ppUkzxmZflWDNrYSo5d+biVGL/3cpbG4JslPDz8/m7t3aCx2JUYv/TQWy8bopZ9biXFVkpfl4FvSxo6/axmLucvRSz972Q/HzutTbodcw1hMWY59E7oenqF7Qw7Oem9O8psHTH8syXUz29hKjLE2SvYe2jzufm4lxlH3syT59EiMtazTtayz19Ra/+Z+E0spH0ryCzNj9DIWuxKjl34ai2Vj9NLPrcR4LMmttdbv3m+GCcfftYzF3OXopZ+97Idj5/VfSXKig7EYXY5a69/db3oPV+iS/bPVqdNbtLGVGN+Sg/9K8b4cXIVnSowp86xhLJaIMbeNs0m+/4B5pvzlaS3rtEUbc2OM/QWrNogxZXqLNsRYto2txGjRxlZitGhDjOnTWxx/1zAWazmPbGW857YxZTl7GIspfdy/4Q6u0K2h8sxWYpxPctXIXyk+tYJ+biVGizb+qNb6on2mTf3L0xrW6VrW2f9KcuM+08ol03dhLHYlRi/9NBbLxuiln1uJcT7J85L8/X2mTzn+rmUs5i5HL/3sZT8cO6+/bYix9rEYXY5a6+37TO/iCt0qKs9sJUYm/AVgDf3cSowGbew36aJu1mmLNhrEeDLJj+03Pcmnd2gsdiZGL/00FsvG6KWfW4mRvbtFZh1/VzIWs5ejl352sh+Ondf/W/Zuh1z7WExZjn31kNCtoYLOVmLUjD+0OVcvY7FEjBZtlAYP4s61lrFoEWPstooWt26MWctY7EqMXvq5RIxe+rlEjF76uZUYFz8/5/g7JcYSY5Ec/3lkTC/j3aqNKb/r9DAWh/6drYeEbg0VdLYS46o8/Reb/TaaJ1bQz63EaNHGZ3Pw+npP9srxrn2drmWdXZPkjdl/rP7RDo3FrsTopZ/GYtkYvfRzKzGuyvgz/GPH37WMxdzl6KWfveyHY+f1KbdDrmEspizHzla5LBmvAjjWxpTpvVQzfKwe8B0WifG+ghiTxnukjUn9GFtnY2au02SZsRhro9V4b6HK5VLbXg/74VJtbCVGL/3cwljs0vlwahtzqi4ucdybch76dFS5vDTGGvbDLVS5LEm+Z2w56sarXJ7NeBXA3x5pYyzGlOlz25iyHC2qGU6xC+M9ZXqLiqAt+tHCGsZirI0P5+Btq8V4z70lc0qMKdPH5hnbz5ba9tawH66lja3EaNHGVmLMbWOXzoct2hg7/r4gB38PV4vj3tg6GzsPnc96ziNzx3tKP3vYD1vc4rrEWIxtez8y0vaBy9DDFbqxKpdTqgA+b6SNNVSAWqKa4fla66v3+/zQxq6M9xIVQVv0c3SdjZmwTpcai7E2PjmybbUY716qXI7tZ0tse2vZD9dQRW0rMXrpZy9jsUvnwyWqXH641vp1+0xvddwbW2dj56FfSXIyqlxejLGG/bCXKpdTz+v79XHzVS7HPr9UNaEuqhmOBcnujPeUGC3Gu0UFqLlWUR11QhtjWox3L1UuD+hikoW2va3E6KWfxmLZGA3a2G/SRd2MxULjPVp18YBpSZvj3kiIUZOWYyXrTJXLPWupcnlA+CTJzle5LBMeVOyhAtSU5ZhbzXBKH3dlvKfEaDHerSqDHWcbrcZi7gPDU2LMva1iiepkU9oY289axJirlxi99HOJGL30c4kYS523exiLJWJc/PxBx6+rFjjuja2zKcUvxvqzxHlkzJTxXsM+1KqNKdvHcY/F6LaXacvxrHpI6MZ+CZxSBfC2mTvwVqoZXrXPtEvtyngvURG0VQWoudZQHXVKGx9oEGMrVS7H9rMltr217IdrqKK2lRi99LOXsdil8+ESVS7vyNEf98bW2dh56D1JvjuqXK5pP+ylyuXYtvfF7HiVy7mVG0vmVdcrmV+BsmTvcu9RVzNsMVaj/ZzQjxZVpo68QlSD5dxClcsW63yx7Tvj++FYFak1VLkcHa8p492gnz1U8FvieDEWY0o/x2JMmb6GsRibvsR4tzjnJgsdn4/4fJisY9ub2sZY1cUDq/g1Oge0OBf9l5HlUOVy2TaOusplq/3wwOPFhO1q81Uup5hbXW9K1aMpD3WOtTHrIDM46rGa2s+D+nE288d7qcphY6a0sUQ/5vRhbH1MWeettpsxY2M11o8pVaSWWKdzx2vK5+fuI1O2iyX2w7nH7yn9HFvWtVQVXWIsxvrRYrtocQ5oVfX5uM8TvWx7LdqYcivi3D4scS6ae2v/RUe9zlr0c6nfcea00eIW1yUqrI6ZtX/0kNC12Dl7eWB4rkXGqkE/fqTBWC2RpLdIYtaQ6M9eHxNitNhuxkwZ77F+jN3D3uLWjSnrdO54Tfn83H1kynaxxH7Y4tg6dx94QY5+u1jLWCyxXbQ4B4yNxRLrrMV5opdtr8VYjd2SNvaIQYtzQItz0dxb+5daZ3P7udR2MbeNFre4ZoH9cOx4MWv/6CGha7Fz9vTA8BxLjFWLX+4nNDHahyWS9DFTxnsNiX6LyqVz51lq+x6Ls5Yql3PHa8r0rVTwa3Fs3UpV0SXGYontYqyNKTFG94GVHJ+3su0tUeXywCp+U/qQZc5Fqlym6XZxlFUuSyZWuTxgWtJoPxyJMWv/6CGha7Fz9vLA8FxLjNWUfs6u9DOhD0sk6XPnWUuiP3d9tCims9T2PbofZv+/nk2N0WKdzh2vKZ+f288p28US+2GLY+vcfWBMi+1iSowlxmJMi+2ixTmglyrEW9n2Wo3VUd+StsS56GJbB/XjIEuts2ReP6fEWEMbY7dLns/4beBLVFhtcUvxvnpI6FrsnHOr602pejRWgXJKG3MtMVZT+rlElaklKoeNmTLea0j0W1QuHdNiuxkzZbzH+jFWRWqpKpdzx2vK5+fuI2up4Df3+D2ln71UFV1iLJbYLlqcA1pUfV7i+Kyi7dNtzH0spMU5oMW5aG71SFUu27YxdrvklNvAl6iw2uKW4s1WuSxpULFoK0bGKmlQMXEt/ZgQY3YVtQWqXDbpx5i1bBdztViOso7qZGvZD5eobjpWGWyRsZp7HmmwrycNqhkuMBbJQhWAj3ofWGidNTlPzNj2StZRbXasjYv9PPIqlwsdW4/6PNLk2JmjrXLZYtub0saUsfieWus37jexlPLOJFcf9bYXVS5HLVU9byvm3M7Q0hL9OCjG2Rx9UZSxPiRtqtKtofrpWsxdjim3REyJMTbPWsZ7zj4yZdsb276nVAZbYqxanEfmbhdj4z21iloLS2y/a9gHjnqdtTpPHGSJirZTpo/NM2WsjvWWtIZanEeWOHbO7eeUdTq3ou35zK9YO3a75JTbwFtte3O2z1l97CGhW6Ji0VasJfldoh9LVFGb24fzWUdRlLVsF3O1WI41VCdby364RHXTscpgS43V3PNIi4q2LaoZthiLJf7ItIZjzhLrrNV54qCxWKKibYtKhFPG6lhvSWuoxXlkiWPn3H4uUtE288di7HbJKbeBt9j2VLkcsUTFoq1YS/K7RD+WqKI2tw9rKYqylu1irhbLsYrqZBP62cIqqpuuZKzmnkdaVLQdCTGpiloLa6jsuMQ+sMg6a9SPOTGaHJMWGquDjr8lbapcLqHFeWSJY+fcfo50sU0F4cwfiz+qtf7kQQ2UUi4+c7ufFtveUVa5HN0/ekjolqpYtAVrSX6X6MdYG2WBh91bVNzqpfrpGrRajoPOMFNirCFJbxFnbB9pUfBhrlZjNfc80mK7GBvvMUslty0+v4ZjzhLrrNV54iBLVLQd02qs5l5hW8N2ddHc88hSx845/ZyyTlu00aJi7RRHfTvk3O1z1v7RQ0K3RMWirVhL8rtEP5aopDm3D62q0s21lu1irhbLsYbqZGvZD5eobjpWGWypsZp7HmlR0bZFNcMW1lDZcYl9YIl11uo8cZAlKtq2qEQ4ZaxumXkFYw3bVdLmPLLEsXNuP5eoaNuqYu2YJSqszt0+Z13hW32VS6abUg1rJdX1jrrK5SLLuoY+TLHE+lhCi+WYUEXqqKuTrWU/XMs+soqxGjNl28v8CmeL7Kcz18mkfqzhmDNl+8/MddagH0vFmFPlsiJGdO8AAAUBSURBVNlYlVIeqLXedsD0d9Za/94B04/9mDb0Y855ZFI/Z67Ti+tsbpXLuft6k3Wy0Ll/TpXLKfvI6FjM3T96uELHdGt5YDgH9KGVNSzrGvow1VGvj6XMXY4pt0SMxVhL5dIxa9g+exmrKaZse3O3zyX20xbV9aY47mNOq+qQLawhxkHTz2Z+NcMptlIUZew8MuWLrudWR52yzlqc78YstU6WOPcfRFEUFrWWB4aX2MHXsKxr6MMUazkJzrWWKpdbKYqyin1kBX2cYomT+VL76dyKclP6sYZjTovqkC36uYYYY384aVHNcMpyzL31eQ3HtGTCM18LVEdtUVV0yvlubJ0usU6WOPe3uB2yVVGUQ+0fErptWcsDw0vs4GtY1jX0YYq1nATnWkuVy60URVnDPnLUn29liZP5Uvvp6HaxkSqXU7b/NVRkXiTGAtUMR5ej1vpvxuaZ0I8501sZq0b46ZHPt9iHxj5f0+Z8NyXOnOlTLHHuH6tyeeRFUebuHxK6bVnLA8NL7OBrWNY19GGKtZwE52q1HAedCVtUJ+ulKMoa9pG1jNWYJSqcLbWfLlFRbg3HnBbVIXv54+PcNlpUM1zLOl1Ci6IoY8bGc8o6u/jzYWNMWadLrJMlzv1jliiKMouEblvWUhF0iY16Dcu6hj5MsZaT4FxrqXK5hsqlU6xh++xlrMYscTJfaj+dW12vlyqXLapDLlGReYkYY384aVHNcC3rdAljV4yezNFXR52yzr47R594LrFOljj3j922OWU5x6p1Hun2qcolza2lEhV7trI+WixHiyqXPYwVbTWocjm6fa6hMuSEfkzdz7o45qygQt9SMWZXk+1lnS5hbjXCiTGc7wYLjcWBVS574AodR2END8TztK2sjxbLsUTVL7ZpbLtosX2uYdtrsRy9HHPWULBkDUVRtrROl7DEVVfnu6ctNRZdk9BxFNbwQDxP28r6aLEcS1T9Ynum/EIxd/tcyy/MLfazXo45qyhYskSMHVqnS1jiNkPnu6ctMRa9PHqyLwkdR2HzfwnpzFbWR4vlWKLqF9sz5ReKudvnWn5hbrGf9XLMWUPBkjUURdnSOj1yDap1Tgozc3oyoRrnSo45Y5YYi7Eql6snoeMobP4vIZ3ZyvpotRxHXfWL7WlR/XRs+1zLttdiP+vlmLOGgiVrKIqypXW6FUsUAvmRkc+v5Xy3hqIoqyeh4yispRIVe7ayPlosxxLlptmeKb9QzN0+1/ILc4v9rJdjzhL9XEOMFtVke1mnW9FivMeu+k/96oPjtsRYrCV5PTRVLoGdMbPq105VcuNpK6lUaNsDJptQjfMPk7z9gCZWUeWyhSUqkx43V+iAXTL2F6wXJPnpbPi2DA5lDZUKbXvAlRi9FTd9VLlsYS13QBwZCR2wS8YO6tn6bRkcyioqFTaIAeyOsVsVv5g+qly2sPlbhiV0wC4Zrfo18nm/VO+mNVQqtO0Bk41V4yylnNuVPyItVJn0WEnogF2iKAqHsYZKhbY9oCV/RNoQCR2wS8Zua3syG78tg0NZQ6VC2x7Qkj8ibYgql8DO2IVKVwAwRmXdbXGFDtgl/iIJACrrboqEDtglbmsDAJV1N0VCB+yMXah0BQATKIqyIRI6AADYLR5B2BAJHQAA7BaPIGyIKpcAAACdes5xdwAAAIDDkdABAAB0SkIHAADQKQkdAABApyR0AAAAnfr/EEq+mtxkprIAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# fequency bar plot - first 100\n", + "w_count_df.iloc[:100].plot.bar(figsize=(15,5))" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/gokul_kumar/.local/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 2947 missing from current font.\n", + " font.set_text(s, 0.0, flags=flags)\n", + "/home/gokul_kumar/.local/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 2954 missing from current font.\n", + " font.set_text(s, 0.0, flags=flags)\n", + "/home/gokul_kumar/.local/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 2947 missing from current font.\n", + " font.set_text(s, 0, flags=flags)\n", + "/home/gokul_kumar/.local/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 2954 missing from current font.\n", + " font.set_text(s, 0, flags=flags)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2sAAAGgCAYAAAA0Bf/OAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3df6xt2X0Y9O/KjE344TTReEwtzzjzIrsWExTUMHFSVRFRGyp7ooypEmCshl8KHRnsCtQKyRHIpa4QbkHUohiKK6pOKxHjVm0yKBObAEGVEI49IW1U2zWaOnH8Jok98Y8Ekjr2uIs/3n1+z3fevWvdt9dZ+7v3/nyk0bx79757rbPP2muf71nf8z2l1hoAAADk8g1rdwAAAIAXE6wBAAAkJFgDAABISLAGAACQkGANAAAgIcEaAABAQveu1fDLX/7y+tBDD63VPAAAwKp+/ud//jdqrfdftH21YO2hhx6KZ555Zq3mAQAAVlVK+dRl26VBAgAAJCRYAwAASEiwBgAAkNBqn1kDAABY6itf+Upcv349vvSlL63dlQt94zd+YzzwwAPxkpe85Ep/J1gDAAA26/r16/Gyl70sHnrooSilrN2dF6m1xuc+97m4fv16XLt27Up/Kw0SAADYrC996Utx3333pQzUIiJKKXHffffd1cqfYA0AANi0rIHaTXfbv2awVkr5K6WUz5ZS/v4F20sp5b8upTxbSvnFUsp33lVPAAAANugDH/hAvO51r4vXvOY18a53vWvYcXs+s/ZXI+K/iYi/dsH2N0bEa8/+++6I+O/O/g8AADDVQ2//qaHH++V3/cCl27/61a/GW9/61viZn/mZeOCBB+K7vuu74rHHHouHH354cdvNlbVa69+JiM9fssubIuKv1Rs+FBHfXEp55eKeAQAAJPfhD384XvOa18S3fdu3xUtf+tJ4/PHH4yd/8ieHHHvEZ9ZeFRGfvu3n62e/AwAA2LXnnnsuHnzwwa/9/MADD8Rzzz035NhTS/eXUp6IiCciIl796ldHxIuXKe+0zNjaZ+n2U7Rxin7OaGMr/dzqudjq+T5FP7d6LrZ6vk/Rz62ei62e71P0c6vnYqvn+xT93Oq52Or5PkU/t3ouMp3vv/zYK+Mr178YERHf8cA3v+gYS/3i2bFvOt/Gpz732/H53/7y1/b7lc//9h2P8Zkv/KN449njaaVW3jRiZe25iHjwtp8fOPvdi9Ra31trfaTW+sj9998/oGkAAID1vOL3vjJ+/VdvhT+f/bVfjVe9akyi4Yhg7amI+DfPqkJ+T0T8Zq311wYcFwAAILVv/xe+M37ll/9hXP+VT8VXvvzl+MBTfysee+yxIcdupkGWUn48Ir4vIl5eSrkeEX86Il4SEVFr/UsR8XREPBoRz0bE70TEvzOkZwAAAMnde++98WN/9s/Hv/cjPxT/+KtfjX/lX/9j8e3f/u1jjt3aodb65sb2GhFvHdIbAACABW7/PNj5z5tFvPgzZ63PpN3pGOd97x/6I/G9f+iPXKWbXUakQQIAADCYYA0AACAhwRoAAEBCgjUAAGCzatS4UUYjr1pr1Lh6HwVrAADAZn3qi1+JF37nt9IGbLXWeOF3fis+9cWvXPlvm9UgAQAAsvqLP/eF+BMR8a3f/Bvx8f/vn/q6bZ/5wj960f4f/3//yUv3Wbr9Tvv837/0m/EXf+4Ld34AlxCsAQAAm/Vbv/uP4z/7O5+LiK8v2x8R8ca3/9SL9m/ts3T7Hfd58sX79JAGCQAAkJBgDQAAICHBGgAAQEKCNQAAgIQEawAAAAkJ1gAAABISrAEAACQkWAMAAEhIsAYAAJCQYA0AACAhwRoAAEBCgjUAAICEBGsAAAAJCdYAAAASEqwBAAAkJFgDAABISLAGAACQkGANAAAgIcEaAABAQoI1AACAhARrAAAACQnWAAAAEhKsAQAAJCRYAwAASEiwBgAAkJBgDQAAICHBGgAAQEKCNQAAgIQEawAAAAkJ1gAAABISrAEAACQkWAMAAEhIsAYAAJCQYA0AACAhwRoAAEBCgjUAAICEuoK1UsobSimfKKU8W0p5+x22v7qU8rOllF8opfxiKeXR8V0FAAA4jmawVkq5JyLeExFvjIiHI+LNpZSHz+32n0TE+2utvz8iHo+I/3Z0RwEAAI6kZ2Xt9RHxbK31k7XWL0fE+yLiTef2qRHxTWf//j0R8avjuggAAHA893bs86qI+PRtP1+PiO8+t89/GhH/SynlT0TEPx0R3z+kdwAAAAc1qsDImyPir9ZaH4iIRyPir5dSXnTsUsoTpZRnSinPPP/884OaBgAA2J+eYO25iHjwtp8fOPvd7X40It4fEVFr/b8i4hsj4uXnD1RrfW+t9ZFa6yP333//3fUYAADgAHqCtY9ExGtLKddKKS+NGwVEnjq3z69ExB+OiCil/HNxI1izdAYAAHCXmsFarfWFiHhbRHwwIj4eN6o+frSU8s5SymNnu/2piPjjpZS/FxE/HhH/dq21nqrTAAAAe9dTYCRqrU9HxNPnfveO2/79sYj4g2O7BgAAcFyjCowAAAAwkGANAAAgIcEaAABAQoI1AACAhARrAAAACQnWAAAAEhKsAQAAJCRYAwAASEiwBgAAkJBgDQAAICHBGgAAQEKCNQAAgIQEawAAAAkJ1gAAABISrAEAACQkWAMAAEhIsAYAAJCQYA0AACAhwRoAAEBCgjUAAICEBGsAAAAJCdYAAAASEqwBAAAkJFgDAABISLAGAACQkGANAAAgIcEaAABAQoI1AACAhARrAAAACQnWAAAAEhKsAQAAJCRYAwAASEiwBgAAkJBgDQAAICHBGgAAQEKCNQAAgIQEawAAAAkJ1gAAABISrAEAACQkWAMAAEhIsAYAAJCQYA0AACAhwRoAAEBCXcFaKeUNpZRPlFKeLaW8/YJ9/rVSysdKKR8tpfyPY7sJAABwLPe2diil3BMR74mIfzkirkfER0opT9VaP3bbPq+NiB+LiD9Ya/1CKeUVp+owAADAEfSsrL0+Ip6ttX6y1vrliHhfRLzp3D5/PCLeU2v9QkRErfWzY7sJAABwLD3B2qsi4tO3/Xz97He3+30R8ftKKf9nKeVDpZQ33OlApZQnSinPlFKeef755++uxwAAAAcwqsDIvRHx2oj4voh4c0T85VLKN5/fqdb63lrrI7XWR+6///5BTQMAAOxPT7D2XEQ8eNvPD5z97nbXI+KpWutXaq2/FBH/T9wI3gAAALgLPcHaRyLitaWUa6WUl0bE4xHx1Ll9fiJurKpFKeXlcSMt8pMD+wkAAHAozWCt1vpCRLwtIj4YER+PiPfXWj9aSnlnKeWxs90+GBGfK6V8LCJ+NiL+o1rr507VaQAAgL1rlu6PiKi1Ph0RT5/73Ttu+3eNiD959h8AAAALjSowAgAAwECCNQAAgIQEawAAAAkJ1gAAABISrAEAACQkWAMAAEhIsAYAAJCQYA0AACAhwRoAAEBCgjUAAICEBGsAAAAJCdYAAAASEqwBAAAkJFgDAABISLAGAACQkGANAAAgIcEaAABAQoI1AACAhARrAAAACQnWAAAAEhKsAQAAJCRYAwAASEiwBgAAkJBgDQAAICHBGgAAQEKCNQAAgIQEawAAAAkJ1gAAABISrAEAACQkWAMAAEhIsAYAAJCQYA0AACAhwRoAAEBCgjUAAICEBGsAAAAJCdYAAAASEqwBAAAkJFgDAABISLAGAACQkGANAAAgIcEaAABAQoI1AACAhLqCtVLKG0opnyilPFtKefsl+/1QKaWWUh4Z10UAAIDjaQZrpZR7IuI9EfHGiHg4It5cSnn4Dvu9LCL+g4j4udGdBAAAOJqelbXXR8SztdZP1lq/HBHvi4g33WG/PxsRfy4ivjSwfwAAAIfUE6y9KiI+fdvP189+9zWllO+MiAdrrT81sG8AAACHtbjASCnlGyLiv4qIP9Wx7xOllGdKKc88//zzS5sGAADYrZ5g7bmIePC2nx84+91NL4uIfz4i/o9Syi9HxPdExFN3KjJSa31vrfWRWusj999//933GgAAYOd6grWPRMRrSynXSikvjYjHI+Kpmxtrrb9Za315rfWhWutDEfGhiHis1vrMSXoMAABwAM1grdb6QkS8LSI+GBEfj4j311o/Wkp5ZynlsVN3EAAA4Iju7dmp1vp0RDx97nfvuGDf71veLQAAgGNbXGAEAACA8QRrAAAACQnWAAAAEhKsAQAAJCRYAwAASEiwBgAAkJBgDQAAICHBGgAAQEKCNQAAgIQEawAAAAkJ1gAAABISrAEAACQkWAMAAEhIsAYAAJCQYA0AACAhwRoAAEBCgjUAAICEBGsAAAAJCdYAAAASEqwBAAAkJFgDAABISLAGAACQkGANAAAgIcEaAABAQoI1AACAhARrAAAACQnWAAAAEhKsAQAAJCRYAwAASEiwBgAAkJBgDQAAICHBGgAAQEKCNQAAgIQEawAAAAkJ1gAAABISrAEAACQkWAMAAEhIsAYAAJCQYA0AACAhwRoAAEBCgjUAAICEBGsAAAAJCdYAAAAS6grWSilvKKV8opTybCnl7XfY/idLKR8rpfxiKeV/K6V86/iuAgAAHEczWCul3BMR74mIN0bEwxHx5lLKw+d2+4WIeKTW+h0R8Tcj4s+P7igAAMCR9KysvT4inq21frLW+uWIeF9EvOn2HWqtP1tr/Z2zHz8UEQ+M7SYAAMCx9ARrr4qIT9/28/Wz313kRyPip5d0CgAA4OjuHXmwUsqPRMQjEfEvXbD9iYh4IiLi1a9+9cimAQAAdqVnZe25iHjwtp8fOPvd1ymlfH9E/McR8Vit9XfvdKBa63trrY/UWh+5//7776a/AAAAh9ATrH0kIl5bSrlWSnlpRDweEU/dvkMp5fdHxH8fNwK1z47vJgAAwLE0g7Va6wsR8baI+GBEfDwi3l9r/Wgp5Z2llMfOdvsvIuKfiYi/UUr5u6WUpy44HAAAAB26PrNWa306Ip4+97t33Pbv7x/cLwAAgEPr+lJsAAAA5hKsAQAAJCRYAwAASEiwBgAAkJBgDQAAICHBGgAAQEKCNQAAgIQEawAAAAkJ1gAAABISrAEAACQkWAMAAEhIsAYAAJCQYA0AACAhwRoAAEBCgjUAAICEBGsAAAAJCdYAAAASEqwBAAAkJFgDAABISLAGAACQkGANAAAgIcEaAABAQoI1AACAhARrAAAACQnWAAAAEhKsAQAAJCRYAwAASEiwBgAAkJBgDQAAICHBGgAAQEKCNQAAgIQEawAAAAkJ1gAAABISrAEAACQkWAMAAEhIsAYAAJCQYA0AACAhwRoAAEBCgjUAAICEBGsAAAAJCdYAAAASEqwBAAAkJFgDAABIqCtYK6W8oZTyiVLKs6WUt99h+z9RSvmfzrb/XCnlodEdBQAAOJJmsFZKuSci3hMRb4yIhyPizaWUh8/t9qMR8YVa62si4i9ExJ8b3VEAAIAj6VlZe31EPFtr/WSt9csR8b6IeNO5fd4UEU+e/ftvRsQfLqWUcd0EAAA4lp5g7VUR8enbfr5+9rs77lNrfSEifjMi7hvRQQAAgCMqtdbLdyjlhyPiDbXWf/fs538jIr671vq22/b5+2f7XD/7+R+e7fMb5471REQ8cfbj6yLiE7dtfnlEfN3+d9DaZ+n2rbQx4hh7aWPEMfbSxohjaGPuMfbSxohj7KWNEcfQxtxj7KWNEcfQxtxj7KWNEcfYSxt3c4xvrbXef+HetdZL/4uIPxARH7zt5x+LiB87t88HI+IPnP373rMOlNaxzx3jmaX7LN2+lTa20k/nwrnYcxtb6adz4VzsuY2t9NO52F8bW+mnc7G9c3H+v540yI9ExGtLKddKKS+NiMcj4qlz+zwVEf/W2b9/OCL+93rWGwAAAK7u3tYOtdYXSilvixurZ/dExF+ptX60lPLOuBEZPhUR/0NE/PVSyrMR8fm4EdABAABwl5rBWkRErfXpiHj63O/ecdu/vxQR/+rCvrx3wD5Lt2+ljRHH2EsbI46xlzZGHEMbc4+xlzZGHGMvbYw4hjbmHmMvbYw4hjbmHmMvbYw4xl7aGHWMr2kWGAEAAGC+ns+sAQAAMJlgDQAAICHBGgAAQEJdBUZOpZTyjsYuj0TEMwu2fzYiXpGgjc/WWv/S7b8opbwyIj5fa/3di/6otc9Vt3ec70v72fP3keBcDOrnXsZe8xjnn4+I8WPvFMcYPb5H9PNIY+8U42bEMe5iXBzmHjCjjQHn+45j6+zYv7fW+usj2ogTPGdJx16K+SJJGymuwxnjYsb8POk6vPJjXeNxnOp8f81VvpRt9H9xo8LkN0XE77ngv19fuP0nkrTxE3d47P9rRPxSRPyXl5yfS/e56val/ez5+wznYlA/9zL2mseYMfa2ML6NvfXHzUrj4jD3gI2c7zuOrbNj/9SoNk7xnCUdeynmiyRtpLgOZ5yLGfPFgMdxktcwazyOU53vm/+turIWEV+ttf7WRRtLKXXp9ixtnP9drfX7SyklIh6+6O9a+9zF9qX9fNdGzsWQfu5l7F31+Yg4ydib0YaxN7eNF9nquDjQPWBGGyeZk87a+oGBbQx/zrKOvSTzRYo2zv9uq9dIkvm5eb9b4zXMSo+j1caVt99u7WDt1N8bUJO08bpyyTJrKeV7o7EUXEr5z+OSZdiO7d+7tJ8R8erG36c4FzGmn0ttpY3aeM5Hjb3049vYu1obA8ZNlnGxVIp5b0fnuzm2on2dNduI5c/ZVsbejGNspY0s1+Eu5ueYcx22LH5OY8DjGHG+6wXp3xHrB2svKaV80wXbSkR8w8Lt9yRp476IePfZv+/kyYh4aUQ8fsk+n4iIH1mw/ckB/XzrRs7FiH7uZez1HON74vRjbwvj29i7WhtLx02WcXGke8AWznfP2GpdZzOes62MvSzzRYY2slyHe5mfZ1yHrWOMeE5HPI4R5/vCYG3VL8UupfzpuDyq/q6I+MiC7Z+NiH82QRs/XGv9jos2llL+dkTcW2v9wUv2+bVa6ysXbP/bEfF3F/bz4xHx45f8fZZzMaKfexl7Pcf4gQljbwvj29i7WhtLx02WcXGke8AWznfP2GpdZzOes62MvSzzRYY2slyHM8bFjPl5xnXYOsaI53TE41h8vmutf/Si7WuvrEVcHGWO2p6hjVZEPCtFIGJ5P7dwLkb0c8T2rbSRIT1lRBsRxt7MNraSfhWx/vnOcg/YyvkecS869XPWkmXszTrGFtrIch1G7GN+nnEdtraPeE5HPI5R88UdrR2sfXe0lw3/2ILtvUvap27j30+SItA6361+3hcRf+GSv89yLkb0cy9jr+cYGdJTMoxvY+9qbWwl/SrDfSbLPWAL57tnbLWusxnP2VbGXpb5IkMbWa7DGeNixvw84zpsHWPEczricYw43xdaO1hLUR1oQhufj4j/8KLtEfHTcWMp+LJ9Prxw+0/HjWXaJf38zEbOxYh+7mXs9RzjQ3H6sbeF8W3sXa2NpeMmy7g40j1gE+c72mOreZ1NeM62MvayzBcZ2shyHc4YFzPm5xnXYesYI57TEY9jxPm+0NrB2l7SPmakD47YvrSfs5abo2OfU/dzqa20saVUnVOP7xH9ONLYi9jHuFgqy7zXs31GGzPmpK2keGUYezOOsZU2slyHe5mfM4y9GR/P6elDq42e7RdaO1jbS9rH0iXWLGlLrX7OWG7Osiy+l7GXJSVjC+Pb2LtaGyPS3TKMiyPdA7ZwvkekNGdJ8cow9rLMFxnayHId7mV+nnEdzvjoQYaU5ydDNciTtVEi4jMdbWylApFqkLdkH3uj2lANcmw/jzT2VIO8Icu8t5fzrRpk/3bVIK/WRpbrUDXIW/1UDfKsn1U1yEXHuBbtaPgXGsfIkhoVsbyfS8/3jHORJdVhK21kSE8Z0UaEsTezjQwpMD1tRKx/vrPcA7ZyvmekKLb2yZIaNeNaH3GMLbSR5TqM2Mf8POM6bG2f9fGcGef7QmsHa1tIv3pLxwcLM1ShUw1ybD8zjD3VIK/WRobr8EhjbyvpVxnuM1nuAVs43z1jSzXIG0bdA/YyJ23lOlQN8lY/M3z0IEPKs2qQC49x0aabetrYSgUi1SBv2yfB2JtVCUw1yHH9PNLYUw0yUs17uznfoRpk9/ZQDfIqbWS5DlWDjGHjQjXICbaQ9lE6ouG9VCBq9XPWcnN07HPqfi61lTa2lKpz6vE9oh9HGnsR+xgXS2WZ93q2z2hjxpy0lRSvDGNvxjG20kaW63Av83OGsTfj4zk9fWi10bP9QmsHa1tI+/hi3IiGLzrJH4iIxzaSGqUa5LhxkSXlSDXIW20Ye3PbUA0y17y3l/OtGmT/dtUgr9ZGlutwL/OzapBjz7dqkEuOUWu98ARGNB9HiYgf2kgFItUgb8kw9lSDvFobqkHObUM1yBuyzHt7Od+qQfZvVw3yam1kuQ5Vg7zVT9Ugz/pZVYM83dLkmVZE/ZbG32dJW5qRQjAjTSxLqsNW2siQnjKijQhjb2YbGVJgetqIWP98S4/9ekvH1ogUxdY+WVKjZr3G2UI/93IdRuxjfp5xHba2z/p4zozzfaG1g7UtpF9dujR5pvUByZ7PvWVYFlcN8pYMY081yKu1oRrk3Da2kn6V4T4jPfYW1SD7+6ka5Ng2slyHqkHe6meGjx5kSHlWDXLAMVpa+2ylApFqkLftk2HsTRrfl1UxKrGfKnTG3tg2VIOMVPPebs53qAbZvT1Ug7xKG2tfhyVUgzzfT9Ugb/XzQmsHa1tI++j5+2ZEHRdH5Of3PeX2pUvBs5abo2OfU/dzqa20UaP9Lt+HIuKZxnH2ML5H9ONIYy9i+XM24hhLx8VSWea9nu0z2piRPriVFK8MY2/GMbbSxozr8Fq0V2H2Mj9nGHszPp7T04dWGz3bL7R2sLaFtI9LlybP3IyoL3oiXogcqVGqQY4bF1lSjkaM79Y7W98S66c6qAbZv30rqTxZxsWRqtBt4XyrBtm/XTXIq7Ux4zp8S8cqzF7mZ9Ugx55v1SDv8hglbiyPtj6zdqlSyv/cqBKTpQKRapC3rD32ZrXx2Yh4tNb62EU7DBp7a4/vEnOqsh5p7O2hGmSJiEfiOFXo1j7fEapBXqWfqkGObSPDdfi3IuLvNfq5lflZNcgbVIMcsL21z7VYXmCkJUtqVMTl52JGCsGMc3GklKMRx2i9s7XUrPGdoSrrkcZehhSYnjYypPlmuQdkuM/0bJ+RotjaJ0tq1IxrfcQxttDGjOuwdGZr7WF+nnEdtrbP+njOjPN9obWDtQyVknqWrJdqvRjOkrakGuQtW0k5GlEJrJXG+7kEqQ4j0jl7bqLGXn8bW0m/ypDmKz32FtUg+/upGuTYNmZch1+My++nH4iIH2z0cyvzs2qQN4w63xdaO1jLUB2o1ccRwVqrSkyWKl2qQd62T4IqR7Pa+DMXbT/bJ2IbVegevWR7xJyqrEcae1upBtkaF0eoQjezDdUgb1ANMl8bM67Dd7c+OlNKeXTl+bmEapC3O3U1yN7zfaG1g7UMaR+9S9ZLnXopuGf70qXgWcvN0bHPqfu51Fba6P37pWNvxDFa2zNUZT3S2IvYx7hYKsu817N9Rhsz0ge3kuK1hWt9T3NSluuwZSvp33HJ399sZ4ksHz0Y0YdR5/uO1g7WMqR99CxZL9V6ErOkLakGeWufraQczah2upWqfxmqsh5p7O1lXMxI85Uee8OosaUa5Nh7wBb6uZXr8Mlo1znYQvp3z7lQDXLs+VYN8rJ9WkvWSxXVIK/Shop8c9tojv+O8ZuiCt1llZTO9plxHR5p7G2iGmTHuFh6H2qd7xJzKpGmON+hGuTN7apBzmujRMRnOtqY8fpjxpwzo8qzapD9fRhyvi8bN2uvrEVcHGWO2t67zyllSY2KuPxczEghmHEujpRyNOoYl8mQ6tDTxtJ9jL2rbd/LuIhYfi4yVCJtyXKf6dk+I0Wxtc+MdM4R27Mc49RtXIv2itYvNI4x6x7Q49Tne2n696xU4Z59Tv2cjngcI873hdYO1jJUSupZsl5KNcj+NrIsi28l5WgLKRuzxnfLjOvwSGNvL+NiRDpnhkqkWc63apDjzoVqkLf0VO5e+hpnKx8tmJH+rRpkfx9Gne8LrR2sZagONCMPVDXI/jZU5JvcxkXbbrOVqn8tp74OSxxr7O1lXIy4hlrX0drVIMuENiJUg7ydapBj27ho001Ln9NR18iUOadj+5+5rAOlXeVZNcj+Pow63xdaO1jLkPYx60N7p14K7tm+dCl41nJzdOxz6n4utZU2ZqVsjDhGTxtL+9Da51o03v1tHHsr46KnjYh9jIsR11CGSqStsflktNPElvYhQjXI88c4pVH3gC30s2d1utXGt0TEu+P010jLVtK/W/tkGHszPp7T04cedz1u1g7WMqR9jCrNfxnVIPvbyLIsvpWUoy2kbMwa3610zhHXYSsVR7rbLVsZFyOuoQyVSEekiWVJj1UNcu49YAv97Knc/VjjGDHhGpkx58y4r/fMSapBjj3fF46btYO1pWk0I9Jsepasl+pJxcyQttRaCh6RQjAjTezUKUelsX1EGz3bN5OyMeIYA9I5R1yHrTaONPZGpLtlGBeL0zlru6LqIxtJE8uSHrs0ZT/LF/5meI2TZb5YOu/1fNn0KxrH+Mxlfx+DrpFGGxFzxkXLiPvhjOtwxsdeRjyOlkUfyVo7WIu4OMoctb13n1PKkpYXcfm5mJFCsJWKfNfi8nfPRnyh5Ijto45xmQypDj1tLN2np5+tlbMR6W5bGXt7GRcR619DWdLEllIN8sV/v5V7wNr9bM17I7InerJusqTEbWFOUg2y36KPZK0drGWolNQzASy1l2qQI1IItlINspVSNOILJTNU2JqRspGl6t+I67CVijMi3W0rY28v4yJD2lOWNLEs6bEZqtCpBjm3nz1pvC29KyinvEayVIOcMSepBnnDqPN9obWDtRQViLp7e/fWrgZZYlA1yEu2RSyvxhSRZ1n8ksNHRESWFK8tpGxkqfo34jq8NBVnULrbJc1HRJ6xt5dxkeEaypAm1mqjZ7tqkLeoBnm1Ni7adNOI7KbgVL4AABWBSURBVImP11rfedkOHamUKeacJHNS9mqQN1/7zngcLT3n+0JrB2sZKhDNCNYiLo7Ir7LP0hSCpUvB9wxIIdhKNchWSlHLVipsqQY5tp0jjb2IfYyLLNdQa5+eOb4nS+TU53tG+uCMFNwRqVFbuQdk6GdPGm/LiIJyrVWv3jT0y2wl/bu1T4axN+PjOS2qQU5Is9lLNcieFIKlS8GPx/IUgq1Ug2ylFI34QskMFbZUg7xaP1vtzEi1zDL29jIuMlxDs9LEVIPsv0ZUg5zbz5403pZWVdaeY7RWenrS0FWDnDf2Znw8RzXIWLbcvDTNpsR+qkG2+jAiteQfLEwh6GkjSzXIVrpbDGhj7QpbN4/RspU0m5Yh12GjjdactqexpxrkDbMqr7XaGHINnDiFsee+rhpk//YtVIMcMu/1qI0vJu49TLuZVeec3muoZTfVIC/ZFrH84zkzz/eF1g7WRiw3t+5gi6LZQbJUArv578v6cZkRS70zzsWoVMsRf9/aZ+n2Uce4TIZUh542lu4zIm26Z77p+dLVlgxjby/jImL9a2hWmtiM8z3ivp6hCt2MdM4R2zMc41qM+UL2DForPS0j5pzW+ZyRijmziuKSY4z4eE4rlXLW+b7Q2sHa0uXmnjSEDAVGslQC+8FYXqmxZS/VIFtBfJYvOlcNsn9sjrgOW+30zDdL30DKMvb2Mi62Ug1yRJrYjPM9Io0sQxU61SD7jzHiC9lnvHHeo5VK2ZOG3tI6FyMqAh+lGuSIj+e0Uilnne8LrR2sLV5u7pggMhQYmVENsqcS2KMD0gdb9lINsjUusnzR+dqV7ErkSbNpWXod9rTTM9/sZewtTeXpOd+qQd6yOE2sox8jrsNHG33YQzXI1ti8eS6OUg3yok03jZj3pmilUnamobfMqAjcspdqkEM+nnPZ38fpz3fztcXawdrS5eaWnqIaMwqM3Gxr6T5Lz8moSo0z2lhyLmaku81I52wZlTLaMqo61pLntJUW0vuubKsPS9/97Zlv9jL2IpY/Z613VUekwrdkqgQ24r63tI2lz+moNLIlc3xPG0tTo3pWDbZyD5jxMYwMb5yPcuo5p3U+lx7/Ksda+zrsOUaPyx5HK5VyRB92UWDkbpebe9IQRlQHWmpG2tKIZdie9MEZbWSoBtkK4rN80fmMSnYj0ppmpNm09FyHowqMLEnJ2MrYW5rK0/Ou6ohU+L1UgxyRJrY0La/nOR2RRpahGmSzytyACsxZ7gEZvpB91hvnS41I55xREbhlL9UgRzzWVirliPO93QIjA5abmykwA9JGRpiSttTRj8WpJZPayFANspXKMKLqX5ZKYC0jqmPNSLNp6bkOF73721ONrJGScXPsXGZEOueMapCX/HlEdK5wJ5gXs1ReG7HycPLrcOF9/eb4T1EN8pJtPZamCvdsz1INcsQXss+ozD3CiOu0NS5GVARu2Us1yBGP9dJUykHne9MFRnosSdnIYlYFxB5LlrRntTHiXJw65WhU1b8R4/vU18iItKYZaTY9/Whtn5E2PeKd2dZ5n1Fpd0T1whmp8D1OfQ3NSM0e0Y+WEddhz/jPUIWulRrV+47/Vu4BM15rbeH1WsuM10kz/n4v1SB7jHjOTv06KnWBkZYZVbpmmJG2NKtS44w2tlANckTVvyyVwFrXyIi0phlpNi091+GMtOml78yOSOcckV44onrhKxr7jEiFb9lKNcgRbxRkuA57xn+GKnSt1KgPN7b3VGDOcg+YcR/ZSjXIlhHX6YyKwEepBjnqsV5mxPle9Noie7A2IzVwhhnVIGdVapzRxhaqQQ6p+pegklLzGhlUHevkaTYdmqmrk9Kml46tIemcE6pBLn7ORqTCdzSTIQV9RGp2j6VpeSOuw57x37pWZ1Sha1aZayntCsxZ7gEzroFNVIPs0HMtt8yoCNyyl2qQox7rZRaf756PSFwme7A2KzVwhq0sBWdpY8m5mJFyNKLq31Iz02dbMozvlizv7C59l29EOudSPRX7Rll7Xhz19yOukRHWvg57xn+zeM3CPmwl7bTn+FupyKca5C0j3gxesv2mpXPSVsZexLLnbPWxmz1Ym5EaOINqkFdrYwvVIEdU/ctSCWypLOO7Jcs7u0tTLUekc45IL5wR/GZIUVQNcmwfesZ/a0Wq9dm5EXNnhrTTrVSD7DlXWb5GaalZKYin/PsI1SBv13rOVh+72YO1GVW6ZlAN8uwQnW2krwY5oOpfRJ5KYEtlGd8tq787FrE8HSIGpHMOSi9sfuHvZX3olGFeHPGF7HupBrm4D51z5xsbuyypQnfzOVs77bTEmC8hz1ANsudcjUgfzODUKYg9c8qsVMyjVINsPWerj93swVrE+ikbIxypGuTS9JWtVIPstXT8biG9MNP4vszq744NMmpFa+m42UIa2Yh58VosX23aSzXIWavPzXfbY/lz1lOtd6mlVVlHPY4s95EtvF5rmfE6qWdOmZGKqRrkuD4skj1Yy5CyMcKRqkG23sFopa9spRpkj71Ug2zJMr5bZlR6nGHEO7sj5tYtpJGNmBdHfCH7XqpBznpDo3WtvhCXz/E9z9mMNN6lVVlHPI4s95EsnxleasR1OqMisGqQt2SoBrlI9mBt9ZSNQY5UDbJ1zvdSDbLHLqpBdsgyvi81IP0wixHvEo4YNzNSQzJ8YXXr70elPa2dlheR5KMFHRVoHxnwnM24ByytytpzfNUg5xox782oCNyiGuTZIWJCNcilsgdrW0nZ6LGVpeClbSxNX7l937vdvpeUo57jZ7lGMozvoxjxzu6ocbOFVOKW1rnoyQZo6XlndkZaXnS0sYXrcMRzNuMesLQq64jH0aIa5NWd+nXSiIrAPZbet7cy9paujK0+drMHa1tJ2WjJUi1vRjXIpekrI87FjGqQPbZSCWypLOP7KEakc44YN0epBjnri6D3cj5nGPGctar1zki9blVlHfE4stxHfGb4lhkVgVuOVA1y6crY6mM3e7C2iZSNDlmq5Z28GuSA9JVNVIPstLTK3NJKSr3HWCrL+D6EQemcIyogHqEaZIl5XwS9idTsAX0YYfEXspd2td6Tp16XdlXWEY/j1BUle9LIIpanomWx+hckx5hzeaRqkEtXxlSD7HCElI09VYNsmXUuRqTljXBZG9fi8nexW5XCIpZXGxsh0/im35Kx+WTkmC9G/P2MFa2ed2b3cj5nGTF/Z3j9cOrH0XMtt1Jwe45xlAIjq6fExZhzeaRqkCNWxladK7IHa0dJ2dhTNciWGediK9UgW5W+WpXCnozl1cZmvRDNkK7JLSMqIG4hlXhGikyPnrSnGWl5e7kOR7xYzRA8zHgcIypKjqiIunqRhkFWT4mLMefySNUgl6adrj5XZA/WjpCyMSINISJPNciWGediK9UgW3/fM76XVhs7TDVIvs6ICoh7qQZ58nfKO78I+rJ0tlFpYkf6aMGMYyw143G0/r7nfthzjKX7ZHm91rJ6SlyMOZeHqQY5IO109bkie7C2l5SNUZXAli7DzqgG2TLjXGylGmSr0lfP8ZdWG1MN8phGVUBcO5V4RB8yvFMeMe/d2z1chyPm7wzBw4zHMaKi5IiKqFmusxHWvkZGncul9+2tVINcavW5InuwtpeUjRGVwLZSDbJlxrnYSjXIVqWvVqWwe2J5tTHVII9pRDW9H4z1U4kzpMiMMuPd2yN9tGDGMZaa8ThGVJQcURE1y3W21OopcTHmXB6pGuRSq88V2YO1vaRsDKkENqHq2eJqkB1mnIutVIO8tNJXR6Wwn+6oFNY8xmV/30k1yO1ZXAGxlPJoglTiDCkyo8x493Yv1+GIangZ0tlG9OHUlTG75oOWRNfZUqunxA06l2tXg5z5EaClVp8rsgdrEftI2RhRCaxlRNWztwxoo2XWuRiRljfC0jZG9PHUj1M1yO2ZVU1sqSONmxnv3u7lfI5a3cjw+iHDHJ9htWgrVk+JG2RGNchrsbwSaXRsn2HVPmQP1vaSsjGiEtiMqmcj8tJbZpyLrVSDbLWxlYpnqkFuz6xqYksdadzMSBPby/kcMX4zBChZ5vjVV4s2ZPWUuEFmVIMcUYk0w+v81eeK7MHaLlI2BlQCi5hT9ezk1SAnnYutVINstbGVimdLq0qVGPOlq/SbVU1sqVa6W4YUmSEmpYkd6aMFLRkClCxz/F5Wi2ZYPSVukBnVIFt92MpHJFafK7IHa3tJ2eh16qXg5ruqA9oYZcm52Eo1yFNvH3WMHq3nawvvnh3JzGpiS2T40ve92ULKUcuI8ZshQMkyx+9ltWiWLVwjPZZ+XGRGJdKWrVyni2QP1vaSstEjQ9WzF+L01SB7HKUaZKuNrVQ860kR2MK7Z0cyq5rYqavHzvjS9z3Zy5smI8ZvhgAlyxy/l0qNM6yeEjfIjGqQIyqRZnidv/pckT1Y20vKRo/Vq56VUh5J8oJ57WqQo9LulqZLnLri2ajH2ZMisIV3zw5jYjWxpZrvaCaZs7ZiF2+aDBq/M+bGJX2Izj4sPsaOKjXOsHpK3CAzqkGOqESa4XX+6qmv2YO1iH2kbPTI8GJ29aXeQe30VIPM8gW0l8ny4fOWnnFzpFXyo5gxX2T50ve9yHCfySLLCsmI1zB7eR20BVleJy01oxpkj62kuq96jWUP1vaSstEjw4vZ1Zd6O/sxohpkhi+gbY3PLB8+b+kZN600mw83tkvDyWfGfJHhS9/3JMN9JosMKyRbeUOOW7K8TlpqRjXInrG3hVT31a+x7MHaLlI2OmVI+Vx9qbezHyOqQab4AtqFfchSYKQ5bpZ+oSopnXy+6EjdjlP3YWcOU12zQ4YVkq28IcctWV4nLTWiinPPa62WLaS6r36NZQ/WjpaykSHlM0s6xamrQWb4AtrW9iwfPu+RZdwwV4bnPUMftmIrKUczZFgh2cobcny9vcw5Sz8u8pbG34+oRNqiGmQCR0rZyJDyufpSb2c/RlSDzPAFtK3xOaKPMx5nlnHDXBme9wx92JItpBzNkqEC4pbekOOGvcw5I6o495Tmb9lCqvvq11j2YO1IKRsZUj5XX+rt7ceCCkUl5qXlLUqXGFGha1KVryzjhrkyPO8Z+rAlW0g5miJJBcRTV/yNzmPQby9zzogqzs3XWq1ObCTVffVrLHuwdqSUjQwpn6sv9Q5q51si4t2R452vvaRLXCbLuGGuDM97hj5syRZSjo5k1CrNEe4zWexlzhnxcZH7Ys5rrQzjWzXISxwpZSNDyufqS72d/Widi0jyztde0iVasowb5srwvGfow5ZsIeXoSEas0hzlPpPFXuacEVWcRxQYackwvlfvQ/Zg7UgpG0sqIPamSyztw2aqQTaOnyadc1I/Ti3Dl8syX4b5IkMfNmNhypFrebwRqzRHuc9ksZc5Z3EV51LKv9hoYy8fz1m9D9mDtaOlbFz2mK7FnO+Uy7DcHLGsGuQ9Sd752ku6RMvq7zqxmgzzRYY+7IVrea4RqzRHuc9kspc5Z+nj2EJV7RFW70P2YO1IKRvNEqkHWW7u6UerGuTjsX6Vr4j9pEu0rP6uE6vIMF9k6MOeuJbnGlGR8ij3mSz2MueMeBxbqKo9wup9SB2sbaRKzCitm2Tr7/ey3NzVj8b2f1BrfedpunYle0mXaFn9XSdWkWG+yNCHPXEtTzSoIuVR7jNZ7GXOWfw4JlVUzfAxi9WvsdTBWqe9LEe3LowR32extA9bqQaZabLcy/i8zOrvOrGKDPNFhj7siWt5m45wn8liL3POVh5HlpVM1SAXyPIkjtC6SX4xjrHc3NOPrXwZ+p7G52UyfLks82WYLzL0YU9cy9tzlPtMFnuZc7byODKsZK5+jW09WMvwJI7SWmZ994Qvcl59qbejH1v6MvQ9jc8LJflyWebLMF9k6MNuuJY36RD3mUT2MudkSC/skWEFcPVrbOvBWoYncaQMqQwZ+rCXL0Pf2/iE8zLMFxn6AGtxn5lvD3PO6qtFnTKsAK5+jW09WMvwJI6S4cLJ0IeI/XwZ+p7GJ5yXYb7I0AdYk/vMXHuZc1ZfLeqUITV79Wts68HaXpajI3JcOBn6ELGfL0Pf0/iE8zLMFxn6AGtyn5lrL3PO6qtFPZKkZq9+jW09WIvYx3J0RI4LJ0MfIvb1Zeh7GZ9wXob5IkMfYG3uM/PsZc5ZfbVoY1SDXGAvy9EROS6cDH2I2M+Xoe9pfMJ5GeaLDH2ANbnPzLWXOSdDeuFWrH6NbT1Y28tydESCZdZGH6ZVB9rRl6HvaXzCeRnmiwzzJqzJfWauXcw5SdILt2L1a2zrwdpelqNvWjuVYfV3D65g7XPVY2/jE26XZb7YwlwAp+I+M58551hWv8a2HqztZTk6IscLn9XfPeiU4Vz12NP4hPMyzBdbmQvgVNxn5jLnHM/q19jWg7VdLEefyfDCZ/V3DzplOFc99jQ+4bwM88VW5gI4FfeZucw5x7P6Nbb1YC1iP8vRGV74rP7uQacM56rXXsYnnJdhvtjSXACn4j4zjznnmFSDXGBPy9EZXvhspTpQhnPVY0/jE87LMF9sZS6AU3GfmcucczyrX2NbD9b2tBy9+jLrhqoDZahC12NP4xO+TpL5YvV5E1bmPjOXOed4Vr/Gth6s7W05WipDn9Xf5ei0t/EJGZk3OTL3mfnMOcey+jW29WBtT8vRWwlAMlj9XY5OexqfkJF5k6Nzn5nLnHM8q19jWw/WtpIO12MrAUgGq7/L0WlP4xMyMm9ydNLy5jLnHM/qr+W2Hqzt6R2OrQQgGaz+LkenPY1PyMi8CdLyZjLnHM/qr+W2Hqzt6R2OrQQgGWSoQtdjT+MTMjJvcnSrv5A8GHPO8az+Wm7rwdqe3uFYfZl1K5JUoeuxp/EJGUkB4+hWfyF5MOac41n9tdzWg7U9vcPh3bH92dP4hKykgHFkq7+QPCBzzrGs/lpu68HaVtLhenh3bH/2ND4hI29ycXSrv5A8GHPO8az+Wm7TwdqG0uF6eHdsZ3Y2PiEjb3JxdNLy5jLnHEyG13KbDtZ2xrtjAFfjTS6QljeTOYfpBGt5rL7MCrAx3uTi6KTlzWXOYTrBWhIZllkBNkYKGEcnLW8ulbuZTrAGwJZJAePIpOXNZSWT6QRrAGyVF04cnbS8uaxkMp1gDYCt8sKJo5OWN5eVTKYTrAGwVV44cXRWl+eyksl0gjUAtsoLJ47O6vJcKncznWANgK2SAsbRWV2eSOVu1iBYA2CrpIBxdFaXYecEawBslRQwjk5aHuycYA2ArZICxqFJy4P9E6wBsFVSwADYNcEaAFslBQyAXSu1yhIBAADI5hvW7gAAAAAvJlgDAABISLAGAACQkGANAAAgIcEaAABAQv8/EFbrCRHBfOMAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# fequency bar plot - tlastop 100\n", + "w_count_df.iloc[-100:].plot.bar(figsize=(15,5))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "tts-env1", + "language": "python", + "name": "tts-env1" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "vscode": { + "interpreter": { + "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Indic-TTS/preprocessing/FormatDataset-IndicTTS.ipynb b/Indic-TTS/preprocessing/FormatDataset-IndicTTS.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..45c5382de77e1a7e61d775b3dfeac27e54cfa471 --- /dev/null +++ b/Indic-TTS/preprocessing/FormatDataset-IndicTTS.ipynb @@ -0,0 +1,803 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import shutil\n", + "from multiprocessing import Pool\n", + "\n", + "import librosa\n", + "import pandas as pd\n", + "import soundfile as sf\n", + "\n", + "from sklearn.model_selection import train_test_split\n", + "from tqdm.auto import tqdm\n", + "\n", + "language = 'Tamil'\n", + "lang = 'ta'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# # only for Odia and Marathi\n", + "\n", + "# def clean_id(text, prefix):\n", + "# if 'text' in text:\n", + "# text = text.strip()\n", + "# return text.replace('text', f\"{prefix}_\")\n", + "# return text\n", + "\n", + "# data_dir = f\"/nlsasfs/home/ai4bharat/manidl/ttsteam/datasets/Indic TTS Data/TTS_data_Phase2_to_be_copied/{language}\" \n", + "# for speaker in ['male', 'female']:\n", + "# data_dir_speaker = f\"{data_dir}/{speaker}/mono\"\n", + "# df = pd.read_csv(f'{data_dir_speaker}/txt.done.data', sep='\"', usecols=[0,1], header=None, names=['id', 'text'])\n", + "# df['id'] = df['id'].apply(lambda text: clean_id(text, f\"train_{language.lower()}{speaker}\"))\n", + "# df.to_csv(f'{data_dir_speaker}/txt.done.data', sep='\"', header=None, index=None)\n", + "\n", + "# wav_dir = f\"{data_dir_speaker}/wav\"\n", + "# for fn in os.listdir(wav_dir):\n", + "# fn_new = clean_id(fn, f\"train_{language.lower()}{speaker}\")\n", + "# fp_src = os.path.join(wav_dir, fn)\n", + "# fp_dst = os.path.join(wav_dir, fn_new)\n", + "# os.replace(fp_src, fp_dst)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# IndicTTS in LJSpeech format" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "data_dir = f\"/home/speech/ttsteam/datasets/indictts/{lang}\" # update the path\n", + "data_dir_new = f\"/home/speech/ttsteam/datasets/indictts/{lang}\" # update the path" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#os.makedirs(data_dir_new)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'/home/speech/ttsteam/datasets/indictts/ta/wavs'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shutil.copytree(f'{data_dir}/male/mono/wav', f'{data_dir_new}/wavs')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'/home/speech/ttsteam/datasets/indictts/ta/wavs'" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shutil.copytree(f'{data_dir}/female/mono/wav', f'{data_dir_new}/wavs', dirs_exist_ok=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(3717, 3)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
012
0train_tamilmale_00001เฎ…เฎคเฏ เฎคเฎžเฏเฎšเฎพเฎตเฏ‚เฎฐเฏเฎ•เฏ เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฟเฎฐเฎตเฏ‡เฎšเฎฟเฎ•เฏเฎ•เฎตเฏเฎฎเฏ เฎšเฎ•...male
1train_tamilmale_00002เฎ…เฎคเฎฑเฏเฎ•เฏเฎคเฏ เฎคเฎ•เฏเฎจเฏเฎคเฎชเฎŸเฎฟ เฎเฎคเฎพเฎตเฎคเฏ เฎ•เฏŠเฎžเฏเฎšเฎฎเฏ เฎชเฏ‡เฎšเฎฟ เฎตเฏ‡เฎทเฎฎเฏ เฎช...male
2train_tamilmale_00003เฎ†เฎฉเฎพเฎฒเฏ เฎ…เฎตเฎฉเฏ เฎŽเฎคเฎฟเฎฐเฏเฎชเฎพเฎฐเฏเฎคเฏเฎค เฎšเฎจเฏเฎคเฎฐเฏเฎชเฏเฎชเฎฎเฏ เฎ’เฎฉเฏเฎฑเฏเฎฎเฏ เฎ•เฎฟ...male
3train_tamilmale_00004เฎ…เฎชเฏเฎชเฎŸเฎฟเฎฏเฏเฎฎเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏ เฎ•เฏ€เฎดเฏ‡ เฎตเฏˆเฎ•เฏเฎ•เฎชเฏเฎชเฎŸเฎตเฎฟเฎฒเฏเฎฒเฏˆ เฎ’เฎฐเฏ‡ เฎฎ...male
4train_tamilmale_00005เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏเฎชเฏ เฎชเฏ‹เฎฏเฏเฎตเฎฟเฎŸเฏเฎŸเฎพเฎฒเฏ เฎ…เฎชเฏเฎชเฏเฎฑเฎฎเฏ ...male
\n", + "
" + ], + "text/plain": [ + " 0 1 \\\n", + "0 train_tamilmale_00001 เฎ…เฎคเฏ เฎคเฎžเฏเฎšเฎพเฎตเฏ‚เฎฐเฏเฎ•เฏ เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฟเฎฐเฎตเฏ‡เฎšเฎฟเฎ•เฏเฎ•เฎตเฏเฎฎเฏ เฎšเฎ•... \n", + "1 train_tamilmale_00002 เฎ…เฎคเฎฑเฏเฎ•เฏเฎคเฏ เฎคเฎ•เฏเฎจเฏเฎคเฎชเฎŸเฎฟ เฎเฎคเฎพเฎตเฎคเฏ เฎ•เฏŠเฎžเฏเฎšเฎฎเฏ เฎชเฏ‡เฎšเฎฟ เฎตเฏ‡เฎทเฎฎเฏ เฎช... \n", + "2 train_tamilmale_00003 เฎ†เฎฉเฎพเฎฒเฏ เฎ…เฎตเฎฉเฏ เฎŽเฎคเฎฟเฎฐเฏเฎชเฎพเฎฐเฏเฎคเฏเฎค เฎšเฎจเฏเฎคเฎฐเฏเฎชเฏเฎชเฎฎเฏ เฎ’เฎฉเฏเฎฑเฏเฎฎเฏ เฎ•เฎฟ... \n", + "3 train_tamilmale_00004 เฎ…เฎชเฏเฎชเฎŸเฎฟเฎฏเฏเฎฎเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏ เฎ•เฏ€เฎดเฏ‡ เฎตเฏˆเฎ•เฏเฎ•เฎชเฏเฎชเฎŸเฎตเฎฟเฎฒเฏเฎฒเฏˆ เฎ’เฎฐเฏ‡ เฎฎ... \n", + "4 train_tamilmale_00005 เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏเฎชเฏ เฎชเฏ‹เฎฏเฏเฎตเฎฟเฎŸเฏเฎŸเฎพเฎฒเฏ เฎ…เฎชเฏเฎชเฏเฎฑเฎฎเฏ ... \n", + "\n", + " 2 \n", + "0 male \n", + "1 male \n", + "2 male \n", + "3 male \n", + "4 male " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "metadata_male_fp = f\"{data_dir}/male/mono/txt.done.data\"\n", + "metadata_male = pd.read_csv(metadata_male_fp, sep='\"', usecols=[0,1], header=None)\n", + "metadata_male[0] = metadata_male[0].str.replace('\\(', '').str.strip()\n", + "metadata_male[1] = metadata_male[1].str.strip()\n", + "metadata_male[2] = 'male'\n", + "print(metadata_male.shape)\n", + "metadata_male.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(3243, 3)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
012
0train_tamilfemale_00001เฎ…เฎคเฎฑเฏเฎ•เฏเฎคเฏ เฎคเฎ•เฏเฎจเฏเฎคเฎชเฎŸเฎฟ, เฎเฎคเฎพเฎตเฎคเฏ เฎ•เฏŠเฎžเฏเฎšเฎฎเฏ เฎชเฏ‡เฎšเฎฟ, เฎตเฏ‡เฎทเฎฎเฏ...female
1train_tamilfemale_00002เฎ†เฎฉเฎพเฎฒเฏ, เฎ…เฎตเฎฉเฏ เฎŽเฎคเฎฟเฎฐเฏเฎชเฎพเฎฐเฏเฎคเฏเฎค เฎšเฎจเฏเฎคเฎฐเฏเฎชเฏเฎชเฎฎเฏ เฎ’เฎฉเฏเฎฑเฏเฎฎเฏ, ...female
2train_tamilfemale_00003เฎ…เฎชเฏเฎชเฎŸเฎฟเฎฏเฏเฎฎเฏ, เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏ เฎ•เฏ€เฎดเฏ‡ เฎตเฏˆเฎ•เฏเฎ•เฎชเฏเฎชเฎŸเฎตเฎฟเฎฒเฏเฎฒเฏˆ เฎ’เฎฐเฏ‡ ...female
3train_tamilfemale_00004เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏเฎชเฏ เฎชเฏ‹เฎฏเฏเฎตเฎฟเฎŸเฏเฎŸเฎพเฎฒเฏ, เฎ…เฎชเฏเฎชเฏเฎฑเฎฎเฏ...female
4train_tamilfemale_00005เฎŽเฎŸเฏเฎคเฏเฎค เฎ•เฎพเฎฐเฎฟเฎฏเฎคเฏเฎคเฏˆ เฎฎเฏเฎŸเฎฟเฎ•เฏเฎ•เฎพเฎฎเฎฒเฏ, เฎ‰เฎฏเฎฟเฎฐเฏ‹เฎŸเฏ เฎคเฎฟเฎฐเฏเฎฎเฏเฎชเฎฟ...female
\n", + "
" + ], + "text/plain": [ + " 0 1 \\\n", + "0 train_tamilfemale_00001 เฎ…เฎคเฎฑเฏเฎ•เฏเฎคเฏ เฎคเฎ•เฏเฎจเฏเฎคเฎชเฎŸเฎฟ, เฎเฎคเฎพเฎตเฎคเฏ เฎ•เฏŠเฎžเฏเฎšเฎฎเฏ เฎชเฏ‡เฎšเฎฟ, เฎตเฏ‡เฎทเฎฎเฏ... \n", + "1 train_tamilfemale_00002 เฎ†เฎฉเฎพเฎฒเฏ, เฎ…เฎตเฎฉเฏ เฎŽเฎคเฎฟเฎฐเฏเฎชเฎพเฎฐเฏเฎคเฏเฎค เฎšเฎจเฏเฎคเฎฐเฏเฎชเฏเฎชเฎฎเฏ เฎ’เฎฉเฏเฎฑเฏเฎฎเฏ, ... \n", + "2 train_tamilfemale_00003 เฎ…เฎชเฏเฎชเฎŸเฎฟเฎฏเฏเฎฎเฏ, เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏ เฎ•เฏ€เฎดเฏ‡ เฎตเฏˆเฎ•เฏเฎ•เฎชเฏเฎชเฎŸเฎตเฎฟเฎฒเฏเฎฒเฏˆ เฎ’เฎฐเฏ‡ ... \n", + "3 train_tamilfemale_00004 เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏเฎชเฏ เฎชเฏ‹เฎฏเฏเฎตเฎฟเฎŸเฏเฎŸเฎพเฎฒเฏ, เฎ…เฎชเฏเฎชเฏเฎฑเฎฎเฏ... \n", + "4 train_tamilfemale_00005 เฎŽเฎŸเฏเฎคเฏเฎค เฎ•เฎพเฎฐเฎฟเฎฏเฎคเฏเฎคเฏˆ เฎฎเฏเฎŸเฎฟเฎ•เฏเฎ•เฎพเฎฎเฎฒเฏ, เฎ‰เฎฏเฎฟเฎฐเฏ‹เฎŸเฏ เฎคเฎฟเฎฐเฏเฎฎเฏเฎชเฎฟ... \n", + "\n", + " 2 \n", + "0 female \n", + "1 female \n", + "2 female \n", + "3 female \n", + "4 female " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "metadata_female_fp = f\"{data_dir}/female/mono/txt.done.data\"\n", + "metadata_female = pd.read_csv(metadata_female_fp, sep='\"', usecols=[0,1], header=None)\n", + "metadata_female[0] = metadata_female[0].str.replace('\\(', '').str.strip()\n", + "metadata_female[1] = metadata_female[1].str.strip()\n", + "metadata_female[2] = 'female'\n", + "print(metadata_female.shape)\n", + "metadata_female.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
012
0train_tamilmale_00001เฎ…เฎคเฏ เฎคเฎžเฏเฎšเฎพเฎตเฏ‚เฎฐเฏเฎ•เฏ เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฟเฎฐเฎตเฏ‡เฎšเฎฟเฎ•เฏเฎ•เฎตเฏเฎฎเฏ เฎšเฎ•...male
1train_tamilmale_00002เฎ…เฎคเฎฑเฏเฎ•เฏเฎคเฏ เฎคเฎ•เฏเฎจเฏเฎคเฎชเฎŸเฎฟ เฎเฎคเฎพเฎตเฎคเฏ เฎ•เฏŠเฎžเฏเฎšเฎฎเฏ เฎชเฏ‡เฎšเฎฟ เฎตเฏ‡เฎทเฎฎเฏ เฎช...male
2train_tamilmale_00003เฎ†เฎฉเฎพเฎฒเฏ เฎ…เฎตเฎฉเฏ เฎŽเฎคเฎฟเฎฐเฏเฎชเฎพเฎฐเฏเฎคเฏเฎค เฎšเฎจเฏเฎคเฎฐเฏเฎชเฏเฎชเฎฎเฏ เฎ’เฎฉเฏเฎฑเฏเฎฎเฏ เฎ•เฎฟ...male
3train_tamilmale_00004เฎ…เฎชเฏเฎชเฎŸเฎฟเฎฏเฏเฎฎเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏ เฎ•เฏ€เฎดเฏ‡ เฎตเฏˆเฎ•เฏเฎ•เฎชเฏเฎชเฎŸเฎตเฎฟเฎฒเฏเฎฒเฏˆ เฎ’เฎฐเฏ‡ เฎฎ...male
4train_tamilmale_00005เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏเฎชเฏ เฎชเฏ‹เฎฏเฏเฎตเฎฟเฎŸเฏเฎŸเฎพเฎฒเฏ เฎ…เฎชเฏเฎชเฏเฎฑเฎฎเฏ ...male
............
6955train_tamilfemale_03239เฎชเฎฟเฎฉเฏเฎชเฏ เฎ…เฎตเฎฐเฏ, เฎคเฏเฎฐเฎฟเฎฏเฏ‹เฎคเฎฉเฎฉเฏเฎŸเฎฉเฏ เฎšเฎคเฏเฎฐเฎ™เฏเฎ•เฎฎเฏ เฎ†เฎŸเฎฟ, เฎ…เฎคเฎฟเฎฒ...female
6956train_tamilfemale_03240เฎชเฏ†เฎŸเฏเฎŸเฎฟเฎ•เฏเฎ•เฏเฎณเฏเฎณเฎฟเฎฐเฏเฎจเฏเฎค, เฎ•เฎฒเฏเฎฒเฎฟเฎฒเฏเฎคเฎพเฎฉเฏ เฎเฎคเฏ‹ เฎฎเฎพเฎฏเฎšเฎ•เฏเฎคเฎฟ ...female
6957train_tamilfemale_03241เฎ…เฎคเฏ เฎชเฏ‹เฎฒ, เฎšเฎคเฏเฎคเฏเฎฐเฏเฎœเฎฟเฎคเฏเฎคเฎฟเฎฉเฏ เฎคเฎพเฎคเฏเฎคเฎพ เฎฏเฏเฎคเฎพเฎœเฎฟเฎคเฏ, เฎ‰เฎœเฏเฎœ...female
6958train_tamilfemale_03242เฎ…เฎคเฏ เฎ•เฏ‡เฎŸเฏเฎŸเฏ เฎ•เฏเฎฎเฏเฎชเฎ•เฎฐเฏเฎฃเฎฉเฏ, เฎจเฏ€เฎ™เฏเฎ•เฎณเฏ เฎšเฏ€เฎคเฏˆเฎฏเฏˆเฎ•เฏ เฎ•เฎตเฎฐเฏเฎจ...female
6959train_tamilfemale_03243เฎ…เฎชเฏเฎชเฎŸเฎฟ เฎ‡เฎฒเฏเฎฒเฎพเฎฎเฎฒเฏ, เฎฎเฏเฎฉเฏเฎชเฎฟเฎฉเฏ เฎšเฎฑเฏเฎฑเฏเฎฎเฏ เฎฏเฏ‹เฎšเฎฟเฎฏเฎพเฎคเฏ, เฎ…เฎต...female
\n", + "

6960 rows ร— 3 columns

\n", + "
" + ], + "text/plain": [ + " 0 \\\n", + "0 train_tamilmale_00001 \n", + "1 train_tamilmale_00002 \n", + "2 train_tamilmale_00003 \n", + "3 train_tamilmale_00004 \n", + "4 train_tamilmale_00005 \n", + "... ... \n", + "6955 train_tamilfemale_03239 \n", + "6956 train_tamilfemale_03240 \n", + "6957 train_tamilfemale_03241 \n", + "6958 train_tamilfemale_03242 \n", + "6959 train_tamilfemale_03243 \n", + "\n", + " 1 2 \n", + "0 เฎ…เฎคเฏ เฎคเฎžเฏเฎšเฎพเฎตเฏ‚เฎฐเฏเฎ•เฏ เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฟเฎฐเฎตเฏ‡เฎšเฎฟเฎ•เฏเฎ•เฎตเฏเฎฎเฏ เฎšเฎ•... male \n", + "1 เฎ…เฎคเฎฑเฏเฎ•เฏเฎคเฏ เฎคเฎ•เฏเฎจเฏเฎคเฎชเฎŸเฎฟ เฎเฎคเฎพเฎตเฎคเฏ เฎ•เฏŠเฎžเฏเฎšเฎฎเฏ เฎชเฏ‡เฎšเฎฟ เฎตเฏ‡เฎทเฎฎเฏ เฎช... male \n", + "2 เฎ†เฎฉเฎพเฎฒเฏ เฎ…เฎตเฎฉเฏ เฎŽเฎคเฎฟเฎฐเฏเฎชเฎพเฎฐเฏเฎคเฏเฎค เฎšเฎจเฏเฎคเฎฐเฏเฎชเฏเฎชเฎฎเฏ เฎ’เฎฉเฏเฎฑเฏเฎฎเฏ เฎ•เฎฟ... male \n", + "3 เฎ…เฎชเฏเฎชเฎŸเฎฟเฎฏเฏเฎฎเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏ เฎ•เฏ€เฎดเฏ‡ เฎตเฏˆเฎ•เฏเฎ•เฎชเฏเฎชเฎŸเฎตเฎฟเฎฒเฏเฎฒเฏˆ เฎ’เฎฐเฏ‡ เฎฎ... male \n", + "4 เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏเฎชเฏ เฎชเฏ‹เฎฏเฏเฎตเฎฟเฎŸเฏเฎŸเฎพเฎฒเฏ เฎ…เฎชเฏเฎชเฏเฎฑเฎฎเฏ ... male \n", + "... ... ... \n", + "6955 เฎชเฎฟเฎฉเฏเฎชเฏ เฎ…เฎตเฎฐเฏ, เฎคเฏเฎฐเฎฟเฎฏเฏ‹เฎคเฎฉเฎฉเฏเฎŸเฎฉเฏ เฎšเฎคเฏเฎฐเฎ™เฏเฎ•เฎฎเฏ เฎ†เฎŸเฎฟ, เฎ…เฎคเฎฟเฎฒ... female \n", + "6956 เฎชเฏ†เฎŸเฏเฎŸเฎฟเฎ•เฏเฎ•เฏเฎณเฏเฎณเฎฟเฎฐเฏเฎจเฏเฎค, เฎ•เฎฒเฏเฎฒเฎฟเฎฒเฏเฎคเฎพเฎฉเฏ เฎเฎคเฏ‹ เฎฎเฎพเฎฏเฎšเฎ•เฏเฎคเฎฟ ... female \n", + "6957 เฎ…เฎคเฏ เฎชเฏ‹เฎฒ, เฎšเฎคเฏเฎคเฏเฎฐเฏเฎœเฎฟเฎคเฏเฎคเฎฟเฎฉเฏ เฎคเฎพเฎคเฏเฎคเฎพ เฎฏเฏเฎคเฎพเฎœเฎฟเฎคเฏ, เฎ‰เฎœเฏเฎœ... female \n", + "6958 เฎ…เฎคเฏ เฎ•เฏ‡เฎŸเฏเฎŸเฏ เฎ•เฏเฎฎเฏเฎชเฎ•เฎฐเฏเฎฃเฎฉเฏ, เฎจเฏ€เฎ™เฏเฎ•เฎณเฏ เฎšเฏ€เฎคเฏˆเฎฏเฏˆเฎ•เฏ เฎ•เฎตเฎฐเฏเฎจ... female \n", + "6959 เฎ…เฎชเฏเฎชเฎŸเฎฟ เฎ‡เฎฒเฏเฎฒเฎพเฎฎเฎฒเฏ, เฎฎเฏเฎฉเฏเฎชเฎฟเฎฉเฏ เฎšเฎฑเฏเฎฑเฏเฎฎเฏ เฎฏเฏ‹เฎšเฎฟเฎฏเฎพเฎคเฏ, เฎ…เฎต... female \n", + "\n", + "[6960 rows x 3 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "metadata = pd.concat([metadata_male, metadata_female]).reset_index(drop=True)\n", + "metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "metadata.to_csv(f'{data_dir_new}/metadata.csv', sep='|', index=False, header=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Resampling" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "os.makedirs(f'{data_dir_new}/wavs-20k')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def resample_file(func_args):\n", + " fp_src, fp_dst, output_sr = func_args\n", + " y, sr = librosa.load(fp_src, sr=output_sr)\n", + " sf.write(fp_dst, y, sr)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "95f0f148bf35446ba605cbcca45e9763", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/6960 [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idtextspeaker
0train_tamilmale_00001เฎ…เฎคเฏ เฎคเฎžเฏเฎšเฎพเฎตเฏ‚เฎฐเฏเฎ•เฏ เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฟเฎฐเฎตเฏ‡เฎšเฎฟเฎ•เฏเฎ•เฎตเฏเฎฎเฏ เฎšเฎ•...male
1train_tamilmale_00002เฎ…เฎคเฎฑเฏเฎ•เฏเฎคเฏ เฎคเฎ•เฏเฎจเฏเฎคเฎชเฎŸเฎฟ เฎเฎคเฎพเฎตเฎคเฏ เฎ•เฏŠเฎžเฏเฎšเฎฎเฏ เฎชเฏ‡เฎšเฎฟ เฎตเฏ‡เฎทเฎฎเฏ เฎช...male
2train_tamilmale_00003เฎ†เฎฉเฎพเฎฒเฏ เฎ…เฎตเฎฉเฏ เฎŽเฎคเฎฟเฎฐเฏเฎชเฎพเฎฐเฏเฎคเฏเฎค เฎšเฎจเฏเฎคเฎฐเฏเฎชเฏเฎชเฎฎเฏ เฎ’เฎฉเฏเฎฑเฏเฎฎเฏ เฎ•เฎฟ...male
3train_tamilmale_00004เฎ…เฎชเฏเฎชเฎŸเฎฟเฎฏเฏเฎฎเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏ เฎ•เฏ€เฎดเฏ‡ เฎตเฏˆเฎ•เฏเฎ•เฎชเฏเฎชเฎŸเฎตเฎฟเฎฒเฏเฎฒเฏˆ เฎ’เฎฐเฏ‡ เฎฎ...male
4train_tamilmale_00005เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏเฎชเฏ เฎชเฏ‹เฎฏเฏเฎตเฎฟเฎŸเฏเฎŸเฎพเฎฒเฏ เฎ…เฎชเฏเฎชเฏเฎฑเฎฎเฏ ...male
\n", + "" + ], + "text/plain": [ + " id text \\\n", + "0 train_tamilmale_00001 เฎ…เฎคเฏ เฎคเฎžเฏเฎšเฎพเฎตเฏ‚เฎฐเฏเฎ•เฏ เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฟเฎฐเฎตเฏ‡เฎšเฎฟเฎ•เฏเฎ•เฎตเฏเฎฎเฏ เฎšเฎ•... \n", + "1 train_tamilmale_00002 เฎ…เฎคเฎฑเฏเฎ•เฏเฎคเฏ เฎคเฎ•เฏเฎจเฏเฎคเฎชเฎŸเฎฟ เฎเฎคเฎพเฎตเฎคเฏ เฎ•เฏŠเฎžเฏเฎšเฎฎเฏ เฎชเฏ‡เฎšเฎฟ เฎตเฏ‡เฎทเฎฎเฏ เฎช... \n", + "2 train_tamilmale_00003 เฎ†เฎฉเฎพเฎฒเฏ เฎ…เฎตเฎฉเฏ เฎŽเฎคเฎฟเฎฐเฏเฎชเฎพเฎฐเฏเฎคเฏเฎค เฎšเฎจเฏเฎคเฎฐเฏเฎชเฏเฎชเฎฎเฏ เฎ’เฎฉเฏเฎฑเฏเฎฎเฏ เฎ•เฎฟ... \n", + "3 train_tamilmale_00004 เฎ…เฎชเฏเฎชเฎŸเฎฟเฎฏเฏเฎฎเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏ เฎ•เฏ€เฎดเฏ‡ เฎตเฏˆเฎ•เฏเฎ•เฎชเฏเฎชเฎŸเฎตเฎฟเฎฒเฏเฎฒเฏˆ เฎ’เฎฐเฏ‡ เฎฎ... \n", + "4 train_tamilmale_00005 เฎ•เฏ‹เฎŸเฏเฎŸเฏˆเฎ•เฏเฎ•เฏเฎณเฏ เฎชเฎฒเฏเฎฒเฎ•เฏเฎ•เฏเฎชเฏ เฎชเฏ‹เฎฏเฏเฎตเฎฟเฎŸเฏเฎŸเฎพเฎฒเฏ เฎ…เฎชเฏเฎชเฏเฎฑเฎฎเฏ ... \n", + "\n", + " speaker \n", + "0 male \n", + "1 male \n", + "2 male \n", + "3 male \n", + "4 male " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv(f'{data_dir}/metadata.csv', sep='|', names=['id', 'text', 'speaker'])\n", + "print(df.shape)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6890 70\n" + ] + } + ], + "source": [ + "df_train, df_test = train_test_split(df, test_size=0.01, stratify=df['speaker'], random_state=0)\n", + "print(len(df_train), len(df_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "df_train.to_csv(f'{data_dir}/metadata_train.csv', sep='|', index=False, header=False)\n", + "df_test.to_csv(f'{data_dir}/metadata_test.csv', sep='|', index=False, header=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "df_train[df_train['speaker']=='male'].to_csv(f'{data_dir}/metadata_train_male.csv', sep='|', index=False, header=False)\n", + "df_test[df_test['speaker']=='male'].to_csv(f'{data_dir}/metadata_test_male.csv', sep='|', index=False, header=False)\n", + "\n", + "df_train[df_train['speaker']=='female'].to_csv(f'{data_dir}/metadata_train_female.csv', sep='|', index=False, header=False)\n", + "df_test[df_test['speaker']=='female'].to_csv(f'{data_dir}/metadata_test_female.csv', sep='|', index=False, header=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "os.makedirs(f'{data_dir}/wavs-20k-test-male/')\n", + "os.makedirs(f'{data_dir}/wavs-20k-test-female/')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "090f5c50a0a44b1c95b0a1a02a719e63", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/70 [00:00 str: + """ + Run the TTS synthesis command and generate speech as an MP4 file. + Returns the path to the output audio file. + """ + try: + # Construct the command for speech synthesis + command = [ + "python3", "-m", "TTS.bin.synthesize", + "--text", text, + "--model_path", MODEL_PATH, + "--config_path", CONFIG_PATH, + "--vocoder_path", VOCODER_PATH, + "--vocoder_config_path", VOCODER_CONFIG_PATH, + "--speaker_idx", "female", + "--out_path", OUTPUT_FILE + ] + + # Run the command + result = subprocess.run(command, capture_output=True, text=True) + + # Check for errors + if result.returncode != 0: + raise Exception(f"Error: {result.stderr}") + + # Return the path to the generated output file + return OUTPUT_FILE + + except Exception as e: + return str(e) + +# Create the Gradio interface +interface = gr.Interface( + fn=generate_speech, + inputs=gr.Textbox(label="Enter Text", placeholder="Type some text to synthesize..."), + outputs=gr.File(label="Download Speech"), + title="Hindi Speech Synthesis", + description="Enter text in Hindi and generate speech using the FastPitch TTS model." +) + +# Launch the app +if __name__ == "__main__": + interface.launch() diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..0d66d560401c14dda425c4b0133ddffc8e06370a --- /dev/null +++ b/dockerfile @@ -0,0 +1,29 @@ +# Use a lightweight Python base image +FROM python:3.7-slim + +# Install system packages +RUN apt-get update && apt-get install -y \ + python3.7-distutils \ + python3-pip \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Set the working directory +WORKDIR /app + +# Copy your code and dependencies +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +# Install Trainer and TTS from source +RUN pip install -e /app/Trainer[all] \ + && pip install -e /app/TTS[all] + +# Copy your application code +COPY . . + +# Expose the port (for FastAPI) +EXPOSE 8000 + +# Command to run your application (FastAPI example) +CMD ["uvicorn", "api:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/download_models.py b/download_models.py new file mode 100644 index 0000000000000000000000000000000000000000..e5420786232cd4c447a9865071f094e485b049de --- /dev/null +++ b/download_models.py @@ -0,0 +1,23 @@ +import subprocess +import os + +# languages = ["as", "bn", "brx", "en+hi", "en", "gu", "hi", "kn", "ml", "mni", "mr", "or", "pa", "raj", "ta", "te"] +languages = ["as", "hi", "ta"] +base_url = "https://github.com/AI4Bharat/Indic-TTS/releases/download/v1-checkpoints-release" + +def download_and_extract(lang): + if (os.path.exists(f"Indic-TTS/models")): + print(f"Directory Indic-TTS/models exists") + else: + print(f"Creating directory Indic-TTS/models") + os.makedirs(f"Indic-TTS/models") + os.chdir(f"Indic-TTS/models") + print(f"Downloading and extracting {lang}.zip...") + # Run the download and extraction commands, stream output in real-time + subprocess.run(f"wget {base_url}/{lang}.zip", shell=True, check=True) + subprocess.run(f"unzip -o {lang}.zip", shell=True, check=True) + subprocess.run(f"rm {lang}.zip", shell=True, check=True) + +download_and_extract("hi") + +print("All languages downloaded and extracted.") diff --git a/main.ipynb b/main.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..ec4c290a13035351054e50b5ca64cd2be6698fde --- /dev/null +++ b/main.ipynb @@ -0,0 +1,216 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/home/darshan/ml-dev/tts/Indic-TTS\n", + " > Using model: fast_pitch\n", + " > Setting up Audio Processor...\n", + " | > sample_rate:22050\n", + " | > resample:False\n", + " | > num_mels:80\n", + " | > log_func:np.log\n", + " | > min_level_db:-100\n", + " | > frame_shift_ms:None\n", + " | > frame_length_ms:None\n", + " | > ref_level_db:20\n", + " | > fft_size:1024\n", + " | > power:1.5\n", + " | > preemphasis:0.0\n", + " | > griffin_lim_iters:60\n", + " | > signal_norm:False\n", + " | > symmetric_norm:True\n", + " | > mel_fmin:0\n", + " | > mel_fmax:8000.0\n", + " | > pitch_fmin:0.0\n", + " | > pitch_fmax:640.0\n", + " | > spec_gain:1.0\n", + " | > stft_pad_mode:reflect\n", + " | > max_norm:4.0\n", + " | > clip_norm:True\n", + " | > do_trim_silence:True\n", + " | > trim_db:60\n", + " | > do_sound_norm:False\n", + " | > do_amp_to_db_linear:True\n", + " | > do_amp_to_db_mel:True\n", + " | > do_rms_norm:False\n", + " | > db_level:None\n", + " | > stats_path:None\n", + " | > base:2.718281828459045\n", + " | > hop_length:256\n", + " | > win_length:1024\n", + " > Init speaker_embedding layer.\n", + " > Vocoder Model: hifigan\n", + " > Setting up Audio Processor...\n", + " | > sample_rate:22050\n", + " | > resample:False\n", + " | > num_mels:80\n", + " | > log_func:np.log\n", + " | > min_level_db:-100\n", + " | > frame_shift_ms:None\n", + " | > frame_length_ms:None\n", + " | > ref_level_db:20\n", + " | > fft_size:1024\n", + " | > power:1.5\n", + " | > preemphasis:0.0\n", + " | > griffin_lim_iters:60\n", + " | > signal_norm:False\n", + " | > symmetric_norm:True\n", + " | > mel_fmin:0\n", + " | > mel_fmax:8000.0\n", + " | > pitch_fmin:0.0\n", + " | > pitch_fmax:640.0\n", + " | > spec_gain:1.0\n", + " | > stft_pad_mode:reflect\n", + " | > max_norm:4.0\n", + " | > clip_norm:True\n", + " | > do_trim_silence:True\n", + " | > trim_db:60\n", + " | > do_sound_norm:False\n", + " | > do_amp_to_db_linear:True\n", + " | > do_amp_to_db_mel:True\n", + " | > do_rms_norm:False\n", + " | > db_level:None\n", + " | > stats_path:None\n", + " | > base:2.718281828459045\n", + " | > hop_length:256\n", + " | > win_length:1024\n", + " > Generator Model: hifigan_generator\n", + " > Discriminator Model: hifigan_discriminator\n", + "Removing weight norm...\n", + " > Text: เคฌเคงเคพเคˆ เคนเฅ‹! เคธเฅเคชเฅ€เคš เคœเคจเคฐเฅ‡เคถเคจ เคฎเฅ‰เคกเคฒ เคšเคฒเคจเฅ‡ เคฒเค—เคพเฅค\n", + " > Text splitted to sentences.\n", + "['เคฌเคงเคพเคˆ เคนเฅ‹!', 'เคธเฅเคชเฅ€เคš เคœเคจเคฐเฅ‡เคถเคจ เคฎเฅ‰เคกเคฒ เคšเคฒเคจเฅ‡ เคฒเค—เคพเฅค']\n", + "เคธเฅเคชเฅ€เคš เคœเคจเคฐเฅ‡เคถเคจ เคฎเฅ‰เคกเคฒ เคšเคฒเคจเฅ‡ เคฒเค—เคพเฅค\n", + " [!] Character 'เฅค' not found in the vocabulary. Discarding it.\n", + " > Processing time: 1.4851586818695068\n", + " > Real-time factor: 0.3664042800664901\n", + " > Saving output to output.mp4\n" + ] + } + ], + "source": [ + "%cd Indic-TTS/\n", + "!python3 -m TTS.bin.synthesize --text \"เคฌเคงเคพเคˆ เคนเฅ‹! เคธเฅเคชเฅ€เคš เคœเคจเคฐเฅ‡เคถเคจ เคฎเฅ‰เคกเคฒ เคšเคฒเคจเฅ‡ เคฒเค—เคพเฅค\" \\\n", + " --model_path models/v1/hi/fastpitch/best_model.pth \\\n", + " --config_path models/v1/hi/fastpitch/config.json \\\n", + " --vocoder_path models/v1/hi/hifigan/best_model.pth \\\n", + " --vocoder_config_path models/v1/hi/hifigan/config.json \\\n", + " --speaker_idx \"female\" \\\n", + " --out_path output.mp4" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from IPython.display import Audio, display\n", + "\n", + "display(Audio(\"output.mp4\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "!git clone https://github.com/AI4Bharat/Indic-TTS\n", + "%cd Indic-TTS\n", + "!echo \"[1/4] Cloned repository.\"\n", + "\n", + "# Install modified coqui-ai/Trainer\n", + "!git clone https://github.com/gokulkarthik/Trainer\n", + "%cd Trainer\n", + "!python3 -m pip install -q -e .[all]\n", + "%cd ..\n", + "!echo \"[2/4] Cloned Trainer.\"\n", + "\n", + "# Install modified coqui-ai/TTS\n", + "!git clone https://github.com/gokulkarthik/TTS\n", + "%cd TTS\n", + "!python3 -m pip install -q -e .[all]\n", + "%cd ..\n", + "!echo \"[3/4] Cloned TTS.\"\n", + "\n", + "# Install dependencies\n", + "!python3 -m pip install -q -r requirements.txt\n", + "!echo \"[4/4] Installed requirements.\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "trainer 0.0.12 /home/darshan/ml-dev/tts/Indic-TTS/Trainer\n", + "TTS 0.7.1 /home/darshan/ml-dev/tts/Indic-TTS/TTS\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip list | grep TTS" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "py37_env", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}