Unity 声音处理 之 语音识别
音量检测
检测当前麦克风的输入音量
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; public class NewBehaviourScript2 : MonoBehaviour
{
private static int VOLUME_DATA_LENGTH = ; //录制的声音长度 public float volume; //音量 public Text text; public Slider slider; private AudioClip mMicrophoneRecode; //录制的音频
private string mDeviceName; //设备名称 public int xishu=;
private const int frequency = ; //码率
private const int lengthSec = ; //录制时长 // Use this for initialization
void Start () {
//获取设备名称
mDeviceName = Microphone.devices[]; //录制一段音频
mMicrophoneRecode = Microphone.Start(mDeviceName, true, lengthSec, frequency);
} // Update is called once per frame
void Update () {
volume = GetMaxVolume();
volume*=xishu;
slider.value=Mathf.Lerp(slider.value,volume/,0.1f);
text.text=volume.ToString();
} /// <summary>
/// 获取最大的音量
/// </summary>
///
/// <returns>
/// 音量大小
/// </returns>
private float GetMaxVolume()
{
float maxVolume = 0f; //用于储存一段时间内的音频信息
float[] volumeData = new float[VOLUME_DATA_LENGTH]; int offset;
//获取录制的音频的开头位置
offset = Microphone.GetPosition(mDeviceName) - VOLUME_DATA_LENGTH + ; if(offset < )
{
return 0f;
} //获取数据
mMicrophoneRecode.GetData(volumeData, offset); //解析数据
for(int i = ;i < VOLUME_DATA_LENGTH; i++)
{
float tempVolume = volumeData[i];
if(tempVolume > maxVolume)
{
maxVolume = tempVolume;
}
} return maxVolume;
}
}
关键字识别
此处利用win10自带的识别
记得引入
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Windows.Speech;//引入命名空间 利用
using SpeechLib;
public class NewBehaviourScript1 : MonoBehaviour
{
// 短语识别器
private PhraseRecognizer m_PhraseRecognizer;
// 关键字 public string[] keywords; public GameObject xiangdu; // 可信度
public ConfidenceLevel m_confidenceLevel = ConfidenceLevel.Medium;
// Use this for initialization
void Start ()
{ //创建一个识别器
m_PhraseRecognizer = new KeywordRecognizer (keywords, m_confidenceLevel);
//通过注册监听的方法
m_PhraseRecognizer.OnPhraseRecognized += M_PhraseRecognizer_OnPhraseRecognized;
//开启识别器
m_PhraseRecognizer.Start ();
} // 当识别到关键字时,会调用这个方法 private void M_PhraseRecognizer_OnPhraseRecognized (PhraseRecognizedEventArgs args)
{
print (args.text);
if (args.text.Equals("小爱"))
{
SpVoice v = new SpVoice();
v.Voice = v.GetVoices(string.Empty, string.Empty).Item();
v.Speak("我在");
} if (args.text.Equals("帮我倒杯水"))
{
SpVoice v = new SpVoice();
v.Voice = v.GetVoices(string.Empty, string.Empty).Item();
v.Speak("是的主人");
} if (args.text.Equals("播放七里香"))
{
SpVoice v = new SpVoice();
v.Voice = v.GetVoices(string.Empty, string.Empty).Item();
v.Speak("好的,主人,开始播放七里香");
gameObject.SetActive(false);
xiangdu.SetActive(true);
xiangdu.GetComponent<AudioSource>().Play();
} if (args.text.Equals("哈哈"))
{
SpVoice v = new SpVoice();
v.Voice = v.GetVoices(string.Empty, string.Empty).Item();
v.Speak("主人,我没听懂");
gameObject.SetActive(false);
xiangdu.SetActive(true);
xiangdu.GetComponent<AudioSource>().Play();
}
}
private void OnDestroy ()
{
//用完应该释放,否则会带来额外的开销
m_PhraseRecognizer.Dispose ();
}
// Update is called once per frame
void Update ()
{ } }
Unity 声音处理 之 语音识别的更多相关文章
- dome 模块 pyaudio 声音处理 为语音识别准备
dome 模块 pyaudio 声音处理 为语音识别准备 直接上例子 dome1 声音强度检查 import pyaudio import numpy as np class QAudio: CHUN ...
- 【Unity】讯飞语音识别SDK
1.进入讯飞官网,注册帐号,进入控制台,创建新应用UnityXunfeiDemo,平台选Android.在当前应用这点下载SDK,添加AI能力(添加新服务),选择语音听写,即可下载安卓SDK(下称讯飞 ...
- Unity声音-音源组件
音源组件(AudioSource) 音源是场景中在某个位置的发声装置,好像一个喇叭.它播放着音频片段 (Audio Clip). 发出的声音将输出到声音监听器(audio listener),或者声音 ...
- Unity 声音与录音与麦克风实时播放
Unity AudioSource与MicroPhone以及AudioClip之间的关系. 下面是一个声音,长度为7秒钟,声音的实际数据本质是由采样点组成的的列表,一秒钟内的采样点数就是采样频率,下面 ...
- Unity 声音播放不受Time.scale为0的影响
其他会暂停,目前发现声音不受影响 嗯,就这样.
- HoloLens开发手记 - Unity之Spatial Sounds 空间声音
本文主要讲述如何在项目中使用空间声音特性.我们主要讲述必须的插件组件和Unity声音组件和属性的设置来确保空间声音的实现. Enabling Spatial Sound in Unity 在Unity ...
- (二)Hololens Unity 开发之 语音识别
学习源于官方文档 Voice input in Unity 笔记一部分是直接翻译官方文档,部分各人理解不一致的和一些比较浅显的保留英文原文 (二)Hololens Unity 开发之 语音识别 Hol ...
- (三)Hololens Unity 开发之 语音识别
学习源于官方文档 Voice input in Unity 笔记一部分是直接翻译官方文档,部分各人理解不一致的和一些比较浅显的保留英文原文 (三)Hololens Unity 开发之 语音识别 Hol ...
- 给自己的Unity添加声音文件
下面说明一下,在Unity 里是怎么样加载声音文件的. Unity同时支持单声道和立体声音频资产. Unity支持导入以下音频文件格式:.aif, .wav, .mp3, 和 .ogg,和以下音轨模块 ...
随机推荐
- 揉碎HTTP编码过程,从此不乱码
老生常谈之HTTP乱码问题 最后的结论? 对于get请求 在Servlet中调用request.setCharacterEncoding()设置编码是没有意义的不管你使用任何编码方式对于你的数据解码没 ...
- 并行通信芯片8255A学习总结
并行通信接口8255A AB口为两个数据端口,C口可以作为数据端口也可以作为状态端口 8255A是一个40引脚的双列直插式芯片 引脚如下 D0-D7:双向数据信号线. RD:读信号线. WR:写信号线 ...
- 阿里巴巴 Service Mesh 落地的架构与挑战
点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 方克明(溪翁 ...
- C#开发安卓自学笔记1
今天开始研究了下C#开发安卓,刚开始什么都不懂,学过安卓的同学们也是用Java开发的,虽然两者开发差别不大,但是还是有差别的 // Set our view from the "main&q ...
- 数据库Oracle函数之单行函数的介绍
函数介绍: 函数:是数据库产品中提供的能够处理查询结果的方法. 函数能够用于下面的目的: • 执行数据计算 • 修改单个数据项 • 格式化显示的日期和数字 • 转换列数据类型 • 函数有输入参数,并且 ...
- 【解决】OCI runtime exec failed......executable file not found in $PATH": unknown
[问题]使用docker exec + sh进入容器时报错 [root@localhost home]# docker exec -it container-test bash OCI runtime ...
- 学习Java必看的Java书籍(高清中文最新版附下载链接)
今年下半年,我正式系统地学习Java(之前学习C++).最近把学习Java所用到的书籍整理了一下,分享出来,希望对正在学习或准备学习Java的人有一定的帮助. 关于Java的学习路线,和IDE工具In ...
- python列表式推导
1.基本语法 [表达式 for 变量 in 列表] 或者 : [表达式 for 变量 in 列表 if 条件] 2.示例 生成列表 li=[x for x in range(10)] print(l ...
- Beego在views中格式化显示时间(int64转string)
最近在使用beego开发系统的过程中,遇到时间转换问题,需求如下: 通过以下函数获取Unix时间戳,后台数据库格式为int64: time.Now().Unix() 效果图: 从数据库获取数据,直接以 ...
- 【Java Web开发学习】Spring4条件化的bean
[Java Web开发学习]Spring4条件化的bean 转载:https://www.cnblogs.com/yangchongxing/p/9071960.html Spring4引入了@Con ...