chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
---
|
||||
name: ❓ Questions/Help
|
||||
about: Ask for help after checking existing issues and docs
|
||||
labels: 'question, needs triage'
|
||||
---
|
||||
|
||||
Notice: In order to resolve issues efficiently, please follow the template.
|
||||
(注意:为了更加高效率解决您遇到的问题,请按照模板提问,补充细节。)
|
||||
|
||||
## Before asking
|
||||
|
||||
1. Search existing issues: https://github.com/modelscope/FunASR/issues
|
||||
2. Search the docs: https://modelscope.github.io/FunASR/
|
||||
3. Check the README quick start and deployment section.
|
||||
|
||||
## Question
|
||||
|
||||
<!-- What are you trying to do, and where are you blocked? -->
|
||||
|
||||
## Code or command
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
## What have you tried?
|
||||
|
||||
<!-- Include links to docs or examples you followed, plus the exact error/result. -->
|
||||
|
||||
## Environment
|
||||
|
||||
- OS:
|
||||
- Python version:
|
||||
- FunASR version:
|
||||
- ModelScope version:
|
||||
- PyTorch / torchaudio version:
|
||||
- Install method (`pip`, source, Docker):
|
||||
- Device (`cuda`, `cpu`, `mps`):
|
||||
- GPU model:
|
||||
- CUDA/cuDNN version:
|
||||
- Docker image tag, if used:
|
||||
@@ -0,0 +1,64 @@
|
||||
---
|
||||
name: 🐛 Bug Report
|
||||
about: Submit a reproducible bug report to help us improve FunASR
|
||||
labels: 'bug, needs triage'
|
||||
---
|
||||
|
||||
Notice: In order to resolve issues efficiently, please follow the template and include reproducible details.
|
||||
(注意:为了更加高效率解决您遇到的问题,请按照模板提问,补充可复现细节。)
|
||||
|
||||
## 🐛 Bug
|
||||
|
||||
<!-- A clear and concise description of the bug. -->
|
||||
|
||||
## To Reproduce
|
||||
|
||||
Steps to reproduce the behavior. Always include the exact command you ran.
|
||||
|
||||
1. Install with: `...`
|
||||
2. Run: `...`
|
||||
3. See error: `...`
|
||||
|
||||
## Code sample
|
||||
|
||||
<!-- Paste the smallest code sample that still reproduces the issue. -->
|
||||
|
||||
```python
|
||||
|
||||
```
|
||||
|
||||
## Expected behavior
|
||||
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
## Error logs
|
||||
|
||||
<!-- Paste the full traceback or relevant logs. Remove private tokens and paths. -->
|
||||
|
||||
```text
|
||||
|
||||
```
|
||||
|
||||
## Environment
|
||||
|
||||
- OS:
|
||||
- Python version:
|
||||
- FunASR version:
|
||||
- ModelScope version:
|
||||
- PyTorch / torchaudio version:
|
||||
- Install method (`pip`, source, Docker):
|
||||
- Device (`cuda`, `cpu`, `mps`):
|
||||
- GPU model:
|
||||
- CUDA/cuDNN version:
|
||||
- Docker image tag, if used:
|
||||
|
||||
## Audio details
|
||||
|
||||
If the audio cannot be shared, please describe:
|
||||
|
||||
- Duration:
|
||||
- Sample rate:
|
||||
- Format:
|
||||
- Language/dialect:
|
||||
- Speaker count:
|
||||
- Background noise/music:
|
||||
@@ -0,0 +1,11 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: FunASR documentation
|
||||
url: https://modelscope.github.io/FunASR/
|
||||
about: Read installation, tutorial, deployment, benchmark, and API docs.
|
||||
- name: GitHub Discussions
|
||||
url: https://github.com/modelscope/FunASR/discussions
|
||||
about: Share ideas, showcase usage, and ask open-ended community questions.
|
||||
- name: Hugging Face models
|
||||
url: https://huggingface.co/funasr
|
||||
about: Browse FunASR checkpoints on Hugging Face.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
name: 🚀 Deployment Help
|
||||
about: Get help with API server, WebSocket, Docker, vLLM, Triton, Android, or agent integration
|
||||
labels: 'deployment, needs triage'
|
||||
---
|
||||
|
||||
## Deployment target
|
||||
|
||||
- [ ] OpenAI-compatible API server
|
||||
- [ ] WebSocket streaming service
|
||||
- [ ] Docker runtime
|
||||
- [ ] vLLM acceleration
|
||||
- [ ] Triton
|
||||
- [ ] Android / mobile
|
||||
- [ ] Browser / Web UI
|
||||
- [ ] MCP / agent integration
|
||||
- [ ] Other:
|
||||
|
||||
## Goal
|
||||
|
||||
<!-- What user-facing service or workflow are you trying to deploy? -->
|
||||
|
||||
## Command or config
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
## Error or unexpected behavior
|
||||
|
||||
```text
|
||||
|
||||
```
|
||||
|
||||
## Environment
|
||||
|
||||
- OS:
|
||||
- Python version:
|
||||
- FunASR version:
|
||||
- Install method (`pip`, source, Docker):
|
||||
- Device (`cuda`, `cpu`, `mps`):
|
||||
- GPU model and memory:
|
||||
- CUDA/cuDNN version:
|
||||
- Docker image tag, if used:
|
||||
- Network endpoint / port:
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 📚 Documentation/Typos
|
||||
about: Report an issue related to documentation or a typo
|
||||
labels: 'documentation, needs triage'
|
||||
---
|
||||
|
||||
## 📚 Documentation
|
||||
|
||||
For typos and doc fixes, please go ahead and:
|
||||
|
||||
1. Create an issue.
|
||||
2. Fix the typo.
|
||||
3. Submit a PR.
|
||||
|
||||
Thanks!
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: ✨ Feature Request
|
||||
about: Suggest a model, language, runtime, deployment, benchmark, or documentation improvement
|
||||
labels: 'enhancement, needs triage'
|
||||
---
|
||||
|
||||
## Use case
|
||||
|
||||
<!-- What are you trying to build, deploy, evaluate, or research with FunASR? -->
|
||||
|
||||
## Proposed solution
|
||||
|
||||
<!-- Describe the desired model/API/runtime/doc/benchmark behavior. -->
|
||||
|
||||
## Alternatives or workarounds
|
||||
|
||||
<!-- What workaround are you using today? What other tools did you consider? -->
|
||||
|
||||
## Expected impact
|
||||
|
||||
<!-- Who benefits: new users, production deployers, researchers, agent builders, educators, etc.? -->
|
||||
|
||||
## Willing to contribute?
|
||||
|
||||
- [ ] I can submit a PR
|
||||
- [ ] I can help test
|
||||
- [ ] I can provide data, logs, or benchmark results
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
name: 📊 Migration Benchmark Report
|
||||
about: Share FunASR results when comparing against Whisper, OpenAI audio APIs, or cloud ASR
|
||||
labels: 'benchmark, showcase, needs triage'
|
||||
---
|
||||
|
||||
Thanks for benchmarking FunASR on your own audio. Migration reports help new users decide whether FunASR fits their language, domain, hardware, and deployment constraints.
|
||||
|
||||
If you need help debugging a failure, please use Bug Report or Deployment Help instead.
|
||||
|
||||
## Summary
|
||||
|
||||
<!-- One or two sentences: what did you compare, and what was the headline result? -->
|
||||
|
||||
## Baseline
|
||||
|
||||
- Baseline ASR (`Whisper`, `Whisper large-v3`, cloud provider, internal system, other):
|
||||
- Baseline runtime or API:
|
||||
- Baseline hardware or pricing tier:
|
||||
|
||||
## FunASR setup
|
||||
|
||||
- FunASR version:
|
||||
- Model(s):
|
||||
- Runtime path (`Python API`, `funasr-server`, `OpenAI API`, `Docker`, `WebSocket`, `vLLM`, other):
|
||||
- Device (`cuda`, `cpu`, `mps`):
|
||||
- GPU / CPU:
|
||||
- CUDA / PyTorch versions:
|
||||
- Command or script used:
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
## Audio set
|
||||
|
||||
- Number of files:
|
||||
- Total audio duration:
|
||||
- Language(s) / dialect(s):
|
||||
- Domain (`meeting`, `call-center`, `subtitle`, `lecture`, `media`, `noisy field audio`, other):
|
||||
- Speaker count range:
|
||||
- Sample rate / format:
|
||||
- Can any sample be shared publicly? yes/no
|
||||
|
||||
## Results
|
||||
|
||||
<!-- Paste the aggregate section from examples/migration/benchmark_funasr.py summary.md, or summarize your own measurement. -->
|
||||
|
||||
```text
|
||||
|
||||
```
|
||||
|
||||
## Quality notes
|
||||
|
||||
<!-- Share WER/CER if available, or human-review notes about names, numbers, punctuation, timestamps, speaker labels, and domain terms. -->
|
||||
|
||||
## Operational notes
|
||||
|
||||
- Model download / warmup time:
|
||||
- Steady-state throughput:
|
||||
- Memory usage:
|
||||
- Failed files or error rate:
|
||||
- Deployment blockers:
|
||||
|
||||
## Links or artifacts
|
||||
|
||||
<!-- Public repo, demo, blog, benchmark sheet, screenshot, anonymized transcript snippet, or architecture diagram. Do not include private audio, credentials, or customer data. -->
|
||||
|
||||
## What should FunASR improve next?
|
||||
|
||||
<!-- Missing docs, rough edges, model gaps, deployment friction, benchmark needs, etc. -->
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
name: 🎤 Showcase / Production Story
|
||||
about: Share how you use FunASR in a demo, product, benchmark, research project, or internal workflow
|
||||
labels: 'showcase, needs triage'
|
||||
---
|
||||
|
||||
Thanks for sharing your FunASR use case. Concrete usage reports help new users choose the right path and help maintainers prioritize docs, examples, models, and deployment work.
|
||||
|
||||
If this is a support question, please use Bug Report or Deployment Help instead.
|
||||
|
||||
## Summary
|
||||
|
||||
<!-- What did you build or evaluate with FunASR? One or two sentences is enough. -->
|
||||
|
||||
## Scenario
|
||||
|
||||
- [ ] Local transcription demo
|
||||
- [ ] Private OpenAI-compatible speech API
|
||||
- [ ] Agent / MCP / voice-input workflow
|
||||
- [ ] Streaming ASR / live captions
|
||||
- [ ] Subtitle generation
|
||||
- [ ] Batch transcription / archive processing
|
||||
- [ ] Benchmark or migration from Whisper/cloud ASR
|
||||
- [ ] Research / education
|
||||
- [ ] Production deployment
|
||||
- [ ] Other:
|
||||
|
||||
## Deployment details
|
||||
|
||||
- FunASR version:
|
||||
- Model(s):
|
||||
- Device (`cuda`, `cpu`, `mps`):
|
||||
- GPU / CPU:
|
||||
- Runtime path (`Python API`, `funasr-server`, `WebSocket`, `Docker`, `vLLM`, `MCP`, other):
|
||||
- Audio language/domain:
|
||||
- Approximate audio duration or traffic:
|
||||
|
||||
## Results
|
||||
|
||||
<!-- Share speed, accuracy/CER/WER, latency, cost, CPU/GPU usage, or qualitative results if available. -->
|
||||
|
||||
```text
|
||||
|
||||
```
|
||||
|
||||
## Links or screenshots
|
||||
|
||||
<!-- Public demo, article, repo, benchmark report, screenshot, or architecture diagram. Do not include private audio, credentials, or customer data. -->
|
||||
|
||||
## What was easy?
|
||||
|
||||
<!-- Which docs, examples, or APIs helped most? -->
|
||||
|
||||
## What should be improved?
|
||||
|
||||
<!-- Missing docs, rough edges, model gaps, deployment friction, benchmark needs, etc. -->
|
||||
@@ -0,0 +1,28 @@
|
||||
## Summary
|
||||
|
||||
<!-- What changed and why? -->
|
||||
|
||||
## Type of change
|
||||
|
||||
- [ ] Bug fix
|
||||
- [ ] Documentation
|
||||
- [ ] Example or demo
|
||||
- [ ] Runtime or deployment
|
||||
- [ ] Benchmark or evaluation
|
||||
- [ ] Model/training change
|
||||
|
||||
## Validation
|
||||
|
||||
<!-- Commands run, logs, screenshots, benchmark results, or why validation is not applicable. -->
|
||||
|
||||
- [ ] `python -m compileall funasr examples tests`
|
||||
- [ ] Docs or links checked
|
||||
- [ ] Runtime/deployment command tested
|
||||
|
||||
## User impact
|
||||
|
||||
<!-- Who benefits from this change? New users, production deployers, researchers, agent builders, etc. -->
|
||||
|
||||
## Notes for reviewers
|
||||
|
||||
<!-- Compatibility notes, risks, follow-up work, or review focus. -->
|
||||
@@ -0,0 +1,135 @@
|
||||
name: Build llama.cpp runtime binaries
|
||||
|
||||
# Cross-platform prebuilt binaries for the FunASR llama.cpp / GGUF runtime,
|
||||
# like whisper.cpp's whisper-bin-*. Push a `runtime-llamacpp-v*` tag to publish
|
||||
# a GitHub Release with the binaries; or run manually (workflow_dispatch) to test
|
||||
# the build without creating a release.
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- 'runtime-llamacpp-v*'
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: build-${{ matrix.name }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: ubuntu-latest
|
||||
name: linux-x64
|
||||
cmake_flags: >-
|
||||
-DGGML_NATIVE=OFF
|
||||
-DGGML_AVX=OFF
|
||||
-DGGML_AVX2=OFF
|
||||
-DGGML_AVX_VNNI=OFF
|
||||
-DGGML_AVX512=OFF
|
||||
-DGGML_AVX512_VBMI=OFF
|
||||
-DGGML_AVX512_VNNI=OFF
|
||||
-DGGML_AVX512_BF16=OFF
|
||||
-DGGML_FMA=OFF
|
||||
-DGGML_F16C=OFF
|
||||
-DGGML_BMI2=OFF
|
||||
- os: ubuntu-latest
|
||||
name: linux-x64-avx2
|
||||
cmake_flags: >-
|
||||
-DGGML_NATIVE=OFF
|
||||
-DGGML_AVX=ON
|
||||
-DGGML_AVX2=ON
|
||||
-DGGML_AVX_VNNI=OFF
|
||||
-DGGML_AVX512=OFF
|
||||
-DGGML_AVX512_VBMI=OFF
|
||||
-DGGML_AVX512_VNNI=OFF
|
||||
-DGGML_AVX512_BF16=OFF
|
||||
-DGGML_FMA=ON
|
||||
-DGGML_F16C=ON
|
||||
-DGGML_BMI2=ON
|
||||
- os: ubuntu-24.04-arm
|
||||
name: linux-arm64
|
||||
cmake_flags: -DGGML_NATIVE=OFF
|
||||
- os: macos-latest
|
||||
name: macos-arm64
|
||||
cmake_flags: -DGGML_NATIVE=OFF
|
||||
- os: windows-latest
|
||||
name: windows-x64
|
||||
cmake_flags: >-
|
||||
-DGGML_NATIVE=OFF
|
||||
-DGGML_AVX=OFF
|
||||
-DGGML_AVX2=OFF
|
||||
-DGGML_AVX_VNNI=OFF
|
||||
-DGGML_AVX512=OFF
|
||||
-DGGML_AVX512_VBMI=OFF
|
||||
-DGGML_AVX512_VNNI=OFF
|
||||
-DGGML_AVX512_BF16=OFF
|
||||
-DGGML_FMA=OFF
|
||||
-DGGML_F16C=OFF
|
||||
-DGGML_BMI2=OFF
|
||||
- os: windows-latest
|
||||
name: windows-x64-avx2
|
||||
cmake_flags: >-
|
||||
-DGGML_NATIVE=OFF
|
||||
-DGGML_AVX=ON
|
||||
-DGGML_AVX2=ON
|
||||
-DGGML_AVX_VNNI=OFF
|
||||
-DGGML_AVX512=OFF
|
||||
-DGGML_AVX512_VBMI=OFF
|
||||
-DGGML_AVX512_VNNI=OFF
|
||||
-DGGML_AVX512_BF16=OFF
|
||||
-DGGML_FMA=ON
|
||||
-DGGML_F16C=ON
|
||||
-DGGML_BMI2=ON
|
||||
runs-on: ${{ matrix.os }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
working-directory: runtime/llama.cpp
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Configure and build
|
||||
run: |
|
||||
# Release binaries must be portable across user machines, not tuned to
|
||||
# the ephemeral CI runner CPU. A native ggml build may emit AVX512 or
|
||||
# AVX-VNNI instructions and then crash with SIGILL on ordinary CPUs.
|
||||
# Keep the default x64 package conservative, and publish explicit
|
||||
# x64-avx2 assets for machines that support AVX2/FMA/F16C/BMI2.
|
||||
cmake -B build -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmake_flags }}
|
||||
cmake --build build --config Release -j 2
|
||||
- name: Package
|
||||
run: |
|
||||
mkdir -p pkg
|
||||
cp build/bin/llama-funasr-* pkg/ 2>/dev/null || true
|
||||
cp build/bin/Release/llama-funasr-* pkg/ 2>/dev/null || true
|
||||
cp README.md download-funasr-model.sh pkg/ 2>/dev/null || true
|
||||
echo "--- packaged binaries ---"; ls -la pkg
|
||||
if [ "${{ runner.os }}" = "Windows" ]; then
|
||||
7z a "funasr-llamacpp-${{ matrix.name }}.zip" ./pkg/*
|
||||
else
|
||||
tar czf "funasr-llamacpp-${{ matrix.name }}.tar.gz" -C pkg .
|
||||
fi
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: funasr-llamacpp-${{ matrix.name }}
|
||||
path: runtime/llama.cpp/funasr-llamacpp-${{ matrix.name }}.*
|
||||
if-no-files-found: error
|
||||
|
||||
release:
|
||||
needs: build
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: dist
|
||||
merge-multiple: true
|
||||
- name: Create GitHub Release
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
gh release create "${{ github.ref_name }}" dist/* \
|
||||
--repo "${{ github.repository }}" \
|
||||
--title "FunASR llama.cpp runtime ${{ github.ref_name }}" \
|
||||
--notes "Prebuilt self-contained binaries for the FunASR llama.cpp / GGUF runtime — SenseVoice, Paraformer and Fun-ASR-Nano with built-in FSMN-VAD (a whisper.cpp-style on-device ASR, strong on Chinese). Get a model with \`bash download-funasr-model.sh <sensevoice|paraformer|nano>\`, then run \`llama-funasr-cli\` / \`llama-funasr-sensevoice\` / \`llama-funasr-paraformer\`. Use the default x64 asset for maximum CPU compatibility; use the x64-avx2 asset on CPUs with AVX2/FMA/F16C/BMI2 for higher throughput. No Python, no build. Docs: runtime/llama.cpp/README.md"
|
||||
@@ -0,0 +1,21 @@
|
||||
name: Release on tag
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Create GitHub Release with auto-generated notes
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: gh release create "${{ github.ref_name }}" --generate-notes --verify-tag --title "${{ github.ref_name }}"
|
||||
@@ -0,0 +1,33 @@
|
||||
name: Update API Documentation
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- 'funasr/**/*.py'
|
||||
- 'scripts/gen_api_docs.py'
|
||||
- 'training.html'
|
||||
- '.github/workflows/update-api-docs.yml'
|
||||
|
||||
jobs:
|
||||
build-api-docs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Generate API docs
|
||||
run: python3 scripts/gen_api_docs.py
|
||||
|
||||
- name: Deploy to gh-pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./gh-pages-output
|
||||
publish_branch: gh-pages
|
||||
keep_files: true
|
||||
Reference in New Issue
Block a user