Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
xuning
/
sherpaonnx
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Fangjun Kuang
2025-08-07 17:20:49 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
GitHub
2025-08-07 17:20:49 +0800
Commit
08aaa8978a7b6965e154c8cc2f846fa4cac65f68
08aaa897
1 parent
07d69576
Limit number of tokens in fire red asr decoding. (#2459)
显示空白字符变更
内嵌
并排对比
正在显示
4 个修改的文件
包含
14 行增加
和
6 行删除
sherpa-onnx/csrc/offline-fire-red-asr-decoder.h
sherpa-onnx/csrc/offline-fire-red-asr-greedy-search-decoder.cc
sherpa-onnx/csrc/offline-fire-red-asr-greedy-search-decoder.h
sherpa-onnx/csrc/offline-recognizer-fire-red-asr-impl.h
sherpa-onnx/csrc/offline-fire-red-asr-decoder.h
查看文件 @
08aaa89
...
...
@@ -31,7 +31,8 @@ class OfflineFireRedAsrDecoder {
* @return Return a vector of size `N` containing the decoded results.
*/
virtual
std
::
vector
<
OfflineFireRedAsrDecoderResult
>
Decode
(
Ort
::
Value
n_layer_cross_k
,
Ort
::
Value
n_layer_cross_v
)
=
0
;
Ort
::
Value
n_layer_cross_k
,
Ort
::
Value
n_layer_cross_v
,
int32_t
num_feature_frames
)
=
0
;
};
}
// namespace sherpa_onnx
...
...
sherpa-onnx/csrc/offline-fire-red-asr-greedy-search-decoder.cc
查看文件 @
08aaa89
...
...
@@ -16,7 +16,8 @@ namespace sherpa_onnx {
// Note: this functions works only for batch size == 1 at present
std
::
vector
<
OfflineFireRedAsrDecoderResult
>
OfflineFireRedAsrGreedySearchDecoder
::
Decode
(
Ort
::
Value
cross_k
,
Ort
::
Value
cross_v
)
{
Ort
::
Value
cross_v
,
int32_t
num_feature_frames
)
{
const
auto
&
meta_data
=
model_
->
GetModelMetadata
();
auto
memory_info
=
...
...
@@ -53,7 +54,12 @@ OfflineFireRedAsrGreedySearchDecoder::Decode(Ort::Value cross_k,
std
::
move
(
cross_v
),
std
::
move
(
offset
)};
for
(
int32_t
i
=
0
;
i
<
meta_data
.
max_len
;
++
i
)
{
// assume at most 6 tokens per second
int32_t
num_possible_tokens
=
num_feature_frames
/
100
*
6
;
num_possible_tokens
=
std
::
min
<
int32_t
>
(
num_possible_tokens
,
meta_data
.
max_len
/
2
);
for
(
int32_t
i
=
0
;
i
<
num_possible_tokens
;
++
i
)
{
decoder_out
=
model_
->
ForwardDecoder
(
View
(
&
tokens
),
std
::
move
(
std
::
get
<
1
>
(
decoder_out
)),
std
::
move
(
std
::
get
<
2
>
(
decoder_out
)),
...
...
sherpa-onnx/csrc/offline-fire-red-asr-greedy-search-decoder.h
查看文件 @
08aaa89
...
...
@@ -18,7 +18,8 @@ class OfflineFireRedAsrGreedySearchDecoder : public OfflineFireRedAsrDecoder {
:
model_
(
model
)
{}
std
::
vector
<
OfflineFireRedAsrDecoderResult
>
Decode
(
Ort
::
Value
cross_k
,
Ort
::
Value
cross_v
)
override
;
Ort
::
Value
cross_k
,
Ort
::
Value
cross_v
,
int32_t
num_feature_frames
)
override
;
private
:
OfflineFireRedAsrModel
*
model_
;
// not owned
...
...
sherpa-onnx/csrc/offline-recognizer-fire-red-asr-impl.h
查看文件 @
08aaa89
...
...
@@ -119,8 +119,8 @@ class OfflineRecognizerFireRedAsrImpl : public OfflineRecognizerImpl {
auto
cross_kv
=
model_
->
ForwardEncoder
(
std
::
move
(
x
),
std
::
move
(
x_len
));
auto
results
=
decoder_
->
Decode
(
std
::
move
(
cross_kv
.
first
),
std
::
move
(
cross_kv
.
second
));
auto
results
=
decoder_
->
Decode
(
std
::
move
(
cross_kv
.
first
),
std
::
move
(
cross_kv
.
second
),
num_frames
);
auto
r
=
Convert
(
results
[
0
],
symbol_table_
);
...
...
请
注册
或
登录
后发表评论