}
/>
diff --git a/docs/speech-to-text/streaming/sidebar.ts b/docs/speech-to-text/streaming/sidebar.ts
new file mode 100644
index 00000000..7db30fac
--- /dev/null
+++ b/docs/speech-to-text/streaming/sidebar.ts
@@ -0,0 +1,42 @@
+export default {
+ type: "category",
+ label: "Streaming transcription",
+ items: [
+ {
+ type: "doc",
+ id: "speech-to-text/streaming/quickstart",
+ },
+ {
+ // Anchor link: sidebar hrefs are not checked by onBrokenLinks, so the
+ // target is verified against the built HTML instead.
+ type: "link",
+ href: "/speech-to-text/models#streaming-models",
+ label: "Choosing a model",
+ },
+ {
+ type: "doc",
+ id: "speech-to-text/streaming/input",
+ },
+ {
+ type: "doc",
+ id: "speech-to-text/streaming/output",
+ },
+ {
+ type: "doc",
+ id: "speech-to-text/streaming/limits",
+ },
+ {
+ type: "doc",
+ id: "speech-to-text/streaming/channels",
+ },
+ {
+ type: "doc",
+ id: "speech-to-text/streaming/ffmpeg-audio",
+ },
+ {
+ type: "link",
+ label: "API reference",
+ href: "/api-ref/realtime-transcription-websocket",
+ },
+ ],
+} as const;
diff --git a/docs/voice-agents/assets/basic-quickstart.py b/docs/voice-agents/assets/basic-quickstart.py
deleted file mode 100644
index 621f902d..00000000
--- a/docs/voice-agents/assets/basic-quickstart.py
+++ /dev/null
@@ -1,50 +0,0 @@
-import asyncio
-import os
-from speechmatics.rt import Microphone
-from speechmatics.voice import VoiceAgentClient, AgentServerMessageType
-
-async def main():
- """Stream microphone audio to Speechmatics Voice Agent using 'scribe' preset"""
-
- # Audio configuration
- SAMPLE_RATE = 16000 # Hz
- CHUNK_SIZE = 160 # Samples per read
- PRESET = "scribe" # Configuration preset
-
- # Create client with preset
- client = VoiceAgentClient(
- api_key=os.getenv("YOUR_API_KEY"),
- preset=PRESET
- )
-
- # Handle final segments
- @client.on(AgentServerMessageType.ADD_SEGMENT)
- def on_segment(message):
- for segment in message["segments"]:
- speaker = segment["speaker_id"]
- text = segment["text"]
- print(f"{speaker}: {text}")
-
- # Setup microphone
- mic = Microphone(SAMPLE_RATE, CHUNK_SIZE)
- if not mic.start():
- print("Error: Microphone not available")
- return
-
- # Connect to the Voice agent
- await client.connect()
-
- # Stream microphone audio (interruptible using keyboard)
- try:
- while True:
- audio_chunk = await mic.read(CHUNK_SIZE)
- if not audio_chunk:
- break # Microphone stopped producing data
- await client.send_audio(audio_chunk)
- except KeyboardInterrupt:
- pass
- finally:
- await client.disconnect()
-
-if __name__ == "__main__":
- asyncio.run(main())
\ No newline at end of file
diff --git a/docs/voice-agents/assets/presets.py b/docs/voice-agents/assets/presets.py
deleted file mode 100644
index a85b3028..00000000
--- a/docs/voice-agents/assets/presets.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Presets provide optimized configurations for common use cases:
-
-# External end of turn preset - endpointing handled by the client
-client = VoiceAgentClient(api_key=os.getenv("YOUR_API_KEY"), preset="external")
-
-# Scribe preset - for note-taking
-client = VoiceAgentClient(api_key=os.getenv("YOUR_API_KEY"), preset="scribe")
-
-# Low latency preset - for fast responses
-client = VoiceAgentClient(api_key=os.getenv("YOUR_API_KEY"), preset="low_latency")
-
-# Conversation preset - for natural dialogue
-client = VoiceAgentClient(api_key=os.getenv("YOUR_API_KEY"), preset="conversation_adaptive")
-
-# Advanced conversation with ML turn detection
-client = VoiceAgentClient(api_key=os.getenv("YOUR_API_KEY"), preset="conversation_smart_turn")
-
-# Captions preset - for live captioning
-client = VoiceAgentClient(api_key=os.getenv("YOUR_API_KEY"), preset="captions")
diff --git a/docs/voice-agents/overview.mdx b/docs/voice-agents/overview.mdx
deleted file mode 100644
index 788d7600..00000000
--- a/docs/voice-agents/overview.mdx
+++ /dev/null
@@ -1,56 +0,0 @@
----
-description: Learn how to build voice agents with Speechmatics integrations and the Voice SDK.
----
-import { LinkCard } from "@site/src/theme/LinkCard";
-import { Grid } from "@radix-ui/themes";
-
-# Voice agents overview
-
-There are two ways to build voice agents using Speechmatics:
-
-- Integration partners (LiveKit, Pipecat and VAPI): the fastest path to a production voice agent.
-- Voice SDK: direct access for custom pipelines or working outside of supported integration platforms.
-
-
-## Features
-
-Speechmatics provides building blocks you can use through integrations and the Voice SDK.
-
-Key features include:
-
-- **Turn detection**: detect when a speaker has finished talking.
-- **Intelligent segmentation**: group partial transcripts into clean, speaker-attributed segments.
-- **Diarization**: identify and label different speakers.
-- **Speaker focus**: focus on or ignore specific speakers in multi-speaker scenarios.
-- **Preset configurations**: start quickly with ready-to-use settings.
-
-## Integrations
-
-Use an integration to handle audio transport and wiring, so you can focus on your agent logic:
-
-
- }
- href="/integrations-and-sdks/vapi"
- />
- }
- href="/integrations-and-sdks/livekit"
- />
- }
- href="/integrations-and-sdks/pipecat"
- />
-
-
-## Voice SDK
-
-Use the Voice SDK to handle turn detection, group transcripts into clean segments, and apply diarization for LLM workflows.
-
-See [Voice SDK](/voice-agents/voice-sdk) for information on getting started, presets, and configuration.
diff --git a/docs/voice-agents/sidebar.ts b/docs/voice-agents/sidebar.ts
deleted file mode 100644
index 3645a687..00000000
--- a/docs/voice-agents/sidebar.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-export default {
- type: "category",
- label: "Voice agents",
- collapsible: false,
- collapsed: false,
- items: [
- {
- type: "doc",
- id: "voice-agents/overview",
- label: "Overview",
- },
- {
- type: "doc",
- id: "voice-agents/voice-sdk",
- label: "Voice SDK",
- },
- ],
-} as const;
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index ddfe8c69..7cddad05 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -36,6 +36,9 @@ const config: Config = {
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
+ // Anchors default to "warn". The baseline is clean, so throwing keeps the
+ // ~21 anchors that inbound links and redirects depend on from breaking silently.
+ onBrokenAnchors: "throw",
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
diff --git a/package.json b/package.json
index 01f8a997..2f434fcb 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
"start": "run-p build:jobs-api-ref build:mp-api-ref && dotenv -e .env -e .env.local node_modules/.bin/docusaurus start",
"build": "run-p build:jobs-api-ref build:mp-api-ref && dotenv -e .env -e .env.local node_modules/.bin/docusaurus build",
"build:jobs-spec": "tsx scripts/generate-batch-spec.ts",
- "build:jobs-api-ref": "rimraf docs/api-ref/jobs && npm run build:jobs-spec && docusaurus gen-api-docs jobs",
+ "build:jobs-api-ref": "rimraf docs/api-ref/batch && npm run build:jobs-spec && docusaurus gen-api-docs jobs",
"build:mp-spec": "tsx scripts/generate-mp-spec.ts",
"build:mp-api-ref": "rimraf docs/api-ref/management && npm run build:mp-spec && docusaurus gen-api-docs mp",
"swizzle": "docusaurus swizzle",
diff --git a/scripts/redirects/redirects.json b/scripts/redirects/redirects.json
index 0e049179..10b9001a 100644
--- a/scripts/redirects/redirects.json
+++ b/scripts/redirects/redirects.json
@@ -1,106 +1,342 @@
[
+ {
+ "source": "/features/accuracy-language-packs",
+ "destination": "/speech-to-text/languages#bilingual-and-multi-language-packs"
+ },
{
"source": "/speech-to-text/realtime/realtime_diarization",
- "destination": "/speech-to-text/realtime/realtime-diarization"
+ "destination": "/speech-to-text/features/speaker-diarization"
},
{
"source": "/speech-to-text/batch/batch_diarization",
- "destination": "/speech-to-text/batch/batch-diarization"
+ "destination": "/speech-to-text/features/speaker-diarization"
},
{
"source": "/speech-to-text/batch/tracking",
- "destination": "/speech-to-text/batch/output#tracking-metadata"
+ "destination": "/speech-to-text/pre-recorded/output#tracking-metadata"
},
{
"source": "/speech-to-text/realtime/end-of-turn",
- "destination": "/speech-to-text/realtime/turn-detection"
+ "destination": "/speech-to-text/features/turn-detection"
},
{
"source": "/speech-to-text/realtime/end-of-utterance",
- "destination": "/speech-to-text/realtime/turn-detection"
+ "destination": "/speech-to-text/features/turn-detection"
},
{
"source": "/speech-to-text/realtime/realtime-speaker-identification",
- "destination": "/speech-to-text/realtime/speaker-identification"
+ "destination": "/speech-to-text/features/speaker-identification"
},
{
"source": "/voice-agents-flow/features/application-inputs",
- "destination": "/voice-agents/flow/features/application-inputs"
+ "destination": "/speech-to-text/agent-stt"
},
{
"source": "/voice-agents-flow/setup",
- "destination": "/voice-agents/flow/setup"
+ "destination": "/speech-to-text/agent-stt/quickstart"
},
{
"source": "/voice-agents-flow/features/function-calling",
- "destination": "/voice-agents/flow/features/function-calling"
+ "destination": "/integrations-and-sdks"
},
{
"source": "/voice-agents-flow",
- "destination": "/voice-agents/flow"
+ "destination": "/speech-to-text/agent-stt"
},
{
"source": "/voice-agents-flow/supported-languages",
- "destination": "/voice-agents/flow/supported-languages"
+ "destination": "/speech-to-text/languages"
},
{
"source": "/voice-agents-flow/features/webrtc-livekit",
- "destination": "/voice-agents/flow/features/webrtc-livekit"
+ "destination": "/integrations-and-sdks/livekit"
},
{
"source": "/voice-agents-flow/guides/nextjs-guide",
- "destination": "/voice-agents/flow/guides/nextjs-guide"
+ "destination": "/integrations-and-sdks"
},
{
"source": "/voice-agents-flow/guides/react-native",
- "destination": "/voice-agents/flow/guides/react-native"
+ "destination": "/integrations-and-sdks"
},
{
"source": "/deployments/container",
- "destination": "/deployements/container/accessing-images"
- },
- {
- "source": "/voice-agents-flow",
- "destination": "/voice-agents/flow"
- },
- {
- "source": "/voice-agents-flow",
- "destination": "/voice-agents/flow"
+ "destination": "/deployments/container/accessing-images"
},
{
"source": "/voice-agents/flow",
- "destination": "/voice-agents/overview"
+ "destination": "/speech-to-text/agent-stt"
},
{
"source": "/voice-agents/flow/features/application-inputs",
- "destination": "/voice-agents/overview"
+ "destination": "/speech-to-text/agent-stt"
},
{
"source": "/voice-agents/flow/features/webrtc-livekit",
- "destination": "/voice-agents/overview"
+ "destination": "/integrations-and-sdks/livekit"
},
{
"source": "/voice-agents/flow/setup",
- "destination": "/voice-agents/overview"
+ "destination": "/speech-to-text/agent-stt/quickstart"
},
{
"source": "/voice-agents/flow/supported-languages",
- "destination": "/voice-agents/overview"
+ "destination": "/speech-to-text/languages"
},
{
"source": "/voice-agents/flow/features/function-calling",
- "destination": "/voice-agents/overview"
+ "destination": "/integrations-and-sdks"
},
{
"source": "/voice-agents/flow/guides/nextjs-guide",
- "destination": "/voice-agents/overview"
+ "destination": "/integrations-and-sdks"
},
{
"source": "/voice-agents/flow/guides/react-native",
- "destination": "/voice-agents/overview"
+ "destination": "/integrations-and-sdks"
},
{
"source": "/guides/projects",
"destination": "/administration/projects"
+ },
+ {
+ "source": "/speech-to-text/batch",
+ "destination": "/speech-to-text/pre-recorded/quickstart"
+ },
+ {
+ "source": "/speech-to-text/realtime",
+ "destination": "/speech-to-text/streaming/quickstart"
+ },
+ {
+ "source": "/speech-to-text/batch/alignment",
+ "destination": "/speech-to-text/add-ons/audio-alignment"
+ },
+ {
+ "source": "/speech-to-text/batch/batch-diarization",
+ "destination": "/speech-to-text/features/speaker-diarization"
+ },
+ {
+ "source": "/speech-to-text/batch/input",
+ "destination": "/speech-to-text/pre-recorded/input"
+ },
+ {
+ "source": "/speech-to-text/batch/language-identification",
+ "destination": "/speech-to-text/pre-recorded/language-identification"
+ },
+ {
+ "source": "/speech-to-text/batch/limits",
+ "destination": "/speech-to-text/pre-recorded/limits"
+ },
+ {
+ "source": "/speech-to-text/batch/notifications",
+ "destination": "/speech-to-text/pre-recorded/notifications"
+ },
+ {
+ "source": "/speech-to-text/batch/output",
+ "destination": "/speech-to-text/pre-recorded/output"
+ },
+ {
+ "source": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart"
+ },
+ {
+ "source": "/speech-to-text/batch/speaker-identification",
+ "destination": "/speech-to-text/features/speaker-identification"
+ },
+ {
+ "source": "/speech-to-text/batch/speech-intelligence/auto-chapters",
+ "destination": "/speech-to-text/add-ons/chapters"
+ },
+ {
+ "source": "/speech-to-text/batch/speech-intelligence/sentiment-analysis",
+ "destination": "/speech-to-text/add-ons/sentiment"
+ },
+ {
+ "source": "/speech-to-text/batch/speech-intelligence/summarization",
+ "destination": "/speech-to-text/add-ons/summaries"
+ },
+ {
+ "source": "/speech-to-text/batch/speech-intelligence/topic-detection",
+ "destination": "/speech-to-text/add-ons/topics"
+ },
+ {
+ "source": "/speech-to-text/batch/srt-format",
+ "destination": "/speech-to-text/pre-recorded/srt-format"
+ },
+ {
+ "source": "/speech-to-text/batch/synchronous",
+ "destination": "/speech-to-text/pre-recorded/synchronous"
+ },
+ {
+ "source": "/speech-to-text/batch/troubleshooting",
+ "destination": "/speech-to-text/pre-recorded/troubleshooting"
+ },
+ {
+ "source": "/speech-to-text/batch/usage",
+ "destination": "/administration/usage"
+ },
+ {
+ "source": "/speech-to-text/realtime/guides/python-using-ffmpeg",
+ "destination": "/speech-to-text/streaming/ffmpeg-audio"
+ },
+ {
+ "source": "/speech-to-text/realtime/guides/python-using-microphone",
+ "destination": "/speech-to-text/streaming/quickstart"
+ },
+ {
+ "source": "/speech-to-text/realtime/input",
+ "destination": "/speech-to-text/streaming/input"
+ },
+ {
+ "source": "/speech-to-text/realtime/limits",
+ "destination": "/speech-to-text/streaming/limits"
+ },
+ {
+ "source": "/speech-to-text/realtime/output",
+ "destination": "/speech-to-text/streaming/output"
+ },
+ {
+ "source": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart"
+ },
+ {
+ "source": "/speech-to-text/realtime/realtime-diarization",
+ "destination": "/speech-to-text/features/speaker-diarization"
+ },
+ {
+ "source": "/speech-to-text/realtime/speaker-identification",
+ "destination": "/speech-to-text/features/speaker-identification"
+ },
+ {
+ "source": "/speech-to-text/realtime/turn-detection",
+ "destination": "/speech-to-text/features/turn-detection"
+ },
+ {
+ "source": "/speech-to-text/batch/input#fetch-url",
+ "destination": "/speech-to-text/pre-recorded/input#fetch-url"
+ },
+ {
+ "source": "/speech-to-text/batch/output#tracking-metadata",
+ "destination": "/speech-to-text/pre-recorded/output#tracking-metadata"
+ },
+ {
+ "source": "/speech-to-text/realtime/output#latency",
+ "destination": "/speech-to-text/streaming/output#latency"
+ },
+ {
+ "source": "/speech-to-text/batch/speech-intelligence/auto-chapters/",
+ "destination": "/speech-to-text/add-ons/chapters"
+ },
+ {
+ "source": "/private/voice-agent-api",
+ "destination": "/speech-to-text/agent-stt"
+ },
+ {
+ "source": "/speech-to-text/formatting",
+ "destination": "/speech-to-text/features/formatting"
+ },
+ {
+ "source": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting"
+ },
+ {
+ "source": "/speech-to-text/formatting#punctuation",
+ "destination": "/speech-to-text/features/formatting#punctuation"
+ },
+ {
+ "source": "/speech-to-text/formatting#output-formatting-options",
+ "destination": "/speech-to-text/features/disfluencies-and-profanities"
+ },
+ {
+ "source": "/speech-to-text/features/diarization",
+ "destination": "/speech-to-text/features/speaker-diarization"
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/batch-diarization",
+ "destination": "/speech-to-text/features/speaker-diarization"
+ },
+ {
+ "source": "/speech-to-text/streaming/realtime-diarization",
+ "destination": "/speech-to-text/features/speaker-diarization"
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speaker-identification",
+ "destination": "/speech-to-text/features/speaker-identification"
+ },
+ {
+ "source": "/speech-to-text/streaming/speaker-identification",
+ "destination": "/speech-to-text/features/speaker-identification"
+ },
+ {
+ "source": "/speech-to-text/streaming/turn-detection",
+ "destination": "/speech-to-text/features/turn-detection"
+ },
+ {
+ "source": "/speech-to-text/streaming/guides/python-using-ffmpeg",
+ "destination": "/speech-to-text/streaming/ffmpeg-audio"
+ },
+ {
+ "source": "/speech-to-text/streaming/guides/python-using-microphone",
+ "destination": "/speech-to-text/streaming/quickstart"
+ },
+ {
+ "source": "/speech-to-text/app-analytics",
+ "destination": "/speech-to-text/features/app-usage-tracking"
+ },
+ {
+ "source": "/speech-to-text/streaming/turn-detection#configuration",
+ "destination": "/speech-to-text/features/turn-detection#configuration"
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speech-intelligence/summarization",
+ "destination": "/speech-to-text/add-ons/summaries"
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speech-intelligence/topic-detection",
+ "destination": "/speech-to-text/add-ons/topics"
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speech-intelligence/auto-chapters",
+ "destination": "/speech-to-text/add-ons/chapters"
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speech-intelligence/sentiment-analysis",
+ "destination": "/speech-to-text/add-ons/sentiment"
+ },
+ {
+ "source": "/speech-to-text/features/translation",
+ "destination": "/speech-to-text/add-ons/translation"
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/alignment",
+ "destination": "/speech-to-text/add-ons/audio-alignment"
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speech-intelligence",
+ "destination": "/speech-to-text/add-ons/summaries"
+ },
+ {
+ "source": "/speech-to-text/features/translation#languages",
+ "destination": "/speech-to-text/add-ons/translation#languages"
+ },
+ {
+ "source": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt"
+ },
+ {
+ "source": "/voice-agents",
+ "destination": "/speech-to-text/agent-stt"
+ },
+ {
+ "source": "/voice-agents/voice-sdk",
+ "destination": "/integrations-and-sdks/voice-sdk"
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/usage",
+ "destination": "/administration/usage"
+ },
+ {
+ "source": "/get-started/quickstart",
+ "destination": "/"
}
]
diff --git a/sidebars.ts b/sidebars.ts
index 3eab70ba..e9de13fc 100644
--- a/sidebars.ts
+++ b/sidebars.ts
@@ -5,14 +5,12 @@ import gettingStartedSidebar from "./docs/get-started/sidebar";
import integrationsAndSDKSidebar from "./docs/integrations-and-sdks/sidebar";
import speechToTextSidebar from "./docs/speech-to-text/sidebar";
import textToSpeechSidebar from "./docs/text-to-speech/sidebar";
-import voiceAgentsSidebar from "./docs/voice-agents/sidebar";
export default {
docs: [
gettingStartedSidebar,
speechToTextSidebar,
textToSpeechSidebar,
- voiceAgentsSidebar,
integrationsAndSDKSidebar,
deploymentsSidebar,
administrationSidebar,
diff --git a/spec/batch.yaml b/spec/batch.yaml
index 112ddd74..64edba23 100644
--- a/spec/batch.yaml
+++ b/spec/batch.yaml
@@ -1768,7 +1768,7 @@ definitions:
properties:
text:
type: string
- description: Represents the transcript of the analysed segment
+ description: Represents the transcript of the analyzed segment
sentiment:
type: string
description: The assigned sentiment to the segment, which can be positive, neutral or negative
diff --git a/spec/flow-api.yaml b/spec/flow-api.yaml
deleted file mode 100644
index b5f55428..00000000
--- a/spec/flow-api.yaml
+++ /dev/null
@@ -1,910 +0,0 @@
-asyncapi: 3.0.0
-id: "urn:com:speechmatics:flow-service"
-defaultContentType: application/json
-info:
- title: Speechmatics Flow API
- version: "1.0.0"
- contact:
- name: Speechmatics Support
- url: https://www.speechmatics.com/product/support/
- email: support@speechmatics.com
- externalDocs:
- description: "Flow API Reference"
- url: https://docs.speechmatics.com/api-ref/flow-voice-ai
-
-servers:
- default:
- host: flow.api.speechmatics.com/
- protocol: wss
- protocolVersion: v13 (RFC 6455)
- description: Flow server
- variables:
- ports:
- default: "9000"
-
-channels:
- publish:
- address: /v1/flow
- messages:
- StartConversation:
- $ref: "#/components/messages/StartConversation"
- AddAudio:
- $ref: "#/components/messages/AddAudio"
- AudioReceived:
- $ref: "#/components/messages/AudioReceived"
- AudioEnded:
- $ref: "#/components/messages/AudioEnded"
- AddInput:
- $ref: "#/components/messages/AddInput"
- ToolResult:
- $ref: "#/components/messages/ToolResult"
- subscribe:
- address: /v1/flow
- messages:
- ConversationStarted:
- $ref: "#/components/messages/ConversationStarted"
- AddAudio:
- $ref: "#/components/messages/AddAudio"
- AudioAdded:
- $ref: "#/components/messages/AudioAdded"
- AddPartialTranscript:
- $ref: "#/components/messages/AddPartialTranscript"
- AddTranscript:
- $ref: "#/components/messages/AddTranscript"
- ResponseStarted:
- $ref: "#/components/messages/ResponseStarted"
- ResponseCompleted:
- $ref: "#/components/messages/ResponseCompleted"
- ResponseInterrupted:
- $ref: "#/components/messages/ResponseInterrupted"
- ToolInvoke:
- $ref: "#/components/messages/ToolInvoke"
- Error:
- $ref: "#/components/messages/Error"
- Warning:
- $ref: "#/components/messages/Warning"
- Info:
- $ref: "#/components/messages/Info"
- ConversationEnding:
- $ref: "#/components/messages/ConversationEnding"
- ConversationEnded:
- $ref: "#/components/messages/ConversationEnded"
-
-operations:
- publish:
- action: send
- channel:
- $ref: "#/channels/publish"
- messages:
- - $ref: "#/channels/publish/messages/StartConversation"
- - $ref: "#/channels/publish/messages/AddAudio"
- - $ref: "#/channels/publish/messages/AudioReceived"
- - $ref: "#/channels/publish/messages/AudioEnded"
- - $ref: "#/channels/publish/messages/AddInput"
- - $ref: "#/channels/publish/messages/ToolResult"
-
- subscribe:
- action: receive
- channel:
- $ref: "#/channels/subscribe"
- messages:
- - $ref: "#/channels/subscribe/messages/ConversationStarted"
- - $ref: "#/channels/subscribe/messages/AddAudio"
- - $ref: "#/channels/subscribe/messages/AudioAdded"
- - $ref: "#/channels/subscribe/messages/AddPartialTranscript"
- - $ref: "#/channels/subscribe/messages/AddTranscript"
- - $ref: "#/channels/subscribe/messages/ResponseStarted"
- - $ref: "#/channels/subscribe/messages/ResponseCompleted"
- - $ref: "#/channels/subscribe/messages/ResponseInterrupted"
- - $ref: "#/channels/subscribe/messages/ToolInvoke"
- - $ref: "#/channels/subscribe/messages/Error"
- - $ref: "#/channels/subscribe/messages/Warning"
- - $ref: "#/channels/subscribe/messages/Info"
- - $ref: "#/channels/subscribe/messages/ConversationEnding"
- - $ref: "#/channels/subscribe/messages/ConversationEnded"
-
-components:
- messages:
- StartConversation:
- summary: Initiates a new conversation session.
- payload:
- $ref: "#/components/schemas/StartConversation"
- AddAudio:
- summary: A binary chunk of audio. The server confirms receipt by sending an AudioAdded message.
- contentType: application/octet-stream
- payload:
- $ref: "#/components/schemas/AddAudio"
- AudioReceived:
- summary: Client response to AddAudio, indicating that server audio has been added to the client successfully.
- payload:
- $ref: "#/components/schemas/AudioReceived"
- AudioEnded:
- summary: Declares that the client has no more audio to send.
- payload:
- $ref: "#/components/schemas/AudioEnded"
- AddInput:
- summary: Message used by the application client to send input to the LLM in order to influence the conversation.
- payload:
- $ref: "#/components/schemas/AddInput"
- ConversationStarted:
- summary: Server response to StartConversation, acknowledging that a conversation session has started.
- payload:
- $ref: "#/components/schemas/ConversationStarted"
- AudioAdded:
- summary: Server response to AddAudio, indicating that audio has been added successfully.
- payload:
- $ref: "#/components/schemas/AudioAdded"
- AddPartialTranscript:
- summary: Contains a work-in-progress transcript of a part of the audio that the client has sent.
- payload:
- $ref: "#/components/schemas/AddPartialTranscript"
- AddTranscript:
- summary: Contains the final transcript of a part of the audio that the client has sent.
- payload:
- $ref: "#/components/schemas/AddTranscript"
- ResponseStarted:
- summary: Indicates the start of a response from the agent.
- payload:
- $ref: "#/components/schemas/ResponseStarted"
- ResponseCompleted:
- summary: Indicates the completion of a response from the agent.
- payload:
- $ref: "#/components/schemas/ResponseCompleted"
- ResponseInterrupted:
- summary: Indicates that a response from the agent was interrupted.
- payload:
- $ref: "#/components/schemas/ResponseInterrupted"
- ToolInvoke:
- summary: Invokes a tool with the specified parameters.
- payload:
- $ref: "#/components/schemas/ToolInvoke"
- ToolResult:
- summary: Contains the result of a tool invocation.
- payload:
- $ref: "#/components/schemas/ToolResult"
- Info:
- summary: Additional information sent from the server to the client.
- payload:
- $ref: "#/components/schemas/Info"
- Warning:
- summary: Warning messages sent from the server to the client.
- payload:
- $ref: "#/components/schemas/Warning"
- Error:
- summary: Error messages sent from the server to the client.
- payload:
- $ref: "#/components/schemas/Error"
- ConversationEnding:
- summary: Indicates starting of the session transfer procedure
- payload:
- $ref: "#/components/schemas/ConversationEnding"
- ConversationEnded:
- summary: Server ends the conversation, after the server has finished sending all other messages.
- payload:
- $ref: "#/components/schemas/ConversationEnded"
-
- schemas:
- TypeEnum:
- type: string
- enum:
- - word
- - punctuation
-
- AttachesToEnum:
- type: string
- enum:
- - next
- - previous
- - none
- - both
-
- StatusEnum:
- type: string
- enum:
- - ok
- - rejected
- - failed
-
- WarningTypeEnum:
- type: string
- enum:
- - high_asr_latency
- - llm_error
- - high_llm_latency
- - llm_request_content_filter
- - tts_error
- - high_tts_latency
- - protocol_error
- - idle_timeout
- - session_timeout
- # conversation_termination has extra fields so it handled separately
-
- ErrorTypeEnum:
- type: string
- enum:
- - asr_error
- - protocol_error
- - config_error
- - idle_timeout
- - session_timeout
- - not_allowed
- - not_authorised
- - quota_exceeded
- - timelimit_exceeded
- - job_error
- - internal_error
- - unknown_error
-
- ToolTypeEnum:
- type: string
- description: The type of tool to use. At the moment, only `function` is supported.
- enum:
- - function
-
- ToolFunctionParameterTypeEnum:
- type: string
- enum:
- - integer
- - number
- - string
- - boolean
-
- AudioFormatRawEncodingEnum:
- type: string
- enum:
- - pcm_f32le
- - pcm_s16le
- - mulaw
- default: pcm_s16le
-
- ToolFunctionParametersTypeEnum:
- type: string
- enum:
- - object
-
- OperatingPoint:
- type: string
- enum:
- - standard
- - enhanced
-
- DiarizationConfigEnum:
- type: string
- enum:
- - none
- - speaker
-
- MaxDelayModeConfigEnum:
- type: string
- enum:
- - flexible
- - fixed
-
- RecognitionDisplayDirectionEnum:
- type: string
- enum:
- - ltr
- - rtl
-
- StartConversation:
- type: object
- properties:
- message:
- const: StartConversation
- audio_format:
- $ref: "#/components/schemas/AudioFormat"
- conversation_config:
- $ref: "#/components/schemas/ConversationConfig"
- tools:
- $ref: "#/components/schemas/ToolsArray"
- debug:
- $ref: "#/components/schemas/DebugObject"
- required:
- - message
- - conversation_config
-
- ToolsArray:
- type: array
- items:
- $ref: "#/components/schemas/ToolConfig"
- description: >
- A list of tools that the LLM can use during the conversation.
-
- DebugObject:
- type: object
- properties:
- llm:
- type: boolean
- additionalProperties: true
-
- AddAudio:
- type: string
- format: binary
-
- AudioReceived:
- type: object
- properties:
- message:
- const: AudioReceived
- seq_no:
- type: integer
- required:
- - message
- - seq_no
-
- AudioEnded:
- type: object
- properties:
- message:
- const: AudioEnded
- last_seq_no:
- type: integer
- required:
- - message
- - last_seq_no
-
- AddInput:
- type: object
- properties:
- message:
- const: AddInput
- input:
- type: string
- description: >
- The information that the LLM must incorporate in the response
- interrupt_response:
- type: boolean
- default: false
- description: >
- If true, the response will be interrupted by the new input.
- If false, the response will continue until it is complete, defaults to false.
- immediate:
- type: boolean
- default: false
- description: >
- If true, the input will be treated as urgent and will be sent to LLM immediately.
- If false, new input will be added to current prompt and sent to LLM as a part of the next request.
- required:
- - message
- - input
-
- ConversationStarted:
- type: object
- properties:
- message:
- const: ConversationStarted
- id:
- type: string
- asr_session_id:
- type: string
- language_pack_info:
- $ref: "#/components/schemas/LanguagePackInfo"
- required:
- - message
-
- AudioAdded:
- type: object
- properties:
- message:
- const: AudioAdded
- seq_no:
- type: integer
- required:
- - message
- - seq_no
-
- AddPartialTranscript:
- type: object
- properties:
- message:
- const: AddPartialTranscript
- format:
- type: string
- example: "2.1"
- description: Speechmatics JSON output format version number.
- metadata:
- $ref: "#/components/schemas/RecognitionMetadata"
- results:
- $ref: "#/components/schemas/RecognitionResultArray"
- required:
- - message
- - metadata
- - results
-
- AddTranscript:
- type: object
- properties:
- message:
- const: AddTranscript
- format:
- type: string
- example: "2.1"
- description: Speechmatics JSON output format version number.
- metadata:
- $ref: "#/components/schemas/RecognitionMetadata"
- results:
- $ref: "#/components/schemas/RecognitionResultArray"
- required:
- - message
- - metadata
- - results
-
- RecognitionResultArray:
- type: array
- items:
- $ref: "#/components/schemas/RecognitionResult"
-
- ResponseStarted:
- type: object
- properties:
- message:
- const: ResponseStarted
- content:
- type: string
- description: The content that is spoken by the agent in the response.
- start_time:
- type: number
- format: float
- description: The start time of the spoken response, relative to the start of the session.
- required:
- - message
- - content
- - start_time
-
- ResponseCompleted:
- type: object
- properties:
- message:
- const: ResponseCompleted
- content:
- type: string
- description: The content that is spoken by the agent in the response.
- start_time:
- type: number
- format: float
- description: The start time of the spoken response, relative to the start of the session.
- end_time:
- type: number
- format: float
- description: The end time of the spoken response, relative to the start of the session.
- required:
- - message
- - content
- - start_time
- - end_time
-
- ResponseInterrupted:
- type: object
- properties:
- message:
- const: ResponseInterrupted
- content:
- type: string
- description: The content that is spoken by the agent in the response.
- start_time:
- type: number
- format: float
- description: The start time of the spoken response, relative to the start of the session.
- end_time:
- type: number
- format: float
- description: The end time of the spoken response, relative to the start of the session.
- required:
- - message
- - content
- - start_time
- - end_time
-
- ToolInvoke:
- type: object
- required:
- - message
- - id
- - type
- - function
- properties:
- message:
- const: ToolInvoke
- id:
- type: string
- description: The id of the tool invoke.
- type:
- const: function
- function:
- $ref: "#/components/schemas/ToolFunction"
-
- ToolFunction:
- type: object
- required:
- - name
- - arguments
- properties:
- name:
- type: string
- description: The name of the tool to invoke.
- arguments:
- type: object
- additionalProperties:
- oneOf:
- - type: string
- - type: integer
- - type: boolean
-
- ToolResult:
- type: object
- required:
- - message
- - id
- - status
- properties:
- message:
- const: ToolResult
- id:
- type: string
- description: The id of the tool invoke.
- status:
- $ref: "#/components/schemas/StatusEnum"
- description: The status of the tool invocation.
- content:
- type: string
- description: The content of the tool result.
-
- Info:
- oneOf:
- - $ref: "#/components/schemas/StatusUpdateInfo"
- - $ref: "#/components/schemas/ConversationDurationLimitInfo"
- - $ref: "#/components/schemas/ConcurrentSessionUsage"
- discrimator:
- propertyName: type
-
- BaseInfo:
- type: object
- properties:
- message:
- const: Info
- reason:
- type: string
- required:
- - message
- - reason
-
- StatusUpdateInfo:
- title: StatusUpdate
- allOf:
- - $ref: '#/components/schemas/BaseInfo'
- - type: object
- properties:
- type:
- const: status_update
- event:
- type: object
- required:
- - prev_status
- - status
- properties:
- prev_status:
- type: string
- status:
- type: string
- required:
- - type
- - event
-
- ConversationDurationLimitInfo:
- title: ConversationDurationLimit
- allOf:
- - $ref: '#/components/schemas/BaseInfo'
- - type: object
- properties:
- type:
- const: conversation_duration_limit
- conversation_duration_limit:
- type: integer
- required:
- - type
- - conversation_duration_limit
-
- ConcurrentSessionUsage:
- title: ConcurrentSessionUsage
- allOf:
- - $ref: '#/components/schemas/BaseInfo'
- - type: object
- properties:
- type:
- const: concurrent_session_usage
- usage:
- type: integer
- quota:
- type: integer
- last_udpated:
- type: string
- format: date-time
- required:
- - type
- - usage
- - quota
- - last_updated
-
- Warning:
- oneOf:
- - $ref: "#/components/schemas/DefaultWarning"
- - $ref: "#/components/schemas/ConversationTermination"
- discrimator:
- propertyName: type
-
- BaseWarning:
- type: object
- properties:
- message:
- const: Warning
- reason:
- type: string
- required:
- - message
- - reason
-
- DefaultWarning:
- title: DefaultWarning
- allOf:
- - $ref: "#/components/schemas/BaseWarning"
- - type: object
- properties:
- type:
- $ref: "#/components/schemas/WarningTypeEnum"
- required:
- - type
-
- ConversationTermination:
- title: ConversationTermination
- allOf:
- - $ref: "#/components/schemas/BaseWarning"
- - type: object
- properties:
- type:
- const: conversation_termination
- conversation_termination:
- type: integer
- required:
- - type
- - conversation_termination
-
- Error:
- type: object
- properties:
- message:
- const: Error
- type:
- $ref: "#/components/schemas/ErrorTypeEnum"
- reason:
- type: string
- required:
- - message
- - type
- - reason
-
- ConversationEnding:
- type: object
- properties:
- message:
- const: ConversationEnding
- required:
- - message
-
- ConversationEnded:
- type: object
- properties:
- message:
- const: ConversationEnded
- required:
- - message
-
- ConversationConfig:
- type: object
- required:
- - template_id
- properties:
- template_id:
- type: string
- # description: The id of the agent or persona to use during the conversation.
- description: |
- Required in the the `StartConversation` message in the Flow API. Generated from the [Speechmatics Portal](https://portal.speechmatics.com/). This maps to the [language supported](/voice-agents/flow/supported-languages), agent's prompt, LLM, TTS voice, & custom dictionary. These can be customised by creating or modifying agents in the Portal.
- template_variables:
- type: object
- additionalProperties:
- type: string
-
- ToolConfig:
- type: object
- additionalProperties: false
- required:
- - type
- - function
- properties:
- type:
- $ref: "#/components/schemas/ToolTypeEnum"
- description: The type of the tool (currently, must be 'function').
- function:
- $ref: "#/components/schemas/ToolFunctionConfig"
-
- ToolFunctionConfig:
- type: object
- additionalProperties: false
- description: The function that the tool will call.
- required:
- - name
- properties:
- name:
- type: string
- description: The name of the function that should be called. This name is passed as a field in the ToolInvoke message
- description:
- type: string
- description: |
- A natural language string that instructs the LLM about the condition in which the function must be called
- parameters:
- $ref: "#/components/schemas/ToolFunctionParameters"
-
- ToolFunctionParameters:
- type: object
- additionalProperties: false
- description: |
- An object containing the `properties` of the function call which should be collected from the conversation. Each parameter is defined by:
- properties:
- type:
- $ref: "#/components/schemas/ToolFunctionParametersTypeEnum"
- description: The type of the parameters (currently, will always be object).
- required:
- type: array
- description: |
- (optional) The list of input parameters for the function which are required.
- items:
- type: string
- properties:
- $ref: "#/components/schemas/ToolFunctionParameterProperties"
-
- ToolFunctionParameterProperties:
- type: object
- description: |
- Properties of the function parameter object
- additionalProperties:
- $ref: "#/components/schemas/ToolFunctionParameter"
-
- ToolFunctionParameter:
- type: object
- additionalProperties: false
- required:
- - type
- properties:
- type:
- $ref: "#/components/schemas/ToolFunctionParameterTypeEnum"
- description: The type of the parameter
- description:
- type: string
- description: A description of the parameter.
- enum:
- type: array
- items:
- x-union-string-int: true
- example:
- type: string
- description: An example value for the parameter.
-
- AudioFormat:
- type: object
- properties:
- type:
- const: raw
- encoding:
- $ref: "#/components/schemas/AudioFormatRawEncodingEnum"
- sample_rate:
- type: integer
- default: 16000
- required:
- - type
-
- LanguagePackInfo:
- type: object
- description: Properties of the language pack.
- required: [
- word_delimiter
- ]
- properties:
- language_description:
- type: string
- description: Full descriptive name of the language, e.g. 'Japanese'.
- word_delimiter:
- type: string
- description: The character to use to separate words.
- writing_direction:
- type: string
- enum: [
- left-to-right,
- right-to-left
- ]
- description: The direction that words in the language should be written and read in.
- itn:
- type: boolean
- description: Whether or not ITN (inverse text normalization) is available for the language pack.
- adapted:
- type: boolean
- description: Whether or not language model adaptation has been applied to the language pack.
-
- RecognitionMetadata:
- type: object
- properties:
- start_time:
- type: number
- format: float
- end_time:
- type: number
- format: float
- transcript:
- type: string
- required:
- - start_time
- - end_time
- - transcript
-
- RecognitionResult:
- type: object
- properties:
- type:
- $ref: "#/components/schemas/TypeEnum"
- start_time:
- type: number
- format: float
- end_time:
- type: number
- format: float
- channel:
- type: string
- attaches_to:
- $ref: "#/components/schemas/AttachesToEnum"
- is_eos:
- type: boolean
- alternatives:
- $ref: "#/components/schemas/RecognitionAlternativeArray"
- score:
- type: number
- format: float
- minimum: 0
- maximum: 1
- volume:
- type: number
- format: float
- minimum: 0
- maximum: 100
- required:
- - type
- - start_time
- - end_time
-
- RecognitionAlternativeArray:
- type: array
- items:
- $ref: "#/components/schemas/RecognitionAlternative"
-
- RecognitionAlternative:
- type: object
- properties:
- content:
- type: string
- confidence:
- type: number
- format: float
- language:
- type: string
- display:
- $ref: "#/components/schemas/RecognitionDisplay"
- speaker:
- type: string
- required:
- - content
- - confidence
-
- RecognitionDisplay:
- type: object
- required:
- - direction
- properties:
- direction:
- $ref: "#/components/schemas/RecognitionDisplayDirectionEnum"
diff --git a/spec/realtime.yaml b/spec/realtime.yaml
index 53bd0887..15683748 100644
--- a/spec/realtime.yaml
+++ b/spec/realtime.yaml
@@ -179,7 +179,7 @@ components:
Partials will only be sent if `transcription_config.enable_partials` is set to `true` in the `StartRecognition` message.
- The message structure is the same as `AddTranscript`, with a few [limitations](https://docs.speechmatics.com/speech-to-text/realtime/output#partial-transcripts).
+ The message structure is the same as `AddTranscript`, with a few [limitations](https://docs.speechmatics.com/speech-to-text/streaming/output#partial-transcripts).
:::warning
@@ -195,7 +195,7 @@ components:
EndOfUtterance:
summary: |
Indicates the end of an utterance, triggered by a configurable period of non-speech.
- The message is sent when no speech has been detected for a short period of time, configurable by the `end_of_utterance_silence_trigger` parameter in `conversation_config` (see [End Of Utterance](https://docs.speechmatics.com/speech-to-text/realtime/turn-detection#configuration)).
+ The message is sent when no speech has been detected for a short period of time, configurable by the `end_of_utterance_silence_trigger` parameter in `conversation_config` (see [End Of Utterance](https://docs.speechmatics.com/speech-to-text/features/turn-detection#configuration)).
Like punctuation, an `EndOfUtterance` has zero duration.
payload:
@@ -764,7 +764,7 @@ components:
max_delay:
type: number
description: |
- This is the delay in seconds between the end of a spoken word and returning the Final transcript results. See [Latency](https://docs.speechmatics.com/speech-to-text/realtime/output#latency) for more details
+ This is the delay in seconds between the end of a spoken word and returning the Final transcript results. See [Latency](https://docs.speechmatics.com/speech-to-text/streaming/output#latency) for more details
minimum: 0.7
maximum: 4
default: 4
@@ -780,7 +780,7 @@ components:
type: boolean
description: |
Whether or not to send Partials (i.e. `AddPartialTranslation` messages) as well as Finals (i.e. `AddTranslation` messages)
- See [Partial transcripts](https://docs.speechmatics.com/speech-to-text/realtime/output#partial-transcripts).
+ See [Partial transcripts](https://docs.speechmatics.com/speech-to-text/streaming/output#partial-transcripts).
default: false
enable_entities:
type: boolean
@@ -811,7 +811,7 @@ components:
max_delay:
type: number
description: |
- This is the delay in seconds between the end of a spoken word and returning the Final transcript results. See [Latency](https://docs.speechmatics.com/speech-to-text/realtime/output#latency) for more details
+ This is the delay in seconds between the end of a spoken word and returning the Final transcript results. See [Latency](https://docs.speechmatics.com/speech-to-text/streaming/output#latency) for more details
minimum: 0.7
maximum: 4
default: 4
@@ -823,7 +823,7 @@ components:
type: boolean
description: |
Whether or not to send Partials (i.e. `AddPartialTranslation` messages) as well as Finals (i.e. `AddTranslation` messages)
- See [Partial transcripts](https://docs.speechmatics.com/speech-to-text/realtime/output#partial-transcripts).
+ See [Partial transcripts](https://docs.speechmatics.com/speech-to-text/streaming/output#partial-transcripts).
default: false
conversation_config:
$ref: "#/components/schemas/ConversationConfig"
@@ -839,7 +839,7 @@ components:
Model:
type: string
description: |
- Which model you wish to use. See [Models](http://docs.speechmatics.com/speech-to-text/models) for more details.
+ Which model you wish to use. See [Models](https://docs.speechmatics.com/speech-to-text/models) for more details.
enum:
- standard
- enhanced
@@ -848,7 +848,7 @@ components:
PunctuationOverrides:
type: object
description: |
- Options for controlling punctuation in the output transcripts. See [Punctuation Settings](https://docs.speechmatics.com/speech-to-text/formatting#punctuation)
+ Options for controlling punctuation in the output transcripts. See [Punctuation Settings](https://docs.speechmatics.com/speech-to-text/features/formatting#punctuation)
properties:
permitted_marks:
type: array
@@ -935,7 +935,7 @@ components:
DiarizationConfig:
type: string
description: |
- Set to `speaker` to apply [Speaker Diarization](https://docs.speechmatics.com/speech-to-text/features/diarization) to the audio.
+ Set to `speaker` to apply [Speaker Diarization](https://docs.speechmatics.com/speech-to-text/features/speaker-diarization) to the audio.
enum:
- none
- speaker
@@ -948,12 +948,12 @@ components:
max_speakers:
type: integer
description: |
- Configure the maximum number of speakers to detect. See [Max Speakers](http://docs.speechmatics.com/speech-to-text/features/diarization#max-speakers).
+ Configure the maximum number of speakers to detect. See [Max Speakers](https://docs.speechmatics.com/speech-to-text/features/speaker-diarization#max-speakers).
minimum: 2
prefer_current_speaker:
description: |
When set to `true`, reduces the likelihood of incorrectly switching between similar sounding speakers.
- See [Prefer Current Speaker](https://docs.speechmatics.com/speech-to-text/features/diarization#prefer-current-speaker).
+ See [Prefer Current Speaker](https://docs.speechmatics.com/speech-to-text/features/speaker-diarization#prefer-current-speaker).
type: boolean
default: false
speaker_sensitivity:
@@ -991,16 +991,16 @@ components:
remove_disfluencies:
type: boolean
description: |
- When set to `true`, removes disfluencies from the transcript. See [Removing disfluencies](https://docs.speechmatics.com/speech-to-text/formatting#removing-disfluencies)
+ When set to `true`, removes disfluencies from the transcript. See [Removing disfluencies](https://docs.speechmatics.com/speech-to-text/features/disfluencies-and-profanities#removing-disfluencies)
replacements:
- description: A list of replacement rules to apply to the transcript. Each rule consists of a pattern to match and a replacement string. See [Word replacement](https://docs.speechmatics.com/speech-to-text/formatting#word-replacement)
+ description: A list of replacement rules to apply to the transcript. Each rule consists of a pattern to match and a replacement string. See [Word replacement](https://docs.speechmatics.com/speech-to-text/features/text-replacement)
type: array
items:
$ref: "#/components/schemas/WordReplacementItem"
OutputLocale:
type: string
description: |
- Configure locale for outputted transcription. See [output formatting](https://docs.speechmatics.com/speech-to-text/formatting#output-locale).
+ Configure locale for outputted transcription. See [output formatting](https://docs.speechmatics.com/speech-to-text/features/formatting#output-locale).
minLength: 1
LanguagePackInfo:
type: object
@@ -1123,11 +1123,11 @@ components:
speaker:
type: string
description: |
- Label indicating who said that word. Only set if [diarization](https://docs.speechmatics.com/speech-to-text/features/diarization) is enabled.
+ Label indicating who said that word. Only set if [diarization](https://docs.speechmatics.com/speech-to-text/features/speaker-diarization) is enabled.
tags:
type: array
description: |
- This is a set list of profanities and disfluencies respectively that cannot be altered by the end user. `[disfluency]` is present in the [supported languages](https://docs.speechmatics.com/speech-to-text/formatting#supported-languages-for-disfluencies), and `[profanity]` is present in English, Spanish, and Italian
+ This is a set list of profanities and disfluencies respectively that cannot be altered by the end user. `[disfluency]` is present in the [supported languages](https://docs.speechmatics.com/speech-to-text/features/disfluencies-and-profanities#supported-languages-for-disfluencies), and `[profanity]` is present in English, Spanish, and Italian
items:
$ref: "#/components/schemas/RecognitionAlternativeTagsEnum"
required:
@@ -1150,7 +1150,7 @@ components:
MaxDelayModeConfig:
type: string
description: |
- This allows some additional time for [Smart Formatting](https://docs.speechmatics.com/speech-to-text/formatting#smart-formatting).
+ This allows some additional time for [Smart Formatting](https://docs.speechmatics.com/speech-to-text/features/formatting#smart-formatting).
enum:
- flexible
- fixed
@@ -1266,8 +1266,8 @@ components:
| --- | --- |
| `duration_limit_exceeded` | The maximum allowed duration of a single utterance to process has been exceeded. Any `AddAudio` messages received that exceed this limit are confirmed with `AudioAdded`, but are ignored by the transcription engine. Exceeding the limit triggers the same mechanism as receiving an `EndOfStream` message, so the Server will eventually send an `EndOfTranscript` message and suspend.
| `unsupported_translation_pair` | One of the requested translation target languages is unsupported (given the source audio language). The error message specifies the unsupported language pair.
- | `idle_timeout` | Informs that the session is approaching the idle duration limit (no audio data sent within the last hour), with a `reason` of the form: `Session will timeout in {time_remaining}m due to inactivity, no audio sent within the last {time_elapsed}m`
Currently the server will send messages at 15, 10 and 5m prior to timeout, and will send a final error message on timeout, before closing the connection with the code 1008. (see [Realtime limits](https://docs.speechmatics.com/speech-to-text/realtime/limits) for more information).
- | `session_timeout` | Informs that the session is approaching the max session duration limit (maximum session duration of 48 hours), with a `reason` of the form: `Session will timeout in {time_remaining}m due to max duration, session has been active for {time_elapsed}m`
Currently the server will send messages at 45, 30 and 15m prior to timeout, and will send a final error message on timeout, before closing the connection with the code 1008. (see [Realtime limits](https://docs.speechmatics.com/speech-to-text/realtime/limits) for more information).|
+ | `idle_timeout` | Informs that the session is approaching the idle duration limit (no audio data sent within the last hour), with a `reason` of the form: `Session will timeout in {time_remaining}m due to inactivity, no audio sent within the last {time_elapsed}m`
Currently the server will send messages at 15, 10 and 5m prior to timeout, and will send a final error message on timeout, before closing the connection with the code 1008. (see [Realtime limits](https://docs.speechmatics.com/speech-to-text/streaming/limits) for more information).
+ | `session_timeout` | Informs that the session is approaching the max session duration limit (maximum session duration of 48 hours), with a `reason` of the form: `Session will timeout in {time_remaining}m due to max duration, session has been active for {time_elapsed}m`
Currently the server will send messages at 45, 30 and 15m prior to timeout, and will send a final error message on timeout, before closing the connection with the code 1008. (see [Realtime limits](https://docs.speechmatics.com/speech-to-text/streaming/limits) for more information).|
| `empty_translation_target_list` | No supported translation target languages specified. Translation will not run.
| `add_audio_after_eos` | Protocol specification doesn't allow adding audio after `EndOfStream` has been received. Any `AddAudio messages after this, will be ignored.
| `speaker_id` | Informs the client about any speaker ID related issues. |
diff --git a/src/theme/Root.tsx b/src/theme/Root.tsx
index b91822b0..aa3bf1a5 100644
--- a/src/theme/Root.tsx
+++ b/src/theme/Root.tsx
@@ -3,16 +3,24 @@ import MixpanelProvider from "@site/src/components/MixpanelProvider";
import React, { useEffect } from "react";
// The medical/healthcare domain docs moved from the Languages page to the Models
-// page (DEL-33741). Server-side redirects can't match a URL hash, so redirect the
-// legacy anchor client-side, on load and on hash change.
+// page (DEL-33741), and then from the Models page to their own feature page.
+// Server-side redirects can't match a URL hash, so redirect the legacy anchors
+// client-side, on load and on hash change.
+const MEDICAL_DOMAIN_PAGE = "/speech-to-text/features/medical-domain";
+const LEGACY_HEALTHCARE_ANCHORS = [
+ "/speech-to-text/languages",
+ "/speech-to-text/models",
+];
+
function useLegacyHealthcareAnchorRedirect() {
useEffect(() => {
function redirect() {
const { pathname, hash } = window.location;
- const onLanguagesPage =
- pathname.replace(/\/$/, "") === "/speech-to-text/languages";
- if (onLanguagesPage && hash === "#healthcare-domain") {
- window.location.replace("/speech-to-text/models#healthcare-domain");
+ const onLegacyPage = LEGACY_HEALTHCARE_ANCHORS.includes(
+ pathname.replace(/\/$/, ""),
+ );
+ if (onLegacyPage && hash === "#healthcare-domain") {
+ window.location.replace(MEDICAL_DOMAIN_PAGE);
}
}
redirect();
diff --git a/vercel.json b/vercel.json
index 9f9a98cc..43c48ab2 100644
--- a/vercel.json
+++ b/vercel.json
@@ -1,129 +1,124 @@
{
"trailingSlash": false,
"redirects": [
+ {
+ "source": "/features/accuracy-language-packs",
+ "destination": "/speech-to-text/languages#bilingual-and-multi-language-packs",
+ "permanent": true
+ },
{
"source": "/speech-to-text/realtime/realtime_diarization",
- "destination": "/speech-to-text/realtime/realtime-diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
"permanent": true
},
{
"source": "/speech-to-text/batch/batch_diarization",
- "destination": "/speech-to-text/batch/batch-diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
"permanent": true
},
{
"source": "/speech-to-text/batch/tracking",
- "destination": "/speech-to-text/batch/output#tracking-metadata",
+ "destination": "/speech-to-text/pre-recorded/output#tracking-metadata",
"permanent": true
},
{
"source": "/speech-to-text/realtime/end-of-turn",
- "destination": "/speech-to-text/realtime/turn-detection",
+ "destination": "/speech-to-text/features/turn-detection",
"permanent": true
},
{
"source": "/speech-to-text/realtime/end-of-utterance",
- "destination": "/speech-to-text/realtime/turn-detection",
+ "destination": "/speech-to-text/features/turn-detection",
"permanent": true
},
{
"source": "/speech-to-text/realtime/realtime-speaker-identification",
- "destination": "/speech-to-text/realtime/speaker-identification",
+ "destination": "/speech-to-text/features/speaker-identification",
"permanent": true
},
{
"source": "/voice-agents-flow/features/application-inputs",
- "destination": "/voice-agents/flow/features/application-inputs",
+ "destination": "/speech-to-text/agent-stt",
"permanent": true
},
{
"source": "/voice-agents-flow/setup",
- "destination": "/voice-agents/flow/setup",
+ "destination": "/speech-to-text/agent-stt/quickstart",
"permanent": true
},
{
"source": "/voice-agents-flow/features/function-calling",
- "destination": "/voice-agents/flow/features/function-calling",
+ "destination": "/integrations-and-sdks",
"permanent": true
},
{
"source": "/voice-agents-flow",
- "destination": "/voice-agents/flow",
+ "destination": "/speech-to-text/agent-stt",
"permanent": true
},
{
"source": "/voice-agents-flow/supported-languages",
- "destination": "/voice-agents/flow/supported-languages",
+ "destination": "/speech-to-text/languages",
"permanent": true
},
{
"source": "/voice-agents-flow/features/webrtc-livekit",
- "destination": "/voice-agents/flow/features/webrtc-livekit",
+ "destination": "/integrations-and-sdks/livekit",
"permanent": true
},
{
"source": "/voice-agents-flow/guides/nextjs-guide",
- "destination": "/voice-agents/flow/guides/nextjs-guide",
+ "destination": "/integrations-and-sdks",
"permanent": true
},
{
"source": "/voice-agents-flow/guides/react-native",
- "destination": "/voice-agents/flow/guides/react-native",
+ "destination": "/integrations-and-sdks",
"permanent": true
},
{
"source": "/deployments/container",
- "destination": "/deployements/container/accessing-images",
- "permanent": true
- },
- {
- "source": "/voice-agents-flow",
- "destination": "/voice-agents/flow",
- "permanent": true
- },
- {
- "source": "/voice-agents-flow",
- "destination": "/voice-agents/flow",
+ "destination": "/deployments/container/accessing-images",
"permanent": true
},
{
"source": "/voice-agents/flow",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt",
"permanent": true
},
{
"source": "/voice-agents/flow/features/application-inputs",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt",
"permanent": true
},
{
"source": "/voice-agents/flow/features/webrtc-livekit",
- "destination": "/voice-agents/overview",
+ "destination": "/integrations-and-sdks/livekit",
"permanent": true
},
{
"source": "/voice-agents/flow/setup",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt/quickstart",
"permanent": true
},
{
"source": "/voice-agents/flow/supported-languages",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/languages",
"permanent": true
},
{
"source": "/voice-agents/flow/features/function-calling",
- "destination": "/voice-agents/overview",
+ "destination": "/integrations-and-sdks",
"permanent": true
},
{
"source": "/voice-agents/flow/guides/nextjs-guide",
- "destination": "/voice-agents/overview",
+ "destination": "/integrations-and-sdks",
"permanent": true
},
{
"source": "/voice-agents/flow/guides/react-native",
- "destination": "/voice-agents/overview",
+ "destination": "/integrations-and-sdks",
"permanent": true
},
{
@@ -131,6 +126,306 @@
"destination": "/administration/projects",
"permanent": true
},
+ {
+ "source": "/speech-to-text/batch",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime",
+ "destination": "/speech-to-text/streaming/quickstart",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/alignment",
+ "destination": "/speech-to-text/add-ons/audio-alignment",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/batch-diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/input",
+ "destination": "/speech-to-text/pre-recorded/input",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/language-identification",
+ "destination": "/speech-to-text/pre-recorded/language-identification",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/limits",
+ "destination": "/speech-to-text/pre-recorded/limits",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/notifications",
+ "destination": "/speech-to-text/pre-recorded/notifications",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/output",
+ "destination": "/speech-to-text/pre-recorded/output",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/speaker-identification",
+ "destination": "/speech-to-text/features/speaker-identification",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/speech-intelligence/auto-chapters",
+ "destination": "/speech-to-text/add-ons/chapters",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/speech-intelligence/sentiment-analysis",
+ "destination": "/speech-to-text/add-ons/sentiment",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/speech-intelligence/summarization",
+ "destination": "/speech-to-text/add-ons/summaries",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/speech-intelligence/topic-detection",
+ "destination": "/speech-to-text/add-ons/topics",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/srt-format",
+ "destination": "/speech-to-text/pre-recorded/srt-format",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/synchronous",
+ "destination": "/speech-to-text/pre-recorded/synchronous",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/troubleshooting",
+ "destination": "/speech-to-text/pre-recorded/troubleshooting",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/usage",
+ "destination": "/administration/usage",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime/guides/python-using-ffmpeg",
+ "destination": "/speech-to-text/streaming/ffmpeg-audio",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime/guides/python-using-microphone",
+ "destination": "/speech-to-text/streaming/quickstart",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime/input",
+ "destination": "/speech-to-text/streaming/input",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime/limits",
+ "destination": "/speech-to-text/streaming/limits",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime/output",
+ "destination": "/speech-to-text/streaming/output",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime/realtime-diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime/speaker-identification",
+ "destination": "/speech-to-text/features/speaker-identification",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime/turn-detection",
+ "destination": "/speech-to-text/features/turn-detection",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/input",
+ "destination": "/speech-to-text/pre-recorded/input#fetch-url",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/output",
+ "destination": "/speech-to-text/pre-recorded/output#tracking-metadata",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/realtime/output",
+ "destination": "/speech-to-text/streaming/output#latency",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/batch/speech-intelligence/auto-chapters",
+ "destination": "/speech-to-text/add-ons/chapters",
+ "permanent": true
+ },
+ {
+ "source": "/private/voice-agent-api",
+ "destination": "/speech-to-text/agent-stt",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/formatting",
+ "destination": "/speech-to-text/features/formatting",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/formatting",
+ "destination": "/speech-to-text/features/formatting#punctuation",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/formatting",
+ "destination": "/speech-to-text/features/disfluencies-and-profanities",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/features/diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/batch-diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/streaming/realtime-diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speaker-identification",
+ "destination": "/speech-to-text/features/speaker-identification",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/streaming/speaker-identification",
+ "destination": "/speech-to-text/features/speaker-identification",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/streaming/turn-detection",
+ "destination": "/speech-to-text/features/turn-detection",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/streaming/guides/python-using-ffmpeg",
+ "destination": "/speech-to-text/streaming/ffmpeg-audio",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/streaming/guides/python-using-microphone",
+ "destination": "/speech-to-text/streaming/quickstart",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/app-analytics",
+ "destination": "/speech-to-text/features/app-usage-tracking",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/streaming/turn-detection",
+ "destination": "/speech-to-text/features/turn-detection#configuration",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speech-intelligence/summarization",
+ "destination": "/speech-to-text/add-ons/summaries",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speech-intelligence/topic-detection",
+ "destination": "/speech-to-text/add-ons/topics",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speech-intelligence/auto-chapters",
+ "destination": "/speech-to-text/add-ons/chapters",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speech-intelligence/sentiment-analysis",
+ "destination": "/speech-to-text/add-ons/sentiment",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/features/translation",
+ "destination": "/speech-to-text/add-ons/translation",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/alignment",
+ "destination": "/speech-to-text/add-ons/audio-alignment",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/speech-intelligence",
+ "destination": "/speech-to-text/add-ons/summaries",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/features/translation",
+ "destination": "/speech-to-text/add-ons/translation#languages",
+ "permanent": true
+ },
+ {
+ "source": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt",
+ "permanent": true
+ },
+ {
+ "source": "/voice-agents",
+ "destination": "/speech-to-text/agent-stt",
+ "permanent": true
+ },
+ {
+ "source": "/voice-agents/voice-sdk",
+ "destination": "/integrations-and-sdks/voice-sdk",
+ "permanent": true
+ },
+ {
+ "source": "/speech-to-text/pre-recorded/usage",
+ "destination": "/administration/usage",
+ "permanent": true
+ },
+ {
+ "source": "/get-started/quickstart",
+ "destination": "/",
+ "permanent": true
+ },
{
"source": "/jobsapi",
"destination": "/api-ref/batch/create-a-new-job",
@@ -148,7 +443,7 @@
},
{
"source": "/features-other/auto-chapters",
- "destination": "/speech-to-text/batch/speech-intelligence/auto-chapters/",
+ "destination": "/speech-to-text/add-ons/chapters",
"permanent": true
},
{
@@ -158,52 +453,52 @@
},
{
"source": "/features-other/fetch-url",
- "destination": "/speech-to-text/batch/input#fetch-url",
+ "destination": "/speech-to-text/pre-recorded/input#fetch-url",
"permanent": true
},
{
"source": "/features-other/lang-id",
- "destination": "/speech-to-text/batch/language-identification",
+ "destination": "/speech-to-text/pre-recorded/language-identification",
"permanent": true
},
{
"source": "/features-other/notifications",
- "destination": "/speech-to-text/batch/notifications",
+ "destination": "/speech-to-text/pre-recorded/notifications",
"permanent": true
},
{
"source": "/features-other/sentiment-analysis",
- "destination": "/speech-to-text/batch/speech-intelligence/sentiment-analysis",
+ "destination": "/speech-to-text/add-ons/sentiment",
"permanent": true
},
{
"source": "/features-other/srt-format",
- "destination": "/speech-to-text/batch/srt-format",
+ "destination": "/speech-to-text/pre-recorded/srt-format",
"permanent": true
},
{
"source": "/features-other/summarization",
- "destination": "/speech-to-text/batch/speech-intelligence/summarization",
+ "destination": "/speech-to-text/add-ons/summaries",
"permanent": true
},
{
"source": "/features-other/topic-detection",
- "destination": "/speech-to-text/batch/speech-intelligence/topic-detection",
+ "destination": "/speech-to-text/add-ons/topics",
"permanent": true
},
{
"source": "/features-other/tracking",
- "destination": "/speech-to-text/batch/output#tracking-metadata",
+ "destination": "/speech-to-text/pre-recorded/output#tracking-metadata",
"permanent": true
},
{
"source": "/features-other/translation",
- "destination": "/speech-to-text/features/translation",
+ "destination": "/speech-to-text/add-ons/translation",
"permanent": true
},
{
"source": "/features-other/word-alignment",
- "destination": "/speech-to-text/batch/alignment",
+ "destination": "/speech-to-text/add-ons/audio-alignment",
"permanent": true
},
{
@@ -228,77 +523,77 @@
},
{
"source": "/features/diarization",
- "destination": "/speech-to-text/features/diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
"permanent": true
},
{
"source": "/features/end-of-turn",
- "destination": "/speech-to-text/realtime/turn-detection",
+ "destination": "/speech-to-text/features/turn-detection",
"permanent": true
},
{
"source": "/features/entities",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/features/punctuation-settings",
- "destination": "/speech-to-text/formatting#punctuation",
+ "destination": "/speech-to-text/features/formatting#punctuation",
"permanent": true
},
{
"source": "/features/realtime-latency",
- "destination": "/speech-to-text/realtime/output#latency",
+ "destination": "/speech-to-text/streaming/output#latency",
"permanent": true
},
{
"source": "/features/word-tagging",
- "destination": "/speech-to-text/formatting#output-formatting-options",
+ "destination": "/speech-to-text/features/disfluencies-and-profanities",
"permanent": true
},
{
"source": "/flow-api-ref",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt",
"permanent": true
},
{
"source": "/flow/application-inputs",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt",
"permanent": true
},
{
"source": "/flow/config",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt/quickstart",
"permanent": true
},
{
"source": "/flow/function-calling",
- "destination": "/voice-agents/overview",
+ "destination": "/integrations-and-sdks",
"permanent": true
},
{
"source": "/flow/introduction",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt",
"permanent": true
},
{
"source": "/flow/languages-supported",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/languages",
"permanent": true
},
{
"source": "/flow/livekit-webrtc",
- "destination": "/voice-agents/overview",
+ "destination": "/integrations-and-sdks/livekit",
"permanent": true
},
{
"source": "/flow/nextjs-guide",
- "destination": "/voice-agents/overview",
+ "destination": "/integrations-and-sdks",
"permanent": true
},
{
"source": "/flow/react-native-guide",
- "destination": "/voice-agents/overview",
+ "destination": "/integrations-and-sdks",
"permanent": true
},
{
@@ -308,7 +603,7 @@
},
{
"source": "/introduction/additional-info",
- "destination": "/speech-to-text/batch/output",
+ "destination": "/speech-to-text/pre-recorded/output",
"permanent": true
},
{
@@ -318,17 +613,17 @@
},
{
"source": "/introduction/batch-guide",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/introduction/errors-rate-limits",
- "destination": "/speech-to-text/batch/input",
+ "destination": "/speech-to-text/pre-recorded/input",
"permanent": true
},
{
"source": "/introduction/rt-guide",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
@@ -338,17 +633,17 @@
},
{
"source": "/introduction/troubleshooting",
- "destination": "/speech-to-text/batch/troubleshooting",
+ "destination": "/speech-to-text/pre-recorded/troubleshooting",
"permanent": true
},
{
"source": "/introduction/usage",
- "destination": "/speech-to-text/batch/usage",
+ "destination": "/administration/usage",
"permanent": true
},
{
"source": "/on-prem/containers",
- "destination": "/deployements/container/accessing-images",
+ "destination": "/deployments/container/accessing-images",
"permanent": true
},
{
@@ -668,12 +963,12 @@
},
{
"source": "/tutorials/using-ffmpeg",
- "destination": "/speech-to-text/realtime/guides/python-using-ffmpeg",
+ "destination": "/speech-to-text/streaming/ffmpeg-audio",
"permanent": true
},
{
"source": "/tutorials/using-mic",
- "destination": "/speech-to-text/realtime/guides/python-using-microphone",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
@@ -758,12 +1053,12 @@
},
{
"source": "/en/cloud/understanding-saas-usage",
- "destination": "/speech-to-text/batch/input",
+ "destination": "/speech-to-text/pre-recorded/input",
"permanent": true
},
{
"source": "/en/cloud/troubleshooting",
- "destination": "/speech-to-text/batch/input",
+ "destination": "/speech-to-text/pre-recorded/input",
"permanent": true
},
{
@@ -803,7 +1098,7 @@
},
{
"source": "/en/alignment-service",
- "destination": "/speech-to-text/batch/alignment",
+ "destination": "/speech-to-text/add-ons/audio-alignment",
"permanent": true
},
{
@@ -933,27 +1228,27 @@
},
{
"source": "/features/diarization/diarization/speaker-diarization",
- "destination": "/speech-to-text/features/diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
"permanent": true
},
{
"source": "/features/diarization/speaker-diarization",
- "destination": "/speech-to-text/features/diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
"permanent": true
},
{
"source": "/features/diarization/channel-diarization",
- "destination": "/speech-to-text/features/diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
"permanent": true
},
{
"source": "/features/diarization/speaker-change",
- "destination": "/speech-to-text/features/diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
"permanent": true
},
{
"source": "/features/diarization/speaker-change-channel",
- "destination": "/speech-to-text/features/diarization",
+ "destination": "/speech-to-text/features/speaker-diarization",
"permanent": true
},
{
@@ -963,12 +1258,12 @@
},
{
"source": "/flow",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt",
"permanent": true
},
{
"source": "/flow/getting-started",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt",
"permanent": true
},
{
@@ -988,277 +1283,277 @@
},
{
"source": "/flow/flow-api-ref",
- "destination": "/voice-agents/overview",
+ "destination": "/speech-to-text/agent-stt",
"permanent": true
},
{
"source": "/en/cloud/howto",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto/v4.2.0",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto/v4.1.0",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto/v4.0.0",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto/v3.8.0",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto/v3.7.1",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto/v3.7.0",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto/v3.6.0",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto/v3.5.0",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto/v3.4.0",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto/v3.3.0",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/batch-appliance/api-guide/api-howto",
- "destination": "/speech-to-text/batch/quickstart",
+ "destination": "/speech-to-text/pre-recorded/quickstart",
"permanent": true
},
{
"source": "/en/cloud/entities",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-saas/entities",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities/v4.2.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities/v4.1.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities/v4.0.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities/v3.8.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities/v3.7.1",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities/v3.7.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities/v3.6.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities/v3.5.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities/v3.4.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities/v3.3.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-appliance/entities",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities/v4.2.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities/v4.1.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities/v4.0.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities/v3.8.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities/v3.7.1",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities/v3.7.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities/v3.6.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities/v3.5.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities/v3.4.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities/v3.3.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-appliance/entities",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-container/entities/v9.0.1",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-container/entities/v9.0.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-container/entities/v8.2.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-container/entities/v8.1.2",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-container/entities/v8.1.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-container/entities/v8.0.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-container/entities/v7.0.3",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-container/entities/v6.3.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/batch-container/entities",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-container/entities/v2.0.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-container/entities/v1.4.1",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-container/entities/v1.4.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-container/entities/v1.3.1",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-container/entities/v1.3.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-container/entities/v1.2.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-container/entities/v1.1.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-container/entities/v1.0.0",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
"source": "/en/real-time-container/entities",
- "destination": "/speech-to-text/formatting#smart-formatting",
+ "destination": "/speech-to-text/features/formatting#smart-formatting",
"permanent": true
},
{
@@ -1488,122 +1783,122 @@
},
{
"source": "/en/real-time-saas/user-guide",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide/v4.2.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide/v4.1.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide/v4.0.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide/v3.8.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide/v3.7.1",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide/v3.7.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide/v3.6.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide/v3.5.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide/v3.4.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide/v3.3.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/speech-api-guide",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage/v4.2.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage/v4.1.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage/v4.0.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage/v3.8.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage/v3.7.1",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage/v3.7.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage/v3.6.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage/v3.5.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage/v3.4.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage/v3.3.0",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-appliance/api-v2/api-example-usage",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{
"source": "/en/real-time-saas",
- "destination": "/speech-to-text/realtime/quickstart",
+ "destination": "/speech-to-text/streaming/quickstart",
"permanent": true
},
{