语音音频(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
相关推荐
蹦蹦跳跳真可爱58912 分钟前
Python----神经网络发(神经网络发展历程)
人工智能·python·深度学习·神经网络·计算机视觉
学步_技术32 分钟前
增强现实—Flame: Learning to navigate with multimodal llm in urban environments
人工智能·机器学习·计算机视觉·语言模型·自然语言处理·ar
chao_78936 分钟前
标注工具核心代码解析——class AnnotationVie【canvas.py]
开发语言·python·qt5
飞飞是甜咖啡1 小时前
【机器学习】Teacher-Student框架
人工智能·算法·机器学习
愿所愿皆可成1 小时前
机器学习之集成学习
人工智能·随机森林·机器学习·集成学习
广州正荣1 小时前
成绩管理革新者:C++驱动的智能数据处理平台
c++·人工智能·科技
Prokint.1 小时前
GPU算力租用平台推荐(AI/游戏串流/渲染/办公)
人工智能·游戏·云计算·gpu算力
king of code porter2 小时前
深度学习之模型压缩三驾马车:基于ResNet18的模型剪枝实战(3)
人工智能·深度学习·剪枝
有Li2 小时前
分割任意组织:用于医学图像分割的单样本参考引导免训练自动点提示方法|文献速递-深度学习医疗AI最新文献
论文阅读·深度学习·计算机视觉
追风哥哥2 小时前
Transformer、RNN (循环神经网络) 和 CNN (卷积神经网络)的区别
rnn·深度学习·cnn·卷积神经网络·transformer