parent
2a530d49ff
commit
63a1799fa9
@ -0,0 +1,13 @@
|
||||
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
@ -0,0 +1,13 @@
|
||||
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
@ -0,0 +1,8 @@
|
||||
# This is the parameter configuration file for PaddleSpeech Serving.
|
||||
|
||||
##################################################################
|
||||
# SERVER SETTING #
|
||||
##################################################################
|
||||
host: '0.0.0.0'
|
||||
port: 8090
|
||||
|
@ -0,0 +1,13 @@
|
||||
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
@ -0,0 +1,13 @@
|
||||
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
@ -0,0 +1,63 @@
|
||||
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
from fastapi import APIRouter
|
||||
import base64
|
||||
|
||||
|
||||
from engine.asr.python.asr_engine import ASREngine
|
||||
from .response import ASRResponse
|
||||
from .request import ASRRequest
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get('/paddlespeech/asr/help')
|
||||
def help():
|
||||
"""help
|
||||
|
||||
Returns:
|
||||
json: [description]
|
||||
"""
|
||||
return {'hello': 'world'}
|
||||
|
||||
|
||||
@router.post("/paddlespeech/asr", response_model=ASRResponse)
|
||||
def asr(request_body: ASRRequest):
|
||||
"""asr api
|
||||
|
||||
Args:
|
||||
request_body (ASRRequest): [description]
|
||||
|
||||
Returns:
|
||||
json: [description]
|
||||
"""
|
||||
# single
|
||||
asr_engine = ASREngine()
|
||||
|
||||
asr_engine.init()
|
||||
asr_results = asr_engine.run()
|
||||
asr_engine.postprocess()
|
||||
|
||||
json_body = {
|
||||
"success": True,
|
||||
"code": 0,
|
||||
"message": {
|
||||
"description": "success"
|
||||
},
|
||||
"result": {
|
||||
"transcription": asr_results
|
||||
}
|
||||
}
|
||||
|
||||
return json_body
|
@ -0,0 +1,59 @@
|
||||
# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
import functools
|
||||
import logging
|
||||
|
||||
__all__ = [
|
||||
'logger',
|
||||
]
|
||||
|
||||
|
||||
class Logger(object):
|
||||
def __init__(self, name: str=None):
|
||||
name = 'PaddleSpeech' if not name else name
|
||||
self.logger = logging.getLogger(name)
|
||||
|
||||
log_config = {
|
||||
'DEBUG': 10,
|
||||
'INFO': 20,
|
||||
'TRAIN': 21,
|
||||
'EVAL': 22,
|
||||
'WARNING': 30,
|
||||
'ERROR': 40,
|
||||
'CRITICAL': 50,
|
||||
'EXCEPTION': 100,
|
||||
}
|
||||
for key, level in log_config.items():
|
||||
logging.addLevelName(level, key)
|
||||
if key == 'EXCEPTION':
|
||||
self.__dict__[key.lower()] = self.logger.exception
|
||||
else:
|
||||
self.__dict__[key.lower()] = functools.partial(self.__call__,
|
||||
level)
|
||||
|
||||
self.format = logging.Formatter(
|
||||
fmt='[%(asctime)-15s] [%(levelname)8s] - %(message)s')
|
||||
|
||||
self.handler = logging.StreamHandler()
|
||||
self.handler.setFormatter(self.format)
|
||||
|
||||
self.logger.addHandler(self.handler)
|
||||
self.logger.setLevel(logging.DEBUG)
|
||||
self.logger.propagate = False
|
||||
|
||||
def __call__(self, log_level: str, msg: str):
|
||||
self.logger.log(log_level, msg)
|
||||
|
||||
|
||||
logger = Logger()
|
@ -0,0 +1,66 @@
|
||||
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the
|
||||
import requests
|
||||
import json
|
||||
import time
|
||||
import base64
|
||||
|
||||
import argparse
|
||||
|
||||
def readwav2base64(wav_file):
|
||||
"""
|
||||
read wave file and covert to base64 string
|
||||
"""
|
||||
with open(wav_file, 'rb') as f:
|
||||
base64_bytes = base64.b64encode(f.read())
|
||||
base64_string = base64_bytes.decode('utf-8')
|
||||
return base64_string
|
||||
|
||||
|
||||
def main(args):
|
||||
"""
|
||||
main func
|
||||
"""
|
||||
url = "http://127.0.0.1:8090/paddlespeech/asr"
|
||||
|
||||
# start Timestamp
|
||||
time_start=time.time()
|
||||
|
||||
# test_audio_dir = "test_data/16_audio.wav"
|
||||
# audio = readwav2base64(test_audio_dir)
|
||||
|
||||
data = {
|
||||
"audio": "exSI6ICJlbiIsCgkgICAgInBvc2l0aW9uIjogImZhbHNlIgoJf",
|
||||
"audio_format": "wav",
|
||||
"sample_rate": 16000,
|
||||
"lang": "zh_cn",
|
||||
}
|
||||
|
||||
r = requests.post(url=url, data=json.dumps(data))
|
||||
|
||||
# ending Timestamp
|
||||
time_end=time.time()
|
||||
print('time cost',time_end - time_start, 's')
|
||||
|
||||
print(r.json())
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--model_type", action="store",
|
||||
help="model type: u2, dp2", default="dp2")
|
||||
args = parser.parse_args()
|
||||
|
||||
main(args)
|
Loading…
Reference in new issue