上云无忧 > 文档中心 > 百度智能云拼音相似度比较开发工具
语音识别
百度智能云拼音相似度比较开发工具

文档简介:
本java demo能将中文转换为拼音,并比较拼音相似度;进而可以在一组候选词中,找到读音与搜索词最为接近的词组。 该工具能够有效解决同音词、相似发音词、发音不标准等特殊情况下的语音识别。 例如,在通讯录场景下,如果用户需要识别的正确联系人是“张三”,但语音识别接口返回的结果可能是“张山”;此时则可以将用户的联系人列表和“张山”作为输入,通过本工具查找出与“张山”最匹配的结果,有效提高结果的准确率。 【百度智能云】实时语音识别 【百度智能云】短语音识别标准版
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

简介

本java demo能将中文转换为拼音,并比较拼音相似度;进而可以在一组候选词中,找到读音与搜索词最为接近的词组。

该工具能够有效解决同音词、相似发音词、发音不标准等特殊情况下的语音识别。 例如,在通讯录场景下,如果用户需要识别的正确联系人是“张三”,但语音识别接口返回的结果可能是“张山”;此时则可以将用户的联系人列表和“张山”作为输入,通过本工具查找出与“张山”最匹配的结果,有效提高结果的准确率。具体可参考下方的示例。

示例说明

本工具的输入包括一组候选词和一个搜索词,输出是每个候选词与搜索词的距离(差异值)。注意:距离越短,相似度越高。

示例 输入1: 一组候选词,如:"张三", "张散", "张丹", "张成", "李四", "李奎" 输入2: 一个搜索词, 如:“张山” 输出:每个候选词与搜索词的距离(如下)


[{word=张三, score=2}, {word=张散, score=3}, {word=张丹, score=4}, {word=张成, score=7}, {word=李四, score=18},
 {word=李奎, score=20}]


该结果表示 “张山”与“张三” 发音最为相近,则“张三”是最有可能的正确词汇。

局限性举例

以下case将不能很好地适用于本算法,请使用的时候先行评估。

1.区分s和sh,可能相似

输入1 输入2 输出
sao3 shao3 2
sao3 pao3 2
sao3 dao3 2
sao3 hao3 2
输入1 输入2 输出
shi1 zhi1 2
shi1 chi1 2
shi1 si1 2
shi1 sha1 2

2.区分en和eng

输入1 输入2 输出
shen1 sheng1 2
shen1 zhen1 2
shen1 she1 2
输入1 输入2 输出
meng2 men2 2
meng2 ming2 2
meng2 mang2 2

3.区分i和ie

输入1 输入2 输出
xi1 pi1 2
xi1 mi1 2
xi1 xia1 2
xi1 xie1 2

4.区分yue和yu、ye、yun

输入1 输入2 输出
yue4 ye4 2
yue4 yun4 2
yue4 yu4 2

5.类似xi’an词语

输入1 输入2 输出
xi1,an1 xian1 3
xi1,an1 xie4,an1 3
xi1,an1 xin4,an1 3

重要代码

计算2个拼音的相似度,

使用方法如 getEditDistance("zhang1,san1", "zhang1,shan1");


public static int getEditDistance(String s, String t) { int d[][]; // matrix int n; // length of s int m;
 // length of t int i; // iterates through s int j; // iterates through t char s_i; // 
ith character of s char t_j; // jth character of t int cost; // cost // Step 1 n = s.length(); 
m = t.length(); if (n == 0) { return m; } if (m == 0) { return n; } d = new int[n + 1][m + 1]; 
// Step 2 for (i = 0; i <= n; i++) { d[i][0] = i; } for (j = 0; j <= m; j++) { d[0][j] = j; } 
// Step 3 for (i = 1; i <= n; i++) { s_i = s.charAt(i - 1); // Step 4 for (j = 1; j <= m; j++) 
{ t_j = t.charAt(j - 1); // Step 5 cost = (s_i == t_j) ? 0 : 1; // Step 6 d[i][j] 
= Minimum(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost); } } // Step 7 return d[n][m]; }


完整示例代码下载(JAVA)

https://platform.bj.bcebos.com/sdk/asr/asr_doc/doc_download_files/similarwordsV1.zip

相似文档
  • 由于百度rest api接口有60s的音频时长限制,使用此demo可以粗略地按照静音切分音频。 项目地址: https://github.com/Baidu-AIP/speech-vad-demo 集成 webrtc 开源项目,vad模块,具体算法GMM(Gaussian Mixture Model)。 注意这个是开源项目,效果远不如与百度语音LInux C++ SDK ,Android及iOS SDK自带的VAD功能,切割的文件需为pcm(16000采样率 小端序 16bits)的格式,其他格式需要提前转换,切割后也是pcm文件 【百度智能云】实时语音识别 【百度智能云】短语音识别标准版
  • 语义理解是通过一系列的AI算法,将语音识别输出的文本结果解析为结构化的、机器可读的意图与词槽信息,便于互联网开发者在语音交互场景下更好的理解并满足用户需求。 百度AI开放平台面向互联网开发者提供对自然语言文本的语义理解服务。语义理解基于百度最专业的语义理解平台——UNIT2.0,为开发者预置可一键式接入的语义理解服务,方便快捷的满足语义理解需求。 【百度智能云】实时语音识别 【百度智能云】短语音识别标准版
  • 语义理解协议描述语言: 语义理解的结果通过语义理解协议向开发者返回,为了易于人阅读,同时也方便机器解析和生成,采用 json 语言进行描述,utf-8 编码。json 语言的基本概念: 属性名/属性值。 即键值对(key-value)。 【百度智能云】实时语音识别 【百度智能云】短语音识别标准版
  • 天气(weather)能支持对天气、温度、风速等属性的查询的解析。天气意图及词槽表示如下: 注:"/"表示多个示例值分割;"{}"表示词槽的归一值取值范围是封闭集合,在示例中全部列举。以下各领域皆同。 列车(train)能够支持通用列车信息的查询解析,也可以解析对坐席、列车类别、票价等特殊查询请求的解析。列车意图及词槽表示如。 【百度智能云】实时语音识别 【百度智能云】短语音识别标准版
  • HI,您好,欢迎使用EasyDL语音识别。 原语音自训练平台即日已结束公测正式上线,品牌升级更名为“EasyDL语音识别”,平台和语音识别通用接口全面打通,语音技术下任一接口开通付费即可免费训练语音识别模型,无需额外费用。 【百度智能云】飞桨EasyDL零门槛AI开发平台 【百度智能云】语音自训练平台
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部