【SpeechX—统一高性能语音部署工具】SpeechX Architecture

(以下内容搬运自 PaddleSpeech)

PaddleSpeech Speechx 架构图

背景

  • 用户C++部署需求强烈。如 #1187
  • ASR支持输出timeline信息。如 #1257

Layout of Source File

The layout structure is as follows:

speechx/
├── base
│   ├── basic_types.h
│   ├── common.h
│   ├── flags.h
│   ├── log.h
│   ├── macros.h
│   └── thread_pool.h
├── CMakeLists.txt
├── codelab
│   └── feat_test
│       └── frontend_main.cc
├── decoder
│   ├── CMakeLists.txt
│   ├── common.h
│   ├── ctc_beam_search_decoder.cc
│   ├── ctc_beam_search_decoder.h
│   ├── ctc_decoders -> ../../../third_party/ctc_decoders
│   ├── ctc_tlg_decoder.cc
│   ├── ctc_tlg_decoder.h
│   ├── param.h
│   ├── recognizer.cc
│   └── recognizer.h
├── frontend
│   ├── audio
│   │   ├── audio_cache.cc
│   │   ├── audio_cache.h
│   │   ├── CMakeLists.txt
│   │   ├── cmvn.cc
│   │   ├── cmvn.h
│   │   ├── data_cache.h
│   │   ├── db_norm.cc
│   │   ├── db_norm.h
│   │   ├── fbank.cc
│   │   ├── fbank.h
│   │   ├── feature_cache.cc
│   │   ├── feature_cache.h
│   │   ├── feature_pipeline.cc
│   │   ├── feature_pipeline.h
│   │   ├── frontend_itf.h
│   │   ├── linear_spectrogram.cc
│   │   ├── linear_spectrogram.h
│   │   ├── mel-computations.cc
│   │   ├── mel-computations.h
│   │   ├── mfcc.cc
│   │   ├── mfcc.h
│   │   └── normalizer.h
│   ├── CMakeLists.txt
│   └── text
│       └── CMakeLists.txt
├── kaldi
│   ├── base
│   │   ├── CMakeLists.txt
│   │   ├── io-funcs.cc
│   │   ├── io-funcs.h
│   │   ├── io-funcs-inl.h
│   │   ├── kaldi-common.h
│   │   ├── kaldi-error.cc
│   │   ├── kaldi-error.h
│   │   ├── kaldi-math.cc
│   │   ├── kaldi-math.h
│   │   ├── kaldi-types.h
│   │   ├── kaldi-utils.cc
│   │   ├── kaldi-utils.h
│   │   ├── timer.cc
│   │   ├── timer.h
│   │   └── version.h
│   ├── CMakeLists.txt
│   ├── decoder
│   │   ├── CMakeLists.txt
│   │   ├── decodable-itf.h
│   │   ├── lattice-faster-decoder.cc
│   │   ├── lattice-faster-decoder.h
│   │   ├── lattice-faster-online-decoder.cc
│   │   └── lattice-faster-online-decoder.h
│   ├── feat
│   │   ├── CMakeLists.txt
│   │   ├── cmvn.cc
│   │   ├── cmvn.h
│   │   ├── feature-common.h
│   │   ├── feature-common-inl.h
│   │   ├── feature-fbank.cc
│   │   ├── feature-fbank.h
│   │   ├── feature-functions.cc
│   │   ├── feature-functions.h
│   │   ├── feature-mfcc.cc
│   │   ├── feature-mfcc.h
│   │   ├── feature-plp.cc
│   │   ├── feature-plp.h
│   │   ├── feature-spectrogram.cc
│   │   ├── feature-spectrogram.h
│   │   ├── feature-window.cc
│   │   ├── feature-window.h
│   │   ├── mel-computations.cc
│   │   ├── mel-computations.h
│   │   ├── online-feature.cc
│   │   ├── online-feature.h
│   │   ├── pitch-functions.cc
│   │   ├── pitch-functions.h
│   │   ├── resample.cc
│   │   ├── resample.h
│   │   ├── signal.cc
│   │   ├── signal.h
│   │   ├── wave-reader.cc
│   │   └── wave-reader.h
│   ├── fstbin
│   │   ├── CMakeLists.txt
│   │   ├── fstaddselfloops.cc
│   │   ├── fstdeterminizestar.cc
│   │   ├── fstisstochastic.cc
│   │   ├── fstminimizeencoded.cc
│   │   └── fsttablecompose.cc
│   ├── fstext
│   │   ├── CMakeLists.txt
│   │   ├── determinize-lattice.h
│   │   ├── determinize-lattice-inl.h
│   │   ├── determinize-star.h
│   │   ├── determinize-star-inl.h
│   │   ├── fstext-lib.h
│   │   ├── fstext-utils.h
│   │   ├── fstext-utils-inl.h
│   │   ├── kaldi-fst-io.cc
│   │   ├── kaldi-fst-io.h
│   │   ├── kaldi-fst-io-inl.h
│   │   ├── lattice-utils.h
│   │   ├── lattice-utils-inl.h
│   │   ├── lattice-weight.h
│   │   ├── pre-determinize.h
│   │   ├── pre-determinize-inl.h
│   │   ├── remove-eps-local.h
│   │   ├── remove-eps-local-inl.h
│   │   └── table-matcher.h
│   ├── lat
│   │   ├── CMakeLists.txt
│   │   ├── determinize-lattice-pruned.cc
│   │   ├── determinize-lattice-pruned.h
│   │   ├── kaldi-lattice.cc
│   │   ├── kaldi-lattice.h
│   │   ├── lattice-functions.cc
│   │   └── lattice-functions.h
│   ├── lm
│   │   ├── arpa-file-parser.cc
│   │   ├── arpa-file-parser.h
│   │   ├── arpa-lm-compiler.cc
│   │   ├── arpa-lm-compiler.h
│   │   └── CMakeLists.txt
│   ├── lmbin
│   │   ├── arpa2fst.cc
│   │   └── CMakeLists.txt
│   ├── matrix
│   │   ├── cblas-wrappers.h
│   │   ├── CMakeLists.txt
│   │   ├── compressed-matrix.cc
│   │   ├── compressed-matrix.h
│   │   ├── jama-eig.h
│   │   ├── jama-svd.h
│   │   ├── kaldi-blas.h
│   │   ├── kaldi-matrix.cc
│   │   ├── kaldi-matrix.h
│   │   ├── kaldi-matrix-inl.h
│   │   ├── kaldi-vector.cc
│   │   ├── kaldi-vector.h
│   │   ├── kaldi-vector-inl.h
│   │   ├── matrix-common.h
│   │   ├── matrix-functions.cc
│   │   ├── matrix-functions.h
│   │   ├── matrix-functions-inl.h
│   │   ├── matrix-lib.h
│   │   ├── optimization.cc
│   │   ├── optimization.h
│   │   ├── packed-matrix.cc
│   │   ├── packed-matrix.h
│   │   ├── qr.cc
│   │   ├── sparse-matrix.cc
│   │   ├── sparse-matrix.h
│   │   ├── sp-matrix.cc
│   │   ├── sp-matrix.h
│   │   ├── sp-matrix-inl.h
│   │   ├── srfft.cc
│   │   ├── srfft.h
│   │   ├── tp-matrix.cc
│   │   └── tp-matrix.h
│   └── util
│       ├── basic-filebuf.h
│       ├── CMakeLists.txt
│       ├── common-utils.h
│       ├── const-integer-set.h
│       ├── const-integer-set-inl.h
│       ├── edit-distance.h
│       ├── edit-distance-inl.h
│       ├── hash-list.h
│       ├── hash-list-inl.h
│       ├── kaldi-cygwin-io-inl.h
│       ├── kaldi-holder.cc
│       ├── kaldi-holder.h
│       ├── kaldi-holder-inl.h
│       ├── kaldi-io.cc
│       ├── kaldi-io.h
│       ├── kaldi-io-inl.h
│       ├── kaldi-pipebuf.h
│       ├── kaldi-semaphore.cc
│       ├── kaldi-semaphore.h
│       ├── kaldi-table.cc
│       ├── kaldi-table.h
│       ├── kaldi-table-inl.h
│       ├── kaldi-thread.cc
│       ├── kaldi-thread.h
│       ├── options-itf.h
│       ├── parse-options.cc
│       ├── parse-options.h
│       ├── simple-io-funcs.cc
│       ├── simple-io-funcs.h
│       ├── simple-options.cc
│       ├── simple-options.h
│       ├── stl-utils.h
│       ├── table-types.h
│       ├── text-utils.cc
│       └── text-utils.h
├── model
│   └── CMakeLists.txt
├── nnet
│   ├── CMakeLists.txt
│   ├── decodable.cc
│   ├── decodable.h
│   ├── nnet_itf.h
│   ├── paddle_nnet.cc
│   └── paddle_nnet.h
├── protocol
│   └── CMakeLists.txt
├── third_party
│   ├── CMakeLists.txt
│   └── README.md
├── utils
│   ├── CMakeLists.txt
│   ├── file_utils.cc
│   ├── file_utils.h
│   ├── ring_buffer.cc
│   ├── ring_buffer.h
│   ├── simdjson.cpp
│   └── simdjson.h
└── websocket
    ├── CMakeLists.txt
    ├── websocket_client.cc
    ├── websocket_client.h
    ├── websocket_server.cc
    └── websocket_server.h

Common Modules

  • gflag,glog,gtest:openfst 使用的是 gflag/glog。
  • utils: absl-cpp
  • config:使用 kaldi config
  • threadpool: https://github.com/progschj/ThreadPool
  • decoder:支持wfst解码,ctc beam search.
  • frontend:模块组件化(方便定制新组件),流式级联(便于插入和按需组合),feature extractor进行抽象。目前支持 linear feature和fbank,与paddlespeech python端对齐。
  • nnet:支持 deepspeech2 model。
  • websocket:网络模块。
  • examples: 使用实例,与speechx目录平级。

P.S. 欢迎关注我们的 github repo [PaddleSpeech](https://github.com/PaddlePaddle/PaddleSpeech), 是基于飞桨 PaddlePaddle 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值