美文网首页
语音关键词识别--量化前与量化后精度比对

语音关键词识别--量化前与量化后精度比对

作者: 教训小磊 | 来源:发表于2022-07-09 15:36 被阅读0次

最近被老大安排去做了语音关键词检测,在出版本前需要有一组精度数据,故对此编写了一组量化前与量化后的精度比对代码。
这个比对代码分为两部分:1.去除叠词,2.滑动窗口逐一比对,窗口大小为4X1,步长为1,只记录匹配正确的词,滑动窗口大小依据具体关键词的组成个数而定,我这边都是4个字。

实现代码如下:

# encoding=gbk
import  os

menu=[
    ['xian', 'shi', 'qian', 'lu'],
    ['xian', 'shi', 'hou', 'lu'],
    ['xian', 'shi', 'zuo', 'lu'],
    ['xian', 'shi', 'you', 'lu'],
    ['da', 'kai', 'ping', 'mu'],
    ['guan', 'bi', 'ping', 'mu'],
    ['da', 'kai', 'quan', 'jing'],
]

IntFile='./150/int.txt'
FloatFile='./150/float.txt'

alphaslistIs=[]
alphaslistFs=[]

#读取int数据             文件名与数据之间是冒号的形式
with open(IntFile,'r') as fI:
    for intline in fI.readlines():
        id,alphas=intline.split(':')
        alphaslistI=alphas.split()
        alphaslistIs.append(alphaslistI)

#读取float数据              文件名与数据之间是空格的形式
with open(FloatFile,'r') as fF:
    for floatline in fF.readlines():
        alphaslistF=floatline.split()[1:]
        alphaslistFs.append(alphaslistF)

#用于保存文本结果
f=open(os.path.join(os.path.split(IntFile)[0],'result.txt'),'w')

FloatSum=0
IntSum=0
errorid=[]
errorNum=0
for k in range(len(alphaslistIs)):
    new_alphalist = []
    for i in range(len(alphaslistIs[k]) - 1):      #消除叠词
        if (alphaslistIs[k][i] != alphaslistIs[k][i + 1]):
            new_alphalist.append(alphaslistIs[k][i])

        if (i == (len(alphaslistIs[k]) - 2)):      #对最后2个字进行判断
            if (alphaslistIs[k][i] != alphaslistIs[k][i + 1]):
                new_alphalist.append(alphaslistIs[k][i + 1])
            else:
                new_alphalist.append(alphaslistIs[k][i])

    # 滑动窗口取数据,每次取4个字
    intN = 0
    for i in range(len(new_alphalist) - 3):
        tmp = []
        tmp.append(new_alphalist[i])
        tmp.append(new_alphalist[i + 1])
        tmp.append(new_alphalist[i + 2])
        tmp.append(new_alphalist[i + 3])
        if (tmp in menu):
            intN += 1
    IntSum+=intN

    # 滑动窗口取数据,对float文件操作,防止float文件有其他词
    floatN = 0
    for j in range(len(alphaslistFs[k]) - 3):
        tmp = []
        tmp.append(alphaslistFs[k][j])
        tmp.append(alphaslistFs[k][j + 1])
        tmp.append(alphaslistFs[k][j + 2])
        tmp.append(alphaslistFs[k][j + 3])
        if (tmp in menu):
            floatN += 1
    FloatSum+=floatN

    #判断float与int的正确数是否相等
    if(intN !=floatN):
        print('{}:int=<{}>-------float=<{}> '.format(k+1, intN, floatN))
        errorNum+=1
        errorid.append(k+1)
        f.writelines('{}:int=<{}>-------float=<{}> '.format(k+1, intN, floatN) + '\n')

print("准确率:{:.2f}%".format((IntSum/FloatSum)*100))
print('错误文件/总文件:{}/{}'.format(errorNum,len(alphaslistIs)))

f.writelines("准确率:{:.2f}%".format((IntSum/FloatSum)*100) + '\n')
f.writelines('错误文件/总文件:{}/{}'.format(errorNum,len(alphaslistIs)) + '\n')
f.close()

相关文章

  • 语音关键词识别--量化前与量化后精度比对

    最近被老大安排去做了语音关键词检测,在出版本前需要有一组精度数据,故对此编写了一组量化前与量化后的精度比对代码。这...

  • AdaRound:Up or Down? Adaptive Ro

    一、摘要 过往的模型量化的研究核心点都是如何寻一个更优scale值使得量化后的模型精度更高。 高通提出了一种名为A...

  • 语言模型

    模型:可以量化,可以打分。 语言模型 概率语言模型(统计语言模型) 用处示例:输入法、机器翻译、语音识别等。 N-...

  • 了解量化策略_day76

    量化投资的介绍 量化投资的发展 量化投资与主观投资的关系 认识一个量化投资策略 理工生做量化投资有什么优势 量化交...

  • 基于电话语音的语音识别鲁棒性问题

    随着语音识别技术的不断发展,当前的语音识别系统在安静环境下对朗读语音的识别可以达到非常高的识别精度。但是无处不...

  • 设置内容运营的目标

    为什么需要量化 识别与制定运营目标。内容运营是属于运营中的一种,只要是一项运营活动,就一定要有量化的目标。通过这些...

  • 关于多媒体的一些知识

    音频相关的概念 (1) 声音数字化过程:采样 -->量化-->编码 采样(采样频率,与采样周期成反比) 量化(量化...

  • 数字世界——量化的NeoWorld(上)

    量化不仅用在投资上,其实任何东西都可以量化,这样才能有一个具体的量度。从上次写文章了解了量化投资及量化策略后,就打...

  • RNA-seq数据分析

    话休絮烦 主要流程: 将reads比对到基因组上; 将比对好的reads进行拼装; 量化基因的表达水平; 计算在不...

  • 成功:量化与不量化

    昨天和你分享了,你为什么会成功,今天我继续和你来探讨一下,有关成功的话题。成功分为可以量化和不可以量化的内容,好的...

网友评论

      本文标题:语音关键词识别--量化前与量化后精度比对

      本文链接:https://www.haomeiwen.com/subject/rgxibrtx.html