基于3D-Speaker进行区分说话人项目搭建过程报错记录 | 通话录音说话人区分以及语音识别 | 声纹识别以及语音识别 | pyannote-audio

0. 研究背景

在外呼系统中,我们的后台管理系统通常要对电话录音的内容进行提取和分析。那么说到分析,我们就要对录音中的两个人的对话进行分离,然后分别分析,比如分析客户是否有合作的意愿,分析客服讲的话术是否合理,分析客户情绪等等。那么这里就需要首先做说话人的分离。目前市面上有众多的说话人分离开源项目,其它国内比较知名的是阿里巴巴旗下的3D-Speaker

为了测试3D-Speaker看看能否对电话录音中的说话人分离情况,自己租了一台服务器,然后进行搭建,下面是我的搭建过程,本篇文章主要记录我搭建过程中遇到的一些问题,以及最后测试的情况。

1. 环境介绍

OS: Ubuntu Server 22.04

Python: 3.11

2. 开始搭建

创建环境

shell 复制代码
conda create -n spk python=3.11
conda activate spk

克隆源码

shell 复制代码
git clone https://github.com/modelscope/3D-Speaker.git
cd 3D-Speaker

安装依赖

shell 复制代码
pip install -r requirements.txt

注意:我实际在安装过程中修改了这个文件,把scikit-learn删除了,因为不删除,在安装过程中会报错,需要通过conda命令安装。

shell 复制代码
conda install scikit-learn

此外还需要安装下面依赖

shell 复制代码
cd egs/3dspeaker/speaker-diarization
pip install requirements.txt

注意:我实际在执行之前删掉了里面的一些依赖,有些依赖安装过程中报没有找到。打开这个文件,我删除了pyannote的依赖,然后手动安装了pyannote-audio。还有,在实际安装过程中会报numba问题,是因为这个文件中规定了版本,所以需要把文件中的版本号删掉。

shell 复制代码
pip install pyannote-audio

此外还有一些依赖需要手动安装

shell 复制代码
pip install onnx simplejson datasets==2.20.0 pydub onnxconverter_common

3. 测试

运行下面代码来测试

python 复制代码
from speakerlab.bin.infer_diarization import Diarization3Dspeaker
wav_path = "audio.wav"
pipeline = Diarization3Dspeaker()
print(pipeline(wav_path, wav_fs=None, speaker_num=None)) # can also accept WAV data as input

但是经过测试发现对这个audio.wav录音不没有正确区分说话人。

4. 优化

目前试过使用cam++以及使用pyannote-audio都未能正常区分出通话录音中的每个说话人。于是自己根据常规做法,先通过vad算法获取到每段声音的时间戳,然后对其每个音频片段计算声纹特征值向量,然后通过无监督聚类算法对其声纹特征相似的片段聚类。

最终实现了通话录音区分说话人的语音识别。

5. 其它

更多内容欢迎访问我的博客

说话人识别GUI程序可访问我的淘宝

相关演示视频,可在我的B《编程分享录》

个人github代码仓库,可访问这里

相关推荐
IALab-检测行业AI报告生成15 小时前
AI驱动万页报告审核革新:IACheck技术架构与实践价值解析
人工智能·架构
小马过河R15 小时前
Codebuddy使用CloudBase MCP辅助AI编码基于Spec工作流开发的坦克大战小游戏
人工智能·团队开发·ai编程·codebuddy
多则惑少则明15 小时前
AI测试、大模型测试(九)spring集成大模型(AI4J)
人工智能·ai测试·大模型测试
benxin123415 小时前
智能压力测试代理系统:基于AI的自动化压测解决方案
人工智能·自动化·压力测试
老蒋新思维15 小时前
创客匠人:小团队的知识变现革命 —— 超级个体 + 多智能体如何重构组织价值
服务器·网络·人工智能·重构·创始人ip·创客匠人·知识变现
serve the people15 小时前
tensorflow 零基础吃透:tf.sparse.SparseTensor 与核心 TensorFlow API 的协同使用
人工智能·python·tensorflow
SamtecChina202315 小时前
Electronica现场演示 | Samtec前面板解决方案
大数据·人工智能·算法·计算机外设
2401_8414956415 小时前
【自然语言处理】字符编码与字频统计:中文信息处理的底层逻辑与实践维度
人工智能·自然语言处理·中文信息处理·西文字符编码的奠基·中文编码的演进·字符编码的实践价值·字频统计的作用与方法
雍凉明月夜15 小时前
视觉opencv学习笔记Ⅴ-数据增强(2)
人工智能·python·opencv·计算机视觉
JoannaJuanCV15 小时前
自动驾驶—CARLA仿真(24)sensor_synchronization demo
网络·人工智能·自动驾驶·carla