unity 百度语音识别课程设计开发总结
一:简介及流程:
1.1 课题背景及相关概念
随着现代科学的发展,移动江联网己迅速成为当今世界发展最快、规模鉍大的 市
场前景最好的行业。但由于现有的移动终端设备交互方式存在 i#多局限性,譬 如键盘
太小,输入文字不便;以及无法处理特定场景下的交丌,如驾:午:和步行等 愔形。所
以人们在与机器的佔总交流中,需要一种更加方便、自然的方式,而语 言是人类 MM
要、M 有效、最常川和 M 方便的通佶方式。自从人类可以制造各种 机器以来,人们
就有一个理想,那就是 U:各种机器能‘‘听愦”人类的语音并能按 人的口头命令来
行动,从而实现人机的语言交流。这就很容易 lh 人们想到能否川 人类的自然语吉代
替传统的人机交互方式(如键盘、W 标等)。
语音识别技术,也被称力自动语音识別(Automatic Speech Recognition 简称 AS
R),其目标是将人类的语音中的同汇内容转换力计算机可读的输入,例如按键、 二进制
编码或#字符序列,也就是让机器通过 Ui 別和理解把语音信号转变力相应 的文本或命
令的技术。自动语音识別技术所要解决的 M 题是 U:计算机能够“听傾” 人类的语
吉,将语言屮包含的文字信总“提取”出来。ASR 技术的出现,使人类希 望机器“听
愤”人类的语言的理想得以实现。
1.2 课题研究意义
语音识别技术是一门交叉学科,语音识别正逐步成为信息技术中人机交互的 关键
技术,语音识别技术与语音合成技术的结合,开启了人机交互方式的新时代, 它将彻
底解放用户的双手与眼睛,使人们能够甩掉键盘,通过语音命令进行操作。 语音技术
的应用己经成为一个具有竞争性的新兴高技术产业。当今,语音识别产 品在人机交互
应用中占到越来越大的比例。可以预见,语音操作将会是未来很长 一段时间内智能终
端继键盘和触摸操作之后的必然发展趋势。
1.3 研究现状
语音识别的研究工作可以追溯到 20 世纪 50 年代 AT&T 贝尔实验室的 Audry 系
统,它是一个可以识别十个英文数字的语音识别系统。
1.4 程序编写流程
1.unity 环境。
2.百度注册账号获取自己的账号密码。(在程序中通过网络访问百度语音库时使
用)。
3.本程序未使用官方提供的 sdk 解析库文件,而是用 LitJson 进行数据的解压操
作。
4.将以上 3 个文档上拖至该位置
5.进行相应的 UI 界面设置
6.进行语音识别项目的发开
1.5 开发平台及工具
1.unity
2.C#
3.百度语音包
二:代码设计流程
1.实现图解
开始按钮
开始录音
获取访问权限
开始了录制音频
成功
上传音频
访问成功并上传
百度内部服务器进行
相应的解析,并产生
结果
2.代码详解:
1.导入相应的包并引用到程序:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using UnityEngine.Networking;
using UnityEngine.UI;
using UnityEngine.Events;
using System;
using System.Text.RegularExpressions;
再次成功 post 百度服务器,成功并下
载生成的语音结果
此处为外加解析包
2.UI 界面的构建(此处省略)
3.定义百度注册访问信息变量:
4.运用 WWWForm 类进行个人访问信息的登录,并向授权服务地址 https://aip.baid
ubce.com/oauth/2.0/token 发送请求(推荐使用 POST),并在 URL 中带上以下参
数:
grant_type: 必须参数,固定为 client_credentials;
client_id: 必须参数,应用的 API Key;
client_secret: 必须参数,应用的 Secret Key;
5.获取 Access Token
请求 URL 数据格式
向授权服务地址 https://aip.baidubce.com/oauth/2.0/token 发送请求(推荐使
用 POST),并在 URL 中带上以下参数:
grant_type: 必须参数,固定为 client_credentials;
client_id: 必须参数,应用的 API Key;
client_secret: 必须参数,应用的 Secret Key;
5.获取 json 数据
6.运用控制音频录制:
7.上传录制的音频(百度语音文字的生成)
8.服务器处理完成,向服务器发送请求并且下载数据到本地,然
后进行显示
三:运行结果:
语音未录入或录入失败:
四:代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using UnityEngine.Networking;
using UnityEngine.UI;
using UnityEngine.Events;
using System;
using System.Text.RegularExpressions;
//当你添加的一个用了 RequireComponent 组件的脚本,需要的组件将会自动被添加到 gameobject(游戏物体)
[RequireComponent(typeof(AudioSource))]
public class sound_con : MonoBehaviour{
//public static Action action;
public Text text;
public Text text1;
public string AppID= "14939743";
public string APIKey= "81tv3T5vF6DNfWlPjcXwsSs2";
public string SecretKey= "3roMPqjRBIjGVPTOkkpDlyY7MzI2OZtK";
///
/// 获取相应的请求地址
/// 返回 Json 数据,每次获取的 token 数据都不相同
///
///token 身份验证
public string GetTokenUrl= "https://aip.baidubce.com/oauth/2.0/token";
///
/// 获取到相应的 token
///
public string Access_Token = "";
public Button button_click;
[Header("音频录制时间")]
public int record_time = 10;
[Header("声频")]
public int high_ = 16000;
//录音状态
private bool Is_true=false;
//麦克风的设备名称
public string Mic_name = "Realted High Definition Audio";
///
/// 录制的音频片段
///
public AudioClip Audio_record;
///
/// 播放的音频音源
///
public AudioSource audio_source;
///
/// 语音识别地址
///
public string speechrecongnition_Address = "https://vop.baidu.com/server_api";
///
/// 语音合成地址
///
public string SpeechSynthesis_Address = "http://tsn.baidu.com/text2audio";
///
/// 识别到的文字
///
//2
public string recorded_text=string.Empty;
// Use this for initialization