diff --git a/web/public/sitemap.xml b/web/public/sitemap.xml index f69c849..48e5dde 100644 --- a/web/public/sitemap.xml +++ b/web/public/sitemap.xml @@ -2,7 +2,7 @@ https://vocalinux.com/ - 2026-02-22 + 2026-06-11 weekly 1.0 @@ -32,19 +32,19 @@ https://vocalinux.com/compare/ - 2026-02-22 + 2026-06-11 monthly 0.8 https://vocalinux.com/changelog/ - 2026-02-22 + 2026-06-11 weekly 0.7 https://vocalinux.com/faq/ - 2026-02-22 + 2026-06-11 monthly 0.8 @@ -62,7 +62,7 @@ https://vocalinux.com/troubleshooting/ - 2026-02-22 + 2026-06-11 monthly 0.7 @@ -87,7 +87,31 @@ https://vocalinux.com/wayland/ - 2026-02-22 + 2026-06-11 + monthly + 0.8 + + + https://vocalinux.com/remote-api/ + 2026-06-11 + monthly + 0.8 + + + https://vocalinux.com/voice-activity-detection/ + 2026-06-11 + monthly + 0.8 + + + https://vocalinux.com/advanced-settings/ + 2026-06-11 + monthly + 0.8 + + + https://vocalinux.com/desktop-reliability/ + 2026-06-11 monthly 0.8 diff --git a/web/src/app/__tests__/seo-assets.test.ts b/web/src/app/__tests__/seo-assets.test.ts index 54a855b..b3160c5 100644 --- a/web/src/app/__tests__/seo-assets.test.ts +++ b/web/src/app/__tests__/seo-assets.test.ts @@ -14,7 +14,9 @@ describe("SEO Assets", () => { }); it("contains sitemap reference in robots.txt", () => { - expect(robotsContent).toContain("Sitemap: https://vocalinux.com/sitemap.xml"); + expect(robotsContent).toContain( + "Sitemap: https://vocalinux.com/sitemap.xml", + ); }); it("blocks crawler access to technical paths", () => { @@ -31,6 +33,10 @@ describe("SEO Assets", () => { "https://vocalinux.com/install/fedora/", "https://vocalinux.com/install/arch/", "https://vocalinux.com/compare/", + "https://vocalinux.com/remote-api/", + "https://vocalinux.com/voice-activity-detection/", + "https://vocalinux.com/advanced-settings/", + "https://vocalinux.com/desktop-reliability/", ]; expectedUrls.forEach((url) => { diff --git a/web/src/app/advanced-settings/page.tsx b/web/src/app/advanced-settings/page.tsx new file mode 100644 index 0000000..9e87024 --- /dev/null +++ b/web/src/app/advanced-settings/page.tsx @@ -0,0 +1,244 @@ +import Link from "next/link"; +import { type Metadata } from "next"; +import { + AlertTriangle, + CheckCircle2, + ChevronRight, + Cpu, + RotateCcw, + Server, + Settings, + SlidersHorizontal, + Sparkles, +} from "lucide-react"; +import { SeoSubpageShell } from "@/components/seo-subpage-shell"; +import { absoluteUrl, buildPageMetadata } from "@/lib/seo"; + +const whisperControls = [ + { + name: "No Timestamps", + detail: + "Disables timestamp token generation to reduce timestamp-related hallucinations.", + }, + { + name: "No Context", + detail: + "Stops whisper.cpp from conditioning on previous text when past context causes error loops.", + }, + { + name: "Temperature", + detail: + "Controls decoding randomness. The default 0.0 keeps dictation deterministic.", + }, + { + name: "Temperature Increment", + detail: + "Sets fallback steps for retry behavior, or disables fallback entirely with -1.0.", + }, + { + name: "Entropy Threshold", + detail: "Helps detect repetition loops during decoding.", + }, + { + name: "Logprob Threshold", + detail: "Triggers fallback when average token confidence is too low.", + }, + { + name: "No-Speech Threshold", + detail: "Controls how strongly whisper.cpp treats audio as silence.", + }, + { + name: "Initial Prompt", + detail: + "Adds names, jargon, punctuation style, or other context to steer transcription.", + }, +]; + +const useCases = [ + "Suppress repeated phrases or timestamp artifacts in long dictation sessions.", + "Bias transcription toward project names, technical jargon, or personal vocabulary.", + "Keep whisper.cpp deterministic for notes, code comments, and messages.", + "Move Remote Server settings out of the way until power-user mode is enabled.", +]; + +export const metadata: Metadata = buildPageMetadata({ + title: "Advanced Whisper.cpp Settings for Linux Dictation", + description: + "Tune Vocalinux advanced whisper.cpp settings for anti-hallucination, decoding thresholds, initial prompts, and Remote API configuration.", + path: "/advanced-settings", + keywords: [ + "whisper.cpp advanced settings", + "whisper anti hallucination linux dictation", + "vocalinux advanced settings", + "whisper.cpp no speech threshold", + ], +}); + +export default function AdvancedSettingsPage() { + const articleJsonLd = { + "@context": "https://schema.org", + "@type": "TechArticle", + headline: "Advanced Whisper.cpp Settings for Linux Dictation", + description: + "Guide to Vocalinux advanced settings for whisper.cpp decoding, anti-hallucination controls, and Remote API configuration.", + dateModified: "2026-06-11", + author: { + "@type": "Person", + name: "Jatin K Malik", + url: "https://github.com/jatinkrmalik", + }, + publisher: { + "@type": "Organization", + name: "Vocalinux", + logo: { + "@type": "ImageObject", + url: absoluteUrl("/vocalinux.png"), + }, + }, + mainEntityOfPage: absoluteUrl("/advanced-settings"), + }; + + return ( + +