-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
中文开源语音大模型计划 #2097
Comments
目前该项目在很早期的筹备阶段,欢迎大家提需求、意见,也欢迎大家参与和贡献。 |
还缺个vad 和 对齐 之类的工具 vad 可以用东哥推荐的 或者@robin1001 0 mos 计算 snr 1 vad
2 align and segment |
wenet cli 中也支持对齐了,是基于 CTC 的,并且会输出每个字的对齐置信度。VAD 可以用东哥推荐的或者自己做一个基于 CTC 的。 |
这个代码 和 ctc segmentation基本一个原理 不过实现上 meta开了个gpu版的 |
数据层面我们可以重点向国内的方言、少数民族语言、小语种做倾斜。 |
some idea:
|
@robin1001 @xingchensong @whiteshirt0429 openai/whisper#1762 whisper v3 开源了 是否可以考虑 支持这个的推理, 他看着有些粤语的方言 可以用用 |
v3结构上和v2一样,所以一支百支 :) |
如何保证数据不包含低质量的tts数据,以及考虑高质量的tts数据来进行更好的覆盖,这两个事情都比较重要,现在网络上低质量tts数据太多了 |
这个whisperX集成了vad、force align、speaker diarization、timestamp。对制作数据应该比较有用 |
可以用声纹的方式, 提前找些常用角色(从原视频上着) |
或者直接从各大厂的tts api合成一些?微软,火山,魔音工坊,合成的语音和真实语音来训个二分类模型? |
可以试试,需要考虑下 up主修音:比如加音乐这种, |
IO这块 #2107 基于tf data的io虽然性能很好, 但是对于使用者比较重(难), 而且大模型领域 用tfdata的基本是google等tensorflw/jax项目 ref: |
IO这块不知道streaming这个可不可以参考 https://github.com/mosaicml/streaming |
DNSMos 可以快速的卡阈值的方法筛选一些数据出来,感觉还行 |
现在有没有比较好的语音数据处理的开源库?对于一些有伴奏的博客数据,用 UVR5 或字节 api 做人声分离也可以用来做TTS |
希望可以尽可能收集高质量video数据 多模态流式模型更需要 |
有一些零散的,但是没看到搞成一套完整pipeline的,这也是想做wedata的初衷 |
|
我们之前尝试过DeepFakeDetection检测合成的数据,效果还挺好的,TTS的数据这个可以检测到。 |
根据社区反馈,也要考虑带噪训练 |
加噪训练属于强需求了,基本线上场景都要搞的,目前wenet的dataset/processor.py好像还不支持,我看wespeaker已经支持了,完全可以平替过来。 另外我看wespeaker里加的噪声还是musan,musan里面有个speech分类,其实里面并不是噪声,而是人声,这个可能干扰比较严重,musan的music分类里面有一些是带人声的音乐片段,个人认为也可能会对asr造成影响 相比之下,我发现 wham_noise 这个noise set好像要优秀很多,数量上也不错,仅供参考。当然开发者也可以根据自己的噪声数据来做增强。 |
你有兴趣贡献个pr吗(把wespeaker的加噪挪过来) |
好的,我还没pr过,我学习一下怎么弄。。 |
wespeaker看了下是两种,混响和背噪,我这边试了短噪头尾padding也挺有效的,训练时候给个噪声token |
是的,两个都有 |
请问目前针对语音大模型的技术方案有确定吗?是自监督+SFT还是类似whisper直接做半监督的训练。针对方案这一块各位大佬有什么看法吗? |
目前我做了一个数据自动切分、转写和筛选的工具 https://github.com/duj12/ASR-2Pass/blob/master/run_seg_asr_filter.sh (暂时支持中文和英文)大佬们可以提提意见。 输入: 流程:
关于数据格式: 关于音频切分: 关于转写: 关于数据筛选: 关于数据的使用 |
关于数据筛选,可以考虑追加置信度这个衡量指标,一般置信度可以用ref里每个字的prob加权平均来表示,这个置信度可以和cer指标形成double check |
嗯,现在是输出了每句解码的分数的,但这个值目前还没用上。还有些细节也还需要打磨。 |
DNSMOS 可以用来筛选掉一些音质比较差的音频 python dnsmos_local.py -t C:\temp\SampleClips -o sample.csv |
VAD切分位置不是很合理 @duj12 为什么说 vad 切分位置不合理?我一般按静音超过 300ms 来切,不过有些场景(比如情感聊天,停顿时间是比较久) |
相对而言的吧,比较简单的数据(静音段比较明确,噪声比较少),VAD切分足够了。很多网络上爬下来的数据,单纯按照VAD静音位置去切分,有时候会把某些字、词切分开;有噪声的情况下VAD可能会出现切不开的问题(最大时长时才切分往往也会把字词等切分开)。 |
wenet cli 对齐输出每个字的对齐置信度,有具体的使用说明吗 |
@Moonmore |
对了师兄,可以考虑下过滤策略加一条这个,经过验证在wenetspeech上效果很好。
考虑到whisper用了大量视频字幕训练,删除错误肯定不会少,所以这个策略大概率会很有效。 也即删选策略变成:
|
对于TTS数据质量,一方面可以考虑使用一些工具对低质量数据进行筛选,比如使用wada估计snr,另一方面,可以使用speech restoration的模型对质量不太好的数据进行修复,比如借助于这个工具https://github.com/resemble-ai/resemble-enhance/ |
hi,没有特别好用的模型。我这边是针对我们这边的合成模型额外训练的。具体的可以翻下deep fake 相关的比赛论文,模型结构比较简单的。 |
是不是也可以考虑使用比较大的语言模型做PPL的判断,可以做些前筛选之类的。 |
解码分数是whisper输出的吗,paraformer应该没有解码分数 |
有的 wenet里边实现了 可以参考下 |
请问,whisper的时间戳可以指定最大的切分长度吗 |
应该不能指定,不过它解码最大长度是30s一个片段,所以一小段最长也就是30s. 我之前合并时间戳有问题可能会导致一个分段超过30s。现在指定累积片段长度超过10s就切分一次,得到的分段就比较合理了。 |
获取高质量的转写文本,可以通过Noise student training这种方式吗?而不是两方引擎通过wer来筛选 |
可以,但是nst太麻烦 |
请问一下,我只想识别某些字. 例如几个汉字,像大家,你好这样. 怎样获得很小的final.zip呢? 预训练的模型很好,但是对我来说太大了 |
宗旨
目标
Action
数据
训练
部署
The text was updated successfully, but these errors were encountered: