Syllable Pronunciations API

The pronunciations API from Syllable — 3 operation(s) for pronunciations.

OpenAPI Specification

syllable-pronunciations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SyllableSDK Pronunciations API
  description: "\n# Syllable Platform SDK\n\nSyllable SDK gives you the power of awesome AI agentry. \U0001F680\n\n## Overview\n\nThe Syllable SDK provides a comprehensive set of tools and APIs to integrate powerful AI\ncapabilities into your communication applications. Whether you're building phone agents, chatbots,\nvirtual assistants, or any other AI-driven solutions, Syllable SDK has got you covered.\n\n## Features\n\n- **Agent Configuration**: Create and manage agents that can interact with users across various \nchannels.\n- **Channel Management**: Configure channels like SMS, web chat, and more to connect agents with \nusers.\n- **Custom Messages**: Set up custom messages that agents can deliver as greetings or responses.\n- **Conversations**: Track and manage conversations between users and agents, including session \nmanagement.\n- **Tools and Workflows**: Leverage tools and workflows to enhance agent capabilities, such as data \nprocessing and API calls.\n- **Data Sources**: Integrate data sources to provide agents with additional context and \ninformation.\n- **Insights and Analytics**: Analyze conversations and sessions to gain insights into user \ninteractions.\n- **Permissions and Security**: Manage permissions to control access to various features and \nfunctionalities.\n- **Language Support**: Define language groups to enable multilingual support for agents.\n- **Outbound Campaigns**: Create and manage outbound communication campaigns to reach users \neffectively.\n- **Session Labels**: Label sessions with evaluations of quality and descriptions of issues \nencountered.\n- **Incident Management**: Track and manage incidents related to agent interactions.\n"
  version: 0.0.3
servers:
- url: https://api.syllable.cloud
  description: API server
