wenet
wenet copied to clipboard
Whisper-large-v3训练后的CTC解码结果出现�字符
数据: 50小时普通话+50小时粤语(简体)
实验设置: aishell示例中的whisper 基本遵循原设置,包括指定单一语种“zh”
问题: 正常训练40轮后,涉及到CTC的解码模式(ctc_greedy_search, ctc_prefix_beam_search, attention_rescoring)结果容易出现�字符,如下
attention_resocring
lab: 我 去 妈 妈 间 食 咗 饭 冲 个 凉
rec: 我 去 妈 妈 街 食 左 饭 � 过 两
ctc_greedy_search
lab: 我 去 妈 妈 间 食 咗 饭 冲 个 凉
rec: 我 去 妈 妈 街 食 左 饭 � 过 �
ctc_prefix_beam_search:
lab: 我 去 妈 妈 间 食 咗 饭 冲 个 凉
rec: 我 去 妈 妈 街 食 左 饭 � 过 �
而attention解码均正常,如:
lab: 我 去 妈 妈 间 食 咗 饭 冲 个 凉
rec: 我 去 妈 妈 间 食 咗 饭 冲 过 两
补充: 之前基于peft用lora微调large-v3模型也出现过这样的问题,全量微调我还没试过。是ctc训练和原模型的行为差异大导致的吗?又或者是将两种语言放在一个语种上训练带来的问题?后者我打算用纯粤语实验验证一下。
torch==1.13.0+cu116
正常现象,解决方案是 https://github.com/wenet-e2e/wenet/pull/2247
大佬,为啥CTC会有乱码,是因为whisper按字节建模,然后由于CTC的条件独立性假设,没有学到上下文信息吗?
正常现象,解决方案是 #2247
whisper词表6w,正常aishell的词表只有4k,相当于ctc [hidden, dict_num] 只有很少一部分权重参与训练了,训练还不充分
谢谢大佬!whisper的多语种训练是近期会支持吗
谢谢大佬!whisper的多语种训练是近期会支持吗
邀请你给wenet贡献一下librispeech+aishell的训练recipe,把我留的这个TODO解决了 https://github.com/wenet-e2e/wenet/blob/main/wenet/whisper/whisper.py#L69-L77 ,目前是写死的中文,改成可配置的话,多语种训练就解决了
谢谢大佬!whisper的多语种训练是近期会支持吗
邀请你给wenet贡献一下librispeech+aishell的训练recipe,把我留的这个TODO解决了 https://github.com/wenet-e2e/wenet/blob/main/wenet/whisper/whisper.py#L69-L77 ,目前是写死的中文,改成可配置的话,多语种训练就解决了
谢谢!那我自己试一下,让txt带着语种id进add_whisper_tokens或者其他的方法
谢谢大佬!whisper的多语种训练是近期会支持吗
邀请你给wenet贡献一下librispeech+aishell的训练recipe,把我留的这个TODO解决了 https://github.com/wenet-e2e/wenet/blob/main/wenet/whisper/whisper.py#L69-L77 ,目前是写死的中文,改成可配置的话,多语种训练就解决了
谢谢!那我自己试一下,让txt带着语种id进add_whisper_tokens或者其他的方法
dataset里改一下 加个task 和language的id
谢谢大佬!whisper的多语种训练是近期会支持吗
邀请你给wenet贡献一下librispeech+aishell的训练recipe,把我留的这个TODO解决了 https://github.com/wenet-e2e/wenet/blob/main/wenet/whisper/whisper.py#L69-L77 ,目前是写死的中文,改成可配置的话,多语种训练就解决了
谢谢!那我自己试一下,让txt带着语种id进add_whisper_tokens或者其他的方法
dataset里改一下 加个task 和language的id
好的,感谢指点!
解决方案具体怎么做啊?没看懂,ctc和decoder怎么使用不同的tokenizer
正常现象,解决方案是 #2247
谢谢大佬!whisper的多语种训练是近期会支持吗
邀请你给wenet贡献一下librispeech+aishell的训练recipe,把我留的这个TODO解决了 https://github.com/wenet-e2e/wenet/blob/main/wenet/whisper/whisper.py#L69-L77 ,目前是写死的中文,改成可配置的话,多语种训练就解决了
谢谢!那我自己试一下,让txt带着语种id进add_whisper_tokens或者其他的方法
dataset里改一下 加个task 和language的id
您好,我想请教下,现在wenet的代码里加了task和language的id,但是在训练阶段是不是没有用到这两个id信息,只是在推理的时候用到了?
谢谢大佬!whisper的多语种训练是近期会支持吗
邀请你给wenet贡献一下librispeech+aishell的训练recipe,把我留的这个TODO解决了 https://github.com/wenet-e2e/wenet/blob/main/wenet/whisper/whisper.py#L69-L77 ,目前是写死的中文,改成可配置的话,多语种训练就解决了
谢谢!那我自己试一下,让txt带着语种id进add_whisper_tokens或者其他的方法
dataset里改一下 加个task 和language的id
您好,我想请教下,现在wenet的代码里加了task和language的id,但是在训练阶段是不是没有用到这两个id信息,只是在推理的时候用到了?
训练用到了,用到只是为了匹配whisper原始训练方式
谢谢大佬!whisper的多语种训练是近期会支持吗
邀请你给wenet贡献一下librispeech+aishell的训练recipe,把我留的这个TODO解决了 https://github.com/wenet-e2e/wenet/blob/main/wenet/whisper/whisper.py#L69-L77 ,目前是写死的中文,改成可配置的话,多语种训练就解决了
谢谢!那我自己试一下,让txt带着语种id进add_whisper_tokens或者其他的方法
dataset里改一下 加个task 和language的id
您好,我想请教下,现在wenet的代码里加了task和language的id,但是在训练阶段是不是没有用到这两个id信息,只是在推理的时候用到了?
训练用到了,用到只是为了匹配whisper原始训练方式
好的好的,谢谢,是我的代码版本太老了