声控游戏、语音输入控制,八分音符酱

经过一段搜索。。。我在B站找到大佬的教程/笑哭
https://www.bilibili.com/video/a ... 683285037706#page=2 
然后自己整理了下,通过这样的方式还有很多扩展玩法呢,看完记得设计一款自己的小游戏

附上最重要的代码:

/*
 *语音录入类
 *获取到当前语音录入的音量
 */
publicclassMicInput : MonoBehaviour
{
 
//用于观察麦克风输入的音量大小
public float volume;
//在公司偷偷测试,不敢大声,所以把输入的音量翻倍了
public float difference = 3f;
//不同的设备、麦克风的声音大小是不同的,用来在游戏时调整合适的输入值
public Slider slider;

//存放录制的语音
AudioClip micRecord;
//麦克风的设备名称
string device;
 
private void Start()
{
    //读取麦克风设备名,一台手机或者电脑可以接入多个麦克风,下标为0读取第一个麦克风
    device = Microphone.devices[0];
    //开始录音,device麦克风名称;loop循环录制;lengthSec录制长度;frequency频率啥的,这里的44100是默认值
    micRecord = Microphone.Start(device, true, 999, 44100);
}

private void Update()
{
    //取得当前输入的最大音量值
    volume = (float)Math.Round(GetMaxVolume(), 4) * difference * slider.value;
}

///<summary>
///获取当前输入的音量最大值
///</summary>
///<returns>返回最大音量</returns>
float GetMaxVolume()
{
    float maxVolume = 0f;

    //定义一个float类型的数组用于存储这段录音的音量数组
    float[] volumeData = new float[128];
    //偏移样本,从当前麦克风所在位置开始读取
    intoffset = Microphone.GetPosition(device) - 128 + 1;
    if (offset < 0)//麦克风的开始位置通常是负数,规范偏移值
    {
        return 0;
    }

    //从offset位置开始,获取一段录音的数据并存放到volumeData数组中
    micRecord.GetData(volumeData, offset);
    //从取得的数组中找出最大值
    for (int i = 0; i < volumeData.Length; i++)
    {
        float tempMax = volumeData[i];
        if (tempMax > maxVolume)
        {
            maxVolume = tempMax;
        }
    }
    returnmaxVolume;
}
 
}

 
?

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
声控路灯控制电路是一种利用音频信号控制路灯开关的装置。Matlab能够实现该电路的模拟和控制声控路灯控制电路主要由声音传感器模块、电源模块、控制模块和执行模块组成。声音传感器模块用于检测环境中的声音信号,将声音信号转化为电信号输入到控制模块。电源模块为整个电路提供所需的电能。控制模块是整个电路的核心,其采用Matlab进行仿真和控制。执行模块用于控制路灯的开关。 在Matlab中,可以通过编写程序来实现声控路灯的控制。首先,将声音传感器模块的输出连接到电脑上,并在Matlab中使用相应的函数读取声音信号。然后,通过设置合适的阈值,对读取到的声音信号进行判断,判断声音信号是否超过了阈值。如果超过了阈值,则执行相应的操作,例如打开路灯;如果未超过阈值,则不执行任何操作或者关闭路灯。 在程序中可以设置合适的延迟时间,以避免因临时声音而频繁地开关路灯。同时,可以添加其他功能,例如调节路灯亮度、设定自动关闭时间等。 该声控路灯控制电路的优点是简单实用、环保节能。通过Matlab的控制,可以根据实际需要灵活地进行调节和控制。同时,该电路还可以与其他智能系统进行联动,实现更多的功能。 总之,Matlab声控路灯控制电路是一种基于声音信号的智能控制系统,通过编写Matlab程序实现路灯的开关控制和其他功能,为我们的生活带来便利和节能效益。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值