{
  "schemaVersion": "1.0",
  "item": {
    "slug": "salute-speech",
    "name": "salute speech",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/chorus12/salute-speech",
    "canonicalUrl": "https://clawhub.ai/chorus12/salute-speech",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/salute-speech",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=salute-speech",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "salute_transcribe.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/salute-speech"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/salute-speech",
    "agentPageUrl": "https://openagent3.xyz/skills/salute-speech/agent",
    "manifestUrl": "https://openagent3.xyz/skills/salute-speech/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/salute-speech/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Audio Transcription with Sber Salute Speech",
        "body": "Transcribe audio/video files to text with timestamps via Salute Speech async REST API."
      },
      {
        "title": "Requirements",
        "body": "API Key: Environment variable SALUTE_AUTH_DATA must be set (Base64-encoded client_id:client_secret or raw authorization key from https://developers.sber.ru/studio/).\nSSL note: The script disables SSL verification by default (verify_ssl=False) because Sber's certificate chain is non-standard. This is expected."
      },
      {
        "title": "Supported formats & encodings",
        "body": "Audio encodingContent-TypeTypical extensionsMP3audio/mpeg.mp3PCM_S16LEaudio/wav.wavOPUSaudio/ogg.ogg, .opusFLACaudio/flac.flacALAWaudio/alaw.alawMULAWaudio/mulaw.mulaw"
      },
      {
        "title": "Supported languages",
        "body": "ru-RU, en-US, kk-KZ (Kazakh), ky-KG (Kyrgyz), uz-UZ (Uzbek)."
      },
      {
        "title": "Workflow",
        "body": "Identify input files — from user request.\nRead API key from host environment.\nRun transcription — execute salute_transcribe.py with uv and appropriate arguments.\nDeliver results — present to user human-readable transcript with timestamps to the user and give a direct link to files."
      },
      {
        "title": "Usage",
        "body": "uv run --with requests {baseDir}/salute_transcribe.py \\\n  --file /path/to/audio.mp3 \\\n  --output_dir ~/.openclaw/workspace/transcriptions \\\n  --lang ru-RU"
      },
      {
        "title": "Arguments",
        "body": "ArgumentRequiredDefaultDescription--fileYes—Path to audio/video file--output_dirNo~/.openclaw/workspace/transcribationsOutput directory for results--langNoru-RULanguage code: ru-RU, en-US, kk-KZ, ky-KG, uz-UZ--audio-encodingNoMP3Codec: MP3, PCM_S16LE, OPUS, FLAC, ALAW, MULAW--modelNogeneralRecognition model: general or callcenter--hyp-countNo1Number of alternative hypotheses: 1 or 2--max-wait-timeNo300Max seconds to wait for async result--printNooffAlso print transcription to stdout"
      },
      {
        "title": "Content-Type mapping",
        "body": "When the file extension doesn't match audio/mpeg, adjust content_type in the script or add logic. Current default is audio/mpeg (MP3). For .wav files use audio/wav, etc."
      },
      {
        "title": "Output files",
        "body": "For input file meetingABC.mp3 the script produces:\n\nFileDescriptionmeetingABC_recognition_orig.jsonRaw API response (full JSON with all hypotheses, timing, confidence)meetingABC_pretty.txtFormatted human-readable transcript with timestamps"
      },
      {
        "title": "Output text format",
        "body": "[00:01 - 00:20]:\nНу, даже если сосредоточиться на идее узкой щели.\n\n[00:20 - 00:45]:\nСледующий фрагмент текста здесь."
      },
      {
        "title": "Notes",
        "body": "Token is valid for ~30 minutes; the script fetches a new one each run.\nLarge files (>1 hour) may need --max-wait-time increased beyond 300s.\nThe callcenter model is optimized for telephony audio (8kHz, mono).\nProfanity filter is disabled by default (enable_profanity_filter=False).\nThe script uses normalized text by default (numbers as digits, abbreviations expanded). Raw text is also available in the JSON output."
      }
    ],
    "body": "Audio Transcription with Sber Salute Speech\n\nTranscribe audio/video files to text with timestamps via Salute Speech async REST API.\n\nRequirements\nAPI Key: Environment variable SALUTE_AUTH_DATA must be set (Base64-encoded client_id:client_secret or raw authorization key from https://developers.sber.ru/studio/).\nSSL note: The script disables SSL verification by default (verify_ssl=False) because Sber's certificate chain is non-standard. This is expected.\nSupported formats & encodings\nAudio encoding\tContent-Type\tTypical extensions\nMP3\taudio/mpeg\t.mp3\nPCM_S16LE\taudio/wav\t.wav\nOPUS\taudio/ogg\t.ogg, .opus\nFLAC\taudio/flac\t.flac\nALAW\taudio/alaw\t.alaw\nMULAW\taudio/mulaw\t.mulaw\nSupported languages\n\nru-RU, en-US, kk-KZ (Kazakh), ky-KG (Kyrgyz), uz-UZ (Uzbek).\n\nWorkflow\nIdentify input files — from user request.\nRead API key from host environment.\nRun transcription — execute salute_transcribe.py with uv and appropriate arguments.\nDeliver results — present to user human-readable transcript with timestamps to the user and give a direct link to files.\nUsage\nuv run --with requests {baseDir}/salute_transcribe.py \\\n  --file /path/to/audio.mp3 \\\n  --output_dir ~/.openclaw/workspace/transcriptions \\\n  --lang ru-RU\n\nArguments\nArgument\tRequired\tDefault\tDescription\n--file\tYes\t—\tPath to audio/video file\n--output_dir\tNo\t~/.openclaw/workspace/transcribations\tOutput directory for results\n--lang\tNo\tru-RU\tLanguage code: ru-RU, en-US, kk-KZ, ky-KG, uz-UZ\n--audio-encoding\tNo\tMP3\tCodec: MP3, PCM_S16LE, OPUS, FLAC, ALAW, MULAW\n--model\tNo\tgeneral\tRecognition model: general or callcenter\n--hyp-count\tNo\t1\tNumber of alternative hypotheses: 1 or 2\n--max-wait-time\tNo\t300\tMax seconds to wait for async result\n--print\tNo\toff\tAlso print transcription to stdout\nContent-Type mapping\n\nWhen the file extension doesn't match audio/mpeg, adjust content_type in the script or add logic. Current default is audio/mpeg (MP3). For .wav files use audio/wav, etc.\n\nOutput files\n\nFor input file meetingABC.mp3 the script produces:\n\nFile\tDescription\nmeetingABC_recognition_orig.json\tRaw API response (full JSON with all hypotheses, timing, confidence)\nmeetingABC_pretty.txt\tFormatted human-readable transcript with timestamps\nOutput text format\n[00:01 - 00:20]:\nНу, даже если сосредоточиться на идее узкой щели.\n\n[00:20 - 00:45]:\nСледующий фрагмент текста здесь.\n\nNotes\nToken is valid for ~30 minutes; the script fetches a new one each run.\nLarge files (>1 hour) may need --max-wait-time increased beyond 300s.\nThe callcenter model is optimized for telephony audio (8kHz, mono).\nProfanity filter is disabled by default (enable_profanity_filter=False).\nThe script uses normalized text by default (numbers as digits, abbreviations expanded). Raw text is also available in the JSON output."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/chorus12/salute-speech",
    "publisherUrl": "https://clawhub.ai/chorus12/salute-speech",
    "owner": "chorus12",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/salute-speech",
    "downloadUrl": "https://openagent3.xyz/downloads/salute-speech",
    "agentUrl": "https://openagent3.xyz/skills/salute-speech/agent",
    "manifestUrl": "https://openagent3.xyz/skills/salute-speech/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/salute-speech/agent.md"
  }
}