{
  "data": {
    "a": {
      "slug": "azure-text-to-speech",
      "name": "Azure AI Speech text-to-speech",
      "vendor": "Microsoft Azure",
      "vendorUrl": "https://azure.microsoft.com/en-us/products/ai-services/text-to-speech",
      "kind": "model",
      "category": "text-to-speech",
      "summary": "Azure's text-to-speech service for generating spoken audio.",
      "url": "https://www.anchorterminal.com/tools/azure-text-to-speech",
      "markdownUrl": "https://www.anchorterminal.com/tools/azure-text-to-speech.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/azure-text-to-speech.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/azure-text-to-speech.json",
      "repo": "https://github.com/Azure-Samples/cognitive-services-speech-sdk",
      "license": "MIT (samples), SDK under Microsoft's own licence",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://eastus.tts.speech.microsoft.com/cognitiveservices",
      "packages": [
        {
          "registry": "pypi",
          "name": "azure-cognitiveservices-speech"
        },
        {
          "registry": "npm",
          "name": "microsoft-cognitiveservices-speech-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "`Ocp-Apim-Subscription-Key` header with a Speech resource key, or a Microsoft Entra ID bearer token. Endpoints are per region.",
      "pricing": "freemium",
      "pricingNotes": "Free F0 tier with 500,000 characters a month. Pay as you go in East US is $15 per 1M characters for Neural and Neural HD Flash voices and $22 for Neural HD, real time or batch. Commitment tiers from $960 a month for 80M characters (https://azure.microsoft.com/en-us/pricing/details/speech/).",
      "priceSummary": "$960 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No machine payment. Billing runs through a cloud account with a card or invoice.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 3450,
        "npmWeekly": 475621,
        "pypiWeekly": 1032532,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/text-to-speech",
      "capabilities": [
        "speech.tts",
        "speech.streaming",
        "speech.voices",
        "speech.ssml",
        "speech.languages"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "closed-source",
        "python",
        "typescript",
        "enterprise",
        "streaming",
        "batch",
        "async-jobs"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 73.7,
        "grade": "BB",
        "agentReady": true,
        "rank": 56,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 80,
          "payments": 20,
          "reliability": 90,
          "schema": 65,
          "security": 90,
          "transparency": 88
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Real-time synthesis keeps neither the input text nor the output audio. An Azure subscription needs a card, even for the free F0 tier.",
        "strengths": [
          "Real-time synthesis keeps neither the input text nor the output audio",
          "Full SSML with speaking styles, prosody, phonemes, lexicons and up to 50 voice or audio tags a request",
          "Microsoft Entra ID with role-based access, or two rotatable keys",
          "Covered by Microsoft's online services SLA",
          "S0 starts at 30 requests a second and can be raised to 1,000"
        ],
        "weaknesses": [
          "An Azure subscription needs a card, even for the free F0 tier",
          "No llms.txt and no OpenAPI file for text-to-speech found",
          "429s often reflect busy capacity for a voice in a region, which a quota increase doesn't fix",
          "The voice list comes back as one response per region with no paging documented",
          "MAI-Voice-2-Flash, the low-latency model, is still in preview"
        ],
        "agentNotes": [
          "Send SSML with `\u003cspeak\u003e` and `\u003cvoice\u003e`, and set `X-Microsoft-OutputFormat` and `User-Agent`.",
          "On 429 retry with backoff, and try the voice's home region or another region rather than asking for more quota.",
          "Keep each real-time request under 10 minutes of audio, or use batch synthesis.",
          "Use Entra ID tokens instead of resource keys where the agent runs inside Azure.",
          "Cache the voice list per region, since it returns hundreds of entries at once."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 73.7
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 80,
          "payments": 20,
          "reliability": 90,
          "schema": 65,
          "security": 90,
          "transparency": 80
        },
        "provenanceScore": 95
      },
      "connect": {
        "install": "pip install azure-cognitiveservices-speech   # or: npm i microsoft-cognitiveservices-speech-sdk",
        "http": "curl -X POST \"https://eastus.tts.speech.microsoft.com/cognitiveservices/v1\" \\\n  -H \"Ocp-Apim-Subscription-Key: $AZURE_SPEECH_KEY\" -H \"Content-Type: application/ssml+xml\" \\\n  -H \"X-Microsoft-OutputFormat: audio-24khz-48kbitrate-mono-mp3\" -o speech.mp3 \\\n  -d '\u003cspeak version=\"1.0\" xml:lang=\"en-US\"\u003e\u003cvoice name=\"en-US-AvaMultilingualNeural\"\u003eYour table is booked for seven.\u003c/voice\u003e\u003c/speak\u003e'"
      },
      "letme": {
        "capability": "https://letme.dev/speech.tts",
        "tool": "https://letme.dev/azure-text-to-speech"
      },
      "sameCompany": [
        "azure-foundry-fine-tuning",
        "azure-ai-content-safety",
        "azure-speech-to-text",
        "microsoft-learn-mcp",
        "playwright-mcp",
        "azure-mcp",
        "azure-translator",
        "microsoft-graph-calendar"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Neural and Neural HD Flash voices",
          "unit": "1m-chars",
          "usd": 15,
          "note": "real time or batch, East US"
        },
        {
          "item": "Neural HD voices",
          "unit": "1m-chars",
          "usd": 22
        },
        {
          "item": "Commitment tier 80M characters",
          "unit": "month",
          "usd": 960,
          "note": "$12 per 1M overage"
        }
      ],
      "provenance": {
        "legalEntity": "Microsoft Corporation",
        "domain": "microsoft.com",
        "domainRegistered": "1991-05-02",
        "domainNote": "Endpoints are on speech.microsoft.com, api.cognitive.microsoft.com and cognitiveservices.azure.com. microsoft.com publishes a security.txt, but it passed its Expires date on 2026-09-23.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.microsoft.com/licensing/terms/",
        "privacy": "https://privacy.microsoft.com/en-us/privacystatement",
        "statusPage": "https://azure.status.microsoft/en-us/status",
        "changelog": "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/releasenotes",
        "securityTxt": "expired",
        "checked": "2026-09-30",
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/azure-text-to-speech.json",
      "live": {
        "slug": "azure-text-to-speech",
        "probe": {
          "target": "https://eastus.tts.speech.microsoft.com/cognitiveservices",
          "method": "get",
          "lastAt": "2026-10-04T23:48:04.678459126Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 259,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 257,
          "p95ms24h": 304,
          "samples24h": 272,
          "samples30d": 1100,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 270,
              "ok": 270
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "Azure-Samples/cognitive-services-speech-sdk",
            "version": "ingestion-v2.1.13",
            "released": "2026-07-10",
            "seenAt": "2026-10-04T16:21:39.409053457Z"
          },
          {
            "registry": "npm",
            "name": "microsoft-cognitiveservices-speech-sdk",
            "version": "1.52.0",
            "seenAt": "2026-10-04T16:21:39.358419331Z"
          },
          {
            "registry": "pypi",
            "name": "azure-cognitiveservices-speech",
            "version": "1.52.0",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:21:39.229173438Z"
          }
        ],
        "githubStars": 3450,
        "npmWeekly": 508156,
        "pypiWeekly": 704368,
        "securityTxt": {
          "url": "https://microsoft.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2026-09-23T16:00:00.000Z",
          "checkedAt": "2026-10-04T15:16:01.36832038Z"
        },
        "domain": {
          "domain": "microsoft.com",
          "registered": "1991-05-02",
          "source": "https://rdap.verisign.com/com/v1/domain/microsoft.com",
          "checkedAt": "2026-10-04T13:04:13.488857536Z"
        },
        "updatedAt": "2026-10-04T23:48:04.678459126Z"
      }
    },
    "b": {
      "slug": "cartesia-tts",
      "name": "Cartesia Sonic TTS API + MCP",
      "vendor": "Cartesia",
      "vendorUrl": "https://cartesia.ai",
      "kind": "model",
      "category": "text-to-speech",
      "summary": "Sonic text-to-speech, currently `sonic-3.6` in 44 languages, over `/tts/bytes`, `/tts/sse` and a WebSocket that takes streamed LLM text with contexts and word timestamps.",
      "url": "https://www.anchorterminal.com/tools/cartesia-tts",
      "markdownUrl": "https://www.anchorterminal.com/tools/cartesia-tts.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cartesia-tts.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cartesia-tts.json",
      "repo": "https://github.com/cartesia-ai/cartesia-python",
      "license": "Apache-2.0 (SDKs)",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.cartesia.ai",
      "packages": [
        {
          "registry": "npm",
          "name": "@cartesia/cartesia-js"
        },
        {
          "registry": "pypi",
          "name": "cartesia"
        },
        {
          "registry": "pypi",
          "name": "cartesia-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "`Authorization: Bearer` API key plus a required `Cartesia-Version` date header (currently `2026-08-14`). Browsers should use short-lived access tokens minted server-side. The hosted MCP at `https://mcp.cartesia.ai/mcp` signs in through the Playground and creates an MCP key. The local `cartesia-mcp` reads `CARTESIA_API_KEY`.",
      "pricing": "freemium",
      "pricingNotes": "TTS costs about 1 credit a character, charged only on successful requests. Free has 20,000 credits a month (about 27 minutes of Sonic 3.6), Pro $5 100,000, Startup $49 1.25M and Scale $299 8M. Overages, if enabled, cost $65 per 1M credits on Pro, $45 on Startup and $38 on Scale. Commercial use starts at Pro. Unused credits roll over up to 2 times the monthly amount (https://cartesia.ai/pricing).",
      "priceSummary": "$5 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 or machine payment in the docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 15,
      "popularity": {
        "githubStars": 133,
        "npmWeekly": 166023,
        "pypiWeekly": 176771,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.cartesia.ai/build-with-cartesia/tts-models/latest",
      "llmsTxt": "https://docs.cartesia.ai/llms.txt",
      "capabilities": [
        "speech.tts",
        "speech.streaming",
        "speech.voices",
        "speech.ssml",
        "speech.languages"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "closed-source",
        "python",
        "typescript",
        "llms-txt",
        "mcp",
        "streaming",
        "enterprise"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.2,
        "grade": "B",
        "agentReady": false,
        "rank": 187,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 6,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 79,
          "payments": 30,
          "reliability": 63,
          "schema": 86,
          "security": 58,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "WebSocket input accepts streamed LLM text with contexts, flushing and word timestamps. Five TTS incidents on the status page between 29 July and 21 August 2026.",
        "strengths": [
          "WebSocket input accepts streamed LLM text with contexts, flushing and word timestamps",
          "Dated model snapshots such as `sonic-3.6-2026-08-27` never change, and `Cartesia-Version` pins the API shape",
          "OpenAPI and AsyncAPI files per API version listed in llms.txt",
          "Short-lived access tokens with TTS, STT and agent grants for browser clients",
          "Deprecations dated in the changelog, Sonic-2 and Sonic Turbo sunset after 2026-10-20"
        ],
        "weaknesses": [
          "Five TTS incidents on the status page between 29 July and 21 August 2026",
          "TTS concurrency is 2 on Free, 3 on Pro, 5 on Startup and 15 on Scale",
          "The Terms allow training on inputs and outputs unless you opt out by form",
          "Zero data retention is Enterprise only",
          "No SLA, and no error responses documented for the TTS endpoints"
        ],
        "agentNotes": [
          "Send the `Cartesia-Version` header on every request.",
          "Pin a dated snapshot such as `sonic-3.6-2026-08-27` if output must not change.",
          "Move off `sonic-2`, `sonic-turbo` and `sonic-3-2025-10-27` before 2026-10-20.",
          "Expect a 429 at the plan's concurrency limit and queue requests yourself.",
          "Mint a short-lived access token for browser clients instead of shipping the API key."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.2
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 79,
          "payments": 30,
          "reliability": 63,
          "schema": 86,
          "security": 58,
          "transparency": 60
        },
        "provenanceScore": 82
      },
      "connect": {
        "http": "curl -X POST https://api.cartesia.ai/tts/bytes -H \"Authorization: Bearer $CARTESIA_API_KEY\" \\\n  -H \"Cartesia-Version: 2026-08-14\" -H \"content-type: application/json\" -o speech.wav \\\n  -d '{\"model_id\":\"sonic-3.6\",\"transcript\":\"Your table is booked for seven.\",\"voice\":{\"id\":\"47c38ca4-5f35-497b-b1a3-415245fb35e1\"},\"output_format\":{\"container\":\"wav\",\"encoding\":\"pcm_s16le\",\"sample_rate\":44100}}'",
        "claudeCode": "claude mcp add --transport http --scope user cartesia https://mcp.cartesia.ai/mcp",
        "config": {
          "mcpServers": {
            "cartesia": {
              "args": [
                "cartesia-mcp"
              ],
              "command": "uvx",
              "env": {
                "CARTESIA_API_KEY": "${CARTESIA_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/speech.tts",
        "tool": "https://letme.dev/cartesia-tts"
      },
      "sameCompany": [
        "cartesia-voice-cloning"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Sonic TTS overage on Pro",
          "unit": "1m-chars",
          "usd": 65,
          "note": "about 1 credit a character, $65 per 1M credits"
        },
        {
          "item": "Sonic TTS overage on Startup",
          "unit": "1m-chars",
          "usd": 45
        },
        {
          "item": "Sonic TTS overage on Scale",
          "unit": "1m-chars",
          "usd": 38
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 5,
          "note": "100,000 credits"
        },
        {
          "item": "Startup plan",
          "unit": "month",
          "usd": 49,
          "note": "1.25M credits"
        },
        {
          "item": "Scale plan",
          "unit": "month",
          "usd": 299,
          "note": "8M credits"
        }
      ],
      "provenance": {
        "legalEntity": "Cartesia AI, Inc.",
        "domain": "cartesia.ai",
        "domainRegistered": "2023-05-10",
        "endpointOnVendorDomain": true,
        "terms": "https://www.cartesia.ai/legal/terms",
        "privacy": "https://www.cartesia.ai/legal/privacy",
        "statusPage": "https://status.cartesia.ai",
        "changelog": "https://docs.cartesia.ai/changelog/2026",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cartesia-tts.json",
      "live": {
        "slug": "cartesia-tts",
        "probe": {
          "target": "https://api.cartesia.ai",
          "method": "get",
          "lastAt": "2026-10-04T23:48:06.28751768Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 53,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 61,
          "p95ms24h": 137,
          "samples24h": 272,
          "samples30d": 1100,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.cartesia.ai",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:49:06.943209758Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "cartesia-ai/cartesia-python",
            "version": "v4.2.0",
            "released": "2026-09-02",
            "seenAt": "2026-10-04T16:23:11.882857509Z"
          },
          {
            "registry": "npm",
            "name": "@cartesia/cartesia-js",
            "version": "4.2.0",
            "seenAt": "2026-10-04T16:23:08.936594762Z"
          },
          {
            "registry": "pypi",
            "name": "cartesia",
            "version": "4.2.0",
            "released": "2026-09-02",
            "seenAt": "2026-10-04T16:23:09.798087978Z"
          },
          {
            "registry": "pypi",
            "name": "cartesia-mcp",
            "version": "0.26.0",
            "released": "2026-09-30",
            "seenAt": "2026-10-04T16:23:09.984461576Z"
          }
        ],
        "githubStars": 133,
        "npmWeekly": 108942,
        "pypiWeekly": 188249,
        "securityTxt": {
          "url": "https://cartesia.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-10-03T00:00:00.000Z",
          "checkedAt": "2026-10-04T15:15:57.920556028Z"
        },
        "llmsTxt": {
          "url": "https://docs.cartesia.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:23.748277625Z"
        },
        "domain": {
          "domain": "cartesia.ai",
          "registered": "2023-05-10",
          "source": "https://rdap.identitydigital.services/rdap/domain/cartesia.ai",
          "checkedAt": "2026-10-04T13:04:05.26596839Z"
        },
        "pages": [
          {
            "url": "https://docs.cartesia.ai/changelog/2026",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:43:22.154553148Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "56a07dda1f5d"
          },
          {
            "url": "https://cartesia.ai/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:44.64571005Z",
            "changedAt": "2026-10-03T15:29:56.901063562Z",
            "fingerprint": "3e49bcd49fcf"
          },
          {
            "url": "https://www.cartesia.ai/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:41.751185158Z",
            "changedAt": "2026-10-03T15:37:37.717663201Z",
            "fingerprint": "6fea00c7255f"
          },
          {
            "url": "https://www.cartesia.ai/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:43.846741137Z",
            "changedAt": "2026-10-03T15:37:39.779484537Z",
            "fingerprint": "c899e30661ba"
          }
        ],
        "updatedAt": "2026-10-04T23:49:06.943209758Z"
      }
    },
    "summary": "Azure AI Speech text-to-speech has a score of 73.7 (BB) against Cartesia Sonic TTS API + MCP's 64.2 (B). Both do speech tts. The largest gap is security \u0026 auth, 32 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-cartesia-tts",
    "json": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-cartesia-tts.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-cartesia-tts.md",
    "slim": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-cartesia-tts.min.md"
  },
  "markdown": "Azure AI Speech text-to-speech has a score of 73.7 (BB) against Cartesia Sonic TTS API + MCP's 64.2 (B). Both do speech tts. The largest gap is security \u0026 auth, 32 points.\n\n- Azure AI Speech text-to-speech: grade BB, 73.7/100, rank #56 of 452. Markdown https://www.anchorterminal.com/tools/azure-text-to-speech.md · JSON https://www.anchorterminal.com/api/v1/tools/azure-text-to-speech.json\n- Cartesia Sonic TTS API + MCP: grade B, 64.2/100, rank #187 of 452. Markdown https://www.anchorterminal.com/tools/cartesia-tts.md · JSON https://www.anchorterminal.com/api/v1/tools/cartesia-tts.json\n\n## Which one, for what\n\nPick Azure AI Speech text-to-speech for reliability (+27), agent ergonomics (+10), security \u0026 auth (+32), transparency \u0026 trust (+17).\n\nPick Cartesia Sonic TTS API + MCP for schema \u0026 documentation (+21), payments \u0026 pricing (+10).\n\n## Score by category\n\n| Category | Weight | Azure AI Speech text-to-speech | Cartesia Sonic TTS API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 90 | 63 | Azure AI Speech text-to-speech +27 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 65 | 86 | Cartesia Sonic TTS API + MCP +21 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 65 | Azure AI Speech text-to-speech +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 90 | 58 | Azure AI Speech text-to-speech +32 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 30 | Cartesia Sonic TTS API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 79 | Azure AI Speech text-to-speech +1 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 88 | 71 | Azure AI Speech text-to-speech +17 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **73.7 · BB** | **64.2 · B** | |\n\n## Facts side by side\n\n| Fact | Azure AI Speech text-to-speech | Cartesia Sonic TTS API + MCP |\n| --- | --- | --- |\n| Kind | Model API | Model API |\n| Vendor | Microsoft Azure | Cartesia |\n| Hosted endpoint | `https://eastus.tts.speech.microsoft.com/cognitiveservices` | `https://api.cartesia.ai` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT (samples), SDK under Microsoft's own licence | Apache-2.0 (SDKs) |\n| Tools exposed | none | 15 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-28 | 2026-09-30 |\n| Popularity | 3.5k stars, 476k npm/wk, 1M PyPI/wk | 133 stars, 166k npm/wk, 177k PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 3/5 (2) |\n\n## Verdicts\n\n**Azure AI Speech text-to-speech.** Real-time synthesis keeps neither the input text nor the output audio. An Azure subscription needs a card, even for the free F0 tier.\n\n**Cartesia Sonic TTS API + MCP.** WebSocket input accepts streamed LLM text with contexts, flushing and word timestamps. Five TTS incidents on the status page between 29 July and 21 August 2026.\n\n## Before you call either\n\n### Azure AI Speech text-to-speech\n\n1. Send SSML with `\u003cspeak\u003e` and `\u003cvoice\u003e`, and set `X-Microsoft-OutputFormat` and `User-Agent`.\n2. On 429 retry with backoff, and try the voice's home region or another region rather than asking for more quota.\n3. Keep each real-time request under 10 minutes of audio, or use batch synthesis.\n4. Use Entra ID tokens instead of resource keys where the agent runs inside Azure.\n5. Cache the voice list per region, since it returns hundreds of entries at once.\n\n### Cartesia Sonic TTS API + MCP\n\n1. Send the `Cartesia-Version` header on every request.\n2. Pin a dated snapshot such as `sonic-3.6-2026-08-27` if output must not change.\n3. Move off `sonic-2`, `sonic-turbo` and `sonic-3-2025-10-27` before 2026-10-20.\n4. Expect a 429 at the plan's concurrency limit and queue requests yourself.\n5. Mint a short-lived access token for browser clients instead of shipping the API key.\n\n## Other comparisons with Azure AI Speech text-to-speech or Cartesia Sonic TTS API + MCP\n\n- [Amazon Polly vs Azure AI Speech text-to-speech](https://www.anchorterminal.com/compare/amazon-polly-vs-azure-text-to-speech.md)\n- [Amazon Polly vs Cartesia Sonic TTS API + MCP](https://www.anchorterminal.com/compare/amazon-polly-vs-cartesia-tts.md)\n- [Azure AI Speech text-to-speech vs Deepgram Text-to-Speech (Aura-2, Flux TTS)](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-deepgram-tts.md)\n- [Azure AI Speech text-to-speech vs ElevenLabs Text to Speech API + MCP](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-elevenlabs-tts.md)\n- [Azure AI Speech text-to-speech vs Murf TTS API + MCP](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-murf-tts.md)\n- [Azure AI Speech text-to-speech vs PlayHT Text-to-Speech API](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-playht-tts.md)\n- [Azure AI Speech text-to-speech vs Resemble AI Text-to-Speech API](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-resemble-ai-tts.md)\n- [Azure AI Speech text-to-speech vs Rime TTS API + MCP](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-rime-tts.md)\n- [Azure AI Speech text-to-speech vs Soniox Text-to-Speech](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-soniox-tts.md)\n- [Cartesia Sonic TTS API + MCP vs Deepgram Text-to-Speech (Aura-2, Flux TTS)](https://www.anchorterminal.com/compare/cartesia-tts-vs-deepgram-tts.md)\n- [Cartesia Sonic TTS API + MCP vs ElevenLabs Text to Speech API + MCP](https://www.anchorterminal.com/compare/cartesia-tts-vs-elevenlabs-tts.md)\n- [Cartesia Sonic TTS API + MCP vs Murf TTS API + MCP](https://www.anchorterminal.com/compare/cartesia-tts-vs-murf-tts.md)\n- [Cartesia Sonic TTS API + MCP vs PlayHT Text-to-Speech API](https://www.anchorterminal.com/compare/cartesia-tts-vs-playht-tts.md)\n- [Cartesia Sonic TTS API + MCP vs Resemble AI Text-to-Speech API](https://www.anchorterminal.com/compare/cartesia-tts-vs-resemble-ai-tts.md)\n- [Cartesia Sonic TTS API + MCP vs Rime TTS API + MCP](https://www.anchorterminal.com/compare/cartesia-tts-vs-rime-tts.md)\n- [Cartesia Sonic TTS API + MCP vs Soniox Text-to-Speech](https://www.anchorterminal.com/compare/cartesia-tts-vs-soniox-tts.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Azure AI Speech text-to-speech vs Cartesia Sonic TTS API + MCP",
        "url": ""
      }
    ],
    "description": "Azure AI Speech text-to-speech has a score of 73.7 (BB) against Cartesia Sonic TTS API + MCP's 64.2 (B). Both do speech tts. The largest gap is security \u0026 auth, 32 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Azure AI Speech text-to-speech BB 73.7",
      "Cartesia Sonic TTS API + MCP B 64.2",
      "scores"
    ],
    "h1": "Azure AI Speech text-to-speech vs Cartesia Sonic TTS API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-azure-text-to-speech-vs-cartesia-tts.png",
    "path": "/compare/azure-text-to-speech-vs-cartesia-tts",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Azure AI Speech text-to-speech vs Cartesia Sonic TTS API + MCP",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-cartesia-tts"
  },
  "tokens": {
    "markdown": 1800,
    "slim": 380
  },
  "version": 1
}
