Funsound语音识别技术之 基于paraformer的自定义命令(唤醒)词识别

2024-08-21 05:36

本文主要是介绍Funsound语音识别技术之 基于paraformer的自定义命令(唤醒)词识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

免费语音识别转写(优于讯飞):www.funsound.cn

前言

Paraformer在声学后验上通过greedy search得到语音识别结果,对于自定义命令(唤醒)词识别,肯定还得走asr模型。对此我们可以在paraformer上为每个命令词构建模板进行命令匹配,最终结果远远优于科大讯飞语音控制sdk结果。

思路

大致思路如图,例如给”前翻页“命令制作模板,只需分析在解码后的声学后验上”前“/“翻”/"页"的能量分布。当然paraformer同时提供热词模块,添加以后会进一步提高命令词召回
在这里插入图片描述

代码

算法实现如下:

def kws(self,waveform_list,WORDS=[],as_hotwords=True):"""加载词表"""WORDS_IDXS = []for WORD in WORDS:WORD_IDX = self.converter.tokens2ids(list(WORD))WORDS_IDXS.append(WORD_IDX)"""解码"""_, AM_SCORES, VALID_TOKEN_LENS, US_ALPHAS, US_PEAKS = self.__call__(waveform_list=waveform_list,hotwords=" ".join(WORDS) if as_hotwords else "")RESULTS = []for am_score, valid_token_len in zip(AM_SCORES, VALID_TOKEN_LENS):am_score = am_score[:valid_token_len-1]best_score = -float('inf')for WORD, WORD_IDX in zip(WORDS, WORDS_IDXS):tgt_score = am_score[:,WORD_IDX]_max = np.max(tgt_score,axis=1)mean_score = np.mean(_max)if mean_score>best_score:best_score = mean_scorebest_word = WORDRESULTS.append([best_score, best_word])return RESULTS

召回率测试

在6个命令词,27人,820句的验证集上进行召回测试,测试集会进行一定程度加噪
在这里插入图片描述
结果可以看到当前基于paraformer的语音控制表现还是比较不错的。

这篇关于Funsound语音识别技术之 基于paraformer的自定义命令(唤醒)词识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092262

相关文章

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Linux grep 命令的使用指南

《Linuxgrep命令的使用指南》本文给大家介绍Linuxgrep命令的使用指南,包括基础搜索语法、实践指南,感兴趣的朋友跟随小编一起看看吧... 目录linux grep 命令全面使用指南一、基础搜索语法1. 基本文本搜索2. 多文件搜索二、常用选项详解1. 输出控制选项2. 上下文控制选项三、正则表达

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输