Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
DeepSpeech
提交
42c8d0dd
D
DeepSpeech
项目概览
PaddlePaddle
/
DeepSpeech
大约 2 年 前同步成功
通知
210
Star
8425
Fork
1598
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
245
列表
看板
标记
里程碑
合并请求
3
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DeepSpeech
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
245
Issue
245
列表
看板
标记
里程碑
合并请求
3
合并请求
3
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
“0a93ea553895343e5a790cb9ce26bcee754cf7b9”上不存在“mobile/src/operators/kernel/lookup_kernel.h”
提交
42c8d0dd
编写于
2月 13, 2022
作者:
S
SmileGoat
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix typo & make build success
上级
c6027751
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
40 addition
and
28 deletion
+40
-28
speechx/speechx/CMakeLists.txt
speechx/speechx/CMakeLists.txt
+1
-1
speechx/speechx/base/flags.h
speechx/speechx/base/flags.h
+1
-1
speechx/speechx/codelab/feat_test/linear_spectrogram_main.cc
speechx/speechx/codelab/feat_test/linear_spectrogram_main.cc
+4
-4
speechx/speechx/frontend/linear_spectrogram.cc
speechx/speechx/frontend/linear_spectrogram.cc
+15
-8
speechx/speechx/frontend/linear_spectrogram.h
speechx/speechx/frontend/linear_spectrogram.h
+3
-3
speechx/speechx/frontend/normalizer.cc
speechx/speechx/frontend/normalizer.cc
+12
-8
speechx/speechx/frontend/normalizer.h
speechx/speechx/frontend/normalizer.h
+4
-3
未找到文件。
speechx/speechx/CMakeLists.txt
浏览文件 @
42c8d0dd
...
...
@@ -22,4 +22,4 @@ add_executable(mfcc-test codelab/feat_test/feature-mfcc-test.cc)
target_link_libraries
(
mfcc-test kaldi-mfcc
)
add_executable
(
linear_spectrogram_main codelab/feat_test/linear_spectrogram_main.cc
)
target_link_libraries
(
linear_spectrogram_main frontend ka
ildi-util kaldi-feat
)
target_link_libraries
(
linear_spectrogram_main frontend ka
ldi-util kaldi-feat-common gflags glog
)
speechx/speechx/base/flags.h
浏览文件 @
42c8d0dd
...
...
@@ -14,4 +14,4 @@
#pragma once
#include "
fst/
flags.h"
#include "
gflags/g
flags.h"
speechx/speechx/codelab/feat_test/linear_spectrogram_main.cc
浏览文件 @
42c8d0dd
...
...
@@ -12,7 +12,7 @@ DEFINE_string(wav_rspecifier, "", "test wav path");
DEFINE_string
(
feature_wspecifier
,
""
,
"test wav ark"
);
int
main
(
int
argc
,
char
*
argv
[])
{
g
oogle
::
ParseCommandLineFlags
(
&
argc
,
&
argv
,
false
);
g
flags
::
ParseCommandLineFlags
(
&
argc
,
&
argv
,
false
);
google
::
InitGoogleLogging
(
argv
[
0
]);
kaldi
::
SequentialTableReader
<
kaldi
::
WaveHolder
>
wav_reader
(
FLAGS_wav_rspecifier
);
...
...
@@ -22,9 +22,9 @@ int main(int argc, char* argv[]) {
int32
num_done
=
0
,
num_err
=
0
;
ppspeech
::
LinearSpectrogramOptions
opt
;
ppspeech
::
DecibelNormalizerOptions
db_norm_opt
;
std
::
unique_ptr
<
ppspeech
::
FeatureExtractorInterface
>
base_feature_extractor
=
new
ppspeech
::
DecibelNormalizer
(
db_norm_opt
);
ppspeech
::
LinearSpectrogram
linear_spectrogram
(
opt
,
base_featrue_extractor
);
std
::
unique_ptr
<
ppspeech
::
FeatureExtractorInterface
>
base_feature_extractor
(
new
ppspeech
::
DecibelNormalizer
(
db_norm_opt
)
);
ppspeech
::
LinearSpectrogram
linear_spectrogram
(
opt
,
std
::
move
(
base_feature_extractor
)
);
for
(;
!
wav_reader
.
Done
();
wav_reader
.
Next
())
{
std
::
string
utt
=
wav_reader
.
Key
();
...
...
speechx/speechx/frontend/linear_spectrogram.cc
浏览文件 @
42c8d0dd
...
...
@@ -21,11 +21,12 @@ namespace ppspeech {
using
kaldi
::
int32
;
using
kaldi
::
BaseFloat
;
using
kaldi
::
Vector
;
using
kaldi
::
VectorBase
;
using
kaldi
::
Matrix
;
using
std
::
vector
;
//todo remove later
void
CopyVector2StdVector
(
const
kaldi
::
Vector
<
BaseFloat
>&
input
,
void
CopyVector2StdVector
_
(
const
VectorBase
<
BaseFloat
>&
input
,
vector
<
BaseFloat
>*
output
)
{
if
(
input
.
Dim
()
==
0
)
return
;
output
->
resize
(
input
.
Dim
());
...
...
@@ -34,7 +35,7 @@ void CopyVector2StdVector(const kaldi::Vector<BaseFloat>& input,
}
}
void
CopyStdVector2Vector
(
const
vector
<
BaseFloat
>&
input
,
void
CopyStdVector2Vector
_
(
const
vector
<
BaseFloat
>&
input
,
Vector
<
BaseFloat
>*
output
)
{
if
(
input
.
empty
())
return
;
output
->
Resize
(
input
.
size
());
...
...
@@ -62,7 +63,7 @@ LinearSpectrogram::LinearSpectrogram(
dim_
=
fft_points_
/
2
+
1
;
// the dimension is Fs/2 Hz
}
void
LinearSpectrogram
::
AcceptWavef
rom
(
const
kaldi
::
VectorBase
<
BaseFloat
>&
input
)
{
void
LinearSpectrogram
::
AcceptWavef
orm
(
const
VectorBase
<
BaseFloat
>&
input
)
{
base_extractor_
->
AcceptWaveform
(
input
);
}
...
...
@@ -78,9 +79,9 @@ bool LinearSpectrogram::NumpyFft(vector<BaseFloat>* v,
vector
<
BaseFloat
>*
real
,
vector
<
BaseFloat
>*
img
)
const
{
Vector
<
BaseFloat
>
v_tmp
;
CopyStdVector2Vector
(
*
v
,
&
v_tmp
);
CopyStdVector2Vector
_
(
*
v
,
&
v_tmp
);
RealFft
(
&
v_tmp
,
true
);
CopyVector2StdVector
(
v_tmp
,
v
);
CopyVector2StdVector
_
(
v_tmp
,
v
);
real
->
push_back
(
v
->
at
(
0
));
img
->
push_back
(
0
);
for
(
int
i
=
1
;
i
<
v
->
size
()
/
2
;
i
++
)
{
...
...
@@ -96,10 +97,11 @@ bool LinearSpectrogram::NumpyFft(vector<BaseFloat>* v,
// todo remove later
void
LinearSpectrogram
::
ReadFeats
(
Matrix
<
BaseFloat
>*
feats
)
{
Vector
<
BaseFloat
>
tmp
;
waveform_
.
Resize
(
base_extractor_
->
Dim
());
Compute
(
tmp
,
&
waveform_
);
vector
<
vector
<
BaseFloat
>>
result
;
vector
<
BaseFloat
>
feats_vec
;
CopyVector2StdVector
(
waveform_
,
&
feats_vec
);
CopyVector2StdVector
_
(
waveform_
,
&
feats_vec
);
Compute
(
feats_vec
,
result
);
feats
->
Resize
(
result
.
size
(),
result
[
0
].
size
());
for
(
int
row_idx
=
0
;
row_idx
<
result
.
size
();
++
row_idx
)
{
...
...
@@ -110,10 +112,15 @@ void LinearSpectrogram::ReadFeats(Matrix<BaseFloat>* feats) {
waveform_
.
Resize
(
0
);
}
void
LinearSpectrogram
::
Read
(
VectorBase
<
BaseFloat
>*
feat
)
{
// todo
return
;
}
// only for test, remove later
// todo: compute the feature frame by frame.
void
LinearSpectrogram
::
Compute
(
const
kaldi
::
Vector
<
kaldi
::
BaseFloat
>&
input
,
kaldi
::
Vector
<
kaldi
::
BaseFloat
>*
feature
)
{
void
LinearSpectrogram
::
Compute
(
const
VectorBase
<
kaldi
::
BaseFloat
>&
input
,
VectorBase
<
kaldi
::
BaseFloat
>*
feature
)
{
base_extractor_
->
Read
(
feature
);
}
...
...
speechx/speechx/frontend/linear_spectrogram.h
浏览文件 @
42c8d0dd
...
...
@@ -21,7 +21,7 @@ class LinearSpectrogram : public FeatureExtractorInterface {
public:
explicit
LinearSpectrogram
(
const
LinearSpectrogramOptions
&
opts
,
std
::
unique_ptr
<
FeatureExtractorInterface
>
base_extractor
);
virtual
void
AcceptWavef
ro
m
(
const
kaldi
::
VectorBase
<
kaldi
::
BaseFloat
>&
input
);
virtual
void
AcceptWavef
or
m
(
const
kaldi
::
VectorBase
<
kaldi
::
BaseFloat
>&
input
);
virtual
void
Read
(
kaldi
::
VectorBase
<
kaldi
::
BaseFloat
>*
feat
);
virtual
size_t
Dim
()
const
{
return
dim_
;
}
void
ReadFeats
(
kaldi
::
Matrix
<
kaldi
::
BaseFloat
>*
feats
);
...
...
@@ -30,8 +30,8 @@ class LinearSpectrogram : public FeatureExtractorInterface {
void
Hanning
(
std
::
vector
<
kaldi
::
BaseFloat
>*
data
)
const
;
bool
Compute
(
const
std
::
vector
<
kaldi
::
BaseFloat
>&
wave
,
std
::
vector
<
std
::
vector
<
kaldi
::
BaseFloat
>>&
feat
);
void
Compute
(
const
kaldi
::
Vector
<
kaldi
::
BaseFloat
>&
input
,
kaldi
::
Vector
<
kaldi
::
BaseFloat
>*
feature
);
void
Compute
(
const
kaldi
::
Vector
Base
<
kaldi
::
BaseFloat
>&
input
,
kaldi
::
Vector
Base
<
kaldi
::
BaseFloat
>*
feature
);
bool
NumpyFft
(
std
::
vector
<
kaldi
::
BaseFloat
>*
v
,
std
::
vector
<
kaldi
::
BaseFloat
>*
real
,
std
::
vector
<
kaldi
::
BaseFloat
>*
img
)
const
;
...
...
speechx/speechx/frontend/normalizer.cc
浏览文件 @
42c8d0dd
...
...
@@ -4,24 +4,28 @@
namespace
ppspeech
{
using
kaldi
::
Vector
;
using
kaldi
::
VectorBase
;
using
kaldi
::
BaseFloat
;
using
std
::
vector
;
DecibelNormalizer
::
DecibelNormalizer
(
const
DecibelNormalizerOptions
&
opts
)
{
opts_
=
opts
;
dim_
=
0
;
}
void
DecibelNormalizer
::
AcceptWavefrom
(
const
Vector
<
BaseFloat
>&
input
)
{
waveform_
=
input
;
void
DecibelNormalizer
::
AcceptWaveform
(
const
kaldi
::
VectorBase
<
BaseFloat
>&
input
)
{
dim_
=
input
.
Dim
();
waveform_
.
Resize
(
input
.
Dim
());
waveform_
.
CopyFromVec
(
input
);
}
void
DecibelNormalizer
::
Read
(
Vector
<
BaseFloat
>*
feat
)
{
void
DecibelNormalizer
::
Read
(
kaldi
::
VectorBase
<
BaseFloat
>*
feat
)
{
if
(
waveform_
.
Dim
()
==
0
)
return
;
Compute
(
waveform_
,
feat
);
}
//todo remove later
void
CopyVector2StdVector
(
const
kaldi
::
Vector
<
BaseFloat
>&
input
,
void
CopyVector2StdVector
(
const
kaldi
::
Vector
Base
<
BaseFloat
>&
input
,
vector
<
BaseFloat
>*
output
)
{
if
(
input
.
Dim
()
==
0
)
return
;
output
->
resize
(
input
.
Dim
());
...
...
@@ -31,16 +35,16 @@ void CopyVector2StdVector(const kaldi::Vector<BaseFloat>& input,
}
void
CopyStdVector2Vector
(
const
vector
<
BaseFloat
>&
input
,
Vector
<
BaseFloat
>*
output
)
{
Vector
Base
<
BaseFloat
>*
output
)
{
if
(
input
.
empty
())
return
;
output
->
Resize
(
input
.
size
());
assert
(
input
.
size
()
==
output
->
Dim
());
for
(
size_t
idx
=
0
;
idx
<
input
.
size
();
++
idx
)
{
(
*
output
)(
idx
)
=
input
[
idx
];
}
}
bool
DecibelNormalizer
::
Compute
(
const
Vector
<
BaseFloat
>&
input
,
Vector
<
BaseFloat
>*
feat
)
const
{
bool
DecibelNormalizer
::
Compute
(
const
Vector
Base
<
BaseFloat
>&
input
,
Vector
Base
<
BaseFloat
>*
feat
)
const
{
// calculate db rms
BaseFloat
rms_db
=
0.0
;
BaseFloat
mean_square
=
0.0
;
...
...
speechx/speechx/frontend/normalizer.h
浏览文件 @
42c8d0dd
...
...
@@ -27,13 +27,14 @@ struct DecibelNormalizerOptions {
class
DecibelNormalizer
:
public
FeatureExtractorInterface
{
public:
explicit
DecibelNormalizer
(
const
DecibelNormalizerOptions
&
opts
);
virtual
void
AcceptWavef
ro
m
(
const
kaldi
::
VectorBase
<
kaldi
::
BaseFloat
>&
input
);
virtual
void
AcceptWavef
or
m
(
const
kaldi
::
VectorBase
<
kaldi
::
BaseFloat
>&
input
);
virtual
void
Read
(
kaldi
::
VectorBase
<
kaldi
::
BaseFloat
>*
feat
);
virtual
size_t
Dim
()
const
{
return
0
;
}
bool
Compute
(
const
kaldi
::
Vector
<
kaldi
::
BaseFloat
>&
input
,
kaldi
::
Vector
<
kaldi
::
BaseFloat
>*
feat
)
const
;
bool
Compute
(
const
kaldi
::
Vector
Base
<
kaldi
::
BaseFloat
>&
input
,
kaldi
::
Vector
Base
<
kaldi
::
BaseFloat
>*
feat
)
const
;
private:
DecibelNormalizerOptions
opts_
;
size_t
dim_
;
std
::
unique_ptr
<
FeatureExtractorInterface
>
base_extractor_
;
kaldi
::
Vector
<
kaldi
::
BaseFloat
>
waveform_
;
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录