From 45550faa12359352b9ff43e325efec62a1fed46e Mon Sep 17 00:00:00 2001 From: qingen Date: Sun, 27 Mar 2022 00:08:32 +0800 Subject: [PATCH 1/2] [vec][search] update to paddlespeech model test=doc #1608 --- demos/audio_searching/README.md | 118 ++++++++++++++++++------- demos/audio_searching/README_cn.md | 115 +++++++++++++++++------- demos/audio_searching/requirements.txt | 3 +- demos/audio_searching/src/config.py | 2 +- demos/audio_searching/src/encode.py | 16 ++-- demos/audio_searching/src/test_main.py | 16 ++-- paddlespeech/cli/vector/infer.py | 2 +- 7 files changed, 188 insertions(+), 84 deletions(-) diff --git a/demos/audio_searching/README.md b/demos/audio_searching/README.md index 2bce93137d9..c0df12ece28 100644 --- a/demos/audio_searching/README.md +++ b/demos/audio_searching/README.md @@ -3,20 +3,25 @@ # Audio Searching ## Introduction -As the Internet continues to evolve, unstructured data such as emails, social media photos, live videos, and customer service voice calls have become increasingly common. If we want to process the data on a computer, we need to use embedding technology to transform the data into vector and store, index, and query it +As the Internet continues to evolve, unstructured data such as emails, social media photos, live videos, and customer service voice calls have become increasingly common. If we want to process the data on a computer, we need to use embedding technology to transform the data into vector and store, index, and query it. -However, when there is a large amount of data, such as hundreds of millions of audio tracks, it is more difficult to do a similarity search. The exhaustive method is feasible, but very time consuming. For this scenario, this demo will introduce how to build an audio similarity retrieval system using the open source vector database Milvus +However, when there is a large amount of data, such as hundreds of millions of audio tracks, it is more difficult to do a similarity search. The exhaustive method is feasible, but very time consuming. For this scenario, this demo will introduce how to build an audio similarity retrieval system using the open source vector database Milvus. -Audio retrieval (speech, music, speaker, etc.) enables querying and finding similar sounds (or the same speaker) in a large amount of audio data. The audio similarity retrieval system can be used to identify similar sound effects, minimize intellectual property infringement, quickly retrieve the voice print library, and help enterprises control fraud and identity theft. Audio retrieval also plays an important role in the classification and statistical analysis of audio data +Audio retrieval (speech, music, speaker, etc.) enables querying and finding similar sounds (or the same speaker) in a large amount of audio data. The audio similarity retrieval system can be used to identify similar sound effects, minimize intellectual property infringement, quickly retrieve the voice print library, and help enterprises control fraud and identity theft. Audio retrieval also plays an important role in the classification and statistical analysis of audio data. -In this demo, you will learn how to build an audio retrieval system to retrieve similar sound snippets. The uploaded audio clips are converted into vector data using paddlespeech-based pre-training models (audio classification model, speaker recognition model, etc.) and stored in Milvus. Milvus automatically generates a unique ID for each vector, then stores the ID and the corresponding audio information (audio ID, audio speaker ID, etc.) in MySQL to complete the library construction. During retrieval, users upload test audio to obtain vector, and then conduct vector similarity search in Milvus. The retrieval result returned by Milvus is vector ID, and the corresponding audio information can be queried in MySQL by ID +In this demo, you will learn how to build an audio retrieval system to retrieve similar sound snippets. The uploaded audio clips are converted into vector data using paddlespeech-based pre-training models (audio classification model, speaker recognition model, etc.) and stored in Milvus. Milvus automatically generates a unique ID for each vector, then stores the ID and the corresponding audio information (audio ID, audio speaker ID, etc.) in MySQL to complete the library construction. During retrieval, users upload test audio to obtain vector, and then conduct vector similarity search in Milvus.The retrieval result returned by Milvus is vector ID, and the corresponding audio information can be queried in MySQL by ID. ![Workflow of an audio searching system](./img/audio_searching.png) -Note:this demo uses the [CN-Celeb](http://openslr.org/82/) dataset of at least 650,000 audio entries and 3000 speakers to build the audio vector library, which is then retrieved using a preset distance calculation. The dataset can also use other, Adjust as needed, e.g. Librispeech, VoxCeleb, UrbanSound, GloVe, MNIST, etc +Note:this demo uses the [CN-Celeb](http://openslr.org/82/) dataset of at least 650,000 audio entries and 3000 speakers to build the audio vector library, which is then retrieved using a preset distance calculation. The dataset can also use other, Adjust as needed, e.g. Librispeech, VoxCeleb, UrbanSound, GloVe, MNIST, etc. ## Usage -### 1. Prepare MySQL and Milvus services by docker-compose +### 1. Prepare PaddleSpeech +Audio vector extraction requires PaddleSpeech training model, so please make sure that PaddleSpeech has been installed before running. Specific installation steps: See [installation](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/install.md). + +You can choose one way from easy, meduim and hard to install paddlespeech. + +### 2. Prepare MySQL and Milvus services by docker-compose The audio similarity search system requires Milvus, MySQL services. We can start these containers with one click through [docker-compose.yaml](./docker-compose.yaml), so please make sure you have [installed Docker Engine](https://docs.docker.com/engine/install/) and [Docker Compose](https://docs.docker.com/compose/install/) before running. then ```bash @@ -45,7 +50,7 @@ ffce340b3790 minio/minio:RELEASE.2020-12-03T00-03-10Z "/usr/bin/docker-ent…" 15c84a506754 qingen1/paddlespeech-audio-search-client:2.3 "/bin/bash -c '/usr/…" 22 hours ago Up 22 hours (healthy) 0.0.0.0:8068->80/tcp audio-webclient ``` -### 2. Start API Server +### 3. Start API Server Then to start the system server, and it provides HTTP backend services. - Install the Python packages @@ -75,73 +80,120 @@ Then to start the system server, and it provides HTTP backend services. Then start the server with Fastapi. ```bash - export PYTHONPATH=$PYTHONPATH:./src + export PYTHONPATH=$PYTHONPATH:./src:../../paddleaudio python src/main.py ``` Then you will see the Application is started: ```bash - INFO: Started server process [3949] - 2022-03-07 17:39:14,864 | INFO | server.py | serve | 75 | Started server process [3949] + INFO: Started server process [13352] + 2022-03-26 22:45:30,838 | INFO | server.py | serve | 75 | Started server process [13352] INFO: Waiting for application startup. - 2022-03-07 17:39:14,865 | INFO | on.py | startup | 45 | Waiting for application startup. + 2022-03-26 22:45:30,839 | INFO | on.py | startup | 45 | Waiting for application startup. INFO: Application startup complete. - 2022-03-07 17:39:14,866 | INFO | on.py | startup | 59 | Application startup complete. + 2022-03-26 22:45:30,839 | INFO | on.py | startup | 59 | Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8002 (Press CTRL+C to quit) - 2022-03-07 17:39:14,867 | INFO | server.py | _log_started_message | 206 | Uvicorn running on http://0.0.0.0:8002 (Press CTRL+C to quit) + 2022-03-26 22:45:30,840 | INFO | server.py | _log_started_message | 206 | Uvicorn running on http://0.0.0.0:8002 (Press CTRL+C to quit) ``` -### 3. Usage +### 4. Usage - Prepare data ```bash wget -c https://www.openslr.org/resources/82/cn-celeb_v2.tar.gz && tar -xvf cn-celeb_v2.tar.gz ``` Note: If you want to build a quick demo, you can use ./src/test_main.py:download_audio_data function, it downloads 20 audio files , Subsequent results show this collection as an example - - scripts test (recommend!) +- Scripts test (Recommended) - The internal process is downloading data, loading the Paddlespeech model, extracting embedding, storing library, retrieving and deleting library + The internal process is downloading data, loading the paddlespeech model, extracting embedding, storing library, retrieving and deleting library ```bash python ./src/test_main.py ``` Output: ```bash - Checkpoint path: %your model path% + Downloading https://paddlespeech.bj.bcebos.com/vector/audio/example_audio.tar.gz ... + ... + Unpacking ./example_audio.tar.gz ... + [2022-03-26 22:50:54,987] [ INFO] - checking the aduio file format...... + [2022-03-26 22:50:54,987] [ INFO] - The sample rate is 16000 + [2022-03-26 22:50:54,987] [ INFO] - The audio file format is right + [2022-03-26 22:50:54,988] [ INFO] - device type: cpu + [2022-03-26 22:50:54,988] [ INFO] - load the pretrained model: ecapatdnn_voxceleb12-16k + [2022-03-26 22:50:54,990] [ INFO] - Downloading sv0_ecapa_tdnn_voxceleb12_ckpt_0_1_0.tar.gz from https://paddlespeech.bj.bcebos.com/vector/voxceleb/sv0_ecapa_tdnn_voxceleb12_ckpt_0_1_0.tar.gz + ... + [2022-03-26 22:51:17,285] [ INFO] - start to dynamic import the model class + [2022-03-26 22:51:17,285] [ INFO] - model name ecapatdnn + [2022-03-26 22:51:23,864] [ INFO] - start to set the model parameters to model + [2022-03-26 22:54:08,115] [ INFO] - create the model instance success + [2022-03-26 22:54:08,116] [ INFO] - Preprocess audio file: /home/zhaoqingen/PaddleSpeech/demos/audio_ + searching/example_audio/knife_hit_iron3.wav + [2022-03-26 22:54:08,116] [ INFO] - load the audio sample points, shape is: (11012,) + [2022-03-26 22:54:08,150] [ INFO] - extract the audio feat, shape is: (80, 69) + [2022-03-26 22:54:08,152] [ INFO] - feats shape: [1, 80, 69] + [2022-03-26 22:54:08,154] [ INFO] - audio extract the feat success + [2022-03-26 22:54:08,155] [ INFO] - start to do backbone network model forward + [2022-03-26 22:54:08,155] [ INFO] - feats shape:[1, 80, 69], lengths shape: [1] + [2022-03-26 22:54:08,433] [ INFO] - embedding size: (192,) Extracting feature from audio No. 1 , 20 audios in total + [2022-03-26 22:54:08,435] [ INFO] - checking the aduio file format...... + [2022-03-26 22:54:08,435] [ INFO] - The sample rate is 16000 + [2022-03-26 22:54:08,436] [ INFO] - The audio file format is right + [2022-03-26 22:54:08,436] [ INFO] - device type: cpu + [2022-03-26 22:54:08,436] [ INFO] - Model has been initialized + [2022-03-26 22:54:08,436] [ INFO] - Preprocess audio file: /home/zhaoqingen/PaddleSpeech/demos/audio_searching/example_audio/sword_wielding.wav + [2022-03-26 22:54:08,436] [ INFO] - load the audio sample points, shape is: (6391,) + [2022-03-26 22:54:08,452] [ INFO] - extract the audio feat, shape is: (80, 40) + [2022-03-26 22:54:08,454] [ INFO] - feats shape: [1, 80, 40] + [2022-03-26 22:54:08,454] [ INFO] - audio extract the feat success + [2022-03-26 22:54:08,454] [ INFO] - start to do backbone network model forward + [2022-03-26 22:54:08,455] [ INFO] - feats shape:[1, 80, 40], lengths shape: [1] + [2022-03-26 22:54:08,633] [ INFO] - embedding size: (192,) Extracting feature from audio No. 2 , 20 audios in total ... - 2022-03-09 17:22:13,870 | INFO | main.py | load_audios | 85 | Successfully loaded data, total count: 20 - 2022-03-09 17:22:13,898 | INFO | main.py | count_audio | 147 | Successfully count the number of data! - 2022-03-09 17:22:13,918 | INFO | main.py | audio_path | 57 | Successfully load audio: ./example_audio/test.wav + 2022-03-26 22:54:15,892 | INFO | main.py | load_audios | 85 | Successfully loaded data, total count: 20 + 2022-03-26 22:54:15,908 | INFO | main.py | count_audio | 148 | Successfully count the number of data! + [2022-03-26 22:54:15,916] [ INFO] - checking the aduio file format...... + [2022-03-26 22:54:15,916] [ INFO] - The sample rate is 16000 + [2022-03-26 22:54:15,916] [ INFO] - The audio file format is right + [2022-03-26 22:54:15,916] [ INFO] - device type: cpu + [2022-03-26 22:54:15,916] [ INFO] - Model has been initialized + [2022-03-26 22:54:15,916] [ INFO] - Preprocess audio file: /home/zhaoqingen/PaddleSpeech/demos/audio_searching/example_audio/test.wav + [2022-03-26 22:54:15,917] [ INFO] - load the audio sample points, shape is: (8456,) + [2022-03-26 22:54:15,923] [ INFO] - extract the audio feat, shape is: (80, 53) + [2022-03-26 22:54:15,924] [ INFO] - feats shape: [1, 80, 53] + [2022-03-26 22:54:15,924] [ INFO] - audio extract the feat success + [2022-03-26 22:54:15,924] [ INFO] - start to do backbone network model forward + [2022-03-26 22:54:15,924] [ INFO] - feats shape:[1, 80, 53], lengths shape: [1] + [2022-03-26 22:54:16,051] [ INFO] - embedding size: (192,) ... - 2022-03-09 17:22:32,580 | INFO | main.py | search_local_audio | 131 | search result http://testserver/data?audio_path=./example_audio/test.wav, distance 0.0 - 2022-03-09 17:22:32,580 | INFO | main.py | search_local_audio | 131 | search result http://testserver/data?audio_path=./example_audio/knife_chopping.wav, distance 0.021805256605148315 - 2022-03-09 17:22:32,580 | INFO | main.py | search_local_audio | 131 | search result http://testserver/data?audio_path=./example_audio/knife_cut_into_flesh.wav, distance 0.052762262523174286 + 2022-03-26 22:54:16,086 | INFO | main.py | search_local_audio | 132 | search result http://testserver/data?audio_path=./example_audio/test.wav, score 100.0 + 2022-03-26 22:54:16,087 | INFO | main.py | search_local_audio | 132 | search result http://testserver/data?audio_path=./example_audio/knife_chopping.wav, score 29.182177782058716 + 2022-03-26 22:54:16,087 | INFO | main.py | search_local_audio | 132 | search result http://testserver/data?audio_path=./example_audio/knife_cut_into_body.wav, score 22.73637056350708 ... - 2022-03-09 17:22:32,582 | INFO | main.py | search_local_audio | 135 | Successfully searched similar audio! - 2022-03-09 17:22:33,658 | INFO | main.py | drop_tables | 159 | Successfully drop tables in Milvus and MySQL! + 2022-03-26 22:54:16,088 | INFO | main.py | search_local_audio | 136 | Successfully searched similar audio! + 2022-03-26 22:54:17,164 | INFO | main.py | drop_tables | 160 | Successfully drop tables in Milvus and MySQL! ``` -- GUI test (optional) +- GUI test (Optional) - Navigate to 127.0.0.1:8068 in your browser to access the front-end interface + Navigate to 127.0.0.1:8068 in your browser to access the front-end interface. - Note: If the browser and the service are not on the same machine, then the IP needs to be changed to the IP of the machine where the service is located, and the corresponding API_URL in docker-compose.yaml needs to be changed and the service can be restarted + Note: If the browser and the service are not on the same machine, then the IP needs to be changed to the IP of the machine where the service is located, and the corresponding API_URL in docker-compose.yaml needs to be changed, and the docker-compose.yaml file needs to be re-executed for the change to take effect. - Insert data - Download the data and decompress it to a path named /home/speech/data. Then enter /home/speech/data in the address bar of the upload page to upload the data + Download the data on the server and decompress it to a file, for example, /home/speech/data/. Then enter /home/speech/data/ in the address bar of the upload page to upload the data. ![](./img/insert.png) - Search for similar audio - Select the magnifying glass icon on the left side of the interface. Then, press the "Default Target Audio File" button and upload a .wav sound file you'd like to search. Results will be displayed + Select the magnifying glass icon on the left side of the interface. Then, press the "Default Target Audio File" button and upload a .wav sound file from the client you'd like to search. Results will be displayed. ![](./img/search.png) -### 4.Result +### 5.Result machine configuration: - OS: CentOS release 7.6 @@ -157,9 +209,9 @@ recall and elapsed time statistics are shown in the following figure: ![](./img/result.png) -The retrieval framework based on Milvus takes about 2.9 milliseconds to retrieve on the premise of 90% recall rate, and it takes about 500 milliseconds for feature extraction (testing audio takes about 5 seconds), that is, a single audio test takes about 503 milliseconds in total, which can meet most application scenarios +The retrieval framework based on Milvus takes about 2.9 milliseconds to retrieve on the premise of 90% recall rate, and it takes about 500 milliseconds for feature extraction (testing audio takes about 5 seconds), that is, a single audio test takes about 503 milliseconds in total, which can meet most application scenarios. -### 5.Pretrained Models +### 6.Pretrained Models Here is a list of pretrained models released by PaddleSpeech : diff --git a/demos/audio_searching/README_cn.md b/demos/audio_searching/README_cn.md index a4cb7312897..c851bd0f6b1 100644 --- a/demos/audio_searching/README_cn.md +++ b/demos/audio_searching/README_cn.md @@ -4,21 +4,26 @@ # 音频相似性检索 ## 介绍 -随着互联网不断发展,电子邮件、社交媒体照片、直播视频、客服语音等非结构化数据已经变得越来越普遍。如果想要使用计算机来处理这些数据,需要使用 embedding 技术将这些数据转化为向量 vector,然后进行存储、建索引、并查询 +随着互联网不断发展,电子邮件、社交媒体照片、直播视频、客服语音等非结构化数据已经变得越来越普遍。如果想要使用计算机来处理这些数据,需要使用 embedding 技术将这些数据转化为向量 vector,然后进行存储、建索引、并查询。 -但是,当数据量很大,比如上亿条音频要做相似度搜索,就比较困难了。穷举法固然可行,但非常耗时。针对这种场景,该 demo 将介绍如何使用开源向量数据库 Milvus 搭建音频相似度检索系统 +但是,当数据量很大,比如上亿条音频要做相似度搜索,就比较困难了。穷举法固然可行,但非常耗时。针对这种场景,该 demo 将介绍如何使用开源向量数据库 Milvus 搭建音频相似度检索系统。 -音频检索(如演讲、音乐、说话人等检索)实现了在海量音频数据中查询并找出相似声音(或相同说话人)片段。音频相似性检索系统可用于识别相似的音效、最大限度减少知识产权侵权等,还可以快速的检索声纹库、帮助企业控制欺诈和身份盗用等。在音频数据的分类和统计分析中,音频检索也发挥着重要作用 +音频检索(如演讲、音乐、说话人等检索)实现了在海量音频数据中查询并找出相似声音(或相同说话人)片段。音频相似性检索系统可用于识别相似的音效、最大限度减少知识产权侵权等,还可以快速的检索声纹库、帮助企业控制欺诈和身份盗用等。在音频数据的分类和统计分析中,音频检索也发挥着重要作用。 -在本 demo 中,你将学会如何构建一个音频检索系统,用来检索相似的声音片段。使用基于 PaddleSpeech 预训练模型(音频分类模型,说话人识别模型等)将上传的音频片段转换为向量数据,并存储在 Milvus 中。Milvus 自动为每个向量生成唯一的 ID,然后将 ID 和 相应的音频信息(音频id,音频的说话人id等等)存储在 MySQL,这样就完成建库的工作。用户在检索时,上传测试音频,得到向量,然后在 Milvus 中进行向量相似度搜索,Milvus 返回的检索结果为向量 ID,通过 ID 在 MySQL 内部查询相应的音频信息即可 +在本 demo 中,你将学会如何构建一个音频检索系统,用来检索相似的声音片段。使用基于 PaddleSpeech 预训练模型(音频分类模型,说话人识别模型等)将上传的音频片段转换为向量数据,并存储在 Milvus 中。Milvus 自动为每个向量生成唯一的 ID,然后将 ID 和 相应的音频信息(音频id,音频的说话人id等等)存储在 MySQL,这样就完成建库的工作。用户在检索时,上传测试音频,得到向量,然后在 Milvus 中进行向量相似度搜索,Milvus 返回的检索结果为向量 ID,通过 ID 在 MySQL 内部查询相应的音频信息即可。 ![音频检索流程图](./img/audio_searching.png) -注:该 demo 使用 [CN-Celeb](http://openslr.org/82/) 数据集,包括至少 650000 条音频,3000 个说话人,来建立音频向量库(音频特征,或音频说话人特征),然后通过预设的距离计算方式进行音频(或说话人)检索,这里面数据集也可以使用其他的,根据需要调整,如Librispeech,VoxCeleb,UrbanSound,GloVe,MNIST等 +注:该 demo 使用 [CN-Celeb](http://openslr.org/82/) 数据集,包括至少 650000 条音频,3000 个说话人,来建立音频向量库(音频特征,或音频说话人特征),然后通过预设的距离计算方式进行音频(或说话人)检索,这里面数据集也可以使用其他的,根据需要调整,如Librispeech,VoxCeleb,UrbanSound,GloVe,MNIST等。 ## 使用方法 -### 1. MySQL 和 Milvus 安装 -音频相似度搜索系统需要用到 Milvus, MySQL 服务。 我们可以通过 [docker-compose.yaml](./docker-compose.yaml) 一键启动这些容器,所以请确保在运行之前已经安装了 [Docker Engine](https://docs.docker.com/engine/install/) 和 [Docker Compose](https://docs.docker.com/compose/install/)。 即 +### 1. PaddleSpeech 安装 +音频向量的提取需要用到基于 PaddleSpeech 训练的模型,所以请确保在运行之前已经安装了 PaddleSpeech,具体安装步骤,详见[安装文档](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/install_cn.md)。 + +你可以从 easy,medium,hard 三中方式中选择一种方式安装。 + +### 2. MySQL 和 Milvus 安装 +音频相似性的检索需要用到 Milvus, MySQL 服务。 我们可以通过 [docker-compose.yaml](./docker-compose.yaml) 一键启动这些容器,所以请确保在运行之前已经安装了 [Docker Engine](https://docs.docker.com/engine/install/) 和 [Docker Compose](https://docs.docker.com/compose/install/)。 即 ```bash docker-compose -f docker-compose.yaml up -d @@ -47,8 +52,8 @@ ffce340b3790 minio/minio:RELEASE.2020-12-03T00-03-10Z "/usr/bin/docker-ent…" ``` -### 2. 配置并启动 API 服务 -启动系统服务程序,它会提供基于 Http 后端服务 +### 3. 配置并启动 API 服务 +启动系统服务程序,它会提供基于 HTTP 后端服务。 - 安装服务依赖的 python 基础包 @@ -77,24 +82,24 @@ ffce340b3790 minio/minio:RELEASE.2020-12-03T00-03-10Z "/usr/bin/docker-ent…" 启动用 Fastapi 构建的服务 ```bash - export PYTHONPATH=$PYTHONPATH:./src + export PYTHONPATH=$PYTHONPATH:./src:../../paddleaudio python src/main.py ``` 然后你会看到应用程序启动: ```bash - INFO: Started server process [3949] - 2022-03-07 17:39:14,864 | INFO | server.py | serve | 75 | Started server process [3949] + INFO: Started server process [13352] + 2022-03-26 22:45:30,838 | INFO | server.py | serve | 75 | Started server process [13352] INFO: Waiting for application startup. - 2022-03-07 17:39:14,865 | INFO | on.py | startup | 45 | Waiting for application startup. + 2022-03-26 22:45:30,839 | INFO | on.py | startup | 45 | Waiting for application startup. INFO: Application startup complete. - 2022-03-07 17:39:14,866 | INFO | on.py | startup | 59 | Application startup complete. + 2022-03-26 22:45:30,839 | INFO | on.py | startup | 59 | Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8002 (Press CTRL+C to quit) - 2022-03-07 17:39:14,867 | INFO | server.py | _log_started_message | 206 | Uvicorn running on http://0.0.0.0:8002 (Press CTRL+C to quit) + 2022-03-26 22:45:30,840 | INFO | server.py | _log_started_message | 206 | Uvicorn running on http://0.0.0.0:8002 (Press CTRL+C to quit) ``` -### 3. 测试方法 +### 4. 测试方法 - 准备数据 ```bash wget -c https://www.openslr.org/resources/82/cn-celeb_v2.tar.gz && tar -xvf cn-celeb_v2.tar.gz @@ -110,40 +115,88 @@ ffce340b3790 minio/minio:RELEASE.2020-12-03T00-03-10Z "/usr/bin/docker-ent…" 输出: ```bash - Checkpoint path: %your model path% + Downloading https://paddlespeech.bj.bcebos.com/vector/audio/example_audio.tar.gz ... + ... + Unpacking ./example_audio.tar.gz ... + [2022-03-26 22:50:54,987] [ INFO] - checking the aduio file format...... + [2022-03-26 22:50:54,987] [ INFO] - The sample rate is 16000 + [2022-03-26 22:50:54,987] [ INFO] - The audio file format is right + [2022-03-26 22:50:54,988] [ INFO] - device type: cpu + [2022-03-26 22:50:54,988] [ INFO] - load the pretrained model: ecapatdnn_voxceleb12-16k + [2022-03-26 22:50:54,990] [ INFO] - Downloading sv0_ecapa_tdnn_voxceleb12_ckpt_0_1_0.tar.gz from https://paddlespeech.bj.bcebos.com/vector/voxceleb/sv0_ecapa_tdnn_voxceleb12_ckpt_0_1_0.tar.gz + ... + [2022-03-26 22:51:17,285] [ INFO] - start to dynamic import the model class + [2022-03-26 22:51:17,285] [ INFO] - model name ecapatdnn + [2022-03-26 22:51:23,864] [ INFO] - start to set the model parameters to model + [2022-03-26 22:54:08,115] [ INFO] - create the model instance success + [2022-03-26 22:54:08,116] [ INFO] - Preprocess audio file: /home/zhaoqingen/PaddleSpeech/demos/audio_ + searching/example_audio/knife_hit_iron3.wav + [2022-03-26 22:54:08,116] [ INFO] - load the audio sample points, shape is: (11012,) + [2022-03-26 22:54:08,150] [ INFO] - extract the audio feat, shape is: (80, 69) + [2022-03-26 22:54:08,152] [ INFO] - feats shape: [1, 80, 69] + [2022-03-26 22:54:08,154] [ INFO] - audio extract the feat success + [2022-03-26 22:54:08,155] [ INFO] - start to do backbone network model forward + [2022-03-26 22:54:08,155] [ INFO] - feats shape:[1, 80, 69], lengths shape: [1] + [2022-03-26 22:54:08,433] [ INFO] - embedding size: (192,) Extracting feature from audio No. 1 , 20 audios in total + [2022-03-26 22:54:08,435] [ INFO] - checking the aduio file format...... + [2022-03-26 22:54:08,435] [ INFO] - The sample rate is 16000 + [2022-03-26 22:54:08,436] [ INFO] - The audio file format is right + [2022-03-26 22:54:08,436] [ INFO] - device type: cpu + [2022-03-26 22:54:08,436] [ INFO] - Model has been initialized + [2022-03-26 22:54:08,436] [ INFO] - Preprocess audio file: /home/zhaoqingen/PaddleSpeech/demos/audio_searching/example_audio/sword_wielding.wav + [2022-03-26 22:54:08,436] [ INFO] - load the audio sample points, shape is: (6391,) + [2022-03-26 22:54:08,452] [ INFO] - extract the audio feat, shape is: (80, 40) + [2022-03-26 22:54:08,454] [ INFO] - feats shape: [1, 80, 40] + [2022-03-26 22:54:08,454] [ INFO] - audio extract the feat success + [2022-03-26 22:54:08,454] [ INFO] - start to do backbone network model forward + [2022-03-26 22:54:08,455] [ INFO] - feats shape:[1, 80, 40], lengths shape: [1] + [2022-03-26 22:54:08,633] [ INFO] - embedding size: (192,) Extracting feature from audio No. 2 , 20 audios in total ... - 2022-03-09 17:22:13,870 | INFO | main.py | load_audios | 85 | Successfully loaded data, total count: 20 - 2022-03-09 17:22:13,898 | INFO | main.py | count_audio | 147 | Successfully count the number of data! - 2022-03-09 17:22:13,918 | INFO | main.py | audio_path | 57 | Successfully load audio: ./example_audio/test.wav + 2022-03-26 22:54:15,892 | INFO | main.py | load_audios | 85 | Successfully loaded data, total count: 20 + 2022-03-26 22:54:15,908 | INFO | main.py | count_audio | 148 | Successfully count the number of data! + [2022-03-26 22:54:15,916] [ INFO] - checking the aduio file format...... + [2022-03-26 22:54:15,916] [ INFO] - The sample rate is 16000 + [2022-03-26 22:54:15,916] [ INFO] - The audio file format is right + [2022-03-26 22:54:15,916] [ INFO] - device type: cpu + [2022-03-26 22:54:15,916] [ INFO] - Model has been initialized + [2022-03-26 22:54:15,916] [ INFO] - Preprocess audio file: /home/zhaoqingen/PaddleSpeech/demos/audio_searching/example_audio/test.wav + [2022-03-26 22:54:15,917] [ INFO] - load the audio sample points, shape is: (8456,) + [2022-03-26 22:54:15,923] [ INFO] - extract the audio feat, shape is: (80, 53) + [2022-03-26 22:54:15,924] [ INFO] - feats shape: [1, 80, 53] + [2022-03-26 22:54:15,924] [ INFO] - audio extract the feat success + [2022-03-26 22:54:15,924] [ INFO] - start to do backbone network model forward + [2022-03-26 22:54:15,924] [ INFO] - feats shape:[1, 80, 53], lengths shape: [1] + [2022-03-26 22:54:16,051] [ INFO] - embedding size: (192,) ... - 2022-03-09 17:22:32,580 | INFO | main.py | search_local_audio | 131 | search result http://testserver/data?audio_path=./example_audio/test.wav, distance 0.0 - 2022-03-09 17:22:32,580 | INFO | main.py | search_local_audio | 131 | search result http://testserver/data?audio_path=./example_audio/knife_chopping.wav, distance 0.021805256605148315 - 2022-03-09 17:22:32,580 | INFO | main.py | search_local_audio | 131 | search result http://testserver/data?audio_path=./example_audio/knife_cut_into_flesh.wav, distance 0.052762262523174286 + 2022-03-26 22:54:16,086 | INFO | main.py | search_local_audio | 132 | search result http://testserver/data?audio_path=./example_audio/test.wav, score 100.0 + 2022-03-26 22:54:16,087 | INFO | main.py | search_local_audio | 132 | search result http://testserver/data?audio_path=./example_audio/knife_chopping.wav, score 29.182177782058716 + 2022-03-26 22:54:16,087 | INFO | main.py | search_local_audio | 132 | search result http://testserver/data?audio_path=./example_audio/knife_cut_into_body.wav, score 22.73637056350708 ... - 2022-03-09 17:22:32,582 | INFO | main.py | search_local_audio | 135 | Successfully searched similar audio! - 2022-03-09 17:22:33,658 | INFO | main.py | drop_tables | 159 | Successfully drop tables in Milvus and MySQL! + 2022-03-26 22:54:16,088 | INFO | main.py | search_local_audio | 136 | Successfully searched similar audio! + 2022-03-26 22:54:17,164 | INFO | main.py | drop_tables | 160 | Successfully drop tables in Milvus and MySQL! ``` + - 前端测试(可选) 在浏览器中输入 127.0.0.1:8068 访问前端页面 - 注:如果浏览器和服务不在同一台机器上,那么 IP 需要修改成服务所在的机器 IP,并且 docker-compose.yaml 中相应的 API_URL 也要修改,并重新起服务即可 + 注:如果浏览器和服务不在同一台机器上,那么 IP 需要修改成服务所在的机器 IP,并且 docker-compose.yaml 中相应的 API_URL 也要修改,然后重新执行 docker-compose.yaml 文件,使修改生效。 - 上传音频 - 下载数据并解压到一文件夹,假设为 /home/speech/data,那么在上传页面地址栏输入 /home/speech/data 进行数据上传 + 在服务端下载数据并解压到一文件夹,假设为 /home/speech/data/,那么在上传页面地址栏输入 /home/speech/data/ 进行数据上传 ![](./img/insert.png) - 检索相似音频 - 选择左上角放大镜,点击 “Default Target Audio File” 按钮,上传测试音频,接着你将看到检索结果 + 选择左上角放大镜,点击 “Default Target Audio File” 按钮,从客户端上传测试音频,接着你将看到检索结果 ![](./img/search.png) -### 4. 结果 +### 5. 结果 机器配置: - 操作系统: CentOS release 7.6 @@ -158,9 +211,9 @@ ffce340b3790 minio/minio:RELEASE.2020-12-03T00-03-10Z "/usr/bin/docker-ent…" ![](./img/result.png) -基于 Milvus 的检索框架在召回率 90% 的前提下,检索耗时约 2.9 毫秒,加上特征提取(Embedding)耗时约 500毫秒(测试音频时长约 5秒),即单条音频测试总共耗时约 503 毫秒,可以满足大多数应用场景 +基于 Milvus 的检索框架在召回率 90% 的前提下,检索耗时约 2.9 毫秒,加上特征提取(Embedding)耗时约 500 毫秒(测试音频时长约 5 秒),即单条音频测试总共耗时约 503 毫秒,可以满足大多数应用场景。 -### 5. 预训练模型 +### 6. 预训练模型 以下是 PaddleSpeech 提供的预训练模型列表: diff --git a/demos/audio_searching/requirements.txt b/demos/audio_searching/requirements.txt index 95c6140dcb3..057c6ab9278 100644 --- a/demos/audio_searching/requirements.txt +++ b/demos/audio_searching/requirements.txt @@ -1,7 +1,8 @@ diskcache==5.2.1 +dtaidistance==2.3.1 fastapi librosa==0.8.0 -numpy +numpy==1.21.0 pydantic pymilvus==2.0.1 pymysql diff --git a/demos/audio_searching/src/config.py b/demos/audio_searching/src/config.py index 70ac494c98a..3d6d3d43b24 100644 --- a/demos/audio_searching/src/config.py +++ b/demos/audio_searching/src/config.py @@ -16,7 +16,7 @@ ############### Milvus Configuration ############### MILVUS_HOST = os.getenv("MILVUS_HOST", "127.0.0.1") MILVUS_PORT = int(os.getenv("MILVUS_PORT", "19530")) -VECTOR_DIMENSION = int(os.getenv("VECTOR_DIMENSION", "2048")) +VECTOR_DIMENSION = int(os.getenv("VECTOR_DIMENSION", "192")) INDEX_FILE_SIZE = int(os.getenv("INDEX_FILE_SIZE", "1024")) METRIC_TYPE = os.getenv("METRIC_TYPE", "L2") DEFAULT_TABLE = os.getenv("DEFAULT_TABLE", "audio_table") diff --git a/demos/audio_searching/src/encode.py b/demos/audio_searching/src/encode.py index eba5c48c0d1..83b9e3df83e 100644 --- a/demos/audio_searching/src/encode.py +++ b/demos/audio_searching/src/encode.py @@ -15,7 +15,12 @@ import librosa import numpy as np +from config import DEFAULT_TABLE + from logs import LOGGER +from paddlespeech.cli import VectorExecutor + +vector_executor = VectorExecutor() def get_audio_embedding(path): @@ -23,16 +28,9 @@ def get_audio_embedding(path): Use vpr_inference to generate embedding of audio """ try: - RESAMPLE_RATE = 16000 - audio, _ = librosa.load(path, sr=RESAMPLE_RATE, mono=True) - - # TODO add infer/python interface to get embedding, now fake it by rand - # vpr = ECAPATDNN(checkpoint_path=None, device='cuda') - # embedding = vpr.inference(audio) - np.random.seed(hash(os.path.basename(path)) % 1000000) - embedding = np.random.rand(1, 2048) + embedding = vector_executor(audio_file=path) embedding = embedding / np.linalg.norm(embedding) - embedding = embedding.tolist()[0] + embedding = embedding.tolist() return embedding except Exception as e: LOGGER.error(f"Error with embedding:{e}") diff --git a/demos/audio_searching/src/test_main.py b/demos/audio_searching/src/test_main.py index 331208ff159..32030bae7f5 100644 --- a/demos/audio_searching/src/test_main.py +++ b/demos/audio_searching/src/test_main.py @@ -11,12 +11,12 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import zipfile - -import gdown from fastapi.testclient import TestClient from main import app +from utils.utility import download +from utils.utility import unpack + client = TestClient(app) @@ -24,11 +24,11 @@ def download_audio_data(): """ download audio data """ - url = 'https://drive.google.com/uc?id=1bKu21JWBfcZBuEuzFEvPoAX6PmRrgnUp' - gdown.download(url) - - with zipfile.ZipFile('example_audio.zip', 'r') as zip_ref: - zip_ref.extractall('./example_audio') + url = "https://paddlespeech.bj.bcebos.com/vector/audio/example_audio.tar.gz" + md5sum = "52ac69316c1aa1fdef84da7dd2c67b39" + target_dir = "./" + filepath = download(url, md5sum, target_dir) + unpack(filepath, target_dir, True) def test_drop(): diff --git a/paddlespeech/cli/vector/infer.py b/paddlespeech/cli/vector/infer.py index 91974761e5b..56eccd133f9 100644 --- a/paddlespeech/cli/vector/infer.py +++ b/paddlespeech/cli/vector/infer.py @@ -169,7 +169,7 @@ def execute(self, argv: List[str]) -> bool: @stats_wrapper def __call__(self, audio_file: os.PathLike, - model: str='ecapatdnn-voxceleb12', + model: str='ecapatdnn_voxceleb12', sample_rate: int=16000, config: os.PathLike=None, ckpt_path: os.PathLike=None, From 2f4aa3cd155228fa170a7adf8e6a3a24216bcd53 Mon Sep 17 00:00:00 2001 From: qingen Date: Mon, 28 Mar 2022 10:38:36 +0800 Subject: [PATCH 2/2] [vec][search] update search picture, test=doc #1608 --- demos/audio_searching/img/search.png | Bin 86119 -> 83102 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/demos/audio_searching/img/search.png b/demos/audio_searching/img/search.png index 26bcd9bddc202b0c129bfae432d5391b9a641d81..cccc7fb92c91369c3804f00133ac310b4b8abedc 100644 GIT binary patch literal 83102 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 O=gv6%Sbo~${{I4(OB+xC