我的工程师爸爸 - 音频应用DIY系列之三:汤姆猫

一位工程师爸爸受女儿启发,决定制作一个没有广告的汤姆猫应用。通过调整之前的变声话筒代码,用延时器替代回声器,实现了声音延迟播放的效果。经过参数调整,成功创建了一个类似汤姆猫的应用,让女儿能够享受无广告且自定义延时的语音互动体验。
摘要由CSDN通过智能技术生成

女儿:爸爸,汤姆猫你玩过没?

爸爸:爸爸小时候可喜欢看<猫和老鼠>了,我记得里面那个笨猫就叫汤姆,总是想抓聪明的杰瑞,却总是害到自己。bla…bla…

女儿:不是!我是说那个可以学我说话的汤姆猫,在手机上的!

爸爸:哦,好像是有这么个app。

女儿:对,就是那个app。但是它的广告好多,每次都会误点,特别烦人。您能给我做一个一样的属于我的汤姆猫吗?没广告的!

爸爸:嗯… 这个容易,马上给你做一个。

<思路>

  • 这个跟前几天做的变声话筒类似,唯一区别是把回声器换成延时器就可以了。相当于录到的声音等一个固定的时长再播放出来。
  • 由于延时器可以支持float数据格式,所以可以把格式转换器去掉。
    图3-1

<代码实现>

由于这版思路图跟<系列之一>的区别仅仅在于RouteB中加了一个延时器,那么利用lkdb,完全可以在运行MyEngineerDaddy_1的实时对路由进行修改,实时产生效果,而不用重新修改代码重新编译运行。

先运行MyEngineerDaddy_1,此时录音出声。查看路由状态:

$ lkdb status
RouteB is RUNNING, 145 frames processed OK, 0 error frame
	blkpacapture_0
		(O00) --> lnk_0    16000Hz FLOAT_LE  1ch    320samples/frame
	blkstreamout_0
		(I00) <-- lnk_0    16000Hz FLOAT_LE  1ch    320samples/frame

RouteA is RUNNING, 144 frames processed OK, 0 error frame
	blkstreamin_0
		(O00) --> lnk_0    16000Hz FLOAT_LE  1ch    320samples/frame
	blksoundtouch_0
		(I00) <-- lnk_0    16000Hz FLOAT_LE  1ch    320samples/frame
		(O00) --> lnk_1    16000Hz FLOAT_LE  1ch   1040samples/frame
	blkpaplayback_0
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值