当前位置: 首页 > news >正文

多说话人ASR的衡量指标和有效计算工具包

WER (Word Error Rate)

  1. 定义:预测的识别语音序列于groundtruth抄本之间的编辑距离 除以 ground truth抄本的单词数量

        编辑距离 (预测的识别语音序列,groundtruth 抄本)/ ground truth抄本的单词数量

        英文定义:It is given by the Levenshtein distance between the recognized word sequence         and the ground truth transcription divided by the number of words in the ground truth         transcription.

编辑距离的定义:

  1. 从一个字符串到另外一个字符串的最小的替代,插入和删除的操作次数

  2. The Levenshtein distance is defined as the minimal number of substitution, insertion and deletion operations required to turn one word string into another.

多说话人的ASR系统的一些概念

  1. 单个说话人的输入和单个抄本输入 single speaker at the input and output a single transcription 叫SISO

  2. 多个说话人的合并音频(有可能存在overlap)的输入和多个输出序列的系统称为 MIMO

        containing multiple speakers at their input and that produce multiple output word sequences (MIMO)

  3. MIMO抄本转录系统的目标是回答问题:谁什么时候说了什么,既转录的内容包括时间戳信息,说话人label和抄本单词

不同的WER衡量指标

Concatenated Minimum Permutation WER

串联最小排列词错误率

cpWER

  1. 将每个说话者的所有语音连接起来作为reference(groundtruth)和hypothesis 文件(预测序列)

  2. 计算参考值与假设的所有可能的说话人排列之间的 WER。有 24 种这样的排列。

  3. 从中挑选出 WER 最低的(这被认为是最佳排列)。

cpWER 直接受说话人切分结果的影响。除了显示整个录音的错误率的 cpWER 之外,我们还通过从参考中恢复话语信息来报告每个话语的详细错误。

Optimal Reference Combination WER

ORC WER

  1. 多个参考转录: 可能有多个参考转录用于同一个语音片段,来自不同的来源或经过不同的处理。ORC WER 旨在处理这种多参考的情境,选择最能代表语音内容的参考转录。

  2. 最优参考组合: 对于每个语音单元(utterance),ORC WER 通过计算并比较每个参考与系统输出的词错误率,选择一个具有最低错误率的参考转录。这使得 ORC WER 能够反映出在多参考情况下,系统表现的最优情况。

  3. 提高准确性: 通过选择多个参考转录中的最佳组合,ORC WER 在评估时能够更精确地反映系统的性能,避免由于参考转录的不完全或不一致性带来的偏差

ORC WER 引入多个参考转录,并采用一种最优组合策略来减少对单一参考转录的依赖。这意味着,对于每个输入的语音片段,ORC 会选择多个参考转录中的“最佳”一个进行比较,而不是仅依赖于一个固定的参考。

Multiple Input Multiple Output (MIMO) WER

MIMO WER

1. 定义参考和假设序列

  • 参考序列:有 III 个参考语音序列,每个序列对应一个真实的转录。

  • 假设通道:有 JJJ 个假设通道,每个通道对应一个 ASR 系统的转录输出。

2. 语音段落的分配(Utterance Assignment)

  • 对于每个参考语音序列 RiR_iRi,找到与之匹配的假设通道 HjH_jHj,以确保每个说话人的语音段落连续保留在一个通道中。这一过程涉及:

    • 避免通道切换:保证同一说话人的语音在同一个假设通道中处理。

    • 遵循顺序约束:保证同一说话人说话的顺序不被打乱。

3. 计算每个通道的 SISO WER

  • 对于每个假设通道 HjH_jHj,计算其与参考序列 RiR_iRi 之间的单一输入单一输出(SISO)词错误率(WER。这个步骤按如下公式计算: WERSISO=S+D+IN\text{WER}_{\text{SISO}} = \frac{S + D + I}{N}WERSISO=NS+D+I 其中:

    • SSS 是替换错误数(substitutions)

    • DDD 是删除错误数(deletions)

    • III 是插入错误数(insertions)

    • NNN 是参考文本中的总词数(number of reference words)

4. 最优参考通道匹配

  • 对于所有可能的参考与假设通道的匹配组合,选择一个最优匹配,即选择那个能够最小化总的 MIMO WER 的参考-假设通道配对。由于参考序列和假设通道的数量很大,这一过程是一个计算密集型的任务,通常通过动态规划或其他优化算法来实现。

5. 计算最终的 MIMO WER

  • 最终的 MIMO WER 是所有参考与假设通道匹配的 SISO WER 的加权平均值。它仅计算转录错误,不考虑说话人归属错误(即不考虑是否有正确的说话人识别信息)。

MIMO WER 是一种评估多通道自动语音识别(ASR)系统的指标,通过最优匹配参考和假设通道,计算多说话人环境中词错误率,同时避免通道切换,确保同一说话人的连续语音保持在一个通道中。

greedy_orcwer

greedy_orcwer

使用贪心算法计算最优参考组合词错误率(ORC WER 使用一种贪心算法计算 最优参考组合词错误率(ORC WER),这种算法比最优算法更快速,但不保证产生相同的结果

tcpwer

tcpwer

计算时间约束最优参考组合词错误率(tcORC WER 计算时间约束最优参考组合词错误率(tcORC WER),类似于 ORC WER,但考虑了时间约束条件,即在评估时需要遵守语音的时间顺序。

greedy_dicpwer

greedy_dicpwer

计算时间约束去识别说话人连接最小置换词错误率(greedy DI-tcpWER) 使用贪心算法计算时间约束去识别说话人连接最小置换词错误率(greedy DI-tcpWER),在多说话人环境下,结合了去识别说话人技术和时间约束条件。

greedy_tcorcwer

greedy_tcorcwer

计算时间约束最优参考组合词错误率(tcORC WER 使用贪心算法计算时间约束最优参考组合词错误率(tcORC WER),类似于 tcORC WER,但使用了更快速的贪心算法。

开源计算工具meeteval (也是chime竞赛指标代码依赖库)

  1. 参考文献:ON WORD ERROR RATE DEFINITIONS AND THEIR EFFICIENT COMPUTATION FOR MULTI-SPEAKER SPEECH RECOGNITION SYSTEMS

  2. 代码库地址:https://github.com/popcornell/meeteval/tree/2b06cead668a26d153ee9618950a6ac80445307c

  3. 安装步骤和注意事项

        1) pip install meeteval

        2) 如果出现x86_64-linux-gnu-g++编译不过的情况,先更新g++

                  (a) sudo apt update sudo; apt install g++

                   (b) sudo apt install build-essential

                   (c) g++ --version

                更新完g++之后再安装步骤 1)pip install meeteval

        3) 安装成功后

        4)配置~/.bashrc

                首先是找到安装位置

                        find ~/.local -name 'meeteval-wer'

               假设搜索到的位置是:/home/xxx/.local/bin/meeteval-wer

                在~/.bashrc 写入:export PATH=$PATH:/home/xxx/.local/bin

                source ~/.bashrc

        5) 在shell环境测试meeteval-wer

                   meeteval-wer cpwer -h example_files/hyp.stm -r example_files/ref.stm

                   测试过程中有可能需要其他的包?,直接pip install ?就可以

相关文章:

多说话人ASR的衡量指标和有效计算工具包

WER (Word Error Rate) 定义:预测的识别语音序列于groundtruth抄本之间的编辑距离 除以 ground truth抄本的单词数量 编辑距离 (预测的识别语音序列,groundtruth 抄本)/ ground truth抄本的单词数量 英文定义:It is g…...

英伟达(NVIDIA)

本文来自智谱清言 ------------------------------ 英伟达(NVIDIA)是一家成立于1993年的美国跨国科技公司,由黄仁勋、克里斯马拉科夫斯基和柯蒂斯普里姆共同创立。公司总部位于加利福尼亚州圣克拉拉市。英伟达最初专注于图形芯片的设计&…...

【环境配置】Jupyter Notebook切换虚拟环境

在Jupyter Notebook中是可以切换虚拟环境的,以下是几种常见的方法: 方法一:使用nb_conda_kernels扩展(适用于Anaconda环境) 安装 如果你使用的是Anaconda环境,首先确保你已经安装了 nb_conda 包。如果没…...

嵌入式单片机窗口看门狗控制与实现

窗口看门狗 注意:WWDG外设没有独立的时钟源,而是挂载在APB1总线下,APB1总线外设时钟为42MHZ。 了解WWDG外设的使用流程,可以参考stm32f4xx_wwdg.c的开头注释,具体流程如下图所示...

NiChart 多模态神经影像(structural MRI,functional MRI,and diffusion MRI)处理和分析工具包安装

NiChart多模态神经影像部署 NiChart 本地安装Git clone 问题personal access token PAT 问题 NiChart 云端注册AWS验证问题 NiChart 是UPenn大学,Christos Davatzikos教授开发的一个多模态MRI影像,structural (sMRI), diffusion (dMRI), and …...

Es搭建——单节点——Linux

Es搭建——单节点——Linux 一、安装 下载安装包: 官网下载地址:https://www.elastic.co/downloads/elasticsearch 上传包到linux 切换到安装目录下 解压:tar -zxvf elasticsearch-7.17.1-linux-x86_64.tar.gz 重命名安装文件夹 mv elastics…...

Python自动化测试之线上流量回放:录制、打标、压测与平台选择

在自动化测试中,线上流量回放是一项关键技术,可以模拟真实用户的请求并重现线上场景,验证系统的性能和稳定性。本文将介绍Python自动化测试中的线上流量回放技术,并提供实战代码,帮助你了解流量的录制、打标、压测发起…...

