From 7db988404a7d63b052bf0498a5c625c3a8b55114 Mon Sep 17 00:00:00 2001 From: Shengqiang Li <49022799+Shengqiang-Li@users.noreply.github.com> Date: Fri, 2 Feb 2024 09:47:45 +0800 Subject: [PATCH] [runtime] Support webui (#204) Co-authored-by: ShengqiangLi --- runtime/web/README.md | 4 ++++ runtime/web/app.py | 44 ++++++++++++++++++++++++++++++++++++ runtime/web/requirements.txt | 3 +++ 3 files changed, 51 insertions(+) create mode 100644 runtime/web/README.md create mode 100644 runtime/web/app.py create mode 100644 runtime/web/requirements.txt diff --git a/runtime/web/README.md b/runtime/web/README.md new file mode 100644 index 0000000..94f6059 --- /dev/null +++ b/runtime/web/README.md @@ -0,0 +1,4 @@ +## WeTTS Web Demo + +* How to install? `pip install -r requirements.txt` +* How to start? `python app.py` diff --git a/runtime/web/app.py b/runtime/web/app.py new file mode 100644 index 0000000..06998b7 --- /dev/null +++ b/runtime/web/app.py @@ -0,0 +1,44 @@ +# Copyright (c) 2024, Shengqiang Li (shengqiang.li96@gmail.com) +# +# 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 gradio as gr +from wetts.cli.model import load_model + + +def main(): + title = "End-to-End Speech Synthesis in WeTTS | 基于 WeTTS 的端到端语音合成" + description = "WeTTS Demo" + inputs = [gr.Textbox(label="text")] + phones = gr.Textbox(label="phones") + audio = gr.Audio(label="audio") + outputs = [phones, audio] + gr.Interface( + synthesis, + title=title, + description=description, + inputs=inputs, + outputs=outputs + ).launch(server_name='0.0.0.0', share=True) + + +def synthesis(text): + model = load_model() + phones, audio = model.synthesis(text) + sampling_rate = 16000 + return ' '.join(phones), (sampling_rate, audio) + + +if __name__ == '__main__': + main() diff --git a/runtime/web/requirements.txt b/runtime/web/requirements.txt new file mode 100644 index 0000000..f08b962 --- /dev/null +++ b/runtime/web/requirements.txt @@ -0,0 +1,3 @@ +git+https://github.com/wenet-e2e/wetts.git +requests +gradio