Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
DeepSpeech
提交
04970705
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看板
提交
04970705
编写于
8月 09, 2017
作者:
Y
yangyaming
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add more test cases and make DP more clear.
上级
14d2fb79
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
59 addition
and
13 deletion
+59
-13
datasets/librispeech/librispeech.py
datasets/librispeech/librispeech.py
+1
-1
error_rate.py
error_rate.py
+8
-6
tests/test_error_rate.py
tests/test_error_rate.py
+50
-6
未找到文件。
datasets/librispeech/librispeech.py
浏览文件 @
04970705
...
...
@@ -16,8 +16,8 @@ import tarfile
import
argparse
import
soundfile
import
json
from
paddle.v2.dataset.common
import
md5file
import
codecs
from
paddle.v2.dataset.common
import
md5file
DATA_HOME
=
os
.
path
.
expanduser
(
'~/.cache/paddle/dataset/speech'
)
...
...
error_rate.py
浏览文件 @
04970705
...
...
@@ -41,15 +41,17 @@ def _levenshtein_distance(ref, hyp):
# calculate levenshtein distance
for
i
in
xrange
(
1
,
m
+
1
):
distance
[
i
%
2
][
0
]
=
i
prev_row_idx
=
(
i
-
1
)
%
2
cur_row_idx
=
i
%
2
distance
[
cur_row_idx
][
0
]
=
i
for
j
in
xrange
(
1
,
n
+
1
):
if
ref
[
i
-
1
]
==
hyp
[
j
-
1
]:
distance
[
i
%
2
][
j
]
=
distance
[(
i
-
1
)
%
2
][
j
-
1
]
distance
[
cur_row_idx
][
j
]
=
distance
[
prev_row_idx
][
j
-
1
]
else
:
s_num
=
distance
[
(
i
-
1
)
%
2
][
j
-
1
]
+
1
i_num
=
distance
[
i
%
2
][
j
-
1
]
+
1
d_num
=
distance
[
(
i
-
1
)
%
2
][
j
]
+
1
distance
[
i
%
2
][
j
]
=
min
(
s_num
,
i_num
,
d_num
)
s_num
=
distance
[
prev_row_idx
][
j
-
1
]
+
1
i_num
=
distance
[
cur_row_idx
][
j
-
1
]
+
1
d_num
=
distance
[
prev_row_idx
][
j
]
+
1
distance
[
cur_row_idx
][
j
]
=
min
(
s_num
,
i_num
,
d_num
)
return
distance
[
m
%
2
][
n
]
...
...
tests/test_error_rate.py
浏览文件 @
04970705
...
...
@@ -11,16 +11,54 @@ import error_rate
class
TestParse
(
unittest
.
TestCase
):
def
test_wer_1
(
self
):
ref
=
'i UM the PHONE IS i LEFT THE portable PHONE UPSTAIRS last night'
hyp
=
'i GOT IT TO the FULLEST i LOVE TO portable FROM OF STORES last night'
hyp
=
'i GOT IT TO the FULLEST i LOVE TO portable FROM OF STORES last '
\
'night'
word_error_rate
=
error_rate
.
wer
(
ref
,
hyp
)
self
.
assertTrue
(
abs
(
word_error_rate
-
0.769230769231
)
<
1e-6
)
def
test_wer_2
(
self
):
ref
=
'as any in england i would say said gamewell proudly that is '
\
'in his day'
hyp
=
'as any in england i would say said came well proudly that is '
\
'in his day'
word_error_rate
=
error_rate
.
wer
(
ref
,
hyp
)
self
.
assertTrue
(
abs
(
word_error_rate
-
0.1333333
)
<
1e-6
)
def
test_wer_3
(
self
):
ref
=
'the lieutenant governor lilburn w boggs afterward governor '
\
'was a pronounced mormon hater and throughout the period of '
\
'the troubles he manifested sympathy with the persecutors'
hyp
=
'the lieutenant governor little bit how bags afterward '
\
'governor was a pronounced warman hater and throughout the '
\
'period of th troubles he manifests sympathy with the '
\
'persecutors'
word_error_rate
=
error_rate
.
wer
(
ref
,
hyp
)
self
.
assertTrue
(
abs
(
word_error_rate
-
0.2692307692
)
<
1e-6
)
def
test_wer_4
(
self
):
ref
=
'the wood flamed up splendidly under the large brewing copper '
\
'and it sighed so deeply'
hyp
=
'the wood flame do splendidly under the large brewing copper '
\
'and its side so deeply'
word_error_rate
=
error_rate
.
wer
(
ref
,
hyp
)
self
.
assertTrue
(
abs
(
word_error_rate
-
0.2666666667
)
<
1e-6
)
def
test_wer_5
(
self
):
ref
=
'all the morning they trudged up the mountain path and at noon '
\
'unc and ojo sat on a fallen tree trunk and ate the last of '
\
'the bread which the old munchkin had placed in his pocket'
hyp
=
'all the morning they trudged up the mountain path and at noon '
\
'unc in ojo sat on a fallen tree trunk and ate the last of '
\
'the bread which the old munchkin had placed in his pocket'
word_error_rate
=
error_rate
.
wer
(
ref
,
hyp
)
self
.
assertTrue
(
abs
(
word_error_rate
-
0.027027027
)
<
1e-6
)
def
test_wer_6
(
self
):
ref
=
'i UM the PHONE IS i LEFT THE portable PHONE UPSTAIRS last night'
word_error_rate
=
error_rate
.
wer
(
ref
,
ref
)
self
.
assertEqual
(
word_error_rate
,
0.0
)
def
test_wer_
3
(
self
):
def
test_wer_
7
(
self
):
ref
=
' '
hyp
=
'Hypothesis sentence'
with
self
.
assertRaises
(
ValueError
):
...
...
@@ -39,28 +77,34 @@ class TestParse(unittest.TestCase):
self
.
assertTrue
(
abs
(
char_error_rate
-
0.125
)
<
1e-6
)
def
test_cer_3
(
self
):
ref
=
'were wolf'
hyp
=
'were wolf'
char_error_rate
=
error_rate
.
cer
(
ref
,
hyp
)
self
.
assertTrue
(
abs
(
char_error_rate
-
0.0
)
<
1e-6
)
def
test_cer_4
(
self
):
ref
=
'werewolf'
char_error_rate
=
error_rate
.
cer
(
ref
,
ref
)
self
.
assertEqual
(
char_error_rate
,
0.0
)
def
test_cer_
4
(
self
):
def
test_cer_
5
(
self
):
ref
=
u
'我是中国人'
hyp
=
u
'我是 美洲人'
char_error_rate
=
error_rate
.
cer
(
ref
,
hyp
)
self
.
assertTrue
(
abs
(
char_error_rate
-
0.6
)
<
1e-6
)
def
test_cer_
5
(
self
):
def
test_cer_
6
(
self
):
ref
=
u
'我 是 中 国 人'
hyp
=
u
'我 是 美 洲 人'
char_error_rate
=
error_rate
.
cer
(
ref
,
hyp
,
remove_space
=
True
)
self
.
assertTrue
(
abs
(
char_error_rate
-
0.4
)
<
1e-6
)
def
test_cer_
6
(
self
):
def
test_cer_
7
(
self
):
ref
=
u
'我是中国人'
char_error_rate
=
error_rate
.
cer
(
ref
,
ref
)
self
.
assertFalse
(
char_error_rate
,
0.0
)
def
test_cer_
7
(
self
):
def
test_cer_
8
(
self
):
ref
=
''
hyp
=
'Hypothesis'
with
self
.
assertRaises
(
ValueError
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录