tags:
- name: pronunciations
paths:
  /api/v1/pronunciations:
    get:
      tags:
      - pronunciations
      summary: Get Pronunciations Dictionary
      operationId: pronunciations_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PronunciationOverridesDictionary'
      security:
      - APIKeyHeader: []
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.pronunciations.pronunciations_get()\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.pronunciations.pronunciationsGet();\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/pronunciations/metadata:
    get:
      tags:
      - pronunciations
      summary: Get Pronunciations Metadata
      operationId: pronunciations_get_metadata
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionaryMetadata'
      security:
      - APIKeyHeader: []
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.pronunciations.pronunciations_get_metadata()\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.pronunciations.pronunciationsGetMetadata();\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/pronunciations/csv:
    get:
      tags:
      - pronunciations
      summary: Download Pronunciations Csv
      operationId: pronunciations_download_csv
      responses:
        '200':
          description: File content
          content:
            text/csv:
              schema:
                type: string
                format: binary
                title: bytes
      security:
      - APIKeyHeader: []
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.pronunciations.pronunciations_download_csv()\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.pronunciations.pronunciationsDownloadCsv();\n\n  console.log(result);\n}\n\nrun();"
    post:
      tags:
      - pronunciations
      summary: Upload Pronunciations Csv
      operationId: pronunciations_upload_csv
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_pronunciations_upload_csv'
        required: true
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PronunciationsCsvUploadResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - APIKeyHeader: []
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.pronunciations.pronunciations_upload_csv(request={\n        \"file\": {\n            \"file_name\": \"example.file\",\n            \"content\": open(\"example.file\", \"rb\"),\n        },\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { openAsBlob } from \"node:fs\";\nimport { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.pronunciations.pronunciationsUploadCsv({\n    file: await openAsBlob(\"example.file\"),\n  });\n\n  console.log(result);\n}\n\nrun();"
    delete:
      tags:
      - pronunciations
      summary: Delete Pronunciations Dictionary
      operationId: pronunciations_delete_csv
      responses:
        '204':
          description: Successful Response
      security:
      - APIKeyHeader: []
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    ss_client.pronunciations.pronunciations_delete_csv()\n\n    # Use the SDK ..."
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  await syllableSDK.pronunciations.pronunciationsDeleteCsv();\n\n\n}\n\nrun();"
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    MatchType:
      type: string
      enum:
      - exact
      - substring
      title: MatchType
      description: Matching strategy for override text.
    PronunciationOverridesDictionary:
      properties:
        type:
          type: string
          pattern: ^pronunciations_v\d+$
          title: Type
          default: pronunciations_v1
        pronunciations:
          items:
            $ref: '#/components/schemas/PronunciationOverride'
          type: array
          title: Pronunciations
        voices:
          additionalProperties:
            $ref: '#/components/schemas/VoiceDisplayInfo'
          type: object
          title: Voices
        metadata:
          $ref: '#/components/schemas/DictionaryMetadata'
      additionalProperties: false
      type: object
      required:
      - pronunciations
      - metadata
      title: PronunciationOverridesDictionary
      description: "Container for all TTS pronunciation overrides belonging to the sub-organisation.\n\nStored in the `config_values` table via ConfigDao. The Syllable API persists uploaded CSV\npronunciation rules, and Bubblegum's PronunciationOverridesPlugin reads them to apply text\nreplacements before TTS processing.\n\nExample:\n    dao = ConfigDao(db_session)\n    await dao.register_model('tts.pronunciations', PronunciationOverridesDictionary)\n\n    pod = PronunciationOverridesDictionary(\n        pronunciations=[...],\n        metadata=DictionaryMetadata(entries=10, hash='sha256:...'),\n    )\n    result = await dao.upsert('pronunciations_v1', pod)\n\n    record = await dao.get('pronunciations_v1', PronunciationOverridesDictionary)\n    if record:\n        pronunciations = record.value.pronunciations"
    DictionaryMetadata:
      properties:
        entries:
          type: integer
          title: Entries
        hash:
          type: string
          title: Hash
        source:
          type: string
          title: Source
          default: ''
      additionalProperties: false
      type: object
      required:
      - entries
      - hash
      title: DictionaryMetadata
      description: Audit metadata associated with a dictionary.
    PronunciationOverride:
      properties:
        text:
          type: string
          minLength: 1
          title: Text
        replacement:
          type: string
          minLength: 1
          title: Replacement
        languages:
          items:
            type: string
          type: array
          title: Languages
        provider:
          type: string
          title: Provider
          default: ''
        voice:
          type: string
          title: Voice
          default: ''
        match_type:
          $ref: '#/components/schemas/MatchType'
          default: exact
        match_options:
          items:
            type: string
          type: array
          title: Match Options
        enabled:
          type: boolean
          title: Enabled
          default: true
        notes:
          type: string
          title: Notes
          default: ''
      additionalProperties: false
      type: object
      required:
      - text
      - replacement
      title: PronunciationOverride
      description: A single text replacement rule.
    VoiceDisplayInfo:
      properties:
        display_name:
          type: string
          title: Display Name
        provider:
          type: string
          title: Provider
      additionalProperties: false
      type: object
      required:
      - display_name
      - provider
      title: VoiceDisplayInfo
      description: Display metadata for a canonical voice identifier.
    PronunciationsCsvUploadResponse:
      properties:
        revision:
          type: integer
          title: Revision
        hash:
          type: string
          title: Hash
        entries:
          type: integer
          title: Entries
        uploaded_at:
          type: string
          format: date-time
          title: Uploaded At
        uploaded_by:
          type: string
          title: Uploaded By
      type: object
      required:
      - revision
      - hash
      - entries
      - uploaded_by
      title: PronunciationsCsvUploadResponse
      description: Placeholder response returned after accepting a pronunciations CSV upload.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Body_pronunciations_upload_csv:
      properties:
        file:
          type: string
          format: binary
          title: File
          description: CSV file containing pronunciation overrides
      type: object
      required:
      - file
      title: Body_pronunciations_upload_csv
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: Syllable-API-Key
x-speakeasy-name-override:
- operationId: .*_list$
  methodNameOverride: list
- operationId: .*_create$
  methodNameOverride: create
- operationId: .*_update$
  methodNameOverride: update
- operationId: .*_upload$
  methodNameOverride: upload
- operationId: .*_delete$
  methodNameOverride: delete
- operationId: .*_get_by_id$
  methodNameOverride: get_by_id
- operationId: .*_get_by_name$
  methodNameOverride: get_by_name
- operationId: .*_add$
  methodNameOverride: add
- operationId: .*_remove$
  methodNameOverride: remove
- operationId: .*_results$
  methodNameOverride: results
- operationId: .*_queue_work$
  methodNameOverride: queue_work
- operationId: .*_activate$
  methodNameOverride: activate
- operationId: .*_inactivate$
  methodNameOverride: inactivate
- operationId: .*_list_files$
  methodNameOverride: list_files
- operationId: .*_move_files$
  methodNameOverride: move_files
- operationId: .*_upload_file$
  methodNameOverride: upload_file