杂记——简单实现每隔一秒执行一次函数的逻辑

每隔一秒执行一次

语法用 c# 的,逻辑比较简单,用其他语言只要有调用时间的函数就很容易实现。

  • 方法一

适合 按下鼠标左键发射子弹 的场景

private float nextTime = 1;
private void Update_1()
{
	if (Time.time >= nextTime) 
	{
		Func();
		nextTime = Time.time + 1;
	}
}
  • 方法二

适合 满足一定条件之后,等待一会再执行Func() 的场景

private float totalTime = 0;
private void Update()
{        
	totalTime += Time.deltaTime; //累加每帧消耗时间
	if (totalTime >= 1)
	{
		Func();
		totalTime = 0;//清空累加的时间
	}
}
  • 方法三
private void Start()
{
    InvokeRepeating("Timer", 1, 1); // (方法名称,开始时间,间隔)
}
private void Timer()
{
    Func();
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一份MATLAB语音信号变声系统的代码示例,其中包含了三种语音信号变声的方法: ```matlab % 读取音频文件 [y, Fs] = audioread('input.wav'); % 时域变声(将音调提高一个八度) y_pitch = y(1:2:end); % 去掉一半的采样点,相当于将原信号的采样率提高一倍 audiowrite('pitch.wav', y_pitch, Fs*2); % 输出变声后的音频文件 % 频域变声(将语音信号加入白噪声) y_noise = y + 0.1*randn(size(y)); % 将原信号加入均值为0、方差为0.1的高斯白噪声 audiowrite('noise.wav', y_noise, Fs); % 输出变声后的音频文件 % 共振峰变声(将音色变为女性声音) [B, A] = butter(6, 700/(Fs/2), 'high'); % 生成高通滤波器,去除低频分量 y_filtered = filter(B, A, y); [R, P, G] = formant(y_filtered, Fs); % 求取共振峰 R_new = 0.8*R; % 将共振峰的位置向高频方向移动 y_formant = formant_synthesis(R_new, P, G, length(y_filtered)); % 合成新的语音信号 audiowrite('formant.wav', y_formant, Fs); % 输出变声后的音频文件 ``` 在以上代码中,时域变声是通过去掉一半的采样点,相当于将原信号的采样率提高一倍,实现的。频域变声是通过将原信号加入均值为0、方差为0.1的高斯白噪声实现的。共振峰变声是通过使用高通滤波器和共振峰合成算法实现的。具体来说,共振峰变声首先使用一个高通滤波器去除低频分量,然后求取语音信号的共振峰,最后合成新的语音信号。 需要注意的是,以上代码仅演示了基本的语音信号变声方法,实际应用中还需要进行更多的优化和改进,例如:合成算法的优化、声音质量的评估等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值