Skip to content

SpeechX Architecture

Hui Zhang edited this page Jan 25, 2022 · 11 revisions

Directory Tree

The directory structure is as follows:

speechx/
├── CMakeLists.txt
├── docker    # dockerfiles
├── examples  # asr, tts examples
└── speechx   # lib .a/.so
    ├── CMakeLists.txt
    ├── decoder   # decoder
    │   └── CMakeLists.txt
    ├── frontend  # feature
    │   ├── CMakeLists.txt
    │   ├── audio
    │   │   └── CMakeLists.txt
    │   └── text
    │       └── CMakeLists.txt
    ├── kaldi    # kaldi libs
    ├── model    # inference engine
    │   └── CMakeLists.txt
    ├── protocol # http/websoket/grpc
    │   └── CMakeLists.txt
    ├── third_party
    │   └── CMakeLists.txt
    └── utils
        └── CMakeLists.txt

12 directories, 10 files

Common Modules

  • gflag,glog,gtest:openfst 使用的是 gflag/glog,替换KALDI_WARN等。

  • utils: absl-cpp

  • config模块:保留kaldi config。

  • GRPC才考虑Protobuff

  • tcmalloc: 并发时性能好

  • mempool: 最好能一起管理cpu和gpu的mem;减少内存分配开销和碎片

  • threadpool:做单core多worker可以用。 https://github.com/progschj/ThreadPool

  • queue: 需要queue在 data -> feat -> decode 之间做异步操作

  • decode task: 需要支持单core多线程

Clone this wiki locally