k-Means聚类算法 HNUST【数据分析技术】(2025)

1.理论知识 K-means算法,又称为k均值算法。K-means算法中的k表示的是聚类为k个簇,means代表取每一个聚类中数据值的均值作为该簇的中心,或者称为质心,即用每一个的类的质心对该簇进行描述。K-Means算法接受参数K;然后将…...

STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器

STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器 1、按键控制 LED 按键:常见的输入设备,按下导通,松手断开 按键抖动:由子按键内部使用的是机械式弹簧片来进行通断的、所以在按下和松手的瞬间会伴随有一连串的抖动 按键控制LED接线图: 要有工程…...

VUE前端实现防抖节流 Lodash

方法一:采用Lodash工具库 Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。 (1)采用终端导入Lodash库 $ npm i -g npm $ npm i --save lodash (2)应用 示例:搜索框输入防抖 在这个示例…...

Ubuntu20.04 交叉编译Qt5.15.15 for rk3588

rk3588编译Qt搞了我大半年了,一直困惑特别鸣谢:qq1033878279的网友远程帮我编译演示了一遍。 一、vmware 安装基础工具 sudo apt install -y build-essential net-tools openssh-server vim openssl libssl-dev 二、vmware 下载 cmake和Qt源码 下载cm…...

Unity编译Android apk包进度奇慢或gradle报错的解决方案

最近遇到Unity编译Android apk进度卡在"Calling IPostGenerateGradleAndroidProject callbacks"进度一直不变,如下图: 最后提示编译失败,类似错误如下: Picked up JAVA_TOOL_OPTIONS: -Dfile.encodingUTF-8FAILURE: Bu…...

【Qt】多元素控件:QListWidget、QTableWidget、QTreeWidget

目录 QListWidget 核心属性: 核心方法: 核心信号: 例子: QListWidgetItem QTableWidget 核心方法: 核心信号 QTableWidgetItem 例子: QTreeWidget 核心方法: 核心信号&#xff1a…...

Docker基础知识 Docker命令、镜像、容器、数据卷、自定义镜像、使用Docker部署Java应用、部署前端代码、DockerCompose一键部署

目录 1.Docker 2.镜像和容器 2.1 定义 2.2 开机自动启动容器 3.docker命令 3.1 docker run 参数说明 3.2 常见命令 3.3 命令演示 3.4 命令别名 4.Docker命令详解 5.数据卷 5.1 定义 5.2 数据卷的相关命令 5.3 数据卷命令 5.4 挂载本地目录或文件 5.4.1 定义 5.4.2 mysql容器目录…...

Qt For Android之环境搭建(Qt 5.12.11 Qt下载SDK的处理方案)

文章目录 一、Qt For Android运行示例二、个人理解及情况解析三、配置Android相关配置项3.1 安装简述3.2 安装Qt1.安装Qt第一步:启动Qt安装包程序2.Qt账号(注册)登录3.了解Qt开源使用义务4.指定Qt安装目录5.选择Qt安装内容6.接受“许可协议”…...

低代码开发中 DDD 领域驱动的页面权限控制

在低代码开发的领域中,应用安全与灵活性是两大关键考量因素。领域驱动设计(DDD)作为一种在软件设计领域广泛应用且颇具影响力的方法论,正逐渐在低代码开发的页面权限控制方面展现出其独特的价值与潜力。本文旨在客观地探讨如何借助…...

如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈

如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈 h5如何转小程序 如果当年你们开发网站是用的h5但是没有开发小程序,也没有使用uniapp这样的混开框架,但是目前根据业务需…...

docker redis安装

一.镜像拉取 docker pull redis:5.0新建文件 touch /home/redis/redis.conf touch /home/redis/redis_6379.pid # bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 ::1 #bind 127.0.0.1protected-mode noport 6379tcp-backlog 511requirepass roottimeout 0tcp-keepali…...

apisix的hmac-auth认证

目录 1、apisix的hmac认证Authorization头信息 2、signature的lua生成源码 3、java生成签证的简单示例 4、postman调用如下 apisix的hmac-auth认证,介绍可以看官方文档 hmac-auth | Apache APISIX -- Cloud-Native API Gateway 照着官方文档,发现生…...

elementPlus消息组件多按钮案例

let customClass zsl-el-message-box efb.messageBox({title: 操作提示,showConfirmButton: false,customClass,message: efb.VNode(div, null, [efb.VNode(style, null, .${customClass} .el-message-box__message {width: 100%;}),efb.VNode(div, null, hello world),efb.VN…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

大数据学习(132)-HIve数据分析

​​​​🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言&#x1f4…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键&#xff…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

大数据驱动企业决策智能化的路径与实践

📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:数据驱动的企业竞争力重构 在这个瞬息万变的商业时代,“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...