语音音频(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
相关推荐
kk在加油几秒前
python学习笔记(基础语法与变量、容器)
笔记·python·学习
davidson14711 分钟前
Ubuntu配置Claude
linux·人工智能·ubuntu·claude
小布的学习手记2 分钟前
拒绝“传话游戏”!DenseNet 如何让神经网络开启“群聊”模式
人工智能·神经网络·游戏
甄心爱学习3 分钟前
【自然语言处理】三种典型的词向量学习方法
人工智能·自然语言处理·学习方法
AI数据皮皮侠5 分钟前
基于XGBoost+LSTM+SARIMA模型的非线性时间序列预测(Paddle)
人工智能·lstm·paddle
奔跑的卡卡5 分钟前
Web开发与AI融合-第二篇:TensorFlow.js实战:在浏览器中运行AI模型
前端·人工智能·tensorflow
智星云算力6 分钟前
GPU算力租用平台深度解析:响应速度、算力利用率与售后支持的核心逻辑
人工智能·深度学习·gpu算力·智星云·gpu算力租用
IT_陈寒7 分钟前
Vue的响应式居然在这里埋坑,差点加班到天亮
前端·人工智能·后端
Agent产品评测局7 分钟前
企业超自动化落地,如何实现端到端的全流程闭环?2026企业级智能体架构与全景选型深度解析丨Agent产品测评局
运维·人工智能·ai·chatgpt·架构·自动化
橙露8 分钟前
Python 正则表达式:文本清洗与信息提取速通手册
python·正则表达式·easyui