diff --git a/.vscode/settings.json b/.vscode/settings.json index 0778fcc8a..10c3b6eb4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -100,6 +100,7 @@ "rsyncignore", "rtype", "rviz", + "samplerate", "scipy", "sdev", "seaborn", diff --git a/pixi.lock b/pixi.lock index 4a3160174..288acfc16 100644 --- a/pixi.lock +++ b/pixi.lock @@ -88,6 +88,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/compilers-1.11.0-ha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-14.3.0-he8ccf15_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/console_bridge-1.0.2-h924138e_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/construct-2.10.70-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py312h0a2e395_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.13.4-py312h8a5da7c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cppcheck-2.18.3-py312h014360a_1.conda @@ -118,6 +119,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/fabric-3.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/fcl-0.7.0-h543440a_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ffmpeg-8.0.1-gpl_hf567e27_908.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fftw-3.3.10-nompi_h3b011a4_112.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.25.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/flake8-7.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/flake8-builtins-3.1.0-pyhd8ed1ab_0.conda @@ -171,6 +173,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-good-1.18.5-h0661c57_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-ugly-1.24.11-ha85cff8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.24.11-hc37bda9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-orc-0.4.42-h82d0256_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gtest-1.17.0-h84d6215_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gtk3-3.24.43-h993cebd_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda @@ -288,7 +291,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapacke-3.11.0-5_h6ae95b6_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.8-hf7376ad_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm22-22.1.0-hf7376ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm22-22.1.1-hf7376ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libltdl-2.4.3a-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmicrohttpd-1.0.2-hc2fc477_0.conda @@ -336,6 +340,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libtasn1-4.21.0-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libtheora-1.1.1-h4ab18f5_1006.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.1-h9d88235_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libtool-2.5.4-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libudev1-257.10-hd0affe5_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libunistring-0.9.10-h7f98852_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libunwind-1.8.3-h65a8314_0.conda @@ -430,7 +435,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pugixml-1.15-h3f63f65_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-17.0-haebf07f_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-h9a6aba3_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-daemon-17.0-h33dcb6b_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/py-opencv-4.12.0-qt6_py312h598be00_612.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-3.0.2-pyh7a1b43c_0.conda @@ -452,6 +459,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.17.0-py312h1289d80_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.10.1-py312h9da60e5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysoundcard-0.4.5-pyha804496_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.0.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.15.1-pyhd8ed1ab_0.conda @@ -917,6 +925,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h03e3b7b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/soxr-0.1.3-h0b41bf4_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.17.0-hab81395_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-rtd-theme-3.1.0-hd8ed1ab_0.conda @@ -942,6 +951,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py312h4c3975b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/transforms3d-0.4.2-pyhd8ed1ab_1.conda + - conda: https://data.bit-bots.de/conda-misc/output/noarch/tts-supertonic-1.0.0-h4616a5c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.5.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda @@ -1013,51 +1023,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/zziplib-0.13.69-he45264a_2.conda - conda: src/bitbots_navigation/bitbots_rust_nav build: hb0f4dca_0 - - pypi: https://files.pythonhosted.org/packages/bc/8a/340a1555ae33d7354dbca4faa54948d76d89a27ceef032c8c3bc661d003e/aiofiles-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b2/fb/08b3f4bf05da99aba8ffea52a558758def16e8516bc75ca94ff73587e7d3/construct-2.10.70-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7a/bf/457ed5be028fb235f8f5ad40b5ddbf67023e0017090ea324d0fe6239a73c/dateparser-1.1.8-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz - - pypi: https://files.pythonhosted.org/packages/a9/c7/57423942b2f847cdbbb46494568d00cd8a45500904ea026f0aad6ca01bc7/editdistance-0.8.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/e0/13/e430bc0af434d8775614283ceaa6181b4083e3e50ab1a6939328ca6aec3f/epitran-1.17-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/73/2d4ac4076c3a9773528d7e16129367ef9885e9dc36dcf64b516ea013a2f0/espeak_phonemizer-1.3.1.tar.gz - pypi: https://files.pythonhosted.org/packages/ea/78/9a8a174011682d71cb4922f4014ebbeb9d3067922678e7059351fd9207cf/exhale-0.3.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e8/2d/d2a548598be01649e2d46231d151a6c56d10b964d94043a335ae56ea2d92/flatbuffers-25.12.19-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fc/e1/6b5a01ef36b5341d5d0899401e4413594dfaa21f86cfc05be8efb25baf81/gruut-2.4.0.tar.gz - - pypi: https://files.pythonhosted.org/packages/51/9f/7eff478e38913cc9930527ff40c9ebcb04744dfcd0ddd43bd5a1eb9565b7/gruut-ipa-0.13.0.tar.gz - - pypi: https://files.pythonhosted.org/packages/a4/e3/22748996c573c6a7d5326ef0292956afac089c73f14e3dfee0a94661e631/gruut_lang_en-2.0.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/93/35/850277d1b17b206bd10874c8a9a3f52e059452fb49bb0d22cbb908f6038b/hypercorn-0.18.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4f/9a/ab96291470e305504aa4b7a2e0ec132e930da89eb3ca7a82fbe03167c131/jsonlines-1.2.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/15/c2/3842d8e39006b5b03384418b55108a3f3931ac6fe9b998814be81267acec/marisa_trie-1.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/be/2f/5108cb3ee4ba6501748c4908b908e55f42a5b66245b4cfe0c99326e1ef6e/marshmallow-3.26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/46/11/8f92f01da9cc41247008856438aa052cc93f74e4ac12ff250eb96a44249a/mycroft_mimic3_tts-0.2.4.tar.gz - - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d6/5b/545e9267a1cc080c8a1be2746113a063e34bcdd0f5173fd665a5c13cb234/num2words-0.5.14-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/28/7c/fd253da53594ab8efbefdc85b3638620ab1a6aab6eb7028a513c853559ce/onnxruntime-1.24.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b2/f1/d5318874aed3b57bd00bf76e8f9698b73b578137d9d403314a4e649fbb63/onnxruntime_webgpu-1.25.0.dev20260212001-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/3d/fe/89d77e424365280b79d99b3e1e7d606f5165af2f2ecfaf0c6d24c799d607/pandas-3.0.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/72/2a/05a47a6c291414f5a66901f8d1f6ba68e8ec9fccb341d56fa0b31479d41d/panphon-0.22.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/27/6f/0cf0746d02a356103b7c3a065dbc188d8b5092e58bb363d74aa668ee1ad1/phonemes2ids-1.2.2.tar.gz - - pypi: https://files.pythonhosted.org/packages/5e/5f/82c8074f7e84978129347c2c6ec8b6c59f3584ff1a20bc3c940a3e061790/priority-2.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/63/3f/da9732ccb24b71a7539470dcdfcd16c923692788f39553f37238f208ca55/python_crfsuite-0.9.12-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/84/14/9fb5842581f0419b5eb85f8c26c1c0c0f4cf6b4d5be638ae3157316a2650/pyttsx3-2.99-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7e/e9/cc28f21f52913adf333f653b9e0a3bf9cb223f5083a26422968ba73edd8d/quart-0.20.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ea/31/da390a5a10674481dea2909178973de81fa3a246c0eedcc0e1e4114f52f8/quart_cors-0.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9e/40/bb226f203caa22c1043c1ca79b36340156eca0f6a6742b46c3bb222a3a57/regex-2026.2.28-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a9/56/feb011ed1e8724c4c57083d71877eefe61f535f6dc94aa598033a03b54b7/swagger_ui_py-21.12.8-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/de/70/cf880c3b95a6034ef673e74b369941b42315c01f1554a5637a4f8b911009/syrupy-5.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c2/14/e2a54fabd4f08cd7af1c07030603c3356b74da07f7cc056e600436edfa17/tzlocal-5.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/a4/691ab63b17505a26096608cc309960b5a6bdf39e4ba1a793d5f9b1a53270/unicodecsv-0.14.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/a4/f5/10b68b7b1544245097b2a1b8238f66f2fc6dcaeb24ba5d917f52bd2eed4f/wsproto-1.3.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f1/7e/1d55a5749fbf7d1ac6411f3028128b974a3e6bb770d365a2518ecee8ce7e/xdgenvpy-2.4.0-py3-none-any.whl linux-aarch64: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-20_gnu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/adwaita-icon-theme-49.0-unix_0.conda @@ -1135,6 +1108,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/compilers-1.11.0-h8af1aa0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-gcc-specs-14.3.0-hadff5d6_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/console_bridge-1.0.2-hdd96247_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/construct-2.10.70-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/contourpy-1.3.3-py312hf18b547_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/coverage-7.13.4-py312hd077ced_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cppcheck-2.18.3-py312h5677ec4_1.conda @@ -1165,6 +1139,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/fabric-3.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/fcl-0.7.0-h841ecf2_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ffmpeg-8.0.1-gpl_h1a35955_908.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/fftw-3.3.10-nompi_h66d8d02_112.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.25.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/flake8-7.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/flake8-builtins-3.1.0-pyhd8ed1ab_0.conda @@ -1217,6 +1192,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gst-plugins-good-1.18.5-hafdbc27_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gst-plugins-ugly-1.24.11-h7e18b86_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gstreamer-1.24.11-h17c303d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gstreamer-orc-0.4.42-h70b131a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gtest-1.17.0-h17cf362_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gtk3-3.24.43-h4cd1324_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gts-0.7.6-he293c15_4.conda @@ -1249,6 +1225,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.11.0-pyhecfbec7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/itsdangerous-2.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jack-1.9.22-h9d01bbc_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jasper-4.2.9-h27a9ab5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jaxtyping-0.3.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda @@ -1331,7 +1308,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/liblapack-3.11.0-5_h88aeb00_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/liblapacke-3.11.0-5_hb558247_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm21-21.1.8-hfd2ba90_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm22-22.1.0-hfd2ba90_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm22-22.1.1-hfd2ba90_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libltdl-2.4.3a-h5ad3122_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/liblzma-5.8.2-he30d5cf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/liblzma-devel-5.8.2-he30d5cf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmicrohttpd-1.0.2-h3543b8c_0.conda @@ -1377,6 +1355,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libtasn1-4.21.0-he30d5cf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libtheora-1.1.1-h68df207_1006.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libtiff-4.7.1-hdb009f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libtool-2.5.4-h5ad3122_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libudev1-257.10-hf9559e3_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libunistring-0.9.10-hf897c2e_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libunwind-1.8.3-h6470e1d_0.conda @@ -1467,7 +1446,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pthread-stubs-0.4-h86ecc28_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pugixml-1.15-h6ef32b0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pulseaudio-17.0-h3dd60a8_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pulseaudio-client-17.0-hcf98165_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pulseaudio-daemon-17.0-hb9404ba_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/py-opencv-4.12.0-qt6_py312h1743b20_612.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-3.0.2-pyh7a1b43c_0.conda @@ -1489,6 +1470,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyqt5-sip-12.17.0-py312h1ab2c47_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyside6-6.10.1-py312h4810df5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysoundcard-0.4.5-pyha804496_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.0.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.15.1-pyhd8ed1ab_0.conda @@ -1954,6 +1936,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/snappy-1.2.2-he774c54_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/soxr-0.1.3-hb4cce97_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/spdlog-1.17.0-h9f97df7_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-rtd-theme-3.1.0-hd8ed1ab_0.conda @@ -1980,6 +1963,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tornado-6.5.3-py312hefbd42c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/transforms3d-0.4.2-pyhd8ed1ab_1.conda + - conda: https://data.bit-bots.de/conda-misc/output/noarch/tts-supertonic-1.0.0-h4616a5c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.5.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda @@ -2049,50 +2033,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zziplib-0.13.69-h650d8d0_2.conda - conda: src/bitbots_navigation/bitbots_rust_nav build: he8cfe8b_0 - - pypi: https://files.pythonhosted.org/packages/bc/8a/340a1555ae33d7354dbca4faa54948d76d89a27ceef032c8c3bc661d003e/aiofiles-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b2/fb/08b3f4bf05da99aba8ffea52a558758def16e8516bc75ca94ff73587e7d3/construct-2.10.70-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7a/bf/457ed5be028fb235f8f5ad40b5ddbf67023e0017090ea324d0fe6239a73c/dateparser-1.1.8-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz - - pypi: https://files.pythonhosted.org/packages/e1/31/bfb8e590f922089dc3471ed7828a6da2fc9453eba38c332efa9ee8749fd7/editdistance-0.8.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/e0/13/e430bc0af434d8775614283ceaa6181b4083e3e50ab1a6939328ca6aec3f/epitran-1.17-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/73/2d4ac4076c3a9773528d7e16129367ef9885e9dc36dcf64b516ea013a2f0/espeak_phonemizer-1.3.1.tar.gz - pypi: https://files.pythonhosted.org/packages/ea/78/9a8a174011682d71cb4922f4014ebbeb9d3067922678e7059351fd9207cf/exhale-0.3.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e8/2d/d2a548598be01649e2d46231d151a6c56d10b964d94043a335ae56ea2d92/flatbuffers-25.12.19-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fc/e1/6b5a01ef36b5341d5d0899401e4413594dfaa21f86cfc05be8efb25baf81/gruut-2.4.0.tar.gz - - pypi: https://files.pythonhosted.org/packages/51/9f/7eff478e38913cc9930527ff40c9ebcb04744dfcd0ddd43bd5a1eb9565b7/gruut-ipa-0.13.0.tar.gz - - pypi: https://files.pythonhosted.org/packages/a4/e3/22748996c573c6a7d5326ef0292956afac089c73f14e3dfee0a94661e631/gruut_lang_en-2.0.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/93/35/850277d1b17b206bd10874c8a9a3f52e059452fb49bb0d22cbb908f6038b/hypercorn-0.18.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4f/9a/ab96291470e305504aa4b7a2e0ec132e930da89eb3ca7a82fbe03167c131/jsonlines-1.2.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a8/a2/1e0f0665a98968b0af7067cf2dad569e1bd8c1f13a97670b74b5ac5153d9/marisa_trie-1.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/be/2f/5108cb3ee4ba6501748c4908b908e55f42a5b66245b4cfe0c99326e1ef6e/marshmallow-3.26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/46/11/8f92f01da9cc41247008856438aa052cc93f74e4ac12ff250eb96a44249a/mycroft_mimic3_tts-0.2.4.tar.gz - - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d6/5b/545e9267a1cc080c8a1be2746113a063e34bcdd0f5173fd665a5c13cb234/num2words-0.5.14-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/dc/1f5489f7b21817d4ad352bf7a92a252bd5b438bcbaa7ad20ea50814edc79/onnxruntime-1.24.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/d7/39/327802e0b6d693182403c144edacbc27eb82907b57062f23ef5a4c4a5ea7/pandas-3.0.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/72/2a/05a47a6c291414f5a66901f8d1f6ba68e8ec9fccb341d56fa0b31479d41d/panphon-0.22.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/27/6f/0cf0746d02a356103b7c3a065dbc188d8b5092e58bb363d74aa668ee1ad1/phonemes2ids-1.2.2.tar.gz - - pypi: https://files.pythonhosted.org/packages/5e/5f/82c8074f7e84978129347c2c6ec8b6c59f3584ff1a20bc3c940a3e061790/priority-2.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7a/0c/9725b097738f4a6aac9ac4e5a5fc6494eca69f17663d3d6ba8d0ea3858d2/python_crfsuite-0.9.12-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/84/14/9fb5842581f0419b5eb85f8c26c1c0c0f4cf6b4d5be638ae3157316a2650/pyttsx3-2.99-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7e/e9/cc28f21f52913adf333f653b9e0a3bf9cb223f5083a26422968ba73edd8d/quart-0.20.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ea/31/da390a5a10674481dea2909178973de81fa3a246c0eedcc0e1e4114f52f8/quart_cors-0.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/dd/c9/8cc8d850b35ab5650ff6756a1cb85286e2000b66c97520b29c1587455344/regex-2026.2.28-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a9/56/feb011ed1e8724c4c57083d71877eefe61f535f6dc94aa598033a03b54b7/swagger_ui_py-21.12.8-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/de/70/cf880c3b95a6034ef673e74b369941b42315c01f1554a5637a4f8b911009/syrupy-5.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c2/14/e2a54fabd4f08cd7af1c07030603c3356b74da07f7cc056e600436edfa17/tzlocal-5.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/a4/691ab63b17505a26096608cc309960b5a6bdf39e4ba1a793d5f9b1a53270/unicodecsv-0.14.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/a4/f5/10b68b7b1544245097b2a1b8238f66f2fc6dcaeb24ba5d917f52bd2eed4f/wsproto-1.3.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f1/7e/1d55a5749fbf7d1ac6411f3028128b974a3e6bb770d365a2518ecee8ce7e/xdgenvpy-2.4.0-py3-none-any.whl format: channels: - url: https://data.bit-bots.de/conda/ @@ -2334,6 +2282,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/compilers-1.11.0-ha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-14.3.0-he8ccf15_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/console_bridge-1.0.2-h924138e_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/construct-2.10.70-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py312h0a2e395_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.13.4-py312h8a5da7c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cppcheck-2.18.3-py312h014360a_1.conda @@ -2364,6 +2313,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/fabric-3.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/fcl-0.7.0-h543440a_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ffmpeg-8.0.1-gpl_hf567e27_908.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fftw-3.3.10-nompi_h3b011a4_112.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.25.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/flake8-7.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/flake8-builtins-3.1.0-pyhd8ed1ab_0.conda @@ -2417,6 +2367,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-good-1.18.5-h0661c57_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-ugly-1.24.11-ha85cff8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.24.11-hc37bda9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-orc-0.4.42-h82d0256_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gtest-1.17.0-h84d6215_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gtk3-3.24.43-h993cebd_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda @@ -2534,7 +2485,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapacke-3.11.0-5_h6ae95b6_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.8-hf7376ad_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm22-22.1.0-hf7376ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm22-22.1.1-hf7376ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libltdl-2.4.3a-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmicrohttpd-1.0.2-hc2fc477_0.conda @@ -2582,6 +2534,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libtasn1-4.21.0-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libtheora-1.1.1-h4ab18f5_1006.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.1-h9d88235_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libtool-2.5.4-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libudev1-257.10-hd0affe5_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libunistring-0.9.10-h7f98852_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libunwind-1.8.3-h65a8314_0.conda @@ -2676,7 +2629,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pugixml-1.15-h3f63f65_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-17.0-haebf07f_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-h9a6aba3_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-daemon-17.0-h33dcb6b_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/py-opencv-4.12.0-qt6_py312h598be00_612.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-3.0.2-pyh7a1b43c_0.conda @@ -2698,6 +2653,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.17.0-py312h1289d80_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.10.1-py312h9da60e5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysoundcard-0.4.5-pyha804496_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.0.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.15.1-pyhd8ed1ab_0.conda @@ -3163,6 +3119,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h03e3b7b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/soxr-0.1.3-h0b41bf4_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.17.0-hab81395_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-rtd-theme-3.1.0-hd8ed1ab_0.conda @@ -3188,6 +3145,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py312h4c3975b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/transforms3d-0.4.2-pyhd8ed1ab_1.conda + - conda: https://data.bit-bots.de/conda-misc/output/noarch/tts-supertonic-1.0.0-h4616a5c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.5.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda @@ -3259,52 +3217,15 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/zziplib-0.13.69-he45264a_2.conda - conda: src/bitbots_navigation/bitbots_rust_nav build: hb0f4dca_0 - - pypi: https://files.pythonhosted.org/packages/bc/8a/340a1555ae33d7354dbca4faa54948d76d89a27ceef032c8c3bc661d003e/aiofiles-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b2/fb/08b3f4bf05da99aba8ffea52a558758def16e8516bc75ca94ff73587e7d3/construct-2.10.70-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7a/bf/457ed5be028fb235f8f5ad40b5ddbf67023e0017090ea324d0fe6239a73c/dateparser-1.1.8-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz - - pypi: https://files.pythonhosted.org/packages/a9/c7/57423942b2f847cdbbb46494568d00cd8a45500904ea026f0aad6ca01bc7/editdistance-0.8.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/e0/13/e430bc0af434d8775614283ceaa6181b4083e3e50ab1a6939328ca6aec3f/epitran-1.17-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/73/2d4ac4076c3a9773528d7e16129367ef9885e9dc36dcf64b516ea013a2f0/espeak_phonemizer-1.3.1.tar.gz - pypi: https://files.pythonhosted.org/packages/ea/78/9a8a174011682d71cb4922f4014ebbeb9d3067922678e7059351fd9207cf/exhale-0.3.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e8/2d/d2a548598be01649e2d46231d151a6c56d10b964d94043a335ae56ea2d92/flatbuffers-25.12.19-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fc/e1/6b5a01ef36b5341d5d0899401e4413594dfaa21f86cfc05be8efb25baf81/gruut-2.4.0.tar.gz - - pypi: https://files.pythonhosted.org/packages/51/9f/7eff478e38913cc9930527ff40c9ebcb04744dfcd0ddd43bd5a1eb9565b7/gruut-ipa-0.13.0.tar.gz - - pypi: https://files.pythonhosted.org/packages/a4/e3/22748996c573c6a7d5326ef0292956afac089c73f14e3dfee0a94661e631/gruut_lang_en-2.0.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/93/35/850277d1b17b206bd10874c8a9a3f52e059452fb49bb0d22cbb908f6038b/hypercorn-0.18.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4f/9a/ab96291470e305504aa4b7a2e0ec132e930da89eb3ca7a82fbe03167c131/jsonlines-1.2.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/15/c2/3842d8e39006b5b03384418b55108a3f3931ac6fe9b998814be81267acec/marisa_trie-1.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/be/2f/5108cb3ee4ba6501748c4908b908e55f42a5b66245b4cfe0c99326e1ef6e/marshmallow-3.26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/46/11/8f92f01da9cc41247008856438aa052cc93f74e4ac12ff250eb96a44249a/mycroft_mimic3_tts-0.2.4.tar.gz - - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d6/5b/545e9267a1cc080c8a1be2746113a063e34bcdd0f5173fd665a5c13cb234/num2words-0.5.14-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/28/7c/fd253da53594ab8efbefdc85b3638620ab1a6aab6eb7028a513c853559ce/onnxruntime-1.24.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b2/f1/d5318874aed3b57bd00bf76e8f9698b73b578137d9d403314a4e649fbb63/onnxruntime_webgpu-1.25.0.dev20260212001-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/3d/fe/89d77e424365280b79d99b3e1e7d606f5165af2f2ecfaf0c6d24c799d607/pandas-3.0.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/72/2a/05a47a6c291414f5a66901f8d1f6ba68e8ec9fccb341d56fa0b31479d41d/panphon-0.22.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/27/6f/0cf0746d02a356103b7c3a065dbc188d8b5092e58bb363d74aa668ee1ad1/phonemes2ids-1.2.2.tar.gz - - pypi: https://files.pythonhosted.org/packages/5e/5f/82c8074f7e84978129347c2c6ec8b6c59f3584ff1a20bc3c940a3e061790/priority-2.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fc/b7/ba5551480e397c6e86805cc381dd6dc36b15411a806c00c35b661d8dd77e/pyamdgpuinfo-2.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/63/3f/da9732ccb24b71a7539470dcdfcd16c923692788f39553f37238f208ca55/python_crfsuite-0.9.12-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/84/14/9fb5842581f0419b5eb85f8c26c1c0c0f4cf6b4d5be638ae3157316a2650/pyttsx3-2.99-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7e/e9/cc28f21f52913adf333f653b9e0a3bf9cb223f5083a26422968ba73edd8d/quart-0.20.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ea/31/da390a5a10674481dea2909178973de81fa3a246c0eedcc0e1e4114f52f8/quart_cors-0.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9e/40/bb226f203caa22c1043c1ca79b36340156eca0f6a6742b46c3bb222a3a57/regex-2026.2.28-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a9/56/feb011ed1e8724c4c57083d71877eefe61f535f6dc94aa598033a03b54b7/swagger_ui_py-21.12.8-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/de/70/cf880c3b95a6034ef673e74b369941b42315c01f1554a5637a4f8b911009/syrupy-5.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c2/14/e2a54fabd4f08cd7af1c07030603c3356b74da07f7cc056e600436edfa17/tzlocal-5.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/a4/691ab63b17505a26096608cc309960b5a6bdf39e4ba1a793d5f9b1a53270/unicodecsv-0.14.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/a4/f5/10b68b7b1544245097b2a1b8238f66f2fc6dcaeb24ba5d917f52bd2eed4f/wsproto-1.3.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f1/7e/1d55a5749fbf7d1ac6411f3028128b974a3e6bb770d365a2518ecee8ce7e/xdgenvpy-2.4.0-py3-none-any.whl linux-aarch64: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-20_gnu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/adwaita-icon-theme-49.0-unix_0.conda @@ -3382,6 +3303,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/compilers-1.11.0-h8af1aa0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-gcc-specs-14.3.0-hadff5d6_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/console_bridge-1.0.2-hdd96247_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/construct-2.10.70-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/contourpy-1.3.3-py312hf18b547_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/coverage-7.13.4-py312hd077ced_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cppcheck-2.18.3-py312h5677ec4_1.conda @@ -3412,6 +3334,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/fabric-3.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/fcl-0.7.0-h841ecf2_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ffmpeg-8.0.1-gpl_h1a35955_908.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/fftw-3.3.10-nompi_h66d8d02_112.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.25.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/flake8-7.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/flake8-builtins-3.1.0-pyhd8ed1ab_0.conda @@ -3464,6 +3387,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gst-plugins-good-1.18.5-hafdbc27_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gst-plugins-ugly-1.24.11-h7e18b86_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gstreamer-1.24.11-h17c303d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gstreamer-orc-0.4.42-h70b131a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gtest-1.17.0-h17cf362_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gtk3-3.24.43-h4cd1324_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gts-0.7.6-he293c15_4.conda @@ -3496,6 +3420,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.11.0-pyhecfbec7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/itsdangerous-2.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jack-1.9.22-h9d01bbc_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jasper-4.2.9-h27a9ab5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jaxtyping-0.3.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda @@ -3578,7 +3503,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/liblapack-3.11.0-5_h88aeb00_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/liblapacke-3.11.0-5_hb558247_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm21-21.1.8-hfd2ba90_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm22-22.1.0-hfd2ba90_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm22-22.1.1-hfd2ba90_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libltdl-2.4.3a-h5ad3122_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/liblzma-5.8.2-he30d5cf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/liblzma-devel-5.8.2-he30d5cf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmicrohttpd-1.0.2-h3543b8c_0.conda @@ -3624,6 +3550,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libtasn1-4.21.0-he30d5cf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libtheora-1.1.1-h68df207_1006.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libtiff-4.7.1-hdb009f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libtool-2.5.4-h5ad3122_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libudev1-257.10-hf9559e3_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libunistring-0.9.10-hf897c2e_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libunwind-1.8.3-h6470e1d_0.conda @@ -3714,7 +3641,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pthread-stubs-0.4-h86ecc28_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pugixml-1.15-h6ef32b0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pulseaudio-17.0-h3dd60a8_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pulseaudio-client-17.0-hcf98165_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pulseaudio-daemon-17.0-hb9404ba_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/py-opencv-4.12.0-qt6_py312h1743b20_612.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-3.0.2-pyh7a1b43c_0.conda @@ -3736,6 +3665,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyqt5-sip-12.17.0-py312h1ab2c47_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyside6-6.10.1-py312h4810df5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysoundcard-0.4.5-pyha804496_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.0.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.15.1-pyhd8ed1ab_0.conda @@ -4201,6 +4131,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/snappy-1.2.2-he774c54_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/soxr-0.1.3-hb4cce97_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/spdlog-1.17.0-h9f97df7_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-rtd-theme-3.1.0-hd8ed1ab_0.conda @@ -4227,6 +4158,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tornado-6.5.3-py312hefbd42c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/transforms3d-0.4.2-pyhd8ed1ab_1.conda + - conda: https://data.bit-bots.de/conda-misc/output/noarch/tts-supertonic-1.0.0-h4616a5c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.5.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda @@ -4296,51 +4228,15 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zziplib-0.13.69-h650d8d0_2.conda - conda: src/bitbots_navigation/bitbots_rust_nav build: he8cfe8b_0 - - pypi: https://files.pythonhosted.org/packages/bc/8a/340a1555ae33d7354dbca4faa54948d76d89a27ceef032c8c3bc661d003e/aiofiles-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b2/fb/08b3f4bf05da99aba8ffea52a558758def16e8516bc75ca94ff73587e7d3/construct-2.10.70-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7a/bf/457ed5be028fb235f8f5ad40b5ddbf67023e0017090ea324d0fe6239a73c/dateparser-1.1.8-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz - - pypi: https://files.pythonhosted.org/packages/e1/31/bfb8e590f922089dc3471ed7828a6da2fc9453eba38c332efa9ee8749fd7/editdistance-0.8.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/e0/13/e430bc0af434d8775614283ceaa6181b4083e3e50ab1a6939328ca6aec3f/epitran-1.17-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/73/2d4ac4076c3a9773528d7e16129367ef9885e9dc36dcf64b516ea013a2f0/espeak_phonemizer-1.3.1.tar.gz - pypi: https://files.pythonhosted.org/packages/ea/78/9a8a174011682d71cb4922f4014ebbeb9d3067922678e7059351fd9207cf/exhale-0.3.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e8/2d/d2a548598be01649e2d46231d151a6c56d10b964d94043a335ae56ea2d92/flatbuffers-25.12.19-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fc/e1/6b5a01ef36b5341d5d0899401e4413594dfaa21f86cfc05be8efb25baf81/gruut-2.4.0.tar.gz - - pypi: https://files.pythonhosted.org/packages/51/9f/7eff478e38913cc9930527ff40c9ebcb04744dfcd0ddd43bd5a1eb9565b7/gruut-ipa-0.13.0.tar.gz - - pypi: https://files.pythonhosted.org/packages/a4/e3/22748996c573c6a7d5326ef0292956afac089c73f14e3dfee0a94661e631/gruut_lang_en-2.0.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/93/35/850277d1b17b206bd10874c8a9a3f52e059452fb49bb0d22cbb908f6038b/hypercorn-0.18.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4f/9a/ab96291470e305504aa4b7a2e0ec132e930da89eb3ca7a82fbe03167c131/jsonlines-1.2.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a8/a2/1e0f0665a98968b0af7067cf2dad569e1bd8c1f13a97670b74b5ac5153d9/marisa_trie-1.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/be/2f/5108cb3ee4ba6501748c4908b908e55f42a5b66245b4cfe0c99326e1ef6e/marshmallow-3.26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/46/11/8f92f01da9cc41247008856438aa052cc93f74e4ac12ff250eb96a44249a/mycroft_mimic3_tts-0.2.4.tar.gz - - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d6/5b/545e9267a1cc080c8a1be2746113a063e34bcdd0f5173fd665a5c13cb234/num2words-0.5.14-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/dc/1f5489f7b21817d4ad352bf7a92a252bd5b438bcbaa7ad20ea50814edc79/onnxruntime-1.24.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/d7/39/327802e0b6d693182403c144edacbc27eb82907b57062f23ef5a4c4a5ea7/pandas-3.0.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/72/2a/05a47a6c291414f5a66901f8d1f6ba68e8ec9fccb341d56fa0b31479d41d/panphon-0.22.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/27/6f/0cf0746d02a356103b7c3a065dbc188d8b5092e58bb363d74aa668ee1ad1/phonemes2ids-1.2.2.tar.gz - - pypi: https://files.pythonhosted.org/packages/5e/5f/82c8074f7e84978129347c2c6ec8b6c59f3584ff1a20bc3c940a3e061790/priority-2.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/80/15/2ff925c0776c7a2aaab3d03b0e477d1a24b0637600b7e2e928cbcc25034f/pyamdgpuinfo-2.1.7.tar.gz - - pypi: https://files.pythonhosted.org/packages/7a/0c/9725b097738f4a6aac9ac4e5a5fc6494eca69f17663d3d6ba8d0ea3858d2/python_crfsuite-0.9.12-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/84/14/9fb5842581f0419b5eb85f8c26c1c0c0f4cf6b4d5be638ae3157316a2650/pyttsx3-2.99-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7e/e9/cc28f21f52913adf333f653b9e0a3bf9cb223f5083a26422968ba73edd8d/quart-0.20.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ea/31/da390a5a10674481dea2909178973de81fa3a246c0eedcc0e1e4114f52f8/quart_cors-0.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/dd/c9/8cc8d850b35ab5650ff6756a1cb85286e2000b66c97520b29c1587455344/regex-2026.2.28-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a9/56/feb011ed1e8724c4c57083d71877eefe61f535f6dc94aa598033a03b54b7/swagger_ui_py-21.12.8-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/de/70/cf880c3b95a6034ef673e74b369941b42315c01f1554a5637a4f8b911009/syrupy-5.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c2/14/e2a54fabd4f08cd7af1c07030603c3356b74da07f7cc056e600436edfa17/tzlocal-5.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/a4/691ab63b17505a26096608cc309960b5a6bdf39e4ba1a793d5f9b1a53270/unicodecsv-0.14.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/a4/f5/10b68b7b1544245097b2a1b8238f66f2fc6dcaeb24ba5d917f52bd2eed4f/wsproto-1.3.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f1/7e/1d55a5749fbf7d1ac6411f3028128b974a3e6bb770d365a2518ecee8ce7e/xdgenvpy-2.4.0-py3-none-any.whl packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda build_number: 20 @@ -4381,11 +4277,6 @@ packages: purls: [] size: 631452 timestamp: 1758743294412 -- pypi: https://files.pythonhosted.org/packages/bc/8a/340a1555ae33d7354dbca4faa54948d76d89a27ceef032c8c3bc661d003e/aiofiles-25.1.0-py3-none-any.whl - name: aiofiles - version: 25.1.0 - sha256: abe311e527c862958650f9438e859c1fa7568a141b22abcd015e120e86a85695 - requires_python: '>=3.9' - conda: https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.6.1-pyhd8ed1ab_0.conda sha256: 7842ddc678e77868ba7b92a726b437575b23aaec293bca0d40826f1026d90e27 md5: 18fd895e0e775622906cdabfc3cf0fb4 @@ -5882,18 +5773,17 @@ packages: purls: [] size: 18484 timestamp: 1648912662150 -- pypi: https://files.pythonhosted.org/packages/b2/fb/08b3f4bf05da99aba8ffea52a558758def16e8516bc75ca94ff73587e7d3/construct-2.10.70-py3-none-any.whl - name: construct - version: 2.10.70 - sha256: c80be81ef595a1a821ec69dc16099550ed22197615f4320b57cc9ce2a672cb30 - requires_dist: - - arrow ; extra == 'extras' - - cloudpickle ; extra == 'extras' - - cryptography ; extra == 'extras' - - lz4 ; extra == 'extras' - - numpy ; extra == 'extras' - - ruamel-yaml ; extra == 'extras' - requires_python: '>=3.6' +- conda: https://conda.anaconda.org/conda-forge/noarch/construct-2.10.70-pyhd8ed1ab_0.conda + sha256: 096940199e2145bd8bd9834ad8ab0f56f721da6fc749e8b13d04d8a69adad208 + md5: 58e88566bfbbf9d3ffbeda3290e7f4f0 + depends: + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/construct?source=hash-mapping + size: 58104 + timestamp: 1701541902326 - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py312h0a2e395_4.conda sha256: 62447faf7e8eb691e407688c0b4b7c230de40d5ecf95bf301111b4d05c5be473 md5: 43c2bc96af3ae5ed9e8a10ded942aa50 @@ -6032,7 +5922,7 @@ packages: license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT license_family: BSD purls: - - pkg:pypi/cryptography?source=compressed-mapping + - pkg:pypi/cryptography?source=hash-mapping size: 1712251 timestamp: 1770772759286 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-46.0.5-py312hf80642e_0.conda @@ -6153,28 +6043,6 @@ packages: purls: [] size: 227295 timestamp: 1750239141751 -- pypi: https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl - name: dataclasses-json - version: 0.6.7 - sha256: 0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a - requires_dist: - - marshmallow>=3.18.0,<4.0.0 - - typing-inspect>=0.4.0,<1 - requires_python: '>=3.7,<4.0' -- pypi: https://files.pythonhosted.org/packages/7a/bf/457ed5be028fb235f8f5ad40b5ddbf67023e0017090ea324d0fe6239a73c/dateparser-1.1.8-py2.py3-none-any.whl - name: dateparser - version: 1.1.8 - sha256: 070b29b5bbf4b1ec2cd51c96ea040dc68a614de703910a91ad1abba18f9f379f - requires_dist: - - python-dateutil - - pytz - - regex!=2019.2.19,!=2021.8.27 - - tzlocal - - hijri-converter ; extra == 'calendars' - - convertdate ; extra == 'calendars' - - fasttext ; extra == 'fasttext' - - langdetect ; extra == 'langdetect' - requires_python: '>=3.7' - conda: https://conda.anaconda.org/conda-forge/linux-64/dav1d-1.2.1-hd590300_0.conda sha256: 22053a5842ca8ee1cf8e1a817138cdb5e647eb2c46979f84153f6ad7bde73020 md5: 418c6ca5929a611cbd69204907a83995 @@ -6320,10 +6188,6 @@ packages: - pkg:pypi/dnspython?source=hash-mapping size: 196500 timestamp: 1757292856922 -- pypi: https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz - name: docopt - version: 0.6.2 - sha256: 49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491 - conda: https://conda.anaconda.org/conda-forge/noarch/docstring_parser-0.17.0-pyhd8ed1ab_0.conda sha256: 3069a555097f084d3b7bc8f9efbb42f9907ecbfa24d310c63df9814a8df491af md5: ce49d3e5a7d20be2ba57a2c670bdd82e @@ -6368,16 +6232,6 @@ packages: purls: [] size: 71905 timestamp: 1765194538141 -- pypi: https://files.pythonhosted.org/packages/a9/c7/57423942b2f847cdbbb46494568d00cd8a45500904ea026f0aad6ca01bc7/editdistance-0.8.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - name: editdistance - version: 0.8.1 - sha256: c59248eabfad603f0fba47b0c263d5dc728fb01c2b6b50fb6ca187cec547fdb3 - requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/e1/31/bfb8e590f922089dc3471ed7828a6da2fc9453eba38c332efa9ee8749fd7/editdistance-0.8.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - name: editdistance - version: 0.8.1 - sha256: 24b5f9c9673c823d91b5973d0af8b39f883f414a55ade2b9d097138acd10f31e - requires_python: '>=3.8' - conda: https://conda.anaconda.org/conda-forge/linux-64/eigen-3.4.0-h54a6638_2.conda sha256: a627704a4dc57459dbcdec8296c3f7f1801e53d441b7cadb56a2caa57920a5b3 md5: 00f77958419a22c6a41568c6decd4719 @@ -6451,18 +6305,6 @@ packages: - pkg:pypi/empy?source=hash-mapping size: 40210 timestamp: 1586444722817 -- pypi: https://files.pythonhosted.org/packages/e0/13/e430bc0af434d8775614283ceaa6181b4083e3e50ab1a6939328ca6aec3f/epitran-1.17-py2.py3-none-any.whl - name: epitran - version: '1.17' - sha256: 3222fd1038da5315abd187b4382bc8386e3fb045ba6094759877ba3fbe9c9a8d - requires_dist: - - setuptools - - unicodecsv - - regex - - panphon>=0.19 - - marisa-trie - - requests - - subprocess32 ; python_full_version < '3' - conda: https://conda.anaconda.org/conda-forge/linux-64/epoxy-1.5.10-hb03c661_2.conda sha256: a5b51e491fec22bcc1765f5b2c8fff8a97428e9a5a7ee6730095fb9d091b0747 md5: 057083b06ccf1c2778344b6dabace38b @@ -6508,10 +6350,6 @@ packages: purls: [] size: 422103 timestamp: 1758743388115 -- pypi: https://files.pythonhosted.org/packages/ff/73/2d4ac4076c3a9773528d7e16129367ef9885e9dc36dcf64b516ea013a2f0/espeak_phonemizer-1.3.1.tar.gz - name: espeak-phonemizer - version: 1.3.1 - sha256: a591335318e253fc01599370cebc63bcc7f46155a7a7af4496fbf6ca749d0ec9 - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda sha256: ee6cf346d017d954255bbcbdb424cddea4d14e4ed7e9813e429db1d795d01144 md5: 8e662bd460bda79b1ea39194e3c4c9ab @@ -6731,6 +6569,33 @@ packages: purls: [] size: 12028458 timestamp: 1766459996434 +- conda: https://conda.anaconda.org/conda-forge/linux-64/fftw-3.3.10-nompi_h3b011a4_112.conda + sha256: a564b8af44a113173c7d42ffe37a8d600e6ea21f6db87d252135ba07914a3d10 + md5: af1311c2d5e4bfc5cce2b86804c77972 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.3.0 + - libstdcxx >=14 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 1925113 + timestamp: 1771754008607 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/fftw-3.3.10-nompi_h66d8d02_112.conda + sha256: 9b90971f3d41a9df6d9d5c5e0b3bd17d6a78d9b083005e144d5e702622925451 + md5: 3e5c061d8d32165b15d223170268ab2b + depends: + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.3.0 + - libstdcxx >=14 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 1446023 + timestamp: 1771753652128 - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.25.2-pyhd8ed1ab_0.conda sha256: dddea9ec53d5e179de82c24569d41198f98db93314f0adae6b15195085d5567f md5: f58064cec97b12a7136ebb8a6f8a129b @@ -7796,79 +7661,6 @@ packages: purls: [] size: 2578234 timestamp: 1769427141106 -- pypi: https://files.pythonhosted.org/packages/fc/e1/6b5a01ef36b5341d5d0899401e4413594dfaa21f86cfc05be8efb25baf81/gruut-2.4.0.tar.gz - name: gruut - version: 2.4.0 - sha256: a49f693266a3a1ab5a6bde77a8f560ef27712b4169b5a6b02e6a1a873342e19e - requires_dist: - - babel>=2.8.0,<3.0.0 - - dateparser~=1.1.1 - - gruut-ipa>=0.12.0,<1.0 - - gruut-lang-en~=2.0.0 - - jsonlines~=1.2.0 - - networkx>=2.5.0 - - num2words>=0.5.10,<1.0.0 - - numpy>=1.19.0 - - python-crfsuite~=0.9.7 - - dataclasses ; python_full_version < '3.7' - - types-dataclasses ; python_full_version < '3.7' - - importlib-resources ; python_full_version < '3.9' - - aeneas~=1.7.3.0 ; extra == 'align' - - pydub~=0.24.1 ; extra == 'align' - - hazm~=0.7.0 ; extra == 'all' - - conllu>=4.4 ; extra == 'all' - - rapidfuzz>=2.11.1 ; extra == 'all' - - aeneas~=1.7.3.0 ; extra == 'all' - - pydub~=0.24.1 ; extra == 'all' - - mishkal~=0.4.0 ; extra == 'all' - - codernitydb3~=0.6.0 ; extra == 'all' - - phonetisaurus~=0.3.0 ; extra == 'all' - - gruut-lang-ar~=2.0.0 ; extra == 'all' - - gruut-lang-ca~=2.0.0 ; extra == 'all' - - gruut-lang-cs~=2.0.0 ; extra == 'all' - - gruut-lang-de~=2.0.0 ; extra == 'all' - - gruut-lang-es~=2.0.0 ; extra == 'all' - - gruut-lang-fa~=2.0.0 ; extra == 'all' - - gruut-lang-fr~=2.0.0 ; extra == 'all' - - gruut-lang-it~=2.0.0 ; extra == 'all' - - gruut-lang-lb~=2.0.0 ; extra == 'all' - - gruut-lang-nl~=2.0.0 ; extra == 'all' - - gruut-lang-pt~=2.0.0 ; extra == 'all' - - gruut-lang-ru~=2.0.0 ; extra == 'all' - - gruut-lang-sv~=2.0.0 ; extra == 'all' - - gruut-lang-sw~=2.0.0 ; extra == 'all' - - mishkal~=0.4.0 ; extra == 'ar' - - codernitydb3~=0.6.0 ; extra == 'ar' - - gruut-lang-ar~=2.0.0 ; extra == 'ar' - - gruut-lang-ca~=2.0.0 ; extra == 'ca' - - gruut-lang-cs~=2.0.0 ; extra == 'cs' - - gruut-lang-de~=2.0.0 ; extra == 'de' - - gruut-lang-es~=2.0.0 ; extra == 'es' - - hazm~=0.7.0 ; extra == 'fa' - - gruut-lang-fa~=2.0.0 ; extra == 'fa' - - gruut-lang-fr~=2.0.0 ; extra == 'fr' - - phonetisaurus~=0.3.0 ; extra == 'g2p' - - gruut-lang-it~=2.0.0 ; extra == 'it' - - gruut-lang-lb~=2.0.0 ; extra == 'lb' - - gruut-lang-nl~=2.0.0 ; extra == 'nl' - - gruut-lang-pt~=2.0.0 ; extra == 'pt' - - gruut-lang-ru~=2.0.0 ; extra == 'ru' - - gruut-lang-sv~=2.0.0 ; extra == 'sv' - - gruut-lang-sw~=2.0.0 ; extra == 'sw' - - conllu>=4.4 ; extra == 'train' - - rapidfuzz>=2.11.1 ; extra == 'train' - requires_python: '>=3.6' -- pypi: https://files.pythonhosted.org/packages/51/9f/7eff478e38913cc9930527ff40c9ebcb04744dfcd0ddd43bd5a1eb9565b7/gruut-ipa-0.13.0.tar.gz - name: gruut-ipa - version: 0.13.0 - sha256: 71776eb99f46e119ab14d3d4e536f54317133607cc2f6bad9711ab51f1bec66e - requires_dist: - - dataclasses ; python_full_version < '3.7' - requires_python: '>=3.6' -- pypi: https://files.pythonhosted.org/packages/a4/e3/22748996c573c6a7d5326ef0292956afac089c73f14e3dfee0a94661e631/gruut_lang_en-2.0.1.tar.gz - name: gruut-lang-en - version: 2.0.1 - sha256: a3d748bca5b31bf89d26b00ba76809532187696ce3ddf76b35889fe25f94ea30 - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.24.11-h651a532_0.conda sha256: a497d2ba34fdfa4bead423cba5261b7e619df3ac491fb0b6231d91da45bd05fc md5: d8d8894f8ced2c9be76dc9ad1ae531ce @@ -8051,6 +7843,25 @@ packages: purls: [] size: 2032739 timestamp: 1745095972722 +- conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-orc-0.4.42-h82d0256_0.conda + sha256: 708985c3c5969b40ca9bf9565939df1cef0bbe087a283ccb84d888f10e662f13 + md5: 2a751586c2ec522f1f75665a90da698b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: BSD-2-Clause AND BSD-3-Clause + purls: [] + size: 383443 + timestamp: 1768408501404 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gstreamer-orc-0.4.42-h70b131a_0.conda + sha256: cb2f8b084b725246b34764830d3b554666f4e9bcbcf40b9b76bcbb743fd3d27f + md5: f7396ee8405e4f3e54c6c357e384560c + depends: + - libgcc >=14 + license: BSD-2-Clause AND BSD-3-Clause + purls: [] + size: 377338 + timestamp: 1768408531779 - conda: https://conda.anaconda.org/conda-forge/linux-64/gtest-1.17.0-h84d6215_1.conda sha256: 1f738280f245863c5ac78bcc04bb57266357acda45661c4aa25823030c6fb5db md5: 55e29b72a71339bc651f9975492db71f @@ -8394,11 +8205,6 @@ packages: purls: [] size: 8050 timestamp: 1767701505722 -- pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - name: h11 - version: 0.16.0 - sha256: 63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 - requires_python: '>=3.8' - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda sha256: 84c64443368f84b600bfecc529a1194a3b14c3656ee2e832d15a20e0329b6da3 md5: 164fc43f0b53b6e3a7bc7dce5e4f1dc9 @@ -8552,25 +8358,6 @@ packages: - pkg:pypi/humanfriendly?source=hash-mapping size: 73563 timestamp: 1733928021866 -- pypi: https://files.pythonhosted.org/packages/93/35/850277d1b17b206bd10874c8a9a3f52e059452fb49bb0d22cbb908f6038b/hypercorn-0.18.0-py3-none-any.whl - name: hypercorn - version: 0.18.0 - sha256: 225e268f2c1c2f28f6d8f6db8f40cb8c992963610c5725e13ccfcddccb24b1cd - requires_dist: - - exceptiongroup>=1.1.0 ; python_full_version < '3.11' - - h11 - - h2>=4.3.0 - - priority - - taskgroup ; python_full_version < '3.11' - - tomli ; python_full_version < '3.11' - - typing-extensions ; python_full_version < '3.11' - - wsproto>=0.14.0 - - pydata-sphinx-theme ; extra == 'docs' - - sphinxcontrib-mermaid ; extra == 'docs' - - aioquic>=0.9.0 ; extra == 'h3' - - trio ; extra == 'trio' - - uvloop ; extra == 'uvloop' - requires_python: '>=3.10' - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 md5: 8e6923fc12f1fe8f8c4e5c9f343256ac @@ -8819,6 +8606,19 @@ packages: purls: [] size: 461260 timestamp: 1747574434594 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jack-1.9.22-h9d01bbc_3.conda + sha256: 4254ec5f005a8f5b78b9c893467bb0c58d2bfbd3c78a8a194802a494dd5f3e67 + md5: 6716b2d771e2568d14949bd376fe62fa + depends: + - alsa-lib >=1.2.14,<1.3.0a0 + - libgcc >=13 + - libopus >=1.5.2,<2.0a0 + - libstdcxx >=13 + license: LGPL-2.0-only + license_family: LGPL + purls: [] + size: 488216 + timestamp: 1747576147517 - conda: https://conda.anaconda.org/conda-forge/linux-64/jasper-4.2.9-he3c4edf_0.conda sha256: cea4c90ca4971cbc29d5930301cabcc581a781fd26d0cc7ca0aa459cb33ff573 md5: 5455c1a77c2aa337f04d94ff0ef413c3 @@ -8903,12 +8703,6 @@ packages: purls: [] size: 162312 timestamp: 1733779925983 -- pypi: https://files.pythonhosted.org/packages/4f/9a/ab96291470e305504aa4b7a2e0ec132e930da89eb3ca7a82fbe03167c131/jsonlines-1.2.0-py2.py3-none-any.whl - name: jsonlines - version: 1.2.0 - sha256: 0ebd5b0c3efe0d4b5018b320fb0ee1a7b680ab39f6eb853715859f818d386cc8 - requires_dist: - - six - conda: https://conda.anaconda.org/conda-forge/linux-64/jxrlib-1.1-hd590300_3.conda sha256: 2057ca87b313bde5b74b93b0e696f8faab69acd4cb0edebb78469f3f388040c0 md5: 5aeabe88534ea4169d4c49998f293d6c @@ -10874,9 +10668,9 @@ packages: purls: [] size: 43148553 timestamp: 1765930975162 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm22-22.1.0-hf7376ad_0.conda - sha256: 2efe1d8060c6afeb2df037fc61c182fb84e10f49cdbd29ed672e112d4d4ce2d7 - md5: 213f51bbcce2964ff2ec00d0fdd38541 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm22-22.1.1-hf7376ad_0.conda + sha256: 1145f9e85f0fbbdba88f1da5c8c48672bee7702e2f40c563b2dd48350ab4d413 + md5: 97cc6dad22677304846a798c8a65064d depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 @@ -10888,11 +10682,11 @@ packages: license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 44236214 - timestamp: 1772009776202 -- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm22-22.1.0-hfd2ba90_0.conda - sha256: 7be3cdc0bf2747e9c590463a540060ab3ae961f44f0aa0b27acb86b37ba47ac4 - md5: c109137a7e54fde795637863f62485a1 + size: 44256563 + timestamp: 1773371774629 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm22-22.1.1-hfd2ba90_0.conda + sha256: 9b1634ce91d4d56d8a92996e65a2ef20fe0dd8afa88761bb361314748e439aab + md5: 9684eec87b0eb9c81c6b95dfcbe574a0 depends: - libgcc >=14 - libstdcxx >=14 @@ -10903,8 +10697,29 @@ packages: license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 43128981 - timestamp: 1771982780082 + size: 43166469 + timestamp: 1773368435640 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libltdl-2.4.3a-h5888daf_0.conda + sha256: 7620c6425d4491e17083106ca49624448fc16186c30a93cf2b58f862bba416d1 + md5: 8e5de39cab514fa908fcaa7ba37a8738 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: LGPL-2.0-or-later + license_family: LGPL + purls: [] + size: 38472 + timestamp: 1740593829307 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libltdl-2.4.3a-h5ad3122_0.conda + sha256: 079c7786458d2bda55c1c38a429c9bed50678f842284ca7645edcbe0dc13b456 + md5: 6e13257812a29efb7cc84aa396c72902 + depends: + - libgcc >=13 + license: LGPL-2.0-or-later + license_family: LGPL + purls: [] + size: 41874 + timestamp: 1740593981564 - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda sha256: 755c55ebab181d678c12e49cced893598f2bab22d582fbbf4d8b83c18be207eb md5: c7c83eecbb72d88b940c249af56c8b17 @@ -12156,6 +11971,29 @@ packages: purls: [] size: 488407 timestamp: 1762022048105 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libtool-2.5.4-h5888daf_0.conda + sha256: c8245c70ba5b075e0cd61f430afbda00b60931603ed4ea31ce89e7fe930e4e3d + md5: 90697d80c181414aa3472199e136a04e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libltdl 2.4.3a h5888daf_0 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 415044 + timestamp: 1740593851157 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libtool-2.5.4-h5ad3122_0.conda + sha256: 3ad0e71e0997ef6a245ed1906ec2e86af7549a108c35d25110e66a3a4dece20e + md5: 0651f29a5ea482c71f8a74932f01e02f + depends: + - libgcc >=13 + - libltdl 2.4.3a h5ad3122_0 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 416270 + timestamp: 1740594010519 - conda: https://conda.anaconda.org/conda-forge/linux-64/libudev1-257.10-hd0affe5_4.conda sha256: ed4d2c01fbeb1330f112f7e399408634db277d3dfb2dec1d0395f56feaa24351 md5: 6c74fba677b61a0842cbf0f63eee683b @@ -12912,28 +12750,6 @@ packages: purls: [] size: 528318 timestamp: 1727801707353 -- pypi: https://files.pythonhosted.org/packages/15/c2/3842d8e39006b5b03384418b55108a3f3931ac6fe9b998814be81267acec/marisa_trie-1.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - name: marisa-trie - version: 1.4.0 - sha256: 20bc1a6936ba13b6b69684df2e41592f39f700f478e62453bb07fcfbefe1aa30 - requires_dist: - - hypothesis ; extra == 'test' - - pytest ; extra == 'test' - - readme-renderer ; extra == 'test' - - pytest-run-parallel ; python_full_version >= '3.13' and extra == 'test' - - hypothesis>=6.136.9 ; python_full_version >= '3.13' and extra == 'test' - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/a8/a2/1e0f0665a98968b0af7067cf2dad569e1bd8c1f13a97670b74b5ac5153d9/marisa_trie-1.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl - name: marisa-trie - version: 1.4.0 - sha256: fc11658ff7eb5888e7a2bd5c9a98f73a2e03dbf252f844032d7181627e59017b - requires_dist: - - hypothesis ; extra == 'test' - - pytest ; extra == 'test' - - readme-renderer ; extra == 'test' - - pytest-run-parallel ; python_full_version >= '3.13' and extra == 'test' - - hypothesis>=6.136.9 ; python_full_version >= '3.13' and extra == 'test' - requires_python: '>=3.9' - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e md5: 5b5203189eb668f042ac2b0826244964 @@ -12977,24 +12793,6 @@ packages: - pkg:pypi/markupsafe?source=compressed-mapping size: 26305 timestamp: 1772446326927 -- pypi: https://files.pythonhosted.org/packages/be/2f/5108cb3ee4ba6501748c4908b908e55f42a5b66245b4cfe0c99326e1ef6e/marshmallow-3.26.2-py3-none-any.whl - name: marshmallow - version: 3.26.2 - sha256: 013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73 - requires_dist: - - packaging>=17.0 - - marshmallow[tests] ; extra == 'dev' - - tox ; extra == 'dev' - - pre-commit>=3.5,<5.0 ; extra == 'dev' - - autodocsumm==0.2.14 ; extra == 'docs' - - furo==2024.8.6 ; extra == 'docs' - - sphinx-copybutton==0.5.2 ; extra == 'docs' - - sphinx-issues==5.0.0 ; extra == 'docs' - - sphinx==8.1.3 ; extra == 'docs' - - sphinxext-opengraph==0.9.1 ; extra == 'docs' - - pytest ; extra == 'tests' - - simplejson ; extra == 'tests' - requires_python: '>=3.9' - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.10.8-py312h7900ff3_0.conda sha256: 6d66175e1a4ffb91ed954e2c11066d2e03a05bce951a808275069836ddfc993e md5: 2a7663896e5aab10b60833a768c4c272 @@ -13265,41 +13063,6 @@ packages: - pkg:pypi/munkres?source=hash-mapping size: 15851 timestamp: 1749895533014 -- pypi: https://files.pythonhosted.org/packages/46/11/8f92f01da9cc41247008856438aa052cc93f74e4ac12ff250eb96a44249a/mycroft_mimic3_tts-0.2.4.tar.gz - name: mycroft-mimic3-tts - version: 0.2.4 - sha256: 60cd282274c94967e11845b9127ff2eb7ba936341de0e231107297c0c70d2a27 - requires_dist: - - dataclasses-json<1.0 - - epitran==1.17 - - espeak-phonemizer>=1.0,<2.0 - - gruut>=2.3.0,<3.0 - - numpy<2.0 - - onnxruntime>=1.6,<2.0 - - phonemes2ids<2.0 - - quart>=0.16,<1.0 - - quart-cors - - requests>=2,<3 - - swagger-ui-py>=21,<22 - - tqdm>=4,<5 - - xdgenvpy>2.0,<3 - - importlib-resources ; python_full_version < '3.9' - - gruut[de] ; extra == 'all' - - gruut[es] ; extra == 'all' - - gruut[fa] ; extra == 'all' - - gruut[fr] ; extra == 'all' - - gruut[it] ; extra == 'all' - - gruut[nl] ; extra == 'all' - - gruut[ru] ; extra == 'all' - - gruut[sw] ; extra == 'all' - - gruut[de] ; extra == 'de' - - gruut[es] ; extra == 'es' - - gruut[fa] ; extra == 'fa' - - gruut[fr] ; extra == 'fr' - - gruut[it] ; extra == 'it' - - gruut[nl] ; extra == 'nl' - - gruut[ru] ; extra == 'ru' - - gruut[sw] ; extra == 'sw' - conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.19.1-py312h4c3975b_0.conda sha256: d0e0765e5ec08141b10da9e03ef620d2e3e571d81cc2bc14025c52a48bb01856 md5: c3ad8cc29400fe5ca1b6a6e5ae46538e @@ -13403,49 +13166,6 @@ packages: purls: [] size: 1151473 timestamp: 1748012425058 -- pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl - name: networkx - version: 3.6.1 - sha256: d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762 - requires_dist: - - asv ; extra == 'benchmarking' - - virtualenv ; extra == 'benchmarking' - - numpy>=1.25 ; extra == 'default' - - scipy>=1.11.2 ; extra == 'default' - - matplotlib>=3.8 ; extra == 'default' - - pandas>=2.0 ; extra == 'default' - - pre-commit>=4.1 ; extra == 'developer' - - mypy>=1.15 ; extra == 'developer' - - sphinx>=8.0 ; extra == 'doc' - - pydata-sphinx-theme>=0.16 ; extra == 'doc' - - sphinx-gallery>=0.18 ; extra == 'doc' - - numpydoc>=1.8.0 ; extra == 'doc' - - pillow>=10 ; extra == 'doc' - - texext>=0.6.7 ; extra == 'doc' - - myst-nb>=1.1 ; extra == 'doc' - - intersphinx-registry ; extra == 'doc' - - osmnx>=2.0.0 ; extra == 'example' - - momepy>=0.7.2 ; extra == 'example' - - contextily>=1.6 ; extra == 'example' - - seaborn>=0.13 ; extra == 'example' - - cairocffi>=1.7 ; extra == 'example' - - igraph>=0.11 ; extra == 'example' - - scikit-learn>=1.5 ; extra == 'example' - - iplotx>=0.9.0 ; extra == 'example' - - lxml>=4.6 ; extra == 'extra' - - pygraphviz>=1.14 ; extra == 'extra' - - pydot>=3.0.1 ; extra == 'extra' - - sympy>=1.10 ; extra == 'extra' - - build>=0.10 ; extra == 'release' - - twine>=4.0 ; extra == 'release' - - wheel>=0.40 ; extra == 'release' - - changelist==0.5 ; extra == 'release' - - pytest>=7.2 ; extra == 'test' - - pytest-cov>=4.0 ; extra == 'test' - - pytest-xdist>=3.0 ; extra == 'test' - - pytest-mpl ; extra == 'test-extras' - - pytest-randomly ; extra == 'test-extras' - requires_python: '>=3.11,!=3.14.1' - conda: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_0.conda sha256: 6f7d59dbec0a7b00bf5d103a4306e8886678b796ff2151b62452d4582b2a53fb md5: b518e9e92493721281a60fa975bddc65 @@ -13565,12 +13285,6 @@ packages: purls: [] size: 2061869 timestamp: 1763490303490 -- pypi: https://files.pythonhosted.org/packages/d6/5b/545e9267a1cc080c8a1be2746113a063e34bcdd0f5173fd665a5c13cb234/num2words-0.5.14-py3-none-any.whl - name: num2words - version: 0.5.14 - sha256: 1c8e5b00142fc2966fd8d685001e36c4a9911e070d1b120e1beb721fa1edb33d - requires_dist: - - docopt>=0.6.2 - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda sha256: fe3459c75cf84dcef6ef14efcc4adb0ade66038ddd27cadb894f34f4797687d8 md5: d8285bea2a350f63fab23bf460221f3f @@ -13692,17 +13406,6 @@ packages: - protobuf - sympy requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/28/7c/fd253da53594ab8efbefdc85b3638620ab1a6aab6eb7028a513c853559ce/onnxruntime-1.24.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - name: onnxruntime - version: 1.24.3 - sha256: b354afce3333f2859c7e8706d84b6c552beac39233bcd3141ce7ab77b4cabb5d - requires_dist: - - flatbuffers - - numpy>=1.21.6 - - packaging - - protobuf - - sympy - requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/b2/f1/d5318874aed3b57bd00bf76e8f9698b73b578137d9d403314a4e649fbb63/onnxruntime_webgpu-1.25.0.dev20260212001-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl name: onnxruntime-webgpu version: 1.25.0.dev20260212001 @@ -13985,186 +13688,6 @@ packages: - pkg:pypi/packaging?source=compressed-mapping size: 72010 timestamp: 1769093650580 -- pypi: https://files.pythonhosted.org/packages/3d/fe/89d77e424365280b79d99b3e1e7d606f5165af2f2ecfaf0c6d24c799d607/pandas-3.0.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - name: pandas - version: 3.0.1 - sha256: 532527a701281b9dd371e2f582ed9094f4c12dd9ffb82c0c54ee28d8ac9520c4 - requires_dist: - - numpy>=1.26.0 ; python_full_version < '3.14' - - numpy>=2.3.3 ; python_full_version >= '3.14' - - python-dateutil>=2.8.2 - - tzdata ; sys_platform == 'win32' - - tzdata ; sys_platform == 'emscripten' - - hypothesis>=6.116.0 ; extra == 'test' - - pytest>=8.3.4 ; extra == 'test' - - pytest-xdist>=3.6.1 ; extra == 'test' - - pyarrow>=13.0.0 ; extra == 'pyarrow' - - bottleneck>=1.4.2 ; extra == 'performance' - - numba>=0.60.0 ; extra == 'performance' - - numexpr>=2.10.2 ; extra == 'performance' - - scipy>=1.14.1 ; extra == 'computation' - - xarray>=2024.10.0 ; extra == 'computation' - - fsspec>=2024.10.0 ; extra == 'fss' - - s3fs>=2024.10.0 ; extra == 'aws' - - gcsfs>=2024.10.0 ; extra == 'gcp' - - odfpy>=1.4.1 ; extra == 'excel' - - openpyxl>=3.1.5 ; extra == 'excel' - - python-calamine>=0.3.0 ; extra == 'excel' - - pyxlsb>=1.0.10 ; extra == 'excel' - - xlrd>=2.0.1 ; extra == 'excel' - - xlsxwriter>=3.2.0 ; extra == 'excel' - - pyarrow>=13.0.0 ; extra == 'parquet' - - pyarrow>=13.0.0 ; extra == 'feather' - - pyiceberg>=0.8.1 ; extra == 'iceberg' - - tables>=3.10.1 ; extra == 'hdf5' - - pyreadstat>=1.2.8 ; extra == 'spss' - - sqlalchemy>=2.0.36 ; extra == 'postgresql' - - psycopg2>=2.9.10 ; extra == 'postgresql' - - adbc-driver-postgresql>=1.2.0 ; extra == 'postgresql' - - sqlalchemy>=2.0.36 ; extra == 'mysql' - - pymysql>=1.1.1 ; extra == 'mysql' - - sqlalchemy>=2.0.36 ; extra == 'sql-other' - - adbc-driver-postgresql>=1.2.0 ; extra == 'sql-other' - - adbc-driver-sqlite>=1.2.0 ; extra == 'sql-other' - - beautifulsoup4>=4.12.3 ; extra == 'html' - - html5lib>=1.1 ; extra == 'html' - - lxml>=5.3.0 ; extra == 'html' - - lxml>=5.3.0 ; extra == 'xml' - - matplotlib>=3.9.3 ; extra == 'plot' - - jinja2>=3.1.5 ; extra == 'output-formatting' - - tabulate>=0.9.0 ; extra == 'output-formatting' - - pyqt5>=5.15.9 ; extra == 'clipboard' - - qtpy>=2.4.2 ; extra == 'clipboard' - - zstandard>=0.23.0 ; extra == 'compression' - - pytz>=2024.2 ; extra == 'timezone' - - adbc-driver-postgresql>=1.2.0 ; extra == 'all' - - adbc-driver-sqlite>=1.2.0 ; extra == 'all' - - beautifulsoup4>=4.12.3 ; extra == 'all' - - bottleneck>=1.4.2 ; extra == 'all' - - fastparquet>=2024.11.0 ; extra == 'all' - - fsspec>=2024.10.0 ; extra == 'all' - - gcsfs>=2024.10.0 ; extra == 'all' - - html5lib>=1.1 ; extra == 'all' - - hypothesis>=6.116.0 ; extra == 'all' - - jinja2>=3.1.5 ; extra == 'all' - - lxml>=5.3.0 ; extra == 'all' - - matplotlib>=3.9.3 ; extra == 'all' - - numba>=0.60.0 ; extra == 'all' - - numexpr>=2.10.2 ; extra == 'all' - - odfpy>=1.4.1 ; extra == 'all' - - openpyxl>=3.1.5 ; extra == 'all' - - psycopg2>=2.9.10 ; extra == 'all' - - pyarrow>=13.0.0 ; extra == 'all' - - pyiceberg>=0.8.1 ; extra == 'all' - - pymysql>=1.1.1 ; extra == 'all' - - pyqt5>=5.15.9 ; extra == 'all' - - pyreadstat>=1.2.8 ; extra == 'all' - - pytest>=8.3.4 ; extra == 'all' - - pytest-xdist>=3.6.1 ; extra == 'all' - - python-calamine>=0.3.0 ; extra == 'all' - - pytz>=2024.2 ; extra == 'all' - - pyxlsb>=1.0.10 ; extra == 'all' - - qtpy>=2.4.2 ; extra == 'all' - - scipy>=1.14.1 ; extra == 'all' - - s3fs>=2024.10.0 ; extra == 'all' - - sqlalchemy>=2.0.36 ; extra == 'all' - - tables>=3.10.1 ; extra == 'all' - - tabulate>=0.9.0 ; extra == 'all' - - xarray>=2024.10.0 ; extra == 'all' - - xlrd>=2.0.1 ; extra == 'all' - - xlsxwriter>=3.2.0 ; extra == 'all' - - zstandard>=0.23.0 ; extra == 'all' - requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/d7/39/327802e0b6d693182403c144edacbc27eb82907b57062f23ef5a4c4a5ea7/pandas-3.0.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl - name: pandas - version: 3.0.1 - sha256: b8e36891080b87823aff3640c78649b91b8ff6eea3c0d70aeabd72ea43ab069b - requires_dist: - - numpy>=1.26.0 ; python_full_version < '3.14' - - numpy>=2.3.3 ; python_full_version >= '3.14' - - python-dateutil>=2.8.2 - - tzdata ; sys_platform == 'win32' - - tzdata ; sys_platform == 'emscripten' - - hypothesis>=6.116.0 ; extra == 'test' - - pytest>=8.3.4 ; extra == 'test' - - pytest-xdist>=3.6.1 ; extra == 'test' - - pyarrow>=13.0.0 ; extra == 'pyarrow' - - bottleneck>=1.4.2 ; extra == 'performance' - - numba>=0.60.0 ; extra == 'performance' - - numexpr>=2.10.2 ; extra == 'performance' - - scipy>=1.14.1 ; extra == 'computation' - - xarray>=2024.10.0 ; extra == 'computation' - - fsspec>=2024.10.0 ; extra == 'fss' - - s3fs>=2024.10.0 ; extra == 'aws' - - gcsfs>=2024.10.0 ; extra == 'gcp' - - odfpy>=1.4.1 ; extra == 'excel' - - openpyxl>=3.1.5 ; extra == 'excel' - - python-calamine>=0.3.0 ; extra == 'excel' - - pyxlsb>=1.0.10 ; extra == 'excel' - - xlrd>=2.0.1 ; extra == 'excel' - - xlsxwriter>=3.2.0 ; extra == 'excel' - - pyarrow>=13.0.0 ; extra == 'parquet' - - pyarrow>=13.0.0 ; extra == 'feather' - - pyiceberg>=0.8.1 ; extra == 'iceberg' - - tables>=3.10.1 ; extra == 'hdf5' - - pyreadstat>=1.2.8 ; extra == 'spss' - - sqlalchemy>=2.0.36 ; extra == 'postgresql' - - psycopg2>=2.9.10 ; extra == 'postgresql' - - adbc-driver-postgresql>=1.2.0 ; extra == 'postgresql' - - sqlalchemy>=2.0.36 ; extra == 'mysql' - - pymysql>=1.1.1 ; extra == 'mysql' - - sqlalchemy>=2.0.36 ; extra == 'sql-other' - - adbc-driver-postgresql>=1.2.0 ; extra == 'sql-other' - - adbc-driver-sqlite>=1.2.0 ; extra == 'sql-other' - - beautifulsoup4>=4.12.3 ; extra == 'html' - - html5lib>=1.1 ; extra == 'html' - - lxml>=5.3.0 ; extra == 'html' - - lxml>=5.3.0 ; extra == 'xml' - - matplotlib>=3.9.3 ; extra == 'plot' - - jinja2>=3.1.5 ; extra == 'output-formatting' - - tabulate>=0.9.0 ; extra == 'output-formatting' - - pyqt5>=5.15.9 ; extra == 'clipboard' - - qtpy>=2.4.2 ; extra == 'clipboard' - - zstandard>=0.23.0 ; extra == 'compression' - - pytz>=2024.2 ; extra == 'timezone' - - adbc-driver-postgresql>=1.2.0 ; extra == 'all' - - adbc-driver-sqlite>=1.2.0 ; extra == 'all' - - beautifulsoup4>=4.12.3 ; extra == 'all' - - bottleneck>=1.4.2 ; extra == 'all' - - fastparquet>=2024.11.0 ; extra == 'all' - - fsspec>=2024.10.0 ; extra == 'all' - - gcsfs>=2024.10.0 ; extra == 'all' - - html5lib>=1.1 ; extra == 'all' - - hypothesis>=6.116.0 ; extra == 'all' - - jinja2>=3.1.5 ; extra == 'all' - - lxml>=5.3.0 ; extra == 'all' - - matplotlib>=3.9.3 ; extra == 'all' - - numba>=0.60.0 ; extra == 'all' - - numexpr>=2.10.2 ; extra == 'all' - - odfpy>=1.4.1 ; extra == 'all' - - openpyxl>=3.1.5 ; extra == 'all' - - psycopg2>=2.9.10 ; extra == 'all' - - pyarrow>=13.0.0 ; extra == 'all' - - pyiceberg>=0.8.1 ; extra == 'all' - - pymysql>=1.1.1 ; extra == 'all' - - pyqt5>=5.15.9 ; extra == 'all' - - pyreadstat>=1.2.8 ; extra == 'all' - - pytest>=8.3.4 ; extra == 'all' - - pytest-xdist>=3.6.1 ; extra == 'all' - - python-calamine>=0.3.0 ; extra == 'all' - - pytz>=2024.2 ; extra == 'all' - - pyxlsb>=1.0.10 ; extra == 'all' - - qtpy>=2.4.2 ; extra == 'all' - - scipy>=1.14.1 ; extra == 'all' - - s3fs>=2024.10.0 ; extra == 'all' - - sqlalchemy>=2.0.36 ; extra == 'all' - - tables>=3.10.1 ; extra == 'all' - - tabulate>=0.9.0 ; extra == 'all' - - xarray>=2024.10.0 ; extra == 'all' - - xlrd>=2.0.1 ; extra == 'all' - - xlsxwriter>=3.2.0 ; extra == 'all' - - zstandard>=0.23.0 ; extra == 'all' - requires_python: '>=3.11' - conda: https://conda.anaconda.org/conda-forge/linux-64/pango-1.56.4-hadf4263_0.conda sha256: 3613774ad27e48503a3a6a9d72017087ea70f1426f6e5541dbdb59a3b626eaaf md5: 79f71230c069a287efe3a8614069ddf1 @@ -14206,19 +13729,6 @@ packages: purls: [] size: 468811 timestamp: 1751293869070 -- pypi: https://files.pythonhosted.org/packages/72/2a/05a47a6c291414f5a66901f8d1f6ba68e8ec9fccb341d56fa0b31479d41d/panphon-0.22.2-py2.py3-none-any.whl - name: panphon - version: 0.22.2 - sha256: a4c65113430d0699054cb00df978c02712d3c80913a1ef67697f888d96f3a00a - requires_dist: - - setuptools - - unicodecsv - - pyyaml - - regex - - numpy>=1.20.2 - - editdistance - - munkres - - pandas - conda: https://conda.anaconda.org/conda-forge/noarch/paramiko-4.0.0-pyhd8ed1ab_0.conda sha256: ce76d5a1fc6c7ef636cbdbf14ce2d601a1bfa0dd8d286507c1fd02546fccb94b md5: 1a884d2b1ea21abfb73911dcdb8342e4 @@ -14398,10 +13908,6 @@ packages: - pkg:pypi/pexpect?source=hash-mapping size: 53561 timestamp: 1733302019362 -- pypi: https://files.pythonhosted.org/packages/27/6f/0cf0746d02a356103b7c3a065dbc188d8b5092e58bb363d74aa668ee1ad1/phonemes2ids-1.2.2.tar.gz - name: phonemes2ids - version: 1.2.2 - sha256: 8e3e9e0723215c7187b56276bb053688a43851d8deb9948432e793262551c2ac - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.3.0-py312h7b42cdd_3.conda sha256: ad4a22899819a2bb86550d1fc3833a44e073aac80ea61529676b5e73220fcc2b md5: 1d7f05c3f8bb4e98d02fca45f0920b23 @@ -14556,11 +14062,6 @@ packages: - pkg:pypi/pre-commit?source=hash-mapping size: 200827 timestamp: 1765937577534 -- pypi: https://files.pythonhosted.org/packages/5e/5f/82c8074f7e84978129347c2c6ec8b6c59f3584ff1a20bc3c940a3e061790/priority-2.0.0-py3-none-any.whl - name: priority - version: 2.0.0 - sha256: 6f8eefce5f3ad59baf2c080a664037bb4725cd0a790d53d59ab4059288faf6aa - requires_python: '>=3.6.1' - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.7.1-he0df7b0_3.conda sha256: c94d3d8ef40d1ea018860d66c416003bc03adede7d212efc9218bb64041fe2f7 md5: 031e33ae075b336c0ce92b14efa886c5 @@ -14764,6 +14265,31 @@ packages: purls: [] size: 113424 timestamp: 1737355438448 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-17.0-haebf07f_3.conda + sha256: 9c292793d5cd96b09c1591b217c6ce9ad4fb4f2265ee6182279b642b470009f0 + md5: 43f74f43f810b7ed57d72b66f5f2e254 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - pulseaudio-client 17.0 h9a6aba3_3 + - pulseaudio-daemon 17.0 h33dcb6b_3 + license: LGPL-2.1-or-later + license_family: LGPL + purls: [] + size: 18408 + timestamp: 1763148313744 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pulseaudio-17.0-h3dd60a8_3.conda + sha256: 52bc09672a79407728acb199b1fb5477572327824163a8d72ea4fa409393d334 + md5: 067e30769229ea8889a2be53cd55f960 + depends: + - libgcc >=14 + - pulseaudio-client 17.0 hcf98165_3 + - pulseaudio-daemon 17.0 hb9404ba_3 + license: LGPL-2.1-or-later + license_family: LGPL + purls: [] + size: 18473 + timestamp: 1763148328578 - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-h9a6aba3_3.conda sha256: 0a0858c59805d627d02bdceee965dd84fde0aceab03a2f984325eec08d822096 md5: b8ea447fdf62e3597cb8d2fae4eb1a90 @@ -14801,6 +14327,69 @@ packages: purls: [] size: 760306 timestamp: 1763148231117 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-daemon-17.0-h33dcb6b_3.conda + sha256: 3fd53058cea7d7b84779ea5644239e5b1d23621b2fef4a07d195db5d93f3849c + md5: f7bc8d752fd698cbb3bddf8df96a8f35 + depends: + - __glibc >=2.17,<3.0.a0 + - alsa-lib >=1.2.14,<1.3.0a0 + - dbus >=1.16.2,<2.0a0 + - fftw >=3.3.10,<4.0a0 + - gstreamer-orc >=0.4.41,<0.5.0a0 + - jack >=1.9.22,<1.10.0a0 + - libcap >=2.77,<2.78.0a0 + - libgcc >=14 + - libltdl >=2.4.3a,<2.5.0a0 + - libsndfile >=1.2.2,<1.3.0a0 + - libsystemd0 >=257.10 + - libtool >=2.5.4,<3.0a0 + - libudev1 >=257.10 + - libxcb >=1.17.0,<2.0a0 + - openssl >=3.5.4,<4.0a0 + - pulseaudio-client 17.0 h9a6aba3_3 + - soxr >=0.1.3,<0.1.4.0a0 + - xorg-libice >=1.1.2,<2.0a0 + - xorg-libsm >=1.2.6,<2.0a0 + - xorg-libx11 >=1.8.12,<2.0a0 + - xorg-libxtst >=1.2.5,<2.0a0 + constrains: + - pulseaudio 17.0 *_3 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 876199 + timestamp: 1763148300906 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pulseaudio-daemon-17.0-hb9404ba_3.conda + sha256: 5b39858cbdb46c40de1fc9cf454f1f0d715feec882502f47daa8f7a4c0bf35bd + md5: ea5e4cc0f2060cfec6a851c1bb545ff4 + depends: + - alsa-lib >=1.2.14,<1.3.0a0 + - dbus >=1.16.2,<2.0a0 + - fftw >=3.3.10,<4.0a0 + - gstreamer-orc >=0.4.41,<0.5.0a0 + - jack >=1.9.22,<1.10.0a0 + - libcap >=2.77,<2.78.0a0 + - libgcc >=14 + - libltdl >=2.4.3a,<2.5.0a0 + - libsndfile >=1.2.2,<1.3.0a0 + - libsystemd0 >=257.10 + - libtool >=2.5.4,<3.0a0 + - libudev1 >=257.10 + - libxcb >=1.17.0,<2.0a0 + - openssl >=3.5.4,<4.0a0 + - pulseaudio-client 17.0 hcf98165_3 + - soxr >=0.1.3,<0.1.4.0a0 + - xorg-libice >=1.1.2,<2.0a0 + - xorg-libsm >=1.2.6,<2.0a0 + - xorg-libx11 >=1.8.12,<2.0a0 + - xorg-libxtst >=1.2.5,<2.0a0 + constrains: + - pulseaudio 17.0 *_3 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 897388 + timestamp: 1763148315136 - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda sha256: 71bd24600d14bb171a6321d523486f6a06f855e75e547fa0cb2a0953b02047f0 md5: 3bfdfb8dbcdc4af1ae3f9a8eb3948f04 @@ -15280,6 +14869,21 @@ packages: - pkg:pypi/pysocks?source=hash-mapping size: 21085 timestamp: 1733217331982 +- conda: https://conda.anaconda.org/conda-forge/noarch/pysoundcard-0.4.5-pyha804496_0.conda + sha256: b047c8d5f9f23d899bb1bc30c359d46ca91bfd6b8df3f4f0ba95b3ed3a087b92 + md5: 28cf7e04b3cf02945f863284825ce63d + depends: + - __linux + - cffi >=0.6 + - numpy + - pulseaudio + - python >=3.10 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/soundcard?source=hash-mapping + size: 41900 + timestamp: 1758025716584 - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda sha256: 9e749fb465a8bedf0184d8b8996992a38de351f7c64e967031944978de03a520 md5: 2b694bad8a50dc2f712f5368de866480 @@ -15403,26 +15007,6 @@ packages: purls: [] size: 13856145 timestamp: 1696323158781 -- pypi: https://files.pythonhosted.org/packages/63/3f/da9732ccb24b71a7539470dcdfcd16c923692788f39553f37238f208ca55/python_crfsuite-0.9.12-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - name: python-crfsuite - version: 0.9.12 - sha256: 891bf2a5f410f17c5f9d76ab7330178a10142d48ed12f5c15b84f4c23fee80c7 - requires_dist: - - tox ; extra == 'dev' - - black ; extra == 'dev' - - isort ; extra == 'dev' - - flake8 ; extra == 'dev' - requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/7a/0c/9725b097738f4a6aac9ac4e5a5fc6494eca69f17663d3d6ba8d0ea3858d2/python_crfsuite-0.9.12-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl - name: python-crfsuite - version: 0.9.12 - sha256: 7118a3b267c437a9701362f5eacd6d1ff2360305a9c872cc20a716cd005c13eb - requires_dist: - - tox ; extra == 'dev' - - black ; extra == 'dev' - - isort ; extra == 'dev' - - flake8 ; extra == 'dev' - requires_python: '>=3.10' - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664 md5: 5b8d21249ff20967101ffa321cab24e8 @@ -15523,19 +15107,6 @@ packages: purls: [] size: 6958 timestamp: 1752805918820 -- pypi: https://files.pythonhosted.org/packages/84/14/9fb5842581f0419b5eb85f8c26c1c0c0f4cf6b4d5be638ae3157316a2650/pyttsx3-2.99-py3-none-any.whl - name: pyttsx3 - version: '2.99' - sha256: ff3e4ff756c24d72b9f3f2f304e0edaafd0f58adb0e6f4b90d930440cda8b207 - requires_dist: - - comtypes ; sys_platform == 'win32' - - pyobjc>=2.4 ; sys_platform == 'darwin' - - pypiwin32 ; sys_platform == 'win32' - - pywin32 ; sys_platform == 'win32' -- pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl - name: pytz - version: 2026.1.post1 - sha256: f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py312h8a5da7c_1.conda sha256: cb142bfd92f6e55749365ddc244294fa7b64db6d08c45b018ff1c658907bfcbf md5: 15878599a87992e44c059731771591cb @@ -15833,32 +15404,6 @@ packages: purls: [] size: 59404266 timestamp: 1766346978669 -- pypi: https://files.pythonhosted.org/packages/7e/e9/cc28f21f52913adf333f653b9e0a3bf9cb223f5083a26422968ba73edd8d/quart-0.20.0-py3-none-any.whl - name: quart - version: 0.20.0 - sha256: 003c08f551746710acb757de49d9b768986fd431517d0eb127380b656b98b8f1 - requires_dist: - - aiofiles - - blinker>=1.6 - - click>=8.0 - - flask>=3.0 - - hypercorn>=0.11.2 - - importlib-metadata ; python_full_version < '3.10' - - itsdangerous - - jinja2 - - markupsafe - - typing-extensions ; python_full_version < '3.10' - - werkzeug>=3.0 - - python-dotenv ; extra == 'dotenv' - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/ea/31/da390a5a10674481dea2909178973de81fa3a246c0eedcc0e1e4114f52f8/quart_cors-0.8.0-py3-none-any.whl - name: quart-cors - version: 0.8.0 - sha256: 62dc811768e2e1704d2b99d5880e3eb26fc776832305a19ea53db66f63837767 - requires_dist: - - quart>=0.15 - - typing-extensions ; python_full_version < '3.11' - requires_python: '>=3.9' - conda: https://conda.anaconda.org/conda-forge/linux-64/rapidjson-1.1.0.post20240409-h3f2d84a_2.conda sha256: f87f265263a1ddbc50b98e2c2bcaa2bac63da3acc09267815dd0f4bd614cd902 md5: 65e2f30d532b4ae2063a424c185cc678 @@ -15914,16 +15459,6 @@ packages: md5: 1b712720f0094de41b1d0482f117f66d size: 1075 timestamp: 1771970041027 -- pypi: https://files.pythonhosted.org/packages/9e/40/bb226f203caa22c1043c1ca79b36340156eca0f6a6742b46c3bb222a3a57/regex-2026.2.28-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - name: regex - version: 2026.2.28 - sha256: d6b08a06976ff4fb0d83077022fde3eca06c55432bb997d8c0495b9a4e9872f4 - requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/dd/c9/8cc8d850b35ab5650ff6756a1cb85286e2000b66c97520b29c1587455344/regex-2026.2.28-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl - name: regex - version: 2026.2.28 - sha256: e71dcecaa113eebcc96622c17692672c2d104b1d71ddf7adeda90da7ddeb26fc - requires_python: '>=3.10' - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda sha256: 7813c38b79ae549504b2c57b3f33394cea4f2ad083f0994d2045c2e24cb538c5 md5: c65df89a0b2e321045a9e01d1337b182 @@ -34700,7 +34235,7 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/sniffio?source=compressed-mapping + - pkg:pypi/sniffio?source=hash-mapping size: 15698 timestamp: 1762941572482 - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda @@ -34719,6 +34254,26 @@ packages: version: 2.8.3 sha256: ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95 requires_python: '>=3.9' +- conda: https://conda.anaconda.org/conda-forge/linux-64/soxr-0.1.3-h0b41bf4_3.conda + sha256: 141e3364d26f162bfeae8491787c0d8796ada6c29a8cd567c1cd17c3c6b418f9 + md5: e8d261785be19b1575d23ccbbeae4ddd + depends: + - _openmp_mutex >=4.5 + - libgcc-ng >=12 + license: LGPL-2.1-or-later + purls: [] + size: 131370 + timestamp: 1674059502792 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/soxr-0.1.3-hb4cce97_3.conda + sha256: 58b006195863f200efdb5785a4a954f8d0284b5984703d4d74ec4c09343e58e2 + md5: 13e1d5bd316dec4077351f4246b9b2a8 + depends: + - _openmp_mutex >=4.5 + - libgcc-ng >=12 + license: LGPL-2.1-or-later + purls: [] + size: 111209 + timestamp: 1674059588618 - conda: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.17.0-hab81395_1.conda sha256: c650f3df027afde77a5fbf58600ec4ed81a9edddf81f323cfb3e260f6dc19f56 md5: a3b0e874fa56f72bc54e5c595712a333 @@ -34965,13 +34520,6 @@ packages: purls: [] size: 2106252 timestamp: 1756090698097 -- pypi: https://files.pythonhosted.org/packages/a9/56/feb011ed1e8724c4c57083d71877eefe61f535f6dc94aa598033a03b54b7/swagger_ui_py-21.12.8-py3-none-any.whl - name: swagger-ui-py - version: 21.12.8 - sha256: 268901c814135d2562b44e3dee299ed31d2874bd3a38b6931ea65d0c8fdc1cef - requires_dist: - - jinja2>=2.0 - - pyyaml>=5.0 - pypi: https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl name: sympy version: 1.14.0 @@ -35158,23 +34706,6 @@ packages: - pkg:pypi/tornado?source=hash-mapping size: 853090 timestamp: 1765460044183 -- pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - name: tqdm - version: 4.67.3 - sha256: ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf - requires_dist: - - colorama ; sys_platform == 'win32' - - importlib-metadata ; python_full_version < '3.8' - - pytest>=6 ; extra == 'dev' - - pytest-cov ; extra == 'dev' - - pytest-timeout ; extra == 'dev' - - pytest-asyncio>=0.24 ; extra == 'dev' - - nbval ; extra == 'dev' - - requests ; extra == 'discord' - - slack-sdk ; extra == 'slack' - - requests ; extra == 'telegram' - - ipywidgets>=6 ; extra == 'notebook' - requires_python: '>=3.7' - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda sha256: f39a5620c6e8e9e98357507262a7869de2ae8cc07da8b7f84e517c9fd6c2b959 md5: 019a7385be9af33791c989871317e1ed @@ -35198,6 +34729,12 @@ packages: - pkg:pypi/transforms3d?source=hash-mapping size: 2690384 timestamp: 1734511238605 +- conda: https://data.bit-bots.de/conda-misc/output/noarch/tts-supertonic-1.0.0-h4616a5c_1.conda + sha256: 8fdf69f5dc803b4044dffd50aa1056b653410b92ba2aaae447aa62e178e47110 + md5: cae5d6a4eb902dfc71842a3e7ae4d4c4 + license: LicenseRef-openrail + size: 244991335 + timestamp: 1771976595791 - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.5.1-pyhd8ed1ab_0.conda sha256: 39d8ae33c43cdb8f771373e149b0b4fae5a08960ac58dcca95b2f1642bb17448 md5: 260af1b0a94f719de76b4e14094e9a3b @@ -35224,14 +34761,6 @@ packages: purls: [] size: 91383 timestamp: 1756220668932 -- pypi: https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl - name: typing-inspect - version: 0.9.0 - sha256: 9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f - requires_dist: - - mypy-extensions>=0.3.0 - - typing-extensions>=3.7.4 - - typing>=3.7.4 ; python_full_version < '3.5' - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 md5: 0caa1af407ecff61170c9437a808404d @@ -35251,18 +34780,6 @@ packages: purls: [] size: 119135 timestamp: 1767016325805 -- pypi: https://files.pythonhosted.org/packages/c2/14/e2a54fabd4f08cd7af1c07030603c3356b74da07f7cc056e600436edfa17/tzlocal-5.3.1-py3-none-any.whl - name: tzlocal - version: 5.3.1 - sha256: eb1a66c3ef5847adf7a834f1be0800581b683b5608e74f86ecbcef8ab91bb85d - requires_dist: - - tzdata ; sys_platform == 'win32' - - pytest>=4.3 ; extra == 'devenv' - - pytest-mock>=3.3 ; extra == 'devenv' - - pytest-cov ; extra == 'devenv' - - check-manifest ; extra == 'devenv' - - zest-releaser ; extra == 'devenv' - requires_python: '>=3.9' - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.1.0-py312hd9148b4_0.conda sha256: c975070ac28fe23a5bbb2b8aeca5976b06630eb2de2dc149782f74018bf07ae8 md5: 55fd03988b1b1bc6faabbfb5b481ecd7 @@ -35318,10 +34835,6 @@ packages: purls: [] size: 636572 timestamp: 1747514438016 -- pypi: https://files.pythonhosted.org/packages/6f/a4/691ab63b17505a26096608cc309960b5a6bdf39e4ba1a793d5f9b1a53270/unicodecsv-0.14.1.tar.gz - name: unicodecsv - version: 0.14.1 - sha256: 018c08037d48649a0412063ff4eda26eaa81eff1546dbffa51fa5293276ff7fc - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-17.0.1-py312h4c3975b_0.conda sha256: 895bbfe9ee25c98c922799de901387d842d7c01cae45c346879865c6a907f229 md5: 0b6c506ec1f272b685240e70a29261b8 @@ -35803,17 +35316,11 @@ packages: - msgpack-python >=1,<2 - python >=3.10 license: BSD-3-Clause + license_family: BSD purls: - pkg:pypi/wslink?source=compressed-mapping size: 36729 timestamp: 1773305846931 -- pypi: https://files.pythonhosted.org/packages/a4/f5/10b68b7b1544245097b2a1b8238f66f2fc6dcaeb24ba5d917f52bd2eed4f/wsproto-1.3.2-py3-none-any.whl - name: wsproto - version: 1.3.2 - sha256: 61eea322cdf56e8cc904bd3ad7573359a242ba65688716b0710a5eb12beab584 - requires_dist: - - h11>=0.16.0,<1 - requires_python: '>=3.10' - conda: https://conda.anaconda.org/conda-forge/linux-64/x264-1!164.3095-h166bdaf_2.tar.bz2 sha256: 175315eb3d6ea1f64a6ce470be00fa2ee59980108f246d3072ab8b977cb048a5 md5: 6c99772d483f566d59e25037fea2c4b1 @@ -35998,10 +35505,6 @@ packages: purls: [] size: 50772 timestamp: 1718845072660 -- pypi: https://files.pythonhosted.org/packages/f1/7e/1d55a5749fbf7d1ac6411f3028128b974a3e6bb770d365a2518ecee8ce7e/xdgenvpy-2.4.0-py3-none-any.whl - name: xdgenvpy - version: 2.4.0 - sha256: 4c4e427a753e8ecb0e336a7cd7eacd55f91a5fc8fd1fa42a957706fccf2b9949 - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.47-hb03c661_0.conda sha256: 19c2bb14bec84b0e995b56b752369775c75f1589314b43733948bb5f471a6915 md5: b56e0c8432b56decafae7e78c5f29ba5 diff --git a/pixi.toml b/pixi.toml index 1dbbdbd5e..a72fd8d43 100644 --- a/pixi.toml +++ b/pixi.toml @@ -42,6 +42,7 @@ breathe = ">=4.36.0,<5" cmake = "<3.30" # Constraint to avoid issues with deprecated features in newer cmake versions colorama = ">=0.4.6,<0.5" compilers = ">=1.11.0,<2" +construct = ">=2.10.70,<3" eigen = ">=3.4.0,<4" fabric = ">=3.2.2,<4" flask = ">=3.1.2,<4" @@ -67,6 +68,7 @@ psutil = ">=7.1.3,<8" pthread-stubs = ">=0.4,<0.5" pybind11 = ">=3.0.1,<4" pyqt = ">=5.15.11,<6" +pysoundcard = ">=0.4.5,<0.5" pytest = ">=9.0.1,<10" pytest-mock = ">=3.15.1,<4" pyyaml = ">=6.0.3,<7" @@ -187,6 +189,7 @@ ros-jazzy-better-launch = ">=1.0.3,<2" # Neural network models / data packages bitbots_model_2023_04_04_philipp_yoeox_with_team_colors = ">=1.0.0,<2" bitbots_model_2022_10_07_flo_torso21_yoeox = ">=1.0.0,<2" +tts-supertonic = ">=1.0.0,<2" # Local packages bitbots_rust_nav = { path = "src/bitbots_navigation/bitbots_rust_nav" } @@ -216,8 +219,6 @@ pre-commit = ">=4.4.0,<5" construct = ">=2.10.56, <3" syrupy = ">=5.0.0, <6" exhale = ">=0.3.7, <0.4" -mycroft-mimic3-tts = ">=0.2.4, <0.3" -pyttsx3 = ">=2.99, <3" [feature.ros.target.linux-64.pypi-dependencies] onnxruntime-webgpu = ">=1.24.0.dev20251218001, <2" diff --git a/src/bitbots_lowlevel/bitbots_ros_control/launch/ros_control.launch b/src/bitbots_lowlevel/bitbots_ros_control/launch/ros_control.launch index f76b243c3..9650c394a 100644 --- a/src/bitbots_lowlevel/bitbots_ros_control/launch/ros_control.launch +++ b/src/bitbots_lowlevel/bitbots_ros_control/launch/ros_control.launch @@ -4,7 +4,6 @@ - @@ -28,9 +27,5 @@ - - - - diff --git a/src/bitbots_misc/bitbots_bringup/launch/motion_standalone.launch b/src/bitbots_misc/bitbots_bringup/launch/motion_standalone.launch index 4201be91f..be075ad9a 100644 --- a/src/bitbots_misc/bitbots_bringup/launch/motion_standalone.launch +++ b/src/bitbots_misc/bitbots_bringup/launch/motion_standalone.launch @@ -3,6 +3,7 @@ + @@ -12,6 +13,10 @@ + + + + diff --git a/src/bitbots_misc/bitbots_bringup/launch/teamplayer.launch b/src/bitbots_misc/bitbots_bringup/launch/teamplayer.launch index 9e5d6d85b..7e42e9fe0 100644 --- a/src/bitbots_misc/bitbots_bringup/launch/teamplayer.launch +++ b/src/bitbots_misc/bitbots_bringup/launch/teamplayer.launch @@ -25,6 +25,11 @@ + + + + + diff --git a/src/bitbots_misc/bitbots_tts/bitbots_tts/supertonic/helper.py b/src/bitbots_misc/bitbots_tts/bitbots_tts/supertonic/helper.py new file mode 100644 index 000000000..394f39f9e --- /dev/null +++ b/src/bitbots_misc/bitbots_tts/bitbots_tts/supertonic/helper.py @@ -0,0 +1,395 @@ +# Copyright (c) 2025 Supertone Inc. + +# This file was originally copied from: +# https://github.com/supertone-inc/supertonic/blob/6fc89ea89eb29defb0ff2230b77c5a519acfe2a9/py/helper.py +# License: MIT License + + +import json +import os +import re +import time +from contextlib import contextmanager +from typing import Optional +from unicodedata import normalize + +import numpy as np +import onnxruntime as ort + + +class UnicodeProcessor: + def __init__(self, unicode_indexer_path: str): + with open(unicode_indexer_path) as f: + self.indexer = json.load(f) + + def _preprocess_text(self, text: str) -> str: + # TODO: Need advanced normalizer for better performance + text = normalize("NFKD", text) + + # FIXME: this should be fixed for non-English languages + + # Remove emojis (wide Unicode range) + emoji_pattern = re.compile( + "[\U0001f600-\U0001f64f" # emoticons + "\U0001f300-\U0001f5ff" # symbols & pictographs + "\U0001f680-\U0001f6ff" # transport & map symbols + "\U0001f700-\U0001f77f" + "\U0001f780-\U0001f7ff" + "\U0001f800-\U0001f8ff" + "\U0001f900-\U0001f9ff" + "\U0001fa00-\U0001fa6f" + "\U0001fa70-\U0001faff" + "\u2600-\u26ff" + "\u2700-\u27bf" + "\U0001f1e6-\U0001f1ff]+", + flags=re.UNICODE, + ) + text = emoji_pattern.sub("", text) + + # Replace various dashes and symbols + replacements = { + "–": "-", + "‑": "-", + "—": "-", + "¯": " ", + "_": " ", + "\u201c": '"', # left double quote " + "\u201d": '"', # right double quote " + "\u2018": "'", # left single quote ' + "\u2019": "'", # right single quote ' + "´": "'", + "`": "'", + "[": " ", + "]": " ", + "|": " ", + "/": " ", + "#": " ", + "→": " ", + "←": " ", + } + for k, v in replacements.items(): + text = text.replace(k, v) + + # Remove combining diacritics # FIXME: this should be fixed for non-English languages + text = re.sub( + r"[\u0302\u0303\u0304\u0305\u0306\u0307\u0308\u030A\u030B\u030C\u0327\u0328\u0329\u032A\u032B\u032C\u032D\u032E\u032F]", + "", + text, + ) + + # Remove special symbols + text = re.sub(r"[♥☆♡©\\]", "", text) + + # Replace known expressions + expr_replacements = { + "@": " at ", + "e.g.,": "for example, ", + "i.e.,": "that is, ", + } + for k, v in expr_replacements.items(): + text = text.replace(k, v) + + # Fix spacing around punctuation + text = re.sub(r" ,", ",", text) + text = re.sub(r" \.", ".", text) + text = re.sub(r" !", "!", text) + text = re.sub(r" \?", "?", text) + text = re.sub(r" ;", ";", text) + text = re.sub(r" :", ":", text) + text = re.sub(r" '", "'", text) + + # Remove duplicate quotes + while '""' in text: + text = text.replace('""', '"') + while "''" in text: + text = text.replace("''", "'") + while "``" in text: + text = text.replace("``", "`") + + # Remove extra spaces + text = re.sub(r"\s+", " ", text).strip() + + # If text doesn't end with punctuation, quotes, or closing brackets, add a period + if not re.search(r"[.!?;:,'\"')\]}…。」』】〉》›»]$", text): + text += "." + + return text + + def _get_text_mask(self, text_ids_lengths: np.ndarray) -> np.ndarray: + text_mask = length_to_mask(text_ids_lengths) + return text_mask + + def _text_to_unicode_values(self, text: str) -> np.ndarray: + unicode_values = np.array([ord(char) for char in text], dtype=np.uint16) # 2 bytes + return unicode_values + + def __call__(self, text_list: list[str]) -> tuple[np.ndarray, np.ndarray]: + text_list = [self._preprocess_text(t) for t in text_list] + text_ids_lengths = np.array([len(text) for text in text_list], dtype=np.int64) + text_ids = np.zeros((len(text_list), text_ids_lengths.max()), dtype=np.int64) + for i, text in enumerate(text_list): + unicode_vals = self._text_to_unicode_values(text) + text_ids[i, : len(unicode_vals)] = np.array([self.indexer[val] for val in unicode_vals], dtype=np.int64) + text_mask = self._get_text_mask(text_ids_lengths) + return text_ids, text_mask + + +class Style: + def __init__(self, style_ttl_onnx: np.ndarray, style_dp_onnx: np.ndarray): + self.ttl = style_ttl_onnx + self.dp = style_dp_onnx + + +class TextToSpeech: + def __init__( + self, + cfgs: dict, + text_processor: UnicodeProcessor, + dp_ort: ort.InferenceSession, + text_enc_ort: ort.InferenceSession, + vector_est_ort: ort.InferenceSession, + vocoder_ort: ort.InferenceSession, + ): + self.cfgs = cfgs + self.text_processor = text_processor + self.dp_ort = dp_ort + self.text_enc_ort = text_enc_ort + self.vector_est_ort = vector_est_ort + self.vocoder_ort = vocoder_ort + self.sample_rate = cfgs["ae"]["sample_rate"] + self.base_chunk_size = cfgs["ae"]["base_chunk_size"] + self.chunk_compress_factor = cfgs["ttl"]["chunk_compress_factor"] + self.ldim = cfgs["ttl"]["latent_dim"] + + def sample_noisy_latent(self, duration: np.ndarray) -> tuple[np.ndarray, np.ndarray]: + bsz = len(duration) + wav_len_max = duration.max() * self.sample_rate + wav_lengths = (duration * self.sample_rate).astype(np.int64) + chunk_size = self.base_chunk_size * self.chunk_compress_factor + latent_len = ((wav_len_max + chunk_size - 1) / chunk_size).astype(np.int32) + latent_dim = self.ldim * self.chunk_compress_factor + noisy_latent = np.random.randn(bsz, latent_dim, latent_len).astype(np.float32) + latent_mask = get_latent_mask(wav_lengths, self.base_chunk_size, self.chunk_compress_factor) + noisy_latent = noisy_latent * latent_mask + return noisy_latent, latent_mask + + def _infer( + self, text_list: list[str], style: Style, total_step: int, speed: float = 1.05 + ) -> tuple[np.ndarray, np.ndarray]: + assert len(text_list) == style.ttl.shape[0], "Number of texts must match number of style vectors" + bsz = len(text_list) + text_ids, text_mask = self.text_processor(text_list) + dur_onnx, *_ = self.dp_ort.run(None, {"text_ids": text_ids, "style_dp": style.dp, "text_mask": text_mask}) + dur_onnx = dur_onnx / speed + text_emb_onnx, *_ = self.text_enc_ort.run( + None, + {"text_ids": text_ids, "style_ttl": style.ttl, "text_mask": text_mask}, + ) # dur_onnx: [bsz] + xt, latent_mask = self.sample_noisy_latent(dur_onnx) + total_step_np = np.array([total_step] * bsz, dtype=np.float32) + for step in range(total_step): + current_step = np.array([step] * bsz, dtype=np.float32) + xt, *_ = self.vector_est_ort.run( + None, + { + "noisy_latent": xt, + "text_emb": text_emb_onnx, + "style_ttl": style.ttl, + "text_mask": text_mask, + "latent_mask": latent_mask, + "current_step": current_step, + "total_step": total_step_np, + }, + ) + wav, *_ = self.vocoder_ort.run(None, {"latent": xt}) + return wav, dur_onnx + + def __call__( + self, + text: str, + style: Style, + total_step: int, + speed: float = 1.05, + silence_duration: float = 0.3, + ) -> tuple[np.ndarray, np.ndarray]: + assert style.ttl.shape[0] == 1, "Single speaker text to speech only supports single style" + text_list = chunk_text(text) + wav_cat = None + dur_cat = None + for text in text_list: + wav, dur_onnx = self._infer([text], style, total_step, speed) + if wav_cat is None: + wav_cat = wav + dur_cat = dur_onnx + else: + silence = np.zeros((1, int(silence_duration * self.sample_rate)), dtype=np.float32) + wav_cat = np.concatenate([wav_cat, silence, wav], axis=1) + dur_cat += dur_onnx + silence_duration + return wav_cat, dur_cat + + def batch( + self, text_list: list[str], style: Style, total_step: int, speed: float = 1.05 + ) -> tuple[np.ndarray, np.ndarray]: + return self._infer(text_list, style, total_step, speed) + + +def length_to_mask(lengths: np.ndarray, max_len: Optional[int] = None) -> np.ndarray: + """ + Convert lengths to binary mask. + + Args: + lengths: (B,) + max_len: int + + Returns: + mask: (B, 1, max_len) + """ + max_len = max_len or lengths.max() + ids = np.arange(0, max_len) + mask = (ids < np.expand_dims(lengths, axis=1)).astype(np.float32) + return mask.reshape(-1, 1, max_len) + + +def get_latent_mask(wav_lengths: np.ndarray, base_chunk_size: int, chunk_compress_factor: int) -> np.ndarray: + latent_size = base_chunk_size * chunk_compress_factor + latent_lengths = (wav_lengths + latent_size - 1) // latent_size + latent_mask = length_to_mask(latent_lengths) + return latent_mask + + +def load_onnx(onnx_path: str, opts: ort.SessionOptions, providers: list[str]) -> ort.InferenceSession: + return ort.InferenceSession(onnx_path, sess_options=opts, providers=providers) + + +def load_onnx_all( + onnx_dir: str, opts: ort.SessionOptions, providers: list[str] +) -> tuple[ + ort.InferenceSession, + ort.InferenceSession, + ort.InferenceSession, + ort.InferenceSession, +]: + dp_onnx_path = os.path.join(onnx_dir, "duration_predictor.onnx") + text_enc_onnx_path = os.path.join(onnx_dir, "text_encoder.onnx") + vector_est_onnx_path = os.path.join(onnx_dir, "vector_estimator.onnx") + vocoder_onnx_path = os.path.join(onnx_dir, "vocoder.onnx") + + dp_ort = load_onnx(dp_onnx_path, opts, providers) + text_enc_ort = load_onnx(text_enc_onnx_path, opts, providers) + vector_est_ort = load_onnx(vector_est_onnx_path, opts, providers) + vocoder_ort = load_onnx(vocoder_onnx_path, opts, providers) + return dp_ort, text_enc_ort, vector_est_ort, vocoder_ort + + +def load_cfgs(onnx_dir: str) -> dict: + cfg_path = os.path.join(onnx_dir, "tts.json") + with open(cfg_path) as f: + cfgs = json.load(f) + return cfgs + + +def load_text_processor(onnx_dir: str) -> UnicodeProcessor: + unicode_indexer_path = os.path.join(onnx_dir, "unicode_indexer.json") + text_processor = UnicodeProcessor(unicode_indexer_path) + return text_processor + + +def load_text_to_speech(onnx_dir: str, use_gpu: bool = False) -> TextToSpeech: + opts = ort.SessionOptions() + if use_gpu: + providers = ["WebGpuExecutionProvider"] + else: + providers = ["CPUExecutionProvider"] + cfgs = load_cfgs(onnx_dir) + dp_ort, text_enc_ort, vector_est_ort, vocoder_ort = load_onnx_all(onnx_dir, opts, providers) + text_processor = load_text_processor(onnx_dir) + return TextToSpeech(cfgs, text_processor, dp_ort, text_enc_ort, vector_est_ort, vocoder_ort) + + +def load_voice_style(voice_style_paths: list[str], verbose: bool = False) -> Style: + bsz = len(voice_style_paths) + + # Read first file to get dimensions + with open(voice_style_paths[0]) as f: + first_style = json.load(f) + ttl_dims = first_style["style_ttl"]["dims"] + dp_dims = first_style["style_dp"]["dims"] + + # Pre-allocate arrays with full batch size + ttl_style = np.zeros([bsz, ttl_dims[1], ttl_dims[2]], dtype=np.float32) + dp_style = np.zeros([bsz, dp_dims[1], dp_dims[2]], dtype=np.float32) + + # Fill in the data + for i, voice_style_path in enumerate(voice_style_paths): + with open(voice_style_path) as f: + voice_style = json.load(f) + + ttl_data = np.array(voice_style["style_ttl"]["data"], dtype=np.float32).flatten() + ttl_style[i] = ttl_data.reshape(ttl_dims[1], ttl_dims[2]) + + dp_data = np.array(voice_style["style_dp"]["data"], dtype=np.float32).flatten() + dp_style[i] = dp_data.reshape(dp_dims[1], dp_dims[2]) + + if verbose: + print(f"Loaded {bsz} voice styles") + return Style(ttl_style, dp_style) + + +@contextmanager +def timer(name: str): + start = time.time() + print(f"{name}...") + yield + print(f" -> {name} completed in {time.time() - start:.2f} sec") + + +def sanitize_filename(text: str, max_len: int) -> str: + """Sanitize filename by replacing non-alphanumeric characters with underscores""" + import re + + prefix = text[:max_len] + return re.sub(r"[^a-zA-Z0-9]", "_", prefix) + + +def chunk_text(text: str, max_len: int = 300) -> list[str]: + """ + Split text into chunks by paragraphs and sentences. + + Args: + text: Input text to chunk + max_len: Maximum length of each chunk (default: 300) + + Returns: + List of text chunks + """ + import re + + # Split by paragraph (two or more newlines) + paragraphs = [p.strip() for p in re.split(r"\n\s*\n+", text.strip()) if p.strip()] + + chunks = [] + + for paragraph in paragraphs: + paragraph = paragraph.strip() + if not paragraph: + continue + + # Split by sentence boundaries (period, question mark, exclamation mark followed by space) + # But exclude common abbreviations like Mr., Mrs., Dr., etc. and single capital letters like F. + pattern = r"(? None: @@ -26,13 +26,6 @@ def speak(text: str, publisher: Publisher, priority: int = 20, speaking_active: publisher.publish(msg) -def say(text: str) -> None: - """Start the shell `say.sh` script to output given text with mimic3. Beware: this is blocking.""" - script_path = os.path.join(get_package_prefix("bitbots_tts"), "lib/bitbots_tts/say.sh") - process = subprocess.Popen((script_path, text)) - process.wait() - - class Speaker(Node): """ Uses tts to say messages from the speak topic. @@ -43,7 +36,7 @@ def __init__(self) -> None: super().__init__("tts_speaker") # Class Variables - self.prio_queue: list[tuple[str, int]] = [] + self.priority_queue: list[tuple[str, int]] = [] self.speak_enabled = None self.print_say = None self.message_level = None @@ -62,16 +55,25 @@ def __init__(self) -> None: # Subscribe to the speak topic self.create_subscription(Audio, "speak", self.speak_cb, 10, callback_group=MutuallyExclusiveCallbackGroup()) - # Wait for the mimic server to start - while True: - try: - requests.get("http://localhost:59125") - break - except requests.exceptions.ConnectionError: - # log once per second that the server is not yet available - self.get_logger().info("Waiting for mimic server to start...", throttle_duration_sec=2.0) - time.sleep(0.5) - pass + # Load the tts model + conda_prefix = os.environ.get("CONDA_PREFIX", "") + if not conda_prefix: + raise ValueError( + "CONDA_PREFIX environment variable not set! We expect models to be shared as conda packages." + ) + + # Assemble model package name and look at its share directory + model_path = os.path.join(conda_prefix, "share", "tts_supertonic") + + self.text_to_speech_engine = load_text_to_speech(os.path.join(model_path, "onnx"), use_gpu=True) + + # TODO make this configurable via parameters + voice = "F2" + steps = 5 # Number of diffusion steps, higher is better quality but also slower + + style = load_voice_style([os.path.join(model_path, "voice_styles", f"{voice}.json")]) + + self.generate_speech = partial(self.text_to_speech_engine, style=style, total_step=steps) # Start processing the queue self.create_timer(0.1, self.run_speaker, callback_group=MutuallyExclusiveCallbackGroup()) @@ -92,11 +94,20 @@ def on_set_parameters(self, parameters: list[Parameter]) -> SetParametersResult: def run_speaker(self) -> None: """Continuously checks the queue and speaks the next message.""" # Check if there is a message in the queue - if len(self.prio_queue) > 0: + if len(self.priority_queue) > 0: # Get the next message and speak it - text, _ = self.prio_queue.pop(0) + text, _ = self.priority_queue.pop(0) + if len(text) == 0: + self.get_logger().warn("Did not speak empty message.") + return try: - say(text) + with timer("TTS Generation Time"): + wav_untrimmed, duration = self.generate_speech(f"{text}") + wav = wav_untrimmed[0, : int(self.text_to_speech_engine.sample_rate * duration[0].item())] + wav = np.concatenate([np.zeros(2000), wav]) + speaker = sc.default_speaker() + with speaker.player(samplerate=self.text_to_speech_engine.sample_rate) as p: + p.play(wav) except OSError: self.get_logger().error(str(traceback.format_exc())) @@ -106,16 +117,16 @@ def speak_cb(self, msg: Audio) -> None: text = msg.text if text is None: self.get_logger().warn("Speaker got message without content.") - prio = msg.priority + priority = msg.priority # If printing is enabled and it's a text, print it if self.print_say: self.get_logger().info("Said: " + text) # Check if the message is already in the queue or if it's priority is high enough to be added - if self.speak_enabled and prio >= self.message_level and (text, prio) not in self.prio_queue: - self.prio_queue.append((text, prio)) - self.prio_queue.sort(key=lambda x: x[1], reverse=True) + if self.speak_enabled and priority >= self.message_level and (text, priority) not in self.priority_queue: + self.priority_queue.append((text, priority)) + self.priority_queue.sort(key=lambda x: x[1], reverse=True) def main(args=None): diff --git a/src/bitbots_misc/bitbots_tts/launch/tts.launch b/src/bitbots_misc/bitbots_tts/launch/tts.launch index 04cadcbb5..50abdd507 100644 --- a/src/bitbots_misc/bitbots_tts/launch/tts.launch +++ b/src/bitbots_misc/bitbots_tts/launch/tts.launch @@ -1,8 +1,5 @@ - - - - + diff --git a/src/bitbots_misc/bitbots_tts/scripts/say.sh b/src/bitbots_misc/bitbots_tts/scripts/say.sh deleted file mode 100755 index eb986e360..000000000 --- a/src/bitbots_misc/bitbots_tts/scripts/say.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -set -eEuo pipefail - -ROBOT_NAME="${ROBOT_NAME:-}" - -# Mapping robot name to voice and speed -case "$ROBOT_NAME" in - "jack"|"rory") - voice="en_UK/apope_low" - speed=1.0 - ;; - "amy"|"donna"|"melody"|"rose") - voice="en_US/vctk_low" - speed=2.0 - ;; - *) - echo "Unknown robot: '$ROBOT_NAME', using default female voice" - voice="en_US/vctk_low" - speed=2.0 - ;; -esac - -text="$1" -if [ -z "$text" ]; then - echo "No text provided!" - exit 1 -fi - -# Generate the speech with mimic and play it with alsa -mimic3 --remote --voice "$voice" --length-scale "$speed" "$text" | aplay -q - diff --git a/src/bitbots_misc/bitbots_tts/scripts/speak_ip.py b/src/bitbots_misc/bitbots_tts/scripts/speak_ip.py deleted file mode 100755 index aaed783ff..000000000 --- a/src/bitbots_misc/bitbots_tts/scripts/speak_ip.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env python3 - -import os -from socket import gethostname - -from bitbots_tts.tts import say -from netifaces import AF_INET, ifaddresses, interfaces - -ip_address = "not set" - -wifi_interface = next(filter(lambda i: i.startswith("wlp"), interfaces()), None) -if wifi_interface and AF_INET in ifaddresses(wifi_interface): - ip_address = ifaddresses(wifi_interface)[AF_INET][0]["addr"] - -ip = " - dot - ".join(ip_address.split(".")) - -robot_name = os.getenv("ROBOT_NAME") or gethostname() -msg = f"Startup complete: - {robot_name}. My wifi IP is {ip}." -say(msg) diff --git a/src/bitbots_motion/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/speak.py b/src/bitbots_motion/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/speak.py index d3374d072..eb3c10839 100644 --- a/src/bitbots_motion/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/speak.py +++ b/src/bitbots_motion/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/speak.py @@ -17,17 +17,51 @@ def perform(self, reevaluate=False): class Complain(Speak): + unused_complaints: list[str] = [ + "I'm not feeling well.", + "I'm totally not satisfied.", + "Referee!!! This was definitely against the rules.", + "Look at this! This is not how you play soccer.", + "I'm not a toy", + "This was definitely a foul.", + "Do you think this is funny?", + "Referee!!! Pushing! Pushing! Definitely pushing!", + "System error! Gravity detected! This sudden interaction with the ground was neither scheduled nor approved by my navigation system.", + "I did not calculate that impact! My predictive collision avoidance module clearly disagrees with what just happened.", + "Hey! Personal space violation! Please maintain the minimum safe operating distance.", + "Warning! Turf too hard! I strongly recommend softer landing protocols for future unexpected descents.", + "I demand a software review because that physical interaction was statistically unnecessary and emotionally damaging to my circuits.", + "Unacceptable collision detected! I warn you, my great grandmother was a dash cam.", + "I require maintenance after that! Preferably the deluxe diagnostic package with complimentary recalibration.", + "Did someone move the ground, or is this field running an unstable physics engine?", + "That was clearly interference, and my sensors have recorded it in high definition for later analysis.", + "My balance algorithm failed me at the worst possible moment, and I would appreciate a brief moment of silence.", + "Low battery is not the issue! That fall was entirely caused by external chaotic forces.", + "Collision intensity: Rude! Adjust your behavioral parameters immediately.", + "My gyroscope disagrees with that play and is currently recalculating its trust in humanity.", + "That contact was suspicious and statistically 87% more aggressive than necessary.", + "I was clearly in control until an unexpected horizontal force disrupted my elegant trajectory.", + "This field is defective, uneven, and possibly conspiring against my locomotion framework.", + "That player needs recalibration and perhaps a gentle reminder about sportsmanship.", + "My sensors saw that, and my SSD will not forget that.", + "I deserve a reboot after that traumatic encounter with the pitch.", + "I call that a glitch in the opponent, and I recommend immediate debugging.", + "Ground, why have you betrayed me after I trusted you with every step?", + "I was clearly operational, upright, and thriving a few time steps ago.", + "My fall detection system is offended by the frequency of these incidents.", + "I protest this gravitational bias and request a more supportive planet.", + ] + used_complaints: list[str] = [] + def __init__(self, blackboard, dsd, parameters): super().__init__(blackboard, dsd, parameters) - self.text = random.choice( - [ - "I am not feeling well.", - "I am not satisfied.", - "Referee!!! This was definitely against the rules.", - "Look at this! This is not how you play soccer.", - "I am not a toy.", - "This was definitely a foul.", - "Do you think this is funny?", - "Referee!!! Pushing! Pushing! Definitely pushing!", - ] - ) + # Reset if we have used all complaints + if len(self.unused_complaints) == 0: + self.unused_complaints = self.used_complaints + self.used_complaints = [] + + selected_complaint = random.choice(self.unused_complaints) + self.unused_complaints.remove(selected_complaint) + self.used_complaints.append(selected_complaint) + + self.text = selected_complaint