返回信息流楼下@dhown 已经帮忙解决,多谢多谢~
可能是自己写的太模糊了,详细写一下需要实现的效果,图错位了,不知道为啥,抱歉将就着看吧
LZ需要用MAtlab做一个基于语音识别的自动作曲系统,思路大概是这样的。
输入一段人声语音,将其中每一个音的基频提取出来,将其对应到最近的钢琴键号,把音长转换成4分音符、8分音符等,再将琴键发声,形成曲子。
键号对应音高的代码参考
现在我把之前提取出来的一串键号放在一个矩阵clip_pitch里,一串音长放在另一个矩阵pDuration里,按照如下代码
就会出现报错
求助各位,现在需要把一系列语音信号(正弦波)连续播放,但是把他们放到数组里的时候会报错In an assignment A(I) = B, the number of elements in B and I must be the same.
想问一下怎样解决这个问题?或者说放入的不是数组而是其他形式?求教~~
不怎么编程的人入了这个毕设,哭着也要做完,还求好心人指导~~~多谢多谢~~
这是一条镜像帖。来源:北邮人论坛 / matlab / #11946同步于 2016/4/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
【已解决】怎样把一系列不同区间内的正弦波放到数组里
cptbtptp29
2016/4/4镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
跟这个很像,但是他每一个part都是手动把每一个音放到这个数组里的,我需要做成一个普适性的,直接生成数组
【 在 dhown 的大作中提到: 】
: http://bbs.byr.cn/#!article/Matlab/11795
: 关于播放声音,可以看看这个代码_(:зゝ∠)_
: 给跪了
【 在 cptbtptp29 的大作中提到: 】
: 跟这个很像,但是他每一个part都是手动把每一个音放到这个数组里的,我需要做成一个普适性的,直接生成数组
那可以有一个数组A来存这些的,每生产一个B,就把B添加到A里边
这样就是
A=[A,B]
不过我还是不知道到底要实现什么效果,版主大人
这个方法试过了,还是会报错……
总体上来说是输入一段人说话的语音,按照这个规律作曲
我的方法大概是将每一个音转换成一个琴键的键号,音长转换成拍子,再连续播放出来
所以所有的键号在一个矩阵里,对应的音长也在一个矩阵,用你之前发来的链接中的key函数,生成一系列正弦波,再sound……
这期间这系列正弦波怎样放进数组
【 在 dhown 的大作中提到: 】
:
: 那可以有一个数组A来存这些的,每生产一个B,就把B添加到A里边
: 这样就是
: ...................
那应该就是矩阵维度不一样,所以没法拼接起来吧。
没有具体实例,不好说
【 在 cptbtptp29 的大作中提到: 】
: 这个方法试过了,还是会报错……
: 总体上来说是输入一段人说话的语音,按照这个规律作曲
: 我的方法大概是将每一个音转换成一个琴键的键号,音长转换成拍子,再连续播放出来
: ...................