上次写了个语音识别的博客,能够识别录制的音频文件并转成一个字符串。效果很好,而且还是识别的中文。不过很快又意识到几个问题:
1.你不能指望每次翻译的都那么准确,或者说,一字不差。
2.口语化的表达使得往往一大堆的语句其实是一个意思。
所以我们不难发现一个事实,如果语音识别要拿来用的话,这种对应最好不要是一一映射的,就比如,如果我只识别到了玩家说了“攻击”,才让我们的游戏物体做出相应的操作的话,那么问题来了,万一玩家实际说的是“进攻”,抑或是更口语化的表达,又或者说是说了攻击但被识别成了“公鸡”,那怎么办呢?难道就不执行这种操作了吗?这显然是不行的。
于是便有了两个想法:建立一张等价表,这是一张多对一的映射表,多种输入可以达成同一种输出,其次,对于一个字符串,只需要字符相似度达到一定的时候,就认为是同一个句子。
思路有了,很快就能撸出一个字符串配对的小系统,以下是代码:
using UnityEngine;
using System.Collections;
usin