Full Code of PaddlePaddle/PaddleSpeech for AI

develop 3afe871a8768 cached
3420 files
15.9 MB
4.1M tokens
7821 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (16,402K chars total). Download the full file to get everything.
Repository: PaddlePaddle/PaddleSpeech
Branch: develop
Commit: 3afe871a8768
Files: 3420
Total size: 15.9 MB

Directory structure:
gitextract_h_rw1s1r/

├── .clang-format
├── .flake8
├── .gitconfig
├── .github/
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report-s2t.md
│   │   ├── bug-report-tts.md
│   │   ├── feature-request.md
│   │   ├── others.md
│   │   └── question.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── stale.yml
├── .gitignore
├── .mergify.yml
├── .pre-commit-config.yaml
├── .pre-commit-hooks/
│   ├── clang-format.hook
│   └── copyright-check.hook
├── .readthedocs.yml
├── .style.yapf
├── .travis.yml
├── LICENSE
├── MANIFEST.in
├── README.md
├── README_cn.md
├── audio/
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── cmake/
│   │   ├── FindGFortranLibs.cmake
│   │   ├── external/
│   │   │   └── openblas.cmake
│   │   ├── pybind.cmake
│   │   └── summary.cmake
│   ├── paddleaudio/
│   │   ├── CMakeLists.txt
│   │   ├── __init__.py
│   │   ├── _extension.py
│   │   ├── _internal/
│   │   │   ├── __init__.py
│   │   │   └── module_utils.py
│   │   ├── backends/
│   │   │   ├── __init__.py
│   │   │   ├── common.py
│   │   │   ├── no_backend.py
│   │   │   ├── soundfile_backend.py
│   │   │   ├── sox_io_backend.py
│   │   │   └── utils.py
│   │   ├── compliance/
│   │   │   ├── __init__.py
│   │   │   ├── kaldi.py
│   │   │   └── librosa.py
│   │   ├── datasets/
│   │   │   ├── __init__.py
│   │   │   ├── dataset.py
│   │   │   ├── esc50.py
│   │   │   ├── gtzan.py
│   │   │   ├── hey_snips.py
│   │   │   ├── rirs_noises.py
│   │   │   ├── tess.py
│   │   │   ├── urban_sound.py
│   │   │   └── voxceleb.py
│   │   ├── features/
│   │   │   ├── __init__.py
│   │   │   └── layers.py
│   │   ├── functional/
│   │   │   ├── __init__.py
│   │   │   ├── functional.py
│   │   │   └── window.py
│   │   ├── kaldi/
│   │   │   ├── __init__.py
│   │   │   └── kaldi.py
│   │   ├── metric/
│   │   │   ├── __init__.py
│   │   │   └── eer.py
│   │   ├── sox_effects/
│   │   │   ├── __init__.py
│   │   │   └── sox_effects.py
│   │   ├── src/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── optional/
│   │   │   │   ├── COPYING
│   │   │   │   └── optional.hpp
│   │   │   ├── pybind/
│   │   │   │   ├── kaldi/
│   │   │   │   │   ├── feature_common.h
│   │   │   │   │   ├── feature_common_inl.h
│   │   │   │   │   ├── kaldi_feature.cc
│   │   │   │   │   ├── kaldi_feature.h
│   │   │   │   │   ├── kaldi_feature_wrapper.cc
│   │   │   │   │   └── kaldi_feature_wrapper.h
│   │   │   │   ├── pybind.cpp
│   │   │   │   └── sox/
│   │   │   │       ├── effects.cpp
│   │   │   │       ├── effects.h
│   │   │   │       ├── effects_chain.cpp
│   │   │   │       ├── effects_chain.h
│   │   │   │       ├── io.cpp
│   │   │   │       ├── io.h
│   │   │   │       ├── types.cpp
│   │   │   │       ├── types.h
│   │   │   │       ├── utils.cpp
│   │   │   │       └── utils.h
│   │   │   └── utils.cpp
│   │   ├── third_party/
│   │   │   ├── .gitignore
│   │   │   ├── CMakeLists.txt
│   │   │   ├── kaldi-native-fbank/
│   │   │   │   └── csrc/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── feature-fbank.cc
│   │   │   │       ├── feature-fbank.h
│   │   │   │       ├── feature-functions.cc
│   │   │   │       ├── feature-functions.h
│   │   │   │       ├── feature-window.cc
│   │   │   │       ├── feature-window.h
│   │   │   │       ├── fftsg.c
│   │   │   │       ├── log.cc
│   │   │   │       ├── log.h
│   │   │   │       ├── mel-computations.cc
│   │   │   │       ├── mel-computations.h
│   │   │   │       ├── rfft.cc
│   │   │   │       └── rfft.h
│   │   │   ├── patches/
│   │   │   │   ├── config.guess
│   │   │   │   ├── config.sub
│   │   │   │   ├── libmad.patch
│   │   │   │   └── sox.patch
│   │   │   └── sox/
│   │   │       └── CMakeLists.txt
│   │   └── utils/
│   │       ├── __init__.py
│   │       ├── download.py
│   │       ├── env.py
│   │       ├── error.py
│   │       ├── log.py
│   │       ├── numeric.py
│   │       ├── sox_utils.py
│   │       ├── tensor_utils.py
│   │       └── time.py
│   ├── setup.py
│   ├── tests/
│   │   ├── backends/
│   │   │   ├── base.py
│   │   │   ├── common.py
│   │   │   ├── soundfile/
│   │   │   │   ├── base.py
│   │   │   │   ├── common.py
│   │   │   │   ├── info_test.py
│   │   │   │   ├── load_test.py
│   │   │   │   ├── save_test.py
│   │   │   │   └── test_io.py
│   │   │   └── sox_io/
│   │   │       ├── common.py
│   │   │       ├── info_test.py
│   │   │       ├── load_test.py
│   │   │       ├── save_test.py
│   │   │       ├── smoke_test.py
│   │   │       ├── sox_effect_test.py
│   │   │       └── sox_effect_test_args.jsonl
│   │   ├── benchmark/
│   │   │   ├── README.md
│   │   │   ├── log_melspectrogram.py
│   │   │   ├── melspectrogram.py
│   │   │   └── mfcc.py
│   │   ├── common_utils/
│   │   │   ├── __init__.py
│   │   │   ├── case_utils.py
│   │   │   ├── data_utils.py
│   │   │   ├── parameterized_utils.py
│   │   │   ├── sox_utils.py
│   │   │   └── wav_utils.py
│   │   └── features/
│   │       ├── __init__.py
│   │       ├── base.py
│   │       ├── test_istft.py
│   │       ├── test_kaldi.py
│   │       ├── test_kaldi_feat.py
│   │       ├── test_librosa.py
│   │       ├── test_log_melspectrogram.py
│   │       ├── test_spectrogram.py
│   │       ├── test_stft.py
│   │       └── testdata/
│   │           ├── fbank_feat.ark
│   │           ├── fbank_feat_txt.ark
│   │           ├── pitch_feat.ark
│   │           └── pitch_feat_txt.ark
│   └── tools/
│       └── setup_helpers/
│           ├── __init__.py
│           └── extension.py
├── dataset/
│   ├── aishell/
│   │   ├── .gitignore
│   │   └── aishell.py
│   ├── aishell3/
│   │   └── README.md
│   ├── chime3_background/
│   │   └── chime3_background.py
│   ├── gigaspeech/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── gigaspeech.py
│   │   └── run.sh
│   ├── librispeech/
│   │   ├── .gitignore
│   │   └── librispeech.py
│   ├── magicdata/
│   │   └── README.md
│   ├── mini_librispeech/
│   │   ├── .gitignore
│   │   └── mini_librispeech.py
│   ├── multi_cn/
│   │   └── README.md
│   ├── primewords/
│   │   └── README.md
│   ├── rir_noise/
│   │   ├── .gitignore
│   │   └── rir_noise.py
│   ├── st-cmds/
│   │   └── README.md
│   ├── tal_cs/
│   │   ├── README.md
│   │   └── tal_cs.py
│   ├── ted_en_zh/
│   │   ├── .gitignore
│   │   └── ted_en_zh.py
│   ├── thchs30/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   └── thchs30.py
│   ├── timit/
│   │   ├── .gitignore
│   │   ├── timit.py
│   │   └── timit_kaldi_standard_split.py
│   ├── voxceleb/
│   │   ├── README.md
│   │   ├── voxceleb1.py
│   │   └── voxceleb2.py
│   └── voxforge/
│       ├── run_data.sh
│       └── voxforge.py
├── demos/
│   ├── README.md
│   ├── README_cn.md
│   ├── TTSAndroid/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── .gitignore
│   │   │   ├── build.gradle
│   │   │   ├── proguard-rules.pro
│   │   │   └── src/
│   │   │       ├── androidTest/
│   │   │       │   └── java/
│   │   │       │       └── com/
│   │   │       │           └── baidu/
│   │   │       │               └── paddle/
│   │   │       │                   └── lite/
│   │   │       │                       └── demo/
│   │   │       │                           └── tts/
│   │   │       │                               └── ExampleInstrumentedTest.java
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   ├── java/
│   │   │       │   │   └── com/
│   │   │       │   │       └── baidu/
│   │   │       │   │           └── paddle/
│   │   │       │   │               └── lite/
│   │   │       │   │                   └── demo/
│   │   │       │   │                       └── tts/
│   │   │       │   │                           ├── AppCompatPreferenceActivity.java
│   │   │       │   │                           ├── MainActivity.java
│   │   │       │   │                           ├── Predictor.java
│   │   │       │   │                           ├── SettingsActivity.java
│   │   │       │   │                           └── Utils.java
│   │   │       │   └── res/
│   │   │       │       ├── drawable/
│   │   │       │       │   └── button_drawable.xml
│   │   │       │       ├── layout/
│   │   │       │       │   └── activity_main.xml
│   │   │       │       ├── menu/
│   │   │       │       │   └── menu_action_options.xml
│   │   │       │       ├── values/
│   │   │       │       │   ├── arrays.xml
│   │   │       │       │   ├── colors.xml
│   │   │       │       │   ├── strings.xml
│   │   │       │       │   └── styles.xml
│   │   │       │       └── xml/
│   │   │       │           └── settings.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── com/
│   │   │                   └── baidu/
│   │   │                       └── paddle/
│   │   │                           └── lite/
│   │   │                               └── demo/
│   │   │                                   └── tts/
│   │   │                                       └── ExampleUnitTest.java
│   │   ├── build.gradle
│   │   ├── gradle/
│   │   │   └── wrapper/
│   │   │       ├── gradle-wrapper.jar
│   │   │       └── gradle-wrapper.properties
│   │   ├── gradle.properties
│   │   ├── gradlew
│   │   ├── gradlew.bat
│   │   └── settings.gradle
│   ├── TTSArmLinux/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── build.sh
│   │   ├── clean.sh
│   │   ├── config.sh
│   │   ├── download.sh
│   │   ├── front.conf
│   │   ├── run.sh
│   │   └── src/
│   │       ├── CMakeLists.txt
│   │       ├── Predictor.hpp
│   │       └── main.cc
│   ├── TTSCppFrontend/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── README.md
│   │   ├── build-depends.sh
│   │   ├── build.sh
│   │   ├── clean.sh
│   │   ├── download.sh
│   │   ├── front_demo/
│   │   │   ├── front.conf
│   │   │   ├── front_demo.cpp
│   │   │   └── gentools/
│   │   │       ├── gen_dict_paddlespeech.py
│   │   │       ├── genid.py
│   │   │       └── word2phones.py
│   │   ├── run_front_demo.sh
│   │   ├── src/
│   │   │   ├── base/
│   │   │   │   ├── type_conv.cpp
│   │   │   │   └── type_conv.h
│   │   │   └── front/
│   │   │       ├── front_interface.cpp
│   │   │       ├── front_interface.h
│   │   │       ├── text_normalize.cpp
│   │   │       └── text_normalize.h
│   │   └── third-party/
│   │       └── CMakeLists.txt
│   ├── asr_deployment/
│   │   ├── README.md
│   │   └── README_cn.md
│   ├── audio_content_search/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── acs_clinet.py
│   │   ├── conf/
│   │   │   ├── acs_application.yaml
│   │   │   ├── words.txt
│   │   │   ├── ws_conformer_application.yaml
│   │   │   └── ws_conformer_wenetspeech_application.yaml
│   │   ├── requirements.txt
│   │   ├── run.sh
│   │   └── streaming_asr_server.py
│   ├── audio_searching/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── docker-compose.yaml
│   │   ├── requirements.txt
│   │   └── src/
│   │       ├── audio_search.py
│   │       ├── config.py
│   │       ├── encode.py
│   │       ├── logs.py
│   │       ├── milvus_helpers.py
│   │       ├── mysql_helpers.py
│   │       ├── operations/
│   │       │   ├── __init__.py
│   │       │   ├── count.py
│   │       │   ├── drop.py
│   │       │   ├── load.py
│   │       │   └── search.py
│   │       ├── test_audio_search.py
│   │       ├── test_vpr_search.py
│   │       └── vpr_search.py
│   ├── audio_tagging/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── automatic_video_subtitiles/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── recognize.py
│   │   └── run.sh
│   ├── custom_streaming_asr/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── path.sh
│   │   ├── setup_docker.sh
│   │   ├── websocket_client.sh
│   │   └── websocket_server.sh
│   ├── keyword_spotting/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── metaverse/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── path.sh
│   │   ├── run.sh
│   │   └── sentences.txt
│   ├── punctuation_restoration/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── speaker_verification/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── speech_recognition/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── speech_server/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── asr_client.sh
│   │   ├── cls_client.sh
│   │   ├── conf/
│   │   │   ├── application.yaml
│   │   │   └── conformer_talcs_application.yaml
│   │   ├── server.sh
│   │   ├── sid_client.sh
│   │   ├── start_multi_progress_server.py
│   │   ├── text_client.sh
│   │   └── tts_client.sh
│   ├── speech_ssl/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── speech_translation/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── speech_web/
│   │   ├── .gitignore
│   │   ├── API.md
│   │   ├── README.md
│   │   ├── speech_server/
│   │   │   ├── conf/
│   │   │   │   ├── tts3_finetune.yaml
│   │   │   │   ├── tts_online_application.yaml
│   │   │   │   └── ws_conformer_wenetspeech_application_faster.yaml
│   │   │   ├── main.py
│   │   │   ├── requirements.txt
│   │   │   ├── src/
│   │   │   │   ├── AudioManeger.py
│   │   │   │   ├── SpeechBase/
│   │   │   │   │   ├── asr.py
│   │   │   │   │   ├── nlp.py
│   │   │   │   │   ├── sql_helper.py
│   │   │   │   │   ├── tts.py
│   │   │   │   │   ├── vpr.py
│   │   │   │   │   └── vpr_encode.py
│   │   │   │   ├── WebsocketManeger.py
│   │   │   │   ├── ernie_sat.py
│   │   │   │   ├── finetune.py
│   │   │   │   ├── ge2e_clone.py
│   │   │   │   ├── robot.py
│   │   │   │   ├── tdnn_clone.py
│   │   │   │   └── util.py
│   │   │   └── vc.py
│   │   └── web_client/
│   │       ├── .gitignore
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── src/
│   │       │   ├── App.vue
│   │       │   ├── api/
│   │       │   │   ├── API.js
│   │       │   │   ├── ApiASR.js
│   │       │   │   ├── ApiNLP.js
│   │       │   │   ├── ApiTTS.js
│   │       │   │   ├── ApiVC.js
│   │       │   │   └── ApiVPR.js
│   │       │   ├── components/
│   │       │   │   ├── Content/
│   │       │   │   │   ├── Header/
│   │       │   │   │   │   ├── Header.vue
│   │       │   │   │   │   └── style.less
│   │       │   │   │   └── Tail/
│   │       │   │   │       ├── Tail.vue
│   │       │   │   │       └── style.less
│   │       │   │   ├── Experience.vue
│   │       │   │   ├── SubMenu/
│   │       │   │   │   ├── ASR/
│   │       │   │   │   │   ├── ASR.vue
│   │       │   │   │   │   ├── ASRT.vue
│   │       │   │   │   │   ├── AudioFile/
│   │       │   │   │   │   │   ├── AudioFileIdentification.vue
│   │       │   │   │   │   │   └── style.less
│   │       │   │   │   │   ├── EndToEnd/
│   │       │   │   │   │   │   ├── EndToEndIdentification.vue
│   │       │   │   │   │   │   └── style.less
│   │       │   │   │   │   ├── RealTime/
│   │       │   │   │   │   │   ├── RealTime.vue
│   │       │   │   │   │   │   └── style.less
│   │       │   │   │   │   └── style.less
│   │       │   │   │   ├── ChatBot/
│   │       │   │   │   │   ├── ChatT.vue
│   │       │   │   │   │   └── style.less
│   │       │   │   │   ├── ERNIE_SAT/
│   │       │   │   │   │   └── ERNIE_SAT.vue
│   │       │   │   │   ├── FineTune/
│   │       │   │   │   │   └── FineTune.vue
│   │       │   │   │   ├── IE/
│   │       │   │   │   │   ├── IET.vue
│   │       │   │   │   │   └── style.less
│   │       │   │   │   ├── TTS/
│   │       │   │   │   │   ├── TTST.vue
│   │       │   │   │   │   └── style.less
│   │       │   │   │   ├── VPR/
│   │       │   │   │   │   ├── VPRT.vue
│   │       │   │   │   │   └── style.less
│   │       │   │   │   └── VoiceClone/
│   │       │   │   │       └── VoiceClone.vue
│   │       │   │   └── style.less
│   │       │   └── main.js
│   │       └── vite.config.js
│   ├── story_talker/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── ocr.py
│   │   ├── path.sh
│   │   └── run.sh
│   ├── streaming_asr_server/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── conf/
│   │   │   ├── application.yaml
│   │   │   ├── punc_application.yaml
│   │   │   ├── ws_conformer_application.yaml
│   │   │   ├── ws_conformer_talcs_application.yaml
│   │   │   ├── ws_conformer_wenetspeech_application.yaml
│   │   │   ├── ws_conformer_wenetspeech_application_faster.yaml
│   │   │   └── ws_ds2_application.yaml
│   │   ├── local/
│   │   │   ├── punc_server.py
│   │   │   ├── rtf_from_log.py
│   │   │   ├── streaming_asr_server.py
│   │   │   ├── test.sh
│   │   │   ├── websocket_client.py
│   │   │   └── websocket_client_srt.py
│   │   ├── run.sh
│   │   ├── server.sh
│   │   ├── test.sh
│   │   └── web/
│   │       ├── index.html
│   │       └── readme.md
│   ├── streaming_tts_server/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── client.sh
│   │   ├── conf/
│   │   │   ├── tts_online_application.yaml
│   │   │   └── tts_online_ws_application.yaml
│   │   └── server.sh
│   ├── streaming_tts_serving_fastdeploy/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── streaming_tts_serving/
│   │       ├── 1/
│   │       │   └── model.py
│   │       ├── config.pbtxt
│   │       └── stream_client.py
│   ├── style_fs2/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── path.sh
│   │   ├── run.sh
│   │   ├── sentences.txt
│   │   └── style_syn.py
│   ├── text_to_speech/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   └── whisper/
│       ├── README.md
│       ├── README_cn.md
│       └── run.sh
├── docker/
│   ├── ubuntu16-gpu/
│   │   └── Dockerfile
│   ├── ubuntu18-cpu/
│   │   └── Dockerfile
│   └── ubuntu20-cpu/
│       └── Dockerfile
├── docs/
│   ├── Makefile
│   ├── requirements.txt
│   ├── source/
│   │   ├── _static/
│   │   │   └── custom.css
│   │   ├── api/
│   │   │   ├── modules.rst
│   │   │   ├── paddlespeech.audio.features.layers.rst
│   │   │   ├── paddlespeech.audio.features.rst
│   │   │   ├── paddlespeech.audio.io.rst
│   │   │   ├── paddlespeech.audio.rst
│   │   │   ├── paddlespeech.audio.streamdata.autodecode.rst
│   │   │   ├── paddlespeech.audio.streamdata.cache.rst
│   │   │   ├── paddlespeech.audio.streamdata.compat.rst
│   │   │   ├── paddlespeech.audio.streamdata.extradatasets.rst
│   │   │   ├── paddlespeech.audio.streamdata.filters.rst
│   │   │   ├── paddlespeech.audio.streamdata.gopen.rst
│   │   │   ├── paddlespeech.audio.streamdata.handlers.rst
│   │   │   ├── paddlespeech.audio.streamdata.mix.rst
│   │   │   ├── paddlespeech.audio.streamdata.paddle_utils.rst
│   │   │   ├── paddlespeech.audio.streamdata.pipeline.rst
│   │   │   ├── paddlespeech.audio.streamdata.rst
│   │   │   ├── paddlespeech.audio.streamdata.shardlists.rst
│   │   │   ├── paddlespeech.audio.streamdata.tariterators.rst
│   │   │   ├── paddlespeech.audio.streamdata.utils.rst
│   │   │   ├── paddlespeech.audio.streamdata.writer.rst
│   │   │   ├── paddlespeech.audio.text.rst
│   │   │   ├── paddlespeech.audio.text.text_featurizer.rst
│   │   │   ├── paddlespeech.audio.text.utility.rst
│   │   │   ├── paddlespeech.audio.transform.add_deltas.rst
│   │   │   ├── paddlespeech.audio.transform.channel_selector.rst
│   │   │   ├── paddlespeech.audio.transform.cmvn.rst
│   │   │   ├── paddlespeech.audio.transform.functional.rst
│   │   │   ├── paddlespeech.audio.transform.perturb.rst
│   │   │   ├── paddlespeech.audio.transform.rst
│   │   │   ├── paddlespeech.audio.transform.spec_augment.rst
│   │   │   ├── paddlespeech.audio.transform.spectrogram.rst
│   │   │   ├── paddlespeech.audio.transform.transform_interface.rst
│   │   │   ├── paddlespeech.audio.transform.transformation.rst
│   │   │   ├── paddlespeech.audio.transform.wpe.rst
│   │   │   ├── paddlespeech.audio.utils.check_kwargs.rst
│   │   │   ├── paddlespeech.audio.utils.download.rst
│   │   │   ├── paddlespeech.audio.utils.dynamic_import.rst
│   │   │   ├── paddlespeech.audio.utils.error.rst
│   │   │   ├── paddlespeech.audio.utils.log.rst
│   │   │   ├── paddlespeech.audio.utils.numeric.rst
│   │   │   ├── paddlespeech.audio.utils.rst
│   │   │   ├── paddlespeech.audio.utils.tensor_utils.rst
│   │   │   ├── paddlespeech.audio.utils.time.rst
│   │   │   ├── paddlespeech.cli.asr.infer.rst
│   │   │   ├── paddlespeech.cli.asr.rst
│   │   │   ├── paddlespeech.cli.base_commands.rst
│   │   │   ├── paddlespeech.cli.cls.infer.rst
│   │   │   ├── paddlespeech.cli.cls.rst
│   │   │   ├── paddlespeech.cli.download.rst
│   │   │   ├── paddlespeech.cli.entry.rst
│   │   │   ├── paddlespeech.cli.executor.rst
│   │   │   ├── paddlespeech.cli.kws.infer.rst
│   │   │   ├── paddlespeech.cli.kws.rst
│   │   │   ├── paddlespeech.cli.log.rst
│   │   │   ├── paddlespeech.cli.rst
│   │   │   ├── paddlespeech.cli.st.infer.rst
│   │   │   ├── paddlespeech.cli.st.rst
│   │   │   ├── paddlespeech.cli.text.infer.rst
│   │   │   ├── paddlespeech.cli.text.rst
│   │   │   ├── paddlespeech.cli.tts.infer.rst
│   │   │   ├── paddlespeech.cli.tts.rst
│   │   │   ├── paddlespeech.cli.utils.rst
│   │   │   ├── paddlespeech.cli.vector.infer.rst
│   │   │   ├── paddlespeech.cli.vector.rst
│   │   │   ├── paddlespeech.cls.exps.panns.deploy.rst
│   │   │   ├── paddlespeech.cls.exps.panns.rst
│   │   │   ├── paddlespeech.cls.exps.rst
│   │   │   ├── paddlespeech.cls.models.panns.classifier.rst
│   │   │   ├── paddlespeech.cls.models.panns.panns.rst
│   │   │   ├── paddlespeech.cls.models.panns.rst
│   │   │   ├── paddlespeech.cls.models.rst
│   │   │   ├── paddlespeech.cls.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.collate.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.compute_det.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.plot_det_curve.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.score.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.train.rst
│   │   │   ├── paddlespeech.kws.exps.rst
│   │   │   ├── paddlespeech.kws.models.loss.rst
│   │   │   ├── paddlespeech.kws.models.mdtc.rst
│   │   │   ├── paddlespeech.kws.models.rst
│   │   │   ├── paddlespeech.kws.rst
│   │   │   ├── paddlespeech.resource.model_alias.rst
│   │   │   ├── paddlespeech.resource.pretrained_models.rst
│   │   │   ├── paddlespeech.resource.resource.rst
│   │   │   ├── paddlespeech.resource.rst
│   │   │   ├── paddlespeech.rst
│   │   │   ├── paddlespeech.s2t.decoders.beam_search.batch_beam_search.rst
│   │   │   ├── paddlespeech.s2t.decoders.beam_search.beam_search.rst
│   │   │   ├── paddlespeech.s2t.decoders.beam_search.rst
│   │   │   ├── paddlespeech.s2t.decoders.ctcdecoder.decoders_deprecated.rst
│   │   │   ├── paddlespeech.s2t.decoders.ctcdecoder.rst
│   │   │   ├── paddlespeech.s2t.decoders.ctcdecoder.swig_wrapper.rst
│   │   │   ├── paddlespeech.s2t.decoders.recog.rst
│   │   │   ├── paddlespeech.s2t.decoders.rst
│   │   │   ├── paddlespeech.s2t.decoders.scorers.ctc.rst
│   │   │   ├── paddlespeech.s2t.decoders.scorers.ctc_prefix_score.rst
│   │   │   ├── paddlespeech.s2t.decoders.scorers.length_bonus.rst
│   │   │   ├── paddlespeech.s2t.decoders.scorers.rst
│   │   │   ├── paddlespeech.s2t.decoders.scorers.scorer_interface.rst
│   │   │   ├── paddlespeech.s2t.decoders.utils.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.deploy.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.deploy.runtime.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.deploy.server.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.export.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.test.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.test_export.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.test_wav.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.train.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.model.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.rst
│   │   │   ├── paddlespeech.s2t.exps.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.alignment.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.export.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.test.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.test_wav.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.train.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.model.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_kaldi.bin.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_kaldi.bin.test.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_kaldi.bin.train.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_kaldi.model.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_kaldi.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.bin.export.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.bin.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.bin.test.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.bin.train.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.model.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.rst
│   │   │   ├── paddlespeech.s2t.frontend.audio.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.augmentation.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.base.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.impulse_response.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.noise_perturb.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.online_bayesian_normalization.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.resample.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.shift_perturb.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.spec_augment.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.speed_perturb.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.volume_perturb.rst
│   │   │   ├── paddlespeech.s2t.frontend.featurizer.audio_featurizer.rst
│   │   │   ├── paddlespeech.s2t.frontend.featurizer.rst
│   │   │   ├── paddlespeech.s2t.frontend.featurizer.speech_featurizer.rst
│   │   │   ├── paddlespeech.s2t.frontend.featurizer.text_featurizer.rst
│   │   │   ├── paddlespeech.s2t.frontend.normalizer.rst
│   │   │   ├── paddlespeech.s2t.frontend.rst
│   │   │   ├── paddlespeech.s2t.frontend.speech.rst
│   │   │   ├── paddlespeech.s2t.frontend.utility.rst
│   │   │   ├── paddlespeech.s2t.io.batchfy.rst
│   │   │   ├── paddlespeech.s2t.io.collator.rst
│   │   │   ├── paddlespeech.s2t.io.converter.rst
│   │   │   ├── paddlespeech.s2t.io.dataloader.rst
│   │   │   ├── paddlespeech.s2t.io.dataset.rst
│   │   │   ├── paddlespeech.s2t.io.reader.rst
│   │   │   ├── paddlespeech.s2t.io.rst
│   │   │   ├── paddlespeech.s2t.io.sampler.rst
│   │   │   ├── paddlespeech.s2t.io.utility.rst
│   │   │   ├── paddlespeech.s2t.models.asr_interface.rst
│   │   │   ├── paddlespeech.s2t.models.ds2.conv.rst
│   │   │   ├── paddlespeech.s2t.models.ds2.deepspeech2.rst
│   │   │   ├── paddlespeech.s2t.models.ds2.rst
│   │   │   ├── paddlespeech.s2t.models.lm.dataset.rst
│   │   │   ├── paddlespeech.s2t.models.lm.rst
│   │   │   ├── paddlespeech.s2t.models.lm.transformer.rst
│   │   │   ├── paddlespeech.s2t.models.lm_interface.rst
│   │   │   ├── paddlespeech.s2t.models.rst
│   │   │   ├── paddlespeech.s2t.models.st_interface.rst
│   │   │   ├── paddlespeech.s2t.models.u2.rst
│   │   │   ├── paddlespeech.s2t.models.u2.u2.rst
│   │   │   ├── paddlespeech.s2t.models.u2.updater.rst
│   │   │   ├── paddlespeech.s2t.models.u2_st.rst
│   │   │   ├── paddlespeech.s2t.models.u2_st.u2_st.rst
│   │   │   ├── paddlespeech.s2t.modules.activation.rst
│   │   │   ├── paddlespeech.s2t.modules.align.rst
│   │   │   ├── paddlespeech.s2t.modules.attention.rst
│   │   │   ├── paddlespeech.s2t.modules.cmvn.rst
│   │   │   ├── paddlespeech.s2t.modules.conformer_convolution.rst
│   │   │   ├── paddlespeech.s2t.modules.crf.rst
│   │   │   ├── paddlespeech.s2t.modules.ctc.rst
│   │   │   ├── paddlespeech.s2t.modules.decoder.rst
│   │   │   ├── paddlespeech.s2t.modules.decoder_layer.rst
│   │   │   ├── paddlespeech.s2t.modules.embedding.rst
│   │   │   ├── paddlespeech.s2t.modules.encoder.rst
│   │   │   ├── paddlespeech.s2t.modules.encoder_layer.rst
│   │   │   ├── paddlespeech.s2t.modules.initializer.rst
│   │   │   ├── paddlespeech.s2t.modules.loss.rst
│   │   │   ├── paddlespeech.s2t.modules.mask.rst
│   │   │   ├── paddlespeech.s2t.modules.positionwise_feed_forward.rst
│   │   │   ├── paddlespeech.s2t.modules.rst
│   │   │   ├── paddlespeech.s2t.modules.subsampling.rst
│   │   │   ├── paddlespeech.s2t.rst
│   │   │   ├── paddlespeech.s2t.training.cli.rst
│   │   │   ├── paddlespeech.s2t.training.extensions.evaluator.rst
│   │   │   ├── paddlespeech.s2t.training.extensions.extension.rst
│   │   │   ├── paddlespeech.s2t.training.extensions.plot.rst
│   │   │   ├── paddlespeech.s2t.training.extensions.rst
│   │   │   ├── paddlespeech.s2t.training.gradclip.rst
│   │   │   ├── paddlespeech.s2t.training.optimizer.rst
│   │   │   ├── paddlespeech.s2t.training.reporter.rst
│   │   │   ├── paddlespeech.s2t.training.rst
│   │   │   ├── paddlespeech.s2t.training.scheduler.rst
│   │   │   ├── paddlespeech.s2t.training.timer.rst
│   │   │   ├── paddlespeech.s2t.training.trainer.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.compare_value_trigger.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.interval_trigger.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.limit_trigger.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.time_trigger.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.utils.rst
│   │   │   ├── paddlespeech.s2t.training.updaters.rst
│   │   │   ├── paddlespeech.s2t.training.updaters.standard_updater.rst
│   │   │   ├── paddlespeech.s2t.training.updaters.updater.rst
│   │   │   ├── paddlespeech.s2t.utils.asr_utils.rst
│   │   │   ├── paddlespeech.s2t.utils.bleu_score.rst
│   │   │   ├── paddlespeech.s2t.utils.check_kwargs.rst
│   │   │   ├── paddlespeech.s2t.utils.checkpoint.rst
│   │   │   ├── paddlespeech.s2t.utils.cli_readers.rst
│   │   │   ├── paddlespeech.s2t.utils.cli_utils.rst
│   │   │   ├── paddlespeech.s2t.utils.cli_writers.rst
│   │   │   ├── paddlespeech.s2t.utils.ctc_utils.rst
│   │   │   ├── paddlespeech.s2t.utils.dynamic_import.rst
│   │   │   ├── paddlespeech.s2t.utils.dynamic_pip_install.rst
│   │   │   ├── paddlespeech.s2t.utils.error_rate.rst
│   │   │   ├── paddlespeech.s2t.utils.layer_tools.rst
│   │   │   ├── paddlespeech.s2t.utils.log.rst
│   │   │   ├── paddlespeech.s2t.utils.mp_tools.rst
│   │   │   ├── paddlespeech.s2t.utils.profiler.rst
│   │   │   ├── paddlespeech.s2t.utils.rst
│   │   │   ├── paddlespeech.s2t.utils.socket_server.rst
│   │   │   ├── paddlespeech.s2t.utils.spec_augment.rst
│   │   │   ├── paddlespeech.s2t.utils.tensor_utils.rst
│   │   │   ├── paddlespeech.s2t.utils.text_grid.rst
│   │   │   ├── paddlespeech.s2t.utils.utility.rst
│   │   │   ├── paddlespeech.server.base_commands.rst
│   │   │   ├── paddlespeech.server.bin.paddlespeech_client.rst
│   │   │   ├── paddlespeech.server.bin.paddlespeech_server.rst
│   │   │   ├── paddlespeech.server.bin.rst
│   │   │   ├── paddlespeech.server.engine.acs.python.rst
│   │   │   ├── paddlespeech.server.engine.acs.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.ctc_endpoint.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.ctc_search.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.onnx.asr_engine.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.onnx.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.paddleinference.asr_engine.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.paddleinference.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.python.asr_engine.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.python.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.rst
│   │   │   ├── paddlespeech.server.engine.asr.paddleinference.asr_engine.rst
│   │   │   ├── paddlespeech.server.engine.asr.paddleinference.rst
│   │   │   ├── paddlespeech.server.engine.asr.python.asr_engine.rst
│   │   │   ├── paddlespeech.server.engine.asr.python.rst
│   │   │   ├── paddlespeech.server.engine.asr.rst
│   │   │   ├── paddlespeech.server.engine.base_engine.rst
│   │   │   ├── paddlespeech.server.engine.cls.paddleinference.cls_engine.rst
│   │   │   ├── paddlespeech.server.engine.cls.paddleinference.rst
│   │   │   ├── paddlespeech.server.engine.cls.python.cls_engine.rst
│   │   │   ├── paddlespeech.server.engine.cls.python.rst
│   │   │   ├── paddlespeech.server.engine.cls.rst
│   │   │   ├── paddlespeech.server.engine.engine_factory.rst
│   │   │   ├── paddlespeech.server.engine.engine_pool.rst
│   │   │   ├── paddlespeech.server.engine.engine_warmup.rst
│   │   │   ├── paddlespeech.server.engine.rst
│   │   │   ├── paddlespeech.server.engine.text.python.rst
│   │   │   ├── paddlespeech.server.engine.text.python.text_engine.rst
│   │   │   ├── paddlespeech.server.engine.text.rst
│   │   │   ├── paddlespeech.server.engine.tts.online.onnx.rst
│   │   │   ├── paddlespeech.server.engine.tts.online.onnx.tts_engine.rst
│   │   │   ├── paddlespeech.server.engine.tts.online.python.rst
│   │   │   ├── paddlespeech.server.engine.tts.online.python.tts_engine.rst
│   │   │   ├── paddlespeech.server.engine.tts.online.rst
│   │   │   ├── paddlespeech.server.engine.tts.paddleinference.rst
│   │   │   ├── paddlespeech.server.engine.tts.paddleinference.tts_engine.rst
│   │   │   ├── paddlespeech.server.engine.tts.python.rst
│   │   │   ├── paddlespeech.server.engine.tts.python.tts_engine.rst
│   │   │   ├── paddlespeech.server.engine.tts.rst
│   │   │   ├── paddlespeech.server.engine.vector.python.rst
│   │   │   ├── paddlespeech.server.engine.vector.python.vector_engine.rst
│   │   │   ├── paddlespeech.server.engine.vector.rst
│   │   │   ├── paddlespeech.server.entry.rst
│   │   │   ├── paddlespeech.server.executor.rst
│   │   │   ├── paddlespeech.server.restful.acs_api.rst
│   │   │   ├── paddlespeech.server.restful.api.rst
│   │   │   ├── paddlespeech.server.restful.asr_api.rst
│   │   │   ├── paddlespeech.server.restful.cls_api.rst
│   │   │   ├── paddlespeech.server.restful.request.rst
│   │   │   ├── paddlespeech.server.restful.response.rst
│   │   │   ├── paddlespeech.server.restful.rst
│   │   │   ├── paddlespeech.server.restful.text_api.rst
│   │   │   ├── paddlespeech.server.restful.tts_api.rst
│   │   │   ├── paddlespeech.server.restful.vector_api.rst
│   │   │   ├── paddlespeech.server.rst
│   │   │   ├── paddlespeech.server.tests.asr.offline.http_client.rst
│   │   │   ├── paddlespeech.server.tests.asr.offline.rst
│   │   │   ├── paddlespeech.server.tests.asr.rst
│   │   │   ├── paddlespeech.server.tests.rst
│   │   │   ├── paddlespeech.server.util.rst
│   │   │   ├── paddlespeech.server.utils.audio_handler.rst
│   │   │   ├── paddlespeech.server.utils.audio_process.rst
│   │   │   ├── paddlespeech.server.utils.buffer.rst
│   │   │   ├── paddlespeech.server.utils.config.rst
│   │   │   ├── paddlespeech.server.utils.errors.rst
│   │   │   ├── paddlespeech.server.utils.exception.rst
│   │   │   ├── paddlespeech.server.utils.onnx_infer.rst
│   │   │   ├── paddlespeech.server.utils.paddle_predictor.rst
│   │   │   ├── paddlespeech.server.utils.rst
│   │   │   ├── paddlespeech.server.utils.util.rst
│   │   │   ├── paddlespeech.server.utils.vad.rst
│   │   │   ├── paddlespeech.server.ws.api.rst
│   │   │   ├── paddlespeech.server.ws.asr_api.rst
│   │   │   ├── paddlespeech.server.ws.rst
│   │   │   ├── paddlespeech.server.ws.tts_api.rst
│   │   │   ├── paddlespeech.t2s.audio.audio.rst
│   │   │   ├── paddlespeech.t2s.audio.codec.rst
│   │   │   ├── paddlespeech.t2s.audio.rst
│   │   │   ├── paddlespeech.t2s.audio.spec_normalizer.rst
│   │   │   ├── paddlespeech.t2s.datasets.am_batch_fn.rst
│   │   │   ├── paddlespeech.t2s.datasets.batch.rst
│   │   │   ├── paddlespeech.t2s.datasets.data_table.rst
│   │   │   ├── paddlespeech.t2s.datasets.dataset.rst
│   │   │   ├── paddlespeech.t2s.datasets.get_feats.rst
│   │   │   ├── paddlespeech.t2s.datasets.ljspeech.rst
│   │   │   ├── paddlespeech.t2s.datasets.preprocess_utils.rst
│   │   │   ├── paddlespeech.t2s.datasets.rst
│   │   │   ├── paddlespeech.t2s.datasets.sampler.rst
│   │   │   ├── paddlespeech.t2s.datasets.vocoder_batch_fn.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.align.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.synthesize_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.train.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.utils.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.gen_gta_mel.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.train.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.vc2_infer.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.hifigan.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.hifigan.train.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.multi_band_melgan.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.multi_band_melgan.train.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.parallelwave_gan.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.parallelwave_gan.synthesize_from_wav.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.parallelwave_gan.train.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.style_melgan.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.style_melgan.train.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.inference.rst
│   │   │   ├── paddlespeech.t2s.exps.inference_streaming.rst
│   │   │   ├── paddlespeech.t2s.exps.ort_predict.rst
│   │   │   ├── paddlespeech.t2s.exps.ort_predict_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.ort_predict_streaming.rst
│   │   │   ├── paddlespeech.t2s.exps.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.gen_gta_mel.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.inference.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.synthesize_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.train.rst
│   │   │   ├── paddlespeech.t2s.exps.stream_play_tts.rst
│   │   │   ├── paddlespeech.t2s.exps.syn_utils.rst
│   │   │   ├── paddlespeech.t2s.exps.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.synthesize_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.synthesize_streaming.rst
│   │   │   ├── paddlespeech.t2s.exps.tacotron2.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.tacotron2.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.tacotron2.rst
│   │   │   ├── paddlespeech.t2s.exps.tacotron2.train.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.synthesize_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.train.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.synthesize_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.train.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.voice_cloning.rst
│   │   │   ├── paddlespeech.t2s.exps.voice_cloning.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.config.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.ljspeech.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.train.rst
│   │   │   ├── paddlespeech.t2s.exps.wavernn.rst
│   │   │   ├── paddlespeech.t2s.exps.wavernn.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.wavernn.train.rst
│   │   │   ├── paddlespeech.t2s.frontend.arpabet.rst
│   │   │   ├── paddlespeech.t2s.frontend.g2pw.dataset.rst
│   │   │   ├── paddlespeech.t2s.frontend.g2pw.onnx_api.rst
│   │   │   ├── paddlespeech.t2s.frontend.g2pw.rst
│   │   │   ├── paddlespeech.t2s.frontend.g2pw.utils.rst
│   │   │   ├── paddlespeech.t2s.frontend.generate_lexicon.rst
│   │   │   ├── paddlespeech.t2s.frontend.mix_frontend.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.abbrrviation.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.acronyms.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.normalizer.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.numbers.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.width.rst
│   │   │   ├── paddlespeech.t2s.frontend.phonectic.rst
│   │   │   ├── paddlespeech.t2s.frontend.punctuation.rst
│   │   │   ├── paddlespeech.t2s.frontend.rst
│   │   │   ├── paddlespeech.t2s.frontend.tone_sandhi.rst
│   │   │   ├── paddlespeech.t2s.frontend.vocab.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_frontend.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.char_convert.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.chronology.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.constants.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.num.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.phonecode.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.quantifier.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.text_normlization.rst
│   │   │   ├── paddlespeech.t2s.models.ernie_sat.ernie_sat.rst
│   │   │   ├── paddlespeech.t2s.models.ernie_sat.ernie_sat_updater.rst
│   │   │   ├── paddlespeech.t2s.models.ernie_sat.rst
│   │   │   ├── paddlespeech.t2s.models.fastspeech2.fastspeech2.rst
│   │   │   ├── paddlespeech.t2s.models.fastspeech2.fastspeech2_updater.rst
│   │   │   ├── paddlespeech.t2s.models.fastspeech2.rst
│   │   │   ├── paddlespeech.t2s.models.hifigan.hifigan.rst
│   │   │   ├── paddlespeech.t2s.models.hifigan.hifigan_updater.rst
│   │   │   ├── paddlespeech.t2s.models.hifigan.rst
│   │   │   ├── paddlespeech.t2s.models.melgan.melgan.rst
│   │   │   ├── paddlespeech.t2s.models.melgan.multi_band_melgan_updater.rst
│   │   │   ├── paddlespeech.t2s.models.melgan.rst
│   │   │   ├── paddlespeech.t2s.models.melgan.style_melgan.rst
│   │   │   ├── paddlespeech.t2s.models.melgan.style_melgan_updater.rst
│   │   │   ├── paddlespeech.t2s.models.parallel_wavegan.parallel_wavegan.rst
│   │   │   ├── paddlespeech.t2s.models.parallel_wavegan.parallel_wavegan_updater.rst
│   │   │   ├── paddlespeech.t2s.models.parallel_wavegan.rst
│   │   │   ├── paddlespeech.t2s.models.rst
│   │   │   ├── paddlespeech.t2s.models.speedyspeech.rst
│   │   │   ├── paddlespeech.t2s.models.speedyspeech.speedyspeech.rst
│   │   │   ├── paddlespeech.t2s.models.speedyspeech.speedyspeech_updater.rst
│   │   │   ├── paddlespeech.t2s.models.tacotron2.rst
│   │   │   ├── paddlespeech.t2s.models.tacotron2.tacotron2.rst
│   │   │   ├── paddlespeech.t2s.models.tacotron2.tacotron2_updater.rst
│   │   │   ├── paddlespeech.t2s.models.transformer_tts.rst
│   │   │   ├── paddlespeech.t2s.models.transformer_tts.transformer_tts.rst
│   │   │   ├── paddlespeech.t2s.models.transformer_tts.transformer_tts_updater.rst
│   │   │   ├── paddlespeech.t2s.models.vits.duration_predictor.rst
│   │   │   ├── paddlespeech.t2s.models.vits.flow.rst
│   │   │   ├── paddlespeech.t2s.models.vits.generator.rst
│   │   │   ├── paddlespeech.t2s.models.vits.monotonic_align.core.rst
│   │   │   ├── paddlespeech.t2s.models.vits.monotonic_align.rst
│   │   │   ├── paddlespeech.t2s.models.vits.monotonic_align.setup.rst
│   │   │   ├── paddlespeech.t2s.models.vits.posterior_encoder.rst
│   │   │   ├── paddlespeech.t2s.models.vits.residual_coupling.rst
│   │   │   ├── paddlespeech.t2s.models.vits.rst
│   │   │   ├── paddlespeech.t2s.models.vits.text_encoder.rst
│   │   │   ├── paddlespeech.t2s.models.vits.transform.rst
│   │   │   ├── paddlespeech.t2s.models.vits.vits.rst
│   │   │   ├── paddlespeech.t2s.models.vits.vits_updater.rst
│   │   │   ├── paddlespeech.t2s.models.vits.wavenet.residual_block.rst
│   │   │   ├── paddlespeech.t2s.models.vits.wavenet.rst
│   │   │   ├── paddlespeech.t2s.models.vits.wavenet.wavenet.rst
│   │   │   ├── paddlespeech.t2s.models.waveflow.rst
│   │   │   ├── paddlespeech.t2s.models.wavernn.rst
│   │   │   ├── paddlespeech.t2s.models.wavernn.wavernn.rst
│   │   │   ├── paddlespeech.t2s.models.wavernn.wavernn_updater.rst
│   │   │   ├── paddlespeech.t2s.modules.activation.rst
│   │   │   ├── paddlespeech.t2s.modules.causal_conv.rst
│   │   │   ├── paddlespeech.t2s.modules.conformer.convolution.rst
│   │   │   ├── paddlespeech.t2s.modules.conformer.encoder_layer.rst
│   │   │   ├── paddlespeech.t2s.modules.conformer.rst
│   │   │   ├── paddlespeech.t2s.modules.conv.rst
│   │   │   ├── paddlespeech.t2s.modules.geometry.rst
│   │   │   ├── paddlespeech.t2s.modules.layer_norm.rst
│   │   │   ├── paddlespeech.t2s.modules.losses.rst
│   │   │   ├── paddlespeech.t2s.modules.masked_fill.rst
│   │   │   ├── paddlespeech.t2s.modules.nets_utils.rst
│   │   │   ├── paddlespeech.t2s.modules.normalizer.rst
│   │   │   ├── paddlespeech.t2s.modules.positional_encoding.rst
│   │   │   ├── paddlespeech.t2s.modules.pqmf.rst
│   │   │   ├── paddlespeech.t2s.modules.predictor.duration_predictor.rst
│   │   │   ├── paddlespeech.t2s.modules.predictor.length_regulator.rst
│   │   │   ├── paddlespeech.t2s.modules.predictor.rst
│   │   │   ├── paddlespeech.t2s.modules.predictor.variance_predictor.rst
│   │   │   ├── paddlespeech.t2s.modules.residual_block.rst
│   │   │   ├── paddlespeech.t2s.modules.residual_stack.rst
│   │   │   ├── paddlespeech.t2s.modules.rst
│   │   │   ├── paddlespeech.t2s.modules.style_encoder.rst
│   │   │   ├── paddlespeech.t2s.modules.tacotron2.attentions.rst
│   │   │   ├── paddlespeech.t2s.modules.tacotron2.decoder.rst
│   │   │   ├── paddlespeech.t2s.modules.tacotron2.encoder.rst
│   │   │   ├── paddlespeech.t2s.modules.tacotron2.rst
│   │   │   ├── paddlespeech.t2s.modules.tade_res_block.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.attention.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.decoder.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.decoder_layer.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.embedding.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.encoder.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.encoder_layer.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.lightconv.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.mask.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.multi_layer_conv.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.positionwise_feed_forward.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.repeat.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.subsampling.rst
│   │   │   ├── paddlespeech.t2s.modules.upsample.rst
│   │   │   ├── paddlespeech.t2s.rst
│   │   │   ├── paddlespeech.t2s.training.cli.rst
│   │   │   ├── paddlespeech.t2s.training.default_config.rst
│   │   │   ├── paddlespeech.t2s.training.experiment.rst
│   │   │   ├── paddlespeech.t2s.training.extension.rst
│   │   │   ├── paddlespeech.t2s.training.extensions.evaluator.rst
│   │   │   ├── paddlespeech.t2s.training.extensions.rst
│   │   │   ├── paddlespeech.t2s.training.extensions.snapshot.rst
│   │   │   ├── paddlespeech.t2s.training.extensions.visualizer.rst
│   │   │   ├── paddlespeech.t2s.training.optimizer.rst
│   │   │   ├── paddlespeech.t2s.training.reporter.rst
│   │   │   ├── paddlespeech.t2s.training.rst
│   │   │   ├── paddlespeech.t2s.training.seeding.rst
│   │   │   ├── paddlespeech.t2s.training.trainer.rst
│   │   │   ├── paddlespeech.t2s.training.trigger.rst
│   │   │   ├── paddlespeech.t2s.training.triggers.interval_trigger.rst
│   │   │   ├── paddlespeech.t2s.training.triggers.limit_trigger.rst
│   │   │   ├── paddlespeech.t2s.training.triggers.rst
│   │   │   ├── paddlespeech.t2s.training.triggers.time_trigger.rst
│   │   │   ├── paddlespeech.t2s.training.updater.rst
│   │   │   ├── paddlespeech.t2s.training.updaters.rst
│   │   │   ├── paddlespeech.t2s.training.updaters.standard_updater.rst
│   │   │   ├── paddlespeech.t2s.utils.checkpoint.rst
│   │   │   ├── paddlespeech.t2s.utils.display.rst
│   │   │   ├── paddlespeech.t2s.utils.error_rate.rst
│   │   │   ├── paddlespeech.t2s.utils.h5_utils.rst
│   │   │   ├── paddlespeech.t2s.utils.internals.rst
│   │   │   ├── paddlespeech.t2s.utils.layer_tools.rst
│   │   │   ├── paddlespeech.t2s.utils.mp_tools.rst
│   │   │   ├── paddlespeech.t2s.utils.profiler.rst
│   │   │   ├── paddlespeech.t2s.utils.rst
│   │   │   ├── paddlespeech.t2s.utils.scheduler.rst
│   │   │   ├── paddlespeech.text.exps.ernie_linear.avg_model.rst
│   │   │   ├── paddlespeech.text.exps.ernie_linear.punc_restore.rst
│   │   │   ├── paddlespeech.text.exps.ernie_linear.rst
│   │   │   ├── paddlespeech.text.exps.ernie_linear.test.rst
│   │   │   ├── paddlespeech.text.exps.ernie_linear.train.rst
│   │   │   ├── paddlespeech.text.exps.rst
│   │   │   ├── paddlespeech.text.models.ernie_crf.model.rst
│   │   │   ├── paddlespeech.text.models.ernie_crf.rst
│   │   │   ├── paddlespeech.text.models.ernie_linear.dataset.rst
│   │   │   ├── paddlespeech.text.models.ernie_linear.ernie_linear.rst
│   │   │   ├── paddlespeech.text.models.ernie_linear.ernie_linear_updater.rst
│   │   │   ├── paddlespeech.text.models.ernie_linear.rst
│   │   │   ├── paddlespeech.text.models.rst
│   │   │   ├── paddlespeech.text.rst
│   │   │   ├── paddlespeech.utils.dynamic_import.rst
│   │   │   ├── paddlespeech.utils.env.rst
│   │   │   ├── paddlespeech.utils.rst
│   │   │   ├── paddlespeech.vector.cluster.diarization.rst
│   │   │   ├── paddlespeech.vector.cluster.plda.rst
│   │   │   ├── paddlespeech.vector.cluster.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.audio_processor.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.config.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.dataset_processors.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.inference.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.preprocess.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.random_cycle.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.speaker_verification_dataset.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.train.rst
│   │   │   ├── paddlespeech.vector.exps.rst
│   │   │   ├── paddlespeech.vector.io.augment.rst
│   │   │   ├── paddlespeech.vector.io.batch.rst
│   │   │   ├── paddlespeech.vector.io.dataset.rst
│   │   │   ├── paddlespeech.vector.io.dataset_from_json.rst
│   │   │   ├── paddlespeech.vector.io.embedding_norm.rst
│   │   │   ├── paddlespeech.vector.io.rst
│   │   │   ├── paddlespeech.vector.io.signal_processing.rst
│   │   │   ├── paddlespeech.vector.models.ecapa_tdnn.rst
│   │   │   ├── paddlespeech.vector.models.lstm_speaker_encoder.rst
│   │   │   ├── paddlespeech.vector.models.rst
│   │   │   ├── paddlespeech.vector.modules.layer.rst
│   │   │   ├── paddlespeech.vector.modules.loss.rst
│   │   │   ├── paddlespeech.vector.modules.rst
│   │   │   ├── paddlespeech.vector.modules.sid_model.rst
│   │   │   ├── paddlespeech.vector.rst
│   │   │   ├── paddlespeech.vector.training.rst
│   │   │   ├── paddlespeech.vector.training.scheduler.rst
│   │   │   ├── paddlespeech.vector.training.seeding.rst
│   │   │   ├── paddlespeech.vector.utils.rst
│   │   │   ├── paddlespeech.vector.utils.time.rst
│   │   │   ├── paddlespeech.vector.utils.vector_utils.rst
│   │   │   └── paddlespeech.version.rst
│   │   ├── asr/
│   │   │   ├── PPASR.md
│   │   │   ├── PPASR_cn.md
│   │   │   ├── data_preparation.md
│   │   │   ├── feature_list.md
│   │   │   ├── models_introduction.md
│   │   │   ├── ngram_lm.md
│   │   │   └── quick_start.md
│   │   ├── audio/
│   │   │   ├── _static/
│   │   │   │   └── custom.css
│   │   │   ├── _templates/
│   │   │   │   ├── module.rst_t
│   │   │   │   ├── package.rst_t
│   │   │   │   └── toc.rst_t
│   │   │   ├── conf.py
│   │   │   └── index.rst
│   │   ├── audio_api/
│   │   │   ├── modules.rst
│   │   │   ├── paddleaudio.backends.common.rst
│   │   │   ├── paddleaudio.backends.no_backend.rst
│   │   │   ├── paddleaudio.backends.rst
│   │   │   ├── paddleaudio.backends.soundfile_backend.rst
│   │   │   ├── paddleaudio.backends.sox_io_backend.rst
│   │   │   ├── paddleaudio.backends.utils.rst
│   │   │   ├── paddleaudio.compliance.kaldi.rst
│   │   │   ├── paddleaudio.compliance.librosa.rst
│   │   │   ├── paddleaudio.compliance.rst
│   │   │   ├── paddleaudio.datasets.dataset.rst
│   │   │   ├── paddleaudio.datasets.esc50.rst
│   │   │   ├── paddleaudio.datasets.gtzan.rst
│   │   │   ├── paddleaudio.datasets.hey_snips.rst
│   │   │   ├── paddleaudio.datasets.rirs_noises.rst
│   │   │   ├── paddleaudio.datasets.rst
│   │   │   ├── paddleaudio.datasets.tess.rst
│   │   │   ├── paddleaudio.datasets.urban_sound.rst
│   │   │   ├── paddleaudio.datasets.voxceleb.rst
│   │   │   ├── paddleaudio.features.layers.rst
│   │   │   ├── paddleaudio.features.rst
│   │   │   ├── paddleaudio.functional.functional.rst
│   │   │   ├── paddleaudio.functional.rst
│   │   │   ├── paddleaudio.functional.window.rst
│   │   │   ├── paddleaudio.kaldi.kaldi.rst
│   │   │   ├── paddleaudio.kaldi.rst
│   │   │   ├── paddleaudio.metric.eer.rst
│   │   │   ├── paddleaudio.metric.rst
│   │   │   ├── paddleaudio.rst
│   │   │   ├── paddleaudio.sox_effects.rst
│   │   │   ├── paddleaudio.sox_effects.sox_effects.rst
│   │   │   ├── paddleaudio.utils.download.rst
│   │   │   ├── paddleaudio.utils.env.rst
│   │   │   ├── paddleaudio.utils.error.rst
│   │   │   ├── paddleaudio.utils.log.rst
│   │   │   ├── paddleaudio.utils.numeric.rst
│   │   │   ├── paddleaudio.utils.rst
│   │   │   ├── paddleaudio.utils.sox_utils.rst
│   │   │   ├── paddleaudio.utils.tensor_utils.rst
│   │   │   └── paddleaudio.utils.time.rst
│   │   ├── cls/
│   │   │   ├── custom_dataset.md
│   │   │   └── quick_start.md
│   │   ├── conf.py
│   │   ├── demo_video.rst
│   │   ├── dependencies.md
│   │   ├── index.rst
│   │   ├── install.md
│   │   ├── install_cn.md
│   │   ├── introduction.md
│   │   ├── reference.md
│   │   ├── released_model.md
│   │   ├── streaming_asr_demo_video.rst
│   │   ├── streaming_tts_demo_video.rst
│   │   ├── tts/
│   │   │   ├── PPTTS.md
│   │   │   ├── PPTTS_cn.md
│   │   │   ├── README.md
│   │   │   ├── advanced_usage.md
│   │   │   ├── demo.rst
│   │   │   ├── demo_2.rst
│   │   │   ├── gan_vocoder.md
│   │   │   ├── models_introduction.md
│   │   │   ├── quick_start.md
│   │   │   ├── quick_start_cn.md
│   │   │   ├── svs_music_score.md
│   │   │   ├── test_sentence.txt
│   │   │   ├── tts_datasets.md
│   │   │   ├── tts_papers.md
│   │   │   └── zh_text_frontend.md
│   │   ├── tts_demo_video.rst
│   │   └── vpr/
│   │       ├── PPVPR.md
│   │       └── PPVPR_cn.md
│   ├── topic/
│   │   ├── ctc/
│   │   │   ├── ctc_loss.ipynb
│   │   │   ├── ctc_loss_compare.ipynb
│   │   │   └── ctc_loss_speed_compare.ipynb
│   │   ├── frontend/
│   │   │   └── g2p.md
│   │   ├── gan_vocoder/
│   │   │   └── gan_vocoder.ipynb
│   │   └── package_release/
│   │       └── python_package_release.md
│   └── tutorial/
│       ├── .gitkeep
│       ├── asr/
│       │   ├── tutorial_deepspeech2.ipynb
│       │   └── tutorial_transformer.ipynb
│       ├── cls/
│       │   └── cls_tutorial.ipynb
│       ├── st/
│       │   └── st_tutorial.ipynb
│       └── tts/
│           └── tts_tutorial.ipynb
├── examples/
│   ├── aishell/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── asr0/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── conf/
│   │   │   │   ├── deepspeech2.yaml
│   │   │   │   ├── deepspeech2_online.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   └── tuning/
│   │   │   │       ├── chunk_decode.yaml
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── download_lm_ch.sh
│   │   │   │   ├── export.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_export.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── asr1/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── conf/
│   │   │   │   ├── augmentation.json
│   │   │   │   ├── chunk_conformer.yaml
│   │   │   │   ├── chunk_roformer.yaml
│   │   │   │   ├── chunk_roformer_bidecoder.yaml
│   │   │   │   ├── chunk_squeezeformer.yaml
│   │   │   │   ├── conformer.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   ├── squeezeformer.yaml
│   │   │   │   ├── transformer.yaml
│   │   │   │   └── tuning/
│   │   │   │       ├── chunk_decode.yaml
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── aishell_train_lms.sh
│   │   │   │   ├── align.sh
│   │   │   │   ├── data.sh
│   │   │   │   ├── export.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   ├── tlg.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   └── asr3/
│   │       ├── README.md
│   │       ├── RESULT.md
│   │       ├── cmd.sh
│   │       ├── conf/
│   │       │   ├── preprocess.yaml
│   │       │   ├── train_with_wav2vec.yaml
│   │       │   ├── tuning/
│   │       │   │   └── decode.yaml
│   │       │   ├── wav2vec2ASR.yaml
│   │       │   └── wav2vec2ASR_adadelta.yaml
│   │       ├── local/
│   │       │   ├── aishell_prepare.py
│   │       │   ├── data.sh
│   │       │   ├── test.sh
│   │       │   ├── test_wav.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── aishell3/
│   │   ├── README.md
│   │   ├── ernie_sat/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── tts3/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   ├── conformer.yaml
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── ort_predict.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   └── run.sh
│   │   ├── vc0/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── train.sh
│   │   │   │   └── voice_cloning.sh
│   │   │   └── run.sh
│   │   ├── vc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── voice_cloning.sh
│   │   │   └── run.sh
│   │   ├── vc2/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   └── voice_cloning.sh
│   │   │   └── run.sh
│   │   ├── vits/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── vits-vc/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── train.sh
│   │   │   │   └── voice_cloning.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   └── preprocess.sh
│   │   │   └── run.sh
│   │   └── voc5/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       └── run.sh
│   ├── aishell3_vctk/
│   │   ├── README.md
│   │   └── ernie_sat/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       ├── local/
│   │       │   ├── preprocess.sh
│   │       │   └── synthesize_e2e.sh
│   │       └── run.sh
│   ├── ami/
│   │   ├── README.md
│   │   └── sd0/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── ecapa_tdnn.yaml
│   │       ├── local/
│   │       │   ├── ami_prepare.py
│   │       │   ├── ami_splits.py
│   │       │   ├── compute_embdding.py
│   │       │   ├── dataio.py
│   │       │   ├── experiment.py
│   │       │   └── process.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── callcenter/
│   │   ├── README.md
│   │   └── asr1/
│   │       ├── .gitignore
│   │       ├── RESULTS.md
│   │       ├── conf/
│   │       │   ├── augmentation.json
│   │       │   ├── chunk_conformer.yaml
│   │       │   ├── conformer.yaml
│   │       │   ├── preprocess.yaml
│   │       │   └── tuning/
│   │       │       ├── chunk_decode.yaml
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── align.sh
│   │       │   ├── data.sh
│   │       │   ├── download_lm_ch.sh
│   │       │   ├── export.sh
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── canton/
│   │   └── tts3/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       ├── local/
│   │       │   ├── inference.sh
│   │       │   ├── ort_predict.sh
│   │       │   ├── preprocess.sh
│   │       │   └── synthesize_e2e.sh
│   │       └── run.sh
│   ├── csmsc/
│   │   ├── README.md
│   │   ├── jets/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── tts0/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── tts2/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── inference_mlu.sh
│   │   │   │   ├── inference_npu.sh
│   │   │   │   ├── inference_xpu.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── ort_predict.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   ├── synthesize_e2e_mlu.sh
│   │   │   │   ├── synthesize_e2e_npu.sh
│   │   │   │   ├── synthesize_e2e_xpu.sh
│   │   │   │   ├── synthesize_mlu.sh
│   │   │   │   ├── synthesize_npu.sh
│   │   │   │   ├── synthesize_xpu.sh
│   │   │   │   ├── train.sh
│   │   │   │   ├── train_mlu.sh
│   │   │   │   ├── train_npu.sh
│   │   │   │   └── train_xpu.sh
│   │   │   ├── path.sh
│   │   │   ├── run.sh
│   │   │   ├── run_mlu.sh
│   │   │   ├── run_npu.sh
│   │   │   └── run_xpu.sh
│   │   ├── tts3/
│   │   │   ├── README.md
│   │   │   ├── README_cn.md
│   │   │   ├── conf/
│   │   │   │   ├── cnndecoder.yaml
│   │   │   │   ├── conformer.yaml
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── PTQ_dynamic.sh
│   │   │   │   ├── PTQ_static.sh
│   │   │   │   ├── export2lite.sh
│   │   │   │   ├── inference.sh
│   │   │   │   ├── inference_streaming.sh
│   │   │   │   ├── inference_xpu.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── lite_predict_streaming.sh
│   │   │   │   ├── ort_predict.sh
│   │   │   │   ├── ort_predict_streaming.sh
│   │   │   │   ├── paddle2onnx.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── simple.lexicon
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   ├── synthesize_e2e_xpu.sh
│   │   │   │   ├── synthesize_streaming.sh
│   │   │   │   ├── synthesize_xpu.sh
│   │   │   │   ├── train.sh
│   │   │   │   └── train_xpu.sh
│   │   │   ├── path.sh
│   │   │   ├── run.sh
│   │   │   ├── run_cnndecoder.sh
│   │   │   └── run_xpu.sh
│   │   ├── tts3_rhy/
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   └── synthesize_e2e.sh
│   │   │   └── run.sh
│   │   ├── vits/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── PTQ_static.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc3/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   ├── default.yaml
│   │   │   │   └── finetune.yaml
│   │   │   ├── local/
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc4/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   └── synthesize.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc5/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   ├── default.yaml
│   │   │   │   ├── finetune.yaml
│   │   │   │   └── iSTFT.yaml
│   │   │   ├── finetune.sh
│   │   │   ├── iSTFTNet.md
│   │   │   ├── local/
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   └── voc6/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       ├── local/
│   │       │   ├── preprocess.sh
│   │       │   └── synthesize.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── esc50/
│   │   ├── README.md
│   │   ├── RESULTS.md
│   │   └── cls0/
│   │       ├── conf/
│   │       │   └── panns.yaml
│   │       ├── local/
│   │       │   ├── export.sh
│   │       │   ├── infer.sh
│   │       │   ├── static_model_infer.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── hey_snips/
│   │   ├── README.md
│   │   └── kws0/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── mdtc.yaml
│   │       ├── local/
│   │       │   ├── plot.sh
│   │       │   ├── score.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── iwslt2012/
│   │   └── punc0/
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── conf/
│   │       │   ├── default.yaml
│   │       │   ├── ernie-3.0-base.yaml
│   │       │   ├── ernie-3.0-medium.yaml
│   │       │   ├── ernie-3.0-mini.yaml
│   │       │   ├── ernie-3.0-nano-zh.yaml
│   │       │   └── ernie-tiny.yaml
│   │       ├── local/
│   │       │   ├── data.sh
│   │       │   ├── preprocess.py
│   │       │   ├── punc_restore.sh
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── librispeech/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── asr0/
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── conf/
│   │   │   │   ├── deepspeech2.yaml
│   │   │   │   ├── deepspeech2_online.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   └── tuning/
│   │   │   │       ├── chunk_decode.yaml
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── download_lm_en.sh
│   │   │   │   ├── export.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── asr1/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── cmd.sh
│   │   │   ├── conf/
│   │   │   │   ├── augmentation.json
│   │   │   │   ├── chunk_conformer.yaml
│   │   │   │   ├── chunk_transformer.yaml
│   │   │   │   ├── conformer.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   ├── transformer.yaml
│   │   │   │   └── tuning/
│   │   │   │       ├── chunk_decode.yaml
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── align.sh
│   │   │   │   ├── data.sh
│   │   │   │   ├── download_lm_en.sh
│   │   │   │   ├── export.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── asr2/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── cmd.sh
│   │   │   ├── conf/
│   │   │   │   ├── augmentation.json
│   │   │   │   ├── decode/
│   │   │   │   │   ├── decode.yaml
│   │   │   │   │   ├── decode_att.yaml
│   │   │   │   │   ├── decode_base.yaml
│   │   │   │   │   ├── decode_ctc.yaml
│   │   │   │   │   └── decode_wo_lm.yaml
│   │   │   │   ├── fbank.conf
│   │   │   │   ├── lm/
│   │   │   │   │   └── transformer.yaml
│   │   │   │   ├── pitch.conf
│   │   │   │   ├── preprocess.yaml
│   │   │   │   └── transformer.yaml
│   │   │   ├── local/
│   │   │   │   ├── align.sh
│   │   │   │   ├── cacu_perplexity.sh
│   │   │   │   ├── data.sh
│   │   │   │   ├── data_prep.sh
│   │   │   │   ├── download_lm_en.sh
│   │   │   │   ├── espnet_json_to_manifest.py
│   │   │   │   ├── export.sh
│   │   │   │   ├── recog.sh
│   │   │   │   ├── test.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── asr3/
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── cmd.sh
│   │   │   ├── conf/
│   │   │   │   ├── preprocess.yaml
│   │   │   │   ├── tuning/
│   │   │   │   │   └── decode.yaml
│   │   │   │   └── wav2vec2ASR.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── asr4/
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── cmd.sh
│   │   │   ├── conf/
│   │   │   │   ├── config.json
│   │   │   │   ├── hubertASR.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   ├── preprocessor_config.json
│   │   │   │   └── tuning/
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   └── asr5/
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── avg.sh
│   │       ├── cmd.sh
│   │       ├── compute_wer.py
│   │       ├── conf/
│   │       │   ├── preprocess.yaml
│   │       │   ├── preprocessor_config.json
│   │       │   ├── tuning/
│   │       │   │   └── decode.yaml
│   │       │   └── wavlmASR.yaml
│   │       ├── local/
│   │       │   ├── data.sh
│   │       │   ├── test.sh
│   │       │   ├── test_wav.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── ljspeech/
│   │   ├── README.md
│   │   ├── tts0/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   └── run.sh
│   │   ├── tts1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── tts3/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── ort_predict.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   └── run.sh
│   │   ├── voc0/
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   └── preprocess.sh
│   │   │   └── run.sh
│   │   └── voc5/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       └── run.sh
│   ├── mustc/
│   │   └── st1/
│   │       ├── cmd.sh
│   │       ├── conf/
│   │       │   ├── fbank.conf
│   │       │   ├── pitch.conf
│   │       │   ├── transformer_de.yaml
│   │       │   ├── transformer_es.yaml
│   │       │   ├── transformer_fr.yaml
│   │       │   ├── transformer_it.yaml
│   │       │   ├── transformer_nl.yaml
│   │       │   ├── transformer_pt.yaml
│   │       │   ├── transformer_ro.yaml
│   │       │   └── transformer_ru.yaml
│   │       ├── local/
│   │       │   ├── augmentation.json
│   │       │   ├── data.sh
│   │       │   ├── data_prep.sh
│   │       │   ├── divide_lang.sh
│   │       │   ├── remove_punctuation.pl
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── opencpop/
│   │   ├── README.md
│   │   ├── svs1/
│   │   │   ├── README.md
│   │   │   ├── README_cn.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── pinyin_to_phone.txt
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── dygraph_to_static.sh
│   │   │   │   └── preprocess.sh
│   │   │   └── run.sh
│   │   └── voc5/
│   │       ├── conf/
│   │       │   ├── default.yaml
│   │       │   └── finetune.yaml
│   │       ├── finetune.sh
│   │       ├── local/
│   │       │   └── dygraph_to_static.sh
│   │       └── run.sh
│   ├── other/
│   │   ├── augmentation/
│   │   │   └── augmentation.json
│   │   ├── cc-cedict/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   └── parser.py
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── g2p/
│   │   │   ├── README.md
│   │   │   ├── compare_badcase.py
│   │   │   ├── get_g2p_data.py
│   │   │   ├── path.sh
│   │   │   ├── run.sh
│   │   │   └── test_g2p.py
│   │   ├── ge2e/
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── mfa/
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   ├── detect_oov.py
│   │   │   │   ├── generate_canton_lexicon_wavlabs.py
│   │   │   │   ├── generate_lexicon.py
│   │   │   │   ├── reorganize_aishell3.py
│   │   │   │   ├── reorganize_baker.py
│   │   │   │   ├── reorganize_ljspeech.py
│   │   │   │   └── reorganize_vctk.py
│   │   │   ├── run.sh
│   │   │   └── run_canton.sh
│   │   ├── ngram_lm/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   └── s0/
│   │   │       ├── .gitignore
│   │   │       ├── README.md
│   │   │       ├── data/
│   │   │       │   ├── README.md
│   │   │       │   ├── custom_confusion.txt
│   │   │       │   └── text_correct.txt
│   │   │       ├── local/
│   │   │       │   ├── build_zh_lm.sh
│   │   │       │   ├── download_lm_zh.sh
│   │   │       │   └── kenlm_score_test.py
│   │   │       ├── path.sh
│   │   │       ├── requirements.txt
│   │   │       └── run.sh
│   │   ├── punctuation_restoration/
│   │   │   └── README.md
│   │   ├── rhy/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── data/
│   │   │   │   └── rhy_token
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── pre_for_sp_aishell.py
│   │   │   │   ├── pre_for_sp_csmsc.py
│   │   │   │   ├── rhy_predict.sh
│   │   │   │   ├── test.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── spm/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── path.sh
│   │   │   ├── run.sh
│   │   │   └── text
│   │   ├── tn/
│   │   │   ├── README.md
│   │   │   ├── data/
│   │   │   │   └── textnorm_test_cases.txt
│   │   │   ├── get_textnorm_data.py
│   │   │   ├── path.sh
│   │   │   ├── run.sh
│   │   │   └── test_textnorm.py
│   │   └── tts_finetune/
│   │       └── tts3/
│   │           ├── README.md
│   │           ├── conf/
│   │           │   ├── fastspeech2_layers.txt
│   │           │   └── finetune.yaml
│   │           ├── local/
│   │           │   ├── check_oov.py
│   │           │   ├── extract_feature.py
│   │           │   ├── finetune.py
│   │           │   ├── generate_duration.py
│   │           │   ├── get_mfa_result.py
│   │           │   └── prepare_env.py
│   │           ├── path.sh
│   │           ├── run.sh
│   │           ├── run_en.sh
│   │           └── run_mix.sh
│   ├── tal_cs/
│   │   └── asr1/
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── conf/
│   │       │   ├── chunk_conformer.yaml
│   │       │   ├── conformer.yaml
│   │       │   ├── preprocess.yaml
│   │       │   └── tuning/
│   │       │       ├── chunk_decode.yaml
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── data.sh
│   │       │   ├── test.sh
│   │       │   ├── test_wav.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── ted_en_zh/
│   │   ├── README.md
│   │   ├── st0/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── conf/
│   │   │   │   ├── preprocess.yaml
│   │   │   │   ├── transformer.yaml
│   │   │   │   ├── transformer_mtl_noam.yaml
│   │   │   │   └── tuning/
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── test.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   └── st1/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── cmd.sh
│   │       ├── conf/
│   │       │   ├── fbank.conf
│   │       │   ├── pitch.conf
│   │       │   ├── preprocess.yaml
│   │       │   ├── transformer.yaml
│   │       │   ├── transformer_mtl_noam.yaml
│   │       │   └── tuning/
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── convert_torch_to_paddle.py
│   │       │   ├── data.sh
│   │       │   ├── divide_lang.sh
│   │       │   ├── download_pretrain.sh
│   │       │   ├── remove_punctuation.pl
│   │       │   ├── ted_en_zh.py
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── tess/
│   │   ├── README.md
│   │   └── cls0/
│   │       ├── conf/
│   │       │   ├── panns_logmelspectrogram.yaml
│   │       │   ├── panns_melspectrogram.yaml
│   │       │   ├── panns_mfcc.yaml
│   │       │   └── panns_spectrogram.yaml
│   │       ├── local/
│   │       │   ├── train.py
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── thchs30/
│   │   ├── README.md
│   │   └── align0/
│   │       ├── README.md
│   │       ├── data/
│   │       │   └── dict/
│   │       │       └── syllable.lexicon
│   │       ├── local/
│   │       │   ├── data.sh
│   │       │   ├── gen_word2phone.py
│   │       │   └── reorganize_thchs30.py
│   │       ├── path.sh
│   │       └── run.sh
│   ├── timit/
│   │   ├── README.md
│   │   └── asr1/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── conf/
│   │       │   ├── augmentation.json
│   │       │   ├── dev_spk.list
│   │       │   ├── preprocess.yaml
│   │       │   ├── test_spk.list
│   │       │   ├── transformer.yaml
│   │       │   └── tuning/
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── align.sh
│   │       │   ├── data.sh
│   │       │   ├── export.sh
│   │       │   ├── test.sh
│   │       │   ├── timit_data_prep.sh
│   │       │   ├── timit_norm_trans.pl
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── tiny/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── asr0/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   ├── deepspeech2.yaml
│   │   │   │   ├── deepspeech2_online.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   └── tuning/
│   │   │   │       ├── chunk_decode.yaml
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── download_lm_en.sh
│   │   │   │   ├── export.sh
│   │   │   │   ├── test.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   └── asr1/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── conf/
│   │       │   ├── augmentation.json
│   │       │   ├── chunk_confermer.yaml
│   │       │   ├── chunk_transformer.yaml
│   │       │   ├── conformer.yaml
│   │       │   ├── preprocess.yaml
│   │       │   ├── transformer.yaml
│   │       │   └── tuning/
│   │       │       ├── chunk_decode.yaml
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── align.sh
│   │       │   ├── data.sh
│   │       │   ├── export.sh
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── vctk/
│   │   ├── README.md
│   │   ├── ernie_sat/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   └── run.sh
│   │   ├── tts3/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── ort_predict.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   └── run.sh
│   │   ├── vc3/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── train.sh
│   │   │   │   └── voice_conversion.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   └── preprocess.sh
│   │   │   └── run.sh
│   │   └── voc5/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       └── run.sh
│   ├── voxceleb/
│   │   ├── README.md
│   │   └── sv0/
│   │       ├── README.md
│   │       ├── RESULT.md
│   │       ├── conf/
│   │       │   ├── ecapa_tdnn.yaml
│   │       │   └── ecapa_tdnn_small.yaml
│   │       ├── local/
│   │       │   ├── convert.sh
│   │       │   ├── data.sh
│   │       │   ├── data_prepare.py
│   │       │   ├── emb.sh
│   │       │   ├── make_rirs_noise_csv_dataset_from_json.py
│   │       │   ├── make_vox_csv_dataset_from_json.py
│   │       │   ├── make_voxceleb_kaldi_trial.py
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── wenetspeech/
│   │   ├── README.md
│   │   ├── asr0/
│   │   │   └── RESULTS.md
│   │   └── asr1/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── conf/
│   │       │   ├── chunk_conformer.yaml
│   │       │   ├── chunk_conformer_u2pp.yaml
│   │       │   ├── conformer.yaml
│   │       │   ├── preprocess.yaml
│   │       │   └── tuning/
│   │       │       ├── chunk_decode.yaml
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── data.sh
│   │       │   ├── export.sh
│   │       │   ├── extract_meta.py
│   │       │   ├── process_opus.py
│   │       │   ├── quant.sh
│   │       │   ├── test.sh
│   │       │   ├── test_wav.sh
│   │       │   ├── train.sh
│   │       │   └── wenetspeech_data_prep.sh
│   │       ├── path.sh
│   │       └── run.sh
│   └── zh_en_tts/
│       └── tts3/
│           ├── .gitignore
│           ├── README.md
│           ├── conf/
│           │   └── default.yaml
│           ├── local/
│           │   ├── inference.sh
│           │   ├── mfa_download.sh
│           │   ├── model_download.sh
│           │   ├── ort_predict.sh
│           │   ├── preprocess.sh
│           │   ├── synthesize.sh
│           │   └── synthesize_e2e.sh
│           └── run.sh
├── paddlespeech/
│   ├── __init__.py
│   ├── audio/
│   │   ├── .gitignore
│   │   ├── __init__.py
│   │   ├── backends/
│   │   │   ├── __init__.py
│   │   │   ├── common.py
│   │   │   └── soundfile_backend.py
│   │   ├── compliance/
│   │   │   ├── __init__.py
│   │   │   ├── kaldi.py
│   │   │   └── librosa.py
│   │   ├── datasets/
│   │   │   ├── __init__.py
│   │   │   ├── dataset.py
│   │   │   ├── esc50.py
│   │   │   └── voxceleb.py
│   │   ├── functional/
│   │   │   ├── __init__.py
│   │   │   ├── functional.py
│   │   │   └── window.py
│   │   ├── streamdata/
│   │   │   ├── __init__.py
│   │   │   ├── autodecode.py
│   │   │   ├── cache.py
│   │   │   ├── compat.py
│   │   │   ├── extradatasets.py
│   │   │   ├── filters.py
│   │   │   ├── gopen.py
│   │   │   ├── handlers.py
│   │   │   ├── mix.py
│   │   │   ├── paddle_utils.py
│   │   │   ├── pipeline.py
│   │   │   ├── shardlists.py
│   │   │   ├── soundfile.py
│   │   │   ├── tariterators.py
│   │   │   ├── utils.py
│   │   │   └── writer.py
│   │   ├── text/
│   │   │   ├── __init__.py
│   │   │   ├── text_featurizer.py
│   │   │   └── utility.py
│   │   ├── transform/
│   │   │   ├── __init__.py
│   │   │   ├── add_deltas.py
│   │   │   ├── channel_selector.py
│   │   │   ├── cmvn.py
│   │   │   ├── functional.py
│   │   │   ├── perturb.py
│   │   │   ├── spec_augment.py
│   │   │   ├── spectrogram.py
│   │   │   ├── transform_interface.py
│   │   │   ├── transformation.py
│   │   │   └── wpe.py
│   │   └── utils/
│   │       ├── __init__.py
│   │       ├── check_kwargs.py
│   │       ├── download.py
│   │       ├── dynamic_import.py
│   │       ├── error.py
│   │       ├── log.py
│   │       ├── numeric.py
│   │       ├── tensor_utils.py
│   │       └── time.py
│   ├── audiotools/
│   │   ├── README.md
│   │   ├── __init__.py
│   │   ├── core/
│   │   │   ├── __init__.py
│   │   │   ├── _julius.py
│   │   │   ├── audio_signal.py
│   │   │   ├── display.py
│   │   │   ├── dsp.py
│   │   │   ├── effects.py
│   │   │   ├── ffmpeg.py
│   │   │   ├── loudness.py
│   │   │   └── util.py
│   │   ├── data/
│   │   │   ├── __init__.py
│   │   │   ├── datasets.py
│   │   │   ├── preprocess.py
│   │   │   └── transforms.py
│   │   ├── metrics/
│   │   │   ├── __init__.py
│   │   │   └── quality.py
│   │   ├── ml/
│   │   │   ├── __init__.py
│   │   │   ├── accelerator.py
│   │   │   ├── basemodel.py
│   │   │   └── decorators.py
│   │   └── post.py
│   ├── cli/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── __init__.py
│   │   ├── asr/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── base_commands.py
│   │   ├── cls/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── download.py
│   │   ├── entry.py
│   │   ├── executor.py
│   │   ├── kws/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── log.py
│   │   ├── ssl/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── st/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── text/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── tts/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── utils.py
│   │   ├── vector/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   └── whisper/
│   │       ├── __init__.py
│   │       └── infer.py
│   ├── cls/
│   │   ├── __init__.py
│   │   ├── exps/
│   │   │   ├── __init__.py
│   │   │   └── panns/
│   │   │       ├── __init__.py
│   │   │       ├── deploy/
│   │   │       │   ├── __init__.py
│   │   │       │   └── predict.py
│   │   │       ├── export_model.py
│   │   │       ├── predict.py
│   │   │       └── train.py
│   │   └── models/
│   │       ├── __init__.py
│   │       └── panns/
│   │           ├── __init__.py
│   │           ├── classifier.py
│   │           └── panns.py
│   ├── dataset/
│   │   ├── __init__.py
│   │   ├── aidatatang_200zh/
│   │   │   ├── README.md
│   │   │   ├── __init__.py
│   │   │   └── aidatatang_200zh.py
│   │   ├── aishell/
│   │   │   ├── README.md
│   │   │   ├── __init__.py
│   │   │   └── aishell.py
│   │   ├── download.py
│   │   └── s2t/
│   │       ├── __init__.py
│   │       ├── avg_model.py
│   │       ├── build_vocab.py
│   │       ├── compute_mean_std.py
│   │       ├── compute_wer.py
│   │       ├── format_data.py
│   │       └── format_rsl.py
│   ├── kws/
│   │   ├── __init__.py
│   │   ├── exps/
│   │   │   ├── __init__.py
│   │   │   └── mdtc/
│   │   │       ├── __init__.py
│   │   │       ├── collate.py
│   │   │       ├── compute_det.py
│   │   │       ├── plot_det_curve.py
│   │   │       ├── score.py
│   │   │       └── train.py
│   │   └── models/
│   │       ├── __init__.py
│   │       ├── loss.py
│   │       └── mdtc.py
│   ├── resource/
│   │   ├── __init__.py
│   │   ├── model_alias.py
│   │   ├── pretrained_models.py
│   │   └── resource.py
│   ├── s2t/
│   │   ├── __init__.py
│   │   ├── decoders/
│   │   │   ├── README.md
│   │   │   ├── __init__.py
│   │   │   ├── beam_search/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── batch_beam_search.py
│   │   │   │   └── beam_search.py
│   │   │   ├── ctcdecoder/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── decoders_deprecated.py
│   │   │   │   ├── scorer_deprecated.py
│   │   │   │   ├── swig_wrapper.py
│   │   │   │   └── tests/
│   │   │   │       └── test_decoders.py
│   │   │   ├── recog.py
│   │   │   ├── recog_bin.py
│   │   │   ├── scorers/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── ctc.py
│   │   │   │   ├── ctc_prefix_score.py
│   │   │   │   ├── length_bonus.py
│   │   │   │   ├── ngram.py
│   │   │   │   └── scorer_interface.py
│   │   │   └── utils.py
│   │   ├── exps/
│   │   │   ├── __init__.py
│   │   │   ├── deepspeech2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── deploy/
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   ├── client.py
│   │   │   │   │   │   ├── record.py
│   │   │   │   │   │   ├── runtime.py
│   │   │   │   │   │   ├── send.py
│   │   │   │   │   │   └── server.py
│   │   │   │   │   ├── export.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   ├── test_export.py
│   │   │   │   │   ├── test_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   ├── hubert/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   ├── test_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   ├── lm/
│   │   │   │   └── transformer/
│   │   │   │       ├── __init__.py
│   │   │   │       ├── bin/
│   │   │   │       │   ├── __init__.py
│   │   │   │       │   └── cacu_perplexity.py
│   │   │   │       └── lm_cacu_perplexity.py
│   │   │   ├── u2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── alignment.py
│   │   │   │   │   ├── export.py
│   │   │   │   │   ├── quant.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   ├── test_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   ├── model.py
│   │   │   │   └── trainer.py
│   │   │   ├── u2_kaldi/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── recog.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   ├── u2_st/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── export.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   ├── wav2vec2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   ├── test_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   ├── wavlm/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   ├── test_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   └── whisper/
│   │   │       └── test_wav.py
│   │   ├── frontend/
│   │   │   ├── __init__.py
│   │   │   ├── audio.py
│   │   │   ├── augmentor/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── augmentation.py
│   │   │   │   ├── base.py
│   │   │   │   ├── impulse_response.py
│   │   │   │   ├── noise_perturb.py
│   │   │   │   ├── online_bayesian_normalization.py
│   │   │   │   ├── resample.py
│   │   │   │   ├── shift_perturb.py
│   │   │   │   ├── spec_augment.py
│   │   │   │   ├── speed_perturb.py
│   │   │   │   └── volume_perturb.py
│   │   │   ├── featurizer/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── audio_featurizer.py
│   │   │   │   ├── speech_featurizer.py
│   │   │   │   └── text_featurizer.py
│   │   │   ├── normalizer.py
│   │   │   ├── speech.py
│   │   │   └── utility.py
│   │   ├── io/
│   │   │   ├── __init__.py
│   │   │   ├── batchfy.py
│   │   │   ├── collator.py
│   │   │   ├── converter.py
│   │   │   ├── dataloader.py
│   │   │   ├── dataset.py
│   │   │   ├── reader.py
│   │   │   ├── sampler.py
│   │   │   ├── speechbrain/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── batch.py
│   │   │   │   ├── data_pipeline.py
│   │   │   │   ├── data_utils.py
│   │   │   │   ├── dataio.py
│   │   │   │   ├── dataloader.py
│   │   │   │   ├── dataset.py
│   │   │   │   ├── depgraph.py
│   │   │   │   ├── make_dataloader.py
│   │   │   │   ├── sampler.py
│   │   │   │   └── sb_pipeline.py
│   │   │   └── utility.py
│   │   ├── models/
│   │   │   ├── __init__.py
│   │   │   ├── asr_interface.py
│   │   │   ├── ds2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── conv.py
│   │   │   │   └── deepspeech2.py
│   │   │   ├── hubert/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── hubert_ASR.py
│   │   │   │   └── modules/
│   │   │   │       ├── __init__.py
│   │   │   │       └── hubert_model.py
│   │   │   ├── lm/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── dataset.py
│   │   │   │   └── transformer.py
│   │   │   ├── lm_interface.py
│   │   │   ├── st_interface.py
│   │   │   ├── u2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── u2.py
│   │   │   │   └── updater.py
│   │   │   ├── u2_st/
│   │   │   │   ├── __init__.py
│   │   │   │   └── u2_st.py
│   │   │   ├── wav2vec2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── modules/
│   │   │   │   │   ├── VanillaNN.py
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── activations.py
│   │   │   │   │   ├── containers.py
│   │   │   │   │   ├── linear.py
│   │   │   │   │   ├── modeling_outputs.py
│   │   │   │   │   ├── modeling_wav2vec2.py
│   │   │   │   │   ├── normalization.py
│   │   │   │   │   └── wav2vec2_model.py
│   │   │   │   ├── processing/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── signal_processing.py
│   │   │   │   │   └── speech_augmentation.py
│   │   │   │   └── wav2vec2_ASR.py
│   │   │   ├── wavlm/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── modules/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── activations.py
│   │   │   │   │   ├── functional.py
│   │   │   │   │   └── modules.py
│   │   │   │   ├── wavlm_asr.py
│   │   │   │   └── wavlm_paddle.py
│   │   │   └── whisper/
│   │   │       ├── __init__.py
│   │   │       ├── tokenizer.py
│   │   │       ├── utils.py
│   │   │       ├── whisper.py
│   │   │       └── whisper_LICENSE
│   │   ├── modules/
│   │   │   ├── __init__.py
│   │   │   ├── activation.py
│   │   │   ├── align.py
│   │   │   ├── attention.py
│   │   │   ├── cmvn.py
│   │   │   ├── conformer_convolution.py
│   │   │   ├── conv2d.py
│   │   │   ├── crf.py
│   │   │   ├── ctc.py
│   │   │   ├── decoder.py
│   │   │   ├── decoder_layer.py
│   │   │   ├── embedding.py
│   │   │   ├── encoder.py
│   │   │   ├── encoder_layer.py
│   │   │   ├── fbank.py
│   │   │   ├── initializer.py
│   │   │   ├── loss.py
│   │   │   ├── mask.py
│   │   │   ├── positionwise_feed_forward.py
│   │   │   ├── subsampling.py
│   │   │   └── time_reduction.py
│   │   ├── training/
│   │   │   ├── __init__.py
│   │   │   ├── cli.py
│   │   │   ├── extensions/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── evaluator.py
│   │   │   │   ├── extension.py
│   │   │   │   ├── plot.py
│   │   │   │   ├── snapshot.py
│   │   │   │   └── visualizer.py
│   │   │   ├── optimizer/
│   │   │   │   ├── __init__.py
│   │   │   │   └── adadelta.py
│   │   │   ├── reporter.py
│   │   │   ├── scheduler.py
│   │   │   ├── timer.py
│   │   │   ├── trainer.py
│   │   │   ├── triggers/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── compare_value_trigger.py
│   │   │   │   ├── interval_trigger.py
│   │   │   │   ├── limit_trigger.py
│   │   │   │   ├── time_trigger.py
│   │   │   │   └── utils.py
│   │   │   └── updaters/
│   │   │       ├── __init__.py
│   │   │       ├── standard_updater.py
│   │   │       ├── trainer.py
│   │   │       └── updater.py
│   │   └── utils/
│   │       ├── __init__.py
│   │       ├── asr_utils.py
│   │       ├── bleu_score.py
│   │       ├── check_kwargs.py
│   │       ├── checkpoint.py
│   │       ├── cli_readers.py
│   │       ├── cli_utils.py
│   │       ├── cli_writers.py
│   │       ├── ctc_utils.py
│   │       ├── dynamic_import.py
│   │       ├── dynamic_pip_install.py
│   │       ├── error_rate.py
│   │       ├── layer_tools.py
│   │       ├── log.py
│   │       ├── mp_tools.py
│   │       ├── profiler.py
│   │       ├── socket_server.py
│   │       ├── spec_augment.py
│   │       ├── tensor_utils.py
│   │       ├── text_grid.py
│   │       └── utility.py
│   ├── server/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── __init__.py
│   │   ├── base_commands.py
│   │   ├── bin/
│   │   │   ├── __init__.py
│   │   │   ├── paddlespeech_client.py
│   │   │   └── paddlespeech_server.py
│   │   ├── conf/
│   │   │   ├── application.yaml
│   │   │   ├── tts_online_application.yaml
│   │   │   ├── vector_application.yaml
│   │   │   ├── ws_conformer_application.yaml
│   │   │   ├── ws_conformer_wenetspeech_application_faster.yaml
│   │   │   └── ws_ds2_application.yaml
│   │   ├── engine/
│   │   │   ├── __init__.py
│   │   │   ├── acs/
│   │   │   │   ├── __init__.py
│   │   │   │   └── python/
│   │   │   │       ├── __init__.py
│   │   │   │       └── acs_engine.py
│   │   │   ├── asr/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── online/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── ctc_endpoint.py
│   │   │   │   │   ├── ctc_search.py
│   │   │   │   │   ├── onnx/
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   └── asr_engine.py
│   │   │   │   │   ├── paddleinference/
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   └── asr_engine.py
│   │   │   │   │   └── python/
│   │   │   │   │       ├── __init__.py
│   │   │   │   │       └── asr_engine.py
│   │   │   │   ├── paddleinference/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── asr_engine.py
│   │   │   │   └── python/
│   │   │   │       ├── __init__.py
│   │   │   │       └── asr_engine.py
│   │   │   ├── base_engine.py
│   │   │   ├── cls/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── paddleinference/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── cls_engine.py
│   │   │   │   └── python/
│   │   │   │       ├── __init__.py
│   │   │   │       └── cls_engine.py
│   │   │   ├── engine_factory.py
│   │   │   ├── engine_pool.py
│   │   │   ├── engine_warmup.py
│   │   │   ├── text/
│   │   │   │   ├── __init__.py
│   │   │   │   └── python/
│   │   │   │       ├── __init__.py
│   │   │   │       └── text_engine.py
│   │   │   ├── tts/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── online/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── onnx/
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   └── tts_engine.py
│   │   │   │   │   └── python/
│   │   │   │   │       ├── __init__.py
│   │   │   │   │       └── tts_engine.py
│   │   │   │   ├── paddleinference/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── tts_engine.py
│   │   │   │   └── python/
│   │   │   │       ├── __init__.py
│   │   │   │       └── tts_engine.py
│   │   │   └── vector/
│   │   │       ├── __init__.py
│   │   │       └── python/
│   │   │           ├── __init__.py
│   │   │           └── vector_engine.py
│   │   ├── entry.py
│   │   ├── executor.py
│   │   ├── restful/
│   │   │   ├── __init__.py
│   │   │   ├── acs_api.py
│   │   │   ├── api.py
│   │   │   ├── asr_api.py
│   │   │   ├── cls_api.py
│   │   │   ├── request.py
│   │   │   ├── response.py
│   │   │   ├── text_api.py
│   │   │   ├── tts_api.py
│   │   │   └── vector_api.py
│   │   ├── tests/
│   │   │   ├── __init__.py
│   │   │   ├── asr/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── offline/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── http_client.py
│   │   │   │   └── online/
│   │   │   │       ├── README.md
│   │   │   │       ├── README_cn.md
│   │   │   │       └── microphone_client.py
│   │   │   ├── text/
│   │   │   │   └── http_client.py
│   │   │   └── tts/
│   │   │       ├── offline/
│   │   │       │   └── http_client.py
│   │   │       └── online/
│   │   │           ├── http_client.py
│   │   │           └── ws_client.py
│   │   ├── util.py
│   │   ├── utils/
│   │   │   ├── __init__.py
│   │   │   ├── audio_handler.py
│   │   │   ├── audio_process.py
│   │   │   ├── buffer.py
│   │   │   ├── config.py
│   │   │   ├── errors.py
│   │   │   ├── exception.py
│   │   │   ├── onnx_infer.py
│   │   │   ├── paddle_predictor.py
│   │   │   ├── util.py
│   │   │   └── vad.py
│   │   └── ws/
│   │       ├── __init__.py
│   │       ├── api.py
│   │       ├── asr_api.py
│   │       └── tts_api.py
│   ├── t2s/
│   │   ├── __init__.py
│   │   ├── assets/
│   │   │   ├── __init__.py
│   │   │   ├── csmsc_test.txt
│   │   │   ├── sentences.txt
│   │   │   ├── sentences_canton.txt
│   │   │   ├── sentences_en.txt
│   │   │   ├── sentences_mix.txt
│   │   │   ├── sentences_sing.txt
│   │   │   └── sentences_ssml.txt
│   │   ├── audio/
│   │   │   ├── __init__.py
│   │   │   ├── audio.py
│   │   │   ├── codec.py
│   │   │   └── spec_normalizer.py
│   │   ├── datasets/
│   │   │   ├── __init__.py
│   │   │   ├── am_batch_fn.py
│   │   │   ├── batch.py
│   │   │   ├── data_table.py
│   │   │   ├── dataset.py
│   │   │   ├── get_feats.py
│   │   │   ├── ljspeech.py
│   │   │   ├── preprocess_utils.py
│   │   │   ├── sampler.py
│   │   │   └── vocoder_batch_fn.py
│   │   ├── exps/
│   │   │   ├── PTQ_dynamic.py
│   │   │   ├── PTQ_static.py
│   │   │   ├── __init__.py
│   │   │   ├── diffsinger/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── gen_gta_mel.py
│   │   │   │   ├── get_minmax.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   └── train.py
│   │   │   ├── dygraph_to_static.py
│   │   │   ├── ernie_sat/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── align.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize.py
│   │   │   │   ├── synthesize_e2e.py
│   │   │   │   ├── train.py
│   │   │   │   └── utils.py
│   │   │   ├── fastspeech2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── gen_gta_mel.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── train.py
│   │   │   │   └── vc2_infer.py
│   │   │   ├── gan_vocoder/
│   │   │   │   ├── README.md
│   │   │   │   ├── __init__.py
│   │   │   │   ├── hifigan/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── train.py
│   │   │   │   ├── multi_band_melgan/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── train.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── parallelwave_gan/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── synthesize_from_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── style_melgan/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── train.py
│   │   │   │   └── synthesize.py
│   │   │   ├── inference.py
│   │   │   ├── inference_streaming.py
│   │   │   ├── jets/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── inference.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize.py
│   │   │   │   ├── synthesize_e2e.py
│   │   │   │   └── train.py
│   │   │   ├── lite_predict.py
│   │   │   ├── lite_predict_streaming.py
│   │   │   ├── lite_syn_utils.py
│   │   │   ├── ort_predict.py
│   │   │   ├── ort_predict_e2e.py
│   │   │   ├── ort_predict_streaming.py
│   │   │   ├── speedyspeech/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── gen_gta_mel.py
│   │   │   │   ├── inference.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize_e2e.py
│   │   │   │   └── train.py
│   │   │   ├── starganv2_vc/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── train.py
│   │   │   │   └── vc.py
│   │   │   ├── stream_play_tts.py
│   │   │   ├── syn_utils.py
│   │   │   ├── synthesize.py
│   │   │   ├── synthesize_e2e.py
│   │   │   ├── synthesize_streaming.py
│   │   │   ├── tacotron2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── preprocess.py
│   │   │   │   └── train.py
│   │   │   ├── transformer_tts/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize.py
│   │   │   │   ├── synthesize_e2e.py
│   │   │   │   └── train.py
│   │   │   ├── vits/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── inference.py
│   │   │   │   ├── lite_predict.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize.py
│   │   │   │   ├── synthesize_e2e.py
│   │   │   │   ├── train.py
│   │   │   │   └── voice_cloning.py
│   │   │   ├── voice_cloning.py
│   │   │   ├── waveflow/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── config.py
│   │   │   │   ├── ljspeech.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize.py
│   │   │   │   └── train.py
│   │   │   └── wavernn/
│   │   │       ├── __init__.py
│   │   │       ├── synthesize.py
│   │   │       └── train.py
│   │   ├── frontend/
│   │   │   ├── __init__.py
│   │   │   ├── arpabet.py
│   │   │   ├── canton_frontend.py
│   │   │   ├── en_frontend.py
│   │   │   ├── g2pw/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── dataset.py
│   │   │   │   ├── onnx_api.py
│   │   │   │   └── utils.py
│   │   │   ├── generate_lexicon.py
│   │   │   ├── mix_frontend.py
│   │   │   ├── normalizer/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── abbrrviation.py
│   │   │   │   ├── acronyms.py
│   │   │   │   ├── normalizer.py
│   │   │   │   ├── numbers.py
│   │   │   │   └── width.py
│   │   │   ├── phonectic.py
│   │   │   ├── polyphonic.py
│   │   │   ├── polyphonic.yaml
│   │   │   ├── punctuation.py
│   │   │   ├── rhy_prediction/
│   │   │   │   ├── __init__.py
│   │   │   │   └── rhy_predictor.py
│   │   │   ├── sing_frontend.py
│   │   │   ├── ssml/
│   │   │   │   ├── __init__.py
│   │   │   │   └── xml_processor.py
│   │   │   ├── tone_sandhi.py
│   │   │   ├── vocab.py
│   │   │   ├── zh_frontend.py
│   │   │   └── zh_normalization/
│   │   │       ├── README.md
│   │   │       ├── __init__.py
│   │   │       ├── char_convert.py
│   │   │       ├── chronology.py
│   │   │       ├── constants.py
│   │   │       ├── num.py
│   │   │       ├── phonecode.py
│   │   │       ├── quantifier.py
│   │   │       └── text_normlization.py
│   │   ├── models/
│   │   │   ├── __init__.py
│   │   │   ├── diffsinger/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── diffsinger.py
│   │   │   │   ├── diffsinger_updater.py
│   │   │   │   └── fastspeech2midi.py
│   │   │   ├── ernie_sat/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── ernie_sat.py
│   │   │   │   └── ernie_sat_updater.py
│   │   │   ├── fastspeech2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── fastspeech2.py
│   │   │   │   └── fastspeech2_updater.py
│   │   │   ├── hifigan/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── hifigan.py
│   │   │   │   └── hifigan_updater.py
│   │   │   ├── jets/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── alignments.py
│   │   │   │   ├── generator.py
│   │   │   │   ├── jets.py
│   │   │   │   ├── jets_updater.py
│   │   │   │   └── length_regulator.py
│   │   │   ├── melgan/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── melgan.py
│   │   │   │   ├── multi_band_melgan_updater.py
│   │   │   │   ├── style_melgan.py
│   │   │   │   └── style_melgan_updater.py
│   │   │   ├── parallel_wavegan/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── parallel_wavegan.py
│   │   │   │   └── parallel_wavegan_updater.py
│   │   │   ├── speedyspeech/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── speedyspeech.py
│   │   │   │   └── speedyspeech_updater.py
│   │   │   ├── starganv2_vc/
│   │   │   │   ├── AuxiliaryASR/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── config.yml
│   │   │   │   │   ├── layers.py
│   │   │   │   │   └── model.py
│   │   │   │   ├── JDCNet/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── model.py
│   │   │   │   ├── __init__.py
│   │   │   │   ├── losses.py
│   │   │   │   ├── starganv2_vc.py
│   │   │   │   ├── starganv2_vc_updater.py
│   │   │   │   └── transforms.py
│   │   │   ├── tacotron2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── tacotron2.py
│   │   │   │   └── tacotron2_updater.py
│   │   │   ├── transformer_tts/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── transformer_tts.py
│   │   │   │   └── transformer_tts_updater.py
│   │   │   ├── vits/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── duration_predictor.py
│   │   │   │   ├── flow.py
│   │   │   │   ├── generator.py
│   │   │   │   ├── monotonic_align/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── core.pyx
│   │   │   │   │   └── setup.py
│   │   │   │   ├── posterior_encoder.py
│   │   │   │   ├── residual_coupling.py
│   │   │   │   ├── text_encoder.py
│   │   │   │   ├── transform.py
│   │   │   │   ├── vits.py
│   │   │   │   ├── vits_updater.py
│   │   │   │   └── wavenet/
│   │   │   │       ├── __init__.py
│   │   │   │       ├── residual_block.py
│   │   │   │       └── wavenet.py
│   │   │   ├── waveflow.py
│   │   │   └── wavernn/
│   │   │       ├── __init__.py
│   │   │       ├── wavernn.py
│   │   │       └── wavernn_updater.py
│   │   ├── modules/
│   │   │   ├── __init__.py
│   │   │   ├── activation.py
│   │   │   ├── adversarial_loss/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── gradient_reversal.py
│   │   │   │   └── speaker_classifier.py
│   │   │   ├── causal_conv.py
│   │   │   ├── conformer/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── convolution.py
│   │   │   │   └── encoder_layer.py
│   │   │   ├── conv.py
│   │   │   ├── diffnet.py
│   │   │   ├── diffusion.py
│   │   │   ├── fftconv1d.py
│   │   │   ├── geometry.py
│   │   │   ├── layer_norm.py
│   │   │   ├── losses.py
│   │   │   ├── masked_fill.py
│   │   │   ├── nets_utils.py
│   │   │   ├── normalizer.py
│   │   │   ├── positional_encoding.py
│   │   │   ├── pqmf.py
│   │   │   ├── predictor/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── duration_predictor.py
│   │   │   │   ├── length_regulator.py
│   │   │   │   └── variance_predictor.py
│   │   │   ├── residual_block.py
│   │   │   ├── residual_stack.py
│   │   │   ├── style_encoder.py
│   │   │   ├── tacotron2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── attentions.py
│   │   │   │   ├── decoder.py
│   │   │   │   └── encoder.py
│   │   │   ├── tade_res_block.py
│   │   │   ├── transformer/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── attention.py
│   │   │   │   ├── decoder.py
│   │   │   │   ├── decoder_layer.py
│   │   │   │   ├── embedding.py
│   │   │   │   ├── encoder.py
│   │   │   │   ├── encoder_layer.py
│   │   │   │   ├── lightconv.py
│   │   │   │   ├── mask.py
│   │   │   │   ├── multi_layer_conv.py
│   │   │   │   ├── positionwise_feed_forward.py
│   │   │   │   ├── repeat.py
│   │   │   │   └── subsampling.py
│   │   │   ├── upsample.py
│   │   │   └── wavenet_denoiser.py
│   │   ├── training/
│   │   │   ├── __init__.py
│   │   │   ├── cli.py
│   │   │   ├── default_config.py
│   │   │   ├── experiment.py
│   │   │   ├── extension.py
│   │   │   ├── extensions/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── evaluator.py
│   │   │   │   ├── snapshot.py
│   │   │   │   └── visualizer.py
│   │   │   ├── optimizer.py
│   │   │   ├── reporter.py
│   │   │   ├── seeding.py
│   │   │   ├── trainer.py
│   │   │   ├── trigger.py
│   │   │   ├── triggers/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── interval_trigger.py
│   │   │   │   ├── limit_trigger.py
│   │   │   │   └── time_trigger.py
│   │   │   ├── updater.py
│   │   │   └── updaters/
│   │   │       ├── __init__.py
│   │   │       └── standard_updater.py
│   │   └── utils/
│   │       ├── __init__.py
│   │       ├── checkpoint.py
│   │       ├── display.py
│   │       ├── error_rate.py
│   │       ├── h5_utils.py
│   │       ├── internals.py
│   │       ├── layer_tools.py
│   │       ├── mp_tools.py
│   │       ├── profiler.py
│   │       └── scheduler.py
│   ├── text/
│   │   ├── __init__.py
│   │   ├── exps/
│   │   │   ├── __init__.py
│   │   │   └── ernie_linear/
│   │   │       ├── __init__.py
│   │   │       ├── avg_model.py
│   │   │       ├── punc_restore.py
│   │   │       ├── test.py
│   │   │       └── train.py
│   │   └── models/
│   │       ├── __init__.py
│   │       ├── ernie_crf/
│   │       │   ├── __init__.py
│   │       │   └── model.py
│   │       └── ernie_linear/
│   │           ├── __init__.py
│   │           ├── dataset.py
│   │           ├── ernie_linear.py
│   │           └── ernie_linear_updater.py
│   ├── utils/
│   │   ├── __init__.py
│   │   ├── argparse.py
│   │   ├── dynamic_import.py
│   │   ├── env.py
│   │   └── initialize.py
│   └── vector/
│       ├── __init__.py
│       ├── cluster/
│       │   ├── __init__.py
│       │   ├── diarization.py
│       │   └── plda.py
│       ├── exps/
│       │   ├── __init__.py
│       │   ├── ecapa_tdnn/
│       │   │   ├── extract_emb.py
│       │   │   ├── test.py
│       │   │   └── train.py
│       │   └── ge2e/
│       │       ├── __init__.py
│       │       ├── audio_processor.py
│       │       ├── config.py
│       │       ├── dataset_processors.py
│       │       ├── inference.py
│       │       ├── preprocess.py
│       │       ├── random_cycle.py
│       │       ├── speaker_verification_dataset.py
│       │       └── train.py
│       ├── io/
│       │   ├── __init__.py
│       │   ├── augment.py
│       │   ├── batch.py
│       │   ├── dataset.py
│       │   ├── dataset_from_json.py
│       │   ├── embedding_norm.py
│       │   └── signal_processing.py
│       ├── models/
│       │   ├── __init__.py
│       │   ├── ecapa_tdnn.py
│       │   └── lstm_speaker_encoder.py
│       ├── modules/
│       │   ├── __init__.py
│       │   ├── layer.py
│       │   ├── loss.py
│       │   └── sid_model.py
│       ├── training/
│       │   ├── __init__.py
│       │   ├── scheduler.py
│       │   └── seeding.py
│       └── utils/
│           ├── __init__.py
│           ├── time.py
│           └── vector_utils.py
├── runtime/
│   ├── .clang-format
│   ├── .gitignore
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── build.sh
│   ├── build_android.sh
│   ├── build_ios.sh
│   ├── cmake/
│   │   ├── EnableCMP0048.cmake
│   │   ├── EnableCMP0077.cmake
│   │   ├── FindGFortranLibs.cmake
│   │   ├── absl.cmake
│   │   ├── boost.cmake
│   │   ├── eigen.cmake
│   │   ├── fastdeploy.cmake
│   │   ├── gflags.cmake
│   │   ├── glog.cmake
│   │   ├── gtest.cmake
│   │   ├── kenlm.cmake
│   │   ├── libsndfile.cmake
│   │   ├── openblas.cmake
│   │   ├── openfst.cmake
│   │   ├── paddleinference.cmake
│   │   ├── pybind.cmake
│   │   ├── summary.cmake
│   │   └── system.cmake
│   ├── docker/
│   │   └── .gitkeep
│   ├── engine/
│   │   ├── CMakeLists.txt
│   │   ├── asr/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── decoder/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── common.h
│   │   │   │   ├── ctc_beam_search_opt.h
│   │   │   │   ├── ctc_prefix_beam_search_decoder.cc
│   │   │   │   ├── ctc_prefix_beam_search_decoder.h
│   │   │   │   ├── ctc_prefix_beam_search_decoder_main.cc
│   │   │   │   ├── ctc_prefix_beam_search_score.h
│   │   │   │   ├── ctc_tlg_decoder.cc
│   │   │   │   ├── ctc_tlg_decoder.h
│   │   │   │   ├── ctc_tlg_decoder_main.cc
│   │   │   │   ├── decoder_itf.h
│   │   │   │   └── param.h
│   │   │   ├── nnet/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── decodable.cc
│   │   │   │   ├── decodable.h
│   │   │   │   ├── nnet_itf.h
│   │   │   │   ├── nnet_producer.cc
│   │   │   │   ├── nnet_producer.h
│   │   │   │   ├── u2_nnet.cc
│   │   │   │   ├── u2_nnet.h
│   │   │   │   ├── u2_nnet_main.cc
│   │   │   │   ├── u2_nnet_thread_main.cc
│   │   │   │   ├── u2_onnx_nnet.cc
│   │   │   │   └── u2_onnx_nnet.h
│   │   │   ├── recognizer/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── recognizer.cc
│   │   │   │   ├── recognizer.h
│   │   │   │   ├── recognizer_batch_main.cc
│   │   │   │   ├── recognizer_batch_main2.cc
│   │   │   │   ├── recognizer_controller.cc
│   │   │   │   ├── recognizer_controller.h
│   │   │   │   ├── recognizer_controller_impl.cc
│   │   │   │   ├── recognizer_controller_impl.h
│   │   │   │   ├── recognizer_instance.cc
│   │   │   │   ├── recognizer_instance.h
│   │   │   │   ├── recognizer_main.cc
│   │   │   │   └── recognizer_resource.h
│   │   │   └── server/
│   │   │       ├── CMakeLists.txt
│   │   │       └── websocket/
│   │   │           ├── CMakeLists.txt
│   │   │           ├── websocket_client.cc
│   │   │           ├── websocket_client.h
│   │   │           ├── websocket_client_main.cc
│   │   │           ├── websocket_server.cc
│   │   │           ├── websocket_server.h
│   │   │           └── websocket_server_main.cc
│   │   ├── audio_classification/
│   │   │   ├── CMakeLists.txt
│   │   │   └── nnet/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── panns_interface.cc
│   │   │       ├── panns_interface.h
│   │   │       ├── panns_nnet.cc
│   │   │       ├── panns_nnet.h
│   │   │       └── panns_nnet_main.cc
│   │   ├── codelab/
│   │   │   ├── CMakeLists.txt
│   │   │   └── README.md
│   │   ├── common/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── base/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── basic_types.h
│   │   │   │   ├── common.h
│   │   │   │   ├── config.h
│   │   │   │   ├── flags.h.in
│   │   │   │   ├── glog_utils.cc
│   │   │   │   ├── glog_utils.h
│   │   │   │   ├── log.h.in
│   │   │   │   ├── log_impl.cc
│   │   │   │   ├── log_impl.h
│   │   │   │   ├── macros.h
│   │   │   │   ├── safe_queue.h
│   │   │   │   ├── safe_queue_inl.h
│   │   │   │   └── thread_pool.h
│   │   │   ├── frontend/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── assembler.cc
│   │   │   │   ├── assembler.h
│   │   │   │   ├── audio_cache.cc
│   │   │   │   ├── audio_cache.h
│   │   │   │   ├── cmvn.cc
│   │   │   │   ├── cmvn.h
│   │   │   │   ├── compute_fbank_main.cc
│   │   │   │   ├── compute_linear_spectrogram_main.cc
│   │   │   │   ├── data_cache.h
│   │   │   │   ├── db_norm.cc
│   │   │   │   ├── db_norm.h
│   │   │   │   ├── fbank.h
│   │   │   │   ├── feature-fbank.cc
│   │   │   │   ├── feature-fbank.h
│   │   │   │   ├── feature-functions.cc
│   │   │   │   ├── feature-functions.h
│   │   │   │   ├── feature-window.cc
│   │   │   │   ├── feature-window.h
│   │   │   │   ├── feature_cache.cc
│   │   │   │   ├── feature_cache.h
│   │   │   │   ├── feature_common.h
│   │   │   │   ├── feature_common_inl.h
│   │   │   │   ├── feature_pipeline.cc
│   │   │   │   ├── feature_pipeline.h
│   │   │   │   ├── fftsg.c
│   │   │   │   ├── frontend_itf.h
│   │   │   │   ├── linear_spectrogram.cc
│   │   │   │   ├── linear_spectrogram.h
│   │   │   │   ├── mel-computations.cc
│   │   │   │   ├── mel-computations.h
│   │   │   │   ├── normalizer.h
│   │   │   │   ├── rfft.cc
│   │   │   │   ├── rfft.h
│   │   │   │   ├── wave-reader.cc
│   │   │   │   └── wave-reader.h
│   │   │   ├── matrix/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── kaldi-matrix-inl.h
│   │   │   │   ├── kaldi-matrix.cc
│   │   │   │   ├── kaldi-matrix.h
│   │   │   │   ├── kaldi-vector-inl.h
│   │   │   │   ├── kaldi-vector.cc
│   │   │   │   ├── kaldi-vector.h
│   │   │   │   └── matrix-common.h
│   │   │   └── utils/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── audio_process.cc
│   │   │       ├── audio_process.h
│   │   │       ├── blank_process_test.cc
│   │   │       ├── file_utils.cc
│   │   │       ├── file_utils.h
│   │   │       ├── math.cc
│   │   │       ├── math.h
│   │   │       ├── picojson.h
│   │   │       ├── strings.cc
│   │   │       ├── strings.h
│   │   │       ├── strings_test.cc
│   │   │       ├── timer.cc
│   │   │       └── timer.h
│   │   ├── kaldi/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── base/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── io-funcs-inl.h
│   │   │   │   ├── io-funcs.cc
│   │   │   │   ├── io-funcs.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
│   │   │   ├── decoder/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── decodable-itf.h
│   │   │   │   ├── lattice-faster-decoder.cc
│   │   │   │   ├── lattice-faster-decoder.h
│   │   │   │   ├── lattice-faster-online-decoder.cc
│   │   │   │   └── lattice-faster-online-decoder.h
│   │   │   ├── fstbin/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── fstaddselfloops.cc
│   │   │   │   ├── fstdeterminizestar.cc
│   │   │   │   ├── fstisstochastic.cc
│   │   │   │   ├── fstminimizeencoded.cc
│   │   │   │   └── fsttablecompose.cc
│   │   │   ├── fstext/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── determinize-lattice-inl.h
│   │   │   │   ├── determinize-lattice.h
│   │   │   │   ├── determinize-star-inl.h
│   │   │   │   ├── determinize-star.h
│   │   │   │   ├── fstext-lib.h
│   │   │   │   ├── fstext-utils-inl.h
│   │   │   │   ├── fstext-utils.h
│   │   │   │   ├── kaldi-fst-io-inl.h
│   │   │   │   ├── kaldi-fst-io.cc
│   │   │   │   ├── kaldi-fst-io.h
│   │   │   │   ├── lattice-utils-inl.h
│   │   │   │   ├── lattice-utils.h
│   │   │   │   ├── lattice-weight.h
│   │   │   │   ├── pre-determinize-inl.h
│   │   │   │   ├── pre-determinize.h
│   │   │   │   ├── remove-eps-local-inl.h
│   │   │   │   ├── remove-eps-local.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/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── arpa-file-parser.cc
│   │   │   │   ├── arpa-file-parser.h
│   │   │   │   ├── arpa-lm-compiler.cc
│   │   │   │   └── arpa-lm-compiler.h
│   │   │   ├── lmbin/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── arpa2fst.cc
│   │   │   └── util/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── basic-filebuf.h
│   │   │       ├── common-utils.h
│   │   │       ├── const-integer-set-inl.h
│   │   │       ├── const-integer-set.h
│   │   │       ├── edit-distance-inl.h
│   │   │       ├── edit-distance.h
│   │   │       ├── hash-list-inl.h
│   │   │       ├── hash-list.h
│   │   │       ├── kaldi-cygwin-io-inl.h
│   │   │       ├── kaldi-holder-inl.h
│   │   │       ├── kaldi-holder.cc
│   │   │       ├── kaldi-holder.h
│   │   │       ├── kaldi-io-inl.h
│   │   │       ├── kaldi-io.cc
│   │   │       ├── kaldi-io.h
│   │   │       ├── kaldi-pipebuf.h
│   │   │       ├── kaldi-semaphore.cc
│   │   │       ├── kaldi-semaphore.h
│   │   │       ├── kaldi-table-inl.h
│   │   │       ├── kaldi-table.cc
│   │   │       ├── kaldi-table.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
│   │   └── vad/
│   │       ├── CMakeLists.txt
│   │       ├── frontend/
│   │       │   └── wav.h
│   │       ├── interface/
│   │       │   ├── CMakeLists.txt
│   │       │   ├── vad_interface.cc
│   │       │   ├── vad_interface.h
│   │       │   └── vad_interface_main.cc
│   │       └── nnet/
│   │           ├── CMakeLists.txt
│   │           ├── vad.cc
│   │           ├── vad.h
│   │           └── vad_nnet_main.cc
│   ├── examples/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── android/
│   │   │   └── VadJni/
│   │   │       ├── .gitignore
│   │   │       ├── app/
│   │   │       │   ├── .gitignore
│   │   │       │   ├── build.gradle
│   │   │       │   ├── libs/
│   │   │       │   │   └── .gitkeep
│   │   │       │   ├── proguard-rules.pro
│   │   │       │   └── src/
│   │   │       │       ├── androidTest/
│   │   │       │       │   └── java/
│   │   │       │       │       └── com/
│   │   │       │       │           └── baidu/
│   │   │       │       │               └── paddlespeech/
│   │   │       │       │                   └── vadjni/
│   │   │       │       │                       └── ExampleInstrumentedTest.java
│   │   │       │       └── main/
│   │   │       │           ├── AndroidManifest.xml
│   │   │       │           ├── assets/
│   │   │       │           │   └── .gitkeep
│   │   │       │           ├── cpp/
│   │   │       │           │   ├── CMakeLists.txt
│   │   │       │           │   ├── native-lib.cpp
│   │   │       │           │   └── vad_interface.h
│   │   │       │           ├── java/
│   │   │       │           │   └── com/
│   │   │       │           │       └── baidu/
│   │   │       │           │           └── paddlespeech/
│   │   │       │           │               └── vadjni/
│   │   │       │           │                   └── MainActivity.java
│   │   │       │           └── res/
│   │   │       │               ├── drawable/
│   │   │       │               │   └── ic_launcher_background.xml
│   │   │       │               ├── drawable-v24/
│   │   │       │               │   └── ic_launcher_foreground.xml
│   │   │       │               ├── layout/
│   │   │       │               │   └── activity_main.xml
│   │   │       │               ├── mipmap-anydpi-v26/
│   │   │       │               │   ├── ic_launcher.xml
│   │   │       │               │   └── ic_launcher_round.xml
│   │   │       │               ├── mipmap-anydpi-v33/
│   │   │       │               │   └── ic_launcher.xml
│   │   │       │               ├── values/
│   │   │       │               │   ├── colors.xml
│   │   │       │               │   ├── strings.xml
│   │   │       │               │   └── themes.xml
│   │   │       │               ├── values-night/
│   │   │       │               │   └── themes.xml
│   │   │       │               └── xml/
│   │   │       │                   ├── backup_rules.xml
│   │   │       │                   └── data_extraction_rules.xml
│   │   │       ├── build.gradle
│   │   │       ├── gradle/
│   │   │       │   └── wrapper/
│   │   │       │       ├── gradle-wrapper.jar
│   │   │       │       └── gradle-wrapper.properties
│   │   │       ├── gradle.properties
│   │   │       ├── gradlew
│   │   │       ├── gradlew.bat
│   │   │       └── settings.gradle
│   │   ├── audio_classification/
│   │   │   ├── README.md
│   │   │   ├── android_demo/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── app/
│   │   │   │   │   ├── .gitignore
│   │   │   │   │   ├── build.gradle
│   │   │   │   │   ├── proguard-rules.pro
│   │   │   │   │   └── src/
│   │   │   │   │       ├── androidTest/
│   │   │   │   │       │   └── java/
│   │   │   │   │       │       └── com/
│   │   │   │   │       │           └── example/
│   │   │   │   │       │               └── cls/
│   │   │   │   │       │                   └── ExampleInstrumentedTest.kt
│   │   │   │   │       └── main/
│   │   │   │   │           ├── AndroidManifest.xml
│   │   │   │   │           ├── cpp/
│   │   │   │   │           │   ├── CMakeLists.txt
│   │   │   │   │           │   ├── includes/
│   │   │   │   │           │   │   └── panns_interface.h
│   │   │   │   │           │   └── native-lib.cpp
│   │   │   │   │           ├── java/
│   │   │   │   │           │   └── com/
│   │   │   │   │           │       └── example/
│   │   │   │   │           │           └── cls/
│   │   │   │   │           │               └── MainActivity.kt
│   │   │   │   │           └── res/
│   │   │   │   │               ├── drawable/
│   │   │   │   │               │   └── ic_launcher_background.xml
│   │   │   │   │               ├── drawable-v24/
│   │   │   │   │               │   └── ic_launcher_foreground.xml
│   │   │   │   │               ├── layout/
│   │   │   │   │               │   └── activity_main.xml
│   │   │   │   │               ├── mipmap-anydpi-v26/
│   │   │   │   │               │   ├── ic_launcher.xml
│   │   │   │   │               │   └── ic_launcher_round.xml
│   │   │   │   │               ├── values/
│   │   │   │   │               │   ├── colors.xml
│   │   │   │   │               │   ├── strings.xml
│   │   │   │   │               │   └── themes.xml
│   │   │   │   │               ├── values-night/
│   │   │   │   │               │   └── themes.xml
│   │   │   │   │               └── xml/
│   │   │   │   │                   ├── backup_rules.xml
│   │   │   │   │                   └── data_extraction_rules.xml
│   │   │   │   ├── build.gradle
│   │   │   │   ├── gradle/
│   │   │   │   │   └── wrapper/
│   │   │   │   │       ├── gradle-wrapper.jar
│   │   │   │   │       └── gradle-wrapper.properties
│   │   │   │   ├── gradle.properties
│   │   │   │   ├── gradlew
│   │   │   │   ├── gradlew.bat
│   │   │   │   └── settings.gradle
│   │   │   ├── conf
│   │   │   ├── label_list
│   │   │   └── scp
│   │   ├── codelab/
│   │   │   ├── README.md
│   │   │   ├── decoder/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── README.md
│   │   │   │   ├── path.sh
│   │   │   │   ├── run.sh
│   │   │   │   └── valgrind.sh
│   │   │   ├── feat/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── README.md
│   │   │   │   ├── path.sh
│   │   │   │   ├── run.sh
│   │   │   │   └── valgrind.sh
│   │   │   ├── nnet/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── README.md
│   │   │   │   ├── path.sh
│   │   │   │   ├── run.sh
│   │   │   │   └── valgrind.sh
│   │   │   └── u2/
│   │   │       ├── .gitignore
│   │   │       ├── README.md
│   │   │       ├── local/
│   │   │       │   ├── decode.sh
│   │   │       │   ├── feat.sh
│   │   │       │   ├── nnet.sh
│   │   │       │   └── recognizer.sh
│   │   │       ├── path.sh
│   │   │       └── run.sh
│   │   ├── custom_asr/
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   ├── compile_lexicon_token_fst.sh
│   │   │   │   ├── mk_slot_graph.sh
│   │   │   │   ├── mk_tlg_with_slot.sh
│   │   │   │   └── train_lm_with_slot.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── text_lm/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   └── mmseg.py
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── u2pp_ol/
│   │   │   ├── README.md
│   │   │   └── wenetspeech/
│   │   │       ├── .gitignore
│   │   │       ├── README.md
│   │   │       ├── RESULTS.md
│   │   │       ├── local/
│   │   │       │   ├── aishell_train_lms.sh
│   │   │       │   ├── decode.sh
│   │   │       │   ├── feat.sh
│   │   │       │   ├── nnet.sh
│   │   │       │   ├── recognizer.sh
│   │   │       │   ├── recognizer_fastdeploy.sh
│   │   │       │   ├── recognizer_quant.sh
│   │   │       │   ├── recognizer_wfst.sh
│   │   │       │   ├── recognizer_wfst_fastdeploy.sh
│   │   │       │   ├── run_build_tlg.sh
│   │   │       │   └── split_data.sh
│   │   │       ├── path.sh
│   │   │       └── run.sh
│   │   └── vad/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── vad.ini
│   │       ├── local/
│   │       │   ├── build.sh
│   │       │   ├── build_android.sh
│   │       │   ├── decode.sh
│   │       │   └── download.sh
│   │       ├── path.sh
│   │       ├── run.sh
│   │       └── vad-android-demo/
│   │           ├── .gradle/
│   │           │   ├── 6.1.1/
│   │           │   │   └── gc.properties
│   │           │   ├── buildOutputCleanup/
│   │           │   │   └── cache.properties
│   │           │   └── vcs-1/
│   │           │       └── gc.properties
│   │           ├── LICENSE.md
│   │           ├── README
│   │           ├── README.md
│   │           ├── build.gradle
│   │           ├── example/
│   │           │   ├── .gitignore
│   │           │   ├── build.gradle
│   │           │   ├── local.properties
│   │           │   ├── proguard-rules.pro
│   │           │   └── src/
│   │           │       ├── androidTest/
│   │           │       │   └── java/
│   │           │       │       └── com/
│   │           │       │           └── konovalov/
│   │           │       │               └── vad/
│   │           │       │                   └── example/
│   │           │       │                       └── ExampleInstrumentedTest.java
│   │           │       └── main/
│   │           │           ├── AndroidManifest.xml
│   │           │           ├── java/
│   │           │           │   └── com/
│   │           │           │       └── konovalov/
│   │           │           │           └── vad/
│   │           │           │               └── example/
│   │           │           │                   ├── MainActivity.java
│   │           │           │                   └── recorder/
│   │           │           │                       ├── VoiceRecorder.java
│   │           │           │                       └── VoiceRecorderConfig.java
│   │           │           └── res/
│   │           │               ├── drawable/
│   │           │               │   └── ic_launcher_background.xml
│   │           │               ├── drawable-v24/
│   │           │               │   └── ic_launcher_foreground.xml
│   │           │               ├── layout/
│   │           │               │   └── activity_main.xml
│   │           │               ├── mipmap-anydpi-v26/
│   │           │               │   ├── ic_launcher.xml
│   │           │               │   └── ic_launcher_round.xml
│   │           │               └── values/
│   │           │                   ├── colors.xml
│   │           │                   ├── strings.xml
│   │           │                   └── styles.xml
│   │           ├── gradle/
│   │           │   └── wrapper/
│   │           │       ├── gradle-wrapper.jar
│   │           │       └── gradle-wrapper.properties
│   │           ├── gradle.properties
│   │           ├── gradlew
│   │           ├── gradlew.bat
│   │           ├── local.properties
│   │           ├── settings.gradle
│   │           └── vad/
│   │               ├── .gitignore
│   │               ├── build.gradle
│   │               ├── consumer-rules.pro
│   │               ├── proguard-rules.pro
│   │               └── src/
│   │                   ├── androidTest/
│   │                   │   └── java/
│   │                   │       └── com/
│   │                   │           └── konovalov/
│   │                   │               └── vad/
│   │                   │                   └── ExampleInstrumentedTest.java
│   │                   └── main/
│   │                       ├── AndroidManifest.xml
│   │                       ├── cpp/
│   │                       │   ├── CMakeLists.txt
│   │                       │   ├── includes/
│   │                       │   │   └── vad_interface.h
│   │                       │   └── native-lib.cpp
│   │                       ├── java/
│   │                       │   └── com/
│   │                       │       └── konovalov/
│   │                       │           └── vad/
│   │                       │               ├── Vad.java
│   │                       │               └── VadListener.java
│   │                       └── res/
│   │                           └── values/
│   │                               └── strings.xml
│   ├── patch/
│   │   ├── CPPLINT.cfg
│   │   ├── README.md
│   │   └── openfst/
│   │       └── src/
│   │           ├── include/
│   │           │   └── fst/
│   │           │       ├── flags.h
│   │           │       └── log.h
│   │           └── lib/
│   │               └── flags.cc
│   └── tools/
│       ├── clang-format.sh
│       ├── setup_valgrind.sh
│       └── venv.sh
├── setup.cfg
├── setup.py
├── tests/
│   ├── benchmark/
│   │   ├── conformer/
│   │   │   ├── README.md
│   │   │   ├── prepare.sh
│   │   │   ├── run.sh
│   │   │   └── run_benchmark.sh
│   │   └── pwgan/
│   │       ├── README.md
│   │       ├── run_all.sh
│   │       └── run_benchmark.sh
│   ├── chains/
│   │   ├── ds2/
│   │   │   ├── README.md
│   │   │   ├── ds2_params_lite_train_infer.txt
│   │   │   ├── ds2_params_whole_train_infer.txt
│   │   │   ├── lite_train_infer.sh
│   │   │   ├── prepare.sh
│   │   │   ├── speedyspeech_params_lite.txt
│   │   │   ├── test.sh
│   │   │   └── whole_train_infer.sh
│   │   └── speedyspeech/
│   │       ├── README.md
│   │       ├── infer.sh
│   │       ├── lite_train_infer.sh
│   │       ├── prepare.sh
│   │       ├── speedyspeech_params_lite_multi_gpu.txt
│   │       ├── speedyspeech_params_lite_single_gpu.txt
│   │       ├── speedyspeech_params_whole_multi_gpu.txt
│   │       ├── speedyspeech_params_whole_single_gpu.txt
│   │       ├── test.sh
│   │       └── whole_train_infer.sh
│   ├── test_tipc/
│   │   ├── barrier.sh
│   │   ├── benchmark_train.sh
│   │   ├── common_func.sh
│   │   ├── configs/
│   │   │   ├── conformer/
│   │   │   │   └── train_infer_python.txt
│   │   │   ├── mdtc/
│   │   │   │   └── train_infer_python.txt
│   │   │   └── pwgan/
│   │   │       └── train_infer_python.txt
│   │   ├── conformer/
│   │   │   └── scripts/
│   │   │       └── aishell_tiny.py
│   │   ├── docs/
│   │   │   └── benchmark_train.md
│   │   ├── prepare.sh
│   │   └── test_train_inference_python.sh
│   └── unit/
│       ├── asr/
│       │   ├── deepspeech2_model_test.py
│       │   ├── deepspeech2_online_model_test.py
│       │   ├── deepspeech2_online_model_test.sh
│       │   ├── error_rate_test.py
│       │   ├── mask_test.py
│       │   ├── reverse_pad_list.py
│       │   └── u2_model_test.py
│       ├── audiotools/
│       │   ├── core/
│       │   │   ├── test_audio_signal.py
│       │   │   ├── test_bands.py
│       │   │   ├── test_display.py
│       │   │   ├── test_dsp.py
│       │   │   ├── test_effects.py
│       │   │   ├── test_fftconv.py
│       │   │   ├── test_grad.py
│       │   │   ├── test_highpass.py
│       │   │   ├── test_loudness.py
│       │   │   ├── test_lowpass.py
│       │   │   └── test_util.py
│       │   ├── data/
│       │   │   ├── test_datasets.py
│       │   │   ├── test_preprocess.py
│       │   │   └── test_transforms.py
│       │   ├── ml/
│       │   │   ├── test_decorators.py
│       │   │   └── test_model.py
│       │   ├── test_audiotools.sh
│       │   └── test_post.py
│       ├── ci.sh
│       ├── cli/
│       │   ├── aishell_test_prepare.py
│       │   ├── calc_RTF_CER_by_aishell.sh
│       │   ├── path.sh
│       │   └── test_cli.sh
│       ├── doc/
│       │   └── test_cli.md
│       ├── server/
│       │   ├── offline/
│       │   │   ├── change_yaml.py
│       │   │   ├── conf/
│       │   │   │   └── application.yaml
│       │   │   └── test_server_client.sh
│       │   └── online/
│       │       └── tts/
│       │           ├── check_server/
│       │           │   ├── change_yaml.py
│       │           │   ├── conf/
│       │           │   │   └── application.yaml
│       │           │   ├── test.sh
│       │           │   ├── test_all.sh
│       │           │   └── tts_online_application.yaml
│       │           └── test_server/
│       │               └── test_http_client.py
│       ├── tts/
│       │   ├── test_data_table.py
│       │   ├── test_enfrontend.py
│       │   ├── test_expansion.py
│       │   ├── test_fftconv1d.py
│       │   ├── test_losses.py
│       │   ├── test_mixfrontend.py
│       │   ├── test_optimizer.py
│       │   ├── test_pwg.py
│       │   ├── test_raise.py
│       │   ├── test_reporter.py
│       │   ├── test_snapshot.py
│       │   ├── test_ssml.py
│       │   ├── test_stft.py
│       │   └── test_to_static.py
│       └── vector/
│           ├── conftest.py
│           └── test_augment.py
├── third_party/
│   ├── README.md
│   ├── __init__.py
│   ├── ctc_decoders/
│   │   ├── .gitignore
│   │   ├── COPYING.APACHE2.0
│   │   ├── COPYING.LESSER.3
│   │   ├── LICENSE
│   │   ├── __init__.py
│   │   ├── ctc_beam_search_decoder.cpp
│   │   ├── ctc_beam_search_decoder.h
│   │   ├── ctc_greedy_decoder.cpp
│   │   ├── ctc_greedy_decoder.h
│   │   ├── decoder_utils.cpp
│   │   ├── decoder_utils.h
│   │   ├── decoders.i
│   │   ├── path_trie.cpp
│   │   ├── path_trie.h
│   │   ├── scorer.cpp
│   │   ├── scorer.h
│   │   ├── setup.py
│   │   └── setup.sh
│   ├── install.sh
│   ├── install_win_ctc.bat
│   └── python_kaldi_features/
│       ├── .gitignore
│       ├── LICENSE
│       ├── MANIFEST
│       ├── README.rst
│       ├── docs/
│       │   ├── Makefile
│       │   ├── make.bat
│       │   └── source/
│       │       ├── conf.py
│       │       └── index.rst
│       ├── example.py
│       ├── python_speech_features/
│       │   ├── __init__.py
│       │   ├── base.py
│       │   ├── base_orig.py
│       │   ├── sigproc.py
│       │   └── sigproc_orig.py
│       ├── requirements.txt
│       ├── setup.py
│       └── test/
│           └── test_sigproc.py
├── tools/
│   ├── Dockerfile
│   ├── Makefile
│   ├── extras/
│   │   ├── README.md
│   │   ├── install_autolog.sh
│   │   ├── install_gcc.sh
│   │   ├── install_kaldi.sh
│   │   ├── install_kenlm.sh
│   │   ├── install_liblbfgs.sh
│   │   ├── install_mfa_v1.sh
│   │   ├── install_mfa_v2.sh
│   │   ├── install_miniconda.sh
│   │   ├── install_mkl.sh
│   │   ├── install_ngram.sh
│   │   ├── install_openblas.sh
│   │   ├── install_openfst.sh
│   │   ├── install_pynini.sh
│   │   ├── install_sclite.sh
│   │   ├── install_soundfile.sh
│   │   ├── install_sox.sh
│   │   ├── install_srilm.sh
│   │   ├── install_venv.sh
│   │   └── srilm.patch
│   ├── get_contributors.ipynb
│   ├── pre_commit.sh
│   ├── release_note.py
│   ├── setup_anaconda.sh
│   └── watermark.py
└── utils/
    ├── DER.py
    ├── README.md
    ├── __init__.py
    ├── addjson.py
    ├── apply-cmvn.py
    ├── avg.sh
    ├── avg_model.py
    ├── build_kenlm_model_from_arpa.sh
    ├── build_vocab.py
    ├── caculate_rtf.py
    ├── compute-cmvn-stats.py
    ├── compute-wer.py
    ├── compute_mean_std.py
    ├── compute_statistics.py
    ├── copy-feats.py
    ├── data2json.sh
    ├── dump.sh
    ├── dump_manifest.py
    ├── duration_from_maniefst.sh
    ├── espnet_json_to_manifest.py
    ├── feat-to-shape.py
    ├── feat_to_shape.sh
    ├── filter.py
    ├── filter_scp.pl
    ├── format_data.py
    ├── format_rsl.py
    ├── format_triplet_data.py
    ├── fst/
    │   ├── add_lex_disambig.pl
    │   ├── compile_lexicon_token_fst.sh
    │   ├── ctc_token_fst.py
    │   ├── ctc_token_fst_corrected.py
    │   ├── eps2disambig.pl
    │   ├── make_lexicon_fst.pl
    │   ├── make_tlg.sh
    │   ├── prepare_dict.py
    │   ├── remove_oovs.pl
    │   ├── rnnt_token_fst.py
    │   └── s2eps.pl
    ├── gen_duration_from_textgrid.py
    ├── generate_infer_yaml.py
    ├── json2trn.py
    ├── link_wav.py
    ├── log.sh
    ├── manifest_key_value.py
    ├── md-eval.pl
    ├── merge_scp2json.py
    ├── ngram_train.sh
    ├── pack_model.sh
    ├── parallel/
    │   └── run.pl
    ├── parse_options.sh
    ├── pd_env_collect.sh
    ├── profile.sh
    ├── reduce_data_dir.sh
    ├── remove_longshortdata.py
    ├── remove_longshortdata.sh
    ├── score_sclite.sh
    ├── scp2json.py
    ├── show_results.sh
    ├── spk2utt_to_utt2spk.pl
    ├── split_data.sh
    ├── split_json.sh
    ├── split_scp.pl
    ├── spm_decode
    ├── spm_encode
    ├── spm_train
    ├── tarball.sh
    ├── text2token.py
    ├── text_to_lexicon.py
    ├── tokenizer.perl
    ├── train_arpa_with_kenlm.sh
    ├── update_json.sh
    ├── utility.sh
    ├── utt2spk_to_spk2utt.pl
    └── zh_tn.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
# This file is used by clang-format to autoformat paddle source code
#
# The clang-format is part of llvm toolchain.
# It need to install llvm and clang to format source code style.
#
# The basic usage is,
#   clang-format -i -style=file PATH/TO/SOURCE/CODE
#
# The -style=file implicit use ".clang-format" file located in one of
# parent directory.
# The -i means inplace change.
#
# The document of clang-format is
#   http://clang.llvm.org/docs/ClangFormat.html
#   http://clang.llvm.org/docs/ClangFormatStyleOptions.html
---
Language:        Cpp
BasedOnStyle:  Google
IndentWidth:     4
TabWidth:        4
ContinuationIndentWidth: 4
MaxEmptyLinesToKeep: 2
AccessModifierOffset: -2  # The private/protected/public has no indent in class
Standard:  Cpp11
AllowAllParametersOfDeclarationOnNextLine: true
BinPackParameters: false
BinPackArguments: false
...



================================================
FILE: .flake8
================================================
[flake8]

########## OPTIONS ##########
# Set the maximum length that any line (with some exceptions) may be.
max-line-length = 120


################### FILE PATTERNS ##########################
# Provide a comma-separated list of glob patterns to exclude from checks.
exclude =
    # git folder
    .git,
    # python cache
    __pycache__,
    # third party
    utils/compute-wer.py,
    third_party/,
# Provide a comma-separate list of glob patterns to include for checks.
filename =
    *.py


########## RULES ##########

# ERROR CODES
#
# E/W  - PEP8 errors/warnings (pycodestyle)
# F    - linting errors (pyflakes)
# C    - McCabe complexity error (mccabe)
#
# W503 - line break before binary operator

# Specify a list of codes to ignore.
ignore =
    W503
    E252,E262,E127,E265,E126,E266,E241,E261,E128,E125,E129
    W291,W293,W605
    E203,E305,E402,E501,E721,E741,F403,F405,F821,F841,F999,W503,W504,C408,E302,W291,E303,
    # shebang has extra meaning in fbcode lints, so I think it's not worth trying
    # to line this up with executable bit
    EXE001,
    # these ignores are from flake8-bugbear; please fix!
    B007,B008,
    # these ignores are from flake8-comprehensions; please fix!
    C400,C401,C402,C403,C404,C405,C407,C411,C413,C414,C415


per-file-ignores =
    */__init__.py: F401

# Specify the list of error codes you wish Flake8 to report.
select =
    E,
    W,
    F,
    C


================================================
FILE: .gitconfig
================================================
[alias]
  st = status
  ci = commit
  br = branch
  co = checkout
  df = diff
  l = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
  ll = log --stat

[merge]
  tool = vimdiff

[core]
  excludesfile = ~/.gitignore
  editor = vim

[color]
  branch = auto
  diff = auto
  status = auto

[color "branch"]
  current = yellow reverse
  local = yellow
  remote = green

[color "diff"]
  meta = yellow bold
  frag = magenta bold
  old = red bold
  new = green bold

[color "status"]
  added = yellow
  changed = green
  untracked = cyan

[push]
  default = matching

[credential]
  helper = store

[user]
  name =
  email =




================================================
FILE: .github/CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
 advances
* Racial or political allusions          
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
 address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
 professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at paddlespeech@baidu.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq


================================================
FILE: .github/CONTRIBUTING.md
================================================
# 💡 paddlespeech 提交代码须知

### Discussed in https://github.com/PaddlePaddle/PaddleSpeech/discussions/1326

<div type='discussions-op-text'>

<sup>Originally posted by **yt605155624** January 12, 2022</sup>
1. 写完代码之后可以用我们的 pre-commit 检查一下代码格式,注意只改自己修改的代码的格式即可,其他的代码有可能也被改了格式,不要 add 就好
```
pip install pre-commit
pre-commit run --file 你修改的代码
```
2. 提交 commit 中增加必要信息跳过不必要的 CI
- 提交 asr 相关代码
```text
git commit -m "xxxxxx, test=asr"
```
- 提交 tts 相关代码
```text
git commit -m "xxxxxx, test=tts"
```
- 仅修改文档
```text
git commit -m "xxxxxx, test=doc"
```
注意:
1. 虽然跳过了 CI,但是还要先排队排到才能跳过,所以非自己方向看到 pending 不要着急 🤣
2. 在 `git commit --amend` 的时候才加 `test=xxx` 可能不太有效
3. 一个 pr 多次提交 commit 注意每次都要加 `test=xxx`,因为每个 commit 都会触发 CI
4. 删除 python 环境中已经安装好的 paddlespeech,否则可能会影响 import paddlespeech 的顺序</div>


================================================
FILE: .github/ISSUE_TEMPLATE/bug-report-s2t.md
================================================
---
name: "\U0001F41B S2T Bug Report"
about: Create a report to help us improve
title: "[S2T]XXXX"
labels: Bug, S2T
assignees: zh794390558

---

For support and discussions, please use our [Discourse forums](https://github.com/PaddlePaddle/DeepSpeech/discussions).

If you've found a bug then please create an issue with the following information:

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Environment (please complete the following information):**
 - OS: [e.g. Ubuntu]
 - GCC/G++ Version [e.g. 8.3]
 - Python Version [e.g. 3.7]
 - PaddlePaddle Version [e.g. 2.0.0]
 - Model Version [e.g. 2.0.0]
 - GPU/DRIVER Information [e.g. Tesla V100-SXM2-32GB/440.64.00]
 - CUDA/CUDNN Version [e.g. cuda-10.2]
 - MKL Version
- TensorRT Version

**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/bug-report-tts.md
================================================
---
name: "\U0001F41B TTS Bug Report"
about: Create a report to help us improve
title: "[TTS]XXXX"
labels: Bug, T2S

---

For support and discussions, please use our [Discourse forums](https://github.com/PaddlePaddle/DeepSpeech/discussions).

If you've found a bug then please create an issue with the following information:

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Environment (please complete the following information):**
 - OS: [e.g. Ubuntu]
 - GCC/G++ Version [e.g. 8.3]
 - Python Version [e.g. 3.7]
 - PaddlePaddle Version [e.g. 2.0.0]
 - Model Version [e.g. 2.0.0]
 - GPU/DRIVER Information [e.g. Tesla V100-SXM2-32GB/440.64.00]
 - CUDA/CUDNN Version [e.g. cuda-10.2]
 - MKL Version
- TensorRT Version

**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.md
================================================
---
name: "\U0001F680 Feature Request"
about: As a user, I want to request a New Feature on the product.
title: ''
labels: feature request
assignees: D-DanielYang, iftaken

---

## Feature Request

**Is your feature request related to a problem? Please describe:**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->

**Describe the feature you'd like:**
<!-- A clear and concise description of what you want to happen. -->

**Describe alternatives you've considered:**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->


================================================
FILE: .github/ISSUE_TEMPLATE/others.md
================================================
---
name: "\U0001F9E9 Others"
about: Report any other non-support related issues.
title: ''
labels: ''
assignees: ''

---

## Others

<!--
你可以在这里提出任何前面几类模板不适用的问题,包括但不限于:优化性建议、框架使用体验反馈、版本兼容性问题、报错信息不清楚等。
You can report any issues that are not applicable to the previous types of templates, including but not limited to: enhancement suggestions, feedback on the use of the framework, version compatibility issues, unclear error information, etc.
-->


================================================
FILE: .github/ISSUE_TEMPLATE/question.md
================================================
---
name: "\U0001F914 Ask a Question"
about: I want to ask a question.
title: ''
labels: Question
assignees: ''

---

## General Question

<!--
Before asking a question, make sure you have:
- Baidu/Google your question.
- Searched open and closed [GitHub issues](https://github.com/PaddlePaddle/PaddleSpeech/issues?q=is%3Aissue)
- Read the documentation:
  - [Readme](https://github.com/PaddlePaddle/PaddleSpeech)
  - [Doc](https://paddlespeech.readthedocs.io/)
-->


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
<!-- Demo: https://github.com/PaddlePaddle/PaddleNLP/pull/26 -->
### PR types
<!-- One of [ New features | Bug fixes | Function optimization | Performance optimization | Breaking changes | Others ] -->

### PR changes
<!-- One of [ Models | APIs | Docs | Others ] -->

### Describe
<!-- Describe what this PR does -->


================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 45 
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 30
# Issues with these labels will never be considered stale
exemptLabels:
  - Roadmap 
  - Bug
  - feature request
  - Tips
# Label to use when marking an issue as stale
staleLabel: Stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
  This issue has been automatically marked as stale because it has not had
  recent activity. It will be closed if no further activity occurs. Thank you
  for your contributions.
unmarkComment: false
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
  This issue is closed. Please re-open if needed.


================================================
FILE: .gitignore
================================================
.DS_Store
*.pyc
.vscode
*.log
*.wav
*.pdmodel
*.pdiparams*
*.zip
*.tar
*.tar.gz
.ipynb_checkpoints
*.npz
*.done
*.whl
*.egg-info
build
*output/
.history
.idea

audio/dist/
audio/fc_patch/

docs/build/
docs/topic/ctc/warp-ctc/

tools/venv
tools/kenlm
tools/sox-14.4.2
tools/soxbindings
tools/montreal-forced-aligner/
tools/Montreal-Forced-Aligner/
tools/sctk
tools/sctk-20159b5/
tools/kaldi
tools/OpenBLAS/
tools/Miniconda3-latest-Linux-x86_64.sh
tools/activate_python.sh
tools/miniconda.sh
tools/CRF++-0.58/
tools/liblbfgs-1.10/
tools/srilm/
tools/env.sh
tools/openfst-1.8.1/
tools/libsndfile/
tools/python-soundfile/
tools/onnx
tools/onnxruntime
tools/Paddle2ONNX
tools/onnx-simplifier/

speechx/fc_patch/

third_party/ctc_decoders/paddlespeech_ctcdecoders.py

kernel_meta/


================================================
FILE: .mergify.yml
================================================
pull_request_rules:
  - name: automatic merge for develop when CI passes and 1 reviews
    conditions:
      - "approved-reviews-by>=1"
      - check-success=Travis CI - Pull Request
      - base=develop
    actions:
      merge:
        method: merge
  - name: delete head branch after merged
    conditions:
      - merged
    actions:
      delete_head_branch: {}
  - name: "add label=auto-merge for PR by mergify"
    conditions:
      - author=mergify[bot]
    actions:
      label:
        add: ["auto-merge"]
  - name: warn on conflicts
    conditions:
      - conflict
    actions:
      comment:
        message: This pull request is now in conflict :(
      label:
        add: ["conflicts"]
  - name: unlabel conflicts
    conditions:
      - -conflict
    actions:
      label:
        remove: ["conflicts"]
  - name: "auto add label=Dataset"
    conditions:
      - files~=^dataset/
    actions:
      label:
        add: ["Dataset"]
  - name: "auto add label=S2T"
    conditions:
      - files~=^paddlespeech/s2t/
    actions:
      label:
        add: ["S2T"]
  - name: "auto add label=T2S"
    conditions:
      - files~=^paddlespeech/t2s/
    actions:
      label:
        add: ["T2S"]
  - name: "auto add label=Audio"
    conditions:
      - files~=^paddlespeech/audio/
    actions:
      label:
        add: ["Audio"]
  - name: "auto add label=Vector"
    conditions:
      - files~=^paddlespeech/vector/
    actions:
      label:
        add: ["Vector"]
  - name: "auto add label=Text"
    conditions:
      - files~=^paddlespeech/text/
    actions:
      label:
        add: ["Text"]
  - name: "auto add label=Example"
    conditions:
      - files~=^examples/
    actions:
      label:
        add: ["Example"]
  - name: "auto add label=CLI"
    conditions:
      - files~=^paddlespeech/cli
    actions:
      label:
        add: ["CLI"]
  - name: "auto add label=Server"
    conditions:
      - files~=^paddlespeech/server
    actions:
      label:
        add: ["Server"]
  - name: "auto add label=Demo"
    conditions:
      - files~=^demos/
    actions:
      label:
        add: ["Demo"]
  - name: "auto add label=README"
    conditions:
      - files~=(README.md|READEME_cn.md)
    actions:
      label:
        add: ["README"]
  - name: "auto add label=Documentation"
    conditions:
      - files~=^(docs/|CHANGELOG.md)
    actions:
      label:
        add: ["Documentation"]
  - name: "auto add label=CI"
    conditions:
      - files~=^(.circleci/|ci/|.github/|.travis.yml|.travis|env.sh)
    actions:
      label:
        add: ["CI"]
  - name: "auto add label=Installation"
    conditions:
      - files~=^(tools/|setup.py|setup.cfg|setup_audio.py)
    actions:
      label:
        add: ["Installation"]
  - name: "auto add label=Test"
    conditions:
      - files~=^(tests/)
    actions:
      label:
        add: ["Test"]
  - name: "auto add label=mergify"
    conditions:
      - files~=^.mergify.yml
    actions:
      label:
        add: ["mergify"]
  - name: "auto add label=Docker"
    conditions:
      - files~=^docker/
    actions:
      label:
        add: ["Docker"]
  - name: "auto add label=Deployment"
    conditions:
      - files~=^runtime/
    actions:
      label:
        add: ["Deployment"]


================================================
FILE: .pre-commit-config.yaml
================================================
repos:
-   repo: https://github.com/pre-commit/mirrors-yapf.git
    rev: v0.16.0
    hooks:
    -   id: yapf
        files: \.py$
        exclude: (?=runtime/engine/kaldi|audio/paddleaudio/src|third_party).*(\.cpp|\.cc|\.h\.hpp|\.py)$

-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: a11d9314b22d8f8c7556443875b731ef05965464
    hooks:
    -   id: check-merge-conflict
    -   id: check-symlinks
    -   id: detect-private-key
        files: (?!.*paddle)^.*$
    -   id: end-of-file-fixer
        files: \.md$
    #-   id: trailing-whitespace
    #    files: \.md$
    -   id: requirements-txt-fixer
        exclude: (?=third_party).*$
    -   id: check-yaml
    -   id: check-json
    -   id: pretty-format-json
        args:
        - --no-sort-keys
        - --autofix
    -   id: check-merge-conflict
      #    -   id: flake8
      #        aergs:
      #        -  --ignore=E501,E228,E226,E261,E266,E128,E402,W503
      #        -  --builtins=G,request
      #        -  --jobs=1
      #        exclude: (?=runtime/engine/kaldi|audio/paddleaudio/src|third_party).*(\.cpp|\.cc|\.h\.hpp|\.py)$

-   repo : https://github.com/Lucas-C/pre-commit-hooks
    rev: v1.0.1
    hooks:
    -   id: forbid-crlf
        files: \.md$
    -   id: remove-crlf
        files: \.md$
    -   id: forbid-tabs
        files: \.md$
    -   id: remove-tabs
        files: \.md$

-   repo: local
    hooks:
    -   id: clang-format
        name: clang-format
        description: Format files with ClangFormat
        entry: bash .pre-commit-hooks/clang-format.hook -i
        language: system
        files: \.(h\+\+|h|hh|hxx|hpp|cuh|c|cc|cpp|cu|c\+\+|cxx|tpp|txx)$
        exclude: (?=runtime/engine/kaldi|audio/paddleaudio/src|runtime/patch|runtime/tools/fstbin|runtime/tools/lmbin|third_party/ctc_decoders|runtime/engine/common/utils).*(\.cpp|\.cc|\.h|\.hpp|\.py)$ 
    -   id: cpplint
        name: cpplint
        description: Static code analysis of C/C++ files
        language: python
        files: \.(h\+\+|h|hh|hxx|hpp|cuh|c|cc|cpp|cu|c\+\+|cxx|tpp|txx)$
        exclude: (?=runtime/engine/kaldi|runtime/engine/common/matrix|audio/paddleaudio/src|runtime/patch|runtime/tools/fstbin|runtime/tools/lmbin|third_party/ctc_decoders|runtime/engine/common/utils).*(\.cpp|\.cc|\.h|\.hpp|\.py)$ 
        entry: cpplint --filter=-build,-whitespace,+whitespace/comma,-whitespace/indent
-   repo: https://github.com/asottile/reorder_python_imports
    rev: v2.4.0
    hooks:
      - id: reorder-python-imports
        exclude: (?=runtime/engine/kaldi|audio/paddleaudio/src|runtime/patch|runtime/tools/fstbin|runtime/tools/lmbin|third_party/ctc_decoders).*(\.cpp|\.cc|\.h\.hpp|\.py)$


================================================
FILE: .pre-commit-hooks/clang-format.hook
================================================
#!/usr/bin/env bash
set -e

readonly VERSION="3.9"

version=$(clang-format -version)

# if ! [[ $version == *"$VERSION"* ]]; then
#     echo "clang-format version check failed."
#     echo "a version contains '$VERSION' is needed, but get '$version'"
#     echo "you can install the right version, and make an soft-link to '\$PATH' env"
#     exit -1
# fi

clang-format $@


================================================
FILE: .pre-commit-hooks/copyright-check.hook
================================================
# Copyright (c) 2020 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 argparse
import io, re
import sys, os
import subprocess
import platform

COPYRIGHT = '''
Copyright (c) 2023 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.
'''

LANG_COMMENT_MARK = None

NEW_LINE_MARK = None

COPYRIGHT_HEADER = None

if platform.system() == "Windows":
    NEW_LINE_MARK = "\r\n"
else:
    NEW_LINE_MARK = '\n'
    COPYRIGHT_HEADER = COPYRIGHT.split(NEW_LINE_MARK)[1]
    p = re.search('(\d{4})', COPYRIGHT_HEADER).group(0)
    process = subprocess.Popen(["date", "+%Y"], stdout=subprocess.PIPE)
    date, err = process.communicate()
    date = date.decode("utf-8").rstrip("\n")
    COPYRIGHT_HEADER = COPYRIGHT_HEADER.replace(p, date)


def generate_copyright(template, lang='C'):
    if lang == 'Python':
        LANG_COMMENT_MARK = '#'
    else:
        LANG_COMMENT_MARK = "//"

    lines = template.split(NEW_LINE_MARK)
    BLANK = " "
    ans = LANG_COMMENT_MARK + BLANK + COPYRIGHT_HEADER + NEW_LINE_MARK
    for lino, line in enumerate(lines):
        if lino == 0 or lino == 1 or lino == len(lines) - 1: continue
        if len(line)  == 0:
            BLANK = ""
        else:
            BLANK = " "
        ans += LANG_COMMENT_MARK + BLANK + line + NEW_LINE_MARK

    return ans + "\n"


def lang_type(filename):
    if filename.endswith(".py"):
        return "Python"
    elif filename.endswith(".h"):
        return "C"
    elif filename.endswith(".c"):
        return "C"
    elif filename.endswith(".hpp"):
        return "C"
    elif filename.endswith(".cc"):
        return "C"
    elif filename.endswith(".cpp"):
        return "C"
    elif filename.endswith(".cu"):
        return "C"
    elif filename.endswith(".cuh"):
        return "C"
    elif filename.endswith(".go"):
        return "C"
    elif filename.endswith(".proto"):
        return "C"
    else:
        print("Unsupported filetype %s", filename)
        exit(0)


PYTHON_ENCODE = re.compile("^[ \t\v]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)")


def main(argv=None):
    parser = argparse.ArgumentParser(
        description='Checker for copyright declaration.')
    parser.add_argument('filenames', nargs='*', help='Filenames to check')
    args = parser.parse_args(argv)

    retv = 0
    for filename in args.filenames:
        fd = io.open(filename, encoding="utf-8")
        first_line = fd.readline()
        second_line = fd.readline()
        if "COPYRIGHT (C)" in first_line.upper(): continue
        if first_line.startswith("#!") or PYTHON_ENCODE.match(
                second_line) != None or PYTHON_ENCODE.match(first_line) != None:
            continue
        original_contents = io.open(filename, encoding="utf-8").read()
        new_contents = generate_copyright(
            COPYRIGHT, lang_type(filename)) + original_contents
        print('Auto Insert Copyright Header {}'.format(filename))
        retv = 1
        with io.open(filename, 'w') as output_file:
            output_file.write(new_contents)

    return retv


if __name__ == '__main__':
    exit(main())


================================================
FILE: .readthedocs.yml
================================================
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Build documentation in the docs/ directory with Sphinx
sphinx:
  configuration: docs/source/conf.py

# Build documentation with MkDocs
#mkdocs:
#  configuration: mkdocs.yml

# Optionally build your docs in additional formats such as PDF
formats: []

# Optionally set the version of Python and requirements required to build your docs
python:
  version: 3.7
  install:
    - requirements: docs/requirements.txt
    - method: setuptools
      path: .
  system_packages: true


================================================
FILE: .style.yapf
================================================
[style]
based_on_style = pep8
column_limit = 80


================================================
FILE: .travis.yml
================================================
language: cpp
cache: ccache
sudo: required
dist: Bionic 
services:
  - docker
os:
  - linux
env:
  - JOB=PRE_COMMIT

addons:
  apt:
    packages:
      - git
      - python3-pip
      - python3-dev

before_install:
  -  python3 --version
  -  python3 -m pip --version
  -  pip3 --version
  -  sudo pip3 install -U virtualenv pre-commit pip
  -  docker pull paddlepaddle/paddle:latest

script:
  - exit_code=0
  - docker run -i --rm -v "$PWD:/py_unittest" paddlepaddle/paddle:latest /bin/bash -c
    'cd /py_unittest && bash .travis/precommit.sh && source env.sh && bash .travis/unittest.sh' || exit_code=$(( exit_code | $? ))
    exit $exit_code

notifications:
  email:
    on_success: change
    on_failure: always


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   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.


================================================
FILE: MANIFEST.in
================================================
include paddlespeech/t2s/exps/*.txt
include paddlespeech/t2s/frontend/*.yaml

================================================
FILE: README.md
================================================
([简体中文](./README_cn.md)|English)
<p align="center">
  <img src="./docs/images/PaddleSpeech_logo.png" />
</p>

<p align="center">
    <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache%202-red.svg"></a>
    <a href="https://github.com/PaddlePaddle/PaddleSpeech/releases"><img src="https://img.shields.io/github/v/release/PaddlePaddle/PaddleSpeech?color=ffa"></a>
    <a href="support os"><img src="https://img.shields.io/badge/os-linux%2C%20win%2C%20mac-pink.svg"></a>
    <a href=""><img src="https://img.shields.io/badge/python-3.8+-aff.svg"></a>
    <a href="https://github.com/PaddlePaddle/PaddleSpeech/graphs/contributors"><img src="https://img.shields.io/github/contributors/PaddlePaddle/PaddleSpeech?color=9ea"></a>
    <a href="https://github.com/PaddlePaddle/PaddleSpeech/commits"><img src="https://img.shields.io/github/commit-activity/m/PaddlePaddle/PaddleSpeech?color=3af"></a>
    <a href="https://github.com/PaddlePaddle/PaddleSpeech/issues"><img src="https://img.shields.io/github/issues/PaddlePaddle/PaddleSpeech?color=9cc"></a>
    <a href="https://github.com/PaddlePaddle/PaddleSpeech/stargazers"><img src="https://img.shields.io/github/stars/PaddlePaddle/PaddleSpeech?color=ccf"></a>
    <a href="=https://pypi.org/project/paddlespeech/"><img src="https://img.shields.io/pypi/dm/PaddleSpeech"></a>
    <a href="=https://pypi.org/project/paddlespeech/"><img src="https://static.pepy.tech/badge/paddlespeech"></a>
    <a href="https://huggingface.co/spaces"><img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-blue"></a>
</p>
<div align="center">  
<h4>
    <a href="#quick-start"> Quick Start </a>
  | <a href="#documents"> Documents </a>
  | <a href="#model-list"> Models List </a>
  | <a href="https://aistudio.baidu.com/aistudio/course/introduce/25130"> AIStudio Courses </a>
  | <a href="https://arxiv.org/abs/2205.12007"> NAACL2022 Best Demo Award Paper </a>
  | <a href="https://gitee.com/paddlepaddle/PaddleSpeech"> Gitee </a>
</h4>
</div>

------------------------------------------------------------------------------------

**PaddleSpeech** is an open-source toolkit on [PaddlePaddle](https://github.com/PaddlePaddle/Paddle) platform for a variety of critical tasks in speech and audio, with the state-of-art and influential models. 

**PaddleSpeech** won the [NAACL2022 Best Demo Award](https://2022.naacl.org/blog/best-demo-award/), please check out our paper on [Arxiv](https://arxiv.org/abs/2205.12007).

##### Speech Recognition

<div align = "center">
<table style="width:100%">
  <thead>
    <tr>
      <th> Input Audio  </th>
      <th width="550"> Recognition Result  </th>
    </tr>
  </thead>
  <tbody>
   <tr>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/PaddleAudio/en.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200 style="max-width: 100%;"></a><br>
      </td>
      <td >I knocked at the door on the ancient side of the building.</td>
    </tr>
    <tr>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/PaddleAudio/zh.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
      <td>我认为跑步最重要的就是给我带来了身体健康。</td>
    </tr>
  </tbody>
</table>

</div>

##### Speech Translation (English to Chinese)

<div align = "center">
<table style="width:100%">
  <thead>
    <tr>
      <th> Input Audio  </th>
      <th width="550"> Translations Result  </th>
    </tr>
  </thead>
  <tbody>
   <tr>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/PaddleAudio/en.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200 style="max-width: 100%;"></a><br>
      </td>
      <td >我 在 这栋 建筑 的 古老 门上 敲门。</td>
    </tr>
  </tbody>
</table>

</div>

##### Text-to-Speech
<div align = "center">
<table style="width:100%">
  <thead>
    <tr>
      <th width="550" > Input Text</th>
      <th>Synthetic Audio</th>
    </tr>
  </thead>
  <tbody>
   <tr>
      <td>Life was like a box of chocolates, you never know what you're gonna get.</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/tacotron2_ljspeech_waveflow_samples_0.2/sentence_1.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
    <tr>
      <td>早上好,今天是2020/10/29,最低温度是-3°C。</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/parakeet_espnet_fs2_pwg_demo/tn_g2p/parakeet/001.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
    <tr>
      <td>季姬寂,集鸡,鸡即棘鸡。棘鸡饥叽,季姬及箕稷济鸡。鸡既济,跻姬笈,季姬忌,急咭鸡,鸡急,继圾几,季姬急,即籍箕击鸡,箕疾击几伎,伎即齑,鸡叽集几基,季姬急极屐击鸡,鸡既殛,季姬激,即记《季姬击鸡记》。</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/jijiji.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
    <tr>
      <td>大家好,我是 parrot 虚拟老师,我们来读一首诗,我与春风皆过客,I and the spring breeze are passing by,你携秋水揽星河,you take the autumn water to take the galaxy。</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/labixiaoxin.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
    <tr>
      <td>宜家唔系事必要你讲,但系你所讲嘅说话将会变成呈堂证供。</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/chengtangzhenggong.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
    <tr>
      <td>各个国家有各个国家嘅国歌</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/gegege.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
  </tbody>
</table>

</div>

For more synthesized audios, please refer to [PaddleSpeech Text-to-Speech samples](https://paddlespeech.readthedocs.io/en/latest/tts/demo.html).

##### Punctuation Restoration
<div align = "center">
<table style="width:100%">
  <thead>
    <tr>
      <th width="390"> Input Text </th>
      <th width="390"> Output Text </th>
    </tr>
  </thead>
  <tbody>
   <tr>
      <td>今天的天气真不错啊你下午有空吗我想约你一起去吃饭</td>
      <td>今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。</td>
    </tr>
  </tbody>
</table>

</div>


### Features

Via the easy-to-use, efficient, flexible and scalable implementation, our vision is to empower both industrial application and academic research, including training, inference & testing modules, and deployment process. To be more specific, this toolkit features at:
- 📦  **Ease of Use**: low barriers to install, [CLI](#quick-start), [Server](#quick-start-server), and [Streaming Server](#quick-start-streaming-server) is available to quick-start your journey.
- 🏆  **Align to the State-of-the-Art**: we provide high-speed and ultra-lightweight models, and also cutting-edge technology. 
- 🏆  **Streaming ASR and TTS System**: we provide production ready streaming asr and streaming tts system.
- 💯  **Rule-based Chinese frontend**: our frontend contains Text Normalization and Grapheme-to-Phoneme (G2P, including Polyphone and Tone Sandhi). Moreover, we use self-defined linguistic rules to adapt Chinese context.
- 📦  **Varieties of Functions that Vitalize both Industrial and Academia**:
  - 🛎️  *Implementation of critical audio tasks*: this toolkit contains audio functions like  Automatic Speech Recognition, Text-to-Speech Synthesis, Speaker Verification, KeyWord Spotting, Audio Classification, and Speech Translation, etc.
  - 🔬  *Integration of mainstream models and datasets*: the toolkit implements modules that participate in the whole pipeline of the speech tasks, and uses mainstream datasets like LibriSpeech, LJSpeech, AIShell, CSMSC, etc. See also [model list](#model-list) for more details.
  - 🧩  *Cascaded models application*: as an extension of the typical traditional audio tasks, we combine the workflows of the aforementioned tasks with other fields like Natural language processing (NLP) and Computer Vision (CV).

### Recent Update
- 🎉 2025.09.01: Add [Whisper large v3 and turbo model](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/demos/whisper).
- 🤗 2025.08.11: Add [code-switch online model and server demo](./examples/tal_cs/asr1/).
- 👑 2023.05.31: Add [WavLM ASR-en](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/examples/librispeech/asr5), WavLM fine-tuning for ASR on LibriSpeech.
- 🎉 2023.05.18: Add [Squeezeformer](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/aishell/asr1), Squeezeformer training for ASR on Aishell.
- 👑 2023.05.04: Add [HuBERT ASR-en](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/examples/librispeech/asr4), HuBERT fine-tuning for ASR on LibriSpeech.
- ⚡ 2023.04.28: Fix [0-d tensor](https://github.com/PaddlePaddle/PaddleSpeech/pull/3214), with the upgrade of paddlepaddle==2.5, the problem of modifying 0-d tensor has been solved.
- 👑 2023.04.25: Add [AMP for U2 conformer](https://github.com/PaddlePaddle/PaddleSpeech/pull/3167).
- 🔥 2023.04.06: Add [subtitle file (.srt format) generation example](./demos/streaming_asr_server).
- 🔥 2023.03.14: Add SVS(Singing Voice Synthesis) examples with Opencpop dataset, including [DiffSinger](./examples/opencpop/svs1)、[PWGAN](./examples/opencpop/voc1) and [HiFiGAN](./examples/opencpop/voc5), the effect is continuously optimized.
- 👑 2023.03.09: Add [Wav2vec2ASR-zh](./examples/aishell/asr3).
- 🎉 2023.03.07: Add [TTS ARM Linux C++ Demo (with C++ Chinese Text Frontend)](./demos/TTSArmLinux).
- 🔥 2023.03.03 Add Voice Conversion [StarGANv2-VC synthesize pipeline](./examples/vctk/vc3).
- 🎉 2023.02.16: Add [Cantonese TTS](./examples/canton/tts3).
- 🔥 2023.01.10: Add [code-switch asr CLI and Demos](./demos/speech_recognition).
- 👑 2023.01.06: Add [code-switch asr tal_cs recipe](./examples/tal_cs/asr1/).
- 🎉 2022.12.02: Add [end-to-end Prosody Prediction pipeline](./examples/csmsc/tts3_rhy) (including using prosody labels in Acoustic Model).
- 🎉 2022.11.30: Add [TTS Android Demo](./demos/TTSAndroid).
- 🤗 2022.11.28: PP-TTS and PP-ASR demos are available in [AIStudio](https://aistudio.baidu.com/aistudio/modelsoverview) and [official website
 of paddlepaddle](https://www.paddlepaddle.org.cn/models).
- 👑 2022.11.18: Add [Whisper CLI and Demos](https://github.com/PaddlePaddle/PaddleSpeech/pull/2640), support multi language recognition and translation.
- 🔥 2022.11.18: Add [Wav2vec2 CLI and Demos](./demos/speech_ssl), Support ASR and Feature Extraction.
- 🎉 2022.11.17: Add [male voice for TTS](https://github.com/PaddlePaddle/PaddleSpeech/pull/2660).
- 🔥 2022.11.07: Add [U2/U2++ C++ High Performance Streaming ASR Deployment](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/runtime/examples/u2pp_ol/wenetspeech).
- 👑 2022.11.01: Add [Adversarial Loss](https://arxiv.org/pdf/1907.04448.pdf) for [Chinese English mixed TTS](./examples/zh_en_tts/tts3).
- 🔥 2022.10.26: Add [Prosody Prediction](./examples/other/rhy) for TTS.
- 🎉 2022.10.21: Add [SSML](https://github.com/PaddlePaddle/PaddleSpeech/discussions/2538) for TTS Chinese Text Frontend.
- 👑 2022.10.11: Add [Wav2vec2ASR-en](./examples/librispeech/asr3), wav2vec2.0 fine-tuning for ASR on LibriSpeech.
- 🔥 2022.09.26: Add Voice Cloning, TTS finetune, and [ERNIE-SAT](https://arxiv.org/abs/2211.03545) in [PaddleSpeech Web Demo](./demos/speech_web).
- ⚡ 2022.09.09: Add AISHELL-3 Voice Cloning [example](./examples/aishell3/vc2) with ECAPA-TDNN speaker encoder.
- ⚡ 2022.08.25: Release TTS [finetune](./examples/other/tts_finetune/tts3) example.
- 🔥 2022.08.22: Add [ERNIE-SAT](https://arxiv.org/abs/2211.03545) models: [ERNIE-SAT-vctk](./examples/vctk/ernie_sat)、[ERNIE-SAT-aishell3](./examples/aishell3/ernie_sat)、[ERNIE-SAT-zh_en](./examples/aishell3_vctk/ernie_sat).
- 🔥 2022.08.15: Add [g2pW](https://github.com/GitYCC/g2pW) into TTS Chinese Text Frontend.
- 🔥 2022.08.09: Release [Chinese English mixed TTS](./examples/zh_en_tts/tts3).
- ⚡ 2022.08.03: Add ONNXRuntime infer for  TTS CLI.
- 🎉 2022.07.18: Release VITS: [VITS-csmsc](./examples/csmsc/vits)、[VITS-aishell3](./examples/aishell3/vits)、[VITS-VC](./examples/aishell3/vits-vc).
- 🎉 2022.06.22: All TTS models support ONNX format.
- 🍀 2022.06.17: Add [PaddleSpeech Web Demo](./demos/speech_web).
- 👑 2022.05.13: Release [PP-ASR](./docs/source/asr/PPASR.md)、[PP-TTS](./docs/source/tts/PPTTS.md)、[PP-VPR](docs/source/vpr/PPVPR.md).
- 👏🏻 2022.05.06: `PaddleSpeech Streaming Server` is available for `Streaming ASR` with `Punctuation Restoration` and `Token Timestamp` and `Text-to-Speech`.
- 👏🏻 2022.05.06: `PaddleSpeech Server` is available for `Audio Classification`, `Automatic Speech Recognition` and `Text-to-Speech`, `Speaker Verification` and `Punctuation Restoration`.
- 👏🏻 2022.03.28: `PaddleSpeech CLI` is available for `Speaker Verification`.
- 👏🏻 2021.12.10: `PaddleSpeech CLI` is available for `Audio Classification`, `Automatic Speech Recognition`, `Speech Translation (English to Chinese)` and `Text-to-Speech`.

### Community
- Scan the QR code below with your Wechat, you can access to official technical exchange group and get the bonus ( more than 20GB learning materials, such as papers, codes and videos ) and the live link of the lessons. Look forward to your participation.

<div align="center">
<img src="https://user-images.githubusercontent.com/30135920/212860467-9e943cc3-8be8-49a4-97fd-7c94aad8e979.jpg"  width = "200"  />
</div>

## Installation

We strongly recommend our users to install PaddleSpeech in **Linux** with *python>=3.8*. 

### **Dependency Introduction**

+ gcc >= 4.8.5
+ paddlepaddle
+ python >= 3.8
+ OS support:  Linux(recommend), Windows, Mac OSX

PaddleSpeech depends on paddlepaddle. For installation, please refer to the official website of [paddlepaddle](https://www.paddlepaddle.org.cn/en) and choose according to your own machine. Here is an example of the cpu version.

```bash
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
```
You can also specify the version of paddlepaddle or install the develop version. 
```bash
# install 2.4.1 version. Note, 2.4.1 is just an example, please follow the minimum dependency of paddlepaddle for your selection
pip install paddlepaddle==2.4.1 -i https://mirror.baidu.com/pypi/simple
# install develop version
pip install paddlepaddle==0.0.0 -f https://www.paddlepaddle.org.cn/whl/linux/cpu-mkl/develop.html
```

There are two quick installation methods for PaddleSpeech, one is pip installation, and the other is source code compilation (recommended).
### pip install

```shell
pip install pytest-runner
pip install paddlespeech
```

### source code compilation

```shell
git clone https://github.com/PaddlePaddle/PaddleSpeech.git
cd PaddleSpeech
pip install pytest-runner
pip install .
# If you need to install in editable mode, you need to use --use-pep517. The command is as follows:
# pip install -e . --use-pep517
```

For more installation problems, such as conda environment, librosa-dependent, gcc problems, kaldi installation, etc., you can refer to this [installation document](./docs/source/install.md). If you encounter problems during installation, you can leave a message on [#2150](https://github.com/PaddlePaddle/PaddleSpeech/issues/2150) and find related problems


<a name="quickstart"></a>
## Quick Start

Developers can have a try of our models with [PaddleSpeech Command Line](./paddlespeech/cli/README.md) or Python. Change `--input` to test your own audio/text and support 16k wav format audio.

**You can also quickly experience it in AI Studio 👉🏻 [PaddleSpeech API Demo](https://aistudio.baidu.com/aistudio/projectdetail/4353348?sUid=2470186&shared=1&ts=1660876445786)**


Test audio sample download

```shell
wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/zh.wav
wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/en.wav
```

### Automatic Speech Recognition

<details><summary>&emsp;(Click to expand)Open Source Speech Recognition</summary>

**command line experience**

```shell
paddlespeech asr --lang zh --input zh.wav
```

**Python API experience**

```python
>>> from paddlespeech.cli.asr.infer import ASRExecutor
>>> asr = ASRExecutor()
>>> result = asr(audio_file="zh.wav")
>>> print(result)
我认为跑步最重要的就是给我带来了身体健康
```
</details>

### Text-to-Speech

<details><summary>&emsp;Open Source Speech Synthesis</summary>

Output 24k sample rate wav format audio


**command line experience**

```shell
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav
```

**Python API experience**

```python
>>> from paddlespeech.cli.tts.infer import TTSExecutor
>>> tts = TTSExecutor()
>>> tts(text="今天天气十分不错。", output="output.wav")
```
- You can experience in [Huggingface Spaces](https://huggingface.co/spaces) [TTS Demo](https://huggingface.co/spaces/KPatrick/PaddleSpeechTTS)

</details>

### Audio Classification

<details><summary>&emsp;An open-domain sound classification tool</summary>

Sound classification model based on 527 categories of AudioSet dataset

**command line experience**

```shell
paddlespeech cls --input zh.wav
```

**Python API experience**

```python
>>> from paddlespeech.cli.cls.infer import CLSExecutor
>>> cls = CLSExecutor()
>>> result = cls(audio_file="zh.wav")
>>> print(result)
Speech 0.9027186632156372
```

</details>

### Voiceprint Extraction

<details><summary>&emsp;Industrial-grade voiceprint extraction tool</summary>

**command line experience**

```shell
paddlespeech vector --task spk --input zh.wav
```

**Python API experience**

```python
>>> from paddlespeech.cli.vector import VectorExecutor
>>> vec = VectorExecutor()
>>> result = vec(audio_file="zh.wav")
>>> print(result) # 187维向量
[ -0.19083306   9.474295   -14.122263    -2.0916545    0.04848729
   4.9295826    1.4780062    0.3733844   10.695862     3.2697146
  -4.48199     -0.6617882   -9.170393   -11.1568775   -1.2358263 ...]
```

</details>

### Punctuation Restoration

<details><summary>&emsp;Quick recovery of text punctuation, works with ASR models</summary>

**command line experience**

```shell
paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭
```

**Python API experience**

```python
>>> from paddlespeech.cli.text.infer import TextExecutor
>>> text_punc = TextExecutor()
>>> result = text_punc(text="今天的天气真不错啊你下午有空吗我想约你一起去吃饭")
今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。
```

</details>

### Speech Translation

<details><summary>&emsp;End-to-end English to Chinese Speech Translation Tool</summary>

Use pre-compiled kaldi related tools, only support experience in Ubuntu system

**command line experience**

```shell
paddlespeech st --input en.wav
```

**Python API experience**

```python
>>> from paddlespeech.cli.st.infer import STExecutor
>>> st = STExecutor()
>>> result = st(audio_file="en.wav")
['我 在 这栋 建筑 的 古老 门上 敲门 。']
```

</details>


<a name="quickstartserver"></a>
## Quick Start Server

Developers can have a try of our speech server with [PaddleSpeech Server Command Line](./paddlespeech/server/README.md).

**You can try it quickly in AI Studio (recommend): [SpeechServer](https://aistudio.baidu.com/aistudio/projectdetail/4354592?sUid=2470186&shared=1&ts=1660877827034)**

**Start server**     

```shell
paddlespeech_server start --config_file ./demos/speech_server/conf/application.yaml
```

**Access Speech Recognition Services**     

```shell
paddlespeech_client asr --server_ip 127.0.0.1 --port 8090 --input input_16k.wav
```

**Access Text to Speech Services**     

```shell
paddlespeech_client tts --server_ip 127.0.0.1 --port 8090 --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav
```

**Access Audio Classification Services**     
```shell
paddlespeech_client cls --server_ip 127.0.0.1 --port 8090 --input input.wav
```


For more information about server command lines, please see: [speech server demos](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/demos/speech_server)


<a name="quickstartstreamingserver"></a>
## Quick Start Streaming Server

Developers can have a try of  [streaming asr](./demos/streaming_asr_server/README.md) and [streaming tts](./demos/streaming_tts_server/README.md) server.

**Start Streaming Speech Recognition Server**

```
paddlespeech_server start --config_file ./demos/streaming_asr_server/conf/application.yaml
```

**Access Streaming Speech Recognition Services**     

```
paddlespeech_client asr_online --server_ip 127.0.0.1 --port 8090 --input input_16k.wav
```

**Start Streaming Text to Speech  Server**

```
paddlespeech_server start --config_file ./demos/streaming_tts_server/conf/tts_online_application.yaml
```

**Access Streaming Text to Speech Services**     

```
paddlespeech_client tts_online --server_ip 127.0.0.1 --port 8092 --protocol http --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav
```

For more information please see:  [streaming asr](./demos/streaming_asr_server/README.md) and [streaming tts](./demos/streaming_tts_server/README.md) 

<a name="ModelList"></a>

## Model List

PaddleSpeech supports a series of most popular models. They are summarized in [released models](./docs/source/released_model.md) and attached with available pretrained models.

<a name="SpeechToText"></a>

**Speech-to-Text** contains *Acoustic Model*, *Language Model*, and *Speech Translation*, with the following details:

<table style="width:100%">
  <thead>
    <tr>
      <th>Speech-to-Text Module Type</th>
      <th>Dataset</th>
      <th>Model Type</th>
      <th>Example</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td rowspan="4">Speech Recogination</td>
      <td rowspan="2" >Aishell</td>
      <td >DeepSpeech2 RNN + Conv based Models</td>
      <td>
      <a href = "./examples/aishell/asr0">deepspeech2-aishell</a>
      </td>
    </tr>
    <tr>
      <td>Transformer based Attention Models </td>
      <td>
      <a href = "./examples/aishell/asr1">u2.transformer.conformer-aishell</a>
      </td>
    </tr>
    <tr>
      <td> Librispeech</td>
      <td>Transformer based Attention Models </td>
      <td>
      <a href = "./examples/librispeech/asr0">deepspeech2-librispeech</a> / <a href = "./examples/librispeech/asr1">transformer.conformer.u2-librispeech</a>  / <a href = "./examples/librispeech/asr2">transformer.conformer.u2-kaldi-librispeech</a>
      </td>
      </td>
    </tr>
  <tr>
      <td>TIMIT</td>
      <td>Unified Streaming & Non-streaming Two-pass</td>
      <td>
    <a href = "./examples/timit/asr1"> u2-timit</a>
      </td>
  </tr>
  <tr>
  <td>Alignment</td>
  <td>THCHS30</td>
  <td>MFA</td>
  <td>
  <a href = ".examples/thchs30/align0">mfa-thchs30</a>
  </td>
  </tr>
   <tr>
      <td rowspan="1">Language Model</td>
      <td colspan = "2">Ngram Language Model</td>
      <td>
      <a href = "./examples/other/ngram_lm">kenlm</a>
      </td>
    </tr>
  <tr>
      <td rowspan="2">Speech Translation (English to Chinese)</td> 
      <td rowspan="2">TED En-Zh</td>
      <td>Transformer + ASR MTL</td>
      <td>
      <a href = "./examples/ted_en_zh/st0">transformer-ted</a>
      </td>
  </tr>
  <tr>
      <td>FAT + Transformer + ASR MTL</td>
      <td>
      <a href = "./examples/ted_en_zh/st1">fat-st-ted</a>
      </td>
  </tr>
  </tbody>
</table>

<a name="TextToSpeech"></a>

**Text-to-Speech** in PaddleSpeech mainly contains three modules: *Text Frontend*, *Acoustic Model* and *Vocoder*. Acoustic Model and Vocoder models are listed as follow:

<table>
  <thead>
    <tr>
      <th> Text-to-Speech Module Type </th>
      <th> Model Type </th>
      <th> Dataset </th>
      <th> Example </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td> Text Frontend </td>
      <td colspan="2"> &emsp; </td>
      <td>
      <a href = "./examples/other/tn">tn</a> / <a href = "./examples/other/g2p">g2p</a>
      </td>
    </tr>
    <tr>
      <td rowspan="6">Acoustic Model</td>
      <td>Tacotron2</td>
      <td>LJSpeech / CSMSC</td>
      <td>
      <a href = "./examples/ljspeech/tts0">tacotron2-ljspeech</a> / <a href = "./examples/csmsc/tts0">tacotron2-csmsc</a>
      </td>
    </tr>
    <tr>
      <td>Transformer TTS</td>
      <td>LJSpeech</td>
      <td>
      <a href = "./examples/ljspeech/tts1">transformer-ljspeech</a>
      </td>
    </tr>
    <tr>
      <td>SpeedySpeech</td>
      <td>CSMSC</td>
      <td >
      <a href = "./examples/csmsc/tts2">speedyspeech-csmsc</a>
      </td>
    </tr>
    <tr>
      <td>FastSpeech2</td>
      <td>LJSpeech / VCTK / CSMSC / AISHELL-3 / ZH_EN / finetune</td>
      <td>
      <a href = "./examples/ljspeech/tts3">fastspeech2-ljspeech</a> / <a href = "./examples/vctk/tts3">fastspeech2-vctk</a> / <a href = "./examples/csmsc/tts3">fastspeech2-csmsc</a> / <a href = "./examples/aishell3/tts3">fastspeech2-aishell3</a> / <a href = "./examples/zh_en_tts/tts3">fastspeech2-zh_en</a> / <a href = "./examples/other/tts_finetune/tts3">fastspeech2-finetune</a>
      </td>
    </tr>
    <tr>
      <td><a href = "https://arxiv.org/abs/2211.03545">ERNIE-SAT</a></td>
      <td>VCTK / AISHELL-3 / ZH_EN</td>
      <td>
      <a href = "./examples/vctk/ernie_sat">ERNIE-SAT-vctk</a> / <a href = "./examples/aishell3/ernie_sat">ERNIE-SAT-aishell3</a> / <a href = "./examples/aishell3_vctk/ernie_sat">ERNIE-SAT-zh_en</a>
      </td>
    </tr>
    <tr>
      <td>DiffSinger</td>
      <td>Opencpop</td>
      <td>
      <a href = "./examples/opencpop/svs1">DiffSinger-opencpop</a>
      </td>
   </tr>
   <tr>
      <td rowspan="6">Vocoder</td>
      <td >WaveFlow</td>
      <td >LJSpeech</td>
      <td>
      <a href = "./examples/ljspeech/voc0">waveflow-ljspeech</a>
      </td>
    </tr>
    <tr>
      <td >Parallel WaveGAN</td>
      <td >LJSpeech / VCTK / CSMSC / AISHELL-3 / Opencpop</td>
      <td>
      <a href = "./examples/ljspeech/voc1">PWGAN-ljspeech</a> / <a href = "./examples/vctk/voc1">PWGAN-vctk</a> / <a href = "./examples/csmsc/voc1">PWGAN-csmsc</a> /  <a href = "./examples/aishell3/voc1">PWGAN-aishell3</a> / <a href = "./examples/opencpop/voc1">PWGAN-opencpop</a>
      </td>
    </tr>
    <tr>
      <td >Multi Band MelGAN</td>
      <td >CSMSC</td>
      <td>
      <a href = "./examples/csmsc/voc3">Multi Band MelGAN-csmsc</a> 
      </td>
    </tr> 
    <tr>
      <td >Style MelGAN</td>
      <td >CSMSC</td>
      <td>
      <a href = "./examples/csmsc/voc4">Style MelGAN-csmsc</a> 
      </td>
    </tr>
    <tr>
      <td>HiFiGAN</td>
      <td>LJSpeech / VCTK / CSMSC / AISHELL-3 / Opencpop</td>
      <td>
      <a href = "./examples/ljspeech/voc5">HiFiGAN-ljspeech</a> / <a href = "./examples/vctk/voc5">HiFiGAN-vctk</a> / <a href = "./examples/csmsc/voc5">HiFiGAN-csmsc</a> / <a href = "./examples/aishell3/voc5">HiFiGAN-aishell3</a> / <a href = "./examples/opencpop/voc5">HiFiGAN-opencpop</a>
      </td>
    </tr>
    <tr>
      <td>WaveRNN</td>
      <td>CSMSC</td>
      <td>
      <a href = "./examples/csmsc/voc6">WaveRNN-csmsc</a>
      </td>
    </tr>
    <tr>
      <td rowspan="5">Voice Cloning</td>
      <td>GE2E</td>
      <td >Librispeech, etc.</td>
      <td>
      <a href = "./examples/other/ge2e">GE2E</a>
      </td>
    </tr>
    <tr>
      <td>SV2TTS (GE2E + Tacotron2)</td>
      <td>AISHELL-3</td>
      <td>
      <a href = "./examples/aishell3/vc0">VC0</a>
      </td>
    </tr>
    <tr>
      <td>SV2TTS (GE2E + FastSpeech2)</td>
      <td>AISHELL-3</td>
      <td>
      <a href = "./examples/aishell3/vc1">VC1</a>
      </td>
    </tr>
    <tr>
      <td>SV2TTS (ECAPA-TDNN + FastSpeech2)</td>
      <td>AISHELL-3</td>
      <td>
      <a href = "./examples/aishell3/vc2">VC2</a>
      </td>
    </tr>
    <tr>
      <td>GE2E + VITS</td>
      <td>AISHELL-3</td>
      <td>
      <a href = "./examples/aishell3/vits-vc">VITS-VC</a>
      </td>
    </tr>
    <tr>
      <td rowspan="3">End-to-End</td>
      <td>VITS</td>
      <td>CSMSC / AISHELL-3</td>
      <td>
      <a href = "./examples/csmsc/vits">VITS-csmsc</a> / <a href = "./examples/aishell3/vits">VITS-aishell3</a>
      </td>
    </tr>
  </tbody>
</table>

<a name="AudioClassification"></a>

**Audio Classification**

<table style="width:100%">
  <thead>
    <tr>
      <th> Task </th>
      <th> Dataset </th>
      <th> Model Type </th>
      <th> Example </th>
    </tr>
  </thead>
  <tbody>
  <tr>
      <td>Audio Classification</td>
      <td>ESC-50</td>
      <td>PANN</td>
      <td>
      <a href = "./examples/esc50/cls0">pann-esc50</a>
      </td>
    </tr>
  </tbody>
</table>

<a name="KeywordSpotting"></a>

**Keyword Spotting**

<table style="width:100%">
  <thead>
    <tr>
      <th> Task </th>
      <th> Dataset </th>
      <th> Model Type </th>
      <th> Example </th>
    </tr>
  </thead>
  <tbody>
  <tr>
      <td>Keyword Spotting</td>
      <td>hey-snips</td>
      <td>MDTC</td>
      <td>
      <a href = "./examples/hey_snips/kws0">mdtc-hey-snips</a>
      </td>
    </tr>
  </tbody>
</table>

<a name="SpeakerVerification"></a>

**Speaker Verification**

<table style="width:100%">
  <thead>
    <tr>
      <th> Task </th>
      <th> Dataset </th>
      <th> Model Type </th>
      <th> Example </th>
    </tr>
  </thead>
  <tbody>
  <tr>
      <td>Speaker Verification</td>
      <td>VoxCeleb1/2</td>
      <td>ECAPA-TDNN</td>
      <td>
      <a href = "./examples/voxceleb/sv0">ecapa-tdnn-voxceleb12</a>
      </td>
    </tr>
  </tbody>
</table>

<a name="SpeakerDiarization"></a>

**Speaker Diarization**

<table style="width:100%">
  <thead>
    <tr>
      <th> Task </th>
      <th> Dataset </th>
      <th> Model Type </th>
      <th> Example </th>
    </tr>
  </thead>
  <tbody>
  <tr>
      <td>Speaker Diarization</td>
     <td>AMI</td>
      <td>ECAPA-TDNN + AHC / SC</td>
      <td>
      <a href = "./examples/ami/sd0">ecapa-tdnn-ami</a>
      </td>
    </tr>
  </tbody>
</table>

<a name="PunctuationRestoration"></a>

**Punctuation Restoration**

<table style="width:100%">
  <thead>
    <tr>
      <th> Task </th>
      <th> Dataset </th>
      <th> Model Type </th>
      <th> Example </th>
    </tr>
  </thead>
  <tbody>
  <tr>
      <td>Punctuation Restoration</td>
      <td>IWLST2012_zh</td>
      <td>Ernie Linear</td>
      <td>
      <a href = "./examples/iwslt2012/punc0">iwslt2012-punc0</a>
      </td>
    </tr>
  </tbody>
</table>

## Documents

Normally, [Speech SoTA](https://paperswithcode.com/area/speech), [Audio SoTA](https://paperswithcode.com/area/audio) and [Music SoTA](https://paperswithcode.com/area/music) give you an overview of the hot academic topics in the related area. To focus on the tasks in PaddleSpeech, you will find the following guidelines are helpful to grasp the core ideas.

- [Installation](./docs/source/install.md)
- [Quick Start](#quickstart)
- [Some Demos](./demos/README.md)
- Tutorials
  - [Automatic Speech Recognition](./docs/source/asr/quick_start.md)
    - [Introduction](./docs/source/asr/models_introduction.md)
    - [Data Preparation](./docs/source/asr/data_preparation.md)
    - [Ngram LM](./docs/source/asr/ngram_lm.md)
  - [Text-to-Speech](./docs/source/tts/quick_start.md)
    - [Introduction](./docs/source/tts/models_introduction.md)
    - [Advanced Usage](./docs/source/tts/advanced_usage.md)
    - [Chinese Rule Based Text Frontend](./docs/source/tts/zh_text_frontend.md)
    - [Test Audio Samples](https://paddlespeech.readthedocs.io/en/latest/tts/demo.html)
  - Speaker Verification
    - [Audio Searching](./demos/audio_searching/README.md)
    - [Speaker Verification](./demos/speaker_verification/README.md)
  - [Audio Classification](./demos/audio_tagging/README.md)
  - [Speech Translation](./demos/speech_translation/README.md)
  - [Speech Server](./demos/speech_server/README.md)
- [Released Models](./docs/source/released_model.md)
  - [Speech-to-Text](#SpeechToText)
  - [Text-to-Speech](#TextToSpeech)
  - [Audio Classification](#AudioClassification)
  - [Speaker Verification](#SpeakerVerification)
  - [Speaker Diarization](#SpeakerDiarization)
  - [Punctuation Restoration](#PunctuationRestoration)
- [Community](#Community)
- [Welcome to contribute](#contribution)
- [License](#License)

The Text-to-Speech module is originally called [Parakeet](https://github.com/PaddlePaddle/Parakeet), and now merged with this repository. If you are interested in academic research about this task, please see [TTS research overview](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/docs/source/tts#overview). Also, [this document](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/tts/models_introduction.md) is a good guideline for the pipeline components.


## ⭐ Examples
- **[PaddleBoBo](https://github.com/JiehangXie/PaddleBoBo): Use PaddleSpeech TTS to generate virtual human voice.**
  
<div align="center"><a href="https://www.bilibili.com/video/BV1cL411V71o?share_source=copy_web"><img src="https://ai-studio-static-online.cdn.bcebos.com/06fd746ab32042f398fb6f33f873e6869e846fe63c214596ae37860fe8103720" / width="500px"></a></div>

- [PaddleSpeech Demo Video](https://paddlespeech.readthedocs.io/en/latest/demo_video.html)

- **[VTuberTalk](https://github.com/jerryuhoo/VTuberTalk): Use PaddleSpeech TTS and ASR to clone voice from videos.**


## Citation

To cite PaddleSpeech for research, please use the following format.

```text
@inproceedings{zhang2022paddlespeech,
    title = {PaddleSpeech: An Easy-to-Use All-in-One Speech Toolkit},
    author = {Hui Zhang, Tian Yuan, Junkun Chen, Xintong Li, Renjie Zheng, Yuxin Huang, Xiaojie Chen, Enlei Gong, Zeyu Chen, Xiaoguang Hu, dianhai yu, Yanjun Ma, Liang Huang},
    booktitle = {Proceedings of the 2022 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies: Demonstrations},
    year = {2022},
    publisher = {Association for Computational Linguistics},
}

@InProceedings{pmlr-v162-bai22d,
  title = {{A}$^3${T}: Alignment-Aware Acoustic and Text Pretraining for Speech Synthesis and Editing},
  author = {Bai, He and Zheng, Renjie and Chen, Junkun and Ma, Mingbo and Li, Xintong and Huang, Liang},
  booktitle = {Proceedings of the 39th International Conference on Machine Learning},
  pages = {1399--1411},
  year = {2022},
  volume = {162},
  series = {Proceedings of Machine Learning Research},
  month = {17--23 Jul},
  publisher = {PMLR},
  pdf = {https://proceedings.mlr.press/v162/bai22d/bai22d.pdf},
  url = {https://proceedings.mlr.press/v162/bai22d.html},
}

@inproceedings{zheng2021fused,
  title={Fused acoustic and text encoding for multimodal bilingual pretraining and speech translation},
  author={Zheng, Renjie and Chen, Junkun and Ma, Mingbo and Huang, Liang},
  booktitle={International Conference on Machine Learning},
  pages={12736--12746},
  year={2021},
  organization={PMLR}
}
```

<a name="contribution"></a>
## Contribute to PaddleSpeech

You are warmly welcome to submit questions in [discussions](https://github.com/PaddlePaddle/PaddleSpeech/discussions) and bug reports in [issues](https://github.com/PaddlePaddle/PaddleSpeech/issues)! Also, we highly appreciate if you are willing to contribute to this project!

### Contributors
<p align="center">
<a href="https://github.com/zh794390558"><img src="https://avatars.githubusercontent.com/u/3038472?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Jackwaterveg"><img src="https://avatars.githubusercontent.com/u/87408988?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/yt605155624"><img src="https://avatars.githubusercontent.com/u/24568452?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Honei"><img src="https://avatars.githubusercontent.com/u/11361692?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/KPatr1ck"><img src="https://avatars.githubusercontent.com/u/22954146?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/kuke"><img src="https://avatars.githubusercontent.com/u/3064195?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/lym0302"><img src="https://avatars.githubusercontent.com/u/34430015?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/SmileGoat"><img src="https://avatars.githubusercontent.com/u/56786796?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/xinghai-sun"><img src="https://avatars.githubusercontent.com/u/7038341?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/pkuyym"><img src="https://avatars.githubusercontent.com/u/5782283?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/LittleChenCc"><img src="https://avatars.githubusercontent.com/u/10339970?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/qingen"><img src="https://avatars.githubusercontent.com/u/3139179?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/D-DanielYang"><img src="https://avatars.githubusercontent.com/u/23690325?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Mingxue-Xu"><img src="https://avatars.githubusercontent.com/u/92848346?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/745165806"><img src="https://avatars.githubusercontent.com/u/20623194?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/jerryuhoo"><img src="https://avatars.githubusercontent.com/u/24245709?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/WilliamZhang06"><img src="https://avatars.githubusercontent.com/u/97937340?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/chrisxu2016"><img src="https://avatars.githubusercontent.com/u/18379485?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/iftaken"><img src="https://avatars.githubusercontent.com/u/30135920?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/lfchener"><img src="https://avatars.githubusercontent.com/u/6771821?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/BarryKCL"><img src="https://avatars.githubusercontent.com/u/48039828?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/mmglove"><img src="https://avatars.githubusercontent.com/u/38800877?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/gongel"><img src="https://avatars.githubusercontent.com/u/24390500?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/luotao1"><img src="https://avatars.githubusercontent.com/u/6836917?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/wanghaoshuang"><img src="https://avatars.githubusercontent.com/u/7534971?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/kslz"><img src="https://avatars.githubusercontent.com/u/54951765?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/JiehangXie"><img src="https://avatars.githubusercontent.com/u/51190264?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/david-95"><img src="https://avatars.githubusercontent.com/u/15189190?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/THUzyt21"><img src="https://avatars.githubusercontent.com/u/91456992?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/buchongyu2"><img src="https://avatars.githubusercontent.com/u/29157444?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/iclementine"><img src="https://avatars.githubusercontent.com/u/16222986?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/phecda-xu"><img src="https://avatars.githubusercontent.com/u/46859427?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/freeliuzc"><img src="https://avatars.githubusercontent.com/u/23568094?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/ZeyuChen"><img src="https://avatars.githubusercontent.com/u/1371212?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/ccrrong"><img src="https://avatars.githubusercontent.com/u/101700995?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/AK391"><img src="https://avatars.githubusercontent.com/u/81195143?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/qingqing01"><img src="https://avatars.githubusercontent.com/u/7845005?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/0x45f"><img src="https://avatars.githubusercontent.com/u/23097963?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/vpegasus"><img src="https://avatars.githubusercontent.com/u/22723154?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/ericxk"><img src="https://avatars.githubusercontent.com/u/4719594?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Betterman-qs"><img src="https://avatars.githubusercontent.com/u/61459181?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/sneaxiy"><img src="https://avatars.githubusercontent.com/u/32832641?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Doubledongli"><img src="https://avatars.githubusercontent.com/u/20540661?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/apps/dependabot"><img src="https://avatars.githubusercontent.com/in/29110?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/kvinwang"><img src="https://avatars.githubusercontent.com/u/6442159?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/chenkui164"><img src="https://avatars.githubusercontent.com/u/34813030?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/PaddleZhang"><img src="https://avatars.githubusercontent.com/u/97284124?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/billishyahao"><img src="https://avatars.githubusercontent.com/u/96406262?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/BrightXiaoHan"><img src="https://avatars.githubusercontent.com/u/25839309?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/jiqiren11"><img src="https://avatars.githubusercontent.com/u/82639260?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/ryanrussell"><img src="https://avatars.githubusercontent.com/u/523300?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/GT-ZhangAcer"><img src="https://avatars.githubusercontent.com/u/46156734?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/tensor-tang"><img src="https://avatars.githubusercontent.com/u/21351065?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/hysunflower"><img src="https://avatars.githubusercontent.com/u/52739577?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/oyjxer"><img src="https://avatars.githubusercontent.com/u/16233945?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/JamesLim-sy"><img src="https://avatars.githubusercontent.com/u/61349199?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/limpidezza"><img src="https://avatars.githubusercontent.com/u/71760778?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/windstamp"><img src="https://avatars.githubusercontent.com/u/34057289?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/AshishKarel"><img src="https://avatars.githubusercontent.com/u/58069375?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/chesterkuo"><img src="https://avatars.githubusercontent.com/u/6285069?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/YDX-2147483647"><img src="https://avatars.githubusercontent.com/u/73375426?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/AdamBear"><img src="https://avatars.githubusercontent.com/u/2288870?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/wwhu"><img src="https://avatars.githubusercontent.com/u/6081200?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/lispc"><img src="https://avatars.githubusercontent.com/u/2833376?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/harisankarh"><img src="https://avatars.githubusercontent.com/u/1307053?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/pengzhendong"><img src="https://avatars.githubusercontent.com/u/10704539?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Jackiexiao"><img src="https://avatars.githubusercontent.com/u/18050469?s=60&v=4" width=75 height=75></a>
</p>

## Acknowledgement
- Many thanks to [HighCWu](https://github.com/HighCWu) for adding [VITS-aishell3](./examples/aishell3/vits) and [VITS-VC](./examples/aishell3/vits-vc) examples.
- Many thanks to [david-95](https://github.com/david-95) for fixing multi-punctuation bug、contributing to multiple program and data, and adding [SSML](https://github.com/PaddlePaddle/PaddleSpeech/discussions/2538) for TTS Chinese Text Frontend. 
- Many thanks to [BarryKCL](https://github.com/BarryKCL) for improving TTS Chinses Frontend based on [G2PW](https://github.com/GitYCC/g2pW).
- Many thanks to [yeyupiaoling](https://github.com/yeyupiaoling)/[PPASR](https://github.com/yeyupiaoling/PPASR)/[PaddlePaddle-DeepSpeech](https://github.com/yeyupiaoling/PaddlePaddle-DeepSpeech)/[VoiceprintRecognition-PaddlePaddle](https://github.com/yeyupiaoling/VoiceprintRecognition-PaddlePaddle)/[AudioClassification-PaddlePaddle](https://github.com/yeyupiaoling/AudioClassification-PaddlePaddle) for years of attention, constructive advice and great help.
- Many thanks to [mymagicpower](https://github.com/mymagicpower) for the Java implementation of ASR upon [short](https://github.com/mymagicpower/AIAS/tree/main/3_audio_sdks/asr_sdk) and [long](https://github.com/mymagicpower/AIAS/tree/main/3_audio_sdks/asr_long_audio_sdk) audio files.
- Many thanks to [JiehangXie](https://github.com/JiehangXie)/[PaddleBoBo](https://github.com/JiehangXie/PaddleBoBo) for developing Virtual Uploader(VUP)/Virtual YouTuber(VTuber) with PaddleSpeech TTS function.
- Many thanks to [745165806](https://github.com/745165806)/[PaddleSpeechTask](https://github.com/745165806/PaddleSpeechTask) for contributing Punctuation Restoration model.
- Many thanks to [kslz](https://github.com/745165806) for supplementary Chinese documents.
- Many thanks to [awmmmm](https://github.com/awmmmm) for contributing fastspeech2 aishell3 conformer pretrained model.
- Many thanks to [phecda-xu](https://github.com/phecda-xu)/[PaddleDubbing](https://github.com/phecda-xu/PaddleDubbing) for developing a dubbing tool with GUI based on PaddleSpeech TTS model.
- Many thanks to [jerryuhoo](https://github.com/jerryuhoo)/[VTuberTalk](https://github.com/jerryuhoo/VTuberTalk) for developing a GUI tool based on PaddleSpeech TTS and code for making datasets from videos based on PaddleSpeech ASR.
- Many thanks to [vpegasus](https://github.com/vpegasus)/[xuesebot](https://github.com/vpegasus/xuesebot) for developing a rasa chatbot,which is able to speak and listen thanks to PaddleSpeech.
- Many thanks to [chenkui164](https://github.com/chenkui164)/[FastASR](https://github.com/chenkui164/FastASR) for the C++ inference implementation of PaddleSpeech ASR.
- Many thanks to [heyudage](https://github.com/heyudage)/[VoiceTyping](https://github.com/heyudage/VoiceTyping) for the real-time voice typing tool implementation of PaddleSpeech ASR streaming services.
- Many thanks to [EscaticZheng](https://github.com/EscaticZheng)/[ps3.9wheel-install](https://github.com/EscaticZheng/ps3.9wheel-install) for the python3.9 prebuilt wheel for PaddleSpeech installation in Windows without Visual Studio.
Besides, PaddleSpeech depends on a lot of open source repositories. See [references](./docs/source/reference.md) for more information.
- Many thanks to [chinobing](https://github.com/chinobing)/[FastAPI-PaddleSpeech-Audio-To-Text](https://github.com/chinobing/FastAPI-PaddleSpeech-Audio-To-Text) for converting audio to text based on FastAPI and PaddleSpeech.
- Many thanks to [MistEO](https://github.com/MistEO)/[Pallas-Bot](https://github.com/MistEO/Pallas-Bot) for QQ bot based on PaddleSpeech TTS.

<a name="License"></a>
## License

PaddleSpeech is provided under the [Apache-2.0 License](./LICENSE).

## Stargazers over time

[![Stargazers over time](https://starchart.cc/PaddlePaddle/PaddleSpeech.svg)](https://starchart.cc/PaddlePaddle/PaddleSpeech)


================================================
FILE: README_cn.md
================================================
(简体中文|[English](./README.md))
<p align="center">
  <img src="./docs/images/PaddleSpeech_logo.png" />
</p>


<p align="center">
    <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache%202-red.svg"></a>
    <a href="https://github.com/PaddlePaddle/PaddleSpeech/releases"><img src="https://img.shields.io/github/v/release/PaddlePaddle/PaddleSpeech?color=ffa"></a>
    <a href="support os"><img src="https://img.shields.io/badge/os-linux%2C%20win%2C%20mac-pink.svg"></a>
    <a href=""><img src="https://img.shields.io/badge/python-3.8+-aff.svg"></a>
    <a href="https://github.com/PaddlePaddle/PaddleSpeech/graphs/contributors"><img src="https://img.shields.io/github/contributors/PaddlePaddle/PaddleSpeech?color=9ea"></a>
    <a href="https://github.com/PaddlePaddle/PaddleSpeech/commits"><img src="https://img.shields.io/github/commit-activity/m/PaddlePaddle/PaddleSpeech?color=3af"></a>
    <a href="https://github.com/PaddlePaddle/PaddleSpeech/issues"><img src="https://img.shields.io/github/issues/PaddlePaddle/PaddleSpeech?color=9cc"></a>
    <a href="https://github.com/PaddlePaddle/PaddleSpeech/stargazers"><img src="https://img.shields.io/github/stars/PaddlePaddle/PaddleSpeech?color=ccf"></a>
    <a href="=https://pypi.org/project/paddlespeech/"><img src="https://img.shields.io/pypi/dm/PaddleSpeech"></a>
    <a href="=https://pypi.org/project/paddlespeech/"><img src="https://static.pepy.tech/badge/paddlespeech"></a>
    <a href="https://huggingface.co/spaces"><img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-blue"></a>
</p>
<div align="center">  
<h4>
    <a href="#安装"> 安装 </a>
  | <a href="#快速开始"> 快速开始 </a>
  | <a href="#教程文档"> 教程文档 </a>
  | <a href="#模型列表"> 模型列表 </a>
  | <a href="https://aistudio.baidu.com/aistudio/course/introduce/25130"> AIStudio 课程 </a>
  | <a href="https://arxiv.org/abs/2205.12007"> NAACL2022 论文 </a>
  | <a href="https://gitee.com/paddlepaddle/PaddleSpeech"> Gitee 
</h4>
</div>


------------------------------------------------------------------------------------

**PaddleSpeech** 是基于飞桨 [PaddlePaddle](https://github.com/PaddlePaddle/Paddle) 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型,一些典型的应用示例如下:

**PaddleSpeech** 荣获 [NAACL2022 Best Demo Award](https://2022.naacl.org/blog/best-demo-award/), 请访问 [Arxiv](https://arxiv.org/abs/2205.12007) 论文。
  
### 效果展示

##### 语音识别

<div align = "center">
<table style="width:100%">
  <thead>
    <tr>
      <th> 输入音频  </th>
      <th width="550"> 识别结果 </th>
    </tr>
  </thead>
  <tbody>
   <tr>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/PaddleAudio/en.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200 style="max-width: 100%;"></a><br>
      </td>
      <td >I knocked at the door on the ancient side of the building.</td>
    </tr>
    <tr>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/PaddleAudio/zh.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
      <td>我认为跑步最重要的就是给我带来了身体健康。</td>
    </tr>
  </tbody>
</table>

</div>

##### 语音翻译 (英译中)

<div align = "center">
<table style="width:100%">
  <thead>
    <tr>
      <th> 输入音频 </th>
      <th width="550"> 翻译结果 </th>
    </tr>
  </thead>
  <tbody>
   <tr>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/PaddleAudio/en.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200 style="max-width: 100%;"></a><br>
      </td>
      <td >我 在 这栋 建筑 的 古老 门上 敲门。</td>
    </tr>
  </tbody>
</table>

</div>

##### 语音合成
<div align = "center">
<table style="width:100%">
  <thead>
    <tr>
      <th width="550">输入文本</th>
      <th>合成音频</th>
    </tr>
  </thead>
  <tbody>
   <tr>
      <td >Life was like a box of chocolates, you never know what you're gonna get.</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/tacotron2_ljspeech_waveflow_samples_0.2/sentence_1.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
    <tr>
      <td >早上好,今天是2020/10/29,最低温度是-3°C。</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/parakeet_espnet_fs2_pwg_demo/tn_g2p/parakeet/001.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
    <tr>
      <td >季姬寂,集鸡,鸡即棘鸡。棘鸡饥叽,季姬及箕稷济鸡。鸡既济,跻姬笈,季姬忌,急咭鸡,鸡急,继圾几,季姬急,即籍箕击鸡,箕疾击几伎,伎即齑,鸡叽集几基,季姬急极屐击鸡,鸡既殛,季姬激,即记《季姬击鸡记》。</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/jijiji.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
    <tr>
      <td>大家好,我是 parrot 虚拟老师,我们来读一首诗,我与春风皆过客,I and the spring breeze are passing by,你携秋水揽星河,you take the autumn water to take the galaxy。</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/labixiaoxin.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
    <tr>
      <td>宜家唔系事必要你讲,但系你所讲嘅说话将会变成呈堂证供。</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/chengtangzhenggong.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
    <tr>
      <td>各个国家有各个国家嘅国歌</td>
      <td align = "center">
      <a href="https://paddlespeech.cdn.bcebos.com/Parakeet/docs/demos/gegege.wav" rel="nofollow">
            <img align="center" src="./docs/images/audio_icon.png" width="200" style="max-width: 100%;"></a><br>
      </td>
    </tr>
  </tbody>
</table>

</div>

更多合成音频,可以参考 [PaddleSpeech 语音合成音频示例](https://paddlespeech.readthedocs.io/en/latest/tts/demo.html)。

##### 标点恢复
<div align = "center">
<table style="width:100%">
  <thead>
    <tr>
      <th width="390"> 输入文本 </th>
      <th width="390"> 输出文本 </th>
    </tr>
  </thead>
  <tbody>
   <tr>
      <td>今天的天气真不错啊你下午有空吗我想约你一起去吃饭</td>
      <td>今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。</td>
    </tr>
  </tbody>
</table>

</div>


### 特性

本项目采用了易用、高效、灵活以及可扩展的实现,旨在为工业应用、学术研究提供更好的支持,实现的功能包含训练、推断以及测试模块,以及部署过程,主要包括
- 📦 **易用性**: 安装门槛低,可使用 [CLI](#quick-start) 快速开始。
- 🏆 **对标 SoTA**: 提供了高速、轻量级模型,且借鉴了最前沿的技术。
- 🏆 **流式 ASR 和 TTS 系统**:工业级的端到端流式识别、流式合成系统。
- 💯 **基于规则的中文前端**: 我们的前端包含文本正则化和字音转换(G2P)。此外,我们使用自定义语言规则来适应中文语境。
- **多种工业界以及学术界主流功能支持**:
  - 🛎️ 典型音频任务: 本工具包提供了音频任务如音频分类、语音翻译、自动语音识别、文本转语音、语音合成、声纹识别、KWS等任务的实现。
  - 🔬 主流模型及数据集: 本工具包实现了参与整条语音任务流水线的各个模块,并且采用了主流数据集如 LibriSpeech、LJSpeech、AIShell、CSMSC,详情请见 [模型列表](#model-list)。
  - 🧩 级联模型应用: 作为传统语音任务的扩展,我们结合了自然语言处理、计算机视觉等任务,实现更接近实际需求的产业级应用。

### 近期更新
- 🎉 2025.09.01: 新增 [Whisper large v3 与 turbo 模型](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/demos/whisper).
- 🤗 2025.08.11: 新增 [流式中英混合 tal_cs 识别模型](./examples/tal_cs/asr1/).
- 👑 2023.05.31: 新增 [WavLM ASR-en](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/examples/librispeech/asr5), 基于WavLM的英语识别微调,使用LibriSpeech数据集
- 🎉 2023.05.18: 新增 [Squeezeformer](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/aishell/asr1), 使用Squeezeformer进行训练,使用Aishell数据集
- 👑 2023.05.04: 新增 [HuBERT ASR-en](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/examples/librispeech/asr4), 基于HuBERT的英语识别微调,使用LibriSpeech数据集
- ⚡ 2023.04.28: 修正 [0-d tensor](https://github.com/PaddlePaddle/PaddleSpeech/pull/3214), 配合PaddlePaddle2.5升级修改了0-d tensor的问题。
- 👑 2023.04.25: 新增 [U2 conformer 的 AMP 训练](https://github.com/PaddlePaddle/PaddleSpeech/pull/3167).
- 👑 2023.04.06: 新增 [srt格式字幕生成功能](./demos/streaming_asr_server)。
- 🔥 2023.03.14: 新增基于 Opencpop 数据集的 SVS (歌唱合成) 示例,包含 [DiffSinger](./examples/opencpop/svs1)、[PWGAN](./examples/opencpop/voc1) 和 [HiFiGAN](./examples/opencpop/voc5),效果持续优化中。
- 👑 2023.03.09: 新增 [Wav2vec2ASR-zh](./examples/aishell/asr3)。
- 🎉 2023.03.07: 新增 [TTS ARM Linux C++ 部署示例 (包含 C++ 中文文本前端模块)](./demos/TTSArmLinux)。
- 🔥 2023.03.03: 新增声音转换模型 [StarGANv2-VC 合成流程](./examples/vctk/vc3)。
- 🎉 2023.02.16: 新增[粤语语音合成](./examples/canton/tts3)。
- 🔥 2023.01.10: 新增[中英混合 ASR CLI 和 Demos](./demos/speech_recognition)。
- 👑 2023.01.06: 新增 [ASR 中英混合 tal_cs 训练推理流程](./examples/tal_cs/asr1/)。
- 🎉 2022.12.02: 新增[端到端韵律预测全流程](./examples/csmsc/tts3_rhy) (包含在声学模型中使用韵律标签)。
- 🎉 2022.11.30: 新增 [TTS Android 部署示例](./demos/TTSAndroid)。
- 🤗 2022.11.28: PP-TTS and PP-ASR 示例可在 [AIStudio](https://aistudio.baidu.com/aistudio/modelsoverview) 和[飞桨官网](https://www.paddlepaddle.org.cn/models)体验!
- 👑 2022.11.18: 新增 [Whisper CLI 和 Demos](https://github.com/PaddlePaddle/PaddleSpeech/pull/2640), 支持多种语言的识别与翻译。
- 🔥 2022.11.18: 新增 [Wav2vec2 CLI 和 Demos](./demos/speech_ssl), 支持 ASR 和特征提取。
- 🎉 2022.11.17: TTS 新增[高质量男性音色](https://github.com/PaddlePaddle/PaddleSpeech/pull/2660)。
- 🔥 2022.11.07: 新增 [U2/U2++ 高性能流式 ASR C++ 部署](./speechx/examples/u2pp_ol/wenetspeech)。
- 👑 2022.11.01: [中英文混合 TTS](./examples/zh_en_tts/tts3) 新增 [Adversarial Loss](https://arxiv.org/pdf/1907.04448.pdf) 模块。
- 🔥 2022.10.26: TTS 新增[韵律预测](./develop/examples/other/rhy)功能。
- 🎉 2022.10.21: TTS 中文文本前端新增 [SSML](https://github.com/PaddlePaddle/PaddleSpeech/discussions/2538) 功能。
- 👑 2022.10.11: 新增 [Wav2vec2ASR-en](./examples/librispeech/asr3), 在 LibriSpeech 上针对 ASR 任务对 wav2vec2.0 的 finetuning。
- 🔥 2022.09.26: 新增 Voice Cloning, TTS finetune 和 [ERNIE-SAT](https://arxiv.org/abs/2211.03545) 到 [PaddleSpeech 网页应用](./demos/speech_web)。
- ⚡ 2022.09.09: 新增基于 ECAPA-TDNN 声纹模型的 AISHELL-3 Voice Cloning [示例](./examples/aishell3/vc2)。
- ⚡ 2022.08.25: 发布 TTS [finetune](./examples/other/tts_finetune/tts3) 示例。
- 🔥 2022.08.22: 新增 [ERNIE-SAT](https://arxiv.org/abs/2211.03545) 模型: [ERNIE-SAT-vctk](./examples/vctk/ernie_sat)、[ERNIE-SAT-aishell3](./examples/aishell3/ernie_sat)、[ERNIE-SAT-zh_en](./examples/aishell3_vctk/ernie_sat)。
- 🔥 2022.08.15: 将 [g2pW](https://github.com/GitYCC/g2pW) 引入 TTS 中文文本前端。
- 🔥 2022.08.09: 发布[中英文混合 TTS](./examples/zh_en_tts/tts3)。
- ⚡ 2022.08.03: TTS CLI 新增 ONNXRuntime 推理方式。
- 🎉 2022.07.18: 发布 VITS 模型: [VITS-csmsc](./examples/csmsc/vits)、[VITS-aishell3](./examples/aishell3/vits)、[VITS-VC](./examples/aishell3/vits-vc)。
- 🎉 2022.06.22: 所有 TTS 模型支持了 ONNX 格式。
- 🍀 2022.06.17: 新增 [PaddleSpeech 网页应用](./demos/speech_web)。
- 👑 2022.05.13: PaddleSpeech 发布 [PP-ASR](./docs/source/asr/PPASR_cn.md) 流式语音识别系统、[PP-TTS](./docs/source/tts/PPTTS_cn.md) 流式语音合成系统、[PP-VPR](docs/source/vpr/PPVPR_cn.md) 全链路声纹识别系统
- 👏🏻 2022.05.06: PaddleSpeech Streaming Server 上线!覆盖了语音识别(标点恢复、时间戳)和语音合成。
- 👏🏻 2022.05.06: PaddleSpeech Server 上线!覆盖了声音分类、语音识别、语音合成、声纹识别,标点恢复。
- 👏🏻 2022.03.28: PaddleSpeech CLI 覆盖声音分类、语音识别、语音翻译(英译中)、语音合成和声纹验证。
- 👏🏻 2021.12.10: PaddleSpeech CLI 支持语音分类, 语音识别, 语音翻译(英译中)和语音合成。


 ### 🔥 加入技术交流群获取入群福利

 - 3 日直播课链接: 深度解读 【一句话语音合成】【小样本语音合成】【定制化语音识别】语音交互技术
 - 20G 学习大礼包:视频课程、前沿论文与学习资料
  
微信扫描二维码关注公众号,点击“马上报名”填写问卷加入官方交流群,获得更高效的问题答疑,与各行各业开发者充分交流,期待您的加入。

<div align="center">
<img src="https://user-images.githubusercontent.com/30135920/212860467-9e943cc3-8be8-49a4-97fd-7c94aad8e979.jpg"  width = "200"  />
</div>

<a name="安装"></a>
## 安装

我们强烈建议用户在 **Linux** 环境下,*3.8* 以上版本的 *python* 上安装 PaddleSpeech。

### 相关依赖
+ gcc >= 4.8.5
+ paddlepaddle
+ python >= 3.8
+ linux(推荐), mac, windows

PaddleSpeech 依赖于 paddlepaddle,安装可以参考[ paddlepaddle 官网](https://www.paddlepaddle.org.cn/),根据自己机器的情况进行选择。这里给出 cpu 版本示例,其它版本大家可以根据自己机器的情况进行安装。

```shell
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
```
你也可以安装指定版本的paddlepaddle,或者安装 develop 版本。
```bash
# 安装2.4.1版本. 注意:2.4.1只是一个示例,请按照对paddlepaddle的最小依赖进行选择。
pip install paddlepaddle==2.4.1 -i https://mirror.baidu.com/pypi/simple
# 安装 develop 版本
pip install paddlepaddle==0.0.0 -f https://www.paddlepaddle.org.cn/whl/linux/cpu-mkl/develop.html
```
PaddleSpeech 快速安装方式有两种,一种是 pip 安装,一种是源码编译(推荐)。

### pip 安装
```shell
pip install pytest-runner
pip install paddlespeech
```

### 源码编译
```shell
git clone https://github.com/PaddlePaddle/PaddleSpeech.git
cd PaddleSpeech
pip install pytest-runner
pip install .
# 如果需要在可编辑模式下安装,需要使用 --use-pep517,命令如下
# pip install -e . --use-pep517
```

更多关于安装问题,如 conda 环境,librosa 依赖的系统库,gcc 环境问题,kaldi 安装等,可以参考这篇[安装文档](docs/source/install_cn.md),如安装上遇到问题可以在 [#2150](https://github.com/PaddlePaddle/PaddleSpeech/issues/2150) 上留言以及查找相关问题

<a name="快速开始"></a>
## 快速开始
安装完成后,开发者可以通过命令行或者 Python 快速开始,命令行模式下改变 `--input` 可以尝试用自己的音频或文本测试,支持 16k wav 格式音频。

你也可以在 `aistudio` 中快速体验 👉🏻[一键预测,快速上手 Speech 开发任务](https://aistudio.baidu.com/aistudio/projectdetail/4353348?sUid=2470186&shared=1&ts=1660878142250)。

测试音频示例下载
```shell
wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/zh.wav
wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/en.wav
```

### 语音识别
<details><summary>&emsp;(点击可展开)开源中文语音识别</summary>

命令行一键体验

```shell
paddlespeech asr --lang zh --input zh.wav
```

Python API 一键预测

```python
>>> from paddlespeech.cli.asr.infer import ASRExecutor
>>> asr = ASRExecutor()
>>> result = asr(audio_file="zh.wav")
>>> print(result)
我认为跑步最重要的就是给我带来了身体健康
```
</details>

### 语音合成

<details><summary>&emsp;开源中文语音合成</summary>

输出 24k 采样率wav格式音频


命令行一键体验

```shell
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav
```

Python API 一键预测

```python
>>> from paddlespeech.cli.tts.infer import TTSExecutor
>>> tts = TTSExecutor()
>>> tts(text="今天天气十分不错。", output="output.wav")
```
- 语音合成的 web demo 已经集成进了 [Huggingface Spaces](https://huggingface.co/spaces). 请参考: [TTS Demo](https://huggingface.co/spaces/KPatrick/PaddleSpeechTTS)

</details>

### 声音分类   

<details><summary>&emsp;适配多场景的开放领域声音分类工具</summary>

基于 AudioSet 数据集 527 个类别的声音分类模型

命令行一键体验

```shell
paddlespeech cls --input zh.wav
```

python API 一键预测

```python
>>> from paddlespeech.cli.cls.infer import CLSExecutor
>>> cls = CLSExecutor()
>>> result = cls(audio_file="zh.wav")
>>> print(result)
Speech 0.9027186632156372
```

</details>

### 声纹提取

<details><summary>&emsp;工业级声纹提取工具</summary>

命令行一键体验

```shell
paddlespeech vector --task spk --input zh.wav
```

Python API 一键预测

```python
>>> from paddlespeech.cli.vector import VectorExecutor
>>> vec = VectorExecutor()
>>> result = vec(audio_file="zh.wav")
>>> print(result) # 187维向量
[ -0.19083306   9.474295   -14.122263    -2.0916545    0.04848729
   4.9295826    1.4780062    0.3733844   10.695862     3.2697146
  -4.48199     -0.6617882   -9.170393   -11.1568775   -1.2358263 ...]
```

</details>

### 标点恢复 

<details><summary>&emsp;一键恢复文本标点,可与ASR模型配合使用</summary>

命令行一键体验

```shell
paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭
```

Python API 一键预测

```python
>>> from paddlespeech.cli.text.infer import TextExecutor
>>> text_punc = TextExecutor()
>>> result = text_punc(text="今天的天气真不错啊你下午有空吗我想约你一起去吃饭")
今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。
```

</details>

### 语音翻译

<details><summary>&emsp;端到端英译中语音翻译工具</summary>

使用预编译的 kaldi 相关工具,只支持在 Ubuntu 系统中体验

命令行一键体验

```shell
paddlespeech st --input en.wav
```

python API 一键预测

```python
>>> from paddlespeech.cli.st.infer import STExecutor
>>> st = STExecutor()
>>> result = st(audio_file="en.wav")
['我 在 这栋 建筑 的 古老 门上 敲门 。']
```

</details>


<a name="快速使用服务"></a>
## 快速使用服务
安装完成后,开发者可以通过命令行一键启动语音识别,语音合成,音频分类等多种服务。

你可以在 AI Studio 中快速体验:[SpeechServer 一键部署](https://aistudio.baidu.com/aistudio/projectdetail/4354592?sUid=2470186&shared=1&ts=1660878208266)

**启动服务**     
```shell
paddlespeech_server start --config_file ./demos/speech_server/conf/application.yaml
```

**访问语音识别服务**     
```shell
paddlespeech_client asr --server_ip 127.0.0.1 --port 8090 --input input_16k.wav
```

**访问语音合成服务**     
```shell
paddlespeech_client tts --server_ip 127.0.0.1 --port 8090 --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav
```

**访问音频分类服务**     
```shell
paddlespeech_client cls --server_ip 127.0.0.1 --port 8090 --input input.wav
```

更多服务相关的命令行使用信息,请参考 [demos](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/demos/speech_server)

<a name="快速使用流式服务"></a>
## 快速使用流式服务

开发者可以尝试 [流式 ASR](./demos/streaming_asr_server/README.md) 和 [流式 TTS](./demos/streaming_tts_server/README.md) 服务.

**启动流式 ASR 服务**

```
paddlespeech_server start --config_file ./demos/streaming_asr_server/conf/application.yaml
```

**访问流式 ASR 服务**     

```
paddlespeech_client asr_online --server_ip 127.0.0.1 --port 8090 --input input_16k.wav
```

**启动流式 TTS 服务**

```
paddlespeech_server start --config_file ./demos/streaming_tts_server/conf/tts_online_application.yaml
```

**访问流式 TTS 服务**     

```
paddlespeech_client tts_online --server_ip 127.0.0.1 --port 8092 --protocol http --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav
```

更多信息参看: [流式 ASR](./demos/streaming_asr_server/README.md) 和 [流式 TTS](./demos/streaming_tts_server/README.md) 

<a name="模型列表"></a>
## 模型列表
PaddleSpeech 支持很多主流的模型,并提供了预训练模型,详情请见[模型列表](./docs/source/released_model.md)。

<a name="语音识别模型"></a>

PaddleSpeech 的 **语音转文本** 包含语音识别声学模型、语音识别语言模型和语音翻译, 详情如下:

<table style="width:100%">
  <thead>
    <tr>
      <th>语音转文本模块类型</th>
      <th>数据集</th>
      <th>模型类型</th>
      <th>脚本</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td rowspan="4">语音识别</td>
      <td rowspan="2" >Aishell</td>
      <td >DeepSpeech2 RNN + Conv based Models</td>
      <td>
      <a href = "./examples/aishell/asr0">deepspeech2-aishell</a>
      </td>
    </tr>
    <tr>
      <td>Transformer based Attention Models </td>
      <td>
      <a href = "./examples/aishell/asr1">u2.transformer.conformer-aishell</a>
      </td>
    </tr>
      <tr>
      <td> Librispeech</td>
      <td>Transformer based Attention Models </td>
      <td>
      <a href = "./examples/librispeech/asr0">deepspeech2-librispeech</a> / <a href = "./examples/librispeech/asr1">transformer.conformer.u2-librispeech</a>  / <a href = "./examples/librispeech/asr2">transformer.conformer.u2-kaldi-librispeech</a>
      </td>
      </td>
    </tr>
    <tr>
      <td>TIMIT</td>
      <td>Unified Streaming & Non-streaming Two-pass</td>
      <td>
    <a href = "./examples/timit/asr1"> u2-timit</a>
      </td>
    </tr>
  <tr>
  <td>对齐</td>
  <td>THCHS30</td>
  <td>MFA</td>
  <td>
  <a href = ".examples/thchs30/align0">mfa-thchs30</a>
  </td>
  </tr>
   <tr>
      <td rowspan="1">语言模型</td>
      <td colspan = "2">Ngram 语言模型</td>
      <td>
      <a href = "./examples/other/ngram_lm">kenlm</a>
      </td>
    </tr>
    <tr>
      <td rowspan="2">语音翻译(英译中)</td> 
      <td rowspan="2">TED En-Zh</td>
      <td>Transformer + ASR MTL</td>
      <td>
      <a href = "./examples/ted_en_zh/st0">transformer-ted</a>
      </td>
  </tr>
  <tr>
      <td>FAT + Transformer + ASR MTL</td>
      <td>
      <a href = "./examples/ted_en_zh/st1">fat-st-ted</a>
      </td>
  </tr>
  </tbody>
</table>

<a name="语音合成模型"></a>

PaddleSpeech 的 **语音合成** 主要包含三个模块:文本前端、声学模型和声码器。声学模型和声码器模型如下:

<table>
  <thead>
    <tr>
      <th> 语音合成模块类型 </th>
      <th> 模型类型 </th>
      <th> 数据集  </th>
      <th> 脚本  </th>
    </tr>
  </thead>
  <tbody>
    <tr>
    <td> 文本前端</td>
    <td colspan="2"> &emsp; </td>
    <td>
    <a href = "./examples/other/tn">tn</a> / <a href = "./examples/other/g2p">g2p</a>
    </td>
   </tr>
   <tr>
      <td rowspan="6">声学模型</td>
      <td>Tacotron2</td>
      <td>LJSpeech / CSMSC</td>
      <td>
      <a href = "./examples/ljspeech/tts0">tacotron2-ljspeech</a> / <a href = "./examples/csmsc/tts0">tacotron2-csmsc</a>
      </td>
   </tr>
   <tr>
      <td>Transformer TTS</td>
      <td>LJSpeech</td>
      <td>
      <a href = "./examples/ljspeech/tts1">transformer-ljspeech</a>
      </td>
   </tr>
   <tr>
      <td>SpeedySpeech</td>
      <td>CSMSC</td>
      <td >
      <a href = "./examples/csmsc/tts2">speedyspeech-csmsc</a>
      </td>
   </tr>
   <tr>
      <td>FastSpeech2</td>
      <td>LJSpeech / VCTK / CSMSC / AISHELL-3 / ZH_EN / finetune</td>
      <td>
      <a href = "./examples/ljspeech/tts3">fastspeech2-ljspeech</a> / <a href = "./examples/vctk/tts3">fastspeech2-vctk</a> / <a href = "./examples/csmsc/tts3">fastspeech2-csmsc</a> / <a href = "./examples/aishell3/tts3">fastspeech2-aishell3</a> / <a href = "./examples/zh_en_tts/tts3">fastspeech2-zh_en</a> / <a href = "./examples/other/tts_finetune/tts3">fastspeech2-finetune</a>
      </td>
   </tr>
   <tr>
      <td><a href = "https://arxiv.org/abs/2211.03545">ERNIE-SAT</a></td>
      <td>VCTK / AISHELL-3 / ZH_EN</td>
      <td>
      <a href = "./examples/vctk/ernie_sat">ERNIE-SAT-vctk</a> / <a href = "./examples/aishell3/ernie_sat">ERNIE-SAT-aishell3</a> / <a href = "./examples/aishell3_vctk/ernie_sat">ERNIE-SAT-zh_en</a>
      </td>
   </tr>
   <tr>
      <td>DiffSinger</td>
      <td>Opencpop</td>
      <td>
      <a href = "./examples/opencpop/svs1">DiffSinger-opencpop</a>
      </td>
   </tr>
   <tr>
      <td rowspan="6">声码器</td>
      <td >WaveFlow</td>
      <td >LJSpeech</td>
      <td>
      <a href = "./examples/ljspeech/voc0">waveflow-ljspeech</a>
      </td>
    </tr>
    <tr>
      <td >Parallel WaveGAN</td>
      <td >LJSpeech / VCTK / CSMSC / AISHELL-3 / Opencpop</td>
      <td>
      <a href = "./examples/ljspeech/voc1">PWGAN-ljspeech</a> / <a href = "./examples/vctk/voc1">PWGAN-vctk</a> / <a href = "./examples/csmsc/voc1">PWGAN-csmsc</a> /  <a href = "./examples/aishell3/voc1">PWGAN-aishell3</a> / <a href = "./examples/opencpop/voc1">PWGAN-opencpop</a>
      </td>
    </tr>
    <tr>
      <td >Multi Band MelGAN</td>
      <td >CSMSC</td>
      <td>
      <a href = "./examples/csmsc/voc3">Multi Band MelGAN-csmsc</a> 
      </td>
    </tr>
    <tr>
      <td >Style MelGAN</td>
      <td >CSMSC</td>
      <td>
      <a href = "./examples/csmsc/voc4">Style MelGAN-csmsc</a> 
      </td>
    </tr>
    <tr>
      <td >HiFiGAN</td>
      <td >LJSpeech / VCTK / CSMSC / AISHELL-3 / Opencpop</td>
      <td>
      <a href = "./examples/ljspeech/voc5">HiFiGAN-ljspeech</a> / <a href = "./examples/vctk/voc5">HiFiGAN-vctk</a> / <a href = "./examples/csmsc/voc5">HiFiGAN-csmsc</a> / <a href = "./examples/aishell3/voc5">HiFiGAN-aishell3</a> / <a href = "./examples/opencpop/voc5">HiFiGAN-opencpop</a>
      </td>
    </tr>
    <tr>
      <td >WaveRNN</td>
      <td >CSMSC</td>
      <td>
      <a href = "./examples/csmsc/voc6">WaveRNN-csmsc</a>
      </td>
    </tr>
    <tr>
      <td rowspan="5">声音克隆</td>
      <td>GE2E</td>
      <td >Librispeech, etc.</td>
      <td>
      <a href = "./examples/other/ge2e">GE2E</a>
      </td>
    </tr>
    <tr>
      <td>SV2TTS (GE2E + Tacotron2)</td>
      <td>AISHELL-3</td>
      <td>
      <a href = "./examples/aishell3/vc0">VC0</a>
      </td>
    </tr>
    <tr>
      <td>SV2TTS (GE2E + FastSpeech2)</td>
      <td>AISHELL-3</td>
      <td>
      <a href = "./examples/aishell3/vc1">VC1</a>
      </td>
    </tr>
    <tr>
      <td>SV2TTS (ECAPA-TDNN + FastSpeech2)</td>
      <td>AISHELL-3</td>
      <td>
      <a href = "./examples/aishell3/vc2">VC2</a>
      </td>
    </tr>
    <tr>
      <td>GE2E + VITS</td>
      <td>AISHELL-3</td>
      <td>
      <a href = "./examples/aishell3/vits-vc">VITS-VC</a>
      </td>
    </tr>
     <tr>
      <td rowspan="3">端到端</td>
      <td>VITS</td>
      <td>CSMSC / AISHELL-3</td>
      <td>
      <a href = "./examples/csmsc/vits">VITS-csmsc</a> / <a href = "./examples/aishell3/vits">VITS-aishell3</a>
      </td>
    </tr>
  </tbody>
</table>


<a name="声音分类模型"></a>
**声音分类**

<table style="width:100%">
  <thead>
    <tr>
      <th> 任务 </th>
      <th> 数据集 </th>
      <th> 模型类型 </th>
      <th> 脚本</th>
    </tr>
  </thead>
  <tbody>
  <tr>
      <td>声音分类</td>
      <td>ESC-50</td>
      <td>PANN</td>
      <td>
      <a href = "./examples/esc50/cls0">pann-esc50</a>
      </td>
    </tr>
  </tbody>
</table>


<a name="语音唤醒模型"></a>

**语音唤醒**

<table style="width:100%">
  <thead>
    <tr>
      <th> 任务 </th>
      <th> 数据集 </th>
      <th> 模型类型 </th>
      <th> 脚本 </th>
    </tr>
  </thead>
  <tbody>
  <tr>
      <td>语音唤醒</td>
      <td>hey-snips</td>
      <td>MDTC</td>
      <td>
      <a href = "./examples/hey_snips/kws0">mdtc-hey-snips</a>
      </td>
    </tr>
  </tbody>
</table>

<a name="声纹识别模型"></a>

**声纹识别**

<table style="width:100%">
  <thead>
    <tr>
      <th> 任务 </th>
      <th> 数据集 </th>
      <th> 模型类型 </th>
      <th> 脚本 </th>
    </tr>
  </thead>
  <tbody>
  <tr>
      <td>声纹识别</td>
      <td>VoxCeleb1/2</td>
      <td>ECAPA-TDNN</td>
      <td>
      <a href = "./examples/voxceleb/sv0">ecapa-tdnn-voxceleb12</a>
      </td>
    </tr>
  </tbody>
</table>

<a name="说话人日志模型"></a>

**说话人日志**

<table style="width:100%">
  <thead>
    <tr>
      <th> 任务 </th>
      <th> 数据集 </th>
      <th> 模型类型 </th>
      <th> 脚本 </th>
    </tr>
  </thead>
  <tbody>
  <tr>
      <td>说话人日志</td>
      <td>AMI</td>
      <td>ECAPA-TDNN + AHC / SC</td>
      <td>
      <a href = "./examples/ami/sd0">ecapa-tdnn-ami</a>
      </td>
    </tr>
  </tbody>
</table>

<a name="标点恢复模型"></a>

**标点恢复**

<table style="width:100%">
  <thead>
    <tr>
      <th> 任务 </th>
      <th> 数据集 </th>
      <th> 模型类型 </th>
      <th> 脚本 </th>
    </tr>
  </thead>
  <tbody>
  <tr>
      <td>标点恢复</td>
      <td>IWLST2012_zh</td>
      <td>Ernie Linear</td>
      <td>
      <a href = "./examples/iwslt2012/punc0">iwslt2012-punc0</a>
      </td>
    </tr>
  </tbody>
</table>

<a name="教程文档"></a>
## 教程文档

对于 PaddleSpeech 的所关注的任务,以下指南有助于帮助开发者快速入门,了解语音相关核心思想。

- [下载安装](./docs/source/install_cn.md)
- [快速开始](#快速开始)
- Notebook基础教程
  - [声音分类](./docs/tutorial/cls/cls_tutorial.ipynb)
  - [语音识别](./docs/tutorial/asr/tutorial_transformer.ipynb)
  - [语音翻译](./docs/tutorial/st/st_tutorial.ipynb)
  - [声音合成](./docs/tutorial/tts/tts_tutorial.ipynb)
  - [示例Demo](./demos/README.md)
- 进阶文档  
  - [语音识别自定义训练](./docs/source/asr/quick_start.md)
    - [简介](./docs/source/asr/models_introduction.md)
    - [数据准备](./docs/source/asr/data_preparation.md)
    - [Ngram 语言模型](./docs/source/asr/ngram_lm.md)
  - [语音合成自定义训练](./docs/source/tts/quick_start.md)
    - [简介](./docs/source/tts/models_introduction.md)
    - [进阶用法](./docs/source/tts/advanced_usage.md)
    - [中文文本前端](./docs/source/tts/zh_text_frontend.md)
    - [测试语音样本](https://paddlespeech.readthedocs.io/en/latest/tts/demo.html)
  - 声纹识别
    - [声纹识别](./demos/speaker_verification/README_cn.md)
    - [音频检索](./demos/audio_searching/README_cn.md)
  - [声音分类](./demos/audio_tagging/README_cn.md)
  - [语音翻译](./demos/speech_translation/README_cn.md)
  - [服务化部署](./demos/speech_server/README_cn.md)
- [模型列表](#模型列表)
  - [语音识别](#语音识别模型)
  - [语音合成](#语音合成模型)
  - [声音分类](#声音分类模型)
  - [声纹识别](#声纹识别模型)
  - [说话人日志](#说话人日志模型)
  - [标点恢复](#标点恢复模型)
- [技术交流群](#技术交流群)
- [欢迎贡献](#欢迎贡献)
- [License](#License)


语音合成模块最初被称为 [Parakeet](https://github.com/PaddlePaddle/Parakeet),现在与此仓库合并。如果您对该任务的学术研究感兴趣,请参阅 [TTS 研究概述](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/docs/source/tts#overview)。此外,[模型介绍](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/tts/models_introduction.md) 是了解语音合成流程的一个很好的指南。


## ⭐ 应用案例
- **[PaddleBoBo](https://github.com/JiehangXie/PaddleBoBo): 使用 PaddleSpeech 的语音合成模块生成虚拟人的声音。**
  
<div align="center"><a href="https://www.bilibili.com/video/BV1cL411V71o?share_source=copy_web"><img src="https://ai-studio-static-online.cdn.bcebos.com/06fd746ab32042f398fb6f33f873e6869e846fe63c214596ae37860fe8103720" / width="500px"></a></div>

- [PaddleSpeech 示例视频](https://paddlespeech.readthedocs.io/en/latest/demo_video.html)


- **[VTuberTalk](https://github.com/jerryuhoo/VTuberTalk): 使用 PaddleSpeech 的语音合成和语音识别从视频中克隆人声。**

<div align="center">
<img src="https://raw.githubusercontent.com/jerryuhoo/VTuberTalk/main/gui/gui.png"  width = "500px"  />
</div>


## 引用

要引用 PaddleSpeech 进行研究,请使用以下格式进行引用。
```text
@InProceedings{pmlr-v162-bai22d,
  title = {{A}$^3${T}: Alignment-Aware Acoustic and Text Pretraining for Speech Synthesis and Editing},
  author = {Bai, He and Zheng, Renjie and Chen, Junkun and Ma, Mingbo and Li, Xintong and Huang, Liang},
  booktitle = {Proceedings of the 39th International Conference on Machine Learning},
  pages = {1399--1411},
  year = {2022},
  volume = {162},
  series = {Proceedings of Machine Learning Research},
  month = {17--23 Jul},
  publisher = {PMLR},
  pdf = {https://proceedings.mlr.press/v162/bai22d/bai22d.pdf},
  url = {https://proceedings.mlr.press/v162/bai22d.html},
}

@inproceedings{zhang2022paddlespeech,
    title = {PaddleSpeech: An Easy-to-Use All-in-One Speech Toolkit},
    author = {Hui Zhang, Tian Yuan, Junkun Chen, Xintong Li, Renjie Zheng, Yuxin Huang, Xiaojie Chen, Enlei Gong, Zeyu Chen, Xiaoguang Hu, dianhai yu, Yanjun Ma, Liang Huang},
    booktitle = {Proceedings of the 2022 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies: Demonstrations},
    year = {2022},
    publisher = {Association for Computational Linguistics},
}

@inproceedings{zheng2021fused,
  title={Fused acoustic and text encoding for multimodal bilingual pretraining and speech translation},
  author={Zheng, Renjie and Chen, Junkun and Ma, Mingbo and Huang, Liang},
  booktitle={International Conference on Machine Learning},
  pages={12736--12746},
  year={2021},
  organization={PMLR}
}
```

<a name="欢迎贡献"></a>
## 参与 PaddleSpeech 的开发

热烈欢迎您在 [Discussions](https://github.com/PaddlePaddle/PaddleSpeech/discussions) 中提交问题,并在 [Issues](https://github.com/PaddlePaddle/PaddleSpeech/issues) 中指出发现的 bug。此外,我们非常希望您参与到 PaddleSpeech 的开发中!

### 贡献者
<p align="center">
<a href="https://github.com/zh794390558"><img src="https://avatars.githubusercontent.com/u/3038472?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Jackwaterveg"><img src="https://avatars.githubusercontent.com/u/87408988?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/yt605155624"><img src="https://avatars.githubusercontent.com/u/24568452?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Honei"><img src="https://avatars.githubusercontent.com/u/11361692?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/KPatr1ck"><img src="https://avatars.githubusercontent.com/u/22954146?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/kuke"><img src="https://avatars.githubusercontent.com/u/3064195?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/lym0302"><img src="https://avatars.githubusercontent.com/u/34430015?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/SmileGoat"><img src="https://avatars.githubusercontent.com/u/56786796?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/xinghai-sun"><img src="https://avatars.githubusercontent.com/u/7038341?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/pkuyym"><img src="https://avatars.githubusercontent.com/u/5782283?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/LittleChenCc"><img src="https://avatars.githubusercontent.com/u/10339970?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/qingen"><img src="https://avatars.githubusercontent.com/u/3139179?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/D-DanielYang"><img src="https://avatars.githubusercontent.com/u/23690325?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Mingxue-Xu"><img src="https://avatars.githubusercontent.com/u/92848346?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/745165806"><img src="https://avatars.githubusercontent.com/u/20623194?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/jerryuhoo"><img src="https://avatars.githubusercontent.com/u/24245709?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/WilliamZhang06"><img src="https://avatars.githubusercontent.com/u/97937340?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/chrisxu2016"><img src="https://avatars.githubusercontent.com/u/18379485?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/iftaken"><img src="https://avatars.githubusercontent.com/u/30135920?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/lfchener"><img src="https://avatars.githubusercontent.com/u/6771821?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/BarryKCL"><img src="https://avatars.githubusercontent.com/u/48039828?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/mmglove"><img src="https://avatars.githubusercontent.com/u/38800877?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/gongel"><img src="https://avatars.githubusercontent.com/u/24390500?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/luotao1"><img src="https://avatars.githubusercontent.com/u/6836917?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/wanghaoshuang"><img src="https://avatars.githubusercontent.com/u/7534971?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/kslz"><img src="https://avatars.githubusercontent.com/u/54951765?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/JiehangXie"><img src="https://avatars.githubusercontent.com/u/51190264?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/david-95"><img src="https://avatars.githubusercontent.com/u/15189190?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/THUzyt21"><img src="https://avatars.githubusercontent.com/u/91456992?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/buchongyu2"><img src="https://avatars.githubusercontent.com/u/29157444?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/iclementine"><img src="https://avatars.githubusercontent.com/u/16222986?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/phecda-xu"><img src="https://avatars.githubusercontent.com/u/46859427?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/freeliuzc"><img src="https://avatars.githubusercontent.com/u/23568094?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/ZeyuChen"><img src="https://avatars.githubusercontent.com/u/1371212?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/ccrrong"><img src="https://avatars.githubusercontent.com/u/101700995?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/AK391"><img src="https://avatars.githubusercontent.com/u/81195143?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/qingqing01"><img src="https://avatars.githubusercontent.com/u/7845005?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/0x45f"><img src="https://avatars.githubusercontent.com/u/23097963?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/vpegasus"><img src="https://avatars.githubusercontent.com/u/22723154?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/ericxk"><img src="https://avatars.githubusercontent.com/u/4719594?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Betterman-qs"><img src="https://avatars.githubusercontent.com/u/61459181?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/sneaxiy"><img src="https://avatars.githubusercontent.com/u/32832641?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Doubledongli"><img src="https://avatars.githubusercontent.com/u/20540661?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/apps/dependabot"><img src="https://avatars.githubusercontent.com/in/29110?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/kvinwang"><img src="https://avatars.githubusercontent.com/u/6442159?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/chenkui164"><img src="https://avatars.githubusercontent.com/u/34813030?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/PaddleZhang"><img src="https://avatars.githubusercontent.com/u/97284124?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/billishyahao"><img src="https://avatars.githubusercontent.com/u/96406262?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/BrightXiaoHan"><img src="https://avatars.githubusercontent.com/u/25839309?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/jiqiren11"><img src="https://avatars.githubusercontent.com/u/82639260?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/ryanrussell"><img src="https://avatars.githubusercontent.com/u/523300?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/GT-ZhangAcer"><img src="https://avatars.githubusercontent.com/u/46156734?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/tensor-tang"><img src="https://avatars.githubusercontent.com/u/21351065?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/hysunflower"><img src="https://avatars.githubusercontent.com/u/52739577?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/oyjxer"><img src="https://avatars.githubusercontent.com/u/16233945?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/JamesLim-sy"><img src="https://avatars.githubusercontent.com/u/61349199?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/limpidezza"><img src="https://avatars.githubusercontent.com/u/71760778?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/windstamp"><img src="https://avatars.githubusercontent.com/u/34057289?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/AshishKarel"><img src="https://avatars.githubusercontent.com/u/58069375?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/chesterkuo"><img src="https://avatars.githubusercontent.com/u/6285069?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/YDX-2147483647"><img src="https://avatars.githubusercontent.com/u/73375426?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/AdamBear"><img src="https://avatars.githubusercontent.com/u/2288870?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/wwhu"><img src="https://avatars.githubusercontent.com/u/6081200?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/lispc"><img src="https://avatars.githubusercontent.com/u/2833376?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/harisankarh"><img src="https://avatars.githubusercontent.com/u/1307053?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/pengzhendong"><img src="https://avatars.githubusercontent.com/u/10704539?s=60&v=4" width=75 height=75></a>
<a href="https://github.com/Jackiexiao"><img src="https://avatars.githubusercontent.com/u/18050469?s=60&v=4" width=75 height=75></a>
</p>

## 致谢
- 非常感谢 [HighCWu](https://github.com/HighCWu) 新增 [VITS-aishell3](./examples/aishell3/vits) 和 [VITS-VC](./examples/aishell3/vits-vc) 代码示例。
- 非常感谢 [david-95](https://github.com/david-95) 修复 TTS 句尾多标点符号出错的问题,贡献补充多条程序和数据。为 TTS 中文文本前端新增 [SSML](https://github.com/PaddlePaddle/PaddleSpeech/discussions/2538) 功能。
- 非常感谢 [BarryKCL](https://github.com/BarryKCL) 基于 [G2PW](https://github.com/GitYCC/g2pW) 对 TTS 中文文本前端的优化。
- 非常感谢 [yeyupiaoling](https://github.com/yeyupiaoling)/[PPASR](https://github.com/yeyupiaoling/PPASR)/[PaddlePaddle-DeepSpeech](https://github.com/yeyupiaoling/PaddlePaddle-DeepSpeech)/[VoiceprintRecognition-PaddlePaddle](https://github.com/yeyupiaoling/VoiceprintRecognition-PaddlePaddle)/[AudioClassification-PaddlePaddle](https://github.com/yeyupiaoling/AudioClassification-PaddlePaddle) 多年来的关注和建议,以及在诸多问题上的帮助。
- 非常感谢 [mymagicpower](https://github.com/mymagicpower) 采用PaddleSpeech 对 ASR 的[短语音](https://github.com/mymagicpower/AIAS/tree/main/3_audio_sdks/asr_sdk)及[长语音](https://github.com/mymagicpower/AIAS/tree/main/3_audio_sdks/asr_long_audio_sdk)进行 Java 实现。
- 非常感谢 [JiehangXie](https://github.com/JiehangXie)/[PaddleBoBo](https://github.com/JiehangXie/PaddleBoBo) 采用 PaddleSpeech 语音合成功能实现 Virtual Uploader(VUP)/Virtual YouTuber(VTuber) 虚拟主播。
- 非常感谢 [745165806](https://github.com/745165806)/[PaddleSpeechTask](https://github.com/745165806/PaddleSpeechTask) 贡献标点重建相关模型。
- 非常感谢 [kslz](https://github.com/kslz) 补充中文文档。
- 非常感谢 [awmmmm](https://github.com/awmmmm) 提供 fastspeech2 aishell3 conformer 预训练模型。
- 非常感谢 [phecda-xu](https://github.com/phecda-xu)/[PaddleDubbing](https://github.com/phecda-xu/PaddleDubbing) 基于 PaddleSpeech 的 TTS 模型搭建带 GUI 操作界面的配音工具。
- 非常感谢 [jerryuhoo](https://github.com/jerryuhoo)/[VTuberTalk](https://github.com/jerryuhoo/VTuberTalk) 基于 PaddleSpeech 的 TTS GUI 界面和基于 ASR 制作数据集的相关代码。
- 非常感谢 [vpegasus](https://github.com/vpegasus)/[xuesebot](https://github.com/vpegasus/xuesebot) 基于 PaddleSpeech 的 ASR 与 TTS 设计的可听、说对话机器人。
- 非常感谢 [chenkui164](https://github.com/chenkui164)/[FastASR](https://github.com/chenkui164/FastASR) 对 PaddleSpeech 的 ASR 进行 C++ 推理实现。
- 非常感谢 [heyudage](https://github.com/heyudage)/[VoiceTyping](https://github.com/heyudage/VoiceTyping) 基于 PaddleSpeech 的 ASR 流式服务实现的实时语音输入法工具。
- 非常感谢 [EscaticZheng](https://github.com/EscaticZheng)/[ps3.9wheel-install](https://github.com/EscaticZheng/ps3.9wheel-install) 对PaddleSpeech在Windows下的安装提供了无需Visua Studio,基于python3.9的预编译依赖安装包。
- 非常感谢 [chinobing](https://github.com/chinobing)/[FastAPI-PaddleSpeech-Audio-To-Text](https://github.com/chinobing/FastAPI-PaddleSpeech-Audio-To-Text) 利用 FastAPI 实现 PaddleSpeech 语音转文字,文件上传、分割、转换进度显示、后台更新任务并以 csv 格式输出。
- 非常感谢 [MistEO](https://github.com/MistEO)/[Pallas-Bot](https://github.com/MistEO/Pallas-Bot) 基于 PaddleSpeech TTS 的 QQ Bot 项目。

此外,PaddleSpeech 依赖于许多开源存储库。有关更多信息,请参阅 [references](./docs/source/reference.md)。

## License

PaddleSpeech 在 [Apache-2.0 许可](./LICENSE) 下提供。

## Stargazers over time

[![Stargazers over time](https://starchart.cc/PaddlePaddle/PaddleSpeech.svg)](https://starchart.cc/PaddlePaddle/PaddleSpeech)


================================================
FILE: audio/CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)

# Use compiler ID "AppleClang" instead of "Clang" for XCode.
# Not setting this sometimes makes XCode C compiler gets detected as "Clang",
# even when the C++ one is detected as "AppleClang".
cmake_policy(SET CMP0010 NEW)
cmake_policy(SET CMP0025 NEW)

# Suppress warning flags in default MSVC configuration.  It's not
# mandatory that we do this (and we don't if cmake is old), but it's
# nice when it's possible, and it's possible on our Windows configs.
if(NOT CMAKE_VERSION VERSION_LESS 3.15.0)
  cmake_policy(SET CMP0092 NEW)
endif()

project(paddleaudio)

# check and set CMAKE_CXX_STANDARD
string(FIND "${CMAKE_CXX_FLAGS}" "-std=c++" env_cxx_standard)
if(env_cxx_standard GREATER -1)
  message(
      WARNING "C++ standard version definition detected in environment variable."
      "paddleaudio requires -std=c++14. Please remove -std=c++ settings in your environment.")
endif()


set(CMAKE_CXX_STANDARD 14)
set(CMAKE_C_STANDARD 11)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_VERBOSE_MAKEFILE ON)

# Options
option(BUILD_SOX "Build libsox statically" ON)
option(BUILD_MAD "Enable libmad" ON)
option(BUILD_KALDI "Build kaldi statically" ON)
option(BUILD_PADDLEAUDIO_PYTHON_EXTENSION "Build Python extension" ON)


# cmake
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${PROJECT_SOURCE_DIR}/cmake;${PROJECT_SOURCE_DIR}/cmake/external")

# fc_patch dir
set(FETCHCONTENT_QUIET off)
get_filename_component(fc_patch "fc_patch" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}")
set(FETCHCONTENT_BASE_DIR ${fc_patch})
set(THIRD_PARTY_PATH ${fc_patch})

set(PYBIND11_PYTHON_VERSION ${PY_VERSION})
include(cmake/pybind.cmake)
include_directories(${PYTHON_INCLUDE_DIR})

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/paddleaudio/third_party/)

# packages
find_package(Python3 COMPONENTS Interpreter Development)

# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -O0 -Wall -g")
add_subdirectory(paddleaudio)

# Summary
include(cmake/summary.cmake)
onnx_print_configuration_summary()


================================================
FILE: audio/README.md
================================================
# PaddleAudio

安装方式: pip install paddleaudio

目前支持的平台:Linux, Mac, Windows

## Environment

## Build wheel
cmd: python setup.py bdist_wheel

Linux test build whl environment:
* os - Ubuntu 16.04.7 LTS
* gcc/g++ - 8.2.0
* cmake - 3.18.0 (need install)

MAC:test build whl environment:
* os 
* gcc/g++ 12.2.0
* cpu Intel Xeon E5 x86_64

Windows:
not support paddleaudio C++ extension lib (sox io, kaldi native fbank)


================================================
FILE: audio/cmake/FindGFortranLibs.cmake
================================================
#.rst:
# FindGFortranLibs
# --------
#  https://github.com/Argonne-National-Laboratory/PIPS/blob/master/cmake/Modules/FindGFortranLibs.cmake
#  https://enccs.github.io/cmake-workshop/cxx-fortran/
#
# Find gcc Fortran compiler & library paths
#
# The module defines the following variables:
#
# ::
#
#
#   GFORTRANLIBS_FOUND - true if system has gfortran
#   LIBGFORTRAN_LIBRARIES - path to libgfortran
#   LIBQUADMATH_LIBRARIES - path to libquadmath
#   GFORTRAN_LIBARIES_DIR - directory containing libgfortran, libquadmath
#   GFORTRAN_INCLUDE_DIR - directory containing gfortran/gcc headers
#   LIBGOMP_LIBRARIES - path to libgomp
#   LIBGOMP_INCLUDE_DIR - directory containing omp.h header
#   GFORTRAN_VERSION_STRING - version of gfortran found
#
set(CMAKE_REQUIRED_QUIET ${LIBIOMP_FIND_QUIETLY})

if(NOT CMAKE_REQUIRED_QUIET)
  message(STATUS "Looking for gfortran related libraries...")
endif()

enable_language(Fortran)
if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")

  # Basically, call "gfortran -v" to dump compiler info to the string
  # GFORTRAN_VERBOSE_STR, which will be used to get necessary paths
  message(STATUS "Extracting library and header information by calling 'gfortran -v'...")
  execute_process(COMMAND "${CMAKE_Fortran_COMPILER}" "-v" ERROR_VARIABLE
    GFORTRAN_VERBOSE_STR RESULT_VARIABLE FLAG)

  # For debugging
  message(STATUS "'gfortran -v' returned:")
  message(STATUS "${GFORTRAN_VERBOSE_STR}")

  # Detect gfortran version
  string(REGEX MATCH "gcc version [^\t\n ]+" GFORTRAN_VER_STR "${GFORTRAN_VERBOSE_STR}")
  string(REGEX REPLACE "gcc version ([^\t\n ]+)" "\\1" GFORTRAN_VERSION_STRING "${GFORTRAN_VER_STR}")
  message(STATUS "Detected gfortran version ${GFORTRAN_VERSION_STRING}")
  unset(GFORTRAN_VER_STR)

  set(MATCH_REGEX "[^\t\n ]+[\t\n ]+")
  set(REPLACE_REGEX "([^\t\n ]+)")

  # Find architecture for compiler
  string(REGEX MATCH "Target: [^\t\n ]+"
    GFORTRAN_ARCH_STR "${GFORTRAN_VERBOSE_STR}")
  message(STATUS "Architecture string: ${GFORTRAN_ARCH_STR}")
  string(REGEX REPLACE "Target: ([^\t\n ]+)" "\\1"
    GFORTRAN_ARCH "${GFORTRAN_ARCH_STR}")
  message(STATUS "Detected gfortran architecture: ${GFORTRAN_ARCH}")
  unset(GFORTRAN_ARCH_STR)

  # Find install prefix, if it exists; if not, use default
  string(REGEX MATCH  "--prefix=[^\t\n ]+[\t\n ]+"
    GFORTRAN_PREFIX_STR "${GFORTRAN_VERBOSE_STR}")
  if(NOT GFORTRAN_PREFIX_STR)
    message(STATUS "Detected default gfortran prefix")
    set(GFORTRAN_PREFIX_DIR "/usr/local") # default prefix for gcc install
  else()
    string(REGEX REPLACE "--prefix=([^\t\n ]+)" "\\1"
      GFORTRAN_PREFIX_DIR "${GFORTRAN_PREFIX_STR}")
  endif()
  message(STATUS "Detected gfortran prefix: ${GFORTRAN_PREFIX_DIR}")
  unset(GFORTRAN_PREFIX_STR)

  # Find install exec-prefix, if it exists; if not, use default
  string(REGEX MATCH "--exec-prefix=[^\t\n ]+[\t\n ]+" "\\1"
    GFORTRAN_EXEC_PREFIX_STR "${GFORTRAN_VERBOSE_STR}")
  if(NOT GFORTRAN_EXEC_PREFIX_STR)
    message(STATUS "Detected default gfortran exec-prefix")
    set(GFORTRAN_EXEC_PREFIX_DIR "${GFORTRAN_PREFIX_DIR}")
  else()
    string(REGEX REPLACE "--exec-prefix=([^\t\n ]+)" "\\1"
      GFORTRAN_EXEC_PREFIX_DIR "${GFORTRAN_EXEC_PREFIX_STR}")
  endif()
  message(STATUS "Detected gfortran exec-prefix: ${GFORTRAN_EXEC_PREFIX_DIR}")
  UNSET(GFORTRAN_EXEC_PREFIX_STR)

  # Find library directory and include directory, if library directory specified
  string(REGEX MATCH "--libdir=[^\t\n ]+"
    GFORTRAN_LIB_DIR_STR "${GFORTRAN_VERBOSE_STR}")
  if(NOT GFORTRAN_LIB_DIR_STR)
    message(STATUS "Found --libdir flag -- not found")
    message(STATUS "Using default gfortran library & include directory paths")
    string(STRIP ${GFORTRAN_PREFIX_DIR} TMPLIBDIR)
    set(GFORTRAN_LIBRARIES_DIR "${TMPLIBDIR}/lib64")
    set(GFORTRAN_INCLUDE_DIR "${TMPLIBDIR}/include")
  else()
    message(STATUS "Found --libdir flag -- yes")
    string(REGEX REPLACE "--libdir=([^\t\n ]+)" "\\1"
      GFORTRAN_LIBRARIES_DIR "${GFORTRAN_LIB_DIR_STR}")
    string(CONCAT GFORTRAN_INCLUDE_DIR "${GFORTRAN_LIBRARIES_DIR}" "/gcc/" "${GFORTRAN_ARCH}" "/" "${GFORTRAN_VERSION_STRING}" "/include")
  endif()
  message(STATUS "gfortran libraries path: ${GFORTRAN_LIBRARIES_DIR}")
  message(STATUS "gfortran include path dir: ${GFORTRAN_INCLUDE_DIR}")
  unset(GFORTRAN_LIB_DIR_STR)

  # There are lots of other build options for gcc & gfortran. For now, the
  # options implemented above should cover a lot of common use cases.

  # Clean up be deleting the output string from "gfortran -v"
  unset(GFORTRAN_VERBOSE_STR)

  # Find paths for libgfortran, libquadmath, libgomp
  # libgomp needed for OpenMP support without Clang
  find_library(LIBGFORTRAN_LIBRARIES NAMES gfortran libgfortran
    HINTS ${GFORTRAN_LIBRARIES_DIR})
  find_library(LIBQUADMATH_LIBRARIES NAMES quadmath libquadmath
    HINTS ${GFORTRAN_LIBRARIES_DIR})
  find_library(LIBGOMP_LIBRARIES NAMES gomp libgomp
    HINTS ${GFORTRAN_LIBRARIES_DIR})

  # Find OpenMP headers
  find_path(LIBGOMP_INCLUDE_DIR NAMES omp.h HINTS ${GFORTRAN_INCLUDE_DIR})

else()
  message(STATUS "CMAKE_Fortran_COMPILER_ID does not match 'GNU'!")
endif()

include(FindPackageHandleStandardArgs)

# Required: libgfortran, libquadmath, path for gfortran libraries
# Optional: libgomp, path for OpenMP headers, path for gcc/gfortran headers
find_package_handle_standard_args(GFortranLibs
  REQUIRED_VARS LIBGFORTRAN_LIBRARIES LIBQUADMATH_LIBRARIES GFORTRAN_LIBRARIES_DIR
  VERSION_VAR GFORTRAN_VERSION_STRING)

if(GFORTRANLIBS_FOUND)
  message(STATUS "Looking for gfortran libraries -- found")
  message(STATUS "gfortran version: ${GFORTRAN_VERSION_STRING}")
else()
  message(STATUS "Looking for gfortran libraries -- not found")
endif()

mark_as_advanced(LIBGFORTRAN_LIBRARIES LIBQUADMATH_LIBRARIES
  LIBGOMP_LIBRARIES LIBGOMP_INCLUDE_DIR
  GFORTRAN_LIBRARIES_DIR GFORTRAN_INCLUDE_DIR)
# FindGFortranLIBS.cmake ends here


message(STATUS LIBGFORTRAN_LIBRARIES= ${LIBGFORTRAN_LIBRARIES})
message(STATUS LIBQUADMATH_LIBRARIES= ${LIBQUADMATH_LIBRARIES})
message(STATUS LIBGOMP_LIBRARIES= ${LIBGOMP_LIBRARIES})
message(STATUS LIBGOMP_INCLUDE_DIR= ${LIBGOMP_INCLUDE_DIR})
message(STATUS GFORTRAN_LIBRARIES_DIR= ${GFORTRAN_LIBRARIES_DIR})
message(STATUS GFORTRAN_INCLUDE_DIR= ${GFORTRAN_INCLUDE_DIR})


================================================
FILE: audio/cmake/external/openblas.cmake
================================================
# 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.

include(ExternalProject)

set(CBLAS_PREFIX_DIR ${THIRD_PARTY_PATH}/openblas)
set(CBLAS_INSTALL_DIR ${THIRD_PARTY_PATH}/install/openblas)
set(CBLAS_REPOSITORY https://github.com/xianyi/OpenBLAS.git)
set(CBLAS_TAG v0.3.10)

if(NOT WIN32)
  set(CBLAS_LIBRARIES
      "${CBLAS_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}openblas${CMAKE_STATIC_LIBRARY_SUFFIX}"
      CACHE FILEPATH "openblas library." FORCE)
  set(CBLAS_INC_DIR
      "${CBLAS_INSTALL_DIR}/include"
      CACHE PATH "openblas include directory." FORCE)
  set(OPENBLAS_CC
      "${CMAKE_C_COMPILER} -Wno-unused-but-set-variable -Wno-unused-variable")

  if(APPLE)
    set(OPENBLAS_CC "${CMAKE_C_COMPILER} -isysroot ${CMAKE_OSX_SYSROOT}")
  endif()
  set(OPTIONAL_ARGS "")
  set(COMMON_ARGS "")

  if(APPLE)
    if(CMAKE_SYSTEM_PROCESSOR MATCHES "^x86(_64)?$")
      set(OPTIONAL_ARGS DYNAMIC_ARCH=1 NUM_THREADS=64)
    endif()
    set(COMMON_ARGS CC=${OPENBLAS_CC} NO_SHARED=1)
  endif()

  ExternalProject_Add(
    OPENBLAS
    URL "https://paddleaudio.bj.bcebos.com/build/OpenBLAS-0.3.10.zip"
    GIT_SHALLOW YES
    DOWNLOAD_DIR ${CBLAS_PREFIX_DIR}
    SOURCE_DIR ${CBLAS_PREFIX_DIR}
    INSTALL_DIR ${CBLAS_INSTALL_DIR}
    BUILD_IN_SOURCE 1
    BUILD_COMMAND make -j${NPROC} ${COMMON_ARGS} ${OPTIONAL_ARGS}
    INSTALL_COMMAND make install PREFIX=<INSTALL_DIR>
    UPDATE_COMMAND ""
    CONFIGURE_COMMAND ""
    BUILD_BYPRODUCTS ${CBLAS_LIBRARIES})

    ExternalProject_Get_Property(OPENBLAS INSTALL_DIR)
    set(OpenBLAS_INSTALL_PREFIX ${INSTALL_DIR})
    add_library(openblas STATIC IMPORTED)
    add_dependencies(openblas OPENBLAS)
    set_target_properties(openblas PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES Fortran)
    set_target_properties(openblas PROPERTIES IMPORTED_LOCATION ${OpenBLAS_INSTALL_PREFIX}/lib/libopenblas.a)

    link_directories(${OpenBLAS_INSTALL_PREFIX}/lib)
    include_directories(${OpenBLAS_INSTALL_PREFIX}/include)

    set(OPENBLAS_LIBRARIES
        ${OpenBLAS_INSTALL_PREFIX}/lib/libopenblas.a
    )

    add_library(libopenblas INTERFACE)
    add_dependencies(libopenblas openblas)
    target_include_directories(libopenblas INTERFACE ${OpenBLAS_INSTALL_PREFIX}/include/openblas)
    target_link_libraries(libopenblas INTERFACE ${OPENBLAS_LIBRARIES})
else()
  set(CBLAS_LIBRARIES
      "${CBLAS_INSTALL_DIR}/lib/openblas${CMAKE_STATIC_LIBRARY_SUFFIX}"
      CACHE FILEPATH "openblas library." FORCE)
  set(CBLAS_INC_DIR
      "${CBLAS_INSTALL_DIR}/include/openblas"
      CACHE PATH "openblas include directory." FORCE)
  ExternalProject_Add(
    extern_openblas
    ${EXTERNAL_PROJECT_LOG_ARGS}
    GIT_REPOSITORY ${CBLAS_REPOSITORY}
    GIT_TAG ${CBLAS_TAG}
    PREFIX ${CBLAS_PREFIX_DIR}
    INSTALL_DIR ${CBLAS_INSTALL_DIR}
    BUILD_IN_SOURCE 0
    UPDATE_COMMAND ""
    CMAKE_ARGS -DCMAKE_C_COMPILER=clang-cl
               -DCMAKE_CXX_COMPILER=clang-cl
               -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
               -DCMAKE_INSTALL_PREFIX=${CBLAS_INSTALL_DIR}
               -DCMAKE_BUILD_TYPE=Release #${THIRD_PARTY_BUILD_TYPE}
               -DCMAKE_MT=mt
               -DUSE_THREAD=OFF
               -DBUILD_WITHOUT_LAPACK=NO
               -DCMAKE_Fortran_COMPILER=flang
               -DNOFORTRAN=0
               -DDYNAMIC_ARCH=ON
               #${EXTERNAL_OPTIONAL_ARGS}
    CMAKE_CACHE_ARGS
      -DCMAKE_INSTALL_PREFIX:PATH=${CBLAS_INSTALL_DIR}
      -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
      -DCMAKE_BUILD_TYPE:STRING=Release #${THIRD_PARTY_BUILD_TYPE}
    # ninja need to know where openblas.lib comes from
    BUILD_BYPRODUCTS ${CBLAS_LIBRARIES})
  set(OPENBLAS_SHARED_LIB
      ${CBLAS_INSTALL_DIR}/bin/openblas${CMAKE_SHARED_LIBRARY_SUFFIX})

  add_library(openblas INTERFACE)
  add_dependencies(openblas extern_openblas)
  include_directories(${CBLAS_INC_DIR})
  link_libraries(${CBLAS_LIBRARIES})
endif()



================================================
FILE: audio/cmake/pybind.cmake
================================================
#the pybind11 is from:https://github.com/pybind/pybind11
# Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.

SET(PYBIND_ZIP "v2.10.0.zip")
SET(LOCAL_PYBIND_ZIP ${FETCHCONTENT_BASE_DIR}/${PYBIND_ZIP})
SET(PYBIND_SRC ${FETCHCONTENT_BASE_DIR}/pybind11)
SET(DOWNLOAD_URL "https://paddleaudio.bj.bcebos.com/build/v2.10.0.zip")
SET(PYBIND_TIMEOUT 600 CACHE STRING "Timeout in seconds when downloading pybind.")

IF(NOT EXISTS ${LOCAL_PYBIND_ZIP})
    FILE(DOWNLOAD ${DOWNLOAD_URL}
      ${LOCAL_PYBIND_ZIP}
      TIMEOUT ${PYBIND_TIMEOUT}
      STATUS ERR
      SHOW_PROGRESS
    )

    IF(ERR EQUAL 0)
        MESSAGE(STATUS "download pybind success")
    ELSE()
        MESSAGE(FATAL_ERROR "download pybind fail")
    ENDIF()
ENDIF()

IF(NOT EXISTS ${PYBIND_SRC})
    EXECUTE_PROCESS(
      COMMAND ${CMAKE_COMMAND} -E tar xfz ${LOCAL_PYBIND_ZIP}
       WORKING_DIRECTORY ${FETCHCONTENT_BASE_DIR}
       RESULT_VARIABLE tar_result
    )

    file(RENAME ${FETCHCONTENT_BASE_DIR}/pybind11-2.10.0 ${PYBIND_SRC})

  IF (tar_result MATCHES 0)
      MESSAGE(STATUS "unzip pybind success")
  ELSE()
      MESSAGE(FATAL_ERROR "unzip pybind fail")
  ENDIF()

ENDIF()

include_directories(${PYBIND_SRC}/include)


================================================
FILE: audio/cmake/summary.cmake
================================================
# SPDX-License-Identifier: Apache-2.0

# Prints accumulated ONNX configuration summary
function (onnx_print_configuration_summary)
  message(STATUS "")
  message(STATUS "******** Summary ********")
  message(STATUS "  CMake version             : ${CMAKE_VERSION}")
  message(STATUS "  CMake command             : ${CMAKE_COMMAND}")
  message(STATUS "  System                    : ${CMAKE_SYSTEM_NAME}")
  message(STATUS "  C++ compiler              : ${CMAKE_CXX_COMPILER}")
  message(STATUS "  C++ compiler version      : ${CMAKE_CXX_COMPILER_VERSION}")
  message(STATUS "  CXX flags                 : ${CMAKE_CXX_FLAGS}")
  message(STATUS "  Build type                : ${CMAKE_BUILD_TYPE}")
  get_directory_property(tmp DIRECTORY ${PROJECT_SOURCE_DIR} COMPILE_DEFINITIONS)
  message(STATUS "  Compile definitions       : ${tmp}")
  message(STATUS "  CMAKE_PREFIX_PATH         : ${CMAKE_PREFIX_PATH}")
  message(STATUS "  CMAKE_INSTALL_PREFIX      : ${CMAKE_INSTALL_PREFIX}")
  message(STATUS "  CMAKE_MODULE_PATH         : ${CMAKE_MODULE_PATH}")
  message(STATUS "")
  message(STATUS "  ONNX version              : ${ONNX_VERSION}")
  message(STATUS "  ONNX NAMESPACE            : ${ONNX_NAMESPACE}")
  message(STATUS "  ONNX_USE_LITE_PROTO       : ${ONNX_USE_LITE_PROTO}")
  message(STATUS "  USE_PROTOBUF_SHARED_LIBS  : ${ONNX_USE_PROTOBUF_SHARED_LIBS}")
  message(STATUS "  Protobuf_USE_STATIC_LIBS  : ${Protobuf_USE_STATIC_LIBS}")
  message(STATUS "  ONNX_DISABLE_EXCEPTIONS   : ${ONNX_DISABLE_EXCEPTIONS}")
  message(STATUS "  ONNX_WERROR               : ${ONNX_WERROR}")
  message(STATUS "  ONNX_BUILD_TESTS          : ${ONNX_BUILD_TESTS}")
  message(STATUS "  ONNX_BUILD_BENCHMARKS     : ${ONNX_BUILD_BENCHMARKS}")
  message(STATUS "  ONNXIFI_DUMMY_BACKEND     : ${ONNXIFI_DUMMY_BACKEND}")
  message(STATUS "  ONNXIFI_ENABLE_EXT        : ${ONNXIFI_ENABLE_EXT}")
  message(STATUS "")
  message(STATUS "  Protobuf compiler         : ${PROTOBUF_PROTOC_EXECUTABLE}")
  message(STATUS "  Protobuf includes         : ${PROTOBUF_INCLUDE_DIRS}")
  message(STATUS "  Protobuf libraries        : ${PROTOBUF_LIBRARIES}")
  message(STATUS "  BUILD_ONNX_PYTHON         : ${BUILD_ONNX_PYTHON}")
  message(STATUS "    Python version        : ${Python_VERSION}")
  message(STATUS "    Python executable     : ${Python_EXECUTABLE}")
  message(STATUS "    Python includes       : ${Python_INCLUDE_DIR}")
  message(STATUS "    Python libraries      : ${Python_LIBRARY}")
  message(STATUS "  PYBIND11                  : ${pybind11_FOUND}")
  message(STATUS "    Pybind11 version        : ${pybind11_VERSION}")
  message(STATUS "    Pybind11 include        : ${pybind11_INCLUDE_DIR}")
  message(STATUS "    Pybind11 includes       : ${pybind11_INCLUDE_DIRS}")
  message(STATUS "    Pybind11 libraries      : ${pybind11_LIBRARIES}")
endfunction()

================================================
FILE: audio/paddleaudio/CMakeLists.txt
================================================

add_subdirectory(third_party)
add_subdirectory(src)


================================================
FILE: audio/paddleaudio/__init__.py
================================================
# 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.
from . import _extension
from . import backends
from . import compliance
from . import datasets
from . import features
from . import functional
from . import metric
from . import sox_effects
from . import utils


================================================
FILE: audio/paddleaudio/_extension.py
================================================
import contextlib
import ctypes
import os
import sys
import types
import warnings
from pathlib import Path

from ._internal import module_utils as _mod_utils  # noqa: F401

# Query `hasattr` only once.
_SET_GLOBAL_FLAGS = hasattr(sys, 'getdlopenflags') and hasattr(sys,
                                                               'setdlopenflags')


@contextlib.contextmanager
def dl_open_guard():
    """
    # https://manpages.debian.org/bullseye/manpages-dev/dlopen.3.en.html
    Context manager to set the RTLD_GLOBAL dynamic linker flag while we open a
    shared library to load custom operators.
    """
    if _SET_GLOBAL_FLAGS:
        old_flags = sys.getdlopenflags()
        sys.setdlopenflags(old_flags | ctypes.RTLD_GLOBAL)
    yield
    if _SET_GLOBAL_FLAGS:
        sys.setdlopenflags(old_flags)


def resolve_library_path(path: str) -> str:
    return os.path.realpath(path)


class _Ops(types.ModuleType):
    #__file__ = '_ops.py'

    def __init__(self):
        super(_Ops, self).__init__('paddleaudio.ops')
        self.loaded_libraries = set()

    def load_library(self, path):
        """
        Loads a shared library from the given path into the current process.
        This allows dynamically loading custom operators. For this, 
        you should compile your operator and 
        the static registration code into a shared library object, and then
        call ``paddleaudio.ops.load_library('path/to/libcustom.so')`` to load the
        shared object.
        After the library is loaded, it is added to the
        ``paddleaudio.ops.loaded_libraries`` attribute, a set that may be inspected
        for the paths of all libraries loaded using this function.
        Args:
            path (str): A path to a shared library to load.
        """
        path = resolve_library_path(path)
        with dl_open_guard():
            # https://docs.python.org/3/library/ctypes.html?highlight=ctypes#loading-shared-libraries
            # Import the shared library into the process, thus running its
            # static (global) initialization code in order to register custom
            # operators with the JIT.
            ctypes.CDLL(path)
        self.loaded_libraries.add(path)


_LIB_DIR = Path(__file__).parent / "lib"


def _get_lib_path(lib: str):
    suffix = "pyd" if os.name == "nt" else "so"
    path = _LIB_DIR / f"{lib}.{suffix}"
    return path


def _load_lib(lib: str) -> bool:
    """Load extension module
    Note:
        In case `paddleaudio` is deployed with `pex` format, the library file
        is not in a standard location.
        In this case, we expect that `libpaddlleaudio` is available somewhere
        in the search path of dynamic loading mechanism, so that importing
        `_paddlleaudio` will have library loader find and load `libpaddlleaudio`.
        This is the reason why the function should not raising an error when the library
        file is not found.
    Returns:
        bool:
            True if the library file is found AND the library loaded without failure.
            False if the library file is not found (like in the case where paddlleaudio
            is deployed with pex format, thus the shared library file is
            in a non-standard location.).
            If the library file is found but there is an issue loading the library,
            (such as missing dependency) then this function raises the exception as-is.
    Raises:
        Exception:
            If the library file is found, but there is an issue loading the library file,
            (when underlying `ctype.DLL` throws an exception), this function will pass
            the exception as-is, instead of catching it and returning bool.
            The expected case is `OSError` thrown by `ctype.DLL` when a dynamic dependency
            is not found.
            This behavior was chosen because the expected failure case is not recoverable.
            If a dependency is missing, then users have to install it.
    """
    path = _get_lib_path(lib)
    if not path.exists():
        warnings.warn("lib path is not exists:" + str(path))
        return False
    ops.load_library(path)
    return True


_FFMPEG_INITIALIZED = False


def _init_ffmpeg():
    global _FFMPEG_INITIALIZED
    if _FFMPEG_INITIALIZED:
        return

    if not paddleaudio._paddlleaudio.is_ffmpeg_available():
        raise RuntimeError(
            "paddlleaudio is not compiled with FFmpeg integration. Please set USE_FFMPEG=1 when compiling paddlleaudio."
        )

    try:
        _load_lib("libpaddlleaudio_ffmpeg")
    except OSError as err:
        raise ImportError(
            "FFmpeg libraries are not found. Please install FFmpeg.") from err

    import paddllespeech.audio._paddlleaudio_ffmpeg  # noqa

    paddleaudio._paddlleaudio.ffmpeg_init()
    if paddleaudio._paddlleaudio.ffmpeg_get_log_level() > 8:
        paddleaudio._paddlleaudio.ffmpeg_set_log_level(8)

    _FFMPEG_INITIALIZED = True


def _init_extension():
    if not _mod_utils.is_module_available("paddleaudio._paddleaudio"):
        warnings.warn(
            "paddleaudio C++ extension is not available. sox_io, sox_effect, kaldi raw feature is not supported!!!")
        return

    _load_lib("libpaddleaudio")
    # This import is for initializing the methods registered via PyBind11
    # This has to happen after the base library is loaded
    try:
        from paddleaudio import _paddleaudio  # noqa
    except Exception:
        warnings.warn(
            "paddleaudio C++ extension is not available. sox_io, sox_effect, kaldi raw feature is not supported!!!")
        return

    # Because this part is executed as part of `import torchaudio`, we ignore the
    # initialization failure.
    # If the FFmpeg integration is not properly initialized, then detailed error
    # will be raised when client code attempts to import the dedicated feature.
    try:
        _init_ffmpeg()
    except Exception:
        pass


ops = _Ops()

_init_extension()


================================================
FILE: audio/paddleaudio/_internal/__init__.py
================================================


================================================
FILE: audio/paddleaudio/_internal/module_utils.py
================================================
import importlib.util
import platform
import warnings
from functools import wraps
from typing import Optional

#code is from https://github.com/pytorch/audio/blob/main/torchaudio/_internal/module_utils.py with modification.


def is_module_available(*modules: str) -> bool:
    r"""Returns if a top-level module with :attr:`name` exists *without**
    importing it. This is generally safer than try-catch block around a
    `import X`. It avoids third party libraries breaking assumptions of some of
    our tests, e.g., setting multiprocessing start method when imported
    (see librosa/#747, torchvision/#544).
    """
    return all(importlib.util.find_spec(m) is not None for m in modules)


def requires_module(*modules: str):
    """Decorate function to give error message if invoked without required optional modules.
    This decorator is to give better error message to users rather
    than raising ``NameError:  name 'module' is not defined`` at random places.
    """
    missing = [m for m in modules if not is_module_available(m)]

    if not missing:
        # fall through. If all the modules are available, no need to decorate
        def decorator(func):
            return func

    else:
        req = f"module: {missing[0]}" if len(
            missing) == 1 else f"modules: {missing}"

        def decorator(func):
            @wraps(func)
            def wrapped(*args, **kwargs):
                raise RuntimeError(
                    f"{func.__module__}.{func.__name__} requires {req}")

            return wrapped

    return decorator


def deprecated(direction: str, version: Optional[str]=None):
    """Decorator to add deprecation message
    Args:
        direction (str): Migration steps to be given to users.
        version (str or int): The version when the object will be removed
    """

    def decorator(func):
        @wraps(func)
        def wrapped(*args, **kwargs):
            message = (
                f"{func.__module__}.{func.__name__} has been deprecated "
                f'and will be removed from {"future" if version is None else version} release. '
                f"{direction}")
            warnings.warn(message, stacklevel=2)
            return func(*args, **kwargs)

        return wrapped

    return decorator


def is_kaldi_available():
    try:
        from paddleaudio import _paddleaudio  
        return True
    except Exception:
        return False

def requires_kaldi():
    if is_kaldi_available():

        def decorator(func):
            return func

    else:

        def decorator(func):
            @wraps(func)
            def wrapped(*args, **kwargs):
                raise RuntimeError(
                    f"{func.__module__}.{func.__name__} requires libpaddleaudio build with kaldi")

            return wrapped

    return decorator


def _check_soundfile_importable():
    if not is_module_available("soundfile"):
        return False
    try:
        import soundfile  # noqa: F401

        return True
    except Exception:
        warnings.warn(
            "Failed to import soundfile. 'soundfile' backend is not available.")
        return False


_is_soundfile_importable = _check_soundfile_importable()


def is_soundfile_available():
    return _is_soundfile_importable


def requires_soundfile():
    if is_soundfile_available():

        def decorator(func):
            return func
    else:

        def decorator(func):
            @wraps(func)
            def wrapped(*args, **kwargs):
                raise RuntimeError(
                    f"{func.__module__}.{func.__name__} requires soundfile")

            return wrapped

    return decorator


def is_sox_available():
    try:
        from paddleaudio import _paddleaudio  
        return True
    except Exception:
        return False


def requires_sox():
    if is_sox_available():

        def decorator(func):
            return func
    else:

        def decorator(func):
            @wraps(func)
            def wrapped(*args, **kwargs):
                raise RuntimeError(
                    f"{func.__module__}.{func.__name__} requires libpaddleaudio build with sox")

            return wrapped

    return decorator


================================================
FILE: audio/paddleaudio/backends/__init__.py
================================================
# 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 . import utils
from .soundfile_backend import depth_convert
from .soundfile_backend import normalize
from .soundfile_backend import resample
from .soundfile_backend import soundfile_load
from .soundfile_backend import soundfile_save
from .soundfile_backend import to_mono
from .utils import get_audio_backend
from .utils import list_audio_backends
from .utils import set_audio_backend

utils._init_audio_backend()


================================================
FILE: audio/paddleaudio/backends/common.py
================================================
# Token from https://github.com/pytorch/audio/blob/main/torchaudio/backend/common.py with modification.


class AudioInfo:
    """return of info function.

    This class is used by :ref:`"sox_io" backend<sox_io_backend>` and
    :ref:`"soundfile" backend with the new interface<soundfile_backend>`.

    :ivar int sample_rate: Sample rate
    :ivar int num_frames: The number of frames
    :ivar int num_channels: The number of channels
    :ivar int bits_per_sample: The number of bits per sample. This is 0 for lossy formats,
        or when it cannot be accurately inferred.
    :ivar str encoding: Audio encoding
        The values encoding can take are one of the following:

            * ``PCM_S``: Signed integer linear PCM
            * ``PCM_U``: Unsigned integer linear PCM
            * ``PCM_F``: Floating point linear PCM
            * ``FLAC``: Flac, Free Lossless Audio Codec
            * ``ULAW``: Mu-law
            * ``ALAW``: A-law
            * ``MP3`` : MP3, MPEG-1 Audio Layer III
            * ``VORBIS``: OGG Vorbis
            * ``AMR_WB``: Adaptive Multi-Rate
            * ``AMR_NB``: Adaptive Multi-Rate Wideband
            * ``OPUS``: Opus
            * ``HTK``: Single channel 16-bit PCM
            * ``UNKNOWN`` : None of above
    """

    def __init__(
            self,
            sample_rate: int,
            num_frames: int,
            num_channels: int,
            bits_per_sample: int,
            encoding: str, ):
        self.sample_rate = sample_rate
        self.num_frames = num_frames
        self.num_channels = num_channels
        self.bits_per_sample = bits_per_sample
        self.encoding = encoding

    def __str__(self):
        return (f"AudioMetaData("
                f"sample_rate={self.sample_rate}, "
                f"num_frames={self.num_frames}, "
                f"num_channels={self.num_channels}, "
                f"bits_per_sample={self.bits_per_sample}, "
                f"encoding={self.encoding}"
                f")")


================================================
FILE: audio/paddleaudio/backends/no_backend.py
================================================
from pathlib import Path
from typing import Callable
from typing import Optional
from typing import Tuple
from typing import Union

from paddle import Tensor

#code is from: https://github.com/pytorch/audio/blob/main/torchaudio/backend/no_backend.py


def load(
        filepath: Union[str, Path],
        out: Optional[Tensor]=None,
        normalization: Union[bool, float, Callable]=True,
        channels_first: bool=True,
        num_frames: int=0,
        offset: int=0,
        filetype: Optional[str]=None, ) -> Tuple[Tensor, int]:
    raise RuntimeError("No audio I/O backend is available.")


def save(filepath: str,
         src: Tensor,
         sample_rate: int,
         precision: int=16,
         channels_first: bool=True) -> None:
    raise RuntimeError("No audio I/O backend is available.")


def info(filepath: str) -> None:
    raise RuntimeError("No audio I/O backend is available.")


================================================
FILE: audio/paddleaudio/backends/soundfile_backend.py
================================================
# 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.
import os
import warnings
from typing import Optional
from typing import Tuple

import numpy as np
import paddle
import resampy
import soundfile
from scipy.io import wavfile

from ..utils import depth_convert
from ..utils import ParameterError
from .common import AudioInfo

__all__ = [
    'resample',
    'to_mono',
    'normalize',
    'save',
    'soundfile_save',
    'load',
    'soundfile_load',
    'info',
]
NORMALMIZE_TYPES = ['linear', 'gaussian']
MERGE_TYPES = ['ch0', 'ch1', 'random', 'average']
RESAMPLE_MODES = ['kaiser_best', 'kaiser_fast']
EPS = 1e-8


def resample(y: np.ndarray,
             src_sr: int,
             target_sr: int,
             mode: str='kaiser_fast') -> np.ndarray:
    """Audio resampling.

    Args:
        y (np.ndarray): Input waveform array in 1D or 2D.
        src_sr (int): Source sample rate.
        target_sr (int): Target sample rate.
        mode (str, optional): The resampling filter to use. Defaults to 'kaiser_fast'.

    Returns:
        np.ndarray: `y` resampled to `target_sr`
    """

    if mode == 'kaiser_best':
        warnings.warn(
            f'Using resampy in kaiser_best to {src_sr}=>{target_sr}. This function is pretty slow, \
        we recommend the mode kaiser_fast in large scale audio training')

    if not isinstance(y, np.ndarray):
        raise ParameterError(
            'Only support numpy np.ndarray, but received y in {type(y)}')

    if mode not in RESAMPLE_MODES:
        raise ParameterError(f'resample mode must in {RESAMPLE_MODES}')

    return resampy.resample(y, src_sr, target_sr, filter=mode)


def to_mono(y: np.ndarray, merge_type: str='average') -> np.ndarray:
    """Convert sterior audio to mono.

    Args:
        y (np.ndarray): Input waveform array in 1D or 2D.
        merge_type (str, optional): Merge type to generate mono waveform. Defaults to 'average'.

    Returns:
        np.ndarray: `y` with mono channel.
    """

    if merge_type not in MERGE_TYPES:
        raise ParameterError(
            f'Unsupported merge type {merge_type}, available types are {MERGE_TYPES}'
        )
    if y.ndim > 2:
        raise ParameterError(
            f'Unsupported audio array,  y.ndim > 2, the shape is {y.shape}')
    if y.ndim == 1:  # nothing to merge
        return y

    if merge_type == 'ch0':
        return y[0]
    if merge_type == 'ch1':
        return y[1]
    if merge_type == 'random':
        return y[np.random.randint(0, 2)]

    # need to do averaging according to dtype

    if y.dtype == 'float32':
        y_out = (y[0] + y[1]) * 0.5
    elif y.dtype == 'int16':
        y_out = y.astype('int32')
        y_out = (y_out[0] + y_out[1]) // 2
        y_out = np.clip(y_out, np.iinfo(y.dtype).min,
                        np.iinfo(y.dtype).max).astype(y.dtype)

    elif y.dtype == 'int8':
        y_out = y.astype('int16')
        y_out = (y_out[0] + y_out[1]) // 2
        y_out = np.clip(y_out, np.iinfo(y.dtype).min,
                        np.iinfo(y.dtype).max).astype(y.dtype)
    else:
        raise ParameterError(f'Unsupported dtype: {y.dtype}')
    return y_out


def soundfile_load_(file: os.PathLike,
                    offset: Optional[float]=None,
                    dtype: str='int16',
                    duration: Optional[int]=None) -> Tuple[np.ndarray, int]:
    """Load audio using soundfile library. This function load audio file using libsndfile.

    Args:
        file (os.PathLike): File of waveform.
        offset (Optional[float], optional): Offset to the start of waveform. Defaults to None.
        dtype (str, optional): Data type of waveform. Defaults to 'int16'.
        duration (Optional[int], optional): Duration of waveform to read. Defaults to None.

    Returns:
        Tuple[np.ndarray, int]: Waveform in ndarray and its samplerate.
    """
    with soundfile.SoundFile(file) as sf_desc:
        sr_native = sf_desc.samplerate
        if offset:
            sf_desc.seek(int(offset * sr_native))
        if duration is not None:
            frame_duration = int(duration * sr_native)
        else:
            frame_duration = -1
        y = sf_desc.read(frames=frame_duration, dtype=dtype, always_2d=False).T

    return y, sf_desc.samplerate


def normalize(y: np.ndarray, norm_type: str='linear',
              mul_factor: float=1.0) -> np.ndarray:
    """Normalize an input audio with additional multiplier.

    Args:
        y (np.ndarray): Input waveform array in 1D or 2D.
        norm_type (str, optional): Type of normalization. Defaults to 'linear'.
        mul_factor (float, optional): Scaling factor. Defaults to 1.0.

    Returns:
        np.ndarray: `y` after normalization.
    """

    if norm_type == 'linear':
        amax = np.max(np.abs(y))
        factor = 1.0 / (amax + EPS)
        y = y * factor * mul_factor
    elif norm_type == 'gaussian':
        amean = np.mean(y)
        astd = np.std(y)
        astd = max(astd, EPS)
        y = mul_factor * (y - amean) / astd
    else:
        raise NotImplementedError(f'norm_type should be in {NORMALMIZE_TYPES}')

    return y


def soundfile_save(y: np.ndarray, sr: int, file: os.PathLike) -> None:
    """Save audio file to disk. This function saves audio to disk using scipy.io.wavfile, with additional step to convert input waveform to int16.

    Args:
        y (np.ndarray): Input waveform array in 1D or 2D.
        sr (int): Sample rate.
        file (os.PathLike): Path of audio file to save.
    """
    if not file.endswith('.wav'):
        raise ParameterError(
            f'only .wav file supported, but dst file name is: {file}')

    if sr <= 0:
        raise ParameterError(
            f'Sample rate should be larger than 0, received sr = {sr}')

    if y.dtype not in ['int16', 'int8']:
        warnings.warn(
            f'input data type is {y.dtype}, will convert data to int16 format before saving'
        )
        y_out = depth_convert(y, 'int16')
    else:
        y_out = y

    wavfile.write(file, sr, y_out)


def soundfile_load(
        file: os.PathLike,
        sr: Optional[int]=None,
        mono: bool=True,
        merge_type: str='average',  # ch0,ch1,random,average
        normal: bool=True,
        norm_type: str='linear',
        norm_mul_factor: float=1.0,
        offset: float=0.0,
        duration: Optional[int]=None,
        dtype: str='float32',
        resample_mode: str='kaiser_fast') -> Tuple[np.ndarray, int]:
    """Load audio file from disk. This function loads audio from disk using using audio backend.

    Args:
        file (os.PathLike): Path of audio file to load.
        sr (Optional[int], optional): Sample rate of loaded waveform. Defaults to None.
        mono (bool, optional): Return waveform with mono channel. Defaults to True.
        merge_type (str, optional): Merge type of multi-channels waveform. Defaults to 'average'.
        normal (bool, optional): Waveform normalization. Defaults to True.
        norm_type (str, optional): Type of normalization. Defaults to 'linear'.
        norm_mul_factor (float, optional): Scaling factor. Defaults to 1.0.
        offset (float, optional): Offset to the start of waveform. Defaults to 0.0.
        duration (Optional[int], optional): Duration of waveform to read. Defaults to None.
        dtype (str, optional): Data type of waveform. Defaults to 'float32'.
        resample_mode (str, optional): The resampling filter to use. Defaults to 'kaiser_fast'.

    Returns:
        Tuple[np.ndarray, int]: Waveform in ndarray and its samplerate.
    """

    y, r = soundfile_load_(file, offset=offset, dtype=dtype, duration=duration)

    if not ((y.ndim == 1 and len(y) > 0) or (y.ndim == 2 and len(y[0]) > 0)):
        raise ParameterError(f'audio file {file} looks empty')

    if mono:
        y = to_mono(y, merge_type)

    if sr is not None and sr != r:
        y = resample(y, r, sr, mode=resample_mode)
        r = sr

    if normal:
        y = normalize(y, norm_type, norm_mul_factor)
    elif dtype in ['int8', 'int16']:
        # still need to do normalization, before depth conversion
        y = normalize(y, 'linear', 1.0)

    y = depth_convert(y, dtype)
    return y, r


#The code below is taken from: https://github.com/pytorch/audio/blob/main/torchaudio/backend/soundfile_backend.py, with some modifications.


def _get_subtype_for_wav(dtype: paddle.dtype,
                         encoding: str,
                         bits_per_sample: int):
    if not encoding:
        if not bits_per_sample:
            subtype = {
                paddle.uint8: "PCM_U8",
                paddle.int16: "PCM_16",
                paddle.int32: "PCM_32",
                paddle.float32: "FLOAT",
                paddle.float64: "DOUBLE",
            }.get(dtype)
            if not subtype:
                raise ValueError(f"Unsupported dtype for wav: {dtype}")
            return subtype
        if bits_per_sample == 8:
            return "PCM_U8"
        return f"PCM_{bits_per_sample}"
    if encoding == "PCM_S":
        if not bits_per_sample:
            return "PCM_32"
        if bits_per_sample == 8:
            raise ValueError("wav does not support 8-bit signed PCM encoding.")
        return f"PCM_{bits_per_sample}"
    if encoding == "PCM_U":
        if bits_per_sample in (None, 8):
            return "PCM_U8"
        raise ValueError("wav only supports 8-bit unsigned PCM encoding.")
    if encoding == "PCM_F":
        if bits_per_sample in (None, 32):
            return "FLOAT"
        if bits_per_sample == 64:
            return "DOUBLE"
        raise ValueError("wav only supports 32/64-bit float PCM encoding.")
    if encoding == "ULAW":
        if bits_per_sample in (None, 8):
            return "ULAW"
        raise ValueError("wav only supports 8-bit mu-law encoding.")
    if encoding == "ALAW":
        if bits_per_sample in (None, 8):
            return "ALAW"
        raise ValueError("wav only supports 8-bit a-law encoding.")
    raise ValueError(f"wav does not support {encoding}.")


def _get_subtype_for_sphere(encoding: str, bits_per_sample: int):
    if encoding in (None, "PCM_S"):
        return f"PCM_{bits_per_sample}" if bits_per_sample else "PCM_32"
    if encoding in ("PCM_U", "PCM_F"):
        raise ValueError(f"sph does not support {encoding} encoding.")
    if encoding == "ULAW":
        if bits_per_sample in (None, 8):
            return "ULAW"
        raise ValueError("sph only supports 8-bit for mu-law encoding.")
    if encoding == "ALAW":
        return "ALAW"
    raise ValueError(f"sph does not support {encoding}.")


def _get_subtype(dtype: paddle.dtype,
                 format: str,
                 encoding: str,
                 bits_per_sample: int):
    if format == "wav":
        return _get_subtype_for_wav(dtype, encoding, bits_per_sample)
    if format == "flac":
        if encoding:
            raise ValueError("flac does not support encoding.")
        if not bits_per_sample:
            return "PCM_16"
        if bits_per_sample > 24:
            raise ValueError("flac does not support bits_per_sample > 24.")
        return "PCM_S8" if bits_per_sample == 8 else f"PCM_{bits_per_sample}"
    if format in ("ogg", "vorbis"):
        if encoding or bits_per_sample:
            raise ValueError(
                "ogg/vorbis does not support encoding/bits_per_sample.")
        return "VORBIS"
    if format == "sph":
        return _get_subtype_for_sphere(encoding, bits_per_sample)
    if format in ("nis", "nist"):
        return "PCM_16"
    raise ValueError(f"Unsupported format: {format}")


def save(
        filepath: str,
        src: paddle.Tensor,
        sample_rate: int,
        channels_first: bool=True,
        compression: Optional[float]=None,
        format: Optional[str]=None,
        encoding: Optional[str]=None,
        bits_per_sample: Optional[int]=None, ):
    """Save audio data to file.

    Note:
        The formats this function can handle depend on the soundfile installation.
        This function is tested on the following formats;

        * WAV

            * 32-bit floating-point
            * 32-bit signed integer
            * 16-bit signed integer
            * 8-bit unsigned integer

        * FLAC
        * OGG/VORBIS
        * SPHERE

    Note:
        ``filepath`` argument is intentionally annotated as ``str`` only, even though it accepts
        ``pathlib.Path`` object as well. This is for the consistency with ``"sox_io"`` backend,

    Args:
        filepath (str or pathlib.Path): Path to audio file.
        src (paddle.Tensor): Audio data to save. must be 2D tensor.
        sample_rate (int): sampling rate
        channels_first (bool, optional): If ``True``, the given tensor is interpreted as `[channel, time]`,
            otherwise `[time, channel]`.
        compression (float of None, optional): Not used.
            It is here only for interface compatibility reason with "sox_io" backend.
        format (str or None, optional): Override the audio format.
            When ``filepath`` argument is path-like object, audio format is
            inferred from file extension. If the file extension is missing or
            different, you can specify the correct format with this argument.

            When ``filepath`` argument is file-like object,
            this argument is required.

            Valid values are ``"wav"``, ``"ogg"``, ``"vorbis"``,
            ``"flac"`` and ``"sph"``.
        encoding (str or None, optional): Changes the encoding for supported formats.
            This argument is effective only for supported formats, such as
            ``"wav"``, ``""flac"`` and ``"sph"``. Valid values are:

                - ``"PCM_S"`` (signed integer Linear PCM)
                - ``"PCM_U"`` (unsigned integer Linear PCM)
                - ``"PCM_F"`` (floating point PCM)
                - ``"ULAW"`` (mu-law)
                - ``"ALAW"`` (a-law)

        bits_per_sample (int or None, optional): Changes the bit depth for the
            supported formats.
            When ``format`` is one of ``"wav"``, ``"flac"`` or ``"sph"``,
            you can change the bit depth.
            Valid values are ``8``, ``16``, ``24``, ``32`` and ``64``.

    Supported formats/encodings/bit depth/compression are:

    ``"wav"``
        - 32-bit floating-point PCM
        - 32-bit signed integer PCM
        - 24-bit signed integer PCM
        - 16-bit signed integer PCM
        - 8-bit unsigned integer PCM
        - 8-bit mu-law
        - 8-bit a-law

        Note:
            Default encoding/bit depth is determined by the dtype of
            the input Tensor.

    ``"flac"``
        - 8-bit
        - 16-bit (default)
        - 24-bit

    ``"ogg"``, ``"vorbis"``
        - Doesn't accept changing configuration.

    ``"sph"``
        - 8-bit signed integer PCM
        - 16-bit signed integer PCM
        - 24-bit signed integer PCM
        - 32-bit signed integer PCM (default)
        - 8-bit mu-law
        - 8-bit a-law
        - 16-bit a-law
        - 24-bit a-law
        - 32-bit a-law

    """
    if src.ndim != 2:
        raise ValueError(f"Expected 2D Tensor, got {src.ndim}D.")
    if compression is not None:
        warnings.warn(
            '`save` function of "soundfile" backend does not support "compression" parameter. '
            "The argument is silently ignored.")
    if hasattr(filepath, "write"):
        if format is None:
            raise RuntimeError(
                "`format` is required when saving to file object.")
        ext = format.lower()
    else:
        ext = str(filepath).split(".")[-1].lower()

    if bits_per_sample not in (None, 8, 16, 24, 32, 64):
        raise ValueError("Invalid bits_per_sample.")
    if bits_per_sample == 24:
        warnings.warn(
            "Saving audio with 24 bits per sample might warp samples near -1. "
            "Using 16 bits per sample might be able to avoid this.")
    subtype = _get_subtype(src.dtype, ext, encoding, bits_per_sample)

    # sph is a extension used in TED-LIUM but soundfile does not recognize it as NIST format,
    # so we extend the extensions manually here
    if ext in ["nis", "nist", "sph"] and format is None:
        format = "NIST"

    if channels_first:
        src = src.t()

    soundfile.write(
        file=filepath,
        data=src,
        samplerate=sample_rate,
        subtype=subtype,
        format=format)


_SUBTYPE2DTYPE = {
    "PCM_S8": "int8",
    "PCM_U8": "uint8",
    "PCM_16": "int16",
    "PCM_32": "int32",
    "FLOAT": "float32",
    "DOUBLE": "float64",
}


def load(
        filepath: str,
        frame_offset: int=0,
        num_frames: int=-1,
        normalize: bool=True,
        channels_first: bool=True,
        format: Optional[str]=None, ) -> Tuple[paddle.Tensor, int]:
    """Load audio data from file.

    Note:
        The formats this function can handle depend on the soundfile installation.
        This function is tested on the following formats;

        * WAV

            * 32-bit floating-point
            * 32-bit signed integer
            * 16-bit signed integer
            * 8-bit unsigned integer

        * FLAC
        * OGG/VORBIS
        * SPHERE

    By default (``normalize=True``, ``channels_first=True``), this function returns Tensor with
    ``float32`` dtype and the shape of `[channel, time]`.
    The samples are normalized to fit in the range of ``[-1.0, 1.0]``.

    When the input format is WAV with integer type, such as 32-bit signed integer, 16-bit
    signed integer and 8-bit unsigned integer (24-bit signed integer is not supported),
    by providing ``normalize=False``, this function can return integer Tensor, where the samples
    are expressed within the whole range of the corresponding dtype, that is, ``int32`` tensor
    for 32-bit signed PCM, ``int16`` for 16-bit signed PCM and ``uint8`` for 8-bit unsigned PCM.

    ``normalize`` parameter has no effect on 32-bit floating-point WAV and other formats, such as
    ``flac`` and ``mp3``.
    For these formats, this function always returns ``float32`` Tensor with values normalized to
    ``[-1.0, 1.0]``.

    Note:
        ``filepath`` argument is intentionally annotated as ``str`` only, even though it accepts
        ``pathlib.Path`` object as well. This is for the consistency with ``"sox_io"`` backend.

    Args:
        filepath (path-like object or file-like object):
            Source of audio data.
        frame_offset (int, optional):
            Number of frames to skip before start reading data.
        num_frames (int, optional):
            Maximum number of frames to read. ``-1`` reads all the remaining samples,
            starting from ``frame_offset``.
            This function may return the less number of frames if there is not enough
            frames in the given file.
        normalize (bool, optional):
            When ``True``, this function always return ``float32``, and sample values are
            normalized to ``[-1.0, 1.0]``.
            If input file is integer WAV, giving ``False`` will change the resulting Tensor type to
            integer type.
            This argument has no effect for formats other than integer WAV type.
        channels_first (bool, optional):
            When True, the returned Tensor has dimension `[channel, time]`.
            Otherwise, the returned Tensor's dimension is `[time, channel]`.
        format (str or None, optional):
            Not used. PySoundFile does not accept format hint.

    Returns:
        (paddle.Tensor, int): Resulting Tensor and sample rate.
            If the input file has integer wav format and normalization is off, then it has
            integer type, else ``float32`` type. If ``channels_first=True``, it has
            `[channel, time]` else `[time, channel]`.
    """
    with soundfile.SoundFile(filepath, "r") as file_:
        if file_.format != "WAV" or normalize:
            dtype = "float32"
        elif file_.subtype not in _SUBTYPE2DTYPE:
            raise ValueError(f"Unsupported subtype: {file_.subtype}")
        else:
            dtype = _SUBTYPE2DTYPE[file_.subtype]

        frames = file_._prepare_read(frame_offset, None, num_frames)
        waveform = file_.read(frames, dtype, always_2d=True)
        sample_rate = file_.samplerate

    waveform = paddle.to_tensor(waveform)
    if channels_first:
        waveform = paddle.transpose(waveform, perm=[1, 0])
    return waveform, sample_rate


# Mapping from soundfile subtype to number of bits per sample.
# This is mostly heuristical and the value is set to 0 when it is irrelevant
# (lossy formats) or when it can't be inferred.
# For ADPCM (and G72X) subtypes, it's hard to infer the bit depth because it's not part of the standard:
# According to https://en.wikipedia.org/wiki/Adaptive_differential_pulse-code_modulation#In_telephony,
# the default seems to be 8 bits but it can be compressed further to 4 bits.
# The dict is inspired from
# https://github.com/bastibe/python-soundfile/blob/744efb4b01abc72498a96b09115b42a4cabd85e4/soundfile.py#L66-L94
_SUBTYPE_TO_BITS_PER_SAMPLE = {
    "PCM_S8": 8,  # Signed 8 bit data
    "PCM_16": 16,  # Signed 16 bit data
    "PCM_24": 24,  # Signed 24 bit data
    "PCM_32": 32,  # Signed 32 bit data
    "PCM_U8": 8,  # Unsigned 8 bit data (WAV and RAW only)
    "FLOAT": 32,  # 32 bit float data
    "DOUBLE": 64,  # 64 bit float data
    "ULAW": 8,  # U-Law encoded. See https://en.wikipedia.org/wiki/G.711#Types
    "ALAW": 8,  # A-Law encoded. See https://en.wikipedia.org/wiki/G.711#Types
    "IMA_ADPCM": 0,  # IMA ADPCM.
    "MS_ADPCM": 0,  # Microsoft ADPCM.
    "GSM610":
    0,  # GSM 6.10 encoding. (Wikipedia says 1.625 bit depth?? https://en.wikipedia.org/wiki/Full_Rate)
    "VOX_ADPCM": 0,  # OKI / Dialogix ADPCM
    "G721_32": 0,  # 32kbs G721 ADPCM encoding.
    "G723_24": 0,  # 24kbs G723 ADPCM encoding.
    "G723_40": 0,  # 40kbs G723 ADPCM encoding.
    "DWVW_12": 12,  # 12 bit Delta Width Variable Word encoding.
    "DWVW_16": 16,  # 16 bit Delta Width Variable Word encoding.
    "DWVW_24": 24,  # 24 bit Delta Width Variable Word encoding.
    "DWVW_N": 0,  # N bit Delta Width Variable Word encoding.
    "DPCM_8": 8,  # 8 bit differential PCM (XI only)
    "DPCM_16": 16,  # 16 bit differential PCM (XI only)
    "VORBIS": 0,  # Xiph Vorbis encoding. (lossy)
    "ALAC_16": 16,  # Apple Lossless Audio Codec (16 bit).
    "ALAC_20": 20,  # Apple Lossless Audio Codec (20 bit).
    "ALAC_24": 24,  # Apple Lossless Audio Codec (24 bit).
    "ALAC_32": 32,  # Apple Lossless Audio Codec (32 bit).
}


def _get_bit_depth(subtype):
    if subtype not in _SUBTYPE_TO_BITS_PER_SAMPLE:
        warnings.warn(
            f"The {subtype} subtype is unknown to PaddleAudio. As a result, the bits_per_sample "
            "attribute will be set to 0. If you are seeing this warning, please "
            "report by opening an issue on github (after checking for existing/closed ones). "
            "You may otherwise ignore this warning.")
    return _SUBTYPE_TO_BITS_PER_SAMPLE.get(subtype, 0)


_SUBTYPE_TO_ENCODING = {
    "PCM_S8": "PCM_S",
    "PCM_16": "PCM_S",
    "PCM_24": "PCM_S",
    "PCM_32": "PCM_S",
    "PCM_U8": "PCM_U",
    "FLOAT": "PCM_F",
    "DOUBLE": "PCM_F",
    "ULAW": "ULAW",
    "ALAW": "ALAW",
    "VORBIS": "VORBIS",
}


def _get_encoding(format: str, subtype: str):
    if format == "FLAC":
        return "FLAC"
    return _SUBTYPE_TO_ENCODING.get(subtype, "UNKNOWN")


def info(filepath: str, format: Optional[str]=None) -> AudioInfo:
    """Get signal information of an audio file.

    Note:
        ``filepath`` argument is intentionally annotated as ``str`` only, even though it accepts
        ``pathlib.Path`` object as well. This is for the consistency with ``"sox_io"`` backend,

    Args:
        filepath (path-like object or file-like object):
            Source of audio data.
        format (str or None, optional):
            Not used. PySoundFile does not accept format hint.

    Returns:
        AudioInfo: meta data of the given audio.

    """
    sinfo = soundfile.info(filepath)
    return AudioInfo(
        sinfo.samplerate,
        sinfo.frames,
        sinfo.channels,
        bits_per_sample=_get_bit_depth(sinfo.subtype),
        encoding=_get_encoding(sinfo.format, sinfo.subtype), )


================================================
FILE: audio/paddleaudio/backends/sox_io_backend.py
================================================
import os
from typing import Optional
from typing import Tuple

import paddle
import paddleaudio
from paddle import Tensor
from paddleaudio._internal import module_utils as _mod_utils

from .common import AudioInfo

#https://github.com/pytorch/audio/blob/main/torchaudio/backend/sox_io_backend.py


def _fail_info(filepath: str, format: Optional[str]) -> AudioInfo:
    raise RuntimeError("Failed to fetch metadata from {}".format(filepath))


def _fail_info_fileobj(fileobj, format: Optional[str]) -> AudioInfo:
    raise RuntimeError("Failed to fetch metadata from {}".format(fileobj))


# Note: need to comply TorchScript syntax -- need annotation and no f-string
def _fail_load(
        filepath: str,
        frame_offset: int=0,
        num_frames: int=-1,
        normalize: bool=True,
        channels_first: bool=True,
        format: Optional[str]=None, ) -> Tuple[Tensor, int]:
    raise RuntimeError("Failed to load audio from {}".format(filepath))


def _fail_load_fileobj(fileobj, *args, **kwargs):
    raise RuntimeError(f"Failed to load audio from {fileobj}")


_fallback_info = _fail_info
_fallback_info_fileobj = _fail_info_fileobj
_fallback_load = _fail_load
_fallback_load_filebj = _fail_load_fileobj


@_mod_utils.requires_sox()
def load(
        filepath: str,
        frame_offset: int=0,
        num_frames: int=-1,
        normalize: bool=True,
        channels_first: bool=True,
        format: Optional[str]=None, ) -> Tuple[Tensor, int]:
    if hasattr(filepath, "read"):
        ret = paddleaudio._paddleaudio.load_audio_fileobj(
            filepath, frame_offset, num_frames, normalize, channels_first,
            format)
        if ret is not None:
            audio_tensor = paddle.to_tensor(ret[0])
            return (audio_tensor, ret[1])
        return _fallback_load_fileobj(filepath, frame_offset, num_frames,
                                      normalize, channels_first, format)
    filepath = os.fspath(filepath)
    ret = paddleaudio._paddleaudio.sox_io_load_audio_file(
        filepath, frame_offset, num_frames, normalize, channels_first, format)
    if ret is not None:
        audio_tensor = paddle.to_tensor(ret[0])
        return (audio_tensor, ret[1])
    return _fallback_load(filepath, frame_offset, num_frames, normalize,
                          channels_first, format)


@_mod_utils.requires_sox()
def save(
        filepath: str,
        src: Tensor,
        sample_rate: int,
        channels_first: bool=True,
        compression: Optional[float]=None,
        format: Optional[str]=None,
        encoding: Optional[str]=None,
        bits_per_sample: Optional[int]=None, ):
    src_arr = src.numpy()
    if hasattr(filepath, "write"):
        paddleaudio._paddleaudio.save_audio_fileobj(
            filepath, src_arr, sample_rate, channels_first, compression, format,
            encoding, bits_per_sample)
        return
    filepath = os.fspath(filepath)
    paddleaudio._paddleaudio.sox_io_save_audio_file(
        filepath, src_arr, sample_rate, channels_first, compression, format,
        encoding, bits_per_sample)


@_mod_utils.requires_sox()
def info(
        filepath: str,
        format: Optional[str]=None, ) -> AudioInfo:
    if hasattr(filepath, "read"):
        sinfo = paddleaudio._paddleaudio.get_info_fileobj(filepath, format)
        if sinfo is not None:
            return AudioInfo(*sinfo)
        return _fallback_info_fileobj(filepath, format)
    filepath = os.fspath(filepath)
    sinfo = paddleaudio._paddleaudio.get_info_file(filepath, format)
    if sinfo is not None:
        return AudioInfo(*sinfo)
    return _fallback_info(filepath, format)


================================================
FILE: audio/paddleaudio/backends/utils.py
================================================
"""Defines utilities for switching audio backends"""
#code is from: https://github.com/pytorch/audio/blob/main/torchaudio/backend/utils.py
import warnings
from typing import List
from typing import Optional

import paddleaudio
from paddleaudio._internal import module_utils as _mod_utils

from . import no_backend
from . import soundfile_backend
from . import sox_io_backend

__all__ = [
    "list_audio_backends",
    "get_audio_backend",
    "set_audio_backend",
]


def list_audio_backends() -> List[str]:
    """List available backends

    Returns:
        List[str]: The list of available backends.
    """
    backends = []
    if _mod_utils.is_module_available("soundfile"):
        backends.append("soundfile")
    if _mod_utils.is_sox_available():
        backends.append("sox_io")
    return backends


def set_audio_backend(backend: Optional[str]):
    """Set the backend for I/O operation

    Args:
        backend (str or None): Name of the backend.
            One of ``"sox_io"`` or ``"soundfile"`` based on availability
            of the system. If ``None`` is provided the  current backend is unassigned.
    """
    if backend is not None and backend not in list_audio_backends():
        raise RuntimeError(f'Backend "{backend}" is not one of '
                           f"available backends: {list_audio_backends()}.")

    if backend is None:
        module = no_backend
    elif backend == "sox_io":
        module = sox_io_backend
    elif backend == "soundfile":
        module = soundfile_backend
    else:
        raise NotImplementedError(f'Unexpected backend "{backend}"')

    for func in ["save", "load", "info"]:
        setattr(paddleaudio, func, getattr(module, func))


def _init_audio_backend():
    backends = list_audio_backends()
    if "soundfile" in backends:
        set_audio_backend("soundfile")
    elif "sox_io" in backends:
        set_audio_backend("sox_io")
    else:
        warnings.warn("No audio backend is available.")
        set_audio_backend(None)


def get_audio_backend() -> Optional[str]:
    """Get the name of the current backend

    Returns:
        Optional[str]: The name of the current backend or ``None`` if no backend is assigned.
    """
    if paddleaudio.load == no_backend.load:
        return None
    if paddleaudio.load == sox_io_backend.load:
        return "sox_io"
    if paddleaudio.load == soundfile_backend.load:
        return "soundfile"
    raise ValueError("Unknown backend.")


================================================
FILE: audio/paddleaudio/compliance/__init__.py
================================================
# 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 . import kaldi
from . import librosa


================================================
FILE: audio/paddleaudio/compliance/kaldi.py
================================================
# 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.
# Modified from torchaudio(https://github.com/pytorch/audio)
import math
from typing import Tuple

import paddle
from paddle import Tensor

from ..functional import create_dct
from ..functional.window import get_window

__all__ = [
    'spectrogram',
    'fbank',
    'mfcc',
]

# window types
HANNING = 'hann'
HAMMING = 'hamming'
POVEY = 'povey'
RECTANGULAR = 'rect'
BLACKMAN = 'blackman'


def _get_epsilon(dtype):
    return paddle.to_tensor(1e-07, dtype=dtype)


def _next_power_of_2(x: int) -> int:
    return 1 if x == 0 else 2**(x - 1).bit_length()


def _get_strided(waveform: Tensor,
                 window_size: int,
                 window_shift: int,
                 snip_edges: bool) -> Tensor:
    assert waveform.dim() == 1
    num_samples = waveform.shape[0]

    if snip_edges:
        if num_samples < window_size:
            return paddle.empty((0, 0), dtype=waveform.dtype)
        else:
            m = 1 + (num_samples - window_size) // window_shift
    else:
        reversed_waveform = paddle.flip(waveform, [0])
        m = (num_samples + (window_shift // 2)) // window_shift
        pad = window_size // 2 - window_shift // 2
        pad_right = reversed_waveform
        if pad > 0:
            pad_left = reversed_waveform[-pad:]
            waveform = paddle.concat((pad_left, waveform, pad_right), axis=0)
        else:
            waveform = paddle.concat((waveform[-pad:], pad_right), axis=0)

    return paddle.signal.frame(waveform, window_size, window_shift)[:, :m].T


def _feature_window_function(
        window_type: str,
        window_size: int,
        blackman_coeff: float,
        dtype: int, ) -> Tensor:
    if window_type == "hann":
        return get_window('hann', window_size, fftbins=False, dtype=dtype)
    elif window_type == "hamming":
        return get_window('hamming', window_size, fftbins=False, dtype=dtype)
    elif window_type == "povey":
        return get_window(
            'hann', window_size, fftbins=False, dtype=dtype).pow(0.85)
    elif window_type == "rect":
        return paddle.ones([window_size], dtype=dtype)
    elif window_type == "blackman":
        a = 2 * math.pi / (window_size - 1)
        window_function = paddle.arange(window_size, dtype=dtype)
        return (blackman_coeff - 0.5 * paddle.cos(a * window_function) +
                (0.5 - blackman_coeff) * paddle.cos(2 * a * window_function)
                ).astype(dtype)
    else:
        raise Exception('Invalid window type ' + window_type)


def _get_log_energy(strided_input: Tensor, epsilon: Tensor,
                    energy_floor: float) -> Tensor:
    log_energy = paddle.maximum(strided_input.pow(2).sum(1), epsilon).log()
    if energy_floor == 0.0:
        return log_energy
    return paddle.maximum(
        log_energy,
        paddle.to_tensor(math.log(energy_floor), dtype=strided_input.dtype))


def _get_waveform_and_window_properties(
        waveform: Tensor,
        channel: int,
        sr: int,
        frame_shift: float,
        frame_length: float,
        round_to_power_of_two: bool,
        preemphasis_coefficient: float) -> Tuple[Tensor, int, int, int]:
    channel = max(channel, 0)
    assert channel < waveform.shape[0], (
        'Invalid channel {} for size {}'.format(channel, waveform.shape[0]))
    waveform = waveform[channel, :]  # size (n)
    window_shift = int(
        sr * frame_shift *
        0.001)  # pass frame_shift and frame_length in milliseconds
    window_size = int(sr * frame_length * 0.001)
    padded_window_size = _next_power_of_2(
        window_size) if round_to_power_of_two else window_size

    assert 2 <= window_size <= len(waveform), (
        'choose a window size {} that is [2, {}]'.format(window_size,
                                                         len(waveform)))
    assert 0 < window_shift, '`window_shift` must be greater than 0'
    assert padded_window_size % 2 == 0, 'the padded `window_size` must be divisible by two.' \
                              
Download .txt
gitextract_h_rw1s1r/

├── .clang-format
├── .flake8
├── .gitconfig
├── .github/
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report-s2t.md
│   │   ├── bug-report-tts.md
│   │   ├── feature-request.md
│   │   ├── others.md
│   │   └── question.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── stale.yml
├── .gitignore
├── .mergify.yml
├── .pre-commit-config.yaml
├── .pre-commit-hooks/
│   ├── clang-format.hook
│   └── copyright-check.hook
├── .readthedocs.yml
├── .style.yapf
├── .travis.yml
├── LICENSE
├── MANIFEST.in
├── README.md
├── README_cn.md
├── audio/
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── cmake/
│   │   ├── FindGFortranLibs.cmake
│   │   ├── external/
│   │   │   └── openblas.cmake
│   │   ├── pybind.cmake
│   │   └── summary.cmake
│   ├── paddleaudio/
│   │   ├── CMakeLists.txt
│   │   ├── __init__.py
│   │   ├── _extension.py
│   │   ├── _internal/
│   │   │   ├── __init__.py
│   │   │   └── module_utils.py
│   │   ├── backends/
│   │   │   ├── __init__.py
│   │   │   ├── common.py
│   │   │   ├── no_backend.py
│   │   │   ├── soundfile_backend.py
│   │   │   ├── sox_io_backend.py
│   │   │   └── utils.py
│   │   ├── compliance/
│   │   │   ├── __init__.py
│   │   │   ├── kaldi.py
│   │   │   └── librosa.py
│   │   ├── datasets/
│   │   │   ├── __init__.py
│   │   │   ├── dataset.py
│   │   │   ├── esc50.py
│   │   │   ├── gtzan.py
│   │   │   ├── hey_snips.py
│   │   │   ├── rirs_noises.py
│   │   │   ├── tess.py
│   │   │   ├── urban_sound.py
│   │   │   └── voxceleb.py
│   │   ├── features/
│   │   │   ├── __init__.py
│   │   │   └── layers.py
│   │   ├── functional/
│   │   │   ├── __init__.py
│   │   │   ├── functional.py
│   │   │   └── window.py
│   │   ├── kaldi/
│   │   │   ├── __init__.py
│   │   │   └── kaldi.py
│   │   ├── metric/
│   │   │   ├── __init__.py
│   │   │   └── eer.py
│   │   ├── sox_effects/
│   │   │   ├── __init__.py
│   │   │   └── sox_effects.py
│   │   ├── src/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── optional/
│   │   │   │   ├── COPYING
│   │   │   │   └── optional.hpp
│   │   │   ├── pybind/
│   │   │   │   ├── kaldi/
│   │   │   │   │   ├── feature_common.h
│   │   │   │   │   ├── feature_common_inl.h
│   │   │   │   │   ├── kaldi_feature.cc
│   │   │   │   │   ├── kaldi_feature.h
│   │   │   │   │   ├── kaldi_feature_wrapper.cc
│   │   │   │   │   └── kaldi_feature_wrapper.h
│   │   │   │   ├── pybind.cpp
│   │   │   │   └── sox/
│   │   │   │       ├── effects.cpp
│   │   │   │       ├── effects.h
│   │   │   │       ├── effects_chain.cpp
│   │   │   │       ├── effects_chain.h
│   │   │   │       ├── io.cpp
│   │   │   │       ├── io.h
│   │   │   │       ├── types.cpp
│   │   │   │       ├── types.h
│   │   │   │       ├── utils.cpp
│   │   │   │       └── utils.h
│   │   │   └── utils.cpp
│   │   ├── third_party/
│   │   │   ├── .gitignore
│   │   │   ├── CMakeLists.txt
│   │   │   ├── kaldi-native-fbank/
│   │   │   │   └── csrc/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── feature-fbank.cc
│   │   │   │       ├── feature-fbank.h
│   │   │   │       ├── feature-functions.cc
│   │   │   │       ├── feature-functions.h
│   │   │   │       ├── feature-window.cc
│   │   │   │       ├── feature-window.h
│   │   │   │       ├── fftsg.c
│   │   │   │       ├── log.cc
│   │   │   │       ├── log.h
│   │   │   │       ├── mel-computations.cc
│   │   │   │       ├── mel-computations.h
│   │   │   │       ├── rfft.cc
│   │   │   │       └── rfft.h
│   │   │   ├── patches/
│   │   │   │   ├── config.guess
│   │   │   │   ├── config.sub
│   │   │   │   ├── libmad.patch
│   │   │   │   └── sox.patch
│   │   │   └── sox/
│   │   │       └── CMakeLists.txt
│   │   └── utils/
│   │       ├── __init__.py
│   │       ├── download.py
│   │       ├── env.py
│   │       ├── error.py
│   │       ├── log.py
│   │       ├── numeric.py
│   │       ├── sox_utils.py
│   │       ├── tensor_utils.py
│   │       └── time.py
│   ├── setup.py
│   ├── tests/
│   │   ├── backends/
│   │   │   ├── base.py
│   │   │   ├── common.py
│   │   │   ├── soundfile/
│   │   │   │   ├── base.py
│   │   │   │   ├── common.py
│   │   │   │   ├── info_test.py
│   │   │   │   ├── load_test.py
│   │   │   │   ├── save_test.py
│   │   │   │   └── test_io.py
│   │   │   └── sox_io/
│   │   │       ├── common.py
│   │   │       ├── info_test.py
│   │   │       ├── load_test.py
│   │   │       ├── save_test.py
│   │   │       ├── smoke_test.py
│   │   │       ├── sox_effect_test.py
│   │   │       └── sox_effect_test_args.jsonl
│   │   ├── benchmark/
│   │   │   ├── README.md
│   │   │   ├── log_melspectrogram.py
│   │   │   ├── melspectrogram.py
│   │   │   └── mfcc.py
│   │   ├── common_utils/
│   │   │   ├── __init__.py
│   │   │   ├── case_utils.py
│   │   │   ├── data_utils.py
│   │   │   ├── parameterized_utils.py
│   │   │   ├── sox_utils.py
│   │   │   └── wav_utils.py
│   │   └── features/
│   │       ├── __init__.py
│   │       ├── base.py
│   │       ├── test_istft.py
│   │       ├── test_kaldi.py
│   │       ├── test_kaldi_feat.py
│   │       ├── test_librosa.py
│   │       ├── test_log_melspectrogram.py
│   │       ├── test_spectrogram.py
│   │       ├── test_stft.py
│   │       └── testdata/
│   │           ├── fbank_feat.ark
│   │           ├── fbank_feat_txt.ark
│   │           ├── pitch_feat.ark
│   │           └── pitch_feat_txt.ark
│   └── tools/
│       └── setup_helpers/
│           ├── __init__.py
│           └── extension.py
├── dataset/
│   ├── aishell/
│   │   ├── .gitignore
│   │   └── aishell.py
│   ├── aishell3/
│   │   └── README.md
│   ├── chime3_background/
│   │   └── chime3_background.py
│   ├── gigaspeech/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── gigaspeech.py
│   │   └── run.sh
│   ├── librispeech/
│   │   ├── .gitignore
│   │   └── librispeech.py
│   ├── magicdata/
│   │   └── README.md
│   ├── mini_librispeech/
│   │   ├── .gitignore
│   │   └── mini_librispeech.py
│   ├── multi_cn/
│   │   └── README.md
│   ├── primewords/
│   │   └── README.md
│   ├── rir_noise/
│   │   ├── .gitignore
│   │   └── rir_noise.py
│   ├── st-cmds/
│   │   └── README.md
│   ├── tal_cs/
│   │   ├── README.md
│   │   └── tal_cs.py
│   ├── ted_en_zh/
│   │   ├── .gitignore
│   │   └── ted_en_zh.py
│   ├── thchs30/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   └── thchs30.py
│   ├── timit/
│   │   ├── .gitignore
│   │   ├── timit.py
│   │   └── timit_kaldi_standard_split.py
│   ├── voxceleb/
│   │   ├── README.md
│   │   ├── voxceleb1.py
│   │   └── voxceleb2.py
│   └── voxforge/
│       ├── run_data.sh
│       └── voxforge.py
├── demos/
│   ├── README.md
│   ├── README_cn.md
│   ├── TTSAndroid/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── .gitignore
│   │   │   ├── build.gradle
│   │   │   ├── proguard-rules.pro
│   │   │   └── src/
│   │   │       ├── androidTest/
│   │   │       │   └── java/
│   │   │       │       └── com/
│   │   │       │           └── baidu/
│   │   │       │               └── paddle/
│   │   │       │                   └── lite/
│   │   │       │                       └── demo/
│   │   │       │                           └── tts/
│   │   │       │                               └── ExampleInstrumentedTest.java
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   ├── java/
│   │   │       │   │   └── com/
│   │   │       │   │       └── baidu/
│   │   │       │   │           └── paddle/
│   │   │       │   │               └── lite/
│   │   │       │   │                   └── demo/
│   │   │       │   │                       └── tts/
│   │   │       │   │                           ├── AppCompatPreferenceActivity.java
│   │   │       │   │                           ├── MainActivity.java
│   │   │       │   │                           ├── Predictor.java
│   │   │       │   │                           ├── SettingsActivity.java
│   │   │       │   │                           └── Utils.java
│   │   │       │   └── res/
│   │   │       │       ├── drawable/
│   │   │       │       │   └── button_drawable.xml
│   │   │       │       ├── layout/
│   │   │       │       │   └── activity_main.xml
│   │   │       │       ├── menu/
│   │   │       │       │   └── menu_action_options.xml
│   │   │       │       ├── values/
│   │   │       │       │   ├── arrays.xml
│   │   │       │       │   ├── colors.xml
│   │   │       │       │   ├── strings.xml
│   │   │       │       │   └── styles.xml
│   │   │       │       └── xml/
│   │   │       │           └── settings.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── com/
│   │   │                   └── baidu/
│   │   │                       └── paddle/
│   │   │                           └── lite/
│   │   │                               └── demo/
│   │   │                                   └── tts/
│   │   │                                       └── ExampleUnitTest.java
│   │   ├── build.gradle
│   │   ├── gradle/
│   │   │   └── wrapper/
│   │   │       ├── gradle-wrapper.jar
│   │   │       └── gradle-wrapper.properties
│   │   ├── gradle.properties
│   │   ├── gradlew
│   │   ├── gradlew.bat
│   │   └── settings.gradle
│   ├── TTSArmLinux/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── build.sh
│   │   ├── clean.sh
│   │   ├── config.sh
│   │   ├── download.sh
│   │   ├── front.conf
│   │   ├── run.sh
│   │   └── src/
│   │       ├── CMakeLists.txt
│   │       ├── Predictor.hpp
│   │       └── main.cc
│   ├── TTSCppFrontend/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── README.md
│   │   ├── build-depends.sh
│   │   ├── build.sh
│   │   ├── clean.sh
│   │   ├── download.sh
│   │   ├── front_demo/
│   │   │   ├── front.conf
│   │   │   ├── front_demo.cpp
│   │   │   └── gentools/
│   │   │       ├── gen_dict_paddlespeech.py
│   │   │       ├── genid.py
│   │   │       └── word2phones.py
│   │   ├── run_front_demo.sh
│   │   ├── src/
│   │   │   ├── base/
│   │   │   │   ├── type_conv.cpp
│   │   │   │   └── type_conv.h
│   │   │   └── front/
│   │   │       ├── front_interface.cpp
│   │   │       ├── front_interface.h
│   │   │       ├── text_normalize.cpp
│   │   │       └── text_normalize.h
│   │   └── third-party/
│   │       └── CMakeLists.txt
│   ├── asr_deployment/
│   │   ├── README.md
│   │   └── README_cn.md
│   ├── audio_content_search/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── acs_clinet.py
│   │   ├── conf/
│   │   │   ├── acs_application.yaml
│   │   │   ├── words.txt
│   │   │   ├── ws_conformer_application.yaml
│   │   │   └── ws_conformer_wenetspeech_application.yaml
│   │   ├── requirements.txt
│   │   ├── run.sh
│   │   └── streaming_asr_server.py
│   ├── audio_searching/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── docker-compose.yaml
│   │   ├── requirements.txt
│   │   └── src/
│   │       ├── audio_search.py
│   │       ├── config.py
│   │       ├── encode.py
│   │       ├── logs.py
│   │       ├── milvus_helpers.py
│   │       ├── mysql_helpers.py
│   │       ├── operations/
│   │       │   ├── __init__.py
│   │       │   ├── count.py
│   │       │   ├── drop.py
│   │       │   ├── load.py
│   │       │   └── search.py
│   │       ├── test_audio_search.py
│   │       ├── test_vpr_search.py
│   │       └── vpr_search.py
│   ├── audio_tagging/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── automatic_video_subtitiles/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── recognize.py
│   │   └── run.sh
│   ├── custom_streaming_asr/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── path.sh
│   │   ├── setup_docker.sh
│   │   ├── websocket_client.sh
│   │   └── websocket_server.sh
│   ├── keyword_spotting/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── metaverse/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── path.sh
│   │   ├── run.sh
│   │   └── sentences.txt
│   ├── punctuation_restoration/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── speaker_verification/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── speech_recognition/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── speech_server/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── asr_client.sh
│   │   ├── cls_client.sh
│   │   ├── conf/
│   │   │   ├── application.yaml
│   │   │   └── conformer_talcs_application.yaml
│   │   ├── server.sh
│   │   ├── sid_client.sh
│   │   ├── start_multi_progress_server.py
│   │   ├── text_client.sh
│   │   └── tts_client.sh
│   ├── speech_ssl/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── speech_translation/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   ├── speech_web/
│   │   ├── .gitignore
│   │   ├── API.md
│   │   ├── README.md
│   │   ├── speech_server/
│   │   │   ├── conf/
│   │   │   │   ├── tts3_finetune.yaml
│   │   │   │   ├── tts_online_application.yaml
│   │   │   │   └── ws_conformer_wenetspeech_application_faster.yaml
│   │   │   ├── main.py
│   │   │   ├── requirements.txt
│   │   │   ├── src/
│   │   │   │   ├── AudioManeger.py
│   │   │   │   ├── SpeechBase/
│   │   │   │   │   ├── asr.py
│   │   │   │   │   ├── nlp.py
│   │   │   │   │   ├── sql_helper.py
│   │   │   │   │   ├── tts.py
│   │   │   │   │   ├── vpr.py
│   │   │   │   │   └── vpr_encode.py
│   │   │   │   ├── WebsocketManeger.py
│   │   │   │   ├── ernie_sat.py
│   │   │   │   ├── finetune.py
│   │   │   │   ├── ge2e_clone.py
│   │   │   │   ├── robot.py
│   │   │   │   ├── tdnn_clone.py
│   │   │   │   └── util.py
│   │   │   └── vc.py
│   │   └── web_client/
│   │       ├── .gitignore
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── src/
│   │       │   ├── App.vue
│   │       │   ├── api/
│   │       │   │   ├── API.js
│   │       │   │   ├── ApiASR.js
│   │       │   │   ├── ApiNLP.js
│   │       │   │   ├── ApiTTS.js
│   │       │   │   ├── ApiVC.js
│   │       │   │   └── ApiVPR.js
│   │       │   ├── components/
│   │       │   │   ├── Content/
│   │       │   │   │   ├── Header/
│   │       │   │   │   │   ├── Header.vue
│   │       │   │   │   │   └── style.less
│   │       │   │   │   └── Tail/
│   │       │   │   │       ├── Tail.vue
│   │       │   │   │       └── style.less
│   │       │   │   ├── Experience.vue
│   │       │   │   ├── SubMenu/
│   │       │   │   │   ├── ASR/
│   │       │   │   │   │   ├── ASR.vue
│   │       │   │   │   │   ├── ASRT.vue
│   │       │   │   │   │   ├── AudioFile/
│   │       │   │   │   │   │   ├── AudioFileIdentification.vue
│   │       │   │   │   │   │   └── style.less
│   │       │   │   │   │   ├── EndToEnd/
│   │       │   │   │   │   │   ├── EndToEndIdentification.vue
│   │       │   │   │   │   │   └── style.less
│   │       │   │   │   │   ├── RealTime/
│   │       │   │   │   │   │   ├── RealTime.vue
│   │       │   │   │   │   │   └── style.less
│   │       │   │   │   │   └── style.less
│   │       │   │   │   ├── ChatBot/
│   │       │   │   │   │   ├── ChatT.vue
│   │       │   │   │   │   └── style.less
│   │       │   │   │   ├── ERNIE_SAT/
│   │       │   │   │   │   └── ERNIE_SAT.vue
│   │       │   │   │   ├── FineTune/
│   │       │   │   │   │   └── FineTune.vue
│   │       │   │   │   ├── IE/
│   │       │   │   │   │   ├── IET.vue
│   │       │   │   │   │   └── style.less
│   │       │   │   │   ├── TTS/
│   │       │   │   │   │   ├── TTST.vue
│   │       │   │   │   │   └── style.less
│   │       │   │   │   ├── VPR/
│   │       │   │   │   │   ├── VPRT.vue
│   │       │   │   │   │   └── style.less
│   │       │   │   │   └── VoiceClone/
│   │       │   │   │       └── VoiceClone.vue
│   │       │   │   └── style.less
│   │       │   └── main.js
│   │       └── vite.config.js
│   ├── story_talker/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── ocr.py
│   │   ├── path.sh
│   │   └── run.sh
│   ├── streaming_asr_server/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── conf/
│   │   │   ├── application.yaml
│   │   │   ├── punc_application.yaml
│   │   │   ├── ws_conformer_application.yaml
│   │   │   ├── ws_conformer_talcs_application.yaml
│   │   │   ├── ws_conformer_wenetspeech_application.yaml
│   │   │   ├── ws_conformer_wenetspeech_application_faster.yaml
│   │   │   └── ws_ds2_application.yaml
│   │   ├── local/
│   │   │   ├── punc_server.py
│   │   │   ├── rtf_from_log.py
│   │   │   ├── streaming_asr_server.py
│   │   │   ├── test.sh
│   │   │   ├── websocket_client.py
│   │   │   └── websocket_client_srt.py
│   │   ├── run.sh
│   │   ├── server.sh
│   │   ├── test.sh
│   │   └── web/
│   │       ├── index.html
│   │       └── readme.md
│   ├── streaming_tts_server/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── client.sh
│   │   ├── conf/
│   │   │   ├── tts_online_application.yaml
│   │   │   └── tts_online_ws_application.yaml
│   │   └── server.sh
│   ├── streaming_tts_serving_fastdeploy/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── streaming_tts_serving/
│   │       ├── 1/
│   │       │   └── model.py
│   │       ├── config.pbtxt
│   │       └── stream_client.py
│   ├── style_fs2/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── path.sh
│   │   ├── run.sh
│   │   ├── sentences.txt
│   │   └── style_syn.py
│   ├── text_to_speech/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   └── run.sh
│   └── whisper/
│       ├── README.md
│       ├── README_cn.md
│       └── run.sh
├── docker/
│   ├── ubuntu16-gpu/
│   │   └── Dockerfile
│   ├── ubuntu18-cpu/
│   │   └── Dockerfile
│   └── ubuntu20-cpu/
│       └── Dockerfile
├── docs/
│   ├── Makefile
│   ├── requirements.txt
│   ├── source/
│   │   ├── _static/
│   │   │   └── custom.css
│   │   ├── api/
│   │   │   ├── modules.rst
│   │   │   ├── paddlespeech.audio.features.layers.rst
│   │   │   ├── paddlespeech.audio.features.rst
│   │   │   ├── paddlespeech.audio.io.rst
│   │   │   ├── paddlespeech.audio.rst
│   │   │   ├── paddlespeech.audio.streamdata.autodecode.rst
│   │   │   ├── paddlespeech.audio.streamdata.cache.rst
│   │   │   ├── paddlespeech.audio.streamdata.compat.rst
│   │   │   ├── paddlespeech.audio.streamdata.extradatasets.rst
│   │   │   ├── paddlespeech.audio.streamdata.filters.rst
│   │   │   ├── paddlespeech.audio.streamdata.gopen.rst
│   │   │   ├── paddlespeech.audio.streamdata.handlers.rst
│   │   │   ├── paddlespeech.audio.streamdata.mix.rst
│   │   │   ├── paddlespeech.audio.streamdata.paddle_utils.rst
│   │   │   ├── paddlespeech.audio.streamdata.pipeline.rst
│   │   │   ├── paddlespeech.audio.streamdata.rst
│   │   │   ├── paddlespeech.audio.streamdata.shardlists.rst
│   │   │   ├── paddlespeech.audio.streamdata.tariterators.rst
│   │   │   ├── paddlespeech.audio.streamdata.utils.rst
│   │   │   ├── paddlespeech.audio.streamdata.writer.rst
│   │   │   ├── paddlespeech.audio.text.rst
│   │   │   ├── paddlespeech.audio.text.text_featurizer.rst
│   │   │   ├── paddlespeech.audio.text.utility.rst
│   │   │   ├── paddlespeech.audio.transform.add_deltas.rst
│   │   │   ├── paddlespeech.audio.transform.channel_selector.rst
│   │   │   ├── paddlespeech.audio.transform.cmvn.rst
│   │   │   ├── paddlespeech.audio.transform.functional.rst
│   │   │   ├── paddlespeech.audio.transform.perturb.rst
│   │   │   ├── paddlespeech.audio.transform.rst
│   │   │   ├── paddlespeech.audio.transform.spec_augment.rst
│   │   │   ├── paddlespeech.audio.transform.spectrogram.rst
│   │   │   ├── paddlespeech.audio.transform.transform_interface.rst
│   │   │   ├── paddlespeech.audio.transform.transformation.rst
│   │   │   ├── paddlespeech.audio.transform.wpe.rst
│   │   │   ├── paddlespeech.audio.utils.check_kwargs.rst
│   │   │   ├── paddlespeech.audio.utils.download.rst
│   │   │   ├── paddlespeech.audio.utils.dynamic_import.rst
│   │   │   ├── paddlespeech.audio.utils.error.rst
│   │   │   ├── paddlespeech.audio.utils.log.rst
│   │   │   ├── paddlespeech.audio.utils.numeric.rst
│   │   │   ├── paddlespeech.audio.utils.rst
│   │   │   ├── paddlespeech.audio.utils.tensor_utils.rst
│   │   │   ├── paddlespeech.audio.utils.time.rst
│   │   │   ├── paddlespeech.cli.asr.infer.rst
│   │   │   ├── paddlespeech.cli.asr.rst
│   │   │   ├── paddlespeech.cli.base_commands.rst
│   │   │   ├── paddlespeech.cli.cls.infer.rst
│   │   │   ├── paddlespeech.cli.cls.rst
│   │   │   ├── paddlespeech.cli.download.rst
│   │   │   ├── paddlespeech.cli.entry.rst
│   │   │   ├── paddlespeech.cli.executor.rst
│   │   │   ├── paddlespeech.cli.kws.infer.rst
│   │   │   ├── paddlespeech.cli.kws.rst
│   │   │   ├── paddlespeech.cli.log.rst
│   │   │   ├── paddlespeech.cli.rst
│   │   │   ├── paddlespeech.cli.st.infer.rst
│   │   │   ├── paddlespeech.cli.st.rst
│   │   │   ├── paddlespeech.cli.text.infer.rst
│   │   │   ├── paddlespeech.cli.text.rst
│   │   │   ├── paddlespeech.cli.tts.infer.rst
│   │   │   ├── paddlespeech.cli.tts.rst
│   │   │   ├── paddlespeech.cli.utils.rst
│   │   │   ├── paddlespeech.cli.vector.infer.rst
│   │   │   ├── paddlespeech.cli.vector.rst
│   │   │   ├── paddlespeech.cls.exps.panns.deploy.rst
│   │   │   ├── paddlespeech.cls.exps.panns.rst
│   │   │   ├── paddlespeech.cls.exps.rst
│   │   │   ├── paddlespeech.cls.models.panns.classifier.rst
│   │   │   ├── paddlespeech.cls.models.panns.panns.rst
│   │   │   ├── paddlespeech.cls.models.panns.rst
│   │   │   ├── paddlespeech.cls.models.rst
│   │   │   ├── paddlespeech.cls.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.collate.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.compute_det.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.plot_det_curve.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.score.rst
│   │   │   ├── paddlespeech.kws.exps.mdtc.train.rst
│   │   │   ├── paddlespeech.kws.exps.rst
│   │   │   ├── paddlespeech.kws.models.loss.rst
│   │   │   ├── paddlespeech.kws.models.mdtc.rst
│   │   │   ├── paddlespeech.kws.models.rst
│   │   │   ├── paddlespeech.kws.rst
│   │   │   ├── paddlespeech.resource.model_alias.rst
│   │   │   ├── paddlespeech.resource.pretrained_models.rst
│   │   │   ├── paddlespeech.resource.resource.rst
│   │   │   ├── paddlespeech.resource.rst
│   │   │   ├── paddlespeech.rst
│   │   │   ├── paddlespeech.s2t.decoders.beam_search.batch_beam_search.rst
│   │   │   ├── paddlespeech.s2t.decoders.beam_search.beam_search.rst
│   │   │   ├── paddlespeech.s2t.decoders.beam_search.rst
│   │   │   ├── paddlespeech.s2t.decoders.ctcdecoder.decoders_deprecated.rst
│   │   │   ├── paddlespeech.s2t.decoders.ctcdecoder.rst
│   │   │   ├── paddlespeech.s2t.decoders.ctcdecoder.swig_wrapper.rst
│   │   │   ├── paddlespeech.s2t.decoders.recog.rst
│   │   │   ├── paddlespeech.s2t.decoders.rst
│   │   │   ├── paddlespeech.s2t.decoders.scorers.ctc.rst
│   │   │   ├── paddlespeech.s2t.decoders.scorers.ctc_prefix_score.rst
│   │   │   ├── paddlespeech.s2t.decoders.scorers.length_bonus.rst
│   │   │   ├── paddlespeech.s2t.decoders.scorers.rst
│   │   │   ├── paddlespeech.s2t.decoders.scorers.scorer_interface.rst
│   │   │   ├── paddlespeech.s2t.decoders.utils.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.deploy.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.deploy.runtime.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.deploy.server.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.export.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.test.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.test_export.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.test_wav.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.bin.train.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.model.rst
│   │   │   ├── paddlespeech.s2t.exps.deepspeech2.rst
│   │   │   ├── paddlespeech.s2t.exps.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.alignment.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.export.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.test.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.test_wav.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.bin.train.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.model.rst
│   │   │   ├── paddlespeech.s2t.exps.u2.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_kaldi.bin.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_kaldi.bin.test.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_kaldi.bin.train.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_kaldi.model.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_kaldi.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.bin.export.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.bin.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.bin.test.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.bin.train.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.model.rst
│   │   │   ├── paddlespeech.s2t.exps.u2_st.rst
│   │   │   ├── paddlespeech.s2t.frontend.audio.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.augmentation.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.base.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.impulse_response.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.noise_perturb.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.online_bayesian_normalization.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.resample.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.shift_perturb.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.spec_augment.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.speed_perturb.rst
│   │   │   ├── paddlespeech.s2t.frontend.augmentor.volume_perturb.rst
│   │   │   ├── paddlespeech.s2t.frontend.featurizer.audio_featurizer.rst
│   │   │   ├── paddlespeech.s2t.frontend.featurizer.rst
│   │   │   ├── paddlespeech.s2t.frontend.featurizer.speech_featurizer.rst
│   │   │   ├── paddlespeech.s2t.frontend.featurizer.text_featurizer.rst
│   │   │   ├── paddlespeech.s2t.frontend.normalizer.rst
│   │   │   ├── paddlespeech.s2t.frontend.rst
│   │   │   ├── paddlespeech.s2t.frontend.speech.rst
│   │   │   ├── paddlespeech.s2t.frontend.utility.rst
│   │   │   ├── paddlespeech.s2t.io.batchfy.rst
│   │   │   ├── paddlespeech.s2t.io.collator.rst
│   │   │   ├── paddlespeech.s2t.io.converter.rst
│   │   │   ├── paddlespeech.s2t.io.dataloader.rst
│   │   │   ├── paddlespeech.s2t.io.dataset.rst
│   │   │   ├── paddlespeech.s2t.io.reader.rst
│   │   │   ├── paddlespeech.s2t.io.rst
│   │   │   ├── paddlespeech.s2t.io.sampler.rst
│   │   │   ├── paddlespeech.s2t.io.utility.rst
│   │   │   ├── paddlespeech.s2t.models.asr_interface.rst
│   │   │   ├── paddlespeech.s2t.models.ds2.conv.rst
│   │   │   ├── paddlespeech.s2t.models.ds2.deepspeech2.rst
│   │   │   ├── paddlespeech.s2t.models.ds2.rst
│   │   │   ├── paddlespeech.s2t.models.lm.dataset.rst
│   │   │   ├── paddlespeech.s2t.models.lm.rst
│   │   │   ├── paddlespeech.s2t.models.lm.transformer.rst
│   │   │   ├── paddlespeech.s2t.models.lm_interface.rst
│   │   │   ├── paddlespeech.s2t.models.rst
│   │   │   ├── paddlespeech.s2t.models.st_interface.rst
│   │   │   ├── paddlespeech.s2t.models.u2.rst
│   │   │   ├── paddlespeech.s2t.models.u2.u2.rst
│   │   │   ├── paddlespeech.s2t.models.u2.updater.rst
│   │   │   ├── paddlespeech.s2t.models.u2_st.rst
│   │   │   ├── paddlespeech.s2t.models.u2_st.u2_st.rst
│   │   │   ├── paddlespeech.s2t.modules.activation.rst
│   │   │   ├── paddlespeech.s2t.modules.align.rst
│   │   │   ├── paddlespeech.s2t.modules.attention.rst
│   │   │   ├── paddlespeech.s2t.modules.cmvn.rst
│   │   │   ├── paddlespeech.s2t.modules.conformer_convolution.rst
│   │   │   ├── paddlespeech.s2t.modules.crf.rst
│   │   │   ├── paddlespeech.s2t.modules.ctc.rst
│   │   │   ├── paddlespeech.s2t.modules.decoder.rst
│   │   │   ├── paddlespeech.s2t.modules.decoder_layer.rst
│   │   │   ├── paddlespeech.s2t.modules.embedding.rst
│   │   │   ├── paddlespeech.s2t.modules.encoder.rst
│   │   │   ├── paddlespeech.s2t.modules.encoder_layer.rst
│   │   │   ├── paddlespeech.s2t.modules.initializer.rst
│   │   │   ├── paddlespeech.s2t.modules.loss.rst
│   │   │   ├── paddlespeech.s2t.modules.mask.rst
│   │   │   ├── paddlespeech.s2t.modules.positionwise_feed_forward.rst
│   │   │   ├── paddlespeech.s2t.modules.rst
│   │   │   ├── paddlespeech.s2t.modules.subsampling.rst
│   │   │   ├── paddlespeech.s2t.rst
│   │   │   ├── paddlespeech.s2t.training.cli.rst
│   │   │   ├── paddlespeech.s2t.training.extensions.evaluator.rst
│   │   │   ├── paddlespeech.s2t.training.extensions.extension.rst
│   │   │   ├── paddlespeech.s2t.training.extensions.plot.rst
│   │   │   ├── paddlespeech.s2t.training.extensions.rst
│   │   │   ├── paddlespeech.s2t.training.gradclip.rst
│   │   │   ├── paddlespeech.s2t.training.optimizer.rst
│   │   │   ├── paddlespeech.s2t.training.reporter.rst
│   │   │   ├── paddlespeech.s2t.training.rst
│   │   │   ├── paddlespeech.s2t.training.scheduler.rst
│   │   │   ├── paddlespeech.s2t.training.timer.rst
│   │   │   ├── paddlespeech.s2t.training.trainer.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.compare_value_trigger.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.interval_trigger.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.limit_trigger.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.time_trigger.rst
│   │   │   ├── paddlespeech.s2t.training.triggers.utils.rst
│   │   │   ├── paddlespeech.s2t.training.updaters.rst
│   │   │   ├── paddlespeech.s2t.training.updaters.standard_updater.rst
│   │   │   ├── paddlespeech.s2t.training.updaters.updater.rst
│   │   │   ├── paddlespeech.s2t.utils.asr_utils.rst
│   │   │   ├── paddlespeech.s2t.utils.bleu_score.rst
│   │   │   ├── paddlespeech.s2t.utils.check_kwargs.rst
│   │   │   ├── paddlespeech.s2t.utils.checkpoint.rst
│   │   │   ├── paddlespeech.s2t.utils.cli_readers.rst
│   │   │   ├── paddlespeech.s2t.utils.cli_utils.rst
│   │   │   ├── paddlespeech.s2t.utils.cli_writers.rst
│   │   │   ├── paddlespeech.s2t.utils.ctc_utils.rst
│   │   │   ├── paddlespeech.s2t.utils.dynamic_import.rst
│   │   │   ├── paddlespeech.s2t.utils.dynamic_pip_install.rst
│   │   │   ├── paddlespeech.s2t.utils.error_rate.rst
│   │   │   ├── paddlespeech.s2t.utils.layer_tools.rst
│   │   │   ├── paddlespeech.s2t.utils.log.rst
│   │   │   ├── paddlespeech.s2t.utils.mp_tools.rst
│   │   │   ├── paddlespeech.s2t.utils.profiler.rst
│   │   │   ├── paddlespeech.s2t.utils.rst
│   │   │   ├── paddlespeech.s2t.utils.socket_server.rst
│   │   │   ├── paddlespeech.s2t.utils.spec_augment.rst
│   │   │   ├── paddlespeech.s2t.utils.tensor_utils.rst
│   │   │   ├── paddlespeech.s2t.utils.text_grid.rst
│   │   │   ├── paddlespeech.s2t.utils.utility.rst
│   │   │   ├── paddlespeech.server.base_commands.rst
│   │   │   ├── paddlespeech.server.bin.paddlespeech_client.rst
│   │   │   ├── paddlespeech.server.bin.paddlespeech_server.rst
│   │   │   ├── paddlespeech.server.bin.rst
│   │   │   ├── paddlespeech.server.engine.acs.python.rst
│   │   │   ├── paddlespeech.server.engine.acs.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.ctc_endpoint.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.ctc_search.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.onnx.asr_engine.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.onnx.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.paddleinference.asr_engine.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.paddleinference.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.python.asr_engine.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.python.rst
│   │   │   ├── paddlespeech.server.engine.asr.online.rst
│   │   │   ├── paddlespeech.server.engine.asr.paddleinference.asr_engine.rst
│   │   │   ├── paddlespeech.server.engine.asr.paddleinference.rst
│   │   │   ├── paddlespeech.server.engine.asr.python.asr_engine.rst
│   │   │   ├── paddlespeech.server.engine.asr.python.rst
│   │   │   ├── paddlespeech.server.engine.asr.rst
│   │   │   ├── paddlespeech.server.engine.base_engine.rst
│   │   │   ├── paddlespeech.server.engine.cls.paddleinference.cls_engine.rst
│   │   │   ├── paddlespeech.server.engine.cls.paddleinference.rst
│   │   │   ├── paddlespeech.server.engine.cls.python.cls_engine.rst
│   │   │   ├── paddlespeech.server.engine.cls.python.rst
│   │   │   ├── paddlespeech.server.engine.cls.rst
│   │   │   ├── paddlespeech.server.engine.engine_factory.rst
│   │   │   ├── paddlespeech.server.engine.engine_pool.rst
│   │   │   ├── paddlespeech.server.engine.engine_warmup.rst
│   │   │   ├── paddlespeech.server.engine.rst
│   │   │   ├── paddlespeech.server.engine.text.python.rst
│   │   │   ├── paddlespeech.server.engine.text.python.text_engine.rst
│   │   │   ├── paddlespeech.server.engine.text.rst
│   │   │   ├── paddlespeech.server.engine.tts.online.onnx.rst
│   │   │   ├── paddlespeech.server.engine.tts.online.onnx.tts_engine.rst
│   │   │   ├── paddlespeech.server.engine.tts.online.python.rst
│   │   │   ├── paddlespeech.server.engine.tts.online.python.tts_engine.rst
│   │   │   ├── paddlespeech.server.engine.tts.online.rst
│   │   │   ├── paddlespeech.server.engine.tts.paddleinference.rst
│   │   │   ├── paddlespeech.server.engine.tts.paddleinference.tts_engine.rst
│   │   │   ├── paddlespeech.server.engine.tts.python.rst
│   │   │   ├── paddlespeech.server.engine.tts.python.tts_engine.rst
│   │   │   ├── paddlespeech.server.engine.tts.rst
│   │   │   ├── paddlespeech.server.engine.vector.python.rst
│   │   │   ├── paddlespeech.server.engine.vector.python.vector_engine.rst
│   │   │   ├── paddlespeech.server.engine.vector.rst
│   │   │   ├── paddlespeech.server.entry.rst
│   │   │   ├── paddlespeech.server.executor.rst
│   │   │   ├── paddlespeech.server.restful.acs_api.rst
│   │   │   ├── paddlespeech.server.restful.api.rst
│   │   │   ├── paddlespeech.server.restful.asr_api.rst
│   │   │   ├── paddlespeech.server.restful.cls_api.rst
│   │   │   ├── paddlespeech.server.restful.request.rst
│   │   │   ├── paddlespeech.server.restful.response.rst
│   │   │   ├── paddlespeech.server.restful.rst
│   │   │   ├── paddlespeech.server.restful.text_api.rst
│   │   │   ├── paddlespeech.server.restful.tts_api.rst
│   │   │   ├── paddlespeech.server.restful.vector_api.rst
│   │   │   ├── paddlespeech.server.rst
│   │   │   ├── paddlespeech.server.tests.asr.offline.http_client.rst
│   │   │   ├── paddlespeech.server.tests.asr.offline.rst
│   │   │   ├── paddlespeech.server.tests.asr.rst
│   │   │   ├── paddlespeech.server.tests.rst
│   │   │   ├── paddlespeech.server.util.rst
│   │   │   ├── paddlespeech.server.utils.audio_handler.rst
│   │   │   ├── paddlespeech.server.utils.audio_process.rst
│   │   │   ├── paddlespeech.server.utils.buffer.rst
│   │   │   ├── paddlespeech.server.utils.config.rst
│   │   │   ├── paddlespeech.server.utils.errors.rst
│   │   │   ├── paddlespeech.server.utils.exception.rst
│   │   │   ├── paddlespeech.server.utils.onnx_infer.rst
│   │   │   ├── paddlespeech.server.utils.paddle_predictor.rst
│   │   │   ├── paddlespeech.server.utils.rst
│   │   │   ├── paddlespeech.server.utils.util.rst
│   │   │   ├── paddlespeech.server.utils.vad.rst
│   │   │   ├── paddlespeech.server.ws.api.rst
│   │   │   ├── paddlespeech.server.ws.asr_api.rst
│   │   │   ├── paddlespeech.server.ws.rst
│   │   │   ├── paddlespeech.server.ws.tts_api.rst
│   │   │   ├── paddlespeech.t2s.audio.audio.rst
│   │   │   ├── paddlespeech.t2s.audio.codec.rst
│   │   │   ├── paddlespeech.t2s.audio.rst
│   │   │   ├── paddlespeech.t2s.audio.spec_normalizer.rst
│   │   │   ├── paddlespeech.t2s.datasets.am_batch_fn.rst
│   │   │   ├── paddlespeech.t2s.datasets.batch.rst
│   │   │   ├── paddlespeech.t2s.datasets.data_table.rst
│   │   │   ├── paddlespeech.t2s.datasets.dataset.rst
│   │   │   ├── paddlespeech.t2s.datasets.get_feats.rst
│   │   │   ├── paddlespeech.t2s.datasets.ljspeech.rst
│   │   │   ├── paddlespeech.t2s.datasets.preprocess_utils.rst
│   │   │   ├── paddlespeech.t2s.datasets.rst
│   │   │   ├── paddlespeech.t2s.datasets.sampler.rst
│   │   │   ├── paddlespeech.t2s.datasets.vocoder_batch_fn.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.align.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.synthesize_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.train.rst
│   │   │   ├── paddlespeech.t2s.exps.ernie_sat.utils.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.gen_gta_mel.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.train.rst
│   │   │   ├── paddlespeech.t2s.exps.fastspeech2.vc2_infer.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.hifigan.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.hifigan.train.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.multi_band_melgan.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.multi_band_melgan.train.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.parallelwave_gan.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.parallelwave_gan.synthesize_from_wav.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.parallelwave_gan.train.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.style_melgan.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.style_melgan.train.rst
│   │   │   ├── paddlespeech.t2s.exps.gan_vocoder.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.inference.rst
│   │   │   ├── paddlespeech.t2s.exps.inference_streaming.rst
│   │   │   ├── paddlespeech.t2s.exps.ort_predict.rst
│   │   │   ├── paddlespeech.t2s.exps.ort_predict_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.ort_predict_streaming.rst
│   │   │   ├── paddlespeech.t2s.exps.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.gen_gta_mel.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.inference.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.synthesize_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.speedyspeech.train.rst
│   │   │   ├── paddlespeech.t2s.exps.stream_play_tts.rst
│   │   │   ├── paddlespeech.t2s.exps.syn_utils.rst
│   │   │   ├── paddlespeech.t2s.exps.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.synthesize_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.synthesize_streaming.rst
│   │   │   ├── paddlespeech.t2s.exps.tacotron2.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.tacotron2.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.tacotron2.rst
│   │   │   ├── paddlespeech.t2s.exps.tacotron2.train.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.synthesize_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.transformer_tts.train.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.normalize.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.synthesize_e2e.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.train.rst
│   │   │   ├── paddlespeech.t2s.exps.vits.voice_cloning.rst
│   │   │   ├── paddlespeech.t2s.exps.voice_cloning.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.config.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.ljspeech.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.preprocess.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.waveflow.train.rst
│   │   │   ├── paddlespeech.t2s.exps.wavernn.rst
│   │   │   ├── paddlespeech.t2s.exps.wavernn.synthesize.rst
│   │   │   ├── paddlespeech.t2s.exps.wavernn.train.rst
│   │   │   ├── paddlespeech.t2s.frontend.arpabet.rst
│   │   │   ├── paddlespeech.t2s.frontend.g2pw.dataset.rst
│   │   │   ├── paddlespeech.t2s.frontend.g2pw.onnx_api.rst
│   │   │   ├── paddlespeech.t2s.frontend.g2pw.rst
│   │   │   ├── paddlespeech.t2s.frontend.g2pw.utils.rst
│   │   │   ├── paddlespeech.t2s.frontend.generate_lexicon.rst
│   │   │   ├── paddlespeech.t2s.frontend.mix_frontend.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.abbrrviation.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.acronyms.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.normalizer.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.numbers.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.rst
│   │   │   ├── paddlespeech.t2s.frontend.normalizer.width.rst
│   │   │   ├── paddlespeech.t2s.frontend.phonectic.rst
│   │   │   ├── paddlespeech.t2s.frontend.punctuation.rst
│   │   │   ├── paddlespeech.t2s.frontend.rst
│   │   │   ├── paddlespeech.t2s.frontend.tone_sandhi.rst
│   │   │   ├── paddlespeech.t2s.frontend.vocab.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_frontend.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.char_convert.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.chronology.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.constants.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.num.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.phonecode.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.quantifier.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.rst
│   │   │   ├── paddlespeech.t2s.frontend.zh_normalization.text_normlization.rst
│   │   │   ├── paddlespeech.t2s.models.ernie_sat.ernie_sat.rst
│   │   │   ├── paddlespeech.t2s.models.ernie_sat.ernie_sat_updater.rst
│   │   │   ├── paddlespeech.t2s.models.ernie_sat.rst
│   │   │   ├── paddlespeech.t2s.models.fastspeech2.fastspeech2.rst
│   │   │   ├── paddlespeech.t2s.models.fastspeech2.fastspeech2_updater.rst
│   │   │   ├── paddlespeech.t2s.models.fastspeech2.rst
│   │   │   ├── paddlespeech.t2s.models.hifigan.hifigan.rst
│   │   │   ├── paddlespeech.t2s.models.hifigan.hifigan_updater.rst
│   │   │   ├── paddlespeech.t2s.models.hifigan.rst
│   │   │   ├── paddlespeech.t2s.models.melgan.melgan.rst
│   │   │   ├── paddlespeech.t2s.models.melgan.multi_band_melgan_updater.rst
│   │   │   ├── paddlespeech.t2s.models.melgan.rst
│   │   │   ├── paddlespeech.t2s.models.melgan.style_melgan.rst
│   │   │   ├── paddlespeech.t2s.models.melgan.style_melgan_updater.rst
│   │   │   ├── paddlespeech.t2s.models.parallel_wavegan.parallel_wavegan.rst
│   │   │   ├── paddlespeech.t2s.models.parallel_wavegan.parallel_wavegan_updater.rst
│   │   │   ├── paddlespeech.t2s.models.parallel_wavegan.rst
│   │   │   ├── paddlespeech.t2s.models.rst
│   │   │   ├── paddlespeech.t2s.models.speedyspeech.rst
│   │   │   ├── paddlespeech.t2s.models.speedyspeech.speedyspeech.rst
│   │   │   ├── paddlespeech.t2s.models.speedyspeech.speedyspeech_updater.rst
│   │   │   ├── paddlespeech.t2s.models.tacotron2.rst
│   │   │   ├── paddlespeech.t2s.models.tacotron2.tacotron2.rst
│   │   │   ├── paddlespeech.t2s.models.tacotron2.tacotron2_updater.rst
│   │   │   ├── paddlespeech.t2s.models.transformer_tts.rst
│   │   │   ├── paddlespeech.t2s.models.transformer_tts.transformer_tts.rst
│   │   │   ├── paddlespeech.t2s.models.transformer_tts.transformer_tts_updater.rst
│   │   │   ├── paddlespeech.t2s.models.vits.duration_predictor.rst
│   │   │   ├── paddlespeech.t2s.models.vits.flow.rst
│   │   │   ├── paddlespeech.t2s.models.vits.generator.rst
│   │   │   ├── paddlespeech.t2s.models.vits.monotonic_align.core.rst
│   │   │   ├── paddlespeech.t2s.models.vits.monotonic_align.rst
│   │   │   ├── paddlespeech.t2s.models.vits.monotonic_align.setup.rst
│   │   │   ├── paddlespeech.t2s.models.vits.posterior_encoder.rst
│   │   │   ├── paddlespeech.t2s.models.vits.residual_coupling.rst
│   │   │   ├── paddlespeech.t2s.models.vits.rst
│   │   │   ├── paddlespeech.t2s.models.vits.text_encoder.rst
│   │   │   ├── paddlespeech.t2s.models.vits.transform.rst
│   │   │   ├── paddlespeech.t2s.models.vits.vits.rst
│   │   │   ├── paddlespeech.t2s.models.vits.vits_updater.rst
│   │   │   ├── paddlespeech.t2s.models.vits.wavenet.residual_block.rst
│   │   │   ├── paddlespeech.t2s.models.vits.wavenet.rst
│   │   │   ├── paddlespeech.t2s.models.vits.wavenet.wavenet.rst
│   │   │   ├── paddlespeech.t2s.models.waveflow.rst
│   │   │   ├── paddlespeech.t2s.models.wavernn.rst
│   │   │   ├── paddlespeech.t2s.models.wavernn.wavernn.rst
│   │   │   ├── paddlespeech.t2s.models.wavernn.wavernn_updater.rst
│   │   │   ├── paddlespeech.t2s.modules.activation.rst
│   │   │   ├── paddlespeech.t2s.modules.causal_conv.rst
│   │   │   ├── paddlespeech.t2s.modules.conformer.convolution.rst
│   │   │   ├── paddlespeech.t2s.modules.conformer.encoder_layer.rst
│   │   │   ├── paddlespeech.t2s.modules.conformer.rst
│   │   │   ├── paddlespeech.t2s.modules.conv.rst
│   │   │   ├── paddlespeech.t2s.modules.geometry.rst
│   │   │   ├── paddlespeech.t2s.modules.layer_norm.rst
│   │   │   ├── paddlespeech.t2s.modules.losses.rst
│   │   │   ├── paddlespeech.t2s.modules.masked_fill.rst
│   │   │   ├── paddlespeech.t2s.modules.nets_utils.rst
│   │   │   ├── paddlespeech.t2s.modules.normalizer.rst
│   │   │   ├── paddlespeech.t2s.modules.positional_encoding.rst
│   │   │   ├── paddlespeech.t2s.modules.pqmf.rst
│   │   │   ├── paddlespeech.t2s.modules.predictor.duration_predictor.rst
│   │   │   ├── paddlespeech.t2s.modules.predictor.length_regulator.rst
│   │   │   ├── paddlespeech.t2s.modules.predictor.rst
│   │   │   ├── paddlespeech.t2s.modules.predictor.variance_predictor.rst
│   │   │   ├── paddlespeech.t2s.modules.residual_block.rst
│   │   │   ├── paddlespeech.t2s.modules.residual_stack.rst
│   │   │   ├── paddlespeech.t2s.modules.rst
│   │   │   ├── paddlespeech.t2s.modules.style_encoder.rst
│   │   │   ├── paddlespeech.t2s.modules.tacotron2.attentions.rst
│   │   │   ├── paddlespeech.t2s.modules.tacotron2.decoder.rst
│   │   │   ├── paddlespeech.t2s.modules.tacotron2.encoder.rst
│   │   │   ├── paddlespeech.t2s.modules.tacotron2.rst
│   │   │   ├── paddlespeech.t2s.modules.tade_res_block.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.attention.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.decoder.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.decoder_layer.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.embedding.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.encoder.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.encoder_layer.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.lightconv.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.mask.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.multi_layer_conv.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.positionwise_feed_forward.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.repeat.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.rst
│   │   │   ├── paddlespeech.t2s.modules.transformer.subsampling.rst
│   │   │   ├── paddlespeech.t2s.modules.upsample.rst
│   │   │   ├── paddlespeech.t2s.rst
│   │   │   ├── paddlespeech.t2s.training.cli.rst
│   │   │   ├── paddlespeech.t2s.training.default_config.rst
│   │   │   ├── paddlespeech.t2s.training.experiment.rst
│   │   │   ├── paddlespeech.t2s.training.extension.rst
│   │   │   ├── paddlespeech.t2s.training.extensions.evaluator.rst
│   │   │   ├── paddlespeech.t2s.training.extensions.rst
│   │   │   ├── paddlespeech.t2s.training.extensions.snapshot.rst
│   │   │   ├── paddlespeech.t2s.training.extensions.visualizer.rst
│   │   │   ├── paddlespeech.t2s.training.optimizer.rst
│   │   │   ├── paddlespeech.t2s.training.reporter.rst
│   │   │   ├── paddlespeech.t2s.training.rst
│   │   │   ├── paddlespeech.t2s.training.seeding.rst
│   │   │   ├── paddlespeech.t2s.training.trainer.rst
│   │   │   ├── paddlespeech.t2s.training.trigger.rst
│   │   │   ├── paddlespeech.t2s.training.triggers.interval_trigger.rst
│   │   │   ├── paddlespeech.t2s.training.triggers.limit_trigger.rst
│   │   │   ├── paddlespeech.t2s.training.triggers.rst
│   │   │   ├── paddlespeech.t2s.training.triggers.time_trigger.rst
│   │   │   ├── paddlespeech.t2s.training.updater.rst
│   │   │   ├── paddlespeech.t2s.training.updaters.rst
│   │   │   ├── paddlespeech.t2s.training.updaters.standard_updater.rst
│   │   │   ├── paddlespeech.t2s.utils.checkpoint.rst
│   │   │   ├── paddlespeech.t2s.utils.display.rst
│   │   │   ├── paddlespeech.t2s.utils.error_rate.rst
│   │   │   ├── paddlespeech.t2s.utils.h5_utils.rst
│   │   │   ├── paddlespeech.t2s.utils.internals.rst
│   │   │   ├── paddlespeech.t2s.utils.layer_tools.rst
│   │   │   ├── paddlespeech.t2s.utils.mp_tools.rst
│   │   │   ├── paddlespeech.t2s.utils.profiler.rst
│   │   │   ├── paddlespeech.t2s.utils.rst
│   │   │   ├── paddlespeech.t2s.utils.scheduler.rst
│   │   │   ├── paddlespeech.text.exps.ernie_linear.avg_model.rst
│   │   │   ├── paddlespeech.text.exps.ernie_linear.punc_restore.rst
│   │   │   ├── paddlespeech.text.exps.ernie_linear.rst
│   │   │   ├── paddlespeech.text.exps.ernie_linear.test.rst
│   │   │   ├── paddlespeech.text.exps.ernie_linear.train.rst
│   │   │   ├── paddlespeech.text.exps.rst
│   │   │   ├── paddlespeech.text.models.ernie_crf.model.rst
│   │   │   ├── paddlespeech.text.models.ernie_crf.rst
│   │   │   ├── paddlespeech.text.models.ernie_linear.dataset.rst
│   │   │   ├── paddlespeech.text.models.ernie_linear.ernie_linear.rst
│   │   │   ├── paddlespeech.text.models.ernie_linear.ernie_linear_updater.rst
│   │   │   ├── paddlespeech.text.models.ernie_linear.rst
│   │   │   ├── paddlespeech.text.models.rst
│   │   │   ├── paddlespeech.text.rst
│   │   │   ├── paddlespeech.utils.dynamic_import.rst
│   │   │   ├── paddlespeech.utils.env.rst
│   │   │   ├── paddlespeech.utils.rst
│   │   │   ├── paddlespeech.vector.cluster.diarization.rst
│   │   │   ├── paddlespeech.vector.cluster.plda.rst
│   │   │   ├── paddlespeech.vector.cluster.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.audio_processor.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.config.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.dataset_processors.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.inference.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.preprocess.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.random_cycle.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.speaker_verification_dataset.rst
│   │   │   ├── paddlespeech.vector.exps.ge2e.train.rst
│   │   │   ├── paddlespeech.vector.exps.rst
│   │   │   ├── paddlespeech.vector.io.augment.rst
│   │   │   ├── paddlespeech.vector.io.batch.rst
│   │   │   ├── paddlespeech.vector.io.dataset.rst
│   │   │   ├── paddlespeech.vector.io.dataset_from_json.rst
│   │   │   ├── paddlespeech.vector.io.embedding_norm.rst
│   │   │   ├── paddlespeech.vector.io.rst
│   │   │   ├── paddlespeech.vector.io.signal_processing.rst
│   │   │   ├── paddlespeech.vector.models.ecapa_tdnn.rst
│   │   │   ├── paddlespeech.vector.models.lstm_speaker_encoder.rst
│   │   │   ├── paddlespeech.vector.models.rst
│   │   │   ├── paddlespeech.vector.modules.layer.rst
│   │   │   ├── paddlespeech.vector.modules.loss.rst
│   │   │   ├── paddlespeech.vector.modules.rst
│   │   │   ├── paddlespeech.vector.modules.sid_model.rst
│   │   │   ├── paddlespeech.vector.rst
│   │   │   ├── paddlespeech.vector.training.rst
│   │   │   ├── paddlespeech.vector.training.scheduler.rst
│   │   │   ├── paddlespeech.vector.training.seeding.rst
│   │   │   ├── paddlespeech.vector.utils.rst
│   │   │   ├── paddlespeech.vector.utils.time.rst
│   │   │   ├── paddlespeech.vector.utils.vector_utils.rst
│   │   │   └── paddlespeech.version.rst
│   │   ├── asr/
│   │   │   ├── PPASR.md
│   │   │   ├── PPASR_cn.md
│   │   │   ├── data_preparation.md
│   │   │   ├── feature_list.md
│   │   │   ├── models_introduction.md
│   │   │   ├── ngram_lm.md
│   │   │   └── quick_start.md
│   │   ├── audio/
│   │   │   ├── _static/
│   │   │   │   └── custom.css
│   │   │   ├── _templates/
│   │   │   │   ├── module.rst_t
│   │   │   │   ├── package.rst_t
│   │   │   │   └── toc.rst_t
│   │   │   ├── conf.py
│   │   │   └── index.rst
│   │   ├── audio_api/
│   │   │   ├── modules.rst
│   │   │   ├── paddleaudio.backends.common.rst
│   │   │   ├── paddleaudio.backends.no_backend.rst
│   │   │   ├── paddleaudio.backends.rst
│   │   │   ├── paddleaudio.backends.soundfile_backend.rst
│   │   │   ├── paddleaudio.backends.sox_io_backend.rst
│   │   │   ├── paddleaudio.backends.utils.rst
│   │   │   ├── paddleaudio.compliance.kaldi.rst
│   │   │   ├── paddleaudio.compliance.librosa.rst
│   │   │   ├── paddleaudio.compliance.rst
│   │   │   ├── paddleaudio.datasets.dataset.rst
│   │   │   ├── paddleaudio.datasets.esc50.rst
│   │   │   ├── paddleaudio.datasets.gtzan.rst
│   │   │   ├── paddleaudio.datasets.hey_snips.rst
│   │   │   ├── paddleaudio.datasets.rirs_noises.rst
│   │   │   ├── paddleaudio.datasets.rst
│   │   │   ├── paddleaudio.datasets.tess.rst
│   │   │   ├── paddleaudio.datasets.urban_sound.rst
│   │   │   ├── paddleaudio.datasets.voxceleb.rst
│   │   │   ├── paddleaudio.features.layers.rst
│   │   │   ├── paddleaudio.features.rst
│   │   │   ├── paddleaudio.functional.functional.rst
│   │   │   ├── paddleaudio.functional.rst
│   │   │   ├── paddleaudio.functional.window.rst
│   │   │   ├── paddleaudio.kaldi.kaldi.rst
│   │   │   ├── paddleaudio.kaldi.rst
│   │   │   ├── paddleaudio.metric.eer.rst
│   │   │   ├── paddleaudio.metric.rst
│   │   │   ├── paddleaudio.rst
│   │   │   ├── paddleaudio.sox_effects.rst
│   │   │   ├── paddleaudio.sox_effects.sox_effects.rst
│   │   │   ├── paddleaudio.utils.download.rst
│   │   │   ├── paddleaudio.utils.env.rst
│   │   │   ├── paddleaudio.utils.error.rst
│   │   │   ├── paddleaudio.utils.log.rst
│   │   │   ├── paddleaudio.utils.numeric.rst
│   │   │   ├── paddleaudio.utils.rst
│   │   │   ├── paddleaudio.utils.sox_utils.rst
│   │   │   ├── paddleaudio.utils.tensor_utils.rst
│   │   │   └── paddleaudio.utils.time.rst
│   │   ├── cls/
│   │   │   ├── custom_dataset.md
│   │   │   └── quick_start.md
│   │   ├── conf.py
│   │   ├── demo_video.rst
│   │   ├── dependencies.md
│   │   ├── index.rst
│   │   ├── install.md
│   │   ├── install_cn.md
│   │   ├── introduction.md
│   │   ├── reference.md
│   │   ├── released_model.md
│   │   ├── streaming_asr_demo_video.rst
│   │   ├── streaming_tts_demo_video.rst
│   │   ├── tts/
│   │   │   ├── PPTTS.md
│   │   │   ├── PPTTS_cn.md
│   │   │   ├── README.md
│   │   │   ├── advanced_usage.md
│   │   │   ├── demo.rst
│   │   │   ├── demo_2.rst
│   │   │   ├── gan_vocoder.md
│   │   │   ├── models_introduction.md
│   │   │   ├── quick_start.md
│   │   │   ├── quick_start_cn.md
│   │   │   ├── svs_music_score.md
│   │   │   ├── test_sentence.txt
│   │   │   ├── tts_datasets.md
│   │   │   ├── tts_papers.md
│   │   │   └── zh_text_frontend.md
│   │   ├── tts_demo_video.rst
│   │   └── vpr/
│   │       ├── PPVPR.md
│   │       └── PPVPR_cn.md
│   ├── topic/
│   │   ├── ctc/
│   │   │   ├── ctc_loss.ipynb
│   │   │   ├── ctc_loss_compare.ipynb
│   │   │   └── ctc_loss_speed_compare.ipynb
│   │   ├── frontend/
│   │   │   └── g2p.md
│   │   ├── gan_vocoder/
│   │   │   └── gan_vocoder.ipynb
│   │   └── package_release/
│   │       └── python_package_release.md
│   └── tutorial/
│       ├── .gitkeep
│       ├── asr/
│       │   ├── tutorial_deepspeech2.ipynb
│       │   └── tutorial_transformer.ipynb
│       ├── cls/
│       │   └── cls_tutorial.ipynb
│       ├── st/
│       │   └── st_tutorial.ipynb
│       └── tts/
│           └── tts_tutorial.ipynb
├── examples/
│   ├── aishell/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── asr0/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── conf/
│   │   │   │   ├── deepspeech2.yaml
│   │   │   │   ├── deepspeech2_online.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   └── tuning/
│   │   │   │       ├── chunk_decode.yaml
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── download_lm_ch.sh
│   │   │   │   ├── export.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_export.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── asr1/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── conf/
│   │   │   │   ├── augmentation.json
│   │   │   │   ├── chunk_conformer.yaml
│   │   │   │   ├── chunk_roformer.yaml
│   │   │   │   ├── chunk_roformer_bidecoder.yaml
│   │   │   │   ├── chunk_squeezeformer.yaml
│   │   │   │   ├── conformer.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   ├── squeezeformer.yaml
│   │   │   │   ├── transformer.yaml
│   │   │   │   └── tuning/
│   │   │   │       ├── chunk_decode.yaml
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── aishell_train_lms.sh
│   │   │   │   ├── align.sh
│   │   │   │   ├── data.sh
│   │   │   │   ├── export.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   ├── tlg.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   └── asr3/
│   │       ├── README.md
│   │       ├── RESULT.md
│   │       ├── cmd.sh
│   │       ├── conf/
│   │       │   ├── preprocess.yaml
│   │       │   ├── train_with_wav2vec.yaml
│   │       │   ├── tuning/
│   │       │   │   └── decode.yaml
│   │       │   ├── wav2vec2ASR.yaml
│   │       │   └── wav2vec2ASR_adadelta.yaml
│   │       ├── local/
│   │       │   ├── aishell_prepare.py
│   │       │   ├── data.sh
│   │       │   ├── test.sh
│   │       │   ├── test_wav.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── aishell3/
│   │   ├── README.md
│   │   ├── ernie_sat/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── tts3/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   ├── conformer.yaml
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── ort_predict.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   └── run.sh
│   │   ├── vc0/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── train.sh
│   │   │   │   └── voice_cloning.sh
│   │   │   └── run.sh
│   │   ├── vc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── voice_cloning.sh
│   │   │   └── run.sh
│   │   ├── vc2/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   └── voice_cloning.sh
│   │   │   └── run.sh
│   │   ├── vits/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── vits-vc/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── train.sh
│   │   │   │   └── voice_cloning.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   └── preprocess.sh
│   │   │   └── run.sh
│   │   └── voc5/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       └── run.sh
│   ├── aishell3_vctk/
│   │   ├── README.md
│   │   └── ernie_sat/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       ├── local/
│   │       │   ├── preprocess.sh
│   │       │   └── synthesize_e2e.sh
│   │       └── run.sh
│   ├── ami/
│   │   ├── README.md
│   │   └── sd0/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── ecapa_tdnn.yaml
│   │       ├── local/
│   │       │   ├── ami_prepare.py
│   │       │   ├── ami_splits.py
│   │       │   ├── compute_embdding.py
│   │       │   ├── dataio.py
│   │       │   ├── experiment.py
│   │       │   └── process.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── callcenter/
│   │   ├── README.md
│   │   └── asr1/
│   │       ├── .gitignore
│   │       ├── RESULTS.md
│   │       ├── conf/
│   │       │   ├── augmentation.json
│   │       │   ├── chunk_conformer.yaml
│   │       │   ├── conformer.yaml
│   │       │   ├── preprocess.yaml
│   │       │   └── tuning/
│   │       │       ├── chunk_decode.yaml
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── align.sh
│   │       │   ├── data.sh
│   │       │   ├── download_lm_ch.sh
│   │       │   ├── export.sh
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── canton/
│   │   └── tts3/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       ├── local/
│   │       │   ├── inference.sh
│   │       │   ├── ort_predict.sh
│   │       │   ├── preprocess.sh
│   │       │   └── synthesize_e2e.sh
│   │       └── run.sh
│   ├── csmsc/
│   │   ├── README.md
│   │   ├── jets/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── tts0/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── tts2/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── inference_mlu.sh
│   │   │   │   ├── inference_npu.sh
│   │   │   │   ├── inference_xpu.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── ort_predict.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   ├── synthesize_e2e_mlu.sh
│   │   │   │   ├── synthesize_e2e_npu.sh
│   │   │   │   ├── synthesize_e2e_xpu.sh
│   │   │   │   ├── synthesize_mlu.sh
│   │   │   │   ├── synthesize_npu.sh
│   │   │   │   ├── synthesize_xpu.sh
│   │   │   │   ├── train.sh
│   │   │   │   ├── train_mlu.sh
│   │   │   │   ├── train_npu.sh
│   │   │   │   └── train_xpu.sh
│   │   │   ├── path.sh
│   │   │   ├── run.sh
│   │   │   ├── run_mlu.sh
│   │   │   ├── run_npu.sh
│   │   │   └── run_xpu.sh
│   │   ├── tts3/
│   │   │   ├── README.md
│   │   │   ├── README_cn.md
│   │   │   ├── conf/
│   │   │   │   ├── cnndecoder.yaml
│   │   │   │   ├── conformer.yaml
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── PTQ_dynamic.sh
│   │   │   │   ├── PTQ_static.sh
│   │   │   │   ├── export2lite.sh
│   │   │   │   ├── inference.sh
│   │   │   │   ├── inference_streaming.sh
│   │   │   │   ├── inference_xpu.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── lite_predict_streaming.sh
│   │   │   │   ├── ort_predict.sh
│   │   │   │   ├── ort_predict_streaming.sh
│   │   │   │   ├── paddle2onnx.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── simple.lexicon
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   ├── synthesize_e2e_xpu.sh
│   │   │   │   ├── synthesize_streaming.sh
│   │   │   │   ├── synthesize_xpu.sh
│   │   │   │   ├── train.sh
│   │   │   │   └── train_xpu.sh
│   │   │   ├── path.sh
│   │   │   ├── run.sh
│   │   │   ├── run_cnndecoder.sh
│   │   │   └── run_xpu.sh
│   │   ├── tts3_rhy/
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   └── synthesize_e2e.sh
│   │   │   └── run.sh
│   │   ├── vits/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── PTQ_static.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc3/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   ├── default.yaml
│   │   │   │   └── finetune.yaml
│   │   │   ├── local/
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc4/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   └── synthesize.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc5/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   ├── default.yaml
│   │   │   │   ├── finetune.yaml
│   │   │   │   └── iSTFT.yaml
│   │   │   ├── finetune.sh
│   │   │   ├── iSTFTNet.md
│   │   │   ├── local/
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   └── voc6/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       ├── local/
│   │       │   ├── preprocess.sh
│   │       │   └── synthesize.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── esc50/
│   │   ├── README.md
│   │   ├── RESULTS.md
│   │   └── cls0/
│   │       ├── conf/
│   │       │   └── panns.yaml
│   │       ├── local/
│   │       │   ├── export.sh
│   │       │   ├── infer.sh
│   │       │   ├── static_model_infer.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── hey_snips/
│   │   ├── README.md
│   │   └── kws0/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── mdtc.yaml
│   │       ├── local/
│   │       │   ├── plot.sh
│   │       │   ├── score.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── iwslt2012/
│   │   └── punc0/
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── conf/
│   │       │   ├── default.yaml
│   │       │   ├── ernie-3.0-base.yaml
│   │       │   ├── ernie-3.0-medium.yaml
│   │       │   ├── ernie-3.0-mini.yaml
│   │       │   ├── ernie-3.0-nano-zh.yaml
│   │       │   └── ernie-tiny.yaml
│   │       ├── local/
│   │       │   ├── data.sh
│   │       │   ├── preprocess.py
│   │       │   ├── punc_restore.sh
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── librispeech/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── asr0/
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── conf/
│   │   │   │   ├── deepspeech2.yaml
│   │   │   │   ├── deepspeech2_online.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   └── tuning/
│   │   │   │       ├── chunk_decode.yaml
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── download_lm_en.sh
│   │   │   │   ├── export.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── asr1/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── cmd.sh
│   │   │   ├── conf/
│   │   │   │   ├── augmentation.json
│   │   │   │   ├── chunk_conformer.yaml
│   │   │   │   ├── chunk_transformer.yaml
│   │   │   │   ├── conformer.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   ├── transformer.yaml
│   │   │   │   └── tuning/
│   │   │   │       ├── chunk_decode.yaml
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── align.sh
│   │   │   │   ├── data.sh
│   │   │   │   ├── download_lm_en.sh
│   │   │   │   ├── export.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── asr2/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── cmd.sh
│   │   │   ├── conf/
│   │   │   │   ├── augmentation.json
│   │   │   │   ├── decode/
│   │   │   │   │   ├── decode.yaml
│   │   │   │   │   ├── decode_att.yaml
│   │   │   │   │   ├── decode_base.yaml
│   │   │   │   │   ├── decode_ctc.yaml
│   │   │   │   │   └── decode_wo_lm.yaml
│   │   │   │   ├── fbank.conf
│   │   │   │   ├── lm/
│   │   │   │   │   └── transformer.yaml
│   │   │   │   ├── pitch.conf
│   │   │   │   ├── preprocess.yaml
│   │   │   │   └── transformer.yaml
│   │   │   ├── local/
│   │   │   │   ├── align.sh
│   │   │   │   ├── cacu_perplexity.sh
│   │   │   │   ├── data.sh
│   │   │   │   ├── data_prep.sh
│   │   │   │   ├── download_lm_en.sh
│   │   │   │   ├── espnet_json_to_manifest.py
│   │   │   │   ├── export.sh
│   │   │   │   ├── recog.sh
│   │   │   │   ├── test.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── asr3/
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── cmd.sh
│   │   │   ├── conf/
│   │   │   │   ├── preprocess.yaml
│   │   │   │   ├── tuning/
│   │   │   │   │   └── decode.yaml
│   │   │   │   └── wav2vec2ASR.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── asr4/
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── cmd.sh
│   │   │   ├── conf/
│   │   │   │   ├── config.json
│   │   │   │   ├── hubertASR.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   ├── preprocessor_config.json
│   │   │   │   └── tuning/
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── test.sh
│   │   │   │   ├── test_wav.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   └── asr5/
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── avg.sh
│   │       ├── cmd.sh
│   │       ├── compute_wer.py
│   │       ├── conf/
│   │       │   ├── preprocess.yaml
│   │       │   ├── preprocessor_config.json
│   │       │   ├── tuning/
│   │       │   │   └── decode.yaml
│   │       │   └── wavlmASR.yaml
│   │       ├── local/
│   │       │   ├── data.sh
│   │       │   ├── test.sh
│   │       │   ├── test_wav.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── ljspeech/
│   │   ├── README.md
│   │   ├── tts0/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   └── run.sh
│   │   ├── tts1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── tts3/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── ort_predict.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   └── run.sh
│   │   ├── voc0/
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   └── preprocess.sh
│   │   │   └── run.sh
│   │   └── voc5/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       └── run.sh
│   ├── mustc/
│   │   └── st1/
│   │       ├── cmd.sh
│   │       ├── conf/
│   │       │   ├── fbank.conf
│   │       │   ├── pitch.conf
│   │       │   ├── transformer_de.yaml
│   │       │   ├── transformer_es.yaml
│   │       │   ├── transformer_fr.yaml
│   │       │   ├── transformer_it.yaml
│   │       │   ├── transformer_nl.yaml
│   │       │   ├── transformer_pt.yaml
│   │       │   ├── transformer_ro.yaml
│   │       │   └── transformer_ru.yaml
│   │       ├── local/
│   │       │   ├── augmentation.json
│   │       │   ├── data.sh
│   │       │   ├── data_prep.sh
│   │       │   ├── divide_lang.sh
│   │       │   ├── remove_punctuation.pl
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── opencpop/
│   │   ├── README.md
│   │   ├── svs1/
│   │   │   ├── README.md
│   │   │   ├── README_cn.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── pinyin_to_phone.txt
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   ├── synthesize_e2e.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── dygraph_to_static.sh
│   │   │   │   └── preprocess.sh
│   │   │   └── run.sh
│   │   └── voc5/
│   │       ├── conf/
│   │       │   ├── default.yaml
│   │       │   └── finetune.yaml
│   │       ├── finetune.sh
│   │       ├── local/
│   │       │   └── dygraph_to_static.sh
│   │       └── run.sh
│   ├── other/
│   │   ├── augmentation/
│   │   │   └── augmentation.json
│   │   ├── cc-cedict/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   └── parser.py
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── g2p/
│   │   │   ├── README.md
│   │   │   ├── compare_badcase.py
│   │   │   ├── get_g2p_data.py
│   │   │   ├── path.sh
│   │   │   ├── run.sh
│   │   │   └── test_g2p.py
│   │   ├── ge2e/
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── mfa/
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   ├── detect_oov.py
│   │   │   │   ├── generate_canton_lexicon_wavlabs.py
│   │   │   │   ├── generate_lexicon.py
│   │   │   │   ├── reorganize_aishell3.py
│   │   │   │   ├── reorganize_baker.py
│   │   │   │   ├── reorganize_ljspeech.py
│   │   │   │   └── reorganize_vctk.py
│   │   │   ├── run.sh
│   │   │   └── run_canton.sh
│   │   ├── ngram_lm/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   └── s0/
│   │   │       ├── .gitignore
│   │   │       ├── README.md
│   │   │       ├── data/
│   │   │       │   ├── README.md
│   │   │       │   ├── custom_confusion.txt
│   │   │       │   └── text_correct.txt
│   │   │       ├── local/
│   │   │       │   ├── build_zh_lm.sh
│   │   │       │   ├── download_lm_zh.sh
│   │   │       │   └── kenlm_score_test.py
│   │   │       ├── path.sh
│   │   │       ├── requirements.txt
│   │   │       └── run.sh
│   │   ├── punctuation_restoration/
│   │   │   └── README.md
│   │   ├── rhy/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── data/
│   │   │   │   └── rhy_token
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── pre_for_sp_aishell.py
│   │   │   │   ├── pre_for_sp_csmsc.py
│   │   │   │   ├── rhy_predict.sh
│   │   │   │   ├── test.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── spm/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── path.sh
│   │   │   ├── run.sh
│   │   │   └── text
│   │   ├── tn/
│   │   │   ├── README.md
│   │   │   ├── data/
│   │   │   │   └── textnorm_test_cases.txt
│   │   │   ├── get_textnorm_data.py
│   │   │   ├── path.sh
│   │   │   ├── run.sh
│   │   │   └── test_textnorm.py
│   │   └── tts_finetune/
│   │       └── tts3/
│   │           ├── README.md
│   │           ├── conf/
│   │           │   ├── fastspeech2_layers.txt
│   │           │   └── finetune.yaml
│   │           ├── local/
│   │           │   ├── check_oov.py
│   │           │   ├── extract_feature.py
│   │           │   ├── finetune.py
│   │           │   ├── generate_duration.py
│   │           │   ├── get_mfa_result.py
│   │           │   └── prepare_env.py
│   │           ├── path.sh
│   │           ├── run.sh
│   │           ├── run_en.sh
│   │           └── run_mix.sh
│   ├── tal_cs/
│   │   └── asr1/
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── conf/
│   │       │   ├── chunk_conformer.yaml
│   │       │   ├── conformer.yaml
│   │       │   ├── preprocess.yaml
│   │       │   └── tuning/
│   │       │       ├── chunk_decode.yaml
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── data.sh
│   │       │   ├── test.sh
│   │       │   ├── test_wav.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── ted_en_zh/
│   │   ├── README.md
│   │   ├── st0/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── RESULTS.md
│   │   │   ├── conf/
│   │   │   │   ├── preprocess.yaml
│   │   │   │   ├── transformer.yaml
│   │   │   │   ├── transformer_mtl_noam.yaml
│   │   │   │   └── tuning/
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── test.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   └── st1/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── cmd.sh
│   │       ├── conf/
│   │       │   ├── fbank.conf
│   │       │   ├── pitch.conf
│   │       │   ├── preprocess.yaml
│   │       │   ├── transformer.yaml
│   │       │   ├── transformer_mtl_noam.yaml
│   │       │   └── tuning/
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── convert_torch_to_paddle.py
│   │       │   ├── data.sh
│   │       │   ├── divide_lang.sh
│   │       │   ├── download_pretrain.sh
│   │       │   ├── remove_punctuation.pl
│   │       │   ├── ted_en_zh.py
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── tess/
│   │   ├── README.md
│   │   └── cls0/
│   │       ├── conf/
│   │       │   ├── panns_logmelspectrogram.yaml
│   │       │   ├── panns_melspectrogram.yaml
│   │       │   ├── panns_mfcc.yaml
│   │       │   └── panns_spectrogram.yaml
│   │       ├── local/
│   │       │   ├── train.py
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── thchs30/
│   │   ├── README.md
│   │   └── align0/
│   │       ├── README.md
│   │       ├── data/
│   │       │   └── dict/
│   │       │       └── syllable.lexicon
│   │       ├── local/
│   │       │   ├── data.sh
│   │       │   ├── gen_word2phone.py
│   │       │   └── reorganize_thchs30.py
│   │       ├── path.sh
│   │       └── run.sh
│   ├── timit/
│   │   ├── README.md
│   │   └── asr1/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── conf/
│   │       │   ├── augmentation.json
│   │       │   ├── dev_spk.list
│   │       │   ├── preprocess.yaml
│   │       │   ├── test_spk.list
│   │       │   ├── transformer.yaml
│   │       │   └── tuning/
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── align.sh
│   │       │   ├── data.sh
│   │       │   ├── export.sh
│   │       │   ├── test.sh
│   │       │   ├── timit_data_prep.sh
│   │       │   ├── timit_norm_trans.pl
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── tiny/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── asr0/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   ├── deepspeech2.yaml
│   │   │   │   ├── deepspeech2_online.yaml
│   │   │   │   ├── preprocess.yaml
│   │   │   │   └── tuning/
│   │   │   │       ├── chunk_decode.yaml
│   │   │   │       └── decode.yaml
│   │   │   ├── local/
│   │   │   │   ├── data.sh
│   │   │   │   ├── download_lm_en.sh
│   │   │   │   ├── export.sh
│   │   │   │   ├── test.sh
│   │   │   │   └── train.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   └── asr1/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── conf/
│   │       │   ├── augmentation.json
│   │       │   ├── chunk_confermer.yaml
│   │       │   ├── chunk_transformer.yaml
│   │       │   ├── conformer.yaml
│   │       │   ├── preprocess.yaml
│   │       │   ├── transformer.yaml
│   │       │   └── tuning/
│   │       │       ├── chunk_decode.yaml
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── align.sh
│   │       │   ├── data.sh
│   │       │   ├── export.sh
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── vctk/
│   │   ├── README.md
│   │   ├── ernie_sat/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   └── run.sh
│   │   ├── tts3/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── inference.sh
│   │   │   │   ├── lite_predict.sh
│   │   │   │   ├── ort_predict.sh
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── synthesize.sh
│   │   │   │   └── synthesize_e2e.sh
│   │   │   └── run.sh
│   │   ├── vc3/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   ├── preprocess.sh
│   │   │   │   ├── train.sh
│   │   │   │   └── voice_conversion.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── voc1/
│   │   │   ├── README.md
│   │   │   ├── conf/
│   │   │   │   └── default.yaml
│   │   │   ├── local/
│   │   │   │   └── preprocess.sh
│   │   │   └── run.sh
│   │   └── voc5/
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── default.yaml
│   │       └── run.sh
│   ├── voxceleb/
│   │   ├── README.md
│   │   └── sv0/
│   │       ├── README.md
│   │       ├── RESULT.md
│   │       ├── conf/
│   │       │   ├── ecapa_tdnn.yaml
│   │       │   └── ecapa_tdnn_small.yaml
│   │       ├── local/
│   │       │   ├── convert.sh
│   │       │   ├── data.sh
│   │       │   ├── data_prepare.py
│   │       │   ├── emb.sh
│   │       │   ├── make_rirs_noise_csv_dataset_from_json.py
│   │       │   ├── make_vox_csv_dataset_from_json.py
│   │       │   ├── make_voxceleb_kaldi_trial.py
│   │       │   ├── test.sh
│   │       │   └── train.sh
│   │       ├── path.sh
│   │       └── run.sh
│   ├── wenetspeech/
│   │   ├── README.md
│   │   ├── asr0/
│   │   │   └── RESULTS.md
│   │   └── asr1/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── RESULTS.md
│   │       ├── conf/
│   │       │   ├── chunk_conformer.yaml
│   │       │   ├── chunk_conformer_u2pp.yaml
│   │       │   ├── conformer.yaml
│   │       │   ├── preprocess.yaml
│   │       │   └── tuning/
│   │       │       ├── chunk_decode.yaml
│   │       │       └── decode.yaml
│   │       ├── local/
│   │       │   ├── data.sh
│   │       │   ├── export.sh
│   │       │   ├── extract_meta.py
│   │       │   ├── process_opus.py
│   │       │   ├── quant.sh
│   │       │   ├── test.sh
│   │       │   ├── test_wav.sh
│   │       │   ├── train.sh
│   │       │   └── wenetspeech_data_prep.sh
│   │       ├── path.sh
│   │       └── run.sh
│   └── zh_en_tts/
│       └── tts3/
│           ├── .gitignore
│           ├── README.md
│           ├── conf/
│           │   └── default.yaml
│           ├── local/
│           │   ├── inference.sh
│           │   ├── mfa_download.sh
│           │   ├── model_download.sh
│           │   ├── ort_predict.sh
│           │   ├── preprocess.sh
│           │   ├── synthesize.sh
│           │   └── synthesize_e2e.sh
│           └── run.sh
├── paddlespeech/
│   ├── __init__.py
│   ├── audio/
│   │   ├── .gitignore
│   │   ├── __init__.py
│   │   ├── backends/
│   │   │   ├── __init__.py
│   │   │   ├── common.py
│   │   │   └── soundfile_backend.py
│   │   ├── compliance/
│   │   │   ├── __init__.py
│   │   │   ├── kaldi.py
│   │   │   └── librosa.py
│   │   ├── datasets/
│   │   │   ├── __init__.py
│   │   │   ├── dataset.py
│   │   │   ├── esc50.py
│   │   │   └── voxceleb.py
│   │   ├── functional/
│   │   │   ├── __init__.py
│   │   │   ├── functional.py
│   │   │   └── window.py
│   │   ├── streamdata/
│   │   │   ├── __init__.py
│   │   │   ├── autodecode.py
│   │   │   ├── cache.py
│   │   │   ├── compat.py
│   │   │   ├── extradatasets.py
│   │   │   ├── filters.py
│   │   │   ├── gopen.py
│   │   │   ├── handlers.py
│   │   │   ├── mix.py
│   │   │   ├── paddle_utils.py
│   │   │   ├── pipeline.py
│   │   │   ├── shardlists.py
│   │   │   ├── soundfile.py
│   │   │   ├── tariterators.py
│   │   │   ├── utils.py
│   │   │   └── writer.py
│   │   ├── text/
│   │   │   ├── __init__.py
│   │   │   ├── text_featurizer.py
│   │   │   └── utility.py
│   │   ├── transform/
│   │   │   ├── __init__.py
│   │   │   ├── add_deltas.py
│   │   │   ├── channel_selector.py
│   │   │   ├── cmvn.py
│   │   │   ├── functional.py
│   │   │   ├── perturb.py
│   │   │   ├── spec_augment.py
│   │   │   ├── spectrogram.py
│   │   │   ├── transform_interface.py
│   │   │   ├── transformation.py
│   │   │   └── wpe.py
│   │   └── utils/
│   │       ├── __init__.py
│   │       ├── check_kwargs.py
│   │       ├── download.py
│   │       ├── dynamic_import.py
│   │       ├── error.py
│   │       ├── log.py
│   │       ├── numeric.py
│   │       ├── tensor_utils.py
│   │       └── time.py
│   ├── audiotools/
│   │   ├── README.md
│   │   ├── __init__.py
│   │   ├── core/
│   │   │   ├── __init__.py
│   │   │   ├── _julius.py
│   │   │   ├── audio_signal.py
│   │   │   ├── display.py
│   │   │   ├── dsp.py
│   │   │   ├── effects.py
│   │   │   ├── ffmpeg.py
│   │   │   ├── loudness.py
│   │   │   └── util.py
│   │   ├── data/
│   │   │   ├── __init__.py
│   │   │   ├── datasets.py
│   │   │   ├── preprocess.py
│   │   │   └── transforms.py
│   │   ├── metrics/
│   │   │   ├── __init__.py
│   │   │   └── quality.py
│   │   ├── ml/
│   │   │   ├── __init__.py
│   │   │   ├── accelerator.py
│   │   │   ├── basemodel.py
│   │   │   └── decorators.py
│   │   └── post.py
│   ├── cli/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── __init__.py
│   │   ├── asr/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── base_commands.py
│   │   ├── cls/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── download.py
│   │   ├── entry.py
│   │   ├── executor.py
│   │   ├── kws/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── log.py
│   │   ├── ssl/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── st/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── text/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── tts/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   ├── utils.py
│   │   ├── vector/
│   │   │   ├── __init__.py
│   │   │   └── infer.py
│   │   └── whisper/
│   │       ├── __init__.py
│   │       └── infer.py
│   ├── cls/
│   │   ├── __init__.py
│   │   ├── exps/
│   │   │   ├── __init__.py
│   │   │   └── panns/
│   │   │       ├── __init__.py
│   │   │       ├── deploy/
│   │   │       │   ├── __init__.py
│   │   │       │   └── predict.py
│   │   │       ├── export_model.py
│   │   │       ├── predict.py
│   │   │       └── train.py
│   │   └── models/
│   │       ├── __init__.py
│   │       └── panns/
│   │           ├── __init__.py
│   │           ├── classifier.py
│   │           └── panns.py
│   ├── dataset/
│   │   ├── __init__.py
│   │   ├── aidatatang_200zh/
│   │   │   ├── README.md
│   │   │   ├── __init__.py
│   │   │   └── aidatatang_200zh.py
│   │   ├── aishell/
│   │   │   ├── README.md
│   │   │   ├── __init__.py
│   │   │   └── aishell.py
│   │   ├── download.py
│   │   └── s2t/
│   │       ├── __init__.py
│   │       ├── avg_model.py
│   │       ├── build_vocab.py
│   │       ├── compute_mean_std.py
│   │       ├── compute_wer.py
│   │       ├── format_data.py
│   │       └── format_rsl.py
│   ├── kws/
│   │   ├── __init__.py
│   │   ├── exps/
│   │   │   ├── __init__.py
│   │   │   └── mdtc/
│   │   │       ├── __init__.py
│   │   │       ├── collate.py
│   │   │       ├── compute_det.py
│   │   │       ├── plot_det_curve.py
│   │   │       ├── score.py
│   │   │       └── train.py
│   │   └── models/
│   │       ├── __init__.py
│   │       ├── loss.py
│   │       └── mdtc.py
│   ├── resource/
│   │   ├── __init__.py
│   │   ├── model_alias.py
│   │   ├── pretrained_models.py
│   │   └── resource.py
│   ├── s2t/
│   │   ├── __init__.py
│   │   ├── decoders/
│   │   │   ├── README.md
│   │   │   ├── __init__.py
│   │   │   ├── beam_search/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── batch_beam_search.py
│   │   │   │   └── beam_search.py
│   │   │   ├── ctcdecoder/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── decoders_deprecated.py
│   │   │   │   ├── scorer_deprecated.py
│   │   │   │   ├── swig_wrapper.py
│   │   │   │   └── tests/
│   │   │   │       └── test_decoders.py
│   │   │   ├── recog.py
│   │   │   ├── recog_bin.py
│   │   │   ├── scorers/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── ctc.py
│   │   │   │   ├── ctc_prefix_score.py
│   │   │   │   ├── length_bonus.py
│   │   │   │   ├── ngram.py
│   │   │   │   └── scorer_interface.py
│   │   │   └── utils.py
│   │   ├── exps/
│   │   │   ├── __init__.py
│   │   │   ├── deepspeech2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── deploy/
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   ├── client.py
│   │   │   │   │   │   ├── record.py
│   │   │   │   │   │   ├── runtime.py
│   │   │   │   │   │   ├── send.py
│   │   │   │   │   │   └── server.py
│   │   │   │   │   ├── export.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   ├── test_export.py
│   │   │   │   │   ├── test_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   ├── hubert/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   ├── test_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   ├── lm/
│   │   │   │   └── transformer/
│   │   │   │       ├── __init__.py
│   │   │   │       ├── bin/
│   │   │   │       │   ├── __init__.py
│   │   │   │       │   └── cacu_perplexity.py
│   │   │   │       └── lm_cacu_perplexity.py
│   │   │   ├── u2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── alignment.py
│   │   │   │   │   ├── export.py
│   │   │   │   │   ├── quant.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   ├── test_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   ├── model.py
│   │   │   │   └── trainer.py
│   │   │   ├── u2_kaldi/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── recog.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   ├── u2_st/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── export.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   ├── wav2vec2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   ├── test_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   ├── wavlm/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── bin/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── test.py
│   │   │   │   │   ├── test_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   └── model.py
│   │   │   └── whisper/
│   │   │       └── test_wav.py
│   │   ├── frontend/
│   │   │   ├── __init__.py
│   │   │   ├── audio.py
│   │   │   ├── augmentor/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── augmentation.py
│   │   │   │   ├── base.py
│   │   │   │   ├── impulse_response.py
│   │   │   │   ├── noise_perturb.py
│   │   │   │   ├── online_bayesian_normalization.py
│   │   │   │   ├── resample.py
│   │   │   │   ├── shift_perturb.py
│   │   │   │   ├── spec_augment.py
│   │   │   │   ├── speed_perturb.py
│   │   │   │   └── volume_perturb.py
│   │   │   ├── featurizer/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── audio_featurizer.py
│   │   │   │   ├── speech_featurizer.py
│   │   │   │   └── text_featurizer.py
│   │   │   ├── normalizer.py
│   │   │   ├── speech.py
│   │   │   └── utility.py
│   │   ├── io/
│   │   │   ├── __init__.py
│   │   │   ├── batchfy.py
│   │   │   ├── collator.py
│   │   │   ├── converter.py
│   │   │   ├── dataloader.py
│   │   │   ├── dataset.py
│   │   │   ├── reader.py
│   │   │   ├── sampler.py
│   │   │   ├── speechbrain/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── batch.py
│   │   │   │   ├── data_pipeline.py
│   │   │   │   ├── data_utils.py
│   │   │   │   ├── dataio.py
│   │   │   │   ├── dataloader.py
│   │   │   │   ├── dataset.py
│   │   │   │   ├── depgraph.py
│   │   │   │   ├── make_dataloader.py
│   │   │   │   ├── sampler.py
│   │   │   │   └── sb_pipeline.py
│   │   │   └── utility.py
│   │   ├── models/
│   │   │   ├── __init__.py
│   │   │   ├── asr_interface.py
│   │   │   ├── ds2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── conv.py
│   │   │   │   └── deepspeech2.py
│   │   │   ├── hubert/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── hubert_ASR.py
│   │   │   │   └── modules/
│   │   │   │       ├── __init__.py
│   │   │   │       └── hubert_model.py
│   │   │   ├── lm/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── dataset.py
│   │   │   │   └── transformer.py
│   │   │   ├── lm_interface.py
│   │   │   ├── st_interface.py
│   │   │   ├── u2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── u2.py
│   │   │   │   └── updater.py
│   │   │   ├── u2_st/
│   │   │   │   ├── __init__.py
│   │   │   │   └── u2_st.py
│   │   │   ├── wav2vec2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── modules/
│   │   │   │   │   ├── VanillaNN.py
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── activations.py
│   │   │   │   │   ├── containers.py
│   │   │   │   │   ├── linear.py
│   │   │   │   │   ├── modeling_outputs.py
│   │   │   │   │   ├── modeling_wav2vec2.py
│   │   │   │   │   ├── normalization.py
│   │   │   │   │   └── wav2vec2_model.py
│   │   │   │   ├── processing/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── signal_processing.py
│   │   │   │   │   └── speech_augmentation.py
│   │   │   │   └── wav2vec2_ASR.py
│   │   │   ├── wavlm/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── modules/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── activations.py
│   │   │   │   │   ├── functional.py
│   │   │   │   │   └── modules.py
│   │   │   │   ├── wavlm_asr.py
│   │   │   │   └── wavlm_paddle.py
│   │   │   └── whisper/
│   │   │       ├── __init__.py
│   │   │       ├── tokenizer.py
│   │   │       ├── utils.py
│   │   │       ├── whisper.py
│   │   │       └── whisper_LICENSE
│   │   ├── modules/
│   │   │   ├── __init__.py
│   │   │   ├── activation.py
│   │   │   ├── align.py
│   │   │   ├── attention.py
│   │   │   ├── cmvn.py
│   │   │   ├── conformer_convolution.py
│   │   │   ├── conv2d.py
│   │   │   ├── crf.py
│   │   │   ├── ctc.py
│   │   │   ├── decoder.py
│   │   │   ├── decoder_layer.py
│   │   │   ├── embedding.py
│   │   │   ├── encoder.py
│   │   │   ├── encoder_layer.py
│   │   │   ├── fbank.py
│   │   │   ├── initializer.py
│   │   │   ├── loss.py
│   │   │   ├── mask.py
│   │   │   ├── positionwise_feed_forward.py
│   │   │   ├── subsampling.py
│   │   │   └── time_reduction.py
│   │   ├── training/
│   │   │   ├── __init__.py
│   │   │   ├── cli.py
│   │   │   ├── extensions/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── evaluator.py
│   │   │   │   ├── extension.py
│   │   │   │   ├── plot.py
│   │   │   │   ├── snapshot.py
│   │   │   │   └── visualizer.py
│   │   │   ├── optimizer/
│   │   │   │   ├── __init__.py
│   │   │   │   └── adadelta.py
│   │   │   ├── reporter.py
│   │   │   ├── scheduler.py
│   │   │   ├── timer.py
│   │   │   ├── trainer.py
│   │   │   ├── triggers/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── compare_value_trigger.py
│   │   │   │   ├── interval_trigger.py
│   │   │   │   ├── limit_trigger.py
│   │   │   │   ├── time_trigger.py
│   │   │   │   └── utils.py
│   │   │   └── updaters/
│   │   │       ├── __init__.py
│   │   │       ├── standard_updater.py
│   │   │       ├── trainer.py
│   │   │       └── updater.py
│   │   └── utils/
│   │       ├── __init__.py
│   │       ├── asr_utils.py
│   │       ├── bleu_score.py
│   │       ├── check_kwargs.py
│   │       ├── checkpoint.py
│   │       ├── cli_readers.py
│   │       ├── cli_utils.py
│   │       ├── cli_writers.py
│   │       ├── ctc_utils.py
│   │       ├── dynamic_import.py
│   │       ├── dynamic_pip_install.py
│   │       ├── error_rate.py
│   │       ├── layer_tools.py
│   │       ├── log.py
│   │       ├── mp_tools.py
│   │       ├── profiler.py
│   │       ├── socket_server.py
│   │       ├── spec_augment.py
│   │       ├── tensor_utils.py
│   │       ├── text_grid.py
│   │       └── utility.py
│   ├── server/
│   │   ├── README.md
│   │   ├── README_cn.md
│   │   ├── __init__.py
│   │   ├── base_commands.py
│   │   ├── bin/
│   │   │   ├── __init__.py
│   │   │   ├── paddlespeech_client.py
│   │   │   └── paddlespeech_server.py
│   │   ├── conf/
│   │   │   ├── application.yaml
│   │   │   ├── tts_online_application.yaml
│   │   │   ├── vector_application.yaml
│   │   │   ├── ws_conformer_application.yaml
│   │   │   ├── ws_conformer_wenetspeech_application_faster.yaml
│   │   │   └── ws_ds2_application.yaml
│   │   ├── engine/
│   │   │   ├── __init__.py
│   │   │   ├── acs/
│   │   │   │   ├── __init__.py
│   │   │   │   └── python/
│   │   │   │       ├── __init__.py
│   │   │   │       └── acs_engine.py
│   │   │   ├── asr/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── online/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── ctc_endpoint.py
│   │   │   │   │   ├── ctc_search.py
│   │   │   │   │   ├── onnx/
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   └── asr_engine.py
│   │   │   │   │   ├── paddleinference/
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   └── asr_engine.py
│   │   │   │   │   └── python/
│   │   │   │   │       ├── __init__.py
│   │   │   │   │       └── asr_engine.py
│   │   │   │   ├── paddleinference/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── asr_engine.py
│   │   │   │   └── python/
│   │   │   │       ├── __init__.py
│   │   │   │       └── asr_engine.py
│   │   │   ├── base_engine.py
│   │   │   ├── cls/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── paddleinference/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── cls_engine.py
│   │   │   │   └── python/
│   │   │   │       ├── __init__.py
│   │   │   │       └── cls_engine.py
│   │   │   ├── engine_factory.py
│   │   │   ├── engine_pool.py
│   │   │   ├── engine_warmup.py
│   │   │   ├── text/
│   │   │   │   ├── __init__.py
│   │   │   │   └── python/
│   │   │   │       ├── __init__.py
│   │   │   │       └── text_engine.py
│   │   │   ├── tts/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── online/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── onnx/
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   └── tts_engine.py
│   │   │   │   │   └── python/
│   │   │   │   │       ├── __init__.py
│   │   │   │   │       └── tts_engine.py
│   │   │   │   ├── paddleinference/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── tts_engine.py
│   │   │   │   └── python/
│   │   │   │       ├── __init__.py
│   │   │   │       └── tts_engine.py
│   │   │   └── vector/
│   │   │       ├── __init__.py
│   │   │       └── python/
│   │   │           ├── __init__.py
│   │   │           └── vector_engine.py
│   │   ├── entry.py
│   │   ├── executor.py
│   │   ├── restful/
│   │   │   ├── __init__.py
│   │   │   ├── acs_api.py
│   │   │   ├── api.py
│   │   │   ├── asr_api.py
│   │   │   ├── cls_api.py
│   │   │   ├── request.py
│   │   │   ├── response.py
│   │   │   ├── text_api.py
│   │   │   ├── tts_api.py
│   │   │   └── vector_api.py
│   │   ├── tests/
│   │   │   ├── __init__.py
│   │   │   ├── asr/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── offline/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── http_client.py
│   │   │   │   └── online/
│   │   │   │       ├── README.md
│   │   │   │       ├── README_cn.md
│   │   │   │       └── microphone_client.py
│   │   │   ├── text/
│   │   │   │   └── http_client.py
│   │   │   └── tts/
│   │   │       ├── offline/
│   │   │       │   └── http_client.py
│   │   │       └── online/
│   │   │           ├── http_client.py
│   │   │           └── ws_client.py
│   │   ├── util.py
│   │   ├── utils/
│   │   │   ├── __init__.py
│   │   │   ├── audio_handler.py
│   │   │   ├── audio_process.py
│   │   │   ├── buffer.py
│   │   │   ├── config.py
│   │   │   ├── errors.py
│   │   │   ├── exception.py
│   │   │   ├── onnx_infer.py
│   │   │   ├── paddle_predictor.py
│   │   │   ├── util.py
│   │   │   └── vad.py
│   │   └── ws/
│   │       ├── __init__.py
│   │       ├── api.py
│   │       ├── asr_api.py
│   │       └── tts_api.py
│   ├── t2s/
│   │   ├── __init__.py
│   │   ├── assets/
│   │   │   ├── __init__.py
│   │   │   ├── csmsc_test.txt
│   │   │   ├── sentences.txt
│   │   │   ├── sentences_canton.txt
│   │   │   ├── sentences_en.txt
│   │   │   ├── sentences_mix.txt
│   │   │   ├── sentences_sing.txt
│   │   │   └── sentences_ssml.txt
│   │   ├── audio/
│   │   │   ├── __init__.py
│   │   │   ├── audio.py
│   │   │   ├── codec.py
│   │   │   └── spec_normalizer.py
│   │   ├── datasets/
│   │   │   ├── __init__.py
│   │   │   ├── am_batch_fn.py
│   │   │   ├── batch.py
│   │   │   ├── data_table.py
│   │   │   ├── dataset.py
│   │   │   ├── get_feats.py
│   │   │   ├── ljspeech.py
│   │   │   ├── preprocess_utils.py
│   │   │   ├── sampler.py
│   │   │   └── vocoder_batch_fn.py
│   │   ├── exps/
│   │   │   ├── PTQ_dynamic.py
│   │   │   ├── PTQ_static.py
│   │   │   ├── __init__.py
│   │   │   ├── diffsinger/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── gen_gta_mel.py
│   │   │   │   ├── get_minmax.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   └── train.py
│   │   │   ├── dygraph_to_static.py
│   │   │   ├── ernie_sat/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── align.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize.py
│   │   │   │   ├── synthesize_e2e.py
│   │   │   │   ├── train.py
│   │   │   │   └── utils.py
│   │   │   ├── fastspeech2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── gen_gta_mel.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── train.py
│   │   │   │   └── vc2_infer.py
│   │   │   ├── gan_vocoder/
│   │   │   │   ├── README.md
│   │   │   │   ├── __init__.py
│   │   │   │   ├── hifigan/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── train.py
│   │   │   │   ├── multi_band_melgan/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── train.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── parallelwave_gan/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── synthesize_from_wav.py
│   │   │   │   │   └── train.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── style_melgan/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── train.py
│   │   │   │   └── synthesize.py
│   │   │   ├── inference.py
│   │   │   ├── inference_streaming.py
│   │   │   ├── jets/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── inference.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize.py
│   │   │   │   ├── synthesize_e2e.py
│   │   │   │   └── train.py
│   │   │   ├── lite_predict.py
│   │   │   ├── lite_predict_streaming.py
│   │   │   ├── lite_syn_utils.py
│   │   │   ├── ort_predict.py
│   │   │   ├── ort_predict_e2e.py
│   │   │   ├── ort_predict_streaming.py
│   │   │   ├── speedyspeech/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── gen_gta_mel.py
│   │   │   │   ├── inference.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize_e2e.py
│   │   │   │   └── train.py
│   │   │   ├── starganv2_vc/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── train.py
│   │   │   │   └── vc.py
│   │   │   ├── stream_play_tts.py
│   │   │   ├── syn_utils.py
│   │   │   ├── synthesize.py
│   │   │   ├── synthesize_e2e.py
│   │   │   ├── synthesize_streaming.py
│   │   │   ├── tacotron2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── preprocess.py
│   │   │   │   └── train.py
│   │   │   ├── transformer_tts/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize.py
│   │   │   │   ├── synthesize_e2e.py
│   │   │   │   └── train.py
│   │   │   ├── vits/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── inference.py
│   │   │   │   ├── lite_predict.py
│   │   │   │   ├── normalize.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize.py
│   │   │   │   ├── synthesize_e2e.py
│   │   │   │   ├── train.py
│   │   │   │   └── voice_cloning.py
│   │   │   ├── voice_cloning.py
│   │   │   ├── waveflow/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── config.py
│   │   │   │   ├── ljspeech.py
│   │   │   │   ├── preprocess.py
│   │   │   │   ├── synthesize.py
│   │   │   │   └── train.py
│   │   │   └── wavernn/
│   │   │       ├── __init__.py
│   │   │       ├── synthesize.py
│   │   │       └── train.py
│   │   ├── frontend/
│   │   │   ├── __init__.py
│   │   │   ├── arpabet.py
│   │   │   ├── canton_frontend.py
│   │   │   ├── en_frontend.py
│   │   │   ├── g2pw/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── dataset.py
│   │   │   │   ├── onnx_api.py
│   │   │   │   └── utils.py
│   │   │   ├── generate_lexicon.py
│   │   │   ├── mix_frontend.py
│   │   │   ├── normalizer/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── abbrrviation.py
│   │   │   │   ├── acronyms.py
│   │   │   │   ├── normalizer.py
│   │   │   │   ├── numbers.py
│   │   │   │   └── width.py
│   │   │   ├── phonectic.py
│   │   │   ├── polyphonic.py
│   │   │   ├── polyphonic.yaml
│   │   │   ├── punctuation.py
│   │   │   ├── rhy_prediction/
│   │   │   │   ├── __init__.py
│   │   │   │   └── rhy_predictor.py
│   │   │   ├── sing_frontend.py
│   │   │   ├── ssml/
│   │   │   │   ├── __init__.py
│   │   │   │   └── xml_processor.py
│   │   │   ├── tone_sandhi.py
│   │   │   ├── vocab.py
│   │   │   ├── zh_frontend.py
│   │   │   └── zh_normalization/
│   │   │       ├── README.md
│   │   │       ├── __init__.py
│   │   │       ├── char_convert.py
│   │   │       ├── chronology.py
│   │   │       ├── constants.py
│   │   │       ├── num.py
│   │   │       ├── phonecode.py
│   │   │       ├── quantifier.py
│   │   │       └── text_normlization.py
│   │   ├── models/
│   │   │   ├── __init__.py
│   │   │   ├── diffsinger/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── diffsinger.py
│   │   │   │   ├── diffsinger_updater.py
│   │   │   │   └── fastspeech2midi.py
│   │   │   ├── ernie_sat/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── ernie_sat.py
│   │   │   │   └── ernie_sat_updater.py
│   │   │   ├── fastspeech2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── fastspeech2.py
│   │   │   │   └── fastspeech2_updater.py
│   │   │   ├── hifigan/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── hifigan.py
│   │   │   │   └── hifigan_updater.py
│   │   │   ├── jets/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── alignments.py
│   │   │   │   ├── generator.py
│   │   │   │   ├── jets.py
│   │   │   │   ├── jets_updater.py
│   │   │   │   └── length_regulator.py
│   │   │   ├── melgan/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── melgan.py
│   │   │   │   ├── multi_band_melgan_updater.py
│   │   │   │   ├── style_melgan.py
│   │   │   │   └── style_melgan_updater.py
│   │   │   ├── parallel_wavegan/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── parallel_wavegan.py
│   │   │   │   └── parallel_wavegan_updater.py
│   │   │   ├── speedyspeech/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── speedyspeech.py
│   │   │   │   └── speedyspeech_updater.py
│   │   │   ├── starganv2_vc/
│   │   │   │   ├── AuxiliaryASR/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── config.yml
│   │   │   │   │   ├── layers.py
│   │   │   │   │   └── model.py
│   │   │   │   ├── JDCNet/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── model.py
│   │   │   │   ├── __init__.py
│   │   │   │   ├── losses.py
│   │   │   │   ├── starganv2_vc.py
│   │   │   │   ├── starganv2_vc_updater.py
│   │   │   │   └── transforms.py
│   │   │   ├── tacotron2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── tacotron2.py
│   │   │   │   └── tacotron2_updater.py
│   │   │   ├── transformer_tts/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── transformer_tts.py
│   │   │   │   └── transformer_tts_updater.py
│   │   │   ├── vits/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── duration_predictor.py
│   │   │   │   ├── flow.py
│   │   │   │   ├── generator.py
│   │   │   │   ├── monotonic_align/
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── core.pyx
│   │   │   │   │   └── setup.py
│   │   │   │   ├── posterior_encoder.py
│   │   │   │   ├── residual_coupling.py
│   │   │   │   ├── text_encoder.py
│   │   │   │   ├── transform.py
│   │   │   │   ├── vits.py
│   │   │   │   ├── vits_updater.py
│   │   │   │   └── wavenet/
│   │   │   │       ├── __init__.py
│   │   │   │       ├── residual_block.py
│   │   │   │       └── wavenet.py
│   │   │   ├── waveflow.py
│   │   │   └── wavernn/
│   │   │       ├── __init__.py
│   │   │       ├── wavernn.py
│   │   │       └── wavernn_updater.py
│   │   ├── modules/
│   │   │   ├── __init__.py
│   │   │   ├── activation.py
│   │   │   ├── adversarial_loss/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── gradient_reversal.py
│   │   │   │   └── speaker_classifier.py
│   │   │   ├── causal_conv.py
│   │   │   ├── conformer/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── convolution.py
│   │   │   │   └── encoder_layer.py
│   │   │   ├── conv.py
│   │   │   ├── diffnet.py
│   │   │   ├── diffusion.py
│   │   │   ├── fftconv1d.py
│   │   │   ├── geometry.py
│   │   │   ├── layer_norm.py
│   │   │   ├── losses.py
│   │   │   ├── masked_fill.py
│   │   │   ├── nets_utils.py
│   │   │   ├── normalizer.py
│   │   │   ├── positional_encoding.py
│   │   │   ├── pqmf.py
│   │   │   ├── predictor/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── duration_predictor.py
│   │   │   │   ├── length_regulator.py
│   │   │   │   └── variance_predictor.py
│   │   │   ├── residual_block.py
│   │   │   ├── residual_stack.py
│   │   │   ├── style_encoder.py
│   │   │   ├── tacotron2/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── attentions.py
│   │   │   │   ├── decoder.py
│   │   │   │   └── encoder.py
│   │   │   ├── tade_res_block.py
│   │   │   ├── transformer/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── attention.py
│   │   │   │   ├── decoder.py
│   │   │   │   ├── decoder_layer.py
│   │   │   │   ├── embedding.py
│   │   │   │   ├── encoder.py
│   │   │   │   ├── encoder_layer.py
│   │   │   │   ├── lightconv.py
│   │   │   │   ├── mask.py
│   │   │   │   ├── multi_layer_conv.py
│   │   │   │   ├── positionwise_feed_forward.py
│   │   │   │   ├── repeat.py
│   │   │   │   └── subsampling.py
│   │   │   ├── upsample.py
│   │   │   └── wavenet_denoiser.py
│   │   ├── training/
│   │   │   ├── __init__.py
│   │   │   ├── cli.py
│   │   │   ├── default_config.py
│   │   │   ├── experiment.py
│   │   │   ├── extension.py
│   │   │   ├── extensions/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── evaluator.py
│   │   │   │   ├── snapshot.py
│   │   │   │   └── visualizer.py
│   │   │   ├── optimizer.py
│   │   │   ├── reporter.py
│   │   │   ├── seeding.py
│   │   │   ├── trainer.py
│   │   │   ├── trigger.py
│   │   │   ├── triggers/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── interval_trigger.py
│   │   │   │   ├── limit_trigger.py
│   │   │   │   └── time_trigger.py
│   │   │   ├── updater.py
│   │   │   └── updaters/
│   │   │       ├── __init__.py
│   │   │       └── standard_updater.py
│   │   └── utils/
│   │       ├── __init__.py
│   │       ├── checkpoint.py
│   │       ├── display.py
│   │       ├── error_rate.py
│   │       ├── h5_utils.py
│   │       ├── internals.py
│   │       ├── layer_tools.py
│   │       ├── mp_tools.py
│   │       ├── profiler.py
│   │       └── scheduler.py
│   ├── text/
│   │   ├── __init__.py
│   │   ├── exps/
│   │   │   ├── __init__.py
│   │   │   └── ernie_linear/
│   │   │       ├── __init__.py
│   │   │       ├── avg_model.py
│   │   │       ├── punc_restore.py
│   │   │       ├── test.py
│   │   │       └── train.py
│   │   └── models/
│   │       ├── __init__.py
│   │       ├── ernie_crf/
│   │       │   ├── __init__.py
│   │       │   └── model.py
│   │       └── ernie_linear/
│   │           ├── __init__.py
│   │           ├── dataset.py
│   │           ├── ernie_linear.py
│   │           └── ernie_linear_updater.py
│   ├── utils/
│   │   ├── __init__.py
│   │   ├── argparse.py
│   │   ├── dynamic_import.py
│   │   ├── env.py
│   │   └── initialize.py
│   └── vector/
│       ├── __init__.py
│       ├── cluster/
│       │   ├── __init__.py
│       │   ├── diarization.py
│       │   └── plda.py
│       ├── exps/
│       │   ├── __init__.py
│       │   ├── ecapa_tdnn/
│       │   │   ├── extract_emb.py
│       │   │   ├── test.py
│       │   │   └── train.py
│       │   └── ge2e/
│       │       ├── __init__.py
│       │       ├── audio_processor.py
│       │       ├── config.py
│       │       ├── dataset_processors.py
│       │       ├── inference.py
│       │       ├── preprocess.py
│       │       ├── random_cycle.py
│       │       ├── speaker_verification_dataset.py
│       │       └── train.py
│       ├── io/
│       │   ├── __init__.py
│       │   ├── augment.py
│       │   ├── batch.py
│       │   ├── dataset.py
│       │   ├── dataset_from_json.py
│       │   ├── embedding_norm.py
│       │   └── signal_processing.py
│       ├── models/
│       │   ├── __init__.py
│       │   ├── ecapa_tdnn.py
│       │   └── lstm_speaker_encoder.py
│       ├── modules/
│       │   ├── __init__.py
│       │   ├── layer.py
│       │   ├── loss.py
│       │   └── sid_model.py
│       ├── training/
│       │   ├── __init__.py
│       │   ├── scheduler.py
│       │   └── seeding.py
│       └── utils/
│           ├── __init__.py
│           ├── time.py
│           └── vector_utils.py
├── runtime/
│   ├── .clang-format
│   ├── .gitignore
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── build.sh
│   ├── build_android.sh
│   ├── build_ios.sh
│   ├── cmake/
│   │   ├── EnableCMP0048.cmake
│   │   ├── EnableCMP0077.cmake
│   │   ├── FindGFortranLibs.cmake
│   │   ├── absl.cmake
│   │   ├── boost.cmake
│   │   ├── eigen.cmake
│   │   ├── fastdeploy.cmake
│   │   ├── gflags.cmake
│   │   ├── glog.cmake
│   │   ├── gtest.cmake
│   │   ├── kenlm.cmake
│   │   ├── libsndfile.cmake
│   │   ├── openblas.cmake
│   │   ├── openfst.cmake
│   │   ├── paddleinference.cmake
│   │   ├── pybind.cmake
│   │   ├── summary.cmake
│   │   └── system.cmake
│   ├── docker/
│   │   └── .gitkeep
│   ├── engine/
│   │   ├── CMakeLists.txt
│   │   ├── asr/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── decoder/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── common.h
│   │   │   │   ├── ctc_beam_search_opt.h
│   │   │   │   ├── ctc_prefix_beam_search_decoder.cc
│   │   │   │   ├── ctc_prefix_beam_search_decoder.h
│   │   │   │   ├── ctc_prefix_beam_search_decoder_main.cc
│   │   │   │   ├── ctc_prefix_beam_search_score.h
│   │   │   │   ├── ctc_tlg_decoder.cc
│   │   │   │   ├── ctc_tlg_decoder.h
│   │   │   │   ├── ctc_tlg_decoder_main.cc
│   │   │   │   ├── decoder_itf.h
│   │   │   │   └── param.h
│   │   │   ├── nnet/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── decodable.cc
│   │   │   │   ├── decodable.h
│   │   │   │   ├── nnet_itf.h
│   │   │   │   ├── nnet_producer.cc
│   │   │   │   ├── nnet_producer.h
│   │   │   │   ├── u2_nnet.cc
│   │   │   │   ├── u2_nnet.h
│   │   │   │   ├── u2_nnet_main.cc
│   │   │   │   ├── u2_nnet_thread_main.cc
│   │   │   │   ├── u2_onnx_nnet.cc
│   │   │   │   └── u2_onnx_nnet.h
│   │   │   ├── recognizer/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── recognizer.cc
│   │   │   │   ├── recognizer.h
│   │   │   │   ├── recognizer_batch_main.cc
│   │   │   │   ├── recognizer_batch_main2.cc
│   │   │   │   ├── recognizer_controller.cc
│   │   │   │   ├── recognizer_controller.h
│   │   │   │   ├── recognizer_controller_impl.cc
│   │   │   │   ├── recognizer_controller_impl.h
│   │   │   │   ├── recognizer_instance.cc
│   │   │   │   ├── recognizer_instance.h
│   │   │   │   ├── recognizer_main.cc
│   │   │   │   └── recognizer_resource.h
│   │   │   └── server/
│   │   │       ├── CMakeLists.txt
│   │   │       └── websocket/
│   │   │           ├── CMakeLists.txt
│   │   │           ├── websocket_client.cc
│   │   │           ├── websocket_client.h
│   │   │           ├── websocket_client_main.cc
│   │   │           ├── websocket_server.cc
│   │   │           ├── websocket_server.h
│   │   │           └── websocket_server_main.cc
│   │   ├── audio_classification/
│   │   │   ├── CMakeLists.txt
│   │   │   └── nnet/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── panns_interface.cc
│   │   │       ├── panns_interface.h
│   │   │       ├── panns_nnet.cc
│   │   │       ├── panns_nnet.h
│   │   │       └── panns_nnet_main.cc
│   │   ├── codelab/
│   │   │   ├── CMakeLists.txt
│   │   │   └── README.md
│   │   ├── common/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── base/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── basic_types.h
│   │   │   │   ├── common.h
│   │   │   │   ├── config.h
│   │   │   │   ├── flags.h.in
│   │   │   │   ├── glog_utils.cc
│   │   │   │   ├── glog_utils.h
│   │   │   │   ├── log.h.in
│   │   │   │   ├── log_impl.cc
│   │   │   │   ├── log_impl.h
│   │   │   │   ├── macros.h
│   │   │   │   ├── safe_queue.h
│   │   │   │   ├── safe_queue_inl.h
│   │   │   │   └── thread_pool.h
│   │   │   ├── frontend/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── assembler.cc
│   │   │   │   ├── assembler.h
│   │   │   │   ├── audio_cache.cc
│   │   │   │   ├── audio_cache.h
│   │   │   │   ├── cmvn.cc
│   │   │   │   ├── cmvn.h
│   │   │   │   ├── compute_fbank_main.cc
│   │   │   │   ├── compute_linear_spectrogram_main.cc
│   │   │   │   ├── data_cache.h
│   │   │   │   ├── db_norm.cc
│   │   │   │   ├── db_norm.h
│   │   │   │   ├── fbank.h
│   │   │   │   ├── feature-fbank.cc
│   │   │   │   ├── feature-fbank.h
│   │   │   │   ├── feature-functions.cc
│   │   │   │   ├── feature-functions.h
│   │   │   │   ├── feature-window.cc
│   │   │   │   ├── feature-window.h
│   │   │   │   ├── feature_cache.cc
│   │   │   │   ├── feature_cache.h
│   │   │   │   ├── feature_common.h
│   │   │   │   ├── feature_common_inl.h
│   │   │   │   ├── feature_pipeline.cc
│   │   │   │   ├── feature_pipeline.h
│   │   │   │   ├── fftsg.c
│   │   │   │   ├── frontend_itf.h
│   │   │   │   ├── linear_spectrogram.cc
│   │   │   │   ├── linear_spectrogram.h
│   │   │   │   ├── mel-computations.cc
│   │   │   │   ├── mel-computations.h
│   │   │   │   ├── normalizer.h
│   │   │   │   ├── rfft.cc
│   │   │   │   ├── rfft.h
│   │   │   │   ├── wave-reader.cc
│   │   │   │   └── wave-reader.h
│   │   │   ├── matrix/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── kaldi-matrix-inl.h
│   │   │   │   ├── kaldi-matrix.cc
│   │   │   │   ├── kaldi-matrix.h
│   │   │   │   ├── kaldi-vector-inl.h
│   │   │   │   ├── kaldi-vector.cc
│   │   │   │   ├── kaldi-vector.h
│   │   │   │   └── matrix-common.h
│   │   │   └── utils/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── audio_process.cc
│   │   │       ├── audio_process.h
│   │   │       ├── blank_process_test.cc
│   │   │       ├── file_utils.cc
│   │   │       ├── file_utils.h
│   │   │       ├── math.cc
│   │   │       ├── math.h
│   │   │       ├── picojson.h
│   │   │       ├── strings.cc
│   │   │       ├── strings.h
│   │   │       ├── strings_test.cc
│   │   │       ├── timer.cc
│   │   │       └── timer.h
│   │   ├── kaldi/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── base/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── io-funcs-inl.h
│   │   │   │   ├── io-funcs.cc
│   │   │   │   ├── io-funcs.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
│   │   │   ├── decoder/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── decodable-itf.h
│   │   │   │   ├── lattice-faster-decoder.cc
│   │   │   │   ├── lattice-faster-decoder.h
│   │   │   │   ├── lattice-faster-online-decoder.cc
│   │   │   │   └── lattice-faster-online-decoder.h
│   │   │   ├── fstbin/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── fstaddselfloops.cc
│   │   │   │   ├── fstdeterminizestar.cc
│   │   │   │   ├── fstisstochastic.cc
│   │   │   │   ├── fstminimizeencoded.cc
│   │   │   │   └── fsttablecompose.cc
│   │   │   ├── fstext/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── determinize-lattice-inl.h
│   │   │   │   ├── determinize-lattice.h
│   │   │   │   ├── determinize-star-inl.h
│   │   │   │   ├── determinize-star.h
│   │   │   │   ├── fstext-lib.h
│   │   │   │   ├── fstext-utils-inl.h
│   │   │   │   ├── fstext-utils.h
│   │   │   │   ├── kaldi-fst-io-inl.h
│   │   │   │   ├── kaldi-fst-io.cc
│   │   │   │   ├── kaldi-fst-io.h
│   │   │   │   ├── lattice-utils-inl.h
│   │   │   │   ├── lattice-utils.h
│   │   │   │   ├── lattice-weight.h
│   │   │   │   ├── pre-determinize-inl.h
│   │   │   │   ├── pre-determinize.h
│   │   │   │   ├── remove-eps-local-inl.h
│   │   │   │   ├── remove-eps-local.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/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── arpa-file-parser.cc
│   │   │   │   ├── arpa-file-parser.h
│   │   │   │   ├── arpa-lm-compiler.cc
│   │   │   │   └── arpa-lm-compiler.h
│   │   │   ├── lmbin/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── arpa2fst.cc
│   │   │   └── util/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── basic-filebuf.h
│   │   │       ├── common-utils.h
│   │   │       ├── const-integer-set-inl.h
│   │   │       ├── const-integer-set.h
│   │   │       ├── edit-distance-inl.h
│   │   │       ├── edit-distance.h
│   │   │       ├── hash-list-inl.h
│   │   │       ├── hash-list.h
│   │   │       ├── kaldi-cygwin-io-inl.h
│   │   │       ├── kaldi-holder-inl.h
│   │   │       ├── kaldi-holder.cc
│   │   │       ├── kaldi-holder.h
│   │   │       ├── kaldi-io-inl.h
│   │   │       ├── kaldi-io.cc
│   │   │       ├── kaldi-io.h
│   │   │       ├── kaldi-pipebuf.h
│   │   │       ├── kaldi-semaphore.cc
│   │   │       ├── kaldi-semaphore.h
│   │   │       ├── kaldi-table-inl.h
│   │   │       ├── kaldi-table.cc
│   │   │       ├── kaldi-table.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
│   │   └── vad/
│   │       ├── CMakeLists.txt
│   │       ├── frontend/
│   │       │   └── wav.h
│   │       ├── interface/
│   │       │   ├── CMakeLists.txt
│   │       │   ├── vad_interface.cc
│   │       │   ├── vad_interface.h
│   │       │   └── vad_interface_main.cc
│   │       └── nnet/
│   │           ├── CMakeLists.txt
│   │           ├── vad.cc
│   │           ├── vad.h
│   │           └── vad_nnet_main.cc
│   ├── examples/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── android/
│   │   │   └── VadJni/
│   │   │       ├── .gitignore
│   │   │       ├── app/
│   │   │       │   ├── .gitignore
│   │   │       │   ├── build.gradle
│   │   │       │   ├── libs/
│   │   │       │   │   └── .gitkeep
│   │   │       │   ├── proguard-rules.pro
│   │   │       │   └── src/
│   │   │       │       ├── androidTest/
│   │   │       │       │   └── java/
│   │   │       │       │       └── com/
│   │   │       │       │           └── baidu/
│   │   │       │       │               └── paddlespeech/
│   │   │       │       │                   └── vadjni/
│   │   │       │       │                       └── ExampleInstrumentedTest.java
│   │   │       │       └── main/
│   │   │       │           ├── AndroidManifest.xml
│   │   │       │           ├── assets/
│   │   │       │           │   └── .gitkeep
│   │   │       │           ├── cpp/
│   │   │       │           │   ├── CMakeLists.txt
│   │   │       │           │   ├── native-lib.cpp
│   │   │       │           │   └── vad_interface.h
│   │   │       │           ├── java/
│   │   │       │           │   └── com/
│   │   │       │           │       └── baidu/
│   │   │       │           │           └── paddlespeech/
│   │   │       │           │               └── vadjni/
│   │   │       │           │                   └── MainActivity.java
│   │   │       │           └── res/
│   │   │       │               ├── drawable/
│   │   │       │               │   └── ic_launcher_background.xml
│   │   │       │               ├── drawable-v24/
│   │   │       │               │   └── ic_launcher_foreground.xml
│   │   │       │               ├── layout/
│   │   │       │               │   └── activity_main.xml
│   │   │       │               ├── mipmap-anydpi-v26/
│   │   │       │               │   ├── ic_launcher.xml
│   │   │       │               │   └── ic_launcher_round.xml
│   │   │       │               ├── mipmap-anydpi-v33/
│   │   │       │               │   └── ic_launcher.xml
│   │   │       │               ├── values/
│   │   │       │               │   ├── colors.xml
│   │   │       │               │   ├── strings.xml
│   │   │       │               │   └── themes.xml
│   │   │       │               ├── values-night/
│   │   │       │               │   └── themes.xml
│   │   │       │               └── xml/
│   │   │       │                   ├── backup_rules.xml
│   │   │       │                   └── data_extraction_rules.xml
│   │   │       ├── build.gradle
│   │   │       ├── gradle/
│   │   │       │   └── wrapper/
│   │   │       │       ├── gradle-wrapper.jar
│   │   │       │       └── gradle-wrapper.properties
│   │   │       ├── gradle.properties
│   │   │       ├── gradlew
│   │   │       ├── gradlew.bat
│   │   │       └── settings.gradle
│   │   ├── audio_classification/
│   │   │   ├── README.md
│   │   │   ├── android_demo/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── app/
│   │   │   │   │   ├── .gitignore
│   │   │   │   │   ├── build.gradle
│   │   │   │   │   ├── proguard-rules.pro
│   │   │   │   │   └── src/
│   │   │   │   │       ├── androidTest/
│   │   │   │   │       │   └── java/
│   │   │   │   │       │       └── com/
│   │   │   │   │       │           └── example/
│   │   │   │   │       │               └── cls/
│   │   │   │   │       │                   └── ExampleInstrumentedTest.kt
│   │   │   │   │       └── main/
│   │   │   │   │           ├── AndroidManifest.xml
│   │   │   │   │           ├── cpp/
│   │   │   │   │           │   ├── CMakeLists.txt
│   │   │   │   │           │   ├── includes/
│   │   │   │   │           │   │   └── panns_interface.h
│   │   │   │   │           │   └── native-lib.cpp
│   │   │   │   │           ├── java/
│   │   │   │   │           │   └── com/
│   │   │   │   │           │       └── example/
│   │   │   │   │           │           └── cls/
│   │   │   │   │           │               └── MainActivity.kt
│   │   │   │   │           └── res/
│   │   │   │   │               ├── drawable/
│   │   │   │   │               │   └── ic_launcher_background.xml
│   │   │   │   │               ├── drawable-v24/
│   │   │   │   │               │   └── ic_launcher_foreground.xml
│   │   │   │   │               ├── layout/
│   │   │   │   │               │   └── activity_main.xml
│   │   │   │   │               ├── mipmap-anydpi-v26/
│   │   │   │   │               │   ├── ic_launcher.xml
│   │   │   │   │               │   └── ic_launcher_round.xml
│   │   │   │   │               ├── values/
│   │   │   │   │               │   ├── colors.xml
│   │   │   │   │               │   ├── strings.xml
│   │   │   │   │               │   └── themes.xml
│   │   │   │   │               ├── values-night/
│   │   │   │   │               │   └── themes.xml
│   │   │   │   │               └── xml/
│   │   │   │   │                   ├── backup_rules.xml
│   │   │   │   │                   └── data_extraction_rules.xml
│   │   │   │   ├── build.gradle
│   │   │   │   ├── gradle/
│   │   │   │   │   └── wrapper/
│   │   │   │   │       ├── gradle-wrapper.jar
│   │   │   │   │       └── gradle-wrapper.properties
│   │   │   │   ├── gradle.properties
│   │   │   │   ├── gradlew
│   │   │   │   ├── gradlew.bat
│   │   │   │   └── settings.gradle
│   │   │   ├── conf
│   │   │   ├── label_list
│   │   │   └── scp
│   │   ├── codelab/
│   │   │   ├── README.md
│   │   │   ├── decoder/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── README.md
│   │   │   │   ├── path.sh
│   │   │   │   ├── run.sh
│   │   │   │   └── valgrind.sh
│   │   │   ├── feat/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── README.md
│   │   │   │   ├── path.sh
│   │   │   │   ├── run.sh
│   │   │   │   └── valgrind.sh
│   │   │   ├── nnet/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── README.md
│   │   │   │   ├── path.sh
│   │   │   │   ├── run.sh
│   │   │   │   └── valgrind.sh
│   │   │   └── u2/
│   │   │       ├── .gitignore
│   │   │       ├── README.md
│   │   │       ├── local/
│   │   │       │   ├── decode.sh
│   │   │       │   ├── feat.sh
│   │   │       │   ├── nnet.sh
│   │   │       │   └── recognizer.sh
│   │   │       ├── path.sh
│   │   │       └── run.sh
│   │   ├── custom_asr/
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   ├── compile_lexicon_token_fst.sh
│   │   │   │   ├── mk_slot_graph.sh
│   │   │   │   ├── mk_tlg_with_slot.sh
│   │   │   │   └── train_lm_with_slot.sh
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── text_lm/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── local/
│   │   │   │   └── mmseg.py
│   │   │   ├── path.sh
│   │   │   └── run.sh
│   │   ├── u2pp_ol/
│   │   │   ├── README.md
│   │   │   └── wenetspeech/
│   │   │       ├── .gitignore
│   │   │       ├── README.md
│   │   │       ├── RESULTS.md
│   │   │       ├── local/
│   │   │       │   ├── aishell_train_lms.sh
│   │   │       │   ├── decode.sh
│   │   │       │   ├── feat.sh
│   │   │       │   ├── nnet.sh
│   │   │       │   ├── recognizer.sh
│   │   │       │   ├── recognizer_fastdeploy.sh
│   │   │       │   ├── recognizer_quant.sh
│   │   │       │   ├── recognizer_wfst.sh
│   │   │       │   ├── recognizer_wfst_fastdeploy.sh
│   │   │       │   ├── run_build_tlg.sh
│   │   │       │   └── split_data.sh
│   │   │       ├── path.sh
│   │   │       └── run.sh
│   │   └── vad/
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── conf/
│   │       │   └── vad.ini
│   │       ├── local/
│   │       │   ├── build.sh
│   │       │   ├── build_android.sh
│   │       │   ├── decode.sh
│   │       │   └── download.sh
│   │       ├── path.sh
│   │       ├── run.sh
│   │       └── vad-android-demo/
│   │           ├── .gradle/
│   │           │   ├── 6.1.1/
│   │           │   │   └── gc.properties
│   │           │   ├── buildOutputCleanup/
│   │           │   │   └── cache.properties
│   │           │   └── vcs-1/
│   │           │       └── gc.properties
│   │           ├── LICENSE.md
│   │           ├── README
│   │           ├── README.md
│   │           ├── build.gradle
│   │           ├── example/
│   │           │   ├── .gitignore
│   │           │   ├── build.gradle
│   │           │   ├── local.properties
│   │           │   ├── proguard-rules.pro
│   │           │   └── src/
│   │           │       ├── androidTest/
│   │           │       │   └── java/
│   │           │       │       └── com/
│   │           │       │           └── konovalov/
│   │           │       │               └── vad/
│   │           │       │                   └── example/
│   │           │       │                       └── ExampleInstrumentedTest.java
│   │           │       └── main/
│   │           │           ├── AndroidManifest.xml
│   │           │           ├── java/
│   │           │           │   └── com/
│   │           │           │       └── konovalov/
│   │           │           │           └── vad/
│   │           │           │               └── example/
│   │           │           │                   ├── MainActivity.java
│   │           │           │                   └── recorder/
│   │           │           │                       ├── VoiceRecorder.java
│   │           │           │                       └── VoiceRecorderConfig.java
│   │           │           └── res/
│   │           │               ├── drawable/
│   │           │               │   └── ic_launcher_background.xml
│   │           │               ├── drawable-v24/
│   │           │               │   └── ic_launcher_foreground.xml
│   │           │               ├── layout/
│   │           │               │   └── activity_main.xml
│   │           │               ├── mipmap-anydpi-v26/
│   │           │               │   ├── ic_launcher.xml
│   │           │               │   └── ic_launcher_round.xml
│   │           │               └── values/
│   │           │                   ├── colors.xml
│   │           │                   ├── strings.xml
│   │           │                   └── styles.xml
│   │           ├── gradle/
│   │           │   └── wrapper/
│   │           │       ├── gradle-wrapper.jar
│   │           │       └── gradle-wrapper.properties
│   │           ├── gradle.properties
│   │           ├── gradlew
│   │           ├── gradlew.bat
│   │           ├── local.properties
│   │           ├── settings.gradle
│   │           └── vad/
│   │               ├── .gitignore
│   │               ├── build.gradle
│   │               ├── consumer-rules.pro
│   │               ├── proguard-rules.pro
│   │               └── src/
│   │                   ├── androidTest/
│   │                   │   └── java/
│   │                   │       └── com/
│   │                   │           └── konovalov/
│   │                   │               └── vad/
│   │                   │                   └── ExampleInstrumentedTest.java
│   │                   └── main/
│   │                       ├── AndroidManifest.xml
│   │                       ├── cpp/
│   │                       │   ├── CMakeLists.txt
│   │                       │   ├── includes/
│   │                       │   │   └── vad_interface.h
│   │                       │   └── native-lib.cpp
│   │                       ├── java/
│   │                       │   └── com/
│   │                       │       └── konovalov/
│   │                       │           └── vad/
│   │                       │               ├── Vad.java
│   │                       │               └── VadListener.java
│   │                       └── res/
│   │                           └── values/
│   │                               └── strings.xml
│   ├── patch/
│   │   ├── CPPLINT.cfg
│   │   ├── README.md
│   │   └── openfst/
│   │       └── src/
│   │           ├── include/
│   │           │   └── fst/
│   │           │       ├── flags.h
│   │           │       └── log.h
│   │           └── lib/
│   │               └── flags.cc
│   └── tools/
│       ├── clang-format.sh
│       ├── setup_valgrind.sh
│       └── venv.sh
├── setup.cfg
├── setup.py
├── tests/
│   ├── benchmark/
│   │   ├── conformer/
│   │   │   ├── README.md
│   │   │   ├── prepare.sh
│   │   │   ├── run.sh
│   │   │   └── run_benchmark.sh
│   │   └── pwgan/
│   │       ├── README.md
│   │       ├── run_all.sh
│   │       └── run_benchmark.sh
│   ├── chains/
│   │   ├── ds2/
│   │   │   ├── README.md
│   │   │   ├── ds2_params_lite_train_infer.txt
│   │   │   ├── ds2_params_whole_train_infer.txt
│   │   │   ├── lite_train_infer.sh
│   │   │   ├── prepare.sh
│   │   │   ├── speedyspeech_params_lite.txt
│   │   │   ├── test.sh
│   │   │   └── whole_train_infer.sh
│   │   └── speedyspeech/
│   │       ├── README.md
│   │       ├── infer.sh
│   │       ├── lite_train_infer.sh
│   │       ├── prepare.sh
│   │       ├── speedyspeech_params_lite_multi_gpu.txt
│   │       ├── speedyspeech_params_lite_single_gpu.txt
│   │       ├── speedyspeech_params_whole_multi_gpu.txt
│   │       ├── speedyspeech_params_whole_single_gpu.txt
│   │       ├── test.sh
│   │       └── whole_train_infer.sh
│   ├── test_tipc/
│   │   ├── barrier.sh
│   │   ├── benchmark_train.sh
│   │   ├── common_func.sh
│   │   ├── configs/
│   │   │   ├── conformer/
│   │   │   │   └── train_infer_python.txt
│   │   │   ├── mdtc/
│   │   │   │   └── train_infer_python.txt
│   │   │   └── pwgan/
│   │   │       └── train_infer_python.txt
│   │   ├── conformer/
│   │   │   └── scripts/
│   │   │       └── aishell_tiny.py
│   │   ├── docs/
│   │   │   └── benchmark_train.md
│   │   ├── prepare.sh
│   │   └── test_train_inference_python.sh
│   └── unit/
│       ├── asr/
│       │   ├── deepspeech2_model_test.py
│       │   ├── deepspeech2_online_model_test.py
│       │   ├── deepspeech2_online_model_test.sh
│       │   ├── error_rate_test.py
│       │   ├── mask_test.py
│       │   ├── reverse_pad_list.py
│       │   └── u2_model_test.py
│       ├── audiotools/
│       │   ├── core/
│       │   │   ├── test_audio_signal.py
│       │   │   ├── test_bands.py
│       │   │   ├── test_display.py
│       │   │   ├── test_dsp.py
│       │   │   ├── test_effects.py
│       │   │   ├── test_fftconv.py
│       │   │   ├── test_grad.py
│       │   │   ├── test_highpass.py
│       │   │   ├── test_loudness.py
│       │   │   ├── test_lowpass.py
│       │   │   └── test_util.py
│       │   ├── data/
│       │   │   ├── test_datasets.py
│       │   │   ├── test_preprocess.py
│       │   │   └── test_transforms.py
│       │   ├── ml/
│       │   │   ├── test_decorators.py
│       │   │   └── test_model.py
│       │   ├── test_audiotools.sh
│       │   └── test_post.py
│       ├── ci.sh
│       ├── cli/
│       │   ├── aishell_test_prepare.py
│       │   ├── calc_RTF_CER_by_aishell.sh
│       │   ├── path.sh
│       │   └── test_cli.sh
│       ├── doc/
│       │   └── test_cli.md
│       ├── server/
│       │   ├── offline/
│       │   │   ├── change_yaml.py
│       │   │   ├── conf/
│       │   │   │   └── application.yaml
│       │   │   └── test_server_client.sh
│       │   └── online/
│       │       └── tts/
│       │           ├── check_server/
│       │           │   ├── change_yaml.py
│       │           │   ├── conf/
│       │           │   │   └── application.yaml
│       │           │   ├── test.sh
│       │           │   ├── test_all.sh
│       │           │   └── tts_online_application.yaml
│       │           └── test_server/
│       │               └── test_http_client.py
│       ├── tts/
│       │   ├── test_data_table.py
│       │   ├── test_enfrontend.py
│       │   ├── test_expansion.py
│       │   ├── test_fftconv1d.py
│       │   ├── test_losses.py
│       │   ├── test_mixfrontend.py
│       │   ├── test_optimizer.py
│       │   ├── test_pwg.py
│       │   ├── test_raise.py
│       │   ├── test_reporter.py
│       │   ├── test_snapshot.py
│       │   ├── test_ssml.py
│       │   ├── test_stft.py
│       │   └── test_to_static.py
│       └── vector/
│           ├── conftest.py
│           └── test_augment.py
├── third_party/
│   ├── README.md
│   ├── __init__.py
│   ├── ctc_decoders/
│   │   ├── .gitignore
│   │   ├── COPYING.APACHE2.0
│   │   ├── COPYING.LESSER.3
│   │   ├── LICENSE
│   │   ├── __init__.py
│   │   ├── ctc_beam_search_decoder.cpp
│   │   ├── ctc_beam_search_decoder.h
│   │   ├── ctc_greedy_decoder.cpp
│   │   ├── ctc_greedy_decoder.h
│   │   ├── decoder_utils.cpp
│   │   ├── decoder_utils.h
│   │   ├── decoders.i
│   │   ├── path_trie.cpp
│   │   ├── path_trie.h
│   │   ├── scorer.cpp
│   │   ├── scorer.h
│   │   ├── setup.py
│   │   └── setup.sh
│   ├── install.sh
│   ├── install_win_ctc.bat
│   └── python_kaldi_features/
│       ├── .gitignore
│       ├── LICENSE
│       ├── MANIFEST
│       ├── README.rst
│       ├── docs/
│       │   ├── Makefile
│       │   ├── make.bat
│       │   └── source/
│       │       ├── conf.py
│       │       └── index.rst
│       ├── example.py
│       ├── python_speech_features/
│       │   ├── __init__.py
│       │   ├── base.py
│       │   ├── base_orig.py
│       │   ├── sigproc.py
│       │   └── sigproc_orig.py
│       ├── requirements.txt
│       ├── setup.py
│       └── test/
│           └── test_sigproc.py
├── tools/
│   ├── Dockerfile
│   ├── Makefile
│   ├── extras/
│   │   ├── README.md
│   │   ├── install_autolog.sh
│   │   ├── install_gcc.sh
│   │   ├── install_kaldi.sh
│   │   ├── install_kenlm.sh
│   │   ├── install_liblbfgs.sh
│   │   ├── install_mfa_v1.sh
│   │   ├── install_mfa_v2.sh
│   │   ├── install_miniconda.sh
│   │   ├── install_mkl.sh
│   │   ├── install_ngram.sh
│   │   ├── install_openblas.sh
│   │   ├── install_openfst.sh
│   │   ├── install_pynini.sh
│   │   ├── install_sclite.sh
│   │   ├── install_soundfile.sh
│   │   ├── install_sox.sh
│   │   ├── install_srilm.sh
│   │   ├── install_venv.sh
│   │   └── srilm.patch
│   ├── get_contributors.ipynb
│   ├── pre_commit.sh
│   ├── release_note.py
│   ├── setup_anaconda.sh
│   └── watermark.py
└── utils/
    ├── DER.py
    ├── README.md
    ├── __init__.py
    ├── addjson.py
    ├── apply-cmvn.py
    ├── avg.sh
    ├── avg_model.py
    ├── build_kenlm_model_from_arpa.sh
    ├── build_vocab.py
    ├── caculate_rtf.py
    ├── compute-cmvn-stats.py
    ├── compute-wer.py
    ├── compute_mean_std.py
    ├── compute_statistics.py
    ├── copy-feats.py
    ├── data2json.sh
    ├── dump.sh
    ├── dump_manifest.py
    ├── duration_from_maniefst.sh
    ├── espnet_json_to_manifest.py
    ├── feat-to-shape.py
    ├── feat_to_shape.sh
    ├── filter.py
    ├── filter_scp.pl
    ├── format_data.py
    ├── format_rsl.py
    ├── format_triplet_data.py
    ├── fst/
    │   ├── add_lex_disambig.pl
    │   ├── compile_lexicon_token_fst.sh
    │   ├── ctc_token_fst.py
    │   ├── ctc_token_fst_corrected.py
    │   ├── eps2disambig.pl
    │   ├── make_lexicon_fst.pl
    │   ├── make_tlg.sh
    │   ├── prepare_dict.py
    │   ├── remove_oovs.pl
    │   ├── rnnt_token_fst.py
    │   └── s2eps.pl
    ├── gen_duration_from_textgrid.py
    ├── generate_infer_yaml.py
    ├── json2trn.py
    ├── link_wav.py
    ├── log.sh
    ├── manifest_key_value.py
    ├── md-eval.pl
    ├── merge_scp2json.py
    ├── ngram_train.sh
    ├── pack_model.sh
    ├── parallel/
    │   └── run.pl
    ├── parse_options.sh
    ├── pd_env_collect.sh
    ├── profile.sh
    ├── reduce_data_dir.sh
    ├── remove_longshortdata.py
    ├── remove_longshortdata.sh
    ├── score_sclite.sh
    ├── scp2json.py
    ├── show_results.sh
    ├── spk2utt_to_utt2spk.pl
    ├── split_data.sh
    ├── split_json.sh
    ├── split_scp.pl
    ├── spm_decode
    ├── spm_encode
    ├── spm_train
    ├── tarball.sh
    ├── text2token.py
    ├── text_to_lexicon.py
    ├── tokenizer.perl
    ├── train_arpa_with_kenlm.sh
    ├── update_json.sh
    ├── utility.sh
    ├── utt2spk_to_spk2utt.pl
    └── zh_tn.py
Download .txt
Showing preview only (728K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (7821 symbols across 1014 files)

FILE: audio/paddleaudio/_extension.py
  function dl_open_guard (line 17) | def dl_open_guard():
  function resolve_library_path (line 31) | def resolve_library_path(path: str) -> str:
  class _Ops (line 35) | class _Ops(types.ModuleType):
    method __init__ (line 38) | def __init__(self):
    method load_library (line 42) | def load_library(self, path):
  function _get_lib_path (line 69) | def _get_lib_path(lib: str):
  function _load_lib (line 75) | def _load_lib(lib: str) -> bool:
  function _init_ffmpeg (line 114) | def _init_ffmpeg():
  function _init_extension (line 139) | def _init_extension():

FILE: audio/paddleaudio/_internal/module_utils.py
  function is_module_available (line 10) | def is_module_available(*modules: str) -> bool:
  function requires_module (line 20) | def requires_module(*modules: str):
  function deprecated (line 47) | def deprecated(direction: str, version: Optional[str]=None):
  function is_kaldi_available (line 69) | def is_kaldi_available():
  function requires_kaldi (line 76) | def requires_kaldi():
  function _check_soundfile_importable (line 95) | def _check_soundfile_importable():
  function is_soundfile_available (line 111) | def is_soundfile_available():
  function requires_soundfile (line 115) | def requires_soundfile():
  function is_sox_available (line 133) | def is_sox_available():
  function requires_sox (line 141) | def requires_sox():

FILE: audio/paddleaudio/backends/common.py
  class AudioInfo (line 4) | class AudioInfo:
    method __init__ (line 33) | def __init__(
    method __str__ (line 46) | def __str__(self):

FILE: audio/paddleaudio/backends/no_backend.py
  function load (line 12) | def load(
  function save (line 23) | def save(filepath: str,
  function info (line 31) | def info(filepath: str) -> None:

FILE: audio/paddleaudio/backends/soundfile_backend.py
  function resample (line 45) | def resample(y: np.ndarray,
  function to_mono (line 76) | def to_mono(y: np.ndarray, merge_type: str='average') -> np.ndarray:
  function soundfile_load_ (line 124) | def soundfile_load_(file: os.PathLike,
  function normalize (line 152) | def normalize(y: np.ndarray, norm_type: str='linear',
  function soundfile_save (line 180) | def soundfile_save(y: np.ndarray, sr: int, file: os.PathLike) -> None:
  function soundfile_load (line 207) | def soundfile_load(
  function _get_subtype_for_wav (line 263) | def _get_subtype_for_wav(dtype: paddle.dtype,
  function _get_subtype_for_sphere (line 308) | def _get_subtype_for_sphere(encoding: str, bits_per_sample: int):
  function _get_subtype (line 322) | def _get_subtype(dtype: paddle.dtype,
  function save (line 348) | def save(
  function load (line 495) | def load(
  function _get_bit_depth (line 624) | def _get_bit_depth(subtype):
  function _get_encoding (line 648) | def _get_encoding(format: str, subtype: str):
  function info (line 654) | def info(filepath: str, format: Optional[str]=None) -> AudioInfo:

FILE: audio/paddleaudio/backends/sox_io_backend.py
  function _fail_info (line 15) | def _fail_info(filepath: str, format: Optional[str]) -> AudioInfo:
  function _fail_info_fileobj (line 19) | def _fail_info_fileobj(fileobj, format: Optional[str]) -> AudioInfo:
  function _fail_load (line 24) | def _fail_load(
  function _fail_load_fileobj (line 34) | def _fail_load_fileobj(fileobj, *args, **kwargs):
  function load (line 45) | def load(
  function save (line 72) | def save(
  function info (line 94) | def info(

FILE: audio/paddleaudio/backends/utils.py
  function list_audio_backends (line 21) | def list_audio_backends() -> List[str]:
  function set_audio_backend (line 35) | def set_audio_backend(backend: Optional[str]):
  function _init_audio_backend (line 60) | def _init_audio_backend():
  function get_audio_backend (line 71) | def get_audio_backend() -> Optional[str]:

FILE: audio/paddleaudio/compliance/kaldi.py
  function _get_epsilon (line 38) | def _get_epsilon(dtype):
  function _next_power_of_2 (line 42) | def _next_power_of_2(x: int) -> int:
  function _get_strided (line 46) | def _get_strided(waveform: Tensor,
  function _feature_window_function (line 72) | def _feature_window_function(
  function _get_log_energy (line 96) | def _get_log_energy(strided_input: Tensor, epsilon: Tensor,
  function _get_waveform_and_window_properties (line 106) | def _get_waveform_and_window_properties(
  function _get_window (line 136) | def _get_window(waveform: Tensor,
  function _subtract_column_mean (line 198) | def _subtract_column_mean(tensor: Tensor, subtract_mean: bool) -> Tensor:
  function spectrogram (line 205) | def spectrogram(waveform: Tensor,
  function _inverse_mel_scale_scalar (line 268) | def _inverse_mel_scale_scalar(mel_freq: float) -> float:
  function _inverse_mel_scale (line 272) | def _inverse_mel_scale(mel_freq: Tensor) -> Tensor:
  function _mel_scale_scalar (line 276) | def _mel_scale_scalar(freq: float) -> float:
  function _mel_scale (line 280) | def _mel_scale(freq: Tensor) -> Tensor:
  function _vtln_warp_freq (line 284) | def _vtln_warp_freq(vtln_low_cutoff: float,
  function _vtln_warp_mel_freq (line 316) | def _vtln_warp_mel_freq(vtln_low_cutoff: float,
  function _get_mel_banks (line 327) | def _get_mel_banks(num_bins: int,
  function fbank (line 401) | def fbank(waveform: Tensor,
  function _get_dct_matrix (line 508) | def _get_dct_matrix(n_mfcc: int, n_mels: int) -> Tensor:
  function _get_lifter_coeffs (line 515) | def _get_lifter_coeffs(n_mfcc: int, cepstral_lifter: float) -> Tensor:
  function mfcc (line 521) | def mfcc(waveform: Tensor,

FILE: audio/paddleaudio/compliance/librosa.py
  function _pad_center (line 50) | def _pad_center(data: np.ndarray, size: int, axis: int=-1,
  function _split_frames (line 71) | def _split_frames(x: np.ndarray,
  function _check_audio (line 119) | def _check_audio(y, mono=True) -> bool:
  function hz_to_mel (line 146) | def hz_to_mel(frequencies: Union[float, List[float], np.ndarray],
  function mel_to_hz (line 186) | def mel_to_hz(mels: Union[float, List[float], np.ndarray],
  function mel_frequencies (line 224) | def mel_frequencies(n_mels: int=128,
  function fft_frequencies (line 248) | def fft_frequencies(sr: int, n_fft: int) -> np.ndarray:
  function compute_fbank_matrix (line 261) | def compute_fbank_matrix(sr: int,
  function stft (line 328) | def stft(x: np.ndarray,
  function power_to_db (line 402) | def power_to_db(spect: np.ndarray,
  function mfcc (line 448) | def mfcc(x: np.ndarray,
  function melspectrogram (line 486) | def melspectrogram(x: np.ndarray,
  function spectrogram (line 551) | def spectrogram(x: np.ndarray,
  function mu_encode (line 587) | def mu_encode(x: np.ndarray, mu: int=255, quantized: bool=True) -> np.nd...
  function mu_decode (line 605) | def mu_decode(y: np.ndarray, mu: int=255, quantized: bool=True) -> np.nd...
  function _randint (line 626) | def _randint(high: int) -> int:
  function depth_augment (line 634) | def depth_augment(y: np.ndarray,
  function adaptive_spect_augment (line 659) | def adaptive_spect_augment(spect: np.ndarray,
  function spect_augment (line 702) | def spect_augment(spect: np.ndarray,
  function random_crop1d (line 751) | def random_crop1d(y: np.ndarray, crop_len: int) -> np.ndarray:
  function random_crop2d (line 768) | def random_crop2d(s: np.ndarray, crop_len: int,

FILE: audio/paddleaudio/datasets/dataset.py
  class AudioClassificationDataset (line 34) | class AudioClassificationDataset(paddle.io.Dataset):
    method __init__ (line 39) | def __init__(self,
    method _get_data (line 66) | def _get_data(self, input_file: str):
    method _convert_to_record (line 69) | def _convert_to_record(self, idx):
    method __getitem__ (line 91) | def __getitem__(self, idx):
    method __len__ (line 99) | def __len__(self):

FILE: audio/paddleaudio/datasets/esc50.py
  class ESC50 (line 26) | class ESC50(AudioClassificationDataset):
    method __init__ (line 108) | def __init__(self,
    method _get_meta_info (line 126) | def _get_meta_info(self) -> List[collections.namedtuple]:
    method _get_data (line 133) | def _get_data(self, mode: str, split: int) -> Tuple[List[str], List[in...

FILE: audio/paddleaudio/datasets/gtzan.py
  class GTZAN (line 27) | class GTZAN(AudioClassificationDataset):
    method __init__ (line 52) | def __init__(self,
    method _get_meta_info (line 77) | def _get_meta_info(self) -> List[collections.namedtuple]:
    method _get_data (line 84) | def _get_data(self, mode, seed, n_folds,

FILE: audio/paddleaudio/datasets/hey_snips.py
  class HeySnips (line 25) | class HeySnips(AudioClassificationDataset):
    method __init__ (line 29) | def __init__(self,
    method _get_meta_info (line 44) | def _get_meta_info(self, mode) -> List[collections.namedtuple]:
    method _get_data (line 60) | def _get_data(self, mode: str) -> Tuple[List[str], List[int]]:

FILE: audio/paddleaudio/datasets/rirs_noises.py
  class OpenRIRNoise (line 32) | class OpenRIRNoise(Dataset):
    method __init__ (line 47) | def __init__(self,
    method _get_data (line 74) | def _get_data(self):
    method _convert_to_record (line 100) | def _convert_to_record(self, idx: int):
    method _get_chunks (line 120) | def _get_chunks(seg_dur, audio_id, audio_duration):
    method _get_audio_info (line 129) | def _get_audio_info(self, wav_file: str,
    method generate_csv (line 153) | def generate_csv(self,
    method prepare_data (line 177) | def prepare_data(self):
    method __getitem__ (line 197) | def __getitem__(self, idx):
    method __len__ (line 200) | def __len__(self):

FILE: audio/paddleaudio/datasets/tess.py
  class TESS (line 27) | class TESS(AudioClassificationDataset):
    method __init__ (line 61) | def __init__(self,
    method _get_meta_info (line 86) | def _get_meta_info(self, files) -> List[collections.namedtuple]:
    method _get_data (line 93) | def _get_data(self, mode, seed, n_folds,

FILE: audio/paddleaudio/datasets/urban_sound.py
  class UrbanSound8K (line 26) | class UrbanSound8K(AudioClassificationDataset):
    method __init__ (line 56) | def __init__(self,
    method _get_meta_info (line 74) | def _get_meta_info(self):
    method _get_data (line 81) | def _get_data(self, mode: str, split: int) -> Tuple[List[str], List[in...

FILE: audio/paddleaudio/datasets/voxceleb.py
  class VoxCeleb (line 35) | class VoxCeleb(Dataset):
    method __init__ (line 81) | def __init__(
    method _get_data (line 130) | def _get_data(self):
    method _convert_to_record (line 187) | def _convert_to_record(self, idx: int):
    method _get_chunks (line 223) | def _get_chunks(seg_dur, audio_id, audio_duration):
    method _get_audio_info (line 232) | def _get_audio_info(self, wav_file: str,
    method generate_csv (line 259) | def generate_csv(self,
    method prepare_data (line 285) | def prepare_data(self):
    method __getitem__ (line 352) | def __getitem__(self, idx):
    method __len__ (line 355) | def __len__(self):

FILE: audio/paddleaudio/features/layers.py
  class Spectrogram (line 35) | class Spectrogram(nn.Layer):
    method __init__ (line 50) | def __init__(self,
    method forward (line 79) | def forward(self, x: Tensor) -> Tensor:
  class MelSpectrogram (line 92) | class MelSpectrogram(nn.Layer):
    method __init__ (line 112) | def __init__(self,
    method forward (line 156) | def forward(self, x: Tensor) -> Tensor:
  class LogMelSpectrogram (line 169) | class LogMelSpectrogram(nn.Layer):
    method __init__ (line 192) | def __init__(self,
    method forward (line 232) | def forward(self, x: Tensor) -> Tensor:
  class MFCC (line 249) | class MFCC(nn.Layer):
    method __init__ (line 273) | def __init__(self,
    method forward (line 316) | def forward(self, x: Tensor) -> Tensor:

FILE: audio/paddleaudio/functional/functional.py
  function hz_to_mel (line 33) | def hz_to_mel(freq: Union[Tensor, float],
  function mel_to_hz (line 76) | def mel_to_hz(mel: Union[float, Tensor],
  function mel_frequencies (line 109) | def mel_frequencies(n_mels: int=64,
  function fft_frequencies (line 134) | def fft_frequencies(sr: int, n_fft: int, dtype: str='float32') -> Tensor:
  function compute_fbank_matrix (line 148) | def compute_fbank_matrix(sr: int,
  function power_to_db (line 208) | def power_to_db(spect: Tensor,
  function create_dct (line 241) | def create_dct(n_mfcc: int,

FILE: audio/paddleaudio/functional/window.py
  class WindowFunctionRegister (line 22) | class WindowFunctionRegister(object):
    method __init__ (line 23) | def __init__(self):
    method register (line 26) | def register(self):
    method get (line 34) | def get(self, name):
  function _cat (line 42) | def _cat(x: List[Tensor], data_type: str) -> Tensor:
  function _acosh (line 48) | def _acosh(x: Union[Tensor, float]) -> Tensor:
  function _extend (line 55) | def _extend(M: int, sym: bool) -> bool:
  function _len_guards (line 64) | def _len_guards(M: int) -> bool:
  function _truncate (line 73) | def _truncate(w: Tensor, needed: bool) -> Tensor:
  function _general_gaussian (line 82) | def _general_gaussian(
  function _general_cosine (line 99) | def _general_cosine(
  function _general_hamming (line 116) | def _general_hamming(
  function _taylor (line 126) | def _taylor(
  function _hamming (line 183) | def _hamming(M: int, sym: bool = True, dtype: str = 'float64') -> Tensor:
  function _hann (line 192) | def _hann(M: int, sym: bool = True, dtype: str = 'float64') -> Tensor:
  function _tukey (line 201) | def _tukey(
  function _gaussian (line 235) | def _gaussian(
  function _exponential (line 253) | def _exponential(
  function _triang (line 273) | def _triang(M: int, sym: bool = True, dtype: str = 'float64') -> Tensor:
  function _bohman (line 291) | def _bohman(M: int, sym: bool = True, dtype: str = 'float64') -> Tensor:
  function _blackman (line 309) | def _blackman(M: int, sym: bool = True, dtype: str = 'float64') -> Tensor:
  function _cosine (line 320) | def _cosine(M: int, sym: bool = True, dtype: str = 'float64') -> Tensor:
  function get_window (line 330) | def get_window(

FILE: audio/paddleaudio/kaldi/kaldi.py
  function fbank (line 23) | def fbank(

FILE: audio/paddleaudio/metric/eer.py
  function compute_eer (line 21) | def compute_eer(labels: np.ndarray, scores: np.ndarray) -> List[float]:
  function compute_minDCF (line 38) | def compute_minDCF(positive_scores,

FILE: audio/paddleaudio/sox_effects/sox_effects.py
  function init_sox_effects (line 15) | def init_sox_effects():
  function shutdown_sox_effects (line 30) | def shutdown_sox_effects():
  function effect_names (line 44) | def effect_names() -> List[str]:
  function apply_effects_tensor (line 58) | def apply_effects_tensor(
  function apply_effects_file (line 132) | def apply_effects_file(

FILE: audio/paddleaudio/src/optional/optional.hpp
  type tl (line 71) | namespace tl {
    type detail (line 72) | namespace detail {
      type is_trivially_copy_constructible (line 74) | struct is_trivially_copy_constructible
      type is_trivially_copy_constructible<std::vector<T, A>> (line 78) | struct is_trivially_copy_constructible<std::vector<T, A>>
      type conjunction (line 146) | struct conjunction : std::true_type {}
      type conjunction<B> (line 148) | struct conjunction<B> : B {}
      type is_pointer_to_non_const_member_func (line 162) | struct is_pointer_to_non_const_member_func : std::false_type {}
      type is_const_or_const_ref (line 183) | struct is_const_or_const_ref : std::false_type {}
      type is_const_or_const_ref<T const &> (line 185) | struct is_const_or_const_ref<T const &> : std::true_type {}
      type is_const_or_const_ref<T const> (line 187) | struct is_const_or_const_ref<T const> : std::true_type {}
      function invoke (line 201) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      function invoke (line 210) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      type invoke_result_impl (line 218) | struct invoke_result_impl
      type is_swappable (line 238) | struct is_swappable : std::true_type {}
      type is_nothrow_swappable (line 241) | struct is_nothrow_swappable : std::true_type {}
      type swap_adl_tests (line 244) | namespace swap_adl_tests {
        type tag (line 247) | struct tag {}
        type is_std_swap_noexcept (line 271) | struct is_std_swap_noexcept
        type is_std_swap_noexcept<T[N]> (line 277) | struct is_std_swap_noexcept<T[N]> : is_std_swap_noexcept<T> {}
        type is_adl_swap_noexcept (line 280) | struct is_adl_swap_noexcept
      type is_swappable (line 285) | struct is_swappable
      type is_swappable<T[N], T[N]> (line 294) | struct is_swappable<T[N], T[N]>
      type is_nothrow_swappable (line 303) | struct is_nothrow_swappable
      type voider (line 318) | struct voider {
      type is_optional_impl (line 326) | struct is_optional_impl : std::false_type {}
      type is_optional_impl<optional<T>> (line 328) | struct is_optional_impl<optional<T>> : std::true_type {}
      type returns_void_impl (line 341) | struct returns_void_impl
      type optional_storage_base (line 400) | struct optional_storage_base {
        method TL_OPTIONAL_11_CONSTEXPR (line 406) | TL_OPTIONAL_11_CONSTEXPR optional_storage_base(in_place_t, U &&... u)
        type dummy (line 416) | struct dummy {}
      type optional_storage_base<T, true> (line 427) | struct optional_storage_base<T, true> {
        type dummy (line 438) | struct dummy {}
      type optional_operations_base (line 450) | struct optional_operations_base : optional_storage_base<T> {
        method hard_reset (line 453) | void hard_reset() noexcept {
        method construct (line 459) | void construct(Args &&... args) noexcept {
        method assign (line 465) | void assign(Opt &&rhs) {
        method has_value (line 480) | bool has_value() const { return this->m_has_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 482) | TL_OPTIONAL_11_CONSTEXPR T &get() & { return this->m_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 483) | TL_OPTIONAL_11_CONSTEXPR const T &get() const & { return this->m_v...
        method TL_OPTIONAL_11_CONSTEXPR (line 484) | TL_OPTIONAL_11_CONSTEXPR T &&get() && { return std::move(this->m_v...
        method T (line 486) | constexpr const T &&get() const && { return std::move(this->m_valu...
      type optional_copy_base (line 493) | struct optional_copy_base : optional_operations_base<T> {
      type optional_copy_base<T, false> (line 499) | struct optional_copy_base<T, false> : optional_operations_base<T> {
        method optional_copy_base (line 502) | optional_copy_base() = default;
        method optional_copy_base (line 503) | optional_copy_base(const optional_copy_base &rhs)
        method optional_copy_base (line 512) | optional_copy_base(optional_copy_base &&rhs) = default;
        method optional_copy_base (line 513) | optional_copy_base &operator=(const optional_copy_base &rhs) = def...
        method optional_copy_base (line 514) | optional_copy_base &operator=(optional_copy_base &&rhs) = default;
      type optional_move_base (line 524) | struct optional_move_base : optional_copy_base<T> {
      type optional_move_base (line 529) | struct optional_move_base
      type optional_move_base<T, false> (line 532) | struct optional_move_base<T, false> : optional_copy_base<T> {
        method optional_move_base (line 535) | optional_move_base() = default;
        method optional_move_base (line 536) | optional_move_base(const optional_move_base &rhs) = default;
        method optional_move_base (line 538) | optional_move_base(optional_move_base &&rhs) noexcept(
        method optional_move_base (line 546) | optional_move_base &operator=(const optional_move_base &rhs) = def...
        method optional_move_base (line 547) | optional_move_base &operator=(optional_move_base &&rhs) = default;
      type optional_copy_assign_base (line 555) | struct optional_copy_assign_base : optional_move_base<T> {
      type optional_copy_assign_base<T, false> (line 560) | struct optional_copy_assign_base<T, false> : optional_move_base<T> {
        method optional_copy_assign_base (line 563) | optional_copy_assign_base() = default;
        method optional_copy_assign_base (line 564) | optional_copy_assign_base(const optional_copy_assign_base &rhs) = ...
        method optional_copy_assign_base (line 566) | optional_copy_assign_base(optional_copy_assign_base &&rhs) = default;
        method optional_copy_assign_base (line 567) | optional_copy_assign_base &operator=(const optional_copy_assign_ba...
        method optional_copy_assign_base (line 571) | optional_copy_assign_base &operator=(optional_copy_assign_base &&r...
      type optional_move_assign_base (line 585) | struct optional_move_assign_base : optional_copy_assign_base<T> {
      type optional_move_assign_base (line 590) | struct optional_move_assign_base
      type optional_move_assign_base<T, false> (line 594) | struct optional_move_assign_base<T, false> : optional_copy_assign_ba...
        method optional_move_assign_base (line 597) | optional_move_assign_base() = default;
        method optional_move_assign_base (line 598) | optional_move_assign_base(const optional_move_assign_base &rhs) = ...
        method optional_move_assign_base (line 600) | optional_move_assign_base(optional_move_assign_base &&rhs) = default;
        method optional_move_assign_base (line 602) | optional_move_assign_base &operator=(const optional_move_assign_ba...
        method optional_move_assign_base (line 605) | optional_move_assign_base &
      type optional_delete_ctor_base (line 619) | struct optional_delete_ctor_base {
        method optional_delete_ctor_base (line 620) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 621) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 622) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 623) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 625) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, true, false> (line 630) | struct optional_delete_ctor_base<T, true, false> {
        method optional_delete_ctor_base (line 631) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 632) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 633) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 634) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 636) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, true> (line 641) | struct optional_delete_ctor_base<T, false, true> {
        method optional_delete_ctor_base (line 642) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 643) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 644) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 645) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 647) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, false> (line 652) | struct optional_delete_ctor_base<T, false, false> {
        method optional_delete_ctor_base (line 653) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 654) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 655) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 656) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 658) | optional_delete_ctor_base &operator=(
      type optional_delete_assign_base (line 669) | struct optional_delete_assign_base {
        method optional_delete_assign_base (line 670) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 671) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 672) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 674) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 676) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, true, false> (line 681) | struct optional_delete_assign_base<T, true, false> {
        method optional_delete_assign_base (line 682) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 683) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 684) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 686) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 688) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, true> (line 693) | struct optional_delete_assign_base<T, false, true> {
        method optional_delete_assign_base (line 694) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 695) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 696) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 698) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 700) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, false> (line 705) | struct optional_delete_assign_base<T, false, false> {
        method optional_delete_assign_base (line 706) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 707) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 708) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 710) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 712) | optional_delete_assign_base &operator=(
      type i_am_secret (line 1571) | struct i_am_secret {}
      function optional_map_impl (line 1607) | constexpr auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1618) | auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1633) | constexpr auto optional_map_impl(Opt &&opt, F &&f) -> optional<Ret> {
      function optional_map_impl (line 1645) | auto optional_map_impl(Opt &&opt, F &&f) -> optional<monostate> {
    class monostate (line 116) | class monostate {}
    type in_place_t (line 119) | struct in_place_t {
      method in_place_t (line 120) | explicit in_place_t() = default;
    class optional (line 127) | class optional
      method and_then (line 760) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) & {
      method and_then (line 770) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) && {
      method and_then (line 781) | constexpr auto and_then(F &&f) const & {
      method and_then (line 792) | constexpr auto and_then(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 806) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &> and_then(F ...
      method TL_OPTIONAL_11_CONSTEXPR (line 816) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &&> and_then(
      method and_then (line 828) | constexpr detail::invoke_result_t<F, const T &> and_then(F &&f) cons...
      method and_then (line 839) | constexpr detail::invoke_result_t<F, const T &&> and_then(F &&f) con...
      method map (line 855) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) & {
      method map (line 860) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) && {
      method map (line 865) | constexpr auto map(F &&f) const & {
      method map (line 870) | constexpr auto map(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 876) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method TL_OPTIONAL_11_CONSTEXPR (line 883) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method map (line 890) | constexpr decltype(optional_map_impl(std::declval<const optional &>(),
      method map (line 898) | constexpr decltype(optional_map_impl(std::declval<const optional &&>(),
      method transform (line 910) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) & {
      method transform (line 915) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) && {
      method transform (line 920) | constexpr auto transform(F &&f) const & {
      method transform (line 925) | constexpr auto transform(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 931) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method TL_OPTIONAL_11_CONSTEXPR (line 938) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method transform (line 945) | constexpr decltype(optional_map_impl(std::declval<const optional &>(),
      method transform (line 953) | constexpr decltype(optional_map_impl(std::declval<const optional &&>(),
      method or_else (line 976) | optional<T> or_else(F &&f) && {
      method or_else (line 989) | optional<T> or_else(F &&f) const & {
      method or_else (line 1003) | optional<T> or_else(F &&f) const && {
      method or_else (line 1011) | optional<T> or_else(F &&f) const && {
      method U (line 1018) | U map_or(F &&f, U &&u) & {
      method U (line 1024) | U map_or(F &&f, U &&u) && {
      method U (line 1031) | U map_or(F &&f, U &&u) const & {
      method U (line 1038) | U map_or(F &&f, U &&u) const && {
      method map_or_else (line 1048) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) & {
      method map_or_else (line 1054) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) && {
      method map_or_else (line 1061) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const & {
      method map_or_else (line 1068) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const && {
      method conjunction (line 1077) | constexpr optional<typename std::decay<U>::type> conjunction(U &&u) ...
      method TL_OPTIONAL_11_CONSTEXPR (line 1083) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) & {
      method optional (line 1087) | constexpr optional disjunction(const optional &rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1091) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) && {
      method optional (line 1096) | constexpr optional disjunction(const optional &rhs) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1101) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) & {
      method optional (line 1105) | constexpr optional disjunction(optional &&rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1109) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) && {
      method optional (line 1114) | constexpr optional disjunction(optional &&rhs) const && {
      method optional (line 1120) | optional take() {
      method optional (line 1129) | constexpr optional() noexcept = default;
      method optional (line 1131) | constexpr optional(nullopt_t) noexcept {}
      method TL_OPTIONAL_11_CONSTEXPR (line 1137) | TL_OPTIONAL_11_CONSTEXPR optional(const optional &rhs) = default;
      method TL_OPTIONAL_11_CONSTEXPR (line 1143) | TL_OPTIONAL_11_CONSTEXPR optional(optional &&rhs) = default;
      method optional (line 1147) | constexpr explicit optional(
      method TL_OPTIONAL_11_CONSTEXPR (line 1154) | TL_OPTIONAL_11_CONSTEXPR explicit optional(
      method optional (line 1169) | constexpr optional(U &&u) : base(in_place, std::forward<U>(u)) {}
      method optional (line 1175) | constexpr explicit optional(U &&u) : base(in_place, std::forward<U>(...
      method optional (line 1182) | optional(const optional<U> &rhs) {
      method optional (line 1192) | explicit optional(const optional<U> &rhs) {
      method optional (line 1203) | optional(optional<U> &&rhs) {
      method optional (line 1213) | explicit optional(optional<U> &&rhs) {
      method optional (line 1225) | optional &operator=(nullopt_t) noexcept {
      method optional (line 1238) | optional &operator=(const optional &rhs) = default;
      method optional (line 1244) | optional &operator=(optional &&rhs) = default;
      method optional (line 1249) | optional &operator=(U &&u) {
      method optional (line 1265) | optional &operator=(const optional<U> &rhs) {
      method optional (line 1287) | optional &operator=(optional<U> &&rhs) {
      method T (line 1306) | T &emplace(Args &&... args) {
      method emplace (line 1316) | detail::enable_if_t<
      method swap (line 1331) | void swap(optional &rhs) noexcept(
      method T (line 1350) | constexpr const T *operator->() const {
      method TL_OPTIONAL_11_CONSTEXPR (line 1354) | TL_OPTIONAL_11_CONSTEXPR T *operator->() {
      method TL_OPTIONAL_11_CONSTEXPR (line 1359) | TL_OPTIONAL_11_CONSTEXPR T &operator*() & { return this->m_value; }
      method T (line 1361) | constexpr const T &operator*() const & { return this->m_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 1363) | TL_OPTIONAL_11_CONSTEXPR T &&operator*() && {
      method T (line 1368) | constexpr const T &&operator*() const && {
      method has_value (line 1374) | constexpr bool has_value() const noexcept { return this->m_has_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 1382) | TL_OPTIONAL_11_CONSTEXPR T &value() & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1386) | TL_OPTIONAL_11_CONSTEXPR const T &value() const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1390) | TL_OPTIONAL_11_CONSTEXPR T &&value() && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1396) | TL_OPTIONAL_11_CONSTEXPR const T &&value() const && {
      method T (line 1404) | constexpr T value_or(U &&u) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1412) | TL_OPTIONAL_11_CONSTEXPR T value_or(U &&u) && {
      method reset (line 1420) | void reset() noexcept {
    type detail (line 129) | namespace detail {
      type is_trivially_copy_constructible (line 74) | struct is_trivially_copy_constructible
      type is_trivially_copy_constructible<std::vector<T, A>> (line 78) | struct is_trivially_copy_constructible<std::vector<T, A>>
      type conjunction (line 146) | struct conjunction : std::true_type {}
      type conjunction<B> (line 148) | struct conjunction<B> : B {}
      type is_pointer_to_non_const_member_func (line 162) | struct is_pointer_to_non_const_member_func : std::false_type {}
      type is_const_or_const_ref (line 183) | struct is_const_or_const_ref : std::false_type {}
      type is_const_or_const_ref<T const &> (line 185) | struct is_const_or_const_ref<T const &> : std::true_type {}
      type is_const_or_const_ref<T const> (line 187) | struct is_const_or_const_ref<T const> : std::true_type {}
      function invoke (line 201) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      function invoke (line 210) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      type invoke_result_impl (line 218) | struct invoke_result_impl
      type is_swappable (line 238) | struct is_swappable : std::true_type {}
      type is_nothrow_swappable (line 241) | struct is_nothrow_swappable : std::true_type {}
      type swap_adl_tests (line 244) | namespace swap_adl_tests {
        type tag (line 247) | struct tag {}
        type is_std_swap_noexcept (line 271) | struct is_std_swap_noexcept
        type is_std_swap_noexcept<T[N]> (line 277) | struct is_std_swap_noexcept<T[N]> : is_std_swap_noexcept<T> {}
        type is_adl_swap_noexcept (line 280) | struct is_adl_swap_noexcept
      type is_swappable (line 285) | struct is_swappable
      type is_swappable<T[N], T[N]> (line 294) | struct is_swappable<T[N], T[N]>
      type is_nothrow_swappable (line 303) | struct is_nothrow_swappable
      type voider (line 318) | struct voider {
      type is_optional_impl (line 326) | struct is_optional_impl : std::false_type {}
      type is_optional_impl<optional<T>> (line 328) | struct is_optional_impl<optional<T>> : std::true_type {}
      type returns_void_impl (line 341) | struct returns_void_impl
      type optional_storage_base (line 400) | struct optional_storage_base {
        method TL_OPTIONAL_11_CONSTEXPR (line 406) | TL_OPTIONAL_11_CONSTEXPR optional_storage_base(in_place_t, U &&... u)
        type dummy (line 416) | struct dummy {}
      type optional_storage_base<T, true> (line 427) | struct optional_storage_base<T, true> {
        type dummy (line 438) | struct dummy {}
      type optional_operations_base (line 450) | struct optional_operations_base : optional_storage_base<T> {
        method hard_reset (line 453) | void hard_reset() noexcept {
        method construct (line 459) | void construct(Args &&... args) noexcept {
        method assign (line 465) | void assign(Opt &&rhs) {
        method has_value (line 480) | bool has_value() const { return this->m_has_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 482) | TL_OPTIONAL_11_CONSTEXPR T &get() & { return this->m_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 483) | TL_OPTIONAL_11_CONSTEXPR const T &get() const & { return this->m_v...
        method TL_OPTIONAL_11_CONSTEXPR (line 484) | TL_OPTIONAL_11_CONSTEXPR T &&get() && { return std::move(this->m_v...
        method T (line 486) | constexpr const T &&get() const && { return std::move(this->m_valu...
      type optional_copy_base (line 493) | struct optional_copy_base : optional_operations_base<T> {
      type optional_copy_base<T, false> (line 499) | struct optional_copy_base<T, false> : optional_operations_base<T> {
        method optional_copy_base (line 502) | optional_copy_base() = default;
        method optional_copy_base (line 503) | optional_copy_base(const optional_copy_base &rhs)
        method optional_copy_base (line 512) | optional_copy_base(optional_copy_base &&rhs) = default;
        method optional_copy_base (line 513) | optional_copy_base &operator=(const optional_copy_base &rhs) = def...
        method optional_copy_base (line 514) | optional_copy_base &operator=(optional_copy_base &&rhs) = default;
      type optional_move_base (line 524) | struct optional_move_base : optional_copy_base<T> {
      type optional_move_base (line 529) | struct optional_move_base
      type optional_move_base<T, false> (line 532) | struct optional_move_base<T, false> : optional_copy_base<T> {
        method optional_move_base (line 535) | optional_move_base() = default;
        method optional_move_base (line 536) | optional_move_base(const optional_move_base &rhs) = default;
        method optional_move_base (line 538) | optional_move_base(optional_move_base &&rhs) noexcept(
        method optional_move_base (line 546) | optional_move_base &operator=(const optional_move_base &rhs) = def...
        method optional_move_base (line 547) | optional_move_base &operator=(optional_move_base &&rhs) = default;
      type optional_copy_assign_base (line 555) | struct optional_copy_assign_base : optional_move_base<T> {
      type optional_copy_assign_base<T, false> (line 560) | struct optional_copy_assign_base<T, false> : optional_move_base<T> {
        method optional_copy_assign_base (line 563) | optional_copy_assign_base() = default;
        method optional_copy_assign_base (line 564) | optional_copy_assign_base(const optional_copy_assign_base &rhs) = ...
        method optional_copy_assign_base (line 566) | optional_copy_assign_base(optional_copy_assign_base &&rhs) = default;
        method optional_copy_assign_base (line 567) | optional_copy_assign_base &operator=(const optional_copy_assign_ba...
        method optional_copy_assign_base (line 571) | optional_copy_assign_base &operator=(optional_copy_assign_base &&r...
      type optional_move_assign_base (line 585) | struct optional_move_assign_base : optional_copy_assign_base<T> {
      type optional_move_assign_base (line 590) | struct optional_move_assign_base
      type optional_move_assign_base<T, false> (line 594) | struct optional_move_assign_base<T, false> : optional_copy_assign_ba...
        method optional_move_assign_base (line 597) | optional_move_assign_base() = default;
        method optional_move_assign_base (line 598) | optional_move_assign_base(const optional_move_assign_base &rhs) = ...
        method optional_move_assign_base (line 600) | optional_move_assign_base(optional_move_assign_base &&rhs) = default;
        method optional_move_assign_base (line 602) | optional_move_assign_base &operator=(const optional_move_assign_ba...
        method optional_move_assign_base (line 605) | optional_move_assign_base &
      type optional_delete_ctor_base (line 619) | struct optional_delete_ctor_base {
        method optional_delete_ctor_base (line 620) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 621) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 622) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 623) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 625) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, true, false> (line 630) | struct optional_delete_ctor_base<T, true, false> {
        method optional_delete_ctor_base (line 631) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 632) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 633) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 634) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 636) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, true> (line 641) | struct optional_delete_ctor_base<T, false, true> {
        method optional_delete_ctor_base (line 642) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 643) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 644) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 645) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 647) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, false> (line 652) | struct optional_delete_ctor_base<T, false, false> {
        method optional_delete_ctor_base (line 653) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 654) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 655) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 656) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 658) | optional_delete_ctor_base &operator=(
      type optional_delete_assign_base (line 669) | struct optional_delete_assign_base {
        method optional_delete_assign_base (line 670) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 671) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 672) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 674) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 676) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, true, false> (line 681) | struct optional_delete_assign_base<T, true, false> {
        method optional_delete_assign_base (line 682) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 683) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 684) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 686) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 688) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, true> (line 693) | struct optional_delete_assign_base<T, false, true> {
        method optional_delete_assign_base (line 694) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 695) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 696) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 698) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 700) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, false> (line 705) | struct optional_delete_assign_base<T, false, false> {
        method optional_delete_assign_base (line 706) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 707) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 708) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 710) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 712) | optional_delete_assign_base &operator=(
      type i_am_secret (line 1571) | struct i_am_secret {}
      function optional_map_impl (line 1607) | constexpr auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1618) | auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1633) | constexpr auto optional_map_impl(Opt &&opt, F &&f) -> optional<Ret> {
      function optional_map_impl (line 1645) | auto optional_map_impl(Opt &&opt, F &&f) -> optional<monostate> {
    type nullopt_t (line 719) | struct nullopt_t {
      type do_not_use (line 720) | struct do_not_use {}
      method nullopt_t (line 721) | constexpr explicit nullopt_t(do_not_use, do_not_use) noexcept {}
    class bad_optional_access (line 727) | class bad_optional_access : public std::exception {
      method bad_optional_access (line 729) | bad_optional_access() = default;
    class optional (line 740) | class optional : private detail::optional_move_assign_base<T>,
      method and_then (line 760) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) & {
      method and_then (line 770) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) && {
      method and_then (line 781) | constexpr auto and_then(F &&f) const & {
      method and_then (line 792) | constexpr auto and_then(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 806) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &> and_then(F ...
      method TL_OPTIONAL_11_CONSTEXPR (line 816) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &&> and_then(
      method and_then (line 828) | constexpr detail::invoke_result_t<F, const T &> and_then(F &&f) cons...
      method and_then (line 839) | constexpr detail::invoke_result_t<F, const T &&> and_then(F &&f) con...
      method map (line 855) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) & {
      method map (line 860) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) && {
      method map (line 865) | constexpr auto map(F &&f) const & {
      method map (line 870) | constexpr auto map(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 876) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method TL_OPTIONAL_11_CONSTEXPR (line 883) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method map (line 890) | constexpr decltype(optional_map_impl(std::declval<const optional &>(),
      method map (line 898) | constexpr decltype(optional_map_impl(std::declval<const optional &&>(),
      method transform (line 910) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) & {
      method transform (line 915) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) && {
      method transform (line 920) | constexpr auto transform(F &&f) const & {
      method transform (line 925) | constexpr auto transform(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 931) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method TL_OPTIONAL_11_CONSTEXPR (line 938) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method transform (line 945) | constexpr decltype(optional_map_impl(std::declval<const optional &>(),
      method transform (line 953) | constexpr decltype(optional_map_impl(std::declval<const optional &&>(),
      method or_else (line 976) | optional<T> or_else(F &&f) && {
      method or_else (line 989) | optional<T> or_else(F &&f) const & {
      method or_else (line 1003) | optional<T> or_else(F &&f) const && {
      method or_else (line 1011) | optional<T> or_else(F &&f) const && {
      method U (line 1018) | U map_or(F &&f, U &&u) & {
      method U (line 1024) | U map_or(F &&f, U &&u) && {
      method U (line 1031) | U map_or(F &&f, U &&u) const & {
      method U (line 1038) | U map_or(F &&f, U &&u) const && {
      method map_or_else (line 1048) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) & {
      method map_or_else (line 1054) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) && {
      method map_or_else (line 1061) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const & {
      method map_or_else (line 1068) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const && {
      method conjunction (line 1077) | constexpr optional<typename std::decay<U>::type> conjunction(U &&u) ...
      method TL_OPTIONAL_11_CONSTEXPR (line 1083) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) & {
      method optional (line 1087) | constexpr optional disjunction(const optional &rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1091) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) && {
      method optional (line 1096) | constexpr optional disjunction(const optional &rhs) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1101) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) & {
      method optional (line 1105) | constexpr optional disjunction(optional &&rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1109) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) && {
      method optional (line 1114) | constexpr optional disjunction(optional &&rhs) const && {
      method optional (line 1120) | optional take() {
      method optional (line 1129) | constexpr optional() noexcept = default;
      method optional (line 1131) | constexpr optional(nullopt_t) noexcept {}
      method TL_OPTIONAL_11_CONSTEXPR (line 1137) | TL_OPTIONAL_11_CONSTEXPR optional(const optional &rhs) = default;
      method TL_OPTIONAL_11_CONSTEXPR (line 1143) | TL_OPTIONAL_11_CONSTEXPR optional(optional &&rhs) = default;
      method optional (line 1147) | constexpr explicit optional(
      method TL_OPTIONAL_11_CONSTEXPR (line 1154) | TL_OPTIONAL_11_CONSTEXPR explicit optional(
      method optional (line 1169) | constexpr optional(U &&u) : base(in_place, std::forward<U>(u)) {}
      method optional (line 1175) | constexpr explicit optional(U &&u) : base(in_place, std::forward<U>(...
      method optional (line 1182) | optional(const optional<U> &rhs) {
      method optional (line 1192) | explicit optional(const optional<U> &rhs) {
      method optional (line 1203) | optional(optional<U> &&rhs) {
      method optional (line 1213) | explicit optional(optional<U> &&rhs) {
      method optional (line 1225) | optional &operator=(nullopt_t) noexcept {
      method optional (line 1238) | optional &operator=(const optional &rhs) = default;
      method optional (line 1244) | optional &operator=(optional &&rhs) = default;
      method optional (line 1249) | optional &operator=(U &&u) {
      method optional (line 1265) | optional &operator=(const optional<U> &rhs) {
      method optional (line 1287) | optional &operator=(optional<U> &&rhs) {
      method T (line 1306) | T &emplace(Args &&... args) {
      method emplace (line 1316) | detail::enable_if_t<
      method swap (line 1331) | void swap(optional &rhs) noexcept(
      method T (line 1350) | constexpr const T *operator->() const {
      method TL_OPTIONAL_11_CONSTEXPR (line 1354) | TL_OPTIONAL_11_CONSTEXPR T *operator->() {
      method TL_OPTIONAL_11_CONSTEXPR (line 1359) | TL_OPTIONAL_11_CONSTEXPR T &operator*() & { return this->m_value; }
      method T (line 1361) | constexpr const T &operator*() const & { return this->m_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 1363) | TL_OPTIONAL_11_CONSTEXPR T &&operator*() && {
      method T (line 1368) | constexpr const T &&operator*() const && {
      method has_value (line 1374) | constexpr bool has_value() const noexcept { return this->m_has_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 1382) | TL_OPTIONAL_11_CONSTEXPR T &value() & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1386) | TL_OPTIONAL_11_CONSTEXPR const T &value() const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1390) | TL_OPTIONAL_11_CONSTEXPR T &&value() && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1396) | TL_OPTIONAL_11_CONSTEXPR const T &&value() const && {
      method T (line 1404) | constexpr T value_or(U &&u) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1412) | TL_OPTIONAL_11_CONSTEXPR T value_or(U &&u) && {
      method reset (line 1420) | void reset() noexcept {
    function swap (line 1565) | void swap(optional<T> &lhs,
    type detail (line 1570) | namespace detail {
      type is_trivially_copy_constructible (line 74) | struct is_trivially_copy_constructible
      type is_trivially_copy_constructible<std::vector<T, A>> (line 78) | struct is_trivially_copy_constructible<std::vector<T, A>>
      type conjunction (line 146) | struct conjunction : std::true_type {}
      type conjunction<B> (line 148) | struct conjunction<B> : B {}
      type is_pointer_to_non_const_member_func (line 162) | struct is_pointer_to_non_const_member_func : std::false_type {}
      type is_const_or_const_ref (line 183) | struct is_const_or_const_ref : std::false_type {}
      type is_const_or_const_ref<T const &> (line 185) | struct is_const_or_const_ref<T const &> : std::true_type {}
      type is_const_or_const_ref<T const> (line 187) | struct is_const_or_const_ref<T const> : std::true_type {}
      function invoke (line 201) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      function invoke (line 210) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      type invoke_result_impl (line 218) | struct invoke_result_impl
      type is_swappable (line 238) | struct is_swappable : std::true_type {}
      type is_nothrow_swappable (line 241) | struct is_nothrow_swappable : std::true_type {}
      type swap_adl_tests (line 244) | namespace swap_adl_tests {
        type tag (line 247) | struct tag {}
        type is_std_swap_noexcept (line 271) | struct is_std_swap_noexcept
        type is_std_swap_noexcept<T[N]> (line 277) | struct is_std_swap_noexcept<T[N]> : is_std_swap_noexcept<T> {}
        type is_adl_swap_noexcept (line 280) | struct is_adl_swap_noexcept
      type is_swappable (line 285) | struct is_swappable
      type is_swappable<T[N], T[N]> (line 294) | struct is_swappable<T[N], T[N]>
      type is_nothrow_swappable (line 303) | struct is_nothrow_swappable
      type voider (line 318) | struct voider {
      type is_optional_impl (line 326) | struct is_optional_impl : std::false_type {}
      type is_optional_impl<optional<T>> (line 328) | struct is_optional_impl<optional<T>> : std::true_type {}
      type returns_void_impl (line 341) | struct returns_void_impl
      type optional_storage_base (line 400) | struct optional_storage_base {
        method TL_OPTIONAL_11_CONSTEXPR (line 406) | TL_OPTIONAL_11_CONSTEXPR optional_storage_base(in_place_t, U &&... u)
        type dummy (line 416) | struct dummy {}
      type optional_storage_base<T, true> (line 427) | struct optional_storage_base<T, true> {
        type dummy (line 438) | struct dummy {}
      type optional_operations_base (line 450) | struct optional_operations_base : optional_storage_base<T> {
        method hard_reset (line 453) | void hard_reset() noexcept {
        method construct (line 459) | void construct(Args &&... args) noexcept {
        method assign (line 465) | void assign(Opt &&rhs) {
        method has_value (line 480) | bool has_value() const { return this->m_has_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 482) | TL_OPTIONAL_11_CONSTEXPR T &get() & { return this->m_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 483) | TL_OPTIONAL_11_CONSTEXPR const T &get() const & { return this->m_v...
        method TL_OPTIONAL_11_CONSTEXPR (line 484) | TL_OPTIONAL_11_CONSTEXPR T &&get() && { return std::move(this->m_v...
        method T (line 486) | constexpr const T &&get() const && { return std::move(this->m_valu...
      type optional_copy_base (line 493) | struct optional_copy_base : optional_operations_base<T> {
      type optional_copy_base<T, false> (line 499) | struct optional_copy_base<T, false> : optional_operations_base<T> {
        method optional_copy_base (line 502) | optional_copy_base() = default;
        method optional_copy_base (line 503) | optional_copy_base(const optional_copy_base &rhs)
        method optional_copy_base (line 512) | optional_copy_base(optional_copy_base &&rhs) = default;
        method optional_copy_base (line 513) | optional_copy_base &operator=(const optional_copy_base &rhs) = def...
        method optional_copy_base (line 514) | optional_copy_base &operator=(optional_copy_base &&rhs) = default;
      type optional_move_base (line 524) | struct optional_move_base : optional_copy_base<T> {
      type optional_move_base (line 529) | struct optional_move_base
      type optional_move_base<T, false> (line 532) | struct optional_move_base<T, false> : optional_copy_base<T> {
        method optional_move_base (line 535) | optional_move_base() = default;
        method optional_move_base (line 536) | optional_move_base(const optional_move_base &rhs) = default;
        method optional_move_base (line 538) | optional_move_base(optional_move_base &&rhs) noexcept(
        method optional_move_base (line 546) | optional_move_base &operator=(const optional_move_base &rhs) = def...
        method optional_move_base (line 547) | optional_move_base &operator=(optional_move_base &&rhs) = default;
      type optional_copy_assign_base (line 555) | struct optional_copy_assign_base : optional_move_base<T> {
      type optional_copy_assign_base<T, false> (line 560) | struct optional_copy_assign_base<T, false> : optional_move_base<T> {
        method optional_copy_assign_base (line 563) | optional_copy_assign_base() = default;
        method optional_copy_assign_base (line 564) | optional_copy_assign_base(const optional_copy_assign_base &rhs) = ...
        method optional_copy_assign_base (line 566) | optional_copy_assign_base(optional_copy_assign_base &&rhs) = default;
        method optional_copy_assign_base (line 567) | optional_copy_assign_base &operator=(const optional_copy_assign_ba...
        method optional_copy_assign_base (line 571) | optional_copy_assign_base &operator=(optional_copy_assign_base &&r...
      type optional_move_assign_base (line 585) | struct optional_move_assign_base : optional_copy_assign_base<T> {
      type optional_move_assign_base (line 590) | struct optional_move_assign_base
      type optional_move_assign_base<T, false> (line 594) | struct optional_move_assign_base<T, false> : optional_copy_assign_ba...
        method optional_move_assign_base (line 597) | optional_move_assign_base() = default;
        method optional_move_assign_base (line 598) | optional_move_assign_base(const optional_move_assign_base &rhs) = ...
        method optional_move_assign_base (line 600) | optional_move_assign_base(optional_move_assign_base &&rhs) = default;
        method optional_move_assign_base (line 602) | optional_move_assign_base &operator=(const optional_move_assign_ba...
        method optional_move_assign_base (line 605) | optional_move_assign_base &
      type optional_delete_ctor_base (line 619) | struct optional_delete_ctor_base {
        method optional_delete_ctor_base (line 620) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 621) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 622) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 623) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 625) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, true, false> (line 630) | struct optional_delete_ctor_base<T, true, false> {
        method optional_delete_ctor_base (line 631) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 632) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 633) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 634) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 636) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, true> (line 641) | struct optional_delete_ctor_base<T, false, true> {
        method optional_delete_ctor_base (line 642) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 643) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 644) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 645) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 647) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, false> (line 652) | struct optional_delete_ctor_base<T, false, false> {
        method optional_delete_ctor_base (line 653) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 654) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 655) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 656) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 658) | optional_delete_ctor_base &operator=(
      type optional_delete_assign_base (line 669) | struct optional_delete_assign_base {
        method optional_delete_assign_base (line 670) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 671) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 672) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 674) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 676) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, true, false> (line 681) | struct optional_delete_assign_base<T, true, false> {
        method optional_delete_assign_base (line 682) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 683) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 684) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 686) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 688) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, true> (line 693) | struct optional_delete_assign_base<T, false, true> {
        method optional_delete_assign_base (line 694) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 695) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 696) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 698) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 700) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, false> (line 705) | struct optional_delete_assign_base<T, false, false> {
        method optional_delete_assign_base (line 706) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 707) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 708) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 710) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 712) | optional_delete_assign_base &operator=(
      type i_am_secret (line 1571) | struct i_am_secret {}
      function optional_map_impl (line 1607) | constexpr auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1618) | auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1633) | constexpr auto optional_map_impl(Opt &&opt, F &&f) -> optional<Ret> {
      function optional_map_impl (line 1645) | auto optional_map_impl(Opt &&opt, F &&f) -> optional<monostate> {
    function make_optional (line 1580) | inline constexpr optional<Ret> make_optional(U &&v) {
    function make_optional (line 1585) | inline constexpr optional<T> make_optional(Args &&... args) {
    function make_optional (line 1589) | inline constexpr optional<T> make_optional(std::initializer_list<U> il,
    type detail (line 1600) | namespace detail {
      type is_trivially_copy_constructible (line 74) | struct is_trivially_copy_constructible
      type is_trivially_copy_constructible<std::vector<T, A>> (line 78) | struct is_trivially_copy_constructible<std::vector<T, A>>
      type conjunction (line 146) | struct conjunction : std::true_type {}
      type conjunction<B> (line 148) | struct conjunction<B> : B {}
      type is_pointer_to_non_const_member_func (line 162) | struct is_pointer_to_non_const_member_func : std::false_type {}
      type is_const_or_const_ref (line 183) | struct is_const_or_const_ref : std::false_type {}
      type is_const_or_const_ref<T const &> (line 185) | struct is_const_or_const_ref<T const &> : std::true_type {}
      type is_const_or_const_ref<T const> (line 187) | struct is_const_or_const_ref<T const> : std::true_type {}
      function invoke (line 201) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      function invoke (line 210) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      type invoke_result_impl (line 218) | struct invoke_result_impl
      type is_swappable (line 238) | struct is_swappable : std::true_type {}
      type is_nothrow_swappable (line 241) | struct is_nothrow_swappable : std::true_type {}
      type swap_adl_tests (line 244) | namespace swap_adl_tests {
        type tag (line 247) | struct tag {}
        type is_std_swap_noexcept (line 271) | struct is_std_swap_noexcept
        type is_std_swap_noexcept<T[N]> (line 277) | struct is_std_swap_noexcept<T[N]> : is_std_swap_noexcept<T> {}
        type is_adl_swap_noexcept (line 280) | struct is_adl_swap_noexcept
      type is_swappable (line 285) | struct is_swappable
      type is_swappable<T[N], T[N]> (line 294) | struct is_swappable<T[N], T[N]>
      type is_nothrow_swappable (line 303) | struct is_nothrow_swappable
      type voider (line 318) | struct voider {
      type is_optional_impl (line 326) | struct is_optional_impl : std::false_type {}
      type is_optional_impl<optional<T>> (line 328) | struct is_optional_impl<optional<T>> : std::true_type {}
      type returns_void_impl (line 341) | struct returns_void_impl
      type optional_storage_base (line 400) | struct optional_storage_base {
        method TL_OPTIONAL_11_CONSTEXPR (line 406) | TL_OPTIONAL_11_CONSTEXPR optional_storage_base(in_place_t, U &&... u)
        type dummy (line 416) | struct dummy {}
      type optional_storage_base<T, true> (line 427) | struct optional_storage_base<T, true> {
        type dummy (line 438) | struct dummy {}
      type optional_operations_base (line 450) | struct optional_operations_base : optional_storage_base<T> {
        method hard_reset (line 453) | void hard_reset() noexcept {
        method construct (line 459) | void construct(Args &&... args) noexcept {
        method assign (line 465) | void assign(Opt &&rhs) {
        method has_value (line 480) | bool has_value() const { return this->m_has_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 482) | TL_OPTIONAL_11_CONSTEXPR T &get() & { return this->m_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 483) | TL_OPTIONAL_11_CONSTEXPR const T &get() const & { return this->m_v...
        method TL_OPTIONAL_11_CONSTEXPR (line 484) | TL_OPTIONAL_11_CONSTEXPR T &&get() && { return std::move(this->m_v...
        method T (line 486) | constexpr const T &&get() const && { return std::move(this->m_valu...
      type optional_copy_base (line 493) | struct optional_copy_base : optional_operations_base<T> {
      type optional_copy_base<T, false> (line 499) | struct optional_copy_base<T, false> : optional_operations_base<T> {
        method optional_copy_base (line 502) | optional_copy_base() = default;
        method optional_copy_base (line 503) | optional_copy_base(const optional_copy_base &rhs)
        method optional_copy_base (line 512) | optional_copy_base(optional_copy_base &&rhs) = default;
        method optional_copy_base (line 513) | optional_copy_base &operator=(const optional_copy_base &rhs) = def...
        method optional_copy_base (line 514) | optional_copy_base &operator=(optional_copy_base &&rhs) = default;
      type optional_move_base (line 524) | struct optional_move_base : optional_copy_base<T> {
      type optional_move_base (line 529) | struct optional_move_base
      type optional_move_base<T, false> (line 532) | struct optional_move_base<T, false> : optional_copy_base<T> {
        method optional_move_base (line 535) | optional_move_base() = default;
        method optional_move_base (line 536) | optional_move_base(const optional_move_base &rhs) = default;
        method optional_move_base (line 538) | optional_move_base(optional_move_base &&rhs) noexcept(
        method optional_move_base (line 546) | optional_move_base &operator=(const optional_move_base &rhs) = def...
        method optional_move_base (line 547) | optional_move_base &operator=(optional_move_base &&rhs) = default;
      type optional_copy_assign_base (line 555) | struct optional_copy_assign_base : optional_move_base<T> {
      type optional_copy_assign_base<T, false> (line 560) | struct optional_copy_assign_base<T, false> : optional_move_base<T> {
        method optional_copy_assign_base (line 563) | optional_copy_assign_base() = default;
        method optional_copy_assign_base (line 564) | optional_copy_assign_base(const optional_copy_assign_base &rhs) = ...
        method optional_copy_assign_base (line 566) | optional_copy_assign_base(optional_copy_assign_base &&rhs) = default;
        method optional_copy_assign_base (line 567) | optional_copy_assign_base &operator=(const optional_copy_assign_ba...
        method optional_copy_assign_base (line 571) | optional_copy_assign_base &operator=(optional_copy_assign_base &&r...
      type optional_move_assign_base (line 585) | struct optional_move_assign_base : optional_copy_assign_base<T> {
      type optional_move_assign_base (line 590) | struct optional_move_assign_base
      type optional_move_assign_base<T, false> (line 594) | struct optional_move_assign_base<T, false> : optional_copy_assign_ba...
        method optional_move_assign_base (line 597) | optional_move_assign_base() = default;
        method optional_move_assign_base (line 598) | optional_move_assign_base(const optional_move_assign_base &rhs) = ...
        method optional_move_assign_base (line 600) | optional_move_assign_base(optional_move_assign_base &&rhs) = default;
        method optional_move_assign_base (line 602) | optional_move_assign_base &operator=(const optional_move_assign_ba...
        method optional_move_assign_base (line 605) | optional_move_assign_base &
      type optional_delete_ctor_base (line 619) | struct optional_delete_ctor_base {
        method optional_delete_ctor_base (line 620) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 621) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 622) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 623) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 625) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, true, false> (line 630) | struct optional_delete_ctor_base<T, true, false> {
        method optional_delete_ctor_base (line 631) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 632) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 633) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 634) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 636) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, true> (line 641) | struct optional_delete_ctor_base<T, false, true> {
        method optional_delete_ctor_base (line 642) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 643) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 644) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 645) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 647) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, false> (line 652) | struct optional_delete_ctor_base<T, false, false> {
        method optional_delete_ctor_base (line 653) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 654) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 655) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 656) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 658) | optional_delete_ctor_base &operator=(
      type optional_delete_assign_base (line 669) | struct optional_delete_assign_base {
        method optional_delete_assign_base (line 670) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 671) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 672) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 674) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 676) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, true, false> (line 681) | struct optional_delete_assign_base<T, true, false> {
        method optional_delete_assign_base (line 682) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 683) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 684) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 686) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 688) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, true> (line 693) | struct optional_delete_assign_base<T, false, true> {
        method optional_delete_assign_base (line 694) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 695) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 696) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 698) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 700) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, false> (line 705) | struct optional_delete_assign_base<T, false, false> {
        method optional_delete_assign_base (line 706) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 707) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 708) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 710) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 712) | optional_delete_assign_base &operator=(
      type i_am_secret (line 1571) | struct i_am_secret {}
      function optional_map_impl (line 1607) | constexpr auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1618) | auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1633) | constexpr auto optional_map_impl(Opt &&opt, F &&f) -> optional<Ret> {
      function optional_map_impl (line 1645) | auto optional_map_impl(Opt &&opt, F &&f) -> optional<monostate> {
    class optional<T &> (line 1659) | class optional<T &> {
      method and_then (line 1671) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) & {
      method and_then (line 1681) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) && {
      method and_then (line 1691) | constexpr auto and_then(F &&f) const & {
      method and_then (line 1702) | constexpr auto and_then(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1715) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &> and_then(F ...
      method TL_OPTIONAL_11_CONSTEXPR (line 1725) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &> and_then(
      method and_then (line 1736) | constexpr detail::invoke_result_t<F, const T &> and_then(F &&f) cons...
      method and_then (line 1747) | constexpr detail::invoke_result_t<F, const T &> and_then(F &&f) cons...
      method map (line 1762) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) & {
      method map (line 1767) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) && {
      method map (line 1772) | constexpr auto map(F &&f) const & {
      method map (line 1777) | constexpr auto map(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1783) | TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(
      method TL_OPTIONAL_11_CONSTEXPR (line 1790) | TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(
      method map (line 1797) | constexpr decltype(detail::optional_map_impl(
      method map (line 1805) | constexpr decltype(detail::optional_map_impl(
      method transform (line 1817) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) & {
      method transform (line 1822) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) && {
      method transform (line 1827) | constexpr auto transform(F &&f) const & {
      method transform (line 1832) | constexpr auto transform(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1838) | TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(
      method TL_OPTIONAL_11_CONSTEXPR (line 1847) | TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(
      method transform (line 1854) | constexpr decltype(detail::optional_map_impl(
      method transform (line 1862) | constexpr decltype(detail::optional_map_impl(
      method or_else (line 1885) | optional<T> or_else(F &&f) && {
      method or_else (line 1898) | optional<T> or_else(F &&f) const & {
      method or_else (line 1912) | optional<T> or_else(F &&f) const && {
      method or_else (line 1920) | optional<T> or_else(F &&f) const && {
      method U (line 1927) | U map_or(F &&f, U &&u) & {
      method U (line 1933) | U map_or(F &&f, U &&u) && {
      method U (line 1940) | U map_or(F &&f, U &&u) const & {
      method U (line 1947) | U map_or(F &&f, U &&u) const && {
      method map_or_else (line 1957) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) & {
      method map_or_else (line 1963) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) && {
      method map_or_else (line 1970) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const & {
      method map_or_else (line 1977) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const && {
      method conjunction (line 1986) | constexpr optional<typename std::decay<U>::type> conjunction(U &&u) ...
      method TL_OPTIONAL_11_CONSTEXPR (line 1992) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) & {
      method optional (line 1996) | constexpr optional disjunction(const optional &rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 2000) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) && {
      method optional (line 2005) | constexpr optional disjunction(const optional &rhs) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 2010) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) & {
      method optional (line 2014) | constexpr optional disjunction(optional &&rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 2018) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) && {
      method optional (line 2023) | constexpr optional disjunction(optional &&rhs) const && {
      method optional (line 2029) | optional take() {
      method optional (line 2038) | constexpr optional() noexcept : m_value(nullptr) {}
      method optional (line 2040) | constexpr optional(nullopt_t) noexcept : m_value(nullptr) {}
      method TL_OPTIONAL_11_CONSTEXPR (line 2046) | TL_OPTIONAL_11_CONSTEXPR optional(const optional &rhs) noexcept = de...
      method TL_OPTIONAL_11_CONSTEXPR (line 2052) | TL_OPTIONAL_11_CONSTEXPR optional(optional &&rhs) = default;
      method optional (line 2058) | constexpr optional(U &&u) noexcept : m_value(std::addressof(u)) {
      method optional (line 2064) | constexpr explicit optional(const optional<U> &rhs) noexcept
      method optional (line 2073) | optional &operator=(nullopt_t) noexcept {
      method optional (line 2082) | optional &operator=(const optional &rhs) = default;
      method optional (line 2088) | optional &operator=(U &&u) {
      method optional (line 2100) | optional &operator=(const optional<U> &rhs) noexcept {
      method optional (line 2109) | optional &emplace(U &&u) noexcept {
      method swap (line 2113) | void swap(optional &rhs) noexcept { std::swap(m_value, rhs.m_value); }
      method T (line 2116) | constexpr const T *operator->() const noexcept { return m_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 2118) | TL_OPTIONAL_11_CONSTEXPR T *operator->() noexcept { return m_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 2121) | TL_OPTIONAL_11_CONSTEXPR T &operator*() noexcept { return *m_value; }
      method T (line 2123) | constexpr const T &operator*() const noexcept { return *m_value; }
      method has_value (line 2125) | constexpr bool has_value() const noexcept { return m_value != nullpt...
      method TL_OPTIONAL_11_CONSTEXPR (line 2133) | TL_OPTIONAL_11_CONSTEXPR T &value() {
      method TL_OPTIONAL_11_CONSTEXPR (line 2137) | TL_OPTIONAL_11_CONSTEXPR const T &value() const {
      method T (line 2144) | constexpr T value_or(U &&u) const &noexcept {
      method TL_OPTIONAL_11_CONSTEXPR (line 2153) | TL_OPTIONAL_11_CONSTEXPR T value_or(U &&u) && noexcept {
      method reset (line 2161) | void reset() noexcept { m_value = nullptr; }
  type tl (line 112) | namespace tl {
    type detail (line 72) | namespace detail {
      type is_trivially_copy_constructible (line 74) | struct is_trivially_copy_constructible
      type is_trivially_copy_constructible<std::vector<T, A>> (line 78) | struct is_trivially_copy_constructible<std::vector<T, A>>
      type conjunction (line 146) | struct conjunction : std::true_type {}
      type conjunction<B> (line 148) | struct conjunction<B> : B {}
      type is_pointer_to_non_const_member_func (line 162) | struct is_pointer_to_non_const_member_func : std::false_type {}
      type is_const_or_const_ref (line 183) | struct is_const_or_const_ref : std::false_type {}
      type is_const_or_const_ref<T const &> (line 185) | struct is_const_or_const_ref<T const &> : std::true_type {}
      type is_const_or_const_ref<T const> (line 187) | struct is_const_or_const_ref<T const> : std::true_type {}
      function invoke (line 201) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      function invoke (line 210) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      type invoke_result_impl (line 218) | struct invoke_result_impl
      type is_swappable (line 238) | struct is_swappable : std::true_type {}
      type is_nothrow_swappable (line 241) | struct is_nothrow_swappable : std::true_type {}
      type swap_adl_tests (line 244) | namespace swap_adl_tests {
        type tag (line 247) | struct tag {}
        type is_std_swap_noexcept (line 271) | struct is_std_swap_noexcept
        type is_std_swap_noexcept<T[N]> (line 277) | struct is_std_swap_noexcept<T[N]> : is_std_swap_noexcept<T> {}
        type is_adl_swap_noexcept (line 280) | struct is_adl_swap_noexcept
      type is_swappable (line 285) | struct is_swappable
      type is_swappable<T[N], T[N]> (line 294) | struct is_swappable<T[N], T[N]>
      type is_nothrow_swappable (line 303) | struct is_nothrow_swappable
      type voider (line 318) | struct voider {
      type is_optional_impl (line 326) | struct is_optional_impl : std::false_type {}
      type is_optional_impl<optional<T>> (line 328) | struct is_optional_impl<optional<T>> : std::true_type {}
      type returns_void_impl (line 341) | struct returns_void_impl
      type optional_storage_base (line 400) | struct optional_storage_base {
        method TL_OPTIONAL_11_CONSTEXPR (line 406) | TL_OPTIONAL_11_CONSTEXPR optional_storage_base(in_place_t, U &&... u)
        type dummy (line 416) | struct dummy {}
      type optional_storage_base<T, true> (line 427) | struct optional_storage_base<T, true> {
        type dummy (line 438) | struct dummy {}
      type optional_operations_base (line 450) | struct optional_operations_base : optional_storage_base<T> {
        method hard_reset (line 453) | void hard_reset() noexcept {
        method construct (line 459) | void construct(Args &&... args) noexcept {
        method assign (line 465) | void assign(Opt &&rhs) {
        method has_value (line 480) | bool has_value() const { return this->m_has_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 482) | TL_OPTIONAL_11_CONSTEXPR T &get() & { return this->m_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 483) | TL_OPTIONAL_11_CONSTEXPR const T &get() const & { return this->m_v...
        method TL_OPTIONAL_11_CONSTEXPR (line 484) | TL_OPTIONAL_11_CONSTEXPR T &&get() && { return std::move(this->m_v...
        method T (line 486) | constexpr const T &&get() const && { return std::move(this->m_valu...
      type optional_copy_base (line 493) | struct optional_copy_base : optional_operations_base<T> {
      type optional_copy_base<T, false> (line 499) | struct optional_copy_base<T, false> : optional_operations_base<T> {
        method optional_copy_base (line 502) | optional_copy_base() = default;
        method optional_copy_base (line 503) | optional_copy_base(const optional_copy_base &rhs)
        method optional_copy_base (line 512) | optional_copy_base(optional_copy_base &&rhs) = default;
        method optional_copy_base (line 513) | optional_copy_base &operator=(const optional_copy_base &rhs) = def...
        method optional_copy_base (line 514) | optional_copy_base &operator=(optional_copy_base &&rhs) = default;
      type optional_move_base (line 524) | struct optional_move_base : optional_copy_base<T> {
      type optional_move_base (line 529) | struct optional_move_base
      type optional_move_base<T, false> (line 532) | struct optional_move_base<T, false> : optional_copy_base<T> {
        method optional_move_base (line 535) | optional_move_base() = default;
        method optional_move_base (line 536) | optional_move_base(const optional_move_base &rhs) = default;
        method optional_move_base (line 538) | optional_move_base(optional_move_base &&rhs) noexcept(
        method optional_move_base (line 546) | optional_move_base &operator=(const optional_move_base &rhs) = def...
        method optional_move_base (line 547) | optional_move_base &operator=(optional_move_base &&rhs) = default;
      type optional_copy_assign_base (line 555) | struct optional_copy_assign_base : optional_move_base<T> {
      type optional_copy_assign_base<T, false> (line 560) | struct optional_copy_assign_base<T, false> : optional_move_base<T> {
        method optional_copy_assign_base (line 563) | optional_copy_assign_base() = default;
        method optional_copy_assign_base (line 564) | optional_copy_assign_base(const optional_copy_assign_base &rhs) = ...
        method optional_copy_assign_base (line 566) | optional_copy_assign_base(optional_copy_assign_base &&rhs) = default;
        method optional_copy_assign_base (line 567) | optional_copy_assign_base &operator=(const optional_copy_assign_ba...
        method optional_copy_assign_base (line 571) | optional_copy_assign_base &operator=(optional_copy_assign_base &&r...
      type optional_move_assign_base (line 585) | struct optional_move_assign_base : optional_copy_assign_base<T> {
      type optional_move_assign_base (line 590) | struct optional_move_assign_base
      type optional_move_assign_base<T, false> (line 594) | struct optional_move_assign_base<T, false> : optional_copy_assign_ba...
        method optional_move_assign_base (line 597) | optional_move_assign_base() = default;
        method optional_move_assign_base (line 598) | optional_move_assign_base(const optional_move_assign_base &rhs) = ...
        method optional_move_assign_base (line 600) | optional_move_assign_base(optional_move_assign_base &&rhs) = default;
        method optional_move_assign_base (line 602) | optional_move_assign_base &operator=(const optional_move_assign_ba...
        method optional_move_assign_base (line 605) | optional_move_assign_base &
      type optional_delete_ctor_base (line 619) | struct optional_delete_ctor_base {
        method optional_delete_ctor_base (line 620) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 621) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 622) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 623) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 625) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, true, false> (line 630) | struct optional_delete_ctor_base<T, true, false> {
        method optional_delete_ctor_base (line 631) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 632) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 633) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 634) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 636) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, true> (line 641) | struct optional_delete_ctor_base<T, false, true> {
        method optional_delete_ctor_base (line 642) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 643) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 644) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 645) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 647) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, false> (line 652) | struct optional_delete_ctor_base<T, false, false> {
        method optional_delete_ctor_base (line 653) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 654) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 655) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 656) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 658) | optional_delete_ctor_base &operator=(
      type optional_delete_assign_base (line 669) | struct optional_delete_assign_base {
        method optional_delete_assign_base (line 670) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 671) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 672) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 674) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 676) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, true, false> (line 681) | struct optional_delete_assign_base<T, true, false> {
        method optional_delete_assign_base (line 682) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 683) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 684) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 686) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 688) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, true> (line 693) | struct optional_delete_assign_base<T, false, true> {
        method optional_delete_assign_base (line 694) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 695) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 696) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 698) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 700) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, false> (line 705) | struct optional_delete_assign_base<T, false, false> {
        method optional_delete_assign_base (line 706) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 707) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 708) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 710) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 712) | optional_delete_assign_base &operator=(
      type i_am_secret (line 1571) | struct i_am_secret {}
      function optional_map_impl (line 1607) | constexpr auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1618) | auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1633) | constexpr auto optional_map_impl(Opt &&opt, F &&f) -> optional<Ret> {
      function optional_map_impl (line 1645) | auto optional_map_impl(Opt &&opt, F &&f) -> optional<monostate> {
    class monostate (line 116) | class monostate {}
    type in_place_t (line 119) | struct in_place_t {
      method in_place_t (line 120) | explicit in_place_t() = default;
    class optional (line 127) | class optional
      method and_then (line 760) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) & {
      method and_then (line 770) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) && {
      method and_then (line 781) | constexpr auto and_then(F &&f) const & {
      method and_then (line 792) | constexpr auto and_then(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 806) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &> and_then(F ...
      method TL_OPTIONAL_11_CONSTEXPR (line 816) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &&> and_then(
      method and_then (line 828) | constexpr detail::invoke_result_t<F, const T &> and_then(F &&f) cons...
      method and_then (line 839) | constexpr detail::invoke_result_t<F, const T &&> and_then(F &&f) con...
      method map (line 855) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) & {
      method map (line 860) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) && {
      method map (line 865) | constexpr auto map(F &&f) const & {
      method map (line 870) | constexpr auto map(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 876) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method TL_OPTIONAL_11_CONSTEXPR (line 883) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method map (line 890) | constexpr decltype(optional_map_impl(std::declval<const optional &>(),
      method map (line 898) | constexpr decltype(optional_map_impl(std::declval<const optional &&>(),
      method transform (line 910) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) & {
      method transform (line 915) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) && {
      method transform (line 920) | constexpr auto transform(F &&f) const & {
      method transform (line 925) | constexpr auto transform(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 931) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method TL_OPTIONAL_11_CONSTEXPR (line 938) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method transform (line 945) | constexpr decltype(optional_map_impl(std::declval<const optional &>(),
      method transform (line 953) | constexpr decltype(optional_map_impl(std::declval<const optional &&>(),
      method or_else (line 976) | optional<T> or_else(F &&f) && {
      method or_else (line 989) | optional<T> or_else(F &&f) const & {
      method or_else (line 1003) | optional<T> or_else(F &&f) const && {
      method or_else (line 1011) | optional<T> or_else(F &&f) const && {
      method U (line 1018) | U map_or(F &&f, U &&u) & {
      method U (line 1024) | U map_or(F &&f, U &&u) && {
      method U (line 1031) | U map_or(F &&f, U &&u) const & {
      method U (line 1038) | U map_or(F &&f, U &&u) const && {
      method map_or_else (line 1048) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) & {
      method map_or_else (line 1054) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) && {
      method map_or_else (line 1061) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const & {
      method map_or_else (line 1068) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const && {
      method conjunction (line 1077) | constexpr optional<typename std::decay<U>::type> conjunction(U &&u) ...
      method TL_OPTIONAL_11_CONSTEXPR (line 1083) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) & {
      method optional (line 1087) | constexpr optional disjunction(const optional &rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1091) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) && {
      method optional (line 1096) | constexpr optional disjunction(const optional &rhs) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1101) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) & {
      method optional (line 1105) | constexpr optional disjunction(optional &&rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1109) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) && {
      method optional (line 1114) | constexpr optional disjunction(optional &&rhs) const && {
      method optional (line 1120) | optional take() {
      method optional (line 1129) | constexpr optional() noexcept = default;
      method optional (line 1131) | constexpr optional(nullopt_t) noexcept {}
      method TL_OPTIONAL_11_CONSTEXPR (line 1137) | TL_OPTIONAL_11_CONSTEXPR optional(const optional &rhs) = default;
      method TL_OPTIONAL_11_CONSTEXPR (line 1143) | TL_OPTIONAL_11_CONSTEXPR optional(optional &&rhs) = default;
      method optional (line 1147) | constexpr explicit optional(
      method TL_OPTIONAL_11_CONSTEXPR (line 1154) | TL_OPTIONAL_11_CONSTEXPR explicit optional(
      method optional (line 1169) | constexpr optional(U &&u) : base(in_place, std::forward<U>(u)) {}
      method optional (line 1175) | constexpr explicit optional(U &&u) : base(in_place, std::forward<U>(...
      method optional (line 1182) | optional(const optional<U> &rhs) {
      method optional (line 1192) | explicit optional(const optional<U> &rhs) {
      method optional (line 1203) | optional(optional<U> &&rhs) {
      method optional (line 1213) | explicit optional(optional<U> &&rhs) {
      method optional (line 1225) | optional &operator=(nullopt_t) noexcept {
      method optional (line 1238) | optional &operator=(const optional &rhs) = default;
      method optional (line 1244) | optional &operator=(optional &&rhs) = default;
      method optional (line 1249) | optional &operator=(U &&u) {
      method optional (line 1265) | optional &operator=(const optional<U> &rhs) {
      method optional (line 1287) | optional &operator=(optional<U> &&rhs) {
      method T (line 1306) | T &emplace(Args &&... args) {
      method emplace (line 1316) | detail::enable_if_t<
      method swap (line 1331) | void swap(optional &rhs) noexcept(
      method T (line 1350) | constexpr const T *operator->() const {
      method TL_OPTIONAL_11_CONSTEXPR (line 1354) | TL_OPTIONAL_11_CONSTEXPR T *operator->() {
      method TL_OPTIONAL_11_CONSTEXPR (line 1359) | TL_OPTIONAL_11_CONSTEXPR T &operator*() & { return this->m_value; }
      method T (line 1361) | constexpr const T &operator*() const & { return this->m_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 1363) | TL_OPTIONAL_11_CONSTEXPR T &&operator*() && {
      method T (line 1368) | constexpr const T &&operator*() const && {
      method has_value (line 1374) | constexpr bool has_value() const noexcept { return this->m_has_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 1382) | TL_OPTIONAL_11_CONSTEXPR T &value() & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1386) | TL_OPTIONAL_11_CONSTEXPR const T &value() const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1390) | TL_OPTIONAL_11_CONSTEXPR T &&value() && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1396) | TL_OPTIONAL_11_CONSTEXPR const T &&value() const && {
      method T (line 1404) | constexpr T value_or(U &&u) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1412) | TL_OPTIONAL_11_CONSTEXPR T value_or(U &&u) && {
      method reset (line 1420) | void reset() noexcept {
    type detail (line 129) | namespace detail {
      type is_trivially_copy_constructible (line 74) | struct is_trivially_copy_constructible
      type is_trivially_copy_constructible<std::vector<T, A>> (line 78) | struct is_trivially_copy_constructible<std::vector<T, A>>
      type conjunction (line 146) | struct conjunction : std::true_type {}
      type conjunction<B> (line 148) | struct conjunction<B> : B {}
      type is_pointer_to_non_const_member_func (line 162) | struct is_pointer_to_non_const_member_func : std::false_type {}
      type is_const_or_const_ref (line 183) | struct is_const_or_const_ref : std::false_type {}
      type is_const_or_const_ref<T const &> (line 185) | struct is_const_or_const_ref<T const &> : std::true_type {}
      type is_const_or_const_ref<T const> (line 187) | struct is_const_or_const_ref<T const> : std::true_type {}
      function invoke (line 201) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      function invoke (line 210) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      type invoke_result_impl (line 218) | struct invoke_result_impl
      type is_swappable (line 238) | struct is_swappable : std::true_type {}
      type is_nothrow_swappable (line 241) | struct is_nothrow_swappable : std::true_type {}
      type swap_adl_tests (line 244) | namespace swap_adl_tests {
        type tag (line 247) | struct tag {}
        type is_std_swap_noexcept (line 271) | struct is_std_swap_noexcept
        type is_std_swap_noexcept<T[N]> (line 277) | struct is_std_swap_noexcept<T[N]> : is_std_swap_noexcept<T> {}
        type is_adl_swap_noexcept (line 280) | struct is_adl_swap_noexcept
      type is_swappable (line 285) | struct is_swappable
      type is_swappable<T[N], T[N]> (line 294) | struct is_swappable<T[N], T[N]>
      type is_nothrow_swappable (line 303) | struct is_nothrow_swappable
      type voider (line 318) | struct voider {
      type is_optional_impl (line 326) | struct is_optional_impl : std::false_type {}
      type is_optional_impl<optional<T>> (line 328) | struct is_optional_impl<optional<T>> : std::true_type {}
      type returns_void_impl (line 341) | struct returns_void_impl
      type optional_storage_base (line 400) | struct optional_storage_base {
        method TL_OPTIONAL_11_CONSTEXPR (line 406) | TL_OPTIONAL_11_CONSTEXPR optional_storage_base(in_place_t, U &&... u)
        type dummy (line 416) | struct dummy {}
      type optional_storage_base<T, true> (line 427) | struct optional_storage_base<T, true> {
        type dummy (line 438) | struct dummy {}
      type optional_operations_base (line 450) | struct optional_operations_base : optional_storage_base<T> {
        method hard_reset (line 453) | void hard_reset() noexcept {
        method construct (line 459) | void construct(Args &&... args) noexcept {
        method assign (line 465) | void assign(Opt &&rhs) {
        method has_value (line 480) | bool has_value() const { return this->m_has_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 482) | TL_OPTIONAL_11_CONSTEXPR T &get() & { return this->m_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 483) | TL_OPTIONAL_11_CONSTEXPR const T &get() const & { return this->m_v...
        method TL_OPTIONAL_11_CONSTEXPR (line 484) | TL_OPTIONAL_11_CONSTEXPR T &&get() && { return std::move(this->m_v...
        method T (line 486) | constexpr const T &&get() const && { return std::move(this->m_valu...
      type optional_copy_base (line 493) | struct optional_copy_base : optional_operations_base<T> {
      type optional_copy_base<T, false> (line 499) | struct optional_copy_base<T, false> : optional_operations_base<T> {
        method optional_copy_base (line 502) | optional_copy_base() = default;
        method optional_copy_base (line 503) | optional_copy_base(const optional_copy_base &rhs)
        method optional_copy_base (line 512) | optional_copy_base(optional_copy_base &&rhs) = default;
        method optional_copy_base (line 513) | optional_copy_base &operator=(const optional_copy_base &rhs) = def...
        method optional_copy_base (line 514) | optional_copy_base &operator=(optional_copy_base &&rhs) = default;
      type optional_move_base (line 524) | struct optional_move_base : optional_copy_base<T> {
      type optional_move_base (line 529) | struct optional_move_base
      type optional_move_base<T, false> (line 532) | struct optional_move_base<T, false> : optional_copy_base<T> {
        method optional_move_base (line 535) | optional_move_base() = default;
        method optional_move_base (line 536) | optional_move_base(const optional_move_base &rhs) = default;
        method optional_move_base (line 538) | optional_move_base(optional_move_base &&rhs) noexcept(
        method optional_move_base (line 546) | optional_move_base &operator=(const optional_move_base &rhs) = def...
        method optional_move_base (line 547) | optional_move_base &operator=(optional_move_base &&rhs) = default;
      type optional_copy_assign_base (line 555) | struct optional_copy_assign_base : optional_move_base<T> {
      type optional_copy_assign_base<T, false> (line 560) | struct optional_copy_assign_base<T, false> : optional_move_base<T> {
        method optional_copy_assign_base (line 563) | optional_copy_assign_base() = default;
        method optional_copy_assign_base (line 564) | optional_copy_assign_base(const optional_copy_assign_base &rhs) = ...
        method optional_copy_assign_base (line 566) | optional_copy_assign_base(optional_copy_assign_base &&rhs) = default;
        method optional_copy_assign_base (line 567) | optional_copy_assign_base &operator=(const optional_copy_assign_ba...
        method optional_copy_assign_base (line 571) | optional_copy_assign_base &operator=(optional_copy_assign_base &&r...
      type optional_move_assign_base (line 585) | struct optional_move_assign_base : optional_copy_assign_base<T> {
      type optional_move_assign_base (line 590) | struct optional_move_assign_base
      type optional_move_assign_base<T, false> (line 594) | struct optional_move_assign_base<T, false> : optional_copy_assign_ba...
        method optional_move_assign_base (line 597) | optional_move_assign_base() = default;
        method optional_move_assign_base (line 598) | optional_move_assign_base(const optional_move_assign_base &rhs) = ...
        method optional_move_assign_base (line 600) | optional_move_assign_base(optional_move_assign_base &&rhs) = default;
        method optional_move_assign_base (line 602) | optional_move_assign_base &operator=(const optional_move_assign_ba...
        method optional_move_assign_base (line 605) | optional_move_assign_base &
      type optional_delete_ctor_base (line 619) | struct optional_delete_ctor_base {
        method optional_delete_ctor_base (line 620) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 621) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 622) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 623) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 625) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, true, false> (line 630) | struct optional_delete_ctor_base<T, true, false> {
        method optional_delete_ctor_base (line 631) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 632) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 633) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 634) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 636) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, true> (line 641) | struct optional_delete_ctor_base<T, false, true> {
        method optional_delete_ctor_base (line 642) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 643) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 644) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 645) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 647) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, false> (line 652) | struct optional_delete_ctor_base<T, false, false> {
        method optional_delete_ctor_base (line 653) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 654) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 655) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 656) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 658) | optional_delete_ctor_base &operator=(
      type optional_delete_assign_base (line 669) | struct optional_delete_assign_base {
        method optional_delete_assign_base (line 670) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 671) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 672) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 674) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 676) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, true, false> (line 681) | struct optional_delete_assign_base<T, true, false> {
        method optional_delete_assign_base (line 682) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 683) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 684) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 686) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 688) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, true> (line 693) | struct optional_delete_assign_base<T, false, true> {
        method optional_delete_assign_base (line 694) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 695) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 696) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 698) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 700) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, false> (line 705) | struct optional_delete_assign_base<T, false, false> {
        method optional_delete_assign_base (line 706) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 707) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 708) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 710) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 712) | optional_delete_assign_base &operator=(
      type i_am_secret (line 1571) | struct i_am_secret {}
      function optional_map_impl (line 1607) | constexpr auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1618) | auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1633) | constexpr auto optional_map_impl(Opt &&opt, F &&f) -> optional<Ret> {
      function optional_map_impl (line 1645) | auto optional_map_impl(Opt &&opt, F &&f) -> optional<monostate> {
    type nullopt_t (line 719) | struct nullopt_t {
      type do_not_use (line 720) | struct do_not_use {}
      method nullopt_t (line 721) | constexpr explicit nullopt_t(do_not_use, do_not_use) noexcept {}
    class bad_optional_access (line 727) | class bad_optional_access : public std::exception {
      method bad_optional_access (line 729) | bad_optional_access() = default;
    class optional (line 740) | class optional : private detail::optional_move_assign_base<T>,
      method and_then (line 760) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) & {
      method and_then (line 770) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) && {
      method and_then (line 781) | constexpr auto and_then(F &&f) const & {
      method and_then (line 792) | constexpr auto and_then(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 806) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &> and_then(F ...
      method TL_OPTIONAL_11_CONSTEXPR (line 816) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &&> and_then(
      method and_then (line 828) | constexpr detail::invoke_result_t<F, const T &> and_then(F &&f) cons...
      method and_then (line 839) | constexpr detail::invoke_result_t<F, const T &&> and_then(F &&f) con...
      method map (line 855) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) & {
      method map (line 860) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) && {
      method map (line 865) | constexpr auto map(F &&f) const & {
      method map (line 870) | constexpr auto map(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 876) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method TL_OPTIONAL_11_CONSTEXPR (line 883) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method map (line 890) | constexpr decltype(optional_map_impl(std::declval<const optional &>(),
      method map (line 898) | constexpr decltype(optional_map_impl(std::declval<const optional &&>(),
      method transform (line 910) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) & {
      method transform (line 915) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) && {
      method transform (line 920) | constexpr auto transform(F &&f) const & {
      method transform (line 925) | constexpr auto transform(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 931) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method TL_OPTIONAL_11_CONSTEXPR (line 938) | TL_OPTIONAL_11_CONSTEXPR decltype(
      method transform (line 945) | constexpr decltype(optional_map_impl(std::declval<const optional &>(),
      method transform (line 953) | constexpr decltype(optional_map_impl(std::declval<const optional &&>(),
      method or_else (line 976) | optional<T> or_else(F &&f) && {
      method or_else (line 989) | optional<T> or_else(F &&f) const & {
      method or_else (line 1003) | optional<T> or_else(F &&f) const && {
      method or_else (line 1011) | optional<T> or_else(F &&f) const && {
      method U (line 1018) | U map_or(F &&f, U &&u) & {
      method U (line 1024) | U map_or(F &&f, U &&u) && {
      method U (line 1031) | U map_or(F &&f, U &&u) const & {
      method U (line 1038) | U map_or(F &&f, U &&u) const && {
      method map_or_else (line 1048) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) & {
      method map_or_else (line 1054) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) && {
      method map_or_else (line 1061) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const & {
      method map_or_else (line 1068) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const && {
      method conjunction (line 1077) | constexpr optional<typename std::decay<U>::type> conjunction(U &&u) ...
      method TL_OPTIONAL_11_CONSTEXPR (line 1083) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) & {
      method optional (line 1087) | constexpr optional disjunction(const optional &rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1091) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) && {
      method optional (line 1096) | constexpr optional disjunction(const optional &rhs) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1101) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) & {
      method optional (line 1105) | constexpr optional disjunction(optional &&rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1109) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) && {
      method optional (line 1114) | constexpr optional disjunction(optional &&rhs) const && {
      method optional (line 1120) | optional take() {
      method optional (line 1129) | constexpr optional() noexcept = default;
      method optional (line 1131) | constexpr optional(nullopt_t) noexcept {}
      method TL_OPTIONAL_11_CONSTEXPR (line 1137) | TL_OPTIONAL_11_CONSTEXPR optional(const optional &rhs) = default;
      method TL_OPTIONAL_11_CONSTEXPR (line 1143) | TL_OPTIONAL_11_CONSTEXPR optional(optional &&rhs) = default;
      method optional (line 1147) | constexpr explicit optional(
      method TL_OPTIONAL_11_CONSTEXPR (line 1154) | TL_OPTIONAL_11_CONSTEXPR explicit optional(
      method optional (line 1169) | constexpr optional(U &&u) : base(in_place, std::forward<U>(u)) {}
      method optional (line 1175) | constexpr explicit optional(U &&u) : base(in_place, std::forward<U>(...
      method optional (line 1182) | optional(const optional<U> &rhs) {
      method optional (line 1192) | explicit optional(const optional<U> &rhs) {
      method optional (line 1203) | optional(optional<U> &&rhs) {
      method optional (line 1213) | explicit optional(optional<U> &&rhs) {
      method optional (line 1225) | optional &operator=(nullopt_t) noexcept {
      method optional (line 1238) | optional &operator=(const optional &rhs) = default;
      method optional (line 1244) | optional &operator=(optional &&rhs) = default;
      method optional (line 1249) | optional &operator=(U &&u) {
      method optional (line 1265) | optional &operator=(const optional<U> &rhs) {
      method optional (line 1287) | optional &operator=(optional<U> &&rhs) {
      method T (line 1306) | T &emplace(Args &&... args) {
      method emplace (line 1316) | detail::enable_if_t<
      method swap (line 1331) | void swap(optional &rhs) noexcept(
      method T (line 1350) | constexpr const T *operator->() const {
      method TL_OPTIONAL_11_CONSTEXPR (line 1354) | TL_OPTIONAL_11_CONSTEXPR T *operator->() {
      method TL_OPTIONAL_11_CONSTEXPR (line 1359) | TL_OPTIONAL_11_CONSTEXPR T &operator*() & { return this->m_value; }
      method T (line 1361) | constexpr const T &operator*() const & { return this->m_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 1363) | TL_OPTIONAL_11_CONSTEXPR T &&operator*() && {
      method T (line 1368) | constexpr const T &&operator*() const && {
      method has_value (line 1374) | constexpr bool has_value() const noexcept { return this->m_has_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 1382) | TL_OPTIONAL_11_CONSTEXPR T &value() & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1386) | TL_OPTIONAL_11_CONSTEXPR const T &value() const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1390) | TL_OPTIONAL_11_CONSTEXPR T &&value() && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1396) | TL_OPTIONAL_11_CONSTEXPR const T &&value() const && {
      method T (line 1404) | constexpr T value_or(U &&u) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 1412) | TL_OPTIONAL_11_CONSTEXPR T value_or(U &&u) && {
      method reset (line 1420) | void reset() noexcept {
    function swap (line 1565) | void swap(optional<T> &lhs,
    type detail (line 1570) | namespace detail {
      type is_trivially_copy_constructible (line 74) | struct is_trivially_copy_constructible
      type is_trivially_copy_constructible<std::vector<T, A>> (line 78) | struct is_trivially_copy_constructible<std::vector<T, A>>
      type conjunction (line 146) | struct conjunction : std::true_type {}
      type conjunction<B> (line 148) | struct conjunction<B> : B {}
      type is_pointer_to_non_const_member_func (line 162) | struct is_pointer_to_non_const_member_func : std::false_type {}
      type is_const_or_const_ref (line 183) | struct is_const_or_const_ref : std::false_type {}
      type is_const_or_const_ref<T const &> (line 185) | struct is_const_or_const_ref<T const &> : std::true_type {}
      type is_const_or_const_ref<T const> (line 187) | struct is_const_or_const_ref<T const> : std::true_type {}
      function invoke (line 201) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      function invoke (line 210) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      type invoke_result_impl (line 218) | struct invoke_result_impl
      type is_swappable (line 238) | struct is_swappable : std::true_type {}
      type is_nothrow_swappable (line 241) | struct is_nothrow_swappable : std::true_type {}
      type swap_adl_tests (line 244) | namespace swap_adl_tests {
        type tag (line 247) | struct tag {}
        type is_std_swap_noexcept (line 271) | struct is_std_swap_noexcept
        type is_std_swap_noexcept<T[N]> (line 277) | struct is_std_swap_noexcept<T[N]> : is_std_swap_noexcept<T> {}
        type is_adl_swap_noexcept (line 280) | struct is_adl_swap_noexcept
      type is_swappable (line 285) | struct is_swappable
      type is_swappable<T[N], T[N]> (line 294) | struct is_swappable<T[N], T[N]>
      type is_nothrow_swappable (line 303) | struct is_nothrow_swappable
      type voider (line 318) | struct voider {
      type is_optional_impl (line 326) | struct is_optional_impl : std::false_type {}
      type is_optional_impl<optional<T>> (line 328) | struct is_optional_impl<optional<T>> : std::true_type {}
      type returns_void_impl (line 341) | struct returns_void_impl
      type optional_storage_base (line 400) | struct optional_storage_base {
        method TL_OPTIONAL_11_CONSTEXPR (line 406) | TL_OPTIONAL_11_CONSTEXPR optional_storage_base(in_place_t, U &&... u)
        type dummy (line 416) | struct dummy {}
      type optional_storage_base<T, true> (line 427) | struct optional_storage_base<T, true> {
        type dummy (line 438) | struct dummy {}
      type optional_operations_base (line 450) | struct optional_operations_base : optional_storage_base<T> {
        method hard_reset (line 453) | void hard_reset() noexcept {
        method construct (line 459) | void construct(Args &&... args) noexcept {
        method assign (line 465) | void assign(Opt &&rhs) {
        method has_value (line 480) | bool has_value() const { return this->m_has_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 482) | TL_OPTIONAL_11_CONSTEXPR T &get() & { return this->m_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 483) | TL_OPTIONAL_11_CONSTEXPR const T &get() const & { return this->m_v...
        method TL_OPTIONAL_11_CONSTEXPR (line 484) | TL_OPTIONAL_11_CONSTEXPR T &&get() && { return std::move(this->m_v...
        method T (line 486) | constexpr const T &&get() const && { return std::move(this->m_valu...
      type optional_copy_base (line 493) | struct optional_copy_base : optional_operations_base<T> {
      type optional_copy_base<T, false> (line 499) | struct optional_copy_base<T, false> : optional_operations_base<T> {
        method optional_copy_base (line 502) | optional_copy_base() = default;
        method optional_copy_base (line 503) | optional_copy_base(const optional_copy_base &rhs)
        method optional_copy_base (line 512) | optional_copy_base(optional_copy_base &&rhs) = default;
        method optional_copy_base (line 513) | optional_copy_base &operator=(const optional_copy_base &rhs) = def...
        method optional_copy_base (line 514) | optional_copy_base &operator=(optional_copy_base &&rhs) = default;
      type optional_move_base (line 524) | struct optional_move_base : optional_copy_base<T> {
      type optional_move_base (line 529) | struct optional_move_base
      type optional_move_base<T, false> (line 532) | struct optional_move_base<T, false> : optional_copy_base<T> {
        method optional_move_base (line 535) | optional_move_base() = default;
        method optional_move_base (line 536) | optional_move_base(const optional_move_base &rhs) = default;
        method optional_move_base (line 538) | optional_move_base(optional_move_base &&rhs) noexcept(
        method optional_move_base (line 546) | optional_move_base &operator=(const optional_move_base &rhs) = def...
        method optional_move_base (line 547) | optional_move_base &operator=(optional_move_base &&rhs) = default;
      type optional_copy_assign_base (line 555) | struct optional_copy_assign_base : optional_move_base<T> {
      type optional_copy_assign_base<T, false> (line 560) | struct optional_copy_assign_base<T, false> : optional_move_base<T> {
        method optional_copy_assign_base (line 563) | optional_copy_assign_base() = default;
        method optional_copy_assign_base (line 564) | optional_copy_assign_base(const optional_copy_assign_base &rhs) = ...
        method optional_copy_assign_base (line 566) | optional_copy_assign_base(optional_copy_assign_base &&rhs) = default;
        method optional_copy_assign_base (line 567) | optional_copy_assign_base &operator=(const optional_copy_assign_ba...
        method optional_copy_assign_base (line 571) | optional_copy_assign_base &operator=(optional_copy_assign_base &&r...
      type optional_move_assign_base (line 585) | struct optional_move_assign_base : optional_copy_assign_base<T> {
      type optional_move_assign_base (line 590) | struct optional_move_assign_base
      type optional_move_assign_base<T, false> (line 594) | struct optional_move_assign_base<T, false> : optional_copy_assign_ba...
        method optional_move_assign_base (line 597) | optional_move_assign_base() = default;
        method optional_move_assign_base (line 598) | optional_move_assign_base(const optional_move_assign_base &rhs) = ...
        method optional_move_assign_base (line 600) | optional_move_assign_base(optional_move_assign_base &&rhs) = default;
        method optional_move_assign_base (line 602) | optional_move_assign_base &operator=(const optional_move_assign_ba...
        method optional_move_assign_base (line 605) | optional_move_assign_base &
      type optional_delete_ctor_base (line 619) | struct optional_delete_ctor_base {
        method optional_delete_ctor_base (line 620) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 621) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 622) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 623) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 625) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, true, false> (line 630) | struct optional_delete_ctor_base<T, true, false> {
        method optional_delete_ctor_base (line 631) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 632) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 633) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 634) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 636) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, true> (line 641) | struct optional_delete_ctor_base<T, false, true> {
        method optional_delete_ctor_base (line 642) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 643) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 644) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 645) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 647) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, false> (line 652) | struct optional_delete_ctor_base<T, false, false> {
        method optional_delete_ctor_base (line 653) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 654) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 655) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 656) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 658) | optional_delete_ctor_base &operator=(
      type optional_delete_assign_base (line 669) | struct optional_delete_assign_base {
        method optional_delete_assign_base (line 670) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 671) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 672) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 674) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 676) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, true, false> (line 681) | struct optional_delete_assign_base<T, true, false> {
        method optional_delete_assign_base (line 682) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 683) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 684) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 686) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 688) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, true> (line 693) | struct optional_delete_assign_base<T, false, true> {
        method optional_delete_assign_base (line 694) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 695) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 696) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 698) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 700) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, false> (line 705) | struct optional_delete_assign_base<T, false, false> {
        method optional_delete_assign_base (line 706) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 707) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 708) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 710) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 712) | optional_delete_assign_base &operator=(
      type i_am_secret (line 1571) | struct i_am_secret {}
      function optional_map_impl (line 1607) | constexpr auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1618) | auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1633) | constexpr auto optional_map_impl(Opt &&opt, F &&f) -> optional<Ret> {
      function optional_map_impl (line 1645) | auto optional_map_impl(Opt &&opt, F &&f) -> optional<monostate> {
    function make_optional (line 1580) | inline constexpr optional<Ret> make_optional(U &&v) {
    function make_optional (line 1585) | inline constexpr optional<T> make_optional(Args &&... args) {
    function make_optional (line 1589) | inline constexpr optional<T> make_optional(std::initializer_list<U> il,
    type detail (line 1600) | namespace detail {
      type is_trivially_copy_constructible (line 74) | struct is_trivially_copy_constructible
      type is_trivially_copy_constructible<std::vector<T, A>> (line 78) | struct is_trivially_copy_constructible<std::vector<T, A>>
      type conjunction (line 146) | struct conjunction : std::true_type {}
      type conjunction<B> (line 148) | struct conjunction<B> : B {}
      type is_pointer_to_non_const_member_func (line 162) | struct is_pointer_to_non_const_member_func : std::false_type {}
      type is_const_or_const_ref (line 183) | struct is_const_or_const_ref : std::false_type {}
      type is_const_or_const_ref<T const &> (line 185) | struct is_const_or_const_ref<T const &> : std::true_type {}
      type is_const_or_const_ref<T const> (line 187) | struct is_const_or_const_ref<T const> : std::true_type {}
      function invoke (line 201) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      function invoke (line 210) | constexpr auto invoke(Fn &&f, Args &&... args) noexcept(
      type invoke_result_impl (line 218) | struct invoke_result_impl
      type is_swappable (line 238) | struct is_swappable : std::true_type {}
      type is_nothrow_swappable (line 241) | struct is_nothrow_swappable : std::true_type {}
      type swap_adl_tests (line 244) | namespace swap_adl_tests {
        type tag (line 247) | struct tag {}
        type is_std_swap_noexcept (line 271) | struct is_std_swap_noexcept
        type is_std_swap_noexcept<T[N]> (line 277) | struct is_std_swap_noexcept<T[N]> : is_std_swap_noexcept<T> {}
        type is_adl_swap_noexcept (line 280) | struct is_adl_swap_noexcept
      type is_swappable (line 285) | struct is_swappable
      type is_swappable<T[N], T[N]> (line 294) | struct is_swappable<T[N], T[N]>
      type is_nothrow_swappable (line 303) | struct is_nothrow_swappable
      type voider (line 318) | struct voider {
      type is_optional_impl (line 326) | struct is_optional_impl : std::false_type {}
      type is_optional_impl<optional<T>> (line 328) | struct is_optional_impl<optional<T>> : std::true_type {}
      type returns_void_impl (line 341) | struct returns_void_impl
      type optional_storage_base (line 400) | struct optional_storage_base {
        method TL_OPTIONAL_11_CONSTEXPR (line 406) | TL_OPTIONAL_11_CONSTEXPR optional_storage_base(in_place_t, U &&... u)
        type dummy (line 416) | struct dummy {}
      type optional_storage_base<T, true> (line 427) | struct optional_storage_base<T, true> {
        type dummy (line 438) | struct dummy {}
      type optional_operations_base (line 450) | struct optional_operations_base : optional_storage_base<T> {
        method hard_reset (line 453) | void hard_reset() noexcept {
        method construct (line 459) | void construct(Args &&... args) noexcept {
        method assign (line 465) | void assign(Opt &&rhs) {
        method has_value (line 480) | bool has_value() const { return this->m_has_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 482) | TL_OPTIONAL_11_CONSTEXPR T &get() & { return this->m_value; }
        method TL_OPTIONAL_11_CONSTEXPR (line 483) | TL_OPTIONAL_11_CONSTEXPR const T &get() const & { return this->m_v...
        method TL_OPTIONAL_11_CONSTEXPR (line 484) | TL_OPTIONAL_11_CONSTEXPR T &&get() && { return std::move(this->m_v...
        method T (line 486) | constexpr const T &&get() const && { return std::move(this->m_valu...
      type optional_copy_base (line 493) | struct optional_copy_base : optional_operations_base<T> {
      type optional_copy_base<T, false> (line 499) | struct optional_copy_base<T, false> : optional_operations_base<T> {
        method optional_copy_base (line 502) | optional_copy_base() = default;
        method optional_copy_base (line 503) | optional_copy_base(const optional_copy_base &rhs)
        method optional_copy_base (line 512) | optional_copy_base(optional_copy_base &&rhs) = default;
        method optional_copy_base (line 513) | optional_copy_base &operator=(const optional_copy_base &rhs) = def...
        method optional_copy_base (line 514) | optional_copy_base &operator=(optional_copy_base &&rhs) = default;
      type optional_move_base (line 524) | struct optional_move_base : optional_copy_base<T> {
      type optional_move_base (line 529) | struct optional_move_base
      type optional_move_base<T, false> (line 532) | struct optional_move_base<T, false> : optional_copy_base<T> {
        method optional_move_base (line 535) | optional_move_base() = default;
        method optional_move_base (line 536) | optional_move_base(const optional_move_base &rhs) = default;
        method optional_move_base (line 538) | optional_move_base(optional_move_base &&rhs) noexcept(
        method optional_move_base (line 546) | optional_move_base &operator=(const optional_move_base &rhs) = def...
        method optional_move_base (line 547) | optional_move_base &operator=(optional_move_base &&rhs) = default;
      type optional_copy_assign_base (line 555) | struct optional_copy_assign_base : optional_move_base<T> {
      type optional_copy_assign_base<T, false> (line 560) | struct optional_copy_assign_base<T, false> : optional_move_base<T> {
        method optional_copy_assign_base (line 563) | optional_copy_assign_base() = default;
        method optional_copy_assign_base (line 564) | optional_copy_assign_base(const optional_copy_assign_base &rhs) = ...
        method optional_copy_assign_base (line 566) | optional_copy_assign_base(optional_copy_assign_base &&rhs) = default;
        method optional_copy_assign_base (line 567) | optional_copy_assign_base &operator=(const optional_copy_assign_ba...
        method optional_copy_assign_base (line 571) | optional_copy_assign_base &operator=(optional_copy_assign_base &&r...
      type optional_move_assign_base (line 585) | struct optional_move_assign_base : optional_copy_assign_base<T> {
      type optional_move_assign_base (line 590) | struct optional_move_assign_base
      type optional_move_assign_base<T, false> (line 594) | struct optional_move_assign_base<T, false> : optional_copy_assign_ba...
        method optional_move_assign_base (line 597) | optional_move_assign_base() = default;
        method optional_move_assign_base (line 598) | optional_move_assign_base(const optional_move_assign_base &rhs) = ...
        method optional_move_assign_base (line 600) | optional_move_assign_base(optional_move_assign_base &&rhs) = default;
        method optional_move_assign_base (line 602) | optional_move_assign_base &operator=(const optional_move_assign_ba...
        method optional_move_assign_base (line 605) | optional_move_assign_base &
      type optional_delete_ctor_base (line 619) | struct optional_delete_ctor_base {
        method optional_delete_ctor_base (line 620) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 621) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 622) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 623) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 625) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, true, false> (line 630) | struct optional_delete_ctor_base<T, true, false> {
        method optional_delete_ctor_base (line 631) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 632) | optional_delete_ctor_base(const optional_delete_ctor_base &) = def...
        method optional_delete_ctor_base (line 633) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 634) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 636) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, true> (line 641) | struct optional_delete_ctor_base<T, false, true> {
        method optional_delete_ctor_base (line 642) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 643) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 644) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 645) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 647) | optional_delete_ctor_base &operator=(
      type optional_delete_ctor_base<T, false, false> (line 652) | struct optional_delete_ctor_base<T, false, false> {
        method optional_delete_ctor_base (line 653) | optional_delete_ctor_base() = default;
        method optional_delete_ctor_base (line 654) | optional_delete_ctor_base(const optional_delete_ctor_base &) = del...
        method optional_delete_ctor_base (line 655) | optional_delete_ctor_base(optional_delete_ctor_base &&) noexcept =...
        method optional_delete_ctor_base (line 656) | optional_delete_ctor_base &operator=(const optional_delete_ctor_ba...
        method optional_delete_ctor_base (line 658) | optional_delete_ctor_base &operator=(
      type optional_delete_assign_base (line 669) | struct optional_delete_assign_base {
        method optional_delete_assign_base (line 670) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 671) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 672) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 674) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 676) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, true, false> (line 681) | struct optional_delete_assign_base<T, true, false> {
        method optional_delete_assign_base (line 682) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 683) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 684) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 686) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 688) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, true> (line 693) | struct optional_delete_assign_base<T, false, true> {
        method optional_delete_assign_base (line 694) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 695) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 696) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 698) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 700) | optional_delete_assign_base &operator=(
      type optional_delete_assign_base<T, false, false> (line 705) | struct optional_delete_assign_base<T, false, false> {
        method optional_delete_assign_base (line 706) | optional_delete_assign_base() = default;
        method optional_delete_assign_base (line 707) | optional_delete_assign_base(const optional_delete_assign_base &) =...
        method optional_delete_assign_base (line 708) | optional_delete_assign_base(optional_delete_assign_base &&) noexce...
        method optional_delete_assign_base (line 710) | optional_delete_assign_base &operator=(
        method optional_delete_assign_base (line 712) | optional_delete_assign_base &operator=(
      type i_am_secret (line 1571) | struct i_am_secret {}
      function optional_map_impl (line 1607) | constexpr auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1618) | auto optional_map_impl(Opt &&opt, F &&f) {
      function optional_map_impl (line 1633) | constexpr auto optional_map_impl(Opt &&opt, F &&f) -> optional<Ret> {
      function optional_map_impl (line 1645) | auto optional_map_impl(Opt &&opt, F &&f) -> optional<monostate> {
    class optional<T &> (line 1659) | class optional<T &> {
      method and_then (line 1671) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) & {
      method and_then (line 1681) | TL_OPTIONAL_11_CONSTEXPR auto and_then(F &&f) && {
      method and_then (line 1691) | constexpr auto and_then(F &&f) const & {
      method and_then (line 1702) | constexpr auto and_then(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1715) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &> and_then(F ...
      method TL_OPTIONAL_11_CONSTEXPR (line 1725) | TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T &> and_then(
      method and_then (line 1736) | constexpr detail::invoke_result_t<F, const T &> and_then(F &&f) cons...
      method and_then (line 1747) | constexpr detail::invoke_result_t<F, const T &> and_then(F &&f) cons...
      method map (line 1762) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) & {
      method map (line 1767) | TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) && {
      method map (line 1772) | constexpr auto map(F &&f) const & {
      method map (line 1777) | constexpr auto map(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1783) | TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(
      method TL_OPTIONAL_11_CONSTEXPR (line 1790) | TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(
      method map (line 1797) | constexpr decltype(detail::optional_map_impl(
      method map (line 1805) | constexpr decltype(detail::optional_map_impl(
      method transform (line 1817) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) & {
      method transform (line 1822) | TL_OPTIONAL_11_CONSTEXPR auto transform(F &&f) && {
      method transform (line 1827) | constexpr auto transform(F &&f) const & {
      method transform (line 1832) | constexpr auto transform(F &&f) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 1838) | TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(
      method TL_OPTIONAL_11_CONSTEXPR (line 1847) | TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(
      method transform (line 1854) | constexpr decltype(detail::optional_map_impl(
      method transform (line 1862) | constexpr decltype(detail::optional_map_impl(
      method or_else (line 1885) | optional<T> or_else(F &&f) && {
      method or_else (line 1898) | optional<T> or_else(F &&f) const & {
      method or_else (line 1912) | optional<T> or_else(F &&f) const && {
      method or_else (line 1920) | optional<T> or_else(F &&f) const && {
      method U (line 1927) | U map_or(F &&f, U &&u) & {
      method U (line 1933) | U map_or(F &&f, U &&u) && {
      method U (line 1940) | U map_or(F &&f, U &&u) const & {
      method U (line 1947) | U map_or(F &&f, U &&u) const && {
      method map_or_else (line 1957) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) & {
      method map_or_else (line 1963) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) && {
      method map_or_else (line 1970) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const & {
      method map_or_else (line 1977) | detail::invoke_result_t<U> map_or_else(F &&f, U &&u) const && {
      method conjunction (line 1986) | constexpr optional<typename std::decay<U>::type> conjunction(U &&u) ...
      method TL_OPTIONAL_11_CONSTEXPR (line 1992) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) & {
      method optional (line 1996) | constexpr optional disjunction(const optional &rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 2000) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(const optional &rhs) && {
      method optional (line 2005) | constexpr optional disjunction(const optional &rhs) const && {
      method TL_OPTIONAL_11_CONSTEXPR (line 2010) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) & {
      method optional (line 2014) | constexpr optional disjunction(optional &&rhs) const & {
      method TL_OPTIONAL_11_CONSTEXPR (line 2018) | TL_OPTIONAL_11_CONSTEXPR optional disjunction(optional &&rhs) && {
      method optional (line 2023) | constexpr optional disjunction(optional &&rhs) const && {
      method optional (line 2029) | optional take() {
      method optional (line 2038) | constexpr optional() noexcept : m_value(nullptr) {}
      method optional (line 2040) | constexpr optional(nullopt_t) noexcept : m_value(nullptr) {}
      method TL_OPTIONAL_11_CONSTEXPR (line 2046) | TL_OPTIONAL_11_CONSTEXPR optional(const optional &rhs) noexcept = de...
      method TL_OPTIONAL_11_CONSTEXPR (line 2052) | TL_OPTIONAL_11_CONSTEXPR optional(optional &&rhs) = default;
      method optional (line 2058) | constexpr optional(U &&u) noexcept : m_value(std::addressof(u)) {
      method optional (line 2064) | constexpr explicit optional(const optional<U> &rhs) noexcept
      method optional (line 2073) | optional &operator=(nullopt_t) noexcept {
      method optional (line 2082) | optional &operator=(const optional &rhs) = default;
      method optional (line 2088) | optional &operator=(U &&u) {
      method optional (line 2100) | optional &operator=(const optional<U> &rhs) noexcept {
      method optional (line 2109) | optional &emplace(U &&u) noexcept {
      method swap (line 2113) | void swap(optional &rhs) noexcept { std::swap(m_value, rhs.m_value); }
      method T (line 2116) | constexpr const T *operator->() const noexcept { return m_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 2118) | TL_OPTIONAL_11_CONSTEXPR T *operator->() noexcept { return m_value; }
      method TL_OPTIONAL_11_CONSTEXPR (line 2121) | TL_OPTIONAL_11_CONSTEXPR T &operator*() noexcept { return *m_value; }
      method T (line 2123) | constexpr const T &operator*() const noexcept { return *m_value; }
      method has_value (line 2125) | constexpr bool has_value() const noexcept { return m_value != nullpt...
      method TL_OPTIONAL_11_CONSTEXPR (line 2133) | TL_OPTIONAL_11_CONSTEXPR T &value() {
      method TL_OPTIONAL_11_CONSTEXPR (line 2137) | TL_OPTIONAL_11_CONSTEXPR const T &value() const {
      method T (line 2144) | constexpr T value_or(U &&u) const &noexcept {
      method TL_OPTIONAL_11_CONSTEXPR (line 2153) | TL_OPTIONAL_11_CONSTEXPR T value_or(U &&u) && noexcept {
      method reset (line 2161) | void reset() noexcept { m_value = nullptr; }
  type conjunction<B, Bs...> (line 150) | struct conjunction<B, Bs...>
  type is_pointer_to_non_const_member_func<Ret (T::*)(Args...)> (line 164) | struct is_pointer_to_non_const_member_func<Ret (T::*)(Args...)>
  type is_pointer_to_non_const_member_func<Ret (T::*)(Args...) &> (line 167) | struct is_pointer_to_non_const_member_func<Ret (T::*)(Args...) &>
  type is_pointer_to_non_const_member_func<Ret (T::*)(Args...) &&> (line 170) | struct is_pointer_to_non_const_member_func<Ret (T::*)(Args...) &&>
  type is_pointer_to_non_const_member_func<Ret (T::*)(Args...) volatile> (line 173) | struct is_pointer_to_non_const_member_func<Ret (T::*)(Args...) volatile>
  type is_pointer_to_non_const_member_func<Ret (T::*)(Args...) volatile &> (line 176) | struct is_pointer_to_non_const_member_func<Ret (T::*)(Args...) volatile &>
  type is_pointer_to_non_const_member_func<Ret (T::*)(Args...) volatile &&> (line 179) | struct is_pointer_to_non_const_member_func<Ret (T::*)(Args...) volatile &&>
  type invoke_result_impl<
    F,
    decltype(detail::invoke(std::declval<F>(), std::declval<Us>()...), void()),
    Us...> (line 221) | struct invoke_result_impl<
  type returns_void_impl<F, void_t<invoke_result_t<F, U...>>, U...> (line 343) | struct returns_void_impl<F, void_t<invoke_result_t<F, U...>>, U...>
  type std (line 2170) | namespace std {
    type hash<tl::optional<T>> (line 2173) | struct hash<tl::optional<T>> {

FILE: audio/paddleaudio/src/pybind/kaldi/feature_common.h
  function namespace (line 21) | namespace paddleaudio {

FILE: audio/paddleaudio/src/pybind/kaldi/feature_common_inl.h
  function namespace (line 16) | namespace paddleaudio {

FILE: audio/paddleaudio/src/pybind/kaldi/kaldi_feature.cc
  type paddleaudio (line 18) | namespace paddleaudio {
    type kaldi (line 19) | namespace kaldi {
      function InitFbank (line 21) | bool InitFbank(
      function ComputeFbankStreaming (line 38) | py::array_t<float> ComputeFbankStreaming(const py::array_t<float>& w...
      function ComputeFbank (line 43) | py::array_t<float> ComputeFbank(
      function ResetFbank (line 54) | void ResetFbank() {

FILE: audio/paddleaudio/src/pybind/kaldi/kaldi_feature.h
  function namespace (line 26) | namespace paddleaudio {

FILE: audio/paddleaudio/src/pybind/kaldi/kaldi_feature_wrapper.cc
  type paddleaudio (line 17) | namespace paddleaudio {
    type kaldi (line 18) | namespace kaldi {
      function KaldiFeatureWrapper (line 20) | KaldiFeatureWrapper* KaldiFeatureWrapper::GetInstance() {

FILE: audio/paddleaudio/src/pybind/kaldi/kaldi_feature_wrapper.h
  function namespace (line 20) | namespace paddleaudio {

FILE: audio/paddleaudio/src/pybind/pybind.cpp
  type pybind11 (line 18) | namespace pybind11 { namespace detail {
    type detail (line 18) | namespace detail {
      type type_caster<tl::optional<T>> (line 20) | struct type_caster<tl::optional<T>> : optional_caster<tl::optional<T...
  function PYBIND11_MODULE (line 24) | PYBIND11_MODULE(_paddleaudio, m) {

FILE: audio/paddleaudio/src/pybind/sox/effects.cpp
  type paddleaudio::sox_effects (line 12) | namespace paddleaudio::sox_effects {
    function apply_effects_fileobj (line 35) | auto apply_effects_fileobj(
    type SoxEffectsResourceState (line 128) | enum SoxEffectsResourceState { NotInitialized, Initialized, ShutDown }
    function initialize_sox_effects (line 134) | void initialize_sox_effects() {
    function shutdown_sox_effects (line 152) | void shutdown_sox_effects() {
    function apply_effects_tensor (line 170) | auto apply_effects_tensor(
    function apply_effects_file (line 208) | auto apply_effects_file(

FILE: audio/paddleaudio/src/pybind/sox/effects.h
  function namespace (line 9) | namespace paddleaudio::sox_effects {

FILE: audio/paddleaudio/src/pybind/sox/effects_chain.cpp
  type paddleaudio::sox_effects_chain (line 11) | namespace paddleaudio::sox_effects_chain {
    type TensorInputPriv (line 21) | struct TensorInputPriv {
    type TensorOutputPriv (line 28) | struct TensorOutputPriv {
    type FileOutputPriv (line 31) | struct FileOutputPriv {
    function tensor_input_drain (line 36) | int tensor_input_drain(sox_effect_t* effp, sox_sample_t* obuf, size_t*...
    function tensor_output_flow (line 142) | int tensor_output_flow(
    function file_output_flow (line 156) | int file_output_flow(
    function sox_effect_handler_t (line 178) | sox_effect_handler_t* get_tensor_input_handler() {
    function sox_effect_handler_t (line 193) | sox_effect_handler_t* get_tensor_output_handler() {
    function sox_effect_handler_t (line 208) | sox_effect_handler_t* get_file_output_handler() {
    type FileObjInputPriv (line 374) | struct FileObjInputPriv {
    type FileObjOutputPriv (line 382) | struct FileObjOutputPriv {
    function fileobj_input_drain (line 391) | auto fileobj_input_drain(sox_effect_t* effp, sox_sample_t* obuf, size_...
    function fileobj_output_flow (line 488) | auto fileobj_output_flow(
    function get_fileobj_input_handler (line 526) | auto get_fileobj_input_handler() -> sox_effect_handler_t* {
    function get_fileobj_output_handler (line 541) | auto get_fileobj_output_handler() -> sox_effect_handler_t* {

FILE: audio/paddleaudio/src/pybind/sox/effects_chain.h
  function namespace (line 8) | namespace paddleaudio::sox_effects_chain {

FILE: audio/paddleaudio/src/pybind/sox/io.cpp
  type paddleaudio (line 12) | namespace paddleaudio {
    type sox_io (line 13) | namespace sox_io {
      function get_info_file (line 15) | auto get_info_file(const std::string &path,
      function get_effects (line 35) | std::vector<std::vector<std::string>> get_effects(
      function get_info_fileobj (line 64) | auto get_info_fileobj(py::object fileobj,
      function load_audio_fileobj (line 97) | tl::optional<std::tuple<py::array, int64_t>> load_audio_fileobj(
      function load_audio_file (line 109) | tl::optional<std::tuple<py::array, int64_t>> load_audio_file(
      function save_audio_file (line 121) | void save_audio_file(const std::string& path,
      type AutoReleaseBuffer (line 183) | struct AutoReleaseBuffer {
        method AutoReleaseBuffer (line 187) | AutoReleaseBuffer() : ptr(nullptr), size(0) {}
        method AutoReleaseBuffer (line 188) | AutoReleaseBuffer(const AutoReleaseBuffer& other) = delete;
        method AutoReleaseBuffer (line 189) | AutoReleaseBuffer(AutoReleaseBuffer&& other) = delete;
      function save_audio_fileobj (line 201) | void save_audio_fileobj(

FILE: audio/paddleaudio/src/pybind/sox/io.h
  function namespace (line 8) | namespace paddleaudio {

FILE: audio/paddleaudio/src/pybind/sox/types.cpp
  type paddleaudio (line 7) | namespace paddleaudio {
    type sox_utils (line 8) | namespace sox_utils {
      function Format (line 10) | Format get_format_from_string(const std::string& format) {
      function to_string (line 36) | std::string to_string(Encoding v) {
      function Encoding (line 67) | Encoding get_encoding_from_option(const tl::optional<std::string> en...
      function BitDepth (line 86) | BitDepth get_bit_depth_from_option(const tl::optional<int64_t> bit_d...
      function get_encoding (line 109) | std::string get_encoding(sox_encoding_t encoding) {

FILE: audio/paddleaudio/src/pybind/sox/types.h
  type class (line 10) | enum class
  function Encoding (line 25) | enum class Encoding {

FILE: audio/paddleaudio/src/pybind/sox/utils.cpp
  type paddleaudio (line 9) | namespace paddleaudio {
    type sox_utils (line 10) | namespace sox_utils {
      function read_fileobj (line 12) | auto read_fileobj(py::object *fileobj, const uint64_t size, char *bu...
      function set_seed (line 40) | void set_seed(const int64_t seed) {
      function set_verbosity (line 44) | void set_verbosity(const int64_t verbosity) {
      function set_use_threads (line 48) | void set_use_threads(const bool use_threads) {
      function set_buffer_size (line 52) | void set_buffer_size(const int64_t buffer_size) {
      function get_buffer_size (line 56) | int64_t get_buffer_size() {
      function list_effects (line 60) | std::vector<std::vector<std::string>> list_effects() {
      function list_write_formats (line 76) | std::vector<std::string> list_write_formats() {
      function list_read_formats (line 88) | std::vector<std::string> list_read_formats() {
      function sox_format_t (line 105) | sox_format_t* SoxFormat::operator->() const noexcept {
      function validate_input_file (line 119) | void validate_input_file(const SoxFormat& sf, const std::string& pat...
      function validate_input_memfile (line 129) | void validate_input_memfile(const SoxFormat &sf) {
      function validate_input_tensor (line 133) | void validate_input_tensor(const py::array tensor) {
      function get_dtype (line 146) | py::dtype get_dtype(
      function convert_to_tensor (line 173) | py::array convert_to_tensor(
      function get_filetype (line 248) | const std::string get_filetype(const std::string path) {
      function get_save_encoding_for_wav (line 256) | std::tuple<sox_encoding_t, unsigned> get_save_encoding_for_wav(
      function get_save_encoding (line 339) | std::tuple<sox_encoding_t, unsigned> get_save_encoding(
      function get_precision (line 443) | unsigned get_precision(const std::string filetype, py::dtype dtype) {
      function sox_signalinfo_t (line 480) | sox_signalinfo_t get_signalinfo(
      function sox_encodinginfo_t (line 493) | sox_encodinginfo_t get_tensor_encodinginfo(py::dtype dtype) {
      function sox_encodinginfo_t (line 532) | sox_encodinginfo_t get_encodinginfo_for_save(

FILE: audio/paddleaudio/src/pybind/sox/utils.h
  function namespace (line 11) | namespace paddleaudio {

FILE: audio/paddleaudio/src/utils.cpp
  type paddleaudio (line 3) | namespace paddleaudio {
    function is_sox_available (line 7) | bool is_sox_available() {
    function is_kaldi_available (line 15) | bool is_kaldi_available() {
    function is_ffmpeg_available (line 25) | bool is_ffmpeg_available() {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-fbank.cc
  type knf (line 27) | namespace knf {
    function Sqrt (line 29) | static void Sqrt(float *in_out, int32_t n) {
    function MelBanks (line 56) | const MelBanks *FbankComputer::GetMelBanks(float vtln_warp) {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-fbank.h
  function namespace (line 30) | namespace knf {
  function class (line 77) | class FbankComputer {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-functions.cc
  type knf (line 26) | namespace knf {
    function ComputePowerSpectrum (line 28) | void ComputePowerSpectrum(std::vector<float> *complex_fft) {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-functions.h
  function namespace (line 24) | namespace knf {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-window.cc
  type knf (line 16) | namespace knf {
    function FirstSampleOfFrame (line 63) | int64_t FirstSampleOfFrame(int32_t frame, const FrameExtractionOptions...
    function NumFrames (line 74) | int32_t NumFrames(int64_t num_samples, const FrameExtractionOptions &o...
    function ExtractWindow (line 119) | void ExtractWindow(int64_t sample_offset, const std::vector<float> &wave,
    function RemoveDcOffset (line 177) | static void RemoveDcOffset(float *d, int32_t n) {
    function InnerProduct (line 190) | float InnerProduct(const float *a, const float *b, int32_t n) {
    function Preemphasize (line 198) | static void Preemphasize(float *d, int32_t n, float preemph_coeff) {
    function ProcessWindow (line 211) | void ProcessWindow(const FrameExtractionOptions &opts,

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-window.h
  function namespace (line 16) | namespace knf {
  function class (line 86) | class FeatureWindowFunction {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/fftsg.c
  function cdft (line 288) | void cdft(int n, int isgn, double *a, int *ip, double *w) {
  function rdft (line 307) | void rdft(int n, int isgn, double *a, int *ip, double *w) {
  function ddct (line 350) | void ddct(int n, int isgn, double *a, int *ip, double *w) {
  function ddst (line 405) | void ddst(int n, int isgn, double *a, int *ip, double *w) {
  function dfct (line 460) | void dfct(int n, double *a, double *t, int *ip, double *w) {
  function dfst (line 552) | void dfst(int n, double *a, double *t, int *ip, double *w) {
  function makewt (line 640) | void makewt(int nw, int *ip, double *w) {
  function makeipt (line 700) | void makeipt(int nw, int *ip) {
  function makect (line 719) | void makect(int nc, int *ip, double *c) {
  function cftfsub (line 799) | void cftfsub(int n, double *a, int *ip, int nw, double *w) {
  function cftbsub (line 846) | void cftbsub(int n, double *a, int *ip, int nw, double *w) {
  function bitrv2 (line 893) | void bitrv2(int n, int *ip, double *a) {
  function bitrv2conj (line 1239) | void bitrv2conj(int n, int *ip, double *a) {
  function bitrv216 (line 1593) | void bitrv216(double *a) {
  function bitrv216neg (line 1648) | void bitrv216neg(double *a) {
  function bitrv208 (line 1716) | void bitrv208(double *a) {
  function bitrv208neg (line 1738) | void bitrv208neg(double *a) {
  function cftf1st (line 1772) | void cftf1st(int n, double *a, double *w) {
  function cftb1st (line 1976) | void cftb1st(int n, double *a, double *w) {
  type cdft_arg_st (line 2181) | struct cdft_arg_st {
  type cdft_arg_t (line 2188) | typedef struct cdft_arg_st cdft_arg_t;
  function cftrec4_th (line 2191) | void cftrec4_th(int n, double *a, int nw, double *w) {
  function cftrec4 (line 2283) | void cftrec4(int n, double *a, int nw, double *w) {
  function cfttree (line 2304) | int cfttree(int n, int j, int k, double *a, int nw, double *w) {
  function cftleaf (line 2338) | void cftleaf(int n, int isplt, double *a, int nw, double *w) {
  function cftmdl1 (line 2402) | void cftmdl1(int n, double *a, double *w) {
  function cftmdl2 (line 2511) | void cftmdl2(int n, double *a, double *w) {
  function cftfx41 (line 2644) | void cftfx41(int n, double *a, int nw, double *w) {
  function cftf161 (line 2664) | void cftf161(double *a, double *w) {
  function cftf162 (line 2820) | void cftf162(double *a, double *w) {
  function cftf081 (line 3000) | void cftf081(double *a, double *w) {
  function cftf082 (line 3060) | void cftf082(double *a, double *w) {
  function cftf040 (line 3130) | void cftf040(double *a) {
  function cftb040 (line 3152) | void cftb040(double *a) {
  function cftx020 (line 3174) | void cftx020(double *a) {
  function rftfsub (line 3186) | void rftfsub(int n, double *a, int nc, double *c) {
  function rftbsub (line 3210) | void rftbsub(int n, double *a, int nc, double *c) {
  function dctsub (line 3234) | void dctsub(int n, double *a, int nc, double *c) {
  function dstsub (line 3254) | void dstsub(int n, double *a, int nc, double *c) {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/log.cc
  type knf (line 41) | namespace knf {
    function GetDateTimeStr (line 43) | std::string GetDateTimeStr() {
    function LocateSymbolRange (line 51) | static bool LocateSymbolRange(const std::string &trace_name, std::size...
    function Demangle (line 72) | static std::string Demangle(const std::string &trace_name) {
    function GetStackTrace (line 104) | std::string GetStackTrace() {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/log.h
  function namespace (line 30) | namespace knf {
  function class (line 268) | class Voidifier {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/mel-computations.cc
  type knf (line 28) | namespace knf {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/mel-computations.h
  function namespace (line 27) | namespace knf {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/rfft.cc
  type knf (line 33) | namespace knf {
    class Rfft::RfftImpl (line 34) | class Rfft::RfftImpl {
      method RfftImpl (line 36) | explicit RfftImpl(int32_t n) : n_(n), ip_(2 + std::sqrt(n / 2)), w_(...
      method Compute (line 40) | void Compute(float *in_out) {
      method Compute (line 48) | void Compute(double *in_out) {

FILE: audio/paddleaudio/third_party/kaldi-native-fbank/csrc/rfft.h
  function namespace (line 24) | namespace knf {

FILE: audio/paddleaudio/utils/download.py
  function decompress (line 32) | def decompress(file: str):
  function download_and_decompress (line 40) | def download_and_decompress(archives: List[Dict[str, str]],
  function load_state_dict_from_url (line 56) | def load_state_dict_from_url(url: str, path: str, md5: str=None):

FILE: audio/paddleaudio/utils/env.py
  function _get_user_home (line 31) | def _get_user_home():
  function _get_ppaudio_home (line 35) | def _get_ppaudio_home():
  function _get_sub_home (line 50) | def _get_sub_home(directory):

FILE: audio/paddleaudio/utils/error.py
  class ParameterError (line 18) | class ParameterError(Exception):

FILE: audio/paddleaudio/utils/log.py
  class Logger (line 59) | class Logger(object):
    method __init__ (line 66) | def __init__(self, name: str=None):
    method disable (line 90) | def disable(self):
    method enable (line 93) | def enable(self):
    method is_enable (line 97) | def is_enable(self) -> bool:
    method __call__ (line 100) | def __call__(self, log_level: str, msg: str):
    method use_terminator (line 107) | def use_terminator(self, terminator: str):
    method processing (line 114) | def processing(self, msg: str, interval: float=0.1):

FILE: audio/paddleaudio/utils/numeric.py
  function pcm16to32 (line 21) | def pcm16to32(audio: np.ndarray) -> np.ndarray:
  function _safe_cast (line 37) | def _safe_cast(y: np.ndarray, dtype: Union[type, str]) -> np.ndarray:
  function depth_convert (line 55) | def depth_convert(y: np.ndarray, dtype: Union[type, str]) -> np.ndarray:

FILE: audio/paddleaudio/utils/sox_utils.py
  function set_seed (line 9) | def set_seed(seed: int):
  function set_verbosity (line 22) | def set_verbosity(verbosity: int):
  function set_buffer_size (line 40) | def set_buffer_size(buffer_size: int):
  function set_use_threads (line 53) | def set_use_threads(use_threads: bool):
  function list_effects (line 67) | def list_effects() -> Dict[str, str]:
  function list_read_formats (line 77) | def list_read_formats() -> List[str]:
  function list_write_formats (line 87) | def list_write_formats() -> List[str]:
  function get_buffer_size (line 97) | def get_buffer_size() -> int:

FILE: audio/paddleaudio/utils/tensor_utils.py
  function has_tensor (line 27) | def has_tensor(val):
  function pad_sequence (line 41) | def pad_sequence(sequences: List[paddle.Tensor],
  function add_sos_eos (line 116) | def add_sos_eos(ys_pad: paddle.Tensor, sos: int, eos: int,
  function th_accuracy (line 169) | def th_accuracy(pad_outputs: paddle.Tensor,

FILE: audio/paddleaudio/utils/time.py
  class Timer (line 23) | class Timer(object):
    method __init__ (line 26) | def __init__(self, total_step: int):
    method start (line 32) | def start(self):
    method stop (line 36) | def stop(self):
    method count (line 40) | def count(self) -> int:
    method timing (line 46) | def timing(self) -> float:
    method is_running (line 54) | def is_running(self) -> bool:
    method eta (line 58) | def eta(self) -> str:
  function seconds_to_hms (line 66) | def seconds_to_hms(seconds: int) -> str:

FILE: audio/setup.py
  function check_call (line 60) | def check_call(cmd: str, shell=False, executable=None):
  function check_output (line 74) | def check_output(cmd: Union[str, List[str], Tuple[str]], shell=False):
  function _run_cmd (line 93) | def _run_cmd(cmd):
  function pushd (line 103) | def pushd(new_dir):
  function read (line 112) | def read(*names, **kwargs):
  function _remove (line 119) | def _remove(files: str):
  function _post_install (line 127) | def _post_install(install_lib_dir):
  class DevelopCommand (line 131) | class DevelopCommand(develop):
    method run (line 132) | def run(self):
  class TestCommand (line 138) | class TestCommand(test):
    method finalize_options (line 139) | def finalize_options(self):
    method run_tests (line 144) | def run_tests(self):
    method run_benchmark (line 149) | def run_benchmark(self):
  class UploadCommand (line 155) | class UploadCommand(Command):
    method initialize_options (line 159) | def initialize_options(self):
    method finalize_options (line 162) | def finalize_options(self):
    method run (line 165) | def run(self):
  function _get_version (line 179) | def _get_version(sha):
  function _make_version_file (line 188) | def _make_version_file(version, sha):
  function _rm_version (line 195) | def _rm_version():
  class clean (line 206) | class clean(distutils.command.clean.clean):
    method run (line 207) | def run(self):
  function main (line 225) | def main():

FILE: audio/tests/backends/base.py
  class BackendTest (line 22) | class BackendTest(unittest.TestCase):
    method setUp (line 23) | def setUp(self):
    method initWavInput (line 26) | def initWavInput(self):
    method initParams (line 33) | def initParams(self):

FILE: audio/tests/backends/common.py
  function get_encoding (line 2) | def get_encoding(ext, dtype):
  function get_bit_depth (line 17) | def get_bit_depth(dtype):
  function get_bits_per_sample (line 26) | def get_bits_per_sample(ext, dtype):

FILE: audio/tests/backends/soundfile/base.py
  class BackendTest (line 22) | class BackendTest(unittest.TestCase):
    method setUp (line 23) | def setUp(self):
    method initWavInput (line 26) | def initWavInput(self):
    method initParams (line 33) | def initParams(self):

FILE: audio/tests/backends/soundfile/common.py
  function name_func (line 8) | def name_func(func, _, params):
  function dtype2subtype (line 12) | def dtype2subtype(dtype):
  function skipIfFormatNotSupported (line 23) | def skipIfFormatNotSupported(fmt):
  function parameterize (line 33) | def parameterize(*params):
  function fetch_wav_subtype (line 38) | def fetch_wav_subtype(dtype, encoding, bits_per_sample):
  function get_encoding (line 59) | def get_encoding(ext, dtype):
  function get_bit_depth (line 74) | def get_bit_depth(dtype):
  function get_bits_per_sample (line 83) | def get_bits_per_sample(ext, dtype):

FILE: audio/tests/backends/soundfile/info_test.py
  class TestInfo (line 20) | class TestInfo(TempDirMixin, unittest.TestCase):
    method test_wav (line 25) | def test_wav(self, dtype, sample_rate, num_channels):
    method test_flac (line 44) | def test_flac(self, sample_rate, num_channels):
    method test_sphere (line 90) | def test_sphere(self, sample_rate, num_channels, subtype_and_bit_depth):
    method test_unknown_subtype_warning (line 107) | def test_unknown_subtype_warning(self):
  class TestFileObject (line 133) | class TestFileObject(TempDirMixin, unittest.TestCase):
    method _test_fileobj (line 134) | def _test_fileobj(self, ext, subtype, bits_per_sample):
    method test_fileobj_wav (line 154) | def test_fileobj_wav(self):
    method test_fileobj_flac (line 159) | def test_fileobj_flac(self):
    method _test_tarobj (line 163) | def _test_tarobj(self, ext, subtype, bits_per_sample):
    method test_tarobj_wav (line 188) | def test_tarobj_wav(self):
    method test_tarobj_flac (line 193) | def test_tarobj_flac(self):

FILE: audio/tests/backends/soundfile/load_test.py
  function _get_mock_path (line 22) | def _get_mock_path(
  function _get_mock_params (line 31) | def _get_mock_params(path: str):
  class SoundFileMock (line 43) | class SoundFileMock:
    method __init__ (line 44) | def __init__(self, path, mode):
    method samplerate (line 51) | def samplerate(self):
    method format (line 55) | def format(self):
    method subtype (line 66) | def subtype(self):
    method _prepare_read (line 71) | def _prepare_read(self, start, stop, frames):
    method read (line 76) | def read(self, frames, dtype, always_2d):
    method __enter__ (line 86) | def __enter__(self):
    method __exit__ (line 89) | def __exit__(self, *args, **kwargs):
  class MockedLoadTest (line 93) | class MockedLoadTest(unittest.TestCase):
    method assert_dtype (line 94) | def assert_dtype(self, ext, dtype, sample_rate, num_channels, normalize,
    method test_wav (line 114) | def test_wav(self, dtype, sample_rate, num_channels, normalize,
    method test_sphere (line 126) | def test_sphere(self, dtype, sample_rate, num_channels, normalize,
    method test_ogg (line 133) | def test_ogg(self, sample_rate, num_channels, normalize, channels_first):
    method test_flac (line 139) | def test_flac(self, sample_rate, num_channels, normalize, channels_fir...
  class LoadTestBase (line 145) | class LoadTestBase(TempDirMixin, unittest.TestCase):
    method assert_wav (line 146) | def assert_wav(
    method assert_sphere (line 174) | def assert_sphere(
    method assert_flac (line 198) | def assert_flac(
  class TestLoad (line 222) | class TestLoad(LoadTestBase):
    method test_wav (line 231) | def test_wav(self, dtype, sample_rate, num_channels, normalize,
    method test_wav_large (line 242) | def test_wav_large(self, dtype, sample_rate, num_channels, normalize):
    method test_multiple_channels (line 249) | def test_multiple_channels(self, dtype, num_channels, channels_first):
  class TestLoadFormat (line 269) | class TestLoadFormat(TempDirMixin, unittest.TestCase):
    method _make_file (line 275) | def _make_file(self, format_):
    method _test_format (line 285) | def _test_format(self, format_):
    method test_wav (line 296) | def test_wav(self, format_):
    method test_flac (line 304) | def test_flac(self, format_):
  class TestFileObject (line 308) | class TestFileObject(TempDirMixin, unittest.TestCase):
    method _test_fileobj (line 309) | def _test_fileobj(self, ext):
    method test_fileobj_wav (line 324) | def test_fileobj_wav(self):
    method test_fileobj_flac (line 328) | def test_fileobj_flac(self):
    method _test_tarfile (line 332) | def _test_tarfile(self, ext):
    method test_tarfile_wav (line 353) | def test_tarfile_wav(self):
    method test_tarfile_flac (line 357) | def test_tarfile_flac(self):

FILE: audio/tests/backends/soundfile/save_test.py
  class MockedSaveTest (line 18) | class MockedSaveTest(unittest.TestCase):
    method test_wav (line 40) | def test_wav(self, dtype, sample_rate, num_channels, channels_first,
    method assert_non_wav (line 75) | def assert_non_wav(
    method test_sph (line 135) | def test_sph(self, fmt, dtype, sample_rate, num_channels, channels_first,
    method test_flac (line 155) | def test_flac(self, dtype, sample_rate, num_channels, channels_first,
    method test_ogg (line 172) | def test_ogg(self, dtype, sample_rate, num_channels, channels_first):
  class SaveTestBase (line 179) | class SaveTestBase(TempDirMixin, unittest.TestCase):
    method assert_wav (line 180) | def assert_wav(self, dtype, sample_rate, num_channels, num_frames):
    method _assert_non_wav (line 191) | def _assert_non_wav(self, fmt, dtype, sample_rate, num_channels):
    method assert_flac (line 208) | def assert_flac(self, dtype, sample_rate, num_channels):
    method assert_sphere (line 212) | def assert_sphere(self, dtype, sample_rate, num_channels):
    method assert_ogg (line 216) | def assert_ogg(self, dtype, sample_rate, num_channels):
  class TestSave (line 224) | class TestSave(SaveTestBase):
    method test_wav (line 229) | def test_wav(self, dtype, sample_rate, num_channels):
    method test_multiple_channels (line 236) | def test_multiple_channels(self, dtype, num_channels):
    method test_sphere (line 246) | def test_sphere(self, dtype, sample_rate, num_channels):
    method test_flac (line 254) | def test_flac(self, sample_rate, num_channels):
    method test_ogg (line 262) | def test_ogg(self, sample_rate, num_channels):
  class TestSaveParams (line 267) | class TestSaveParams(TempDirMixin, unittest.TestCase):
    method test_channels_first (line 271) | def test_channels_first(self, channels_first):
  class TestFileObject (line 282) | class TestFileObject(TempDirMixin, unittest.TestCase):
    method _test_fileobj (line 283) | def _test_fileobj(self, ext):
    method test_fileobj_wav (line 302) | def test_fileobj_wav(self):
    method test_fileobj_flac (line 307) | def test_fileobj_flac(self):
    method test_fileobj_nist (line 312) | def test_fileobj_nist(self):
    method test_fileobj_ogg (line 317) | def test_fileobj_ogg(self):

FILE: audio/tests/backends/soundfile/test_io.py
  class TestIO (line 26) | class TestIO(BackendTest):
    method test_load_mono_channel (line 27) | def test_load_mono_channel(self):
    method test_load_multi_channels (line 36) | def test_load_multi_channels(self):
    method test_save_mono_channel (line 46) | def test_save_mono_channel(self):
    method test_save_multi_channels (line 59) | def test_save_multi_channels(self):

FILE: audio/tests/backends/sox_io/common.py
  function name_func (line 8) | def name_func(func, _, params):
  function dtype2subtype (line 12) | def dtype2subtype(dtype):
  function skipIfFormatNotSupported (line 23) | def skipIfFormatNotSupported(fmt):
  function parameterize (line 33) | def parameterize(*params):
  function fetch_wav_subtype (line 38) | def fetch_wav_subtype(dtype, encoding, bits_per_sample):
  function get_encoding (line 59) | def get_encoding(ext, dtype):
  function get_bit_depth (line 74) | def get_bit_depth(dtype):
  function get_bits_per_sample (line 83) | def get_bits_per_sample(ext, dtype):

FILE: audio/tests/backends/sox_io/info_test.py
  class TestInfo (line 27) | class TestInfo(TempDirMixin, unittest.TestCase):
    method test_wav (line 37) | def test_wav(self, dtype, sample_rate, num_channels):
    method test_wav_multiple_channels (line 60) | def test_wav_multiple_channels(self, dtype, sample_rate, num_channels):
    method test_ulaw (line 76) | def test_ulaw(self):
    method test_alaw (line 96) | def test_alaw(self):
  class FileObjTestBase (line 138) | class FileObjTestBase(TempDirMixin):
    method _gen_file (line 139) | def _gen_file(self,
    method _gen_comment_file (line 162) | def _gen_comment_file(self, comments):
  class Unseekable (line 169) | class Unseekable:
    method __init__ (line 170) | def __init__(self, fileobj):
    method read (line 173) | def read(self, n):
  class TestFileObject (line 177) | class TestFileObject(FileObjTestBase, unittest.TestCase):
    method _query_fileobj (line 178) | def _query_fileobj(self,
    method _query_bytesio (line 197) | def _query_bytesio(self, ext, dtype, sample_rate, num_channels, num_fr...
    method _query_tarfile (line 204) | def _query_tarfile(self, ext, dtype, sample_rate, num_channels, num_fr...
    method _set_buffer_size (line 217) | def _set_buffer_size(self, buffer_size):
    method test_fileobj (line 231) | def test_fileobj(self, ext, dtype):
    method test_bytesio (line 254) | def test_bytesio(self, ext, dtype):
    method test_bytesio_tiny (line 277) | def test_bytesio_tiny(self, ext, dtype):
    method test_tarfile (line 303) | def test_tarfile(self, ext, dtype):

FILE: audio/tests/backends/sox_io/load_test.py
  class TestLoad (line 21) | class TestLoad(unittest.TestCase):
    method assert_wav (line 22) | def assert_wav(self, dtype, sample_rate, num_channels, normalize, dura...
    method test_wav (line 50) | def test_wav(self, dtype, sample_rate, num_channels, normalize):

FILE: audio/tests/backends/sox_io/save_test.py
  function _get_sox_encoding (line 18) | def _get_sox_encoding(encoding):
  class TestSaveBase (line 29) | class TestSaveBase(TempDirMixin):
    method assert_save_consistency (line 30) | def assert_save_consistency(
  class TestSave (line 151) | class TestSave(TestSaveBase, unittest.TestCase):
    method test_save_wav (line 165) | def test_save_wav(self, test_mode, enc_params):
    method test_save_wav_dtype (line 181) | def test_save_wav_dtype(self, test_mode, params):

FILE: audio/tests/backends/sox_io/smoke_test.py
  class SmokeTest (line 15) | class SmokeTest(TempDirMixin, unittest.TestCase):
    method run_smoke_test (line 25) | def run_smoke_test(self,
    method test_wav (line 59) | def test_wav(self, dtype, sample_rate, num_channels):
    method test_flac (line 95) | def test_flac(self, sample_rate, num_channels, compression_level):
  class SmokeTestFileObj (line 101) | class SmokeTestFileObj(unittest.TestCase):
    method run_smoke_test (line 111) | def run_smoke_test(self,
    method test_wav (line 144) | def test_wav(self, dtype, sample_rate, num_channels):
    method test_flac (line 181) | def test_flac(self, sample_rate, num_channels, compression_level):

FILE: audio/tests/backends/sox_io/sox_effect_test.py
  class TestSoxEffects (line 21) | class TestSoxEffects(unittest.TestCase):
    method test_init (line 22) | def test_init(self):
  class TestSoxEffectsTensor (line 28) | class TestSoxEffectsTensor(TempDirMixin, unittest.TestCase):
    method test_apply_no_effect (line 35) | def test_apply_no_effect(self, dtype, sample_rate, num_channels,
    method test_apply_effects (line 60) | def test_apply_effects(self, args):
  class TestSoxEffectsFile (line 88) | class TestSoxEffectsFile(TempDirMixin, unittest.TestCase):
    method test_apply_no_effect (line 100) | def test_apply_no_effect(self, dtype, sample_rate, num_channels,
    method test_apply_effects_str (line 119) | def test_apply_effects_str(self, args):
    method test_apply_effects_path (line 143) | def test_apply_effects_path(self):
  class TestFileFormats (line 171) | class TestFileFormats(TempDirMixin, unittest.TestCase):
    method test_wav (line 181) | def test_wav(self, dtype, sample_rate, num_channels):
  class TestFileObject (line 258) | class TestFileObject(TempDirMixin, unittest.TestCase):
    method test_fileobj (line 262) | def test_fileobj(self, ext, compression):
    method test_bytesio (line 293) | def test_bytesio(self, ext, compression):
    method test_tarfile (line 328) | def test_tarfile(self, ext, compression):

FILE: audio/tests/benchmark/log_melspectrogram.py
  function enable_cpu_device (line 51) | def enable_cpu_device():
  function enable_gpu_device (line 55) | def enable_gpu_device():
  function log_melspectrogram (line 63) | def log_melspectrogram():
  function test_log_melspect_cpu (line 67) | def test_log_melspect_cpu(benchmark):
  function test_log_melspect_gpu (line 76) | def test_log_melspect_gpu(benchmark):
  function melspectrogram_torchaudio (line 90) | def melspectrogram_torchaudio():
  function log_melspectrogram_torchaudio (line 94) | def log_melspectrogram_torchaudio():
  function test_log_melspect_cpu_torchaudio (line 99) | def test_log_melspect_cpu_torchaudio(benchmark):
  function test_log_melspect_gpu_torchaudio (line 113) | def test_log_melspect_gpu_torchaudio(benchmark):

FILE: audio/tests/benchmark/melspectrogram.py
  function enable_cpu_device (line 51) | def enable_cpu_device():
  function enable_gpu_device (line 55) | def enable_gpu_device():
  function melspectrogram (line 63) | def melspectrogram():
  function test_melspect_cpu (line 67) | def test_melspect_cpu(benchmark):
  function test_melspect_gpu (line 75) | def test_melspect_gpu(benchmark):
  function melspectrogram_torchaudio (line 87) | def melspectrogram_torchaudio():
  function test_melspect_cpu_torchaudio (line 91) | def test_melspect_cpu_torchaudio(benchmark):
  function test_melspect_gpu_torchaudio (line 101) | def test_melspect_gpu_torchaudio(benchmark):

FILE: audio/tests/benchmark/mfcc.py
  function enable_cpu_device (line 60) | def enable_cpu_device():
  function enable_gpu_device (line 64) | def enable_gpu_device():
  function mfcc (line 72) | def mfcc():
  function test_mfcc_cpu (line 76) | def test_mfcc_cpu(benchmark):
  function test_mfcc_gpu (line 84) | def test_mfcc_gpu(benchmark):
  function mfcc_torchaudio (line 97) | def mfcc_torchaudio():
  function test_mfcc_cpu_torchaudio (line 101) | def test_mfcc_cpu_torchaudio(benchmark):
  function test_mfcc_gpu_torchaudio (line 113) | def test_mfcc_gpu_torchaudio(benchmark):

FILE: audio/tests/common_utils/case_utils.py
  function name_func (line 7) | def name_func(func, _, params):
  class TempDirMixin (line 11) | class TempDirMixin:
    method get_base_temp_dir (line 17) | def get_base_temp_dir(cls):
    method tearDownClass (line 28) | def tearDownClass(cls):
    method get_temp_path (line 46) | def get_temp_path(self, *paths):

FILE: audio/tests/common_utils/data_utils.py
  function get_asset_path (line 11) | def get_asset_path(*paths):
  function load_params (line 16) | def load_params(*paths):
  function load_effects_params (line 21) | def load_effects_params(*paths):
  function convert_tensor_encoding (line 34) | def convert_tensor_encoding(
  function get_sinusoid (line 100) | def get_sinusoid(

FILE: audio/tests/common_utils/parameterized_utils.py
  function _name_func (line 7) | def _name_func(func, _, params):
  function nested_params (line 19) | def nested_params(*params_set, name_func=_name_func):

FILE: audio/tests/common_utils/sox_utils.py
  function get_encoding (line 6) | def get_encoding(dtype):
  function get_bit_depth (line 16) | def get_bit_depth(dtype):
  function gen_audio_file (line 26) | def gen_audio_file(
  function convert_audio_file (line 85) | def convert_audio_file(src_path,
  function _flatten (line 104) | def _flatten(effects):
  function run_sox_effect (line 112) | def run_sox_effect(input_file,

FILE: audio/tests/common_utils/wav_utils.py
  function normalize_wav (line 7) | def normalize_wav(tensor: paddle.Tensor) -> paddle.Tensor:
  function get_wav_data (line 25) | def get_wav_data(
  function load_wav (line 85) | def load_wav(path: str, normalize=True, channels_first=True) -> paddle.T...
  function save_wav (line 98) | def save_wav(path, data, sample_rate, channels_first=True):

FILE: audio/tests/features/base.py
  class FeatTest (line 25) | class FeatTest(unittest.TestCase):
    method setUp (line 26) | def setUp(self):
    method setUpDevice (line 31) | def setUpDevice(self, device='cpu'):
    method initWavInput (line 34) | def initWavInput(self, url=wav_url):
    method initParams (line 47) | def initParams(self):

FILE: audio/tests/features/test_istft.py
  class TestIstft (line 25) | class TestIstft(FeatTest):
    method initParams (line 26) | def initParams(self):
    method test_istft (line 31) | def test_istft(self):

FILE: audio/tests/features/test_kaldi.py
  class TestKaldi (line 24) | class TestKaldi(FeatTest):
    method initParams (line 25) | def initParams(self):
    method test_window (line 29) | def test_window(self):
    method test_fbank (line 62) | def test_fbank(self):
    method test_mfcc (line 70) | def test_mfcc(self):

FILE: audio/tests/features/test_kaldi_feat.py
  class TestKaldiFbank (line 28) | class TestKaldiFbank(unittest.TestCase):
    method test_fbank (line 29) | def test_fbank(self):

FILE: audio/tests/features/test_librosa.py
  class TestLibrosa (line 24) | class TestLibrosa(FeatTest):
    method initParams (line 25) | def initParams(self):
    method test_stft (line 35) | def test_stft(self):
    method test_istft (line 65) | def test_istft(self):
    method test_mel (line 109) | def test_mel(self):
    method test_melspect (line 144) | def test_melspect(self):
    method test_log_melspect (line 185) | def test_log_melspect(self):
    method test_mfcc (line 226) | def test_mfcc(self):

FILE: audio/tests/features/test_log_melspectrogram.py
  class TestLogMelSpectrogram (line 24) | class TestLogMelSpectrogram(FeatTest):
    method initParams (line 25) | def initParams(self):
    method test_log_melspect (line 30) | def test_log_melspect(self):

FILE: audio/tests/features/test_spectrogram.py
  class TestSpectrogram (line 24) | class TestSpectrogram(FeatTest):
    method initParams (line 25) | def initParams(self):
    method test_spectrogram (line 29) | def test_spectrogram(self):

FILE: audio/tests/features/test_stft.py
  class TestStft (line 24) | class TestStft(FeatTest):
    method initParams (line 25) | def initParams(self):
    method test_stft (line 30) | def test_stft(self):

FILE: audio/tools/setup_helpers/extension.py
  function _get_build (line 20) | def _get_build(var, default=False):
  function get_ext_modules (line 43) | def get_ext_modules():
  class CMakeBuild (line 55) | class CMakeBuild(build_ext):
    method run (line 56) | def run(self):
    method build_extension (line 63) | def build_extension(self, ext):
    method get_ext_filename (line 147) | def get_ext_filename(self, fullname):

FILE: dataset/chime3_background/chime3_background.py
  function download (line 51) | def download(url, md5sum, target_dir, filename=None):
  function unpack (line 69) | def unpack(filepath, target_dir):
  function create_manifest (line 84) | def create_manifest(data_dir, manifest_path):
  function prepare_chime3 (line 111) | def prepare_chime3(url, md5sum, target_dir, manifest_path):
  function main (line 134) | def main():

FILE: dataset/librispeech/librispeech.py
  function create_manifest (line 74) | def create_manifest(data_dir, manifest_path):
  function prepare_dataset (line 134) | def prepare_dataset(url, md5sum, target_dir, manifest_path):
  function main (line 149) | def main():

FILE: dataset/mini_librispeech/mini_librispeech.py
  function create_manifest (line 54) | def create_manifest(data_dir, manifest_path):
  function prepare_dataset (line 110) | def prepare_dataset(url, md5sum, target_dir, manifest_path):
  function main (line 125) | def main():

FILE: dataset/rir_noise/rir_noise.py
  function create_manifest (line 55) | def create_manifest(data_dir, manifest_path_prefix):
  function prepare_dataset (line 93) | def prepare_dataset(url, md5sum, target_dir, manifest_path):
  function main (line 105) | def main():

FILE: dataset/tal_cs/tal_cs.py
  function create_manifest (line 49) | def create_manifest(data_dir, manifest_path):
  function main (line 105) | def main():

FILE: dataset/ted_en_zh/ted_en_zh.py
  function create_manifest (line 43) | def create_manifest(data_dir, manifest_path_prefix):
  function prepare_dataset (line 100) | def prepare_dataset(src_dir, manifest_path=None):
  function main (line 108) | def main():

FILE: dataset/thchs30/thchs30.py
  function read_trn (line 58) | def read_trn(filepath):
  function resolve_symlink (line 80) | def resolve_
Copy disabled (too large) Download .json
Condensed preview — 3420 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,481K chars).
[
  {
    "path": ".clang-format",
    "chars": 859,
    "preview": "# This file is used by clang-format to autoformat paddle source code\n#\n# The clang-format is part of llvm toolchain.\n# I"
  },
  {
    "path": ".flake8",
    "chars": 1407,
    "preview": "[flake8]\n\n########## OPTIONS ##########\n# Set the maximum length that any line (with some exceptions) may be.\nmax-line-l"
  },
  {
    "path": ".gitconfig",
    "chars": 636,
    "preview": "[alias]\n  st = status\n  ci = commit\n  br = branch\n  co = checkout\n  df = diff\n  l = log --pretty=format:\\\"%h %ad | %s%d "
  },
  {
    "path": ".github/CODE_OF_CONDUCT.md",
    "chars": 3396,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 782,
    "preview": "# 💡 paddlespeech 提交代码须知\n\n### Discussed in https://github.com/PaddlePaddle/PaddleSpeech/discussions/1326\n\n<div type='disc"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report-s2t.md",
    "chars": 1126,
    "preview": "---\nname: \"\\U0001F41B S2T Bug Report\"\nabout: Create a report to help us improve\ntitle: \"[S2T]XXXX\"\nlabels: Bug, S2T\nassi"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report-tts.md",
    "chars": 1103,
    "preview": "---\nname: \"\\U0001F41B TTS Bug Report\"\nabout: Create a report to help us improve\ntitle: \"[TTS]XXXX\"\nlabels: Bug, T2S\n\n---"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-request.md",
    "chars": 621,
    "preview": "---\nname: \"\\U0001F680 Feature Request\"\nabout: As a user, I want to request a New Feature on the product.\ntitle: ''\nlabel"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/others.md",
    "chars": 447,
    "preview": "---\nname: \"\\U0001F9E9 Others\"\nabout: Report any other non-support related issues.\ntitle: ''\nlabels: ''\nassignees: ''\n\n--"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/question.md",
    "chars": 466,
    "preview": "---\nname: \"\\U0001F914 Ask a Question\"\nabout: I want to ask a question.\ntitle: ''\nlabels: Question\nassignees: ''\n\n---\n\n##"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 318,
    "preview": "<!-- Demo: https://github.com/PaddlePaddle/PaddleNLP/pull/26 -->\n### PR types\n<!-- One of [ New features | Bug fixes | F"
  },
  {
    "path": ".github/stale.yml",
    "chars": 777,
    "preview": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 45 \n# Number of days of inactivity before a"
  },
  {
    "path": ".gitignore",
    "chars": 775,
    "preview": ".DS_Store\n*.pyc\n.vscode\n*.log\n*.wav\n*.pdmodel\n*.pdiparams*\n*.zip\n*.tar\n*.tar.gz\n.ipynb_checkpoints\n*.npz\n*.done\n*.whl\n*."
  },
  {
    "path": ".mergify.yml",
    "chars": 3248,
    "preview": "pull_request_rules:\n  - name: automatic merge for develop when CI passes and 1 reviews\n    conditions:\n      - \"approved"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 2683,
    "preview": "repos:\n-   repo: https://github.com/pre-commit/mirrors-yapf.git\n    rev: v0.16.0\n    hooks:\n    -   id: yapf\n        fil"
  },
  {
    "path": ".pre-commit-hooks/clang-format.hook",
    "chars": 373,
    "preview": "#!/usr/bin/env bash\nset -e\n\nreadonly VERSION=\"3.9\"\n\nversion=$(clang-format -version)\n\n# if ! [[ $version == *\"$VERSION\"*"
  },
  {
    "path": ".pre-commit-hooks/copyright-check.hook",
    "chars": 4125,
    "preview": "# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": ".readthedocs.yml",
    "chars": 629,
    "preview": "# .readthedocs.yml\n# Read the Docs configuration file\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html fo"
  },
  {
    "path": ".style.yapf",
    "chars": 48,
    "preview": "[style]\nbased_on_style = pep8\ncolumn_limit = 80\n"
  },
  {
    "path": ".travis.yml",
    "chars": 717,
    "preview": "language: cpp\ncache: ccache\nsudo: required\ndist: Bionic \nservices:\n  - docker\nos:\n  - linux\nenv:\n  - JOB=PRE_COMMIT\n\nadd"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "MANIFEST.in",
    "chars": 76,
    "preview": "include paddlespeech/t2s/exps/*.txt\ninclude paddlespeech/t2s/frontend/*.yaml"
  },
  {
    "path": "README.md",
    "chars": 48275,
    "preview": "([简体中文](./README_cn.md)|English)\n<p align=\"center\">\n  <img src=\"./docs/images/PaddleSpeech_logo.png\" />\n</p>\n\n<p align=\""
  },
  {
    "path": "README_cn.md",
    "chars": 41457,
    "preview": "(简体中文|[English](./README.md))\n<p align=\"center\">\n  <img src=\"./docs/images/PaddleSpeech_logo.png\" />\n</p>\n\n\n<p align=\"ce"
  },
  {
    "path": "audio/CMakeLists.txt",
    "chars": 2068,
    "preview": "cmake_minimum_required(VERSION 3.16 FATAL_ERROR)\n\n# Use compiler ID \"AppleClang\" instead of \"Clang\" for XCode.\n# Not set"
  },
  {
    "path": "audio/README.md",
    "chars": 414,
    "preview": "# PaddleAudio\n\n安装方式: pip install paddleaudio\n\n目前支持的平台:Linux, Mac, Windows\n\n## Environment\n\n## Build wheel\ncmd: python se"
  },
  {
    "path": "audio/cmake/FindGFortranLibs.cmake",
    "chars": 6278,
    "preview": "#.rst:\n# FindGFortranLibs\n# --------\n#  https://github.com/Argonne-National-Laboratory/PIPS/blob/master/cmake/Modules/Fi"
  },
  {
    "path": "audio/cmake/external/openblas.cmake",
    "chars": 4451,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/cmake/pybind.cmake",
    "chars": 1227,
    "preview": "#the pybind11 is from:https://github.com/pybind/pybind11\n# Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All r"
  },
  {
    "path": "audio/cmake/summary.cmake",
    "chars": 2834,
    "preview": "# SPDX-License-Identifier: Apache-2.0\n\n# Prints accumulated ONNX configuration summary\nfunction (onnx_print_configuratio"
  },
  {
    "path": "audio/paddleaudio/CMakeLists.txt",
    "chars": 53,
    "preview": "\nadd_subdirectory(third_party)\nadd_subdirectory(src)\n"
  },
  {
    "path": "audio/paddleaudio/__init__.py",
    "chars": 821,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/_extension.py",
    "chars": 5997,
    "preview": "import contextlib\nimport ctypes\nimport os\nimport sys\nimport types\nimport warnings\nfrom pathlib import Path\n\nfrom ._inter"
  },
  {
    "path": "audio/paddleaudio/_internal/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "audio/paddleaudio/_internal/module_utils.py",
    "chars": 4189,
    "preview": "import importlib.util\nimport platform\nimport warnings\nfrom functools import wraps\nfrom typing import Optional\n\n#code is "
  },
  {
    "path": "audio/paddleaudio/backends/__init__.py",
    "chars": 1029,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/backends/common.py",
    "chars": 2000,
    "preview": "# Token from https://github.com/pytorch/audio/blob/main/torchaudio/backend/common.py with modification.\n\n\nclass AudioInf"
  },
  {
    "path": "audio/paddleaudio/backends/no_backend.py",
    "chars": 906,
    "preview": "from pathlib import Path\nfrom typing import Callable\nfrom typing import Optional\nfrom typing import Tuple\nfrom typing im"
  },
  {
    "path": "audio/paddleaudio/backends/soundfile_backend.py",
    "chars": 24920,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/backends/sox_io_backend.py",
    "chars": 3641,
    "preview": "import os\nfrom typing import Optional\nfrom typing import Tuple\n\nimport paddle\nimport paddleaudio\nfrom paddle import Tens"
  },
  {
    "path": "audio/paddleaudio/backends/utils.py",
    "chars": 2466,
    "preview": "\"\"\"Defines utilities for switching audio backends\"\"\"\n#code is from: https://github.com/pytorch/audio/blob/main/torchaudi"
  },
  {
    "path": "audio/paddleaudio/compliance/__init__.py",
    "chars": 652,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/compliance/kaldi.py",
    "chars": 27773,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/compliance/librosa.py",
    "chars": 28340,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/datasets/__init__.py",
    "chars": 820,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/datasets/dataset.py",
    "chars": 3477,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/datasets/esc50.py",
    "chars": 4897,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/datasets/gtzan.py",
    "chars": 4522,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/datasets/hey_snips.py",
    "chars": 2637,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/datasets/rirs_noises.py",
    "chars": 7441,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/datasets/tess.py",
    "chars": 4680,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/datasets/urban_sound.py",
    "chars": 4008,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/datasets/voxceleb.py",
    "chars": 14194,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/features/__init__.py",
    "chars": 740,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/features/layers.py",
    "chars": 15655,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/functional/__init__.py",
    "chars": 874,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/functional/functional.py",
    "chars": 9477,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/functional/window.py",
    "chars": 12178,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \""
  },
  {
    "path": "audio/paddleaudio/kaldi/__init__.py",
    "chars": 661,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/kaldi/kaldi.py",
    "chars": 4502,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/metric/__init__.py",
    "chars": 671,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/metric/eer.py",
    "chars": 4076,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/sox_effects/__init__.py",
    "chars": 538,
    "preview": "from paddleaudio._internal import module_utils as _mod_utils\n\nfrom .sox_effects import apply_effects_file\nfrom .sox_effe"
  },
  {
    "path": "audio/paddleaudio/sox_effects/sox_effects.py",
    "chars": 10135,
    "preview": "import os\nfrom typing import List\nfrom typing import Optional\nfrom typing import Tuple\n\nimport paddle\nimport paddleaudio"
  },
  {
    "path": "audio/paddleaudio/src/CMakeLists.txt",
    "chars": 5135,
    "preview": "if (MSVC)\n  set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)\nendif()\n\nif(APPLE)\nset(CMAKE_SHARED_LIBRARY_SUFFIX \".so\")\nendif(APP"
  },
  {
    "path": "audio/paddleaudio/src/optional/COPYING",
    "chars": 7048,
    "preview": "Creative Commons Legal Code\n\nCC0 1.0 Universal\n\n    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE\n"
  },
  {
    "path": "audio/paddleaudio/src/optional/optional.hpp",
    "chars": 76770,
    "preview": "\n///\n// optional - An implementation of std::optional with extensions\n// Written in 2017 by Sy Brand (tartanllama@gmail."
  },
  {
    "path": "audio/paddleaudio/src/pybind/kaldi/feature_common.h",
    "chars": 1473,
    "preview": "// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "audio/paddleaudio/src/pybind/kaldi/feature_common_inl.h",
    "chars": 3454,
    "preview": "// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "audio/paddleaudio/src/pybind/kaldi/kaldi_feature.cc",
    "chars": 2753,
    "preview": "// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "audio/paddleaudio/src/pybind/kaldi/kaldi_feature.h",
    "chars": 2056,
    "preview": "// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "audio/paddleaudio/src/pybind/kaldi/kaldi_feature_wrapper.cc",
    "chars": 1758,
    "preview": "// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "audio/paddleaudio/src/pybind/kaldi/kaldi_feature_wrapper.h",
    "chars": 1270,
    "preview": "// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "audio/paddleaudio/src/pybind/pybind.cpp",
    "chars": 7350,
    "preview": "// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n\n#ifdef INCLUDE_KALDI\n#include \"paddleaudio/src/pybind/"
  },
  {
    "path": "audio/paddleaudio/src/pybind/sox/effects.cpp",
    "chars": 9458,
    "preview": "// the code is from https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/effects.cpp  with modification.\n\n#inc"
  },
  {
    "path": "audio/paddleaudio/src/pybind/sox/effects.h",
    "chars": 1143,
    "preview": "// the code is from https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/effects.h  with modification.\n#includ"
  },
  {
    "path": "audio/paddleaudio/src/pybind/sox/effects_chain.cpp",
    "chars": 18140,
    "preview": "// the code is from https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/effects_chain.cpp with modification.\n"
  },
  {
    "path": "audio/paddleaudio/src/pybind/sox/effects_chain.h",
    "chars": 2243,
    "preview": "// the code is from https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/effects_chain.h with modification.\n\n#"
  },
  {
    "path": "audio/paddleaudio/src/pybind/sox/io.cpp",
    "chars": 10018,
    "preview": "// the code is from https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/io.cpp with modification.\n\n#include \""
  },
  {
    "path": "audio/paddleaudio/src/pybind/sox/io.h",
    "chars": 2089,
    "preview": "// the code is from https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/io.h with modification.\n#pragma once\n"
  },
  {
    "path": "audio/paddleaudio/src/pybind/sox/types.cpp",
    "chars": 3618,
    "preview": "//code is from: https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/types.cpp\n\n#include \"paddleaudio/src/pybi"
  },
  {
    "path": "audio/paddleaudio/src/pybind/sox/types.h",
    "chars": 954,
    "preview": "//code is from: https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/types.h\n#pragma once\n\n#include <sox.h>\n#i"
  },
  {
    "path": "audio/paddleaudio/src/pybind/sox/utils.cpp",
    "chars": 18528,
    "preview": "//code is from: https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/utils.cpp with modification.\n#include <so"
  },
  {
    "path": "audio/paddleaudio/src/pybind/sox/utils.h",
    "chars": 3747,
    "preview": "//code is from: https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/utils.h with modification.\n#pragma once\n\n"
  },
  {
    "path": "audio/paddleaudio/src/utils.cpp",
    "chars": 573,
    "preview": "// this is from: https://github.com/pytorch/audio/blob/main/torchaudio/csrc/utils.cpp with modification.\n\nnamespace padd"
  },
  {
    "path": "audio/paddleaudio/third_party/.gitignore",
    "chars": 19,
    "preview": "archives/\ninstall/\n"
  },
  {
    "path": "audio/paddleaudio/third_party/CMakeLists.txt",
    "chars": 569,
    "preview": "set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -fvisibility=hidden\")\n\n#########################################################"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/CMakeLists.txt",
    "chars": 598,
    "preview": "include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../)\nadd_library(kaldi-native-fbank-core\n  feature-fbank.cc\n  feature"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-fbank.cc",
    "chars": 3944,
    "preview": "/**\n * Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n *\n * See LICENSE for clarification regarding mu"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-fbank.h",
    "chars": 4534,
    "preview": "/**\n * Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n *\n * See LICENSE for clarification regarding mu"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-functions.cc",
    "chars": 1604,
    "preview": "/**\n * Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n *\n * See LICENSE for clarification regarding mu"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-functions.h",
    "chars": 1530,
    "preview": "/**\n * Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n *\n * See LICENSE for clarification regarding mu"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-window.cc",
    "chars": 8172,
    "preview": "// kaldi-native-fbank/csrc/feature-window.cc\n//\n// Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n\n// "
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/feature-window.h",
    "chars": 7080,
    "preview": "// kaldi-native-fbank/csrc/feature-window.h\n//\n// Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n\n// T"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/fftsg.c",
    "chars": 89872,
    "preview": "/* This file is copied from\n * https://www.kurims.kyoto-u.ac.jp/~ooura/fft.html\n */\n/*\nFast Fourier/Cosine/Sine Transfor"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/log.cc",
    "chars": 4497,
    "preview": "/**\n * Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n *\n * See LICENSE for clarification regarding mu"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/log.h",
    "chars": 10297,
    "preview": "/**\n * Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n *\n * See LICENSE for clarification regarding mu"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/mel-computations.cc",
    "chars": 9676,
    "preview": "/**\n * Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n *\n * See LICENSE for clarification regarding mu"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/mel-computations.h",
    "chars": 3975,
    "preview": "/**\n * Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n *\n * See LICENSE for clarification regarding mu"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/rfft.cc",
    "chars": 1747,
    "preview": "/**\n * Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n *\n * See LICENSE for clarification regarding mu"
  },
  {
    "path": "audio/paddleaudio/third_party/kaldi-native-fbank/csrc/rfft.h",
    "chars": 1598,
    "preview": "/**\n * Copyright (c)  2022  Xiaomi Corporation (authors: Fangjun Kuang)\n *\n * See LICENSE for clarification regarding mu"
  },
  {
    "path": "audio/paddleaudio/third_party/patches/config.guess",
    "chars": 49482,
    "preview": "#! /bin/sh\n# Attempt to guess a canonical system name.\n#   Copyright 1992-2022 Free Software Foundation, Inc.\n\n# shellch"
  },
  {
    "path": "audio/paddleaudio/third_party/patches/config.sub",
    "chars": 35406,
    "preview": "#! /bin/sh\n# Configuration validation subroutine script.\n#   Copyright 1992-2022 Free Software Foundation, Inc.\n\n# shell"
  },
  {
    "path": "audio/paddleaudio/third_party/patches/libmad.patch",
    "chars": 2841,
    "preview": "See the followings for the origin of this patch\nhttp://www.linuxfromscratch.org/blfs/view/svn/multimedia/libmad.html\nhtt"
  },
  {
    "path": "audio/paddleaudio/third_party/patches/sox.patch",
    "chars": 493,
    "preview": "See https://github.com/pytorch/audio/pull/1297\ndiff -ru sox/src/formats.c sox/src/formats.c\n--- sox/src/formats.c\t2014-1"
  },
  {
    "path": "audio/paddleaudio/third_party/sox/CMakeLists.txt",
    "chars": 8545,
    "preview": "find_package(PkgConfig REQUIRED)\n\ninclude(ExternalProject)\n\nset(INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../install)\nset("
  },
  {
    "path": "audio/paddleaudio/utils/__init__.py",
    "chars": 1051,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/utils/download.py",
    "chars": 1985,
    "preview": "# Copyright (c) 2021  PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the"
  },
  {
    "path": "audio/paddleaudio/utils/env.py",
    "chars": 1968,
    "preview": "# Copyright (c) 2021  PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the"
  },
  {
    "path": "audio/paddleaudio/utils/error.py",
    "chars": 733,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/utils/log.py",
    "chars": 3728,
    "preview": "# Copyright (c) 2021  PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the"
  },
  {
    "path": "audio/paddleaudio/utils/numeric.py",
    "chars": 3643,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/utils/sox_utils.py",
    "chars": 2704,
    "preview": "from typing import Dict\nfrom typing import List\n\nimport paddleaudio\nfrom paddleaudio._internal import module_utils as _m"
  },
  {
    "path": "audio/paddleaudio/utils/tensor_utils.py",
    "chars": 7513,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/paddleaudio/utils/time.py",
    "chars": 2201,
    "preview": "# Copyright (c) 2021  PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the"
  },
  {
    "path": "audio/setup.py",
    "chars": 8632,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/backends/base.py",
    "chars": 1258,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/backends/common.py",
    "chars": 643,
    "preview": "\ndef get_encoding(ext, dtype):\n    exts = {\n        \"mp3\",\n        \"flac\",\n        \"vorbis\",\n    }\n    encodings = {\n   "
  },
  {
    "path": "audio/tests/backends/soundfile/base.py",
    "chars": 1258,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/backends/soundfile/common.py",
    "chars": 2239,
    "preview": "import itertools\nfrom unittest import skipIf\n\nfrom paddleaudio._internal.module_utils import is_module_available\nfrom pa"
  },
  {
    "path": "audio/tests/backends/soundfile/info_test.py",
    "chars": 7653,
    "preview": "#this code is from: https://github.com/pytorch/audio/blob/main/test/torchaudio_unittest/backend/soundfile/info_test.py\ni"
  },
  {
    "path": "audio/tests/backends/soundfile/load_test.py",
    "chars": 12858,
    "preview": "#this code is from: https://github.com/pytorch/audio/blob/main/test/torchaudio_unittest/backend/soundfile/load_test.py\ni"
  },
  {
    "path": "audio/tests/backends/soundfile/save_test.py",
    "chars": 11518,
    "preview": "import io\nimport unittest\nfrom unittest.mock import patch\n\nimport numpy as np\nimport paddle\nimport soundfile\nfrom common"
  },
  {
    "path": "audio/tests/backends/soundfile/test_io.py",
    "chars": 2551,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/backends/sox_io/common.py",
    "chars": 2239,
    "preview": "import itertools\nfrom unittest import skipIf\n\nfrom paddleaudio._internal.module_utils import is_module_available\nfrom pa"
  },
  {
    "path": "audio/tests/backends/sox_io/info_test.py",
    "chars": 11018,
    "preview": "import io\nimport itertools\nimport os\nimport platform\nimport tarfile\nimport unittest\nfrom contextlib import contextmanage"
  },
  {
    "path": "audio/tests/backends/sox_io/load_test.py",
    "chars": 1784,
    "preview": "import itertools\nimport platform\nimport unittest\nif platform.system() == \"Windows\":\n    import warnings\n    warnings.war"
  },
  {
    "path": "audio/tests/backends/sox_io/save_test.py",
    "chars": 6692,
    "preview": "import io\nimport platform\nimport unittest\nif platform.system() == \"Windows\":\n    import warnings\n    warnings.warn(\"sox "
  },
  {
    "path": "audio/tests/backends/sox_io/smoke_test.py",
    "chars": 6184,
    "preview": "import io\nimport itertools\nimport platform\nimport unittest\nif platform.system() == \"Windows\":\n    import warnings\n    wa"
  },
  {
    "path": "audio/tests/backends/sox_io/sox_effect_test.py",
    "chars": 14535,
    "preview": "#code is from: https://github.com/pytorch/audio/blob/main/test/torchaudio_unittest/sox_effect/sox_effect_test.py\nimport "
  },
  {
    "path": "audio/tests/backends/sox_io/sox_effect_test_args.jsonl",
    "chars": 3740,
    "preview": "{\"effects\": [[\"allpass\", \"300\", \"10\"]]}\n{\"effects\": [[\"band\", \"300\", \"10\"]]}\n{\"effects\": [[\"bandpass\", \"300\", \"10\"]]}\n{\""
  },
  {
    "path": "audio/tests/benchmark/README.md",
    "chars": 2984,
    "preview": "# 1. Prepare\nFirst, install `pytest-benchmark` via pip.\n```sh\npip install pytest-benchmark\n```\n\n# 2. Run\nRun the specifi"
  },
  {
    "path": "audio/tests/benchmark/log_melspectrogram.py",
    "chars": 4155,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/benchmark/melspectrogram.py",
    "chars": 3438,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/benchmark/mfcc.py",
    "chars": 3524,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/common_utils/__init__.py",
    "chars": 535,
    "preview": "from .case_utils import name_func\nfrom .case_utils import TempDirMixin\nfrom .data_utils import get_sinusoid\nfrom .data_u"
  },
  {
    "path": "audio/tests/common_utils/case_utils.py",
    "chars": 1655,
    "preview": "import os.path\nimport tempfile\n\n#code is from:https://github.com/pytorch/audio/blob/main/test/torchaudio_unittest/common"
  },
  {
    "path": "audio/tests/common_utils/data_utils.py",
    "chars": 4457,
    "preview": "import json\nimport os.path\n\nimport paddle\nfrom parameterized import param\n#code is from:https://github.com/pytorch/audio"
  },
  {
    "path": "audio/tests/common_utils/parameterized_utils.py",
    "chars": 1679,
    "preview": "from itertools import product\n\nfrom parameterized import param\nfrom parameterized import parameterized\n\n\ndef _name_func("
  },
  {
    "path": "audio/tests/common_utils/sox_utils.py",
    "chars": 3791,
    "preview": "import subprocess\nimport sys\nimport warnings\n\n\ndef get_encoding(dtype):\n    encodings = {\n        \"float32\": \"floating-p"
  },
  {
    "path": "audio/tests/common_utils/wav_utils.py",
    "chars": 3486,
    "preview": "from typing import Optional\n\nimport paddle\nimport scipy.io.wavfile\n\n\ndef normalize_wav(tensor: paddle.Tensor) -> paddle."
  },
  {
    "path": "audio/tests/features/__init__.py",
    "chars": 610,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/features/base.py",
    "chars": 1629,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/features/test_istft.py",
    "chars": 1609,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/features/test_kaldi.py",
    "chars": 2943,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/features/test_kaldi_feat.py",
    "chars": 2053,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/features/test_librosa.py",
    "chars": 9464,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/features/test_log_melspectrogram.py",
    "chars": 1590,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/features/test_spectrogram.py",
    "chars": 1371,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/features/test_stft.py",
    "chars": 1469,
    "preview": "# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "audio/tests/features/testdata/fbank_feat_txt.ark",
    "chars": 195304,
    "preview": "test_wav  [\n  8.86961 7.025289 6.664165 7.169617 7.317829 7.188704 8.351522 8.843228 7.711394 7.231504 6.903938 7.053499"
  },
  {
    "path": "audio/tests/features/testdata/pitch_feat_txt.ark",
    "chars": 20516,
    "preview": "test_wav  [\n  0.4300044 238.1164 \n  0.7310953 238.1164 \n  0.0589752 238.1164 \n  0.3706925 238.1164 \n  0.6353879 238.1164"
  },
  {
    "path": "audio/tools/setup_helpers/__init__.py",
    "chars": 26,
    "preview": "from .extension import *\r\n"
  },
  {
    "path": "audio/tools/setup_helpers/extension.py",
    "chars": 6130,
    "preview": "import os\nimport platform\nimport subprocess\nfrom pathlib import Path\n\nimport distutils.sysconfig\nfrom setuptools import "
  },
  {
    "path": "dataset/aishell/.gitignore",
    "chars": 55,
    "preview": "data_aishell*\n*.meta\nmanifest.*\n*.tgz\nresource_aishell\n"
  },
  {
    "path": "dataset/aishell/aishell.py",
    "chars": 961,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/aishell3/README.md",
    "chars": 817,
    "preview": "# [Aishell3](http://www.openslr.org/93/)\n\nAISHELL-3 is a large-scale and high-fidelity multi-speaker Mandarin speech cor"
  },
  {
    "path": "dataset/chime3_background/chime3_background.py",
    "chars": 5211,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/gigaspeech/.gitignore",
    "chars": 12,
    "preview": "GigaSpeech/\n"
  },
  {
    "path": "dataset/gigaspeech/README.md",
    "chars": 296,
    "preview": "# [GigaSpeech](https://github.com/SpeechColab/GigaSpeech)\n\n```\ngit clone https://github.com/SpeechColab/GigaSpeech.git\n\n"
  },
  {
    "path": "dataset/gigaspeech/gigaspeech.py",
    "chars": 610,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/gigaspeech/run.sh",
    "chars": 292,
    "preview": "#!/bin/bash\n\nset -e\n\ncurdir=$PWD\n\ntest -d GigaSpeech || git clone https://github.com/SpeechColab/GigaSpeech.git\n\n\npushd "
  },
  {
    "path": "dataset/librispeech/.gitignore",
    "chars": 108,
    "preview": "dev-clean\ndev-other\ntest-clean\ntest-other\ntrain-clean-100\ntrain-clean-360\ntrain-other-500\n*.meta\nmanifest.*\n"
  },
  {
    "path": "dataset/librispeech/librispeech.py",
    "chars": 7188,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/magicdata/README.md",
    "chars": 1135,
    "preview": "# [MagicData](http://openslr.elda.org/68/)\n\nMAGICDATA Mandarin Chinese Read Speech Corpus was developed by MAGIC DATA Te"
  },
  {
    "path": "dataset/mini_librispeech/.gitignore",
    "chars": 71,
    "preview": "dev-clean/\nmanifest.dev-clean\nmanifest.train-clean\ntrain-clean/\n*.meta\n"
  },
  {
    "path": "dataset/mini_librispeech/mini_librispeech.py",
    "chars": 5154,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/multi_cn/README.md",
    "chars": 301,
    "preview": "# multi-cn\n\nThis is a Chinese speech recognition recipe that trains on all Chinese corpora on OpenSLR, including:\n\n* Aid"
  },
  {
    "path": "dataset/primewords/README.md",
    "chars": 421,
    "preview": "# [Primewords](http://openslr.elda.org/47/)\n\nThis free Chinese Mandarin speech corpus set is released by Shanghai Primew"
  },
  {
    "path": "dataset/rir_noise/.gitignore",
    "chars": 117,
    "preview": "RIRS_NOISES/\nmanifest.pointsource_noises\nmanifest.real_rirs_isotropic_noises\nmanifest.simulated_rirs\nrirs_noises.zip\n"
  },
  {
    "path": "dataset/rir_noise/rir_noise.py",
    "chars": 4066,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/st-cmds/README.md",
    "chars": 40,
    "preview": "# [FreeST](http://openslr.elda.org/38/)\n"
  },
  {
    "path": "dataset/tal_cs/README.md",
    "chars": 675,
    "preview": "# [TAL_CSASR](https://ai.100tal.com/dataset/)\n\nThis data set is TAL English class audio, including mixed Chinese and Eng"
  },
  {
    "path": "dataset/tal_cs/tal_cs.py",
    "chars": 4180,
    "preview": "# Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/ted_en_zh/.gitignore",
    "chars": 60,
    "preview": "*.tar.gz.*\nmanifest.*\n*.md\nEN-ZH/\ntrain-split/\ntest-segment/"
  },
  {
    "path": "dataset/ted_en_zh/ted_en_zh.py",
    "chars": 4111,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/thchs30/.gitignore",
    "chars": 57,
    "preview": "*.tgz\nmanifest.*\ndata_thchs30\nresource\ntest-noise\n*.meta\n"
  },
  {
    "path": "dataset/thchs30/README.md",
    "chars": 1561,
    "preview": "# [THCHS30](http://openslr.elda.org/18/)\n\nThis is the *data part* of the `THCHS30 2015` acoustic data\n& scripts dataset."
  },
  {
    "path": "dataset/thchs30/thchs30.py",
    "chars": 6391,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/timit/.gitignore",
    "chars": 32,
    "preview": "TIMIT.*\nTIMIT\nmanifest.*\n*.meta\n"
  },
  {
    "path": "dataset/timit/timit.py",
    "chars": 7556,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/timit/timit_kaldi_standard_split.py",
    "chars": 3823,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/voxceleb/README.md",
    "chars": 905,
    "preview": "# [VoxCeleb](http://www.robots.ox.ac.uk/~vgg/data/voxceleb/)\nVoxCeleb is an audio-visual dataset consisting of short cli"
  },
  {
    "path": "dataset/voxceleb/voxceleb1.py",
    "chars": 8293,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/voxceleb/voxceleb2.py",
    "chars": 8211,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "dataset/voxforge/run_data.sh",
    "chars": 492,
    "preview": "#! /usr/bin/env bash\n\nTARGET_DIR=${MAIN_ROOT}/dataset/voxforge\nmkdir -p ${TARGET_DIR}\n\n# download data, generate manifes"
  },
  {
    "path": "dataset/voxforge/voxforge.py",
    "chars": 8799,
    "preview": "# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the "
  },
  {
    "path": "demos/README.md",
    "chars": 1089,
    "preview": "# Speech Application based on PaddleSpeech\n\n([简体中文](./README_cn.md)|English)\n\nThis directory contains many speech applic"
  },
  {
    "path": "demos/README_cn.md",
    "chars": 585,
    "preview": "# PaddleSpeech 语音应用 Demo\n\n(简体中文|[English](./README.md))\n\n该目录包含基于 PaddleSpeech 开发的不同场景的语音应用 Demo:\n\n* 声音检索 - 海量音频相似性检索。\n* "
  },
  {
    "path": "demos/TTSAndroid/.gitignore",
    "chars": 203,
    "preview": "*.iml\n.gradle\n/local.properties\n/.idea/caches\n/.idea/libraries\n/.idea/modules.xml\n/.idea/workspace.xml\n/.idea/navEditor."
  },
  {
    "path": "demos/TTSAndroid/README.md",
    "chars": 7495,
    "preview": "# 语音合成 Java API Demo 使用指南\n\n在 Android 上实现语音合成功能,此 Demo 有很好的易用性和开放性,如在 Demo 中跑自己训练好的模型等。\n\n本文主要介绍语音合成 Demo 运行方法。\n\n## 如何运行语音"
  },
  {
    "path": "demos/TTSAndroid/app/.gitignore",
    "chars": 7,
    "preview": "/build\n"
  },
  {
    "path": "demos/TTSAndroid/app/build.gradle",
    "chars": 4088,
    "preview": "import java.security.MessageDigest\n\napply plugin: 'com.android.application'\n\nandroid {\n    compileSdkVersion 28\n    defa"
  },
  {
    "path": "demos/TTSAndroid/app/proguard-rules.pro",
    "chars": 751,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "demos/TTSAndroid/app/src/androidTest/java/com/baidu/paddle/lite/demo/tts/ExampleInstrumentedTest.java",
    "chars": 740,
    "preview": "package com.baidu.paddle.lite.demo.tts;\n\nimport android.content.Context;\nimport android.support.test.InstrumentationRegi"
  },
  {
    "path": "demos/TTSAndroid/app/src/main/AndroidManifest.xml",
    "chars": 1042,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package="
  },
  {
    "path": "demos/TTSAndroid/app/src/main/java/com/baidu/paddle/lite/demo/tts/AppCompatPreferenceActivity.java",
    "chars": 3555,
    "preview": "/*\n * Copyright (C) 2014 The Android Open Source Project\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "demos/TTSAndroid/app/src/main/java/com/baidu/paddle/lite/demo/tts/MainActivity.java",
    "chars": 16321,
    "preview": "package com.baidu.paddle.lite.demo.tts;\n\nimport android.Manifest;\nimport android.app.ProgressDialog;\nimport android.cont"
  },
  {
    "path": "demos/TTSAndroid/app/src/main/java/com/baidu/paddle/lite/demo/tts/Predictor.java",
    "chars": 5588,
    "preview": "package com.baidu.paddle.lite.demo.tts;\n\nimport android.content.Context;\nimport android.util.Log;\n\nimport com.baidu.padd"
  },
  {
    "path": "demos/TTSAndroid/app/src/main/java/com/baidu/paddle/lite/demo/tts/SettingsActivity.java",
    "chars": 5697,
    "preview": "package com.baidu.paddle.lite.demo.tts;\n\nimport android.content.SharedPreferences;\nimport android.os.Bundle;\nimport andr"
  }
]

// ... and 3220 more files (download for full content)

About this extraction

This page contains the full source code of the PaddlePaddle/PaddleSpeech GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3420 files (15.9 MB), approximately 4.1M tokens, and a symbol index with 7821 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!