Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
DeepSpeech
提交
a4c2dd7d
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看板
提交
a4c2dd7d
编写于
8月 03, 2017
作者:
X
Xinghai Sun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add function docs and comments to demo_server.py and demo_client.py.
上级
cb9370f3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
3 deletion
+16
-3
demo_client.py
demo_client.py
+6
-0
demo_server.py
demo_server.py
+10
-3
未找到文件。
demo_client.py
浏览文件 @
a4c2dd7d
...
@@ -11,6 +11,7 @@ enable_trigger_record = True
...
@@ -11,6 +11,7 @@ enable_trigger_record = True
def
on_press
(
key
):
def
on_press
(
key
):
"""On-press keyboard callback function."""
global
is_recording
,
enable_trigger_record
global
is_recording
,
enable_trigger_record
if
key
==
keyboard
.
Key
.
space
:
if
key
==
keyboard
.
Key
.
space
:
if
(
not
is_recording
)
and
enable_trigger_record
:
if
(
not
is_recording
)
and
enable_trigger_record
:
...
@@ -20,6 +21,7 @@ def on_press(key):
...
@@ -20,6 +21,7 @@ def on_press(key):
def
on_release
(
key
):
def
on_release
(
key
):
"""On-release keyboard callback function."""
global
is_recording
,
enable_trigger_record
global
is_recording
,
enable_trigger_record
if
key
==
keyboard
.
Key
.
esc
:
if
key
==
keyboard
.
Key
.
esc
:
return
False
return
False
...
@@ -32,6 +34,7 @@ data_list = []
...
@@ -32,6 +34,7 @@ data_list = []
def
callback
(
in_data
,
frame_count
,
time_info
,
status
):
def
callback
(
in_data
,
frame_count
,
time_info
,
status
):
"""Audio recorder's stream callback function."""
global
data_list
,
is_recording
,
enable_trigger_record
global
data_list
,
is_recording
,
enable_trigger_record
if
is_recording
:
if
is_recording
:
data_list
.
append
(
in_data
)
data_list
.
append
(
in_data
)
...
@@ -53,6 +56,7 @@ def callback(in_data, frame_count, time_info, status):
...
@@ -53,6 +56,7 @@ def callback(in_data, frame_count, time_info, status):
def
main
():
def
main
():
# prepare audio recorder
p
=
pyaudio
.
PyAudio
()
p
=
pyaudio
.
PyAudio
()
stream
=
p
.
open
(
stream
=
p
.
open
(
format
=
pyaudio
.
paInt32
,
format
=
pyaudio
.
paInt32
,
...
@@ -62,10 +66,12 @@ def main():
...
@@ -62,10 +66,12 @@ def main():
stream_callback
=
callback
)
stream_callback
=
callback
)
stream
.
start_stream
()
stream
.
start_stream
()
# prepare keyboard listener
with
keyboard
.
Listener
(
with
keyboard
.
Listener
(
on_press
=
on_press
,
on_release
=
on_release
)
as
listener
:
on_press
=
on_press
,
on_release
=
on_release
)
as
listener
:
listener
.
join
()
listener
.
join
()
# close up
stream
.
stop_stream
()
stream
.
stop_stream
()
stream
.
close
()
stream
.
close
()
p
.
terminate
()
p
.
terminate
()
...
...
demo_server.py
浏览文件 @
a4c2dd7d
...
@@ -112,6 +112,8 @@ args = parser.parse_args()
...
@@ -112,6 +112,8 @@ args = parser.parse_args()
class
AsrTCPServer
(
SocketServer
.
TCPServer
):
class
AsrTCPServer
(
SocketServer
.
TCPServer
):
"""The ASR TCP Server."""
def
__init__
(
self
,
def
__init__
(
self
,
server_address
,
server_address
,
RequestHandlerClass
,
RequestHandlerClass
,
...
@@ -125,8 +127,7 @@ class AsrTCPServer(SocketServer.TCPServer):
...
@@ -125,8 +127,7 @@ class AsrTCPServer(SocketServer.TCPServer):
class
AsrRequestHandler
(
SocketServer
.
BaseRequestHandler
):
class
AsrRequestHandler
(
SocketServer
.
BaseRequestHandler
):
"""The ASR request handler.
"""The ASR request handler."""
"""
def
handle
(
self
):
def
handle
(
self
):
# receive data through TCP socket
# receive data through TCP socket
...
@@ -170,6 +171,7 @@ def warm_up_test(audio_process_handler,
...
@@ -170,6 +171,7 @@ def warm_up_test(audio_process_handler,
manifest_path
,
manifest_path
,
num_test_cases
,
num_test_cases
,
random_seed
=
0
):
random_seed
=
0
):
"""Warming-up test."""
manifest
=
read_manifest
(
manifest_path
)
manifest
=
read_manifest
(
manifest_path
)
rng
=
random
.
Random
(
random_seed
)
rng
=
random
.
Random
(
random_seed
)
samples
=
rng
.
sample
(
manifest
,
num_test_cases
)
samples
=
rng
.
sample
(
manifest
,
num_test_cases
)
...
@@ -183,12 +185,15 @@ def warm_up_test(audio_process_handler,
...
@@ -183,12 +185,15 @@ def warm_up_test(audio_process_handler,
def
start_server
():
def
start_server
():
"""Start the ASR server"""
# prepare data generator
data_generator
=
DataGenerator
(
data_generator
=
DataGenerator
(
vocab_filepath
=
args
.
vocab_filepath
,
vocab_filepath
=
args
.
vocab_filepath
,
mean_std_filepath
=
args
.
mean_std_filepath
,
mean_std_filepath
=
args
.
mean_std_filepath
,
augmentation_config
=
'{}'
,
augmentation_config
=
'{}'
,
specgram_type
=
args
.
specgram_type
,
specgram_type
=
args
.
specgram_type
,
num_threads
=
1
)
num_threads
=
1
)
# prepare ASR model
ds2_model
=
DeepSpeech2Model
(
ds2_model
=
DeepSpeech2Model
(
vocab_size
=
data_generator
.
vocab_size
,
vocab_size
=
data_generator
.
vocab_size
,
num_conv_layers
=
args
.
num_conv_layers
,
num_conv_layers
=
args
.
num_conv_layers
,
...
@@ -196,6 +201,7 @@ def start_server():
...
@@ -196,6 +201,7 @@ def start_server():
rnn_layer_size
=
args
.
rnn_layer_size
,
rnn_layer_size
=
args
.
rnn_layer_size
,
pretrained_model_path
=
args
.
model_filepath
)
pretrained_model_path
=
args
.
model_filepath
)
# prepare ASR inference handler
def
file_to_transcript
(
filename
):
def
file_to_transcript
(
filename
):
feature
=
data_generator
.
process_utterance
(
filename
,
""
)
feature
=
data_generator
.
process_utterance
(
filename
,
""
)
result_transcript
=
ds2_model
.
infer_batch
(
result_transcript
=
ds2_model
.
infer_batch
(
...
@@ -210,6 +216,7 @@ def start_server():
...
@@ -210,6 +216,7 @@ def start_server():
num_processes
=
1
)
num_processes
=
1
)
return
result_transcript
[
0
]
return
result_transcript
[
0
]
# warming up with utterrances sampled from Librispeech
print
(
'-----------------------------------------------------------'
)
print
(
'-----------------------------------------------------------'
)
print
(
'Warming up ...'
)
print
(
'Warming up ...'
)
warm_up_test
(
warm_up_test
(
...
@@ -218,12 +225,12 @@ def start_server():
...
@@ -218,12 +225,12 @@ def start_server():
num_test_cases
=
3
)
num_test_cases
=
3
)
print
(
'-----------------------------------------------------------'
)
print
(
'-----------------------------------------------------------'
)
# start the server
server
=
AsrTCPServer
(
server
=
AsrTCPServer
(
server_address
=
(
args
.
host_ip
,
args
.
host_port
),
server_address
=
(
args
.
host_ip
,
args
.
host_port
),
RequestHandlerClass
=
AsrRequestHandler
,
RequestHandlerClass
=
AsrRequestHandler
,
speech_save_dir
=
args
.
speech_save_dir
,
speech_save_dir
=
args
.
speech_save_dir
,
audio_process_handler
=
file_to_transcript
)
audio_process_handler
=
file_to_transcript
)
print
(
"ASR Server Started."
)
print
(
"ASR Server Started."
)
server
.
serve_forever
()
server
.
serve_forever
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录