linux搭建声纹识别,声纹识别SDK-FreeSR

article/2025/8/20 7:36:13

FreeSR (A Free Library for Speaker Recognition),免费的声纹识别/性别识别SDK,支持Android/Windows/Linux等平台。

https://github.com/NonDay/FreeSR

1.实现算法:

gmm-ubm/i-vector/x-vector

2.功能

说话人识别(验证),包括注册/识别两个阶段 (gmm-ubm/i-vector)

性别识别,根据语音片段判断性别(gmm-ubm/x-vector)

3.支持平台

Windows/ Linux/ Android

4.使用方法

4.1Windows

4.2 Android

通过Android Studio 加载.so库,在项目里新建libs文件夹,根据debug/release选择对应的so库,拷贝目录 arm64-v8a、armeabi-v7a、x86、x86_64到libs文件夹下

67c5d9b35e99405208fb1f3abf691e02.png

在build.gradle文件里添加

android {

......

sourceSets{

main{

jniLibs.srcDirs = ['libs']

}

}

}

新建Package(com.freesr),将以下文件拷贝到该package目录

02cd87474af6399c6485825e4371a5f6.png

可进行说话人性别识别以及说话人识别,支持gmm-ubm和ivector,更详细的方法可参考java文件:

import com.freesr.*;

static {

System.loadLibrary("freesr");

}

//1. gener recognition

int sample_rate = 8000;

SpeakerRecognizerGMM SpkRec = new SpeakerRecognizerGMM(sample_rate);

ArrayListStr spk_models = new ArrayListStr();

ArrayListStr spk_names = new ArrayListStr();

spk_names.add("female");

spk_models.add("female.model");

spk_names.add("male");

spk_models.add("male.model");

boolean init = SpkRec.Init("freesr-gender-model.bin", spk_names, spk_models);

if(!init)

{

// failed to init

return ;

}

String rec_result = SpkRec.RecognizeSpeaker("english.wav");

double score = SpkRec.GetScore()

//2. speaker recognition

int sample_rate = 8000;

// SpeakerRecognizerIVector SpkRec = new SpeakerRecognizerIVector(sample_rate)

// boolean init = SpkRec.Init("freesr-ivector-model.bin", spk_names, spk_models);

SpeakerRecognizerGMM SpkRec = new SpeakerRecognizerGMM(sample_rate);

boolean init = SpkRec.Init("freesr-ubm-model.bin", spk_names, spk_models);

if(!init)

{

// failed to init

return ;

}

ArrayListStr fpaths = new ArrayListStr();

fpaths.add("english.wav");

fpaths.add("english.wav");

......

String reg_name = "spkA";

String reg_path = "spkA.model"

boolean ret = SpkRec.RegisterSpeaker(fpaths,reg_name,reg_path)

String rec_result = SpkRec.RecognizeSpeaker("english.wav");

double score = SpkRec.GetScore()

Android示例工程:https://download.csdn.net/download/u012594175/12296957

Android相关so文件下载地址:https://share.weiyun.com/5O9BdLP

地址:https://github.com/NonDay/FreeSR


http://chatgpt.dhexx.cn/article/np2NDUeE.shtml

相关文章

声纹识别概述(3)声纹识别系统

文章目录 1. 声纹识别系统框架1.0 声纹识别系统1.0.1 不太清晰的两个阶段:训练阶段和测试阶段1.0.2 只讲了一个阶段:测试/应用阶段(包括注册和验证)1.0.3 声纹识别系统的三个阶段 1.1 特征提取1.2 模型建立1.3 打分判决1.3.1 判决…

[声纹识别]基于MFCC的声纹识别算法

Mel频率倒谱系数(melfrequency cepstral coefficients,MFCC)是声音的短期功率谱的表示,基于非线性频谱上的对数功率谱的线性余弦变换。在自动语音识别领域,MFCC是使用最广泛的特征之一,同时,它也广泛应用于声纹识别领域…

声纹识别小总结

文章目录 1.声纹识别基础知识A.识别任务分类:1、固定文本:注册与验证内容相同;2、半固定文本:注册与验证内容一样但顺序不同,且文本属于固定集合;3、自由文本B.常见预处理特征:MFCC/FBank。C.常…

声纹识别概述

转载自https://blog.csdn.net/weixin_44278406/article/details/103787143 声纹识别绪论 前言 指纹信息、人脸信息和声纹(voice-print)信息作为人体固有的生物信息,是智能电子设备私有化部署及辅助辨认个体的媒介。目前,指纹和…

基于Pytorch实现的EcapaTdnn声纹识别模型

前言 本项目使用了EcapaTdnn模型实现的声纹识别,不排除以后会支持更多模型,同时本项目也支持了多种数据预处理方法,损失函数参考了人脸识别项目的做法PaddlePaddle-MobileFaceNets ,使用了ArcFace Loss,ArcFace loss:…

