Skriptida ishlatishingiz mumkin: from deep speaker import deep speaker


# Ovozlar o'xshashligi natijasini tekshirish


Download 22.46 Kb.
bet2/3
Sana18.06.2023
Hajmi22.46 Kb.
#1578255
1   2   3
Bog'liq
otp token va tovushni tanish

# Ovozlar o'xshashligi natijasini tekshirish
if distance < 0.5:
print("Foydalanuvchi tanilgan!")
# OTP tokenni generatsiya qilish va autentifikatsiya jarayonini davom ettirish
else:
print("Foydalanuvchi tanilmadi!")

# Foydalanuvchi ovozini tanishlash va tasdiqlash
voice_path = 'user_voice.wav' # Foydalanuvchi ovozi
enrollment_path = 'enrollment_voice.wav' # Tanilgan foydalanuvchi ovozi
recognize_speaker(voice_path, enrollment_path)
Ushbu kod foydalanuvchi ovozini tanishlash va tasdiqlash jarayonini amalga oshiradi. create_model metodi yordamida deep_speaker modelini yaratadi va load_weights orqali yuklab olish jarayonini amalga oshiradi. embed_speaker funksiyasi foydalanuvchi ovozini kodlash uchun ishlatiladi. cosine_distance funksiyasi ovozlar orasidagi o'xshashlikni hisoblaydi.
Kodni bajarishdan oldin foydalanuvchi ovozini (user_voice.wav) va tanilgan foydalanuvchi ovozini (enrollment_voice.wav) o'zgartiring.
Kodni bajarishdan so'ng, foydalanuvchi ovoz
cosine_distance funktsiyasi deep_speaker kutubxonasi orqali foydalanuvchi ovozlari o'rtasidagi o'xshashlikni hisoblash uchun ishlatiladi. Ushbu funktsiya kosinuss o'xshashlik masofasini hisoblashda qo'llaniladi.
Quyidagi misol kodda cosine_distance funktsiyasining oddiy implementatsiyasini ko'rishingiz mumkin:
import numpy as np

def cosine_distance(voice_embedding1, voice_embedding2):
dot_product = np.dot(voice_embedding1, voice_embedding2)
norm1 = np.linalg.norm(voice_embedding1)
norm2 = np.linalg.norm(voice_embedding2)
cosine_similarity = dot_product / (norm1 * norm2)
cosine_distance = 1 - cosine_similarity
return cosine_distance
Bu funktsiya, iki ovozning kodlangan ovoz o'lchamlari (voice_embedding1 va voice_embedding2) orasidagi kosinuss o'xshashlik masofasini hisoblaydi. np.dot funktsiyasi orqali ikki ovozning vektor ko'paytmasini topamiz. np.linalg.norm funktsiyasi orqali esa ovozning vektor normasini topamiz.
Kosinuss o'xshashlikni hisoblashda ko'paytma vektorlarining normasini ham hisobga olish kerak. Shuning uchun dot_product ni ikki ovozning vektor ko'paytmasi, norm1 ni birinchi ovozning normasi, norm2 ni esa ikkinchi ovozning normasi deb hisoblaymiz.
Keyin cosine_similarity ni kosinuss o'xshashlik koeffitsiyentini topish uchun yuqoridagi formulani hisoblaymiz. Kosinuss o'xshashlik masofasini aniqlash uchun esa 1 dan cosine_similarity ni ayiramiz.
cosine_distance funktsiyasi orqali iki ovozning kosinuss o'xshashlik masofasini hisoblash mumkin. Shu masofani asosida ovozlar o'xshashligini aniqlashingiz mumkin. Masofa 0 ga yaqin bo'lgan natijalar o'xshashlikni ko'rsatadi, ya'ni ikki ovoz o'xshash bo'lishi mumkin. Masofa 1 ga yaqin bo'lgan natijalar esa o'xshashlikni ko'rsatmaydi, ya'ni ikki ovoz o'xshash bo'lmaydi. Masofaning chegarasi (0.5 misol kodida) vositalar orqali tanlash mumkin.

OTP (One-Time Password) token, ya'ni bir-marta parol, bir necha martalik autentifikatsiya uchun ishlatiladigan keng qo'llaniladigan tizimdir. U shaxsiy ma'lumotlarni himoya qilish uchun juda foydali bo'ladi.
Pythonda OTP tokenni generatsiya qilish uchun, siz pyotp kutubxonasidan foydalanishingiz mumkin. Ushbu kutubxona odatda 2FA (ikkita faktorli autentifikatsiya) uchun yoki parolsiz autentifikatsiya uchun ishlatiladi.
pyotp kutubxonasini o'rnatish uchun quyidagi komandani ishga tushuring:

Download 22.46 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling