|
import os |
|
import numpy as np |
|
from predictions import get_embeddings |
|
from utils.preprocessing import extract_fbanks |
|
|
|
os.environ['KMP_DUPLICATE_LIB_OK']='True' |
|
|
|
def load_data_speaker(labId): |
|
speaker_path =f'./modelDir/{labId}/speaker/' |
|
if os.path.exists(speaker_path): |
|
data_dict = {} |
|
for dir_name in os.listdir(speaker_path): |
|
dir_path = os.path.join(speaker_path, dir_name) |
|
if os.path.isdir(dir_path): |
|
sub_data = {} |
|
for file_name in os.listdir(dir_path): |
|
if file_name.endswith('.npy'): |
|
file_path = os.path.join(dir_path, file_name) |
|
key = file_name.replace('.npy', '') |
|
value = np.load(file_path) |
|
sub_data[key] = value |
|
|
|
data_dict[dir_name] = sub_data |
|
|
|
return data_dict |
|
else: |
|
return "folder do not exist" |
|
|
|
|
|
async def show_all_speaker(labId): |
|
speaker_path =f'./modelDir/{labId}/speaker/' |
|
if not os.path.exists(speaker_path): |
|
os.makedirs(speaker_path) |
|
list_user=os.listdir(speaker_path) |
|
return { |
|
"result": list_user |
|
} |
|
|
|
async def add_more_speaker(speech_file_path, speaker_name, labId): |
|
speaker_path =f'./modelDir/{labId}/speaker/' |
|
dir_ = speaker_path + speaker_name |
|
if not os.path.exists(dir_): |
|
os.makedirs(dir_) |
|
|
|
fbanks = extract_fbanks(speech_file_path) |
|
embeddings = get_embeddings(fbanks) |
|
print('shape of embeddings: {}'.format(embeddings.shape), flush=True) |
|
mean_embeddings = np.mean(embeddings, axis=0) |
|
np.save(speaker_path+speaker_name+'/embeddings.npy',mean_embeddings) |
|
list_user=os.listdir(speaker_path) |
|
return { |
|
"result": list_user |
|
} |
|
|
|
|