Spaces:
Sleeping
Sleeping
File size: 3,137 Bytes
382cf0c 2b1261c 382cf0c 2b1261c 382cf0c 2b1261c 382cf0c 2b1261c 382cf0c 2b1261c 382cf0c 2b1261c 382cf0c 2b1261c 382cf0c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import argparse
import logging
from pathlib import Path
import platform
import re
from project_settings import project_path, log_directory
import log
log.setup(log_directory=log_directory)
import gradio as gr
from toolbox.os.command import Command
main_logger = logging.getLogger("main")
def get_args():
parser = argparse.ArgumentParser()
parser.add_argument(
"--example_wav_dir",
default=(project_path / "data/examples").as_posix(),
type=str
)
args = parser.parse_args()
return args
def process_uploaded_file(filename: str) -> str:
filename = Path(filename).as_posix()
main_logger.info("do vad: {}".format(filename))
cmd = "build/vad_go --filename {}".format(
filename
)
vad_result = Command.popen(cmd)
pattern = "text: (.*)textSize: (.*)wordSize: (.*)timeCost: (.+)"
match = re.search(pattern, vad_result, flags=re.IGNORECASE | re.DOTALL)
if match is None:
raise AssertionError("run vad failed: \n{}".format(vad_result))
text = match.group(1)
return text
def shell(cmd: str):
return Command.popen(cmd)
def main():
args = get_args()
title = "## GO语言实现的VAD."
# examples
example_wav_dir = Path(args.example_wav_dir)
examples = list()
for filename in example_wav_dir.glob("*.wav"):
examples.append(
[
filename.as_posix()
]
)
# blocks
with gr.Blocks() as blocks:
gr.Markdown(value=title)
with gr.Tabs():
with gr.TabItem("Upload from disk"):
uploaded_file = gr.Audio(
sources=["upload"],
type="filepath",
label="Upload from disk",
)
upload_button = gr.Button("Run VAD")
uploaded_output = gr.Textbox(label="outputs")
gr.Examples(
examples=examples,
inputs=[
uploaded_file,
],
outputs=[
uploaded_output
],
fn=process_uploaded_file
)
upload_button.click(
process_uploaded_file,
inputs=[
uploaded_file,
],
outputs=[
uploaded_output
],
)
with gr.TabItem("shell"):
shell_text = gr.Textbox(label="cmd")
shell_button = gr.Button("run")
shell_output = gr.Textbox(label="output")
shell_button.click(
shell,
inputs=[
shell_text,
],
outputs=[
shell_output
],
)
blocks.queue().launch(
share=False if platform.system() == "Windows" else False,
server_name="127.0.0.1" if platform.system() == "Windows" else "0.0.0.0",
server_port=7860
)
return
if __name__ == "__main__":
main()
|