音量检测

检测当前麦克风的输入音量

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 声音处理 之 语音识别的更多相关文章

  1. dome 模块 pyaudio 声音处理 为语音识别准备

    dome 模块 pyaudio 声音处理 为语音识别准备 直接上例子 dome1 声音强度检查 import pyaudio import numpy as np class QAudio: CHUN ...

  2. 【Unity】讯飞语音识别SDK

    1.进入讯飞官网,注册帐号,进入控制台,创建新应用UnityXunfeiDemo,平台选Android.在当前应用这点下载SDK,添加AI能力(添加新服务),选择语音听写,即可下载安卓SDK(下称讯飞 ...

  3. Unity声音-音源组件

    音源组件(AudioSource) 音源是场景中在某个位置的发声装置,好像一个喇叭.它播放着音频片段 (Audio Clip). 发出的声音将输出到声音监听器(audio listener),或者声音 ...

  4. Unity 声音与录音与麦克风实时播放

    Unity AudioSource与MicroPhone以及AudioClip之间的关系. 下面是一个声音,长度为7秒钟,声音的实际数据本质是由采样点组成的的列表,一秒钟内的采样点数就是采样频率,下面 ...

  5. Unity 声音播放不受Time.scale为0的影响

    其他会暂停,目前发现声音不受影响 嗯,就这样.

  6. HoloLens开发手记 - Unity之Spatial Sounds 空间声音

    本文主要讲述如何在项目中使用空间声音特性.我们主要讲述必须的插件组件和Unity声音组件和属性的设置来确保空间声音的实现. Enabling Spatial Sound in Unity 在Unity ...

  7. (二)Hololens Unity 开发之 语音识别

    学习源于官方文档 Voice input in Unity 笔记一部分是直接翻译官方文档,部分各人理解不一致的和一些比较浅显的保留英文原文 (二)Hololens Unity 开发之 语音识别 Hol ...

  8. (三)Hololens Unity 开发之 语音识别

    学习源于官方文档 Voice input in Unity 笔记一部分是直接翻译官方文档,部分各人理解不一致的和一些比较浅显的保留英文原文 (三)Hololens Unity 开发之 语音识别 Hol ...

  9. 给自己的Unity添加声音文件

    下面说明一下,在Unity 里是怎么样加载声音文件的. Unity同时支持单声道和立体声音频资产. Unity支持导入以下音频文件格式:.aif, .wav, .mp3, 和 .ogg,和以下音轨模块 ...

随机推荐

  1. IDEA启动tomcat报java.net.SocketExceptionsocket closed

    IDEA启动tomcat报java.net.SocketException:socket closed.如图所示   解决方法:打开任务管理器,检查有没有java.exe进程. 关闭了重新启动就好了 ...

  2. 基本shell脚本

    #!/bin/bash attr=() num= while true do read -p ">>input:" name attr[$num]=$name echo ...

  3. Android 自定义饼状图

    github 地址:https://github.com/dkest/PieView 简单分析 其实根据我们上面的知识已经能自己制作一个饼状图了.不过制作东西最重要的不是制作结果,而是制作思路. 相信 ...

  4. 【已解决】解决IntelliJ IDEA控制台输出中文乱码问题

    IntelliJ IDEA 真的是一款很方便的Java开发工具,但是关于中文乱码这个问题我不得不吐槽,这个编码也弄得这么麻烦干嘛,真想找idea开发者干架,我敢打包票我能在一分钟之内一拳飞过去让他跪下 ...

  5. [TimLinux] docker CentOS7安装docker-ce最新版

    1. 环境 $ lsb_release -a # 需要安装 redhat-lsb-core 包 LSB Version: :core-4.1-amd64:core-4.1-noarch Distrib ...

  6. [TimLinux] CSS 纯CSS实现动画展开/收起功能

    内容转自CSS世界,理解之后进行了简化,简化后代码: <!DOCTYPE html> <html> <head> <meta charset=utf-8 /& ...

  7. P4072 [SDOI2016](BZOJ4518) 征途 [斜率优化DP]

    题目描述 Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m天外,每一天晚上Pine都必须在休息站过夜.所以,一段路 ...

  8. LightOJ 1229 Tablecross

    Treblecross is a two player game where the goal is to get three X in a row on a one-dimensional boar ...

  9. 使用iCamera 测试mt9d111 200w高分辨率摄像头小结

    使用iCamera 测试mt9d111 200w高分辨率摄像头小结 先看下产品特性 安装效果 根据前面博客的经验,该摄像头,默认配置即有输出,分辨率为800*600,yuv 于是可以写 如果使用默认配 ...

  10. 小白进阶之路—python脚本(1)判断是否是一个目录

    #!/usr/bin/env python# -*- coding: utf-8 -*-import os   dir = "/var/www/html/EnjoyWeekend/" ...