这里转载借鉴了我们实验室一位大佬在之前写一个基于语音识别的游戏写的代码。
在实现了用百度语音API实现音频文件转换成字符串之后开始来对特征字符开发具体功能。但是这里首先出现了一些问题。
1.你不能指望每次翻译的都那么准确,或者说,一字不差。
2.口语化的表达使得往往一大堆的语句其实是一个意思。
所以我们不难发现一个事实,如果语音识别要拿来用的话,这种对应最好不要是一一映射的,就比如,如果我只识别到了玩家说了“攻击”,才让我们的游戏物体做出相应的操作的话,那么问题来了,万一玩家实际说的是“进攻”,抑或是更口语化的表达,又或者说是说了攻击但被识别成了“公鸡”,那怎么办呢?难道就不执行这种操作了吗?这显然是不行的。
于是便有了两个想法:建立一张等价表,这是一张多对一的映射表,多种输入可以达成同一种输出,其次,对于一个字符串,只需要字符相似度达到一定的时候,就认为是同一个句子。
思路有了,很快就能撸出一个字符串配对的小系统,以下是代码:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
namespace STRINGTOINSTRUCT
{
public class stringsystem
{
public float EndureWrongRate;
public int MAX_INSTRUCT_COUNT;
public int MAX_DEPENCE_C