【英语学习系统】unity3d中场景跳转时出现的windows语音识别问题

之前的博文有提到使用windows自带的语音识别,我们项目在每一个场景中都加入了语音识别,但是当遇到场景跳转时,到达第二个场景后,语音识别的开启会概率性出错,尝试多种方法后进行暴力方法解决此错误。

暴力解决方案如下:

当语音识别出现超时错误后判断错误方式,重新实例化语音识别,并开启;当语音识别过程中出现其他错误后,也重新实例化语音识别并开启,在经过多次测试后发现此方比较稳定,出错率大大降低。

当发生场景跳转时,Dispose方法注销方法时或停止实例化的语音识别后会偶尔出现错误但不影响程序的运行,具体原因暂不清楚。


系统中选择单元场景的代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Windows.Speech;
using System;
using System.Text;
using System.IO;
using NAudio.Wave;
using System;


public class unit : MonoBehaviour
{
    private string strFilname;
    public AudioSource Source;
    [Tooltip("A text area for the recognizer to display the recognized strings.")]
    public Text DictationDisplay;
    private DictationRecognizer dictationRecognizer;
    bool mark = true;

    public IEnumerator LoadMusic(string filepath, string savepath)
    {
        var stream = File.Open(filepath, FileMode.Open);
        var reader = new Mp3FileReader(stream);
        WaveFileWriter.CreateWaveFile(savepath, reader);
        var www = new WWW("file://" + savepath);
        yield return www;
        var clip = www.GetAudioClip();
        Source.clip = clip;
        Source.Play();

    }

    // Use this for initialization
    void Start()
    {
        Debug.Log(234);
        aduio aa = new a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值