Closed phecda-xu closed 4 years ago
这是一个工程问题了。 具体的流式设计要根据实际的工程条件来定。 可以堆积送入的音频再过声学模型和语言模型。 也可以堆积声学识别的结果,最后经过语言模型。
------------------ 原始邮件 ------------------ 发件人: "Z-yq/TensorflowASR" <notifications@github.com>; 发送时间: 2020年10月28日(星期三) 下午5:20 收件人: "Z-yq/TensorflowASR"<TensorflowASR@noreply.github.com>; 抄送: "Subscribed"<subscribed@noreply.github.com>; 主题: [Z-yq/TensorflowASR] How to steaming? (#11)
你好: 关于流式处理,请问 我看到现在的测试推理都是直接把整个音频输入模型,好像并不是流式处理。 那么ComformerTransducer 或者 DeepSpeech2Transducer 要怎么实现流式的识别?
谢谢!
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.
这是一个工程问题了。 具体的流式设计要根据实际的工程条件来定。 可以堆积送入的音频再过声学模型和语言模型。 也可以堆积声学识别的结果,最后经过语言模型。 … ------------------ 原始邮件 ------------------ 发件人: "Z-yq/TensorflowASR" <notifications@github.com>; 发送时间: 2020年10月28日(星期三) 下午5:20 收件人: "Z-yq/TensorflowASR"<TensorflowASR@noreply.github.com>; 抄送: "Subscribed"<subscribed@noreply.github.com>; 主题: [Z-yq/TensorflowASR] How to steaming? (#11) 你好: 关于流式处理,请问 我看到现在的测试推理都是直接把整个音频输入模型,好像并不是流式处理。 那么ComformerTransducer 或者 DeepSpeech2Transducer 要怎么实现流式的识别? 谢谢! — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.
先忽略语言模型,Transducer类声学模型的基本的逻辑,是不是这样:
开始,取N帧数据,由encoder
进行计算输出 一帧的特征 enc
,pred_net
输入label
为S
,表示开始,输出 pred
,然后将【enc, pred】
输入joint_net
输出预测的label
,用这个预测的label
与本次的输入label
一起作为下一次pred_net
的输入;
然后滑窗,再取N帧数据,重复上述步骤,当输出label
为/S
时,将pred_net
的输入重新设置为S
,表示一句话说完,开始下一句话的预测。
关于encoder,一种形式是重新设计网络,用RNN类的或者TDNN类的网络,N帧音频数据预测一个标签(N>=1),没有堆叠音频,算力足够的话,等待时间可以很短;另外一种是先堆叠音频,encoder计算后进行拆分,然后一步一步的预测,堆叠的音频长度需要根据encoder网络来设计,并且每次堆叠的音频与前一次堆叠的音频有一定的重合部分,以保证不影响识别的结果,堆叠音频时需要等待,因此时间可能比较长;
这是我的思考,不知道是否正确。
个人认为所谓的流式识别,就是对encoder和decoder于不同应用场景的应用而已。
做法没有标准答案,只要方案能满足需求就是OK的。
你好: 关于流式处理,请问 我看到现在的测试推理都是直接把整个音频输入模型,好像并不是流式处理。 那么ComformerTransducer 或者 DeepSpeech2Transducer 要怎么实现流式的识别?
谢谢!