Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions web-pages/nginx/conversion-map.conf
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
map $uri $funasr_conversion_target {
default "";
/go/github https://github.com/modelscope/FunASR;
/go/fun-asr https://github.com/QwenAudio/Fun-ASR;
/go/sensevoice https://github.com/QwenAudio/SenseVoice;
/go/funclip https://github.com/modelscope/FunClip;
/go/docs https://github.com/modelscope/FunASR/tree/main/docs;
/go/releases https://github.com/modelscope/FunASR/releases;
/go/deploy-vllm https://www.funasr.com/deploy/vllm.html;
Expand Down
8 changes: 4 additions & 4 deletions web-pages/product-site/content/legacy-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"css/index.1682178c.css": "b5f6034ce886c25773928c114e4290d1c491a3d081677b488810198efd76b4e1",
"decoder.js": "f2023a28036b1ff58e5bdabbb72ea427f8faaf60e89acd78ff183c313bdb0a2c",
"donors.html": "eec6b789b29c27d372925ae0ad3e13d4c6e62978b3c38c4da9e3aec129f10934",
"ecosystem.html": "1774b107ae9c29dea63889df7fc72ce9f20482c9531c20a93b956e6d1e735c14",
"ecosystem.html": "3b227e085d285018188ac3c2891d8940455f661fa7dcfa3a69ef4c4b12a8a7db",
"en/blog/cantonese-speech-recognition.html": "b9bd146198206f781c37f341c370a690dc83cd7163334e34b4e7f65e69af8ff2",
"en/blog/chinese-speech-recognition.html": "16b68bd2a1122236c580c62275002ae2c0875ca14e32686e88d3b5ccfa9f56ef",
"en/blog/fun-asr-nano-guide.html": "1746c708bd0606188de4266d8255984dd9e14634af33c54ad65a5f05b767be1b",
Expand Down Expand Up @@ -67,10 +67,10 @@
"en/blog/voice-activity-detection-python.html": "d12f5d0f4ae07c3434f6188d12f5603b8abb9578413b79133668638d1c5e18a7",
"en/blog/which-funasr-model.html": "1207180aa929a3aa51db136c1098f4edc8f07405e2b56fe033998bf996f8ec7f",
"en/donors.html": "eacb7f9434b1b29e13e9b0175bb9680556ee72ab4dbd155e68f9c912eb0212b1",
"en/ecosystem.html": "ba37210274c38f1a8aa3cee762e866f2dc5fb70c7690d7313d45f40f9274aa43",
"en/ecosystem.html": "e07daf9a241d28b9a25df7d58c693289d61e056cb864faf71095aa6cef7b5b32",
"en/index.html": "4950bc2e0b337637300c5bcd45d1820d9636c4f1dab34e0ec8d3443be44bd277",
"en/llama-cpp.html": "dbfbd125ebbf07f7d923c91b122818f8b09484ce54c1e80eba66a89d22dfb5b4",
"en/models.html": "07421617d1e56a6b5d239fc683bdf62d6bd9e5ecb0f4f82013ee9929cfd91829",
"en/models.html": "c2add621edc3aa63e6d49587f089ee5ac6c05faf5f68e14fef70a7a5ab443a4d",
"en/quickstart.html": "2735cc9e608bfc7860eaa0c0e1242088d98204bca92cfec7ae7923a056f968c4",
"en/vs-whisper.html": "1779f98b2eae8579f3694577bc9dda81bd954423b49dd201ff17dcfb5e630ab1",
"favicon.ico": "e5edd9f12088fa920b848485c62c72a093f27bfba7b6a46b4e7b63c34eb5126a",
Expand All @@ -94,7 +94,7 @@
"lang-redirect.js": "e1189080a8e81eb76cf39e0538d0378b6631f5aa87e4679c0fd4fd34d1f6c197",
"llama-cpp.html": "892b5c05e3375bcc7cd0af343b629f069d8ec4f372e6470cd830cdf2181a11d5",
"logo.png": "ac0ff97f2b0203c3fad4ac5e90231d93e36d98cc8e90d383483de150b0dd0728",
"models.html": "c05da7a2b1aaa7390d0e8d5135ed08646bfb50c357919ad160fd30049eb82364",
"models.html": "2fa557c327c81717e5ae145ae96436168ea51f58301bd7bb6357d4e15686cdfc",
"quickstart.html": "90c5f25b428b064be02df11c38d24556ec97f4bc80900398c223424aaa48e7b8",
"robots.txt": "1305b0f680b3e9f73b01301dc474423230dffab85731a379a694f30c73c07f2d",
"sitemap.xml": "055e1fbf6da8689720eca3ce508b7115dfbb90ebf45cd4cab18d0b13d01aa139",
Expand Down
2 changes: 1 addition & 1 deletion web-pages/product-site/legacy/ecosystem.html
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ <h1>FunASR 生态系统</h1>
<h2>视频与媒体工具</h2>
<div class="card-grid">
<div class="card">
<div class="card-title"><a href="https://github.com/modelscope/FunClip">FunClip</a></div>
<div class="card-title"><a href="/go/funclip">FunClip</a></div>
<div class="card-stars">6K+ stars</div>
<div class="card-desc">基于语音识别的智能视频剪辑。自动生成字幕,支持按关键词和说话人剪辑视频片段。<a href="https://github.com/modelscope/FunClip/releases/tag/v2.1.0">下载 v2.1.0</a></div>
<div><span class="card-tag">视频</span><span class="card-tag green">官方</span></div>
Expand Down
2 changes: 1 addition & 1 deletion web-pages/product-site/legacy/en/ecosystem.html
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ <h1>FunASR Ecosystem</h1>
<h2>Video & Media Tools</h2>
<div class="card-grid">
<div class="card">
<div class="card-title"><a href="https://github.com/modelscope/FunClip">FunClip</a></div>
<div class="card-title"><a href="/go/funclip">FunClip</a></div>
<div class="card-stars">6K+ stars</div>
<div class="card-desc">ASR-powered video clipping. Automatic subtitles, keyword and speaker-based clip extraction. <a href="https://github.com/modelscope/FunClip/releases/tag/v2.1.0">Download v2.1.0</a></div>
<div><span class="card-tag">Video</span><span class="card-tag green">Official</span></div>
Expand Down
4 changes: 2 additions & 2 deletions web-pages/product-site/legacy/en/models.html
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ <h2>ASR Models</h2>

<div class="model-card">
<div class="model-name">Fun-ASR-Nano <span class="badge badge-orange">⭐ Flagship / default</span></div>
<div class="model-meta">800M params &middot; LLM-based (SenseVoice encoder + Qwen3-0.6B) &middot; <a href="https://github.com/QwenAudio/Fun-ASR">GitHub</a> &middot; <a href="https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512">HuggingFace</a></div>
<div class="model-meta">800M params &middot; LLM-based (SenseVoice encoder + Qwen3-0.6B) &middot; <a href="/go/fun-asr">GitHub</a> &middot; <a href="https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512">HuggingFace</a></div>
<div class="model-desc">Next-generation LLM-based ASR model. Combines SenseVoice's audio encoder with Qwen3-0.6B language model for superior context understanding. Supports vLLM acceleration for high-throughput batch inference and real-time streaming. The released <code>model.pt</code> checkpoint does not provide reliable checkpoint-native character timestamps (<a href="https://github.com/QwenAudio/Fun-ASR/issues/106" target="_blank" rel="noopener">issue #106</a>).</div>
<div class="model-features">
<span class="badge badge-green">vLLM accelerated</span>
Expand Down Expand Up @@ -122,7 +122,7 @@ <h3>When to use</h3>

<div class="model-card">
<div class="model-name">SenseVoice Small</div>
<div class="model-meta">234M params &middot; Non-autoregressive &middot; <a href="https://github.com/QwenAudio/SenseVoice">GitHub</a> &middot; <a href="https://huggingface.co/FunAudioLLM/SenseVoiceSmall">HuggingFace</a></div>
<div class="model-meta">234M params &middot; Non-autoregressive &middot; <a href="/go/sensevoice">GitHub</a> &middot; <a href="https://huggingface.co/FunAudioLLM/SenseVoiceSmall">HuggingFace</a></div>
<div class="model-desc">Ultra-fast speech recognition with built-in emotion and audio event detection. Supports 50+ languages including Chinese, English, Japanese, Korean, French, German, and more. Non-autoregressive architecture delivers 170x realtime speed on GPU.</div>
<div class="model-features">
<span class="badge badge-green">170x realtime</span>
Expand Down
4 changes: 2 additions & 2 deletions web-pages/product-site/legacy/models.html
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ <h2>ASR 模型</h2>

<div class="model-card">
<div class="model-name">Fun-ASR-Nano <span class="badge badge-orange">⭐ 旗舰 / 默认推荐</span></div>
<div class="model-meta">800M 参数 &middot; LLM 架构 (SenseVoice 编码器 + Qwen3-0.6B) &middot; <a href="https://github.com/QwenAudio/Fun-ASR">GitHub</a> &middot; <a href="https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512">HuggingFace</a></div>
<div class="model-meta">800M 参数 &middot; LLM 架构 (SenseVoice 编码器 + Qwen3-0.6B) &middot; <a href="/go/fun-asr">GitHub</a> &middot; <a href="https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512">HuggingFace</a></div>
<div class="model-desc">新一代 LLM 架构 ASR 模型。融合 SenseVoice 音频编码器与 Qwen3-0.6B 语言模型,具备更强的上下文理解能力。支持 vLLM 加速的高吞吐批量推理与实时流式服务。发布的 <code>model.pt</code> checkpoint 不提供可靠的原生字级时间戳(<a href="https://github.com/QwenAudio/Fun-ASR/issues/106" target="_blank" rel="noopener">issue #106</a>)。</div>
<div class="model-features">
<span class="badge badge-green">vLLM 加速</span>
Expand Down Expand Up @@ -122,7 +122,7 @@ <h3>适用场景</h3>

<div class="model-card">
<div class="model-name">SenseVoice Small</div>
<div class="model-meta">234M 参数 &middot; 非自回归 &middot; <a href="https://github.com/QwenAudio/SenseVoice">GitHub</a> &middot; <a href="https://huggingface.co/FunAudioLLM/SenseVoiceSmall">HuggingFace</a></div>
<div class="model-meta">234M 参数 &middot; 非自回归 &middot; <a href="/go/sensevoice">GitHub</a> &middot; <a href="https://huggingface.co/FunAudioLLM/SenseVoiceSmall">HuggingFace</a></div>
<div class="model-desc">极速语音识别,内置情感和音频事件检测。支持 50+ 语种,包括中文、英文、日文、韩文、法文、德文等。非自回归架构在 GPU 上实现 170 倍实时速度。</div>
<div class="model-features">
<span class="badge badge-green">170 倍实时</span>
Expand Down
20 changes: 20 additions & 0 deletions web-pages/product-site/tests/test_output.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,26 @@ def test_old_llama_routes_point_to_product_pages(built_site):
)


@pytest.mark.parametrize('relative', ('models.html', 'en/models.html'))
def test_model_pages_use_attributed_repository_routes(built_site, relative):
soup = read_soup(built_site / relative)
hrefs = {link.get('href') for link in soup.select('a[href]')}

assert '/go/fun-asr' in hrefs
assert '/go/sensevoice' in hrefs
assert 'https://github.com/QwenAudio/Fun-ASR' not in hrefs
assert 'https://github.com/QwenAudio/SenseVoice' not in hrefs


@pytest.mark.parametrize('relative', ('ecosystem.html', 'en/ecosystem.html'))
def test_ecosystem_pages_use_attributed_funclip_route(built_site, relative):
soup = read_soup(built_site / relative)
hrefs = {link.get('href') for link in soup.select('a[href]')}

assert '/go/funclip' in hrefs
assert 'https://github.com/modelscope/FunClip' not in hrefs


@pytest.mark.parametrize('relative', ('ecosystem.html', 'en/ecosystem.html'))
def test_ecosystem_surfaces_orca_sensevoice_desktop_integration(built_site, relative):
soup = read_soup(built_site / relative)
Expand Down
9 changes: 9 additions & 0 deletions web-pages/product-site/tests/test_release_scripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,19 @@
NGINX_CONFIG = REPO_ROOT / 'web-pages' / 'nginx' / 'funasr.com.conf'
EXPECTED_FIXED_ROUTES = {
'/go/github',
'/go/fun-asr',
'/go/sensevoice',
'/go/funclip',
'/go/docs',
'/go/releases',
'/go/deploy-vllm',
'/go/deploy-llama-cpp',
}
EXPECTED_REPOSITORY_ROUTES = {
'/go/fun-asr': 'https://github.com/QwenAudio/Fun-ASR',
'/go/sensevoice': 'https://github.com/QwenAudio/SenseVoice',
'/go/funclip': 'https://github.com/modelscope/FunClip',
}


def executable(path: Path, body: str) -> Path:
Expand Down Expand Up @@ -120,6 +128,7 @@ def test_conversion_map_contains_only_fixed_redirects():
routes[route] = target

assert set(routes) == EXPECTED_FIXED_ROUTES
assert EXPECTED_REPOSITORY_ROUTES.items() <= routes.items()
assert all(
target.startswith('https://github.com/') or target.startswith('https://www.funasr.com/')
for target in routes.values()
Expand Down
Loading