Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

采样率设置对onProcess的buffers不起作用是吗 #42

Closed
mz24cn opened this issue Aug 16, 2019 · 6 comments
Closed

采样率设置对onProcess的buffers不起作用是吗 #42

mz24cn opened this issue Aug 16, 2019 · 6 comments

Comments

@mz24cn
Copy link

mz24cn commented Aug 16, 2019

我看了#37,我自己是在onProcess中用websocket实时上传语音,发现是固定的48000的采样率。我在JS里手动采用成16000的,讯飞接口就可以用。
建议采样率设置对onProcess就起作用。
建议代码进一步增强支持通过onProcess实时上传语音buffers的最后一个的方式。否则要open/stop再拿整个buffers的blob的方式,我觉得时效和灵活性不够,会损失监听时间。

@xiangyuecn
Copy link
Owner

对,onProcess传进来的pcm是浏览器原始的数据,没有经过重新采样。

目前来看,只有自己在onProcess中进行一下采样比较好处理,晚会我把实时采样的算法搬过来,做一个公共方法,方便stop和其他任何地方调用。这样以后onProcess里面只需一行代码调用就能获得需要的数据

@mz24cn
Copy link
Author

mz24cn commented Aug 17, 2019

我就是在onProcess上传数据的,按3:1采样,效果不错(讯飞只支持16K采样)。在stop里上传blob没法应用于实时流式场景,频繁open/stop损失太大,不频繁延迟太大。

@xiangyuecn
Copy link
Owner

今天测试的新代码1秒钟转码一次数据效果还不错,你那边上传频率多少次每秒?

@mz24cn
Copy link
Author

mz24cn commented Aug 18, 2019

讯飞开放接口上建议是每40ms就实时上传4K语音数据的。我是在onProcess里用websocket持久上传。比你这种延迟1秒的效果应该更好。你这种方式主要问题是要stop掉再编码再上传,只能做微信那种按住录音的效果。如果要做一直录音的效果就不合适。

@xiangyuecn
Copy link
Owner

1秒25次,默认的回调是12次还差点,溜了溜了😂 新升级的代码提供了一个转换采样率的函数Recorder.SampleData,整个库内部都换成这个函数进行转换采样率了,还算是比较顺滑😎

@yun36524
Copy link

16000

大佬这个怎么做的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants