chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 13:25:10 +08:00
commit c397331b1e
3684 changed files with 990993 additions and 0 deletions
+41
View File
@@ -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:
+64
View File
@@ -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:
+11
View File
@@ -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.
+45
View File
@@ -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:
+15
View File
@@ -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!
+27
View File
@@ -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. -->
+56
View File
@@ -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. -->
+28
View File
@@ -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"
+21
View File
@@ -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 }}"
+33
View File
@@ -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