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,和以下音轨模块 ...
随机推荐
- Spring Boot 自动装配(二)
目录 目录 前言 1.起源 2.Spring Boot 自动装配实现 2.1.@EnableAutoConfiguration 实现 2.1.1. 获取默认包扫描路径 2.1.2.获取自动装配的组件 ...
- tp5引用第三方类vendor或extend(多种方法)
extend 方法一:命名空间引入 我们只需要把自己的类库包目录放入EXTEND_PATH目录(默认为extend,可配置),就可以自动注册对应的命名空间,例如: 我们在extend目录下面新增一个l ...
- bundle 的生成和使用
一.bundle 的生成 1.打开XCode,创建iOS版用的bundle资源包,有两种方式:第一种直接将工作,open in finder.在目录中直接新建文件夹,文件夹以bundle格式.文件夹 ...
- Java并发编程系列-(3) 原子操作与CAS
3. 原子操作与CAS 3.1 原子操作 所谓原子操作是指不会被线程调度机制打断的操作:这种操作一旦开始,就一直运行到结束,中间不会有任何context switch,也就是切换到另一个线程. 为了实 ...
- Java开发数据库设计的14个技巧,你知道几个?
1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对 ...
- ansible部署Tomcat
首先要准备的环境就是免密登录 这是要在ansible-playbook中所写的内容---- hosts: tomcat tasks: - name: 关闭防火墙 service: name ...
- 【译】在React中实现条件渲染的7种方法
原文地址:https://scotch.io/tutorials/7-ways-to-implement-conditional-rendering-in-react-applications 借助R ...
- 牛客练习赛32B Xor Path (树形dp)
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 给定一棵n个点的树,每个点有权值.定义表示 ...
- 前端day01
目录 软件开发架构 web服务的本质 HTTP协议 HTML的注释 HTML的文档结构 标签的分类 标签的分类 列表标签 表格标签 软件开发架构 c/s b/s b/s本质也是c/s ...
- jdk13-新特性预览
一新特性 350: Dynamic CDS Archives(动态CDS档案) 351: ZGC: Uncommit Unused Memory(ZGC:取消提交未使用的内存) 353: Reimpl ...