Support streaming zipformer CTC (#496)
* Support streaming zipformer CTC * test online zipformer2 CTC * Update doc of sherpa-onnx.cc * Add Python APIs for streaming zipformer2 ctc * Add Python API examples for streaming zipformer2 ctc * Swift API for streaming zipformer2 CTC * NodeJS API for streaming zipformer2 CTC * Kotlin API for streaming zipformer2 CTC * Golang API for streaming zipformer2 CTC * C# API for streaming zipformer2 CTC * Release v1.9.6
This commit is contained in:
@@ -33,6 +33,26 @@ class OnlineCtcModel {
|
||||
// Return a list of tensors containing the initial states
|
||||
virtual std::vector<Ort::Value> GetInitStates() const = 0;
|
||||
|
||||
/** Stack a list of individual states into a batch.
|
||||
*
|
||||
* It is the inverse operation of `UnStackStates`.
|
||||
*
|
||||
* @param states states[i] contains the state for the i-th utterance.
|
||||
* @return Return a single value representing the batched state.
|
||||
*/
|
||||
virtual std::vector<Ort::Value> StackStates(
|
||||
std::vector<std::vector<Ort::Value>> states) const = 0;
|
||||
|
||||
/** Unstack a batch state into a list of individual states.
|
||||
*
|
||||
* It is the inverse operation of `StackStates`.
|
||||
*
|
||||
* @param states A batched state.
|
||||
* @return ans[i] contains the state for the i-th utterance.
|
||||
*/
|
||||
virtual std::vector<std::vector<Ort::Value>> UnStackStates(
|
||||
std::vector<Ort::Value> states) const = 0;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param x A 3-D tensor of shape (N, T, C). N has to be 1.
|
||||
@@ -60,6 +80,9 @@ class OnlineCtcModel {
|
||||
// ChunkLength() frames, we advance by ChunkShift() frames
|
||||
// before we process the next chunk.
|
||||
virtual int32_t ChunkShift() const = 0;
|
||||
|
||||
// Return true if the model supports batch size > 1
|
||||
virtual bool SupportBatchProcessing() const { return true; }
|
||||
};
|
||||
|
||||
} // namespace sherpa_onnx
|
||||
|
||||
Reference in New Issue
Block a user