首页 > 其他分享 >Alize 声纹识别 学习笔记2 失败了

Alize 声纹识别 学习笔记2 失败了

时间:2024-03-21 10:55:17浏览次数:20  
标签:Alize syf data kaldi 笔记 sh 声纹识别 wav data1

alize 源码

https://github.com/ALIZE-Speaker-Recognition/alize-core
https://github.com/ALIZE-Speaker-Recognition/LIA_RAL

LIA_RAL 提供了四个官方例子

https://alize.univ-avignon.fr/
https://alize.univ-avignon.fr/doc/01_GMM-UBM_system_with_ALIZE3.0.tar.gz
https://alize.univ-avignon.fr/doc/02_i-vector_system_with_ALIZE3.0.tar.gz
https://alize.univ-avignon.fr/doc/03_JFA_system_with_ALIZE3.0.tar.gz
https://alize.univ-avignon.fr/doc/demo_LIA_SpkSeg.zip

01_GMM-UBM_system_with_ALIZE3.0

第一个教程给出了如何构建一个简单的GMM/UBM系统的示例
1.使用SPRO或HTK的特征提取
本教程提供的配置文件提取60维MFCC特征向量,(19MFCC+对数能量和一阶和二阶导数)要运行教程,您需要:
SPRO工具包中的sfbcep(http://www.irisa.fr/metiss/guig/spro/)
请注意,如果SPRO未与SPHERE库对齐,则需要
NIST语音处理工具包中的w_decode和h_strip(http://www.speech.cs.cmu.edu/comp.speech/Section1/AudioSoftware/nist.html)
以原始PCM格式转换SPHERE文件。或 HTK工具包中的HCopy(http://htk.eng.cam.ac.uk/)
2.特征选择和归一化
在本部分中,使用NormFeat应用简单的特征处理和LIA_SpkDet工具包中的EnergyDetector
3.标准GMM/UBM扬声器验证系统的培训
3.1. 使用TrainWorld训练通用背景模型(UBM)
3.2. 使用TrainTarget调整扬声器相关的GMM模型
3.3. 使用ComputeTest将测试片段与扬声器模型进行比较
3.4. 使用ComputeNorm用T、Z或ZT范数对分数进行归一化(也可以计算TZ范数)
特征提取
D:\08c++\VoicePrintReco-VPR2.0\Demos\MyDemo\SproBin4.0>sfbcep.exe -i baiduClose.wav -o output.mfcc -c config_file.cfg

安装cygwin


放弃sfbcep尝试
准备使用window10 自带的Ubuntu使用ASV-Subtools

内置ubuntu




这样的报错。正是因为网络被代理劫持导致的。解决的办法如下

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\0408F7A3]
"AppFullPath"="C:\\Windows\\System32\\wsl.exe"
"PermittedLspCategories"=dword:80000000

将上述代码复制粘贴到记事本,保存后修改文件后缀为reg,双击运行即可
传输子系统文件
简单来说就是我的电脑里的地址栏输入 \wsl$

Kaldi 安装
创建一个work目录(进入/work 路径下)
git clone https://github.com/kaldi-asr/kaldi.git
编译tools
cd kaldi/tools
extras/check_dependencies.sh
安装C编译器
sudo apt-get update
sudo apt-get install build-essential
根据提示安装完成所有依赖
编译kaldi
sudo apt-get install zlib1g-dev automake autoconf sox gfortran libtool subversion python2.7
sudo apt-get install python
检查python命令进入的环境是否为python2.7
sudo ./extras/install_openblas.sh
sudo ./extras/install_mkl.sh
sudo apt-get install libatlas-base-dev
make openfst
进入src目录
kaldi/src/
配置生成Makefile。
./configure --shared
显示 Kaldi has been successfully configured. To compile:
编译kaldi
make -j clean depend
make -j4
查看依赖情况
/kaldi/tools/extras$ ./check_dependencies.sh
./check_dependencies.sh: all OK.
运行和验证
cd ./kaldi/egs/yesno/s5
./run.sh
显示 %WER 0.00 [ 0 / 232, 0 ins, 0 del, 0 sub ] exp/mono0a/decode_test_yesno/wer_10_0.0
表示安装kaldi成功

安装subtools

下载subtools
mkdir -p /work/kaldi/egs/syf/example
cd /work/kaldi/egs/syf/example
git clone https://github.com/Snowdar/asv-subtools.git subtools
安装pip
sudo apt-get install python3-pip
安装pytorch
pip install torch
安装依赖库
pip install -r subtools/requirements.txt

The 'sklearn' PyPI package is deprecated, use 'scikit-learn'
    rather than 'sklearn' for pip commands.

修改成如下
syf@syf:~/work/kaldi/egs/syf/example$ vi subtools/requirements.txt
numpy
pyyaml
thop
scipy
#sklearn
scikit-learn
pandas
packaging
matplotlib
tensorboard
tensorboardX
tqdm>=4.42.0
# progressbar
# progressbar2

在运行一次 pip install -r subtools/requirements.txt

修改配置路径

/work/kaldi/egs/syf/example/subtools$ vi path.sh
#kaldi_root_dir=$(dirname $(dirname $(dirname $current_dir)))
kaldi_root_dir=/work/kaldi/syf/example

在 example 下构建 data 目录用于存放数据映射文件
mkdir -p data/door_train
利用 find 命令获取该文件夹下所有 wav 文件的绝对路径并保存至 temp.lst中
mkdir -p data1/wav
/work/kaldi/egs/syf/example/data1/wav$ ls
bdgm.wav bdkm.wav xngm.wav xnkm.wav xxgm.wav xxkm.wav
进入syf/example 目录下
sudo find data1/wav/ -name "*.wav" > data/door_train/temp.lst
输出结果
data1/wav/xngm.wav
data1/wav/bdkm.wav
data1/wav/xxkm.wav
data1/wav/xxgm.wav
data1/wav/xnkm.wav
data1/wav/bdgm.wav
利用 awk 命令将 temp.lst 中的每一行进行切分并重新组合构建 wav.scp
将temp.lst 第一列 按照/分割成字符数组a,再将a数组最后一个文件名称去掉后缀名,拼接出新的格式放入wav.scp 文件
sudo awk '{split($1,a,"/");{split(a[3],b,".")}print a[1]"-"a[2]"-"b[1],$1}' ./data/door_train/temp.lst > ./data/door_train/wav.scp
结果展示
syf@syf:~/work/kaldi/egs/syf/example$ cat ./data/door_train/wav.scp
data1-wav-xngm data1/wav/xngm.wav
data1-wav-bdkm data1/wav/bdkm.wav
data1-wav-xxkm data1/wav/xxkm.wav
data1-wav-xxgm data1/wav/xxgm.wav
data1-wav-xnkm data1/wav/xnkm.wav
data1-wav-bdgm data1/wav/bdgm.wav
utt2spk和spk2utt
syf@syf:~/work/kaldi/egs/syf/example$ sudo awk '{split($1,a,"/");{split(a[3],b,".")}print a[1]"-"a[2]"-"b[1],a[1]}' ./data/door_train/temp.lst > ./data/door_train/utt2spk
syf@syf:~/work/kaldi/egs/syf/example$ sudo awk '{split($1,a,"/");{split(a[3],b,".")}print a[1],a[1]"-"a[2]"-"b[1]}' ./data/door_train/temp.lst > ./data/door_train/spk2utt
syf@syf:~/work/kaldi/egs/syf/example$ cat ./data/door_train/utt2spk
data1-wav-xngm data1
data1-wav-bdkm data1
data1-wav-xxkm data1
data1-wav-xxgm data1
data1-wav-xnkm data1
data1-wav-bdgm data1
syf@syf:~/work/kaldi/egs/syf/example$ cat ./data/door_train/spk2utt
data1 data1-wav-xngm
data1 data1-wav-bdkm
data1 data1-wav-xxkm
data1 data1-wav-xxgm
data1 data1-wav-xnkm
data1 data1-wav-bdgm
检查文件
syf@syf:~/work/kaldi/egs/syf/example$ sudo sh subtools/kaldi/utils/fix_data_dir.sh data/door_train/
subtools/kaldi/utils/fix_data_dir.sh: 34: subtools/kaldi/utils/parse_options.sh: Syntax error: Bad for loop variable
构建训练集
syf@syf:~/work/kaldi/egs/syf/example$ sudo subtools/recipe/voxceleb/prepare/make_voxceleb1_v2.pl data1/wav dev data/door_train
Cannot open directory: No such file or directory at subtools/recipe/voxceleb/prepare/make_voxceleb1_v2.pl line 29.
特征提取

失败了

尝试LIA_RAL 官方例子

下载代码并解压赋权限

syf@syf:~/0codes/01_GMM-UBM_system_with_ALIZE3.0$ ll
total 72
drwxrwxrwx 10 syf  syf  4096 Mar 20 15:57 ./
drwxrwxrwx  7 root root 4096 Mar 20 15:57 ../
-rwxrwxrwx  1 syf  syf    59 Aug 18  2013 .directory*
-rwxrwxrwx  1 syf  syf  2812 Aug 18  2013 01_RUN_feature_extraction.sh*
-rwxrwxrwx  1 syf  syf  2196 Aug 18  2013 02a_RUN_spro_front-end.sh*
-rwxrwxrwx  1 syf  syf  2135 Aug 18  2013 02b_RUN_htk_front-end.sh*
-rwxrwxrwx  1 syf  syf  4203 Sep  3  2013 03_RUN_gmm-ubm.sh*
-rwxrwxrwx  1 syf  syf  3898 Aug 18  2013 CreateNormLists.pl*
-rwxrwxrwx  1 syf  syf  2771 Sep  3  2013 README*
drwxrwxrwx  2 syf  syf  4096 Mar 20 15:57 bin/
drwxrwxrwx  2 syf  syf  4096 Mar 20 15:57 cfg/
drwxrwxrwx  6 syf  syf  4096 Mar 20 15:57 data/
drwxrwxrwx  2 syf  syf  4096 Sep 12  2013 gmm/
drwxrwxrwx  2 syf  syf  4096 Sep 12  2013 log/
drwxrwxrwx  2 syf  syf  4096 Aug 18  2013 lst/
drwxrwxrwx  2 syf  syf  4096 Mar 20 15:57 ndx/
drwxrwxrwx  2 syf  syf  4096 Sep 12  2013 res/
syf@syf:~/0codes/01_GMM-UBM_system_with_ALIZE3.0$

运行第一个例子
syf@syf:~/0codes/01_GMM-UBM_system_with_ALIZE3.0$ sudo ./01_RUN_feature_extraction.sh
bin/sfbcep -m -k 0.97 -p19 -n 24 -r 22 -e -D -A -F SPHERE data/sph/xaaf.sph data/prm/xaaf.tmp.prm
./01_RUN_feature_extraction.sh: line 75: bin/sfbcep: No such file or directory
可能是sfbcep所需的库类缺少了
sudo apt-get install build-essential libblas-dev liblapack-dev libhdf5-dev libboost-all-dev sox libsndfile1-dev

失败了

标签:Alize,syf,data,kaldi,笔记,sh,声纹识别,wav,data1
From: https://www.cnblogs.com/SYF8848/p/18079704

相关文章

  • WinClip非官方复现代码学习笔记2
    一、数据集加载1.数据集放置将下载的数据集解压到datasets文件夹的下面,方便后续操作。2.数据集预处理数据集预处理针对两个数据集给了两个不同的预处理指令,我测试了VISA数据集,以下是我对VISA数据集的实例。1.datasets/prepare_visa_public.py文件配置打开这个文件,第1......
  • 推荐系统实现-笔记(2)
    推荐系统实现(1)推荐系统Demo实现笔记:系统概述本推荐系统采用基于内容的推荐算法,旨在为用户提供与其已收藏内容相似的新内容推荐。系统设立了两级过滤机制,以提高推荐的准确性和实用性。第一级过滤根据语料自身的标签进行推荐,第二级过滤则基于第一级过滤得到的标签,计算每个类别中......
  • C#笔记-异常处理
    一、引言1、什么是异常异常是程序运行时发生的不正常或错误情况。异常会打断程序的正常流程,导致程序终止或产生不可预测的结果。2、为什么要处理异常提高程序的健壮性和稳定性。提供友好的错误提示,提升用户体验。方便开发者定位和修复问题二、C#中的异常处理机制1、tr......
  • Kotlin,简直是 Java 的 Pro Max!(笔记3 进阶篇)
    目录拓展拓展函数拓展属性运算符重载operator高阶函数通过高阶函数,模拟实现标准函数apply内联函数inlinenoinlinecrossinline泛型泛型类泛型方法限定泛型类型模拟实现apply标准函数(泛型版)泛型高级特性回顾Java中的协变和逆变Kotlin的协变和逆变委托......
  • 集中式注册表(Centralized Registry)分布式注册表(Distributed Registry)
    集中式注册表(CentralizedRegistry)是指在计算机系统中,将多个应用程序或服务的配置信息、参数设置等数据集中存储在一个统一的注册表中的管理方式。在Windows操作系统中,注册表(Registry)就是一个典型的集中式注册表系统。作用:统一管理:集中式注册表可以让多个应用程序共享同一份......
  • 多元统计分析课程笔记
    多元统计分析(数据分析)课程的笔记,主要内容为理论,公式推导以及例题。                                 ......
  • 复习第二天总结笔记3.19
    今天复习了以下内容1.掌握了变量的定义和使用重点记录Java常量优化机制2.使用Debug工具查看程序的执行流程3.使用Scanner键盘录入数据4.清楚算数符中/%的特点数值拆分公式5.掌握Java中的字符串拼接操作至于今天学习或者以前没了解完全的内容如下1.了解清楚自......
  • Rhino.Inside.Revit学习笔记——九哥
    Hello大家好!我是九哥~大家好,我是九哥,Rhino.Inside.Revit学习笔记又更新了,更新支持RIR最新版1.12+,有很多节点进行了调整,同时新增了一章:RIR节点介绍,完整的介绍了每一个节点。接下来还是详细介绍下教程的具体信息:本套教程,名称为《Rhino.Inside.Revit学习笔记》,在语雀上我的个人......
  • Kali学习笔记07-部署vulhub靶机
    Kali学习笔记07-部署vulhub靶机KaliLinux网络安防一、下载vulhub从vulhub的github网站vulhub/vulhub上下载它的压缩包,得到一个叫做vulhub-master.zip的压缩包。二、解压缩unzipvulhub-master.zip三、进入到某一个漏洞目录中enterdescriptionhere四、自......
  • vim 简易上手笔记
    vim的三种模式1.命令模式当您启动Vim时,您会进入命令模式。在此模式下,您可以执行各种操作,例如移动光标、删除、复制和粘贴。常用命令:i:切换到输入模式,开始输入文本。x:删除当前光标所在处的字符。::切换到底线命令模式,在最底一行输入命令。dd:剪切当前行。yy:复制当前行......