语音音频(wav)声纹识别-技术实现-python

通过pyannote.audio 实现语音音频声纹识别。

安装:

python 复制代码
pip install pyannote.audio

示例音频下载地址:【免费】语音音频(WAV)声纹识别示例资源-CSDN文库

实现代码:

python 复制代码
from pyannote.audio import Model
from pyannote.audio import Inference
from scipy.spatial.distance import cdist
# 初始化模型
model = Model.from_pretrained("pyannote/wespeaker-voxceleb-resnet34-LM",cache_dir = "./ckpt/",local_files_only = False)

inference = Inference(model, window="whole")
# 获取音频的特征
embedding_1 = inference(r"audio_data\0\014.wav").reshape(1,-1) # id 为 0 的人的音频
embedding_2 = inference(r"audio_data\0\021.wav").reshape(1,-1) # id 为 0 的人的音频
embedding_3 = inference(r"audio_data\1\004.wav").reshape(1,-1) # id 为 1 的人的音频

print("embedding_1:",embedding_1.shape)

# 通过余弦相似度,比较音频特征向量间的距离,获取相似度,距离越小,特征越相近,可能为同一人说话的可能性越高。
distance_sim = cdist(embedding_1 , embedding_2 , metric="cosine")[0,0]
distance_not = cdist(embedding_1 , embedding_3 , metric="cosine")[0,0]

# 余弦距离越小越接近
print("相同人 Distance emb1 between emb2: " + str(distance_sim))
print("不同人 Distance emb1 between emb3: " + str(distance_not))

程序运行输出信息如下:

python 复制代码
相同人 Distance emb1 between emb2: 0.447950675466506
不同人 Distance emb1 between emb3: 0.7426738655303657
相关推荐
傻啦嘿哟38 分钟前
Python数据分析实战:Pandas高效处理Excel数据指南
python·数据分析·pandas
A林玖40 分钟前
【机器学习】支持向量机(SVM)
人工智能·机器学习·支持向量机
heart000_11 小时前
从0到1打造AI Copilot:用SpringBoot + ChatGPT API实现智能开发助手
人工智能·spring boot·copilot
Oliverro1 小时前
AI智能分析网关V4玩手机检测算法精准管控人员手机行为,搭建智慧化安防监管体系
网络·人工智能
Robot2511 小时前
「华为」持续加码人形机器人赛道!
大数据·人工智能·科技·华为·机器人·自动驾驶
水花花花花花2 小时前
目标检测:YOLO 模型详解
人工智能·计算机视觉·目标跟踪
说私域2 小时前
心联网(社群经济)视角下开源AI智能名片、链动2+1模式与S2B2C商城小程序源码的协同创新研究
人工智能·小程序·开源·零售
摆烂仙君2 小时前
手搓四人麻将程序
开发语言·python
Hoking2 小时前
SpringAI开发SSE传输协议的MCP Server
人工智能
学习AI大模型2 小时前
深度解析:切片实现与策略模式的应用
人工智能·深度学习·ai·语言模型·改行学it