Merge pull request #1760 from qingen/database-search

[vec] bug fix to adapt VUE
pull/1765/head
Hui Zhang 3 years ago committed by GitHub
commit 20dcd67120
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -167,8 +167,8 @@ Then to start the system server, and it provides HTTP backend services.
[2022-03-26 22:54:08,633] [ INFO] - embedding size: (192,) [2022-03-26 22:54:08,633] [ INFO] - embedding size: (192,)
Extracting feature from audio No. 2 , 20 audios in total Extracting feature from audio No. 2 , 20 audios in total
... ...
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,892 INFO audio_search.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,908 INFO audio_search.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] - 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 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] - The audio file format is right
@ -183,12 +183,12 @@ Then to start the system server, and it provides HTTP backend services.
[2022-03-26 22:54:15,924] [ INFO] - feats shape:[1, 80, 53], lengths shape: [1] [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-26 22:54:16,051] [ INFO] - embedding size: (192,)
... ...
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,086 INFO audio_search.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 audio_search.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-26 22:54:16,087 INFO audio_search.py search_local_audio 132 search result http://testserver/data?audio_path=./example_audio/knife_cut_into_body.wav, score 22.73637056350708
... ...
2022-03-26 22:54:16,088 INFO main.py search_local_audio 136 Successfully searched similar audio! 2022-03-26 22:54:16,088 INFO audio_search.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! 2022-03-26 22:54:17,164 INFO audio_search.py drop_tables 160 Successfully drop tables in Milvus and MySQL!
``` ```
- GUI test (Optional) - GUI test (Optional)

@ -169,8 +169,8 @@ ffce340b3790 minio/minio:RELEASE.2020-12-03T00-03-10Z "/usr/bin/docker-ent…"
[2022-03-26 22:54:08,633] [ INFO] - embedding size: (192,) [2022-03-26 22:54:08,633] [ INFO] - embedding size: (192,)
Extracting feature from audio No. 2 , 20 audios in total Extracting feature from audio No. 2 , 20 audios in total
... ...
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,892 INFO audio_search.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,908 INFO audio_search.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] - 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 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] - The audio file format is right
@ -185,12 +185,12 @@ ffce340b3790 minio/minio:RELEASE.2020-12-03T00-03-10Z "/usr/bin/docker-ent…"
[2022-03-26 22:54:15,924] [ INFO] - feats shape:[1, 80, 53], lengths shape: [1] [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-26 22:54:16,051] [ INFO] - embedding size: (192,)
... ...
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,086 INFO audio_search.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 audio_search.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-26 22:54:16,087 INFO audio_search.py search_local_audio 132 search result http://testserver/data?audio_path=./example_audio/knife_cut_into_body.wav, score 22.73637056350708
... ...
2022-03-26 22:54:16,088 INFO main.py search_local_audio 136 Successfully searched similar audio! 2022-03-26 22:54:16,088 INFO audio_search.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! 2022-03-26 22:54:17,164 INFO audio_search.py drop_tables 160 Successfully drop tables in Milvus and MySQL!
``` ```
- 前端测试(可选) - 前端测试(可选)

@ -73,7 +73,9 @@ def test_data(spk: str):
""" """
Get the audio file by spk_id in MySQL Get the audio file by spk_id in MySQL
""" """
response = client.get("/vpr/data?spk_id=" + spk) response = client.get(
"/vpr/data",
json={"spk_id": spk}, )
assert response.status_code == 200 assert response.status_code == 200
@ -81,7 +83,9 @@ def test_del(spk: str):
""" """
Delete the record in MySQL by spk_id Delete the record in MySQL by spk_id
""" """
response = client.post("/vpr/del?spk_id=" + spk) response = client.post(
"/vpr/del",
json={"spk_id": spk}, )
assert response.status_code == 200 assert response.status_code == 200

@ -17,8 +17,8 @@ import uvicorn
from config import UPLOAD_PATH from config import UPLOAD_PATH
from fastapi import FastAPI from fastapi import FastAPI
from fastapi import File from fastapi import File
from fastapi import Form
from fastapi import UploadFile from fastapi import UploadFile
from logs import LOGGER
from mysql_helpers import MySQLHelper from mysql_helpers import MySQLHelper
from operations.count import do_count_vpr from operations.count import do_count_vpr
from operations.count import do_get from operations.count import do_get
@ -31,6 +31,8 @@ from starlette.middleware.cors import CORSMiddleware
from starlette.requests import Request from starlette.requests import Request
from starlette.responses import FileResponse from starlette.responses import FileResponse
from logs import LOGGER
app = FastAPI() app = FastAPI()
app.add_middleware( app.add_middleware(
CORSMiddleware, CORSMiddleware,
@ -49,10 +51,12 @@ if not os.path.exists(UPLOAD_PATH):
@app.post('/vpr/enroll') @app.post('/vpr/enroll')
async def vpr_enroll(table_name: str=None, async def vpr_enroll(table_name: str=None,
spk_id: str=None, spk_id: str=Form(...),
audio: UploadFile=File(...)): audio: UploadFile=File(...)):
# Enroll the uploaded audio with spk-id into MySQL # Enroll the uploaded audio with spk-id into MySQL
try: try:
if not spk_id:
return {'status': False, 'msg': "spk_id can not be None"}
# Save the upload data to server. # Save the upload data to server.
content = await audio.read() content = await audio.read()
audio_path = os.path.join(UPLOAD_PATH, audio.filename) audio_path = os.path.join(UPLOAD_PATH, audio.filename)
@ -63,7 +67,7 @@ async def vpr_enroll(table_name: str=None,
return {'status': True, 'msg': "Successfully enroll data!"} return {'status': True, 'msg': "Successfully enroll data!"}
except Exception as e: except Exception as e:
LOGGER.error(e) LOGGER.error(e)
return {'status': False, 'msg': e}, 400 return {'status': False, 'msg': e}
@app.post('/vpr/enroll/local') @app.post('/vpr/enroll/local')
@ -128,9 +132,12 @@ async def vpr_recog_local(request: Request,
@app.post('/vpr/del') @app.post('/vpr/del')
async def vpr_del(table_name: str=None, spk_id: str=None): async def vpr_del(table_name: str=None, spk_id: dict=None):
# Delete a record by spk_id in MySQL # Delete a record by spk_id in MySQL
try: try:
spk_id = spk_id['spk_id']
if not spk_id:
return {'status': False, 'msg': "spk_id can not be None"}
do_delete(table_name, spk_id, MYSQL_CLI) do_delete(table_name, spk_id, MYSQL_CLI)
LOGGER.info("Successfully delete a record by spk_id in MySQL") LOGGER.info("Successfully delete a record by spk_id in MySQL")
return {'status': True, 'msg': "Successfully delete data!"} return {'status': True, 'msg': "Successfully delete data!"}
@ -156,9 +163,12 @@ async def vpr_list(table_name: str=None):
@app.get('/vpr/data') @app.get('/vpr/data')
async def vpr_data( async def vpr_data(
table_name: str=None, table_name: str=None,
spk_id: str=None, ): spk_id: dict=None, ):
# Get the audio file from path by spk_id in MySQL # Get the audio file from path by spk_id in MySQL
try: try:
spk_id = spk_id['spk_id']
if not spk_id:
return {'status': False, 'msg': "spk_id can not be None"}
audio_path = do_get(table_name, spk_id, MYSQL_CLI) audio_path = do_get(table_name, spk_id, MYSQL_CLI)
LOGGER.info(f"Successfully get audio path {audio_path}!") LOGGER.info(f"Successfully get audio path {audio_path}!")
return FileResponse(audio_path) return FileResponse(audio_path)

Loading…
Cancel
Save