语音音频(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
相关推荐
航行的pig10 分钟前
Python基础学习笔记
笔记·python
无代码专家14 分钟前
低代码构建数据管理系统:选型逻辑与实践路径
人工智能·低代码
无代码专家14 分钟前
低代码搭建项目管理平台:易用性导向的实践方案
人工智能·低代码
KKKlucifer15 分钟前
AI赋能与全栈适配:安全运维新范式的演进与实践
人工智能·安全
许泽宇的技术分享19 分钟前
当AI学会拍短剧:Huobao Drama全栈AI短剧生成平台深度解析
人工智能
爱喝可乐的老王20 分钟前
机器学习监督学习模型--线性回归
人工智能·机器学习·线性回归
金融Tech趋势派21 分钟前
2025企业微信私有化部署优秀服务商:微盛·企微管家方案解析
人工智能·企业微信·scrm
Gofarlic_oms130 分钟前
跨国企业Cadence许可证全球统一管理方案
java·大数据·网络·人工智能·汽车
AAD5558889931 分钟前
牛肝菌目标检测:基于YOLOv8-CFPT-P2345模型的创新实现与应用_1
人工智能·yolo·目标检测