diff --git a/web-pages/product-site/content/legacy-manifest.json b/web-pages/product-site/content/legacy-manifest.json
index 2b83e7131..28457cfe9 100644
--- a/web-pages/product-site/content/legacy-manifest.json
+++ b/web-pages/product-site/content/legacy-manifest.json
@@ -37,7 +37,7 @@
"css/index.1682178c.css": "b5f6034ce886c25773928c114e4290d1c491a3d081677b488810198efd76b4e1",
"decoder.js": "f2023a28036b1ff58e5bdabbb72ea427f8faaf60e89acd78ff183c313bdb0a2c",
"donors.html": "eec6b789b29c27d372925ae0ad3e13d4c6e62978b3c38c4da9e3aec129f10934",
- "ecosystem.html": "2214922049961927cc9f45cf379b7205b39b11ce0e687d294b3f60816a63d7a6",
+ "ecosystem.html": "1774b107ae9c29dea63889df7fc72ce9f20482c9531c20a93b956e6d1e735c14",
"en/blog/cantonese-speech-recognition.html": "b9bd146198206f781c37f341c370a690dc83cd7163334e34b4e7f65e69af8ff2",
"en/blog/chinese-speech-recognition.html": "16b68bd2a1122236c580c62275002ae2c0875ca14e32686e88d3b5ccfa9f56ef",
"en/blog/fun-asr-nano-guide.html": "1746c708bd0606188de4266d8255984dd9e14634af33c54ad65a5f05b767be1b",
@@ -67,7 +67,7 @@
"en/blog/voice-activity-detection-python.html": "d12f5d0f4ae07c3434f6188d12f5603b8abb9578413b79133668638d1c5e18a7",
"en/blog/which-funasr-model.html": "1207180aa929a3aa51db136c1098f4edc8f07405e2b56fe033998bf996f8ec7f",
"en/donors.html": "eacb7f9434b1b29e13e9b0175bb9680556ee72ab4dbd155e68f9c912eb0212b1",
- "en/ecosystem.html": "259afda1471c6df08914756b25c0a4a9e0df2c7b1a021643cd8808377a8b6f58",
+ "en/ecosystem.html": "ba37210274c38f1a8aa3cee762e866f2dc5fb70c7690d7313d45f40f9274aa43",
"en/index.html": "4950bc2e0b337637300c5bcd45d1820d9636c4f1dab34e0ec8d3443be44bd277",
"en/llama-cpp.html": "dbfbd125ebbf07f7d923c91b122818f8b09484ce54c1e80eba66a89d22dfb5b4",
"en/models.html": "07421617d1e56a6b5d239fc683bdf62d6bd9e5ecb0f4f82013ee9929cfd91829",
diff --git a/web-pages/product-site/legacy/ecosystem.html b/web-pages/product-site/legacy/ecosystem.html
index 1bca6463c..e5845724c 100644
--- a/web-pages/product-site/legacy/ecosystem.html
+++ b/web-pages/product-site/legacy/ecosystem.html
@@ -122,6 +122,12 @@
语音输入与桌面应用
桌面macOS
+
+
30K+ stars
+
跨平台本地 AI 桌面应用。SenseVoice 集成已在
#7436 合并,通过 sherpa-onnx 在 macOS、Linux 和 Windows 离线自动识别中文、英文、日文、韩文和粤语。当前可在
v1.4.159-rc.1 预发布版使用;v1.4.158 稳定版尚不包含。
+
桌面离线SenseVoice
+
+
2.2K stars
开源 Wispr Flow 替代方案。集成 FunASR 本地模型和可配置大语言模型的桌面语音工作流。
diff --git a/web-pages/product-site/legacy/en/ecosystem.html b/web-pages/product-site/legacy/en/ecosystem.html
index 06fc8200f..799f8ce96 100644
--- a/web-pages/product-site/legacy/en/ecosystem.html
+++ b/web-pages/product-site/legacy/en/ecosystem.html
@@ -123,6 +123,12 @@
Voice Input & Desktop Apps
DesktopmacOS
+
+
30K+ stars
+
Cross-platform local AI desktop app. The SenseVoice integration was
merged in #7436 and uses sherpa-onnx for offline automatic Chinese, English, Japanese, Korean, and Cantonese recognition on macOS, Linux, and Windows. It is available in the
v1.4.159-rc.1 prerelease; v1.4.158 stable predates the integration.
+
DesktopOfflineSenseVoice
+
+
2.2K stars
Open-source Wispr Flow alternative. Desktop voice workflow integrating FunASR local models with configurable LLMs.
diff --git a/web-pages/product-site/tests/test_output.py b/web-pages/product-site/tests/test_output.py
index 0195c594c..404ccfc26 100644
--- a/web-pages/product-site/tests/test_output.py
+++ b/web-pages/product-site/tests/test_output.py
@@ -112,6 +112,24 @@ def test_old_llama_routes_point_to_product_pages(built_site):
)
+@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)
+ anchor = soup.select_one(
+ '.card-title a[href="https://github.com/stablyai/orca"]'
+ )
+
+ assert anchor
+ card = anchor.find_parent(class_='card')
+ assert card
+ links = {link.get('href') for link in card.select('a[href]')}
+ assert 'https://github.com/stablyai/orca/pull/7436' in links
+ assert 'https://github.com/stablyai/orca/releases/tag/v1.4.159-rc.1' in links
+ text = card.get_text(' ', strip=True)
+ for marker in ('SenseVoice', 'macOS', 'Linux', 'Windows', 'v1.4.158'):
+ assert marker in text
+
+
def test_complete_build_passes_output_validation(built_site):
assert validate_output(built_site) == []