常用应用层协议的报文格式

常见应用层协议的报文格式 1.常用应用程序的端口号2.HTTP的报文格式 1.常用应用程序的端口号 名称应用层协议端口运输层协议说明超文本传输协议HTTP80TCP域名解析系统DNS53UDP/TCP长度超过512字节,使用TCP动态主机配置协议DHCP67/68UDP简单网络管理协议SNMP161/162UDP文件传输…

15-传输层协议和应用层协议

PS:针对上一篇tcp协议中说到的端到端服务,这里我们再通过传输层协议和应用层协议之间的关系来加深端到端服务的学习和理解。 1. 传输层协议和应用层层协议的关系 在应用层,我们知道有很多协议,比如常见的有http,tfp&am…

应用层协议(HTTP协议)

目录 HTTP 简介 URL urlencode&urldecode HTTP请求协议格式 HTTP响应格式 HTTP的常见方法 HTTP状态码 HTTP常见的Header HTTP 简介 HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务…

应用层常见协议——知识点

这里总结了三种常见的应用层协议:HTTP、FTP、SMTP。供自己复习使用,也供大家参考! 一、HTTP协议 1、HTTP简介 —超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW World Wide Web)服务器之间互相通信的…

应用层协议

应用层协议定义了什么 应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递消息。特别是定义了: 交换的消息类型,如请求消息和响应消息。 各种消息类型的语法,如消息中的各个字段及其详细描述。 字段的语义,即包含在字段中的信息的…

传输层协议、应用层协议

传输层协议、应用层协议 一、传输层协议 1、传输层概述 (1)传输层的作用 IP层提供点到点的连接 传输层提供端到端的连接 (2)传输层的协议 TCP(Transmission Control Protocol)传输控制协议 可靠的、面向连接的协议;传输效率低 UDP(User Datagram Protocol)用户数据报…

应用层协议和传输层协议

数字是离散的,模拟是连续的,对连续的信号进行采样就会变成数字信号(A/D转换) 在意念传输发明出来之前,计算机之间传输信息,总是需要介质的!要么有线传输,要么无线电波传输。你能接收…

传输层协议和应用层协议及它们之间的关系(端口)

一、传输层的两个协议 1、TCP协议 ①TCP协议的作用:TCP为应用层协议提供可靠传输,发送端按顺序发送,接收端按顺序接收,其间发生的丢包、乱序,TCP会负责其重传和排序,另外TCP还可实现流量空制和拥塞避免等…

基于TCP或UDP协议的应用层协议

TCP和UDP都是传输层协议,上面是应用层,下面是网络层 TCP与UDP区别: TCP(传输控制协议)提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,…

网络:应用层相关协议

应用层位于传输层之上,在OSI七层模型中,分为了三层,从上到下分别是应用层、表示层、会话层。这里对这三层不做具体区分。 应用层是面向用户的一层,主要包括FTP、HTTP、HTTPS、DNS、TELNET等协议。 1、DNS协议 1.1 DNS和域名 DNS…

基于TCP或UDP的应用层协议有哪些?——Linux网络编程

参考博文01:https://blog.csdn.net/Wu000999/article/details/89293717 博文02 https://blog.csdn.net/u014082714/article/details/44994719 这个面试的时候面试官经常会问我,然后就总结了一下。 TCP/IP四层模型(数网传应)&#…

应用层——协议

前言:本章将介绍关于应用层的协议,如下图所示 一、应用协议的概要 利用网络的应用程序有很多,包括Web浏览器、电子邮件、远程登陆、文件传输、网络管理等,能够让这些应用进行通信处理的正是应用协议。 网络应用由不同的用户和软…

常见应用层协议

常见应用层协议 1、超文本传输协议 用于传输浏览器使用的普通文本、超文本、音频和视频等数据。 详细情况请看:超文本传输协议HTTP/HTTPS 2、邮件协议 在互联网中,电子邮件的传送是依靠这些协议完成的。 详细情况请看:邮件协议SMTP/POP3…

《白帽子讲web安全》读书笔记以及读后感

因为本书作于2010年前,书中所使用的部分技术版本已经过于老旧,很多书中提到的攻击方法和绕过思路都已经严重落后,但之所以本书会成为安全界的经典必读书目,就是因为本书所讨论的安全思想尤为精华,对于企业来说的安全建…

《白帽子讲Web安全 -- 纪念版 吴翰清著》读后随笔

《白帽子讲Web安全 – 纪念版 吴翰清著》 该书大多数内容举例大多数是2010年左右的 相隔11年左右, 但是内容并没有被淘汰, 感觉很适合入门, 因为内容详细且比较基础 当然, 这只是对我而言 该书一共 四篇 18章 第一篇世界观安全 - 第一章 我的安全世界观 第一章第一节介绍了…