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,和以下音轨模块 ...
随机推荐
- IDEA启动tomcat报java.net.SocketExceptionsocket closed
IDEA启动tomcat报java.net.SocketException:socket closed.如图所示 解决方法:打开任务管理器,检查有没有java.exe进程. 关闭了重新启动就好了 ...
- 基本shell脚本
#!/bin/bash attr=() num= while true do read -p ">>input:" name attr[$num]=$name echo ...
- Android 自定义饼状图
github 地址:https://github.com/dkest/PieView 简单分析 其实根据我们上面的知识已经能自己制作一个饼状图了.不过制作东西最重要的不是制作结果,而是制作思路. 相信 ...
- 【已解决】解决IntelliJ IDEA控制台输出中文乱码问题
IntelliJ IDEA 真的是一款很方便的Java开发工具,但是关于中文乱码这个问题我不得不吐槽,这个编码也弄得这么麻烦干嘛,真想找idea开发者干架,我敢打包票我能在一分钟之内一拳飞过去让他跪下 ...
- [TimLinux] docker CentOS7安装docker-ce最新版
1. 环境 $ lsb_release -a # 需要安装 redhat-lsb-core 包 LSB Version: :core-4.1-amd64:core-4.1-noarch Distrib ...
- [TimLinux] CSS 纯CSS实现动画展开/收起功能
内容转自CSS世界,理解之后进行了简化,简化后代码: <!DOCTYPE html> <html> <head> <meta charset=utf-8 /& ...
- P4072 [SDOI2016](BZOJ4518) 征途 [斜率优化DP]
题目描述 Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m天外,每一天晚上Pine都必须在休息站过夜.所以,一段路 ...
- 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 ...
- 使用iCamera 测试mt9d111 200w高分辨率摄像头小结
使用iCamera 测试mt9d111 200w高分辨率摄像头小结 先看下产品特性 安装效果 根据前面博客的经验,该摄像头,默认配置即有输出,分辨率为800*600,yuv 于是可以写 如果使用默认配 ...
- 小白进阶之路—python脚本(1)判断是否是一个目录
#!/usr/bin/env python# -*- coding: utf-8 -*-import os dir = "/var/www/html/EnjoyWeekend/" ...