-
Notifications
You must be signed in to change notification settings - Fork 109
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from csukuangfj/first-version
First working version (non-streaming version only).
- Loading branch information
Showing
36 changed files
with
3,125 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
BasedOnStyle: Google | ||
--- | ||
Language: Cpp | ||
Cpp11BracedListStyle: true | ||
Standard: Cpp11 | ||
DerivePointerAlignment: false | ||
PointerAlignment: Right | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#!/usr/bin/env bash | ||
|
||
# This script installs kaldifeat into the directory ~/tmp/kaldifeat | ||
# which is cached by GitHub actions for later runs. | ||
|
||
mkdir -p ~/tmp | ||
cd ~/tmp | ||
git clone https://github.com/csukuangfj/kaldifeat | ||
cd kaldifeat | ||
mkdir build | ||
cd build | ||
cmake -DCMAKE_BUILD_TYPE=Release .. | ||
make -j2 _kaldifeat |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
name: Publish to PyPI | ||
|
||
on: | ||
push: | ||
tags: | ||
- '*' | ||
|
||
jobs: | ||
pypi: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Setup Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.8 | ||
|
||
- name: Install Python dependencies | ||
shell: bash | ||
run: | | ||
python3 -m pip install --upgrade pip | ||
python3 -m pip install wheel twine setuptools | ||
- name: Build | ||
shell: bash | ||
run: | | ||
python3 setup.py sdist | ||
ls -l dist/* | ||
- name: Publish wheels to PyPI | ||
env: | ||
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | ||
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | ||
run: | | ||
twine upload dist/k2-sherpa-*.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
|
||
# Copyright 2022 Xiaomi Corp. (author: Fangjun Kuang) | ||
|
||
# See ../../LICENSE for clarification regarding multiple authors | ||
# | ||
# 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. | ||
# | ||
name: Run tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
branches: | ||
- master | ||
|
||
jobs: | ||
run_tests: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-18.04, macos-10.15] | ||
torch: ["1.10.0"] | ||
torchaudio: ["0.10.0"] | ||
python-version: [3.7, 3.8, 3.9] | ||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Setup Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Install GCC 7 | ||
if: startsWith(matrix.os, 'ubuntu') | ||
run: | | ||
sudo apt-get install -y gcc-7 g++-7 | ||
echo "CC=/usr/bin/gcc-7" >> $GITHUB_ENV | ||
echo "CXX=/usr/bin/g++-7" >> $GITHUB_ENV | ||
- name: Install PyTorch ${{ matrix.torch }} | ||
shell: bash | ||
if: startsWith(matrix.os, 'ubuntu') | ||
run: | | ||
python3 -m pip install -qq --upgrade pip | ||
python3 -m pip install -qq wheel twine typing_extensions websockets sentencepiece>=0.1.96 | ||
python3 -m pip install -qq torch==${{ matrix.torch }}+cpu torchaudio==${{ matrix.torchaudio }}+cpu numpy -f https://download.pytorch.org/whl/cpu/torch_stable.html | ||
- name: Install PyTorch ${{ matrix.torch }} | ||
shell: bash | ||
if: startsWith(matrix.os, 'macos') | ||
run: | | ||
python3 -m pip install -qq --upgrade pip | ||
python3 -m pip install -qq wheel twine typing_extensions websockets sentencepiece>=0.1.96 | ||
python3 -m pip install -qq torch==${{ matrix.torch }} torchaudio==${{ matrix.torchaudio }} numpy -f https://download.pytorch.org/whl/cpu/torch_stable.html | ||
- name: Cache kaldifeat | ||
id: my-cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
~/tmp/kaldifeat | ||
key: cache-tmp-${{ matrix.python-version }}-${{ matrix.os }} | ||
|
||
- name: Install kaldifeat | ||
if: steps.my-cache.outputs.cache-hit != 'true' | ||
shell: bash | ||
run: | | ||
.github/scripts/install-kaldifeat.sh | ||
- name: Install sherpa | ||
shell: bash | ||
run: | | ||
python3 setup.py install | ||
- name: Download pretrained model and test-data | ||
shell: bash | ||
run: | | ||
git lfs install | ||
git clone https://huggingface.co/csukuangfj/icefall-asr-librispeech-pruned-transducer-stateless3-2022-05-13 | ||
- name: Start server | ||
shell: bash | ||
run: | | ||
export PYTHONPATH=~/tmp/kaldifeat/kaldifeat/python:$PYTHONPATH | ||
export PYTHONPATH=~/tmp/kaldifeat/build/lib:$PYTHONPATH | ||
sherpa/bin/offline_server.py \ | ||
--port 6006 \ | ||
--num-device 0 \ | ||
--max-batch-size 10 \ | ||
--max-wait-ms 5 \ | ||
--feature-extractor-pool-size 5 \ | ||
--nn-pool-size 1 \ | ||
--nn-model-filename ./icefall-asr-librispeech-pruned-transducer-stateless3-2022-05-13/exp/cpu_jit.pt \ | ||
--bpe-model-filename ./icefall-asr-librispeech-pruned-transducer-stateless3-2022-05-13/data/lang_bpe_500/bpe.model & | ||
echo "Sleep 10 seconds to wait for the server startup" | ||
sleep 10 | ||
- name: Start client | ||
shell: bash | ||
run: | | ||
sherpa/bin/offline_client.py \ | ||
--server-addr localhost \ | ||
--server-port 6006 \ | ||
icefall-asr-librispeech-pruned-transducer-stateless3-2022-05-13//test_wavs/1089-134686-0001.wav \ | ||
icefall-asr-librispeech-pruned-transducer-stateless3-2022-05-13//test_wavs/1221-135766-0001.wav \ | ||
icefall-asr-librispeech-pruned-transducer-stateless3-2022-05-13//test_wavs/1221-135766-0002.wav |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
path.sh | ||
build | ||
dist | ||
__pycache__ | ||
*.egg-info |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
cmake_minimum_required(VERSION 3.8 FATAL_ERROR) | ||
project(sherpa) | ||
|
||
set(SHERPA_VERSION "0.1") | ||
|
||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") | ||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") | ||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") | ||
|
||
set(CMAKE_SKIP_BUILD_RPATH FALSE) | ||
set(BUILD_RPATH_USE_ORIGIN TRUE) | ||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) | ||
set(CMAKE_INSTALL_RPATH "$ORIGIN") | ||
set(CMAKE_BUILD_RPATH "$ORIGIN") | ||
|
||
set(BUILD_SHARED_LIBS ON) | ||
if(WIN32) | ||
message(STATUS "Set BUILD_SHARED_LIBS to OFF for Windows") | ||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) | ||
endif() | ||
|
||
if(NOT CMAKE_BUILD_TYPE) | ||
message(STATUS "No CMAKE_BUILD_TYPE given, default to Release") | ||
set(CMAKE_BUILD_TYPE Release) | ||
endif() | ||
|
||
set(CMAKE_CXX_STANDARD 14 CACHE STRING "The C++ version to be used.") | ||
set(CMAKE_CXX_EXTENSIONS OFF) | ||
|
||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules) | ||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) | ||
|
||
include(pybind11) | ||
include(torch) | ||
|
||
include_directories(${CMAKE_SOURCE_DIR}) | ||
|
||
message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") | ||
|
||
add_subdirectory(sherpa) |
Oops, something went wrong.